diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8eca4a0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,49 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Virtual Environment +venv/ +ENV/ +env/ + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Konfiguration (enthält Credentials!) +config.ini + +# Logs +*.log +logs/ + +# Betriebssystem +.DS_Store +Thumbs.db + +# Temporäre Dateien +*.tmp +*.bak +*.backup diff --git a/README.md b/README.md deleted file mode 100644 index a72db91..0000000 --- a/README.md +++ /dev/null @@ -1,245 +0,0 @@ -# Normalisierte Datenbankstruktur für Somfy Tahoma - -## Übersicht - -Die Datenbank wurde von einer denormalisierten Struktur (mit JSON in `parameters`) -in eine vollständig normalisierte relationale Struktur überführt. - -## Datenbankschema - -### Haupttabellen - -#### `actors` -Speichert alle Aktoren (Geräte mit Steuerungsfunktion) - -| Spalte | Typ | Beschreibung | -|--------|-----|--------------| -| id | INT (PK, AUTO_INCREMENT) | Eindeutige ID | -| type | VARCHAR(50) | Gerätetyp (z.B. RollerShutter) | -| name | VARCHAR(70) | Name des Geräts | -| parameters | TEXT (nullable) | Optionale Meta-Informationen | -| url | VARCHAR(100) UNIQUE | Tahoma Device URL | - -#### `sensors` -Speichert alle Sensoren (Geräte die Werte melden) - -| Spalte | Typ | Beschreibung | -|--------|-----|--------------| -| id | INT (PK, AUTO_INCREMENT) | Eindeutige ID | -| type | VARCHAR(50) | Sensortyp (z.B. TemperatureSensor) | -| name | VARCHAR(70) | Name des Sensors | -| parameters | TEXT (nullable) | Optionale Meta-Informationen | -| url | VARCHAR(100) UNIQUE | Tahoma Device URL | - -### Aktor-Detailtabellen - -#### `actor_commands` -Speichert alle verfügbaren Commands für jeden Aktor - -| Spalte | Typ | Beschreibung | -|--------|-----|--------------| -| id | INT (PK, AUTO_INCREMENT) | Eindeutige ID | -| actor_id | INT (FK → actors.id) | Referenz zum Aktor | -| command_name | VARCHAR(100) | Name des Commands (z.B. setPosition, open) | - -**Beispieldaten:** -``` -actor_id | command_name ----------|------------- -1 | open -1 | close -1 | setPosition -2 | on -2 | off -``` - -#### `command_parameters` -Speichert die Parameter für jeden Command - -| Spalte | Typ | Beschreibung | -|--------|-----|--------------| -| id | INT (PK, AUTO_INCREMENT) | Eindeutige ID | -| command_id | INT (FK → actor_commands.id) | Referenz zum Command | -| parameter_name | VARCHAR(100) | Name des Parameters (z.B. position) | -| parameter_type | VARCHAR(50) | Datentyp (z.B. integer, string) | -| min_value | DECIMAL(10,2) | Minimaler Wert (nullable) | -| max_value | DECIMAL(10,2) | Maximaler Wert (nullable) | -| possible_values | TEXT | JSON Array mit möglichen Werten (nullable) | - -**Beispieldaten:** -``` -command_id | parameter_name | parameter_type | min_value | max_value ------------|----------------|----------------|-----------|---------- -3 | position | integer | 0 | 100 -``` - -#### `actor_states` -Speichert die aktuellen States von Aktoren - -| Spalte | Typ | Beschreibung | -|--------|-----|--------------| -| id | INT (PK, AUTO_INCREMENT) | Eindeutige ID | -| actor_id | INT (FK → actors.id) | Referenz zum Aktor | -| state_name | VARCHAR(100) | Name des State (z.B. core:ClosureState) | -| state_type | INT | State-Typ Code aus Tahoma API | -| current_value | VARCHAR(255) | Aktueller Wert | -| unit | VARCHAR(20) | Einheit (nullable) | -| last_updated | TIMESTAMP | Zeitpunkt der letzten Aktualisierung | - -### Sensor-Detailtabellen - -#### `sensor_states` -Speichert alle verfügbaren States für jeden Sensor - -| Spalte | Typ | Beschreibung | -|--------|-----|--------------| -| id | INT (PK, AUTO_INCREMENT) | Eindeutige ID | -| sensor_id | INT (FK → sensors.id) | Referenz zum Sensor | -| state_name | VARCHAR(100) | Name des State (z.B. core:TemperatureState) | -| state_type | INT | State-Typ Code aus Tahoma API | -| current_value | VARCHAR(255) | Aktueller Wert | -| unit | VARCHAR(20) | Einheit (z.B. °C, %) (nullable) | -| last_updated | TIMESTAMP | Zeitpunkt der letzten Aktualisierung | - -**Beispieldaten:** -``` -sensor_id | state_name | state_type | current_value | unit -----------|-------------------------|------------|---------------|------ -1 | core:TemperatureState | 1 | 21.5 | °C -2 | core:LuminanceState | 1 | 350 | lux -``` - -## Beziehungen (Foreign Keys) - -``` -actors (1) ──< (N) actor_commands - └──< (N) command_parameters - -actors (1) ──< (N) actor_states - -sensors (1) ──< (N) sensor_states -``` - -Alle Foreign Keys mit `ON DELETE CASCADE` → Wenn ein Aktor/Sensor gelöscht wird, -werden automatisch alle zugehörigen Commands, Parameter und States gelöscht. - -## Hilfreiche Views - -### `view_actors_with_commands` -Zeigt alle Aktoren mit ihren Commands und Parametern in einer flachen Ansicht - -```sql -SELECT * FROM view_actors_with_commands WHERE actor_name = 'Wohnzimmer Rollo'; -``` - -### `view_sensors_with_states` -Zeigt alle Sensoren mit ihren aktuellen States - -```sql -SELECT * FROM view_sensors_with_states WHERE sensor_type = 'TemperatureSensor'; -``` - -### `view_all_devices` -Zeigt eine Übersicht aller Geräte (Aktoren und Sensoren) - -```sql -SELECT * FROM view_all_devices ORDER BY name; -``` - -## Beispiel-Queries - -### Alle Commands eines bestimmten Aktors anzeigen -```sql -SELECT - a.name as aktor_name, - ac.command_name, - cp.parameter_name, - cp.min_value, - cp.max_value -FROM actors a -JOIN actor_commands ac ON a.id = ac.actor_id -LEFT JOIN command_parameters cp ON ac.id = cp.command_id -WHERE a.name = 'Wohnzimmer Rollo'; -``` - -### Alle Temperatursensoren mit aktuellem Wert -```sql -SELECT - s.name as sensor_name, - ss.current_value as temperatur, - ss.unit, - ss.last_updated -FROM sensors s -JOIN sensor_states ss ON s.id = ss.sensor_id -WHERE s.type = 'TemperatureSensor' - AND ss.state_name LIKE '%Temperature%'; -``` - -### Alle Aktoren eines bestimmten Typs -```sql -SELECT - name, - type, - COUNT(DISTINCT ac.id) as anzahl_commands -FROM actors a -LEFT JOIN actor_commands ac ON a.id = ac.actor_id -WHERE a.type = 'RollerShutter' -GROUP BY a.id, a.name, a.type; -``` - -### Commands ohne Parameter finden -```sql -SELECT - a.name as aktor, - ac.command_name -FROM actors a -JOIN actor_commands ac ON a.id = ac.actor_id -LEFT JOIN command_parameters cp ON ac.id = cp.command_id -WHERE cp.id IS NULL; -``` - -## Vorteile der normalisierten Struktur - -1. **Keine Datenduplizierung**: Jeder Command und Parameter wird nur einmal gespeichert -2. **Einfache Queries**: SQL-Joins statt JSON-Parsing -3. **Flexible Erweiterung**: Neue Spalten können einfach hinzugefügt werden -4. **Referentielle Integrität**: Foreign Keys garantieren Konsistenz -5. **Performance**: Indizes auf relevanten Spalten für schnelle Suchen -6. **Typsicherheit**: Min/Max als DECIMAL statt String - -## Migration von alter zu neuer Struktur - -Falls Sie bereits Daten in der alten Struktur haben: - -```sql --- Backup erstellen -CREATE TABLE actors_old AS SELECT * FROM actors; -CREATE TABLE sensors_old AS SELECT * FROM sensors; - --- Alte Tabellen löschen -DROP TABLE actors; -DROP TABLE sensors; - --- Neue Struktur erstellen (database_schema.sql ausführen) -SOURCE database_schema.sql; - --- Python-Script ausführen um Daten neu zu importieren -``` - -## Wartung - -### Regelmäßige Aktualisierung der States -Das Script kann regelmäßig ausgeführt werden. Bei `CLEAR_TABLES = True` werden -alle Daten neu importiert. Bei `CLEAR_TABLES = False` können Updates implementiert werden. - -### Veraltete Geräte entfernen -```sql --- Geräte finden die nicht mehr in der Tahoma Box vorhanden sind --- (nach erneutem Import) -``` - -### Index-Optimierung prüfen -```sql -SHOW INDEX FROM actors; -SHOW INDEX FROM actor_commands; -``` diff --git a/addUser.php b/addUser.php new file mode 100644 index 0000000..30be75d --- /dev/null +++ b/addUser.php @@ -0,0 +1,16 @@ + \ No newline at end of file diff --git a/ajax/AutoAction.php b/ajax/AutoAction.php new file mode 100644 index 0000000..d6c1c8b --- /dev/null +++ b/ajax/AutoAction.php @@ -0,0 +1,264 @@ + -1){ + $qry = "UPDATE autoActions SET + `floor` = '".$floor."', `window_from`= '".$tFrom."', `window_to` = '".$tTo."', + `force_once` = '".$force."', `mo` = '".$mo."', `di` = '".$di."', `mi` = '".$mi."', + `do` = '".$do."', `fr` = '".$fr."', `sa` = '".$sa."', `so` = '".$so."', + `ferien` = '".$ferien."', `feiertag` = '".$feiertag."' WHERE id=".$id.";"; + mysqli_query($mysql, $qry); + mysqli_query($mysql, "DELETE FROM autoactionsActors WHERE actionID=".$id.";"); + mysqli_query($mysql, "DELETE FROM autoactionsSensors WHERE actionID=".$id.";"); + $actionID = $id; + }else{ + $qry = "INSERT into autoActions + (`id`, `floor`, `window_from`, `window_to`, `force_once`, `mo`, `di`, `mi`, `do`, `fr`, `sa`, `so`, `ferien`, `feiertag`, `last_run`) + VALUES (NULL, '".$floor."', '".$tFrom."', '".$tTo."', '".$force."', '".$mo."', '".$di."', '".$mi."', '".$do."', '".$fr."', '".$sa."', '".$so."', '".$ferien."', '".$feiertag."', '2020-01-01 12:00:00.000000')"; + mysqli_query($mysql, $qry); + $actionID = mysqli_insert_id($mysql); + } + + //Get all Sensors: + $num=1; + while(isset($_POST["sensorSelect".$num])){ + $id = intval($_POST["sensorSelect".$num]); + if($_POST["sensorSelect".$num] != "0" && $id == 0){ + $id = -1; + } + if(isset($_POST["btnLogic".$num])){ + if(strtolower($_POST["btnLogic".$num]) == "oder"){ + $weight = "or"; + }else{ + $weight = "and"; + } + }else{ + $weight = "and"; + } + if (in_array($_POST["btnOperator".$num], array('+','-','=','<','>','!='))) { + $cond = $_POST["btnOperator".$num]; + }else{ + $cond = "="; + echo $_POST["btnOperator".$num]; + } + echo $_POST["btnOperator".$num]; + $valID = intval($_POST["paramSelect".$num]); + if($_POST["paramSelect".$num] != "0" && $id == 0){ + $valID = -1; + } + $state = mysqli_real_escape_string($mysql, $_POST["threshold".$num]); + + $qry = "INSERT INTO `autoactionsSensors` + (`id`, `sensorID`, `state`, `valID`, `condType`, `link`, `actionID`) + VALUES (NULL, '".$id."', '".$state."', '".$valID."', '".$cond."', '".$weight."', '".$actionID."')"; + mysqli_query($mysql, $qry); + $num++; + } + $close=1; + } + } else { + $close = 1; +} +if (!$close) { + echo << +input[type='range']::-webkit-slider-runnable-track { + background: linear-gradient(to right, #00788F, #00788F), #D7D7D7; + background-size: var(--background-size, 0%) 100%; + background-repeat: no-repeat; +} + + +
+
+
+

+ +

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

+ +

+
+
+
+ Aktiver Zeitraum: +
+ + +
+
+ + +
+
+ Aktive Wochentage: +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ Ferien/Feiertage: +
+
+ +
+
+ +
+
+ Falls die Bedingung bis zuletzt nicht erfüllt wurde: +
+
+ +
+
+
+
+
+
+

+ +

+
+
+
+
+
+ + +
+
+ + +
+ +
+ + +
+
+
+ +
+
+
+
+
+ENDE; +} diff --git a/ajax/actorDetails.php b/ajax/actorDetails.php new file mode 100644 index 0000000..f1986d6 --- /dev/null +++ b/ajax/actorDetails.php @@ -0,0 +1,12 @@ +fetch_array()[0]; +} + + +?> \ No newline at end of file diff --git a/ajax/carEG.php b/ajax/carEG.php new file mode 100644 index 0000000..bdbda9c --- /dev/null +++ b/ajax/carEG.php @@ -0,0 +1,141 @@ +&1", $output, $return_var); + } elseif ($_POST["evStart/Stop"] == "Laden stoppen") { + $close = 1; + exec("python wattpilot.py -stop 2>&1", $output, $return_var); + } + $close = 1; + } else if (isset($_POST["evMode"])) { + if ($_POST["fte"] > 100) + $_POST["fte"] = 100; + else if ($_POST["fte"] < 1) + $_POST["fte"] = 1; + + if ($_POST["evAmp"] > 16) + $_POST["evAmp"] = 16; + if ($_POST["evAmp"] < 6) + $_POST["evAmp"] = 6; + $_POST["fte"] = $_POST["fte"] * 140; + + if ($_POST["evMode"] == "eco") { + $close = 1; + if ($_POST["ftt"] && $_POST["fte"] > 0) { + exec("python wattpilot.py -eco -time " . $_POST["ftt"] . " -energy " . $_POST["fte"] . " -maxCurr " . $_POST["evAmp"] . " -setTime " . gmdate("Y-m-d\TH:i:s", time()) . ".000 2>&1", $output, $return_var); + } else { + exec("/bin/python wattpilot.py -e 2>&1", $output, $return_var); + } + } else if ($_POST["evMode"] == "default") { + $close = 1; + if ($_POST["ftt"] && $_POST["fte"] > 0) { + exec("python wattpilot.py -default -time " . $_POST["ftt"] . " -energy " . $_POST["fte"] . " -maxCurr " . $_POST["evAmp"] . " -setTime " . gmdate("Y-m-d\TH:i:s", time()) . ".000 2>&1", $output, $return_var); + } else { + exec("python wattpilot.py -d 2>&1", $output, $return_var); + } + } else if ($_POST["evMode"] == "NextTrip") { + $close = 1; + if ($_POST["ftt"] && $_POST["fte"] > 0) { + exec("python wattpilot.py -trip -time " . $_POST["ftt"] . " -energy " . $_POST["fte"] . " -maxCurr " . $_POST["evAmp"] . " -setTime " . gmdate("Y-m-d\TH:i:s", time()) . ".000 2>&1", $output, $return_var); + } else { + exec("python wattpilot.py -t 2>&1", $output, $return_var); + } + } + $close = 1; + } +} else { + $close = 1; +} +if (!$close) { + echo << +input[type='range']::-webkit-slider-runnable-track { + background: linear-gradient(to right, #00788F, #00788F), #D7D7D7; + background-size: var(--background-size, 0%) 100%; + background-repeat: no-repeat; +} + +
+ +
+ +
+
+
+
Modus
+
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+
+
Max. Ladestrom
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+
+
Ladeplanung
+
+
+
+
+ + + +
+ 1% + 100% +
+ +
+
+
+
+ + +
+
+
+
+
+ENDE; +} \ No newline at end of file diff --git a/ajax/carOG.php b/ajax/carOG.php new file mode 100644 index 0000000..0f1bffa --- /dev/null +++ b/ajax/carOG.php @@ -0,0 +1,148 @@ + 100) + $_POST["fte"] = 100; + else if ($_POST["fte"] < 0) + $_POST["fte"] = 0; + if ($_POST["evAmp"] > 16) + $_POST["evAmp"] = 16; + if ($_POST["evAmp"] < 6) + $_POST["evAmp"] = 6; + $_POST["fte"] = $_POST["fte"] * 90; + $seconds = strtotime('1970-01-01 ' . $_POST["ftt"] . ':00GMT'); + if ($_POST["evMode"] == "eco") { + $close = 1; + if ($_POST["ftt"] && $_POST["fte"] > 0) { + getSSLPage("http://192.168.179.122/api/set?ate=" . $_POST["fte"] . "&att=" . $seconds . "&=" . $_POST["evAmp"] . "&fup=true&lmo=4"); + } else { + getSSLPage("http://192.168.179.122/api/set?amp=" . $_POST["evAmp"] . "&fup=true&lmo=4"); + } + } else if ($_POST["evMode"] == "default") { + $close = 1; + if ($_POST["ftt"] && $_POST["fte"] > 0) { + getSSLPage("http://192.168.179.122/api/set?ate=" . $_POST["fte"] . "&att=" . $seconds . "&=" . $_POST["evAmp"] . "&fup=true&lmo=3"); + } else { + getSSLPage("http://192.168.179.122/api/set?amp=" . $_POST["evAmp"] . "&fup=true&lmo=3"); + } + } else if ($_POST["evMode"] == "NextTrip") { + $close = 1; + if ($_POST["ftt"] && $_POST["fte"] > 0) { + getSSLPage("http://192.168.179.122/api/set?ate=" . $_POST["fte"] . "&att=" . $seconds . "&=" . $_POST["evAmp"] . "&fup=true&lmo=5"); + } else { + getSSLPage("http://192.168.179.122/api/set?amp=" . $_POST["evAmp"] . "&fup=true&lmo=5"); + } + } + $close = 1; + } +} else { + $close = 1; +} +if (!$close) { + echo << +input[type='range']::-webkit-slider-runnable-track { + background: linear-gradient(to right, #00788F, #00788F), #D7D7D7; + background-size: var(--background-size, 0%) 100%; + background-repeat: no-repeat; +} + +
+ +
+ +
+
+
+
Modus
+
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+
+
Max. Ladestrom
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+
+
Ladeplanung
+
+
+
+
+ + + +
+ 1% + 100% +
+ +
+
+
+
+ + +
+
+
+
+
+ENDE; +} diff --git a/ajax/fillActorDD.php b/ajax/fillActorDD.php new file mode 100644 index 0000000..61afc66 --- /dev/null +++ b/ajax/fillActorDD.php @@ -0,0 +1,11 @@ +fetch_assoc()){ + echo ""; +} + +?> \ No newline at end of file diff --git a/ajax/fillSensorDD.php b/ajax/fillSensorDD.php new file mode 100644 index 0000000..8a208f5 --- /dev/null +++ b/ajax/fillSensorDD.php @@ -0,0 +1,11 @@ +fetch_assoc()){ + echo ""; +} + +?> \ No newline at end of file diff --git a/ajax/getConsData.php b/ajax/getConsData.php new file mode 100644 index 0000000..c8688c8 --- /dev/null +++ b/ajax/getConsData.php @@ -0,0 +1,162 @@ +".mysqli_error($mysql)."
"; + } + $obj = (object)[]; // Cast empty array to object + $obj->labels = []; + $obj->datasets = []; + $i = 0; + $filled = 0; + if ($simRes->num_rows > 1) { + $dataset = (object)[]; + $row1 = $simRes->fetch_assoc(); + $dataset->borderColor = $linecolors["Vorhersage"]; + $dataset->backgroundColor = $linecolors["Vorhersage"]."55"; + $dataset->borderWidth=1.5; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + $dataset->stack = "sim"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y'; + $dataset->label = "Vorhersage"; + /*$pt = (object)[]; + $pt->x = $row1["time"]*1000; + $pt->y = $row1["Vorhersage"]; + $dataset->data[] = clone $pt; + while ($row1 = $simRes->fetch_assoc()) { + $pt = (object)[]; + $pt->x = $row1["time"]*1000 + 30*60*1000; + $pt->y = $row1["Vorhersage"]; + $dataset->data[] = clone $pt; + }*/ + $obj->datasets[] = clone $dataset; + $rownext = $simRes->fetch_assoc(); + $nextSimTimestamp = $rownext["time"]*1000 + 30*60*1000; + } + if ($result->num_rows > 1) { + $ii = 1; + $row = $result->fetch_assoc(); + foreach ($row as $name => $value) { + $dataset = (object)[]; + if ($name != "time") { + $dataset->borderColor = $linecolors[$name]; + $dataset->backgroundColor = $linecolors[$name]."55"; + $dataset->borderWidth=1; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + if ($name == "Solarleistung") { + $dataset->stack = "SolarPwr"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y'; + } else if ($name == "Ladestand") { + $dataset->stack = "Charge"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y1'; + } else { + $dataset->stack = "Consumers"; + if ($filled == 0) { + $filled = 1; + $dataset->fill = "origin"; + } else { + $dataset->fill = "-1"; + } + $dataset->yAxisID = 'y'; + } + $dataset->label = $name; + + $dataset->data[] = $value; + $obj->datasets[] = clone $dataset; + $ii++; + } else { + $obj->labels[] = $value * 1000; + } + } + while ($row = $result->fetch_assoc()) { + $ii = 1; + foreach ($row as $name => $value) { + if ($name != "time") { + $obj->datasets[$ii]->data[] = $value; + $ii++; + } else { + if(($value * 1000) < $nextSimTimestamp){ + $obj->datasets[0]->data[] = $row1["Vorhersage"]; + }else{ + $row1 = $rownext; + $rownext = $simRes->fetch_assoc(); + $nextSimTimestamp = $rownext["time"]*1000 + 30*60*1000; + $obj->datasets[0]->data[] = $row1["Vorhersage"]; + } + $obj->labels[] = $value * 1000; + } + } + } + } + $obj->labels[] = $nextSimTimestamp; //Draw future forecast + $obj->datasets[0]->data[] = $rownext["Vorhersage"]; + while($rownext = $simRes->fetch_assoc()){ + $obj->labels[] = $rownext["time"]*1000 + 30*60*1000; + $obj->datasets[0]->data[] = $rownext["Vorhersage"]; + } + + +} + + +//header('Content-Type: application/json'); +echo json_encode($obj); +//echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; +?> \ No newline at end of file diff --git a/ajax/getConsData_decade.php b/ajax/getConsData_decade.php new file mode 100644 index 0000000..93efeba --- /dev/null +++ b/ajax/getConsData_decade.php @@ -0,0 +1,98 @@ + 0, battP/12,0)) AS Batteriebezug, + SUM(gridPcons/12) AS Netzbezug +FROM EnergyFlow + WHERE DATE_FORMAT(datetime,'%Y') >= DATE_FORMAT(DATE_SUB(now(),INTERVAL 10 YEAR),'%Y') + GROUP BY time +ORDER BY datetime ; "; + +$linecolors["Solarverbrauch"] = "#FFFF00"; +$linecolors["UG"] = "#FFaa00"; +$linecolors["OG"] = "#FF4400"; +$linecolors["Auto UG"] = "#00aaFF"; +$linecolors["Auto OG"] = "#0044FF"; +$linecolors["Heizstab"] = "#FF6600"; +$linecolors["Batteriebezug"] = "#00aa00"; +$linecolors["Netzbezug"] = "#FF0000"; +$linecolors["Ladestand"] = "#00aa00"; +$linecolors["Vorhersage"] = "#2222FF"; + + + +if (checkLogin()) { + $mysql = new mysqli($mysql_server, $mysql_solarUser, $mysql_solarPass, $mysql_solarDB); + $result = mysqli_query($mysql, $consQuery); + if(!$result){ + echo "Error:
".mysqli_error($mysql)."
"; + } + $obj = (object)[]; // Cast empty array to object + $obj->labels = []; + $obj->datasets = []; + $i = 0; + $filled = 0; + if ($result->num_rows > 1) { + $ii = 0; + $row = $result->fetch_assoc(); + foreach ($row as $name => $value) { + $dataset = (object)[]; + if ($name != "time") { + $dataset->borderColor = $linecolors[$name]; + $dataset->backgroundColor = $linecolors[$name]."55"; + $dataset->borderWidth=1; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + if ($name == "Solarleistung") { + $dataset->stack = "SolarPwr"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y'; + } else if ($name == "Ladestand") { + $dataset->stack = "Charge"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y1'; + } else { + $dataset->stack = "Consumers"; + if ($filled == 0) { + $filled = 1; + $dataset->fill = "origin"; + } else { + $dataset->fill = "-1"; + } + $dataset->yAxisID = 'y'; + } + $dataset->label = $name; + + $dataset->data[] = $value; + $obj->datasets[] = clone $dataset; + $ii++; + } else { + $obj->labels[] = $value; + } + } + while ($row = $result->fetch_assoc()) { + $ii = 0; + foreach ($row as $name => $value) { + if ($name != "time") { + $obj->datasets[$ii]->data[] = $value; + $ii++; + } else { + $obj->labels[] = $value; + } + } + } + } + + +} + + +//header('Content-Type: application/json'); +echo json_encode($obj); +//echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; diff --git a/ajax/getConsData_month.php b/ajax/getConsData_month.php new file mode 100644 index 0000000..ef3a075 --- /dev/null +++ b/ajax/getConsData_month.php @@ -0,0 +1,98 @@ + 0, battP/12,0)) AS Batteriebezug, + SUM(gridPcons/12) AS Netzbezug +FROM EnergyFlow + WHERE DATE_FORMAT(datetime,'%Y%m%d') >= DATE_FORMAT(DATE_SUB(now(),INTERVAL 1 MONTH),'%Y%m%d') + GROUP BY DATE_FORMAT(datetime, '%d.%b.') +ORDER BY datetime ; "; + +$linecolors["Solarverbrauch"] = "#FFFF00"; +$linecolors["UG"] = "#FFaa00"; +$linecolors["OG"] = "#FF4400"; +$linecolors["Auto UG"] = "#00aaFF"; +$linecolors["Auto OG"] = "#0044FF"; +$linecolors["Heizstab"] = "#FF6600"; +$linecolors["Batteriebezug"] = "#00aa00"; +$linecolors["Netzbezug"] = "#FF0000"; +$linecolors["Ladestand"] = "#00aa00"; +$linecolors["Vorhersage"] = "#2222FF"; + + + +if (checkLogin()) { + $mysql = new mysqli($mysql_server, $mysql_solarUser, $mysql_solarPass, $mysql_solarDB); + $result = mysqli_query($mysql, $consQuery); + if(!$result){ + echo "Error:
".mysqli_error($mysql)."
"; + } + $obj = (object)[]; // Cast empty array to object + $obj->labels = []; + $obj->datasets = []; + $i = 0; + $filled = 0; + if ($result->num_rows > 1) { + $ii = 0; + $row = $result->fetch_assoc(); + foreach ($row as $name => $value) { + $dataset = (object)[]; + if ($name != "time") { + $dataset->borderColor = $linecolors[$name]; + $dataset->backgroundColor = $linecolors[$name]."55"; + $dataset->borderWidth=1; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + if ($name == "Solarleistung") { + $dataset->stack = "SolarPwr"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y'; + } else if ($name == "Ladestand") { + $dataset->stack = "Charge"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y1'; + } else { + $dataset->stack = "Consumers"; + if ($filled == 0) { + $filled = 1; + $dataset->fill = "origin"; + } else { + $dataset->fill = "-1"; + } + $dataset->yAxisID = 'y'; + } + $dataset->label = $name; + + $dataset->data[] = $value; + $obj->datasets[] = clone $dataset; + $ii++; + } else { + $obj->labels[] = $value; + } + } + while ($row = $result->fetch_assoc()) { + $ii = 0; + foreach ($row as $name => $value) { + if ($name != "time") { + $obj->datasets[$ii]->data[] = $value; + $ii++; + } else { + $obj->labels[] = $value; + } + } + } + } + + +} + + +//header('Content-Type: application/json'); +echo json_encode($obj); +//echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; diff --git a/ajax/getConsData_year.php b/ajax/getConsData_year.php new file mode 100644 index 0000000..5656324 --- /dev/null +++ b/ajax/getConsData_year.php @@ -0,0 +1,98 @@ + 0, battP/12,0)) AS Batteriebezug, + SUM(gridPcons/12) AS Netzbezug +FROM EnergyFlow + WHERE DATE_FORMAT(datetime,'%Y%m') >= DATE_FORMAT(DATE_SUB(now(),INTERVAL 13 MONTH),'%Y%m') + GROUP BY DATE_FORMAT(datetime, '%b. %y') +ORDER BY datetime ; "; + +$linecolors["Solarverbrauch"] = "#FFFF00"; +$linecolors["UG"] = "#FFaa00"; +$linecolors["OG"] = "#FF4400"; +$linecolors["Auto UG"] = "#00aaFF"; +$linecolors["Auto OG"] = "#0044FF"; +$linecolors["Heizstab"] = "#FF6600"; +$linecolors["Batteriebezug"] = "#00aa00"; +$linecolors["Netzbezug"] = "#FF0000"; +$linecolors["Ladestand"] = "#00aa00"; +$linecolors["Vorhersage"] = "#2222FF"; + + + +if (checkLogin()) { + $mysql = new mysqli($mysql_server, $mysql_solarUser, $mysql_solarPass, $mysql_solarDB); + $result = mysqli_query($mysql, $consQuery); + if(!$result){ + echo "Error:
".mysqli_error($mysql)."
"; + } + $obj = (object)[]; // Cast empty array to object + $obj->labels = []; + $obj->datasets = []; + $i = 0; + $filled = 0; + if ($result->num_rows > 1) { + $ii = 0; + $row = $result->fetch_assoc(); + foreach ($row as $name => $value) { + $dataset = (object)[]; + if ($name != "time") { + $dataset->borderColor = $linecolors[$name]; + $dataset->backgroundColor = $linecolors[$name]."55"; + $dataset->borderWidth=1; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + if ($name == "Solarleistung") { + $dataset->stack = "SolarPwr"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y'; + } else if ($name == "Ladestand") { + $dataset->stack = "Charge"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y1'; + } else { + $dataset->stack = "Consumers"; + if ($filled == 0) { + $filled = 1; + $dataset->fill = "origin"; + } else { + $dataset->fill = "-1"; + } + $dataset->yAxisID = 'y'; + } + $dataset->label = $name; + + $dataset->data[] = $value; + $obj->datasets[] = clone $dataset; + $ii++; + } else { + $obj->labels[] = $value; + } + } + while ($row = $result->fetch_assoc()) { + $ii = 0; + foreach ($row as $name => $value) { + if ($name != "time") { + $obj->datasets[$ii]->data[] = $value; + $ii++; + } else { + $obj->labels[] = $value; + } + } + } + } + + +} + + +//header('Content-Type: application/json'); +echo json_encode($obj); +//echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; diff --git a/ajax/getForecastData.php b/ajax/getForecastData.php new file mode 100644 index 0000000..0ba7d8d --- /dev/null +++ b/ajax/getForecastData.php @@ -0,0 +1,175 @@ += DATE(DATE_SUB(NOW(),INTERVAL 28 DAY)) And DATE(datetime) != DATE(NOW()) + GROUP BY WEEKDAY(datetime) +ORDER BY datetime"; + +$prodEstQuery = "SELECT UNIX_TIMESTAMP(CONVERT_TZ(period_End,'GMT','Europe/Berlin')) AS 'time', + SUM(power*500) AS 'Vorhersage' + FROM simPower + WHERE DATE(CONVERT_TZ(period_End,'GMT','Europe/Berlin')) >= DATE(DATE_SUB(NOW(),INTERVAL 7 DAY)) + GROUP BY DAY(CONVERT_TZ(period_End,'GMT','Europe/Berlin')) + ORDER BY period_End;"; + +$prodRealQuery = "SELECT + UNIX_TIMESTAMP(datetime) AS 'time', + SUM(pvP/12) AS 'Tatsächliche Erzeugung', + SUM(-totalConsumption/12) AS 'Tatsächlicher Verbrauch' +FROM EnergyFlow +WHERE + DATE(datetime) >= DATE(DATE_SUB(NOW(),INTERVAL 7 DAY)) + GROUP BY DAY(datetime) +ORDER BY datetime"; + + +$linecolors["Tatsächliche Erzeugung"] = "#cccc00"; +$linecolors["Tatsächlicher Verbrauch"] = "#EE9900"; +$linecolors["Vorraussichtl. Verbrauch"] = "#BB4400"; +$linecolors["Auto UG"] = "#00aaFF"; +$linecolors["Auto OG"] = "#0044FF"; +$linecolors["Heizstab"] = "#FF0000"; +$linecolors["Batterieladung"] = "#00aa00"; +$linecolors["Einspeisung"] = "#b0b0b0"; +$linecolors["Ladestand"] = "#00aa00"; +$linecolors["Vorhersage"] = "#4444FF"; + + + +if (checkLogin()) { + $mysql_server = "localhost:3310"; + $mysql_user = "solarLog"; + $mysql_pass = "iZ6_ZVul0!vE2.qJ0QSc"; + $mysql_db = "solarLog"; + $mysql = new mysqli($mysql_server, $mysql_user, $mysql_pass, $mysql_db); + $consEst = mysqli_query($mysql, $consEstQuery); + $prodEst = mysqli_query($mysql,$prodEstQuery); + $prodReal = mysqli_query($mysql,$prodRealQuery); + if(!$consEst){ + echo "Error:
".mysqli_error($mysql)."
"; + } + if(!$prodEst){ + echo "Error:
".mysqli_error($mysql)."
"; + } + if(!$prodRealQuery){ + echo "Error:
".mysqli_error($mysql)."
"; + } + + $obj = (object)[]; // Cast empty array to object + $obj->labels = []; + $obj->datasets = []; + $i = 0; + $filled = 0; + + if($consEst->num_rows > 1){ + $row = $consEst->fetch_assoc(); + foreach ($row as $name => $value) { + $dataset = (object)[]; + if ($name != "time") { + $dataset->borderColor = $linecolors[$name]; + $dataset->backgroundColor = $linecolors[$name]."66"; + $dataset->borderWidth=1; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + $dataset->stack = $name; + //$dataset->fill = "none"; + $dataset->yAxisID = 'y'; + $dataset->label = $name; + for($i=0;$i<7;$i++){ + $dataset->data[] = NULL; + } + $dataset->data[] = $value; + $obj->datasets[] = clone $dataset; + } + } + while ($row = $consEst->fetch_assoc()) { + $ii = 0; + foreach ($row as $name => $value) { + if ($name != "time") { + $obj->datasets[$ii]->data[] = $value; + $ii++; + } + } + } + } + + if ($prodEst->num_rows > 1) { + $row = $prodEst->fetch_assoc(); + foreach ($row as $name => $value) { + $dataset = (object)[]; + if ($name != "time") { + $dataset->borderColor = $linecolors[$name]; + $dataset->backgroundColor = $linecolors[$name]."55"; + $dataset->borderWidth=1; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + $dataset->stack = $name; + //$dataset->fill = "none"; + $dataset->yAxisID = 'y'; + $dataset->label = $name; + $dataset->data[] = $value; + $obj->datasets[] = clone $dataset; + } else { + $obj->labels[] = $value * 1000; + } + } + while ($row = $prodEst->fetch_assoc()) { + $ii = 1; + foreach ($row as $name => $value) { + if ($name != "time") { + $obj->datasets[$ii]->data[] = $value; + $ii++; + } else { + $obj->labels[] = $value * 1000; + } + } + } + } + + if($prodReal->num_rows > 1){ + $row = $prodReal->fetch_assoc(); + foreach ($row as $name => $value) { + $dataset = (object)[]; + if ($name != "time") { + $dataset->borderColor = $linecolors[$name]; + $dataset->backgroundColor = $linecolors[$name]."55"; + $dataset->borderWidth=1; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + $dataset->stack = $name; + //$dataset->fill = "none"; + $dataset->yAxisID = 'y'; + $dataset->label = $name; + $dataset->data[] = $value; + $obj->datasets[] = clone $dataset; + } + } + while ($row = $prodReal->fetch_assoc()) { + $ii = 2; + foreach ($row as $name => $value) { + if ($name != "time") { + $obj->datasets[$ii]->data[] = $value; + $ii++; + } + } + } + } + + + + +} + + +//header('Content-Type: application/json'); +echo json_encode($obj); +//echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; diff --git a/ajax/getHeaterData.php b/ajax/getHeaterData.php new file mode 100644 index 0000000..a41a712 --- /dev/null +++ b/ajax/getHeaterData.php @@ -0,0 +1,105 @@ +".mysqli_error($mysql)."
"; + } + $obj = (object)[]; // Cast empty array to object + $obj->labels = []; + $obj->datasets = []; + $i = 0; + $filled = 0; + + if ($result->num_rows > 1) { + $ii = 0; + $row = $result->fetch_assoc(); + foreach ($row as $name => $value) { + $dataset = (object)[]; + if ($name != "time") { + $dataset->borderColor = $linecolors[$name]; + $dataset->backgroundColor = $linecolors[$name]."22"; + $dataset->borderWidth=2; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + if(strpos($name,"Speicher") === false) { + $dataset->fill = "none"; + } else { + // $dataset->stack = "Consumers"; + if ($filled == 0) { + $filled = 1; + $dataset->fill = "origin"; + } else { + $dataset->fill = "-1"; + } + $dataset->yAxisID = 'y'; + } + $dataset->label = $name; + + $dataset->data[] = $value; + $obj->datasets[] = clone $dataset; + $ii++; + } else { + $obj->labels[] = $value * 1000; + } + } + while ($row = $result->fetch_assoc()) { + $ii = 0; + foreach ($row as $name => $value) { + if ($name != "time") { + $obj->datasets[$ii]->data[] = $value; + $ii++; + } else { + $obj->labels[] = $value * 1000; + } + } + } + } + + +} + + +//header('Content-Type: application/json'); +echo json_encode($obj); +//echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; diff --git a/ajax/getProdData.php b/ajax/getProdData.php new file mode 100644 index 0000000..5c85273 --- /dev/null +++ b/ajax/getProdData.php @@ -0,0 +1,165 @@ +0, gridP, 0) - IF(battP>0, battP, 0) > 0, -totalConsumption - IF(gridP>0, gridP, 0) - IF(battP>0, battP, 0), 0) AS Direktverbrauch, +IF(battP>0, battP, 0) AS Batteriebezug, +gridPcons AS Netzbezug, +-totalConsumption AS Verbrauch,". +//IF(battP<0, -battP, 0) AS Batterieladung, +"soc AS Ladestand +FROM solarLog.EnergyFlow +WHERE EnergyFlow.datetime BETWEEN DATE_ADD(NOW(),INTERVAL ".($_GET["FROM"])." HOUR) and DATE_ADD(NOW(),INTERVAL ".$_GET["TO"]." HOUR) +ORDER BY EnergyFlow.datetime"; + +$simQuery = "SELECT +UNIX_TIMESTAMP(simPower.period_end) AS time, +power*1000 AS 'Vorhersage' +FROM solarLog.simPower +WHERE simPower.period_end BETWEEN DATE_ADD(NOW(),INTERVAL ".($_GET["FROM"])." HOUR) and DATE_ADD(NOW(),INTERVAL ".$_GET["TO"]." HOUR) +ORDER BY simPower.period_end"; +$linecolors["Solarleistung"] = "#FFFF00"; +$linecolors["Direktverbrauch"] = "#FFcc00"; +$linecolors["Verbrauch"] = "#FFaa44"; +$linecolors["Auto UG"] = "#00aaFF"; +$linecolors["Auto OG"] = "#0044FF"; +$linecolors["Netzbezug"] = "#FF0000"; +$linecolors["Batteriebezug"] = "#00aa00"; +$linecolors["Batterieladung"] = "#0033aa"; +$linecolors["Einspeisung"] = "#b0b0b0"; +$linecolors["Ladestand"] = "#00aa00"; +$linecolors["Vorhersage"] = "#2222FF"; + + + +if (checkLogin()) { + + $mysql = new mysqli($mysql_server, $mysql_solarUser, $mysql_solarPass, $mysql_solarDB); + $result = mysqli_query($mysql, $consQuery); + $simRes = mysqli_query($mysql,$simQuery); + if(!$result){ + echo "Error:
".mysqli_error($mysql)."
"; + } + $obj = (object)[]; // Cast empty array to object + $obj->labels = []; + $obj->datasets = []; + $i = 0; + $filled = 0; + if ($simRes->num_rows > 1) { + $dataset = (object)[]; + $row1 = $simRes->fetch_assoc(); + $dataset->borderColor = $linecolors["Vorhersage"]; + $dataset->backgroundColor = $linecolors["Vorhersage"]."55"; + $dataset->borderWidth=1.5; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + $dataset->stack = "sim"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y'; + $dataset->label = "Vorhersage"; + /*$pt = (object)[]; + $pt->x = $row["time"]*1000; + $pt->y = $row["Vorhersage"]; + $dataset->data[] = clone $pt; + while ($row = $simRes->fetch_assoc()) { + $pt = (object)[]; + $pt->x = $row["time"]*1000 + 30*60*1000; + $pt->y = $row["Vorhersage"]; + $dataset->data[] = clone $pt; + }*/ + $obj->datasets[] = clone $dataset; + $rownext = $simRes->fetch_assoc(); + $nextSimTimestamp = $rownext["time"]*1000 + 30*60*1000; + } + if ($result->num_rows > 1) { + $ii = 1; + $row = $result->fetch_assoc(); + foreach ($row as $name => $value) { + $dataset = (object)[]; + if ($name != "time") { + $dataset->borderColor = $linecolors[$name]; + $dataset->backgroundColor = $linecolors[$name]."22"; + $dataset->borderWidth=1; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + if ($name == "Solarleistung") { + $dataset->stack = "SolarPwr"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y'; + }else if ($name == "Verbrauch") { + $dataset->stack = "ConsPwr"; + $dataset->fill = "1"; + $dataset->yAxisID = 'y'; + }else if ($name == "Batterieladung") { + $dataset->stack = "ConsPwr"; + $dataset->fill = "-1"; + $dataset->backgroundColor = $linecolors[$name]."77"; + $dataset->yAxisID = 'y'; + } else if ($name == "Ladestand") { + $dataset->stack = "Charge"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y1'; + } else { + $dataset->stack = "Consumers"; + if ($filled == 0) { + $filled = 1; + $dataset->fill = "origin"; + } else { + $dataset->fill = "-1"; + } + $dataset->yAxisID = 'y'; + } + $dataset->label = $name; + + $dataset->data[] = $value; + $obj->datasets[] = clone $dataset; + $ii++; + } else { + $obj->labels[] = $value * 1000; + } + } + while ($row = $result->fetch_assoc()) { + $ii = 1; + foreach ($row as $name => $value) { + if ($name != "time") { + $obj->datasets[$ii]->data[] = $value; + $ii++; + } else { + if(($value * 1000) < $nextSimTimestamp){ + $obj->datasets[0]->data[] = $row1["Vorhersage"]; + }else{ + $row1 = $rownext; + $rownext = $simRes->fetch_assoc(); + $nextSimTimestamp = $rownext["time"]*1000 + 30*60*1000; + $obj->datasets[0]->data[] = $row1["Vorhersage"]; + } + $obj->labels[] = $value * 1000; + } + } + } + } + $obj->labels[] = $nextSimTimestamp; //Draw future forecast + $obj->datasets[0]->data[] = $rownext["Vorhersage"]; + while($rownext = $simRes->fetch_assoc()){ + $obj->labels[] = $rownext["time"]*1000 + 30*60*1000; + $obj->datasets[0]->data[] = $rownext["Vorhersage"]; + } +} + + +//header('Content-Type: application/json'); +echo json_encode($obj); +//echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; +?> \ No newline at end of file diff --git a/ajax/getProdData_decade.php b/ajax/getProdData_decade.php new file mode 100644 index 0000000..e6e14a2 --- /dev/null +++ b/ajax/getProdData_decade.php @@ -0,0 +1,98 @@ += DATE_FORMAT(DATE_SUB(now(),INTERVAL 10 YEAR),'%Y') + GROUP BY DATE_FORMAT(datetime, '%Y') +ORDER BY datetime ; "; + +$linecolors["Direktverbrauch"] = "#FFFF00"; +$linecolors["UG"] = "#FFaa00"; +$linecolors["OG"] = "#FF4400"; +$linecolors["Auto UG"] = "#00aaFF"; +$linecolors["Auto OG"] = "#0044FF"; +$linecolors["Heizstab"] = "#FF6600"; +$linecolors["Batterieladung"] = "#00aa00"; +$linecolors["Einspeisung"] = "#FF0000"; +$linecolors["Ladestand"] = "#00aa00"; +$linecolors["Vorhersage"] = "#2222FF"; + + + +if (checkLogin()) { + $mysql = new mysqli($mysql_server, $mysql_solarUser, $mysql_solarPass, $mysql_solarDB); + $result = mysqli_query($mysql, $consQuery); + if(!$result){ + echo "Error:
".mysqli_error($mysql)."
"; + } + $obj = (object)[]; // Cast empty array to object + $obj->labels = []; + $obj->datasets = []; + $i = 0; + $filled = 0; + if ($result->num_rows > 1) { + $ii = 0; + $row = $result->fetch_assoc(); + foreach ($row as $name => $value) { + $dataset = (object)[]; + if ($name != "time") { + $dataset->borderColor = $linecolors[$name]; + $dataset->backgroundColor = $linecolors[$name]."55"; + $dataset->borderWidth=1; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + if ($name == "Solarleistung") { + $dataset->stack = "SolarPwr"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y'; + } else if ($name == "Ladestand") { + $dataset->stack = "Charge"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y1'; + } else { + $dataset->stack = "Consumers"; + if ($filled == 0) { + $filled = 1; + $dataset->fill = "origin"; + } else { + $dataset->fill = "-1"; + } + $dataset->yAxisID = 'y'; + } + $dataset->label = $name; + + $dataset->data[] = $value; + $obj->datasets[] = clone $dataset; + $ii++; + } else { + $obj->labels[] = $value; + } + } + while ($row = $result->fetch_assoc()) { + $ii = 0; + foreach ($row as $name => $value) { + if ($name != "time") { + $obj->datasets[$ii]->data[] = $value; + $ii++; + } else { + $obj->labels[] = $value; + } + } + } + } + + +} + + +//header('Content-Type: application/json'); +echo json_encode($obj); +//echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; diff --git a/ajax/getProdData_month.php b/ajax/getProdData_month.php new file mode 100644 index 0000000..20e86c9 --- /dev/null +++ b/ajax/getProdData_month.php @@ -0,0 +1,98 @@ += DATE_FORMAT(DATE_SUB(now(),INTERVAL 1 MONTH),'%Y%m%d') + GROUP BY DATE_FORMAT(datetime, '%d.%b.') +ORDER BY datetime ; "; + +$linecolors["Direktverbrauch"] = "#FFFF00"; +$linecolors["UG"] = "#FFaa00"; +$linecolors["OG"] = "#FF4400"; +$linecolors["Auto UG"] = "#00aaFF"; +$linecolors["Auto OG"] = "#0044FF"; +$linecolors["Heizstab"] = "#FF6600"; +$linecolors["Batterieladung"] = "#00aa00"; +$linecolors["Einspeisung"] = "#FF0000"; +$linecolors["Ladestand"] = "#00aa00"; +$linecolors["Vorhersage"] = "#2222FF"; + + + +if (checkLogin()) { + $mysql = new mysqli($mysql_server, $mysql_solarUser, $mysql_solarPass, $mysql_solarDB); + $result = mysqli_query($mysql, $consQuery); + if(!$result){ + echo "Error:
".mysqli_error($mysql)."
"; + } + $obj = (object)[]; // Cast empty array to object + $obj->labels = []; + $obj->datasets = []; + $i = 0; + $filled = 0; + if ($result->num_rows > 1) { + $ii = 0; + $row = $result->fetch_assoc(); + foreach ($row as $name => $value) { + $dataset = (object)[]; + if ($name != "time") { + $dataset->borderColor = $linecolors[$name]; + $dataset->backgroundColor = $linecolors[$name]."55"; + $dataset->borderWidth=1; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + if ($name == "Solarleistung") { + $dataset->stack = "SolarPwr"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y'; + } else if ($name == "Ladestand") { + $dataset->stack = "Charge"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y1'; + } else { + $dataset->stack = "Consumers"; + if ($filled == 0) { + $filled = 1; + $dataset->fill = "origin"; + } else { + $dataset->fill = "-1"; + } + $dataset->yAxisID = 'y'; + } + $dataset->label = $name; + + $dataset->data[] = $value; + $obj->datasets[] = clone $dataset; + $ii++; + } else { + $obj->labels[] = $value; + } + } + while ($row = $result->fetch_assoc()) { + $ii = 0; + foreach ($row as $name => $value) { + if ($name != "time") { + $obj->datasets[$ii]->data[] = $value; + $ii++; + } else { + $obj->labels[] = $value; + } + } + } + } + + +} + + +//header('Content-Type: application/json'); +echo json_encode($obj); +//echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; diff --git a/ajax/getProdData_year.php b/ajax/getProdData_year.php new file mode 100644 index 0000000..5719f14 --- /dev/null +++ b/ajax/getProdData_year.php @@ -0,0 +1,98 @@ += DATE_FORMAT(DATE_SUB(now(),INTERVAL 13 MONTH),'%Y%m') + GROUP BY DATE_FORMAT(datetime, '%b. %y') +ORDER BY datetime ; "; + +$linecolors["Direktverbrauch"] = "#FFFF00"; +$linecolors["UG"] = "#FFaa00"; +$linecolors["OG"] = "#FF4400"; +$linecolors["Auto UG"] = "#00aaFF"; +$linecolors["Auto OG"] = "#0044FF"; +$linecolors["Heizstab"] = "#FF6600"; +$linecolors["Batterieladung"] = "#00aa00"; +$linecolors["Einspeisung"] = "#FF0000"; +$linecolors["Ladestand"] = "#00aa00"; +$linecolors["Vorhersage"] = "#2222FF"; + + + +if (checkLogin()) { + $mysql = new mysqli($mysql_server, $mysql_solarUser, $mysql_solarPass, $mysql_solarDB); + $result = mysqli_query($mysql, $consQuery); + if(!$result){ + echo "Error:
".mysqli_error($mysql)."
"; + } + $obj = (object)[]; // Cast empty array to object + $obj->labels = []; + $obj->datasets = []; + $i = 0; + $filled = 0; + if ($result->num_rows > 1) { + $ii = 0; + $row = $result->fetch_assoc(); + foreach ($row as $name => $value) { + $dataset = (object)[]; + if ($name != "time") { + $dataset->borderColor = $linecolors[$name]; + $dataset->backgroundColor = $linecolors[$name]."55"; + $dataset->borderWidth=1; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + if ($name == "Solarleistung") { + $dataset->stack = "SolarPwr"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y'; + } else if ($name == "Ladestand") { + $dataset->stack = "Charge"; + $dataset->fill = "none"; + $dataset->yAxisID = 'y1'; + } else { + $dataset->stack = "Consumers"; + if ($filled == 0) { + $filled = 1; + $dataset->fill = "origin"; + } else { + $dataset->fill = "-1"; + } + $dataset->yAxisID = 'y'; + } + $dataset->label = $name; + + $dataset->data[] = $value; + $obj->datasets[] = clone $dataset; + $ii++; + } else { + $obj->labels[] = $value; + } + } + while ($row = $result->fetch_assoc()) { + $ii = 0; + foreach ($row as $name => $value) { + if ($name != "time") { + $obj->datasets[$ii]->data[] = $value; + $ii++; + } else { + $obj->labels[] = $value; + } + } + } + } + + +} + + +//header('Content-Type: application/json'); +echo json_encode($obj); +//echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; diff --git a/ajax/getStats.php b/ajax/getStats.php new file mode 100644 index 0000000..158a2bb --- /dev/null +++ b/ajax/getStats.php @@ -0,0 +1,155 @@ + date("Y")){ + exit; +} +if(isset($_GET["type"])){ + if(strtolower($_GET["type"]) =="lastyear"){ + $_GET["year"] = date("Y")-1; + }elseif(strtolower($_GET["type"]) =="prelastyear"){ + $_GET["year"] = date("Y")-2; + } +} + +$Query = "SELECT + SUM(gridPcons/12000) as 'Stromverbrauch', + SUM((gridPcons*cost)/12000)+140 as 'Stromkosten (140€ fix)', + SUM(pvP - IF(gridP < 0, -gridP,0) - IF(battP < 0, -battP,0)- heaterPwr + IF(battP > 0, battP,0))*cost/12000 as 'Verbrauchsersparnis', + SUM((gridPfeed*gain)/12000) as 'Einspeisevergütung', + SUM(IF(gridP < 500, heaterPwr, 0)*0.063/12000) as 'Ersparnis Heizung', + SUM(IF(battP > 0, battP, 0)*cost/12000) as 'Ersparnis Batterie', + AVG(autonomy) AS 'Ø Autarkie', + (SUM(PL1_EV+PL2_EV+PL3_EV))/12 AS 'Autoladung ges. EG', + (((SUM(IF(gridP>100,0,PL1_EV+PL2_EV+PL3_EV)))/(SUM(PL1_EV+PL2_EV+PL3_EV))))*100 AS 'Autoladung Solar EG', + (SUM(IF(gridP>100,0,(PL1_EV+PL2_EV+PL3_EV)*cost))/12) AS 'Ersparnis Solarladung EG', + (SUM(PL1_EV+PL2_EV+PL3_EV))/24.5 AS 'Benzin gespart EG', + (SUM(PL1_EVog+PL2_EVog+PL3_EVog))/12 AS 'Autoladung ges. OG', + (((SUM(IF(gridP>100,0,PL1_EVog+PL2_EVog+PL3_EVog)))/(SUM(PL1_EVog+PL2_EVog+PL3_EVog))))*100 AS 'Autoladung Solar OG', + (SUM(IF(gridP>100,0,(PL1_EVog+PL2_EVog+PL3_EVog)*cost))/12) AS 'Ersparnis Solarladung OG', + (SUM(PL1_EVog+PL2_EVog+PL3_EVog))/24.5 AS 'Benzin gespart OG' +FROM EnergyFlow JOIN gridCosts ON DATE(datetime) >= DATE(gridCosts.active_date) AND DATE(datetime) <= DATE(gridCosts.end_date) +WHERE year(datetime) = ".$_GET["year"].";"; + +$PrevQuery = "SELECT + SUM(gridPcons/12000) as 'Stromverbrauch', + SUM((gridPcons*cost)/12000)+140 as 'Stromkosten (140€ fix)', + SUM(pvP - IF(gridP < 0, -gridP,0) - IF(battP < 0, -battP,0)- heaterPwr + IF(battP > 0, battP,0))*cost/12000 as 'Verbrauchsersparnis', + SUM((gridPfeed*gain)/12000) as 'Einspeisevergütung', + SUM(IF(gridP < 500, heaterPwr, 0)*0.063/12000) as 'Ersparnis Heizung', + SUM(IF(battP > 0, battP, 0)*cost/12000) as 'Ersparnis Batterie', + AVG(autonomy) AS 'Ø Autarkie', + (SUM(PL1_EV+PL2_EV+PL3_EV))/12 AS 'Autoladung ges. EG', + (((SUM(IF(gridP>100,0,PL1_EV+PL2_EV+PL3_EV)))/(SUM(PL1_EV+PL2_EV+PL3_EV))))*100 AS 'Autoladung Solar EG', + (SUM(IF(gridP>100,0,(PL1_EV+PL2_EV+PL3_EV)*cost))/12) AS 'Ersparnis Solarladung EG', + (SUM(PL1_EV+PL2_EV+PL3_EV))/24.5 AS 'Benzin gespart EG', + (SUM(PL1_EVog+PL2_EVog+PL3_EVog))/12 AS 'Autoladung ges. OG', + (((SUM(IF(gridP>100,0,PL1_EVog+PL2_EVog+PL3_EVog)))/(SUM(PL1_EVog+PL2_EVog+PL3_EVog))))*100 AS 'Autoladung Solar OG', + (SUM(IF(gridP>100,0,(PL1_EVog+PL2_EVog+PL3_EVog)*cost))/12) AS 'Ersparnis Solarladung OG', + (SUM(PL1_EVog+PL2_EVog+PL3_EVog))/24.5 AS 'Benzin gespart OG' +FROM EnergyFlow JOIN gridCosts ON DATE(datetime) >= DATE(gridCosts.active_date) AND DATE(datetime) <= DATE(gridCosts.end_date) +WHERE year(datetime) = ".($_GET["year"]-1).";"; + + +$units = Array("kWh","€","€","€","€","€","€","%","kWh","%","€","L","kWh","%","€","L"); +$LessIsBetter = Array(true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false); + +function array_insert($array,$values,$offset) { + return array_slice($array, 0, $offset, true) + $values + array_slice($array, $offset, NULL, true); +} + + +if (checkLogin()) { + + $html = "
"; + $mysql = new mysqli($mysql_server, $mysql_solarUser, $mysql_solarPass, $mysql_solarDB); + $Res = mysqli_query($mysql,$Query); + $ResPrev = mysqli_query($mysql,$PrevQuery); + if(!$Res || !$ResPrev){ + echo "Error:
".mysqli_error($mysql)."
"; + } + if ($Res->num_rows > 0) { + $i = 0; + $row = $Res->fetch_assoc(); + $rowPrev = $ResPrev->fetch_assoc(); + //$row["Vergütung+Einsparung Strom"] = $row["Einspeisevergütung"]+$row["Verbrauchsersparnis"]; + $row = array_insert($row,["Verg.+Einsp. Strom" => $row["Einspeisevergütung"]+$row["Verbrauchsersparnis"]],4); + $rowPrev = array_insert($rowPrev,["Verg.+Einsp. Strom" => $rowPrev["Einspeisevergütung"]+$rowPrev["Verbrauchsersparnis"]],4); + $i = 0; + foreach ($row as $name => $value) { + if(str_starts_with($name,"Autoladung ges.")){ + $html .= "

"; + $html .= "
"; + } + /*$html .= "
+
+
+ ".$name." + ". + number_format(floatval($value),2,",",".") + ."".$units[$i++]." + +
+ +
+
";*/ + $html .= "
+
+
+ ".$name." +
+ + +
+
"; + $i++; + } + } + $html .= "
"; +} + + +//header('Content-Type: application/json'); +echo $html; +//echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; diff --git a/ajax/getSunrise.php b/ajax/getSunrise.php new file mode 100644 index 0000000..d741f03 --- /dev/null +++ b/ajax/getSunrise.php @@ -0,0 +1,65 @@ +" . mysqli_error($mysql) . "
"; + } + //$obj[] = (object)[]; // Cast empty array to object + + while ($row = $result->fetch_assoc()) { + $ii = 1; + $anno = (object)[]; + if($row["sunrise"] < (time()+$_GET["FROM"]*60*60)){ + $anno->xMin = (time()+$_GET["FROM"]*60*60)*1000; + }else{ + $anno->xMin = $row["sunrise"]*1000; + } + if($row["sunset"] > (time()+$_GET["TO"]*60*60)){ + $anno->xMax = round(time()+$_GET["TO"]*60*60)*1000; + }else{ + $anno->xMax = $row["sunset"]*1000; + } + $anno->borderWidth = 0; + if($row["sunset"] > (time()+$_GET["FROM"]*60*60)){ + $obj[] = clone $anno; + } + + } +} + + +//header('Content-Type: application/json'); +echo json_encode($obj); +//echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; diff --git a/ajax/getWaterData.php b/ajax/getWaterData.php new file mode 100644 index 0000000..44fc905 --- /dev/null +++ b/ajax/getWaterData.php @@ -0,0 +1,65 @@ +".mysqli_error($mysql)."
"; + } + $obj = (object)[]; // Cast empty array to object + $obj->labels = []; + $obj->datasets = []; + $i = 0; + $filled = 0; + if ($waterRes->num_rows > 1) { + $dataset = (object)[]; + $row = $waterRes->fetch_assoc(); + $dataset->borderColor = $linecolors["Wasserverbrauch"]; + $dataset->backgroundColor = $linecolors["Wasserverbrauch"]."00"; + $dataset->borderWidth=2; + $dataset->pointRadius= 0; + $dataset->pointHoverRadius= 5; + $dataset->tension=0.2; + $dataset->fill = "none"; + $dataset->yAxisID = 'y1'; + $dataset->label = "Wasserverbrauch"; + $pt = (object)[]; + $pt->x = $row["time"]*1000; + $pt->y = $row["Wasserverbrauch"]; + $dataset->data[] = clone $pt; + while ($row = $waterRes->fetch_assoc()) { + $pt = (object)[]; + $pt->x = $row["time"]*1000; + $pt->y = $row["Wasserverbrauch"]; + $dataset->data[] = clone $pt; + } + $obj->datasets[] = clone $dataset; + } + + +} + + +//header('Content-Type: application/json'); +echo json_encode($obj); +//echo '{"labels":[1761322682000,1761322782000,1761322882000,1761322982000,1761323082000,1761323182000,1761323282000],"datasets":[{"stack": "Stack 0","cubicInterpolationMode":"monotone","fill":"origin","label":"Acquisitions by year","data":[10,20,50,20,10,5,70]},{"fill": "false","stack": "Stack 1","cubicInterpolationMode": "monotone","label": "Acquisitions by year","data": [10,20,50,20,10,5,70]}]}'; diff --git a/ajax/heater.php b/ajax/heater.php new file mode 100644 index 0000000..f8e4d56 --- /dev/null +++ b/ajax/heater.php @@ -0,0 +1,73 @@ + 0 && $_POST["setMode"] < 60){ + $pwr = $_POST["setMode"]*100; + $headers[] = "GET /set?mode=man&pwr=".$pwr." HTTP/1.1"; + $headers[] = "Host: ".$hostname; + $headers[] = ""; + $remote = fsockopen("tcp://".$hostname, 80, $errno, $errstr, 5); + fwrite($remote, implode("\r\n", $headers)."\r\n"); + $file = ''; + $file .= fread($remote, 1024); + fclose($remote); + }elseif($_POST["setMode"] == 0){ + $headers[] = "GET /set?mode=eco&pwr=0 HTTP/1.1"; + $headers[] = "Host: ".$hostname; + $headers[] = ""; + $remote = fsockopen("tcp://".$hostname, 80, $errno, $errstr, 5); + fwrite($remote, implode("\r\n", $headers)."\r\n"); + $file = ''; + $file .= fread($remote, 1024); + fclose($remote); + } + $close = 1; + + } + } else { + $close = 1; +} +if (!$close) { + echo << +input[type='range']::-webkit-slider-runnable-track { + background: linear-gradient(to right, #00788F, #00788F), #D7D7D7; + background-size: var(--background-size, 0%) 100%; + background-repeat: no-repeat; +} + + +
+
+
+ + + +
+ Auto + 6.0 kW +
+
+
+
+ENDE; +} diff --git a/ajax/phpMQTT.php b/ajax/phpMQTT.php new file mode 100644 index 0000000..c028b0d --- /dev/null +++ b/ajax/phpMQTT.php @@ -0,0 +1,671 @@ + 'CONNECT', + 2 => 'CONNACK', + 3 => 'PUBLISH', + 4 => 'PUBACK', + 5 => 'PUBREC', + 6 => 'PUBREL', + 7 => 'PUBCOMP', + 8 => 'SUBSCRIBE', + 9 => 'SUBACK', + 10 => 'UNSUBSCRIBE', + 11 => 'UNSUBACK', + 12 => 'PINGREQ', + 13 => 'PINGRESP', + 14 => 'DISCONNECT' + ]; + + /** + * phpMQTT constructor. + * + * @param $address + * @param $port + * @param $clientid + * @param null $cafile + */ + public function __construct($address, $port, $clientid, $cafile = null) + { + $this->broker($address, $port, $clientid, $cafile); + } + + /** + * Sets the broker details + * + * @param $address + * @param $port + * @param $clientid + * @param null $cafile + */ + public function broker($address, $port, $clientid, $cafile = null): void + { + $this->address = $address; + $this->port = $port; + $this->clientid = $clientid; + $this->cafile = $cafile; + } + + /** + * Will try and connect, if fails it will sleep 10s and try again, this will enable the script to recover from a network outage + * + * @param bool $clean - should the client send a clean session flag + * @param null $will + * @param null $username + * @param null $password + * + * @return bool + */ + public function connect_auto($clean = true, $will = null, $username = null, $password = null): bool + { + while ($this->connect($clean, $will, $username, $password) === false) { + sleep(10); + } + return true; + } + + /** + * @param bool $clean - should the client send a clean session flag + * @param null $will + * @param null $username + * @param null $password + * + * @return bool + */ + public function connect($clean = true, $will = null, $username = null, $password = null): bool + { + if ($will) { + $this->will = $will; + } + if ($username) { + $this->username = $username; + } + if ($password) { + $this->password = $password; + } + + if ($this->cafile) { + $socketContext = stream_context_create( + [ + 'ssl' => [ + 'verify_peer_name' => true, + 'cafile' => $this->cafile + ] + ] + ); + $this->socket = stream_socket_client('tls://' . $this->address . ':' . $this->port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $socketContext); + } else { + $this->socket = stream_socket_client('tcp://' . $this->address . ':' . $this->port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT); + } + + if (!$this->socket) { + $this->_errorMessage("stream_socket_create() $errno, $errstr"); + return false; + } + + stream_set_timeout($this->socket, 5); + stream_set_blocking($this->socket, 0); + + $i = 0; + $buffer = ''; + + $buffer .= chr(0x00); + $i++; // Length MSB + $buffer .= chr(0x04); + $i++; // Length LSB + $buffer .= chr(0x4d); + $i++; // M + $buffer .= chr(0x51); + $i++; // Q + $buffer .= chr(0x54); + $i++; // T + $buffer .= chr(0x54); + $i++; // T + $buffer .= chr(0x04); + $i++; // // Protocol Level + + //No Will + $var = 0; + if ($clean) { + $var += 2; + } + + //Add will info to header + if ($this->will !== null) { + $var += 4; // Set will flag + $var += ($this->will['qos'] << 3); //Set will qos + if ($this->will['retain']) { + $var += 32; + } //Set will retain + } + + if ($this->username !== null) { + $var += 128; + } //Add username to header + if ($this->password !== null) { + $var += 64; + } //Add password to header + + $buffer .= chr($var); + $i++; + + //Keep alive + $buffer .= chr($this->keepalive >> 8); + $i++; + $buffer .= chr($this->keepalive & 0xff); + $i++; + + $buffer .= $this->strwritestring($this->clientid, $i); + + //Adding will to payload + if ($this->will !== null) { + $buffer .= $this->strwritestring($this->will['topic'], $i); + $buffer .= $this->strwritestring($this->will['content'], $i); + } + + if ($this->username !== null) { + $buffer .= $this->strwritestring($this->username, $i); + } + if ($this->password !== null) { + $buffer .= $this->strwritestring($this->password, $i); + } + + $head = chr(0x10); + + while ($i > 0) { + $encodedByte = $i % 128; + $i /= 128; + $i = (int)$i; + if ($i > 0) { + $encodedByte |= 128; + } + $head .= chr($encodedByte); + } + + fwrite($this->socket, $head, 2); + fwrite($this->socket, $buffer); + + $string = $this->read(4); + + if (ord($string[0]) >> 4 === 2 && $string[3] === chr(0)) { + $this->_debugMessage('Connected to Broker'); + } else { + $this->_errorMessage( + sprintf( + "Connection failed! (Error: 0x%02x 0x%02x)\n", + ord($string[0]), + ord($string[3]) + ) + ); + return false; + } + + $this->timesinceping = time(); + + return true; + } + + /** + * Reads in so many bytes + * + * @param int $int + * @param bool $nb + * + * @return false|string + */ + public function read($int = 8192, $nb = false) + { + $string = ''; + $togo = $int; + + if ($nb) { + return fread($this->socket, $togo); + } + + while (!feof($this->socket) && $togo > 0) { + $fread = fread($this->socket, $togo); + $string .= $fread; + $togo = $int - strlen($string); + } + + return $string; + } + + /** + * Subscribes to a topic, wait for message and return it + * + * @param $topic + * @param $qos + * + * @return string + */ + public function subscribeAndWaitForMessage($topic, $qos): string + { + $this->subscribe( + [ + $topic => [ + 'qos' => $qos, + 'function' => '__direct_return_message__' + ] + ] + ); + + do { + $return = $this->proc(); + } while ($return === true); + + return $return; + } + + /** + * subscribes to topics + * + * @param $topics + * @param int $qos + */ + public function subscribe($topics, $qos = 0): void + { + $i = 0; + $buffer = ''; + $id = $this->msgid; + $buffer .= chr($id >> 8); + $i++; + $buffer .= chr($id % 256); + $i++; + + foreach ($topics as $key => $topic) { + $buffer .= $this->strwritestring($key, $i); + $buffer .= chr($topic['qos']); + $i++; + $this->topics[$key] = $topic; + } + + $cmd = 0x82; + //$qos + $cmd += ($qos << 1); + + $head = chr($cmd); + $head .= $this->setmsglength($i); + fwrite($this->socket, $head, strlen($head)); + + $this->_fwrite($buffer); + $string = $this->read(2); + + $bytes = ord(substr($string, 1, 1)); + $this->read($bytes); + } + + /** + * Sends a keep alive ping + */ + public function ping(): void + { + $head = chr(0xc0); + $head .= chr(0x00); + fwrite($this->socket, $head, 2); + $this->timesinceping = time(); + $this->_debugMessage('ping sent'); + } + + /** + * sends a proper disconnect cmd + */ + public function disconnect(): void + { + $head = ' '; + $head[0] = chr(0xe0); + $head[1] = chr(0x00); + fwrite($this->socket, $head, 2); + } + + /** + * Sends a proper disconnect, then closes the socket + */ + public function close(): void + { + $this->disconnect(); + stream_socket_shutdown($this->socket, STREAM_SHUT_WR); + } + + /** + * Publishes $content on a $topic + * + * @param $topic + * @param $content + * @param int $qos + * @param bool $retain + */ + public function publish($topic, $content, $qos = 0, $retain = false): void + { + $i = 0; + $buffer = ''; + + $buffer .= $this->strwritestring($topic, $i); + + if ($qos) { + $id = $this->msgid++; + $buffer .= chr($id >> 8); + $i++; + $buffer .= chr($id % 256); + $i++; + } + + $buffer .= $content; + $i += strlen($content); + + $head = ' '; + $cmd = 0x30; + if ($qos) { + $cmd += $qos << 1; + } + if (empty($retain) === false) { + ++$cmd; + } + + $head[0] = chr($cmd); + $head .= $this->setmsglength($i); + + fwrite($this->socket, $head, strlen($head)); + $this->_fwrite($buffer); + } + + /** + * Writes a string to the socket + * + * @param $buffer + * + * @return bool|int + */ + protected function _fwrite($buffer) + { + $buffer_length = strlen($buffer); + for ($written = 0; $written < $buffer_length; $written += $fwrite) { + $fwrite = fwrite($this->socket, substr($buffer, $written)); + if ($fwrite === false) { + return false; + } + } + return $buffer_length; + } + + /** + * Processes a received topic + * + * @param $msg + * + * @retrun bool|string + */ + public function message($msg) + { + $tlen = (ord($msg[0]) << 8) + ord($msg[1]); + $topic = substr($msg, 2, $tlen); + $msg = substr($msg, ($tlen + 2)); + $found = false; + foreach ($this->topics as $key => $top) { + if (preg_match( + '/^' . str_replace( + '#', + '.*', + str_replace( + '+', + "[^\/]*", + str_replace( + '/', + "\/", + str_replace( + '$', + '\$', + $key + ) + ) + ) + ) . '$/', + $topic + )) { + $found = true; + + if ($top['function'] === '__direct_return_message__') { + return $msg; + } + + if (is_callable($top['function'])) { + call_user_func($top['function'], $topic, $msg); + } else { + $this->_errorMessage('Message received on topic ' . $topic . ' but function is not callable.'); + } + } + } + + if ($found === false) { + $this->_debugMessage('msg received but no match in subscriptions'); + } + + return $found; + } + + /** + * The processing loop for an "always on" client + * set true when you are doing other stuff in the loop good for + * watching something else at the same time + * + * @param bool $loop + * + * @return bool | string + */ + public function proc(bool $loop = true) + { + if (feof($this->socket)) { + $this->_debugMessage('eof receive going to reconnect for good measure'); + fclose($this->socket); + $this->connect_auto(false); + if (count($this->topics)) { + $this->subscribe($this->topics); + } + } + + $byte = $this->read(1, true); + + if ((string)$byte === '') { + if ($loop === true) { + usleep(100000); + } + } else { + $cmd = (int)(ord($byte) / 16); + $this->_debugMessage( + sprintf( + 'Received CMD: %d (%s)', + $cmd, + isset(static::$known_commands[$cmd]) === true ? static::$known_commands[$cmd] : 'Unknown' + ) + ); + + $multiplier = 1; + $value = 0; + do { + $digit = ord($this->read(1)); + $value += ($digit & 127) * $multiplier; + $multiplier *= 128; + } while (($digit & 128) !== 0); + + $this->_debugMessage('Fetching: ' . $value . ' bytes'); + + $string = $value > 0 ? $this->read($value) : ''; + + if ($cmd) { + switch ($cmd) { + case 3: //Publish MSG + $return = $this->message($string); + if (is_bool($return) === false) { + return $return; + } + break; + } + } + } + + if ($this->timesinceping < (time() - $this->keepalive)) { + $this->_debugMessage('not had something in a while so ping'); + $this->ping(); + } + + if ($this->timesinceping < (time() - ($this->keepalive * 2))) { + $this->_debugMessage('not seen a packet in a while, disconnecting/reconnecting'); + fclose($this->socket); + $this->connect_auto(false); + if (count($this->topics)) { + $this->subscribe($this->topics); + } + } + + return true; + } + + /** + * Gets the length of a msg, (and increments $i) + * + * @param $msg + * @param $i + * + * @return float|int + */ + protected function getmsglength(&$msg, &$i) + { + $multiplier = 1; + $value = 0; + do { + $digit = ord($msg[$i]); + $value += ($digit & 127) * $multiplier; + $multiplier *= 128; + $i++; + } while (($digit & 128) !== 0); + + return $value; + } + + /** + * @param $len + * + * @return string + */ + protected function setmsglength($len): string + { + $string = ''; + do { + $digit = $len % 128; + $len >>= 7; + // if there are more digits to encode, set the top bit of this digit + if ($len > 0) { + $digit |= 0x80; + } + $string .= chr($digit); + } while ($len > 0); + return $string; + } + + /** + * @param $str + * @param $i + * + * @return string + */ + protected function strwritestring($str, &$i): string + { + $len = strlen($str); + $msb = $len >> 8; + $lsb = $len % 256; + $ret = chr($msb); + $ret .= chr($lsb); + $ret .= $str; + $i += ($len + 2); + return $ret; + } + + /** + * Prints a sting out character by character + * + * @param $string + */ + public function printstr($string): void + { + $strlen = strlen($string); + for ($j = 0; $j < $strlen; $j++) { + $num = ord($string[$j]); + if ($num > 31) { + $chr = $string[$j]; + } else { + $chr = ' '; + } + printf("%4d: %08b : 0x%02x : %s \n", $j, $num, $num, $chr); + } + } + + /** + * @param string $message + */ + protected function _debugMessage(string $message): void + { + if ($this->debug === true) { + echo date('r: ') . $message . PHP_EOL; + } + } + + /** + * @param string $message + */ + protected function _errorMessage(string $message): void + { + error_log('Error:' . $message); + } +} diff --git a/ajax/roomtemp.php b/ajax/roomtemp.php new file mode 100644 index 0000000..ee7a6a8 --- /dev/null +++ b/ajax/roomtemp.php @@ -0,0 +1,55 @@ + 9 && $temp < 31){ + if ($mqtt->connect(true, NULL, $username, $password)) { + $mqtt->publish($topic, $temp, 0, false); + $mqtt->close(); + } + } + $close = 1; + } + } else { + $close = 1; +} +if (!$close) { + echo << +input[type='range']::-webkit-slider-runnable-track { + background: linear-gradient(to right, #00788F, #00788F), #D7D7D7; + background-size: var(--background-size, 0%) 100%; + background-repeat: no-repeat; +} + + +
+
+
+ + + +
+ 10 °C + 30 °C +
+
+
+
+ENDE; +} diff --git a/ajax/sensorDetails.php b/ajax/sensorDetails.php new file mode 100644 index 0000000..3aef6fa --- /dev/null +++ b/ajax/sensorDetails.php @@ -0,0 +1,12 @@ +fetch_array()[0]; +} + + +?> \ No newline at end of file diff --git a/ajax/tahoma.php b/ajax/tahoma.php new file mode 100644 index 0000000..18c0ab6 --- /dev/null +++ b/ajax/tahoma.php @@ -0,0 +1,241 @@ + $dev){ + $start = strpos(strtolower($dev["name"]),strtolower($filter)); + if($start !== false){ + $ret[$i]["name"] = $prefix.substr($dev["name"],strlen($filter)); + $ret[$i]["id"] = $key; + $i++; + } + } + return $ret; +} + +function searchForDevice($device){ + $dev = false; + $devices = json_decode(file_get_contents('../restricted/tahoma_devices.json'), true); + if (strlen($device) < 3 && intval($device) >= 0 && intval($device) < sizeof($devices)) { + $dev = $devices[intval($device)]; + } else if ($key = array_search($device, array_column($devices, "name"))) { + $dev = $devices[$key]; + } else if ($key = array_search($device, array_column($devices, "id"))) { + $dev = $devices[$key]; + } else { + return false; + } + return $dev; +} + +if ($_GET["action"] == "devlist") { + $jalousien = array(); + $url = 'https://gateway-'.$tahoma_PIN.':8443/enduser-mobile-web/1/enduserAPI/setup/devices'; + $ret = getSSLPage($url,$tahoma_token); + $devices = json_decode($ret, true); + $i = 0; + foreach ($devices as $device) { + if ($device["controllableName"] == "io:ExteriorVenetianBlindIOComponent") { + $jalousien[$i]["name"] = $device["label"]; + $jalousien[$i]["id"] = $device["deviceURL"]; + $i = $i + 1; + echo $device["label"] . "(".$device["deviceURL"].")
"; + } + } + $file = fopen('../restricted/tahoma_devices.json', 'w'); + fwrite($file, json_encode($jalousien)); + fclose($file); +}elseif ($_GET["action"] == "pos" && isset($_GET["device"])) { + $dev = searchForDevice($_GET["device"])["id"]; + $devices = json_decode(file_get_contents('../restricted/tahoma_devices.json'), true); + $jalousien = array(); + $url = $url = 'https://gateway-'.$tahoma_PIN.':8443/enduser-mobile-web/1/enduserAPI/setup/devices/'.urlencode($dev)."/states"; + $ret = getSSLPage($url,$tahoma_token); + $states = json_decode($ret, true); + $out = "{"; + foreach ($states as $state){ + if ($state["name"] == "core:SlateOrientationState") + $out .= "\"rotation\":".$state["value"].","; + if ($state["name"] == "core:ClosureState") + $out .= "\"position\":".$state["value"].","; + } + $out = substr($out,0,-1); + $out .= "}"; + echo $out; + header('Connection: close'); + header('Content-Length: '.ob_get_length()); + ob_end_flush(); + @ob_flush(); + flush(); + fastcgi_finish_request(); +}elseif ($_GET["action"] == "moving" && isset($_GET["device"])) { + $dev = searchForDevice($_GET["device"])["id"]; + $devices = json_decode(file_get_contents('../restricted/tahoma_devices.json'), true); + $jalousien = array(); + $url = $url = 'https://gateway-'.$tahoma_PIN.':8443/enduser-mobile-web/1/enduserAPI/setup/devices/'.urlencode($dev)."/states/core:MovingState"; + $ret = getSSLPage($url,$tahoma_token); + $moving = json_decode($ret, true); + if($moving["value"]) + echo "true"; + else + echo "false"; + header('Connection: close'); + header('Content-Length: '.ob_get_length()); + ob_end_flush(); + @ob_flush(); + flush(); + fastcgi_finish_request(); +}elseif ($_GET["action"] == "move" && isset($_GET["pos"]) && isset($_GET["angle"]) && isset($_GET["device"])) { + $angle = $_GET["angle"]; + $pos = $_GET["pos"]; + if ($pos < 0 || $pos > 100) { + echo "Position out of Range"; + exit; + } + if ($angle < 0 || $angle > 100) { + echo "Angle out of Range"; + exit; + } + $dev = searchForDevice($_GET["device"])["id"]; + if($dev == false){ + exit; + } + header('Connection: close'); + header('Content-Length: '.ob_get_length()); + $url = $url = 'https://gateway-'.$tahoma_PIN.':8443/enduser-mobile-web/1/enduserAPI/setup/devices/'.urlencode($dev)."/states/core:MovingState"; + $ret = json_decode(getSSLPage($url,$tahoma_token),true); + + $action = array(); + $action["label"] = "myAction"; + $action["actions"] = array(); + $action["actions"][0]["deviceURL"] = $dev; + $action["actions"][0]["commands"] = array(); + if(!isset($ret["value"])){ + $ret = json_decode(getSSLPage($url,$tahoma_token),true); + } + + if(!isset($ret["value"]) || $ret["value"] == false){ + $url = 'https://gateway-'.$tahoma_PIN.':8443/enduser-mobile-web/1/enduserAPI/exec/apply'; + echo "start"; + ob_end_flush(); + @ob_flush(); + flush(); + fastcgi_finish_request(); + $action["actions"][0]["commands"][0]["name"] = "setClosureAndOrientation"; + $action["actions"][0]["commands"][0]["parameters"][0] = intval($pos); + $action["actions"][0]["commands"][0]["parameters"][1] = intval($angle); + $res = json_decode(postSSLPage($url,json_encode($action),$tahoma_token)); + if(!isset($res["execId"])){ + sleep(1); + $res = json_decode(postSSLPage($url,json_encode($action),$tahoma_token)); //2nd try + } + }elseif($ret["value"] == true){ + $url = 'https://gateway-'.$tahoma_PIN.':8443/enduser-mobile-web/1/enduserAPI/exec/apply'; + echo "stop"; + ob_end_flush(); + @ob_flush(); + flush(); + fastcgi_finish_request(); + $action["actions"][0]["commands"][0]["name"] = "stop"; + $res = json_decode(postSSLPage($url,json_encode($action),$tahoma_token)); + if(!isset($res["execId"])){ + sleep(1); + $res = json_decode(postSSLPage($url,json_encode($action),$tahoma_token)); //2nd try + } + } +} + + + + +if ($_GET["action"] == "myactors") { + if(isset($_GET["filter"])){ + $host = $_GET["filter"]; + $host = str_replace("-", "", strtolower($host)); + }else{ + $host = gethostbyaddr("192.168.179.32"); + $host = str_replace("-", "", strtolower(substr($host, 0, strpos($host, ".")))); + } + $devices = json_decode(file_get_contents('../restricted/tahoma_devices.json'), true); + switch ($host) { + case "tmpegbad": + echo json_encode(filter_devs($devices, "bad ")); + break; + case "tmpegwozi": + echo json_encode(filter_devs($devices, "wozi ")); + break; + case "tmpegflorian": //flori + $ret = filter_devs($devices, "florian ","Flori "); + $ret = array_merge($ret, filter_devs($devices, "magdalena ","Magdalena ")); + echo json_encode($ret); + break; + case "tmpegmagdalena": + echo json_encode(filter_devs($devices, "magdalena ")); + break; + case "tmpegschlafzimmer": + echo json_encode(filter_devs($devices, "schlafzimmer ")); + break; + default: + $ret2=Array(); + //$ret2[0]["name"] = $host; + //$ret2[0]["id"] = 99; + $ret = filter_devs($devices, ""); + //$ret = array_merge($ret, $ret2); + echo json_encode($ret); + break; + } + header('Connection: close'); + header('Content-Length: '.ob_get_length()); + ob_end_flush(); + @ob_flush(); + flush(); + fastcgi_finish_request(); + + + //echo postSSLPage($url,json_encode($action)); +} diff --git a/assets/fonts/font_poppins.css b/assets/fonts/font_poppins.css new file mode 100644 index 0000000..c10f113 --- /dev/null +++ b/assets/fonts/font_poppins.css @@ -0,0 +1,144 @@ +/* devanagari */ +@font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 200; + src: url(pxiByp8kv8JHgFVrLFj_Z11lFc-K.woff2) format('woff2'); + unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09; + } + /* latin-ext */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 200; + src: url(pxiByp8kv8JHgFVrLFj_Z1JlFc-K.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + /* latin */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 200; + src: url(pxiByp8kv8JHgFVrLFj_Z1xlFQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } + /* devanagari */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 300; + src: url(pxiByp8kv8JHgFVrLDz8Z11lFc-K.woff2) format('woff2'); + unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09; + } + /* latin-ext */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 300; + src: url(pxiByp8kv8JHgFVrLDz8Z1JlFc-K.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + /* latin */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 300; + src: url(pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } + /* devanagari */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 400; + src: url(pxiEyp8kv8JHgFVrJJbecmNE.woff2) format('woff2'); + unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09; + } + /* latin-ext */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 400; + src: url(pxiEyp8kv8JHgFVrJJnecmNE.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + /* latin */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 400; + src: url(pxiEyp8kv8JHgFVrJJfecg.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } + /* devanagari */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 600; + src: url(pxiByp8kv8JHgFVrLEj6Z11lFc-K.woff2) format('woff2'); + unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09; + } + /* latin-ext */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 600; + src: url(pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + /* latin */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 600; + src: url(pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } + /* devanagari */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 700; + src: url(pxiByp8kv8JHgFVrLCz7Z11lFc-K.woff2) format('woff2'); + unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09; + } + /* latin-ext */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 700; + src: url(pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + /* latin */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 700; + src: url(pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } + /* devanagari */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 800; + src: url(pxiByp8kv8JHgFVrLDD4Z11lFc-K.woff2) format('woff2'); + unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09; + } + /* latin-ext */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 800; + src: url(pxiByp8kv8JHgFVrLDD4Z1JlFc-K.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; + } + /* latin */ + @font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 800; + src: url(pxiByp8kv8JHgFVrLDD4Z1xlFQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + } \ No newline at end of file diff --git a/assets/fonts/pxiByp8kv8JHgFVrLCz7Z11lFc-K.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLCz7Z11lFc-K.woff2 new file mode 100644 index 0000000..77bd0a9 Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLCz7Z11lFc-K.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2 new file mode 100644 index 0000000..bc847e9 Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2 new file mode 100644 index 0000000..bf022fc Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLDD4Z11lFc-K.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLDD4Z11lFc-K.woff2 new file mode 100644 index 0000000..fa026f3 Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLDD4Z11lFc-K.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLDD4Z1JlFc-K.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLDD4Z1JlFc-K.woff2 new file mode 100644 index 0000000..5fbbeb0 Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLDD4Z1JlFc-K.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLDD4Z1xlFQ.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLDD4Z1xlFQ.woff2 new file mode 100644 index 0000000..f107b36 Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLDD4Z1xlFQ.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLDz8Z11lFc-K.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLDz8Z11lFc-K.woff2 new file mode 100644 index 0000000..a43da9d Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLDz8Z11lFc-K.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLDz8Z1JlFc-K.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLDz8Z1JlFc-K.woff2 new file mode 100644 index 0000000..ccb4f5b Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLDz8Z1JlFc-K.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2 new file mode 100644 index 0000000..962b734 Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLEj6Z11lFc-K.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLEj6Z11lFc-K.woff2 new file mode 100644 index 0000000..b146403 Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLEj6Z11lFc-K.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2 new file mode 100644 index 0000000..8ec78f5 Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2 new file mode 100644 index 0000000..921e962 Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLFj_Z11lFc-K.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLFj_Z11lFc-K.woff2 new file mode 100644 index 0000000..46a9432 Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLFj_Z11lFc-K.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLFj_Z1JlFc-K.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLFj_Z1JlFc-K.woff2 new file mode 100644 index 0000000..c3636c1 Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLFj_Z1JlFc-K.woff2 differ diff --git a/assets/fonts/pxiByp8kv8JHgFVrLFj_Z1xlFQ.woff2 b/assets/fonts/pxiByp8kv8JHgFVrLFj_Z1xlFQ.woff2 new file mode 100644 index 0000000..eeacdfe Binary files /dev/null and b/assets/fonts/pxiByp8kv8JHgFVrLFj_Z1xlFQ.woff2 differ diff --git a/assets/fonts/pxiEyp8kv8JHgFVrJJbecmNE.woff2 b/assets/fonts/pxiEyp8kv8JHgFVrJJbecmNE.woff2 new file mode 100644 index 0000000..1ad5724 Binary files /dev/null and b/assets/fonts/pxiEyp8kv8JHgFVrJJbecmNE.woff2 differ diff --git a/assets/fonts/pxiEyp8kv8JHgFVrJJfecg.woff2 b/assets/fonts/pxiEyp8kv8JHgFVrJJfecg.woff2 new file mode 100644 index 0000000..b69e009 Binary files /dev/null and b/assets/fonts/pxiEyp8kv8JHgFVrJJfecg.woff2 differ diff --git a/assets/fonts/pxiEyp8kv8JHgFVrJJnecmNE.woff2 b/assets/fonts/pxiEyp8kv8JHgFVrJJnecmNE.woff2 new file mode 100644 index 0000000..63f4711 Binary files /dev/null and b/assets/fonts/pxiEyp8kv8JHgFVrJJnecmNE.woff2 differ diff --git a/assets/img/1UG.png b/assets/img/1UG.png new file mode 100644 index 0000000..8308ea0 Binary files /dev/null and b/assets/img/1UG.png differ diff --git a/assets/img/2EG.png b/assets/img/2EG.png new file mode 100644 index 0000000..c0a303a Binary files /dev/null and b/assets/img/2EG.png differ diff --git a/assets/img/3OG.png b/assets/img/3OG.png new file mode 100644 index 0000000..41ae59d Binary files /dev/null and b/assets/img/3OG.png differ diff --git a/assets/img/AdminLTEFullLogo.png b/assets/img/AdminLTEFullLogo.png new file mode 100644 index 0000000..99a098c Binary files /dev/null and b/assets/img/AdminLTEFullLogo.png differ diff --git a/assets/img/AdminLTELogo.png b/assets/img/AdminLTELogo.png new file mode 100644 index 0000000..fdea006 Binary files /dev/null and b/assets/img/AdminLTELogo.png differ diff --git a/assets/img/EG.png b/assets/img/EG.png new file mode 100644 index 0000000..1c287b3 Binary files /dev/null and b/assets/img/EG.png differ diff --git a/assets/img/OG.png b/assets/img/OG.png new file mode 100644 index 0000000..ee6caed Binary files /dev/null and b/assets/img/OG.png differ diff --git a/assets/img/UG.png b/assets/img/UG.png new file mode 100644 index 0000000..cc697a3 Binary files /dev/null and b/assets/img/UG.png differ diff --git a/assets/img/arrow.svg b/assets/img/arrow.svg new file mode 100644 index 0000000..7b55297 --- /dev/null +++ b/assets/img/arrow.svg @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/assets/img/boxed-bg.jpg b/assets/img/boxed-bg.jpg new file mode 100644 index 0000000..4bda80d Binary files /dev/null and b/assets/img/boxed-bg.jpg differ diff --git a/assets/img/boxed-bg.png b/assets/img/boxed-bg.png new file mode 100644 index 0000000..9a10544 Binary files /dev/null and b/assets/img/boxed-bg.png differ diff --git a/assets/img/credit/american-express.png b/assets/img/credit/american-express.png new file mode 100644 index 0000000..24657b5 Binary files /dev/null and b/assets/img/credit/american-express.png differ diff --git a/assets/img/credit/cirrus.png b/assets/img/credit/cirrus.png new file mode 100644 index 0000000..219ec18 Binary files /dev/null and b/assets/img/credit/cirrus.png differ diff --git a/assets/img/credit/mastercard.png b/assets/img/credit/mastercard.png new file mode 100644 index 0000000..75ff0e1 Binary files /dev/null and b/assets/img/credit/mastercard.png differ diff --git a/assets/img/credit/paypal.png b/assets/img/credit/paypal.png new file mode 100644 index 0000000..8c6f493 Binary files /dev/null and b/assets/img/credit/paypal.png differ diff --git a/assets/img/credit/paypal2.png b/assets/img/credit/paypal2.png new file mode 100644 index 0000000..be6260b Binary files /dev/null and b/assets/img/credit/paypal2.png differ diff --git a/assets/img/credit/visa.png b/assets/img/credit/visa.png new file mode 100644 index 0000000..e04715d Binary files /dev/null and b/assets/img/credit/visa.png differ diff --git a/assets/img/default-150x150.png b/assets/img/default-150x150.png new file mode 100644 index 0000000..e5b2551 Binary files /dev/null and b/assets/img/default-150x150.png differ diff --git a/assets/img/favicon.png b/assets/img/favicon.png new file mode 100644 index 0000000..1c75b5f Binary files /dev/null and b/assets/img/favicon.png differ diff --git a/assets/img/favicon2.png b/assets/img/favicon2.png new file mode 100644 index 0000000..64e156f Binary files /dev/null and b/assets/img/favicon2.png differ diff --git a/assets/img/heater.svg b/assets/img/heater.svg new file mode 100644 index 0000000..a67e0fe --- /dev/null +++ b/assets/img/heater.svg @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --.- °C + + + --.- °C + + + --.- °C + + + --.- °C + + + --.- °C + + + --.- °C + + + --.- °C + + + --.- °C + + + --.- °C + + + --.- °C + + + Triac: + + + --.- °C + + + \ No newline at end of file diff --git a/assets/img/icons.png b/assets/img/icons.png new file mode 100644 index 0000000..fae5a10 Binary files /dev/null and b/assets/img/icons.png differ diff --git a/assets/img/pvDetail.svg b/assets/img/pvDetail.svg new file mode 100644 index 0000000..9cc3c64 --- /dev/null +++ b/assets/img/pvDetail.svg @@ -0,0 +1,475 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --.-- kW + --.-- kW + --.-- kW + --W + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -.-- kW + + + + + + + + + + + + -.-- kW + + + #19 + + #19 + + #18 + + #17 + + #16 + + #15 + + #14 + + #13 + + #12 + + #11 + + #10 + + #9 + + #8 + + #7 + + #6 + + #5 + + #1 + + #2 + + #3 + + #4 + + + - W + + - W + + + - W + + - W + + + - W + + - W + + + - W + + - W + + + - W + + - W + + + - W + + + - W + + + + + + \ No newline at end of file diff --git a/assets/img/realtime.svg b/assets/img/realtime.svg new file mode 100644 index 0000000..e276772 --- /dev/null +++ b/assets/img/realtime.svg @@ -0,0 +1,864 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --.-- kW + --.-- kW + --.-- kW + --W + + + + + + + + + + + + + + + + + + + + + + --.-- kW + --°C + --°C + + + + + + + + + + + + + + + + + + + + + + + --.-- kW + + + + + + + + + + + + + + + + + + + + + + + + + + + + --.-- kW + --% + --% + + + + + + + + + + + + + + + + + + + --.-- kW + + + + + + + + + + + + + + --.-- kW + + + + + + + + + + + + + + --.- cm + -.- °C + + + + + + + + + + + + + + --.-- kW + + + + + + + + + + + + + + --.-- kW + --.-- kW + + + + + + + + + + + + + + + + --.-- kW + --.- % + + + + + + + + + + + --.-- kW + --.- A + --.- A + --.- A + + + + + + + + + + Autarkie: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -.-- kW + + + + + + + + + + + + -.-- kW + + + #19 + + #19 + + #18 + + #17 + + #16 + + #15 + + #14 + + #13 + + #12 + + #11 + + #10 + + #9 + + #8 + + #7 + + #6 + + #5 + + #1 + + #2 + + #3 + + #4 + + + - W + + - W + + + - W + + - W + + + - W + + - W + + + - W + + - W + + + - W + + - W + + + - W + + + - W + + + + + + + + + + Tooltip + + \ No newline at end of file diff --git a/authServer.php b/authServer.php new file mode 100644 index 0000000..b8394f8 --- /dev/null +++ b/authServer.php @@ -0,0 +1,354 @@ + getCreateArgs + * | + * navigator.credentials.create <-------------' + * | + * '-------------------------> processCreate + * | + * alert ok or fail <----------------' + * + * ------------------------------------------------------------ + * + * VALIDATION + * + * window.fetch ------------------> getGetArgs + * | + * navigator.credentials.get <----------------' + * | + * '-------------------------> processGet + * | + * alert ok or fail <----------------' + * + * ------------------------------------------------------------ + */ + +require_once './restricted/WebAuthn/src/WebAuthn.php'; +require_once("./restricted/mysql.php"); +try { + session_start(); + + // read get argument and post body + $fn = filter_input(INPUT_GET, 'fn'); + $requireResidentKey = false; + $userVerification = false; + $formats = []; + $msg=""; + + $formats[] = 'android-key'; + $formats[] = 'android-safetynet'; + $formats[] = 'apple'; + $formats[] = 'fido-u2f'; + $formats[] = 'none'; + $formats[] = 'packed'; + $formats[] = 'tpm'; + $userId = "E071229F004A4CDE"; + $userName = "SmartHomeWagner"; + $userDisplayName = "2025Bym0"; + + $post = trim(file_get_contents('php://input')); + if ($post) { + $post = json_decode($post, null, 512, JSON_THROW_ON_ERROR); + } + + $rpId = "nas.el-wa.org"; + if ($rpId === false) { + throw new Exception('invalid relying party ID'); + } + + // cross-platform: true, if type internal is not allowed + // false, if only internal is allowed + // null, if internal and cross-platform is allowed + $crossPlatformAttachment = null; + + // new Instance of the server library. + // make sure that $rpId is the domain name. + $WebAuthn = new lbuchs\WebAuthn\WebAuthn('WebAuthn Library', $rpId, $formats); + $WebAuthn->addRootCertificates('./restricted/WebAuthn/rootCertificates/isrg-root-x2.pem'); + $WebAuthn->addRootCertificates('./restricted/WebAuthn/rootCertificates/solo.pem'); + $WebAuthn->addRootCertificates('./restricted/WebAuthn/rootCertificates/solokey_f1.pem'); + $WebAuthn->addRootCertificates('./restricted/WebAuthn/rootCertificates/solokey_r1.pem'); + $WebAuthn->addRootCertificates('./restricted/WebAuthn/rootCertificates/apple.pem'); + $WebAuthn->addRootCertificates('./restricted/WebAuthn/rootCertificates/yubico.pem'); + $WebAuthn->addRootCertificates('./restricted/WebAuthn/rootCertificates/hypersecu.pem'); + $WebAuthn->addRootCertificates('./restricted/WebAuthn/rootCertificates/globalSign.pem'); + $WebAuthn->addRootCertificates('./restricted/WebAuthn/rootCertificates/googleHardware.pem'); + $WebAuthn->addRootCertificates('./restricted/WebAuthn/rootCertificates/microsoftTpmCollection.pem'); + $WebAuthn->addRootCertificates('./restricted/WebAuthn/rootCertificates/mds'); + + // ------------------------------------ + // request for create arguments + // ------------------------------------ + + if ($fn === 'getCreateArgs') { + $createArgs = $WebAuthn->getCreateArgs(\hex2bin($userId), $userName, $userDisplayName, 60*4, $requireResidentKey, $userVerification, $crossPlatformAttachment); + + header('Content-Type: application/json'); + print(json_encode($createArgs)); + + // save challange to session. you have to deliver it to processGet later. + $_SESSION['challenge'] = $WebAuthn->getChallenge(); + + + + // ------------------------------------ + // request for get arguments + // ------------------------------------ + + } else if ($fn === 'getGetArgs') { + $ids = []; + $mysql = new mysqli($mysql_server,$mysql_user,$mysql_pass,$mysql_db); + $result = mysqli_query($mysql,"SELECT credentialId FROM users WHERE userId = '".base64_encode($userId)."';"); + if(!$result){ + $msg = "Error:
".mysqli_error($mysql)."
"; + } + if ($result->num_rows > 0) { + while($row = $result->fetch_assoc()) { + $ids[] = base64_decode($row["credentialId"]); + } + } + +/* + if ($requireResidentKey) { + if (!isset($_SESSION['registrations']) || !is_array($_SESSION['registrations']) || count($_SESSION['registrations']) === 0) { + throw new Exception('we do not have any registrations in session to check the registration'); + } + + } else { + // load registrations from session stored there by processCreate. + // normaly you have to load the credential Id's for a username + // from the database. + if (isset($_SESSION['registrations']) && is_array($_SESSION['registrations'])) { + foreach ($_SESSION['registrations'] as $reg) { + if ($reg->userId === $userId) { + $ids[] = $reg->credentialId; + } + } + } + } +*/ + if (count($ids) === 0) { + throw new Exception('no registrations in session for userId ' . $userId); + } + + $getArgs = $WebAuthn->getGetArgs($ids, 60*4, true, true, true, true, true, $userVerification); + + header('Content-Type: application/json'); + print(json_encode($getArgs)); + + // save challange to session. you have to deliver it to processGet later. + $_SESSION['challenge'] = $WebAuthn->getChallenge(); + + + + // ------------------------------------ + // process create + // ------------------------------------ + + } else if ($fn === 'processCreate') { + $mysql = new mysqli($mysql_server,$mysql_user,$mysql_pass,$mysql_db); + $clientDataJSON = !empty($post->clientDataJSON) ? base64_decode($post->clientDataJSON) : null; + $attestationObject = !empty($post->attestationObject) ? base64_decode($post->attestationObject) : null; + $challenge = $_SESSION['challenge'] ?? null; + + // processCreate returns data to be stored for future logins. + // in this example we store it in the php session. + // Normally you have to store the data in a database connected + // with the username. + $data = $WebAuthn->processCreate($clientDataJSON, $attestationObject, $challenge, $userVerification === 'required', true, false); + + // add user infos + $data->userId = $userId; + $data->userName = $userName; + $data->userDisplayName = $userDisplayName; + //set Null to 0 + $data->signatureCounter ??= 0; + /* + if (!isset($_SESSION['registrations']) || !array_key_exists('registrations', $_SESSION) || !is_array($_SESSION['registrations'])) { + $_SESSION['registrations'] = []; + }*/ + if(!mysqli_query($mysql,"INSERT INTO users SET userId = '".base64_encode($data->userId)."', credentialId = '".base64_encode($data->credentialId)."', credentialPublicKey = '".base64_encode($data->credentialPublicKey)."', signatureCounter = '".base64_encode($data->signatureCounter)."', name = '".mysqli_real_escape_string($mysql,filter_input(INPUT_GET, 'name'))."';")){ + $msg = "Error:
".mysqli_error($mysql)."
"; + } + else{ + if ($data->rootValid === false) { + $msg = 'registration ok, but certificate does not match any of the selected root ca.'; + } + // $msg = "Data: ".json_last_error();//json_encode($data);//'registration success.'; + } + /* + $_SESSION['registrations'][] = $data; +*/ + $return = new stdClass(); + $return->success = true; + $return->msg = $msg; + + header('Content-Type: application/json'); + print(json_encode($return)); + + + + // ------------------------------------ + // proccess get + // ------------------------------------ + + } else if ($fn === 'processGet') { + $clientDataJSON = !empty($post->clientDataJSON) ? base64_decode($post->clientDataJSON) : null; + $authenticatorData = !empty($post->authenticatorData) ? base64_decode($post->authenticatorData) : null; + $signature = !empty($post->signature) ? base64_decode($post->signature) : null; + $userHandle = !empty($post->userHandle) ? base64_decode($post->userHandle) : null; + $id = !empty($post->id) ? base64_decode($post->id) : null; + $challenge = $_SESSION['challenge'] ?? ''; + $credentialPublicKey = null; + + // looking up correspondending public key of the credential id + // you should also validate that only ids of the given user name + // are taken for the login. + $mysql_server = "localhost:3310"; + $mysql_user = "Logins"; + $mysql_pass = "SPykMjT(CC.P_*b7"; + $mysql_db = "Logins"; + $mysql = new mysqli($mysql_server,$mysql_user,$mysql_pass,$mysql_db); + $result = mysqli_query($mysql,"SELECT credentialPublicKey, userId, name FROM users WHERE credentialId = '".base64_encode($id)."';"); + if(!$result){ + $msg = "Error:
".mysqli_error($mysql)."
"; + } + if ($result->num_rows > 0) { + $row = $result->fetch_assoc(); + $credentialPublicKey = base64_decode($row["credentialPublicKey"]); + $reg = (object) ['userId' => base64_decode($row["userId"])]; + $username = $row["name"]; + } /*else { + if (isset($_SESSION['registrations']) && is_array($_SESSION['registrations'])) { + foreach ($_SESSION['registrations'] as $reg) { + if ($reg->credentialId === $id) { + $credentialPublicKey = $reg->credentialPublicKey; + break; + } + } + } + }*/ + if ($credentialPublicKey === null) { + throw new Exception('Public Key for credential ID not found!'); + } + + // if we have resident key, we have to verify that the userHandle is the provided userId at registration + if ($requireResidentKey && $userHandle !== hex2bin($reg->userId)) { + throw new \Exception('userId doesnt match (is ' . bin2hex($userHandle) . ' but expect ' . $reg->userId . ')'); + } + + // process the get request. throws WebAuthnException if it fails + $WebAuthn->processGet($clientDataJSON, $authenticatorData, $signature, $credentialPublicKey, $challenge, null, $userVerification === 'required'); + + $return = new stdClass(); + $return->success = true; + $authKey = strval(random_int(0,99999999)); + $result = mysqli_query($mysql,"UPDATE users SET authKey=".$authKey.", lastAuth=NOW() WHERE credentialId = '".base64_encode($id)."';"); + $_SESSION["Logged"] = true; + $_SESSION["user"] = $username; + $_SESSION["authKey"] = $authKey; + header('Content-Type: application/json'); + print(json_encode($return)); + + // ------------------------------------ + // proccess clear registrations + // ------------------------------------ + + } else if ($fn === 'clearRegistrations') { + $_SESSION['registrations'] = null; + $_SESSION['challenge'] = null; + + $return = new stdClass(); + $return->success = true; + $return->msg = 'all registrations deleted'; + + header('Content-Type: application/json'); + print(json_encode($return)); + + // ------------------------------------ + // display stored data as HTML + // ------------------------------------ + + } /*else if ($fn === 'getStoredDataHtml') { + $html = '' . "\n"; + $html .= ''; + $html .= ''; + if (isset($_SESSION['registrations']) && is_array($_SESSION['registrations'])) { + $html .= '

There are ' . count($_SESSION['registrations']) . ' registrations in this session:

'; + foreach ($_SESSION['registrations'] as $reg) { + $html .= ''; + foreach ($reg as $key => $value) { + + if (is_bool($value)) { + $value = $value ? 'yes' : 'no'; + + } else if (is_null($value)) { + $value = 'null'; + + } else if (is_object($value)) { + $value = chunk_split(strval($value), 64); + + } else if (is_string($value) && strlen($value) > 0 && htmlspecialchars($value, ENT_QUOTES) === '') { + $value = chunk_split(bin2hex($value), 64); + } + $html .= ''; + } + $html .= '
' . htmlspecialchars($key) . '' . nl2br(htmlspecialchars($value)) . '
'; + } + } else { + $html .= '

There are no registrations.

'; + } + $html .= ''; + + header('Content-Type: text/html'); + print $html; + + // ------------------------------------ + // get root certs from FIDO Alliance Metadata Service + // ------------------------------------ + + } */else if ($fn === 'queryFidoMetaDataService') { + + $mdsFolder = './restricted/WebAuthn/rootCertificates/mds'; + $success = false; + $msg = null; + + // fetch only 1x / 24h + $lastFetch = \is_file($mdsFolder . '/lastMdsFetch.txt') ? \strtotime(\file_get_contents($mdsFolder . '/lastMdsFetch.txt')) : 0; + if ($lastFetch + (3600*48) < \time()) { + $cnt = $WebAuthn->queryFidoMetaDataService($mdsFolder); + $success = true; + \file_put_contents($mdsFolder . '/lastMdsFetch.txt', date('r')); + $msg = 'successfully queried FIDO Alliance Metadata Service - ' . $cnt . ' certificates downloaded.'; + + } else { + $msg = 'Fail: last fetch was at ' . date('r', $lastFetch) . ' - fetch only 1x every 48h'; + } + + $return = new stdClass(); + $return->success = $success; + $return->msg = $msg; + + header('Content-Type: application/json'); + print(json_encode($return)); + } + +} catch (Throwable $ex) { + $return = new stdClass(); + $return->success = false; + $return->msg = $ex->getMessage(); + + header('Content-Type: application/json'); + print(json_encode($return)); +} \ No newline at end of file diff --git a/css/adminlte.css b/css/adminlte.css new file mode 100644 index 0000000..ab689da --- /dev/null +++ b/css/adminlte.css @@ -0,0 +1,15657 @@ +@charset "UTF-8"; +/*! + * AdminLTE v4.0.0-rc5 + * Author: Colorlib + * Website: AdminLTE.io + * License: Open source - MIT + */ +: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: rgb(5.2, 44, 101.2); + --bs-secondary-text-emphasis: rgb(43.2, 46.8, 50); + --bs-success-text-emphasis: rgb(10, 54, 33.6); + --bs-info-text-emphasis: rgb(5.2, 80.8, 96); + --bs-warning-text-emphasis: rgb(102, 77.2, 2.8); + --bs-danger-text-emphasis: rgb(88, 21.2, 27.6); + --bs-light-text-emphasis: #495057; + --bs-dark-text-emphasis: #495057; + --bs-primary-bg-subtle: rgb(206.6, 226, 254.6); + --bs-secondary-bg-subtle: rgb(225.6, 227.4, 229); + --bs-success-bg-subtle: rgb(209, 231, 220.8); + --bs-info-bg-subtle: rgb(206.6, 244.4, 252); + --bs-warning-bg-subtle: rgb(255, 242.6, 205.4); + --bs-danger-bg-subtle: rgb(248, 214.6, 217.8); + --bs-light-bg-subtle: rgb(251.5, 252, 252.5); + --bs-dark-bg-subtle: #ced4da; + --bs-primary-border-subtle: rgb(158.2, 197, 254.2); + --bs-secondary-border-subtle: rgb(196.2, 199.8, 203); + --bs-success-border-subtle: rgb(163, 207, 186.6); + --bs-info-border-subtle: rgb(158.2, 233.8, 249); + --bs-warning-border-subtle: rgb(255, 230.2, 155.8); + --bs-danger-border-subtle: rgb(241, 174.2, 180.6); + --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: "Source Sans 3", 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: rgb(10.4, 88, 202.4); + --bs-link-hover-color-rgb: 10, 88, 202; + --bs-code-color: #d63384; + --bs-highlight-color: #212529; + --bs-highlight-bg: rgb(255, 242.6, 205.4); + --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: rgb(42.5, 47.5, 52.5); + --bs-tertiary-bg-rgb: 43, 48, 53; + --bs-primary-text-emphasis: rgb(109.8, 168, 253.8); + --bs-secondary-text-emphasis: rgb(166.8, 172.2, 177); + --bs-success-text-emphasis: rgb(117, 183, 152.4); + --bs-info-text-emphasis: rgb(109.8, 223.2, 246); + --bs-warning-text-emphasis: rgb(255, 217.8, 106.2); + --bs-danger-text-emphasis: rgb(234, 133.8, 143.4); + --bs-light-text-emphasis: #f8f9fa; + --bs-dark-text-emphasis: #dee2e6; + --bs-primary-bg-subtle: rgb(2.6, 22, 50.6); + --bs-secondary-bg-subtle: rgb(21.6, 23.4, 25); + --bs-success-bg-subtle: rgb(5, 27, 16.8); + --bs-info-bg-subtle: rgb(2.6, 40.4, 48); + --bs-warning-bg-subtle: rgb(51, 38.6, 1.4); + --bs-danger-bg-subtle: rgb(44, 10.6, 13.8); + --bs-light-bg-subtle: #343a40; + --bs-dark-bg-subtle: #1a1d20; + --bs-primary-border-subtle: rgb(7.8, 66, 151.8); + --bs-secondary-border-subtle: rgb(64.8, 70.2, 75); + --bs-success-border-subtle: rgb(15, 81, 50.4); + --bs-info-border-subtle: rgb(7.8, 121.2, 144); + --bs-warning-border-subtle: rgb(153, 115.8, 4.2); + --bs-danger-border-subtle: rgb(132, 31.8, 41.4); + --bs-light-border-subtle: #495057; + --bs-dark-border-subtle: #343a40; + --bs-heading-color: inherit; + --bs-link-color: rgb(109.8, 168, 253.8); + --bs-link-hover-color: rgb(138.84, 185.4, 254.04); + --bs-link-color-rgb: 110, 168, 254; + --bs-link-hover-color-rgb: 139, 185, 254; + --bs-code-color: rgb(230.4, 132.6, 181.2); + --bs-highlight-color: #dee2e6; + --bs-highlight-bg: rgb(102, 77.2, 2.8); + --bs-border-color: #495057; + --bs-border-color-translucent: rgba(255, 255, 255, 0.15); + --bs-form-valid-color: rgb(117, 183, 152.4); + --bs-form-valid-border-color: rgb(117, 183, 152.4); + --bs-form-invalid-color: rgb(234, 133.8, 143.4); + --bs-form-invalid-border-color: rgb(234, 133.8, 143.4); +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; + } +} + +body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: var(--bs-border-width) solid; + opacity: 0.25; +} + +h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + margin-top: 0; + margin-bottom: 0.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 + 0.9vw); +} +@media (min-width: 1200px) { + h2, .h2 { + font-size: 2rem; + } +} + +h3, .h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + h3, .h3 { + font-size: 1.75rem; + } +} + +h4, .h4 { + font-size: calc(1.275rem + 0.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; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small, .small { + font-size: 0.875em; +} + +mark, .mark { + padding: 0.1875em; + color: var(--bs-highlight-color); + background-color: var(--bs-highlight-bg); +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.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; +} + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.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: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-secondary-color); + text-align: left; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +label { + display: inline-block; +} + +button { + border-radius: 0; +} + +button:focus:not(:focus-visible) { + outline: 0; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +select { + text-transform: none; +} + +[role=button] { + cursor: pointer; +} + +select { + word-wrap: normal; +} +select:disabled { + opacity: 1; +} + +[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; +} + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled) { + cursor: pointer; +} + +::-moz-focus-inner { + padding: 0; + border-style: none; +} + +textarea { + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + line-height: inherit; + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } +} +legend + * { + clear: left; +} + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; +} + +::-webkit-inner-spin-button { + height: auto; +} + +[type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; +} +[type=search]::-webkit-search-cancel-button { + cursor: pointer; + filter: grayscale(1); +} + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::file-selector-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +iframe { + border: 0; +} + +summary { + display: list-item; + cursor: pointer; +} + +progress { + vertical-align: baseline; +} + +[hidden] { + display: none !important; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.625rem + 4.5vw); +} +@media (min-width: 1200px) { + .display-1 { + font-size: 5rem; + } +} + +.display-2 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.575rem + 3.9vw); +} +@media (min-width: 1200px) { + .display-2 { + font-size: 4.5rem; + } +} + +.display-3 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.525rem + 3.3vw); +} +@media (min-width: 1200px) { + .display-3 { + font-size: 4rem; + } +} + +.display-4 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.475rem + 2.7vw); +} +@media (min-width: 1200px) { + .display-4 { + font-size: 3.5rem; + } +} + +.display-5 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.425rem + 2.1vw); +} +@media (min-width: 1200px) { + .display-5 { + font-size: 3rem; + } +} + +.display-6 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.375rem + 1.5vw); +} +@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: 0.5rem; +} + +.initialism { + font-size: 0.875em; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} +.blockquote > :last-child { + margin-bottom: 0; +} + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; +} +.blockquote-footer::before { + content: "— "; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: var(--bs-body-bg); + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + box-shadow: var(--bs-box-shadow-sm); + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 0.875em; + color: var(--bs-secondary-color); +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +:root { + --bs-breakpoint-xs: 0; + --bs-breakpoint-sm: 576px; + --bs-breakpoint-md: 768px; + --bs-breakpoint-lg: 992px; + --bs-breakpoint-xl: 1600px; + --bs-breakpoint-xxl: 2000px; +} + +.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(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} +.row-info { + --bs-gutter-x: 0.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.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.33333333%; +} + +.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.66666667%; +} + +.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.33333333%; + } + .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.66666667%; + } + .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.33333333%; + } + .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.66666667%; + } + .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.33333333%; + } + .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.66666667%; + } + .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.33333333%; + } + .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.66666667%; + } + .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.33333333%; + } + .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.66666667%; + } + .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-emphasis-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-emphasis-color); + --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05); + --bs-table-active-color: var(--bs-emphasis-color); + --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1); + --bs-table-hover-color: var(--bs-emphasis-color); + --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075); + width: 100%; + margin-bottom: 1rem; + vertical-align: top; + border-color: var(--bs-table-border-color); +} +.table > :not(caption) > * > * { + padding: 0.5rem 0.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: 0.25rem 0.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(even) { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg); +} + +.table-active { + --bs-table-color-state: var(--bs-table-active-color); + --bs-table-bg-state: var(--bs-table-active-bg); +} + +.table-hover > tbody > tr:hover > * { + --bs-table-color-state: var(--bs-table-hover-color); + --bs-table-bg-state: var(--bs-table-hover-bg); +} + +.tools { + opacity: 0; +} + +tr:hover .tools { + opacity: 1; +} + +.table-primary { + --bs-table-color: #000; + --bs-table-bg: rgb(206.6, 226, 254.6); + --bs-table-border-color: rgb(165.28, 180.8, 203.68); + --bs-table-striped-bg: rgb(196.27, 214.7, 241.87); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(185.94, 203.4, 229.14); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(191.105, 209.05, 235.505); + --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: rgb(225.6, 227.4, 229); + --bs-table-border-color: rgb(180.48, 181.92, 183.2); + --bs-table-striped-bg: rgb(214.32, 216.03, 217.55); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(203.04, 204.66, 206.1); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(208.68, 210.345, 211.825); + --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: rgb(209, 231, 220.8); + --bs-table-border-color: rgb(167.2, 184.8, 176.64); + --bs-table-striped-bg: rgb(198.55, 219.45, 209.76); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(188.1, 207.9, 198.72); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(193.325, 213.675, 204.24); + --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: rgb(206.6, 244.4, 252); + --bs-table-border-color: rgb(165.28, 195.52, 201.6); + --bs-table-striped-bg: rgb(196.27, 232.18, 239.4); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(185.94, 219.96, 226.8); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(191.105, 226.07, 233.1); + --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: rgb(255, 242.6, 205.4); + --bs-table-border-color: rgb(204, 194.08, 164.32); + --bs-table-striped-bg: rgb(242.25, 230.47, 195.13); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(229.5, 218.34, 184.86); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(235.875, 224.405, 189.995); + --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: rgb(248, 214.6, 217.8); + --bs-table-border-color: rgb(198.4, 171.68, 174.24); + --bs-table-striped-bg: rgb(235.6, 203.87, 206.91); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(223.2, 193.14, 196.02); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(229.4, 198.505, 201.465); + --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: rgb(198.4, 199.2, 200); + --bs-table-striped-bg: rgb(235.6, 236.55, 237.5); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(223.2, 224.1, 225); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(229.4, 230.325, 231.25); + --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: rgb(77.4, 80.6, 83.8); + --bs-table-striped-bg: rgb(44.1, 47.9, 51.7); + --bs-table-striped-color: #fff; + --bs-table-active-bg: rgb(55.2, 58.8, 62.4); + --bs-table-active-color: #fff; + --bs-table-hover-bg: rgb(49.65, 53.35, 57.05); + --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: 0.5rem; +} + +.col-form-label { + padding-top: calc(0.375rem + var(--bs-border-width)); + padding-bottom: calc(0.375rem + var(--bs-border-width)); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + var(--bs-border-width)); + padding-bottom: calc(0.5rem + var(--bs-border-width)); + font-size: 1.25rem; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + var(--bs-border-width)); + padding-bottom: calc(0.25rem + var(--bs-border-width)); + font-size: 0.875rem; +} + +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-secondary-color); +} + +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.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); + box-shadow: var(--bs-box-shadow-inset); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} +.form-control[type=file] { + overflow: hidden; +} +.form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control:focus { + color: var(--bs-body-color); + background-color: var(--bs-body-bg); + border-color: rgb(134, 182.5, 254); + outline: 0; + box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-control::-webkit-date-and-time-value { + min-width: 85px; + height: 1.5em; + margin: 0; +} +.form-control::-webkit-datetime-edit { + display: block; + padding: 0; +} +.form-control::-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::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + margin-inline-end: 0.75rem; + color: var(--bs-body-color); + background-color: var(--bs-tertiary-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: var(--bs-border-width); + border-radius: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control::file-selector-button { + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: var(--bs-secondary-bg); +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: var(--bs-body-color); + background-color: transparent; + border: solid transparent; + border-width: var(--bs-border-width) 0; +} +.form-control-plaintext:focus { + outline: 0; +} +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm { + min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); +} +.form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + margin-inline-end: 0.5rem; +} + +.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); +} +.form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + margin-inline-end: 1rem; +} + +textarea.form-control { + min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); +} +textarea.form-control-sm { + min-height: calc(1.5em + 0.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 + 0.75rem + calc(var(--bs-border-width) * 2)); + padding: 0.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 + 0.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: 0.375rem 2.25rem 0.375rem 0.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 0.75rem center; + background-size: 16px 12px; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + box-shadow: var(--bs-box-shadow-inset); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-select { + transition: none; + } +} +.form-select:focus { + border-color: rgb(134, 182.5, 254); + outline: 0; + box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-select[multiple], .form-select[size]:not([size="1"]) { + padding-right: 0.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: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); +} + +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.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: 0.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); + flex-shrink: 0; + width: 1em; + height: 1em; + margin-top: 0.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; + print-color-adjust: exact; +} +.form-check-input[type=checkbox] { + border-radius: 0.25em; +} +.form-check-input[type=radio] { + border-radius: 50%; +} +.form-check-input:active { + filter: brightness(90%); +} +.form-check-input:focus { + border-color: rgb(134, 182.5, 254); + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.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: 0.5; +} +.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + cursor: default; + opacity: 0.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 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-switch .form-check-input { + transition: none; + } +} +.form-switch .form-check-input:focus { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28134, 182.5, 254%29'/%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: 0.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 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range::-moz-focus-outer { + border: 0; +} +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + -webkit-appearance: none; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} +.form-range::-webkit-slider-thumb:active { + background-color: rgb(182.4, 211.5, 254.4); +} +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem; + box-shadow: var(--bs-box-shadow-inset); +} +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + -moz-appearance: none; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} +.form-range::-moz-range-thumb:active { + background-color: rgb(182.4, 211.5, 254.4); +} +.form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem; + box-shadow: var(--bs-box-shadow-inset); +} +.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; + max-width: 100%; + height: 100%; + padding: 1rem 0.75rem; + overflow: hidden; + color: rgba(var(--bs-body-color-rgb), 0.65); + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + pointer-events: none; + border: var(--bs-border-width) solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-floating > label { + transition: none; + } +} +.form-floating > .form-control, +.form-floating > .form-control-plaintext { + padding: 1rem 0.75rem; +} +.form-floating > .form-control::-moz-placeholder, .form-floating > .form-control-plaintext::-moz-placeholder { + color: transparent; +} +.form-floating > .form-control::placeholder, +.form-floating > .form-control-plaintext::placeholder { + color: transparent; +} +.form-floating > .form-control:not(:-moz-placeholder), .form-floating > .form-control-plaintext:not(:-moz-placeholder) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), +.form-floating > .form-control-plaintext:focus, +.form-floating > .form-control-plaintext:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:-webkit-autofill, +.form-floating > .form-control-plaintext:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; + padding-left: 0.75rem; +} +.form-floating > .form-control:not(:-moz-placeholder) ~ label { + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:focus ~ label, +.form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .form-control-plaintext ~ label, +.form-floating > .form-select ~ label { + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:-webkit-autofill ~ label { + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > textarea:not(:-moz-placeholder) ~ 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 > textarea:focus ~ label::after, +.form-floating > textarea:not(: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 > textarea:disabled ~ label::after { + background-color: var(--bs-secondary-bg); +} +.form-floating > .form-control-plaintext ~ label { + border-width: var(--bs-border-width) 0; +} +.form-floating > :disabled ~ label, +.form-floating > .form-control:disabled ~ label { + color: #6c757d; +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .form-select, +.input-group > .form-floating { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} +.input-group > .form-control:focus, +.input-group > .form-select:focus, +.input-group > .form-floating:focus-within { + z-index: 5; +} +.input-group .btn { + position: relative; + z-index: 2; +} +.input-group .btn:focus { + z-index: 5; +} + +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.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 > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); +} + +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); +} + +.input-group-lg > .form-select, +.input-group-sm > .form-select { + padding-right: 3rem; +} + +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3), +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4), +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control, +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: calc(-1 * var(--bs-border-width)); + 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: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-valid-color); +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: var(--bs-success); + border-radius: var(--bs-border-radius); +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: var(--bs-form-valid-border-color); + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.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.1'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:valid, .form-select.is-valid { + border-color: var(--bs-form-valid-border-color); +} +.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%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.1'/%3e%3c/svg%3e"); + padding-right: 4.125rem; + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:valid:focus, .form-select.is-valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} + +.was-validated .form-control-color:valid, .form-control-color.is-valid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: var(--bs-form-valid-border-color); +} +.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: var(--bs-form-valid-color); +} +.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: var(--bs-form-valid-color); +} + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid, +.was-validated .input-group > .form-select:not(:focus):valid, +.input-group > .form-select:not(:focus).is-valid, +.was-validated .input-group > .form-floating:not(:focus-within):valid, +.input-group > .form-floating:not(:focus-within).is-valid { + z-index: 3; +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-invalid-color); +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: var(--bs-danger); + border-radius: var(--bs-border-radius); +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: var(--bs-form-invalid-border-color); + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:invalid, .form-select.is-invalid { + border-color: var(--bs-form-invalid-border-color); +} +.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%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 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} + +.was-validated .form-control-color:invalid, .form-control-color.is-invalid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: var(--bs-form-invalid-border-color); +} +.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: var(--bs-form-invalid-color); +} +.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: var(--bs-form-invalid-color); +} + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid, +.was-validated .input-group > .form-select:not(:focus):invalid, +.input-group > .form-select:not(:focus).is-invalid, +.was-validated .input-group > .form-floating:not(:focus-within):invalid, +.input-group > .form-floating:not(:focus-within).is-invalid { + z-index: 4; +} + +.btn { + --bs-btn-padding-x: 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); + box-shadow: var(--bs-btn-box-shadow); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); +} +.btn-check + .btn:hover { + color: var(--bs-btn-color); + background-color: var(--bs-btn-bg); + border-color: var(--bs-btn-border-color); +} +.btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-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-box-shadow), var(--bs-btn-focus-box-shadow); +} +.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show { + color: var(--bs-btn-active-color); + background-color: var(--bs-btn-active-bg); + border-color: var(--bs-btn-active-border-color); + box-shadow: var(--bs-btn-active-shadow); +} +.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible { + box-shadow: var(--bs-btn-active-shadow), var(--bs-btn-focus-box-shadow); +} +.btn-check:checked:focus-visible + .btn { + box-shadow: var(--bs-btn-active-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); + box-shadow: none; +} + +.btn-primary { + --bs-btn-color: #fff; + --bs-btn-bg: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: rgb(11.05, 93.5, 215.05); + --bs-btn-hover-border-color: rgb(10.4, 88, 202.4); + --bs-btn-focus-shadow-rgb: 49, 132, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: rgb(10.4, 88, 202.4); + --bs-btn-active-border-color: rgb(9.75, 82.5, 189.75); + --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: rgb(91.8, 99.45, 106.25); + --bs-btn-hover-border-color: rgb(86.4, 93.6, 100); + --bs-btn-focus-shadow-rgb: 130, 138, 145; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: rgb(86.4, 93.6, 100); + --bs-btn-active-border-color: rgb(81, 87.75, 93.75); + --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: rgb(21.25, 114.75, 71.4); + --bs-btn-hover-border-color: rgb(20, 108, 67.2); + --bs-btn-focus-shadow-rgb: 60, 153, 110; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: rgb(20, 108, 67.2); + --bs-btn-active-border-color: rgb(18.75, 101.25, 63); + --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: rgb(49.3, 209.95, 242.25); + --bs-btn-hover-border-color: rgb(37.2, 207.3, 241.5); + --bs-btn-focus-shadow-rgb: 11, 172, 204; + --bs-btn-active-color: #000; + --bs-btn-active-bg: rgb(61.4, 212.6, 243); + --bs-btn-active-border-color: rgb(37.2, 207.3, 241.5); + --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: rgb(255, 202.3, 44.2); + --bs-btn-hover-border-color: rgb(255, 199.2, 31.8); + --bs-btn-focus-shadow-rgb: 217, 164, 6; + --bs-btn-active-color: #000; + --bs-btn-active-bg: rgb(255, 205.4, 56.6); + --bs-btn-active-border-color: rgb(255, 199.2, 31.8); + --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: rgb(187, 45.05, 58.65); + --bs-btn-hover-border-color: rgb(176, 42.4, 55.2); + --bs-btn-focus-shadow-rgb: 225, 83, 97; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: rgb(176, 42.4, 55.2); + --bs-btn-active-border-color: rgb(165, 39.75, 51.75); + --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: rgb(210.8, 211.65, 212.5); + --bs-btn-hover-border-color: rgb(198.4, 199.2, 200); + --bs-btn-focus-shadow-rgb: 211, 212, 213; + --bs-btn-active-color: #000; + --bs-btn-active-bg: rgb(198.4, 199.2, 200); + --bs-btn-active-border-color: rgb(186, 186.75, 187.5); + --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: rgb(66.3, 69.7, 73.1); + --bs-btn-hover-border-color: rgb(55.2, 58.8, 62.4); + --bs-btn-focus-shadow-rgb: 66, 70, 73; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: rgb(77.4, 80.6, 83.8); + --bs-btn-active-border-color: rgb(55.2, 58.8, 62.4); + --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-lg, .btn-group-lg > .btn { + --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-sm, .btn-group-sm > .btn { + --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 0.15s linear; +} +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} +.collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing.collapse-horizontal { + transition: none; + } +} + +.dropup, +.dropend, +.dropdown, +.dropstart, +.dropup-center, +.dropdown-center { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.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: var(--bs-box-shadow); + --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); + box-shadow: var(--bs-dropdown-box-shadow); +} +.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: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.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: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.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: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropstart .dropdown-toggle::after { + display: none; +} +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.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:hover, .dropdown-item:focus { + color: var(--bs-dropdown-link-hover-color); + background-color: var(--bs-dropdown-link-hover-bg); +} +.dropdown-item.active, .dropdown-item:active { + color: var(--bs-dropdown-link-active-color); + text-decoration: none; + background-color: var(--bs-dropdown-link-active-bg); +} +.dropdown-item.disabled, .dropdown-item:disabled { + color: var(--bs-dropdown-link-disabled-color); + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); + margin-bottom: 0; + font-size: 0.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 > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} + +.btn-group { + border-radius: var(--bs-border-radius); +} +.btn-group > :not(.btn-check:first-child) + .btn, +.btn-group > .btn-group:not(:first-child) { + margin-left: calc(-1 * var(--bs-border-width)); +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn.dropdown-toggle-split:first-child, +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:nth-child(n+3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} +.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { + margin-left: 0; +} +.dropstart .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group.show .dropdown-toggle { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn-group.show .dropdown-toggle.btn-link { + box-shadow: none; +} + +.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:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: calc(-1 * var(--bs-border-width)); +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:nth-child(n+3), +.btn-group-vertical > :not(.btn-check) + .btn, +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav { + --bs-nav-link-padding-x: 1rem; + --bs-nav-link-padding-y: 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: none; + border: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; + } +} +.nav-link:hover, .nav-link:focus { + color: var(--bs-nav-link-hover-color); +} +.nav-link:focus-visible { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.nav-link.disabled, .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default; +} + +.nav-tabs { + --bs-nav-tabs-border-width: var(--bs-border-width); + --bs-nav-tabs-border-color: var(--bs-border-color); + --bs-nav-tabs-border-radius: var(--bs-border-radius); + --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color); + --bs-nav-tabs-link-active-color: var(--bs-emphasis-color); + --bs-nav-tabs-link-active-bg: var(--bs-body-bg); + --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg); + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); +} +.nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + border: var(--bs-nav-tabs-border-width) solid transparent; + border-top-left-radius: var(--bs-nav-tabs-border-radius); + border-top-right-radius: var(--bs-nav-tabs-border-radius); +} +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color); +} +.nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills { + --bs-nav-pills-border-radius: var(--bs-border-radius); + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #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:hover, .nav-underline .nav-link:focus { + border-bottom-color: currentcolor; +} +.nav-underline .nav-link.active, +.nav-underline .show > .nav-link { + font-weight: 700; + color: var(--bs-nav-underline-link-active-color); + border-bottom-color: currentcolor; +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-grow: 1; + flex-basis: 0; + 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: 1rem; + --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-sm, +.navbar > .container-md, +.navbar > .container-lg, +.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:hover, .navbar-brand:focus { + 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: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-navbar-color); +} +.navbar-text a, +.navbar-text a:hover, +.navbar-text a:focus { + color: var(--bs-navbar-active-color); +} + +.navbar-collapse { + flex-grow: 1; + flex-basis: 100%; + 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; + box-shadow: none; + 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; + box-shadow: none; + 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; + box-shadow: none; + 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; + box-shadow: none; + 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; + box-shadow: none; + 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; + box-shadow: none; + 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); + box-shadow: var(--bs-card-box-shadow); +} +.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(-0.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(-0.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-left: calc(-0.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(-0.5 * var(--bs-card-cap-padding-x)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--bs-card-img-overlay-padding); + border-radius: var(--bs-card-inner-border-radius); +} + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} + +.card-group > .card { + margin-bottom: var(--bs-card-group-margin); +} +@media (min-width: 576px) { + .card-group { + display: flex; + 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-img-top, + .card-group > .card:not(:last-child) > .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) > .card-img-bottom, + .card-group > .card:not(:last-child) > .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) > .card-img-top, + .card-group > .card:not(:first-child) > .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) > .card-img-bottom, + .card-group > .card:not(:first-child) > .card-footer { + border-bottom-left-radius: 0; + } +} + +.accordion { + --bs-accordion-color: var(--bs-body-color); + --bs-accordion-bg: var(--bs-body-bg); + --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + --bs-accordion-border-color: var(--bs-border-color); + --bs-accordion-border-width: var(--bs-border-width); + --bs-accordion-border-radius: var(--bs-border-radius); + --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); + --bs-accordion-btn-padding-x: 1.25rem; + --bs-accordion-btn-padding-y: 1rem; + --bs-accordion-btn-color: var(--bs-body-color); + --bs-accordion-btn-bg: var(--bs-accordion-bg); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%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='none' stroke='rgb%285.2, 44, 101.2%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + --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; + 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-header .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-header .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-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-collapse, +.accordion-flush > .accordion-item > .accordion-header .accordion-button, +.accordion-flush > .accordion-item > .accordion-header .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='rgb%28109.8, 168, 253.8%29'%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-.708'/%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='rgb%28109.8, 168, 253.8%29'%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-.708'/%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, "/") /* rtl: 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 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .page-link { + transition: none; + } +} +.page-link:hover { + z-index: 2; + color: var(--bs-pagination-hover-color); + background-color: var(--bs-pagination-hover-bg); + border-color: var(--bs-pagination-hover-border-color); +} +.page-link:focus { + z-index: 3; + color: var(--bs-pagination-focus-color); + background-color: var(--bs-pagination-focus-bg); + outline: 0; + box-shadow: var(--bs-pagination-focus-box-shadow); +} +.page-link.active, .active > .page-link { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color); +} +.page-link.disabled, .disabled > .page-link { + color: var(--bs-pagination-disabled-color); + pointer-events: none; + background-color: var(--bs-pagination-disabled-bg); + border-color: var(--bs-pagination-disabled-border-color); +} + +.page-item:not(:first-child) .page-link { + margin-left: calc(var(--bs-border-width) * -1); +} +.page-item .page-link { + border-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: var(--bs-progress-height); + } +} +.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); + box-shadow: var(--bs-progress-box-shadow); +} + +.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, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: var(--bs-progress-height) var(--bs-progress-height); +} + +.progress-stacked > .progress { + overflow: visible; +} + +.progress-stacked > .progress > .progress-bar { + width: 100%; +} + +.progress-bar-animated { + animation: 1s linear infinite progress-bar-stripes; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none; + } +} + +.list-group { + --bs-list-group-color: var(--bs-body-color); + --bs-list-group-bg: var(--bs-body-bg); + --bs-list-group-border-color: var(--bs-border-color); + --bs-list-group-border-width: var(--bs-border-width); + --bs-list-group-border-radius: var(--bs-border-radius); + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 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 { + 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-item-action { + width: 100%; + color: var(--bs-list-group-action-color); + text-align: inherit; +} +.list-group-item-action:not(.active):hover, .list-group-item-action:not(.active):focus { + z-index: 1; + color: var(--bs-list-group-action-hover-color); + text-decoration: none; + background-color: var(--bs-list-group-action-hover-bg); +} +.list-group-item-action:not(.active):active { + color: var(--bs-list-group-action-active-color); + background-color: var(--bs-list-group-action-active-bg); +} + +.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.414'/%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; + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: var(--bs-btn-close-color); + background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat; + filter: var(--bs-btn-close-filter); + border: 0; + border-radius: 0.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 { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +:root, +[data-bs-theme=light] { + --bs-btn-close-filter: ; +} + +[data-bs-theme=dark] { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +.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: -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(-0.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: 900px; + --bs-modal-padding: 1rem; + --bs-modal-margin: 0.5rem; + --bs-modal-color: var(--bs-body-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: var(--bs-box-shadow-sm); + --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 { + transform: translate(0, -50px); + transition: transform 0.3s ease-out; +} +@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); + box-shadow: var(--bs-modal-box-shadow); + 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; + 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) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); + margin-top: calc(-0.5 * var(--bs-modal-header-padding-y)); + margin-right: calc(-0.5 * var(--bs-modal-header-padding-x)); + margin-bottom: calc(-0.5 * var(--bs-modal-header-padding-y)); + margin-left: 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) * 0.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) * 0.5); +} + +@media (min-width: 576px) { + .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: var(--bs-box-shadow); + } + .modal-dialog { + max-width: var(--bs-modal-width); + margin-right: auto; + margin-left: auto; + } + .modal-sm { + --bs-modal-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + --bs-modal-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + --bs-modal-width: 1140px; + } +} +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} +.modal-fullscreen .modal-header, +.modal-fullscreen .modal-footer { + border-radius: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} + +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-header, + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-md-down .modal-header, + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-header, + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-header, + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-header, + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } +} +.tooltip { + --bs-tooltip-zindex: 1080; + --bs-tooltip-max-width: 200px; + --bs-tooltip-padding-x: 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-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: calc(-1 * var(--bs-tooltip-arrow-height)); +} +.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--bs-tooltip-bg); +} + +/* rtl:begin:ignore */ +.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--bs-tooltip-bg); +} + +/* rtl:end:ignore */ +.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: calc(-1 * var(--bs-tooltip-arrow-height)); +} +.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg); +} + +/* rtl:begin:ignore */ +.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-left-color: var(--bs-tooltip-bg); +} + +/* rtl:end:ignore */ +.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: var(--bs-box-shadow); + --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); + box-shadow: var(--bs-popover-box-shadow); +} +.popover .popover-arrow { + display: block; + width: var(--bs-popover-arrow-width); + height: var(--bs-popover-arrow-height); +} +.popover .popover-arrow::before, .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; + border-width: 0; +} + +.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border); +} +.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg); +} + +/* rtl:begin:ignore */ +.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border); +} +.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg); +} + +/* rtl:end:ignore */ +.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border); +} +.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg); +} +.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-left: calc(-0.5 * var(--bs-popover-arrow-width)); + content: ""; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); +} + +/* rtl:begin:ignore */ +.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border); +} +.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg); +} + +/* rtl:end:ignore */ +.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%; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-start), +.active.carousel-item-end { + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-end), +.active.carousel-item-start { + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-start, +.carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; +} +.carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-start, + .carousel-fade .active.carousel-item-end { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + filter: var(--bs-carousel-control-icon-filter); + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3e%3c/svg%3e") /*rtl: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-.708'/%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-.708'/%3e%3c/svg%3e") /*rtl: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 0'/%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: var(--bs-carousel-indicator-active-bg); + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-indicators [data-bs-target] { + transition: none; + } +} +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: var(--bs-carousel-caption-color); + text-align: center; +} + +.carousel-dark { + --bs-carousel-indicator-active-bg: #000; + --bs-carousel-caption-color: #000; + --bs-carousel-control-icon-filter: invert(1) grayscale(100); +} + +:root, +[data-bs-theme=light] { + --bs-carousel-indicator-active-bg: #fff; + --bs-carousel-caption-color: #fff; + --bs-carousel-control-icon-filter: ; +} + +[data-bs-theme=dark] { + --bs-carousel-indicator-active-bg: #000; + --bs-carousel-caption-color: #000; + --bs-carousel-control-icon-filter: invert(1) grayscale(100); +} + +.spinner-grow, +.spinner-border { + display: inline-block; + flex-shrink: 0; + width: var(--bs-spinner-width); + height: var(--bs-spinner-height); + vertical-align: var(--bs-spinner-vertical-align); + border-radius: 50%; + animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); +} + +@keyframes spinner-border { + to { + transform: rotate(360deg) /* rtl:ignore */; + } +} +.spinner-border { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -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-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { + --bs-offcanvas-zindex: 1045; + --bs-offcanvas-width: 400px; + --bs-offcanvas-height: 30vh; + --bs-offcanvas-padding-x: 1rem; + --bs-offcanvas-padding-y: 1rem; + --bs-offcanvas-color: var(--bs-body-color); + --bs-offcanvas-bg: var(--bs-body-bg); + --bs-offcanvas-border-width: var(--bs-border-width); + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm); + --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; + box-shadow: var(--bs-offcanvas-box-shadow); + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-sm { + transition: none; + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-sm.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-sm.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-sm.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { + transform: none; + } + .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { + visibility: visible; + } +} +@media (min-width: 576px) { + .offcanvas-sm { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-sm .offcanvas-header { + display: none; + } + .offcanvas-sm .offcanvas-body { + display: flex; + 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; + box-shadow: var(--bs-offcanvas-box-shadow); + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-md { + transition: none; + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-md.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-md.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-md.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { + transform: none; + } + .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { + visibility: visible; + } +} +@media (min-width: 768px) { + .offcanvas-md { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-md .offcanvas-header { + display: none; + } + .offcanvas-md .offcanvas-body { + display: flex; + 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; + box-shadow: var(--bs-offcanvas-box-shadow); + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-lg { + transition: none; + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-lg.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-lg.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-lg.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { + transform: none; + } + .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { + visibility: visible; + } +} +@media (min-width: 992px) { + .offcanvas-lg { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-lg .offcanvas-header { + display: none; + } + .offcanvas-lg .offcanvas-body { + display: flex; + 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; + box-shadow: var(--bs-offcanvas-box-shadow); + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xl { + transition: none; + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-xl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-xl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-xl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { + transform: none; + } + .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { + visibility: visible; + } +} +@media (min-width: 1200px) { + .offcanvas-xl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xl .offcanvas-header { + display: none; + } + .offcanvas-xl .offcanvas-body { + display: flex; + 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; + box-shadow: var(--bs-offcanvas-box-shadow); + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xxl { + transition: none; + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-xxl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-xxl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-xxl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { + transform: none; + } + .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { + visibility: visible; + } +} +@media (min-width: 1400px) { + .offcanvas-xxl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xxl .offcanvas-header { + display: none; + } + .offcanvas-xxl .offcanvas-body { + display: flex; + 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; + box-shadow: var(--bs-offcanvas-box-shadow); + transition: var(--bs-offcanvas-transition); +} +@media (prefers-reduced-motion: reduce) { + .offcanvas { + transition: none; + } +} +.offcanvas.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); +} +.offcanvas.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); +} +.offcanvas.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); +} +.offcanvas.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); +} +.offcanvas.showing, .offcanvas.show:not(.hiding) { + transform: none; +} +.offcanvas.showing, .offcanvas.hiding, .offcanvas.show { + visibility: visible; +} + +.offcanvas-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} +.offcanvas-backdrop.fade { + opacity: 0; +} +.offcanvas-backdrop.show { + opacity: 0.5; +} + +.offcanvas-header { + display: flex; + align-items: center; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); +} +.offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); + margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y)); + margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x)); + margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y)); + margin-left: auto; +} + +.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: 0.5; +} +.placeholder.btn::before { + display: inline-block; + content: ""; +} + +.placeholder-xs { + min-height: 0.6em; +} + +.placeholder-sm { + min-height: 0.8em; +} + +.placeholder-lg { + min-height: 1.2em; +} + +.placeholder-glow .placeholder { + animation: placeholder-glow 2s ease-in-out infinite; +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.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; + text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-primary:hover, .link-primary:focus { + color: RGBA(10, 88, 202, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-secondary:hover, .link-secondary:focus { + color: RGBA(86, 94, 100, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-success:hover, .link-success:focus { + color: RGBA(20, 108, 67, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-info:hover, .link-info:focus { + color: RGBA(61, 213, 243, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-warning:hover, .link-warning:focus { + color: RGBA(255, 205, 57, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-danger:hover, .link-danger:focus { + color: RGBA(176, 42, 55, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-light:hover, .link-light:focus { + color: RGBA(249, 250, 251, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-dark:hover, .link-dark:focus { + color: RGBA(26, 30, 33, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-body-emphasis:hover, .link-body-emphasis:focus { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; +} + +.focus-ring:focus { + outline: 0; + box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color); +} + +.icon-link { + display: inline-flex; + gap: 0.375rem; + align-items: center; + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); + text-underline-offset: 0.25em; + backface-visibility: hidden; +} +.icon-link > .bi { + flex-shrink: 0; + width: 1em; + height: 1em; + fill: currentcolor; + transition: 0.2s ease-in-out transform; +} +@media (prefers-reduced-motion: reduce) { + .icon-link > .bi { + transition: none; + } +} + +.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi { + transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0)); +} + +.ratio { + position: relative; + width: 100%; +} +.ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} +.ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.ratio-1x1 { + --bs-aspect-ratio: 100%; +} + +.ratio-4x3 { + --bs-aspect-ratio: 75%; +} + +.ratio-16x9 { + --bs-aspect-ratio: 56.25%; +} + +.ratio-21x9 { + --bs-aspect-ratio: 42.8571428571%; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +.sticky-top { + position: sticky; + top: 0; + z-index: 1020; +} + +.sticky-bottom { + position: sticky; + bottom: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .sticky-sm-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-sm-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 768px) { + .sticky-md-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-md-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 992px) { + .sticky-lg-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-lg-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1200px) { + .sticky-xl-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xl-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1400px) { + .sticky-xxl-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xxl-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +.hstack { + display: flex; + 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:not(caption), +.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) { + position: absolute !important; +} +.visually-hidden *, +.visually-hidden-focusable:not(:focus):not(:focus-within) * { + overflow: hidden !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: 0.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: 0.25 !important; +} + +.opacity-50 { + opacity: 0.5 !important; +} + +.opacity-75 { + opacity: 0.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: var(--bs-box-shadow) !important; +} + +.shadow-sm { + box-shadow: var(--bs-box-shadow-sm) !important; +} + +.shadow-lg { + box-shadow: var(--bs-box-shadow-lg) !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: 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: 0.25rem !important; +} + +.m-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.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: 0.25rem !important; +} + +.me-2 { + margin-right: 0.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: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.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: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.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; +} + +.m-n1 { + margin: -0.25rem !important; +} + +.m-n2 { + margin: -0.5rem !important; +} + +.m-n3 { + margin: -1rem !important; +} + +.m-n4 { + margin: -1.5rem !important; +} + +.m-n5 { + margin: -3rem !important; +} + +.mx-n1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; +} + +.mx-n2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; +} + +.mx-n3 { + margin-right: -1rem !important; + margin-left: -1rem !important; +} + +.mx-n4 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; +} + +.mx-n5 { + margin-right: -3rem !important; + margin-left: -3rem !important; +} + +.my-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; +} + +.my-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; +} + +.my-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; +} + +.my-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; +} + +.my-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; +} + +.mt-n1 { + margin-top: -0.25rem !important; +} + +.mt-n2 { + margin-top: -0.5rem !important; +} + +.mt-n3 { + margin-top: -1rem !important; +} + +.mt-n4 { + margin-top: -1.5rem !important; +} + +.mt-n5 { + margin-top: -3rem !important; +} + +.me-n1 { + margin-right: -0.25rem !important; +} + +.me-n2 { + margin-right: -0.5rem !important; +} + +.me-n3 { + margin-right: -1rem !important; +} + +.me-n4 { + margin-right: -1.5rem !important; +} + +.me-n5 { + margin-right: -3rem !important; +} + +.mb-n1 { + margin-bottom: -0.25rem !important; +} + +.mb-n2 { + margin-bottom: -0.5rem !important; +} + +.mb-n3 { + margin-bottom: -1rem !important; +} + +.mb-n4 { + margin-bottom: -1.5rem !important; +} + +.mb-n5 { + margin-bottom: -3rem !important; +} + +.ms-n1 { + margin-left: -0.25rem !important; +} + +.ms-n2 { + margin-left: -0.5rem !important; +} + +.ms-n3 { + margin-left: -1rem !important; +} + +.ms-n4 { + margin-left: -1.5rem !important; +} + +.ms-n5 { + margin-left: -3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.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: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.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: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.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: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.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: 0.25rem !important; +} + +.gap-2 { + gap: 0.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: 0.25rem !important; +} + +.row-gap-2 { + row-gap: 0.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: 0.25rem !important; +} + +.column-gap-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.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 + 0.9vw) !important; +} + +.fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; +} + +.fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; +} + +.fs-5 { + font-size: 1.25rem !important; +} + +.fs-6 { + font-size: 1rem !important; +} + +.fs-7 { + font-size: 0.875rem !important; +} + +.fs-8 { + font-size: 0.75rem !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; +} + +/* rtl:begin:remove */ +.text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +/* rtl:end:remove */ +.text-primary { + --bs-text-opacity: 1; + color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important; +} + +.text-secondary { + --bs-text-opacity: 1; + color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important; +} + +.text-success { + --bs-text-opacity: 1; + color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important; +} + +.text-info { + --bs-text-opacity: 1; + color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important; +} + +.text-warning { + --bs-text-opacity: 1; + color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important; +} + +.text-danger { + --bs-text-opacity: 1; + color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important; +} + +.text-light { + --bs-text-opacity: 1; + color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important; +} + +.text-dark { + --bs-text-opacity: 1; + color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important; +} + +.text-black { + --bs-text-opacity: 1; + color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important; +} + +.text-white { + --bs-text-opacity: 1; + color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; +} + +.text-body { + --bs-text-opacity: 1; + color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important; +} + +.text-muted { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; +} + +.text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-body-secondary { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; +} + +.text-body-tertiary { + --bs-text-opacity: 1; + color: var(--bs-tertiary-color) !important; +} + +.text-body-emphasis { + --bs-text-opacity: 1; + color: var(--bs-emphasis-color) !important; +} + +.text-reset { + --bs-text-opacity: 1; + color: inherit !important; +} + +.text-opacity-25 { + --bs-text-opacity: 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; + text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-secondary { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-success { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-info { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-warning { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-danger { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-light { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-dark { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important; +} + +.link-underline-opacity-0 { + --bs-link-underline-opacity: 0; +} + +.link-underline-opacity-0-hover:hover { + --bs-link-underline-opacity: 0; +} + +.link-underline-opacity-10 { + --bs-link-underline-opacity: 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: 0.25rem !important; + } + .m-sm-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.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: 0.25rem !important; + } + .me-sm-2 { + margin-right: 0.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: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.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: 0.25rem !important; + } + .ms-sm-2 { + margin-left: 0.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; + } + .m-sm-n1 { + margin: -0.25rem !important; + } + .m-sm-n2 { + margin: -0.5rem !important; + } + .m-sm-n3 { + margin: -1rem !important; + } + .m-sm-n4 { + margin: -1.5rem !important; + } + .m-sm-n5 { + margin: -3rem !important; + } + .mx-sm-n1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } + .mx-sm-n2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } + .mx-sm-n3 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } + .mx-sm-n4 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } + .mx-sm-n5 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } + .my-sm-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + .my-sm-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + .my-sm-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + .my-sm-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + .my-sm-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + .mt-sm-n1 { + margin-top: -0.25rem !important; + } + .mt-sm-n2 { + margin-top: -0.5rem !important; + } + .mt-sm-n3 { + margin-top: -1rem !important; + } + .mt-sm-n4 { + margin-top: -1.5rem !important; + } + .mt-sm-n5 { + margin-top: -3rem !important; + } + .me-sm-n1 { + margin-right: -0.25rem !important; + } + .me-sm-n2 { + margin-right: -0.5rem !important; + } + .me-sm-n3 { + margin-right: -1rem !important; + } + .me-sm-n4 { + margin-right: -1.5rem !important; + } + .me-sm-n5 { + margin-right: -3rem !important; + } + .mb-sm-n1 { + margin-bottom: -0.25rem !important; + } + .mb-sm-n2 { + margin-bottom: -0.5rem !important; + } + .mb-sm-n3 { + margin-bottom: -1rem !important; + } + .mb-sm-n4 { + margin-bottom: -1.5rem !important; + } + .mb-sm-n5 { + margin-bottom: -3rem !important; + } + .ms-sm-n1 { + margin-left: -0.25rem !important; + } + .ms-sm-n2 { + margin-left: -0.5rem !important; + } + .ms-sm-n3 { + margin-left: -1rem !important; + } + .ms-sm-n4 { + margin-left: -1.5rem !important; + } + .ms-sm-n5 { + margin-left: -3rem !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.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: 0.25rem !important; + } + .pe-sm-2 { + padding-right: 0.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: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.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: 0.25rem !important; + } + .ps-sm-2 { + padding-left: 0.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: 0.25rem !important; + } + .gap-sm-2 { + gap: 0.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: 0.25rem !important; + } + .row-gap-sm-2 { + row-gap: 0.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: 0.25rem !important; + } + .column-gap-sm-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.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: 0.25rem !important; + } + .m-md-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.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: 0.25rem !important; + } + .me-md-2 { + margin-right: 0.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: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.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: 0.25rem !important; + } + .ms-md-2 { + margin-left: 0.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; + } + .m-md-n1 { + margin: -0.25rem !important; + } + .m-md-n2 { + margin: -0.5rem !important; + } + .m-md-n3 { + margin: -1rem !important; + } + .m-md-n4 { + margin: -1.5rem !important; + } + .m-md-n5 { + margin: -3rem !important; + } + .mx-md-n1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } + .mx-md-n2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } + .mx-md-n3 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } + .mx-md-n4 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } + .mx-md-n5 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } + .my-md-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + .my-md-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + .my-md-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + .my-md-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + .my-md-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + .mt-md-n1 { + margin-top: -0.25rem !important; + } + .mt-md-n2 { + margin-top: -0.5rem !important; + } + .mt-md-n3 { + margin-top: -1rem !important; + } + .mt-md-n4 { + margin-top: -1.5rem !important; + } + .mt-md-n5 { + margin-top: -3rem !important; + } + .me-md-n1 { + margin-right: -0.25rem !important; + } + .me-md-n2 { + margin-right: -0.5rem !important; + } + .me-md-n3 { + margin-right: -1rem !important; + } + .me-md-n4 { + margin-right: -1.5rem !important; + } + .me-md-n5 { + margin-right: -3rem !important; + } + .mb-md-n1 { + margin-bottom: -0.25rem !important; + } + .mb-md-n2 { + margin-bottom: -0.5rem !important; + } + .mb-md-n3 { + margin-bottom: -1rem !important; + } + .mb-md-n4 { + margin-bottom: -1.5rem !important; + } + .mb-md-n5 { + margin-bottom: -3rem !important; + } + .ms-md-n1 { + margin-left: -0.25rem !important; + } + .ms-md-n2 { + margin-left: -0.5rem !important; + } + .ms-md-n3 { + margin-left: -1rem !important; + } + .ms-md-n4 { + margin-left: -1.5rem !important; + } + .ms-md-n5 { + margin-left: -3rem !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.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: 0.25rem !important; + } + .pe-md-2 { + padding-right: 0.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: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.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: 0.25rem !important; + } + .ps-md-2 { + padding-left: 0.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: 0.25rem !important; + } + .gap-md-2 { + gap: 0.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: 0.25rem !important; + } + .row-gap-md-2 { + row-gap: 0.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: 0.25rem !important; + } + .column-gap-md-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.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: 0.25rem !important; + } + .m-lg-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.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: 0.25rem !important; + } + .me-lg-2 { + margin-right: 0.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: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.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: 0.25rem !important; + } + .ms-lg-2 { + margin-left: 0.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; + } + .m-lg-n1 { + margin: -0.25rem !important; + } + .m-lg-n2 { + margin: -0.5rem !important; + } + .m-lg-n3 { + margin: -1rem !important; + } + .m-lg-n4 { + margin: -1.5rem !important; + } + .m-lg-n5 { + margin: -3rem !important; + } + .mx-lg-n1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } + .mx-lg-n2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } + .mx-lg-n3 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } + .mx-lg-n4 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } + .mx-lg-n5 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } + .my-lg-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + .my-lg-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + .my-lg-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + .my-lg-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + .my-lg-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + .mt-lg-n1 { + margin-top: -0.25rem !important; + } + .mt-lg-n2 { + margin-top: -0.5rem !important; + } + .mt-lg-n3 { + margin-top: -1rem !important; + } + .mt-lg-n4 { + margin-top: -1.5rem !important; + } + .mt-lg-n5 { + margin-top: -3rem !important; + } + .me-lg-n1 { + margin-right: -0.25rem !important; + } + .me-lg-n2 { + margin-right: -0.5rem !important; + } + .me-lg-n3 { + margin-right: -1rem !important; + } + .me-lg-n4 { + margin-right: -1.5rem !important; + } + .me-lg-n5 { + margin-right: -3rem !important; + } + .mb-lg-n1 { + margin-bottom: -0.25rem !important; + } + .mb-lg-n2 { + margin-bottom: -0.5rem !important; + } + .mb-lg-n3 { + margin-bottom: -1rem !important; + } + .mb-lg-n4 { + margin-bottom: -1.5rem !important; + } + .mb-lg-n5 { + margin-bottom: -3rem !important; + } + .ms-lg-n1 { + margin-left: -0.25rem !important; + } + .ms-lg-n2 { + margin-left: -0.5rem !important; + } + .ms-lg-n3 { + margin-left: -1rem !important; + } + .ms-lg-n4 { + margin-left: -1.5rem !important; + } + .ms-lg-n5 { + margin-left: -3rem !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.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: 0.25rem !important; + } + .pe-lg-2 { + padding-right: 0.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: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.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: 0.25rem !important; + } + .ps-lg-2 { + padding-left: 0.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: 0.25rem !important; + } + .gap-lg-2 { + gap: 0.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: 0.25rem !important; + } + .row-gap-lg-2 { + row-gap: 0.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: 0.25rem !important; + } + .column-gap-lg-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.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: 0.25rem !important; + } + .m-xl-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.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: 0.25rem !important; + } + .me-xl-2 { + margin-right: 0.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: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.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: 0.25rem !important; + } + .ms-xl-2 { + margin-left: 0.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; + } + .m-xl-n1 { + margin: -0.25rem !important; + } + .m-xl-n2 { + margin: -0.5rem !important; + } + .m-xl-n3 { + margin: -1rem !important; + } + .m-xl-n4 { + margin: -1.5rem !important; + } + .m-xl-n5 { + margin: -3rem !important; + } + .mx-xl-n1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } + .mx-xl-n2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } + .mx-xl-n3 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } + .mx-xl-n4 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } + .mx-xl-n5 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } + .my-xl-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + .my-xl-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + .my-xl-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + .my-xl-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + .my-xl-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + .mt-xl-n1 { + margin-top: -0.25rem !important; + } + .mt-xl-n2 { + margin-top: -0.5rem !important; + } + .mt-xl-n3 { + margin-top: -1rem !important; + } + .mt-xl-n4 { + margin-top: -1.5rem !important; + } + .mt-xl-n5 { + margin-top: -3rem !important; + } + .me-xl-n1 { + margin-right: -0.25rem !important; + } + .me-xl-n2 { + margin-right: -0.5rem !important; + } + .me-xl-n3 { + margin-right: -1rem !important; + } + .me-xl-n4 { + margin-right: -1.5rem !important; + } + .me-xl-n5 { + margin-right: -3rem !important; + } + .mb-xl-n1 { + margin-bottom: -0.25rem !important; + } + .mb-xl-n2 { + margin-bottom: -0.5rem !important; + } + .mb-xl-n3 { + margin-bottom: -1rem !important; + } + .mb-xl-n4 { + margin-bottom: -1.5rem !important; + } + .mb-xl-n5 { + margin-bottom: -3rem !important; + } + .ms-xl-n1 { + margin-left: -0.25rem !important; + } + .ms-xl-n2 { + margin-left: -0.5rem !important; + } + .ms-xl-n3 { + margin-left: -1rem !important; + } + .ms-xl-n4 { + margin-left: -1.5rem !important; + } + .ms-xl-n5 { + margin-left: -3rem !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.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: 0.25rem !important; + } + .pe-xl-2 { + padding-right: 0.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: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.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: 0.25rem !important; + } + .ps-xl-2 { + padding-left: 0.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: 0.25rem !important; + } + .gap-xl-2 { + gap: 0.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: 0.25rem !important; + } + .row-gap-xl-2 { + row-gap: 0.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: 0.25rem !important; + } + .column-gap-xl-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.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: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.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: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.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: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.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: 0.25rem !important; + } + .me-xxl-2 { + margin-right: 0.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: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.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: 0.25rem !important; + } + .ms-xxl-2 { + margin-left: 0.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; + } + .m-xxl-n1 { + margin: -0.25rem !important; + } + .m-xxl-n2 { + margin: -0.5rem !important; + } + .m-xxl-n3 { + margin: -1rem !important; + } + .m-xxl-n4 { + margin: -1.5rem !important; + } + .m-xxl-n5 { + margin: -3rem !important; + } + .mx-xxl-n1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } + .mx-xxl-n2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } + .mx-xxl-n3 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } + .mx-xxl-n4 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } + .mx-xxl-n5 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } + .my-xxl-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + .my-xxl-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + .my-xxl-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + .my-xxl-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + .my-xxl-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + .mt-xxl-n1 { + margin-top: -0.25rem !important; + } + .mt-xxl-n2 { + margin-top: -0.5rem !important; + } + .mt-xxl-n3 { + margin-top: -1rem !important; + } + .mt-xxl-n4 { + margin-top: -1.5rem !important; + } + .mt-xxl-n5 { + margin-top: -3rem !important; + } + .me-xxl-n1 { + margin-right: -0.25rem !important; + } + .me-xxl-n2 { + margin-right: -0.5rem !important; + } + .me-xxl-n3 { + margin-right: -1rem !important; + } + .me-xxl-n4 { + margin-right: -1.5rem !important; + } + .me-xxl-n5 { + margin-right: -3rem !important; + } + .mb-xxl-n1 { + margin-bottom: -0.25rem !important; + } + .mb-xxl-n2 { + margin-bottom: -0.5rem !important; + } + .mb-xxl-n3 { + margin-bottom: -1rem !important; + } + .mb-xxl-n4 { + margin-bottom: -1.5rem !important; + } + .mb-xxl-n5 { + margin-bottom: -3rem !important; + } + .ms-xxl-n1 { + margin-left: -0.25rem !important; + } + .ms-xxl-n2 { + margin-left: -0.5rem !important; + } + .ms-xxl-n3 { + margin-left: -1rem !important; + } + .ms-xxl-n4 { + margin-left: -1.5rem !important; + } + .ms-xxl-n5 { + margin-left: -3rem !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.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: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.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: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.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: 0.25rem !important; + } + .pe-xxl-2 { + padding-right: 0.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: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.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: 0.25rem !important; + } + .ps-xxl-2 { + padding-left: 0.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: 0.25rem !important; + } + .gap-xxl-2 { + gap: 0.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: 0.25rem !important; + } + .row-gap-xxl-2 { + row-gap: 0.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: 0.25rem !important; + } + .column-gap-xxl-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.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; + } +} +@keyframes flipInX { + 0% { + opacity: 0; + transition-timing-function: ease-in; + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + } + 40% { + transition-timing-function: ease-in; + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + } + 60% { + opacity: 1; + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + } + 80% { + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + 100% { + transform: perspective(400px); + } +} +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +@keyframes shake { + 0% { + transform: translate(2px, 1px) rotate(0deg); + } + 10% { + transform: translate(-1px, -2px) rotate(-2deg); + } + 20% { + transform: translate(-3px, 0) rotate(3deg); + } + 30% { + transform: translate(0, 2px) rotate(0deg); + } + 40% { + transform: translate(1px, -1px) rotate(1deg); + } + 50% { + transform: translate(-1px, 2px) rotate(-1deg); + } + 60% { + transform: translate(-3px, 1px) rotate(0deg); + } + 70% { + transform: translate(2px, 1px) rotate(-2deg); + } + 80% { + transform: translate(-1px, -1px) rotate(4deg); + } + 90% { + transform: translate(2px, 2px) rotate(0deg); + } + 100% { + transform: translate(1px, -2px) rotate(-1deg); + } +} +@keyframes wobble { + 0% { + transform: none; + } + 15% { + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + 30% { + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + 45% { + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + 60% { + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + 75% { + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + 100% { + transform: none; + } +} +:root, +[data-bs-theme=light] { + --lte-sidebar-width: 250px; +} + +.app-wrapper { + position: relative; + display: grid; + grid-template-areas: "lte-app-sidebar lte-app-header" "lte-app-sidebar lte-app-main" "lte-app-sidebar lte-app-footer"; + grid-template-rows: min-content 1fr min-content; + grid-template-columns: auto 1fr; + grid-gap: 0; + align-content: stretch; + align-items: stretch; + max-width: 100vw; + min-height: 100vh; +} +.app-wrapper > * { + min-width: 0; +} + +.app-content { + padding: 0 0rem; + overflow: hidden; +} + +.app-header { + z-index: 1034; + grid-area: lte-app-header; + max-width: 100vw; + border-bottom: 1px solid var(--bs-border-color); + transition: 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .app-header { + transition: none; + } +} +.app-header .nav-link { + position: relative; + height: 2.5rem; +} + +.navbar-badge { + position: absolute; + top: 9px; + right: 5px; + padding: 2px 4px; + font-size: 0.6rem; + font-weight: 400; +} + +.fixed-header .app-header { + position: sticky; + top: 0; + z-index: 1030; +} + +.app-sidebar { + --lte-sidebar-hover-bg: rgba(0, 0, 0, 0.1); + --lte-sidebar-color: #343a40; + --lte-sidebar-hover-color: #212529; + --lte-sidebar-active-color: #000; + --lte-sidebar-menu-active-bg: rgba(0, 0, 0, 0.1); + --lte-sidebar-menu-active-color: #000; + --lte-sidebar-submenu-bg: transparent; + --lte-sidebar-submenu-color: #777; + --lte-sidebar-submenu-hover-color: #000; + --lte-sidebar-submenu-hover-bg: rgba(0, 0, 0, 0.1); + --lte-sidebar-submenu-active-color: #212529; + --lte-sidebar-submenu-active-bg: rgba(0, 0, 0, 0.1); + --lte-sidebar-header-color: rgb(49.4, 55.1, 60.8); + z-index: 1038; + grid-area: lte-app-sidebar; + min-width: var(--lte-sidebar-width); + max-width: var(--lte-sidebar-width); + transition: min-width 0.3s ease-in-out, max-width 0.3s ease-in-out, margin-left 0.3s ease-in-out, margin-right 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .app-sidebar { + transition: none; + } +} + +.sidebar-brand { + display: flex; + align-items: center; + justify-content: center; + height: 3.5rem; + padding: 0.8125rem 0.5rem; + overflow: hidden; + font-size: 1.25rem; + white-space: nowrap; + border-bottom: 1px solid var(--bs-border-color); + transition: width 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .sidebar-brand { + transition: none; + } +} +.sidebar-brand .brand-link { + display: flex; + align-items: center; + text-decoration: none; +} +.sidebar-brand .brand-link .brand-image { + float: left; + width: auto; + max-height: 33px; + line-height: 0.8; +} +.sidebar-brand .brand-link .brand-image-xs { + float: left; + width: auto; + max-height: 33px; + margin-top: -0.1rem; + line-height: 0.8; +} +.sidebar-brand .brand-link .brand-image-xl { + width: auto; + max-height: 40px; + line-height: 0.8; +} +.sidebar-brand .brand-link .brand-image-xl.single { + margin-top: -0.3rem; +} +.sidebar-brand .brand-text { + margin-left: 0.5rem; + color: rgba(var(--bs-emphasis-color-rgb), 0.8); + transition: flex 0.3s ease-in-out, width 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .sidebar-brand .brand-text { + transition: none; + } +} +.sidebar-brand .brand-text:hover { + color: var(--bs-emphasis-color); +} + +.sidebar-wrapper { + padding-top: 0.5rem; + padding-right: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 0.5rem; + scrollbar-color: var(--bs-secondary-bg) transparent; +} +.sidebar-wrapper::-webkit-scrollbar-thumb { + background-color: var(--bs-secondary-bg); +} +.sidebar-wrapper::-webkit-scrollbar-track { + background-color: transparent; +} +.sidebar-wrapper::-webkit-scrollbar-corner { + background-color: transparent; +} +.sidebar-wrapper { + scrollbar-width: thin; +} +.sidebar-wrapper::-webkit-scrollbar { + width: 0.5rem; + height: 0.5rem; +} +.sidebar-wrapper .nav-item { + max-width: 100%; +} +.sidebar-wrapper .nav-link { + display: flex; + justify-content: flex-start; +} +.sidebar-wrapper .nav-link p { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.sidebar-wrapper .nav-icon { + display: flex; + align-items: center; + justify-content: center; + min-width: 1.5rem; + max-width: 1.5rem; +} +.sidebar-wrapper .sidebar-menu > .nav-item.menu-open .nav-link.active:not(:hover) { + --lte-sidebar-menu-active-bg: transparent; +} +.sidebar-wrapper .sidebar-menu > .nav-item > .nav-link:active, .sidebar-wrapper .sidebar-menu > .nav-item > .nav-link:focus { + color: var(--lte-sidebar-color); +} +.sidebar-wrapper .sidebar-menu > .nav-item > .nav-link.active:not(:hover) { + color: var(--lte-sidebar-menu-active-color); + background-color: var(--lte-sidebar-menu-active-bg); +} +.sidebar-wrapper .sidebar-menu > .nav-item.menu-open > .nav-link, .sidebar-wrapper .sidebar-menu > .nav-item:hover > .nav-link, +.sidebar-wrapper .sidebar-menu > .nav-item > .nav-link:focus { + color: var(--lte-sidebar-hover-color); + background-color: var(--lte-sidebar-hover-bg); +} +.sidebar-wrapper .sidebar-menu > .nav-item > .nav-treeview { + background-color: var(--lte-sidebar-submenu-bg); +} +.sidebar-wrapper .nav-header { + color: var(--lte-sidebar-header-color); + background-color: inherit; +} +.sidebar-wrapper a { + color: var(--lte-sidebar-color); +} +.sidebar-wrapper .nav-treeview > .nav-item > .nav-link { + color: var(--lte-sidebar-submenu-color); +} +.sidebar-wrapper .nav-treeview > .nav-item > .nav-link:hover, .sidebar-wrapper .nav-treeview > .nav-item > .nav-link:focus { + color: var(--lte-sidebar-submenu-hover-color); +} +.sidebar-wrapper .nav-treeview > .nav-item > .nav-link.active, .sidebar-wrapper .nav-treeview > .nav-item > .nav-link.active:hover, .sidebar-wrapper .nav-treeview > .nav-item > .nav-link.active:focus { + color: var(--lte-sidebar-submenu-active-color); + background-color: var(--lte-sidebar-submenu-active-bg); +} +.sidebar-wrapper .nav-treeview > .nav-item > .nav-link:hover { + background-color: var(--lte-sidebar-submenu-hover-bg); +} + +.sidebar-menu .nav-item > .nav-link { + margin-bottom: 0.2rem; +} +.sidebar-menu .nav-item > .nav-link .nav-arrow { + transition: transform ease-in-out 0.3s; +} +@media (prefers-reduced-motion: reduce) { + .sidebar-menu .nav-item > .nav-link .nav-arrow { + transition: none; + } +} +.sidebar-menu .nav-item > .nav-link .nav-arrow { + transform: translateY(-50%) /*rtl:append:rotate(180deg)*/; + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; +} +.sidebar-menu .nav-link > .nav-badge, +.sidebar-menu .nav-link > p > .nav-badge { + position: absolute; + top: 50%; + right: 1rem; + transform: translateY(-50%); +} +.sidebar-menu .nav-link > .nav-arrow, +.sidebar-menu .nav-link > p > .nav-arrow { + position: absolute; + top: 50%; + right: 1rem; +} +.sidebar-menu .nav-link { + position: relative; + width: 100%; + transition: width ease-in-out 0.3s; +} +@media (prefers-reduced-motion: reduce) { + .sidebar-menu .nav-link { + transition: none; + } +} +.sidebar-menu .nav-link { + border-radius: 0.375rem; +} +.sidebar-menu .nav-link p { + display: inline; + padding-left: 0.5rem; + margin: 0; +} +.sidebar-menu .nav-header { + padding: 0.5rem 0.75rem; + font-size: 0.9rem; +} +.sidebar-menu .nav-treeview { + display: none; + padding: 0; + list-style: none; +} +.nav-indent .sidebar-menu .nav-treeview { + padding-left: 0.5rem; +} +.sidebar-menu .menu-open > .nav-treeview { + display: block; +} +.sidebar-menu .menu-open > .nav-link .nav-arrow { + transform: translateY(-50%) rotate(90deg) /*rtl:ignore*/; +} +.sidebar-menu .nav-link > .nav-badge, +.sidebar-menu .nav-link > p > .nav-badge, +.sidebar-menu .nav-link > .nav-arrow, +.sidebar-menu .nav-link > p > .nav-arrow { + right: 1rem !important; + left: auto !important; +} + +.nav-compact.nav-indent .nav-treeview { + padding-left: 0; +} +.nav-compact.nav-indent .nav-treeview .nav-item { + padding-left: 0.5rem; +} + +.sidebar-mini.sidebar-collapse.nav-indent .app-sidebar:hover .nav-treeview { + padding-left: 0; +} +.sidebar-mini.sidebar-collapse.nav-indent .app-sidebar:hover .nav-treeview .nav-item { + padding-left: 0.5rem; +} + +.sidebar-collapse.nav-compact.nav-indent .nav-treeview .nav-item { + padding-left: 0; +} + +.nav-compact .nav-link { + border-radius: 0; + margin-bottom: 0 !important; +} + +.sidebar-menu, +.sidebar-menu > .nav-header, +.sidebar-menu .nav-link { + white-space: nowrap; +} + +.logo-xs, +.logo-xl { + position: absolute; + visibility: visible; + opacity: 1; +} +.logo-xs.brand-image-xs, +.logo-xl.brand-image-xs { + top: 12px; + left: 18px; +} +.logo-xs.brand-image-xl, +.logo-xl.brand-image-xl { + top: 6px; + left: 12px; +} + +.logo-xs { + visibility: hidden; + opacity: 0; +} +.logo-xs.brand-image-xl { + top: 8px; + left: 16px; +} + +.brand-link.logo-switch::before { + content: " "; +} + +.sidebar-mini.sidebar-collapse .app-sidebar { + min-width: 4.6rem; + max-width: 4.6rem; +} +.sidebar-mini.sidebar-collapse .sidebar-menu .nav-header { + display: none; +} +.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link { + width: 3.6rem; +} +.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link p { + display: inline-block; + width: 0; + white-space: nowrap; +} +.sidebar-mini.sidebar-collapse .sidebar-menu .nav-badge, +.sidebar-mini.sidebar-collapse .sidebar-menu .nav-arrow { + display: none; + animation-name: fadeOut; + animation-duration: 0.3s; + animation-fill-mode: both; +} +.sidebar-mini.sidebar-collapse .brand-text { + display: inline-block; + max-width: 0; + overflow: hidden; +} +.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link p, +.sidebar-mini.sidebar-collapse .brand-text, +.sidebar-mini.sidebar-collapse .logo-xl, +.sidebar-mini.sidebar-collapse .nav-arrow { + visibility: hidden; + animation-name: fadeOut; + animation-duration: 0.3s; + animation-fill-mode: both; +} +.sidebar-mini.sidebar-collapse .logo-xs { + display: inline-block; + visibility: visible; + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover { + min-width: var(--lte-sidebar-width); + max-width: var(--lte-sidebar-width); +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .sidebar-menu .nav-header { + display: inline-block; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .sidebar-menu .nav-link { + width: auto; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .sidebar-menu .nav-link p, +.sidebar-mini.sidebar-collapse .app-sidebar:hover .brand-text, +.sidebar-mini.sidebar-collapse .app-sidebar:hover .logo-xl { + width: auto; + margin-left: 0; + visibility: visible; + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .brand-text { + display: inline; + max-width: inherit; + margin-left: 0.5rem; + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav-badge, +.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav-arrow { + display: inline-block; + visibility: visible; + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav-link p { + padding-left: 0.5rem; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .logo-xs { + visibility: hidden; + animation-name: fadeOut; + animation-duration: 0.3s; + animation-fill-mode: both; +} + +.sidebar-collapse:not(.sidebar-mini) .app-sidebar { + margin-left: calc(var(--lte-sidebar-width) * -1); +} + +.sidebar-expand { + /* stylelint-disable-next-line scss/selector-no-union-class-name */ +} +@media (min-width: 576px) { + .sidebar-expand-sm.layout-fixed .app-main-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; + } + .sidebar-expand-sm.layout-fixed .app-sidebar-wrapper { + position: relative; + } + .sidebar-expand-sm.layout-fixed .app-main { + flex: 1 1 auto; + overflow: auto; + } + .sidebar-expand-sm.layout-fixed .app-sidebar { + position: sticky; + top: 0; + bottom: 0; + max-height: 100vh; + } + .sidebar-expand-sm.layout-fixed .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-sm.sidebar-open .nav-link > .nav-badge, + .sidebar-expand-sm.sidebar-open .nav-link > p > .nav-badge { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } + .sidebar-expand-sm.sidebar-open .nav-link > .nav-arrow, + .sidebar-expand-sm.sidebar-open .nav-link > p > .nav-arrow { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } +} +@media (max-width: 575.98px) { + .sidebar-expand-sm::before { + display: none; + content: "575.98px"; + } + .sidebar-expand-sm .app-sidebar { + position: fixed; + top: 0; + bottom: 0; + max-height: 100vh; + margin-left: calc(var(--lte-sidebar-width) * -1); + } + .sidebar-expand-sm .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-sm.sidebar-open .app-sidebar { + margin-left: 0; + } + .sidebar-expand-sm.sidebar-open .sidebar-overlay { + position: absolute; + inset: 0; + z-index: 1037; + width: 100%; + height: 100%; + cursor: pointer; + visibility: visible; + background-color: rgba(0, 0, 0, 0.2); + animation-name: fadeIn; + animation-fill-mode: both; + } +} +.sidebar-expand { + /* stylelint-disable-next-line scss/selector-no-union-class-name */ +} +@media (min-width: 768px) { + .sidebar-expand-md.layout-fixed .app-main-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; + } + .sidebar-expand-md.layout-fixed .app-sidebar-wrapper { + position: relative; + } + .sidebar-expand-md.layout-fixed .app-main { + flex: 1 1 auto; + overflow: auto; + } + .sidebar-expand-md.layout-fixed .app-sidebar { + position: sticky; + top: 0; + bottom: 0; + max-height: 100vh; + } + .sidebar-expand-md.layout-fixed .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-md.sidebar-open .nav-link > .nav-badge, + .sidebar-expand-md.sidebar-open .nav-link > p > .nav-badge { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } + .sidebar-expand-md.sidebar-open .nav-link > .nav-arrow, + .sidebar-expand-md.sidebar-open .nav-link > p > .nav-arrow { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } +} +@media (max-width: 767.98px) { + .sidebar-expand-md::before { + display: none; + content: "767.98px"; + } + .sidebar-expand-md .app-sidebar { + position: fixed; + top: 0; + bottom: 0; + max-height: 100vh; + margin-left: calc(var(--lte-sidebar-width) * -1); + } + .sidebar-expand-md .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-md.sidebar-open .app-sidebar { + margin-left: 0; + } + .sidebar-expand-md.sidebar-open .sidebar-overlay { + position: absolute; + inset: 0; + z-index: 1037; + width: 100%; + height: 100%; + cursor: pointer; + visibility: visible; + background-color: rgba(0, 0, 0, 0.2); + animation-name: fadeIn; + animation-fill-mode: both; + } +} +.sidebar-expand { + /* stylelint-disable-next-line scss/selector-no-union-class-name */ +} +@media (min-width: 992px) { + .sidebar-expand-lg.layout-fixed .app-main-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; + } + .sidebar-expand-lg.layout-fixed .app-sidebar-wrapper { + position: relative; + } + .sidebar-expand-lg.layout-fixed .app-main { + flex: 1 1 auto; + overflow: auto; + } + .sidebar-expand-lg.layout-fixed .app-sidebar { + position: sticky; + top: 0; + bottom: 0; + max-height: 100vh; + } + .sidebar-expand-lg.layout-fixed .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-lg.sidebar-open .nav-link > .nav-badge, + .sidebar-expand-lg.sidebar-open .nav-link > p > .nav-badge { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } + .sidebar-expand-lg.sidebar-open .nav-link > .nav-arrow, + .sidebar-expand-lg.sidebar-open .nav-link > p > .nav-arrow { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } +} +@media (max-width: 991.98px) { + .sidebar-expand-lg::before { + display: none; + content: "991.98px"; + } + .sidebar-expand-lg .app-sidebar { + position: fixed; + top: 0; + bottom: 0; + max-height: 100vh; + margin-left: calc(var(--lte-sidebar-width) * -1); + } + .sidebar-expand-lg .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-lg.sidebar-open .app-sidebar { + margin-left: 0; + } + .sidebar-expand-lg.sidebar-open .sidebar-overlay { + position: absolute; + inset: 0; + z-index: 1037; + width: 100%; + height: 100%; + cursor: pointer; + visibility: visible; + background-color: rgba(0, 0, 0, 0.2); + animation-name: fadeIn; + animation-fill-mode: both; + } +} +.sidebar-expand { + /* stylelint-disable-next-line scss/selector-no-union-class-name */ +} +@media (min-width: 1200px) { + .sidebar-expand-xl.layout-fixed .app-main-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; + } + .sidebar-expand-xl.layout-fixed .app-sidebar-wrapper { + position: relative; + } + .sidebar-expand-xl.layout-fixed .app-main { + flex: 1 1 auto; + overflow: auto; + } + .sidebar-expand-xl.layout-fixed .app-sidebar { + position: sticky; + top: 0; + bottom: 0; + max-height: 100vh; + } + .sidebar-expand-xl.layout-fixed .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-xl.sidebar-open .nav-link > .nav-badge, + .sidebar-expand-xl.sidebar-open .nav-link > p > .nav-badge { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } + .sidebar-expand-xl.sidebar-open .nav-link > .nav-arrow, + .sidebar-expand-xl.sidebar-open .nav-link > p > .nav-arrow { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } +} +@media (max-width: 1199.98px) { + .sidebar-expand-xl::before { + display: none; + content: "1199.98px"; + } + .sidebar-expand-xl .app-sidebar { + position: fixed; + top: 0; + bottom: 0; + max-height: 100vh; + margin-left: calc(var(--lte-sidebar-width) * -1); + } + .sidebar-expand-xl .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-xl.sidebar-open .app-sidebar { + margin-left: 0; + } + .sidebar-expand-xl.sidebar-open .sidebar-overlay { + position: absolute; + inset: 0; + z-index: 1037; + width: 100%; + height: 100%; + cursor: pointer; + visibility: visible; + background-color: rgba(0, 0, 0, 0.2); + animation-name: fadeIn; + animation-fill-mode: both; + } +} +.sidebar-expand { + /* stylelint-disable-next-line scss/selector-no-union-class-name */ +} +@media (min-width: 1400px) { + .sidebar-expand-xxl.layout-fixed .app-main-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; + } + .sidebar-expand-xxl.layout-fixed .app-sidebar-wrapper { + position: relative; + } + .sidebar-expand-xxl.layout-fixed .app-main { + flex: 1 1 auto; + overflow: auto; + } + .sidebar-expand-xxl.layout-fixed .app-sidebar { + position: sticky; + top: 0; + bottom: 0; + max-height: 100vh; + } + .sidebar-expand-xxl.layout-fixed .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-xxl.sidebar-open .nav-link > .nav-badge, + .sidebar-expand-xxl.sidebar-open .nav-link > p > .nav-badge { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } + .sidebar-expand-xxl.sidebar-open .nav-link > .nav-arrow, + .sidebar-expand-xxl.sidebar-open .nav-link > p > .nav-arrow { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } +} +@media (max-width: 1399.98px) { + .sidebar-expand-xxl::before { + display: none; + content: "1399.98px"; + } + .sidebar-expand-xxl .app-sidebar { + position: fixed; + top: 0; + bottom: 0; + max-height: 100vh; + margin-left: calc(var(--lte-sidebar-width) * -1); + } + .sidebar-expand-xxl .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-xxl.sidebar-open .app-sidebar { + margin-left: 0; + } + .sidebar-expand-xxl.sidebar-open .sidebar-overlay { + position: absolute; + inset: 0; + z-index: 1037; + width: 100%; + height: 100%; + cursor: pointer; + visibility: visible; + background-color: rgba(0, 0, 0, 0.2); + animation-name: fadeIn; + animation-fill-mode: both; + } +} +.sidebar-expand { + /* stylelint-disable-next-line scss/selector-no-union-class-name */ +} +.sidebar-expand.layout-fixed .app-main-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; +} +.sidebar-expand.layout-fixed .app-sidebar-wrapper { + position: relative; +} +.sidebar-expand.layout-fixed .app-main { + flex: 1 1 auto; + overflow: auto; +} +.sidebar-expand.layout-fixed .app-sidebar { + position: sticky; + top: 0; + bottom: 0; + max-height: 100vh; +} +.sidebar-expand.layout-fixed .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; +} +.sidebar-expand.sidebar-open .nav-link > .nav-badge, +.sidebar-expand.sidebar-open .nav-link > p > .nav-badge { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; +} +.sidebar-expand.sidebar-open .nav-link > .nav-arrow, +.sidebar-expand.sidebar-open .nav-link > p > .nav-arrow { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; +} +.sidebar-expand::before { + display: none; + content: ""; +} +.sidebar-expand .app-sidebar { + position: fixed; + top: 0; + bottom: 0; + max-height: 100vh; + margin-left: calc(var(--lte-sidebar-width) * -1); +} +.sidebar-expand .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; +} +.sidebar-expand.sidebar-open .app-sidebar { + margin-left: 0; +} +.sidebar-expand.sidebar-open .sidebar-overlay { + position: absolute; + inset: 0; + z-index: 1037; + width: 100%; + height: 100%; + cursor: pointer; + visibility: visible; + background-color: rgba(0, 0, 0, 0.2); + animation-name: fadeIn; + animation-fill-mode: both; +} + +.sidebar-menu .nav-link p, +.app-sidebar .brand-text, +.app-sidebar .logo-xs, +.app-sidebar .logo-xl { + transition: margin-left 0.3s linear, opacity 0.3s ease, visibility 0.3s ease; +} +@media (prefers-reduced-motion: reduce) { + .sidebar-menu .nav-link p, + .app-sidebar .brand-text, + .app-sidebar .logo-xs, + .app-sidebar .logo-xl { + transition: none; + } +} + +.app-loaded.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link p, +.app-loaded.sidebar-mini.sidebar-collapse .brand-text { + animation-duration: 0.3s; +} + +body:not(.app-loaded) .app-header, +body:not(.app-loaded) .app-sidebar, +body:not(.app-loaded) .app-main, +body:not(.app-loaded) .app-footer { + transition: none !important; +} +@media (prefers-reduced-motion: reduce) { + body:not(.app-loaded) .app-header, + body:not(.app-loaded) .app-sidebar, + body:not(.app-loaded) .app-main, + body:not(.app-loaded) .app-footer { + transition: none; + } +} +body:not(.app-loaded) .app-header, +body:not(.app-loaded) .app-sidebar, +body:not(.app-loaded) .app-main, +body:not(.app-loaded) .app-footer { + animation-duration: 0s !important; +} + +.hold-transition .app-header, +.hold-transition .app-sidebar, +.hold-transition .app-main, +.hold-transition .app-footer, +.hold-transition .nav-arrow, +.hold-transition .nav-badge { + transition: none !important; +} +@media (prefers-reduced-motion: reduce) { + .hold-transition .app-header, + .hold-transition .app-sidebar, + .hold-transition .app-main, + .hold-transition .app-footer, + .hold-transition .nav-arrow, + .hold-transition .nav-badge { + transition: none; + } +} +.hold-transition .app-header, +.hold-transition .app-sidebar, +.hold-transition .app-main, +.hold-transition .app-footer, +.hold-transition .nav-arrow, +.hold-transition .nav-badge { + animation-duration: 0s !important; +} + +[data-bs-theme=dark].app-sidebar, +[data-bs-theme=dark] .app-sidebar { + --lte-sidebar-hover-bg: rgba(255, 255, 255, 0.1); + --lte-sidebar-color: #c2c7d0; + --lte-sidebar-hover-color: #fff; + --lte-sidebar-active-color: #fff; + --lte-sidebar-menu-active-bg: rgba(255, 255, 255, 0.1); + --lte-sidebar-menu-active-color: #fff; + --lte-sidebar-submenu-bg: transparent; + --lte-sidebar-submenu-color: #c2c7d0; + --lte-sidebar-submenu-hover-color: #fff; + --lte-sidebar-submenu-hover-bg: rgba(255, 255, 255, 0.1); + --lte-sidebar-submenu-active-color: #fff; + --lte-sidebar-submenu-active-bg: rgba(255, 255, 255, 0.1); + --lte-sidebar-header-color: rgb(197.05, 201.8, 210.35); +} + +.app-main { + position: relative; + display: flex; + flex-direction: column; + grid-area: lte-app-main; + max-width: 100vw; + padding-bottom: 0.75rem; + transition: 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .app-main { + transition: none; + } +} +.app-main .app-content-header { + padding: 1rem 0.5rem; +} +.app-main .app-content-header .breadcrumb { + padding: 0; + margin-bottom: 0; + line-height: 2.5rem; +} +.app-main .app-content-header .breadcrumb a { + text-decoration: none; +} +.app-main .app-content-top-area, +.app-main .app-content-bottom-area { + color: var(--bs-secondary-color); + background-color: var(--bs-body-bg); +} +.app-main .app-content-top-area { + padding: 1rem 0; + border-bottom: 1px solid var(--bs-border-color); +} +.app-main .app-content-bottom-area { + padding: 1rem 0; + margin-top: auto; + margin-bottom: -0.75rem; + border-top: 1px solid var(--bs-border-color); +} + +.app-footer { + grid-area: lte-app-footer; + width: inherit; + max-width: 100vw; + min-height: 3rem; + padding: 1rem; + color: var(--bs-secondary-color); + background-color: var(--bs-body-bg); + border-top: 1px solid var(--bs-border-color); + transition: 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .app-footer { + transition: none; + } +} + +.fixed-footer .app-footer { + position: sticky; + bottom: 0; + z-index: 1030; +} + +.fs-7 .dropdown-menu { + font-size: 0.875rem !important; +} +.fs-7 .dropdown-toggle::after { + vertical-align: 0.2rem; +} + +.dropdown-item-title { + margin: 0; + font-size: 1rem; +} + +.dropdown-icon::after { + margin-left: 0; +} + +.dropdown-menu-lg { + min-width: 280px; + max-width: 300px; + padding: 0; +} +.dropdown-menu-lg .dropdown-divider { + margin: 0; +} +.dropdown-menu-lg .dropdown-item { + padding: 0.5rem 1rem; +} +.dropdown-menu-lg p { + margin: 0; + word-wrap: break-word; + white-space: normal; +} + +.dropdown-submenu { + position: relative; +} +.dropdown-submenu > a::after { + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; + float: right; + margin-top: 0.5rem; + margin-left: 0.5rem; +} +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: 0; + margin-left: 0; +} + +.dropdown-hover:hover > .dropdown-menu, .dropdown-hover.nav-item.dropdown:hover > .dropdown-menu, +.dropdown-hover .dropdown-submenu:hover > .dropdown-menu, .dropdown-hover.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropdown-menu-xl { + min-width: 360px; + max-width: 420px; + padding: 0; +} +.dropdown-menu-xl .dropdown-divider { + margin: 0; +} +.dropdown-menu-xl .dropdown-item { + padding: 0.5rem 1rem; +} +.dropdown-menu-xl p { + margin: 0; + word-wrap: break-word; + white-space: normal; +} + +.dropdown-footer, +.dropdown-header { + display: block; + padding: 0.5rem 1rem; + font-size: 0.875rem; + text-align: center; +} + +.open:not(.dropup) > .animated-dropdown-menu { + animation: flipInX 0.7s both; + backface-visibility: visible !important; +} + +.navbar-custom-menu > .navbar-nav > li { + position: relative; +} +.navbar-custom-menu > .navbar-nav > li > .dropdown-menu { + position: absolute; + right: 0; + left: auto; +} + +@media (max-width: 575.98px) { + .navbar-custom-menu > .navbar-nav { + float: right; + } + .navbar-custom-menu > .navbar-nav > li { + position: static; + } + .navbar-custom-menu > .navbar-nav > li > .dropdown-menu { + position: absolute; + right: 5%; + left: auto; + background-color: var(--bs-body-bg); + border: 1px solid var(--bs-border-color); + } +} +.navbar-nav > .user-menu > .nav-link::after { + content: none; +} +.navbar-nav > .user-menu > .dropdown-menu { + border-top-left-radius: 0; + border-top-right-radius: 0; + width: 280px; + padding: 0; +} +.navbar-nav > .user-menu > .dropdown-menu, +.navbar-nav > .user-menu > .dropdown-menu > .user-body { + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header { + min-height: 175px; + padding: 10px; + text-align: center; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img { + z-index: 5; + width: 90px; + height: 90px; + border: 3px solid; + border-color: transparent; + border-color: var(--bs-border-color-translucent); +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p { + z-index: 5; + margin-top: 10px; + font-size: 17px; + word-wrap: break-word; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small, .navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > .small { + display: block; + font-size: 12px; +} +.navbar-nav > .user-menu > .dropdown-menu > .user-body::after { + display: block; + clear: both; + content: ""; +} +.navbar-nav > .user-menu > .dropdown-menu > .user-body { + padding: 15px; + border-top: 1px solid var(--bs-border-color); + border-bottom: 1px solid var(--bs-border-color-translucent); +} +.navbar-nav > .user-menu > .dropdown-menu > .user-body a { + text-decoration: none; +} +@media (min-width: 576px) { + .navbar-nav > .user-menu > .dropdown-menu > .user-body a { + color: var(--bs-body-color) !important; + background-color: var(--bs-body-bg) !important; + } +} +.navbar-nav > .user-menu > .dropdown-menu > .user-footer::after { + display: block; + clear: both; + content: ""; +} +.navbar-nav > .user-menu > .dropdown-menu > .user-footer { + padding: 10px; + background-color: var(--bs-light-bg); +} +.navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default { + color: var(--bs-body-color); +} +@media (min-width: 576px) { + .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover { + background-color: var(--bs-body-bg); + } +} +@media (min-width: 576px) { + .navbar-nav > .user-menu .user-image { + float: none; + margin-top: -8px; + margin-right: 0.4rem; + line-height: 10px; + } +} +.navbar-nav > .user-menu .user-image { + float: left; + width: 2rem; + height: 2rem; + margin-top: -2px; + border-radius: 50%; +} + +.callout { + --bs-link-color-rgb: var(--lte-callout-link); + --bs-code-color: var(--lte-callout-code-color); + padding: 1.25rem; + color: var(--lte-callout-color, inherit); + background-color: var(--lte-callout-bg, var(--bs-gray-100)); + border-left: 0.25rem solid var(--lte-callout-border, var(--bs-gray-300)); +} +.callout .callout-link { + font-weight: 700; + color: var(--bs-callout-link-color); +} +.callout h4, .callout .h4 { + margin-bottom: 0.25rem; +} +.callout > :last-child { + margin-bottom: 0; +} +.callout + .callout { + margin-top: -0.25rem; +} + +.callout-primary { + --lte-callout-color: var(--bs-primary-text-emphasis); + --lte-callout-bg: var(--bs-primary-bg-subtle); + --lte-callout-border: var(--bs-primary-border-subtle); + --bs-callout-link-color: var(--bs-primary-text-emphasis); +} + +.callout-secondary { + --lte-callout-color: var(--bs-secondary-text-emphasis); + --lte-callout-bg: var(--bs-secondary-bg-subtle); + --lte-callout-border: var(--bs-secondary-border-subtle); + --bs-callout-link-color: var(--bs-secondary-text-emphasis); +} + +.callout-success { + --lte-callout-color: var(--bs-success-text-emphasis); + --lte-callout-bg: var(--bs-success-bg-subtle); + --lte-callout-border: var(--bs-success-border-subtle); + --bs-callout-link-color: var(--bs-success-text-emphasis); +} + +.callout-info { + --lte-callout-color: var(--bs-info-text-emphasis); + --lte-callout-bg: var(--bs-info-bg-subtle); + --lte-callout-border: var(--bs-info-border-subtle); + --bs-callout-link-color: var(--bs-info-text-emphasis); +} + +.callout-warning { + --lte-callout-color: var(--bs-warning-text-emphasis); + --lte-callout-bg: var(--bs-warning-bg-subtle); + --lte-callout-border: var(--bs-warning-border-subtle); + --bs-callout-link-color: var(--bs-warning-text-emphasis); +} + +.callout-danger { + --lte-callout-color: var(--bs-danger-text-emphasis); + --lte-callout-bg: var(--bs-danger-bg-subtle); + --lte-callout-border: var(--bs-danger-border-subtle); + --bs-callout-link-color: var(--bs-danger-text-emphasis); +} + +.callout-light { + --lte-callout-color: var(--bs-light-text-emphasis); + --lte-callout-bg: var(--bs-light-bg-subtle); + --lte-callout-border: var(--bs-light-border-subtle); + --bs-callout-link-color: var(--bs-light-text-emphasis); +} + +.callout-dark { + --lte-callout-color: var(--bs-dark-text-emphasis); + --lte-callout-bg: var(--bs-dark-bg-subtle); + --lte-callout-border: var(--bs-dark-border-subtle); + --bs-callout-link-color: var(--bs-dark-text-emphasis); +} + +.compact-mode .app-header { + max-height: 2.75rem; +} +.compact-mode .app-header .nav-link { + max-height: 1.75rem; +} +.compact-mode .nav-link { + --bs-nav-link-padding-y: .25rem; + --bs-nav-link-padding-x: .5rem; +} +.compact-mode.sidebar-mini.sidebar-collapse .app-sidebar:not(:hover) { + min-width: 3.1rem; + max-width: 3.1rem; +} +.compact-mode.sidebar-mini.sidebar-collapse .app-sidebar:not(:hover) .sidebar-menu .nav-link { + width: 2.1rem !important; +} +.compact-mode .logo-xs, +.compact-mode .logo-xl { + max-height: 2.75rem; +} +.compact-mode .brand-image { + width: 1.75rem; + height: 1.75rem; +} +.compact-mode .sidebar-brand { + height: 2.75rem; +} +.compact-mode .app-footer { + padding: 0.5rem; +} +.compact-mode .sidebar-wrapper .nav-icon { + min-width: 1.1rem; + max-width: 1.1rem; +} + +.astro-code { + padding: 0.75rem; + border-radius: 0.375rem; +} + +.progress { + border-radius: 1px; +} +.progress.vertical { + position: relative; + display: inline-block; + width: 30px; + height: 200px; + margin-right: 10px; +} +.progress.vertical > .progress-bar { + position: absolute; + bottom: 0; + width: 100%; +} +.progress.vertical.sm, .progress.vertical.progress-sm { + width: 20px; +} +.progress.vertical.xs, .progress.vertical.progress-xs { + width: 10px; +} +.progress.vertical.xxs, .progress.vertical.progress-xxs { + width: 3px; +} + +.progress-group { + margin-bottom: 0.5rem; +} + +.progress-sm { + height: 10px; +} + +.progress-xs { + height: 7px; +} + +.progress-xxs { + height: 3px; +} + +.table tr > td .progress { + margin: 0; +} + +.card { + box-shadow: 0 0 1px rgba(var(--bs-body-color-rgb), 0.125), 0 1px 3px rgba(var(--bs-body-color-rgb), 0.2); +} +.card[class*=card-]:not(.card-outline) > .card-header, .card[class*=text-bg-]:not(.card-outline) > .card-header { + color: var(--lte-card-variant-color); + background-color: var(--lte-card-variant-bg); +} +.card[class*=card-]:not(.card-outline) > .card-header .btn-tool, .card[class*=text-bg-]:not(.card-outline) > .card-header .btn-tool { + --bs-btn-color: rgba(var(--lte-card-variant-color-rgb), .8); + --bs-btn-hover-color: var(--lte-card-variant-color); +} +.card.card-outline { + border-top: 3px solid var(--lte-card-variant-bg); +} +.card.maximized-card { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + width: 100% !important; + max-width: 100% !important; + height: 100% !important; + max-height: 100% !important; +} +.card.maximized-card.was-collapsed .card-body { + display: block !important; +} +.card.maximized-card .card-body { + overflow: auto; +} +.card.maximized-card [data-lte-toggle=card-collapse] { + display: none; +} +.card.maximized-card [data-lte-icon=maximize] { + display: none; +} +.card.maximized-card .card-header, +.card.maximized-card .card-footer { + border-radius: 0 !important; +} +.card:not(.maximized-card) [data-lte-icon=minimize] { + display: none; +} +.card.collapsed-card [data-lte-icon=collapse] { + display: none; +} +.card.collapsed-card .card-body, +.card.collapsed-card .card-footer { + display: none; +} +.card:not(.collapsed-card) [data-lte-icon=expand] { + display: none; +} +.card .nav.flex-column > li { + margin: 0; + border-bottom: 1px solid var(--bs-border-color-translucent); +} +.card .nav.flex-column > li:last-of-type { + border-bottom: 0; +} +.card.height-control .card-body { + max-height: 300px; + overflow: auto; +} +.card .border-end { + border-right: 1px solid var(--bs-border-color-translucent); +} +.card .border-start { + border-left: 1px solid var(--bs-border-color-translucent); +} +.card.card-tabs:not(.card-outline) > .card-header { + border-bottom: 0; +} +.card.card-tabs:not(.card-outline) > .card-header .nav-item:first-child .nav-link { + border-left-color: transparent; +} +.card.card-tabs.card-outline .nav-item { + border-bottom: 0; +} +.card.card-tabs.card-outline .nav-item:first-child .nav-link { + margin-left: 0; + border-left: 0; +} +.card.card-tabs .card-tools { + margin: 0.3rem 0.5rem; +} +.card.card-tabs:not(.expanding-card).collapsed-card .card-header { + border-bottom: 0; +} +.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs { + border-bottom: 0; +} +.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item { + margin-bottom: 0; +} +.card.card-tabs.expanding-card .card-header .nav-tabs .nav-item { + margin-bottom: -1px; +} +.card.card-outline-tabs { + border-top: 0; +} +.card.card-outline-tabs .card-header .nav-item:first-child .nav-link { + margin-left: 0; + border-left: 0; +} +.card.card-outline-tabs .card-header a { + text-decoration: none; + border-top: 3px solid transparent; +} +.card.card-outline-tabs .card-header a:hover { + border-top: 3px solid var(--bs-border-color); +} +.card.card-outline-tabs .card-header a.active:hover { + margin-top: 0; +} +.card.card-outline-tabs .card-tools { + margin: 0.5rem 0.5rem 0.3rem; +} +.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header { + border-bottom: 0; +} +.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs { + border-bottom: 0; +} +.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item { + margin-bottom: 0; +} +.card.card-outline-tabs.expanding-card .card-header .nav-tabs .nav-item { + margin-bottom: -1px; +} + +html.maximized-card { + overflow: hidden; +} + +.card-header::after, +.card-body::after, +.card-footer::after { + display: block; + clear: both; + content: ""; +} + +.card-header { + position: relative; + padding: 1rem 1rem; + background-color: transparent; + border-bottom: 1px solid var(--bs-border-color-translucent); + border-top-left-radius: 0.375rem; + border-top-right-radius: 0.375rem; +} +.collapsed-card .card-header { + border-bottom: 0; +} +.card-header > .card-tools { + float: right; + margin-right: -0.5rem; +} +.card-header > .card-tools .input-group, +.card-header > .card-tools .nav, +.card-header > .card-tools .pagination { + margin-top: -0.4rem; + margin-bottom: -0.4rem; +} +.card-header > .card-tools [data-bs-toggle=tooltip] { + position: relative; +} + +.card-title { + float: left; + margin: 0; + font-size: 1.1rem; + font-weight: 400; +} + +.btn-tool { + --bs-btn-padding-x: .5rem; + --bs-btn-padding-y: .25rem; +} +.btn-tool:not(.btn-tool-custom) { + --bs-btn-color: var(--bs-tertiary-color); + --bs-btn-bg: transparent; + --bs-btn-box-shadow: none; + --bs-btn-hover-color: var(--bs-secondary-color); + --bs-btn-active-border-color: transparent; +} +.btn-tool { + margin: -1rem 0; + font-size: 0.875rem; +} + +.card-primary, +.bg-primary, +.text-bg-primary { + --lte-card-variant-bg: #0d6efd; + --lte-card-variant-bg-rgb: 13, 110, 253; + --lte-card-variant-color: #fff; + --lte-card-variant-color-rgb: 255, 255, 255; +} + +.card-secondary, +.bg-secondary, +.text-bg-secondary { + --lte-card-variant-bg: #6c757d; + --lte-card-variant-bg-rgb: 108, 117, 125; + --lte-card-variant-color: #fff; + --lte-card-variant-color-rgb: 255, 255, 255; +} + +.card-success, +.bg-success, +.text-bg-success { + --lte-card-variant-bg: #198754; + --lte-card-variant-bg-rgb: 25, 135, 84; + --lte-card-variant-color: #fff; + --lte-card-variant-color-rgb: 255, 255, 255; +} + +.card-info, +.bg-info, +.text-bg-info { + --lte-card-variant-bg: #0dcaf0; + --lte-card-variant-bg-rgb: 13, 202, 240; + --lte-card-variant-color: #000; + --lte-card-variant-color-rgb: 0, 0, 0; +} + +.card-warning, +.bg-warning, +.text-bg-warning { + --lte-card-variant-bg: #ffc107; + --lte-card-variant-bg-rgb: 255, 193, 7; + --lte-card-variant-color: #000; + --lte-card-variant-color-rgb: 0, 0, 0; +} + +.card-danger, +.bg-danger, +.text-bg-danger { + --lte-card-variant-bg: #dc3545; + --lte-card-variant-bg-rgb: 220, 53, 69; + --lte-card-variant-color: #fff; + --lte-card-variant-color-rgb: 255, 255, 255; +} + +.card-light, +.bg-light, +.text-bg-light { + --lte-card-variant-bg: #f8f9fa; + --lte-card-variant-bg-rgb: 248, 249, 250; + --lte-card-variant-color: #000; + --lte-card-variant-color-rgb: 0, 0, 0; +} + +.card-dark, +.bg-dark, +.text-bg-dark { + --lte-card-variant-bg: #212529; + --lte-card-variant-bg-rgb: 33, 37, 41; + --lte-card-variant-color: #fff; + --lte-card-variant-color-rgb: 255, 255, 255; +} + +.card-body > .table { + margin-bottom: 0; +} +.card-body > .table > thead > tr > th, +.card-body > .table > thead > tr > td { + border-top-width: 0; +} + +.table:not(.table-dark) { + color: inherit; +} +.table.table-head-fixed thead tr:nth-child(1) th { + position: sticky; + top: 0; + z-index: 10; + background-color: #fff; + border-bottom: 0; + box-shadow: inset 0 1px 0 var(--bs-border-color), inset 0 -1px 0 var(--bs-border-color); +} +.table.no-border, +.table.no-border td, +.table.no-border th { + border: 0; +} +.table.text-center, +.table.text-center td, +.table.text-center th { + text-align: center; +} +.table.table-valign-middle thead > tr > th, +.table.table-valign-middle thead > tr > td, +.table.table-valign-middle tbody > tr > th, +.table.table-valign-middle tbody > tr > td { + vertical-align: middle; +} +.card-body.p-0 .table thead > tr > th:first-of-type, +.card-body.p-0 .table thead > tr > td:first-of-type, +.card-body.p-0 .table tfoot > tr > th:first-of-type, +.card-body.p-0 .table tfoot > tr > td:first-of-type, +.card-body.p-0 .table tbody > tr > th:first-of-type, +.card-body.p-0 .table tbody > tr > td:first-of-type { + padding-left: 1.5rem; +} +.card-body.p-0 .table thead > tr > th:last-of-type, +.card-body.p-0 .table thead > tr > td:last-of-type, +.card-body.p-0 .table tfoot > tr > th:last-of-type, +.card-body.p-0 .table tfoot > tr > td:last-of-type, +.card-body.p-0 .table tbody > tr > th:last-of-type, +.card-body.p-0 .table tbody > tr > td:last-of-type { + padding-right: 1.5rem; +} + +.small-box { + border-radius: 0.375rem; + box-shadow: 0 0 1px rgba(var(--bs-body-color-rgb), 0.125), 0 1px 3px rgba(var(--bs-body-color-rgb), 0.2); + position: relative; + display: block; + margin-bottom: 1.25rem; + --bs-link-color-rgb: none; + --bs-link-hover-color-rgb: none; + --bs-heading-color: none; +} +.small-box > .inner { + padding: 10px; +} +.small-box > .small-box-footer { + position: relative; + z-index: 10; + display: block; + padding: 3px 0; + text-align: center; + background-color: rgba(0, 0, 0, 0.07); +} +.small-box > .small-box-footer:hover { + background-color: rgba(0, 0, 0, 0.1); +} +.small-box h3, .small-box .h3 { + font-size: calc(1.345rem + 1.14vw); +} +@media (min-width: 1200px) { + .small-box h3, .small-box .h3 { + font-size: 2.2rem; + } +} +.small-box h3, .small-box .h3 { + padding: 0; + margin: 0 0 10px; + font-weight: 700; + white-space: nowrap; +} +@media (min-width: 992px) { + .col-xl-2 .small-box h3, .col-xl-2 .small-box .h3, .col-lg-2 .small-box h3, .col-lg-2 .small-box .h3, .col-md-2 .small-box h3, .col-md-2 .small-box .h3 { + font-size: calc(1.285rem + 0.42vw); + } +} +@media (min-width: 992px) and (min-width: 1200px) { + .col-xl-2 .small-box h3, .col-xl-2 .small-box .h3, .col-lg-2 .small-box h3, .col-lg-2 .small-box .h3, .col-md-2 .small-box h3, .col-md-2 .small-box .h3 { + font-size: 1.6rem; + } +} +@media (min-width: 992px) { + .col-xl-3 .small-box h3, .col-xl-3 .small-box .h3, .col-lg-3 .small-box h3, .col-lg-3 .small-box .h3, .col-md-3 .small-box h3, .col-md-3 .small-box .h3 { + font-size: calc(1.285rem + 0.42vw); + } +} +@media (min-width: 992px) and (min-width: 1200px) { + .col-xl-3 .small-box h3, .col-xl-3 .small-box .h3, .col-lg-3 .small-box h3, .col-lg-3 .small-box .h3, .col-md-3 .small-box h3, .col-md-3 .small-box .h3 { + font-size: 1.6rem; + } +} +@media (min-width: 1200px) { + .col-xl-2 .small-box h3, .col-xl-2 .small-box .h3, .col-lg-2 .small-box h3, .col-lg-2 .small-box .h3, .col-md-2 .small-box h3, .col-md-2 .small-box .h3 { + font-size: calc(1.345rem + 1.14vw); + } +} +@media (min-width: 1200px) and (min-width: 1200px) { + .col-xl-2 .small-box h3, .col-xl-2 .small-box .h3, .col-lg-2 .small-box h3, .col-lg-2 .small-box .h3, .col-md-2 .small-box h3, .col-md-2 .small-box .h3 { + font-size: 2.2rem; + } +} +@media (min-width: 1200px) { + .col-xl-3 .small-box h3, .col-xl-3 .small-box .h3, .col-lg-3 .small-box h3, .col-lg-3 .small-box .h3, .col-md-3 .small-box h3, .col-md-3 .small-box .h3 { + font-size: calc(1.345rem + 1.14vw); + } +} +@media (min-width: 1200px) and (min-width: 1200px) { + .col-xl-3 .small-box h3, .col-xl-3 .small-box .h3, .col-lg-3 .small-box h3, .col-lg-3 .small-box .h3, .col-md-3 .small-box h3, .col-md-3 .small-box .h3 { + font-size: 2.2rem; + } +} +.small-box p { + font-size: 1rem; +} +.small-box p > small, .small-box p > .small { + display: block; + margin-top: 5px; + font-size: 0.9rem; + color: #f8f9fa; +} +.small-box h3, .small-box .h3, +.small-box p { + z-index: 5; +} +.small-box .small-box-icon { + position: absolute; + top: 15px; + right: 15px; + z-index: 0; + height: 70px; + font-size: 70px; + color: rgba(0, 0, 0, 0.15); + transition: transform 0.3s linear; +} +@media (prefers-reduced-motion: reduce) { + .small-box .small-box-icon { + transition: none; + } +} +.small-box:hover .small-box-icon { + transform: scale(1.1); +} + +@media (max-width: 575.98px) { + .small-box { + text-align: center; + } + .small-box .small-box-icon { + display: none; + } + .small-box p { + font-size: 12px; + } +} +.stats{ + font-size: 0.8em; + white-space: nowrap; + box-shadow: none; + margin-bottom: 0.5rem !important; +} +.info-box { + box-shadow: 0 0 1px rgba(var(--bs-body-color-rgb), 0.125), 0 1px 3px rgba(var(--bs-body-color-rgb), 0.2); + border-radius: 0.375rem; + position: relative; + display: flex; + width: 100%; + min-height: 80px; + padding: 0.3rem; + margin-bottom: 0.5rem; + color: var(--bs-body-color); + background-color: var(--bs-body-bg); +} +.info-box .progress { + height: 2px; + margin: 5px 0; + background-color: rgba(var(--lte-card-variant-color-rgb), 0.125); +} +.info-box .progress .progress-bar { + background-color: var(--lte-card-variant-color); +} +.info-box .info-box-icon { + display: flex; + align-items: center; + justify-content: center; + font-size: 1.875rem; + text-align: center; + border-radius: 0.375rem; +} +.info-box .info-box-icon > img { + max-width: 100%; +} +.info-box .info-box-content { + display: flex; + flex: 1; + width:100%; + overflow: hidden; + flex-direction: column; + justify-content: center; + padding: 0 0px; + line-height: 1.8; +} +.info-box .info-box-number { + display: inline-block; + margin-top: 0.25rem; + font-weight: 700; +} +.info-box .progress-description, +.info-box .info-box-text { + display: inline-block; + font-size: 0.8em; + width: calc(100%); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.info-box .info-box-more { + display: block; +} +.info-box .progress-description { + margin: 0; +} +@media (min-width: 768px) { + .col-xl-2 .info-box .progress-description, .col-lg-2 .info-box .progress-description, .col-md-2 .info-box .progress-description { + display: none; + } + .col-xl-3 .info-box .progress-description, .col-lg-3 .info-box .progress-description, .col-md-3 .info-box .progress-description { + display: none; + } +} +@media (min-width: 992px) { + .col-xl-2 .info-box .progress-description, .col-lg-2 .info-box .progress-description, .col-md-2 .info-box .progress-description { + font-size: 0.75rem; + display: block; + } + .col-xl-3 .info-box .progress-description, .col-lg-3 .info-box .progress-description, .col-md-3 .info-box .progress-description { + font-size: 0.75rem; + display: block; + } +} +@media (min-width: 1200px) { + .col-xl-2 .info-box .progress-description, .col-lg-2 .info-box .progress-description, .col-md-2 .info-box .progress-description { + font-size: 1rem; + display: block; + } + .col-xl-3 .info-box .progress-description, .col-lg-3 .info-box .progress-description, .col-md-3 .info-box .progress-description { + font-size: 1rem; + display: block; + } +} + +.timeline { + position: relative; + padding: 0; + margin: 0 0 45px; +} +.timeline::before { + border-radius: 0.375rem; + position: absolute; + top: 0; + bottom: 0; + left: 31px; + width: 4px; + margin: 0; + content: ""; + background-color: var(--bs-border-color); +} +.timeline > div::before, .timeline > div::after { + display: table; + content: ""; +} +.timeline > div { + position: relative; + margin-right: 10px; + margin-bottom: 15px; +} +.timeline > div > .timeline-item { + box-shadow: 0 0 1px rgba(var(--bs-body-color-rgb), 0.125), 0 1px 3px rgba(var(--bs-body-color-rgb), 0.2); + border-radius: 0.375rem; + position: relative; + padding: 0; + margin-top: 0; + margin-right: 15px; + margin-left: 60px; + color: var(--bs-body-color); + background-color: var(--bs-body-bg); +} +.timeline > div > .timeline-item > .time { + float: right; + padding: 10px; + font-size: 12px; + color: var(--bs-secondary-color); +} +.timeline > div > .timeline-item > .timeline-header { + padding: 10px; + margin: 0; + font-size: 16px; + line-height: 1.1; + color: var(--bs-secondary-color); + border-bottom: 1px solid var(--bs-border-color); +} +.timeline > div > .timeline-item > .timeline-header > a { + font-weight: 600; + text-decoration: none; +} +.timeline > div > .timeline-item > .timeline-body, +.timeline > div > .timeline-item > .timeline-footer { + padding: 10px; +} +.timeline > div > .timeline-item > .timeline-body > img { + margin: 10px; +} +.timeline > div > .timeline-item > .timeline-body > dl, +.timeline > div > .timeline-item > .timeline-body ol, +.timeline > div > .timeline-item > .timeline-body ul { + margin: 0; +} +.timeline > div .timeline-icon { + position: absolute; + top: 0; + left: 18px; + width: 30px; + height: 30px; + font-size: 16px; + line-height: 30px; + text-align: center; + background-color: var(--bs-secondary-bg); + border-radius: 50%; +} +.timeline > .time-label > span { + border-radius: 4px; + display: inline-block; + padding: 5px; + font-weight: 600; + background-color: var(--bs-body-bg); +} + +.timeline-inverse > div > .timeline-item { + box-shadow: none; + background-color: var(--bs-tertiary-bg); + border: 1px solid var(--bs-border-color); +} +.timeline-inverse > div > .timeline-item > .timeline-header { + border-bottom-color: var(--bs-border-color); +} + +.direct-chat .card-body { + position: relative; + padding: 0; + overflow-x: hidden; +} +.direct-chat.chat-pane-open .direct-chat-contacts { + transform: translate(0, 0); +} +.direct-chat.timestamp-light .direct-chat-timestamp { + color: rgba(var(--bs-body-color-rgb), 0.65); +} +.direct-chat.timestamp-dark .direct-chat-timestamp { + color: rgba(var(--bs-body-color-rgb), 0.9); +} + +.direct-chat-messages { + height: 250px; + padding: 10px; + overflow: auto; + transform: translate(0, 0); +} + +.direct-chat-msg, +.direct-chat-text { + display: block; +} + +.direct-chat-msg::after { + display: block; + clear: both; + content: ""; +} +.direct-chat-msg { + margin-bottom: 10px; +} + +.direct-chat-messages, +.direct-chat-contacts { + transition: transform 0.5s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .direct-chat-messages, + .direct-chat-contacts { + transition: none; + } +} + +.direct-chat-text { + border-radius: 0.5rem; + position: relative; + padding: 5px 10px; + margin: 5px 0 0 50px; + color: var(--bs-emphasis-color); + background-color: var(--bs-secondary-bg); + border: 1px solid var(--bs-border-color); +} +.direct-chat-text::after, .direct-chat-text::before { + position: absolute; + top: 15px; + right: 100%; + width: 0; + height: 0; + pointer-events: none; + content: " "; + border: solid transparent; + border-right-color: var(--bs-border-color); +} +.direct-chat-text::after { + margin-top: -5px; + border-width: 5px; +} +.direct-chat-text::before { + margin-top: -6px; + border-width: 6px; +} +.end .direct-chat-text { + margin-right: 50px; + margin-left: 0; +} +.end .direct-chat-text::after, .end .direct-chat-text::before { + right: auto; + left: 100%; + border-right-color: transparent; + border-left-color: var(--bs-border-color); +} + +.direct-chat-img { + border-radius: 50%; + float: left; + width: 40px; + height: 40px; +} +.end .direct-chat-img { + float: right; +} + +.direct-chat-infos { + display: block; + margin-bottom: 2px; + font-size: 0.875rem; +} + +.direct-chat-name { + font-weight: 600; +} + +.direct-chat-timestamp { + color: rgba(var(--bs-body-color-rgb), 0.75); +} + +.direct-chat-contacts-open .direct-chat-contacts { + transform: translate(0, 0); +} + +.direct-chat-contacts { + position: absolute; + top: 0; + bottom: 0; + width: 100%; + height: 250px; + overflow: auto; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + transform: translate(101%, 0); +} + +.direct-chat-contacts-light { + background-color: var(--bs-light-bg-subtle); +} +.direct-chat-contacts-light .contacts-list-name { + color: var(--bs-body-color); +} +.direct-chat-contacts-light .contacts-list-date { + color: var(--bs-secondary-color); +} +.direct-chat-contacts-light .contacts-list-msg { + color: var(--bs-secondary-color); +} + +.contacts-list { + padding-left: 0; + list-style: none; +} +.contacts-list > li::after { + display: block; + clear: both; + content: ""; +} +.contacts-list > li { + padding: 10px; + margin: 0; + text-decoration: none; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); +} +.contacts-list > li:last-of-type { + border-bottom: 0; +} +.contacts-list > li a { + text-decoration: none; +} + +.contacts-list-img { + border-radius: 50%; + float: left; + width: 40px; +} + +.contacts-list-info { + margin-left: 45px; + color: var(--bs-body-bg); +} + +.contacts-list-name, +.contacts-list-status { + display: block; +} + +.contacts-list-name { + font-weight: 600; +} + +.contacts-list-status { + font-size: 0.875rem; +} + +.contacts-list-date { + font-weight: 400; + color: var(--bs-secondary-bg); +} + +.contacts-list-msg { + color: var(--bs-secondary-bg); +} + +.end > .direct-chat-text { + color: var(--lte-direct-chat-color); + background-color: var(--lte-direct-chat-bg); + border-color: var(--lte-direct-chat-bg); +} +.end > .direct-chat-text::after, .end > .direct-chat-text::before { + border-left-color: var(--lte-direct-chat-bg); +} + +.direct-chat-primary { + --lte-direct-chat-color: #fff; + --lte-direct-chat-bg: #0d6efd; +} + +.direct-chat-secondary { + --lte-direct-chat-color: #fff; + --lte-direct-chat-bg: #6c757d; +} + +.direct-chat-success { + --lte-direct-chat-color: #fff; + --lte-direct-chat-bg: #198754; +} + +.direct-chat-info { + --lte-direct-chat-color: #000; + --lte-direct-chat-bg: #0dcaf0; +} + +.direct-chat-warning { + --lte-direct-chat-color: #000; + --lte-direct-chat-bg: #ffc107; +} + +.direct-chat-danger { + --lte-direct-chat-color: #fff; + --lte-direct-chat-bg: #dc3545; +} + +.direct-chat-light { + --lte-direct-chat-color: #000; + --lte-direct-chat-bg: #f8f9fa; +} + +.direct-chat-dark { + --lte-direct-chat-color: #fff; + --lte-direct-chat-bg: #212529; +} + +.toast-primary { + --bs-toast-header-color: #fff; + --bs-toast-header-bg: #0d6efd; + --bs-toast-header-border-color: #0d6efd; + --bs-toast-border-color: #0d6efd; + --bs-toast-bg: var(--bs-primary-bg-subtle); +} +.toast-primary .btn-close { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +.toast-secondary { + --bs-toast-header-color: #fff; + --bs-toast-header-bg: #6c757d; + --bs-toast-header-border-color: #6c757d; + --bs-toast-border-color: #6c757d; + --bs-toast-bg: var(--bs-secondary-bg-subtle); +} +.toast-secondary .btn-close { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +.toast-success { + --bs-toast-header-color: #fff; + --bs-toast-header-bg: #198754; + --bs-toast-header-border-color: #198754; + --bs-toast-border-color: #198754; + --bs-toast-bg: var(--bs-success-bg-subtle); +} +.toast-success .btn-close { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +.toast-info { + --bs-toast-header-color: #000; + --bs-toast-header-bg: #0dcaf0; + --bs-toast-header-border-color: #0dcaf0; + --bs-toast-border-color: #0dcaf0; + --bs-toast-bg: var(--bs-info-bg-subtle); +} + +.toast-warning { + --bs-toast-header-color: #000; + --bs-toast-header-bg: #ffc107; + --bs-toast-header-border-color: #ffc107; + --bs-toast-border-color: #ffc107; + --bs-toast-bg: var(--bs-warning-bg-subtle); +} + +.toast-danger { + --bs-toast-header-color: #fff; + --bs-toast-header-bg: #dc3545; + --bs-toast-header-border-color: #dc3545; + --bs-toast-border-color: #dc3545; + --bs-toast-bg: var(--bs-danger-bg-subtle); +} +.toast-danger .btn-close { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +.toast-light { + --bs-toast-header-color: #000; + --bs-toast-header-bg: #f8f9fa; + --bs-toast-header-border-color: #f8f9fa; + --bs-toast-border-color: #f8f9fa; + --bs-toast-bg: var(--bs-light-bg-subtle); +} + +.toast-dark { + --bs-toast-header-color: #fff; + --bs-toast-header-bg: #212529; + --bs-toast-header-border-color: #212529; + --bs-toast-border-color: #212529; + --bs-toast-bg: var(--bs-dark-bg-subtle); +} +.toast-dark .btn-close { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +[data-bs-theme=dark] .toast-info .btn-close { + --bs-btn-close-white-filter: none; +} +[data-bs-theme=dark] .toast-warning .btn-close { + --bs-btn-close-white-filter: none; +} +[data-bs-theme=dark] .toast-light .btn-close { + --bs-btn-close-white-filter: none; +} +.login-logo, +.register-logo { + margin-bottom: 0.9rem; + font-size: 2.1rem; + font-weight: 300; + text-align: center; +} +.login-logo a, +.register-logo a { + color: var(--bs-secondary-color); + text-decoration: none; +} + +.login-page, +.register-page { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 100vh; +} + +.login-box, +.register-box { + width: 360px; +} +@media (max-width: 576px) { + .login-box, + .register-box { + width: 90%; + margin-top: 0.5rem; + } +} +.login-box .card, +.register-box .card { + margin-bottom: 0; +} + +.login-card-body, +.register-card-body { + padding: 20px; + color: var(--bs-secondary-color); + background-color: var(--bs-body-bg); + border-top: 0; +} +.login-card-body .input-group .form-control:focus, +.register-card-body .input-group .form-control:focus { + box-shadow: none; +} +.login-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text, +.login-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text, +.register-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text, +.register-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text { + border-color: rgb(134, 182.5, 254); +} +.login-card-body .input-group .form-control.is-valid:focus, +.register-card-body .input-group .form-control.is-valid:focus { + box-shadow: none; +} +.login-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text, +.login-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text, +.register-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text, +.register-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text { + border-color: #198754; +} +.login-card-body .input-group .form-control.is-invalid:focus, +.register-card-body .input-group .form-control.is-invalid:focus { + box-shadow: none; +} +.login-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text, +.register-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text { + border-color: #dc3545; +} +.login-card-body .input-group .input-group-text, +.register-card-body .input-group .input-group-text { + color: var(--bs-secondary-color); + background-color: transparent; + border-top-right-radius: 0.375rem; + border-bottom-right-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .login-card-body .input-group .input-group-text, + .register-card-body .input-group .input-group-text { + transition: none; + } +} + +.login-box-msg, +.register-box-msg { + padding: 0 20px 20px; + margin: 0; + text-align: center; +} + +.social-auth-links { + margin: 10px 0; +} + +.lockscreen .lockscreen-name { + font-weight: 600; + text-align: center; +} +.lockscreen .lockscreen-logo { + margin-bottom: 25px; + font-size: 35px; + font-weight: 300; + text-align: center; +} +.lockscreen .lockscreen-logo a { + color: var(--bs-emphasis-color); + text-decoration: none; +} +.lockscreen .lockscreen-wrapper { + max-width: 400px; + margin: 0 auto; + margin-top: 10%; +} +.lockscreen .lockscreen-item { + position: relative; + width: 290px; + padding: 0; + margin: 10px auto 30px; + background-color: var(--bs-body-bg); + border-radius: 4px; +} +.lockscreen .lockscreen-image { + position: absolute; + top: -25px; + left: -10px; + z-index: 10; + padding: 5px; + background-color: var(--bs-body-bg); + border-radius: 50%; +} +.lockscreen .lockscreen-image > img { + border-radius: 50%; + width: 70px; + height: 70px; +} +.lockscreen .lockscreen-credentials { + margin-left: 70px; +} +.lockscreen .lockscreen-credentials .form-control { + border: 0; +} +.lockscreen .lockscreen-credentials .btn { + padding: 0 10px; + border: 0; +} +.lockscreen .lockscreen-footer { + margin-top: 10px; +} + +.img-size-64, +.img-size-50, +.img-size-32 { + height: auto; +} + +.img-size-64 { + width: 64px; +} + +.img-size-50 { + width: 50px; +} + +.img-size-32 { + width: 32px; +} + +/* ========================================================================== + AdminLTE Accessibility Styles - WCAG 2.1 AA Compliance + ========================================================================== */ +/* Skip Links - WCAG 2.4.1: Bypass Blocks */ +.skip-link { + position: absolute; + top: -40px; + left: 6px; + z-index: 999999; + padding: 8px 16px; + font-weight: 600; + color: var(--bs-white); + text-decoration: none; + background: var(--bs-primary); +} +.skip-link:focus { + top: 0; + outline: 3px solid var(--bs-warning); + outline-offset: 2px; +} +.skip-link:hover { + color: var(--bs-white); + text-decoration: none; + background: var(--bs-primary-emphasis); +} + +/* Enhanced Focus Indicators - WCAG 2.4.7: Focus Visible */ +.focus-enhanced:focus { + outline: 3px solid var(--bs-focus-ring-color, #0d6efd); + outline-offset: 2px; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +/* High Contrast Mode Support */ +@media (prefers-contrast: high) { + .card { + border: 2px solid; + } + .btn { + border-width: 2px; + } + .nav-link { + border: 1px solid transparent; + } + .nav-link:hover, .nav-link:focus { + border-color: currentcolor; + } +} +/* Reduced Motion Support - WCAG 2.3.3: Animation from Interactions */ +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + transition-duration: 0.01ms !important; + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + scroll-behavior: auto !important; + } + .fade { + opacity: 1 !important; + /* stylelint-disable-next-line property-disallowed-list */ + transition: none !important; + } + .collapse { + /* stylelint-disable-next-line property-disallowed-list */ + transition: none !important; + } + .modal.fade .modal-dialog { + transform: none !important; + } +} +/* Screen Reader Only Content */ +.sr-only { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +.sr-only-focusable:focus { + position: static !important; + width: auto !important; + height: auto !important; + padding: inherit !important; + margin: inherit !important; + overflow: visible !important; + clip: auto !important; + white-space: normal !important; +} + +/* Focus Trap Utilities */ +.focus-trap:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +/* Accessible Color Combinations - WCAG 1.4.3: Contrast (Minimum) */ +.text-accessible-primary { + color: #003d82; /* 4.5:1 contrast on white */ +} + +.text-accessible-success { + color: #0f5132; /* 4.5:1 contrast on white */ +} + +.text-accessible-danger { + color: #842029; /* 4.5:1 contrast on white */ +} + +.text-accessible-warning { + color: #664d03; /* 4.5:1 contrast on white */ +} + +/* ARIA Live Regions */ +.live-region { + position: absolute; + left: -10000px; + width: 1px; + height: 1px; + overflow: hidden; +} +.live-region.live-region-visible { + position: static; + left: auto; + width: auto; + height: auto; + overflow: visible; +} + +/* Enhanced Error States - WCAG 3.3.1: Error Identification */ +.form-control.is-invalid { + border-color: var(--bs-danger); +} +.form-control.is-invalid:focus { + border-color: var(--bs-danger); + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.invalid-feedback { + display: block; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-danger); +} +.invalid-feedback[role=alert] { + font-weight: 600; +} + +/* Target Size - WCAG 2.5.8: Target Size (Minimum) */ +.touch-target { + min-width: 44px; + min-height: 44px; +} +.touch-target.touch-target-small { + min-width: 24px; + min-height: 24px; +} + +/* Table Accessibility */ +.table-accessible th { + font-weight: 600; + background-color: var(--bs-secondary-bg); +} +.table-accessible th[scope=col] { + border-bottom: 2px solid var(--bs-border-color); +} +.table-accessible th[scope=row] { + border-right: 2px solid var(--bs-border-color); +} +.table-accessible caption { + padding: 0.75rem; + font-weight: 600; + color: var(--bs-secondary); + text-align: left; + caption-side: top; +} + +/* Navigation Landmarks */ +nav[role=navigation]:not([aria-label]):not([aria-labelledby])::before { + position: absolute; + left: -10000px; + content: "Navigation"; +} + +/* Form Fieldset Styling */ +fieldset { + padding: 1rem; + margin-bottom: 1rem; + border: 1px solid var(--bs-border-color); +} +fieldset legend { + padding: 0 0.5rem; + margin-bottom: 0.5rem; + font-size: 1.1em; + font-weight: 600; +} + +/* Loading States */ +.loading[aria-busy=true] { + position: relative; + pointer-events: none; +} +.loading[aria-busy=true]::after { + position: absolute; + top: 50%; + left: 50%; + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + content: ""; + border: 2px solid var(--bs-primary); + border-top-color: transparent; + animation: spin 1s linear infinite; +} +@media (prefers-reduced-motion: reduce) { + .loading[aria-busy=true]::after { + border-top-color: var(--bs-primary); + animation: none; + } +} + +@keyframes spin { + to { + transform: rotate(360deg); + } +} +/* Dark Mode Accessibility */ +[data-bs-theme=dark] .text-accessible-primary { + color: #6ea8fe; +} +[data-bs-theme=dark] .text-accessible-success { + color: #75b798; +} +[data-bs-theme=dark] .text-accessible-danger { + color: #f1aeb5; +} +[data-bs-theme=dark] .text-accessible-warning { + color: #ffda6a; +} + +/* Print Accessibility */ +@media print { + .skip-link, + .btn, + .nav-link { + color: #000 !important; + background: transparent !important; + border: 1px solid #000 !important; + } + a[href^=http]::after { + font-size: 0.8em; + content: " (" attr(href) ")"; + } +} + +/*# sourceMappingURL=adminlte.css.map */ \ No newline at end of file diff --git a/css/adminlte.min.css b/css/adminlte.min.css new file mode 100644 index 0000000..7a7ad06 --- /dev/null +++ b/css/adminlte.min.css @@ -0,0 +1,7 @@ +@charset "UTF-8";/*! + * AdminLTE v4.0.0-rc5 + * Author: Colorlib + * Website: AdminLTE.io + * License: Open source - MIT + */: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:rgb(5.2, 44, 101.2);--bs-secondary-text-emphasis:rgb(43.2, 46.8, 50);--bs-success-text-emphasis:rgb(10, 54, 33.6);--bs-info-text-emphasis:rgb(5.2, 80.8, 96);--bs-warning-text-emphasis:rgb(102, 77.2, 2.8);--bs-danger-text-emphasis:rgb(88, 21.2, 27.6);--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:rgb(206.6, 226, 254.6);--bs-secondary-bg-subtle:rgb(225.6, 227.4, 229);--bs-success-bg-subtle:rgb(209, 231, 220.8);--bs-info-bg-subtle:rgb(206.6, 244.4, 252);--bs-warning-bg-subtle:rgb(255, 242.6, 205.4);--bs-danger-bg-subtle:rgb(248, 214.6, 217.8);--bs-light-bg-subtle:rgb(251.5, 252, 252.5);--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:rgb(158.2, 197, 254.2);--bs-secondary-border-subtle:rgb(196.2, 199.8, 203);--bs-success-border-subtle:rgb(163, 207, 186.6);--bs-info-border-subtle:rgb(158.2, 233.8, 249);--bs-warning-border-subtle:rgb(255, 230.2, 155.8);--bs-danger-border-subtle:rgb(241, 174.2, 180.6);--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:"Source Sans 3",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:rgb(10.4, 88, 202.4);--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:rgb(255, 242.6, 205.4);--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:rgb(42.5, 47.5, 52.5);--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:rgb(109.8, 168, 253.8);--bs-secondary-text-emphasis:rgb(166.8, 172.2, 177);--bs-success-text-emphasis:rgb(117, 183, 152.4);--bs-info-text-emphasis:rgb(109.8, 223.2, 246);--bs-warning-text-emphasis:rgb(255, 217.8, 106.2);--bs-danger-text-emphasis:rgb(234, 133.8, 143.4);--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:rgb(2.6, 22, 50.6);--bs-secondary-bg-subtle:rgb(21.6, 23.4, 25);--bs-success-bg-subtle:rgb(5, 27, 16.8);--bs-info-bg-subtle:rgb(2.6, 40.4, 48);--bs-warning-bg-subtle:rgb(51, 38.6, 1.4);--bs-danger-bg-subtle:rgb(44, 10.6, 13.8);--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:rgb(7.8, 66, 151.8);--bs-secondary-border-subtle:rgb(64.8, 70.2, 75);--bs-success-border-subtle:rgb(15, 81, 50.4);--bs-info-border-subtle:rgb(7.8, 121.2, 144);--bs-warning-border-subtle:rgb(153, 115.8, 4.2);--bs-danger-border-subtle:rgb(132, 31.8, 41.4);--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:rgb(109.8, 168, 253.8);--bs-link-hover-color:rgb(138.84, 185.4, 254.04);--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:rgb(230.4, 132.6, 181.2);--bs-highlight-color:#dee2e6;--bs-highlight-bg:rgb(102, 77.2, 2.8);--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:rgb(117, 183, 152.4);--bs-form-valid-border-color:rgb(117, 183, 152.4);--bs-form-invalid-color:rgb(234, 133.8, 143.4);--bs-form-invalid-border-color:rgb(234, 133.8, 143.4)}*,::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;color:var(--bs-highlight-color);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;line-height:inherit;font-size:calc(1.275rem + .3vw)}@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}[type=search]::-webkit-search-cancel-button{cursor:pointer;filter:grayscale(1)}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-weight:300;line-height:1.2;font-size:calc(1.625rem + 4.5vw)}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-weight:300;line-height:1.2;font-size:calc(1.575rem + 3.9vw)}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-weight:300;line-height:1.2;font-size:calc(1.525rem + 3.3vw)}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-weight:300;line-height:1.2;font-size:calc(1.475rem + 2.7vw)}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-weight:300;line-height:1.2;font-size:calc(1.425rem + 2.1vw)}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-weight:300;line-height:1.2;font-size:calc(1.375rem + 1.5vw)}@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);box-shadow:var(--bs-box-shadow-sm);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:1600px;--bs-breakpoint-xxl:2000px}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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.33333333%}.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.66666667%}.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-emphasis-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-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), 0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), 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:rgb(206.6, 226, 254.6);--bs-table-border-color:rgb(165.28, 180.8, 203.68);--bs-table-striped-bg:rgb(196.27, 214.7, 241.87);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(185.94, 203.4, 229.14);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(191.105, 209.05, 235.505);--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:rgb(225.6, 227.4, 229);--bs-table-border-color:rgb(180.48, 181.92, 183.2);--bs-table-striped-bg:rgb(214.32, 216.03, 217.55);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(203.04, 204.66, 206.1);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(208.68, 210.345, 211.825);--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:rgb(209, 231, 220.8);--bs-table-border-color:rgb(167.2, 184.8, 176.64);--bs-table-striped-bg:rgb(198.55, 219.45, 209.76);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(188.1, 207.9, 198.72);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(193.325, 213.675, 204.24);--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:rgb(206.6, 244.4, 252);--bs-table-border-color:rgb(165.28, 195.52, 201.6);--bs-table-striped-bg:rgb(196.27, 232.18, 239.4);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(185.94, 219.96, 226.8);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(191.105, 226.07, 233.1);--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:rgb(255, 242.6, 205.4);--bs-table-border-color:rgb(204, 194.08, 164.32);--bs-table-striped-bg:rgb(242.25, 230.47, 195.13);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(229.5, 218.34, 184.86);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(235.875, 224.405, 189.995);--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:rgb(248, 214.6, 217.8);--bs-table-border-color:rgb(198.4, 171.68, 174.24);--bs-table-striped-bg:rgb(235.6, 203.87, 206.91);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(223.2, 193.14, 196.02);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(229.4, 198.505, 201.465);--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:rgb(198.4, 199.2, 200);--bs-table-striped-bg:rgb(235.6, 236.55, 237.5);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(223.2, 224.1, 225);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(229.4, 230.325, 231.25);--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:rgb(77.4, 80.6, 83.8);--bs-table-striped-bg:rgb(44.1, 47.9, 51.7);--bs-table-striped-color:#fff;--bs-table-active-bg:rgb(55.2, 58.8, 62.4);--bs-table-active-color:#fff;--bs-table-hover-bg:rgb(49.65, 53.35, 57.05);--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);box-shadow:var(--bs-box-shadow-inset);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:rgb(134,182.5,254);outline:0;box-shadow:var(--bs-box-shadow-inset),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::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color: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::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%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);box-shadow:var(--bs-box-shadow-inset);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:rgb(134,182.5,254);outline:0;box-shadow:var(--bs-box-shadow-inset),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);flex-shrink:0;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;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:rgb(134,182.5,254);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='rgb%28134, 182.5, 254%29'/%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;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);-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:rgb(182.4,211.5,254.4)}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem;box-shadow:var(--bs-box-shadow-inset)}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);-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:rgb(182.4,211.5,254.4)}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem;box-shadow:var(--bs-box-shadow-inset)}.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;max-width:100%;height:100%;padding:1rem .75rem;overflow:hidden;color:rgba(var(--bs-body-color-rgb),.65);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),.form-floating>.form-control:not(:-moz-placeholder){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;padding-left:.75rem}.form-floating>.form-control:not(:-moz-placeholder)~label{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{transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>textarea:not(:-moz-placeholder)~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>textarea:focus~label::after,.form-floating>textarea:not(: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>textarea:disabled~label::after{background-color:var(--bs-secondary-bg)}.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}.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(-1 * var(--bs-border-width));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.1'/%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:var(--bs-box-shadow-inset),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.1'/%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:var(--bs-box-shadow-inset),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:var(--bs-box-shadow-inset),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:var(--bs-box-shadow-inset),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);box-shadow:var(--bs-btn-box-shadow);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-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-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);box-shadow:var(--bs-btn-active-shadow)}.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-active-shadow),var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-active-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);box-shadow:none}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:rgb(11.05, 93.5, 215.05);--bs-btn-hover-border-color:rgb(10.4, 88, 202.4);--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:rgb(10.4, 88, 202.4);--bs-btn-active-border-color:rgb(9.75, 82.5, 189.75);--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:rgb(91.8, 99.45, 106.25);--bs-btn-hover-border-color:rgb(86.4, 93.6, 100);--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:rgb(86.4, 93.6, 100);--bs-btn-active-border-color:rgb(81, 87.75, 93.75);--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:rgb(21.25, 114.75, 71.4);--bs-btn-hover-border-color:rgb(20, 108, 67.2);--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:rgb(20, 108, 67.2);--bs-btn-active-border-color:rgb(18.75, 101.25, 63);--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:rgb(49.3, 209.95, 242.25);--bs-btn-hover-border-color:rgb(37.2, 207.3, 241.5);--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:rgb(61.4, 212.6, 243);--bs-btn-active-border-color:rgb(37.2, 207.3, 241.5);--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:rgb(255, 202.3, 44.2);--bs-btn-hover-border-color:rgb(255, 199.2, 31.8);--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:rgb(255, 205.4, 56.6);--bs-btn-active-border-color:rgb(255, 199.2, 31.8);--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:rgb(187, 45.05, 58.65);--bs-btn-hover-border-color:rgb(176, 42.4, 55.2);--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:rgb(176, 42.4, 55.2);--bs-btn-active-border-color:rgb(165, 39.75, 51.75);--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:rgb(210.8, 211.65, 212.5);--bs-btn-hover-border-color:rgb(198.4, 199.2, 200);--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:rgb(198.4, 199.2, 200);--bs-btn-active-border-color:rgb(186, 186.75, 187.5);--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:rgb(66.3, 69.7, 73.1);--bs-btn-hover-border-color:rgb(55.2, 58.8, 62.4);--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:rgb(77.4, 80.6, 83.8);--bs-btn-active-border-color:rgb(55.2, 58.8, 62.4);--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:var(--bs-box-shadow);--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);box-shadow:var(--bs-dropdown-box-shadow)}.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(-1 * var(--bs-border-width))}.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.show .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.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(-1 * var(--bs-border-width))}.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:nth-child(n+3),.btn-group-vertical>:not(.btn-check)+.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-grow:1;flex-basis:0;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:1rem;--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-grow:1;flex-basis:100%;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;box-shadow:none;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;box-shadow:none;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;box-shadow:none;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;box-shadow:none;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;box-shadow:none;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;box-shadow:none;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);box-shadow:var(--bs-card-box-shadow)}.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='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%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='none' stroke='rgb%285.2, 44, 101.2%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");--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;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-header .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-header .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-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-collapse,.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .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='rgb%28109.8, 168, 253.8%29'%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-.708'/%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='rgb%28109.8, 168, 253.8%29'%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-.708'/%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 .page-link{border-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:var(--bs-progress-height)}}.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);box-shadow:var(--bs-progress-box-shadow)}.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{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-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:not(.active):focus,.list-group-item-action:not(.active):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:not(.active):active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.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.414'/%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;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;filter:var(--bs-btn-close-filter);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{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}:root,[data-bs-theme=light]{--bs-btn-close-filter: }[data-bs-theme=dark]{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}.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:-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:var(--bs-body-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:var(--bs-box-shadow-sm);--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{transform:translate(0,-50px);transition:transform .3s ease-out}@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);box-shadow:var(--bs-modal-box-shadow);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;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-top:calc(-.5 * var(--bs-modal-header-padding-y));margin-right:calc(-.5 * var(--bs-modal-header-padding-x));margin-bottom:calc(-.5 * var(--bs-modal-header-padding-y));margin-left: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:var(--bs-box-shadow)}.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:var(--bs-box-shadow);--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);box-shadow:var(--bs-popover-box-shadow)}.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%;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;filter:var(--bs-carousel-control-icon-filter);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 0'/%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-.708'/%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:var(--bs-carousel-indicator-active-bg);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:var(--bs-carousel-caption-color);text-align:center}.carousel-dark{--bs-carousel-indicator-active-bg:#000;--bs-carousel-caption-color:#000;--bs-carousel-control-icon-filter:invert(1) grayscale(100)}:root,[data-bs-theme=light]{--bs-carousel-indicator-active-bg:#fff;--bs-carousel-caption-color:#fff;--bs-carousel-control-icon-filter: }[data-bs-theme=dark]{--bs-carousel-indicator-active-bg:#000;--bs-carousel-caption-color:#000;--bs-carousel-control-icon-filter:invert(1) grayscale(100)}.spinner-border,.spinner-grow{display:inline-block;flex-shrink:0;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:var(--bs-box-shadow-sm);--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;box-shadow:var(--bs-offcanvas-box-shadow);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;box-shadow:var(--bs-offcanvas-box-shadow);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;box-shadow:var(--bs-offcanvas-box-shadow);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;box-shadow:var(--bs-offcanvas-box-shadow);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;box-shadow:var(--bs-offcanvas-box-shadow);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;box-shadow:var(--bs-offcanvas-box-shadow);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;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));margin-left:auto}.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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;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:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;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}.visually-hidden *,.visually-hidden-focusable:not(:focus):not(:focus-within) *{overflow:hidden!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:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!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: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}.m-n1{margin:-.25rem!important}.m-n2{margin:-.5rem!important}.m-n3{margin:-1rem!important}.m-n4{margin:-1.5rem!important}.m-n5{margin:-3rem!important}.mx-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-n1{margin-top:-.25rem!important}.mt-n2{margin-top:-.5rem!important}.mt-n3{margin-top:-1rem!important}.mt-n4{margin-top:-1.5rem!important}.mt-n5{margin-top:-3rem!important}.me-n1{margin-right:-.25rem!important}.me-n2{margin-right:-.5rem!important}.me-n3{margin-right:-1rem!important}.me-n4{margin-right:-1.5rem!important}.me-n5{margin-right:-3rem!important}.mb-n1{margin-bottom:-.25rem!important}.mb-n2{margin-bottom:-.5rem!important}.mb-n3{margin-bottom:-1rem!important}.mb-n4{margin-bottom:-1.5rem!important}.mb-n5{margin-bottom:-3rem!important}.ms-n1{margin-left:-.25rem!important}.ms-n2{margin-left:-.5rem!important}.ms-n3{margin-left:-1rem!important}.ms-n4{margin-left:-1.5rem!important}.ms-n5{margin-left:-3rem!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}.fs-7{font-size:.875rem!important}.fs-8{font-size:.75rem!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;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity: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}.m-sm-n1{margin:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.m-sm-n3{margin:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mx-sm-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-sm-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-sm-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-sm-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-sm-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-sm-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-sm-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-sm-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-sm-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-sm-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-sm-n1{margin-top:-.25rem!important}.mt-sm-n2{margin-top:-.5rem!important}.mt-sm-n3{margin-top:-1rem!important}.mt-sm-n4{margin-top:-1.5rem!important}.mt-sm-n5{margin-top:-3rem!important}.me-sm-n1{margin-right:-.25rem!important}.me-sm-n2{margin-right:-.5rem!important}.me-sm-n3{margin-right:-1rem!important}.me-sm-n4{margin-right:-1.5rem!important}.me-sm-n5{margin-right:-3rem!important}.mb-sm-n1{margin-bottom:-.25rem!important}.mb-sm-n2{margin-bottom:-.5rem!important}.mb-sm-n3{margin-bottom:-1rem!important}.mb-sm-n4{margin-bottom:-1.5rem!important}.mb-sm-n5{margin-bottom:-3rem!important}.ms-sm-n1{margin-left:-.25rem!important}.ms-sm-n2{margin-left:-.5rem!important}.ms-sm-n3{margin-left:-1rem!important}.ms-sm-n4{margin-left:-1.5rem!important}.ms-sm-n5{margin-left:-3rem!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}.m-md-n1{margin:-.25rem!important}.m-md-n2{margin:-.5rem!important}.m-md-n3{margin:-1rem!important}.m-md-n4{margin:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mx-md-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-md-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-md-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-md-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-md-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-md-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-md-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-md-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-md-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-md-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-md-n1{margin-top:-.25rem!important}.mt-md-n2{margin-top:-.5rem!important}.mt-md-n3{margin-top:-1rem!important}.mt-md-n4{margin-top:-1.5rem!important}.mt-md-n5{margin-top:-3rem!important}.me-md-n1{margin-right:-.25rem!important}.me-md-n2{margin-right:-.5rem!important}.me-md-n3{margin-right:-1rem!important}.me-md-n4{margin-right:-1.5rem!important}.me-md-n5{margin-right:-3rem!important}.mb-md-n1{margin-bottom:-.25rem!important}.mb-md-n2{margin-bottom:-.5rem!important}.mb-md-n3{margin-bottom:-1rem!important}.mb-md-n4{margin-bottom:-1.5rem!important}.mb-md-n5{margin-bottom:-3rem!important}.ms-md-n1{margin-left:-.25rem!important}.ms-md-n2{margin-left:-.5rem!important}.ms-md-n3{margin-left:-1rem!important}.ms-md-n4{margin-left:-1.5rem!important}.ms-md-n5{margin-left:-3rem!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}.m-lg-n1{margin:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.m-lg-n3{margin:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mx-lg-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-lg-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-lg-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-lg-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-lg-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-lg-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-lg-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-lg-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-lg-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-lg-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-lg-n1{margin-top:-.25rem!important}.mt-lg-n2{margin-top:-.5rem!important}.mt-lg-n3{margin-top:-1rem!important}.mt-lg-n4{margin-top:-1.5rem!important}.mt-lg-n5{margin-top:-3rem!important}.me-lg-n1{margin-right:-.25rem!important}.me-lg-n2{margin-right:-.5rem!important}.me-lg-n3{margin-right:-1rem!important}.me-lg-n4{margin-right:-1.5rem!important}.me-lg-n5{margin-right:-3rem!important}.mb-lg-n1{margin-bottom:-.25rem!important}.mb-lg-n2{margin-bottom:-.5rem!important}.mb-lg-n3{margin-bottom:-1rem!important}.mb-lg-n4{margin-bottom:-1.5rem!important}.mb-lg-n5{margin-bottom:-3rem!important}.ms-lg-n1{margin-left:-.25rem!important}.ms-lg-n2{margin-left:-.5rem!important}.ms-lg-n3{margin-left:-1rem!important}.ms-lg-n4{margin-left:-1.5rem!important}.ms-lg-n5{margin-left:-3rem!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}.m-xl-n1{margin:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.m-xl-n3{margin:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mx-xl-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-xl-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-xl-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-xl-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-xl-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-xl-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-xl-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-xl-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-xl-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-xl-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-xl-n1{margin-top:-.25rem!important}.mt-xl-n2{margin-top:-.5rem!important}.mt-xl-n3{margin-top:-1rem!important}.mt-xl-n4{margin-top:-1.5rem!important}.mt-xl-n5{margin-top:-3rem!important}.me-xl-n1{margin-right:-.25rem!important}.me-xl-n2{margin-right:-.5rem!important}.me-xl-n3{margin-right:-1rem!important}.me-xl-n4{margin-right:-1.5rem!important}.me-xl-n5{margin-right:-3rem!important}.mb-xl-n1{margin-bottom:-.25rem!important}.mb-xl-n2{margin-bottom:-.5rem!important}.mb-xl-n3{margin-bottom:-1rem!important}.mb-xl-n4{margin-bottom:-1.5rem!important}.mb-xl-n5{margin-bottom:-3rem!important}.ms-xl-n1{margin-left:-.25rem!important}.ms-xl-n2{margin-left:-.5rem!important}.ms-xl-n3{margin-left:-1rem!important}.ms-xl-n4{margin-left:-1.5rem!important}.ms-xl-n5{margin-left:-3rem!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}.m-xxl-n1{margin:-.25rem!important}.m-xxl-n2{margin:-.5rem!important}.m-xxl-n3{margin:-1rem!important}.m-xxl-n4{margin:-1.5rem!important}.m-xxl-n5{margin:-3rem!important}.mx-xxl-n1{margin-right:-.25rem!important;margin-left:-.25rem!important}.mx-xxl-n2{margin-right:-.5rem!important;margin-left:-.5rem!important}.mx-xxl-n3{margin-right:-1rem!important;margin-left:-1rem!important}.mx-xxl-n4{margin-right:-1.5rem!important;margin-left:-1.5rem!important}.mx-xxl-n5{margin-right:-3rem!important;margin-left:-3rem!important}.my-xxl-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-xxl-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-xxl-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-xxl-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-xxl-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-xxl-n1{margin-top:-.25rem!important}.mt-xxl-n2{margin-top:-.5rem!important}.mt-xxl-n3{margin-top:-1rem!important}.mt-xxl-n4{margin-top:-1.5rem!important}.mt-xxl-n5{margin-top:-3rem!important}.me-xxl-n1{margin-right:-.25rem!important}.me-xxl-n2{margin-right:-.5rem!important}.me-xxl-n3{margin-right:-1rem!important}.me-xxl-n4{margin-right:-1.5rem!important}.me-xxl-n5{margin-right:-3rem!important}.mb-xxl-n1{margin-bottom:-.25rem!important}.mb-xxl-n2{margin-bottom:-.5rem!important}.mb-xxl-n3{margin-bottom:-1rem!important}.mb-xxl-n4{margin-bottom:-1.5rem!important}.mb-xxl-n5{margin-bottom:-3rem!important}.ms-xxl-n1{margin-left:-.25rem!important}.ms-xxl-n2{margin-left:-.5rem!important}.ms-xxl-n3{margin-left:-1rem!important}.ms-xxl-n4{margin-left:-1.5rem!important}.ms-xxl-n5{margin-left:-3rem!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}}@keyframes flipInX{0%{opacity:0;transition-timing-function:ease-in;transform:perspective(400px) rotate3d(1,0,0,90deg)}40%{transition-timing-function:ease-in;transform:perspective(400px) rotate3d(1,0,0,-20deg)}60%{opacity:1;transform:perspective(400px) rotate3d(1,0,0,10deg)}80%{transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{transform:perspective(400px)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes shake{0%{transform:translate(2px,1px) rotate(0)}10%{transform:translate(-1px,-2px) rotate(-2deg)}20%{transform:translate(-3px,0) rotate(3deg)}30%{transform:translate(0,2px) rotate(0)}40%{transform:translate(1px,-1px) rotate(1deg)}50%{transform:translate(-1px,2px) rotate(-1deg)}60%{transform:translate(-3px,1px) rotate(0)}70%{transform:translate(2px,1px) rotate(-2deg)}80%{transform:translate(-1px,-1px) rotate(4deg)}90%{transform:translate(2px,2px) rotate(0)}100%{transform:translate(1px,-2px) rotate(-1deg)}}@keyframes wobble{0%{transform:none}15%{transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{transform:none}}:root,[data-bs-theme=light]{--lte-sidebar-width:250px}.app-wrapper{position:relative;display:grid;grid-template-areas:"lte-app-sidebar lte-app-header" "lte-app-sidebar lte-app-main" "lte-app-sidebar lte-app-footer";grid-template-rows:min-content 1fr min-content;grid-template-columns:auto 1fr;grid-gap:0;align-content:stretch;align-items:stretch;max-width:100vw;min-height:100vh}.app-wrapper>*{min-width:0}.app-content{padding:0 .5rem}.app-header{z-index:1034;grid-area:lte-app-header;max-width:100vw;border-bottom:1px solid var(--bs-border-color);transition:.3s ease-in-out}@media (prefers-reduced-motion:reduce){.app-header{transition:none}}.app-header .nav-link{position:relative;height:2.5rem}.navbar-badge{position:absolute;top:9px;right:5px;padding:2px 4px;font-size:.6rem;font-weight:400}.fixed-header .app-header{position:sticky;top:0;z-index:1030}.app-sidebar{--lte-sidebar-hover-bg:rgba(0, 0, 0, 0.1);--lte-sidebar-color:#343a40;--lte-sidebar-hover-color:#212529;--lte-sidebar-active-color:#000;--lte-sidebar-menu-active-bg:rgba(0, 0, 0, 0.1);--lte-sidebar-menu-active-color:#000;--lte-sidebar-submenu-bg:transparent;--lte-sidebar-submenu-color:#777;--lte-sidebar-submenu-hover-color:#000;--lte-sidebar-submenu-hover-bg:rgba(0, 0, 0, 0.1);--lte-sidebar-submenu-active-color:#212529;--lte-sidebar-submenu-active-bg:rgba(0, 0, 0, 0.1);--lte-sidebar-header-color:rgb(49.4, 55.1, 60.8);z-index:1038;grid-area:lte-app-sidebar;min-width:var(--lte-sidebar-width);max-width:var(--lte-sidebar-width);transition:min-width .3s ease-in-out,max-width .3s ease-in-out,margin-left .3s ease-in-out,margin-right .3s ease-in-out}@media (prefers-reduced-motion:reduce){.app-sidebar{transition:none}}.sidebar-brand{display:flex;align-items:center;justify-content:center;height:3.5rem;padding:.8125rem .5rem;overflow:hidden;font-size:1.25rem;white-space:nowrap;border-bottom:1px solid var(--bs-border-color);transition:width .3s ease-in-out}@media (prefers-reduced-motion:reduce){.sidebar-brand{transition:none}}.sidebar-brand .brand-link{display:flex;align-items:center;text-decoration:none}.sidebar-brand .brand-link .brand-image{float:left;width:auto;max-height:33px;line-height:.8}.sidebar-brand .brand-link .brand-image-xs{float:left;width:auto;max-height:33px;margin-top:-.1rem;line-height:.8}.sidebar-brand .brand-link .brand-image-xl{width:auto;max-height:40px;line-height:.8}.sidebar-brand .brand-link .brand-image-xl.single{margin-top:-.3rem}.sidebar-brand .brand-text{margin-left:.5rem;color:rgba(var(--bs-emphasis-color-rgb),.8);transition:flex .3s ease-in-out,width .3s ease-in-out}@media (prefers-reduced-motion:reduce){.sidebar-brand .brand-text{transition:none}}.sidebar-brand .brand-text:hover{color:var(--bs-emphasis-color)}.sidebar-wrapper{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem;scrollbar-color:var(--bs-secondary-bg) transparent}.sidebar-wrapper::-webkit-scrollbar-thumb{background-color:var(--bs-secondary-bg)}.sidebar-wrapper::-webkit-scrollbar-track{background-color:transparent}.sidebar-wrapper::-webkit-scrollbar-corner{background-color:transparent}.sidebar-wrapper{scrollbar-width:thin}.sidebar-wrapper::-webkit-scrollbar{width:.5rem;height:.5rem}.sidebar-wrapper .nav-item{max-width:100%}.sidebar-wrapper .nav-link{display:flex;justify-content:flex-start}.sidebar-wrapper .nav-link p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-wrapper .nav-icon{display:flex;align-items:center;justify-content:center;min-width:1.5rem;max-width:1.5rem}.sidebar-wrapper .sidebar-menu>.nav-item.menu-open .nav-link.active:not(:hover){--lte-sidebar-menu-active-bg:transparent}.sidebar-wrapper .sidebar-menu>.nav-item>.nav-link:active,.sidebar-wrapper .sidebar-menu>.nav-item>.nav-link:focus{color:var(--lte-sidebar-color)}.sidebar-wrapper .sidebar-menu>.nav-item>.nav-link.active:not(:hover){color:var(--lte-sidebar-menu-active-color);background-color:var(--lte-sidebar-menu-active-bg)}.sidebar-wrapper .sidebar-menu>.nav-item.menu-open>.nav-link,.sidebar-wrapper .sidebar-menu>.nav-item:hover>.nav-link,.sidebar-wrapper .sidebar-menu>.nav-item>.nav-link:focus{color:var(--lte-sidebar-hover-color);background-color:var(--lte-sidebar-hover-bg)}.sidebar-wrapper .sidebar-menu>.nav-item>.nav-treeview{background-color:var(--lte-sidebar-submenu-bg)}.sidebar-wrapper .nav-header{color:var(--lte-sidebar-header-color);background-color:inherit}.sidebar-wrapper a{color:var(--lte-sidebar-color)}.sidebar-wrapper .nav-treeview>.nav-item>.nav-link{color:var(--lte-sidebar-submenu-color)}.sidebar-wrapper .nav-treeview>.nav-item>.nav-link:focus,.sidebar-wrapper .nav-treeview>.nav-item>.nav-link:hover{color:var(--lte-sidebar-submenu-hover-color)}.sidebar-wrapper .nav-treeview>.nav-item>.nav-link.active,.sidebar-wrapper .nav-treeview>.nav-item>.nav-link.active:focus,.sidebar-wrapper .nav-treeview>.nav-item>.nav-link.active:hover{color:var(--lte-sidebar-submenu-active-color);background-color:var(--lte-sidebar-submenu-active-bg)}.sidebar-wrapper .nav-treeview>.nav-item>.nav-link:hover{background-color:var(--lte-sidebar-submenu-hover-bg)}.sidebar-menu .nav-item>.nav-link{margin-bottom:.2rem}.sidebar-menu .nav-item>.nav-link .nav-arrow{transition:transform ease-in-out .3s}@media (prefers-reduced-motion:reduce){.sidebar-menu .nav-item>.nav-link .nav-arrow{transition:none}}.sidebar-menu .nav-item>.nav-link .nav-arrow{transform:translateY(-50%);animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both}.sidebar-menu .nav-link>.nav-badge,.sidebar-menu .nav-link>p>.nav-badge{position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.sidebar-menu .nav-link>.nav-arrow,.sidebar-menu .nav-link>p>.nav-arrow{position:absolute;top:50%;right:1rem}.sidebar-menu .nav-link{position:relative;width:100%;transition:width ease-in-out .3s}@media (prefers-reduced-motion:reduce){.sidebar-menu .nav-link{transition:none}}.sidebar-menu .nav-link{border-radius:.375rem}.sidebar-menu .nav-link p{display:inline;padding-left:.5rem;margin:0}.sidebar-menu .nav-header{padding:.5rem .75rem;font-size:.9rem}.sidebar-menu .nav-treeview{display:none;padding:0;list-style:none}.nav-indent .sidebar-menu .nav-treeview{padding-left:.5rem}.sidebar-menu .menu-open>.nav-treeview{display:block}.sidebar-menu .menu-open>.nav-link .nav-arrow{transform:translateY(-50%) rotate(90deg)}.sidebar-menu .nav-link>.nav-arrow,.sidebar-menu .nav-link>.nav-badge,.sidebar-menu .nav-link>p>.nav-arrow,.sidebar-menu .nav-link>p>.nav-badge{right:1rem!important;left:auto!important}.nav-compact.nav-indent .nav-treeview{padding-left:0}.nav-compact.nav-indent .nav-treeview .nav-item{padding-left:.5rem}.sidebar-mini.sidebar-collapse.nav-indent .app-sidebar:hover .nav-treeview{padding-left:0}.sidebar-mini.sidebar-collapse.nav-indent .app-sidebar:hover .nav-treeview .nav-item{padding-left:.5rem}.sidebar-collapse.nav-compact.nav-indent .nav-treeview .nav-item{padding-left:0}.nav-compact .nav-link{border-radius:0;margin-bottom:0!important}.sidebar-menu,.sidebar-menu .nav-link,.sidebar-menu>.nav-header{white-space:nowrap}.logo-xl,.logo-xs{position:absolute;visibility:visible;opacity:1}.logo-xl.brand-image-xs,.logo-xs.brand-image-xs{top:12px;left:18px}.logo-xl.brand-image-xl,.logo-xs.brand-image-xl{top:6px;left:12px}.logo-xs{visibility:hidden;opacity:0}.logo-xs.brand-image-xl{top:8px;left:16px}.brand-link.logo-switch::before{content:" "}.sidebar-mini.sidebar-collapse .app-sidebar{min-width:4.6rem;max-width:4.6rem}.sidebar-mini.sidebar-collapse .sidebar-menu .nav-header{display:none}.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link{width:3.6rem}.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link p{display:inline-block;width:0;white-space:nowrap}.sidebar-mini.sidebar-collapse .sidebar-menu .nav-arrow,.sidebar-mini.sidebar-collapse .sidebar-menu .nav-badge{display:none;animation-name:fadeOut;animation-duration:.3s;animation-fill-mode:both}.sidebar-mini.sidebar-collapse .brand-text{display:inline-block;max-width:0;overflow:hidden}.sidebar-mini.sidebar-collapse .brand-text,.sidebar-mini.sidebar-collapse .logo-xl,.sidebar-mini.sidebar-collapse .nav-arrow,.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link p{visibility:hidden;animation-name:fadeOut;animation-duration:.3s;animation-fill-mode:both}.sidebar-mini.sidebar-collapse .logo-xs{display:inline-block;visibility:visible;animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both}.sidebar-mini.sidebar-collapse .app-sidebar:hover{min-width:var(--lte-sidebar-width);max-width:var(--lte-sidebar-width)}.sidebar-mini.sidebar-collapse .app-sidebar:hover .sidebar-menu .nav-header{display:inline-block}.sidebar-mini.sidebar-collapse .app-sidebar:hover .sidebar-menu .nav-link{width:auto}.sidebar-mini.sidebar-collapse .app-sidebar:hover .brand-text,.sidebar-mini.sidebar-collapse .app-sidebar:hover .logo-xl,.sidebar-mini.sidebar-collapse .app-sidebar:hover .sidebar-menu .nav-link p{width:auto;margin-left:0;visibility:visible;animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both}.sidebar-mini.sidebar-collapse .app-sidebar:hover .brand-text{display:inline;max-width:inherit;margin-left:.5rem;animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both}.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav-arrow,.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav-badge{display:inline-block;visibility:visible;animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav-link p{padding-left:.5rem}.sidebar-mini.sidebar-collapse .app-sidebar:hover .logo-xs{visibility:hidden;animation-name:fadeOut;animation-duration:.3s;animation-fill-mode:both}.sidebar-collapse:not(.sidebar-mini) .app-sidebar{margin-left:calc(var(--lte-sidebar-width) * -1)}@media (min-width:576px){.sidebar-expand-sm.layout-fixed .app-main-wrapper{display:flex;flex-direction:column;min-height:100vh}.sidebar-expand-sm.layout-fixed .app-sidebar-wrapper{position:relative}.sidebar-expand-sm.layout-fixed .app-main{flex:1 1 auto;overflow:auto}.sidebar-expand-sm.layout-fixed .app-sidebar{position:sticky;top:0;bottom:0;max-height:100vh}.sidebar-expand-sm.layout-fixed .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-sm.sidebar-open .nav-link>.nav-badge,.sidebar-expand-sm.sidebar-open .nav-link>p>.nav-badge{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand-sm.sidebar-open .nav-link>.nav-arrow,.sidebar-expand-sm.sidebar-open .nav-link>p>.nav-arrow{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}}@media (max-width:575.98px){.sidebar-expand-sm::before{display:none;content:"575.98px"}.sidebar-expand-sm .app-sidebar{position:fixed;top:0;bottom:0;max-height:100vh;margin-left:calc(var(--lte-sidebar-width) * -1)}.sidebar-expand-sm .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-sm.sidebar-open .app-sidebar{margin-left:0}.sidebar-expand-sm.sidebar-open .sidebar-overlay{position:absolute;inset:0;z-index:1037;width:100%;height:100%;cursor:pointer;visibility:visible;background-color:rgba(0,0,0,.2);animation-name:fadeIn;animation-fill-mode:both}}@media (min-width:768px){.sidebar-expand-md.layout-fixed .app-main-wrapper{display:flex;flex-direction:column;min-height:100vh}.sidebar-expand-md.layout-fixed .app-sidebar-wrapper{position:relative}.sidebar-expand-md.layout-fixed .app-main{flex:1 1 auto;overflow:auto}.sidebar-expand-md.layout-fixed .app-sidebar{position:sticky;top:0;bottom:0;max-height:100vh}.sidebar-expand-md.layout-fixed .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-md.sidebar-open .nav-link>.nav-badge,.sidebar-expand-md.sidebar-open .nav-link>p>.nav-badge{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand-md.sidebar-open .nav-link>.nav-arrow,.sidebar-expand-md.sidebar-open .nav-link>p>.nav-arrow{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}}@media (max-width:767.98px){.sidebar-expand-md::before{display:none;content:"767.98px"}.sidebar-expand-md .app-sidebar{position:fixed;top:0;bottom:0;max-height:100vh;margin-left:calc(var(--lte-sidebar-width) * -1)}.sidebar-expand-md .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-md.sidebar-open .app-sidebar{margin-left:0}.sidebar-expand-md.sidebar-open .sidebar-overlay{position:absolute;inset:0;z-index:1037;width:100%;height:100%;cursor:pointer;visibility:visible;background-color:rgba(0,0,0,.2);animation-name:fadeIn;animation-fill-mode:both}}@media (min-width:992px){.sidebar-expand-lg.layout-fixed .app-main-wrapper{display:flex;flex-direction:column;min-height:100vh}.sidebar-expand-lg.layout-fixed .app-sidebar-wrapper{position:relative}.sidebar-expand-lg.layout-fixed .app-main{flex:1 1 auto;overflow:auto}.sidebar-expand-lg.layout-fixed .app-sidebar{position:sticky;top:0;bottom:0;max-height:100vh}.sidebar-expand-lg.layout-fixed .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-lg.sidebar-open .nav-link>.nav-badge,.sidebar-expand-lg.sidebar-open .nav-link>p>.nav-badge{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand-lg.sidebar-open .nav-link>.nav-arrow,.sidebar-expand-lg.sidebar-open .nav-link>p>.nav-arrow{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}}@media (max-width:991.98px){.sidebar-expand-lg::before{display:none;content:"991.98px"}.sidebar-expand-lg .app-sidebar{position:fixed;top:0;bottom:0;max-height:100vh;margin-left:calc(var(--lte-sidebar-width) * -1)}.sidebar-expand-lg .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-lg.sidebar-open .app-sidebar{margin-left:0}.sidebar-expand-lg.sidebar-open .sidebar-overlay{position:absolute;inset:0;z-index:1037;width:100%;height:100%;cursor:pointer;visibility:visible;background-color:rgba(0,0,0,.2);animation-name:fadeIn;animation-fill-mode:both}}@media (min-width:1200px){.sidebar-expand-xl.layout-fixed .app-main-wrapper{display:flex;flex-direction:column;min-height:100vh}.sidebar-expand-xl.layout-fixed .app-sidebar-wrapper{position:relative}.sidebar-expand-xl.layout-fixed .app-main{flex:1 1 auto;overflow:auto}.sidebar-expand-xl.layout-fixed .app-sidebar{position:sticky;top:0;bottom:0;max-height:100vh}.sidebar-expand-xl.layout-fixed .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-xl.sidebar-open .nav-link>.nav-badge,.sidebar-expand-xl.sidebar-open .nav-link>p>.nav-badge{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand-xl.sidebar-open .nav-link>.nav-arrow,.sidebar-expand-xl.sidebar-open .nav-link>p>.nav-arrow{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}}@media (max-width:1199.98px){.sidebar-expand-xl::before{display:none;content:"1199.98px"}.sidebar-expand-xl .app-sidebar{position:fixed;top:0;bottom:0;max-height:100vh;margin-left:calc(var(--lte-sidebar-width) * -1)}.sidebar-expand-xl .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-xl.sidebar-open .app-sidebar{margin-left:0}.sidebar-expand-xl.sidebar-open .sidebar-overlay{position:absolute;inset:0;z-index:1037;width:100%;height:100%;cursor:pointer;visibility:visible;background-color:rgba(0,0,0,.2);animation-name:fadeIn;animation-fill-mode:both}}@media (min-width:1400px){.sidebar-expand-xxl.layout-fixed .app-main-wrapper{display:flex;flex-direction:column;min-height:100vh}.sidebar-expand-xxl.layout-fixed .app-sidebar-wrapper{position:relative}.sidebar-expand-xxl.layout-fixed .app-main{flex:1 1 auto;overflow:auto}.sidebar-expand-xxl.layout-fixed .app-sidebar{position:sticky;top:0;bottom:0;max-height:100vh}.sidebar-expand-xxl.layout-fixed .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-xxl.sidebar-open .nav-link>.nav-badge,.sidebar-expand-xxl.sidebar-open .nav-link>p>.nav-badge{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand-xxl.sidebar-open .nav-link>.nav-arrow,.sidebar-expand-xxl.sidebar-open .nav-link>p>.nav-arrow{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}}@media (max-width:1399.98px){.sidebar-expand-xxl::before{display:none;content:"1399.98px"}.sidebar-expand-xxl .app-sidebar{position:fixed;top:0;bottom:0;max-height:100vh;margin-left:calc(var(--lte-sidebar-width) * -1)}.sidebar-expand-xxl .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-xxl.sidebar-open .app-sidebar{margin-left:0}.sidebar-expand-xxl.sidebar-open .sidebar-overlay{position:absolute;inset:0;z-index:1037;width:100%;height:100%;cursor:pointer;visibility:visible;background-color:rgba(0,0,0,.2);animation-name:fadeIn;animation-fill-mode:both}}.sidebar-expand.layout-fixed .app-main-wrapper{display:flex;flex-direction:column;min-height:100vh}.sidebar-expand.layout-fixed .app-sidebar-wrapper{position:relative}.sidebar-expand.layout-fixed .app-main{flex:1 1 auto;overflow:auto}.sidebar-expand.layout-fixed .app-sidebar{position:sticky;top:0;bottom:0;max-height:100vh}.sidebar-expand.layout-fixed .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand.sidebar-open .nav-link>.nav-badge,.sidebar-expand.sidebar-open .nav-link>p>.nav-badge{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand.sidebar-open .nav-link>.nav-arrow,.sidebar-expand.sidebar-open .nav-link>p>.nav-arrow{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand::before{display:none;content:""}.sidebar-expand .app-sidebar{position:fixed;top:0;bottom:0;max-height:100vh;margin-left:calc(var(--lte-sidebar-width) * -1)}.sidebar-expand .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand.sidebar-open .app-sidebar{margin-left:0}.sidebar-expand.sidebar-open .sidebar-overlay{position:absolute;inset:0;z-index:1037;width:100%;height:100%;cursor:pointer;visibility:visible;background-color:rgba(0,0,0,.2);animation-name:fadeIn;animation-fill-mode:both}.app-sidebar .brand-text,.app-sidebar .logo-xl,.app-sidebar .logo-xs,.sidebar-menu .nav-link p{transition:margin-left .3s linear,opacity .3s ease,visibility .3s ease}@media (prefers-reduced-motion:reduce){.app-sidebar .brand-text,.app-sidebar .logo-xl,.app-sidebar .logo-xs,.sidebar-menu .nav-link p{transition:none}}.app-loaded.sidebar-mini.sidebar-collapse .brand-text,.app-loaded.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link p{animation-duration:.3s}body:not(.app-loaded) .app-footer,body:not(.app-loaded) .app-header,body:not(.app-loaded) .app-main,body:not(.app-loaded) .app-sidebar{transition:none!important}@media (prefers-reduced-motion:reduce){body:not(.app-loaded) .app-footer,body:not(.app-loaded) .app-header,body:not(.app-loaded) .app-main,body:not(.app-loaded) .app-sidebar{transition:none}}body:not(.app-loaded) .app-footer,body:not(.app-loaded) .app-header,body:not(.app-loaded) .app-main,body:not(.app-loaded) .app-sidebar{animation-duration:0s!important}.hold-transition .app-footer,.hold-transition .app-header,.hold-transition .app-main,.hold-transition .app-sidebar,.hold-transition .nav-arrow,.hold-transition .nav-badge{transition:none!important}@media (prefers-reduced-motion:reduce){.hold-transition .app-footer,.hold-transition .app-header,.hold-transition .app-main,.hold-transition .app-sidebar,.hold-transition .nav-arrow,.hold-transition .nav-badge{transition:none}}.hold-transition .app-footer,.hold-transition .app-header,.hold-transition .app-main,.hold-transition .app-sidebar,.hold-transition .nav-arrow,.hold-transition .nav-badge{animation-duration:0s!important}[data-bs-theme=dark] .app-sidebar,[data-bs-theme=dark].app-sidebar{--lte-sidebar-hover-bg:rgba(255, 255, 255, 0.1);--lte-sidebar-color:#c2c7d0;--lte-sidebar-hover-color:#fff;--lte-sidebar-active-color:#fff;--lte-sidebar-menu-active-bg:rgba(255, 255, 255, 0.1);--lte-sidebar-menu-active-color:#fff;--lte-sidebar-submenu-bg:transparent;--lte-sidebar-submenu-color:#c2c7d0;--lte-sidebar-submenu-hover-color:#fff;--lte-sidebar-submenu-hover-bg:rgba(255, 255, 255, 0.1);--lte-sidebar-submenu-active-color:#fff;--lte-sidebar-submenu-active-bg:rgba(255, 255, 255, 0.1);--lte-sidebar-header-color:rgb(197.05, 201.8, 210.35)}.app-main{position:relative;display:flex;flex-direction:column;grid-area:lte-app-main;max-width:100vw;padding-bottom:.75rem;transition:.3s ease-in-out}@media (prefers-reduced-motion:reduce){.app-main{transition:none}}.app-main .app-content-header{padding:1rem .5rem}.app-main .app-content-header .breadcrumb{padding:0;margin-bottom:0;line-height:2.5rem}.app-main .app-content-header .breadcrumb a{text-decoration:none}.app-main .app-content-bottom-area,.app-main .app-content-top-area{color:var(--bs-secondary-color);background-color:var(--bs-body-bg)}.app-main .app-content-top-area{padding:1rem 0;border-bottom:1px solid var(--bs-border-color)}.app-main .app-content-bottom-area{padding:1rem 0;margin-top:auto;margin-bottom:-.75rem;border-top:1px solid var(--bs-border-color)}.app-footer{grid-area:lte-app-footer;width:inherit;max-width:100vw;min-height:3rem;padding:1rem;color:var(--bs-secondary-color);background-color:var(--bs-body-bg);border-top:1px solid var(--bs-border-color);transition:.3s ease-in-out}@media (prefers-reduced-motion:reduce){.app-footer{transition:none}}.fixed-footer .app-footer{position:sticky;bottom:0;z-index:1030}.fs-7 .dropdown-menu{font-size:.875rem!important}.fs-7 .dropdown-toggle::after{vertical-align:.2rem}.dropdown-item-title{margin:0;font-size:1rem}.dropdown-icon::after{margin-left:0}.dropdown-menu-lg{min-width:280px;max-width:300px;padding:0}.dropdown-menu-lg .dropdown-divider{margin:0}.dropdown-menu-lg .dropdown-item{padding:.5rem 1rem}.dropdown-menu-lg p{margin:0;word-wrap:break-word;white-space:normal}.dropdown-submenu{position:relative}.dropdown-submenu>a::after{border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid;float:right;margin-top:.5rem;margin-left:.5rem}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:0;margin-left:0}.dropdown-hover .dropdown-submenu:hover>.dropdown-menu,.dropdown-hover.dropdown-submenu:hover>.dropdown-menu,.dropdown-hover.nav-item.dropdown:hover>.dropdown-menu,.dropdown-hover:hover>.dropdown-menu{display:block}.dropdown-menu-xl{min-width:360px;max-width:420px;padding:0}.dropdown-menu-xl .dropdown-divider{margin:0}.dropdown-menu-xl .dropdown-item{padding:.5rem 1rem}.dropdown-menu-xl p{margin:0;word-wrap:break-word;white-space:normal}.dropdown-footer,.dropdown-header{display:block;padding:.5rem 1rem;font-size:.875rem;text-align:center}.open:not(.dropup)>.animated-dropdown-menu{animation:flipInX .7s both;backface-visibility:visible!important}.navbar-custom-menu>.navbar-nav>li{position:relative}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:0;left:auto}@media (max-width:575.98px){.navbar-custom-menu>.navbar-nav{float:right}.navbar-custom-menu>.navbar-nav>li{position:static}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:5%;left:auto;background-color:var(--bs-body-bg);border:1px solid var(--bs-border-color)}}.navbar-nav>.user-menu>.nav-link::after{content:none}.navbar-nav>.user-menu>.dropdown-menu{border-top-left-radius:0;border-top-right-radius:0;width:280px;padding:0}.navbar-nav>.user-menu>.dropdown-menu,.navbar-nav>.user-menu>.dropdown-menu>.user-body{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header{min-height:175px;padding:10px;text-align:center}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>img{z-index:5;width:90px;height:90px;border:3px solid;border-color:transparent;border-color:var(--bs-border-color-translucent)}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p{z-index:5;margin-top:10px;font-size:17px;word-wrap:break-word}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p>.small,.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p>small{display:block;font-size:12px}.navbar-nav>.user-menu>.dropdown-menu>.user-body::after{display:block;clear:both;content:""}.navbar-nav>.user-menu>.dropdown-menu>.user-body{padding:15px;border-top:1px solid var(--bs-border-color);border-bottom:1px solid var(--bs-border-color-translucent)}.navbar-nav>.user-menu>.dropdown-menu>.user-body a{text-decoration:none}@media (min-width:576px){.navbar-nav>.user-menu>.dropdown-menu>.user-body a{color:var(--bs-body-color)!important;background-color:var(--bs-body-bg)!important}}.navbar-nav>.user-menu>.dropdown-menu>.user-footer::after{display:block;clear:both;content:""}.navbar-nav>.user-menu>.dropdown-menu>.user-footer{padding:10px;background-color:var(--bs-light-bg)}.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default{color:var(--bs-body-color)}@media (min-width:576px){.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default:hover{background-color:var(--bs-body-bg)}}@media (min-width:576px){.navbar-nav>.user-menu .user-image{float:none;margin-top:-8px;margin-right:.4rem;line-height:10px}}.navbar-nav>.user-menu .user-image{float:left;width:2rem;height:2rem;margin-top:-2px;border-radius:50%}.callout{--bs-link-color-rgb:var(--lte-callout-link);--bs-code-color:var(--lte-callout-code-color);padding:1.25rem;color:var(--lte-callout-color,inherit);background-color:var(--lte-callout-bg,var(--bs-gray-100));border-left:.25rem solid var(--lte-callout-border,var(--bs-gray-300))}.callout .callout-link{font-weight:700;color:var(--bs-callout-link-color)}.callout .h4,.callout h4{margin-bottom:.25rem}.callout>:last-child{margin-bottom:0}.callout+.callout{margin-top:-.25rem}.callout-primary{--lte-callout-color:var(--bs-primary-text-emphasis);--lte-callout-bg:var(--bs-primary-bg-subtle);--lte-callout-border:var(--bs-primary-border-subtle);--bs-callout-link-color:var(--bs-primary-text-emphasis)}.callout-secondary{--lte-callout-color:var(--bs-secondary-text-emphasis);--lte-callout-bg:var(--bs-secondary-bg-subtle);--lte-callout-border:var(--bs-secondary-border-subtle);--bs-callout-link-color:var(--bs-secondary-text-emphasis)}.callout-success{--lte-callout-color:var(--bs-success-text-emphasis);--lte-callout-bg:var(--bs-success-bg-subtle);--lte-callout-border:var(--bs-success-border-subtle);--bs-callout-link-color:var(--bs-success-text-emphasis)}.callout-info{--lte-callout-color:var(--bs-info-text-emphasis);--lte-callout-bg:var(--bs-info-bg-subtle);--lte-callout-border:var(--bs-info-border-subtle);--bs-callout-link-color:var(--bs-info-text-emphasis)}.callout-warning{--lte-callout-color:var(--bs-warning-text-emphasis);--lte-callout-bg:var(--bs-warning-bg-subtle);--lte-callout-border:var(--bs-warning-border-subtle);--bs-callout-link-color:var(--bs-warning-text-emphasis)}.callout-danger{--lte-callout-color:var(--bs-danger-text-emphasis);--lte-callout-bg:var(--bs-danger-bg-subtle);--lte-callout-border:var(--bs-danger-border-subtle);--bs-callout-link-color:var(--bs-danger-text-emphasis)}.callout-light{--lte-callout-color:var(--bs-light-text-emphasis);--lte-callout-bg:var(--bs-light-bg-subtle);--lte-callout-border:var(--bs-light-border-subtle);--bs-callout-link-color:var(--bs-light-text-emphasis)}.callout-dark{--lte-callout-color:var(--bs-dark-text-emphasis);--lte-callout-bg:var(--bs-dark-bg-subtle);--lte-callout-border:var(--bs-dark-border-subtle);--bs-callout-link-color:var(--bs-dark-text-emphasis)}.compact-mode .app-header{max-height:2.75rem}.compact-mode .app-header .nav-link{max-height:1.75rem}.compact-mode .nav-link{--bs-nav-link-padding-y:.25rem;--bs-nav-link-padding-x:.5rem}.compact-mode.sidebar-mini.sidebar-collapse .app-sidebar:not(:hover){min-width:3.1rem;max-width:3.1rem}.compact-mode.sidebar-mini.sidebar-collapse .app-sidebar:not(:hover) .sidebar-menu .nav-link{width:2.1rem!important}.compact-mode .logo-xl,.compact-mode .logo-xs{max-height:2.75rem}.compact-mode .brand-image{width:1.75rem;height:1.75rem}.compact-mode .sidebar-brand{height:2.75rem}.compact-mode .app-footer{padding:.5rem}.compact-mode .sidebar-wrapper .nav-icon{min-width:1.1rem;max-width:1.1rem}.astro-code{padding:.75rem;border-radius:.375rem}.progress{border-radius:1px}.progress.vertical{position:relative;display:inline-block;width:30px;height:200px;margin-right:10px}.progress.vertical>.progress-bar{position:absolute;bottom:0;width:100%}.progress.vertical.progress-sm,.progress.vertical.sm{width:20px}.progress.vertical.progress-xs,.progress.vertical.xs{width:10px}.progress.vertical.progress-xxs,.progress.vertical.xxs{width:3px}.progress-group{margin-bottom:.5rem}.progress-sm{height:10px}.progress-xs{height:7px}.progress-xxs{height:3px}.table tr>td .progress{margin:0}.card{box-shadow:0 0 1px rgba(var(--bs-body-color-rgb),.125),0 1px 3px rgba(var(--bs-body-color-rgb),.2)}.card[class*=card-]:not(.card-outline)>.card-header,.card[class*=text-bg-]:not(.card-outline)>.card-header{color:var(--lte-card-variant-color);background-color:var(--lte-card-variant-bg)}.card[class*=card-]:not(.card-outline)>.card-header .btn-tool,.card[class*=text-bg-]:not(.card-outline)>.card-header .btn-tool{--bs-btn-color:rgba(var(--lte-card-variant-color-rgb), .8);--bs-btn-hover-color:var(--lte-card-variant-color)}.card.card-outline{border-top:3px solid var(--lte-card-variant-bg)}.card.maximized-card{position:fixed;top:0;left:0;z-index:1050;width:100%!important;max-width:100%!important;height:100%!important;max-height:100%!important}.card.maximized-card.was-collapsed .card-body{display:block!important}.card.maximized-card .card-body{overflow:auto}.card.maximized-card [data-lte-toggle=card-collapse]{display:none}.card.maximized-card [data-lte-icon=maximize]{display:none}.card.maximized-card .card-footer,.card.maximized-card .card-header{border-radius:0!important}.card:not(.maximized-card) [data-lte-icon=minimize]{display:none}.card.collapsed-card [data-lte-icon=collapse]{display:none}.card.collapsed-card .card-body,.card.collapsed-card .card-footer{display:none}.card:not(.collapsed-card) [data-lte-icon=expand]{display:none}.card .nav.flex-column>li{margin:0;border-bottom:1px solid var(--bs-border-color-translucent)}.card .nav.flex-column>li:last-of-type{border-bottom:0}.card.height-control .card-body{max-height:300px;overflow:auto}.card .border-end{border-right:1px solid var(--bs-border-color-translucent)}.card .border-start{border-left:1px solid var(--bs-border-color-translucent)}.card.card-tabs:not(.card-outline)>.card-header{border-bottom:0}.card.card-tabs:not(.card-outline)>.card-header .nav-item:first-child .nav-link{border-left-color:transparent}.card.card-tabs.card-outline .nav-item{border-bottom:0}.card.card-tabs.card-outline .nav-item:first-child .nav-link{margin-left:0;border-left:0}.card.card-tabs .card-tools{margin:.3rem .5rem}.card.card-tabs:not(.expanding-card).collapsed-card .card-header{border-bottom:0}.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs{border-bottom:0}.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item{margin-bottom:0}.card.card-tabs.expanding-card .card-header .nav-tabs .nav-item{margin-bottom:-1px}.card.card-outline-tabs{border-top:0}.card.card-outline-tabs .card-header .nav-item:first-child .nav-link{margin-left:0;border-left:0}.card.card-outline-tabs .card-header a{text-decoration:none;border-top:3px solid transparent}.card.card-outline-tabs .card-header a:hover{border-top:3px solid var(--bs-border-color)}.card.card-outline-tabs .card-header a.active:hover{margin-top:0}.card.card-outline-tabs .card-tools{margin:.5rem .5rem .3rem}.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header{border-bottom:0}.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs{border-bottom:0}.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item{margin-bottom:0}.card.card-outline-tabs.expanding-card .card-header .nav-tabs .nav-item{margin-bottom:-1px}html.maximized-card{overflow:hidden}.card-body::after,.card-footer::after,.card-header::after{display:block;clear:both;content:""}.card-header{position:relative;padding:1rem 1rem;background-color:transparent;border-bottom:1px solid var(--bs-border-color-translucent);border-top-left-radius:.375rem;border-top-right-radius:.375rem}.collapsed-card .card-header{border-bottom:0}.card-header>.card-tools{float:right;margin-right:-.5rem}.card-header>.card-tools .input-group,.card-header>.card-tools .nav,.card-header>.card-tools .pagination{margin-top:-.4rem;margin-bottom:-.4rem}.card-header>.card-tools [data-bs-toggle=tooltip]{position:relative}.card-title{float:left;margin:0;font-size:1.1rem;font-weight:400}.btn-tool{--bs-btn-padding-x:.5rem;--bs-btn-padding-y:.25rem}.btn-tool:not(.btn-tool-custom){--bs-btn-color:var(--bs-tertiary-color);--bs-btn-bg:transparent;--bs-btn-box-shadow:none;--bs-btn-hover-color:var(--bs-secondary-color);--bs-btn-active-border-color:transparent}.btn-tool{margin:-1rem 0;font-size:.875rem}.bg-primary,.card-primary,.text-bg-primary{--lte-card-variant-bg:#0d6efd;--lte-card-variant-bg-rgb:13,110,253;--lte-card-variant-color:#fff;--lte-card-variant-color-rgb:255,255,255}.bg-secondary,.card-secondary,.text-bg-secondary{--lte-card-variant-bg:#6c757d;--lte-card-variant-bg-rgb:108,117,125;--lte-card-variant-color:#fff;--lte-card-variant-color-rgb:255,255,255}.bg-success,.card-success,.text-bg-success{--lte-card-variant-bg:#198754;--lte-card-variant-bg-rgb:25,135,84;--lte-card-variant-color:#fff;--lte-card-variant-color-rgb:255,255,255}.bg-info,.card-info,.text-bg-info{--lte-card-variant-bg:#0dcaf0;--lte-card-variant-bg-rgb:13,202,240;--lte-card-variant-color:#000;--lte-card-variant-color-rgb:0,0,0}.bg-warning,.card-warning,.text-bg-warning{--lte-card-variant-bg:#ffc107;--lte-card-variant-bg-rgb:255,193,7;--lte-card-variant-color:#000;--lte-card-variant-color-rgb:0,0,0}.bg-danger,.card-danger,.text-bg-danger{--lte-card-variant-bg:#dc3545;--lte-card-variant-bg-rgb:220,53,69;--lte-card-variant-color:#fff;--lte-card-variant-color-rgb:255,255,255}.bg-light,.card-light,.text-bg-light{--lte-card-variant-bg:#f8f9fa;--lte-card-variant-bg-rgb:248,249,250;--lte-card-variant-color:#000;--lte-card-variant-color-rgb:0,0,0}.bg-dark,.card-dark,.text-bg-dark{--lte-card-variant-bg:#212529;--lte-card-variant-bg-rgb:33,37,41;--lte-card-variant-color:#fff;--lte-card-variant-color-rgb:255,255,255}.card-body>.table{margin-bottom:0}.card-body>.table>thead>tr>td,.card-body>.table>thead>tr>th{border-top-width:0}.table:not(.table-dark){color:inherit}.table.table-head-fixed thead tr:first-child th{position:sticky;top:0;z-index:10;background-color:#fff;border-bottom:0;box-shadow:inset 0 1px 0 var(--bs-border-color),inset 0 -1px 0 var(--bs-border-color)}.table.no-border,.table.no-border td,.table.no-border th{border:0}.table.text-center,.table.text-center td,.table.text-center th{text-align:center}.table.table-valign-middle tbody>tr>td,.table.table-valign-middle tbody>tr>th,.table.table-valign-middle thead>tr>td,.table.table-valign-middle thead>tr>th{vertical-align:middle}.card-body.p-0 .table tbody>tr>td:first-of-type,.card-body.p-0 .table tbody>tr>th:first-of-type,.card-body.p-0 .table tfoot>tr>td:first-of-type,.card-body.p-0 .table tfoot>tr>th:first-of-type,.card-body.p-0 .table thead>tr>td:first-of-type,.card-body.p-0 .table thead>tr>th:first-of-type{padding-left:1.5rem}.card-body.p-0 .table tbody>tr>td:last-of-type,.card-body.p-0 .table tbody>tr>th:last-of-type,.card-body.p-0 .table tfoot>tr>td:last-of-type,.card-body.p-0 .table tfoot>tr>th:last-of-type,.card-body.p-0 .table thead>tr>td:last-of-type,.card-body.p-0 .table thead>tr>th:last-of-type{padding-right:1.5rem}.small-box{border-radius:.375rem;box-shadow:0 0 1px rgba(var(--bs-body-color-rgb),.125),0 1px 3px rgba(var(--bs-body-color-rgb),.2);position:relative;display:block;margin-bottom:1.25rem;--bs-link-color-rgb:none;--bs-link-hover-color-rgb:none;--bs-heading-color:none}.small-box>.inner{padding:10px}.small-box>.small-box-footer{position:relative;z-index:10;display:block;padding:3px 0;text-align:center;background-color:rgba(0,0,0,.07)}.small-box>.small-box-footer:hover{background-color:rgba(0,0,0,.1)}.small-box .h3,.small-box h3{font-size:calc(1.345rem + 1.14vw)}@media (min-width:1200px){.small-box .h3,.small-box h3{font-size:2.2rem}}.small-box .h3,.small-box h3{padding:0;margin:0 0 10px;font-weight:700;white-space:nowrap}@media (min-width:992px){.col-lg-2 .small-box .h3,.col-lg-2 .small-box h3,.col-md-2 .small-box .h3,.col-md-2 .small-box h3,.col-xl-2 .small-box .h3,.col-xl-2 .small-box h3{font-size:calc(1.285rem + .42vw)}}@media (min-width:992px) and (min-width:1200px){.col-lg-2 .small-box .h3,.col-lg-2 .small-box h3,.col-md-2 .small-box .h3,.col-md-2 .small-box h3,.col-xl-2 .small-box .h3,.col-xl-2 .small-box h3{font-size:1.6rem}}@media (min-width:992px){.col-lg-3 .small-box .h3,.col-lg-3 .small-box h3,.col-md-3 .small-box .h3,.col-md-3 .small-box h3,.col-xl-3 .small-box .h3,.col-xl-3 .small-box h3{font-size:calc(1.285rem + .42vw)}}@media (min-width:992px) and (min-width:1200px){.col-lg-3 .small-box .h3,.col-lg-3 .small-box h3,.col-md-3 .small-box .h3,.col-md-3 .small-box h3,.col-xl-3 .small-box .h3,.col-xl-3 .small-box h3{font-size:1.6rem}}@media (min-width:1200px){.col-lg-2 .small-box .h3,.col-lg-2 .small-box h3,.col-md-2 .small-box .h3,.col-md-2 .small-box h3,.col-xl-2 .small-box .h3,.col-xl-2 .small-box h3{font-size:calc(1.345rem + 1.14vw)}}@media (min-width:1200px) and (min-width:1200px){.col-lg-2 .small-box .h3,.col-lg-2 .small-box h3,.col-md-2 .small-box .h3,.col-md-2 .small-box h3,.col-xl-2 .small-box .h3,.col-xl-2 .small-box h3{font-size:2.2rem}}@media (min-width:1200px){.col-lg-3 .small-box .h3,.col-lg-3 .small-box h3,.col-md-3 .small-box .h3,.col-md-3 .small-box h3,.col-xl-3 .small-box .h3,.col-xl-3 .small-box h3{font-size:calc(1.345rem + 1.14vw)}}@media (min-width:1200px) and (min-width:1200px){.col-lg-3 .small-box .h3,.col-lg-3 .small-box h3,.col-md-3 .small-box .h3,.col-md-3 .small-box h3,.col-xl-3 .small-box .h3,.col-xl-3 .small-box h3{font-size:2.2rem}}.small-box p{font-size:1rem}.small-box p>.small,.small-box p>small{display:block;margin-top:5px;font-size:.9rem;color:#f8f9fa}.small-box .h3,.small-box h3,.small-box p{z-index:5}.small-box .small-box-icon{position:absolute;top:15px;right:15px;z-index:0;height:70px;font-size:70px;color:rgba(0,0,0,.15);transition:transform .3s linear}@media (prefers-reduced-motion:reduce){.small-box .small-box-icon{transition:none}}.small-box:hover .small-box-icon{transform:scale(1.1)}@media (max-width:575.98px){.small-box{text-align:center}.small-box .small-box-icon{display:none}.small-box p{font-size:12px}}.info-box{box-shadow:0 0 1px rgba(var(--bs-body-color-rgb),.125),0 1px 3px rgba(var(--bs-body-color-rgb),.2);border-radius:.375rem;position:relative;display:flex;width:100%;min-height:80px;padding:.5rem;margin-bottom:1rem;color:var(--bs-body-color);background-color:var(--bs-body-bg)}.info-box .progress{height:2px;margin:5px 0;background-color:rgba(var(--lte-card-variant-color-rgb),.125)}.info-box .progress .progress-bar{background-color:var(--lte-card-variant-color)}.info-box .info-box-icon{display:flex;align-items:center;justify-content:center;width:70px;font-size:1.875rem;text-align:center;border-radius:.375rem}.info-box .info-box-icon>img{max-width:100%}.info-box .info-box-content{display:flex;flex:1;flex-direction:column;justify-content:center;padding:0 10px;line-height:1.8}.info-box .info-box-number{display:block;margin-top:.25rem;font-weight:700}.info-box .info-box-text,.info-box .progress-description{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.info-box .info-box-more{display:block}.info-box .progress-description{margin:0}@media (min-width:768px){.col-lg-2 .info-box .progress-description,.col-md-2 .info-box .progress-description,.col-xl-2 .info-box .progress-description{display:none}.col-lg-3 .info-box .progress-description,.col-md-3 .info-box .progress-description,.col-xl-3 .info-box .progress-description{display:none}}@media (min-width:992px){.col-lg-2 .info-box .progress-description,.col-md-2 .info-box .progress-description,.col-xl-2 .info-box .progress-description{font-size:.75rem;display:block}.col-lg-3 .info-box .progress-description,.col-md-3 .info-box .progress-description,.col-xl-3 .info-box .progress-description{font-size:.75rem;display:block}}@media (min-width:1200px){.col-lg-2 .info-box .progress-description,.col-md-2 .info-box .progress-description,.col-xl-2 .info-box .progress-description{font-size:1rem;display:block}.col-lg-3 .info-box .progress-description,.col-md-3 .info-box .progress-description,.col-xl-3 .info-box .progress-description{font-size:1rem;display:block}}.timeline{position:relative;padding:0;margin:0 0 45px}.timeline::before{border-radius:.375rem;position:absolute;top:0;bottom:0;left:31px;width:4px;margin:0;content:"";background-color:var(--bs-border-color)}.timeline>div::after,.timeline>div::before{display:table;content:""}.timeline>div{position:relative;margin-right:10px;margin-bottom:15px}.timeline>div>.timeline-item{box-shadow:0 0 1px rgba(var(--bs-body-color-rgb),.125),0 1px 3px rgba(var(--bs-body-color-rgb),.2);border-radius:.375rem;position:relative;padding:0;margin-top:0;margin-right:15px;margin-left:60px;color:var(--bs-body-color);background-color:var(--bs-body-bg)}.timeline>div>.timeline-item>.time{float:right;padding:10px;font-size:12px;color:var(--bs-secondary-color)}.timeline>div>.timeline-item>.timeline-header{padding:10px;margin:0;font-size:16px;line-height:1.1;color:var(--bs-secondary-color);border-bottom:1px solid var(--bs-border-color)}.timeline>div>.timeline-item>.timeline-header>a{font-weight:600;text-decoration:none}.timeline>div>.timeline-item>.timeline-body,.timeline>div>.timeline-item>.timeline-footer{padding:10px}.timeline>div>.timeline-item>.timeline-body>img{margin:10px}.timeline>div>.timeline-item>.timeline-body ol,.timeline>div>.timeline-item>.timeline-body ul,.timeline>div>.timeline-item>.timeline-body>dl{margin:0}.timeline>div .timeline-icon{position:absolute;top:0;left:18px;width:30px;height:30px;font-size:16px;line-height:30px;text-align:center;background-color:var(--bs-secondary-bg);border-radius:50%}.timeline>.time-label>span{border-radius:4px;display:inline-block;padding:5px;font-weight:600;background-color:var(--bs-body-bg)}.timeline-inverse>div>.timeline-item{box-shadow:none;background-color:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color)}.timeline-inverse>div>.timeline-item>.timeline-header{border-bottom-color:var(--bs-border-color)}.direct-chat .card-body{position:relative;padding:0;overflow-x:hidden}.direct-chat.chat-pane-open .direct-chat-contacts{transform:translate(0,0)}.direct-chat.timestamp-light .direct-chat-timestamp{color:rgba(var(--bs-body-color-rgb),.65)}.direct-chat.timestamp-dark .direct-chat-timestamp{color:rgba(var(--bs-body-color-rgb),.9)}.direct-chat-messages{height:250px;padding:10px;overflow:auto;transform:translate(0,0)}.direct-chat-msg,.direct-chat-text{display:block}.direct-chat-msg::after{display:block;clear:both;content:""}.direct-chat-msg{margin-bottom:10px}.direct-chat-contacts,.direct-chat-messages{transition:transform .5s ease-in-out}@media (prefers-reduced-motion:reduce){.direct-chat-contacts,.direct-chat-messages{transition:none}}.direct-chat-text{border-radius:.5rem;position:relative;padding:5px 10px;margin:5px 0 0 50px;color:var(--bs-emphasis-color);background-color:var(--bs-secondary-bg);border:1px solid var(--bs-border-color)}.direct-chat-text::after,.direct-chat-text::before{position:absolute;top:15px;right:100%;width:0;height:0;pointer-events:none;content:" ";border:solid transparent;border-right-color:var(--bs-border-color)}.direct-chat-text::after{margin-top:-5px;border-width:5px}.direct-chat-text::before{margin-top:-6px;border-width:6px}.end .direct-chat-text{margin-right:50px;margin-left:0}.end .direct-chat-text::after,.end .direct-chat-text::before{right:auto;left:100%;border-right-color:transparent;border-left-color:var(--bs-border-color)}.direct-chat-img{border-radius:50%;float:left;width:40px;height:40px}.end .direct-chat-img{float:right}.direct-chat-infos{display:block;margin-bottom:2px;font-size:.875rem}.direct-chat-name{font-weight:600}.direct-chat-timestamp{color:rgba(var(--bs-body-color-rgb),.75)}.direct-chat-contacts-open .direct-chat-contacts{transform:translate(0,0)}.direct-chat-contacts{position:absolute;top:0;bottom:0;width:100%;height:250px;overflow:auto;color:var(--bs-body-bg);background-color:var(--bs-body-color);transform:translate(101%,0)}.direct-chat-contacts-light{background-color:var(--bs-light-bg-subtle)}.direct-chat-contacts-light .contacts-list-name{color:var(--bs-body-color)}.direct-chat-contacts-light .contacts-list-date{color:var(--bs-secondary-color)}.direct-chat-contacts-light .contacts-list-msg{color:var(--bs-secondary-color)}.contacts-list{padding-left:0;list-style:none}.contacts-list>li::after{display:block;clear:both;content:""}.contacts-list>li{padding:10px;margin:0;text-decoration:none;border-bottom:1px solid rgba(0,0,0,.2)}.contacts-list>li:last-of-type{border-bottom:0}.contacts-list>li a{text-decoration:none}.contacts-list-img{border-radius:50%;float:left;width:40px}.contacts-list-info{margin-left:45px;color:var(--bs-body-bg)}.contacts-list-name,.contacts-list-status{display:block}.contacts-list-name{font-weight:600}.contacts-list-status{font-size:.875rem}.contacts-list-date{font-weight:400;color:var(--bs-secondary-bg)}.contacts-list-msg{color:var(--bs-secondary-bg)}.end>.direct-chat-text{color:var(--lte-direct-chat-color);background-color:var(--lte-direct-chat-bg);border-color:var(--lte-direct-chat-bg)}.end>.direct-chat-text::after,.end>.direct-chat-text::before{border-left-color:var(--lte-direct-chat-bg)}.direct-chat-primary{--lte-direct-chat-color:#fff;--lte-direct-chat-bg:#0d6efd}.direct-chat-secondary{--lte-direct-chat-color:#fff;--lte-direct-chat-bg:#6c757d}.direct-chat-success{--lte-direct-chat-color:#fff;--lte-direct-chat-bg:#198754}.direct-chat-info{--lte-direct-chat-color:#000;--lte-direct-chat-bg:#0dcaf0}.direct-chat-warning{--lte-direct-chat-color:#000;--lte-direct-chat-bg:#ffc107}.direct-chat-danger{--lte-direct-chat-color:#fff;--lte-direct-chat-bg:#dc3545}.direct-chat-light{--lte-direct-chat-color:#000;--lte-direct-chat-bg:#f8f9fa}.direct-chat-dark{--lte-direct-chat-color:#fff;--lte-direct-chat-bg:#212529}.toast-primary{--bs-toast-header-color:#fff;--bs-toast-header-bg:#0d6efd;--bs-toast-header-border-color:#0d6efd;--bs-toast-border-color:#0d6efd;--bs-toast-bg:var(--bs-primary-bg-subtle)}.toast-primary .btn-close{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}.toast-secondary{--bs-toast-header-color:#fff;--bs-toast-header-bg:#6c757d;--bs-toast-header-border-color:#6c757d;--bs-toast-border-color:#6c757d;--bs-toast-bg:var(--bs-secondary-bg-subtle)}.toast-secondary .btn-close{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}.toast-success{--bs-toast-header-color:#fff;--bs-toast-header-bg:#198754;--bs-toast-header-border-color:#198754;--bs-toast-border-color:#198754;--bs-toast-bg:var(--bs-success-bg-subtle)}.toast-success .btn-close{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}.toast-info{--bs-toast-header-color:#000;--bs-toast-header-bg:#0dcaf0;--bs-toast-header-border-color:#0dcaf0;--bs-toast-border-color:#0dcaf0;--bs-toast-bg:var(--bs-info-bg-subtle)}.toast-warning{--bs-toast-header-color:#000;--bs-toast-header-bg:#ffc107;--bs-toast-header-border-color:#ffc107;--bs-toast-border-color:#ffc107;--bs-toast-bg:var(--bs-warning-bg-subtle)}.toast-danger{--bs-toast-header-color:#fff;--bs-toast-header-bg:#dc3545;--bs-toast-header-border-color:#dc3545;--bs-toast-border-color:#dc3545;--bs-toast-bg:var(--bs-danger-bg-subtle)}.toast-danger .btn-close{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}.toast-light{--bs-toast-header-color:#000;--bs-toast-header-bg:#f8f9fa;--bs-toast-header-border-color:#f8f9fa;--bs-toast-border-color:#f8f9fa;--bs-toast-bg:var(--bs-light-bg-subtle)}.toast-dark{--bs-toast-header-color:#fff;--bs-toast-header-bg:#212529;--bs-toast-header-border-color:#212529;--bs-toast-border-color:#212529;--bs-toast-bg:var(--bs-dark-bg-subtle)}.toast-dark .btn-close{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}[data-bs-theme=dark] .toast-info .btn-close{--bs-btn-close-white-filter:none}[data-bs-theme=dark] .toast-warning .btn-close{--bs-btn-close-white-filter:none}[data-bs-theme=dark] .toast-light .btn-close{--bs-btn-close-white-filter:none}.login-logo,.register-logo{margin-bottom:.9rem;font-size:2.1rem;font-weight:300;text-align:center}.login-logo a,.register-logo a{color:var(--bs-secondary-color);text-decoration:none}.login-page,.register-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh}.login-box,.register-box{width:360px}@media (max-width:576px){.login-box,.register-box{width:90%;margin-top:.5rem}}.login-box .card,.register-box .card{margin-bottom:0}.login-card-body,.register-card-body{padding:20px;color:var(--bs-secondary-color);background-color:var(--bs-body-bg);border-top:0}.login-card-body .input-group .form-control:focus,.register-card-body .input-group .form-control:focus{box-shadow:none}.login-card-body .input-group .form-control:focus~.input-group-append .input-group-text,.login-card-body .input-group .form-control:focus~.input-group-prepend .input-group-text,.register-card-body .input-group .form-control:focus~.input-group-append .input-group-text,.register-card-body .input-group .form-control:focus~.input-group-prepend .input-group-text{border-color:rgb(134,182.5,254)}.login-card-body .input-group .form-control.is-valid:focus,.register-card-body .input-group .form-control.is-valid:focus{box-shadow:none}.login-card-body .input-group .form-control.is-valid~.input-group-append .input-group-text,.login-card-body .input-group .form-control.is-valid~.input-group-prepend .input-group-text,.register-card-body .input-group .form-control.is-valid~.input-group-append .input-group-text,.register-card-body .input-group .form-control.is-valid~.input-group-prepend .input-group-text{border-color:#198754}.login-card-body .input-group .form-control.is-invalid:focus,.register-card-body .input-group .form-control.is-invalid:focus{box-shadow:none}.login-card-body .input-group .form-control.is-invalid~.input-group-append .input-group-text,.register-card-body .input-group .form-control.is-invalid~.input-group-append .input-group-text{border-color:#dc3545}.login-card-body .input-group .input-group-text,.register-card-body .input-group .input-group-text{color:var(--bs-secondary-color);background-color:transparent;border-top-right-radius:.375rem;border-bottom-right-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.login-card-body .input-group .input-group-text,.register-card-body .input-group .input-group-text{transition:none}}.login-box-msg,.register-box-msg{padding:0 20px 20px;margin:0;text-align:center}.social-auth-links{margin:10px 0}.lockscreen .lockscreen-name{font-weight:600;text-align:center}.lockscreen .lockscreen-logo{margin-bottom:25px;font-size:35px;font-weight:300;text-align:center}.lockscreen .lockscreen-logo a{color:var(--bs-emphasis-color);text-decoration:none}.lockscreen .lockscreen-wrapper{max-width:400px;margin:0 auto;margin-top:10%}.lockscreen .lockscreen-item{position:relative;width:290px;padding:0;margin:10px auto 30px;background-color:var(--bs-body-bg);border-radius:4px}.lockscreen .lockscreen-image{position:absolute;top:-25px;left:-10px;z-index:10;padding:5px;background-color:var(--bs-body-bg);border-radius:50%}.lockscreen .lockscreen-image>img{border-radius:50%;width:70px;height:70px}.lockscreen .lockscreen-credentials{margin-left:70px}.lockscreen .lockscreen-credentials .form-control{border:0}.lockscreen .lockscreen-credentials .btn{padding:0 10px;border:0}.lockscreen .lockscreen-footer{margin-top:10px}.img-size-32,.img-size-50,.img-size-64{height:auto}.img-size-64{width:64px}.img-size-50{width:50px}.img-size-32{width:32px}.skip-link{position:absolute;top:-40px;left:6px;z-index:999999;padding:8px 16px;font-weight:600;color:var(--bs-white);text-decoration:none;background:var(--bs-primary)}.skip-link:focus{top:0;outline:3px solid var(--bs-warning);outline-offset:2px}.skip-link:hover{color:var(--bs-white);text-decoration:none;background:var(--bs-primary-emphasis)}.focus-enhanced:focus{outline:3px solid var(--bs-focus-ring-color,#0d6efd);outline-offset:2px;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}@media (prefers-contrast:high){.card{border:2px solid}.btn{border-width:2px}.nav-link{border:1px solid transparent}.nav-link:focus,.nav-link:hover{border-color:currentcolor}}@media (prefers-reduced-motion:reduce){*,::after,::before{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.fade{opacity:1!important;transition:none!important}.collapse{transition:none!important}.modal.fade .modal-dialog{transform:none!important}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.sr-only-focusable:focus{position:static!important;width:auto!important;height:auto!important;padding:inherit!important;margin:inherit!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.focus-trap:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.text-accessible-primary{color:#003d82}.text-accessible-success{color:#0f5132}.text-accessible-danger{color:#842029}.text-accessible-warning{color:#664d03}.live-region{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.live-region.live-region-visible{position:static;left:auto;width:auto;height:auto;overflow:visible}.form-control.is-invalid{border-color:var(--bs-danger)}.form-control.is-invalid:focus{border-color:var(--bs-danger);box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.invalid-feedback{display:block;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-danger)}.invalid-feedback[role=alert]{font-weight:600}.touch-target{min-width:44px;min-height:44px}.touch-target.touch-target-small{min-width:24px;min-height:24px}.table-accessible th{font-weight:600;background-color:var(--bs-secondary-bg)}.table-accessible th[scope=col]{border-bottom:2px solid var(--bs-border-color)}.table-accessible th[scope=row]{border-right:2px solid var(--bs-border-color)}.table-accessible caption{padding:.75rem;font-weight:600;color:var(--bs-secondary);text-align:left;caption-side:top}nav[role=navigation]:not([aria-label]):not([aria-labelledby])::before{position:absolute;left:-10000px;content:"Navigation"}fieldset{padding:1rem;margin-bottom:1rem;border:1px solid var(--bs-border-color)}fieldset legend{padding:0 .5rem;margin-bottom:.5rem;font-size:1.1em;font-weight:600}.loading[aria-busy=true]{position:relative;pointer-events:none}.loading[aria-busy=true]::after{position:absolute;top:50%;left:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;content:"";border:2px solid var(--bs-primary);border-top-color:transparent;animation:spin 1s linear infinite}@media (prefers-reduced-motion:reduce){.loading[aria-busy=true]::after{border-top-color:var(--bs-primary);animation:none}}@keyframes spin{to{transform:rotate(360deg)}}[data-bs-theme=dark] .text-accessible-primary{color:#6ea8fe}[data-bs-theme=dark] .text-accessible-success{color:#75b798}[data-bs-theme=dark] .text-accessible-danger{color:#f1aeb5}[data-bs-theme=dark] .text-accessible-warning{color:#ffda6a}@media print{.btn,.nav-link,.skip-link{color:#000!important;background:0 0!important;border:1px solid #000!important}a[href^=http]::after{font-size:.8em;content:" (" attr(href) ")"}} +/*# sourceMappingURL=adminlte.min.css.map */ \ No newline at end of file diff --git a/css/adminlte.rtl.css b/css/adminlte.rtl.css new file mode 100644 index 0000000..8907d7c --- /dev/null +++ b/css/adminlte.rtl.css @@ -0,0 +1,15603 @@ +@charset "UTF-8"; +/*! + * AdminLTE v4.0.0-rc5 + * Author: Colorlib + * Website: AdminLTE.io + * License: Open source - MIT + */ +: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: rgb(5.2, 44, 101.2); + --bs-secondary-text-emphasis: rgb(43.2, 46.8, 50); + --bs-success-text-emphasis: rgb(10, 54, 33.6); + --bs-info-text-emphasis: rgb(5.2, 80.8, 96); + --bs-warning-text-emphasis: rgb(102, 77.2, 2.8); + --bs-danger-text-emphasis: rgb(88, 21.2, 27.6); + --bs-light-text-emphasis: #495057; + --bs-dark-text-emphasis: #495057; + --bs-primary-bg-subtle: rgb(206.6, 226, 254.6); + --bs-secondary-bg-subtle: rgb(225.6, 227.4, 229); + --bs-success-bg-subtle: rgb(209, 231, 220.8); + --bs-info-bg-subtle: rgb(206.6, 244.4, 252); + --bs-warning-bg-subtle: rgb(255, 242.6, 205.4); + --bs-danger-bg-subtle: rgb(248, 214.6, 217.8); + --bs-light-bg-subtle: rgb(251.5, 252, 252.5); + --bs-dark-bg-subtle: #ced4da; + --bs-primary-border-subtle: rgb(158.2, 197, 254.2); + --bs-secondary-border-subtle: rgb(196.2, 199.8, 203); + --bs-success-border-subtle: rgb(163, 207, 186.6); + --bs-info-border-subtle: rgb(158.2, 233.8, 249); + --bs-warning-border-subtle: rgb(255, 230.2, 155.8); + --bs-danger-border-subtle: rgb(241, 174.2, 180.6); + --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: "Source Sans 3", 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: rgb(10.4, 88, 202.4); + --bs-link-hover-color-rgb: 10, 88, 202; + --bs-code-color: #d63384; + --bs-highlight-color: #212529; + --bs-highlight-bg: rgb(255, 242.6, 205.4); + --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: rgb(42.5, 47.5, 52.5); + --bs-tertiary-bg-rgb: 43, 48, 53; + --bs-primary-text-emphasis: rgb(109.8, 168, 253.8); + --bs-secondary-text-emphasis: rgb(166.8, 172.2, 177); + --bs-success-text-emphasis: rgb(117, 183, 152.4); + --bs-info-text-emphasis: rgb(109.8, 223.2, 246); + --bs-warning-text-emphasis: rgb(255, 217.8, 106.2); + --bs-danger-text-emphasis: rgb(234, 133.8, 143.4); + --bs-light-text-emphasis: #f8f9fa; + --bs-dark-text-emphasis: #dee2e6; + --bs-primary-bg-subtle: rgb(2.6, 22, 50.6); + --bs-secondary-bg-subtle: rgb(21.6, 23.4, 25); + --bs-success-bg-subtle: rgb(5, 27, 16.8); + --bs-info-bg-subtle: rgb(2.6, 40.4, 48); + --bs-warning-bg-subtle: rgb(51, 38.6, 1.4); + --bs-danger-bg-subtle: rgb(44, 10.6, 13.8); + --bs-light-bg-subtle: #343a40; + --bs-dark-bg-subtle: #1a1d20; + --bs-primary-border-subtle: rgb(7.8, 66, 151.8); + --bs-secondary-border-subtle: rgb(64.8, 70.2, 75); + --bs-success-border-subtle: rgb(15, 81, 50.4); + --bs-info-border-subtle: rgb(7.8, 121.2, 144); + --bs-warning-border-subtle: rgb(153, 115.8, 4.2); + --bs-danger-border-subtle: rgb(132, 31.8, 41.4); + --bs-light-border-subtle: #495057; + --bs-dark-border-subtle: #343a40; + --bs-heading-color: inherit; + --bs-link-color: rgb(109.8, 168, 253.8); + --bs-link-hover-color: rgb(138.84, 185.4, 254.04); + --bs-link-color-rgb: 110, 168, 254; + --bs-link-hover-color-rgb: 139, 185, 254; + --bs-code-color: rgb(230.4, 132.6, 181.2); + --bs-highlight-color: #dee2e6; + --bs-highlight-bg: rgb(102, 77.2, 2.8); + --bs-border-color: #495057; + --bs-border-color-translucent: rgba(255, 255, 255, 0.15); + --bs-form-valid-color: rgb(117, 183, 152.4); + --bs-form-valid-border-color: rgb(117, 183, 152.4); + --bs-form-invalid-color: rgb(234, 133.8, 143.4); + --bs-form-invalid-border-color: rgb(234, 133.8, 143.4); +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; + } +} + +body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: var(--bs-border-width) solid; + opacity: 0.25; +} + +h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + margin-top: 0; + margin-bottom: 0.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 + 0.9vw); +} +@media (min-width: 1200px) { + h2, .h2 { + font-size: 2rem; + } +} + +h3, .h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + h3, .h3 { + font-size: 1.75rem; + } +} + +h4, .h4 { + font-size: calc(1.275rem + 0.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-right: 2rem; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-right: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small, .small { + font-size: 0.875em; +} + +mark, .mark { + padding: 0.1875em; + color: var(--bs-highlight-color); + background-color: var(--bs-highlight-bg); +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.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; +} + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.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: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-secondary-color); + text-align: right; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +label { + display: inline-block; +} + +button { + border-radius: 0; +} + +button:focus:not(:focus-visible) { + outline: 0; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +select { + text-transform: none; +} + +[role=button] { + cursor: pointer; +} + +select { + word-wrap: normal; +} +select:disabled { + opacity: 1; +} + +[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; +} + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled) { + cursor: pointer; +} + +::-moz-focus-inner { + padding: 0; + border-style: none; +} + +textarea { + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + float: right; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + line-height: inherit; + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } +} +legend + * { + clear: right; +} + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; +} + +::-webkit-inner-spin-button { + height: auto; +} + +[type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; +} +[type=search]::-webkit-search-cancel-button { + cursor: pointer; + filter: grayscale(1); +} + +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::file-selector-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +iframe { + border: 0; +} + +summary { + display: list-item; + cursor: pointer; +} + +progress { + vertical-align: baseline; +} + +[hidden] { + display: none !important; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.625rem + 4.5vw); +} +@media (min-width: 1200px) { + .display-1 { + font-size: 5rem; + } +} + +.display-2 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.575rem + 3.9vw); +} +@media (min-width: 1200px) { + .display-2 { + font-size: 4.5rem; + } +} + +.display-3 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.525rem + 3.3vw); +} +@media (min-width: 1200px) { + .display-3 { + font-size: 4rem; + } +} + +.display-4 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.475rem + 2.7vw); +} +@media (min-width: 1200px) { + .display-4 { + font-size: 3.5rem; + } +} + +.display-5 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.425rem + 2.1vw); +} +@media (min-width: 1200px) { + .display-5 { + font-size: 3rem; + } +} + +.display-6 { + font-weight: 300; + line-height: 1.2; + font-size: calc(1.375rem + 1.5vw); +} +@media (min-width: 1200px) { + .display-6 { + font-size: 2.5rem; + } +} + +.list-unstyled { + padding-right: 0; + list-style: none; +} + +.list-inline { + padding-right: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} +.list-inline-item:not(:last-child) { + margin-left: 0.5rem; +} + +.initialism { + font-size: 0.875em; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} +.blockquote > :last-child { + margin-bottom: 0; +} + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; +} +.blockquote-footer::before { + content: "— "; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: var(--bs-body-bg); + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + box-shadow: var(--bs-box-shadow-sm); + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 0.875em; + color: var(--bs-secondary-color); +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-left: calc(var(--bs-gutter-x) * 0.5); + padding-right: calc(var(--bs-gutter-x) * 0.5); + margin-left: auto; + margin-right: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +:root { + --bs-breakpoint-xs: 0; + --bs-breakpoint-sm: 576px; + --bs-breakpoint-md: 768px; + --bs-breakpoint-lg: 992px; + --bs-breakpoint-xl: 1200px; + --bs-breakpoint-xxl: 1400px; +} + +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-left: calc(var(--bs-gutter-x) * 0.5); + padding-right: calc(var(--bs-gutter-x) * 0.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.33333333%; +} + +.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.66666667%; +} + +.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-right: 8.33333333%; +} + +.offset-2 { + margin-right: 16.66666667%; +} + +.offset-3 { + margin-right: 25%; +} + +.offset-4 { + margin-right: 33.33333333%; +} + +.offset-5 { + margin-right: 41.66666667%; +} + +.offset-6 { + margin-right: 50%; +} + +.offset-7 { + margin-right: 58.33333333%; +} + +.offset-8 { + margin-right: 66.66666667%; +} + +.offset-9 { + margin-right: 75%; +} + +.offset-10 { + margin-right: 83.33333333%; +} + +.offset-11 { + margin-right: 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.33333333%; + } + .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.66666667%; + } + .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-right: 0; + } + .offset-sm-1 { + margin-right: 8.33333333%; + } + .offset-sm-2 { + margin-right: 16.66666667%; + } + .offset-sm-3 { + margin-right: 25%; + } + .offset-sm-4 { + margin-right: 33.33333333%; + } + .offset-sm-5 { + margin-right: 41.66666667%; + } + .offset-sm-6 { + margin-right: 50%; + } + .offset-sm-7 { + margin-right: 58.33333333%; + } + .offset-sm-8 { + margin-right: 66.66666667%; + } + .offset-sm-9 { + margin-right: 75%; + } + .offset-sm-10 { + margin-right: 83.33333333%; + } + .offset-sm-11 { + margin-right: 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.33333333%; + } + .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.66666667%; + } + .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-right: 0; + } + .offset-md-1 { + margin-right: 8.33333333%; + } + .offset-md-2 { + margin-right: 16.66666667%; + } + .offset-md-3 { + margin-right: 25%; + } + .offset-md-4 { + margin-right: 33.33333333%; + } + .offset-md-5 { + margin-right: 41.66666667%; + } + .offset-md-6 { + margin-right: 50%; + } + .offset-md-7 { + margin-right: 58.33333333%; + } + .offset-md-8 { + margin-right: 66.66666667%; + } + .offset-md-9 { + margin-right: 75%; + } + .offset-md-10 { + margin-right: 83.33333333%; + } + .offset-md-11 { + margin-right: 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.33333333%; + } + .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.66666667%; + } + .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-right: 0; + } + .offset-lg-1 { + margin-right: 8.33333333%; + } + .offset-lg-2 { + margin-right: 16.66666667%; + } + .offset-lg-3 { + margin-right: 25%; + } + .offset-lg-4 { + margin-right: 33.33333333%; + } + .offset-lg-5 { + margin-right: 41.66666667%; + } + .offset-lg-6 { + margin-right: 50%; + } + .offset-lg-7 { + margin-right: 58.33333333%; + } + .offset-lg-8 { + margin-right: 66.66666667%; + } + .offset-lg-9 { + margin-right: 75%; + } + .offset-lg-10 { + margin-right: 83.33333333%; + } + .offset-lg-11 { + margin-right: 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.33333333%; + } + .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.66666667%; + } + .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-right: 0; + } + .offset-xl-1 { + margin-right: 8.33333333%; + } + .offset-xl-2 { + margin-right: 16.66666667%; + } + .offset-xl-3 { + margin-right: 25%; + } + .offset-xl-4 { + margin-right: 33.33333333%; + } + .offset-xl-5 { + margin-right: 41.66666667%; + } + .offset-xl-6 { + margin-right: 50%; + } + .offset-xl-7 { + margin-right: 58.33333333%; + } + .offset-xl-8 { + margin-right: 66.66666667%; + } + .offset-xl-9 { + margin-right: 75%; + } + .offset-xl-10 { + margin-right: 83.33333333%; + } + .offset-xl-11 { + margin-right: 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.33333333%; + } + .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.66666667%; + } + .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-right: 0; + } + .offset-xxl-1 { + margin-right: 8.33333333%; + } + .offset-xxl-2 { + margin-right: 16.66666667%; + } + .offset-xxl-3 { + margin-right: 25%; + } + .offset-xxl-4 { + margin-right: 33.33333333%; + } + .offset-xxl-5 { + margin-right: 41.66666667%; + } + .offset-xxl-6 { + margin-right: 50%; + } + .offset-xxl-7 { + margin-right: 58.33333333%; + } + .offset-xxl-8 { + margin-right: 66.66666667%; + } + .offset-xxl-9 { + margin-right: 75%; + } + .offset-xxl-10 { + margin-right: 83.33333333%; + } + .offset-xxl-11 { + margin-right: 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-emphasis-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-emphasis-color); + --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05); + --bs-table-active-color: var(--bs-emphasis-color); + --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1); + --bs-table-hover-color: var(--bs-emphasis-color); + --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075); + width: 100%; + margin-bottom: 1rem; + vertical-align: top; + border-color: var(--bs-table-border-color); +} +.table > :not(caption) > * > * { + padding: 0.5rem 0.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: 0.25rem 0.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(even) { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg); +} + +.table-active { + --bs-table-color-state: var(--bs-table-active-color); + --bs-table-bg-state: var(--bs-table-active-bg); +} + +.table-hover > tbody > tr:hover > * { + --bs-table-color-state: var(--bs-table-hover-color); + --bs-table-bg-state: var(--bs-table-hover-bg); +} + +.table-primary { + --bs-table-color: #000; + --bs-table-bg: rgb(206.6, 226, 254.6); + --bs-table-border-color: rgb(165.28, 180.8, 203.68); + --bs-table-striped-bg: rgb(196.27, 214.7, 241.87); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(185.94, 203.4, 229.14); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(191.105, 209.05, 235.505); + --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: rgb(225.6, 227.4, 229); + --bs-table-border-color: rgb(180.48, 181.92, 183.2); + --bs-table-striped-bg: rgb(214.32, 216.03, 217.55); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(203.04, 204.66, 206.1); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(208.68, 210.345, 211.825); + --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: rgb(209, 231, 220.8); + --bs-table-border-color: rgb(167.2, 184.8, 176.64); + --bs-table-striped-bg: rgb(198.55, 219.45, 209.76); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(188.1, 207.9, 198.72); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(193.325, 213.675, 204.24); + --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: rgb(206.6, 244.4, 252); + --bs-table-border-color: rgb(165.28, 195.52, 201.6); + --bs-table-striped-bg: rgb(196.27, 232.18, 239.4); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(185.94, 219.96, 226.8); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(191.105, 226.07, 233.1); + --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: rgb(255, 242.6, 205.4); + --bs-table-border-color: rgb(204, 194.08, 164.32); + --bs-table-striped-bg: rgb(242.25, 230.47, 195.13); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(229.5, 218.34, 184.86); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(235.875, 224.405, 189.995); + --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: rgb(248, 214.6, 217.8); + --bs-table-border-color: rgb(198.4, 171.68, 174.24); + --bs-table-striped-bg: rgb(235.6, 203.87, 206.91); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(223.2, 193.14, 196.02); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(229.4, 198.505, 201.465); + --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: rgb(198.4, 199.2, 200); + --bs-table-striped-bg: rgb(235.6, 236.55, 237.5); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(223.2, 224.1, 225); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(229.4, 230.325, 231.25); + --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: rgb(77.4, 80.6, 83.8); + --bs-table-striped-bg: rgb(44.1, 47.9, 51.7); + --bs-table-striped-color: #fff; + --bs-table-active-bg: rgb(55.2, 58.8, 62.4); + --bs-table-active-color: #fff; + --bs-table-hover-bg: rgb(49.65, 53.35, 57.05); + --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: 0.5rem; +} + +.col-form-label { + padding-top: calc(0.375rem + var(--bs-border-width)); + padding-bottom: calc(0.375rem + var(--bs-border-width)); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + var(--bs-border-width)); + padding-bottom: calc(0.5rem + var(--bs-border-width)); + font-size: 1.25rem; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + var(--bs-border-width)); + padding-bottom: calc(0.25rem + var(--bs-border-width)); + font-size: 0.875rem; +} + +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-secondary-color); +} + +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.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); + box-shadow: var(--bs-box-shadow-inset); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} +.form-control[type=file] { + overflow: hidden; +} +.form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control:focus { + color: var(--bs-body-color); + background-color: var(--bs-body-bg); + border-color: rgb(134, 182.5, 254); + outline: 0; + box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-control::-webkit-date-and-time-value { + min-width: 85px; + height: 1.5em; + margin: 0; +} +.form-control::-webkit-datetime-edit { + display: block; + padding: 0; +} +.form-control::-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::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + margin-inline-end: 0.75rem; + color: var(--bs-body-color); + background-color: var(--bs-tertiary-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: var(--bs-border-width); + border-radius: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control::file-selector-button { + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: var(--bs-secondary-bg); +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: var(--bs-body-color); + background-color: transparent; + border: solid transparent; + border-width: var(--bs-border-width) 0; +} +.form-control-plaintext:focus { + outline: 0; +} +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-left: 0; + padding-right: 0; +} + +.form-control-sm { + min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); +} +.form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + margin-inline-end: 0.5rem; +} + +.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); +} +.form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + margin-inline-end: 1rem; +} + +textarea.form-control { + min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); +} +textarea.form-control-sm { + min-height: calc(1.5em + 0.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 + 0.75rem + calc(var(--bs-border-width) * 2)); + padding: 0.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 + 0.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: 0.375rem 0.75rem 0.375rem 2.25rem; + 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: left 0.75rem center; + background-size: 16px 12px; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + box-shadow: var(--bs-box-shadow-inset); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-select { + transition: none; + } +} +.form-select:focus { + border-color: rgb(134, 182.5, 254); + outline: 0; + box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-select[multiple], .form-select[size]:not([size="1"]) { + padding-left: 0.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: 0.25rem; + padding-bottom: 0.25rem; + padding-right: 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); +} + +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-right: 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-right: 1.5em; + margin-bottom: 0.125rem; +} +.form-check .form-check-input { + float: right; + margin-right: -1.5em; +} + +.form-check-reverse { + padding-left: 1.5em; + padding-right: 0; + text-align: left; +} +.form-check-reverse .form-check-input { + float: left; + margin-left: -1.5em; + margin-right: 0; +} + +.form-check-input { + --bs-form-check-bg: var(--bs-body-bg); + flex-shrink: 0; + width: 1em; + height: 1em; + margin-top: 0.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; + print-color-adjust: exact; +} +.form-check-input[type=checkbox] { + border-radius: 0.25em; +} +.form-check-input[type=radio] { + border-radius: 50%; +} +.form-check-input:active { + filter: brightness(90%); +} +.form-check-input:focus { + border-color: rgb(134, 182.5, 254); + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.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: 0.5; +} +.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + cursor: default; + opacity: 0.5; +} + +.form-switch { + padding-right: 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-right: -2.5em; + background-image: var(--bs-form-switch-bg); + background-position: right center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-switch .form-check-input { + transition: none; + } +} +.form-switch .form-check-input:focus { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28134, 182.5, 254%29'/%3e%3c/svg%3e"); +} +.form-switch .form-check-input:checked { + background-position: left 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-left: 2.5em; + padding-right: 0; +} +.form-switch.form-check-reverse .form-check-input { + margin-left: -2.5em; + margin-right: 0; +} + +.form-check-inline { + display: inline-block; + margin-left: 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: 0.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 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range::-moz-focus-outer { + border: 0; +} +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + -webkit-appearance: none; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} +.form-range::-webkit-slider-thumb:active { + background-color: rgb(182.4, 211.5, 254.4); +} +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem; + box-shadow: var(--bs-box-shadow-inset); +} +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + -moz-appearance: none; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} +.form-range::-moz-range-thumb:active { + background-color: rgb(182.4, 211.5, 254.4); +} +.form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem; + box-shadow: var(--bs-box-shadow-inset); +} +.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; + right: 0; + z-index: 2; + max-width: 100%; + height: 100%; + padding: 1rem 0.75rem; + overflow: hidden; + color: rgba(var(--bs-body-color-rgb), 0.65); + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + pointer-events: none; + border: var(--bs-border-width) solid transparent; + transform-origin: 100% 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-floating > label { + transition: none; + } +} +.form-floating > .form-control, +.form-floating > .form-control-plaintext { + padding: 1rem 0.75rem; +} +.form-floating > .form-control::-moz-placeholder, .form-floating > .form-control-plaintext::-moz-placeholder { + color: transparent; +} +.form-floating > .form-control::placeholder, +.form-floating > .form-control-plaintext::placeholder { + color: transparent; +} +.form-floating > .form-control:not(:-moz-placeholder), .form-floating > .form-control-plaintext:not(:-moz-placeholder) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), +.form-floating > .form-control-plaintext:focus, +.form-floating > .form-control-plaintext:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:-webkit-autofill, +.form-floating > .form-control-plaintext:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; + padding-right: 0.75rem; +} +.form-floating > .form-control:not(:-moz-placeholder) ~ label { + transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); +} +.form-floating > .form-control:focus ~ label, +.form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .form-control-plaintext ~ label, +.form-floating > .form-select ~ label { + transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); +} +.form-floating > .form-control:-webkit-autofill ~ label { + transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); +} +.form-floating > textarea:not(:-moz-placeholder) ~ 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 > textarea:focus ~ label::after, +.form-floating > textarea:not(: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 > textarea:disabled ~ label::after { + background-color: var(--bs-secondary-bg); +} +.form-floating > .form-control-plaintext ~ label { + border-width: var(--bs-border-width) 0; +} +.form-floating > :disabled ~ label, +.form-floating > .form-control:disabled ~ label { + color: #6c757d; +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .form-select, +.input-group > .form-floating { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} +.input-group > .form-control:focus, +.input-group > .form-select:focus, +.input-group > .form-floating:focus-within { + z-index: 5; +} +.input-group .btn { + position: relative; + z-index: 2; +} +.input-group .btn:focus { + z-index: 5; +} + +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.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 > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); +} + +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); +} + +.input-group-lg > .form-select, +.input-group-sm > .form-select { + padding-left: 3rem; +} + +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3), +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4), +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control, +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-right: calc(-1 * var(--bs-border-width)); + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > .form-floating:not(:first-child) > .form-control, +.input-group > .form-floating:not(:first-child) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-valid-color); +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: var(--bs-success); + border-radius: var(--bs-border-radius); +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: var(--bs-form-valid-border-color); + padding-left: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.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.1'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: left calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-left: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) left calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:valid, .form-select.is-valid { + border-color: var(--bs-form-valid-border-color); +} +.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%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.1'/%3e%3c/svg%3e"); + padding-left: 4.125rem; + background-position: left 0.75rem center, center left 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:valid:focus, .form-select.is-valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} + +.was-validated .form-control-color:valid, .form-control-color.is-valid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: var(--bs-form-valid-border-color); +} +.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: var(--bs-form-valid-color); +} +.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: var(--bs-form-valid-color); +} + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-right: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid, +.was-validated .input-group > .form-select:not(:focus):valid, +.input-group > .form-select:not(:focus).is-valid, +.was-validated .input-group > .form-floating:not(:focus-within):valid, +.input-group > .form-floating:not(:focus-within).is-valid { + z-index: 3; +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-invalid-color); +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: var(--bs-danger); + border-radius: var(--bs-border-radius); +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: var(--bs-form-invalid-border-color); + padding-left: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: left calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-left: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) left calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:invalid, .form-select.is-invalid { + border-color: var(--bs-form-invalid-border-color); +} +.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%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-left: 4.125rem; + background-position: left 0.75rem center, center left 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} + +.was-validated .form-control-color:invalid, .form-control-color.is-invalid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: var(--bs-form-invalid-border-color); +} +.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: var(--bs-form-invalid-color); +} +.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: var(--bs-form-invalid-color); +} + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-right: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid, +.was-validated .input-group > .form-select:not(:focus):invalid, +.input-group > .form-select:not(:focus).is-invalid, +.was-validated .input-group > .form-floating:not(:focus-within):invalid, +.input-group > .form-floating:not(:focus-within).is-invalid { + z-index: 4; +} + +.btn { + --bs-btn-padding-x: 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); + box-shadow: var(--bs-btn-box-shadow); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); +} +.btn-check + .btn:hover { + color: var(--bs-btn-color); + background-color: var(--bs-btn-bg); + border-color: var(--bs-btn-border-color); +} +.btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-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-box-shadow), var(--bs-btn-focus-box-shadow); +} +.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show { + color: var(--bs-btn-active-color); + background-color: var(--bs-btn-active-bg); + border-color: var(--bs-btn-active-border-color); + box-shadow: var(--bs-btn-active-shadow); +} +.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible { + box-shadow: var(--bs-btn-active-shadow), var(--bs-btn-focus-box-shadow); +} +.btn-check:checked:focus-visible + .btn { + box-shadow: var(--bs-btn-active-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); + box-shadow: none; +} + +.btn-primary { + --bs-btn-color: #fff; + --bs-btn-bg: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: rgb(11.05, 93.5, 215.05); + --bs-btn-hover-border-color: rgb(10.4, 88, 202.4); + --bs-btn-focus-shadow-rgb: 49, 132, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: rgb(10.4, 88, 202.4); + --bs-btn-active-border-color: rgb(9.75, 82.5, 189.75); + --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: rgb(91.8, 99.45, 106.25); + --bs-btn-hover-border-color: rgb(86.4, 93.6, 100); + --bs-btn-focus-shadow-rgb: 130, 138, 145; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: rgb(86.4, 93.6, 100); + --bs-btn-active-border-color: rgb(81, 87.75, 93.75); + --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: rgb(21.25, 114.75, 71.4); + --bs-btn-hover-border-color: rgb(20, 108, 67.2); + --bs-btn-focus-shadow-rgb: 60, 153, 110; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: rgb(20, 108, 67.2); + --bs-btn-active-border-color: rgb(18.75, 101.25, 63); + --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: rgb(49.3, 209.95, 242.25); + --bs-btn-hover-border-color: rgb(37.2, 207.3, 241.5); + --bs-btn-focus-shadow-rgb: 11, 172, 204; + --bs-btn-active-color: #000; + --bs-btn-active-bg: rgb(61.4, 212.6, 243); + --bs-btn-active-border-color: rgb(37.2, 207.3, 241.5); + --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: rgb(255, 202.3, 44.2); + --bs-btn-hover-border-color: rgb(255, 199.2, 31.8); + --bs-btn-focus-shadow-rgb: 217, 164, 6; + --bs-btn-active-color: #000; + --bs-btn-active-bg: rgb(255, 205.4, 56.6); + --bs-btn-active-border-color: rgb(255, 199.2, 31.8); + --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: rgb(187, 45.05, 58.65); + --bs-btn-hover-border-color: rgb(176, 42.4, 55.2); + --bs-btn-focus-shadow-rgb: 225, 83, 97; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: rgb(176, 42.4, 55.2); + --bs-btn-active-border-color: rgb(165, 39.75, 51.75); + --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: rgb(210.8, 211.65, 212.5); + --bs-btn-hover-border-color: rgb(198.4, 199.2, 200); + --bs-btn-focus-shadow-rgb: 211, 212, 213; + --bs-btn-active-color: #000; + --bs-btn-active-bg: rgb(198.4, 199.2, 200); + --bs-btn-active-border-color: rgb(186, 186.75, 187.5); + --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: rgb(66.3, 69.7, 73.1); + --bs-btn-hover-border-color: rgb(55.2, 58.8, 62.4); + --bs-btn-focus-shadow-rgb: 66, 70, 73; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: rgb(77.4, 80.6, 83.8); + --bs-btn-active-border-color: rgb(55.2, 58.8, 62.4); + --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-lg, .btn-group-lg > .btn { + --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-sm, .btn-group-sm > .btn { + --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 0.15s linear; +} +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} +.collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing.collapse-horizontal { + transition: none; + } +} + +.dropup, +.dropend, +.dropdown, +.dropstart, +.dropup-center, +.dropdown-center { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-left: 0.3em solid transparent; + border-bottom: 0; + border-right: 0.3em solid transparent; +} +.dropdown-toggle:empty::after { + margin-right: 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: var(--bs-box-shadow); + --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: right; + 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); + box-shadow: var(--bs-dropdown-box-shadow); +} +.dropdown-menu[data-bs-popper] { + top: 100%; + right: 0; + margin-top: var(--bs-dropdown-spacer); +} + +.dropdown-menu-start { + --bs-position: start; +} +.dropdown-menu-start[data-bs-popper] { + left: auto; + right: 0; +} + +.dropdown-menu-end { + --bs-position: end; +} +.dropdown-menu-end[data-bs-popper] { + left: 0; + right: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; + } + .dropdown-menu-sm-start[data-bs-popper] { + left: auto; + right: 0; + } + .dropdown-menu-sm-end { + --bs-position: end; + } + .dropdown-menu-sm-end[data-bs-popper] { + left: 0; + right: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + } + .dropdown-menu-md-start[data-bs-popper] { + left: auto; + right: 0; + } + .dropdown-menu-md-end { + --bs-position: end; + } + .dropdown-menu-md-end[data-bs-popper] { + left: 0; + right: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + } + .dropdown-menu-lg-start[data-bs-popper] { + left: auto; + right: 0; + } + .dropdown-menu-lg-end { + --bs-position: end; + } + .dropdown-menu-lg-end[data-bs-popper] { + left: 0; + right: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + } + .dropdown-menu-xl-start[data-bs-popper] { + left: auto; + right: 0; + } + .dropdown-menu-xl-end { + --bs-position: end; + } + .dropdown-menu-xl-end[data-bs-popper] { + left: 0; + right: auto; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + } + .dropdown-menu-xxl-start[data-bs-popper] { + left: auto; + right: 0; + } + .dropdown-menu-xxl-end { + --bs-position: end; + } + .dropdown-menu-xxl-end[data-bs-popper] { + left: 0; + right: 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-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-left: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-right: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-right: 0; +} + +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + left: auto; + right: 100%; + margin-top: 0; + margin-right: var(--bs-dropdown-spacer); +} +.dropend .dropdown-toggle::after { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-left: 0; + border-bottom: 0.3em solid transparent; + border-right: 0.3em solid; +} +.dropend .dropdown-toggle:empty::after { + margin-right: 0; +} +.dropend .dropdown-toggle::after { + vertical-align: 0; +} + +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + left: 100%; + right: auto; + margin-top: 0; + margin-left: var(--bs-dropdown-spacer); +} +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropstart .dropdown-toggle::after { + display: none; +} +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-left: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropstart .dropdown-toggle:empty::after { + margin-right: 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:hover, .dropdown-item:focus { + color: var(--bs-dropdown-link-hover-color); + background-color: var(--bs-dropdown-link-hover-bg); +} +.dropdown-item.active, .dropdown-item:active { + color: var(--bs-dropdown-link-active-color); + text-decoration: none; + background-color: var(--bs-dropdown-link-active-bg); +} +.dropdown-item.disabled, .dropdown-item:disabled { + color: var(--bs-dropdown-link-disabled-color); + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); + margin-bottom: 0; + font-size: 0.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 > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} + +.btn-group { + border-radius: var(--bs-border-radius); +} +.btn-group > :not(.btn-check:first-child) + .btn, +.btn-group > .btn-group:not(:first-child) { + margin-right: calc(-1 * var(--bs-border-width)); +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn.dropdown-toggle-split:first-child, +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group > .btn:nth-child(n+3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.dropdown-toggle-split { + padding-left: 0.5625rem; + padding-right: 0.5625rem; +} +.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { + margin-right: 0; +} +.dropstart .dropdown-toggle-split::before { + margin-left: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-left: 0.375rem; + padding-right: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.btn-group.show .dropdown-toggle { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn-group.show .dropdown-toggle.btn-link { + box-shadow: none; +} + +.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:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: calc(-1 * var(--bs-border-width)); +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group-vertical > .btn:nth-child(n+3), +.btn-group-vertical > :not(.btn-check) + .btn, +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-right-radius: 0; + border-top-left-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-right: 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: none; + border: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; + } +} +.nav-link:hover, .nav-link:focus { + color: var(--bs-nav-link-hover-color); +} +.nav-link:focus-visible { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.nav-link.disabled, .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default; +} + +.nav-tabs { + --bs-nav-tabs-border-width: var(--bs-border-width); + --bs-nav-tabs-border-color: var(--bs-border-color); + --bs-nav-tabs-border-radius: var(--bs-border-radius); + --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color); + --bs-nav-tabs-link-active-color: var(--bs-emphasis-color); + --bs-nav-tabs-link-active-bg: var(--bs-body-bg); + --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg); + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); +} +.nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + border: var(--bs-nav-tabs-border-width) solid transparent; + border-top-right-radius: var(--bs-nav-tabs-border-radius); + border-top-left-radius: var(--bs-nav-tabs-border-radius); +} +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color); +} +.nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); + border-top-right-radius: 0; + border-top-left-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-left: 0; + padding-right: 0; + border-bottom: var(--bs-nav-underline-border-width) solid transparent; +} +.nav-underline .nav-link:hover, .nav-underline .nav-link:focus { + border-bottom-color: currentcolor; +} +.nav-underline .nav-link.active, +.nav-underline .show > .nav-link { + font-weight: 700; + color: var(--bs-nav-underline-link-active-color); + border-bottom-color: currentcolor; +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-grow: 1; + flex-basis: 0; + 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: 1rem; + --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-sm, +.navbar > .container-md, +.navbar > .container-lg, +.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-left: 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:hover, .navbar-brand:focus { + 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-right: 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: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-navbar-color); +} +.navbar-text a, +.navbar-text a:hover, +.navbar-text a:focus { + color: var(--bs-navbar-active-color); +} + +.navbar-collapse { + flex-grow: 1; + flex-basis: 100%; + 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-left: var(--bs-navbar-nav-link-padding-x); + padding-right: 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; + box-shadow: none; + 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-left: var(--bs-navbar-nav-link-padding-x); + padding-right: 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; + box-shadow: none; + 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-left: var(--bs-navbar-nav-link-padding-x); + padding-right: 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; + box-shadow: none; + 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-left: var(--bs-navbar-nav-link-padding-x); + padding-right: 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; + box-shadow: none; + 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-left: var(--bs-navbar-nav-link-padding-x); + padding-right: 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; + box-shadow: none; + 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-left: var(--bs-navbar-nav-link-padding-x); + padding-right: 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; + box-shadow: none; + 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); + box-shadow: var(--bs-card-box-shadow); +} +.card > hr { + margin-left: 0; + margin-right: 0; +} +.card > .list-group { + border-top: inherit; + border-bottom: inherit; +} +.card > .list-group:first-child { + border-top-width: 0; + border-top-right-radius: var(--bs-card-inner-border-radius); + border-top-left-radius: var(--bs-card-inner-border-radius); +} +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-left-radius: var(--bs-card-inner-border-radius); + border-bottom-right-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(-0.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-right: 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-left: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-right: calc(-0.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-left: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); +} + +.card-img-overlay { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + padding: var(--bs-card-img-overlay-padding); + border-radius: var(--bs-card-inner-border-radius); +} + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; +} + +.card-img, +.card-img-top { + border-top-right-radius: var(--bs-card-inner-border-radius); + border-top-left-radius: var(--bs-card-inner-border-radius); +} + +.card-img, +.card-img-bottom { + border-bottom-left-radius: var(--bs-card-inner-border-radius); + border-bottom-right-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-right: 0; + border-right: 0; + } + .card-group > .card:not(:last-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:last-child) > .card-img-top, + .card-group > .card:not(:last-child) > .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:last-child) > .card-img-bottom, + .card-group > .card:not(:last-child) > .card-footer { + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) > .card-img-top, + .card-group > .card:not(:first-child) > .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:first-child) > .card-img-bottom, + .card-group > .card:not(:first-child) > .card-footer { + border-bottom-right-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='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%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='none' stroke='rgb%285.2, 44, 101.2%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + --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: right; + 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-right: 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; + 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-right-radius: var(--bs-accordion-border-radius); + border-top-left-radius: var(--bs-accordion-border-radius); +} +.accordion-item:first-of-type > .accordion-header .accordion-button { + border-top-right-radius: var(--bs-accordion-inner-border-radius); + border-top-left-radius: var(--bs-accordion-inner-border-radius); +} +.accordion-item:not(:first-of-type) { + border-top: 0; +} +.accordion-item:last-of-type { + border-bottom-left-radius: var(--bs-accordion-border-radius); + border-bottom-right-radius: var(--bs-accordion-border-radius); +} +.accordion-item:last-of-type > .accordion-header .accordion-button.collapsed { + border-bottom-left-radius: var(--bs-accordion-inner-border-radius); + border-bottom-right-radius: var(--bs-accordion-inner-border-radius); +} +.accordion-item:last-of-type > .accordion-collapse { + border-bottom-left-radius: var(--bs-accordion-border-radius); + border-bottom-right-radius: var(--bs-accordion-border-radius); +} + +.accordion-body { + padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); +} + +.accordion-flush > .accordion-item { + border-left: 0; + border-right: 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-collapse, +.accordion-flush > .accordion-item > .accordion-header .accordion-button, +.accordion-flush > .accordion-item > .accordion-header .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='rgb%28109.8, 168, 253.8%29'%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-.708'/%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='rgb%28109.8, 168, 253.8%29'%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-.708'/%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-right: var(--bs-breadcrumb-item-padding-x); +} +.breadcrumb-item + .breadcrumb-item::before { + float: right; + padding-left: 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-right: 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 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .page-link { + transition: none; + } +} +.page-link:hover { + z-index: 2; + color: var(--bs-pagination-hover-color); + background-color: var(--bs-pagination-hover-bg); + border-color: var(--bs-pagination-hover-border-color); +} +.page-link:focus { + z-index: 3; + color: var(--bs-pagination-focus-color); + background-color: var(--bs-pagination-focus-bg); + outline: 0; + box-shadow: var(--bs-pagination-focus-box-shadow); +} +.page-link.active, .active > .page-link { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color); +} +.page-link.disabled, .disabled > .page-link { + color: var(--bs-pagination-disabled-color); + pointer-events: none; + background-color: var(--bs-pagination-disabled-bg); + border-color: var(--bs-pagination-disabled-border-color); +} + +.page-item:not(:first-child) .page-link { + margin-right: calc(var(--bs-border-width) * -1); +} +.page-item .page-link { + border-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-left: 3rem; +} +.alert-dismissible .btn-close { + position: absolute; + top: 0; + left: 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: var(--bs-progress-height); + } +} +.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); + box-shadow: var(--bs-progress-box-shadow); +} + +.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, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: var(--bs-progress-height) var(--bs-progress-height); +} + +.progress-stacked > .progress { + overflow: visible; +} + +.progress-stacked > .progress > .progress-bar { + width: 100%; +} + +.progress-bar-animated { + animation: 1s linear infinite progress-bar-stripes; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none; + } +} + +.list-group { + --bs-list-group-color: var(--bs-body-color); + --bs-list-group-bg: var(--bs-body-bg); + --bs-list-group-border-color: var(--bs-border-color); + --bs-list-group-border-width: var(--bs-border-width); + --bs-list-group-border-radius: var(--bs-border-radius); + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 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-right: 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 { + 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-right-radius: inherit; + border-top-left-radius: inherit; +} +.list-group-item:last-child { + border-bottom-left-radius: inherit; + border-bottom-right-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-item-action { + width: 100%; + color: var(--bs-list-group-action-color); + text-align: inherit; +} +.list-group-item-action:not(.active):hover, .list-group-item-action:not(.active):focus { + z-index: 1; + color: var(--bs-list-group-action-hover-color); + text-decoration: none; + background-color: var(--bs-list-group-action-hover-bg); +} +.list-group-item-action:not(.active):active { + color: var(--bs-list-group-action-active-color); + background-color: var(--bs-list-group-action-active-bg); +} + +.list-group-horizontal { + flex-direction: row; +} +.list-group-horizontal > .list-group-item:first-child:not(:last-child) { + border-bottom-right-radius: var(--bs-list-group-border-radius); + border-top-left-radius: 0; +} +.list-group-horizontal > .list-group-item:last-child:not(:first-child) { + border-top-left-radius: var(--bs-list-group-border-radius); + border-bottom-right-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-right-width: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-right: calc(-1 * var(--bs-list-group-border-width)); + border-right-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-right-radius: var(--bs-list-group-border-radius); + border-top-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) { + border-top-left-radius: var(--bs-list-group-border-radius); + border-bottom-right-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-right-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-right: calc(-1 * var(--bs-list-group-border-width)); + border-right-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-right-radius: var(--bs-list-group-border-radius); + border-top-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) { + border-top-left-radius: var(--bs-list-group-border-radius); + border-bottom-right-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-right-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-right: calc(-1 * var(--bs-list-group-border-width)); + border-right-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-right-radius: var(--bs-list-group-border-radius); + border-top-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) { + border-top-left-radius: var(--bs-list-group-border-radius); + border-bottom-right-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-right-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-right: calc(-1 * var(--bs-list-group-border-width)); + border-right-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-right-radius: var(--bs-list-group-border-radius); + border-top-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) { + border-top-left-radius: var(--bs-list-group-border-radius); + border-bottom-right-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-right-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-right: calc(-1 * var(--bs-list-group-border-width)); + border-right-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-right-radius: var(--bs-list-group-border-radius); + border-top-left-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) { + border-top-left-radius: var(--bs-list-group-border-radius); + border-bottom-right-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-right-width: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-right: calc(-1 * var(--bs-list-group-border-width)); + border-right-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.414'/%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; + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: var(--bs-btn-close-color); + background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat; + filter: var(--bs-btn-close-filter); + border: 0; + border-radius: 0.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 { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +:root, +[data-bs-theme=light] { + --bs-btn-close-filter: ; +} + +[data-bs-theme=dark] { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +.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: -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-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); + border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); +} +.toast-header .btn-close { + margin-left: calc(-0.5 * var(--bs-toast-padding-x)); + margin-right: 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: var(--bs-body-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: var(--bs-box-shadow-sm); + --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; + right: 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 { + transform: translate(0, -50px); + transition: transform 0.3s ease-out; +} +@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); + box-shadow: var(--bs-modal-box-shadow); + outline: 0; +} + +.modal-backdrop { + --bs-backdrop-zindex: 1050; + --bs-backdrop-bg: #000; + --bs-backdrop-opacity: 0.5; + position: fixed; + top: 0; + right: 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; + padding: var(--bs-modal-header-padding); + border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); + border-top-right-radius: var(--bs-modal-inner-border-radius); + border-top-left-radius: var(--bs-modal-inner-border-radius); +} +.modal-header .btn-close { + padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); + margin-top: calc(-0.5 * var(--bs-modal-header-padding-y)); + margin-left: calc(-0.5 * var(--bs-modal-header-padding-x)); + margin-bottom: calc(-0.5 * var(--bs-modal-header-padding-y)); + margin-right: 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) * 0.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-left-radius: var(--bs-modal-inner-border-radius); + border-bottom-right-radius: var(--bs-modal-inner-border-radius); +} +.modal-footer > * { + margin: calc(var(--bs-modal-footer-gap) * 0.5); +} + +@media (min-width: 576px) { + .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: var(--bs-box-shadow); + } + .modal-dialog { + max-width: var(--bs-modal-width); + margin-left: auto; + margin-right: auto; + } + .modal-sm { + --bs-modal-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + --bs-modal-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + --bs-modal-width: 1140px; + } +} +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} +.modal-fullscreen .modal-header, +.modal-fullscreen .modal-footer { + border-radius: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} + +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-header, + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-md-down .modal-header, + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-header, + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-header, + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-header, + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } +} +.tooltip { + --bs-tooltip-zindex: 1080; + --bs-tooltip-max-width: 200px; + --bs-tooltip-padding-x: 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: right; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-tooltip-font-size); + word-wrap: break-word; + opacity: 0; +} +.tooltip.show { + opacity: var(--bs-tooltip-opacity); +} +.tooltip .tooltip-arrow { + display: block; + width: var(--bs-tooltip-arrow-width); + height: var(--bs-tooltip-arrow-height); +} +.tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: calc(-1 * var(--bs-tooltip-arrow-height)); +} +.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--bs-tooltip-bg); +} +.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--bs-tooltip-bg); +} +.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: calc(-1 * var(--bs-tooltip-arrow-height)); +} +.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg); +} +.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.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: var(--bs-box-shadow); + --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: right; + 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); + box-shadow: var(--bs-popover-box-shadow); +} +.popover .popover-arrow { + display: block; + width: var(--bs-popover-arrow-width); + height: var(--bs-popover-arrow-height); +} +.popover .popover-arrow::before, .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; + border-width: 0; +} + +.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border); +} +.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg); +} +.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border); +} +.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg); +} +.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border); +} +.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg); +} +.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + right: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-right: calc(-0.5 * var(--bs-popover-arrow-width)); + content: ""; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); +} +.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border); +} +.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg); +} +.popover-header { + padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); + margin-bottom: 0; + font-size: var(--bs-popover-header-font-size); + color: var(--bs-popover-header-color); + background-color: var(--bs-popover-header-bg); + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-top-right-radius: var(--bs-popover-inner-border-radius); + border-top-left-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: right; + width: 100%; + margin-left: -100%; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-start), +.active.carousel-item-end { + transform: translateX(-100%); +} + +.carousel-item-prev:not(.carousel-item-end), +.active.carousel-item-start { + transform: translateX(100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-start, +.carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; +} +.carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-start, + .carousel-fade .active.carousel-item-end { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + filter: var(--bs-carousel-control-icon-filter); + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + right: 0; +} + +.carousel-control-next { + left: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='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-.708'/%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='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 0'/%3e%3c/svg%3e"); +} + +.carousel-indicators { + position: absolute; + left: 0; + bottom: 0; + right: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-left: 15%; + margin-bottom: 1rem; + margin-right: 15%; +} +.carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-left: 3px; + margin-right: 3px; + text-indent: -999px; + cursor: pointer; + background-color: var(--bs-carousel-indicator-active-bg); + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-indicators [data-bs-target] { + transition: none; + } +} +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + left: 15%; + bottom: 1.25rem; + right: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: var(--bs-carousel-caption-color); + text-align: center; +} + +.carousel-dark { + --bs-carousel-indicator-active-bg: #000; + --bs-carousel-caption-color: #000; + --bs-carousel-control-icon-filter: invert(1) grayscale(100); +} + +:root, +[data-bs-theme=light] { + --bs-carousel-indicator-active-bg: #fff; + --bs-carousel-caption-color: #fff; + --bs-carousel-control-icon-filter: ; +} + +[data-bs-theme=dark] { + --bs-carousel-indicator-active-bg: #000; + --bs-carousel-caption-color: #000; + --bs-carousel-control-icon-filter: invert(1) grayscale(100); +} + +.spinner-grow, +.spinner-border { + display: inline-block; + flex-shrink: 0; + 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-left-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-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { + --bs-offcanvas-zindex: 1045; + --bs-offcanvas-width: 400px; + --bs-offcanvas-height: 30vh; + --bs-offcanvas-padding-x: 1rem; + --bs-offcanvas-padding-y: 1rem; + --bs-offcanvas-color: var(--bs-body-color); + --bs-offcanvas-bg: var(--bs-body-bg); + --bs-offcanvas-border-width: var(--bs-border-width); + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm); + --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; + box-shadow: var(--bs-offcanvas-box-shadow); + 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; + 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-end { + 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-top { + top: 0; + left: 0; + right: 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 { + left: 0; + right: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { + transform: none; + } + .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { + visibility: visible; + } +} +@media (min-width: 576px) { + .offcanvas-sm { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-sm .offcanvas-header { + display: none; + } + .offcanvas-sm .offcanvas-body { + display: flex; + 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; + box-shadow: var(--bs-offcanvas-box-shadow); + 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; + 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-end { + 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-top { + top: 0; + left: 0; + right: 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 { + left: 0; + right: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { + transform: none; + } + .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { + visibility: visible; + } +} +@media (min-width: 768px) { + .offcanvas-md { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-md .offcanvas-header { + display: none; + } + .offcanvas-md .offcanvas-body { + display: flex; + 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; + box-shadow: var(--bs-offcanvas-box-shadow); + 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; + 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-end { + 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-top { + top: 0; + left: 0; + right: 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 { + left: 0; + right: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { + transform: none; + } + .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { + visibility: visible; + } +} +@media (min-width: 992px) { + .offcanvas-lg { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-lg .offcanvas-header { + display: none; + } + .offcanvas-lg .offcanvas-body { + display: flex; + 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; + box-shadow: var(--bs-offcanvas-box-shadow); + 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; + 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-end { + 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-top { + top: 0; + left: 0; + right: 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 { + left: 0; + right: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { + transform: none; + } + .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { + visibility: visible; + } +} +@media (min-width: 1200px) { + .offcanvas-xl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xl .offcanvas-header { + display: none; + } + .offcanvas-xl .offcanvas-body { + display: flex; + 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; + box-shadow: var(--bs-offcanvas-box-shadow); + 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; + 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-end { + 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-top { + top: 0; + left: 0; + right: 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 { + left: 0; + right: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { + transform: none; + } + .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { + visibility: visible; + } +} +@media (min-width: 1400px) { + .offcanvas-xxl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xxl .offcanvas-header { + display: none; + } + .offcanvas-xxl .offcanvas-body { + display: flex; + 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; + box-shadow: var(--bs-offcanvas-box-shadow); + transition: var(--bs-offcanvas-transition); +} +@media (prefers-reduced-motion: reduce) { + .offcanvas { + transition: none; + } +} +.offcanvas.offcanvas-start { + 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-end { + 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-top { + top: 0; + left: 0; + right: 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 { + left: 0; + right: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); +} +.offcanvas.showing, .offcanvas.show:not(.hiding) { + transform: none; +} +.offcanvas.showing, .offcanvas.hiding, .offcanvas.show { + visibility: visible; +} + +.offcanvas-backdrop { + position: fixed; + top: 0; + right: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} +.offcanvas-backdrop.fade { + opacity: 0; +} +.offcanvas-backdrop.show { + opacity: 0.5; +} + +.offcanvas-header { + display: flex; + align-items: center; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); +} +.offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); + margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y)); + margin-left: calc(-0.5 * var(--bs-offcanvas-padding-x)); + margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y)); + margin-right: auto; +} + +.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: 0.5; +} +.placeholder.btn::before { + display: inline-block; + content: ""; +} + +.placeholder-xs { + min-height: 0.6em; +} + +.placeholder-sm { + min-height: 0.8em; +} + +.placeholder-lg { + min-height: 1.2em; +} + +.placeholder-glow .placeholder { + animation: placeholder-glow 2s ease-in-out infinite; +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.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; + text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-primary:hover, .link-primary:focus { + color: RGBA(10, 88, 202, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-secondary:hover, .link-secondary:focus { + color: RGBA(86, 94, 100, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-success:hover, .link-success:focus { + color: RGBA(20, 108, 67, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-info:hover, .link-info:focus { + color: RGBA(61, 213, 243, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-warning:hover, .link-warning:focus { + color: RGBA(255, 205, 57, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-danger:hover, .link-danger:focus { + color: RGBA(176, 42, 55, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-light:hover, .link-light:focus { + color: RGBA(249, 250, 251, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-dark:hover, .link-dark:focus { + color: RGBA(26, 30, 33, var(--bs-link-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; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-body-emphasis:hover, .link-body-emphasis:focus { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; +} + +.focus-ring:focus { + outline: 0; + box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color); +} + +.icon-link { + display: inline-flex; + gap: 0.375rem; + align-items: center; + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); + text-underline-offset: 0.25em; + backface-visibility: hidden; +} +.icon-link > .bi { + flex-shrink: 0; + width: 1em; + height: 1em; + fill: currentcolor; + transition: 0.2s ease-in-out transform; +} +@media (prefers-reduced-motion: reduce) { + .icon-link > .bi { + transition: none; + } +} + +.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi { + transform: var(--bs-icon-link-transform, translate3d(-0.25em, 0, 0)); +} + +.ratio { + position: relative; + width: 100%; +} +.ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} +.ratio > * { + position: absolute; + top: 0; + right: 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; + left: 0; + right: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + left: 0; + bottom: 0; + right: 0; + z-index: 1030; +} + +.sticky-top { + position: sticky; + top: 0; + z-index: 1020; +} + +.sticky-bottom { + position: sticky; + bottom: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .sticky-sm-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-sm-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 768px) { + .sticky-md-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-md-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 992px) { + .sticky-lg-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-lg-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1200px) { + .sticky-xl-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xl-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1400px) { + .sticky-xxl-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xxl-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +.hstack { + display: flex; + 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:not(caption), +.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) { + position: absolute !important; +} +.visually-hidden *, +.visually-hidden-focusable:not(:focus):not(:focus-within) * { + overflow: hidden !important; +} + +.stretched-link::after { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 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: 0.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: right !important; +} + +.float-end { + float: left !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: 0.25 !important; +} + +.opacity-50 { + opacity: 0.5 !important; +} + +.opacity-75 { + opacity: 0.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: var(--bs-box-shadow) !important; +} + +.shadow-sm { + box-shadow: var(--bs-box-shadow-sm) !important; +} + +.shadow-lg { + box-shadow: var(--bs-box-shadow-lg) !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: 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 { + right: 0 !important; +} + +.start-50 { + right: 50% !important; +} + +.start-100 { + right: 100% !important; +} + +.end-0 { + left: 0 !important; +} + +.end-50 { + left: 50% !important; +} + +.end-100 { + left: 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-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-end-0 { + border-left: 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-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-start-0 { + border-right: 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: 0.25rem !important; +} + +.m-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; +} + +.mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; +} + +.mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; +} + +.mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; +} + +.mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; +} + +.mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; +} + +.mx-auto { + margin-left: auto !important; + margin-right: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.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-left: 0 !important; +} + +.me-1 { + margin-left: 0.25rem !important; +} + +.me-2 { + margin-left: 0.5rem !important; +} + +.me-3 { + margin-left: 1rem !important; +} + +.me-4 { + margin-left: 1.5rem !important; +} + +.me-5 { + margin-left: 3rem !important; +} + +.me-auto { + margin-left: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.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-right: 0 !important; +} + +.ms-1 { + margin-right: 0.25rem !important; +} + +.ms-2 { + margin-right: 0.5rem !important; +} + +.ms-3 { + margin-right: 1rem !important; +} + +.ms-4 { + margin-right: 1.5rem !important; +} + +.ms-5 { + margin-right: 3rem !important; +} + +.ms-auto { + margin-right: auto !important; +} + +.m-n1 { + margin: -0.25rem !important; +} + +.m-n2 { + margin: -0.5rem !important; +} + +.m-n3 { + margin: -1rem !important; +} + +.m-n4 { + margin: -1.5rem !important; +} + +.m-n5 { + margin: -3rem !important; +} + +.mx-n1 { + margin-left: -0.25rem !important; + margin-right: -0.25rem !important; +} + +.mx-n2 { + margin-left: -0.5rem !important; + margin-right: -0.5rem !important; +} + +.mx-n3 { + margin-left: -1rem !important; + margin-right: -1rem !important; +} + +.mx-n4 { + margin-left: -1.5rem !important; + margin-right: -1.5rem !important; +} + +.mx-n5 { + margin-left: -3rem !important; + margin-right: -3rem !important; +} + +.my-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; +} + +.my-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; +} + +.my-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; +} + +.my-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; +} + +.my-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; +} + +.mt-n1 { + margin-top: -0.25rem !important; +} + +.mt-n2 { + margin-top: -0.5rem !important; +} + +.mt-n3 { + margin-top: -1rem !important; +} + +.mt-n4 { + margin-top: -1.5rem !important; +} + +.mt-n5 { + margin-top: -3rem !important; +} + +.me-n1 { + margin-left: -0.25rem !important; +} + +.me-n2 { + margin-left: -0.5rem !important; +} + +.me-n3 { + margin-left: -1rem !important; +} + +.me-n4 { + margin-left: -1.5rem !important; +} + +.me-n5 { + margin-left: -3rem !important; +} + +.mb-n1 { + margin-bottom: -0.25rem !important; +} + +.mb-n2 { + margin-bottom: -0.5rem !important; +} + +.mb-n3 { + margin-bottom: -1rem !important; +} + +.mb-n4 { + margin-bottom: -1.5rem !important; +} + +.mb-n5 { + margin-bottom: -3rem !important; +} + +.ms-n1 { + margin-right: -0.25rem !important; +} + +.ms-n2 { + margin-right: -0.5rem !important; +} + +.ms-n3 { + margin-right: -1rem !important; +} + +.ms-n4 { + margin-right: -1.5rem !important; +} + +.ms-n5 { + margin-right: -3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +.px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; +} + +.px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; +} + +.px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; +} + +.px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; +} + +.px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-left: 0 !important; +} + +.pe-1 { + padding-left: 0.25rem !important; +} + +.pe-2 { + padding-left: 0.5rem !important; +} + +.pe-3 { + padding-left: 1rem !important; +} + +.pe-4 { + padding-left: 1.5rem !important; +} + +.pe-5 { + padding-left: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-right: 0 !important; +} + +.ps-1 { + padding-right: 0.25rem !important; +} + +.ps-2 { + padding-right: 0.5rem !important; +} + +.ps-3 { + padding-right: 1rem !important; +} + +.ps-4 { + padding-right: 1.5rem !important; +} + +.ps-5 { + padding-right: 3rem !important; +} + +.gap-0 { + gap: 0 !important; +} + +.gap-1 { + gap: 0.25rem !important; +} + +.gap-2 { + gap: 0.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: 0.25rem !important; +} + +.row-gap-2 { + row-gap: 0.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: 0.25rem !important; +} + +.column-gap-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.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 + 0.9vw) !important; +} + +.fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; +} + +.fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; +} + +.fs-5 { + font-size: 1.25rem !important; +} + +.fs-6 { + font-size: 1rem !important; +} + +.fs-7 { + font-size: 0.875rem !important; +} + +.fs-8 { + font-size: 0.75rem !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: right !important; +} + +.text-end { + text-align: left !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-primary { + --bs-text-opacity: 1; + color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important; +} + +.text-secondary { + --bs-text-opacity: 1; + color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important; +} + +.text-success { + --bs-text-opacity: 1; + color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important; +} + +.text-info { + --bs-text-opacity: 1; + color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important; +} + +.text-warning { + --bs-text-opacity: 1; + color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important; +} + +.text-danger { + --bs-text-opacity: 1; + color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important; +} + +.text-light { + --bs-text-opacity: 1; + color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important; +} + +.text-dark { + --bs-text-opacity: 1; + color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important; +} + +.text-black { + --bs-text-opacity: 1; + color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important; +} + +.text-white { + --bs-text-opacity: 1; + color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; +} + +.text-body { + --bs-text-opacity: 1; + color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important; +} + +.text-muted { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; +} + +.text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-body-secondary { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; +} + +.text-body-tertiary { + --bs-text-opacity: 1; + color: var(--bs-tertiary-color) !important; +} + +.text-body-emphasis { + --bs-text-opacity: 1; + color: var(--bs-emphasis-color) !important; +} + +.text-reset { + --bs-text-opacity: 1; + color: inherit !important; +} + +.text-opacity-25 { + --bs-text-opacity: 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; + text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-secondary { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-success { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-info { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-warning { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-danger { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-light { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-dark { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important; +} + +.link-underline-opacity-0 { + --bs-link-underline-opacity: 0; +} + +.link-underline-opacity-0-hover:hover { + --bs-link-underline-opacity: 0; +} + +.link-underline-opacity-10 { + --bs-link-underline-opacity: 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-right-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.rounded-top-0 { + border-top-right-radius: 0 !important; + border-top-left-radius: 0 !important; +} + +.rounded-top-1 { + border-top-right-radius: var(--bs-border-radius-sm) !important; + border-top-left-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-top-2 { + border-top-right-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.rounded-top-3 { + border-top-right-radius: var(--bs-border-radius-lg) !important; + border-top-left-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-top-4 { + border-top-right-radius: var(--bs-border-radius-xl) !important; + border-top-left-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-top-5 { + border-top-right-radius: var(--bs-border-radius-xxl) !important; + border-top-left-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-top-circle { + border-top-right-radius: 50% !important; + border-top-left-radius: 50% !important; +} + +.rounded-top-pill { + border-top-right-radius: var(--bs-border-radius-pill) !important; + border-top-left-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-end { + border-top-left-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.rounded-end-0 { + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} + +.rounded-end-1 { + border-top-left-radius: var(--bs-border-radius-sm) !important; + border-bottom-left-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-end-2 { + border-top-left-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.rounded-end-3 { + border-top-left-radius: var(--bs-border-radius-lg) !important; + border-bottom-left-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-end-4 { + border-top-left-radius: var(--bs-border-radius-xl) !important; + border-bottom-left-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-end-5 { + border-top-left-radius: var(--bs-border-radius-xxl) !important; + border-bottom-left-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-end-circle { + border-top-left-radius: 50% !important; + border-bottom-left-radius: 50% !important; +} + +.rounded-end-pill { + border-top-left-radius: var(--bs-border-radius-pill) !important; + border-bottom-left-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-bottom { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.rounded-bottom-0 { + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +.rounded-bottom-1 { + border-bottom-left-radius: var(--bs-border-radius-sm) !important; + border-bottom-right-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-bottom-2 { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.rounded-bottom-3 { + border-bottom-left-radius: var(--bs-border-radius-lg) !important; + border-bottom-right-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-bottom-4 { + border-bottom-left-radius: var(--bs-border-radius-xl) !important; + border-bottom-right-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-bottom-5 { + border-bottom-left-radius: var(--bs-border-radius-xxl) !important; + border-bottom-right-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-bottom-circle { + border-bottom-left-radius: 50% !important; + border-bottom-right-radius: 50% !important; +} + +.rounded-bottom-pill { + border-bottom-left-radius: var(--bs-border-radius-pill) !important; + border-bottom-right-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-start { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.rounded-start-0 { + border-bottom-right-radius: 0 !important; + border-top-right-radius: 0 !important; +} + +.rounded-start-1 { + border-bottom-right-radius: var(--bs-border-radius-sm) !important; + border-top-right-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-start-2 { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.rounded-start-3 { + border-bottom-right-radius: var(--bs-border-radius-lg) !important; + border-top-right-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-start-4 { + border-bottom-right-radius: var(--bs-border-radius-xl) !important; + border-top-right-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-start-5 { + border-bottom-right-radius: var(--bs-border-radius-xxl) !important; + border-top-right-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-start-circle { + border-bottom-right-radius: 50% !important; + border-top-right-radius: 50% !important; +} + +.rounded-start-pill { + border-bottom-right-radius: var(--bs-border-radius-pill) !important; + border-top-right-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: right !important; + } + .float-sm-end { + float: left !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: 0.25rem !important; + } + .m-sm-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + .mx-sm-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-sm-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-sm-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-sm-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-sm-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-sm-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.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-left: 0 !important; + } + .me-sm-1 { + margin-left: 0.25rem !important; + } + .me-sm-2 { + margin-left: 0.5rem !important; + } + .me-sm-3 { + margin-left: 1rem !important; + } + .me-sm-4 { + margin-left: 1.5rem !important; + } + .me-sm-5 { + margin-left: 3rem !important; + } + .me-sm-auto { + margin-left: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.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-right: 0 !important; + } + .ms-sm-1 { + margin-right: 0.25rem !important; + } + .ms-sm-2 { + margin-right: 0.5rem !important; + } + .ms-sm-3 { + margin-right: 1rem !important; + } + .ms-sm-4 { + margin-right: 1.5rem !important; + } + .ms-sm-5 { + margin-right: 3rem !important; + } + .ms-sm-auto { + margin-right: auto !important; + } + .m-sm-n1 { + margin: -0.25rem !important; + } + .m-sm-n2 { + margin: -0.5rem !important; + } + .m-sm-n3 { + margin: -1rem !important; + } + .m-sm-n4 { + margin: -1.5rem !important; + } + .m-sm-n5 { + margin: -3rem !important; + } + .mx-sm-n1 { + margin-left: -0.25rem !important; + margin-right: -0.25rem !important; + } + .mx-sm-n2 { + margin-left: -0.5rem !important; + margin-right: -0.5rem !important; + } + .mx-sm-n3 { + margin-left: -1rem !important; + margin-right: -1rem !important; + } + .mx-sm-n4 { + margin-left: -1.5rem !important; + margin-right: -1.5rem !important; + } + .mx-sm-n5 { + margin-left: -3rem !important; + margin-right: -3rem !important; + } + .my-sm-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + .my-sm-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + .my-sm-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + .my-sm-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + .my-sm-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + .mt-sm-n1 { + margin-top: -0.25rem !important; + } + .mt-sm-n2 { + margin-top: -0.5rem !important; + } + .mt-sm-n3 { + margin-top: -1rem !important; + } + .mt-sm-n4 { + margin-top: -1.5rem !important; + } + .mt-sm-n5 { + margin-top: -3rem !important; + } + .me-sm-n1 { + margin-left: -0.25rem !important; + } + .me-sm-n2 { + margin-left: -0.5rem !important; + } + .me-sm-n3 { + margin-left: -1rem !important; + } + .me-sm-n4 { + margin-left: -1.5rem !important; + } + .me-sm-n5 { + margin-left: -3rem !important; + } + .mb-sm-n1 { + margin-bottom: -0.25rem !important; + } + .mb-sm-n2 { + margin-bottom: -0.5rem !important; + } + .mb-sm-n3 { + margin-bottom: -1rem !important; + } + .mb-sm-n4 { + margin-bottom: -1.5rem !important; + } + .mb-sm-n5 { + margin-bottom: -3rem !important; + } + .ms-sm-n1 { + margin-right: -0.25rem !important; + } + .ms-sm-n2 { + margin-right: -0.5rem !important; + } + .ms-sm-n3 { + margin-right: -1rem !important; + } + .ms-sm-n4 { + margin-right: -1.5rem !important; + } + .ms-sm-n5 { + margin-right: -3rem !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + .px-sm-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-sm-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-sm-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-sm-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-sm-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.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-left: 0 !important; + } + .pe-sm-1 { + padding-left: 0.25rem !important; + } + .pe-sm-2 { + padding-left: 0.5rem !important; + } + .pe-sm-3 { + padding-left: 1rem !important; + } + .pe-sm-4 { + padding-left: 1.5rem !important; + } + .pe-sm-5 { + padding-left: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.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-right: 0 !important; + } + .ps-sm-1 { + padding-right: 0.25rem !important; + } + .ps-sm-2 { + padding-right: 0.5rem !important; + } + .ps-sm-3 { + padding-right: 1rem !important; + } + .ps-sm-4 { + padding-right: 1.5rem !important; + } + .ps-sm-5 { + padding-right: 3rem !important; + } + .gap-sm-0 { + gap: 0 !important; + } + .gap-sm-1 { + gap: 0.25rem !important; + } + .gap-sm-2 { + gap: 0.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: 0.25rem !important; + } + .row-gap-sm-2 { + row-gap: 0.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: 0.25rem !important; + } + .column-gap-sm-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.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: right !important; + } + .text-sm-end { + text-align: left !important; + } + .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .float-md-start { + float: right !important; + } + .float-md-end { + float: left !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: 0.25rem !important; + } + .m-md-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + .mx-md-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-md-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-md-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-md-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-md-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-md-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.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-left: 0 !important; + } + .me-md-1 { + margin-left: 0.25rem !important; + } + .me-md-2 { + margin-left: 0.5rem !important; + } + .me-md-3 { + margin-left: 1rem !important; + } + .me-md-4 { + margin-left: 1.5rem !important; + } + .me-md-5 { + margin-left: 3rem !important; + } + .me-md-auto { + margin-left: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.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-right: 0 !important; + } + .ms-md-1 { + margin-right: 0.25rem !important; + } + .ms-md-2 { + margin-right: 0.5rem !important; + } + .ms-md-3 { + margin-right: 1rem !important; + } + .ms-md-4 { + margin-right: 1.5rem !important; + } + .ms-md-5 { + margin-right: 3rem !important; + } + .ms-md-auto { + margin-right: auto !important; + } + .m-md-n1 { + margin: -0.25rem !important; + } + .m-md-n2 { + margin: -0.5rem !important; + } + .m-md-n3 { + margin: -1rem !important; + } + .m-md-n4 { + margin: -1.5rem !important; + } + .m-md-n5 { + margin: -3rem !important; + } + .mx-md-n1 { + margin-left: -0.25rem !important; + margin-right: -0.25rem !important; + } + .mx-md-n2 { + margin-left: -0.5rem !important; + margin-right: -0.5rem !important; + } + .mx-md-n3 { + margin-left: -1rem !important; + margin-right: -1rem !important; + } + .mx-md-n4 { + margin-left: -1.5rem !important; + margin-right: -1.5rem !important; + } + .mx-md-n5 { + margin-left: -3rem !important; + margin-right: -3rem !important; + } + .my-md-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + .my-md-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + .my-md-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + .my-md-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + .my-md-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + .mt-md-n1 { + margin-top: -0.25rem !important; + } + .mt-md-n2 { + margin-top: -0.5rem !important; + } + .mt-md-n3 { + margin-top: -1rem !important; + } + .mt-md-n4 { + margin-top: -1.5rem !important; + } + .mt-md-n5 { + margin-top: -3rem !important; + } + .me-md-n1 { + margin-left: -0.25rem !important; + } + .me-md-n2 { + margin-left: -0.5rem !important; + } + .me-md-n3 { + margin-left: -1rem !important; + } + .me-md-n4 { + margin-left: -1.5rem !important; + } + .me-md-n5 { + margin-left: -3rem !important; + } + .mb-md-n1 { + margin-bottom: -0.25rem !important; + } + .mb-md-n2 { + margin-bottom: -0.5rem !important; + } + .mb-md-n3 { + margin-bottom: -1rem !important; + } + .mb-md-n4 { + margin-bottom: -1.5rem !important; + } + .mb-md-n5 { + margin-bottom: -3rem !important; + } + .ms-md-n1 { + margin-right: -0.25rem !important; + } + .ms-md-n2 { + margin-right: -0.5rem !important; + } + .ms-md-n3 { + margin-right: -1rem !important; + } + .ms-md-n4 { + margin-right: -1.5rem !important; + } + .ms-md-n5 { + margin-right: -3rem !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + .px-md-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-md-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-md-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-md-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-md-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.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-left: 0 !important; + } + .pe-md-1 { + padding-left: 0.25rem !important; + } + .pe-md-2 { + padding-left: 0.5rem !important; + } + .pe-md-3 { + padding-left: 1rem !important; + } + .pe-md-4 { + padding-left: 1.5rem !important; + } + .pe-md-5 { + padding-left: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.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-right: 0 !important; + } + .ps-md-1 { + padding-right: 0.25rem !important; + } + .ps-md-2 { + padding-right: 0.5rem !important; + } + .ps-md-3 { + padding-right: 1rem !important; + } + .ps-md-4 { + padding-right: 1.5rem !important; + } + .ps-md-5 { + padding-right: 3rem !important; + } + .gap-md-0 { + gap: 0 !important; + } + .gap-md-1 { + gap: 0.25rem !important; + } + .gap-md-2 { + gap: 0.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: 0.25rem !important; + } + .row-gap-md-2 { + row-gap: 0.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: 0.25rem !important; + } + .column-gap-md-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.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: right !important; + } + .text-md-end { + text-align: left !important; + } + .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .float-lg-start { + float: right !important; + } + .float-lg-end { + float: left !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: 0.25rem !important; + } + .m-lg-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + .mx-lg-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-lg-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-lg-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-lg-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-lg-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-lg-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.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-left: 0 !important; + } + .me-lg-1 { + margin-left: 0.25rem !important; + } + .me-lg-2 { + margin-left: 0.5rem !important; + } + .me-lg-3 { + margin-left: 1rem !important; + } + .me-lg-4 { + margin-left: 1.5rem !important; + } + .me-lg-5 { + margin-left: 3rem !important; + } + .me-lg-auto { + margin-left: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.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-right: 0 !important; + } + .ms-lg-1 { + margin-right: 0.25rem !important; + } + .ms-lg-2 { + margin-right: 0.5rem !important; + } + .ms-lg-3 { + margin-right: 1rem !important; + } + .ms-lg-4 { + margin-right: 1.5rem !important; + } + .ms-lg-5 { + margin-right: 3rem !important; + } + .ms-lg-auto { + margin-right: auto !important; + } + .m-lg-n1 { + margin: -0.25rem !important; + } + .m-lg-n2 { + margin: -0.5rem !important; + } + .m-lg-n3 { + margin: -1rem !important; + } + .m-lg-n4 { + margin: -1.5rem !important; + } + .m-lg-n5 { + margin: -3rem !important; + } + .mx-lg-n1 { + margin-left: -0.25rem !important; + margin-right: -0.25rem !important; + } + .mx-lg-n2 { + margin-left: -0.5rem !important; + margin-right: -0.5rem !important; + } + .mx-lg-n3 { + margin-left: -1rem !important; + margin-right: -1rem !important; + } + .mx-lg-n4 { + margin-left: -1.5rem !important; + margin-right: -1.5rem !important; + } + .mx-lg-n5 { + margin-left: -3rem !important; + margin-right: -3rem !important; + } + .my-lg-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + .my-lg-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + .my-lg-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + .my-lg-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + .my-lg-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + .mt-lg-n1 { + margin-top: -0.25rem !important; + } + .mt-lg-n2 { + margin-top: -0.5rem !important; + } + .mt-lg-n3 { + margin-top: -1rem !important; + } + .mt-lg-n4 { + margin-top: -1.5rem !important; + } + .mt-lg-n5 { + margin-top: -3rem !important; + } + .me-lg-n1 { + margin-left: -0.25rem !important; + } + .me-lg-n2 { + margin-left: -0.5rem !important; + } + .me-lg-n3 { + margin-left: -1rem !important; + } + .me-lg-n4 { + margin-left: -1.5rem !important; + } + .me-lg-n5 { + margin-left: -3rem !important; + } + .mb-lg-n1 { + margin-bottom: -0.25rem !important; + } + .mb-lg-n2 { + margin-bottom: -0.5rem !important; + } + .mb-lg-n3 { + margin-bottom: -1rem !important; + } + .mb-lg-n4 { + margin-bottom: -1.5rem !important; + } + .mb-lg-n5 { + margin-bottom: -3rem !important; + } + .ms-lg-n1 { + margin-right: -0.25rem !important; + } + .ms-lg-n2 { + margin-right: -0.5rem !important; + } + .ms-lg-n3 { + margin-right: -1rem !important; + } + .ms-lg-n4 { + margin-right: -1.5rem !important; + } + .ms-lg-n5 { + margin-right: -3rem !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + .px-lg-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-lg-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-lg-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-lg-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-lg-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.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-left: 0 !important; + } + .pe-lg-1 { + padding-left: 0.25rem !important; + } + .pe-lg-2 { + padding-left: 0.5rem !important; + } + .pe-lg-3 { + padding-left: 1rem !important; + } + .pe-lg-4 { + padding-left: 1.5rem !important; + } + .pe-lg-5 { + padding-left: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.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-right: 0 !important; + } + .ps-lg-1 { + padding-right: 0.25rem !important; + } + .ps-lg-2 { + padding-right: 0.5rem !important; + } + .ps-lg-3 { + padding-right: 1rem !important; + } + .ps-lg-4 { + padding-right: 1.5rem !important; + } + .ps-lg-5 { + padding-right: 3rem !important; + } + .gap-lg-0 { + gap: 0 !important; + } + .gap-lg-1 { + gap: 0.25rem !important; + } + .gap-lg-2 { + gap: 0.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: 0.25rem !important; + } + .row-gap-lg-2 { + row-gap: 0.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: 0.25rem !important; + } + .column-gap-lg-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.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: right !important; + } + .text-lg-end { + text-align: left !important; + } + .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .float-xl-start { + float: right !important; + } + .float-xl-end { + float: left !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: 0.25rem !important; + } + .m-xl-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + .mx-xl-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-xl-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-xl-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-xl-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-xl-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-xl-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.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-left: 0 !important; + } + .me-xl-1 { + margin-left: 0.25rem !important; + } + .me-xl-2 { + margin-left: 0.5rem !important; + } + .me-xl-3 { + margin-left: 1rem !important; + } + .me-xl-4 { + margin-left: 1.5rem !important; + } + .me-xl-5 { + margin-left: 3rem !important; + } + .me-xl-auto { + margin-left: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.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-right: 0 !important; + } + .ms-xl-1 { + margin-right: 0.25rem !important; + } + .ms-xl-2 { + margin-right: 0.5rem !important; + } + .ms-xl-3 { + margin-right: 1rem !important; + } + .ms-xl-4 { + margin-right: 1.5rem !important; + } + .ms-xl-5 { + margin-right: 3rem !important; + } + .ms-xl-auto { + margin-right: auto !important; + } + .m-xl-n1 { + margin: -0.25rem !important; + } + .m-xl-n2 { + margin: -0.5rem !important; + } + .m-xl-n3 { + margin: -1rem !important; + } + .m-xl-n4 { + margin: -1.5rem !important; + } + .m-xl-n5 { + margin: -3rem !important; + } + .mx-xl-n1 { + margin-left: -0.25rem !important; + margin-right: -0.25rem !important; + } + .mx-xl-n2 { + margin-left: -0.5rem !important; + margin-right: -0.5rem !important; + } + .mx-xl-n3 { + margin-left: -1rem !important; + margin-right: -1rem !important; + } + .mx-xl-n4 { + margin-left: -1.5rem !important; + margin-right: -1.5rem !important; + } + .mx-xl-n5 { + margin-left: -3rem !important; + margin-right: -3rem !important; + } + .my-xl-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + .my-xl-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + .my-xl-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + .my-xl-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + .my-xl-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + .mt-xl-n1 { + margin-top: -0.25rem !important; + } + .mt-xl-n2 { + margin-top: -0.5rem !important; + } + .mt-xl-n3 { + margin-top: -1rem !important; + } + .mt-xl-n4 { + margin-top: -1.5rem !important; + } + .mt-xl-n5 { + margin-top: -3rem !important; + } + .me-xl-n1 { + margin-left: -0.25rem !important; + } + .me-xl-n2 { + margin-left: -0.5rem !important; + } + .me-xl-n3 { + margin-left: -1rem !important; + } + .me-xl-n4 { + margin-left: -1.5rem !important; + } + .me-xl-n5 { + margin-left: -3rem !important; + } + .mb-xl-n1 { + margin-bottom: -0.25rem !important; + } + .mb-xl-n2 { + margin-bottom: -0.5rem !important; + } + .mb-xl-n3 { + margin-bottom: -1rem !important; + } + .mb-xl-n4 { + margin-bottom: -1.5rem !important; + } + .mb-xl-n5 { + margin-bottom: -3rem !important; + } + .ms-xl-n1 { + margin-right: -0.25rem !important; + } + .ms-xl-n2 { + margin-right: -0.5rem !important; + } + .ms-xl-n3 { + margin-right: -1rem !important; + } + .ms-xl-n4 { + margin-right: -1.5rem !important; + } + .ms-xl-n5 { + margin-right: -3rem !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + .px-xl-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-xl-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-xl-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-xl-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-xl-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.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-left: 0 !important; + } + .pe-xl-1 { + padding-left: 0.25rem !important; + } + .pe-xl-2 { + padding-left: 0.5rem !important; + } + .pe-xl-3 { + padding-left: 1rem !important; + } + .pe-xl-4 { + padding-left: 1.5rem !important; + } + .pe-xl-5 { + padding-left: 3rem !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.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-right: 0 !important; + } + .ps-xl-1 { + padding-right: 0.25rem !important; + } + .ps-xl-2 { + padding-right: 0.5rem !important; + } + .ps-xl-3 { + padding-right: 1rem !important; + } + .ps-xl-4 { + padding-right: 1.5rem !important; + } + .ps-xl-5 { + padding-right: 3rem !important; + } + .gap-xl-0 { + gap: 0 !important; + } + .gap-xl-1 { + gap: 0.25rem !important; + } + .gap-xl-2 { + gap: 0.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: 0.25rem !important; + } + .row-gap-xl-2 { + row-gap: 0.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: 0.25rem !important; + } + .column-gap-xl-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.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: right !important; + } + .text-xl-end { + text-align: left !important; + } + .text-xl-center { + text-align: center !important; + } +} +@media (min-width: 1400px) { + .float-xxl-start { + float: right !important; + } + .float-xxl-end { + float: left !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: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.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-left: 0 !important; + margin-right: 0 !important; + } + .mx-xxl-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .mx-xxl-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .mx-xxl-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .mx-xxl-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .mx-xxl-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .mx-xxl-auto { + margin-left: auto !important; + margin-right: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.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: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.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-left: 0 !important; + } + .me-xxl-1 { + margin-left: 0.25rem !important; + } + .me-xxl-2 { + margin-left: 0.5rem !important; + } + .me-xxl-3 { + margin-left: 1rem !important; + } + .me-xxl-4 { + margin-left: 1.5rem !important; + } + .me-xxl-5 { + margin-left: 3rem !important; + } + .me-xxl-auto { + margin-left: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.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-right: 0 !important; + } + .ms-xxl-1 { + margin-right: 0.25rem !important; + } + .ms-xxl-2 { + margin-right: 0.5rem !important; + } + .ms-xxl-3 { + margin-right: 1rem !important; + } + .ms-xxl-4 { + margin-right: 1.5rem !important; + } + .ms-xxl-5 { + margin-right: 3rem !important; + } + .ms-xxl-auto { + margin-right: auto !important; + } + .m-xxl-n1 { + margin: -0.25rem !important; + } + .m-xxl-n2 { + margin: -0.5rem !important; + } + .m-xxl-n3 { + margin: -1rem !important; + } + .m-xxl-n4 { + margin: -1.5rem !important; + } + .m-xxl-n5 { + margin: -3rem !important; + } + .mx-xxl-n1 { + margin-left: -0.25rem !important; + margin-right: -0.25rem !important; + } + .mx-xxl-n2 { + margin-left: -0.5rem !important; + margin-right: -0.5rem !important; + } + .mx-xxl-n3 { + margin-left: -1rem !important; + margin-right: -1rem !important; + } + .mx-xxl-n4 { + margin-left: -1.5rem !important; + margin-right: -1.5rem !important; + } + .mx-xxl-n5 { + margin-left: -3rem !important; + margin-right: -3rem !important; + } + .my-xxl-n1 { + margin-top: -0.25rem !important; + margin-bottom: -0.25rem !important; + } + .my-xxl-n2 { + margin-top: -0.5rem !important; + margin-bottom: -0.5rem !important; + } + .my-xxl-n3 { + margin-top: -1rem !important; + margin-bottom: -1rem !important; + } + .my-xxl-n4 { + margin-top: -1.5rem !important; + margin-bottom: -1.5rem !important; + } + .my-xxl-n5 { + margin-top: -3rem !important; + margin-bottom: -3rem !important; + } + .mt-xxl-n1 { + margin-top: -0.25rem !important; + } + .mt-xxl-n2 { + margin-top: -0.5rem !important; + } + .mt-xxl-n3 { + margin-top: -1rem !important; + } + .mt-xxl-n4 { + margin-top: -1.5rem !important; + } + .mt-xxl-n5 { + margin-top: -3rem !important; + } + .me-xxl-n1 { + margin-left: -0.25rem !important; + } + .me-xxl-n2 { + margin-left: -0.5rem !important; + } + .me-xxl-n3 { + margin-left: -1rem !important; + } + .me-xxl-n4 { + margin-left: -1.5rem !important; + } + .me-xxl-n5 { + margin-left: -3rem !important; + } + .mb-xxl-n1 { + margin-bottom: -0.25rem !important; + } + .mb-xxl-n2 { + margin-bottom: -0.5rem !important; + } + .mb-xxl-n3 { + margin-bottom: -1rem !important; + } + .mb-xxl-n4 { + margin-bottom: -1.5rem !important; + } + .mb-xxl-n5 { + margin-bottom: -3rem !important; + } + .ms-xxl-n1 { + margin-right: -0.25rem !important; + } + .ms-xxl-n2 { + margin-right: -0.5rem !important; + } + .ms-xxl-n3 { + margin-right: -1rem !important; + } + .ms-xxl-n4 { + margin-right: -1.5rem !important; + } + .ms-xxl-n5 { + margin-right: -3rem !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.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-left: 0 !important; + padding-right: 0 !important; + } + .px-xxl-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .px-xxl-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .px-xxl-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .px-xxl-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .px-xxl-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.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: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.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-left: 0 !important; + } + .pe-xxl-1 { + padding-left: 0.25rem !important; + } + .pe-xxl-2 { + padding-left: 0.5rem !important; + } + .pe-xxl-3 { + padding-left: 1rem !important; + } + .pe-xxl-4 { + padding-left: 1.5rem !important; + } + .pe-xxl-5 { + padding-left: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.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-right: 0 !important; + } + .ps-xxl-1 { + padding-right: 0.25rem !important; + } + .ps-xxl-2 { + padding-right: 0.5rem !important; + } + .ps-xxl-3 { + padding-right: 1rem !important; + } + .ps-xxl-4 { + padding-right: 1.5rem !important; + } + .ps-xxl-5 { + padding-right: 3rem !important; + } + .gap-xxl-0 { + gap: 0 !important; + } + .gap-xxl-1 { + gap: 0.25rem !important; + } + .gap-xxl-2 { + gap: 0.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: 0.25rem !important; + } + .row-gap-xxl-2 { + row-gap: 0.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: 0.25rem !important; + } + .column-gap-xxl-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.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: right !important; + } + .text-xxl-end { + text-align: left !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; + } +} +@keyframes flipInX { + 0% { + opacity: 0; + transition-timing-function: ease-in; + transform: perspective(400px) rotate3d(-1, 0, 0, -90deg); + } + 40% { + transition-timing-function: ease-in; + transform: perspective(400px) rotate3d(-1, 0, 0, 20deg); + } + 60% { + opacity: 1; + transform: perspective(400px) rotate3d(-1, 0, 0, -10deg); + } + 80% { + transform: perspective(400px) rotate3d(-1, 0, 0, 5deg); + } + 100% { + transform: perspective(400px); + } +} +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +@keyframes shake { + 0% { + transform: translate(-2px, 1px) rotate(0deg); + } + 10% { + transform: translate(1px, -2px) rotate(2deg); + } + 20% { + transform: translate(3px, 0) rotate(-3deg); + } + 30% { + transform: translate(0, 2px) rotate(0deg); + } + 40% { + transform: translate(-1px, -1px) rotate(-1deg); + } + 50% { + transform: translate(1px, 2px) rotate(1deg); + } + 60% { + transform: translate(3px, 1px) rotate(0deg); + } + 70% { + transform: translate(-2px, 1px) rotate(2deg); + } + 80% { + transform: translate(1px, -1px) rotate(-4deg); + } + 90% { + transform: translate(-2px, 2px) rotate(0deg); + } + 100% { + transform: translate(-1px, -2px) rotate(1deg); + } +} +@keyframes wobble { + 0% { + transform: none; + } + 15% { + transform: translate3d(25%, 0, 0) rotate3d(0, 0, 1, 5deg); + } + 30% { + transform: translate3d(-20%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + 45% { + transform: translate3d(15%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + 60% { + transform: translate3d(-10%, 0, 0) rotate3d(0, 0, 1, -2deg); + } + 75% { + transform: translate3d(5%, 0, 0) rotate3d(0, 0, 1, 1deg); + } + 100% { + transform: none; + } +} +:root, +[data-bs-theme=light] { + --lte-sidebar-width: 250px; +} + +.app-wrapper { + position: relative; + display: grid; + grid-template-areas: "lte-app-sidebar lte-app-header" "lte-app-sidebar lte-app-main" "lte-app-sidebar lte-app-footer"; + grid-template-rows: min-content 1fr min-content; + grid-template-columns: auto 1fr; + grid-gap: 0; + align-content: stretch; + align-items: stretch; + max-width: 100vw; + min-height: 100vh; +} +.app-wrapper > * { + min-width: 0; +} + +.app-content { + padding: 0 0.5rem; +} + +.app-header { + z-index: 1034; + grid-area: lte-app-header; + max-width: 100vw; + border-bottom: 1px solid var(--bs-border-color); + transition: 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .app-header { + transition: none; + } +} +.app-header .nav-link { + position: relative; + height: 2.5rem; +} + +.navbar-badge { + position: absolute; + top: 9px; + left: 5px; + padding: 2px 4px; + font-size: 0.6rem; + font-weight: 400; +} + +.fixed-header .app-header { + position: sticky; + top: 0; + z-index: 1030; +} + +.app-sidebar { + --lte-sidebar-hover-bg: rgba(0, 0, 0, 0.1); + --lte-sidebar-color: #343a40; + --lte-sidebar-hover-color: #212529; + --lte-sidebar-active-color: #000; + --lte-sidebar-menu-active-bg: rgba(0, 0, 0, 0.1); + --lte-sidebar-menu-active-color: #000; + --lte-sidebar-submenu-bg: transparent; + --lte-sidebar-submenu-color: #777; + --lte-sidebar-submenu-hover-color: #000; + --lte-sidebar-submenu-hover-bg: rgba(0, 0, 0, 0.1); + --lte-sidebar-submenu-active-color: #212529; + --lte-sidebar-submenu-active-bg: rgba(0, 0, 0, 0.1); + --lte-sidebar-header-color: rgb(49.4, 55.1, 60.8); + z-index: 1038; + grid-area: lte-app-sidebar; + min-width: var(--lte-sidebar-width); + max-width: var(--lte-sidebar-width); + transition: min-width 0.3s ease-in-out, max-width 0.3s ease-in-out, margin-right 0.3s ease-in-out, margin-left 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .app-sidebar { + transition: none; + } +} + +.sidebar-brand { + display: flex; + align-items: center; + justify-content: center; + height: 3.5rem; + padding: 0.8125rem 0.5rem; + overflow: hidden; + font-size: 1.25rem; + white-space: nowrap; + border-bottom: 1px solid var(--bs-border-color); + transition: width 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .sidebar-brand { + transition: none; + } +} +.sidebar-brand .brand-link { + display: flex; + align-items: center; + text-decoration: none; +} +.sidebar-brand .brand-link .brand-image { + float: right; + width: auto; + max-height: 33px; + line-height: 0.8; +} +.sidebar-brand .brand-link .brand-image-xs { + float: right; + width: auto; + max-height: 33px; + margin-top: -0.1rem; + line-height: 0.8; +} +.sidebar-brand .brand-link .brand-image-xl { + width: auto; + max-height: 40px; + line-height: 0.8; +} +.sidebar-brand .brand-link .brand-image-xl.single { + margin-top: -0.3rem; +} +.sidebar-brand .brand-text { + margin-right: 0.5rem; + color: rgba(var(--bs-emphasis-color-rgb), 0.8); + transition: flex 0.3s ease-in-out, width 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .sidebar-brand .brand-text { + transition: none; + } +} +.sidebar-brand .brand-text:hover { + color: var(--bs-emphasis-color); +} + +.sidebar-wrapper { + padding-top: 0.5rem; + padding-left: 0.5rem; + padding-bottom: 0.5rem; + padding-right: 0.5rem; + scrollbar-color: var(--bs-secondary-bg) transparent; +} +.sidebar-wrapper::-webkit-scrollbar-thumb { + background-color: var(--bs-secondary-bg); +} +.sidebar-wrapper::-webkit-scrollbar-track { + background-color: transparent; +} +.sidebar-wrapper::-webkit-scrollbar-corner { + background-color: transparent; +} +.sidebar-wrapper { + scrollbar-width: thin; +} +.sidebar-wrapper::-webkit-scrollbar { + width: 0.5rem; + height: 0.5rem; +} +.sidebar-wrapper .nav-item { + max-width: 100%; +} +.sidebar-wrapper .nav-link { + display: flex; + justify-content: flex-start; +} +.sidebar-wrapper .nav-link p { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.sidebar-wrapper .nav-icon { + display: flex; + align-items: center; + justify-content: center; + min-width: 1.5rem; + max-width: 1.5rem; +} +.sidebar-wrapper .sidebar-menu > .nav-item.menu-open .nav-link.active:not(:hover) { + --lte-sidebar-menu-active-bg: transparent; +} +.sidebar-wrapper .sidebar-menu > .nav-item > .nav-link:active, .sidebar-wrapper .sidebar-menu > .nav-item > .nav-link:focus { + color: var(--lte-sidebar-color); +} +.sidebar-wrapper .sidebar-menu > .nav-item > .nav-link.active:not(:hover) { + color: var(--lte-sidebar-menu-active-color); + background-color: var(--lte-sidebar-menu-active-bg); +} +.sidebar-wrapper .sidebar-menu > .nav-item.menu-open > .nav-link, .sidebar-wrapper .sidebar-menu > .nav-item:hover > .nav-link, +.sidebar-wrapper .sidebar-menu > .nav-item > .nav-link:focus { + color: var(--lte-sidebar-hover-color); + background-color: var(--lte-sidebar-hover-bg); +} +.sidebar-wrapper .sidebar-menu > .nav-item > .nav-treeview { + background-color: var(--lte-sidebar-submenu-bg); +} +.sidebar-wrapper .nav-header { + color: var(--lte-sidebar-header-color); + background-color: inherit; +} +.sidebar-wrapper a { + color: var(--lte-sidebar-color); +} +.sidebar-wrapper .nav-treeview > .nav-item > .nav-link { + color: var(--lte-sidebar-submenu-color); +} +.sidebar-wrapper .nav-treeview > .nav-item > .nav-link:hover, .sidebar-wrapper .nav-treeview > .nav-item > .nav-link:focus { + color: var(--lte-sidebar-submenu-hover-color); +} +.sidebar-wrapper .nav-treeview > .nav-item > .nav-link.active, .sidebar-wrapper .nav-treeview > .nav-item > .nav-link.active:hover, .sidebar-wrapper .nav-treeview > .nav-item > .nav-link.active:focus { + color: var(--lte-sidebar-submenu-active-color); + background-color: var(--lte-sidebar-submenu-active-bg); +} +.sidebar-wrapper .nav-treeview > .nav-item > .nav-link:hover { + background-color: var(--lte-sidebar-submenu-hover-bg); +} + +.sidebar-menu .nav-item > .nav-link { + margin-bottom: 0.2rem; +} +.sidebar-menu .nav-item > .nav-link .nav-arrow { + transition: transform ease-in-out 0.3s; +} +@media (prefers-reduced-motion: reduce) { + .sidebar-menu .nav-item > .nav-link .nav-arrow { + transition: none; + } +} +.sidebar-menu .nav-item > .nav-link .nav-arrow { + transform: translateY(-50%) rotate(180deg); + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; +} +.sidebar-menu .nav-link > .nav-badge, +.sidebar-menu .nav-link > p > .nav-badge { + position: absolute; + top: 50%; + left: 1rem; + transform: translateY(-50%); +} +.sidebar-menu .nav-link > .nav-arrow, +.sidebar-menu .nav-link > p > .nav-arrow { + position: absolute; + top: 50%; + left: 1rem; +} +.sidebar-menu .nav-link { + position: relative; + width: 100%; + transition: width ease-in-out 0.3s; +} +@media (prefers-reduced-motion: reduce) { + .sidebar-menu .nav-link { + transition: none; + } +} +.sidebar-menu .nav-link { + border-radius: 0.375rem; +} +.sidebar-menu .nav-link p { + display: inline; + padding-right: 0.5rem; + margin: 0; +} +.sidebar-menu .nav-header { + padding: 0.5rem 0.75rem; + font-size: 0.9rem; +} +.sidebar-menu .nav-treeview { + display: none; + padding: 0; + list-style: none; +} +.nav-indent .sidebar-menu .nav-treeview { + padding-right: 0.5rem; +} +.sidebar-menu .menu-open > .nav-treeview { + display: block; +} +.sidebar-menu .menu-open > .nav-link .nav-arrow { + transform: translateY(-50%) rotate(90deg) ; +} +.sidebar-menu .nav-link > .nav-badge, +.sidebar-menu .nav-link > p > .nav-badge, +.sidebar-menu .nav-link > .nav-arrow, +.sidebar-menu .nav-link > p > .nav-arrow { + left: 1rem !important; + right: auto !important; +} + +.nav-compact.nav-indent .nav-treeview { + padding-right: 0; +} +.nav-compact.nav-indent .nav-treeview .nav-item { + padding-right: 0.5rem; +} + +.sidebar-mini.sidebar-collapse.nav-indent .app-sidebar:hover .nav-treeview { + padding-right: 0; +} +.sidebar-mini.sidebar-collapse.nav-indent .app-sidebar:hover .nav-treeview .nav-item { + padding-right: 0.5rem; +} + +.sidebar-collapse.nav-compact.nav-indent .nav-treeview .nav-item { + padding-right: 0; +} + +.nav-compact .nav-link { + border-radius: 0; + margin-bottom: 0 !important; +} + +.sidebar-menu, +.sidebar-menu > .nav-header, +.sidebar-menu .nav-link { + white-space: nowrap; +} + +.logo-xs, +.logo-xl { + position: absolute; + visibility: visible; + opacity: 1; +} +.logo-xs.brand-image-xs, +.logo-xl.brand-image-xs { + top: 12px; + right: 18px; +} +.logo-xs.brand-image-xl, +.logo-xl.brand-image-xl { + top: 6px; + right: 12px; +} + +.logo-xs { + visibility: hidden; + opacity: 0; +} +.logo-xs.brand-image-xl { + top: 8px; + right: 16px; +} + +.brand-link.logo-switch::before { + content: " "; +} + +.sidebar-mini.sidebar-collapse .app-sidebar { + min-width: 4.6rem; + max-width: 4.6rem; +} +.sidebar-mini.sidebar-collapse .sidebar-menu .nav-header { + display: none; +} +.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link { + width: 3.6rem; +} +.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link p { + display: inline-block; + width: 0; + white-space: nowrap; +} +.sidebar-mini.sidebar-collapse .sidebar-menu .nav-badge, +.sidebar-mini.sidebar-collapse .sidebar-menu .nav-arrow { + display: none; + animation-name: fadeOut; + animation-duration: 0.3s; + animation-fill-mode: both; +} +.sidebar-mini.sidebar-collapse .brand-text { + display: inline-block; + max-width: 0; + overflow: hidden; +} +.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link p, +.sidebar-mini.sidebar-collapse .brand-text, +.sidebar-mini.sidebar-collapse .logo-xl, +.sidebar-mini.sidebar-collapse .nav-arrow { + visibility: hidden; + animation-name: fadeOut; + animation-duration: 0.3s; + animation-fill-mode: both; +} +.sidebar-mini.sidebar-collapse .logo-xs { + display: inline-block; + visibility: visible; + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover { + min-width: var(--lte-sidebar-width); + max-width: var(--lte-sidebar-width); +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .sidebar-menu .nav-header { + display: inline-block; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .sidebar-menu .nav-link { + width: auto; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .sidebar-menu .nav-link p, +.sidebar-mini.sidebar-collapse .app-sidebar:hover .brand-text, +.sidebar-mini.sidebar-collapse .app-sidebar:hover .logo-xl { + width: auto; + margin-right: 0; + visibility: visible; + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .brand-text { + display: inline; + max-width: inherit; + margin-right: 0.5rem; + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav-badge, +.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav-arrow { + display: inline-block; + visibility: visible; + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav-link p { + padding-right: 0.5rem; +} +.sidebar-mini.sidebar-collapse .app-sidebar:hover .logo-xs { + visibility: hidden; + animation-name: fadeOut; + animation-duration: 0.3s; + animation-fill-mode: both; +} + +.sidebar-collapse:not(.sidebar-mini) .app-sidebar { + margin-right: calc(var(--lte-sidebar-width) * -1); +} + +.sidebar-expand { + /* stylelint-disable-next-line scss/selector-no-union-class-name */ +} +@media (min-width: 576px) { + .sidebar-expand-sm.layout-fixed .app-main-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; + } + .sidebar-expand-sm.layout-fixed .app-sidebar-wrapper { + position: relative; + } + .sidebar-expand-sm.layout-fixed .app-main { + flex: 1 1 auto; + overflow: auto; + } + .sidebar-expand-sm.layout-fixed .app-sidebar { + position: sticky; + top: 0; + bottom: 0; + max-height: 100vh; + } + .sidebar-expand-sm.layout-fixed .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-sm.sidebar-open .nav-link > .nav-badge, + .sidebar-expand-sm.sidebar-open .nav-link > p > .nav-badge { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } + .sidebar-expand-sm.sidebar-open .nav-link > .nav-arrow, + .sidebar-expand-sm.sidebar-open .nav-link > p > .nav-arrow { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } +} +@media (max-width: 575.98px) { + .sidebar-expand-sm::before { + display: none; + content: "575.98px"; + } + .sidebar-expand-sm .app-sidebar { + position: fixed; + top: 0; + bottom: 0; + max-height: 100vh; + margin-right: calc(var(--lte-sidebar-width) * -1); + } + .sidebar-expand-sm .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-sm.sidebar-open .app-sidebar { + margin-right: 0; + } + .sidebar-expand-sm.sidebar-open .sidebar-overlay { + position: absolute; + inset: 0; + z-index: 1037; + width: 100%; + height: 100%; + cursor: pointer; + visibility: visible; + background-color: rgba(0, 0, 0, 0.2); + animation-name: fadeIn; + animation-fill-mode: both; + } +} +.sidebar-expand { + /* stylelint-disable-next-line scss/selector-no-union-class-name */ +} +@media (min-width: 768px) { + .sidebar-expand-md.layout-fixed .app-main-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; + } + .sidebar-expand-md.layout-fixed .app-sidebar-wrapper { + position: relative; + } + .sidebar-expand-md.layout-fixed .app-main { + flex: 1 1 auto; + overflow: auto; + } + .sidebar-expand-md.layout-fixed .app-sidebar { + position: sticky; + top: 0; + bottom: 0; + max-height: 100vh; + } + .sidebar-expand-md.layout-fixed .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-md.sidebar-open .nav-link > .nav-badge, + .sidebar-expand-md.sidebar-open .nav-link > p > .nav-badge { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } + .sidebar-expand-md.sidebar-open .nav-link > .nav-arrow, + .sidebar-expand-md.sidebar-open .nav-link > p > .nav-arrow { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } +} +@media (max-width: 767.98px) { + .sidebar-expand-md::before { + display: none; + content: "767.98px"; + } + .sidebar-expand-md .app-sidebar { + position: fixed; + top: 0; + bottom: 0; + max-height: 100vh; + margin-right: calc(var(--lte-sidebar-width) * -1); + } + .sidebar-expand-md .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-md.sidebar-open .app-sidebar { + margin-right: 0; + } + .sidebar-expand-md.sidebar-open .sidebar-overlay { + position: absolute; + inset: 0; + z-index: 1037; + width: 100%; + height: 100%; + cursor: pointer; + visibility: visible; + background-color: rgba(0, 0, 0, 0.2); + animation-name: fadeIn; + animation-fill-mode: both; + } +} +.sidebar-expand { + /* stylelint-disable-next-line scss/selector-no-union-class-name */ +} +@media (min-width: 992px) { + .sidebar-expand-lg.layout-fixed .app-main-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; + } + .sidebar-expand-lg.layout-fixed .app-sidebar-wrapper { + position: relative; + } + .sidebar-expand-lg.layout-fixed .app-main { + flex: 1 1 auto; + overflow: auto; + } + .sidebar-expand-lg.layout-fixed .app-sidebar { + position: sticky; + top: 0; + bottom: 0; + max-height: 100vh; + } + .sidebar-expand-lg.layout-fixed .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-lg.sidebar-open .nav-link > .nav-badge, + .sidebar-expand-lg.sidebar-open .nav-link > p > .nav-badge { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } + .sidebar-expand-lg.sidebar-open .nav-link > .nav-arrow, + .sidebar-expand-lg.sidebar-open .nav-link > p > .nav-arrow { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } +} +@media (max-width: 991.98px) { + .sidebar-expand-lg::before { + display: none; + content: "991.98px"; + } + .sidebar-expand-lg .app-sidebar { + position: fixed; + top: 0; + bottom: 0; + max-height: 100vh; + margin-right: calc(var(--lte-sidebar-width) * -1); + } + .sidebar-expand-lg .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-lg.sidebar-open .app-sidebar { + margin-right: 0; + } + .sidebar-expand-lg.sidebar-open .sidebar-overlay { + position: absolute; + inset: 0; + z-index: 1037; + width: 100%; + height: 100%; + cursor: pointer; + visibility: visible; + background-color: rgba(0, 0, 0, 0.2); + animation-name: fadeIn; + animation-fill-mode: both; + } +} +.sidebar-expand { + /* stylelint-disable-next-line scss/selector-no-union-class-name */ +} +@media (min-width: 1200px) { + .sidebar-expand-xl.layout-fixed .app-main-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; + } + .sidebar-expand-xl.layout-fixed .app-sidebar-wrapper { + position: relative; + } + .sidebar-expand-xl.layout-fixed .app-main { + flex: 1 1 auto; + overflow: auto; + } + .sidebar-expand-xl.layout-fixed .app-sidebar { + position: sticky; + top: 0; + bottom: 0; + max-height: 100vh; + } + .sidebar-expand-xl.layout-fixed .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-xl.sidebar-open .nav-link > .nav-badge, + .sidebar-expand-xl.sidebar-open .nav-link > p > .nav-badge { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } + .sidebar-expand-xl.sidebar-open .nav-link > .nav-arrow, + .sidebar-expand-xl.sidebar-open .nav-link > p > .nav-arrow { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } +} +@media (max-width: 1199.98px) { + .sidebar-expand-xl::before { + display: none; + content: "1199.98px"; + } + .sidebar-expand-xl .app-sidebar { + position: fixed; + top: 0; + bottom: 0; + max-height: 100vh; + margin-right: calc(var(--lte-sidebar-width) * -1); + } + .sidebar-expand-xl .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-xl.sidebar-open .app-sidebar { + margin-right: 0; + } + .sidebar-expand-xl.sidebar-open .sidebar-overlay { + position: absolute; + inset: 0; + z-index: 1037; + width: 100%; + height: 100%; + cursor: pointer; + visibility: visible; + background-color: rgba(0, 0, 0, 0.2); + animation-name: fadeIn; + animation-fill-mode: both; + } +} +.sidebar-expand { + /* stylelint-disable-next-line scss/selector-no-union-class-name */ +} +@media (min-width: 1400px) { + .sidebar-expand-xxl.layout-fixed .app-main-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; + } + .sidebar-expand-xxl.layout-fixed .app-sidebar-wrapper { + position: relative; + } + .sidebar-expand-xxl.layout-fixed .app-main { + flex: 1 1 auto; + overflow: auto; + } + .sidebar-expand-xxl.layout-fixed .app-sidebar { + position: sticky; + top: 0; + bottom: 0; + max-height: 100vh; + } + .sidebar-expand-xxl.layout-fixed .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-xxl.sidebar-open .nav-link > .nav-badge, + .sidebar-expand-xxl.sidebar-open .nav-link > p > .nav-badge { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } + .sidebar-expand-xxl.sidebar-open .nav-link > .nav-arrow, + .sidebar-expand-xxl.sidebar-open .nav-link > p > .nav-arrow { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; + } +} +@media (max-width: 1399.98px) { + .sidebar-expand-xxl::before { + display: none; + content: "1399.98px"; + } + .sidebar-expand-xxl .app-sidebar { + position: fixed; + top: 0; + bottom: 0; + max-height: 100vh; + margin-right: calc(var(--lte-sidebar-width) * -1); + } + .sidebar-expand-xxl .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; + } + .sidebar-expand-xxl.sidebar-open .app-sidebar { + margin-right: 0; + } + .sidebar-expand-xxl.sidebar-open .sidebar-overlay { + position: absolute; + inset: 0; + z-index: 1037; + width: 100%; + height: 100%; + cursor: pointer; + visibility: visible; + background-color: rgba(0, 0, 0, 0.2); + animation-name: fadeIn; + animation-fill-mode: both; + } +} +.sidebar-expand { + /* stylelint-disable-next-line scss/selector-no-union-class-name */ +} +.sidebar-expand.layout-fixed .app-main-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; +} +.sidebar-expand.layout-fixed .app-sidebar-wrapper { + position: relative; +} +.sidebar-expand.layout-fixed .app-main { + flex: 1 1 auto; + overflow: auto; +} +.sidebar-expand.layout-fixed .app-sidebar { + position: sticky; + top: 0; + bottom: 0; + max-height: 100vh; +} +.sidebar-expand.layout-fixed .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; +} +.sidebar-expand.sidebar-open .nav-link > .nav-badge, +.sidebar-expand.sidebar-open .nav-link > p > .nav-badge { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; +} +.sidebar-expand.sidebar-open .nav-link > .nav-arrow, +.sidebar-expand.sidebar-open .nav-link > p > .nav-arrow { + animation-name: fadeIn; + animation-duration: 0.3s; + animation-fill-mode: both; + animation-delay: 0.3s; +} +.sidebar-expand::before { + display: none; + content: ""; +} +.sidebar-expand .app-sidebar { + position: fixed; + top: 0; + bottom: 0; + max-height: 100vh; + margin-right: calc(var(--lte-sidebar-width) * -1); +} +.sidebar-expand .app-sidebar .sidebar-wrapper { + height: calc(100vh - (calc(3.5rem + 1px))); + overflow-x: hidden; + overflow-y: auto; +} +.sidebar-expand.sidebar-open .app-sidebar { + margin-right: 0; +} +.sidebar-expand.sidebar-open .sidebar-overlay { + position: absolute; + inset: 0; + z-index: 1037; + width: 100%; + height: 100%; + cursor: pointer; + visibility: visible; + background-color: rgba(0, 0, 0, 0.2); + animation-name: fadeIn; + animation-fill-mode: both; +} + +.sidebar-menu .nav-link p, +.app-sidebar .brand-text, +.app-sidebar .logo-xs, +.app-sidebar .logo-xl { + transition: margin-right 0.3s linear, opacity 0.3s ease, visibility 0.3s ease; +} +@media (prefers-reduced-motion: reduce) { + .sidebar-menu .nav-link p, + .app-sidebar .brand-text, + .app-sidebar .logo-xs, + .app-sidebar .logo-xl { + transition: none; + } +} + +.app-loaded.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link p, +.app-loaded.sidebar-mini.sidebar-collapse .brand-text { + animation-duration: 0.3s; +} + +body:not(.app-loaded) .app-header, +body:not(.app-loaded) .app-sidebar, +body:not(.app-loaded) .app-main, +body:not(.app-loaded) .app-footer { + transition: none !important; +} +@media (prefers-reduced-motion: reduce) { + body:not(.app-loaded) .app-header, + body:not(.app-loaded) .app-sidebar, + body:not(.app-loaded) .app-main, + body:not(.app-loaded) .app-footer { + transition: none; + } +} +body:not(.app-loaded) .app-header, +body:not(.app-loaded) .app-sidebar, +body:not(.app-loaded) .app-main, +body:not(.app-loaded) .app-footer { + animation-duration: 0s !important; +} + +.hold-transition .app-header, +.hold-transition .app-sidebar, +.hold-transition .app-main, +.hold-transition .app-footer, +.hold-transition .nav-arrow, +.hold-transition .nav-badge { + transition: none !important; +} +@media (prefers-reduced-motion: reduce) { + .hold-transition .app-header, + .hold-transition .app-sidebar, + .hold-transition .app-main, + .hold-transition .app-footer, + .hold-transition .nav-arrow, + .hold-transition .nav-badge { + transition: none; + } +} +.hold-transition .app-header, +.hold-transition .app-sidebar, +.hold-transition .app-main, +.hold-transition .app-footer, +.hold-transition .nav-arrow, +.hold-transition .nav-badge { + animation-duration: 0s !important; +} + +[data-bs-theme=dark].app-sidebar, +[data-bs-theme=dark] .app-sidebar { + --lte-sidebar-hover-bg: rgba(255, 255, 255, 0.1); + --lte-sidebar-color: #c2c7d0; + --lte-sidebar-hover-color: #fff; + --lte-sidebar-active-color: #fff; + --lte-sidebar-menu-active-bg: rgba(255, 255, 255, 0.1); + --lte-sidebar-menu-active-color: #fff; + --lte-sidebar-submenu-bg: transparent; + --lte-sidebar-submenu-color: #c2c7d0; + --lte-sidebar-submenu-hover-color: #fff; + --lte-sidebar-submenu-hover-bg: rgba(255, 255, 255, 0.1); + --lte-sidebar-submenu-active-color: #fff; + --lte-sidebar-submenu-active-bg: rgba(255, 255, 255, 0.1); + --lte-sidebar-header-color: rgb(197.05, 201.8, 210.35); +} + +.app-main { + position: relative; + display: flex; + flex-direction: column; + grid-area: lte-app-main; + max-width: 100vw; + padding-bottom: 0.75rem; + transition: 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .app-main { + transition: none; + } +} +.app-main .app-content-header { + padding: 1rem 0.5rem; +} +.app-main .app-content-header .breadcrumb { + padding: 0; + margin-bottom: 0; + line-height: 2.5rem; +} +.app-main .app-content-header .breadcrumb a { + text-decoration: none; +} +.app-main .app-content-top-area, +.app-main .app-content-bottom-area { + color: var(--bs-secondary-color); + background-color: var(--bs-body-bg); +} +.app-main .app-content-top-area { + padding: 1rem 0; + border-bottom: 1px solid var(--bs-border-color); +} +.app-main .app-content-bottom-area { + padding: 1rem 0; + margin-top: auto; + margin-bottom: -0.75rem; + border-top: 1px solid var(--bs-border-color); +} + +.app-footer { + grid-area: lte-app-footer; + width: inherit; + max-width: 100vw; + min-height: 3rem; + padding: 1rem; + color: var(--bs-secondary-color); + background-color: var(--bs-body-bg); + border-top: 1px solid var(--bs-border-color); + transition: 0.3s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .app-footer { + transition: none; + } +} + +.fixed-footer .app-footer { + position: sticky; + bottom: 0; + z-index: 1030; +} + +.fs-7 .dropdown-menu { + font-size: 0.875rem !important; +} +.fs-7 .dropdown-toggle::after { + vertical-align: 0.2rem; +} + +.dropdown-item-title { + margin: 0; + font-size: 1rem; +} + +.dropdown-icon::after { + margin-right: 0; +} + +.dropdown-menu-lg { + min-width: 280px; + max-width: 300px; + padding: 0; +} +.dropdown-menu-lg .dropdown-divider { + margin: 0; +} +.dropdown-menu-lg .dropdown-item { + padding: 0.5rem 1rem; +} +.dropdown-menu-lg p { + margin: 0; + word-wrap: break-word; + white-space: normal; +} + +.dropdown-submenu { + position: relative; +} +.dropdown-submenu > a::after { + border-top: 0.3em solid transparent; + border-left: 0; + border-bottom: 0.3em solid transparent; + border-right: 0.3em solid; + float: left; + margin-top: 0.5rem; + margin-right: 0.5rem; +} +.dropdown-submenu > .dropdown-menu { + top: 0; + right: 100%; + margin-top: 0; + margin-right: 0; +} + +.dropdown-hover:hover > .dropdown-menu, .dropdown-hover.nav-item.dropdown:hover > .dropdown-menu, +.dropdown-hover .dropdown-submenu:hover > .dropdown-menu, .dropdown-hover.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropdown-menu-xl { + min-width: 360px; + max-width: 420px; + padding: 0; +} +.dropdown-menu-xl .dropdown-divider { + margin: 0; +} +.dropdown-menu-xl .dropdown-item { + padding: 0.5rem 1rem; +} +.dropdown-menu-xl p { + margin: 0; + word-wrap: break-word; + white-space: normal; +} + +.dropdown-footer, +.dropdown-header { + display: block; + padding: 0.5rem 1rem; + font-size: 0.875rem; + text-align: center; +} + +.open:not(.dropup) > .animated-dropdown-menu { + animation: flipInX 0.7s both; + backface-visibility: visible !important; +} + +.navbar-custom-menu > .navbar-nav > li { + position: relative; +} +.navbar-custom-menu > .navbar-nav > li > .dropdown-menu { + position: absolute; + left: 0; + right: auto; +} + +@media (max-width: 575.98px) { + .navbar-custom-menu > .navbar-nav { + float: left; + } + .navbar-custom-menu > .navbar-nav > li { + position: static; + } + .navbar-custom-menu > .navbar-nav > li > .dropdown-menu { + position: absolute; + left: 5%; + right: auto; + background-color: var(--bs-body-bg); + border: 1px solid var(--bs-border-color); + } +} +.navbar-nav > .user-menu > .nav-link::after { + content: none; +} +.navbar-nav > .user-menu > .dropdown-menu { + border-top-right-radius: 0; + border-top-left-radius: 0; + width: 280px; + padding: 0; +} +.navbar-nav > .user-menu > .dropdown-menu, +.navbar-nav > .user-menu > .dropdown-menu > .user-body { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header { + min-height: 175px; + padding: 10px; + text-align: center; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img { + z-index: 5; + width: 90px; + height: 90px; + border: 3px solid; + border-color: transparent; + border-color: var(--bs-border-color-translucent); +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p { + z-index: 5; + margin-top: 10px; + font-size: 17px; + word-wrap: break-word; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small, .navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > .small { + display: block; + font-size: 12px; +} +.navbar-nav > .user-menu > .dropdown-menu > .user-body::after { + display: block; + clear: both; + content: ""; +} +.navbar-nav > .user-menu > .dropdown-menu > .user-body { + padding: 15px; + border-top: 1px solid var(--bs-border-color); + border-bottom: 1px solid var(--bs-border-color-translucent); +} +.navbar-nav > .user-menu > .dropdown-menu > .user-body a { + text-decoration: none; +} +@media (min-width: 576px) { + .navbar-nav > .user-menu > .dropdown-menu > .user-body a { + color: var(--bs-body-color) !important; + background-color: var(--bs-body-bg) !important; + } +} +.navbar-nav > .user-menu > .dropdown-menu > .user-footer::after { + display: block; + clear: both; + content: ""; +} +.navbar-nav > .user-menu > .dropdown-menu > .user-footer { + padding: 10px; + background-color: var(--bs-light-bg); +} +.navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default { + color: var(--bs-body-color); +} +@media (min-width: 576px) { + .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover { + background-color: var(--bs-body-bg); + } +} +@media (min-width: 576px) { + .navbar-nav > .user-menu .user-image { + float: none; + margin-top: -8px; + margin-left: 0.4rem; + line-height: 10px; + } +} +.navbar-nav > .user-menu .user-image { + float: right; + width: 2rem; + height: 2rem; + margin-top: -2px; + border-radius: 50%; +} + +.callout { + --bs-link-color-rgb: var(--lte-callout-link); + --bs-code-color: var(--lte-callout-code-color); + padding: 1.25rem; + color: var(--lte-callout-color, inherit); + background-color: var(--lte-callout-bg, var(--bs-gray-100)); + border-right: 0.25rem solid var(--lte-callout-border, var(--bs-gray-300)); +} +.callout .callout-link { + font-weight: 700; + color: var(--bs-callout-link-color); +} +.callout h4, .callout .h4 { + margin-bottom: 0.25rem; +} +.callout > :last-child { + margin-bottom: 0; +} +.callout + .callout { + margin-top: -0.25rem; +} + +.callout-primary { + --lte-callout-color: var(--bs-primary-text-emphasis); + --lte-callout-bg: var(--bs-primary-bg-subtle); + --lte-callout-border: var(--bs-primary-border-subtle); + --bs-callout-link-color: var(--bs-primary-text-emphasis); +} + +.callout-secondary { + --lte-callout-color: var(--bs-secondary-text-emphasis); + --lte-callout-bg: var(--bs-secondary-bg-subtle); + --lte-callout-border: var(--bs-secondary-border-subtle); + --bs-callout-link-color: var(--bs-secondary-text-emphasis); +} + +.callout-success { + --lte-callout-color: var(--bs-success-text-emphasis); + --lte-callout-bg: var(--bs-success-bg-subtle); + --lte-callout-border: var(--bs-success-border-subtle); + --bs-callout-link-color: var(--bs-success-text-emphasis); +} + +.callout-info { + --lte-callout-color: var(--bs-info-text-emphasis); + --lte-callout-bg: var(--bs-info-bg-subtle); + --lte-callout-border: var(--bs-info-border-subtle); + --bs-callout-link-color: var(--bs-info-text-emphasis); +} + +.callout-warning { + --lte-callout-color: var(--bs-warning-text-emphasis); + --lte-callout-bg: var(--bs-warning-bg-subtle); + --lte-callout-border: var(--bs-warning-border-subtle); + --bs-callout-link-color: var(--bs-warning-text-emphasis); +} + +.callout-danger { + --lte-callout-color: var(--bs-danger-text-emphasis); + --lte-callout-bg: var(--bs-danger-bg-subtle); + --lte-callout-border: var(--bs-danger-border-subtle); + --bs-callout-link-color: var(--bs-danger-text-emphasis); +} + +.callout-light { + --lte-callout-color: var(--bs-light-text-emphasis); + --lte-callout-bg: var(--bs-light-bg-subtle); + --lte-callout-border: var(--bs-light-border-subtle); + --bs-callout-link-color: var(--bs-light-text-emphasis); +} + +.callout-dark { + --lte-callout-color: var(--bs-dark-text-emphasis); + --lte-callout-bg: var(--bs-dark-bg-subtle); + --lte-callout-border: var(--bs-dark-border-subtle); + --bs-callout-link-color: var(--bs-dark-text-emphasis); +} + +.compact-mode .app-header { + max-height: 2.75rem; +} +.compact-mode .app-header .nav-link { + max-height: 1.75rem; +} +.compact-mode .nav-link { + --bs-nav-link-padding-y: .25rem; + --bs-nav-link-padding-x: .5rem; +} +.compact-mode.sidebar-mini.sidebar-collapse .app-sidebar:not(:hover) { + min-width: 3.1rem; + max-width: 3.1rem; +} +.compact-mode.sidebar-mini.sidebar-collapse .app-sidebar:not(:hover) .sidebar-menu .nav-link { + width: 2.1rem !important; +} +.compact-mode .logo-xs, +.compact-mode .logo-xl { + max-height: 2.75rem; +} +.compact-mode .brand-image { + width: 1.75rem; + height: 1.75rem; +} +.compact-mode .sidebar-brand { + height: 2.75rem; +} +.compact-mode .app-footer { + padding: 0.5rem; +} +.compact-mode .sidebar-wrapper .nav-icon { + min-width: 1.1rem; + max-width: 1.1rem; +} + +.astro-code { + padding: 0.75rem; + border-radius: 0.375rem; +} + +.progress { + border-radius: 1px; +} +.progress.vertical { + position: relative; + display: inline-block; + width: 30px; + height: 200px; + margin-left: 10px; +} +.progress.vertical > .progress-bar { + position: absolute; + bottom: 0; + width: 100%; +} +.progress.vertical.sm, .progress.vertical.progress-sm { + width: 20px; +} +.progress.vertical.xs, .progress.vertical.progress-xs { + width: 10px; +} +.progress.vertical.xxs, .progress.vertical.progress-xxs { + width: 3px; +} + +.progress-group { + margin-bottom: 0.5rem; +} + +.progress-sm { + height: 10px; +} + +.progress-xs { + height: 7px; +} + +.progress-xxs { + height: 3px; +} + +.table tr > td .progress { + margin: 0; +} + +.card { + box-shadow: 0 0 1px rgba(var(--bs-body-color-rgb), 0.125), 0 1px 3px rgba(var(--bs-body-color-rgb), 0.2); +} +.card[class*=card-]:not(.card-outline) > .card-header, .card[class*=text-bg-]:not(.card-outline) > .card-header { + color: var(--lte-card-variant-color); + background-color: var(--lte-card-variant-bg); +} +.card[class*=card-]:not(.card-outline) > .card-header .btn-tool, .card[class*=text-bg-]:not(.card-outline) > .card-header .btn-tool { + --bs-btn-color: rgba(var(--lte-card-variant-color-rgb), .8); + --bs-btn-hover-color: var(--lte-card-variant-color); +} +.card.card-outline { + border-top: 3px solid var(--lte-card-variant-bg); +} +.card.maximized-card { + position: fixed; + top: 0; + right: 0; + z-index: 1050; + width: 100% !important; + max-width: 100% !important; + height: 100% !important; + max-height: 100% !important; +} +.card.maximized-card.was-collapsed .card-body { + display: block !important; +} +.card.maximized-card .card-body { + overflow: auto; +} +.card.maximized-card [data-lte-toggle=card-collapse] { + display: none; +} +.card.maximized-card [data-lte-icon=maximize] { + display: none; +} +.card.maximized-card .card-header, +.card.maximized-card .card-footer { + border-radius: 0 !important; +} +.card:not(.maximized-card) [data-lte-icon=minimize] { + display: none; +} +.card.collapsed-card [data-lte-icon=collapse] { + display: none; +} +.card.collapsed-card .card-body, +.card.collapsed-card .card-footer { + display: none; +} +.card:not(.collapsed-card) [data-lte-icon=expand] { + display: none; +} +.card .nav.flex-column > li { + margin: 0; + border-bottom: 1px solid var(--bs-border-color-translucent); +} +.card .nav.flex-column > li:last-of-type { + border-bottom: 0; +} +.card.height-control .card-body { + max-height: 300px; + overflow: auto; +} +.card .border-end { + border-left: 1px solid var(--bs-border-color-translucent); +} +.card .border-start { + border-right: 1px solid var(--bs-border-color-translucent); +} +.card.card-tabs:not(.card-outline) > .card-header { + border-bottom: 0; +} +.card.card-tabs:not(.card-outline) > .card-header .nav-item:first-child .nav-link { + border-right-color: transparent; +} +.card.card-tabs.card-outline .nav-item { + border-bottom: 0; +} +.card.card-tabs.card-outline .nav-item:first-child .nav-link { + margin-right: 0; + border-right: 0; +} +.card.card-tabs .card-tools { + margin: 0.3rem 0.5rem; +} +.card.card-tabs:not(.expanding-card).collapsed-card .card-header { + border-bottom: 0; +} +.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs { + border-bottom: 0; +} +.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item { + margin-bottom: 0; +} +.card.card-tabs.expanding-card .card-header .nav-tabs .nav-item { + margin-bottom: -1px; +} +.card.card-outline-tabs { + border-top: 0; +} +.card.card-outline-tabs .card-header .nav-item:first-child .nav-link { + margin-right: 0; + border-right: 0; +} +.card.card-outline-tabs .card-header a { + text-decoration: none; + border-top: 3px solid transparent; +} +.card.card-outline-tabs .card-header a:hover { + border-top: 3px solid var(--bs-border-color); +} +.card.card-outline-tabs .card-header a.active:hover { + margin-top: 0; +} +.card.card-outline-tabs .card-tools { + margin: 0.5rem 0.5rem 0.3rem; +} +.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header { + border-bottom: 0; +} +.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs { + border-bottom: 0; +} +.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item { + margin-bottom: 0; +} +.card.card-outline-tabs.expanding-card .card-header .nav-tabs .nav-item { + margin-bottom: -1px; +} + +html.maximized-card { + overflow: hidden; +} + +.card-header::after, +.card-body::after, +.card-footer::after { + display: block; + clear: both; + content: ""; +} + +.card-header { + position: relative; + padding: 1rem 1rem; + background-color: transparent; + border-bottom: 1px solid var(--bs-border-color-translucent); + border-top-right-radius: 0.375rem; + border-top-left-radius: 0.375rem; +} +.collapsed-card .card-header { + border-bottom: 0; +} +.card-header > .card-tools { + float: left; + margin-left: -0.5rem; +} +.card-header > .card-tools .input-group, +.card-header > .card-tools .nav, +.card-header > .card-tools .pagination { + margin-top: -0.4rem; + margin-bottom: -0.4rem; +} +.card-header > .card-tools [data-bs-toggle=tooltip] { + position: relative; +} + +.card-title { + float: right; + margin: 0; + font-size: 1.1rem; + font-weight: 400; +} + +.btn-tool { + --bs-btn-padding-x: .5rem; + --bs-btn-padding-y: .25rem; +} +.btn-tool:not(.btn-tool-custom) { + --bs-btn-color: var(--bs-tertiary-color); + --bs-btn-bg: transparent; + --bs-btn-box-shadow: none; + --bs-btn-hover-color: var(--bs-secondary-color); + --bs-btn-active-border-color: transparent; +} +.btn-tool { + margin: -1rem 0; + font-size: 0.875rem; +} + +.card-primary, +.bg-primary, +.text-bg-primary { + --lte-card-variant-bg: #0d6efd; + --lte-card-variant-bg-rgb: 13, 110, 253; + --lte-card-variant-color: #fff; + --lte-card-variant-color-rgb: 255, 255, 255; +} + +.card-secondary, +.bg-secondary, +.text-bg-secondary { + --lte-card-variant-bg: #6c757d; + --lte-card-variant-bg-rgb: 108, 117, 125; + --lte-card-variant-color: #fff; + --lte-card-variant-color-rgb: 255, 255, 255; +} + +.card-success, +.bg-success, +.text-bg-success { + --lte-card-variant-bg: #198754; + --lte-card-variant-bg-rgb: 25, 135, 84; + --lte-card-variant-color: #fff; + --lte-card-variant-color-rgb: 255, 255, 255; +} + +.card-info, +.bg-info, +.text-bg-info { + --lte-card-variant-bg: #0dcaf0; + --lte-card-variant-bg-rgb: 13, 202, 240; + --lte-card-variant-color: #000; + --lte-card-variant-color-rgb: 0, 0, 0; +} + +.card-warning, +.bg-warning, +.text-bg-warning { + --lte-card-variant-bg: #ffc107; + --lte-card-variant-bg-rgb: 255, 193, 7; + --lte-card-variant-color: #000; + --lte-card-variant-color-rgb: 0, 0, 0; +} + +.card-danger, +.bg-danger, +.text-bg-danger { + --lte-card-variant-bg: #dc3545; + --lte-card-variant-bg-rgb: 220, 53, 69; + --lte-card-variant-color: #fff; + --lte-card-variant-color-rgb: 255, 255, 255; +} + +.card-light, +.bg-light, +.text-bg-light { + --lte-card-variant-bg: #f8f9fa; + --lte-card-variant-bg-rgb: 248, 249, 250; + --lte-card-variant-color: #000; + --lte-card-variant-color-rgb: 0, 0, 0; +} + +.card-dark, +.bg-dark, +.text-bg-dark { + --lte-card-variant-bg: #212529; + --lte-card-variant-bg-rgb: 33, 37, 41; + --lte-card-variant-color: #fff; + --lte-card-variant-color-rgb: 255, 255, 255; +} + +.card-body > .table { + margin-bottom: 0; +} +.card-body > .table > thead > tr > th, +.card-body > .table > thead > tr > td { + border-top-width: 0; +} + +.table:not(.table-dark) { + color: inherit; +} +.table.table-head-fixed thead tr:nth-child(1) th { + position: sticky; + top: 0; + z-index: 10; + background-color: #fff; + border-bottom: 0; + box-shadow: inset 0 1px 0 var(--bs-border-color), inset 0 -1px 0 var(--bs-border-color); +} +.table.no-border, +.table.no-border td, +.table.no-border th { + border: 0; +} +.table.text-center, +.table.text-center td, +.table.text-center th { + text-align: center; +} +.table.table-valign-middle thead > tr > th, +.table.table-valign-middle thead > tr > td, +.table.table-valign-middle tbody > tr > th, +.table.table-valign-middle tbody > tr > td { + vertical-align: middle; +} +.card-body.p-0 .table thead > tr > th:first-of-type, +.card-body.p-0 .table thead > tr > td:first-of-type, +.card-body.p-0 .table tfoot > tr > th:first-of-type, +.card-body.p-0 .table tfoot > tr > td:first-of-type, +.card-body.p-0 .table tbody > tr > th:first-of-type, +.card-body.p-0 .table tbody > tr > td:first-of-type { + padding-right: 1.5rem; +} +.card-body.p-0 .table thead > tr > th:last-of-type, +.card-body.p-0 .table thead > tr > td:last-of-type, +.card-body.p-0 .table tfoot > tr > th:last-of-type, +.card-body.p-0 .table tfoot > tr > td:last-of-type, +.card-body.p-0 .table tbody > tr > th:last-of-type, +.card-body.p-0 .table tbody > tr > td:last-of-type { + padding-left: 1.5rem; +} + +.small-box { + border-radius: 0.375rem; + box-shadow: 0 0 1px rgba(var(--bs-body-color-rgb), 0.125), 0 1px 3px rgba(var(--bs-body-color-rgb), 0.2); + position: relative; + display: block; + margin-bottom: 1.25rem; + --bs-link-color-rgb: none; + --bs-link-hover-color-rgb: none; + --bs-heading-color: none; +} +.small-box > .inner { + padding: 10px; +} +.small-box > .small-box-footer { + position: relative; + z-index: 10; + display: block; + padding: 3px 0; + text-align: center; + background-color: rgba(0, 0, 0, 0.07); +} +.small-box > .small-box-footer:hover { + background-color: rgba(0, 0, 0, 0.1); +} +.small-box h3, .small-box .h3 { + font-size: calc(1.345rem + 1.14vw); +} +@media (min-width: 1200px) { + .small-box h3, .small-box .h3 { + font-size: 2.2rem; + } +} +.small-box h3, .small-box .h3 { + padding: 0; + margin: 0 0 10px; + font-weight: 700; + white-space: nowrap; +} +@media (min-width: 992px) { + .col-xl-2 .small-box h3, .col-xl-2 .small-box .h3, .col-lg-2 .small-box h3, .col-lg-2 .small-box .h3, .col-md-2 .small-box h3, .col-md-2 .small-box .h3 { + font-size: calc(1.285rem + 0.42vw); + } +} +@media (min-width: 992px) and (min-width: 1200px) { + .col-xl-2 .small-box h3, .col-xl-2 .small-box .h3, .col-lg-2 .small-box h3, .col-lg-2 .small-box .h3, .col-md-2 .small-box h3, .col-md-2 .small-box .h3 { + font-size: 1.6rem; + } +} +@media (min-width: 992px) { + .col-xl-3 .small-box h3, .col-xl-3 .small-box .h3, .col-lg-3 .small-box h3, .col-lg-3 .small-box .h3, .col-md-3 .small-box h3, .col-md-3 .small-box .h3 { + font-size: calc(1.285rem + 0.42vw); + } +} +@media (min-width: 992px) and (min-width: 1200px) { + .col-xl-3 .small-box h3, .col-xl-3 .small-box .h3, .col-lg-3 .small-box h3, .col-lg-3 .small-box .h3, .col-md-3 .small-box h3, .col-md-3 .small-box .h3 { + font-size: 1.6rem; + } +} +@media (min-width: 1200px) { + .col-xl-2 .small-box h3, .col-xl-2 .small-box .h3, .col-lg-2 .small-box h3, .col-lg-2 .small-box .h3, .col-md-2 .small-box h3, .col-md-2 .small-box .h3 { + font-size: calc(1.345rem + 1.14vw); + } +} +@media (min-width: 1200px) and (min-width: 1200px) { + .col-xl-2 .small-box h3, .col-xl-2 .small-box .h3, .col-lg-2 .small-box h3, .col-lg-2 .small-box .h3, .col-md-2 .small-box h3, .col-md-2 .small-box .h3 { + font-size: 2.2rem; + } +} +@media (min-width: 1200px) { + .col-xl-3 .small-box h3, .col-xl-3 .small-box .h3, .col-lg-3 .small-box h3, .col-lg-3 .small-box .h3, .col-md-3 .small-box h3, .col-md-3 .small-box .h3 { + font-size: calc(1.345rem + 1.14vw); + } +} +@media (min-width: 1200px) and (min-width: 1200px) { + .col-xl-3 .small-box h3, .col-xl-3 .small-box .h3, .col-lg-3 .small-box h3, .col-lg-3 .small-box .h3, .col-md-3 .small-box h3, .col-md-3 .small-box .h3 { + font-size: 2.2rem; + } +} +.small-box p { + font-size: 1rem; +} +.small-box p > small, .small-box p > .small { + display: block; + margin-top: 5px; + font-size: 0.9rem; + color: #f8f9fa; +} +.small-box h3, .small-box .h3, +.small-box p { + z-index: 5; +} +.small-box .small-box-icon { + position: absolute; + top: 15px; + left: 15px; + z-index: 0; + height: 70px; + font-size: 70px; + color: rgba(0, 0, 0, 0.15); + transition: transform 0.3s linear; +} +@media (prefers-reduced-motion: reduce) { + .small-box .small-box-icon { + transition: none; + } +} +.small-box:hover .small-box-icon { + transform: scale(1.1); +} + +@media (max-width: 575.98px) { + .small-box { + text-align: center; + } + .small-box .small-box-icon { + display: none; + } + .small-box p { + font-size: 12px; + } +} +.info-box { + box-shadow: 0 0 1px rgba(var(--bs-body-color-rgb), 0.125), 0 1px 3px rgba(var(--bs-body-color-rgb), 0.2); + border-radius: 0.375rem; + position: relative; + display: flex; + width: 100%; + min-height: 80px; + padding: 0.5rem; + margin-bottom: 1rem; + color: var(--bs-body-color); + background-color: var(--bs-body-bg); +} +.info-box .progress { + height: 2px; + margin: 5px 0; + background-color: rgba(var(--lte-card-variant-color-rgb), 0.125); +} +.info-box .progress .progress-bar { + background-color: var(--lte-card-variant-color); +} +.info-box .info-box-icon { + display: flex; + align-items: center; + justify-content: center; + width: 70px; + font-size: 1.875rem; + text-align: center; + border-radius: 0.375rem; +} +.info-box .info-box-icon > img { + max-width: 100%; +} +.info-box .info-box-content { + display: flex; + flex: 1; + flex-direction: column; + justify-content: center; + padding: 0 10px; + line-height: 1.8; +} +.info-box .info-box-number { + display: block; + margin-top: 0.25rem; + font-weight: 700; +} +.info-box .progress-description, +.info-box .info-box-text { + display: block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.info-box .info-box-more { + display: block; +} +.info-box .progress-description { + margin: 0; +} +@media (min-width: 768px) { + .col-xl-2 .info-box .progress-description, .col-lg-2 .info-box .progress-description, .col-md-2 .info-box .progress-description { + display: none; + } + .col-xl-3 .info-box .progress-description, .col-lg-3 .info-box .progress-description, .col-md-3 .info-box .progress-description { + display: none; + } +} +@media (min-width: 992px) { + .col-xl-2 .info-box .progress-description, .col-lg-2 .info-box .progress-description, .col-md-2 .info-box .progress-description { + font-size: 0.75rem; + display: block; + } + .col-xl-3 .info-box .progress-description, .col-lg-3 .info-box .progress-description, .col-md-3 .info-box .progress-description { + font-size: 0.75rem; + display: block; + } +} +@media (min-width: 1200px) { + .col-xl-2 .info-box .progress-description, .col-lg-2 .info-box .progress-description, .col-md-2 .info-box .progress-description { + font-size: 1rem; + display: block; + } + .col-xl-3 .info-box .progress-description, .col-lg-3 .info-box .progress-description, .col-md-3 .info-box .progress-description { + font-size: 1rem; + display: block; + } +} + +.timeline { + position: relative; + padding: 0; + margin: 0 0 45px; +} +.timeline::before { + border-radius: 0.375rem; + position: absolute; + top: 0; + bottom: 0; + right: 31px; + width: 4px; + margin: 0; + content: ""; + background-color: var(--bs-border-color); +} +.timeline > div::before, .timeline > div::after { + display: table; + content: ""; +} +.timeline > div { + position: relative; + margin-left: 10px; + margin-bottom: 15px; +} +.timeline > div > .timeline-item { + box-shadow: 0 0 1px rgba(var(--bs-body-color-rgb), 0.125), 0 1px 3px rgba(var(--bs-body-color-rgb), 0.2); + border-radius: 0.375rem; + position: relative; + padding: 0; + margin-top: 0; + margin-left: 15px; + margin-right: 60px; + color: var(--bs-body-color); + background-color: var(--bs-body-bg); +} +.timeline > div > .timeline-item > .time { + float: left; + padding: 10px; + font-size: 12px; + color: var(--bs-secondary-color); +} +.timeline > div > .timeline-item > .timeline-header { + padding: 10px; + margin: 0; + font-size: 16px; + line-height: 1.1; + color: var(--bs-secondary-color); + border-bottom: 1px solid var(--bs-border-color); +} +.timeline > div > .timeline-item > .timeline-header > a { + font-weight: 600; + text-decoration: none; +} +.timeline > div > .timeline-item > .timeline-body, +.timeline > div > .timeline-item > .timeline-footer { + padding: 10px; +} +.timeline > div > .timeline-item > .timeline-body > img { + margin: 10px; +} +.timeline > div > .timeline-item > .timeline-body > dl, +.timeline > div > .timeline-item > .timeline-body ol, +.timeline > div > .timeline-item > .timeline-body ul { + margin: 0; +} +.timeline > div .timeline-icon { + position: absolute; + top: 0; + right: 18px; + width: 30px; + height: 30px; + font-size: 16px; + line-height: 30px; + text-align: center; + background-color: var(--bs-secondary-bg); + border-radius: 50%; +} +.timeline > .time-label > span { + border-radius: 4px; + display: inline-block; + padding: 5px; + font-weight: 600; + background-color: var(--bs-body-bg); +} + +.timeline-inverse > div > .timeline-item { + box-shadow: none; + background-color: var(--bs-tertiary-bg); + border: 1px solid var(--bs-border-color); +} +.timeline-inverse > div > .timeline-item > .timeline-header { + border-bottom-color: var(--bs-border-color); +} + +.direct-chat .card-body { + position: relative; + padding: 0; + overflow-x: hidden; +} +.direct-chat.chat-pane-open .direct-chat-contacts { + transform: translate(0, 0); +} +.direct-chat.timestamp-light .direct-chat-timestamp { + color: rgba(var(--bs-body-color-rgb), 0.65); +} +.direct-chat.timestamp-dark .direct-chat-timestamp { + color: rgba(var(--bs-body-color-rgb), 0.9); +} + +.direct-chat-messages { + height: 250px; + padding: 10px; + overflow: auto; + transform: translate(0, 0); +} + +.direct-chat-msg, +.direct-chat-text { + display: block; +} + +.direct-chat-msg::after { + display: block; + clear: both; + content: ""; +} +.direct-chat-msg { + margin-bottom: 10px; +} + +.direct-chat-messages, +.direct-chat-contacts { + transition: transform 0.5s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .direct-chat-messages, + .direct-chat-contacts { + transition: none; + } +} + +.direct-chat-text { + border-radius: 0.5rem; + position: relative; + padding: 5px 10px; + margin: 5px 50px 0 0; + color: var(--bs-emphasis-color); + background-color: var(--bs-secondary-bg); + border: 1px solid var(--bs-border-color); +} +.direct-chat-text::after, .direct-chat-text::before { + position: absolute; + top: 15px; + left: 100%; + width: 0; + height: 0; + pointer-events: none; + content: " "; + border: solid transparent; + border-left-color: var(--bs-border-color); +} +.direct-chat-text::after { + margin-top: -5px; + border-width: 5px; +} +.direct-chat-text::before { + margin-top: -6px; + border-width: 6px; +} +.end .direct-chat-text { + margin-left: 50px; + margin-right: 0; +} +.end .direct-chat-text::after, .end .direct-chat-text::before { + left: auto; + right: 100%; + border-left-color: transparent; + border-right-color: var(--bs-border-color); +} + +.direct-chat-img { + border-radius: 50%; + float: right; + width: 40px; + height: 40px; +} +.end .direct-chat-img { + float: left; +} + +.direct-chat-infos { + display: block; + margin-bottom: 2px; + font-size: 0.875rem; +} + +.direct-chat-name { + font-weight: 600; +} + +.direct-chat-timestamp { + color: rgba(var(--bs-body-color-rgb), 0.75); +} + +.direct-chat-contacts-open .direct-chat-contacts { + transform: translate(0, 0); +} + +.direct-chat-contacts { + position: absolute; + top: 0; + bottom: 0; + width: 100%; + height: 250px; + overflow: auto; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + transform: translate(-101%, 0); +} + +.direct-chat-contacts-light { + background-color: var(--bs-light-bg-subtle); +} +.direct-chat-contacts-light .contacts-list-name { + color: var(--bs-body-color); +} +.direct-chat-contacts-light .contacts-list-date { + color: var(--bs-secondary-color); +} +.direct-chat-contacts-light .contacts-list-msg { + color: var(--bs-secondary-color); +} + +.contacts-list { + padding-right: 0; + list-style: none; +} +.contacts-list > li::after { + display: block; + clear: both; + content: ""; +} +.contacts-list > li { + padding: 10px; + margin: 0; + text-decoration: none; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); +} +.contacts-list > li:last-of-type { + border-bottom: 0; +} +.contacts-list > li a { + text-decoration: none; +} + +.contacts-list-img { + border-radius: 50%; + float: right; + width: 40px; +} + +.contacts-list-info { + margin-right: 45px; + color: var(--bs-body-bg); +} + +.contacts-list-name, +.contacts-list-status { + display: block; +} + +.contacts-list-name { + font-weight: 600; +} + +.contacts-list-status { + font-size: 0.875rem; +} + +.contacts-list-date { + font-weight: 400; + color: var(--bs-secondary-bg); +} + +.contacts-list-msg { + color: var(--bs-secondary-bg); +} + +.end > .direct-chat-text { + color: var(--lte-direct-chat-color); + background-color: var(--lte-direct-chat-bg); + border-color: var(--lte-direct-chat-bg); +} +.end > .direct-chat-text::after, .end > .direct-chat-text::before { + border-right-color: var(--lte-direct-chat-bg); +} + +.direct-chat-primary { + --lte-direct-chat-color: #fff; + --lte-direct-chat-bg: #0d6efd; +} + +.direct-chat-secondary { + --lte-direct-chat-color: #fff; + --lte-direct-chat-bg: #6c757d; +} + +.direct-chat-success { + --lte-direct-chat-color: #fff; + --lte-direct-chat-bg: #198754; +} + +.direct-chat-info { + --lte-direct-chat-color: #000; + --lte-direct-chat-bg: #0dcaf0; +} + +.direct-chat-warning { + --lte-direct-chat-color: #000; + --lte-direct-chat-bg: #ffc107; +} + +.direct-chat-danger { + --lte-direct-chat-color: #fff; + --lte-direct-chat-bg: #dc3545; +} + +.direct-chat-light { + --lte-direct-chat-color: #000; + --lte-direct-chat-bg: #f8f9fa; +} + +.direct-chat-dark { + --lte-direct-chat-color: #fff; + --lte-direct-chat-bg: #212529; +} + +.toast-primary { + --bs-toast-header-color: #fff; + --bs-toast-header-bg: #0d6efd; + --bs-toast-header-border-color: #0d6efd; + --bs-toast-border-color: #0d6efd; + --bs-toast-bg: var(--bs-primary-bg-subtle); +} +.toast-primary .btn-close { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +.toast-secondary { + --bs-toast-header-color: #fff; + --bs-toast-header-bg: #6c757d; + --bs-toast-header-border-color: #6c757d; + --bs-toast-border-color: #6c757d; + --bs-toast-bg: var(--bs-secondary-bg-subtle); +} +.toast-secondary .btn-close { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +.toast-success { + --bs-toast-header-color: #fff; + --bs-toast-header-bg: #198754; + --bs-toast-header-border-color: #198754; + --bs-toast-border-color: #198754; + --bs-toast-bg: var(--bs-success-bg-subtle); +} +.toast-success .btn-close { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +.toast-info { + --bs-toast-header-color: #000; + --bs-toast-header-bg: #0dcaf0; + --bs-toast-header-border-color: #0dcaf0; + --bs-toast-border-color: #0dcaf0; + --bs-toast-bg: var(--bs-info-bg-subtle); +} + +.toast-warning { + --bs-toast-header-color: #000; + --bs-toast-header-bg: #ffc107; + --bs-toast-header-border-color: #ffc107; + --bs-toast-border-color: #ffc107; + --bs-toast-bg: var(--bs-warning-bg-subtle); +} + +.toast-danger { + --bs-toast-header-color: #fff; + --bs-toast-header-bg: #dc3545; + --bs-toast-header-border-color: #dc3545; + --bs-toast-border-color: #dc3545; + --bs-toast-bg: var(--bs-danger-bg-subtle); +} +.toast-danger .btn-close { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +.toast-light { + --bs-toast-header-color: #000; + --bs-toast-header-bg: #f8f9fa; + --bs-toast-header-border-color: #f8f9fa; + --bs-toast-border-color: #f8f9fa; + --bs-toast-bg: var(--bs-light-bg-subtle); +} + +.toast-dark { + --bs-toast-header-color: #fff; + --bs-toast-header-bg: #212529; + --bs-toast-header-border-color: #212529; + --bs-toast-border-color: #212529; + --bs-toast-bg: var(--bs-dark-bg-subtle); +} +.toast-dark .btn-close { + --bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%); +} + +[data-bs-theme=dark] .toast-info .btn-close { + --bs-btn-close-white-filter: none; +} +[data-bs-theme=dark] .toast-warning .btn-close { + --bs-btn-close-white-filter: none; +} +[data-bs-theme=dark] .toast-light .btn-close { + --bs-btn-close-white-filter: none; +} +.login-logo, +.register-logo { + margin-bottom: 0.9rem; + font-size: 2.1rem; + font-weight: 300; + text-align: center; +} +.login-logo a, +.register-logo a { + color: var(--bs-secondary-color); + text-decoration: none; +} + +.login-page, +.register-page { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 100vh; +} + +.login-box, +.register-box { + width: 360px; +} +@media (max-width: 576px) { + .login-box, + .register-box { + width: 90%; + margin-top: 0.5rem; + } +} +.login-box .card, +.register-box .card { + margin-bottom: 0; +} + +.login-card-body, +.register-card-body { + padding: 20px; + color: var(--bs-secondary-color); + background-color: var(--bs-body-bg); + border-top: 0; +} +.login-card-body .input-group .form-control:focus, +.register-card-body .input-group .form-control:focus { + box-shadow: none; +} +.login-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text, +.login-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text, +.register-card-body .input-group .form-control:focus ~ .input-group-prepend .input-group-text, +.register-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text { + border-color: rgb(134, 182.5, 254); +} +.login-card-body .input-group .form-control.is-valid:focus, +.register-card-body .input-group .form-control.is-valid:focus { + box-shadow: none; +} +.login-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text, +.login-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text, +.register-card-body .input-group .form-control.is-valid ~ .input-group-prepend .input-group-text, +.register-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text { + border-color: #198754; +} +.login-card-body .input-group .form-control.is-invalid:focus, +.register-card-body .input-group .form-control.is-invalid:focus { + box-shadow: none; +} +.login-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text, +.register-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text { + border-color: #dc3545; +} +.login-card-body .input-group .input-group-text, +.register-card-body .input-group .input-group-text { + color: var(--bs-secondary-color); + background-color: transparent; + border-top-left-radius: 0.375rem; + border-bottom-left-radius: 0.375rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .login-card-body .input-group .input-group-text, + .register-card-body .input-group .input-group-text { + transition: none; + } +} + +.login-box-msg, +.register-box-msg { + padding: 0 20px 20px; + margin: 0; + text-align: center; +} + +.social-auth-links { + margin: 10px 0; +} + +.lockscreen .lockscreen-name { + font-weight: 600; + text-align: center; +} +.lockscreen .lockscreen-logo { + margin-bottom: 25px; + font-size: 35px; + font-weight: 300; + text-align: center; +} +.lockscreen .lockscreen-logo a { + color: var(--bs-emphasis-color); + text-decoration: none; +} +.lockscreen .lockscreen-wrapper { + max-width: 400px; + margin: 0 auto; + margin-top: 10%; +} +.lockscreen .lockscreen-item { + position: relative; + width: 290px; + padding: 0; + margin: 10px auto 30px; + background-color: var(--bs-body-bg); + border-radius: 4px; +} +.lockscreen .lockscreen-image { + position: absolute; + top: -25px; + right: -10px; + z-index: 10; + padding: 5px; + background-color: var(--bs-body-bg); + border-radius: 50%; +} +.lockscreen .lockscreen-image > img { + border-radius: 50%; + width: 70px; + height: 70px; +} +.lockscreen .lockscreen-credentials { + margin-right: 70px; +} +.lockscreen .lockscreen-credentials .form-control { + border: 0; +} +.lockscreen .lockscreen-credentials .btn { + padding: 0 10px; + border: 0; +} +.lockscreen .lockscreen-footer { + margin-top: 10px; +} + +.img-size-64, +.img-size-50, +.img-size-32 { + height: auto; +} + +.img-size-64 { + width: 64px; +} + +.img-size-50 { + width: 50px; +} + +.img-size-32 { + width: 32px; +} + +/* ========================================================================== + AdminLTE Accessibility Styles - WCAG 2.1 AA Compliance + ========================================================================== */ +/* Skip Links - WCAG 2.4.1: Bypass Blocks */ +.skip-link { + position: absolute; + top: -40px; + right: 6px; + z-index: 999999; + padding: 8px 16px; + font-weight: 600; + color: var(--bs-white); + text-decoration: none; + background: var(--bs-primary); +} +.skip-link:focus { + top: 0; + outline: 3px solid var(--bs-warning); + outline-offset: 2px; +} +.skip-link:hover { + color: var(--bs-white); + text-decoration: none; + background: var(--bs-primary-emphasis); +} + +/* Enhanced Focus Indicators - WCAG 2.4.7: Focus Visible */ +.focus-enhanced:focus { + outline: 3px solid var(--bs-focus-ring-color, #0d6efd); + outline-offset: 2px; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +/* High Contrast Mode Support */ +@media (prefers-contrast: high) { + .card { + border: 2px solid; + } + .btn { + border-width: 2px; + } + .nav-link { + border: 1px solid transparent; + } + .nav-link:hover, .nav-link:focus { + border-color: currentcolor; + } +} +/* Reduced Motion Support - WCAG 2.3.3: Animation from Interactions */ +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + transition-duration: 0.01ms !important; + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + scroll-behavior: auto !important; + } + .fade { + opacity: 1 !important; + /* stylelint-disable-next-line property-disallowed-list */ + transition: none !important; + } + .collapse { + /* stylelint-disable-next-line property-disallowed-list */ + transition: none !important; + } + .modal.fade .modal-dialog { + transform: none !important; + } +} +/* Screen Reader Only Content */ +.sr-only { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +.sr-only-focusable:focus { + position: static !important; + width: auto !important; + height: auto !important; + padding: inherit !important; + margin: inherit !important; + overflow: visible !important; + clip: auto !important; + white-space: normal !important; +} + +/* Focus Trap Utilities */ +.focus-trap:focus { + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +/* Accessible Color Combinations - WCAG 1.4.3: Contrast (Minimum) */ +.text-accessible-primary { + color: #003d82; /* 4.5:1 contrast on white */ +} + +.text-accessible-success { + color: #0f5132; /* 4.5:1 contrast on white */ +} + +.text-accessible-danger { + color: #842029; /* 4.5:1 contrast on white */ +} + +.text-accessible-warning { + color: #664d03; /* 4.5:1 contrast on white */ +} + +/* ARIA Live Regions */ +.live-region { + position: absolute; + right: -10000px; + width: 1px; + height: 1px; + overflow: hidden; +} +.live-region.live-region-visible { + position: static; + right: auto; + width: auto; + height: auto; + overflow: visible; +} + +/* Enhanced Error States - WCAG 3.3.1: Error Identification */ +.form-control.is-invalid { + border-color: var(--bs-danger); +} +.form-control.is-invalid:focus { + border-color: var(--bs-danger); + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); +} + +.invalid-feedback { + display: block; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-danger); +} +.invalid-feedback[role=alert] { + font-weight: 600; +} + +/* Target Size - WCAG 2.5.8: Target Size (Minimum) */ +.touch-target { + min-width: 44px; + min-height: 44px; +} +.touch-target.touch-target-small { + min-width: 24px; + min-height: 24px; +} + +/* Table Accessibility */ +.table-accessible th { + font-weight: 600; + background-color: var(--bs-secondary-bg); +} +.table-accessible th[scope=col] { + border-bottom: 2px solid var(--bs-border-color); +} +.table-accessible th[scope=row] { + border-left: 2px solid var(--bs-border-color); +} +.table-accessible caption { + padding: 0.75rem; + font-weight: 600; + color: var(--bs-secondary); + text-align: right; + caption-side: top; +} + +/* Navigation Landmarks */ +nav[role=navigation]:not([aria-label]):not([aria-labelledby])::before { + position: absolute; + right: -10000px; + content: "Navigation"; +} + +/* Form Fieldset Styling */ +fieldset { + padding: 1rem; + margin-bottom: 1rem; + border: 1px solid var(--bs-border-color); +} +fieldset legend { + padding: 0 0.5rem; + margin-bottom: 0.5rem; + font-size: 1.1em; + font-weight: 600; +} + +/* Loading States */ +.loading[aria-busy=true] { + position: relative; + pointer-events: none; +} +.loading[aria-busy=true]::after { + position: absolute; + top: 50%; + right: 50%; + width: 20px; + height: 20px; + margin-top: -10px; + margin-right: -10px; + content: ""; + border: 2px solid var(--bs-primary); + border-top-color: transparent; + animation: spin 1s linear infinite; +} +@media (prefers-reduced-motion: reduce) { + .loading[aria-busy=true]::after { + border-top-color: var(--bs-primary); + animation: none; + } +} + +@keyframes spin { + to { + transform: rotate(-360deg); + } +} +/* Dark Mode Accessibility */ +[data-bs-theme=dark] .text-accessible-primary { + color: #6ea8fe; +} +[data-bs-theme=dark] .text-accessible-success { + color: #75b798; +} +[data-bs-theme=dark] .text-accessible-danger { + color: #f1aeb5; +} +[data-bs-theme=dark] .text-accessible-warning { + color: #ffda6a; +} + +/* Print Accessibility */ +@media print { + .skip-link, + .btn, + .nav-link { + color: #000 !important; + background: transparent !important; + border: 1px solid #000 !important; + } + a[href^=http]::after { + font-size: 0.8em; + content: " (" attr(href) ")"; + } +} +/*# sourceMappingURL=adminlte.rtl.css.map */ \ No newline at end of file diff --git a/css/adminlte.rtl.min.css b/css/adminlte.rtl.min.css new file mode 100644 index 0000000..3f62f9f --- /dev/null +++ b/css/adminlte.rtl.min.css @@ -0,0 +1,7 @@ +@charset "UTF-8";/*! + * AdminLTE v4.0.0-rc5 + * Author: Colorlib + * Website: AdminLTE.io + * License: Open source - MIT + */: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:rgb(5.2, 44, 101.2);--bs-secondary-text-emphasis:rgb(43.2, 46.8, 50);--bs-success-text-emphasis:rgb(10, 54, 33.6);--bs-info-text-emphasis:rgb(5.2, 80.8, 96);--bs-warning-text-emphasis:rgb(102, 77.2, 2.8);--bs-danger-text-emphasis:rgb(88, 21.2, 27.6);--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:rgb(206.6, 226, 254.6);--bs-secondary-bg-subtle:rgb(225.6, 227.4, 229);--bs-success-bg-subtle:rgb(209, 231, 220.8);--bs-info-bg-subtle:rgb(206.6, 244.4, 252);--bs-warning-bg-subtle:rgb(255, 242.6, 205.4);--bs-danger-bg-subtle:rgb(248, 214.6, 217.8);--bs-light-bg-subtle:rgb(251.5, 252, 252.5);--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:rgb(158.2, 197, 254.2);--bs-secondary-border-subtle:rgb(196.2, 199.8, 203);--bs-success-border-subtle:rgb(163, 207, 186.6);--bs-info-border-subtle:rgb(158.2, 233.8, 249);--bs-warning-border-subtle:rgb(255, 230.2, 155.8);--bs-danger-border-subtle:rgb(241, 174.2, 180.6);--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:"Source Sans 3",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:rgb(10.4, 88, 202.4);--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:rgb(255, 242.6, 205.4);--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:rgb(42.5, 47.5, 52.5);--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:rgb(109.8, 168, 253.8);--bs-secondary-text-emphasis:rgb(166.8, 172.2, 177);--bs-success-text-emphasis:rgb(117, 183, 152.4);--bs-info-text-emphasis:rgb(109.8, 223.2, 246);--bs-warning-text-emphasis:rgb(255, 217.8, 106.2);--bs-danger-text-emphasis:rgb(234, 133.8, 143.4);--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:rgb(2.6, 22, 50.6);--bs-secondary-bg-subtle:rgb(21.6, 23.4, 25);--bs-success-bg-subtle:rgb(5, 27, 16.8);--bs-info-bg-subtle:rgb(2.6, 40.4, 48);--bs-warning-bg-subtle:rgb(51, 38.6, 1.4);--bs-danger-bg-subtle:rgb(44, 10.6, 13.8);--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:rgb(7.8, 66, 151.8);--bs-secondary-border-subtle:rgb(64.8, 70.2, 75);--bs-success-border-subtle:rgb(15, 81, 50.4);--bs-info-border-subtle:rgb(7.8, 121.2, 144);--bs-warning-border-subtle:rgb(153, 115.8, 4.2);--bs-danger-border-subtle:rgb(132, 31.8, 41.4);--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:rgb(109.8, 168, 253.8);--bs-link-hover-color:rgb(138.84, 185.4, 254.04);--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:rgb(230.4, 132.6, 181.2);--bs-highlight-color:#dee2e6;--bs-highlight-bg:rgb(102, 77.2, 2.8);--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:rgb(117, 183, 152.4);--bs-form-valid-border-color:rgb(117, 183, 152.4);--bs-form-invalid-color:rgb(234, 133.8, 143.4);--bs-form-invalid-border-color:rgb(234, 133.8, 143.4)}*,::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-right: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-right:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);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:right}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:right;width:100%;padding:0;margin-bottom:.5rem;line-height:inherit;font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:right}::-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}[type=search]::-webkit-search-cancel-button{cursor:pointer;filter:grayscale(1)}[type=email],[type=number],[type=tel],[type=url]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-weight:300;line-height:1.2;font-size:calc(1.625rem + 4.5vw)}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-weight:300;line-height:1.2;font-size:calc(1.575rem + 3.9vw)}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-weight:300;line-height:1.2;font-size:calc(1.525rem + 3.3vw)}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-weight:300;line-height:1.2;font-size:calc(1.475rem + 2.7vw)}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-weight:300;line-height:1.2;font-size:calc(1.425rem + 2.1vw)}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-weight:300;line-height:1.2;font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-right:0;list-style:none}.list-inline{padding-right:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-left:.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);box-shadow:var(--bs-box-shadow-sm);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-left:calc(var(--bs-gutter-x) * .5);padding-right:calc(var(--bs-gutter-x) * .5);margin-left:auto;margin-right: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-left:calc(-.5 * var(--bs-gutter-x));margin-right:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-left:calc(var(--bs-gutter-x) * .5);padding-right: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.33333333%}.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.66666667%}.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-right:8.33333333%}.offset-2{margin-right:16.66666667%}.offset-3{margin-right:25%}.offset-4{margin-right:33.33333333%}.offset-5{margin-right:41.66666667%}.offset-6{margin-right:50%}.offset-7{margin-right:58.33333333%}.offset-8{margin-right:66.66666667%}.offset-9{margin-right:75%}.offset-10{margin-right:83.33333333%}.offset-11{margin-right: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.33333333%}.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.66666667%}.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-right:0}.offset-sm-1{margin-right:8.33333333%}.offset-sm-2{margin-right:16.66666667%}.offset-sm-3{margin-right:25%}.offset-sm-4{margin-right:33.33333333%}.offset-sm-5{margin-right:41.66666667%}.offset-sm-6{margin-right:50%}.offset-sm-7{margin-right:58.33333333%}.offset-sm-8{margin-right:66.66666667%}.offset-sm-9{margin-right:75%}.offset-sm-10{margin-right:83.33333333%}.offset-sm-11{margin-right: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.33333333%}.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.66666667%}.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-right:0}.offset-md-1{margin-right:8.33333333%}.offset-md-2{margin-right:16.66666667%}.offset-md-3{margin-right:25%}.offset-md-4{margin-right:33.33333333%}.offset-md-5{margin-right:41.66666667%}.offset-md-6{margin-right:50%}.offset-md-7{margin-right:58.33333333%}.offset-md-8{margin-right:66.66666667%}.offset-md-9{margin-right:75%}.offset-md-10{margin-right:83.33333333%}.offset-md-11{margin-right: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.33333333%}.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.66666667%}.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-right:0}.offset-lg-1{margin-right:8.33333333%}.offset-lg-2{margin-right:16.66666667%}.offset-lg-3{margin-right:25%}.offset-lg-4{margin-right:33.33333333%}.offset-lg-5{margin-right:41.66666667%}.offset-lg-6{margin-right:50%}.offset-lg-7{margin-right:58.33333333%}.offset-lg-8{margin-right:66.66666667%}.offset-lg-9{margin-right:75%}.offset-lg-10{margin-right:83.33333333%}.offset-lg-11{margin-right: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.33333333%}.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.66666667%}.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-right:0}.offset-xl-1{margin-right:8.33333333%}.offset-xl-2{margin-right:16.66666667%}.offset-xl-3{margin-right:25%}.offset-xl-4{margin-right:33.33333333%}.offset-xl-5{margin-right:41.66666667%}.offset-xl-6{margin-right:50%}.offset-xl-7{margin-right:58.33333333%}.offset-xl-8{margin-right:66.66666667%}.offset-xl-9{margin-right:75%}.offset-xl-10{margin-right:83.33333333%}.offset-xl-11{margin-right: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.33333333%}.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.66666667%}.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-right:0}.offset-xxl-1{margin-right:8.33333333%}.offset-xxl-2{margin-right:16.66666667%}.offset-xxl-3{margin-right:25%}.offset-xxl-4{margin-right:33.33333333%}.offset-xxl-5{margin-right:41.66666667%}.offset-xxl-6{margin-right:50%}.offset-xxl-7{margin-right:58.33333333%}.offset-xxl-8{margin-right:66.66666667%}.offset-xxl-9{margin-right:75%}.offset-xxl-10{margin-right:83.33333333%}.offset-xxl-11{margin-right: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-emphasis-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-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), 0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), 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:rgb(206.6, 226, 254.6);--bs-table-border-color:rgb(165.28, 180.8, 203.68);--bs-table-striped-bg:rgb(196.27, 214.7, 241.87);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(185.94, 203.4, 229.14);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(191.105, 209.05, 235.505);--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:rgb(225.6, 227.4, 229);--bs-table-border-color:rgb(180.48, 181.92, 183.2);--bs-table-striped-bg:rgb(214.32, 216.03, 217.55);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(203.04, 204.66, 206.1);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(208.68, 210.345, 211.825);--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:rgb(209, 231, 220.8);--bs-table-border-color:rgb(167.2, 184.8, 176.64);--bs-table-striped-bg:rgb(198.55, 219.45, 209.76);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(188.1, 207.9, 198.72);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(193.325, 213.675, 204.24);--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:rgb(206.6, 244.4, 252);--bs-table-border-color:rgb(165.28, 195.52, 201.6);--bs-table-striped-bg:rgb(196.27, 232.18, 239.4);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(185.94, 219.96, 226.8);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(191.105, 226.07, 233.1);--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:rgb(255, 242.6, 205.4);--bs-table-border-color:rgb(204, 194.08, 164.32);--bs-table-striped-bg:rgb(242.25, 230.47, 195.13);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(229.5, 218.34, 184.86);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(235.875, 224.405, 189.995);--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:rgb(248, 214.6, 217.8);--bs-table-border-color:rgb(198.4, 171.68, 174.24);--bs-table-striped-bg:rgb(235.6, 203.87, 206.91);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(223.2, 193.14, 196.02);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(229.4, 198.505, 201.465);--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:rgb(198.4, 199.2, 200);--bs-table-striped-bg:rgb(235.6, 236.55, 237.5);--bs-table-striped-color:#000;--bs-table-active-bg:rgb(223.2, 224.1, 225);--bs-table-active-color:#000;--bs-table-hover-bg:rgb(229.4, 230.325, 231.25);--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:rgb(77.4, 80.6, 83.8);--bs-table-striped-bg:rgb(44.1, 47.9, 51.7);--bs-table-striped-color:#fff;--bs-table-active-bg:rgb(55.2, 58.8, 62.4);--bs-table-active-color:#fff;--bs-table-hover-bg:rgb(49.65, 53.35, 57.05);--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);box-shadow:var(--bs-box-shadow-inset);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:rgb(134,182.5,254);outline:0;box-shadow:var(--bs-box-shadow-inset),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::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color: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-left:0;padding-right:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%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 .75rem .375rem 2.25rem;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:left .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);box-shadow:var(--bs-box-shadow-inset);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:rgb(134,182.5,254);outline:0;box-shadow:var(--bs-box-shadow-inset),0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-left:.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-right:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-right: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-right:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:right;margin-right:-1.5em}.form-check-reverse{padding-left:1.5em;padding-right:0;text-align:left}.form-check-reverse .form-check-input{float:left;margin-left:-1.5em;margin-right:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;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;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:rgb(134,182.5,254);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-right: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-right:-2.5em;background-image:var(--bs-form-switch-bg);background-position:right 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='rgb%28134, 182.5, 254%29'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:left 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-left:2.5em;padding-right:0}.form-switch.form-check-reverse .form-check-input{margin-left:-2.5em;margin-right:0}.form-check-inline{display:inline-block;margin-left: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;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);-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:rgb(182.4,211.5,254.4)}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem;box-shadow:var(--bs-box-shadow-inset)}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);-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:rgb(182.4,211.5,254.4)}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem;box-shadow:var(--bs-box-shadow-inset)}.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;right:0;z-index:2;max-width:100%;height:100%;padding:1rem .75rem;overflow:hidden;color:rgba(var(--bs-body-color-rgb),.65);text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:100% 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),.form-floating>.form-control:not(:-moz-placeholder){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;padding-right:.75rem}.form-floating>.form-control:not(:-moz-placeholder)~label{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{transform:scale(.85) translateY(-.5rem) translateX(-.15rem)}.form-floating>.form-control:-webkit-autofill~label{transform:scale(.85) translateY(-.5rem) translateX(-.15rem)}.form-floating>textarea:not(:-moz-placeholder)~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>textarea:focus~label::after,.form-floating>textarea:not(: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>textarea:disabled~label::after{background-color:var(--bs-secondary-bg)}.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}.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-left: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-left-radius:0;border-bottom-left-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-left-radius:0;border-bottom-left-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-right:calc(-1 * var(--bs-border-width));border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-right-radius:0;border-bottom-right-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-left: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.1'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:left 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:var(--bs-box-shadow-inset),0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-left:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) left 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.1'/%3e%3c/svg%3e");padding-left:4.125rem;background-position:left .75rem center,center left 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:var(--bs-box-shadow-inset),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-right:.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-left: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:left 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:var(--bs-box-shadow-inset),0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-left:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) left 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-left:4.125rem;background-position:left .75rem center,center left 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:var(--bs-box-shadow-inset),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-right:.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);box-shadow:var(--bs-btn-box-shadow);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-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-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);box-shadow:var(--bs-btn-active-shadow)}.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-active-shadow),var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-active-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);box-shadow:none}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:rgb(11.05, 93.5, 215.05);--bs-btn-hover-border-color:rgb(10.4, 88, 202.4);--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:rgb(10.4, 88, 202.4);--bs-btn-active-border-color:rgb(9.75, 82.5, 189.75);--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:rgb(91.8, 99.45, 106.25);--bs-btn-hover-border-color:rgb(86.4, 93.6, 100);--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:rgb(86.4, 93.6, 100);--bs-btn-active-border-color:rgb(81, 87.75, 93.75);--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:rgb(21.25, 114.75, 71.4);--bs-btn-hover-border-color:rgb(20, 108, 67.2);--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:rgb(20, 108, 67.2);--bs-btn-active-border-color:rgb(18.75, 101.25, 63);--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:rgb(49.3, 209.95, 242.25);--bs-btn-hover-border-color:rgb(37.2, 207.3, 241.5);--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:rgb(61.4, 212.6, 243);--bs-btn-active-border-color:rgb(37.2, 207.3, 241.5);--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:rgb(255, 202.3, 44.2);--bs-btn-hover-border-color:rgb(255, 199.2, 31.8);--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:rgb(255, 205.4, 56.6);--bs-btn-active-border-color:rgb(255, 199.2, 31.8);--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:rgb(187, 45.05, 58.65);--bs-btn-hover-border-color:rgb(176, 42.4, 55.2);--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:rgb(176, 42.4, 55.2);--bs-btn-active-border-color:rgb(165, 39.75, 51.75);--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:rgb(210.8, 211.65, 212.5);--bs-btn-hover-border-color:rgb(198.4, 199.2, 200);--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:rgb(198.4, 199.2, 200);--bs-btn-active-border-color:rgb(186, 186.75, 187.5);--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:rgb(66.3, 69.7, 73.1);--bs-btn-hover-border-color:rgb(55.2, 58.8, 62.4);--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:rgb(77.4, 80.6, 83.8);--bs-btn-active-border-color:rgb(55.2, 58.8, 62.4);--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-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-left:.3em solid transparent;border-bottom:0;border-right:.3em solid transparent}.dropdown-toggle:empty::after{margin-right: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:var(--bs-box-shadow);--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:right;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);box-shadow:var(--bs-dropdown-box-shadow)}.dropdown-menu[data-bs-popper]{top:100%;right:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{left:0;right:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{left:0;right:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{left:0;right:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{left:0;right:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{left:0;right:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{left:auto;right:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{left:0;right: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-right:.255em;vertical-align:.255em;content:"";border-top:0;border-left:.3em solid transparent;border-bottom:.3em solid;border-right:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-right:0}.dropend .dropdown-menu[data-bs-popper]{top:0;left:auto;right:100%;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-left:0;border-bottom:.3em solid transparent;border-right:.3em solid}.dropend .dropdown-toggle:empty::after{margin-right:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;left:100%;right:auto;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-right:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-left:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-right: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-right:calc(-1 * var(--bs-border-width))}.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-left-radius:0;border-bottom-left-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-right-radius:0;border-bottom-right-radius:0}.dropdown-toggle-split{padding-left:.5625rem;padding-right:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-right:0}.dropstart .dropdown-toggle-split::before{margin-left:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-left:.375rem;padding-right:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-left:.75rem;padding-right:.75rem}.btn-group.show .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.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(-1 * var(--bs-border-width))}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-left-radius:0;border-bottom-right-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:nth-child(n+3),.btn-group-vertical>:not(.btn-check)+.btn{border-top-right-radius:0;border-top-left-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-right: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-right-radius:var(--bs-nav-tabs-border-radius);border-top-left-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-right-radius:0;border-top-left-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-left:0;padding-right: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-grow:1;flex-basis:0;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:1rem;--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-left: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-right: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-grow:1;flex-basis:100%;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-left:var(--bs-navbar-nav-link-padding-x);padding-right: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;box-shadow:none;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-left:var(--bs-navbar-nav-link-padding-x);padding-right: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;box-shadow:none;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-left:var(--bs-navbar-nav-link-padding-x);padding-right: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;box-shadow:none;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-left:var(--bs-navbar-nav-link-padding-x);padding-right: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;box-shadow:none;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-left:var(--bs-navbar-nav-link-padding-x);padding-right: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;box-shadow:none;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-left:var(--bs-navbar-nav-link-padding-x);padding-right: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;box-shadow:none;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);box-shadow:var(--bs-card-box-shadow)}.card>hr{margin-left:0;margin-right:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-right-radius:var(--bs-card-inner-border-radius);border-top-left-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-left-radius:var(--bs-card-inner-border-radius);border-bottom-right-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-right: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-left:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-right: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-left:calc(-.5 * var(--bs-card-cap-padding-x));margin-right:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;left:0;bottom:0;right: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-right-radius:var(--bs-card-inner-border-radius);border-top-left-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-left-radius:var(--bs-card-inner-border-radius);border-bottom-right-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-right:0;border-right:0}.card-group>.card:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:last-child)>.card-header,.card-group>.card:not(:last-child)>.card-img-top{border-top-left-radius:0}.card-group>.card:not(:last-child)>.card-footer,.card-group>.card:not(:last-child)>.card-img-bottom{border-bottom-left-radius:0}.card-group>.card:not(:first-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:first-child)>.card-header,.card-group>.card:not(:first-child)>.card-img-top{border-top-right-radius:0}.card-group>.card:not(:first-child)>.card-footer,.card-group>.card:not(:first-child)>.card-img-bottom{border-bottom-right-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='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%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='none' stroke='rgb%285.2, 44, 101.2%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");--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:right;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-right: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;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-right-radius:var(--bs-accordion-border-radius);border-top-left-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-right-radius:var(--bs-accordion-inner-border-radius);border-top-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-left-radius:var(--bs-accordion-border-radius);border-bottom-right-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-left-radius:var(--bs-accordion-inner-border-radius);border-bottom-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-left-radius:var(--bs-accordion-border-radius);border-bottom-right-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-left:0;border-right: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-collapse,.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .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='rgb%28109.8, 168, 253.8%29'%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-.708'/%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='rgb%28109.8, 168, 253.8%29'%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-.708'/%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-right:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:right;padding-left: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-right: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-right:calc(var(--bs-border-width) * -1)}.page-item .page-link{border-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-left:3rem}.alert-dismissible .btn-close{position:absolute;top:0;left: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:var(--bs-progress-height)}}.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);box-shadow:var(--bs-progress-box-shadow)}.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-right: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{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-right-radius:inherit;border-top-left-radius:inherit}.list-group-item:last-child{border-bottom-left-radius:inherit;border-bottom-right-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-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:not(.active):focus,.list-group-item-action:not(.active):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:not(.active):active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-right-radius:var(--bs-list-group-border-radius);border-top-left-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-left-radius:var(--bs-list-group-border-radius);border-bottom-right-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-right-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-right:calc(-1 * var(--bs-list-group-border-width));border-right-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-right-radius:var(--bs-list-group-border-radius);border-top-left-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-left-radius:var(--bs-list-group-border-radius);border-bottom-right-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-right-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-right:calc(-1 * var(--bs-list-group-border-width));border-right-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-right-radius:var(--bs-list-group-border-radius);border-top-left-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-left-radius:var(--bs-list-group-border-radius);border-bottom-right-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-right-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-right:calc(-1 * var(--bs-list-group-border-width));border-right-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-right-radius:var(--bs-list-group-border-radius);border-top-left-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-left-radius:var(--bs-list-group-border-radius);border-bottom-right-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-right-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-right:calc(-1 * var(--bs-list-group-border-width));border-right-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-right-radius:var(--bs-list-group-border-radius);border-top-left-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-left-radius:var(--bs-list-group-border-radius);border-bottom-right-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-right-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-right:calc(-1 * var(--bs-list-group-border-width));border-right-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-right-radius:var(--bs-list-group-border-radius);border-top-left-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-left-radius:var(--bs-list-group-border-radius);border-bottom-right-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-right-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-right:calc(-1 * var(--bs-list-group-border-width));border-right-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.414'/%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;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;filter:var(--bs-btn-close-filter);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{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}:root,[data-bs-theme=light]{--bs-btn-close-filter: }[data-bs-theme=dark]{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}.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:-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-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-left:calc(-.5 * var(--bs-toast-padding-x));margin-right: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:var(--bs-body-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:var(--bs-box-shadow-sm);--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;right: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{transform:translate(0,-50px);transition:transform .3s ease-out}@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);box-shadow:var(--bs-modal-box-shadow);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;right: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;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-right-radius:var(--bs-modal-inner-border-radius);border-top-left-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-top:calc(-.5 * var(--bs-modal-header-padding-y));margin-left:calc(-.5 * var(--bs-modal-header-padding-x));margin-bottom:calc(-.5 * var(--bs-modal-header-padding-y));margin-right: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-left-radius:var(--bs-modal-inner-border-radius);border-bottom-right-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:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-left:auto;margin-right: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:right;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:var(--bs-box-shadow);--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:right;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);box-shadow:var(--bs-popover-box-shadow)}.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;right:50%;display:block;width:var(--bs-popover-arrow-width);margin-right: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-right-radius:var(--bs-popover-inner-border-radius);border-top-left-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:right;width:100%;margin-left:-100%;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;filter:var(--bs-carousel-control-icon-filter);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{right:0}.carousel-control-next{left: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='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-.708'/%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='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 0'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;left:0;bottom:0;right:0;z-index:2;display:flex;justify-content:center;padding:0;margin-left:15%;margin-bottom:1rem;margin-right:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-left:3px;margin-right:3px;text-indent:-999px;cursor:pointer;background-color:var(--bs-carousel-indicator-active-bg);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;left:15%;bottom:1.25rem;right:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:var(--bs-carousel-caption-color);text-align:center}.carousel-dark{--bs-carousel-indicator-active-bg:#000;--bs-carousel-caption-color:#000;--bs-carousel-control-icon-filter:invert(1) grayscale(100)}:root,[data-bs-theme=light]{--bs-carousel-indicator-active-bg:#fff;--bs-carousel-caption-color:#fff;--bs-carousel-control-icon-filter: }[data-bs-theme=dark]{--bs-carousel-indicator-active-bg:#000;--bs-carousel-caption-color:#000;--bs-carousel-control-icon-filter:invert(1) grayscale(100)}.spinner-border,.spinner-grow{display:inline-block;flex-shrink:0;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-left-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:var(--bs-box-shadow-sm);--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;box-shadow:var(--bs-offcanvas-box-shadow);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;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-end{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-top{top:0;left:0;right: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{left:0;right: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;box-shadow:var(--bs-offcanvas-box-shadow);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;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-end{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-top{top:0;left:0;right: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{left:0;right: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;box-shadow:var(--bs-offcanvas-box-shadow);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;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-end{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-top{top:0;left:0;right: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{left:0;right: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;box-shadow:var(--bs-offcanvas-box-shadow);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;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-end{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-top{top:0;left:0;right: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{left:0;right: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;box-shadow:var(--bs-offcanvas-box-shadow);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;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-end{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-top{top:0;left:0;right: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{left:0;right: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;box-shadow:var(--bs-offcanvas-box-shadow);transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{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-end{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-top{top:0;left:0;right: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{left:0;right: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;right: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;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-left:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:auto}.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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;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;right: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;left:0;right:0;z-index:1030}.fixed-bottom{position:fixed;left:0;bottom:0;right:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;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}.visually-hidden *,.visually-hidden-focusable:not(:focus):not(:focus-within) *{overflow:hidden!important}.stretched-link::after{position:absolute;top:0;left:0;bottom:0;right: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:right!important}.float-end{float:left!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:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!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: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{right:0!important}.start-50{right:50%!important}.start-100{right:100%!important}.end-0{left:0!important}.end-50{left:50%!important}.end-100{left: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-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-left: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-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-right: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-left:0!important;margin-right:0!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-5{margin-left:3rem!important;margin-right:3rem!important}.mx-auto{margin-left:auto!important;margin-right: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-left:0!important}.me-1{margin-left:.25rem!important}.me-2{margin-left:.5rem!important}.me-3{margin-left:1rem!important}.me-4{margin-left:1.5rem!important}.me-5{margin-left:3rem!important}.me-auto{margin-left: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-right:0!important}.ms-1{margin-right:.25rem!important}.ms-2{margin-right:.5rem!important}.ms-3{margin-right:1rem!important}.ms-4{margin-right:1.5rem!important}.ms-5{margin-right:3rem!important}.ms-auto{margin-right:auto!important}.m-n1{margin:-.25rem!important}.m-n2{margin:-.5rem!important}.m-n3{margin:-1rem!important}.m-n4{margin:-1.5rem!important}.m-n5{margin:-3rem!important}.mx-n1{margin-left:-.25rem!important;margin-right:-.25rem!important}.mx-n2{margin-left:-.5rem!important;margin-right:-.5rem!important}.mx-n3{margin-left:-1rem!important;margin-right:-1rem!important}.mx-n4{margin-left:-1.5rem!important;margin-right:-1.5rem!important}.mx-n5{margin-left:-3rem!important;margin-right:-3rem!important}.my-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-n1{margin-top:-.25rem!important}.mt-n2{margin-top:-.5rem!important}.mt-n3{margin-top:-1rem!important}.mt-n4{margin-top:-1.5rem!important}.mt-n5{margin-top:-3rem!important}.me-n1{margin-left:-.25rem!important}.me-n2{margin-left:-.5rem!important}.me-n3{margin-left:-1rem!important}.me-n4{margin-left:-1.5rem!important}.me-n5{margin-left:-3rem!important}.mb-n1{margin-bottom:-.25rem!important}.mb-n2{margin-bottom:-.5rem!important}.mb-n3{margin-bottom:-1rem!important}.mb-n4{margin-bottom:-1.5rem!important}.mb-n5{margin-bottom:-3rem!important}.ms-n1{margin-right:-.25rem!important}.ms-n2{margin-right:-.5rem!important}.ms-n3{margin-right:-1rem!important}.ms-n4{margin-right:-1.5rem!important}.ms-n5{margin-right:-3rem!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-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-5{padding-left:3rem!important;padding-right: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-left:0!important}.pe-1{padding-left:.25rem!important}.pe-2{padding-left:.5rem!important}.pe-3{padding-left:1rem!important}.pe-4{padding-left:1.5rem!important}.pe-5{padding-left: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-right:0!important}.ps-1{padding-right:.25rem!important}.ps-2{padding-right:.5rem!important}.ps-3{padding-right:1rem!important}.ps-4{padding-right:1.5rem!important}.ps-5{padding-right: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}.fs-7{font-size:.875rem!important}.fs-8{font-size:.75rem!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:right!important}.text-end{text-align:left!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-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;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity: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-right-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-right-radius:0!important;border-top-left-radius:0!important}.rounded-top-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-right-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-right-radius:50%!important;border-top-left-radius:50%!important}.rounded-top-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-left-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.rounded-end-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-left-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-left-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-end-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-left-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.rounded-bottom-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-left-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-bottom-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-right-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.rounded-start-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-right-radius:50%!important;border-top-right-radius:50%!important}.rounded-start-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-top-right-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:right!important}.float-sm-end{float:left!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-left:0!important;margin-right:0!important}.mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}.mx-sm-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-sm-5{margin-left:3rem!important;margin-right:3rem!important}.mx-sm-auto{margin-left:auto!important;margin-right: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-left:0!important}.me-sm-1{margin-left:.25rem!important}.me-sm-2{margin-left:.5rem!important}.me-sm-3{margin-left:1rem!important}.me-sm-4{margin-left:1.5rem!important}.me-sm-5{margin-left:3rem!important}.me-sm-auto{margin-left: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-right:0!important}.ms-sm-1{margin-right:.25rem!important}.ms-sm-2{margin-right:.5rem!important}.ms-sm-3{margin-right:1rem!important}.ms-sm-4{margin-right:1.5rem!important}.ms-sm-5{margin-right:3rem!important}.ms-sm-auto{margin-right:auto!important}.m-sm-n1{margin:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.m-sm-n3{margin:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mx-sm-n1{margin-left:-.25rem!important;margin-right:-.25rem!important}.mx-sm-n2{margin-left:-.5rem!important;margin-right:-.5rem!important}.mx-sm-n3{margin-left:-1rem!important;margin-right:-1rem!important}.mx-sm-n4{margin-left:-1.5rem!important;margin-right:-1.5rem!important}.mx-sm-n5{margin-left:-3rem!important;margin-right:-3rem!important}.my-sm-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-sm-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-sm-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-sm-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-sm-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-sm-n1{margin-top:-.25rem!important}.mt-sm-n2{margin-top:-.5rem!important}.mt-sm-n3{margin-top:-1rem!important}.mt-sm-n4{margin-top:-1.5rem!important}.mt-sm-n5{margin-top:-3rem!important}.me-sm-n1{margin-left:-.25rem!important}.me-sm-n2{margin-left:-.5rem!important}.me-sm-n3{margin-left:-1rem!important}.me-sm-n4{margin-left:-1.5rem!important}.me-sm-n5{margin-left:-3rem!important}.mb-sm-n1{margin-bottom:-.25rem!important}.mb-sm-n2{margin-bottom:-.5rem!important}.mb-sm-n3{margin-bottom:-1rem!important}.mb-sm-n4{margin-bottom:-1.5rem!important}.mb-sm-n5{margin-bottom:-3rem!important}.ms-sm-n1{margin-right:-.25rem!important}.ms-sm-n2{margin-right:-.5rem!important}.ms-sm-n3{margin-right:-1rem!important}.ms-sm-n4{margin-right:-1.5rem!important}.ms-sm-n5{margin-right:-3rem!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-left:0!important;padding-right:0!important}.px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-sm-3{padding-left:1rem!important;padding-right:1rem!important}.px-sm-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-sm-5{padding-left:3rem!important;padding-right: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-left:0!important}.pe-sm-1{padding-left:.25rem!important}.pe-sm-2{padding-left:.5rem!important}.pe-sm-3{padding-left:1rem!important}.pe-sm-4{padding-left:1.5rem!important}.pe-sm-5{padding-left: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-right:0!important}.ps-sm-1{padding-right:.25rem!important}.ps-sm-2{padding-right:.5rem!important}.ps-sm-3{padding-right:1rem!important}.ps-sm-4{padding-right:1.5rem!important}.ps-sm-5{padding-right: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:right!important}.text-sm-end{text-align:left!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:right!important}.float-md-end{float:left!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-left:0!important;margin-right:0!important}.mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-md-3{margin-left:1rem!important;margin-right:1rem!important}.mx-md-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-md-5{margin-left:3rem!important;margin-right:3rem!important}.mx-md-auto{margin-left:auto!important;margin-right: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-left:0!important}.me-md-1{margin-left:.25rem!important}.me-md-2{margin-left:.5rem!important}.me-md-3{margin-left:1rem!important}.me-md-4{margin-left:1.5rem!important}.me-md-5{margin-left:3rem!important}.me-md-auto{margin-left: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-right:0!important}.ms-md-1{margin-right:.25rem!important}.ms-md-2{margin-right:.5rem!important}.ms-md-3{margin-right:1rem!important}.ms-md-4{margin-right:1.5rem!important}.ms-md-5{margin-right:3rem!important}.ms-md-auto{margin-right:auto!important}.m-md-n1{margin:-.25rem!important}.m-md-n2{margin:-.5rem!important}.m-md-n3{margin:-1rem!important}.m-md-n4{margin:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mx-md-n1{margin-left:-.25rem!important;margin-right:-.25rem!important}.mx-md-n2{margin-left:-.5rem!important;margin-right:-.5rem!important}.mx-md-n3{margin-left:-1rem!important;margin-right:-1rem!important}.mx-md-n4{margin-left:-1.5rem!important;margin-right:-1.5rem!important}.mx-md-n5{margin-left:-3rem!important;margin-right:-3rem!important}.my-md-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-md-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-md-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-md-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-md-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-md-n1{margin-top:-.25rem!important}.mt-md-n2{margin-top:-.5rem!important}.mt-md-n3{margin-top:-1rem!important}.mt-md-n4{margin-top:-1.5rem!important}.mt-md-n5{margin-top:-3rem!important}.me-md-n1{margin-left:-.25rem!important}.me-md-n2{margin-left:-.5rem!important}.me-md-n3{margin-left:-1rem!important}.me-md-n4{margin-left:-1.5rem!important}.me-md-n5{margin-left:-3rem!important}.mb-md-n1{margin-bottom:-.25rem!important}.mb-md-n2{margin-bottom:-.5rem!important}.mb-md-n3{margin-bottom:-1rem!important}.mb-md-n4{margin-bottom:-1.5rem!important}.mb-md-n5{margin-bottom:-3rem!important}.ms-md-n1{margin-right:-.25rem!important}.ms-md-n2{margin-right:-.5rem!important}.ms-md-n3{margin-right:-1rem!important}.ms-md-n4{margin-right:-1.5rem!important}.ms-md-n5{margin-right:-3rem!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-left:0!important;padding-right:0!important}.px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-md-3{padding-left:1rem!important;padding-right:1rem!important}.px-md-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-md-5{padding-left:3rem!important;padding-right: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-left:0!important}.pe-md-1{padding-left:.25rem!important}.pe-md-2{padding-left:.5rem!important}.pe-md-3{padding-left:1rem!important}.pe-md-4{padding-left:1.5rem!important}.pe-md-5{padding-left: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-right:0!important}.ps-md-1{padding-right:.25rem!important}.ps-md-2{padding-right:.5rem!important}.ps-md-3{padding-right:1rem!important}.ps-md-4{padding-right:1.5rem!important}.ps-md-5{padding-right: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:right!important}.text-md-end{text-align:left!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:right!important}.float-lg-end{float:left!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-left:0!important;margin-right:0!important}.mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}.mx-lg-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-lg-5{margin-left:3rem!important;margin-right:3rem!important}.mx-lg-auto{margin-left:auto!important;margin-right: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-left:0!important}.me-lg-1{margin-left:.25rem!important}.me-lg-2{margin-left:.5rem!important}.me-lg-3{margin-left:1rem!important}.me-lg-4{margin-left:1.5rem!important}.me-lg-5{margin-left:3rem!important}.me-lg-auto{margin-left: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-right:0!important}.ms-lg-1{margin-right:.25rem!important}.ms-lg-2{margin-right:.5rem!important}.ms-lg-3{margin-right:1rem!important}.ms-lg-4{margin-right:1.5rem!important}.ms-lg-5{margin-right:3rem!important}.ms-lg-auto{margin-right:auto!important}.m-lg-n1{margin:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.m-lg-n3{margin:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mx-lg-n1{margin-left:-.25rem!important;margin-right:-.25rem!important}.mx-lg-n2{margin-left:-.5rem!important;margin-right:-.5rem!important}.mx-lg-n3{margin-left:-1rem!important;margin-right:-1rem!important}.mx-lg-n4{margin-left:-1.5rem!important;margin-right:-1.5rem!important}.mx-lg-n5{margin-left:-3rem!important;margin-right:-3rem!important}.my-lg-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-lg-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-lg-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-lg-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-lg-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-lg-n1{margin-top:-.25rem!important}.mt-lg-n2{margin-top:-.5rem!important}.mt-lg-n3{margin-top:-1rem!important}.mt-lg-n4{margin-top:-1.5rem!important}.mt-lg-n5{margin-top:-3rem!important}.me-lg-n1{margin-left:-.25rem!important}.me-lg-n2{margin-left:-.5rem!important}.me-lg-n3{margin-left:-1rem!important}.me-lg-n4{margin-left:-1.5rem!important}.me-lg-n5{margin-left:-3rem!important}.mb-lg-n1{margin-bottom:-.25rem!important}.mb-lg-n2{margin-bottom:-.5rem!important}.mb-lg-n3{margin-bottom:-1rem!important}.mb-lg-n4{margin-bottom:-1.5rem!important}.mb-lg-n5{margin-bottom:-3rem!important}.ms-lg-n1{margin-right:-.25rem!important}.ms-lg-n2{margin-right:-.5rem!important}.ms-lg-n3{margin-right:-1rem!important}.ms-lg-n4{margin-right:-1.5rem!important}.ms-lg-n5{margin-right:-3rem!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-left:0!important;padding-right:0!important}.px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-lg-3{padding-left:1rem!important;padding-right:1rem!important}.px-lg-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-lg-5{padding-left:3rem!important;padding-right: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-left:0!important}.pe-lg-1{padding-left:.25rem!important}.pe-lg-2{padding-left:.5rem!important}.pe-lg-3{padding-left:1rem!important}.pe-lg-4{padding-left:1.5rem!important}.pe-lg-5{padding-left: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-right:0!important}.ps-lg-1{padding-right:.25rem!important}.ps-lg-2{padding-right:.5rem!important}.ps-lg-3{padding-right:1rem!important}.ps-lg-4{padding-right:1.5rem!important}.ps-lg-5{padding-right: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:right!important}.text-lg-end{text-align:left!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:right!important}.float-xl-end{float:left!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-left:0!important;margin-right:0!important}.mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xl-auto{margin-left:auto!important;margin-right: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-left:0!important}.me-xl-1{margin-left:.25rem!important}.me-xl-2{margin-left:.5rem!important}.me-xl-3{margin-left:1rem!important}.me-xl-4{margin-left:1.5rem!important}.me-xl-5{margin-left:3rem!important}.me-xl-auto{margin-left: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-right:0!important}.ms-xl-1{margin-right:.25rem!important}.ms-xl-2{margin-right:.5rem!important}.ms-xl-3{margin-right:1rem!important}.ms-xl-4{margin-right:1.5rem!important}.ms-xl-5{margin-right:3rem!important}.ms-xl-auto{margin-right:auto!important}.m-xl-n1{margin:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.m-xl-n3{margin:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mx-xl-n1{margin-left:-.25rem!important;margin-right:-.25rem!important}.mx-xl-n2{margin-left:-.5rem!important;margin-right:-.5rem!important}.mx-xl-n3{margin-left:-1rem!important;margin-right:-1rem!important}.mx-xl-n4{margin-left:-1.5rem!important;margin-right:-1.5rem!important}.mx-xl-n5{margin-left:-3rem!important;margin-right:-3rem!important}.my-xl-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-xl-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-xl-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-xl-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-xl-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-xl-n1{margin-top:-.25rem!important}.mt-xl-n2{margin-top:-.5rem!important}.mt-xl-n3{margin-top:-1rem!important}.mt-xl-n4{margin-top:-1.5rem!important}.mt-xl-n5{margin-top:-3rem!important}.me-xl-n1{margin-left:-.25rem!important}.me-xl-n2{margin-left:-.5rem!important}.me-xl-n3{margin-left:-1rem!important}.me-xl-n4{margin-left:-1.5rem!important}.me-xl-n5{margin-left:-3rem!important}.mb-xl-n1{margin-bottom:-.25rem!important}.mb-xl-n2{margin-bottom:-.5rem!important}.mb-xl-n3{margin-bottom:-1rem!important}.mb-xl-n4{margin-bottom:-1.5rem!important}.mb-xl-n5{margin-bottom:-3rem!important}.ms-xl-n1{margin-right:-.25rem!important}.ms-xl-n2{margin-right:-.5rem!important}.ms-xl-n3{margin-right:-1rem!important}.ms-xl-n4{margin-right:-1.5rem!important}.ms-xl-n5{margin-right:-3rem!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-left:0!important;padding-right:0!important}.px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xl-5{padding-left:3rem!important;padding-right: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-left:0!important}.pe-xl-1{padding-left:.25rem!important}.pe-xl-2{padding-left:.5rem!important}.pe-xl-3{padding-left:1rem!important}.pe-xl-4{padding-left:1.5rem!important}.pe-xl-5{padding-left: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-right:0!important}.ps-xl-1{padding-right:.25rem!important}.ps-xl-2{padding-right:.5rem!important}.ps-xl-3{padding-right:1rem!important}.ps-xl-4{padding-right:1.5rem!important}.ps-xl-5{padding-right: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:right!important}.text-xl-end{text-align:left!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:right!important}.float-xxl-end{float:left!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-left:0!important;margin-right:0!important}.mx-xxl-1{margin-left:.25rem!important;margin-right:.25rem!important}.mx-xxl-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-xxl-3{margin-left:1rem!important;margin-right:1rem!important}.mx-xxl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-xxl-5{margin-left:3rem!important;margin-right:3rem!important}.mx-xxl-auto{margin-left:auto!important;margin-right: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-left:0!important}.me-xxl-1{margin-left:.25rem!important}.me-xxl-2{margin-left:.5rem!important}.me-xxl-3{margin-left:1rem!important}.me-xxl-4{margin-left:1.5rem!important}.me-xxl-5{margin-left:3rem!important}.me-xxl-auto{margin-left: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-right:0!important}.ms-xxl-1{margin-right:.25rem!important}.ms-xxl-2{margin-right:.5rem!important}.ms-xxl-3{margin-right:1rem!important}.ms-xxl-4{margin-right:1.5rem!important}.ms-xxl-5{margin-right:3rem!important}.ms-xxl-auto{margin-right:auto!important}.m-xxl-n1{margin:-.25rem!important}.m-xxl-n2{margin:-.5rem!important}.m-xxl-n3{margin:-1rem!important}.m-xxl-n4{margin:-1.5rem!important}.m-xxl-n5{margin:-3rem!important}.mx-xxl-n1{margin-left:-.25rem!important;margin-right:-.25rem!important}.mx-xxl-n2{margin-left:-.5rem!important;margin-right:-.5rem!important}.mx-xxl-n3{margin-left:-1rem!important;margin-right:-1rem!important}.mx-xxl-n4{margin-left:-1.5rem!important;margin-right:-1.5rem!important}.mx-xxl-n5{margin-left:-3rem!important;margin-right:-3rem!important}.my-xxl-n1{margin-top:-.25rem!important;margin-bottom:-.25rem!important}.my-xxl-n2{margin-top:-.5rem!important;margin-bottom:-.5rem!important}.my-xxl-n3{margin-top:-1rem!important;margin-bottom:-1rem!important}.my-xxl-n4{margin-top:-1.5rem!important;margin-bottom:-1.5rem!important}.my-xxl-n5{margin-top:-3rem!important;margin-bottom:-3rem!important}.mt-xxl-n1{margin-top:-.25rem!important}.mt-xxl-n2{margin-top:-.5rem!important}.mt-xxl-n3{margin-top:-1rem!important}.mt-xxl-n4{margin-top:-1.5rem!important}.mt-xxl-n5{margin-top:-3rem!important}.me-xxl-n1{margin-left:-.25rem!important}.me-xxl-n2{margin-left:-.5rem!important}.me-xxl-n3{margin-left:-1rem!important}.me-xxl-n4{margin-left:-1.5rem!important}.me-xxl-n5{margin-left:-3rem!important}.mb-xxl-n1{margin-bottom:-.25rem!important}.mb-xxl-n2{margin-bottom:-.5rem!important}.mb-xxl-n3{margin-bottom:-1rem!important}.mb-xxl-n4{margin-bottom:-1.5rem!important}.mb-xxl-n5{margin-bottom:-3rem!important}.ms-xxl-n1{margin-right:-.25rem!important}.ms-xxl-n2{margin-right:-.5rem!important}.ms-xxl-n3{margin-right:-1rem!important}.ms-xxl-n4{margin-right:-1.5rem!important}.ms-xxl-n5{margin-right:-3rem!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-left:0!important;padding-right:0!important}.px-xxl-1{padding-left:.25rem!important;padding-right:.25rem!important}.px-xxl-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-xxl-3{padding-left:1rem!important;padding-right:1rem!important}.px-xxl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-xxl-5{padding-left:3rem!important;padding-right: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-left:0!important}.pe-xxl-1{padding-left:.25rem!important}.pe-xxl-2{padding-left:.5rem!important}.pe-xxl-3{padding-left:1rem!important}.pe-xxl-4{padding-left:1.5rem!important}.pe-xxl-5{padding-left: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-right:0!important}.ps-xxl-1{padding-right:.25rem!important}.ps-xxl-2{padding-right:.5rem!important}.ps-xxl-3{padding-right:1rem!important}.ps-xxl-4{padding-right:1.5rem!important}.ps-xxl-5{padding-right: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:right!important}.text-xxl-end{text-align:left!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}}@keyframes flipInX{0%{opacity:0;transition-timing-function:ease-in;transform:perspective(400px) rotate3d(-1,0,0,-90deg)}40%{transition-timing-function:ease-in;transform:perspective(400px) rotate3d(-1,0,0,20deg)}60%{opacity:1;transform:perspective(400px) rotate3d(-1,0,0,-10deg)}80%{transform:perspective(400px) rotate3d(-1,0,0,5deg)}100%{transform:perspective(400px)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes shake{0%{transform:translate(-2px,1px) rotate(0)}10%{transform:translate(1px,-2px) rotate(2deg)}20%{transform:translate(3px,0) rotate(-3deg)}30%{transform:translate(0,2px) rotate(0)}40%{transform:translate(-1px,-1px) rotate(-1deg)}50%{transform:translate(1px,2px) rotate(1deg)}60%{transform:translate(3px,1px) rotate(0)}70%{transform:translate(-2px,1px) rotate(2deg)}80%{transform:translate(1px,-1px) rotate(-4deg)}90%{transform:translate(-2px,2px) rotate(0)}100%{transform:translate(-1px,-2px) rotate(1deg)}}@keyframes wobble{0%{transform:none}15%{transform:translate3d(25%,0,0) rotate3d(0,0,1,5deg)}30%{transform:translate3d(-20%,0,0) rotate3d(0,0,1,-3deg)}45%{transform:translate3d(15%,0,0) rotate3d(0,0,1,3deg)}60%{transform:translate3d(-10%,0,0) rotate3d(0,0,1,-2deg)}75%{transform:translate3d(5%,0,0) rotate3d(0,0,1,1deg)}100%{transform:none}}:root,[data-bs-theme=light]{--lte-sidebar-width:250px}.app-wrapper{position:relative;display:grid;grid-template-areas:"lte-app-sidebar lte-app-header" "lte-app-sidebar lte-app-main" "lte-app-sidebar lte-app-footer";grid-template-rows:min-content 1fr min-content;grid-template-columns:auto 1fr;grid-gap:0;align-content:stretch;align-items:stretch;max-width:100vw;min-height:100vh}.app-wrapper>*{min-width:0}.app-content{padding:0 .5rem}.app-header{z-index:1034;grid-area:lte-app-header;max-width:100vw;border-bottom:1px solid var(--bs-border-color);transition:.3s ease-in-out}@media (prefers-reduced-motion:reduce){.app-header{transition:none}}.app-header .nav-link{position:relative;height:2.5rem}.navbar-badge{position:absolute;top:9px;left:5px;padding:2px 4px;font-size:.6rem;font-weight:400}.fixed-header .app-header{position:sticky;top:0;z-index:1030}.app-sidebar{--lte-sidebar-hover-bg:rgba(0, 0, 0, 0.1);--lte-sidebar-color:#343a40;--lte-sidebar-hover-color:#212529;--lte-sidebar-active-color:#000;--lte-sidebar-menu-active-bg:rgba(0, 0, 0, 0.1);--lte-sidebar-menu-active-color:#000;--lte-sidebar-submenu-bg:transparent;--lte-sidebar-submenu-color:#777;--lte-sidebar-submenu-hover-color:#000;--lte-sidebar-submenu-hover-bg:rgba(0, 0, 0, 0.1);--lte-sidebar-submenu-active-color:#212529;--lte-sidebar-submenu-active-bg:rgba(0, 0, 0, 0.1);--lte-sidebar-header-color:rgb(49.4, 55.1, 60.8);z-index:1038;grid-area:lte-app-sidebar;min-width:var(--lte-sidebar-width);max-width:var(--lte-sidebar-width);transition:min-width .3s ease-in-out,max-width .3s ease-in-out,margin-right .3s ease-in-out,margin-left .3s ease-in-out}@media (prefers-reduced-motion:reduce){.app-sidebar{transition:none}}.sidebar-brand{display:flex;align-items:center;justify-content:center;height:3.5rem;padding:.8125rem .5rem;overflow:hidden;font-size:1.25rem;white-space:nowrap;border-bottom:1px solid var(--bs-border-color);transition:width .3s ease-in-out}@media (prefers-reduced-motion:reduce){.sidebar-brand{transition:none}}.sidebar-brand .brand-link{display:flex;align-items:center;text-decoration:none}.sidebar-brand .brand-link .brand-image{float:right;width:auto;max-height:33px;line-height:.8}.sidebar-brand .brand-link .brand-image-xs{float:right;width:auto;max-height:33px;margin-top:-.1rem;line-height:.8}.sidebar-brand .brand-link .brand-image-xl{width:auto;max-height:40px;line-height:.8}.sidebar-brand .brand-link .brand-image-xl.single{margin-top:-.3rem}.sidebar-brand .brand-text{margin-right:.5rem;color:rgba(var(--bs-emphasis-color-rgb),.8);transition:flex .3s ease-in-out,width .3s ease-in-out}@media (prefers-reduced-motion:reduce){.sidebar-brand .brand-text{transition:none}}.sidebar-brand .brand-text:hover{color:var(--bs-emphasis-color)}.sidebar-wrapper{padding-top:.5rem;padding-left:.5rem;padding-bottom:.5rem;padding-right:.5rem;scrollbar-color:var(--bs-secondary-bg) transparent}.sidebar-wrapper::-webkit-scrollbar-thumb{background-color:var(--bs-secondary-bg)}.sidebar-wrapper::-webkit-scrollbar-track{background-color:transparent}.sidebar-wrapper::-webkit-scrollbar-corner{background-color:transparent}.sidebar-wrapper{scrollbar-width:thin}.sidebar-wrapper::-webkit-scrollbar{width:.5rem;height:.5rem}.sidebar-wrapper .nav-item{max-width:100%}.sidebar-wrapper .nav-link{display:flex;justify-content:flex-start}.sidebar-wrapper .nav-link p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-wrapper .nav-icon{display:flex;align-items:center;justify-content:center;min-width:1.5rem;max-width:1.5rem}.sidebar-wrapper .sidebar-menu>.nav-item.menu-open .nav-link.active:not(:hover){--lte-sidebar-menu-active-bg:transparent}.sidebar-wrapper .sidebar-menu>.nav-item>.nav-link:active,.sidebar-wrapper .sidebar-menu>.nav-item>.nav-link:focus{color:var(--lte-sidebar-color)}.sidebar-wrapper .sidebar-menu>.nav-item>.nav-link.active:not(:hover){color:var(--lte-sidebar-menu-active-color);background-color:var(--lte-sidebar-menu-active-bg)}.sidebar-wrapper .sidebar-menu>.nav-item.menu-open>.nav-link,.sidebar-wrapper .sidebar-menu>.nav-item:hover>.nav-link,.sidebar-wrapper .sidebar-menu>.nav-item>.nav-link:focus{color:var(--lte-sidebar-hover-color);background-color:var(--lte-sidebar-hover-bg)}.sidebar-wrapper .sidebar-menu>.nav-item>.nav-treeview{background-color:var(--lte-sidebar-submenu-bg)}.sidebar-wrapper .nav-header{color:var(--lte-sidebar-header-color);background-color:inherit}.sidebar-wrapper a{color:var(--lte-sidebar-color)}.sidebar-wrapper .nav-treeview>.nav-item>.nav-link{color:var(--lte-sidebar-submenu-color)}.sidebar-wrapper .nav-treeview>.nav-item>.nav-link:focus,.sidebar-wrapper .nav-treeview>.nav-item>.nav-link:hover{color:var(--lte-sidebar-submenu-hover-color)}.sidebar-wrapper .nav-treeview>.nav-item>.nav-link.active,.sidebar-wrapper .nav-treeview>.nav-item>.nav-link.active:focus,.sidebar-wrapper .nav-treeview>.nav-item>.nav-link.active:hover{color:var(--lte-sidebar-submenu-active-color);background-color:var(--lte-sidebar-submenu-active-bg)}.sidebar-wrapper .nav-treeview>.nav-item>.nav-link:hover{background-color:var(--lte-sidebar-submenu-hover-bg)}.sidebar-menu .nav-item>.nav-link{margin-bottom:.2rem}.sidebar-menu .nav-item>.nav-link .nav-arrow{transition:transform ease-in-out .3s}@media (prefers-reduced-motion:reduce){.sidebar-menu .nav-item>.nav-link .nav-arrow{transition:none}}.sidebar-menu .nav-item>.nav-link .nav-arrow{transform:translateY(-50%) rotate(180deg);animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both}.sidebar-menu .nav-link>.nav-badge,.sidebar-menu .nav-link>p>.nav-badge{position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.sidebar-menu .nav-link>.nav-arrow,.sidebar-menu .nav-link>p>.nav-arrow{position:absolute;top:50%;left:1rem}.sidebar-menu .nav-link{position:relative;width:100%;transition:width ease-in-out .3s}@media (prefers-reduced-motion:reduce){.sidebar-menu .nav-link{transition:none}}.sidebar-menu .nav-link{border-radius:.375rem}.sidebar-menu .nav-link p{display:inline;padding-right:.5rem;margin:0}.sidebar-menu .nav-header{padding:.5rem .75rem;font-size:.9rem}.sidebar-menu .nav-treeview{display:none;padding:0;list-style:none}.nav-indent .sidebar-menu .nav-treeview{padding-right:.5rem}.sidebar-menu .menu-open>.nav-treeview{display:block}.sidebar-menu .menu-open>.nav-link .nav-arrow{transform:translateY(-50%) rotate(90deg)}.sidebar-menu .nav-link>.nav-arrow,.sidebar-menu .nav-link>.nav-badge,.sidebar-menu .nav-link>p>.nav-arrow,.sidebar-menu .nav-link>p>.nav-badge{left:1rem!important;right:auto!important}.nav-compact.nav-indent .nav-treeview{padding-right:0}.nav-compact.nav-indent .nav-treeview .nav-item{padding-right:.5rem}.sidebar-mini.sidebar-collapse.nav-indent .app-sidebar:hover .nav-treeview{padding-right:0}.sidebar-mini.sidebar-collapse.nav-indent .app-sidebar:hover .nav-treeview .nav-item{padding-right:.5rem}.sidebar-collapse.nav-compact.nav-indent .nav-treeview .nav-item{padding-right:0}.nav-compact .nav-link{border-radius:0;margin-bottom:0!important}.sidebar-menu,.sidebar-menu .nav-link,.sidebar-menu>.nav-header{white-space:nowrap}.logo-xl,.logo-xs{position:absolute;visibility:visible;opacity:1}.logo-xl.brand-image-xs,.logo-xs.brand-image-xs{top:12px;right:18px}.logo-xl.brand-image-xl,.logo-xs.brand-image-xl{top:6px;right:12px}.logo-xs{visibility:hidden;opacity:0}.logo-xs.brand-image-xl{top:8px;right:16px}.brand-link.logo-switch::before{content:" "}.sidebar-mini.sidebar-collapse .app-sidebar{min-width:4.6rem;max-width:4.6rem}.sidebar-mini.sidebar-collapse .sidebar-menu .nav-header{display:none}.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link{width:3.6rem}.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link p{display:inline-block;width:0;white-space:nowrap}.sidebar-mini.sidebar-collapse .sidebar-menu .nav-arrow,.sidebar-mini.sidebar-collapse .sidebar-menu .nav-badge{display:none;animation-name:fadeOut;animation-duration:.3s;animation-fill-mode:both}.sidebar-mini.sidebar-collapse .brand-text{display:inline-block;max-width:0;overflow:hidden}.sidebar-mini.sidebar-collapse .brand-text,.sidebar-mini.sidebar-collapse .logo-xl,.sidebar-mini.sidebar-collapse .nav-arrow,.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link p{visibility:hidden;animation-name:fadeOut;animation-duration:.3s;animation-fill-mode:both}.sidebar-mini.sidebar-collapse .logo-xs{display:inline-block;visibility:visible;animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both}.sidebar-mini.sidebar-collapse .app-sidebar:hover{min-width:var(--lte-sidebar-width);max-width:var(--lte-sidebar-width)}.sidebar-mini.sidebar-collapse .app-sidebar:hover .sidebar-menu .nav-header{display:inline-block}.sidebar-mini.sidebar-collapse .app-sidebar:hover .sidebar-menu .nav-link{width:auto}.sidebar-mini.sidebar-collapse .app-sidebar:hover .brand-text,.sidebar-mini.sidebar-collapse .app-sidebar:hover .logo-xl,.sidebar-mini.sidebar-collapse .app-sidebar:hover .sidebar-menu .nav-link p{width:auto;margin-right:0;visibility:visible;animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both}.sidebar-mini.sidebar-collapse .app-sidebar:hover .brand-text{display:inline;max-width:inherit;margin-right:.5rem;animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both}.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav-arrow,.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav-badge{display:inline-block;visibility:visible;animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-mini.sidebar-collapse .app-sidebar:hover .nav-link p{padding-right:.5rem}.sidebar-mini.sidebar-collapse .app-sidebar:hover .logo-xs{visibility:hidden;animation-name:fadeOut;animation-duration:.3s;animation-fill-mode:both}.sidebar-collapse:not(.sidebar-mini) .app-sidebar{margin-right:calc(var(--lte-sidebar-width) * -1)}@media (min-width:576px){.sidebar-expand-sm.layout-fixed .app-main-wrapper{display:flex;flex-direction:column;min-height:100vh}.sidebar-expand-sm.layout-fixed .app-sidebar-wrapper{position:relative}.sidebar-expand-sm.layout-fixed .app-main{flex:1 1 auto;overflow:auto}.sidebar-expand-sm.layout-fixed .app-sidebar{position:sticky;top:0;bottom:0;max-height:100vh}.sidebar-expand-sm.layout-fixed .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-sm.sidebar-open .nav-link>.nav-badge,.sidebar-expand-sm.sidebar-open .nav-link>p>.nav-badge{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand-sm.sidebar-open .nav-link>.nav-arrow,.sidebar-expand-sm.sidebar-open .nav-link>p>.nav-arrow{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}}@media (max-width:575.98px){.sidebar-expand-sm::before{display:none;content:"575.98px"}.sidebar-expand-sm .app-sidebar{position:fixed;top:0;bottom:0;max-height:100vh;margin-right:calc(var(--lte-sidebar-width) * -1)}.sidebar-expand-sm .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-sm.sidebar-open .app-sidebar{margin-right:0}.sidebar-expand-sm.sidebar-open .sidebar-overlay{position:absolute;inset:0;z-index:1037;width:100%;height:100%;cursor:pointer;visibility:visible;background-color:rgba(0,0,0,.2);animation-name:fadeIn;animation-fill-mode:both}}@media (min-width:768px){.sidebar-expand-md.layout-fixed .app-main-wrapper{display:flex;flex-direction:column;min-height:100vh}.sidebar-expand-md.layout-fixed .app-sidebar-wrapper{position:relative}.sidebar-expand-md.layout-fixed .app-main{flex:1 1 auto;overflow:auto}.sidebar-expand-md.layout-fixed .app-sidebar{position:sticky;top:0;bottom:0;max-height:100vh}.sidebar-expand-md.layout-fixed .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-md.sidebar-open .nav-link>.nav-badge,.sidebar-expand-md.sidebar-open .nav-link>p>.nav-badge{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand-md.sidebar-open .nav-link>.nav-arrow,.sidebar-expand-md.sidebar-open .nav-link>p>.nav-arrow{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}}@media (max-width:767.98px){.sidebar-expand-md::before{display:none;content:"767.98px"}.sidebar-expand-md .app-sidebar{position:fixed;top:0;bottom:0;max-height:100vh;margin-right:calc(var(--lte-sidebar-width) * -1)}.sidebar-expand-md .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-md.sidebar-open .app-sidebar{margin-right:0}.sidebar-expand-md.sidebar-open .sidebar-overlay{position:absolute;inset:0;z-index:1037;width:100%;height:100%;cursor:pointer;visibility:visible;background-color:rgba(0,0,0,.2);animation-name:fadeIn;animation-fill-mode:both}}@media (min-width:992px){.sidebar-expand-lg.layout-fixed .app-main-wrapper{display:flex;flex-direction:column;min-height:100vh}.sidebar-expand-lg.layout-fixed .app-sidebar-wrapper{position:relative}.sidebar-expand-lg.layout-fixed .app-main{flex:1 1 auto;overflow:auto}.sidebar-expand-lg.layout-fixed .app-sidebar{position:sticky;top:0;bottom:0;max-height:100vh}.sidebar-expand-lg.layout-fixed .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-lg.sidebar-open .nav-link>.nav-badge,.sidebar-expand-lg.sidebar-open .nav-link>p>.nav-badge{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand-lg.sidebar-open .nav-link>.nav-arrow,.sidebar-expand-lg.sidebar-open .nav-link>p>.nav-arrow{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}}@media (max-width:991.98px){.sidebar-expand-lg::before{display:none;content:"991.98px"}.sidebar-expand-lg .app-sidebar{position:fixed;top:0;bottom:0;max-height:100vh;margin-right:calc(var(--lte-sidebar-width) * -1)}.sidebar-expand-lg .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-lg.sidebar-open .app-sidebar{margin-right:0}.sidebar-expand-lg.sidebar-open .sidebar-overlay{position:absolute;inset:0;z-index:1037;width:100%;height:100%;cursor:pointer;visibility:visible;background-color:rgba(0,0,0,.2);animation-name:fadeIn;animation-fill-mode:both}}@media (min-width:1200px){.sidebar-expand-xl.layout-fixed .app-main-wrapper{display:flex;flex-direction:column;min-height:100vh}.sidebar-expand-xl.layout-fixed .app-sidebar-wrapper{position:relative}.sidebar-expand-xl.layout-fixed .app-main{flex:1 1 auto;overflow:auto}.sidebar-expand-xl.layout-fixed .app-sidebar{position:sticky;top:0;bottom:0;max-height:100vh}.sidebar-expand-xl.layout-fixed .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-xl.sidebar-open .nav-link>.nav-badge,.sidebar-expand-xl.sidebar-open .nav-link>p>.nav-badge{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand-xl.sidebar-open .nav-link>.nav-arrow,.sidebar-expand-xl.sidebar-open .nav-link>p>.nav-arrow{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}}@media (max-width:1199.98px){.sidebar-expand-xl::before{display:none;content:"1199.98px"}.sidebar-expand-xl .app-sidebar{position:fixed;top:0;bottom:0;max-height:100vh;margin-right:calc(var(--lte-sidebar-width) * -1)}.sidebar-expand-xl .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-xl.sidebar-open .app-sidebar{margin-right:0}.sidebar-expand-xl.sidebar-open .sidebar-overlay{position:absolute;inset:0;z-index:1037;width:100%;height:100%;cursor:pointer;visibility:visible;background-color:rgba(0,0,0,.2);animation-name:fadeIn;animation-fill-mode:both}}@media (min-width:1400px){.sidebar-expand-xxl.layout-fixed .app-main-wrapper{display:flex;flex-direction:column;min-height:100vh}.sidebar-expand-xxl.layout-fixed .app-sidebar-wrapper{position:relative}.sidebar-expand-xxl.layout-fixed .app-main{flex:1 1 auto;overflow:auto}.sidebar-expand-xxl.layout-fixed .app-sidebar{position:sticky;top:0;bottom:0;max-height:100vh}.sidebar-expand-xxl.layout-fixed .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-xxl.sidebar-open .nav-link>.nav-badge,.sidebar-expand-xxl.sidebar-open .nav-link>p>.nav-badge{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand-xxl.sidebar-open .nav-link>.nav-arrow,.sidebar-expand-xxl.sidebar-open .nav-link>p>.nav-arrow{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}}@media (max-width:1399.98px){.sidebar-expand-xxl::before{display:none;content:"1399.98px"}.sidebar-expand-xxl .app-sidebar{position:fixed;top:0;bottom:0;max-height:100vh;margin-right:calc(var(--lte-sidebar-width) * -1)}.sidebar-expand-xxl .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand-xxl.sidebar-open .app-sidebar{margin-right:0}.sidebar-expand-xxl.sidebar-open .sidebar-overlay{position:absolute;inset:0;z-index:1037;width:100%;height:100%;cursor:pointer;visibility:visible;background-color:rgba(0,0,0,.2);animation-name:fadeIn;animation-fill-mode:both}}.sidebar-expand.layout-fixed .app-main-wrapper{display:flex;flex-direction:column;min-height:100vh}.sidebar-expand.layout-fixed .app-sidebar-wrapper{position:relative}.sidebar-expand.layout-fixed .app-main{flex:1 1 auto;overflow:auto}.sidebar-expand.layout-fixed .app-sidebar{position:sticky;top:0;bottom:0;max-height:100vh}.sidebar-expand.layout-fixed .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand.sidebar-open .nav-link>.nav-badge,.sidebar-expand.sidebar-open .nav-link>p>.nav-badge{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand.sidebar-open .nav-link>.nav-arrow,.sidebar-expand.sidebar-open .nav-link>p>.nav-arrow{animation-name:fadeIn;animation-duration:.3s;animation-fill-mode:both;animation-delay:.3s}.sidebar-expand::before{display:none;content:""}.sidebar-expand .app-sidebar{position:fixed;top:0;bottom:0;max-height:100vh;margin-right:calc(var(--lte-sidebar-width) * -1)}.sidebar-expand .app-sidebar .sidebar-wrapper{height:calc(100vh - (calc(3.5rem + 1px)));overflow-x:hidden;overflow-y:auto}.sidebar-expand.sidebar-open .app-sidebar{margin-right:0}.sidebar-expand.sidebar-open .sidebar-overlay{position:absolute;inset:0;z-index:1037;width:100%;height:100%;cursor:pointer;visibility:visible;background-color:rgba(0,0,0,.2);animation-name:fadeIn;animation-fill-mode:both}.app-sidebar .brand-text,.app-sidebar .logo-xl,.app-sidebar .logo-xs,.sidebar-menu .nav-link p{transition:margin-right .3s linear,opacity .3s ease,visibility .3s ease}@media (prefers-reduced-motion:reduce){.app-sidebar .brand-text,.app-sidebar .logo-xl,.app-sidebar .logo-xs,.sidebar-menu .nav-link p{transition:none}}.app-loaded.sidebar-mini.sidebar-collapse .brand-text,.app-loaded.sidebar-mini.sidebar-collapse .sidebar-menu .nav-link p{animation-duration:.3s}body:not(.app-loaded) .app-footer,body:not(.app-loaded) .app-header,body:not(.app-loaded) .app-main,body:not(.app-loaded) .app-sidebar{transition:none!important}@media (prefers-reduced-motion:reduce){body:not(.app-loaded) .app-footer,body:not(.app-loaded) .app-header,body:not(.app-loaded) .app-main,body:not(.app-loaded) .app-sidebar{transition:none}}body:not(.app-loaded) .app-footer,body:not(.app-loaded) .app-header,body:not(.app-loaded) .app-main,body:not(.app-loaded) .app-sidebar{animation-duration:0s!important}.hold-transition .app-footer,.hold-transition .app-header,.hold-transition .app-main,.hold-transition .app-sidebar,.hold-transition .nav-arrow,.hold-transition .nav-badge{transition:none!important}@media (prefers-reduced-motion:reduce){.hold-transition .app-footer,.hold-transition .app-header,.hold-transition .app-main,.hold-transition .app-sidebar,.hold-transition .nav-arrow,.hold-transition .nav-badge{transition:none}}.hold-transition .app-footer,.hold-transition .app-header,.hold-transition .app-main,.hold-transition .app-sidebar,.hold-transition .nav-arrow,.hold-transition .nav-badge{animation-duration:0s!important}[data-bs-theme=dark] .app-sidebar,[data-bs-theme=dark].app-sidebar{--lte-sidebar-hover-bg:rgba(255, 255, 255, 0.1);--lte-sidebar-color:#c2c7d0;--lte-sidebar-hover-color:#fff;--lte-sidebar-active-color:#fff;--lte-sidebar-menu-active-bg:rgba(255, 255, 255, 0.1);--lte-sidebar-menu-active-color:#fff;--lte-sidebar-submenu-bg:transparent;--lte-sidebar-submenu-color:#c2c7d0;--lte-sidebar-submenu-hover-color:#fff;--lte-sidebar-submenu-hover-bg:rgba(255, 255, 255, 0.1);--lte-sidebar-submenu-active-color:#fff;--lte-sidebar-submenu-active-bg:rgba(255, 255, 255, 0.1);--lte-sidebar-header-color:rgb(197.05, 201.8, 210.35)}.app-main{position:relative;display:flex;flex-direction:column;grid-area:lte-app-main;max-width:100vw;padding-bottom:.75rem;transition:.3s ease-in-out}@media (prefers-reduced-motion:reduce){.app-main{transition:none}}.app-main .app-content-header{padding:1rem .5rem}.app-main .app-content-header .breadcrumb{padding:0;margin-bottom:0;line-height:2.5rem}.app-main .app-content-header .breadcrumb a{text-decoration:none}.app-main .app-content-bottom-area,.app-main .app-content-top-area{color:var(--bs-secondary-color);background-color:var(--bs-body-bg)}.app-main .app-content-top-area{padding:1rem 0;border-bottom:1px solid var(--bs-border-color)}.app-main .app-content-bottom-area{padding:1rem 0;margin-top:auto;margin-bottom:-.75rem;border-top:1px solid var(--bs-border-color)}.app-footer{grid-area:lte-app-footer;width:inherit;max-width:100vw;min-height:3rem;padding:1rem;color:var(--bs-secondary-color);background-color:var(--bs-body-bg);border-top:1px solid var(--bs-border-color);transition:.3s ease-in-out}@media (prefers-reduced-motion:reduce){.app-footer{transition:none}}.fixed-footer .app-footer{position:sticky;bottom:0;z-index:1030}.fs-7 .dropdown-menu{font-size:.875rem!important}.fs-7 .dropdown-toggle::after{vertical-align:.2rem}.dropdown-item-title{margin:0;font-size:1rem}.dropdown-icon::after{margin-right:0}.dropdown-menu-lg{min-width:280px;max-width:300px;padding:0}.dropdown-menu-lg .dropdown-divider{margin:0}.dropdown-menu-lg .dropdown-item{padding:.5rem 1rem}.dropdown-menu-lg p{margin:0;word-wrap:break-word;white-space:normal}.dropdown-submenu{position:relative}.dropdown-submenu>a::after{border-top:.3em solid transparent;border-left:0;border-bottom:.3em solid transparent;border-right:.3em solid;float:left;margin-top:.5rem;margin-right:.5rem}.dropdown-submenu>.dropdown-menu{top:0;right:100%;margin-top:0;margin-right:0}.dropdown-hover .dropdown-submenu:hover>.dropdown-menu,.dropdown-hover.dropdown-submenu:hover>.dropdown-menu,.dropdown-hover.nav-item.dropdown:hover>.dropdown-menu,.dropdown-hover:hover>.dropdown-menu{display:block}.dropdown-menu-xl{min-width:360px;max-width:420px;padding:0}.dropdown-menu-xl .dropdown-divider{margin:0}.dropdown-menu-xl .dropdown-item{padding:.5rem 1rem}.dropdown-menu-xl p{margin:0;word-wrap:break-word;white-space:normal}.dropdown-footer,.dropdown-header{display:block;padding:.5rem 1rem;font-size:.875rem;text-align:center}.open:not(.dropup)>.animated-dropdown-menu{animation:flipInX .7s both;backface-visibility:visible!important}.navbar-custom-menu>.navbar-nav>li{position:relative}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;left:0;right:auto}@media (max-width:575.98px){.navbar-custom-menu>.navbar-nav{float:left}.navbar-custom-menu>.navbar-nav>li{position:static}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;left:5%;right:auto;background-color:var(--bs-body-bg);border:1px solid var(--bs-border-color)}}.navbar-nav>.user-menu>.nav-link::after{content:none}.navbar-nav>.user-menu>.dropdown-menu{border-top-right-radius:0;border-top-left-radius:0;width:280px;padding:0}.navbar-nav>.user-menu>.dropdown-menu,.navbar-nav>.user-menu>.dropdown-menu>.user-body{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header{min-height:175px;padding:10px;text-align:center}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>img{z-index:5;width:90px;height:90px;border:3px solid;border-color:transparent;border-color:var(--bs-border-color-translucent)}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p{z-index:5;margin-top:10px;font-size:17px;word-wrap:break-word}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p>.small,.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p>small{display:block;font-size:12px}.navbar-nav>.user-menu>.dropdown-menu>.user-body::after{display:block;clear:both;content:""}.navbar-nav>.user-menu>.dropdown-menu>.user-body{padding:15px;border-top:1px solid var(--bs-border-color);border-bottom:1px solid var(--bs-border-color-translucent)}.navbar-nav>.user-menu>.dropdown-menu>.user-body a{text-decoration:none}@media (min-width:576px){.navbar-nav>.user-menu>.dropdown-menu>.user-body a{color:var(--bs-body-color)!important;background-color:var(--bs-body-bg)!important}}.navbar-nav>.user-menu>.dropdown-menu>.user-footer::after{display:block;clear:both;content:""}.navbar-nav>.user-menu>.dropdown-menu>.user-footer{padding:10px;background-color:var(--bs-light-bg)}.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default{color:var(--bs-body-color)}@media (min-width:576px){.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default:hover{background-color:var(--bs-body-bg)}}@media (min-width:576px){.navbar-nav>.user-menu .user-image{float:none;margin-top:-8px;margin-left:.4rem;line-height:10px}}.navbar-nav>.user-menu .user-image{float:right;width:2rem;height:2rem;margin-top:-2px;border-radius:50%}.callout{--bs-link-color-rgb:var(--lte-callout-link);--bs-code-color:var(--lte-callout-code-color);padding:1.25rem;color:var(--lte-callout-color,inherit);background-color:var(--lte-callout-bg,var(--bs-gray-100));border-right:.25rem solid var(--lte-callout-border,var(--bs-gray-300))}.callout .callout-link{font-weight:700;color:var(--bs-callout-link-color)}.callout .h4,.callout h4{margin-bottom:.25rem}.callout>:last-child{margin-bottom:0}.callout+.callout{margin-top:-.25rem}.callout-primary{--lte-callout-color:var(--bs-primary-text-emphasis);--lte-callout-bg:var(--bs-primary-bg-subtle);--lte-callout-border:var(--bs-primary-border-subtle);--bs-callout-link-color:var(--bs-primary-text-emphasis)}.callout-secondary{--lte-callout-color:var(--bs-secondary-text-emphasis);--lte-callout-bg:var(--bs-secondary-bg-subtle);--lte-callout-border:var(--bs-secondary-border-subtle);--bs-callout-link-color:var(--bs-secondary-text-emphasis)}.callout-success{--lte-callout-color:var(--bs-success-text-emphasis);--lte-callout-bg:var(--bs-success-bg-subtle);--lte-callout-border:var(--bs-success-border-subtle);--bs-callout-link-color:var(--bs-success-text-emphasis)}.callout-info{--lte-callout-color:var(--bs-info-text-emphasis);--lte-callout-bg:var(--bs-info-bg-subtle);--lte-callout-border:var(--bs-info-border-subtle);--bs-callout-link-color:var(--bs-info-text-emphasis)}.callout-warning{--lte-callout-color:var(--bs-warning-text-emphasis);--lte-callout-bg:var(--bs-warning-bg-subtle);--lte-callout-border:var(--bs-warning-border-subtle);--bs-callout-link-color:var(--bs-warning-text-emphasis)}.callout-danger{--lte-callout-color:var(--bs-danger-text-emphasis);--lte-callout-bg:var(--bs-danger-bg-subtle);--lte-callout-border:var(--bs-danger-border-subtle);--bs-callout-link-color:var(--bs-danger-text-emphasis)}.callout-light{--lte-callout-color:var(--bs-light-text-emphasis);--lte-callout-bg:var(--bs-light-bg-subtle);--lte-callout-border:var(--bs-light-border-subtle);--bs-callout-link-color:var(--bs-light-text-emphasis)}.callout-dark{--lte-callout-color:var(--bs-dark-text-emphasis);--lte-callout-bg:var(--bs-dark-bg-subtle);--lte-callout-border:var(--bs-dark-border-subtle);--bs-callout-link-color:var(--bs-dark-text-emphasis)}.compact-mode .app-header{max-height:2.75rem}.compact-mode .app-header .nav-link{max-height:1.75rem}.compact-mode .nav-link{--bs-nav-link-padding-y:.25rem;--bs-nav-link-padding-x:.5rem}.compact-mode.sidebar-mini.sidebar-collapse .app-sidebar:not(:hover){min-width:3.1rem;max-width:3.1rem}.compact-mode.sidebar-mini.sidebar-collapse .app-sidebar:not(:hover) .sidebar-menu .nav-link{width:2.1rem!important}.compact-mode .logo-xl,.compact-mode .logo-xs{max-height:2.75rem}.compact-mode .brand-image{width:1.75rem;height:1.75rem}.compact-mode .sidebar-brand{height:2.75rem}.compact-mode .app-footer{padding:.5rem}.compact-mode .sidebar-wrapper .nav-icon{min-width:1.1rem;max-width:1.1rem}.astro-code{padding:.75rem;border-radius:.375rem}.progress{border-radius:1px}.progress.vertical{position:relative;display:inline-block;width:30px;height:200px;margin-left:10px}.progress.vertical>.progress-bar{position:absolute;bottom:0;width:100%}.progress.vertical.progress-sm,.progress.vertical.sm{width:20px}.progress.vertical.progress-xs,.progress.vertical.xs{width:10px}.progress.vertical.progress-xxs,.progress.vertical.xxs{width:3px}.progress-group{margin-bottom:.5rem}.progress-sm{height:10px}.progress-xs{height:7px}.progress-xxs{height:3px}.table tr>td .progress{margin:0}.card{box-shadow:0 0 1px rgba(var(--bs-body-color-rgb),.125),0 1px 3px rgba(var(--bs-body-color-rgb),.2)}.card[class*=card-]:not(.card-outline)>.card-header,.card[class*=text-bg-]:not(.card-outline)>.card-header{color:var(--lte-card-variant-color);background-color:var(--lte-card-variant-bg)}.card[class*=card-]:not(.card-outline)>.card-header .btn-tool,.card[class*=text-bg-]:not(.card-outline)>.card-header .btn-tool{--bs-btn-color:rgba(var(--lte-card-variant-color-rgb), .8);--bs-btn-hover-color:var(--lte-card-variant-color)}.card.card-outline{border-top:3px solid var(--lte-card-variant-bg)}.card.maximized-card{position:fixed;top:0;right:0;z-index:1050;width:100%!important;max-width:100%!important;height:100%!important;max-height:100%!important}.card.maximized-card.was-collapsed .card-body{display:block!important}.card.maximized-card .card-body{overflow:auto}.card.maximized-card [data-lte-toggle=card-collapse]{display:none}.card.maximized-card [data-lte-icon=maximize]{display:none}.card.maximized-card .card-footer,.card.maximized-card .card-header{border-radius:0!important}.card:not(.maximized-card) [data-lte-icon=minimize]{display:none}.card.collapsed-card [data-lte-icon=collapse]{display:none}.card.collapsed-card .card-body,.card.collapsed-card .card-footer{display:none}.card:not(.collapsed-card) [data-lte-icon=expand]{display:none}.card .nav.flex-column>li{margin:0;border-bottom:1px solid var(--bs-border-color-translucent)}.card .nav.flex-column>li:last-of-type{border-bottom:0}.card.height-control .card-body{max-height:300px;overflow:auto}.card .border-end{border-left:1px solid var(--bs-border-color-translucent)}.card .border-start{border-right:1px solid var(--bs-border-color-translucent)}.card.card-tabs:not(.card-outline)>.card-header{border-bottom:0}.card.card-tabs:not(.card-outline)>.card-header .nav-item:first-child .nav-link{border-right-color:transparent}.card.card-tabs.card-outline .nav-item{border-bottom:0}.card.card-tabs.card-outline .nav-item:first-child .nav-link{margin-right:0;border-right:0}.card.card-tabs .card-tools{margin:.3rem .5rem}.card.card-tabs:not(.expanding-card).collapsed-card .card-header{border-bottom:0}.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs{border-bottom:0}.card.card-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item{margin-bottom:0}.card.card-tabs.expanding-card .card-header .nav-tabs .nav-item{margin-bottom:-1px}.card.card-outline-tabs{border-top:0}.card.card-outline-tabs .card-header .nav-item:first-child .nav-link{margin-right:0;border-right:0}.card.card-outline-tabs .card-header a{text-decoration:none;border-top:3px solid transparent}.card.card-outline-tabs .card-header a:hover{border-top:3px solid var(--bs-border-color)}.card.card-outline-tabs .card-header a.active:hover{margin-top:0}.card.card-outline-tabs .card-tools{margin:.5rem .5rem .3rem}.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header{border-bottom:0}.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs{border-bottom:0}.card.card-outline-tabs:not(.expanding-card).collapsed-card .card-header .nav-tabs .nav-item{margin-bottom:0}.card.card-outline-tabs.expanding-card .card-header .nav-tabs .nav-item{margin-bottom:-1px}html.maximized-card{overflow:hidden}.card-body::after,.card-footer::after,.card-header::after{display:block;clear:both;content:""}.card-header{position:relative;padding:1rem 1rem;background-color:transparent;border-bottom:1px solid var(--bs-border-color-translucent);border-top-right-radius:.375rem;border-top-left-radius:.375rem}.collapsed-card .card-header{border-bottom:0}.card-header>.card-tools{float:left;margin-left:-.5rem}.card-header>.card-tools .input-group,.card-header>.card-tools .nav,.card-header>.card-tools .pagination{margin-top:-.4rem;margin-bottom:-.4rem}.card-header>.card-tools [data-bs-toggle=tooltip]{position:relative}.card-title{float:right;margin:0;font-size:1.1rem;font-weight:400}.btn-tool{--bs-btn-padding-x:.5rem;--bs-btn-padding-y:.25rem}.btn-tool:not(.btn-tool-custom){--bs-btn-color:var(--bs-tertiary-color);--bs-btn-bg:transparent;--bs-btn-box-shadow:none;--bs-btn-hover-color:var(--bs-secondary-color);--bs-btn-active-border-color:transparent}.btn-tool{margin:-1rem 0;font-size:.875rem}.bg-primary,.card-primary,.text-bg-primary{--lte-card-variant-bg:#0d6efd;--lte-card-variant-bg-rgb:13,110,253;--lte-card-variant-color:#fff;--lte-card-variant-color-rgb:255,255,255}.bg-secondary,.card-secondary,.text-bg-secondary{--lte-card-variant-bg:#6c757d;--lte-card-variant-bg-rgb:108,117,125;--lte-card-variant-color:#fff;--lte-card-variant-color-rgb:255,255,255}.bg-success,.card-success,.text-bg-success{--lte-card-variant-bg:#198754;--lte-card-variant-bg-rgb:25,135,84;--lte-card-variant-color:#fff;--lte-card-variant-color-rgb:255,255,255}.bg-info,.card-info,.text-bg-info{--lte-card-variant-bg:#0dcaf0;--lte-card-variant-bg-rgb:13,202,240;--lte-card-variant-color:#000;--lte-card-variant-color-rgb:0,0,0}.bg-warning,.card-warning,.text-bg-warning{--lte-card-variant-bg:#ffc107;--lte-card-variant-bg-rgb:255,193,7;--lte-card-variant-color:#000;--lte-card-variant-color-rgb:0,0,0}.bg-danger,.card-danger,.text-bg-danger{--lte-card-variant-bg:#dc3545;--lte-card-variant-bg-rgb:220,53,69;--lte-card-variant-color:#fff;--lte-card-variant-color-rgb:255,255,255}.bg-light,.card-light,.text-bg-light{--lte-card-variant-bg:#f8f9fa;--lte-card-variant-bg-rgb:248,249,250;--lte-card-variant-color:#000;--lte-card-variant-color-rgb:0,0,0}.bg-dark,.card-dark,.text-bg-dark{--lte-card-variant-bg:#212529;--lte-card-variant-bg-rgb:33,37,41;--lte-card-variant-color:#fff;--lte-card-variant-color-rgb:255,255,255}.card-body>.table{margin-bottom:0}.card-body>.table>thead>tr>td,.card-body>.table>thead>tr>th{border-top-width:0}.table:not(.table-dark){color:inherit}.table.table-head-fixed thead tr:first-child th{position:sticky;top:0;z-index:10;background-color:#fff;border-bottom:0;box-shadow:inset 0 1px 0 var(--bs-border-color),inset 0 -1px 0 var(--bs-border-color)}.table.no-border,.table.no-border td,.table.no-border th{border:0}.table.text-center,.table.text-center td,.table.text-center th{text-align:center}.table.table-valign-middle tbody>tr>td,.table.table-valign-middle tbody>tr>th,.table.table-valign-middle thead>tr>td,.table.table-valign-middle thead>tr>th{vertical-align:middle}.card-body.p-0 .table tbody>tr>td:first-of-type,.card-body.p-0 .table tbody>tr>th:first-of-type,.card-body.p-0 .table tfoot>tr>td:first-of-type,.card-body.p-0 .table tfoot>tr>th:first-of-type,.card-body.p-0 .table thead>tr>td:first-of-type,.card-body.p-0 .table thead>tr>th:first-of-type{padding-right:1.5rem}.card-body.p-0 .table tbody>tr>td:last-of-type,.card-body.p-0 .table tbody>tr>th:last-of-type,.card-body.p-0 .table tfoot>tr>td:last-of-type,.card-body.p-0 .table tfoot>tr>th:last-of-type,.card-body.p-0 .table thead>tr>td:last-of-type,.card-body.p-0 .table thead>tr>th:last-of-type{padding-left:1.5rem}.small-box{border-radius:.375rem;box-shadow:0 0 1px rgba(var(--bs-body-color-rgb),.125),0 1px 3px rgba(var(--bs-body-color-rgb),.2);position:relative;display:block;margin-bottom:1.25rem;--bs-link-color-rgb:none;--bs-link-hover-color-rgb:none;--bs-heading-color:none}.small-box>.inner{padding:10px}.small-box>.small-box-footer{position:relative;z-index:10;display:block;padding:3px 0;text-align:center;background-color:rgba(0,0,0,.07)}.small-box>.small-box-footer:hover{background-color:rgba(0,0,0,.1)}.small-box .h3,.small-box h3{font-size:calc(1.345rem + 1.14vw)}@media (min-width:1200px){.small-box .h3,.small-box h3{font-size:2.2rem}}.small-box .h3,.small-box h3{padding:0;margin:0 0 10px;font-weight:700;white-space:nowrap}@media (min-width:992px){.col-lg-2 .small-box .h3,.col-lg-2 .small-box h3,.col-md-2 .small-box .h3,.col-md-2 .small-box h3,.col-xl-2 .small-box .h3,.col-xl-2 .small-box h3{font-size:calc(1.285rem + .42vw)}}@media (min-width:992px) and (min-width:1200px){.col-lg-2 .small-box .h3,.col-lg-2 .small-box h3,.col-md-2 .small-box .h3,.col-md-2 .small-box h3,.col-xl-2 .small-box .h3,.col-xl-2 .small-box h3{font-size:1.6rem}}@media (min-width:992px){.col-lg-3 .small-box .h3,.col-lg-3 .small-box h3,.col-md-3 .small-box .h3,.col-md-3 .small-box h3,.col-xl-3 .small-box .h3,.col-xl-3 .small-box h3{font-size:calc(1.285rem + .42vw)}}@media (min-width:992px) and (min-width:1200px){.col-lg-3 .small-box .h3,.col-lg-3 .small-box h3,.col-md-3 .small-box .h3,.col-md-3 .small-box h3,.col-xl-3 .small-box .h3,.col-xl-3 .small-box h3{font-size:1.6rem}}@media (min-width:1200px){.col-lg-2 .small-box .h3,.col-lg-2 .small-box h3,.col-md-2 .small-box .h3,.col-md-2 .small-box h3,.col-xl-2 .small-box .h3,.col-xl-2 .small-box h3{font-size:calc(1.345rem + 1.14vw)}}@media (min-width:1200px) and (min-width:1200px){.col-lg-2 .small-box .h3,.col-lg-2 .small-box h3,.col-md-2 .small-box .h3,.col-md-2 .small-box h3,.col-xl-2 .small-box .h3,.col-xl-2 .small-box h3{font-size:2.2rem}}@media (min-width:1200px){.col-lg-3 .small-box .h3,.col-lg-3 .small-box h3,.col-md-3 .small-box .h3,.col-md-3 .small-box h3,.col-xl-3 .small-box .h3,.col-xl-3 .small-box h3{font-size:calc(1.345rem + 1.14vw)}}@media (min-width:1200px) and (min-width:1200px){.col-lg-3 .small-box .h3,.col-lg-3 .small-box h3,.col-md-3 .small-box .h3,.col-md-3 .small-box h3,.col-xl-3 .small-box .h3,.col-xl-3 .small-box h3{font-size:2.2rem}}.small-box p{font-size:1rem}.small-box p>.small,.small-box p>small{display:block;margin-top:5px;font-size:.9rem;color:#f8f9fa}.small-box .h3,.small-box h3,.small-box p{z-index:5}.small-box .small-box-icon{position:absolute;top:15px;left:15px;z-index:0;height:70px;font-size:70px;color:rgba(0,0,0,.15);transition:transform .3s linear}@media (prefers-reduced-motion:reduce){.small-box .small-box-icon{transition:none}}.small-box:hover .small-box-icon{transform:scale(1.1)}@media (max-width:575.98px){.small-box{text-align:center}.small-box .small-box-icon{display:none}.small-box p{font-size:12px}}.info-box{box-shadow:0 0 1px rgba(var(--bs-body-color-rgb),.125),0 1px 3px rgba(var(--bs-body-color-rgb),.2);border-radius:.375rem;position:relative;display:flex;width:100%;min-height:80px;padding:.5rem;margin-bottom:1rem;color:var(--bs-body-color);background-color:var(--bs-body-bg)}.info-box .progress{height:2px;margin:5px 0;background-color:rgba(var(--lte-card-variant-color-rgb),.125)}.info-box .progress .progress-bar{background-color:var(--lte-card-variant-color)}.info-box .info-box-icon{display:flex;align-items:center;justify-content:center;width:70px;font-size:1.875rem;text-align:center;border-radius:.375rem}.info-box .info-box-icon>img{max-width:100%}.info-box .info-box-content{display:flex;flex:1;flex-direction:column;justify-content:center;padding:0 10px;line-height:1.8}.info-box .info-box-number{display:block;margin-top:.25rem;font-weight:700}.info-box .info-box-text,.info-box .progress-description{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.info-box .info-box-more{display:block}.info-box .progress-description{margin:0}@media (min-width:768px){.col-lg-2 .info-box .progress-description,.col-md-2 .info-box .progress-description,.col-xl-2 .info-box .progress-description{display:none}.col-lg-3 .info-box .progress-description,.col-md-3 .info-box .progress-description,.col-xl-3 .info-box .progress-description{display:none}}@media (min-width:992px){.col-lg-2 .info-box .progress-description,.col-md-2 .info-box .progress-description,.col-xl-2 .info-box .progress-description{font-size:.75rem;display:block}.col-lg-3 .info-box .progress-description,.col-md-3 .info-box .progress-description,.col-xl-3 .info-box .progress-description{font-size:.75rem;display:block}}@media (min-width:1200px){.col-lg-2 .info-box .progress-description,.col-md-2 .info-box .progress-description,.col-xl-2 .info-box .progress-description{font-size:1rem;display:block}.col-lg-3 .info-box .progress-description,.col-md-3 .info-box .progress-description,.col-xl-3 .info-box .progress-description{font-size:1rem;display:block}}.timeline{position:relative;padding:0;margin:0 0 45px}.timeline::before{border-radius:.375rem;position:absolute;top:0;bottom:0;right:31px;width:4px;margin:0;content:"";background-color:var(--bs-border-color)}.timeline>div::after,.timeline>div::before{display:table;content:""}.timeline>div{position:relative;margin-left:10px;margin-bottom:15px}.timeline>div>.timeline-item{box-shadow:0 0 1px rgba(var(--bs-body-color-rgb),.125),0 1px 3px rgba(var(--bs-body-color-rgb),.2);border-radius:.375rem;position:relative;padding:0;margin-top:0;margin-left:15px;margin-right:60px;color:var(--bs-body-color);background-color:var(--bs-body-bg)}.timeline>div>.timeline-item>.time{float:left;padding:10px;font-size:12px;color:var(--bs-secondary-color)}.timeline>div>.timeline-item>.timeline-header{padding:10px;margin:0;font-size:16px;line-height:1.1;color:var(--bs-secondary-color);border-bottom:1px solid var(--bs-border-color)}.timeline>div>.timeline-item>.timeline-header>a{font-weight:600;text-decoration:none}.timeline>div>.timeline-item>.timeline-body,.timeline>div>.timeline-item>.timeline-footer{padding:10px}.timeline>div>.timeline-item>.timeline-body>img{margin:10px}.timeline>div>.timeline-item>.timeline-body ol,.timeline>div>.timeline-item>.timeline-body ul,.timeline>div>.timeline-item>.timeline-body>dl{margin:0}.timeline>div .timeline-icon{position:absolute;top:0;right:18px;width:30px;height:30px;font-size:16px;line-height:30px;text-align:center;background-color:var(--bs-secondary-bg);border-radius:50%}.timeline>.time-label>span{border-radius:4px;display:inline-block;padding:5px;font-weight:600;background-color:var(--bs-body-bg)}.timeline-inverse>div>.timeline-item{box-shadow:none;background-color:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color)}.timeline-inverse>div>.timeline-item>.timeline-header{border-bottom-color:var(--bs-border-color)}.direct-chat .card-body{position:relative;padding:0;overflow-x:hidden}.direct-chat.chat-pane-open .direct-chat-contacts{transform:translate(0,0)}.direct-chat.timestamp-light .direct-chat-timestamp{color:rgba(var(--bs-body-color-rgb),.65)}.direct-chat.timestamp-dark .direct-chat-timestamp{color:rgba(var(--bs-body-color-rgb),.9)}.direct-chat-messages{height:250px;padding:10px;overflow:auto;transform:translate(0,0)}.direct-chat-msg,.direct-chat-text{display:block}.direct-chat-msg::after{display:block;clear:both;content:""}.direct-chat-msg{margin-bottom:10px}.direct-chat-contacts,.direct-chat-messages{transition:transform .5s ease-in-out}@media (prefers-reduced-motion:reduce){.direct-chat-contacts,.direct-chat-messages{transition:none}}.direct-chat-text{border-radius:.5rem;position:relative;padding:5px 10px;margin:5px 50px 0 0;color:var(--bs-emphasis-color);background-color:var(--bs-secondary-bg);border:1px solid var(--bs-border-color)}.direct-chat-text::after,.direct-chat-text::before{position:absolute;top:15px;left:100%;width:0;height:0;pointer-events:none;content:" ";border:solid transparent;border-left-color:var(--bs-border-color)}.direct-chat-text::after{margin-top:-5px;border-width:5px}.direct-chat-text::before{margin-top:-6px;border-width:6px}.end .direct-chat-text{margin-left:50px;margin-right:0}.end .direct-chat-text::after,.end .direct-chat-text::before{left:auto;right:100%;border-left-color:transparent;border-right-color:var(--bs-border-color)}.direct-chat-img{border-radius:50%;float:right;width:40px;height:40px}.end .direct-chat-img{float:left}.direct-chat-infos{display:block;margin-bottom:2px;font-size:.875rem}.direct-chat-name{font-weight:600}.direct-chat-timestamp{color:rgba(var(--bs-body-color-rgb),.75)}.direct-chat-contacts-open .direct-chat-contacts{transform:translate(0,0)}.direct-chat-contacts{position:absolute;top:0;bottom:0;width:100%;height:250px;overflow:auto;color:var(--bs-body-bg);background-color:var(--bs-body-color);transform:translate(-101%,0)}.direct-chat-contacts-light{background-color:var(--bs-light-bg-subtle)}.direct-chat-contacts-light .contacts-list-name{color:var(--bs-body-color)}.direct-chat-contacts-light .contacts-list-date{color:var(--bs-secondary-color)}.direct-chat-contacts-light .contacts-list-msg{color:var(--bs-secondary-color)}.contacts-list{padding-right:0;list-style:none}.contacts-list>li::after{display:block;clear:both;content:""}.contacts-list>li{padding:10px;margin:0;text-decoration:none;border-bottom:1px solid rgba(0,0,0,.2)}.contacts-list>li:last-of-type{border-bottom:0}.contacts-list>li a{text-decoration:none}.contacts-list-img{border-radius:50%;float:right;width:40px}.contacts-list-info{margin-right:45px;color:var(--bs-body-bg)}.contacts-list-name,.contacts-list-status{display:block}.contacts-list-name{font-weight:600}.contacts-list-status{font-size:.875rem}.contacts-list-date{font-weight:400;color:var(--bs-secondary-bg)}.contacts-list-msg{color:var(--bs-secondary-bg)}.end>.direct-chat-text{color:var(--lte-direct-chat-color);background-color:var(--lte-direct-chat-bg);border-color:var(--lte-direct-chat-bg)}.end>.direct-chat-text::after,.end>.direct-chat-text::before{border-right-color:var(--lte-direct-chat-bg)}.direct-chat-primary{--lte-direct-chat-color:#fff;--lte-direct-chat-bg:#0d6efd}.direct-chat-secondary{--lte-direct-chat-color:#fff;--lte-direct-chat-bg:#6c757d}.direct-chat-success{--lte-direct-chat-color:#fff;--lte-direct-chat-bg:#198754}.direct-chat-info{--lte-direct-chat-color:#000;--lte-direct-chat-bg:#0dcaf0}.direct-chat-warning{--lte-direct-chat-color:#000;--lte-direct-chat-bg:#ffc107}.direct-chat-danger{--lte-direct-chat-color:#fff;--lte-direct-chat-bg:#dc3545}.direct-chat-light{--lte-direct-chat-color:#000;--lte-direct-chat-bg:#f8f9fa}.direct-chat-dark{--lte-direct-chat-color:#fff;--lte-direct-chat-bg:#212529}.toast-primary{--bs-toast-header-color:#fff;--bs-toast-header-bg:#0d6efd;--bs-toast-header-border-color:#0d6efd;--bs-toast-border-color:#0d6efd;--bs-toast-bg:var(--bs-primary-bg-subtle)}.toast-primary .btn-close{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}.toast-secondary{--bs-toast-header-color:#fff;--bs-toast-header-bg:#6c757d;--bs-toast-header-border-color:#6c757d;--bs-toast-border-color:#6c757d;--bs-toast-bg:var(--bs-secondary-bg-subtle)}.toast-secondary .btn-close{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}.toast-success{--bs-toast-header-color:#fff;--bs-toast-header-bg:#198754;--bs-toast-header-border-color:#198754;--bs-toast-border-color:#198754;--bs-toast-bg:var(--bs-success-bg-subtle)}.toast-success .btn-close{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}.toast-info{--bs-toast-header-color:#000;--bs-toast-header-bg:#0dcaf0;--bs-toast-header-border-color:#0dcaf0;--bs-toast-border-color:#0dcaf0;--bs-toast-bg:var(--bs-info-bg-subtle)}.toast-warning{--bs-toast-header-color:#000;--bs-toast-header-bg:#ffc107;--bs-toast-header-border-color:#ffc107;--bs-toast-border-color:#ffc107;--bs-toast-bg:var(--bs-warning-bg-subtle)}.toast-danger{--bs-toast-header-color:#fff;--bs-toast-header-bg:#dc3545;--bs-toast-header-border-color:#dc3545;--bs-toast-border-color:#dc3545;--bs-toast-bg:var(--bs-danger-bg-subtle)}.toast-danger .btn-close{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}.toast-light{--bs-toast-header-color:#000;--bs-toast-header-bg:#f8f9fa;--bs-toast-header-border-color:#f8f9fa;--bs-toast-border-color:#f8f9fa;--bs-toast-bg:var(--bs-light-bg-subtle)}.toast-dark{--bs-toast-header-color:#fff;--bs-toast-header-bg:#212529;--bs-toast-header-border-color:#212529;--bs-toast-border-color:#212529;--bs-toast-bg:var(--bs-dark-bg-subtle)}.toast-dark .btn-close{--bs-btn-close-filter:invert(1) grayscale(100%) brightness(200%)}[data-bs-theme=dark] .toast-info .btn-close{--bs-btn-close-white-filter:none}[data-bs-theme=dark] .toast-warning .btn-close{--bs-btn-close-white-filter:none}[data-bs-theme=dark] .toast-light .btn-close{--bs-btn-close-white-filter:none}.login-logo,.register-logo{margin-bottom:.9rem;font-size:2.1rem;font-weight:300;text-align:center}.login-logo a,.register-logo a{color:var(--bs-secondary-color);text-decoration:none}.login-page,.register-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh}.login-box,.register-box{width:360px}@media (max-width:576px){.login-box,.register-box{width:90%;margin-top:.5rem}}.login-box .card,.register-box .card{margin-bottom:0}.login-card-body,.register-card-body{padding:20px;color:var(--bs-secondary-color);background-color:var(--bs-body-bg);border-top:0}.login-card-body .input-group .form-control:focus,.register-card-body .input-group .form-control:focus{box-shadow:none}.login-card-body .input-group .form-control:focus~.input-group-append .input-group-text,.login-card-body .input-group .form-control:focus~.input-group-prepend .input-group-text,.register-card-body .input-group .form-control:focus~.input-group-append .input-group-text,.register-card-body .input-group .form-control:focus~.input-group-prepend .input-group-text{border-color:rgb(134,182.5,254)}.login-card-body .input-group .form-control.is-valid:focus,.register-card-body .input-group .form-control.is-valid:focus{box-shadow:none}.login-card-body .input-group .form-control.is-valid~.input-group-append .input-group-text,.login-card-body .input-group .form-control.is-valid~.input-group-prepend .input-group-text,.register-card-body .input-group .form-control.is-valid~.input-group-append .input-group-text,.register-card-body .input-group .form-control.is-valid~.input-group-prepend .input-group-text{border-color:#198754}.login-card-body .input-group .form-control.is-invalid:focus,.register-card-body .input-group .form-control.is-invalid:focus{box-shadow:none}.login-card-body .input-group .form-control.is-invalid~.input-group-append .input-group-text,.register-card-body .input-group .form-control.is-invalid~.input-group-append .input-group-text{border-color:#dc3545}.login-card-body .input-group .input-group-text,.register-card-body .input-group .input-group-text{color:var(--bs-secondary-color);background-color:transparent;border-top-left-radius:.375rem;border-bottom-left-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.login-card-body .input-group .input-group-text,.register-card-body .input-group .input-group-text{transition:none}}.login-box-msg,.register-box-msg{padding:0 20px 20px;margin:0;text-align:center}.social-auth-links{margin:10px 0}.lockscreen .lockscreen-name{font-weight:600;text-align:center}.lockscreen .lockscreen-logo{margin-bottom:25px;font-size:35px;font-weight:300;text-align:center}.lockscreen .lockscreen-logo a{color:var(--bs-emphasis-color);text-decoration:none}.lockscreen .lockscreen-wrapper{max-width:400px;margin:0 auto;margin-top:10%}.lockscreen .lockscreen-item{position:relative;width:290px;padding:0;margin:10px auto 30px;background-color:var(--bs-body-bg);border-radius:4px}.lockscreen .lockscreen-image{position:absolute;top:-25px;right:-10px;z-index:10;padding:5px;background-color:var(--bs-body-bg);border-radius:50%}.lockscreen .lockscreen-image>img{border-radius:50%;width:70px;height:70px}.lockscreen .lockscreen-credentials{margin-right:70px}.lockscreen .lockscreen-credentials .form-control{border:0}.lockscreen .lockscreen-credentials .btn{padding:0 10px;border:0}.lockscreen .lockscreen-footer{margin-top:10px}.img-size-32,.img-size-50,.img-size-64{height:auto}.img-size-64{width:64px}.img-size-50{width:50px}.img-size-32{width:32px}.skip-link{position:absolute;top:-40px;right:6px;z-index:999999;padding:8px 16px;font-weight:600;color:var(--bs-white);text-decoration:none;background:var(--bs-primary)}.skip-link:focus{top:0;outline:3px solid var(--bs-warning);outline-offset:2px}.skip-link:hover{color:var(--bs-white);text-decoration:none;background:var(--bs-primary-emphasis)}.focus-enhanced:focus{outline:3px solid var(--bs-focus-ring-color,#0d6efd);outline-offset:2px;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}@media (prefers-contrast:high){.card{border:2px solid}.btn{border-width:2px}.nav-link{border:1px solid transparent}.nav-link:focus,.nav-link:hover{border-color:currentcolor}}@media (prefers-reduced-motion:reduce){*,::after,::before{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.fade{opacity:1!important;transition:none!important}.collapse{transition:none!important}.modal.fade .modal-dialog{transform:none!important}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.sr-only-focusable:focus{position:static!important;width:auto!important;height:auto!important;padding:inherit!important;margin:inherit!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.focus-trap:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.text-accessible-primary{color:#003d82}.text-accessible-success{color:#0f5132}.text-accessible-danger{color:#842029}.text-accessible-warning{color:#664d03}.live-region{position:absolute;right:-10000px;width:1px;height:1px;overflow:hidden}.live-region.live-region-visible{position:static;right:auto;width:auto;height:auto;overflow:visible}.form-control.is-invalid{border-color:var(--bs-danger)}.form-control.is-invalid:focus{border-color:var(--bs-danger);box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.invalid-feedback{display:block;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-danger)}.invalid-feedback[role=alert]{font-weight:600}.touch-target{min-width:44px;min-height:44px}.touch-target.touch-target-small{min-width:24px;min-height:24px}.table-accessible th{font-weight:600;background-color:var(--bs-secondary-bg)}.table-accessible th[scope=col]{border-bottom:2px solid var(--bs-border-color)}.table-accessible th[scope=row]{border-left:2px solid var(--bs-border-color)}.table-accessible caption{padding:.75rem;font-weight:600;color:var(--bs-secondary);text-align:right;caption-side:top}nav[role=navigation]:not([aria-label]):not([aria-labelledby])::before{position:absolute;right:-10000px;content:"Navigation"}fieldset{padding:1rem;margin-bottom:1rem;border:1px solid var(--bs-border-color)}fieldset legend{padding:0 .5rem;margin-bottom:.5rem;font-size:1.1em;font-weight:600}.loading[aria-busy=true]{position:relative;pointer-events:none}.loading[aria-busy=true]::after{position:absolute;top:50%;right:50%;width:20px;height:20px;margin-top:-10px;margin-right:-10px;content:"";border:2px solid var(--bs-primary);border-top-color:transparent;animation:spin 1s linear infinite}@media (prefers-reduced-motion:reduce){.loading[aria-busy=true]::after{border-top-color:var(--bs-primary);animation:none}}@keyframes spin{to{transform:rotate(-360deg)}}[data-bs-theme=dark] .text-accessible-primary{color:#6ea8fe}[data-bs-theme=dark] .text-accessible-success{color:#75b798}[data-bs-theme=dark] .text-accessible-danger{color:#f1aeb5}[data-bs-theme=dark] .text-accessible-warning{color:#ffda6a}@media print{.btn,.nav-link,.skip-link{color:#000!important;background:0 0!important;border:1px solid #000!important}a[href^=http]::after{font-size:.8em;content:" (" attr(href) ")"}} +/*# sourceMappingURL=adminlte.rtl.min.css.map */ \ No newline at end of file diff --git a/css/apexcharts.css b/css/apexcharts.css new file mode 100644 index 0000000..e591d8a --- /dev/null +++ b/css/apexcharts.css @@ -0,0 +1,638 @@ +@keyframes opaque { + 0% { + opacity: 0 + } + + to { + opacity: 1 + } +} + +@keyframes resizeanim { + 0%,to { + opacity: 0 + } +} + +.apexcharts-canvas { + position: relative; + user-select: none +} + +.apexcharts-canvas ::-webkit-scrollbar { + -webkit-appearance: none; + width: 6px +} + +.apexcharts-canvas ::-webkit-scrollbar-thumb { + border-radius: 4px; + background-color: rgba(0,0,0,.5); + box-shadow: 0 0 1px rgba(255,255,255,.5); + -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5) +} + +.apexcharts-inner { + position: relative +} + +.apexcharts-text tspan { + font-family: inherit +} + +.legend-mouseover-inactive { + transition: .15s ease all; + opacity: .2 +} + +.apexcharts-legend-text { + padding-left: 15px; + margin-left: -15px; +} + +.apexcharts-series-collapsed { + opacity: 0 +} + +.apexcharts-tooltip { + border-radius: 5px; + box-shadow: 2px 2px 6px -4px #999; + cursor: default; + font-size: 14px; + left: 62px; + opacity: 0; + pointer-events: none; + position: absolute; + top: 20px; + display: flex; + flex-direction: column; + overflow: hidden; + white-space: nowrap; + z-index: 12; + transition: .15s ease all +} + +.apexcharts-tooltip.apexcharts-active { + opacity: 1; + transition: .15s ease all +} + +.apexcharts-tooltip.apexcharts-theme-light { + border: 1px solid #e3e3e3; + background: rgba(255,255,255,.96) +} + +.apexcharts-tooltip.apexcharts-theme-dark { + color: #fff; + background: rgba(30,30,30,.8) +} + +.apexcharts-tooltip * { + font-family: inherit +} + +.apexcharts-tooltip-title { + padding: 6px; + font-size: 15px; + margin-bottom: 4px +} + +.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title { + background: #eceff1; + border-bottom: 1px solid #ddd +} + +.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title { + background: rgba(0,0,0,.7); + border-bottom: 1px solid #333 +} + +.apexcharts-tooltip-text-goals-value,.apexcharts-tooltip-text-y-value,.apexcharts-tooltip-text-z-value { + display: inline-block; + margin-left: 5px; + font-weight: 600 +} + +.apexcharts-tooltip-text-goals-label:empty,.apexcharts-tooltip-text-goals-value:empty,.apexcharts-tooltip-text-y-label:empty,.apexcharts-tooltip-text-y-value:empty,.apexcharts-tooltip-text-z-value:empty,.apexcharts-tooltip-title:empty { + display: none +} + +.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value { + padding: 6px 0 5px +} + +.apexcharts-tooltip-goals-group,.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value { + display: flex +} + +.apexcharts-tooltip-text-goals-label:not(:empty),.apexcharts-tooltip-text-goals-value:not(:empty) { + margin-top: -6px +} + +.apexcharts-tooltip-marker { + width: 12px; + height: 12px; + position: relative; + top: 0; + margin-right: 10px; + border-radius: 50% +} + +.apexcharts-tooltip-series-group { + padding: 0 10px; + display: none; + text-align: left; + justify-content: left; + align-items: center +} + +.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker { + opacity: 1 +} + +.apexcharts-tooltip-series-group.apexcharts-active,.apexcharts-tooltip-series-group:last-child { + padding-bottom: 4px +} + +.apexcharts-tooltip-series-group-hidden { + opacity: 0; + height: 0; + line-height: 0; + padding: 0!important +} + +.apexcharts-tooltip-y-group { + padding: 6px 0 5px +} + +.apexcharts-custom-tooltip,.apexcharts-tooltip-box { + padding: 4px 8px +} + +.apexcharts-tooltip-boxPlot { + display: flex; + flex-direction: column-reverse +} + +.apexcharts-tooltip-box>div { + margin: 4px 0 +} + +.apexcharts-tooltip-box span.value { + font-weight: 700 +} + +.apexcharts-tooltip-rangebar { + padding: 5px 8px +} + +.apexcharts-tooltip-rangebar .category { + font-weight: 600; + color: #777 +} + +.apexcharts-tooltip-rangebar .series-name { + font-weight: 700; + display: block; + margin-bottom: 5px +} + +.apexcharts-xaxistooltip,.apexcharts-yaxistooltip { + opacity: 0; + pointer-events: none; + color: #373d3f; + font-size: 13px; + text-align: center; + border-radius: 2px; + position: absolute; + z-index: 10; + background: #eceff1; + border: 1px solid #90a4ae +} + +.apexcharts-xaxistooltip { + padding: 9px 10px; + transition: .15s ease all +} + +.apexcharts-xaxistooltip.apexcharts-theme-dark { + background: rgba(0,0,0,.7); + border: 1px solid rgba(0,0,0,.5); + color: #fff +} + +.apexcharts-xaxistooltip:after,.apexcharts-xaxistooltip:before { + left: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none +} + +.apexcharts-xaxistooltip:after { + border-color: transparent; + border-width: 6px; + margin-left: -6px +} + +.apexcharts-xaxistooltip:before { + border-color: transparent; + border-width: 7px; + margin-left: -7px +} + +.apexcharts-xaxistooltip-bottom:after,.apexcharts-xaxistooltip-bottom:before { + bottom: 100% +} + +.apexcharts-xaxistooltip-top:after,.apexcharts-xaxistooltip-top:before { + top: 100% +} + +.apexcharts-xaxistooltip-bottom:after { + border-bottom-color: #eceff1 +} + +.apexcharts-xaxistooltip-bottom:before { + border-bottom-color: #90a4ae +} + +.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before { + border-bottom-color: rgba(0,0,0,.5) +} + +.apexcharts-xaxistooltip-top:after { + border-top-color: #eceff1 +} + +.apexcharts-xaxistooltip-top:before { + border-top-color: #90a4ae +} + +.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before { + border-top-color: rgba(0,0,0,.5) +} + +.apexcharts-xaxistooltip.apexcharts-active { + opacity: 1; + transition: .15s ease all +} + +.apexcharts-yaxistooltip { + padding: 4px 10px +} + +.apexcharts-yaxistooltip.apexcharts-theme-dark { + background: rgba(0,0,0,.7); + border: 1px solid rgba(0,0,0,.5); + color: #fff +} + +.apexcharts-yaxistooltip:after,.apexcharts-yaxistooltip:before { + top: 50%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none +} + +.apexcharts-yaxistooltip:after { + border-color: transparent; + border-width: 6px; + margin-top: -6px +} + +.apexcharts-yaxistooltip:before { + border-color: transparent; + border-width: 7px; + margin-top: -7px +} + +.apexcharts-yaxistooltip-left:after,.apexcharts-yaxistooltip-left:before { + left: 100% +} + +.apexcharts-yaxistooltip-right:after,.apexcharts-yaxistooltip-right:before { + right: 100% +} + +.apexcharts-yaxistooltip-left:after { + border-left-color: #eceff1 +} + +.apexcharts-yaxistooltip-left:before { + border-left-color: #90a4ae +} + +.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before { + border-left-color: rgba(0,0,0,.5) +} + +.apexcharts-yaxistooltip-right:after { + border-right-color: #eceff1 +} + +.apexcharts-yaxistooltip-right:before { + border-right-color: #90a4ae +} + +.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before { + border-right-color: rgba(0,0,0,.5) +} + +.apexcharts-yaxistooltip.apexcharts-active { + opacity: 1 +} + +.apexcharts-yaxistooltip-hidden { + display: none +} + +.apexcharts-xcrosshairs,.apexcharts-ycrosshairs { + pointer-events: none; + opacity: 0; + transition: .15s ease all +} + +.apexcharts-xcrosshairs.apexcharts-active,.apexcharts-ycrosshairs.apexcharts-active { + opacity: 1; + transition: .15s ease all +} + +.apexcharts-ycrosshairs-hidden { + opacity: 0 +} + +.apexcharts-selection-rect { + cursor: move +} + +.svg_select_boundingRect,.svg_select_points_rot { + pointer-events: none; + opacity: 0; + visibility: hidden +} + +.apexcharts-selection-rect+g .svg_select_boundingRect,.apexcharts-selection-rect+g .svg_select_points_rot { + opacity: 0; + visibility: hidden +} + +.apexcharts-selection-rect+g .svg_select_points_l,.apexcharts-selection-rect+g .svg_select_points_r { + cursor: ew-resize; + opacity: 1; + visibility: visible +} + +.svg_select_points { + fill: #efefef; + stroke: #333; + rx: 2 +} + +.apexcharts-svg.apexcharts-zoomable.hovering-zoom { + cursor: crosshair +} + +.apexcharts-svg.apexcharts-zoomable.hovering-pan { + cursor: move +} + +.apexcharts-menu-icon,.apexcharts-pan-icon,.apexcharts-reset-icon,.apexcharts-selection-icon,.apexcharts-toolbar-custom-icon,.apexcharts-zoom-icon,.apexcharts-zoomin-icon,.apexcharts-zoomout-icon { + cursor: pointer; + width: 20px; + height: 20px; + line-height: 24px; + color: #6e8192; + text-align: center +} + +.apexcharts-menu-icon svg,.apexcharts-reset-icon svg,.apexcharts-zoom-icon svg,.apexcharts-zoomin-icon svg,.apexcharts-zoomout-icon svg { + fill: #6e8192 +} + +.apexcharts-selection-icon svg { + fill: #444; + transform: scale(.76) +} + +.apexcharts-theme-dark .apexcharts-menu-icon svg,.apexcharts-theme-dark .apexcharts-pan-icon svg,.apexcharts-theme-dark .apexcharts-reset-icon svg,.apexcharts-theme-dark .apexcharts-selection-icon svg,.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,.apexcharts-theme-dark .apexcharts-zoom-icon svg,.apexcharts-theme-dark .apexcharts-zoomin-icon svg,.apexcharts-theme-dark .apexcharts-zoomout-icon svg { + fill: #f3f4f5 +} + +.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg { + fill: #008ffb +} + +.apexcharts-theme-light .apexcharts-menu-icon:hover svg,.apexcharts-theme-light .apexcharts-reset-icon:hover svg,.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg { + fill: #333 +} + +.apexcharts-menu-icon,.apexcharts-selection-icon { + position: relative +} + +.apexcharts-reset-icon { + margin-left: 5px +} + +.apexcharts-menu-icon,.apexcharts-reset-icon,.apexcharts-zoom-icon { + transform: scale(.85) +} + +.apexcharts-zoomin-icon,.apexcharts-zoomout-icon { + transform: scale(.7) +} + +.apexcharts-zoomout-icon { + margin-right: 3px +} + +.apexcharts-pan-icon { + transform: scale(.62); + position: relative; + left: 1px; + top: 0 +} + +.apexcharts-pan-icon svg { + fill: #fff; + stroke: #6e8192; + stroke-width: 2 +} + +.apexcharts-pan-icon.apexcharts-selected svg { + stroke: #008ffb +} + +.apexcharts-pan-icon:not(.apexcharts-selected):hover svg { + stroke: #333 +} + +.apexcharts-toolbar { + position: absolute; + z-index: 11; + max-width: 176px; + text-align: right; + border-radius: 3px; + padding: 0 6px 2px; + display: flex; + justify-content: space-between; + align-items: center +} + +.apexcharts-menu { + background: #fff; + position: absolute; + top: 100%; + border: 1px solid #ddd; + border-radius: 3px; + padding: 3px; + right: 10px; + opacity: 0; + min-width: 110px; + transition: .15s ease all; + pointer-events: none +} + +.apexcharts-menu.apexcharts-menu-open { + opacity: 1; + pointer-events: all; + transition: .15s ease all +} + +.apexcharts-menu-item { + padding: 6px 7px; + font-size: 12px; + cursor: pointer +} + +.apexcharts-theme-light .apexcharts-menu-item:hover { + background: #eee +} + +.apexcharts-theme-dark .apexcharts-menu { + background: rgba(0,0,0,.7); + color: #fff +} + +@media screen and (min-width:768px) { + .apexcharts-canvas:hover .apexcharts-toolbar { + opacity: 1 + } +} + +.apexcharts-canvas .apexcharts-element-hidden,.apexcharts-datalabel.apexcharts-element-hidden,.apexcharts-hide .apexcharts-series-points { + opacity: 0 +} + +.apexcharts-datalabel,.apexcharts-datalabel-label,.apexcharts-datalabel-value,.apexcharts-datalabels,.apexcharts-pie-label { + cursor: default; + pointer-events: none +} + +.apexcharts-pie-label-delay { + opacity: 0; + animation-name: opaque; + animation-duration: .3s; + animation-fill-mode: forwards; + animation-timing-function: ease +} + +.apexcharts-legend { + display: flex; + overflow: auto; + padding: 0 10px; +} +.apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top { + flex-wrap: wrap +} +.apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left { + flex-direction: column; + bottom: 0; +} +.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left { + justify-content: flex-start; +} +.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center { + justify-content: center; +} +.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right { + justify-content: flex-end; +} +.apexcharts-legend-series { + cursor: pointer; + line-height: normal; +} +.apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{ + display: flex; + align-items: center; +} +.apexcharts-legend-text { + position: relative; + font-size: 14px; +} +.apexcharts-legend-text *, .apexcharts-legend-marker * { + pointer-events: none; +} +.apexcharts-legend-marker { + position: relative; + display: inline-block; + cursor: pointer; + margin-right: 3px; + border-style: solid; +} + +.apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{ + display: inline-block; +} +.apexcharts-legend-series.apexcharts-no-click { + cursor: auto; +} +.apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series { + display: none !important; +} +.apexcharts-inactive-legend { + opacity: 0.45; +} + +.apexcharts-annotation-rect,.apexcharts-area-series .apexcharts-area,.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-gridline,.apexcharts-line,.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-point-annotation-label,.apexcharts-radar-series path,.apexcharts-radar-series polygon,.apexcharts-toolbar svg,.apexcharts-tooltip .apexcharts-marker,.apexcharts-xaxis-annotation-label,.apexcharts-yaxis-annotation-label,.apexcharts-zoom-rect { + pointer-events: none +} + +.apexcharts-marker { + transition: .15s ease all +} + +.resize-triggers { + animation: 1ms resizeanim; + visibility: hidden; + opacity: 0; + height: 100%; + width: 100%; + overflow: hidden +} + +.contract-trigger:before,.resize-triggers,.resize-triggers>div { + content: " "; + display: block; + position: absolute; + top: 0; + left: 0 +} + +.resize-triggers>div { + height: 100%; + width: 100%; + background: #eee; + overflow: auto +} + +.contract-trigger:before { + overflow: hidden; + width: 200%; + height: 200% +} diff --git a/css/bootstrap-icons.min.css b/css/bootstrap-icons.min.css new file mode 100644 index 0000000..4cf5f17 --- /dev/null +++ b/css/bootstrap-icons.min.css @@ -0,0 +1,5 @@ +/*! + * Bootstrap Icons v1.13.1 (https://icons.getbootstrap.com/) + * Copyright 2019-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE) + */@font-face{font-display:block;font-family:bootstrap-icons;src:url("bootstrap-icons.woff2") format("woff2"),url("bootstrap-icons.woff") format("woff")}.bi::before,[class*=" bi-"]::before,[class^=bi-]::before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-123::before{content:"\f67f"}.bi-alarm-fill::before{content:"\f101"}.bi-alarm::before{content:"\f102"}.bi-align-bottom::before{content:"\f103"}.bi-align-center::before{content:"\f104"}.bi-align-end::before{content:"\f105"}.bi-align-middle::before{content:"\f106"}.bi-align-start::before{content:"\f107"}.bi-align-top::before{content:"\f108"}.bi-alt::before{content:"\f109"}.bi-app-indicator::before{content:"\f10a"}.bi-app::before{content:"\f10b"}.bi-archive-fill::before{content:"\f10c"}.bi-archive::before{content:"\f10d"}.bi-arrow-90deg-down::before{content:"\f10e"}.bi-arrow-90deg-left::before{content:"\f10f"}.bi-arrow-90deg-right::before{content:"\f110"}.bi-arrow-90deg-up::before{content:"\f111"}.bi-arrow-bar-down::before{content:"\f112"}.bi-arrow-bar-left::before{content:"\f113"}.bi-arrow-bar-right::before{content:"\f114"}.bi-arrow-bar-up::before{content:"\f115"}.bi-arrow-clockwise::before{content:"\f116"}.bi-arrow-counterclockwise::before{content:"\f117"}.bi-arrow-down-circle-fill::before{content:"\f118"}.bi-arrow-down-circle::before{content:"\f119"}.bi-arrow-down-left-circle-fill::before{content:"\f11a"}.bi-arrow-down-left-circle::before{content:"\f11b"}.bi-arrow-down-left-square-fill::before{content:"\f11c"}.bi-arrow-down-left-square::before{content:"\f11d"}.bi-arrow-down-left::before{content:"\f11e"}.bi-arrow-down-right-circle-fill::before{content:"\f11f"}.bi-arrow-down-right-circle::before{content:"\f120"}.bi-arrow-down-right-square-fill::before{content:"\f121"}.bi-arrow-down-right-square::before{content:"\f122"}.bi-arrow-down-right::before{content:"\f123"}.bi-arrow-down-short::before{content:"\f124"}.bi-arrow-down-square-fill::before{content:"\f125"}.bi-arrow-down-square::before{content:"\f126"}.bi-arrow-down-up::before{content:"\f127"}.bi-arrow-down::before{content:"\f128"}.bi-arrow-left-circle-fill::before{content:"\f129"}.bi-arrow-left-circle::before{content:"\f12a"}.bi-arrow-left-right::before{content:"\f12b"}.bi-arrow-left-short::before{content:"\f12c"}.bi-arrow-left-square-fill::before{content:"\f12d"}.bi-arrow-left-square::before{content:"\f12e"}.bi-arrow-left::before{content:"\f12f"}.bi-arrow-repeat::before{content:"\f130"}.bi-arrow-return-left::before{content:"\f131"}.bi-arrow-return-right::before{content:"\f132"}.bi-arrow-right-circle-fill::before{content:"\f133"}.bi-arrow-right-circle::before{content:"\f134"}.bi-arrow-right-short::before{content:"\f135"}.bi-arrow-right-square-fill::before{content:"\f136"}.bi-arrow-right-square::before{content:"\f137"}.bi-arrow-right::before{content:"\f138"}.bi-arrow-up-circle-fill::before{content:"\f139"}.bi-arrow-up-circle::before{content:"\f13a"}.bi-arrow-up-left-circle-fill::before{content:"\f13b"}.bi-arrow-up-left-circle::before{content:"\f13c"}.bi-arrow-up-left-square-fill::before{content:"\f13d"}.bi-arrow-up-left-square::before{content:"\f13e"}.bi-arrow-up-left::before{content:"\f13f"}.bi-arrow-up-right-circle-fill::before{content:"\f140"}.bi-arrow-up-right-circle::before{content:"\f141"}.bi-arrow-up-right-square-fill::before{content:"\f142"}.bi-arrow-up-right-square::before{content:"\f143"}.bi-arrow-up-right::before{content:"\f144"}.bi-arrow-up-short::before{content:"\f145"}.bi-arrow-up-square-fill::before{content:"\f146"}.bi-arrow-up-square::before{content:"\f147"}.bi-arrow-up::before{content:"\f148"}.bi-arrows-angle-contract::before{content:"\f149"}.bi-arrows-angle-expand::before{content:"\f14a"}.bi-arrows-collapse::before{content:"\f14b"}.bi-arrows-expand::before{content:"\f14c"}.bi-arrows-fullscreen::before{content:"\f14d"}.bi-arrows-move::before{content:"\f14e"}.bi-aspect-ratio-fill::before{content:"\f14f"}.bi-aspect-ratio::before{content:"\f150"}.bi-asterisk::before{content:"\f151"}.bi-at::before{content:"\f152"}.bi-award-fill::before{content:"\f153"}.bi-award::before{content:"\f154"}.bi-back::before{content:"\f155"}.bi-backspace-fill::before{content:"\f156"}.bi-backspace-reverse-fill::before{content:"\f157"}.bi-backspace-reverse::before{content:"\f158"}.bi-backspace::before{content:"\f159"}.bi-badge-3d-fill::before{content:"\f15a"}.bi-badge-3d::before{content:"\f15b"}.bi-badge-4k-fill::before{content:"\f15c"}.bi-badge-4k::before{content:"\f15d"}.bi-badge-8k-fill::before{content:"\f15e"}.bi-badge-8k::before{content:"\f15f"}.bi-badge-ad-fill::before{content:"\f160"}.bi-badge-ad::before{content:"\f161"}.bi-badge-ar-fill::before{content:"\f162"}.bi-badge-ar::before{content:"\f163"}.bi-badge-cc-fill::before{content:"\f164"}.bi-badge-cc::before{content:"\f165"}.bi-badge-hd-fill::before{content:"\f166"}.bi-badge-hd::before{content:"\f167"}.bi-badge-tm-fill::before{content:"\f168"}.bi-badge-tm::before{content:"\f169"}.bi-badge-vo-fill::before{content:"\f16a"}.bi-badge-vo::before{content:"\f16b"}.bi-badge-vr-fill::before{content:"\f16c"}.bi-badge-vr::before{content:"\f16d"}.bi-badge-wc-fill::before{content:"\f16e"}.bi-badge-wc::before{content:"\f16f"}.bi-bag-check-fill::before{content:"\f170"}.bi-bag-check::before{content:"\f171"}.bi-bag-dash-fill::before{content:"\f172"}.bi-bag-dash::before{content:"\f173"}.bi-bag-fill::before{content:"\f174"}.bi-bag-plus-fill::before{content:"\f175"}.bi-bag-plus::before{content:"\f176"}.bi-bag-x-fill::before{content:"\f177"}.bi-bag-x::before{content:"\f178"}.bi-bag::before{content:"\f179"}.bi-bar-chart-fill::before{content:"\f17a"}.bi-bar-chart-line-fill::before{content:"\f17b"}.bi-bar-chart-line::before{content:"\f17c"}.bi-bar-chart-steps::before{content:"\f17d"}.bi-bar-chart::before{content:"\f17e"}.bi-basket-fill::before{content:"\f17f"}.bi-basket::before{content:"\f180"}.bi-basket2-fill::before{content:"\f181"}.bi-basket2::before{content:"\f182"}.bi-basket3-fill::before{content:"\f183"}.bi-basket3::before{content:"\f184"}.bi-battery-charging::before{content:"\f185"}.bi-battery-full::before{content:"\f186"}.bi-battery-half::before{content:"\f187"}.bi-battery::before{content:"\f188"}.bi-bell-fill::before{content:"\f189"}.bi-bell::before{content:"\f18a"}.bi-bezier::before{content:"\f18b"}.bi-bezier2::before{content:"\f18c"}.bi-bicycle::before{content:"\f18d"}.bi-binoculars-fill::before{content:"\f18e"}.bi-binoculars::before{content:"\f18f"}.bi-blockquote-left::before{content:"\f190"}.bi-blockquote-right::before{content:"\f191"}.bi-book-fill::before{content:"\f192"}.bi-book-half::before{content:"\f193"}.bi-book::before{content:"\f194"}.bi-bookmark-check-fill::before{content:"\f195"}.bi-bookmark-check::before{content:"\f196"}.bi-bookmark-dash-fill::before{content:"\f197"}.bi-bookmark-dash::before{content:"\f198"}.bi-bookmark-fill::before{content:"\f199"}.bi-bookmark-heart-fill::before{content:"\f19a"}.bi-bookmark-heart::before{content:"\f19b"}.bi-bookmark-plus-fill::before{content:"\f19c"}.bi-bookmark-plus::before{content:"\f19d"}.bi-bookmark-star-fill::before{content:"\f19e"}.bi-bookmark-star::before{content:"\f19f"}.bi-bookmark-x-fill::before{content:"\f1a0"}.bi-bookmark-x::before{content:"\f1a1"}.bi-bookmark::before{content:"\f1a2"}.bi-bookmarks-fill::before{content:"\f1a3"}.bi-bookmarks::before{content:"\f1a4"}.bi-bookshelf::before{content:"\f1a5"}.bi-bootstrap-fill::before{content:"\f1a6"}.bi-bootstrap-reboot::before{content:"\f1a7"}.bi-bootstrap::before{content:"\f1a8"}.bi-border-all::before{content:"\f1a9"}.bi-border-bottom::before{content:"\f1aa"}.bi-border-center::before{content:"\f1ab"}.bi-border-inner::before{content:"\f1ac"}.bi-border-left::before{content:"\f1ad"}.bi-border-middle::before{content:"\f1ae"}.bi-border-outer::before{content:"\f1af"}.bi-border-right::before{content:"\f1b0"}.bi-border-style::before{content:"\f1b1"}.bi-border-top::before{content:"\f1b2"}.bi-border-width::before{content:"\f1b3"}.bi-border::before{content:"\f1b4"}.bi-bounding-box-circles::before{content:"\f1b5"}.bi-bounding-box::before{content:"\f1b6"}.bi-box-arrow-down-left::before{content:"\f1b7"}.bi-box-arrow-down-right::before{content:"\f1b8"}.bi-box-arrow-down::before{content:"\f1b9"}.bi-box-arrow-in-down-left::before{content:"\f1ba"}.bi-box-arrow-in-down-right::before{content:"\f1bb"}.bi-box-arrow-in-down::before{content:"\f1bc"}.bi-box-arrow-in-left::before{content:"\f1bd"}.bi-box-arrow-in-right::before{content:"\f1be"}.bi-box-arrow-in-up-left::before{content:"\f1bf"}.bi-box-arrow-in-up-right::before{content:"\f1c0"}.bi-box-arrow-in-up::before{content:"\f1c1"}.bi-box-arrow-left::before{content:"\f1c2"}.bi-box-arrow-right::before{content:"\f1c3"}.bi-box-arrow-up-left::before{content:"\f1c4"}.bi-box-arrow-up-right::before{content:"\f1c5"}.bi-box-arrow-up::before{content:"\f1c6"}.bi-box-seam::before{content:"\f1c7"}.bi-box::before{content:"\f1c8"}.bi-braces::before{content:"\f1c9"}.bi-bricks::before{content:"\f1ca"}.bi-briefcase-fill::before{content:"\f1cb"}.bi-briefcase::before{content:"\f1cc"}.bi-brightness-alt-high-fill::before{content:"\f1cd"}.bi-brightness-alt-high::before{content:"\f1ce"}.bi-brightness-alt-low-fill::before{content:"\f1cf"}.bi-brightness-alt-low::before{content:"\f1d0"}.bi-brightness-high-fill::before{content:"\f1d1"}.bi-brightness-high::before{content:"\f1d2"}.bi-brightness-low-fill::before{content:"\f1d3"}.bi-brightness-low::before{content:"\f1d4"}.bi-broadcast-pin::before{content:"\f1d5"}.bi-broadcast::before{content:"\f1d6"}.bi-brush-fill::before{content:"\f1d7"}.bi-brush::before{content:"\f1d8"}.bi-bucket-fill::before{content:"\f1d9"}.bi-bucket::before{content:"\f1da"}.bi-bug-fill::before{content:"\f1db"}.bi-bug::before{content:"\f1dc"}.bi-building::before{content:"\f1dd"}.bi-bullseye::before{content:"\f1de"}.bi-calculator-fill::before{content:"\f1df"}.bi-calculator::before{content:"\f1e0"}.bi-calendar-check-fill::before{content:"\f1e1"}.bi-calendar-check::before{content:"\f1e2"}.bi-calendar-date-fill::before{content:"\f1e3"}.bi-calendar-date::before{content:"\f1e4"}.bi-calendar-day-fill::before{content:"\f1e5"}.bi-calendar-day::before{content:"\f1e6"}.bi-calendar-event-fill::before{content:"\f1e7"}.bi-calendar-event::before{content:"\f1e8"}.bi-calendar-fill::before{content:"\f1e9"}.bi-calendar-minus-fill::before{content:"\f1ea"}.bi-calendar-minus::before{content:"\f1eb"}.bi-calendar-month-fill::before{content:"\f1ec"}.bi-calendar-month::before{content:"\f1ed"}.bi-calendar-plus-fill::before{content:"\f1ee"}.bi-calendar-plus::before{content:"\f1ef"}.bi-calendar-range-fill::before{content:"\f1f0"}.bi-calendar-range::before{content:"\f1f1"}.bi-calendar-week-fill::before{content:"\f1f2"}.bi-calendar-week::before{content:"\f1f3"}.bi-calendar-x-fill::before{content:"\f1f4"}.bi-calendar-x::before{content:"\f1f5"}.bi-calendar::before{content:"\f1f6"}.bi-calendar2-check-fill::before{content:"\f1f7"}.bi-calendar2-check::before{content:"\f1f8"}.bi-calendar2-date-fill::before{content:"\f1f9"}.bi-calendar2-date::before{content:"\f1fa"}.bi-calendar2-day-fill::before{content:"\f1fb"}.bi-calendar2-day::before{content:"\f1fc"}.bi-calendar2-event-fill::before{content:"\f1fd"}.bi-calendar2-event::before{content:"\f1fe"}.bi-calendar2-fill::before{content:"\f1ff"}.bi-calendar2-minus-fill::before{content:"\f200"}.bi-calendar2-minus::before{content:"\f201"}.bi-calendar2-month-fill::before{content:"\f202"}.bi-calendar2-month::before{content:"\f203"}.bi-calendar2-plus-fill::before{content:"\f204"}.bi-calendar2-plus::before{content:"\f205"}.bi-calendar2-range-fill::before{content:"\f206"}.bi-calendar2-range::before{content:"\f207"}.bi-calendar2-week-fill::before{content:"\f208"}.bi-calendar2-week::before{content:"\f209"}.bi-calendar2-x-fill::before{content:"\f20a"}.bi-calendar2-x::before{content:"\f20b"}.bi-calendar2::before{content:"\f20c"}.bi-calendar3-event-fill::before{content:"\f20d"}.bi-calendar3-event::before{content:"\f20e"}.bi-calendar3-fill::before{content:"\f20f"}.bi-calendar3-range-fill::before{content:"\f210"}.bi-calendar3-range::before{content:"\f211"}.bi-calendar3-week-fill::before{content:"\f212"}.bi-calendar3-week::before{content:"\f213"}.bi-calendar3::before{content:"\f214"}.bi-calendar4-event::before{content:"\f215"}.bi-calendar4-range::before{content:"\f216"}.bi-calendar4-week::before{content:"\f217"}.bi-calendar4::before{content:"\f218"}.bi-camera-fill::before{content:"\f219"}.bi-camera-reels-fill::before{content:"\f21a"}.bi-camera-reels::before{content:"\f21b"}.bi-camera-video-fill::before{content:"\f21c"}.bi-camera-video-off-fill::before{content:"\f21d"}.bi-camera-video-off::before{content:"\f21e"}.bi-camera-video::before{content:"\f21f"}.bi-camera::before{content:"\f220"}.bi-camera2::before{content:"\f221"}.bi-capslock-fill::before{content:"\f222"}.bi-capslock::before{content:"\f223"}.bi-card-checklist::before{content:"\f224"}.bi-card-heading::before{content:"\f225"}.bi-card-image::before{content:"\f226"}.bi-card-list::before{content:"\f227"}.bi-card-text::before{content:"\f228"}.bi-caret-down-fill::before{content:"\f229"}.bi-caret-down-square-fill::before{content:"\f22a"}.bi-caret-down-square::before{content:"\f22b"}.bi-caret-down::before{content:"\f22c"}.bi-caret-left-fill::before{content:"\f22d"}.bi-caret-left-square-fill::before{content:"\f22e"}.bi-caret-left-square::before{content:"\f22f"}.bi-caret-left::before{content:"\f230"}.bi-caret-right-fill::before{content:"\f231"}.bi-caret-right-square-fill::before{content:"\f232"}.bi-caret-right-square::before{content:"\f233"}.bi-caret-right::before{content:"\f234"}.bi-caret-up-fill::before{content:"\f235"}.bi-caret-up-square-fill::before{content:"\f236"}.bi-caret-up-square::before{content:"\f237"}.bi-caret-up::before{content:"\f238"}.bi-cart-check-fill::before{content:"\f239"}.bi-cart-check::before{content:"\f23a"}.bi-cart-dash-fill::before{content:"\f23b"}.bi-cart-dash::before{content:"\f23c"}.bi-cart-fill::before{content:"\f23d"}.bi-cart-plus-fill::before{content:"\f23e"}.bi-cart-plus::before{content:"\f23f"}.bi-cart-x-fill::before{content:"\f240"}.bi-cart-x::before{content:"\f241"}.bi-cart::before{content:"\f242"}.bi-cart2::before{content:"\f243"}.bi-cart3::before{content:"\f244"}.bi-cart4::before{content:"\f245"}.bi-cash-stack::before{content:"\f246"}.bi-cash::before{content:"\f247"}.bi-cast::before{content:"\f248"}.bi-chat-dots-fill::before{content:"\f249"}.bi-chat-dots::before{content:"\f24a"}.bi-chat-fill::before{content:"\f24b"}.bi-chat-left-dots-fill::before{content:"\f24c"}.bi-chat-left-dots::before{content:"\f24d"}.bi-chat-left-fill::before{content:"\f24e"}.bi-chat-left-quote-fill::before{content:"\f24f"}.bi-chat-left-quote::before{content:"\f250"}.bi-chat-left-text-fill::before{content:"\f251"}.bi-chat-left-text::before{content:"\f252"}.bi-chat-left::before{content:"\f253"}.bi-chat-quote-fill::before{content:"\f254"}.bi-chat-quote::before{content:"\f255"}.bi-chat-right-dots-fill::before{content:"\f256"}.bi-chat-right-dots::before{content:"\f257"}.bi-chat-right-fill::before{content:"\f258"}.bi-chat-right-quote-fill::before{content:"\f259"}.bi-chat-right-quote::before{content:"\f25a"}.bi-chat-right-text-fill::before{content:"\f25b"}.bi-chat-right-text::before{content:"\f25c"}.bi-chat-right::before{content:"\f25d"}.bi-chat-square-dots-fill::before{content:"\f25e"}.bi-chat-square-dots::before{content:"\f25f"}.bi-chat-square-fill::before{content:"\f260"}.bi-chat-square-quote-fill::before{content:"\f261"}.bi-chat-square-quote::before{content:"\f262"}.bi-chat-square-text-fill::before{content:"\f263"}.bi-chat-square-text::before{content:"\f264"}.bi-chat-square::before{content:"\f265"}.bi-chat-text-fill::before{content:"\f266"}.bi-chat-text::before{content:"\f267"}.bi-chat::before{content:"\f268"}.bi-check-all::before{content:"\f269"}.bi-check-circle-fill::before{content:"\f26a"}.bi-check-circle::before{content:"\f26b"}.bi-check-square-fill::before{content:"\f26c"}.bi-check-square::before{content:"\f26d"}.bi-check::before{content:"\f26e"}.bi-check2-all::before{content:"\f26f"}.bi-check2-circle::before{content:"\f270"}.bi-check2-square::before{content:"\f271"}.bi-check2::before{content:"\f272"}.bi-chevron-bar-contract::before{content:"\f273"}.bi-chevron-bar-down::before{content:"\f274"}.bi-chevron-bar-expand::before{content:"\f275"}.bi-chevron-bar-left::before{content:"\f276"}.bi-chevron-bar-right::before{content:"\f277"}.bi-chevron-bar-up::before{content:"\f278"}.bi-chevron-compact-down::before{content:"\f279"}.bi-chevron-compact-left::before{content:"\f27a"}.bi-chevron-compact-right::before{content:"\f27b"}.bi-chevron-compact-up::before{content:"\f27c"}.bi-chevron-contract::before{content:"\f27d"}.bi-chevron-double-down::before{content:"\f27e"}.bi-chevron-double-left::before{content:"\f27f"}.bi-chevron-double-right::before{content:"\f280"}.bi-chevron-double-up::before{content:"\f281"}.bi-chevron-down::before{content:"\f282"}.bi-chevron-expand::before{content:"\f283"}.bi-chevron-left::before{content:"\f284"}.bi-chevron-right::before{content:"\f285"}.bi-chevron-up::before{content:"\f286"}.bi-circle-fill::before{content:"\f287"}.bi-circle-half::before{content:"\f288"}.bi-circle-square::before{content:"\f289"}.bi-circle::before{content:"\f28a"}.bi-clipboard-check::before{content:"\f28b"}.bi-clipboard-data::before{content:"\f28c"}.bi-clipboard-minus::before{content:"\f28d"}.bi-clipboard-plus::before{content:"\f28e"}.bi-clipboard-x::before{content:"\f28f"}.bi-clipboard::before{content:"\f290"}.bi-clock-fill::before{content:"\f291"}.bi-clock-history::before{content:"\f292"}.bi-clock::before{content:"\f293"}.bi-cloud-arrow-down-fill::before{content:"\f294"}.bi-cloud-arrow-down::before{content:"\f295"}.bi-cloud-arrow-up-fill::before{content:"\f296"}.bi-cloud-arrow-up::before{content:"\f297"}.bi-cloud-check-fill::before{content:"\f298"}.bi-cloud-check::before{content:"\f299"}.bi-cloud-download-fill::before{content:"\f29a"}.bi-cloud-download::before{content:"\f29b"}.bi-cloud-drizzle-fill::before{content:"\f29c"}.bi-cloud-drizzle::before{content:"\f29d"}.bi-cloud-fill::before{content:"\f29e"}.bi-cloud-fog-fill::before{content:"\f29f"}.bi-cloud-fog::before{content:"\f2a0"}.bi-cloud-fog2-fill::before{content:"\f2a1"}.bi-cloud-fog2::before{content:"\f2a2"}.bi-cloud-hail-fill::before{content:"\f2a3"}.bi-cloud-hail::before{content:"\f2a4"}.bi-cloud-haze-fill::before{content:"\f2a6"}.bi-cloud-haze::before{content:"\f2a7"}.bi-cloud-haze2-fill::before{content:"\f2a8"}.bi-cloud-lightning-fill::before{content:"\f2a9"}.bi-cloud-lightning-rain-fill::before{content:"\f2aa"}.bi-cloud-lightning-rain::before{content:"\f2ab"}.bi-cloud-lightning::before{content:"\f2ac"}.bi-cloud-minus-fill::before{content:"\f2ad"}.bi-cloud-minus::before{content:"\f2ae"}.bi-cloud-moon-fill::before{content:"\f2af"}.bi-cloud-moon::before{content:"\f2b0"}.bi-cloud-plus-fill::before{content:"\f2b1"}.bi-cloud-plus::before{content:"\f2b2"}.bi-cloud-rain-fill::before{content:"\f2b3"}.bi-cloud-rain-heavy-fill::before{content:"\f2b4"}.bi-cloud-rain-heavy::before{content:"\f2b5"}.bi-cloud-rain::before{content:"\f2b6"}.bi-cloud-slash-fill::before{content:"\f2b7"}.bi-cloud-slash::before{content:"\f2b8"}.bi-cloud-sleet-fill::before{content:"\f2b9"}.bi-cloud-sleet::before{content:"\f2ba"}.bi-cloud-snow-fill::before{content:"\f2bb"}.bi-cloud-snow::before{content:"\f2bc"}.bi-cloud-sun-fill::before{content:"\f2bd"}.bi-cloud-sun::before{content:"\f2be"}.bi-cloud-upload-fill::before{content:"\f2bf"}.bi-cloud-upload::before{content:"\f2c0"}.bi-cloud::before{content:"\f2c1"}.bi-clouds-fill::before{content:"\f2c2"}.bi-clouds::before{content:"\f2c3"}.bi-cloudy-fill::before{content:"\f2c4"}.bi-cloudy::before{content:"\f2c5"}.bi-code-slash::before{content:"\f2c6"}.bi-code-square::before{content:"\f2c7"}.bi-code::before{content:"\f2c8"}.bi-collection-fill::before{content:"\f2c9"}.bi-collection-play-fill::before{content:"\f2ca"}.bi-collection-play::before{content:"\f2cb"}.bi-collection::before{content:"\f2cc"}.bi-columns-gap::before{content:"\f2cd"}.bi-columns::before{content:"\f2ce"}.bi-command::before{content:"\f2cf"}.bi-compass-fill::before{content:"\f2d0"}.bi-compass::before{content:"\f2d1"}.bi-cone-striped::before{content:"\f2d2"}.bi-cone::before{content:"\f2d3"}.bi-controller::before{content:"\f2d4"}.bi-cpu-fill::before{content:"\f2d5"}.bi-cpu::before{content:"\f2d6"}.bi-credit-card-2-back-fill::before{content:"\f2d7"}.bi-credit-card-2-back::before{content:"\f2d8"}.bi-credit-card-2-front-fill::before{content:"\f2d9"}.bi-credit-card-2-front::before{content:"\f2da"}.bi-credit-card-fill::before{content:"\f2db"}.bi-credit-card::before{content:"\f2dc"}.bi-crop::before{content:"\f2dd"}.bi-cup-fill::before{content:"\f2de"}.bi-cup-straw::before{content:"\f2df"}.bi-cup::before{content:"\f2e0"}.bi-cursor-fill::before{content:"\f2e1"}.bi-cursor-text::before{content:"\f2e2"}.bi-cursor::before{content:"\f2e3"}.bi-dash-circle-dotted::before{content:"\f2e4"}.bi-dash-circle-fill::before{content:"\f2e5"}.bi-dash-circle::before{content:"\f2e6"}.bi-dash-square-dotted::before{content:"\f2e7"}.bi-dash-square-fill::before{content:"\f2e8"}.bi-dash-square::before{content:"\f2e9"}.bi-dash::before{content:"\f2ea"}.bi-diagram-2-fill::before{content:"\f2eb"}.bi-diagram-2::before{content:"\f2ec"}.bi-diagram-3-fill::before{content:"\f2ed"}.bi-diagram-3::before{content:"\f2ee"}.bi-diamond-fill::before{content:"\f2ef"}.bi-diamond-half::before{content:"\f2f0"}.bi-diamond::before{content:"\f2f1"}.bi-dice-1-fill::before{content:"\f2f2"}.bi-dice-1::before{content:"\f2f3"}.bi-dice-2-fill::before{content:"\f2f4"}.bi-dice-2::before{content:"\f2f5"}.bi-dice-3-fill::before{content:"\f2f6"}.bi-dice-3::before{content:"\f2f7"}.bi-dice-4-fill::before{content:"\f2f8"}.bi-dice-4::before{content:"\f2f9"}.bi-dice-5-fill::before{content:"\f2fa"}.bi-dice-5::before{content:"\f2fb"}.bi-dice-6-fill::before{content:"\f2fc"}.bi-dice-6::before{content:"\f2fd"}.bi-disc-fill::before{content:"\f2fe"}.bi-disc::before{content:"\f2ff"}.bi-discord::before{content:"\f300"}.bi-display-fill::before{content:"\f301"}.bi-display::before{content:"\f302"}.bi-distribute-horizontal::before{content:"\f303"}.bi-distribute-vertical::before{content:"\f304"}.bi-door-closed-fill::before{content:"\f305"}.bi-door-closed::before{content:"\f306"}.bi-door-open-fill::before{content:"\f307"}.bi-door-open::before{content:"\f308"}.bi-dot::before{content:"\f309"}.bi-download::before{content:"\f30a"}.bi-droplet-fill::before{content:"\f30b"}.bi-droplet-half::before{content:"\f30c"}.bi-droplet::before{content:"\f30d"}.bi-earbuds::before{content:"\f30e"}.bi-easel-fill::before{content:"\f30f"}.bi-easel::before{content:"\f310"}.bi-egg-fill::before{content:"\f311"}.bi-egg-fried::before{content:"\f312"}.bi-egg::before{content:"\f313"}.bi-eject-fill::before{content:"\f314"}.bi-eject::before{content:"\f315"}.bi-emoji-angry-fill::before{content:"\f316"}.bi-emoji-angry::before{content:"\f317"}.bi-emoji-dizzy-fill::before{content:"\f318"}.bi-emoji-dizzy::before{content:"\f319"}.bi-emoji-expressionless-fill::before{content:"\f31a"}.bi-emoji-expressionless::before{content:"\f31b"}.bi-emoji-frown-fill::before{content:"\f31c"}.bi-emoji-frown::before{content:"\f31d"}.bi-emoji-heart-eyes-fill::before{content:"\f31e"}.bi-emoji-heart-eyes::before{content:"\f31f"}.bi-emoji-laughing-fill::before{content:"\f320"}.bi-emoji-laughing::before{content:"\f321"}.bi-emoji-neutral-fill::before{content:"\f322"}.bi-emoji-neutral::before{content:"\f323"}.bi-emoji-smile-fill::before{content:"\f324"}.bi-emoji-smile-upside-down-fill::before{content:"\f325"}.bi-emoji-smile-upside-down::before{content:"\f326"}.bi-emoji-smile::before{content:"\f327"}.bi-emoji-sunglasses-fill::before{content:"\f328"}.bi-emoji-sunglasses::before{content:"\f329"}.bi-emoji-wink-fill::before{content:"\f32a"}.bi-emoji-wink::before{content:"\f32b"}.bi-envelope-fill::before{content:"\f32c"}.bi-envelope-open-fill::before{content:"\f32d"}.bi-envelope-open::before{content:"\f32e"}.bi-envelope::before{content:"\f32f"}.bi-eraser-fill::before{content:"\f330"}.bi-eraser::before{content:"\f331"}.bi-exclamation-circle-fill::before{content:"\f332"}.bi-exclamation-circle::before{content:"\f333"}.bi-exclamation-diamond-fill::before{content:"\f334"}.bi-exclamation-diamond::before{content:"\f335"}.bi-exclamation-octagon-fill::before{content:"\f336"}.bi-exclamation-octagon::before{content:"\f337"}.bi-exclamation-square-fill::before{content:"\f338"}.bi-exclamation-square::before{content:"\f339"}.bi-exclamation-triangle-fill::before{content:"\f33a"}.bi-exclamation-triangle::before{content:"\f33b"}.bi-exclamation::before{content:"\f33c"}.bi-exclude::before{content:"\f33d"}.bi-eye-fill::before{content:"\f33e"}.bi-eye-slash-fill::before{content:"\f33f"}.bi-eye-slash::before{content:"\f340"}.bi-eye::before{content:"\f341"}.bi-eyedropper::before{content:"\f342"}.bi-eyeglasses::before{content:"\f343"}.bi-facebook::before{content:"\f344"}.bi-file-arrow-down-fill::before{content:"\f345"}.bi-file-arrow-down::before{content:"\f346"}.bi-file-arrow-up-fill::before{content:"\f347"}.bi-file-arrow-up::before{content:"\f348"}.bi-file-bar-graph-fill::before{content:"\f349"}.bi-file-bar-graph::before{content:"\f34a"}.bi-file-binary-fill::before{content:"\f34b"}.bi-file-binary::before{content:"\f34c"}.bi-file-break-fill::before{content:"\f34d"}.bi-file-break::before{content:"\f34e"}.bi-file-check-fill::before{content:"\f34f"}.bi-file-check::before{content:"\f350"}.bi-file-code-fill::before{content:"\f351"}.bi-file-code::before{content:"\f352"}.bi-file-diff-fill::before{content:"\f353"}.bi-file-diff::before{content:"\f354"}.bi-file-earmark-arrow-down-fill::before{content:"\f355"}.bi-file-earmark-arrow-down::before{content:"\f356"}.bi-file-earmark-arrow-up-fill::before{content:"\f357"}.bi-file-earmark-arrow-up::before{content:"\f358"}.bi-file-earmark-bar-graph-fill::before{content:"\f359"}.bi-file-earmark-bar-graph::before{content:"\f35a"}.bi-file-earmark-binary-fill::before{content:"\f35b"}.bi-file-earmark-binary::before{content:"\f35c"}.bi-file-earmark-break-fill::before{content:"\f35d"}.bi-file-earmark-break::before{content:"\f35e"}.bi-file-earmark-check-fill::before{content:"\f35f"}.bi-file-earmark-check::before{content:"\f360"}.bi-file-earmark-code-fill::before{content:"\f361"}.bi-file-earmark-code::before{content:"\f362"}.bi-file-earmark-diff-fill::before{content:"\f363"}.bi-file-earmark-diff::before{content:"\f364"}.bi-file-earmark-easel-fill::before{content:"\f365"}.bi-file-earmark-easel::before{content:"\f366"}.bi-file-earmark-excel-fill::before{content:"\f367"}.bi-file-earmark-excel::before{content:"\f368"}.bi-file-earmark-fill::before{content:"\f369"}.bi-file-earmark-font-fill::before{content:"\f36a"}.bi-file-earmark-font::before{content:"\f36b"}.bi-file-earmark-image-fill::before{content:"\f36c"}.bi-file-earmark-image::before{content:"\f36d"}.bi-file-earmark-lock-fill::before{content:"\f36e"}.bi-file-earmark-lock::before{content:"\f36f"}.bi-file-earmark-lock2-fill::before{content:"\f370"}.bi-file-earmark-lock2::before{content:"\f371"}.bi-file-earmark-medical-fill::before{content:"\f372"}.bi-file-earmark-medical::before{content:"\f373"}.bi-file-earmark-minus-fill::before{content:"\f374"}.bi-file-earmark-minus::before{content:"\f375"}.bi-file-earmark-music-fill::before{content:"\f376"}.bi-file-earmark-music::before{content:"\f377"}.bi-file-earmark-person-fill::before{content:"\f378"}.bi-file-earmark-person::before{content:"\f379"}.bi-file-earmark-play-fill::before{content:"\f37a"}.bi-file-earmark-play::before{content:"\f37b"}.bi-file-earmark-plus-fill::before{content:"\f37c"}.bi-file-earmark-plus::before{content:"\f37d"}.bi-file-earmark-post-fill::before{content:"\f37e"}.bi-file-earmark-post::before{content:"\f37f"}.bi-file-earmark-ppt-fill::before{content:"\f380"}.bi-file-earmark-ppt::before{content:"\f381"}.bi-file-earmark-richtext-fill::before{content:"\f382"}.bi-file-earmark-richtext::before{content:"\f383"}.bi-file-earmark-ruled-fill::before{content:"\f384"}.bi-file-earmark-ruled::before{content:"\f385"}.bi-file-earmark-slides-fill::before{content:"\f386"}.bi-file-earmark-slides::before{content:"\f387"}.bi-file-earmark-spreadsheet-fill::before{content:"\f388"}.bi-file-earmark-spreadsheet::before{content:"\f389"}.bi-file-earmark-text-fill::before{content:"\f38a"}.bi-file-earmark-text::before{content:"\f38b"}.bi-file-earmark-word-fill::before{content:"\f38c"}.bi-file-earmark-word::before{content:"\f38d"}.bi-file-earmark-x-fill::before{content:"\f38e"}.bi-file-earmark-x::before{content:"\f38f"}.bi-file-earmark-zip-fill::before{content:"\f390"}.bi-file-earmark-zip::before{content:"\f391"}.bi-file-earmark::before{content:"\f392"}.bi-file-easel-fill::before{content:"\f393"}.bi-file-easel::before{content:"\f394"}.bi-file-excel-fill::before{content:"\f395"}.bi-file-excel::before{content:"\f396"}.bi-file-fill::before{content:"\f397"}.bi-file-font-fill::before{content:"\f398"}.bi-file-font::before{content:"\f399"}.bi-file-image-fill::before{content:"\f39a"}.bi-file-image::before{content:"\f39b"}.bi-file-lock-fill::before{content:"\f39c"}.bi-file-lock::before{content:"\f39d"}.bi-file-lock2-fill::before{content:"\f39e"}.bi-file-lock2::before{content:"\f39f"}.bi-file-medical-fill::before{content:"\f3a0"}.bi-file-medical::before{content:"\f3a1"}.bi-file-minus-fill::before{content:"\f3a2"}.bi-file-minus::before{content:"\f3a3"}.bi-file-music-fill::before{content:"\f3a4"}.bi-file-music::before{content:"\f3a5"}.bi-file-person-fill::before{content:"\f3a6"}.bi-file-person::before{content:"\f3a7"}.bi-file-play-fill::before{content:"\f3a8"}.bi-file-play::before{content:"\f3a9"}.bi-file-plus-fill::before{content:"\f3aa"}.bi-file-plus::before{content:"\f3ab"}.bi-file-post-fill::before{content:"\f3ac"}.bi-file-post::before{content:"\f3ad"}.bi-file-ppt-fill::before{content:"\f3ae"}.bi-file-ppt::before{content:"\f3af"}.bi-file-richtext-fill::before{content:"\f3b0"}.bi-file-richtext::before{content:"\f3b1"}.bi-file-ruled-fill::before{content:"\f3b2"}.bi-file-ruled::before{content:"\f3b3"}.bi-file-slides-fill::before{content:"\f3b4"}.bi-file-slides::before{content:"\f3b5"}.bi-file-spreadsheet-fill::before{content:"\f3b6"}.bi-file-spreadsheet::before{content:"\f3b7"}.bi-file-text-fill::before{content:"\f3b8"}.bi-file-text::before{content:"\f3b9"}.bi-file-word-fill::before{content:"\f3ba"}.bi-file-word::before{content:"\f3bb"}.bi-file-x-fill::before{content:"\f3bc"}.bi-file-x::before{content:"\f3bd"}.bi-file-zip-fill::before{content:"\f3be"}.bi-file-zip::before{content:"\f3bf"}.bi-file::before{content:"\f3c0"}.bi-files-alt::before{content:"\f3c1"}.bi-files::before{content:"\f3c2"}.bi-film::before{content:"\f3c3"}.bi-filter-circle-fill::before{content:"\f3c4"}.bi-filter-circle::before{content:"\f3c5"}.bi-filter-left::before{content:"\f3c6"}.bi-filter-right::before{content:"\f3c7"}.bi-filter-square-fill::before{content:"\f3c8"}.bi-filter-square::before{content:"\f3c9"}.bi-filter::before{content:"\f3ca"}.bi-flag-fill::before{content:"\f3cb"}.bi-flag::before{content:"\f3cc"}.bi-flower1::before{content:"\f3cd"}.bi-flower2::before{content:"\f3ce"}.bi-flower3::before{content:"\f3cf"}.bi-folder-check::before{content:"\f3d0"}.bi-folder-fill::before{content:"\f3d1"}.bi-folder-minus::before{content:"\f3d2"}.bi-folder-plus::before{content:"\f3d3"}.bi-folder-symlink-fill::before{content:"\f3d4"}.bi-folder-symlink::before{content:"\f3d5"}.bi-folder-x::before{content:"\f3d6"}.bi-folder::before{content:"\f3d7"}.bi-folder2-open::before{content:"\f3d8"}.bi-folder2::before{content:"\f3d9"}.bi-fonts::before{content:"\f3da"}.bi-forward-fill::before{content:"\f3db"}.bi-forward::before{content:"\f3dc"}.bi-front::before{content:"\f3dd"}.bi-fullscreen-exit::before{content:"\f3de"}.bi-fullscreen::before{content:"\f3df"}.bi-funnel-fill::before{content:"\f3e0"}.bi-funnel::before{content:"\f3e1"}.bi-gear-fill::before{content:"\f3e2"}.bi-gear-wide-connected::before{content:"\f3e3"}.bi-gear-wide::before{content:"\f3e4"}.bi-gear::before{content:"\f3e5"}.bi-gem::before{content:"\f3e6"}.bi-geo-alt-fill::before{content:"\f3e7"}.bi-geo-alt::before{content:"\f3e8"}.bi-geo-fill::before{content:"\f3e9"}.bi-geo::before{content:"\f3ea"}.bi-gift-fill::before{content:"\f3eb"}.bi-gift::before{content:"\f3ec"}.bi-github::before{content:"\f3ed"}.bi-globe::before{content:"\f3ee"}.bi-globe2::before{content:"\f3ef"}.bi-google::before{content:"\f3f0"}.bi-graph-down::before{content:"\f3f1"}.bi-graph-up::before{content:"\f3f2"}.bi-grid-1x2-fill::before{content:"\f3f3"}.bi-grid-1x2::before{content:"\f3f4"}.bi-grid-3x2-gap-fill::before{content:"\f3f5"}.bi-grid-3x2-gap::before{content:"\f3f6"}.bi-grid-3x2::before{content:"\f3f7"}.bi-grid-3x3-gap-fill::before{content:"\f3f8"}.bi-grid-3x3-gap::before{content:"\f3f9"}.bi-grid-3x3::before{content:"\f3fa"}.bi-grid-fill::before{content:"\f3fb"}.bi-grid::before{content:"\f3fc"}.bi-grip-horizontal::before{content:"\f3fd"}.bi-grip-vertical::before{content:"\f3fe"}.bi-hammer::before{content:"\f3ff"}.bi-hand-index-fill::before{content:"\f400"}.bi-hand-index-thumb-fill::before{content:"\f401"}.bi-hand-index-thumb::before{content:"\f402"}.bi-hand-index::before{content:"\f403"}.bi-hand-thumbs-down-fill::before{content:"\f404"}.bi-hand-thumbs-down::before{content:"\f405"}.bi-hand-thumbs-up-fill::before{content:"\f406"}.bi-hand-thumbs-up::before{content:"\f407"}.bi-handbag-fill::before{content:"\f408"}.bi-handbag::before{content:"\f409"}.bi-hash::before{content:"\f40a"}.bi-hdd-fill::before{content:"\f40b"}.bi-hdd-network-fill::before{content:"\f40c"}.bi-hdd-network::before{content:"\f40d"}.bi-hdd-rack-fill::before{content:"\f40e"}.bi-hdd-rack::before{content:"\f40f"}.bi-hdd-stack-fill::before{content:"\f410"}.bi-hdd-stack::before{content:"\f411"}.bi-hdd::before{content:"\f412"}.bi-headphones::before{content:"\f413"}.bi-headset::before{content:"\f414"}.bi-heart-fill::before{content:"\f415"}.bi-heart-half::before{content:"\f416"}.bi-heart::before{content:"\f417"}.bi-heptagon-fill::before{content:"\f418"}.bi-heptagon-half::before{content:"\f419"}.bi-heptagon::before{content:"\f41a"}.bi-hexagon-fill::before{content:"\f41b"}.bi-hexagon-half::before{content:"\f41c"}.bi-hexagon::before{content:"\f41d"}.bi-hourglass-bottom::before{content:"\f41e"}.bi-hourglass-split::before{content:"\f41f"}.bi-hourglass-top::before{content:"\f420"}.bi-hourglass::before{content:"\f421"}.bi-house-door-fill::before{content:"\f422"}.bi-house-door::before{content:"\f423"}.bi-house-fill::before{content:"\f424"}.bi-house::before{content:"\f425"}.bi-hr::before{content:"\f426"}.bi-hurricane::before{content:"\f427"}.bi-image-alt::before{content:"\f428"}.bi-image-fill::before{content:"\f429"}.bi-image::before{content:"\f42a"}.bi-images::before{content:"\f42b"}.bi-inbox-fill::before{content:"\f42c"}.bi-inbox::before{content:"\f42d"}.bi-inboxes-fill::before{content:"\f42e"}.bi-inboxes::before{content:"\f42f"}.bi-info-circle-fill::before{content:"\f430"}.bi-info-circle::before{content:"\f431"}.bi-info-square-fill::before{content:"\f432"}.bi-info-square::before{content:"\f433"}.bi-info::before{content:"\f434"}.bi-input-cursor-text::before{content:"\f435"}.bi-input-cursor::before{content:"\f436"}.bi-instagram::before{content:"\f437"}.bi-intersect::before{content:"\f438"}.bi-journal-album::before{content:"\f439"}.bi-journal-arrow-down::before{content:"\f43a"}.bi-journal-arrow-up::before{content:"\f43b"}.bi-journal-bookmark-fill::before{content:"\f43c"}.bi-journal-bookmark::before{content:"\f43d"}.bi-journal-check::before{content:"\f43e"}.bi-journal-code::before{content:"\f43f"}.bi-journal-medical::before{content:"\f440"}.bi-journal-minus::before{content:"\f441"}.bi-journal-plus::before{content:"\f442"}.bi-journal-richtext::before{content:"\f443"}.bi-journal-text::before{content:"\f444"}.bi-journal-x::before{content:"\f445"}.bi-journal::before{content:"\f446"}.bi-journals::before{content:"\f447"}.bi-joystick::before{content:"\f448"}.bi-justify-left::before{content:"\f449"}.bi-justify-right::before{content:"\f44a"}.bi-justify::before{content:"\f44b"}.bi-kanban-fill::before{content:"\f44c"}.bi-kanban::before{content:"\f44d"}.bi-key-fill::before{content:"\f44e"}.bi-key::before{content:"\f44f"}.bi-keyboard-fill::before{content:"\f450"}.bi-keyboard::before{content:"\f451"}.bi-ladder::before{content:"\f452"}.bi-lamp-fill::before{content:"\f453"}.bi-lamp::before{content:"\f454"}.bi-laptop-fill::before{content:"\f455"}.bi-laptop::before{content:"\f456"}.bi-layer-backward::before{content:"\f457"}.bi-layer-forward::before{content:"\f458"}.bi-layers-fill::before{content:"\f459"}.bi-layers-half::before{content:"\f45a"}.bi-layers::before{content:"\f45b"}.bi-layout-sidebar-inset-reverse::before{content:"\f45c"}.bi-layout-sidebar-inset::before{content:"\f45d"}.bi-layout-sidebar-reverse::before{content:"\f45e"}.bi-layout-sidebar::before{content:"\f45f"}.bi-layout-split::before{content:"\f460"}.bi-layout-text-sidebar-reverse::before{content:"\f461"}.bi-layout-text-sidebar::before{content:"\f462"}.bi-layout-text-window-reverse::before{content:"\f463"}.bi-layout-text-window::before{content:"\f464"}.bi-layout-three-columns::before{content:"\f465"}.bi-layout-wtf::before{content:"\f466"}.bi-life-preserver::before{content:"\f467"}.bi-lightbulb-fill::before{content:"\f468"}.bi-lightbulb-off-fill::before{content:"\f469"}.bi-lightbulb-off::before{content:"\f46a"}.bi-lightbulb::before{content:"\f46b"}.bi-lightning-charge-fill::before{content:"\f46c"}.bi-lightning-charge::before{content:"\f46d"}.bi-lightning-fill::before{content:"\f46e"}.bi-lightning::before{content:"\f46f"}.bi-link-45deg::before{content:"\f470"}.bi-link::before{content:"\f471"}.bi-linkedin::before{content:"\f472"}.bi-list-check::before{content:"\f473"}.bi-list-nested::before{content:"\f474"}.bi-list-ol::before{content:"\f475"}.bi-list-stars::before{content:"\f476"}.bi-list-task::before{content:"\f477"}.bi-list-ul::before{content:"\f478"}.bi-list::before{content:"\f479"}.bi-lock-fill::before{content:"\f47a"}.bi-lock::before{content:"\f47b"}.bi-mailbox::before{content:"\f47c"}.bi-mailbox2::before{content:"\f47d"}.bi-map-fill::before{content:"\f47e"}.bi-map::before{content:"\f47f"}.bi-markdown-fill::before{content:"\f480"}.bi-markdown::before{content:"\f481"}.bi-mask::before{content:"\f482"}.bi-megaphone-fill::before{content:"\f483"}.bi-megaphone::before{content:"\f484"}.bi-menu-app-fill::before{content:"\f485"}.bi-menu-app::before{content:"\f486"}.bi-menu-button-fill::before{content:"\f487"}.bi-menu-button-wide-fill::before{content:"\f488"}.bi-menu-button-wide::before{content:"\f489"}.bi-menu-button::before{content:"\f48a"}.bi-menu-down::before{content:"\f48b"}.bi-menu-up::before{content:"\f48c"}.bi-mic-fill::before{content:"\f48d"}.bi-mic-mute-fill::before{content:"\f48e"}.bi-mic-mute::before{content:"\f48f"}.bi-mic::before{content:"\f490"}.bi-minecart-loaded::before{content:"\f491"}.bi-minecart::before{content:"\f492"}.bi-moisture::before{content:"\f493"}.bi-moon-fill::before{content:"\f494"}.bi-moon-stars-fill::before{content:"\f495"}.bi-moon-stars::before{content:"\f496"}.bi-moon::before{content:"\f497"}.bi-mouse-fill::before{content:"\f498"}.bi-mouse::before{content:"\f499"}.bi-mouse2-fill::before{content:"\f49a"}.bi-mouse2::before{content:"\f49b"}.bi-mouse3-fill::before{content:"\f49c"}.bi-mouse3::before{content:"\f49d"}.bi-music-note-beamed::before{content:"\f49e"}.bi-music-note-list::before{content:"\f49f"}.bi-music-note::before{content:"\f4a0"}.bi-music-player-fill::before{content:"\f4a1"}.bi-music-player::before{content:"\f4a2"}.bi-newspaper::before{content:"\f4a3"}.bi-node-minus-fill::before{content:"\f4a4"}.bi-node-minus::before{content:"\f4a5"}.bi-node-plus-fill::before{content:"\f4a6"}.bi-node-plus::before{content:"\f4a7"}.bi-nut-fill::before{content:"\f4a8"}.bi-nut::before{content:"\f4a9"}.bi-octagon-fill::before{content:"\f4aa"}.bi-octagon-half::before{content:"\f4ab"}.bi-octagon::before{content:"\f4ac"}.bi-option::before{content:"\f4ad"}.bi-outlet::before{content:"\f4ae"}.bi-paint-bucket::before{content:"\f4af"}.bi-palette-fill::before{content:"\f4b0"}.bi-palette::before{content:"\f4b1"}.bi-palette2::before{content:"\f4b2"}.bi-paperclip::before{content:"\f4b3"}.bi-paragraph::before{content:"\f4b4"}.bi-patch-check-fill::before{content:"\f4b5"}.bi-patch-check::before{content:"\f4b6"}.bi-patch-exclamation-fill::before{content:"\f4b7"}.bi-patch-exclamation::before{content:"\f4b8"}.bi-patch-minus-fill::before{content:"\f4b9"}.bi-patch-minus::before{content:"\f4ba"}.bi-patch-plus-fill::before{content:"\f4bb"}.bi-patch-plus::before{content:"\f4bc"}.bi-patch-question-fill::before{content:"\f4bd"}.bi-patch-question::before{content:"\f4be"}.bi-pause-btn-fill::before{content:"\f4bf"}.bi-pause-btn::before{content:"\f4c0"}.bi-pause-circle-fill::before{content:"\f4c1"}.bi-pause-circle::before{content:"\f4c2"}.bi-pause-fill::before{content:"\f4c3"}.bi-pause::before{content:"\f4c4"}.bi-peace-fill::before{content:"\f4c5"}.bi-peace::before{content:"\f4c6"}.bi-pen-fill::before{content:"\f4c7"}.bi-pen::before{content:"\f4c8"}.bi-pencil-fill::before{content:"\f4c9"}.bi-pencil-square::before{content:"\f4ca"}.bi-pencil::before{content:"\f4cb"}.bi-pentagon-fill::before{content:"\f4cc"}.bi-pentagon-half::before{content:"\f4cd"}.bi-pentagon::before{content:"\f4ce"}.bi-people-fill::before{content:"\f4cf"}.bi-people::before{content:"\f4d0"}.bi-percent::before{content:"\f4d1"}.bi-person-badge-fill::before{content:"\f4d2"}.bi-person-badge::before{content:"\f4d3"}.bi-person-bounding-box::before{content:"\f4d4"}.bi-person-check-fill::before{content:"\f4d5"}.bi-person-check::before{content:"\f4d6"}.bi-person-circle::before{content:"\f4d7"}.bi-person-dash-fill::before{content:"\f4d8"}.bi-person-dash::before{content:"\f4d9"}.bi-person-fill::before{content:"\f4da"}.bi-person-lines-fill::before{content:"\f4db"}.bi-person-plus-fill::before{content:"\f4dc"}.bi-person-plus::before{content:"\f4dd"}.bi-person-square::before{content:"\f4de"}.bi-person-x-fill::before{content:"\f4df"}.bi-person-x::before{content:"\f4e0"}.bi-person::before{content:"\f4e1"}.bi-phone-fill::before{content:"\f4e2"}.bi-phone-landscape-fill::before{content:"\f4e3"}.bi-phone-landscape::before{content:"\f4e4"}.bi-phone-vibrate-fill::before{content:"\f4e5"}.bi-phone-vibrate::before{content:"\f4e6"}.bi-phone::before{content:"\f4e7"}.bi-pie-chart-fill::before{content:"\f4e8"}.bi-pie-chart::before{content:"\f4e9"}.bi-pin-angle-fill::before{content:"\f4ea"}.bi-pin-angle::before{content:"\f4eb"}.bi-pin-fill::before{content:"\f4ec"}.bi-pin::before{content:"\f4ed"}.bi-pip-fill::before{content:"\f4ee"}.bi-pip::before{content:"\f4ef"}.bi-play-btn-fill::before{content:"\f4f0"}.bi-play-btn::before{content:"\f4f1"}.bi-play-circle-fill::before{content:"\f4f2"}.bi-play-circle::before{content:"\f4f3"}.bi-play-fill::before{content:"\f4f4"}.bi-play::before{content:"\f4f5"}.bi-plug-fill::before{content:"\f4f6"}.bi-plug::before{content:"\f4f7"}.bi-plus-circle-dotted::before{content:"\f4f8"}.bi-plus-circle-fill::before{content:"\f4f9"}.bi-plus-circle::before{content:"\f4fa"}.bi-plus-square-dotted::before{content:"\f4fb"}.bi-plus-square-fill::before{content:"\f4fc"}.bi-plus-square::before{content:"\f4fd"}.bi-plus::before{content:"\f4fe"}.bi-power::before{content:"\f4ff"}.bi-printer-fill::before{content:"\f500"}.bi-printer::before{content:"\f501"}.bi-puzzle-fill::before{content:"\f502"}.bi-puzzle::before{content:"\f503"}.bi-question-circle-fill::before{content:"\f504"}.bi-question-circle::before{content:"\f505"}.bi-question-diamond-fill::before{content:"\f506"}.bi-question-diamond::before{content:"\f507"}.bi-question-octagon-fill::before{content:"\f508"}.bi-question-octagon::before{content:"\f509"}.bi-question-square-fill::before{content:"\f50a"}.bi-question-square::before{content:"\f50b"}.bi-question::before{content:"\f50c"}.bi-rainbow::before{content:"\f50d"}.bi-receipt-cutoff::before{content:"\f50e"}.bi-receipt::before{content:"\f50f"}.bi-reception-0::before{content:"\f510"}.bi-reception-1::before{content:"\f511"}.bi-reception-2::before{content:"\f512"}.bi-reception-3::before{content:"\f513"}.bi-reception-4::before{content:"\f514"}.bi-record-btn-fill::before{content:"\f515"}.bi-record-btn::before{content:"\f516"}.bi-record-circle-fill::before{content:"\f517"}.bi-record-circle::before{content:"\f518"}.bi-record-fill::before{content:"\f519"}.bi-record::before{content:"\f51a"}.bi-record2-fill::before{content:"\f51b"}.bi-record2::before{content:"\f51c"}.bi-reply-all-fill::before{content:"\f51d"}.bi-reply-all::before{content:"\f51e"}.bi-reply-fill::before{content:"\f51f"}.bi-reply::before{content:"\f520"}.bi-rss-fill::before{content:"\f521"}.bi-rss::before{content:"\f522"}.bi-rulers::before{content:"\f523"}.bi-save-fill::before{content:"\f524"}.bi-save::before{content:"\f525"}.bi-save2-fill::before{content:"\f526"}.bi-save2::before{content:"\f527"}.bi-scissors::before{content:"\f528"}.bi-screwdriver::before{content:"\f529"}.bi-search::before{content:"\f52a"}.bi-segmented-nav::before{content:"\f52b"}.bi-server::before{content:"\f52c"}.bi-share-fill::before{content:"\f52d"}.bi-share::before{content:"\f52e"}.bi-shield-check::before{content:"\f52f"}.bi-shield-exclamation::before{content:"\f530"}.bi-shield-fill-check::before{content:"\f531"}.bi-shield-fill-exclamation::before{content:"\f532"}.bi-shield-fill-minus::before{content:"\f533"}.bi-shield-fill-plus::before{content:"\f534"}.bi-shield-fill-x::before{content:"\f535"}.bi-shield-fill::before{content:"\f536"}.bi-shield-lock-fill::before{content:"\f537"}.bi-shield-lock::before{content:"\f538"}.bi-shield-minus::before{content:"\f539"}.bi-shield-plus::before{content:"\f53a"}.bi-shield-shaded::before{content:"\f53b"}.bi-shield-slash-fill::before{content:"\f53c"}.bi-shield-slash::before{content:"\f53d"}.bi-shield-x::before{content:"\f53e"}.bi-shield::before{content:"\f53f"}.bi-shift-fill::before{content:"\f540"}.bi-shift::before{content:"\f541"}.bi-shop-window::before{content:"\f542"}.bi-shop::before{content:"\f543"}.bi-shuffle::before{content:"\f544"}.bi-signpost-2-fill::before{content:"\f545"}.bi-signpost-2::before{content:"\f546"}.bi-signpost-fill::before{content:"\f547"}.bi-signpost-split-fill::before{content:"\f548"}.bi-signpost-split::before{content:"\f549"}.bi-signpost::before{content:"\f54a"}.bi-sim-fill::before{content:"\f54b"}.bi-sim::before{content:"\f54c"}.bi-skip-backward-btn-fill::before{content:"\f54d"}.bi-skip-backward-btn::before{content:"\f54e"}.bi-skip-backward-circle-fill::before{content:"\f54f"}.bi-skip-backward-circle::before{content:"\f550"}.bi-skip-backward-fill::before{content:"\f551"}.bi-skip-backward::before{content:"\f552"}.bi-skip-end-btn-fill::before{content:"\f553"}.bi-skip-end-btn::before{content:"\f554"}.bi-skip-end-circle-fill::before{content:"\f555"}.bi-skip-end-circle::before{content:"\f556"}.bi-skip-end-fill::before{content:"\f557"}.bi-skip-end::before{content:"\f558"}.bi-skip-forward-btn-fill::before{content:"\f559"}.bi-skip-forward-btn::before{content:"\f55a"}.bi-skip-forward-circle-fill::before{content:"\f55b"}.bi-skip-forward-circle::before{content:"\f55c"}.bi-skip-forward-fill::before{content:"\f55d"}.bi-skip-forward::before{content:"\f55e"}.bi-skip-start-btn-fill::before{content:"\f55f"}.bi-skip-start-btn::before{content:"\f560"}.bi-skip-start-circle-fill::before{content:"\f561"}.bi-skip-start-circle::before{content:"\f562"}.bi-skip-start-fill::before{content:"\f563"}.bi-skip-start::before{content:"\f564"}.bi-slack::before{content:"\f565"}.bi-slash-circle-fill::before{content:"\f566"}.bi-slash-circle::before{content:"\f567"}.bi-slash-square-fill::before{content:"\f568"}.bi-slash-square::before{content:"\f569"}.bi-slash::before{content:"\f56a"}.bi-sliders::before{content:"\f56b"}.bi-smartwatch::before{content:"\f56c"}.bi-snow::before{content:"\f56d"}.bi-snow2::before{content:"\f56e"}.bi-snow3::before{content:"\f56f"}.bi-sort-alpha-down-alt::before{content:"\f570"}.bi-sort-alpha-down::before{content:"\f571"}.bi-sort-alpha-up-alt::before{content:"\f572"}.bi-sort-alpha-up::before{content:"\f573"}.bi-sort-down-alt::before{content:"\f574"}.bi-sort-down::before{content:"\f575"}.bi-sort-numeric-down-alt::before{content:"\f576"}.bi-sort-numeric-down::before{content:"\f577"}.bi-sort-numeric-up-alt::before{content:"\f578"}.bi-sort-numeric-up::before{content:"\f579"}.bi-sort-up-alt::before{content:"\f57a"}.bi-sort-up::before{content:"\f57b"}.bi-soundwave::before{content:"\f57c"}.bi-speaker-fill::before{content:"\f57d"}.bi-speaker::before{content:"\f57e"}.bi-speedometer::before{content:"\f57f"}.bi-speedometer2::before{content:"\f580"}.bi-spellcheck::before{content:"\f581"}.bi-square-fill::before{content:"\f582"}.bi-square-half::before{content:"\f583"}.bi-square::before{content:"\f584"}.bi-stack::before{content:"\f585"}.bi-star-fill::before{content:"\f586"}.bi-star-half::before{content:"\f587"}.bi-star::before{content:"\f588"}.bi-stars::before{content:"\f589"}.bi-stickies-fill::before{content:"\f58a"}.bi-stickies::before{content:"\f58b"}.bi-sticky-fill::before{content:"\f58c"}.bi-sticky::before{content:"\f58d"}.bi-stop-btn-fill::before{content:"\f58e"}.bi-stop-btn::before{content:"\f58f"}.bi-stop-circle-fill::before{content:"\f590"}.bi-stop-circle::before{content:"\f591"}.bi-stop-fill::before{content:"\f592"}.bi-stop::before{content:"\f593"}.bi-stoplights-fill::before{content:"\f594"}.bi-stoplights::before{content:"\f595"}.bi-stopwatch-fill::before{content:"\f596"}.bi-stopwatch::before{content:"\f597"}.bi-subtract::before{content:"\f598"}.bi-suit-club-fill::before{content:"\f599"}.bi-suit-club::before{content:"\f59a"}.bi-suit-diamond-fill::before{content:"\f59b"}.bi-suit-diamond::before{content:"\f59c"}.bi-suit-heart-fill::before{content:"\f59d"}.bi-suit-heart::before{content:"\f59e"}.bi-suit-spade-fill::before{content:"\f59f"}.bi-suit-spade::before{content:"\f5a0"}.bi-sun-fill::before{content:"\f5a1"}.bi-sun::before{content:"\f5a2"}.bi-sunglasses::before{content:"\f5a3"}.bi-sunrise-fill::before{content:"\f5a4"}.bi-sunrise::before{content:"\f5a5"}.bi-sunset-fill::before{content:"\f5a6"}.bi-sunset::before{content:"\f5a7"}.bi-symmetry-horizontal::before{content:"\f5a8"}.bi-symmetry-vertical::before{content:"\f5a9"}.bi-table::before{content:"\f5aa"}.bi-tablet-fill::before{content:"\f5ab"}.bi-tablet-landscape-fill::before{content:"\f5ac"}.bi-tablet-landscape::before{content:"\f5ad"}.bi-tablet::before{content:"\f5ae"}.bi-tag-fill::before{content:"\f5af"}.bi-tag::before{content:"\f5b0"}.bi-tags-fill::before{content:"\f5b1"}.bi-tags::before{content:"\f5b2"}.bi-telegram::before{content:"\f5b3"}.bi-telephone-fill::before{content:"\f5b4"}.bi-telephone-forward-fill::before{content:"\f5b5"}.bi-telephone-forward::before{content:"\f5b6"}.bi-telephone-inbound-fill::before{content:"\f5b7"}.bi-telephone-inbound::before{content:"\f5b8"}.bi-telephone-minus-fill::before{content:"\f5b9"}.bi-telephone-minus::before{content:"\f5ba"}.bi-telephone-outbound-fill::before{content:"\f5bb"}.bi-telephone-outbound::before{content:"\f5bc"}.bi-telephone-plus-fill::before{content:"\f5bd"}.bi-telephone-plus::before{content:"\f5be"}.bi-telephone-x-fill::before{content:"\f5bf"}.bi-telephone-x::before{content:"\f5c0"}.bi-telephone::before{content:"\f5c1"}.bi-terminal-fill::before{content:"\f5c2"}.bi-terminal::before{content:"\f5c3"}.bi-text-center::before{content:"\f5c4"}.bi-text-indent-left::before{content:"\f5c5"}.bi-text-indent-right::before{content:"\f5c6"}.bi-text-left::before{content:"\f5c7"}.bi-text-paragraph::before{content:"\f5c8"}.bi-text-right::before{content:"\f5c9"}.bi-textarea-resize::before{content:"\f5ca"}.bi-textarea-t::before{content:"\f5cb"}.bi-textarea::before{content:"\f5cc"}.bi-thermometer-half::before{content:"\f5cd"}.bi-thermometer-high::before{content:"\f5ce"}.bi-thermometer-low::before{content:"\f5cf"}.bi-thermometer-snow::before{content:"\f5d0"}.bi-thermometer-sun::before{content:"\f5d1"}.bi-thermometer::before{content:"\f5d2"}.bi-three-dots-vertical::before{content:"\f5d3"}.bi-three-dots::before{content:"\f5d4"}.bi-toggle-off::before{content:"\f5d5"}.bi-toggle-on::before{content:"\f5d6"}.bi-toggle2-off::before{content:"\f5d7"}.bi-toggle2-on::before{content:"\f5d8"}.bi-toggles::before{content:"\f5d9"}.bi-toggles2::before{content:"\f5da"}.bi-tools::before{content:"\f5db"}.bi-tornado::before{content:"\f5dc"}.bi-trash-fill::before{content:"\f5dd"}.bi-trash::before{content:"\f5de"}.bi-trash2-fill::before{content:"\f5df"}.bi-trash2::before{content:"\f5e0"}.bi-tree-fill::before{content:"\f5e1"}.bi-tree::before{content:"\f5e2"}.bi-triangle-fill::before{content:"\f5e3"}.bi-triangle-half::before{content:"\f5e4"}.bi-triangle::before{content:"\f5e5"}.bi-trophy-fill::before{content:"\f5e6"}.bi-trophy::before{content:"\f5e7"}.bi-tropical-storm::before{content:"\f5e8"}.bi-truck-flatbed::before{content:"\f5e9"}.bi-truck::before{content:"\f5ea"}.bi-tsunami::before{content:"\f5eb"}.bi-tv-fill::before{content:"\f5ec"}.bi-tv::before{content:"\f5ed"}.bi-twitch::before{content:"\f5ee"}.bi-twitter::before{content:"\f5ef"}.bi-type-bold::before{content:"\f5f0"}.bi-type-h1::before{content:"\f5f1"}.bi-type-h2::before{content:"\f5f2"}.bi-type-h3::before{content:"\f5f3"}.bi-type-italic::before{content:"\f5f4"}.bi-type-strikethrough::before{content:"\f5f5"}.bi-type-underline::before{content:"\f5f6"}.bi-type::before{content:"\f5f7"}.bi-ui-checks-grid::before{content:"\f5f8"}.bi-ui-checks::before{content:"\f5f9"}.bi-ui-radios-grid::before{content:"\f5fa"}.bi-ui-radios::before{content:"\f5fb"}.bi-umbrella-fill::before{content:"\f5fc"}.bi-umbrella::before{content:"\f5fd"}.bi-union::before{content:"\f5fe"}.bi-unlock-fill::before{content:"\f5ff"}.bi-unlock::before{content:"\f600"}.bi-upc-scan::before{content:"\f601"}.bi-upc::before{content:"\f602"}.bi-upload::before{content:"\f603"}.bi-vector-pen::before{content:"\f604"}.bi-view-list::before{content:"\f605"}.bi-view-stacked::before{content:"\f606"}.bi-vinyl-fill::before{content:"\f607"}.bi-vinyl::before{content:"\f608"}.bi-voicemail::before{content:"\f609"}.bi-volume-down-fill::before{content:"\f60a"}.bi-volume-down::before{content:"\f60b"}.bi-volume-mute-fill::before{content:"\f60c"}.bi-volume-mute::before{content:"\f60d"}.bi-volume-off-fill::before{content:"\f60e"}.bi-volume-off::before{content:"\f60f"}.bi-volume-up-fill::before{content:"\f610"}.bi-volume-up::before{content:"\f611"}.bi-vr::before{content:"\f612"}.bi-wallet-fill::before{content:"\f613"}.bi-wallet::before{content:"\f614"}.bi-wallet2::before{content:"\f615"}.bi-watch::before{content:"\f616"}.bi-water::before{content:"\f617"}.bi-whatsapp::before{content:"\f618"}.bi-wifi-1::before{content:"\f619"}.bi-wifi-2::before{content:"\f61a"}.bi-wifi-off::before{content:"\f61b"}.bi-wifi::before{content:"\f61c"}.bi-wind::before{content:"\f61d"}.bi-window-dock::before{content:"\f61e"}.bi-window-sidebar::before{content:"\f61f"}.bi-window::before{content:"\f620"}.bi-wrench::before{content:"\f621"}.bi-x-circle-fill::before{content:"\f622"}.bi-x-circle::before{content:"\f623"}.bi-x-diamond-fill::before{content:"\f624"}.bi-x-diamond::before{content:"\f625"}.bi-x-octagon-fill::before{content:"\f626"}.bi-x-octagon::before{content:"\f627"}.bi-x-square-fill::before{content:"\f628"}.bi-x-square::before{content:"\f629"}.bi-x::before{content:"\f62a"}.bi-youtube::before{content:"\f62b"}.bi-zoom-in::before{content:"\f62c"}.bi-zoom-out::before{content:"\f62d"}.bi-bank::before{content:"\f62e"}.bi-bank2::before{content:"\f62f"}.bi-bell-slash-fill::before{content:"\f630"}.bi-bell-slash::before{content:"\f631"}.bi-cash-coin::before{content:"\f632"}.bi-check-lg::before{content:"\f633"}.bi-coin::before{content:"\f634"}.bi-currency-bitcoin::before{content:"\f635"}.bi-currency-dollar::before{content:"\f636"}.bi-currency-euro::before{content:"\f637"}.bi-currency-exchange::before{content:"\f638"}.bi-currency-pound::before{content:"\f639"}.bi-currency-yen::before{content:"\f63a"}.bi-dash-lg::before{content:"\f63b"}.bi-exclamation-lg::before{content:"\f63c"}.bi-file-earmark-pdf-fill::before{content:"\f63d"}.bi-file-earmark-pdf::before{content:"\f63e"}.bi-file-pdf-fill::before{content:"\f63f"}.bi-file-pdf::before{content:"\f640"}.bi-gender-ambiguous::before{content:"\f641"}.bi-gender-female::before{content:"\f642"}.bi-gender-male::before{content:"\f643"}.bi-gender-trans::before{content:"\f644"}.bi-headset-vr::before{content:"\f645"}.bi-info-lg::before{content:"\f646"}.bi-mastodon::before{content:"\f647"}.bi-messenger::before{content:"\f648"}.bi-piggy-bank-fill::before{content:"\f649"}.bi-piggy-bank::before{content:"\f64a"}.bi-pin-map-fill::before{content:"\f64b"}.bi-pin-map::before{content:"\f64c"}.bi-plus-lg::before{content:"\f64d"}.bi-question-lg::before{content:"\f64e"}.bi-recycle::before{content:"\f64f"}.bi-reddit::before{content:"\f650"}.bi-safe-fill::before{content:"\f651"}.bi-safe2-fill::before{content:"\f652"}.bi-safe2::before{content:"\f653"}.bi-sd-card-fill::before{content:"\f654"}.bi-sd-card::before{content:"\f655"}.bi-skype::before{content:"\f656"}.bi-slash-lg::before{content:"\f657"}.bi-translate::before{content:"\f658"}.bi-x-lg::before{content:"\f659"}.bi-safe::before{content:"\f65a"}.bi-apple::before{content:"\f65b"}.bi-microsoft::before{content:"\f65d"}.bi-windows::before{content:"\f65e"}.bi-behance::before{content:"\f65c"}.bi-dribbble::before{content:"\f65f"}.bi-line::before{content:"\f660"}.bi-medium::before{content:"\f661"}.bi-paypal::before{content:"\f662"}.bi-pinterest::before{content:"\f663"}.bi-signal::before{content:"\f664"}.bi-snapchat::before{content:"\f665"}.bi-spotify::before{content:"\f666"}.bi-stack-overflow::before{content:"\f667"}.bi-strava::before{content:"\f668"}.bi-wordpress::before{content:"\f669"}.bi-vimeo::before{content:"\f66a"}.bi-activity::before{content:"\f66b"}.bi-easel2-fill::before{content:"\f66c"}.bi-easel2::before{content:"\f66d"}.bi-easel3-fill::before{content:"\f66e"}.bi-easel3::before{content:"\f66f"}.bi-fan::before{content:"\f670"}.bi-fingerprint::before{content:"\f671"}.bi-graph-down-arrow::before{content:"\f672"}.bi-graph-up-arrow::before{content:"\f673"}.bi-hypnotize::before{content:"\f674"}.bi-magic::before{content:"\f675"}.bi-person-rolodex::before{content:"\f676"}.bi-person-video::before{content:"\f677"}.bi-person-video2::before{content:"\f678"}.bi-person-video3::before{content:"\f679"}.bi-person-workspace::before{content:"\f67a"}.bi-radioactive::before{content:"\f67b"}.bi-webcam-fill::before{content:"\f67c"}.bi-webcam::before{content:"\f67d"}.bi-yin-yang::before{content:"\f67e"}.bi-bandaid-fill::before{content:"\f680"}.bi-bandaid::before{content:"\f681"}.bi-bluetooth::before{content:"\f682"}.bi-body-text::before{content:"\f683"}.bi-boombox::before{content:"\f684"}.bi-boxes::before{content:"\f685"}.bi-dpad-fill::before{content:"\f686"}.bi-dpad::before{content:"\f687"}.bi-ear-fill::before{content:"\f688"}.bi-ear::before{content:"\f689"}.bi-envelope-check-fill::before{content:"\f68b"}.bi-envelope-check::before{content:"\f68c"}.bi-envelope-dash-fill::before{content:"\f68e"}.bi-envelope-dash::before{content:"\f68f"}.bi-envelope-exclamation-fill::before{content:"\f691"}.bi-envelope-exclamation::before{content:"\f692"}.bi-envelope-plus-fill::before{content:"\f693"}.bi-envelope-plus::before{content:"\f694"}.bi-envelope-slash-fill::before{content:"\f696"}.bi-envelope-slash::before{content:"\f697"}.bi-envelope-x-fill::before{content:"\f699"}.bi-envelope-x::before{content:"\f69a"}.bi-explicit-fill::before{content:"\f69b"}.bi-explicit::before{content:"\f69c"}.bi-git::before{content:"\f69d"}.bi-infinity::before{content:"\f69e"}.bi-list-columns-reverse::before{content:"\f69f"}.bi-list-columns::before{content:"\f6a0"}.bi-meta::before{content:"\f6a1"}.bi-nintendo-switch::before{content:"\f6a4"}.bi-pc-display-horizontal::before{content:"\f6a5"}.bi-pc-display::before{content:"\f6a6"}.bi-pc-horizontal::before{content:"\f6a7"}.bi-pc::before{content:"\f6a8"}.bi-playstation::before{content:"\f6a9"}.bi-plus-slash-minus::before{content:"\f6aa"}.bi-projector-fill::before{content:"\f6ab"}.bi-projector::before{content:"\f6ac"}.bi-qr-code-scan::before{content:"\f6ad"}.bi-qr-code::before{content:"\f6ae"}.bi-quora::before{content:"\f6af"}.bi-quote::before{content:"\f6b0"}.bi-robot::before{content:"\f6b1"}.bi-send-check-fill::before{content:"\f6b2"}.bi-send-check::before{content:"\f6b3"}.bi-send-dash-fill::before{content:"\f6b4"}.bi-send-dash::before{content:"\f6b5"}.bi-send-exclamation-fill::before{content:"\f6b7"}.bi-send-exclamation::before{content:"\f6b8"}.bi-send-fill::before{content:"\f6b9"}.bi-send-plus-fill::before{content:"\f6ba"}.bi-send-plus::before{content:"\f6bb"}.bi-send-slash-fill::before{content:"\f6bc"}.bi-send-slash::before{content:"\f6bd"}.bi-send-x-fill::before{content:"\f6be"}.bi-send-x::before{content:"\f6bf"}.bi-send::before{content:"\f6c0"}.bi-steam::before{content:"\f6c1"}.bi-terminal-dash::before{content:"\f6c3"}.bi-terminal-plus::before{content:"\f6c4"}.bi-terminal-split::before{content:"\f6c5"}.bi-ticket-detailed-fill::before{content:"\f6c6"}.bi-ticket-detailed::before{content:"\f6c7"}.bi-ticket-fill::before{content:"\f6c8"}.bi-ticket-perforated-fill::before{content:"\f6c9"}.bi-ticket-perforated::before{content:"\f6ca"}.bi-ticket::before{content:"\f6cb"}.bi-tiktok::before{content:"\f6cc"}.bi-window-dash::before{content:"\f6cd"}.bi-window-desktop::before{content:"\f6ce"}.bi-window-fullscreen::before{content:"\f6cf"}.bi-window-plus::before{content:"\f6d0"}.bi-window-split::before{content:"\f6d1"}.bi-window-stack::before{content:"\f6d2"}.bi-window-x::before{content:"\f6d3"}.bi-xbox::before{content:"\f6d4"}.bi-ethernet::before{content:"\f6d5"}.bi-hdmi-fill::before{content:"\f6d6"}.bi-hdmi::before{content:"\f6d7"}.bi-usb-c-fill::before{content:"\f6d8"}.bi-usb-c::before{content:"\f6d9"}.bi-usb-fill::before{content:"\f6da"}.bi-usb-plug-fill::before{content:"\f6db"}.bi-usb-plug::before{content:"\f6dc"}.bi-usb-symbol::before{content:"\f6dd"}.bi-usb::before{content:"\f6de"}.bi-boombox-fill::before{content:"\f6df"}.bi-displayport::before{content:"\f6e1"}.bi-gpu-card::before{content:"\f6e2"}.bi-memory::before{content:"\f6e3"}.bi-modem-fill::before{content:"\f6e4"}.bi-modem::before{content:"\f6e5"}.bi-motherboard-fill::before{content:"\f6e6"}.bi-motherboard::before{content:"\f6e7"}.bi-optical-audio-fill::before{content:"\f6e8"}.bi-optical-audio::before{content:"\f6e9"}.bi-pci-card::before{content:"\f6ea"}.bi-router-fill::before{content:"\f6eb"}.bi-router::before{content:"\f6ec"}.bi-thunderbolt-fill::before{content:"\f6ef"}.bi-thunderbolt::before{content:"\f6f0"}.bi-usb-drive-fill::before{content:"\f6f1"}.bi-usb-drive::before{content:"\f6f2"}.bi-usb-micro-fill::before{content:"\f6f3"}.bi-usb-micro::before{content:"\f6f4"}.bi-usb-mini-fill::before{content:"\f6f5"}.bi-usb-mini::before{content:"\f6f6"}.bi-cloud-haze2::before{content:"\f6f7"}.bi-device-hdd-fill::before{content:"\f6f8"}.bi-device-hdd::before{content:"\f6f9"}.bi-device-ssd-fill::before{content:"\f6fa"}.bi-device-ssd::before{content:"\f6fb"}.bi-displayport-fill::before{content:"\f6fc"}.bi-mortarboard-fill::before{content:"\f6fd"}.bi-mortarboard::before{content:"\f6fe"}.bi-terminal-x::before{content:"\f6ff"}.bi-arrow-through-heart-fill::before{content:"\f700"}.bi-arrow-through-heart::before{content:"\f701"}.bi-badge-sd-fill::before{content:"\f702"}.bi-badge-sd::before{content:"\f703"}.bi-bag-heart-fill::before{content:"\f704"}.bi-bag-heart::before{content:"\f705"}.bi-balloon-fill::before{content:"\f706"}.bi-balloon-heart-fill::before{content:"\f707"}.bi-balloon-heart::before{content:"\f708"}.bi-balloon::before{content:"\f709"}.bi-box2-fill::before{content:"\f70a"}.bi-box2-heart-fill::before{content:"\f70b"}.bi-box2-heart::before{content:"\f70c"}.bi-box2::before{content:"\f70d"}.bi-braces-asterisk::before{content:"\f70e"}.bi-calendar-heart-fill::before{content:"\f70f"}.bi-calendar-heart::before{content:"\f710"}.bi-calendar2-heart-fill::before{content:"\f711"}.bi-calendar2-heart::before{content:"\f712"}.bi-chat-heart-fill::before{content:"\f713"}.bi-chat-heart::before{content:"\f714"}.bi-chat-left-heart-fill::before{content:"\f715"}.bi-chat-left-heart::before{content:"\f716"}.bi-chat-right-heart-fill::before{content:"\f717"}.bi-chat-right-heart::before{content:"\f718"}.bi-chat-square-heart-fill::before{content:"\f719"}.bi-chat-square-heart::before{content:"\f71a"}.bi-clipboard-check-fill::before{content:"\f71b"}.bi-clipboard-data-fill::before{content:"\f71c"}.bi-clipboard-fill::before{content:"\f71d"}.bi-clipboard-heart-fill::before{content:"\f71e"}.bi-clipboard-heart::before{content:"\f71f"}.bi-clipboard-minus-fill::before{content:"\f720"}.bi-clipboard-plus-fill::before{content:"\f721"}.bi-clipboard-pulse::before{content:"\f722"}.bi-clipboard-x-fill::before{content:"\f723"}.bi-clipboard2-check-fill::before{content:"\f724"}.bi-clipboard2-check::before{content:"\f725"}.bi-clipboard2-data-fill::before{content:"\f726"}.bi-clipboard2-data::before{content:"\f727"}.bi-clipboard2-fill::before{content:"\f728"}.bi-clipboard2-heart-fill::before{content:"\f729"}.bi-clipboard2-heart::before{content:"\f72a"}.bi-clipboard2-minus-fill::before{content:"\f72b"}.bi-clipboard2-minus::before{content:"\f72c"}.bi-clipboard2-plus-fill::before{content:"\f72d"}.bi-clipboard2-plus::before{content:"\f72e"}.bi-clipboard2-pulse-fill::before{content:"\f72f"}.bi-clipboard2-pulse::before{content:"\f730"}.bi-clipboard2-x-fill::before{content:"\f731"}.bi-clipboard2-x::before{content:"\f732"}.bi-clipboard2::before{content:"\f733"}.bi-emoji-kiss-fill::before{content:"\f734"}.bi-emoji-kiss::before{content:"\f735"}.bi-envelope-heart-fill::before{content:"\f736"}.bi-envelope-heart::before{content:"\f737"}.bi-envelope-open-heart-fill::before{content:"\f738"}.bi-envelope-open-heart::before{content:"\f739"}.bi-envelope-paper-fill::before{content:"\f73a"}.bi-envelope-paper-heart-fill::before{content:"\f73b"}.bi-envelope-paper-heart::before{content:"\f73c"}.bi-envelope-paper::before{content:"\f73d"}.bi-filetype-aac::before{content:"\f73e"}.bi-filetype-ai::before{content:"\f73f"}.bi-filetype-bmp::before{content:"\f740"}.bi-filetype-cs::before{content:"\f741"}.bi-filetype-css::before{content:"\f742"}.bi-filetype-csv::before{content:"\f743"}.bi-filetype-doc::before{content:"\f744"}.bi-filetype-docx::before{content:"\f745"}.bi-filetype-exe::before{content:"\f746"}.bi-filetype-gif::before{content:"\f747"}.bi-filetype-heic::before{content:"\f748"}.bi-filetype-html::before{content:"\f749"}.bi-filetype-java::before{content:"\f74a"}.bi-filetype-jpg::before{content:"\f74b"}.bi-filetype-js::before{content:"\f74c"}.bi-filetype-jsx::before{content:"\f74d"}.bi-filetype-key::before{content:"\f74e"}.bi-filetype-m4p::before{content:"\f74f"}.bi-filetype-md::before{content:"\f750"}.bi-filetype-mdx::before{content:"\f751"}.bi-filetype-mov::before{content:"\f752"}.bi-filetype-mp3::before{content:"\f753"}.bi-filetype-mp4::before{content:"\f754"}.bi-filetype-otf::before{content:"\f755"}.bi-filetype-pdf::before{content:"\f756"}.bi-filetype-php::before{content:"\f757"}.bi-filetype-png::before{content:"\f758"}.bi-filetype-ppt::before{content:"\f75a"}.bi-filetype-psd::before{content:"\f75b"}.bi-filetype-py::before{content:"\f75c"}.bi-filetype-raw::before{content:"\f75d"}.bi-filetype-rb::before{content:"\f75e"}.bi-filetype-sass::before{content:"\f75f"}.bi-filetype-scss::before{content:"\f760"}.bi-filetype-sh::before{content:"\f761"}.bi-filetype-svg::before{content:"\f762"}.bi-filetype-tiff::before{content:"\f763"}.bi-filetype-tsx::before{content:"\f764"}.bi-filetype-ttf::before{content:"\f765"}.bi-filetype-txt::before{content:"\f766"}.bi-filetype-wav::before{content:"\f767"}.bi-filetype-woff::before{content:"\f768"}.bi-filetype-xls::before{content:"\f76a"}.bi-filetype-xml::before{content:"\f76b"}.bi-filetype-yml::before{content:"\f76c"}.bi-heart-arrow::before{content:"\f76d"}.bi-heart-pulse-fill::before{content:"\f76e"}.bi-heart-pulse::before{content:"\f76f"}.bi-heartbreak-fill::before{content:"\f770"}.bi-heartbreak::before{content:"\f771"}.bi-hearts::before{content:"\f772"}.bi-hospital-fill::before{content:"\f773"}.bi-hospital::before{content:"\f774"}.bi-house-heart-fill::before{content:"\f775"}.bi-house-heart::before{content:"\f776"}.bi-incognito::before{content:"\f777"}.bi-magnet-fill::before{content:"\f778"}.bi-magnet::before{content:"\f779"}.bi-person-heart::before{content:"\f77a"}.bi-person-hearts::before{content:"\f77b"}.bi-phone-flip::before{content:"\f77c"}.bi-plugin::before{content:"\f77d"}.bi-postage-fill::before{content:"\f77e"}.bi-postage-heart-fill::before{content:"\f77f"}.bi-postage-heart::before{content:"\f780"}.bi-postage::before{content:"\f781"}.bi-postcard-fill::before{content:"\f782"}.bi-postcard-heart-fill::before{content:"\f783"}.bi-postcard-heart::before{content:"\f784"}.bi-postcard::before{content:"\f785"}.bi-search-heart-fill::before{content:"\f786"}.bi-search-heart::before{content:"\f787"}.bi-sliders2-vertical::before{content:"\f788"}.bi-sliders2::before{content:"\f789"}.bi-trash3-fill::before{content:"\f78a"}.bi-trash3::before{content:"\f78b"}.bi-valentine::before{content:"\f78c"}.bi-valentine2::before{content:"\f78d"}.bi-wrench-adjustable-circle-fill::before{content:"\f78e"}.bi-wrench-adjustable-circle::before{content:"\f78f"}.bi-wrench-adjustable::before{content:"\f790"}.bi-filetype-json::before{content:"\f791"}.bi-filetype-pptx::before{content:"\f792"}.bi-filetype-xlsx::before{content:"\f793"}.bi-1-circle-fill::before{content:"\f796"}.bi-1-circle::before{content:"\f797"}.bi-1-square-fill::before{content:"\f798"}.bi-1-square::before{content:"\f799"}.bi-2-circle-fill::before{content:"\f79c"}.bi-2-circle::before{content:"\f79d"}.bi-2-square-fill::before{content:"\f79e"}.bi-2-square::before{content:"\f79f"}.bi-3-circle-fill::before{content:"\f7a2"}.bi-3-circle::before{content:"\f7a3"}.bi-3-square-fill::before{content:"\f7a4"}.bi-3-square::before{content:"\f7a5"}.bi-4-circle-fill::before{content:"\f7a8"}.bi-4-circle::before{content:"\f7a9"}.bi-4-square-fill::before{content:"\f7aa"}.bi-4-square::before{content:"\f7ab"}.bi-5-circle-fill::before{content:"\f7ae"}.bi-5-circle::before{content:"\f7af"}.bi-5-square-fill::before{content:"\f7b0"}.bi-5-square::before{content:"\f7b1"}.bi-6-circle-fill::before{content:"\f7b4"}.bi-6-circle::before{content:"\f7b5"}.bi-6-square-fill::before{content:"\f7b6"}.bi-6-square::before{content:"\f7b7"}.bi-7-circle-fill::before{content:"\f7ba"}.bi-7-circle::before{content:"\f7bb"}.bi-7-square-fill::before{content:"\f7bc"}.bi-7-square::before{content:"\f7bd"}.bi-8-circle-fill::before{content:"\f7c0"}.bi-8-circle::before{content:"\f7c1"}.bi-8-square-fill::before{content:"\f7c2"}.bi-8-square::before{content:"\f7c3"}.bi-9-circle-fill::before{content:"\f7c6"}.bi-9-circle::before{content:"\f7c7"}.bi-9-square-fill::before{content:"\f7c8"}.bi-9-square::before{content:"\f7c9"}.bi-airplane-engines-fill::before{content:"\f7ca"}.bi-airplane-engines::before{content:"\f7cb"}.bi-airplane-fill::before{content:"\f7cc"}.bi-airplane::before{content:"\f7cd"}.bi-alexa::before{content:"\f7ce"}.bi-alipay::before{content:"\f7cf"}.bi-android::before{content:"\f7d0"}.bi-android2::before{content:"\f7d1"}.bi-box-fill::before{content:"\f7d2"}.bi-box-seam-fill::before{content:"\f7d3"}.bi-browser-chrome::before{content:"\f7d4"}.bi-browser-edge::before{content:"\f7d5"}.bi-browser-firefox::before{content:"\f7d6"}.bi-browser-safari::before{content:"\f7d7"}.bi-c-circle-fill::before{content:"\f7da"}.bi-c-circle::before{content:"\f7db"}.bi-c-square-fill::before{content:"\f7dc"}.bi-c-square::before{content:"\f7dd"}.bi-capsule-pill::before{content:"\f7de"}.bi-capsule::before{content:"\f7df"}.bi-car-front-fill::before{content:"\f7e0"}.bi-car-front::before{content:"\f7e1"}.bi-cassette-fill::before{content:"\f7e2"}.bi-cassette::before{content:"\f7e3"}.bi-cc-circle-fill::before{content:"\f7e6"}.bi-cc-circle::before{content:"\f7e7"}.bi-cc-square-fill::before{content:"\f7e8"}.bi-cc-square::before{content:"\f7e9"}.bi-cup-hot-fill::before{content:"\f7ea"}.bi-cup-hot::before{content:"\f7eb"}.bi-currency-rupee::before{content:"\f7ec"}.bi-dropbox::before{content:"\f7ed"}.bi-escape::before{content:"\f7ee"}.bi-fast-forward-btn-fill::before{content:"\f7ef"}.bi-fast-forward-btn::before{content:"\f7f0"}.bi-fast-forward-circle-fill::before{content:"\f7f1"}.bi-fast-forward-circle::before{content:"\f7f2"}.bi-fast-forward-fill::before{content:"\f7f3"}.bi-fast-forward::before{content:"\f7f4"}.bi-filetype-sql::before{content:"\f7f5"}.bi-fire::before{content:"\f7f6"}.bi-google-play::before{content:"\f7f7"}.bi-h-circle-fill::before{content:"\f7fa"}.bi-h-circle::before{content:"\f7fb"}.bi-h-square-fill::before{content:"\f7fc"}.bi-h-square::before{content:"\f7fd"}.bi-indent::before{content:"\f7fe"}.bi-lungs-fill::before{content:"\f7ff"}.bi-lungs::before{content:"\f800"}.bi-microsoft-teams::before{content:"\f801"}.bi-p-circle-fill::before{content:"\f804"}.bi-p-circle::before{content:"\f805"}.bi-p-square-fill::before{content:"\f806"}.bi-p-square::before{content:"\f807"}.bi-pass-fill::before{content:"\f808"}.bi-pass::before{content:"\f809"}.bi-prescription::before{content:"\f80a"}.bi-prescription2::before{content:"\f80b"}.bi-r-circle-fill::before{content:"\f80e"}.bi-r-circle::before{content:"\f80f"}.bi-r-square-fill::before{content:"\f810"}.bi-r-square::before{content:"\f811"}.bi-repeat-1::before{content:"\f812"}.bi-repeat::before{content:"\f813"}.bi-rewind-btn-fill::before{content:"\f814"}.bi-rewind-btn::before{content:"\f815"}.bi-rewind-circle-fill::before{content:"\f816"}.bi-rewind-circle::before{content:"\f817"}.bi-rewind-fill::before{content:"\f818"}.bi-rewind::before{content:"\f819"}.bi-train-freight-front-fill::before{content:"\f81a"}.bi-train-freight-front::before{content:"\f81b"}.bi-train-front-fill::before{content:"\f81c"}.bi-train-front::before{content:"\f81d"}.bi-train-lightrail-front-fill::before{content:"\f81e"}.bi-train-lightrail-front::before{content:"\f81f"}.bi-truck-front-fill::before{content:"\f820"}.bi-truck-front::before{content:"\f821"}.bi-ubuntu::before{content:"\f822"}.bi-unindent::before{content:"\f823"}.bi-unity::before{content:"\f824"}.bi-universal-access-circle::before{content:"\f825"}.bi-universal-access::before{content:"\f826"}.bi-virus::before{content:"\f827"}.bi-virus2::before{content:"\f828"}.bi-wechat::before{content:"\f829"}.bi-yelp::before{content:"\f82a"}.bi-sign-stop-fill::before{content:"\f82b"}.bi-sign-stop-lights-fill::before{content:"\f82c"}.bi-sign-stop-lights::before{content:"\f82d"}.bi-sign-stop::before{content:"\f82e"}.bi-sign-turn-left-fill::before{content:"\f82f"}.bi-sign-turn-left::before{content:"\f830"}.bi-sign-turn-right-fill::before{content:"\f831"}.bi-sign-turn-right::before{content:"\f832"}.bi-sign-turn-slight-left-fill::before{content:"\f833"}.bi-sign-turn-slight-left::before{content:"\f834"}.bi-sign-turn-slight-right-fill::before{content:"\f835"}.bi-sign-turn-slight-right::before{content:"\f836"}.bi-sign-yield-fill::before{content:"\f837"}.bi-sign-yield::before{content:"\f838"}.bi-ev-station-fill::before{content:"\f839"}.bi-ev-station::before{content:"\f83a"}.bi-fuel-pump-diesel-fill::before{content:"\f83b"}.bi-fuel-pump-diesel::before{content:"\f83c"}.bi-fuel-pump-fill::before{content:"\f83d"}.bi-fuel-pump::before{content:"\f83e"}.bi-0-circle-fill::before{content:"\f83f"}.bi-0-circle::before{content:"\f840"}.bi-0-square-fill::before{content:"\f841"}.bi-0-square::before{content:"\f842"}.bi-rocket-fill::before{content:"\f843"}.bi-rocket-takeoff-fill::before{content:"\f844"}.bi-rocket-takeoff::before{content:"\f845"}.bi-rocket::before{content:"\f846"}.bi-stripe::before{content:"\f847"}.bi-subscript::before{content:"\f848"}.bi-superscript::before{content:"\f849"}.bi-trello::before{content:"\f84a"}.bi-envelope-at-fill::before{content:"\f84b"}.bi-envelope-at::before{content:"\f84c"}.bi-regex::before{content:"\f84d"}.bi-text-wrap::before{content:"\f84e"}.bi-sign-dead-end-fill::before{content:"\f84f"}.bi-sign-dead-end::before{content:"\f850"}.bi-sign-do-not-enter-fill::before{content:"\f851"}.bi-sign-do-not-enter::before{content:"\f852"}.bi-sign-intersection-fill::before{content:"\f853"}.bi-sign-intersection-side-fill::before{content:"\f854"}.bi-sign-intersection-side::before{content:"\f855"}.bi-sign-intersection-t-fill::before{content:"\f856"}.bi-sign-intersection-t::before{content:"\f857"}.bi-sign-intersection-y-fill::before{content:"\f858"}.bi-sign-intersection-y::before{content:"\f859"}.bi-sign-intersection::before{content:"\f85a"}.bi-sign-merge-left-fill::before{content:"\f85b"}.bi-sign-merge-left::before{content:"\f85c"}.bi-sign-merge-right-fill::before{content:"\f85d"}.bi-sign-merge-right::before{content:"\f85e"}.bi-sign-no-left-turn-fill::before{content:"\f85f"}.bi-sign-no-left-turn::before{content:"\f860"}.bi-sign-no-parking-fill::before{content:"\f861"}.bi-sign-no-parking::before{content:"\f862"}.bi-sign-no-right-turn-fill::before{content:"\f863"}.bi-sign-no-right-turn::before{content:"\f864"}.bi-sign-railroad-fill::before{content:"\f865"}.bi-sign-railroad::before{content:"\f866"}.bi-building-add::before{content:"\f867"}.bi-building-check::before{content:"\f868"}.bi-building-dash::before{content:"\f869"}.bi-building-down::before{content:"\f86a"}.bi-building-exclamation::before{content:"\f86b"}.bi-building-fill-add::before{content:"\f86c"}.bi-building-fill-check::before{content:"\f86d"}.bi-building-fill-dash::before{content:"\f86e"}.bi-building-fill-down::before{content:"\f86f"}.bi-building-fill-exclamation::before{content:"\f870"}.bi-building-fill-gear::before{content:"\f871"}.bi-building-fill-lock::before{content:"\f872"}.bi-building-fill-slash::before{content:"\f873"}.bi-building-fill-up::before{content:"\f874"}.bi-building-fill-x::before{content:"\f875"}.bi-building-fill::before{content:"\f876"}.bi-building-gear::before{content:"\f877"}.bi-building-lock::before{content:"\f878"}.bi-building-slash::before{content:"\f879"}.bi-building-up::before{content:"\f87a"}.bi-building-x::before{content:"\f87b"}.bi-buildings-fill::before{content:"\f87c"}.bi-buildings::before{content:"\f87d"}.bi-bus-front-fill::before{content:"\f87e"}.bi-bus-front::before{content:"\f87f"}.bi-ev-front-fill::before{content:"\f880"}.bi-ev-front::before{content:"\f881"}.bi-globe-americas::before{content:"\f882"}.bi-globe-asia-australia::before{content:"\f883"}.bi-globe-central-south-asia::before{content:"\f884"}.bi-globe-europe-africa::before{content:"\f885"}.bi-house-add-fill::before{content:"\f886"}.bi-house-add::before{content:"\f887"}.bi-house-check-fill::before{content:"\f888"}.bi-house-check::before{content:"\f889"}.bi-house-dash-fill::before{content:"\f88a"}.bi-house-dash::before{content:"\f88b"}.bi-house-down-fill::before{content:"\f88c"}.bi-house-down::before{content:"\f88d"}.bi-house-exclamation-fill::before{content:"\f88e"}.bi-house-exclamation::before{content:"\f88f"}.bi-house-gear-fill::before{content:"\f890"}.bi-house-gear::before{content:"\f891"}.bi-house-lock-fill::before{content:"\f892"}.bi-house-lock::before{content:"\f893"}.bi-house-slash-fill::before{content:"\f894"}.bi-house-slash::before{content:"\f895"}.bi-house-up-fill::before{content:"\f896"}.bi-house-up::before{content:"\f897"}.bi-house-x-fill::before{content:"\f898"}.bi-house-x::before{content:"\f899"}.bi-person-add::before{content:"\f89a"}.bi-person-down::before{content:"\f89b"}.bi-person-exclamation::before{content:"\f89c"}.bi-person-fill-add::before{content:"\f89d"}.bi-person-fill-check::before{content:"\f89e"}.bi-person-fill-dash::before{content:"\f89f"}.bi-person-fill-down::before{content:"\f8a0"}.bi-person-fill-exclamation::before{content:"\f8a1"}.bi-person-fill-gear::before{content:"\f8a2"}.bi-person-fill-lock::before{content:"\f8a3"}.bi-person-fill-slash::before{content:"\f8a4"}.bi-person-fill-up::before{content:"\f8a5"}.bi-person-fill-x::before{content:"\f8a6"}.bi-person-gear::before{content:"\f8a7"}.bi-person-lock::before{content:"\f8a8"}.bi-person-slash::before{content:"\f8a9"}.bi-person-up::before{content:"\f8aa"}.bi-scooter::before{content:"\f8ab"}.bi-taxi-front-fill::before{content:"\f8ac"}.bi-taxi-front::before{content:"\f8ad"}.bi-amd::before{content:"\f8ae"}.bi-database-add::before{content:"\f8af"}.bi-database-check::before{content:"\f8b0"}.bi-database-dash::before{content:"\f8b1"}.bi-database-down::before{content:"\f8b2"}.bi-database-exclamation::before{content:"\f8b3"}.bi-database-fill-add::before{content:"\f8b4"}.bi-database-fill-check::before{content:"\f8b5"}.bi-database-fill-dash::before{content:"\f8b6"}.bi-database-fill-down::before{content:"\f8b7"}.bi-database-fill-exclamation::before{content:"\f8b8"}.bi-database-fill-gear::before{content:"\f8b9"}.bi-database-fill-lock::before{content:"\f8ba"}.bi-database-fill-slash::before{content:"\f8bb"}.bi-database-fill-up::before{content:"\f8bc"}.bi-database-fill-x::before{content:"\f8bd"}.bi-database-fill::before{content:"\f8be"}.bi-database-gear::before{content:"\f8bf"}.bi-database-lock::before{content:"\f8c0"}.bi-database-slash::before{content:"\f8c1"}.bi-database-up::before{content:"\f8c2"}.bi-database-x::before{content:"\f8c3"}.bi-database::before{content:"\f8c4"}.bi-houses-fill::before{content:"\f8c5"}.bi-houses::before{content:"\f8c6"}.bi-nvidia::before{content:"\f8c7"}.bi-person-vcard-fill::before{content:"\f8c8"}.bi-person-vcard::before{content:"\f8c9"}.bi-sina-weibo::before{content:"\f8ca"}.bi-tencent-qq::before{content:"\f8cb"}.bi-wikipedia::before{content:"\f8cc"}.bi-alphabet-uppercase::before{content:"\f2a5"}.bi-alphabet::before{content:"\f68a"}.bi-amazon::before{content:"\f68d"}.bi-arrows-collapse-vertical::before{content:"\f690"}.bi-arrows-expand-vertical::before{content:"\f695"}.bi-arrows-vertical::before{content:"\f698"}.bi-arrows::before{content:"\f6a2"}.bi-ban-fill::before{content:"\f6a3"}.bi-ban::before{content:"\f6b6"}.bi-bing::before{content:"\f6c2"}.bi-cake::before{content:"\f6e0"}.bi-cake2::before{content:"\f6ed"}.bi-cookie::before{content:"\f6ee"}.bi-copy::before{content:"\f759"}.bi-crosshair::before{content:"\f769"}.bi-crosshair2::before{content:"\f794"}.bi-emoji-astonished-fill::before{content:"\f795"}.bi-emoji-astonished::before{content:"\f79a"}.bi-emoji-grimace-fill::before{content:"\f79b"}.bi-emoji-grimace::before{content:"\f7a0"}.bi-emoji-grin-fill::before{content:"\f7a1"}.bi-emoji-grin::before{content:"\f7a6"}.bi-emoji-surprise-fill::before{content:"\f7a7"}.bi-emoji-surprise::before{content:"\f7ac"}.bi-emoji-tear-fill::before{content:"\f7ad"}.bi-emoji-tear::before{content:"\f7b2"}.bi-envelope-arrow-down-fill::before{content:"\f7b3"}.bi-envelope-arrow-down::before{content:"\f7b8"}.bi-envelope-arrow-up-fill::before{content:"\f7b9"}.bi-envelope-arrow-up::before{content:"\f7be"}.bi-feather::before{content:"\f7bf"}.bi-feather2::before{content:"\f7c4"}.bi-floppy-fill::before{content:"\f7c5"}.bi-floppy::before{content:"\f7d8"}.bi-floppy2-fill::before{content:"\f7d9"}.bi-floppy2::before{content:"\f7e4"}.bi-gitlab::before{content:"\f7e5"}.bi-highlighter::before{content:"\f7f8"}.bi-marker-tip::before{content:"\f802"}.bi-nvme-fill::before{content:"\f803"}.bi-nvme::before{content:"\f80c"}.bi-opencollective::before{content:"\f80d"}.bi-pci-card-network::before{content:"\f8cd"}.bi-pci-card-sound::before{content:"\f8ce"}.bi-radar::before{content:"\f8cf"}.bi-send-arrow-down-fill::before{content:"\f8d0"}.bi-send-arrow-down::before{content:"\f8d1"}.bi-send-arrow-up-fill::before{content:"\f8d2"}.bi-send-arrow-up::before{content:"\f8d3"}.bi-sim-slash-fill::before{content:"\f8d4"}.bi-sim-slash::before{content:"\f8d5"}.bi-sourceforge::before{content:"\f8d6"}.bi-substack::before{content:"\f8d7"}.bi-threads-fill::before{content:"\f8d8"}.bi-threads::before{content:"\f8d9"}.bi-transparency::before{content:"\f8da"}.bi-twitter-x::before{content:"\f8db"}.bi-type-h4::before{content:"\f8dc"}.bi-type-h5::before{content:"\f8dd"}.bi-type-h6::before{content:"\f8de"}.bi-backpack-fill::before{content:"\f8df"}.bi-backpack::before{content:"\f8e0"}.bi-backpack2-fill::before{content:"\f8e1"}.bi-backpack2::before{content:"\f8e2"}.bi-backpack3-fill::before{content:"\f8e3"}.bi-backpack3::before{content:"\f8e4"}.bi-backpack4-fill::before{content:"\f8e5"}.bi-backpack4::before{content:"\f8e6"}.bi-brilliance::before{content:"\f8e7"}.bi-cake-fill::before{content:"\f8e8"}.bi-cake2-fill::before{content:"\f8e9"}.bi-duffle-fill::before{content:"\f8ea"}.bi-duffle::before{content:"\f8eb"}.bi-exposure::before{content:"\f8ec"}.bi-gender-neuter::before{content:"\f8ed"}.bi-highlights::before{content:"\f8ee"}.bi-luggage-fill::before{content:"\f8ef"}.bi-luggage::before{content:"\f8f0"}.bi-mailbox-flag::before{content:"\f8f1"}.bi-mailbox2-flag::before{content:"\f8f2"}.bi-noise-reduction::before{content:"\f8f3"}.bi-passport-fill::before{content:"\f8f4"}.bi-passport::before{content:"\f8f5"}.bi-person-arms-up::before{content:"\f8f6"}.bi-person-raised-hand::before{content:"\f8f7"}.bi-person-standing-dress::before{content:"\f8f8"}.bi-person-standing::before{content:"\f8f9"}.bi-person-walking::before{content:"\f8fa"}.bi-person-wheelchair::before{content:"\f8fb"}.bi-shadows::before{content:"\f8fc"}.bi-suitcase-fill::before{content:"\f8fd"}.bi-suitcase-lg-fill::before{content:"\f8fe"}.bi-suitcase-lg::before{content:"\f8ff"}.bi-suitcase::before{content:"\f900"}.bi-suitcase2-fill::before{content:"\f901"}.bi-suitcase2::before{content:"\f902"}.bi-vignette::before{content:"\f903"}.bi-bluesky::before{content:"\f7f9"}.bi-tux::before{content:"\f904"}.bi-beaker-fill::before{content:"\f905"}.bi-beaker::before{content:"\f906"}.bi-flask-fill::before{content:"\f907"}.bi-flask-florence-fill::before{content:"\f908"}.bi-flask-florence::before{content:"\f909"}.bi-flask::before{content:"\f90a"}.bi-leaf-fill::before{content:"\f90b"}.bi-leaf::before{content:"\f90c"}.bi-measuring-cup-fill::before{content:"\f90d"}.bi-measuring-cup::before{content:"\f90e"}.bi-unlock2-fill::before{content:"\f90f"}.bi-unlock2::before{content:"\f910"}.bi-battery-low::before{content:"\f911"}.bi-anthropic::before{content:"\f912"}.bi-apple-music::before{content:"\f913"}.bi-claude::before{content:"\f914"}.bi-openai::before{content:"\f915"}.bi-perplexity::before{content:"\f916"}.bi-css::before{content:"\f917"}.bi-javascript::before{content:"\f918"}.bi-typescript::before{content:"\f919"}.bi-fork-knife::before{content:"\f91a"}.bi-globe-americas-fill::before{content:"\f91b"}.bi-globe-asia-australia-fill::before{content:"\f91c"}.bi-globe-central-south-asia-fill::before{content:"\f91d"}.bi-globe-europe-africa-fill::before{content:"\f91e"} \ No newline at end of file diff --git a/css/bootstrap-icons.woff b/css/bootstrap-icons.woff new file mode 100644 index 0000000..a4fa4f0 Binary files /dev/null and b/css/bootstrap-icons.woff differ diff --git a/css/bootstrap-icons.woff2 b/css/bootstrap-icons.woff2 new file mode 100644 index 0000000..4d8c490 Binary files /dev/null and b/css/bootstrap-icons.woff2 differ diff --git a/css/jsvectormap.min.css b/css/jsvectormap.min.css new file mode 100644 index 0000000..8c2cbb8 --- /dev/null +++ b/css/jsvectormap.min.css @@ -0,0 +1 @@ +svg{-ms-touch-action:none;touch-action:none}image,text,.jvm-zoomin,.jvm-zoomout{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.jvm-container{-ms-touch-action:none;touch-action:none;position:relative;overflow:hidden;height:100%;width:100%}.jvm-tooltip{border-radius:3px;background-color:#5c5cff;font-family:sans-serif,Verdana;font-size:smaller;box-shadow:1px 2px 12px rgba(0,0,0,0.2);padding:3px 5px;white-space:nowrap;position:absolute;display:none;color:#FFF}.jvm-tooltip.active{display:block}.jvm-zoom-btn{border-radius:3px;background-color:#292929;padding:3px;box-sizing:border-box;position:absolute;line-height:10px;cursor:pointer;color:#FFF;height:15px;width:15px;left:10px}.jvm-zoom-btn.jvm-zoomout{top:30px}.jvm-zoom-btn.jvm-zoomin{top:10px}.jvm-series-container{right:15px;position:absolute}.jvm-series-container.jvm-series-h{bottom:15px}.jvm-series-container.jvm-series-v{top:15px}.jvm-series-container .jvm-legend{background-color:#fff;border:1px solid #e5e7eb;margin-left:.75rem;border-radius:.25rem;border-color:#e5e7eb;padding:.6rem;box-shadow:0 1px 2px 0 rgba(0,0,0,0.05);float:left}.jvm-series-container .jvm-legend .jvm-legend-title{line-height:1;border-bottom:1px solid #e5e7eb;padding-bottom:.5rem;margin-bottom:.575rem;text-align:left}.jvm-series-container .jvm-legend .jvm-legend-inner{overflow:hidden}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick{overflow:hidden;min-width:40px}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick:not(:first-child){margin-top:.575rem}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-sample{border-radius:4px;margin-right:.65rem;height:16px;width:16px;float:left}.jvm-series-container .jvm-legend .jvm-legend-inner .jvm-legend-tick .jvm-legend-tick-text{font-size:12px;text-align:center;float:left}.jvm-line[animation="true"]{-webkit-animation:jvm-line-animation 10s linear forwards infinite;animation:jvm-line-animation 10s linear forwards infinite}@-webkit-keyframes jvm-line-animation{from{stroke-dashoffset:250}}@keyframes jvm-line-animation{from{stroke-dashoffset:250}} diff --git a/css/overlayscrollbars.min.css b/css/overlayscrollbars.min.css new file mode 100644 index 0000000..925d17e --- /dev/null +++ b/css/overlayscrollbars.min.css @@ -0,0 +1,9 @@ +/*! + * OverlayScrollbars + * Version: 2.11.0 + * + * Copyright (c) Rene Haas | KingSora. + * https://github.com/KingSora + * + * Released under the MIT license. + */.os-size-observer,.os-size-observer-listener{box-sizing:border-box;direction:inherit;overflow:hidden;pointer-events:none;scroll-behavior:auto!important;visibility:hidden}.os-size-observer,.os-size-observer-listener,.os-size-observer-listener-item,.os-size-observer-listener-item-final{left:0;position:absolute;top:0;writing-mode:horizontal-tb}.os-size-observer{border:inherit;bottom:0;box-sizing:inherit;contain:strict;display:flex;flex-direction:row;flex-wrap:nowrap;left:0;margin:-133px;padding:inherit;right:0;top:0;transform:scale(.1);z-index:-1}.os-size-observer:before{box-sizing:inherit;content:"";flex:none;height:10px;padding:10px;width:10px}.os-size-observer-appear{animation:os-size-observer-appear-animation 1ms forwards}.os-size-observer-listener{border:inherit;box-sizing:border-box;flex:auto;margin:-133px;padding:inherit;position:relative;transform:scale(10)}.os-size-observer-listener.ltr{margin-left:0;margin-right:-266px}.os-size-observer-listener.rtl{margin-left:-266px;margin-right:0}.os-size-observer-listener:empty:before{content:"";height:100%;width:100%}.os-size-observer-listener:empty:before,.os-size-observer-listener>.os-size-observer-listener-item{border:inherit;box-sizing:content-box;display:block;flex:auto;padding:inherit;position:relative}.os-size-observer-listener-scroll{box-sizing:border-box;display:flex}.os-size-observer-listener-item{bottom:0;direction:ltr;flex:none;overflow:hidden;right:0}.os-size-observer-listener-item-final{transition:none}@keyframes os-size-observer-appear-animation{0%{cursor:auto}to{cursor:none}}.os-trinsic-observer{border:none;box-sizing:border-box;contain:strict;flex:none;height:0;margin:0;max-height:1px;max-width:0;overflow:hidden;padding:0;position:relative;top:calc(100% + 1px);z-index:-1}.os-trinsic-observer:not(:empty){height:calc(100% + 1px);top:-1px}.os-trinsic-observer:not(:empty)>.os-size-observer{height:1000%;min-height:1px;min-width:1px;width:1000%}[data-overlayscrollbars-initialize],[data-overlayscrollbars-viewport~=scrollbarHidden]{scrollbar-width:none!important}[data-overlayscrollbars-initialize]::-webkit-scrollbar,[data-overlayscrollbars-initialize]::-webkit-scrollbar-corner,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar-corner{-webkit-appearance:none!important;appearance:none!important;display:none!important;height:0!important;width:0!important}[data-overlayscrollbars-initialize]:not([data-overlayscrollbars]):not(html):not(body){overflow:auto}html[data-overlayscrollbars-body]{overflow:hidden}html[data-overlayscrollbars-body],html[data-overlayscrollbars-body]>body{height:100%;margin:0;width:100%}html[data-overlayscrollbars-body]>body{margin:0;overflow:visible}[data-overlayscrollbars]{position:relative}[data-overlayscrollbars-padding],[data-overlayscrollbars~=host]{align-items:stretch!important;display:flex;flex-direction:row!important;flex-wrap:nowrap!important;scroll-behavior:auto!important}[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]){border:none;box-sizing:inherit;flex:auto!important;height:auto;margin:0;min-width:0;padding:0;position:relative;width:100%;z-index:0}[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]){--os-vaw:0;--os-vah:0;outline:none}[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]):focus{outline:none}[data-overlayscrollbars-viewport][data-overlayscrollbars-viewport~=arrange]:before{content:"";height:var(--os-vah);min-height:1px;min-width:1px;pointer-events:none;position:absolute;width:var(--os-vaw);z-index:-1}[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport],[data-overlayscrollbars]{overflow:hidden!important}[data-overlayscrollbars-padding~=noClipping],[data-overlayscrollbars~=noClipping]{overflow:visible!important}[data-overlayscrollbars-viewport~=measuring]{overflow:hidden!important;scroll-behavior:auto!important;scroll-snap-type:none!important}[data-overlayscrollbars-viewport~=overflowXVisible]:not([data-overlayscrollbars-viewport~=measuring]){overflow-x:visible!important}[data-overlayscrollbars-viewport~=overflowXHidden]{overflow-x:hidden!important}[data-overlayscrollbars-viewport~=overflowXScroll]{overflow-x:scroll!important}[data-overlayscrollbars-viewport~=overflowYVisible]:not([data-overlayscrollbars-viewport~=measuring]){overflow-y:visible!important}[data-overlayscrollbars-viewport~=overflowYHidden]{overflow-y:hidden!important}[data-overlayscrollbars-viewport~=overflowYScroll]{overflow-y:scroll!important}[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId){font-size:0!important;line-height:0!important}[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId):after,[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId):before,[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId)>*{clip:rect(0,0,0,0)!important;border-width:0!important;display:none!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}[data-overlayscrollbars-viewport~=scrolling]{scroll-behavior:auto!important;scroll-snap-type:none!important}[data-overlayscrollbars-content]{box-sizing:inherit}[data-overlayscrollbars-contents]:not(#osFakeId):not([data-overlayscrollbars-padding]):not([data-overlayscrollbars-viewport]):not([data-overlayscrollbars-content]){display:contents}[data-overlayscrollbars-grid],[data-overlayscrollbars-grid] [data-overlayscrollbars-padding]{display:grid;grid-template:1fr/1fr}[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding],[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding]>[data-overlayscrollbars-viewport],[data-overlayscrollbars-grid]>[data-overlayscrollbars-viewport]{height:auto!important;width:auto!important}@property --os-scroll-percent{syntax:"";inherits:true;initial-value:0}@property --os-viewport-percent{syntax:"";inherits:true;initial-value:0}.os-scrollbar{--os-viewport-percent:0;--os-scroll-percent:0;--os-scroll-direction:0;--os-scroll-percent-directional:calc(var(--os-scroll-percent) - (var(--os-scroll-percent) + (1 - var(--os-scroll-percent))*-1)*var(--os-scroll-direction));contain:size layout;contain:size layout style;opacity:0;pointer-events:none;position:absolute;transition:opacity .15s,visibility .15s,top .15s,right .15s,bottom .15s,left .15s;visibility:hidden}body>.os-scrollbar{position:fixed;z-index:99999}.os-scrollbar-transitionless{transition:none!important}.os-scrollbar-track{border:none!important;padding:0!important;position:relative}.os-scrollbar-handle{position:absolute}.os-scrollbar-handle,.os-scrollbar-track{height:100%;pointer-events:none;width:100%}.os-scrollbar.os-scrollbar-handle-interactive .os-scrollbar-handle,.os-scrollbar.os-scrollbar-track-interactive .os-scrollbar-track{pointer-events:auto;touch-action:none}.os-scrollbar-horizontal{bottom:0;left:0}.os-scrollbar-vertical{right:0;top:0}.os-scrollbar-rtl.os-scrollbar-horizontal{right:0}.os-scrollbar-rtl.os-scrollbar-vertical{left:0;right:auto}.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-auto-hide.os-scrollbar-auto-hide-hidden{opacity:0;visibility:hidden}.os-scrollbar-interaction.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-unusable,.os-scrollbar-unusable *,.os-scrollbar-wheel,.os-scrollbar-wheel *{pointer-events:none!important}.os-scrollbar-unusable .os-scrollbar-handle{opacity:0!important;transition:none!important}.os-scrollbar-horizontal .os-scrollbar-handle{bottom:0;left:calc(var(--os-scroll-percent-directional)*100%);transform:translateX(calc(var(--os-scroll-percent-directional)*-100%));width:calc(var(--os-viewport-percent)*100%)}.os-scrollbar-vertical .os-scrollbar-handle{height:calc(var(--os-viewport-percent)*100%);right:0;top:calc(var(--os-scroll-percent-directional)*100%);transform:translateY(calc(var(--os-scroll-percent-directional)*-100%))}@supports (container-type:size){.os-scrollbar-track{container-type:size}.os-scrollbar-horizontal .os-scrollbar-handle{left:auto;transform:translateX(calc(var(--os-scroll-percent-directional)*100cqw + var(--os-scroll-percent-directional)*-100%))}.os-scrollbar-vertical .os-scrollbar-handle{top:auto;transform:translateY(calc(var(--os-scroll-percent-directional)*100cqh + var(--os-scroll-percent-directional)*-100%))}.os-scrollbar-rtl.os-scrollbar-horizontal .os-scrollbar-handle{left:0;right:auto}}.os-scrollbar-rtl.os-scrollbar-vertical .os-scrollbar-handle{left:0;right:auto}.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless.os-scrollbar-rtl{left:0;right:0}.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless.os-scrollbar-rtl{bottom:0;top:0}@media print{.os-scrollbar{display:none}}.os-scrollbar{--os-size:0;--os-padding-perpendicular:0;--os-padding-axis:0;--os-track-border-radius:0;--os-track-bg:none;--os-track-bg-hover:none;--os-track-bg-active:none;--os-track-border:none;--os-track-border-hover:none;--os-track-border-active:none;--os-handle-border-radius:0;--os-handle-bg:none;--os-handle-bg-hover:none;--os-handle-bg-active:none;--os-handle-border:none;--os-handle-border-hover:none;--os-handle-border-active:none;--os-handle-min-size:33px;--os-handle-max-size:none;--os-handle-perpendicular-size:100%;--os-handle-perpendicular-size-hover:100%;--os-handle-perpendicular-size-active:100%;--os-handle-interactive-area-offset:0}.os-scrollbar-track{background:var(--os-track-bg);border:var(--os-track-border);border-radius:var(--os-track-border-radius);transition:opacity .15s,background-color .15s,border-color .15s}.os-scrollbar-track:hover{background:var(--os-track-bg-hover);border:var(--os-track-border-hover)}.os-scrollbar-track:active{background:var(--os-track-bg-active);border:var(--os-track-border-active)}.os-scrollbar-handle{background:var(--os-handle-bg);border:var(--os-handle-border);border-radius:var(--os-handle-border-radius)}.os-scrollbar-handle:hover{background:var(--os-handle-bg-hover);border:var(--os-handle-border-hover)}.os-scrollbar-handle:active{background:var(--os-handle-bg-active);border:var(--os-handle-border-active)}.os-scrollbar-handle:before,.os-scrollbar-track:before{bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}.os-scrollbar-horizontal{height:var(--os-size);padding:var(--os-padding-perpendicular) var(--os-padding-axis);right:var(--os-size)}.os-scrollbar-horizontal.os-scrollbar-rtl{left:var(--os-size);right:0}.os-scrollbar-horizontal .os-scrollbar-track:before{bottom:calc(var(--os-padding-perpendicular)*-1);top:calc(var(--os-padding-perpendicular)*-1)}.os-scrollbar-horizontal .os-scrollbar-handle{height:var(--os-handle-perpendicular-size);max-width:var(--os-handle-max-size);min-width:var(--os-handle-min-size);transition:opacity .15s,background-color .15s,border-color .15s,height .15s}.os-scrollbar-horizontal .os-scrollbar-handle:before{bottom:calc(var(--os-padding-perpendicular)*-1);top:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset))*-1)}.os-scrollbar-horizontal:hover .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-horizontal:active .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-active)}.os-scrollbar-vertical{bottom:var(--os-size);padding:var(--os-padding-axis) var(--os-padding-perpendicular);width:var(--os-size)}.os-scrollbar-vertical .os-scrollbar-track:before{left:calc(var(--os-padding-perpendicular)*-1);right:calc(var(--os-padding-perpendicular)*-1)}.os-scrollbar-vertical .os-scrollbar-handle{max-height:var(--os-handle-max-size);min-height:var(--os-handle-min-size);transition:opacity .15s,background-color .15s,border-color .15s,width .15s;width:var(--os-handle-perpendicular-size)}.os-scrollbar-vertical .os-scrollbar-handle:before{left:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset))*-1);right:calc(var(--os-padding-perpendicular)*-1)}.os-scrollbar-vertical.os-scrollbar-rtl .os-scrollbar-handle:before{left:calc(var(--os-padding-perpendicular)*-1);right:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset))*-1)}.os-scrollbar-vertical:hover .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-vertical:active .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-active)}.os-theme-none.os-scrollbar,[data-overlayscrollbars-viewport~=measuring]>.os-scrollbar{display:none!important}.os-theme-dark,.os-theme-light{--os-size:10px;--os-padding-perpendicular:2px;--os-padding-axis:2px;--os-track-border-radius:10px;--os-handle-interactive-area-offset:4px;--os-handle-border-radius:10px;box-sizing:border-box}.os-theme-dark{--os-handle-bg:rgba(0,0,0,.44);--os-handle-bg-hover:rgba(0,0,0,.55);--os-handle-bg-active:rgba(0,0,0,.66)}.os-theme-light{--os-handle-bg:hsla(0,0%,100%,.44);--os-handle-bg-hover:hsla(0,0%,100%,.55);--os-handle-bg-active:hsla(0,0%,100%,.66)} \ No newline at end of file diff --git a/css/solar.css b/css/solar.css new file mode 100644 index 0000000..c52d7f1 --- /dev/null +++ b/css/solar.css @@ -0,0 +1,13 @@ +.winddir { + position:absolute; + left:60%; + width:25%; + height:40%; + padding: 0; + background-image: url('../assets/img/arrow.svg'); + background-size:contain; + background-repeat: no-repeat; + background-position: center; + } + + \ No newline at end of file diff --git a/database_schema.sql b/database_schema.sql deleted file mode 100644 index cb8315e..0000000 --- a/database_schema.sql +++ /dev/null @@ -1,181 +0,0 @@ --- ============================================================================ --- Somfy Tahoma Datenbank Schema --- Normalisierte Struktur für Aktoren, Sensoren und ihre Parameter --- ============================================================================ - --- Datenbank erstellen (falls noch nicht vorhanden) --- CREATE DATABASE IF NOT EXISTS EnergyFlow CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; --- USE EnergyFlow; - --- ============================================================================ --- HAUPTTABELLEN --- ============================================================================ - --- Tabelle: actors --- Speichert alle Aktoren (Geräte mit Steuerungsfunktion) -CREATE TABLE IF NOT EXISTS `actors` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `type` varchar(50) NOT NULL COMMENT 'Gerätetyp z.B. RollerShutter', - `name` varchar(70) NOT NULL COMMENT 'Name des Geräts', - `parameters` text DEFAULT NULL COMMENT 'Zusätzliche Meta-Informationen als JSON', - `url` varchar(100) NOT NULL COMMENT 'Tahoma Device URL', - PRIMARY KEY (`id`), - UNIQUE KEY `url` (`url`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; - --- Tabelle: sensors --- Speichert alle Sensoren (Geräte die Werte melden) -CREATE TABLE IF NOT EXISTS `sensors` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `type` varchar(50) NOT NULL COMMENT 'Sensortyp z.B. TemperatureSensor', - `name` varchar(70) NOT NULL COMMENT 'Name des Sensors', - `parameters` text DEFAULT NULL COMMENT 'Zusätzliche Meta-Informationen als JSON', - `url` varchar(100) NOT NULL COMMENT 'Tahoma Device URL', - PRIMARY KEY (`id`), - UNIQUE KEY `url` (`url`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; - --- ============================================================================ --- AKTOR-BEZOGENE TABELLEN --- ============================================================================ - --- Tabelle: actor_commands --- Speichert alle verfügbaren Commands für jeden Aktor -CREATE TABLE IF NOT EXISTS `actor_commands` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `actor_id` int(11) NOT NULL COMMENT 'Referenz zum Aktor', - `command_name` varchar(100) NOT NULL COMMENT 'Name des Commands z.B. setPosition, open, close', - PRIMARY KEY (`id`), - KEY `actor_id` (`actor_id`), - CONSTRAINT `fk_actor_commands_actor` - FOREIGN KEY (`actor_id`) REFERENCES `actors`(`id`) - ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; - --- Tabelle: command_parameters --- Speichert die Parameter für jeden Command -CREATE TABLE IF NOT EXISTS `command_parameters` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `command_id` int(11) NOT NULL COMMENT 'Referenz zum Command', - `parameter_name` varchar(100) NOT NULL COMMENT 'Name des Parameters z.B. position', - `parameter_type` varchar(50) DEFAULT NULL COMMENT 'Datentyp z.B. integer, string', - `min_value` decimal(10,2) DEFAULT NULL COMMENT 'Minimaler Wert (falls numerisch)', - `max_value` decimal(10,2) DEFAULT NULL COMMENT 'Maximaler Wert (falls numerisch)', - `possible_values` text DEFAULT NULL COMMENT 'JSON Array mit möglichen Werten (für Enums)', - PRIMARY KEY (`id`), - KEY `command_id` (`command_id`), - CONSTRAINT `fk_command_parameters_command` - FOREIGN KEY (`command_id`) REFERENCES `actor_commands`(`id`) - ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; - --- ============================================================================ --- SENSOR-BEZOGENE TABELLEN --- ============================================================================ - --- Tabelle: sensor_states --- Speichert alle verfügbaren States für jeden Sensor -CREATE TABLE IF NOT EXISTS `sensor_states` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `sensor_id` int(11) NOT NULL COMMENT 'Referenz zum Sensor', - `state_name` varchar(100) NOT NULL COMMENT 'Name des State z.B. core:TemperatureState', - `state_type` int(11) DEFAULT NULL COMMENT 'State-Typ Code aus Tahoma API', - `current_value` varchar(255) DEFAULT NULL COMMENT 'Aktueller Wert des State', - `unit` varchar(20) DEFAULT NULL COMMENT 'Einheit z.B. °C, %, lux', - `last_updated` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - KEY `sensor_id` (`sensor_id`), - CONSTRAINT `fk_sensor_states_sensor` - FOREIGN KEY (`sensor_id`) REFERENCES `sensors`(`id`) - ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; - --- ============================================================================ --- GEMEINSAME TABELLE FÜR ACTOR STATES (optional) --- ============================================================================ - --- Tabelle: actor_states --- Speichert die aktuellen States von Aktoren (z.B. aktuelle Position) -CREATE TABLE IF NOT EXISTS `actor_states` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `actor_id` int(11) NOT NULL COMMENT 'Referenz zum Aktor', - `state_name` varchar(100) NOT NULL COMMENT 'Name des State z.B. core:ClosureState', - `state_type` int(11) DEFAULT NULL COMMENT 'State-Typ Code aus Tahoma API', - `current_value` varchar(255) DEFAULT NULL COMMENT 'Aktueller Wert des State', - `unit` varchar(20) DEFAULT NULL COMMENT 'Einheit falls vorhanden', - `last_updated` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - KEY `actor_id` (`actor_id`), - CONSTRAINT `fk_actor_states_actor` - FOREIGN KEY (`actor_id`) REFERENCES `actors`(`id`) - ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; - --- ============================================================================ --- INDIZES FÜR PERFORMANCE --- ============================================================================ - --- Zusätzliche Indizes für häufige Queries -CREATE INDEX idx_actors_type ON actors(type); -CREATE INDEX idx_sensors_type ON sensors(type); -CREATE INDEX idx_actor_commands_name ON actor_commands(command_name); -CREATE INDEX idx_sensor_states_name ON sensor_states(state_name); -CREATE INDEX idx_actor_states_name ON actor_states(state_name); - --- ============================================================================ --- VIEWS (optional - für einfachere Queries) --- ============================================================================ - --- View: Alle Aktoren mit ihren Commands -CREATE OR REPLACE VIEW view_actors_with_commands AS -SELECT - a.id as actor_id, - a.name as actor_name, - a.type as actor_type, - a.url as actor_url, - ac.id as command_id, - ac.command_name, - cp.parameter_name, - cp.parameter_type, - cp.min_value, - cp.max_value, - cp.possible_values -FROM actors a -LEFT JOIN actor_commands ac ON a.id = ac.actor_id -LEFT JOIN command_parameters cp ON ac.id = cp.command_id -ORDER BY a.id, ac.id, cp.id; - --- View: Alle Sensoren mit ihren States -CREATE OR REPLACE VIEW view_sensors_with_states AS -SELECT - s.id as sensor_id, - s.name as sensor_name, - s.type as sensor_type, - s.url as sensor_url, - ss.state_name, - ss.state_type, - ss.current_value, - ss.unit, - ss.last_updated -FROM sensors s -LEFT JOIN sensor_states ss ON s.id = ss.sensor_id -ORDER BY s.id, ss.id; - --- View: Übersicht aller Geräte -CREATE OR REPLACE VIEW view_all_devices AS -SELECT - 'actor' as device_category, - id, - type, - name, - url -FROM actors -UNION ALL -SELECT - 'sensor' as device_category, - id, - type, - name, - url -FROM sensors -ORDER BY device_category, name; diff --git a/helper.php b/helper.php new file mode 100644 index 0000000..bf13210 --- /dev/null +++ b/helper.php @@ -0,0 +1,52 @@ + DATE_SUB(NOW(), INTERVAL 2 DAY) AND authKey = '".mysqli_real_escape_string($mysql,$_SESSION["authKey"])."' AND name = '".mysqli_real_escape_string($mysql,$_SESSION["user"])."';"); + if(!$res){ + echo mysqli_error($mysql); + return false; + } + if(mysqli_num_rows($res) == 1){ + return isset($_SESSION["Logged"]); + } + }else{ + return false; + } +} + +function checkAdduser(){ + $mysql = new mysqli($GLOBALS["mysql_server"],$GLOBALS["mysql_user"],$GLOBALS["mysql_pass"],$GLOBALS["mysql_db"]); + if(!mysqli_query($mysql,"DELETE FROM addUser WHERE datetime < DATE_SUB(NOW(), INTERVAL 1 MINUTE);")){ + echo mysqli_error($mysql); + } + $result = mysqli_query($mysql,"SELECT * FROM addUser WHERE accesskey='".mysqli_real_escape_string($mysql,$_GET["addUser"])."';"); + if(!$result){ + return false; + } + if ($result->num_rows > 0) { + return true; + } + return false; +} + +?> \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..d587f6b --- /dev/null +++ b/index.php @@ -0,0 +1,143 @@ + + + + Smarthome control + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ENDE; + } +} else if (checkLogin()) { + + include "restricted/header.php"; + + if(!isset($_GET["action"])){ + $_GET["action"] = "solar"; + } + $resource_content = ""; + switch($_GET["action"]){ + case "solar": + $resource_content .= str_replace("%%INSERTSVG%%", file_get_contents('assets/img/realtime.svg'), file_get_contents('restricted/solar.html')); + $resource_content .= file_get_contents('restricted/footer.html'); + $resource_content .= ""; + break; + case "home": + include "restricted/home.php"; + $resource_content .= file_get_contents('restricted/footer.html'); + $resource_content .= ""; + $resource_content .= ""; + break; + case "heat": + $resource_content .= file_get_contents('restricted/heat.html'); + $resource_content .= file_get_contents('restricted/footer.html'); + $resource_content .= ""; + break; + case "history": + $resource_content .= file_get_contents('restricted/history.html'); + $resource_content .= file_get_contents('restricted/footer.html'); + $resource_content .= ""; + break; + } + + + + echo $resource_content; +} else { + echo << + + + + + +ENDE; +} diff --git a/js/Sortable.min.js b/js/Sortable.min.js new file mode 100644 index 0000000..17bb16c --- /dev/null +++ b/js/Sortable.min.js @@ -0,0 +1,2 @@ +/*! Sortable 1.15.0 - MIT | git://github.com/SortableJS/Sortable.git */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Sortable=e()}(this,function(){"use strict";function e(e,t){var n,o=Object.keys(e);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(e),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)),o}function M(o){for(var t=1;tt.length)&&(e=t.length);for(var n=0,o=new Array(e);n"===e[0]&&(e=e.substring(1)),t))try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(t){return}}function N(t,e,n,o){if(t){n=n||document;do{if(null!=e&&(">"!==e[0]||t.parentNode===n)&&p(t,e)||o&&t===n)return t}while(t!==n&&(t=(i=t).host&&i!==document&&i.host.nodeType?i.host:i.parentNode))}var i;return null}var g,m=/\s+/g;function I(t,e,n){var o;t&&e&&(t.classList?t.classList[n?"add":"remove"](e):(o=(" "+t.className+" ").replace(m," ").replace(" "+e+" "," "),t.className=(o+(n?" "+e:"")).replace(m," ")))}function P(t,e,n){var o=t&&t.style;if(o){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(n=t.currentStyle),void 0===e?n:n[e];o[e=!(e in o||-1!==e.indexOf("webkit"))?"-webkit-"+e:e]=n+("string"==typeof n?"":"px")}}function v(t,e){var n="";if("string"==typeof t)n=t;else do{var o=P(t,"transform")}while(o&&"none"!==o&&(n=o+" "+n),!e&&(t=t.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function b(t,e,n){if(t){var o=t.getElementsByTagName(e),i=0,r=o.length;if(n)for(;i=n.left-e&&i<=n.right+e,e=r>=n.top-e&&r<=n.bottom+e;return o&&e?a=t:void 0}}),a);if(e){var n,o={};for(n in t)t.hasOwnProperty(n)&&(o[n]=t[n]);o.target=o.rootEl=e,o.preventDefault=void 0,o.stopPropagation=void 0,e[j]._onDragOver(o)}}var i,r,a}function Yt(t){q&&q.parentNode[j]._isOutsideThisEl(t.target)}function Bt(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=a({},e),t[j]=this;var n,o,i={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return It(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Bt.supportPointer&&"PointerEvent"in window&&!u,emptyInsertThreshold:5};for(n in K.initializePlugins(this,t,i),i)n in e||(e[n]=i[n]);for(o in Pt(e),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!e.forceFallback&&Mt,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?h(t,"pointerdown",this._onTapStart):(h(t,"mousedown",this._onTapStart),h(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(h(t,"dragover",this),h(t,"dragenter",this)),Et.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),a(this,x())}function Ft(t,e,n,o,i,r,a,l){var s,c,u=t[j],d=u.options.onMove;return!window.CustomEvent||y||w?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=e,s.from=t,s.dragged=n,s.draggedRect=o,s.related=i||e,s.relatedRect=r||k(e),s.willInsertAfter=l,s.originalEvent=a,t.dispatchEvent(s),c=d?d.call(u,s,a):c}function jt(t){t.draggable=!1}function Ht(){Ct=!1}function Lt(t){return setTimeout(t,0)}function Kt(t){return clearTimeout(t)}Bt.prototype={constructor:Bt,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(gt=null)},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,q):this.options.direction},_onTapStart:function(e){if(e.cancelable){var n=this,o=this.el,t=this.options,i=t.preventOnFilter,r=e.type,a=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,l=(a||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=t.filter;if(!function(t){Tt.length=0;var e=t.getElementsByTagName("input"),n=e.length;for(;n--;){var o=e[n];o.checked&&Tt.push(o)}}(o),!q&&!(/mousedown|pointerdown/.test(r)&&0!==e.button||t.disabled)&&!s.isContentEditable&&(this.nativeDraggable||!u||!l||"SELECT"!==l.tagName.toUpperCase())&&!((l=N(l,t.draggable,o,!1))&&l.animated||J===l)){if(nt=B(l),it=B(l,t.draggable),"function"==typeof c){if(c.call(this,e,l,this))return U({sortable:n,rootEl:s,name:"filter",targetEl:l,toEl:o,fromEl:o}),z("filter",n,{evt:e}),void(i&&e.cancelable&&e.preventDefault())}else if(c=c&&c.split(",").some(function(t){if(t=N(s,t.trim(),o,!1))return U({sortable:n,rootEl:t,name:"filter",targetEl:l,fromEl:o,toEl:o}),z("filter",n,{evt:e}),!0}))return void(i&&e.cancelable&&e.preventDefault());t.handle&&!N(s,t.handle,o,!1)||this._prepareDragStart(e,a,l)}}},_prepareDragStart:function(t,e,n){var o,i=this,r=i.el,a=i.options,l=r.ownerDocument;n&&!q&&n.parentNode===r&&(o=k(n),$=r,V=(q=n).parentNode,Q=q.nextSibling,J=n,at=a.group,st={target:Bt.dragged=q,clientX:(e||t).clientX,clientY:(e||t).clientY},ht=st.clientX-o.left,ft=st.clientY-o.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,q.style["will-change"]="all",o=function(){z("delayEnded",i,{evt:t}),Bt.eventCanceled?i._onDrop():(i._disableDelayedDragEvents(),!s&&i.nativeDraggable&&(q.draggable=!0),i._triggerDragStart(t,e),U({sortable:i,name:"choose",originalEvent:t}),I(q,a.chosenClass,!0))},a.ignore.split(",").forEach(function(t){b(q,t.trim(),jt)}),h(l,"dragover",Xt),h(l,"mousemove",Xt),h(l,"touchmove",Xt),h(l,"mouseup",i._onDrop),h(l,"touchend",i._onDrop),h(l,"touchcancel",i._onDrop),s&&this.nativeDraggable&&(this.options.touchStartThreshold=4,q.draggable=!0),z("delayStart",this,{evt:t}),!a.delay||a.delayOnTouchOnly&&!e||this.nativeDraggable&&(w||y)?o():Bt.eventCanceled?this._onDrop():(h(l,"mouseup",i._disableDelayedDrag),h(l,"touchend",i._disableDelayedDrag),h(l,"touchcancel",i._disableDelayedDrag),h(l,"mousemove",i._delayedDragTouchMoveHandler),h(l,"touchmove",i._delayedDragTouchMoveHandler),a.supportPointer&&h(l,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(o,a.delay)))},_delayedDragTouchMoveHandler:function(t){t=t.touches?t.touches[0]:t;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){q&&jt(q),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;f(t,"mouseup",this._disableDelayedDrag),f(t,"touchend",this._disableDelayedDrag),f(t,"touchcancel",this._disableDelayedDrag),f(t,"mousemove",this._delayedDragTouchMoveHandler),f(t,"touchmove",this._delayedDragTouchMoveHandler),f(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?h(document,"pointermove",this._onTouchMove):h(document,e?"touchmove":"mousemove",this._onTouchMove):(h(q,"dragend",this),h($,"dragstart",this._onDragStart));try{document.selection?Lt(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(t){}},_dragStarted:function(t,e){var n;yt=!1,$&&q?(z("dragStarted",this,{evt:e}),this.nativeDraggable&&h(document,"dragover",Yt),n=this.options,t||I(q,n.dragClass,!1),I(q,n.ghostClass,!0),Bt.active=this,t&&this._appendGhost(),U({sortable:this,name:"start",originalEvent:e})):this._nulling()},_emulateDragOver:function(){if(ct){this._lastX=ct.clientX,this._lastY=ct.clientY,kt();for(var t=document.elementFromPoint(ct.clientX,ct.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(ct.clientX,ct.clientY))!==e;)e=t;if(q.parentNode[j]._isOutsideThisEl(t),e)do{if(e[j])if(e[j]._onDragOver({clientX:ct.clientX,clientY:ct.clientY,target:t,rootEl:e})&&!this.options.dragoverBubble)break}while(e=(t=e).parentNode);Rt()}},_onTouchMove:function(t){if(st){var e=this.options,n=e.fallbackTolerance,o=e.fallbackOffset,i=t.touches?t.touches[0]:t,r=Z&&v(Z,!0),a=Z&&r&&r.a,l=Z&&r&&r.d,e=Ot&&bt&&E(bt),a=(i.clientX-st.clientX+o.x)/(a||1)+(e?e[0]-_t[0]:0)/(a||1),l=(i.clientY-st.clientY+o.y)/(l||1)+(e?e[1]-_t[1]:0)/(l||1);if(!Bt.active&&!yt){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))n.right+10||t.clientX<=n.right&&t.clientY>n.bottom&&t.clientX>=n.left:t.clientX>n.right&&t.clientY>n.top||t.clientX<=n.right&&t.clientY>n.bottom+10}(n,r,this)&&!g.animated){if(g===q)return O(!1);if((l=g&&a===n.target?g:l)&&(w=k(l)),!1!==Ft($,a,q,o,l,w,n,!!l))return x(),g&&g.nextSibling?a.insertBefore(q,g.nextSibling):a.appendChild(q),V=a,A(),O(!0)}else if(g&&function(t,e,n){n=k(X(n.el,0,n.options,!0));return e?t.clientX + * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.adminlte = {})); +})(this, (function (exports) { 'use strict'; + + const domContentLoadedCallbacks = []; + const onDOMContentLoaded = (callback) => { + if (document.readyState === 'loading') { + // add listener on the first call when the document is in loading state + if (!domContentLoadedCallbacks.length) { + document.addEventListener('DOMContentLoaded', () => { + for (const callback of domContentLoadedCallbacks) { + callback(); + } + }); + } + domContentLoadedCallbacks.push(callback); + } + else { + callback(); + } + }; + /* SLIDE UP */ + const slideUp = (target, duration = 500) => { + target.style.transitionProperty = 'height, margin, padding'; + target.style.transitionDuration = `${duration}ms`; + target.style.boxSizing = 'border-box'; + target.style.height = `${target.offsetHeight}px`; + target.style.overflow = 'hidden'; + globalThis.setTimeout(() => { + target.style.height = '0'; + target.style.paddingTop = '0'; + target.style.paddingBottom = '0'; + target.style.marginTop = '0'; + target.style.marginBottom = '0'; + }, 1); + globalThis.setTimeout(() => { + target.style.display = 'none'; + target.style.removeProperty('height'); + target.style.removeProperty('padding-top'); + target.style.removeProperty('padding-bottom'); + target.style.removeProperty('margin-top'); + target.style.removeProperty('margin-bottom'); + target.style.removeProperty('overflow'); + target.style.removeProperty('transition-duration'); + target.style.removeProperty('transition-property'); + }, duration); + }; + /* SLIDE DOWN */ + const slideDown = (target, duration = 500) => { + target.style.removeProperty('display'); + let { display } = globalThis.getComputedStyle(target); + if (display === 'none') { + display = 'block'; + } + target.style.display = display; + const height = target.offsetHeight; + target.style.overflow = 'hidden'; + target.style.height = '0'; + target.style.paddingTop = '0'; + target.style.paddingBottom = '0'; + target.style.marginTop = '0'; + target.style.marginBottom = '0'; + globalThis.setTimeout(() => { + target.style.boxSizing = 'border-box'; + target.style.transitionProperty = 'height, margin, padding'; + target.style.transitionDuration = `${duration}ms`; + target.style.height = `${height}px`; + target.style.removeProperty('padding-top'); + target.style.removeProperty('padding-bottom'); + target.style.removeProperty('margin-top'); + target.style.removeProperty('margin-bottom'); + }, 1); + globalThis.setTimeout(() => { + target.style.removeProperty('height'); + target.style.removeProperty('overflow'); + target.style.removeProperty('transition-duration'); + target.style.removeProperty('transition-property'); + }, duration); + }; + + /** + * -------------------------------------------- + * @file AdminLTE layout.ts + * @description Layout for AdminLTE. + * @license MIT + * -------------------------------------------- + */ + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + const CLASS_NAME_HOLD_TRANSITIONS = 'hold-transition'; + const CLASS_NAME_APP_LOADED = 'app-loaded'; + /** + * Class Definition + * ==================================================== + */ + class Layout { + _element; + constructor(element) { + this._element = element; + } + holdTransition() { + let resizeTimer; + window.addEventListener('resize', () => { + document.body.classList.add(CLASS_NAME_HOLD_TRANSITIONS); + clearTimeout(resizeTimer); + resizeTimer = setTimeout(() => { + document.body.classList.remove(CLASS_NAME_HOLD_TRANSITIONS); + }, 400); + }); + } + } + onDOMContentLoaded(() => { + const data = new Layout(document.body); + data.holdTransition(); + setTimeout(() => { + document.body.classList.add(CLASS_NAME_APP_LOADED); + }, 400); + }); + + /** + * -------------------------------------------- + * @file AdminLTE card-widget.ts + * @description Card widget for AdminLTE. + * @license MIT + * -------------------------------------------- + */ + /** + * Constants + * ==================================================== + */ + const DATA_KEY$4 = 'lte.card-widget'; + const EVENT_KEY$4 = `.${DATA_KEY$4}`; + const EVENT_COLLAPSED$2 = `collapsed${EVENT_KEY$4}`; + const EVENT_EXPANDED$2 = `expanded${EVENT_KEY$4}`; + const EVENT_REMOVE = `remove${EVENT_KEY$4}`; + const EVENT_MAXIMIZED$1 = `maximized${EVENT_KEY$4}`; + const EVENT_MINIMIZED$1 = `minimized${EVENT_KEY$4}`; + const CLASS_NAME_CARD = 'card'; + const CLASS_NAME_COLLAPSED = 'collapsed-card'; + const CLASS_NAME_COLLAPSING = 'collapsing-card'; + const CLASS_NAME_EXPANDING = 'expanding-card'; + const CLASS_NAME_WAS_COLLAPSED = 'was-collapsed'; + const CLASS_NAME_MAXIMIZED = 'maximized-card'; + const SELECTOR_DATA_REMOVE = '[data-lte-toggle="card-remove"]'; + const SELECTOR_DATA_COLLAPSE = '[data-lte-toggle="card-collapse"]'; + const SELECTOR_DATA_MAXIMIZE = '[data-lte-toggle="card-maximize"]'; + const SELECTOR_CARD = `.${CLASS_NAME_CARD}`; + const SELECTOR_CARD_BODY = '.card-body'; + const SELECTOR_CARD_FOOTER = '.card-footer'; + const Default$1 = { + animationSpeed: 500, + collapseTrigger: SELECTOR_DATA_COLLAPSE, + removeTrigger: SELECTOR_DATA_REMOVE, + maximizeTrigger: SELECTOR_DATA_MAXIMIZE + }; + class CardWidget { + _element; + _parent; + _clone; + _config; + constructor(element, config) { + this._element = element; + this._parent = element.closest(SELECTOR_CARD); + if (element.classList.contains(CLASS_NAME_CARD)) { + this._parent = element; + } + this._config = { ...Default$1, ...config }; + } + collapse() { + const event = new Event(EVENT_COLLAPSED$2); + if (this._parent) { + this._parent.classList.add(CLASS_NAME_COLLAPSING); + const elm = this._parent?.querySelectorAll(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`); + elm.forEach(el => { + if (el instanceof HTMLElement) { + slideUp(el, this._config.animationSpeed); + } + }); + setTimeout(() => { + if (this._parent) { + this._parent.classList.add(CLASS_NAME_COLLAPSED); + this._parent.classList.remove(CLASS_NAME_COLLAPSING); + } + }, this._config.animationSpeed); + } + this._element?.dispatchEvent(event); + } + expand() { + const event = new Event(EVENT_EXPANDED$2); + if (this._parent) { + this._parent.classList.add(CLASS_NAME_EXPANDING); + const elm = this._parent?.querySelectorAll(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`); + elm.forEach(el => { + if (el instanceof HTMLElement) { + slideDown(el, this._config.animationSpeed); + } + }); + setTimeout(() => { + if (this._parent) { + this._parent.classList.remove(CLASS_NAME_COLLAPSED, CLASS_NAME_EXPANDING); + } + }, this._config.animationSpeed); + } + this._element?.dispatchEvent(event); + } + remove() { + const event = new Event(EVENT_REMOVE); + if (this._parent) { + slideUp(this._parent, this._config.animationSpeed); + } + this._element?.dispatchEvent(event); + } + toggle() { + if (this._parent?.classList.contains(CLASS_NAME_COLLAPSED)) { + this.expand(); + return; + } + this.collapse(); + } + maximize() { + const event = new Event(EVENT_MAXIMIZED$1); + if (this._parent) { + this._parent.style.height = `${this._parent.offsetHeight}px`; + this._parent.style.width = `${this._parent.offsetWidth}px`; + this._parent.style.transition = 'all .15s'; + setTimeout(() => { + const htmlTag = document.querySelector('html'); + if (htmlTag) { + htmlTag.classList.add(CLASS_NAME_MAXIMIZED); + } + if (this._parent) { + this._parent.classList.add(CLASS_NAME_MAXIMIZED); + if (this._parent.classList.contains(CLASS_NAME_COLLAPSED)) { + this._parent.classList.add(CLASS_NAME_WAS_COLLAPSED); + } + } + }, 150); + } + this._element?.dispatchEvent(event); + } + minimize() { + const event = new Event(EVENT_MINIMIZED$1); + if (this._parent) { + this._parent.style.height = 'auto'; + this._parent.style.width = 'auto'; + this._parent.style.transition = 'all .15s'; + setTimeout(() => { + const htmlTag = document.querySelector('html'); + if (htmlTag) { + htmlTag.classList.remove(CLASS_NAME_MAXIMIZED); + } + if (this._parent) { + this._parent.classList.remove(CLASS_NAME_MAXIMIZED); + if (this._parent?.classList.contains(CLASS_NAME_WAS_COLLAPSED)) { + this._parent.classList.remove(CLASS_NAME_WAS_COLLAPSED); + } + } + }, 10); + } + this._element?.dispatchEvent(event); + } + toggleMaximize() { + if (this._parent?.classList.contains(CLASS_NAME_MAXIMIZED)) { + this.minimize(); + return; + } + this.maximize(); + } + } + /** + * + * Data Api implementation + * ==================================================== + */ + onDOMContentLoaded(() => { + const collapseBtn = document.querySelectorAll(SELECTOR_DATA_COLLAPSE); + collapseBtn.forEach(btn => { + btn.addEventListener('click', event => { + event.preventDefault(); + const target = event.target; + const data = new CardWidget(target, Default$1); + data.toggle(); + }); + }); + const removeBtn = document.querySelectorAll(SELECTOR_DATA_REMOVE); + removeBtn.forEach(btn => { + btn.addEventListener('click', event => { + event.preventDefault(); + const target = event.target; + const data = new CardWidget(target, Default$1); + data.remove(); + }); + }); + const maxBtn = document.querySelectorAll(SELECTOR_DATA_MAXIMIZE); + maxBtn.forEach(btn => { + btn.addEventListener('click', event => { + event.preventDefault(); + const target = event.target; + const data = new CardWidget(target, Default$1); + data.toggleMaximize(); + }); + }); + }); + + /** + * -------------------------------------------- + * @file AdminLTE treeview.ts + * @description Treeview plugin for AdminLTE. + * @license MIT + * -------------------------------------------- + */ + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + // const NAME = 'Treeview' + const DATA_KEY$3 = 'lte.treeview'; + const EVENT_KEY$3 = `.${DATA_KEY$3}`; + const EVENT_EXPANDED$1 = `expanded${EVENT_KEY$3}`; + const EVENT_COLLAPSED$1 = `collapsed${EVENT_KEY$3}`; + const EVENT_LOAD_DATA_API = `load${EVENT_KEY$3}`; + const CLASS_NAME_MENU_OPEN$1 = 'menu-open'; + const SELECTOR_NAV_ITEM$1 = '.nav-item'; + const SELECTOR_NAV_LINK = '.nav-link'; + const SELECTOR_TREEVIEW_MENU = '.nav-treeview'; + const SELECTOR_DATA_TOGGLE$1 = '[data-lte-toggle="treeview"]'; + const Default = { + animationSpeed: 300, + accordion: true + }; + /** + * Class Definition + * ==================================================== + */ + class Treeview { + _element; + _config; + constructor(element, config) { + this._element = element; + this._config = { ...Default, ...config }; + } + open() { + const event = new Event(EVENT_EXPANDED$1); + if (this._config.accordion) { + const openMenuList = this._element.parentElement?.querySelectorAll(`${SELECTOR_NAV_ITEM$1}.${CLASS_NAME_MENU_OPEN$1}`); + openMenuList?.forEach(openMenu => { + if (openMenu !== this._element.parentElement) { + openMenu.classList.remove(CLASS_NAME_MENU_OPEN$1); + const childElement = openMenu?.querySelector(SELECTOR_TREEVIEW_MENU); + if (childElement) { + slideUp(childElement, this._config.animationSpeed); + } + } + }); + } + this._element.classList.add(CLASS_NAME_MENU_OPEN$1); + const childElement = this._element?.querySelector(SELECTOR_TREEVIEW_MENU); + if (childElement) { + slideDown(childElement, this._config.animationSpeed); + } + this._element.dispatchEvent(event); + } + close() { + const event = new Event(EVENT_COLLAPSED$1); + this._element.classList.remove(CLASS_NAME_MENU_OPEN$1); + const childElement = this._element?.querySelector(SELECTOR_TREEVIEW_MENU); + if (childElement) { + slideUp(childElement, this._config.animationSpeed); + } + this._element.dispatchEvent(event); + } + toggle() { + if (this._element.classList.contains(CLASS_NAME_MENU_OPEN$1)) { + this.close(); + } + else { + this.open(); + } + } + } + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + onDOMContentLoaded(() => { + const openMenuItems = document.querySelectorAll(`${SELECTOR_NAV_ITEM$1}.${CLASS_NAME_MENU_OPEN$1}`); + openMenuItems.forEach(menuItem => { + const childElement = menuItem.querySelector(SELECTOR_TREEVIEW_MENU); + if (childElement) { + slideDown(childElement, 0); + const event = new Event(EVENT_LOAD_DATA_API); + menuItem.dispatchEvent(event); + } + }); + const button = document.querySelectorAll(SELECTOR_DATA_TOGGLE$1); + button.forEach(btn => { + btn.addEventListener('click', event => { + const target = event.target; + const targetItem = target.closest(SELECTOR_NAV_ITEM$1); + const targetLink = target.closest(SELECTOR_NAV_LINK); + const lteToggleElement = event.currentTarget; + if (target?.getAttribute('href') === '#' || targetLink?.getAttribute('href') === '#') { + event.preventDefault(); + } + if (targetItem) { + // Read data attributes + const accordionAttr = lteToggleElement.dataset.accordion; + const animationSpeedAttr = lteToggleElement.dataset.animationSpeed; + // Build config from data attributes, fallback to Default + const config = { + accordion: accordionAttr === undefined ? Default.accordion : accordionAttr === 'true', + animationSpeed: animationSpeedAttr === undefined ? Default.animationSpeed : Number(animationSpeedAttr) + }; + const data = new Treeview(targetItem, config); + data.toggle(); + } + }); + }); + }); + + /** + * -------------------------------------------- + * @file AdminLTE direct-chat.ts + * @description Direct chat for AdminLTE. + * @license MIT + * -------------------------------------------- + */ + /** + * Constants + * ==================================================== + */ + const DATA_KEY$2 = 'lte.direct-chat'; + const EVENT_KEY$2 = `.${DATA_KEY$2}`; + const EVENT_EXPANDED = `expanded${EVENT_KEY$2}`; + const EVENT_COLLAPSED = `collapsed${EVENT_KEY$2}`; + const SELECTOR_DATA_TOGGLE = '[data-lte-toggle="chat-pane"]'; + const SELECTOR_DIRECT_CHAT = '.direct-chat'; + const CLASS_NAME_DIRECT_CHAT_OPEN = 'direct-chat-contacts-open'; + /** + * Class Definition + * ==================================================== + */ + class DirectChat { + _element; + constructor(element) { + this._element = element; + } + toggle() { + if (this._element.classList.contains(CLASS_NAME_DIRECT_CHAT_OPEN)) { + const event = new Event(EVENT_COLLAPSED); + this._element.classList.remove(CLASS_NAME_DIRECT_CHAT_OPEN); + this._element.dispatchEvent(event); + } + else { + const event = new Event(EVENT_EXPANDED); + this._element.classList.add(CLASS_NAME_DIRECT_CHAT_OPEN); + this._element.dispatchEvent(event); + } + } + } + /** + * + * Data Api implementation + * ==================================================== + */ + onDOMContentLoaded(() => { + const button = document.querySelectorAll(SELECTOR_DATA_TOGGLE); + button.forEach(btn => { + btn.addEventListener('click', event => { + event.preventDefault(); + const target = event.target; + const chatPane = target.closest(SELECTOR_DIRECT_CHAT); + if (chatPane) { + const data = new DirectChat(chatPane); + data.toggle(); + } + }); + }); + }); + + /** + * -------------------------------------------- + * @file AdminLTE fullscreen.ts + * @description Fullscreen plugin for AdminLTE. + * @license MIT + * -------------------------------------------- + */ + /** + * Constants + * ============================================================================ + */ + const DATA_KEY$1 = 'lte.fullscreen'; + const EVENT_KEY$1 = `.${DATA_KEY$1}`; + const EVENT_MAXIMIZED = `maximized${EVENT_KEY$1}`; + const EVENT_MINIMIZED = `minimized${EVENT_KEY$1}`; + const SELECTOR_FULLSCREEN_TOGGLE = '[data-lte-toggle="fullscreen"]'; + const SELECTOR_MAXIMIZE_ICON = '[data-lte-icon="maximize"]'; + const SELECTOR_MINIMIZE_ICON = '[data-lte-icon="minimize"]'; + /** + * Class Definition. + * ============================================================================ + */ + class FullScreen { + _element; + _config; + constructor(element, config) { + this._element = element; + this._config = config; + } + inFullScreen() { + const event = new Event(EVENT_MAXIMIZED); + const iconMaximize = document.querySelector(SELECTOR_MAXIMIZE_ICON); + const iconMinimize = document.querySelector(SELECTOR_MINIMIZE_ICON); + void document.documentElement.requestFullscreen(); + if (iconMaximize) { + iconMaximize.style.display = 'none'; + } + if (iconMinimize) { + iconMinimize.style.display = 'block'; + } + this._element.dispatchEvent(event); + } + outFullscreen() { + const event = new Event(EVENT_MINIMIZED); + const iconMaximize = document.querySelector(SELECTOR_MAXIMIZE_ICON); + const iconMinimize = document.querySelector(SELECTOR_MINIMIZE_ICON); + void document.exitFullscreen(); + if (iconMaximize) { + iconMaximize.style.display = 'block'; + } + if (iconMinimize) { + iconMinimize.style.display = 'none'; + } + this._element.dispatchEvent(event); + } + toggleFullScreen() { + if (document.fullscreenEnabled) { + if (document.fullscreenElement) { + this.outFullscreen(); + } + else { + this.inFullScreen(); + } + } + } + } + /** + * Data Api implementation + * ============================================================================ + */ + onDOMContentLoaded(() => { + const buttons = document.querySelectorAll(SELECTOR_FULLSCREEN_TOGGLE); + buttons.forEach(btn => { + btn.addEventListener('click', event => { + event.preventDefault(); + const target = event.target; + const button = target.closest(SELECTOR_FULLSCREEN_TOGGLE); + if (button) { + const data = new FullScreen(button, undefined); + data.toggleFullScreen(); + } + }); + }); + }); + + /** + * -------------------------------------------- + * @file AdminLTE push-menu.ts + * @description Push menu for AdminLTE. + * @license MIT + * -------------------------------------------- + */ + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + const DATA_KEY = 'lte.push-menu'; + const EVENT_KEY = `.${DATA_KEY}`; + const EVENT_OPEN = `open${EVENT_KEY}`; + const EVENT_COLLAPSE = `collapse${EVENT_KEY}`; + const CLASS_NAME_SIDEBAR_MINI = 'sidebar-mini'; + const CLASS_NAME_SIDEBAR_COLLAPSE = 'sidebar-collapse'; + const CLASS_NAME_SIDEBAR_OPEN = 'sidebar-open'; + const CLASS_NAME_SIDEBAR_EXPAND = 'sidebar-expand'; + const CLASS_NAME_SIDEBAR_OVERLAY = 'sidebar-overlay'; + const CLASS_NAME_MENU_OPEN = 'menu-open'; + const SELECTOR_APP_SIDEBAR = '.app-sidebar'; + const SELECTOR_SIDEBAR_MENU = '.sidebar-menu'; + const SELECTOR_NAV_ITEM = '.nav-item'; + const SELECTOR_NAV_TREEVIEW = '.nav-treeview'; + const SELECTOR_APP_WRAPPER = '.app-wrapper'; + const SELECTOR_SIDEBAR_EXPAND = `[class*="${CLASS_NAME_SIDEBAR_EXPAND}"]`; + const SELECTOR_SIDEBAR_TOGGLE = '[data-lte-toggle="sidebar"]'; + const Defaults = { + sidebarBreakpoint: 992 + }; + /** + * Class Definition + * ==================================================== + */ + class PushMenu { + _element; + _config; + constructor(element, config) { + this._element = element; + this._config = { ...Defaults, ...config }; + } + menusClose() { + const navTreeview = document.querySelectorAll(SELECTOR_NAV_TREEVIEW); + navTreeview.forEach(navTree => { + navTree.style.removeProperty('display'); + navTree.style.removeProperty('height'); + }); + const navSidebar = document.querySelector(SELECTOR_SIDEBAR_MENU); + const navItem = navSidebar?.querySelectorAll(SELECTOR_NAV_ITEM); + if (navItem) { + navItem.forEach(navI => { + navI.classList.remove(CLASS_NAME_MENU_OPEN); + }); + } + } + expand() { + const event = new Event(EVENT_OPEN); + document.body.classList.remove(CLASS_NAME_SIDEBAR_COLLAPSE); + document.body.classList.add(CLASS_NAME_SIDEBAR_OPEN); + this._element.dispatchEvent(event); + } + collapse() { + const event = new Event(EVENT_COLLAPSE); + document.body.classList.remove(CLASS_NAME_SIDEBAR_OPEN); + document.body.classList.add(CLASS_NAME_SIDEBAR_COLLAPSE); + this._element.dispatchEvent(event); + } + addSidebarBreakPoint() { + const sidebarExpandList = document.querySelector(SELECTOR_SIDEBAR_EXPAND)?.classList ?? []; + const sidebarExpand = Array.from(sidebarExpandList).find(className => className.startsWith(CLASS_NAME_SIDEBAR_EXPAND)) ?? ''; + const sidebar = document.getElementsByClassName(sidebarExpand)[0]; + const sidebarContent = globalThis.getComputedStyle(sidebar, '::before').getPropertyValue('content'); + this._config = { ...this._config, sidebarBreakpoint: Number(sidebarContent.replace(/[^\d.-]/g, '')) }; + // FIXED: Don't auto-collapse on mobile if sidebar is currently open + // This prevents resize events (triggered by scrolling) from closing the sidebar + const isCurrentlyOpen = document.body.classList.contains(CLASS_NAME_SIDEBAR_OPEN); + if (window.innerWidth <= this._config.sidebarBreakpoint) { + // Only collapse if not currently open (prevents scroll-triggered closes) + if (!isCurrentlyOpen) { + this.collapse(); + } + } + else { + if (!document.body.classList.contains(CLASS_NAME_SIDEBAR_MINI)) { + this.expand(); + } + if (document.body.classList.contains(CLASS_NAME_SIDEBAR_MINI) && document.body.classList.contains(CLASS_NAME_SIDEBAR_COLLAPSE)) { + this.collapse(); + } + } + } + toggle() { + if (document.body.classList.contains(CLASS_NAME_SIDEBAR_COLLAPSE)) { + this.expand(); + } + else { + this.collapse(); + } + } + init() { + this.addSidebarBreakPoint(); + } + } + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + onDOMContentLoaded(() => { + const sidebar = document?.querySelector(SELECTOR_APP_SIDEBAR); + if (sidebar) { + const data = new PushMenu(sidebar, Defaults); + data.init(); + window.addEventListener('resize', () => { + data.init(); + }); + } + const sidebarOverlay = document.createElement('div'); + sidebarOverlay.className = CLASS_NAME_SIDEBAR_OVERLAY; + document.querySelector(SELECTOR_APP_WRAPPER)?.append(sidebarOverlay); + let overlayTouchMoved = false; + // Handle touch events on overlay (area outside sidebar) + sidebarOverlay.addEventListener('touchstart', () => { + overlayTouchMoved = false; + }, { passive: true }); + sidebarOverlay.addEventListener('touchmove', () => { + overlayTouchMoved = true; + }, { passive: true }); + sidebarOverlay.addEventListener('touchend', event => { + if (!overlayTouchMoved) { + event.preventDefault(); + const target = event.currentTarget; + const data = new PushMenu(target, Defaults); + data.collapse(); + } + overlayTouchMoved = false; + }, { passive: false }); + sidebarOverlay.addEventListener('click', event => { + event.preventDefault(); + const target = event.currentTarget; + const data = new PushMenu(target, Defaults); + data.collapse(); + }); + const fullBtn = document.querySelectorAll(SELECTOR_SIDEBAR_TOGGLE); + fullBtn.forEach(btn => { + btn.addEventListener('click', event => { + event.preventDefault(); + let button = event.currentTarget; + if (button?.dataset.lteToggle !== 'sidebar') { + button = button?.closest(SELECTOR_SIDEBAR_TOGGLE); + } + if (button) { + event?.preventDefault(); + const data = new PushMenu(button, Defaults); + data.toggle(); + } + }); + }); + }); + + /** + * AdminLTE Accessibility Module + * WCAG 2.1 AA Compliance Features + */ + class AccessibilityManager { + config; + liveRegion = null; + focusHistory = []; + constructor(config = {}) { + this.config = { + announcements: true, + skipLinks: true, + focusManagement: true, + keyboardNavigation: true, + reducedMotion: true, + ...config + }; + this.init(); + } + init() { + if (this.config.announcements) { + this.createLiveRegion(); + } + if (this.config.skipLinks) { + this.addSkipLinks(); + } + if (this.config.focusManagement) { + this.initFocusManagement(); + } + if (this.config.keyboardNavigation) { + this.initKeyboardNavigation(); + } + if (this.config.reducedMotion) { + this.respectReducedMotion(); + } + this.initErrorAnnouncements(); + this.initTableAccessibility(); + this.initFormAccessibility(); + } + // WCAG 4.1.3: Status Messages + createLiveRegion() { + if (this.liveRegion) + return; + this.liveRegion = document.createElement('div'); + this.liveRegion.id = 'live-region'; + this.liveRegion.className = 'live-region'; + this.liveRegion.setAttribute('aria-live', 'polite'); + this.liveRegion.setAttribute('aria-atomic', 'true'); + this.liveRegion.setAttribute('role', 'status'); + document.body.append(this.liveRegion); + } + // WCAG 2.4.1: Bypass Blocks + addSkipLinks() { + const skipLinksContainer = document.createElement('div'); + skipLinksContainer.className = 'skip-links'; + const skipToMain = document.createElement('a'); + skipToMain.href = '#main'; + skipToMain.className = 'skip-link'; + skipToMain.textContent = 'Skip to main content'; + const skipToNav = document.createElement('a'); + skipToNav.href = '#navigation'; + skipToNav.className = 'skip-link'; + skipToNav.textContent = 'Skip to navigation'; + skipLinksContainer.append(skipToMain); + skipLinksContainer.append(skipToNav); + document.body.insertBefore(skipLinksContainer, document.body.firstChild); + // Ensure targets exist and are focusable + this.ensureSkipTargets(); + } + ensureSkipTargets() { + const main = document.querySelector('#main, main, [role="main"]'); + if (main && !main.id) { + main.id = 'main'; + } + if (main && !main.hasAttribute('tabindex')) { + main.setAttribute('tabindex', '-1'); + } + const nav = document.querySelector('#navigation, nav, [role="navigation"]'); + if (nav && !nav.id) { + nav.id = 'navigation'; + } + if (nav && !nav.hasAttribute('tabindex')) { + nav.setAttribute('tabindex', '-1'); + } + } + // WCAG 2.4.3: Focus Order & 2.4.7: Focus Visible + initFocusManagement() { + document.addEventListener('keydown', (event) => { + if (event.key === 'Tab') { + this.handleTabNavigation(event); + } + if (event.key === 'Escape') { + this.handleEscapeKey(event); + } + }); + // Focus management for modals and dropdowns + this.initModalFocusManagement(); + this.initDropdownFocusManagement(); + } + handleTabNavigation(event) { + const focusableElements = this.getFocusableElements(); + const currentIndex = focusableElements.indexOf(document.activeElement); + if (event.shiftKey) { + // Shift+Tab (backward) + if (currentIndex <= 0) { + event.preventDefault(); + focusableElements.at(-1)?.focus(); + } + } + else if (currentIndex >= focusableElements.length - 1) { + // Tab (forward) + event.preventDefault(); + focusableElements[0]?.focus(); + } + } + getFocusableElements() { + const selector = [ + 'a[href]', + 'button:not([disabled])', + 'input:not([disabled])', + 'select:not([disabled])', + 'textarea:not([disabled])', + '[tabindex]:not([tabindex="-1"])', + '[contenteditable="true"]' + ].join(', '); + return Array.from(document.querySelectorAll(selector)); + } + handleEscapeKey(event) { + // Close modals, dropdowns, etc. + const activeModal = document.querySelector('.modal.show'); + const activeDropdown = document.querySelector('.dropdown-menu.show'); + if (activeModal) { + const closeButton = activeModal.querySelector('[data-bs-dismiss="modal"]'); + closeButton?.click(); + event.preventDefault(); + } + else if (activeDropdown) { + const toggleButton = document.querySelector('[data-bs-toggle="dropdown"][aria-expanded="true"]'); + toggleButton?.click(); + event.preventDefault(); + } + } + // WCAG 2.1.1: Keyboard Access + initKeyboardNavigation() { + // Add keyboard support for custom components + document.addEventListener('keydown', (event) => { + const target = event.target; + // Handle arrow key navigation for menus + if (target.closest('.nav, .navbar-nav, .dropdown-menu')) { + this.handleMenuNavigation(event); + } + // Handle Enter and Space for custom buttons + if ((event.key === 'Enter' || event.key === ' ') && target.hasAttribute('role') && target.getAttribute('role') === 'button' && !target.matches('button, input[type="button"], input[type="submit"]')) { + event.preventDefault(); + target.click(); + } + }); + } + handleMenuNavigation(event) { + if (!['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(event.key)) { + return; + } + const currentElement = event.target; + const menuItems = Array.from(currentElement.closest('.nav, .navbar-nav, .dropdown-menu')?.querySelectorAll('a, button') || []); + const currentIndex = menuItems.indexOf(currentElement); + let nextIndex; + switch (event.key) { + case 'ArrowDown': + case 'ArrowRight': { + nextIndex = currentIndex < menuItems.length - 1 ? currentIndex + 1 : 0; + break; + } + case 'ArrowUp': + case 'ArrowLeft': { + nextIndex = currentIndex > 0 ? currentIndex - 1 : menuItems.length - 1; + break; + } + case 'Home': { + nextIndex = 0; + break; + } + case 'End': { + nextIndex = menuItems.length - 1; + break; + } + default: { + return; + } + } + event.preventDefault(); + menuItems[nextIndex]?.focus(); + } + // WCAG 2.3.3: Animation from Interactions + respectReducedMotion() { + const prefersReducedMotion = globalThis.matchMedia('(prefers-reduced-motion: reduce)').matches; + if (prefersReducedMotion) { + document.body.classList.add('reduce-motion'); + // Disable smooth scrolling + document.documentElement.style.scrollBehavior = 'auto'; + // Reduce animation duration + const style = document.createElement('style'); + style.textContent = ` + *, *::before, *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } + `; + document.head.append(style); + } + } + // WCAG 3.3.1: Error Identification + initErrorAnnouncements() { + const observer = new MutationObserver((mutations) => { + mutations.forEach((mutation) => { + mutation.addedNodes.forEach((node) => { + if (node.nodeType === Node.ELEMENT_NODE) { + const element = node; + // Check for error messages + if (element.matches('.alert-danger, .invalid-feedback, .error')) { + this.announce(element.textContent || 'Error occurred', 'assertive'); + } + // Check for success messages + if (element.matches('.alert-success, .success')) { + this.announce(element.textContent || 'Success', 'polite'); + } + } + }); + }); + }); + observer.observe(document.body, { + childList: true, + subtree: true + }); + } + // WCAG 1.3.1: Info and Relationships + initTableAccessibility() { + document.querySelectorAll('table').forEach((table) => { + // Add table role if missing + if (!table.hasAttribute('role')) { + table.setAttribute('role', 'table'); + } + // Ensure headers have proper scope + table.querySelectorAll('th').forEach((th) => { + if (!th.hasAttribute('scope')) { + const isInThead = th.closest('thead'); + const isFirstColumn = th.cellIndex === 0; + if (isInThead) { + th.setAttribute('scope', 'col'); + } + else if (isFirstColumn) { + th.setAttribute('scope', 'row'); + } + } + }); + // Add caption if missing but title exists + if (!table.querySelector('caption') && table.hasAttribute('title')) { + const caption = document.createElement('caption'); + caption.textContent = table.getAttribute('title') || ''; + table.insertBefore(caption, table.firstChild); + } + }); + } + // WCAG 3.3.2: Labels or Instructions + initFormAccessibility() { + document.querySelectorAll('input, select, textarea').forEach((input) => { + const htmlInput = input; + // Ensure all inputs have labels + if (!htmlInput.labels?.length && !htmlInput.hasAttribute('aria-label') && !htmlInput.hasAttribute('aria-labelledby')) { + const placeholder = htmlInput.getAttribute('placeholder'); + if (placeholder) { + htmlInput.setAttribute('aria-label', placeholder); + } + } + // Add required indicators + if (htmlInput.hasAttribute('required')) { + const label = htmlInput.labels?.[0]; + if (label && !label.querySelector('.required-indicator')) { + const indicator = document.createElement('span'); + indicator.className = 'required-indicator sr-only'; + indicator.textContent = ' (required)'; + label.append(indicator); + } + } + // Handle invalid states + htmlInput.addEventListener('invalid', () => { + this.handleFormError(htmlInput); + }); + }); + } + handleFormError(input) { + const errorId = `${input.id || input.name}-error`; + let errorElement = document.getElementById(errorId); + if (!errorElement) { + errorElement = document.createElement('div'); + errorElement.id = errorId; + errorElement.className = 'invalid-feedback'; + errorElement.setAttribute('role', 'alert'); + input.parentNode?.insertBefore(errorElement, input.nextSibling); + } + errorElement.textContent = input.validationMessage; + input.setAttribute('aria-describedby', errorId); + input.classList.add('is-invalid'); + this.announce(`Error in ${input.labels?.[0]?.textContent || input.name}: ${input.validationMessage}`, 'assertive'); + } + // Modal focus management + initModalFocusManagement() { + document.addEventListener('shown.bs.modal', (event) => { + const modal = event.target; + const focusableElements = modal.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'); + if (focusableElements.length > 0) { + focusableElements[0].focus(); + } + // Store previous focus + this.focusHistory.push(document.activeElement); + }); + document.addEventListener('hidden.bs.modal', () => { + // Restore previous focus + const previousElement = this.focusHistory.pop(); + if (previousElement) { + previousElement.focus(); + } + }); + } + // Dropdown focus management + initDropdownFocusManagement() { + document.addEventListener('shown.bs.dropdown', (event) => { + const dropdown = event.target; + const menu = dropdown.querySelector('.dropdown-menu'); + const firstItem = menu?.querySelector('a, button'); + if (firstItem) { + firstItem.focus(); + } + }); + } + // Public API methods + announce(message, priority = 'polite') { + if (!this.liveRegion) { + this.createLiveRegion(); + } + if (this.liveRegion) { + this.liveRegion.setAttribute('aria-live', priority); + this.liveRegion.textContent = message; + // Clear after announcement + setTimeout(() => { + if (this.liveRegion) { + this.liveRegion.textContent = ''; + } + }, 1000); + } + } + focusElement(selector) { + const element = document.querySelector(selector); + if (element) { + element.focus(); + // Ensure element is visible + element.scrollIntoView({ behavior: 'smooth', block: 'center' }); + } + } + trapFocus(container) { + const focusableElements = container.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'); + const focusableArray = Array.from(focusableElements); + const firstElement = focusableArray[0]; + const lastElement = focusableArray.at(-1); + container.addEventListener('keydown', (event) => { + if (event.key === 'Tab') { + if (event.shiftKey) { + if (document.activeElement === firstElement) { + lastElement?.focus(); + event.preventDefault(); + } + } + else if (document.activeElement === lastElement) { + firstElement.focus(); + event.preventDefault(); + } + } + }); + } + addLandmarks() { + // Add main landmark if missing + const main = document.querySelector('main'); + if (!main) { + const appMain = document.querySelector('.app-main'); + if (appMain) { + appMain.setAttribute('role', 'main'); + appMain.id = 'main'; + } + } + // Add navigation landmarks + document.querySelectorAll('.navbar-nav, .nav').forEach((nav, index) => { + if (!nav.hasAttribute('role')) { + nav.setAttribute('role', 'navigation'); + } + if (!nav.hasAttribute('aria-label')) { + nav.setAttribute('aria-label', `Navigation ${index + 1}`); + } + }); + // Add search landmark + const searchForm = document.querySelector('form[role="search"], .navbar-search'); + if (searchForm && !searchForm.hasAttribute('role')) { + searchForm.setAttribute('role', 'search'); + } + } + } + // Initialize accessibility when DOM is ready + const initAccessibility = (config) => { + return new AccessibilityManager(config); + }; + + /** + * AdminLTE v4.0.0-rc5 + * Author: Colorlib + * Website: AdminLTE.io + * License: Open source - MIT + */ + onDOMContentLoaded(() => { + /** + * Initialize AdminLTE Core Components + * ------------------------------- + */ + const layout = new Layout(document.body); + layout.holdTransition(); + /** + * Initialize Accessibility Features - WCAG 2.1 AA Compliance + * -------------------------------------------------------- + */ + const accessibilityManager = initAccessibility({ + announcements: true, + skipLinks: true, + focusManagement: true, + keyboardNavigation: true, + reducedMotion: true + }); + // Add semantic landmarks + accessibilityManager.addLandmarks(); + // Mark app as loaded after initialization + setTimeout(() => { + document.body.classList.add('app-loaded'); + }, 400); + }); + + exports.CardWidget = CardWidget; + exports.DirectChat = DirectChat; + exports.FullScreen = FullScreen; + exports.Layout = Layout; + exports.PushMenu = PushMenu; + exports.Treeview = Treeview; + exports.initAccessibility = initAccessibility; + +})); +//# sourceMappingURL=adminlte.js.map diff --git a/js/adminlte.js.map b/js/adminlte.js.map new file mode 100644 index 0000000..b526087 --- /dev/null +++ b/js/adminlte.js.map @@ -0,0 +1 @@ +{"version":3,"file":"adminlte.js","sources":["../../src/ts/util/index.ts","../../src/ts/layout.ts","../../src/ts/card-widget.ts","../../src/ts/treeview.ts","../../src/ts/direct-chat.ts","../../src/ts/fullscreen.ts","../../src/ts/push-menu.ts","../../src/ts/accessibility.ts","../../src/ts/adminlte.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["DATA_KEY","EVENT_KEY","EVENT_COLLAPSED","EVENT_EXPANDED","EVENT_MAXIMIZED","EVENT_MINIMIZED","Default","CLASS_NAME_MENU_OPEN","SELECTOR_NAV_ITEM","SELECTOR_DATA_TOGGLE"],"mappings":";;;;;;;;;;;IAAA,MAAM,yBAAyB,GAAsB,EAAE;IAEvD,MAAM,kBAAkB,GAAG,CAAC,QAAoB,KAAU;IACxD,IAAA,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE;;IAErC,QAAA,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE;IACrC,YAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAK;IACjD,gBAAA,KAAK,MAAM,QAAQ,IAAI,yBAAyB,EAAE;IAChD,oBAAA,QAAQ,EAAE;oBACZ;IACF,YAAA,CAAC,CAAC;YACJ;IAEA,QAAA,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC1C;aAAO;IACL,QAAA,QAAQ,EAAE;QACZ;IACF,CAAC;IA+BD;IACA,MAAM,OAAO,GAAG,CAAC,MAAmB,EAAE,QAAQ,GAAG,GAAG,KAAI;IACtD,IAAA,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,yBAAyB;QAC3D,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,CAAA,EAAG,QAAQ,IAAI;IACjD,IAAA,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY;QACrC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAA,EAAA,CAAI;IAChD,IAAA,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;IAEhC,IAAA,UAAU,CAAC,UAAU,CAAC,MAAK;IACzB,QAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;IACzB,QAAA,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG;IAC7B,QAAA,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG;IAChC,QAAA,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG;IAC5B,QAAA,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG;QACjC,CAAC,EAAE,CAAC,CAAC;IAEL,IAAA,UAAU,CAAC,UAAU,CAAC,MAAK;IACzB,QAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;IAC7B,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;IACrC,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC;IAC1C,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC;IAC7C,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC;IACzC,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAC5C,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC;IACvC,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC;IAClD,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC;QACpD,CAAC,EAAE,QAAQ,CAAC;IACd,CAAC;IAED;IACA,MAAM,SAAS,GAAG,CAAC,MAAmB,EAAE,QAAQ,GAAG,GAAG,KAAI;IACxD,IAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC;QACtC,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC;IAErD,IAAA,IAAI,OAAO,KAAK,MAAM,EAAE;YACtB,OAAO,GAAG,OAAO;QACnB;IAEA,IAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;IAC9B,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY;IAClC,IAAA,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;IAChC,IAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;IACzB,IAAA,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG;IAC7B,IAAA,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG;IAChC,IAAA,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG;IAC5B,IAAA,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG;IAE/B,IAAA,UAAU,CAAC,UAAU,CAAC,MAAK;IACzB,QAAA,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY;IACrC,QAAA,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,yBAAyB;YAC3D,MAAM,CAAC,KAAK,CAAC,kBAAkB,GAAG,CAAA,EAAG,QAAQ,IAAI;YACjD,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,MAAM,IAAI;IACnC,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC;IAC1C,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC;IAC7C,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC;IACzC,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;QAC9C,CAAC,EAAE,CAAC,CAAC;IAEL,IAAA,UAAU,CAAC,UAAU,CAAC,MAAK;IACzB,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;IACrC,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC;IACvC,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC;IAClD,QAAA,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC;QACpD,CAAC,EAAE,QAAQ,CAAC;IACd,CAAC;;IChHD;;;;;;IAMG;IAMH;;;;IAIG;IAEH,MAAM,2BAA2B,GAAG,iBAAiB;IACrD,MAAM,qBAAqB,GAAG,YAAY;IAE1C;;;IAGG;IAEH,MAAM,MAAM,CAAA;IACV,IAAA,QAAQ;IAER,IAAA,WAAA,CAAY,OAAoB,EAAA;IAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;QACzB;QAEA,cAAc,GAAA;IACZ,QAAA,IAAI,WAA0C;IAC9C,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAK;gBACrC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC;gBACxD,YAAY,CAAC,WAAW,CAAC;IACzB,YAAA,WAAW,GAAG,UAAU,CAAC,MAAK;oBAC5B,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,2BAA2B,CAAC;gBAC7D,CAAC,EAAE,GAAG,CAAC;IACT,QAAA,CAAC,CAAC;QACJ;IACD;IAED,kBAAkB,CAAC,MAAK;QACtB,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,cAAc,EAAE;QACrB,UAAU,CAAC,MAAK;YACd,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACpD,CAAC,EAAE,GAAG,CAAC;IACT,CAAC,CAAC;;ICnDF;;;;;;IAMG;IAQH;;;IAGG;IAEH,MAAMA,UAAQ,GAAG,iBAAiB;IAClC,MAAMC,WAAS,GAAG,CAAA,CAAA,EAAID,UAAQ,EAAE;IAChC,MAAME,iBAAe,GAAG,CAAA,SAAA,EAAYD,WAAS,EAAE;IAC/C,MAAME,gBAAc,GAAG,CAAA,QAAA,EAAWF,WAAS,EAAE;IAC7C,MAAM,YAAY,GAAG,CAAA,MAAA,EAASA,WAAS,EAAE;IACzC,MAAMG,iBAAe,GAAG,CAAA,SAAA,EAAYH,WAAS,EAAE;IAC/C,MAAMI,iBAAe,GAAG,CAAA,SAAA,EAAYJ,WAAS,EAAE;IAE/C,MAAM,eAAe,GAAG,MAAM;IAC9B,MAAM,oBAAoB,GAAG,gBAAgB;IAC7C,MAAM,qBAAqB,GAAG,iBAAiB;IAC/C,MAAM,oBAAoB,GAAG,gBAAgB;IAC7C,MAAM,wBAAwB,GAAG,eAAe;IAChD,MAAM,oBAAoB,GAAG,gBAAgB;IAE7C,MAAM,oBAAoB,GAAG,iCAAiC;IAC9D,MAAM,sBAAsB,GAAG,mCAAmC;IAClE,MAAM,sBAAsB,GAAG,mCAAmC;IAClE,MAAM,aAAa,GAAG,CAAA,CAAA,EAAI,eAAe,EAAE;IAC3C,MAAM,kBAAkB,GAAG,YAAY;IACvC,MAAM,oBAAoB,GAAG,cAAc;IAS3C,MAAMK,SAAO,GAAW;IACtB,IAAA,cAAc,EAAE,GAAG;IACnB,IAAA,eAAe,EAAE,sBAAsB;IACvC,IAAA,aAAa,EAAE,oBAAoB;IACnC,IAAA,eAAe,EAAE;KAClB;IAED,MAAM,UAAU,CAAA;IACd,IAAA,QAAQ;IACR,IAAA,OAAO;IACP,IAAA,MAAM;IACN,IAAA,OAAO;QAEP,WAAA,CAAY,OAAoB,EAAE,MAAc,EAAA;IAC9C,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;YACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAA4B;YAExE,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;IAC/C,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;YACxB;YAEA,IAAI,CAAC,OAAO,GAAG,EAAE,GAAGA,SAAO,EAAE,GAAG,MAAM,EAAE;QAC1C;QAEA,QAAQ,GAAA;IACN,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAACJ,iBAAe,CAAC;IAExC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAEjD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA,EAAG,kBAAkB,CAAA,EAAA,EAAK,oBAAoB,CAAA,CAAE,CAAC;IAE5F,YAAA,GAAG,CAAC,OAAO,CAAC,EAAE,IAAG;IACf,gBAAA,IAAI,EAAE,YAAY,WAAW,EAAE;wBAC7B,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;oBAC1C;IACF,YAAA,CAAC,CAAC;gBAEF,UAAU,CAAC,MAAK;IACd,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;wBAChB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;wBAChD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC;oBACtD;IACF,YAAA,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YACjC;IAEA,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC;QACrC;QAEA,MAAM,GAAA;IACJ,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAACC,gBAAc,CAAC;IAEvC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAEhD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA,EAAG,kBAAkB,CAAA,EAAA,EAAK,oBAAoB,CAAA,CAAE,CAAC;IAE5F,YAAA,GAAG,CAAC,OAAO,CAAC,EAAE,IAAG;IACf,gBAAA,IAAI,EAAE,YAAY,WAAW,EAAE;wBAC7B,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;oBAC5C;IACF,YAAA,CAAC,CAAC;gBAEF,UAAU,CAAC,MAAK;IACd,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;wBAChB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;oBAC3E;IACF,YAAA,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YACjC;IAEA,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC;QACrC;QAEA,MAAM,GAAA;IACJ,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC;IAErC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YACpD;IAEA,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC;QACrC;QAEA,MAAM,GAAA;YACJ,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;gBAC1D,IAAI,CAAC,MAAM,EAAE;gBACb;YACF;YAEA,IAAI,CAAC,QAAQ,EAAE;QACjB;QAEA,QAAQ,GAAA;IACN,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAACC,iBAAe,CAAC;IAExC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;IAChB,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI;IAC5D,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI;gBAC1D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU;gBAE1C,UAAU,CAAC,MAAK;oBACd,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;oBAE9C,IAAI,OAAO,EAAE;IACX,oBAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;oBAC7C;IAEA,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;wBAChB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;wBAEhD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;4BACzD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC;wBACtD;oBACF;gBACF,CAAC,EAAE,GAAG,CAAC;YACT;IAEA,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC;QACrC;QAEA,QAAQ,GAAA;IACN,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAACC,iBAAe,CAAC;IAExC,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;gBAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;gBACjC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU;gBAE1C,UAAU,CAAC,MAAK;oBACd,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;oBAE9C,IAAI,OAAO,EAAE;IACX,oBAAA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC;oBAChD;IAEA,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;wBAChB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC;wBAEnD,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;4BAC9D,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC;wBACzD;oBACF;gBACF,CAAC,EAAE,EAAE,CAAC;YACR;IAEA,QAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC;QACrC;QAEA,cAAc,GAAA;YACZ,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;gBAC1D,IAAI,CAAC,QAAQ,EAAE;gBACf;YACF;YAEA,IAAI,CAAC,QAAQ,EAAE;QACjB;IACD;IAED;;;;IAIG;IAEH,kBAAkB,CAAC,MAAK;QACtB,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,sBAAsB,CAAC;IAErE,IAAA,WAAW,CAAC,OAAO,CAAC,GAAG,IAAG;IACxB,QAAA,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAG;gBACpC,KAAK,CAAC,cAAc,EAAE;IACtB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;gBAC1C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,EAAEC,SAAO,CAAC;gBAC5C,IAAI,CAAC,MAAM,EAAE;IACf,QAAA,CAAC,CAAC;IACJ,IAAA,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;IAEjE,IAAA,SAAS,CAAC,OAAO,CAAC,GAAG,IAAG;IACtB,QAAA,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAG;gBACpC,KAAK,CAAC,cAAc,EAAE;IACtB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;gBAC1C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,EAAEA,SAAO,CAAC;gBAC5C,IAAI,CAAC,MAAM,EAAE;IACf,QAAA,CAAC,CAAC;IACJ,IAAA,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,sBAAsB,CAAC;IAEhE,IAAA,MAAM,CAAC,OAAO,CAAC,GAAG,IAAG;IACnB,QAAA,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAG;gBACpC,KAAK,CAAC,cAAc,EAAE;IACtB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;gBAC1C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,EAAEA,SAAO,CAAC;gBAC5C,IAAI,CAAC,cAAc,EAAE;IACvB,QAAA,CAAC,CAAC;IACJ,IAAA,CAAC,CAAC;IACJ,CAAC,CAAC;;ICrPF;;;;;;IAMG;IAQH;;;;IAIG;IAEH;IACA,MAAMN,UAAQ,GAAG,cAAc;IAC/B,MAAMC,WAAS,GAAG,CAAA,CAAA,EAAID,UAAQ,EAAE;IAEhC,MAAMG,gBAAc,GAAG,CAAA,QAAA,EAAWF,WAAS,EAAE;IAC7C,MAAMC,iBAAe,GAAG,CAAA,SAAA,EAAYD,WAAS,EAAE;IAC/C,MAAM,mBAAmB,GAAG,CAAA,IAAA,EAAOA,WAAS,EAAE;IAE9C,MAAMM,sBAAoB,GAAG,WAAW;IACxC,MAAMC,mBAAiB,GAAG,WAAW;IACrC,MAAM,iBAAiB,GAAG,WAAW;IACrC,MAAM,sBAAsB,GAAG,eAAe;IAC9C,MAAMC,sBAAoB,GAAG,8BAA8B;IAE3D,MAAM,OAAO,GAAG;IACd,IAAA,cAAc,EAAE,GAAG;IACnB,IAAA,SAAS,EAAE;KACZ;IAOD;;;IAGG;IAEH,MAAM,QAAQ,CAAA;IACZ,IAAA,QAAQ;IACR,IAAA,OAAO;QAEP,WAAA,CAAY,OAAoB,EAAE,MAAc,EAAA;IAC9C,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;YACvB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,EAAE;QAC1C;QAEA,IAAI,GAAA;IACF,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAACN,gBAAc,CAAC;IAEvC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;IAC1B,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGK,mBAAiB,CAAA,CAAA,EAAID,sBAAoB,CAAA,CAAE,CAAC;IAElH,YAAA,YAAY,EAAE,OAAO,CAAC,QAAQ,IAAG;oBAC/B,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;IAC5C,oBAAA,QAAQ,CAAC,SAAS,CAAC,MAAM,CAACA,sBAAoB,CAAC;wBAC/C,MAAM,YAAY,GAAG,QAAQ,EAAE,aAAa,CAAC,sBAAsB,CAA4B;wBAC/F,IAAI,YAAY,EAAE;4BAChB,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;wBACpD;oBACF;IACF,YAAA,CAAC,CAAC;YACJ;YAEA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAACA,sBAAoB,CAAC;YAEjD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,sBAAsB,CAA4B;YACpG,IAAI,YAAY,EAAE;gBAChB,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YACtD;IAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QACpC;QAEA,KAAK,GAAA;IACH,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAACL,iBAAe,CAAC;YAExC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAACK,sBAAoB,CAAC;YAEpD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,sBAAsB,CAA4B;YACpG,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YACpD;IAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QACpC;QAEA,MAAM,GAAA;YACJ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAACA,sBAAoB,CAAC,EAAE;gBAC1D,IAAI,CAAC,KAAK,EAAE;YACd;iBAAO;gBACL,IAAI,CAAC,IAAI,EAAE;YACb;QACF;IACD;IAED;;;;IAIG;IAEH,kBAAkB,CAAC,MAAK;IACtB,IAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAA,EAAGC,mBAAiB,CAAA,CAAA,EAAID,sBAAoB,CAAA,CAAE,CAAC;IAE/F,IAAA,aAAa,CAAC,OAAO,CAAC,QAAQ,IAAG;YAC/B,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,sBAAsB,CAA4B;YAC9F,IAAI,YAAY,EAAE;IAChB,YAAA,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;IAE1B,YAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC;IAC5C,YAAA,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;YAC/B;IACF,IAAA,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAACE,sBAAoB,CAAC;IAE9D,IAAA,MAAM,CAAC,OAAO,CAAC,GAAG,IAAG;IACnB,QAAA,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAG;IACpC,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;gBAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAACD,mBAAiB,CAA4B;gBAC/E,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAkC;IACrF,YAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAA4B;IAE3D,YAAA,IAAI,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE;oBACpF,KAAK,CAAC,cAAc,EAAE;gBACxB;gBAEA,IAAI,UAAU,EAAE;;IAEd,gBAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS;IACxD,gBAAA,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,OAAO,CAAC,cAAc;;IAGlE,gBAAA,MAAM,MAAM,GAAW;IACrB,oBAAA,SAAS,EAAE,aAAa,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,aAAa,KAAK,MAAM;IACrF,oBAAA,cAAc,EAAE,kBAAkB,KAAK,SAAS,GAAG,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,kBAAkB;qBACtG;oBAED,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;oBAC7C,IAAI,CAAC,MAAM,EAAE;gBACf;IACF,QAAA,CAAC,CAAC;IACJ,IAAA,CAAC,CAAC;IACJ,CAAC,CAAC;;IC3JF;;;;;;IAMG;IAMH;;;IAGG;IAEH,MAAMR,UAAQ,GAAG,iBAAiB;IAClC,MAAMC,WAAS,GAAG,CAAA,CAAA,EAAID,UAAQ,EAAE;IAChC,MAAM,cAAc,GAAG,CAAA,QAAA,EAAWC,WAAS,EAAE;IAC7C,MAAM,eAAe,GAAG,CAAA,SAAA,EAAYA,WAAS,EAAE;IAE/C,MAAM,oBAAoB,GAAG,+BAA+B;IAC5D,MAAM,oBAAoB,GAAG,cAAc;IAE3C,MAAM,2BAA2B,GAAG,2BAA2B;IAE/D;;;IAGG;IAEH,MAAM,UAAU,CAAA;IACd,IAAA,QAAQ;IACR,IAAA,WAAA,CAAY,OAAoB,EAAA;IAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;QACzB;QAEA,MAAM,GAAA;YACJ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE;IACjE,YAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC;gBAExC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,2BAA2B,CAAC;IAE3D,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;YACpC;iBAAO;IACL,YAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC;gBAEvC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAExD,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;YACpC;QACF;IACD;IAED;;;;IAIG;IAEH,kBAAkB,CAAC,MAAK;QACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;IAE9D,IAAA,MAAM,CAAC,OAAO,CAAC,GAAG,IAAG;IACnB,QAAA,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAG;gBACpC,KAAK,CAAC,cAAc,EAAE;IACtB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;gBAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAA4B;gBAEhF,IAAI,QAAQ,EAAE;IACZ,gBAAA,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC;oBACrC,IAAI,CAAC,MAAM,EAAE;gBACf;IACF,QAAA,CAAC,CAAC;IACJ,IAAA,CAAC,CAAC;IACJ,CAAC,CAAC;;IC5EF;;;;;;IAMG;IAMH;;;IAGG;IACH,MAAMD,UAAQ,GAAG,gBAAgB;IACjC,MAAMC,WAAS,GAAG,CAAA,CAAA,EAAID,UAAQ,EAAE;IAChC,MAAM,eAAe,GAAG,CAAA,SAAA,EAAYC,WAAS,EAAE;IAC/C,MAAM,eAAe,GAAG,CAAA,SAAA,EAAYA,WAAS,EAAE;IAE/C,MAAM,0BAA0B,GAAG,gCAAgC;IACnE,MAAM,sBAAsB,GAAG,4BAA4B;IAC3D,MAAM,sBAAsB,GAAG,4BAA4B;IAE3D;;;IAGG;IACH,MAAM,UAAU,CAAA;IACd,IAAA,QAAQ;IACR,IAAA,OAAO;QAEP,WAAA,CAAY,OAAoB,EAAE,MAAkB,EAAA;IAClD,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;IACvB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;QACvB;QAEA,YAAY,GAAA;IACV,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC;YAExC,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAc,sBAAsB,CAAC;YAChF,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAc,sBAAsB,CAAC;IAEhF,QAAA,KAAK,QAAQ,CAAC,eAAe,CAAC,iBAAiB,EAAE;YAEjD,IAAI,YAAY,EAAE;IAChB,YAAA,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;YACrC;YAEA,IAAI,YAAY,EAAE;IAChB,YAAA,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;YACtC;IAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QACpC;QAEA,aAAa,GAAA;IACX,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC;YAExC,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAc,sBAAsB,CAAC;YAChF,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAc,sBAAsB,CAAC;IAEhF,QAAA,KAAK,QAAQ,CAAC,cAAc,EAAE;YAE9B,IAAI,YAAY,EAAE;IAChB,YAAA,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;YACtC;YAEA,IAAI,YAAY,EAAE;IAChB,YAAA,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;YACrC;IAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QACpC;QAEA,gBAAgB,GAAA;IACd,QAAA,IAAI,QAAQ,CAAC,iBAAiB,EAAE;IAC9B,YAAA,IAAI,QAAQ,CAAC,iBAAiB,EAAE;oBAC9B,IAAI,CAAC,aAAa,EAAE;gBACtB;qBAAO;oBACL,IAAI,CAAC,YAAY,EAAE;gBACrB;YACF;QACF;IACD;IAED;;;IAGG;IACH,kBAAkB,CAAC,MAAK;QACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,0BAA0B,CAAC;IAErE,IAAA,OAAO,CAAC,OAAO,CAAC,GAAG,IAAG;IACpB,QAAA,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAG;gBACpC,KAAK,CAAC,cAAc,EAAE;IAEtB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;gBAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAA4B;gBAEpF,IAAI,MAAM,EAAE;oBACV,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC;oBAC9C,IAAI,CAAC,gBAAgB,EAAE;gBACzB;IACF,QAAA,CAAC,CAAC;IACJ,IAAA,CAAC,CAAC;IACJ,CAAC,CAAC;;IC3GF;;;;;;IAMG;IAMH;;;;IAIG;IAEH,MAAM,QAAQ,GAAG,eAAe;IAChC,MAAM,SAAS,GAAG,CAAA,CAAA,EAAI,QAAQ,EAAE;IAEhC,MAAM,UAAU,GAAG,CAAA,IAAA,EAAO,SAAS,EAAE;IACrC,MAAM,cAAc,GAAG,CAAA,QAAA,EAAW,SAAS,EAAE;IAE7C,MAAM,uBAAuB,GAAG,cAAc;IAC9C,MAAM,2BAA2B,GAAG,kBAAkB;IACtD,MAAM,uBAAuB,GAAG,cAAc;IAC9C,MAAM,yBAAyB,GAAG,gBAAgB;IAClD,MAAM,0BAA0B,GAAG,iBAAiB;IACpD,MAAM,oBAAoB,GAAG,WAAW;IAExC,MAAM,oBAAoB,GAAG,cAAc;IAC3C,MAAM,qBAAqB,GAAG,eAAe;IAC7C,MAAM,iBAAiB,GAAG,WAAW;IACrC,MAAM,qBAAqB,GAAG,eAAe;IAC7C,MAAM,oBAAoB,GAAG,cAAc;IAC3C,MAAM,uBAAuB,GAAG,CAAA,SAAA,EAAY,yBAAyB,IAAI;IACzE,MAAM,uBAAuB,GAAG,6BAA6B;IAM7D,MAAM,QAAQ,GAAG;IACf,IAAA,iBAAiB,EAAE;KACpB;IAED;;;IAGG;IAEH,MAAM,QAAQ,CAAA;IACZ,IAAA,QAAQ;IACR,IAAA,OAAO;QAEP,WAAA,CAAY,OAAoB,EAAE,MAAc,EAAA;IAC9C,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;YACvB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE;QAC3C;QAEA,UAAU,GAAA;YACR,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAc,qBAAqB,CAAC;IAEjF,QAAA,WAAW,CAAC,OAAO,CAAC,OAAO,IAAG;IAC5B,YAAA,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC;IACvC,YAAA,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;IACxC,QAAA,CAAC,CAAC;YAEF,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC;YAChE,MAAM,OAAO,GAAG,UAAU,EAAE,gBAAgB,CAAC,iBAAiB,CAAC;YAE/D,IAAI,OAAO,EAAE;IACX,YAAA,OAAO,CAAC,OAAO,CAAC,IAAI,IAAG;IACrB,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC;IAC7C,YAAA,CAAC,CAAC;YACJ;QACF;QAEA,MAAM,GAAA;IACJ,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC;YAEnC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,2BAA2B,CAAC;YAC3D,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAEpD,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QACpC;QAEA,QAAQ,GAAA;IACN,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC;YAEvC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,uBAAuB,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAExD,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QACpC;QAEA,oBAAoB,GAAA;IAClB,QAAA,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE,SAAS,IAAI,EAAE;YAC1F,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,IAAI,EAAE;YAC5H,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACjE,QAAA,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC;YACnG,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE;;;IAIrG,QAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAEjF,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;;gBAEvD,IAAI,CAAC,eAAe,EAAE;oBACpB,IAAI,CAAC,QAAQ,EAAE;gBACjB;YACF;iBAAO;IACL,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE;oBAC9D,IAAI,CAAC,MAAM,EAAE;gBACf;gBAEA,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE;oBAC9H,IAAI,CAAC,QAAQ,EAAE;gBACjB;YACF;QACF;QAEA,MAAM,GAAA;YACJ,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE;gBACjE,IAAI,CAAC,MAAM,EAAE;YACf;iBAAO;gBACL,IAAI,CAAC,QAAQ,EAAE;YACjB;QACF;QAEA,IAAI,GAAA;YACF,IAAI,CAAC,oBAAoB,EAAE;QAC7B;IACD;IAED;;;;IAIG;IAEH,kBAAkB,CAAC,MAAK;QACtB,MAAM,OAAO,GAAG,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAA4B;QAExF,IAAI,OAAO,EAAE;YACX,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC5C,IAAI,CAAC,IAAI,EAAE;IAEX,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAK;gBACrC,IAAI,CAAC,IAAI,EAAE;IACb,QAAA,CAAC,CAAC;QACJ;QAEA,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IACpD,IAAA,cAAc,CAAC,SAAS,GAAG,0BAA0B;QACrD,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;QAEpE,IAAI,iBAAiB,GAAG,KAAK;;IAG7B,IAAA,cAAc,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAK;YACjD,iBAAiB,GAAG,KAAK;IAC3B,IAAA,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAErB,IAAA,cAAc,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAK;YAChD,iBAAiB,GAAG,IAAI;IAC1B,IAAA,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAErB,IAAA,cAAc,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,IAAG;YAClD,IAAI,CAAC,iBAAiB,EAAE;gBACtB,KAAK,CAAC,cAAc,EAAE;IACtB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,aAA4B;gBACjD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;gBAC3C,IAAI,CAAC,QAAQ,EAAE;YACjB;YACA,iBAAiB,GAAG,KAAK;IAC3B,IAAA,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAGtB,IAAA,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAG;YAC/C,KAAK,CAAC,cAAc,EAAE;IACtB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,aAA4B;YACjD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;YAC3C,IAAI,CAAC,QAAQ,EAAE;IACjB,IAAA,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;IAElE,IAAA,OAAO,CAAC,OAAO,CAAC,GAAG,IAAG;IACpB,QAAA,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAG;gBACpC,KAAK,CAAC,cAAc,EAAE;IAEtB,YAAA,IAAI,MAAM,GAAG,KAAK,CAAC,aAAwC;gBAE3D,IAAI,MAAM,EAAE,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE;IAC3C,gBAAA,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAA4B;gBAC9E;gBAEA,IAAI,MAAM,EAAE;oBACV,KAAK,EAAE,cAAc,EAAE;oBACvB,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;oBAC3C,IAAI,CAAC,MAAM,EAAE;gBACf;IACF,QAAA,CAAC,CAAC;IACJ,IAAA,CAAC,CAAC;IACJ,CAAC,CAAC;;IC/MF;;;IAGG;UAUU,oBAAoB,CAAA;IACvB,IAAA,MAAM;QACN,UAAU,GAAuB,IAAI;QACrC,YAAY,GAAkB,EAAE;IAExC,IAAA,WAAA,CAAY,SAAuC,EAAE,EAAA;YACnD,IAAI,CAAC,MAAM,GAAG;IACZ,YAAA,aAAa,EAAE,IAAI;IACnB,YAAA,SAAS,EAAE,IAAI;IACf,YAAA,eAAe,EAAE,IAAI;IACrB,YAAA,kBAAkB,EAAE,IAAI;IACxB,YAAA,aAAa,EAAE,IAAI;IACnB,YAAA,GAAG;aACJ;YAED,IAAI,CAAC,IAAI,EAAE;QACb;QAEQ,IAAI,GAAA;IACV,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;gBAC7B,IAAI,CAAC,gBAAgB,EAAE;YACzB;IAEA,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACzB,IAAI,CAAC,YAAY,EAAE;YACrB;IAEA,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;gBAC/B,IAAI,CAAC,mBAAmB,EAAE;YAC5B;IAEA,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;gBAClC,IAAI,CAAC,sBAAsB,EAAE;YAC/B;IAEA,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;gBAC7B,IAAI,CAAC,oBAAoB,EAAE;YAC7B;YAEA,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,qBAAqB,EAAE;QAC9B;;QAGQ,gBAAgB,GAAA;YACtB,IAAI,IAAI,CAAC,UAAU;gBAAE;YAErB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC/C,QAAA,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,aAAa;IAClC,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,aAAa;YACzC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;YAE9C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACvC;;QAGQ,YAAY,GAAA;YAClB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IACxD,QAAA,kBAAkB,CAAC,SAAS,GAAG,YAAY;YAE3C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;IAC9C,QAAA,UAAU,CAAC,IAAI,GAAG,OAAO;IACzB,QAAA,UAAU,CAAC,SAAS,GAAG,WAAW;IAClC,QAAA,UAAU,CAAC,WAAW,GAAG,sBAAsB;YAE/C,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;IAC7C,QAAA,SAAS,CAAC,IAAI,GAAG,aAAa;IAC9B,QAAA,SAAS,CAAC,SAAS,GAAG,WAAW;IACjC,QAAA,SAAS,CAAC,WAAW,GAAG,oBAAoB;IAE5C,QAAA,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC;IACrC,QAAA,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC;IAEpC,QAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;;YAGxE,IAAI,CAAC,iBAAiB,EAAE;QAC1B;QAEQ,iBAAiB,GAAA;YACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,4BAA4B,CAAC;IACjE,QAAA,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;IACpB,YAAA,IAAI,CAAC,EAAE,GAAG,MAAM;YAClB;YACA,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;IAC1C,YAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;YACrC;YAEA,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,uCAAuC,CAAC;IAC3E,QAAA,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;IAClB,YAAA,GAAG,CAAC,EAAE,GAAG,YAAY;YACvB;YACA,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;IACxC,YAAA,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;YACpC;QACF;;QAGQ,mBAAmB,GAAA;YACzB,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAI;IAC7C,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;IACvB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBACjC;IACA,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;IAC1B,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAC7B;IACF,QAAA,CAAC,CAAC;;YAGF,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,2BAA2B,EAAE;QACpC;IAEQ,IAAA,mBAAmB,CAAC,KAAoB,EAAA;IAC9C,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE;YACrD,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,aAA4B,CAAC;IAErF,QAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;;IAElB,YAAA,IAAI,YAAY,IAAI,CAAC,EAAE;oBACrB,KAAK,CAAC,cAAc,EAAE;oBACtB,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;gBACnC;YACF;iBAAO,IAAI,YAAY,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;;gBAEvD,KAAK,CAAC,cAAc,EAAE;IACtB,YAAA,iBAAiB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;YAC/B;QACF;QAEQ,oBAAoB,GAAA;IAC1B,QAAA,MAAM,QAAQ,GAAG;gBACf,SAAS;gBACT,wBAAwB;gBACxB,uBAAuB;gBACvB,wBAAwB;gBACxB,0BAA0B;gBAC1B,iCAAiC;gBACjC;IACD,SAAA,CAAC,IAAI,CAAC,IAAI,CAAC;YAEZ,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAkB;QACzE;IAEQ,IAAA,eAAe,CAAC,KAAoB,EAAA;;YAE1C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC;YACzD,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC;YAEpE,IAAI,WAAW,EAAE;gBACf,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,2BAA2B,CAAgB;gBACzF,WAAW,EAAE,KAAK,EAAE;gBACpB,KAAK,CAAC,cAAc,EAAE;YACxB;iBAAO,IAAI,cAAc,EAAE;gBACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,mDAAmD,CAAgB;gBAC/G,YAAY,EAAE,KAAK,EAAE;gBACrB,KAAK,CAAC,cAAc,EAAE;YACxB;QACF;;QAGQ,sBAAsB,GAAA;;YAE5B,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAI;IAC7C,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;;IAG1C,YAAA,IAAI,MAAM,CAAC,OAAO,CAAC,mCAAmC,CAAC,EAAE;IACvD,gBAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;gBAClC;;IAGA,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oDAAoD,CAAC,EAAE;oBACpM,KAAK,CAAC,cAAc,EAAE;oBACtB,MAAM,CAAC,KAAK,EAAE;gBAChB;IACF,QAAA,CAAC,CAAC;QACJ;IAEQ,IAAA,oBAAoB,CAAC,KAAoB,EAAA;YAC/C,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBAC3F;YACF;IAEA,QAAA,MAAM,cAAc,GAAG,KAAK,CAAC,MAAqB;YAClD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,mCAAmC,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAkB;YAC/I,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC;IAEtD,QAAA,IAAI,SAAiB;IAErB,QAAA,QAAQ,KAAK,CAAC,GAAG;IACf,YAAA,KAAK,WAAW;gBAChB,KAAK,YAAY,EAAE;IACjB,gBAAA,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC;oBACtE;gBACF;IACA,YAAA,KAAK,SAAS;gBACd,KAAK,WAAW,EAAE;IAChB,gBAAA,SAAS,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;oBACtE;gBACF;gBACA,KAAK,MAAM,EAAE;oBACX,SAAS,GAAG,CAAC;oBACb;gBACF;gBACA,KAAK,KAAK,EAAE;IACV,gBAAA,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;oBAChC;gBACF;gBACA,SAAS;oBACP;gBACF;;YAGF,KAAK,CAAC,cAAc,EAAE;IACtB,QAAA,SAAS,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE;QAC/B;;QAGQ,oBAAoB,GAAA;YAC1B,MAAM,oBAAoB,GAAG,UAAU,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC,OAAO;YAE9F,IAAI,oBAAoB,EAAE;gBACxB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC;;gBAG5C,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM;;gBAGtD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;gBAC7C,KAAK,CAAC,WAAW,GAAG;;;;;;OAMnB;IACD,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAC7B;QACF;;QAGQ,sBAAsB,GAAA;YAC5B,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAI;IAClD,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;oBAC7B,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;wBACnC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;4BACvC,MAAM,OAAO,GAAG,IAAe;;IAG/B,wBAAA,IAAI,OAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,EAAE;gCAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,IAAI,gBAAgB,EAAE,WAAW,CAAC;4BACrE;;IAGA,wBAAA,IAAI,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,EAAE;gCAC/C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,IAAI,SAAS,EAAE,QAAQ,CAAC;4BAC3D;wBACF;IACF,gBAAA,CAAC,CAAC;IACJ,YAAA,CAAC,CAAC;IACJ,QAAA,CAAC,CAAC;IAEF,QAAA,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;IAC9B,YAAA,SAAS,EAAE,IAAI;IACf,YAAA,OAAO,EAAE;IACV,SAAA,CAAC;QACJ;;QAGQ,sBAAsB,GAAA;YAC5B,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;;gBAEnD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;IAC/B,gBAAA,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;gBACrC;;gBAGA,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;oBAC1C,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;wBAC7B,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACrC,oBAAA,MAAM,aAAa,GAAG,EAAE,CAAC,SAAS,KAAK,CAAC;wBAExC,IAAI,SAAS,EAAE;IACb,wBAAA,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;wBACjC;6BAAO,IAAI,aAAa,EAAE;IACxB,wBAAA,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;wBACjC;oBACF;IACF,YAAA,CAAC,CAAC;;IAGF,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;oBAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC;oBACjD,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE;oBACvD,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC;gBAC/C;IACF,QAAA,CAAC,CAAC;QACJ;;QAGQ,qBAAqB,GAAA;YAC3B,QAAQ,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;gBACrE,MAAM,SAAS,GAAG,KAAyB;;gBAG3C,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE;oBACpH,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC;oBACzD,IAAI,WAAW,EAAE;IACf,oBAAA,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC;oBACnD;gBACF;;IAGA,YAAA,IAAI,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;oBACtC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;oBACnC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE;wBACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;IAChD,oBAAA,SAAS,CAAC,SAAS,GAAG,4BAA4B;IAClD,oBAAA,SAAS,CAAC,WAAW,GAAG,aAAa;IACrC,oBAAA,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;oBACzB;gBACF;;IAGA,YAAA,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAK;IACzC,gBAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;IACjC,YAAA,CAAC,CAAC;IACJ,QAAA,CAAC,CAAC;QACJ;IAEQ,IAAA,eAAe,CAAC,KAAuB,EAAA;YAC7C,MAAM,OAAO,GAAG,CAAA,EAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,CAAA,MAAA,CAAQ;YACjD,IAAI,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;YAEnD,IAAI,CAAC,YAAY,EAAE;IACjB,YAAA,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC5C,YAAA,YAAY,CAAC,EAAE,GAAG,OAAO;IACzB,YAAA,YAAY,CAAC,SAAS,GAAG,kBAAkB;IAC3C,YAAA,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC1C,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC;YACjE;IAEA,QAAA,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC,iBAAiB;IAClD,QAAA,KAAK,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC/C,QAAA,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;YAEjC,IAAI,CAAC,QAAQ,CAAC,CAAA,SAAA,EAAY,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,WAAW,IAAI,KAAK,CAAC,IAAI,CAAA,EAAA,EAAK,KAAK,CAAC,iBAAiB,CAAA,CAAE,EAAE,WAAW,CAAC;QACpH;;QAGQ,wBAAwB,GAAA;YAC9B,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,KAAK,KAAI;IACpD,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAqB;gBACzC,MAAM,iBAAiB,GAAG,KAAK,CAAC,gBAAgB,CAAC,0EAA0E,CAAC;IAE5H,YAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;IAC/B,gBAAA,iBAAiB,CAAC,CAAC,CAAiB,CAAC,KAAK,EAAE;gBAC/C;;gBAGA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,aAA4B,CAAC;IAC/D,QAAA,CAAC,CAAC;IAEF,QAAA,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,MAAK;;gBAEhD,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;gBAC/C,IAAI,eAAe,EAAE;oBACnB,eAAe,CAAC,KAAK,EAAE;gBACzB;IACF,QAAA,CAAC,CAAC;QACJ;;QAGQ,2BAA2B,GAAA;YACjC,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,KAAK,KAAI;IACvD,YAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAqB;gBAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC;gBACrD,MAAM,SAAS,GAAG,IAAI,EAAE,aAAa,CAAC,WAAW,CAAgB;gBAEjE,IAAI,SAAS,EAAE;oBACb,SAAS,CAAC,KAAK,EAAE;gBACnB;IACF,QAAA,CAAC,CAAC;QACJ;;IAGO,IAAA,QAAQ,CAAC,OAAe,EAAE,QAAA,GAAmC,QAAQ,EAAA;IAC1E,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,gBAAgB,EAAE;YACzB;IAEA,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC;IACnD,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,OAAO;;gBAGrC,UAAU,CAAC,MAAK;IACd,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;IACnB,oBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE;oBAClC;gBACF,CAAC,EAAE,IAAI,CAAC;YACV;QACF;IAEO,IAAA,YAAY,CAAC,QAAgB,EAAA;YAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAgB;YAC/D,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,KAAK,EAAE;;IAGf,YAAA,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACjE;QACF;IAEO,IAAA,SAAS,CAAC,SAAsB,EAAA;YACrC,MAAM,iBAAiB,GAAG,SAAS,CAAC,gBAAgB,CAClD,0EAA0E,CAChD;YAE5B,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;IACpD,QAAA,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC;YACtC,MAAM,WAAW,GAAG,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;YAEzC,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAI;IAC9C,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;IACvB,gBAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;IAClB,oBAAA,IAAI,QAAQ,CAAC,aAAa,KAAK,YAAY,EAAE;4BAC3C,WAAW,EAAE,KAAK,EAAE;4BACpB,KAAK,CAAC,cAAc,EAAE;wBACxB;oBACF;IAAO,qBAAA,IAAI,QAAQ,CAAC,aAAa,KAAK,WAAW,EAAE;wBACjD,YAAY,CAAC,KAAK,EAAE;wBACpB,KAAK,CAAC,cAAc,EAAE;oBACxB;gBACF;IACF,QAAA,CAAC,CAAC;QACJ;QAEO,YAAY,GAAA;;YAEjB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;YAC3C,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC;gBACnD,IAAI,OAAO,EAAE;IACX,gBAAA,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;IACpC,gBAAA,OAAO,CAAC,EAAE,GAAG,MAAM;gBACrB;YACF;;IAGA,QAAA,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,KAAI;gBACpE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;IAC7B,gBAAA,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC;gBACxC;gBACA,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;oBACnC,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,CAAA,WAAA,EAAc,KAAK,GAAG,CAAC,CAAA,CAAE,CAAC;gBAC3D;IACF,QAAA,CAAC,CAAC;;YAGF,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,qCAAqC,CAAC;YAChF,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;IAClD,YAAA,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;YAC3C;QACF;IACD;IAED;AACO,UAAM,iBAAiB,GAAG,CAAC,MAAqC,KAA0B;IAC/F,IAAA,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC;IACzC;;IC9dA;;;;;IAKG;IAEH,kBAAkB,CAAC,MAAK;IACtB;;;IAGG;QACH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxC,MAAM,CAAC,cAAc,EAAE;IAEvB;;;IAGG;QACH,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;IAC7C,QAAA,aAAa,EAAE,IAAI;IACnB,QAAA,SAAS,EAAE,IAAI;IACf,QAAA,eAAe,EAAE,IAAI;IACrB,QAAA,kBAAkB,EAAE,IAAI;IACxB,QAAA,aAAa,EAAE;IAChB,KAAA,CAAC;;QAGF,oBAAoB,CAAC,YAAY,EAAE;;QAGnC,UAAU,CAAC,MAAK;YACd,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;QAC3C,CAAC,EAAE,GAAG,CAAC;IACT,CAAC,CAAC;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/js/adminlte.min.js b/js/adminlte.min.js new file mode 100644 index 0000000..3ae89fb --- /dev/null +++ b/js/adminlte.min.js @@ -0,0 +1,7 @@ +/*! + * AdminLTE v4.0.0-rc5 (https://adminlte.io) + * Copyright 2014-2025 Colorlib + * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE) + */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).adminlte={})}(this,function(e){"use strict";const t=[],n=e=>{"loading"===document.readyState?(t.length||document.addEventListener("DOMContentLoaded",()=>{for(const e of t)e()}),t.push(e)):e()},i=(e,t=500)=>{e.style.transitionProperty="height, margin, padding",e.style.transitionDuration=`${t}ms`,e.style.boxSizing="border-box",e.style.height=`${e.offsetHeight}px`,e.style.overflow="hidden",globalThis.setTimeout(()=>{e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0",e.style.marginTop="0",e.style.marginBottom="0"},1),globalThis.setTimeout(()=>{e.style.display="none",e.style.removeProperty("height"),e.style.removeProperty("padding-top"),e.style.removeProperty("padding-bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property")},t)},o=(e,t=500)=>{e.style.removeProperty("display");let{display:n}=globalThis.getComputedStyle(e);"none"===n&&(n="block"),e.style.display=n;const i=e.offsetHeight;e.style.overflow="hidden",e.style.height="0",e.style.paddingTop="0",e.style.paddingBottom="0",e.style.marginTop="0",e.style.marginBottom="0",globalThis.setTimeout(()=>{e.style.boxSizing="border-box",e.style.transitionProperty="height, margin, padding",e.style.transitionDuration=`${t}ms`,e.style.height=`${i}px`,e.style.removeProperty("padding-top"),e.style.removeProperty("padding-bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom")},1),globalThis.setTimeout(()=>{e.style.removeProperty("height"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property")},t)},s="hold-transition";class a{_element;constructor(e){this._element=e}holdTransition(){let e;window.addEventListener("resize",()=>{document.body.classList.add(s),clearTimeout(e),e=setTimeout(()=>{document.body.classList.remove(s)},400)})}}n(()=>{new a(document.body).holdTransition(),setTimeout(()=>{document.body.classList.add("app-loaded")},400)});const r=".lte.card-widget",l=`collapsed${r}`,c=`expanded${r}`,d=`remove${r}`,u=`maximized${r}`,m=`minimized${r}`,h="card",p="collapsed-card",g="collapsing-card",y="expanding-card",v="was-collapsed",b="maximized-card",f='[data-lte-toggle="card-remove"]',E='[data-lte-toggle="card-collapse"]',_='[data-lte-toggle="card-maximize"]',S=`.${h}`,L=".card-body",w=".card-footer",A={animationSpeed:500,collapseTrigger:E,removeTrigger:f,maximizeTrigger:_};class k{_element;_parent;_clone;_config;constructor(e,t){this._element=e,this._parent=e.closest(S),e.classList.contains(h)&&(this._parent=e),this._config={...A,...t}}collapse(){const e=new Event(l);if(this._parent){this._parent.classList.add(g);const e=this._parent?.querySelectorAll(`${L}, ${w}`);e.forEach(e=>{e instanceof HTMLElement&&i(e,this._config.animationSpeed)}),setTimeout(()=>{this._parent&&(this._parent.classList.add(p),this._parent.classList.remove(g))},this._config.animationSpeed)}this._element?.dispatchEvent(e)}expand(){const e=new Event(c);if(this._parent){this._parent.classList.add(y);const e=this._parent?.querySelectorAll(`${L}, ${w}`);e.forEach(e=>{e instanceof HTMLElement&&o(e,this._config.animationSpeed)}),setTimeout(()=>{this._parent&&this._parent.classList.remove(p,y)},this._config.animationSpeed)}this._element?.dispatchEvent(e)}remove(){const e=new Event(d);this._parent&&i(this._parent,this._config.animationSpeed),this._element?.dispatchEvent(e)}toggle(){this._parent?.classList.contains(p)?this.expand():this.collapse()}maximize(){const e=new Event(u);this._parent&&(this._parent.style.height=`${this._parent.offsetHeight}px`,this._parent.style.width=`${this._parent.offsetWidth}px`,this._parent.style.transition="all .15s",setTimeout(()=>{const e=document.querySelector("html");e&&e.classList.add(b),this._parent&&(this._parent.classList.add(b),this._parent.classList.contains(p)&&this._parent.classList.add(v))},150)),this._element?.dispatchEvent(e)}minimize(){const e=new Event(m);this._parent&&(this._parent.style.height="auto",this._parent.style.width="auto",this._parent.style.transition="all .15s",setTimeout(()=>{const e=document.querySelector("html");e&&e.classList.remove(b),this._parent&&(this._parent.classList.remove(b),this._parent?.classList.contains(v)&&this._parent.classList.remove(v))},10)),this._element?.dispatchEvent(e)}toggleMaximize(){this._parent?.classList.contains(b)?this.minimize():this.maximize()}}n(()=>{document.querySelectorAll(E).forEach(e=>{e.addEventListener("click",e=>{e.preventDefault();const t=e.target;new k(t,A).toggle()})}),document.querySelectorAll(f).forEach(e=>{e.addEventListener("click",e=>{e.preventDefault();const t=e.target;new k(t,A).remove()})}),document.querySelectorAll(_).forEach(e=>{e.addEventListener("click",e=>{e.preventDefault();const t=e.target;new k(t,A).toggleMaximize()})})});const x=".lte.treeview",q=`expanded${x}`,T=`collapsed${x}`,$=`load${x}`,M="menu-open",D=".nav-item",N=".nav-treeview",P={animationSpeed:300,accordion:!0};class F{_element;_config;constructor(e,t){this._element=e,this._config={...P,...t}}open(){const e=new Event(q);if(this._config.accordion){const e=this._element.parentElement?.querySelectorAll(`${D}.${M}`);e?.forEach(e=>{if(e!==this._element.parentElement){e.classList.remove(M);const t=e?.querySelector(N);t&&i(t,this._config.animationSpeed)}})}this._element.classList.add(M);const t=this._element?.querySelector(N);t&&o(t,this._config.animationSpeed),this._element.dispatchEvent(e)}close(){const e=new Event(T);this._element.classList.remove(M);const t=this._element?.querySelector(N);t&&i(t,this._config.animationSpeed),this._element.dispatchEvent(e)}toggle(){this._element.classList.contains(M)?this.close():this.open()}}n(()=>{document.querySelectorAll(`${D}.${M}`).forEach(e=>{const t=e.querySelector(N);if(t){o(t,0);const n=new Event($);e.dispatchEvent(n)}}),document.querySelectorAll('[data-lte-toggle="treeview"]').forEach(e=>{e.addEventListener("click",e=>{const t=e.target,n=t.closest(D),i=t.closest(".nav-link"),o=e.currentTarget;if("#"!==t?.getAttribute("href")&&"#"!==i?.getAttribute("href")||e.preventDefault(),n){const e=o.dataset.accordion,t=o.dataset.animationSpeed,i={accordion:void 0===e?P.accordion:"true"===e,animationSpeed:void 0===t?P.animationSpeed:Number(t)};new F(n,i).toggle()}})})});const R=".lte.direct-chat",C=`expanded${R}`,z=`collapsed${R}`,B="direct-chat-contacts-open";class H{_element;constructor(e){this._element=e}toggle(){if(this._element.classList.contains(B)){const e=new Event(z);this._element.classList.remove(B),this._element.dispatchEvent(e)}else{const e=new Event(C);this._element.classList.add(B),this._element.dispatchEvent(e)}}}n(()=>{document.querySelectorAll('[data-lte-toggle="chat-pane"]').forEach(e=>{e.addEventListener("click",e=>{e.preventDefault();const t=e.target.closest(".direct-chat");t&&new H(t).toggle()})})});const K=".lte.fullscreen",O=`maximized${K}`,W=`minimized${K}`,I='[data-lte-toggle="fullscreen"]',j='[data-lte-icon="maximize"]',U='[data-lte-icon="minimize"]';class V{_element;_config;constructor(e,t){this._element=e,this._config=t}inFullScreen(){const e=new Event(O),t=document.querySelector(j),n=document.querySelector(U);document.documentElement.requestFullscreen(),t&&(t.style.display="none"),n&&(n.style.display="block"),this._element.dispatchEvent(e)}outFullscreen(){const e=new Event(W),t=document.querySelector(j),n=document.querySelector(U);document.exitFullscreen(),t&&(t.style.display="block"),n&&(n.style.display="none"),this._element.dispatchEvent(e)}toggleFullScreen(){document.fullscreenEnabled&&(document.fullscreenElement?this.outFullscreen():this.inFullScreen())}}n(()=>{document.querySelectorAll(I).forEach(e=>{e.addEventListener("click",e=>{e.preventDefault();const t=e.target.closest(I);t&&new V(t,void 0).toggleFullScreen()})})});const G=".lte.push-menu",J=`open${G}`,Q=`collapse${G}`,X="sidebar-mini",Y="sidebar-collapse",Z="sidebar-open",ee="sidebar-expand",te=`[class*="${ee}"]`,ne='[data-lte-toggle="sidebar"]',ie={sidebarBreakpoint:992};class oe{_element;_config;constructor(e,t){this._element=e,this._config={...ie,...t}}menusClose(){document.querySelectorAll(".nav-treeview").forEach(e=>{e.style.removeProperty("display"),e.style.removeProperty("height")});const e=document.querySelector(".sidebar-menu"),t=e?.querySelectorAll(".nav-item");t&&t.forEach(e=>{e.classList.remove("menu-open")})}expand(){const e=new Event(J);document.body.classList.remove(Y),document.body.classList.add(Z),this._element.dispatchEvent(e)}collapse(){const e=new Event(Q);document.body.classList.remove(Z),document.body.classList.add(Y),this._element.dispatchEvent(e)}addSidebarBreakPoint(){const e=document.querySelector(te)?.classList??[],t=Array.from(e).find(e=>e.startsWith(ee))??"",n=document.getElementsByClassName(t)[0],i=globalThis.getComputedStyle(n,"::before").getPropertyValue("content");this._config={...this._config,sidebarBreakpoint:Number(i.replace(/[^\d.-]/g,""))};const o=document.body.classList.contains(Z);window.innerWidth<=this._config.sidebarBreakpoint?o||this.collapse():(document.body.classList.contains(X)||this.expand(),document.body.classList.contains(X)&&document.body.classList.contains(Y)&&this.collapse())}toggle(){document.body.classList.contains(Y)?this.expand():this.collapse()}init(){this.addSidebarBreakPoint()}}n(()=>{const e=document?.querySelector(".app-sidebar");if(e){const t=new oe(e,ie);t.init(),window.addEventListener("resize",()=>{t.init()})}const t=document.createElement("div");t.className="sidebar-overlay",document.querySelector(".app-wrapper")?.append(t);let n=!1;t.addEventListener("touchstart",()=>{n=!1},{passive:!0}),t.addEventListener("touchmove",()=>{n=!0},{passive:!0}),t.addEventListener("touchend",e=>{if(!n){e.preventDefault();const t=e.currentTarget;new oe(t,ie).collapse()}n=!1},{passive:!1}),t.addEventListener("click",e=>{e.preventDefault();const t=e.currentTarget;new oe(t,ie).collapse()}),document.querySelectorAll(ne).forEach(e=>{e.addEventListener("click",e=>{e.preventDefault();let t=e.currentTarget;"sidebar"!==t?.dataset.lteToggle&&(t=t?.closest(ne)),t&&(e?.preventDefault(),new oe(t,ie).toggle())})})});class se{config;liveRegion=null;focusHistory=[];constructor(e={}){this.config={announcements:!0,skipLinks:!0,focusManagement:!0,keyboardNavigation:!0,reducedMotion:!0,...e},this.init()}init(){this.config.announcements&&this.createLiveRegion(),this.config.skipLinks&&this.addSkipLinks(),this.config.focusManagement&&this.initFocusManagement(),this.config.keyboardNavigation&&this.initKeyboardNavigation(),this.config.reducedMotion&&this.respectReducedMotion(),this.initErrorAnnouncements(),this.initTableAccessibility(),this.initFormAccessibility()}createLiveRegion(){this.liveRegion||(this.liveRegion=document.createElement("div"),this.liveRegion.id="live-region",this.liveRegion.className="live-region",this.liveRegion.setAttribute("aria-live","polite"),this.liveRegion.setAttribute("aria-atomic","true"),this.liveRegion.setAttribute("role","status"),document.body.append(this.liveRegion))}addSkipLinks(){const e=document.createElement("div");e.className="skip-links";const t=document.createElement("a");t.href="#main",t.className="skip-link",t.textContent="Skip to main content";const n=document.createElement("a");n.href="#navigation",n.className="skip-link",n.textContent="Skip to navigation",e.append(t),e.append(n),document.body.insertBefore(e,document.body.firstChild),this.ensureSkipTargets()}ensureSkipTargets(){const e=document.querySelector('#main, main, [role="main"]');e&&!e.id&&(e.id="main"),e&&!e.hasAttribute("tabindex")&&e.setAttribute("tabindex","-1");const t=document.querySelector('#navigation, nav, [role="navigation"]');t&&!t.id&&(t.id="navigation"),t&&!t.hasAttribute("tabindex")&&t.setAttribute("tabindex","-1")}initFocusManagement(){document.addEventListener("keydown",e=>{"Tab"===e.key&&this.handleTabNavigation(e),"Escape"===e.key&&this.handleEscapeKey(e)}),this.initModalFocusManagement(),this.initDropdownFocusManagement()}handleTabNavigation(e){const t=this.getFocusableElements(),n=t.indexOf(document.activeElement);e.shiftKey?n<=0&&(e.preventDefault(),t.at(-1)?.focus()):n>=t.length-1&&(e.preventDefault(),t[0]?.focus())}getFocusableElements(){const e=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])','[contenteditable="true"]'].join(", ");return Array.from(document.querySelectorAll(e))}handleEscapeKey(e){const t=document.querySelector(".modal.show"),n=document.querySelector(".dropdown-menu.show");if(t){const n=t.querySelector('[data-bs-dismiss="modal"]');n?.click(),e.preventDefault()}else if(n){const t=document.querySelector('[data-bs-toggle="dropdown"][aria-expanded="true"]');t?.click(),e.preventDefault()}}initKeyboardNavigation(){document.addEventListener("keydown",e=>{const t=e.target;t.closest(".nav, .navbar-nav, .dropdown-menu")&&this.handleMenuNavigation(e),"Enter"!==e.key&&" "!==e.key||!t.hasAttribute("role")||"button"!==t.getAttribute("role")||t.matches('button, input[type="button"], input[type="submit"]')||(e.preventDefault(),t.click())})}handleMenuNavigation(e){if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;const t=e.target,n=Array.from(t.closest(".nav, .navbar-nav, .dropdown-menu")?.querySelectorAll("a, button")||[]),i=n.indexOf(t);let o;switch(e.key){case"ArrowDown":case"ArrowRight":o=i0?i-1:n.length-1;break;case"Home":o=0;break;case"End":o=n.length-1;break;default:return}e.preventDefault(),n[o]?.focus()}respectReducedMotion(){if(globalThis.matchMedia("(prefers-reduced-motion: reduce)").matches){document.body.classList.add("reduce-motion"),document.documentElement.style.scrollBehavior="auto";const e=document.createElement("style");e.textContent="\n *, *::before, *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n ",document.head.append(e)}}initErrorAnnouncements(){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if(e.nodeType===Node.ELEMENT_NODE){const t=e;t.matches(".alert-danger, .invalid-feedback, .error")&&this.announce(t.textContent||"Error occurred","assertive"),t.matches(".alert-success, .success")&&this.announce(t.textContent||"Success","polite")}})})}).observe(document.body,{childList:!0,subtree:!0})}initTableAccessibility(){document.querySelectorAll("table").forEach(e=>{if(e.hasAttribute("role")||e.setAttribute("role","table"),e.querySelectorAll("th").forEach(e=>{if(!e.hasAttribute("scope")){const t=e.closest("thead"),n=0===e.cellIndex;t?e.setAttribute("scope","col"):n&&e.setAttribute("scope","row")}}),!e.querySelector("caption")&&e.hasAttribute("title")){const t=document.createElement("caption");t.textContent=e.getAttribute("title")||"",e.insertBefore(t,e.firstChild)}})}initFormAccessibility(){document.querySelectorAll("input, select, textarea").forEach(e=>{const t=e;if(!t.labels?.length&&!t.hasAttribute("aria-label")&&!t.hasAttribute("aria-labelledby")){const e=t.getAttribute("placeholder");e&&t.setAttribute("aria-label",e)}if(t.hasAttribute("required")){const e=t.labels?.[0];if(e&&!e.querySelector(".required-indicator")){const t=document.createElement("span");t.className="required-indicator sr-only",t.textContent=" (required)",e.append(t)}}t.addEventListener("invalid",()=>{this.handleFormError(t)})})}handleFormError(e){const t=`${e.id||e.name}-error`;let n=document.getElementById(t);n||(n=document.createElement("div"),n.id=t,n.className="invalid-feedback",n.setAttribute("role","alert"),e.parentNode?.insertBefore(n,e.nextSibling)),n.textContent=e.validationMessage,e.setAttribute("aria-describedby",t),e.classList.add("is-invalid"),this.announce(`Error in ${e.labels?.[0]?.textContent||e.name}: ${e.validationMessage}`,"assertive")}initModalFocusManagement(){document.addEventListener("shown.bs.modal",e=>{const t=e.target.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');t.length>0&&t[0].focus(),this.focusHistory.push(document.activeElement)}),document.addEventListener("hidden.bs.modal",()=>{const e=this.focusHistory.pop();e&&e.focus()})}initDropdownFocusManagement(){document.addEventListener("shown.bs.dropdown",e=>{const t=e.target.querySelector(".dropdown-menu"),n=t?.querySelector("a, button");n&&n.focus()})}announce(e,t="polite"){this.liveRegion||this.createLiveRegion(),this.liveRegion&&(this.liveRegion.setAttribute("aria-live",t),this.liveRegion.textContent=e,setTimeout(()=>{this.liveRegion&&(this.liveRegion.textContent="")},1e3))}focusElement(e){const t=document.querySelector(e);t&&(t.focus(),t.scrollIntoView({behavior:"smooth",block:"center"}))}trapFocus(e){const t=e.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),n=Array.from(t),i=n[0],o=n.at(-1);e.addEventListener("keydown",e=>{"Tab"===e.key&&(e.shiftKey?document.activeElement===i&&(o?.focus(),e.preventDefault()):document.activeElement===o&&(i.focus(),e.preventDefault()))})}addLandmarks(){if(!document.querySelector("main")){const e=document.querySelector(".app-main");e&&(e.setAttribute("role","main"),e.id="main")}document.querySelectorAll(".navbar-nav, .nav").forEach((e,t)=>{e.hasAttribute("role")||e.setAttribute("role","navigation"),e.hasAttribute("aria-label")||e.setAttribute("aria-label",`Navigation ${t+1}`)});const e=document.querySelector('form[role="search"], .navbar-search');e&&!e.hasAttribute("role")&&e.setAttribute("role","search")}}const ae=e=>new se(e);n(()=>{new a(document.body).holdTransition(),ae({announcements:!0,skipLinks:!0,focusManagement:!0,keyboardNavigation:!0,reducedMotion:!0}).addLandmarks(),setTimeout(()=>{document.body.classList.add("app-loaded")},400)}),e.CardWidget=k,e.DirectChat=H,e.FullScreen=V,e.Layout=a,e.PushMenu=oe,e.Treeview=F,e.initAccessibility=ae}); +//# sourceMappingURL=adminlte.min.js.map \ No newline at end of file diff --git a/js/adminlte.min.js.map b/js/adminlte.min.js.map new file mode 100644 index 0000000..9cff7b5 --- /dev/null +++ b/js/adminlte.min.js.map @@ -0,0 +1 @@ +{"version":3,"names":["domContentLoadedCallbacks","onDOMContentLoaded","callback","document","readyState","length","addEventListener","push","slideUp","target","duration","style","transitionProperty","transitionDuration","boxSizing","height","offsetHeight","overflow","globalThis","setTimeout","paddingTop","paddingBottom","marginTop","marginBottom","display","removeProperty","slideDown","getComputedStyle","CLASS_NAME_HOLD_TRANSITIONS","Layout","_element","constructor","element","this","holdTransition","resizeTimer","window","body","classList","add","clearTimeout","remove","EVENT_KEY","EVENT_COLLAPSED","EVENT_EXPANDED","EVENT_REMOVE","EVENT_MAXIMIZED","EVENT_MINIMIZED","CLASS_NAME_CARD","CLASS_NAME_COLLAPSED","CLASS_NAME_COLLAPSING","CLASS_NAME_EXPANDING","CLASS_NAME_WAS_COLLAPSED","CLASS_NAME_MAXIMIZED","SELECTOR_DATA_REMOVE","SELECTOR_DATA_COLLAPSE","SELECTOR_DATA_MAXIMIZE","SELECTOR_CARD","SELECTOR_CARD_BODY","SELECTOR_CARD_FOOTER","Default","animationSpeed","collapseTrigger","removeTrigger","maximizeTrigger","CardWidget","_parent","_clone","_config","config","closest","contains","collapse","event","Event","elm","querySelectorAll","forEach","el","HTMLElement","dispatchEvent","expand","toggle","maximize","width","offsetWidth","transition","htmlTag","querySelector","minimize","toggleMaximize","btn","preventDefault","EVENT_LOAD_DATA_API","CLASS_NAME_MENU_OPEN","SELECTOR_NAV_ITEM","SELECTOR_TREEVIEW_MENU","accordion","Treeview","open","openMenuList","parentElement","openMenu","childElement","close","menuItem","targetItem","targetLink","lteToggleElement","currentTarget","getAttribute","accordionAttr","dataset","animationSpeedAttr","undefined","Number","CLASS_NAME_DIRECT_CHAT_OPEN","DirectChat","chatPane","SELECTOR_FULLSCREEN_TOGGLE","SELECTOR_MAXIMIZE_ICON","SELECTOR_MINIMIZE_ICON","FullScreen","inFullScreen","iconMaximize","iconMinimize","documentElement","requestFullscreen","outFullscreen","exitFullscreen","toggleFullScreen","fullscreenEnabled","fullscreenElement","button","EVENT_OPEN","EVENT_COLLAPSE","CLASS_NAME_SIDEBAR_MINI","CLASS_NAME_SIDEBAR_COLLAPSE","CLASS_NAME_SIDEBAR_OPEN","CLASS_NAME_SIDEBAR_EXPAND","SELECTOR_SIDEBAR_EXPAND","SELECTOR_SIDEBAR_TOGGLE","Defaults","sidebarBreakpoint","PushMenu","menusClose","navTree","navSidebar","navItem","navI","addSidebarBreakPoint","sidebarExpandList","sidebarExpand","Array","from","find","className","startsWith","sidebar","getElementsByClassName","sidebarContent","getPropertyValue","replace","isCurrentlyOpen","innerWidth","init","data","sidebarOverlay","createElement","append","overlayTouchMoved","passive","lteToggle","AccessibilityManager","liveRegion","focusHistory","announcements","skipLinks","focusManagement","keyboardNavigation","reducedMotion","createLiveRegion","addSkipLinks","initFocusManagement","initKeyboardNavigation","respectReducedMotion","initErrorAnnouncements","initTableAccessibility","initFormAccessibility","id","setAttribute","skipLinksContainer","skipToMain","href","textContent","skipToNav","insertBefore","firstChild","ensureSkipTargets","main","hasAttribute","nav","key","handleTabNavigation","handleEscapeKey","initModalFocusManagement","initDropdownFocusManagement","focusableElements","getFocusableElements","currentIndex","indexOf","activeElement","shiftKey","at","focus","selector","join","activeModal","activeDropdown","closeButton","click","toggleButton","handleMenuNavigation","matches","includes","currentElement","menuItems","nextIndex","matchMedia","scrollBehavior","head","MutationObserver","mutations","mutation","addedNodes","node","nodeType","Node","ELEMENT_NODE","announce","observe","childList","subtree","table","th","isInThead","isFirstColumn","cellIndex","caption","input","htmlInput","labels","placeholder","label","indicator","handleFormError","errorId","name","errorElement","getElementById","parentNode","nextSibling","validationMessage","previousElement","pop","menu","firstItem","message","priority","focusElement","scrollIntoView","behavior","block","trapFocus","container","focusableArray","firstElement","lastElement","addLandmarks","appMain","index","searchForm","initAccessibility"],"sources":["../../src/ts/util/index.ts","../../src/ts/layout.ts","../../src/ts/card-widget.ts","../../src/ts/treeview.ts","../../src/ts/direct-chat.ts","../../src/ts/fullscreen.ts","../../src/ts/push-menu.ts","../../src/ts/accessibility.ts","../../src/ts/adminlte.ts"],"mappings":";;;;;+OAAA,MAAMA,EAA+C,GAE/CC,EAAsBC,IACE,YAAxBC,SAASC,YAENJ,EAA0BK,QAC7BF,SAASG,iBAAiB,mBAAoB,KAC5C,IAAK,MAAMJ,KAAYF,EACrBE,MAKNF,EAA0BO,KAAKL,IAE/BA,KAkCEM,EAAU,CAACC,EAAqBC,EAAW,OAC/CD,EAAOE,MAAMC,mBAAqB,0BAClCH,EAAOE,MAAME,mBAAqB,GAAGH,MACrCD,EAAOE,MAAMG,UAAY,aACzBL,EAAOE,MAAMI,OAAS,GAAGN,EAAOO,iBAChCP,EAAOE,MAAMM,SAAW,SAExBC,WAAWC,WAAW,KACpBV,EAAOE,MAAMI,OAAS,IACtBN,EAAOE,MAAMS,WAAa,IAC1BX,EAAOE,MAAMU,cAAgB,IAC7BZ,EAAOE,MAAMW,UAAY,IACzBb,EAAOE,MAAMY,aAAe,KAC3B,GAEHL,WAAWC,WAAW,KACpBV,EAAOE,MAAMa,QAAU,OACvBf,EAAOE,MAAMc,eAAe,UAC5BhB,EAAOE,MAAMc,eAAe,eAC5BhB,EAAOE,MAAMc,eAAe,kBAC5BhB,EAAOE,MAAMc,eAAe,cAC5BhB,EAAOE,MAAMc,eAAe,iBAC5BhB,EAAOE,MAAMc,eAAe,YAC5BhB,EAAOE,MAAMc,eAAe,uBAC5BhB,EAAOE,MAAMc,eAAe,wBAC3Bf,IAICgB,EAAY,CAACjB,EAAqBC,EAAW,OACjDD,EAAOE,MAAMc,eAAe,WAC5B,IAAID,QAAEA,GAAYN,WAAWS,iBAAiBlB,GAE9B,SAAZe,IACFA,EAAU,SAGZf,EAAOE,MAAMa,QAAUA,EACvB,MAAMT,EAASN,EAAOO,aACtBP,EAAOE,MAAMM,SAAW,SACxBR,EAAOE,MAAMI,OAAS,IACtBN,EAAOE,MAAMS,WAAa,IAC1BX,EAAOE,MAAMU,cAAgB,IAC7BZ,EAAOE,MAAMW,UAAY,IACzBb,EAAOE,MAAMY,aAAe,IAE5BL,WAAWC,WAAW,KACpBV,EAAOE,MAAMG,UAAY,aACzBL,EAAOE,MAAMC,mBAAqB,0BAClCH,EAAOE,MAAME,mBAAqB,GAAGH,MACrCD,EAAOE,MAAMI,OAAS,GAAGA,MACzBN,EAAOE,MAAMc,eAAe,eAC5BhB,EAAOE,MAAMc,eAAe,kBAC5BhB,EAAOE,MAAMc,eAAe,cAC5BhB,EAAOE,MAAMc,eAAe,kBAC3B,GAEHP,WAAWC,WAAW,KACpBV,EAAOE,MAAMc,eAAe,UAC5BhB,EAAOE,MAAMc,eAAe,YAC5BhB,EAAOE,MAAMc,eAAe,uBAC5BhB,EAAOE,MAAMc,eAAe,wBAC3Bf,IC7FCkB,EAA8B,kBAQpC,MAAMC,EACJC,SAEA,WAAAC,CAAYC,GACVC,KAAKH,SAAWE,CAClB,CAEA,cAAAE,GACE,IAAIC,EACJC,OAAO9B,iBAAiB,SAAU,KAChCH,SAASkC,KAAKC,UAAUC,IAAIX,GAC5BY,aAAaL,GACbA,EAAchB,WAAW,KACvBhB,SAASkC,KAAKC,UAAUG,OAAOb,IAC9B,MAEP,EAGF3B,EAAmB,KACJ,IAAI4B,EAAO1B,SAASkC,MAC5BH,iBACLf,WAAW,KACThB,SAASkC,KAAKC,UAAUC,IA9BE,eA+BzB,OC/BL,MACMG,EAAY,mBACZC,EAAkB,YAAYD,IAC9BE,EAAiB,WAAWF,IAC5BG,EAAe,SAASH,IACxBI,EAAkB,YAAYJ,IAC9BK,EAAkB,YAAYL,IAE9BM,EAAkB,OAClBC,EAAuB,iBACvBC,EAAwB,kBACxBC,EAAuB,iBACvBC,EAA2B,gBAC3BC,EAAuB,iBAEvBC,EAAuB,kCACvBC,EAAyB,oCACzBC,EAAyB,oCACzBC,EAAgB,IAAIT,IACpBU,EAAqB,aACrBC,EAAuB,eASvBC,EAAkB,CACtBC,eAAgB,IAChBC,gBAAiBP,EACjBQ,cAAeT,EACfU,gBAAiBR,GAGnB,MAAMS,EACJnC,SACAoC,QACAC,OACAC,QAEA,WAAArC,CAAYC,EAAsBqC,GAChCpC,KAAKH,SAAWE,EAChBC,KAAKiC,QAAUlC,EAAQsC,QAAQb,GAE3BzB,EAAQM,UAAUiC,SAASvB,KAC7Bf,KAAKiC,QAAUlC,GAGjBC,KAAKmC,QAAU,IAAKR,KAAYS,EAClC,CAEA,QAAAG,GACE,MAAMC,EAAQ,IAAIC,MAAM/B,GAExB,GAAIV,KAAKiC,QAAS,CAChBjC,KAAKiC,QAAQ5B,UAAUC,IAAIW,GAE3B,MAAMyB,EAAM1C,KAAKiC,SAASU,iBAAiB,GAAGlB,MAAuBC,KAErEgB,EAAIE,QAAQC,IACNA,aAAcC,aAChBvE,EAAQsE,EAAI7C,KAAKmC,QAAQP,kBAI7B1C,WAAW,KACLc,KAAKiC,UACPjC,KAAKiC,QAAQ5B,UAAUC,IAAIU,GAC3BhB,KAAKiC,QAAQ5B,UAAUG,OAAOS,KAE/BjB,KAAKmC,QAAQP,eAClB,CAEA5B,KAAKH,UAAUkD,cAAcP,EAC/B,CAEA,MAAAQ,GACE,MAAMR,EAAQ,IAAIC,MAAM9B,GAExB,GAAIX,KAAKiC,QAAS,CAChBjC,KAAKiC,QAAQ5B,UAAUC,IAAIY,GAE3B,MAAMwB,EAAM1C,KAAKiC,SAASU,iBAAiB,GAAGlB,MAAuBC,KAErEgB,EAAIE,QAAQC,IACNA,aAAcC,aAChBrD,EAAUoD,EAAI7C,KAAKmC,QAAQP,kBAI/B1C,WAAW,KACLc,KAAKiC,SACPjC,KAAKiC,QAAQ5B,UAAUG,OAAOQ,EAAsBE,IAErDlB,KAAKmC,QAAQP,eAClB,CAEA5B,KAAKH,UAAUkD,cAAcP,EAC/B,CAEA,MAAAhC,GACE,MAAMgC,EAAQ,IAAIC,MAAM7B,GAEpBZ,KAAKiC,SACP1D,EAAQyB,KAAKiC,QAASjC,KAAKmC,QAAQP,gBAGrC5B,KAAKH,UAAUkD,cAAcP,EAC/B,CAEA,MAAAS,GACMjD,KAAKiC,SAAS5B,UAAUiC,SAAStB,GACnChB,KAAKgD,SAIPhD,KAAKuC,UACP,CAEA,QAAAW,GACE,MAAMV,EAAQ,IAAIC,MAAM5B,GAEpBb,KAAKiC,UACPjC,KAAKiC,QAAQvD,MAAMI,OAAS,GAAGkB,KAAKiC,QAAQlD,iBAC5CiB,KAAKiC,QAAQvD,MAAMyE,MAAQ,GAAGnD,KAAKiC,QAAQmB,gBAC3CpD,KAAKiC,QAAQvD,MAAM2E,WAAa,WAEhCnE,WAAW,KACT,MAAMoE,EAAUpF,SAASqF,cAAc,QAEnCD,GACFA,EAAQjD,UAAUC,IAAIc,GAGpBpB,KAAKiC,UACPjC,KAAKiC,QAAQ5B,UAAUC,IAAIc,GAEvBpB,KAAKiC,QAAQ5B,UAAUiC,SAAStB,IAClChB,KAAKiC,QAAQ5B,UAAUC,IAAIa,KAG9B,MAGLnB,KAAKH,UAAUkD,cAAcP,EAC/B,CAEA,QAAAgB,GACE,MAAMhB,EAAQ,IAAIC,MAAM3B,GAEpBd,KAAKiC,UACPjC,KAAKiC,QAAQvD,MAAMI,OAAS,OAC5BkB,KAAKiC,QAAQvD,MAAMyE,MAAQ,OAC3BnD,KAAKiC,QAAQvD,MAAM2E,WAAa,WAEhCnE,WAAW,KACT,MAAMoE,EAAUpF,SAASqF,cAAc,QAEnCD,GACFA,EAAQjD,UAAUG,OAAOY,GAGvBpB,KAAKiC,UACPjC,KAAKiC,QAAQ5B,UAAUG,OAAOY,GAE1BpB,KAAKiC,SAAS5B,UAAUiC,SAASnB,IACnCnB,KAAKiC,QAAQ5B,UAAUG,OAAOW,KAGjC,KAGLnB,KAAKH,UAAUkD,cAAcP,EAC/B,CAEA,cAAAiB,GACMzD,KAAKiC,SAAS5B,UAAUiC,SAASlB,GACnCpB,KAAKwD,WAIPxD,KAAKkD,UACP,EASFlF,EAAmB,KACGE,SAASyE,iBAAiBrB,GAElCsB,QAAQc,IAClBA,EAAIrF,iBAAiB,QAASmE,IAC5BA,EAAMmB,iBACN,MAAMnF,EAASgE,EAAMhE,OACR,IAAIwD,EAAWxD,EAAQmD,GAC/BsB,aAIS/E,SAASyE,iBAAiBtB,GAElCuB,QAAQc,IAChBA,EAAIrF,iBAAiB,QAASmE,IAC5BA,EAAMmB,iBACN,MAAMnF,EAASgE,EAAMhE,OACR,IAAIwD,EAAWxD,EAAQmD,GAC/BnB,aAIMtC,SAASyE,iBAAiBpB,GAElCqB,QAAQc,IACbA,EAAIrF,iBAAiB,QAASmE,IAC5BA,EAAMmB,iBACN,MAAMnF,EAASgE,EAAMhE,OACR,IAAIwD,EAAWxD,EAAQmD,GAC/B8B,uBC7NX,MACMhD,EAAY,gBAEZE,EAAiB,WAAWF,IAC5BC,EAAkB,YAAYD,IAC9BmD,EAAsB,OAAOnD,IAE7BoD,EAAuB,YACvBC,EAAoB,YAEpBC,EAAyB,gBAGzBpC,EAAU,CACdC,eAAgB,IAChBoC,WAAW,GAab,MAAMC,EACJpE,SACAsC,QAEA,WAAArC,CAAYC,EAAsBqC,GAChCpC,KAAKH,SAAWE,EAChBC,KAAKmC,QAAU,IAAKR,KAAYS,EAClC,CAEA,IAAA8B,GACE,MAAM1B,EAAQ,IAAIC,MAAM9B,GAExB,GAAIX,KAAKmC,QAAQ6B,UAAW,CAC1B,MAAMG,EAAenE,KAAKH,SAASuE,eAAezB,iBAAiB,GAAGmB,KAAqBD,KAE3FM,GAAcvB,QAAQyB,IACpB,GAAIA,IAAarE,KAAKH,SAASuE,cAAe,CAC5CC,EAAShE,UAAUG,OAAOqD,GAC1B,MAAMS,EAAeD,GAAUd,cAAcQ,GACzCO,GACF/F,EAAQ+F,EAActE,KAAKmC,QAAQP,eAEvC,GAEJ,CAEA5B,KAAKH,SAASQ,UAAUC,IAAIuD,GAE5B,MAAMS,EAAetE,KAAKH,UAAU0D,cAAcQ,GAC9CO,GACF7E,EAAU6E,EAActE,KAAKmC,QAAQP,gBAGvC5B,KAAKH,SAASkD,cAAcP,EAC9B,CAEA,KAAA+B,GACE,MAAM/B,EAAQ,IAAIC,MAAM/B,GAExBV,KAAKH,SAASQ,UAAUG,OAAOqD,GAE/B,MAAMS,EAAetE,KAAKH,UAAU0D,cAAcQ,GAC9CO,GACF/F,EAAQ+F,EAActE,KAAKmC,QAAQP,gBAGrC5B,KAAKH,SAASkD,cAAcP,EAC9B,CAEA,MAAAS,GACMjD,KAAKH,SAASQ,UAAUiC,SAASuB,GACnC7D,KAAKuE,QAELvE,KAAKkE,MAET,EASFlG,EAAmB,KACKE,SAASyE,iBAAiB,GAAGmB,KAAqBD,KAE1DjB,QAAQ4B,IACpB,MAAMF,EAAeE,EAASjB,cAAcQ,GAC5C,GAAIO,EAAc,CAChB7E,EAAU6E,EAAc,GAExB,MAAM9B,EAAQ,IAAIC,MAAMmB,GACxBY,EAASzB,cAAcP,EACzB,IAGatE,SAASyE,iBA9FG,gCAgGpBC,QAAQc,IACbA,EAAIrF,iBAAiB,QAASmE,IAC5B,MAAMhE,EAASgE,EAAMhE,OACfiG,EAAajG,EAAO6D,QAAQyB,GAC5BY,EAAalG,EAAO6D,QAtGN,aAuGdsC,EAAmBnC,EAAMoC,cAM/B,GAJqC,MAAjCpG,GAAQqG,aAAa,SAAwD,MAArCH,GAAYG,aAAa,SACnErC,EAAMmB,iBAGJc,EAAY,CAEd,MAAMK,EAAgBH,EAAiBI,QAAQf,UACzCgB,EAAqBL,EAAiBI,QAAQnD,eAG9CQ,EAAiB,CACrB4B,eAA6BiB,IAAlBH,EAA8BnD,EAAQqC,UAA8B,SAAlBc,EAC7DlD,oBAAuCqD,IAAvBD,EAAmCrD,EAAQC,eAAiBsD,OAAOF,IAGxE,IAAIf,EAASQ,EAAYrC,GACjCa,QACP,QCvIN,MACMxC,EAAY,mBACZE,EAAiB,WAAWF,IAC5BC,EAAkB,YAAYD,IAK9B0E,EAA8B,4BAOpC,MAAMC,EACJvF,SACA,WAAAC,CAAYC,GACVC,KAAKH,SAAWE,CAClB,CAEA,MAAAkD,GACE,GAAIjD,KAAKH,SAASQ,UAAUiC,SAAS6C,GAA8B,CACjE,MAAM3C,EAAQ,IAAIC,MAAM/B,GAExBV,KAAKH,SAASQ,UAAUG,OAAO2E,GAE/BnF,KAAKH,SAASkD,cAAcP,EAC9B,KAAO,CACL,MAAMA,EAAQ,IAAIC,MAAM9B,GAExBX,KAAKH,SAASQ,UAAUC,IAAI6E,GAE5BnF,KAAKH,SAASkD,cAAcP,EAC9B,CACF,EASFxE,EAAmB,KACFE,SAASyE,iBAxCG,iCA0CpBC,QAAQc,IACbA,EAAIrF,iBAAiB,QAASmE,IAC5BA,EAAMmB,iBACN,MACM0B,EADS7C,EAAMhE,OACG6D,QA7CD,gBA+CnBgD,GACW,IAAID,EAAWC,GACvBpC,eCxDb,MACMxC,EAAY,kBACZI,EAAkB,YAAYJ,IAC9BK,EAAkB,YAAYL,IAE9B6E,EAA6B,iCAC7BC,EAAyB,6BACzBC,EAAyB,6BAM/B,MAAMC,EACJ5F,SACAsC,QAEA,WAAArC,CAAYC,EAAsBqC,GAChCpC,KAAKH,SAAWE,EAChBC,KAAKmC,QAAUC,CACjB,CAEA,YAAAsD,GACE,MAAMlD,EAAQ,IAAIC,MAAM5B,GAElB8E,EAAezH,SAASqF,cAA2BgC,GACnDK,EAAe1H,SAASqF,cAA2BiC,GAEpDtH,SAAS2H,gBAAgBC,oBAE1BH,IACFA,EAAajH,MAAMa,QAAU,QAG3BqG,IACFA,EAAalH,MAAMa,QAAU,SAG/BS,KAAKH,SAASkD,cAAcP,EAC9B,CAEA,aAAAuD,GACE,MAAMvD,EAAQ,IAAIC,MAAM3B,GAElB6E,EAAezH,SAASqF,cAA2BgC,GACnDK,EAAe1H,SAASqF,cAA2BiC,GAEpDtH,SAAS8H,iBAEVL,IACFA,EAAajH,MAAMa,QAAU,SAG3BqG,IACFA,EAAalH,MAAMa,QAAU,QAG/BS,KAAKH,SAASkD,cAAcP,EAC9B,CAEA,gBAAAyD,GACM/H,SAASgI,oBACPhI,SAASiI,kBACXnG,KAAK+F,gBAEL/F,KAAK0F,eAGX,EAOF1H,EAAmB,KACDE,SAASyE,iBAAiB2C,GAElC1C,QAAQc,IACdA,EAAIrF,iBAAiB,QAASmE,IAC5BA,EAAMmB,iBAEN,MACMyC,EADS5D,EAAMhE,OACC6D,QAAQiD,GAE1Bc,GACW,IAAIX,EAAWW,OAAQnB,GAC/BgB,yBCrFb,MACMxF,EAAY,iBAEZ4F,EAAa,OAAO5F,IACpB6F,EAAiB,WAAW7F,IAE5B8F,EAA0B,eAC1BC,EAA8B,mBAC9BC,EAA0B,eAC1BC,GAA4B,iBAS5BC,GAA0B,YAAYD,OACtCE,GAA0B,8BAM1BC,GAAW,CACfC,kBAAmB,KAQrB,MAAMC,GACJlH,SACAsC,QAEA,WAAArC,CAAYC,EAAsBqC,GAChCpC,KAAKH,SAAWE,EAChBC,KAAKmC,QAAU,IAAK0E,MAAazE,EACnC,CAEA,UAAA4E,GACsB9I,SAASyE,iBA5BH,iBA8BdC,QAAQqE,IAClBA,EAAQvI,MAAMc,eAAe,WAC7ByH,EAAQvI,MAAMc,eAAe,YAG/B,MAAM0H,EAAahJ,SAASqF,cArCF,iBAsCpB4D,EAAUD,GAAYvE,iBArCN,aAuClBwE,GACFA,EAAQvE,QAAQwE,IACdA,EAAK/G,UAAUG,OA7CM,cAgD3B,CAEA,MAAAwC,GACE,MAAMR,EAAQ,IAAIC,MAAM4D,GAExBnI,SAASkC,KAAKC,UAAUG,OAAOgG,GAC/BtI,SAASkC,KAAKC,UAAUC,IAAImG,GAE5BzG,KAAKH,SAASkD,cAAcP,EAC9B,CAEA,QAAAD,GACE,MAAMC,EAAQ,IAAIC,MAAM6D,GAExBpI,SAASkC,KAAKC,UAAUG,OAAOiG,GAC/BvI,SAASkC,KAAKC,UAAUC,IAAIkG,GAE5BxG,KAAKH,SAASkD,cAAcP,EAC9B,CAEA,oBAAA6E,GACE,MAAMC,EAAoBpJ,SAASqF,cAAcoD,KAA0BtG,WAAa,GAClFkH,EAAgBC,MAAMC,KAAKH,GAAmBI,KAAKC,GAAaA,EAAUC,WAAWlB,MAA+B,GACpHmB,EAAU3J,SAAS4J,uBAAuBP,GAAe,GACzDQ,EAAiB9I,WAAWS,iBAAiBmI,EAAS,YAAYG,iBAAiB,WACzFhI,KAAKmC,QAAU,IAAKnC,KAAKmC,QAAS2E,kBAAmB5B,OAAO6C,EAAeE,QAAQ,WAAY,MAI/F,MAAMC,EAAkBhK,SAASkC,KAAKC,UAAUiC,SAASmE,GAErDtG,OAAOgI,YAAcnI,KAAKmC,QAAQ2E,kBAE/BoB,GACHlI,KAAKuC,YAGFrE,SAASkC,KAAKC,UAAUiC,SAASiE,IACpCvG,KAAKgD,SAGH9E,SAASkC,KAAKC,UAAUiC,SAASiE,IAA4BrI,SAASkC,KAAKC,UAAUiC,SAASkE,IAChGxG,KAAKuC,WAGX,CAEA,MAAAU,GACM/E,SAASkC,KAAKC,UAAUiC,SAASkE,GACnCxG,KAAKgD,SAELhD,KAAKuC,UAET,CAEA,IAAA6F,GACEpI,KAAKqH,sBACP,EASFrJ,EAAmB,KACjB,MAAM6J,EAAU3J,UAAUqF,cAjHC,gBAmH3B,GAAIsE,EAAS,CACX,MAAMQ,EAAO,IAAItB,GAASc,EAAShB,IACnCwB,EAAKD,OAELjI,OAAO9B,iBAAiB,SAAU,KAChCgK,EAAKD,QAET,CAEA,MAAME,EAAiBpK,SAASqK,cAAc,OAC9CD,EAAeX,UAhIkB,kBAiIjCzJ,SAASqF,cA1HkB,iBA0HmBiF,OAAOF,GAErD,IAAIG,GAAoB,EAGxBH,EAAejK,iBAAiB,aAAc,KAC5CoK,GAAoB,GACnB,CAAEC,SAAS,IAEdJ,EAAejK,iBAAiB,YAAa,KAC3CoK,GAAoB,GACnB,CAAEC,SAAS,IAEdJ,EAAejK,iBAAiB,WAAYmE,IAC1C,IAAKiG,EAAmB,CACtBjG,EAAMmB,iBACN,MAAMnF,EAASgE,EAAMoC,cACR,IAAImC,GAASvI,EAAQqI,IAC7BtE,UACP,CACAkG,GAAoB,GACnB,CAAEC,SAAS,IAGdJ,EAAejK,iBAAiB,QAASmE,IACvCA,EAAMmB,iBACN,MAAMnF,EAASgE,EAAMoC,cACR,IAAImC,GAASvI,EAAQqI,IAC7BtE,aAGSrE,SAASyE,iBAAiBiE,IAElChE,QAAQc,IACdA,EAAIrF,iBAAiB,QAASmE,IAC5BA,EAAMmB,iBAEN,IAAIyC,EAAS5D,EAAMoC,cAEe,YAA9BwB,GAAQrB,QAAQ4D,YAClBvC,EAASA,GAAQ/D,QAAQuE,KAGvBR,IACF5D,GAAOmB,iBACM,IAAIoD,GAASX,EAAQS,IAC7B5D,gB,MC9LA2F,GACHxG,OACAyG,WAAiC,KACjCC,aAA8B,GAEtC,WAAAhJ,CAAYsC,EAAuC,IACjDpC,KAAKoC,OAAS,CACZ2G,eAAe,EACfC,WAAW,EACXC,iBAAiB,EACjBC,oBAAoB,EACpBC,eAAe,KACZ/G,GAGLpC,KAAKoI,MACP,CAEQ,IAAAA,GACFpI,KAAKoC,OAAO2G,eACd/I,KAAKoJ,mBAGHpJ,KAAKoC,OAAO4G,WACdhJ,KAAKqJ,eAGHrJ,KAAKoC,OAAO6G,iBACdjJ,KAAKsJ,sBAGHtJ,KAAKoC,OAAO8G,oBACdlJ,KAAKuJ,yBAGHvJ,KAAKoC,OAAO+G,eACdnJ,KAAKwJ,uBAGPxJ,KAAKyJ,yBACLzJ,KAAK0J,yBACL1J,KAAK2J,uBACP,CAGQ,gBAAAP,GACFpJ,KAAK6I,aAET7I,KAAK6I,WAAa3K,SAASqK,cAAc,OACzCvI,KAAK6I,WAAWe,GAAK,cACrB5J,KAAK6I,WAAWlB,UAAY,cAC5B3H,KAAK6I,WAAWgB,aAAa,YAAa,UAC1C7J,KAAK6I,WAAWgB,aAAa,cAAe,QAC5C7J,KAAK6I,WAAWgB,aAAa,OAAQ,UAErC3L,SAASkC,KAAKoI,OAAOxI,KAAK6I,YAC5B,CAGQ,YAAAQ,GACN,MAAMS,EAAqB5L,SAASqK,cAAc,OAClDuB,EAAmBnC,UAAY,aAE/B,MAAMoC,EAAa7L,SAASqK,cAAc,KAC1CwB,EAAWC,KAAO,QAClBD,EAAWpC,UAAY,YACvBoC,EAAWE,YAAc,uBAEzB,MAAMC,EAAYhM,SAASqK,cAAc,KACzC2B,EAAUF,KAAO,cACjBE,EAAUvC,UAAY,YACtBuC,EAAUD,YAAc,qBAExBH,EAAmBtB,OAAOuB,GAC1BD,EAAmBtB,OAAO0B,GAE1BhM,SAASkC,KAAK+J,aAAaL,EAAoB5L,SAASkC,KAAKgK,YAG7DpK,KAAKqK,mBACP,CAEQ,iBAAAA,GACN,MAAMC,EAAOpM,SAASqF,cAAc,8BAChC+G,IAASA,EAAKV,KAChBU,EAAKV,GAAK,QAERU,IAASA,EAAKC,aAAa,aAC7BD,EAAKT,aAAa,WAAY,MAGhC,MAAMW,EAAMtM,SAASqF,cAAc,yCAC/BiH,IAAQA,EAAIZ,KACdY,EAAIZ,GAAK,cAEPY,IAAQA,EAAID,aAAa,aAC3BC,EAAIX,aAAa,WAAY,KAEjC,CAGQ,mBAAAP,GACNpL,SAASG,iBAAiB,UAAYmE,IAClB,QAAdA,EAAMiI,KACRzK,KAAK0K,oBAAoBlI,GAET,WAAdA,EAAMiI,KACRzK,KAAK2K,gBAAgBnI,KAKzBxC,KAAK4K,2BACL5K,KAAK6K,6BACP,CAEQ,mBAAAH,CAAoBlI,GAC1B,MAAMsI,EAAoB9K,KAAK+K,uBACzBC,EAAeF,EAAkBG,QAAQ/M,SAASgN,eAEpD1I,EAAM2I,SAEJH,GAAgB,IAClBxI,EAAMmB,iBACNmH,EAAkBM,IAAG,IAAKC,SAEnBL,GAAgBF,EAAkB1M,OAAS,IAEpDoE,EAAMmB,iBACNmH,EAAkB,IAAIO,QAE1B,CAEQ,oBAAAN,GACN,MAAMO,EAAW,CACf,UACA,yBACA,wBACA,yBACA,2BACA,kCACA,4BACAC,KAAK,MAEP,OAAO/D,MAAMC,KAAKvJ,SAASyE,iBAAiB2I,GAC9C,CAEQ,eAAAX,CAAgBnI,GAEtB,MAAMgJ,EAActN,SAASqF,cAAc,eACrCkI,EAAiBvN,SAASqF,cAAc,uBAE9C,GAAIiI,EAAa,CACf,MAAME,EAAcF,EAAYjI,cAAc,6BAC9CmI,GAAaC,QACbnJ,EAAMmB,gBACR,MAAO,GAAI8H,EAAgB,CACzB,MAAMG,EAAe1N,SAASqF,cAAc,qDAC5CqI,GAAcD,QACdnJ,EAAMmB,gBACR,CACF,CAGQ,sBAAA4F,GAENrL,SAASG,iBAAiB,UAAYmE,IACpC,MAAMhE,EAASgE,EAAMhE,OAGjBA,EAAO6D,QAAQ,sCACjBrC,KAAK6L,qBAAqBrJ,GAIT,UAAdA,EAAMiI,KAAiC,MAAdjI,EAAMiI,MAAgBjM,EAAO+L,aAAa,SAA2C,WAAhC/L,EAAOqG,aAAa,SAAyBrG,EAAOsN,QAAQ,wDAC7ItJ,EAAMmB,iBACNnF,EAAOmN,UAGb,CAEQ,oBAAAE,CAAqBrJ,GAC3B,IAAK,CAAC,UAAW,YAAa,YAAa,aAAc,OAAQ,OAAOuJ,SAASvJ,EAAMiI,KACrF,OAGF,MAAMuB,EAAiBxJ,EAAMhE,OACvByN,EAAYzE,MAAMC,KAAKuE,EAAe3J,QAAQ,sCAAsCM,iBAAiB,cAAgB,IACrHqI,EAAeiB,EAAUhB,QAAQe,GAEvC,IAAIE,EAEJ,OAAQ1J,EAAMiI,KACZ,IAAK,YACL,IAAK,aACHyB,EAAYlB,EAAeiB,EAAU7N,OAAS,EAAI4M,EAAe,EAAI,EACrE,MAEF,IAAK,UACL,IAAK,YACHkB,EAAYlB,EAAe,EAAIA,EAAe,EAAIiB,EAAU7N,OAAS,EACrE,MAEF,IAAK,OACH8N,EAAY,EACZ,MAEF,IAAK,MACHA,EAAYD,EAAU7N,OAAS,EAC/B,MAEF,QACE,OAIJoE,EAAMmB,iBACNsI,EAAUC,IAAYb,OACxB,CAGQ,oBAAA7B,GAGN,GAF6BvK,WAAWkN,WAAW,oCAAoCL,QAE7D,CACxB5N,SAASkC,KAAKC,UAAUC,IAAI,iBAG5BpC,SAAS2H,gBAAgBnH,MAAM0N,eAAiB,OAGhD,MAAM1N,EAAQR,SAASqK,cAAc,SACrC7J,EAAMuL,YAAc,iNAOpB/L,SAASmO,KAAK7D,OAAO9J,EACvB,CACF,CAGQ,sBAAA+K,GACW,IAAI6C,iBAAkBC,IACrCA,EAAU3J,QAAS4J,IACjBA,EAASC,WAAW7J,QAAS8J,IAC3B,GAAIA,EAAKC,WAAaC,KAAKC,aAAc,CACvC,MAAM9M,EAAU2M,EAGZ3M,EAAQ+L,QAAQ,6CAClB9L,KAAK8M,SAAS/M,EAAQkK,aAAe,iBAAkB,aAIrDlK,EAAQ+L,QAAQ,6BAClB9L,KAAK8M,SAAS/M,EAAQkK,aAAe,UAAW,SAEpD,QAKG8C,QAAQ7O,SAASkC,KAAM,CAC9B4M,WAAW,EACXC,SAAS,GAEb,CAGQ,sBAAAvD,GACNxL,SAASyE,iBAAiB,SAASC,QAASsK,IAqB1C,GAnBKA,EAAM3C,aAAa,SACtB2C,EAAMrD,aAAa,OAAQ,SAI7BqD,EAAMvK,iBAAiB,MAAMC,QAASuK,IACpC,IAAKA,EAAG5C,aAAa,SAAU,CAC7B,MAAM6C,EAAYD,EAAG9K,QAAQ,SACvBgL,EAAiC,IAAjBF,EAAGG,UAErBF,EACFD,EAAGtD,aAAa,QAAS,OAChBwD,GACTF,EAAGtD,aAAa,QAAS,MAE7B,KAIGqD,EAAM3J,cAAc,YAAc2J,EAAM3C,aAAa,SAAU,CAClE,MAAMgD,EAAUrP,SAASqK,cAAc,WACvCgF,EAAQtD,YAAciD,EAAMrI,aAAa,UAAY,GACrDqI,EAAM/C,aAAaoD,EAASL,EAAM9C,WACpC,GAEJ,CAGQ,qBAAAT,GACNzL,SAASyE,iBAAiB,2BAA2BC,QAAS4K,IAC5D,MAAMC,EAAYD,EAGlB,IAAKC,EAAUC,QAAQtP,SAAWqP,EAAUlD,aAAa,gBAAkBkD,EAAUlD,aAAa,mBAAoB,CACpH,MAAMoD,EAAcF,EAAU5I,aAAa,eACvC8I,GACFF,EAAU5D,aAAa,aAAc8D,EAEzC,CAGA,GAAIF,EAAUlD,aAAa,YAAa,CACtC,MAAMqD,EAAQH,EAAUC,SAAS,GACjC,GAAIE,IAAUA,EAAMrK,cAAc,uBAAwB,CACxD,MAAMsK,EAAY3P,SAASqK,cAAc,QACzCsF,EAAUlG,UAAY,6BACtBkG,EAAU5D,YAAc,cACxB2D,EAAMpF,OAAOqF,EACf,CACF,CAGAJ,EAAUpP,iBAAiB,UAAW,KACpC2B,KAAK8N,gBAAgBL,MAG3B,CAEQ,eAAAK,CAAgBN,GACtB,MAAMO,EAAU,GAAGP,EAAM5D,IAAM4D,EAAMQ,aACrC,IAAIC,EAAe/P,SAASgQ,eAAeH,GAEtCE,IACHA,EAAe/P,SAASqK,cAAc,OACtC0F,EAAarE,GAAKmE,EAClBE,EAAatG,UAAY,mBACzBsG,EAAapE,aAAa,OAAQ,SAClC2D,EAAMW,YAAYhE,aAAa8D,EAAcT,EAAMY,cAGrDH,EAAahE,YAAcuD,EAAMa,kBACjCb,EAAM3D,aAAa,mBAAoBkE,GACvCP,EAAMnN,UAAUC,IAAI,cAEpBN,KAAK8M,SAAS,YAAYU,EAAME,SAAS,IAAIzD,aAAeuD,EAAMQ,SAASR,EAAMa,oBAAqB,YACxG,CAGQ,wBAAAzD,GACN1M,SAASG,iBAAiB,iBAAmBmE,IAC3C,MACMsI,EADQtI,EAAMhE,OACYmE,iBAAiB,4EAE7CmI,EAAkB1M,OAAS,GAC5B0M,EAAkB,GAAmBO,QAIxCrL,KAAK8I,aAAaxK,KAAKJ,SAASgN,iBAGlChN,SAASG,iBAAiB,kBAAmB,KAE3C,MAAMiQ,EAAkBtO,KAAK8I,aAAayF,MACtCD,GACFA,EAAgBjD,SAGtB,CAGQ,2BAAAR,GACN3M,SAASG,iBAAiB,oBAAsBmE,IAC9C,MACMgM,EADWhM,EAAMhE,OACD+E,cAAc,kBAC9BkL,EAAYD,GAAMjL,cAAc,aAElCkL,GACFA,EAAUpD,SAGhB,CAGO,QAAAyB,CAAS4B,EAAiBC,EAAmC,UAC7D3O,KAAK6I,YACR7I,KAAKoJ,mBAGHpJ,KAAK6I,aACP7I,KAAK6I,WAAWgB,aAAa,YAAa8E,GAC1C3O,KAAK6I,WAAWoB,YAAcyE,EAG9BxP,WAAW,KACLc,KAAK6I,aACP7I,KAAK6I,WAAWoB,YAAc,KAE/B,KAEP,CAEO,YAAA2E,CAAatD,GAClB,MAAMvL,EAAU7B,SAASqF,cAAc+H,GACnCvL,IACFA,EAAQsL,QAGRtL,EAAQ8O,eAAe,CAAEC,SAAU,SAAUC,MAAO,WAExD,CAEO,SAAAC,CAAUC,GACf,MAAMnE,EAAoBmE,EAAUtM,iBAClC,4EAGIuM,EAAiB1H,MAAMC,KAAKqD,GAC5BqE,EAAeD,EAAe,GAC9BE,EAAcF,EAAe9D,IAAG,GAEtC6D,EAAU5Q,iBAAiB,UAAYmE,IACnB,QAAdA,EAAMiI,MACJjI,EAAM2I,SACJjN,SAASgN,gBAAkBiE,IAC7BC,GAAa/D,QACb7I,EAAMmB,kBAECzF,SAASgN,gBAAkBkE,IACpCD,EAAa9D,QACb7I,EAAMmB,oBAId,CAEO,YAAA0L,GAGL,IADanR,SAASqF,cAAc,QACzB,CACT,MAAM+L,EAAUpR,SAASqF,cAAc,aACnC+L,IACFA,EAAQzF,aAAa,OAAQ,QAC7ByF,EAAQ1F,GAAK,OAEjB,CAGA1L,SAASyE,iBAAiB,qBAAqBC,QAAQ,CAAC4H,EAAK+E,KACtD/E,EAAID,aAAa,SACpBC,EAAIX,aAAa,OAAQ,cAEtBW,EAAID,aAAa,eACpBC,EAAIX,aAAa,aAAc,cAAc0F,EAAQ,OAKzD,MAAMC,EAAatR,SAASqF,cAAc,uCACtCiM,IAAeA,EAAWjF,aAAa,SACzCiF,EAAW3F,aAAa,OAAQ,SAEpC,EAIK,MAAM4F,GAAqBrN,GACzB,IAAIwG,GAAqBxG,GCtdlCpE,EAAmB,KAKF,IAAI4B,EAAO1B,SAASkC,MAC5BH,iBAMsBwP,GAAkB,CAC7C1G,eAAe,EACfC,WAAW,EACXC,iBAAiB,EACjBC,oBAAoB,EACpBC,eAAe,IAIIkG,eAGrBnQ,WAAW,KACThB,SAASkC,KAAKC,UAAUC,IAAI,eAC3B,O","ignoreList":[]} \ No newline at end of file diff --git a/js/apexcharts.min.js b/js/apexcharts.min.js new file mode 100644 index 0000000..f77c9d6 --- /dev/null +++ b/js/apexcharts.min.js @@ -0,0 +1,14 @@ +/*! + * ApexCharts v3.37.1 + * (c) 2018-2023 ApexCharts + * Released under the MIT 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).ApexCharts=e()}(this,(function(){"use strict";function t(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function e(e){for(var i=1;it.length)&&(e=t.length);for(var i=0,a=new Array(e);i>16,o=i>>8&255,n=255&i;return"#"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-o)*s)+o)+(Math.round((a-n)*s)+n)).toString(16).slice(1)}},{key:"shadeColor",value:function(e,i){return t.isColorHex(i)?this.shadeHexColor(e,i):this.shadeRGBColor(e,i)}}],[{key:"bind",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:"isObject",value:function(t){return t&&"object"===i(t)&&!Array.isArray(t)&&null!=t}},{key:"is",value:function(t,e){return Object.prototype.toString.call(e)==="[object "+t+"]"}},{key:"listToArray",value:function(t){var e,i=[];for(e=0;ee.length?t:e}))),t.length>e.length?t:e}),0)}},{key:"hexToRgba",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"#999999",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;"#"!==t.substring(0,1)&&(t="#999999");var i=t.replace("#","");i=i.match(new RegExp("(.{"+i.length/3+"})","g"));for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:"x",i=t.toString().slice();return i=i.replace(/[` ~!@#$%^&*()|+\=?;:'",.<>{}[\]\\/]/gi,e)}},{key:"negToZero",value:function(t){return t<0?0:t}},{key:"moveIndexInArray",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:"extractNumber",value:function(t){return parseFloat(t.replace(/[^\d.]*/g,""))}},{key:"findAncestor",value:function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}},{key:"setELstyles",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t.style.key=e[i])}},{key:"isNumber",value:function(t){return!isNaN(t)&&parseFloat(Number(t))===t&&!isNaN(parseInt(t,10))}},{key:"isFloat",value:function(t){return Number(t)===t&&t%1!=0}},{key:"isSafari",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:"isFirefox",value:function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1}},{key:"isIE11",value:function(){if(-1!==window.navigator.userAgent.indexOf("MSIE")||window.navigator.appVersion.indexOf("Trident/")>-1)return!0}},{key:"isIE",value:function(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var a=t.indexOf("Edge/");return a>0&&parseInt(t.substring(a+5,t.indexOf(".",a)),10)}}]),t}(),b=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.setEasingFunctions()}return r(t,[{key:"setEasingFunctions",value:function(){var t;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case"linear":t="-";break;case"easein":t="<";break;case"easeout":t=">";break;case"easeinout":default:t="<>";break;case"swing":t=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1};break;case"bounce":t=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case"elastic":t=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1}}this.w.globals.easing=t}}},{key:"animateLine",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:"animateMarker",value:function(t,e,i,a,s,r){e||(e=0),t.attr({r:e,width:e,height:e}).animate(a,s).attr({r:i,width:i.width,height:i.height}).afterAll((function(){r()}))}},{key:"animateCircle",value:function(t,e,i,a,s){t.attr({r:e.r,cx:e.cx,cy:e.cy}).animate(a,s).attr({r:i.r,cx:i.cx,cy:i.cy})}},{key:"animateRect",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll((function(){return s()}))}},{key:"animatePathsGradually",value:function(t){var e=t.el,i=t.realIndex,a=t.j,s=t.fill,r=t.pathFrom,o=t.pathTo,n=t.speed,l=t.delay,h=this.w,c=0;h.config.chart.animations.animateGradually.enabled&&(c=h.config.chart.animations.animateGradually.delay),h.config.chart.animations.dynamicAnimation.enabled&&h.globals.dataChanged&&"bar"!==h.config.chart.type&&(c=0),this.morphSVG(e,i,a,"line"!==h.config.chart.type||h.globals.comboCharts?s:"stroke",r,o,n,l*c)}},{key:"showDelayedElements",value:function(){this.w.globals.delayedElements.forEach((function(t){t.el.classList.remove("apexcharts-element-hidden")}))}},{key:"animationCompleted",value:function(t){var e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),"function"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}},{key:"morphSVG",value:function(t,e,i,a,s,r,o,n){var l=this,h=this.w;s||(s=t.attr("pathFrom")),r||(r=t.attr("pathTo"));var c=function(t){return"radar"===h.config.chart.type&&(o=1),"M 0 ".concat(h.globals.gridHeight)};(!s||s.indexOf("undefined")>-1||s.indexOf("NaN")>-1)&&(s=c()),(!r||r.indexOf("undefined")>-1||r.indexOf("NaN")>-1)&&(r=c()),h.globals.shouldAnimate||(o=1),t.plot(s).animate(1,h.globals.easing,n).plot(s).animate(o,h.globals.easing,n).plot(r).afterAll((function(){x.isNumber(i)?i===h.globals.series[h.globals.maxValsInArrayIndex].length-2&&h.globals.shouldAnimate&&l.animationCompleted(t):"none"!==a&&h.globals.shouldAnimate&&(!h.globals.comboCharts&&e===h.globals.series.length-1||h.globals.comboCharts)&&l.animationCompleted(t),l.showDelayedElements()}))}}]),t}(),v=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getDefaultFilter",value:function(t,e){var i=this.w;t.unfilter(!0),(new window.SVG.Filter).size("120%","180%","-5%","-40%"),"none"!==i.config.states.normal.filter?this.applyFilter(t,e,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addNormalFilter",value:function(t,e){var i=this.w;i.config.chart.dropShadow.enabled&&!t.node.classList.contains("apexcharts-marker")&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addLightenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:1.5,intercept:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"addDarkenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"applyFilter",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case"none":this.addNormalFilter(t,e);break;case"lighten":this.addLightenFilter(t,e,{intensity:a});break;case"darken":this.addDarkenFilter(t,e,{intensity:a})}}},{key:"addShadow",value:function(t,e,i){var a=i.blur,s=i.top,r=i.left,o=i.color,n=i.opacity,l=t.flood(Array.isArray(o)?o[e]:o,n).composite(t.sourceAlpha,"in").offset(r,s).gaussianBlur(a).merge(t.source);return t.blend(t.source,l)}},{key:"dropShadow",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=e.top,s=e.left,r=e.blur,o=e.color,n=e.opacity,l=e.noUserSpaceOnUse,h=this.w;return t.unfilter(!0),x.isIE()&&"radialBar"===h.config.chart.type||(o=Array.isArray(o)?o[i]:o,t.filter((function(t){var e=null;e=x.isSafari()||x.isFirefox()||x.isIE()?t.flood(o,n).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(r):t.flood(o,n).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(r).merge(t.source),t.blend(t.source,e)})),l||t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)),t}},{key:"setSelectionFilter",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute("selected",!0);var s=a.config.states.active.filter;"none"!==s&&this.applyFilter(t,e,s.type,s.value)}}},{key:"_scaleFilterSize",value:function(t){!function(e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}({width:"200%",height:"200%",x:"-50%",y:"-50%"})}}]),t}(),m=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"roundPathCorners",value:function(t,e){function i(t,e,i){var s=e.x-t.x,r=e.y-t.y,o=Math.sqrt(s*s+r*r);return a(t,e,Math.min(1,i/o))}function a(t,e,i){return{x:t.x+(e.x-t.x)*i,y:t.y+(e.y-t.y)*i}}function s(t,e){t.length>2&&(t[t.length-2]=e.x,t[t.length-1]=e.y)}function r(t){return{x:parseFloat(t[t.length-2]),y:parseFloat(t[t.length-1])}}var o=t.split(/[,\s]/).reduce((function(t,e){var i=e.match("([a-zA-Z])(.+)");return i?(t.push(i[1]),t.push(i[2])):t.push(e),t}),[]).reduce((function(t,e){return parseFloat(e)==e&&t.length?t[t.length-1].push(e):t.push([e]),t}),[]),n=[];if(o.length>1){var l=r(o[0]),h=null;"Z"==o[o.length-1][0]&&o[0].length>2&&(h=["L",l.x,l.y],o[o.length-1]=h),n.push(o[0]);for(var c=1;c2&&"L"==g[0]&&u.length>2&&"L"==u[0]){var f,p,x=r(d),b=r(g),v=r(u);f=i(b,x,e),p=i(b,v,e),s(g,f),g.origPoint=b,n.push(g);var m=a(f,b,.5),y=a(b,p,.5),w=["C",m.x,m.y,y.x,y.y,p.x,p.y];w.origPoint=b,n.push(w)}else n.push(g)}if(h){var k=r(n[n.length-1]);n.push(["Z"]),s(n[0],k)}}else n=o;return n.reduce((function(t,e){return t+e.join(" ")+" "}),"")}},{key:"drawLine",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"#a8a8a8",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"butt",l=this.w,h=l.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,"stroke-dasharray":r,"stroke-width":o,"stroke-linecap":n});return h}},{key:"drawRect",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"#fefefe",o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,h=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,c=this.w,d=c.globals.dom.Paper.rect();return d.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:o,"stroke-width":null!==n?n:0,stroke:null!==l?l:"none","stroke-dasharray":h}),d.node.setAttribute("fill",r),d}},{key:"drawPolygon",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#e1e1e1",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none",s=this.w,r=s.globals.dom.Paper.polygon(t).attr({fill:a,stroke:e,"stroke-width":i});return r}},{key:"drawCircle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;t<0&&(t=0);var a=i.globals.dom.Paper.circle(2*t);return null!==e&&a.attr(e),a}},{key:"drawPath",value:function(t){var e=t.d,i=void 0===e?"":e,a=t.stroke,s=void 0===a?"#a8a8a8":a,r=t.strokeWidth,o=void 0===r?1:r,n=t.fill,l=t.fillOpacity,h=void 0===l?1:l,c=t.strokeOpacity,d=void 0===c?1:c,g=t.classes,u=t.strokeLinecap,f=void 0===u?null:u,p=t.strokeDashArray,x=void 0===p?0:p,b=this.w;return null===f&&(f=b.config.stroke.lineCap),(i.indexOf("undefined")>-1||i.indexOf("NaN")>-1)&&(i="M 0 ".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:n,"fill-opacity":h,stroke:s,"stroke-opacity":d,"stroke-linecap":f,"stroke-width":o,"stroke-dasharray":x,class:g})}},{key:"group",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=e.globals.dom.Paper.group();return null!==t&&i.attr(t),i}},{key:"move",value:function(t,e){var i=["M",t,e].join(" ");return i}},{key:"line",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=[" L",t,e].join(" "):"H"===i?a=[" H",t].join(" "):"V"===i&&(a=[" V",e].join(" ")),a}},{key:"curve",value:function(t,e,i,a,s,r){var o=["C",t,e,i,a,s,r].join(" ");return o}},{key:"quadraticCurve",value:function(t,e,i,a){return["Q",t,e,i,a].join(" ")}},{key:"arc",value:function(t,e,i,a,s,r,o){var n=arguments.length>7&&void 0!==arguments[7]&&arguments[7],l="A";n&&(l="a");var h=[l,t,e,i,a,s,r,o].join(" ");return h}},{key:"renderPaths",value:function(t){var i,a=t.j,s=t.realIndex,r=t.pathFrom,o=t.pathTo,n=t.stroke,l=t.strokeWidth,h=t.strokeLinecap,c=t.fill,d=t.animationDelay,g=t.initialSpeed,u=t.dataChangeSpeed,f=t.className,p=t.shouldClipToGrid,x=void 0===p||p,m=t.bindEventsOnPaths,y=void 0===m||m,w=t.drawShadow,k=void 0===w||w,A=this.w,S=new v(this.ctx),C=new b(this.ctx),L=this.w.config.chart.animations.enabled,P=L&&this.w.config.chart.animations.dynamicAnimation.enabled,T=!!(L&&!A.globals.resized||P&&A.globals.dataChanged&&A.globals.shouldAnimate);T?i=r:(i=o,A.globals.animationEnded=!0);var M=A.config.stroke.dashArray,I=0;I=Array.isArray(M)?M[s]:A.config.stroke.dashArray;var z=this.drawPath({d:i,stroke:n,strokeWidth:l,fill:c,fillOpacity:1,classes:f,strokeLinecap:h,strokeDashArray:I});if(z.attr("index",s),x&&z.attr({"clip-path":"url(#gridRectMask".concat(A.globals.cuid,")")}),"none"!==A.config.states.normal.filter.type)S.getDefaultFilter(z,s);else if(A.config.chart.dropShadow.enabled&&k&&(!A.config.chart.dropShadow.enabledOnSeries||A.config.chart.dropShadow.enabledOnSeries&&-1!==A.config.chart.dropShadow.enabledOnSeries.indexOf(s))){var X=A.config.chart.dropShadow;S.dropShadow(z,X,s)}y&&(z.node.addEventListener("mouseenter",this.pathMouseEnter.bind(this,z)),z.node.addEventListener("mouseleave",this.pathMouseLeave.bind(this,z)),z.node.addEventListener("mousedown",this.pathMouseDown.bind(this,z))),z.attr({pathTo:o,pathFrom:r});var E={el:z,j:a,realIndex:s,pathFrom:r,pathTo:o,fill:c,strokeWidth:l,delay:d};return!L||A.globals.resized||A.globals.dataChanged?!A.globals.resized&&A.globals.dataChanged||C.showDelayedElements():C.animatePathsGradually(e(e({},E),{},{speed:g})),A.globals.dataChanged&&P&&T&&C.animatePathsGradually(e(e({},E),{},{speed:u})),z}},{key:"drawPattern",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#a8a8a8",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=this.w,o=r.globals.dom.Paper.pattern(e,i,(function(r){"horizontalLines"===t?r.line(0,0,i,0).stroke({color:a,width:s+1}):"verticalLines"===t?r.line(0,0,0,e).stroke({color:a,width:s+1}):"slantedLines"===t?r.line(0,0,e,i).stroke({color:a,width:s}):"squares"===t?r.rect(e,i).fill("none").stroke({color:a,width:s}):"circles"===t&&r.circle(e).fill("none").stroke({color:a,width:s})}));return o}},{key:"drawGradient",value:function(t,e,i,a,s){var r,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,c=this.w;e.length<9&&0===e.indexOf("#")&&(e=x.hexToRgba(e,a)),i.length<9&&0===i.indexOf("#")&&(i=x.hexToRgba(i,s));var d=0,g=1,u=1,f=null;null!==n&&(d=void 0!==n[0]?n[0]/100:0,g=void 0!==n[1]?n[1]/100:1,u=void 0!==n[2]?n[2]/100:1,f=void 0!==n[3]?n[3]/100:null);var p=!("donut"!==c.config.chart.type&&"pie"!==c.config.chart.type&&"polarArea"!==c.config.chart.type&&"bubble"!==c.config.chart.type);if(r=null===l||0===l.length?c.globals.dom.Paper.gradient(p?"radial":"linear",(function(t){t.at(d,e,a),t.at(g,i,s),t.at(u,i,s),null!==f&&t.at(f,e,a)})):c.globals.dom.Paper.gradient(p?"radial":"linear",(function(t){(Array.isArray(l[h])?l[h]:l).forEach((function(e){t.at(e.offset/100,e.color,e.opacity)}))})),p){var b=c.globals.gridWidth/2,v=c.globals.gridHeight/2;"bubble"!==c.config.chart.type?r.attr({gradientUnits:"userSpaceOnUse",cx:b,cy:v,r:o}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else"vertical"===t?r.from(0,0).to(0,1):"diagonal"===t?r.from(0,0).to(1,1):"horizontal"===t?r.from(0,1).to(1,1):"diagonal2"===t&&r.from(1,0).to(0,1);return r}},{key:"getTextBasedOnMaxWidth",value:function(t){var e=t.text,i=t.maxWidth,a=t.fontSize,s=t.fontFamily,r=this.getTextRects(e,a,s),o=r.width/e.length,n=Math.floor(i/o);return i-1){var n=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(n,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(".apexcharts-series path").members,h=i.globals.dom.Paper.select(".apexcharts-series circle, .apexcharts-series rect").members,c=function(t){Array.prototype.forEach.call(t,(function(t){t.node.setAttribute("selected","false"),a.getDefaultFilter(t,s)}))};c(l),c(h)}t.node.setAttribute("selected","true"),o="true",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if("true"===o){var d=i.config.states.active.filter;if("none"!==d)a.applyFilter(t,s,d.type,d.value);else if("none"!==i.config.states.hover.filter&&!i.globals.isTouchDevice){var g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}}else if("none"!==i.config.states.active.filter.type)if("none"===i.config.states.hover.filter.type||i.globals.isTouchDevice)a.getDefaultFilter(t,s);else{g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}"function"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),e&&this.ctx.events.fireEvent("dataPointSelection",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:"rotateAroundCenter",value:function(t){var e={};return t&&"function"==typeof t.getBBox&&(e=t.getBBox()),{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:"getTextRects",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.w,o=this.drawText({x:-200,y:-200,text:t,textAnchor:"start",fontSize:e,fontFamily:i,foreColor:"#fff",opacity:0});a&&o.attr("transform",a),r.globals.dom.Paper.add(o);var n=o.bbox();return s||(n=o.node.getBoundingClientRect()),o.remove(),{width:n.width,height:n.height}}},{key:"placeTextWithEllipsis",value:function(t,e,i){if("function"==typeof t.getComputedTextLength&&(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i/1.1)){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i/1.1)return void(t.textContent=e.substring(0,a)+"...");t.textContent="."}}}],[{key:"setAttrs",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}}]),t}(),y=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getStackedSeriesTotals",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.w,i=[];if(0===e.globals.series.length)return i;for(var a=0;a0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce((function(t,e){return t+e}),0):this.w.globals.series[t].reduce((function(t,e){return t+e}),0)}},{key:"isSeriesNull",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter((function(t){return null!==t})):this.w.config.series[t].data.filter((function(t){return null!==t}))).length}},{key:"seriesHaveSameValues",value:function(t){return this.w.globals.series[t].every((function(t,e,i){return t===i[0]}))}},{key:"getCategoryLabels",value:function(t){var e=this.w,i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map((function(t,i){return e.config.xaxis.labels.formatter(t-e.globals.minX+1)}))),i}},{key:"getLargestSeries",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map((function(t){return t.length})).indexOf(Math.max.apply(Math,t.globals.series.map((function(t){return t.length}))))}},{key:"getLargestMarkerSize",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach((function(t){e=Math.max(e,t)})),t.config.markers.discrete&&t.config.markers.discrete.length&&t.config.markers.discrete.forEach((function(t){e=Math.max(e,t.size)})),e>0&&(e+=t.config.markers.hover.sizeOffset+1),t.globals.markers.largestSize=e,e}},{key:"getSeriesTotals",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map((function(t,e){var i=0;if(Array.isArray(t))for(var a=0;at&&i.globals.seriesX[s][o]0&&(e=!0),{comboBarCount:i,comboCharts:e}}},{key:"extendArrayProps",value:function(t,e,i){return e.yaxis&&(e=t.extendYAxis(e,i)),e.annotations&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),e.annotations.xaxis&&(e=t.extendXAxisAnnotations(e)),e.annotations.points&&(e=t.extendPointAnnotations(e))),e}}]),t}(),w=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e}return r(t,[{key:"setOrientations",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if("vertical"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a,"']"));if(null!==s){var r=s.getBoundingClientRect();s.setAttribute("x",parseFloat(s.getAttribute("x"))-r.height+4),"top"===t.label.position?s.setAttribute("y",parseFloat(s.getAttribute("y"))+r.width):s.setAttribute("y",parseFloat(s.getAttribute("y"))-r.width);var o=this.annoCtx.graphics.rotateAroundCenter(s),n=o.x,l=o.y;s.setAttribute("transform","rotate(-90 ".concat(n," ").concat(l,")"))}}}},{key:"addBackgroundToAnno",value:function(t,e){var i=this.w;if(!t||void 0===e.label.text||void 0!==e.label.text&&!String(e.label.text).trim())return null;var a=i.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(),s=t.getBoundingClientRect(),r=e.label.style.padding.left,o=e.label.style.padding.right,n=e.label.style.padding.top,l=e.label.style.padding.bottom;"vertical"===e.label.orientation&&(n=e.label.style.padding.left,l=e.label.style.padding.right,r=e.label.style.padding.top,o=e.label.style.padding.bottom);var h=s.left-a.left-r,c=s.top-a.top-n,d=this.annoCtx.graphics.drawRect(h-i.globals.barPadForNumericAxis,c,s.width+r+o,s.height+n+l,e.label.borderRadius,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&d.node.classList.add(e.id),d}},{key:"annotationsBackground",value:function(){var t=this,e=this.w,i=function(i,a,s){var r=e.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(a,"']"));if(r){var o=r.parentNode,n=t.addBackgroundToAnno(r,i);n&&(o.insertBefore(n.node,r),i.label.mouseEnter&&n.node.addEventListener("mouseenter",i.label.mouseEnter.bind(t,i)),i.label.mouseLeave&&n.node.addEventListener("mouseleave",i.label.mouseLeave.bind(t,i)),i.label.click&&n.node.addEventListener("click",i.label.click.bind(t,i)))}};e.config.annotations.xaxis.map((function(t,e){i(t,e,"xaxis")})),e.config.annotations.yaxis.map((function(t,e){i(t,e,"yaxis")})),e.config.annotations.points.map((function(t,e){i(t,e,"point")}))}},{key:"getY1Y2",value:function(t,e){var i,a="y1"===t?e.y:e.y2,s=this.w;if(this.annoCtx.invertAxis){var r=s.globals.labels.indexOf(a);s.config.xaxis.convertedCatToNumeric&&(r=s.globals.categoryLabels.indexOf(a));var o=s.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child("+(r+1)+")");o&&(i=parseFloat(o.getAttribute("y")))}else{var n;if(s.config.yaxis[e.yAxisIndex].logarithmic)n=(a=new y(this.annoCtx.ctx).getLogVal(a,e.yAxisIndex))/s.globals.yLogRatio[e.yAxisIndex];else n=(a-s.globals.minYArr[e.yAxisIndex])/(s.globals.yRange[e.yAxisIndex]/s.globals.gridHeight);i=s.globals.gridHeight-n,!e.marker||void 0!==e.y&&null!==e.y||(i=0),s.config.yaxis[e.yAxisIndex]&&s.config.yaxis[e.yAxisIndex].reversed&&(i=n)}return"string"==typeof a&&a.indexOf("px")>-1&&(i=parseFloat(a)),i}},{key:"getX1X2",value:function(t,e){var i=this.w,a=this.annoCtx.invertAxis?i.globals.minY:i.globals.minX,s=this.annoCtx.invertAxis?i.globals.maxY:i.globals.maxX,r=this.annoCtx.invertAxis?i.globals.yRange[0]:i.globals.xRange,o=(e.x-a)/(r/i.globals.gridWidth);this.annoCtx.inversedReversedAxis&&(o=(s-e.x)/(r/i.globals.gridWidth)),"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(o=this.getStringX(e.x));var n=(e.x2-a)/(r/i.globals.gridWidth);return this.annoCtx.inversedReversedAxis&&(n=(s-e.x2)/(r/i.globals.gridWidth)),"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(n=this.getStringX(e.x2)),void 0!==e.x&&null!==e.x||!e.marker||(o=i.globals.gridWidth),"x1"===t&&"string"==typeof e.x&&e.x.indexOf("px")>-1&&(o=parseFloat(e.x)),"x2"===t&&"string"==typeof e.x2&&e.x2.indexOf("px")>-1&&(n=parseFloat(e.x2)),"x1"===t?o:n}},{key:"getStringX",value:function(t){var e=this.w,i=t;e.config.xaxis.convertedCatToNumeric&&e.globals.categoryLabels.length&&(t=e.globals.categoryLabels.indexOf(t)+1);var a=e.globals.labels.indexOf(t),s=e.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child("+(a+1)+")");return s&&(i=parseFloat(s.getAttribute("x"))),i}}]),t}(),k=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new w(this.annoCtx)}return r(t,[{key:"addXaxisAnnotation",value:function(t,e,i){var a,s=this.w,r=this.helpers.getX1X2("x1",t),o=t.label.text,n=t.strokeDashArray;if(x.isNumber(r)){if(null===t.x2||void 0===t.x2){var l=this.annoCtx.graphics.drawLine(r+t.offsetX,0+t.offsetY,r+t.offsetX,s.globals.gridHeight+t.offsetY,t.borderColor,n,t.borderWidth);e.appendChild(l.node),t.id&&l.node.classList.add(t.id)}else{if((a=this.helpers.getX1X2("x2",t))o){var h=o;o=a,a=h}var c=this.annoCtx.graphics.drawRect(0+t.offsetX,a+t.offsetY,this._getYAxisAnnotationWidth(t),o-a,0,t.fillColor,t.opacity,1,t.borderColor,r);c.node.classList.add("apexcharts-annotation-rect"),c.attr("clip-path","url(#gridRectMask".concat(s.globals.cuid,")")),e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}var d="right"===t.label.position?s.globals.gridWidth:"center"===t.label.position?s.globals.gridWidth/2:0,g=this.annoCtx.graphics.drawText({x:d+t.label.offsetX,y:(null!=a?a:o)+t.label.offsetY-3,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-yaxis-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});g.attr({rel:i}),e.appendChild(g.node)}},{key:"_getYAxisAnnotationWidth",value:function(t){var e=this.w;e.globals.gridWidth;return(t.width.indexOf("%")>-1?e.globals.gridWidth*parseInt(t.width,10)/100:parseInt(t.width,10))+t.offsetX}},{key:"drawYAxisAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-yaxis-annotations"});return e.config.annotations.yaxis.map((function(e,a){t.addYaxisAnnotation(e,i.node,a)})),i}}]),t}(),S=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new w(this.annoCtx)}return r(t,[{key:"addPointAnnotation",value:function(t,e,i){this.w;var a=this.helpers.getX1X2("x1",t),s=this.helpers.getY1Y2("y1",t);if(x.isNumber(a)){var r={pSize:t.marker.size,pointStrokeWidth:t.marker.strokeWidth,pointFillColor:t.marker.fillColor,pointStrokeColor:t.marker.strokeColor,shape:t.marker.shape,pRadius:t.marker.radius,class:"apexcharts-point-annotation-marker ".concat(t.marker.cssClass," ").concat(t.id?t.id:"")},o=this.annoCtx.graphics.drawMarker(a+t.marker.offsetX,s+t.marker.offsetY,r);e.appendChild(o.node);var n=t.label.text?t.label.text:"",l=this.annoCtx.graphics.drawText({x:a+t.label.offsetX,y:s+t.label.offsetY-t.marker.size-parseFloat(t.label.style.fontSize)/1.6,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-point-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});if(l.attr({rel:i}),e.appendChild(l.node),t.customSVG.SVG){var h=this.annoCtx.graphics.group({class:"apexcharts-point-annotations-custom-svg "+t.customSVG.cssClass});h.attr({transform:"translate(".concat(a+t.customSVG.offsetX,", ").concat(s+t.customSVG.offsetY,")")}),h.node.innerHTML=t.customSVG.SVG,e.appendChild(h.node)}if(t.image.path){var c=t.image.width?t.image.width:20,d=t.image.height?t.image.height:20;o=this.annoCtx.addImage({x:a+t.image.offsetX-c/2,y:s+t.image.offsetY-d/2,width:c,height:d,path:t.image.path,appendTo:".apexcharts-point-annotations"})}t.mouseEnter&&o.node.addEventListener("mouseenter",t.mouseEnter.bind(this,t)),t.mouseLeave&&o.node.addEventListener("mouseleave",t.mouseLeave.bind(this,t)),t.click&&o.node.addEventListener("click",t.click.bind(this,t))}}},{key:"drawPointAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-point-annotations"});return e.config.annotations.points.map((function(e,a){t.addPointAnnotation(e,i.node,a)})),i}}]),t}();var C={name:"en",options:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],toolbar:{exportToSVG:"Download SVG",exportToPNG:"Download PNG",exportToCSV:"Download CSV",menu:"Menu",selection:"Selection",selectionZoom:"Selection Zoom",zoomIn:"Zoom In",zoomOut:"Zoom Out",pan:"Panning",reset:"Reset Zoom"}}},L=function(){function t(){a(this,t),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,logBase:10,tickAmount:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:"11px",fontWeight:400,fontFamily:void 0,cssClass:""},formatter:void 0},axisBorder:{show:!1,color:"#e0e0e0",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:"#e0e0e0",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:"11px",fontWeight:900,fontFamily:void 0,cssClass:""}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:"front",stroke:{color:"#b6b6b6",width:1,dashArray:0}}},this.pointAnnotation={id:void 0,x:0,y:null,yAxisIndex:0,seriesIndex:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,marker:{size:4,fillColor:"#fff",strokeWidth:2,strokeColor:"#333",shape:"circle",offsetX:0,offsetY:0,radius:2,cssClass:""},label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={id:void 0,y:0,y2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:"100%",yAxisIndex:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"end",position:"right",offsetX:0,offsetY:-3,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={id:void 0,x:0,x2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",orientation:"vertical",position:"top",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:"",textAnchor:"start",foreColor:void 0,fontSize:"13px",fontFamily:void 0,fontWeight:400,appendTo:".apexcharts-annotations",backgroundColor:"transparent",borderColor:"#c2c2c2",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return r(t,[{key:"init",value:function(){return{annotations:{yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,easing:"easeinout",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:"transparent",locales:[C],defaultLocale:"en",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:"#000",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,xAxisLabelClick:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:"#373d3f",fontFamily:"Helvetica, Arial, sans-serif",height:"auto",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:"x",fill:{color:"#24292e",opacity:.1},stroke:{width:1,color:"#24292e",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0},stacked:!1,stackType:"normal",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:",",headerCategory:"category",headerValue:"value",dateFormatter:function(t){return new Date(t).toDateString()}},png:{filename:void 0},svg:{filename:void 0}},autoSelected:"zoom"},type:"line",width:"100%",zoom:{enabled:!0,type:"x",autoScaleYaxis:!1,zoomedArea:{fill:{color:"#90CAF9",opacity:.4},stroke:{color:"#0D47A1",opacity:.4,width:1}}}},plotOptions:{area:{fillTo:"origin"},bar:{horizontal:!1,columnWidth:"70%",barHeight:"70%",distributed:!1,borderRadius:0,borderRadiusApplication:"around",borderRadiusWhenStacked:"last",rangeBarOverlap:!0,rangeBarGroupRows:!1,hideZeroBarsWhenGrouped:!0,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:"top",maxItems:100,hideOverflowingLabels:!0,orientation:"horizontal",total:{enabled:!1,formatter:void 0,offsetX:0,offsetY:0,style:{color:"#373d3f",fontSize:"12px",fontFamily:void 0,fontWeight:600}}}},bubble:{zScaling:!0,minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:"#00B746",downward:"#EF403C"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:"#00E396",lower:"#008FFB"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:"50%",background:"transparent",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:"front",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:"#f2f2f2",strokeWidth:"97%",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(t){return t}},value:{show:!0,fontSize:"14px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(t){return t+"%"}},total:{show:!1,label:"Total",fontSize:"16px",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)/t.globals.series.length+"%"}}}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:"65%",background:"transparent",labels:{show:!1,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(t){return t}},value:{show:!0,fontSize:"20px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(t){return t}},total:{show:!1,showAlways:!1,label:"Total",fontSize:"16px",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:"#e8e8e8"},spokes:{strokeWidth:1,connectorColors:"#e8e8e8"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:"#e8e8e8",connectorColors:"#e8e8e8",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(t){return null!==t?t:""},textAnchor:"middle",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:"12px",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:"#fff",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:"#fff",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:"squares",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:"#e0e0e0",strokeDashArray:0,position:"back",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:"bottom",horizontalAlign:"center",inverseOrder:!1,fontSize:"12px",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],labels:{colors:void 0,useSeriesColors:!1},markers:{width:12,height:12,strokeWidth:0,fillColors:void 0,strokeColor:"#fff",radius:12,customHTML:void 0,offsetX:0,offsetY:0,onClick:void 0},itemMargin:{horizontal:5,vertical:2},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:"#fff",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:"circle",width:8,height:8,radius:2,offsetX:0,offsetY:0,onClick:void 0,onDblClick:void 0,showNullDataPoints:!0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:"center",verticalAlign:"middle",offsetX:0,offsetY:0,style:{color:void 0,fontSize:"14px",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:"none",value:0}},hover:{filter:{type:"lighten",value:.1}},active:{allowMultipleDataPointsSelection:!1,filter:{type:"darken",value:.5}}},title:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:"14px",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:"12px",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:"smooth",lineCap:"butt",width:2,colors:void 0,dashArray:0,fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]}}},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:"light",cssClass:"",style:{fontSize:"12px",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:"dd MMM",formatter:void 0},y:{formatter:void 0,title:{formatter:function(t){return t?t+": ":""}}},z:{formatter:void 0,title:"Size: "},marker:{show:!0,fillColors:void 0},items:{display:"flex"},fixed:{enabled:!1,position:"topRight",offsetX:0,offsetY:0}},xaxis:{type:"category",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:"yyyy",month:"MMM 'yy",day:"dd MMM",hour:"HH:mm",minute:"HH:mm:ss",second:"HH:mm:ss"}},group:{groups:[],style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""}},axisBorder:{show:!0,color:"#e0e0e0",width:"100%",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:"#e0e0e0",height:6,offsetX:0,offsetY:0},tickAmount:void 0,tickPlacement:"on",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:"bottom",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:"12px",fontWeight:900,fontFamily:void 0,cssClass:""}},crosshairs:{show:!0,width:1,position:"back",opacity:.9,stroke:{color:"#b6b6b6",width:1,dashArray:3},fill:{type:"solid",color:"#B1B9C4",gradient:{colorFrom:"#D8E3F0",colorTo:"#BED1E6",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:"12px",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:"light",palette:"palette1",monochrome:{enabled:!1,color:"#008FFB",shadeTo:"light",shadeIntensity:.65}}}}}]),t}(),P=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.graphics=new m(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new w(this),this.xAxisAnnotations=new k(this),this.yAxisAnnotations=new A(this),this.pointsAnnotations=new S(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return r(t,[{key:"drawAxesAnnotations",value:function(){var t=this.w;if(t.globals.axisCharts){for(var e=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=t.config.chart.animations.enabled,r=[e,i,a],o=[i.node,e.node,a.node],n=0;n<3;n++)t.globals.dom.elGraphical.add(r[n]),!s||t.globals.resized||t.globals.dataChanged||"scatter"!==t.config.chart.type&&"bubble"!==t.config.chart.type&&t.globals.dataPoints>1&&o[n].classList.add("apexcharts-element-hidden"),t.globals.delayedElements.push({el:o[n],index:0});this.helpers.annotationsBackground()}}},{key:"drawImageAnnos",value:function(){var t=this;this.w.config.annotations.images.map((function(e,i){t.addImage(e,i)}))}},{key:"drawTextAnnos",value:function(){var t=this;this.w.config.annotations.texts.map((function(e,i){t.addText(e,i)}))}},{key:"addXaxisAnnotation",value:function(t,e,i){this.xAxisAnnotations.addXaxisAnnotation(t,e,i)}},{key:"addYaxisAnnotation",value:function(t,e,i){this.yAxisAnnotations.addYaxisAnnotation(t,e,i)}},{key:"addPointAnnotation",value:function(t,e,i){this.pointsAnnotations.addPointAnnotation(t,e,i)}},{key:"addText",value:function(t,e){var i=t.x,a=t.y,s=t.text,r=t.textAnchor,o=t.foreColor,n=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.cssClass,d=t.backgroundColor,g=t.borderWidth,u=t.strokeDashArray,f=t.borderRadius,p=t.borderColor,x=t.appendTo,b=void 0===x?".apexcharts-annotations":x,v=t.paddingLeft,m=void 0===v?4:v,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,L=this.w,P=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||"start",fontSize:n||"12px",fontWeight:h||"regular",fontFamily:l||L.config.chart.fontFamily,foreColor:o||L.config.chart.foreColor,cssClass:c}),T=L.globals.dom.baseEl.querySelector(b);T&&T.appendChild(P.node);var M=P.bbox();if(s){var I=this.graphics.drawRect(M.x-m,M.y-C,M.width+m+w,M.height+A+C,f,d||"transparent",1,g,p,u);T.insertBefore(I.node,P.node)}}},{key:"addImage",value:function(t,e){var i=this.w,a=t.path,s=t.x,r=void 0===s?0:s,o=t.y,n=void 0===o?0:o,l=t.width,h=void 0===l?20:l,c=t.height,d=void 0===c?20:c,g=t.appendTo,u=void 0===g?".apexcharts-annotations":g,f=i.globals.dom.Paper.image(a);f.size(h,d).move(r,n);var p=i.globals.dom.baseEl.querySelector(u);return p&&p.appendChild(f.node),f}},{key:"addXaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"xaxis",contextMethod:i.addXaxisAnnotation}),i}},{key:"addYaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"yaxis",contextMethod:i.addYaxisAnnotation}),i}},{key:"addPointAnnotationExternal",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"point",contextMethod:i.addPointAnnotation}),i}},{key:"addAnnotationExternal",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,r=t.contextMethod,o=a,n=o.w,l=n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations")),h=l.childNodes.length+1,c=new L,d=Object.assign({},"xaxis"===s?c.xAxisAnnotation:"yaxis"===s?c.yAxisAnnotation:c.pointAnnotation),g=x.extend(d,e);switch(s){case"xaxis":this.addXaxisAnnotation(g,l,h);break;case"yaxis":this.addYaxisAnnotation(g,l,h);break;case"point":this.addPointAnnotation(g,l,h)}var u=n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(h,"']")),f=this.helpers.addBackgroundToAnno(u,g);return f&&l.insertBefore(f.node,u),i&&n.globals.memory.methodsToExec.push({context:o,id:g.id?g.id:x.randomId(),method:r,label:"addAnnotation",params:e}),a}},{key:"clearAnnotations",value:function(t){var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations");e.globals.memory.methodsToExec.map((function(t,i){"addText"!==t.label&&"addAnnotation"!==t.label||e.globals.memory.methodsToExec.splice(i,1)})),i=x.listToArray(i),Array.prototype.forEach.call(i,(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)}))}},{key:"removeAnnotation",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(".".concat(e));a&&(i.globals.memory.methodsToExec.map((function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)})),Array.prototype.forEach.call(a,(function(t){t.parentElement.removeChild(t)})))}}]),t}(),T=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.months31=[1,3,5,7,8,10,12],this.months30=[2,4,6,9,11],this.daysCntOfYear=[0,31,59,90,120,151,181,212,243,273,304,334]}return r(t,[{key:"isValidDate",value:function(t){return!isNaN(this.parseDate(t))}},{key:"getTimeStamp",value:function(t){return Date.parse(t)?this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toISOString().substr(0,25)).getTime():new Date(t).getTime():t}},{key:"getDate",value:function(t){return this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toUTCString()):new Date(t)}},{key:"parseDate",value:function(t){var e=Date.parse(t);if(!isNaN(e))return this.getTimeStamp(t);var i=Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "));return i=this.getTimeStamp(i)}},{key:"parseDateWithTimezone",value:function(t){return Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "))}},{key:"formatDate",value:function(t,e){var i=this.w.globals.locale,a=this.w.config.xaxis.labels.datetimeUTC,s=["\0"].concat(u(i.months)),r=["\x01"].concat(u(i.shortMonths)),o=["\x02"].concat(u(i.days)),n=["\x03"].concat(u(i.shortDays));function l(t,e){var i=t+"";for(e=e||2;i.length12?g-12:0===g?12:g;e=(e=(e=(e=e.replace(/(^|[^\\])HH+/g,"$1"+l(g))).replace(/(^|[^\\])H/g,"$1"+g)).replace(/(^|[^\\])hh+/g,"$1"+l(f))).replace(/(^|[^\\])h/g,"$1"+f);var p=a?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\])mm+/g,"$1"+l(p))).replace(/(^|[^\\])m/g,"$1"+p);var x=a?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\])ss+/g,"$1"+l(x))).replace(/(^|[^\\])s/g,"$1"+x);var b=a?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\])fff+/g,"$1"+l(b,3)),b=Math.round(b/10),e=e.replace(/(^|[^\\])ff/g,"$1"+l(b)),b=Math.round(b/10);var v=g<12?"AM":"PM";e=(e=(e=e.replace(/(^|[^\\])f/g,"$1"+b)).replace(/(^|[^\\])TT+/g,"$1"+v)).replace(/(^|[^\\])T/g,"$1"+v.charAt(0));var m=v.toLowerCase();e=(e=e.replace(/(^|[^\\])tt+/g,"$1"+m)).replace(/(^|[^\\])t/g,"$1"+m.charAt(0));var y=-t.getTimezoneOffset(),w=a||!y?"Z":y>0?"+":"-";if(!a){var k=(y=Math.abs(y))%60;w+=l(Math.floor(y/60))+":"+l(k)}e=e.replace(/(^|[^\\])K/g,"$1"+w);var A=(a?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(o[0],"g"),o[A])).replace(new RegExp(n[0],"g"),n[A])).replace(new RegExp(s[0],"g"),s[c])).replace(new RegExp(r[0],"g"),r[c])).replace(/\\(.)/g,"$1")}},{key:"getTimeUnitsfromTimestamp",value:function(t,e,i){var a=this.w;void 0!==a.config.xaxis.min&&(t=a.config.xaxis.min),void 0!==a.config.xaxis.max&&(e=a.config.xaxis.max);var s=this.getDate(t),r=this.getDate(e),o=this.formatDate(s,"yyyy MM dd HH mm ss fff").split(" "),n=this.formatDate(r,"yyyy MM dd HH mm ss fff").split(" ");return{minMillisecond:parseInt(o[6],10),maxMillisecond:parseInt(n[6],10),minSecond:parseInt(o[5],10),maxSecond:parseInt(n[5],10),minMinute:parseInt(o[4],10),maxMinute:parseInt(n[4],10),minHour:parseInt(o[3],10),maxHour:parseInt(n[3],10),minDate:parseInt(o[2],10),maxDate:parseInt(n[2],10),minMonth:parseInt(o[1],10)-1,maxMonth:parseInt(n[1],10)-1,minYear:parseInt(o[0],10),maxYear:parseInt(n[0],10)}}},{key:"isLeapYear",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:"calculcateLastDaysOfMonth",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:"determineDaysOfYear",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:"determineRemainingDaysOfYear",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:"determineDaysOfMonths",value:function(t,e){var i=30;switch(t=x.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}]),t}(),M=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.tooltipKeyFormat="dd MMM"}return r(t,[{key:"xLabelFormat",value:function(t,e,i,a){var s=this.w;if("datetime"===s.config.xaxis.type&&void 0===s.config.xaxis.labels.formatter&&void 0===s.config.tooltip.x.formatter){var r=new T(this.ctx);return r.formatDate(r.getDate(e),s.config.tooltip.x.format)}return t(e,i,a)}},{key:"defaultGeneralFormatter",value:function(t){return Array.isArray(t)?t.map((function(t){return t})):t}},{key:"defaultYFormatter",value:function(t,e,i){var a=this.w;return x.isNumber(t)&&(t=0!==a.globals.yValueDecimal?t.toFixed(void 0!==e.decimalsInFloat?e.decimalsInFloat:a.globals.yValueDecimal):a.globals.maxYArr[i]-a.globals.minYArr[i]<5?t.toFixed(1):t.toFixed(0)),t}},{key:"setLabelFormatters",value:function(){var t=this,e=this.w;return e.globals.xaxisTooltipFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttKeyFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttZFormatter=function(t){return t},e.globals.legendFormatter=function(e){return t.defaultGeneralFormatter(e)},void 0!==e.config.xaxis.labels.formatter?e.globals.xLabelFormatter=e.config.xaxis.labels.formatter:e.globals.xLabelFormatter=function(t){if(x.isNumber(t)){if(!e.config.xaxis.convertedCatToNumeric&&"numeric"===e.config.xaxis.type){if(x.isNumber(e.config.xaxis.decimalsInFloat))return t.toFixed(e.config.xaxis.decimalsInFloat);var i=e.globals.maxX-e.globals.minX;return i>0&&i<100?t.toFixed(1):t.toFixed(0)}if(e.globals.isBarHorizontal)if(e.globals.maxY-e.globals.minYArr<4)return t.toFixed(1);return t.toFixed(0)}return t},"function"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,"function"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:"heatmapLabelFormatters",value:function(){var t=this.w;if("heatmap"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),I=function(t){var e,i=t.isTimeline,a=t.ctx,s=t.seriesIndex,r=t.dataPointIndex,o=t.y1,n=t.y2,l=t.w,h=l.globals.seriesRangeStart[s][r],c=l.globals.seriesRangeEnd[s][r],d=l.globals.labels[r],g=l.config.series[s].name?l.config.series[s].name:"",u=l.globals.ttKeyFormatter,f=l.config.tooltip.y.title.formatter,p={w:l,seriesIndex:s,dataPointIndex:r,start:h,end:c};("function"==typeof f&&(g=f(g,p)),null!==(e=l.config.series[s].data[r])&&void 0!==e&&e.x&&(d=l.config.series[s].data[r].x),i)||"datetime"===l.config.xaxis.type&&(d=new M(a).xLabelFormat(l.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new T(a).formatDate,w:l}));"function"==typeof u&&(d=u(d,p)),Number.isFinite(o)&&Number.isFinite(n)&&(h=o,c=n);var x="",b="",v=l.globals.colors[s];if(void 0===l.config.tooltip.x.formatter)if("datetime"===l.config.xaxis.type){var m=new T(a);x=m.formatDate(m.getDate(h),l.config.tooltip.x.format),b=m.formatDate(m.getDate(c),l.config.tooltip.x.format)}else x=h,b=c;else x=l.config.tooltip.x.formatter(h),b=l.config.tooltip.x.formatter(c);return{start:h,end:c,startVal:x,endVal:b,ylabel:d,color:v,seriesName:g}},z=function(t){var e=t.color,i=t.seriesName,a=t.ylabel,s=t.start,r=t.end,o=t.seriesIndex,n=t.dataPointIndex,l=t.ctx.tooltip.tooltipLabels.getFormatters(o);s=l.yLbFormatter(s),r=l.yLbFormatter(r);var h=l.yLbFormatter(t.w.globals.series[o][n]),c='\n '.concat(s,'\n - \n ').concat(r,"\n ");return'
'+(i||"")+'
'+a+": "+(t.w.globals.comboCharts?"rangeArea"===t.w.config.series[o].type||"rangeBar"===t.w.config.series[o].type?c:"".concat(h,""):c)+"
"},X=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"line",value:function(){return{chart:{animations:{easing:"swing"}},dataLabels:{enabled:!1},stroke:{width:5,curve:"straight"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:"sparkline",value:function(t){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text="",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0;return x.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:"bar",value:function(){return{chart:{stacked:!1,animations:{easing:"swing"}},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{style:{colors:["#fff"]},background:{enabled:!1}},stroke:{width:0,lineCap:"round"},fill:{opacity:.85},legend:{markers:{shape:"square",radius:2,size:8}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:"between",crosshairs:{width:"barWidth",position:"back",fill:{type:"gradient"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:"candlestick",value:function(){var t=this;return{stroke:{width:1,colors:["#333"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Open","High","","Low","Close"],"candlestick")}},states:{active:{filter:{type:"none"}}},xaxis:{crosshairs:{width:1}}}}},{key:"boxPlot",value:function(){var t=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:["#24292e"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Minimum","Q1","Median","Q3","Maximum"],"boxPlot")}},markers:{size:5,strokeWidth:1,strokeColors:"#111"},xaxis:{crosshairs:{width:1}}}}},{key:"rangeBar",value:function(){return{stroke:{width:0,lineCap:"square"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:"center"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,r=function(){var t=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-t};return s.globals.comboCharts?"rangeBar"===s.config.series[i].type||"rangeArea"===s.config.series[i].type?r():t:r()},background:{enabled:!1},style:{colors:["#fff"]}},tooltip:{shared:!1,followCursor:!0,custom:function(t){return t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?function(t){var i=I(e(e({},t),{},{isTimeline:!0})),a=i.color,s=i.seriesName,r=i.ylabel,o=i.startVal,n=i.endVal;return z(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t):function(t){var i=I(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return z(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t)}},xaxis:{tickPlacement:"between",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:"area",value:function(){return{stroke:{width:4,fill:{type:"solid",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}}},fill:{type:"gradient",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:"rangeArea",value:function(){return{stroke:{curve:"straight",width:0},fill:{type:"solid",opacity:.6},markers:{size:0},states:{hover:{filter:{type:"none"}},active:{filter:{type:"none"}}},tooltip:{intersect:!1,shared:!0,followCursor:!0,custom:function(t){return function(t){var i=I(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return z(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t)}}}}},{key:"brush",value:function(t){return x.extend(t,{chart:{toolbar:{autoSelected:"selection",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:"stacked100",value:function(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;var e=t.dataLabels.formatter;return t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})),"bar"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return"number"==typeof t&&t?t.toFixed(0)+"%":t}),t}},{key:"stackedBars",value:function(){var t=this.bar();return e(e({},t),{},{plotOptions:e(e({},t.plotOptions),{},{bar:e(e({},t.plotOptions.bar),{},{borderRadiusApplication:"end",borderRadiusWhenStacked:"last"})})})}},{key:"convertCatToNumeric",value:function(t){return t.xaxis.convertedCatToNumeric=!0,t}},{key:"convertCatToNumericXaxis",value:function(t,e,i){t.xaxis.type="numeric",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return x.isNumber(t)?Math.floor(t):t};var a=t.xaxis.labels.formatter,s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(s=i.map((function(t){return Array.isArray(t)?t:String(t)}))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return x.isNumber(t)?a(s[Math.floor(t)-1]):a(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||"dataPoints",t}},{key:"bubble",value:function(){return{dataLabels:{style:{colors:["#fff"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:"solid",gradient:{shade:"light",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:"scatter",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:"heatmap",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:["#fff"]}},stroke:{colors:["#fff"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:"top",markers:{shape:"square",size:10,offsetY:2}},grid:{padding:{right:20}}}}},{key:"treemap",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:["#fff"]}},stroke:{show:!0,width:2,colors:["#fff"]},legend:{show:!1},fill:{gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:"pie",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",stops:[0,100]}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"donut",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"polarArea",value:function(){return this.opts.yaxis[0].tickAmount=this.opts.yaxis[0].tickAmount?this.opts.yaxis[0].tickAmount:6,{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"radar",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:"11px"}},stroke:{width:2},markers:{size:3,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{labels:{formatter:function(t){return t},style:{colors:["#a8a8a8"],fontSize:"11px"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:"radialBar",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:"dark",shadeIntensity:.4,inverseColors:!1,type:"diagonal2",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:"right"},tooltip:{enabled:!1,fillSeriesColor:!0}}}},{key:"_getBoxTooltip",value:function(t,e,i,a,s){var r=t.globals.seriesCandleO[e][i],o=t.globals.seriesCandleH[e][i],n=t.globals.seriesCandleM[e][i],l=t.globals.seriesCandleL[e][i],h=t.globals.seriesCandleC[e][i];return t.config.series[e].type&&t.config.series[e].type!==s?'
\n '.concat(t.config.series[e].name?t.config.series[e].name:"series-"+(e+1),": ").concat(t.globals.series[e][i],"\n
"):'
')+"
".concat(a[0],': ')+r+"
"+"
".concat(a[1],': ')+o+"
"+(n?"
".concat(a[2],': ')+n+"
":"")+"
".concat(a[3],': ')+l+"
"+"
".concat(a[4],': ')+h+"
"}}]),t}(),E=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"init",value:function(t){var e=t.responsiveOverride,a=this.opts,s=new L,r=new X(a);this.chartType=a.chart.type,a=this.extendYAxis(a),a=this.extendAnnotations(a);var o=s.init(),n={};if(a&&"object"===i(a)){var l={};l=-1!==["line","area","bar","candlestick","boxPlot","rangeBar","rangeArea","bubble","scatter","heatmap","treemap","pie","polarArea","donut","radar","radialBar"].indexOf(a.chart.type)?r[a.chart.type]():r.line(),a.chart.stacked&&"bar"===a.chart.type&&(l=r.stackedBars()),a.chart.brush&&a.chart.brush.enabled&&(l=r.brush(l)),a.chart.stacked&&"100%"===a.chart.stackType&&(a=r.stacked100(a)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(a),a.xaxis=a.xaxis||window.Apex.xaxis||{},e||(a.xaxis.convertedCatToNumeric=!1),((a=this.checkForCatToNumericXAxis(this.chartType,l,a)).chart.sparkline&&a.chart.sparkline.enabled||window.Apex.chart&&window.Apex.chart.sparkline&&window.Apex.chart.sparkline.enabled)&&(l=r.sparkline(l)),n=x.extend(o,l)}var h=x.extend(n,window.Apex);return o=x.extend(h,a),o=this.handleUserInputErrors(o)}},{key:"checkForCatToNumericXAxis",value:function(t,e,i){var a=new X(i),s=("bar"===t||"boxPlot"===t)&&i.plotOptions&&i.plotOptions.bar&&i.plotOptions.bar.horizontal,r="pie"===t||"polarArea"===t||"donut"===t||"radar"===t||"radialBar"===t||"heatmap"===t,o="datetime"!==i.xaxis.type&&"numeric"!==i.xaxis.type,n=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return s||r||!o||"between"===n||(i=a.convertCatToNumeric(i)),i}},{key:"extendYAxis",value:function(t,e){var i=new L;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={}),t.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(t.yaxis=x.extend(t.yaxis,window.Apex.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[x.extend(i.yAxis,t.yaxis)]:t.yaxis=x.extendArray(t.yaxis,i.yAxis);var a=!1;t.yaxis.forEach((function(t){t.logarithmic&&(a=!0)}));var s=t.series;return e&&!s&&(s=e.config.series),a&&s.length!==t.yaxis.length&&s.length&&(t.yaxis=s.map((function(e,a){if(e.name||(s[a].name="series-".concat(a+1)),t.yaxis[a])return t.yaxis[a].seriesName=s[a].name,t.yaxis[a];var r=x.extend(i.yAxis,t.yaxis[0]);return r.show=!1,r}))),a&&s.length>1&&s.length!==t.yaxis.length&&console.warn("A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both."),t}},{key:"extendAnnotations",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}},{key:"extendYAxisAnnotations",value:function(t){var e=new L;return t.annotations.yaxis=x.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:"extendXAxisAnnotations",value:function(t){var e=new L;return t.annotations.xaxis=x.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:"extendPointAnnotations",value:function(t){var e=new L;return t.annotations.points=x.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:"checkForDarkTheme",value:function(t){t.theme&&"dark"===t.theme.mode&&(t.tooltip||(t.tooltip={}),"light"!==t.tooltip.theme&&(t.tooltip.theme="dark"),t.chart.foreColor||(t.chart.foreColor="#f6f7f8"),t.chart.background||(t.chart.background="#424242"),t.theme.palette||(t.theme.palette="palette4"))}},{key:"handleUserInputErrors",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");if("bar"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return"bar"!==e.chart.type&&"rangeBar"!==e.chart.type||e.tooltip.shared&&"barWidth"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width="tickWidth"),"candlestick"!==e.chart.type&&"boxPlot"!==e.chart.type||e.yaxis[0].reversed&&(console.warn("Reversed y-axis in ".concat(e.chart.type," chart is not supported.")),e.yaxis[0].reversed=!1),e}}]),t}(),Y=function(){function t(){a(this,t)}return r(t,[{key:"initGlobalVars",value:function(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRange=[],t.seriesPercent=[],t.seriesGoals=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.labels=[],t.hasGroups=!1,t.groups=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.delayedElements=[],t.pointsArray=[],t.dataLabelsRects=[],t.isXNumeric=!1,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0}},{key:"globalVars",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:"ontouchstart"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],goldenPadding:35,invalidLogScale:!1,ignoreYAxisIndexes:[],yAxisSameScaleIndices:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:"zoom"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:"pan"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:"selection"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:"http://www.w3.org/2000/svg",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null}}},{key:"init",value:function(t){var e=this.globalVars(t);return this.initGlobalVars(e),e.initialConfig=x.extend({},t),e.initialSeries=x.clone(t.series),e.lastXAxis=x.clone(e.initialConfig.xaxis),e.lastYAxis=x.clone(e.initialConfig.yaxis),e}}]),t}(),F=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"init",value:function(){var t=new E(this.opts).init({responsiveOverride:!1});return{config:t,globals:(new Y).init(t)}}}]),t}(),R=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.opts=null,this.seriesIndex=0}return r(t,[{key:"clippedImgArea",value:function(t){var e=this.w,i=e.config,a=parseInt(e.globals.gridWidth,10),s=parseInt(e.globals.gridHeight,10),r=a>s?a:s,o=t.image,n=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(n=i.fill.image.width+1,l=i.fill.image.height):(n=r+1,l=r):(n=t.width,l=t.height);var h=document.createElementNS(e.globals.SVGNS,"pattern");m.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:"userSpaceOnUse",width:n+"px",height:l+"px"});var c=document.createElementNS(e.globals.SVGNS,"image");h.appendChild(c),c.setAttributeNS(window.SVG.xlink,"href",o),m.setAttrs(c,{x:0,y:0,preserveAspectRatio:"none",width:n+"px",height:l+"px"}),c.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(h)}},{key:"getSeriesIndex",value:function(t){var e=this.w;return("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||"heatmap"===e.config.chart.type||"treemap"===e.config.chart.type?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:"fillPath",value:function(t){var e=this.w;this.opts=t;var i,a,s,r=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var o=this.getFillColors()[this.seriesIndex];void 0!==e.globals.seriesColors[this.seriesIndex]&&(o=e.globals.seriesColors[this.seriesIndex]),"function"==typeof o&&(o=o({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:e}));var n=t.fillType?t.fillType:this.getFillType(this.seriesIndex),l=Array.isArray(r.fill.opacity)?r.fill.opacity[this.seriesIndex]:r.fill.opacity;t.color&&(o=t.color);var h=o;if(-1===o.indexOf("rgb")?o.length<9&&(h=x.hexToRgba(o,l)):o.indexOf("rgba")>-1&&(l=x.getOpacityFromRGBA(o)),t.opacity&&(l=t.opacity),"pattern"===n&&(a=this.handlePatternFill({fillConfig:t.fillConfig,patternFill:a,fillColor:o,fillOpacity:l,defaultColor:h})),"gradient"===n&&(s=this.handleGradientFill({fillConfig:t.fillConfig,fillColor:o,fillOpacity:l,i:this.seriesIndex})),"image"===n){var c=r.fill.image.src,d=t.patternID?t.patternID:"";this.clippedImgArea({opacity:l,image:Array.isArray(c)?t.seriesNumber-1&&(u=x.getOpacityFromRGBA(g));var f=void 0===o.gradient.opacityTo?a:Array.isArray(o.gradient.opacityTo)?o.gradient.opacityTo[r]:o.gradient.opacityTo;if(void 0===o.gradient.gradientToColors||0===o.gradient.gradientToColors.length)n="dark"===o.gradient.shade?c.shadeColor(-1*parseFloat(o.gradient.shadeIntensity),i.indexOf("rgb")>-1?x.rgb2hex(i):i):c.shadeColor(parseFloat(o.gradient.shadeIntensity),i.indexOf("rgb")>-1?x.rgb2hex(i):i);else if(o.gradient.gradientToColors[l.seriesNumber]){var p=o.gradient.gradientToColors[l.seriesNumber];n=p,p.indexOf("rgba")>-1&&(f=x.getOpacityFromRGBA(p))}else n=i;if(o.gradient.gradientFrom&&(g=o.gradient.gradientFrom),o.gradient.gradientTo&&(n=o.gradient.gradientTo),o.gradient.inverseColors){var b=g;g=n,n=b}return g.indexOf("rgb")>-1&&(g=x.rgb2hex(g)),n.indexOf("rgb")>-1&&(n=x.rgb2hex(n)),h.drawGradient(d,g,n,u,f,l.size,o.gradient.stops,o.gradient.colorStops,r)}}]),t}(),D=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"setGlobalMarkerSize",value:function(){var t=this.w;if(t.globals.markers.size=Array.isArray(t.config.markers.size)?t.config.markers.size:[t.config.markers.size],t.globals.markers.size.length>0){if(t.globals.markers.size.length4&&void 0!==arguments[4]&&arguments[4],o=this.w,n=e,l=t,h=null,c=new m(this.ctx),d=o.config.markers.discrete&&o.config.markers.discrete.length;if((o.globals.markers.size[e]>0||r||d)&&(h=c.group({class:r||d?"":"apexcharts-series-markers"})).attr("clip-path","url(#gridRectMarkerMask".concat(o.globals.cuid,")")),Array.isArray(l.x))for(var g=0;g0:o.config.markers.size>0;if(p||r||d){x.isNumber(l.y[g])?f+=" w".concat(x.randomId()):f="apexcharts-nullpoint";var b=this.getMarkerConfig({cssClass:f,seriesIndex:e,dataPointIndex:u});o.config.series[n].data[u]&&(o.config.series[n].data[u].fillColor&&(b.pointFillColor=o.config.series[n].data[u].fillColor),o.config.series[n].data[u].strokeColor&&(b.pointStrokeColor=o.config.series[n].data[u].strokeColor)),a&&(b.pSize=a),(s=c.drawMarker(l.x[g],l.y[g],b)).attr("rel",u),s.attr("j",u),s.attr("index",e),s.node.setAttribute("default-marker-size",b.pSize);var y=new v(this.ctx);y.setSelectionFilter(s,e,u),this.addEvents(s),h&&h.add(s)}else void 0===o.globals.pointsArray[e]&&(o.globals.pointsArray[e]=[]),o.globals.pointsArray[e].push([l.x[g],l.y[g]])}return h}},{key:"getMarkerConfig",value:function(t){var e=t.cssClass,i=t.seriesIndex,a=t.dataPointIndex,s=void 0===a?null:a,r=t.finishRadius,o=void 0===r?null:r,n=this.w,l=this.getMarkerStyle(i),h=n.globals.markers.size[i],c=n.config.markers;return null!==s&&c.discrete.length&&c.discrete.map((function(t){t.seriesIndex===i&&t.dataPointIndex===s&&(l.pointStrokeColor=t.strokeColor,l.pointFillColor=t.fillColor,h=t.size,l.pointShape=t.shape)})),{pSize:null===o?h:o,pRadius:c.radius,width:Array.isArray(c.width)?c.width[i]:c.width,height:Array.isArray(c.height)?c.height[i]:c.height,pointStrokeWidth:Array.isArray(c.strokeWidth)?c.strokeWidth[i]:c.strokeWidth,pointStrokeColor:l.pointStrokeColor,pointFillColor:l.pointFillColor,shape:l.pointShape||(Array.isArray(c.shape)?c.shape[i]:c.shape),class:e,pointStrokeOpacity:Array.isArray(c.strokeOpacity)?c.strokeOpacity[i]:c.strokeOpacity,pointStrokeDashArray:Array.isArray(c.strokeDashArray)?c.strokeDashArray[i]:c.strokeDashArray,pointFillOpacity:Array.isArray(c.fillOpacity)?c.fillOpacity[i]:c.fillOpacity,seriesIndex:i}}},{key:"addEvents",value:function(t){var e=this.w,i=new m(this.ctx);t.node.addEventListener("mouseenter",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener("mouseleave",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener("mousedown",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener("click",e.config.markers.onClick),t.node.addEventListener("dblclick",e.config.markers.onDblClick),t.node.addEventListener("touchstart",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:"getMarkerStyle",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[t]:a,pointFillColor:Array.isArray(i)?i[t]:i}}}]),t}(),H=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled}return r(t,[{key:"draw",value:function(t,e,i){var a=this.w,s=new m(this.ctx),r=i.realIndex,o=i.pointsPos,n=i.zRatio,l=i.elParent,h=s.group({class:"apexcharts-series-markers apexcharts-series-".concat(a.config.chart.type)});if(h.attr("clip-path","url(#gridRectMarkerMask".concat(a.globals.cuid,")")),Array.isArray(o.x))for(var c=0;cp.maxBubbleRadius&&(f=p.maxBubbleRadius)}a.config.chart.animations.enabled||(u=f);var x=o.x[c],b=o.y[c];if(u=u||0,null!==b&&void 0!==a.globals.series[r][d]||(g=!1),g){var v=this.drawPoint(x,b,u,f,r,d,e);h.add(v)}l.add(h)}}},{key:"drawPoint",value:function(t,e,i,a,s,r,o){var n=this.w,l=s,h=new b(this.ctx),c=new v(this.ctx),d=new R(this.ctx),g=new D(this.ctx),u=new m(this.ctx),f=g.getMarkerConfig({cssClass:"apexcharts-marker",seriesIndex:l,dataPointIndex:r,finishRadius:"bubble"===n.config.chart.type||n.globals.comboCharts&&n.config.series[s]&&"bubble"===n.config.series[s].type?a:null});a=f.pSize;var p,x=d.fillPath({seriesNumber:s,dataPointIndex:r,color:f.pointFillColor,patternUnits:"objectBoundingBox",value:n.globals.series[s][o]});if("circle"===f.shape?p=u.drawCircle(i):"square"!==f.shape&&"rect"!==f.shape||(p=u.drawRect(0,0,f.width-f.pointStrokeWidth/2,f.height-f.pointStrokeWidth/2,f.pRadius)),n.config.series[l].data[r]&&n.config.series[l].data[r].fillColor&&(x=n.config.series[l].data[r].fillColor),p.attr({x:t-f.width/2-f.pointStrokeWidth/2,y:e-f.height/2-f.pointStrokeWidth/2,cx:t,cy:e,fill:x,"fill-opacity":f.pointFillOpacity,stroke:f.pointStrokeColor,r:a,"stroke-width":f.pointStrokeWidth,"stroke-dasharray":f.pointStrokeDashArray,"stroke-opacity":f.pointStrokeOpacity}),n.config.chart.dropShadow.enabled){var y=n.config.chart.dropShadow;c.dropShadow(p,y,s)}if(!this.initialAnim||n.globals.dataChanged||n.globals.resized)n.globals.animationEnded=!0;else{var w=n.config.chart.animations.speed;h.animateMarker(p,0,"circle"===f.shape?a:{width:f.width,height:f.height},w,n.globals.easing,(function(){window.setTimeout((function(){h.animationCompleted(p)}),100)}))}if(n.globals.dataChanged&&"circle"===f.shape)if(this.dynamicAnim){var k,A,S,C,L=n.config.chart.animations.dynamicAnimation.speed;null!=(C=n.globals.previousPaths[s]&&n.globals.previousPaths[s][o])&&(k=C.x,A=C.y,S=void 0!==C.r?C.r:a);for(var P=0;Pn.globals.gridHeight+d&&(e=n.globals.gridHeight+d/2),void 0===n.globals.dataLabelsRects[a]&&(n.globals.dataLabelsRects[a]=[]),n.globals.dataLabelsRects[a].push({x:t,y:e,width:c,height:d});var g=n.globals.dataLabelsRects[a].length-2,u=void 0!==n.globals.lastDrawnDataLabelsIndexes[a]?n.globals.lastDrawnDataLabelsIndexes[a][n.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(void 0!==n.globals.dataLabelsRects[a][g]){var f=n.globals.dataLabelsRects[a][u];(t>f.x+f.width+2||e>f.y+f.height+2||t+ce.globals.gridWidth+p.textRects.width+10)&&(n="");var x=e.globals.dataLabels.style.colors[r];(("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(x=e.globals.dataLabels.style.colors[o]),"function"==typeof x&&(x=x({series:e.globals.series,seriesIndex:r,dataPointIndex:o,w:e})),g&&(x=g);var b=d.offsetX,y=d.offsetY;if("bar"!==e.config.chart.type&&"rangeBar"!==e.config.chart.type||(b=0,y=0),p.drawnextLabel){var w=i.drawText({width:100,height:parseInt(d.style.fontSize,10),x:a+b,y:s+y,foreColor:x,textAnchor:l||d.textAnchor,text:n,fontSize:h||d.style.fontSize,fontFamily:d.style.fontFamily,fontWeight:d.style.fontWeight||"normal"});if(w.attr({class:"apexcharts-datalabel",cx:a,cy:s}),d.dropShadow.enabled){var k=d.dropShadow;new v(this.ctx).dropShadow(w,k)}c.add(w),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(o)}}}},{key:"addBackgroundToDataLabel",value:function(t,e){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,o=e.width,n=e.height,l=new m(this.ctx).drawRect(e.x-s,e.y-r/2,o+2*s,n+r,a.borderRadius,"transparent"===i.config.chart.background?"#fff":i.config.chart.background,a.opacity,a.borderWidth,a.borderColor);a.dropShadow.enabled&&new v(this.ctx).dropShadow(l,a.dropShadow);return l}},{key:"dataLabelsBackground",value:function(){var t=this.w;if("bubble"!==t.config.chart.type)for(var e=t.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"),i=0;i0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w,s=x.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,t&&(e&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:"emptyCollapsedSeries",value:function(t){for(var e=this.w,i=0;i-1&&(t[i].data=[]);return t}},{key:"toggleSeriesOnHover",value:function(t,e){var i=this.w;e||(e=t.target);var a=i.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels");if("mousemove"===t.type){var s=parseInt(e.getAttribute("rel"),10)-1,r=null,o=null;i.globals.axisCharts||"radialBar"===i.config.chart.type?i.globals.axisCharts?(r=i.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(s,"']")),o=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(s,"']"))):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"']")):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"'] path"));for(var n=0;n=t.from&&a<=t.to&&s[e].classList.remove(i.legendInactiveClass)}}(a.config.plotOptions.heatmap.colorScale.ranges[o])}else"mouseout"===t.type&&r("remove")}},{key:"getActiveConfigSeriesIndex",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"asc",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=this.w,a=0;if(i.config.series.length>1)for(var s=i.config.series.map((function(t,a){return t.data&&t.data.length>0&&-1===i.globals.collapsedSeriesIndices.indexOf(a)&&(!i.globals.comboCharts||0===e.length||e.length&&e.indexOf(i.config.series[a].type)>-1)?a:-1})),r="asc"===t?0:s.length-1;"asc"===t?r=0;"asc"===t?r++:r--)if(-1!==s[r]){a=s[r];break}return a}},{key:"getBarSeriesIndices",value:function(){return this.w.globals.comboCharts?this.w.config.series.map((function(t,e){return"bar"===t.type||"column"===t.type?e:-1})).filter((function(t){return-1!==t})):this.w.config.series.map((function(t,e){return e}))}},{key:"getPreviousPaths",value:function(){var t=this.w;function e(e,i,a){for(var s=e[i].childNodes,r={type:a,paths:[],realIndex:e[i].getAttribute("data:realIndex")},o=0;o0)for(var a=function(e){for(var i=t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t.config.chart.type," .apexcharts-series[data\\:realIndex='").concat(e,"'] rect")),a=[],s=function(t){var e=function(e){return i[t].getAttribute(e)},s={x:parseFloat(e("x")),y:parseFloat(e("y")),width:parseFloat(e("width")),height:parseFloat(e("height"))};a.push({rect:s,color:i[t].getAttribute("color")})},r=0;r0)for(var a=0;a0?t:[]}));return t}}]),t}(),W=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new y(this.ctx)}return r(t,[{key:"isMultiFormat",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:"isFormatXY",value:function(){var t=this.w.config.series.slice(),e=new N(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:"isFormat2DArray",value:function(){var t=this.w.config.series.slice(),e=new N(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:"handleFormat2DArray",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s="boxPlot"===i.chart.type||"boxPlot"===i.series[e].type,r=0;r=5?this.twoDSeries.push(x.parseNumber(t[e].data[r][4])):this.twoDSeries.push(x.parseNumber(t[e].data[r][1])),a.dataFormatXNumeric=!0),"datetime"===i.xaxis.type){var o=new Date(t[e].data[r][0]);o=new Date(o).getTime(),this.twoDSeriesX.push(o)}else this.twoDSeriesX.push(t[e].data[r][0]);for(var n=0;n-1&&(r=this.activeSeriesIndex);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:this.ctx,a=this.w.config,s=this.w.globals,r=new T(i),o=a.labels.length>0?a.labels.slice():a.xaxis.categories.slice();s.isRangeBar="rangeBar"===a.chart.type&&s.isBarHorizontal,s.hasGroups="category"===a.xaxis.type&&a.xaxis.group.groups.length>0,s.hasGroups&&(s.groups=a.xaxis.group.groups);for(var n=function(){for(var t=0;t0&&(this.twoDSeriesX=o,s.seriesX.push(this.twoDSeriesX))),s.labels.push(this.twoDSeriesX);var h=t[l].data.map((function(t){return x.parseNumber(t)}));s.series.push(h)}s.seriesZ.push(this.threeDSeries),void 0!==t[l].name?s.seriesNames.push(t[l].name):s.seriesNames.push("series-"+parseInt(l+1,10)),void 0!==t[l].color?s.seriesColors.push(t[l].color):s.seriesColors.push(void 0)}return this.w}},{key:"parseDataNonAxisCharts",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory){if(i.labels=i.labels[0],i.seriesRange.length&&(i.seriesRange.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=i.labels.filter((function(t,e,i){return i.indexOf(t)===e}))),e.xaxis.convertedCatToNumeric)new X(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t)}else this._generateExternalLabels(t)}},{key:"_generateExternalLabels",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)if(this.isFormatXY())for(var s=i.series.map((function(t,e){return t.data.filter((function(t,e,i){return i.findIndex((function(e){return e.x===t.x}))===e}))})),r=s.reduce((function(t,e,i,a){return a[t].length>e.length?t:i}),0),o=0;o4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"12px",o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],n=this.w,l=void 0===t[a]?"":t[a],h=l,c=n.globals.xLabelFormatter,d=n.config.xaxis.labels.formatter,g=!1,u=new M(this.ctx),f=l;o&&(h=u.xLabelFormat(c,l,f,{i:a,dateFormatter:new T(this.ctx).formatDate,w:n}),void 0!==d&&(h=d(l,t[a],{i:a,dateFormatter:new T(this.ctx).formatDate,w:n})));var p=function(t){var i=null;return e.forEach((function(t){"month"===t.unit?i="year":"day"===t.unit?i="month":"hour"===t.unit?i="day":"minute"===t.unit&&(i="hour")})),i===t};e.length>0?(g=p(e[a].unit),i=e[a].position,h=e[a].value):"datetime"===n.config.xaxis.type&&void 0===d&&(h=""),void 0===h&&(h=""),h=Array.isArray(h)?h:h.toString();var x=new m(this.ctx),b={};b=n.globals.rotateXLabels&&o?x.getTextRects(h,parseInt(r,10),null,"rotate(".concat(n.config.xaxis.labels.rotate," 0 0)"),!1):x.getTextRects(h,parseInt(r,10));var v=!n.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(h)&&(0===h.indexOf("NaN")||0===h.toLowerCase().indexOf("invalid")||h.toLowerCase().indexOf("infinity")>=0||s.indexOf(h)>=0&&v)&&(h=""),{x:i,text:h,textRect:b,isBold:g}}},{key:"checkLabelBasedOnTickamount",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return"dataPoints"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=""),e}},{key:"checkForOverflowingLabels",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=""),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=""),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var o=s[s.length-1];e.x0){!0===n.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=h+e/10+n.config.yaxis[s].labels.offsetY-1;n.globals.isBarHorizontal&&(d=r*c),"heatmap"===n.config.chart.type&&(d+=r/2);var g=l.drawLine(t+i.offsetX-a.width+a.offsetX,d+a.offsetY,t+i.offsetX+a.offsetX,d+a.offsetY,a.color);o.add(g),h+=r}}}}]),t}(),G=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"scaleSvgNode",value:function(t,e){var i=parseFloat(t.getAttributeNS(null,"width")),a=parseFloat(t.getAttributeNS(null,"height"));t.setAttributeNS(null,"width",i*e),t.setAttributeNS(null,"height",a*e),t.setAttributeNS(null,"viewBox","0 0 "+i+" "+a)}},{key:"fixSvgStringForIe11",value:function(t){if(!x.isIE11())return t.replace(/ /g," ");var e=0,i=t.replace(/xmlns="http:\/\/www.w3.org\/2000\/svg"/g,(function(t){return 2===++e?'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev"':t}));return i=(i=i.replace(/xmlns:NS\d+=""/g,"")).replace(/NS\d+:(\w+:\w+=")/g,"$1")}},{key:"getSvgString",value:function(t){null==t&&(t=1);var e=this.w.globals.dom.Paper.svg();if(1!==t){var i=this.w.globals.dom.Paper.node.cloneNode(!0);this.scaleSvgNode(i,t),e=(new XMLSerializer).serializeToString(i)}return this.fixSvgStringForIe11(e)}},{key:"cleanup",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-xcrosshairs"),i=t.globals.dom.baseEl.getElementsByClassName("apexcharts-ycrosshairs"),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-zoom-rect, .apexcharts-selection-rect");Array.prototype.forEach.call(a,(function(t){t.setAttribute("width",0)})),e&&e[0]&&(e[0].setAttribute("x",-500),e[0].setAttribute("x1",-500),e[0].setAttribute("x2",-500)),i&&i[0]&&(i[0].setAttribute("y",-100),i[0].setAttribute("y1",-100),i[0].setAttribute("y2",-100))}},{key:"svgUrl",value:function(){this.cleanup();var t=this.getSvgString(),e=new Blob([t],{type:"image/svg+xml;charset=utf-8"});return URL.createObjectURL(e)}},{key:"dataURI",value:function(t){var e=this;return new Promise((function(i){var a=e.w,s=t?t.scale||t.width/a.globals.svgWidth:1;e.cleanup();var r=document.createElement("canvas");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var o="transparent"===a.config.chart.background?"#fff":a.config.chart.background,n=r.getContext("2d");n.fillStyle=o,n.fillRect(0,0,r.width*s,r.height*s);var l=e.getSvgString(s);if(window.canvg&&x.isIE11()){var h=window.canvg.Canvg.fromString(n,l,{ignoreClear:!0,ignoreDimensions:!0});h.start();var c=r.msToBlob();h.stop(),i({blob:c})}else{var d="data:image/svg+xml,"+encodeURIComponent(l),g=new Image;g.crossOrigin="anonymous",g.onload=function(){if(n.drawImage(g,0,0),r.msToBlob){var t=r.msToBlob();i({blob:t})}else{var e=r.toDataURL("image/png");i({imgURI:e})}},g.src=d}}))}},{key:"exportToSVG",value:function(){this.triggerDownload(this.svgUrl(),this.w.config.chart.toolbar.export.svg.filename,".svg")}},{key:"exportToPng",value:function(){var t=this;this.dataURI().then((function(e){var i=e.imgURI,a=e.blob;a?navigator.msSaveOrOpenBlob(a,t.w.globals.chartID+".png"):t.triggerDownload(i,t.w.config.chart.toolbar.export.png.filename,".png")}))}},{key:"exportToCSV",value:function(t){var e=this,i=t.series,a=t.fileName,s=t.columnDelimiter,r=void 0===s?",":s,o=t.lineDelimiter,n=void 0===o?"\n":o,l=this.w;i||(i=l.config.series);var h=[],c=[],d="",g=l.globals.series.map((function(t,e){return-1===l.globals.collapsedSeriesIndices.indexOf(e)?t:[]})),f=Math.max.apply(Math,u(i.map((function(t){return t.data?t.data.length:0})))),p=new W(this.ctx),b=new B(this.ctx),v=function(t){var i="";if(l.globals.axisCharts){if("category"===l.config.xaxis.type||l.config.xaxis.convertedCatToNumeric)if(l.globals.isBarHorizontal){var a=l.globals.yLabelFormatters[0],s=new N(e.ctx).getActiveConfigSeriesIndex();i=a(l.globals.labels[t],{seriesIndex:s,dataPointIndex:t,w:l})}else i=b.getLabel(l.globals.labels,l.globals.timescaleLabels,0,t).text;"datetime"===l.config.xaxis.type&&(l.config.xaxis.categories.length?i=l.config.xaxis.categories[t]:l.config.labels.length&&(i=l.config.labels[t]))}else i=l.config.labels[t];return Array.isArray(i)&&(i=i.join(" ")),x.isNumber(i)?i:i.split(r).join("")},m=function(t,e){if(h.length&&0===e&&c.push(h.join(r)),t.data){t.data=t.data.length&&t.data||u(Array(f)).map((function(){return""}));for(var a=0;a=10?l.config.chart.toolbar.export.csv.dateFormatter(s):x.isNumber(s)?s:s.split(r).join("")));for(var o=0;o0&&!s.globals.isBarHorizontal&&(this.xaxisLabels=s.globals.timescaleLabels.slice()),s.config.xaxis.overwriteCategories&&(this.xaxisLabels=s.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],"top"===s.config.xaxis.position?this.offY=0:this.offY=s.globals.gridHeight+1,this.offY=this.offY+s.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal="bar"===s.config.chart.type&&s.config.plotOptions.bar.horizontal,this.xaxisFontSize=s.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=s.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=s.config.xaxis.labels.style.colors,this.xaxisBorderWidth=s.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=s.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf("%")>-1?this.xaxisBorderWidth=s.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=s.config.xaxis.axisBorder.height,this.yaxis=s.config.yaxis[0]}return r(t,[{key:"drawXaxis",value:function(){var t=this.w,e=new m(this.ctx),i=e.group({class:"apexcharts-xaxis",transform:"translate(".concat(t.config.xaxis.offsetX,", ").concat(t.config.xaxis.offsetY,")")}),a=e.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(t.globals.translateXAxisX,", ").concat(t.globals.translateXAxisY,")")});i.add(a);for(var s=[],r=0;r6&&void 0!==arguments[6]?arguments[6]:{},h=[],c=[],d=this.w,g=l.xaxisFontSize||this.xaxisFontSize,u=l.xaxisFontFamily||this.xaxisFontFamily,f=l.xaxisForeColors||this.xaxisForeColors,p=l.fontWeight||d.config.xaxis.labels.style.fontWeight,x=l.cssClass||d.config.xaxis.labels.style.cssClass,b=d.globals.padHorizontal,v=a.length,m="category"===d.config.xaxis.type?d.globals.dataPoints:v;if(0===m&&v>m&&(m=v),s){var y=m>1?m-1:m;o=d.globals.gridWidth/y,b=b+r(0,o)/2+d.config.xaxis.labels.offsetX}else o=d.globals.gridWidth/m,b=b+r(0,o)+d.config.xaxis.labels.offsetX;for(var w=function(s){var l=b-r(s,o)/2+d.config.xaxis.labels.offsetX;0===s&&1===v&&o/2===b&&1===m&&(l=d.globals.gridWidth/2);var y=n.axesUtils.getLabel(a,d.globals.timescaleLabels,l,s,h,g,t),w=28;d.globals.rotateXLabels&&t&&(w=22),d.config.xaxis.title.text&&"top"===d.config.xaxis.position&&(w+=parseFloat(d.config.xaxis.title.style.fontSize)+2),t||(w=w+parseFloat(g)+(d.globals.xAxisLabelsHeight-d.globals.xAxisGroupLabelsHeight)+(d.globals.rotateXLabels?10:0)),y=void 0!==d.config.xaxis.tickAmount&&"dataPoints"!==d.config.xaxis.tickAmount&&"datetime"!==d.config.xaxis.type?n.axesUtils.checkLabelBasedOnTickamount(s,y,v):n.axesUtils.checkForOverflowingLabels(s,y,v,h,c);if(d.config.xaxis.labels.show){var k=e.drawText({x:y.x,y:n.offY+d.config.xaxis.labels.offsetY+w-("top"===d.config.xaxis.position?d.globals.xAxisHeight+d.config.xaxis.axisTicks.height-2:0),text:y.text,textAnchor:"middle",fontWeight:y.isBold?600:p,fontSize:g,fontFamily:u,foreColor:Array.isArray(f)?t&&d.config.xaxis.convertedCatToNumeric?f[d.globals.minX+s-1]:f[s]:f,isPlainText:!1,cssClass:(t?"apexcharts-xaxis-label ":"apexcharts-xaxis-group-label ")+x});if(i.add(k),k.on("click",(function(t){if("function"==typeof d.config.chart.events.xAxisLabelClick){var e=Object.assign({},d,{labelIndex:s});d.config.chart.events.xAxisLabelClick(t,n.ctx,e)}})),t){var A=document.createElementNS(d.globals.SVGNS,"title");A.textContent=Array.isArray(y.text)?y.text.join(" "):y.text,k.node.appendChild(A),""!==y.text&&(h.push(y.text),c.push(y))}}sa.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(e=e+r+a.config.xaxis.axisTicks.height,"top"===a.config.xaxis.position&&(e=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var o=new m(this.ctx).drawLine(t+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,e+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(o),o.node.classList.add("apexcharts-xaxis-tick")}}}},{key:"getXAxisTicksPositions",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s0){var h=s[s.length-1].getBBox(),c=s[0].getBBox();h.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d0&&(this.xaxisLabels=i.globals.timescaleLabels.slice())}return r(t,[{key:"drawGridArea",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new m(this.ctx);null===t&&(t=i.group({class:"apexcharts-grid"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,"transparent"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,"transparent");return t.add(s),t.add(a),t}},{key:"drawGrid",value:function(){var t=null;return this.w.globals.axisCharts&&(t=this.renderGrid(),this.drawGridArea(t.el)),t}},{key:"createGridMask",value:function(){var t=this.w,e=t.globals,i=new m(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach((function(t){s=Math.max(s,t)})),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMask.setAttribute("id","gridRectMask".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMarkerMask.setAttribute("id","gridRectMarkerMask".concat(e.cuid)),e.dom.elForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elForecastMask.setAttribute("id","forecastMask".concat(e.cuid)),e.dom.elNonForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elNonForecastMask.setAttribute("id","nonForecastMask".concat(e.cuid));var r=t.config.chart.type,o=0,n=0;("bar"===r||"rangeBar"===r||"candlestick"===r||"boxPlot"===r||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(o=t.config.grid.padding.left,n=t.config.grid.padding.right,e.barPadForNumericAxis>o&&(o=e.barPadForNumericAxis,n=e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(-a/2-o-2,-a/2,e.gridWidth+a+n+o+4,e.gridHeight+a,0,"#fff");var l=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(2*-l,2*-l,e.gridWidth+4*l,e.gridHeight+4*l,0,"#fff"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var h=e.dom.baseEl.querySelector("defs");h.appendChild(e.dom.elGridRectMask),h.appendChild(e.dom.elForecastMask),h.appendChild(e.dom.elNonForecastMask),h.appendChild(e.dom.elGridRectMarkerMask)}},{key:"_drawGridLines",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w;if(!(0===e&&l.globals.skipFirstTimelinelabel||e===o-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||"radar"===l.config.chart.type)){l.config.grid.xaxis.lines.show&&this._drawGridLine({i:e,x1:i,y1:a,x2:s,y2:r,xCount:o,parent:n});var h=0;if(l.globals.hasGroups&&"between"===l.config.xaxis.tickPlacement){var c=l.globals.groups;if(c){for(var d=0,g=0;d2));s++);return!t.globals.isBarHorizontal||this.isRangeBar?(i=this.xaxisLabels.length,this.isRangeBar&&(a=t.globals.labels.length,t.config.xaxis.tickAmount&&t.config.xaxis.labels.formatter&&(i=t.config.xaxis.tickAmount)),this._drawXYLines({xCount:i,tickAmount:a})):(i=a,a=t.globals.xTickAmount,this._drawInvertedXYLines({xCount:i,tickAmount:a})),this.drawGridBands(i,a),{el:this.elg,elGridBorders:this.elGridBorders,xAxisTickWidth:t.globals.gridWidth/i}}},{key:"drawGridBands",value:function(t,e){var i=this.w;if(void 0!==i.config.grid.row.colors&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/e,r=i.globals.gridWidth,o=0,n=0;o=i.config.grid.row.colors.length&&(n=0),this._drawGridBandRect({c:n,x1:0,y1:a,x2:r,y2:s,type:"row"}),a+=i.globals.gridHeight/e;if(void 0!==i.config.grid.column.colors&&i.config.grid.column.colors.length>0)for(var l=i.globals.isBarHorizontal||"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric?t:t-1,h=i.globals.padHorizontal,c=i.globals.padHorizontal+i.globals.gridWidth/l,d=i.globals.gridHeight,g=0,u=0;g=i.config.grid.column.colors.length&&(u=0),this._drawGridBandRect({c:u,x1:h,y1:0,x2:c,y2:d,type:"column"}),h+=i.globals.gridWidth/l}}]),t}(),_=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"niceScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,r=this.w,o=Math.abs(e-t);if("dataPoints"===(i=this._adjustTicksForSmallRange(i,a,o))&&(i=r.globals.dataPoints-1),t===Number.MIN_VALUE&&0===e||!x.isNumber(t)&&!x.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE){t=0,e=i;var n=this.linearScale(t,e,i);return n}t>e?(console.warn("axis.min cannot be greater than axis.max"),e=t+.1):t===e&&(t=0===t?0:t-.5,e=0===e?2:e+.5);var l=[];o<1&&s&&("candlestick"===r.config.chart.type||"candlestick"===r.config.series[a].type||"boxPlot"===r.config.chart.type||"boxPlot"===r.config.series[a].type||r.globals.isRangeData)&&(e*=1.01);var h=i+1;h<2?h=2:h>2&&(h-=2);var c=o/h,d=Math.floor(x.log10(c)),g=Math.pow(10,d),u=Math.round(c/g);u<1&&(u=1);var f=u*g,p=f*Math.floor(t/f),b=f*Math.ceil(e/f),v=p;if(s&&o>2){for(;l.push(v),!((v+=f)>b););return{result:l,niceMin:l[0],niceMax:l[l.length-1]}}var m=t;(l=[]).push(m);for(var y=Math.abs(e-t)/i,w=0;w<=i;w++)m+=y,l.push(m);return l[l.length-2]>=e&&l.pop(),{result:l,niceMin:l[0],niceMax:l[l.length-1]}}},{key:"linearScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3?arguments[3]:void 0,s=Math.abs(e-t);"dataPoints"===(i=this._adjustTicksForSmallRange(i,a,s))&&(i=this.w.globals.dataPoints-1);var r=s/i;i===Number.MAX_VALUE&&(i=10,r=1);for(var o=[],n=t;i>=0;)o.push(n),n+=r,i-=1;return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:"logarithmicScaleNice",value:function(t,e,i){e<=0&&(e=Math.max(t,i)),t<=0&&(t=Math.min(e,i));for(var a=[],s=Math.ceil(Math.log(e)/Math.log(i)+1),r=Math.floor(Math.log(t)/Math.log(i));r5)a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.logarithmicScale(e,i,r.logBase),a.yAxisScale[t]=r.forceNiceScale?this.logarithmicScaleNice(e,i,r.logBase):this.logarithmicScale(e,i,r.logBase);else if(i!==-Number.MAX_VALUE&&x.isNumber(i))if(a.allSeriesCollapsed=!1,void 0===r.min&&void 0===r.max||r.forceNiceScale){var n=void 0===s.yaxis[t].max&&void 0===s.yaxis[t].min||s.yaxis[t].forceNiceScale;a.yAxisScale[t]=this.niceScale(e,i,r.tickAmount?r.tickAmount:o<5&&o>1?o+1:5,t,n)}else a.yAxisScale[t]=this.linearScale(e,i,r.tickAmount,t);else a.yAxisScale[t]=this.linearScale(0,5,5)}},{key:"setXScale",value:function(t,e){var i=this.w,a=i.globals,s=i.config.xaxis,r=Math.abs(e-t);return e!==-Number.MAX_VALUE&&x.isNumber(e)?a.xAxisScale=this.linearScale(t,e,s.tickAmount?s.tickAmount:r<5&&r>1?r+1:5,0):a.xAxisScale=this.linearScale(0,5,5),a.xAxisScale}},{key:"setMultipleYScales",value:function(){var t=this,e=this.w.globals,i=this.w.config,a=e.minYArr.concat([]),s=e.maxYArr.concat([]),r=[];i.yaxis.forEach((function(e,o){var n=o;i.series.forEach((function(t,i){t.name===e.seriesName&&(n=i,o!==i?r.push({index:i,similarIndex:o,alreadyExists:!0}):r.push({index:i}))}));var l=a[n],h=s[n];t.setYScaleForIndex(o,l,h)})),this.sameScaleInMultipleAxes(a,s,r)}},{key:"sameScaleInMultipleAxes",value:function(t,e,i){var a=this,s=this.w.config,r=this.w.globals,o=[];i.forEach((function(t){t.alreadyExists&&(void 0===o[t.index]&&(o[t.index]=[]),o[t.index].push(t.index),o[t.index].push(t.similarIndex))})),r.yAxisSameScaleIndices=o,o.forEach((function(t,e){o.forEach((function(i,a){var s,r;e!==a&&(s=t,r=i,s.filter((function(t){return-1!==r.indexOf(t)}))).length>0&&(o[e]=o[e].concat(o[a]))}))}));var n=o.map((function(t){return t.filter((function(e,i){return t.indexOf(e)===i}))})).map((function(t){return t.sort()}));o=o.filter((function(t){return!!t}));var l=n.slice(),h=l.map((function(t){return JSON.stringify(t)}));l=l.filter((function(t,e){return h.indexOf(JSON.stringify(t))===e}));var c=[],d=[];t.forEach((function(t,i){l.forEach((function(a,s){a.indexOf(i)>-1&&(void 0===c[s]&&(c[s]=[],d[s]=[]),c[s].push({key:i,value:t}),d[s].push({key:i,value:e[i]}))}))}));var g=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),u=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);c.forEach((function(t,e){t.forEach((function(t,i){g[e]=Math.min(t.value,g[e])}))})),d.forEach((function(t,e){t.forEach((function(t,i){u[e]=Math.max(t.value,u[e])}))})),t.forEach((function(t,e){d.forEach((function(t,i){var o=g[i],n=u[i];s.chart.stacked&&(n=0,t.forEach((function(t,e){t.value!==-Number.MAX_VALUE&&(n+=t.value),o!==Number.MIN_VALUE&&(o+=c[i][e].value)}))),t.forEach((function(i,l){t[l].key===e&&(void 0!==s.yaxis[e].min&&(o="function"==typeof s.yaxis[e].min?s.yaxis[e].min(r.minY):s.yaxis[e].min),void 0!==s.yaxis[e].max&&(n="function"==typeof s.yaxis[e].max?s.yaxis[e].max(r.maxY):s.yaxis[e].max),a.setYScaleForIndex(e,o,n))}))}))}))}},{key:"autoScaleY",value:function(t,e,i){t||(t=this);var a=t.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn("autoScaleYaxis is not supported in a multi-yaxis chart."),e;var s=a.globals.seriesX[0],r=a.config.chart.stacked;return e.forEach((function(t,o){for(var n=0,l=0;l=i.xaxis.min){n=l;break}var h,c,d=a.globals.minYArr[o],g=a.globals.maxYArr[o],u=a.globals.stackedSeriesTotals;a.globals.series.forEach((function(o,l){var f=o[n];r?(f=u[n],h=c=f,u.forEach((function(t,e){s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min&&(t>c&&null!==t&&(c=t),o[e]=i.xaxis.min){var r=t,o=t;a.globals.series.forEach((function(i,a){null!==t&&(r=Math.min(i[e],r),o=Math.max(i[e],o))})),o>c&&null!==o&&(c=o),rd&&(h=d),e.length>1?(e[l].min=void 0===t.min?h:t.min,e[l].max=void 0===t.max?c:t.max):(e[0].min=void 0===t.min?h:t.min,e[0].max=void 0===t.max?c:t.max)}))})),e}}]),t}(),U=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.scales=new _(e)}return r(t,[{key:"init",value:function(){this.setYRange(),this.setXRange(),this.setZRange()}},{key:"getMinYMaxY",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,r=this.w.globals,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;null===a&&(a=t+1);var l=r.series,h=l,c=l;"candlestick"===s.chart.type?(h=r.seriesCandleL,c=r.seriesCandleH):"boxPlot"===s.chart.type?(h=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(h=r.seriesRangeStart,c=r.seriesRangeEnd);for(var d=t;dh[d][g]&&h[d][g]<0&&(n=h[d][g])):r.hasNullValues=!0}}return"rangeBar"===s.chart.type&&r.seriesRangeStart.length&&r.isBarHorizontal&&(n=e),"bar"===s.chart.type&&(n<0&&o<0&&(o=0),n===Number.MIN_VALUE&&(n=0)),{minY:n,maxY:o,lowestY:e,highestY:i}}},{key:"setYRange",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(t.isMultipleYAxis)for(var a=0;a=0&&i<=10||void 0!==e.yaxis[0].min||void 0!==e.yaxis[0].max)&&(o=0),t.minY=i-5*o/100,i>0&&t.minY<0&&(t.minY=0),t.maxY=t.maxY+5*o/100}if(e.yaxis.forEach((function(e,i){void 0!==e.max&&("number"==typeof e.max?t.maxYArr[i]=e.max:"function"==typeof e.max&&(t.maxYArr[i]=e.max(t.isMultipleYAxis?t.maxYArr[i]:t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&("number"==typeof e.min?t.minYArr[i]=e.min:"function"==typeof e.min&&(t.minYArr[i]=e.min(t.isMultipleYAxis?t.minYArr[i]===Number.MIN_VALUE?0:t.minYArr[i]:t.minY)),t.minY=t.minYArr[i])})),t.isBarHorizontal){["min","max"].forEach((function(i){void 0!==e.xaxis[i]&&"number"==typeof e.xaxis[i]&&("min"===i?t.minY=e.xaxis[i]:t.maxY=e.xaxis[i])}))}return t.isMultipleYAxis?(this.scales.setMultipleYScales(),t.minY=i,t.yAxisScale.forEach((function(e,i){t.minYArr[i]=e.niceMin,t.maxYArr[i]=e.niceMax}))):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.yAxisScale[0].niceMin,t.maxYArr[0]=t.yAxisScale[0].niceMax),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr,yAxisScale:t.yAxisScale}}},{key:"setXRange",value:function(){var t=this.w.globals,e=this.w.config,i="numeric"===e.xaxis.type||"datetime"===e.xaxis.type||"category"===e.xaxis.type&&!t.noLabelsProvided||t.noLabelsProvided||t.isXNumeric;if(t.isXNumeric&&function(){for(var e=0;et.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1)):"dataPoints"===e.xaxis.tickAmount?(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric&&(a=t.maxX-t.minX-1)):a=e.xaxis.tickAmount,t.xTickAmount=a,void 0!==e.xaxis.max&&"number"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&"number"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var s=[],r=t.minX-1;r0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:"setZRange",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1!==t.dataPoints&&t.minXDiff!==Number.MAX_VALUE||(t.minXDiff=.5)}))}},{key:"_setStackedMinMax",value:function(){var t=this.w.globals,e=[],i=[];if(t.series.length)for(var a=0;a0?s=s+parseFloat(t.series[o][a])+1e-4:r+=parseFloat(t.series[o][a])),o===t.series.length-1&&(e.push(s),i.push(r));for(var n=0;n=0;b--)x(b);if(void 0!==i.config.yaxis[t].title.text){var v=a.group({class:"apexcharts-yaxis-title"}),y=0;i.config.yaxis[t].opposite&&(y=i.globals.translateYAxisX[t]);var w=a.drawText({x:y,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[t].title.offsetY,text:i.config.yaxis[t].title.text,textAnchor:"end",foreColor:i.config.yaxis[t].title.style.color,fontSize:i.config.yaxis[t].title.style.fontSize,fontWeight:i.config.yaxis[t].title.style.fontWeight,fontFamily:i.config.yaxis[t].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text "+i.config.yaxis[t].title.style.cssClass});v.add(w),l.add(v)}var k=i.config.yaxis[t].axisBorder,A=31+k.offsetX;if(i.config.yaxis[t].opposite&&(A=-31-k.offsetX),k.show){var S=a.drawLine(A,i.globals.translateY+k.offsetY-2,A,i.globals.gridHeight+i.globals.translateY+k.offsetY+2,k.color,0,k.width);l.add(S)}return i.config.yaxis[t].axisTicks.show&&this.axesUtils.drawYAxisTicks(A,c,k,i.config.yaxis[t].axisTicks,t,d,l),l}},{key:"drawYaxisInversed",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:"apexcharts-xaxis apexcharts-yaxis-inversed"}),s=i.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(e.globals.translateXAxisX,", ").concat(e.globals.translateXAxisY,")")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,o=e.globals.gridWidth/r+.1,n=o+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=e.globals.yAxisScale[t].result.slice(),c=e.globals.timescaleLabels;c.length>0&&(this.xaxisLabels=c.slice(),r=(h=c.slice()).length),h=this.axesUtils.checkForReversedLabels(t,h);var d=c.length;if(e.config.xaxis.labels.show)for(var g=d?0:r;d?g=0;d?g++:g--){var u=h[g];u=l(u,g,e);var f=e.globals.gridWidth+e.globals.padHorizontal-(n-o+e.config.xaxis.labels.offsetX);if(c.length){var p=this.axesUtils.getLabel(h,c,f,g,this.drawnLabels,this.xaxisFontSize);f=p.x,u=p.text,this.drawnLabels.push(p.text),0===g&&e.globals.skipFirstTimelinelabel&&(u=""),g===h.length-1&&e.globals.skipLastTimelinelabel&&(u="")}var x=i.drawText({x:f,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-("top"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:u,textAnchor:"middle",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:"apexcharts-xaxis-label "+e.config.xaxis.labels.style.cssClass});s.add(x),x.tspan(u);var b=document.createElementNS(e.globals.SVGNS,"title");b.textContent=u,x.node.appendChild(b),n+=o}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:"inversedYAxisBorder",value:function(t){var e=this.w,i=new m(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;"bar"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);this.elgrid&&this.elgrid.elGridBorders?this.elgrid.elGridBorders.add(r):t.add(r)}}},{key:"inversedYAxisTitleText",value:function(t){var e=this.w,i=new m(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:"apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:"middle",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:"apexcharts-xaxis-title-text "+e.config.xaxis.title.style.cssClass});a.add(s),t.add(a)}}},{key:"yAxisTitleRotate",value:function(t,e){var i=this.w,a=new m(this.ctx),s={width:0,height:0},r={width:0,height:0},o=i.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-texts-g"));null!==o&&(s=o.getBoundingClientRect());var n=i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-title text"));if(null!==n&&(r=n.getBoundingClientRect()),null!==n){var l=this.xPaddingForYAxisTitle(t,s,r,e);n.setAttribute("x",l.xPos-(e?10:0))}if(null!==n){var h=a.rotateAroundCenter(n);n.setAttribute("transform","rotate(".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate," ").concat(h.x," ").concat(h.y,")"))}}},{key:"xPaddingForYAxisTitle",value:function(t,e,i,a){var s=this.w,r=0,o=0,n=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:o,padd:0}:(a?(o=e.width+s.config.yaxis[t].title.offsetX+i.width/2+n/2,0===(r+=1)&&(o-=n/2)):(o=-1*e.width+s.config.yaxis[t].title.offsetX+n/2+i.width/2,s.globals.isBarHorizontal&&(n=25,o=-1*e.width-s.config.yaxis[t].title.offsetX-n)),{xPos:o,padd:n})}},{key:"setYAxisXPosition",value:function(t,e){var i=this.w,a=0,s=0,r=18,o=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map((function(n,l){var h=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!n.show||n.floating||0===t[l].width,c=t[l].width+e[l].width;n.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-n.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+o,h||(o=o+c+20),i.globals.translateYAxisX[l]=s-n.labels.offsetX+20):(a=i.globals.translateX-r,h||(r=r+c+20),i.globals.translateYAxisX[l]=a+n.labels.offsetX)}))}},{key:"setYAxisTextAlignments",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis");(e=x.listToArray(e)).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&!a.floating&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-texts-g")),r=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-label"));r=x.listToArray(r);var o=s.getBoundingClientRect();"left"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","start")})),a.opposite||s.setAttribute("transform","translate(-".concat(o.width,", 0)"))):"center"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","middle")})),s.setAttribute("transform","translate(".concat(o.width/2*(a.opposite?1:-1),", 0)"))):"right"===a.labels.align&&(r.forEach((function(t,e){t.setAttribute("text-anchor","end")})),a.opposite&&s.setAttribute("transform","translate(".concat(o.width,", 0)")))}}))}}]),t}(),Z=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.documentEvent=x.bind(this.documentEvent,this)}return r(t,[{key:"addEventListener",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:"removeEventListener",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:"fireEvent",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,r=0;r0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");var a=x.extend(C,i);this.w.globals.locale=a.options}}]),t}(),J=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawAxis",value:function(t,e){var i,a,s=this,r=this.w.globals,o=this.w.config,n=new V(this.ctx,e),l=new q(this.ctx,e);r.axisCharts&&"radar"!==t&&(r.isBarHorizontal?(a=l.drawYaxisInversed(0),i=n.drawXaxisInversed(0),r.dom.elGraphical.add(i),r.dom.elGraphical.add(a)):(i=n.drawXaxis(),r.dom.elGraphical.add(i),o.yaxis.map((function(t,e){if(-1===r.ignoreYAxisIndexes.indexOf(e)&&(a=l.drawYaxis(e),r.dom.Paper.add(a),"back"===s.w.config.grid.position)){var i=r.dom.Paper.children()[1];i.remove(),r.dom.Paper.add(i)}}))))}}]),t}(),Q=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawXCrosshairs",value:function(){var t=this.w,e=new m(this.ctx),i=new v(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,o=a.colorFrom,n=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,g=s.left,u=s.top,f=s.blur,p=s.color,b=s.opacity,y=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){"gradient"===r&&(y=e.drawGradient("vertical",o,n,l,h,null,c,null));var w=e.drawRect();1===t.config.xaxis.crosshairs.width&&(w=e.drawLine());var k=t.globals.gridHeight;(!x.isNumber(k)||k<0)&&(k=0);var A=t.config.xaxis.crosshairs.width;(!x.isNumber(A)||A<0)&&(A=0),w.attr({class:"apexcharts-xcrosshairs",x:0,y:0,y2:k,width:A,height:k,fill:y,filter:"none","fill-opacity":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,"stroke-width":t.config.xaxis.crosshairs.stroke.width,"stroke-dasharray":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(w=i.dropShadow(w,{left:g,top:u,blur:f,color:p,opacity:b})),t.globals.dom.elGraphical.add(w)}}},{key:"drawYCrosshairs",value:function(){var t=this.w,e=new m(this.ctx),i=t.config.yaxis[0].crosshairs,a=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){var s=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:"apexcharts-ycrosshairs"}),t.globals.dom.elGraphical.add(s)}var r=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:"apexcharts-ycrosshairs-hidden"}),t.globals.dom.elGraphical.add(r)}}]),t}(),K=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"checkResponsiveConfig",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort((function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var r=new E({}),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,o=window.innerWidth>0?window.innerWidth:screen.width;if(o>a){var n=y.extendArrayProps(r,i.globals.initialConfig,i);t=x.extend(n,t),t=x.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var l=0;l0&&"function"==typeof e.config.colors[0]&&(e.globals.colors=e.config.series.map((function(i,a){var s=e.config.colors[a];return s||(s=e.config.colors[0]),"function"==typeof s?(t.isColorFn=!0,s({value:e.globals.axisCharts?e.globals.series[a][0]?e.globals.series[a][0]:0:e.globals.series[a],seriesIndex:a,dataPointIndex:a,w:e})):s})))),e.globals.seriesColors.map((function(t,i){t&&(e.globals.colors[i]=t)})),e.config.theme.monochrome.enabled){var a=[],s=e.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(s=e.globals.series[0].length*e.globals.series.length);for(var r=e.config.theme.monochrome.color,o=1/(s/e.config.theme.monochrome.shadeIntensity),n=e.config.theme.monochrome.shadeTo,l=0,h=0;h2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||"heatmap"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.lengtht.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:"getLargestStringFromMultiArr",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,u(a));i=e[a.indexOf(s)]}return i}}]),t}(),at=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:"getxAxisLabelsCoords",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=e.globals.categoryLabels),e.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends="left"!==e.config.legend.position&&"right"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,r=x.getLargestStringFromArr(i),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);e.globals.isBarHorizontal&&(o=r=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var n=new M(this.dCtx.ctx),l=r;r=n.xLabelFormat(s,r,l,{i:void 0,dateFormatter:new T(this.dCtx.ctx).formatDate,w:e}),o=n.xLabelFormat(s,o,l,{i:void 0,dateFormatter:new T(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===r||""===String(r).trim())&&(o=r="1");var h=new m(this.dCtx.ctx),c=h.getTextRects(r,e.config.xaxis.labels.style.fontSize),d=c;if(r!==o&&(d=h.getTextRects(o,e.config.xaxis.labels.style.fontSize)),(t={width:c.width>=d.width?c.width:d.width,height:c.height>=d.height?c.height:d.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,"rotate(".concat(e.config.xaxis.labels.rotate," 0 0)"),!1)};c=g(r),r!==o&&(d=g(o)),t.height=(c.height>d.height?c.height:d.height)/1.5,t.width=c.width>d.width?c.width:d.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:"getxAxisGroupLabelsCoords",value:function(){var t,e=this.w;if(!e.globals.hasGroups)return{width:0,height:0};var i,a=(null===(t=e.config.xaxis.group.style)||void 0===t?void 0:t.fontSize)||e.config.xaxis.labels.style.fontSize,s=e.globals.groups.map((function(t){return t.title})),r=x.getLargestStringFromArr(s),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),n=new m(this.dCtx.ctx),l=n.getTextRects(r,a),h=l;return r!==o&&(h=n.getTextRects(o,a)),i={width:l.width>=h.width?l.width:h.width,height:l.height>=h.height?l.height:h.height},e.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:"getxAxisTitleCoords",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new m(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:"getxAxisTimeScaleLabelsCoords",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"),0):t.length>e.length?t:e}),0);return 1.05*(t=new m(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:"additionalPaddingXLabels",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,o=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var n=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,l=function(t,n){(function(t){return-1!==a.collapsedSeriesIndices.indexOf(t)})(n)||function(t){if(e.dCtx.timescaleLabels&&e.dCtx.timescaleLabels.length){var n=e.dCtx.timescaleLabels[0],l=e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length-1].position+o/1.75-e.dCtx.yAxisWidthRight,h=n.position-o/1.75+e.dCtx.yAxisWidthLeft,c="right"===i.config.legend.position&&e.dCtx.lgRect.width>0?e.dCtx.lgRect.width:0;l>a.svgWidth-a.translateX-c&&(a.skipLastTimelinelabel=!0),h<-(t.show&&!t.floating||"bar"!==s.chart.type&&"candlestick"!==s.chart.type&&"rangeBar"!==s.chart.type&&"boxPlot"!==s.chart.type?10:o/1.75)&&(a.skipFirstTimelinelabel=!0)}else"datetime"===r?e.dCtx.gridPad.rightString(n.niceMax).length?c:n.niceMax,g=h(d,{seriesIndex:o,dataPointIndex:-1,w:e}),u=g;if(void 0!==g&&0!==g.length||(g=d),e.globals.isBarHorizontal){a=0;var f=e.globals.labels.slice();g=h(g=x.getLargestStringFromArr(f),{seriesIndex:o,dataPointIndex:-1,w:e}),u=t.dCtx.dimHelpers.getLargestStringFromMultiArr(g,f)}var p=new m(t.dCtx.ctx),b="rotate(".concat(r.labels.rotate," 0 0)"),v=p.getTextRects(g,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1),y=v;g!==u&&(y=p.getTextRects(u,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1)),i.push({width:(l>y.width||l>v.width?l:y.width>v.width?y.width:v.width)+a,height:y.height>v.height?y.height:v.height})}else i.push({width:0,height:0})})),i}},{key:"getyAxisTitleCoords",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new m(t.dCtx.ctx),r="rotate(".concat(e.title.rotate," 0 0)"),o=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:o.width,height:o.height})}else i.push({width:0,height:0})})),i}},{key:"getTotalYAxisWidth",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new B(this.dCtx.ctx),o=function(o,n){var l=t.config.yaxis[n].floating,h=0;o.width>0&&!l?(h=o.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(n)&&(h=h-o.width-s)):h=l||r.isYAxisHidden(n)?0:5,t.config.yaxis[n].opposite?a+=h:i+=h,e+=h};return t.globals.yLabelsCoords.map((function(t,e){o(t,e)})),t.globals.yTitleCoords.map((function(t,e){o(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}]),t}(),rt=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:"gridPadForColumnsInNumericAxis",value:function(t){var e=this.w;if(e.globals.noData||e.globals.allSeriesCollapsed)return 0;var i=function(t){return"bar"===t||"rangeBar"===t||"candlestick"===t||"boxPlot"===t},a=e.config.chart.type,s=0,r=i(a)?e.config.series.length:1;if(e.globals.comboBarCount>0&&(r=e.globals.comboBarCount),e.globals.collapsedSeries.forEach((function(t){i(t.type)&&(r-=1)})),e.config.chart.stacked&&(r=1),(i(a)||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&r>0){var o,n,l=Math.abs(e.globals.initialMaxX-e.globals.initialMinX);l<=3&&(l=e.globals.dataPoints),o=l/t,e.globals.minXDiff&&e.globals.minXDiff/o>0&&(n=e.globals.minXDiff/o),n>t/2&&(n/=2),(s=n/r*parseInt(e.config.plotOptions.bar.columnWidth,10)/100)<1&&(s=1),s=s/(r>1?1:1.5)+5,e.globals.barPadForNumericAxis=s}return s}},{key:"gridPadFortitleSubtitle",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!e.globals.axisCharts?0:10;["title","subtitle"].forEach((function(i){void 0!==e.config[i].text?a+=e.config[i].margin:a+=t.dCtx.isSparkline||!e.globals.axisCharts?0:5})),!e.config.legend.show||"bottom"!==e.config.legend.position||e.config.legend.floating||e.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords("title"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:"setGridXPosForDualYAxis",value:function(t,e){var i=this.w,a=new B(this.dCtx.ctx);i.config.yaxis.map((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(e[r].width+t[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}]),t}(),ot=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new it(this),this.dimYAxis=new st(this),this.dimXAxis=new at(this),this.dimGrid=new rt(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return r(t,[{key:"plotCoords",value:function(){var t=this,e=this.w,i=e.globals;this.lgRect=this.dimHelpers.getLegendsRect(),this.isSparkline&&(e.config.markers.discrete.length>0||e.config.markers.size>0)&&Object.entries(this.gridPad).forEach((function(e){var i=g(e,2),a=i[0],s=i[1];t.gridPad[a]=Math.max(s,t.w.globals.markers.largestSize/1.5)})),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var a=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*a,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(a>0?a+4:0),i.translateY=i.translateY+this.gridPad.top}},{key:"setDimensionsForAxisCharts",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),o=this.dimXAxis.getxAxisGroupLabelsCoords(),n=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,n,o),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var l=this.yAxisWidth,h=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-n.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var c=10;("radar"===e.config.chart.type||this.isSparkline)&&(l=0,h=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||"treemap"===e.config.chart.type)&&(l=0,h=0,c=0),this.isSparkline||this.dimXAxis.additionalPaddingXLabels(r);var d=function(){i.translateX=l,i.gridHeight=i.svgHeight-t.lgRect.height-h-(t.isSparkline||"treemap"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-l};switch("top"===e.config.xaxis.position&&(c=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case"bottom":i.translateY=c,d();break;case"top":i.translateY=this.lgRect.height+c,d();break;case"left":i.translateY=c,i.translateX=this.lgRect.width+l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l;break;case"right":i.translateY=c,i.translateX=l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-5;break;default:throw new Error("Legend position not supported")}this.dimGrid.setGridXPosForDualYAxis(s,a),new q(this.ctx).setYAxisXPosition(a,s)}},{key:"setDimensionsForNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s="pie"===i.chart.type||"polarArea"===i.chart.type||"donut"===i.chart.type?"pie":"radialBar",r=i.plotOptions[s].offsetY,o=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating)return e.gridHeight=e.svgHeight-i.grid.padding.left+i.grid.padding.right,e.gridWidth=e.gridHeight,e.translateY=r,void(e.translateX=o+(e.svgWidth-e.gridWidth)/2);switch(i.legend.position){case"bottom":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"top":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"left":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+this.lgRect.width+a;break;case"right":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+10;break;default:throw new Error("Legend position not supported")}}},{key:"conditionalChecksForAxisCoords",value:function(t,e,i){var a=this.w,s=a.globals.hasGroups?2:1,r=i.height+t.height+e.height,o=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,n=a.globals.rotateXLabels?22:10,l=a.globals.rotateXLabels&&"bottom"===a.config.legend.position?10:0;this.xAxisHeight=r*o+s*n+l,this.xAxisWidth=t.width,this.xAxisHeight-e.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeightc&&(this.yAxisWidth=c)}}]),t}(),nt=function(){function t(e){a(this,t),this.w=e.w,this.lgCtx=e}return r(t,[{key:"getLegendBBox",value:function(){var t=this.w.globals.dom.baseEl.querySelector(".apexcharts-legend").getBoundingClientRect(),e=t.width;return{clwh:t.height,clww:e}}},{key:"toggleDataSeries",value:function(t,e){var i=this,a=this.w;if(a.globals.axisCharts||"radialBar"===a.config.chart.type){a.globals.resized=!0;var s=null,r=null;if(a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(t,"']")),r=parseInt(s.getAttribute("data:realIndex"),10)):(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(t+1,"']")),r=parseInt(s.getAttribute("rel"),10)-1),e)[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach((function(t){i.riseCollapsedSeries(t.cs,t.csi,r)}));else this.hideSeries({seriesEl:s,realIndex:r})}else{var o=a.globals.dom.Paper.select(" .apexcharts-series[rel='".concat(t+1,"'] path")),n=a.config.chart.type;if("pie"===n||"polarArea"===n||"donut"===n){var l=a.config.plotOptions.pie.donut.labels;new m(this.lgCtx.ctx).pathMouseDown(o.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(o.members[0].node,l)}o.fire("click")}}},{key:"hideSeries",value:function(t){var e=t.seriesEl,i=t.realIndex,a=this.w,s=x.clone(a.config.series);if(a.globals.axisCharts){var r=!1;if(a.config.yaxis[i]&&a.config.yaxis[i].show&&a.config.yaxis[i].showAlways&&(r=!0,a.globals.ancillaryCollapsedSeriesIndices.indexOf(i)<0&&(a.globals.ancillaryCollapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.ancillaryCollapsedSeriesIndices.push(i))),!r){a.globals.collapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.collapsedSeriesIndices.push(i);var o=a.globals.risingSeries.indexOf(i);a.globals.risingSeries.splice(o,1)}}else a.globals.collapsedSeries.push({index:i,data:s[i]}),a.globals.collapsedSeriesIndices.push(i);for(var n=e.childNodes,l=0;l0){for(var r=0;r-1&&(t[a].data=[])})):t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a]=0)})),t}}]),t}(),lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.onLegendClick=this.onLegendClick.bind(this),this.onLegendHovered=this.onLegendHovered.bind(this),this.isBarsDistributed="bar"===this.w.config.chart.type&&this.w.config.plotOptions.bar.distributed&&1===this.w.config.series.length,this.legendHelpers=new nt(this)}return r(t,[{key:"init",value:function(){var t=this.w,e=t.globals,i=t.config;if((i.legend.showForSingleSeries&&1===e.series.length||this.isBarsDistributed||e.series.length>1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),"bottom"===i.legend.position||"top"===i.legend.position?this.legendAlignHorizontal():"right"!==i.legend.position&&"left"!==i.legend.position||this.legendAlignVertical()}}},{key:"drawLegends",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.globals.colors.slice();if("heatmap"===e.config.chart.type){var r=e.config.plotOptions.heatmap.colorScale.ranges;a=r.map((function(t){return t.name?t.name:t.from+" - "+t.to})),s=r.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());e.config.legend.customLegendItems.length&&(a=e.config.legend.customLegendItems);for(var o=e.globals.legendFormatter,n=e.config.legend.inverseOrder,l=n?a.length-1:0;n?l>=0:l<=a.length-1;n?l--:l++){var h=o(a[l],{seriesIndex:l,w:e}),c=!1,d=!1;if(e.globals.collapsedSeries.length>0)for(var g=0;g0)for(var u=0;u0?l-10:0)+(h>0?h-10:0)}a.style.position="absolute",r=r+t+i.config.legend.offsetX,o=o+e+i.config.legend.offsetY,a.style.left=r+"px",a.style.top=o+"px","bottom"===i.config.legend.position?(a.style.top="auto",a.style.bottom=5-i.config.legend.offsetY+"px"):"right"===i.config.legend.position&&(a.style.left="auto",a.style.right=25+i.config.legend.offsetX+"px");["width","height"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+"px")}))}},{key:"legendAlignHorizontal",value:function(){var t=this.w;t.globals.dom.elLegendWrap.style.right=0;var e=this.legendHelpers.getLegendBBox(),i=new ot(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords("title"),s=i.dimHelpers.getTitleSubtitleCoords("subtitle"),r=0;"bottom"===t.config.legend.position?r=-e.clwh/1.8:"top"===t.config.legend.position&&(r=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:"legendAlignVertical",value:function(){var t=this.w,e=this.legendHelpers.getLegendBBox(),i=0;"left"===t.config.legend.position&&(i=20),"right"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:"onLegendHovered",value:function(t){var e=this.w,i=t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker");if("heatmap"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute("rel"),10)-1;this.ctx.events.fireEvent("legendHover",[this.ctx,a,this.w]),new N(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains("apexcharts-inactive-legend")&&i&&new N(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:"onLegendClick",value:function(t){var e=this.w;if(!e.config.legend.customLegendItems.length&&(t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker"))){var i=parseInt(t.target.getAttribute("rel"),10)-1,a="true"===t.target.getAttribute("data:collapsed"),s=this.w.config.chart.events.legendClick;"function"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent("legendClick",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;"function"==typeof r&&t.target.classList.contains("apexcharts-legend-marker")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent("legendMarkerClick",[this.ctx,i,this.w])),"treemap"!==e.config.chart.type&&"heatmap"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),t}(),ht=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.ev=this.w.config.chart.events,this.selectedClass="apexcharts-selected",this.localeValues=this.w.globals.locale.toolbar,this.minX=i.globals.minX,this.maxX=i.globals.maxX}return r(t,[{key:"createToolbar",value:function(){var t=this,e=this.w,i=function(){return document.createElement("div")},a=i();if(a.setAttribute("class","apexcharts-toolbar"),a.style.top=e.config.chart.toolbar.offsetY+"px",a.style.right=3-e.config.chart.toolbar.offsetX+"px",e.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s\n \n \n\n'),o("zoomOut",this.elZoomOut,'\n \n \n\n');var n=function(i){t.t[i]&&e.config.chart[i].enabled&&r.push({el:"zoom"===i?t.elZoom:t.elSelection,icon:"string"==typeof t.t[i]?t.t[i]:"zoom"===i?'\n \n \n \n':'\n \n \n',title:t.localeValues["zoom"===i?"selectionZoom":"selection"],class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-".concat(i,"-icon")})};n("zoom"),n("selection"),this.t.pan&&e.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:"string"==typeof this.t.pan?this.t.pan:'\n \n \n \n \n \n \n \n',title:this.localeValues.pan,class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-pan-icon"}),o("reset",this.elZoomReset,'\n \n \n'),this.t.download&&r.push({el:this.elMenuIcon,icon:"string"==typeof this.t.download?this.t.download:'',title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(var l=0;l0&&e.height>0&&this.slDraggableRect.selectize({points:"l, r",pointSize:8,pointType:"rect"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on("resizing",this.selectionDragging.bind(this,"resizing"))}}},{key:"preselectedSelection",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a={x:i,y:0,width:t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(a),this.makeSelectionRectDraggable(),"function"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:"drawSelectionRect",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,o=void 0===r?0:r,n=t.translateY,l=void 0===n?0:n,h=this.w,c=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==h.globals.selection){var g={transform:"translate("+o+", "+l+")"};h.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),c.attr({x:e,y:i,width:a,height:s,fill:h.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":h.config.chart.zoom.zoomedArea.fill.opacity,stroke:h.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":h.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":h.config.chart.zoom.zoomedArea.stroke.opacity}),m.setAttrs(c.node,g)),h.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:h.config.chart.selection.fill.color,"fill-opacity":h.config.chart.selection.fill.opacity,stroke:h.config.chart.selection.stroke.color,"stroke-width":h.config.chart.selection.stroke.width,"stroke-dasharray":h.config.chart.selection.stroke.dashArray,"stroke-opacity":h.config.chart.selection.stroke.opacity}),m.setAttrs(d.node,g))}}},{key:"hideSelectionRect",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:"selectionDrawing",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.gridRect.getBoundingClientRect(),o=s.startX-1,n=s.startY,l=!1,h=!1,c=s.clientX-r.left-o,d=s.clientY-r.top-n,g={};return Math.abs(c+o)>a.globals.gridWidth?c=a.globals.gridWidth-o:s.clientX-r.left<0&&(c=o),o>s.clientX-r.left&&(l=!0,c=Math.abs(c)),n>s.clientY-r.top&&(h=!0,d=Math.abs(d)),g="x"===i?{x:l?o-c:o,y:0,width:c,height:a.globals.gridHeight}:"y"===i?{x:0,y:h?n-d:n,width:a.globals.gridWidth,height:d}:{x:l?o-c:o,y:h?n-d:n,width:c,height:d},s.drawSelectionRect(g),s.selectionDragging("resizing"),g}},{key:"selectionDragging",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,o=0;"resizing"===t&&(o=30);var n=function(t){return parseFloat(r.node.getAttribute(t))},l={x:n("x"),y:n("y"),width:n("width"),height:n("height")};a.globals.selection=l,"function"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t=i.gridRect.getBoundingClientRect(),e=r.node.getBoundingClientRect(),o={xaxis:{min:a.globals.xAxisScale.niceMin+(e.left-t.left)*s.xRatio,max:a.globals.xAxisScale.niceMin+(e.right-t.left)*s.xRatio},yaxis:{min:a.globals.yAxisScale[0].niceMin+(t.bottom-e.bottom)*s.yRatio[0],max:a.globals.yAxisScale[0].niceMax-(e.top-t.top)*s.yRatio[0]}};a.config.chart.events.selection(i.ctx,o),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,o)}),o))}},{key:"selectionDrawn",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.xyRatios,o=this.ctx.toolbar;if(s.startX>s.endX){var n=s.startX;s.startX=s.endX,s.endX=n}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=void 0,c=void 0;a.globals.isRangeBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*r.invertedYRatio,c=a.globals.yAxisScale[0].niceMin+s.endX*r.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*r.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*r.xRatio);var d=[],g=[];if(a.config.yaxis.forEach((function(t,e){d.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var u=x.clone(a.globals.initialConfig.yaxis),f=x.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),c=Math.floor(c),h<1&&(h=1,c=a.globals.dataPoints),c-h<2&&(c=h+1)),"xy"!==i&&"x"!==i||(f={min:h,max:c}),"xy"!==i&&"y"!==i||u.forEach((function(t,e){u[e].min=g[e],u[e].max=d[e]})),a.config.chart.zoom.autoScaleYaxis){var p=new _(s.ctx);u=p.autoScaleY(s.ctx,u,{xaxis:f})}if(o){var b=o.getBeforeZoomRange(f,u);b&&(f=b.xaxis?b.xaxis:f,u=b.yaxis?b.yaxis:u)}var v={xaxis:f};a.config.chart.group||(v.yaxis=u),s.ctx.updateHelpers._updateOptions(v,!1,s.w.config.chart.animations.dynamicAnimation.enabled),"function"==typeof a.config.chart.events.zoomed&&o.zoomCallback(f,u)}else if(a.globals.selectionEnabled){var m,y=null;m={min:h,max:c},"xy"!==i&&"y"!==i||(y=x.clone(a.config.yaxis)).forEach((function(t,e){y[e].min=g[e],y[e].max=d[e]})),a.globals.selection=s.selection,"function"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:m,yaxis:y})}}},{key:"panDragging",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection="left":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection="right":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection="up":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection="down")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var o=i.globals.isRangeBar?i.globals.minY:i.globals.minX,n=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(o,n)}},{key:"delayedPanScrolled",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;"left"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):"right"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:"panScrolled",value:function(t,e){var i=this.w,a=this.xyRatios,s=x.clone(i.globals.initialConfig.yaxis),r=a.xRatio,o=i.globals.minX,n=i.globals.maxX;i.globals.isRangeBar&&(r=a.invertedYRatio,o=i.globals.minY,n=i.globals.maxY),"left"===this.moveDirection?(t=o+i.globals.gridWidth/15*r,e=n+i.globals.gridWidth/15*r):"right"===this.moveDirection&&(t=o-i.globals.gridWidth/15*r,e=n-i.globals.gridWidth/15*r),i.globals.isRangeBar||(ti.globals.initialMaxX)&&(t=o,e=n);var l={min:t,max:e};i.config.chart.zoom.autoScaleYaxis&&(s=new _(this.ctx).autoScaleY(this.ctx,s,{xaxis:l}));var h={xaxis:{min:t,max:e}};i.config.chart.group||(h.yaxis=s),this.updateScrolledChart(h,t,e)}},{key:"updateScrolledChart",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),"function"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),i}(ht),dt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx}return r(t,[{key:"getNearestValues",value:function(t){var e=t.hoverArea,i=t.elGrid,a=t.clientX,s=t.clientY,r=this.w,o=i.getBoundingClientRect(),n=o.width,l=o.height,h=n/(r.globals.dataPoints-1),c=l/r.globals.dataPoints,d=this.hasBars();!r.globals.comboCharts&&!d||r.config.xaxis.convertedCatToNumeric||(h=n/r.globals.dataPoints);var g=a-o.left-r.globals.barPadForNumericAxis,u=s-o.top;g<0||u<0||g>n||u>l?(e.classList.remove("hovering-zoom"),e.classList.remove("hovering-pan")):r.globals.zoomEnabled?(e.classList.remove("hovering-pan"),e.classList.add("hovering-zoom")):r.globals.panEnabled&&(e.classList.remove("hovering-zoom"),e.classList.add("hovering-pan"));var f=Math.round(g/h),p=Math.floor(u/c);d&&!r.config.xaxis.convertedCatToNumeric&&(f=Math.ceil(g/h),f-=1);var b=null,v=null,m=[],y=[];if(r.globals.seriesXvalues.forEach((function(t){m.push([t[0]+1e-6].concat(t))})),r.globals.seriesYvalues.forEach((function(t){y.push([t[0]+1e-6].concat(t))})),m=m.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),y=y.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),r.globals.isXNumeric){var w=this.ttCtx.getElGrid().getBoundingClientRect(),k=g*(w.width/n),A=u*(w.height/l);b=(v=this.closestInMultiArray(k,A,m,y)).index,f=v.j,null!==b&&(m=r.globals.seriesXvalues[b],f=(v=this.closestInArray(k,m)).index)}return r.globals.capturedSeriesIndex=null===b?-1:b,(!f||f<1)&&(f=0),r.globals.isBarHorizontal?r.globals.capturedDataPointIndex=p:r.globals.capturedDataPointIndex=f,{capturedSeries:b,j:r.globals.isBarHorizontal?p:f,hoverX:g,hoverY:u}}},{key:"closestInMultiArray",value:function(t,e,i,a){var s=this.w,r=0,o=null,n=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):o=0;var l=i[r][0],h=Math.abs(t-l);if(i.forEach((function(e){e.forEach((function(e,i){var a=Math.abs(t-e);a0?e:-1})),s=0;s0)for(var a=0;ai?-1:0}));var e=[];return t.forEach((function(t){e.push(t.querySelector(".apexcharts-marker"))})),e}},{key:"hasMarkers",value:function(){return this.getElMarkers().length>0}},{key:"getElBars",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series")}},{key:"hasBars",value:function(){return this.getElBars().length>0}},{key:"getHoverMarkerSize",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:"toggleAllTooltipSeriesGroups",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group"));for(var a=i.allTooltipSeriesGroups,s=0;s ').concat(i.attrs.name,""),e+="
".concat(i.val,"
")})),v.innerHTML=t+"",m.innerHTML=e+""};o?l.globals.seriesGoals[e][i]&&Array.isArray(l.globals.seriesGoals[e][i])?y():(v.innerHTML="",m.innerHTML=""):y()}else v.innerHTML="",m.innerHTML="";null!==f&&(a[e].querySelector(".apexcharts-tooltip-text-z-label").innerHTML=l.config.tooltip.z.title,a[e].querySelector(".apexcharts-tooltip-text-z-value").innerHTML=void 0!==f?f:"");o&&p[0]&&(null==c||l.globals.ancillaryCollapsedSeriesIndices.indexOf(e)>-1||l.globals.collapsedSeriesIndices.indexOf(e)>-1?p[0].parentNode.style.display="none":p[0].parentNode.style.display=l.config.tooltip.items.display)}},{key:"toggleActiveInactiveSeries",value:function(t){var e=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");else{this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");var i=e.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group");i&&(i.classList.add("apexcharts-active"),i.style.display=e.config.tooltip.items.display)}}},{key:"getValuesToPrint",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r="",o="",n=null,l=null,h={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&"treemap"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=void 0!==a.globals.labels[i]?a.globals.labels[i]:"";var d=r;a.globals.isXNumeric&&"datetime"===a.config.xaxis.type?r=new M(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new T(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,h):a.globals.xLabelFormatter(d,h);return void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,h)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(n=c(a.globals.seriesZ[e][i],a)),o="function"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,h):r,{val:Array.isArray(l)?l.join(" "):l,xVal:Array.isArray(r)?r.join(" "):r,xAxisTTVal:Array.isArray(o)?o.join(" "):o,zVal:n}}},{key:"handleCustomTooltip",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,o=this.ttCtx.getElTooltip(),n=r.config.tooltip.custom;Array.isArray(n)&&n[e]&&(n=n[e]),o.innerHTML=n({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}]),t}(),ut=function(){function t(e){a(this,t),this.ttCtx=e,this.ctx=e.ctx,this.w=e.w}return r(t,[{key:"moveXCrosshairs",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,o=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/o*e),null===s||a.globals.isBarHorizontal||(s.setAttribute("x",r),s.setAttribute("x1",r),s.setAttribute("x2",r),s.setAttribute("y2",a.globals.gridHeight),s.classList.add("apexcharts-active")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var n=r;"tickWidth"!==a.config.xaxis.crosshairs.width&&"barWidth"!==a.config.xaxis.crosshairs.width||(n=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(n)}}},{key:"moveYCrosshairs",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&m.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&m.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:"moveXAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip&&0!==i.xcrosshairsWidth){i.xaxisTooltip.classList.add("apexcharts-active");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new m(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+"px",i.xaxisTooltip.style.left=t+"px",i.xaxisTooltip.style.top=a+"px"}}}},{key:"moveYAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));var a=parseInt(i.ycrosshairsHidden.getAttribute("y1"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,o=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(o-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add("apexcharts-active"),i.yaxisTTEls[t].style.top=s+"px",i.yaxisTTEls[t].style.left=o+e.config.yaxis[t].tooltip.offsetX+"px"):i.yaxisTTEls[t].classList.remove("apexcharts-active")}},{key:"moveTooltip",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),o=s.tooltipRect,n=null!==i?parseFloat(i):1,l=parseFloat(t)+n+5,h=parseFloat(e)+n/2;if(l>a.globals.gridWidth/2&&(l=l-o.ttWidth-n-10),l>a.globals.gridWidth-o.ttWidth-10&&(l=a.globals.gridWidth-o.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid(),d=c.getBoundingClientRect();h=s.e.clientY+a.globals.translateY-d.top-o.ttHeight/2}else a.globals.isBarHorizontal||o.ttHeight/2+h>a.globals.gridHeight&&(h=a.globals.gridHeight-o.ttHeight+a.globals.translateY);isNaN(l)||(l+=a.globals.translateX,r.style.left=l+"px",r.style.top=h+"px")}},{key:"moveMarkers",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(t,"'] .apexcharts-marker")),r=0;r0&&(h.setAttribute("r",n),h.setAttribute("cx",i),h.setAttribute("cy",a)),this.moveXCrosshairs(i),r.fixedTooltip||this.moveTooltip(i,a,n)}}},{key:"moveDynamicPointsOnHover",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,o=a.globals.pointsArray;e=new N(this.ctx).getActiveConfigSeriesIndex("asc",["line","area","scatter","bubble"]);var n=i.tooltipUtil.getHoverMarkerSize(e);o[e]&&(s=o[e][t][0],r=o[e][t][1]);var l=i.tooltipUtil.getAllMarkers();if(null!==l)for(var h=0;h0?(l[h]&&l[h].setAttribute("r",n),l[h]&&l[h].setAttribute("cy",d)):l[h]&&l[h].setAttribute("r",0)}}if(this.moveXCrosshairs(s),!i.fixedTooltip){var f=r||a.globals.gridHeight;this.moveTooltip(s,f,n)}}},{key:"moveStickyTooltipOverBars",value:function(t){var e=this.w,i=this.ttCtx,a=e.globals.columnSeries?e.globals.columnSeries.length:e.globals.series.length,s=a>=2&&a%2==0?Math.floor(a/2):Math.floor(a/2)+1;e.globals.isBarHorizontal&&(s=new N(this.ctx).getActiveConfigSeriesIndex("desc")+1);var r=e.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(s,"'] path[j='").concat(t,"'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(s,"'] path[j='").concat(t,"']")),o=r?parseFloat(r.getAttribute("cx")):0,n=r?parseFloat(r.getAttribute("cy")):0,l=r?parseFloat(r.getAttribute("barWidth")):0,h=i.getElGrid().getBoundingClientRect(),c=r.classList.contains("apexcharts-candlestick-area")||r.classList.contains("apexcharts-boxPlot-area");if(e.globals.isXNumeric?(r&&!c&&(o-=a%2!=0?l/2:0),r&&c&&e.globals.comboCharts&&(o-=l/2)):e.globals.isBarHorizontal||(o=i.xAxisTicksPositions[t-1]+i.dataPointsDividedWidth/2,isNaN(o)&&(o=i.xAxisTicksPositions[t]-i.dataPointsDividedWidth/2)),e.globals.isBarHorizontal?n-=i.tooltipRect.ttHeight:e.config.tooltip.followCursor?n=i.e.clientY-h.top-i.tooltipRect.ttHeight/2:n+i.tooltipRect.ttHeight+15>e.globals.gridHeight&&(n=e.globals.gridHeight),e.globals.isBarHorizontal||this.moveXCrosshairs(o),!i.fixedTooltip){var d=n||e.globals.gridHeight;this.moveTooltip(o,d)}}}]),t}(),ft=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx,this.tooltipPosition=new ut(e)}return r(t,[{key:"drawDynamicPoints",value:function(){var t=this.w,e=new m(this.ctx),i=new D(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series");a=u(a),t.config.chart.stacked&&a.sort((function(t,e){return parseFloat(t.getAttribute("data:realIndex"))-parseFloat(e.getAttribute("data:realIndex"))}));for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;"bubble"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute("cx"),o=e.getAttribute("cy");if(null!==i&&null!==a&&(r=i,o=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if("radar"===s.config.chart.type){var n=this.ttCtx.getElGrid(),l=n.getBoundingClientRect();r=this.ttCtx.e.clientX-l.left}this.tooltipPosition.moveTooltip(r,o,s.config.markers.hover.size)}}},{key:"enlargePoints",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"),o=e.config.markers.hover.size,n=0;n=0?t[e].setAttribute("r",i):t[e].setAttribute("r",0)}}}]),t}(),pt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e}return r(t,[{key:"getAttr",value:function(t,e){return parseFloat(t.target.getAttribute(e))}},{key:"handleHeatTreeTooltip",value:function(t){var e=t.e,i=t.opt,a=t.x,s=t.y,r=t.type,o=this.ttCtx,n=this.w;if(e.target.classList.contains("apexcharts-".concat(r,"-rect"))){var l=this.getAttr(e,"i"),h=this.getAttr(e,"j"),c=this.getAttr(e,"cx"),d=this.getAttr(e,"cy"),g=this.getAttr(e,"width"),u=this.getAttr(e,"height");if(o.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:l,j:h,shared:!1,e:e}),n.globals.capturedSeriesIndex=l,n.globals.capturedDataPointIndex=h,a=c+o.tooltipRect.ttWidth/2+g,s=d+o.tooltipRect.ttHeight/2-u/2,o.tooltipPosition.moveXCrosshairs(c+g/2),a>n.globals.gridWidth/2&&(a=c-o.tooltipRect.ttWidth/2+g),o.w.config.tooltip.followCursor){var f=n.globals.dom.elWrap.getBoundingClientRect();a=n.globals.clientX-f.left-(a>n.globals.gridWidth/2?o.tooltipRect.ttWidth:0),s=n.globals.clientY-f.top-(s>n.globals.gridHeight/2?o.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:"handleMarkerTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=t.x,o=t.y,n=this.w,l=this.ttCtx;if(a.target.classList.contains("apexcharts-marker")){var h=parseInt(s.paths.getAttribute("cx"),10),c=parseInt(s.paths.getAttribute("cy"),10),d=parseFloat(s.paths.getAttribute("val"));if(i=parseInt(s.paths.getAttribute("rel"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"),10)-1,l.intersect){var g=x.findAncestor(s.paths,"apexcharts-series");g&&(e=parseInt(g.getAttribute("data:realIndex"),10))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&n.config.tooltip.shared,e:a}),"mouseup"===a.type&&l.markerClick(a,e,i),n.globals.capturedSeriesIndex=e,n.globals.capturedDataPointIndex=i,r=h,o=c+n.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var u=l.getElGrid().getBoundingClientRect();o=l.e.clientY+n.globals.translateY-u.top}d<0&&(o=c),l.marker.enlargeCurrentPoint(i,s.paths,r,o)}return{x:r,y:o}}},{key:"handleBarTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=this.ttCtx,n=o.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var g=d.barHeight,u=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=u,r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||!r.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=h):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(c)&&(c=r.globals.svgHeight-o.tooltipRect.ttHeight);var f=parseInt(s.paths.parentNode.getAttribute("data:realIndex"),10),p=r.globals.isMultipleYAxis?r.config.yaxis[f]&&r.config.yaxis[f].reversed:r.config.yaxis[0].reversed;if(h+o.tooltipRect.ttWidth>r.globals.gridWidth&&!p?h-=o.tooltipRect.ttWidth:h<0&&(h=0),o.w.config.tooltip.followCursor){var x=o.getElGrid().getBoundingClientRect();c=o.e.clientY-x.top}null===o.tooltip&&(o.tooltip=r.globals.dom.baseEl.querySelector(".apexcharts-tooltip")),r.config.tooltip.shared||(r.globals.comboBarCount>0?o.tooltipPosition.moveXCrosshairs(l+i/2):o.tooltipPosition.moveXCrosshairs(l)),!o.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars())&&(p&&(h-=o.tooltipRect.ttWidth)<0&&(h=0),!p||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||(c=c+g-2*(r.globals.series[e][u]<0?g:0)),c=c+r.globals.translateY-o.tooltipRect.ttHeight/2,n.style.left=h+r.globals.translateX+"px",n.style.top=c+"px")}},{key:"getBarTooltipXY",value:function(t){var e=t.e,i=t.opt,a=this.w,s=null,r=this.ttCtx,o=0,n=0,l=0,h=0,c=0,d=e.target.classList;if(d.contains("apexcharts-bar-area")||d.contains("apexcharts-candlestick-area")||d.contains("apexcharts-boxPlot-area")||d.contains("apexcharts-rangebar-area")){var g=e.target,u=g.getBoundingClientRect(),f=i.elGrid.getBoundingClientRect(),p=u.height;c=u.height;var x=u.width,b=parseInt(g.getAttribute("cx"),10),v=parseInt(g.getAttribute("cy"),10);h=parseFloat(g.getAttribute("barWidth"));var m="touchmove"===e.type?e.touches[0].clientX:e.clientX;s=parseInt(g.getAttribute("j"),10),o=parseInt(g.parentNode.getAttribute("rel"),10)-1;var y=g.getAttribute("data-range-y1"),w=g.getAttribute("data-range-y2");a.globals.comboCharts&&(o=parseInt(g.parentNode.getAttribute("data:realIndex"),10)),r.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:o,j:s,y1:y?parseInt(y,10):null,y2:w?parseInt(w,10):null,shared:!r.showOnIntersect&&a.config.tooltip.shared,e:e}),a.config.tooltip.followCursor?a.globals.isBarHorizontal?(n=m-f.left+15,l=v-r.dataPointsDividedHeight+p/2-r.tooltipRect.ttHeight/2):(n=a.globals.isXNumeric?b-x/2:b-r.dataPointsDividedWidth+x/2,l=e.clientY-f.top-r.tooltipRect.ttHeight/2-15):a.globals.isBarHorizontal?((n=b)0&&i.setAttribute("width",e.xcrosshairsWidth)}},{key:"handleYCrosshair",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden")}},{key:"drawYaxisTooltipText",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals.yLabelFormatters[t];if(a.yaxisTooltips[t]){var o=a.getElGrid().getBoundingClientRect(),n=(e-o.top)*i.yRatio[t],l=s.globals.maxYArr[t]-s.globals.minYArr[t],h=s.globals.minYArr[t]+(l-n);a.tooltipPosition.moveYCrosshairs(e-o.top),a.yaxisTooltipText[t].innerHTML=r(h),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),bt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.tConfig=i.config.tooltip,this.tooltipUtil=new dt(this),this.tooltipLabels=new gt(this),this.tooltipPosition=new ut(this),this.marker=new ft(this),this.intersect=new pt(this),this.axesTooltip=new xt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!i.globals.isBarHorizontal&&this.tConfig.shared,this.lastHoverTime=Date.now()}return r(t,[{key:"getElTooltip",value:function(t){return t||(t=this),t.w.globals.dom.baseEl?t.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip"):null}},{key:"getElXCrosshairs",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs")}},{key:"getElGrid",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid")}},{key:"drawTooltip",value:function(t){var e=this.w;this.xyRatios=t,this.isXAxisTooltipEnabled=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.yaxisTooltips=e.config.yaxis.map((function(t,i){return!!(t.show&&t.tooltip.enabled&&e.globals.axisCharts)})),this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement("div");if(i.classList.add("apexcharts-tooltip"),e.config.tooltip.cssClass&&i.classList.add(e.config.tooltip.cssClass),i.classList.add("apexcharts-theme-".concat(this.tConfig.theme)),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new V(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!e.globals.comboCharts&&!this.tConfig.intersect&&"rangeBar"!==e.config.chart.type||this.tConfig.shared||(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.classList.add("apexcharts-tooltip-title"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:"createTTElements",value:function(t){for(var e=this,i=this.w,a=[],s=this.getElTooltip(),r=function(r){var o=document.createElement("div");o.classList.add("apexcharts-tooltip-series-group"),o.style.order=i.config.tooltip.inverseOrder?t-r:r+1,e.tConfig.shared&&e.tConfig.enabledOnSeries&&Array.isArray(e.tConfig.enabledOnSeries)&&e.tConfig.enabledOnSeries.indexOf(r)<0&&o.classList.add("apexcharts-tooltip-series-group-hidden");var n=document.createElement("span");n.classList.add("apexcharts-tooltip-marker"),n.style.backgroundColor=i.globals.colors[r],o.appendChild(n);var l=document.createElement("div");l.classList.add("apexcharts-tooltip-text"),l.style.fontFamily=e.tConfig.style.fontFamily||i.config.chart.fontFamily,l.style.fontSize=e.tConfig.style.fontSize,["y","goals","z"].forEach((function(t){var e=document.createElement("div");e.classList.add("apexcharts-tooltip-".concat(t,"-group"));var i=document.createElement("span");i.classList.add("apexcharts-tooltip-text-".concat(t,"-label")),e.appendChild(i);var a=document.createElement("span");a.classList.add("apexcharts-tooltip-text-".concat(t,"-value")),e.appendChild(a),l.appendChild(e)})),o.appendChild(l),s.appendChild(o),a.push(o)},o=0;o0&&this.addPathsEventListeners(u,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:"drawFixedTooltipRect",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,o=this.tConfig.fixed.offsetY,n=this.tConfig.fixed.position.toLowerCase();return n.indexOf("right")>-1&&(r=r+t.globals.svgWidth-a+10),n.indexOf("bottom")>-1&&(o=o+t.globals.svgHeight-s-10),e.style.left=r+"px",e.style.top=o+"px",{x:r,y:o,ttWidth:a,ttHeight:s}}},{key:"addDatapointEventsListeners",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area");this.addPathsEventListeners(e,t)}},{key:"addPathsEventListeners",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};["mousemove","mouseup","touchmove","mouseout","touchend"].map((function(e){return t[a].addEventListener(e,i.onSeriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;s=100?this.seriesHover(t,e):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout((function(){i.seriesHover(t,e)}),100-a))}},{key:"seriesHover",value:function(t,e){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||0===s.globals.dataPoints)||(a.length?a.forEach((function(a){var s=i.getElTooltip(a),r={paths:t.paths,tooltipEl:s,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:a.w.globals.tooltip.ttItems};a.w.globals.minX===i.w.globals.minX&&a.w.globals.maxX===i.w.globals.maxX&&a.w.globals.tooltip.seriesHoverByContext({chartCtx:a,ttCtx:a.w.globals.tooltip,opt:r,e:e})})):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:t,e:e}))}},{key:"seriesHoverByContext",value:function(t){var e=t.chartCtx,i=t.ttCtx,a=t.opt,s=t.e,r=e.w,o=this.getElTooltip();if(o){if(i.tooltipRect={x:0,y:0,ttWidth:o.getBoundingClientRect().width,ttHeight:o.getBoundingClientRect().height},i.e=s,i.tooltipUtil.hasBars()&&!r.globals.comboCharts&&!i.isBarShared)if(this.tConfig.onDatasetHover.highlightDataSeries)new N(e).toggleSeriesOnHover(s,s.target.parentNode);i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect})}}},{key:"axisChartsTooltips",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=s.elGrid.getBoundingClientRect(),n="touchmove"===a.type?a.touches[0].clientX:a.clientX,l="touchmove"===a.type?a.touches[0].clientY:a.clientY;if(this.clientY=l,this.clientX=n,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,lo.top+o.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var h=parseInt(s.paths.getAttribute("index"),10);if(this.tConfig.enabledOnSeries.indexOf(h)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),d=this.getElXCrosshairs(),g=r.globals.xyCharts||"bar"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if("mousemove"===a.type||"touchmove"===a.type||"mouseup"===a.type){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;null!==d&&d.classList.add("apexcharts-active");var u=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&u.length&&this.ycrosshairs.classList.add("apexcharts-active"),g&&!this.showOnIntersect)this.handleStickyTooltip(a,n,l,s);else if("heatmap"===r.config.chart.type||"treemap"===r.config.chart.type){var f=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=f.x,i=f.y,c.style.left=e+"px",c.style.top=i+"px"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var p=0;pl.width?this.handleMouseOut(a):null!==n?this.handleStickyCapturedSeries(t,n,a,o):(this.tooltipUtil.isXoverlap(o)||s.globals.isBarHorizontal)&&this.create(t,this,0,o,a.ttItems)}},{key:"handleStickyCapturedSeries",value:function(t,e,i,a){var s=this.w;if(!this.tConfig.shared&&null===s.globals.series[e][a])return void this.handleMouseOut(i);void 0!==s.globals.series[e][a]?this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1):this.tooltipUtil.isXoverlap(a)&&this.create(t,this,0,a,i.ttItems)}},{key:"deactivateHoverFilter",value:function(){for(var t=this.w,e=new m(this.ctx),i=t.globals.dom.Paper.select(".apexcharts-bar-area"),a=0;a5&&void 0!==arguments[5]?arguments[5]:null,S=this.w,C=i;"mouseup"===t.type&&this.markerClick(t,a,s),null===A&&(A=this.tConfig.shared);var L=this.tooltipUtil.hasMarkers(),P=this.tooltipUtil.getElBars();if(S.config.legend.tooltipHoverFormatter){var T=S.config.legend.tooltipHoverFormatter,M=Array.from(this.legendLabels);M.forEach((function(t){var e=t.getAttribute("data:default-text");t.innerHTML=decodeURIComponent(e)}));for(var I=0;I0?C.marker.enlargePoints(s):C.tooltipPosition.moveDynamicPointsOnHover(s)),this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(P),this.barSeriesHeight>0)){var R=new m(this.ctx),D=S.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(s,"']"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(s);for(var H=0;Hs.globals.gridHeight&&(u=s.globals.gridHeight-b)),{bcx:h,bcy:l,dataLabelsX:e,dataLabelsY:u,totalDataLabelsX:a,totalDataLabelsY:i,totalDataLabelsAnchor:"middle"}}},{key:"calculateBarsDataLabelsPosition",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,r=t.realIndex,o=t.bcy,n=t.barHeight,l=t.barWidth,h=t.textRects,c=t.dataLabelsX,d=t.strokeWidth,g=t.dataLabelsConfig,u=t.barDataLabelsConfig,f=t.barTotalDataLabelsConfig,p=t.offX,x=t.offY,b=e.globals.gridHeight/e.globals.dataPoints;l=Math.abs(l);var v,y,w=o-(this.barCtx.isRangeBar?0:b)+n/2+h.height/2+x-3,k="start",A=this.barCtx.series[a][s]<0,S=i;switch(this.barCtx.isReversed&&(S=i+l-(A?2*l:0),i=e.globals.gridWidth-l),u.position){case"center":c=A?S+l/2-p:Math.max(h.width/2,S-l/2)+p;break;case"bottom":c=A?S+l-d-Math.round(h.width/2)-p:S-l+d+Math.round(h.width/2)+p;break;case"top":c=A?S-d+Math.round(h.width/2)-p:S-d-Math.round(h.width/2)+p}if(this.barCtx.lastActiveBarSerieIndex===r&&f.enabled){var C=new m(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:r,j:s}),g.fontSize);A?(v=S-d+Math.round(C.width/2)-p-f.offsetX-15,k="end"):v=S-d-Math.round(C.width/2)+p+f.offsetX+15,y=w+f.offsetY}return e.config.chart.stacked||(c<0?c=c+h.width+d:c+h.width/2>e.globals.gridWidth&&(c=e.globals.gridWidth-h.width-d)),{bcx:i,bcy:o,dataLabelsX:c,dataLabelsY:w,totalDataLabelsX:v,totalDataLabelsY:y,totalDataLabelsAnchor:k}}},{key:"drawCalculatedDataLabels",value:function(t){var i=t.x,a=t.y,s=t.val,r=t.i,o=t.j,n=t.textRects,l=t.barHeight,h=t.barWidth,c=t.dataLabelsConfig,d=this.w,g="rotate(0)";"vertical"===d.config.plotOptions.bar.dataLabels.orientation&&(g="rotate(-90, ".concat(i,", ").concat(a,")"));var u=new O(this.barCtx.ctx),f=new m(this.barCtx.ctx),p=c.formatter,x=null,b=d.globals.collapsedSeriesIndices.indexOf(r)>-1;if(c.enabled&&!b){x=f.group({class:"apexcharts-data-labels",transform:g});var v="";void 0!==s&&(v=p(s,e(e({},d),{},{seriesIndex:r,dataPointIndex:o,w:d})));var y=d.globals.series[r][o]<0,w=d.config.plotOptions.bar.dataLabels.position;if("vertical"===d.config.plotOptions.bar.dataLabels.orientation&&("top"===w&&(c.textAnchor=y?"end":"start"),"center"===w&&(c.textAnchor="middle"),"bottom"===w&&(c.textAnchor=y?"end":"start")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels)hMath.abs(h)&&(v=""):n.height/1.6>Math.abs(l)&&(v=""));var k=e({},c);this.barCtx.isHorizontal&&s<0&&("start"===c.textAnchor?k.textAnchor="end":"end"===c.textAnchor&&(k.textAnchor="start")),u.plotDataLabelsText({x:i,y:a,text:v,i:r,j:o,parent:x,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return x}},{key:"drawTotalDataLabels",value:function(t){var e,i=t.x,a=t.y,s=t.val,r=t.realIndex,o=t.textAnchor,n=t.barTotalDataLabelsConfig,l=new m(this.barCtx.ctx);return n.enabled&&void 0!==i&&void 0!==a&&this.barCtx.lastActiveBarSerieIndex===r&&(e=l.drawText({x:i,y:a,foreColor:n.style.color,text:s,textAnchor:o,fontFamily:n.style.fontFamily,fontSize:n.style.fontSize,fontWeight:n.style.fontWeight})),e}}]),t}(),mt=function(){function t(e){a(this,t),this.w=e.w,this.barCtx=e}return r(t,[{key:"initVariables",value:function(t){var e=this.w;this.barCtx.series=t,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;ae.globals.minX&&e.globals.seriesX[i][a]0&&(a=l.globals.minXDiff/d),(r=a/this.barCtx.seriesLen*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}o=l.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.yaxisIndex]-(this.barCtx.isReversed?l.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.yaxisIndex]:0),t=l.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:o,zeroW:n}}},{key:"getPathFillColor",value:function(t,e,i,a){var s,r,o,n,l=this.w,h=new R(this.barCtx.ctx),c=null,d=this.barCtx.barOptions.distributed?i:e;this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map((function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(c=a.color)}));return l.config.series[e].data[i]&&l.config.series[e].data[i].fillColor&&(c=l.config.series[e].data[i].fillColor),h.fillPath({seriesNumber:this.barCtx.barOptions.distributed?d:a,dataPointIndex:i,color:c,value:t[e][i],fillConfig:null===(s=l.config.series[e].data[i])||void 0===s?void 0:s.fill,fillType:null!==(r=l.config.series[e].data[i])&&void 0!==r&&null!==(o=r.fill)&&void 0!==o&&o.type?null===(n=l.config.series[e].data[i])||void 0===n?void 0:n.fill.type:l.config.fill.type})}},{key:"getStrokeWidth",value:function(t,e,i){var a=0,s=this.w;return this.barCtx.series[t][e]?this.barCtx.isNullValue=!1:this.barCtx.isNullValue=!0,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:"shouldApplyRadius",value:function(t){var e=this.w,i=!1;return e.config.plotOptions.bar.borderRadius>0&&(e.config.chart.stacked&&"last"===e.config.plotOptions.bar.borderRadiusWhenStacked?this.barCtx.lastActiveBarSerieIndex===t&&(i=!0):i=!0),i}},{key:"barBackground",value:function(t){var e=t.j,i=t.i,a=t.x1,s=t.x2,r=t.y1,o=t.y2,n=t.elSeries,l=this.w,h=new m(this.barCtx.ctx),c=new N(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&c===i){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e%=this.barCtx.barOptions.colors.backgroundBarColors.length);var d=this.barCtx.barOptions.colors.backgroundBarColors[e],g=h.drawRect(void 0!==a?a:0,void 0!==r?r:0,void 0!==s?s:l.globals.gridWidth,void 0!==o?o:l.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,d,this.barCtx.barOptions.colors.backgroundBarOpacity);n.add(g),g.node.classList.add("apexcharts-backgroundBar")}}},{key:"getColumnPaths",value:function(t){var e,i=t.barWidth,a=t.barXPosition,s=t.y1,r=t.y2,o=t.strokeWidth,n=t.realIndex,l=t.i,h=t.j,c=t.w,d=new m(this.barCtx.ctx);(o=Array.isArray(o)?o[n]:o)||(o=0);var g=i,u=a;null!==(e=c.config.series[n].data[h])&&void 0!==e&&e.columnWidthOffset&&(u=a-c.config.series[n].data[h].columnWidthOffset/2,g=i+c.config.series[n].data[h].columnWidthOffset);var f=u,p=u+g;s+=.001,r+=.001;var x=d.move(f,s),b=d.move(f,s),v=d.line(p-o,s);return c.globals.previousPaths.length>0&&(b=this.barCtx.getPreviousPath(n,h,!1)),x=x+d.line(f,r)+d.line(p-o,r)+d.line(p-o,s)+("around"===c.config.plotOptions.bar.borderRadiusApplication?" Z":" z"),b=b+d.line(f,s)+v+v+v+v+v+d.line(f,s)+("around"===c.config.plotOptions.bar.borderRadiusApplication?" Z":" z"),this.shouldApplyRadius(n)&&(x=d.roundPathCorners(x,c.config.plotOptions.bar.borderRadius)),c.config.chart.stacked&&(this.barCtx.yArrj.push(r),this.barCtx.yArrjF.push(Math.abs(s-r)),this.barCtx.yArrjVal.push(this.barCtx.series[l][h])),{pathTo:x,pathFrom:b}}},{key:"getBarpaths",value:function(t){var e,i=t.barYPosition,a=t.barHeight,s=t.x1,r=t.x2,o=t.strokeWidth,n=t.realIndex,l=t.i,h=t.j,c=t.w,d=new m(this.barCtx.ctx);(o=Array.isArray(o)?o[n]:o)||(o=0);var g=i,u=a;null!==(e=c.config.series[n].data[h])&&void 0!==e&&e.barHeightOffset&&(g=i-c.config.series[n].data[h].barHeightOffset/2,u=a+c.config.series[n].data[h].barHeightOffset);var f=g,p=g+u;s+=.001,r+=.001;var x=d.move(s,f),b=d.move(s,f);c.globals.previousPaths.length>0&&(b=this.barCtx.getPreviousPath(n,h,!1));var v=d.line(s,p-o);return x=x+d.line(r,f)+d.line(r,p-o)+v+("around"===c.config.plotOptions.bar.borderRadiusApplication?" Z":" z"),b=b+d.line(s,f)+v+v+v+v+v+d.line(s,f)+("around"===c.config.plotOptions.bar.borderRadiusApplication?" Z":" z"),this.shouldApplyRadius(n)&&(x=d.roundPathCorners(x,c.config.plotOptions.bar.borderRadius)),c.config.chart.stacked&&(this.barCtx.xArrj.push(r),this.barCtx.xArrjF.push(Math.abs(s-r)),this.barCtx.xArrjVal.push(this.barCtx.series[l][h])),{pathTo:x,pathFrom:b}}},{key:"checkZeroSeries",value:function(t){for(var e=t.series,i=this.w,a=0;a=0;o--)this.barCtx.zeroSerieses.indexOf(o)>-1&&o===this.radiusOnSeriesNumber&&(this.barCtx.radiusOnSeriesNumber-=1);for(var n=e.length-1;n>=0;n--)i.globals.collapsedSeriesIndices.indexOf(this.barCtx.radiusOnSeriesNumber)>-1&&(this.barCtx.radiusOnSeriesNumber-=1)}},{key:"getXForValue",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=i?e:null;return null!=t&&(a=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),a}},{key:"getYForValue",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=i?e:null;return null!=t&&(a=e-t/this.barCtx.yRatio[this.barCtx.yaxisIndex]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[this.barCtx.yaxisIndex]:0)),a}},{key:"getGoalValues",value:function(t,e,i,a,s){var r=this,n=this.w,l=[];return n.globals.seriesGoals[a]&&n.globals.seriesGoals[a][s]&&Array.isArray(n.globals.seriesGoals[a][s])&&n.globals.seriesGoals[a][s].forEach((function(a){var s;l.push((o(s={},t,"x"===t?r.getXForValue(a.value,e,!1):r.getYForValue(a.value,i,!1)),o(s,"attrs",a),s))})),l}},{key:"drawGoalLine",value:function(t){var e=t.barXPosition,i=t.barYPosition,a=t.goalX,s=t.goalY,r=t.barWidth,o=t.barHeight,n=new m(this.barCtx.ctx),l=n.group({className:"apexcharts-bar-goals-groups"}),h=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach((function(t){var e=void 0!==t.attrs.strokeHeight?t.attrs.strokeHeight:o/2,a=i+e+o/2;h=n.drawLine(t.x,a-2*e,t.x,a,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeWidth?t.attrs.strokeWidth:2,t.attrs.strokeLineCap),l.add(h)})):Array.isArray(s)&&s.forEach((function(t){var i=void 0!==t.attrs.strokeWidth?t.attrs.strokeWidth:r/2,a=e+i+r/2;h=n.drawLine(a-2*i,t.y,a,t.y,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeHeight?t.attrs.strokeHeight:2,t.attrs.strokeLineCap),l.add(h)})),l}}]),t}(),yt=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w;var s=this.w;this.barOptions=s.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=s.config.stroke.width,this.isNullValue=!1,this.isRangeBar=s.globals.seriesRange.length&&this.isHorizontal,this.xyRatios=i,null!==this.xyRatios&&(this.xRatio=i.xRatio,this.initialXRatio=i.initialXRatio,this.yRatio=i.yRatio,this.invertedXRatio=i.invertedXRatio,this.invertedYRatio=i.invertedYRatio,this.baseLineY=i.baseLineY,this.baseLineInvertedY=i.baseLineInvertedY),this.yaxisIndex=0,this.seriesLen=0;var r=new N(this.ctx);this.lastActiveBarSerieIndex=r.getActiveConfigSeriesIndex("desc",["bar","column"]);var o=r.getBarSeriesIndices(),n=new y(this.ctx);this.stackedSeriesTotals=n.getStackedSeriesTotals(this.w.config.series.map((function(t,e){return-1===o.indexOf(e)?e:-1})).filter((function(t){return-1!==t}))),this.barHelpers=new mt(this)}return r(t,[{key:"draw",value:function(t,i){var a=this.w,s=new m(this.ctx),r=new y(this.ctx,a);t=r.getLogSeries(t),this.series=t,this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);var o=s.group({class:"apexcharts-bar-series apexcharts-plot-series"});a.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.");for(var n=0,l=0;n0&&(this.visibleI=this.visibleI+1);var k=0,A=0;this.yRatio.length>1&&(this.yaxisIndex=v),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed;var S=this.barHelpers.initialPositions();f=S.y,k=S.barHeight,c=S.yDivision,g=S.zeroW,u=S.x,A=S.barWidth,h=S.xDivision,d=S.zeroH,this.horizontal||b.push(u+A/2);for(var C=s.group({class:"apexcharts-datalabels","data:realIndex":v}),L=s.group({class:"apexcharts-bar-goals-markers",style:"pointer-events: none"}),P=0;P0&&b.push(u+A/2),p.push(f);var X=this.barHelpers.getPathFillColor(t,n,P,v);this.renderSeries({realIndex:v,pathFill:X,j:P,i:n,pathFrom:M.pathFrom,pathTo:M.pathTo,strokeWidth:T,elSeries:w,x:u,y:f,series:t,barHeight:k,barWidth:A,elDataLabelsWrap:C,elGoalsMarkers:L,visibleSeries:this.visibleI,type:"bar"})}a.globals.seriesXvalues[v]=b,a.globals.seriesYvalues[v]=p,o.add(w)}return o}},{key:"renderSeries",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,r=t.i,o=t.pathFrom,n=t.pathTo,l=t.strokeWidth,h=t.elSeries,c=t.x,d=t.y,g=t.y1,u=t.y2,f=t.series,p=t.barHeight,x=t.barWidth,b=t.barYPosition,y=t.elDataLabelsWrap,w=t.elGoalsMarkers,k=t.visibleSeries,A=t.type,S=this.w,C=new m(this.ctx);a||(a=this.barOptions.distributed?S.globals.stroke.colors[s]:S.globals.stroke.colors[e]),S.config.series[r].data[s]&&S.config.series[r].data[s].strokeColor&&(a=S.config.series[r].data[s].strokeColor),this.isNullValue&&(i="none");var L=s/S.config.chart.animations.animateGradually.delay*(S.config.chart.animations.speed/S.globals.dataPoints)/2.4,P=C.renderPaths({i:r,j:s,realIndex:e,pathFrom:o,pathTo:n,stroke:a,strokeWidth:l,strokeLineCap:S.config.stroke.lineCap,fill:i,animationDelay:L,initialSpeed:S.config.chart.animations.speed,dataChangeSpeed:S.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(A,"-area")});P.attr("clip-path","url(#gridRectMask".concat(S.globals.cuid,")"));var T=S.config.forecastDataPoints;T.count>0&&s>=S.globals.dataPoints-T.count&&(P.node.setAttribute("stroke-dasharray",T.dashArray),P.node.setAttribute("stroke-width",T.strokeWidth),P.node.setAttribute("fill-opacity",T.fillOpacity)),void 0!==g&&void 0!==u&&(P.attr("data-range-y1",g),P.attr("data-range-y2",u)),new v(this.ctx).setSelectionFilter(P,e,s),h.add(P);var M=new vt(this).handleBarDataLabels({x:c,y:d,y1:g,y2:u,i:r,j:s,series:f,realIndex:e,barHeight:p,barWidth:x,barYPosition:b,renderedPath:P,visibleSeries:k});return null!==M.dataLabels&&y.add(M.dataLabels),M.totalDataLabels&&y.add(M.totalDataLabels),h.add(y),w&&h.add(w),h}},{key:"drawBarPaths",value:function(t){var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=i.i,g=i.j;if(c.globals.isXNumeric)e=(n=(c.globals.seriesX[d][g]-c.globals.minX)/this.invertedXRatio-a)+a*this.visibleI;else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var u=0,f=0;c.globals.seriesPercent.forEach((function(t,e){t[g]&&u++,e0&&parseInt(r.realIndex,10)===parseInt(t,10)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}}]),t}(),wt=function(t){n(s,t);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:"draw",value:function(t,i){var a=this,s=this.w;this.graphics=new m(this.ctx),this.bar=new yt(this.ctx,this.xyRatios);var r=new y(this.ctx,s);t=r.getLogSeries(t),this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t),"100%"===s.config.chart.stackType&&(t=s.globals.seriesPercent.slice()),this.series=t,this.totalItems=0,this.prevY=[],this.prevX=[],this.prevYF=[],this.prevXF=[],this.prevYVal=[],this.prevXVal=[],this.xArrj=[],this.xArrjF=[],this.xArrjVal=[],this.yArrj=[],this.yArrjF=[],this.yArrjVal=[];for(var o=0;o0&&(this.totalItems+=t[o].length);for(var n=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"}),l=0,h=0,c=function(r,o){var c=void 0,d=void 0,g=void 0,u=void 0,f=[],p=[],b=s.globals.comboCharts?i[r]:r;a.yRatio.length>1&&(a.yaxisIndex=b),a.isReversed=s.config.yaxis[a.yaxisIndex]&&s.config.yaxis[a.yaxisIndex].reversed;var v=a.graphics.group({class:"apexcharts-series",seriesName:x.escapeString(s.globals.seriesNames[b]),rel:r+1,"data:realIndex":b});a.ctx.series.addCollapsedClassToSeries(v,b);var m=a.graphics.group({class:"apexcharts-datalabels","data:realIndex":b}),y=a.graphics.group({class:"apexcharts-bar-goals-markers",style:"pointer-events: none"}),w=0,k=0,A=a.initialPositions(l,h,c,d,g,u);h=A.y,w=A.barHeight,d=A.yDivision,u=A.zeroW,l=A.x,k=A.barWidth,c=A.xDivision,g=A.zeroH,a.yArrj=[],a.yArrjF=[],a.yArrjVal=[],a.xArrj=[],a.xArrjF=[],a.xArrjVal=[],1===a.prevY.length&&a.prevY[0].every((function(t){return isNaN(t)}))&&(a.prevY[0]=a.prevY[0].map((function(t){return g})),a.prevYF[0]=a.prevYF[0].map((function(t){return 0})));for(var S=0;S1?(i=l.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:n*parseInt(l.config.plotOptions.bar.columnWidth,10)/100,s=l.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?l.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),t=l.globals.padHorizontal+(i-n)/2),{x:t,y:e,yDivision:a,xDivision:i,barHeight:o,barWidth:n,zeroH:s,zeroW:r}}},{key:"drawStackedBarPaths",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=n,g=i.i,u=i.j,f=0,p=0;p0){var x=r;this.prevXVal[g-1][u]<0?x=this.series[g][u]>=0?this.prevX[g-1][u]+f-2*(this.isReversed?f:0):this.prevX[g-1][u]:this.prevXVal[g-1][u]>=0&&(x=this.series[g][u]>=0?this.prevX[g-1][u]:this.prevX[g-1][u]-f+2*(this.isReversed?f:0)),e=x}else e=r;o=null===this.series[g][u]?e:e+this.series[g][u]/this.invertedYRatio-2*(this.isReversed?this.series[g][u]/this.invertedYRatio:0);var b=this.barHelpers.getBarpaths({barYPosition:d,barHeight:a,x1:e,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:g,j:u,w:c});return this.barHelpers.barBackground({j:u,i:g,y1:d,y2:a,elSeries:h}),n+=l,{pathTo:b.pathTo,pathFrom:b.pathFrom,goalX:this.barHelpers.getGoalValues("x",r,null,g,u),barYPosition:d,x:o,y:n}}},{key:"drawStackedColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH;t.strokeWidth;var n=t.elSeries,l=this.w,h=e.i,c=e.j,d=e.bc;if(l.globals.isXNumeric){var g=l.globals.seriesX[h][c];g||(g=0),i=(g-l.globals.minX)/this.xRatio-r/2}for(var u,f=i,p=0,x=0;x0&&!l.globals.isXNumeric||h>0&&l.globals.isXNumeric&&l.globals.seriesX[h-1][c]===l.globals.seriesX[h][c]){var b,v,m=Math.min(this.yRatio.length+1,h+1);if(void 0!==this.prevY[h-1])for(var y=1;y=0?v-p+2*(this.isReversed?p:0):v;break}if(this.prevYVal[h-w][c]>=0){b=this.series[h][c]>=0?v:v+p-2*(this.isReversed?p:0);break}}void 0===b&&(b=l.globals.gridHeight),u=this.prevYF[0].every((function(t){return 0===t}))&&this.prevYF.slice(1,h).every((function(t){return t.every((function(t){return isNaN(t)}))}))?o:b}else u=o;a=this.series[h][c]?u-this.series[h][c]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[h][c]/this.yRatio[this.yaxisIndex]:0):u;var k=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:r,y1:u,y2:a,yRatio:this.yRatio[this.yaxisIndex],strokeWidth:this.strokeWidth,series:this.series,realIndex:e.realIndex,i:h,j:c,w:l});return this.barHelpers.barBackground({bc:d,j:c,i:h,x1:f,x2:r,elSeries:n}),i+=s,{pathTo:k.pathTo,pathFrom:k.pathFrom,goalY:this.barHelpers.getGoalValues("y",null,o,h,c),barXPosition:f,x:l.globals.isXNumeric?i-s:i,y:a}}}]),s}(yt),kt=function(t){n(s,t);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:"draw",value:function(t,i){var a=this,s=this.w,r=new m(this.ctx),o=new R(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=s.config.plotOptions.bar.horizontal;var n=new y(this.ctx,s);t=n.getLogSeries(t),this.series=t,this.yRatio=n.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);for(var l=r.group({class:"apexcharts-".concat(s.config.chart.type,"-series apexcharts-plot-series")}),h=function(n){a.isBoxPlot="boxPlot"===s.config.chart.type||"boxPlot"===s.config.series[n].type;var h,c,d,g,u=void 0,f=void 0,p=[],b=[],v=s.globals.comboCharts?i[n]:n,m=r.group({class:"apexcharts-series",seriesName:x.escapeString(s.globals.seriesNames[v]),rel:n+1,"data:realIndex":v});a.ctx.series.addCollapsedClassToSeries(m,v),t[n].length>0&&(a.visibleI=a.visibleI+1);var y,w;a.yRatio.length>1&&(a.yaxisIndex=v);var k=a.barHelpers.initialPositions();f=k.y,y=k.barHeight,c=k.yDivision,g=k.zeroW,u=k.x,w=k.barWidth,h=k.xDivision,d=k.zeroH,b.push(u+w/2);for(var A=r.group({class:"apexcharts-datalabels","data:realIndex":v}),S=function(i){var r=a.barHelpers.getStrokeWidth(n,i,v),l=null,x={indexes:{i:n,j:i,realIndex:v},x:u,y:f,strokeWidth:r,elSeries:m};l=a.isHorizontal?a.drawHorizontalBoxPaths(e(e({},x),{},{yDivision:c,barHeight:y,zeroW:g})):a.drawVerticalBoxPaths(e(e({},x),{},{xDivision:h,barWidth:w,zeroH:d})),f=l.y,u=l.x,i>0&&b.push(u+w/2),p.push(f),l.pathTo.forEach((function(e,h){var c=!a.isBoxPlot&&a.candlestickOptions.wick.useFillColor?l.color[h]:s.globals.stroke.colors[n],d=o.fillPath({seriesNumber:v,dataPointIndex:i,color:l.color[h],value:t[n][i]});a.renderSeries({realIndex:v,pathFill:d,lineFill:c,j:i,i:n,pathFrom:l.pathFrom,pathTo:e,strokeWidth:r,elSeries:m,x:u,y:f,series:t,barHeight:y,barWidth:w,elDataLabelsWrap:A,visibleSeries:a.visibleI,type:s.config.chart.type})}))},C=0;Cb.c&&(d=!1);var w=Math.min(b.o,b.c),k=Math.max(b.o,b.c),A=b.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[x][c]-n.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(w=r,k=r):(w=r-w/p,k=r-k/p,v=r-b.h/p,y=r-b.l/p,A=r-b.m/p);var C=l.move(S,r),L=l.move(S+s/2,w);return n.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,c,!0)),C=this.isBoxPlot?[l.move(S,w)+l.line(S+s/2,w)+l.line(S+s/2,v)+l.line(S+s/4,v)+l.line(S+s-s/4,v)+l.line(S+s/2,v)+l.line(S+s/2,w)+l.line(S+s,w)+l.line(S+s,A)+l.line(S,A)+l.line(S,w+o/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,k)+l.line(S+s/2,k)+l.line(S+s/2,y)+l.line(S+s-s/4,y)+l.line(S+s/4,y)+l.line(S+s/2,y)+l.line(S+s/2,k)+l.line(S,k)+l.line(S,A)+"z"]:[l.move(S,k)+l.line(S+s/2,k)+l.line(S+s/2,v)+l.line(S+s/2,k)+l.line(S+s,k)+l.line(S+s,w)+l.line(S+s/2,w)+l.line(S+s/2,y)+l.line(S+s/2,w)+l.line(S,w)+l.line(S,k-o/2)],L+=l.move(S,w),n.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:L,x:i,y:k,barXPosition:S,color:this.isBoxPlot?f:d?[g]:[u]}}},{key:"drawHorizontalBoxPaths",value:function(t){var e=t.indexes;t.x;var i=t.y,a=t.yDivision,s=t.barHeight,r=t.zeroW,o=t.strokeWidth,n=this.w,l=new m(this.ctx),h=e.i,c=e.j,d=this.boxOptions.colors.lower;this.isBoxPlot&&(d=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var g=this.invertedYRatio,u=e.realIndex,f=this.getOHLCValue(u,c),p=r,x=r,b=Math.min(f.o,f.c),v=Math.max(f.o,f.c),y=f.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[u][c]-n.globals.minX)/this.invertedXRatio-s/2);var w=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(b=r,v=r):(b=r+b/g,v=r+v/g,p=r+f.h/g,x=r+f.l/g,y=r+f.m/g);var k=l.move(r,w),A=l.move(b,w+s/2);return n.globals.previousPaths.length>0&&(A=this.getPreviousPath(u,c,!0)),k=[l.move(b,w)+l.line(b,w+s/2)+l.line(p,w+s/2)+l.line(p,w+s/2-s/4)+l.line(p,w+s/2+s/4)+l.line(p,w+s/2)+l.line(b,w+s/2)+l.line(b,w+s)+l.line(y,w+s)+l.line(y,w)+l.line(b+o/2,w),l.move(y,w)+l.line(y,w+s)+l.line(v,w+s)+l.line(v,w+s/2)+l.line(x,w+s/2)+l.line(x,w+s-s/4)+l.line(x,w+s/4)+l.line(x,w+s/2)+l.line(v,w+s/2)+l.line(v,w)+l.line(y,w)+"z"],A+=l.move(b,w),n.globals.isXNumeric||(i+=a),{pathTo:k,pathFrom:A,x:v,y:i,barYPosition:w,color:d}}},{key:"getOHLCValue",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}]),s}(yt),At=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"checkColorRange",value:function(){var t=this.w,e=!1,i=t.config.plotOptions[t.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:"getShadeColor",value:function(t,e,i,a){var s=this.w,r=1,o=s.config.plotOptions[t].shadeIntensity,n=this.determineColor(t,e,i);s.globals.hasNegs||a?r=s.config.plotOptions[t].reverseNegativeShade?n.percent<0?n.percent/100*(1.25*o):(1-n.percent/100)*(1.25*o):n.percent<=0?1-(1+n.percent/100)*o:(1-n.percent/100)*o:(r=1-n.percent/100,"treemap"===t&&(r=(1-n.percent/100)*(1.25*o)));var l=n.color,h=new x;return s.config.plotOptions[t].enableShades&&(l="dark"===this.w.config.theme.mode?x.hexToRgba(h.shadeColor(-1*r,n.color),s.config.fill.opacity):x.hexToRgba(h.shadeColor(r,n.color),s.config.fill.opacity)),{color:l,colorProps:n}}},{key:"determineColor",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],o=r.colorScale.inverse?i:e;r.distributed&&"treemap"===a.config.chart.type&&(o=i);var n=a.globals.colors[o],l=null,h=Math.min.apply(Math,u(a.globals.series[e])),c=Math.max.apply(Math,u(a.globals.series[e]));r.distributed||"heatmap"!==t||(h=a.globals.minY,c=a.globals.maxY),void 0!==r.colorScale.min&&(h=r.colorScale.mina.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(c)+Math.abs(h),g=100*s/(0===d?d-1e-6:d);r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){n=t.color,l=t.foreColor?t.foreColor:null,h=t.from,c=t.to;var i=Math.abs(c)+Math.abs(h);g=100*s/(0===i?i-1e-6:i)}}));return{color:n,foreColor:l,percent:g}}},{key:"calculateDataLabels",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,o=t.colorProps,n=t.fontSize,l=this.w.config.dataLabels,h=new m(this.ctx),c=new O(this.ctx),d=null;if(l.enabled){d=h.group({class:"apexcharts-data-labels"});var g=l.offsetX,u=l.offsetY,f=i+g,p=a+parseFloat(l.style.fontSize)/3+u;c.plotDataLabelsText({x:f,y:p,text:e,i:s,j:r,color:o.foreColor,parent:d,fontSize:n,dataLabelsConfig:l})}return d}},{key:"addListeners",value:function(t){var e=new m(this.ctx);t.node.addEventListener("mouseenter",e.pathMouseEnter.bind(this,t)),t.node.addEventListener("mouseleave",e.pathMouseLeave.bind(this,t)),t.node.addEventListener("mousedown",e.pathMouseDown.bind(this,t))}}]),t}(),St=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.xRatio=i.xRatio,this.yRatio=i.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new At(e),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return r(t,[{key:"draw",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:"apexcharts-heatmap"});a.attr("clip-path","url(#gridRectMask".concat(e.globals.cuid,")"));var s=e.globals.gridWidth/e.globals.dataPoints,r=e.globals.gridHeight/e.globals.series.length,o=0,n=!1;this.negRange=this.helpers.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(n=!0,l.reverse());for(var h=n?0:l.length-1;n?h=0;n?h++:h--){var c=i.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:x.escapeString(e.globals.seriesNames[h]),rel:h+1,"data:realIndex":h});if(this.ctx.series.addCollapsedClassToSeries(c,h),e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new v(this.ctx).dropShadow(c,d,h)}for(var g=0,u=e.config.plotOptions.heatmap.shadeIntensity,f=0;f-1&&this.pieClicked(d),i.config.dataLabels.enabled){var A=w.x,S=w.y,C=100*u/this.fullAngle+"%";if(0!==u&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabelthis.fullAngle?e.endAngle=e.endAngle-(a+o):a+o=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(n=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(n)>this.fullAngle&&(n-=this.fullAngle);var l=Math.PI*(n-90)/180,h=e.centerX+s*Math.cos(o),c=e.centerY+s*Math.sin(o),d=e.centerX+s*Math.cos(l),g=e.centerY+s*Math.sin(l),u=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,n),f=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,r),p=a>180?1:0,b=["M",h,c,"A",s,s,0,p,1,d,g];return"donut"===e.chartType?[].concat(b,["L",u.x,u.y,"A",e.donutSize,e.donutSize,0,p,0,f.x,f.y,"L",h,c,"z"]).join(" "):"pie"===e.chartType||"polarArea"===e.chartType?[].concat(b,["L",e.centerX,e.centerY,"L",h,c]).join(" "):[].concat(b).join(" ")}},{key:"drawPolarElements",value:function(t){var e=this.w,i=new _(this.ctx),a=new m(this.ctx),s=new Ct(this.ctx),r=a.group(),o=a.group(),n=i.niceScale(0,Math.ceil(this.maxY),e.config.yaxis[0].tickAmount,0,!0),l=n.result.reverse(),h=n.result.length;this.maxY=n.niceMax;for(var c=e.globals.radialSize,d=c/(h-1),g=0;g1&&t.total.show&&(s=t.total.color);var o=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"),n=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");i=(0,t.value.formatter)(i,r),a||"function"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=t.name.formatter(e,l,r),null!==o&&(o.textContent=e),null!==n&&(n.textContent=i),null!==o&&(o.style.fill=s)}},{key:"printDataLabelsInner",value:function(t,e){var i=this.w,a=t.getAttribute("data:value"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute("rel"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");null!==r&&(r.style.opacity=1)}},{key:"drawSpokes",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var r=[],o=360/i.globals.series.length,n=0;n1)o&&!e.total.showAlways?l({makeSliceOut:!1,printLabel:!0}):this.printInnerLabels(e,e.total.label,e.total.formatter(s));else if(l({makeSliceOut:!1,printLabel:!0}),!o)if(s.globals.selectedDataPoints.length&&s.globals.series.length>1)if(s.globals.selectedDataPoints[0].length>0){var h=s.globals.selectedDataPoints[0],c=s.globals.dom.baseEl.querySelector(".apexcharts-".concat(this.chartType.toLowerCase(),"-slice-").concat(h));this.printDataLabelsInner(c,e)}else r&&s.globals.selectedDataPoints.length&&0===s.globals.selectedDataPoints[0].length&&(r.style.opacity=0);else r&&s.globals.series.length>1&&(r.style.opacity=0)}}]),t}(),Pt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0;var i=this.w;this.graphics=new m(this.ctx),this.lineColorArr=void 0!==i.globals.stroke.colors?i.globals.stroke.colors:i.globals.colors,this.defaultSize=i.globals.svgHeight0&&(p=i.getPreviousPath(n));for(var b=0;b=10?t.x>0?(i="start",a+=10):t.x<0&&(i="end",a-=10):i="middle",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:"getPreviousPath",value:function(t){for(var e=this.w,i=null,a=0;a0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:"getDataPointsPos",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s=360&&(g=360-Math.abs(this.startAngle)-.1);var u=i.drawPath({d:"",stroke:c,strokeWidth:o*parseInt(h.strokeWidth,10)/100,fill:"none",strokeOpacity:h.opacity,classes:"apexcharts-radialbar-area"});if(h.dropShadow.enabled){var f=h.dropShadow;s.dropShadow(u,f)}l.add(u),u.attr("id","apexcharts-radialbarTrack-"+n),this.animatePaths(u,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:d,size:t.size,i:n,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:"drawArcs",value:function(t){var e=this.w,i=new m(this.ctx),a=new R(this.ctx),s=new v(this.ctx),r=i.group(),o=this.getStrokeWidth(t);t.size=t.size-o/2;var n=e.config.plotOptions.radialBar.hollow.background,l=t.size-o*t.series.length-this.margin*t.series.length-o*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(n=this.drawHollowImage(t,r,l,n));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:n||"transparent"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var g=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(g=0);var u=null;this.radialDataLabels.show&&(u=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:g})),"back"===e.config.plotOptions.radialBar.hollow.position&&(r.add(c),u&&r.add(u));var f=!1;e.config.plotOptions.radialBar.inverseOrder&&(f=!0);for(var p=f?t.series.length-1:0;f?p>=0:p100?100:t.series[p])/100,S=Math.round(this.totalAngle*A)+this.startAngle,C=void 0;e.globals.dataChanged&&(k=this.startAngle,C=Math.round(this.totalAngle*x.negToZero(e.globals.previousPaths[p])/100)+k),Math.abs(S)+Math.abs(w)>=360&&(S-=.01),Math.abs(C)+Math.abs(k)>=360&&(C-=.01);var L=S-w,P=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[p]:e.config.stroke.dashArray,T=i.drawPath({d:"",stroke:y,strokeWidth:o,fill:"none",fillOpacity:e.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+p,strokeDashArray:P});if(m.setAttrs(T.node,{"data:angle":L,"data:value":t.series[p]}),e.config.chart.dropShadow.enabled){var M=e.config.chart.dropShadow;s.dropShadow(T,M,p)}s.setSelectionFilter(T,0,p),this.addListeners(T,this.radialDataLabels),b.add(T),T.attr({index:0,j:p});var I=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(I=e.config.chart.animations.speed),e.globals.dataChanged&&(I=e.config.chart.animations.dynamicAnimation.speed),this.animDur=I/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(T,{centerX:t.centerX,centerY:t.centerY,endAngle:S,startAngle:w,prevEndAngle:C,prevStartAngle:k,size:t.size,i:p,totalItems:2,animBeginArr:this.animBeginArr,dur:I,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:r,elHollow:c,dataLabels:u}}},{key:"drawHollow",value:function(t){var e=new m(this.ctx).drawCircle(2*t.size);return e.attr({class:"apexcharts-radialbar-hollow",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:"drawHollowImage",value:function(t,e,i,a){var s=this.w,r=new R(this.ctx),o=x.randomId(),n=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)r.clippedImgArea({width:i,height:i,image:n,patternID:"pattern".concat(s.globals.cuid).concat(o)}),a="url(#pattern".concat(s.globals.cuid).concat(o,")");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(c)}else{var d=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)}));e.add(d)}}return a}},{key:"getStrokeWidth",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}}]),i}(Lt),Mt=function(t){n(s,t);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:"draw",value:function(t,i){var a=this.w,s=new m(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=a.globals.seriesRangeStart,this.seriesRangeEnd=a.globals.seriesRangeEnd,this.barHelpers.initVariables(t);for(var r=s.group({class:"apexcharts-rangebar-series apexcharts-plot-series"}),o=0;o0&&(this.visibleI=this.visibleI+1);var p=0,b=0;this.yRatio.length>1&&(this.yaxisIndex=u);var v=this.barHelpers.initialPositions();d=v.y,h=v.zeroW,c=v.x,b=v.barWidth,n=v.xDivision,l=v.zeroH;for(var y=s.group({class:"apexcharts-datalabels","data:realIndex":u}),w=s.group({class:"apexcharts-rangebar-goals-markers",style:"pointer-events: none"}),k=0;k0}));return a=l.config.plotOptions.bar.rangeBarGroupRows?s+o*g:s+r*this.visibleI+o*g,u>-1&&!l.config.plotOptions.bar.rangeBarOverlap&&(h=l.globals.seriesRange[e][u].overlaps).indexOf(c)>-1&&(a=(r=n.barHeight/h.length)*this.visibleI+o*(100-parseInt(this.barOptions.barHeight,10))/100/2+r*(this.visibleI+h.indexOf(c))+o*g),{barYPosition:a,barHeight:r}}},{key:"drawRangeColumnPaths",value:function(t){var e=t.indexes,i=t.x;t.strokeWidth;var a=t.xDivision,s=t.barWidth,r=t.zeroH,o=this.w,n=e.i,l=e.j,h=this.yRatio[this.yaxisIndex],c=e.realIndex,d=this.getRangeValue(c,l),g=Math.min(d.start,d.end),u=Math.max(d.start,d.end);o.globals.isXNumeric&&(i=(o.globals.seriesX[n][l]-o.globals.minX)/this.xRatio-s/2);var f=i+s*this.visibleI;void 0===this.series[n][l]||null===this.series[n][l]?g=r:(g=r-g/h,u=r-u/h);var p=Math.abs(u-g),x=this.barHelpers.getColumnPaths({barXPosition:f,barWidth:s,y1:g,y2:u,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:e.realIndex,i:c,j:l,w:o});return o.globals.isXNumeric||(i+=a),{pathTo:x.pathTo,pathFrom:x.pathFrom,barHeight:p,x:i,y:u,goalY:this.barHelpers.getGoalValues("y",null,r,n,l),barXPosition:f}}},{key:"drawRangeBarPaths",value:function(t){var e=t.indexes,i=t.y,a=t.y1,s=t.y2,r=t.yDivision,o=t.barHeight,n=t.barYPosition,l=t.zeroW,h=this.w,c=l+a/this.invertedYRatio,d=l+s/this.invertedYRatio,g=Math.abs(d-c),u=this.barHelpers.getBarpaths({barYPosition:n,barHeight:o,x1:c,x2:d,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:e.realIndex,realIndex:e.realIndex,j:e.j,w:h});return h.globals.isXNumeric||(i+=r),{pathTo:u.pathTo,pathFrom:u.pathFrom,barWidth:g,x:d,goalX:this.barHelpers.getGoalValues("x",l,null,e.realIndex,e.j),y:i}}},{key:"getRangeValue",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}}]),s}(yt),It=function(){function t(e){a(this,t),this.w=e.w,this.lineCtx=e}return r(t,[{key:"sameValueSeriesFix",value:function(t,e){var i=this.w;if(("gradient"===i.config.fill.type||"gradient"===i.config.fill.type[t])&&new y(this.lineCtx.ctx,i).seriesHaveSameValues(t)){var a=e[t].slice();a[a.length-1]=a[a.length-1]+1e-6,e[t]=a}return e}},{key:"calculatePoints",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,r=t.i,o=t.j,n=t.prevY,l=this.w,h=[],c=[];if(0===o){var d=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;l.globals.isXNumeric&&(d=(l.globals.seriesX[i][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),h.push(d),c.push(x.isNumber(e[r][0])?n+l.config.markers.offsetY:null),h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null)}else h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null);return{x:h,y:c}}},{key:"checkPreviousPaths",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,r=0;r0&&parseInt(o.realIndex,10)===parseInt(a,10)&&("line"===o.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):"area"===o.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:"determineFirstPrevY",value:function(t){var e,i=t.i,a=t.series,s=t.prevY,r=t.lineYPosition,o=this.w;if(void 0!==(null===(e=a[i])||void 0===e?void 0:e[0]))s=(r=o.config.chart.stacked&&i>0?this.lineCtx.prevSeriesY[i-1][0]:this.lineCtx.zeroY)-a[i][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]+2*(this.lineCtx.isReversed?a[i][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]:0);else if(o.config.chart.stacked&&i>0&&void 0===a[i][0])for(var n=i-1;n>=0;n--)if(null!==a[n][0]&&void 0!==a[n][0]){s=r=this.lineCtx.prevSeriesY[n][0];break}return{prevY:s,lineYPosition:r}}}]),t}(),zt=function(){function t(e,i,s){a(this,t),this.ctx=e,this.w=e.w,this.xyRatios=i,this.pointsChart=!("bubble"!==this.w.config.chart.type&&"scatter"!==this.w.config.chart.type)||s,this.scatter=new H(this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new It(this),this.markers=new D(this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0}return r(t,[{key:"draw",value:function(t,i,a,s){var r=this.w,o=new m(this.ctx),n=r.globals.comboCharts?i:r.config.chart.type,l=o.group({class:"apexcharts-".concat(n,"-series apexcharts-plot-series")}),h=new y(this.ctx,r);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,t=h.getLogSeries(t),this.yRatio=h.getLogYRatios(this.yRatio);for(var c=[],d=0;d0&&(p=(r.globals.seriesX[g][0]-r.globals.minX)/this.xRatio),f.push(p);var x,b=p,v=void 0,w=b,k=this.zeroY,A=this.zeroY;k=this.lineHelpers.determineFirstPrevY({i:d,series:t,prevY:k,lineYPosition:0}).prevY,u.push(k),x=k;"rangeArea"===n&&(v=A=this.lineHelpers.determineFirstPrevY({i:d,series:s,prevY:A,lineYPosition:0}).prevY);var S={type:n,series:t,realIndex:g,i:d,x:p,y:1,pX:b,pY:x,pathsFrom:this._calculatePathsFrom({type:n,series:t,i:d,realIndex:g,prevX:w,prevY:k,prevY2:A}),linePaths:[],areaPaths:[],seriesIndex:a,lineYPosition:0,xArrj:f,yArrj:u,seriesRangeEnd:s},C=this._iterateOverDataPoints(e(e({},S),{},{iterations:"rangeArea"===n?t[d].length-1:void 0,isRangeStart:!0}));if("rangeArea"===n){var L=this._calculatePathsFrom({series:s,i:d,realIndex:g,prevX:w,prevY:A}),P=this._iterateOverDataPoints(e(e({},S),{},{series:s,pY:v,pathsFrom:L,iterations:s[d].length-1,isRangeStart:!1}));C.linePaths[0]=P.linePath+C.linePath,C.pathFromLine=P.pathFromLine+C.pathFromLine}this._handlePaths({type:n,realIndex:g,i:d,paths:C}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),c.push(this.elSeries)}if(r.config.chart.stacked)for(var T=c.length;T>0;T--)l.add(c[T-1]);else for(var M=0;M1&&(this.yaxisIndex=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||"end"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:"apexcharts-series",seriesName:x.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:"apexcharts-series-markers-wrap","data:realIndex":i}),this.elDataLabelsWrap=s.group({class:"apexcharts-datalabels","data:realIndex":i});var r=t[e].length===a.globals.dataPoints;this.elSeries.attr({"data:longestSeries":r,rel:e+1,"data:realIndex":i}),this.appendPathFrom=!0}},{key:"_calculatePathsFrom",value:function(t){var e,i,a,s,r=t.type,o=t.series,n=t.i,l=t.realIndex,h=t.prevX,c=t.prevY,d=t.prevY2,g=this.w,u=new m(this.ctx);if(null===o[n][0]){for(var f=0;f0){var p=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:l});a=p.pathFromLine,s=p.pathFromArea}return{prevX:h,prevY:c,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:"_handlePaths",value:function(t){var i=t.type,a=t.realIndex,s=t.i,r=t.paths,o=this.w,n=new m(this.ctx),l=new R(this.ctx);this.prevSeriesY.push(r.yArrj),o.globals.seriesXvalues[a]=r.xArrj,o.globals.seriesYvalues[a]=r.yArrj;var h=o.config.forecastDataPoints;if(h.count>0&&"rangeArea"!==i){var c=o.globals.seriesXvalues[a][o.globals.seriesXvalues[a].length-h.count-1],d=n.drawRect(c,0,o.globals.gridWidth,o.globals.gridHeight,0);o.globals.dom.elForecastMask.appendChild(d.node);var g=n.drawRect(0,0,c,o.globals.gridHeight,0);o.globals.dom.elNonForecastMask.appendChild(g.node)}this.pointsChart||o.globals.delayedElements.push({el:this.elPointsMain.node,index:a});var u={i:s,realIndex:a,animationDelay:s,initialSpeed:o.config.chart.animations.speed,dataChangeSpeed:o.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(i)};if("area"===i)for(var f=l.fillPath({seriesNumber:a}),p=0;p0&&"rangeArea"!==i){var S=n.renderPaths(k);S.node.setAttribute("stroke-dasharray",h.dashArray),h.strokeWidth&&S.node.setAttribute("stroke-width",h.strokeWidth),this.elSeries.add(S),S.attr("clip-path","url(#forecastMask".concat(o.globals.cuid,")")),A.attr("clip-path","url(#nonForecastMask".concat(o.globals.cuid,")"))}}}}},{key:"_iterateOverDataPoints",value:function(t){var e=t.type,i=t.series,a=t.iterations,s=t.realIndex,r=t.i,o=t.x,n=t.y,l=t.pX,h=t.pY,c=t.pathsFrom,d=t.linePaths,g=t.areaPaths,u=t.seriesIndex,f=t.lineYPosition,p=t.xArrj,b=t.yArrj,v=t.isRangeStart,y=t.seriesRangeEnd,w=this.w,k=new m(this.ctx),A=this.yRatio,S=c.prevY,C=c.linePath,L=c.areaPath,P=c.pathFromLine,T=c.pathFromArea,M=x.isNumber(w.globals.minYArr[s])?w.globals.minYArr[s]:w.globals.minY;a||(a=w.globals.dataPoints>1?w.globals.dataPoints-1:w.globals.dataPoints);for(var I=n,z=0;z0&&w.globals.collapsedSeries.length-1){e--;break}return e>=0?e:0}(r-1)][z+1]}else f=this.zeroY;else f=this.zeroY;X?n=f-M/A[this.yaxisIndex]+2*(this.isReversed?M/A[this.yaxisIndex]:0):(n=f-i[r][z+1]/A[this.yaxisIndex]+2*(this.isReversed?i[r][z+1]/A[this.yaxisIndex]:0),"rangeArea"===e&&(I=f-y[r][z+1]/A[this.yaxisIndex]+2*(this.isReversed?y[r][z+1]/A[this.yaxisIndex]:0))),p.push(o),b.push(n);var Y=this.lineHelpers.calculatePoints({series:i,x:o,y:n,realIndex:s,i:r,j:z,prevY:S}),F=this._createPaths({type:e,series:i,i:r,realIndex:s,j:z,x:o,y:n,y2:I,pX:l,pY:h,linePath:C,areaPath:L,linePaths:d,areaPaths:g,seriesIndex:u,isRangeStart:v});g=F.areaPaths,d=F.linePaths,l=F.pX,h=F.pY,L=F.areaPath,C=F.linePath,this.appendPathFrom&&(P+=k.line(o,this.zeroY),T+=k.line(o,this.zeroY)),this.handleNullDataPoints(i,Y,r,z,s),this._handleMarkersAndLabels({type:e,pointsPos:Y,i:r,j:z,realIndex:s,isRangeStart:v})}return{yArrj:b,xArrj:p,pathFromArea:T,areaPaths:g,pathFromLine:P,linePaths:d,linePath:C,areaPath:L}}},{key:"_handleMarkersAndLabels",value:function(t){var e=t.type,i=t.pointsPos,a=t.isRangeStart,s=t.i,r=t.j,o=t.realIndex,n=this.w,l=new O(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,r,{realIndex:o,pointsPos:i,zRatio:this.zRatio,elParent:this.elPointsMain});else{n.globals.series[s].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");var h=this.markers.plotChartMarkers(i,o,r+1);null!==h&&this.elPointsMain.add(h)}var c=l.drawDataLabel({type:e,isRangeStart:a,pos:i,i:o,j:r+1});null!==c&&this.elDataLabelsWrap.add(c)}},{key:"_createPaths",value:function(t){var e=t.type,i=t.series,a=t.i,s=t.realIndex,r=t.j,o=t.x,n=t.y,l=t.y2,h=t.pX,c=t.pY,d=t.linePath,g=t.areaPath,u=t.linePaths,f=t.areaPaths,p=t.seriesIndex,x=t.isRangeStart,b=this.w,v=new m(this.ctx),y=b.config.stroke.curve,w=this.areaBottomY;if(Array.isArray(b.config.stroke.curve)&&(y=Array.isArray(p)?b.config.stroke.curve[p[a]]:b.config.stroke.curve[a]),"smooth"===y){var k=.35*(o-h);b.globals.hasNullValues?(null!==i[a][r]&&(null!==i[a][r+1]?(d=v.move(h,c)+v.curve(h+k,c,o-k,n,o+1,n),g=v.move(h+1,c)+v.curve(h+k,c,o-k,n,o+1,n)+v.line(o,w)+v.line(h,w)+"z"):(d=v.move(h,c),g=v.move(h,c)+"z")),u.push(d),f.push(g)):(d+=v.curve(h+k,c,o-k,n,o,n),g+=v.curve(h+k,c,o-k,n,o,n)),h=o,c=n,r===i[a].length-2&&(g=g+v.curve(h,c,o,n,o,w)+v.move(o,n)+"z","rangeArea"===e&&x?d=d+v.curve(h,c,o,n,o,l)+v.move(o,l)+"z":b.globals.hasNullValues||(u.push(d),f.push(g)))}else{if(null===i[a][r+1]){d+=v.move(o,n);var A=b.globals.isXNumeric?(b.globals.seriesX[s][r]-b.globals.minX)/this.xRatio:o-this.xDivision;g=g+v.line(A,w)+v.move(o,n)+"z"}null===i[a][r]&&(d+=v.move(o,n),g+=v.move(o,w)),"stepline"===y?(d=d+v.line(o,null,"H")+v.line(null,n,"V"),g=g+v.line(o,null,"H")+v.line(null,n,"V")):"straight"===y&&(d+=v.line(o,n),g+=v.line(o,n)),r===i[a].length-2&&(g=g+v.line(o,w)+v.move(o,n)+"z","rangeArea"===e&&x?d=d+v.line(o,l)+v.move(o,l)+"z":(u.push(d),f.push(g)))}return{linePaths:u,areaPaths:f,pX:h,pY:c,linePath:d,areaPath:g}}},{key:"handleNullDataPoints",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var o=this.markers.plotChartMarkers(e,s,a+1,this.strokeWidth-r.config.markers.strokeWidth/2,!0);null!==o&&this.elPointsMain.add(o)}}}]),t}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,o=r(t)/this.height,n=r(t)/this.width;if(this.width>=this.height)for(e=0;e=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,o=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,o)}return i}}function e(e,a,s,o,n){o=void 0===o?0:o,n=void 0===n?0:n;var l=i(function(t,e){var i,a=[],s=e/r(t);for(i=0;i=o}(e,l=t[0],n)?(e.push(l),i(t.slice(1),e,s,o)):(h=s.cutArea(r(e),o),o.push(s.getCoordinates(e)),i(t,[],h,o)),o;o.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;er-a&&l.width<=o-s){var h=n.rotateAroundCenter(t.node);t.node.setAttribute("transform","rotate(-90 ".concat(h.x," ").concat(h.y,")"))}}},{key:"animateTreemap",value:function(t,e,i,a){var s=new b(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}]),t}(),Ft=86400,Rt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return r(t,[{key:"calculateTimeScaleTicks",value:function(t,i){var a=this,s=this.w;if(s.globals.allSeriesCollapsed)return s.globals.labels=[],s.globals.timescaleLabels=[],[];var r=new T(this.ctx),o=(i-t)/864e5;this.determineInterval(o),s.globals.disableZoomIn=!1,s.globals.disableZoomOut=!1,o<.00011574074074074075?s.globals.disableZoomIn=!0:o>5e4&&(s.globals.disableZoomOut=!0);var n=r.getTimeUnitsfromTimestamp(t,i,this.utc),l=s.globals.gridWidth/o,h=l/24,c=h/60,d=c/60,g=Math.floor(24*o),u=Math.floor(1440*o),f=Math.floor(o*Ft),p=Math.floor(o),x=Math.floor(o/30),b=Math.floor(o/365),v={minMillisecond:n.minMillisecond,minSecond:n.minSecond,minMinute:n.minMinute,minHour:n.minHour,minDate:n.minDate,minMonth:n.minMonth,minYear:n.minYear},m={firstVal:v,currentMillisecond:v.minMillisecond,currentSecond:v.minSecond,currentMinute:v.minMinute,currentHour:v.minHour,currentMonthDate:v.minDate,currentDate:v.minDate,currentMonth:v.minMonth,currentYear:v.minYear,daysWidthOnXAxis:l,hoursWidthOnXAxis:h,minutesWidthOnXAxis:c,secondsWidthOnXAxis:d,numberOfSeconds:f,numberOfMinutes:u,numberOfHours:g,numberOfDays:p,numberOfMonths:x,numberOfYears:b};switch(this.tickInterval){case"years":this.generateYearScale(m);break;case"months":case"half_year":this.generateMonthScale(m);break;case"months_days":case"months_fortnight":case"days":case"week_days":this.generateDayScale(m);break;case"hours":this.generateHourScale(m);break;case"minutes_fives":case"minutes":this.generateMinuteScale(m);break;case"seconds_tens":case"seconds_fives":case"seconds":this.generateSecondScale(m)}var y=this.timeScaleArray.map((function(t){var i={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return"month"===t.unit?e(e({},i),{},{day:1,value:t.value+1}):"day"===t.unit||"hour"===t.unit?e(e({},i),{},{value:t.value}):"minute"===t.unit?e(e({},i),{},{value:t.value,minute:t.value}):"second"===t.unit?e(e({},i),{},{value:t.value,minute:t.minute,second:t.second}):t}));return y.filter((function(t){var e=1,i=Math.ceil(s.globals.gridWidth/120),r=t.value;void 0!==s.config.xaxis.tickAmount&&(i=s.config.xaxis.tickAmount),y.length>i&&(e=Math.floor(y.length/i));var o=!1,n=!1;switch(a.tickInterval){case"years":"year"===t.unit&&(o=!0);break;case"half_year":e=7,"year"===t.unit&&(o=!0);break;case"months":e=1,"year"===t.unit&&(o=!0);break;case"months_fortnight":e=15,"year"!==t.unit&&"month"!==t.unit||(o=!0),30===r&&(n=!0);break;case"months_days":e=10,"month"===t.unit&&(o=!0),30===r&&(n=!0);break;case"week_days":e=8,"month"===t.unit&&(o=!0);break;case"days":e=1,"month"===t.unit&&(o=!0);break;case"hours":"day"===t.unit&&(o=!0);break;case"minutes_fives":case"seconds_fives":r%5!=0&&(n=!0);break;case"seconds_tens":r%10!=0&&(n=!0)}if("hours"===a.tickInterval||"minutes_fives"===a.tickInterval||"seconds_tens"===a.tickInterval||"seconds_fives"===a.tickInterval){if(!n)return!0}else if((r%e==0||o)&&!n)return!0}))}},{key:"recalcDimensionsBasedOnFormat",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new ot(this.ctx).plotCoords()}},{key:"determineInterval",value:function(t){var e=24*t,i=60*e;switch(!0){case t/365>5:this.tickInterval="years";break;case t>800:this.tickInterval="half_year";break;case t>180:this.tickInterval="months";break;case t>90:this.tickInterval="months_fortnight";break;case t>60:this.tickInterval="months_days";break;case t>30:this.tickInterval="week_days";break;case t>2:this.tickInterval="days";break;case e>2.4:this.tickInterval="hours";break;case i>15:this.tickInterval="minutes_fives";break;case i>5:this.tickInterval="minutes";break;case i>1:this.tickInterval="seconds_tens";break;case 60*i>20:this.tickInterval="seconds_fives";break;default:this.tickInterval="seconds"}}},{key:"generateYearScale",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,r=t.numberOfYears,o=e.minYear,n=0,l=new T(this.ctx),h="year";if(e.minDate>1||e.minMonth>0){var c=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);n=(l.determineDaysOfYear(e.minYear)-c+1)*s,o=e.minYear+1,this.timeScaleArray.push({position:n,value:o,unit:h,year:o,month:x.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:n,value:o,unit:h,year:a,month:x.monthMod(i+1)});for(var d=o,g=n,u=0;u1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*r,n=x.monthMod(a+1);var g=s+d,u=x.monthMod(n),f=n;0===n&&(c="year",f=g,u=1,g+=d+=1),this.timeScaleArray.push({position:l,value:f,unit:c,year:g,month:u})}else this.timeScaleArray.push({position:l,value:n,unit:c,year:s,month:x.monthMod(a)});for(var p=n+1,b=l,v=0,m=1;vo.determineDaysOfMonths(e+1,i)?(h=1,n="month",g=e+=1,e):e},d=(24-e.minHour)*s,g=l,u=c(h,i,a);0===e.minHour&&1===e.minDate?(d=0,g=x.monthMod(e.minMonth),n="month",h=e.minDate,r++):1!==e.minDate&&0===e.minHour&&0===e.minMinute&&(d=0,l=e.minDate,g=l,u=c(h=l,i,a)),this.timeScaleArray.push({position:d,value:g,unit:n,year:this._getYear(a,u,0),month:x.monthMod(u),day:h});for(var f=d,p=0;pn.determineDaysOfMonths(e+1,s)&&(p=1,e+=1),{month:e,date:p}},c=function(t,e){return t>n.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-(e.minMinute+e.minSecond/60),g=d*r,u=e.minHour+1,f=u+1;60===d&&(g=0,f=(u=e.minHour)+1);var p=i,b=c(p,a);this.timeScaleArray.push({position:g,value:u,unit:l,day:p,hour:f,year:s,month:x.monthMod(b)});for(var v=g,m=0;m=24)f=0,l="day",b=h(p+=1,b).month,b=c(p,b);var y=this._getYear(s,b,0);v=60*r+v;var w=0===f?p:f;this.timeScaleArray.push({position:v,value:w,unit:l,hour:f,day:p,year:y,month:x.monthMod(b)}),f++}}},{key:"generateMinuteScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.minutesWidthOnXAxis,h=t.secondsWidthOnXAxis,c=t.numberOfMinutes,d=a+1,g=r,u=o,f=n,p=s,b=(60-i-e/1e3)*h,v=0;v=60&&(d=0,24===(p+=1)&&(p=0)),this.timeScaleArray.push({position:b,value:d,unit:"minute",hour:p,minute:d,day:g,year:this._getYear(f,u,0),month:x.monthMod(u)}),b+=l,d++}},{key:"generateSecondScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.secondsWidthOnXAxis,h=t.numberOfSeconds,c=i+1,d=a,g=r,u=o,f=n,p=s,b=(1e3-e)/1e3*l,v=0;v=60&&(c=0,++d>=60&&(d=0,24===++p&&(p=0))),this.timeScaleArray.push({position:b,value:c,unit:"second",hour:p,minute:d,second:c,day:g,year:this._getYear(f,u,0),month:x.monthMod(u)}),b+=l,c++}},{key:"createRawDateString",value:function(t,e){var i=t.year;return 0===t.month&&(t.month=1),i+="-"+("0"+t.month.toString()).slice(-2),"day"===t.unit?i+="day"===t.unit?"-"+("0"+e).slice(-2):"-01":i+="-"+("0"+(t.day?t.day:"1")).slice(-2),"hour"===t.unit?i+="hour"===t.unit?"T"+("0"+e).slice(-2):"T00":i+="T"+("0"+(t.hour?t.hour:"0")).slice(-2),"minute"===t.unit?i+=":"+("0"+e).slice(-2):i+=":"+(t.minute?("0"+t.minute).slice(-2):"00"),"second"===t.unit?i+=":"+("0"+e).slice(-2):i+=":00",this.utc&&(i+=".000Z"),i}},{key:"formatDates",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new T(e.ctx),r=e.createRawDateString(t,a),o=s.getDate(s.parseDate(r));if(e.utc||(o=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var n="dd MMM",l=i.config.xaxis.labels.datetimeFormatter;"year"===t.unit&&(n=l.year),"month"===t.unit&&(n=l.month),"day"===t.unit&&(n=l.day),"hour"===t.unit&&(n=l.hour),"minute"===t.unit&&(n=l.minute),"second"===t.unit&&(n=l.second),a=s.formatDate(o,n)}else a=s.formatDate(o,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:"removeOverlappingTS",value:function(t){var e,i=this,a=new m(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,o=t.map((function(o,n){if(n>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,h=t[r].position;return o.position>h+l+10?(r=n,o):null}return o}));return o=o.filter((function(t){return null!==t}))}},{key:"_getYear",value:function(t,e,i){return t+Math.floor(e/12)+i}}]),t}(),Dt=function(){function t(e,i){a(this,t),this.ctx=i,this.w=i.w,this.el=e}return r(t,[{key:"setupElements",value:function(){var t=this.w.globals,e=this.w.config,i=e.chart.type;t.axisCharts=["line","area","bar","rangeBar","rangeArea","candlestick","boxPlot","scatter","bubble","radar","heatmap","treemap"].indexOf(i)>-1,t.xyCharts=["line","area","bar","rangeBar","rangeArea","candlestick","boxPlot","scatter","bubble"].indexOf(i)>-1,t.isBarHorizontal=("bar"===e.chart.type||"rangeBar"===e.chart.type||"boxPlot"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=".apexcharts"+t.chartID,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement("div"),m.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:"apexcharts-canvas "+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:"apexcharts-svg","xmlns:data":"ApexChartsNS",transform:"translate(".concat(e.chart.offsetX,", ").concat(e.chart.offsetY,")")}),t.dom.Paper.node.style.background=e.chart.background,this.setSVGDimensions(),t.dom.elGraphical=t.dom.Paper.group().attr({class:"apexcharts-inner apexcharts-graphical"}),t.dom.elAnnotations=t.dom.Paper.group().attr({class:"apexcharts-annotations"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.elLegendWrap=document.createElement("div"),t.dom.elLegendWrap.classList.add("apexcharts-legend"),t.dom.elWrap.appendChild(t.dom.elLegendWrap),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:"plotChartType",value:function(t,e){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},o={series:[],i:[]},n={series:[],i:[]},l={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]},d={series:[],i:[]},g={series:[],i:[]},u={series:[],seriesRangeEnd:[],i:[]};s.series.map((function(e,f){var p=0;void 0!==t[f].type?("column"===t[f].type||"bar"===t[f].type?(s.series.length>1&&a.plotOptions.bar.horizontal&&console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"),h.series.push(e),h.i.push(f),p++,i.globals.columnSeries=h.series):"area"===t[f].type?(o.series.push(e),o.i.push(f),p++):"line"===t[f].type?(r.series.push(e),r.i.push(f),p++):"scatter"===t[f].type?(n.series.push(e),n.i.push(f)):"bubble"===t[f].type?(l.series.push(e),l.i.push(f),p++):"candlestick"===t[f].type?(c.series.push(e),c.i.push(f),p++):"boxPlot"===t[f].type?(d.series.push(e),d.i.push(f),p++):"rangeBar"===t[f].type?(g.series.push(e),g.i.push(f),p++):"rangeArea"===t[f].type?(u.series.push(s.seriesRangeStart[f]),u.seriesRangeEnd.push(s.seriesRangeEnd[f]),u.i.push(f),p++):console.warn("You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble"),p>1&&(s.comboCharts=!0)):(r.series.push(e),r.i.push(f))}));var f=new zt(this.ctx,e),p=new kt(this.ctx,e);this.ctx.pie=new Lt(this.ctx);var x=new Tt(this.ctx);this.ctx.rangeBar=new Mt(this.ctx,e);var b=new Pt(this.ctx),v=[];if(s.comboCharts){if(o.series.length>0&&v.push(f.draw(o.series,"area",o.i)),h.series.length>0)if(i.config.chart.stacked){var m=new wt(this.ctx,e);v.push(m.draw(h.series,h.i))}else this.ctx.bar=new yt(this.ctx,e),v.push(this.ctx.bar.draw(h.series,h.i));if(u.series.length>0&&v.push(f.draw(u.series,"rangeArea",u.i,u.seriesRangeEnd)),r.series.length>0&&v.push(f.draw(r.series,"line",r.i)),c.series.length>0&&v.push(p.draw(c.series,c.i)),d.series.length>0&&v.push(p.draw(d.series,d.i)),g.series.length>0&&v.push(this.ctx.rangeBar.draw(g.series,g.i)),n.series.length>0){var y=new zt(this.ctx,e,!0);v.push(y.draw(n.series,"scatter",n.i))}if(l.series.length>0){var w=new zt(this.ctx,e,!0);v.push(w.draw(l.series,"bubble",l.i))}}else switch(a.chart.type){case"line":v=f.draw(s.series,"line");break;case"area":v=f.draw(s.series,"area");break;case"bar":if(a.chart.stacked)v=new wt(this.ctx,e).draw(s.series);else this.ctx.bar=new yt(this.ctx,e),v=this.ctx.bar.draw(s.series);break;case"candlestick":v=new kt(this.ctx,e).draw(s.series);break;case"boxPlot":v=new kt(this.ctx,e).draw(s.series);break;case"rangeBar":v=this.ctx.rangeBar.draw(s.series);break;case"rangeArea":v=f.draw(s.seriesRangeStart,"rangeArea",void 0,s.seriesRangeEnd);break;case"heatmap":v=new St(this.ctx,e).draw(s.series);break;case"treemap":v=new Yt(this.ctx,e).draw(s.series);break;case"pie":case"donut":case"polarArea":v=this.ctx.pie.draw(s.series);break;case"radialBar":v=x.draw(s.series);break;case"radar":v=b.draw(s.series);break;default:v=f.draw(s.series)}return v}},{key:"setSVGDimensions",value:function(){var t=this.w.globals,e=this.w.config;t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=x.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();"%"===a?x.isNumber(i[0])&&(0===i[0].width&&(i=x.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width,10)/100):"px"!==a&&""!==a||(t.svgWidth=parseInt(e.chart.width,10));var s=e.chart.height.toString().split(/[0-9]+/g).pop();if("auto"!==t.svgHeight&&""!==t.svgHeight)if("%"===s){var r=x.getDimensions(this.el.parentNode);t.svgHeight=r[1]*parseInt(e.chart.height,10)/100}else t.svgHeight=parseInt(e.chart.height,10);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth/1.2;if(t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),m.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),"%"!==s){var o=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+o+"px"}t.dom.elWrap.style.width=t.svgWidth+"px",t.dom.elWrap.style.height=t.svgHeight+"px"}},{key:"shiftGraphPosition",value:function(){var t=this.w.globals,e=t.translateY,i={transform:"translate("+t.translateX+", "+e+")"};m.setAttrs(t.dom.elGraphical.node,i)}},{key:"resizeNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,"top"!==t.config.legend.position&&"bottom"!==t.config.legend.position||!t.config.legend.show||t.config.legend.floating||(i=new lt(this.ctx).legendHelpers.getLegendBBox().clwh+10);var s=t.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"),r=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled&&0!==t.config.plotOptions.radialBar.startAngle){var o=x.getBoundingClientRect(s);r=o.bottom;var n=o.bottom-o.top;r=Math.max(2.05*t.globals.radialSize,n)}var l=r+e.translateY+i+a;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute("height",l),t.config.chart.height&&String(t.config.chart.height).indexOf("%")>0||(e.dom.elWrap.style.height=l+"px",m.setAttrs(e.dom.Paper.node,{height:l}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=l+"px")}},{key:"coreCalculations",value:function(){new U(this.ctx).init()}},{key:"resetGlobals",value:function(){var t=this,e=function(){return t.w.config.series.map((function(t){return[]}))},i=new Y,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:"isMultipleY",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:"xySettings",value:function(){var t=null,e=this.w;if(e.globals.axisCharts){if("back"===e.config.xaxis.crosshairs.position)new Q(this.ctx).drawXCrosshairs();if("back"===e.config.yaxis[0].crosshairs.position)new Q(this.ctx).drawYCrosshairs();if("datetime"===e.config.xaxis.type&&void 0===e.config.xaxis.labels.formatter){this.ctx.timeScale=new Rt(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new y(this.ctx).getCalculatedRatios()}return t}},{key:"updateSourceChart",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:"setupBrushHandler",value:function(){var t=this,i=this.w;if(i.config.chart.brush.enabled&&"function"!=typeof i.config.chart.events.selection){var a=i.config.chart.brush.targets||[i.config.chart.brush.target];a.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,"function"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){t.updateSourceChart(i)}),"function"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){t.updateSourceChart(i)})})),i.config.chart.events.selection=function(t,s){a.forEach((function(t){var a=ApexCharts.getChartByID(t),r=x.clone(i.config.yaxis);if(i.config.chart.brush.autoScaleYaxis&&1===a.w.globals.series.length){var o=new _(a);r=o.autoScaleY(a,r,s)}var n=a.w.config.yaxis.reduce((function(t,i,s){return[].concat(u(t),[e(e({},a.w.config.yaxis[s]),{},{min:r[0].min,max:r[0].max})])}),[]);a.ctx.updateHelpers._updateOptions({xaxis:{min:s.xaxis.min,max:s.xaxis.max},yaxis:n},!1,!1,!1,!1)}))}}}}]),t}(),Ht=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"_updateOptions",value:function(t){var e=this,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new Promise((function(n){var l=[e.ctx];r&&(l=e.ctx.getSyncedCharts()),e.ctx.w.globals.isExecCalled&&(l=[e.ctx],e.ctx.w.globals.isExecCalled=!1),l.forEach((function(r,h){var c=r.w;if(c.globals.shouldAnimate=s,a||(c.globals.resized=!0,c.globals.dataChanged=!0,s&&r.series.getPreviousPaths()),t&&"object"===i(t)&&(r.config=new E(t),t=y.extendArrayProps(r.config,t,c),r.w.globals.chartID!==e.ctx.w.globals.chartID&&delete t.series,c.config=x.extend(c.config,t),o&&(c.globals.lastXAxis=t.xaxis?x.clone(t.xaxis):[],c.globals.lastYAxis=t.yaxis?x.clone(t.yaxis):[],c.globals.initialConfig=x.extend({},c.config),c.globals.initialSeries=x.clone(c.config.series),t.series))){for(var d=0;d2&&void 0!==arguments[2]&&arguments[2];return new Promise((function(s){var r,o=i.w;return o.globals.shouldAnimate=e,o.globals.dataChanged=!0,e&&i.ctx.series.getPreviousPaths(),o.globals.axisCharts?(0===(r=t.map((function(t,e){return i._extendSeries(t,e)}))).length&&(r=[{data:[]}]),o.config.series=r):o.config.series=t.slice(),a&&(o.globals.initialConfig.series=x.clone(o.config.series),o.globals.initialSeries=x.clone(o.config.series)),i.ctx.update().then((function(){s(i.ctx)}))}))}},{key:"_extendSeries",value:function(t,i){var a=this.w,s=a.config.series[i];return e(e({},a.config.series[i]),{},{name:t.name?t.name:s&&s.name,color:t.color?t.color:s&&s.color,type:t.type?t.type:s&&s.type,data:t.data?t.data:s&&s.data})}},{key:"toggleDataPointSelection",value:function(t,e){var i=this.w,a=null,s=".apexcharts-series[data\\:realIndex='".concat(t,"']");return i.globals.axisCharts?a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(e,"'], ").concat(s," circle[j='").concat(e,"'], ").concat(s," rect[j='").concat(e,"']")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(t,"']")).members[0],"pie"!==i.config.chart.type&&"polarArea"!==i.config.chart.type&&"donut"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new m(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn("toggleDataPointSelection: Element not found"),null)}},{key:"forceXAxisUpdate",value:function(t){var e=this.w;if(["min","max"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new X(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:"forceYAxisUpdate",value:function(t){return t.chart&&t.chart.stacked&&"100%"===t.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:"revertDefaultAxisMinMax",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)};i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?r(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}]),t}();Xt="undefined"!=typeof window?window:void 0,Et=function(t,e){var a=(void 0!==this?this:t).SVG=function(t){if(a.supported)return t=new a.Doc(t),a.parser.draw||a.prepare(),t};if(a.ns="http://www.w3.org/2000/svg",a.xmlns="http://www.w3.org/2000/xmlns/",a.xlink="http://www.w3.org/1999/xlink",a.svgjs="http://svgjs.dev",a.supported=!0,!a.supported)return!1;a.did=1e3,a.eid=function(t){return"Svgjs"+d(t)+a.did++},a.create=function(t){var i=e.createElementNS(this.ns,t);return i.setAttribute("id",this.eid(t)),i},a.extend=function(){var t,e;e=(t=[].slice.call(arguments)).pop();for(var i=t.length-1;i>=0;i--)if(t[i])for(var s in e)t[i].prototype[s]=e[s];a.Set&&a.Set.inherit&&a.Set.inherit()},a.invent=function(t){var e="function"==typeof t.create?t.create:function(){this.constructor.call(this,a.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&a.extend(e,t.extend),t.construct&&a.extend(t.parent||a.Container,t.construct),e},a.adopt=function(e){return e?e.instance?e.instance:((i="svg"==e.nodeName?e.parentNode instanceof t.SVGElement?new a.Nested:new a.Doc:"linearGradient"==e.nodeName?new a.Gradient("linear"):"radialGradient"==e.nodeName?new a.Gradient("radial"):a[d(e.nodeName)]?new(a[d(e.nodeName)]):new a.Element(e)).type=e.nodeName,i.node=e,e.instance=i,i instanceof a.Doc&&i.namespace().defs(),i.setData(JSON.parse(e.getAttribute("svgjs:data"))||{}),i):null;var i},a.prepare=function(){var t=e.getElementsByTagName("body")[0],i=(t?new a.Doc(t):a.adopt(e.documentElement).nested()).size(2,0);a.parser={body:t||e.documentElement,draw:i.style("opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden").node,poly:i.polyline().node,path:i.path().node,native:a.create("svg")}},a.parser={native:a.create("svg")},e.addEventListener("DOMContentLoaded",(function(){a.parser.draw||a.prepare()}),!1),a.regex={numberAndUnit:/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,rgb:/rgb\((\d+),(\d+),(\d+)\)/,reference:/#([a-z0-9\-_]+)/i,transforms:/\)\s*,?\s*/,whitespace:/\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\s+)?$/,isNumber:/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,isPercent:/^-?[\d\.]+%$/,isImage:/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,delimiter:/[\s,]+/,hyphen:/([^e])\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi,dots:/\./g},a.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s1?1:t,new a.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),a.Color.test=function(t){return t+="",a.regex.isHex.test(t)||a.regex.isRgb.test(t)},a.Color.isRgb=function(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b},a.Color.isColor=function(t){return a.Color.isRgb(t)||a.Color.test(t)},a.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},a.extend(a.Array,{toString:function(){return this.value.join(" ")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),a.PointArray=function(t,e){a.Array.call(this,t,e||[[0,0]])},a.PointArray.prototype=new a.Array,a.PointArray.prototype.constructor=a.PointArray;for(var s={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,["Z"]}},r="mlhvqtcsaz".split(""),o=0,n=r.length;ol);return r},bbox:function(){return a.parser.draw||a.prepare(),a.parser.path.setAttribute("d",this.toString()),a.parser.path.getBBox()}}),a.Number=a.invent({create:function(t,e){this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(a.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),"%"==e[5]?this.value/=100:"s"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof a.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return("%"==this.unit?~~(1e8*this.value)/1e6:"s"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new a.Number(t),new a.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new a.Number(t),new a.Number(this-t,this.unit||t.unit)},times:function(t){return t=new a.Number(t),new a.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new a.Number(t),new a.Number(this/t,this.unit||t.unit)},to:function(t){var e=new a.Number(this);return"string"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new a.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new a.Number(this.destination).minus(this).times(t).plus(this):this}}}),a.Element=a.invent({create:function(t){this._stroke=a.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute("stroke")||this._stroke)},extend:{x:function(t){return this.attr("x",t)},y:function(t){return this.attr("y",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr("width",t)},height:function(t){return this.attr("height",t)},size:function(t,e){var i=u(this,t,e);return this.width(new a.Number(i.width)).height(new a.Number(i.height))},clone:function(t){this.writeDataToDom();var e=x(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr("id",t)},show:function(){return this.style("display","")},hide:function(){return this.style("display","none")},visible:function(){return"none"!=this.style("display")},toString:function(){return this.attr("id")},classes:function(){var t=this.attr("class");return null==t?[]:t.trim().split(a.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!=t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)},reference:function(t){return a.get(this.attr(t))},parent:function(e){var i=this;if(!i.node.parentNode)return null;if(i=a.adopt(i.node.parentNode),!e)return i;for(;i&&i.node instanceof t.SVGElement;){if("string"==typeof e?i.matches(e):i instanceof e)return i;if(!i.node.parentNode||"#document"==i.node.parentNode.nodeName)return null;i=a.adopt(i.node.parentNode)}},doc:function(){return this instanceof a.Doc?this:this.parent(a.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var i=e.createElement("svg");if(!(t&&this instanceof a.Parent))return i.appendChild(t=e.createElement("svg")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),i.innerHTML.replace(/^/,"").replace(/<\/svg>$/,"");i.innerHTML=""+t.replace(/\n/,"").replace(/<([\w:-]+)([^<]+?)\/>/g,"<$1$2>")+"";for(var s=0,r=i.firstChild.childNodes.length;s":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)}},a.morph=function(t){return function(e,i){return new a.MorphObj(e,i).at(t)}},a.Situation=a.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new a.Number(t.duration).valueOf(),this.delay=new a.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),a.FX=a.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(t,e,s){"object"===i(t)&&(e=t.ease,s=t.delay,t=t.duration);var r=new a.Situation({duration:t||1e3,delay:s||0,ease:a.easing[e||"-"]||e});return this.queue(r),this},target:function(t){return t&&t instanceof a.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=t.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){t.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return("function"==typeof t||t instanceof a.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof a.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var i in e.animations){t=this.target()[i](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[i])||(e.animations[i]=[e.animations[i]]);for(var s=t.length;s--;)e.animations[i][s]instanceof a.Number&&(t[s]=new a.Number(t[s])),e.animations[i][s]=t[s].morph(e.animations[i][s])}for(var i in e.attrs)e.attrs[i]=new a.MorphObj(this.target().attr(i),e.attrs[i]);for(var i in e.styles)e.styles[i]=new a.MorphObj(this.target().style(i),e.styles[i]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on("finished.fx",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off("finished.fx",i))})),this._callStart()},during:function(t){var e=this.last(),i=function(i){i.detail.situation==e&&t.call(this,i.detail.pos,a.morph(i.detail.pos),i.detail.eased,e)};return this.target().off("during.fx",i).on("during.fx",i),this.after((function(){this.off("during.fx",i)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off("allfinished.fx",e)};return this.target().off("allfinished.fx",e).on("allfinished.fx",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||"animations"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||ithis.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire("during",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire("finished",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire("allfinished"),this.situations.length||(this.target().off(".fx"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,i=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i[r].apply(i,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.attr.apply(i,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.style.apply(i,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var o=s.transforms.length;r=0;--s)this[m[s]]=null!=t[m[s]]?t[m[s]]:e[m[s]]},extend:{extract:function(){var t=f(this,0,1);f(this,1,0);var e=180/Math.PI*Math.atan2(t.y,t.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new a.Matrix(this)}},clone:function(){return new a.Matrix(this)},morph:function(t){return this.destination=new a.Matrix(t),this},multiply:function(t){return new a.Matrix(this.native().multiply(function(t){return t instanceof a.Matrix||(t=new a.Matrix(t)),t}(t).native()))},inverse:function(){return new a.Matrix(this.native().inverse())},translate:function(t,e){return new a.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=a.parser.native.createSVGMatrix(),e=m.length-1;e>=0;e--)t[m[e]]=this[m[e]];return t},toString:function(){return"matrix("+v(this.a)+","+v(this.b)+","+v(this.c)+","+v(this.d)+","+v(this.e)+","+v(this.f)+")"}},parent:a.Element,construct:{ctm:function(){return new a.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof a.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new a.Matrix(e)}return new a.Matrix(this.node.getScreenCTM())}}}),a.Point=a.invent({create:function(t,e){var a;a=Array.isArray(t)?{x:t[0],y:t[1]}:"object"===i(t)?{x:t.x,y:t.y}:null!=t?{x:t,y:null!=e?e:t}:{x:0,y:0},this.x=a.x,this.y=a.y},extend:{clone:function(){return new a.Point(this)},morph:function(t,e){return this.destination=new a.Point(t,e),this}}}),a.extend(a.Element,{point:function(t,e){return new a.Point(t,e).transform(this.screenCTM().inverse())}}),a.extend(a.Element,{attr:function(t,e,s){if(null==t){for(t={},s=(e=this.node.attributes).length-1;s>=0;s--)t[e[s].nodeName]=a.regex.isNumber.test(e[s].nodeValue)?parseFloat(e[s].nodeValue):e[s].nodeValue;return t}if("object"===i(t))for(var r in t)this.attr(r,t[r]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?a.defaults.attrs[t]:a.regex.isNumber.test(e)?parseFloat(e):e;"stroke-width"==t?this.attr("stroke",parseFloat(e)>0?this._stroke:null):"stroke"==t&&(this._stroke=e),"fill"!=t&&"stroke"!=t||(a.regex.isImage.test(e)&&(e=this.doc().defs().image(e,0,0)),e instanceof a.Image&&(e=this.doc().defs().pattern(0,0,(function(){this.add(e)})))),"number"==typeof e?e=new a.Number(e):a.Color.isColor(e)?e=new a.Color(e):Array.isArray(e)&&(e=new a.Array(e)),"leading"==t?this.leading&&this.leading(e):"string"==typeof s?this.node.setAttributeNS(s,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!=t&&"x"!=t||this.rebuild(t,e)}return this}}),a.extend(a.Element,{transform:function(t,e){var s;return"object"!==i(t)?(s=new a.Matrix(this).extract(),"string"==typeof t?s[t]:s):(s=new a.Matrix(this),e=!!e||!!t.relative,null!=t.a&&(s=e?s.multiply(new a.Matrix(t)):new a.Matrix(t)),this.attr("transform",s))}}),a.extend(a.Element,{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(a.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split("(");return[e[0],e[1].split(a.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return"matrix"==e[0]?t.multiply(p(e[1])):t[e[0]].apply(t,e[1])}),new a.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),a.Transformation=a.invent({create:function(t,e){if(arguments.length>1&&"boolean"!=typeof e)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(t))for(var a=0,s=this.arguments.length;a=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return a.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var i=this.children(),s=0,r=i.length;s=0;i--)e.childNodes[i]instanceof t.SVGElement&&x(e.childNodes[i]);return a.adopt(e).id(a.eid(e.nodeName))}function b(t){return null==t.x&&(t.x=0,t.y=0,t.width=0,t.height=0),t.w=t.width,t.h=t.height,t.x2=t.x+t.width,t.y2=t.y+t.height,t.cx=t.x+t.width/2,t.cy=t.y+t.height/2,t}function v(t){return Math.abs(t)>1e-37?t:0}["fill","stroke"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if("string"==typeof e||a.Color.isRgb(e)||e&&"function"==typeof e.fill)this.attr(t,e);else for(var i=l[t].length-1;i>=0;i--)null!=e[l[t][i]]&&this.attr(l.prefix(t,l[t][i]),e[l[t][i]]);return this},a.extend(a.Element,a.FX,e)})),a.extend(a.Element,a.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr("transform",new a.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr("opacity",t)},dx:function(t){return this.x(new a.Number(t).plus(this instanceof a.FX?0:this.x()),!0)},dy:function(t){return this.y(new a.Number(t).plus(this instanceof a.FX?0:this.y()),!0)}}),a.extend(a.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),a.Set=a.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new a.Set(t)}}}),a.FX.Set=a.invent({create:function(t){this.set=t}}),a.Set.inherit=function(){var t=[];for(var e in a.Shape.prototype)"function"==typeof a.Shape.prototype[e]&&"function"!=typeof a.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){a.Set.prototype[t]=function(){for(var e=0,i=this.members.length;e=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),a.get=function(t){var i=e.getElementById(function(t){var e=(t||"").toString().match(a.regex.reference);if(e)return e[1]}(t)||t);return a.adopt(i)},a.select=function(t,i){return new a.Set(a.utils.map((i||e).querySelectorAll(t),(function(t){return a.adopt(t)})))},a.extend(a.Parent,{select:function(t){return a.select(t,this.node)}});var m="abcdef".split("");if("function"!=typeof t.CustomEvent){var y=function(t,i){i=i||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent("CustomEvent");return a.initCustomEvent(t,i.bubbles,i.cancelable,i.detail),a};y.prototype=t.Event.prototype,a.CustomEvent=y}else a.CustomEvent=t.CustomEvent;return a},"function"==typeof define&&define.amd?define((function(){return Et(Xt,Xt.document)})):"object"===("undefined"==typeof exports?"undefined":i(exports))&&"undefined"!=typeof module?module.exports=Xt.document?Et(Xt,Xt.document):function(t){return Et(t,t.document)}:Xt.SVG=Et(Xt,Xt.document), +/*! svg.filter.js - v2.0.2 - 2016-02-24 + * https://github.com/wout/svg.filter.js + * Copyright (c) 2016 Wout Fierens; Licensed MIT */ +function(){SVG.Filter=SVG.invent({create:"filter",inherit:SVG.Parent,extend:{source:"SourceGraphic",sourceAlpha:"SourceAlpha",background:"BackgroundImage",backgroundAlpha:"BackgroundAlpha",fill:"FillPaint",stroke:"StrokePaint",autoSetIn:!0,put:function(t,e){return this.add(t,e),!t.attr("in")&&this.autoSetIn&&t.attr("in",this.source),t.attr("result")||t.attr("result",t),t},blend:function(t,e,i){return this.put(new SVG.BlendEffect(t,e,i))},colorMatrix:function(t,e){return this.put(new SVG.ColorMatrixEffect(t,e))},convolveMatrix:function(t){return this.put(new SVG.ConvolveMatrixEffect(t))},componentTransfer:function(t){return this.put(new SVG.ComponentTransferEffect(t))},composite:function(t,e,i){return this.put(new SVG.CompositeEffect(t,e,i))},flood:function(t,e){return this.put(new SVG.FloodEffect(t,e))},offset:function(t,e){return this.put(new SVG.OffsetEffect(t,e))},image:function(t){return this.put(new SVG.ImageEffect(t))},merge:function(){var t=[void 0];for(var e in arguments)t.push(arguments[e]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,t)))},gaussianBlur:function(t,e){return this.put(new SVG.GaussianBlurEffect(t,e))},morphology:function(t,e){return this.put(new SVG.MorphologyEffect(t,e))},diffuseLighting:function(t,e,i){return this.put(new SVG.DiffuseLightingEffect(t,e,i))},displacementMap:function(t,e,i,a,s){return this.put(new SVG.DisplacementMapEffect(t,e,i,a,s))},specularLighting:function(t,e,i,a){return this.put(new SVG.SpecularLightingEffect(t,e,i,a))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(t,e,i,a,s){return this.put(new SVG.TurbulenceEffect(t,e,i,a,s))},toString:function(){return"url(#"+this.attr("id")+")"}}}),SVG.extend(SVG.Defs,{filter:function(t){var e=this.put(new SVG.Filter);return"function"==typeof t&&t.call(e,e),e}}),SVG.extend(SVG.Container,{filter:function(t){return this.defs().filter(t)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(t){return this.filterer=t instanceof SVG.Element?t:this.doc().filter(t),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr("filter",this.filterer),this.filterer},unfilter:function(t){return this.filterer&&!0===t&&this.filterer.remove(),delete this.filterer,this.attr("filter",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}});var t={blend:function(t,e){return this.parent()&&this.parent().blend(this,t,e)},colorMatrix:function(t,e){return this.parent()&&this.parent().colorMatrix(t,e).in(this)},convolveMatrix:function(t){return this.parent()&&this.parent().convolveMatrix(t).in(this)},componentTransfer:function(t){return this.parent()&&this.parent().componentTransfer(t).in(this)},composite:function(t,e){return this.parent()&&this.parent().composite(this,t,e)},flood:function(t,e){return this.parent()&&this.parent().flood(t,e)},offset:function(t,e){return this.parent()&&this.parent().offset(t,e).in(this)},image:function(t){return this.parent()&&this.parent().image(t)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(t,e){return this.parent()&&this.parent().gaussianBlur(t,e).in(this)},morphology:function(t,e){return this.parent()&&this.parent().morphology(t,e).in(this)},diffuseLighting:function(t,e,i){return this.parent()&&this.parent().diffuseLighting(t,e,i).in(this)},displacementMap:function(t,e,i,a){return this.parent()&&this.parent().displacementMap(this,t,e,i,a)},specularLighting:function(t,e,i,a){return this.parent()&&this.parent().specularLighting(t,e,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(t,e,i,a,s){return this.parent()&&this.parent().turbulence(t,e,i,a,s).in(this)}};SVG.extend(SVG.Effect,t),SVG.extend(SVG.ParentEffect,t),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){this.attr("in",t)}}});var e={blend:function(t,e,i){this.attr({in:t,in2:e,mode:i||"normal"})},colorMatrix:function(t,e){"matrix"==t&&(e=s(e)),this.attr({type:t,values:void 0===e?null:e})},convolveMatrix:function(t){t=s(t),this.attr({order:Math.sqrt(t.split(" ").length),kernelMatrix:t})},composite:function(t,e,i){this.attr({in:t,in2:e,operator:i})},flood:function(t,e){this.attr("flood-color",t),null!=e&&this.attr("flood-opacity",e)},offset:function(t,e){this.attr({dx:t,dy:e})},image:function(t){this.attr("href",t,SVG.xlink)},displacementMap:function(t,e,i,a,s){this.attr({in:t,in2:e,scale:i,xChannelSelector:a,yChannelSelector:s})},gaussianBlur:function(t,e){null!=t||null!=e?this.attr("stdDeviation",r(Array.prototype.slice.call(arguments))):this.attr("stdDeviation","0 0")},morphology:function(t,e){this.attr({operator:t,radius:e})},tile:function(){},turbulence:function(t,e,i,a,s){this.attr({numOctaves:e,seed:i,stitchTiles:a,baseFrequency:t,type:s})}},i={merge:function(){var t;if(arguments[0]instanceof SVG.Set){var e=this;arguments[0].each((function(t){this instanceof SVG.MergeNode?e.put(this):(this instanceof SVG.Effect||this instanceof SVG.ParentEffect)&&e.put(new SVG.MergeNode(this))}))}else{t=Array.isArray(arguments[0])?arguments[0]:arguments;for(var i=0;i1&&(T*=a=Math.sqrt(a),M*=a);s=(new SVG.Matrix).rotate(I).scale(1/T,1/M).rotate(-I),F=F.transform(s),R=R.transform(s),r=[R.x-F.x,R.y-F.y],n=r[0]*r[0]+r[1]*r[1],o=Math.sqrt(n),r[0]/=o,r[1]/=o,l=n<4?Math.sqrt(1-n/4):0,z===X&&(l*=-1);h=new SVG.Point((R.x+F.x)/2+l*-r[1],(R.y+F.y)/2+l*r[0]),c=new SVG.Point(F.x-h.x,F.y-h.y),d=new SVG.Point(R.x-h.x,R.y-h.y),g=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(g*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);X&&g>u&&(u+=2*Math.PI);!X&&gr.maxX-e.width&&(o=(a=r.maxX-e.width)-this.startPoints.box.x),null!=r.minY&&sr.maxY-e.height&&(n=(s=r.maxY-e.height)-this.startPoints.box.y),null!=r.snapToGrid&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,o-=o%r.snapToGrid,n-=n%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:o,y:n},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire("dragend",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,"mousemove.drag"),SVG.off(window,"touchmove.drag"),SVG.off(window,"mouseup.drag"),SVG.off(window,"touchend.drag")},SVG.extend(SVG.Element,{draggable:function(e,i){"function"!=typeof e&&"object"!=typeof e||(i=e,e=!0);var a=this.remember("_draggable")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off("mousedown.drag"),this.off("touchstart.drag")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember("_selectHandler",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:["width",0],rb:["width","height"],lb:[0,"height"],t:["width",0],r:["width","height"],b:["width","height"],l:[0,"height"]},this.pointCoord=function(t,e,i){var a="string"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,"t"===t||"b"===t),y:this.pointCoord(i[1],e,"r"===t||"l"===t)}}}t.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=["points","pointsExclude"];for(var s in r){var o=this.options[r[s]];"string"==typeof o?o=o.length>0?o.split(/\s*,\s*/i):[]:"boolean"==typeof o&&"points"===r[s]&&(o=o?a:[]),this.options[r[s]]=o}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==["line","polyline","polygon"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},t.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case"rt":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case"rb":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case"lb":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case"t":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case"r":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case"b":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case"l":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case"rot":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),o=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(o-o%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case"point":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire("resizestart",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,"touchmove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"touchend.resize",(function(){e.done()})),SVG.on(window,"mousemove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"mouseup.resize",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire("resizing",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,"mousemove.resize"),SVG.off(window,"mouseup.resize"),SVG.off(window,"touchmove.resize"),SVG.off(window,"touchend.resize"),this.el.fire("resizedone")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])o.maxX&&(t=o.maxX-s),void 0!==o.minY&&r+eo.maxY&&(e=o.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],o=s/r;return oa&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember("_resizeHandler")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}(),void 0===window.Apex&&(window.Apex={});var Ot=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"initModules",value:function(){this.ctx.publicMethods=["updateOptions","updateSeries","appendData","appendSeries","toggleSeries","showSeries","hideSeries","setLocale","resetSeries","zoomX","toggleDataPointSelection","dataURI","exportToCSV","addXaxisAnnotation","addYaxisAnnotation","addPointAnnotation","clearAnnotations","removeAnnotation","paper","destroy"],this.ctx.eventList=["click","mousedown","mousemove","mouseleave","touchstart","touchmove","touchleave","mouseup","touchend"],this.ctx.animations=new b(this.ctx),this.ctx.axes=new J(this.ctx),this.ctx.core=new Dt(this.ctx.el,this.ctx),this.ctx.config=new E({}),this.ctx.data=new W(this.ctx),this.ctx.grid=new j(this.ctx),this.ctx.graphics=new m(this.ctx),this.ctx.coreUtils=new y(this.ctx),this.ctx.crosshairs=new Q(this.ctx),this.ctx.events=new Z(this.ctx),this.ctx.exports=new G(this.ctx),this.ctx.localization=new $(this.ctx),this.ctx.options=new L,this.ctx.responsive=new K(this.ctx),this.ctx.series=new N(this.ctx),this.ctx.theme=new tt(this.ctx),this.ctx.formatters=new M(this.ctx),this.ctx.titleSubtitle=new et(this.ctx),this.ctx.legend=new lt(this.ctx),this.ctx.toolbar=new ht(this.ctx),this.ctx.tooltip=new bt(this.ctx),this.ctx.dimensions=new ot(this.ctx),this.ctx.updateHelpers=new Ht(this.ctx),this.ctx.zoomPanSelection=new ct(this.ctx),this.ctx.w.globals.tooltip=new bt(this.ctx)}}]),t}(),Nt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"clear",value:function(t){var e=t.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:e})}},{key:"killSVG",value:function(t){t.each((function(t,e){this.removeClass("*"),this.off(),this.stop()}),!0),t.ungroup(),t.clear()}},{key:"clearDomElements",value:function(t){var e=this,i=t.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight="unset");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach((function(t){s.removeEventListener(t,e.ctx.events.documentEvent)}));var r=this.w.globals.dom;if(null!==this.ctx.el)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elAnnotations=null,r.elLegendWrap=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectMarkerMask=null,r.elForecastMask=null,r.elNonForecastMask=null,r.elDefs=null}}]),t}(),Wt=new WeakMap;var Bt=function(){function t(e,i){a(this,t),this.opts=i,this.ctx=this,this.w=new F(i).init(),this.el=e,this.w.globals.cuid=x.randomId(),this.w.globals.chartID=this.w.config.chart.id?x.escapeString(this.w.config.chart.id):this.w.globals.cuid,new Ot(this).initModules(),this.create=x.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return r(t,[{key:"render",value:function(){var t=this;return new Promise((function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;if("function"==typeof a&&a(t,t.w),t.events.fireEvent("beforeMount",[t,t.w]),window.addEventListener("resize",t.windowResizeHandler),function(t,e){var i=!1;if(t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var a=t.getBoundingClientRect();"none"!==t.style.display&&0!==a.width||(i=!0)}var s=new ResizeObserver((function(a){i&&e.call(t,a),i=!0}));t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(t.children).forEach((function(t){return s.observe(t)})):s.observe(t),Wt.set(e,s)}(t.el.parentNode,t.parentResizeHandler),!t.css){var s=t.el.getRootNode&&t.el.getRootNode(),r=x.is("ShadowRoot",s),o=t.el.ownerDocument,n=o.getElementById("apexcharts-css");!r&&n||(t.css=document.createElement("style"),t.css.id="apexcharts-css",t.css.textContent='@keyframes opaque {\n 0% {\n opacity: 0\n }\n\n to {\n opacity: 1\n }\n}\n\n@keyframes resizeanim {\n 0%,to {\n opacity: 0\n }\n}\n\n.apexcharts-canvas {\n position: relative;\n user-select: none\n}\n\n.apexcharts-canvas ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 6px\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0,0,0,.5);\n box-shadow: 0 0 1px rgba(255,255,255,.5);\n -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5)\n}\n\n.apexcharts-inner {\n position: relative\n}\n\n.apexcharts-text tspan {\n font-family: inherit\n}\n\n.legend-mouseover-inactive {\n transition: .15s ease all;\n opacity: .2\n}\n\n.apexcharts-legend-text {\n padding-left: 15px;\n margin-left: -15px;\n}\n\n.apexcharts-series-collapsed {\n opacity: 0\n}\n\n.apexcharts-tooltip {\n border-radius: 5px;\n box-shadow: 2px 2px 6px -4px #999;\n cursor: default;\n font-size: 14px;\n left: 62px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 20px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n z-index: 12;\n transition: .15s ease all\n}\n\n.apexcharts-tooltip.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n border: 1px solid #e3e3e3;\n background: rgba(255,255,255,.96)\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n color: #fff;\n background: rgba(30,30,30,.8)\n}\n\n.apexcharts-tooltip * {\n font-family: inherit\n}\n\n.apexcharts-tooltip-title {\n padding: 6px;\n font-size: 15px;\n margin-bottom: 4px\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n background: #eceff1;\n border-bottom: 1px solid #ddd\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n background: rgba(0,0,0,.7);\n border-bottom: 1px solid #333\n}\n\n.apexcharts-tooltip-text-goals-value,.apexcharts-tooltip-text-y-value,.apexcharts-tooltip-text-z-value {\n display: inline-block;\n margin-left: 5px;\n font-weight: 600\n}\n\n.apexcharts-tooltip-text-goals-label:empty,.apexcharts-tooltip-text-goals-value:empty,.apexcharts-tooltip-text-y-label:empty,.apexcharts-tooltip-text-y-value:empty,.apexcharts-tooltip-text-z-value:empty,.apexcharts-tooltip-title:empty {\n display: none\n}\n\n.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\n padding: 6px 0 5px\n}\n\n.apexcharts-tooltip-goals-group,.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\n display: flex\n}\n\n.apexcharts-tooltip-text-goals-label:not(:empty),.apexcharts-tooltip-text-goals-value:not(:empty) {\n margin-top: -6px\n}\n\n.apexcharts-tooltip-marker {\n width: 12px;\n height: 12px;\n position: relative;\n top: 0;\n margin-right: 10px;\n border-radius: 50%\n}\n\n.apexcharts-tooltip-series-group {\n padding: 0 10px;\n display: none;\n text-align: left;\n justify-content: left;\n align-items: center\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n opacity: 1\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,.apexcharts-tooltip-series-group:last-child {\n padding-bottom: 4px\n}\n\n.apexcharts-tooltip-series-group-hidden {\n opacity: 0;\n height: 0;\n line-height: 0;\n padding: 0!important\n}\n\n.apexcharts-tooltip-y-group {\n padding: 6px 0 5px\n}\n\n.apexcharts-custom-tooltip,.apexcharts-tooltip-box {\n padding: 4px 8px\n}\n\n.apexcharts-tooltip-boxPlot {\n display: flex;\n flex-direction: column-reverse\n}\n\n.apexcharts-tooltip-box>div {\n margin: 4px 0\n}\n\n.apexcharts-tooltip-box span.value {\n font-weight: 700\n}\n\n.apexcharts-tooltip-rangebar {\n padding: 5px 8px\n}\n\n.apexcharts-tooltip-rangebar .category {\n font-weight: 600;\n color: #777\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n font-weight: 700;\n display: block;\n margin-bottom: 5px\n}\n\n.apexcharts-xaxistooltip,.apexcharts-yaxistooltip {\n opacity: 0;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #eceff1;\n border: 1px solid #90a4ae\n}\n\n.apexcharts-xaxistooltip {\n padding: 9px 10px;\n transition: .15s ease all\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n background: rgba(0,0,0,.7);\n border: 1px solid rgba(0,0,0,.5);\n color: #fff\n}\n\n.apexcharts-xaxistooltip:after,.apexcharts-xaxistooltip:before {\n left: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none\n}\n\n.apexcharts-xaxistooltip:after {\n border-color: transparent;\n border-width: 6px;\n margin-left: -6px\n}\n\n.apexcharts-xaxistooltip:before {\n border-color: transparent;\n border-width: 7px;\n margin-left: -7px\n}\n\n.apexcharts-xaxistooltip-bottom:after,.apexcharts-xaxistooltip-bottom:before {\n bottom: 100%\n}\n\n.apexcharts-xaxistooltip-top:after,.apexcharts-xaxistooltip-top:before {\n top: 100%\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n border-bottom-color: #eceff1\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n border-bottom-color: #90a4ae\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n border-bottom-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-xaxistooltip-top:after {\n border-top-color: #eceff1\n}\n\n.apexcharts-xaxistooltip-top:before {\n border-top-color: #90a4ae\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n border-top-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-yaxistooltip {\n padding: 4px 10px\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n background: rgba(0,0,0,.7);\n border: 1px solid rgba(0,0,0,.5);\n color: #fff\n}\n\n.apexcharts-yaxistooltip:after,.apexcharts-yaxistooltip:before {\n top: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none\n}\n\n.apexcharts-yaxistooltip:after {\n border-color: transparent;\n border-width: 6px;\n margin-top: -6px\n}\n\n.apexcharts-yaxistooltip:before {\n border-color: transparent;\n border-width: 7px;\n margin-top: -7px\n}\n\n.apexcharts-yaxistooltip-left:after,.apexcharts-yaxistooltip-left:before {\n left: 100%\n}\n\n.apexcharts-yaxistooltip-right:after,.apexcharts-yaxistooltip-right:before {\n right: 100%\n}\n\n.apexcharts-yaxistooltip-left:after {\n border-left-color: #eceff1\n}\n\n.apexcharts-yaxistooltip-left:before {\n border-left-color: #90a4ae\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n border-left-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-yaxistooltip-right:after {\n border-right-color: #eceff1\n}\n\n.apexcharts-yaxistooltip-right:before {\n border-right-color: #90a4ae\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n border-right-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n opacity: 1\n}\n\n.apexcharts-yaxistooltip-hidden {\n display: none\n}\n\n.apexcharts-xcrosshairs,.apexcharts-ycrosshairs {\n pointer-events: none;\n opacity: 0;\n transition: .15s ease all\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,.apexcharts-ycrosshairs.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-ycrosshairs-hidden {\n opacity: 0\n}\n\n.apexcharts-selection-rect {\n cursor: move\n}\n\n.svg_select_boundingRect,.svg_select_points_rot {\n pointer-events: none;\n opacity: 0;\n visibility: hidden\n}\n\n.apexcharts-selection-rect+g .svg_select_boundingRect,.apexcharts-selection-rect+g .svg_select_points_rot {\n opacity: 0;\n visibility: hidden\n}\n\n.apexcharts-selection-rect+g .svg_select_points_l,.apexcharts-selection-rect+g .svg_select_points_r {\n cursor: ew-resize;\n opacity: 1;\n visibility: visible\n}\n\n.svg_select_points {\n fill: #efefef;\n stroke: #333;\n rx: 2\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n cursor: move\n}\n\n.apexcharts-menu-icon,.apexcharts-pan-icon,.apexcharts-reset-icon,.apexcharts-selection-icon,.apexcharts-toolbar-custom-icon,.apexcharts-zoom-icon,.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\n cursor: pointer;\n width: 20px;\n height: 20px;\n line-height: 24px;\n color: #6e8192;\n text-align: center\n}\n\n.apexcharts-menu-icon svg,.apexcharts-reset-icon svg,.apexcharts-zoom-icon svg,.apexcharts-zoomin-icon svg,.apexcharts-zoomout-icon svg {\n fill: #6e8192\n}\n\n.apexcharts-selection-icon svg {\n fill: #444;\n transform: scale(.76)\n}\n\n.apexcharts-theme-dark .apexcharts-menu-icon svg,.apexcharts-theme-dark .apexcharts-pan-icon svg,.apexcharts-theme-dark .apexcharts-reset-icon svg,.apexcharts-theme-dark .apexcharts-selection-icon svg,.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,.apexcharts-theme-dark .apexcharts-zoom-icon svg,.apexcharts-theme-dark .apexcharts-zoomin-icon svg,.apexcharts-theme-dark .apexcharts-zoomout-icon svg {\n fill: #f3f4f5\n}\n\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg {\n fill: #008ffb\n}\n\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg,.apexcharts-theme-light .apexcharts-reset-icon:hover svg,.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg {\n fill: #333\n}\n\n.apexcharts-menu-icon,.apexcharts-selection-icon {\n position: relative\n}\n\n.apexcharts-reset-icon {\n margin-left: 5px\n}\n\n.apexcharts-menu-icon,.apexcharts-reset-icon,.apexcharts-zoom-icon {\n transform: scale(.85)\n}\n\n.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\n transform: scale(.7)\n}\n\n.apexcharts-zoomout-icon {\n margin-right: 3px\n}\n\n.apexcharts-pan-icon {\n transform: scale(.62);\n position: relative;\n left: 1px;\n top: 0\n}\n\n.apexcharts-pan-icon svg {\n fill: #fff;\n stroke: #6e8192;\n stroke-width: 2\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n stroke: #008ffb\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n stroke: #333\n}\n\n.apexcharts-toolbar {\n position: absolute;\n z-index: 11;\n max-width: 176px;\n text-align: right;\n border-radius: 3px;\n padding: 0 6px 2px;\n display: flex;\n justify-content: space-between;\n align-items: center\n}\n\n.apexcharts-menu {\n background: #fff;\n position: absolute;\n top: 100%;\n border: 1px solid #ddd;\n border-radius: 3px;\n padding: 3px;\n right: 10px;\n opacity: 0;\n min-width: 110px;\n transition: .15s ease all;\n pointer-events: none\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n opacity: 1;\n pointer-events: all;\n transition: .15s ease all\n}\n\n.apexcharts-menu-item {\n padding: 6px 7px;\n font-size: 12px;\n cursor: pointer\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n background: #eee\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n background: rgba(0,0,0,.7);\n color: #fff\n}\n\n@media screen and (min-width:768px) {\n .apexcharts-canvas:hover .apexcharts-toolbar {\n opacity: 1\n }\n}\n\n.apexcharts-canvas .apexcharts-element-hidden,.apexcharts-datalabel.apexcharts-element-hidden,.apexcharts-hide .apexcharts-series-points {\n opacity: 0\n}\n\n.apexcharts-datalabel,.apexcharts-datalabel-label,.apexcharts-datalabel-value,.apexcharts-datalabels,.apexcharts-pie-label {\n cursor: default;\n pointer-events: none\n}\n\n.apexcharts-pie-label-delay {\n opacity: 0;\n animation-name: opaque;\n animation-duration: .3s;\n animation-fill-mode: forwards;\n animation-timing-function: ease\n}\n\n.apexcharts-legend {\t\n display: flex;\t\n overflow: auto;\t\n padding: 0 10px;\t\n}\t\n.apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\t\n flex-wrap: wrap\t\n}\t\n.apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n flex-direction: column;\t\n bottom: 0;\t\n}\t\n.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n justify-content: flex-start;\t\n}\t\n.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\t\n justify-content: center; \t\n}\t\n.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\t\n justify-content: flex-end;\t\n}\t\n.apexcharts-legend-series {\t\n cursor: pointer;\t\n line-height: normal;\t\n}\t\n.apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{\t\n display: flex;\t\n align-items: center;\t\n}\t\n.apexcharts-legend-text {\t\n position: relative;\t\n font-size: 14px;\t\n}\t\n.apexcharts-legend-text *, .apexcharts-legend-marker * {\t\n pointer-events: none;\t\n}\t\n.apexcharts-legend-marker {\t\n position: relative;\t\n display: inline-block;\t\n cursor: pointer;\t\n margin-right: 3px;\t\n border-style: solid;\n}\t\n \n.apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\t\n display: inline-block;\t\n}\t\n.apexcharts-legend-series.apexcharts-no-click {\t\n cursor: auto;\t\n}\t\n.apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\t\n display: none !important;\t\n}\t\n.apexcharts-inactive-legend {\t\n opacity: 0.45;\t\n}\n\n.apexcharts-annotation-rect,.apexcharts-area-series .apexcharts-area,.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-gridline,.apexcharts-line,.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-point-annotation-label,.apexcharts-radar-series path,.apexcharts-radar-series polygon,.apexcharts-toolbar svg,.apexcharts-tooltip .apexcharts-marker,.apexcharts-xaxis-annotation-label,.apexcharts-yaxis-annotation-label,.apexcharts-zoom-rect {\n pointer-events: none\n}\n\n.apexcharts-marker {\n transition: .15s ease all\n}\n\n.resize-triggers {\n animation: 1ms resizeanim;\n visibility: hidden;\n opacity: 0;\n height: 100%;\n width: 100%;\n overflow: hidden\n}\n\n.contract-trigger:before,.resize-triggers,.resize-triggers>div {\n content: " ";\n display: block;\n position: absolute;\n top: 0;\n left: 0\n}\n\n.resize-triggers>div {\n height: 100%;\n width: 100%;\n background: #eee;\n overflow: auto\n}\n\n.contract-trigger:before {\n overflow: hidden;\n width: 200%;\n height: 200%\n}\n',r?s.prepend(t.css):o.head.appendChild(t.css))}var l=t.create(t.w.config.series,{});if(!l)return e(t);t.mount(l).then((function(){"function"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.events.fireEvent("mounted",[t,t.w]),e(l)})).catch((function(t){i(t)}))}else i(new Error("Element not found"))}))}},{key:"create",value:function(t,e){var i=this.w;new Ot(this).initModules();var a=this.w.globals;(a.noData=!1,a.animationEnded=!1,this.responsive.checkResponsiveConfig(e),i.config.xaxis.convertedCatToNumeric)&&new X(i.config).convertCatToNumericXaxis(i.config,this.ctx);if(null===this.el)return a.animationEnded=!0,null;if(this.core.setupElements(),"treemap"===i.config.chart.type&&(i.config.grid.show=!1,i.config.yaxis[0].show=!1),0===a.svgWidth)return a.animationEnded=!0,null;var s=y.checkComboSeries(t);a.comboCharts=s.comboCharts,a.comboBarCount=s.comboBarCount;var r=t.every((function(t){return t.data&&0===t.data.length}));(0===t.length||r)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(t),this.theme.init(),new D(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),a.noData&&a.collapsedSeries.length!==a.series.length&&!i.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),a.axisCharts&&(this.core.coreCalculations(),"category"!==i.config.xaxis.type&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=i.globals.minX,this.ctx.toolbar.maxX=i.globals.maxX),this.formatters.heatmapLabelFormatters(),new y(this).getLargestMarkerSize(),this.dimensions.plotCoords();var o=this.core.xySettings();this.grid.createGridMask();var n=this.core.plotChartType(t,o),l=new O(this);l.bringForward(),i.config.dataLabels.background.enabled&&l.dataLabelsBackground(),this.core.shiftGraphPosition();var h={plot:{left:i.globals.translateX,top:i.globals.translateY,width:i.globals.gridWidth,height:i.globals.gridHeight}};return{elGraph:n,xyRatios:o,elInner:i.globals.dom.elGraphical,dimensions:h}}},{key:"mount",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error("Not enough data to display or target element not found"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),i.grid=new j(i);var o=i.grid.drawGrid();if(i.annotations=new P(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),"back"===a.config.grid.position&&o&&(a.globals.dom.elGraphical.add(o.el),o&&o.elGridBorders&&o.elGridBorders.node&&a.globals.dom.elGraphical.add(o.elGridBorders)),Array.isArray(e.elGraph))for(var n=0;n0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:"destroy",value:function(){var t,e;window.removeEventListener("resize",this.windowResizeHandler),this.el.parentNode,t=this.parentResizeHandler,(e=Wt.get(t))&&(e.disconnect(),Wt.delete(t));var i=this.w.config.chart.id;i&&Apex._chartInstances.forEach((function(t,e){t.id===x.escapeString(i)&&Apex._chartInstances.splice(e,1)})),new Nt(this.ctx).clear({isUpdating:!1})}},{key:"updateOptions",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=this.w;return o.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),o.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:"updateSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:"appendSeries",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:"appendData",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:"addEventListener",value:function(t,e){this.events.addEventListener(t,e)}},{key:"removeEventListener",value:function(t,e){this.events.removeEventListener(t,e)}},{key:"addXaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:"addYaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:"addPointAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:"clearAnnotations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:"removeAnnotation",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:"getChartArea",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner")}},{key:"getSeriesTotalXRange",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:"getHighestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new U(this.ctx);return e.getMinYMaxY(t).highestY}},{key:"getLowestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new U(this.ctx);return e.getMinYMaxY(t).lowestY}},{key:"getSeriesTotal",value:function(){return this.w.globals.seriesTotals}},{key:"toggleDataPointSelection",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:"zoomX",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:"setLocale",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:"dataURI",value:function(t){return new G(this.ctx).dataURI(t)}},{key:"exportToCSV",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=new G(this.ctx);return e.exportToCSV(t)}},{key:"paper",value:function(){return this.w.globals.dom.Paper}},{key:"_parentResizeCallback",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:"_windowResize",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:"_windowResizeHandler",value:function(){var t=this.w.config.chart.redrawOnWindowResize;"function"==typeof t&&(t=t()),t&&this._windowResize()}}],[{key:"getChartByID",value:function(t){var e=x.escapeString(t),i=Apex._chartInstances.filter((function(t){return t.id===e}))[0];return i&&i.chart}},{key:"initOnLoad",value:function(){for(var e=document.querySelectorAll("[data-apexcharts]"),i=0;i2?s-2:0),o=2;ot[i]})}return e.default=t,Object.freeze(e)}const i=e(t),s=new Map,n={set(t,e,i){s.has(t)||s.set(t,new Map);const n=s.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>s.has(t)&&s.get(t).get(e)||null,remove(t,e){if(!s.has(t))return;const i=s.get(t);i.delete(e),0===i.size&&s.delete(t)}},o="transitionend",r=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),a=t=>{t.dispatchEvent(new Event(o))},l=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),c=t=>l(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(r(t)):null,h=t=>{if(!l(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},d=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),u=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?u(t.parentNode):null},_=()=>{},g=t=>{t.offsetHeight},f=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,m=[],p=()=>"rtl"===document.documentElement.dir,b=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,s=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=s,t.jQueryInterface)}},"loading"===document.readyState?(m.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of m)t()})),m.push(e)):e()},v=(t,e=[],i=t)=>"function"==typeof t?t.call(...e):i,y=(t,e,i=!0)=>{if(!i)return void v(t);const s=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const s=Number.parseFloat(e),n=Number.parseFloat(i);return s||n?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let n=!1;const r=({target:i})=>{i===e&&(n=!0,e.removeEventListener(o,r),v(t))};e.addEventListener(o,r),setTimeout((()=>{n||a(e)}),s)},w=(t,e,i,s)=>{const n=t.length;let o=t.indexOf(e);return-1===o?!i&&s?t[n-1]:t[0]:(o+=i?1:-1,s&&(o=(o+n)%n),t[Math.max(0,Math.min(o,n-1))])},A=/[^.]*(?=\..*)\.|.*/,E=/\..*/,C=/::\d+$/,T={};let k=1;const $={mouseenter:"mouseover",mouseleave:"mouseout"},S=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function L(t,e){return e&&`${e}::${k++}`||t.uidEvent||k++}function O(t){const e=L(t);return t.uidEvent=e,T[e]=T[e]||{},T[e]}function I(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function D(t,e,i){const s="string"==typeof e,n=s?i:e||i;let o=M(t);return S.has(o)||(o=t),[s,n,o]}function N(t,e,i,s,n){if("string"!=typeof e||!t)return;let[o,r,a]=D(e,i,s);if(e in $){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=O(t),c=l[a]||(l[a]={}),h=I(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&n);const d=L(r,e.replace(A,"")),u=o?function(t,e,i){return function s(n){const o=t.querySelectorAll(e);for(let{target:r}=n;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return F(n,{delegateTarget:r}),s.oneOff&&j.off(t,n.type,e,i),i.apply(r,[n])}}(t,i,r):function(t,e){return function i(s){return F(s,{delegateTarget:t}),i.oneOff&&j.off(t,s.type,e),e.apply(t,[s])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=n,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function P(t,e,i,s,n){const o=I(e[i],s,n);o&&(t.removeEventListener(i,o,Boolean(n)),delete e[i][o.uidEvent])}function x(t,e,i,s){const n=e[i]||{};for(const[o,r]of Object.entries(n))o.includes(s)&&P(t,e,i,r.callable,r.delegationSelector)}function M(t){return t=t.replace(E,""),$[t]||t}const j={on(t,e,i,s){N(t,e,i,s,!1)},one(t,e,i,s){N(t,e,i,s,!0)},off(t,e,i,s){if("string"!=typeof e||!t)return;const[n,o,r]=D(e,i,s),a=r!==e,l=O(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))x(t,l,i,e.slice(1));for(const[i,s]of Object.entries(c)){const n=i.replace(C,"");a&&!e.includes(n)||P(t,l,r,s.callable,s.delegationSelector)}}else{if(!Object.keys(c).length)return;P(t,l,r,o,n?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const s=f();let n=null,o=!0,r=!0,a=!1;e!==M(e)&&s&&(n=s.Event(e,i),s(t).trigger(n),o=!n.isPropagationStopped(),r=!n.isImmediatePropagationStopped(),a=n.isDefaultPrevented());const l=F(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&n&&n.preventDefault(),l}};function F(t,e={}){for(const[i,s]of Object.entries(e))try{t[i]=s}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>s})}return t}function z(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 H(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const B={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${H(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${H(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const s of i){let i=s.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1),e[i]=z(t.dataset[s])}return e},getDataAttribute:(t,e)=>z(t.getAttribute(`data-bs-${H(e)}`))};class q{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=l(e)?B.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...l(e)?B.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[s,n]of Object.entries(e)){const e=t[s],o=l(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${s}" provided type "${o}" but expected type "${n}".`)}var i}}class W extends q{constructor(t,e){super(),(t=c(t))&&(this._element=t,this._config=this._getConfig(e),n.set(this._element,this.constructor.DATA_KEY,this))}dispose(){n.remove(this._element,this.constructor.DATA_KEY),j.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){y(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return n.get(c(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.7"}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 R=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e?e.split(",").map((t=>r(t))).join(","):null},K={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 s=t.parentNode.closest(e);for(;s;)i.push(s),s=s.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=>!d(t)&&h(t)))},getSelectorFromElement(t){const e=R(t);return e&&K.findOne(e)?e:null},getElementFromSelector(t){const e=R(t);return e?K.findOne(e):null},getMultipleElementsFromSelector(t){const e=R(t);return e?K.find(e):[]}},V=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;j.on(document,i,`[data-bs-dismiss="${s}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),d(this))return;const n=K.getElementFromSelector(this)||this.closest(`.${s}`);t.getOrCreateInstance(n)[e]()}))},Q=".bs.alert",X=`close${Q}`,Y=`closed${Q}`;class U extends W{static get NAME(){return"alert"}close(){if(j.trigger(this._element,X).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),j.trigger(this._element,Y),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=U.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)}}))}}V(U,"close"),b(U);const G='[data-bs-toggle="button"]';class J 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=J.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}j.on(document,"click.bs.button.data-api",G,(t=>{t.preventDefault();const e=t.target.closest(G);J.getOrCreateInstance(e).toggle()})),b(J);const Z=".bs.swipe",tt=`touchstart${Z}`,et=`touchmove${Z}`,it=`touchend${Z}`,st=`pointerdown${Z}`,nt=`pointerup${Z}`,ot={endCallback:null,leftCallback:null,rightCallback:null},rt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class at extends q{constructor(t,e){super(),this._element=t,t&&at.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return ot}static get DefaultType(){return rt}static get NAME(){return"swipe"}dispose(){j.off(this._element,Z)}_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(),v(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&&v(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(j.on(this._element,st,(t=>this._start(t))),j.on(this._element,nt,(t=>this._end(t))),this._element.classList.add("pointer-event")):(j.on(this._element,tt,(t=>this._start(t))),j.on(this._element,et,(t=>this._move(t))),j.on(this._element,it,(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 lt=".bs.carousel",ct=".data-api",ht="ArrowLeft",dt="ArrowRight",ut="next",_t="prev",gt="left",ft="right",mt=`slide${lt}`,pt=`slid${lt}`,bt=`keydown${lt}`,vt=`mouseenter${lt}`,yt=`mouseleave${lt}`,wt=`dragstart${lt}`,At=`load${lt}${ct}`,Et=`click${lt}${ct}`,Ct="carousel",Tt="active",kt=".active",$t=".carousel-item",St=kt+$t,Lt={[ht]:ft,[dt]:gt},Ot={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},It={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class Dt 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=K.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===Ct&&this.cycle()}static get Default(){return Ot}static get DefaultType(){return It}static get NAME(){return"carousel"}next(){this._slide(ut)}nextWhenVisible(){!document.hidden&&h(this._element)&&this.next()}prev(){this._slide(_t)}pause(){this._isSliding&&a(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?j.one(this._element,pt,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void j.one(this._element,pt,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const s=t>i?ut:_t;this._slide(s,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&j.on(this._element,bt,(t=>this._keydown(t))),"hover"===this._config.pause&&(j.on(this._element,vt,(()=>this.pause())),j.on(this._element,yt,(()=>this._maybeEnableCycle()))),this._config.touch&&at.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of K.find(".carousel-item img",this._element))j.on(t,wt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(gt)),rightCallback:()=>this._slide(this._directionToOrder(ft)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new at(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Lt[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=K.findOne(kt,this._indicatorsElement);e.classList.remove(Tt),e.removeAttribute("aria-current");const i=K.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(Tt),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(),s=t===ut,n=e||w(this._getItems(),i,s,this._config.wrap);if(n===i)return;const o=this._getItemIndex(n),r=e=>j.trigger(this._element,e,{relatedTarget:n,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(mt).defaultPrevented)return;if(!i||!n)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=n;const l=s?"carousel-item-start":"carousel-item-end",c=s?"carousel-item-next":"carousel-item-prev";n.classList.add(c),g(n),i.classList.add(l),n.classList.add(l),this._queueCallback((()=>{n.classList.remove(l,c),n.classList.add(Tt),i.classList.remove(Tt,c,l),this._isSliding=!1,r(pt)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return K.findOne(St,this._element)}_getItems(){return K.find($t,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===gt?_t:ut:t===gt?ut:_t}_orderToDirection(t){return p()?t===_t?gt:ft:t===_t?ft:gt}static jQueryInterface(t){return this.each((function(){const e=Dt.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)}))}}j.on(document,Et,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=K.getElementFromSelector(this);if(!e||!e.classList.contains(Ct))return;t.preventDefault();const i=Dt.getOrCreateInstance(e),s=this.getAttribute("data-bs-slide-to");return s?(i.to(s),void i._maybeEnableCycle()):"next"===B.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),j.on(window,At,(()=>{const t=K.find('[data-bs-ride="carousel"]');for(const e of t)Dt.getOrCreateInstance(e)})),b(Dt);const Nt=".bs.collapse",Pt=`show${Nt}`,xt=`shown${Nt}`,Mt=`hide${Nt}`,jt=`hidden${Nt}`,Ft=`click${Nt}.data-api`,zt="show",Ht="collapse",Bt="collapsing",qt=`:scope .${Ht} .${Ht}`,Wt='[data-bs-toggle="collapse"]',Rt={parent:null,toggle:!0},Kt={parent:"(null|element)",toggle:"boolean"};class Vt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=K.find(Wt);for(const t of i){const e=K.getSelectorFromElement(t),i=K.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 Rt}static get DefaultType(){return Kt}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=>Vt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(j.trigger(this._element,Pt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Ht),this._element.classList.add(Bt),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(Bt),this._element.classList.add(Ht,zt),this._element.style[e]="",j.trigger(this._element,xt)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(j.trigger(this._element,Mt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,g(this._element),this._element.classList.add(Bt),this._element.classList.remove(Ht,zt);for(const t of this._triggerArray){const e=K.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(Bt),this._element.classList.add(Ht),j.trigger(this._element,jt)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(zt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=c(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Wt);for(const e of t){const t=K.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=K.find(qt,this._config.parent);return K.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=Vt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}j.on(document,Ft,Wt,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of K.getMultipleElementsFromSelector(this))Vt.getOrCreateInstance(t,{toggle:!1}).toggle()})),b(Vt);const Qt="dropdown",Xt=".bs.dropdown",Yt=".data-api",Ut="ArrowUp",Gt="ArrowDown",Jt=`hide${Xt}`,Zt=`hidden${Xt}`,te=`show${Xt}`,ee=`shown${Xt}`,ie=`click${Xt}${Yt}`,se=`keydown${Xt}${Yt}`,ne=`keyup${Xt}${Yt}`,oe="show",re='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',ae=`${re}.${oe}`,le=".dropdown-menu",ce=p()?"top-end":"top-start",he=p()?"top-start":"top-end",de=p()?"bottom-end":"bottom-start",ue=p()?"bottom-start":"bottom-end",_e=p()?"left-start":"right-start",ge=p()?"right-start":"left-start",fe={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},me={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class pe extends W{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=K.next(this._element,le)[0]||K.prev(this._element,le)[0]||K.findOne(le,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return fe}static get DefaultType(){return me}static get NAME(){return Qt}toggle(){return this._isShown()?this.hide():this.show()}show(){if(d(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!j.trigger(this._element,te,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))j.on(t,"mouseover",_);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(oe),this._element.classList.add(oe),j.trigger(this._element,ee,t)}}hide(){if(d(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!j.trigger(this._element,Jt,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))j.off(t,"mouseover",_);this._popper&&this._popper.destroy(),this._menu.classList.remove(oe),this._element.classList.remove(oe),this._element.setAttribute("aria-expanded","false"),B.removeDataAttribute(this._menu,"popper"),j.trigger(this._element,Zt,t),this._element.focus()}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!l(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Qt.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===i)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org/docs/v2/)");let t=this._element;"parent"===this._config.reference?t=this._parent:l(this._config.reference)?t=c(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=i.createPopper(t,this._menu,e)}_isShown(){return this._menu.classList.contains(oe)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return _e;if(t.classList.contains("dropstart"))return ge;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?he:ce:e?ue:de}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(B.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...v(this._config.popperConfig,[void 0,t])}}_selectMenuItem({key:t,target:e}){const i=K.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>h(t)));i.length&&w(i,e,t===Gt,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=pe.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=K.find(ae);for(const i of e){const e=pe.getInstance(i);if(!e||!1===e._config.autoClose)continue;const s=t.composedPath(),n=s.includes(e._menu);if(s.includes(e._element)||"inside"===e._config.autoClose&&!n||"outside"===e._config.autoClose&&n)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,s=[Ut,Gt].includes(t.key);if(!s&&!i)return;if(e&&!i)return;t.preventDefault();const n=this.matches(re)?this:K.prev(this,re)[0]||K.next(this,re)[0]||K.findOne(re,t.delegateTarget.parentNode),o=pe.getOrCreateInstance(n);if(s)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),n.focus())}}j.on(document,se,re,pe.dataApiKeydownHandler),j.on(document,se,le,pe.dataApiKeydownHandler),j.on(document,ie,pe.clearMenus),j.on(document,ne,pe.clearMenus),j.on(document,ie,re,(function(t){t.preventDefault(),pe.getOrCreateInstance(this).toggle()})),b(pe);const be="backdrop",ve="show",ye=`mousedown.bs.${be}`,we={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Ae={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ee extends q{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return we}static get DefaultType(){return Ae}static get NAME(){return be}show(t){if(!this._config.isVisible)return void v(t);this._append();const e=this._getElement();this._config.isAnimated&&g(e),e.classList.add(ve),this._emulateAnimation((()=>{v(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(ve),this._emulateAnimation((()=>{this.dispose(),v(t)}))):v(t)}dispose(){this._isAppended&&(j.off(this._element,ye),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=c(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),j.on(t,ye,(()=>{v(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){y(t,this._getElement(),this._config.isAnimated)}}const Ce=".bs.focustrap",Te=`focusin${Ce}`,ke=`keydown.tab${Ce}`,$e="backward",Se={autofocus:!0,trapElement:null},Le={autofocus:"boolean",trapElement:"element"};class Oe extends q{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Se}static get DefaultType(){return Le}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),j.off(document,Ce),j.on(document,Te,(t=>this._handleFocusin(t))),j.on(document,ke,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,j.off(document,Ce))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=K.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===$e?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?$e:"forward")}}const Ie=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",De=".sticky-top",Ne="padding-right",Pe="margin-right";class xe{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,Ne,(e=>e+t)),this._setElementAttributes(Ie,Ne,(e=>e+t)),this._setElementAttributes(De,Pe,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,Ne),this._resetElementAttributes(Ie,Ne),this._resetElementAttributes(De,Pe)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const s=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+s)return;this._saveInitialAttribute(t,e);const n=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(n))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&B.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=B.getDataAttribute(t,e);null!==i?(B.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(l(t))e(t);else for(const i of K.find(t,this._element))e(i)}}const Me=".bs.modal",je=`hide${Me}`,Fe=`hidePrevented${Me}`,ze=`hidden${Me}`,He=`show${Me}`,Be=`shown${Me}`,qe=`resize${Me}`,We=`click.dismiss${Me}`,Re=`mousedown.dismiss${Me}`,Ke=`keydown.dismiss${Me}`,Ve=`click${Me}.data-api`,Qe="modal-open",Xe="show",Ye="modal-static",Ue={backdrop:!0,focus:!0,keyboard:!0},Ge={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Je extends W{constructor(t,e){super(t,e),this._dialog=K.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new xe,this._addEventListeners()}static get Default(){return Ue}static get DefaultType(){return Ge}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||j.trigger(this._element,He,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Qe),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(j.trigger(this._element,je).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Xe),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){j.off(window,Me),j.off(this._dialog,Me),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ee({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Oe({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=K.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),g(this._element),this._element.classList.add(Xe),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,j.trigger(this._element,Be,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){j.on(this._element,Ke,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),j.on(window,qe,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),j.on(this._element,Re,(t=>{j.one(this._element,We,(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(Qe),this._resetAdjustments(),this._scrollBar.reset(),j.trigger(this._element,ze)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(j.trigger(this._element,Fe).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(Ye)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(Ye),this._queueCallback((()=>{this._element.classList.remove(Ye),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=Je.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}j.on(document,Ve,'[data-bs-toggle="modal"]',(function(t){const e=K.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),j.one(e,He,(t=>{t.defaultPrevented||j.one(e,ze,(()=>{h(this)&&this.focus()}))}));const i=K.findOne(".modal.show");i&&Je.getInstance(i).hide(),Je.getOrCreateInstance(e).toggle(this)})),V(Je),b(Je);const Ze=".bs.offcanvas",ti=".data-api",ei=`load${Ze}${ti}`,ii="show",si="showing",ni="hiding",oi=".offcanvas.show",ri=`show${Ze}`,ai=`shown${Ze}`,li=`hide${Ze}`,ci=`hidePrevented${Ze}`,hi=`hidden${Ze}`,di=`resize${Ze}`,ui=`click${Ze}${ti}`,_i=`keydown.dismiss${Ze}`,gi={backdrop:!0,keyboard:!0,scroll:!1},fi={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class mi 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 gi}static get DefaultType(){return fi}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||j.trigger(this._element,ri,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new xe).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(si),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(ii),this._element.classList.remove(si),j.trigger(this._element,ai,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(j.trigger(this._element,li).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(ni),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(ii,ni),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new xe).reset(),j.trigger(this._element,hi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ee({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():j.trigger(this._element,ci)}:null})}_initializeFocusTrap(){return new Oe({trapElement:this._element})}_addEventListeners(){j.on(this._element,_i,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():j.trigger(this._element,ci))}))}static jQueryInterface(t){return this.each((function(){const e=mi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}j.on(document,ui,'[data-bs-toggle="offcanvas"]',(function(t){const e=K.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),d(this))return;j.one(e,hi,(()=>{h(this)&&this.focus()}));const i=K.findOne(oi);i&&i!==e&&mi.getInstance(i).hide(),mi.getOrCreateInstance(e).toggle(this)})),j.on(window,ei,(()=>{for(const t of K.find(oi))mi.getOrCreateInstance(t).show()})),j.on(window,di,(()=>{for(const t of K.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&mi.getOrCreateInstance(t).hide()})),V(mi),b(mi);const pi={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],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:[]},bi=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),vi=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,yi=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!bi.has(i)||Boolean(vi.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},wi={allowList:pi,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Ai={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Ei={entry:"(string|element|function|null)",selector:"(string|element)"};class Ci extends q{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return wi}static get DefaultType(){return Ai}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},Ei)}_setContent(t,e,i){const s=K.findOne(i,t);s&&((e=this._resolvePossibleFunction(e))?l(e)?this._putElementInTemplate(c(e),s):this._config.html?s.innerHTML=this._maybeSanitize(e):s.textContent=e:s.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 s=(new window.DOMParser).parseFromString(t,"text/html"),n=[].concat(...s.body.querySelectorAll("*"));for(const t of n){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const s=[].concat(...t.attributes),n=[].concat(e["*"]||[],e[i]||[]);for(const e of s)yi(e,n)||t.removeAttribute(e.nodeName)}return s.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return v(t,[void 0,this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Ti=new Set(["sanitize","allowList","sanitizeFn"]),ki="fade",$i="show",Si=".tooltip-inner",Li=".modal",Oi="hide.bs.modal",Ii="hover",Di="focus",Ni="click",Pi={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},xi={allowList:pi,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"},Mi={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 ji extends W{constructor(t,e){if(void 0===i)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)");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 xi}static get DefaultType(){return Mi}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),j.off(this._element.closest(Li),Oi,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=j.trigger(this._element,this.constructor.eventName("show")),e=(u(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:s}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(s.append(i),j.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add($i),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))j.on(t,"mouseover",_);this._queueCallback((()=>{j.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!j.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove($i),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))j.off(t,"mouseover",_);this._activeTrigger[Ni]=!1,this._activeTrigger[Di]=!1,this._activeTrigger[Ii]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),j.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(ki,$i),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(ki),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Ci({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[Si]: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(ki)}_isShown(){return this.tip&&this.tip.classList.contains($i)}_createPopper(t){const e=v(this._config.placement,[this,t,this._element]),s=Pi[e.toUpperCase()];return i.createPopper(this._element,t,this._getPopperConfig(s))}_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 v(t,[this._element,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,...v(this._config.popperConfig,[void 0,e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)j.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[Ni]=!(e._isShown()&&e._activeTrigger[Ni]),e.toggle()}));else if("manual"!==e){const t=e===Ii?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===Ii?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");j.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?Di:Ii]=!0,e._enter()})),j.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?Di:Ii]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},j.on(this._element.closest(Li),Oi,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=B.getDataAttributes(this._element);for(const t of Object.keys(e))Ti.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:c(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=ji.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}b(ji);const Fi=".popover-header",zi=".popover-body",Hi={...ji.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},Bi={...ji.DefaultType,content:"(null|string|element|function)"};class qi extends ji{static get Default(){return Hi}static get DefaultType(){return Bi}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[Fi]:this._getTitle(),[zi]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}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]()}}))}}b(qi);const Wi=".bs.scrollspy",Ri=`activate${Wi}`,Ki=`click${Wi}`,Vi=`load${Wi}.data-api`,Qi="active",Xi="[href]",Yi=".nav-link",Ui=`${Yi}, .nav-item > ${Yi}, .list-group-item`,Gi={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},Ji={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Zi 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 Gi}static get DefaultType(){return Ji}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=c(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&&(j.off(this._config.target,Ki),j.on(this._config.target,Ki,Xi,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,s=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:s,behavior:"smooth"});i.scrollTop=s}})))}_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))},s=(this._rootElement||document.documentElement).scrollTop,n=s>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=s;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(n&&t){if(i(o),!s)return}else n||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=K.find(Xi,this._config.target);for(const e of t){if(!e.hash||d(e))continue;const t=K.findOne(decodeURI(e.hash),this._element);h(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(Qi),this._activateParents(t),j.trigger(this._element,Ri,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))K.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(Qi);else for(const e of K.parents(t,".nav, .list-group"))for(const t of K.prev(e,Ui))t.classList.add(Qi)}_clearActiveClass(t){t.classList.remove(Qi);const e=K.find(`${Xi}.${Qi}`,t);for(const t of e)t.classList.remove(Qi)}static jQueryInterface(t){return this.each((function(){const e=Zi.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]()}}))}}j.on(window,Vi,(()=>{for(const t of K.find('[data-bs-spy="scroll"]'))Zi.getOrCreateInstance(t)})),b(Zi);const ts=".bs.tab",es=`hide${ts}`,is=`hidden${ts}`,ss=`show${ts}`,ns=`shown${ts}`,os=`click${ts}`,rs=`keydown${ts}`,as=`load${ts}`,ls="ArrowLeft",cs="ArrowRight",hs="ArrowUp",ds="ArrowDown",us="Home",_s="End",gs="active",fs="fade",ms="show",ps=".dropdown-toggle",bs=`:not(${ps})`,vs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',ys=`.nav-link${bs}, .list-group-item${bs}, [role="tab"]${bs}, ${vs}`,ws=`.${gs}[data-bs-toggle="tab"], .${gs}[data-bs-toggle="pill"], .${gs}[data-bs-toggle="list"]`;class As extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),j.on(this._element,rs,(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?j.trigger(e,es,{relatedTarget:t}):null;j.trigger(t,ss,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(gs),this._activate(K.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),j.trigger(t,ns,{relatedTarget:e})):t.classList.add(ms)}),t,t.classList.contains(fs)))}_deactivate(t,e){t&&(t.classList.remove(gs),t.blur(),this._deactivate(K.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),j.trigger(t,is,{relatedTarget:e})):t.classList.remove(ms)}),t,t.classList.contains(fs)))}_keydown(t){if(![ls,cs,hs,ds,us,_s].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!d(t)));let i;if([us,_s].includes(t.key))i=e[t.key===us?0:e.length-1];else{const s=[cs,ds].includes(t.key);i=w(e,t.target,s,!0)}i&&(i.focus({preventScroll:!0}),As.getOrCreateInstance(i).show())}_getChildren(){return K.find(ys,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=K.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 s=(t,s)=>{const n=K.findOne(t,i);n&&n.classList.toggle(s,e)};s(ps,gs),s(".dropdown-menu",ms),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(gs)}_getInnerElement(t){return t.matches(ys)?t:K.findOne(ys,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=As.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(document,os,vs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),d(this)||As.getOrCreateInstance(this).show()})),j.on(window,as,(()=>{for(const t of K.find(ws))As.getOrCreateInstance(t)})),b(As);const Es=".bs.toast",Cs=`mouseover${Es}`,Ts=`mouseout${Es}`,ks=`focusin${Es}`,$s=`focusout${Es}`,Ss=`hide${Es}`,Ls=`hidden${Es}`,Os=`show${Es}`,Is=`shown${Es}`,Ds="hide",Ns="show",Ps="showing",xs={animation:"boolean",autohide:"boolean",delay:"number"},Ms={animation:!0,autohide:!0,delay:5e3};class js extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Ms}static get DefaultType(){return xs}static get NAME(){return"toast"}show(){j.trigger(this._element,Os).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(Ds),g(this._element),this._element.classList.add(Ns,Ps),this._queueCallback((()=>{this._element.classList.remove(Ps),j.trigger(this._element,Is),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(j.trigger(this._element,Ss).defaultPrevented||(this._element.classList.add(Ps),this._queueCallback((()=>{this._element.classList.add(Ds),this._element.classList.remove(Ps,Ns),j.trigger(this._element,Ls)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(Ns),super.dispose()}isShown(){return this._element.classList.contains(Ns)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){j.on(this._element,Cs,(t=>this._onInteraction(t,!0))),j.on(this._element,Ts,(t=>this._onInteraction(t,!1))),j.on(this._element,ks,(t=>this._onInteraction(t,!0))),j.on(this._element,$s,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=js.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return V(js),b(js),{Alert:U,Button:J,Carousel:Dt,Collapse:Vt,Dropdown:pe,Modal:Je,Offcanvas:mi,Popover:qi,ScrollSpy:Zi,Tab:As,Toast:js,Tooltip:ji}})); +//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file diff --git a/js/chart.min.js b/js/chart.min.js new file mode 100644 index 0000000..a6caf62 --- /dev/null +++ b/js/chart.min.js @@ -0,0 +1,14 @@ +/*! + * Chart.js v4.5.1 + * https://www.chartjs.org + * (c) 2025 Chart.js Contributors + * Released under the MIT 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).Chart=e()}(this,(function(){"use strict";var t=Object.freeze({__proto__:null,get Colors(){return Jo},get Decimation(){return ta},get Filler(){return ba},get Legend(){return Ma},get SubTitle(){return Pa},get Title(){return ka},get Tooltip(){return Na}});function e(){}const i=(()=>{let t=0;return()=>t++})();function s(t){return null==t}function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function o(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function a(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function r(t,e){return a(t)?t:e}function l(t,e){return void 0===t?e:t}const h=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,c=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function d(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;at,x:t=>t.x,y:t=>t.y};function v(t){const e=t.split("."),i=[];let s="";for(const t of e)s+=t,s.endsWith("\\")?s=s.slice(0,-1)+".":(i.push(s),s="");return i}function M(t,e){const i=y[e]||(y[e]=function(t){const e=v(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function w(t){return t.charAt(0).toUpperCase()+t.slice(1)}const k=t=>void 0!==t,S=t=>"function"==typeof t,P=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function D(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const C=Math.PI,O=2*C,A=O+C,T=Number.POSITIVE_INFINITY,L=C/180,E=C/2,R=C/4,I=2*C/3,z=Math.log10,F=Math.sign;function V(t,e,i){return Math.abs(t-e)t-e)).pop(),e}function N(t){return!function(t){return"symbol"==typeof t||"object"==typeof t&&null!==t&&!(Symbol.toPrimitive in t||"toString"in t||"valueOf"in t)}(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function H(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function j(t,e,i){let s,n,o;for(s=0,n=t.length;sl&&h=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function et(t,e,i){i=i||(i=>t[i]1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const it=(t,e,i,s)=>et(t,i,s?s=>{const n=t[s][e];return nt[s][e]et(t,i,(s=>t[s][e]>=i));function nt(t,e,i){let s=0,n=t.length;for(;ss&&t[n-1]>i;)n--;return s>0||n{const i="_onData"+w(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"==typeof t[i]&&t[i](...e)})),n}})})))}function rt(t,e){const i=t._chartjs;if(!i)return;const s=i.listeners,n=s.indexOf(e);-1!==n&&s.splice(n,1),s.length>0||(ot.forEach((e=>{delete t[e]})),delete t._chartjs)}function lt(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const ht="undefined"==typeof window?function(t){return t()}:window.requestAnimationFrame;function ct(t,e){let i=[],s=!1;return function(...n){i=n,s||(s=!0,ht.call(window,(()=>{s=!1,t.apply(e,i)})))}}function dt(t,e){let i;return function(...s){return e?(clearTimeout(i),i=setTimeout(t,e,s)):t.apply(this,s),e}}const ut=t=>"start"===t?"left":"end"===t?"right":"center",ft=(t,e,i)=>"start"===t?e:"end"===t?i:(e+i)/2,gt=(t,e,i,s)=>t===(s?"left":"right")?i:"center"===t?(e+i)/2:e;function pt(t,e,i){const n=e.length;let o=0,a=n;if(t._sorted){const{iScale:r,vScale:l,_parsed:h}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,d=r.axis,{min:u,max:f,minDefined:g,maxDefined:p}=r.getUserBounds();if(g){if(o=Math.min(it(h,d,u).lo,i?n:it(e,d,r.getPixelForValue(u)).lo),c){const t=h.slice(0,o+1).reverse().findIndex((t=>!s(t[l.axis])));o-=Math.max(0,t)}o=Z(o,0,n-1)}if(p){let t=Math.max(it(h,r.axis,f,!0).hi+1,i?0:it(e,d,r.getPixelForValue(f),!0).hi+1);if(c){const e=h.slice(t-1).findIndex((t=>!s(t[l.axis])));t+=Math.max(0,e)}a=Z(t,o,n)-o}else a=n-o}return{start:o,count:a}}function mt(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!s)return t._scaleRanges=n,!0;const o=s.xmin!==e.min||s.xmax!==e.max||s.ymin!==i.min||s.ymax!==i.max;return Object.assign(s,n),o}class xt{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,s){const n=e.listeners[s],o=e.duration;n.forEach((s=>s({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=ht.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,s)=>{if(!i.running||!i.items.length)return;const n=i.items;let o,a=n.length-1,r=!1;for(;a>=0;--a)o=n[a],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),r=!0):(n[a]=n[n.length-1],n.pop());r&&(s.draw(),this._notify(s,i,t,"progress")),n.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),e+=n.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var bt=new xt; +/*! + * @kurkle/color v0.3.2 + * https://github.com/kurkle/color#readme + * (c) 2023 Jukka Kurkela + * Released under the MIT License + */function _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t/2.55)/100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[..."0123456789ABCDEF"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Tt=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Yt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Ut=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),s=Ft(s),t.r=s[0],t.g=s[1],t.b=s[2]}}function qt(t,e){return t?Object.assign(e||{},t):t}function Kt(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Mt(t[3]))):(e=qt(t,{r:0,g:0,b:0,a:1})).a=Mt(e.a),e}function Gt(t){return"r"===t.charAt(0)?function(t){const e=$t.exec(t);let i,s,n,o=255;if(e){if(e[7]!==i){const t=+e[7];o=e[8]?vt(t):yt(255*t,0,255)}return i=+e[1],s=+e[3],n=+e[5],i=255&(e[2]?vt(i):yt(i,0,255)),s=255&(e[4]?vt(s):yt(s,0,255)),n=255&(e[6]?vt(n):yt(n,0,255)),{r:i,g:s,b:n,a:o}}}(t):Bt(t)}class Jt{constructor(t){if(t instanceof Jt)return t;const e=typeof t;let i;var s,n,o;"object"===e?i=Kt(t):"string"===e&&(o=(s=t).length,"#"===s[0]&&(4===o||5===o?n={r:255&17*St[s[1]],g:255&17*St[s[2]],b:255&17*St[s[3]],a:5===o?17*St[s[4]]:255}:7!==o&&9!==o||(n={r:St[s[1]]<<4|St[s[2]],g:St[s[3]]<<4|St[s[4]],b:St[s[5]]<<4|St[s[6]],a:9===o?St[s[7]]<<4|St[s[8]]:255})),i=n||jt(t)||Gt(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=qt(this._rgb);return t&&(t.a=wt(t.a)),t}set rgb(t){this._rgb=Kt(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${wt(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):void 0;var t}hexString(){return this._valid?At(this._rgb):void 0}hslString(){return this._valid?function(t){if(!t)return;const e=It(t),i=e[0],s=kt(e[1]),n=kt(e[2]);return t.a<255?`hsla(${i}, ${s}%, ${n}%, ${wt(t.a)})`:`hsl(${i}, ${s}%, ${n}%)`}(this._rgb):void 0}mix(t,e){if(t){const i=this.rgb,s=t.rgb;let n;const o=e===n?.5:e,a=2*o-1,r=i.a-s.a,l=((a*r==-1?a:(a+r)/(1+a*r))+1)/2;n=1-l,i.r=255&l*i.r+n*s.r+.5,i.g=255&l*i.g+n*s.g+.5,i.b=255&l*i.b+n*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=function(t,e,i){const s=Ut(wt(t.r)),n=Ut(wt(t.g)),o=Ut(wt(t.b));return{r:Mt(Yt(s+i*(Ut(wt(e.r))-s))),g:Mt(Yt(n+i*(Ut(wt(e.g))-n))),b:Mt(Yt(o+i*(Ut(wt(e.b))-o))),a:t.a+i*(e.a-t.a)}}(this._rgb,t._rgb,e)),this}clone(){return new Jt(this.rgb)}alpha(t){return this._rgb.a=Mt(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=_t(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Xt(this._rgb,2,t),this}darken(t){return Xt(this._rgb,2,-t),this}saturate(t){return Xt(this._rgb,1,t),this}desaturate(t){return Xt(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=It(t);i[0]=Vt(i[0]+e),i=Ft(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function Zt(t){if(t&&"object"==typeof t){const e=t.toString();return"[object CanvasPattern]"===e||"[object CanvasGradient]"===e}return!1}function Qt(t){return Zt(t)?t:new Jt(t)}function te(t){return Zt(t)?t:new Jt(t).saturate(.5).darken(.1).hexString()}const ee=["x","y","borderWidth","radius","tension"],ie=["color","borderColor","backgroundColor"];const se=new Map;function ne(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let s=se.get(i);return s||(s=new Intl.NumberFormat(t,e),se.set(i,s)),s}(e,i).format(t)}const oe={values:t=>n(t)?t:""+t,numeric(t,e,i){if(0===t)return"0";const s=this.chart.options.locale;let n,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e<1e-4||e>1e15)&&(n="scientific"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const a=z(Math.abs(o)),r=isNaN(a)?1:Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),ne(t,s,l)},logarithmic(t,e,i){if(0===t)return"0";const s=i[e].significand||t/Math.pow(10,Math.floor(z(t)));return[1,2,3,5,10,15].includes(s)||e>.8*i.length?oe.numeric.call(this,t,e,i):""}};var ae={formatters:oe};const re=Object.create(null),le=Object.create(null);function he(t,e){if(!e)return t;const i=e.split(".");for(let e=0,s=i.length;et.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>te(e.backgroundColor),this.hoverBorderColor=(t,e)=>te(e.borderColor),this.hoverColor=(t,e)=>te(e.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return ce(this,t,e)}get(t){return he(this,t)}describe(t,e){return ce(le,t,e)}override(t,e){return ce(re,t,e)}route(t,e,i,s){const n=he(this,t),a=he(this,i),r="_"+e;Object.defineProperties(n,{[r]:{value:n[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[r],e=a[s];return o(t)?Object.assign({},e,t):l(t,e)},set(t){this[r]=t}}})}apply(t){t.forEach((t=>t(this)))}}var ue=new de({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>"onProgress"!==t&&"onComplete"!==t&&"fn"!==t}),t.set("animations",{colors:{type:"color",properties:ie},numbers:{type:"number",properties:ee}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>0|t}}}})},function(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ae.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&"callback"!==t&&"parser"!==t,_indexable:t=>"borderDash"!==t&&"tickBorderDash"!==t&&"dash"!==t}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:t=>"backdropPadding"!==t&&"callback"!==t,_indexable:t=>"backdropPadding"!==t})}]);function fe(){return"undefined"!=typeof window&&"undefined"!=typeof document}function ge(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e}function pe(t,e,i){let s;return"string"==typeof t?(s=parseInt(t,10),-1!==t.indexOf("%")&&(s=s/100*e.parentNode[i])):s=t,s}const me=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);function xe(t,e){return me(t).getPropertyValue(e)}const be=["top","right","bottom","left"];function _e(t,e,i){const s={};i=i?"-"+i:"";for(let n=0;n<4;n++){const o=be[n];s[o]=parseFloat(t[e+"-"+o+i])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}const ye=(t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot);function ve(t,e){if("native"in t)return t;const{canvas:i,currentDevicePixelRatio:s}=e,n=me(i),o="border-box"===n.boxSizing,a=_e(n,"padding"),r=_e(n,"border","width"),{x:l,y:h,box:c}=function(t,e){const i=t.touches,s=i&&i.length?i[0]:t,{offsetX:n,offsetY:o}=s;let a,r,l=!1;if(ye(n,o,t.target))a=n,r=o;else{const t=e.getBoundingClientRect();a=s.clientX-t.left,r=s.clientY-t.top,l=!0}return{x:a,y:r,box:l}}(t,i),d=a.left+(c&&r.left),u=a.top+(c&&r.top);let{width:f,height:g}=e;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)/f*i.width/s),y:Math.round((h-u)/g*i.height/s)}}const Me=t=>Math.round(10*t)/10;function we(t,e,i,s){const n=me(t),o=_e(n,"margin"),a=pe(n.maxWidth,t,"clientWidth")||T,r=pe(n.maxHeight,t,"clientHeight")||T,l=function(t,e,i){let s,n;if(void 0===e||void 0===i){const o=t&&ge(t);if(o){const t=o.getBoundingClientRect(),a=me(o),r=_e(a,"border","width"),l=_e(a,"padding");e=t.width-l.width-r.width,i=t.height-l.height-r.height,s=pe(a.maxWidth,o,"clientWidth"),n=pe(a.maxHeight,o,"clientHeight")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:s||T,maxHeight:n||T}}(t,e,i);let{width:h,height:c}=l;if("content-box"===n.boxSizing){const t=_e(n,"border","width"),e=_e(n,"padding");h-=e.width+t.width,c-=e.height+t.height}h=Math.max(0,h-o.width),c=Math.max(0,s?h/s:c-o.height),h=Me(Math.min(h,a,l.maxWidth)),c=Me(Math.min(c,r,l.maxHeight)),h&&!c&&(c=Me(h/2));return(void 0!==e||void 0!==i)&&s&&l.height&&c>l.height&&(c=l.height,h=Me(Math.floor(c*s))),{width:h,height:c}}function ke(t,e,i){const s=e||1,n=Me(t.height*s),o=Me(t.width*s);t.height=Me(t.height),t.width=Me(t.width);const a=t.canvas;return a.style&&(i||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==s||a.height!==n||a.width!==o)&&(t.currentDevicePixelRatio=s,a.height=n,a.width=o,t.ctx.setTransform(s,0,0,s,0,0),!0)}const Se=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};fe()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch(t){}return t}();function Pe(t,e){const i=xe(t,e),s=i&&i.match(/^(\d+)(\.\d+)?px$/);return s?+s[1]:void 0}function De(t){return!t||s(t.size)||s(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function Ce(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).width,i.push(n)),o>s&&(s=o),s}function Oe(t,e,i,s){let o=(s=s||{}).data=s.data||{},a=s.garbageCollect=s.garbageCollect||[];s.font!==e&&(o=s.data={},a=s.garbageCollect=[],s.font=e),t.save(),t.font=e;let r=0;const l=i.length;let h,c,d,u,f;for(h=0;hi.length){for(h=0;h0&&t.stroke()}}function Re(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.xe.top-i&&t.y0&&""!==r.strokeColor;let c,d;for(t.save(),t.font=a.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]),s(e.rotation)||t.rotate(e.rotation),e.color&&(t.fillStyle=e.color),e.textAlign&&(t.textAlign=e.textAlign),e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,r),c=0;ct[0])){const o=i||t;void 0===s&&(s=ti("_fallback",t));const a={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:o,_fallback:s,_getTarget:n,override:i=>je([i,...t],e,o,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete e._keys,delete t[0][i],!0),get:(i,s)=>qe(i,s,(()=>function(t,e,i,s){let n;for(const o of e)if(n=ti(Ue(o,t),i),void 0!==n)return Xe(t,n)?Ze(i,s,t,n):n}(s,e,t,i))),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0],e),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(t,e)=>ei(t).includes(e),ownKeys:t=>ei(t),set(t,e,i){const s=t._storage||(t._storage=n());return t[e]=s[e]=i,delete t._keys,!0}})}function $e(t,e,i,s){const a={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:Ye(t,s),setContext:e=>$e(t,e,i,s),override:n=>$e(t.override(n),e,i,s)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete t[i],!0),get:(t,e,i)=>qe(t,e,(()=>function(t,e,i){const{_proxy:s,_context:a,_subProxy:r,_descriptors:l}=t;let h=s[e];S(h)&&l.isScriptable(e)&&(h=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=i;if(r.has(t))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+t);r.add(t);let l=e(o,a||s);r.delete(t),Xe(t,l)&&(l=Ze(n._scopes,n,t,l));return l}(e,h,t,i));n(h)&&h.length&&(h=function(t,e,i,s){const{_proxy:n,_context:a,_subProxy:r,_descriptors:l}=i;if(void 0!==a.index&&s(t))return e[a.index%e.length];if(o(e[0])){const i=e,s=n._scopes.filter((t=>t!==i));e=[];for(const o of i){const i=Ze(s,n,t,o);e.push($e(i,a,r&&r[t],l))}}return e}(e,h,t,l.isIndexable));Xe(e,h)&&(h=$e(h,a,r&&r[e],l));return h}(t,e,i))),getOwnPropertyDescriptor:(e,i)=>e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(e,i)=>Reflect.has(t,i),ownKeys:()=>Reflect.ownKeys(t),set:(e,i,s)=>(t[i]=s,delete e[i],!0)})}function Ye(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:s=e.indexable,_allKeys:n=e.allKeys}=t;return{allKeys:n,scriptable:i,indexable:s,isScriptable:S(i)?i:()=>i,isIndexable:S(s)?s:()=>s}}const Ue=(t,e)=>t?t+w(e):e,Xe=(t,e)=>o(e)&&"adapters"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function qe(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e)||"constructor"===e)return t[e];const s=i();return t[e]=s,s}function Ke(t,e,i){return S(t)?t(e,i):t}const Ge=(t,e)=>!0===t?e:"string"==typeof t?M(e,t):void 0;function Je(t,e,i,s,n){for(const o of e){const e=Ge(i,o);if(e){t.add(e);const o=Ke(e._fallback,i,n);if(void 0!==o&&o!==i&&o!==s)return o}else if(!1===e&&void 0!==s&&i!==s)return null}return!1}function Ze(t,e,i,s){const a=e._rootScopes,r=Ke(e._fallback,i,s),l=[...t,...a],h=new Set;h.add(s);let c=Qe(h,l,i,r||i,s);return null!==c&&((void 0===r||r===i||(c=Qe(h,l,r,c,s),null!==c))&&je(Array.from(h),[""],a,r,(()=>function(t,e,i){const s=t._getTarget();e in s||(s[e]={});const a=s[e];if(n(a)&&o(i))return i;return a||{}}(e,i,s))))}function Qe(t,e,i,s,n){for(;i;)i=Je(t,e,i,s,n);return i}function ti(t,e){for(const i of e){if(!i)continue;const e=i[t];if(void 0!==e)return e}}function ei(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter((t=>!t.startsWith("_"))))e.add(t);return Array.from(e)}(t._scopes)),e}function ii(t,e,i,s){const{iScale:n}=t,{key:o="r"}=this._parsing,a=new Array(s);let r,l,h,c;for(r=0,l=s;re"x"===t?"y":"x";function ai(t,e,i,s){const n=t.skip?e:t,o=e,a=i.skip?e:i,r=q(o,n),l=q(a,o);let h=r/(r+l),c=l/(r+l);h=isNaN(h)?0:h,c=isNaN(c)?0:c;const d=s*h,u=s*c;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function ri(t,e="x"){const i=oi(e),s=t.length,n=Array(s).fill(0),o=Array(s);let a,r,l,h=ni(t,0);for(a=0;a!t.skip))),"monotone"===e.cubicInterpolationMode)ri(t,n);else{let i=s?t[t.length-1]:t[0];for(o=0,a=t.length;o0===t||1===t,di=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*O/i),ui=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*O/i)+1,fi={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*E),easeOutSine:t=>Math.sin(t*E),easeInOutSine:t=>-.5*(Math.cos(C*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>ci(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>ci(t)?t:di(t,.075,.3),easeOutElastic:t=>ci(t)?t:ui(t,.075,.3),easeInOutElastic(t){const e=.1125;return ci(t)?t:t<.5?.5*di(2*t,e,.45):.5+.5*ui(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-fi.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375},easeInOutBounce:t=>t<.5?.5*fi.easeInBounce(2*t):.5*fi.easeOutBounce(2*t-1)+.5};function gi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function pi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:"middle"===s?i<.5?t.y:e.y:"after"===s?i<1?t.y:e.y:i>0?e.y:t.y}}function mi(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=gi(t,n,i),r=gi(n,o,i),l=gi(o,e,i),h=gi(a,r,i),c=gi(r,l,i);return gi(h,c,i)}const xi=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,bi=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function _i(t,e){const i=(""+t).match(xi);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t}const yi=t=>+t||0;function vi(t,e){const i={},s=o(e),n=s?Object.keys(e):e,a=o(t)?s?i=>l(t[i],t[e[i]]):e=>t[e]:()=>t;for(const t of n)i[t]=yi(a(t));return i}function Mi(t){return vi(t,{top:"y",right:"x",bottom:"y",left:"x"})}function wi(t){return vi(t,["topLeft","topRight","bottomLeft","bottomRight"])}function ki(t){const e=Mi(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function Si(t,e){t=t||{},e=e||ue.font;let i=l(t.size,e.size);"string"==typeof i&&(i=parseInt(i,10));let s=l(t.style,e.style);s&&!(""+s).match(bi)&&(console.warn('Invalid font style specified: "'+s+'"'),s=void 0);const n={family:l(t.family,e.family),lineHeight:_i(l(t.lineHeight,e.lineHeight),i),size:i,style:s,weight:l(t.weight,e.weight),string:""};return n.string=De(n),n}function Pi(t,e,i,s){let o,a,r,l=!0;for(o=0,a=t.length;oi&&0===t?0:t+e;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function Ci(t,e){return Object.assign(Object.create(t),e)}function Oi(t,e,i){return t?function(t,e){return{x:i=>t+t+e-i,setWidth(t){e=t},textAlign:t=>"center"===t?t:"right"===t?"left":"right",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}}(e,i):{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}}function Ai(t,e){let i,s;"ltr"!==e&&"rtl"!==e||(i=t.canvas.style,s=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",e,"important"),t.prevTextDirection=s)}function Ti(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Li(t){return"angle"===t?{between:J,compare:K,normalize:G}:{between:tt,compare:(t,e)=>t-e,normalize:t=>t}}function Ei({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end:e%i,loop:s&&(e-t+1)%i==0,style:n}}function Ri(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e.length,{compare:r,between:l,normalize:h}=Li(s),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:s,start:n,end:o}=i,{between:a,normalize:r}=Li(s),l=e.length;let h,c,{start:d,end:u,loop:f}=t;if(f){for(d+=l,u+=l,h=0,c=l;hb||l(n,x,p)&&0!==r(n,x),v=()=>!b||0===r(o,p)||l(o,x,p);for(let t=c,i=c;t<=d;++t)m=e[t%a],m.skip||(p=h(m[s]),p!==x&&(b=l(p,n,o),null===_&&y()&&(_=0===r(p,n)?t:i),null!==_&&v()&&(g.push(Ei({start:_,end:t,loop:u,count:a,style:f})),_=null),i=t,x=p));return null!==_&&g.push(Ei({start:_,end:d,loop:u,count:a,style:f})),g}function Ii(t,e){const i=[],s=t.segments;for(let n=0;nn&&t[o%e].skip;)o--;return o%=e,{start:n,end:o}}(i,n,o,s);if(!0===s)return Fi(t,[{start:a,end:r,loop:o}],i,e);return Fi(t,function(t,e,i,s){const n=t.length,o=[];let a,r=e,l=t[e];for(a=e+1;a<=i;++a){const i=t[a%n];i.skip||i.stop?l.skip||(s=!1,o.push({start:e%n,end:(a-1)%n,loop:s}),e=r=i.stop?a:null):(r=a,l.skip&&(e=a)),l=i}return null!==r&&o.push({start:e%n,end:r%n,loop:s}),o}(i,a,r!s(t[e.axis])));n.lo-=Math.max(0,a);const r=i.slice(n.hi).findIndex((t=>!s(t[e.axis])));n.hi+=Math.max(0,r)}return n}if(o._sharedOptions){const t=a[0],s="function"==typeof t.getRange&&t.getRange(e);if(s){const t=r(a,e,i-s),n=r(a,e,i+s);return{lo:t.lo,hi:n.hi}}}}return{lo:0,hi:a.length-1}}function $i(t,e,i,s,n){const o=t.getSortedVisibleDatasetMetas(),a=i[e];for(let t=0,i=o.length;t{t[a]&&t[a](e[i],n)&&(o.push({element:t,datasetIndex:s,index:l}),r=r||t.inRange(e.x,e.y,n))})),s&&!r?[]:o}var Ki={evaluateInteractionItems:$i,modes:{index(t,e,i,s){const n=ve(e,t),o=i.axis||"x",a=i.includeInvisible||!1,r=i.intersect?Yi(t,n,o,s,a):Xi(t,n,o,!1,s,a),l=[];return r.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=r[0].index,i=t.data[e];i&&!i.skip&&l.push({element:i,datasetIndex:t.index,index:e})})),l):[]},dataset(t,e,i,s){const n=ve(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;let r=i.intersect?Yi(t,n,o,s,a):Xi(t,n,o,!1,s,a);if(r.length>0){const e=r[0].datasetIndex,i=t.getDatasetMeta(e).data;r=[];for(let t=0;tYi(t,ve(e,t),i.axis||"xy",s,i.includeInvisible||!1),nearest(t,e,i,s){const n=ve(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;return Xi(t,n,o,i.intersect,s,a)},x:(t,e,i,s)=>qi(t,ve(e,t),"x",i.intersect,s),y:(t,e,i,s)=>qi(t,ve(e,t),"y",i.intersect,s)}};const Gi=["left","top","right","bottom"];function Ji(t,e){return t.filter((t=>t.pos===e))}function Zi(t,e){return t.filter((t=>-1===Gi.indexOf(t.pos)&&t.box.axis===e))}function Qi(t,e){return t.sort(((t,i)=>{const s=e?i:t,n=e?t:i;return s.weight===n.weight?s.index-n.index:s.weight-n.weight}))}function ts(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:s,stackWeight:n}=i;if(!t||!Gi.includes(s))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=n}return e}(t),{vBoxMaxWidth:s,hBoxMaxHeight:n}=e;let o,a,r;for(o=0,a=t.length;o{s[t]=Math.max(e[t],i[t])})),s}return s(t?["left","right"]:["top","bottom"])}function os(t,e,i,s){const n=[];let o,a,r,l,h,c;for(o=0,a=t.length,h=0;ot.box.fullSize)),!0),s=Qi(Ji(e,"left"),!0),n=Qi(Ji(e,"right")),o=Qi(Ji(e,"top"),!0),a=Qi(Ji(e,"bottom")),r=Zi(e,"x"),l=Zi(e,"y");return{fullSize:i,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:Ji(e,"chartArea"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}(t.boxes),l=r.vertical,h=r.horizontal;u(t.boxes,(t=>{"function"==typeof t.beforeLayout&&t.beforeLayout()}));const c=l.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,d=Object.freeze({outerWidth:e,outerHeight:i,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/c,hBoxMaxHeight:a/2}),f=Object.assign({},n);is(f,ki(s));const g=Object.assign({maxPadding:f,w:o,h:a,x:n.left,y:n.top},n),p=ts(l.concat(h),d);os(r.fullSize,g,d,p),os(l,g,d,p),os(h,g,d,p)&&os(l,g,d,p),function(t){const e=t.maxPadding;function i(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=i("top"),t.x+=i("left"),i("right"),i("bottom")}(g),rs(r.leftAndTop,g,d,p),g.x+=g.w,g.y+=g.h,rs(r.rightAndBottom,g,d,p),t.chartArea={left:g.left,top:g.top,right:g.left+g.w,bottom:g.top+g.h,height:g.h,width:g.w},u(r.chartArea,(e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(g.w,g.h,{left:0,top:0,right:0,bottom:0})}))}};class hs{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e/s):i)}}isAttached(t){return!0}updateConfig(t){}}class cs extends hs{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const ds="$chartjs",us={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},fs=t=>null===t||""===t;const gs=!!Se&&{passive:!0};function ps(t,e,i){t&&t.canvas&&t.canvas.removeEventListener(e,i,gs)}function ms(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function xs(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ms(i.addedNodes,s),e=e&&!ms(i.removedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}function bs(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ms(i.removedNodes,s),e=e&&!ms(i.addedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}const _s=new Map;let ys=0;function vs(){const t=window.devicePixelRatio;t!==ys&&(ys=t,_s.forEach(((e,i)=>{i.currentDevicePixelRatio!==t&&e()})))}function Ms(t,e,i){const s=t.canvas,n=s&&ge(s);if(!n)return;const o=ct(((t,e)=>{const s=n.clientWidth;i(t,e),s{const e=t[0],i=e.contentRect.width,s=e.contentRect.height;0===i&&0===s||o(i,s)}));return a.observe(n),function(t,e){_s.size||window.addEventListener("resize",vs),_s.set(t,e)}(t,o),a}function ws(t,e,i){i&&i.disconnect(),"resize"===e&&function(t){_s.delete(t),_s.size||window.removeEventListener("resize",vs)}(t)}function ks(t,e,i){const s=t.canvas,n=ct((e=>{null!==t.ctx&&i(function(t,e){const i=us[t.type]||t.type,{x:s,y:n}=ve(t,e);return{type:i,chart:e,native:t,x:void 0!==s?s:null,y:void 0!==n?n:null}}(e,t))}),t);return function(t,e,i){t&&t.addEventListener(e,i,gs)}(s,e,n),n}class Ss extends hs{acquireContext(t,e){const i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){const i=t.style,s=t.getAttribute("height"),n=t.getAttribute("width");if(t[ds]={initial:{height:s,width:n,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",fs(n)){const e=Pe(t,"width");void 0!==e&&(t.width=e)}if(fs(s))if(""===t.style.height)t.height=t.width/(e||2);else{const e=Pe(t,"height");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e[ds])return!1;const i=e[ds].initial;["height","width"].forEach((t=>{const n=i[t];s(n)?e.removeAttribute(t):e.setAttribute(t,n)}));const n=i.style||{};return Object.keys(n).forEach((t=>{e.style[t]=n[t]})),e.width=e.width,delete e[ds],!0}addEventListener(t,e,i){this.removeEventListener(t,e);const s=t.$proxies||(t.$proxies={}),n={attach:xs,detach:bs,resize:Ms}[e]||ks;s[e]=n(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:ws,detach:ws,resize:ws}[e]||ps)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return we(t,e,i,s)}isAttached(t){const e=t&&ge(t);return!(!e||!e.isConnected)}}function Ps(t){return!fe()||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas?cs:Ss}var Ds=Object.freeze({__proto__:null,BasePlatform:hs,BasicPlatform:cs,DomPlatform:Ss,_detectPlatform:Ps});const Cs="transparent",Os={boolean:(t,e,i)=>i>.5?e:t,color(t,e,i){const s=Qt(t||Cs),n=s.valid&&Qt(e||Cs);return n&&n.valid?n.mix(s,i).hexString():e},number:(t,e,i)=>t+(e-t)*i};class As{constructor(t,e,i,s){const n=e[i];s=Pi([t.to,s,n,t.from]);const o=Pi([t.from,n,s]);this._active=!0,this._fn=t.fn||Os[t.type||typeof o],this._easing=fi[t.easing]||fi.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const s=this._target[this._prop],n=i-this._start,o=this._duration-n;this._start=i,this._duration=Math.floor(Math.max(o,t.duration)),this._total+=n,this._loop=!!t.loop,this._to=Pi([t.to,e,s,t.from]),this._from=Pi([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,s=this._prop,n=this._from,o=this._loop,a=this._to;let r;if(this._active=n!==a&&(o||e1?2-r:r,r=this._easing(Math.min(1,Math.max(0,r))),this._target[s]=this._fn(n,a,r))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,i)=>{t.push({res:e,rej:i})}))}_notify(t){const e=t?"res":"rej",i=this._promises||[];for(let t=0;t{const a=t[s];if(!o(a))return;const r={};for(const t of e)r[t]=a[t];(n(a.properties)&&a.properties||[s]).forEach((t=>{t!==s&&i.has(t)||i.set(t,r)}))}))}_animateOptions(t,e){const i=e.options,s=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!s)return[];const n=this._createAnimations(s,i);return i.$shared&&function(t,e){const i=[],s=Object.keys(e);for(let e=0;e{t.options=i}),(()=>{})),n}_createAnimations(t,e){const i=this._properties,s=[],n=t.$animations||(t.$animations={}),o=Object.keys(e),a=Date.now();let r;for(r=o.length-1;r>=0;--r){const l=o[r];if("$"===l.charAt(0))continue;if("options"===l){s.push(...this._animateOptions(t,e));continue}const h=e[l];let c=n[l];const d=i.get(l);if(c){if(d&&c.active()){c.update(d,h,a);continue}c.cancel()}d&&d.duration?(n[l]=c=new As(d,t,l,h),s.push(c)):t[l]=h}return s}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(bt.add(this._chart,i),!0):void 0}}function Ls(t,e){const i=t&&t.options||{},s=i.reverse,n=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:s?o:n,end:s?n:o}}function Es(t,e){const i=[],s=t._getSortedDatasetMetas(e);let n,o;for(n=0,o=s.length;n0||!i&&e<0)return n.index}return null}function Vs(t,e){const{chart:i,_cachedMeta:s}=t,n=i._stacks||(i._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,h=a.axis,c=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,a,s),d=e.length;let u;for(let t=0;ti[t].axis===e)).shift()}function Ws(t,e){const i=t.controller.index,s=t.vScale&&t.vScale.axis;if(s){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[s]||void 0===e[s][i])return;delete e[s][i],void 0!==e[s]._visualValues&&void 0!==e[s]._visualValues[i]&&delete e[s]._visualValues[i]}}}const Ns=t=>"reset"===t||"none"===t,Hs=(t,e)=>e?t:Object.assign({},t);class js{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=Is(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&Ws(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(t,e,i,s)=>"x"===t?e:"r"===t?s:i,n=e.xAxisID=l(i.xAxisID,Bs(t,"x")),o=e.yAxisID=l(i.yAxisID,Bs(t,"y")),a=e.rAxisID=l(i.rAxisID,Bs(t,"r")),r=e.indexAxis,h=e.iAxisID=s(r,n,o,a),c=e.vAxisID=s(r,o,n,a);e.xScale=this.getScaleForId(n),e.yScale=this.getScaleForId(o),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(h),e.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&rt(this._data,this),t._stacked&&Ws(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(o(e)){const t=this._cachedMeta;this._data=function(t,e){const{iScale:i,vScale:s}=e,n="x"===i.axis?"x":"y",o="x"===s.axis?"x":"y",a=Object.keys(t),r=new Array(a.length);let l,h,c;for(l=0,h=a.length;l0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=s,i._sorted=!0,d=s;else{d=n(s[t])?this.parseArrayData(i,s,t,e):o(s[t])?this.parseObjectData(i,s,t,e):this.parsePrimitiveData(i,s,t,e);const a=()=>null===c[l]||f&&c[l]t&&!e.hidden&&e._stacked&&{keys:Es(i,!0),values:null})(e,i,this.chart),h={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:c,max:d}=function(t){const{min:e,max:i,minDefined:s,maxDefined:n}=t.getUserBounds();return{min:s?e:Number.NEGATIVE_INFINITY,max:n?i:Number.POSITIVE_INFINITY}}(r);let u,f;function g(){f=s[u];const e=f[r.axis];return!a(f[t.axis])||c>e||d=0;--u)if(!g()){this.updateRangeFromParsed(h,t,f,l);break}return h}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,n,o;for(s=0,n=e.length;s=0&&tthis.getContext(i,s,e)),c);return f.$shared&&(f.$shared=r,n[o]=Object.freeze(Hs(f,r))),f}_resolveAnimations(t,e,i){const s=this.chart,n=this._cachedDataOpts,o=`animation-${e}`,a=n[o];if(a)return a;let r;if(!1!==s.options.animation){const s=this.chart.config,n=s.datasetAnimationScopeKeys(this._type,e),o=s.getOptionScopes(this.getDataset(),n);r=s.createResolver(o,this.getContext(t,i,e))}const l=new Ts(s,r&&r.animations);return r&&r._cacheable&&(n[o]=Object.freeze(l)),l}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||Ns(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const i=this.resolveDataElementOptions(t,e),s=this._sharedOptions,n=this.getSharedOptions(i),o=this.includeOptions(e,n)||n!==s;return this.updateSharedOptions(n,e,i),{sharedOptions:n,includeOptions:o}}updateElement(t,e,i,s){Ns(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!Ns(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;const n=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(n)||n})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[t,e,i]of this._syncList)this[t](e,i);this._syncList=[];const s=i.length,n=e.length,o=Math.min(n,s);o&&this.parse(0,o),n>s?this._insertElements(s,n-s,t):n{for(t.length+=e,a=t.length-1;a>=o;a--)t[a]=t[a-e]};for(r(n),a=t;a{s[t]=i[t]&&i[t].active()?i[t]._to:this[t]})),s}}function Ys(t,e){const i=t.options.ticks,n=function(t){const e=t.options.offset,i=t._tickSize(),s=t._length/i+(e?0:1),n=t._maxLength/i;return Math.floor(Math.min(s,n))}(t),o=Math.min(i.maxTicksLimit||n,n),a=i.major.enabled?function(t){const e=[];let i,s;for(i=0,s=t.length;io)return function(t,e,i,s){let n,o=0,a=i[0];for(s=Math.ceil(s),n=0;nn)return e}return Math.max(n,1)}(a,e,o);if(r>0){let t,i;const n=r>1?Math.round((h-l)/(r-1)):null;for(Us(e,c,d,s(n)?0:l-n,l),t=0,i=r-1;t"top"===e||"left"===e?t[e]+i:t[e]-i,qs=(t,e)=>Math.min(e||t,t);function Ks(t,e){const i=[],s=t.length/e,n=t.length;let o=0;for(;oa+r)))return h}function Js(t){return t.drawTicks?t.tickLength:0}function Zs(t,e){if(!t.display)return 0;const i=Si(t.font,e),s=ki(t.padding);return(n(t.text)?t.text.length:1)*i.lineHeight+s.height}function Qs(t,e,i){let s=ut(t);return(i&&"right"!==e||!i&&"right"===e)&&(s=(t=>"left"===t?"right":"right"===t?"left":t)(s)),s}class tn extends $s{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:s}=this;return t=r(t,Number.POSITIVE_INFINITY),e=r(e,Number.NEGATIVE_INFINITY),i=r(i,Number.POSITIVE_INFINITY),s=r(s,Number.NEGATIVE_INFINITY),{min:r(t,i),max:r(e,s),minDefined:a(t),maxDefined:a(e)}}getMinMax(t){let e,{min:i,max:s,minDefined:n,maxDefined:o}=this.getUserBounds();if(n&&o)return{min:i,max:s};const a=this.getMatchingVisibleMetas();for(let r=0,l=a.length;rs?s:i,s=n&&i>s?i:s,{min:r(i,r(s,i)),max:r(s,r(i,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){d(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:s,grace:n,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Di(this,n,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const r=a=n||i<=1||!this.isHorizontal())return void(this.labelRotation=s);const h=this._getLabelSizes(),c=h.widest.width,d=h.highest.height,u=Z(this.chart.width-c,0,this.maxWidth);o=t.offset?this.maxWidth/i:u/(i-1),c+6>o&&(o=u/(i-(t.offset?.5:1)),a=this.maxHeight-Js(t.grid)-e.padding-Zs(t.title,this.chart.options.font),r=Math.sqrt(c*c+d*d),l=Y(Math.min(Math.asin(Z((h.highest.height+6)/o,-1,1)),Math.asin(Z(a/r,-1,1))-Math.asin(Z(d/r,-1,1)))),l=Math.max(s,Math.min(n,l))),this.labelRotation=l}afterCalculateLabelRotation(){d(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){d(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:n}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){const o=Zs(s,e.options.font);if(a?(t.width=this.maxWidth,t.height=Js(n)+o):(t.height=this.maxHeight,t.width=Js(n)+o),i.display&&this.ticks.length){const{first:e,last:s,widest:n,highest:o}=this._getLabelSizes(),r=2*i.padding,l=$(this.labelRotation),h=Math.cos(l),c=Math.sin(l);if(a){const e=i.mirror?0:c*n.width+h*o.height;t.height=Math.min(this.maxHeight,t.height+e+r)}else{const e=i.mirror?0:h*n.width+c*o.height;t.width=Math.min(this.maxWidth,t.width+e+r)}this._calculatePadding(e,s,c,h)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){const{ticks:{align:n,padding:o},position:a}=this.options,r=0!==this.labelRotation,l="top"!==a&&"x"===this.axis;if(this.isHorizontal()){const a=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,d=0;r?l?(c=s*t.width,d=i*e.height):(c=i*t.height,d=s*e.width):"start"===n?d=e.width:"end"===n?c=t.width:"inner"!==n&&(c=t.width/2,d=e.width/2),this.paddingLeft=Math.max((c-a+o)*this.width/(this.width-a),0),this.paddingRight=Math.max((d-h+o)*this.width/(this.width-h),0)}else{let i=e.height/2,s=t.height/2;"start"===n?(i=0,s=t.height):"end"===n&&(i=e.height,s=0),this.paddingTop=i+o,this.paddingBottom=s+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){d(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||"bottom"===e||"x"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,i=t.length;e{const i=t.gc,s=i.length/2;let n;if(s>e){for(n=0;n({width:r[t]||0,height:l[t]||0});return{first:P(0),last:P(e-1),widest:P(k),highest:P(S),widths:r,heights:l}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return Q(this._alignToPixels?Ae(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&ta*s?a/i:r/s:r*s0}_computeGridLineItems(t){const e=this.axis,i=this.chart,s=this.options,{grid:n,position:a,border:r}=s,h=n.offset,c=this.isHorizontal(),d=this.ticks.length+(h?1:0),u=Js(n),f=[],g=r.setContext(this.getContext()),p=g.display?g.width:0,m=p/2,x=function(t){return Ae(i,t,p)};let b,_,y,v,M,w,k,S,P,D,C,O;if("top"===a)b=x(this.bottom),w=this.bottom-u,S=b-m,D=x(t.top)+m,O=t.bottom;else if("bottom"===a)b=x(this.top),D=t.top,O=x(t.bottom)-m,w=b+m,S=this.top+u;else if("left"===a)b=x(this.right),M=this.right-u,k=b-m,P=x(t.left)+m,C=t.right;else if("right"===a)b=x(this.left),P=t.left,C=x(t.right)-m,M=b+m,k=this.left+u;else if("x"===e){if("center"===a)b=x((t.top+t.bottom)/2+.5);else if(o(a)){const t=Object.keys(a)[0],e=a[t];b=x(this.chart.scales[t].getPixelForValue(e))}D=t.top,O=t.bottom,w=b+m,S=w+u}else if("y"===e){if("center"===a)b=x((t.left+t.right)/2);else if(o(a)){const t=Object.keys(a)[0],e=a[t];b=x(this.chart.scales[t].getPixelForValue(e))}M=b-m,k=M-u,P=t.left,C=t.right}const A=l(s.ticks.maxTicksLimit,d),T=Math.max(1,Math.ceil(d/A));for(_=0;_0&&(o-=s/2)}d={left:o,top:n,width:s+e.width,height:i+e.height,color:t.backdropColor}}x.push({label:v,font:P,textOffset:O,options:{rotation:m,color:i,strokeColor:o,strokeWidth:h,textAlign:f,textBaseline:A,translation:[M,w],backdrop:d}})}return x}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-$(this.labelRotation))return"top"===t?"left":"right";let i="center";return"start"===e.align?i="left":"end"===e.align?i="right":"inner"===e.align&&(i="inner"),i}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:i,mirror:s,padding:n}}=this.options,o=t+n,a=this._getLabelSizes().widest.width;let r,l;return"left"===e?s?(l=this.right+n,"near"===i?r="left":"center"===i?(r="center",l+=a/2):(r="right",l+=a)):(l=this.right-o,"near"===i?r="right":"center"===i?(r="center",l-=a/2):(r="left",l=this.left)):"right"===e?s?(l=this.left+n,"near"===i?r="right":"center"===i?(r="center",l-=a/2):(r="left",l-=a)):(l=this.left+o,"near"===i?r="left":"center"===i?(r="center",l+=a/2):(r="right",l=this.right)):r="right",{textAlign:r,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;return"left"===e||"right"===e?{top:0,left:this.left,bottom:t.height,right:this.right}:"top"===e||"bottom"===e?{top:this.top,left:0,bottom:this.bottom,right:t.width}:void 0}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:i,top:s,width:n,height:o}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(i,s,n,o),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const i=this.ticks.findIndex((e=>e.value===t));if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let n,o;const a=(t,e,s)=>{s.width&&s.color&&(i.save(),i.lineWidth=s.width,i.strokeStyle=s.color,i.setLineDash(s.borderDash||[]),i.lineDashOffset=s.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(n=0,o=s.length;n{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let n,o;for(n=0,o=e.length;n{const s=i.split("."),n=s.pop(),o=[t].concat(s).join("."),a=e[i].split("."),r=a.pop(),l=a.join(".");ue.route(o,n,l,r)}))}(e,t.defaultRoutes);t.descriptors&&ue.describe(e,t.descriptors)}(t,o,i),this.override&&ue.override(t.id,t.overrides)),o}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,s=this.scope;i in e&&delete e[i],s&&i in ue[s]&&(delete ue[s][i],this.override&&delete re[i])}}class sn{constructor(){this.controllers=new en(js,"datasets",!0),this.elements=new en($s,"elements"),this.plugins=new en(Object,"plugins"),this.scales=new en(tn,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach((e=>{const s=i||this._getRegistryForType(e);i||s.isForType(e)||s===this.plugins&&e.id?this._exec(t,s,e):u(e,(e=>{const s=i||this._getRegistryForType(e);this._exec(t,s,e)}))}))}_exec(t,e,i){const s=w(t);d(i["before"+s],[],i),e[t](i),d(i["after"+s],[],i)}_getRegistryForType(t){for(let e=0;et.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(s(e,i),t,"stop"),this._notify(s(i,e),t,"start")}}function an(t,e){return e||!1!==t?!0===t?{}:t:null}function rn(t,{plugin:e,local:i},s,n){const o=t.pluginScopeKeys(e),a=t.getOptionScopes(s,o);return i&&e.defaults&&a.push(e.defaults),t.createResolver(a,n,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function ln(t,e){const i=ue.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||"x"}function hn(t){if("x"===t||"y"===t||"r"===t)return t}function cn(t,...e){if(hn(t))return t;for(const s of e){const e=s.axis||("top"===(i=s.position)||"bottom"===i?"x":"left"===i||"right"===i?"y":void 0)||t.length>1&&hn(t[0].toLowerCase());if(e)return e}var i;throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function dn(t,e,i){if(i[e+"AxisID"]===t)return{axis:e}}function un(t,e){const i=re[t.type]||{scales:{}},s=e.scales||{},n=ln(t.type,e),a=Object.create(null);return Object.keys(s).forEach((e=>{const r=s[e];if(!o(r))return console.error(`Invalid scale configuration for scale: ${e}`);if(r._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${e}`);const l=cn(e,r,function(t,e){if(e.data&&e.data.datasets){const i=e.data.datasets.filter((e=>e.xAxisID===t||e.yAxisID===t));if(i.length)return dn(t,"x",i[0])||dn(t,"y",i[0])}return{}}(e,t),ue.scales[r.type]),h=function(t,e){return t===e?"_index_":"_value_"}(l,n),c=i.scales||{};a[e]=b(Object.create(null),[{axis:l},r,c[l],c[h]])})),t.data.datasets.forEach((i=>{const n=i.type||t.type,o=i.indexAxis||ln(n,e),r=(re[n]||{}).scales||{};Object.keys(r).forEach((t=>{const e=function(t,e){let i=t;return"_index_"===t?i=e:"_value_"===t&&(i="x"===e?"y":"x"),i}(t,o),n=i[e+"AxisID"]||e;a[n]=a[n]||Object.create(null),b(a[n],[{axis:e},s[n],r[t]])}))})),Object.keys(a).forEach((t=>{const e=a[t];b(e,[ue.scales[e.type],ue.scale])})),a}function fn(t){const e=t.options||(t.options={});e.plugins=l(e.plugins,{}),e.scales=un(t,e)}function gn(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const pn=new Map,mn=new Set;function xn(t,e){let i=pn.get(t);return i||(i=e(),pn.set(t,i),mn.add(i)),i}const bn=(t,e,i)=>{const s=M(e,i);void 0!==s&&t.add(s)};class _n{constructor(t){this._config=function(t){return(t=t||{}).data=gn(t.data),fn(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=gn(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),fn(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return xn(t,(()=>[[`datasets.${t}`,""]]))}datasetAnimationScopeKeys(t,e){return xn(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]]))}datasetElementScopeKeys(t,e){return xn(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]]))}pluginScopeKeys(t){const e=t.id;return xn(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const i=this._scopeCache;let s=i.get(t);return s&&!e||(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){const{options:s,type:n}=this,o=this._cachedScopes(t,i),a=o.get(e);if(a)return a;const r=new Set;e.forEach((e=>{t&&(r.add(t),e.forEach((e=>bn(r,t,e)))),e.forEach((t=>bn(r,s,t))),e.forEach((t=>bn(r,re[n]||{},t))),e.forEach((t=>bn(r,ue,t))),e.forEach((t=>bn(r,le,t)))}));const l=Array.from(r);return 0===l.length&&l.push(Object.create(null)),mn.has(e)&&o.set(e,l),l}chartOptionScopes(){const{options:t,type:e}=this;return[t,re[e]||{},ue.datasets[e]||{},{type:e},ue,le]}resolveNamedOptions(t,e,i,s=[""]){const o={$shared:!0},{resolver:a,subPrefixes:r}=yn(this._resolverCache,t,s);let l=a;if(function(t,e){const{isScriptable:i,isIndexable:s}=Ye(t);for(const o of e){const e=i(o),a=s(o),r=(a||e)&&t[o];if(e&&(S(r)||vn(r))||a&&n(r))return!0}return!1}(a,e)){o.$shared=!1;l=$e(a,i=S(i)?i():i,this.createResolver(t,i,r))}for(const t of e)o[t]=l[t];return o}createResolver(t,e,i=[""],s){const{resolver:n}=yn(this._resolverCache,t,i);return o(e)?$e(n,e,void 0,s):n}}function yn(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const n=i.join();let o=s.get(n);if(!o){o={resolver:je(e,i),subPrefixes:i.filter((t=>!t.toLowerCase().includes("hover")))},s.set(n,o)}return o}const vn=t=>o(t)&&Object.getOwnPropertyNames(t).some((e=>S(t[e])));const Mn=["top","bottom","left","right","chartArea"];function wn(t,e){return"top"===t||"bottom"===t||-1===Mn.indexOf(t)&&"x"===e}function kn(t,e){return function(i,s){return i[t]===s[t]?i[e]-s[e]:i[t]-s[t]}}function Sn(t){const e=t.chart,i=e.options.animation;e.notifyPlugins("afterRender"),d(i&&i.onComplete,[t],e)}function Pn(t){const e=t.chart,i=e.options.animation;d(i&&i.onProgress,[t],e)}function Dn(t){return fe()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Cn={},On=t=>{const e=Dn(t);return Object.values(Cn).filter((t=>t.canvas===e)).pop()};function An(t,e,i){const s=Object.keys(t);for(const n of s){const s=+n;if(s>=e){const o=t[n];delete t[n],(i>0||s>e)&&(t[s+i]=o)}}}class Tn{static defaults=ue;static instances=Cn;static overrides=re;static registry=nn;static version="4.5.1";static getChart=On;static register(...t){nn.add(...t),Ln()}static unregister(...t){nn.remove(...t),Ln()}constructor(t,e){const s=this.config=new _n(e),n=Dn(t),o=On(n);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const a=s.createResolver(s.chartOptionScopes(),this.getContext());this.platform=new(s.platform||Ps(n)),this.platform.updateConfig(s);const r=this.platform.acquireContext(n,a.aspectRatio),l=r&&r.canvas,h=l&&l.height,c=l&&l.width;this.id=i(),this.ctx=r,this.canvas=l,this.width=c,this.height=h,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new on,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=dt((t=>this.update(t)),a.resizeDelay||0),this._dataChanges=[],Cn[this.id]=this,r&&l?(bt.listen(this,"complete",Sn),bt.listen(this,"progress",Pn),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:n,_aspectRatio:o}=this;return s(t)?e&&o?o:n?i/n:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return nn}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():ke(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Te(this.canvas,this.ctx),this}stop(){return bt.stop(this),this}resize(t,e){bt.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,s=this.canvas,n=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,t,e,n),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),r=this.width?"resize":"attach";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,ke(this,a,!0)&&(this.notifyPlugins("resize",{size:o}),d(i.onResize,[this,o],this),this.attached&&this._doResize(r)&&this.render())}ensureScalesHaveIDs(){u(this.options.scales||{},((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce(((t,e)=>(t[e]=!1,t)),{});let n=[];e&&(n=n.concat(Object.keys(e).map((t=>{const i=e[t],s=cn(t,i),n="r"===s,o="x"===s;return{options:i,dposition:n?"chartArea":o?"bottom":"left",dtype:n?"radialLinear":o?"category":"linear"}})))),u(n,(e=>{const n=e.options,o=n.id,a=cn(o,n),r=l(n.type,e.dtype);void 0!==n.position&&wn(n.position,a)===wn(e.dposition)||(n.position=e.dposition),s[o]=!0;let h=null;if(o in i&&i[o].type===r)h=i[o];else{h=new(nn.getScale(r))({id:o,type:r,ctx:this.ctx,chart:this}),i[h.id]=h}h.init(n,t)})),u(s,((t,e)=>{t||delete i[e]})),u(i,(t=>{ls.configure(this,t,t.options),ls.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort(((t,e)=>t.index-e.index)),i>e){for(let t=e;te.length&&delete this._stacks,t.forEach(((t,i)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const n=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let t=0,e=this.data.datasets.length;t{t.reset()})),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(kn("z","_idx"));const{_active:a,_lastEvent:r}=this;r?this._eventHandler(r,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){u(this.scales,(t=>{ls.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);P(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:n}of e){An(t,s,"_removeElements"===i?-n:n)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+","+t.splice(1).join(",")))),s=i(0);for(let t=1;tt.split(","))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;ls.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],u(this.boxes,(t=>{i&&"chartArea"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,i={meta:t,index:t.index,cancelable:!0},s=Ni(this,t);!1!==this.notifyPlugins("beforeDatasetDraw",i)&&(s&&Ie(e,s),t.controller.draw(),s&&ze(e),i.cancelable=!1,this.notifyPlugins("afterDatasetDraw",i))}isPointInArea(t){return Re(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,s){const n=Ki.modes[e];return"function"==typeof n?n(this,t,i,s):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let s=i.filter((t=>t&&t._dataset===e)).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Ci(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return"boolean"==typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const s=i?"show":"hide",n=this.getDatasetMeta(t),o=n.controller._resolveAnimations(void 0,s);k(e)?(n.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),o.update(n,{visible:i}),this.update((e=>e.datasetIndex===t?s:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),bt.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,i,s),t[i]=s},s=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};u(this.options.events,(t=>i(t,s)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(i,s)=>{t[i]&&(e.removeEventListener(this,i,s),delete t[i])},n=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const a=()=>{s("attach",a),this.attached=!0,this.resize(),i("resize",n),i("detach",o)};o=()=>{this.attached=!1,s("resize",n),this._stop(),this._resize(0,0),i("attach",a)},e.isAttached(this.canvas)?a():o()}unbindEvents(){u(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},u(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const s=i?"set":"remove";let n,o,a,r;for("dataset"===e&&(n=this.getDatasetMeta(t[0].datasetIndex),n.controller["_"+s+"DatasetHoverStyle"]()),a=0,r=t.length;a{const i=this.getDatasetMeta(t);if(!i)throw new Error("No dataset found at index "+t);return{datasetIndex:t,element:i.data[e],index:e}}));!f(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin.id===t)).length}_updateHoverStyles(t,e,i){const s=this.options.hover,n=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),o=n(e,t),a=i?t:n(t,e);o.length&&this.updateHoverStyle(o,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},s=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins("beforeEvent",i,s))return;const n=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(n||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:s=[],options:n}=this,o=e,a=this._getActiveElements(t,s,i,o),r=D(t),l=function(t,e,i,s){return i&&"mouseout"!==t.type?s?e:t:null}(t,this._lastEvent,i,r);i&&(this._lastEvent=null,d(n.onHover,[t,a,this],this),r&&d(n.onClick,[t,a,this],this));const h=!f(a,s);return(h||e)&&(this._active=a,this._updateHoverStyles(a,s,e)),this._lastEvent=l,h}_getActiveElements(t,e,i,s){if("mouseout"===t.type)return[];if(!i)return e;const n=this.options.hover;return this.getElementsAtEventForMode(t,n.mode,n,s)}}function Ln(){return u(Tn.instances,(t=>t._plugins.invalidate()))}function En(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Rn{static override(t){Object.assign(Rn.prototype,t)}options;constructor(t){this.options=t||{}}init(){}formats(){return En()}parse(){return En()}format(){return En()}add(){return En()}diff(){return En()}startOf(){return En()}endOf(){return En()}}var In={_date:Rn};function zn(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const i=t.getMatchingVisibleMetas(e);let s=[];for(let e=0,n=i.length;et-e)))}return t._cache.$bar}(e,t.type);let s,n,o,a,r=e._length;const l=()=>{32767!==o&&-32768!==o&&(k(a)&&(r=Math.min(r,Math.abs(o-a)||r)),a=o)};for(s=0,n=i.length;sMath.abs(r)&&(l=r,h=a),e[i.axis]=h,e._custom={barStart:l,barEnd:h,start:n,end:o,min:a,max:r}}(t,e,i,s):e[i.axis]=i.parse(t,s),e}function Vn(t,e,i,s){const n=t.iScale,o=t.vScale,a=n.getLabels(),r=n===o,l=[];let h,c,d,u;for(h=i,c=i+s;ht.x,i="left",s="right"):(e=t.base"spacing"!==t,_indexable:t=>"spacing"!==t&&!t.startsWith("borderDash")&&!t.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data,{labels:{pointStyle:i,textAlign:s,color:n,useBorderRadius:o,borderRadius:a}}=t.legend.options;return e.labels.length&&e.datasets.length?e.labels.map(((e,r)=>{const l=t.getDatasetMeta(0).controller.getStyle(r);return{text:e,fillStyle:l.backgroundColor,fontColor:n,hidden:!t.getDataVisibility(r),lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:l.borderWidth,strokeStyle:l.borderColor,textAlign:s,pointStyle:i,borderRadius:o&&(a||l.borderRadius),index:r}})):[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}}};constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const i=this.getDataset().data,s=this._cachedMeta;if(!1===this._parsing)s._parsed=i;else{let n,a,r=t=>+i[t];if(o(i[t])){const{key:t="value"}=this._parsing;r=e=>+M(i[e],t)}for(n=t,a=t+e;nJ(t,r,l,!0)?1:Math.max(e,e*i,s,s*i),g=(t,e,s)=>J(t,r,l,!0)?-1:Math.min(e,e*i,s,s*i),p=f(0,h,d),m=f(E,c,u),x=g(C,h,d),b=g(C+E,c,u);s=(p-x)/2,n=(m-b)/2,o=-(p+x)/2,a=-(m+b)/2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}(u,d,r),x=(i.width-o)/f,b=(i.height-o)/g,_=Math.max(Math.min(x,b)/2,0),y=c(this.options.radius,_),v=(y-Math.max(y*r,0))/this._getVisibleDatasetWeightTotal();this.offsetX=p*y,this.offsetY=m*y,s.total=this.calculateTotal(),this.outerRadius=y-v*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-v*l,0),this.updateElements(n,0,n.length,t)}_circumference(t,e){const i=this.options,s=this._cachedMeta,n=this._getCircumference();return e&&i.animation.animateRotate||!this.chart.getDataVisibility(t)||null===s._parsed[t]||s.data[t].hidden?0:this.calculateCircumference(s._parsed[t]*n/O)}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.chartArea,r=o.options.animation,l=(a.left+a.right)/2,h=(a.top+a.bottom)/2,c=n&&r.animateScale,d=c?0:this.innerRadius,u=c?0:this.outerRadius,{sharedOptions:f,includeOptions:g}=this._getSharedOptions(e,s);let p,m=this._getRotation();for(p=0;p0&&!isNaN(t)?O*(Math.abs(t)/e):0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t],i.options.locale);return{label:s[t]||"",value:n}}getMaxBorderWidth(t){let e=0;const i=this.chart;let s,n,o,a,r;if(!t)for(s=0,n=i.data.datasets.length;s{const o=t.getDatasetMeta(0).controller.getStyle(n);return{text:e,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,fontColor:s,lineWidth:o.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(n),index:n}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=ne(e._parsed[t].r,i.options.locale);return{label:s[t]||"",value:n}}parseObjectData(t,e,i,s){return ii.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){const t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach(((t,i)=>{const s=this.getParsed(i).r;!isNaN(s)&&this.chart.getDataVisibility(i)&&(se.max&&(e.max=s))})),e}_updateRadius(){const t=this.chart,e=t.chartArea,i=t.options,s=Math.min(e.right-e.left,e.bottom-e.top),n=Math.max(s/2,0),o=(n-Math.max(i.cutoutPercentage?n/100*i.cutoutPercentage:1,0))/t.getVisibleDatasetCount();this.outerRadius=n-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.options.animation,r=this._cachedMeta.rScale,l=r.xCenter,h=r.yCenter,c=r.getIndexAngle(0)-.5*C;let d,u=c;const f=360/this.countVisibleElements();for(d=0;d{!isNaN(this.getParsed(i).r)&&this.chart.getDataVisibility(i)&&e++})),e}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?$(this.resolveDataElementOptions(t,e).angle||i):0}}var Un=Object.freeze({__proto__:null,BarController:class extends js{static id="bar";static defaults={datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}};static overrides={scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}};parsePrimitiveData(t,e,i,s){return Vn(t,e,i,s)}parseArrayData(t,e,i,s){return Vn(t,e,i,s)}parseObjectData(t,e,i,s){const{iScale:n,vScale:o}=t,{xAxisKey:a="x",yAxisKey:r="y"}=this._parsing,l="x"===n.axis?a:r,h="x"===o.axis?a:r,c=[];let d,u,f,g;for(d=i,u=i+s;dt.controller.options.grouped)),o=i.options.stacked,a=[],r=this._cachedMeta.controller.getParsed(e),l=r&&r[i.axis],h=t=>{const e=t._parsed.find((t=>t[i.axis]===l)),n=e&&e[t.vScale.axis];if(s(n)||isNaN(n))return!0};for(const i of n)if((void 0===e||!h(i))&&((!1===o||-1===a.indexOf(i.stack)||void 0===o&&void 0===i.stack)&&a.push(i.stack),i.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getAxisCount(){return this._getAxis().length}getFirstScaleIdForIndexAxis(){const t=this.chart.scales,e=this.chart.options.indexAxis;return Object.keys(t).filter((i=>t[i].axis===e)).shift()}_getAxis(){const t={},e=this.getFirstScaleIdForIndexAxis();for(const i of this.chart.data.datasets)t[l("x"===this.chart.options.indexAxis?i.xAxisID:i.yAxisID,e)]=!0;return Object.keys(t)}_getStackIndex(t,e,i){const s=this._getStacks(t,i),n=void 0!==e?s.indexOf(e):-1;return-1===n?s.length-1:n}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,s=[];let n,o;for(n=0,o=e.data.length;n=i?1:-1)}(u,e,r)*a,f===r&&(x-=u/2);const t=e.getPixelForDecimal(0),s=e.getPixelForDecimal(1),o=Math.min(t,s),h=Math.max(t,s);x=Math.max(Math.min(x,h),o),d=x+u,i&&!c&&(l._stacks[e.axis]._visualValues[n]=e.getValueForPixel(d)-e.getValueForPixel(x))}if(x===e.getPixelForValue(r)){const t=F(u)*e.getLineWidthForValue(r)/2;x+=t,u-=t}return{size:u,base:x,head:d,center:d+u/2}}_calculateBarIndexPixels(t,e){const i=e.scale,n=this.options,o=n.skipNull,a=l(n.maxBarThickness,1/0);let r,h;const c=this._getAxisCount();if(e.grouped){const i=o?this._getStackCount(t):e.stackCount,d="flex"===n.barThickness?function(t,e,i,s){const n=e.pixels,o=n[t];let a=t>0?n[t-1]:null,r=t=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))/2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart.data.labels||[],{xScale:s,yScale:n}=e,o=this.getParsed(t),a=s.getLabelForValue(o.x),r=n.getLabelForValue(o.y),l=o._custom;return{label:i[t]||"",value:"("+a+", "+r+(l?", "+l:"")+")"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,s){const n="reset"===s,{iScale:o,vScale:a}=this._cachedMeta,{sharedOptions:r,includeOptions:l}=this._getSharedOptions(e,s),h=o.axis,c=a.axis;for(let d=e;d0&&this.getParsed(e-1);for(let i=0;i<_;++i){const g=t[i],_=x?g:{};if(i=b){_.skip=!0;continue}const v=this.getParsed(i),M=s(v[f]),w=_[u]=a.getPixelForValue(v[u],i),k=_[f]=o||M?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,v,l):v[f],i);_.skip=isNaN(w)||isNaN(k)||M,_.stop=i>0&&Math.abs(v[u]-y[u])>m,p&&(_.parsed=v,_.raw=h.data[i]),d&&(_.options=c||this.resolveDataElementOptions(i,g.active?"active":n)),x||this.updateElement(g,i,_,n),y=v}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const n=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,n,o)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}},PieController:class extends $n{static id="pie";static defaults={cutout:0,rotation:0,circumference:360,radius:"100%"}},PolarAreaController:Yn,RadarController:class extends js{static id="radar";static defaults={datasetElementType:"line",dataElementType:"point",indexAxis:"r",showLine:!0,elements:{line:{fill:"start"}}};static overrides={aspectRatio:1,scales:{r:{type:"radialLinear"}}};getLabelAndValue(t){const e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(i[e.axis])}}parseObjectData(t,e,i,s){return ii.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta,i=e.dataset,s=e.data||[],n=e.iScale.getLabels();if(i.points=s,"resize"!==t){const e=this.resolveDatasetElementOptions(t);this.options.showLine||(e.borderWidth=0);const o={_loop:!0,_fullLoop:n.length===s.length,options:e};this.updateElement(i,void 0,o,t)}this.updateElements(s,0,s.length,t)}updateElements(t,e,i,s){const n=this._cachedMeta.rScale,o="reset"===s;for(let a=e;a0&&this.getParsed(e-1);for(let c=e;c0&&Math.abs(i[f]-_[f])>x,m&&(p.parsed=i,p.raw=h.data[c]),u&&(p.options=d||this.resolveDataElementOptions(c,e.active?"active":n)),b||this.updateElement(e,c,p,n),_=i}this.updateSharedOptions(d,n,c)}getMaxOverflow(){const t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let t=0;for(let i=e.length-1;i>=0;--i)t=Math.max(t,e[i].size(this.resolveDataElementOptions(i))/2);return t>0&&t}const i=t.dataset,s=i.options&&i.options.borderWidth||0;if(!e.length)return s;const n=e[0].size(this.resolveDataElementOptions(0)),o=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(s,n,o)/2}}});function Xn(t,e,i,s){const n=vi(t.options.borderRadius,["outerStart","outerEnd","innerStart","innerEnd"]);const o=(i-e)/2,a=Math.min(o,s*e/2),r=t=>{const e=(i-Math.min(o,t))*s/2;return Z(t,0,Math.min(o,e))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:Z(n.innerStart,0,a),innerEnd:Z(n.innerEnd,0,a)}}function qn(t,e,i,s){return{x:i+t*Math.cos(e),y:s+t*Math.sin(e)}}function Kn(t,e,i,s,n,o){const{x:a,y:r,startAngle:l,pixelMargin:h,innerRadius:c}=e,d=Math.max(e.outerRadius+s+i-h,0),u=c>0?c+s+i+h:0;let f=0;const g=n-l;if(s){const t=((c>0?c-s:0)+(d>0?d-s:0))/2;f=(g-(0!==t?g*t/(t+s):g))/2}const p=(g-Math.max(.001,g*d-i/C)/d)/2,m=l+p+f,x=n-p-f,{outerStart:b,outerEnd:_,innerStart:y,innerEnd:v}=Xn(e,u,d,x-m),M=d-b,w=d-_,k=m+b/M,S=x-_/w,P=u+y,D=u+v,O=m+y/P,A=x-v/D;if(t.beginPath(),o){const e=(k+S)/2;if(t.arc(a,r,d,k,e),t.arc(a,r,d,e,S),_>0){const e=qn(w,S,a,r);t.arc(e.x,e.y,_,S,x+E)}const i=qn(D,x,a,r);if(t.lineTo(i.x,i.y),v>0){const e=qn(D,A,a,r);t.arc(e.x,e.y,v,x+E,A+Math.PI)}const s=(x-v/u+(m+y/u))/2;if(t.arc(a,r,u,x-v/u,s,!0),t.arc(a,r,u,s,m+y/u,!0),y>0){const e=qn(P,O,a,r);t.arc(e.x,e.y,y,O+Math.PI,m-E)}const n=qn(M,m,a,r);if(t.lineTo(n.x,n.y),b>0){const e=qn(M,k,a,r);t.arc(e.x,e.y,b,m-E,k)}}else{t.moveTo(a,r);const e=Math.cos(k)*d+a,i=Math.sin(k)*d+r;t.lineTo(e,i);const s=Math.cos(S)*d+a,n=Math.sin(S)*d+r;t.lineTo(s,n)}t.closePath()}function Gn(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r,options:l}=e,{borderWidth:h,borderJoinStyle:c,borderDash:d,borderDashOffset:u,borderRadius:f}=l,g="inner"===l.borderAlign;if(!h)return;t.setLineDash(d||[]),t.lineDashOffset=u,g?(t.lineWidth=2*h,t.lineJoin=c||"round"):(t.lineWidth=h,t.lineJoin=c||"bevel");let p=e.endAngle;if(o){Kn(t,e,i,s,p,n);for(let e=0;en?(h=n/l,t.arc(o,a,l,i+h,s-h,!0)):t.arc(o,a,n,i+E,s-E),t.closePath(),t.clip()}(t,e,p),l.selfJoin&&p-a>=C&&0===f&&"miter"!==c&&function(t,e,i){const{startAngle:s,x:n,y:o,outerRadius:a,innerRadius:r,options:l}=e,{borderWidth:h,borderJoinStyle:c}=l,d=Math.min(h/a,G(s-i));if(t.beginPath(),t.arc(n,o,a-h/2,s+d/2,i-d/2),r>0){const e=Math.min(h/r,G(s-i));t.arc(n,o,r+h/2,i-e/2,s+e/2,!0)}else{const e=Math.min(h/2,a*G(s-i));if("round"===c)t.arc(n,o,e,i-C/2,s+C/2,!0);else if("bevel"===c){const a=2*e*e,r=-a*Math.cos(i+C/2)+n,l=-a*Math.sin(i+C/2)+o,h=a*Math.cos(s+C/2)+n,c=a*Math.sin(s+C/2)+o;t.lineTo(r,l),t.lineTo(h,c)}}t.closePath(),t.moveTo(0,0),t.rect(0,0,t.canvas.width,t.canvas.height),t.clip("evenodd")}(t,e,p),o||(Kn(t,e,i,s,p,n),t.stroke())}function Jn(t,e,i=e){t.lineCap=l(i.borderCapStyle,e.borderCapStyle),t.setLineDash(l(i.borderDash,e.borderDash)),t.lineDashOffset=l(i.borderDashOffset,e.borderDashOffset),t.lineJoin=l(i.borderJoinStyle,e.borderJoinStyle),t.lineWidth=l(i.borderWidth,e.borderWidth),t.strokeStyle=l(i.borderColor,e.borderColor)}function Zn(t,e,i){t.lineTo(i.x,i.y)}function Qn(t,e,i={}){const s=t.length,{start:n=0,end:o=s-1}=i,{start:a,end:r}=e,l=Math.max(n,a),h=Math.min(o,r),c=nr&&o>r;return{count:s,start:l,loop:e.loop,ilen:h(a+(h?r-t:t))%o,_=()=>{f!==g&&(t.lineTo(m,g),t.lineTo(m,f),t.lineTo(m,p))};for(l&&(d=n[b(0)],t.moveTo(d.x,d.y)),c=0;c<=r;++c){if(d=n[b(c)],d.skip)continue;const e=d.x,i=d.y,s=0|e;s===u?(ig&&(g=i),m=(x*m+e)/++x):(_(),t.lineTo(e,i),u=s,x=0,f=g=i),p=i}_()}function io(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!(t._decimated||t._loop||e.tension||"monotone"===e.cubicInterpolationMode||e.stepped||i)?eo:to}const so="function"==typeof Path2D;function no(t,e,i,s){so&&!e.options.segment?function(t,e,i,s){let n=e._path;n||(n=e._path=new Path2D,e.path(n,i,s)&&n.closePath()),Jn(t,e.options),t.stroke(n)}(t,e,i,s):function(t,e,i,s){const{segments:n,options:o}=e,a=io(e);for(const r of n)Jn(t,o,r.style),t.beginPath(),a(t,e,r,{start:i,end:i+s-1})&&t.closePath(),t.stroke()}(t,e,i,s)}class oo extends $s{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:t=>"borderDash"!==t&&"fill"!==t};constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||"monotone"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;hi(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=zi(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,s=t[e],n=this.points,o=Ii(this,{property:e,start:s,end:s});if(!o.length)return;const a=[],r=function(t){return t.stepped?pi:t.tension||"monotone"===t.cubicInterpolationMode?mi:gi}(i);let l,h;for(l=0,h=o.length;l"borderDash"!==t};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(t){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.getProps(["x","y"],i),{angle:n,distance:o}=X(s,{x:t,y:e}),{startAngle:a,endAngle:r,innerRadius:h,outerRadius:c,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),u=(this.options.spacing+this.options.borderWidth)/2,f=l(d,r-a),g=J(n,a,r)&&a!==r,p=f>=O||g,m=tt(o,h+u,c+u);return p&&m}getCenterPoint(t){const{x:e,y:i,startAngle:s,endAngle:n,innerRadius:o,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],t),{offset:r,spacing:l}=this.options,h=(s+n)/2,c=(o+a+l+r)/2;return{x:e+Math.cos(h)*c,y:i+Math.sin(h)*c}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:e,circumference:i}=this,s=(e.offset||0)/4,n=(e.spacing||0)/2,o=e.circular;if(this.pixelMargin="inner"===e.borderAlign?.33:0,this.fullCircles=i>O?Math.floor(i/O):0,0===i||this.innerRadius<0||this.outerRadius<0)return;t.save();const a=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(a)*s,Math.sin(a)*s);const r=s*(1-Math.sin(Math.min(C,i||0)));t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor,function(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r}=e;let l=e.endAngle;if(o){Kn(t,e,i,s,l,n);for(let e=0;e("string"==typeof e?(i=t.push(e)-1,s.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,s);return n!==t.lastIndexOf(e)?i:n}function mo(t){const e=this.getLabels();return t>=0&&ts=e?s:t,a=t=>n=i?n:t;if(t){const t=F(s),e=F(n);t<0&&e<0?a(0):t>0&&e>0&&o(0)}if(s===n){let e=0===n?1:Math.abs(.05*n);a(n+e),t||o(s-e)}this.min=s,this.max=n}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:s}=t;return s?(e=Math.ceil(this.max/s)-Math.floor(this.min/s)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const n=function(t,e){const i=[],{bounds:n,step:o,min:a,max:r,precision:l,count:h,maxTicks:c,maxDigits:d,includeBounds:u}=t,f=o||1,g=c-1,{min:p,max:m}=e,x=!s(a),b=!s(r),_=!s(h),y=(m-p)/(d+1);let v,M,w,k,S=B((m-p)/g/f)*f;if(S<1e-14&&!x&&!b)return[{value:p},{value:m}];k=Math.ceil(m/S)-Math.floor(p/S),k>g&&(S=B(k*S/g/f)*f),s(l)||(v=Math.pow(10,l),S=Math.ceil(S*v)/v),"ticks"===n?(M=Math.floor(p/S)*S,w=Math.ceil(m/S)*S):(M=p,w=m),x&&b&&o&&H((r-a)/o,S/1e3)?(k=Math.round(Math.min((r-a)/S,c)),S=(r-a)/k,M=a,w=r):_?(M=x?a:M,w=b?r:w,k=h-1,S=(w-M)/k):(k=(w-M)/S,k=V(k,Math.round(k),S/1e3)?Math.round(k):Math.ceil(k));const P=Math.max(U(S),U(M));v=Math.pow(10,s(l)?P:l),M=Math.round(M*v)/v,w=Math.round(w*v)/v;let D=0;for(x&&(u&&M!==a?(i.push({value:a}),Mr)break;i.push({value:t})}return b&&u&&w!==r?i.length&&V(i[i.length-1].value,r,xo(r,y,t))?i[i.length-1].value=r:i.push({value:r}):b&&w!==r||i.push({value:w}),i}({maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===t.bounds&&j(n,this,"value"),t.reverse?(n.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),n}configure(){const t=this.ticks;let e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const s=(i-e)/Math.max(t.length-1,1)/2;e-=s,i+=s}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return ne(t,this.chart.options.locale,this.options.ticks.format)}}class _o extends bo{static id="linear";static defaults={ticks:{callback:ae.formatters.numeric}};determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?t:0,this.max=a(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,i=$(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,n=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,n.lineHeight/s))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}const yo=t=>Math.floor(z(t)),vo=(t,e)=>Math.pow(10,yo(t)+e);function Mo(t){return 1===t/Math.pow(10,yo(t))}function wo(t,e,i){const s=Math.pow(10,i),n=Math.floor(t/s);return Math.ceil(e/s)-n}function ko(t,{min:e,max:i}){e=r(t.min,e);const s=[],n=yo(e);let o=function(t,e){let i=yo(e-t);for(;wo(t,e,i)>10;)i++;for(;wo(t,e,i)<10;)i--;return Math.min(i,yo(t))}(e,i),a=o<0?Math.pow(10,Math.abs(o)):1;const l=Math.pow(10,o),h=n>o?Math.pow(10,n):0,c=Math.round((e-h)*a)/a,d=Math.floor((e-h)/l/10)*l*10;let u=Math.floor((c-d)/Math.pow(10,o)),f=r(t.min,Math.round((h+d+u*Math.pow(10,o))*a)/a);for(;f=10?u=u<15?15:20:u++,u>=20&&(o++,u=2,a=o>=0?1:a),f=Math.round((h+d+u*Math.pow(10,o))*a)/a;const g=r(t.max,f);return s.push({value:g,major:Mo(g),significand:u}),s}class So extends tn{static id="logarithmic";static defaults={ticks:{callback:ae.formatters.logarithmic,major:{enabled:!0}}};constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const i=bo.prototype.parse.apply(this,[t,e]);if(0!==i)return a(i)&&i>0?i:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=a(t)?Math.max(0,t):null,this.max=a(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!a(this._userMin)&&(this.min=t===vo(this.min,0)?vo(this.min,-1):vo(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let i=this.min,s=this.max;const n=e=>i=t?i:e,o=t=>s=e?s:t;i===s&&(i<=0?(n(1),o(10)):(n(vo(i,-1)),o(vo(s,1)))),i<=0&&n(vo(s,-1)),s<=0&&o(vo(i,1)),this.min=i,this.max=s}buildTicks(){const t=this.options,e=ko({min:this._userMin,max:this._userMax},this);return"ticks"===t.bounds&&j(e,this,"value"),t.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}getLabelForValue(t){return void 0===t?"0":ne(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=z(t),this._valueRange=z(this.max)-z(t)}getPixelForValue(t){return void 0!==t&&0!==t||(t=this.min),null===t||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(z(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}function Po(t){const e=t.ticks;if(e.display&&t.display){const t=ki(e.backdropPadding);return l(e.font&&e.font.size,ue.font.size)+t.height}return 0}function Do(t,e,i,s,n){return t===s||t===n?{start:e-i/2,end:e+i/2}:tn?{start:e-i,end:e}:{start:e,end:e+i}}function Co(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},i=Object.assign({},e),s=[],o=[],a=t._pointLabels.length,r=t.options.pointLabels,l=r.centerPointLabels?C/a:0;for(let u=0;ue.r&&(r=(s.end-e.r)/o,t.r=Math.max(t.r,e.r+r)),n.starte.b&&(l=(n.end-e.b)/a,t.b=Math.max(t.b,e.b+l))}function Ao(t,e,i){const s=t.drawingArea,{extra:n,additionalAngle:o,padding:a,size:r}=i,l=t.getPointPosition(e,s+n+a,o),h=Math.round(Y(G(l.angle+E))),c=function(t,e,i){90===i||270===i?t-=e/2:(i>270||i<90)&&(t-=e);return t}(l.y,r.h,h),d=function(t){if(0===t||180===t)return"center";if(t<180)return"left";return"right"}(h),u=function(t,e,i){"right"===i?t-=e:"center"===i&&(t-=e/2);return t}(l.x,r.w,d);return{visible:!0,x:l.x,y:c,textAlign:d,left:u,top:c,right:u+r.w,bottom:c+r.h}}function To(t,e){if(!e)return!0;const{left:i,top:s,right:n,bottom:o}=t;return!(Re({x:i,y:s},e)||Re({x:i,y:o},e)||Re({x:n,y:s},e)||Re({x:n,y:o},e))}function Lo(t,e,i){const{left:n,top:o,right:a,bottom:r}=i,{backdropColor:l}=e;if(!s(l)){const i=wi(e.borderRadius),s=ki(e.backdropPadding);t.fillStyle=l;const h=n-s.left,c=o-s.top,d=a-n+s.width,u=r-o+s.height;Object.values(i).some((t=>0!==t))?(t.beginPath(),He(t,{x:h,y:c,w:d,h:u,radius:i}),t.fill()):t.fillRect(h,c,d,u)}}function Eo(t,e,i,s){const{ctx:n}=t;if(i)n.arc(t.xCenter,t.yCenter,e,0,O);else{let i=t.getPointPosition(0,e);n.moveTo(i.x,i.y);for(let o=1;ot,padding:5,centerPointLabels:!1}};static defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};static descriptors={angleLines:{_fallback:"grid"}};constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=ki(Po(this.options)/2),e=this.width=this.maxWidth-t.width,i=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+e/2+t.left),this.yCenter=Math.floor(this.top+i/2+t.top),this.drawingArea=Math.floor(Math.min(e,i)/2)}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!1);this.min=a(t)&&!isNaN(t)?t:0,this.max=a(e)&&!isNaN(e)?e:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/Po(this.options))}generateTickLabels(t){bo.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map(((t,e)=>{const i=d(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:""})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?Co(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,s))}getIndexAngle(t){return G(t*(O/(this._pointLabels.length||1))+$(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if(s(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(s(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t=0;n--){const e=t._pointLabelItems[n];if(!e.visible)continue;const o=s.setContext(t.getPointLabelContext(n));Lo(i,o,e);const a=Si(o.font),{x:r,y:l,textAlign:h}=e;Ne(i,t._pointLabels[n],r,l+a.lineHeight/2,a,{color:o.color,textAlign:h,textBaseline:"middle"})}}(this,o),s.display&&this.ticks.forEach(((t,e)=>{if(0!==e||0===e&&this.min<0){r=this.getDistanceFromCenterForValue(t.value);const i=this.getContext(e),a=s.setContext(i),l=n.setContext(i);!function(t,e,i,s,n){const o=t.ctx,a=e.circular,{color:r,lineWidth:l}=e;!a&&!s||!r||!l||i<0||(o.save(),o.strokeStyle=r,o.lineWidth=l,o.setLineDash(n.dash||[]),o.lineDashOffset=n.dashOffset,o.beginPath(),Eo(t,i,a,s),o.closePath(),o.stroke(),o.restore())}(this,a,r,o,l)}})),i.display){for(t.save(),a=o-1;a>=0;a--){const s=i.setContext(this.getPointLabelContext(a)),{color:n,lineWidth:o}=s;o&&n&&(t.lineWidth=o,t.strokeStyle=n,t.setLineDash(s.borderDash),t.lineDashOffset=s.borderDashOffset,r=this.getDistanceFromCenterForValue(e.reverse?this.min:this.max),l=this.getPointPosition(a,r),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(l.x,l.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let n,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach(((s,a)=>{if(0===a&&this.min>=0&&!e.reverse)return;const r=i.setContext(this.getContext(a)),l=Si(r.font);if(n=this.getDistanceFromCenterForValue(this.ticks[a].value),r.showLabelBackdrop){t.font=l.string,o=t.measureText(s.label).width,t.fillStyle=r.backdropColor;const e=ki(r.backdropPadding);t.fillRect(-o/2-e.left,-n-l.size/2-e.top,o+e.width,l.size+e.height)}Ne(t,s.label,0,-n,l,{color:r.color,strokeColor:r.textStrokeColor,strokeWidth:r.textStrokeWidth})})),t.restore()}drawTitle(){}}const Io={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},zo=Object.keys(Io);function Fo(t,e){return t-e}function Vo(t,e){if(s(e))return null;const i=t._adapter,{parser:n,round:o,isoWeekday:r}=t._parseOpts;let l=e;return"function"==typeof n&&(l=n(l)),a(l)||(l="string"==typeof n?i.parse(l,n):i.parse(l)),null===l?null:(o&&(l="week"!==o||!N(r)&&!0!==r?i.startOf(l,o):i.startOf(l,"isoWeek",r)),+l)}function Bo(t,e,i,s){const n=zo.length;for(let o=zo.indexOf(t);o=e?i[s]:i[n]]=!0}}else t[e]=!0}function No(t,e,i){const s=[],n={},o=e.length;let a,r;for(a=0;a=0&&(e[l].major=!0);return e}(t,s,n,i):s}class Ho extends tn{static id="time";static defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}};constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e={}){const i=t.time||(t.time={}),s=this._adapter=new In._date(t.adapters.date);s.init(e),b(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:Vo(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||"day";let{min:s,max:n,minDefined:o,maxDefined:r}=this.getUserBounds();function l(t){o||isNaN(t.min)||(s=Math.min(s,t.min)),r||isNaN(t.max)||(n=Math.max(n,t.max))}o&&r||(l(this._getLabelBounds()),"ticks"===t.bounds&&"labels"===t.ticks.source||l(this.getMinMax(!1))),s=a(s)&&!isNaN(s)?s:+e.startOf(Date.now(),i),n=a(n)&&!isNaN(n)?n:+e.endOf(Date.now(),i)+1,this.min=Math.min(s,n-1),this.max=Math.max(s+1,n)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,s="labels"===i.source?this.getLabelTimestamps():this._generate();"ticks"===t.bounds&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const n=this.min,o=nt(s,n,this.max);return this._unit=e.unit||(i.autoSkip?Bo(e.minUnit,this.min,this.max,this._getLabelCapacity(n)):function(t,e,i,s,n){for(let o=zo.length-1;o>=zo.indexOf(i);o--){const i=zo[o];if(Io[i].common&&t._adapter.diff(n,s,i)>=e-1)return i}return zo[i?zo.indexOf(i):0]}(this,o.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&"year"!==this._unit?function(t){for(let e=zo.indexOf(t)+1,i=zo.length;e+t.value)))}initOffsets(t=[]){let e,i,s=0,n=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),s=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,i=this.getDecimalForValue(t[t.length-1]),n=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))/2);const o=t.length<3?.5:.25;s=Z(s,0,o),n=Z(n,0,o),this._offsets={start:s,end:n,factor:1/(s+1+n)}}_generate(){const t=this._adapter,e=this.min,i=this.max,s=this.options,n=s.time,o=n.unit||Bo(n.minUnit,e,i,this._getLabelCapacity(e)),a=l(s.ticks.stepSize,1),r="week"===o&&n.isoWeekday,h=N(r)||!0===r,c={};let d,u,f=e;if(h&&(f=+t.startOf(f,"isoWeek",r)),f=+t.startOf(f,h?"day":o),t.diff(i,e,o)>1e5*a)throw new Error(e+" and "+i+" are too far apart with stepSize of "+a+" "+o);const g="data"===s.ticks.source&&this.getDataTimestamps();for(d=f,u=0;d+t))}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}format(t,e){const i=this.options.time.displayFormats,s=this._unit,n=e||i[s];return this._adapter.format(t,n)}_tickFormatFunction(t,e,i,s){const n=this.options,o=n.ticks.callback;if(o)return d(o,[t,e,i],this);const a=n.time.displayFormats,r=this._unit,l=this._majorUnit,h=r&&a[r],c=l&&a[l],u=i[e],f=l&&c&&u&&u.major;return this._adapter.format(t,s||(f?c:h))}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e0?a:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(t=0,e=s.length;t=t[r].pos&&e<=t[l].pos&&({lo:r,hi:l}=it(t,"pos",e)),({pos:s,time:o}=t[r]),({pos:n,time:a}=t[l])):(e>=t[r].time&&e<=t[l].time&&({lo:r,hi:l}=it(t,"time",e)),({time:s,pos:o}=t[r]),({time:n,pos:a}=t[l]));const h=n-s;return h?o+(a-o)*(e-s)/h:o}var $o=Object.freeze({__proto__:null,CategoryScale:class extends tn{static id="category";static defaults={ticks:{callback:mo}};constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:s}of e)t[i]===s&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if(s(t))return null;const i=this.getLabels();return((t,e)=>null===t?null:Z(Math.round(t),0,e))(e=isFinite(e)&&i[e]===t?e:po(i,t,l(e,t),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);"ticks"===this.options.bounds&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,s=[];let n=this.getLabels();n=0===t&&e===n.length-1?n:n.slice(t,e+1),this._valueRange=Math.max(n.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let i=t;i<=e;i++)s.push({value:i});return s}getLabelForValue(t){return mo.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return"number"!=typeof t&&(t=this.parse(t)),null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}},LinearScale:_o,LogarithmicScale:So,RadialLinearScale:Ro,TimeScale:Ho,TimeSeriesScale:class extends Ho{static id="timeseries";static defaults=Ho.defaults;constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=jo(e,this.min),this._tableRange=jo(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:i}=this,s=[],n=[];let o,a,r,l,h;for(o=0,a=t.length;o=e&&l<=i&&s.push(l);if(s.length<2)return[{time:e,pos:0},{time:i,pos:1}];for(o=0,a=s.length;ot-e))}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const e=this.getDataTimestamps(),i=this.getLabelTimestamps();return t=e.length&&i.length?this.normalize(e.concat(i)):e.length?e:i,t=this._cache.all=t,t}getDecimalForValue(t){return(jo(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e.factor-e.end;return jo(this._table,i*this._tableRange+this._minPos,!0)}}});const Yo=["rgb(54, 162, 235)","rgb(255, 99, 132)","rgb(255, 159, 64)","rgb(255, 205, 86)","rgb(75, 192, 192)","rgb(153, 102, 255)","rgb(201, 203, 207)"],Uo=Yo.map((t=>t.replace("rgb(","rgba(").replace(")",", 0.5)")));function Xo(t){return Yo[t%Yo.length]}function qo(t){return Uo[t%Uo.length]}function Ko(t){let e=0;return(i,s)=>{const n=t.getDatasetMeta(s).controller;n instanceof $n?e=function(t,e){return t.backgroundColor=t.data.map((()=>Xo(e++))),e}(i,e):n instanceof Yn?e=function(t,e){return t.backgroundColor=t.data.map((()=>qo(e++))),e}(i,e):n&&(e=function(t,e){return t.borderColor=Xo(e),t.backgroundColor=qo(e),++e}(i,e))}}function Go(t){let e;for(e in t)if(t[e].borderColor||t[e].backgroundColor)return!0;return!1}var Jo={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(t,e,i){if(!i.enabled)return;const{data:{datasets:s},options:n}=t.config,{elements:o}=n,a=Go(s)||(r=n)&&(r.borderColor||r.backgroundColor)||o&&Go(o)||"rgba(0,0,0,0.1)"!==ue.borderColor||"rgba(0,0,0,0.1)"!==ue.backgroundColor;var r;if(!i.forceOverride&&a)return;const l=Ko(t);s.forEach(l)}};function Zo(t){if(t._decimated){const e=t._data;delete t._decimated,delete t._data,Object.defineProperty(t,"data",{configurable:!0,enumerable:!0,writable:!0,value:e})}}function Qo(t){t.data.datasets.forEach((t=>{Zo(t)}))}var ta={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(t,e,i)=>{if(!i.enabled)return void Qo(t);const n=t.width;t.data.datasets.forEach(((e,o)=>{const{_data:a,indexAxis:r}=e,l=t.getDatasetMeta(o),h=a||e.data;if("y"===Pi([r,t.options.indexAxis]))return;if(!l.controller.supportsDecimation)return;const c=t.scales[l.xAxisID];if("linear"!==c.type&&"time"!==c.type)return;if(t.options.parsing)return;let{start:d,count:u}=function(t,e){const i=e.length;let s,n=0;const{iScale:o}=t,{min:a,max:r,minDefined:l,maxDefined:h}=o.getUserBounds();return l&&(n=Z(it(e,o.axis,a).lo,0,i-1)),s=h?Z(it(e,o.axis,r).hi+1,n,i)-n:i-n,{start:n,count:s}}(l,h);if(u<=(i.threshold||4*n))return void Zo(e);let f;switch(s(a)&&(e._data=h,delete e.data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(t){this._data=t}})),i.algorithm){case"lttb":f=function(t,e,i,s,n){const o=n.samples||s;if(o>=i)return t.slice(e,e+i);const a=[],r=(i-2)/(o-2);let l=0;const h=e+i-1;let c,d,u,f,g,p=e;for(a[l++]=t[p],c=0;cu&&(u=f,d=t[s],g=s);a[l++]=d,p=g}return a[l++]=t[h],a}(h,d,u,n,i);break;case"min-max":f=function(t,e,i,n){let o,a,r,l,h,c,d,u,f,g,p=0,m=0;const x=[],b=e+i-1,_=t[e].x,y=t[b].x-_;for(o=e;og&&(g=l,d=o),p=(m*p+a.x)/++m;else{const i=o-1;if(!s(c)&&!s(d)){const e=Math.min(c,d),s=Math.max(c,d);e!==u&&e!==i&&x.push({...t[e],x:p}),s!==u&&s!==i&&x.push({...t[s],x:p})}o>0&&i!==u&&x.push(t[i]),x.push(a),h=e,m=0,f=g=l,c=d=u=o}}return x}(h,d,u,n);break;default:throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`)}e._decimated=f}))},destroy(t){Qo(t)}};function ea(t,e,i,s){if(s)return;let n=e[t],o=i[t];return"angle"===t&&(n=G(n),o=G(o)),{property:t,start:n,end:o}}function ia(t,e,i){for(;e>t;e--){const t=i[e];if(!isNaN(t.x)&&!isNaN(t.y))break}return e}function sa(t,e,i,s){return t&&e?s(t[i],e[i]):t?t[i]:e?e[i]:0}function na(t,e){let i=[],s=!1;return n(t)?(s=!0,i=t):i=function(t,e){const{x:i=null,y:s=null}=t||{},n=e.points,o=[];return e.segments.forEach((({start:t,end:e})=>{e=ia(t,e,n);const a=n[t],r=n[e];null!==s?(o.push({x:a.x,y:s}),o.push({x:r.x,y:s})):null!==i&&(o.push({x:i,y:a.y}),o.push({x:i,y:r.y}))})),o}(t,e),i.length?new oo({points:i,options:{tension:0},_loop:s,_fullLoop:s}):null}function oa(t){return t&&!1!==t.fill}function aa(t,e,i){let s=t[e].fill;const n=[e];let o;if(!i)return s;for(;!1!==s&&-1===n.indexOf(s);){if(!a(s))return s;if(o=t[s],!o)return!1;if(o.visible)return s;n.push(s),s=o.fill}return!1}function ra(t,e,i){const s=function(t){const e=t.options,i=e.fill;let s=l(i&&i.target,i);void 0===s&&(s=!!e.backgroundColor);if(!1===s||null===s)return!1;if(!0===s)return"origin";return s}(t);if(o(s))return!isNaN(s.value)&&s;let n=parseFloat(s);return a(n)&&Math.floor(n)===n?function(t,e,i,s){"-"!==t&&"+"!==t||(i=e+i);if(i===e||i<0||i>=s)return!1;return i}(s[0],e,n,i):["origin","start","end","stack","shape"].indexOf(s)>=0&&s}function la(t,e,i){const s=[];for(let n=0;n=0;--e){const i=n[e].$filler;i&&(i.line.updateControlPoints(o,i.axis),s&&i.fill&&ua(t.ctx,i,o))}},beforeDatasetsDraw(t,e,i){if("beforeDatasetsDraw"!==i.drawTime)return;const s=t.getSortedVisibleDatasetMetas();for(let e=s.length-1;e>=0;--e){const i=s[e].$filler;oa(i)&&ua(t.ctx,i,t.chartArea)}},beforeDatasetDraw(t,e,i){const s=e.meta.$filler;oa(s)&&"beforeDatasetDraw"===i.drawTime&&ua(t.ctx,s,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const _a=(t,e)=>{let{boxHeight:i=e,boxWidth:s=e}=t;return t.usePointStyle&&(i=Math.min(i,e),s=t.pointStyleWidth||Math.min(s,e)),{boxWidth:s,boxHeight:i,itemHeight:Math.max(e,i)}};class ya extends $s{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=d(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,i)=>t.sort(e,i,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,s=Si(i.font),n=s.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:r}=_a(i,n);let l,h;e.font=s.string,this.isHorizontal()?(l=this.maxWidth,h=this._fitRows(o,n,a,r)+10):(h=this.maxHeight,l=this._fitCols(o,s,a,r)+10),this.width=Math.min(l,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){const{ctx:n,maxWidth:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.lineWidths=[0],h=s+a;let c=t;n.textAlign="left",n.textBaseline="middle";let d=-1,u=-h;return this.legendItems.forEach(((t,f)=>{const g=i+e/2+n.measureText(t.text).width;(0===f||l[l.length-1]+g+2*a>o)&&(c+=h,l[l.length-(f>0?0:1)]=0,u+=h,d++),r[f]={left:0,top:u,row:d,width:g,height:s},l[l.length-1]+=g+a})),c}_fitCols(t,e,i,s){const{ctx:n,maxHeight:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.columnSizes=[],h=o-t;let c=a,d=0,u=0,f=0,g=0;return this.legendItems.forEach(((t,o)=>{const{itemWidth:p,itemHeight:m}=function(t,e,i,s,n){const o=function(t,e,i,s){let n=t.text;n&&"string"!=typeof n&&(n=n.reduce(((t,e)=>t.length>e.length?t:e)));return e+i.size/2+s.measureText(n).width}(s,t,e,i),a=function(t,e,i){let s=t;"string"!=typeof e.text&&(s=va(e,i));return s}(n,s,e.lineHeight);return{itemWidth:o,itemHeight:a}}(i,e,n,t,s);o>0&&u+m+2*a>h&&(c+=d+a,l.push({width:d,height:u}),f+=d+a,g++,d=u=0),r[o]={left:f,top:u,col:g,width:p,height:m},d=Math.max(d,p),u+=m+a})),c+=d,l.push({width:d,height:u}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:n}}=this,o=Oi(n,this.left,this.width);if(this.isHorizontal()){let n=0,a=ft(i,this.left+s,this.right-this.lineWidths[n]);for(const r of e)n!==r.row&&(n=r.row,a=ft(i,this.left+s,this.right-this.lineWidths[n])),r.top+=this.top+t+s,r.left=o.leftForLtr(o.x(a),r.width),a+=r.width+s}else{let n=0,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height);for(const r of e)r.col!==n&&(n=r.col,a=ft(i,this.top+t+s,this.bottom-this.columnSizes[n].height)),r.top=a,r.left+=this.left+s,r.left=o.leftForLtr(o.x(r.left),r.width),a+=r.height+s}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const t=this.ctx;Ie(t,this),this._draw(),ze(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:n,labels:o}=t,a=ue.color,r=Oi(t.rtl,this.left,this.width),h=Si(o.font),{padding:c}=o,d=h.size,u=d/2;let f;this.drawTitle(),s.textAlign=r.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=h.string;const{boxWidth:g,boxHeight:p,itemHeight:m}=_a(o,d),x=this.isHorizontal(),b=this._computeTitleHeight();f=x?{x:ft(n,this.left+c,this.right-i[0]),y:this.top+c+b,line:0}:{x:this.left+c,y:ft(n,this.top+b+c,this.bottom-e[0].height),line:0},Ai(this.ctx,t.textDirection);const _=m+c;this.legendItems.forEach(((y,v)=>{s.strokeStyle=y.fontColor,s.fillStyle=y.fontColor;const M=s.measureText(y.text).width,w=r.textAlign(y.textAlign||(y.textAlign=o.textAlign)),k=g+u+M;let S=f.x,P=f.y;r.setWidth(this.width),x?v>0&&S+k+c>this.right&&(P=f.y+=_,f.line++,S=f.x=ft(n,this.left+c,this.right-i[f.line])):v>0&&P+_>this.bottom&&(S=f.x=S+e[f.line].width+c,f.line++,P=f.y=ft(n,this.top+b+c,this.bottom-e[f.line].height));if(function(t,e,i){if(isNaN(g)||g<=0||isNaN(p)||p<0)return;s.save();const n=l(i.lineWidth,1);if(s.fillStyle=l(i.fillStyle,a),s.lineCap=l(i.lineCap,"butt"),s.lineDashOffset=l(i.lineDashOffset,0),s.lineJoin=l(i.lineJoin,"miter"),s.lineWidth=n,s.strokeStyle=l(i.strokeStyle,a),s.setLineDash(l(i.lineDash,[])),o.usePointStyle){const a={radius:p*Math.SQRT2/2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:n},l=r.xPlus(t,g/2);Ee(s,a,l,e+u,o.pointStyleWidth&&g)}else{const o=e+Math.max((d-p)/2,0),a=r.leftForLtr(t,g),l=wi(i.borderRadius);s.beginPath(),Object.values(l).some((t=>0!==t))?He(s,{x:a,y:o,w:g,h:p,radius:l}):s.rect(a,o,g,p),s.fill(),0!==n&&s.stroke()}s.restore()}(r.x(S),P,y),S=gt(w,S+g+u,x?S+k:this.right,t.rtl),function(t,e,i){Ne(s,i.text,t,e+m/2,h,{strikethrough:i.hidden,textAlign:r.textAlign(i.textAlign)})}(r.x(S),P,y),x)f.x+=k+c;else if("string"!=typeof y.text){const t=h.lineHeight;f.y+=va(y,t)+c}else f.y+=_})),Ti(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=Si(e.font),s=ki(e.padding);if(!e.display)return;const n=Oi(t.rtl,this.left,this.width),o=this.ctx,a=e.position,r=i.size/2,l=s.top+r;let h,c=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),h=this.top+l,c=ft(t.align,c,this.right-d);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);h=l+ft(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const u=ft(a,c,c+d);o.textAlign=n.textAlign(ut(a)),o.textBaseline="middle",o.strokeStyle=e.color,o.fillStyle=e.color,o.font=i.string,Ne(o,e.text,u,h,i)}_computeTitleHeight(){const t=this.options.title,e=Si(t.font),i=ki(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,n;if(tt(t,this.left,this.right)&&tt(e,this.top,this.bottom))for(n=this.legendHitBoxes,i=0;it.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:s,textAlign:n,color:o,useBorderRadius:a,borderRadius:r}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const l=t.controller.getStyle(i?0:void 0),h=ki(l.borderWidth);return{text:e[t.index].label,fillStyle:l.backgroundColor,fontColor:o,hidden:!t.visible,lineCap:l.borderCapStyle,lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:(h.width+h.height)/4,strokeStyle:l.borderColor,pointStyle:s||l.pointStyle,rotation:l.rotation,textAlign:n||l.textAlign,borderRadius:a&&(r||l.borderRadius),datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};class wa extends $s{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const i=this.options;if(this.left=0,this.top=0,!i.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=t,this.height=this.bottom=e;const s=n(i.text)?i.text.length:1;this._padding=ki(i.padding);const o=s*Si(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return"top"===t||"bottom"===t}_drawArgs(t){const{top:e,left:i,bottom:s,right:n,options:o}=this,a=o.align;let r,l,h,c=0;return this.isHorizontal()?(l=ft(a,i,n),h=e+t,r=n-i):("left"===o.position?(l=i+t,h=ft(a,s,e),c=-.5*C):(l=n-t,h=ft(a,e,s),c=.5*C),r=s-e),{titleX:l,titleY:h,maxWidth:r,rotation:c}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const i=Si(e.font),s=i.lineHeight/2+this._padding.top,{titleX:n,titleY:o,maxWidth:a,rotation:r}=this._drawArgs(s);Ne(t,e.text,0,0,i,{color:e.color,maxWidth:a,rotation:r,textAlign:ut(e.align),textBaseline:"middle",translation:[n,o]})}}var ka={id:"title",_element:wa,start(t,e,i){!function(t,e){const i=new wa({ctx:t.ctx,options:e,chart:t});ls.configure(t,i,e),ls.addBox(t,i),t.titleBlock=i}(t,i)},stop(t){const e=t.titleBlock;ls.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,i){const s=t.titleBlock;ls.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Sa=new WeakMap;var Pa={id:"subtitle",start(t,e,i){const s=new wa({ctx:t.ctx,options:i,chart:t});ls.configure(t,s,i),ls.addBox(t,s),Sa.set(t,s)},stop(t){ls.removeBox(t,Sa.get(t)),Sa.delete(t)},beforeUpdate(t,e,i){const s=Sa.get(t);ls.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Da={average(t){if(!t.length)return!1;let e,i,s=new Set,n=0,o=0;for(e=0,i=t.length;et+e))/s.size,y:n/o}},nearest(t,e){if(!t.length)return!1;let i,s,n,o=e.x,a=e.y,r=Number.POSITIVE_INFINITY;for(i=0,s=t.length;i-1?t.split("\n"):t}function Aa(t,e){const{element:i,datasetIndex:s,index:n}=e,o=t.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:t,label:a,parsed:o.getParsed(n),raw:t.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:i}}function Ta(t,e){const i=t.chart.ctx,{body:s,footer:n,title:o}=t,{boxWidth:a,boxHeight:r}=e,l=Si(e.bodyFont),h=Si(e.titleFont),c=Si(e.footerFont),d=o.length,f=n.length,g=s.length,p=ki(e.padding);let m=p.height,x=0,b=s.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(b+=t.beforeBody.length+t.afterBody.length,d&&(m+=d*h.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),b){m+=g*(e.displayColors?Math.max(r,l.lineHeight):l.lineHeight)+(b-g)*l.lineHeight+(b-1)*e.bodySpacing}f&&(m+=e.footerMarginTop+f*c.lineHeight+(f-1)*e.footerSpacing);let _=0;const y=function(t){x=Math.max(x,i.measureText(t).width+_)};return i.save(),i.font=h.string,u(t.title,y),i.font=l.string,u(t.beforeBody.concat(t.afterBody),y),_=e.displayColors?a+2+e.boxPadding:0,u(s,(t=>{u(t.before,y),u(t.lines,y),u(t.after,y)})),_=0,i.font=c.string,u(t.footer,y),i.restore(),x+=p.width,{width:x,height:m}}function La(t,e,i,s){const{x:n,width:o}=i,{width:a,chartArea:{left:r,right:l}}=t;let h="center";return"center"===s?h=n<=(r+l)/2?"left":"right":n<=o/2?h="left":n>=a-o/2&&(h="right"),function(t,e,i,s){const{x:n,width:o}=s,a=i.caretSize+i.caretPadding;return"left"===t&&n+o+a>e.width||"right"===t&&n-o-a<0||void 0}(h,t,e,i)&&(h="center"),h}function Ea(t,e,i){const s=i.yAlign||e.yAlign||function(t,e){const{y:i,height:s}=e;return it.height-s/2?"bottom":"center"}(t,i);return{xAlign:i.xAlign||e.xAlign||La(t,e,i,s),yAlign:s}}function Ra(t,e,i,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=i,h=n+o,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=wi(a);let g=function(t,e){let{x:i,width:s}=t;return"right"===e?i-=s:"center"===e&&(i-=s/2),i}(e,r);const p=function(t,e,i){let{y:s,height:n}=t;return"top"===e?s+=i:s-="bottom"===e?n+i:n/2,s}(e,l,h);return"center"===l?"left"===r?g+=h:"right"===r&&(g-=h):"left"===r?g-=Math.max(c,u)+n:"right"===r&&(g+=Math.max(d,f)+n),{x:Z(g,0,s.width-e.width),y:Z(p,0,s.height-e.height)}}function Ia(t,e,i){const s=ki(i.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-s.right:t.x+s.left}function za(t){return Ca([],Oa(t))}function Fa(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}const Va={beforeTitle:e,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,s=i?i.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(s>0&&e.dataIndex{const e={before:[],lines:[],after:[]},n=Fa(i,t);Ca(e.before,Oa(Ba(n,"beforeLabel",this,t))),Ca(e.lines,Ba(n,"label",this,t)),Ca(e.after,Oa(Ba(n,"afterLabel",this,t))),s.push(e)})),s}getAfterBody(t,e){return za(Ba(e.callbacks,"afterBody",this,t))}getFooter(t,e){const{callbacks:i}=e,s=Ba(i,"beforeFooter",this,t),n=Ba(i,"footer",this,t),o=Ba(i,"afterFooter",this,t);let a=[];return a=Ca(a,Oa(s)),a=Ca(a,Oa(n)),a=Ca(a,Oa(o)),a}_createItems(t){const e=this._active,i=this.chart.data,s=[],n=[],o=[];let a,r,l=[];for(a=0,r=e.length;at.filter(e,s,n,i)))),t.itemSort&&(l=l.sort(((e,s)=>t.itemSort(e,s,i)))),u(l,(e=>{const i=Fa(t.callbacks,e);s.push(Ba(i,"labelColor",this,e)),n.push(Ba(i,"labelPointStyle",this,e)),o.push(Ba(i,"labelTextColor",this,e))})),this.labelColors=s,this.labelPointStyles=n,this.labelTextColors=o,this.dataPoints=l,l}update(t,e){const i=this.options.setContext(this.getContext()),s=this._active;let n,o=[];if(s.length){const t=Da[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=Ta(this,i),a=Object.assign({},t,e),r=Ea(this.chart,i,a),l=Ra(i,a,r,this.chart);this.xAlign=r.xAlign,this.yAlign=r.yAlign,n={opacity:1,x:l.x,y:l.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(n={opacity:0});this._tooltipItems=o,this.$context=void 0,n&&this._resolveAnimations().update(this,n),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){const n=this.getCaretPosition(t,i,s);e.lineTo(n.x1,n.y1),e.lineTo(n.x2,n.y2),e.lineTo(n.x3,n.y3)}getCaretPosition(t,e,i){const{xAlign:s,yAlign:n}=this,{caretSize:o,cornerRadius:a}=i,{topLeft:r,topRight:l,bottomLeft:h,bottomRight:c}=wi(a),{x:d,y:u}=t,{width:f,height:g}=e;let p,m,x,b,_,y;return"center"===n?(_=u+g/2,"left"===s?(p=d,m=p-o,b=_+o,y=_-o):(p=d+f,m=p+o,b=_-o,y=_+o),x=p):(m="left"===s?d+Math.max(r,h)+o:"right"===s?d+f-Math.max(l,c)-o:this.caretX,"top"===n?(b=u,_=b-o,p=m-o,x=m+o):(b=u+g,_=b+o,p=m+o,x=m-o),y=b),{x1:p,x2:m,x3:x,y1:b,y2:_,y3:y}}drawTitle(t,e,i){const s=this.title,n=s.length;let o,a,r;if(n){const l=Oi(i.rtl,this.x,this.width);for(t.x=Ia(this,i.titleAlign,i),e.textAlign=l.textAlign(i.titleAlign),e.textBaseline="middle",o=Si(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=o.string,r=0;r0!==t))?(t.beginPath(),t.fillStyle=n.multiKeyBackground,He(t,{x:e,y:g,w:h,h:l,radius:r}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),He(t,{x:i,y:g+1,w:h-2,h:l-2,radius:r}),t.fill()):(t.fillStyle=n.multiKeyBackground,t.fillRect(e,g,h,l),t.strokeRect(e,g,h,l),t.fillStyle=a.backgroundColor,t.fillRect(i,g+1,h-2,l-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:s}=this,{bodySpacing:n,bodyAlign:o,displayColors:a,boxHeight:r,boxWidth:l,boxPadding:h}=i,c=Si(i.bodyFont);let d=c.lineHeight,f=0;const g=Oi(i.rtl,this.x,this.width),p=function(i){e.fillText(i,g.x(t.x+f),t.y+d/2),t.y+=d+n},m=g.textAlign(o);let x,b,_,y,v,M,w;for(e.textAlign=o,e.textBaseline="middle",e.font=c.string,t.x=Ia(this,m,i),e.fillStyle=i.bodyColor,u(this.beforeBody,p),f=a&&"right"!==m?"center"===o?l/2+h:l+2+h:0,y=0,M=s.length;y0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,s=i&&i.x,n=i&&i.y;if(s||n){const i=Da[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=Ta(this,t),a=Object.assign({},i,this._size),r=Ea(e,t,a),l=Ra(t,a,r,e);s._to===l.x&&n._to===l.y||(this.xAlign=r.xAlign,this.yAlign=r.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,l))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const s={width:this.width,height:this.height},n={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const o=ki(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(n,t,s,e),Ai(t,e.textDirection),n.y+=o.top,this.drawTitle(n,t,e),this.drawBody(n,t,e),this.drawFooter(n,t,e),Ti(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,s=t.map((({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error("Cannot find a dataset at index "+t);return{datasetIndex:t,element:i.data[e],index:e}})),n=!f(i,s),o=this._positionChanged(s,e);(n||o)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,n=this._active||[],o=this._getActiveElements(t,n,e,i),a=this._positionChanged(o,t),r=e||!f(o,n)||a;return r&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),r}_getActiveElements(t,e,i,s){const n=this.options;if("mouseout"===t.type)return[];if(!s)return e.filter((t=>this.chart.data.datasets[t.datasetIndex]&&void 0!==this.chart.getDatasetMeta(t.datasetIndex).controller.getParsed(t.index)));const o=this.chart.getElementsAtEventForMode(t,n.mode,n,i);return n.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:s,options:n}=this,o=Da[n.position].call(this,t,e);return!1!==o&&(i!==o.x||s!==o.y)}}var Na={id:"tooltip",_element:Wa,positioners:Da,afterInit(t,e,i){i&&(t.tooltip=new Wa({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e};if(!1===t.notifyPlugins("beforeTooltipDraw",{...i,cancelable:!0}))return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",i)}},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:Va},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>"filter"!==t&&"itemSort"!==t&&"external"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};return Tn.register(Un,$o,go,t),Tn.helpers={...Hi},Tn._adapters=In,Tn.Animation=As,Tn.Animations=Ts,Tn.animator=bt,Tn.controllers=nn.controllers.items,Tn.DatasetController=js,Tn.Element=$s,Tn.elements=go,Tn.Interaction=Ki,Tn.layouts=ls,Tn.platforms=Ds,Tn.Scale=tn,Tn.Ticks=ae,Object.assign(Tn,Un,$o,go,t,Ds),Tn.Chart=Tn,"undefined"!=typeof window&&(window.Chart=Tn),Tn})); +//# sourceMappingURL=chart.umd.min.js.map \ No newline at end of file diff --git a/js/chartjs-adapter-luxon.js b/js/chartjs-adapter-luxon.js new file mode 100644 index 0000000..d212862 --- /dev/null +++ b/js/chartjs-adapter-luxon.js @@ -0,0 +1,7 @@ +/*! + * chartjs-adapter-luxon v1.3.1 + * https://www.chartjs.org + * (c) 2023 chartjs-adapter-luxon Contributors + * Released under the MIT license + */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("chart.js"),require("luxon")):"function"==typeof define&&define.amd?define(["chart.js","luxon"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Chart,e.luxon)}(this,(function(e,t){"use strict";const n={datetime:t.DateTime.DATETIME_MED_WITH_SECONDS,millisecond:"h:mm:ss.SSS a",second:t.DateTime.TIME_WITH_SECONDS,minute:t.DateTime.TIME_SIMPLE,hour:{hour:"numeric"},day:{day:"numeric",month:"short"},week:"DD",month:{month:"short",year:"numeric"},quarter:"'Q'q - yyyy",year:{year:"numeric"}};e._adapters._date.override({_id:"luxon",_create:function(e){return t.DateTime.fromMillis(e,this.options)},init(e){this.options.locale||(this.options.locale=e.locale)},formats:function(){return n},parse:function(e,n){const i=this.options,r=typeof e;return null===e||"undefined"===r?null:("number"===r?e=this._create(e):"string"===r?e="string"==typeof n?t.DateTime.fromFormat(e,n,i):t.DateTime.fromISO(e,i):e instanceof Date?e=t.DateTime.fromJSDate(e,i):"object"!==r||e instanceof t.DateTime||(e=t.DateTime.fromObject(e,i)),e.isValid?e.valueOf():null)},format:function(e,t){const n=this._create(e);return"string"==typeof t?n.toFormat(t):n.toLocaleString(t)},add:function(e,t,n){const i={};return i[n]=t,this._create(e).plus(i).valueOf()},diff:function(e,t,n){return this._create(e).diff(this._create(t)).as(n).valueOf()},startOf:function(e,t,n){if("isoWeek"===t){n=Math.trunc(Math.min(Math.max(0,n),6));const t=this._create(e);return t.minus({days:(t.weekday-n+7)%7}).startOf("day").valueOf()}return t?this._create(e).startOf(t).valueOf():e},endOf:function(e,t){return this._create(e).endOf(t).valueOf()}})})); diff --git a/js/chartjs-plugin-annotation.min.js b/js/chartjs-plugin-annotation.min.js new file mode 100644 index 0000000..726e149 --- /dev/null +++ b/js/chartjs-plugin-annotation.min.js @@ -0,0 +1,7 @@ +/*! +* chartjs-plugin-annotation v3.1.0 +* https://www.chartjs.org/chartjs-plugin-annotation/index + * (c) 2024 chartjs-plugin-annotation Contributors + * Released under the MIT License + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("chart.js"),require("chart.js/helpers")):"function"==typeof define&&define.amd?define(["chart.js","chart.js/helpers"],e):(t="undefined"!=typeof globalThis?globalThis:t||self)["chartjs-plugin-annotation"]=e(t.Chart,t.Chart.helpers)}(this,(function(t,e){"use strict";const o={modes:{point:(t,e)=>i(t,e,{intersect:!0}),nearest:(t,o,n)=>function(t,o,n){let r=Number.POSITIVE_INFINITY;return i(t,o,n).reduce(((t,i)=>{const s=i.getCenterPoint(),a=function(t,e,o){if("x"===o)return{x:t.x,y:e.y};if("y"===o)return{x:e.x,y:t.y};return e}(o,s,n.axis),d=e.distanceBetweenPoints(o,a);return dt._index-e._index)).slice(0,1)}(t,o,n),x:(t,e,o)=>i(t,e,{intersect:o.intersect,axis:"x"}),y:(t,e,o)=>i(t,e,{intersect:o.intersect,axis:"y"})}};function n(t,e,n){return(o.modes[n.mode]||o.modes.nearest)(t,e,n)}function i(t,e,o){return t.filter((t=>o.intersect?t.inRange(e.x,e.y):function(t,e,o){return"x"!==o&&"y"!==o?t.inRange(e.x,e.y,"x",!0)||t.inRange(e.x,e.y,"y",!0):t.inRange(e.x,e.y,o,!0)}(t,e,o.axis)))}function r(t,e,o){const n=Math.cos(o),i=Math.sin(o),r=e.x,s=e.y;return{x:r+n*(t.x-r)-i*(t.y-s),y:s+i*(t.x-r)+n*(t.y-s)}}const s=(t,e)=>e>t||t.length>e.length&&t.slice(0,e.length)===e,a=.001,d=(t,e,o)=>Math.min(o,Math.max(e,t)),l=(t,e)=>t.value>=t.start-e&&t.value<=t.end+e;function c(t,e,o){for(const n of Object.keys(t))t[n]=d(t[n],e,o);return t}function h(t,{x:e,y:o,x2:n,y2:i},r,{borderWidth:s,hitTolerance:d}){const l=(s+d)/2,c=t.x>=e-l-a&&t.x<=n+l+a,h=t.y>=o-l-a&&t.y<=i+l+a;return"x"===r?c:("y"===r||c)&&h}function u(t,{rect:o,center:n},i,{rotation:s,borderWidth:a,hitTolerance:d}){return h(r(t,n,e.toRadians(-s)),o,i,{borderWidth:a,hitTolerance:d})}function f(t,e){const{centerX:o,centerY:n}=t.getProps(["centerX","centerY"],e);return{x:o,y:n}}const x=t=>"string"==typeof t&&t.endsWith("%"),y=t=>parseFloat(t)/100,p=t=>d(y(t),0,1),b=(t,e)=>({x:t,y:e,x2:t,y2:e,width:0,height:0}),g={box:t=>b(t.centerX,t.centerY),doughnutLabel:t=>b(t.centerX,t.centerY),ellipse:t=>({centerX:t.centerX,centerY:t.centerX,radius:0,width:0,height:0}),label:t=>b(t.centerX,t.centerY),line:t=>b(t.x,t.y),point:t=>({centerX:t.centerX,centerY:t.centerY,radius:0,width:0,height:0}),polygon:t=>b(t.centerX,t.centerY)};function m(t,e){return"start"===e?0:"end"===e?t:x(e)?p(e)*t:t/2}function v(t,e,o=!0){return"number"==typeof e?e:x(e)?(o?p(e):y(e))*t:t}function w(t,o,{borderWidth:n,position:i,xAdjust:r,yAdjust:s},a){const d=e.isObject(a),l=o.width+(d?a.width:0)+n,c=o.height+(d?a.height:0)+n,h=M(i),u=k(t.x,l,r,h.x),f=k(t.y,c,s,h.y);return{x:u,y:f,x2:u+l,y2:f+c,width:l,height:c,centerX:u+l/2,centerY:f+c/2}}function M(t,o="center"){return e.isObject(t)?{x:e.valueOrDefault(t.x,o),y:e.valueOrDefault(t.y,o)}:{x:t=e.valueOrDefault(t,o),y:t}}const P=(t,e)=>t&&t.autoFit&&e<1;function S(t,o){const n=t.font,i=e.isArray(n)?n:[n];return P(t,o)?i.map((function(t){const n=e.toFont(t);return n.size=Math.floor(t.size*o),n.lineHeight=t.lineHeight,e.toFont(n)})):i.map((t=>e.toFont(t)))}function C(t){return t&&(e.defined(t.xValue)||e.defined(t.yValue))}function k(t,e,o=0,n){return t-m(e,n)+o}function A(t,o,n){const i=n.init;if(i)return!0===i?D(o,n):function(t,o,n){const i=e.callback(n.init,[{chart:t,properties:o,options:n}]);if(!0===i)return D(o,n);if(e.isObject(i))return i}(t,o,n)}function T(t,o,n){let i=!1;return o.forEach((o=>{e.isFunction(t[o])?(i=!0,n[o]=t[o]):e.defined(n[o])&&delete n[o]})),i}function D(t,e){const o=e.type||"line";return g[o](t)}const j=new Map,O=t=>isNaN(t)||t<=0,R=t=>t.reduce((function(t,e){return t+=e.string}),"");function I(t){if(t&&"object"==typeof t){const e=t.toString();return"[object HTMLImageElement]"===e||"[object HTMLCanvasElement]"===e}}function Y(t,{x:o,y:n},i){i&&(t.translate(o,n),t.rotate(e.toRadians(i)),t.translate(-o,-n))}function X(t,e){if(e&&e.borderWidth)return t.lineCap=e.borderCapStyle||"butt",t.setLineDash(e.borderDash),t.lineDashOffset=e.borderDashOffset,t.lineJoin=e.borderJoinStyle||"miter",t.lineWidth=e.borderWidth,t.strokeStyle=e.borderColor,!0}function _(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY}function E(t,o){const n=o.content;if(I(n)){return{width:v(n.width,o.width),height:v(n.height,o.height)}}const i=S(o),r=o.textStrokeWidth,s=e.isArray(n)?n:[n],a=s.join()+R(i)+r+(t._measureText?"-spriting":"");return j.has(a)||j.set(a,function(t,e,o,n){t.save();const i=e.length;let r=0,s=n;for(let a=0;a0)return t.lineJoin="round",t.miterLimit=2,t.lineWidth=e.textStrokeWidth,t.strokeStyle=e.textStrokeColor,!0}(t,n)&&function(t,{x:e,y:o},n,i){t.beginPath();let r=0;n.forEach((function(n,s){const a=i[Math.min(s,i.length-1)],d=a.lineHeight;t.font=a.string,t.strokeText(n,e,o+d/2+r),r+=d})),t.stroke()}(t,{x:h,y:u},s,a),function(t,{x:e,y:o},n,{fonts:i,colors:r}){let s=0;n.forEach((function(n,a){const d=r[Math.min(a,r.length-1)],l=i[Math.min(a,i.length-1)],c=l.lineHeight;t.beginPath(),t.font=l.string,t.fillStyle=d,t.fillText(n,e,o+c/2+s),s+=c,t.fill()}))}(t,{x:h,y:u},s,{fonts:a,colors:c}),t.restore()}function F(t,o,n,i){const{radius:r,options:s}=o,a=s.pointStyle,d=s.rotation;let l=(d||0)*e.RAD_PER_DEG;if(I(a))return t.save(),t.translate(n,i),t.rotate(l),t.drawImage(a,-a.width/2,-a.height/2,a.width,a.height),void t.restore();O(r)||function(t,{x:o,y:n,radius:i,rotation:r,style:s,rad:a}){let d,l,c,h;switch(t.beginPath(),s){default:t.arc(o,n,i,0,e.TAU),t.closePath();break;case"triangle":t.moveTo(o+Math.sin(a)*i,n-Math.cos(a)*i),a+=e.TWO_THIRDS_PI,t.lineTo(o+Math.sin(a)*i,n-Math.cos(a)*i),a+=e.TWO_THIRDS_PI,t.lineTo(o+Math.sin(a)*i,n-Math.cos(a)*i),t.closePath();break;case"rectRounded":h=.516*i,c=i-h,d=Math.cos(a+e.QUARTER_PI)*c,l=Math.sin(a+e.QUARTER_PI)*c,t.arc(o-d,n-l,h,a-e.PI,a-e.HALF_PI),t.arc(o+l,n-d,h,a-e.HALF_PI,a),t.arc(o+d,n+l,h,a,a+e.HALF_PI),t.arc(o-l,n+d,h,a+e.HALF_PI,a+e.PI),t.closePath();break;case"rect":if(!r){c=Math.SQRT1_2*i,t.rect(o-c,n-c,2*c,2*c);break}a+=e.QUARTER_PI;case"rectRot":d=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(o-d,n-l),t.lineTo(o+l,n-d),t.lineTo(o+d,n+l),t.lineTo(o-l,n+d),t.closePath();break;case"crossRot":a+=e.QUARTER_PI;case"cross":d=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(o-d,n-l),t.lineTo(o+d,n+l),t.moveTo(o+l,n-d),t.lineTo(o-l,n+d);break;case"star":d=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(o-d,n-l),t.lineTo(o+d,n+l),t.moveTo(o+l,n-d),t.lineTo(o-l,n+d),a+=e.QUARTER_PI,d=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(o-d,n-l),t.lineTo(o+d,n+l),t.moveTo(o+l,n-d),t.lineTo(o-l,n+d);break;case"line":d=Math.cos(a)*i,l=Math.sin(a)*i,t.moveTo(o-d,n-l),t.lineTo(o+d,n+l);break;case"dash":t.moveTo(o,n),t.lineTo(o+Math.cos(a)*i,n+Math.sin(a)*i)}t.fill()}(t,{x:n,y:i,radius:r,rotation:d,style:a,rad:l})}const H=["left","bottom","top","right"];function N(t,o){const{pointX:n,pointY:i,options:s}=o,a=s.callout,d=a&&a.display&&function(t,o){const n=o.position;if(H.includes(n))return n;return function(t,o){const{x:n,y:i,x2:s,y2:a,width:d,height:l,pointX:c,pointY:h,centerX:u,centerY:f,rotation:x}=t,y={x:u,y:f},p=o.start,b=v(d,p),g=v(l,p),m=[n,n+b,n+b,s],w=[i+g,a,i,a],M=[];for(let t=0;t<4;t++){const o=r({x:m[t],y:w[t]},y,e.toRadians(x));M.push({position:H[t],distance:e.distanceBetweenPoints(o,{x:c,y:h})})}return M.sort(((t,e)=>t.distance-e.distance))[0].position}(t,o)}(o,a);if(!d||function(t,e,o){const{pointX:n,pointY:i}=t,r=e.margin;let s=n,a=i;"left"===o?s+=r:"right"===o?s-=r:"top"===o?a+=r:"bottom"===o&&(a-=r);return t.inRange(s,a)}(o,a,d))return;t.save(),t.beginPath();if(!X(t,a))return t.restore();const{separatorStart:l,separatorEnd:c}=function(t,e){const{x:o,y:n,x2:i,y2:r}=t,s=function(t,e){const{width:o,height:n,options:i}=t,r=i.callout.margin+i.borderWidth/2;if("right"===e)return o+r;if("bottom"===e)return n+r;return-r}(t,e);let a,d;"left"===e||"right"===e?(a={x:o+s,y:n},d={x:a.x,y:r}):(a={x:o,y:n+s},d={x:i,y:a.y});return{separatorStart:a,separatorEnd:d}}(o,d),{sideStart:h,sideEnd:u}=function(t,e,o){const{y:n,width:i,height:r,options:s}=t,a=s.callout.start,d=function(t,e){const o=e.side;if("left"===t||"top"===t)return-o;return o}(e,s.callout);let l,c;"left"===e||"right"===e?(l={x:o.x,y:n+v(r,a)},c={x:l.x+d,y:l.y}):(l={x:o.x+v(i,a),y:o.y},c={x:l.x,y:l.y+d});return{sideStart:l,sideEnd:c}}(o,d,l);(a.margin>0||0===s.borderWidth)&&(t.moveTo(l.x,l.y),t.lineTo(c.x,c.y)),t.moveTo(h.x,h.y),t.lineTo(u.x,u.y);const f=r({x:n,y:i},o.getCenterPoint(),e.toRadians(-o.rotation));t.lineTo(f.x,f.y),t.stroke(),t.restore()}const L={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function V(t,o,n){return o="number"==typeof o?o:t.parse(o),e.isFinite(o)?t.getPixelForValue(o):n}function B(t,e,o){const n=e[o];if(n||"scaleID"===o)return n;const i=o.charAt(0),r=Object.values(t).filter((t=>t.axis&&t.axis===i));return r.length?r[0].id:i}function $(t,e){if(t){const o=t.options.reverse;return{start:V(t,e.min,o?e.end:e.start),end:V(t,e.max,o?e.start:e.end)}}}function U(t,e){const{chartArea:o,scales:n}=t,i=n[B(n,e,"xScaleID")],r=n[B(n,e,"yScaleID")];let s=o.width/2,a=o.height/2;return i&&(s=V(i,e.xValue,i.left+i.width/2)),r&&(a=V(r,e.yValue,r.top+r.height/2)),{x:s,y:a}}function J(t,e){const o=t.scales,n=o[B(o,e,"xScaleID")],i=o[B(o,e,"yScaleID")];if(!n&&!i)return{};let{left:r,right:s}=n||t.chartArea,{top:a,bottom:d}=i||t.chartArea;const l=K(n,{min:e.xMin,max:e.xMax,start:r,end:s});r=l.start,s=l.end;const c=K(i,{min:e.yMin,max:e.yMax,start:d,end:a});return a=c.start,d=c.end,{x:r,y:a,x2:s,y2:d,width:s-r,height:d-a,centerX:r+(s-r)/2,centerY:a+(d-a)/2}}function q(t,e){if(!C(e)){const o=J(t,e);let n=e.radius;n&&!isNaN(n)||(n=Math.min(o.width,o.height)/2,e.radius=n);const i=2*n,r=o.centerX+e.xAdjust,s=o.centerY+e.yAdjust;return{x:r-n,y:s-n,x2:r+n,y2:s+n,centerX:r,centerY:s,width:i,height:i,radius:n}}return function(t,e){const o=U(t,e),n=2*e.radius;return{x:o.x-e.radius+e.xAdjust,y:o.y-e.radius+e.yAdjust,x2:o.x+e.radius+e.xAdjust,y2:o.y+e.radius+e.yAdjust,centerX:o.x+e.xAdjust,centerY:o.y+e.yAdjust,radius:e.radius,width:n,height:n}}(t,e)}function Q(t,e){const{scales:o,chartArea:n}=t,i=o[e.scaleID],r={x:n.left,y:n.top,x2:n.right,y2:n.bottom};return i?function(t,e,o){const n=V(t,o.value,NaN),i=V(t,o.endValue,n);t.isHorizontal()?(e.x=n,e.x2=i):(e.y=n,e.y2=i)}(i,r,e):function(t,e,o){for(const n of Object.keys(L)){const i=t[B(t,o,n)];if(i){const{min:t,max:r,start:s,end:a,startProp:d,endProp:l}=L[n],c=$(i,{min:o[t],max:o[r],start:i[s],end:i[a]});e[d]=c.start,e[l]=c.end}}}(o,r,e),r}function G(t,e){const o=J(t,e);return o.initProperties=A(t,o,e),o.elements=[{type:"label",optionScope:"label",properties:tt(t,o,e),initProperties:o.initProperties}],o}function K(t,e){const o=$(t,e)||e;return{start:Math.min(o.start,o.end),end:Math.max(o.start,o.end)}}function Z(t,e){const{start:o,end:n,borderWidth:i}=t,{position:r,padding:{start:s,end:a},adjust:d}=e;return o+i/2+d+m(n-i-o-s-a-e.size,r)}function tt(t,o,n){const i=n.label;i.backgroundColor="transparent",i.callout.display=!1;const r=M(i.position),s=e.toPadding(i.padding),a=E(t.ctx,i),d=function({properties:t,options:e},o,n,i){const{x:r,x2:s,width:a}=t;return Z({start:r,end:s,size:a,borderWidth:e.borderWidth},{position:n.x,padding:{start:i.left,end:i.right},adjust:e.label.xAdjust,size:o.width})}({properties:o,options:n},a,r,s),l=function({properties:t,options:e},o,n,i){const{y:r,y2:s,height:a}=t;return Z({start:r,end:s,size:a,borderWidth:e.borderWidth},{position:n.y,padding:{start:i.top,end:i.bottom},adjust:e.label.yAdjust,size:o.height})}({properties:o,options:n},a,r,s),c=a.width+s.width,h=a.height+s.height;return{x:d,y:l,x2:d+c,y2:l+h,width:c,height:h,centerX:d+c/2,centerY:l+h/2,rotation:i.rotation}}const et=["enter","leave"],ot=et.concat("click");function nt(t,e,o){if(t.listened)switch(e.type){case"mousemove":case"mouseout":return function(t,e,o){if(!t.moveListened)return;let i;i="mousemove"===e.type?n(t.visibleElements,e,o.interaction):[];const r=t.hovered;t.hovered=i;const s={state:t,event:e};let a=it(s,"leave",r,i);return it(s,"enter",i,r)||a}(t,e,o);case"click":return function(t,e,o){const i=t.listeners,r=n(t.visibleElements,e,o.interaction);let s;for(const t of r)s=rt(t.options.click||i.click,t,e)||s;return s}(t,e,o)}}function it({state:t,event:e},o,n,i){let r;for(const s of n)i.indexOf(s)<0&&(r=rt(s.options[o]||t.listeners[o],s,e)||r);return r}function rt(t,o,n){return!0===e.callback(t,[o.$context,n])}const st=["afterDraw","beforeDraw"];function at(t,o,n){if(t.hooked){const i=o.options[n]||t.hooks[n];return e.callback(i,[o.$context])}}function dt(t,o,n){const i=function(t,o,n){const i=o.axis,r=o.id,s=i+"ScaleID",a={min:e.valueOrDefault(o.min,Number.NEGATIVE_INFINITY),max:e.valueOrDefault(o.max,Number.POSITIVE_INFINITY)};for(const e of n)e.scaleID===r?ut(e,o,["value","endValue"],a):B(t,e,s)===r&&ut(e,o,[i+"Min",i+"Max",i+"Value"],a);return a}(t.scales,o,n);let r=lt(o,i,"min","suggestedMin");r=lt(o,i,"max","suggestedMax")||r,r&&e.isFunction(o.handleTickRangeOptions)&&o.handleTickRangeOptions()}function lt(t,o,n,i){if(e.isFinite(o[n])&&!function(t,o,n){return e.defined(t[o])||e.defined(t[n])}(t.options,n,i)){const e=t[n]!==o[n];return t[n]=o[n],e}}function ct(t,e){for(const o of["scaleID","xScaleID","yScaleID"]){const n=B(e,t,o);n&&!e[n]&&ht(t,o)&&console.warn(`No scale found with id '${n}' for annotation '${t.id}'`)}}function ht(t,o){if("scaleID"===o)return!0;const n=o.charAt(0);for(const o of["Min","Max","Value"])if(e.defined(t[n+o]))return!0;return!1}function ut(t,o,n,i){for(const r of n){const n=t[r];if(e.defined(n)){const t=o.parse(n);i.min=Math.min(i.min,t),i.max=Math.max(i.max,t)}}}class ft extends t.Element{inRange(t,o,n,i){const{x:s,y:a}=r({x:t,y:o},this.getCenterPoint(i),e.toRadians(-this.options.rotation));return h({x:s,y:a},this.getProps(["x","y","x2","y2"],i),n,this.options)}getCenterPoint(t){return f(this,t)}draw(t){t.save(),Y(t,this.getCenterPoint(),this.options.rotation),W(t,this,this.options),t.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(t,e){return G(t,e)}}ft.id="boxAnnotation",ft.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,hitTolerance:0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,hitTolerance:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0},ft.defaultRoutes={borderColor:"color",backgroundColor:"color"},ft.descriptors={label:{_fallback:!0}};class xt extends t.Element{inRange(t,e,o,n){return u({x:t,y:e},{rect:this.getProps(["x","y","x2","y2"],n),center:this.getCenterPoint(n)},o,{rotation:this.rotation,borderWidth:0,hitTolerance:this.options.hitTolerance})}getCenterPoint(t){return f(this,t)}draw(t){const e=this.options;e.display&&e.content&&(!function(t,e){const{_centerX:o,_centerY:n,_radius:i,_startAngle:r,_endAngle:s,_counterclockwise:a,options:d}=e;t.save();const l=X(t,d);t.fillStyle=d.backgroundColor,t.beginPath(),t.arc(o,n,i,r,s,a),t.closePath(),t.fill(),l&&t.stroke();t.restore()}(t,this),t.save(),Y(t,this.getCenterPoint(),this.rotation),z(t,this,e,this._fitRatio),t.restore())}resolveElementProperties(o,n){const i=function(e,o){return e.getSortedVisibleDatasetMetas().reduce((function(n,i){const r=i.controller;return r instanceof t.DoughnutController&&function(t,e,o){if(!e.autoHide)return!0;for(let e=0;e=90?i:n}),void 0)}(o,n);if(!i)return{};const{controllerMeta:r,point:s,radius:a}=function({chartArea:t},o,n){const{left:i,top:r,right:s,bottom:a}=t,{innerRadius:d,offsetX:l,offsetY:c}=n.controller,h=(i+s)/2+l,u=(r+a)/2+c,f={left:Math.max(h-d,i),right:Math.min(h+d,s),top:Math.max(u-d,r),bottom:Math.min(u+d,a)},x={x:(f.left+f.right)/2,y:(f.top+f.bottom)/2},y=o.spacing+o.borderWidth/2,p=d-y,b=x.y>u,g=function(t,o,n,i){const r=Math.pow(n-t,2),s=Math.pow(i,2),a=-2*o,d=Math.pow(o,2)+r-s,l=Math.pow(a,2)-4*d;if(l<=0)return{_startAngle:0,_endAngle:e.TAU};const c=(-a-Math.sqrt(l))/2,h=(-a+Math.sqrt(l))/2;return{_startAngle:e.getAngleFromPoint({x:o,y:n},{x:c,y:t}).angle,_endAngle:e.getAngleFromPoint({x:o,y:n},{x:h,y:t}).angle}}(b?r+y:a-y,h,u,p),m={_centerX:h,_centerY:u,_radius:p,_counterclockwise:b,...g};return{controllerMeta:m,point:x,radius:Math.min(d,Math.min(f.right-f.left,f.bottom-f.top)/2)}}(o,n,i);let d=E(o.ctx,n);const l=function({width:t,height:e},o){const n=Math.sqrt(Math.pow(t,2)+Math.pow(e,2));return 2*o/n}(d,a);P(n,l)&&(d={width:d.width*l,height:d.height*l});const{position:c,xAdjust:h,yAdjust:u}=n,f=w(s,d,{borderWidth:0,position:c,xAdjust:h,yAdjust:u});return{initProperties:A(o,f,n),...f,...r,rotation:n.rotation,_fitRatio:l}}}xt.id="doughnutLabelAnnotation",xt.defaults={autoFit:!0,autoHide:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderColor:"transparent",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:0,color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,hitTolerance:0,init:void 0,opacity:void 0,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,spacing:1,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0},xt.defaultRoutes={};class yt extends t.Element{inRange(t,e,o,n){return u({x:t,y:e},{rect:this.getProps(["x","y","x2","y2"],n),center:this.getCenterPoint(n)},o,{rotation:this.rotation,borderWidth:this.options.borderWidth,hitTolerance:this.options.hitTolerance})}getCenterPoint(t){return f(this,t)}draw(t){const o=this.options,n=!e.defined(this._visible)||this._visible;o.display&&o.content&&n&&(t.save(),Y(t,this.getCenterPoint(),this.rotation),N(t,this),W(t,this,o),z(t,function({x:t,y:o,width:n,height:i,options:r}){const s=r.borderWidth/2,a=e.toPadding(r.padding);return{x:t+a.left+s,y:o+a.top+s,width:n-a.left-a.right-r.borderWidth,height:i-a.top-a.bottom-r.borderWidth}}(this),o),t.restore())}resolveElementProperties(t,o){let n;if(C(o))n=U(t,o);else{const{centerX:e,centerY:i}=J(t,o);n={x:e,y:i}}const i=e.toPadding(o.padding),r=w(n,E(t.ctx,o),o,i);return{initProperties:A(t,r,o),pointX:n.x,pointY:n.y,...r,rotation:o.rotation}}}yt.id="labelAnnotation",yt.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,hitTolerance:0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0},yt.defaultRoutes={borderColor:"color"};const pt=(t,e,o)=>({x:t.x+o*(e.x-t.x),y:t.y+o*(e.y-t.y)}),bt=(t,e,o)=>pt(e,o,Math.abs((t-e.y)/(o.y-e.y))).x,gt=(t,e,o)=>pt(e,o,Math.abs((t-e.x)/(o.x-e.x))).y,mt=t=>t*t,vt=(t,e,{x:o,y:n,x2:i,y2:r},s)=>"y"===s?{start:Math.min(n,r),end:Math.max(n,r),value:e}:{start:Math.min(o,i),end:Math.max(o,i),value:t},wt=(t,e,o,n)=>(1-n)*(1-n)*t+2*(1-n)*n*e+n*n*o,Mt=(t,e,o,n)=>({x:wt(t.x,e.x,o.x,n),y:wt(t.y,e.y,o.y,n)}),Pt=(t,e,o,n)=>2*(1-n)*(e-t)+2*n*(o-e),St=(t,o,n,i)=>-Math.atan2(Pt(t.x,o.x,n.x,i),Pt(t.y,o.y,n.y,i))+.5*e.PI;class Ct extends t.Element{inRange(t,e,o,n){const i=(this.options.borderWidth+this.options.hitTolerance)/2;if("x"!==o&&"y"!==o){const o={mouseX:t,mouseY:e},{path:r,ctx:s}=this;if(r){X(s,this.options),s.lineWidth+=this.options.hitTolerance;const{chart:i}=this.$context,a=t*i.currentDevicePixelRatio,d=e*i.currentDevicePixelRatio,l=s.isPointInStroke(r,a,d)||Tt(this,o,n);return s.restore(),l}return function(t,{mouseX:e,mouseY:o},n=a,i){const{x:r,y:s,x2:d,y2:l}=t.getProps(["x","y","x2","y2"],i),c=d-r,h=l-s,u=mt(c)+mt(h),f=0===u?-1:((e-r)*c+(o-s)*h)/u;let x,y;f<0?(x=r,y=s):f>1?(x=d,y=l):(x=r+f*c,y=s+f*h);return mt(e-x)+mt(o-y)<=n}(this,o,mt(i),n)||Tt(this,o,n)}return function(t,{mouseX:e,mouseY:o},n,{hitSize:i,useFinalPosition:r}){const s=vt(e,o,t.getProps(["x","y","x2","y2"],r),n);return l(s,i)||Tt(t,{mouseX:e,mouseY:o},r,n)}(this,{mouseX:t,mouseY:e},o,{hitSize:i,useFinalPosition:n})}getCenterPoint(t){return f(this,t)}draw(t){const{x:o,y:n,x2:i,y2:r,cp:s,options:a}=this;if(t.save(),!X(t,a))return t.restore();_(t,a);const d=Math.sqrt(Math.pow(i-o,2)+Math.pow(r-n,2));if(a.curve&&s)return function(t,o,n,i){const{x:r,y:s,x2:a,y2:d,options:l}=o,{startOpts:c,endOpts:h,startAdjust:u,endAdjust:f}=Ot(o),x={x:r,y:s},y={x:a,y:d},p=St(x,n,y,0),b=St(x,n,y,1)-e.PI,g=Mt(x,n,y,u/i),m=Mt(x,n,y,1-f/i),v=new Path2D;t.beginPath(),v.moveTo(g.x,g.y),v.quadraticCurveTo(n.x,n.y,m.x,m.y),t.shadowColor=l.borderShadowColor,t.stroke(v),o.path=v,o.ctx=t,Yt(t,g,{angle:p,adjust:u},c),Yt(t,m,{angle:b,adjust:f},h)}(t,this,s,d),t.restore();const{startOpts:l,endOpts:c,startAdjust:h,endAdjust:u}=Ot(this),f=Math.atan2(r-n,i-o);t.translate(o,n),t.rotate(f),t.beginPath(),t.moveTo(0+h,0),t.lineTo(d-u,0),t.shadowColor=a.borderShadowColor,t.stroke(),It(t,0,h,l),It(t,d,-u,c),t.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(t,o){const n=Q(t,o),{x:i,y:s,x2:a,y2:d}=n,l=function({x:t,y:e,x2:o,y2:n},{top:i,right:r,bottom:s,left:a}){return!(tr&&o>r||es&&n>s)}(n,t.chartArea),c=l?function(t,e,o){const{x:n,y:i}=At(t,e,o),{x:r,y:s}=At(e,t,o);return{x:n,y:i,x2:r,y2:s,width:Math.abs(r-n),height:Math.abs(s-i)}}({x:i,y:s},{x:a,y:d},t.chartArea):{x:i,y:s,x2:a,y2:d,width:Math.abs(a-i),height:Math.abs(d-s)};if(c.centerX=(a+i)/2,c.centerY=(d+s)/2,c.initProperties=A(t,c,o),o.curve){const t={x:c.x,y:c.y},n={x:c.x2,y:c.y2};c.cp=function(t,e,o){const{x:n,y:i,x2:s,y2:a,centerX:d,centerY:l}=t,c=Math.atan2(a-i,s-n),h=M(e.controlPoint,0);return r({x:d+v(o,h.x,!1),y:l+v(o,h.y,!1)},{x:d,y:l},c)}(c,o,e.distanceBetweenPoints(t,n))}const h=function(t,o,n){const i=n.borderWidth,r=e.toPadding(n.padding),s=E(t.ctx,n),a=s.width+r.width+i,d=s.height+r.height+i;return function(t,o,n,i){const{width:r,height:s,padding:a}=n,{xAdjust:d,yAdjust:l}=o,c={x:t.x,y:t.y},h={x:t.x2,y:t.y2},u="auto"===o.rotation?function(t){const{x:o,y:n,x2:i,y2:r}=t,s=Math.atan2(r-n,i-o);return s>e.PI/2?s-e.PI:si&&(e=gt(i,{x:t,y:e},o),t=i),er&&(t=bt(r,{x:t,y:e},o),e=r),{x:t,y:e}}function Tt(t,{mouseX:e,mouseY:o},n,i){const r=t.label;return r.options.display&&r.inRange(e,o,i,n)}function Dt(t,e,o,n){const{labelSize:i,padding:r}=e,s=t.w*n.dx,a=t.h*n.dy,l=s>0&&(i.w/2+r.left-n.x)/s,c=a>0&&(i.h/2+r.top-n.y)/a;return d(Math.max(l,c),0,.25)}function jt(t,e){const{size:o,min:n,max:i,padding:r}=e,s=o/2;return o>i-n?(i+n)/2:(n>=t-r-s&&(t=n+r+s),i<=t+r+s&&(t=i-r-s),t)}function Ot(t){const e=t.options,o=e.arrowHeads&&e.arrowHeads.start,n=e.arrowHeads&&e.arrowHeads.end;return{startOpts:o,endOpts:n,startAdjust:Rt(t,o),endAdjust:Rt(t,n)}}function Rt(t,e){if(!e||!e.display)return 0;const{length:o,width:n}=e,i=t.options.borderWidth/2,r={x:o,y:n+i},s={x:0,y:i};return Math.abs(bt(0,r,s))}function It(t,e,o,n){if(!n||!n.display)return;const{length:i,width:r,fill:s,backgroundColor:a,borderColor:d}=n,l=Math.abs(e-i)+o;t.beginPath(),_(t,n),X(t,n),t.moveTo(l,-r),t.lineTo(e+o,0),t.lineTo(l,r),!0===s?(t.fillStyle=a||d,t.closePath(),t.fill(),t.shadowColor="transparent"):t.shadowColor=n.borderShadowColor,t.stroke()}function Yt(t,{x:e,y:o},{angle:n,adjust:i},r){r&&r.display&&(t.save(),t.translate(e,o),t.rotate(n),It(t,0,-i,r),t.restore())}Ct.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},kt),fill:!1,length:12,start:Object.assign({},kt),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,hitTolerance:0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},yt.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,hitTolerance:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0},Ct.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}},Ct.defaultRoutes={borderColor:"color"};class Xt extends t.Element{inRange(t,o,n,i){const s=this.options.rotation,d=(this.options.borderWidth+this.options.hitTolerance)/2;if("x"!==n&&"y"!==n)return function(t,o,n,i){const{width:r,height:s,centerX:a,centerY:d}=o,l=r/2,c=s/2;if(l<=0||c<=0)return!1;const h=e.toRadians(n||0),u=Math.cos(h),f=Math.sin(h),x=Math.pow(u*(t.x-a)+f*(t.y-d),2),y=Math.pow(f*(t.x-a)-u*(t.y-d),2);return x/Math.pow(l+i,2)+y/Math.pow(c+i,2)<=1.0001}({x:t,y:o},this.getProps(["width","height","centerX","centerY"],i),s,d);const{x:l,y:c,x2:h,y2:u}=this.getProps(["x","y","x2","y2"],i),f="y"===n?{start:c,end:u}:{start:l,end:h},x=r({x:t,y:o},this.getCenterPoint(i),e.toRadians(-s));return x[n]>=f.start-d-a&&x[n]<=f.end+d+a}getCenterPoint(t){return f(this,t)}draw(t){const{width:o,height:n,centerX:i,centerY:r,options:s}=this;t.save(),Y(t,this.getCenterPoint(),s.rotation),_(t,this.options),t.beginPath(),t.fillStyle=s.backgroundColor;const a=X(t,s);t.ellipse(i,r,n/2,o/2,e.PI/2,0,2*e.PI),t.fill(),a&&(t.shadowColor=s.borderShadowColor,t.stroke()),t.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(t,e){return G(t,e)}}Xt.id="ellipseAnnotation",Xt.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,hitTolerance:0,init:void 0,label:Object.assign({},ft.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0},Xt.defaultRoutes={borderColor:"color",backgroundColor:"color"},Xt.descriptors={label:{_fallback:!0}};class _t extends t.Element{inRange(t,e,o,n){const{x:i,y:r,x2:s,y2:a,width:d}=this.getProps(["x","y","x2","y2","width"],n),c=(this.options.borderWidth+this.options.hitTolerance)/2;if("x"!==o&&"y"!==o)return function(t,e,o,n){return!(!t||!e||o<=0)&&Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)<=Math.pow(o+n,2)}({x:t,y:e},this.getCenterPoint(n),d/2,c);return l("y"===o?{start:r,end:a,value:e}:{start:i,end:s,value:t},c)}getCenterPoint(t){return f(this,t)}draw(t){const e=this.options,o=e.borderWidth;if(e.radius<.1)return;t.save(),t.fillStyle=e.backgroundColor,_(t,e);const n=X(t,e);F(t,this,this.centerX,this.centerY),n&&!I(e.pointStyle)&&(t.shadowColor=e.borderShadowColor,t.stroke()),t.restore(),e.borderWidth=o}resolveElementProperties(t,e){const o=q(t,e);return o.initProperties=A(t,o,e),o}}_t.id="pointAnnotation",_t.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,hitTolerance:0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0},_t.defaultRoutes={borderColor:"color",backgroundColor:"color"};class Et extends t.Element{inRange(t,o,n,i){if("x"!==n&&"y"!==n)return this.options.radius>=.1&&this.elements.length>1&&function(t,e,o,n){let i=!1,r=t[t.length-1].getProps(["bX","bY"],n);for(const s of t){const t=s.getProps(["bX","bY"],n);t.bY>o!=r.bY>o&&e<(r.bX-t.bX)*(o-t.bY)/(r.bY-t.bY)+t.bX&&(i=!i),r=t}return i}(this.elements,t,o,i);const s=r({x:t,y:o},this.getCenterPoint(i),e.toRadians(-this.options.rotation)),a=this.elements.map((t=>"y"===n?t.bY:t.bX)),d=Math.min(...a),l=Math.max(...a);return s[n]>=d&&s[n]<=l}getCenterPoint(t){return f(this,t)}draw(t){const{elements:e,options:o}=this;t.save(),t.beginPath(),t.fillStyle=o.backgroundColor,_(t,o);const n=X(t,o);let i=!0;for(const o of e)i?(t.moveTo(o.x,o.y),i=!1):t.lineTo(o.x,o.y);t.closePath(),t.fill(),n&&(t.shadowColor=o.borderShadowColor,t.stroke()),t.restore()}resolveElementProperties(t,o){const n=q(t,o),{sides:i,rotation:r}=o,s=[],a=2*e.PI/i;let d=r*e.RAD_PER_DEG;for(let e=0;e{t.defaults.describe(`elements.${zt[e].id}`,{_fallback:"plugins.annotation.common"})}));const Ft={update:Object.assign},Ht=ot.concat(st),Nt=(t,o)=>e.isObject(o)?Qt(t,o):t,Lt=t=>"color"===t||"font"===t;function Vt(t="line"){return zt[t]?t:(console.warn(`Unknown annotation type: '${t}', defaulting to 'line'`),"line")}function Bt(o,n,i,r){const s=function(e,o,n){if("reset"===n||"none"===n||"resize"===n)return Ft;return new t.Animations(e,o)}(o,i.animations,r),a=n.annotations,d=function(t,e){const o=e.length,n=t.length;if(no&&t.splice(o,n-o);return t}(n.elements,a);for(let t=0;tNt(t,r))):n[i]=Nt(s,r)}return n}function Gt(t,e,o,n){return e.$context||(e.$context=Object.assign(Object.create(t.getContext()),{element:e,get elements(){return o.filter((t=>t&&t.options))},id:n.id,type:"annotation"}))}const Kt=new Map,Zt=t=>"doughnutLabel"!==t.type,te=ot.concat(st);var ee={id:"annotation",version:"3.1.0",beforeRegister(){!function(t,e,o,n=!0){const i=o.split(".");let r=0;for(const a of e.split(".")){const d=i[r++];if(parseInt(a,10){const o=r[t];e.isObject(o)&&(o.id=t,i.push(o))})):e.isArray(r)&&i.push(...r),function(t,e){for(const o of t)ct(o,e)}(i.filter(Zt),t.scales)},afterDataLimits(t,e){const o=Kt.get(t);dt(t,e.scale,o.annotations.filter(Zt).filter((t=>t.display&&t.adjustScaleRange)))},afterUpdate(t,o,n){const i=Kt.get(t);!function(t,o,n){o.listened=T(n,ot,o.listeners),o.moveListened=!1,et.forEach((t=>{e.isFunction(n[t])&&(o.moveListened=!0)})),o.listened&&o.moveListened||o.annotations.forEach((t=>{!o.listened&&e.isFunction(t.click)&&(o.listened=!0),o.moveListened||et.forEach((n=>{e.isFunction(t[n])&&(o.listened=!0,o.moveListened=!0)}))}))}(0,i,n),Bt(t,i,n,o.mode),i.visibleElements=i.elements.filter((t=>!t.skip&&t.options.display)),function(t,o,n){const i=o.visibleElements;o.hooked=T(n,st,o.hooks),o.hooked||i.forEach((t=>{o.hooked||st.forEach((n=>{e.isFunction(t.options[n])&&(o.hooked=!0)}))}))}(0,i,n)},beforeDatasetsDraw(t,e,o){oe(t,"beforeDatasetsDraw",o.clip)},afterDatasetsDraw(t,e,o){oe(t,"afterDatasetsDraw",o.clip)},beforeDatasetDraw(t,e,o){oe(t,e.index,o.clip)},beforeDraw(t,e,o){oe(t,"beforeDraw",o.clip)},afterDraw(t,e,o){oe(t,"afterDraw",o.clip)},beforeEvent(t,e,o){nt(Kt.get(t),e.event,o)&&(e.changed=!0)},afterDestroy(t){Kt.delete(t)},getAnnotations(t){const e=Kt.get(t);return e?e.elements:[]},_getAnnotationElementsAtEventForMode:(t,e,o)=>n(t,e,o),defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"},colors:{properties:["backgroundColor","borderColor"],type:"color"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:t=>!te.includes(t)&&"init"!==t,annotations:{_allKeys:!1,_fallback:(t,e)=>`elements.${zt[Vt(e.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:Lt,_fallback:!0},_indexable:Lt}},additionalOptionScopes:[""]};function oe(t,o,n){const{ctx:i,chartArea:r}=t,s=Kt.get(t);n&&e.clipArea(i,r);const a=function(t,e){const o=[];for(const n of t)if(n.options.drawTime===e&&o.push({element:n,main:!0}),n.elements&&n.elements.length)for(const t of n.elements)t.options.display&&t.options.drawTime===e&&o.push({element:t});return o}(s.visibleElements,o).sort(((t,e)=>t.element.options.z-e.element.options.z));for(const t of a)ne(i,r,s,t);n&&e.unclipArea(i)}function ne(t,e,o,n){const i=n.element;n.main?(at(o,i,"beforeDraw"),i.draw(t,e),at(o,i,"afterDraw")):i.draw(t,e)}return t.Chart.register(ee),ee})); \ No newline at end of file diff --git a/js/chartjs-plugin-zoom.min.js b/js/chartjs-plugin-zoom.min.js new file mode 100644 index 0000000..0c7b6b4 --- /dev/null +++ b/js/chartjs-plugin-zoom.min.js @@ -0,0 +1,7 @@ +/*! +* chartjs-plugin-zoom v2.2.0 +* https://www.chartjs.org/chartjs-plugin-zoom/2.2.0/ + * (c) 2016-2024 chartjs-plugin-zoom Contributors + * Released under the MIT License + */ +!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("chart.js"),require("hammerjs"),require("chart.js/helpers")):"function"==typeof define&&define.amd?define(["chart.js","hammerjs","chart.js/helpers"],n):(t="undefined"!=typeof globalThis?globalThis:t||self).ChartZoom=n(t.Chart,t.Hammer,t.Chart.helpers)}(this,(function(t,n,e){"use strict";const o=t=>t&&t.enabled&&t.modifierKey,a=(t,n)=>t&&n[t+"Key"],i=(t,n)=>t&&!n[t+"Key"];function r(t,n,e){return void 0===t||("string"==typeof t?-1!==t.indexOf(n):"function"==typeof t&&-1!==t({chart:e}).indexOf(n))}function c(t,n){return"function"==typeof t&&(t=t({chart:n})),"string"==typeof t?{x:-1!==t.indexOf("x"),y:-1!==t.indexOf("y")}:{x:!1,y:!1}}function s(t,n,o){const{mode:a="xy",scaleMode:i,overScaleMode:r}=t||{},s=function({x:t,y:n},e){const o=e.scales,a=Object.keys(o);for(let e=0;e=i.top&&n<=i.bottom&&t>=i.left&&t<=i.right)return i}return null}(n,o),l=c(a,o),m=c(i,o);if(r){const t=c(r,o);for(const n of["x","y"])t[n]&&(m[n]=l[n],l[n]=!1)}if(s&&m[s.axis])return[s];const u=[];return e.each(o.scales,(function(t){l[t.axis]&&u.push(t)})),u}const l=new WeakMap;function m(t){let n=l.get(t);return n||(n={originalScaleLimits:{},updatedScaleLimits:{},handlers:{},panDelta:{},dragging:!1,panning:!1},l.set(t,n)),n}function u(t,n,e,o){const a=Math.max(0,Math.min(1,(t-n)/e||0));return{min:o*a,max:o*(1-a)}}function d(t,n){const e=t.isHorizontal()?n.x:n.y;return t.getValueForPixel(e)}function f(t,n,e){const o=t.max-t.min,a=o*(n-1);return u(d(t,e),t.min,o,a)}function p(t,n,o,a,i){let r=o[a];if("original"===r){const o=t.originalScaleLimits[n.id][a];r=e.valueOrDefault(o.options,o.scale)}return e.valueOrDefault(r,i)}function h(t,{min:n,max:o},a,i=!1){const r=m(t.chart),{options:c}=t,s=function(t,n){return n&&(n[t.id]||n[t.axis])||{}}(t,a),{minRange:l=0}=s,u=p(r,t,s,"min",-1/0),d=p(r,t,s,"max",1/0);if("pan"===i&&(nd))return!0;const f=t.max-t.min,h=i?Math.max(o-n,l):f;if(i&&h===l&&f<=l)return!0;const g=function(t,{min:n,max:o,minLimit:a,maxLimit:i},r){const c=(t-o+n)/2;n-=c,o+=c;const s=r.min.options??r.min.scale,l=r.max.options??r.max.scale,m=t/1e6;return e.almostEquals(n,s,m)&&(n=s),e.almostEquals(o,l,m)&&(o=l),ni&&(o=i,n=Math.max(i-t,a)),{min:n,max:o}}(h,{min:n,max:o,minLimit:u,maxLimit:d},r.originalScaleLimits[t.id]);return c.min=g.min,c.max=g.max,r.updatedScaleLimits[t.id]=g,t.parse(g.min)!==t.min||t.parse(g.max)!==t.max}const g=t=>0===t||isNaN(t)?0:t<0?Math.min(Math.round(t),-1):Math.max(Math.round(t),1);const x={second:500,minute:3e4,hour:18e5,day:432e5,week:3024e5,month:1296e6,quarter:5184e6,year:157248e5};function b(t,n,e,o=!1){const{min:a,max:i,options:r}=t,c=r.time&&r.time.round,s=x[c]||0,l=t.getValueForPixel(t.getPixelForValue(a+s)-n),m=t.getValueForPixel(t.getPixelForValue(i+s)-n);return!(!isNaN(l)&&!isNaN(m))||h(t,{min:l,max:m},e,!!o&&"pan")}function y(t,n,e){return b(t,n,e,!0)}const v={category:function(t,n,e,o){const a=f(t,n,e);return t.min===t.max&&n<1&&function(t){const n=t.getLabels().length-1;t.min>0&&(t.min-=1),t.maxc&&(a=Math.max(0,a-s),i=1===r?a:a+r,l=0===a),h(t,{min:a,max:i},e)||l},default:b,logarithmic:y,timeseries:y};function M(t,n){e.each(t,((e,o)=>{n[o]||delete t[o]}))}function k(t,n){const{scales:o}=t,{originalScaleLimits:a,updatedScaleLimits:i}=n;return e.each(o,(function(t){(function(t,n,e){const{id:o,options:{min:a,max:i}}=t;if(!n[o]||!e[o])return!0;const r=e[o];return r.min!==a||r.max!==i})(t,a,i)&&(a[t.id]={min:{scale:t.min,options:t.options.min},max:{scale:t.max,options:t.options.max}})})),M(a,o),M(i,o),a}function S(t,n,o,a){const i=v[t.type]||v.default;e.callback(i,[t,n,o,a])}function P(t,n,o,a){const i=w[t.type]||w.default;e.callback(i,[t,n,o,a])}function D(t){const n=t.chartArea;return{x:(n.left+n.right)/2,y:(n.top+n.bottom)/2}}function C(t,n,o="none",a="api"){const{x:i=1,y:r=1,focalPoint:c=D(t)}="number"==typeof n?{x:n,y:n}:n,l=m(t),{options:{limits:u,zoom:d}}=l;k(t,l);const f=1!==i,p=1!==r,h=s(d,c,t);e.each(h||t.scales,(function(t){t.isHorizontal()&&f?S(t,i,c,u):!t.isHorizontal()&&p&&S(t,r,c,u)})),t.update(o),e.callback(d.onZoom,[{chart:t,trigger:a}])}function Z(t,n,o,a="none",i="api"){const c=m(t),{options:{limits:s,zoom:l}}=c,{mode:u="xy"}=l;k(t,c);const d=r(u,"x",t),f=r(u,"y",t);e.each(t.scales,(function(t){t.isHorizontal()&&d?P(t,n.x,o.x,s):!t.isHorizontal()&&f&&P(t,n.y,o.y,s)})),t.update(a),e.callback(l.onZoom,[{chart:t,trigger:i}])}function j(t){const n=m(t);let o=1,a=1;return e.each(t.scales,(function(t){const i=function(t,n){const o=t.originalScaleLimits[n];if(!o)return;const{min:a,max:i}=o;return e.valueOrDefault(i.options,i.scale)-e.valueOrDefault(a.options,a.scale)}(n,t.id);if(i){const n=Math.round(i/(t.max-t.min)*100)/100;o=Math.min(o,n),a=Math.max(a,n)}})),o<1?o:a}function L(t,n,o,a){const{panDelta:i}=a,r=i[t.id]||0;e.sign(r)===e.sign(n)&&(n+=r);const c=z[t.type]||z.default;e.callback(c,[t,n,o])?i[t.id]=0:i[t.id]=n}function O(t,n,o,a="none"){const{x:i=0,y:r=0}="number"==typeof n?{x:n,y:n}:n,c=m(t),{options:{pan:s,limits:l}}=c,{onPan:u}=s||{};k(t,c);const d=0!==i,f=0!==r;e.each(o||t.scales,(function(t){t.isHorizontal()&&d?L(t,i,l,c):!t.isHorizontal()&&f&&L(t,r,l,c)})),t.update(a),e.callback(u,[{chart:t}])}function R(t){const n=m(t);k(t,n);const e={};for(const o of Object.keys(t.scales)){const{min:t,max:a}=n.originalScaleLimits[o]||{min:{},max:{}};e[o]={min:t.scale,max:a.scale}}return e}function E(t){const n=m(t);return n.panning||n.dragging}const F=(t,n,e)=>Math.min(e,Math.max(n,t));function N(t,n){const{handlers:e}=m(t),o=e[n];o&&o.target&&(o.target.removeEventListener(n,o),delete e[n])}function A(t,n,e,o){const{handlers:a,options:i}=m(t),r=a[e];if(r&&r.target===n)return;N(t,e),a[e]=n=>o(t,n,i),a[e].target=n;const c="wheel"!==e&&void 0;n.addEventListener(e,a[e],{passive:c})}function H(t,n){const e=m(t);e.dragStart&&(e.dragging=!0,e.dragEnd=n,t.update("none"))}function T(t,n){const e=m(t);e.dragStart&&"Escape"===n.key&&(N(t,"keydown"),e.dragging=!1,e.dragStart=e.dragEnd=null,t.update("none"))}function Y(t,n){if(t.target!==n.canvas){const e=n.canvas.getBoundingClientRect();return{x:t.clientX-e.left,y:t.clientY-e.top}}return e.getRelativePosition(t,n)}function q(t,n,o){const{onZoomStart:a,onZoomRejected:i}=o;if(a){const o=Y(n,t);if(!1===e.callback(a,[{chart:t,event:n,point:o}]))return e.callback(i,[{chart:t,event:n}]),!1}}function V(t,n){if(t.legend){const o=e.getRelativePosition(n,t);if(e._isPointInArea(o,t.legend))return}const r=m(t),{pan:c,zoom:s={}}=r.options;if(0!==n.button||a(o(c),n)||i(o(s.drag),n))return e.callback(s.onZoomRejected,[{chart:t,event:n}]);!1!==q(t,n,s)&&(r.dragStart=n,A(t,t.canvas.ownerDocument,"mousemove",H),A(t,window.document,"keydown",T))}function X(t,n,e,{min:o,max:a,prop:i}){t[o]=F(Math.min(e.begin[i],e.end[i]),n[o],n[a]),t[a]=F(Math.max(e.begin[i],e.end[i]),n[o],n[a])}function B(t,n,e){const o={begin:Y(n.dragStart,t),end:Y(n.dragEnd,t)};if(e){!function({begin:t,end:n},e){let o=n.x-t.x,a=n.y-t.y;const i=Math.abs(o/a);i>e?o=Math.sign(o)*Math.abs(a*e):i=0?2-1/(1-s):1+s;C(t,{x:l,y:l,focalPoint:{x:n.clientX-c.left,y:n.clientY-c.top}},"zoom","wheel"),e.callback(a,[{chart:t}])}function U(t,n,o,a){o&&(m(t).handlers[n]=function(t,n){let e;return function(){return clearTimeout(e),e=setTimeout(t,n),n}}((()=>e.callback(o,[{chart:t}])),a))}function _(t,n){return function(r,c){const{pan:s,zoom:l={}}=n.options;if(!s||!s.enabled)return!1;const m=c&&c.srcEvent;return!m||(!(!n.panning&&"mouse"===c.pointerType&&(i(o(s),m)||a(o(l.drag),m)))||(e.callback(s.onPanRejected,[{chart:t,event:c}]),!1))}}function G(t,n,e){if(n.scale){const{center:o,pointers:a}=e,i=1/n.scale*e.scale,c=e.target.getBoundingClientRect(),s=function(t,n){const e=Math.abs(t.clientX-n.clientX),o=Math.abs(t.clientY-n.clientY),a=e/o;let i,r;return a>.3&&a<1.7?i=r=!0:e>o?i=!0:r=!0,{x:i,y:r}}(a[0],a[1]),l=n.options.zoom.mode;C(t,{x:s.x&&r(l,"x",t)?i:1,y:s.y&&r(l,"y",t)?i:1,focalPoint:{x:o.x-c.left,y:o.y-c.top}},"zoom","pinch"),n.scale=e.scale}}function J(t,n,e){const o=n.delta;o&&(n.panning=!0,O(t,{x:e.deltaX-o.x,y:e.deltaY-o.y},n.panScales),n.delta={x:e.deltaX,y:e.deltaY})}const Q=new WeakMap;function $(t,o){const a=m(t),i=t.canvas,{pan:r,zoom:c}=o,l=new n.Manager(i);c&&c.pinch.enabled&&(l.add(new n.Pinch),l.on("pinchstart",(n=>function(t,n,o){if(n.options.zoom.pinch.enabled){const a=e.getRelativePosition(o,t);!1===e.callback(n.options.zoom.onZoomStart,[{chart:t,event:o,point:a}])?(n.scale=null,e.callback(n.options.zoom.onZoomRejected,[{chart:t,event:o}])):n.scale=1}}(t,a,n))),l.on("pinch",(n=>G(t,a,n))),l.on("pinchend",(n=>function(t,n,o){n.scale&&(G(t,n,o),n.scale=null,e.callback(n.options.zoom.onZoomComplete,[{chart:t}]))}(t,a,n)))),r&&r.enabled&&(l.add(new n.Pan({threshold:r.threshold,enable:_(t,a)})),l.on("panstart",(n=>function(t,n,o){const{enabled:a,onPanStart:i,onPanRejected:r}=n.options.pan;if(!a)return;const c=o.target.getBoundingClientRect(),l={x:o.center.x-c.left,y:o.center.y-c.top};if(!1===e.callback(i,[{chart:t,event:o,point:l}]))return e.callback(r,[{chart:t,event:o}]);n.panScales=s(n.options.pan,l,t),n.delta={x:0,y:0},J(t,n,o)}(t,a,n))),l.on("panmove",(n=>J(t,a,n))),l.on("panend",(()=>function(t,n){n.delta=null,n.panning&&(n.panning=!1,n.filterNextClick=!0,e.callback(n.options.pan.onPanComplete,[{chart:t}]))}(t,a)))),Q.set(t,l)}function tt(t){const n=Q.get(t);n&&(n.remove("pinchstart"),n.remove("pinch"),n.remove("pinchend"),n.remove("panstart"),n.remove("pan"),n.remove("panend"),n.destroy(),Q.delete(t))}function nt(t,n,e){const o=e.zoom.drag,{dragStart:a,dragEnd:i}=m(t);if(o.drawTime!==n||!i)return;const{left:r,top:c,width:s,height:l}=K(t,e.zoom.mode,{dragStart:a,dragEnd:i},o.maintainAspectRatio),u=t.ctx;u.save(),u.beginPath(),u.fillStyle=o.backgroundColor||"rgba(225,225,225,0.3)",u.fillRect(r,c,s,l),o.borderWidth>0&&(u.lineWidth=o.borderWidth,u.strokeStyle=o.borderColor||"rgba(225,225,225)",u.strokeRect(r,c,s,l)),u.restore()}var et={id:"zoom",version:"2.2.0",defaults:{pan:{enabled:!1,mode:"xy",threshold:10,modifierKey:null},zoom:{wheel:{enabled:!1,speed:.1,modifierKey:null},drag:{enabled:!1,drawTime:"beforeDatasetsDraw",modifierKey:null},pinch:{enabled:!1},mode:"xy"}},start:function(t,o,a){m(t).options=a,Object.prototype.hasOwnProperty.call(a.zoom,"enabled")&&console.warn("The option `zoom.enabled` is no longer supported. Please use `zoom.wheel.enabled`, `zoom.drag.enabled`, or `zoom.pinch.enabled`."),(Object.prototype.hasOwnProperty.call(a.zoom,"overScaleMode")||Object.prototype.hasOwnProperty.call(a.pan,"overScaleMode"))&&console.warn("The option `overScaleMode` is deprecated. Please use `scaleMode` instead (and update `mode` as desired)."),n&&$(t,a),t.pan=(n,e,o)=>O(t,n,e,o),t.zoom=(n,e)=>C(t,n,e),t.zoomRect=(n,e,o)=>Z(t,n,e,o),t.zoomScale=(n,o,a)=>function(t,n,o,a="none",i="api"){const r=m(t);k(t,r),h(t.scales[n],o,void 0,!0),t.update(a),e.callback(r.options.zoom?.onZoom,[{chart:t,trigger:i}])}(t,n,o,a),t.resetZoom=n=>function(t,n="default"){const o=m(t),a=k(t,o);e.each(t.scales,(function(t){const n=t.options;a[t.id]?(n.min=a[t.id].min.options,n.max=a[t.id].max.options):(delete n.min,delete n.max),delete o.updatedScaleLimits[t.id]})),t.update(n),e.callback(o.options.zoom.onZoomComplete,[{chart:t}])}(t,n),t.getZoomLevel=()=>j(t),t.getInitialScaleBounds=()=>R(t),t.getZoomedScaleBounds=()=>function(t){const n=m(t),e={};for(const o of Object.keys(t.scales))e[o]=n.updatedScaleLimits[o];return e}(t),t.isZoomedOrPanned=()=>function(t){const n=R(t);for(const e of Object.keys(t.scales)){const{min:o,max:a}=n[e];if(void 0!==o&&t.scales[e].min!==o)return!0;if(void 0!==a&&t.scales[e].max!==a)return!0}return!1}(t),t.isZoomingOrPanning=()=>E(t)},beforeEvent(t,{event:n}){if(E(t))return!1;if("click"===n.type||"mouseup"===n.type){const n=m(t);if(n.filterNextClick)return n.filterNextClick=!1,!1}},beforeUpdate:function(t,n,e){const o=m(t),a=o.options;o.options=e,function(t,n){const{pan:e,zoom:o}=t,{pan:a,zoom:i}=n;return o?.zoom?.pinch?.enabled!==i?.zoom?.pinch?.enabled||e?.enabled!==a?.enabled||e?.threshold!==a?.threshold}(a,e)&&(tt(t),$(t,e)),function(t,n){const e=t.canvas,{wheel:o,drag:a,onZoomComplete:i}=n.zoom;o.enabled?(A(t,e,"wheel",I),U(t,"onZoomComplete",i,250)):N(t,"wheel"),a.enabled?(A(t,e,"mousedown",V),A(t,e.ownerDocument,"mouseup",W)):(N(t,"mousedown"),N(t,"mousemove"),N(t,"mouseup"),N(t,"keydown"))}(t,e)},beforeDatasetsDraw(t,n,e){nt(t,"beforeDatasetsDraw",e)},afterDatasetsDraw(t,n,e){nt(t,"afterDatasetsDraw",e)},beforeDraw(t,n,e){nt(t,"beforeDraw",e)},afterDraw(t,n,e){nt(t,"afterDraw",e)},stop:function(t){!function(t){N(t,"mousedown"),N(t,"mousemove"),N(t,"mouseup"),N(t,"wheel"),N(t,"click"),N(t,"keydown")}(t),n&&tt(t),function(t){l.delete(t)}(t)},panFunctions:z,zoomFunctions:v,zoomRectFunctions:w};return t.Chart.register(et),et})); diff --git a/js/chartjs-scale-timestack.min.js b/js/chartjs-scale-timestack.min.js new file mode 100644 index 0000000..4999b10 --- /dev/null +++ b/js/chartjs-scale-timestack.min.js @@ -0,0 +1 @@ +var _timestack=(()=>{var Z=Object.create;var v=Object.defineProperty;var tt=Object.getOwnPropertyDescriptor;var et=Object.getOwnPropertyNames;var it=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty;var Y=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ot=(r,e)=>{for(var t in e)v(r,t,{get:e[t],enumerable:!0})},N=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of et(e))!nt.call(r,n)&&n!==t&&v(r,n,{get:()=>e[n],enumerable:!(i=tt(e,n))||i.enumerable});return r};var R=(r,e,t)=>(t=r!=null?Z(it(r)):{},N(e||!r||!r.__esModule?v(t,"default",{value:r,enumerable:!0}):t,r)),st=r=>N(v({},"__esModule",{value:!0}),r);var z=Y((lt,P)=>{P.exports=Chart});var E=Y((_t,$)=>{$.exports=luxon});var rt={};ot(rt,{DEF_TICK_GENERATORS:()=>G,DEF_TOOLTIP_FORMAT:()=>q,DaysTickGenerator:()=>D,HM:()=>h,HMS:()=>S,MD:()=>u,MDAY:()=>F,MON:()=>b,TickGenerator:()=>j,TimestackScale:()=>x,YEAR:()=>y,YM:()=>M,YMD:()=>f,YearsTickGenerator:()=>g});var K=R(z());var V=R(z()),U=R(E());var A=R(E());var C=R(E()),B=new Map,H=new Map;function w(r,e,t){let i=[{},0];for(let n of e){if(!n.isValid)throw"invalid datetime";let o=n.toLocaleString(t),s=r.measureText(o).width;s>i[1]&&(i=[n,s,o])}return i[0]}function at(r,e,t,i){let n=`${e.month}/${e.weekday}`,o=B.get(r);if(o)return o[n];let s={year:2024,month:12,day:22,hour:23,minute:59,second:59},m=C.DateTime.fromObject(s,i);function*l(I){for(let k=1;k<=12;k++)yield I.set({month:k})}let c=w(t,l(m),{month:"short"}),a=w(t,l(m),{month:"long"});function*d(I){for(let k=22;k<29;k++)yield I.set({day:k})}let p=w(t,d(c),{weekday:"short"}),T=w(t,d(c),{weekday:"long"}),O=w(t,d(c),{weekday:"narrow"}),Q=w(t,d(a),{weekday:"short"}),W=w(t,d(a),{weekday:"long"}),X=w(t,d(a),{weekday:"narrow"}),J=Object.fromEntries(Object.entries({"undefined/undefined":m,"undefined/short":p,"undefined/long":T,"undefined/narrow":O,"numeric/undefined":m,"numeric/short":p,"numeric/long":T,"numeric/narrow":O,"2-digit/undefined":m,"2-digit/short":p,"2-digit/long":T,"2-digit/narrow":O,"short/undefined":c,"short/short":p,"short/long":T,"short/narrow":O,"long/undefined":a,"long/short":Q,"long/long":W,"long/narrow":X}).map(([I,k])=>[I,k.toObject()]));return B.set(r,J),J[n]}function L(r,e,t){let i=JSON.stringify(r),n=`${t.locale||C.Settings.defaultLocale}/${e.font}`,o=`${n}/${i}`,s=H.get(o);if(s)return s;let m=at(n,r,e,t),c=C.DateTime.fromObject(m,t).toLocaleString(r),a=e.measureText(c).width;return H.set(o,a),a}var j=class{*seq(e){}constructor(e,t){this.top=e,this.bottom=t}estimate(e,t,i,n=!0){let o=this.top,s=this.bottom,m=L(o.fmt,t,i),l=o.maj_fmt?L(o.maj_fmt,t,i):0,c={nticks:e/o.size,label_width:Math.max(m,l)},a;if(s){let d=L(s.short_fmt,t,i),p=n&&s.long_fmt?L(s.long_fmt,t,i):0;a={nticks:e/s.size,label_width:Math.max(d,p)}}return{top:c,bottom:a}}format(e,t,i,n){let o=e.toLocaleString(t&&this.top.maj_fmt?this.top.maj_fmt:this.top.fmt);if(!i||!this.bottom)return o;let s=e.toLocaleString(n&&this.bottom.long_fmt?this.bottom.long_fmt:this.bottom.short_fmt);return[o,s]}create(e,t,i){let n=[];for(let{dt:o,is_major:s,with_bottom:m}of this.seq(e))if(!(o=t)break;n.push({value:o.toMillis(),major:s,label:this.format(o,s,m,i(o))})}return n}create_floating(e,t,i){let n=this.bottom,o=n?i(e)&&n.long_fmt?n.long_fmt:n.short_fmt:void 0,s=o?e.toLocaleString(o):"";return{value:e.toMillis(),label:["",t==="left"?"\u2026"+s:s+"\u2026"]}}patch_formats(e){var i,n;function t(o){for(let s of Object.entries(e)){let m=s[0],l=s[1];m==="hour12"&&o.hour&&(o.hour12=l),o[m]&&(o[m]=s[1])}}t(this.top.fmt),this.top.maj_fmt&&t(this.top.maj_fmt),(i=this.bottom)!=null&&i.short_fmt&&t(this.bottom.short_fmt),(n=this.bottom)!=null&&n.long_fmt&&t(this.bottom.long_fmt)}},_=class extends j{constructor(e,t){let{fmt:i,maj_fmt:n,align:o,maj_unit:s,...m}=e;super({fmt:i,maj_fmt:n,size:A.Duration.fromDurationLike(m).toMillis()},t&&{...t,size:A.Duration.fromObject({[t.unit]:1}).toMillis()}),this.step=m,this.bottom_unit=t==null?void 0:t.unit,this.align=o,this.maj_unit=s}*seq(e){let t=e.startOf(this.align);for(;;){let i=this.bottom_unit?t.startOf(this.bottom_unit).equals(t):!1,n=this.maj_unit?t.startOf(this.maj_unit).equals(t):!1;yield{dt:t,is_major:n,with_bottom:i},t=t.plus(this.step)}}},D=class extends j{constructor(e,t){super({...e,size:e.step*86400*1e3},t&&{...t,size:30*86400*1e3}),this.days=e.days,this.maj_days=e.maj_days??[1],this.bottom_days=t?t.days??[1]:[]}*seq(e){let t=e.startOf("month");for(;;){for(let i of this.days){let n=t.set({day:i}),o=this.maj_days.includes(i),s=this.bottom_days.includes(i);yield{dt:n,is_major:o,with_bottom:s}}t=t.plus({month:1})}}},g=class extends j{constructor(e,t){super({...t,size:e*365*86400*1e3}),this.by_years=e}*seq(e){let t=(e.year/this.by_years|0)*this.by_years,i=e.startOf("year").set({year:t});for(;;)yield{dt:i,is_major:!1,with_bottom:!1},i=i.plus({year:this.by_years})}};var S={hour:"numeric",minute:"numeric",second:"numeric"},h={hour:"numeric",minute:"numeric"},F={day:"numeric"},b={month:"short"},y={year:"numeric"},f={year:"numeric",month:"short",day:"numeric"},M={year:"numeric",month:"short"},u={month:"short",day:"numeric"},G=[new _({second:1,align:"second",maj_unit:"minute",fmt:S,maj_fmt:h},{unit:"day",short_fmt:u,long_fmt:f}),new _({second:5,align:"minute",maj_unit:"minute",fmt:S,maj_fmt:h},{unit:"day",short_fmt:u,long_fmt:f}),new _({second:10,align:"minute",maj_unit:"minute",fmt:S,maj_fmt:h},{unit:"day",short_fmt:u,long_fmt:f}),new _({second:30,align:"minute",maj_unit:"minute",fmt:S,maj_fmt:h},{unit:"day",short_fmt:u,long_fmt:f}),new _({minute:1,align:"minute",maj_unit:"hour",fmt:h},{unit:"day",short_fmt:u,long_fmt:f}),new _({minute:5,align:"hour",maj_unit:"hour",fmt:h},{unit:"day",short_fmt:u,long_fmt:f}),new _({minute:10,align:"hour",maj_unit:"hour",fmt:h},{unit:"day",short_fmt:u,long_fmt:f}),new _({minute:15,align:"hour",maj_unit:"hour",fmt:h},{unit:"day",short_fmt:u,long_fmt:f}),new _({minute:30,align:"hour",maj_unit:"hour",fmt:h},{unit:"day",short_fmt:u,long_fmt:f}),new _({hour:1,align:"hour",maj_unit:"day",fmt:h},{unit:"day",short_fmt:u,long_fmt:f}),new _({hour:3,align:"day",maj_unit:"day",fmt:h},{unit:"day",short_fmt:u,long_fmt:f}),new _({hour:6,align:"day",maj_unit:"day",fmt:h},{unit:"day",short_fmt:u,long_fmt:f}),new _({hour:12,align:"day",maj_unit:"day",fmt:h},{unit:"day",short_fmt:u,long_fmt:f}),new _({day:1,align:"day",maj_unit:"month",fmt:F},{unit:"month",short_fmt:b,long_fmt:M}),new D({days:[1,5,10,15,20,25],step:5,fmt:F},{short_fmt:b,long_fmt:M}),new D({days:[1,10,20],step:10,fmt:F},{short_fmt:b,long_fmt:M}),new D({days:[1,15],step:15,fmt:F},{short_fmt:b,long_fmt:M}),new _({month:1,align:"month",maj_unit:"year",fmt:b},{unit:"year",short_fmt:y}),new _({month:3,align:"year",maj_unit:"year",fmt:b},{unit:"year",short_fmt:y}),new _({month:6,align:"year",maj_unit:"year",fmt:b},{unit:"year",short_fmt:y}),new g(1,{fmt:y}),new g(5,{fmt:y}),new g(10,{fmt:y}),new g(25,{fmt:y}),new g(50,{fmt:y}),new g(100,{fmt:y}),new g(1e3,{fmt:y})];var q={year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},x=class extends V.Scale{constructor(e){var n,o,s,m,l;super(e);let t=(s=(o=(n=e.chart)==null?void 0:n.config.options)==null?void 0:o.scales)==null?void 0:s[e.id],i=(m=t==null?void 0:t.timestack)!=null&&m.make_tick_generators?(l=t==null?void 0:t.timestack)==null?void 0:l.make_tick_generators():G;if(this._gens=i,t!=null&&t.timestack.format_style)for(let c of i)c.patch_formats(t==null?void 0:t.timestack.format_style)}init(e){this._dt_opts=e.timestack.datetime??{},super.init(e)}determineDataLimits(){let{min:e,max:t}=this.getMinMax(!1);e=isFinite(e)?e:this._dt_now().startOf("day").toMillis(),t=isFinite(t)?t:this._dt_now().endOf("day").toMillis()+1,this.min=Math.min(e,t-1),this.max=Math.max(e+1,t)}_dt_from_ts(e){return U.DateTime.fromMillis(e,this._dt_opts)}_dt_from_object(e){return U.DateTime.fromObject(e,this._dt_opts)}_dt_now(){return U.DateTime.local(this._dt_opts)}_choose_gen(e){let t=this._gens,i=this.options.timestack.max_density,n=this.options.timestack.density,o=this.options.ticks.maxTicksLimit??1/0,s=[];for(let l of t){let{top:c,bottom:a}=l.estimate(e,this.ctx,this._dt_opts),d=Math.max(c.nticks,(a==null?void 0:a.nticks)??0),p=c.nticks*c.label_width/this.width,T=a?a.nticks*a.label_width/this.width:0,O=Math.max(p,T);O<=i&&d<=o&&s.push([l,Math.abs(O-n)])}return s.length?s.reduce((l,c)=>c[1]t:!0}_need_floating_right_tick(e){let t=this.options.timestack.right_floating_tick_thres;return t===!1?!1:e.length?(this.max-e[e.length-1].value)/(this.max-this.min)>t:!0}_build_ticks(){let{min:e,max:t}=this,i=this._choose_gen(t-e);if(!i)return console.warn("Failed to choose the tick generator"),[];let n=this._dt_from_ts(e),o=this._dt_from_ts(t),s=this._dt_now(),m=a=>!a.hasSame(s,"year"),l=i.create(n,o,m);if(!i.bottom)return l;let c=l.filter(a=>Array.isArray(a.label)&&a.label.length>1);if(this._need_floating_left_tick(c)){let a;if(a=i.create_floating(n,"left",m),c.length){let d=c[0],p=this.ctx.measureText(a.label[1]).width,T=(d.value-this.min)*this.width/(this.max-this.min);p*2>T&&(a=void 0)}a&&l.unshift(a)}if(this._need_floating_right_tick(c)){let a;if(a=i.create_floating(o,"right",m),c.length){let d=c[c.length-1],p=this.ctx.measureText(a.label[1]).width,T=(this.max-d.value)*this.width/(this.max-this.min);p*2>T&&(a=void 0)}a&&l.push(a)}return l}buildTicks(){let e;try{e=this._resolveTickFontOptions(0).string}catch{console.warn("failed to resolve the font")}this.ctx.save(),e&&(this.ctx.font=e);let t=this._build_ticks();return this.ctx.restore(),t}getLabelForValue(e){return this._dt_from_ts(e).toLocaleString(this.options.timestack.tooltip_format)}generateTickLabels(e){}getPixelForValue(e){let t=e===null?NaN:(e-this.min)/(this.max-this.min);return this.getPixelForDecimal(t)}getValueForPixel(e){let t=this.getDecimalForPixel(e);return this.min+t*(this.max-this.min)}};x.id="timestack",x.defaults={timestack:{tooltip_format:q,density:.5,max_density:.75,left_floating_tick_thres:.33,right_floating_tick_thres:!1},ticks:{source:"",maxRotation:0,autoSkip:!1}};K.Chart.register(x);return st(rt);})(); diff --git a/js/hammer.js b/js/hammer.js new file mode 100644 index 0000000..34a8c86 --- /dev/null +++ b/js/hammer.js @@ -0,0 +1,7 @@ +/*! Hammer.JS - v2.0.7 - 2016-04-22 + * http://hammerjs.github.io/ + * + * Copyright (c) 2016 Jorik Tangelder; + * Licensed under the MIT license */ +!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(j(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",f=a.console&&(a.console.warn||a.console.log);return f&&f.call(a.console,e,d),b.apply(this,arguments)}}function i(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&la(d,c)}function j(a,b){return function(){return a.apply(b,arguments)}}function k(a,b){return typeof a==oa?a.apply(b?b[0]||d:d,b):a}function l(a,b){return a===d?b:a}function m(a,b,c){g(q(b),function(b){a.addEventListener(b,c,!1)})}function n(a,b,c){g(q(b),function(b){a.removeEventListener(b,c,!1)})}function o(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function p(a,b){return a.indexOf(b)>-1}function q(a){return a.trim().split(/\s+/g)}function r(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function u(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g1&&!c.firstMultiple?c.firstMultiple=D(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=E(d);b.timeStamp=ra(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=I(h,i),b.distance=H(h,i),B(c,b),b.offsetDirection=G(b.deltaX,b.deltaY);var j=F(b.deltaTime,b.deltaX,b.deltaY);b.overallVelocityX=j.x,b.overallVelocityY=j.y,b.overallVelocity=qa(j.x)>qa(j.y)?j.x:j.y,b.scale=g?K(g.pointers,d):1,b.rotation=g?J(g.pointers,d):0,b.maxPointers=c.prevInput?b.pointers.length>c.prevInput.maxPointers?b.pointers.length:c.prevInput.maxPointers:b.pointers.length,C(c,b);var k=a.element;o(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function B(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};b.eventType!==Ea&&f.eventType!==Ga||(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function C(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ha&&(i>Da||h.velocity===d)){var j=b.deltaX-h.deltaX,k=b.deltaY-h.deltaY,l=F(i,j,k);e=l.x,f=l.y,c=qa(l.x)>qa(l.y)?l.x:l.y,g=G(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function D(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:pa(c/b),y:pa(d/b)}}function F(a,b,c){return{x:b/a||0,y:c/a||0}}function G(a,b){return a===b?Ia:qa(a)>=qa(b)?0>a?Ja:Ka:0>b?La:Ma}function H(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function I(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function J(a,b){return I(b[1],b[0],Ra)+I(a[1],a[0],Ra)}function K(a,b){return H(b[0],b[1],Ra)/H(a[0],a[1],Ra)}function L(){this.evEl=Ta,this.evWin=Ua,this.pressed=!1,x.apply(this,arguments)}function M(){this.evEl=Xa,this.evWin=Ya,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function N(){this.evTarget=$a,this.evWin=_a,this.started=!1,x.apply(this,arguments)}function O(a,b){var c=s(a.touches),d=s(a.changedTouches);return b&(Ga|Ha)&&(c=t(c.concat(d),"identifier",!0)),[c,d]}function P(){this.evTarget=bb,this.targetIds={},x.apply(this,arguments)}function Q(a,b){var c=s(a.touches),d=this.targetIds;if(b&(Ea|Fa)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=s(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return o(a.target,i)}),b===Ea)for(e=0;e-1&&d.splice(a,1)};setTimeout(e,cb)}}function U(a){for(var b=a.srcEvent.clientX,c=a.srcEvent.clientY,d=0;d=f&&db>=g)return!0}return!1}function V(a,b){this.manager=a,this.set(b)}function W(a){if(p(a,jb))return jb;var b=p(a,kb),c=p(a,lb);return b&&c?jb:b||c?b?kb:lb:p(a,ib)?ib:hb}function X(){if(!fb)return!1;var b={},c=a.CSS&&a.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(d){b[d]=c?a.CSS.supports("touch-action",d):!0}),b}function Y(a){this.options=la({},this.defaults,a||{}),this.id=v(),this.manager=null,this.options.enable=l(this.options.enable,!0),this.state=nb,this.simultaneous={},this.requireFail=[]}function Z(a){return a&sb?"cancel":a&qb?"end":a&pb?"move":a&ob?"start":""}function $(a){return a==Ma?"down":a==La?"up":a==Ja?"left":a==Ka?"right":""}function _(a,b){var c=b.manager;return c?c.get(a):a}function aa(){Y.apply(this,arguments)}function ba(){aa.apply(this,arguments),this.pX=null,this.pY=null}function ca(){aa.apply(this,arguments)}function da(){Y.apply(this,arguments),this._timer=null,this._input=null}function ea(){aa.apply(this,arguments)}function fa(){aa.apply(this,arguments)}function ga(){Y.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ha(a,b){return b=b||{},b.recognizers=l(b.recognizers,ha.defaults.preset),new ia(a,b)}function ia(a,b){this.options=la({},ha.defaults,b||{}),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=a,this.input=y(this),this.touchAction=new V(this,this.options.touchAction),ja(this,!0),g(this.options.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function ja(a,b){var c=a.element;if(c.style){var d;g(a.options.cssProps,function(e,f){d=u(c.style,f),b?(a.oldCssProps[d]=c.style[d],c.style[d]=e):c.style[d]=a.oldCssProps[d]||""}),b||(a.oldCssProps={})}}function ka(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var la,ma=["","webkit","Moz","MS","ms","o"],na=b.createElement("div"),oa="function",pa=Math.round,qa=Math.abs,ra=Date.now;la="function"!=typeof Object.assign?function(a){if(a===d||null===a)throw new TypeError("Cannot convert undefined or null to object");for(var b=Object(a),c=1;ch&&(b.push(a),h=b.length-1):e&(Ga|Ha)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Za={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},$a="touchstart",_a="touchstart touchmove touchend touchcancel";i(N,x,{handler:function(a){var b=Za[a.type];if(b===Ea&&(this.started=!0),this.started){var c=O.call(this,a,b);b&(Ga|Ha)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}}});var ab={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},bb="touchstart touchmove touchend touchcancel";i(P,x,{handler:function(a){var b=ab[a.type],c=Q.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}});var cb=2500,db=25;i(R,x,{handler:function(a,b,c){var d=c.pointerType==za,e=c.pointerType==Ba;if(!(e&&c.sourceCapabilities&&c.sourceCapabilities.firesTouchEvents)){if(d)S.call(this,b,c);else if(e&&U.call(this,c))return;this.callback(a,b,c)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var eb=u(na.style,"touchAction"),fb=eb!==d,gb="compute",hb="auto",ib="manipulation",jb="none",kb="pan-x",lb="pan-y",mb=X();V.prototype={set:function(a){a==gb&&(a=this.compute()),fb&&this.manager.element.style&&mb[a]&&(this.manager.element.style[eb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){k(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),W(a.join(" "))},preventDefaults:function(a){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=p(d,jb)&&!mb[jb],f=p(d,lb)&&!mb[lb],g=p(d,kb)&&!mb[kb];if(e){var h=1===a.pointers.length,i=a.distance<2,j=a.deltaTime<250;if(h&&i&&j)return}return g&&f?void 0:e||f&&c&Na||g&&c&Oa?this.preventSrc(b):void 0},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var nb=1,ob=2,pb=4,qb=8,rb=qb,sb=16,tb=32;Y.prototype={defaults:{},set:function(a){return la(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=_(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=_(a,this),-1===r(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=_(a,this);var b=r(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(b,a)}var c=this,d=this.state;qb>d&&b(c.options.event+Z(d)),b(c.options.event),a.additionalEvent&&b(a.additionalEvent),d>=qb&&b(c.options.event+Z(d))},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=tb)},canEmit:function(){for(var a=0;af?Ja:Ka,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ia:0>g?La:Ma,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return aa.prototype.attrTest.call(this,a)&&(this.state&ob||!(this.state&ob)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$(a.direction);b&&(a.additionalEvent=this.options.event+b),this._super.emit.call(this,a)}}),i(ca,aa,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&ob)},emit:function(a){if(1!==a.scale){var b=a.scale<1?"in":"out";a.additionalEvent=this.options.event+b}this._super.emit.call(this,a)}}),i(da,Y,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[hb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Ga|Ha)&&!f)this.reset();else if(a.eventType&Ea)this.reset(),this._timer=e(function(){this.state=rb,this.tryEmit()},b.time,this);else if(a.eventType&Ga)return rb;return tb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===rb&&(a&&a.eventType&Ga?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=ra(),this.manager.emit(this.options.event,this._input)))}}),i(ea,aa,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&ob)}}),i(fa,aa,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Na|Oa,pointers:1},getTouchAction:function(){return ba.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Na|Oa)?b=a.overallVelocity:c&Na?b=a.overallVelocityX:c&Oa&&(b=a.overallVelocityY),this._super.attrTest.call(this,a)&&c&a.offsetDirection&&a.distance>this.options.threshold&&a.maxPointers==this.options.pointers&&qa(b)>this.options.velocity&&a.eventType&Ga},emit:function(a){var b=$(a.offsetDirection);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),i(ga,Y,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ib]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distancee.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[n++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var t=function(e){function t(){return e.apply(this,arguments)||this}return o(t,e),t}(q(Error)),Y=function(t){function e(e){return t.call(this,"Invalid DateTime: "+e.toMessage())||this}return o(e,t),e}(t),P=function(t){function e(e){return t.call(this,"Invalid Interval: "+e.toMessage())||this}return o(e,t),e}(t),H=function(t){function e(e){return t.call(this,"Invalid Duration: "+e.toMessage())||this}return o(e,t),e}(t),w=function(e){function t(){return e.apply(this,arguments)||this}return o(t,e),t}(t),J=function(t){function e(e){return t.call(this,"Invalid unit "+e)||this}return o(e,t),e}(t),u=function(e){function t(){return e.apply(this,arguments)||this}return o(t,e),t}(t),n=function(e){function t(){return e.call(this,"Zone is an abstract class")||this}return o(t,e),t}(t),t="numeric",r="short",a="long",G={year:t,month:t,day:t},$={year:t,month:r,day:t},B={year:t,month:r,day:t,weekday:r},Q={year:t,month:a,day:t},K={year:t,month:a,day:t,weekday:a},X={hour:t,minute:t},ee={hour:t,minute:t,second:t},te={hour:t,minute:t,second:t,timeZoneName:r},ne={hour:t,minute:t,second:t,timeZoneName:a},re={hour:t,minute:t,hourCycle:"h23"},ie={hour:t,minute:t,second:t,hourCycle:"h23"},oe={hour:t,minute:t,second:t,hourCycle:"h23",timeZoneName:r},ae={hour:t,minute:t,second:t,hourCycle:"h23",timeZoneName:a},ue={year:t,month:t,day:t,hour:t,minute:t},se={year:t,month:t,day:t,hour:t,minute:t,second:t},le={year:t,month:r,day:t,hour:t,minute:t},ce={year:t,month:r,day:t,hour:t,minute:t,second:t},fe={year:t,month:r,day:t,weekday:r,hour:t,minute:t},de={year:t,month:a,day:t,hour:t,minute:t,timeZoneName:r},he={year:t,month:a,day:t,hour:t,minute:t,second:t,timeZoneName:r},me={year:t,month:a,day:t,weekday:a,hour:t,minute:t,timeZoneName:a},ye={year:t,month:a,day:t,weekday:a,hour:t,minute:t,second:t,timeZoneName:a},s=function(){function e(){}var t=e.prototype;return t.offsetName=function(e,t){throw new n},t.formatOffset=function(e,t){throw new n},t.offset=function(e){throw new n},t.equals=function(e){throw new n},i(e,[{key:"type",get:function(){throw new n}},{key:"name",get:function(){throw new n}},{key:"ianaName",get:function(){return this.name}},{key:"isUniversal",get:function(){throw new n}},{key:"isValid",get:function(){throw new n}}]),e}(),ve=null,ge=function(e){function t(){return e.apply(this,arguments)||this}o(t,e);var n=t.prototype;return n.offsetName=function(e,t){return gt(e,t.format,t.locale)},n.formatOffset=function(e,t){return bt(this.offset(e),t)},n.offset=function(e){return-new Date(e).getTimezoneOffset()},n.equals=function(e){return"system"===e.type},i(t,[{key:"type",get:function(){return"system"}},{key:"name",get:function(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}},{key:"isUniversal",get:function(){return!1}},{key:"isValid",get:function(){return!0}}],[{key:"instance",get:function(){return ve=null===ve?new t:ve}}]),t}(s),pe={};var ke={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};var we={},f=function(n){function r(e){var t=n.call(this)||this;return t.zoneName=e,t.valid=r.isValidZone(e),t}o(r,n),r.create=function(e){return we[e]||(we[e]=new r(e)),we[e]},r.resetCache=function(){we={},pe={}},r.isValidSpecifier=function(e){return this.isValidZone(e)},r.isValidZone=function(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch(e){return!1}};var e=r.prototype;return e.offsetName=function(e,t){return gt(e,t.format,t.locale,this.name)},e.formatOffset=function(e,t){return bt(this.offset(e),t)},e.offset=function(e){var t,n,r,i,o,a,u,s,e=new Date(e);return isNaN(e)?NaN:(i=this.name,pe[i]||(pe[i]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:i,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),a=(i=(i=pe[i]).formatToParts?function(e,t){for(var n=e.formatToParts(t),r=[],i=0;iyt(i,t,n)?(r=i+1,a=1):r=i,l({weekYear:r,weekNumber:a,weekday:o},St(e))}function Ke(e,t,n){void 0===n&&(n=1);var r,i=e.weekYear,o=e.weekNumber,a=e.weekday,n=Be(Je(i,1,t=void 0===t?4:t),n),u=M(i),o=7*o+a-n-7+t,a=(o<1?o+=M(r=i-1):uO.twoDigitCutoffYear?1900+e:2e3+e}function gt(e,t,n,r){void 0===r&&(r=null);var e=new Date(e),i={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"},r=(r&&(i.timeZone=r),l({timeZoneName:t},i)),t=new Intl.DateTimeFormat(n,r).formatToParts(e).find(function(e){return"timezonename"===e.type.toLowerCase()});return t?t.value:null}function pt(e,t){e=parseInt(e,10),Number.isNaN(e)&&(e=0),t=parseInt(t,10)||0;return 60*e+(e<0||Object.is(e,-0)?-t:t)}function kt(e){var t=Number(e);if("boolean"==typeof e||""===e||Number.isNaN(t))throw new u("Invalid unit value "+e);return t}function wt(e,t){var n,r,i={};for(n in e)h(e,n)&&null!=(r=e[n])&&(i[t(n)]=kt(r));return i}function bt(e,t){var n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=0<=e?"+":"-";switch(t){case"short":return i+m(n,2)+":"+m(r,2);case"narrow":return i+n+(0e},t.isBefore=function(e){return!!this.isValid&&this.e<=e},t.contains=function(e){return!!this.isValid&&this.s<=e&&this.e>e},t.set=function(e){var e=void 0===e?{}:e,t=e.start,e=e.end;return this.isValid?l.fromDateTimes(t||this.s,e||this.e):this},t.splitAt=function(){var t=this;if(!this.isValid)return[];for(var e=arguments.length,n=new Array(e),r=0;r+this.e?this.e:s;o.push(l.fromDateTimes(a,s)),a=s,u+=1}return o},t.splitBy=function(e){var t=E.fromDurationLike(e);if(!this.isValid||!t.isValid||0===t.as("milliseconds"))return[];for(var n=this.s,r=1,i=[];n+this.e?this.e:o;i.push(l.fromDateTimes(n,o)),n=o,r+=1}return i},t.divideEqually=function(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]},t.overlaps=function(e){return this.e>e.s&&this.s=e.e},t.equals=function(e){return!(!this.isValid||!e.isValid)&&this.s.equals(e.s)&&this.e.equals(e.e)},t.intersection=function(e){var t;return this.isValid?(t=(this.s>e.s?this:e).s,(e=(this.ee.e?this:e).e,l.fromDateTimes(t,e)):this},l.merge=function(e){var e=e.sort(function(e,t){return e.s-t.s}).reduce(function(e,t){var n=e[0],e=e[1];return e?e.overlaps(t)||e.abutsStart(t)?[n,e.union(t)]:[n.concat([e]),t]:[n,t]},[[],null]),t=e[0],e=e[1];return e&&t.push(e),t},l.xor=function(e){for(var t,n=null,r=0,i=[],e=e.map(function(e){return[{time:e.s,type:"s"},{time:e.e,type:"e"}]}),o=R((t=Array.prototype).concat.apply(t,e).sort(function(e,t){return e.time-t.time}));!(a=o()).done;)var a=a.value,n=1===(r+="s"===a.type?1:-1)?a.time:(n&&+n!=+a.time&&i.push(l.fromDateTimes(n,a.time)),null);return l.merge(i)},t.difference=function(){for(var t=this,e=arguments.length,n=new Array(e),r=0;rthis.valueOf())?this:e,r?e:this,t,n),r?e.negate():e):E.invalid("created by diffing an invalid DateTime")},t.diffNow=function(e,t){return void 0===e&&(e="milliseconds"),void 0===t&&(t={}),this.diff(k.now(),e,t)},t.until=function(e){return this.isValid?Mn.fromDateTimes(this,e):this},t.hasSame=function(e,t,n){var r;return!!this.isValid&&(r=e.valueOf(),(e=this.setZone(e.zone,{keepLocalTime:!0})).startOf(t,n)<=r)&&r<=e.endOf(t,n)},t.equals=function(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)},t.toRelative=function(e){var t,n,r,i;return this.isValid?(t=(e=void 0===e?{}:e).base||k.fromObject({},{zone:this.zone}),n=e.padding?thisthis.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset)}},{key:"isInLeapYear",get:function(){return ft(this.year)}},{key:"daysInMonth",get:function(){return dt(this.year,this.month)}},{key:"daysInYear",get:function(){return this.isValid?M(this.year):NaN}},{key:"weeksInWeekYear",get:function(){return this.isValid?yt(this.weekYear):NaN}},{key:"weeksInLocalWeekYear",get:function(){return this.isValid?yt(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}}],[{key:"DATE_SHORT",get:function(){return G}},{key:"DATE_MED",get:function(){return $}},{key:"DATE_MED_WITH_WEEKDAY",get:function(){return B}},{key:"DATE_FULL",get:function(){return Q}},{key:"DATE_HUGE",get:function(){return K}},{key:"TIME_SIMPLE",get:function(){return X}},{key:"TIME_WITH_SECONDS",get:function(){return ee}},{key:"TIME_WITH_SHORT_OFFSET",get:function(){return te}},{key:"TIME_WITH_LONG_OFFSET",get:function(){return ne}},{key:"TIME_24_SIMPLE",get:function(){return re}},{key:"TIME_24_WITH_SECONDS",get:function(){return ie}},{key:"TIME_24_WITH_SHORT_OFFSET",get:function(){return oe}},{key:"TIME_24_WITH_LONG_OFFSET",get:function(){return ae}},{key:"DATETIME_SHORT",get:function(){return ue}},{key:"DATETIME_SHORT_WITH_SECONDS",get:function(){return se}},{key:"DATETIME_MED",get:function(){return le}},{key:"DATETIME_MED_WITH_SECONDS",get:function(){return ce}},{key:"DATETIME_MED_WITH_WEEKDAY",get:function(){return fe}},{key:"DATETIME_FULL",get:function(){return de}},{key:"DATETIME_FULL_WITH_SECONDS",get:function(){return he}},{key:"DATETIME_HUGE",get:function(){return me}},{key:"DATETIME_HUGE_WITH_SECONDS",get:function(){return ye}}]),k}(Symbol.for("nodejs.util.inspect.custom"));function yr(e){if(W.isDateTime(e))return e;if(e&&e.valueOf&&y(e.valueOf()))return W.fromJSDate(e);if(e&&"object"==typeof e)return W.fromObject(e);throw new u("Unknown datetime argument: "+e+", of type "+typeof e)}return e.DateTime=W,e.Duration=E,e.FixedOffsetZone=d,e.IANAZone=f,e.Info=In,e.Interval=Mn,e.InvalidZone=Le,e.Settings=O,e.SystemZone=ge,e.VERSION="3.4.4",e.Zone=s,Object.defineProperty(e,"__esModule",{value:!0}),e}({}); \ No newline at end of file diff --git a/js/meteogram.js b/js/meteogram.js new file mode 100644 index 0000000..e45e49d --- /dev/null +++ b/js/meteogram.js @@ -0,0 +1 @@ +const meteogramURL = "https://www.meteoblue.com/de/wetter/widget/meteogram/untermaiselstein_deutschland_2819110?geoloc=fixed&temperature_units=CELSIUS&windspeed_units=KILOMETER_PER_HOUR&precipitation_units=MILLIMETER&forecast_days=5&layout=dark&autowidth=auto&user_key=cb2300d59c850d41&embed_key=f7f2b30b36c02cf0&sig=757b13cab0ac3c327a180babd58ef181fb6c83474b58dd6e5e5c2570b0884884"; \ No newline at end of file diff --git a/js/modal-dynamic.min.js b/js/modal-dynamic.min.js new file mode 100644 index 0000000..671ac39 --- /dev/null +++ b/js/modal-dynamic.min.js @@ -0,0 +1,2 @@ +/*! https://github.com/FranBar1966/bootstrap-5-modal-dynamic - License in the terms described in the LICENSE file */ +function startDynamicModal(){document.body.removeEventListener("click",dynamicModalHandler),document.body.addEventListener("click",dynamicModalHandler)}function dynamicModalHandler(e){const t=e.target.closest(".modal-dynamic");if(!t)return;e.target.closest("a")&&e.preventDefault();const a=e.target.getAttribute("href"),d=e.target.dataset.template||"#modalTemplate";let o=document.querySelector(a);if(!o){const e=document.querySelector(d);e&&(o=e.cloneNode(!0),o.id=a.substring(1),document.body.appendChild(o))}if(!o)return;const n=e.target.dataset.class,r=e.target.dataset.title,s=e.target.dataset.header,l=e.target.dataset.noheader,c=e.target.dataset.url,i=e.target.dataset.footer,u=e.target.dataset.nofooter,m=e.target.dataset.width||"",y=e.target.dataset.backdrop||"false",h=!e.target.dataset.keyboard||"true"===e.target.dataset.keyboard;if(n&&o.classList.add(...n.split(" ")),s){const e=o.querySelector(".modal-header"),t=document.querySelector(s);e&&t&&(e.innerHTML=t.innerHTML)}if(l){const e=o.querySelector(".modal-header");e&&e.classList.add("hidden","d-none")}if(r){const e=o.querySelector(".modal-title");e&&(e.innerHTML=r)}if(i){const e=o.querySelector(".modal-footer"),t=document.querySelector(i);e&&t&&(e.innerHTML=t.innerHTML)}if(u){const e=o.querySelector(".modal-footer");e&&e.classList.add("hidden","d-none")}if(m){const e=o.querySelector(".modal-dialog");if(e){const t=isNaN(m)||""===m?m:m+"px";e.style.maxWidth=t,e.style.width="auto"}}let f=bootstrap.Modal.getInstance(o);f||(f=new bootstrap.Modal(o,{keyboard:h,backdrop:y})),o.addEventListener("hidden.bs.modal",e=>{o.remove()}),o.addEventListener("shown.bs.modal",e=>{o.focus()}),f.show();const g=o.querySelector(".modal-body");if(c.startsWith("#")){const e=document.querySelector(c);g.innerHTML=e?e.innerHTML:"ERROR: Content not found"}else fetch(c,{method:"GET",headers:{"X-Requested-From-Modal":a.substring(1),"Requested-With-Ajax":"ajax"}}).then(e=>e.text()).then(e=>{g.innerHTML=e,window.dispatchEvent(new CustomEvent("neutralFetchCompleted",{detail:{element:o,url:c}}))}).catch(e=>{g.innerHTML=e.message,window.dispatchEvent(new CustomEvent("neutralFetchError",{detail:{element:o,url:c}}))})}startDynamicModal(),window.addEventListener("neutralFetchCompleted",()=>{startDynamicModal()}); \ No newline at end of file diff --git a/js/mqtt.js b/js/mqtt.js new file mode 100644 index 0000000..e5235fe --- /dev/null +++ b/js/mqtt.js @@ -0,0 +1,23895 @@ +"use strict"; +var mqtt = (() => { + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; + }; + var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; + }; + var __export = (target, all) => { + for (var name2 in all) + __defProp(target, name2, { get: all[name2], enumerable: true }); + }; + var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + + // node_modules/esbuild-plugin-polyfill-node/polyfills/__dirname.js + var init_dirname = __esm({ + "node_modules/esbuild-plugin-polyfill-node/polyfills/__dirname.js"() { + } + }); + + // node_modules/@jspm/core/nodelibs/browser/process.js + var process_exports = {}; + __export(process_exports, { + _debugEnd: () => _debugEnd, + _debugProcess: () => _debugProcess, + _events: () => _events, + _eventsCount: () => _eventsCount, + _exiting: () => _exiting, + _fatalExceptions: () => _fatalExceptions, + _getActiveHandles: () => _getActiveHandles, + _getActiveRequests: () => _getActiveRequests, + _kill: () => _kill, + _linkedBinding: () => _linkedBinding, + _maxListeners: () => _maxListeners, + _preload_modules: () => _preload_modules, + _rawDebug: () => _rawDebug, + _startProfilerIdleNotifier: () => _startProfilerIdleNotifier, + _stopProfilerIdleNotifier: () => _stopProfilerIdleNotifier, + _tickCallback: () => _tickCallback, + abort: () => abort, + addListener: () => addListener, + allowedNodeEnvironmentFlags: () => allowedNodeEnvironmentFlags, + arch: () => arch, + argv: () => argv, + argv0: () => argv0, + assert: () => assert, + binding: () => binding, + browser: () => browser, + chdir: () => chdir, + config: () => config, + cpuUsage: () => cpuUsage, + cwd: () => cwd, + debugPort: () => debugPort, + default: () => process, + dlopen: () => dlopen, + domain: () => domain, + emit: () => emit, + emitWarning: () => emitWarning, + env: () => env, + execArgv: () => execArgv, + execPath: () => execPath, + exit: () => exit, + features: () => features, + hasUncaughtExceptionCaptureCallback: () => hasUncaughtExceptionCaptureCallback, + hrtime: () => hrtime, + kill: () => kill, + listeners: () => listeners, + memoryUsage: () => memoryUsage, + moduleLoadList: () => moduleLoadList, + nextTick: () => nextTick, + off: () => off, + on: () => on, + once: () => once, + openStdin: () => openStdin, + pid: () => pid, + platform: () => platform, + ppid: () => ppid, + prependListener: () => prependListener, + prependOnceListener: () => prependOnceListener, + reallyExit: () => reallyExit, + release: () => release, + removeAllListeners: () => removeAllListeners, + removeListener: () => removeListener, + resourceUsage: () => resourceUsage, + setSourceMapsEnabled: () => setSourceMapsEnabled, + setUncaughtExceptionCaptureCallback: () => setUncaughtExceptionCaptureCallback, + stderr: () => stderr, + stdin: () => stdin, + stdout: () => stdout, + title: () => title, + umask: () => umask, + uptime: () => uptime, + version: () => version, + versions: () => versions + }); + function unimplemented(name2) { + throw new Error("Node.js process " + name2 + " is not supported by JSPM core outside of Node.js"); + } + function cleanUpNextTick() { + if (!draining || !currentQueue) + return; + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) + drainQueue(); + } + function drainQueue() { + if (draining) + return; + var timeout = setTimeout(cleanUpNextTick, 0); + draining = true; + var len = queue.length; + while (len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) + currentQueue[queueIndex].run(); + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + clearTimeout(timeout); + } + function nextTick(fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) + args[i - 1] = arguments[i]; + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) + setTimeout(drainQueue, 0); + } + function Item(fun, array) { + this.fun = fun; + this.array = array; + } + function noop() { + } + function _linkedBinding(name2) { + unimplemented("_linkedBinding"); + } + function dlopen(name2) { + unimplemented("dlopen"); + } + function _getActiveRequests() { + return []; + } + function _getActiveHandles() { + return []; + } + function assert(condition, message) { + if (!condition) throw new Error(message || "assertion error"); + } + function hasUncaughtExceptionCaptureCallback() { + return false; + } + function uptime() { + return _performance.now() / 1e3; + } + function hrtime(previousTimestamp) { + var baseNow = Math.floor((Date.now() - _performance.now()) * 1e-3); + var clocktime = _performance.now() * 1e-3; + var seconds = Math.floor(clocktime) + baseNow; + var nanoseconds = Math.floor(clocktime % 1 * 1e9); + if (previousTimestamp) { + seconds = seconds - previousTimestamp[0]; + nanoseconds = nanoseconds - previousTimestamp[1]; + if (nanoseconds < 0) { + seconds--; + nanoseconds += nanoPerSec; + } + } + return [seconds, nanoseconds]; + } + function on() { + return process; + } + function listeners(name2) { + return []; + } + var queue, draining, currentQueue, queueIndex, title, arch, platform, env, argv, execArgv, version, versions, emitWarning, binding, umask, cwd, chdir, release, browser, _rawDebug, moduleLoadList, domain, _exiting, config, reallyExit, _kill, cpuUsage, resourceUsage, memoryUsage, kill, exit, openStdin, allowedNodeEnvironmentFlags, features, _fatalExceptions, setUncaughtExceptionCaptureCallback, _tickCallback, _debugProcess, _debugEnd, _startProfilerIdleNotifier, _stopProfilerIdleNotifier, stdout, stderr, stdin, abort, pid, ppid, execPath, debugPort, argv0, _preload_modules, setSourceMapsEnabled, _performance, nowOffset, nanoPerSec, _maxListeners, _events, _eventsCount, addListener, once, off, removeListener, removeAllListeners, emit, prependListener, prependOnceListener, process; + var init_process = __esm({ + "node_modules/@jspm/core/nodelibs/browser/process.js"() { + init_dirname(); + init_buffer2(); + init_process2(); + queue = []; + draining = false; + queueIndex = -1; + Item.prototype.run = function() { + this.fun.apply(null, this.array); + }; + title = "browser"; + arch = "x64"; + platform = "browser"; + env = { + PATH: "/usr/bin", + LANG: typeof navigator !== "undefined" ? navigator.language + ".UTF-8" : void 0, + PWD: "/", + HOME: "/home", + TMP: "/tmp" + }; + argv = ["/usr/bin/node"]; + execArgv = []; + version = "v16.8.0"; + versions = {}; + emitWarning = function(message, type) { + console.warn((type ? type + ": " : "") + message); + }; + binding = function(name2) { + unimplemented("binding"); + }; + umask = function(mask) { + return 0; + }; + cwd = function() { + return "/"; + }; + chdir = function(dir) { + }; + release = { + name: "node", + sourceUrl: "", + headersUrl: "", + libUrl: "" + }; + browser = true; + _rawDebug = noop; + moduleLoadList = []; + domain = {}; + _exiting = false; + config = {}; + reallyExit = noop; + _kill = noop; + cpuUsage = function() { + return {}; + }; + resourceUsage = cpuUsage; + memoryUsage = cpuUsage; + kill = noop; + exit = noop; + openStdin = noop; + allowedNodeEnvironmentFlags = {}; + features = { + inspector: false, + debug: false, + uv: false, + ipv6: false, + tls_alpn: false, + tls_sni: false, + tls_ocsp: false, + tls: false, + cached_builtins: true + }; + _fatalExceptions = noop; + setUncaughtExceptionCaptureCallback = noop; + _tickCallback = noop; + _debugProcess = noop; + _debugEnd = noop; + _startProfilerIdleNotifier = noop; + _stopProfilerIdleNotifier = noop; + stdout = void 0; + stderr = void 0; + stdin = void 0; + abort = noop; + pid = 2; + ppid = 1; + execPath = "/bin/usr/node"; + debugPort = 9229; + argv0 = "node"; + _preload_modules = []; + setSourceMapsEnabled = noop; + _performance = { + now: typeof performance !== "undefined" ? performance.now.bind(performance) : void 0, + timing: typeof performance !== "undefined" ? performance.timing : void 0 + }; + if (_performance.now === void 0) { + nowOffset = Date.now(); + if (_performance.timing && _performance.timing.navigationStart) { + nowOffset = _performance.timing.navigationStart; + } + _performance.now = () => Date.now() - nowOffset; + } + nanoPerSec = 1e9; + hrtime.bigint = function(time) { + var diff = hrtime(time); + if (typeof BigInt === "undefined") { + return diff[0] * nanoPerSec + diff[1]; + } + return BigInt(diff[0] * nanoPerSec) + BigInt(diff[1]); + }; + _maxListeners = 10; + _events = {}; + _eventsCount = 0; + addListener = on; + once = on; + off = on; + removeListener = on; + removeAllListeners = on; + emit = noop; + prependListener = on; + prependOnceListener = on; + process = { + version, + versions, + arch, + platform, + browser, + release, + _rawDebug, + moduleLoadList, + binding, + _linkedBinding, + _events, + _eventsCount, + _maxListeners, + on, + addListener, + once, + off, + removeListener, + removeAllListeners, + emit, + prependListener, + prependOnceListener, + listeners, + domain, + _exiting, + config, + dlopen, + uptime, + _getActiveRequests, + _getActiveHandles, + reallyExit, + _kill, + cpuUsage, + resourceUsage, + memoryUsage, + kill, + exit, + openStdin, + allowedNodeEnvironmentFlags, + assert, + features, + _fatalExceptions, + setUncaughtExceptionCaptureCallback, + hasUncaughtExceptionCaptureCallback, + emitWarning, + nextTick, + _tickCallback, + _debugProcess, + _debugEnd, + _startProfilerIdleNotifier, + _stopProfilerIdleNotifier, + stdout, + stdin, + stderr, + abort, + umask, + chdir, + cwd, + env, + title, + argv, + execArgv, + pid, + ppid, + execPath, + debugPort, + hrtime, + argv0, + _preload_modules, + setSourceMapsEnabled + }; + } + }); + + // node_modules/esbuild-plugin-polyfill-node/polyfills/process.js + var init_process2 = __esm({ + "node_modules/esbuild-plugin-polyfill-node/polyfills/process.js"() { + init_process(); + } + }); + + // node_modules/@jspm/core/nodelibs/browser/chunk-DtuTasat.js + function dew$2() { + if (_dewExec$2) return exports$2; + _dewExec$2 = true; + exports$2.byteLength = byteLength; + exports$2.toByteArray = toByteArray; + exports$2.fromByteArray = fromByteArray; + var lookup = []; + var revLookup = []; + var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array; + var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i]; + revLookup[code.charCodeAt(i)] = i; + } + revLookup["-".charCodeAt(0)] = 62; + revLookup["_".charCodeAt(0)] = 63; + function getLens(b64) { + var len2 = b64.length; + if (len2 % 4 > 0) { + throw new Error("Invalid string. Length must be a multiple of 4"); + } + var validLen = b64.indexOf("="); + if (validLen === -1) validLen = len2; + var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4; + return [validLen, placeHoldersLen]; + } + function byteLength(b64) { + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function _byteLength(b64, validLen, placeHoldersLen) { + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function toByteArray(b64) { + var tmp; + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)); + var curByte = 0; + var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen; + var i2; + for (i2 = 0; i2 < len2; i2 += 4) { + tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)]; + arr[curByte++] = tmp >> 16 & 255; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 2) { + tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 1) { + tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + return arr; + } + function tripletToBase64(num) { + return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63]; + } + function encodeChunk(uint8, start, end) { + var tmp; + var output = []; + for (var i2 = start; i2 < end; i2 += 3) { + tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255); + output.push(tripletToBase64(tmp)); + } + return output.join(""); + } + function fromByteArray(uint8) { + var tmp; + var len2 = uint8.length; + var extraBytes = len2 % 3; + var parts = []; + var maxChunkLength = 16383; + for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) { + parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength)); + } + if (extraBytes === 1) { + tmp = uint8[len2 - 1]; + parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "=="); + } else if (extraBytes === 2) { + tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1]; + parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "="); + } + return parts.join(""); + } + return exports$2; + } + function dew$1() { + if (_dewExec$1) return exports$1; + _dewExec$1 = true; + exports$1.read = function(buffer, offset, isLE, mLen, nBytes) { + var e, m; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = -7; + var i = isLE ? nBytes - 1 : 0; + var d = isLE ? -1 : 1; + var s = buffer[offset + i]; + i += d; + e = s & (1 << -nBits) - 1; + s >>= -nBits; + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) { + } + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) { + } + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity; + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); + }; + exports$1.write = function(buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; + var i = isLE ? 0 : nBytes - 1; + var d = isLE ? 1 : -1; + var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + value = Math.abs(value); + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) { + } + e = e << mLen | m; + eLen += mLen; + for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) { + } + buffer[offset + i - d] |= s * 128; + }; + return exports$1; + } + function dew() { + if (_dewExec) return exports; + _dewExec = true; + const base64 = dew$2(); + const ieee754 = dew$1(); + const customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null; + exports.Buffer = Buffer3; + exports.SlowBuffer = SlowBuffer; + exports.INSPECT_MAX_BYTES = 50; + const K_MAX_LENGTH = 2147483647; + exports.kMaxLength = K_MAX_LENGTH; + Buffer3.TYPED_ARRAY_SUPPORT = typedArraySupport(); + if (!Buffer3.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") { + console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."); + } + function typedArraySupport() { + try { + const arr = new Uint8Array(1); + const proto = { + foo: function() { + return 42; + } + }; + Object.setPrototypeOf(proto, Uint8Array.prototype); + Object.setPrototypeOf(arr, proto); + return arr.foo() === 42; + } catch (e) { + return false; + } + } + Object.defineProperty(Buffer3.prototype, "parent", { + enumerable: true, + get: function() { + if (!Buffer3.isBuffer(this)) return void 0; + return this.buffer; + } + }); + Object.defineProperty(Buffer3.prototype, "offset", { + enumerable: true, + get: function() { + if (!Buffer3.isBuffer(this)) return void 0; + return this.byteOffset; + } + }); + function createBuffer(length) { + if (length > K_MAX_LENGTH) { + throw new RangeError('The value "' + length + '" is invalid for option "size"'); + } + const buf = new Uint8Array(length); + Object.setPrototypeOf(buf, Buffer3.prototype); + return buf; + } + function Buffer3(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + if (typeof encodingOrOffset === "string") { + throw new TypeError('The "string" argument must be of type string. Received type number'); + } + return allocUnsafe(arg); + } + return from(arg, encodingOrOffset, length); + } + Buffer3.poolSize = 8192; + function from(value, encodingOrOffset, length) { + if (typeof value === "string") { + return fromString(value, encodingOrOffset); + } + if (ArrayBuffer.isView(value)) { + return fromArrayView(value); + } + if (value == null) { + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof value === "number") { + throw new TypeError('The "value" argument must not be of type number. Received type number'); + } + const valueOf = value.valueOf && value.valueOf(); + if (valueOf != null && valueOf !== value) { + return Buffer3.from(valueOf, encodingOrOffset, length); + } + const b = fromObject(value); + if (b) return b; + if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") { + return Buffer3.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length); + } + throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value); + } + Buffer3.from = function(value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length); + }; + Object.setPrototypeOf(Buffer3.prototype, Uint8Array.prototype); + Object.setPrototypeOf(Buffer3, Uint8Array); + function assertSize(size) { + if (typeof size !== "number") { + throw new TypeError('"size" argument must be of type number'); + } else if (size < 0) { + throw new RangeError('The value "' + size + '" is invalid for option "size"'); + } + } + function alloc(size, fill, encoding) { + assertSize(size); + if (size <= 0) { + return createBuffer(size); + } + if (fill !== void 0) { + return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill); + } + return createBuffer(size); + } + Buffer3.alloc = function(size, fill, encoding) { + return alloc(size, fill, encoding); + }; + function allocUnsafe(size) { + assertSize(size); + return createBuffer(size < 0 ? 0 : checked(size) | 0); + } + Buffer3.allocUnsafe = function(size) { + return allocUnsafe(size); + }; + Buffer3.allocUnsafeSlow = function(size) { + return allocUnsafe(size); + }; + function fromString(string, encoding) { + if (typeof encoding !== "string" || encoding === "") { + encoding = "utf8"; + } + if (!Buffer3.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + const length = byteLength(string, encoding) | 0; + let buf = createBuffer(length); + const actual = buf.write(string, encoding); + if (actual !== length) { + buf = buf.slice(0, actual); + } + return buf; + } + function fromArrayLike(array) { + const length = array.length < 0 ? 0 : checked(array.length) | 0; + const buf = createBuffer(length); + for (let i = 0; i < length; i += 1) { + buf[i] = array[i] & 255; + } + return buf; + } + function fromArrayView(arrayView) { + if (isInstance(arrayView, Uint8Array)) { + const copy = new Uint8Array(arrayView); + return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength); + } + return fromArrayLike(arrayView); + } + function fromArrayBuffer(array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds'); + } + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds'); + } + let buf; + if (byteOffset === void 0 && length === void 0) { + buf = new Uint8Array(array); + } else if (length === void 0) { + buf = new Uint8Array(array, byteOffset); + } else { + buf = new Uint8Array(array, byteOffset, length); + } + Object.setPrototypeOf(buf, Buffer3.prototype); + return buf; + } + function fromObject(obj) { + if (Buffer3.isBuffer(obj)) { + const len = checked(obj.length) | 0; + const buf = createBuffer(len); + if (buf.length === 0) { + return buf; + } + obj.copy(buf, 0, 0, len); + return buf; + } + if (obj.length !== void 0) { + if (typeof obj.length !== "number" || numberIsNaN(obj.length)) { + return createBuffer(0); + } + return fromArrayLike(obj); + } + if (obj.type === "Buffer" && Array.isArray(obj.data)) { + return fromArrayLike(obj.data); + } + } + function checked(length) { + if (length >= K_MAX_LENGTH) { + throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes"); + } + return length | 0; + } + function SlowBuffer(length) { + if (+length != length) { + length = 0; + } + return Buffer3.alloc(+length); + } + Buffer3.isBuffer = function isBuffer(b) { + return b != null && b._isBuffer === true && b !== Buffer3.prototype; + }; + Buffer3.compare = function compare(a, b) { + if (isInstance(a, Uint8Array)) a = Buffer3.from(a, a.offset, a.byteLength); + if (isInstance(b, Uint8Array)) b = Buffer3.from(b, b.offset, b.byteLength); + if (!Buffer3.isBuffer(a) || !Buffer3.isBuffer(b)) { + throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array'); + } + if (a === b) return 0; + let x = a.length; + let y = b.length; + for (let i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i]; + y = b[i]; + break; + } + } + if (x < y) return -1; + if (y < x) return 1; + return 0; + }; + Buffer3.isEncoding = function isEncoding(encoding) { + switch (String(encoding).toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "latin1": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return true; + default: + return false; + } + }; + Buffer3.concat = function concat(list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } + if (list.length === 0) { + return Buffer3.alloc(0); + } + let i; + if (length === void 0) { + length = 0; + for (i = 0; i < list.length; ++i) { + length += list[i].length; + } + } + const buffer = Buffer3.allocUnsafe(length); + let pos = 0; + for (i = 0; i < list.length; ++i) { + let buf = list[i]; + if (isInstance(buf, Uint8Array)) { + if (pos + buf.length > buffer.length) { + if (!Buffer3.isBuffer(buf)) buf = Buffer3.from(buf); + buf.copy(buffer, pos); + } else { + Uint8Array.prototype.set.call(buffer, buf, pos); + } + } else if (!Buffer3.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } else { + buf.copy(buffer, pos); + } + pos += buf.length; + } + return buffer; + }; + function byteLength(string, encoding) { + if (Buffer3.isBuffer(string)) { + return string.length; + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength; + } + if (typeof string !== "string") { + throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof string); + } + const len = string.length; + const mustMatch = arguments.length > 2 && arguments[2] === true; + if (!mustMatch && len === 0) return 0; + let loweredCase = false; + for (; ; ) { + switch (encoding) { + case "ascii": + case "latin1": + case "binary": + return len; + case "utf8": + case "utf-8": + return utf8ToBytes(string).length; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return len * 2; + case "hex": + return len >>> 1; + case "base64": + return base64ToBytes(string).length; + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length; + } + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } + } + Buffer3.byteLength = byteLength; + function slowToString(encoding, start, end) { + let loweredCase = false; + if (start === void 0 || start < 0) { + start = 0; + } + if (start > this.length) { + return ""; + } + if (end === void 0 || end > this.length) { + end = this.length; + } + if (end <= 0) { + return ""; + } + end >>>= 0; + start >>>= 0; + if (end <= start) { + return ""; + } + if (!encoding) encoding = "utf8"; + while (true) { + switch (encoding) { + case "hex": + return hexSlice(this, start, end); + case "utf8": + case "utf-8": + return utf8Slice(this, start, end); + case "ascii": + return asciiSlice(this, start, end); + case "latin1": + case "binary": + return latin1Slice(this, start, end); + case "base64": + return base64Slice(this, start, end); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return utf16leSlice(this, start, end); + default: + if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); + encoding = (encoding + "").toLowerCase(); + loweredCase = true; + } + } + } + Buffer3.prototype._isBuffer = true; + function swap(b, n, m) { + const i = b[n]; + b[n] = b[m]; + b[m] = i; + } + Buffer3.prototype.swap16 = function swap16() { + const len = this.length; + if (len % 2 !== 0) { + throw new RangeError("Buffer size must be a multiple of 16-bits"); + } + for (let i = 0; i < len; i += 2) { + swap(this, i, i + 1); + } + return this; + }; + Buffer3.prototype.swap32 = function swap32() { + const len = this.length; + if (len % 4 !== 0) { + throw new RangeError("Buffer size must be a multiple of 32-bits"); + } + for (let i = 0; i < len; i += 4) { + swap(this, i, i + 3); + swap(this, i + 1, i + 2); + } + return this; + }; + Buffer3.prototype.swap64 = function swap64() { + const len = this.length; + if (len % 8 !== 0) { + throw new RangeError("Buffer size must be a multiple of 64-bits"); + } + for (let i = 0; i < len; i += 8) { + swap(this, i, i + 7); + swap(this, i + 1, i + 6); + swap(this, i + 2, i + 5); + swap(this, i + 3, i + 4); + } + return this; + }; + Buffer3.prototype.toString = function toString() { + const length = this.length; + if (length === 0) return ""; + if (arguments.length === 0) return utf8Slice(this, 0, length); + return slowToString.apply(this, arguments); + }; + Buffer3.prototype.toLocaleString = Buffer3.prototype.toString; + Buffer3.prototype.equals = function equals(b) { + if (!Buffer3.isBuffer(b)) throw new TypeError("Argument must be a Buffer"); + if (this === b) return true; + return Buffer3.compare(this, b) === 0; + }; + Buffer3.prototype.inspect = function inspect() { + let str = ""; + const max = exports.INSPECT_MAX_BYTES; + str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim(); + if (this.length > max) str += " ... "; + return ""; + }; + if (customInspectSymbol) { + Buffer3.prototype[customInspectSymbol] = Buffer3.prototype.inspect; + } + Buffer3.prototype.compare = function compare(target, start, end, thisStart, thisEnd) { + if (isInstance(target, Uint8Array)) { + target = Buffer3.from(target, target.offset, target.byteLength); + } + if (!Buffer3.isBuffer(target)) { + throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof target); + } + if (start === void 0) { + start = 0; + } + if (end === void 0) { + end = target ? target.length : 0; + } + if (thisStart === void 0) { + thisStart = 0; + } + if (thisEnd === void 0) { + thisEnd = this.length; + } + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError("out of range index"); + } + if (thisStart >= thisEnd && start >= end) { + return 0; + } + if (thisStart >= thisEnd) { + return -1; + } + if (start >= end) { + return 1; + } + start >>>= 0; + end >>>= 0; + thisStart >>>= 0; + thisEnd >>>= 0; + if (this === target) return 0; + let x = thisEnd - thisStart; + let y = end - start; + const len = Math.min(x, y); + const thisCopy = this.slice(thisStart, thisEnd); + const targetCopy = target.slice(start, end); + for (let i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i]; + y = targetCopy[i]; + break; + } + } + if (x < y) return -1; + if (y < x) return 1; + return 0; + }; + function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) { + if (buffer.length === 0) return -1; + if (typeof byteOffset === "string") { + encoding = byteOffset; + byteOffset = 0; + } else if (byteOffset > 2147483647) { + byteOffset = 2147483647; + } else if (byteOffset < -2147483648) { + byteOffset = -2147483648; + } + byteOffset = +byteOffset; + if (numberIsNaN(byteOffset)) { + byteOffset = dir ? 0 : buffer.length - 1; + } + if (byteOffset < 0) byteOffset = buffer.length + byteOffset; + if (byteOffset >= buffer.length) { + if (dir) return -1; + else byteOffset = buffer.length - 1; + } else if (byteOffset < 0) { + if (dir) byteOffset = 0; + else return -1; + } + if (typeof val === "string") { + val = Buffer3.from(val, encoding); + } + if (Buffer3.isBuffer(val)) { + if (val.length === 0) { + return -1; + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir); + } else if (typeof val === "number") { + val = val & 255; + if (typeof Uint8Array.prototype.indexOf === "function") { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset); + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset); + } + } + return arrayIndexOf(buffer, [val], byteOffset, encoding, dir); + } + throw new TypeError("val must be string, number or Buffer"); + } + function arrayIndexOf(arr, val, byteOffset, encoding, dir) { + let indexSize = 1; + let arrLength = arr.length; + let valLength = val.length; + if (encoding !== void 0) { + encoding = String(encoding).toLowerCase(); + if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") { + if (arr.length < 2 || val.length < 2) { + return -1; + } + indexSize = 2; + arrLength /= 2; + valLength /= 2; + byteOffset /= 2; + } + } + function read(buf, i2) { + if (indexSize === 1) { + return buf[i2]; + } else { + return buf.readUInt16BE(i2 * indexSize); + } + } + let i; + if (dir) { + let foundIndex = -1; + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i; + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize; + } else { + if (foundIndex !== -1) i -= i - foundIndex; + foundIndex = -1; + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength; + for (i = byteOffset; i >= 0; i--) { + let found = true; + for (let j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false; + break; + } + } + if (found) return i; + } + } + return -1; + } + Buffer3.prototype.includes = function includes(val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1; + }; + Buffer3.prototype.indexOf = function indexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true); + }; + Buffer3.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false); + }; + function hexWrite(buf, string, offset, length) { + offset = Number(offset) || 0; + const remaining = buf.length - offset; + if (!length) { + length = remaining; + } else { + length = Number(length); + if (length > remaining) { + length = remaining; + } + } + const strLen = string.length; + if (length > strLen / 2) { + length = strLen / 2; + } + let i; + for (i = 0; i < length; ++i) { + const parsed = parseInt(string.substr(i * 2, 2), 16); + if (numberIsNaN(parsed)) return i; + buf[offset + i] = parsed; + } + return i; + } + function utf8Write(buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length); + } + function asciiWrite(buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length); + } + function base64Write(buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length); + } + function ucs2Write(buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length); + } + Buffer3.prototype.write = function write(string, offset, length, encoding) { + if (offset === void 0) { + encoding = "utf8"; + length = this.length; + offset = 0; + } else if (length === void 0 && typeof offset === "string") { + encoding = offset; + length = this.length; + offset = 0; + } else if (isFinite(offset)) { + offset = offset >>> 0; + if (isFinite(length)) { + length = length >>> 0; + if (encoding === void 0) encoding = "utf8"; + } else { + encoding = length; + length = void 0; + } + } else { + throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); + } + const remaining = this.length - offset; + if (length === void 0 || length > remaining) length = remaining; + if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) { + throw new RangeError("Attempt to write outside buffer bounds"); + } + if (!encoding) encoding = "utf8"; + let loweredCase = false; + for (; ; ) { + switch (encoding) { + case "hex": + return hexWrite(this, string, offset, length); + case "utf8": + case "utf-8": + return utf8Write(this, string, offset, length); + case "ascii": + case "latin1": + case "binary": + return asciiWrite(this, string, offset, length); + case "base64": + return base64Write(this, string, offset, length); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return ucs2Write(this, string, offset, length); + default: + if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } + }; + Buffer3.prototype.toJSON = function toJSON() { + return { + type: "Buffer", + data: Array.prototype.slice.call(this._arr || this, 0) + }; + }; + function base64Slice(buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf); + } else { + return base64.fromByteArray(buf.slice(start, end)); + } + } + function utf8Slice(buf, start, end) { + end = Math.min(buf.length, end); + const res = []; + let i = start; + while (i < end) { + const firstByte = buf[i]; + let codePoint = null; + let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1; + if (i + bytesPerSequence <= end) { + let secondByte, thirdByte, fourthByte, tempCodePoint; + switch (bytesPerSequence) { + case 1: + if (firstByte < 128) { + codePoint = firstByte; + } + break; + case 2: + secondByte = buf[i + 1]; + if ((secondByte & 192) === 128) { + tempCodePoint = (firstByte & 31) << 6 | secondByte & 63; + if (tempCodePoint > 127) { + codePoint = tempCodePoint; + } + } + break; + case 3: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) { + tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63; + if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) { + codePoint = tempCodePoint; + } + } + break; + case 4: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + fourthByte = buf[i + 3]; + if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) { + tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63; + if (tempCodePoint > 65535 && tempCodePoint < 1114112) { + codePoint = tempCodePoint; + } + } + } + } + if (codePoint === null) { + codePoint = 65533; + bytesPerSequence = 1; + } else if (codePoint > 65535) { + codePoint -= 65536; + res.push(codePoint >>> 10 & 1023 | 55296); + codePoint = 56320 | codePoint & 1023; + } + res.push(codePoint); + i += bytesPerSequence; + } + return decodeCodePointsArray(res); + } + const MAX_ARGUMENTS_LENGTH = 4096; + function decodeCodePointsArray(codePoints) { + const len = codePoints.length; + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints); + } + let res = ""; + let i = 0; + while (i < len) { + res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)); + } + return res; + } + function asciiSlice(buf, start, end) { + let ret = ""; + end = Math.min(buf.length, end); + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 127); + } + return ret; + } + function latin1Slice(buf, start, end) { + let ret = ""; + end = Math.min(buf.length, end); + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]); + } + return ret; + } + function hexSlice(buf, start, end) { + const len = buf.length; + if (!start || start < 0) start = 0; + if (!end || end < 0 || end > len) end = len; + let out = ""; + for (let i = start; i < end; ++i) { + out += hexSliceLookupTable[buf[i]]; + } + return out; + } + function utf16leSlice(buf, start, end) { + const bytes = buf.slice(start, end); + let res = ""; + for (let i = 0; i < bytes.length - 1; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); + } + return res; + } + Buffer3.prototype.slice = function slice(start, end) { + const len = this.length; + start = ~~start; + end = end === void 0 ? len : ~~end; + if (start < 0) { + start += len; + if (start < 0) start = 0; + } else if (start > len) { + start = len; + } + if (end < 0) { + end += len; + if (end < 0) end = 0; + } else if (end > len) { + end = len; + } + if (end < start) end = start; + const newBuf = this.subarray(start, end); + Object.setPrototypeOf(newBuf, Buffer3.prototype); + return newBuf; + }; + function checkOffset(offset, ext, length) { + if (offset % 1 !== 0 || offset < 0) throw new RangeError("offset is not uint"); + if (offset + ext > length) throw new RangeError("Trying to access beyond buffer length"); + } + Buffer3.prototype.readUintLE = Buffer3.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) checkOffset(offset, byteLength2, this.length); + let val = this[offset]; + let mul = 1; + let i = 0; + while (++i < byteLength2 && (mul *= 256)) { + val += this[offset + i] * mul; + } + return val; + }; + Buffer3.prototype.readUintBE = Buffer3.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + checkOffset(offset, byteLength2, this.length); + } + let val = this[offset + --byteLength2]; + let mul = 1; + while (byteLength2 > 0 && (mul *= 256)) { + val += this[offset + --byteLength2] * mul; + } + return val; + }; + Buffer3.prototype.readUint8 = Buffer3.prototype.readUInt8 = function readUInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 1, this.length); + return this[offset]; + }; + Buffer3.prototype.readUint16LE = Buffer3.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + return this[offset] | this[offset + 1] << 8; + }; + Buffer3.prototype.readUint16BE = Buffer3.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + return this[offset] << 8 | this[offset + 1]; + }; + Buffer3.prototype.readUint32LE = Buffer3.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216; + }; + Buffer3.prototype.readUint32BE = Buffer3.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]); + }; + Buffer3.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first = this[offset]; + const last = this[offset + 7]; + if (first === void 0 || last === void 0) { + boundsError(offset, this.length - 8); + } + const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24; + const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24; + return BigInt(lo) + (BigInt(hi) << BigInt(32)); + }); + Buffer3.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first = this[offset]; + const last = this[offset + 7]; + if (first === void 0 || last === void 0) { + boundsError(offset, this.length - 8); + } + const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset]; + const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last; + return (BigInt(hi) << BigInt(32)) + BigInt(lo); + }); + Buffer3.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) checkOffset(offset, byteLength2, this.length); + let val = this[offset]; + let mul = 1; + let i = 0; + while (++i < byteLength2 && (mul *= 256)) { + val += this[offset + i] * mul; + } + mul *= 128; + if (val >= mul) val -= Math.pow(2, 8 * byteLength2); + return val; + }; + Buffer3.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) checkOffset(offset, byteLength2, this.length); + let i = byteLength2; + let mul = 1; + let val = this[offset + --i]; + while (i > 0 && (mul *= 256)) { + val += this[offset + --i] * mul; + } + mul *= 128; + if (val >= mul) val -= Math.pow(2, 8 * byteLength2); + return val; + }; + Buffer3.prototype.readInt8 = function readInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 1, this.length); + if (!(this[offset] & 128)) return this[offset]; + return (255 - this[offset] + 1) * -1; + }; + Buffer3.prototype.readInt16LE = function readInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + const val = this[offset] | this[offset + 1] << 8; + return val & 32768 ? val | 4294901760 : val; + }; + Buffer3.prototype.readInt16BE = function readInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + const val = this[offset + 1] | this[offset] << 8; + return val & 32768 ? val | 4294901760 : val; + }; + Buffer3.prototype.readInt32LE = function readInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24; + }; + Buffer3.prototype.readInt32BE = function readInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]; + }; + Buffer3.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first = this[offset]; + const last = this[offset + 7]; + if (first === void 0 || last === void 0) { + boundsError(offset, this.length - 8); + } + const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24); + return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24); + }); + Buffer3.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first = this[offset]; + const last = this[offset + 7]; + if (first === void 0 || last === void 0) { + boundsError(offset, this.length - 8); + } + const val = (first << 24) + // Overflow + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset]; + return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last); + }); + Buffer3.prototype.readFloatLE = function readFloatLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, true, 23, 4); + }; + Buffer3.prototype.readFloatBE = function readFloatBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, false, 23, 4); + }; + Buffer3.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, true, 52, 8); + }; + Buffer3.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, false, 52, 8); + }; + function checkInt(buf, value, offset, ext, max, min) { + if (!Buffer3.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance'); + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds'); + if (offset + ext > buf.length) throw new RangeError("Index out of range"); + } + Buffer3.prototype.writeUintLE = Buffer3.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength2) - 1; + checkInt(this, value, offset, byteLength2, maxBytes, 0); + } + let mul = 1; + let i = 0; + this[offset] = value & 255; + while (++i < byteLength2 && (mul *= 256)) { + this[offset + i] = value / mul & 255; + } + return offset + byteLength2; + }; + Buffer3.prototype.writeUintBE = Buffer3.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength2) - 1; + checkInt(this, value, offset, byteLength2, maxBytes, 0); + } + let i = byteLength2 - 1; + let mul = 1; + this[offset + i] = value & 255; + while (--i >= 0 && (mul *= 256)) { + this[offset + i] = value / mul & 255; + } + return offset + byteLength2; + }; + Buffer3.prototype.writeUint8 = Buffer3.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 1, 255, 0); + this[offset] = value & 255; + return offset + 1; + }; + Buffer3.prototype.writeUint16LE = Buffer3.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 65535, 0); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + return offset + 2; + }; + Buffer3.prototype.writeUint16BE = Buffer3.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 65535, 0); + this[offset] = value >>> 8; + this[offset + 1] = value & 255; + return offset + 2; + }; + Buffer3.prototype.writeUint32LE = Buffer3.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0); + this[offset + 3] = value >>> 24; + this[offset + 2] = value >>> 16; + this[offset + 1] = value >>> 8; + this[offset] = value & 255; + return offset + 4; + }; + Buffer3.prototype.writeUint32BE = Buffer3.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0); + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 255; + return offset + 4; + }; + function wrtBigUInt64LE(buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + return offset; + } + function wrtBigUInt64BE(buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset + 7] = lo; + lo = lo >> 8; + buf[offset + 6] = lo; + lo = lo >> 8; + buf[offset + 5] = lo; + lo = lo >> 8; + buf[offset + 4] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset + 3] = hi; + hi = hi >> 8; + buf[offset + 2] = hi; + hi = hi >> 8; + buf[offset + 1] = hi; + hi = hi >> 8; + buf[offset] = hi; + return offset + 8; + } + Buffer3.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff")); + }); + Buffer3.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff")); + }); + Buffer3.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + const limit = Math.pow(2, 8 * byteLength2 - 1); + checkInt(this, value, offset, byteLength2, limit - 1, -limit); + } + let i = 0; + let mul = 1; + let sub = 0; + this[offset] = value & 255; + while (++i < byteLength2 && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1; + } + this[offset + i] = (value / mul >> 0) - sub & 255; + } + return offset + byteLength2; + }; + Buffer3.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + const limit = Math.pow(2, 8 * byteLength2 - 1); + checkInt(this, value, offset, byteLength2, limit - 1, -limit); + } + let i = byteLength2 - 1; + let mul = 1; + let sub = 0; + this[offset + i] = value & 255; + while (--i >= 0 && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1; + } + this[offset + i] = (value / mul >> 0) - sub & 255; + } + return offset + byteLength2; + }; + Buffer3.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 1, 127, -128); + if (value < 0) value = 255 + value + 1; + this[offset] = value & 255; + return offset + 1; + }; + Buffer3.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + return offset + 2; + }; + Buffer3.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768); + this[offset] = value >>> 8; + this[offset + 1] = value & 255; + return offset + 2; + }; + Buffer3.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + this[offset + 2] = value >>> 16; + this[offset + 3] = value >>> 24; + return offset + 4; + }; + Buffer3.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648); + if (value < 0) value = 4294967295 + value + 1; + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 255; + return offset + 4; + }; + Buffer3.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")); + }); + Buffer3.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")); + }); + function checkIEEE754(buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError("Index out of range"); + if (offset < 0) throw new RangeError("Index out of range"); + } + function writeFloat(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 4); + } + ieee754.write(buf, value, offset, littleEndian, 23, 4); + return offset + 4; + } + Buffer3.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert); + }; + Buffer3.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert); + }; + function writeDouble(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 8); + } + ieee754.write(buf, value, offset, littleEndian, 52, 8); + return offset + 8; + } + Buffer3.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert); + }; + Buffer3.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert); + }; + Buffer3.prototype.copy = function copy(target, targetStart, start, end) { + if (!Buffer3.isBuffer(target)) throw new TypeError("argument should be a Buffer"); + if (!start) start = 0; + if (!end && end !== 0) end = this.length; + if (targetStart >= target.length) targetStart = target.length; + if (!targetStart) targetStart = 0; + if (end > 0 && end < start) end = start; + if (end === start) return 0; + if (target.length === 0 || this.length === 0) return 0; + if (targetStart < 0) { + throw new RangeError("targetStart out of bounds"); + } + if (start < 0 || start >= this.length) throw new RangeError("Index out of range"); + if (end < 0) throw new RangeError("sourceEnd out of bounds"); + if (end > this.length) end = this.length; + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start; + } + const len = end - start; + if (this === target && typeof Uint8Array.prototype.copyWithin === "function") { + this.copyWithin(targetStart, start, end); + } else { + Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart); + } + return len; + }; + Buffer3.prototype.fill = function fill(val, start, end, encoding) { + if (typeof val === "string") { + if (typeof start === "string") { + encoding = start; + start = 0; + end = this.length; + } else if (typeof end === "string") { + encoding = end; + end = this.length; + } + if (encoding !== void 0 && typeof encoding !== "string") { + throw new TypeError("encoding must be a string"); + } + if (typeof encoding === "string" && !Buffer3.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + if (val.length === 1) { + const code = val.charCodeAt(0); + if (encoding === "utf8" && code < 128 || encoding === "latin1") { + val = code; + } + } + } else if (typeof val === "number") { + val = val & 255; + } else if (typeof val === "boolean") { + val = Number(val); + } + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError("Out of range index"); + } + if (end <= start) { + return this; + } + start = start >>> 0; + end = end === void 0 ? this.length : end >>> 0; + if (!val) val = 0; + let i; + if (typeof val === "number") { + for (i = start; i < end; ++i) { + this[i] = val; + } + } else { + const bytes = Buffer3.isBuffer(val) ? val : Buffer3.from(val, encoding); + const len = bytes.length; + if (len === 0) { + throw new TypeError('The value "' + val + '" is invalid for argument "value"'); + } + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len]; + } + } + return this; + }; + const errors = {}; + function E(sym, getMessage, Base) { + errors[sym] = class NodeError extends Base { + constructor() { + super(); + Object.defineProperty(this, "message", { + value: getMessage.apply(this, arguments), + writable: true, + configurable: true + }); + this.name = `${this.name} [${sym}]`; + this.stack; + delete this.name; + } + get code() { + return sym; + } + set code(value) { + Object.defineProperty(this, "code", { + configurable: true, + enumerable: true, + value, + writable: true + }); + } + toString() { + return `${this.name} [${sym}]: ${this.message}`; + } + }; + } + E("ERR_BUFFER_OUT_OF_BOUNDS", function(name2) { + if (name2) { + return `${name2} is outside of buffer bounds`; + } + return "Attempt to access memory outside buffer bounds"; + }, RangeError); + E("ERR_INVALID_ARG_TYPE", function(name2, actual) { + return `The "${name2}" argument must be of type number. Received type ${typeof actual}`; + }, TypeError); + E("ERR_OUT_OF_RANGE", function(str, range, input) { + let msg = `The value of "${str}" is out of range.`; + let received = input; + if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) { + received = addNumericalSeparator(String(input)); + } else if (typeof input === "bigint") { + received = String(input); + if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) { + received = addNumericalSeparator(received); + } + received += "n"; + } + msg += ` It must be ${range}. Received ${received}`; + return msg; + }, RangeError); + function addNumericalSeparator(val) { + let res = ""; + let i = val.length; + const start = val[0] === "-" ? 1 : 0; + for (; i >= start + 4; i -= 3) { + res = `_${val.slice(i - 3, i)}${res}`; + } + return `${val.slice(0, i)}${res}`; + } + function checkBounds(buf, offset, byteLength2) { + validateNumber(offset, "offset"); + if (buf[offset] === void 0 || buf[offset + byteLength2] === void 0) { + boundsError(offset, buf.length - (byteLength2 + 1)); + } + } + function checkIntBI(value, min, max, buf, offset, byteLength2) { + if (value > max || value < min) { + const n = typeof min === "bigint" ? "n" : ""; + let range; + { + if (min === 0 || min === BigInt(0)) { + range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`; + } else { + range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`; + } + } + throw new errors.ERR_OUT_OF_RANGE("value", range, value); + } + checkBounds(buf, offset, byteLength2); + } + function validateNumber(value, name2) { + if (typeof value !== "number") { + throw new errors.ERR_INVALID_ARG_TYPE(name2, "number", value); + } + } + function boundsError(value, length, type) { + if (Math.floor(value) !== value) { + validateNumber(value, type); + throw new errors.ERR_OUT_OF_RANGE("offset", "an integer", value); + } + if (length < 0) { + throw new errors.ERR_BUFFER_OUT_OF_BOUNDS(); + } + throw new errors.ERR_OUT_OF_RANGE("offset", `>= ${0} and <= ${length}`, value); + } + const INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g; + function base64clean(str) { + str = str.split("=")[0]; + str = str.trim().replace(INVALID_BASE64_RE, ""); + if (str.length < 2) return ""; + while (str.length % 4 !== 0) { + str = str + "="; + } + return str; + } + function utf8ToBytes(string, units) { + units = units || Infinity; + let codePoint; + const length = string.length; + let leadSurrogate = null; + const bytes = []; + for (let i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i); + if (codePoint > 55295 && codePoint < 57344) { + if (!leadSurrogate) { + if (codePoint > 56319) { + if ((units -= 3) > -1) bytes.push(239, 191, 189); + continue; + } else if (i + 1 === length) { + if ((units -= 3) > -1) bytes.push(239, 191, 189); + continue; + } + leadSurrogate = codePoint; + continue; + } + if (codePoint < 56320) { + if ((units -= 3) > -1) bytes.push(239, 191, 189); + leadSurrogate = codePoint; + continue; + } + codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536; + } else if (leadSurrogate) { + if ((units -= 3) > -1) bytes.push(239, 191, 189); + } + leadSurrogate = null; + if (codePoint < 128) { + if ((units -= 1) < 0) break; + bytes.push(codePoint); + } else if (codePoint < 2048) { + if ((units -= 2) < 0) break; + bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128); + } else if (codePoint < 65536) { + if ((units -= 3) < 0) break; + bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128); + } else if (codePoint < 1114112) { + if ((units -= 4) < 0) break; + bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128); + } else { + throw new Error("Invalid code point"); + } + } + return bytes; + } + function asciiToBytes(str) { + const byteArray = []; + for (let i = 0; i < str.length; ++i) { + byteArray.push(str.charCodeAt(i) & 255); + } + return byteArray; + } + function utf16leToBytes(str, units) { + let c, hi, lo; + const byteArray = []; + for (let i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break; + c = str.charCodeAt(i); + hi = c >> 8; + lo = c % 256; + byteArray.push(lo); + byteArray.push(hi); + } + return byteArray; + } + function base64ToBytes(str) { + return base64.toByteArray(base64clean(str)); + } + function blitBuffer(src, dst, offset, length) { + let i; + for (i = 0; i < length; ++i) { + if (i + offset >= dst.length || i >= src.length) break; + dst[i + offset] = src[i]; + } + return i; + } + function isInstance(obj, type) { + return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name; + } + function numberIsNaN(obj) { + return obj !== obj; + } + const hexSliceLookupTable = function() { + const alphabet = "0123456789abcdef"; + const table = new Array(256); + for (let i = 0; i < 16; ++i) { + const i16 = i * 16; + for (let j = 0; j < 16; ++j) { + table[i16 + j] = alphabet[i] + alphabet[j]; + } + } + return table; + }(); + function defineBigIntMethod(fn) { + return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn; + } + function BufferBigIntNotDefined() { + throw new Error("BigInt not supported"); + } + return exports; + } + var exports$2, _dewExec$2, exports$1, _dewExec$1, exports, _dewExec; + var init_chunk_DtuTasat = __esm({ + "node_modules/@jspm/core/nodelibs/browser/chunk-DtuTasat.js"() { + init_dirname(); + init_buffer2(); + init_process2(); + exports$2 = {}; + _dewExec$2 = false; + exports$1 = {}; + _dewExec$1 = false; + exports = {}; + _dewExec = false; + } + }); + + // node_modules/@jspm/core/nodelibs/browser/buffer.js + var buffer_exports = {}; + __export(buffer_exports, { + Buffer: () => Buffer2, + INSPECT_MAX_BYTES: () => INSPECT_MAX_BYTES, + default: () => exports2, + kMaxLength: () => kMaxLength + }); + var exports2, Buffer2, INSPECT_MAX_BYTES, kMaxLength; + var init_buffer = __esm({ + "node_modules/@jspm/core/nodelibs/browser/buffer.js"() { + init_dirname(); + init_buffer2(); + init_process2(); + init_chunk_DtuTasat(); + exports2 = dew(); + exports2["Buffer"]; + exports2["SlowBuffer"]; + exports2["INSPECT_MAX_BYTES"]; + exports2["kMaxLength"]; + Buffer2 = exports2.Buffer; + INSPECT_MAX_BYTES = exports2.INSPECT_MAX_BYTES; + kMaxLength = exports2.kMaxLength; + } + }); + + // node_modules/esbuild-plugin-polyfill-node/polyfills/buffer.js + var init_buffer2 = __esm({ + "node_modules/esbuild-plugin-polyfill-node/polyfills/buffer.js"() { + init_buffer(); + } + }); + + // node_modules/readable-stream/lib/ours/primordials.js + var require_primordials = __commonJS({ + "node_modules/readable-stream/lib/ours/primordials.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var AggregateError2 = class extends Error { + constructor(errors) { + if (!Array.isArray(errors)) { + throw new TypeError(`Expected input to be an Array, got ${typeof errors}`); + } + let message = ""; + for (let i = 0; i < errors.length; i++) { + message += ` ${errors[i].stack} +`; + } + super(message); + this.name = "AggregateError"; + this.errors = errors; + } + }; + module.exports = { + AggregateError: AggregateError2, + ArrayIsArray(self2) { + return Array.isArray(self2); + }, + ArrayPrototypeIncludes(self2, el) { + return self2.includes(el); + }, + ArrayPrototypeIndexOf(self2, el) { + return self2.indexOf(el); + }, + ArrayPrototypeJoin(self2, sep) { + return self2.join(sep); + }, + ArrayPrototypeMap(self2, fn) { + return self2.map(fn); + }, + ArrayPrototypePop(self2, el) { + return self2.pop(el); + }, + ArrayPrototypePush(self2, el) { + return self2.push(el); + }, + ArrayPrototypeSlice(self2, start, end) { + return self2.slice(start, end); + }, + Error, + FunctionPrototypeCall(fn, thisArgs, ...args) { + return fn.call(thisArgs, ...args); + }, + FunctionPrototypeSymbolHasInstance(self2, instance) { + return Function.prototype[Symbol.hasInstance].call(self2, instance); + }, + MathFloor: Math.floor, + Number, + NumberIsInteger: Number.isInteger, + NumberIsNaN: Number.isNaN, + NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER, + NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER, + NumberParseInt: Number.parseInt, + ObjectDefineProperties(self2, props) { + return Object.defineProperties(self2, props); + }, + ObjectDefineProperty(self2, name2, prop) { + return Object.defineProperty(self2, name2, prop); + }, + ObjectGetOwnPropertyDescriptor(self2, name2) { + return Object.getOwnPropertyDescriptor(self2, name2); + }, + ObjectKeys(obj) { + return Object.keys(obj); + }, + ObjectSetPrototypeOf(target, proto) { + return Object.setPrototypeOf(target, proto); + }, + Promise, + PromisePrototypeCatch(self2, fn) { + return self2.catch(fn); + }, + PromisePrototypeThen(self2, thenFn, catchFn) { + return self2.then(thenFn, catchFn); + }, + PromiseReject(err) { + return Promise.reject(err); + }, + PromiseResolve(val) { + return Promise.resolve(val); + }, + ReflectApply: Reflect.apply, + RegExpPrototypeTest(self2, value) { + return self2.test(value); + }, + SafeSet: Set, + String, + StringPrototypeSlice(self2, start, end) { + return self2.slice(start, end); + }, + StringPrototypeToLowerCase(self2) { + return self2.toLowerCase(); + }, + StringPrototypeToUpperCase(self2) { + return self2.toUpperCase(); + }, + StringPrototypeTrim(self2) { + return self2.trim(); + }, + Symbol, + SymbolFor: Symbol.for, + SymbolAsyncIterator: Symbol.asyncIterator, + SymbolHasInstance: Symbol.hasInstance, + SymbolIterator: Symbol.iterator, + SymbolDispose: Symbol.dispose || Symbol("Symbol.dispose"), + SymbolAsyncDispose: Symbol.asyncDispose || Symbol("Symbol.asyncDispose"), + TypedArrayPrototypeSet(self2, buf, len) { + return self2.set(buf, len); + }, + Boolean, + Uint8Array + }; + } + }); + + // node_modules/readable-stream/lib/ours/util/inspect.js + var require_inspect = __commonJS({ + "node_modules/readable-stream/lib/ours/util/inspect.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + module.exports = { + format(format2, ...args) { + return format2.replace(/%([sdifj])/g, function(...[_unused, type]) { + const replacement = args.shift(); + if (type === "f") { + return replacement.toFixed(6); + } else if (type === "j") { + return JSON.stringify(replacement); + } else if (type === "s" && typeof replacement === "object") { + const ctor = replacement.constructor !== Object ? replacement.constructor.name : ""; + return `${ctor} {}`.trim(); + } else { + return replacement.toString(); + } + }); + }, + inspect(value) { + switch (typeof value) { + case "string": + if (value.includes("'")) { + if (!value.includes('"')) { + return `"${value}"`; + } else if (!value.includes("`") && !value.includes("${")) { + return `\`${value}\``; + } + } + return `'${value}'`; + case "number": + if (isNaN(value)) { + return "NaN"; + } else if (Object.is(value, -0)) { + return String(value); + } + return value; + case "bigint": + return `${String(value)}n`; + case "boolean": + case "undefined": + return String(value); + case "object": + return "{}"; + } + } + }; + } + }); + + // node_modules/readable-stream/lib/ours/errors.js + var require_errors = __commonJS({ + "node_modules/readable-stream/lib/ours/errors.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { format: format2, inspect } = require_inspect(); + var { AggregateError: CustomAggregateError } = require_primordials(); + var AggregateError2 = globalThis.AggregateError || CustomAggregateError; + var kIsNodeError = Symbol("kIsNodeError"); + var kTypes = [ + "string", + "function", + "number", + "object", + // Accept 'Function' and 'Object' as alternative to the lower cased version. + "Function", + "Object", + "boolean", + "bigint", + "symbol" + ]; + var classRegExp = /^([A-Z][a-z0-9]*)+$/; + var nodeInternalPrefix = "__node_internal_"; + var codes = {}; + function assert3(value, message) { + if (!value) { + throw new codes.ERR_INTERNAL_ASSERTION(message); + } + } + function addNumericalSeparator(val) { + let res = ""; + let i = val.length; + const start = val[0] === "-" ? 1 : 0; + for (; i >= start + 4; i -= 3) { + res = `_${val.slice(i - 3, i)}${res}`; + } + return `${val.slice(0, i)}${res}`; + } + function getMessage(key, msg, args) { + if (typeof msg === "function") { + assert3( + msg.length <= args.length, + // Default options do not count. + `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).` + ); + return msg(...args); + } + const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length; + assert3( + expectedLength === args.length, + `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).` + ); + if (args.length === 0) { + return msg; + } + return format2(msg, ...args); + } + function E(code, message, Base) { + if (!Base) { + Base = Error; + } + class NodeError extends Base { + constructor(...args) { + super(getMessage(code, message, args)); + } + toString() { + return `${this.name} [${code}]: ${this.message}`; + } + } + Object.defineProperties(NodeError.prototype, { + name: { + value: Base.name, + writable: true, + enumerable: false, + configurable: true + }, + toString: { + value() { + return `${this.name} [${code}]: ${this.message}`; + }, + writable: true, + enumerable: false, + configurable: true + } + }); + NodeError.prototype.code = code; + NodeError.prototype[kIsNodeError] = true; + codes[code] = NodeError; + } + function hideStackFrames(fn) { + const hidden = nodeInternalPrefix + fn.name; + Object.defineProperty(fn, "name", { + value: hidden + }); + return fn; + } + function aggregateTwoErrors(innerError, outerError) { + if (innerError && outerError && innerError !== outerError) { + if (Array.isArray(outerError.errors)) { + outerError.errors.push(innerError); + return outerError; + } + const err = new AggregateError2([outerError, innerError], outerError.message); + err.code = outerError.code; + return err; + } + return innerError || outerError; + } + var AbortError = class extends Error { + constructor(message = "The operation was aborted", options = void 0) { + if (options !== void 0 && typeof options !== "object") { + throw new codes.ERR_INVALID_ARG_TYPE("options", "Object", options); + } + super(message, options); + this.code = "ABORT_ERR"; + this.name = "AbortError"; + } + }; + E("ERR_ASSERTION", "%s", Error); + E( + "ERR_INVALID_ARG_TYPE", + (name2, expected, actual) => { + assert3(typeof name2 === "string", "'name' must be a string"); + if (!Array.isArray(expected)) { + expected = [expected]; + } + let msg = "The "; + if (name2.endsWith(" argument")) { + msg += `${name2} `; + } else { + msg += `"${name2}" ${name2.includes(".") ? "property" : "argument"} `; + } + msg += "must be "; + const types = []; + const instances = []; + const other = []; + for (const value of expected) { + assert3(typeof value === "string", "All expected entries have to be of type string"); + if (kTypes.includes(value)) { + types.push(value.toLowerCase()); + } else if (classRegExp.test(value)) { + instances.push(value); + } else { + assert3(value !== "object", 'The value "object" should be written as "Object"'); + other.push(value); + } + } + if (instances.length > 0) { + const pos = types.indexOf("object"); + if (pos !== -1) { + types.splice(types, pos, 1); + instances.push("Object"); + } + } + if (types.length > 0) { + switch (types.length) { + case 1: + msg += `of type ${types[0]}`; + break; + case 2: + msg += `one of type ${types[0]} or ${types[1]}`; + break; + default: { + const last = types.pop(); + msg += `one of type ${types.join(", ")}, or ${last}`; + } + } + if (instances.length > 0 || other.length > 0) { + msg += " or "; + } + } + if (instances.length > 0) { + switch (instances.length) { + case 1: + msg += `an instance of ${instances[0]}`; + break; + case 2: + msg += `an instance of ${instances[0]} or ${instances[1]}`; + break; + default: { + const last = instances.pop(); + msg += `an instance of ${instances.join(", ")}, or ${last}`; + } + } + if (other.length > 0) { + msg += " or "; + } + } + switch (other.length) { + case 0: + break; + case 1: + if (other[0].toLowerCase() !== other[0]) { + msg += "an "; + } + msg += `${other[0]}`; + break; + case 2: + msg += `one of ${other[0]} or ${other[1]}`; + break; + default: { + const last = other.pop(); + msg += `one of ${other.join(", ")}, or ${last}`; + } + } + if (actual == null) { + msg += `. Received ${actual}`; + } else if (typeof actual === "function" && actual.name) { + msg += `. Received function ${actual.name}`; + } else if (typeof actual === "object") { + var _actual$constructor; + if ((_actual$constructor = actual.constructor) !== null && _actual$constructor !== void 0 && _actual$constructor.name) { + msg += `. Received an instance of ${actual.constructor.name}`; + } else { + const inspected = inspect(actual, { + depth: -1 + }); + msg += `. Received ${inspected}`; + } + } else { + let inspected = inspect(actual, { + colors: false + }); + if (inspected.length > 25) { + inspected = `${inspected.slice(0, 25)}...`; + } + msg += `. Received type ${typeof actual} (${inspected})`; + } + return msg; + }, + TypeError + ); + E( + "ERR_INVALID_ARG_VALUE", + (name2, value, reason = "is invalid") => { + let inspected = inspect(value); + if (inspected.length > 128) { + inspected = inspected.slice(0, 128) + "..."; + } + const type = name2.includes(".") ? "property" : "argument"; + return `The ${type} '${name2}' ${reason}. Received ${inspected}`; + }, + TypeError + ); + E( + "ERR_INVALID_RETURN_VALUE", + (input, name2, value) => { + var _value$constructor; + const type = value !== null && value !== void 0 && (_value$constructor = value.constructor) !== null && _value$constructor !== void 0 && _value$constructor.name ? `instance of ${value.constructor.name}` : `type ${typeof value}`; + return `Expected ${input} to be returned from the "${name2}" function but got ${type}.`; + }, + TypeError + ); + E( + "ERR_MISSING_ARGS", + (...args) => { + assert3(args.length > 0, "At least one arg needs to be specified"); + let msg; + const len = args.length; + args = (Array.isArray(args) ? args : [args]).map((a) => `"${a}"`).join(" or "); + switch (len) { + case 1: + msg += `The ${args[0]} argument`; + break; + case 2: + msg += `The ${args[0]} and ${args[1]} arguments`; + break; + default: + { + const last = args.pop(); + msg += `The ${args.join(", ")}, and ${last} arguments`; + } + break; + } + return `${msg} must be specified`; + }, + TypeError + ); + E( + "ERR_OUT_OF_RANGE", + (str, range, input) => { + assert3(range, 'Missing "range" argument'); + let received; + if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) { + received = addNumericalSeparator(String(input)); + } else if (typeof input === "bigint") { + received = String(input); + const limit = BigInt(2) ** BigInt(32); + if (input > limit || input < -limit) { + received = addNumericalSeparator(received); + } + received += "n"; + } else { + received = inspect(input); + } + return `The value of "${str}" is out of range. It must be ${range}. Received ${received}`; + }, + RangeError + ); + E("ERR_MULTIPLE_CALLBACK", "Callback called multiple times", Error); + E("ERR_METHOD_NOT_IMPLEMENTED", "The %s method is not implemented", Error); + E("ERR_STREAM_ALREADY_FINISHED", "Cannot call %s after a stream was finished", Error); + E("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable", Error); + E("ERR_STREAM_DESTROYED", "Cannot call %s after a stream was destroyed", Error); + E("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError); + E("ERR_STREAM_PREMATURE_CLOSE", "Premature close", Error); + E("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF", Error); + E("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event", Error); + E("ERR_STREAM_WRITE_AFTER_END", "write after end", Error); + E("ERR_UNKNOWN_ENCODING", "Unknown encoding: %s", TypeError); + module.exports = { + AbortError, + aggregateTwoErrors: hideStackFrames(aggregateTwoErrors), + hideStackFrames, + codes + }; + } + }); + + // node_modules/abort-controller/browser.js + var require_browser = __commonJS({ + "node_modules/abort-controller/browser.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { AbortController, AbortSignal } = typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : ( + /* otherwise */ + void 0 + ); + module.exports = AbortController; + module.exports.AbortSignal = AbortSignal; + module.exports.default = AbortController; + } + }); + + // node_modules/@jspm/core/nodelibs/browser/events.js + var events_exports = {}; + __export(events_exports, { + EventEmitter: () => EventEmitter, + default: () => exports3, + defaultMaxListeners: () => defaultMaxListeners, + init: () => init, + listenerCount: () => listenerCount, + on: () => on2, + once: () => once2 + }); + function dew2() { + if (_dewExec2) return exports$12; + _dewExec2 = true; + var R = typeof Reflect === "object" ? Reflect : null; + var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) { + return Function.prototype.apply.call(target, receiver, args); + }; + var ReflectOwnKeys; + if (R && typeof R.ownKeys === "function") { + ReflectOwnKeys = R.ownKeys; + } else if (Object.getOwnPropertySymbols) { + ReflectOwnKeys = function ReflectOwnKeys2(target) { + return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target)); + }; + } else { + ReflectOwnKeys = function ReflectOwnKeys2(target) { + return Object.getOwnPropertyNames(target); + }; + } + function ProcessEmitWarning(warning) { + if (console && console.warn) console.warn(warning); + } + var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) { + return value !== value; + }; + function EventEmitter2() { + EventEmitter2.init.call(this); + } + exports$12 = EventEmitter2; + exports$12.once = once4; + EventEmitter2.EventEmitter = EventEmitter2; + EventEmitter2.prototype._events = void 0; + EventEmitter2.prototype._eventsCount = 0; + EventEmitter2.prototype._maxListeners = void 0; + var defaultMaxListeners2 = 10; + function checkListener(listener) { + if (typeof listener !== "function") { + throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener); + } + } + Object.defineProperty(EventEmitter2, "defaultMaxListeners", { + enumerable: true, + get: function() { + return defaultMaxListeners2; + }, + set: function(arg) { + if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) { + throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + "."); + } + defaultMaxListeners2 = arg; + } + }); + EventEmitter2.init = function() { + if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) { + this._events = /* @__PURE__ */ Object.create(null); + this._eventsCount = 0; + } + this._maxListeners = this._maxListeners || void 0; + }; + EventEmitter2.prototype.setMaxListeners = function setMaxListeners(n) { + if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) { + throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + "."); + } + this._maxListeners = n; + return this; + }; + function _getMaxListeners(that) { + if (that._maxListeners === void 0) return EventEmitter2.defaultMaxListeners; + return that._maxListeners; + } + EventEmitter2.prototype.getMaxListeners = function getMaxListeners() { + return _getMaxListeners(this); + }; + EventEmitter2.prototype.emit = function emit3(type) { + var args = []; + for (var i = 1; i < arguments.length; i++) args.push(arguments[i]); + var doError = type === "error"; + var events = this._events; + if (events !== void 0) doError = doError && events.error === void 0; + else if (!doError) return false; + if (doError) { + var er; + if (args.length > 0) er = args[0]; + if (er instanceof Error) { + throw er; + } + var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : "")); + err.context = er; + throw err; + } + var handler = events[type]; + if (handler === void 0) return false; + if (typeof handler === "function") { + ReflectApply(handler, this, args); + } else { + var len = handler.length; + var listeners3 = arrayClone(handler, len); + for (var i = 0; i < len; ++i) ReflectApply(listeners3[i], this, args); + } + return true; + }; + function _addListener(target, type, listener, prepend) { + var m; + var events; + var existing; + checkListener(listener); + events = target._events; + if (events === void 0) { + events = target._events = /* @__PURE__ */ Object.create(null); + target._eventsCount = 0; + } else { + if (events.newListener !== void 0) { + target.emit("newListener", type, listener.listener ? listener.listener : listener); + events = target._events; + } + existing = events[type]; + } + if (existing === void 0) { + existing = events[type] = listener; + ++target._eventsCount; + } else { + if (typeof existing === "function") { + existing = events[type] = prepend ? [listener, existing] : [existing, listener]; + } else if (prepend) { + existing.unshift(listener); + } else { + existing.push(listener); + } + m = _getMaxListeners(target); + if (m > 0 && existing.length > m && !existing.warned) { + existing.warned = true; + var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit"); + w.name = "MaxListenersExceededWarning"; + w.emitter = target; + w.type = type; + w.count = existing.length; + ProcessEmitWarning(w); + } + } + return target; + } + EventEmitter2.prototype.addListener = function addListener3(type, listener) { + return _addListener(this, type, listener, false); + }; + EventEmitter2.prototype.on = EventEmitter2.prototype.addListener; + EventEmitter2.prototype.prependListener = function prependListener3(type, listener) { + return _addListener(this, type, listener, true); + }; + function onceWrapper() { + if (!this.fired) { + this.target.removeListener(this.type, this.wrapFn); + this.fired = true; + if (arguments.length === 0) return this.listener.call(this.target); + return this.listener.apply(this.target, arguments); + } + } + function _onceWrap(target, type, listener) { + var state = { + fired: false, + wrapFn: void 0, + target, + type, + listener + }; + var wrapped = onceWrapper.bind(state); + wrapped.listener = listener; + state.wrapFn = wrapped; + return wrapped; + } + EventEmitter2.prototype.once = function once5(type, listener) { + checkListener(listener); + this.on(type, _onceWrap(this, type, listener)); + return this; + }; + EventEmitter2.prototype.prependOnceListener = function prependOnceListener3(type, listener) { + checkListener(listener); + this.prependListener(type, _onceWrap(this, type, listener)); + return this; + }; + EventEmitter2.prototype.removeListener = function removeListener3(type, listener) { + var list, events, position, i, originalListener; + checkListener(listener); + events = this._events; + if (events === void 0) return this; + list = events[type]; + if (list === void 0) return this; + if (list === listener || list.listener === listener) { + if (--this._eventsCount === 0) this._events = /* @__PURE__ */ Object.create(null); + else { + delete events[type]; + if (events.removeListener) this.emit("removeListener", type, list.listener || listener); + } + } else if (typeof list !== "function") { + position = -1; + for (i = list.length - 1; i >= 0; i--) { + if (list[i] === listener || list[i].listener === listener) { + originalListener = list[i].listener; + position = i; + break; + } + } + if (position < 0) return this; + if (position === 0) list.shift(); + else { + spliceOne(list, position); + } + if (list.length === 1) events[type] = list[0]; + if (events.removeListener !== void 0) this.emit("removeListener", type, originalListener || listener); + } + return this; + }; + EventEmitter2.prototype.off = EventEmitter2.prototype.removeListener; + EventEmitter2.prototype.removeAllListeners = function removeAllListeners3(type) { + var listeners3, events, i; + events = this._events; + if (events === void 0) return this; + if (events.removeListener === void 0) { + if (arguments.length === 0) { + this._events = /* @__PURE__ */ Object.create(null); + this._eventsCount = 0; + } else if (events[type] !== void 0) { + if (--this._eventsCount === 0) this._events = /* @__PURE__ */ Object.create(null); + else delete events[type]; + } + return this; + } + if (arguments.length === 0) { + var keys = Object.keys(events); + var key; + for (i = 0; i < keys.length; ++i) { + key = keys[i]; + if (key === "removeListener") continue; + this.removeAllListeners(key); + } + this.removeAllListeners("removeListener"); + this._events = /* @__PURE__ */ Object.create(null); + this._eventsCount = 0; + return this; + } + listeners3 = events[type]; + if (typeof listeners3 === "function") { + this.removeListener(type, listeners3); + } else if (listeners3 !== void 0) { + for (i = listeners3.length - 1; i >= 0; i--) { + this.removeListener(type, listeners3[i]); + } + } + return this; + }; + function _listeners(target, type, unwrap) { + var events = target._events; + if (events === void 0) return []; + var evlistener = events[type]; + if (evlistener === void 0) return []; + if (typeof evlistener === "function") return unwrap ? [evlistener.listener || evlistener] : [evlistener]; + return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length); + } + EventEmitter2.prototype.listeners = function listeners3(type) { + return _listeners(this, type, true); + }; + EventEmitter2.prototype.rawListeners = function rawListeners(type) { + return _listeners(this, type, false); + }; + EventEmitter2.listenerCount = function(emitter, type) { + if (typeof emitter.listenerCount === "function") { + return emitter.listenerCount(type); + } else { + return listenerCount2.call(emitter, type); + } + }; + EventEmitter2.prototype.listenerCount = listenerCount2; + function listenerCount2(type) { + var events = this._events; + if (events !== void 0) { + var evlistener = events[type]; + if (typeof evlistener === "function") { + return 1; + } else if (evlistener !== void 0) { + return evlistener.length; + } + } + return 0; + } + EventEmitter2.prototype.eventNames = function eventNames() { + return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : []; + }; + function arrayClone(arr, n) { + var copy = new Array(n); + for (var i = 0; i < n; ++i) copy[i] = arr[i]; + return copy; + } + function spliceOne(list, index) { + for (; index + 1 < list.length; index++) list[index] = list[index + 1]; + list.pop(); + } + function unwrapListeners(arr) { + var ret = new Array(arr.length); + for (var i = 0; i < ret.length; ++i) { + ret[i] = arr[i].listener || arr[i]; + } + return ret; + } + function once4(emitter, name2) { + return new Promise(function(resolve2, reject) { + function errorListener(err) { + emitter.removeListener(name2, resolver); + reject(err); + } + function resolver() { + if (typeof emitter.removeListener === "function") { + emitter.removeListener("error", errorListener); + } + resolve2([].slice.call(arguments)); + } + eventTargetAgnosticAddListener(emitter, name2, resolver, { + once: true + }); + if (name2 !== "error") { + addErrorHandlerIfEventEmitter(emitter, errorListener, { + once: true + }); + } + }); + } + function addErrorHandlerIfEventEmitter(emitter, handler, flags) { + if (typeof emitter.on === "function") { + eventTargetAgnosticAddListener(emitter, "error", handler, flags); + } + } + function eventTargetAgnosticAddListener(emitter, name2, listener, flags) { + if (typeof emitter.on === "function") { + if (flags.once) { + emitter.once(name2, listener); + } else { + emitter.on(name2, listener); + } + } else if (typeof emitter.addEventListener === "function") { + emitter.addEventListener(name2, function wrapListener(arg) { + if (flags.once) { + emitter.removeEventListener(name2, wrapListener); + } + listener(arg); + }); + } else { + throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter); + } + } + return exports$12; + } + var exports$12, _dewExec2, exports3, EventEmitter, defaultMaxListeners, init, listenerCount, on2, once2; + var init_events = __esm({ + "node_modules/@jspm/core/nodelibs/browser/events.js"() { + init_dirname(); + init_buffer2(); + init_process2(); + exports$12 = {}; + _dewExec2 = false; + exports3 = dew2(); + exports3["once"]; + exports3.once = function(emitter, event) { + return new Promise((resolve2, reject) => { + function eventListener(...args) { + if (errorListener !== void 0) { + emitter.removeListener("error", errorListener); + } + resolve2(args); + } + let errorListener; + if (event !== "error") { + errorListener = (err) => { + emitter.removeListener(name, eventListener); + reject(err); + }; + emitter.once("error", errorListener); + } + emitter.once(event, eventListener); + }); + }; + exports3.on = function(emitter, event) { + const unconsumedEventValues = []; + const unconsumedPromises = []; + let error = null; + let finished = false; + const iterator = { + async next() { + const value = unconsumedEventValues.shift(); + if (value) { + return createIterResult(value, false); + } + if (error) { + const p = Promise.reject(error); + error = null; + return p; + } + if (finished) { + return createIterResult(void 0, true); + } + return new Promise((resolve2, reject) => unconsumedPromises.push({ resolve: resolve2, reject })); + }, + async return() { + emitter.removeListener(event, eventHandler); + emitter.removeListener("error", errorHandler); + finished = true; + for (const promise of unconsumedPromises) { + promise.resolve(createIterResult(void 0, true)); + } + return createIterResult(void 0, true); + }, + throw(err) { + error = err; + emitter.removeListener(event, eventHandler); + emitter.removeListener("error", errorHandler); + }, + [Symbol.asyncIterator]() { + return this; + } + }; + emitter.on(event, eventHandler); + emitter.on("error", errorHandler); + return iterator; + function eventHandler(...args) { + const promise = unconsumedPromises.shift(); + if (promise) { + promise.resolve(createIterResult(args, false)); + } else { + unconsumedEventValues.push(args); + } + } + function errorHandler(err) { + finished = true; + const toError = unconsumedPromises.shift(); + if (toError) { + toError.reject(err); + } else { + error = err; + } + iterator.return(); + } + }; + ({ + EventEmitter, + defaultMaxListeners, + init, + listenerCount, + on: on2, + once: once2 + } = exports3); + } + }); + + // node_modules/readable-stream/lib/ours/util.js + var require_util = __commonJS({ + "node_modules/readable-stream/lib/ours/util.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var bufferModule = (init_buffer(), __toCommonJS(buffer_exports)); + var { format: format2, inspect } = require_inspect(); + var { + codes: { ERR_INVALID_ARG_TYPE } + } = require_errors(); + var { kResistStopPropagation, AggregateError: AggregateError2, SymbolDispose } = require_primordials(); + var AbortSignal = globalThis.AbortSignal || require_browser().AbortSignal; + var AbortController = globalThis.AbortController || require_browser().AbortController; + var AsyncFunction = Object.getPrototypeOf(async function() { + }).constructor; + var Blob2 = globalThis.Blob || bufferModule.Blob; + var isBlob = typeof Blob2 !== "undefined" ? function isBlob2(b) { + return b instanceof Blob2; + } : function isBlob2(b) { + return false; + }; + var validateAbortSignal = (signal, name2) => { + if (signal !== void 0 && (signal === null || typeof signal !== "object" || !("aborted" in signal))) { + throw new ERR_INVALID_ARG_TYPE(name2, "AbortSignal", signal); + } + }; + var validateFunction = (value, name2) => { + if (typeof value !== "function") { + throw new ERR_INVALID_ARG_TYPE(name2, "Function", value); + } + }; + module.exports = { + AggregateError: AggregateError2, + kEmptyObject: Object.freeze({}), + once(callback) { + let called = false; + return function(...args) { + if (called) { + return; + } + called = true; + callback.apply(this, args); + }; + }, + createDeferredPromise: function() { + let resolve2; + let reject; + const promise = new Promise((res, rej) => { + resolve2 = res; + reject = rej; + }); + return { + promise, + resolve: resolve2, + reject + }; + }, + promisify(fn) { + return new Promise((resolve2, reject) => { + fn((err, ...args) => { + if (err) { + return reject(err); + } + return resolve2(...args); + }); + }); + }, + debuglog() { + return function() { + }; + }, + format: format2, + inspect, + types: { + isAsyncFunction(fn) { + return fn instanceof AsyncFunction; + }, + isArrayBufferView(arr) { + return ArrayBuffer.isView(arr); + } + }, + isBlob, + deprecate(fn, message) { + return fn; + }, + addAbortListener: (init_events(), __toCommonJS(events_exports)).addAbortListener || function addAbortListener(signal, listener) { + if (signal === void 0) { + throw new ERR_INVALID_ARG_TYPE("signal", "AbortSignal", signal); + } + validateAbortSignal(signal, "signal"); + validateFunction(listener, "listener"); + let removeEventListener; + if (signal.aborted) { + queueMicrotask(() => listener()); + } else { + signal.addEventListener("abort", listener, { + __proto__: null, + once: true, + [kResistStopPropagation]: true + }); + removeEventListener = () => { + signal.removeEventListener("abort", listener); + }; + } + return { + __proto__: null, + [SymbolDispose]() { + var _removeEventListener; + (_removeEventListener = removeEventListener) === null || _removeEventListener === void 0 ? void 0 : _removeEventListener(); + } + }; + }, + AbortSignalAny: AbortSignal.any || function AbortSignalAny(signals) { + if (signals.length === 1) { + return signals[0]; + } + const ac = new AbortController(); + const abort3 = () => ac.abort(); + signals.forEach((signal) => { + validateAbortSignal(signal, "signals"); + signal.addEventListener("abort", abort3, { + once: true + }); + }); + ac.signal.addEventListener( + "abort", + () => { + signals.forEach((signal) => signal.removeEventListener("abort", abort3)); + }, + { + once: true + } + ); + return ac.signal; + } + }; + module.exports.promisify.custom = Symbol.for("nodejs.util.promisify.custom"); + } + }); + + // node_modules/readable-stream/lib/internal/validators.js + var require_validators = __commonJS({ + "node_modules/readable-stream/lib/internal/validators.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { + ArrayIsArray, + ArrayPrototypeIncludes, + ArrayPrototypeJoin, + ArrayPrototypeMap, + NumberIsInteger, + NumberIsNaN, + NumberMAX_SAFE_INTEGER, + NumberMIN_SAFE_INTEGER, + NumberParseInt, + ObjectPrototypeHasOwnProperty, + RegExpPrototypeExec, + String: String2, + StringPrototypeToUpperCase, + StringPrototypeTrim + } = require_primordials(); + var { + hideStackFrames, + codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL } + } = require_errors(); + var { normalizeEncoding } = require_util(); + var { isAsyncFunction, isArrayBufferView } = require_util().types; + var signals = {}; + function isInt32(value) { + return value === (value | 0); + } + function isUint32(value) { + return value === value >>> 0; + } + var octalReg = /^[0-7]+$/; + var modeDesc = "must be a 32-bit unsigned integer or an octal string"; + function parseFileMode(value, name2, def) { + if (typeof value === "undefined") { + value = def; + } + if (typeof value === "string") { + if (RegExpPrototypeExec(octalReg, value) === null) { + throw new ERR_INVALID_ARG_VALUE(name2, value, modeDesc); + } + value = NumberParseInt(value, 8); + } + validateUint32(value, name2); + return value; + } + var validateInteger = hideStackFrames((value, name2, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => { + if (typeof value !== "number") throw new ERR_INVALID_ARG_TYPE(name2, "number", value); + if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name2, "an integer", value); + if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name2, `>= ${min} && <= ${max}`, value); + }); + var validateInt32 = hideStackFrames((value, name2, min = -2147483648, max = 2147483647) => { + if (typeof value !== "number") { + throw new ERR_INVALID_ARG_TYPE(name2, "number", value); + } + if (!NumberIsInteger(value)) { + throw new ERR_OUT_OF_RANGE(name2, "an integer", value); + } + if (value < min || value > max) { + throw new ERR_OUT_OF_RANGE(name2, `>= ${min} && <= ${max}`, value); + } + }); + var validateUint32 = hideStackFrames((value, name2, positive = false) => { + if (typeof value !== "number") { + throw new ERR_INVALID_ARG_TYPE(name2, "number", value); + } + if (!NumberIsInteger(value)) { + throw new ERR_OUT_OF_RANGE(name2, "an integer", value); + } + const min = positive ? 1 : 0; + const max = 4294967295; + if (value < min || value > max) { + throw new ERR_OUT_OF_RANGE(name2, `>= ${min} && <= ${max}`, value); + } + }); + function validateString(value, name2) { + if (typeof value !== "string") throw new ERR_INVALID_ARG_TYPE(name2, "string", value); + } + function validateNumber(value, name2, min = void 0, max) { + if (typeof value !== "number") throw new ERR_INVALID_ARG_TYPE(name2, "number", value); + if (min != null && value < min || max != null && value > max || (min != null || max != null) && NumberIsNaN(value)) { + throw new ERR_OUT_OF_RANGE( + name2, + `${min != null ? `>= ${min}` : ""}${min != null && max != null ? " && " : ""}${max != null ? `<= ${max}` : ""}`, + value + ); + } + } + var validateOneOf = hideStackFrames((value, name2, oneOf) => { + if (!ArrayPrototypeIncludes(oneOf, value)) { + const allowed = ArrayPrototypeJoin( + ArrayPrototypeMap(oneOf, (v) => typeof v === "string" ? `'${v}'` : String2(v)), + ", " + ); + const reason = "must be one of: " + allowed; + throw new ERR_INVALID_ARG_VALUE(name2, value, reason); + } + }); + function validateBoolean(value, name2) { + if (typeof value !== "boolean") throw new ERR_INVALID_ARG_TYPE(name2, "boolean", value); + } + function getOwnPropertyValueOrDefault(options, key, defaultValue) { + return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]; + } + var validateObject = hideStackFrames((value, name2, options = null) => { + const allowArray = getOwnPropertyValueOrDefault(options, "allowArray", false); + const allowFunction = getOwnPropertyValueOrDefault(options, "allowFunction", false); + const nullable = getOwnPropertyValueOrDefault(options, "nullable", false); + if (!nullable && value === null || !allowArray && ArrayIsArray(value) || typeof value !== "object" && (!allowFunction || typeof value !== "function")) { + throw new ERR_INVALID_ARG_TYPE(name2, "Object", value); + } + }); + var validateDictionary = hideStackFrames((value, name2) => { + if (value != null && typeof value !== "object" && typeof value !== "function") { + throw new ERR_INVALID_ARG_TYPE(name2, "a dictionary", value); + } + }); + var validateArray = hideStackFrames((value, name2, minLength = 0) => { + if (!ArrayIsArray(value)) { + throw new ERR_INVALID_ARG_TYPE(name2, "Array", value); + } + if (value.length < minLength) { + const reason = `must be longer than ${minLength}`; + throw new ERR_INVALID_ARG_VALUE(name2, value, reason); + } + }); + function validateStringArray(value, name2) { + validateArray(value, name2); + for (let i = 0; i < value.length; i++) { + validateString(value[i], `${name2}[${i}]`); + } + } + function validateBooleanArray(value, name2) { + validateArray(value, name2); + for (let i = 0; i < value.length; i++) { + validateBoolean(value[i], `${name2}[${i}]`); + } + } + function validateAbortSignalArray(value, name2) { + validateArray(value, name2); + for (let i = 0; i < value.length; i++) { + const signal = value[i]; + const indexedName = `${name2}[${i}]`; + if (signal == null) { + throw new ERR_INVALID_ARG_TYPE(indexedName, "AbortSignal", signal); + } + validateAbortSignal(signal, indexedName); + } + } + function validateSignalName(signal, name2 = "signal") { + validateString(signal, name2); + if (signals[signal] === void 0) { + if (signals[StringPrototypeToUpperCase(signal)] !== void 0) { + throw new ERR_UNKNOWN_SIGNAL(signal + " (signals must use all capital letters)"); + } + throw new ERR_UNKNOWN_SIGNAL(signal); + } + } + var validateBuffer = hideStackFrames((buffer, name2 = "buffer") => { + if (!isArrayBufferView(buffer)) { + throw new ERR_INVALID_ARG_TYPE(name2, ["Buffer", "TypedArray", "DataView"], buffer); + } + }); + function validateEncoding(data, encoding) { + const normalizedEncoding = normalizeEncoding(encoding); + const length = data.length; + if (normalizedEncoding === "hex" && length % 2 !== 0) { + throw new ERR_INVALID_ARG_VALUE("encoding", encoding, `is invalid for data of length ${length}`); + } + } + function validatePort(port, name2 = "Port", allowZero = true) { + if (typeof port !== "number" && typeof port !== "string" || typeof port === "string" && StringPrototypeTrim(port).length === 0 || +port !== +port >>> 0 || port > 65535 || port === 0 && !allowZero) { + throw new ERR_SOCKET_BAD_PORT(name2, port, allowZero); + } + return port | 0; + } + var validateAbortSignal = hideStackFrames((signal, name2) => { + if (signal !== void 0 && (signal === null || typeof signal !== "object" || !("aborted" in signal))) { + throw new ERR_INVALID_ARG_TYPE(name2, "AbortSignal", signal); + } + }); + var validateFunction = hideStackFrames((value, name2) => { + if (typeof value !== "function") throw new ERR_INVALID_ARG_TYPE(name2, "Function", value); + }); + var validatePlainFunction = hideStackFrames((value, name2) => { + if (typeof value !== "function" || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name2, "Function", value); + }); + var validateUndefined = hideStackFrames((value, name2) => { + if (value !== void 0) throw new ERR_INVALID_ARG_TYPE(name2, "undefined", value); + }); + function validateUnion(value, name2, union) { + if (!ArrayPrototypeIncludes(union, value)) { + throw new ERR_INVALID_ARG_TYPE(name2, `('${ArrayPrototypeJoin(union, "|")}')`, value); + } + } + var linkValueRegExp = /^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/; + function validateLinkHeaderFormat(value, name2) { + if (typeof value === "undefined" || !RegExpPrototypeExec(linkValueRegExp, value)) { + throw new ERR_INVALID_ARG_VALUE( + name2, + value, + 'must be an array or string of format "; rel=preload; as=style"' + ); + } + } + function validateLinkHeaderValue(hints) { + if (typeof hints === "string") { + validateLinkHeaderFormat(hints, "hints"); + return hints; + } else if (ArrayIsArray(hints)) { + const hintsLength = hints.length; + let result = ""; + if (hintsLength === 0) { + return result; + } + for (let i = 0; i < hintsLength; i++) { + const link = hints[i]; + validateLinkHeaderFormat(link, "hints"); + result += link; + if (i !== hintsLength - 1) { + result += ", "; + } + } + return result; + } + throw new ERR_INVALID_ARG_VALUE( + "hints", + hints, + 'must be an array or string of format "; rel=preload; as=style"' + ); + } + module.exports = { + isInt32, + isUint32, + parseFileMode, + validateArray, + validateStringArray, + validateBooleanArray, + validateAbortSignalArray, + validateBoolean, + validateBuffer, + validateDictionary, + validateEncoding, + validateFunction, + validateInt32, + validateInteger, + validateNumber, + validateObject, + validateOneOf, + validatePlainFunction, + validatePort, + validateSignalName, + validateString, + validateUint32, + validateUndefined, + validateUnion, + validateAbortSignal, + validateLinkHeaderValue + }; + } + }); + + // node_modules/process/browser.js + var require_browser2 = __commonJS({ + "node_modules/process/browser.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var process3 = module.exports = {}; + var cachedSetTimeout; + var cachedClearTimeout; + function defaultSetTimout() { + throw new Error("setTimeout has not been defined"); + } + function defaultClearTimeout() { + throw new Error("clearTimeout has not been defined"); + } + (function() { + try { + if (typeof setTimeout === "function") { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === "function") { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } + })(); + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + return setTimeout(fun, 0); + } + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + return cachedSetTimeout(fun, 0); + } catch (e) { + try { + return cachedSetTimeout.call(null, fun, 0); + } catch (e2) { + return cachedSetTimeout.call(this, fun, 0); + } + } + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + return clearTimeout(marker); + } + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + return cachedClearTimeout(marker); + } catch (e) { + try { + return cachedClearTimeout.call(null, marker); + } catch (e2) { + return cachedClearTimeout.call(this, marker); + } + } + } + var queue3 = []; + var draining3 = false; + var currentQueue3; + var queueIndex3 = -1; + function cleanUpNextTick3() { + if (!draining3 || !currentQueue3) { + return; + } + draining3 = false; + if (currentQueue3.length) { + queue3 = currentQueue3.concat(queue3); + } else { + queueIndex3 = -1; + } + if (queue3.length) { + drainQueue3(); + } + } + function drainQueue3() { + if (draining3) { + return; + } + var timeout = runTimeout(cleanUpNextTick3); + draining3 = true; + var len = queue3.length; + while (len) { + currentQueue3 = queue3; + queue3 = []; + while (++queueIndex3 < len) { + if (currentQueue3) { + currentQueue3[queueIndex3].run(); + } + } + queueIndex3 = -1; + len = queue3.length; + } + currentQueue3 = null; + draining3 = false; + runClearTimeout(timeout); + } + process3.nextTick = function(fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue3.push(new Item3(fun, args)); + if (queue3.length === 1 && !draining3) { + runTimeout(drainQueue3); + } + }; + function Item3(fun, array) { + this.fun = fun; + this.array = array; + } + Item3.prototype.run = function() { + this.fun.apply(null, this.array); + }; + process3.title = "browser"; + process3.browser = true; + process3.env = {}; + process3.argv = []; + process3.version = ""; + process3.versions = {}; + function noop3() { + } + process3.on = noop3; + process3.addListener = noop3; + process3.once = noop3; + process3.off = noop3; + process3.removeListener = noop3; + process3.removeAllListeners = noop3; + process3.emit = noop3; + process3.prependListener = noop3; + process3.prependOnceListener = noop3; + process3.listeners = function(name2) { + return []; + }; + process3.binding = function(name2) { + throw new Error("process.binding is not supported"); + }; + process3.cwd = function() { + return "/"; + }; + process3.chdir = function(dir) { + throw new Error("process.chdir is not supported"); + }; + process3.umask = function() { + return 0; + }; + } + }); + + // node_modules/readable-stream/lib/internal/streams/utils.js + var require_utils = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/utils.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { SymbolAsyncIterator, SymbolIterator, SymbolFor } = require_primordials(); + var kIsDestroyed = SymbolFor("nodejs.stream.destroyed"); + var kIsErrored = SymbolFor("nodejs.stream.errored"); + var kIsReadable = SymbolFor("nodejs.stream.readable"); + var kIsWritable = SymbolFor("nodejs.stream.writable"); + var kIsDisturbed = SymbolFor("nodejs.stream.disturbed"); + var kIsClosedPromise = SymbolFor("nodejs.webstream.isClosedPromise"); + var kControllerErrorFunction = SymbolFor("nodejs.webstream.controllerErrorFunction"); + function isReadableNodeStream(obj, strict = false) { + var _obj$_readableState; + return !!(obj && typeof obj.pipe === "function" && typeof obj.on === "function" && (!strict || typeof obj.pause === "function" && typeof obj.resume === "function") && (!obj._writableState || ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === void 0 ? void 0 : _obj$_readableState.readable) !== false) && // Duplex + (!obj._writableState || obj._readableState)); + } + function isWritableNodeStream(obj) { + var _obj$_writableState; + return !!(obj && typeof obj.write === "function" && typeof obj.on === "function" && (!obj._readableState || ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === void 0 ? void 0 : _obj$_writableState.writable) !== false)); + } + function isDuplexNodeStream(obj) { + return !!(obj && typeof obj.pipe === "function" && obj._readableState && typeof obj.on === "function" && typeof obj.write === "function"); + } + function isNodeStream(obj) { + return obj && (obj._readableState || obj._writableState || typeof obj.write === "function" && typeof obj.on === "function" || typeof obj.pipe === "function" && typeof obj.on === "function"); + } + function isReadableStream(obj) { + return !!(obj && !isNodeStream(obj) && typeof obj.pipeThrough === "function" && typeof obj.getReader === "function" && typeof obj.cancel === "function"); + } + function isWritableStream(obj) { + return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === "function" && typeof obj.abort === "function"); + } + function isTransformStream(obj) { + return !!(obj && !isNodeStream(obj) && typeof obj.readable === "object" && typeof obj.writable === "object"); + } + function isWebStream(obj) { + return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj); + } + function isIterable(obj, isAsync) { + if (obj == null) return false; + if (isAsync === true) return typeof obj[SymbolAsyncIterator] === "function"; + if (isAsync === false) return typeof obj[SymbolIterator] === "function"; + return typeof obj[SymbolAsyncIterator] === "function" || typeof obj[SymbolIterator] === "function"; + } + function isDestroyed(stream) { + if (!isNodeStream(stream)) return null; + const wState = stream._writableState; + const rState = stream._readableState; + const state = wState || rState; + return !!(stream.destroyed || stream[kIsDestroyed] || state !== null && state !== void 0 && state.destroyed); + } + function isWritableEnded(stream) { + if (!isWritableNodeStream(stream)) return null; + if (stream.writableEnded === true) return true; + const wState = stream._writableState; + if (wState !== null && wState !== void 0 && wState.errored) return false; + if (typeof (wState === null || wState === void 0 ? void 0 : wState.ended) !== "boolean") return null; + return wState.ended; + } + function isWritableFinished(stream, strict) { + if (!isWritableNodeStream(stream)) return null; + if (stream.writableFinished === true) return true; + const wState = stream._writableState; + if (wState !== null && wState !== void 0 && wState.errored) return false; + if (typeof (wState === null || wState === void 0 ? void 0 : wState.finished) !== "boolean") return null; + return !!(wState.finished || strict === false && wState.ended === true && wState.length === 0); + } + function isReadableEnded(stream) { + if (!isReadableNodeStream(stream)) return null; + if (stream.readableEnded === true) return true; + const rState = stream._readableState; + if (!rState || rState.errored) return false; + if (typeof (rState === null || rState === void 0 ? void 0 : rState.ended) !== "boolean") return null; + return rState.ended; + } + function isReadableFinished(stream, strict) { + if (!isReadableNodeStream(stream)) return null; + const rState = stream._readableState; + if (rState !== null && rState !== void 0 && rState.errored) return false; + if (typeof (rState === null || rState === void 0 ? void 0 : rState.endEmitted) !== "boolean") return null; + return !!(rState.endEmitted || strict === false && rState.ended === true && rState.length === 0); + } + function isReadable(stream) { + if (stream && stream[kIsReadable] != null) return stream[kIsReadable]; + if (typeof (stream === null || stream === void 0 ? void 0 : stream.readable) !== "boolean") return null; + if (isDestroyed(stream)) return false; + return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream); + } + function isWritable(stream) { + if (stream && stream[kIsWritable] != null) return stream[kIsWritable]; + if (typeof (stream === null || stream === void 0 ? void 0 : stream.writable) !== "boolean") return null; + if (isDestroyed(stream)) return false; + return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream); + } + function isFinished(stream, opts) { + if (!isNodeStream(stream)) { + return null; + } + if (isDestroyed(stream)) { + return true; + } + if ((opts === null || opts === void 0 ? void 0 : opts.readable) !== false && isReadable(stream)) { + return false; + } + if ((opts === null || opts === void 0 ? void 0 : opts.writable) !== false && isWritable(stream)) { + return false; + } + return true; + } + function isWritableErrored(stream) { + var _stream$_writableStat, _stream$_writableStat2; + if (!isNodeStream(stream)) { + return null; + } + if (stream.writableErrored) { + return stream.writableErrored; + } + return (_stream$_writableStat = (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === void 0 ? void 0 : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== void 0 ? _stream$_writableStat : null; + } + function isReadableErrored(stream) { + var _stream$_readableStat, _stream$_readableStat2; + if (!isNodeStream(stream)) { + return null; + } + if (stream.readableErrored) { + return stream.readableErrored; + } + return (_stream$_readableStat = (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === void 0 ? void 0 : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== void 0 ? _stream$_readableStat : null; + } + function isClosed(stream) { + if (!isNodeStream(stream)) { + return null; + } + if (typeof stream.closed === "boolean") { + return stream.closed; + } + const wState = stream._writableState; + const rState = stream._readableState; + if (typeof (wState === null || wState === void 0 ? void 0 : wState.closed) === "boolean" || typeof (rState === null || rState === void 0 ? void 0 : rState.closed) === "boolean") { + return (wState === null || wState === void 0 ? void 0 : wState.closed) || (rState === null || rState === void 0 ? void 0 : rState.closed); + } + if (typeof stream._closed === "boolean" && isOutgoingMessage(stream)) { + return stream._closed; + } + return null; + } + function isOutgoingMessage(stream) { + return typeof stream._closed === "boolean" && typeof stream._defaultKeepAlive === "boolean" && typeof stream._removedConnection === "boolean" && typeof stream._removedContLen === "boolean"; + } + function isServerResponse(stream) { + return typeof stream._sent100 === "boolean" && isOutgoingMessage(stream); + } + function isServerRequest(stream) { + var _stream$req; + return typeof stream._consuming === "boolean" && typeof stream._dumped === "boolean" && ((_stream$req = stream.req) === null || _stream$req === void 0 ? void 0 : _stream$req.upgradeOrConnect) === void 0; + } + function willEmitClose(stream) { + if (!isNodeStream(stream)) return null; + const wState = stream._writableState; + const rState = stream._readableState; + const state = wState || rState; + return !state && isServerResponse(stream) || !!(state && state.autoDestroy && state.emitClose && state.closed === false); + } + function isDisturbed(stream) { + var _stream$kIsDisturbed; + return !!(stream && ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== void 0 ? _stream$kIsDisturbed : stream.readableDidRead || stream.readableAborted)); + } + function isErrored(stream) { + var _ref, _ref2, _ref3, _ref4, _ref5, _stream$kIsErrored, _stream$_readableStat3, _stream$_writableStat3, _stream$_readableStat4, _stream$_writableStat4; + return !!(stream && ((_ref = (_ref2 = (_ref3 = (_ref4 = (_ref5 = (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== void 0 ? _stream$kIsErrored : stream.readableErrored) !== null && _ref5 !== void 0 ? _ref5 : stream.writableErrored) !== null && _ref4 !== void 0 ? _ref4 : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === void 0 ? void 0 : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== void 0 ? _ref3 : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === void 0 ? void 0 : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== void 0 ? _ref2 : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === void 0 ? void 0 : _stream$_readableStat4.errored) !== null && _ref !== void 0 ? _ref : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === void 0 ? void 0 : _stream$_writableStat4.errored)); + } + module.exports = { + isDestroyed, + kIsDestroyed, + isDisturbed, + kIsDisturbed, + isErrored, + kIsErrored, + isReadable, + kIsReadable, + kIsClosedPromise, + kControllerErrorFunction, + kIsWritable, + isClosed, + isDuplexNodeStream, + isFinished, + isIterable, + isReadableNodeStream, + isReadableStream, + isReadableEnded, + isReadableFinished, + isReadableErrored, + isNodeStream, + isWebStream, + isWritable, + isWritableNodeStream, + isWritableStream, + isWritableEnded, + isWritableFinished, + isWritableErrored, + isServerRequest, + isServerResponse, + willEmitClose, + isTransformStream + }; + } + }); + + // node_modules/readable-stream/lib/internal/streams/end-of-stream.js + var require_end_of_stream = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var process3 = require_browser2(); + var { AbortError, codes } = require_errors(); + var { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes; + var { kEmptyObject, once: once4 } = require_util(); + var { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require_validators(); + var { Promise: Promise2, PromisePrototypeThen, SymbolDispose } = require_primordials(); + var { + isClosed, + isReadable, + isReadableNodeStream, + isReadableStream, + isReadableFinished, + isReadableErrored, + isWritable, + isWritableNodeStream, + isWritableStream, + isWritableFinished, + isWritableErrored, + isNodeStream, + willEmitClose: _willEmitClose, + kIsClosedPromise + } = require_utils(); + var addAbortListener; + function isRequest(stream) { + return stream.setHeader && typeof stream.abort === "function"; + } + var nop = () => { + }; + function eos(stream, options, callback) { + var _options$readable, _options$writable; + if (arguments.length === 2) { + callback = options; + options = kEmptyObject; + } else if (options == null) { + options = kEmptyObject; + } else { + validateObject(options, "options"); + } + validateFunction(callback, "callback"); + validateAbortSignal(options.signal, "options.signal"); + callback = once4(callback); + if (isReadableStream(stream) || isWritableStream(stream)) { + return eosWeb(stream, options, callback); + } + if (!isNodeStream(stream)) { + throw new ERR_INVALID_ARG_TYPE("stream", ["ReadableStream", "WritableStream", "Stream"], stream); + } + const readable = (_options$readable = options.readable) !== null && _options$readable !== void 0 ? _options$readable : isReadableNodeStream(stream); + const writable = (_options$writable = options.writable) !== null && _options$writable !== void 0 ? _options$writable : isWritableNodeStream(stream); + const wState = stream._writableState; + const rState = stream._readableState; + const onlegacyfinish = () => { + if (!stream.writable) { + onfinish(); + } + }; + let willEmitClose = _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable; + let writableFinished = isWritableFinished(stream, false); + const onfinish = () => { + writableFinished = true; + if (stream.destroyed) { + willEmitClose = false; + } + if (willEmitClose && (!stream.readable || readable)) { + return; + } + if (!readable || readableFinished) { + callback.call(stream); + } + }; + let readableFinished = isReadableFinished(stream, false); + const onend = () => { + readableFinished = true; + if (stream.destroyed) { + willEmitClose = false; + } + if (willEmitClose && (!stream.writable || writable)) { + return; + } + if (!writable || writableFinished) { + callback.call(stream); + } + }; + const onerror = (err) => { + callback.call(stream, err); + }; + let closed = isClosed(stream); + const onclose = () => { + closed = true; + const errored = isWritableErrored(stream) || isReadableErrored(stream); + if (errored && typeof errored !== "boolean") { + return callback.call(stream, errored); + } + if (readable && !readableFinished && isReadableNodeStream(stream, true)) { + if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE()); + } + if (writable && !writableFinished) { + if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE()); + } + callback.call(stream); + }; + const onclosed = () => { + closed = true; + const errored = isWritableErrored(stream) || isReadableErrored(stream); + if (errored && typeof errored !== "boolean") { + return callback.call(stream, errored); + } + callback.call(stream); + }; + const onrequest = () => { + stream.req.on("finish", onfinish); + }; + if (isRequest(stream)) { + stream.on("complete", onfinish); + if (!willEmitClose) { + stream.on("abort", onclose); + } + if (stream.req) { + onrequest(); + } else { + stream.on("request", onrequest); + } + } else if (writable && !wState) { + stream.on("end", onlegacyfinish); + stream.on("close", onlegacyfinish); + } + if (!willEmitClose && typeof stream.aborted === "boolean") { + stream.on("aborted", onclose); + } + stream.on("end", onend); + stream.on("finish", onfinish); + if (options.error !== false) { + stream.on("error", onerror); + } + stream.on("close", onclose); + if (closed) { + process3.nextTick(onclose); + } else if (wState !== null && wState !== void 0 && wState.errorEmitted || rState !== null && rState !== void 0 && rState.errorEmitted) { + if (!willEmitClose) { + process3.nextTick(onclosed); + } + } else if (!readable && (!willEmitClose || isReadable(stream)) && (writableFinished || isWritable(stream) === false)) { + process3.nextTick(onclosed); + } else if (!writable && (!willEmitClose || isWritable(stream)) && (readableFinished || isReadable(stream) === false)) { + process3.nextTick(onclosed); + } else if (rState && stream.req && stream.aborted) { + process3.nextTick(onclosed); + } + const cleanup = () => { + callback = nop; + stream.removeListener("aborted", onclose); + stream.removeListener("complete", onfinish); + stream.removeListener("abort", onclose); + stream.removeListener("request", onrequest); + if (stream.req) stream.req.removeListener("finish", onfinish); + stream.removeListener("end", onlegacyfinish); + stream.removeListener("close", onlegacyfinish); + stream.removeListener("finish", onfinish); + stream.removeListener("end", onend); + stream.removeListener("error", onerror); + stream.removeListener("close", onclose); + }; + if (options.signal && !closed) { + const abort3 = () => { + const endCallback = callback; + cleanup(); + endCallback.call( + stream, + new AbortError(void 0, { + cause: options.signal.reason + }) + ); + }; + if (options.signal.aborted) { + process3.nextTick(abort3); + } else { + addAbortListener = addAbortListener || require_util().addAbortListener; + const disposable = addAbortListener(options.signal, abort3); + const originalCallback = callback; + callback = once4((...args) => { + disposable[SymbolDispose](); + originalCallback.apply(stream, args); + }); + } + } + return cleanup; + } + function eosWeb(stream, options, callback) { + let isAborted = false; + let abort3 = nop; + if (options.signal) { + abort3 = () => { + isAborted = true; + callback.call( + stream, + new AbortError(void 0, { + cause: options.signal.reason + }) + ); + }; + if (options.signal.aborted) { + process3.nextTick(abort3); + } else { + addAbortListener = addAbortListener || require_util().addAbortListener; + const disposable = addAbortListener(options.signal, abort3); + const originalCallback = callback; + callback = once4((...args) => { + disposable[SymbolDispose](); + originalCallback.apply(stream, args); + }); + } + } + const resolverFn = (...args) => { + if (!isAborted) { + process3.nextTick(() => callback.apply(stream, args)); + } + }; + PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn); + return nop; + } + function finished(stream, opts) { + var _opts; + let autoCleanup = false; + if (opts === null) { + opts = kEmptyObject; + } + if ((_opts = opts) !== null && _opts !== void 0 && _opts.cleanup) { + validateBoolean(opts.cleanup, "cleanup"); + autoCleanup = opts.cleanup; + } + return new Promise2((resolve2, reject) => { + const cleanup = eos(stream, opts, (err) => { + if (autoCleanup) { + cleanup(); + } + if (err) { + reject(err); + } else { + resolve2(); + } + }); + }); + } + module.exports = eos; + module.exports.finished = finished; + } + }); + + // node_modules/readable-stream/lib/internal/streams/destroy.js + var require_destroy = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var process3 = require_browser2(); + var { + aggregateTwoErrors, + codes: { ERR_MULTIPLE_CALLBACK }, + AbortError + } = require_errors(); + var { Symbol: Symbol2 } = require_primordials(); + var { kIsDestroyed, isDestroyed, isFinished, isServerRequest } = require_utils(); + var kDestroy = Symbol2("kDestroy"); + var kConstruct = Symbol2("kConstruct"); + function checkError(err, w, r) { + if (err) { + err.stack; + if (w && !w.errored) { + w.errored = err; + } + if (r && !r.errored) { + r.errored = err; + } + } + } + function destroy(err, cb) { + const r = this._readableState; + const w = this._writableState; + const s = w || r; + if (w !== null && w !== void 0 && w.destroyed || r !== null && r !== void 0 && r.destroyed) { + if (typeof cb === "function") { + cb(); + } + return this; + } + checkError(err, w, r); + if (w) { + w.destroyed = true; + } + if (r) { + r.destroyed = true; + } + if (!s.constructed) { + this.once(kDestroy, function(er) { + _destroy(this, aggregateTwoErrors(er, err), cb); + }); + } else { + _destroy(this, err, cb); + } + return this; + } + function _destroy(self2, err, cb) { + let called = false; + function onDestroy(err2) { + if (called) { + return; + } + called = true; + const r = self2._readableState; + const w = self2._writableState; + checkError(err2, w, r); + if (w) { + w.closed = true; + } + if (r) { + r.closed = true; + } + if (typeof cb === "function") { + cb(err2); + } + if (err2) { + process3.nextTick(emitErrorCloseNT, self2, err2); + } else { + process3.nextTick(emitCloseNT, self2); + } + } + try { + self2._destroy(err || null, onDestroy); + } catch (err2) { + onDestroy(err2); + } + } + function emitErrorCloseNT(self2, err) { + emitErrorNT(self2, err); + emitCloseNT(self2); + } + function emitCloseNT(self2) { + const r = self2._readableState; + const w = self2._writableState; + if (w) { + w.closeEmitted = true; + } + if (r) { + r.closeEmitted = true; + } + if (w !== null && w !== void 0 && w.emitClose || r !== null && r !== void 0 && r.emitClose) { + self2.emit("close"); + } + } + function emitErrorNT(self2, err) { + const r = self2._readableState; + const w = self2._writableState; + if (w !== null && w !== void 0 && w.errorEmitted || r !== null && r !== void 0 && r.errorEmitted) { + return; + } + if (w) { + w.errorEmitted = true; + } + if (r) { + r.errorEmitted = true; + } + self2.emit("error", err); + } + function undestroy() { + const r = this._readableState; + const w = this._writableState; + if (r) { + r.constructed = true; + r.closed = false; + r.closeEmitted = false; + r.destroyed = false; + r.errored = null; + r.errorEmitted = false; + r.reading = false; + r.ended = r.readable === false; + r.endEmitted = r.readable === false; + } + if (w) { + w.constructed = true; + w.destroyed = false; + w.closed = false; + w.closeEmitted = false; + w.errored = null; + w.errorEmitted = false; + w.finalCalled = false; + w.prefinished = false; + w.ended = w.writable === false; + w.ending = w.writable === false; + w.finished = w.writable === false; + } + } + function errorOrDestroy(stream, err, sync) { + const r = stream._readableState; + const w = stream._writableState; + if (w !== null && w !== void 0 && w.destroyed || r !== null && r !== void 0 && r.destroyed) { + return this; + } + if (r !== null && r !== void 0 && r.autoDestroy || w !== null && w !== void 0 && w.autoDestroy) + stream.destroy(err); + else if (err) { + err.stack; + if (w && !w.errored) { + w.errored = err; + } + if (r && !r.errored) { + r.errored = err; + } + if (sync) { + process3.nextTick(emitErrorNT, stream, err); + } else { + emitErrorNT(stream, err); + } + } + } + function construct(stream, cb) { + if (typeof stream._construct !== "function") { + return; + } + const r = stream._readableState; + const w = stream._writableState; + if (r) { + r.constructed = false; + } + if (w) { + w.constructed = false; + } + stream.once(kConstruct, cb); + if (stream.listenerCount(kConstruct) > 1) { + return; + } + process3.nextTick(constructNT, stream); + } + function constructNT(stream) { + let called = false; + function onConstruct(err) { + if (called) { + errorOrDestroy(stream, err !== null && err !== void 0 ? err : new ERR_MULTIPLE_CALLBACK()); + return; + } + called = true; + const r = stream._readableState; + const w = stream._writableState; + const s = w || r; + if (r) { + r.constructed = true; + } + if (w) { + w.constructed = true; + } + if (s.destroyed) { + stream.emit(kDestroy, err); + } else if (err) { + errorOrDestroy(stream, err, true); + } else { + process3.nextTick(emitConstructNT, stream); + } + } + try { + stream._construct((err) => { + process3.nextTick(onConstruct, err); + }); + } catch (err) { + process3.nextTick(onConstruct, err); + } + } + function emitConstructNT(stream) { + stream.emit(kConstruct); + } + function isRequest(stream) { + return (stream === null || stream === void 0 ? void 0 : stream.setHeader) && typeof stream.abort === "function"; + } + function emitCloseLegacy(stream) { + stream.emit("close"); + } + function emitErrorCloseLegacy(stream, err) { + stream.emit("error", err); + process3.nextTick(emitCloseLegacy, stream); + } + function destroyer(stream, err) { + if (!stream || isDestroyed(stream)) { + return; + } + if (!err && !isFinished(stream)) { + err = new AbortError(); + } + if (isServerRequest(stream)) { + stream.socket = null; + stream.destroy(err); + } else if (isRequest(stream)) { + stream.abort(); + } else if (isRequest(stream.req)) { + stream.req.abort(); + } else if (typeof stream.destroy === "function") { + stream.destroy(err); + } else if (typeof stream.close === "function") { + stream.close(); + } else if (err) { + process3.nextTick(emitErrorCloseLegacy, stream, err); + } else { + process3.nextTick(emitCloseLegacy, stream); + } + if (!stream.destroyed) { + stream[kIsDestroyed] = true; + } + } + module.exports = { + construct, + destroyer, + destroy, + undestroy, + errorOrDestroy + }; + } + }); + + // node_modules/readable-stream/lib/internal/streams/legacy.js + var require_legacy = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/legacy.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { ArrayIsArray, ObjectSetPrototypeOf } = require_primordials(); + var { EventEmitter: EE } = (init_events(), __toCommonJS(events_exports)); + function Stream(opts) { + EE.call(this, opts); + } + ObjectSetPrototypeOf(Stream.prototype, EE.prototype); + ObjectSetPrototypeOf(Stream, EE); + Stream.prototype.pipe = function(dest, options) { + const source = this; + function ondata(chunk) { + if (dest.writable && dest.write(chunk) === false && source.pause) { + source.pause(); + } + } + source.on("data", ondata); + function ondrain() { + if (source.readable && source.resume) { + source.resume(); + } + } + dest.on("drain", ondrain); + if (!dest._isStdio && (!options || options.end !== false)) { + source.on("end", onend); + source.on("close", onclose); + } + let didOnEnd = false; + function onend() { + if (didOnEnd) return; + didOnEnd = true; + dest.end(); + } + function onclose() { + if (didOnEnd) return; + didOnEnd = true; + if (typeof dest.destroy === "function") dest.destroy(); + } + function onerror(er) { + cleanup(); + if (EE.listenerCount(this, "error") === 0) { + this.emit("error", er); + } + } + prependListener3(source, "error", onerror); + prependListener3(dest, "error", onerror); + function cleanup() { + source.removeListener("data", ondata); + dest.removeListener("drain", ondrain); + source.removeListener("end", onend); + source.removeListener("close", onclose); + source.removeListener("error", onerror); + dest.removeListener("error", onerror); + source.removeListener("end", cleanup); + source.removeListener("close", cleanup); + dest.removeListener("close", cleanup); + } + source.on("end", cleanup); + source.on("close", cleanup); + dest.on("close", cleanup); + dest.emit("pipe", source); + return dest; + }; + function prependListener3(emitter, event, fn) { + if (typeof emitter.prependListener === "function") return emitter.prependListener(event, fn); + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn); + else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn); + else emitter._events[event] = [fn, emitter._events[event]]; + } + module.exports = { + Stream, + prependListener: prependListener3 + }; + } + }); + + // node_modules/readable-stream/lib/internal/streams/add-abort-signal.js + var require_add_abort_signal = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/add-abort-signal.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { SymbolDispose } = require_primordials(); + var { AbortError, codes } = require_errors(); + var { isNodeStream, isWebStream, kControllerErrorFunction } = require_utils(); + var eos = require_end_of_stream(); + var { ERR_INVALID_ARG_TYPE } = codes; + var addAbortListener; + var validateAbortSignal = (signal, name2) => { + if (typeof signal !== "object" || !("aborted" in signal)) { + throw new ERR_INVALID_ARG_TYPE(name2, "AbortSignal", signal); + } + }; + module.exports.addAbortSignal = function addAbortSignal(signal, stream) { + validateAbortSignal(signal, "signal"); + if (!isNodeStream(stream) && !isWebStream(stream)) { + throw new ERR_INVALID_ARG_TYPE("stream", ["ReadableStream", "WritableStream", "Stream"], stream); + } + return module.exports.addAbortSignalNoValidate(signal, stream); + }; + module.exports.addAbortSignalNoValidate = function(signal, stream) { + if (typeof signal !== "object" || !("aborted" in signal)) { + return stream; + } + const onAbort = isNodeStream(stream) ? () => { + stream.destroy( + new AbortError(void 0, { + cause: signal.reason + }) + ); + } : () => { + stream[kControllerErrorFunction]( + new AbortError(void 0, { + cause: signal.reason + }) + ); + }; + if (signal.aborted) { + onAbort(); + } else { + addAbortListener = addAbortListener || require_util().addAbortListener; + const disposable = addAbortListener(signal, onAbort); + eos(stream, disposable[SymbolDispose]); + } + return stream; + }; + } + }); + + // node_modules/readable-stream/lib/internal/streams/buffer_list.js + var require_buffer_list = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array: Uint8Array2 } = require_primordials(); + var { Buffer: Buffer3 } = (init_buffer(), __toCommonJS(buffer_exports)); + var { inspect } = require_util(); + module.exports = class BufferList { + constructor() { + this.head = null; + this.tail = null; + this.length = 0; + } + push(v) { + const entry = { + data: v, + next: null + }; + if (this.length > 0) this.tail.next = entry; + else this.head = entry; + this.tail = entry; + ++this.length; + } + unshift(v) { + const entry = { + data: v, + next: this.head + }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + } + shift() { + if (this.length === 0) return; + const ret = this.head.data; + if (this.length === 1) this.head = this.tail = null; + else this.head = this.head.next; + --this.length; + return ret; + } + clear() { + this.head = this.tail = null; + this.length = 0; + } + join(s) { + if (this.length === 0) return ""; + let p = this.head; + let ret = "" + p.data; + while ((p = p.next) !== null) ret += s + p.data; + return ret; + } + concat(n) { + if (this.length === 0) return Buffer3.alloc(0); + const ret = Buffer3.allocUnsafe(n >>> 0); + let p = this.head; + let i = 0; + while (p) { + TypedArrayPrototypeSet(ret, p.data, i); + i += p.data.length; + p = p.next; + } + return ret; + } + // Consumes a specified amount of bytes or characters from the buffered data. + consume(n, hasStrings) { + const data = this.head.data; + if (n < data.length) { + const slice = data.slice(0, n); + this.head.data = data.slice(n); + return slice; + } + if (n === data.length) { + return this.shift(); + } + return hasStrings ? this._getString(n) : this._getBuffer(n); + } + first() { + return this.head.data; + } + *[SymbolIterator]() { + for (let p = this.head; p; p = p.next) { + yield p.data; + } + } + // Consumes a specified amount of characters from the buffered data. + _getString(n) { + let ret = ""; + let p = this.head; + let c = 0; + do { + const str = p.data; + if (n > str.length) { + ret += str; + n -= str.length; + } else { + if (n === str.length) { + ret += str; + ++c; + if (p.next) this.head = p.next; + else this.head = this.tail = null; + } else { + ret += StringPrototypeSlice(str, 0, n); + this.head = p; + p.data = StringPrototypeSlice(str, n); + } + break; + } + ++c; + } while ((p = p.next) !== null); + this.length -= c; + return ret; + } + // Consumes a specified amount of bytes from the buffered data. + _getBuffer(n) { + const ret = Buffer3.allocUnsafe(n); + const retLen = n; + let p = this.head; + let c = 0; + do { + const buf = p.data; + if (n > buf.length) { + TypedArrayPrototypeSet(ret, buf, retLen - n); + n -= buf.length; + } else { + if (n === buf.length) { + TypedArrayPrototypeSet(ret, buf, retLen - n); + ++c; + if (p.next) this.head = p.next; + else this.head = this.tail = null; + } else { + TypedArrayPrototypeSet(ret, new Uint8Array2(buf.buffer, buf.byteOffset, n), retLen - n); + this.head = p; + p.data = buf.slice(n); + } + break; + } + ++c; + } while ((p = p.next) !== null); + this.length -= c; + return ret; + } + // Make sure the linked list only shows the minimal necessary information. + [Symbol.for("nodejs.util.inspect.custom")](_, options) { + return inspect(this, { + ...options, + // Only inspect one level. + depth: 0, + // It should not recurse. + customInspect: false + }); + } + }; + } + }); + + // node_modules/readable-stream/lib/internal/streams/state.js + var require_state = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/state.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { MathFloor, NumberIsInteger } = require_primordials(); + var { validateInteger } = require_validators(); + var { ERR_INVALID_ARG_VALUE } = require_errors().codes; + var defaultHighWaterMarkBytes = 16 * 1024; + var defaultHighWaterMarkObjectMode = 16; + function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; + } + function getDefaultHighWaterMark(objectMode) { + return objectMode ? defaultHighWaterMarkObjectMode : defaultHighWaterMarkBytes; + } + function setDefaultHighWaterMark(objectMode, value) { + validateInteger(value, "value", 0); + if (objectMode) { + defaultHighWaterMarkObjectMode = value; + } else { + defaultHighWaterMarkBytes = value; + } + } + function getHighWaterMark(state, options, duplexKey, isDuplex) { + const hwm = highWaterMarkFrom(options, isDuplex, duplexKey); + if (hwm != null) { + if (!NumberIsInteger(hwm) || hwm < 0) { + const name2 = isDuplex ? `options.${duplexKey}` : "options.highWaterMark"; + throw new ERR_INVALID_ARG_VALUE(name2, hwm); + } + return MathFloor(hwm); + } + return getDefaultHighWaterMark(state.objectMode); + } + module.exports = { + getHighWaterMark, + getDefaultHighWaterMark, + setDefaultHighWaterMark + }; + } + }); + + // node_modules/safe-buffer/index.js + var require_safe_buffer = __commonJS({ + "node_modules/safe-buffer/index.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var buffer = (init_buffer(), __toCommonJS(buffer_exports)); + var Buffer3 = buffer.Buffer; + function copyProps(src, dst) { + for (var key in src) { + dst[key] = src[key]; + } + } + if (Buffer3.from && Buffer3.alloc && Buffer3.allocUnsafe && Buffer3.allocUnsafeSlow) { + module.exports = buffer; + } else { + copyProps(buffer, exports8); + exports8.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer3(arg, encodingOrOffset, length); + } + SafeBuffer.prototype = Object.create(Buffer3.prototype); + copyProps(Buffer3, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer3(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer3(size); + if (fill !== void 0) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer3(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer.SlowBuffer(size); + }; + } + }); + + // node_modules/string_decoder/lib/string_decoder.js + var require_string_decoder = __commonJS({ + "node_modules/string_decoder/lib/string_decoder.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var Buffer3 = require_safe_buffer().Buffer; + var isEncoding = Buffer3.isEncoding || function(encoding) { + encoding = "" + encoding; + switch (encoding && encoding.toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + case "raw": + return true; + default: + return false; + } + }; + function _normalizeEncoding(enc) { + if (!enc) return "utf8"; + var retried; + while (true) { + switch (enc) { + case "utf8": + case "utf-8": + return "utf8"; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return "utf16le"; + case "latin1": + case "binary": + return "latin1"; + case "base64": + case "ascii": + case "hex": + return enc; + default: + if (retried) return; + enc = ("" + enc).toLowerCase(); + retried = true; + } + } + } + function normalizeEncoding(enc) { + var nenc = _normalizeEncoding(enc); + if (typeof nenc !== "string" && (Buffer3.isEncoding === isEncoding || !isEncoding(enc))) throw new Error("Unknown encoding: " + enc); + return nenc || enc; + } + exports8.StringDecoder = StringDecoder; + function StringDecoder(encoding) { + this.encoding = normalizeEncoding(encoding); + var nb; + switch (this.encoding) { + case "utf16le": + this.text = utf16Text; + this.end = utf16End; + nb = 4; + break; + case "utf8": + this.fillLast = utf8FillLast; + nb = 4; + break; + case "base64": + this.text = base64Text; + this.end = base64End; + nb = 3; + break; + default: + this.write = simpleWrite; + this.end = simpleEnd; + return; + } + this.lastNeed = 0; + this.lastTotal = 0; + this.lastChar = Buffer3.allocUnsafe(nb); + } + StringDecoder.prototype.write = function(buf) { + if (buf.length === 0) return ""; + var r; + var i; + if (this.lastNeed) { + r = this.fillLast(buf); + if (r === void 0) return ""; + i = this.lastNeed; + this.lastNeed = 0; + } else { + i = 0; + } + if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); + return r || ""; + }; + StringDecoder.prototype.end = utf8End; + StringDecoder.prototype.text = utf8Text; + StringDecoder.prototype.fillLast = function(buf) { + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); + this.lastNeed -= buf.length; + }; + function utf8CheckByte(byte) { + if (byte <= 127) return 0; + else if (byte >> 5 === 6) return 2; + else if (byte >> 4 === 14) return 3; + else if (byte >> 3 === 30) return 4; + return byte >> 6 === 2 ? -1 : -2; + } + function utf8CheckIncomplete(self2, buf, i) { + var j = buf.length - 1; + if (j < i) return 0; + var nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self2.lastNeed = nb - 1; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self2.lastNeed = nb - 2; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) { + if (nb === 2) nb = 0; + else self2.lastNeed = nb - 3; + } + return nb; + } + return 0; + } + function utf8CheckExtraBytes(self2, buf, p) { + if ((buf[0] & 192) !== 128) { + self2.lastNeed = 0; + return "\uFFFD"; + } + if (self2.lastNeed > 1 && buf.length > 1) { + if ((buf[1] & 192) !== 128) { + self2.lastNeed = 1; + return "\uFFFD"; + } + if (self2.lastNeed > 2 && buf.length > 2) { + if ((buf[2] & 192) !== 128) { + self2.lastNeed = 2; + return "\uFFFD"; + } + } + } + } + function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed; + var r = utf8CheckExtraBytes(this, buf, p); + if (r !== void 0) return r; + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, p, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, p, 0, buf.length); + this.lastNeed -= buf.length; + } + function utf8Text(buf, i) { + var total = utf8CheckIncomplete(this, buf, i); + if (!this.lastNeed) return buf.toString("utf8", i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + buf.copy(this.lastChar, 0, end); + return buf.toString("utf8", i, end); + } + function utf8End(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + if (this.lastNeed) return r + "\uFFFD"; + return r; + } + function utf16Text(buf, i) { + if ((buf.length - i) % 2 === 0) { + var r = buf.toString("utf16le", i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 55296 && c <= 56319) { + this.lastNeed = 2; + this.lastTotal = 4; + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + return r.slice(0, -1); + } + } + return r; + } + this.lastNeed = 1; + this.lastTotal = 2; + this.lastChar[0] = buf[buf.length - 1]; + return buf.toString("utf16le", i, buf.length - 1); + } + function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString("utf16le", 0, end); + } + return r; + } + function base64Text(buf, i) { + var n = (buf.length - i) % 3; + if (n === 0) return buf.toString("base64", i); + this.lastNeed = 3 - n; + this.lastTotal = 3; + if (n === 1) { + this.lastChar[0] = buf[buf.length - 1]; + } else { + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + } + return buf.toString("base64", i, buf.length - n); + } + function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + if (this.lastNeed) return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed); + return r; + } + function simpleWrite(buf) { + return buf.toString(this.encoding); + } + function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ""; + } + } + }); + + // node_modules/readable-stream/lib/internal/streams/from.js + var require_from = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/from.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var process3 = require_browser2(); + var { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require_primordials(); + var { Buffer: Buffer3 } = (init_buffer(), __toCommonJS(buffer_exports)); + var { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require_errors().codes; + function from(Readable, iterable, opts) { + let iterator; + if (typeof iterable === "string" || iterable instanceof Buffer3) { + return new Readable({ + objectMode: true, + ...opts, + read() { + this.push(iterable); + this.push(null); + } + }); + } + let isAsync; + if (iterable && iterable[SymbolAsyncIterator]) { + isAsync = true; + iterator = iterable[SymbolAsyncIterator](); + } else if (iterable && iterable[SymbolIterator]) { + isAsync = false; + iterator = iterable[SymbolIterator](); + } else { + throw new ERR_INVALID_ARG_TYPE("iterable", ["Iterable"], iterable); + } + const readable = new Readable({ + objectMode: true, + highWaterMark: 1, + // TODO(ronag): What options should be allowed? + ...opts + }); + let reading = false; + readable._read = function() { + if (!reading) { + reading = true; + next(); + } + }; + readable._destroy = function(error, cb) { + PromisePrototypeThen( + close(error), + () => process3.nextTick(cb, error), + // nextTick is here in case cb throws + (e) => process3.nextTick(cb, e || error) + ); + }; + async function close(error) { + const hadError = error !== void 0 && error !== null; + const hasThrow = typeof iterator.throw === "function"; + if (hadError && hasThrow) { + const { value, done } = await iterator.throw(error); + await value; + if (done) { + return; + } + } + if (typeof iterator.return === "function") { + const { value } = await iterator.return(); + await value; + } + } + async function next() { + for (; ; ) { + try { + const { value, done } = isAsync ? await iterator.next() : iterator.next(); + if (done) { + readable.push(null); + } else { + const res = value && typeof value.then === "function" ? await value : value; + if (res === null) { + reading = false; + throw new ERR_STREAM_NULL_VALUES(); + } else if (readable.push(res)) { + continue; + } else { + reading = false; + } + } + } catch (err) { + readable.destroy(err); + } + break; + } + } + return readable; + } + module.exports = from; + } + }); + + // node_modules/readable-stream/lib/internal/streams/readable.js + var require_readable = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/readable.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var process3 = require_browser2(); + var { + ArrayPrototypeIndexOf, + NumberIsInteger, + NumberIsNaN, + NumberParseInt, + ObjectDefineProperties, + ObjectKeys, + ObjectSetPrototypeOf, + Promise: Promise2, + SafeSet, + SymbolAsyncDispose, + SymbolAsyncIterator, + Symbol: Symbol2 + } = require_primordials(); + module.exports = Readable; + Readable.ReadableState = ReadableState; + var { EventEmitter: EE } = (init_events(), __toCommonJS(events_exports)); + var { Stream, prependListener: prependListener3 } = require_legacy(); + var { Buffer: Buffer3 } = (init_buffer(), __toCommonJS(buffer_exports)); + var { addAbortSignal } = require_add_abort_signal(); + var eos = require_end_of_stream(); + var debug = require_util().debuglog("stream", (fn) => { + debug = fn; + }); + var BufferList = require_buffer_list(); + var destroyImpl = require_destroy(); + var { getHighWaterMark, getDefaultHighWaterMark } = require_state(); + var { + aggregateTwoErrors, + codes: { + ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED, + ERR_OUT_OF_RANGE, + ERR_STREAM_PUSH_AFTER_EOF, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT + }, + AbortError + } = require_errors(); + var { validateObject } = require_validators(); + var kPaused = Symbol2("kPaused"); + var { StringDecoder } = require_string_decoder(); + var from = require_from(); + ObjectSetPrototypeOf(Readable.prototype, Stream.prototype); + ObjectSetPrototypeOf(Readable, Stream); + var nop = () => { + }; + var { errorOrDestroy } = destroyImpl; + var kObjectMode = 1 << 0; + var kEnded = 1 << 1; + var kEndEmitted = 1 << 2; + var kReading = 1 << 3; + var kConstructed = 1 << 4; + var kSync = 1 << 5; + var kNeedReadable = 1 << 6; + var kEmittedReadable = 1 << 7; + var kReadableListening = 1 << 8; + var kResumeScheduled = 1 << 9; + var kErrorEmitted = 1 << 10; + var kEmitClose = 1 << 11; + var kAutoDestroy = 1 << 12; + var kDestroyed = 1 << 13; + var kClosed = 1 << 14; + var kCloseEmitted = 1 << 15; + var kMultiAwaitDrain = 1 << 16; + var kReadingMore = 1 << 17; + var kDataEmitted = 1 << 18; + function makeBitMapDescriptor(bit) { + return { + enumerable: false, + get() { + return (this.state & bit) !== 0; + }, + set(value) { + if (value) this.state |= bit; + else this.state &= ~bit; + } + }; + } + ObjectDefineProperties(ReadableState.prototype, { + objectMode: makeBitMapDescriptor(kObjectMode), + ended: makeBitMapDescriptor(kEnded), + endEmitted: makeBitMapDescriptor(kEndEmitted), + reading: makeBitMapDescriptor(kReading), + // Stream is still being constructed and cannot be + // destroyed until construction finished or failed. + // Async construction is opt in, therefore we start as + // constructed. + constructed: makeBitMapDescriptor(kConstructed), + // A flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + sync: makeBitMapDescriptor(kSync), + // Whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + needReadable: makeBitMapDescriptor(kNeedReadable), + emittedReadable: makeBitMapDescriptor(kEmittedReadable), + readableListening: makeBitMapDescriptor(kReadableListening), + resumeScheduled: makeBitMapDescriptor(kResumeScheduled), + // True if the error was already emitted and should not be thrown again. + errorEmitted: makeBitMapDescriptor(kErrorEmitted), + emitClose: makeBitMapDescriptor(kEmitClose), + autoDestroy: makeBitMapDescriptor(kAutoDestroy), + // Has it been destroyed. + destroyed: makeBitMapDescriptor(kDestroyed), + // Indicates whether the stream has finished destroying. + closed: makeBitMapDescriptor(kClosed), + // True if close has been emitted or would have been emitted + // depending on emitClose. + closeEmitted: makeBitMapDescriptor(kCloseEmitted), + multiAwaitDrain: makeBitMapDescriptor(kMultiAwaitDrain), + // If true, a maybeReadMore has been scheduled. + readingMore: makeBitMapDescriptor(kReadingMore), + dataEmitted: makeBitMapDescriptor(kDataEmitted) + }); + function ReadableState(options, stream, isDuplex) { + if (typeof isDuplex !== "boolean") isDuplex = stream instanceof require_duplex(); + this.state = kEmitClose | kAutoDestroy | kConstructed | kSync; + if (options && options.objectMode) this.state |= kObjectMode; + if (isDuplex && options && options.readableObjectMode) this.state |= kObjectMode; + this.highWaterMark = options ? getHighWaterMark(this, options, "readableHighWaterMark", isDuplex) : getDefaultHighWaterMark(false); + this.buffer = new BufferList(); + this.length = 0; + this.pipes = []; + this.flowing = null; + this[kPaused] = null; + if (options && options.emitClose === false) this.state &= ~kEmitClose; + if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy; + this.errored = null; + this.defaultEncoding = options && options.defaultEncoding || "utf8"; + this.awaitDrainWriters = null; + this.decoder = null; + this.encoding = null; + if (options && options.encoding) { + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } + } + function Readable(options) { + if (!(this instanceof Readable)) return new Readable(options); + const isDuplex = this instanceof require_duplex(); + this._readableState = new ReadableState(options, this, isDuplex); + if (options) { + if (typeof options.read === "function") this._read = options.read; + if (typeof options.destroy === "function") this._destroy = options.destroy; + if (typeof options.construct === "function") this._construct = options.construct; + if (options.signal && !isDuplex) addAbortSignal(options.signal, this); + } + Stream.call(this, options); + destroyImpl.construct(this, () => { + if (this._readableState.needReadable) { + maybeReadMore(this, this._readableState); + } + }); + } + Readable.prototype.destroy = destroyImpl.destroy; + Readable.prototype._undestroy = destroyImpl.undestroy; + Readable.prototype._destroy = function(err, cb) { + cb(err); + }; + Readable.prototype[EE.captureRejectionSymbol] = function(err) { + this.destroy(err); + }; + Readable.prototype[SymbolAsyncDispose] = function() { + let error; + if (!this.destroyed) { + error = this.readableEnded ? null : new AbortError(); + this.destroy(error); + } + return new Promise2((resolve2, reject) => eos(this, (err) => err && err !== error ? reject(err) : resolve2(null))); + }; + Readable.prototype.push = function(chunk, encoding) { + return readableAddChunk(this, chunk, encoding, false); + }; + Readable.prototype.unshift = function(chunk, encoding) { + return readableAddChunk(this, chunk, encoding, true); + }; + function readableAddChunk(stream, chunk, encoding, addToFront) { + debug("readableAddChunk", chunk); + const state = stream._readableState; + let err; + if ((state.state & kObjectMode) === 0) { + if (typeof chunk === "string") { + encoding = encoding || state.defaultEncoding; + if (state.encoding !== encoding) { + if (addToFront && state.encoding) { + chunk = Buffer3.from(chunk, encoding).toString(state.encoding); + } else { + chunk = Buffer3.from(chunk, encoding); + encoding = ""; + } + } + } else if (chunk instanceof Buffer3) { + encoding = ""; + } else if (Stream._isUint8Array(chunk)) { + chunk = Stream._uint8ArrayToBuffer(chunk); + encoding = ""; + } else if (chunk != null) { + err = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk); + } + } + if (err) { + errorOrDestroy(stream, err); + } else if (chunk === null) { + state.state &= ~kReading; + onEofChunk(stream, state); + } else if ((state.state & kObjectMode) !== 0 || chunk && chunk.length > 0) { + if (addToFront) { + if ((state.state & kEndEmitted) !== 0) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT()); + else if (state.destroyed || state.errored) return false; + else addChunk(stream, state, chunk, true); + } else if (state.ended) { + errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); + } else if (state.destroyed || state.errored) { + return false; + } else { + state.state &= ~kReading; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false); + else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.state &= ~kReading; + maybeReadMore(stream, state); + } + return !state.ended && (state.length < state.highWaterMark || state.length === 0); + } + function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount("data") > 0) { + if ((state.state & kMultiAwaitDrain) !== 0) { + state.awaitDrainWriters.clear(); + } else { + state.awaitDrainWriters = null; + } + state.dataEmitted = true; + stream.emit("data", chunk); + } else { + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk); + else state.buffer.push(chunk); + if ((state.state & kNeedReadable) !== 0) emitReadable(stream); + } + maybeReadMore(stream, state); + } + Readable.prototype.isPaused = function() { + const state = this._readableState; + return state[kPaused] === true || state.flowing === false; + }; + Readable.prototype.setEncoding = function(enc) { + const decoder = new StringDecoder(enc); + this._readableState.decoder = decoder; + this._readableState.encoding = this._readableState.decoder.encoding; + const buffer = this._readableState.buffer; + let content = ""; + for (const data of buffer) { + content += decoder.write(data); + } + buffer.clear(); + if (content !== "") buffer.push(content); + this._readableState.length = content.length; + return this; + }; + var MAX_HWM = 1073741824; + function computeNewHighWaterMark(n) { + if (n > MAX_HWM) { + throw new ERR_OUT_OF_RANGE("size", "<= 1GiB", n); + } else { + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; + } + function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if ((state.state & kObjectMode) !== 0) return 1; + if (NumberIsNaN(n)) { + if (state.flowing && state.length) return state.buffer.first().length; + return state.length; + } + if (n <= state.length) return n; + return state.ended ? state.length : 0; + } + Readable.prototype.read = function(n) { + debug("read", n); + if (n === void 0) { + n = NaN; + } else if (!NumberIsInteger(n)) { + n = NumberParseInt(n, 10); + } + const state = this._readableState; + const nOrig = n; + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n !== 0) state.state &= ~kEmittedReadable; + if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { + debug("read: emitReadable", state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this); + else emitReadable(this); + return null; + } + n = howMuchToRead(n, state); + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } + let doRead = (state.state & kNeedReadable) !== 0; + debug("need readable", doRead); + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug("length less than watermark", doRead); + } + if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) { + doRead = false; + debug("reading, ended or constructing", doRead); + } else if (doRead) { + debug("do read"); + state.state |= kReading | kSync; + if (state.length === 0) state.state |= kNeedReadable; + try { + this._read(state.highWaterMark); + } catch (err) { + errorOrDestroy(this, err); + } + state.state &= ~kSync; + if (!state.reading) n = howMuchToRead(nOrig, state); + } + let ret; + if (n > 0) ret = fromList(n, state); + else ret = null; + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark; + n = 0; + } else { + state.length -= n; + if (state.multiAwaitDrain) { + state.awaitDrainWriters.clear(); + } else { + state.awaitDrainWriters = null; + } + } + if (state.length === 0) { + if (!state.ended) state.needReadable = true; + if (nOrig !== n && state.ended) endReadable(this); + } + if (ret !== null && !state.errorEmitted && !state.closeEmitted) { + state.dataEmitted = true; + this.emit("data", ret); + } + return ret; + }; + function onEofChunk(stream, state) { + debug("onEofChunk"); + if (state.ended) return; + if (state.decoder) { + const chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + if (state.sync) { + emitReadable(stream); + } else { + state.needReadable = false; + state.emittedReadable = true; + emitReadable_(stream); + } + } + function emitReadable(stream) { + const state = stream._readableState; + debug("emitReadable", state.needReadable, state.emittedReadable); + state.needReadable = false; + if (!state.emittedReadable) { + debug("emitReadable", state.flowing); + state.emittedReadable = true; + process3.nextTick(emitReadable_, stream); + } + } + function emitReadable_(stream) { + const state = stream._readableState; + debug("emitReadable_", state.destroyed, state.length, state.ended); + if (!state.destroyed && !state.errored && (state.length || state.ended)) { + stream.emit("readable"); + state.emittedReadable = false; + } + state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; + flow(stream); + } + function maybeReadMore(stream, state) { + if (!state.readingMore && state.constructed) { + state.readingMore = true; + process3.nextTick(maybeReadMore_, stream, state); + } + } + function maybeReadMore_(stream, state) { + while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) { + const len = state.length; + debug("maybeReadMore read 0"); + stream.read(0); + if (len === state.length) + break; + } + state.readingMore = false; + } + Readable.prototype._read = function(n) { + throw new ERR_METHOD_NOT_IMPLEMENTED("_read()"); + }; + Readable.prototype.pipe = function(dest, pipeOpts) { + const src = this; + const state = this._readableState; + if (state.pipes.length === 1) { + if (!state.multiAwaitDrain) { + state.multiAwaitDrain = true; + state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : []); + } + } + state.pipes.push(dest); + debug("pipe count=%d opts=%j", state.pipes.length, pipeOpts); + const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process3.stdout && dest !== process3.stderr; + const endFn = doEnd ? onend : unpipe; + if (state.endEmitted) process3.nextTick(endFn); + else src.once("end", endFn); + dest.on("unpipe", onunpipe); + function onunpipe(readable, unpipeInfo) { + debug("onunpipe"); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + function onend() { + debug("onend"); + dest.end(); + } + let ondrain; + let cleanedUp = false; + function cleanup() { + debug("cleanup"); + dest.removeListener("close", onclose); + dest.removeListener("finish", onfinish); + if (ondrain) { + dest.removeListener("drain", ondrain); + } + dest.removeListener("error", onerror); + dest.removeListener("unpipe", onunpipe); + src.removeListener("end", onend); + src.removeListener("end", unpipe); + src.removeListener("data", ondata); + cleanedUp = true; + if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + function pause() { + if (!cleanedUp) { + if (state.pipes.length === 1 && state.pipes[0] === dest) { + debug("false write response, pause", 0); + state.awaitDrainWriters = dest; + state.multiAwaitDrain = false; + } else if (state.pipes.length > 1 && state.pipes.includes(dest)) { + debug("false write response, pause", state.awaitDrainWriters.size); + state.awaitDrainWriters.add(dest); + } + src.pause(); + } + if (!ondrain) { + ondrain = pipeOnDrain(src, dest); + dest.on("drain", ondrain); + } + } + src.on("data", ondata); + function ondata(chunk) { + debug("ondata"); + const ret = dest.write(chunk); + debug("dest.write", ret); + if (ret === false) { + pause(); + } + } + function onerror(er) { + debug("onerror", er); + unpipe(); + dest.removeListener("error", onerror); + if (dest.listenerCount("error") === 0) { + const s = dest._writableState || dest._readableState; + if (s && !s.errorEmitted) { + errorOrDestroy(dest, er); + } else { + dest.emit("error", er); + } + } + } + prependListener3(dest, "error", onerror); + function onclose() { + dest.removeListener("finish", onfinish); + unpipe(); + } + dest.once("close", onclose); + function onfinish() { + debug("onfinish"); + dest.removeListener("close", onclose); + unpipe(); + } + dest.once("finish", onfinish); + function unpipe() { + debug("unpipe"); + src.unpipe(dest); + } + dest.emit("pipe", src); + if (dest.writableNeedDrain === true) { + pause(); + } else if (!state.flowing) { + debug("pipe resume"); + src.resume(); + } + return dest; + }; + function pipeOnDrain(src, dest) { + return function pipeOnDrainFunctionResult() { + const state = src._readableState; + if (state.awaitDrainWriters === dest) { + debug("pipeOnDrain", 1); + state.awaitDrainWriters = null; + } else if (state.multiAwaitDrain) { + debug("pipeOnDrain", state.awaitDrainWriters.size); + state.awaitDrainWriters.delete(dest); + } + if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount("data")) { + src.resume(); + } + }; + } + Readable.prototype.unpipe = function(dest) { + const state = this._readableState; + const unpipeInfo = { + hasUnpiped: false + }; + if (state.pipes.length === 0) return this; + if (!dest) { + const dests = state.pipes; + state.pipes = []; + this.pause(); + for (let i = 0; i < dests.length; i++) + dests[i].emit("unpipe", this, { + hasUnpiped: false + }); + return this; + } + const index = ArrayPrototypeIndexOf(state.pipes, dest); + if (index === -1) return this; + state.pipes.splice(index, 1); + if (state.pipes.length === 0) this.pause(); + dest.emit("unpipe", this, unpipeInfo); + return this; + }; + Readable.prototype.on = function(ev, fn) { + const res = Stream.prototype.on.call(this, ev, fn); + const state = this._readableState; + if (ev === "data") { + state.readableListening = this.listenerCount("readable") > 0; + if (state.flowing !== false) this.resume(); + } else if (ev === "readable") { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + debug("on readable", state.length, state.reading); + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + process3.nextTick(nReadingNextTick, this); + } + } + } + return res; + }; + Readable.prototype.addListener = Readable.prototype.on; + Readable.prototype.removeListener = function(ev, fn) { + const res = Stream.prototype.removeListener.call(this, ev, fn); + if (ev === "readable") { + process3.nextTick(updateReadableListening, this); + } + return res; + }; + Readable.prototype.off = Readable.prototype.removeListener; + Readable.prototype.removeAllListeners = function(ev) { + const res = Stream.prototype.removeAllListeners.apply(this, arguments); + if (ev === "readable" || ev === void 0) { + process3.nextTick(updateReadableListening, this); + } + return res; + }; + function updateReadableListening(self2) { + const state = self2._readableState; + state.readableListening = self2.listenerCount("readable") > 0; + if (state.resumeScheduled && state[kPaused] === false) { + state.flowing = true; + } else if (self2.listenerCount("data") > 0) { + self2.resume(); + } else if (!state.readableListening) { + state.flowing = null; + } + } + function nReadingNextTick(self2) { + debug("readable nexttick read 0"); + self2.read(0); + } + Readable.prototype.resume = function() { + const state = this._readableState; + if (!state.flowing) { + debug("resume"); + state.flowing = !state.readableListening; + resume(this, state); + } + state[kPaused] = false; + return this; + }; + function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + process3.nextTick(resume_, stream, state); + } + } + function resume_(stream, state) { + debug("resume", state.reading); + if (!state.reading) { + stream.read(0); + } + state.resumeScheduled = false; + stream.emit("resume"); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); + } + Readable.prototype.pause = function() { + debug("call pause flowing=%j", this._readableState.flowing); + if (this._readableState.flowing !== false) { + debug("pause"); + this._readableState.flowing = false; + this.emit("pause"); + } + this._readableState[kPaused] = true; + return this; + }; + function flow(stream) { + const state = stream._readableState; + debug("flow", state.flowing); + while (state.flowing && stream.read() !== null) ; + } + Readable.prototype.wrap = function(stream) { + let paused = false; + stream.on("data", (chunk) => { + if (!this.push(chunk) && stream.pause) { + paused = true; + stream.pause(); + } + }); + stream.on("end", () => { + this.push(null); + }); + stream.on("error", (err) => { + errorOrDestroy(this, err); + }); + stream.on("close", () => { + this.destroy(); + }); + stream.on("destroy", () => { + this.destroy(); + }); + this._read = () => { + if (paused && stream.resume) { + paused = false; + stream.resume(); + } + }; + const streamKeys = ObjectKeys(stream); + for (let j = 1; j < streamKeys.length; j++) { + const i = streamKeys[j]; + if (this[i] === void 0 && typeof stream[i] === "function") { + this[i] = stream[i].bind(stream); + } + } + return this; + }; + Readable.prototype[SymbolAsyncIterator] = function() { + return streamToAsyncIterator(this); + }; + Readable.prototype.iterator = function(options) { + if (options !== void 0) { + validateObject(options, "options"); + } + return streamToAsyncIterator(this, options); + }; + function streamToAsyncIterator(stream, options) { + if (typeof stream.read !== "function") { + stream = Readable.wrap(stream, { + objectMode: true + }); + } + const iter = createAsyncIterator(stream, options); + iter.stream = stream; + return iter; + } + async function* createAsyncIterator(stream, options) { + let callback = nop; + function next(resolve2) { + if (this === stream) { + callback(); + callback = nop; + } else { + callback = resolve2; + } + } + stream.on("readable", next); + let error; + const cleanup = eos( + stream, + { + writable: false + }, + (err) => { + error = err ? aggregateTwoErrors(error, err) : null; + callback(); + callback = nop; + } + ); + try { + while (true) { + const chunk = stream.destroyed ? null : stream.read(); + if (chunk !== null) { + yield chunk; + } else if (error) { + throw error; + } else if (error === null) { + return; + } else { + await new Promise2(next); + } + } + } catch (err) { + error = aggregateTwoErrors(error, err); + throw error; + } finally { + if ((error || (options === null || options === void 0 ? void 0 : options.destroyOnReturn) !== false) && (error === void 0 || stream._readableState.autoDestroy)) { + destroyImpl.destroyer(stream, null); + } else { + stream.off("readable", next); + cleanup(); + } + } + } + ObjectDefineProperties(Readable.prototype, { + readable: { + __proto__: null, + get() { + const r = this._readableState; + return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted; + }, + set(val) { + if (this._readableState) { + this._readableState.readable = !!val; + } + } + }, + readableDidRead: { + __proto__: null, + enumerable: false, + get: function() { + return this._readableState.dataEmitted; + } + }, + readableAborted: { + __proto__: null, + enumerable: false, + get: function() { + return !!(this._readableState.readable !== false && (this._readableState.destroyed || this._readableState.errored) && !this._readableState.endEmitted); + } + }, + readableHighWaterMark: { + __proto__: null, + enumerable: false, + get: function() { + return this._readableState.highWaterMark; + } + }, + readableBuffer: { + __proto__: null, + enumerable: false, + get: function() { + return this._readableState && this._readableState.buffer; + } + }, + readableFlowing: { + __proto__: null, + enumerable: false, + get: function() { + return this._readableState.flowing; + }, + set: function(state) { + if (this._readableState) { + this._readableState.flowing = state; + } + } + }, + readableLength: { + __proto__: null, + enumerable: false, + get() { + return this._readableState.length; + } + }, + readableObjectMode: { + __proto__: null, + enumerable: false, + get() { + return this._readableState ? this._readableState.objectMode : false; + } + }, + readableEncoding: { + __proto__: null, + enumerable: false, + get() { + return this._readableState ? this._readableState.encoding : null; + } + }, + errored: { + __proto__: null, + enumerable: false, + get() { + return this._readableState ? this._readableState.errored : null; + } + }, + closed: { + __proto__: null, + get() { + return this._readableState ? this._readableState.closed : false; + } + }, + destroyed: { + __proto__: null, + enumerable: false, + get() { + return this._readableState ? this._readableState.destroyed : false; + }, + set(value) { + if (!this._readableState) { + return; + } + this._readableState.destroyed = value; + } + }, + readableEnded: { + __proto__: null, + enumerable: false, + get() { + return this._readableState ? this._readableState.endEmitted : false; + } + } + }); + ObjectDefineProperties(ReadableState.prototype, { + // Legacy getter for `pipesCount`. + pipesCount: { + __proto__: null, + get() { + return this.pipes.length; + } + }, + // Legacy property for `paused`. + paused: { + __proto__: null, + get() { + return this[kPaused] !== false; + }, + set(value) { + this[kPaused] = !!value; + } + } + }); + Readable._fromList = fromList; + function fromList(n, state) { + if (state.length === 0) return null; + let ret; + if (state.objectMode) ret = state.buffer.shift(); + else if (!n || n >= state.length) { + if (state.decoder) ret = state.buffer.join(""); + else if (state.buffer.length === 1) ret = state.buffer.first(); + else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + ret = state.buffer.consume(n, state.decoder); + } + return ret; + } + function endReadable(stream) { + const state = stream._readableState; + debug("endReadable", state.endEmitted); + if (!state.endEmitted) { + state.ended = true; + process3.nextTick(endReadableNT, state, stream); + } + } + function endReadableNT(state, stream) { + debug("endReadableNT", state.endEmitted, state.length); + if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.emit("end"); + if (stream.writable && stream.allowHalfOpen === false) { + process3.nextTick(endWritableNT, stream); + } else if (state.autoDestroy) { + const wState = stream._writableState; + const autoDestroy = !wState || wState.autoDestroy && // We don't expect the writable to ever 'finish' + // if writable is explicitly set to false. + (wState.finished || wState.writable === false); + if (autoDestroy) { + stream.destroy(); + } + } + } + } + function endWritableNT(stream) { + const writable = stream.writable && !stream.writableEnded && !stream.destroyed; + if (writable) { + stream.end(); + } + } + Readable.from = function(iterable, opts) { + return from(Readable, iterable, opts); + }; + var webStreamsAdapters; + function lazyWebStreams() { + if (webStreamsAdapters === void 0) webStreamsAdapters = {}; + return webStreamsAdapters; + } + Readable.fromWeb = function(readableStream, options) { + return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options); + }; + Readable.toWeb = function(streamReadable, options) { + return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options); + }; + Readable.wrap = function(src, options) { + var _ref, _src$readableObjectMo; + return new Readable({ + objectMode: (_ref = (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== void 0 ? _src$readableObjectMo : src.objectMode) !== null && _ref !== void 0 ? _ref : true, + ...options, + destroy(err, callback) { + destroyImpl.destroyer(src, err); + callback(err); + } + }).wrap(src); + }; + } + }); + + // node_modules/readable-stream/lib/internal/streams/writable.js + var require_writable = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/writable.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var process3 = require_browser2(); + var { + ArrayPrototypeSlice, + Error: Error2, + FunctionPrototypeSymbolHasInstance, + ObjectDefineProperty, + ObjectDefineProperties, + ObjectSetPrototypeOf, + StringPrototypeToLowerCase, + Symbol: Symbol2, + SymbolHasInstance + } = require_primordials(); + module.exports = Writable; + Writable.WritableState = WritableState; + var { EventEmitter: EE } = (init_events(), __toCommonJS(events_exports)); + var Stream = require_legacy().Stream; + var { Buffer: Buffer3 } = (init_buffer(), __toCommonJS(buffer_exports)); + var destroyImpl = require_destroy(); + var { addAbortSignal } = require_add_abort_signal(); + var { getHighWaterMark, getDefaultHighWaterMark } = require_state(); + var { + ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED, + ERR_STREAM_ALREADY_FINISHED, + ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING + } = require_errors().codes; + var { errorOrDestroy } = destroyImpl; + ObjectSetPrototypeOf(Writable.prototype, Stream.prototype); + ObjectSetPrototypeOf(Writable, Stream); + function nop() { + } + var kOnFinished = Symbol2("kOnFinished"); + function WritableState(options, stream, isDuplex) { + if (typeof isDuplex !== "boolean") isDuplex = stream instanceof require_duplex(); + this.objectMode = !!(options && options.objectMode); + if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode); + this.highWaterMark = options ? getHighWaterMark(this, options, "writableHighWaterMark", isDuplex) : getDefaultHighWaterMark(false); + this.finalCalled = false; + this.needDrain = false; + this.ending = false; + this.ended = false; + this.finished = false; + this.destroyed = false; + const noDecode = !!(options && options.decodeStrings === false); + this.decodeStrings = !noDecode; + this.defaultEncoding = options && options.defaultEncoding || "utf8"; + this.length = 0; + this.writing = false; + this.corked = 0; + this.sync = true; + this.bufferProcessing = false; + this.onwrite = onwrite.bind(void 0, stream); + this.writecb = null; + this.writelen = 0; + this.afterWriteTickInfo = null; + resetBuffer(this); + this.pendingcb = 0; + this.constructed = true; + this.prefinished = false; + this.errorEmitted = false; + this.emitClose = !options || options.emitClose !== false; + this.autoDestroy = !options || options.autoDestroy !== false; + this.errored = null; + this.closed = false; + this.closeEmitted = false; + this[kOnFinished] = []; + } + function resetBuffer(state) { + state.buffered = []; + state.bufferedIndex = 0; + state.allBuffers = true; + state.allNoop = true; + } + WritableState.prototype.getBuffer = function getBuffer() { + return ArrayPrototypeSlice(this.buffered, this.bufferedIndex); + }; + ObjectDefineProperty(WritableState.prototype, "bufferedRequestCount", { + __proto__: null, + get() { + return this.buffered.length - this.bufferedIndex; + } + }); + function Writable(options) { + const isDuplex = this instanceof require_duplex(); + if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex); + if (options) { + if (typeof options.write === "function") this._write = options.write; + if (typeof options.writev === "function") this._writev = options.writev; + if (typeof options.destroy === "function") this._destroy = options.destroy; + if (typeof options.final === "function") this._final = options.final; + if (typeof options.construct === "function") this._construct = options.construct; + if (options.signal) addAbortSignal(options.signal, this); + } + Stream.call(this, options); + destroyImpl.construct(this, () => { + const state = this._writableState; + if (!state.writing) { + clearBuffer(this, state); + } + finishMaybe(this, state); + }); + } + ObjectDefineProperty(Writable, SymbolHasInstance, { + __proto__: null, + value: function(object) { + if (FunctionPrototypeSymbolHasInstance(this, object)) return true; + if (this !== Writable) return false; + return object && object._writableState instanceof WritableState; + } + }); + Writable.prototype.pipe = function() { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); + }; + function _write(stream, chunk, encoding, cb) { + const state = stream._writableState; + if (typeof encoding === "function") { + cb = encoding; + encoding = state.defaultEncoding; + } else { + if (!encoding) encoding = state.defaultEncoding; + else if (encoding !== "buffer" && !Buffer3.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding); + if (typeof cb !== "function") cb = nop; + } + if (chunk === null) { + throw new ERR_STREAM_NULL_VALUES(); + } else if (!state.objectMode) { + if (typeof chunk === "string") { + if (state.decodeStrings !== false) { + chunk = Buffer3.from(chunk, encoding); + encoding = "buffer"; + } + } else if (chunk instanceof Buffer3) { + encoding = "buffer"; + } else if (Stream._isUint8Array(chunk)) { + chunk = Stream._uint8ArrayToBuffer(chunk); + encoding = "buffer"; + } else { + throw new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk); + } + } + let err; + if (state.ending) { + err = new ERR_STREAM_WRITE_AFTER_END(); + } else if (state.destroyed) { + err = new ERR_STREAM_DESTROYED("write"); + } + if (err) { + process3.nextTick(cb, err); + errorOrDestroy(stream, err, true); + return err; + } + state.pendingcb++; + return writeOrBuffer(stream, state, chunk, encoding, cb); + } + Writable.prototype.write = function(chunk, encoding, cb) { + return _write(this, chunk, encoding, cb) === true; + }; + Writable.prototype.cork = function() { + this._writableState.corked++; + }; + Writable.prototype.uncork = function() { + const state = this._writableState; + if (state.corked) { + state.corked--; + if (!state.writing) clearBuffer(this, state); + } + }; + Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + if (typeof encoding === "string") encoding = StringPrototypeToLowerCase(encoding); + if (!Buffer3.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; + }; + function writeOrBuffer(stream, state, chunk, encoding, callback) { + const len = state.objectMode ? 1 : chunk.length; + state.length += len; + const ret = state.length < state.highWaterMark; + if (!ret) state.needDrain = true; + if (state.writing || state.corked || state.errored || !state.constructed) { + state.buffered.push({ + chunk, + encoding, + callback + }); + if (state.allBuffers && encoding !== "buffer") { + state.allBuffers = false; + } + if (state.allNoop && callback !== nop) { + state.allNoop = false; + } + } else { + state.writelen = len; + state.writecb = callback; + state.writing = true; + state.sync = true; + stream._write(chunk, encoding, state.onwrite); + state.sync = false; + } + return ret && !state.errored && !state.destroyed; + } + function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED("write")); + else if (writev) stream._writev(chunk, state.onwrite); + else stream._write(chunk, encoding, state.onwrite); + state.sync = false; + } + function onwriteError(stream, state, er, cb) { + --state.pendingcb; + cb(er); + errorBuffer(state); + errorOrDestroy(stream, er); + } + function onwrite(stream, er) { + const state = stream._writableState; + const sync = state.sync; + const cb = state.writecb; + if (typeof cb !== "function") { + errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK()); + return; + } + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; + if (er) { + er.stack; + if (!state.errored) { + state.errored = er; + } + if (stream._readableState && !stream._readableState.errored) { + stream._readableState.errored = er; + } + if (sync) { + process3.nextTick(onwriteError, stream, state, er, cb); + } else { + onwriteError(stream, state, er, cb); + } + } else { + if (state.buffered.length > state.bufferedIndex) { + clearBuffer(stream, state); + } + if (sync) { + if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) { + state.afterWriteTickInfo.count++; + } else { + state.afterWriteTickInfo = { + count: 1, + cb, + stream, + state + }; + process3.nextTick(afterWriteTick, state.afterWriteTickInfo); + } + } else { + afterWrite(stream, state, 1, cb); + } + } + } + function afterWriteTick({ stream, state, count, cb }) { + state.afterWriteTickInfo = null; + return afterWrite(stream, state, count, cb); + } + function afterWrite(stream, state, count, cb) { + const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain; + if (needDrain) { + state.needDrain = false; + stream.emit("drain"); + } + while (count-- > 0) { + state.pendingcb--; + cb(); + } + if (state.destroyed) { + errorBuffer(state); + } + finishMaybe(stream, state); + } + function errorBuffer(state) { + if (state.writing) { + return; + } + for (let n = state.bufferedIndex; n < state.buffered.length; ++n) { + var _state$errored; + const { chunk, callback } = state.buffered[n]; + const len = state.objectMode ? 1 : chunk.length; + state.length -= len; + callback( + (_state$errored = state.errored) !== null && _state$errored !== void 0 ? _state$errored : new ERR_STREAM_DESTROYED("write") + ); + } + const onfinishCallbacks = state[kOnFinished].splice(0); + for (let i = 0; i < onfinishCallbacks.length; i++) { + var _state$errored2; + onfinishCallbacks[i]( + (_state$errored2 = state.errored) !== null && _state$errored2 !== void 0 ? _state$errored2 : new ERR_STREAM_DESTROYED("end") + ); + } + resetBuffer(state); + } + function clearBuffer(stream, state) { + if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) { + return; + } + const { buffered, bufferedIndex, objectMode } = state; + const bufferedLength = buffered.length - bufferedIndex; + if (!bufferedLength) { + return; + } + let i = bufferedIndex; + state.bufferProcessing = true; + if (bufferedLength > 1 && stream._writev) { + state.pendingcb -= bufferedLength - 1; + const callback = state.allNoop ? nop : (err) => { + for (let n = i; n < buffered.length; ++n) { + buffered[n].callback(err); + } + }; + const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i); + chunks.allBuffers = state.allBuffers; + doWrite(stream, state, true, state.length, chunks, "", callback); + resetBuffer(state); + } else { + do { + const { chunk, encoding, callback } = buffered[i]; + buffered[i++] = null; + const len = objectMode ? 1 : chunk.length; + doWrite(stream, state, false, len, chunk, encoding, callback); + } while (i < buffered.length && !state.writing); + if (i === buffered.length) { + resetBuffer(state); + } else if (i > 256) { + buffered.splice(0, i); + state.bufferedIndex = 0; + } else { + state.bufferedIndex = i; + } + } + state.bufferProcessing = false; + } + Writable.prototype._write = function(chunk, encoding, cb) { + if (this._writev) { + this._writev( + [ + { + chunk, + encoding + } + ], + cb + ); + } else { + throw new ERR_METHOD_NOT_IMPLEMENTED("_write()"); + } + }; + Writable.prototype._writev = null; + Writable.prototype.end = function(chunk, encoding, cb) { + const state = this._writableState; + if (typeof chunk === "function") { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === "function") { + cb = encoding; + encoding = null; + } + let err; + if (chunk !== null && chunk !== void 0) { + const ret = _write(this, chunk, encoding); + if (ret instanceof Error2) { + err = ret; + } + } + if (state.corked) { + state.corked = 1; + this.uncork(); + } + if (err) { + } else if (!state.errored && !state.ending) { + state.ending = true; + finishMaybe(this, state, true); + state.ended = true; + } else if (state.finished) { + err = new ERR_STREAM_ALREADY_FINISHED("end"); + } else if (state.destroyed) { + err = new ERR_STREAM_DESTROYED("end"); + } + if (typeof cb === "function") { + if (err || state.finished) { + process3.nextTick(cb, err); + } else { + state[kOnFinished].push(cb); + } + } + return this; + }; + function needFinish(state) { + return state.ending && !state.destroyed && state.constructed && state.length === 0 && !state.errored && state.buffered.length === 0 && !state.finished && !state.writing && !state.errorEmitted && !state.closeEmitted; + } + function callFinal(stream, state) { + let called = false; + function onFinish(err) { + if (called) { + errorOrDestroy(stream, err !== null && err !== void 0 ? err : ERR_MULTIPLE_CALLBACK()); + return; + } + called = true; + state.pendingcb--; + if (err) { + const onfinishCallbacks = state[kOnFinished].splice(0); + for (let i = 0; i < onfinishCallbacks.length; i++) { + onfinishCallbacks[i](err); + } + errorOrDestroy(stream, err, state.sync); + } else if (needFinish(state)) { + state.prefinished = true; + stream.emit("prefinish"); + state.pendingcb++; + process3.nextTick(finish, stream, state); + } + } + state.sync = true; + state.pendingcb++; + try { + stream._final(onFinish); + } catch (err) { + onFinish(err); + } + state.sync = false; + } + function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === "function" && !state.destroyed) { + state.finalCalled = true; + callFinal(stream, state); + } else { + state.prefinished = true; + stream.emit("prefinish"); + } + } + } + function finishMaybe(stream, state, sync) { + if (needFinish(state)) { + prefinish(stream, state); + if (state.pendingcb === 0) { + if (sync) { + state.pendingcb++; + process3.nextTick( + (stream2, state2) => { + if (needFinish(state2)) { + finish(stream2, state2); + } else { + state2.pendingcb--; + } + }, + stream, + state + ); + } else if (needFinish(state)) { + state.pendingcb++; + finish(stream, state); + } + } + } + } + function finish(stream, state) { + state.pendingcb--; + state.finished = true; + const onfinishCallbacks = state[kOnFinished].splice(0); + for (let i = 0; i < onfinishCallbacks.length; i++) { + onfinishCallbacks[i](); + } + stream.emit("finish"); + if (state.autoDestroy) { + const rState = stream._readableState; + const autoDestroy = !rState || rState.autoDestroy && // We don't expect the readable to ever 'end' + // if readable is explicitly set to false. + (rState.endEmitted || rState.readable === false); + if (autoDestroy) { + stream.destroy(); + } + } + } + ObjectDefineProperties(Writable.prototype, { + closed: { + __proto__: null, + get() { + return this._writableState ? this._writableState.closed : false; + } + }, + destroyed: { + __proto__: null, + get() { + return this._writableState ? this._writableState.destroyed : false; + }, + set(value) { + if (this._writableState) { + this._writableState.destroyed = value; + } + } + }, + writable: { + __proto__: null, + get() { + const w = this._writableState; + return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended; + }, + set(val) { + if (this._writableState) { + this._writableState.writable = !!val; + } + } + }, + writableFinished: { + __proto__: null, + get() { + return this._writableState ? this._writableState.finished : false; + } + }, + writableObjectMode: { + __proto__: null, + get() { + return this._writableState ? this._writableState.objectMode : false; + } + }, + writableBuffer: { + __proto__: null, + get() { + return this._writableState && this._writableState.getBuffer(); + } + }, + writableEnded: { + __proto__: null, + get() { + return this._writableState ? this._writableState.ending : false; + } + }, + writableNeedDrain: { + __proto__: null, + get() { + const wState = this._writableState; + if (!wState) return false; + return !wState.destroyed && !wState.ending && wState.needDrain; + } + }, + writableHighWaterMark: { + __proto__: null, + get() { + return this._writableState && this._writableState.highWaterMark; + } + }, + writableCorked: { + __proto__: null, + get() { + return this._writableState ? this._writableState.corked : 0; + } + }, + writableLength: { + __proto__: null, + get() { + return this._writableState && this._writableState.length; + } + }, + errored: { + __proto__: null, + enumerable: false, + get() { + return this._writableState ? this._writableState.errored : null; + } + }, + writableAborted: { + __proto__: null, + enumerable: false, + get: function() { + return !!(this._writableState.writable !== false && (this._writableState.destroyed || this._writableState.errored) && !this._writableState.finished); + } + } + }); + var destroy = destroyImpl.destroy; + Writable.prototype.destroy = function(err, cb) { + const state = this._writableState; + if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) { + process3.nextTick(errorBuffer, state); + } + destroy.call(this, err, cb); + return this; + }; + Writable.prototype._undestroy = destroyImpl.undestroy; + Writable.prototype._destroy = function(err, cb) { + cb(err); + }; + Writable.prototype[EE.captureRejectionSymbol] = function(err) { + this.destroy(err); + }; + var webStreamsAdapters; + function lazyWebStreams() { + if (webStreamsAdapters === void 0) webStreamsAdapters = {}; + return webStreamsAdapters; + } + Writable.fromWeb = function(writableStream, options) { + return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options); + }; + Writable.toWeb = function(streamWritable) { + return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable); + }; + } + }); + + // node_modules/readable-stream/lib/internal/streams/duplexify.js + var require_duplexify = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/duplexify.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var process3 = require_browser2(); + var bufferModule = (init_buffer(), __toCommonJS(buffer_exports)); + var { + isReadable, + isWritable, + isIterable, + isNodeStream, + isReadableNodeStream, + isWritableNodeStream, + isDuplexNodeStream, + isReadableStream, + isWritableStream + } = require_utils(); + var eos = require_end_of_stream(); + var { + AbortError, + codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE } + } = require_errors(); + var { destroyer } = require_destroy(); + var Duplex = require_duplex(); + var Readable = require_readable(); + var Writable = require_writable(); + var { createDeferredPromise } = require_util(); + var from = require_from(); + var Blob2 = globalThis.Blob || bufferModule.Blob; + var isBlob = typeof Blob2 !== "undefined" ? function isBlob2(b) { + return b instanceof Blob2; + } : function isBlob2(b) { + return false; + }; + var AbortController = globalThis.AbortController || require_browser().AbortController; + var { FunctionPrototypeCall } = require_primordials(); + var Duplexify = class extends Duplex { + constructor(options) { + super(options); + if ((options === null || options === void 0 ? void 0 : options.readable) === false) { + this._readableState.readable = false; + this._readableState.ended = true; + this._readableState.endEmitted = true; + } + if ((options === null || options === void 0 ? void 0 : options.writable) === false) { + this._writableState.writable = false; + this._writableState.ending = true; + this._writableState.ended = true; + this._writableState.finished = true; + } + } + }; + module.exports = function duplexify(body, name2) { + if (isDuplexNodeStream(body)) { + return body; + } + if (isReadableNodeStream(body)) { + return _duplexify({ + readable: body + }); + } + if (isWritableNodeStream(body)) { + return _duplexify({ + writable: body + }); + } + if (isNodeStream(body)) { + return _duplexify({ + writable: false, + readable: false + }); + } + if (isReadableStream(body)) { + return _duplexify({ + readable: Readable.fromWeb(body) + }); + } + if (isWritableStream(body)) { + return _duplexify({ + writable: Writable.fromWeb(body) + }); + } + if (typeof body === "function") { + const { value, write, final, destroy } = fromAsyncGen(body); + if (isIterable(value)) { + return from(Duplexify, value, { + // TODO (ronag): highWaterMark? + objectMode: true, + write, + final, + destroy + }); + } + const then2 = value === null || value === void 0 ? void 0 : value.then; + if (typeof then2 === "function") { + let d; + const promise = FunctionPrototypeCall( + then2, + value, + (val) => { + if (val != null) { + throw new ERR_INVALID_RETURN_VALUE("nully", "body", val); + } + }, + (err) => { + destroyer(d, err); + } + ); + return d = new Duplexify({ + // TODO (ronag): highWaterMark? + objectMode: true, + readable: false, + write, + final(cb) { + final(async () => { + try { + await promise; + process3.nextTick(cb, null); + } catch (err) { + process3.nextTick(cb, err); + } + }); + }, + destroy + }); + } + throw new ERR_INVALID_RETURN_VALUE("Iterable, AsyncIterable or AsyncFunction", name2, value); + } + if (isBlob(body)) { + return duplexify(body.arrayBuffer()); + } + if (isIterable(body)) { + return from(Duplexify, body, { + // TODO (ronag): highWaterMark? + objectMode: true, + writable: false + }); + } + if (isReadableStream(body === null || body === void 0 ? void 0 : body.readable) && isWritableStream(body === null || body === void 0 ? void 0 : body.writable)) { + return Duplexify.fromWeb(body); + } + if (typeof (body === null || body === void 0 ? void 0 : body.writable) === "object" || typeof (body === null || body === void 0 ? void 0 : body.readable) === "object") { + const readable = body !== null && body !== void 0 && body.readable ? isReadableNodeStream(body === null || body === void 0 ? void 0 : body.readable) ? body === null || body === void 0 ? void 0 : body.readable : duplexify(body.readable) : void 0; + const writable = body !== null && body !== void 0 && body.writable ? isWritableNodeStream(body === null || body === void 0 ? void 0 : body.writable) ? body === null || body === void 0 ? void 0 : body.writable : duplexify(body.writable) : void 0; + return _duplexify({ + readable, + writable + }); + } + const then = body === null || body === void 0 ? void 0 : body.then; + if (typeof then === "function") { + let d; + FunctionPrototypeCall( + then, + body, + (val) => { + if (val != null) { + d.push(val); + } + d.push(null); + }, + (err) => { + destroyer(d, err); + } + ); + return d = new Duplexify({ + objectMode: true, + writable: false, + read() { + } + }); + } + throw new ERR_INVALID_ARG_TYPE( + name2, + [ + "Blob", + "ReadableStream", + "WritableStream", + "Stream", + "Iterable", + "AsyncIterable", + "Function", + "{ readable, writable } pair", + "Promise" + ], + body + ); + }; + function fromAsyncGen(fn) { + let { promise, resolve: resolve2 } = createDeferredPromise(); + const ac = new AbortController(); + const signal = ac.signal; + const value = fn( + async function* () { + while (true) { + const _promise = promise; + promise = null; + const { chunk, done, cb } = await _promise; + process3.nextTick(cb); + if (done) return; + if (signal.aborted) + throw new AbortError(void 0, { + cause: signal.reason + }); + ({ promise, resolve: resolve2 } = createDeferredPromise()); + yield chunk; + } + }(), + { + signal + } + ); + return { + value, + write(chunk, encoding, cb) { + const _resolve = resolve2; + resolve2 = null; + _resolve({ + chunk, + done: false, + cb + }); + }, + final(cb) { + const _resolve = resolve2; + resolve2 = null; + _resolve({ + done: true, + cb + }); + }, + destroy(err, cb) { + ac.abort(); + cb(err); + } + }; + } + function _duplexify(pair) { + const r = pair.readable && typeof pair.readable.read !== "function" ? Readable.wrap(pair.readable) : pair.readable; + const w = pair.writable; + let readable = !!isReadable(r); + let writable = !!isWritable(w); + let ondrain; + let onfinish; + let onreadable; + let onclose; + let d; + function onfinished(err) { + const cb = onclose; + onclose = null; + if (cb) { + cb(err); + } else if (err) { + d.destroy(err); + } + } + d = new Duplexify({ + // TODO (ronag): highWaterMark? + readableObjectMode: !!(r !== null && r !== void 0 && r.readableObjectMode), + writableObjectMode: !!(w !== null && w !== void 0 && w.writableObjectMode), + readable, + writable + }); + if (writable) { + eos(w, (err) => { + writable = false; + if (err) { + destroyer(r, err); + } + onfinished(err); + }); + d._write = function(chunk, encoding, callback) { + if (w.write(chunk, encoding)) { + callback(); + } else { + ondrain = callback; + } + }; + d._final = function(callback) { + w.end(); + onfinish = callback; + }; + w.on("drain", function() { + if (ondrain) { + const cb = ondrain; + ondrain = null; + cb(); + } + }); + w.on("finish", function() { + if (onfinish) { + const cb = onfinish; + onfinish = null; + cb(); + } + }); + } + if (readable) { + eos(r, (err) => { + readable = false; + if (err) { + destroyer(r, err); + } + onfinished(err); + }); + r.on("readable", function() { + if (onreadable) { + const cb = onreadable; + onreadable = null; + cb(); + } + }); + r.on("end", function() { + d.push(null); + }); + d._read = function() { + while (true) { + const buf = r.read(); + if (buf === null) { + onreadable = d._read; + return; + } + if (!d.push(buf)) { + return; + } + } + }; + } + d._destroy = function(err, callback) { + if (!err && onclose !== null) { + err = new AbortError(); + } + onreadable = null; + ondrain = null; + onfinish = null; + if (onclose === null) { + callback(err); + } else { + onclose = callback; + destroyer(w, err); + destroyer(r, err); + } + }; + return d; + } + } + }); + + // node_modules/readable-stream/lib/internal/streams/duplex.js + var require_duplex = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/duplex.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { + ObjectDefineProperties, + ObjectGetOwnPropertyDescriptor, + ObjectKeys, + ObjectSetPrototypeOf + } = require_primordials(); + module.exports = Duplex; + var Readable = require_readable(); + var Writable = require_writable(); + ObjectSetPrototypeOf(Duplex.prototype, Readable.prototype); + ObjectSetPrototypeOf(Duplex, Readable); + { + const keys = ObjectKeys(Writable.prototype); + for (let i = 0; i < keys.length; i++) { + const method = keys[i]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; + } + } + function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + if (options) { + this.allowHalfOpen = options.allowHalfOpen !== false; + if (options.readable === false) { + this._readableState.readable = false; + this._readableState.ended = true; + this._readableState.endEmitted = true; + } + if (options.writable === false) { + this._writableState.writable = false; + this._writableState.ending = true; + this._writableState.ended = true; + this._writableState.finished = true; + } + } else { + this.allowHalfOpen = true; + } + } + ObjectDefineProperties(Duplex.prototype, { + writable: { + __proto__: null, + ...ObjectGetOwnPropertyDescriptor(Writable.prototype, "writable") + }, + writableHighWaterMark: { + __proto__: null, + ...ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableHighWaterMark") + }, + writableObjectMode: { + __proto__: null, + ...ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableObjectMode") + }, + writableBuffer: { + __proto__: null, + ...ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableBuffer") + }, + writableLength: { + __proto__: null, + ...ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableLength") + }, + writableFinished: { + __proto__: null, + ...ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableFinished") + }, + writableCorked: { + __proto__: null, + ...ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableCorked") + }, + writableEnded: { + __proto__: null, + ...ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableEnded") + }, + writableNeedDrain: { + __proto__: null, + ...ObjectGetOwnPropertyDescriptor(Writable.prototype, "writableNeedDrain") + }, + destroyed: { + __proto__: null, + get() { + if (this._readableState === void 0 || this._writableState === void 0) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set(value) { + if (this._readableState && this._writableState) { + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } + } + } + }); + var webStreamsAdapters; + function lazyWebStreams() { + if (webStreamsAdapters === void 0) webStreamsAdapters = {}; + return webStreamsAdapters; + } + Duplex.fromWeb = function(pair, options) { + return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options); + }; + Duplex.toWeb = function(duplex) { + return lazyWebStreams().newReadableWritablePairFromDuplex(duplex); + }; + var duplexify; + Duplex.from = function(body) { + if (!duplexify) { + duplexify = require_duplexify(); + } + return duplexify(body, "body"); + }; + } + }); + + // node_modules/readable-stream/lib/internal/streams/transform.js + var require_transform = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/transform.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { ObjectSetPrototypeOf, Symbol: Symbol2 } = require_primordials(); + module.exports = Transform; + var { ERR_METHOD_NOT_IMPLEMENTED } = require_errors().codes; + var Duplex = require_duplex(); + var { getHighWaterMark } = require_state(); + ObjectSetPrototypeOf(Transform.prototype, Duplex.prototype); + ObjectSetPrototypeOf(Transform, Duplex); + var kCallback = Symbol2("kCallback"); + function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + const readableHighWaterMark = options ? getHighWaterMark(this, options, "readableHighWaterMark", true) : null; + if (readableHighWaterMark === 0) { + options = { + ...options, + highWaterMark: null, + readableHighWaterMark, + // TODO (ronag): 0 is not optimal since we have + // a "bug" where we check needDrain before calling _write and not after. + // Refs: https://github.com/nodejs/node/pull/32887 + // Refs: https://github.com/nodejs/node/pull/35941 + writableHighWaterMark: options.writableHighWaterMark || 0 + }; + } + Duplex.call(this, options); + this._readableState.sync = false; + this[kCallback] = null; + if (options) { + if (typeof options.transform === "function") this._transform = options.transform; + if (typeof options.flush === "function") this._flush = options.flush; + } + this.on("prefinish", prefinish); + } + function final(cb) { + if (typeof this._flush === "function" && !this.destroyed) { + this._flush((er, data) => { + if (er) { + if (cb) { + cb(er); + } else { + this.destroy(er); + } + return; + } + if (data != null) { + this.push(data); + } + this.push(null); + if (cb) { + cb(); + } + }); + } else { + this.push(null); + if (cb) { + cb(); + } + } + } + function prefinish() { + if (this._final !== final) { + final.call(this); + } + } + Transform.prototype._final = final; + Transform.prototype._transform = function(chunk, encoding, callback) { + throw new ERR_METHOD_NOT_IMPLEMENTED("_transform()"); + }; + Transform.prototype._write = function(chunk, encoding, callback) { + const rState = this._readableState; + const wState = this._writableState; + const length = rState.length; + this._transform(chunk, encoding, (err, val) => { + if (err) { + callback(err); + return; + } + if (val != null) { + this.push(val); + } + if (wState.ended || // Backwards compat. + length === rState.length || // Backwards compat. + rState.length < rState.highWaterMark) { + callback(); + } else { + this[kCallback] = callback; + } + }); + }; + Transform.prototype._read = function() { + if (this[kCallback]) { + const callback = this[kCallback]; + this[kCallback] = null; + callback(); + } + }; + } + }); + + // node_modules/readable-stream/lib/internal/streams/passthrough.js + var require_passthrough = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/passthrough.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { ObjectSetPrototypeOf } = require_primordials(); + module.exports = PassThrough; + var Transform = require_transform(); + ObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype); + ObjectSetPrototypeOf(PassThrough, Transform); + function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + Transform.call(this, options); + } + PassThrough.prototype._transform = function(chunk, encoding, cb) { + cb(null, chunk); + }; + } + }); + + // node_modules/readable-stream/lib/internal/streams/pipeline.js + var require_pipeline = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var process3 = require_browser2(); + var { ArrayIsArray, Promise: Promise2, SymbolAsyncIterator, SymbolDispose } = require_primordials(); + var eos = require_end_of_stream(); + var { once: once4 } = require_util(); + var destroyImpl = require_destroy(); + var Duplex = require_duplex(); + var { + aggregateTwoErrors, + codes: { + ERR_INVALID_ARG_TYPE, + ERR_INVALID_RETURN_VALUE, + ERR_MISSING_ARGS, + ERR_STREAM_DESTROYED, + ERR_STREAM_PREMATURE_CLOSE + }, + AbortError + } = require_errors(); + var { validateFunction, validateAbortSignal } = require_validators(); + var { + isIterable, + isReadable, + isReadableNodeStream, + isNodeStream, + isTransformStream, + isWebStream, + isReadableStream, + isReadableFinished + } = require_utils(); + var AbortController = globalThis.AbortController || require_browser().AbortController; + var PassThrough; + var Readable; + var addAbortListener; + function destroyer(stream, reading, writing) { + let finished = false; + stream.on("close", () => { + finished = true; + }); + const cleanup = eos( + stream, + { + readable: reading, + writable: writing + }, + (err) => { + finished = !err; + } + ); + return { + destroy: (err) => { + if (finished) return; + finished = true; + destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED("pipe")); + }, + cleanup + }; + } + function popCallback(streams) { + validateFunction(streams[streams.length - 1], "streams[stream.length - 1]"); + return streams.pop(); + } + function makeAsyncIterable(val) { + if (isIterable(val)) { + return val; + } else if (isReadableNodeStream(val)) { + return fromReadable(val); + } + throw new ERR_INVALID_ARG_TYPE("val", ["Readable", "Iterable", "AsyncIterable"], val); + } + async function* fromReadable(val) { + if (!Readable) { + Readable = require_readable(); + } + yield* Readable.prototype[SymbolAsyncIterator].call(val); + } + async function pumpToNode(iterable, writable, finish, { end }) { + let error; + let onresolve = null; + const resume = (err) => { + if (err) { + error = err; + } + if (onresolve) { + const callback = onresolve; + onresolve = null; + callback(); + } + }; + const wait = () => new Promise2((resolve2, reject) => { + if (error) { + reject(error); + } else { + onresolve = () => { + if (error) { + reject(error); + } else { + resolve2(); + } + }; + } + }); + writable.on("drain", resume); + const cleanup = eos( + writable, + { + readable: false + }, + resume + ); + try { + if (writable.writableNeedDrain) { + await wait(); + } + for await (const chunk of iterable) { + if (!writable.write(chunk)) { + await wait(); + } + } + if (end) { + writable.end(); + await wait(); + } + finish(); + } catch (err) { + finish(error !== err ? aggregateTwoErrors(error, err) : err); + } finally { + cleanup(); + writable.off("drain", resume); + } + } + async function pumpToWeb(readable, writable, finish, { end }) { + if (isTransformStream(writable)) { + writable = writable.writable; + } + const writer = writable.getWriter(); + try { + for await (const chunk of readable) { + await writer.ready; + writer.write(chunk).catch(() => { + }); + } + await writer.ready; + if (end) { + await writer.close(); + } + finish(); + } catch (err) { + try { + await writer.abort(err); + finish(err); + } catch (err2) { + finish(err2); + } + } + } + function pipeline(...streams) { + return pipelineImpl(streams, once4(popCallback(streams))); + } + function pipelineImpl(streams, callback, opts) { + if (streams.length === 1 && ArrayIsArray(streams[0])) { + streams = streams[0]; + } + if (streams.length < 2) { + throw new ERR_MISSING_ARGS("streams"); + } + const ac = new AbortController(); + const signal = ac.signal; + const outerSignal = opts === null || opts === void 0 ? void 0 : opts.signal; + const lastStreamCleanup = []; + validateAbortSignal(outerSignal, "options.signal"); + function abort3() { + finishImpl(new AbortError()); + } + addAbortListener = addAbortListener || require_util().addAbortListener; + let disposable; + if (outerSignal) { + disposable = addAbortListener(outerSignal, abort3); + } + let error; + let value; + const destroys = []; + let finishCount = 0; + function finish(err) { + finishImpl(err, --finishCount === 0); + } + function finishImpl(err, final) { + var _disposable; + if (err && (!error || error.code === "ERR_STREAM_PREMATURE_CLOSE")) { + error = err; + } + if (!error && !final) { + return; + } + while (destroys.length) { + destroys.shift()(error); + } + ; + (_disposable = disposable) === null || _disposable === void 0 ? void 0 : _disposable[SymbolDispose](); + ac.abort(); + if (final) { + if (!error) { + lastStreamCleanup.forEach((fn) => fn()); + } + process3.nextTick(callback, error, value); + } + } + let ret; + for (let i = 0; i < streams.length; i++) { + const stream = streams[i]; + const reading = i < streams.length - 1; + const writing = i > 0; + const end = reading || (opts === null || opts === void 0 ? void 0 : opts.end) !== false; + const isLastStream = i === streams.length - 1; + if (isNodeStream(stream)) { + let onError2 = function(err) { + if (err && err.name !== "AbortError" && err.code !== "ERR_STREAM_PREMATURE_CLOSE") { + finish(err); + } + }; + var onError = onError2; + if (end) { + const { destroy, cleanup } = destroyer(stream, reading, writing); + destroys.push(destroy); + if (isReadable(stream) && isLastStream) { + lastStreamCleanup.push(cleanup); + } + } + stream.on("error", onError2); + if (isReadable(stream) && isLastStream) { + lastStreamCleanup.push(() => { + stream.removeListener("error", onError2); + }); + } + } + if (i === 0) { + if (typeof stream === "function") { + ret = stream({ + signal + }); + if (!isIterable(ret)) { + throw new ERR_INVALID_RETURN_VALUE("Iterable, AsyncIterable or Stream", "source", ret); + } + } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) { + ret = stream; + } else { + ret = Duplex.from(stream); + } + } else if (typeof stream === "function") { + if (isTransformStream(ret)) { + var _ret; + ret = makeAsyncIterable((_ret = ret) === null || _ret === void 0 ? void 0 : _ret.readable); + } else { + ret = makeAsyncIterable(ret); + } + ret = stream(ret, { + signal + }); + if (reading) { + if (!isIterable(ret, true)) { + throw new ERR_INVALID_RETURN_VALUE("AsyncIterable", `transform[${i - 1}]`, ret); + } + } else { + var _ret2; + if (!PassThrough) { + PassThrough = require_passthrough(); + } + const pt = new PassThrough({ + objectMode: true + }); + const then = (_ret2 = ret) === null || _ret2 === void 0 ? void 0 : _ret2.then; + if (typeof then === "function") { + finishCount++; + then.call( + ret, + (val) => { + value = val; + if (val != null) { + pt.write(val); + } + if (end) { + pt.end(); + } + process3.nextTick(finish); + }, + (err) => { + pt.destroy(err); + process3.nextTick(finish, err); + } + ); + } else if (isIterable(ret, true)) { + finishCount++; + pumpToNode(ret, pt, finish, { + end + }); + } else if (isReadableStream(ret) || isTransformStream(ret)) { + const toRead = ret.readable || ret; + finishCount++; + pumpToNode(toRead, pt, finish, { + end + }); + } else { + throw new ERR_INVALID_RETURN_VALUE("AsyncIterable or Promise", "destination", ret); + } + ret = pt; + const { destroy, cleanup } = destroyer(ret, false, true); + destroys.push(destroy); + if (isLastStream) { + lastStreamCleanup.push(cleanup); + } + } + } else if (isNodeStream(stream)) { + if (isReadableNodeStream(ret)) { + finishCount += 2; + const cleanup = pipe(ret, stream, finish, { + end + }); + if (isReadable(stream) && isLastStream) { + lastStreamCleanup.push(cleanup); + } + } else if (isTransformStream(ret) || isReadableStream(ret)) { + const toRead = ret.readable || ret; + finishCount++; + pumpToNode(toRead, stream, finish, { + end + }); + } else if (isIterable(ret)) { + finishCount++; + pumpToNode(ret, stream, finish, { + end + }); + } else { + throw new ERR_INVALID_ARG_TYPE( + "val", + ["Readable", "Iterable", "AsyncIterable", "ReadableStream", "TransformStream"], + ret + ); + } + ret = stream; + } else if (isWebStream(stream)) { + if (isReadableNodeStream(ret)) { + finishCount++; + pumpToWeb(makeAsyncIterable(ret), stream, finish, { + end + }); + } else if (isReadableStream(ret) || isIterable(ret)) { + finishCount++; + pumpToWeb(ret, stream, finish, { + end + }); + } else if (isTransformStream(ret)) { + finishCount++; + pumpToWeb(ret.readable, stream, finish, { + end + }); + } else { + throw new ERR_INVALID_ARG_TYPE( + "val", + ["Readable", "Iterable", "AsyncIterable", "ReadableStream", "TransformStream"], + ret + ); + } + ret = stream; + } else { + ret = Duplex.from(stream); + } + } + if (signal !== null && signal !== void 0 && signal.aborted || outerSignal !== null && outerSignal !== void 0 && outerSignal.aborted) { + process3.nextTick(abort3); + } + return ret; + } + function pipe(src, dst, finish, { end }) { + let ended = false; + dst.on("close", () => { + if (!ended) { + finish(new ERR_STREAM_PREMATURE_CLOSE()); + } + }); + src.pipe(dst, { + end: false + }); + if (end) { + let endFn2 = function() { + ended = true; + dst.end(); + }; + var endFn = endFn2; + if (isReadableFinished(src)) { + process3.nextTick(endFn2); + } else { + src.once("end", endFn2); + } + } else { + finish(); + } + eos( + src, + { + readable: true, + writable: false + }, + (err) => { + const rState = src._readableState; + if (err && err.code === "ERR_STREAM_PREMATURE_CLOSE" && rState && rState.ended && !rState.errored && !rState.errorEmitted) { + src.once("end", finish).once("error", finish); + } else { + finish(err); + } + } + ); + return eos( + dst, + { + readable: false, + writable: true + }, + finish + ); + } + module.exports = { + pipelineImpl, + pipeline + }; + } + }); + + // node_modules/readable-stream/lib/internal/streams/compose.js + var require_compose = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/compose.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { pipeline } = require_pipeline(); + var Duplex = require_duplex(); + var { destroyer } = require_destroy(); + var { + isNodeStream, + isReadable, + isWritable, + isWebStream, + isTransformStream, + isWritableStream, + isReadableStream + } = require_utils(); + var { + AbortError, + codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS } + } = require_errors(); + var eos = require_end_of_stream(); + module.exports = function compose(...streams) { + if (streams.length === 0) { + throw new ERR_MISSING_ARGS("streams"); + } + if (streams.length === 1) { + return Duplex.from(streams[0]); + } + const orgStreams = [...streams]; + if (typeof streams[0] === "function") { + streams[0] = Duplex.from(streams[0]); + } + if (typeof streams[streams.length - 1] === "function") { + const idx = streams.length - 1; + streams[idx] = Duplex.from(streams[idx]); + } + for (let n = 0; n < streams.length; ++n) { + if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) { + continue; + } + if (n < streams.length - 1 && !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))) { + throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], "must be readable"); + } + if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) { + throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], "must be writable"); + } + } + let ondrain; + let onfinish; + let onreadable; + let onclose; + let d; + function onfinished(err) { + const cb = onclose; + onclose = null; + if (cb) { + cb(err); + } else if (err) { + d.destroy(err); + } else if (!readable && !writable) { + d.destroy(); + } + } + const head = streams[0]; + const tail = pipeline(streams, onfinished); + const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head)); + const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail)); + d = new Duplex({ + // TODO (ronag): highWaterMark? + writableObjectMode: !!(head !== null && head !== void 0 && head.writableObjectMode), + readableObjectMode: !!(tail !== null && tail !== void 0 && tail.readableObjectMode), + writable, + readable + }); + if (writable) { + if (isNodeStream(head)) { + d._write = function(chunk, encoding, callback) { + if (head.write(chunk, encoding)) { + callback(); + } else { + ondrain = callback; + } + }; + d._final = function(callback) { + head.end(); + onfinish = callback; + }; + head.on("drain", function() { + if (ondrain) { + const cb = ondrain; + ondrain = null; + cb(); + } + }); + } else if (isWebStream(head)) { + const writable2 = isTransformStream(head) ? head.writable : head; + const writer = writable2.getWriter(); + d._write = async function(chunk, encoding, callback) { + try { + await writer.ready; + writer.write(chunk).catch(() => { + }); + callback(); + } catch (err) { + callback(err); + } + }; + d._final = async function(callback) { + try { + await writer.ready; + writer.close().catch(() => { + }); + onfinish = callback; + } catch (err) { + callback(err); + } + }; + } + const toRead = isTransformStream(tail) ? tail.readable : tail; + eos(toRead, () => { + if (onfinish) { + const cb = onfinish; + onfinish = null; + cb(); + } + }); + } + if (readable) { + if (isNodeStream(tail)) { + tail.on("readable", function() { + if (onreadable) { + const cb = onreadable; + onreadable = null; + cb(); + } + }); + tail.on("end", function() { + d.push(null); + }); + d._read = function() { + while (true) { + const buf = tail.read(); + if (buf === null) { + onreadable = d._read; + return; + } + if (!d.push(buf)) { + return; + } + } + }; + } else if (isWebStream(tail)) { + const readable2 = isTransformStream(tail) ? tail.readable : tail; + const reader = readable2.getReader(); + d._read = async function() { + while (true) { + try { + const { value, done } = await reader.read(); + if (!d.push(value)) { + return; + } + if (done) { + d.push(null); + return; + } + } catch { + return; + } + } + }; + } + } + d._destroy = function(err, callback) { + if (!err && onclose !== null) { + err = new AbortError(); + } + onreadable = null; + ondrain = null; + onfinish = null; + if (onclose === null) { + callback(err); + } else { + onclose = callback; + if (isNodeStream(tail)) { + destroyer(tail, err); + } + } + }; + return d; + }; + } + }); + + // node_modules/readable-stream/lib/internal/streams/operators.js + var require_operators = __commonJS({ + "node_modules/readable-stream/lib/internal/streams/operators.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var AbortController = globalThis.AbortController || require_browser().AbortController; + var { + codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE }, + AbortError + } = require_errors(); + var { validateAbortSignal, validateInteger, validateObject } = require_validators(); + var kWeakHandler = require_primordials().Symbol("kWeak"); + var kResistStopPropagation = require_primordials().Symbol("kResistStopPropagation"); + var { finished } = require_end_of_stream(); + var staticCompose = require_compose(); + var { addAbortSignalNoValidate } = require_add_abort_signal(); + var { isWritable, isNodeStream } = require_utils(); + var { deprecate } = require_util(); + var { + ArrayPrototypePush, + Boolean: Boolean2, + MathFloor, + Number: Number2, + NumberIsNaN, + Promise: Promise2, + PromiseReject, + PromiseResolve, + PromisePrototypeThen, + Symbol: Symbol2 + } = require_primordials(); + var kEmpty = Symbol2("kEmpty"); + var kEof = Symbol2("kEof"); + function compose(stream, options) { + if (options != null) { + validateObject(options, "options"); + } + if ((options === null || options === void 0 ? void 0 : options.signal) != null) { + validateAbortSignal(options.signal, "options.signal"); + } + if (isNodeStream(stream) && !isWritable(stream)) { + throw new ERR_INVALID_ARG_VALUE("stream", stream, "must be writable"); + } + const composedStream = staticCompose(this, stream); + if (options !== null && options !== void 0 && options.signal) { + addAbortSignalNoValidate(options.signal, composedStream); + } + return composedStream; + } + function map(fn, options) { + if (typeof fn !== "function") { + throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn); + } + if (options != null) { + validateObject(options, "options"); + } + if ((options === null || options === void 0 ? void 0 : options.signal) != null) { + validateAbortSignal(options.signal, "options.signal"); + } + let concurrency = 1; + if ((options === null || options === void 0 ? void 0 : options.concurrency) != null) { + concurrency = MathFloor(options.concurrency); + } + let highWaterMark = concurrency - 1; + if ((options === null || options === void 0 ? void 0 : options.highWaterMark) != null) { + highWaterMark = MathFloor(options.highWaterMark); + } + validateInteger(concurrency, "options.concurrency", 1); + validateInteger(highWaterMark, "options.highWaterMark", 0); + highWaterMark += concurrency; + return async function* map2() { + const signal = require_util().AbortSignalAny( + [options === null || options === void 0 ? void 0 : options.signal].filter(Boolean2) + ); + const stream = this; + const queue3 = []; + const signalOpt = { + signal + }; + let next; + let resume; + let done = false; + let cnt = 0; + function onCatch() { + done = true; + afterItemProcessed(); + } + function afterItemProcessed() { + cnt -= 1; + maybeResume(); + } + function maybeResume() { + if (resume && !done && cnt < concurrency && queue3.length < highWaterMark) { + resume(); + resume = null; + } + } + async function pump() { + try { + for await (let val of stream) { + if (done) { + return; + } + if (signal.aborted) { + throw new AbortError(); + } + try { + val = fn(val, signalOpt); + if (val === kEmpty) { + continue; + } + val = PromiseResolve(val); + } catch (err) { + val = PromiseReject(err); + } + cnt += 1; + PromisePrototypeThen(val, afterItemProcessed, onCatch); + queue3.push(val); + if (next) { + next(); + next = null; + } + if (!done && (queue3.length >= highWaterMark || cnt >= concurrency)) { + await new Promise2((resolve2) => { + resume = resolve2; + }); + } + } + queue3.push(kEof); + } catch (err) { + const val = PromiseReject(err); + PromisePrototypeThen(val, afterItemProcessed, onCatch); + queue3.push(val); + } finally { + done = true; + if (next) { + next(); + next = null; + } + } + } + pump(); + try { + while (true) { + while (queue3.length > 0) { + const val = await queue3[0]; + if (val === kEof) { + return; + } + if (signal.aborted) { + throw new AbortError(); + } + if (val !== kEmpty) { + yield val; + } + queue3.shift(); + maybeResume(); + } + await new Promise2((resolve2) => { + next = resolve2; + }); + } + } finally { + done = true; + if (resume) { + resume(); + resume = null; + } + } + }.call(this); + } + function asIndexedPairs(options = void 0) { + if (options != null) { + validateObject(options, "options"); + } + if ((options === null || options === void 0 ? void 0 : options.signal) != null) { + validateAbortSignal(options.signal, "options.signal"); + } + return async function* asIndexedPairs2() { + let index = 0; + for await (const val of this) { + var _options$signal; + if (options !== null && options !== void 0 && (_options$signal = options.signal) !== null && _options$signal !== void 0 && _options$signal.aborted) { + throw new AbortError({ + cause: options.signal.reason + }); + } + yield [index++, val]; + } + }.call(this); + } + async function some(fn, options = void 0) { + for await (const unused of filter.call(this, fn, options)) { + return true; + } + return false; + } + async function every(fn, options = void 0) { + if (typeof fn !== "function") { + throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn); + } + return !await some.call( + this, + async (...args) => { + return !await fn(...args); + }, + options + ); + } + async function find(fn, options) { + for await (const result of filter.call(this, fn, options)) { + return result; + } + return void 0; + } + async function forEach(fn, options) { + if (typeof fn !== "function") { + throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn); + } + async function forEachFn(value, options2) { + await fn(value, options2); + return kEmpty; + } + for await (const unused of map.call(this, forEachFn, options)) ; + } + function filter(fn, options) { + if (typeof fn !== "function") { + throw new ERR_INVALID_ARG_TYPE("fn", ["Function", "AsyncFunction"], fn); + } + async function filterFn(value, options2) { + if (await fn(value, options2)) { + return value; + } + return kEmpty; + } + return map.call(this, filterFn, options); + } + var ReduceAwareErrMissingArgs = class extends ERR_MISSING_ARGS { + constructor() { + super("reduce"); + this.message = "Reduce of an empty stream requires an initial value"; + } + }; + async function reduce(reducer, initialValue, options) { + var _options$signal2; + if (typeof reducer !== "function") { + throw new ERR_INVALID_ARG_TYPE("reducer", ["Function", "AsyncFunction"], reducer); + } + if (options != null) { + validateObject(options, "options"); + } + if ((options === null || options === void 0 ? void 0 : options.signal) != null) { + validateAbortSignal(options.signal, "options.signal"); + } + let hasInitialValue = arguments.length > 1; + if (options !== null && options !== void 0 && (_options$signal2 = options.signal) !== null && _options$signal2 !== void 0 && _options$signal2.aborted) { + const err = new AbortError(void 0, { + cause: options.signal.reason + }); + this.once("error", () => { + }); + await finished(this.destroy(err)); + throw err; + } + const ac = new AbortController(); + const signal = ac.signal; + if (options !== null && options !== void 0 && options.signal) { + const opts = { + once: true, + [kWeakHandler]: this, + [kResistStopPropagation]: true + }; + options.signal.addEventListener("abort", () => ac.abort(), opts); + } + let gotAnyItemFromStream = false; + try { + for await (const value of this) { + var _options$signal3; + gotAnyItemFromStream = true; + if (options !== null && options !== void 0 && (_options$signal3 = options.signal) !== null && _options$signal3 !== void 0 && _options$signal3.aborted) { + throw new AbortError(); + } + if (!hasInitialValue) { + initialValue = value; + hasInitialValue = true; + } else { + initialValue = await reducer(initialValue, value, { + signal + }); + } + } + if (!gotAnyItemFromStream && !hasInitialValue) { + throw new ReduceAwareErrMissingArgs(); + } + } finally { + ac.abort(); + } + return initialValue; + } + async function toArray(options) { + if (options != null) { + validateObject(options, "options"); + } + if ((options === null || options === void 0 ? void 0 : options.signal) != null) { + validateAbortSignal(options.signal, "options.signal"); + } + const result = []; + for await (const val of this) { + var _options$signal4; + if (options !== null && options !== void 0 && (_options$signal4 = options.signal) !== null && _options$signal4 !== void 0 && _options$signal4.aborted) { + throw new AbortError(void 0, { + cause: options.signal.reason + }); + } + ArrayPrototypePush(result, val); + } + return result; + } + function flatMap(fn, options) { + const values = map.call(this, fn, options); + return async function* flatMap2() { + for await (const val of values) { + yield* val; + } + }.call(this); + } + function toIntegerOrInfinity(number) { + number = Number2(number); + if (NumberIsNaN(number)) { + return 0; + } + if (number < 0) { + throw new ERR_OUT_OF_RANGE("number", ">= 0", number); + } + return number; + } + function drop(number, options = void 0) { + if (options != null) { + validateObject(options, "options"); + } + if ((options === null || options === void 0 ? void 0 : options.signal) != null) { + validateAbortSignal(options.signal, "options.signal"); + } + number = toIntegerOrInfinity(number); + return async function* drop2() { + var _options$signal5; + if (options !== null && options !== void 0 && (_options$signal5 = options.signal) !== null && _options$signal5 !== void 0 && _options$signal5.aborted) { + throw new AbortError(); + } + for await (const val of this) { + var _options$signal6; + if (options !== null && options !== void 0 && (_options$signal6 = options.signal) !== null && _options$signal6 !== void 0 && _options$signal6.aborted) { + throw new AbortError(); + } + if (number-- <= 0) { + yield val; + } + } + }.call(this); + } + function take(number, options = void 0) { + if (options != null) { + validateObject(options, "options"); + } + if ((options === null || options === void 0 ? void 0 : options.signal) != null) { + validateAbortSignal(options.signal, "options.signal"); + } + number = toIntegerOrInfinity(number); + return async function* take2() { + var _options$signal7; + if (options !== null && options !== void 0 && (_options$signal7 = options.signal) !== null && _options$signal7 !== void 0 && _options$signal7.aborted) { + throw new AbortError(); + } + for await (const val of this) { + var _options$signal8; + if (options !== null && options !== void 0 && (_options$signal8 = options.signal) !== null && _options$signal8 !== void 0 && _options$signal8.aborted) { + throw new AbortError(); + } + if (number-- > 0) { + yield val; + } + if (number <= 0) { + return; + } + } + }.call(this); + } + module.exports.streamReturningOperators = { + asIndexedPairs: deprecate(asIndexedPairs, "readable.asIndexedPairs will be removed in a future version."), + drop, + filter, + flatMap, + map, + take, + compose + }; + module.exports.promiseReturningOperators = { + every, + forEach, + reduce, + toArray, + some, + find + }; + } + }); + + // node_modules/readable-stream/lib/stream/promises.js + var require_promises = __commonJS({ + "node_modules/readable-stream/lib/stream/promises.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { ArrayPrototypePop, Promise: Promise2 } = require_primordials(); + var { isIterable, isNodeStream, isWebStream } = require_utils(); + var { pipelineImpl: pl } = require_pipeline(); + var { finished } = require_end_of_stream(); + require_stream(); + function pipeline(...streams) { + return new Promise2((resolve2, reject) => { + let signal; + let end; + const lastArg = streams[streams.length - 1]; + if (lastArg && typeof lastArg === "object" && !isNodeStream(lastArg) && !isIterable(lastArg) && !isWebStream(lastArg)) { + const options = ArrayPrototypePop(streams); + signal = options.signal; + end = options.end; + } + pl( + streams, + (err, value) => { + if (err) { + reject(err); + } else { + resolve2(value); + } + }, + { + signal, + end + } + ); + }); + } + module.exports = { + finished, + pipeline + }; + } + }); + + // node_modules/readable-stream/lib/stream.js + var require_stream = __commonJS({ + "node_modules/readable-stream/lib/stream.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { Buffer: Buffer3 } = (init_buffer(), __toCommonJS(buffer_exports)); + var { ObjectDefineProperty, ObjectKeys, ReflectApply } = require_primordials(); + var { + promisify: { custom: customPromisify } + } = require_util(); + var { streamReturningOperators, promiseReturningOperators } = require_operators(); + var { + codes: { ERR_ILLEGAL_CONSTRUCTOR } + } = require_errors(); + var compose = require_compose(); + var { setDefaultHighWaterMark, getDefaultHighWaterMark } = require_state(); + var { pipeline } = require_pipeline(); + var { destroyer } = require_destroy(); + var eos = require_end_of_stream(); + var promises = require_promises(); + var utils = require_utils(); + var Stream = module.exports = require_legacy().Stream; + Stream.isDestroyed = utils.isDestroyed; + Stream.isDisturbed = utils.isDisturbed; + Stream.isErrored = utils.isErrored; + Stream.isReadable = utils.isReadable; + Stream.isWritable = utils.isWritable; + Stream.Readable = require_readable(); + for (const key of ObjectKeys(streamReturningOperators)) { + let fn = function(...args) { + if (new.target) { + throw ERR_ILLEGAL_CONSTRUCTOR(); + } + return Stream.Readable.from(ReflectApply(op, this, args)); + }; + const op = streamReturningOperators[key]; + ObjectDefineProperty(fn, "name", { + __proto__: null, + value: op.name + }); + ObjectDefineProperty(fn, "length", { + __proto__: null, + value: op.length + }); + ObjectDefineProperty(Stream.Readable.prototype, key, { + __proto__: null, + value: fn, + enumerable: false, + configurable: true, + writable: true + }); + } + for (const key of ObjectKeys(promiseReturningOperators)) { + let fn = function(...args) { + if (new.target) { + throw ERR_ILLEGAL_CONSTRUCTOR(); + } + return ReflectApply(op, this, args); + }; + const op = promiseReturningOperators[key]; + ObjectDefineProperty(fn, "name", { + __proto__: null, + value: op.name + }); + ObjectDefineProperty(fn, "length", { + __proto__: null, + value: op.length + }); + ObjectDefineProperty(Stream.Readable.prototype, key, { + __proto__: null, + value: fn, + enumerable: false, + configurable: true, + writable: true + }); + } + Stream.Writable = require_writable(); + Stream.Duplex = require_duplex(); + Stream.Transform = require_transform(); + Stream.PassThrough = require_passthrough(); + Stream.pipeline = pipeline; + var { addAbortSignal } = require_add_abort_signal(); + Stream.addAbortSignal = addAbortSignal; + Stream.finished = eos; + Stream.destroy = destroyer; + Stream.compose = compose; + Stream.setDefaultHighWaterMark = setDefaultHighWaterMark; + Stream.getDefaultHighWaterMark = getDefaultHighWaterMark; + ObjectDefineProperty(Stream, "promises", { + __proto__: null, + configurable: true, + enumerable: true, + get() { + return promises; + } + }); + ObjectDefineProperty(pipeline, customPromisify, { + __proto__: null, + enumerable: true, + get() { + return promises.pipeline; + } + }); + ObjectDefineProperty(eos, customPromisify, { + __proto__: null, + enumerable: true, + get() { + return promises.finished; + } + }); + Stream.Stream = Stream; + Stream._isUint8Array = function isUint8Array(value) { + return value instanceof Uint8Array; + }; + Stream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) { + return Buffer3.from(chunk.buffer, chunk.byteOffset, chunk.byteLength); + }; + } + }); + + // node_modules/readable-stream/lib/ours/browser.js + var require_browser3 = __commonJS({ + "node_modules/readable-stream/lib/ours/browser.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var CustomStream = require_stream(); + var promises = require_promises(); + var originalDestroy = CustomStream.Readable.destroy; + module.exports = CustomStream.Readable; + module.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer; + module.exports._isUint8Array = CustomStream._isUint8Array; + module.exports.isDisturbed = CustomStream.isDisturbed; + module.exports.isErrored = CustomStream.isErrored; + module.exports.isReadable = CustomStream.isReadable; + module.exports.Readable = CustomStream.Readable; + module.exports.Writable = CustomStream.Writable; + module.exports.Duplex = CustomStream.Duplex; + module.exports.Transform = CustomStream.Transform; + module.exports.PassThrough = CustomStream.PassThrough; + module.exports.addAbortSignal = CustomStream.addAbortSignal; + module.exports.finished = CustomStream.finished; + module.exports.destroy = CustomStream.destroy; + module.exports.destroy = originalDestroy; + module.exports.pipeline = CustomStream.pipeline; + module.exports.compose = CustomStream.compose; + Object.defineProperty(CustomStream, "promises", { + configurable: true, + enumerable: true, + get() { + return promises; + } + }); + module.exports.Stream = CustomStream.Stream; + module.exports.default = module.exports; + } + }); + + // node_modules/inherits/inherits_browser.js + var require_inherits_browser = __commonJS({ + "node_modules/inherits/inherits_browser.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + if (typeof Object.create === "function") { + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; + } else { + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }; + } + } + }); + + // node_modules/bl/BufferList.js + var require_BufferList = __commonJS({ + "node_modules/bl/BufferList.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var { Buffer: Buffer3 } = (init_buffer(), __toCommonJS(buffer_exports)); + var symbol = Symbol.for("BufferList"); + function BufferList(buf) { + if (!(this instanceof BufferList)) { + return new BufferList(buf); + } + BufferList._init.call(this, buf); + } + BufferList._init = function _init(buf) { + Object.defineProperty(this, symbol, { value: true }); + this._bufs = []; + this.length = 0; + if (buf) { + this.append(buf); + } + }; + BufferList.prototype._new = function _new(buf) { + return new BufferList(buf); + }; + BufferList.prototype._offset = function _offset(offset) { + if (offset === 0) { + return [0, 0]; + } + let tot = 0; + for (let i = 0; i < this._bufs.length; i++) { + const _t = tot + this._bufs[i].length; + if (offset < _t || i === this._bufs.length - 1) { + return [i, offset - tot]; + } + tot = _t; + } + }; + BufferList.prototype._reverseOffset = function(blOffset) { + const bufferId = blOffset[0]; + let offset = blOffset[1]; + for (let i = 0; i < bufferId; i++) { + offset += this._bufs[i].length; + } + return offset; + }; + BufferList.prototype.getBuffers = function getBuffers() { + return this._bufs; + }; + BufferList.prototype.get = function get(index) { + if (index > this.length || index < 0) { + return void 0; + } + const offset = this._offset(index); + return this._bufs[offset[0]][offset[1]]; + }; + BufferList.prototype.slice = function slice(start, end) { + if (typeof start === "number" && start < 0) { + start += this.length; + } + if (typeof end === "number" && end < 0) { + end += this.length; + } + return this.copy(null, 0, start, end); + }; + BufferList.prototype.copy = function copy(dst, dstStart, srcStart, srcEnd) { + if (typeof srcStart !== "number" || srcStart < 0) { + srcStart = 0; + } + if (typeof srcEnd !== "number" || srcEnd > this.length) { + srcEnd = this.length; + } + if (srcStart >= this.length) { + return dst || Buffer3.alloc(0); + } + if (srcEnd <= 0) { + return dst || Buffer3.alloc(0); + } + const copy2 = !!dst; + const off3 = this._offset(srcStart); + const len = srcEnd - srcStart; + let bytes = len; + let bufoff = copy2 && dstStart || 0; + let start = off3[1]; + if (srcStart === 0 && srcEnd === this.length) { + if (!copy2) { + return this._bufs.length === 1 ? this._bufs[0] : Buffer3.concat(this._bufs, this.length); + } + for (let i = 0; i < this._bufs.length; i++) { + this._bufs[i].copy(dst, bufoff); + bufoff += this._bufs[i].length; + } + return dst; + } + if (bytes <= this._bufs[off3[0]].length - start) { + return copy2 ? this._bufs[off3[0]].copy(dst, dstStart, start, start + bytes) : this._bufs[off3[0]].slice(start, start + bytes); + } + if (!copy2) { + dst = Buffer3.allocUnsafe(len); + } + for (let i = off3[0]; i < this._bufs.length; i++) { + const l = this._bufs[i].length - start; + if (bytes > l) { + this._bufs[i].copy(dst, bufoff, start); + bufoff += l; + } else { + this._bufs[i].copy(dst, bufoff, start, start + bytes); + bufoff += l; + break; + } + bytes -= l; + if (start) { + start = 0; + } + } + if (dst.length > bufoff) return dst.slice(0, bufoff); + return dst; + }; + BufferList.prototype.shallowSlice = function shallowSlice(start, end) { + start = start || 0; + end = typeof end !== "number" ? this.length : end; + if (start < 0) { + start += this.length; + } + if (end < 0) { + end += this.length; + } + if (start === end) { + return this._new(); + } + const startOffset = this._offset(start); + const endOffset = this._offset(end); + const buffers = this._bufs.slice(startOffset[0], endOffset[0] + 1); + if (endOffset[1] === 0) { + buffers.pop(); + } else { + buffers[buffers.length - 1] = buffers[buffers.length - 1].slice(0, endOffset[1]); + } + if (startOffset[1] !== 0) { + buffers[0] = buffers[0].slice(startOffset[1]); + } + return this._new(buffers); + }; + BufferList.prototype.toString = function toString(encoding, start, end) { + return this.slice(start, end).toString(encoding); + }; + BufferList.prototype.consume = function consume(bytes) { + bytes = Math.trunc(bytes); + if (Number.isNaN(bytes) || bytes <= 0) return this; + while (this._bufs.length) { + if (bytes >= this._bufs[0].length) { + bytes -= this._bufs[0].length; + this.length -= this._bufs[0].length; + this._bufs.shift(); + } else { + this._bufs[0] = this._bufs[0].slice(bytes); + this.length -= bytes; + break; + } + } + return this; + }; + BufferList.prototype.duplicate = function duplicate() { + const copy = this._new(); + for (let i = 0; i < this._bufs.length; i++) { + copy.append(this._bufs[i]); + } + return copy; + }; + BufferList.prototype.append = function append(buf) { + return this._attach(buf, BufferList.prototype._appendBuffer); + }; + BufferList.prototype.prepend = function prepend(buf) { + return this._attach(buf, BufferList.prototype._prependBuffer, true); + }; + BufferList.prototype._attach = function _attach(buf, attacher, prepend) { + if (buf == null) { + return this; + } + if (buf.buffer) { + attacher.call(this, Buffer3.from(buf.buffer, buf.byteOffset, buf.byteLength)); + } else if (Array.isArray(buf)) { + const [starting, modifier] = prepend ? [buf.length - 1, -1] : [0, 1]; + for (let i = starting; i >= 0 && i < buf.length; i += modifier) { + this._attach(buf[i], attacher, prepend); + } + } else if (this._isBufferList(buf)) { + const [starting, modifier] = prepend ? [buf._bufs.length - 1, -1] : [0, 1]; + for (let i = starting; i >= 0 && i < buf._bufs.length; i += modifier) { + this._attach(buf._bufs[i], attacher, prepend); + } + } else { + if (typeof buf === "number") { + buf = buf.toString(); + } + attacher.call(this, Buffer3.from(buf)); + } + return this; + }; + BufferList.prototype._appendBuffer = function appendBuffer(buf) { + this._bufs.push(buf); + this.length += buf.length; + }; + BufferList.prototype._prependBuffer = function prependBuffer(buf) { + this._bufs.unshift(buf); + this.length += buf.length; + }; + BufferList.prototype.indexOf = function(search, offset, encoding) { + if (encoding === void 0 && typeof offset === "string") { + encoding = offset; + offset = void 0; + } + if (typeof search === "function" || Array.isArray(search)) { + throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.'); + } else if (typeof search === "number") { + search = Buffer3.from([search]); + } else if (typeof search === "string") { + search = Buffer3.from(search, encoding); + } else if (this._isBufferList(search)) { + search = search.slice(); + } else if (Array.isArray(search.buffer)) { + search = Buffer3.from(search.buffer, search.byteOffset, search.byteLength); + } else if (!Buffer3.isBuffer(search)) { + search = Buffer3.from(search); + } + offset = Number(offset || 0); + if (isNaN(offset)) { + offset = 0; + } + if (offset < 0) { + offset = this.length + offset; + } + if (offset < 0) { + offset = 0; + } + if (search.length === 0) { + return offset > this.length ? this.length : offset; + } + const blOffset = this._offset(offset); + let blIndex = blOffset[0]; + let buffOffset = blOffset[1]; + for (; blIndex < this._bufs.length; blIndex++) { + const buff = this._bufs[blIndex]; + while (buffOffset < buff.length) { + const availableWindow = buff.length - buffOffset; + if (availableWindow >= search.length) { + const nativeSearchResult = buff.indexOf(search, buffOffset); + if (nativeSearchResult !== -1) { + return this._reverseOffset([blIndex, nativeSearchResult]); + } + buffOffset = buff.length - search.length + 1; + } else { + const revOffset = this._reverseOffset([blIndex, buffOffset]); + if (this._match(revOffset, search)) { + return revOffset; + } + buffOffset++; + } + } + buffOffset = 0; + } + return -1; + }; + BufferList.prototype._match = function(offset, search) { + if (this.length - offset < search.length) { + return false; + } + for (let searchOffset = 0; searchOffset < search.length; searchOffset++) { + if (this.get(offset + searchOffset) !== search[searchOffset]) { + return false; + } + } + return true; + }; + (function() { + const methods = { + readDoubleBE: 8, + readDoubleLE: 8, + readFloatBE: 4, + readFloatLE: 4, + readBigInt64BE: 8, + readBigInt64LE: 8, + readBigUInt64BE: 8, + readBigUInt64LE: 8, + readInt32BE: 4, + readInt32LE: 4, + readUInt32BE: 4, + readUInt32LE: 4, + readInt16BE: 2, + readInt16LE: 2, + readUInt16BE: 2, + readUInt16LE: 2, + readInt8: 1, + readUInt8: 1, + readIntBE: null, + readIntLE: null, + readUIntBE: null, + readUIntLE: null + }; + for (const m in methods) { + (function(m2) { + if (methods[m2] === null) { + BufferList.prototype[m2] = function(offset, byteLength) { + return this.slice(offset, offset + byteLength)[m2](0, byteLength); + }; + } else { + BufferList.prototype[m2] = function(offset = 0) { + return this.slice(offset, offset + methods[m2])[m2](0); + }; + } + })(m); + } + })(); + BufferList.prototype._isBufferList = function _isBufferList(b) { + return b instanceof BufferList || BufferList.isBufferList(b); + }; + BufferList.isBufferList = function isBufferList(b) { + return b != null && b[symbol]; + }; + module.exports = BufferList; + } + }); + + // node_modules/bl/bl.js + var require_bl = __commonJS({ + "node_modules/bl/bl.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var DuplexStream = require_browser3().Duplex; + var inherits = require_inherits_browser(); + var BufferList = require_BufferList(); + function BufferListStream(callback) { + if (!(this instanceof BufferListStream)) { + return new BufferListStream(callback); + } + if (typeof callback === "function") { + this._callback = callback; + const piper = function piper2(err) { + if (this._callback) { + this._callback(err); + this._callback = null; + } + }.bind(this); + this.on("pipe", function onPipe(src) { + src.on("error", piper); + }); + this.on("unpipe", function onUnpipe(src) { + src.removeListener("error", piper); + }); + callback = null; + } + BufferList._init.call(this, callback); + DuplexStream.call(this); + } + inherits(BufferListStream, DuplexStream); + Object.assign(BufferListStream.prototype, BufferList.prototype); + BufferListStream.prototype._new = function _new(callback) { + return new BufferListStream(callback); + }; + BufferListStream.prototype._write = function _write(buf, encoding, callback) { + this._appendBuffer(buf); + if (typeof callback === "function") { + callback(); + } + }; + BufferListStream.prototype._read = function _read(size) { + if (!this.length) { + return this.push(null); + } + size = Math.min(size, this.length); + this.push(this.slice(0, size)); + this.consume(size); + }; + BufferListStream.prototype.end = function end(chunk) { + DuplexStream.prototype.end.call(this, chunk); + if (this._callback) { + this._callback(null, this.slice()); + this._callback = null; + } + }; + BufferListStream.prototype._destroy = function _destroy(err, cb) { + this._bufs.length = 0; + this.length = 0; + cb(err); + }; + BufferListStream.prototype._isBufferList = function _isBufferList(b) { + return b instanceof BufferListStream || b instanceof BufferList || BufferListStream.isBufferList(b); + }; + BufferListStream.isBufferList = BufferList.isBufferList; + module.exports = BufferListStream; + module.exports.BufferListStream = BufferListStream; + module.exports.BufferList = BufferList; + } + }); + + // node_modules/mqtt-packet/packet.js + var require_packet = __commonJS({ + "node_modules/mqtt-packet/packet.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var Packet = class { + constructor() { + this.cmd = null; + this.retain = false; + this.qos = 0; + this.dup = false; + this.length = -1; + this.topic = null; + this.payload = null; + } + }; + module.exports = Packet; + } + }); + + // node_modules/mqtt-packet/constants.js + var require_constants = __commonJS({ + "node_modules/mqtt-packet/constants.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var protocol = module.exports; + var { Buffer: Buffer3 } = (init_buffer(), __toCommonJS(buffer_exports)); + protocol.types = { + 0: "reserved", + 1: "connect", + 2: "connack", + 3: "publish", + 4: "puback", + 5: "pubrec", + 6: "pubrel", + 7: "pubcomp", + 8: "subscribe", + 9: "suback", + 10: "unsubscribe", + 11: "unsuback", + 12: "pingreq", + 13: "pingresp", + 14: "disconnect", + 15: "auth" + }; + protocol.requiredHeaderFlags = { + 1: 0, + // 'connect' + 2: 0, + // 'connack' + 4: 0, + // 'puback' + 5: 0, + // 'pubrec' + 6: 2, + // 'pubrel' + 7: 0, + // 'pubcomp' + 8: 2, + // 'subscribe' + 9: 0, + // 'suback' + 10: 2, + // 'unsubscribe' + 11: 0, + // 'unsuback' + 12: 0, + // 'pingreq' + 13: 0, + // 'pingresp' + 14: 0, + // 'disconnect' + 15: 0 + // 'auth' + }; + protocol.requiredHeaderFlagsErrors = {}; + for (const k in protocol.requiredHeaderFlags) { + const v = protocol.requiredHeaderFlags[k]; + protocol.requiredHeaderFlagsErrors[k] = "Invalid header flag bits, must be 0x" + v.toString(16) + " for " + protocol.types[k] + " packet"; + } + protocol.codes = {}; + for (const k in protocol.types) { + const v = protocol.types[k]; + protocol.codes[v] = k; + } + protocol.CMD_SHIFT = 4; + protocol.CMD_MASK = 240; + protocol.DUP_MASK = 8; + protocol.QOS_MASK = 3; + protocol.QOS_SHIFT = 1; + protocol.RETAIN_MASK = 1; + protocol.VARBYTEINT_MASK = 127; + protocol.VARBYTEINT_FIN_MASK = 128; + protocol.VARBYTEINT_MAX = 268435455; + protocol.SESSIONPRESENT_MASK = 1; + protocol.SESSIONPRESENT_HEADER = Buffer3.from([protocol.SESSIONPRESENT_MASK]); + protocol.CONNACK_HEADER = Buffer3.from([protocol.codes.connack << protocol.CMD_SHIFT]); + protocol.USERNAME_MASK = 128; + protocol.PASSWORD_MASK = 64; + protocol.WILL_RETAIN_MASK = 32; + protocol.WILL_QOS_MASK = 24; + protocol.WILL_QOS_SHIFT = 3; + protocol.WILL_FLAG_MASK = 4; + protocol.CLEAN_SESSION_MASK = 2; + protocol.CONNECT_HEADER = Buffer3.from([protocol.codes.connect << protocol.CMD_SHIFT]); + protocol.properties = { + sessionExpiryInterval: 17, + willDelayInterval: 24, + receiveMaximum: 33, + maximumPacketSize: 39, + topicAliasMaximum: 34, + requestResponseInformation: 25, + requestProblemInformation: 23, + userProperties: 38, + authenticationMethod: 21, + authenticationData: 22, + payloadFormatIndicator: 1, + messageExpiryInterval: 2, + contentType: 3, + responseTopic: 8, + correlationData: 9, + maximumQoS: 36, + retainAvailable: 37, + assignedClientIdentifier: 18, + reasonString: 31, + wildcardSubscriptionAvailable: 40, + subscriptionIdentifiersAvailable: 41, + sharedSubscriptionAvailable: 42, + serverKeepAlive: 19, + responseInformation: 26, + serverReference: 28, + topicAlias: 35, + subscriptionIdentifier: 11 + }; + protocol.propertiesCodes = {}; + for (const prop in protocol.properties) { + const id = protocol.properties[prop]; + protocol.propertiesCodes[id] = prop; + } + protocol.propertiesTypes = { + sessionExpiryInterval: "int32", + willDelayInterval: "int32", + receiveMaximum: "int16", + maximumPacketSize: "int32", + topicAliasMaximum: "int16", + requestResponseInformation: "byte", + requestProblemInformation: "byte", + userProperties: "pair", + authenticationMethod: "string", + authenticationData: "binary", + payloadFormatIndicator: "byte", + messageExpiryInterval: "int32", + contentType: "string", + responseTopic: "string", + correlationData: "binary", + maximumQoS: "int8", + retainAvailable: "byte", + assignedClientIdentifier: "string", + reasonString: "string", + wildcardSubscriptionAvailable: "byte", + subscriptionIdentifiersAvailable: "byte", + sharedSubscriptionAvailable: "byte", + serverKeepAlive: "int16", + responseInformation: "string", + serverReference: "string", + topicAlias: "int16", + subscriptionIdentifier: "var" + }; + function genHeader(type) { + return [0, 1, 2].map((qos) => { + return [0, 1].map((dup) => { + return [0, 1].map((retain) => { + const buf = Buffer3.alloc(1); + buf.writeUInt8( + protocol.codes[type] << protocol.CMD_SHIFT | (dup ? protocol.DUP_MASK : 0) | qos << protocol.QOS_SHIFT | retain, + 0, + true + ); + return buf; + }); + }); + }); + } + protocol.PUBLISH_HEADER = genHeader("publish"); + protocol.SUBSCRIBE_HEADER = genHeader("subscribe"); + protocol.SUBSCRIBE_OPTIONS_QOS_MASK = 3; + protocol.SUBSCRIBE_OPTIONS_NL_MASK = 1; + protocol.SUBSCRIBE_OPTIONS_NL_SHIFT = 2; + protocol.SUBSCRIBE_OPTIONS_RAP_MASK = 1; + protocol.SUBSCRIBE_OPTIONS_RAP_SHIFT = 3; + protocol.SUBSCRIBE_OPTIONS_RH_MASK = 3; + protocol.SUBSCRIBE_OPTIONS_RH_SHIFT = 4; + protocol.SUBSCRIBE_OPTIONS_RH = [0, 16, 32]; + protocol.SUBSCRIBE_OPTIONS_NL = 4; + protocol.SUBSCRIBE_OPTIONS_RAP = 8; + protocol.SUBSCRIBE_OPTIONS_QOS = [0, 1, 2]; + protocol.UNSUBSCRIBE_HEADER = genHeader("unsubscribe"); + protocol.ACKS = { + unsuback: genHeader("unsuback"), + puback: genHeader("puback"), + pubcomp: genHeader("pubcomp"), + pubrel: genHeader("pubrel"), + pubrec: genHeader("pubrec") + }; + protocol.SUBACK_HEADER = Buffer3.from([protocol.codes.suback << protocol.CMD_SHIFT]); + protocol.VERSION3 = Buffer3.from([3]); + protocol.VERSION4 = Buffer3.from([4]); + protocol.VERSION5 = Buffer3.from([5]); + protocol.VERSION131 = Buffer3.from([131]); + protocol.VERSION132 = Buffer3.from([132]); + protocol.QOS = [0, 1, 2].map((qos) => { + return Buffer3.from([qos]); + }); + protocol.EMPTY = { + pingreq: Buffer3.from([protocol.codes.pingreq << 4, 0]), + pingresp: Buffer3.from([protocol.codes.pingresp << 4, 0]), + disconnect: Buffer3.from([protocol.codes.disconnect << 4, 0]) + }; + protocol.MQTT5_PUBACK_PUBREC_CODES = { + 0: "Success", + 16: "No matching subscribers", + 128: "Unspecified error", + 131: "Implementation specific error", + 135: "Not authorized", + 144: "Topic Name invalid", + 145: "Packet identifier in use", + 151: "Quota exceeded", + 153: "Payload format invalid" + }; + protocol.MQTT5_PUBREL_PUBCOMP_CODES = { + 0: "Success", + 146: "Packet Identifier not found" + }; + protocol.MQTT5_SUBACK_CODES = { + 0: "Granted QoS 0", + 1: "Granted QoS 1", + 2: "Granted QoS 2", + 128: "Unspecified error", + 131: "Implementation specific error", + 135: "Not authorized", + 143: "Topic Filter invalid", + 145: "Packet Identifier in use", + 151: "Quota exceeded", + 158: "Shared Subscriptions not supported", + 161: "Subscription Identifiers not supported", + 162: "Wildcard Subscriptions not supported" + }; + protocol.MQTT5_UNSUBACK_CODES = { + 0: "Success", + 17: "No subscription existed", + 128: "Unspecified error", + 131: "Implementation specific error", + 135: "Not authorized", + 143: "Topic Filter invalid", + 145: "Packet Identifier in use" + }; + protocol.MQTT5_DISCONNECT_CODES = { + 0: "Normal disconnection", + 4: "Disconnect with Will Message", + 128: "Unspecified error", + 129: "Malformed Packet", + 130: "Protocol Error", + 131: "Implementation specific error", + 135: "Not authorized", + 137: "Server busy", + 139: "Server shutting down", + 141: "Keep Alive timeout", + 142: "Session taken over", + 143: "Topic Filter invalid", + 144: "Topic Name invalid", + 147: "Receive Maximum exceeded", + 148: "Topic Alias invalid", + 149: "Packet too large", + 150: "Message rate too high", + 151: "Quota exceeded", + 152: "Administrative action", + 153: "Payload format invalid", + 154: "Retain not supported", + 155: "QoS not supported", + 156: "Use another server", + 157: "Server moved", + 158: "Shared Subscriptions not supported", + 159: "Connection rate exceeded", + 160: "Maximum connect time", + 161: "Subscription Identifiers not supported", + 162: "Wildcard Subscriptions not supported" + }; + protocol.MQTT5_AUTH_CODES = { + 0: "Success", + 24: "Continue authentication", + 25: "Re-authenticate" + }; + } + }); + + // node_modules/ms/index.js + var require_ms = __commonJS({ + "node_modules/ms/index.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse2(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + "val is not a non-empty string or a valid number. val=" + JSON.stringify(val) + ); + }; + function parse2(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; + } + function plural(ms, msAbs, n, name2) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name2 + (isPlural ? "s" : ""); + } + } + }); + + // node_modules/debug/src/common.js + var require_common = __commonJS({ + "node_modules/debug/src/common.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + function setup(env3) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require_ms(); + createDebug.destroy = destroy; + Object.keys(env3).forEach((key) => { + createDebug[key] = env3[key]; + }); + createDebug.names = []; + createDebug.skips = []; + createDebug.formatters = {}; + function selectColor(namespace) { + let hash = 0; + for (let i = 0; i < namespace.length; i++) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; + } + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + function debug(...args) { + if (!debug.enabled) { + return; + } + const self2 = debug; + const curr = Number(/* @__PURE__ */ new Date()); + const ms = curr - (prevTime || curr); + self2.diff = ms; + self2.prev = prevTime; + self2.curr = curr; + prevTime = curr; + args[0] = createDebug.coerce(args[0]); + if (typeof args[0] !== "string") { + args.unshift("%O"); + } + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format2) => { + if (match === "%%") { + return "%"; + } + index++; + const formatter = createDebug.formatters[format2]; + if (typeof formatter === "function") { + const val = args[index]; + match = formatter.call(self2, val); + args.splice(index, 1); + index--; + } + return match; + }); + createDebug.formatArgs.call(self2, args); + const logFn = self2.log || createDebug.log; + logFn.apply(self2, args); + } + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; + Object.defineProperty(debug, "enabled", { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + return enabledCache; + }, + set: (v) => { + enableOverride = v; + } + }); + if (typeof createDebug.init === "function") { + createDebug.init(debug); + } + return debug; + } + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + createDebug.names = []; + createDebug.skips = []; + const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean); + for (const ns of split) { + if (ns[0] === "-") { + createDebug.skips.push(ns.slice(1)); + } else { + createDebug.names.push(ns); + } + } + } + function matchesTemplate(search, template) { + let searchIndex = 0; + let templateIndex = 0; + let starIndex = -1; + let matchIndex = 0; + while (searchIndex < search.length) { + if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) { + if (template[templateIndex] === "*") { + starIndex = templateIndex; + matchIndex = searchIndex; + templateIndex++; + } else { + searchIndex++; + templateIndex++; + } + } else if (starIndex !== -1) { + templateIndex = starIndex + 1; + matchIndex++; + searchIndex = matchIndex; + } else { + return false; + } + } + while (templateIndex < template.length && template[templateIndex] === "*") { + templateIndex++; + } + return templateIndex === template.length; + } + function disable() { + const namespaces = [ + ...createDebug.names, + ...createDebug.skips.map((namespace) => "-" + namespace) + ].join(","); + createDebug.enable(""); + return namespaces; + } + function enabled(name2) { + for (const skip of createDebug.skips) { + if (matchesTemplate(name2, skip)) { + return false; + } + } + for (const ns of createDebug.names) { + if (matchesTemplate(name2, ns)) { + return true; + } + } + return false; + } + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + function destroy() { + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + createDebug.enable(createDebug.load()); + return createDebug; + } + module.exports = setup; + } + }); + + // node_modules/debug/src/browser.js + var require_browser4 = __commonJS({ + "node_modules/debug/src/browser.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + exports8.formatArgs = formatArgs; + exports8.save = save; + exports8.load = load; + exports8.useColors = useColors; + exports8.storage = localstorage(); + exports8.destroy = /* @__PURE__ */ (() => { + let warned = false; + return () => { + if (!warned) { + warned = true; + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + }; + })(); + exports8.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { + return true; + } + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + let m; + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773 + typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker + typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + function formatArgs(args) { + args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff); + if (!this.useColors) { + return; + } + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match) => { + if (match === "%%") { + return; + } + index++; + if (match === "%c") { + lastC = index; + } + }); + args.splice(lastC, 0, c); + } + exports8.log = console.debug || console.log || (() => { + }); + function save(namespaces) { + try { + if (namespaces) { + exports8.storage.setItem("debug", namespaces); + } else { + exports8.storage.removeItem("debug"); + } + } catch (error) { + } + } + function load() { + let r; + try { + r = exports8.storage.getItem("debug") || exports8.storage.getItem("DEBUG"); + } catch (error) { + } + if (!r && typeof process_exports !== "undefined" && "env" in process_exports) { + r = process_exports.env.DEBUG; + } + return r; + } + function localstorage() { + try { + return localStorage; + } catch (error) { + } + } + module.exports = require_common()(exports8); + var { formatters } = module.exports; + formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error) { + return "[UnexpectedJSONParseError]: " + error.message; + } + }; + } + }); + + // node_modules/mqtt-packet/parser.js + var require_parser = __commonJS({ + "node_modules/mqtt-packet/parser.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var bl = require_bl(); + var { EventEmitter: EventEmitter2 } = (init_events(), __toCommonJS(events_exports)); + var Packet = require_packet(); + var constants = require_constants(); + var debug = require_browser4()("mqtt-packet:parser"); + var Parser = class _Parser extends EventEmitter2 { + constructor() { + super(); + this.parser = this.constructor.parser; + } + static parser(opt) { + if (!(this instanceof _Parser)) return new _Parser().parser(opt); + this.settings = opt || {}; + this._states = [ + "_parseHeader", + "_parseLength", + "_parsePayload", + "_newPacket" + ]; + this._resetState(); + return this; + } + _resetState() { + debug("_resetState: resetting packet, error, _list, and _stateCounter"); + this.packet = new Packet(); + this.error = null; + this._list = bl(); + this._stateCounter = 0; + } + parse(buf) { + if (this.error) this._resetState(); + this._list.append(buf); + debug("parse: current state: %s", this._states[this._stateCounter]); + while ((this.packet.length !== -1 || this._list.length > 0) && this[this._states[this._stateCounter]]() && !this.error) { + this._stateCounter++; + debug("parse: state complete. _stateCounter is now: %d", this._stateCounter); + debug("parse: packet.length: %d, buffer list length: %d", this.packet.length, this._list.length); + if (this._stateCounter >= this._states.length) this._stateCounter = 0; + } + debug("parse: exited while loop. packet: %d, buffer list length: %d", this.packet.length, this._list.length); + return this._list.length; + } + _parseHeader() { + const zero = this._list.readUInt8(0); + const cmdIndex = zero >> constants.CMD_SHIFT; + this.packet.cmd = constants.types[cmdIndex]; + const headerFlags = zero & 15; + const requiredHeaderFlags = constants.requiredHeaderFlags[cmdIndex]; + if (requiredHeaderFlags != null && headerFlags !== requiredHeaderFlags) { + return this._emitError(new Error(constants.requiredHeaderFlagsErrors[cmdIndex])); + } + this.packet.retain = (zero & constants.RETAIN_MASK) !== 0; + this.packet.qos = zero >> constants.QOS_SHIFT & constants.QOS_MASK; + if (this.packet.qos > 2) { + return this._emitError(new Error("Packet must not have both QoS bits set to 1")); + } + this.packet.dup = (zero & constants.DUP_MASK) !== 0; + debug("_parseHeader: packet: %o", this.packet); + this._list.consume(1); + return true; + } + _parseLength() { + const result = this._parseVarByteNum(true); + if (result) { + this.packet.length = result.value; + this._list.consume(result.bytes); + } + debug("_parseLength %d", result.value); + return !!result; + } + _parsePayload() { + debug("_parsePayload: payload %O", this._list); + let result = false; + if (this.packet.length === 0 || this._list.length >= this.packet.length) { + this._pos = 0; + switch (this.packet.cmd) { + case "connect": + this._parseConnect(); + break; + case "connack": + this._parseConnack(); + break; + case "publish": + this._parsePublish(); + break; + case "puback": + case "pubrec": + case "pubrel": + case "pubcomp": + this._parseConfirmation(); + break; + case "subscribe": + this._parseSubscribe(); + break; + case "suback": + this._parseSuback(); + break; + case "unsubscribe": + this._parseUnsubscribe(); + break; + case "unsuback": + this._parseUnsuback(); + break; + case "pingreq": + case "pingresp": + break; + case "disconnect": + this._parseDisconnect(); + break; + case "auth": + this._parseAuth(); + break; + default: + this._emitError(new Error("Not supported")); + } + result = true; + } + debug("_parsePayload complete result: %s", result); + return result; + } + _parseConnect() { + debug("_parseConnect"); + let topic; + let payload; + let password; + let username; + const flags = {}; + const packet = this.packet; + const protocolId = this._parseString(); + if (protocolId === null) return this._emitError(new Error("Cannot parse protocolId")); + if (protocolId !== "MQTT" && protocolId !== "MQIsdp") { + return this._emitError(new Error("Invalid protocolId")); + } + packet.protocolId = protocolId; + if (this._pos >= this._list.length) return this._emitError(new Error("Packet too short")); + packet.protocolVersion = this._list.readUInt8(this._pos); + if (packet.protocolVersion >= 128) { + packet.bridgeMode = true; + packet.protocolVersion = packet.protocolVersion - 128; + } + if (packet.protocolVersion !== 3 && packet.protocolVersion !== 4 && packet.protocolVersion !== 5) { + return this._emitError(new Error("Invalid protocol version")); + } + this._pos++; + if (this._pos >= this._list.length) { + return this._emitError(new Error("Packet too short")); + } + if (this._list.readUInt8(this._pos) & 1) { + return this._emitError(new Error("Connect flag bit 0 must be 0, but got 1")); + } + flags.username = this._list.readUInt8(this._pos) & constants.USERNAME_MASK; + flags.password = this._list.readUInt8(this._pos) & constants.PASSWORD_MASK; + flags.will = this._list.readUInt8(this._pos) & constants.WILL_FLAG_MASK; + const willRetain = !!(this._list.readUInt8(this._pos) & constants.WILL_RETAIN_MASK); + const willQos = (this._list.readUInt8(this._pos) & constants.WILL_QOS_MASK) >> constants.WILL_QOS_SHIFT; + if (flags.will) { + packet.will = {}; + packet.will.retain = willRetain; + packet.will.qos = willQos; + } else { + if (willRetain) { + return this._emitError(new Error("Will Retain Flag must be set to zero when Will Flag is set to 0")); + } + if (willQos) { + return this._emitError(new Error("Will QoS must be set to zero when Will Flag is set to 0")); + } + } + packet.clean = (this._list.readUInt8(this._pos) & constants.CLEAN_SESSION_MASK) !== 0; + this._pos++; + packet.keepalive = this._parseNum(); + if (packet.keepalive === -1) return this._emitError(new Error("Packet too short")); + if (packet.protocolVersion === 5) { + const properties = this._parseProperties(); + if (Object.getOwnPropertyNames(properties).length) { + packet.properties = properties; + } + } + const clientId = this._parseString(); + if (clientId === null) return this._emitError(new Error("Packet too short")); + packet.clientId = clientId; + debug("_parseConnect: packet.clientId: %s", packet.clientId); + if (flags.will) { + if (packet.protocolVersion === 5) { + const willProperties = this._parseProperties(); + if (Object.getOwnPropertyNames(willProperties).length) { + packet.will.properties = willProperties; + } + } + topic = this._parseString(); + if (topic === null) return this._emitError(new Error("Cannot parse will topic")); + packet.will.topic = topic; + debug("_parseConnect: packet.will.topic: %s", packet.will.topic); + payload = this._parseBuffer(); + if (payload === null) return this._emitError(new Error("Cannot parse will payload")); + packet.will.payload = payload; + debug("_parseConnect: packet.will.paylaod: %s", packet.will.payload); + } + if (flags.username) { + username = this._parseString(); + if (username === null) return this._emitError(new Error("Cannot parse username")); + packet.username = username; + debug("_parseConnect: packet.username: %s", packet.username); + } + if (flags.password) { + password = this._parseBuffer(); + if (password === null) return this._emitError(new Error("Cannot parse password")); + packet.password = password; + } + this.settings = packet; + debug("_parseConnect: complete"); + return packet; + } + _parseConnack() { + debug("_parseConnack"); + const packet = this.packet; + if (this._list.length < 1) return null; + const flags = this._list.readUInt8(this._pos++); + if (flags > 1) { + return this._emitError(new Error("Invalid connack flags, bits 7-1 must be set to 0")); + } + packet.sessionPresent = !!(flags & constants.SESSIONPRESENT_MASK); + if (this.settings.protocolVersion === 5) { + if (this._list.length >= 2) { + packet.reasonCode = this._list.readUInt8(this._pos++); + } else { + packet.reasonCode = 0; + } + } else { + if (this._list.length < 2) return null; + packet.returnCode = this._list.readUInt8(this._pos++); + } + if (packet.returnCode === -1 || packet.reasonCode === -1) return this._emitError(new Error("Cannot parse return code")); + if (this.settings.protocolVersion === 5) { + const properties = this._parseProperties(); + if (Object.getOwnPropertyNames(properties).length) { + packet.properties = properties; + } + } + debug("_parseConnack: complete"); + } + _parsePublish() { + debug("_parsePublish"); + const packet = this.packet; + packet.topic = this._parseString(); + if (packet.topic === null) return this._emitError(new Error("Cannot parse topic")); + if (packet.qos > 0) { + if (!this._parseMessageId()) { + return; + } + } + if (this.settings.protocolVersion === 5) { + const properties = this._parseProperties(); + if (Object.getOwnPropertyNames(properties).length) { + packet.properties = properties; + } + } + packet.payload = this._list.slice(this._pos, packet.length); + debug("_parsePublish: payload from buffer list: %o", packet.payload); + } + _parseSubscribe() { + debug("_parseSubscribe"); + const packet = this.packet; + let topic; + let options; + let qos; + let rh; + let rap; + let nl; + let subscription; + packet.subscriptions = []; + if (!this._parseMessageId()) { + return; + } + if (this.settings.protocolVersion === 5) { + const properties = this._parseProperties(); + if (Object.getOwnPropertyNames(properties).length) { + packet.properties = properties; + } + } + if (packet.length <= 0) { + return this._emitError(new Error("Malformed subscribe, no payload specified")); + } + while (this._pos < packet.length) { + topic = this._parseString(); + if (topic === null) return this._emitError(new Error("Cannot parse topic")); + if (this._pos >= packet.length) return this._emitError(new Error("Malformed Subscribe Payload")); + options = this._parseByte(); + if (this.settings.protocolVersion === 5) { + if (options & 192) { + return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-6 must be 0")); + } + } else { + if (options & 252) { + return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-2 must be 0")); + } + } + qos = options & constants.SUBSCRIBE_OPTIONS_QOS_MASK; + if (qos > 2) { + return this._emitError(new Error("Invalid subscribe QoS, must be <= 2")); + } + nl = (options >> constants.SUBSCRIBE_OPTIONS_NL_SHIFT & constants.SUBSCRIBE_OPTIONS_NL_MASK) !== 0; + rap = (options >> constants.SUBSCRIBE_OPTIONS_RAP_SHIFT & constants.SUBSCRIBE_OPTIONS_RAP_MASK) !== 0; + rh = options >> constants.SUBSCRIBE_OPTIONS_RH_SHIFT & constants.SUBSCRIBE_OPTIONS_RH_MASK; + if (rh > 2) { + return this._emitError(new Error("Invalid retain handling, must be <= 2")); + } + subscription = { topic, qos }; + if (this.settings.protocolVersion === 5) { + subscription.nl = nl; + subscription.rap = rap; + subscription.rh = rh; + } else if (this.settings.bridgeMode) { + subscription.rh = 0; + subscription.rap = true; + subscription.nl = true; + } + debug("_parseSubscribe: push subscription `%s` to subscription", subscription); + packet.subscriptions.push(subscription); + } + } + _parseSuback() { + debug("_parseSuback"); + const packet = this.packet; + this.packet.granted = []; + if (!this._parseMessageId()) { + return; + } + if (this.settings.protocolVersion === 5) { + const properties = this._parseProperties(); + if (Object.getOwnPropertyNames(properties).length) { + packet.properties = properties; + } + } + if (packet.length <= 0) { + return this._emitError(new Error("Malformed suback, no payload specified")); + } + while (this._pos < this.packet.length) { + const code = this._list.readUInt8(this._pos++); + if (this.settings.protocolVersion === 5) { + if (!constants.MQTT5_SUBACK_CODES[code]) { + return this._emitError(new Error("Invalid suback code")); + } + } else { + if (code > 2 && code !== 128) { + return this._emitError(new Error("Invalid suback QoS, must be 0, 1, 2 or 128")); + } + } + this.packet.granted.push(code); + } + } + _parseUnsubscribe() { + debug("_parseUnsubscribe"); + const packet = this.packet; + packet.unsubscriptions = []; + if (!this._parseMessageId()) { + return; + } + if (this.settings.protocolVersion === 5) { + const properties = this._parseProperties(); + if (Object.getOwnPropertyNames(properties).length) { + packet.properties = properties; + } + } + if (packet.length <= 0) { + return this._emitError(new Error("Malformed unsubscribe, no payload specified")); + } + while (this._pos < packet.length) { + const topic = this._parseString(); + if (topic === null) return this._emitError(new Error("Cannot parse topic")); + debug("_parseUnsubscribe: push topic `%s` to unsubscriptions", topic); + packet.unsubscriptions.push(topic); + } + } + _parseUnsuback() { + debug("_parseUnsuback"); + const packet = this.packet; + if (!this._parseMessageId()) return this._emitError(new Error("Cannot parse messageId")); + if ((this.settings.protocolVersion === 3 || this.settings.protocolVersion === 4) && packet.length !== 2) { + return this._emitError(new Error("Malformed unsuback, payload length must be 2")); + } + if (packet.length <= 0) { + return this._emitError(new Error("Malformed unsuback, no payload specified")); + } + if (this.settings.protocolVersion === 5) { + const properties = this._parseProperties(); + if (Object.getOwnPropertyNames(properties).length) { + packet.properties = properties; + } + packet.granted = []; + while (this._pos < this.packet.length) { + const code = this._list.readUInt8(this._pos++); + if (!constants.MQTT5_UNSUBACK_CODES[code]) { + return this._emitError(new Error("Invalid unsuback code")); + } + this.packet.granted.push(code); + } + } + } + // parse packets like puback, pubrec, pubrel, pubcomp + _parseConfirmation() { + debug("_parseConfirmation: packet.cmd: `%s`", this.packet.cmd); + const packet = this.packet; + this._parseMessageId(); + if (this.settings.protocolVersion === 5) { + if (packet.length > 2) { + packet.reasonCode = this._parseByte(); + switch (this.packet.cmd) { + case "puback": + case "pubrec": + if (!constants.MQTT5_PUBACK_PUBREC_CODES[packet.reasonCode]) { + return this._emitError(new Error("Invalid " + this.packet.cmd + " reason code")); + } + break; + case "pubrel": + case "pubcomp": + if (!constants.MQTT5_PUBREL_PUBCOMP_CODES[packet.reasonCode]) { + return this._emitError(new Error("Invalid " + this.packet.cmd + " reason code")); + } + break; + } + debug("_parseConfirmation: packet.reasonCode `%d`", packet.reasonCode); + } else { + packet.reasonCode = 0; + } + if (packet.length > 3) { + const properties = this._parseProperties(); + if (Object.getOwnPropertyNames(properties).length) { + packet.properties = properties; + } + } + } + return true; + } + // parse disconnect packet + _parseDisconnect() { + const packet = this.packet; + debug("_parseDisconnect"); + if (this.settings.protocolVersion === 5) { + if (this._list.length > 0) { + packet.reasonCode = this._parseByte(); + if (!constants.MQTT5_DISCONNECT_CODES[packet.reasonCode]) { + this._emitError(new Error("Invalid disconnect reason code")); + } + } else { + packet.reasonCode = 0; + } + const properties = this._parseProperties(); + if (Object.getOwnPropertyNames(properties).length) { + packet.properties = properties; + } + } + debug("_parseDisconnect result: true"); + return true; + } + // parse auth packet + _parseAuth() { + debug("_parseAuth"); + const packet = this.packet; + if (this.settings.protocolVersion !== 5) { + return this._emitError(new Error("Not supported auth packet for this version MQTT")); + } + packet.reasonCode = this._parseByte(); + if (!constants.MQTT5_AUTH_CODES[packet.reasonCode]) { + return this._emitError(new Error("Invalid auth reason code")); + } + const properties = this._parseProperties(); + if (Object.getOwnPropertyNames(properties).length) { + packet.properties = properties; + } + debug("_parseAuth: result: true"); + return true; + } + _parseMessageId() { + const packet = this.packet; + packet.messageId = this._parseNum(); + if (packet.messageId === null) { + this._emitError(new Error("Cannot parse messageId")); + return false; + } + debug("_parseMessageId: packet.messageId %d", packet.messageId); + return true; + } + _parseString(maybeBuffer) { + const length = this._parseNum(); + const end = length + this._pos; + if (length === -1 || end > this._list.length || end > this.packet.length) return null; + const result = this._list.toString("utf8", this._pos, end); + this._pos += length; + debug("_parseString: result: %s", result); + return result; + } + _parseStringPair() { + debug("_parseStringPair"); + return { + name: this._parseString(), + value: this._parseString() + }; + } + _parseBuffer() { + const length = this._parseNum(); + const end = length + this._pos; + if (length === -1 || end > this._list.length || end > this.packet.length) return null; + const result = this._list.slice(this._pos, end); + this._pos += length; + debug("_parseBuffer: result: %o", result); + return result; + } + _parseNum() { + if (this._list.length - this._pos < 2) return -1; + const result = this._list.readUInt16BE(this._pos); + this._pos += 2; + debug("_parseNum: result: %s", result); + return result; + } + _parse4ByteNum() { + if (this._list.length - this._pos < 4) return -1; + const result = this._list.readUInt32BE(this._pos); + this._pos += 4; + debug("_parse4ByteNum: result: %s", result); + return result; + } + _parseVarByteNum(fullInfoFlag) { + debug("_parseVarByteNum"); + const maxBytes = 4; + let bytes = 0; + let mul = 1; + let value = 0; + let result = false; + let current; + const padding = this._pos ? this._pos : 0; + while (bytes < maxBytes && padding + bytes < this._list.length) { + current = this._list.readUInt8(padding + bytes++); + value += mul * (current & constants.VARBYTEINT_MASK); + mul *= 128; + if ((current & constants.VARBYTEINT_FIN_MASK) === 0) { + result = true; + break; + } + if (this._list.length <= bytes) { + break; + } + } + if (!result && bytes === maxBytes && this._list.length >= bytes) { + this._emitError(new Error("Invalid variable byte integer")); + } + if (padding) { + this._pos += bytes; + } + if (result) { + if (fullInfoFlag) { + result = { bytes, value }; + } else { + result = value; + } + } else { + result = false; + } + debug("_parseVarByteNum: result: %o", result); + return result; + } + _parseByte() { + let result; + if (this._pos < this._list.length) { + result = this._list.readUInt8(this._pos); + this._pos++; + } + debug("_parseByte: result: %o", result); + return result; + } + _parseByType(type) { + debug("_parseByType: type: %s", type); + switch (type) { + case "byte": { + return this._parseByte() !== 0; + } + case "int8": { + return this._parseByte(); + } + case "int16": { + return this._parseNum(); + } + case "int32": { + return this._parse4ByteNum(); + } + case "var": { + return this._parseVarByteNum(); + } + case "string": { + return this._parseString(); + } + case "pair": { + return this._parseStringPair(); + } + case "binary": { + return this._parseBuffer(); + } + } + } + _parseProperties() { + debug("_parseProperties"); + const length = this._parseVarByteNum(); + const start = this._pos; + const end = start + length; + const result = {}; + while (this._pos < end) { + const type = this._parseByte(); + if (!type) { + this._emitError(new Error("Cannot parse property code type")); + return false; + } + const name2 = constants.propertiesCodes[type]; + if (!name2) { + this._emitError(new Error("Unknown property")); + return false; + } + if (name2 === "userProperties") { + if (!result[name2]) { + result[name2] = /* @__PURE__ */ Object.create(null); + } + const currentUserProperty = this._parseByType(constants.propertiesTypes[name2]); + if (result[name2][currentUserProperty.name]) { + if (Array.isArray(result[name2][currentUserProperty.name])) { + result[name2][currentUserProperty.name].push(currentUserProperty.value); + } else { + const currentValue = result[name2][currentUserProperty.name]; + result[name2][currentUserProperty.name] = [currentValue]; + result[name2][currentUserProperty.name].push(currentUserProperty.value); + } + } else { + result[name2][currentUserProperty.name] = currentUserProperty.value; + } + continue; + } + if (result[name2]) { + if (Array.isArray(result[name2])) { + result[name2].push(this._parseByType(constants.propertiesTypes[name2])); + } else { + result[name2] = [result[name2]]; + result[name2].push(this._parseByType(constants.propertiesTypes[name2])); + } + } else { + result[name2] = this._parseByType(constants.propertiesTypes[name2]); + } + } + return result; + } + _newPacket() { + debug("_newPacket"); + if (this.packet) { + this._list.consume(this.packet.length); + debug("_newPacket: parser emit packet: packet.cmd: %s, packet.payload: %s, packet.length: %d", this.packet.cmd, this.packet.payload, this.packet.length); + this.emit("packet", this.packet); + } + debug("_newPacket: new packet"); + this.packet = new Packet(); + this._pos = 0; + return true; + } + _emitError(err) { + debug("_emitError", err); + this.error = err; + this.emit("error", err); + } + }; + module.exports = Parser; + } + }); + + // node_modules/mqtt-packet/numbers.js + var require_numbers = __commonJS({ + "node_modules/mqtt-packet/numbers.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var { Buffer: Buffer3 } = (init_buffer(), __toCommonJS(buffer_exports)); + var max = 65536; + var cache = {}; + var SubOk = Buffer3.isBuffer(Buffer3.from([1, 2]).subarray(0, 1)); + function generateBuffer(i) { + const buffer = Buffer3.allocUnsafe(2); + buffer.writeUInt8(i >> 8, 0); + buffer.writeUInt8(i & 255, 0 + 1); + return buffer; + } + function generateCache() { + for (let i = 0; i < max; i++) { + cache[i] = generateBuffer(i); + } + } + function genBufVariableByteInt(num) { + const maxLength = 4; + let digit = 0; + let pos = 0; + const buffer = Buffer3.allocUnsafe(maxLength); + do { + digit = num % 128 | 0; + num = num / 128 | 0; + if (num > 0) digit = digit | 128; + buffer.writeUInt8(digit, pos++); + } while (num > 0 && pos < maxLength); + if (num > 0) { + pos = 0; + } + return SubOk ? buffer.subarray(0, pos) : buffer.slice(0, pos); + } + function generate4ByteBuffer(num) { + const buffer = Buffer3.allocUnsafe(4); + buffer.writeUInt32BE(num, 0); + return buffer; + } + module.exports = { + cache, + generateCache, + generateNumber: generateBuffer, + genBufVariableByteInt, + generate4ByteBuffer + }; + } + }); + + // node_modules/process-nextick-args/index.js + var require_process_nextick_args = __commonJS({ + "node_modules/process-nextick-args/index.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + if (typeof process_exports === "undefined" || !process_exports.version || process_exports.version.indexOf("v0.") === 0 || process_exports.version.indexOf("v1.") === 0 && process_exports.version.indexOf("v1.8.") !== 0) { + module.exports = { nextTick: nextTick3 }; + } else { + module.exports = process_exports; + } + function nextTick3(fn, arg1, arg2, arg3) { + if (typeof fn !== "function") { + throw new TypeError('"callback" argument must be a function'); + } + var len = arguments.length; + var args, i; + switch (len) { + case 0: + case 1: + return process_exports.nextTick(fn); + case 2: + return process_exports.nextTick(function afterTickOne() { + fn.call(null, arg1); + }); + case 3: + return process_exports.nextTick(function afterTickTwo() { + fn.call(null, arg1, arg2); + }); + case 4: + return process_exports.nextTick(function afterTickThree() { + fn.call(null, arg1, arg2, arg3); + }); + default: + args = new Array(len - 1); + i = 0; + while (i < args.length) { + args[i++] = arguments[i]; + } + return process_exports.nextTick(function afterTick() { + fn.apply(null, args); + }); + } + } + } + }); + + // node_modules/mqtt-packet/writeToStream.js + var require_writeToStream = __commonJS({ + "node_modules/mqtt-packet/writeToStream.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var protocol = require_constants(); + var { Buffer: Buffer3 } = (init_buffer(), __toCommonJS(buffer_exports)); + var empty2 = Buffer3.allocUnsafe(0); + var zeroBuf = Buffer3.from([0]); + var numbers = require_numbers(); + var nextTick3 = require_process_nextick_args().nextTick; + var debug = require_browser4()("mqtt-packet:writeToStream"); + var numCache = numbers.cache; + var generateNumber = numbers.generateNumber; + var generateCache = numbers.generateCache; + var genBufVariableByteInt = numbers.genBufVariableByteInt; + var generate4ByteBuffer = numbers.generate4ByteBuffer; + var writeNumber = writeNumberCached; + var toGenerate = true; + function generate(packet, stream, opts) { + debug("generate called"); + if (stream.cork) { + stream.cork(); + nextTick3(uncork, stream); + } + if (toGenerate) { + toGenerate = false; + generateCache(); + } + debug("generate: packet.cmd: %s", packet.cmd); + switch (packet.cmd) { + case "connect": + return connect(packet, stream, opts); + case "connack": + return connack(packet, stream, opts); + case "publish": + return publish(packet, stream, opts); + case "puback": + case "pubrec": + case "pubrel": + case "pubcomp": + return confirmation(packet, stream, opts); + case "subscribe": + return subscribe(packet, stream, opts); + case "suback": + return suback(packet, stream, opts); + case "unsubscribe": + return unsubscribe(packet, stream, opts); + case "unsuback": + return unsuback(packet, stream, opts); + case "pingreq": + case "pingresp": + return emptyPacket(packet, stream, opts); + case "disconnect": + return disconnect(packet, stream, opts); + case "auth": + return auth(packet, stream, opts); + default: + stream.destroy(new Error("Unknown command")); + return false; + } + } + Object.defineProperty(generate, "cacheNumbers", { + get() { + return writeNumber === writeNumberCached; + }, + set(value) { + if (value) { + if (!numCache || Object.keys(numCache).length === 0) toGenerate = true; + writeNumber = writeNumberCached; + } else { + toGenerate = false; + writeNumber = writeNumberGenerated; + } + } + }); + function uncork(stream) { + stream.uncork(); + } + function connect(packet, stream, opts) { + const settings = packet || {}; + const protocolId = settings.protocolId || "MQTT"; + let protocolVersion = settings.protocolVersion || 4; + const will = settings.will; + let clean = settings.clean; + const keepalive = settings.keepalive || 0; + const clientId = settings.clientId || ""; + const username = settings.username; + const password = settings.password; + const properties = settings.properties; + if (clean === void 0) clean = true; + let length = 0; + if (!protocolId || typeof protocolId !== "string" && !Buffer3.isBuffer(protocolId)) { + stream.destroy(new Error("Invalid protocolId")); + return false; + } else length += protocolId.length + 2; + if (protocolVersion !== 3 && protocolVersion !== 4 && protocolVersion !== 5) { + stream.destroy(new Error("Invalid protocol version")); + return false; + } else length += 1; + if ((typeof clientId === "string" || Buffer3.isBuffer(clientId)) && (clientId || protocolVersion >= 4) && (clientId || clean)) { + length += Buffer3.byteLength(clientId) + 2; + } else { + if (protocolVersion < 4) { + stream.destroy(new Error("clientId must be supplied before 3.1.1")); + return false; + } + if (clean * 1 === 0) { + stream.destroy(new Error("clientId must be given if cleanSession set to 0")); + return false; + } + } + if (typeof keepalive !== "number" || keepalive < 0 || keepalive > 65535 || keepalive % 1 !== 0) { + stream.destroy(new Error("Invalid keepalive")); + return false; + } else length += 2; + length += 1; + let propertiesData; + let willProperties; + if (protocolVersion === 5) { + propertiesData = getProperties(stream, properties); + if (!propertiesData) { + return false; + } + length += propertiesData.length; + } + if (will) { + if (typeof will !== "object") { + stream.destroy(new Error("Invalid will")); + return false; + } + if (!will.topic || typeof will.topic !== "string") { + stream.destroy(new Error("Invalid will topic")); + return false; + } else { + length += Buffer3.byteLength(will.topic) + 2; + } + length += 2; + if (will.payload) { + if (will.payload.length >= 0) { + if (typeof will.payload === "string") { + length += Buffer3.byteLength(will.payload); + } else { + length += will.payload.length; + } + } else { + stream.destroy(new Error("Invalid will payload")); + return false; + } + } + willProperties = {}; + if (protocolVersion === 5) { + willProperties = getProperties(stream, will.properties); + if (!willProperties) { + return false; + } + length += willProperties.length; + } + } + let providedUsername = false; + if (username != null) { + if (isStringOrBuffer(username)) { + providedUsername = true; + length += Buffer3.byteLength(username) + 2; + } else { + stream.destroy(new Error("Invalid username")); + return false; + } + } + if (password != null) { + if (!providedUsername) { + stream.destroy(new Error("Username is required to use password")); + return false; + } + if (isStringOrBuffer(password)) { + length += byteLength(password) + 2; + } else { + stream.destroy(new Error("Invalid password")); + return false; + } + } + stream.write(protocol.CONNECT_HEADER); + writeVarByteInt(stream, length); + writeStringOrBuffer(stream, protocolId); + if (settings.bridgeMode) { + protocolVersion += 128; + } + stream.write( + protocolVersion === 131 ? protocol.VERSION131 : protocolVersion === 132 ? protocol.VERSION132 : protocolVersion === 4 ? protocol.VERSION4 : protocolVersion === 5 ? protocol.VERSION5 : protocol.VERSION3 + ); + let flags = 0; + flags |= username != null ? protocol.USERNAME_MASK : 0; + flags |= password != null ? protocol.PASSWORD_MASK : 0; + flags |= will && will.retain ? protocol.WILL_RETAIN_MASK : 0; + flags |= will && will.qos ? will.qos << protocol.WILL_QOS_SHIFT : 0; + flags |= will ? protocol.WILL_FLAG_MASK : 0; + flags |= clean ? protocol.CLEAN_SESSION_MASK : 0; + stream.write(Buffer3.from([flags])); + writeNumber(stream, keepalive); + if (protocolVersion === 5) { + propertiesData.write(); + } + writeStringOrBuffer(stream, clientId); + if (will) { + if (protocolVersion === 5) { + willProperties.write(); + } + writeString(stream, will.topic); + writeStringOrBuffer(stream, will.payload); + } + if (username != null) { + writeStringOrBuffer(stream, username); + } + if (password != null) { + writeStringOrBuffer(stream, password); + } + return true; + } + function connack(packet, stream, opts) { + const version4 = opts ? opts.protocolVersion : 4; + const settings = packet || {}; + const rc = version4 === 5 ? settings.reasonCode : settings.returnCode; + const properties = settings.properties; + let length = 2; + if (typeof rc !== "number") { + stream.destroy(new Error("Invalid return code")); + return false; + } + let propertiesData = null; + if (version4 === 5) { + propertiesData = getProperties(stream, properties); + if (!propertiesData) { + return false; + } + length += propertiesData.length; + } + stream.write(protocol.CONNACK_HEADER); + writeVarByteInt(stream, length); + stream.write(settings.sessionPresent ? protocol.SESSIONPRESENT_HEADER : zeroBuf); + stream.write(Buffer3.from([rc])); + if (propertiesData != null) { + propertiesData.write(); + } + return true; + } + function publish(packet, stream, opts) { + debug("publish: packet: %o", packet); + const version4 = opts ? opts.protocolVersion : 4; + const settings = packet || {}; + const qos = settings.qos || 0; + const retain = settings.retain ? protocol.RETAIN_MASK : 0; + const topic = settings.topic; + const payload = settings.payload || empty2; + const id = settings.messageId; + const properties = settings.properties; + let length = 0; + if (typeof topic === "string") length += Buffer3.byteLength(topic) + 2; + else if (Buffer3.isBuffer(topic)) length += topic.length + 2; + else { + stream.destroy(new Error("Invalid topic")); + return false; + } + if (!Buffer3.isBuffer(payload)) length += Buffer3.byteLength(payload); + else length += payload.length; + if (qos && typeof id !== "number") { + stream.destroy(new Error("Invalid messageId")); + return false; + } else if (qos) length += 2; + let propertiesData = null; + if (version4 === 5) { + propertiesData = getProperties(stream, properties); + if (!propertiesData) { + return false; + } + length += propertiesData.length; + } + stream.write(protocol.PUBLISH_HEADER[qos][settings.dup ? 1 : 0][retain ? 1 : 0]); + writeVarByteInt(stream, length); + writeNumber(stream, byteLength(topic)); + stream.write(topic); + if (qos > 0) writeNumber(stream, id); + if (propertiesData != null) { + propertiesData.write(); + } + debug("publish: payload: %o", payload); + return stream.write(payload); + } + function confirmation(packet, stream, opts) { + const version4 = opts ? opts.protocolVersion : 4; + const settings = packet || {}; + const type = settings.cmd || "puback"; + const id = settings.messageId; + const dup = settings.dup && type === "pubrel" ? protocol.DUP_MASK : 0; + let qos = 0; + const reasonCode = settings.reasonCode; + const properties = settings.properties; + let length = version4 === 5 ? 3 : 2; + if (type === "pubrel") qos = 1; + if (typeof id !== "number") { + stream.destroy(new Error("Invalid messageId")); + return false; + } + let propertiesData = null; + if (version4 === 5) { + if (typeof properties === "object") { + propertiesData = getPropertiesByMaximumPacketSize(stream, properties, opts, length); + if (!propertiesData) { + return false; + } + length += propertiesData.length; + } + } + stream.write(protocol.ACKS[type][qos][dup][0]); + if (length === 3) length += reasonCode !== 0 ? 1 : -1; + writeVarByteInt(stream, length); + writeNumber(stream, id); + if (version4 === 5 && length !== 2) { + stream.write(Buffer3.from([reasonCode])); + } + if (propertiesData !== null) { + propertiesData.write(); + } else { + if (length === 4) { + stream.write(Buffer3.from([0])); + } + } + return true; + } + function subscribe(packet, stream, opts) { + debug("subscribe: packet: "); + const version4 = opts ? opts.protocolVersion : 4; + const settings = packet || {}; + const dup = settings.dup ? protocol.DUP_MASK : 0; + const id = settings.messageId; + const subs = settings.subscriptions; + const properties = settings.properties; + let length = 0; + if (typeof id !== "number") { + stream.destroy(new Error("Invalid messageId")); + return false; + } else length += 2; + let propertiesData = null; + if (version4 === 5) { + propertiesData = getProperties(stream, properties); + if (!propertiesData) { + return false; + } + length += propertiesData.length; + } + if (typeof subs === "object" && subs.length) { + for (let i = 0; i < subs.length; i += 1) { + const itopic = subs[i].topic; + const iqos = subs[i].qos; + if (typeof itopic !== "string") { + stream.destroy(new Error("Invalid subscriptions - invalid topic")); + return false; + } + if (typeof iqos !== "number") { + stream.destroy(new Error("Invalid subscriptions - invalid qos")); + return false; + } + if (version4 === 5) { + const nl = subs[i].nl || false; + if (typeof nl !== "boolean") { + stream.destroy(new Error("Invalid subscriptions - invalid No Local")); + return false; + } + const rap = subs[i].rap || false; + if (typeof rap !== "boolean") { + stream.destroy(new Error("Invalid subscriptions - invalid Retain as Published")); + return false; + } + const rh = subs[i].rh || 0; + if (typeof rh !== "number" || rh > 2) { + stream.destroy(new Error("Invalid subscriptions - invalid Retain Handling")); + return false; + } + } + length += Buffer3.byteLength(itopic) + 2 + 1; + } + } else { + stream.destroy(new Error("Invalid subscriptions")); + return false; + } + debug("subscribe: writing to stream: %o", protocol.SUBSCRIBE_HEADER); + stream.write(protocol.SUBSCRIBE_HEADER[1][dup ? 1 : 0][0]); + writeVarByteInt(stream, length); + writeNumber(stream, id); + if (propertiesData !== null) { + propertiesData.write(); + } + let result = true; + for (const sub of subs) { + const jtopic = sub.topic; + const jqos = sub.qos; + const jnl = +sub.nl; + const jrap = +sub.rap; + const jrh = sub.rh; + let joptions; + writeString(stream, jtopic); + joptions = protocol.SUBSCRIBE_OPTIONS_QOS[jqos]; + if (version4 === 5) { + joptions |= jnl ? protocol.SUBSCRIBE_OPTIONS_NL : 0; + joptions |= jrap ? protocol.SUBSCRIBE_OPTIONS_RAP : 0; + joptions |= jrh ? protocol.SUBSCRIBE_OPTIONS_RH[jrh] : 0; + } + result = stream.write(Buffer3.from([joptions])); + } + return result; + } + function suback(packet, stream, opts) { + const version4 = opts ? opts.protocolVersion : 4; + const settings = packet || {}; + const id = settings.messageId; + const granted = settings.granted; + const properties = settings.properties; + let length = 0; + if (typeof id !== "number") { + stream.destroy(new Error("Invalid messageId")); + return false; + } else length += 2; + if (typeof granted === "object" && granted.length) { + for (let i = 0; i < granted.length; i += 1) { + if (typeof granted[i] !== "number") { + stream.destroy(new Error("Invalid qos vector")); + return false; + } + length += 1; + } + } else { + stream.destroy(new Error("Invalid qos vector")); + return false; + } + let propertiesData = null; + if (version4 === 5) { + propertiesData = getPropertiesByMaximumPacketSize(stream, properties, opts, length); + if (!propertiesData) { + return false; + } + length += propertiesData.length; + } + stream.write(protocol.SUBACK_HEADER); + writeVarByteInt(stream, length); + writeNumber(stream, id); + if (propertiesData !== null) { + propertiesData.write(); + } + return stream.write(Buffer3.from(granted)); + } + function unsubscribe(packet, stream, opts) { + const version4 = opts ? opts.protocolVersion : 4; + const settings = packet || {}; + const id = settings.messageId; + const dup = settings.dup ? protocol.DUP_MASK : 0; + const unsubs = settings.unsubscriptions; + const properties = settings.properties; + let length = 0; + if (typeof id !== "number") { + stream.destroy(new Error("Invalid messageId")); + return false; + } else { + length += 2; + } + if (typeof unsubs === "object" && unsubs.length) { + for (let i = 0; i < unsubs.length; i += 1) { + if (typeof unsubs[i] !== "string") { + stream.destroy(new Error("Invalid unsubscriptions")); + return false; + } + length += Buffer3.byteLength(unsubs[i]) + 2; + } + } else { + stream.destroy(new Error("Invalid unsubscriptions")); + return false; + } + let propertiesData = null; + if (version4 === 5) { + propertiesData = getProperties(stream, properties); + if (!propertiesData) { + return false; + } + length += propertiesData.length; + } + stream.write(protocol.UNSUBSCRIBE_HEADER[1][dup ? 1 : 0][0]); + writeVarByteInt(stream, length); + writeNumber(stream, id); + if (propertiesData !== null) { + propertiesData.write(); + } + let result = true; + for (let j = 0; j < unsubs.length; j++) { + result = writeString(stream, unsubs[j]); + } + return result; + } + function unsuback(packet, stream, opts) { + const version4 = opts ? opts.protocolVersion : 4; + const settings = packet || {}; + const id = settings.messageId; + const dup = settings.dup ? protocol.DUP_MASK : 0; + const granted = settings.granted; + const properties = settings.properties; + const type = settings.cmd; + const qos = 0; + let length = 2; + if (typeof id !== "number") { + stream.destroy(new Error("Invalid messageId")); + return false; + } + if (version4 === 5) { + if (typeof granted === "object" && granted.length) { + for (let i = 0; i < granted.length; i += 1) { + if (typeof granted[i] !== "number") { + stream.destroy(new Error("Invalid qos vector")); + return false; + } + length += 1; + } + } else { + stream.destroy(new Error("Invalid qos vector")); + return false; + } + } + let propertiesData = null; + if (version4 === 5) { + propertiesData = getPropertiesByMaximumPacketSize(stream, properties, opts, length); + if (!propertiesData) { + return false; + } + length += propertiesData.length; + } + stream.write(protocol.ACKS[type][qos][dup][0]); + writeVarByteInt(stream, length); + writeNumber(stream, id); + if (propertiesData !== null) { + propertiesData.write(); + } + if (version4 === 5) { + stream.write(Buffer3.from(granted)); + } + return true; + } + function emptyPacket(packet, stream, opts) { + return stream.write(protocol.EMPTY[packet.cmd]); + } + function disconnect(packet, stream, opts) { + const version4 = opts ? opts.protocolVersion : 4; + const settings = packet || {}; + const reasonCode = settings.reasonCode; + const properties = settings.properties; + let length = version4 === 5 ? 1 : 0; + let propertiesData = null; + if (version4 === 5) { + propertiesData = getPropertiesByMaximumPacketSize(stream, properties, opts, length); + if (!propertiesData) { + return false; + } + length += propertiesData.length; + } + stream.write(Buffer3.from([protocol.codes.disconnect << 4])); + writeVarByteInt(stream, length); + if (version4 === 5) { + stream.write(Buffer3.from([reasonCode])); + } + if (propertiesData !== null) { + propertiesData.write(); + } + return true; + } + function auth(packet, stream, opts) { + const version4 = opts ? opts.protocolVersion : 4; + const settings = packet || {}; + const reasonCode = settings.reasonCode; + const properties = settings.properties; + let length = version4 === 5 ? 1 : 0; + if (version4 !== 5) stream.destroy(new Error("Invalid mqtt version for auth packet")); + const propertiesData = getPropertiesByMaximumPacketSize(stream, properties, opts, length); + if (!propertiesData) { + return false; + } + length += propertiesData.length; + stream.write(Buffer3.from([protocol.codes.auth << 4])); + writeVarByteInt(stream, length); + stream.write(Buffer3.from([reasonCode])); + if (propertiesData !== null) { + propertiesData.write(); + } + return true; + } + var varByteIntCache = {}; + function writeVarByteInt(stream, num) { + if (num > protocol.VARBYTEINT_MAX) { + stream.destroy(new Error(`Invalid variable byte integer: ${num}`)); + return false; + } + let buffer = varByteIntCache[num]; + if (!buffer) { + buffer = genBufVariableByteInt(num); + if (num < 16384) varByteIntCache[num] = buffer; + } + debug("writeVarByteInt: writing to stream: %o", buffer); + return stream.write(buffer); + } + function writeString(stream, string) { + const strlen = Buffer3.byteLength(string); + writeNumber(stream, strlen); + debug("writeString: %s", string); + return stream.write(string, "utf8"); + } + function writeStringPair(stream, name2, value) { + writeString(stream, name2); + writeString(stream, value); + } + function writeNumberCached(stream, number) { + debug("writeNumberCached: number: %d", number); + debug("writeNumberCached: %o", numCache[number]); + return stream.write(numCache[number]); + } + function writeNumberGenerated(stream, number) { + const generatedNumber = generateNumber(number); + debug("writeNumberGenerated: %o", generatedNumber); + return stream.write(generatedNumber); + } + function write4ByteNumber(stream, number) { + const generated4ByteBuffer = generate4ByteBuffer(number); + debug("write4ByteNumber: %o", generated4ByteBuffer); + return stream.write(generated4ByteBuffer); + } + function writeStringOrBuffer(stream, toWrite) { + if (typeof toWrite === "string") { + writeString(stream, toWrite); + } else if (toWrite) { + writeNumber(stream, toWrite.length); + stream.write(toWrite); + } else writeNumber(stream, 0); + } + function getProperties(stream, properties) { + if (typeof properties !== "object" || properties.length != null) { + return { + length: 1, + write() { + writeProperties(stream, {}, 0); + } + }; + } + let propertiesLength = 0; + function getLengthProperty(name2, value) { + const type = protocol.propertiesTypes[name2]; + let length = 0; + switch (type) { + case "byte": { + if (typeof value !== "boolean") { + stream.destroy(new Error(`Invalid ${name2}: ${value}`)); + return false; + } + length += 1 + 1; + break; + } + case "int8": { + if (typeof value !== "number" || value < 0 || value > 255) { + stream.destroy(new Error(`Invalid ${name2}: ${value}`)); + return false; + } + length += 1 + 1; + break; + } + case "binary": { + if (value && value === null) { + stream.destroy(new Error(`Invalid ${name2}: ${value}`)); + return false; + } + length += 1 + Buffer3.byteLength(value) + 2; + break; + } + case "int16": { + if (typeof value !== "number" || value < 0 || value > 65535) { + stream.destroy(new Error(`Invalid ${name2}: ${value}`)); + return false; + } + length += 1 + 2; + break; + } + case "int32": { + if (typeof value !== "number" || value < 0 || value > 4294967295) { + stream.destroy(new Error(`Invalid ${name2}: ${value}`)); + return false; + } + length += 1 + 4; + break; + } + case "var": { + if (typeof value !== "number" || value < 0 || value > 268435455) { + stream.destroy(new Error(`Invalid ${name2}: ${value}`)); + return false; + } + length += 1 + Buffer3.byteLength(genBufVariableByteInt(value)); + break; + } + case "string": { + if (typeof value !== "string") { + stream.destroy(new Error(`Invalid ${name2}: ${value}`)); + return false; + } + length += 1 + 2 + Buffer3.byteLength(value.toString()); + break; + } + case "pair": { + if (typeof value !== "object") { + stream.destroy(new Error(`Invalid ${name2}: ${value}`)); + return false; + } + length += Object.getOwnPropertyNames(value).reduce((result, name3) => { + const currentValue = value[name3]; + if (Array.isArray(currentValue)) { + result += currentValue.reduce((currentLength, value2) => { + currentLength += 1 + 2 + Buffer3.byteLength(name3.toString()) + 2 + Buffer3.byteLength(value2.toString()); + return currentLength; + }, 0); + } else { + result += 1 + 2 + Buffer3.byteLength(name3.toString()) + 2 + Buffer3.byteLength(value[name3].toString()); + } + return result; + }, 0); + break; + } + default: { + stream.destroy(new Error(`Invalid property ${name2}: ${value}`)); + return false; + } + } + return length; + } + if (properties) { + for (const propName in properties) { + let propLength = 0; + let propValueLength = 0; + const propValue = properties[propName]; + if (propValue === void 0) { + continue; + } else if (Array.isArray(propValue)) { + for (let valueIndex = 0; valueIndex < propValue.length; valueIndex++) { + propValueLength = getLengthProperty(propName, propValue[valueIndex]); + if (!propValueLength) { + return false; + } + propLength += propValueLength; + } + } else { + propValueLength = getLengthProperty(propName, propValue); + if (!propValueLength) { + return false; + } + propLength = propValueLength; + } + if (!propLength) return false; + propertiesLength += propLength; + } + } + const propertiesLengthLength = Buffer3.byteLength(genBufVariableByteInt(propertiesLength)); + return { + length: propertiesLengthLength + propertiesLength, + write() { + writeProperties(stream, properties, propertiesLength); + } + }; + } + function getPropertiesByMaximumPacketSize(stream, properties, opts, length) { + const mayEmptyProps = ["reasonString", "userProperties"]; + const maximumPacketSize = opts && opts.properties && opts.properties.maximumPacketSize ? opts.properties.maximumPacketSize : 0; + let propertiesData = getProperties(stream, properties); + if (maximumPacketSize) { + while (length + propertiesData.length > maximumPacketSize) { + const currentMayEmptyProp = mayEmptyProps.shift(); + if (currentMayEmptyProp && properties[currentMayEmptyProp]) { + delete properties[currentMayEmptyProp]; + propertiesData = getProperties(stream, properties); + } else { + return false; + } + } + } + return propertiesData; + } + function writeProperty(stream, propName, value) { + const type = protocol.propertiesTypes[propName]; + switch (type) { + case "byte": { + stream.write(Buffer3.from([protocol.properties[propName]])); + stream.write(Buffer3.from([+value])); + break; + } + case "int8": { + stream.write(Buffer3.from([protocol.properties[propName]])); + stream.write(Buffer3.from([value])); + break; + } + case "binary": { + stream.write(Buffer3.from([protocol.properties[propName]])); + writeStringOrBuffer(stream, value); + break; + } + case "int16": { + stream.write(Buffer3.from([protocol.properties[propName]])); + writeNumber(stream, value); + break; + } + case "int32": { + stream.write(Buffer3.from([protocol.properties[propName]])); + write4ByteNumber(stream, value); + break; + } + case "var": { + stream.write(Buffer3.from([protocol.properties[propName]])); + writeVarByteInt(stream, value); + break; + } + case "string": { + stream.write(Buffer3.from([protocol.properties[propName]])); + writeString(stream, value); + break; + } + case "pair": { + Object.getOwnPropertyNames(value).forEach((name2) => { + const currentValue = value[name2]; + if (Array.isArray(currentValue)) { + currentValue.forEach((value2) => { + stream.write(Buffer3.from([protocol.properties[propName]])); + writeStringPair(stream, name2.toString(), value2.toString()); + }); + } else { + stream.write(Buffer3.from([protocol.properties[propName]])); + writeStringPair(stream, name2.toString(), currentValue.toString()); + } + }); + break; + } + default: { + stream.destroy(new Error(`Invalid property ${propName} value: ${value}`)); + return false; + } + } + } + function writeProperties(stream, properties, propertiesLength) { + writeVarByteInt(stream, propertiesLength); + for (const propName in properties) { + if (Object.prototype.hasOwnProperty.call(properties, propName) && properties[propName] != null) { + const value = properties[propName]; + if (Array.isArray(value)) { + for (let valueIndex = 0; valueIndex < value.length; valueIndex++) { + writeProperty(stream, propName, value[valueIndex]); + } + } else { + writeProperty(stream, propName, value); + } + } + } + } + function byteLength(bufOrString) { + if (!bufOrString) return 0; + else if (bufOrString instanceof Buffer3) return bufOrString.length; + else return Buffer3.byteLength(bufOrString); + } + function isStringOrBuffer(field) { + return typeof field === "string" || field instanceof Buffer3; + } + module.exports = generate; + } + }); + + // node_modules/mqtt-packet/generate.js + var require_generate = __commonJS({ + "node_modules/mqtt-packet/generate.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var writeToStream = require_writeToStream(); + var { EventEmitter: EventEmitter2 } = (init_events(), __toCommonJS(events_exports)); + var { Buffer: Buffer3 } = (init_buffer(), __toCommonJS(buffer_exports)); + function generate(packet, opts) { + const stream = new Accumulator(); + writeToStream(packet, stream, opts); + return stream.concat(); + } + var Accumulator = class extends EventEmitter2 { + constructor() { + super(); + this._array = new Array(20); + this._i = 0; + } + write(chunk) { + this._array[this._i++] = chunk; + return true; + } + concat() { + let length = 0; + const lengths = new Array(this._array.length); + const list = this._array; + let pos = 0; + let i; + for (i = 0; i < list.length && list[i] !== void 0; i++) { + if (typeof list[i] !== "string") lengths[i] = list[i].length; + else lengths[i] = Buffer3.byteLength(list[i]); + length += lengths[i]; + } + const result = Buffer3.allocUnsafe(length); + for (i = 0; i < list.length && list[i] !== void 0; i++) { + if (typeof list[i] !== "string") { + list[i].copy(result, pos); + pos += lengths[i]; + } else { + result.write(list[i], pos); + pos += lengths[i]; + } + } + return result; + } + destroy(err) { + if (err) this.emit("error", err); + } + }; + module.exports = generate; + } + }); + + // node_modules/mqtt-packet/mqtt.js + var require_mqtt = __commonJS({ + "node_modules/mqtt-packet/mqtt.js"(exports8) { + init_dirname(); + init_buffer2(); + init_process2(); + exports8.parser = require_parser().parser; + exports8.generate = require_generate(); + exports8.writeToStream = require_writeToStream(); + } + }); + + // node_modules/rfdc/index.js + var require_rfdc = __commonJS({ + "node_modules/rfdc/index.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + module.exports = rfdc; + function copyBuffer(cur) { + if (cur instanceof Buffer2) { + return Buffer2.from(cur); + } + return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length); + } + function rfdc(opts) { + opts = opts || {}; + if (opts.circles) return rfdcCircles(opts); + const constructorHandlers = /* @__PURE__ */ new Map(); + constructorHandlers.set(Date, (o) => new Date(o)); + constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn))); + constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn))); + if (opts.constructorHandlers) { + for (const handler2 of opts.constructorHandlers) { + constructorHandlers.set(handler2[0], handler2[1]); + } + } + let handler = null; + return opts.proto ? cloneProto : clone; + function cloneArray(a, fn) { + const keys = Object.keys(a); + const a2 = new Array(keys.length); + for (let i = 0; i < keys.length; i++) { + const k = keys[i]; + const cur = a[k]; + if (typeof cur !== "object" || cur === null) { + a2[k] = cur; + } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) { + a2[k] = handler(cur, fn); + } else if (ArrayBuffer.isView(cur)) { + a2[k] = copyBuffer(cur); + } else { + a2[k] = fn(cur); + } + } + return a2; + } + function clone(o) { + if (typeof o !== "object" || o === null) return o; + if (Array.isArray(o)) return cloneArray(o, clone); + if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) { + return handler(o, clone); + } + const o2 = {}; + for (const k in o) { + if (Object.hasOwnProperty.call(o, k) === false) continue; + const cur = o[k]; + if (typeof cur !== "object" || cur === null) { + o2[k] = cur; + } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) { + o2[k] = handler(cur, clone); + } else if (ArrayBuffer.isView(cur)) { + o2[k] = copyBuffer(cur); + } else { + o2[k] = clone(cur); + } + } + return o2; + } + function cloneProto(o) { + if (typeof o !== "object" || o === null) return o; + if (Array.isArray(o)) return cloneArray(o, cloneProto); + if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) { + return handler(o, cloneProto); + } + const o2 = {}; + for (const k in o) { + const cur = o[k]; + if (typeof cur !== "object" || cur === null) { + o2[k] = cur; + } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) { + o2[k] = handler(cur, cloneProto); + } else if (ArrayBuffer.isView(cur)) { + o2[k] = copyBuffer(cur); + } else { + o2[k] = cloneProto(cur); + } + } + return o2; + } + } + function rfdcCircles(opts) { + const refs = []; + const refsNew = []; + const constructorHandlers = /* @__PURE__ */ new Map(); + constructorHandlers.set(Date, (o) => new Date(o)); + constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn))); + constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn))); + if (opts.constructorHandlers) { + for (const handler2 of opts.constructorHandlers) { + constructorHandlers.set(handler2[0], handler2[1]); + } + } + let handler = null; + return opts.proto ? cloneProto : clone; + function cloneArray(a, fn) { + const keys = Object.keys(a); + const a2 = new Array(keys.length); + for (let i = 0; i < keys.length; i++) { + const k = keys[i]; + const cur = a[k]; + if (typeof cur !== "object" || cur === null) { + a2[k] = cur; + } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) { + a2[k] = handler(cur, fn); + } else if (ArrayBuffer.isView(cur)) { + a2[k] = copyBuffer(cur); + } else { + const index = refs.indexOf(cur); + if (index !== -1) { + a2[k] = refsNew[index]; + } else { + a2[k] = fn(cur); + } + } + } + return a2; + } + function clone(o) { + if (typeof o !== "object" || o === null) return o; + if (Array.isArray(o)) return cloneArray(o, clone); + if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) { + return handler(o, clone); + } + const o2 = {}; + refs.push(o); + refsNew.push(o2); + for (const k in o) { + if (Object.hasOwnProperty.call(o, k) === false) continue; + const cur = o[k]; + if (typeof cur !== "object" || cur === null) { + o2[k] = cur; + } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) { + o2[k] = handler(cur, clone); + } else if (ArrayBuffer.isView(cur)) { + o2[k] = copyBuffer(cur); + } else { + const i = refs.indexOf(cur); + if (i !== -1) { + o2[k] = refsNew[i]; + } else { + o2[k] = clone(cur); + } + } + } + refs.pop(); + refsNew.pop(); + return o2; + } + function cloneProto(o) { + if (typeof o !== "object" || o === null) return o; + if (Array.isArray(o)) return cloneArray(o, cloneProto); + if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) { + return handler(o, cloneProto); + } + const o2 = {}; + refs.push(o); + refsNew.push(o2); + for (const k in o) { + const cur = o[k]; + if (typeof cur !== "object" || cur === null) { + o2[k] = cur; + } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) { + o2[k] = handler(cur, cloneProto); + } else if (ArrayBuffer.isView(cur)) { + o2[k] = copyBuffer(cur); + } else { + const i = refs.indexOf(cur); + if (i !== -1) { + o2[k] = refsNew[i]; + } else { + o2[k] = cloneProto(cur); + } + } + } + refs.pop(); + refsNew.pop(); + return o2; + } + } + } + }); + + // node_modules/rfdc/default.js + var require_default = __commonJS({ + "node_modules/rfdc/default.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + module.exports = require_rfdc()(); + } + }); + + // build/lib/validations.js + var require_validations = __commonJS({ + "build/lib/validations.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + exports8.validateTopic = validateTopic; + exports8.validateTopics = validateTopics; + function validateTopic(topic) { + const parts = topic.split("/"); + for (let i = 0; i < parts.length; i++) { + if (parts[i] === "+") { + continue; + } + if (parts[i] === "#") { + return i === parts.length - 1; + } + if (parts[i].indexOf("+") !== -1 || parts[i].indexOf("#") !== -1) { + return false; + } + } + return true; + } + function validateTopics(topics) { + if (topics.length === 0) { + return "empty_topic_list"; + } + for (let i = 0; i < topics.length; i++) { + if (!validateTopic(topics[i])) { + return topics[i]; + } + } + return null; + } + } + }); + + // build/lib/store.js + var require_store = __commonJS({ + "build/lib/store.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + var readable_stream_1 = require_browser3(); + var streamsOpts = { objectMode: true }; + var defaultStoreOptions = { + clean: true + }; + var Store = class { + options; + _inflights; + constructor(options) { + this.options = options || {}; + this.options = { ...defaultStoreOptions, ...options }; + this._inflights = /* @__PURE__ */ new Map(); + } + put(packet, cb) { + this._inflights.set(packet.messageId, packet); + if (cb) { + cb(); + } + return this; + } + createStream() { + const stream = new readable_stream_1.Readable(streamsOpts); + const values = []; + let destroyed = false; + let i = 0; + this._inflights.forEach((value, key) => { + values.push(value); + }); + stream._read = () => { + if (!destroyed && i < values.length) { + stream.push(values[i++]); + } else { + stream.push(null); + } + }; + stream.destroy = (err) => { + if (destroyed) { + return; + } + destroyed = true; + setTimeout(() => { + stream.emit("close"); + }, 0); + return stream; + }; + return stream; + } + del(packet, cb) { + const toDelete = this._inflights.get(packet.messageId); + if (toDelete) { + this._inflights.delete(packet.messageId); + cb(null, toDelete); + } else if (cb) { + cb(new Error("missing packet")); + } + return this; + } + get(packet, cb) { + const storedPacket = this._inflights.get(packet.messageId); + if (storedPacket) { + cb(null, storedPacket); + } else if (cb) { + cb(new Error("missing packet")); + } + return this; + } + close(cb) { + if (this.options.clean) { + this._inflights = null; + } + if (cb) { + cb(); + } + } + }; + exports8.default = Store; + } + }); + + // build/lib/handlers/publish.js + var require_publish = __commonJS({ + "build/lib/handlers/publish.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + var validReasonCodes = [0, 16, 128, 131, 135, 144, 145, 151, 153]; + var handlePublish = (client, packet, done) => { + client.log("handlePublish: packet %o", packet); + done = typeof done !== "undefined" ? done : client.noop; + let topic = packet.topic.toString(); + const message = packet.payload; + const { qos } = packet; + const { messageId } = packet; + const { options } = client; + if (client.options.protocolVersion === 5) { + let alias; + if (packet.properties) { + alias = packet.properties.topicAlias; + } + if (typeof alias !== "undefined") { + if (topic.length === 0) { + if (alias > 0 && alias <= 65535) { + const gotTopic = client["topicAliasRecv"].getTopicByAlias(alias); + if (gotTopic) { + topic = gotTopic; + client.log("handlePublish :: topic complemented by alias. topic: %s - alias: %d", topic, alias); + } else { + client.log("handlePublish :: unregistered topic alias. alias: %d", alias); + client.emit("error", new Error("Received unregistered Topic Alias")); + return; + } + } else { + client.log("handlePublish :: topic alias out of range. alias: %d", alias); + client.emit("error", new Error("Received Topic Alias is out of range")); + return; + } + } else if (client["topicAliasRecv"].put(topic, alias)) { + client.log("handlePublish :: registered topic: %s - alias: %d", topic, alias); + } else { + client.log("handlePublish :: topic alias out of range. alias: %d", alias); + client.emit("error", new Error("Received Topic Alias is out of range")); + return; + } + } + } + client.log("handlePublish: qos %d", qos); + switch (qos) { + case 2: { + options.customHandleAcks(topic, message, packet, (error, code) => { + if (typeof error === "number") { + code = error; + error = null; + } + if (error) { + return client.emit("error", error); + } + if (validReasonCodes.indexOf(code) === -1) { + return client.emit("error", new Error("Wrong reason code for pubrec")); + } + if (code) { + client["_sendPacket"]({ cmd: "pubrec", messageId, reasonCode: code }, done); + } else { + client.incomingStore.put(packet, () => { + client["_sendPacket"]({ cmd: "pubrec", messageId }, done); + }); + } + }); + break; + } + case 1: { + options.customHandleAcks(topic, message, packet, (error, code) => { + if (typeof error === "number") { + code = error; + error = null; + } + if (error) { + return client.emit("error", error); + } + if (validReasonCodes.indexOf(code) === -1) { + return client.emit("error", new Error("Wrong reason code for puback")); + } + if (!code) { + client.emit("message", topic, message, packet); + } + client.handleMessage(packet, (err) => { + if (err) { + return done && done(err); + } + client["_sendPacket"]({ cmd: "puback", messageId, reasonCode: code }, done); + }); + }); + break; + } + case 0: + client.emit("message", topic, message, packet); + client.handleMessage(packet, done); + break; + default: + client.log("handlePublish: unknown QoS. Doing nothing."); + break; + } + }; + exports8.default = handlePublish; + } + }); + + // package-json:../../package.json + var require_package = __commonJS({ + "package-json:../../package.json"(exports8, module) { + module.exports = { version: "5.14.1" }; + } + }); + + // build/lib/shared.js + var require_shared = __commonJS({ + "build/lib/shared.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + exports8.MQTTJS_VERSION = exports8.nextTick = exports8.ErrorWithSubackPacket = exports8.ErrorWithReasonCode = void 0; + exports8.applyMixin = applyMixin; + var ErrorWithReasonCode = class _ErrorWithReasonCode extends Error { + code; + constructor(message, code) { + super(message); + this.code = code; + Object.setPrototypeOf(this, _ErrorWithReasonCode.prototype); + Object.getPrototypeOf(this).name = "ErrorWithReasonCode"; + } + }; + exports8.ErrorWithReasonCode = ErrorWithReasonCode; + var ErrorWithSubackPacket = class _ErrorWithSubackPacket extends Error { + packet; + constructor(message, packet) { + super(message); + this.packet = packet; + Object.setPrototypeOf(this, _ErrorWithSubackPacket.prototype); + Object.getPrototypeOf(this).name = "ErrorWithSubackPacket"; + } + }; + exports8.ErrorWithSubackPacket = ErrorWithSubackPacket; + function applyMixin(target, mixin, includeConstructor = false) { + const inheritanceChain = [mixin]; + while (true) { + const current = inheritanceChain[0]; + const base = Object.getPrototypeOf(current); + if (base?.prototype) { + inheritanceChain.unshift(base); + } else { + break; + } + } + for (const ctor of inheritanceChain) { + for (const prop of Object.getOwnPropertyNames(ctor.prototype)) { + if (includeConstructor || prop !== "constructor") { + Object.defineProperty(target.prototype, prop, Object.getOwnPropertyDescriptor(ctor.prototype, prop) ?? /* @__PURE__ */ Object.create(null)); + } + } + } + } + exports8.nextTick = typeof process_exports?.nextTick === "function" ? process_exports.nextTick : (callback) => { + setTimeout(callback, 0); + }; + exports8.MQTTJS_VERSION = require_package().version; + } + }); + + // build/lib/handlers/ack.js + var require_ack = __commonJS({ + "build/lib/handlers/ack.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + exports8.ReasonCodes = void 0; + var shared_1 = require_shared(); + exports8.ReasonCodes = { + 0: "", + 1: "Unacceptable protocol version", + 2: "Identifier rejected", + 3: "Server unavailable", + 4: "Bad username or password", + 5: "Not authorized", + 16: "No matching subscribers", + 17: "No subscription existed", + 128: "Unspecified error", + 129: "Malformed Packet", + 130: "Protocol Error", + 131: "Implementation specific error", + 132: "Unsupported Protocol Version", + 133: "Client Identifier not valid", + 134: "Bad User Name or Password", + 135: "Not authorized", + 136: "Server unavailable", + 137: "Server busy", + 138: "Banned", + 139: "Server shutting down", + 140: "Bad authentication method", + 141: "Keep Alive timeout", + 142: "Session taken over", + 143: "Topic Filter invalid", + 144: "Topic Name invalid", + 145: "Packet identifier in use", + 146: "Packet Identifier not found", + 147: "Receive Maximum exceeded", + 148: "Topic Alias invalid", + 149: "Packet too large", + 150: "Message rate too high", + 151: "Quota exceeded", + 152: "Administrative action", + 153: "Payload format invalid", + 154: "Retain not supported", + 155: "QoS not supported", + 156: "Use another server", + 157: "Server moved", + 158: "Shared Subscriptions not supported", + 159: "Connection rate exceeded", + 160: "Maximum connect time", + 161: "Subscription Identifiers not supported", + 162: "Wildcard Subscriptions not supported" + }; + var handleAck = (client, packet) => { + const { messageId } = packet; + const type = packet.cmd; + let response = null; + const cb = client.outgoing[messageId] ? client.outgoing[messageId].cb : null; + let err = null; + if (!cb) { + client.log("_handleAck :: Server sent an ack in error. Ignoring."); + return; + } + client.log("_handleAck :: packet type", type); + switch (type) { + case "pubcomp": + case "puback": { + const pubackRC = packet.reasonCode; + if (pubackRC && pubackRC > 0 && pubackRC !== 16) { + err = new shared_1.ErrorWithReasonCode(`Publish error: ${exports8.ReasonCodes[pubackRC]}`, pubackRC); + client["_removeOutgoingAndStoreMessage"](messageId, () => { + cb(err, packet); + }); + } else { + client["_removeOutgoingAndStoreMessage"](messageId, cb); + } + break; + } + case "pubrec": { + response = { + cmd: "pubrel", + qos: 2, + messageId + }; + const pubrecRC = packet.reasonCode; + if (pubrecRC && pubrecRC > 0 && pubrecRC !== 16) { + err = new shared_1.ErrorWithReasonCode(`Publish error: ${exports8.ReasonCodes[pubrecRC]}`, pubrecRC); + client["_removeOutgoingAndStoreMessage"](messageId, () => { + cb(err, packet); + }); + } else { + client["_sendPacket"](response); + } + break; + } + case "suback": { + delete client.outgoing[messageId]; + client.messageIdProvider.deallocate(messageId); + const granted = packet.granted; + for (let grantedI = 0; grantedI < granted.length; grantedI++) { + const subackRC = granted[grantedI]; + if ((subackRC & 128) !== 0) { + err = new Error(`Subscribe error: ${exports8.ReasonCodes[subackRC]}`); + err.code = subackRC; + const topics = client.messageIdToTopic[messageId]; + if (topics) { + topics.forEach((topic) => { + delete client["_resubscribeTopics"][topic]; + }); + } + } + } + delete client.messageIdToTopic[messageId]; + client["_invokeStoreProcessingQueue"](); + cb(err, packet); + break; + } + case "unsuback": { + delete client.outgoing[messageId]; + client.messageIdProvider.deallocate(messageId); + client["_invokeStoreProcessingQueue"](); + cb(null, packet); + break; + } + default: + client.emit("error", new Error("unrecognized packet type")); + } + if (client.disconnecting && Object.keys(client.outgoing).length === 0) { + client.emit("outgoingEmpty"); + } + }; + exports8.default = handleAck; + } + }); + + // build/lib/handlers/auth.js + var require_auth = __commonJS({ + "build/lib/handlers/auth.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + var shared_1 = require_shared(); + var ack_1 = require_ack(); + var handleAuth = (client, packet) => { + const { options } = client; + const version4 = options.protocolVersion; + const rc = version4 === 5 ? packet.reasonCode : packet.returnCode; + if (version4 !== 5) { + const err = new shared_1.ErrorWithReasonCode(`Protocol error: Auth packets are only supported in MQTT 5. Your version:${version4}`, rc); + client.emit("error", err); + return; + } + client.handleAuth(packet, (err, packet2) => { + if (err) { + client.emit("error", err); + return; + } + if (rc === 24) { + client.reconnecting = false; + client["_sendPacket"](packet2); + } else { + const error = new shared_1.ErrorWithReasonCode(`Connection refused: ${ack_1.ReasonCodes[rc]}`, rc); + client.emit("error", error); + } + }); + }; + exports8.default = handleAuth; + } + }); + + // node_modules/lru-cache/dist/commonjs/index.js + var require_commonjs = __commonJS({ + "node_modules/lru-cache/dist/commonjs/index.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + exports8.LRUCache = void 0; + var perf = typeof performance === "object" && performance && typeof performance.now === "function" ? performance : Date; + var warned = /* @__PURE__ */ new Set(); + var PROCESS = typeof process_exports === "object" && !!process_exports ? process_exports : {}; + var emitWarning3 = (msg, type, code, fn) => { + typeof PROCESS.emitWarning === "function" ? PROCESS.emitWarning(msg, type, code, fn) : console.error(`[${code}] ${type}: ${msg}`); + }; + var AC = globalThis.AbortController; + var AS = globalThis.AbortSignal; + if (typeof AC === "undefined") { + AS = class AbortSignal { + onabort; + _onabort = []; + reason; + aborted = false; + addEventListener(_, fn) { + this._onabort.push(fn); + } + }; + AC = class AbortController { + constructor() { + warnACPolyfill(); + } + signal = new AS(); + abort(reason) { + if (this.signal.aborted) + return; + this.signal.reason = reason; + this.signal.aborted = true; + for (const fn of this.signal._onabort) { + fn(reason); + } + this.signal.onabort?.(reason); + } + }; + let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== "1"; + const warnACPolyfill = () => { + if (!printACPolyfillWarning) + return; + printACPolyfillWarning = false; + emitWarning3("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.", "NO_ABORT_CONTROLLER", "ENOTSUP", warnACPolyfill); + }; + } + var shouldWarn = (code) => !warned.has(code); + var TYPE = Symbol("type"); + var isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n); + var getUintArray = (max) => !isPosInt(max) ? null : max <= Math.pow(2, 8) ? Uint8Array : max <= Math.pow(2, 16) ? Uint16Array : max <= Math.pow(2, 32) ? Uint32Array : max <= Number.MAX_SAFE_INTEGER ? ZeroArray : null; + var ZeroArray = class extends Array { + constructor(size) { + super(size); + this.fill(0); + } + }; + var Stack = class _Stack { + heap; + length; + // private constructor + static #constructing = false; + static create(max) { + const HeapCls = getUintArray(max); + if (!HeapCls) + return []; + _Stack.#constructing = true; + const s = new _Stack(max, HeapCls); + _Stack.#constructing = false; + return s; + } + constructor(max, HeapCls) { + if (!_Stack.#constructing) { + throw new TypeError("instantiate Stack using Stack.create(n)"); + } + this.heap = new HeapCls(max); + this.length = 0; + } + push(n) { + this.heap[this.length++] = n; + } + pop() { + return this.heap[--this.length]; + } + }; + var LRUCache = class _LRUCache { + // options that cannot be changed without disaster + #max; + #maxSize; + #dispose; + #disposeAfter; + #fetchMethod; + #memoMethod; + /** + * {@link LRUCache.OptionsBase.ttl} + */ + ttl; + /** + * {@link LRUCache.OptionsBase.ttlResolution} + */ + ttlResolution; + /** + * {@link LRUCache.OptionsBase.ttlAutopurge} + */ + ttlAutopurge; + /** + * {@link LRUCache.OptionsBase.updateAgeOnGet} + */ + updateAgeOnGet; + /** + * {@link LRUCache.OptionsBase.updateAgeOnHas} + */ + updateAgeOnHas; + /** + * {@link LRUCache.OptionsBase.allowStale} + */ + allowStale; + /** + * {@link LRUCache.OptionsBase.noDisposeOnSet} + */ + noDisposeOnSet; + /** + * {@link LRUCache.OptionsBase.noUpdateTTL} + */ + noUpdateTTL; + /** + * {@link LRUCache.OptionsBase.maxEntrySize} + */ + maxEntrySize; + /** + * {@link LRUCache.OptionsBase.sizeCalculation} + */ + sizeCalculation; + /** + * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection} + */ + noDeleteOnFetchRejection; + /** + * {@link LRUCache.OptionsBase.noDeleteOnStaleGet} + */ + noDeleteOnStaleGet; + /** + * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort} + */ + allowStaleOnFetchAbort; + /** + * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection} + */ + allowStaleOnFetchRejection; + /** + * {@link LRUCache.OptionsBase.ignoreFetchAbort} + */ + ignoreFetchAbort; + // computed properties + #size; + #calculatedSize; + #keyMap; + #keyList; + #valList; + #next; + #prev; + #head; + #tail; + #free; + #disposed; + #sizes; + #starts; + #ttls; + #hasDispose; + #hasFetchMethod; + #hasDisposeAfter; + /** + * Do not call this method unless you need to inspect the + * inner workings of the cache. If anything returned by this + * object is modified in any way, strange breakage may occur. + * + * These fields are private for a reason! + * + * @internal + */ + static unsafeExposeInternals(c) { + return { + // properties + starts: c.#starts, + ttls: c.#ttls, + sizes: c.#sizes, + keyMap: c.#keyMap, + keyList: c.#keyList, + valList: c.#valList, + next: c.#next, + prev: c.#prev, + get head() { + return c.#head; + }, + get tail() { + return c.#tail; + }, + free: c.#free, + // methods + isBackgroundFetch: (p) => c.#isBackgroundFetch(p), + backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context), + moveToTail: (index) => c.#moveToTail(index), + indexes: (options) => c.#indexes(options), + rindexes: (options) => c.#rindexes(options), + isStale: (index) => c.#isStale(index) + }; + } + // Protected read-only members + /** + * {@link LRUCache.OptionsBase.max} (read-only) + */ + get max() { + return this.#max; + } + /** + * {@link LRUCache.OptionsBase.maxSize} (read-only) + */ + get maxSize() { + return this.#maxSize; + } + /** + * The total computed size of items in the cache (read-only) + */ + get calculatedSize() { + return this.#calculatedSize; + } + /** + * The number of items stored in the cache (read-only) + */ + get size() { + return this.#size; + } + /** + * {@link LRUCache.OptionsBase.fetchMethod} (read-only) + */ + get fetchMethod() { + return this.#fetchMethod; + } + get memoMethod() { + return this.#memoMethod; + } + /** + * {@link LRUCache.OptionsBase.dispose} (read-only) + */ + get dispose() { + return this.#dispose; + } + /** + * {@link LRUCache.OptionsBase.disposeAfter} (read-only) + */ + get disposeAfter() { + return this.#disposeAfter; + } + constructor(options) { + const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, memoMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort } = options; + if (max !== 0 && !isPosInt(max)) { + throw new TypeError("max option must be a nonnegative integer"); + } + const UintArray = max ? getUintArray(max) : Array; + if (!UintArray) { + throw new Error("invalid max value: " + max); + } + this.#max = max; + this.#maxSize = maxSize; + this.maxEntrySize = maxEntrySize || this.#maxSize; + this.sizeCalculation = sizeCalculation; + if (this.sizeCalculation) { + if (!this.#maxSize && !this.maxEntrySize) { + throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize"); + } + if (typeof this.sizeCalculation !== "function") { + throw new TypeError("sizeCalculation set to non-function"); + } + } + if (memoMethod !== void 0 && typeof memoMethod !== "function") { + throw new TypeError("memoMethod must be a function if defined"); + } + this.#memoMethod = memoMethod; + if (fetchMethod !== void 0 && typeof fetchMethod !== "function") { + throw new TypeError("fetchMethod must be a function if specified"); + } + this.#fetchMethod = fetchMethod; + this.#hasFetchMethod = !!fetchMethod; + this.#keyMap = /* @__PURE__ */ new Map(); + this.#keyList = new Array(max).fill(void 0); + this.#valList = new Array(max).fill(void 0); + this.#next = new UintArray(max); + this.#prev = new UintArray(max); + this.#head = 0; + this.#tail = 0; + this.#free = Stack.create(max); + this.#size = 0; + this.#calculatedSize = 0; + if (typeof dispose === "function") { + this.#dispose = dispose; + } + if (typeof disposeAfter === "function") { + this.#disposeAfter = disposeAfter; + this.#disposed = []; + } else { + this.#disposeAfter = void 0; + this.#disposed = void 0; + } + this.#hasDispose = !!this.#dispose; + this.#hasDisposeAfter = !!this.#disposeAfter; + this.noDisposeOnSet = !!noDisposeOnSet; + this.noUpdateTTL = !!noUpdateTTL; + this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection; + this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection; + this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort; + this.ignoreFetchAbort = !!ignoreFetchAbort; + if (this.maxEntrySize !== 0) { + if (this.#maxSize !== 0) { + if (!isPosInt(this.#maxSize)) { + throw new TypeError("maxSize must be a positive integer if specified"); + } + } + if (!isPosInt(this.maxEntrySize)) { + throw new TypeError("maxEntrySize must be a positive integer if specified"); + } + this.#initializeSizeTracking(); + } + this.allowStale = !!allowStale; + this.noDeleteOnStaleGet = !!noDeleteOnStaleGet; + this.updateAgeOnGet = !!updateAgeOnGet; + this.updateAgeOnHas = !!updateAgeOnHas; + this.ttlResolution = isPosInt(ttlResolution) || ttlResolution === 0 ? ttlResolution : 1; + this.ttlAutopurge = !!ttlAutopurge; + this.ttl = ttl || 0; + if (this.ttl) { + if (!isPosInt(this.ttl)) { + throw new TypeError("ttl must be a positive integer if specified"); + } + this.#initializeTTLTracking(); + } + if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) { + throw new TypeError("At least one of max, maxSize, or ttl is required"); + } + if (!this.ttlAutopurge && !this.#max && !this.#maxSize) { + const code = "LRU_CACHE_UNBOUNDED"; + if (shouldWarn(code)) { + warned.add(code); + const msg = "TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption."; + emitWarning3(msg, "UnboundedCacheWarning", code, _LRUCache); + } + } + } + /** + * Return the number of ms left in the item's TTL. If item is not in cache, + * returns `0`. Returns `Infinity` if item is in cache without a defined TTL. + */ + getRemainingTTL(key) { + return this.#keyMap.has(key) ? Infinity : 0; + } + #initializeTTLTracking() { + const ttls = new ZeroArray(this.#max); + const starts = new ZeroArray(this.#max); + this.#ttls = ttls; + this.#starts = starts; + this.#setItemTTL = (index, ttl, start = perf.now()) => { + starts[index] = ttl !== 0 ? start : 0; + ttls[index] = ttl; + if (ttl !== 0 && this.ttlAutopurge) { + const t = setTimeout(() => { + if (this.#isStale(index)) { + this.#delete(this.#keyList[index], "expire"); + } + }, ttl + 1); + if (t.unref) { + t.unref(); + } + } + }; + this.#updateItemAge = (index) => { + starts[index] = ttls[index] !== 0 ? perf.now() : 0; + }; + this.#statusTTL = (status, index) => { + if (ttls[index]) { + const ttl = ttls[index]; + const start = starts[index]; + if (!ttl || !start) + return; + status.ttl = ttl; + status.start = start; + status.now = cachedNow || getNow(); + const age = status.now - start; + status.remainingTTL = ttl - age; + } + }; + let cachedNow = 0; + const getNow = () => { + const n = perf.now(); + if (this.ttlResolution > 0) { + cachedNow = n; + const t = setTimeout(() => cachedNow = 0, this.ttlResolution); + if (t.unref) { + t.unref(); + } + } + return n; + }; + this.getRemainingTTL = (key) => { + const index = this.#keyMap.get(key); + if (index === void 0) { + return 0; + } + const ttl = ttls[index]; + const start = starts[index]; + if (!ttl || !start) { + return Infinity; + } + const age = (cachedNow || getNow()) - start; + return ttl - age; + }; + this.#isStale = (index) => { + const s = starts[index]; + const t = ttls[index]; + return !!t && !!s && (cachedNow || getNow()) - s > t; + }; + } + // conditionally set private methods related to TTL + #updateItemAge = () => { + }; + #statusTTL = () => { + }; + #setItemTTL = () => { + }; + /* c8 ignore stop */ + #isStale = () => false; + #initializeSizeTracking() { + const sizes = new ZeroArray(this.#max); + this.#calculatedSize = 0; + this.#sizes = sizes; + this.#removeItemSize = (index) => { + this.#calculatedSize -= sizes[index]; + sizes[index] = 0; + }; + this.#requireSize = (k, v, size, sizeCalculation) => { + if (this.#isBackgroundFetch(v)) { + return 0; + } + if (!isPosInt(size)) { + if (sizeCalculation) { + if (typeof sizeCalculation !== "function") { + throw new TypeError("sizeCalculation must be a function"); + } + size = sizeCalculation(v, k); + if (!isPosInt(size)) { + throw new TypeError("sizeCalculation return invalid (expect positive integer)"); + } + } else { + throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set."); + } + } + return size; + }; + this.#addItemSize = (index, size, status) => { + sizes[index] = size; + if (this.#maxSize) { + const maxSize = this.#maxSize - sizes[index]; + while (this.#calculatedSize > maxSize) { + this.#evict(true); + } + } + this.#calculatedSize += sizes[index]; + if (status) { + status.entrySize = size; + status.totalCalculatedSize = this.#calculatedSize; + } + }; + } + #removeItemSize = (_i) => { + }; + #addItemSize = (_i, _s, _st) => { + }; + #requireSize = (_k, _v, size, sizeCalculation) => { + if (size || sizeCalculation) { + throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache"); + } + return 0; + }; + *#indexes({ allowStale = this.allowStale } = {}) { + if (this.#size) { + for (let i = this.#tail; true; ) { + if (!this.#isValidIndex(i)) { + break; + } + if (allowStale || !this.#isStale(i)) { + yield i; + } + if (i === this.#head) { + break; + } else { + i = this.#prev[i]; + } + } + } + } + *#rindexes({ allowStale = this.allowStale } = {}) { + if (this.#size) { + for (let i = this.#head; true; ) { + if (!this.#isValidIndex(i)) { + break; + } + if (allowStale || !this.#isStale(i)) { + yield i; + } + if (i === this.#tail) { + break; + } else { + i = this.#next[i]; + } + } + } + } + #isValidIndex(index) { + return index !== void 0 && this.#keyMap.get(this.#keyList[index]) === index; + } + /** + * Return a generator yielding `[key, value]` pairs, + * in order from most recently used to least recently used. + */ + *entries() { + for (const i of this.#indexes()) { + if (this.#valList[i] !== void 0 && this.#keyList[i] !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) { + yield [this.#keyList[i], this.#valList[i]]; + } + } + } + /** + * Inverse order version of {@link LRUCache.entries} + * + * Return a generator yielding `[key, value]` pairs, + * in order from least recently used to most recently used. + */ + *rentries() { + for (const i of this.#rindexes()) { + if (this.#valList[i] !== void 0 && this.#keyList[i] !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) { + yield [this.#keyList[i], this.#valList[i]]; + } + } + } + /** + * Return a generator yielding the keys in the cache, + * in order from most recently used to least recently used. + */ + *keys() { + for (const i of this.#indexes()) { + const k = this.#keyList[i]; + if (k !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) { + yield k; + } + } + } + /** + * Inverse order version of {@link LRUCache.keys} + * + * Return a generator yielding the keys in the cache, + * in order from least recently used to most recently used. + */ + *rkeys() { + for (const i of this.#rindexes()) { + const k = this.#keyList[i]; + if (k !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) { + yield k; + } + } + } + /** + * Return a generator yielding the values in the cache, + * in order from most recently used to least recently used. + */ + *values() { + for (const i of this.#indexes()) { + const v = this.#valList[i]; + if (v !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) { + yield this.#valList[i]; + } + } + } + /** + * Inverse order version of {@link LRUCache.values} + * + * Return a generator yielding the values in the cache, + * in order from least recently used to most recently used. + */ + *rvalues() { + for (const i of this.#rindexes()) { + const v = this.#valList[i]; + if (v !== void 0 && !this.#isBackgroundFetch(this.#valList[i])) { + yield this.#valList[i]; + } + } + } + /** + * Iterating over the cache itself yields the same results as + * {@link LRUCache.entries} + */ + [Symbol.iterator]() { + return this.entries(); + } + /** + * A String value that is used in the creation of the default string + * description of an object. Called by the built-in method + * `Object.prototype.toString`. + */ + [Symbol.toStringTag] = "LRUCache"; + /** + * Find a value for which the supplied fn method returns a truthy value, + * similar to `Array.find()`. fn is called as `fn(value, key, cache)`. + */ + find(fn, getOptions = {}) { + for (const i of this.#indexes()) { + const v = this.#valList[i]; + const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v; + if (value === void 0) + continue; + if (fn(value, this.#keyList[i], this)) { + return this.get(this.#keyList[i], getOptions); + } + } + } + /** + * Call the supplied function on each item in the cache, in order from most + * recently used to least recently used. + * + * `fn` is called as `fn(value, key, cache)`. + * + * If `thisp` is provided, function will be called in the `this`-context of + * the provided object, or the cache if no `thisp` object is provided. + * + * Does not update age or recenty of use, or iterate over stale values. + */ + forEach(fn, thisp = this) { + for (const i of this.#indexes()) { + const v = this.#valList[i]; + const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v; + if (value === void 0) + continue; + fn.call(thisp, value, this.#keyList[i], this); + } + } + /** + * The same as {@link LRUCache.forEach} but items are iterated over in + * reverse order. (ie, less recently used items are iterated over first.) + */ + rforEach(fn, thisp = this) { + for (const i of this.#rindexes()) { + const v = this.#valList[i]; + const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v; + if (value === void 0) + continue; + fn.call(thisp, value, this.#keyList[i], this); + } + } + /** + * Delete any stale entries. Returns true if anything was removed, + * false otherwise. + */ + purgeStale() { + let deleted = false; + for (const i of this.#rindexes({ allowStale: true })) { + if (this.#isStale(i)) { + this.#delete(this.#keyList[i], "expire"); + deleted = true; + } + } + return deleted; + } + /** + * Get the extended info about a given entry, to get its value, size, and + * TTL info simultaneously. Returns `undefined` if the key is not present. + * + * Unlike {@link LRUCache#dump}, which is designed to be portable and survive + * serialization, the `start` value is always the current timestamp, and the + * `ttl` is a calculated remaining time to live (negative if expired). + * + * Always returns stale values, if their info is found in the cache, so be + * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl}) + * if relevant. + */ + info(key) { + const i = this.#keyMap.get(key); + if (i === void 0) + return void 0; + const v = this.#valList[i]; + const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v; + if (value === void 0) + return void 0; + const entry = { value }; + if (this.#ttls && this.#starts) { + const ttl = this.#ttls[i]; + const start = this.#starts[i]; + if (ttl && start) { + const remain = ttl - (perf.now() - start); + entry.ttl = remain; + entry.start = Date.now(); + } + } + if (this.#sizes) { + entry.size = this.#sizes[i]; + } + return entry; + } + /** + * Return an array of [key, {@link LRUCache.Entry}] tuples which can be + * passed to {@link LRLUCache#load}. + * + * The `start` fields are calculated relative to a portable `Date.now()` + * timestamp, even if `performance.now()` is available. + * + * Stale entries are always included in the `dump`, even if + * {@link LRUCache.OptionsBase.allowStale} is false. + * + * Note: this returns an actual array, not a generator, so it can be more + * easily passed around. + */ + dump() { + const arr = []; + for (const i of this.#indexes({ allowStale: true })) { + const key = this.#keyList[i]; + const v = this.#valList[i]; + const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v; + if (value === void 0 || key === void 0) + continue; + const entry = { value }; + if (this.#ttls && this.#starts) { + entry.ttl = this.#ttls[i]; + const age = perf.now() - this.#starts[i]; + entry.start = Math.floor(Date.now() - age); + } + if (this.#sizes) { + entry.size = this.#sizes[i]; + } + arr.unshift([key, entry]); + } + return arr; + } + /** + * Reset the cache and load in the items in entries in the order listed. + * + * The shape of the resulting cache may be different if the same options are + * not used in both caches. + * + * The `start` fields are assumed to be calculated relative to a portable + * `Date.now()` timestamp, even if `performance.now()` is available. + */ + load(arr) { + this.clear(); + for (const [key, entry] of arr) { + if (entry.start) { + const age = Date.now() - entry.start; + entry.start = perf.now() - age; + } + this.set(key, entry.value, entry); + } + } + /** + * Add a value to the cache. + * + * Note: if `undefined` is specified as a value, this is an alias for + * {@link LRUCache#delete} + * + * Fields on the {@link LRUCache.SetOptions} options param will override + * their corresponding values in the constructor options for the scope + * of this single `set()` operation. + * + * If `start` is provided, then that will set the effective start + * time for the TTL calculation. Note that this must be a previous + * value of `performance.now()` if supported, or a previous value of + * `Date.now()` if not. + * + * Options object may also include `size`, which will prevent + * calling the `sizeCalculation` function and just use the specified + * number if it is a positive integer, and `noDisposeOnSet` which + * will prevent calling a `dispose` function in the case of + * overwrites. + * + * If the `size` (or return value of `sizeCalculation`) for a given + * entry is greater than `maxEntrySize`, then the item will not be + * added to the cache. + * + * Will update the recency of the entry. + * + * If the value is `undefined`, then this is an alias for + * `cache.delete(key)`. `undefined` is never stored in the cache. + */ + set(k, v, setOptions = {}) { + if (v === void 0) { + this.delete(k); + return this; + } + const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status } = setOptions; + let { noUpdateTTL = this.noUpdateTTL } = setOptions; + const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation); + if (this.maxEntrySize && size > this.maxEntrySize) { + if (status) { + status.set = "miss"; + status.maxEntrySizeExceeded = true; + } + this.#delete(k, "set"); + return this; + } + let index = this.#size === 0 ? void 0 : this.#keyMap.get(k); + if (index === void 0) { + index = this.#size === 0 ? this.#tail : this.#free.length !== 0 ? this.#free.pop() : this.#size === this.#max ? this.#evict(false) : this.#size; + this.#keyList[index] = k; + this.#valList[index] = v; + this.#keyMap.set(k, index); + this.#next[this.#tail] = index; + this.#prev[index] = this.#tail; + this.#tail = index; + this.#size++; + this.#addItemSize(index, size, status); + if (status) + status.set = "add"; + noUpdateTTL = false; + } else { + this.#moveToTail(index); + const oldVal = this.#valList[index]; + if (v !== oldVal) { + if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) { + oldVal.__abortController.abort(new Error("replaced")); + const { __staleWhileFetching: s } = oldVal; + if (s !== void 0 && !noDisposeOnSet) { + if (this.#hasDispose) { + this.#dispose?.(s, k, "set"); + } + if (this.#hasDisposeAfter) { + this.#disposed?.push([s, k, "set"]); + } + } + } else if (!noDisposeOnSet) { + if (this.#hasDispose) { + this.#dispose?.(oldVal, k, "set"); + } + if (this.#hasDisposeAfter) { + this.#disposed?.push([oldVal, k, "set"]); + } + } + this.#removeItemSize(index); + this.#addItemSize(index, size, status); + this.#valList[index] = v; + if (status) { + status.set = "replace"; + const oldValue = oldVal && this.#isBackgroundFetch(oldVal) ? oldVal.__staleWhileFetching : oldVal; + if (oldValue !== void 0) + status.oldValue = oldValue; + } + } else if (status) { + status.set = "update"; + } + } + if (ttl !== 0 && !this.#ttls) { + this.#initializeTTLTracking(); + } + if (this.#ttls) { + if (!noUpdateTTL) { + this.#setItemTTL(index, ttl, start); + } + if (status) + this.#statusTTL(status, index); + } + if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) { + const dt = this.#disposed; + let task; + while (task = dt?.shift()) { + this.#disposeAfter?.(...task); + } + } + return this; + } + /** + * Evict the least recently used item, returning its value or + * `undefined` if cache is empty. + */ + pop() { + try { + while (this.#size) { + const val = this.#valList[this.#head]; + this.#evict(true); + if (this.#isBackgroundFetch(val)) { + if (val.__staleWhileFetching) { + return val.__staleWhileFetching; + } + } else if (val !== void 0) { + return val; + } + } + } finally { + if (this.#hasDisposeAfter && this.#disposed) { + const dt = this.#disposed; + let task; + while (task = dt?.shift()) { + this.#disposeAfter?.(...task); + } + } + } + } + #evict(free) { + const head = this.#head; + const k = this.#keyList[head]; + const v = this.#valList[head]; + if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) { + v.__abortController.abort(new Error("evicted")); + } else if (this.#hasDispose || this.#hasDisposeAfter) { + if (this.#hasDispose) { + this.#dispose?.(v, k, "evict"); + } + if (this.#hasDisposeAfter) { + this.#disposed?.push([v, k, "evict"]); + } + } + this.#removeItemSize(head); + if (free) { + this.#keyList[head] = void 0; + this.#valList[head] = void 0; + this.#free.push(head); + } + if (this.#size === 1) { + this.#head = this.#tail = 0; + this.#free.length = 0; + } else { + this.#head = this.#next[head]; + } + this.#keyMap.delete(k); + this.#size--; + return head; + } + /** + * Check if a key is in the cache, without updating the recency of use. + * Will return false if the item is stale, even though it is technically + * in the cache. + * + * Check if a key is in the cache, without updating the recency of + * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set + * to `true` in either the options or the constructor. + * + * Will return `false` if the item is stale, even though it is technically in + * the cache. The difference can be determined (if it matters) by using a + * `status` argument, and inspecting the `has` field. + * + * Will not update item age unless + * {@link LRUCache.OptionsBase.updateAgeOnHas} is set. + */ + has(k, hasOptions = {}) { + const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions; + const index = this.#keyMap.get(k); + if (index !== void 0) { + const v = this.#valList[index]; + if (this.#isBackgroundFetch(v) && v.__staleWhileFetching === void 0) { + return false; + } + if (!this.#isStale(index)) { + if (updateAgeOnHas) { + this.#updateItemAge(index); + } + if (status) { + status.has = "hit"; + this.#statusTTL(status, index); + } + return true; + } else if (status) { + status.has = "stale"; + this.#statusTTL(status, index); + } + } else if (status) { + status.has = "miss"; + } + return false; + } + /** + * Like {@link LRUCache#get} but doesn't update recency or delete stale + * items. + * + * Returns `undefined` if the item is stale, unless + * {@link LRUCache.OptionsBase.allowStale} is set. + */ + peek(k, peekOptions = {}) { + const { allowStale = this.allowStale } = peekOptions; + const index = this.#keyMap.get(k); + if (index === void 0 || !allowStale && this.#isStale(index)) { + return; + } + const v = this.#valList[index]; + return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v; + } + #backgroundFetch(k, index, options, context) { + const v = index === void 0 ? void 0 : this.#valList[index]; + if (this.#isBackgroundFetch(v)) { + return v; + } + const ac = new AC(); + const { signal } = options; + signal?.addEventListener("abort", () => ac.abort(signal.reason), { + signal: ac.signal + }); + const fetchOpts = { + signal: ac.signal, + options, + context + }; + const cb = (v2, updateCache = false) => { + const { aborted } = ac.signal; + const ignoreAbort = options.ignoreFetchAbort && v2 !== void 0; + if (options.status) { + if (aborted && !updateCache) { + options.status.fetchAborted = true; + options.status.fetchError = ac.signal.reason; + if (ignoreAbort) + options.status.fetchAbortIgnored = true; + } else { + options.status.fetchResolved = true; + } + } + if (aborted && !ignoreAbort && !updateCache) { + return fetchFail(ac.signal.reason); + } + const bf2 = p; + if (this.#valList[index] === p) { + if (v2 === void 0) { + if (bf2.__staleWhileFetching) { + this.#valList[index] = bf2.__staleWhileFetching; + } else { + this.#delete(k, "fetch"); + } + } else { + if (options.status) + options.status.fetchUpdated = true; + this.set(k, v2, fetchOpts.options); + } + } + return v2; + }; + const eb = (er) => { + if (options.status) { + options.status.fetchRejected = true; + options.status.fetchError = er; + } + return fetchFail(er); + }; + const fetchFail = (er) => { + const { aborted } = ac.signal; + const allowStaleAborted = aborted && options.allowStaleOnFetchAbort; + const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection; + const noDelete = allowStale || options.noDeleteOnFetchRejection; + const bf2 = p; + if (this.#valList[index] === p) { + const del = !noDelete || bf2.__staleWhileFetching === void 0; + if (del) { + this.#delete(k, "fetch"); + } else if (!allowStaleAborted) { + this.#valList[index] = bf2.__staleWhileFetching; + } + } + if (allowStale) { + if (options.status && bf2.__staleWhileFetching !== void 0) { + options.status.returnedStale = true; + } + return bf2.__staleWhileFetching; + } else if (bf2.__returned === bf2) { + throw er; + } + }; + const pcall = (res, rej) => { + const fmp = this.#fetchMethod?.(k, v, fetchOpts); + if (fmp && fmp instanceof Promise) { + fmp.then((v2) => res(v2 === void 0 ? void 0 : v2), rej); + } + ac.signal.addEventListener("abort", () => { + if (!options.ignoreFetchAbort || options.allowStaleOnFetchAbort) { + res(void 0); + if (options.allowStaleOnFetchAbort) { + res = (v2) => cb(v2, true); + } + } + }); + }; + if (options.status) + options.status.fetchDispatched = true; + const p = new Promise(pcall).then(cb, eb); + const bf = Object.assign(p, { + __abortController: ac, + __staleWhileFetching: v, + __returned: void 0 + }); + if (index === void 0) { + this.set(k, bf, { ...fetchOpts.options, status: void 0 }); + index = this.#keyMap.get(k); + } else { + this.#valList[index] = bf; + } + return bf; + } + #isBackgroundFetch(p) { + if (!this.#hasFetchMethod) + return false; + const b = p; + return !!b && b instanceof Promise && b.hasOwnProperty("__staleWhileFetching") && b.__abortController instanceof AC; + } + async fetch(k, fetchOptions = {}) { + const { + // get options + allowStale = this.allowStale, + updateAgeOnGet = this.updateAgeOnGet, + noDeleteOnStaleGet = this.noDeleteOnStaleGet, + // set options + ttl = this.ttl, + noDisposeOnSet = this.noDisposeOnSet, + size = 0, + sizeCalculation = this.sizeCalculation, + noUpdateTTL = this.noUpdateTTL, + // fetch exclusive options + noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, + allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, + ignoreFetchAbort = this.ignoreFetchAbort, + allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, + context, + forceRefresh = false, + status, + signal + } = fetchOptions; + if (!this.#hasFetchMethod) { + if (status) + status.fetch = "get"; + return this.get(k, { + allowStale, + updateAgeOnGet, + noDeleteOnStaleGet, + status + }); + } + const options = { + allowStale, + updateAgeOnGet, + noDeleteOnStaleGet, + ttl, + noDisposeOnSet, + size, + sizeCalculation, + noUpdateTTL, + noDeleteOnFetchRejection, + allowStaleOnFetchRejection, + allowStaleOnFetchAbort, + ignoreFetchAbort, + status, + signal + }; + let index = this.#keyMap.get(k); + if (index === void 0) { + if (status) + status.fetch = "miss"; + const p = this.#backgroundFetch(k, index, options, context); + return p.__returned = p; + } else { + const v = this.#valList[index]; + if (this.#isBackgroundFetch(v)) { + const stale = allowStale && v.__staleWhileFetching !== void 0; + if (status) { + status.fetch = "inflight"; + if (stale) + status.returnedStale = true; + } + return stale ? v.__staleWhileFetching : v.__returned = v; + } + const isStale = this.#isStale(index); + if (!forceRefresh && !isStale) { + if (status) + status.fetch = "hit"; + this.#moveToTail(index); + if (updateAgeOnGet) { + this.#updateItemAge(index); + } + if (status) + this.#statusTTL(status, index); + return v; + } + const p = this.#backgroundFetch(k, index, options, context); + const hasStale = p.__staleWhileFetching !== void 0; + const staleVal = hasStale && allowStale; + if (status) { + status.fetch = isStale ? "stale" : "refresh"; + if (staleVal && isStale) + status.returnedStale = true; + } + return staleVal ? p.__staleWhileFetching : p.__returned = p; + } + } + async forceFetch(k, fetchOptions = {}) { + const v = await this.fetch(k, fetchOptions); + if (v === void 0) + throw new Error("fetch() returned undefined"); + return v; + } + memo(k, memoOptions = {}) { + const memoMethod = this.#memoMethod; + if (!memoMethod) { + throw new Error("no memoMethod provided to constructor"); + } + const { context, forceRefresh, ...options } = memoOptions; + const v = this.get(k, options); + if (!forceRefresh && v !== void 0) + return v; + const vv = memoMethod(k, v, { + options, + context + }); + this.set(k, vv, options); + return vv; + } + /** + * Return a value from the cache. Will update the recency of the cache + * entry found. + * + * If the key is not found, get() will return `undefined`. + */ + get(k, getOptions = {}) { + const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status } = getOptions; + const index = this.#keyMap.get(k); + if (index !== void 0) { + const value = this.#valList[index]; + const fetching = this.#isBackgroundFetch(value); + if (status) + this.#statusTTL(status, index); + if (this.#isStale(index)) { + if (status) + status.get = "stale"; + if (!fetching) { + if (!noDeleteOnStaleGet) { + this.#delete(k, "expire"); + } + if (status && allowStale) + status.returnedStale = true; + return allowStale ? value : void 0; + } else { + if (status && allowStale && value.__staleWhileFetching !== void 0) { + status.returnedStale = true; + } + return allowStale ? value.__staleWhileFetching : void 0; + } + } else { + if (status) + status.get = "hit"; + if (fetching) { + return value.__staleWhileFetching; + } + this.#moveToTail(index); + if (updateAgeOnGet) { + this.#updateItemAge(index); + } + return value; + } + } else if (status) { + status.get = "miss"; + } + } + #connect(p, n) { + this.#prev[n] = p; + this.#next[p] = n; + } + #moveToTail(index) { + if (index !== this.#tail) { + if (index === this.#head) { + this.#head = this.#next[index]; + } else { + this.#connect(this.#prev[index], this.#next[index]); + } + this.#connect(this.#tail, index); + this.#tail = index; + } + } + /** + * Deletes a key out of the cache. + * + * Returns true if the key was deleted, false otherwise. + */ + delete(k) { + return this.#delete(k, "delete"); + } + #delete(k, reason) { + let deleted = false; + if (this.#size !== 0) { + const index = this.#keyMap.get(k); + if (index !== void 0) { + deleted = true; + if (this.#size === 1) { + this.#clear(reason); + } else { + this.#removeItemSize(index); + const v = this.#valList[index]; + if (this.#isBackgroundFetch(v)) { + v.__abortController.abort(new Error("deleted")); + } else if (this.#hasDispose || this.#hasDisposeAfter) { + if (this.#hasDispose) { + this.#dispose?.(v, k, reason); + } + if (this.#hasDisposeAfter) { + this.#disposed?.push([v, k, reason]); + } + } + this.#keyMap.delete(k); + this.#keyList[index] = void 0; + this.#valList[index] = void 0; + if (index === this.#tail) { + this.#tail = this.#prev[index]; + } else if (index === this.#head) { + this.#head = this.#next[index]; + } else { + const pi = this.#prev[index]; + this.#next[pi] = this.#next[index]; + const ni = this.#next[index]; + this.#prev[ni] = this.#prev[index]; + } + this.#size--; + this.#free.push(index); + } + } + } + if (this.#hasDisposeAfter && this.#disposed?.length) { + const dt = this.#disposed; + let task; + while (task = dt?.shift()) { + this.#disposeAfter?.(...task); + } + } + return deleted; + } + /** + * Clear the cache entirely, throwing away all values. + */ + clear() { + return this.#clear("delete"); + } + #clear(reason) { + for (const index of this.#rindexes({ allowStale: true })) { + const v = this.#valList[index]; + if (this.#isBackgroundFetch(v)) { + v.__abortController.abort(new Error("deleted")); + } else { + const k = this.#keyList[index]; + if (this.#hasDispose) { + this.#dispose?.(v, k, reason); + } + if (this.#hasDisposeAfter) { + this.#disposed?.push([v, k, reason]); + } + } + } + this.#keyMap.clear(); + this.#valList.fill(void 0); + this.#keyList.fill(void 0); + if (this.#ttls && this.#starts) { + this.#ttls.fill(0); + this.#starts.fill(0); + } + if (this.#sizes) { + this.#sizes.fill(0); + } + this.#head = 0; + this.#tail = 0; + this.#free.length = 0; + this.#calculatedSize = 0; + this.#size = 0; + if (this.#hasDisposeAfter && this.#disposed) { + const dt = this.#disposed; + let task; + while (task = dt?.shift()) { + this.#disposeAfter?.(...task); + } + } + } + }; + exports8.LRUCache = LRUCache; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/ContainerBase/index.js + var require_ContainerBase = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/ContainerBase/index.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.ContainerIterator = exports8.Container = exports8.Base = void 0; + var ContainerIterator = class { + constructor(t = 0) { + this.iteratorType = t; + } + equals(t) { + return this.o === t.o; + } + }; + exports8.ContainerIterator = ContainerIterator; + var Base = class { + constructor() { + this.i = 0; + } + get length() { + return this.i; + } + size() { + return this.i; + } + empty() { + return this.i === 0; + } + }; + exports8.Base = Base; + var Container = class extends Base { + }; + exports8.Container = Container; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/OtherContainer/Stack.js + var require_Stack = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/OtherContainer/Stack.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = void 0; + var _ContainerBase = require_ContainerBase(); + var Stack = class extends _ContainerBase.Base { + constructor(t = []) { + super(); + this.S = []; + const s = this; + t.forEach(function(t2) { + s.push(t2); + }); + } + clear() { + this.i = 0; + this.S = []; + } + push(t) { + this.S.push(t); + this.i += 1; + return this.i; + } + pop() { + if (this.i === 0) return; + this.i -= 1; + return this.S.pop(); + } + top() { + return this.S[this.i - 1]; + } + }; + var _default = Stack; + exports8.default = _default; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/OtherContainer/Queue.js + var require_Queue = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/OtherContainer/Queue.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = void 0; + var _ContainerBase = require_ContainerBase(); + var Queue = class extends _ContainerBase.Base { + constructor(t = []) { + super(); + this.j = 0; + this.q = []; + const s = this; + t.forEach(function(t2) { + s.push(t2); + }); + } + clear() { + this.q = []; + this.i = this.j = 0; + } + push(t) { + const s = this.q.length; + if (this.j / s > 0.5 && this.j + this.i >= s && s > 4096) { + const s2 = this.i; + for (let t2 = 0; t2 < s2; ++t2) { + this.q[t2] = this.q[this.j + t2]; + } + this.j = 0; + this.q[this.i] = t; + } else this.q[this.j + this.i] = t; + return ++this.i; + } + pop() { + if (this.i === 0) return; + const t = this.q[this.j++]; + this.i -= 1; + return t; + } + front() { + if (this.i === 0) return; + return this.q[this.j]; + } + }; + var _default = Queue; + exports8.default = _default; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/OtherContainer/PriorityQueue.js + var require_PriorityQueue = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/OtherContainer/PriorityQueue.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = void 0; + var _ContainerBase = require_ContainerBase(); + var PriorityQueue = class extends _ContainerBase.Base { + constructor(t = [], s = function(t2, s2) { + if (t2 > s2) return -1; + if (t2 < s2) return 1; + return 0; + }, i = true) { + super(); + this.v = s; + if (Array.isArray(t)) { + this.C = i ? [...t] : t; + } else { + this.C = []; + const s2 = this; + t.forEach(function(t2) { + s2.C.push(t2); + }); + } + this.i = this.C.length; + const e = this.i >> 1; + for (let t2 = this.i - 1 >> 1; t2 >= 0; --t2) { + this.k(t2, e); + } + } + m(t) { + const s = this.C[t]; + while (t > 0) { + const i = t - 1 >> 1; + const e = this.C[i]; + if (this.v(e, s) <= 0) break; + this.C[t] = e; + t = i; + } + this.C[t] = s; + } + k(t, s) { + const i = this.C[t]; + while (t < s) { + let s2 = t << 1 | 1; + const e = s2 + 1; + let h = this.C[s2]; + if (e < this.i && this.v(h, this.C[e]) > 0) { + s2 = e; + h = this.C[e]; + } + if (this.v(h, i) >= 0) break; + this.C[t] = h; + t = s2; + } + this.C[t] = i; + } + clear() { + this.i = 0; + this.C.length = 0; + } + push(t) { + this.C.push(t); + this.m(this.i); + this.i += 1; + } + pop() { + if (this.i === 0) return; + const t = this.C[0]; + const s = this.C.pop(); + this.i -= 1; + if (this.i) { + this.C[0] = s; + this.k(0, this.i >> 1); + } + return t; + } + top() { + return this.C[0]; + } + find(t) { + return this.C.indexOf(t) >= 0; + } + remove(t) { + const s = this.C.indexOf(t); + if (s < 0) return false; + if (s === 0) { + this.pop(); + } else if (s === this.i - 1) { + this.C.pop(); + this.i -= 1; + } else { + this.C.splice(s, 1, this.C.pop()); + this.i -= 1; + this.m(s); + this.k(s, this.i >> 1); + } + return true; + } + updateItem(t) { + const s = this.C.indexOf(t); + if (s < 0) return false; + this.m(s); + this.k(s, this.i >> 1); + return true; + } + toArray() { + return [...this.C]; + } + }; + var _default = PriorityQueue; + exports8.default = _default; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/index.js + var require_Base = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/index.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = void 0; + var _ContainerBase = require_ContainerBase(); + var SequentialContainer = class extends _ContainerBase.Container { + }; + var _default = SequentialContainer; + exports8.default = _default; + } + }); + + // node_modules/js-sdsl/dist/cjs/utils/throwError.js + var require_throwError = __commonJS({ + "node_modules/js-sdsl/dist/cjs/utils/throwError.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.throwIteratorAccessError = throwIteratorAccessError; + function throwIteratorAccessError() { + throw new RangeError("Iterator access denied!"); + } + } + }); + + // node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/RandomIterator.js + var require_RandomIterator = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Base/RandomIterator.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.RandomIterator = void 0; + var _ContainerBase = require_ContainerBase(); + var _throwError = require_throwError(); + var RandomIterator = class extends _ContainerBase.ContainerIterator { + constructor(t, r) { + super(r); + this.o = t; + if (this.iteratorType === 0) { + this.pre = function() { + if (this.o === 0) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o -= 1; + return this; + }; + this.next = function() { + if (this.o === this.container.size()) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o += 1; + return this; + }; + } else { + this.pre = function() { + if (this.o === this.container.size() - 1) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o += 1; + return this; + }; + this.next = function() { + if (this.o === -1) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o -= 1; + return this; + }; + } + } + get pointer() { + return this.container.getElementByPos(this.o); + } + set pointer(t) { + this.container.setElementByPos(this.o, t); + } + }; + exports8.RandomIterator = RandomIterator; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Vector.js + var require_Vector = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Vector.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = void 0; + var _Base = _interopRequireDefault(require_Base()); + var _RandomIterator = require_RandomIterator(); + function _interopRequireDefault(t) { + return t && t.t ? t : { + default: t + }; + } + var VectorIterator = class _VectorIterator extends _RandomIterator.RandomIterator { + constructor(t, r, e) { + super(t, e); + this.container = r; + } + copy() { + return new _VectorIterator(this.o, this.container, this.iteratorType); + } + }; + var Vector = class extends _Base.default { + constructor(t = [], r = true) { + super(); + if (Array.isArray(t)) { + this.J = r ? [...t] : t; + this.i = t.length; + } else { + this.J = []; + const r2 = this; + t.forEach(function(t2) { + r2.pushBack(t2); + }); + } + } + clear() { + this.i = 0; + this.J.length = 0; + } + begin() { + return new VectorIterator(0, this); + } + end() { + return new VectorIterator(this.i, this); + } + rBegin() { + return new VectorIterator(this.i - 1, this, 1); + } + rEnd() { + return new VectorIterator(-1, this, 1); + } + front() { + return this.J[0]; + } + back() { + return this.J[this.i - 1]; + } + getElementByPos(t) { + if (t < 0 || t > this.i - 1) { + throw new RangeError(); + } + return this.J[t]; + } + eraseElementByPos(t) { + if (t < 0 || t > this.i - 1) { + throw new RangeError(); + } + this.J.splice(t, 1); + this.i -= 1; + return this.i; + } + eraseElementByValue(t) { + let r = 0; + for (let e = 0; e < this.i; ++e) { + if (this.J[e] !== t) { + this.J[r++] = this.J[e]; + } + } + this.i = this.J.length = r; + return this.i; + } + eraseElementByIterator(t) { + const r = t.o; + t = t.next(); + this.eraseElementByPos(r); + return t; + } + pushBack(t) { + this.J.push(t); + this.i += 1; + return this.i; + } + popBack() { + if (this.i === 0) return; + this.i -= 1; + return this.J.pop(); + } + setElementByPos(t, r) { + if (t < 0 || t > this.i - 1) { + throw new RangeError(); + } + this.J[t] = r; + } + insert(t, r, e = 1) { + if (t < 0 || t > this.i) { + throw new RangeError(); + } + this.J.splice(t, 0, ...new Array(e).fill(r)); + this.i += e; + return this.i; + } + find(t) { + for (let r = 0; r < this.i; ++r) { + if (this.J[r] === t) { + return new VectorIterator(r, this); + } + } + return this.end(); + } + reverse() { + this.J.reverse(); + } + unique() { + let t = 1; + for (let r = 1; r < this.i; ++r) { + if (this.J[r] !== this.J[r - 1]) { + this.J[t++] = this.J[r]; + } + } + this.i = this.J.length = t; + return this.i; + } + sort(t) { + this.J.sort(t); + } + forEach(t) { + for (let r = 0; r < this.i; ++r) { + t(this.J[r], r, this); + } + } + [Symbol.iterator]() { + return function* () { + yield* this.J; + }.bind(this)(); + } + }; + var _default = Vector; + exports8.default = _default; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/SequentialContainer/LinkList.js + var require_LinkList = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/SequentialContainer/LinkList.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = void 0; + var _Base = _interopRequireDefault(require_Base()); + var _ContainerBase = require_ContainerBase(); + var _throwError = require_throwError(); + function _interopRequireDefault(t) { + return t && t.t ? t : { + default: t + }; + } + var LinkListIterator = class _LinkListIterator extends _ContainerBase.ContainerIterator { + constructor(t, i, s, r) { + super(r); + this.o = t; + this.h = i; + this.container = s; + if (this.iteratorType === 0) { + this.pre = function() { + if (this.o.L === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o = this.o.L; + return this; + }; + this.next = function() { + if (this.o === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o = this.o.B; + return this; + }; + } else { + this.pre = function() { + if (this.o.B === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o = this.o.B; + return this; + }; + this.next = function() { + if (this.o === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o = this.o.L; + return this; + }; + } + } + get pointer() { + if (this.o === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + return this.o.l; + } + set pointer(t) { + if (this.o === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o.l = t; + } + copy() { + return new _LinkListIterator(this.o, this.h, this.container, this.iteratorType); + } + }; + var LinkList = class extends _Base.default { + constructor(t = []) { + super(); + this.h = {}; + this.p = this._ = this.h.L = this.h.B = this.h; + const i = this; + t.forEach(function(t2) { + i.pushBack(t2); + }); + } + V(t) { + const { L: i, B: s } = t; + i.B = s; + s.L = i; + if (t === this.p) { + this.p = s; + } + if (t === this._) { + this._ = i; + } + this.i -= 1; + } + G(t, i) { + const s = i.B; + const r = { + l: t, + L: i, + B: s + }; + i.B = r; + s.L = r; + if (i === this.h) { + this.p = r; + } + if (s === this.h) { + this._ = r; + } + this.i += 1; + } + clear() { + this.i = 0; + this.p = this._ = this.h.L = this.h.B = this.h; + } + begin() { + return new LinkListIterator(this.p, this.h, this); + } + end() { + return new LinkListIterator(this.h, this.h, this); + } + rBegin() { + return new LinkListIterator(this._, this.h, this, 1); + } + rEnd() { + return new LinkListIterator(this.h, this.h, this, 1); + } + front() { + return this.p.l; + } + back() { + return this._.l; + } + getElementByPos(t) { + if (t < 0 || t > this.i - 1) { + throw new RangeError(); + } + let i = this.p; + while (t--) { + i = i.B; + } + return i.l; + } + eraseElementByPos(t) { + if (t < 0 || t > this.i - 1) { + throw new RangeError(); + } + let i = this.p; + while (t--) { + i = i.B; + } + this.V(i); + return this.i; + } + eraseElementByValue(t) { + let i = this.p; + while (i !== this.h) { + if (i.l === t) { + this.V(i); + } + i = i.B; + } + return this.i; + } + eraseElementByIterator(t) { + const i = t.o; + if (i === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + t = t.next(); + this.V(i); + return t; + } + pushBack(t) { + this.G(t, this._); + return this.i; + } + popBack() { + if (this.i === 0) return; + const t = this._.l; + this.V(this._); + return t; + } + pushFront(t) { + this.G(t, this.h); + return this.i; + } + popFront() { + if (this.i === 0) return; + const t = this.p.l; + this.V(this.p); + return t; + } + setElementByPos(t, i) { + if (t < 0 || t > this.i - 1) { + throw new RangeError(); + } + let s = this.p; + while (t--) { + s = s.B; + } + s.l = i; + } + insert(t, i, s = 1) { + if (t < 0 || t > this.i) { + throw new RangeError(); + } + if (s <= 0) return this.i; + if (t === 0) { + while (s--) this.pushFront(i); + } else if (t === this.i) { + while (s--) this.pushBack(i); + } else { + let r = this.p; + for (let i2 = 1; i2 < t; ++i2) { + r = r.B; + } + const e = r.B; + this.i += s; + while (s--) { + r.B = { + l: i, + L: r + }; + r.B.L = r; + r = r.B; + } + r.B = e; + e.L = r; + } + return this.i; + } + find(t) { + let i = this.p; + while (i !== this.h) { + if (i.l === t) { + return new LinkListIterator(i, this.h, this); + } + i = i.B; + } + return this.end(); + } + reverse() { + if (this.i <= 1) return; + let t = this.p; + let i = this._; + let s = 0; + while (s << 1 < this.i) { + const r = t.l; + t.l = i.l; + i.l = r; + t = t.B; + i = i.L; + s += 1; + } + } + unique() { + if (this.i <= 1) { + return this.i; + } + let t = this.p; + while (t !== this.h) { + let i = t; + while (i.B !== this.h && i.l === i.B.l) { + i = i.B; + this.i -= 1; + } + t.B = i.B; + t.B.L = t; + t = t.B; + } + return this.i; + } + sort(t) { + if (this.i <= 1) return; + const i = []; + this.forEach(function(t2) { + i.push(t2); + }); + i.sort(t); + let s = this.p; + i.forEach(function(t2) { + s.l = t2; + s = s.B; + }); + } + merge(t) { + const i = this; + if (this.i === 0) { + t.forEach(function(t2) { + i.pushBack(t2); + }); + } else { + let s = this.p; + t.forEach(function(t2) { + while (s !== i.h && s.l <= t2) { + s = s.B; + } + i.G(t2, s.L); + }); + } + return this.i; + } + forEach(t) { + let i = this.p; + let s = 0; + while (i !== this.h) { + t(i.l, s++, this); + i = i.B; + } + } + [Symbol.iterator]() { + return function* () { + if (this.i === 0) return; + let t = this.p; + while (t !== this.h) { + yield t.l; + t = t.B; + } + }.bind(this)(); + } + }; + var _default = LinkList; + exports8.default = _default; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Deque.js + var require_Deque = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/SequentialContainer/Deque.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = void 0; + var _Base = _interopRequireDefault(require_Base()); + var _RandomIterator = require_RandomIterator(); + function _interopRequireDefault(t) { + return t && t.t ? t : { + default: t + }; + } + var DequeIterator = class _DequeIterator extends _RandomIterator.RandomIterator { + constructor(t, i, s) { + super(t, s); + this.container = i; + } + copy() { + return new _DequeIterator(this.o, this.container, this.iteratorType); + } + }; + var Deque = class extends _Base.default { + constructor(t = [], i = 1 << 12) { + super(); + this.j = 0; + this.D = 0; + this.R = 0; + this.N = 0; + this.P = 0; + this.A = []; + const s = (() => { + if (typeof t.length === "number") return t.length; + if (typeof t.size === "number") return t.size; + if (typeof t.size === "function") return t.size(); + throw new TypeError("Cannot get the length or size of the container"); + })(); + this.F = i; + this.P = Math.max(Math.ceil(s / this.F), 1); + for (let t2 = 0; t2 < this.P; ++t2) { + this.A.push(new Array(this.F)); + } + const h = Math.ceil(s / this.F); + this.j = this.R = (this.P >> 1) - (h >> 1); + this.D = this.N = this.F - s % this.F >> 1; + const e = this; + t.forEach(function(t2) { + e.pushBack(t2); + }); + } + T() { + const t = []; + const i = Math.max(this.P >> 1, 1); + for (let s = 0; s < i; ++s) { + t[s] = new Array(this.F); + } + for (let i2 = this.j; i2 < this.P; ++i2) { + t[t.length] = this.A[i2]; + } + for (let i2 = 0; i2 < this.R; ++i2) { + t[t.length] = this.A[i2]; + } + t[t.length] = [...this.A[this.R]]; + this.j = i; + this.R = t.length - 1; + for (let s = 0; s < i; ++s) { + t[t.length] = new Array(this.F); + } + this.A = t; + this.P = t.length; + } + O(t) { + const i = this.D + t + 1; + const s = i % this.F; + let h = s - 1; + let e = this.j + (i - s) / this.F; + if (s === 0) e -= 1; + e %= this.P; + if (h < 0) h += this.F; + return { + curNodeBucketIndex: e, + curNodePointerIndex: h + }; + } + clear() { + this.A = [new Array(this.F)]; + this.P = 1; + this.j = this.R = this.i = 0; + this.D = this.N = this.F >> 1; + } + begin() { + return new DequeIterator(0, this); + } + end() { + return new DequeIterator(this.i, this); + } + rBegin() { + return new DequeIterator(this.i - 1, this, 1); + } + rEnd() { + return new DequeIterator(-1, this, 1); + } + front() { + if (this.i === 0) return; + return this.A[this.j][this.D]; + } + back() { + if (this.i === 0) return; + return this.A[this.R][this.N]; + } + pushBack(t) { + if (this.i) { + if (this.N < this.F - 1) { + this.N += 1; + } else if (this.R < this.P - 1) { + this.R += 1; + this.N = 0; + } else { + this.R = 0; + this.N = 0; + } + if (this.R === this.j && this.N === this.D) this.T(); + } + this.i += 1; + this.A[this.R][this.N] = t; + return this.i; + } + popBack() { + if (this.i === 0) return; + const t = this.A[this.R][this.N]; + if (this.i !== 1) { + if (this.N > 0) { + this.N -= 1; + } else if (this.R > 0) { + this.R -= 1; + this.N = this.F - 1; + } else { + this.R = this.P - 1; + this.N = this.F - 1; + } + } + this.i -= 1; + return t; + } + pushFront(t) { + if (this.i) { + if (this.D > 0) { + this.D -= 1; + } else if (this.j > 0) { + this.j -= 1; + this.D = this.F - 1; + } else { + this.j = this.P - 1; + this.D = this.F - 1; + } + if (this.j === this.R && this.D === this.N) this.T(); + } + this.i += 1; + this.A[this.j][this.D] = t; + return this.i; + } + popFront() { + if (this.i === 0) return; + const t = this.A[this.j][this.D]; + if (this.i !== 1) { + if (this.D < this.F - 1) { + this.D += 1; + } else if (this.j < this.P - 1) { + this.j += 1; + this.D = 0; + } else { + this.j = 0; + this.D = 0; + } + } + this.i -= 1; + return t; + } + getElementByPos(t) { + if (t < 0 || t > this.i - 1) { + throw new RangeError(); + } + const { curNodeBucketIndex: i, curNodePointerIndex: s } = this.O(t); + return this.A[i][s]; + } + setElementByPos(t, i) { + if (t < 0 || t > this.i - 1) { + throw new RangeError(); + } + const { curNodeBucketIndex: s, curNodePointerIndex: h } = this.O(t); + this.A[s][h] = i; + } + insert(t, i, s = 1) { + if (t < 0 || t > this.i) { + throw new RangeError(); + } + if (t === 0) { + while (s--) this.pushFront(i); + } else if (t === this.i) { + while (s--) this.pushBack(i); + } else { + const h = []; + for (let i2 = t; i2 < this.i; ++i2) { + h.push(this.getElementByPos(i2)); + } + this.cut(t - 1); + for (let t2 = 0; t2 < s; ++t2) this.pushBack(i); + for (let t2 = 0; t2 < h.length; ++t2) this.pushBack(h[t2]); + } + return this.i; + } + cut(t) { + if (t < 0) { + this.clear(); + return 0; + } + const { curNodeBucketIndex: i, curNodePointerIndex: s } = this.O(t); + this.R = i; + this.N = s; + this.i = t + 1; + return this.i; + } + eraseElementByPos(t) { + if (t < 0 || t > this.i - 1) { + throw new RangeError(); + } + if (t === 0) this.popFront(); + else if (t === this.i - 1) this.popBack(); + else { + const i = []; + for (let s2 = t + 1; s2 < this.i; ++s2) { + i.push(this.getElementByPos(s2)); + } + this.cut(t); + this.popBack(); + const s = this; + i.forEach(function(t2) { + s.pushBack(t2); + }); + } + return this.i; + } + eraseElementByValue(t) { + if (this.i === 0) return 0; + const i = []; + for (let s2 = 0; s2 < this.i; ++s2) { + const h = this.getElementByPos(s2); + if (h !== t) i.push(h); + } + const s = i.length; + for (let t2 = 0; t2 < s; ++t2) this.setElementByPos(t2, i[t2]); + return this.cut(s - 1); + } + eraseElementByIterator(t) { + const i = t.o; + this.eraseElementByPos(i); + t = t.next(); + return t; + } + find(t) { + for (let i = 0; i < this.i; ++i) { + if (this.getElementByPos(i) === t) { + return new DequeIterator(i, this); + } + } + return this.end(); + } + reverse() { + let t = 0; + let i = this.i - 1; + while (t < i) { + const s = this.getElementByPos(t); + this.setElementByPos(t, this.getElementByPos(i)); + this.setElementByPos(i, s); + t += 1; + i -= 1; + } + } + unique() { + if (this.i <= 1) { + return this.i; + } + let t = 1; + let i = this.getElementByPos(0); + for (let s = 1; s < this.i; ++s) { + const h = this.getElementByPos(s); + if (h !== i) { + i = h; + this.setElementByPos(t++, h); + } + } + while (this.i > t) this.popBack(); + return this.i; + } + sort(t) { + const i = []; + for (let t2 = 0; t2 < this.i; ++t2) { + i.push(this.getElementByPos(t2)); + } + i.sort(t); + for (let t2 = 0; t2 < this.i; ++t2) this.setElementByPos(t2, i[t2]); + } + shrinkToFit() { + if (this.i === 0) return; + const t = []; + this.forEach(function(i) { + t.push(i); + }); + this.P = Math.max(Math.ceil(this.i / this.F), 1); + this.i = this.j = this.R = this.D = this.N = 0; + this.A = []; + for (let t2 = 0; t2 < this.P; ++t2) { + this.A.push(new Array(this.F)); + } + for (let i = 0; i < t.length; ++i) this.pushBack(t[i]); + } + forEach(t) { + for (let i = 0; i < this.i; ++i) { + t(this.getElementByPos(i), i, this); + } + } + [Symbol.iterator]() { + return function* () { + for (let t = 0; t < this.i; ++t) { + yield this.getElementByPos(t); + } + }.bind(this)(); + } + }; + var _default = Deque; + exports8.default = _default; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeNode.js + var require_TreeNode = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeNode.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.TreeNodeEnableIndex = exports8.TreeNode = void 0; + var TreeNode = class { + constructor(e, t) { + this.ee = 1; + this.u = void 0; + this.l = void 0; + this.U = void 0; + this.W = void 0; + this.tt = void 0; + this.u = e; + this.l = t; + } + L() { + let e = this; + if (e.ee === 1 && e.tt.tt === e) { + e = e.W; + } else if (e.U) { + e = e.U; + while (e.W) { + e = e.W; + } + } else { + let t = e.tt; + while (t.U === e) { + e = t; + t = e.tt; + } + e = t; + } + return e; + } + B() { + let e = this; + if (e.W) { + e = e.W; + while (e.U) { + e = e.U; + } + return e; + } else { + let t = e.tt; + while (t.W === e) { + e = t; + t = e.tt; + } + if (e.W !== t) { + return t; + } else return e; + } + } + te() { + const e = this.tt; + const t = this.W; + const s = t.U; + if (e.tt === this) e.tt = t; + else if (e.U === this) e.U = t; + else e.W = t; + t.tt = e; + t.U = this; + this.tt = t; + this.W = s; + if (s) s.tt = this; + return t; + } + se() { + const e = this.tt; + const t = this.U; + const s = t.W; + if (e.tt === this) e.tt = t; + else if (e.U === this) e.U = t; + else e.W = t; + t.tt = e; + t.W = this; + this.tt = t; + this.U = s; + if (s) s.tt = this; + return t; + } + }; + exports8.TreeNode = TreeNode; + var TreeNodeEnableIndex = class extends TreeNode { + constructor() { + super(...arguments); + this.rt = 1; + } + te() { + const e = super.te(); + this.ie(); + e.ie(); + return e; + } + se() { + const e = super.se(); + this.ie(); + e.ie(); + return e; + } + ie() { + this.rt = 1; + if (this.U) { + this.rt += this.U.rt; + } + if (this.W) { + this.rt += this.W.rt; + } + } + }; + exports8.TreeNodeEnableIndex = TreeNodeEnableIndex; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/index.js + var require_Base2 = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/index.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = void 0; + var _TreeNode = require_TreeNode(); + var _ContainerBase = require_ContainerBase(); + var _throwError = require_throwError(); + var TreeContainer = class extends _ContainerBase.Container { + constructor(e = function(e2, t2) { + if (e2 < t2) return -1; + if (e2 > t2) return 1; + return 0; + }, t = false) { + super(); + this.Y = void 0; + this.v = e; + if (t) { + this.re = _TreeNode.TreeNodeEnableIndex; + this.M = function(e2, t2, i) { + const s = this.ne(e2, t2, i); + if (s) { + let e3 = s.tt; + while (e3 !== this.h) { + e3.rt += 1; + e3 = e3.tt; + } + const t3 = this.he(s); + if (t3) { + const { parentNode: e4, grandParent: i2, curNode: s2 } = t3; + e4.ie(); + i2.ie(); + s2.ie(); + } + } + return this.i; + }; + this.V = function(e2) { + let t2 = this.fe(e2); + while (t2 !== this.h) { + t2.rt -= 1; + t2 = t2.tt; + } + }; + } else { + this.re = _TreeNode.TreeNode; + this.M = function(e2, t2, i) { + const s = this.ne(e2, t2, i); + if (s) this.he(s); + return this.i; + }; + this.V = this.fe; + } + this.h = new this.re(); + } + X(e, t) { + let i = this.h; + while (e) { + const s = this.v(e.u, t); + if (s < 0) { + e = e.W; + } else if (s > 0) { + i = e; + e = e.U; + } else return e; + } + return i; + } + Z(e, t) { + let i = this.h; + while (e) { + const s = this.v(e.u, t); + if (s <= 0) { + e = e.W; + } else { + i = e; + e = e.U; + } + } + return i; + } + $(e, t) { + let i = this.h; + while (e) { + const s = this.v(e.u, t); + if (s < 0) { + i = e; + e = e.W; + } else if (s > 0) { + e = e.U; + } else return e; + } + return i; + } + rr(e, t) { + let i = this.h; + while (e) { + const s = this.v(e.u, t); + if (s < 0) { + i = e; + e = e.W; + } else { + e = e.U; + } + } + return i; + } + ue(e) { + while (true) { + const t = e.tt; + if (t === this.h) return; + if (e.ee === 1) { + e.ee = 0; + return; + } + if (e === t.U) { + const i = t.W; + if (i.ee === 1) { + i.ee = 0; + t.ee = 1; + if (t === this.Y) { + this.Y = t.te(); + } else t.te(); + } else { + if (i.W && i.W.ee === 1) { + i.ee = t.ee; + t.ee = 0; + i.W.ee = 0; + if (t === this.Y) { + this.Y = t.te(); + } else t.te(); + return; + } else if (i.U && i.U.ee === 1) { + i.ee = 1; + i.U.ee = 0; + i.se(); + } else { + i.ee = 1; + e = t; + } + } + } else { + const i = t.U; + if (i.ee === 1) { + i.ee = 0; + t.ee = 1; + if (t === this.Y) { + this.Y = t.se(); + } else t.se(); + } else { + if (i.U && i.U.ee === 1) { + i.ee = t.ee; + t.ee = 0; + i.U.ee = 0; + if (t === this.Y) { + this.Y = t.se(); + } else t.se(); + return; + } else if (i.W && i.W.ee === 1) { + i.ee = 1; + i.W.ee = 0; + i.te(); + } else { + i.ee = 1; + e = t; + } + } + } + } + } + fe(e) { + if (this.i === 1) { + this.clear(); + return this.h; + } + let t = e; + while (t.U || t.W) { + if (t.W) { + t = t.W; + while (t.U) t = t.U; + } else { + t = t.U; + } + [e.u, t.u] = [t.u, e.u]; + [e.l, t.l] = [t.l, e.l]; + e = t; + } + if (this.h.U === t) { + this.h.U = t.tt; + } else if (this.h.W === t) { + this.h.W = t.tt; + } + this.ue(t); + const i = t.tt; + if (t === i.U) { + i.U = void 0; + } else i.W = void 0; + this.i -= 1; + this.Y.ee = 0; + return i; + } + oe(e, t) { + if (e === void 0) return false; + const i = this.oe(e.U, t); + if (i) return true; + if (t(e)) return true; + return this.oe(e.W, t); + } + he(e) { + while (true) { + const t = e.tt; + if (t.ee === 0) return; + const i = t.tt; + if (t === i.U) { + const s = i.W; + if (s && s.ee === 1) { + s.ee = t.ee = 0; + if (i === this.Y) return; + i.ee = 1; + e = i; + continue; + } else if (e === t.W) { + e.ee = 0; + if (e.U) e.U.tt = t; + if (e.W) e.W.tt = i; + t.W = e.U; + i.U = e.W; + e.U = t; + e.W = i; + if (i === this.Y) { + this.Y = e; + this.h.tt = e; + } else { + const t2 = i.tt; + if (t2.U === i) { + t2.U = e; + } else t2.W = e; + } + e.tt = i.tt; + t.tt = e; + i.tt = e; + i.ee = 1; + return { + parentNode: t, + grandParent: i, + curNode: e + }; + } else { + t.ee = 0; + if (i === this.Y) { + this.Y = i.se(); + } else i.se(); + i.ee = 1; + } + } else { + const s = i.U; + if (s && s.ee === 1) { + s.ee = t.ee = 0; + if (i === this.Y) return; + i.ee = 1; + e = i; + continue; + } else if (e === t.U) { + e.ee = 0; + if (e.U) e.U.tt = i; + if (e.W) e.W.tt = t; + i.W = e.U; + t.U = e.W; + e.U = i; + e.W = t; + if (i === this.Y) { + this.Y = e; + this.h.tt = e; + } else { + const t2 = i.tt; + if (t2.U === i) { + t2.U = e; + } else t2.W = e; + } + e.tt = i.tt; + t.tt = e; + i.tt = e; + i.ee = 1; + return { + parentNode: t, + grandParent: i, + curNode: e + }; + } else { + t.ee = 0; + if (i === this.Y) { + this.Y = i.te(); + } else i.te(); + i.ee = 1; + } + } + return; + } + } + ne(e, t, i) { + if (this.Y === void 0) { + this.i += 1; + this.Y = new this.re(e, t); + this.Y.ee = 0; + this.Y.tt = this.h; + this.h.tt = this.Y; + this.h.U = this.Y; + this.h.W = this.Y; + return; + } + let s; + const r = this.h.U; + const n = this.v(r.u, e); + if (n === 0) { + r.l = t; + return; + } else if (n > 0) { + r.U = new this.re(e, t); + r.U.tt = r; + s = r.U; + this.h.U = s; + } else { + const r2 = this.h.W; + const n2 = this.v(r2.u, e); + if (n2 === 0) { + r2.l = t; + return; + } else if (n2 < 0) { + r2.W = new this.re(e, t); + r2.W.tt = r2; + s = r2.W; + this.h.W = s; + } else { + if (i !== void 0) { + const r3 = i.o; + if (r3 !== this.h) { + const i2 = this.v(r3.u, e); + if (i2 === 0) { + r3.l = t; + return; + } else if (i2 > 0) { + const i3 = r3.L(); + const n3 = this.v(i3.u, e); + if (n3 === 0) { + i3.l = t; + return; + } else if (n3 < 0) { + s = new this.re(e, t); + if (i3.W === void 0) { + i3.W = s; + s.tt = i3; + } else { + r3.U = s; + s.tt = r3; + } + } + } + } + } + if (s === void 0) { + s = this.Y; + while (true) { + const i2 = this.v(s.u, e); + if (i2 > 0) { + if (s.U === void 0) { + s.U = new this.re(e, t); + s.U.tt = s; + s = s.U; + break; + } + s = s.U; + } else if (i2 < 0) { + if (s.W === void 0) { + s.W = new this.re(e, t); + s.W.tt = s; + s = s.W; + break; + } + s = s.W; + } else { + s.l = t; + return; + } + } + } + } + } + this.i += 1; + return s; + } + I(e, t) { + while (e) { + const i = this.v(e.u, t); + if (i < 0) { + e = e.W; + } else if (i > 0) { + e = e.U; + } else return e; + } + return e || this.h; + } + clear() { + this.i = 0; + this.Y = void 0; + this.h.tt = void 0; + this.h.U = this.h.W = void 0; + } + updateKeyByIterator(e, t) { + const i = e.o; + if (i === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + if (this.i === 1) { + i.u = t; + return true; + } + if (i === this.h.U) { + if (this.v(i.B().u, t) > 0) { + i.u = t; + return true; + } + return false; + } + if (i === this.h.W) { + if (this.v(i.L().u, t) < 0) { + i.u = t; + return true; + } + return false; + } + const s = i.L().u; + if (this.v(s, t) >= 0) return false; + const r = i.B().u; + if (this.v(r, t) <= 0) return false; + i.u = t; + return true; + } + eraseElementByPos(e) { + if (e < 0 || e > this.i - 1) { + throw new RangeError(); + } + let t = 0; + const i = this; + this.oe(this.Y, function(s) { + if (e === t) { + i.V(s); + return true; + } + t += 1; + return false; + }); + return this.i; + } + eraseElementByKey(e) { + if (this.i === 0) return false; + const t = this.I(this.Y, e); + if (t === this.h) return false; + this.V(t); + return true; + } + eraseElementByIterator(e) { + const t = e.o; + if (t === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + const i = t.W === void 0; + const s = e.iteratorType === 0; + if (s) { + if (i) e.next(); + } else { + if (!i || t.U === void 0) e.next(); + } + this.V(t); + return e; + } + forEach(e) { + let t = 0; + for (const i of this) e(i, t++, this); + } + getElementByPos(e) { + if (e < 0 || e > this.i - 1) { + throw new RangeError(); + } + let t; + let i = 0; + for (const s of this) { + if (i === e) { + t = s; + break; + } + i += 1; + } + return t; + } + getHeight() { + if (this.i === 0) return 0; + const traversal = function(e) { + if (!e) return 0; + return Math.max(traversal(e.U), traversal(e.W)) + 1; + }; + return traversal(this.Y); + } + }; + var _default = TreeContainer; + exports8.default = _default; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeIterator.js + var require_TreeIterator = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/TreeContainer/Base/TreeIterator.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = void 0; + var _ContainerBase = require_ContainerBase(); + var _throwError = require_throwError(); + var TreeIterator = class extends _ContainerBase.ContainerIterator { + constructor(t, r, i) { + super(i); + this.o = t; + this.h = r; + if (this.iteratorType === 0) { + this.pre = function() { + if (this.o === this.h.U) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o = this.o.L(); + return this; + }; + this.next = function() { + if (this.o === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o = this.o.B(); + return this; + }; + } else { + this.pre = function() { + if (this.o === this.h.W) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o = this.o.B(); + return this; + }; + this.next = function() { + if (this.o === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o = this.o.L(); + return this; + }; + } + } + get index() { + let t = this.o; + const r = this.h.tt; + if (t === this.h) { + if (r) { + return r.rt - 1; + } + return 0; + } + let i = 0; + if (t.U) { + i += t.U.rt; + } + while (t !== r) { + const r2 = t.tt; + if (t === r2.W) { + i += 1; + if (r2.U) { + i += r2.U.rt; + } + } + t = r2; + } + return i; + } + }; + var _default = TreeIterator; + exports8.default = _default; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedSet.js + var require_OrderedSet = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedSet.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = void 0; + var _Base = _interopRequireDefault(require_Base2()); + var _TreeIterator = _interopRequireDefault(require_TreeIterator()); + var _throwError = require_throwError(); + function _interopRequireDefault(e) { + return e && e.t ? e : { + default: e + }; + } + var OrderedSetIterator = class _OrderedSetIterator extends _TreeIterator.default { + constructor(e, t, r, i) { + super(e, t, i); + this.container = r; + } + get pointer() { + if (this.o === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + return this.o.u; + } + copy() { + return new _OrderedSetIterator(this.o, this.h, this.container, this.iteratorType); + } + }; + var OrderedSet = class extends _Base.default { + constructor(e = [], t, r) { + super(t, r); + const i = this; + e.forEach(function(e2) { + i.insert(e2); + }); + } + *K(e) { + if (e === void 0) return; + yield* this.K(e.U); + yield e.u; + yield* this.K(e.W); + } + begin() { + return new OrderedSetIterator(this.h.U || this.h, this.h, this); + } + end() { + return new OrderedSetIterator(this.h, this.h, this); + } + rBegin() { + return new OrderedSetIterator(this.h.W || this.h, this.h, this, 1); + } + rEnd() { + return new OrderedSetIterator(this.h, this.h, this, 1); + } + front() { + return this.h.U ? this.h.U.u : void 0; + } + back() { + return this.h.W ? this.h.W.u : void 0; + } + insert(e, t) { + return this.M(e, void 0, t); + } + find(e) { + const t = this.I(this.Y, e); + return new OrderedSetIterator(t, this.h, this); + } + lowerBound(e) { + const t = this.X(this.Y, e); + return new OrderedSetIterator(t, this.h, this); + } + upperBound(e) { + const t = this.Z(this.Y, e); + return new OrderedSetIterator(t, this.h, this); + } + reverseLowerBound(e) { + const t = this.$(this.Y, e); + return new OrderedSetIterator(t, this.h, this); + } + reverseUpperBound(e) { + const t = this.rr(this.Y, e); + return new OrderedSetIterator(t, this.h, this); + } + union(e) { + const t = this; + e.forEach(function(e2) { + t.insert(e2); + }); + return this.i; + } + [Symbol.iterator]() { + return this.K(this.Y); + } + }; + var _default = OrderedSet; + exports8.default = _default; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedMap.js + var require_OrderedMap = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedMap.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = void 0; + var _Base = _interopRequireDefault(require_Base2()); + var _TreeIterator = _interopRequireDefault(require_TreeIterator()); + var _throwError = require_throwError(); + function _interopRequireDefault(r) { + return r && r.t ? r : { + default: r + }; + } + var OrderedMapIterator = class _OrderedMapIterator extends _TreeIterator.default { + constructor(r, t, e, s) { + super(r, t, s); + this.container = e; + } + get pointer() { + if (this.o === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + const r = this; + return new Proxy([], { + get(t, e) { + if (e === "0") return r.o.u; + else if (e === "1") return r.o.l; + }, + set(t, e, s) { + if (e !== "1") { + throw new TypeError("props must be 1"); + } + r.o.l = s; + return true; + } + }); + } + copy() { + return new _OrderedMapIterator(this.o, this.h, this.container, this.iteratorType); + } + }; + var OrderedMap = class extends _Base.default { + constructor(r = [], t, e) { + super(t, e); + const s = this; + r.forEach(function(r2) { + s.setElement(r2[0], r2[1]); + }); + } + *K(r) { + if (r === void 0) return; + yield* this.K(r.U); + yield [r.u, r.l]; + yield* this.K(r.W); + } + begin() { + return new OrderedMapIterator(this.h.U || this.h, this.h, this); + } + end() { + return new OrderedMapIterator(this.h, this.h, this); + } + rBegin() { + return new OrderedMapIterator(this.h.W || this.h, this.h, this, 1); + } + rEnd() { + return new OrderedMapIterator(this.h, this.h, this, 1); + } + front() { + if (this.i === 0) return; + const r = this.h.U; + return [r.u, r.l]; + } + back() { + if (this.i === 0) return; + const r = this.h.W; + return [r.u, r.l]; + } + lowerBound(r) { + const t = this.X(this.Y, r); + return new OrderedMapIterator(t, this.h, this); + } + upperBound(r) { + const t = this.Z(this.Y, r); + return new OrderedMapIterator(t, this.h, this); + } + reverseLowerBound(r) { + const t = this.$(this.Y, r); + return new OrderedMapIterator(t, this.h, this); + } + reverseUpperBound(r) { + const t = this.rr(this.Y, r); + return new OrderedMapIterator(t, this.h, this); + } + setElement(r, t, e) { + return this.M(r, t, e); + } + find(r) { + const t = this.I(this.Y, r); + return new OrderedMapIterator(t, this.h, this); + } + getElementByKey(r) { + const t = this.I(this.Y, r); + return t.l; + } + union(r) { + const t = this; + r.forEach(function(r2) { + t.setElement(r2[0], r2[1]); + }); + return this.i; + } + [Symbol.iterator]() { + return this.K(this.Y); + } + }; + var _default = OrderedMap; + exports8.default = _default; + } + }); + + // node_modules/js-sdsl/dist/cjs/utils/checkObject.js + var require_checkObject = __commonJS({ + "node_modules/js-sdsl/dist/cjs/utils/checkObject.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = checkObject; + function checkObject(e) { + const t = typeof e; + return t === "object" && e !== null || t === "function"; + } + } + }); + + // node_modules/js-sdsl/dist/cjs/container/HashContainer/Base/index.js + var require_Base3 = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/HashContainer/Base/index.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.HashContainerIterator = exports8.HashContainer = void 0; + var _ContainerBase = require_ContainerBase(); + var _checkObject = _interopRequireDefault(require_checkObject()); + var _throwError = require_throwError(); + function _interopRequireDefault(t) { + return t && t.t ? t : { + default: t + }; + } + var HashContainerIterator = class extends _ContainerBase.ContainerIterator { + constructor(t, e, i) { + super(i); + this.o = t; + this.h = e; + if (this.iteratorType === 0) { + this.pre = function() { + if (this.o.L === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o = this.o.L; + return this; + }; + this.next = function() { + if (this.o === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o = this.o.B; + return this; + }; + } else { + this.pre = function() { + if (this.o.B === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o = this.o.B; + return this; + }; + this.next = function() { + if (this.o === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + this.o = this.o.L; + return this; + }; + } + } + }; + exports8.HashContainerIterator = HashContainerIterator; + var HashContainer = class extends _ContainerBase.Container { + constructor() { + super(); + this.H = []; + this.g = {}; + this.HASH_TAG = Symbol("@@HASH_TAG"); + Object.setPrototypeOf(this.g, null); + this.h = {}; + this.h.L = this.h.B = this.p = this._ = this.h; + } + V(t) { + const { L: e, B: i } = t; + e.B = i; + i.L = e; + if (t === this.p) { + this.p = i; + } + if (t === this._) { + this._ = e; + } + this.i -= 1; + } + M(t, e, i) { + if (i === void 0) i = (0, _checkObject.default)(t); + let s; + if (i) { + const i2 = t[this.HASH_TAG]; + if (i2 !== void 0) { + this.H[i2].l = e; + return this.i; + } + Object.defineProperty(t, this.HASH_TAG, { + value: this.H.length, + configurable: true + }); + s = { + u: t, + l: e, + L: this._, + B: this.h + }; + this.H.push(s); + } else { + const i2 = this.g[t]; + if (i2) { + i2.l = e; + return this.i; + } + s = { + u: t, + l: e, + L: this._, + B: this.h + }; + this.g[t] = s; + } + if (this.i === 0) { + this.p = s; + this.h.B = s; + } else { + this._.B = s; + } + this._ = s; + this.h.L = s; + return ++this.i; + } + I(t, e) { + if (e === void 0) e = (0, _checkObject.default)(t); + if (e) { + const e2 = t[this.HASH_TAG]; + if (e2 === void 0) return this.h; + return this.H[e2]; + } else { + return this.g[t] || this.h; + } + } + clear() { + const t = this.HASH_TAG; + this.H.forEach(function(e) { + delete e.u[t]; + }); + this.H = []; + this.g = {}; + Object.setPrototypeOf(this.g, null); + this.i = 0; + this.p = this._ = this.h.L = this.h.B = this.h; + } + eraseElementByKey(t, e) { + let i; + if (e === void 0) e = (0, _checkObject.default)(t); + if (e) { + const e2 = t[this.HASH_TAG]; + if (e2 === void 0) return false; + delete t[this.HASH_TAG]; + i = this.H[e2]; + delete this.H[e2]; + } else { + i = this.g[t]; + if (i === void 0) return false; + delete this.g[t]; + } + this.V(i); + return true; + } + eraseElementByIterator(t) { + const e = t.o; + if (e === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + this.V(e); + return t.next(); + } + eraseElementByPos(t) { + if (t < 0 || t > this.i - 1) { + throw new RangeError(); + } + let e = this.p; + while (t--) { + e = e.B; + } + this.V(e); + return this.i; + } + }; + exports8.HashContainer = HashContainer; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/HashContainer/HashSet.js + var require_HashSet = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/HashContainer/HashSet.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = void 0; + var _Base = require_Base3(); + var _throwError = require_throwError(); + var HashSetIterator = class _HashSetIterator extends _Base.HashContainerIterator { + constructor(t, e, r, s) { + super(t, e, s); + this.container = r; + } + get pointer() { + if (this.o === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + return this.o.u; + } + copy() { + return new _HashSetIterator(this.o, this.h, this.container, this.iteratorType); + } + }; + var HashSet = class extends _Base.HashContainer { + constructor(t = []) { + super(); + const e = this; + t.forEach(function(t2) { + e.insert(t2); + }); + } + begin() { + return new HashSetIterator(this.p, this.h, this); + } + end() { + return new HashSetIterator(this.h, this.h, this); + } + rBegin() { + return new HashSetIterator(this._, this.h, this, 1); + } + rEnd() { + return new HashSetIterator(this.h, this.h, this, 1); + } + front() { + return this.p.u; + } + back() { + return this._.u; + } + insert(t, e) { + return this.M(t, void 0, e); + } + getElementByPos(t) { + if (t < 0 || t > this.i - 1) { + throw new RangeError(); + } + let e = this.p; + while (t--) { + e = e.B; + } + return e.u; + } + find(t, e) { + const r = this.I(t, e); + return new HashSetIterator(r, this.h, this); + } + forEach(t) { + let e = 0; + let r = this.p; + while (r !== this.h) { + t(r.u, e++, this); + r = r.B; + } + } + [Symbol.iterator]() { + return function* () { + let t = this.p; + while (t !== this.h) { + yield t.u; + t = t.B; + } + }.bind(this)(); + } + }; + var _default = HashSet; + exports8.default = _default; + } + }); + + // node_modules/js-sdsl/dist/cjs/container/HashContainer/HashMap.js + var require_HashMap = __commonJS({ + "node_modules/js-sdsl/dist/cjs/container/HashContainer/HashMap.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + exports8.default = void 0; + var _Base = require_Base3(); + var _checkObject = _interopRequireDefault(require_checkObject()); + var _throwError = require_throwError(); + function _interopRequireDefault(t) { + return t && t.t ? t : { + default: t + }; + } + var HashMapIterator = class _HashMapIterator extends _Base.HashContainerIterator { + constructor(t, e, r, s) { + super(t, e, s); + this.container = r; + } + get pointer() { + if (this.o === this.h) { + (0, _throwError.throwIteratorAccessError)(); + } + const t = this; + return new Proxy([], { + get(e, r) { + if (r === "0") return t.o.u; + else if (r === "1") return t.o.l; + }, + set(e, r, s) { + if (r !== "1") { + throw new TypeError("props must be 1"); + } + t.o.l = s; + return true; + } + }); + } + copy() { + return new _HashMapIterator(this.o, this.h, this.container, this.iteratorType); + } + }; + var HashMap = class extends _Base.HashContainer { + constructor(t = []) { + super(); + const e = this; + t.forEach(function(t2) { + e.setElement(t2[0], t2[1]); + }); + } + begin() { + return new HashMapIterator(this.p, this.h, this); + } + end() { + return new HashMapIterator(this.h, this.h, this); + } + rBegin() { + return new HashMapIterator(this._, this.h, this, 1); + } + rEnd() { + return new HashMapIterator(this.h, this.h, this, 1); + } + front() { + if (this.i === 0) return; + return [this.p.u, this.p.l]; + } + back() { + if (this.i === 0) return; + return [this._.u, this._.l]; + } + setElement(t, e, r) { + return this.M(t, e, r); + } + getElementByKey(t, e) { + if (e === void 0) e = (0, _checkObject.default)(t); + if (e) { + const e2 = t[this.HASH_TAG]; + return e2 !== void 0 ? this.H[e2].l : void 0; + } + const r = this.g[t]; + return r ? r.l : void 0; + } + getElementByPos(t) { + if (t < 0 || t > this.i - 1) { + throw new RangeError(); + } + let e = this.p; + while (t--) { + e = e.B; + } + return [e.u, e.l]; + } + find(t, e) { + const r = this.I(t, e); + return new HashMapIterator(r, this.h, this); + } + forEach(t) { + let e = 0; + let r = this.p; + while (r !== this.h) { + t([r.u, r.l], e++, this); + r = r.B; + } + } + [Symbol.iterator]() { + return function* () { + let t = this.p; + while (t !== this.h) { + yield [t.u, t.l]; + t = t.B; + } + }.bind(this)(); + } + }; + var _default = HashMap; + exports8.default = _default; + } + }); + + // node_modules/js-sdsl/dist/cjs/index.js + var require_cjs = __commonJS({ + "node_modules/js-sdsl/dist/cjs/index.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "t", { + value: true + }); + Object.defineProperty(exports8, "Deque", { + enumerable: true, + get: function() { + return _Deque.default; + } + }); + Object.defineProperty(exports8, "HashMap", { + enumerable: true, + get: function() { + return _HashMap.default; + } + }); + Object.defineProperty(exports8, "HashSet", { + enumerable: true, + get: function() { + return _HashSet.default; + } + }); + Object.defineProperty(exports8, "LinkList", { + enumerable: true, + get: function() { + return _LinkList.default; + } + }); + Object.defineProperty(exports8, "OrderedMap", { + enumerable: true, + get: function() { + return _OrderedMap.default; + } + }); + Object.defineProperty(exports8, "OrderedSet", { + enumerable: true, + get: function() { + return _OrderedSet.default; + } + }); + Object.defineProperty(exports8, "PriorityQueue", { + enumerable: true, + get: function() { + return _PriorityQueue.default; + } + }); + Object.defineProperty(exports8, "Queue", { + enumerable: true, + get: function() { + return _Queue.default; + } + }); + Object.defineProperty(exports8, "Stack", { + enumerable: true, + get: function() { + return _Stack.default; + } + }); + Object.defineProperty(exports8, "Vector", { + enumerable: true, + get: function() { + return _Vector.default; + } + }); + var _Stack = _interopRequireDefault(require_Stack()); + var _Queue = _interopRequireDefault(require_Queue()); + var _PriorityQueue = _interopRequireDefault(require_PriorityQueue()); + var _Vector = _interopRequireDefault(require_Vector()); + var _LinkList = _interopRequireDefault(require_LinkList()); + var _Deque = _interopRequireDefault(require_Deque()); + var _OrderedSet = _interopRequireDefault(require_OrderedSet()); + var _OrderedMap = _interopRequireDefault(require_OrderedMap()); + var _HashSet = _interopRequireDefault(require_HashSet()); + var _HashMap = _interopRequireDefault(require_HashMap()); + function _interopRequireDefault(e) { + return e && e.t ? e : { + default: e + }; + } + } + }); + + // node_modules/number-allocator/lib/number-allocator.js + var require_number_allocator = __commonJS({ + "node_modules/number-allocator/lib/number-allocator.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var SortedSet = require_cjs().OrderedSet; + var debugTrace = require_browser4()("number-allocator:trace"); + var debugError = require_browser4()("number-allocator:error"); + function Interval(low, high) { + this.low = low; + this.high = high; + } + Interval.prototype.equals = function(other) { + return this.low === other.low && this.high === other.high; + }; + Interval.prototype.compare = function(other) { + if (this.low < other.low && this.high < other.low) return -1; + if (other.low < this.low && other.high < this.low) return 1; + return 0; + }; + function NumberAllocator(min, max) { + if (!(this instanceof NumberAllocator)) { + return new NumberAllocator(min, max); + } + this.min = min; + this.max = max; + this.ss = new SortedSet( + [], + (lhs, rhs) => { + return lhs.compare(rhs); + } + ); + debugTrace("Create"); + this.clear(); + } + NumberAllocator.prototype.firstVacant = function() { + if (this.ss.size() === 0) return null; + return this.ss.front().low; + }; + NumberAllocator.prototype.alloc = function() { + if (this.ss.size() === 0) { + debugTrace("alloc():empty"); + return null; + } + const it = this.ss.begin(); + const low = it.pointer.low; + const high = it.pointer.high; + const num = low; + if (num + 1 <= high) { + this.ss.updateKeyByIterator(it, new Interval(low + 1, high)); + } else { + this.ss.eraseElementByPos(0); + } + debugTrace("alloc():" + num); + return num; + }; + NumberAllocator.prototype.use = function(num) { + const key = new Interval(num, num); + const it = this.ss.lowerBound(key); + if (!it.equals(this.ss.end())) { + const low = it.pointer.low; + const high = it.pointer.high; + if (it.pointer.equals(key)) { + this.ss.eraseElementByIterator(it); + debugTrace("use():" + num); + return true; + } + if (low > num) return false; + if (low === num) { + this.ss.updateKeyByIterator(it, new Interval(low + 1, high)); + debugTrace("use():" + num); + return true; + } + if (high === num) { + this.ss.updateKeyByIterator(it, new Interval(low, high - 1)); + debugTrace("use():" + num); + return true; + } + this.ss.updateKeyByIterator(it, new Interval(num + 1, high)); + this.ss.insert(new Interval(low, num - 1)); + debugTrace("use():" + num); + return true; + } + debugTrace("use():failed"); + return false; + }; + NumberAllocator.prototype.free = function(num) { + if (num < this.min || num > this.max) { + debugError("free():" + num + " is out of range"); + return; + } + const key = new Interval(num, num); + const it = this.ss.upperBound(key); + if (it.equals(this.ss.end())) { + if (it.equals(this.ss.begin())) { + this.ss.insert(key); + return; + } + it.pre(); + const low = it.pointer.high; + const high = it.pointer.high; + if (high + 1 === num) { + this.ss.updateKeyByIterator(it, new Interval(low, num)); + } else { + this.ss.insert(key); + } + } else { + if (it.equals(this.ss.begin())) { + if (num + 1 === it.pointer.low) { + const high = it.pointer.high; + this.ss.updateKeyByIterator(it, new Interval(num, high)); + } else { + this.ss.insert(key); + } + } else { + const rLow = it.pointer.low; + const rHigh = it.pointer.high; + it.pre(); + const lLow = it.pointer.low; + const lHigh = it.pointer.high; + if (lHigh + 1 === num) { + if (num + 1 === rLow) { + this.ss.eraseElementByIterator(it); + this.ss.updateKeyByIterator(it, new Interval(lLow, rHigh)); + } else { + this.ss.updateKeyByIterator(it, new Interval(lLow, num)); + } + } else { + if (num + 1 === rLow) { + this.ss.eraseElementByIterator(it.next()); + this.ss.insert(new Interval(num, rHigh)); + } else { + this.ss.insert(key); + } + } + } + } + debugTrace("free():" + num); + }; + NumberAllocator.prototype.clear = function() { + debugTrace("clear()"); + this.ss.clear(); + this.ss.insert(new Interval(this.min, this.max)); + }; + NumberAllocator.prototype.intervalCount = function() { + return this.ss.size(); + }; + NumberAllocator.prototype.dump = function() { + console.log("length:" + this.ss.size()); + for (const element of this.ss) { + console.log(element); + } + }; + module.exports = NumberAllocator; + } + }); + + // node_modules/number-allocator/index.js + var require_number_allocator2 = __commonJS({ + "node_modules/number-allocator/index.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var NumberAllocator = require_number_allocator(); + module.exports.NumberAllocator = NumberAllocator; + } + }); + + // build/lib/topic-alias-send.js + var require_topic_alias_send = __commonJS({ + "build/lib/topic-alias-send.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + var lru_cache_1 = require_commonjs(); + var number_allocator_1 = require_number_allocator2(); + var TopicAliasSend = class { + aliasToTopic; + topicToAlias; + max; + numberAllocator; + length; + constructor(max) { + if (max > 0) { + this.aliasToTopic = new lru_cache_1.LRUCache({ max }); + this.topicToAlias = {}; + this.numberAllocator = new number_allocator_1.NumberAllocator(1, max); + this.max = max; + this.length = 0; + } + } + put(topic, alias) { + if (alias === 0 || alias > this.max) { + return false; + } + const entry = this.aliasToTopic.get(alias); + if (entry) { + delete this.topicToAlias[entry]; + } + this.aliasToTopic.set(alias, topic); + this.topicToAlias[topic] = alias; + this.numberAllocator.use(alias); + this.length = this.aliasToTopic.size; + return true; + } + getTopicByAlias(alias) { + return this.aliasToTopic.get(alias); + } + getAliasByTopic(topic) { + const alias = this.topicToAlias[topic]; + if (typeof alias !== "undefined") { + this.aliasToTopic.get(alias); + } + return alias; + } + clear() { + this.aliasToTopic.clear(); + this.topicToAlias = {}; + this.numberAllocator.clear(); + this.length = 0; + } + getLruAlias() { + const alias = this.numberAllocator.firstVacant(); + if (alias) + return alias; + return [...this.aliasToTopic.keys()][this.aliasToTopic.size - 1]; + } + }; + exports8.default = TopicAliasSend; + } + }); + + // build/lib/handlers/connack.js + var require_connack = __commonJS({ + "build/lib/handlers/connack.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var __importDefault = exports8 && exports8.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports8, "__esModule", { value: true }); + var ack_1 = require_ack(); + var topic_alias_send_1 = __importDefault(require_topic_alias_send()); + var shared_1 = require_shared(); + var handleConnack = (client, packet) => { + client.log("_handleConnack"); + const { options } = client; + const version4 = options.protocolVersion; + const rc = version4 === 5 ? packet.reasonCode : packet.returnCode; + clearTimeout(client["connackTimer"]); + delete client["topicAliasSend"]; + if (packet.properties) { + if (packet.properties.topicAliasMaximum) { + if (packet.properties.topicAliasMaximum > 65535) { + client.emit("error", new Error("topicAliasMaximum from broker is out of range")); + return; + } + if (packet.properties.topicAliasMaximum > 0) { + client["topicAliasSend"] = new topic_alias_send_1.default(packet.properties.topicAliasMaximum); + } + } + if (packet.properties.serverKeepAlive && options.keepalive) { + options.keepalive = packet.properties.serverKeepAlive; + } + if (packet.properties.maximumPacketSize) { + if (!options.properties) { + options.properties = {}; + } + options.properties.maximumPacketSize = packet.properties.maximumPacketSize; + } + } + if (rc === 0) { + client.reconnecting = false; + client["_onConnect"](packet); + } else if (rc > 0) { + const err = new shared_1.ErrorWithReasonCode(`Connection refused: ${ack_1.ReasonCodes[rc]}`, rc); + client.emit("error", err); + if (client.options.reconnectOnConnackError) { + client["_cleanUp"](true); + } + } + }; + exports8.default = handleConnack; + } + }); + + // build/lib/handlers/pubrel.js + var require_pubrel = __commonJS({ + "build/lib/handlers/pubrel.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + var handlePubrel = (client, packet, done) => { + client.log("handling pubrel packet"); + const callback = typeof done !== "undefined" ? done : client.noop; + const { messageId } = packet; + const comp = { cmd: "pubcomp", messageId }; + client.incomingStore.get(packet, (err, pub) => { + if (!err) { + client.emit("message", pub.topic, pub.payload, pub); + client.handleMessage(pub, (err2) => { + if (err2) { + return callback(err2); + } + client.incomingStore.del(pub, client.noop); + client["_sendPacket"](comp, callback); + }); + } else { + client["_sendPacket"](comp, callback); + } + }); + }; + exports8.default = handlePubrel; + } + }); + + // build/lib/handlers/index.js + var require_handlers = __commonJS({ + "build/lib/handlers/index.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var __importDefault = exports8 && exports8.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports8, "__esModule", { value: true }); + var publish_1 = __importDefault(require_publish()); + var auth_1 = __importDefault(require_auth()); + var connack_1 = __importDefault(require_connack()); + var ack_1 = __importDefault(require_ack()); + var pubrel_1 = __importDefault(require_pubrel()); + var handle = (client, packet, done) => { + const { options } = client; + if (options.protocolVersion === 5 && options.properties && options.properties.maximumPacketSize && options.properties.maximumPacketSize < packet.length) { + client.emit("error", new Error(`exceeding packets size ${packet.cmd}`)); + client.end({ + reasonCode: 149, + properties: { reasonString: "Maximum packet size was exceeded" } + }); + return client; + } + client.log("_handlePacket :: emitting packetreceive"); + client.emit("packetreceive", packet); + switch (packet.cmd) { + case "publish": + (0, publish_1.default)(client, packet, done); + break; + case "puback": + case "pubrec": + case "pubcomp": + case "suback": + case "unsuback": + client.reschedulePing(); + (0, ack_1.default)(client, packet); + done(); + break; + case "pubrel": + client.reschedulePing(); + (0, pubrel_1.default)(client, packet, done); + break; + case "connack": + (0, connack_1.default)(client, packet); + done(); + break; + case "auth": + client.reschedulePing(); + (0, auth_1.default)(client, packet); + done(); + break; + case "pingresp": + client.log("_handlePacket :: received pingresp"); + client.reschedulePing(true); + done(); + break; + case "disconnect": + client.emit("disconnect", packet); + done(); + break; + default: + client.log("_handlePacket :: unknown command"); + done(); + break; + } + }; + exports8.default = handle; + } + }); + + // build/lib/default-message-id-provider.js + var require_default_message_id_provider = __commonJS({ + "build/lib/default-message-id-provider.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + var DefaultMessageIdProvider = class { + nextId; + constructor() { + this.nextId = Math.max(1, Math.floor(Math.random() * 65535)); + } + allocate() { + const id = this.nextId++; + if (this.nextId === 65536) { + this.nextId = 1; + } + return id; + } + getLastAllocated() { + return this.nextId === 1 ? 65535 : this.nextId - 1; + } + register(messageId) { + return true; + } + deallocate(messageId) { + } + clear() { + } + }; + exports8.default = DefaultMessageIdProvider; + } + }); + + // build/lib/topic-alias-recv.js + var require_topic_alias_recv = __commonJS({ + "build/lib/topic-alias-recv.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + var TopicAliasRecv = class { + aliasToTopic; + max; + length; + constructor(max) { + this.aliasToTopic = {}; + this.max = max; + } + put(topic, alias) { + if (alias === 0 || alias > this.max) { + return false; + } + this.aliasToTopic[alias] = topic; + this.length = Object.keys(this.aliasToTopic).length; + return true; + } + getTopicByAlias(alias) { + return this.aliasToTopic[alias]; + } + clear() { + this.aliasToTopic = {}; + } + }; + exports8.default = TopicAliasRecv; + } + }); + + // build/lib/TypedEmitter.js + var require_TypedEmitter = __commonJS({ + "build/lib/TypedEmitter.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var __importDefault = exports8 && exports8.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports8, "__esModule", { value: true }); + exports8.TypedEventEmitter = void 0; + var events_1 = __importDefault((init_events(), __toCommonJS(events_exports))); + var shared_1 = require_shared(); + var TypedEventEmitter = class { + }; + exports8.TypedEventEmitter = TypedEventEmitter; + (0, shared_1.applyMixin)(TypedEventEmitter, events_1.default); + } + }); + + // node_modules/@babel/runtime/helpers/typeof.js + var require_typeof = __commonJS({ + "node_modules/@babel/runtime/helpers/typeof.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + function _typeof(o) { + "@babel/helpers - typeof"; + return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o); + } + module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/toPrimitive.js + var require_toPrimitive = __commonJS({ + "node_modules/@babel/runtime/helpers/toPrimitive.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var _typeof = require_typeof()["default"]; + function toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); + } + module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/toPropertyKey.js + var require_toPropertyKey = __commonJS({ + "node_modules/@babel/runtime/helpers/toPropertyKey.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var _typeof = require_typeof()["default"]; + var toPrimitive = require_toPrimitive(); + function toPropertyKey(t) { + var i = toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/defineProperty.js + var require_defineProperty = __commonJS({ + "node_modules/@babel/runtime/helpers/defineProperty.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var toPropertyKey = require_toPropertyKey(); + function _defineProperty(e, r, t) { + return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, { + value: t, + enumerable: true, + configurable: true, + writable: true + }) : e[r] = t, e; + } + module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/arrayWithHoles.js + var require_arrayWithHoles = __commonJS({ + "node_modules/@babel/runtime/helpers/arrayWithHoles.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + function _arrayWithHoles(r) { + if (Array.isArray(r)) return r; + } + module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/iterableToArrayLimit.js + var require_iterableToArrayLimit = __commonJS({ + "node_modules/@babel/runtime/helpers/iterableToArrayLimit.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + function _iterableToArrayLimit(r, l) { + var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (null != t) { + var e, n, i, u, a = [], f = true, o = false; + try { + if (i = (t = t.call(r)).next, 0 === l) { + if (Object(t) !== t) return; + f = false; + } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ; + } catch (r2) { + o = true, n = r2; + } finally { + try { + if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; + } finally { + if (o) throw n; + } + } + return a; + } + } + module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/arrayLikeToArray.js + var require_arrayLikeToArray = __commonJS({ + "node_modules/@babel/runtime/helpers/arrayLikeToArray.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js + var require_unsupportedIterableToArray = __commonJS({ + "node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var arrayLikeToArray = require_arrayLikeToArray(); + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0; + } + } + module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/nonIterableRest.js + var require_nonIterableRest = __commonJS({ + "node_modules/@babel/runtime/helpers/nonIterableRest.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/slicedToArray.js + var require_slicedToArray = __commonJS({ + "node_modules/@babel/runtime/helpers/slicedToArray.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var arrayWithHoles = require_arrayWithHoles(); + var iterableToArrayLimit = require_iterableToArrayLimit(); + var unsupportedIterableToArray = require_unsupportedIterableToArray(); + var nonIterableRest = require_nonIterableRest(); + function _slicedToArray(r, e) { + return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest(); + } + module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/fast-unique-numbers/build/es5/bundle.js + var require_bundle = __commonJS({ + "node_modules/fast-unique-numbers/build/es5/bundle.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + (function(global2, factory) { + typeof exports8 === "object" && typeof module !== "undefined" ? factory(exports8) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.fastUniqueNumbers = {})); + })(exports8, function(exports9) { + "use strict"; + var createAddUniqueNumber = function createAddUniqueNumber2(generateUniqueNumber2) { + return function(set) { + var number = generateUniqueNumber2(set); + set.add(number); + return number; + }; + }; + var createCache = function createCache2(lastNumberWeakMap) { + return function(collection, nextNumber) { + lastNumberWeakMap.set(collection, nextNumber); + return nextNumber; + }; + }; + var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER === void 0 ? 9007199254740991 : Number.MAX_SAFE_INTEGER; + var TWO_TO_THE_POWER_OF_TWENTY_NINE = 536870912; + var TWO_TO_THE_POWER_OF_THIRTY = TWO_TO_THE_POWER_OF_TWENTY_NINE * 2; + var createGenerateUniqueNumber = function createGenerateUniqueNumber2(cache2, lastNumberWeakMap) { + return function(collection) { + var lastNumber = lastNumberWeakMap.get(collection); + var nextNumber = lastNumber === void 0 ? collection.size : lastNumber < TWO_TO_THE_POWER_OF_THIRTY ? lastNumber + 1 : 0; + if (!collection.has(nextNumber)) { + return cache2(collection, nextNumber); + } + if (collection.size < TWO_TO_THE_POWER_OF_TWENTY_NINE) { + while (collection.has(nextNumber)) { + nextNumber = Math.floor(Math.random() * TWO_TO_THE_POWER_OF_THIRTY); + } + return cache2(collection, nextNumber); + } + if (collection.size > MAX_SAFE_INTEGER) { + throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!"); + } + while (collection.has(nextNumber)) { + nextNumber = Math.floor(Math.random() * MAX_SAFE_INTEGER); + } + return cache2(collection, nextNumber); + }; + }; + var LAST_NUMBER_WEAK_MAP = /* @__PURE__ */ new WeakMap(); + var cache = createCache(LAST_NUMBER_WEAK_MAP); + var generateUniqueNumber = createGenerateUniqueNumber(cache, LAST_NUMBER_WEAK_MAP); + var addUniqueNumber = createAddUniqueNumber(generateUniqueNumber); + exports9.addUniqueNumber = addUniqueNumber; + exports9.generateUniqueNumber = generateUniqueNumber; + }); + } + }); + + // node_modules/@babel/runtime/helpers/asyncToGenerator.js + var require_asyncToGenerator = __commonJS({ + "node_modules/@babel/runtime/helpers/asyncToGenerator.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + function asyncGeneratorStep(n, t, e, r, o, a, c) { + try { + var i = n[a](c), u = i.value; + } catch (n2) { + return void e(n2); + } + i.done ? t(u) : Promise.resolve(u).then(r, o); + } + function _asyncToGenerator(n) { + return function() { + var t = this, e = arguments; + return new Promise(function(r, o) { + var a = n.apply(t, e); + function _next(n2) { + asyncGeneratorStep(a, r, o, _next, _throw, "next", n2); + } + function _throw(n2) { + asyncGeneratorStep(a, r, o, _next, _throw, "throw", n2); + } + _next(void 0); + }); + }; + } + module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/OverloadYield.js + var require_OverloadYield = __commonJS({ + "node_modules/@babel/runtime/helpers/OverloadYield.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + function _OverloadYield(e, d) { + this.v = e, this.k = d; + } + module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/regeneratorDefine.js + var require_regeneratorDefine = __commonJS({ + "node_modules/@babel/runtime/helpers/regeneratorDefine.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + function _regeneratorDefine(e, r, n, t) { + var i = Object.defineProperty; + try { + i({}, "", {}); + } catch (e2) { + i = 0; + } + module.exports = _regeneratorDefine = function regeneratorDefine(e2, r2, n2, t2) { + function o(r3, n3) { + _regeneratorDefine(e2, r3, function(e3) { + return this._invoke(r3, n3, e3); + }); + } + r2 ? i ? i(e2, r2, { + value: n2, + enumerable: !t2, + configurable: !t2, + writable: !t2 + }) : e2[r2] = n2 : (o("next", 0), o("throw", 1), o("return", 2)); + }, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t); + } + module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/regenerator.js + var require_regenerator = __commonJS({ + "node_modules/@babel/runtime/helpers/regenerator.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var regeneratorDefine = require_regeneratorDefine(); + function _regenerator() { + var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; + function i(r2, n2, o2, i2) { + var c2 = n2 && n2.prototype instanceof Generator ? n2 : Generator, u2 = Object.create(c2.prototype); + return regeneratorDefine(u2, "_invoke", function(r3, n3, o3) { + var i3, c3, u3, f2 = 0, p = o3 || [], y = false, G = { + p: 0, + n: 0, + v: e, + a: d, + f: d.bind(e, 4), + d: function d2(t2, r4) { + return i3 = t2, c3 = 0, u3 = e, G.n = r4, a; + } + }; + function d(r4, n4) { + for (c3 = r4, u3 = n4, t = 0; !y && f2 && !o4 && t < p.length; t++) { + var o4, i4 = p[t], d2 = G.p, l = i4[2]; + r4 > 3 ? (o4 = l === n4) && (u3 = i4[(c3 = i4[4]) ? 5 : (c3 = 3, 3)], i4[4] = i4[5] = e) : i4[0] <= d2 && ((o4 = r4 < 2 && d2 < i4[1]) ? (c3 = 0, G.v = n4, G.n = i4[1]) : d2 < l && (o4 = r4 < 3 || i4[0] > n4 || n4 > l) && (i4[4] = r4, i4[5] = n4, G.n = l, c3 = 0)); + } + if (o4 || r4 > 1) return a; + throw y = true, n4; + } + return function(o4, p2, l) { + if (f2 > 1) throw TypeError("Generator is already running"); + for (y && 1 === p2 && d(p2, l), c3 = p2, u3 = l; (t = c3 < 2 ? e : u3) || !y; ) { + i3 || (c3 ? c3 < 3 ? (c3 > 1 && (G.n = -1), d(c3, u3)) : G.n = u3 : G.v = u3); + try { + if (f2 = 2, i3) { + if (c3 || (o4 = "next"), t = i3[o4]) { + if (!(t = t.call(i3, u3))) throw TypeError("iterator result is not an object"); + if (!t.done) return t; + u3 = t.value, c3 < 2 && (c3 = 0); + } else 1 === c3 && (t = i3["return"]) && t.call(i3), c3 < 2 && (u3 = TypeError("The iterator does not provide a '" + o4 + "' method"), c3 = 1); + i3 = e; + } else if ((t = (y = G.n < 0) ? u3 : r3.call(n3, G)) !== a) break; + } catch (t2) { + i3 = e, c3 = 1, u3 = t2; + } finally { + f2 = 1; + } + } + return { + value: t, + done: y + }; + }; + }(r2, o2, i2), true), u2; + } + var a = {}; + function Generator() { + } + function GeneratorFunction() { + } + function GeneratorFunctionPrototype() { + } + t = Object.getPrototypeOf; + var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function() { + return this; + }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); + function f(e2) { + return Object.setPrototypeOf ? Object.setPrototypeOf(e2, GeneratorFunctionPrototype) : (e2.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e2, o, "GeneratorFunction")), e2.prototype = Object.create(u), e2; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), regeneratorDefine(u), regeneratorDefine(u, o, "Generator"), regeneratorDefine(u, n, function() { + return this; + }), regeneratorDefine(u, "toString", function() { + return "[object Generator]"; + }), (module.exports = _regenerator = function _regenerator2() { + return { + w: i, + m: f + }; + }, module.exports.__esModule = true, module.exports["default"] = module.exports)(); + } + module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js + var require_regeneratorAsyncIterator = __commonJS({ + "node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var OverloadYield = require_OverloadYield(); + var regeneratorDefine = require_regeneratorDefine(); + function AsyncIterator(t, e) { + function n(r2, o, i, f) { + try { + var c = t[r2](o), u = c.value; + return u instanceof OverloadYield ? e.resolve(u.v).then(function(t2) { + n("next", t2, i, f); + }, function(t2) { + n("throw", t2, i, f); + }) : e.resolve(u).then(function(t2) { + c.value = t2, i(c); + }, function(t2) { + return n("throw", t2, i, f); + }); + } catch (t2) { + f(t2); + } + } + var r; + this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function() { + return this; + })), regeneratorDefine(this, "_invoke", function(t2, o, i) { + function f() { + return new e(function(e2, r2) { + n(t2, i, e2, r2); + }); + } + return r = r ? r.then(f, f) : f(); + }, true); + } + module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js + var require_regeneratorAsyncGen = __commonJS({ + "node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var regenerator = require_regenerator(); + var regeneratorAsyncIterator = require_regeneratorAsyncIterator(); + function _regeneratorAsyncGen(r, e, t, o, n) { + return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise); + } + module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/regeneratorAsync.js + var require_regeneratorAsync = __commonJS({ + "node_modules/@babel/runtime/helpers/regeneratorAsync.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var regeneratorAsyncGen = require_regeneratorAsyncGen(); + function _regeneratorAsync(n, e, r, t, o) { + var a = regeneratorAsyncGen(n, e, r, t, o); + return a.next().then(function(n2) { + return n2.done ? n2.value : a.next(); + }); + } + module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/regeneratorKeys.js + var require_regeneratorKeys = __commonJS({ + "node_modules/@babel/runtime/helpers/regeneratorKeys.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + function _regeneratorKeys(e) { + var n = Object(e), r = []; + for (var t in n) r.unshift(t); + return function e2() { + for (; r.length; ) if ((t = r.pop()) in n) return e2.value = t, e2.done = false, e2; + return e2.done = true, e2; + }; + } + module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/regeneratorValues.js + var require_regeneratorValues = __commonJS({ + "node_modules/@babel/runtime/helpers/regeneratorValues.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var _typeof = require_typeof()["default"]; + function _regeneratorValues(e) { + if (null != e) { + var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r = 0; + if (t) return t.call(e); + if ("function" == typeof e.next) return e; + if (!isNaN(e.length)) return { + next: function next() { + return e && r >= e.length && (e = void 0), { + value: e && e[r++], + done: !e + }; + } + }; + } + throw new TypeError(_typeof(e) + " is not iterable"); + } + module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/helpers/regeneratorRuntime.js + var require_regeneratorRuntime = __commonJS({ + "node_modules/@babel/runtime/helpers/regeneratorRuntime.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var OverloadYield = require_OverloadYield(); + var regenerator = require_regenerator(); + var regeneratorAsync = require_regeneratorAsync(); + var regeneratorAsyncGen = require_regeneratorAsyncGen(); + var regeneratorAsyncIterator = require_regeneratorAsyncIterator(); + var regeneratorKeys = require_regeneratorKeys(); + var regeneratorValues = require_regeneratorValues(); + function _regeneratorRuntime() { + "use strict"; + var r = regenerator(), e = r.m(_regeneratorRuntime), t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor; + function n(r2) { + var e2 = "function" == typeof r2 && r2.constructor; + return !!e2 && (e2 === t || "GeneratorFunction" === (e2.displayName || e2.name)); + } + var o = { + "throw": 1, + "return": 2, + "break": 3, + "continue": 3 + }; + function a(r2) { + var e2, t2; + return function(n2) { + e2 || (e2 = { + stop: function stop() { + return t2(n2.a, 2); + }, + "catch": function _catch() { + return n2.v; + }, + abrupt: function abrupt(r3, e3) { + return t2(n2.a, o[r3], e3); + }, + delegateYield: function delegateYield(r3, o2, a2) { + return e2.resultName = o2, t2(n2.d, regeneratorValues(r3), a2); + }, + finish: function finish(r3) { + return t2(n2.f, r3); + } + }, t2 = function t3(r3, _t, o2) { + n2.p = e2.prev, n2.n = e2.next; + try { + return r3(_t, o2); + } finally { + e2.next = n2.n; + } + }), e2.resultName && (e2[e2.resultName] = n2.v, e2.resultName = void 0), e2.sent = n2.v, e2.next = n2.n; + try { + return r2.call(this, e2); + } finally { + n2.p = e2.prev, n2.n = e2.next; + } + }; + } + return (module.exports = _regeneratorRuntime = function _regeneratorRuntime2() { + return { + wrap: function wrap(e2, t2, n2, o2) { + return r.w(a(e2), t2, n2, o2 && o2.reverse()); + }, + isGeneratorFunction: n, + mark: r.m, + awrap: function awrap(r2, e2) { + return new OverloadYield(r2, e2); + }, + AsyncIterator: regeneratorAsyncIterator, + async: function async(r2, e2, t2, o2, u) { + return (n(e2) ? regeneratorAsyncGen : regeneratorAsync)(a(r2), e2, t2, o2, u); + }, + keys: regeneratorKeys, + values: regeneratorValues + }; + }, module.exports.__esModule = true, module.exports["default"] = module.exports)(); + } + module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + }); + + // node_modules/@babel/runtime/regenerator/index.js + var require_regenerator2 = __commonJS({ + "node_modules/@babel/runtime/regenerator/index.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + var runtime = require_regeneratorRuntime()(); + module.exports = runtime; + try { + regeneratorRuntime = runtime; + } catch (accidentalStrictMode) { + if (typeof globalThis === "object") { + globalThis.regeneratorRuntime = runtime; + } else { + Function("r", "regeneratorRuntime = r")(runtime); + } + } + } + }); + + // node_modules/broker-factory/build/es5/bundle.js + var require_bundle2 = __commonJS({ + "node_modules/broker-factory/build/es5/bundle.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + (function(global2, factory) { + typeof exports8 === "object" && typeof module !== "undefined" ? factory(exports8, require_defineProperty(), require_slicedToArray(), require_bundle(), require_asyncToGenerator(), require_regenerator2()) : typeof define === "function" && define.amd ? define(["exports", "@babel/runtime/helpers/defineProperty", "@babel/runtime/helpers/slicedToArray", "fast-unique-numbers", "@babel/runtime/helpers/asyncToGenerator", "@babel/runtime/regenerator"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.brokerFactory = {}, global2._defineProperty, global2._slicedToArray, global2.fastUniqueNumbers, global2._asyncToGenerator, global2._regeneratorRuntime)); + })(exports8, function(exports9, _defineProperty, _slicedToArray, fastUniqueNumbers, _asyncToGenerator, _regeneratorRuntime) { + "use strict"; + var isMessagePort = function isMessagePort2(sender) { + return typeof sender.start === "function"; + }; + var PORT_MAP = /* @__PURE__ */ new WeakMap(); + function ownKeys$1(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + function _objectSpread$1(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys$1(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + var extendBrokerImplementation = function extendBrokerImplementation2(partialBrokerImplementation) { + return _objectSpread$1(_objectSpread$1({}, partialBrokerImplementation), {}, { + connect: function connect(_ref) { + var call = _ref.call; + return /* @__PURE__ */ _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime.mark(function _callee() { + var _MessageChannel, port1, port2, portId; + return _regeneratorRuntime.wrap(function(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _MessageChannel = new MessageChannel(), port1 = _MessageChannel.port1, port2 = _MessageChannel.port2; + _context.next = 1; + return call("connect", { + port: port1 + }, [port1]); + case 1: + portId = _context.sent; + PORT_MAP.set(port2, portId); + return _context.abrupt("return", port2); + case 2: + case "end": + return _context.stop(); + } + }, _callee); + })); + }, + disconnect: function disconnect(_ref3) { + var call = _ref3.call; + return /* @__PURE__ */ function() { + var _ref4 = _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime.mark(function _callee2(port) { + var portId; + return _regeneratorRuntime.wrap(function(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + portId = PORT_MAP.get(port); + if (!(portId === void 0)) { + _context2.next = 1; + break; + } + throw new Error("The given port is not connected."); + case 1: + _context2.next = 2; + return call("disconnect", { + portId + }); + case 2: + case "end": + return _context2.stop(); + } + }, _callee2); + })); + return function(_x) { + return _ref4.apply(this, arguments); + }; + }(); + }, + isSupported: function isSupported(_ref5) { + var call = _ref5.call; + return function() { + return call("isSupported"); + }; + } + }); + }; + function ownKeys(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; + } + function _objectSpread(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; + } + var ONGOING_REQUESTS = /* @__PURE__ */ new WeakMap(); + var createOrGetOngoingRequests = function createOrGetOngoingRequests2(sender) { + if (ONGOING_REQUESTS.has(sender)) { + return ONGOING_REQUESTS.get(sender); + } + var ongoingRequests = /* @__PURE__ */ new Map(); + ONGOING_REQUESTS.set(sender, ongoingRequests); + return ongoingRequests; + }; + var createBroker = function createBroker2(brokerImplementation) { + var fullBrokerImplementation = extendBrokerImplementation(brokerImplementation); + return function(sender) { + var ongoingRequests = createOrGetOngoingRequests(sender); + sender.addEventListener("message", function(_ref) { + var message = _ref.data; + var id = message.id; + if (id !== null && ongoingRequests.has(id)) { + var _ongoingRequests$get = ongoingRequests.get(id), reject = _ongoingRequests$get.reject, resolve2 = _ongoingRequests$get.resolve; + ongoingRequests["delete"](id); + if (message.error === void 0) { + resolve2(message.result); + } else { + reject(new Error(message.error.message)); + } + } + }); + if (isMessagePort(sender)) { + sender.start(); + } + var call = function call2(method) { + var params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null; + var transferables = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : []; + return new Promise(function(resolve2, reject) { + var id = fastUniqueNumbers.generateUniqueNumber(ongoingRequests); + ongoingRequests.set(id, { + reject, + resolve: resolve2 + }); + if (params === null) { + sender.postMessage({ + id, + method + }, transferables); + } else { + sender.postMessage({ + id, + method, + params + }, transferables); + } + }); + }; + var notify = function notify2(method, params) { + var transferables = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : []; + sender.postMessage({ + id: null, + method, + params + }, transferables); + }; + var functions = {}; + for (var _i = 0, _Object$entries = Object.entries(fullBrokerImplementation); _i < _Object$entries.length; _i++) { + var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), key = _Object$entries$_i[0], handler = _Object$entries$_i[1]; + functions = _objectSpread(_objectSpread({}, functions), {}, _defineProperty({}, key, handler({ + call, + notify + }))); + } + return _objectSpread({}, functions); + }; + }; + exports9.createBroker = createBroker; + }); + } + }); + + // node_modules/worker-timers-broker/build/es5/bundle.js + var require_bundle3 = __commonJS({ + "node_modules/worker-timers-broker/build/es5/bundle.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + (function(global2, factory) { + typeof exports8 === "object" && typeof module !== "undefined" ? factory(exports8, require_typeof(), require_bundle2(), require_bundle()) : typeof define === "function" && define.amd ? define(["exports", "@babel/runtime/helpers/typeof", "broker-factory", "fast-unique-numbers"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.workerTimersBroker = {}, global2._typeof, global2.brokerFactory, global2.fastUniqueNumbers)); + })(exports8, function(exports9, _typeof, brokerFactory, fastUniqueNumbers) { + "use strict"; + var scheduledIntervalsState = /* @__PURE__ */ new Map([[0, null]]); + var scheduledTimeoutsState = /* @__PURE__ */ new Map([[0, null]]); + var wrap = brokerFactory.createBroker({ + clearInterval: function clearInterval2(_ref) { + var call = _ref.call; + return function(timerId) { + if (_typeof(scheduledIntervalsState.get(timerId)) === "symbol") { + scheduledIntervalsState.set(timerId, null); + call("clear", { + timerId, + timerType: "interval" + }).then(function() { + scheduledIntervalsState["delete"](timerId); + }); + } + }; + }, + clearTimeout: function clearTimeout2(_ref2) { + var call = _ref2.call; + return function(timerId) { + if (_typeof(scheduledTimeoutsState.get(timerId)) === "symbol") { + scheduledTimeoutsState.set(timerId, null); + call("clear", { + timerId, + timerType: "timeout" + }).then(function() { + scheduledTimeoutsState["delete"](timerId); + }); + } + }; + }, + setInterval: function setInterval2(_ref3) { + var call = _ref3.call; + return function(func) { + var delay = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + args[_key - 2] = arguments[_key]; + } + var symbol = Symbol(); + var timerId = fastUniqueNumbers.generateUniqueNumber(scheduledIntervalsState); + scheduledIntervalsState.set(timerId, symbol); + var _schedule = function schedule() { + return call("set", { + delay, + now: performance.timeOrigin + performance.now(), + timerId, + timerType: "interval" + }).then(function() { + var state = scheduledIntervalsState.get(timerId); + if (state === void 0) { + throw new Error("The timer is in an undefined state."); + } + if (state === symbol) { + func.apply(void 0, args); + if (scheduledIntervalsState.get(timerId) === symbol) { + _schedule(); + } + } + }); + }; + _schedule(); + return timerId; + }; + }, + setTimeout: function setTimeout2(_ref4) { + var call = _ref4.call; + return function(func) { + var delay = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + var symbol = Symbol(); + var timerId = fastUniqueNumbers.generateUniqueNumber(scheduledTimeoutsState); + scheduledTimeoutsState.set(timerId, symbol); + call("set", { + delay, + now: performance.timeOrigin + performance.now(), + timerId, + timerType: "timeout" + }).then(function() { + var state = scheduledTimeoutsState.get(timerId); + if (state === void 0) { + throw new Error("The timer is in an undefined state."); + } + if (state === symbol) { + scheduledTimeoutsState["delete"](timerId); + func.apply(void 0, args); + } + }); + return timerId; + }; + } + }); + var load = function load2(url) { + var worker = new Worker(url); + return wrap(worker); + }; + exports9.load = load; + exports9.wrap = wrap; + }); + } + }); + + // node_modules/worker-timers/build/es5/bundle.js + var require_bundle4 = __commonJS({ + "node_modules/worker-timers/build/es5/bundle.js"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + (function(global2, factory) { + typeof exports8 === "object" && typeof module !== "undefined" ? factory(exports8, require_bundle3()) : typeof define === "function" && define.amd ? define(["exports", "worker-timers-broker"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.workerTimers = {}, global2.workerTimersBroker)); + })(exports8, function(exports9, workerTimersBroker) { + "use strict"; + var createLoadOrReturnBroker = function createLoadOrReturnBroker2(loadBroker, worker2) { + var broker = null; + return function() { + if (broker !== null) { + return broker; + } + var blob = new Blob([worker2], { + type: "application/javascript; charset=utf-8" + }); + var url = URL.createObjectURL(blob); + broker = loadBroker(url); + setTimeout(function() { + return URL.revokeObjectURL(url); + }); + return broker; + }; + }; + var worker = `(()=>{var e={45:(e,t,r)=>{var n=r(738).default;e.exports=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},79:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var n=r(79);e.exports=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports},156:e=>{e.exports=function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,u,a,i=[],s=!0,c=!1;try{if(u=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=u.call(r)).done)&&(i.push(n.value),i.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return i}},e.exports.__esModule=!0,e.exports.default=e.exports},172:e=>{e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports},293:e=>{function t(e,t,r,n,o,u,a){try{var i=e[u](a),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,o)}e.exports=function(e){return function(){var r=this,n=arguments;return new Promise((function(o,u){var a=e.apply(r,n);function i(e){t(a,o,u,i,s,"next",e)}function s(e){t(a,o,u,i,s,"throw",e)}i(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},373:e=>{e.exports=function(e){var t=Object(e),r=[];for(var n in t)r.unshift(n);return function e(){for(;r.length;)if((n=r.pop())in t)return e.value=n,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports},389:function(e,t){!function(e){"use strict";var t=function(e){return function(t){var r=e(t);return t.add(r),r}},r=function(e){return function(t,r){return e.set(t,r),r}},n=void 0===Number.MAX_SAFE_INTEGER?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,u=2*o,a=function(e,t){return function(r){var a=t.get(r),i=void 0===a?r.size:an)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;r.has(i);)i=Math.floor(Math.random()*n);return e(r,i)}},i=new WeakMap,s=r(i),c=a(s,i),f=t(c);e.addUniqueNumber=f,e.generateUniqueNumber=c}(t)},472:function(e,t,r){!function(e,t,r,n){"use strict";var o=function(e,t){return function(r){var o=t.get(r);if(void 0===o)return Promise.resolve(!1);var u=n(o,2),a=u[0],i=u[1];return e(a),t.delete(r),i(!1),Promise.resolve(!0)}},u=function(e,t){var r=function(n,o,u,a){var i=n-e.now();i>0?o.set(a,[t(r,i,n,o,u,a),u]):(o.delete(a),u(!0))};return r},a=function(e,t,r,n){return function(o,u,a){var i=o+u-t.timeOrigin,s=i-t.now();return new Promise((function(t){e.set(a,[r(n,s,i,e,t,a),t])}))}},i=new Map,s=o(globalThis.clearTimeout,i),c=new Map,f=o(globalThis.clearTimeout,c),l=u(performance,globalThis.setTimeout),p=a(i,performance,globalThis.setTimeout,l),d=a(c,performance,globalThis.setTimeout,l);r.createWorker(self,{clear:function(){var r=e(t.mark((function e(r){var n,o,u;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.timerId,o=r.timerType,e.next=1,"interval"===o?s(n):f(n);case 1:return u=e.sent,e.abrupt("return",{result:u});case 2:case"end":return e.stop()}}),e)})));function n(e){return r.apply(this,arguments)}return n}(),set:function(){var r=e(t.mark((function e(r){var n,o,u,a,i;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.delay,o=r.now,u=r.timerId,a=r.timerType,e.next=1,("interval"===a?p:d)(n,o,u);case 1:return i=e.sent,e.abrupt("return",{result:i});case 2:case"end":return e.stop()}}),e)})));function n(e){return r.apply(this,arguments)}return n}()})}(r(293),r(756),r(623),r(715))},546:e=>{function t(r,n,o,u){var a=Object.defineProperty;try{a({},"",{})}catch(r){a=0}e.exports=t=function(e,r,n,o){if(r)a?a(e,r,{value:n,enumerable:!o,configurable:!o,writable:!o}):e[r]=n;else{var u=function(r,n){t(e,r,(function(e){return this._invoke(r,n,e)}))};u("next",0),u("throw",1),u("return",2)}},e.exports.__esModule=!0,e.exports.default=e.exports,t(r,n,o,u)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},579:(e,t,r)=>{var n=r(738).default;e.exports=function(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(n(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports},623:function(e,t,r){!function(e,t,r,n,o){"use strict";var u={INTERNAL_ERROR:-32603,INVALID_PARAMS:-32602,METHOD_NOT_FOUND:-32601},a=function(e,t){return Object.assign(new Error(e),{status:t})},i=function(e){return a('The requested method called "'.concat(e,'" is not supported.'),u.METHOD_NOT_FOUND)},s=function(e){return a('The handler of the method called "'.concat(e,'" returned no required result.'),u.INTERNAL_ERROR)},c=function(e){return a('The handler of the method called "'.concat(e,'" returned an unexpected result.'),u.INTERNAL_ERROR)},f=function(e){return a('The specified parameter called "portId" with the given value "'.concat(e,'" does not identify a port connected to this worker.'),u.INVALID_PARAMS)},l=function(e,n){return function(){var o=t(r.mark((function t(o){var u,a,f,l,p,d,v,x,y,b,h,m,_,g,w;return r.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(u=o.data,a=u.id,f=u.method,l=u.params,p=n[f],t.prev=1,void 0!==p){t.next=2;break}throw i(f);case 2:if(void 0!==(d=void 0===l?p():p(l))){t.next=3;break}throw s(f);case 3:if(!(d instanceof Promise)){t.next=5;break}return t.next=4,d;case 4:g=t.sent,t.next=6;break;case 5:g=d;case 6:if(v=g,null!==a){t.next=8;break}if(void 0===v.result){t.next=7;break}throw c(f);case 7:t.next=10;break;case 8:if(void 0!==v.result){t.next=9;break}throw c(f);case 9:x=v.result,y=v.transferables,b=void 0===y?[]:y,e.postMessage({id:a,result:x},b);case 10:t.next=12;break;case 11:t.prev=11,w=t.catch(1),h=w.message,m=w.status,_=void 0===m?-32603:m,e.postMessage({error:{code:_,message:h},id:a});case 12:case"end":return t.stop()}}),t,null,[[1,11]])})));return function(e){return o.apply(this,arguments)}}()},p=function(){return new Promise((function(e){var t=new ArrayBuffer(0),r=new MessageChannel,n=r.port1,o=r.port2;n.onmessage=function(t){var r=t.data;return e(null!==r)},o.postMessage(t,[t])}))};function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function v(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:function(){return!0}),n=l(e,r);return e.addEventListener("message",n),function(){return e.removeEventListener("message",n)}};e.createWorker=b,e.isSupported=p}(t,r(293),r(756),r(693),r(389))},633:(e,t,r)=>{var n=r(172),o=r(993),u=r(869),a=r(887),i=r(791),s=r(373),c=r(579);function f(){"use strict";var t=o(),r=t.m(f),l=(Object.getPrototypeOf?Object.getPrototypeOf(r):r.__proto__).constructor;function p(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===l||"GeneratorFunction"===(t.displayName||t.name))}var d={throw:1,return:2,break:3,continue:3};function v(e){var t,r;return function(n){t||(t={stop:function(){return r(n.a,2)},catch:function(){return n.v},abrupt:function(e,t){return r(n.a,d[e],t)},delegateYield:function(e,o,u){return t.resultName=o,r(n.d,c(e),u)},finish:function(e){return r(n.f,e)}},r=function(e,r,o){n.p=t.prev,n.n=t.next;try{return e(r,o)}finally{t.next=n.n}}),t.resultName&&(t[t.resultName]=n.v,t.resultName=void 0),t.sent=n.v,t.next=n.n;try{return e.call(this,t)}finally{n.p=t.prev,n.n=t.next}}}return(e.exports=f=function(){return{wrap:function(e,r,n,o){return t.w(v(e),r,n,o&&o.reverse())},isGeneratorFunction:p,mark:t.m,awrap:function(e,t){return new n(e,t)},AsyncIterator:i,async:function(e,t,r,n,o){return(p(t)?a:u)(v(e),t,r,n,o)},keys:s,values:c}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=f,e.exports.__esModule=!0,e.exports.default=e.exports},693:(e,t,r)=>{var n=r(736);e.exports=function(e,t,r){return(t=n(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.__esModule=!0,e.exports.default=e.exports},715:(e,t,r)=>{var n=r(987),o=r(156),u=r(122),a=r(752);e.exports=function(e,t){return n(e)||o(e,t)||u(e,t)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},736:(e,t,r)=>{var n=r(738).default,o=r(45);e.exports=function(e){var t=o(e,"string");return"symbol"==n(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports},738:e=>{function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},752:e=>{e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports},756:(e,t,r)=>{var n=r(633)();e.exports=n;try{regeneratorRuntime=n}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}},791:(e,t,r)=>{var n=r(172),o=r(546);e.exports=function e(t,r){function u(e,o,a,i){try{var s=t[e](o),c=s.value;return c instanceof n?r.resolve(c.v).then((function(e){u("next",e,a,i)}),(function(e){u("throw",e,a,i)})):r.resolve(c).then((function(e){s.value=e,a(s)}),(function(e){return u("throw",e,a,i)}))}catch(e){i(e)}}var a;this.next||(o(e.prototype),o(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",(function(){return this}))),o(this,"_invoke",(function(e,t,n){function o(){return new r((function(t,r){u(e,n,t,r)}))}return a=a?a.then(o,o):o()}),!0)},e.exports.__esModule=!0,e.exports.default=e.exports},869:(e,t,r)=>{var n=r(887);e.exports=function(e,t,r,o,u){var a=n(e,t,r,o,u);return a.next().then((function(e){return e.done?e.value:a.next()}))},e.exports.__esModule=!0,e.exports.default=e.exports},887:(e,t,r)=>{var n=r(993),o=r(791);e.exports=function(e,t,r,u,a){return new o(n().w(e,t,r,u),a||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports},987:e=>{e.exports=function(e){if(Array.isArray(e))return e},e.exports.__esModule=!0,e.exports.default=e.exports},993:(e,t,r)=>{var n=r(546);function o(){var t,r,u="function"==typeof Symbol?Symbol:{},a=u.iterator||"@@iterator",i=u.toStringTag||"@@toStringTag";function s(e,o,u,a){var i=o&&o.prototype instanceof f?o:f,s=Object.create(i.prototype);return n(s,"_invoke",function(e,n,o){var u,a,i,s=0,f=o||[],l=!1,p={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,r){return u=e,a=0,i=t,p.n=r,c}};function d(e,n){for(a=e,i=n,r=0;!l&&s&&!o&&r3?(o=v===n)&&(i=u[(a=u[4])?5:(a=3,3)],u[4]=u[5]=t):u[0]<=d&&((o=e<2&&dn||n>v)&&(u[4]=e,u[5]=n,p.n=v,a=0))}if(o||e>1)return c;throw l=!0,n}return function(o,f,v){if(s>1)throw TypeError("Generator is already running");for(l&&1===f&&d(f,v),a=f,i=v;(r=a<2?t:i)||!l;){u||(a?a<3?(a>1&&(p.n=-1),d(a,i)):p.n=i:p.v=i);try{if(s=2,u){if(a||(o="next"),r=u[o]){if(!(r=r.call(u,i)))throw TypeError("iterator result is not an object");if(!r.done)return r;i=r.value,a<2&&(a=0)}else 1===a&&(r=u.return)&&r.call(u),a<2&&(i=TypeError("The iterator does not provide a '"+o+"' method"),a=1);u=t}else if((r=(l=p.n<0)?i:e.call(n,p))!==c)break}catch(e){u=t,a=1,i=e}finally{s=1}}return{value:r,done:l}}}(e,u,a),!0),s}var c={};function f(){}function l(){}function p(){}r=Object.getPrototypeOf;var d=[][a]?r(r([][a]())):(n(r={},a,(function(){return this})),r),v=p.prototype=f.prototype=Object.create(d);function x(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,n(e,i,"GeneratorFunction")),e.prototype=Object.create(v),e}return l.prototype=p,n(v,"constructor",p),n(p,"constructor",l),l.displayName="GeneratorFunction",n(p,i,"GeneratorFunction"),n(v),n(v,i,"Generator"),n(v,a,(function(){return this})),n(v,"toString",(function(){return"[object Generator]"})),(e.exports=o=function(){return{w:s,m:x}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var u=t[n]={exports:{}};return e[n].call(u.exports,u,u.exports,r),u.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";r(472)})()})();`; + var loadOrReturnBroker = createLoadOrReturnBroker(workerTimersBroker.load, worker); + var clearInterval2 = function clearInterval3(timerId) { + return loadOrReturnBroker().clearInterval(timerId); + }; + var clearTimeout2 = function clearTimeout3(timerId) { + return loadOrReturnBroker().clearTimeout(timerId); + }; + var setInterval2 = function setInterval3() { + var _loadOrReturnBroker; + return (_loadOrReturnBroker = loadOrReturnBroker()).setInterval.apply(_loadOrReturnBroker, arguments); + }; + var setTimeout$1 = function setTimeout2() { + var _loadOrReturnBroker2; + return (_loadOrReturnBroker2 = loadOrReturnBroker()).setTimeout.apply(_loadOrReturnBroker2, arguments); + }; + exports9.clearInterval = clearInterval2; + exports9.clearTimeout = clearTimeout2; + exports9.setInterval = setInterval2; + exports9.setTimeout = setTimeout$1; + }); + } + }); + + // build/lib/is-browser.js + var require_is_browser = __commonJS({ + "build/lib/is-browser.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + exports8.isReactNativeBrowser = exports8.isWebWorker = void 0; + var isStandardBrowserEnv = () => { + if (typeof window !== "undefined") { + const electronRenderCheck = typeof navigator !== "undefined" && navigator.userAgent?.toLowerCase().indexOf(" electron/") > -1; + if (electronRenderCheck && process_exports?.versions) { + const electronMainCheck = Object.prototype.hasOwnProperty.call(process_exports.versions, "electron"); + return !electronMainCheck; + } + return typeof window.document !== "undefined"; + } + return false; + }; + var isWebWorkerEnv = () => Boolean(typeof self === "object" && self?.constructor?.name?.includes("WorkerGlobalScope") && typeof Deno === "undefined"); + var isReactNativeEnv = () => typeof navigator !== "undefined" && navigator.product === "ReactNative"; + var isBrowser = isStandardBrowserEnv() || isWebWorkerEnv() || isReactNativeEnv(); + exports8.isWebWorker = isWebWorkerEnv(); + exports8.isReactNativeBrowser = isReactNativeEnv(); + exports8.default = isBrowser; + } + }); + + // build/lib/get-timer.js + var require_get_timer = __commonJS({ + "build/lib/get-timer.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var __createBinding = exports8 && exports8.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports8 && exports8.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar = exports8 && exports8.__importStar || /* @__PURE__ */ function() { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function(o2) { + var ar = []; + for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + } + __setModuleDefault(result, mod); + return result; + }; + }(); + Object.defineProperty(exports8, "__esModule", { value: true }); + var worker_timers_1 = require_bundle4(); + var is_browser_1 = __importStar(require_is_browser()); + var workerTimer = { + set: worker_timers_1.setInterval, + clear: worker_timers_1.clearInterval + }; + var nativeTimer = { + set: (func, time) => setInterval(func, time), + clear: (timerId) => clearInterval(timerId) + }; + var getTimer = (variant) => { + switch (variant) { + case "native": { + return nativeTimer; + } + case "worker": { + return workerTimer; + } + case "auto": + default: { + return is_browser_1.default && !is_browser_1.isWebWorker && !is_browser_1.isReactNativeBrowser ? workerTimer : nativeTimer; + } + } + }; + exports8.default = getTimer; + } + }); + + // build/lib/KeepaliveManager.js + var require_KeepaliveManager = __commonJS({ + "build/lib/KeepaliveManager.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var __importDefault = exports8 && exports8.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports8, "__esModule", { value: true }); + var get_timer_1 = __importDefault(require_get_timer()); + var KeepaliveManager = class { + _keepalive; + timerId; + timer; + destroyed = false; + counter; + client; + _keepaliveTimeoutTimestamp; + _intervalEvery; + get keepaliveTimeoutTimestamp() { + return this._keepaliveTimeoutTimestamp; + } + get intervalEvery() { + return this._intervalEvery; + } + get keepalive() { + return this._keepalive; + } + constructor(client, variant) { + this.client = client; + this.timer = typeof variant === "object" && "set" in variant && "clear" in variant ? variant : (0, get_timer_1.default)(variant); + this.setKeepalive(client.options.keepalive); + } + clear() { + if (this.timerId) { + this.timer.clear(this.timerId); + this.timerId = null; + } + } + setKeepalive(value) { + value *= 1e3; + if (isNaN(value) || value <= 0 || value > 2147483647) { + throw new Error(`Keepalive value must be an integer between 0 and 2147483647. Provided value is ${value}`); + } + this._keepalive = value; + this.reschedule(); + this.client["log"](`KeepaliveManager: set keepalive to ${value}ms`); + } + destroy() { + this.clear(); + this.destroyed = true; + } + reschedule() { + if (this.destroyed) { + return; + } + this.clear(); + this.counter = 0; + const keepAliveTimeout = Math.ceil(this._keepalive * 1.5); + this._keepaliveTimeoutTimestamp = Date.now() + keepAliveTimeout; + this._intervalEvery = Math.ceil(this._keepalive / 2); + this.timerId = this.timer.set(() => { + if (this.destroyed) { + return; + } + this.counter += 1; + if (this.counter === 2) { + this.client.sendPing(); + } else if (this.counter > 2) { + this.client.onKeepaliveTimeout(); + } + }, this._intervalEvery); + } + }; + exports8.default = KeepaliveManager; + } + }); + + // build/lib/client.js + var require_client = __commonJS({ + "build/lib/client.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var __createBinding = exports8 && exports8.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports8 && exports8.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar = exports8 && exports8.__importStar || /* @__PURE__ */ function() { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function(o2) { + var ar = []; + for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + } + __setModuleDefault(result, mod); + return result; + }; + }(); + var __importDefault = exports8 && exports8.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports8, "__esModule", { value: true }); + var mqtt_packet_1 = __importDefault(require_mqtt()); + var readable_stream_1 = require_browser3(); + var default_1 = __importDefault(require_default()); + var debug_1 = __importDefault(require_browser4()); + var validations = __importStar(require_validations()); + var store_1 = __importDefault(require_store()); + var handlers_1 = __importDefault(require_handlers()); + var default_message_id_provider_1 = __importDefault(require_default_message_id_provider()); + var topic_alias_recv_1 = __importDefault(require_topic_alias_recv()); + var shared_1 = require_shared(); + var TypedEmitter_1 = require_TypedEmitter(); + var KeepaliveManager_1 = __importDefault(require_KeepaliveManager()); + var is_browser_1 = __importStar(require_is_browser()); + var setImmediate2 = globalThis.setImmediate || ((...args) => { + const callback = args.shift(); + (0, shared_1.nextTick)(() => { + callback(...args); + }); + }); + var defaultConnectOptions = { + keepalive: 60, + reschedulePings: true, + protocolId: "MQTT", + protocolVersion: 4, + reconnectPeriod: 1e3, + connectTimeout: 30 * 1e3, + clean: true, + resubscribe: true, + subscribeBatchSize: null, + writeCache: true, + timerVariant: "auto" + }; + var MqttClient = class _MqttClient extends TypedEmitter_1.TypedEventEmitter { + static VERSION = shared_1.MQTTJS_VERSION; + connected; + disconnecting; + disconnected; + reconnecting; + incomingStore; + outgoingStore; + options; + queueQoSZero; + _reconnectCount; + log; + messageIdProvider; + outgoing; + messageIdToTopic; + noop; + keepaliveManager; + stream; + queue; + streamBuilder; + _resubscribeTopics; + connackTimer; + reconnectTimer; + _storeProcessing; + _packetIdsDuringStoreProcessing; + _storeProcessingQueue; + _firstConnection; + topicAliasRecv; + topicAliasSend; + _deferredReconnect; + connackPacket; + static defaultId() { + return `mqttjs_${Math.random().toString(16).substr(2, 8)}`; + } + constructor(streamBuilder, options) { + super(); + this.options = options || {}; + for (const k in defaultConnectOptions) { + if (typeof this.options[k] === "undefined") { + this.options[k] = defaultConnectOptions[k]; + } else { + this.options[k] = options[k]; + } + } + this.log = this.options.log || (0, debug_1.default)("mqttjs:client"); + this.noop = this._noop.bind(this); + this.log("MqttClient :: version:", _MqttClient.VERSION); + if (is_browser_1.isWebWorker) { + this.log("MqttClient :: environment", "webworker"); + } else { + this.log("MqttClient :: environment", is_browser_1.default ? "browser" : "node"); + } + this.log("MqttClient :: options.protocol", options.protocol); + this.log("MqttClient :: options.protocolVersion", options.protocolVersion); + this.log("MqttClient :: options.username", options.username); + this.log("MqttClient :: options.keepalive", options.keepalive); + this.log("MqttClient :: options.reconnectPeriod", options.reconnectPeriod); + this.log("MqttClient :: options.rejectUnauthorized", options.rejectUnauthorized); + this.log("MqttClient :: options.properties.topicAliasMaximum", options.properties ? options.properties.topicAliasMaximum : void 0); + this.options.clientId = typeof options.clientId === "string" ? options.clientId : _MqttClient.defaultId(); + this.log("MqttClient :: clientId", this.options.clientId); + this.options.customHandleAcks = options.protocolVersion === 5 && options.customHandleAcks ? options.customHandleAcks : (...args) => { + args[3](null, 0); + }; + if (!this.options.writeCache) { + mqtt_packet_1.default.writeToStream.cacheNumbers = false; + } + this.streamBuilder = streamBuilder; + this.messageIdProvider = typeof this.options.messageIdProvider === "undefined" ? new default_message_id_provider_1.default() : this.options.messageIdProvider; + this.outgoingStore = options.outgoingStore || new store_1.default(); + this.incomingStore = options.incomingStore || new store_1.default(); + this.queueQoSZero = options.queueQoSZero === void 0 ? true : options.queueQoSZero; + this._resubscribeTopics = {}; + this.messageIdToTopic = {}; + this.keepaliveManager = null; + this.connected = false; + this.disconnecting = false; + this.reconnecting = false; + this.queue = []; + this.connackTimer = null; + this.reconnectTimer = null; + this._storeProcessing = false; + this._packetIdsDuringStoreProcessing = {}; + this._storeProcessingQueue = []; + this.outgoing = {}; + this._firstConnection = true; + if (options.properties && options.properties.topicAliasMaximum > 0) { + if (options.properties.topicAliasMaximum > 65535) { + this.log("MqttClient :: options.properties.topicAliasMaximum is out of range"); + } else { + this.topicAliasRecv = new topic_alias_recv_1.default(options.properties.topicAliasMaximum); + } + } + this.on("connect", () => { + const { queue: queue3 } = this; + const deliver = () => { + const entry = queue3.shift(); + this.log("deliver :: entry %o", entry); + let packet = null; + if (!entry) { + this._resubscribe(); + return; + } + packet = entry.packet; + this.log("deliver :: call _sendPacket for %o", packet); + let send = true; + if (packet.messageId && packet.messageId !== 0) { + if (!this.messageIdProvider.register(packet.messageId)) { + send = false; + } + } + if (send) { + this._sendPacket(packet, (err) => { + if (entry.cb) { + entry.cb(err); + } + deliver(); + }); + } else { + this.log("messageId: %d has already used. The message is skipped and removed.", packet.messageId); + deliver(); + } + }; + this.log("connect :: sending queued packets"); + deliver(); + }); + this.on("close", () => { + this.log("close :: connected set to `false`"); + this.connected = false; + this.log("close :: clearing connackTimer"); + clearTimeout(this.connackTimer); + this._destroyKeepaliveManager(); + if (this.topicAliasRecv) { + this.topicAliasRecv.clear(); + } + this.log("close :: calling _setupReconnect"); + this._setupReconnect(); + }); + if (!this.options.manualConnect) { + this.log("MqttClient :: setting up stream"); + this.connect(); + } + } + handleAuth(packet, callback) { + callback(); + } + handleMessage(packet, callback) { + callback(); + } + _nextId() { + return this.messageIdProvider.allocate(); + } + getLastMessageId() { + return this.messageIdProvider.getLastAllocated(); + } + connect() { + const writable = new readable_stream_1.Writable(); + const parser = mqtt_packet_1.default.parser(this.options); + let completeParse = null; + const packets = []; + this.log("connect :: calling method to clear reconnect"); + this._clearReconnect(); + if (this.disconnected && !this.reconnecting) { + this.incomingStore = this.options.incomingStore || new store_1.default(); + this.outgoingStore = this.options.outgoingStore || new store_1.default(); + this.disconnecting = false; + this.disconnected = false; + } + this.log("connect :: using streamBuilder provided to client to create stream"); + this.stream = this.streamBuilder(this); + parser.on("packet", (packet) => { + this.log("parser :: on packet push to packets array."); + packets.push(packet); + }); + const work = () => { + this.log("work :: getting next packet in queue"); + const packet = packets.shift(); + if (packet) { + this.log("work :: packet pulled from queue"); + (0, handlers_1.default)(this, packet, nextTickWork); + } else { + this.log("work :: no packets in queue"); + const done = completeParse; + completeParse = null; + this.log("work :: done flag is %s", !!done); + if (done) + done(); + } + }; + const nextTickWork = () => { + if (packets.length) { + (0, shared_1.nextTick)(work); + } else { + const done = completeParse; + completeParse = null; + done(); + } + }; + writable._write = (buf, enc, done) => { + completeParse = done; + this.log("writable stream :: parsing buffer"); + parser.parse(buf); + work(); + }; + const streamErrorHandler = (error) => { + this.log("streamErrorHandler :: error", error.message); + if (error.code) { + this.log("streamErrorHandler :: emitting error"); + this.emit("error", error); + } else { + this.noop(error); + } + }; + this.log("connect :: pipe stream to writable stream"); + this.stream.pipe(writable); + this.stream.on("error", streamErrorHandler); + this.stream.on("close", () => { + this.log("(%s)stream :: on close", this.options.clientId); + this._flushVolatile(); + this.log("stream: emit close to MqttClient"); + this.emit("close"); + }); + this.log("connect: sending packet `connect`"); + const connectPacket = { + cmd: "connect", + protocolId: this.options.protocolId, + protocolVersion: this.options.protocolVersion, + clean: this.options.clean, + clientId: this.options.clientId, + keepalive: this.options.keepalive, + username: this.options.username, + password: this.options.password, + properties: this.options.properties + }; + if (this.options.will) { + connectPacket.will = { + ...this.options.will, + payload: this.options.will?.payload + }; + } + if (this.topicAliasRecv) { + if (!connectPacket.properties) { + connectPacket.properties = {}; + } + if (this.topicAliasRecv) { + connectPacket.properties.topicAliasMaximum = this.topicAliasRecv.max; + } + } + this._writePacket(connectPacket); + parser.on("error", this.emit.bind(this, "error")); + if (this.options.properties) { + if (!this.options.properties.authenticationMethod && this.options.properties.authenticationData) { + this.end(() => this.emit("error", new Error("Packet has no Authentication Method"))); + return this; + } + if (this.options.properties.authenticationMethod && this.options.authPacket && typeof this.options.authPacket === "object") { + const authPacket = { + cmd: "auth", + reasonCode: 0, + ...this.options.authPacket + }; + this._writePacket(authPacket); + } + } + this.stream.setMaxListeners(1e3); + clearTimeout(this.connackTimer); + this.connackTimer = setTimeout(() => { + this.log("!!connectTimeout hit!! Calling _cleanUp with force `true`"); + this.emit("error", new Error("connack timeout")); + this._cleanUp(true); + }, this.options.connectTimeout); + return this; + } + publish(topic, message, opts, callback) { + this.log("publish :: message `%s` to topic `%s`", message, topic); + const { options } = this; + if (typeof opts === "function") { + callback = opts; + opts = null; + } + opts = opts || {}; + const defaultOpts = { + qos: 0, + retain: false, + dup: false + }; + opts = { ...defaultOpts, ...opts }; + const { qos, retain, dup, properties, cbStorePut } = opts; + if (this._checkDisconnecting(callback)) { + return this; + } + const publishProc = () => { + let messageId = 0; + if (qos === 1 || qos === 2) { + messageId = this._nextId(); + if (messageId === null) { + this.log("No messageId left"); + return false; + } + } + const packet = { + cmd: "publish", + topic, + payload: message, + qos, + retain, + messageId, + dup + }; + if (options.protocolVersion === 5) { + packet.properties = properties; + } + this.log("publish :: qos", qos); + switch (qos) { + case 1: + case 2: + this.outgoing[packet.messageId] = { + volatile: false, + cb: callback || this.noop + }; + this.log("MqttClient:publish: packet cmd: %s", packet.cmd); + this._sendPacket(packet, void 0, cbStorePut); + break; + default: + this.log("MqttClient:publish: packet cmd: %s", packet.cmd); + this._sendPacket(packet, callback, cbStorePut); + break; + } + return true; + }; + if (this._storeProcessing || this._storeProcessingQueue.length > 0 || !publishProc()) { + this._storeProcessingQueue.push({ + invoke: publishProc, + cbStorePut: opts.cbStorePut, + callback + }); + } + return this; + } + publishAsync(topic, message, opts) { + return new Promise((resolve2, reject) => { + this.publish(topic, message, opts, (err, packet) => { + if (err) { + reject(err); + } else { + resolve2(packet); + } + }); + }); + } + subscribe(topicObject, opts, callback) { + const version4 = this.options.protocolVersion; + if (typeof opts === "function") { + callback = opts; + } + callback = callback || this.noop; + let resubscribe = false; + let topicsList = []; + if (typeof topicObject === "string") { + topicObject = [topicObject]; + topicsList = topicObject; + } else if (Array.isArray(topicObject)) { + topicsList = topicObject; + } else if (typeof topicObject === "object") { + resubscribe = topicObject.resubscribe; + delete topicObject.resubscribe; + topicsList = Object.keys(topicObject); + } + const invalidTopic = validations.validateTopics(topicsList); + if (invalidTopic !== null) { + setImmediate2(callback, new Error(`Invalid topic ${invalidTopic}`)); + return this; + } + if (this._checkDisconnecting(callback)) { + this.log("subscribe: discconecting true"); + return this; + } + const defaultOpts = { + qos: 0 + }; + if (version4 === 5) { + defaultOpts.nl = false; + defaultOpts.rap = false; + defaultOpts.rh = 0; + } + opts = { ...defaultOpts, ...opts }; + const { properties } = opts; + const subs = []; + const parseSub = (topic, subOptions) => { + subOptions = subOptions || opts; + if (!Object.prototype.hasOwnProperty.call(this._resubscribeTopics, topic) || this._resubscribeTopics[topic].qos < subOptions.qos || resubscribe) { + const currentOpts = { + topic, + qos: subOptions.qos + }; + if (version4 === 5) { + currentOpts.nl = subOptions.nl; + currentOpts.rap = subOptions.rap; + currentOpts.rh = subOptions.rh; + currentOpts.properties = properties; + } + this.log("subscribe: pushing topic `%s` and qos `%s` to subs list", currentOpts.topic, currentOpts.qos); + subs.push(currentOpts); + } + }; + if (Array.isArray(topicObject)) { + topicObject.forEach((topic) => { + this.log("subscribe: array topic %s", topic); + parseSub(topic); + }); + } else { + Object.keys(topicObject).forEach((topic) => { + this.log("subscribe: object topic %s, %o", topic, topicObject[topic]); + parseSub(topic, topicObject[topic]); + }); + } + if (!subs.length) { + callback(null, []); + return this; + } + const subscribeChunkedSubs = (chunkedSubs, messageId) => { + const packet = { + cmd: "subscribe", + subscriptions: chunkedSubs, + messageId + }; + if (properties) { + packet.properties = properties; + } + if (this.options.resubscribe) { + this.log("subscribe :: resubscribe true"); + const topics = []; + chunkedSubs.forEach((sub) => { + if (this.options.reconnectPeriod > 0) { + const topic = { qos: sub.qos }; + if (version4 === 5) { + topic.nl = sub.nl || false; + topic.rap = sub.rap || false; + topic.rh = sub.rh || 0; + topic.properties = sub.properties; + } + this._resubscribeTopics[sub.topic] = topic; + topics.push(sub.topic); + } + }); + this.messageIdToTopic[packet.messageId] = topics; + } + const promise = new Promise((resolve2, reject) => { + this.outgoing[packet.messageId] = { + volatile: true, + cb(err, packet2) { + if (!err) { + const { granted } = packet2; + for (let grantedI = 0; grantedI < granted.length; grantedI += 1) { + chunkedSubs[grantedI].qos = granted[grantedI]; + } + } + if (!err) { + resolve2(packet2); + } else { + reject(new shared_1.ErrorWithSubackPacket(err.message, packet2)); + } + } + }; + }); + this.log("subscribe :: call _sendPacket"); + this._sendPacket(packet); + return promise; + }; + const subscribeProc = () => { + const batchSize = this.options.subscribeBatchSize ?? subs.length; + const subscribePromises = []; + for (let i = 0; i < subs.length; i += batchSize) { + const chunkedSubs = subs.slice(i, i + batchSize); + const messageId = this._nextId(); + if (messageId === null) { + this.log("No messageId left"); + return false; + } + subscribePromises.push(subscribeChunkedSubs(chunkedSubs, messageId)); + } + Promise.all(subscribePromises).then((packets) => { + callback(null, subs, packets.at(-1)); + }).catch((err) => { + callback(err, subs, err.packet); + }); + return true; + }; + if (this._storeProcessing || this._storeProcessingQueue.length > 0 || !subscribeProc()) { + this._storeProcessingQueue.push({ + invoke: subscribeProc, + callback + }); + } + return this; + } + subscribeAsync(topicObject, opts) { + return new Promise((resolve2, reject) => { + this.subscribe(topicObject, opts, (err, granted) => { + if (err) { + reject(err); + } else { + resolve2(granted); + } + }); + }); + } + unsubscribe(topic, opts, callback) { + if (typeof topic === "string") { + topic = [topic]; + } + if (typeof opts === "function") { + callback = opts; + } + callback = callback || this.noop; + const invalidTopic = validations.validateTopics(topic); + if (invalidTopic !== null) { + setImmediate2(callback, new Error(`Invalid topic ${invalidTopic}`)); + return this; + } + if (this._checkDisconnecting(callback)) { + return this; + } + const unsubscribeProc = () => { + const messageId = this._nextId(); + if (messageId === null) { + this.log("No messageId left"); + return false; + } + const packet = { + cmd: "unsubscribe", + messageId, + unsubscriptions: [] + }; + if (typeof topic === "string") { + packet.unsubscriptions = [topic]; + } else if (Array.isArray(topic)) { + packet.unsubscriptions = topic; + } + if (this.options.resubscribe) { + packet.unsubscriptions.forEach((topic2) => { + delete this._resubscribeTopics[topic2]; + }); + } + if (typeof opts === "object" && opts.properties) { + packet.properties = opts.properties; + } + this.outgoing[packet.messageId] = { + volatile: true, + cb: callback + }; + this.log("unsubscribe: call _sendPacket"); + this._sendPacket(packet); + return true; + }; + if (this._storeProcessing || this._storeProcessingQueue.length > 0 || !unsubscribeProc()) { + this._storeProcessingQueue.push({ + invoke: unsubscribeProc, + callback + }); + } + return this; + } + unsubscribeAsync(topic, opts) { + return new Promise((resolve2, reject) => { + this.unsubscribe(topic, opts, (err, packet) => { + if (err) { + reject(err); + } else { + resolve2(packet); + } + }); + }); + } + end(force, opts, cb) { + this.log("end :: (%s)", this.options.clientId); + if (force == null || typeof force !== "boolean") { + cb = cb || opts; + opts = force; + force = false; + } + if (typeof opts !== "object") { + cb = cb || opts; + opts = null; + } + this.log("end :: cb? %s", !!cb); + if (!cb || typeof cb !== "function") { + cb = this.noop; + } + const closeStores = () => { + this.log("end :: closeStores: closing incoming and outgoing stores"); + this.disconnected = true; + this.incomingStore.close((e1) => { + this.outgoingStore.close((e2) => { + this.log("end :: closeStores: emitting end"); + this.emit("end"); + if (cb) { + const err = e1 || e2; + this.log("end :: closeStores: invoking callback with args"); + cb(err); + } + }); + }); + if (this._deferredReconnect) { + this._deferredReconnect(); + } else if (this.options.reconnectPeriod === 0 || this.options.manualConnect) { + this.disconnecting = false; + } + }; + const finish = () => { + this.log("end :: (%s) :: finish :: calling _cleanUp with force %s", this.options.clientId, force); + this._cleanUp(force, () => { + this.log("end :: finish :: calling process.nextTick on closeStores"); + (0, shared_1.nextTick)(closeStores); + }, opts); + }; + if (this.disconnecting) { + cb(); + return this; + } + this._clearReconnect(); + this.disconnecting = true; + if (!force && Object.keys(this.outgoing).length > 0) { + this.log("end :: (%s) :: calling finish in 10ms once outgoing is empty", this.options.clientId); + this.once("outgoingEmpty", setTimeout.bind(null, finish, 10)); + } else { + this.log("end :: (%s) :: immediately calling finish", this.options.clientId); + finish(); + } + return this; + } + endAsync(force, opts) { + return new Promise((resolve2, reject) => { + this.end(force, opts, (err) => { + if (err) { + reject(err); + } else { + resolve2(); + } + }); + }); + } + removeOutgoingMessage(messageId) { + if (this.outgoing[messageId]) { + const { cb } = this.outgoing[messageId]; + this._removeOutgoingAndStoreMessage(messageId, () => { + cb(new Error("Message removed")); + }); + } + return this; + } + reconnect(opts) { + this.log("client reconnect"); + const f = () => { + if (opts) { + this.options.incomingStore = opts.incomingStore; + this.options.outgoingStore = opts.outgoingStore; + } else { + this.options.incomingStore = null; + this.options.outgoingStore = null; + } + this.incomingStore = this.options.incomingStore || new store_1.default(); + this.outgoingStore = this.options.outgoingStore || new store_1.default(); + this.disconnecting = false; + this.disconnected = false; + this._deferredReconnect = null; + this._reconnect(); + }; + if (this.disconnecting && !this.disconnected) { + this._deferredReconnect = f; + } else { + f(); + } + return this; + } + _flushVolatile() { + if (this.outgoing) { + this.log("_flushVolatile :: deleting volatile messages from the queue and setting their callbacks as error function"); + Object.keys(this.outgoing).forEach((messageId) => { + if (this.outgoing[messageId].volatile && typeof this.outgoing[messageId].cb === "function") { + this.outgoing[messageId].cb(new Error("Connection closed")); + delete this.outgoing[messageId]; + } + }); + } + } + _flush() { + if (this.outgoing) { + this.log("_flush: queue exists? %b", !!this.outgoing); + Object.keys(this.outgoing).forEach((messageId) => { + if (typeof this.outgoing[messageId].cb === "function") { + this.outgoing[messageId].cb(new Error("Connection closed")); + delete this.outgoing[messageId]; + } + }); + } + } + _removeTopicAliasAndRecoverTopicName(packet) { + let alias; + if (packet.properties) { + alias = packet.properties.topicAlias; + } + let topic = packet.topic.toString(); + this.log("_removeTopicAliasAndRecoverTopicName :: alias %d, topic %o", alias, topic); + if (topic.length === 0) { + if (typeof alias === "undefined") { + return new Error("Unregistered Topic Alias"); + } + topic = this.topicAliasSend.getTopicByAlias(alias); + if (typeof topic === "undefined") { + return new Error("Unregistered Topic Alias"); + } + packet.topic = topic; + } + if (alias) { + delete packet.properties.topicAlias; + } + } + _checkDisconnecting(callback) { + if (this.disconnecting) { + if (callback && callback !== this.noop) { + callback(new Error("client disconnecting")); + } else { + this.emit("error", new Error("client disconnecting")); + } + } + return this.disconnecting; + } + _reconnect() { + this.log("_reconnect: emitting reconnect to client"); + this.emit("reconnect"); + if (this.connected) { + this.end(() => { + this.connect(); + }); + this.log("client already connected. disconnecting first."); + } else { + this.log("_reconnect: calling connect"); + this.connect(); + } + } + _setupReconnect() { + if (!this.disconnecting && !this.reconnectTimer && this.options.reconnectPeriod > 0) { + if (!this.reconnecting) { + this.log("_setupReconnect :: emit `offline` state"); + this.emit("offline"); + this.log("_setupReconnect :: set `reconnecting` to `true`"); + this.reconnecting = true; + } + this.log("_setupReconnect :: setting reconnectTimer for %d ms", this.options.reconnectPeriod); + this.reconnectTimer = setInterval(() => { + this.log("reconnectTimer :: reconnect triggered!"); + this._reconnect(); + }, this.options.reconnectPeriod); + } else { + this.log("_setupReconnect :: doing nothing..."); + } + } + _clearReconnect() { + this.log("_clearReconnect : clearing reconnect timer"); + if (this.reconnectTimer) { + clearInterval(this.reconnectTimer); + this.reconnectTimer = null; + } + } + _cleanUp(forced, done, opts = {}) { + if (done) { + this.log("_cleanUp :: done callback provided for on stream close"); + this.stream.on("close", done); + } + this.log("_cleanUp :: forced? %s", forced); + if (forced) { + if (this.options.reconnectPeriod === 0 && this.options.clean) { + this._flush(); + } + this.log("_cleanUp :: (%s) :: destroying stream", this.options.clientId); + this.stream.destroy(); + } else { + const packet = { cmd: "disconnect", ...opts }; + this.log("_cleanUp :: (%s) :: call _sendPacket with disconnect packet", this.options.clientId); + this._sendPacket(packet, () => { + this.log("_cleanUp :: (%s) :: destroying stream", this.options.clientId); + setImmediate2(() => { + this.stream.end(() => { + this.log("_cleanUp :: (%s) :: stream destroyed", this.options.clientId); + }); + }); + }); + } + if (!this.disconnecting && !this.reconnecting) { + this.log("_cleanUp :: client not disconnecting/reconnecting. Clearing and resetting reconnect."); + this._clearReconnect(); + this._setupReconnect(); + } + this._destroyKeepaliveManager(); + if (done && !this.connected) { + this.log("_cleanUp :: (%s) :: removing stream `done` callback `close` listener", this.options.clientId); + this.stream.removeListener("close", done); + done(); + } + } + _storeAndSend(packet, cb, cbStorePut) { + this.log("storeAndSend :: store packet with cmd %s to outgoingStore", packet.cmd); + let storePacket = packet; + let err; + if (storePacket.cmd === "publish") { + storePacket = (0, default_1.default)(packet); + err = this._removeTopicAliasAndRecoverTopicName(storePacket); + if (err) { + return cb && cb(err); + } + } + this.outgoingStore.put(storePacket, (err2) => { + if (err2) { + return cb && cb(err2); + } + cbStorePut(); + this._writePacket(packet, cb); + }); + } + _applyTopicAlias(packet) { + if (this.options.protocolVersion === 5) { + if (packet.cmd === "publish") { + let alias; + if (packet.properties) { + alias = packet.properties.topicAlias; + } + const topic = packet.topic.toString(); + if (this.topicAliasSend) { + if (alias) { + if (topic.length !== 0) { + this.log("applyTopicAlias :: register topic: %s - alias: %d", topic, alias); + if (!this.topicAliasSend.put(topic, alias)) { + this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d", topic, alias); + return new Error("Sending Topic Alias out of range"); + } + } + } else if (topic.length !== 0) { + if (this.options.autoAssignTopicAlias) { + alias = this.topicAliasSend.getAliasByTopic(topic); + if (alias) { + packet.topic = ""; + packet.properties = { + ...packet.properties, + topicAlias: alias + }; + this.log("applyTopicAlias :: auto assign(use) topic: %s - alias: %d", topic, alias); + } else { + alias = this.topicAliasSend.getLruAlias(); + this.topicAliasSend.put(topic, alias); + packet.properties = { + ...packet.properties, + topicAlias: alias + }; + this.log("applyTopicAlias :: auto assign topic: %s - alias: %d", topic, alias); + } + } else if (this.options.autoUseTopicAlias) { + alias = this.topicAliasSend.getAliasByTopic(topic); + if (alias) { + packet.topic = ""; + packet.properties = { + ...packet.properties, + topicAlias: alias + }; + this.log("applyTopicAlias :: auto use topic: %s - alias: %d", topic, alias); + } + } + } + } else if (alias) { + this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d", topic, alias); + return new Error("Sending Topic Alias out of range"); + } + } + } + } + _noop(err) { + this.log("noop ::", err); + } + _writePacket(packet, cb) { + this.log("_writePacket :: packet: %O", packet); + this.log("_writePacket :: emitting `packetsend`"); + this.emit("packetsend", packet); + this.log("_writePacket :: writing to stream"); + const result = mqtt_packet_1.default.writeToStream(packet, this.stream, this.options); + this.log("_writePacket :: writeToStream result %s", result); + if (!result && cb && cb !== this.noop) { + this.log("_writePacket :: handle events on `drain` once through callback."); + this.stream.once("drain", cb); + } else if (cb) { + this.log("_writePacket :: invoking cb"); + cb(); + } + } + _sendPacket(packet, cb, cbStorePut, noStore) { + this.log("_sendPacket :: (%s) :: start", this.options.clientId); + cbStorePut = cbStorePut || this.noop; + cb = cb || this.noop; + const err = this._applyTopicAlias(packet); + if (err) { + cb(err); + return; + } + if (!this.connected) { + if (packet.cmd === "auth") { + this._writePacket(packet, cb); + return; + } + this.log("_sendPacket :: client not connected. Storing packet offline."); + this._storePacket(packet, cb, cbStorePut); + return; + } + if (noStore) { + this._writePacket(packet, cb); + return; + } + switch (packet.cmd) { + case "publish": + break; + case "pubrel": + this._storeAndSend(packet, cb, cbStorePut); + return; + default: + this._writePacket(packet, cb); + return; + } + switch (packet.qos) { + case 2: + case 1: + this._storeAndSend(packet, cb, cbStorePut); + break; + case 0: + default: + this._writePacket(packet, cb); + break; + } + this.log("_sendPacket :: (%s) :: end", this.options.clientId); + } + _storePacket(packet, cb, cbStorePut) { + this.log("_storePacket :: packet: %o", packet); + this.log("_storePacket :: cb? %s", !!cb); + cbStorePut = cbStorePut || this.noop; + let storePacket = packet; + if (storePacket.cmd === "publish") { + storePacket = (0, default_1.default)(packet); + const err = this._removeTopicAliasAndRecoverTopicName(storePacket); + if (err) { + return cb && cb(err); + } + } + const qos = storePacket.qos || 0; + if (qos === 0 && this.queueQoSZero || storePacket.cmd !== "publish") { + this.queue.push({ packet: storePacket, cb }); + } else if (qos > 0) { + cb = this.outgoing[storePacket.messageId] ? this.outgoing[storePacket.messageId].cb : null; + this.outgoingStore.put(storePacket, (err) => { + if (err) { + return cb && cb(err); + } + cbStorePut(); + }); + } else if (cb) { + cb(new Error("No connection to broker")); + } + } + _setupKeepaliveManager() { + this.log("_setupKeepaliveManager :: keepalive %d (seconds)", this.options.keepalive); + if (!this.keepaliveManager && this.options.keepalive) { + this.keepaliveManager = new KeepaliveManager_1.default(this, this.options.timerVariant); + } + } + _destroyKeepaliveManager() { + if (this.keepaliveManager) { + this.log("_destroyKeepaliveManager :: destroying keepalive manager"); + this.keepaliveManager.destroy(); + this.keepaliveManager = null; + } + } + reschedulePing(force = false) { + if (this.keepaliveManager && this.options.keepalive && (force || this.options.reschedulePings)) { + this._reschedulePing(); + } + } + _reschedulePing() { + this.log("_reschedulePing :: rescheduling ping"); + this.keepaliveManager.reschedule(); + } + sendPing() { + this.log("_sendPing :: sending pingreq"); + this._sendPacket({ cmd: "pingreq" }); + } + onKeepaliveTimeout() { + this.emit("error", new Error("Keepalive timeout")); + this.log("onKeepaliveTimeout :: calling _cleanUp with force true"); + this._cleanUp(true); + } + _resubscribe() { + this.log("_resubscribe"); + const _resubscribeTopicsKeys = Object.keys(this._resubscribeTopics); + if (!this._firstConnection && (this.options.clean || this.options.protocolVersion >= 4 && !this.connackPacket.sessionPresent) && _resubscribeTopicsKeys.length > 0) { + if (this.options.resubscribe) { + if (this.options.protocolVersion === 5) { + this.log("_resubscribe: protocolVersion 5"); + for (let topicI = 0; topicI < _resubscribeTopicsKeys.length; topicI++) { + const resubscribeTopic = {}; + resubscribeTopic[_resubscribeTopicsKeys[topicI]] = this._resubscribeTopics[_resubscribeTopicsKeys[topicI]]; + resubscribeTopic.resubscribe = true; + this.subscribe(resubscribeTopic, { + properties: resubscribeTopic[_resubscribeTopicsKeys[topicI]].properties + }); + } + } else { + this._resubscribeTopics.resubscribe = true; + this.subscribe(this._resubscribeTopics); + } + } else { + this._resubscribeTopics = {}; + } + } + this._firstConnection = false; + } + _onConnect(packet) { + if (this.disconnected) { + this.emit("connect", packet); + return; + } + this.connackPacket = packet; + this.messageIdProvider.clear(); + this._setupKeepaliveManager(); + this.connected = true; + const startStreamProcess = () => { + let outStore = this.outgoingStore.createStream(); + const remove = () => { + outStore.destroy(); + outStore = null; + this._flushStoreProcessingQueue(); + clearStoreProcessing(); + }; + const clearStoreProcessing = () => { + this._storeProcessing = false; + this._packetIdsDuringStoreProcessing = {}; + }; + this.once("close", remove); + outStore.on("error", (err) => { + clearStoreProcessing(); + this._flushStoreProcessingQueue(); + this.removeListener("close", remove); + this.emit("error", err); + }); + const storeDeliver = () => { + if (!outStore) { + return; + } + const packet2 = outStore.read(1); + let cb; + if (!packet2) { + outStore.once("readable", storeDeliver); + return; + } + this._storeProcessing = true; + if (this._packetIdsDuringStoreProcessing[packet2.messageId]) { + storeDeliver(); + return; + } + if (!this.disconnecting && !this.reconnectTimer) { + cb = this.outgoing[packet2.messageId] ? this.outgoing[packet2.messageId].cb : null; + this.outgoing[packet2.messageId] = { + volatile: false, + cb(err, status) { + if (cb) { + cb(err, status); + } + storeDeliver(); + } + }; + this._packetIdsDuringStoreProcessing[packet2.messageId] = true; + if (this.messageIdProvider.register(packet2.messageId)) { + this._sendPacket(packet2, void 0, void 0, true); + } else { + this.log("messageId: %d has already used.", packet2.messageId); + } + } else if (outStore.destroy) { + outStore.destroy(); + } + }; + outStore.on("end", () => { + let allProcessed = true; + for (const id in this._packetIdsDuringStoreProcessing) { + if (!this._packetIdsDuringStoreProcessing[id]) { + allProcessed = false; + break; + } + } + this.removeListener("close", remove); + if (allProcessed) { + clearStoreProcessing(); + this._invokeAllStoreProcessingQueue(); + this.emit("connect", packet); + } else { + startStreamProcess(); + } + }); + storeDeliver(); + }; + startStreamProcess(); + } + _invokeStoreProcessingQueue() { + if (!this._storeProcessing && this._storeProcessingQueue.length > 0) { + const f = this._storeProcessingQueue[0]; + if (f && f.invoke()) { + this._storeProcessingQueue.shift(); + return true; + } + } + return false; + } + _invokeAllStoreProcessingQueue() { + while (this._invokeStoreProcessingQueue()) { + } + } + _flushStoreProcessingQueue() { + for (const f of this._storeProcessingQueue) { + if (f.cbStorePut) + f.cbStorePut(new Error("Connection closed")); + if (f.callback) + f.callback(new Error("Connection closed")); + } + this._storeProcessingQueue.splice(0); + } + _removeOutgoingAndStoreMessage(messageId, cb) { + delete this.outgoing[messageId]; + this.outgoingStore.del({ messageId }, (err, packet) => { + cb(err, packet); + this.messageIdProvider.deallocate(messageId); + this._invokeStoreProcessingQueue(); + }); + } + }; + exports8.default = MqttClient; + } + }); + + // build/lib/unique-message-id-provider.js + var require_unique_message_id_provider = __commonJS({ + "build/lib/unique-message-id-provider.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + var number_allocator_1 = require_number_allocator2(); + var UniqueMessageIdProvider = class { + numberAllocator; + lastId; + constructor() { + this.numberAllocator = new number_allocator_1.NumberAllocator(1, 65535); + } + allocate() { + this.lastId = this.numberAllocator.alloc(); + return this.lastId; + } + getLastAllocated() { + return this.lastId; + } + register(messageId) { + return this.numberAllocator.use(messageId); + } + deallocate(messageId) { + this.numberAllocator.free(messageId); + } + clear() { + this.numberAllocator.clear(); + } + }; + exports8.default = UniqueMessageIdProvider; + } + }); + + // node_modules/@jspm/core/nodelibs/browser/punycode.js + function dew3() { + if (_dewExec3) return exports$13; + _dewExec3 = true; + const maxInt = 2147483647; + const base = 36; + const tMin = 1; + const tMax = 26; + const skew = 38; + const damp = 700; + const initialBias = 72; + const initialN = 128; + const delimiter = "-"; + const regexPunycode = /^xn--/; + const regexNonASCII = /[^\0-\x7F]/; + const regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; + const errors = { + "overflow": "Overflow: input needs wider integers to process", + "not-basic": "Illegal input >= 0x80 (not a basic code point)", + "invalid-input": "Invalid input" + }; + const baseMinusTMin = base - tMin; + const floor = Math.floor; + const stringFromCharCode = String.fromCharCode; + function error(type) { + throw new RangeError(errors[type]); + } + function map(array, callback) { + const result = []; + let length = array.length; + while (length--) { + result[length] = callback(array[length]); + } + return result; + } + function mapDomain(domain3, callback) { + const parts = domain3.split("@"); + let result = ""; + if (parts.length > 1) { + result = parts[0] + "@"; + domain3 = parts[1]; + } + domain3 = domain3.replace(regexSeparators, "."); + const labels = domain3.split("."); + const encoded = map(labels, callback).join("."); + return result + encoded; + } + function ucs2decode(string) { + const output = []; + let counter = 0; + const length = string.length; + while (counter < length) { + const value = string.charCodeAt(counter++); + if (value >= 55296 && value <= 56319 && counter < length) { + const extra = string.charCodeAt(counter++); + if ((extra & 64512) == 56320) { + output.push(((value & 1023) << 10) + (extra & 1023) + 65536); + } else { + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; + } + const ucs2encode = (codePoints) => String.fromCodePoint(...codePoints); + const basicToDigit = function(codePoint) { + if (codePoint >= 48 && codePoint < 58) { + return 26 + (codePoint - 48); + } + if (codePoint >= 65 && codePoint < 91) { + return codePoint - 65; + } + if (codePoint >= 97 && codePoint < 123) { + return codePoint - 97; + } + return base; + }; + const digitToBasic = function(digit, flag) { + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); + }; + const adapt = function(delta, numPoints, firstTime) { + let k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); + }; + const decode2 = function(input) { + const output = []; + const inputLength = input.length; + let i = 0; + let n = initialN; + let bias = initialBias; + let basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + for (let j = 0; j < basic; ++j) { + if (input.charCodeAt(j) >= 128) { + error("not-basic"); + } + output.push(input.charCodeAt(j)); + } + for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; ) { + const oldi = i; + for (let w = 1, k = base; ; k += base) { + if (index >= inputLength) { + error("invalid-input"); + } + const digit = basicToDigit(input.charCodeAt(index++)); + if (digit >= base) { + error("invalid-input"); + } + if (digit > floor((maxInt - i) / w)) { + error("overflow"); + } + i += digit * w; + const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + if (digit < t) { + break; + } + const baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error("overflow"); + } + w *= baseMinusT; + } + const out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + if (floor(i / out) > maxInt - n) { + error("overflow"); + } + n += floor(i / out); + i %= out; + output.splice(i++, 0, n); + } + return String.fromCodePoint(...output); + }; + const encode2 = function(input) { + const output = []; + input = ucs2decode(input); + const inputLength = input.length; + let n = initialN; + let delta = 0; + let bias = initialBias; + for (const currentValue of input) { + if (currentValue < 128) { + output.push(stringFromCharCode(currentValue)); + } + } + const basicLength = output.length; + let handledCPCount = basicLength; + if (basicLength) { + output.push(delimiter); + } + while (handledCPCount < inputLength) { + let m = maxInt; + for (const currentValue of input) { + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + const handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error("overflow"); + } + delta += (m - n) * handledCPCountPlusOne; + n = m; + for (const currentValue of input) { + if (currentValue < n && ++delta > maxInt) { + error("overflow"); + } + if (currentValue === n) { + let q = delta; + for (let k = base; ; k += base) { + const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + if (q < t) { + break; + } + const qMinusT = q - t; + const baseMinusT = base - t; + output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))); + q = floor(qMinusT / baseMinusT); + } + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength); + delta = 0; + ++handledCPCount; + } + } + ++delta; + ++n; + } + return output.join(""); + }; + const toUnicode2 = function(input) { + return mapDomain(input, function(string) { + return regexPunycode.test(string) ? decode2(string.slice(4).toLowerCase()) : string; + }); + }; + const toASCII2 = function(input) { + return mapDomain(input, function(string) { + return regexNonASCII.test(string) ? "xn--" + encode2(string) : string; + }); + }; + const punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + "version": "2.3.1", + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + "ucs2": { + "decode": ucs2decode, + "encode": ucs2encode + }, + "decode": decode2, + "encode": encode2, + "toASCII": toASCII2, + "toUnicode": toUnicode2 + }; + exports$13 = punycode; + return exports$13; + } + var exports$13, _dewExec3, exports4, decode, encode, toASCII, toUnicode, ucs2, version2; + var init_punycode = __esm({ + "node_modules/@jspm/core/nodelibs/browser/punycode.js"() { + init_dirname(); + init_buffer2(); + init_process2(); + exports$13 = {}; + _dewExec3 = false; + exports4 = dew3(); + decode = exports4.decode; + encode = exports4.encode; + toASCII = exports4.toASCII; + toUnicode = exports4.toUnicode; + ucs2 = exports4.ucs2; + version2 = exports4.version; + } + }); + + // node_modules/@jspm/core/nodelibs/browser/chunk-DtcTpLWz.js + function dew$k() { + if (_dewExec$k) return exports$k; + _dewExec$k = true; + exports$k = function hasSymbols() { + if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") { + return false; + } + if (typeof Symbol.iterator === "symbol") { + return true; + } + var obj = {}; + var sym = Symbol("test"); + var symObj = Object(sym); + if (typeof sym === "string") { + return false; + } + if (Object.prototype.toString.call(sym) !== "[object Symbol]") { + return false; + } + if (Object.prototype.toString.call(symObj) !== "[object Symbol]") { + return false; + } + var symVal = 42; + obj[sym] = symVal; + for (sym in obj) { + return false; + } + if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) { + return false; + } + if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) { + return false; + } + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { + return false; + } + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { + return false; + } + if (typeof Object.getOwnPropertyDescriptor === "function") { + var descriptor = Object.getOwnPropertyDescriptor(obj, sym); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { + return false; + } + } + return true; + }; + return exports$k; + } + function dew$j() { + if (_dewExec$j) return exports$j; + _dewExec$j = true; + exports$j = Error; + return exports$j; + } + function dew$i() { + if (_dewExec$i) return exports$i; + _dewExec$i = true; + exports$i = EvalError; + return exports$i; + } + function dew$h() { + if (_dewExec$h) return exports$h; + _dewExec$h = true; + exports$h = RangeError; + return exports$h; + } + function dew$g() { + if (_dewExec$g) return exports$g; + _dewExec$g = true; + exports$g = ReferenceError; + return exports$g; + } + function dew$f() { + if (_dewExec$f) return exports$f; + _dewExec$f = true; + exports$f = SyntaxError; + return exports$f; + } + function dew$e() { + if (_dewExec$e) return exports$e; + _dewExec$e = true; + exports$e = TypeError; + return exports$e; + } + function dew$d() { + if (_dewExec$d) return exports$d; + _dewExec$d = true; + exports$d = URIError; + return exports$d; + } + function dew$c() { + if (_dewExec$c) return exports$c; + _dewExec$c = true; + var origSymbol = typeof Symbol !== "undefined" && Symbol; + var hasSymbolSham = dew$k(); + exports$c = function hasNativeSymbols() { + if (typeof origSymbol !== "function") { + return false; + } + if (typeof Symbol !== "function") { + return false; + } + if (typeof origSymbol("foo") !== "symbol") { + return false; + } + if (typeof Symbol("bar") !== "symbol") { + return false; + } + return hasSymbolSham(); + }; + return exports$c; + } + function dew$b() { + if (_dewExec$b) return exports$b; + _dewExec$b = true; + var test = { + __proto__: null, + foo: {} + }; + var $Object = Object; + exports$b = function hasProto() { + return { + __proto__: test + }.foo === test.foo && !(test instanceof $Object); + }; + return exports$b; + } + function dew$a() { + if (_dewExec$a) return exports$a; + _dewExec$a = true; + var ERROR_MESSAGE = "Function.prototype.bind called on incompatible "; + var toStr = Object.prototype.toString; + var max = Math.max; + var funcType = "[object Function]"; + var concatty = function concatty2(a, b) { + var arr = []; + for (var i = 0; i < a.length; i += 1) { + arr[i] = a[i]; + } + for (var j = 0; j < b.length; j += 1) { + arr[j + a.length] = b[j]; + } + return arr; + }; + var slicy = function slicy2(arrLike, offset) { + var arr = []; + for (var i = offset, j = 0; i < arrLike.length; i += 1, j += 1) { + arr[j] = arrLike[i]; + } + return arr; + }; + var joiny = function(arr, joiner) { + var str = ""; + for (var i = 0; i < arr.length; i += 1) { + str += arr[i]; + if (i + 1 < arr.length) { + str += joiner; + } + } + return str; + }; + exports$a = function bind(that) { + var target = this; + if (typeof target !== "function" || toStr.apply(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slicy(arguments, 1); + var bound; + var binder = function() { + if (this instanceof bound) { + var result = target.apply(this, concatty(args, arguments)); + if (Object(result) === result) { + return result; + } + return this; + } + return target.apply(that, concatty(args, arguments)); + }; + var boundLength = max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs[i] = "$" + i; + } + bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder); + if (target.prototype) { + var Empty = function Empty2() { + }; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + return bound; + }; + return exports$a; + } + function dew$9() { + if (_dewExec$9) return exports$9; + _dewExec$9 = true; + var implementation = dew$a(); + exports$9 = Function.prototype.bind || implementation; + return exports$9; + } + function dew$8() { + if (_dewExec$8) return exports$8; + _dewExec$8 = true; + var call = Function.prototype.call; + var $hasOwn = Object.prototype.hasOwnProperty; + var bind = dew$9(); + exports$8 = bind.call(call, $hasOwn); + return exports$8; + } + function dew$7() { + if (_dewExec$7) return exports$7; + _dewExec$7 = true; + var undefined$1; + var $Error = dew$j(); + var $EvalError = dew$i(); + var $RangeError = dew$h(); + var $ReferenceError = dew$g(); + var $SyntaxError = dew$f(); + var $TypeError = dew$e(); + var $URIError = dew$d(); + var $Function = Function; + var getEvalledConstructor = function(expressionSyntax) { + try { + return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")(); + } catch (e) { + } + }; + var $gOPD = Object.getOwnPropertyDescriptor; + if ($gOPD) { + try { + $gOPD({}, ""); + } catch (e) { + $gOPD = null; + } + } + var throwTypeError = function() { + throw new $TypeError(); + }; + var ThrowTypeError = $gOPD ? function() { + try { + arguments.callee; + return throwTypeError; + } catch (calleeThrows) { + try { + return $gOPD(arguments, "callee").get; + } catch (gOPDthrows) { + return throwTypeError; + } + } + }() : throwTypeError; + var hasSymbols = dew$c()(); + var hasProto = dew$b()(); + var getProto = Object.getPrototypeOf || (hasProto ? function(x) { + return x.__proto__; + } : null); + var needsEval = {}; + var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined$1 : getProto(Uint8Array); + var INTRINSICS = { + __proto__: null, + "%AggregateError%": typeof AggregateError === "undefined" ? undefined$1 : AggregateError, + "%Array%": Array, + "%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined$1 : ArrayBuffer, + "%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined$1, + "%AsyncFromSyncIteratorPrototype%": undefined$1, + "%AsyncFunction%": needsEval, + "%AsyncGenerator%": needsEval, + "%AsyncGeneratorFunction%": needsEval, + "%AsyncIteratorPrototype%": needsEval, + "%Atomics%": typeof Atomics === "undefined" ? undefined$1 : Atomics, + "%BigInt%": typeof BigInt === "undefined" ? undefined$1 : BigInt, + "%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined$1 : BigInt64Array, + "%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined$1 : BigUint64Array, + "%Boolean%": Boolean, + "%DataView%": typeof DataView === "undefined" ? undefined$1 : DataView, + "%Date%": Date, + "%decodeURI%": decodeURI, + "%decodeURIComponent%": decodeURIComponent, + "%encodeURI%": encodeURI, + "%encodeURIComponent%": encodeURIComponent, + "%Error%": $Error, + "%eval%": eval, + // eslint-disable-line no-eval + "%EvalError%": $EvalError, + "%Float32Array%": typeof Float32Array === "undefined" ? undefined$1 : Float32Array, + "%Float64Array%": typeof Float64Array === "undefined" ? undefined$1 : Float64Array, + "%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined$1 : FinalizationRegistry, + "%Function%": $Function, + "%GeneratorFunction%": needsEval, + "%Int8Array%": typeof Int8Array === "undefined" ? undefined$1 : Int8Array, + "%Int16Array%": typeof Int16Array === "undefined" ? undefined$1 : Int16Array, + "%Int32Array%": typeof Int32Array === "undefined" ? undefined$1 : Int32Array, + "%isFinite%": isFinite, + "%isNaN%": isNaN, + "%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined$1, + "%JSON%": typeof JSON === "object" ? JSON : undefined$1, + "%Map%": typeof Map === "undefined" ? undefined$1 : Map, + "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined$1 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()), + "%Math%": Math, + "%Number%": Number, + "%Object%": Object, + "%parseFloat%": parseFloat, + "%parseInt%": parseInt, + "%Promise%": typeof Promise === "undefined" ? undefined$1 : Promise, + "%Proxy%": typeof Proxy === "undefined" ? undefined$1 : Proxy, + "%RangeError%": $RangeError, + "%ReferenceError%": $ReferenceError, + "%Reflect%": typeof Reflect === "undefined" ? undefined$1 : Reflect, + "%RegExp%": RegExp, + "%Set%": typeof Set === "undefined" ? undefined$1 : Set, + "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined$1 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()), + "%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined$1 : SharedArrayBuffer, + "%String%": String, + "%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined$1, + "%Symbol%": hasSymbols ? Symbol : undefined$1, + "%SyntaxError%": $SyntaxError, + "%ThrowTypeError%": ThrowTypeError, + "%TypedArray%": TypedArray, + "%TypeError%": $TypeError, + "%Uint8Array%": typeof Uint8Array === "undefined" ? undefined$1 : Uint8Array, + "%Uint8ClampedArray%": typeof Uint8ClampedArray === "undefined" ? undefined$1 : Uint8ClampedArray, + "%Uint16Array%": typeof Uint16Array === "undefined" ? undefined$1 : Uint16Array, + "%Uint32Array%": typeof Uint32Array === "undefined" ? undefined$1 : Uint32Array, + "%URIError%": $URIError, + "%WeakMap%": typeof WeakMap === "undefined" ? undefined$1 : WeakMap, + "%WeakRef%": typeof WeakRef === "undefined" ? undefined$1 : WeakRef, + "%WeakSet%": typeof WeakSet === "undefined" ? undefined$1 : WeakSet + }; + if (getProto) { + try { + null.error; + } catch (e) { + var errorProto = getProto(getProto(e)); + INTRINSICS["%Error.prototype%"] = errorProto; + } + } + var doEval = function doEval2(name2) { + var value; + if (name2 === "%AsyncFunction%") { + value = getEvalledConstructor("async function () {}"); + } else if (name2 === "%GeneratorFunction%") { + value = getEvalledConstructor("function* () {}"); + } else if (name2 === "%AsyncGeneratorFunction%") { + value = getEvalledConstructor("async function* () {}"); + } else if (name2 === "%AsyncGenerator%") { + var fn = doEval2("%AsyncGeneratorFunction%"); + if (fn) { + value = fn.prototype; + } + } else if (name2 === "%AsyncIteratorPrototype%") { + var gen = doEval2("%AsyncGenerator%"); + if (gen && getProto) { + value = getProto(gen.prototype); + } + } + INTRINSICS[name2] = value; + return value; + }; + var LEGACY_ALIASES = { + __proto__: null, + "%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"], + "%ArrayPrototype%": ["Array", "prototype"], + "%ArrayProto_entries%": ["Array", "prototype", "entries"], + "%ArrayProto_forEach%": ["Array", "prototype", "forEach"], + "%ArrayProto_keys%": ["Array", "prototype", "keys"], + "%ArrayProto_values%": ["Array", "prototype", "values"], + "%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"], + "%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"], + "%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype", "prototype"], + "%BooleanPrototype%": ["Boolean", "prototype"], + "%DataViewPrototype%": ["DataView", "prototype"], + "%DatePrototype%": ["Date", "prototype"], + "%ErrorPrototype%": ["Error", "prototype"], + "%EvalErrorPrototype%": ["EvalError", "prototype"], + "%Float32ArrayPrototype%": ["Float32Array", "prototype"], + "%Float64ArrayPrototype%": ["Float64Array", "prototype"], + "%FunctionPrototype%": ["Function", "prototype"], + "%Generator%": ["GeneratorFunction", "prototype"], + "%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"], + "%Int8ArrayPrototype%": ["Int8Array", "prototype"], + "%Int16ArrayPrototype%": ["Int16Array", "prototype"], + "%Int32ArrayPrototype%": ["Int32Array", "prototype"], + "%JSONParse%": ["JSON", "parse"], + "%JSONStringify%": ["JSON", "stringify"], + "%MapPrototype%": ["Map", "prototype"], + "%NumberPrototype%": ["Number", "prototype"], + "%ObjectPrototype%": ["Object", "prototype"], + "%ObjProto_toString%": ["Object", "prototype", "toString"], + "%ObjProto_valueOf%": ["Object", "prototype", "valueOf"], + "%PromisePrototype%": ["Promise", "prototype"], + "%PromiseProto_then%": ["Promise", "prototype", "then"], + "%Promise_all%": ["Promise", "all"], + "%Promise_reject%": ["Promise", "reject"], + "%Promise_resolve%": ["Promise", "resolve"], + "%RangeErrorPrototype%": ["RangeError", "prototype"], + "%ReferenceErrorPrototype%": ["ReferenceError", "prototype"], + "%RegExpPrototype%": ["RegExp", "prototype"], + "%SetPrototype%": ["Set", "prototype"], + "%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"], + "%StringPrototype%": ["String", "prototype"], + "%SymbolPrototype%": ["Symbol", "prototype"], + "%SyntaxErrorPrototype%": ["SyntaxError", "prototype"], + "%TypedArrayPrototype%": ["TypedArray", "prototype"], + "%TypeErrorPrototype%": ["TypeError", "prototype"], + "%Uint8ArrayPrototype%": ["Uint8Array", "prototype"], + "%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"], + "%Uint16ArrayPrototype%": ["Uint16Array", "prototype"], + "%Uint32ArrayPrototype%": ["Uint32Array", "prototype"], + "%URIErrorPrototype%": ["URIError", "prototype"], + "%WeakMapPrototype%": ["WeakMap", "prototype"], + "%WeakSetPrototype%": ["WeakSet", "prototype"] + }; + var bind = dew$9(); + var hasOwn = dew$8(); + var $concat = bind.call(Function.call, Array.prototype.concat); + var $spliceApply = bind.call(Function.apply, Array.prototype.splice); + var $replace = bind.call(Function.call, String.prototype.replace); + var $strSlice = bind.call(Function.call, String.prototype.slice); + var $exec = bind.call(Function.call, RegExp.prototype.exec); + var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; + var reEscapeChar = /\\(\\)?/g; + var stringToPath = function stringToPath2(string) { + var first = $strSlice(string, 0, 1); + var last = $strSlice(string, -1); + if (first === "%" && last !== "%") { + throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`"); + } else if (last === "%" && first !== "%") { + throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`"); + } + var result = []; + $replace(string, rePropName, function(match, number, quote, subString) { + result[result.length] = quote ? $replace(subString, reEscapeChar, "$1") : number || match; + }); + return result; + }; + var getBaseIntrinsic = function getBaseIntrinsic2(name2, allowMissing) { + var intrinsicName = name2; + var alias; + if (hasOwn(LEGACY_ALIASES, intrinsicName)) { + alias = LEGACY_ALIASES[intrinsicName]; + intrinsicName = "%" + alias[0] + "%"; + } + if (hasOwn(INTRINSICS, intrinsicName)) { + var value = INTRINSICS[intrinsicName]; + if (value === needsEval) { + value = doEval(intrinsicName); + } + if (typeof value === "undefined" && !allowMissing) { + throw new $TypeError("intrinsic " + name2 + " exists, but is not available. Please file an issue!"); + } + return { + alias, + name: intrinsicName, + value + }; + } + throw new $SyntaxError("intrinsic " + name2 + " does not exist!"); + }; + exports$7 = function GetIntrinsic(name2, allowMissing) { + if (typeof name2 !== "string" || name2.length === 0) { + throw new $TypeError("intrinsic name must be a non-empty string"); + } + if (arguments.length > 1 && typeof allowMissing !== "boolean") { + throw new $TypeError('"allowMissing" argument must be a boolean'); + } + if ($exec(/^%?[^%]*%?$/, name2) === null) { + throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name"); + } + var parts = stringToPath(name2); + var intrinsicBaseName = parts.length > 0 ? parts[0] : ""; + var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing); + var intrinsicRealName = intrinsic.name; + var value = intrinsic.value; + var skipFurtherCaching = false; + var alias = intrinsic.alias; + if (alias) { + intrinsicBaseName = alias[0]; + $spliceApply(parts, $concat([0, 1], alias)); + } + for (var i = 1, isOwn = true; i < parts.length; i += 1) { + var part = parts[i]; + var first = $strSlice(part, 0, 1); + var last = $strSlice(part, -1); + if ((first === '"' || first === "'" || first === "`" || last === '"' || last === "'" || last === "`") && first !== last) { + throw new $SyntaxError("property names with quotes must have matching quotes"); + } + if (part === "constructor" || !isOwn) { + skipFurtherCaching = true; + } + intrinsicBaseName += "." + part; + intrinsicRealName = "%" + intrinsicBaseName + "%"; + if (hasOwn(INTRINSICS, intrinsicRealName)) { + value = INTRINSICS[intrinsicRealName]; + } else if (value != null) { + if (!(part in value)) { + if (!allowMissing) { + throw new $TypeError("base intrinsic for " + name2 + " exists, but the property is not available."); + } + return void undefined$1; + } + if ($gOPD && i + 1 >= parts.length) { + var desc = $gOPD(value, part); + isOwn = !!desc; + if (isOwn && "get" in desc && !("originalValue" in desc.get)) { + value = desc.get; + } else { + value = value[part]; + } + } else { + isOwn = hasOwn(value, part); + value = value[part]; + } + if (isOwn && !skipFurtherCaching) { + INTRINSICS[intrinsicRealName] = value; + } + } + } + return value; + }; + return exports$7; + } + function dew$6() { + if (_dewExec$6) return exports$6; + _dewExec$6 = true; + var GetIntrinsic = dew$7(); + var $defineProperty = GetIntrinsic("%Object.defineProperty%", true) || false; + if ($defineProperty) { + try { + $defineProperty({}, "a", { + value: 1 + }); + } catch (e) { + $defineProperty = false; + } + } + exports$6 = $defineProperty; + return exports$6; + } + function dew$5() { + if (_dewExec$5) return exports$5; + _dewExec$5 = true; + var GetIntrinsic = dew$7(); + var $gOPD = GetIntrinsic("%Object.getOwnPropertyDescriptor%", true); + if ($gOPD) { + try { + $gOPD([], "length"); + } catch (e) { + $gOPD = null; + } + } + exports$5 = $gOPD; + return exports$5; + } + function dew$4() { + if (_dewExec$4) return exports$4; + _dewExec$4 = true; + var $defineProperty = dew$6(); + var $SyntaxError = dew$f(); + var $TypeError = dew$e(); + var gopd = dew$5(); + exports$4 = function defineDataProperty(obj, property, value) { + if (!obj || typeof obj !== "object" && typeof obj !== "function") { + throw new $TypeError("`obj` must be an object or a function`"); + } + if (typeof property !== "string" && typeof property !== "symbol") { + throw new $TypeError("`property` must be a string or a symbol`"); + } + if (arguments.length > 3 && typeof arguments[3] !== "boolean" && arguments[3] !== null) { + throw new $TypeError("`nonEnumerable`, if provided, must be a boolean or null"); + } + if (arguments.length > 4 && typeof arguments[4] !== "boolean" && arguments[4] !== null) { + throw new $TypeError("`nonWritable`, if provided, must be a boolean or null"); + } + if (arguments.length > 5 && typeof arguments[5] !== "boolean" && arguments[5] !== null) { + throw new $TypeError("`nonConfigurable`, if provided, must be a boolean or null"); + } + if (arguments.length > 6 && typeof arguments[6] !== "boolean") { + throw new $TypeError("`loose`, if provided, must be a boolean"); + } + var nonEnumerable = arguments.length > 3 ? arguments[3] : null; + var nonWritable = arguments.length > 4 ? arguments[4] : null; + var nonConfigurable = arguments.length > 5 ? arguments[5] : null; + var loose = arguments.length > 6 ? arguments[6] : false; + var desc = !!gopd && gopd(obj, property); + if ($defineProperty) { + $defineProperty(obj, property, { + configurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable, + enumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable, + value, + writable: nonWritable === null && desc ? desc.writable : !nonWritable + }); + } else if (loose || !nonEnumerable && !nonWritable && !nonConfigurable) { + obj[property] = value; + } else { + throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable."); + } + }; + return exports$4; + } + function dew$3() { + if (_dewExec$3) return exports$3; + _dewExec$3 = true; + var $defineProperty = dew$6(); + var hasPropertyDescriptors = function hasPropertyDescriptors2() { + return !!$defineProperty; + }; + hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() { + if (!$defineProperty) { + return null; + } + try { + return $defineProperty([], "length", { + value: 1 + }).length !== 1; + } catch (e) { + return true; + } + }; + exports$3 = hasPropertyDescriptors; + return exports$3; + } + function dew$22() { + if (_dewExec$22) return exports$22; + _dewExec$22 = true; + var GetIntrinsic = dew$7(); + var define2 = dew$4(); + var hasDescriptors = dew$3()(); + var gOPD = dew$5(); + var $TypeError = dew$e(); + var $floor = GetIntrinsic("%Math.floor%"); + exports$22 = function setFunctionLength(fn, length) { + if (typeof fn !== "function") { + throw new $TypeError("`fn` is not a function"); + } + if (typeof length !== "number" || length < 0 || length > 4294967295 || $floor(length) !== length) { + throw new $TypeError("`length` must be a positive 32-bit integer"); + } + var loose = arguments.length > 2 && !!arguments[2]; + var functionLengthIsConfigurable = true; + var functionLengthIsWritable = true; + if ("length" in fn && gOPD) { + var desc = gOPD(fn, "length"); + if (desc && !desc.configurable) { + functionLengthIsConfigurable = false; + } + if (desc && !desc.writable) { + functionLengthIsWritable = false; + } + } + if (functionLengthIsConfigurable || functionLengthIsWritable || !loose) { + if (hasDescriptors) { + define2( + /** @type {Parameters[0]} */ + fn, + "length", + length, + true, + true + ); + } else { + define2( + /** @type {Parameters[0]} */ + fn, + "length", + length + ); + } + } + return fn; + }; + return exports$22; + } + function dew$12() { + if (_dewExec$12) return exports$14; + _dewExec$12 = true; + var bind = dew$9(); + var GetIntrinsic = dew$7(); + var setFunctionLength = dew$22(); + var $TypeError = dew$e(); + var $apply = GetIntrinsic("%Function.prototype.apply%"); + var $call = GetIntrinsic("%Function.prototype.call%"); + var $reflectApply = GetIntrinsic("%Reflect.apply%", true) || bind.call($call, $apply); + var $defineProperty = dew$6(); + var $max = GetIntrinsic("%Math.max%"); + exports$14 = function callBind(originalFunction) { + if (typeof originalFunction !== "function") { + throw new $TypeError("a function is required"); + } + var func = $reflectApply(bind, $call, arguments); + return setFunctionLength(func, 1 + $max(0, originalFunction.length - (arguments.length - 1)), true); + }; + var applyBind = function applyBind2() { + return $reflectApply(bind, $apply, arguments); + }; + if ($defineProperty) { + $defineProperty(exports$14, "apply", { + value: applyBind + }); + } else { + exports$14.apply = applyBind; + } + return exports$14; + } + function dew4() { + if (_dewExec4) return exports5; + _dewExec4 = true; + var GetIntrinsic = dew$7(); + var callBind = dew$12(); + var $indexOf = callBind(GetIntrinsic("String.prototype.indexOf")); + exports5 = function callBoundIntrinsic(name2, allowMissing) { + var intrinsic = GetIntrinsic(name2, !!allowMissing); + if (typeof intrinsic === "function" && $indexOf(name2, ".prototype.") > -1) { + return callBind(intrinsic); + } + return intrinsic; + }; + return exports5; + } + var exports$k, _dewExec$k, exports$j, _dewExec$j, exports$i, _dewExec$i, exports$h, _dewExec$h, exports$g, _dewExec$g, exports$f, _dewExec$f, exports$e, _dewExec$e, exports$d, _dewExec$d, exports$c, _dewExec$c, exports$b, _dewExec$b, exports$a, _dewExec$a, exports$9, _dewExec$9, exports$8, _dewExec$8, exports$7, _dewExec$7, exports$6, _dewExec$6, exports$5, _dewExec$5, exports$4, _dewExec$4, exports$3, _dewExec$3, exports$22, _dewExec$22, exports$14, _dewExec$12, exports5, _dewExec4; + var init_chunk_DtcTpLWz = __esm({ + "node_modules/@jspm/core/nodelibs/browser/chunk-DtcTpLWz.js"() { + init_dirname(); + init_buffer2(); + init_process2(); + exports$k = {}; + _dewExec$k = false; + exports$j = {}; + _dewExec$j = false; + exports$i = {}; + _dewExec$i = false; + exports$h = {}; + _dewExec$h = false; + exports$g = {}; + _dewExec$g = false; + exports$f = {}; + _dewExec$f = false; + exports$e = {}; + _dewExec$e = false; + exports$d = {}; + _dewExec$d = false; + exports$c = {}; + _dewExec$c = false; + exports$b = {}; + _dewExec$b = false; + exports$a = {}; + _dewExec$a = false; + exports$9 = {}; + _dewExec$9 = false; + exports$8 = {}; + _dewExec$8 = false; + exports$7 = {}; + _dewExec$7 = false; + exports$6 = {}; + _dewExec$6 = false; + exports$5 = {}; + _dewExec$5 = false; + exports$4 = {}; + _dewExec$4 = false; + exports$3 = {}; + _dewExec$3 = false; + exports$22 = {}; + _dewExec$22 = false; + exports$14 = {}; + _dewExec$12 = false; + exports5 = {}; + _dewExec4 = false; + } + }); + + // node_modules/@jspm/core/nodelibs/browser/chunk-DEMDiNwt.js + function unimplemented2(name2) { + throw new Error("Node.js process " + name2 + " is not supported by JSPM core outside of Node.js"); + } + function cleanUpNextTick2() { + if (!draining2 || !currentQueue2) + return; + draining2 = false; + if (currentQueue2.length) { + queue2 = currentQueue2.concat(queue2); + } else { + queueIndex2 = -1; + } + if (queue2.length) + drainQueue2(); + } + function drainQueue2() { + if (draining2) + return; + var timeout = setTimeout(cleanUpNextTick2, 0); + draining2 = true; + var len = queue2.length; + while (len) { + currentQueue2 = queue2; + queue2 = []; + while (++queueIndex2 < len) { + if (currentQueue2) + currentQueue2[queueIndex2].run(); + } + queueIndex2 = -1; + len = queue2.length; + } + currentQueue2 = null; + draining2 = false; + clearTimeout(timeout); + } + function nextTick2(fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) + args[i - 1] = arguments[i]; + } + queue2.push(new Item2(fun, args)); + if (queue2.length === 1 && !draining2) + setTimeout(drainQueue2, 0); + } + function Item2(fun, array) { + this.fun = fun; + this.array = array; + } + function noop2() { + } + function _linkedBinding2(name2) { + unimplemented2("_linkedBinding"); + } + function dlopen2(name2) { + unimplemented2("dlopen"); + } + function _getActiveRequests2() { + return []; + } + function _getActiveHandles2() { + return []; + } + function assert2(condition, message) { + if (!condition) throw new Error(message || "assertion error"); + } + function hasUncaughtExceptionCaptureCallback2() { + return false; + } + function uptime2() { + return _performance2.now() / 1e3; + } + function hrtime2(previousTimestamp) { + var baseNow = Math.floor((Date.now() - _performance2.now()) * 1e-3); + var clocktime = _performance2.now() * 1e-3; + var seconds = Math.floor(clocktime) + baseNow; + var nanoseconds = Math.floor(clocktime % 1 * 1e9); + if (previousTimestamp) { + seconds = seconds - previousTimestamp[0]; + nanoseconds = nanoseconds - previousTimestamp[1]; + if (nanoseconds < 0) { + seconds--; + nanoseconds += nanoPerSec2; + } + } + return [seconds, nanoseconds]; + } + function on3() { + return process2; + } + function listeners2(name2) { + return []; + } + var queue2, draining2, currentQueue2, queueIndex2, title2, arch2, platform2, env2, argv2, execArgv2, version3, versions2, emitWarning2, binding2, umask2, cwd2, chdir2, release2, _rawDebug2, moduleLoadList2, domain2, _exiting2, config2, reallyExit2, _kill2, cpuUsage2, resourceUsage2, memoryUsage2, kill2, exit2, openStdin2, allowedNodeEnvironmentFlags2, features2, _fatalExceptions2, setUncaughtExceptionCaptureCallback2, _tickCallback2, _debugProcess2, _debugEnd2, _startProfilerIdleNotifier2, _stopProfilerIdleNotifier2, stdout2, stderr2, stdin2, abort2, pid2, ppid2, execPath2, debugPort2, argv02, _preload_modules2, setSourceMapsEnabled2, _performance2, nowOffset, nanoPerSec2, _maxListeners2, _events2, _eventsCount2, addListener2, once3, off2, removeListener2, removeAllListeners2, emit2, prependListener2, prependOnceListener2, process2; + var init_chunk_DEMDiNwt = __esm({ + "node_modules/@jspm/core/nodelibs/browser/chunk-DEMDiNwt.js"() { + init_dirname(); + init_buffer2(); + init_process2(); + queue2 = []; + draining2 = false; + queueIndex2 = -1; + Item2.prototype.run = function() { + this.fun.apply(null, this.array); + }; + title2 = "browser"; + arch2 = "x64"; + platform2 = "browser"; + env2 = { + PATH: "/usr/bin", + LANG: navigator.language + ".UTF-8", + PWD: "/", + HOME: "/home", + TMP: "/tmp" + }; + argv2 = ["/usr/bin/node"]; + execArgv2 = []; + version3 = "v16.8.0"; + versions2 = {}; + emitWarning2 = function(message, type) { + console.warn((type ? type + ": " : "") + message); + }; + binding2 = function(name2) { + unimplemented2("binding"); + }; + umask2 = function(mask) { + return 0; + }; + cwd2 = function() { + return "/"; + }; + chdir2 = function(dir) { + }; + release2 = { + name: "node", + sourceUrl: "", + headersUrl: "", + libUrl: "" + }; + _rawDebug2 = noop2; + moduleLoadList2 = []; + domain2 = {}; + _exiting2 = false; + config2 = {}; + reallyExit2 = noop2; + _kill2 = noop2; + cpuUsage2 = function() { + return {}; + }; + resourceUsage2 = cpuUsage2; + memoryUsage2 = cpuUsage2; + kill2 = noop2; + exit2 = noop2; + openStdin2 = noop2; + allowedNodeEnvironmentFlags2 = {}; + features2 = { + inspector: false, + debug: false, + uv: false, + ipv6: false, + tls_alpn: false, + tls_sni: false, + tls_ocsp: false, + tls: false, + cached_builtins: true + }; + _fatalExceptions2 = noop2; + setUncaughtExceptionCaptureCallback2 = noop2; + _tickCallback2 = noop2; + _debugProcess2 = noop2; + _debugEnd2 = noop2; + _startProfilerIdleNotifier2 = noop2; + _stopProfilerIdleNotifier2 = noop2; + stdout2 = void 0; + stderr2 = void 0; + stdin2 = void 0; + abort2 = noop2; + pid2 = 2; + ppid2 = 1; + execPath2 = "/bin/usr/node"; + debugPort2 = 9229; + argv02 = "node"; + _preload_modules2 = []; + setSourceMapsEnabled2 = noop2; + _performance2 = { + now: typeof performance !== "undefined" ? performance.now.bind(performance) : void 0, + timing: typeof performance !== "undefined" ? performance.timing : void 0 + }; + if (_performance2.now === void 0) { + nowOffset = Date.now(); + if (_performance2.timing && _performance2.timing.navigationStart) { + nowOffset = _performance2.timing.navigationStart; + } + _performance2.now = () => Date.now() - nowOffset; + } + nanoPerSec2 = 1e9; + hrtime2.bigint = function(time) { + var diff = hrtime2(time); + if (typeof BigInt === "undefined") { + return diff[0] * nanoPerSec2 + diff[1]; + } + return BigInt(diff[0] * nanoPerSec2) + BigInt(diff[1]); + }; + _maxListeners2 = 10; + _events2 = {}; + _eventsCount2 = 0; + addListener2 = on3; + once3 = on3; + off2 = on3; + removeListener2 = on3; + removeAllListeners2 = on3; + emit2 = noop2; + prependListener2 = on3; + prependOnceListener2 = on3; + process2 = { + version: version3, + versions: versions2, + arch: arch2, + platform: platform2, + release: release2, + _rawDebug: _rawDebug2, + moduleLoadList: moduleLoadList2, + binding: binding2, + _linkedBinding: _linkedBinding2, + _events: _events2, + _eventsCount: _eventsCount2, + _maxListeners: _maxListeners2, + on: on3, + addListener: addListener2, + once: once3, + off: off2, + removeListener: removeListener2, + removeAllListeners: removeAllListeners2, + emit: emit2, + prependListener: prependListener2, + prependOnceListener: prependOnceListener2, + listeners: listeners2, + domain: domain2, + _exiting: _exiting2, + config: config2, + dlopen: dlopen2, + uptime: uptime2, + _getActiveRequests: _getActiveRequests2, + _getActiveHandles: _getActiveHandles2, + reallyExit: reallyExit2, + _kill: _kill2, + cpuUsage: cpuUsage2, + resourceUsage: resourceUsage2, + memoryUsage: memoryUsage2, + kill: kill2, + exit: exit2, + openStdin: openStdin2, + allowedNodeEnvironmentFlags: allowedNodeEnvironmentFlags2, + assert: assert2, + features: features2, + _fatalExceptions: _fatalExceptions2, + setUncaughtExceptionCaptureCallback: setUncaughtExceptionCaptureCallback2, + hasUncaughtExceptionCaptureCallback: hasUncaughtExceptionCaptureCallback2, + emitWarning: emitWarning2, + nextTick: nextTick2, + _tickCallback: _tickCallback2, + _debugProcess: _debugProcess2, + _debugEnd: _debugEnd2, + _startProfilerIdleNotifier: _startProfilerIdleNotifier2, + _stopProfilerIdleNotifier: _stopProfilerIdleNotifier2, + stdout: stdout2, + stdin: stdin2, + stderr: stderr2, + abort: abort2, + umask: umask2, + chdir: chdir2, + cwd: cwd2, + env: env2, + title: title2, + argv: argv2, + execArgv: execArgv2, + pid: pid2, + ppid: ppid2, + execPath: execPath2, + debugPort: debugPort2, + hrtime: hrtime2, + argv0: argv02, + _preload_modules: _preload_modules2, + setSourceMapsEnabled: setSourceMapsEnabled2 + }; + } + }); + + // node_modules/@jspm/core/nodelibs/browser/chunk-BlJi4mNy.js + function dew5() { + if (_dewExec5) return exports$15; + _dewExec5 = true; + var process$1 = process2; + function assertPath(path) { + if (typeof path !== "string") { + throw new TypeError("Path must be a string. Received " + JSON.stringify(path)); + } + } + function normalizeStringPosix(path, allowAboveRoot) { + var res = ""; + var lastSegmentLength = 0; + var lastSlash = -1; + var dots = 0; + var code; + for (var i = 0; i <= path.length; ++i) { + if (i < path.length) code = path.charCodeAt(i); + else if (code === 47) break; + else code = 47; + if (code === 47) { + if (lastSlash === i - 1 || dots === 1) ; + else if (lastSlash !== i - 1 && dots === 2) { + if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 || res.charCodeAt(res.length - 2) !== 46) { + if (res.length > 2) { + var lastSlashIndex = res.lastIndexOf("/"); + if (lastSlashIndex !== res.length - 1) { + if (lastSlashIndex === -1) { + res = ""; + lastSegmentLength = 0; + } else { + res = res.slice(0, lastSlashIndex); + lastSegmentLength = res.length - 1 - res.lastIndexOf("/"); + } + lastSlash = i; + dots = 0; + continue; + } + } else if (res.length === 2 || res.length === 1) { + res = ""; + lastSegmentLength = 0; + lastSlash = i; + dots = 0; + continue; + } + } + if (allowAboveRoot) { + if (res.length > 0) res += "/.."; + else res = ".."; + lastSegmentLength = 2; + } + } else { + if (res.length > 0) res += "/" + path.slice(lastSlash + 1, i); + else res = path.slice(lastSlash + 1, i); + lastSegmentLength = i - lastSlash - 1; + } + lastSlash = i; + dots = 0; + } else if (code === 46 && dots !== -1) { + ++dots; + } else { + dots = -1; + } + } + return res; + } + function _format(sep, pathObject) { + var dir = pathObject.dir || pathObject.root; + var base = pathObject.base || (pathObject.name || "") + (pathObject.ext || ""); + if (!dir) { + return base; + } + if (dir === pathObject.root) { + return dir + base; + } + return dir + sep + base; + } + var posix = { + // path.resolve([from ...], to) + resolve: function resolve2() { + var resolvedPath = ""; + var resolvedAbsolute = false; + var cwd3; + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path; + if (i >= 0) path = arguments[i]; + else { + if (cwd3 === void 0) cwd3 = process$1.cwd(); + path = cwd3; + } + assertPath(path); + if (path.length === 0) { + continue; + } + resolvedPath = path + "/" + resolvedPath; + resolvedAbsolute = path.charCodeAt(0) === 47; + } + resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute); + if (resolvedAbsolute) { + if (resolvedPath.length > 0) return "/" + resolvedPath; + else return "/"; + } else if (resolvedPath.length > 0) { + return resolvedPath; + } else { + return "."; + } + }, + normalize: function normalize(path) { + assertPath(path); + if (path.length === 0) return "."; + var isAbsolute = path.charCodeAt(0) === 47; + var trailingSeparator = path.charCodeAt(path.length - 1) === 47; + path = normalizeStringPosix(path, !isAbsolute); + if (path.length === 0 && !isAbsolute) path = "."; + if (path.length > 0 && trailingSeparator) path += "/"; + if (isAbsolute) return "/" + path; + return path; + }, + isAbsolute: function isAbsolute(path) { + assertPath(path); + return path.length > 0 && path.charCodeAt(0) === 47; + }, + join: function join() { + if (arguments.length === 0) return "."; + var joined; + for (var i = 0; i < arguments.length; ++i) { + var arg = arguments[i]; + assertPath(arg); + if (arg.length > 0) { + if (joined === void 0) joined = arg; + else joined += "/" + arg; + } + } + if (joined === void 0) return "."; + return posix.normalize(joined); + }, + relative: function relative(from, to) { + assertPath(from); + assertPath(to); + if (from === to) return ""; + from = posix.resolve(from); + to = posix.resolve(to); + if (from === to) return ""; + var fromStart = 1; + for (; fromStart < from.length; ++fromStart) { + if (from.charCodeAt(fromStart) !== 47) break; + } + var fromEnd = from.length; + var fromLen = fromEnd - fromStart; + var toStart = 1; + for (; toStart < to.length; ++toStart) { + if (to.charCodeAt(toStart) !== 47) break; + } + var toEnd = to.length; + var toLen = toEnd - toStart; + var length = fromLen < toLen ? fromLen : toLen; + var lastCommonSep = -1; + var i = 0; + for (; i <= length; ++i) { + if (i === length) { + if (toLen > length) { + if (to.charCodeAt(toStart + i) === 47) { + return to.slice(toStart + i + 1); + } else if (i === 0) { + return to.slice(toStart + i); + } + } else if (fromLen > length) { + if (from.charCodeAt(fromStart + i) === 47) { + lastCommonSep = i; + } else if (i === 0) { + lastCommonSep = 0; + } + } + break; + } + var fromCode = from.charCodeAt(fromStart + i); + var toCode = to.charCodeAt(toStart + i); + if (fromCode !== toCode) break; + else if (fromCode === 47) lastCommonSep = i; + } + var out = ""; + for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { + if (i === fromEnd || from.charCodeAt(i) === 47) { + if (out.length === 0) out += ".."; + else out += "/.."; + } + } + if (out.length > 0) return out + to.slice(toStart + lastCommonSep); + else { + toStart += lastCommonSep; + if (to.charCodeAt(toStart) === 47) ++toStart; + return to.slice(toStart); + } + }, + _makeLong: function _makeLong(path) { + return path; + }, + dirname: function dirname(path) { + assertPath(path); + if (path.length === 0) return "."; + var code = path.charCodeAt(0); + var hasRoot = code === 47; + var end = -1; + var matchedSlash = true; + for (var i = path.length - 1; i >= 1; --i) { + code = path.charCodeAt(i); + if (code === 47) { + if (!matchedSlash) { + end = i; + break; + } + } else { + matchedSlash = false; + } + } + if (end === -1) return hasRoot ? "/" : "."; + if (hasRoot && end === 1) return "//"; + return path.slice(0, end); + }, + basename: function basename(path, ext) { + if (ext !== void 0 && typeof ext !== "string") throw new TypeError('"ext" argument must be a string'); + assertPath(path); + var start = 0; + var end = -1; + var matchedSlash = true; + var i; + if (ext !== void 0 && ext.length > 0 && ext.length <= path.length) { + if (ext.length === path.length && ext === path) return ""; + var extIdx = ext.length - 1; + var firstNonSlashEnd = -1; + for (i = path.length - 1; i >= 0; --i) { + var code = path.charCodeAt(i); + if (code === 47) { + if (!matchedSlash) { + start = i + 1; + break; + } + } else { + if (firstNonSlashEnd === -1) { + matchedSlash = false; + firstNonSlashEnd = i + 1; + } + if (extIdx >= 0) { + if (code === ext.charCodeAt(extIdx)) { + if (--extIdx === -1) { + end = i; + } + } else { + extIdx = -1; + end = firstNonSlashEnd; + } + } + } + } + if (start === end) end = firstNonSlashEnd; + else if (end === -1) end = path.length; + return path.slice(start, end); + } else { + for (i = path.length - 1; i >= 0; --i) { + if (path.charCodeAt(i) === 47) { + if (!matchedSlash) { + start = i + 1; + break; + } + } else if (end === -1) { + matchedSlash = false; + end = i + 1; + } + } + if (end === -1) return ""; + return path.slice(start, end); + } + }, + extname: function extname(path) { + assertPath(path); + var startDot = -1; + var startPart = 0; + var end = -1; + var matchedSlash = true; + var preDotState = 0; + for (var i = path.length - 1; i >= 0; --i) { + var code = path.charCodeAt(i); + if (code === 47) { + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + matchedSlash = false; + end = i + 1; + } + if (code === 46) { + if (startDot === -1) startDot = i; + else if (preDotState !== 1) preDotState = 1; + } else if (startDot !== -1) { + preDotState = -1; + } + } + if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot + preDotState === 0 || // The (right-most) trimmed path component is exactly '..' + preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { + return ""; + } + return path.slice(startDot, end); + }, + format: function format2(pathObject) { + if (pathObject === null || typeof pathObject !== "object") { + throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof pathObject); + } + return _format("/", pathObject); + }, + parse: function parse2(path) { + assertPath(path); + var ret = { + root: "", + dir: "", + base: "", + ext: "", + name: "" + }; + if (path.length === 0) return ret; + var code = path.charCodeAt(0); + var isAbsolute = code === 47; + var start; + if (isAbsolute) { + ret.root = "/"; + start = 1; + } else { + start = 0; + } + var startDot = -1; + var startPart = 0; + var end = -1; + var matchedSlash = true; + var i = path.length - 1; + var preDotState = 0; + for (; i >= start; --i) { + code = path.charCodeAt(i); + if (code === 47) { + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + matchedSlash = false; + end = i + 1; + } + if (code === 46) { + if (startDot === -1) startDot = i; + else if (preDotState !== 1) preDotState = 1; + } else if (startDot !== -1) { + preDotState = -1; + } + } + if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot + preDotState === 0 || // The (right-most) trimmed path component is exactly '..' + preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { + if (end !== -1) { + if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end); + else ret.base = ret.name = path.slice(startPart, end); + } + } else { + if (startPart === 0 && isAbsolute) { + ret.name = path.slice(1, startDot); + ret.base = path.slice(1, end); + } else { + ret.name = path.slice(startPart, startDot); + ret.base = path.slice(startPart, end); + } + ret.ext = path.slice(startDot, end); + } + if (startPart > 0) ret.dir = path.slice(0, startPart - 1); + else if (isAbsolute) ret.dir = "/"; + return ret; + }, + sep: "/", + delimiter: ":", + win32: null, + posix: null + }; + posix.posix = posix; + exports$15 = posix; + return exports$15; + } + var exports$15, _dewExec5, exports6; + var init_chunk_BlJi4mNy = __esm({ + "node_modules/@jspm/core/nodelibs/browser/chunk-BlJi4mNy.js"() { + init_dirname(); + init_buffer2(); + init_process2(); + init_chunk_DEMDiNwt(); + exports$15 = {}; + _dewExec5 = false; + exports6 = dew5(); + } + }); + + // node_modules/@jspm/core/nodelibs/browser/url.js + var url_exports = {}; + __export(url_exports, { + URL: () => _URL, + Url: () => Url, + default: () => exports7, + fileURLToPath: () => fileURLToPath, + format: () => format, + parse: () => parse, + pathToFileURL: () => pathToFileURL, + resolve: () => resolve, + resolveObject: () => resolveObject + }); + function dew$72() { + if (_dewExec$72) return exports$82; + _dewExec$72 = true; + var hasMap = typeof Map === "function" && Map.prototype; + var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, "size") : null; + var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === "function" ? mapSizeDescriptor.get : null; + var mapForEach = hasMap && Map.prototype.forEach; + var hasSet = typeof Set === "function" && Set.prototype; + var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, "size") : null; + var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === "function" ? setSizeDescriptor.get : null; + var setForEach = hasSet && Set.prototype.forEach; + var hasWeakMap = typeof WeakMap === "function" && WeakMap.prototype; + var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null; + var hasWeakSet = typeof WeakSet === "function" && WeakSet.prototype; + var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null; + var hasWeakRef = typeof WeakRef === "function" && WeakRef.prototype; + var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null; + var booleanValueOf = Boolean.prototype.valueOf; + var objectToString = Object.prototype.toString; + var functionToString = Function.prototype.toString; + var $match = String.prototype.match; + var $slice = String.prototype.slice; + var $replace = String.prototype.replace; + var $toUpperCase = String.prototype.toUpperCase; + var $toLowerCase = String.prototype.toLowerCase; + var $test = RegExp.prototype.test; + var $concat = Array.prototype.concat; + var $join = Array.prototype.join; + var $arrSlice = Array.prototype.slice; + var $floor = Math.floor; + var bigIntValueOf = typeof BigInt === "function" ? BigInt.prototype.valueOf : null; + var gOPS = Object.getOwnPropertySymbols; + var symToString = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? Symbol.prototype.toString : null; + var hasShammedSymbols = typeof Symbol === "function" && typeof Symbol.iterator === "object"; + var toStringTag = typeof Symbol === "function" && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? "object" : "symbol") ? Symbol.toStringTag : null; + var isEnumerable = Object.prototype.propertyIsEnumerable; + var gPO = (typeof Reflect === "function" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(O) { + return O.__proto__; + } : null); + function addNumericSeparator(num, str) { + if (num === Infinity || num === -Infinity || num !== num || num && num > -1e3 && num < 1e3 || $test.call(/e/, str)) { + return str; + } + var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g; + if (typeof num === "number") { + var int = num < 0 ? -$floor(-num) : $floor(num); + if (int !== num) { + var intStr = String(int); + var dec = $slice.call(str, intStr.length + 1); + return $replace.call(intStr, sepRegex, "$&_") + "." + $replace.call($replace.call(dec, /([0-9]{3})/g, "$&_"), /_$/, ""); + } + } + return $replace.call(str, sepRegex, "$&_"); + } + var utilInspect = empty; + var inspectCustom = utilInspect.custom; + var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null; + exports$82 = function inspect_(obj, options, depth, seen) { + var opts = options || {}; + if (has(opts, "quoteStyle") && opts.quoteStyle !== "single" && opts.quoteStyle !== "double") { + throw new TypeError('option "quoteStyle" must be "single" or "double"'); + } + if (has(opts, "maxStringLength") && (typeof opts.maxStringLength === "number" ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity : opts.maxStringLength !== null)) { + throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`'); + } + var customInspect = has(opts, "customInspect") ? opts.customInspect : true; + if (typeof customInspect !== "boolean" && customInspect !== "symbol") { + throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`"); + } + if (has(opts, "indent") && opts.indent !== null && opts.indent !== " " && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)) { + throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`'); + } + if (has(opts, "numericSeparator") && typeof opts.numericSeparator !== "boolean") { + throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`'); + } + var numericSeparator = opts.numericSeparator; + if (typeof obj === "undefined") { + return "undefined"; + } + if (obj === null) { + return "null"; + } + if (typeof obj === "boolean") { + return obj ? "true" : "false"; + } + if (typeof obj === "string") { + return inspectString(obj, opts); + } + if (typeof obj === "number") { + if (obj === 0) { + return Infinity / obj > 0 ? "0" : "-0"; + } + var str = String(obj); + return numericSeparator ? addNumericSeparator(obj, str) : str; + } + if (typeof obj === "bigint") { + var bigIntStr = String(obj) + "n"; + return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr; + } + var maxDepth = typeof opts.depth === "undefined" ? 5 : opts.depth; + if (typeof depth === "undefined") { + depth = 0; + } + if (depth >= maxDepth && maxDepth > 0 && typeof obj === "object") { + return isArray(obj) ? "[Array]" : "[Object]"; + } + var indent = getIndent(opts, depth); + if (typeof seen === "undefined") { + seen = []; + } else if (indexOf(seen, obj) >= 0) { + return "[Circular]"; + } + function inspect(value, from, noIndent) { + if (from) { + seen = $arrSlice.call(seen); + seen.push(from); + } + if (noIndent) { + var newOpts = { + depth: opts.depth + }; + if (has(opts, "quoteStyle")) { + newOpts.quoteStyle = opts.quoteStyle; + } + return inspect_(value, newOpts, depth + 1, seen); + } + return inspect_(value, opts, depth + 1, seen); + } + if (typeof obj === "function" && !isRegExp(obj)) { + var name2 = nameOf(obj); + var keys = arrObjKeys(obj, inspect); + return "[Function" + (name2 ? ": " + name2 : " (anonymous)") + "]" + (keys.length > 0 ? " { " + $join.call(keys, ", ") + " }" : ""); + } + if (isSymbol(obj)) { + var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, "$1") : symToString.call(obj); + return typeof obj === "object" && !hasShammedSymbols ? markBoxed(symString) : symString; + } + if (isElement(obj)) { + var s = "<" + $toLowerCase.call(String(obj.nodeName)); + var attrs = obj.attributes || []; + for (var i = 0; i < attrs.length; i++) { + s += " " + attrs[i].name + "=" + wrapQuotes(quote(attrs[i].value), "double", opts); + } + s += ">"; + if (obj.childNodes && obj.childNodes.length) { + s += "..."; + } + s += ""; + return s; + } + if (isArray(obj)) { + if (obj.length === 0) { + return "[]"; + } + var xs = arrObjKeys(obj, inspect); + if (indent && !singleLineValues(xs)) { + return "[" + indentedJoin(xs, indent) + "]"; + } + return "[ " + $join.call(xs, ", ") + " ]"; + } + if (isError(obj)) { + var parts = arrObjKeys(obj, inspect); + if (!("cause" in Error.prototype) && "cause" in obj && !isEnumerable.call(obj, "cause")) { + return "{ [" + String(obj) + "] " + $join.call($concat.call("[cause]: " + inspect(obj.cause), parts), ", ") + " }"; + } + if (parts.length === 0) { + return "[" + String(obj) + "]"; + } + return "{ [" + String(obj) + "] " + $join.call(parts, ", ") + " }"; + } + if (typeof obj === "object" && customInspect) { + if (inspectSymbol && typeof obj[inspectSymbol] === "function" && utilInspect) { + return utilInspect(obj, { + depth: maxDepth - depth + }); + } else if (customInspect !== "symbol" && typeof obj.inspect === "function") { + return obj.inspect(); + } + } + if (isMap(obj)) { + var mapParts = []; + if (mapForEach) { + mapForEach.call(obj, function(value, key) { + mapParts.push(inspect(key, obj, true) + " => " + inspect(value, obj)); + }); + } + return collectionOf("Map", mapSize.call(obj), mapParts, indent); + } + if (isSet(obj)) { + var setParts = []; + if (setForEach) { + setForEach.call(obj, function(value) { + setParts.push(inspect(value, obj)); + }); + } + return collectionOf("Set", setSize.call(obj), setParts, indent); + } + if (isWeakMap(obj)) { + return weakCollectionOf("WeakMap"); + } + if (isWeakSet(obj)) { + return weakCollectionOf("WeakSet"); + } + if (isWeakRef(obj)) { + return weakCollectionOf("WeakRef"); + } + if (isNumber(obj)) { + return markBoxed(inspect(Number(obj))); + } + if (isBigInt(obj)) { + return markBoxed(inspect(bigIntValueOf.call(obj))); + } + if (isBoolean(obj)) { + return markBoxed(booleanValueOf.call(obj)); + } + if (isString(obj)) { + return markBoxed(inspect(String(obj))); + } + if (typeof window !== "undefined" && obj === window) { + return "{ [object Window] }"; + } + if (typeof globalThis !== "undefined" && obj === globalThis || typeof _global !== "undefined" && obj === _global) { + return "{ [object globalThis] }"; + } + if (!isDate(obj) && !isRegExp(obj)) { + var ys = arrObjKeys(obj, inspect); + var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object; + var protoTag = obj instanceof Object ? "" : "null prototype"; + var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? "Object" : ""; + var constructorTag = isPlainObject || typeof obj.constructor !== "function" ? "" : obj.constructor.name ? obj.constructor.name + " " : ""; + var tag = constructorTag + (stringTag || protoTag ? "[" + $join.call($concat.call([], stringTag || [], protoTag || []), ": ") + "] " : ""); + if (ys.length === 0) { + return tag + "{}"; + } + if (indent) { + return tag + "{" + indentedJoin(ys, indent) + "}"; + } + return tag + "{ " + $join.call(ys, ", ") + " }"; + } + return String(obj); + }; + function wrapQuotes(s, defaultStyle, opts) { + var quoteChar = (opts.quoteStyle || defaultStyle) === "double" ? '"' : "'"; + return quoteChar + s + quoteChar; + } + function quote(s) { + return $replace.call(String(s), /"/g, """); + } + function isArray(obj) { + return toStr(obj) === "[object Array]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isDate(obj) { + return toStr(obj) === "[object Date]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isRegExp(obj) { + return toStr(obj) === "[object RegExp]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isError(obj) { + return toStr(obj) === "[object Error]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isString(obj) { + return toStr(obj) === "[object String]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isNumber(obj) { + return toStr(obj) === "[object Number]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isBoolean(obj) { + return toStr(obj) === "[object Boolean]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isSymbol(obj) { + if (hasShammedSymbols) { + return obj && typeof obj === "object" && obj instanceof Symbol; + } + if (typeof obj === "symbol") { + return true; + } + if (!obj || typeof obj !== "object" || !symToString) { + return false; + } + try { + symToString.call(obj); + return true; + } catch (e) { + } + return false; + } + function isBigInt(obj) { + if (!obj || typeof obj !== "object" || !bigIntValueOf) { + return false; + } + try { + bigIntValueOf.call(obj); + return true; + } catch (e) { + } + return false; + } + var hasOwn = Object.prototype.hasOwnProperty || function(key) { + return key in (this || _global); + }; + function has(obj, key) { + return hasOwn.call(obj, key); + } + function toStr(obj) { + return objectToString.call(obj); + } + function nameOf(f) { + if (f.name) { + return f.name; + } + var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/); + if (m) { + return m[1]; + } + return null; + } + function indexOf(xs, x) { + if (xs.indexOf) { + return xs.indexOf(x); + } + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) { + return i; + } + } + return -1; + } + function isMap(x) { + if (!mapSize || !x || typeof x !== "object") { + return false; + } + try { + mapSize.call(x); + try { + setSize.call(x); + } catch (s) { + return true; + } + return x instanceof Map; + } catch (e) { + } + return false; + } + function isWeakMap(x) { + if (!weakMapHas || !x || typeof x !== "object") { + return false; + } + try { + weakMapHas.call(x, weakMapHas); + try { + weakSetHas.call(x, weakSetHas); + } catch (s) { + return true; + } + return x instanceof WeakMap; + } catch (e) { + } + return false; + } + function isWeakRef(x) { + if (!weakRefDeref || !x || typeof x !== "object") { + return false; + } + try { + weakRefDeref.call(x); + return true; + } catch (e) { + } + return false; + } + function isSet(x) { + if (!setSize || !x || typeof x !== "object") { + return false; + } + try { + setSize.call(x); + try { + mapSize.call(x); + } catch (m) { + return true; + } + return x instanceof Set; + } catch (e) { + } + return false; + } + function isWeakSet(x) { + if (!weakSetHas || !x || typeof x !== "object") { + return false; + } + try { + weakSetHas.call(x, weakSetHas); + try { + weakMapHas.call(x, weakMapHas); + } catch (s) { + return true; + } + return x instanceof WeakSet; + } catch (e) { + } + return false; + } + function isElement(x) { + if (!x || typeof x !== "object") { + return false; + } + if (typeof HTMLElement !== "undefined" && x instanceof HTMLElement) { + return true; + } + return typeof x.nodeName === "string" && typeof x.getAttribute === "function"; + } + function inspectString(str, opts) { + if (str.length > opts.maxStringLength) { + var remaining = str.length - opts.maxStringLength; + var trailer = "... " + remaining + " more character" + (remaining > 1 ? "s" : ""); + return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer; + } + var s = $replace.call($replace.call(str, /(['\\])/g, "\\$1"), /[\x00-\x1f]/g, lowbyte); + return wrapQuotes(s, "single", opts); + } + function lowbyte(c) { + var n = c.charCodeAt(0); + var x = { + 8: "b", + 9: "t", + 10: "n", + 12: "f", + 13: "r" + }[n]; + if (x) { + return "\\" + x; + } + return "\\x" + (n < 16 ? "0" : "") + $toUpperCase.call(n.toString(16)); + } + function markBoxed(str) { + return "Object(" + str + ")"; + } + function weakCollectionOf(type) { + return type + " { ? }"; + } + function collectionOf(type, size, entries, indent) { + var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ", "); + return type + " (" + size + ") {" + joinedEntries + "}"; + } + function singleLineValues(xs) { + for (var i = 0; i < xs.length; i++) { + if (indexOf(xs[i], "\n") >= 0) { + return false; + } + } + return true; + } + function getIndent(opts, depth) { + var baseIndent; + if (opts.indent === " ") { + baseIndent = " "; + } else if (typeof opts.indent === "number" && opts.indent > 0) { + baseIndent = $join.call(Array(opts.indent + 1), " "); + } else { + return null; + } + return { + base: baseIndent, + prev: $join.call(Array(depth + 1), baseIndent) + }; + } + function indentedJoin(xs, indent) { + if (xs.length === 0) { + return ""; + } + var lineJoiner = "\n" + indent.prev + indent.base; + return lineJoiner + $join.call(xs, "," + lineJoiner) + "\n" + indent.prev; + } + function arrObjKeys(obj, inspect) { + var isArr = isArray(obj); + var xs = []; + if (isArr) { + xs.length = obj.length; + for (var i = 0; i < obj.length; i++) { + xs[i] = has(obj, i) ? inspect(obj[i], obj) : ""; + } + } + var syms = typeof gOPS === "function" ? gOPS(obj) : []; + var symMap; + if (hasShammedSymbols) { + symMap = {}; + for (var k = 0; k < syms.length; k++) { + symMap["$" + syms[k]] = syms[k]; + } + } + for (var key in obj) { + if (!has(obj, key)) { + continue; + } + if (isArr && String(Number(key)) === key && key < obj.length) { + continue; + } + if (hasShammedSymbols && symMap["$" + key] instanceof Symbol) { + continue; + } else if ($test.call(/[^\w$]/, key)) { + xs.push(inspect(key, obj) + ": " + inspect(obj[key], obj)); + } else { + xs.push(key + ": " + inspect(obj[key], obj)); + } + } + if (typeof gOPS === "function") { + for (var j = 0; j < syms.length; j++) { + if (isEnumerable.call(obj, syms[j])) { + xs.push("[" + inspect(syms[j]) + "]: " + inspect(obj[syms[j]], obj)); + } + } + } + return xs; + } + return exports$82; + } + function dew$62() { + if (_dewExec$62) return exports$72; + _dewExec$62 = true; + var GetIntrinsic = dew$7(); + var callBound = dew4(); + var inspect = dew$72(); + var $TypeError = dew$e(); + var $WeakMap = GetIntrinsic("%WeakMap%", true); + var $Map = GetIntrinsic("%Map%", true); + var $weakMapGet = callBound("WeakMap.prototype.get", true); + var $weakMapSet = callBound("WeakMap.prototype.set", true); + var $weakMapHas = callBound("WeakMap.prototype.has", true); + var $mapGet = callBound("Map.prototype.get", true); + var $mapSet = callBound("Map.prototype.set", true); + var $mapHas = callBound("Map.prototype.has", true); + var listGetNode = function(list, key) { + var prev = list; + var curr; + for (; (curr = prev.next) !== null; prev = curr) { + if (curr.key === key) { + prev.next = curr.next; + curr.next = /** @type {NonNullable} */ + list.next; + list.next = curr; + return curr; + } + } + }; + var listGet = function(objects, key) { + var node = listGetNode(objects, key); + return node && node.value; + }; + var listSet = function(objects, key, value) { + var node = listGetNode(objects, key); + if (node) { + node.value = value; + } else { + objects.next = /** @type {import('.').ListNode} */ + { + // eslint-disable-line no-param-reassign, no-extra-parens + key, + next: objects.next, + value + }; + } + }; + var listHas = function(objects, key) { + return !!listGetNode(objects, key); + }; + exports$72 = function getSideChannel() { + var $wm; + var $m; + var $o; + var channel = { + assert: function(key) { + if (!channel.has(key)) { + throw new $TypeError("Side channel does not contain " + inspect(key)); + } + }, + get: function(key) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if ($wm) { + return $weakMapGet($wm, key); + } + } else if ($Map) { + if ($m) { + return $mapGet($m, key); + } + } else { + if ($o) { + return listGet($o, key); + } + } + }, + has: function(key) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if ($wm) { + return $weakMapHas($wm, key); + } + } else if ($Map) { + if ($m) { + return $mapHas($m, key); + } + } else { + if ($o) { + return listHas($o, key); + } + } + return false; + }, + set: function(key, value) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if (!$wm) { + $wm = new $WeakMap(); + } + $weakMapSet($wm, key, value); + } else if ($Map) { + if (!$m) { + $m = new $Map(); + } + $mapSet($m, key, value); + } else { + if (!$o) { + $o = { + key: {}, + next: null + }; + } + listSet($o, key, value); + } + } + }; + return channel; + }; + return exports$72; + } + function dew$52() { + if (_dewExec$52) return exports$62; + _dewExec$52 = true; + var replace = String.prototype.replace; + var percentTwenties = /%20/g; + var Format = { + RFC1738: "RFC1738", + RFC3986: "RFC3986" + }; + exports$62 = { + "default": Format.RFC3986, + formatters: { + RFC1738: function(value) { + return replace.call(value, percentTwenties, "+"); + }, + RFC3986: function(value) { + return String(value); + } + }, + RFC1738: Format.RFC1738, + RFC3986: Format.RFC3986 + }; + return exports$62; + } + function dew$42() { + if (_dewExec$42) return exports$52; + _dewExec$42 = true; + var formats = dew$52(); + var has = Object.prototype.hasOwnProperty; + var isArray = Array.isArray; + var hexTable = function() { + var array = []; + for (var i = 0; i < 256; ++i) { + array.push("%" + ((i < 16 ? "0" : "") + i.toString(16)).toUpperCase()); + } + return array; + }(); + var compactQueue = function compactQueue2(queue3) { + while (queue3.length > 1) { + var item = queue3.pop(); + var obj = item.obj[item.prop]; + if (isArray(obj)) { + var compacted = []; + for (var j = 0; j < obj.length; ++j) { + if (typeof obj[j] !== "undefined") { + compacted.push(obj[j]); + } + } + item.obj[item.prop] = compacted; + } + } + }; + var arrayToObject = function arrayToObject2(source, options) { + var obj = options && options.plainObjects ? /* @__PURE__ */ Object.create(null) : {}; + for (var i = 0; i < source.length; ++i) { + if (typeof source[i] !== "undefined") { + obj[i] = source[i]; + } + } + return obj; + }; + var merge = function merge2(target, source, options) { + if (!source) { + return target; + } + if (typeof source !== "object") { + if (isArray(target)) { + target.push(source); + } else if (target && typeof target === "object") { + if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) { + target[source] = true; + } + } else { + return [target, source]; + } + return target; + } + if (!target || typeof target !== "object") { + return [target].concat(source); + } + var mergeTarget = target; + if (isArray(target) && !isArray(source)) { + mergeTarget = arrayToObject(target, options); + } + if (isArray(target) && isArray(source)) { + source.forEach(function(item, i) { + if (has.call(target, i)) { + var targetItem = target[i]; + if (targetItem && typeof targetItem === "object" && item && typeof item === "object") { + target[i] = merge2(targetItem, item, options); + } else { + target.push(item); + } + } else { + target[i] = item; + } + }); + return target; + } + return Object.keys(source).reduce(function(acc, key) { + var value = source[key]; + if (has.call(acc, key)) { + acc[key] = merge2(acc[key], value, options); + } else { + acc[key] = value; + } + return acc; + }, mergeTarget); + }; + var assign = function assignSingleSource(target, source) { + return Object.keys(source).reduce(function(acc, key) { + acc[key] = source[key]; + return acc; + }, target); + }; + var decode2 = function(str, decoder, charset) { + var strWithoutPlus = str.replace(/\+/g, " "); + if (charset === "iso-8859-1") { + return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); + } + try { + return decodeURIComponent(strWithoutPlus); + } catch (e) { + return strWithoutPlus; + } + }; + var limit = 1024; + var encode2 = function encode3(str, defaultEncoder, charset, kind, format2) { + if (str.length === 0) { + return str; + } + var string = str; + if (typeof str === "symbol") { + string = Symbol.prototype.toString.call(str); + } else if (typeof str !== "string") { + string = String(str); + } + if (charset === "iso-8859-1") { + return escape(string).replace(/%u[0-9a-f]{4}/gi, function($0) { + return "%26%23" + parseInt($0.slice(2), 16) + "%3B"; + }); + } + var out = ""; + for (var j = 0; j < string.length; j += limit) { + var segment = string.length >= limit ? string.slice(j, j + limit) : string; + var arr = []; + for (var i = 0; i < segment.length; ++i) { + var c = segment.charCodeAt(i); + if (c === 45 || c === 46 || c === 95 || c === 126 || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 || format2 === formats.RFC1738 && (c === 40 || c === 41)) { + arr[arr.length] = segment.charAt(i); + continue; + } + if (c < 128) { + arr[arr.length] = hexTable[c]; + continue; + } + if (c < 2048) { + arr[arr.length] = hexTable[192 | c >> 6] + hexTable[128 | c & 63]; + continue; + } + if (c < 55296 || c >= 57344) { + arr[arr.length] = hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63]; + continue; + } + i += 1; + c = 65536 + ((c & 1023) << 10 | segment.charCodeAt(i) & 1023); + arr[arr.length] = hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63]; + } + out += arr.join(""); + } + return out; + }; + var compact = function compact2(value) { + var queue3 = [{ + obj: { + o: value + }, + prop: "o" + }]; + var refs = []; + for (var i = 0; i < queue3.length; ++i) { + var item = queue3[i]; + var obj = item.obj[item.prop]; + var keys = Object.keys(obj); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + var val = obj[key]; + if (typeof val === "object" && val !== null && refs.indexOf(val) === -1) { + queue3.push({ + obj, + prop: key + }); + refs.push(val); + } + } + } + compactQueue(queue3); + return value; + }; + var isRegExp = function isRegExp2(obj) { + return Object.prototype.toString.call(obj) === "[object RegExp]"; + }; + var isBuffer = function isBuffer2(obj) { + if (!obj || typeof obj !== "object") { + return false; + } + return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); + }; + var combine = function combine2(a, b) { + return [].concat(a, b); + }; + var maybeMap = function maybeMap2(val, fn) { + if (isArray(val)) { + var mapped = []; + for (var i = 0; i < val.length; i += 1) { + mapped.push(fn(val[i])); + } + return mapped; + } + return fn(val); + }; + exports$52 = { + arrayToObject, + assign, + combine, + compact, + decode: decode2, + encode: encode2, + isBuffer, + isRegExp, + maybeMap, + merge + }; + return exports$52; + } + function dew$32() { + if (_dewExec$32) return exports$42; + _dewExec$32 = true; + var getSideChannel = dew$62(); + var utils = dew$42(); + var formats = dew$52(); + var has = Object.prototype.hasOwnProperty; + var arrayPrefixGenerators = { + brackets: function brackets(prefix) { + return prefix + "[]"; + }, + comma: "comma", + indices: function indices(prefix, key) { + return prefix + "[" + key + "]"; + }, + repeat: function repeat(prefix) { + return prefix; + } + }; + var isArray = Array.isArray; + var push = Array.prototype.push; + var pushToArray = function(arr, valueOrArray) { + push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); + }; + var toISO = Date.prototype.toISOString; + var defaultFormat = formats["default"]; + var defaults = { + addQueryPrefix: false, + allowDots: false, + allowEmptyArrays: false, + arrayFormat: "indices", + charset: "utf-8", + charsetSentinel: false, + delimiter: "&", + encode: true, + encodeDotInKeys: false, + encoder: utils.encode, + encodeValuesOnly: false, + format: defaultFormat, + formatter: formats.formatters[defaultFormat], + // deprecated + indices: false, + serializeDate: function serializeDate(date) { + return toISO.call(date); + }, + skipNulls: false, + strictNullHandling: false + }; + var isNonNullishPrimitive = function isNonNullishPrimitive2(v) { + return typeof v === "string" || typeof v === "number" || typeof v === "boolean" || typeof v === "symbol" || typeof v === "bigint"; + }; + var sentinel = {}; + var stringify = function stringify2(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format2, formatter, encodeValuesOnly, charset, sideChannel) { + var obj = object; + var tmpSc = sideChannel; + var step = 0; + var findFlag = false; + while ((tmpSc = tmpSc.get(sentinel)) !== void 0 && !findFlag) { + var pos = tmpSc.get(object); + step += 1; + if (typeof pos !== "undefined") { + if (pos === step) { + throw new RangeError("Cyclic object value"); + } else { + findFlag = true; + } + } + if (typeof tmpSc.get(sentinel) === "undefined") { + step = 0; + } + } + if (typeof filter === "function") { + obj = filter(prefix, obj); + } else if (obj instanceof Date) { + obj = serializeDate(obj); + } else if (generateArrayPrefix === "comma" && isArray(obj)) { + obj = utils.maybeMap(obj, function(value2) { + if (value2 instanceof Date) { + return serializeDate(value2); + } + return value2; + }); + } + if (obj === null) { + if (strictNullHandling) { + return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, "key", format2) : prefix; + } + obj = ""; + } + if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) { + if (encoder) { + var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, "key", format2); + return [formatter(keyValue) + "=" + formatter(encoder(obj, defaults.encoder, charset, "value", format2))]; + } + return [formatter(prefix) + "=" + formatter(String(obj))]; + } + var values = []; + if (typeof obj === "undefined") { + return values; + } + var objKeys; + if (generateArrayPrefix === "comma" && isArray(obj)) { + if (encodeValuesOnly && encoder) { + obj = utils.maybeMap(obj, encoder); + } + objKeys = [{ + value: obj.length > 0 ? obj.join(",") || null : void 0 + }]; + } else if (isArray(filter)) { + objKeys = filter; + } else { + var keys = Object.keys(obj); + objKeys = sort ? keys.sort(sort) : keys; + } + var encodedPrefix = encodeDotInKeys ? prefix.replace(/\./g, "%2E") : prefix; + var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + "[]" : encodedPrefix; + if (allowEmptyArrays && isArray(obj) && obj.length === 0) { + return adjustedPrefix + "[]"; + } + for (var j = 0; j < objKeys.length; ++j) { + var key = objKeys[j]; + var value = typeof key === "object" && typeof key.value !== "undefined" ? key.value : obj[key]; + if (skipNulls && value === null) { + continue; + } + var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\./g, "%2E") : key; + var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === "function" ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix : adjustedPrefix + (allowDots ? "." + encodedKey : "[" + encodedKey + "]"); + sideChannel.set(object, step); + var valueSideChannel = getSideChannel(); + valueSideChannel.set(sentinel, sideChannel); + pushToArray(values, stringify2(value, keyPrefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, generateArrayPrefix === "comma" && encodeValuesOnly && isArray(obj) ? null : encoder, filter, sort, allowDots, serializeDate, format2, formatter, encodeValuesOnly, charset, valueSideChannel)); + } + return values; + }; + var normalizeStringifyOptions = function normalizeStringifyOptions2(opts) { + if (!opts) { + return defaults; + } + if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") { + throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided"); + } + if (typeof opts.encodeDotInKeys !== "undefined" && typeof opts.encodeDotInKeys !== "boolean") { + throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided"); + } + if (opts.encoder !== null && typeof opts.encoder !== "undefined" && typeof opts.encoder !== "function") { + throw new TypeError("Encoder has to be a function."); + } + var charset = opts.charset || defaults.charset; + if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") { + throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined"); + } + var format2 = formats["default"]; + if (typeof opts.format !== "undefined") { + if (!has.call(formats.formatters, opts.format)) { + throw new TypeError("Unknown format option provided."); + } + format2 = opts.format; + } + var formatter = formats.formatters[format2]; + var filter = defaults.filter; + if (typeof opts.filter === "function" || isArray(opts.filter)) { + filter = opts.filter; + } + var arrayFormat; + if (opts.arrayFormat in arrayPrefixGenerators) { + arrayFormat = opts.arrayFormat; + } else if ("indices" in opts) { + arrayFormat = opts.indices ? "indices" : "repeat"; + } else { + arrayFormat = defaults.arrayFormat; + } + if ("commaRoundTrip" in opts && typeof opts.commaRoundTrip !== "boolean") { + throw new TypeError("`commaRoundTrip` must be a boolean, or absent"); + } + var allowDots = typeof opts.allowDots === "undefined" ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots; + return { + addQueryPrefix: typeof opts.addQueryPrefix === "boolean" ? opts.addQueryPrefix : defaults.addQueryPrefix, + allowDots, + allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays, + arrayFormat, + charset, + charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel, + commaRoundTrip: opts.commaRoundTrip, + delimiter: typeof opts.delimiter === "undefined" ? defaults.delimiter : opts.delimiter, + encode: typeof opts.encode === "boolean" ? opts.encode : defaults.encode, + encodeDotInKeys: typeof opts.encodeDotInKeys === "boolean" ? opts.encodeDotInKeys : defaults.encodeDotInKeys, + encoder: typeof opts.encoder === "function" ? opts.encoder : defaults.encoder, + encodeValuesOnly: typeof opts.encodeValuesOnly === "boolean" ? opts.encodeValuesOnly : defaults.encodeValuesOnly, + filter, + format: format2, + formatter, + serializeDate: typeof opts.serializeDate === "function" ? opts.serializeDate : defaults.serializeDate, + skipNulls: typeof opts.skipNulls === "boolean" ? opts.skipNulls : defaults.skipNulls, + sort: typeof opts.sort === "function" ? opts.sort : null, + strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling + }; + }; + exports$42 = function(object, opts) { + var obj = object; + var options = normalizeStringifyOptions(opts); + var objKeys; + var filter; + if (typeof options.filter === "function") { + filter = options.filter; + obj = filter("", obj); + } else if (isArray(options.filter)) { + filter = options.filter; + objKeys = filter; + } + var keys = []; + if (typeof obj !== "object" || obj === null) { + return ""; + } + var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat]; + var commaRoundTrip = generateArrayPrefix === "comma" && options.commaRoundTrip; + if (!objKeys) { + objKeys = Object.keys(obj); + } + if (options.sort) { + objKeys.sort(options.sort); + } + var sideChannel = getSideChannel(); + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + if (options.skipNulls && obj[key] === null) { + continue; + } + pushToArray(keys, stringify(obj[key], key, generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel)); + } + var joined = keys.join(options.delimiter); + var prefix = options.addQueryPrefix === true ? "?" : ""; + if (options.charsetSentinel) { + if (options.charset === "iso-8859-1") { + prefix += "utf8=%26%2310003%3B&"; + } else { + prefix += "utf8=%E2%9C%93&"; + } + } + return joined.length > 0 ? prefix + joined : ""; + }; + return exports$42; + } + function dew$23() { + if (_dewExec$23) return exports$32; + _dewExec$23 = true; + var utils = dew$42(); + var has = Object.prototype.hasOwnProperty; + var isArray = Array.isArray; + var defaults = { + allowDots: false, + allowEmptyArrays: false, + allowPrototypes: false, + allowSparse: false, + arrayLimit: 20, + charset: "utf-8", + charsetSentinel: false, + comma: false, + decodeDotInKeys: false, + decoder: utils.decode, + delimiter: "&", + depth: 5, + duplicates: "combine", + ignoreQueryPrefix: false, + interpretNumericEntities: false, + parameterLimit: 1e3, + parseArrays: true, + plainObjects: false, + strictDepth: false, + strictNullHandling: false + }; + var interpretNumericEntities = function(str) { + return str.replace(/&#(\d+);/g, function($0, numberStr) { + return String.fromCharCode(parseInt(numberStr, 10)); + }); + }; + var parseArrayValue = function(val, options) { + if (val && typeof val === "string" && options.comma && val.indexOf(",") > -1) { + return val.split(","); + } + return val; + }; + var isoSentinel = "utf8=%26%2310003%3B"; + var charsetSentinel = "utf8=%E2%9C%93"; + var parseValues = function parseQueryStringValues(str, options) { + var obj = { + __proto__: null + }; + var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, "") : str; + cleanStr = cleanStr.replace(/%5B/gi, "[").replace(/%5D/gi, "]"); + var limit = options.parameterLimit === Infinity ? void 0 : options.parameterLimit; + var parts = cleanStr.split(options.delimiter, limit); + var skipIndex = -1; + var i; + var charset = options.charset; + if (options.charsetSentinel) { + for (i = 0; i < parts.length; ++i) { + if (parts[i].indexOf("utf8=") === 0) { + if (parts[i] === charsetSentinel) { + charset = "utf-8"; + } else if (parts[i] === isoSentinel) { + charset = "iso-8859-1"; + } + skipIndex = i; + i = parts.length; + } + } + } + for (i = 0; i < parts.length; ++i) { + if (i === skipIndex) { + continue; + } + var part = parts[i]; + var bracketEqualsPos = part.indexOf("]="); + var pos = bracketEqualsPos === -1 ? part.indexOf("=") : bracketEqualsPos + 1; + var key, val; + if (pos === -1) { + key = options.decoder(part, defaults.decoder, charset, "key"); + val = options.strictNullHandling ? null : ""; + } else { + key = options.decoder(part.slice(0, pos), defaults.decoder, charset, "key"); + val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options), function(encodedVal) { + return options.decoder(encodedVal, defaults.decoder, charset, "value"); + }); + } + if (val && options.interpretNumericEntities && charset === "iso-8859-1") { + val = interpretNumericEntities(val); + } + if (part.indexOf("[]=") > -1) { + val = isArray(val) ? [val] : val; + } + var existing = has.call(obj, key); + if (existing && options.duplicates === "combine") { + obj[key] = utils.combine(obj[key], val); + } else if (!existing || options.duplicates === "last") { + obj[key] = val; + } + } + return obj; + }; + var parseObject = function(chain, val, options, valuesParsed) { + var leaf = valuesParsed ? val : parseArrayValue(val, options); + for (var i = chain.length - 1; i >= 0; --i) { + var obj; + var root = chain[i]; + if (root === "[]" && options.parseArrays) { + obj = options.allowEmptyArrays && (leaf === "" || options.strictNullHandling && leaf === null) ? [] : [].concat(leaf); + } else { + obj = options.plainObjects ? /* @__PURE__ */ Object.create(null) : {}; + var cleanRoot = root.charAt(0) === "[" && root.charAt(root.length - 1) === "]" ? root.slice(1, -1) : root; + var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, ".") : cleanRoot; + var index = parseInt(decodedRoot, 10); + if (!options.parseArrays && decodedRoot === "") { + obj = { + 0: leaf + }; + } else if (!isNaN(index) && root !== decodedRoot && String(index) === decodedRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit) { + obj = []; + obj[index] = leaf; + } else if (decodedRoot !== "__proto__") { + obj[decodedRoot] = leaf; + } + } + leaf = obj; + } + return leaf; + }; + var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) { + if (!givenKey) { + return; + } + var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, "[$1]") : givenKey; + var brackets = /(\[[^[\]]*])/; + var child = /(\[[^[\]]*])/g; + var segment = options.depth > 0 && brackets.exec(key); + var parent = segment ? key.slice(0, segment.index) : key; + var keys = []; + if (parent) { + if (!options.plainObjects && has.call(Object.prototype, parent)) { + if (!options.allowPrototypes) { + return; + } + } + keys.push(parent); + } + var i = 0; + while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) { + i += 1; + if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) { + if (!options.allowPrototypes) { + return; + } + } + keys.push(segment[1]); + } + if (segment) { + if (options.strictDepth === true) { + throw new RangeError("Input depth exceeded depth option of " + options.depth + " and strictDepth is true"); + } + keys.push("[" + key.slice(segment.index) + "]"); + } + return parseObject(keys, val, options, valuesParsed); + }; + var normalizeParseOptions = function normalizeParseOptions2(opts) { + if (!opts) { + return defaults; + } + if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") { + throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided"); + } + if (typeof opts.decodeDotInKeys !== "undefined" && typeof opts.decodeDotInKeys !== "boolean") { + throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided"); + } + if (opts.decoder !== null && typeof opts.decoder !== "undefined" && typeof opts.decoder !== "function") { + throw new TypeError("Decoder has to be a function."); + } + if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") { + throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined"); + } + var charset = typeof opts.charset === "undefined" ? defaults.charset : opts.charset; + var duplicates = typeof opts.duplicates === "undefined" ? defaults.duplicates : opts.duplicates; + if (duplicates !== "combine" && duplicates !== "first" && duplicates !== "last") { + throw new TypeError("The duplicates option must be either combine, first, or last"); + } + var allowDots = typeof opts.allowDots === "undefined" ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots; + return { + allowDots, + allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays, + allowPrototypes: typeof opts.allowPrototypes === "boolean" ? opts.allowPrototypes : defaults.allowPrototypes, + allowSparse: typeof opts.allowSparse === "boolean" ? opts.allowSparse : defaults.allowSparse, + arrayLimit: typeof opts.arrayLimit === "number" ? opts.arrayLimit : defaults.arrayLimit, + charset, + charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel, + comma: typeof opts.comma === "boolean" ? opts.comma : defaults.comma, + decodeDotInKeys: typeof opts.decodeDotInKeys === "boolean" ? opts.decodeDotInKeys : defaults.decodeDotInKeys, + decoder: typeof opts.decoder === "function" ? opts.decoder : defaults.decoder, + delimiter: typeof opts.delimiter === "string" || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, + // eslint-disable-next-line no-implicit-coercion, no-extra-parens + depth: typeof opts.depth === "number" || opts.depth === false ? +opts.depth : defaults.depth, + duplicates, + ignoreQueryPrefix: opts.ignoreQueryPrefix === true, + interpretNumericEntities: typeof opts.interpretNumericEntities === "boolean" ? opts.interpretNumericEntities : defaults.interpretNumericEntities, + parameterLimit: typeof opts.parameterLimit === "number" ? opts.parameterLimit : defaults.parameterLimit, + parseArrays: opts.parseArrays !== false, + plainObjects: typeof opts.plainObjects === "boolean" ? opts.plainObjects : defaults.plainObjects, + strictDepth: typeof opts.strictDepth === "boolean" ? !!opts.strictDepth : defaults.strictDepth, + strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling + }; + }; + exports$32 = function(str, opts) { + var options = normalizeParseOptions(opts); + if (str === "" || str === null || typeof str === "undefined") { + return options.plainObjects ? /* @__PURE__ */ Object.create(null) : {}; + } + var tempObj = typeof str === "string" ? parseValues(str, options) : str; + var obj = options.plainObjects ? /* @__PURE__ */ Object.create(null) : {}; + var keys = Object.keys(tempObj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var newObj = parseKeys(key, tempObj[key], options, typeof str === "string"); + obj = utils.merge(obj, newObj, options); + } + if (options.allowSparse === true) { + return obj; + } + return utils.compact(obj); + }; + return exports$32; + } + function dew$13() { + if (_dewExec$13) return exports$23; + _dewExec$13 = true; + var stringify = dew$32(); + var parse2 = dew$23(); + var formats = dew$52(); + exports$23 = { + formats, + parse: parse2, + stringify + }; + return exports$23; + } + function dew6() { + if (_dewExec6) return exports$16; + _dewExec6 = true; + var punycode = exports4; + function Url2() { + this.protocol = null; + this.slashes = null; + this.auth = null; + this.host = null; + this.port = null; + this.hostname = null; + this.hash = null; + this.search = null; + this.query = null; + this.pathname = null; + this.path = null; + this.href = null; + } + var protocolPattern = /^([a-z0-9.+-]+:)/i, portPattern = /:[0-9]*$/, simplePathPattern = /^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/, delims = ["<", ">", '"', "`", " ", "\r", "\n", " "], unwise = ["{", "}", "|", "\\", "^", "`"].concat(delims), autoEscape = ["'"].concat(unwise), nonHostChars = ["%", "/", "?", ";", "#"].concat(autoEscape), hostEndingChars = ["/", "?", "#"], hostnameMaxLen = 255, hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/, hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, unsafeProtocol = { + javascript: true, + "javascript:": true + }, hostlessProtocol = { + javascript: true, + "javascript:": true + }, slashedProtocol = { + http: true, + https: true, + ftp: true, + gopher: true, + file: true, + "http:": true, + "https:": true, + "ftp:": true, + "gopher:": true, + "file:": true + }, querystring = dew$13(); + function urlParse(url, parseQueryString, slashesDenoteHost) { + if (url && typeof url === "object" && url instanceof Url2) { + return url; + } + var u = new Url2(); + u.parse(url, parseQueryString, slashesDenoteHost); + return u; + } + Url2.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { + if (typeof url !== "string") { + throw new TypeError("Parameter 'url' must be a string, not " + typeof url); + } + var queryIndex = url.indexOf("?"), splitter = queryIndex !== -1 && queryIndex < url.indexOf("#") ? "?" : "#", uSplit = url.split(splitter), slashRegex = /\\/g; + uSplit[0] = uSplit[0].replace(slashRegex, "/"); + url = uSplit.join(splitter); + var rest = url; + rest = rest.trim(); + if (!slashesDenoteHost && url.split("#").length === 1) { + var simplePath = simplePathPattern.exec(rest); + if (simplePath) { + this.path = rest; + this.href = rest; + this.pathname = simplePath[1]; + if (simplePath[2]) { + this.search = simplePath[2]; + if (parseQueryString) { + this.query = querystring.parse(this.search.substr(1)); + } else { + this.query = this.search.substr(1); + } + } else if (parseQueryString) { + this.search = ""; + this.query = {}; + } + return this; + } + } + var proto = protocolPattern.exec(rest); + if (proto) { + proto = proto[0]; + var lowerProto = proto.toLowerCase(); + this.protocol = lowerProto; + rest = rest.substr(proto.length); + } + if (slashesDenoteHost || proto || rest.match(/^\/\/[^@/]+@[^@/]+/)) { + var slashes = rest.substr(0, 2) === "//"; + if (slashes && !(proto && hostlessProtocol[proto])) { + rest = rest.substr(2); + this.slashes = true; + } + } + if (!hostlessProtocol[proto] && (slashes || proto && !slashedProtocol[proto])) { + var hostEnd = -1; + for (var i = 0; i < hostEndingChars.length; i++) { + var hec = rest.indexOf(hostEndingChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { + hostEnd = hec; + } + } + var auth, atSign; + if (hostEnd === -1) { + atSign = rest.lastIndexOf("@"); + } else { + atSign = rest.lastIndexOf("@", hostEnd); + } + if (atSign !== -1) { + auth = rest.slice(0, atSign); + rest = rest.slice(atSign + 1); + this.auth = decodeURIComponent(auth); + } + hostEnd = -1; + for (var i = 0; i < nonHostChars.length; i++) { + var hec = rest.indexOf(nonHostChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { + hostEnd = hec; + } + } + if (hostEnd === -1) { + hostEnd = rest.length; + } + this.host = rest.slice(0, hostEnd); + rest = rest.slice(hostEnd); + this.parseHost(); + this.hostname = this.hostname || ""; + var ipv6Hostname = this.hostname[0] === "[" && this.hostname[this.hostname.length - 1] === "]"; + if (!ipv6Hostname) { + var hostparts = this.hostname.split(/\./); + for (var i = 0, l = hostparts.length; i < l; i++) { + var part = hostparts[i]; + if (!part) { + continue; + } + if (!part.match(hostnamePartPattern)) { + var newpart = ""; + for (var j = 0, k = part.length; j < k; j++) { + if (part.charCodeAt(j) > 127) { + newpart += "x"; + } else { + newpart += part[j]; + } + } + if (!newpart.match(hostnamePartPattern)) { + var validParts = hostparts.slice(0, i); + var notHost = hostparts.slice(i + 1); + var bit = part.match(hostnamePartStart); + if (bit) { + validParts.push(bit[1]); + notHost.unshift(bit[2]); + } + if (notHost.length) { + rest = "/" + notHost.join(".") + rest; + } + this.hostname = validParts.join("."); + break; + } + } + } + } + if (this.hostname.length > hostnameMaxLen) { + this.hostname = ""; + } else { + this.hostname = this.hostname.toLowerCase(); + } + if (!ipv6Hostname) { + this.hostname = punycode.toASCII(this.hostname); + } + var p = this.port ? ":" + this.port : ""; + var h = this.hostname || ""; + this.host = h + p; + this.href += this.host; + if (ipv6Hostname) { + this.hostname = this.hostname.substr(1, this.hostname.length - 2); + if (rest[0] !== "/") { + rest = "/" + rest; + } + } + } + if (!unsafeProtocol[lowerProto]) { + for (var i = 0, l = autoEscape.length; i < l; i++) { + var ae = autoEscape[i]; + if (rest.indexOf(ae) === -1) { + continue; + } + var esc = encodeURIComponent(ae); + if (esc === ae) { + esc = escape(ae); + } + rest = rest.split(ae).join(esc); + } + } + var hash = rest.indexOf("#"); + if (hash !== -1) { + this.hash = rest.substr(hash); + rest = rest.slice(0, hash); + } + var qm = rest.indexOf("?"); + if (qm !== -1) { + this.search = rest.substr(qm); + this.query = rest.substr(qm + 1); + if (parseQueryString) { + this.query = querystring.parse(this.query); + } + rest = rest.slice(0, qm); + } else if (parseQueryString) { + this.search = ""; + this.query = {}; + } + if (rest) { + this.pathname = rest; + } + if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) { + this.pathname = "/"; + } + if (this.pathname || this.search) { + var p = this.pathname || ""; + var s = this.search || ""; + this.path = p + s; + } + this.href = this.format(); + return this; + }; + function urlFormat(obj) { + if (typeof obj === "string") { + obj = urlParse(obj); + } + if (!(obj instanceof Url2)) { + return Url2.prototype.format.call(obj); + } + return obj.format(); + } + Url2.prototype.format = function() { + var auth = this.auth || ""; + if (auth) { + auth = encodeURIComponent(auth); + auth = auth.replace(/%3A/i, ":"); + auth += "@"; + } + var protocol = this.protocol || "", pathname = this.pathname || "", hash = this.hash || "", host = false, query = ""; + if (this.host) { + host = auth + this.host; + } else if (this.hostname) { + host = auth + (this.hostname.indexOf(":") === -1 ? this.hostname : "[" + this.hostname + "]"); + if (this.port) { + host += ":" + this.port; + } + } + if (this.query && typeof this.query === "object" && Object.keys(this.query).length) { + query = querystring.stringify(this.query, { + arrayFormat: "repeat", + addQueryPrefix: false + }); + } + var search = this.search || query && "?" + query || ""; + if (protocol && protocol.substr(-1) !== ":") { + protocol += ":"; + } + if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) { + host = "//" + (host || ""); + if (pathname && pathname.charAt(0) !== "/") { + pathname = "/" + pathname; + } + } else if (!host) { + host = ""; + } + if (hash && hash.charAt(0) !== "#") { + hash = "#" + hash; + } + if (search && search.charAt(0) !== "?") { + search = "?" + search; + } + pathname = pathname.replace(/[?#]/g, function(match) { + return encodeURIComponent(match); + }); + search = search.replace("#", "%23"); + return protocol + host + pathname + search + hash; + }; + function urlResolve(source, relative) { + return urlParse(source, false, true).resolve(relative); + } + Url2.prototype.resolve = function(relative) { + return this.resolveObject(urlParse(relative, false, true)).format(); + }; + function urlResolveObject(source, relative) { + if (!source) { + return relative; + } + return urlParse(source, false, true).resolveObject(relative); + } + Url2.prototype.resolveObject = function(relative) { + if (typeof relative === "string") { + var rel = new Url2(); + rel.parse(relative, false, true); + relative = rel; + } + var result = new Url2(); + var tkeys = Object.keys(this); + for (var tk = 0; tk < tkeys.length; tk++) { + var tkey = tkeys[tk]; + result[tkey] = this[tkey]; + } + result.hash = relative.hash; + if (relative.href === "") { + result.href = result.format(); + return result; + } + if (relative.slashes && !relative.protocol) { + var rkeys = Object.keys(relative); + for (var rk = 0; rk < rkeys.length; rk++) { + var rkey = rkeys[rk]; + if (rkey !== "protocol") { + result[rkey] = relative[rkey]; + } + } + if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) { + result.pathname = "/"; + result.path = result.pathname; + } + result.href = result.format(); + return result; + } + if (relative.protocol && relative.protocol !== result.protocol) { + if (!slashedProtocol[relative.protocol]) { + var keys = Object.keys(relative); + for (var v = 0; v < keys.length; v++) { + var k = keys[v]; + result[k] = relative[k]; + } + result.href = result.format(); + return result; + } + result.protocol = relative.protocol; + if (!relative.host && !hostlessProtocol[relative.protocol]) { + var relPath = (relative.pathname || "").split("/"); + while (relPath.length && !(relative.host = relPath.shift())) { + } + if (!relative.host) { + relative.host = ""; + } + if (!relative.hostname) { + relative.hostname = ""; + } + if (relPath[0] !== "") { + relPath.unshift(""); + } + if (relPath.length < 2) { + relPath.unshift(""); + } + result.pathname = relPath.join("/"); + } else { + result.pathname = relative.pathname; + } + result.search = relative.search; + result.query = relative.query; + result.host = relative.host || ""; + result.auth = relative.auth; + result.hostname = relative.hostname || relative.host; + result.port = relative.port; + if (result.pathname || result.search) { + var p = result.pathname || ""; + var s = result.search || ""; + result.path = p + s; + } + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; + } + var isSourceAbs = result.pathname && result.pathname.charAt(0) === "/", isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === "/", mustEndAbs = isRelAbs || isSourceAbs || result.host && relative.pathname, removeAllDots = mustEndAbs, srcPath = result.pathname && result.pathname.split("/") || [], relPath = relative.pathname && relative.pathname.split("/") || [], psychotic = result.protocol && !slashedProtocol[result.protocol]; + if (psychotic) { + result.hostname = ""; + result.port = null; + if (result.host) { + if (srcPath[0] === "") { + srcPath[0] = result.host; + } else { + srcPath.unshift(result.host); + } + } + result.host = ""; + if (relative.protocol) { + relative.hostname = null; + relative.port = null; + if (relative.host) { + if (relPath[0] === "") { + relPath[0] = relative.host; + } else { + relPath.unshift(relative.host); + } + } + relative.host = null; + } + mustEndAbs = mustEndAbs && (relPath[0] === "" || srcPath[0] === ""); + } + if (isRelAbs) { + result.host = relative.host || relative.host === "" ? relative.host : result.host; + result.hostname = relative.hostname || relative.hostname === "" ? relative.hostname : result.hostname; + result.search = relative.search; + result.query = relative.query; + srcPath = relPath; + } else if (relPath.length) { + if (!srcPath) { + srcPath = []; + } + srcPath.pop(); + srcPath = srcPath.concat(relPath); + result.search = relative.search; + result.query = relative.query; + } else if (relative.search != null) { + if (psychotic) { + result.host = srcPath.shift(); + result.hostname = result.host; + var authInHost = result.host && result.host.indexOf("@") > 0 ? result.host.split("@") : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.hostname = authInHost.shift(); + result.host = result.hostname; + } + } + result.search = relative.search; + result.query = relative.query; + if (result.pathname !== null || result.search !== null) { + result.path = (result.pathname ? result.pathname : "") + (result.search ? result.search : ""); + } + result.href = result.format(); + return result; + } + if (!srcPath.length) { + result.pathname = null; + if (result.search) { + result.path = "/" + result.search; + } else { + result.path = null; + } + result.href = result.format(); + return result; + } + var last = srcPath.slice(-1)[0]; + var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === "." || last === "..") || last === ""; + var up = 0; + for (var i = srcPath.length; i >= 0; i--) { + last = srcPath[i]; + if (last === ".") { + srcPath.splice(i, 1); + } else if (last === "..") { + srcPath.splice(i, 1); + up++; + } else if (up) { + srcPath.splice(i, 1); + up--; + } + } + if (!mustEndAbs && !removeAllDots) { + for (; up--; up) { + srcPath.unshift(".."); + } + } + if (mustEndAbs && srcPath[0] !== "" && (!srcPath[0] || srcPath[0].charAt(0) !== "/")) { + srcPath.unshift(""); + } + if (hasTrailingSlash && srcPath.join("/").substr(-1) !== "/") { + srcPath.push(""); + } + var isAbsolute = srcPath[0] === "" || srcPath[0] && srcPath[0].charAt(0) === "/"; + if (psychotic) { + result.hostname = isAbsolute ? "" : srcPath.length ? srcPath.shift() : ""; + result.host = result.hostname; + var authInHost = result.host && result.host.indexOf("@") > 0 ? result.host.split("@") : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.hostname = authInHost.shift(); + result.host = result.hostname; + } + } + mustEndAbs = mustEndAbs || result.host && srcPath.length; + if (mustEndAbs && !isAbsolute) { + srcPath.unshift(""); + } + if (srcPath.length > 0) { + result.pathname = srcPath.join("/"); + } else { + result.pathname = null; + result.path = null; + } + if (result.pathname !== null || result.search !== null) { + result.path = (result.pathname ? result.pathname : "") + (result.search ? result.search : ""); + } + result.auth = relative.auth || result.auth; + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; + }; + Url2.prototype.parseHost = function() { + var host = this.host; + var port = portPattern.exec(host); + if (port) { + port = port[0]; + if (port !== ":") { + this.port = port.substr(1); + } + host = host.substr(0, host.length - port.length); + } + if (host) { + this.hostname = host; + } + }; + exports$16.parse = urlParse; + exports$16.resolve = urlResolve; + exports$16.resolveObject = urlResolveObject; + exports$16.format = urlFormat; + exports$16.Url = Url2; + return exports$16; + } + function fileURLToPath(path) { + if (typeof path === "string") path = new URL(path); + else if (!(path instanceof URL)) { + throw new Deno.errors.InvalidData( + "invalid argument path , must be a string or URL" + ); + } + if (path.protocol !== "file:") { + throw new Deno.errors.InvalidData("invalid url scheme"); + } + return isWindows ? getPathFromURLWin(path) : getPathFromURLPosix(path); + } + function getPathFromURLWin(url) { + const hostname = url.hostname; + let pathname = url.pathname; + for (let n = 0; n < pathname.length; n++) { + if (pathname[n] === "%") { + const third = pathname.codePointAt(n + 2) || 32; + if (pathname[n + 1] === "2" && third === 102 || // 2f 2F / + pathname[n + 1] === "5" && third === 99) { + throw new Deno.errors.InvalidData( + "must not include encoded \\ or / characters" + ); + } + } + } + pathname = pathname.replace(forwardSlashRegEx, "\\"); + pathname = decodeURIComponent(pathname); + if (hostname !== "") { + return `\\\\${hostname}${pathname}`; + } else { + const letter = pathname.codePointAt(1) | 32; + const sep = pathname[2]; + if (letter < CHAR_LOWERCASE_A || letter > CHAR_LOWERCASE_Z || // a..z A..Z + sep !== ":") { + throw new Deno.errors.InvalidData("file url path must be absolute"); + } + return pathname.slice(1); + } + } + function getPathFromURLPosix(url) { + if (url.hostname !== "") { + throw new Deno.errors.InvalidData("invalid file url hostname"); + } + const pathname = url.pathname; + for (let n = 0; n < pathname.length; n++) { + if (pathname[n] === "%") { + const third = pathname.codePointAt(n + 2) || 32; + if (pathname[n + 1] === "2" && third === 102) { + throw new Deno.errors.InvalidData( + "must not include encoded / characters" + ); + } + } + } + return decodeURIComponent(pathname); + } + function pathToFileURL(filepath) { + let resolved = exports6.resolve(filepath); + const filePathLast = filepath.charCodeAt(filepath.length - 1); + if ((filePathLast === CHAR_FORWARD_SLASH || isWindows && filePathLast === CHAR_BACKWARD_SLASH) && resolved[resolved.length - 1] !== exports6.sep) { + resolved += "/"; + } + const outURL = new URL("file://"); + if (resolved.includes("%")) resolved = resolved.replace(percentRegEx, "%25"); + if (!isWindows && resolved.includes("\\")) { + resolved = resolved.replace(backslashRegEx, "%5C"); + } + if (resolved.includes("\n")) resolved = resolved.replace(newlineRegEx, "%0A"); + if (resolved.includes("\r")) { + resolved = resolved.replace(carriageReturnRegEx, "%0D"); + } + if (resolved.includes(" ")) resolved = resolved.replace(tabRegEx, "%09"); + outURL.pathname = resolved; + return outURL; + } + var empty, exports$82, _dewExec$72, _global, exports$72, _dewExec$62, exports$62, _dewExec$52, exports$52, _dewExec$42, exports$42, _dewExec$32, exports$32, _dewExec$23, exports$23, _dewExec$13, exports$16, _dewExec6, exports7, processPlatform, Url, format, resolve, resolveObject, parse, _URL, CHAR_BACKWARD_SLASH, CHAR_FORWARD_SLASH, CHAR_LOWERCASE_A, CHAR_LOWERCASE_Z, isWindows, forwardSlashRegEx, percentRegEx, backslashRegEx, newlineRegEx, carriageReturnRegEx, tabRegEx; + var init_url = __esm({ + "node_modules/@jspm/core/nodelibs/browser/url.js"() { + init_dirname(); + init_buffer2(); + init_process2(); + init_punycode(); + init_chunk_DtcTpLWz(); + init_chunk_BlJi4mNy(); + init_chunk_DEMDiNwt(); + empty = Object.freeze(/* @__PURE__ */ Object.create(null)); + exports$82 = {}; + _dewExec$72 = false; + _global = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : global; + exports$72 = {}; + _dewExec$62 = false; + exports$62 = {}; + _dewExec$52 = false; + exports$52 = {}; + _dewExec$42 = false; + exports$42 = {}; + _dewExec$32 = false; + exports$32 = {}; + _dewExec$23 = false; + exports$23 = {}; + _dewExec$13 = false; + exports$16 = {}; + _dewExec6 = false; + exports7 = dew6(); + exports7["parse"]; + exports7["resolve"]; + exports7["resolveObject"]; + exports7["format"]; + exports7["Url"]; + processPlatform = typeof Deno !== "undefined" ? Deno.build.os === "windows" ? "win32" : Deno.build.os : void 0; + exports7.URL = typeof URL !== "undefined" ? URL : null; + exports7.pathToFileURL = pathToFileURL; + exports7.fileURLToPath = fileURLToPath; + Url = exports7.Url; + format = exports7.format; + resolve = exports7.resolve; + resolveObject = exports7.resolveObject; + parse = exports7.parse; + _URL = exports7.URL; + CHAR_BACKWARD_SLASH = 92; + CHAR_FORWARD_SLASH = 47; + CHAR_LOWERCASE_A = 97; + CHAR_LOWERCASE_Z = 122; + isWindows = processPlatform === "win32"; + forwardSlashRegEx = /\//g; + percentRegEx = /%/g; + backslashRegEx = /\\/g; + newlineRegEx = /\n/g; + carriageReturnRegEx = /\r/g; + tabRegEx = /\t/g; + } + }); + + // node_modules/ws/browser.js + var require_browser5 = __commonJS({ + "node_modules/ws/browser.js"(exports8, module) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + module.exports = function() { + throw new Error( + "ws does not work in the browser. Browser clients must use the native WebSocket object" + ); + }; + } + }); + + // build/lib/BufferedDuplex.js + var require_BufferedDuplex = __commonJS({ + "build/lib/BufferedDuplex.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + exports8.BufferedDuplex = void 0; + exports8.writev = writev; + var readable_stream_1 = require_browser3(); + var buffer_1 = (init_buffer(), __toCommonJS(buffer_exports)); + function writev(chunks, cb) { + const buffers = new Array(chunks.length); + for (let i = 0; i < chunks.length; i++) { + if (typeof chunks[i].chunk === "string") { + buffers[i] = buffer_1.Buffer.from(chunks[i].chunk, "utf8"); + } else { + buffers[i] = chunks[i].chunk; + } + } + this._write(buffer_1.Buffer.concat(buffers), "binary", cb); + } + var BufferedDuplex = class extends readable_stream_1.Duplex { + socket; + proxy; + isSocketOpen; + writeQueue; + constructor(opts, proxy, socket) { + super({ + objectMode: true + }); + this.proxy = proxy; + this.socket = socket; + this.writeQueue = []; + if (!opts.objectMode) { + this._writev = writev.bind(this); + } + this.isSocketOpen = false; + this.proxy.on("data", (chunk) => { + if (!this.destroyed && this.readable) { + this.push(chunk); + } + }); + } + _read(size) { + this.proxy.read(size); + } + _write(chunk, encoding, cb) { + if (!this.isSocketOpen) { + this.writeQueue.push({ chunk, encoding, cb }); + } else { + this.writeToProxy(chunk, encoding, cb); + } + } + _final(callback) { + this.writeQueue = []; + this.proxy.end(callback); + } + _destroy(err, callback) { + this.writeQueue = []; + this.proxy.destroy(); + callback(err); + } + socketReady() { + this.emit("connect"); + this.isSocketOpen = true; + this.processWriteQueue(); + } + writeToProxy(chunk, encoding, cb) { + if (this.proxy.write(chunk, encoding) === false) { + this.proxy.once("drain", cb); + } else { + cb(); + } + } + processWriteQueue() { + while (this.writeQueue.length > 0) { + const { chunk, encoding, cb } = this.writeQueue.shift(); + this.writeToProxy(chunk, encoding, cb); + } + } + }; + exports8.BufferedDuplex = BufferedDuplex; + } + }); + + // build/lib/connect/ws.js + var require_ws = __commonJS({ + "build/lib/connect/ws.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var __importDefault = exports8 && exports8.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports8, "__esModule", { value: true }); + exports8.streamBuilder = exports8.browserStreamBuilder = void 0; + var buffer_1 = (init_buffer(), __toCommonJS(buffer_exports)); + var ws_1 = __importDefault(require_browser5()); + var debug_1 = __importDefault(require_browser4()); + var readable_stream_1 = require_browser3(); + var is_browser_1 = __importDefault(require_is_browser()); + var BufferedDuplex_1 = require_BufferedDuplex(); + var debug = (0, debug_1.default)("mqttjs:ws"); + var WSS_OPTIONS = [ + "rejectUnauthorized", + "ca", + "cert", + "key", + "pfx", + "passphrase" + ]; + function buildUrl(opts, client) { + let url = `${opts.protocol}://${opts.hostname}:${opts.port}${opts.path}`; + if (typeof opts.transformWsUrl === "function") { + url = opts.transformWsUrl(url, opts, client); + } + return url; + } + function setDefaultOpts(opts) { + const options = opts; + if (!opts.port) { + if (opts.protocol === "wss") { + options.port = 443; + } else { + options.port = 80; + } + } + if (!opts.path) { + options.path = "/"; + } + if (!opts.wsOptions) { + options.wsOptions = {}; + } + if (!is_browser_1.default && !opts.forceNativeWebSocket && opts.protocol === "wss") { + WSS_OPTIONS.forEach((prop) => { + if (Object.prototype.hasOwnProperty.call(opts, prop) && !Object.prototype.hasOwnProperty.call(opts.wsOptions, prop)) { + options.wsOptions[prop] = opts[prop]; + } + }); + } + return options; + } + function setDefaultBrowserOpts(opts) { + const options = setDefaultOpts(opts); + if (!options.hostname) { + options.hostname = options.host; + } + if (!options.hostname) { + if (typeof document === "undefined") { + throw new Error("Could not determine host. Specify host manually."); + } + const parsed = new URL(document.URL); + options.hostname = parsed.hostname; + if (!options.port) { + options.port = Number(parsed.port); + } + } + if (options.objectMode === void 0) { + options.objectMode = !(options.binary === true || options.binary === void 0); + } + return options; + } + function createWebSocket(client, url, opts) { + debug("createWebSocket"); + debug(`protocol: ${opts.protocolId} ${opts.protocolVersion}`); + const websocketSubProtocol = opts.protocolId === "MQIsdp" && opts.protocolVersion === 3 ? "mqttv3.1" : "mqtt"; + debug(`creating new Websocket for url: ${url} and protocol: ${websocketSubProtocol}`); + let socket; + if (opts.createWebsocket) { + socket = opts.createWebsocket(url, [websocketSubProtocol], opts); + } else { + socket = new ws_1.default(url, [websocketSubProtocol], opts.wsOptions); + } + return socket; + } + function createBrowserWebSocket(client, opts) { + const websocketSubProtocol = opts.protocolId === "MQIsdp" && opts.protocolVersion === 3 ? "mqttv3.1" : "mqtt"; + const url = buildUrl(opts, client); + let socket; + if (opts.createWebsocket) { + socket = opts.createWebsocket(url, [websocketSubProtocol], opts); + } else { + socket = new WebSocket(url, [websocketSubProtocol]); + } + socket.binaryType = "arraybuffer"; + return socket; + } + var streamBuilder = (client, opts) => { + debug("streamBuilder"); + const options = setDefaultOpts(opts); + options.hostname = options.hostname || options.host || "localhost"; + const url = buildUrl(options, client); + const socket = createWebSocket(client, url, options); + const webSocketStream = ws_1.default.createWebSocketStream(socket, options.wsOptions); + webSocketStream["url"] = url; + socket.on("close", () => { + webSocketStream.destroy(); + }); + return webSocketStream; + }; + exports8.streamBuilder = streamBuilder; + var browserStreamBuilder = (client, opts) => { + debug("browserStreamBuilder"); + let stream; + const options = setDefaultBrowserOpts(opts); + const bufferSize = options.browserBufferSize || 1024 * 512; + const bufferTimeout = opts.browserBufferTimeout || 1e3; + const coerceToBuffer = !opts.objectMode; + const socket = createBrowserWebSocket(client, opts); + const proxy = buildProxy(opts, socketWriteBrowser, socketEndBrowser); + if (!opts.objectMode) { + proxy._writev = BufferedDuplex_1.writev.bind(proxy); + } + proxy.on("close", () => { + socket.close(); + }); + const eventListenerSupport = typeof socket.addEventListener !== "undefined"; + if (socket.readyState === socket.OPEN) { + stream = proxy; + stream.socket = socket; + } else { + stream = new BufferedDuplex_1.BufferedDuplex(opts, proxy, socket); + if (eventListenerSupport) { + socket.addEventListener("open", onOpen); + } else { + socket.onopen = onOpen; + } + } + if (eventListenerSupport) { + socket.addEventListener("close", onClose); + socket.addEventListener("error", onError); + socket.addEventListener("message", onMessage); + } else { + socket.onclose = onClose; + socket.onerror = onError; + socket.onmessage = onMessage; + } + function buildProxy(pOptions, socketWrite, socketEnd) { + const _proxy = new readable_stream_1.Transform({ + objectMode: pOptions.objectMode + }); + _proxy._write = socketWrite; + _proxy._flush = socketEnd; + return _proxy; + } + function onOpen() { + debug("WebSocket onOpen"); + if (stream instanceof BufferedDuplex_1.BufferedDuplex) { + stream.socketReady(); + } + } + function onClose(event) { + debug("WebSocket onClose", event); + stream.end(); + stream.destroy(); + } + function onError(err) { + debug("WebSocket onError", err); + const error = new Error("WebSocket error"); + error["event"] = err; + stream.destroy(error); + } + async function onMessage(event) { + if (!proxy || !proxy.readable || !proxy.writable) { + return; + } + let { data } = event; + if (data instanceof ArrayBuffer) + data = buffer_1.Buffer.from(data); + else if (data instanceof Blob) + data = buffer_1.Buffer.from(await new Response(data).arrayBuffer()); + else + data = buffer_1.Buffer.from(data, "utf8"); + proxy.push(data); + } + function socketWriteBrowser(chunk, enc, next) { + if (socket.bufferedAmount > bufferSize) { + setTimeout(socketWriteBrowser, bufferTimeout, chunk, enc, next); + return; + } + if (coerceToBuffer && typeof chunk === "string") { + chunk = buffer_1.Buffer.from(chunk, "utf8"); + } + try { + socket.send(chunk); + } catch (err) { + return next(err); + } + next(); + } + function socketEndBrowser(done) { + socket.close(); + done(); + } + return stream; + }; + exports8.browserStreamBuilder = browserStreamBuilder; + } + }); + + // node_modules/@jspm/core/nodelibs/browser/net.js + var net_exports = {}; + __export(net_exports, { + Server: () => unimplemented3, + Socket: () => unimplemented3, + Stream: () => unimplemented3, + _createServerHandle: () => unimplemented3, + _normalizeArgs: () => unimplemented3, + _setSimultaneousAccepts: () => unimplemented3, + connect: () => unimplemented3, + createConnection: () => unimplemented3, + createServer: () => unimplemented3, + default: () => net, + isIP: () => unimplemented3, + isIPv4: () => unimplemented3, + isIPv6: () => unimplemented3 + }); + function unimplemented3() { + throw new Error("Node.js net module is not supported by JSPM core outside of Node.js"); + } + var net; + var init_net = __esm({ + "node_modules/@jspm/core/nodelibs/browser/net.js"() { + init_dirname(); + init_buffer2(); + init_process2(); + net = { + _createServerHandle: unimplemented3, + _normalizeArgs: unimplemented3, + _setSimultaneousAccepts: unimplemented3, + connect: unimplemented3, + createConnection: unimplemented3, + createServer: unimplemented3, + isIP: unimplemented3, + isIPv4: unimplemented3, + isIPv6: unimplemented3, + Server: unimplemented3, + Socket: unimplemented3, + Stream: unimplemented3 + }; + } + }); + + // socks-stub:./socks + var require_socks = __commonJS({ + "socks-stub:./socks"(exports8, module) { + init_dirname(); + init_buffer2(); + init_process2(); + module.exports = {}; + } + }); + + // build/lib/connect/tcp.js + var require_tcp = __commonJS({ + "build/lib/connect/tcp.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var __importDefault = exports8 && exports8.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports8, "__esModule", { value: true }); + var net_1 = __importDefault((init_net(), __toCommonJS(net_exports))); + var debug_1 = __importDefault(require_browser4()); + var socks_1 = __importDefault(require_socks()); + var debug = (0, debug_1.default)("mqttjs:tcp"); + var buildStream = (client, opts) => { + opts.port = opts.port || 1883; + opts.hostname = opts.hostname || opts.host || "localhost"; + if (opts.socksProxy) { + return (0, socks_1.default)(opts.hostname, opts.port, opts.socksProxy, { + timeout: opts.socksTimeout + }); + } + const { port, path } = opts; + const host = opts.hostname; + debug("port %d and host %s", port, host); + return net_1.default.createConnection({ port, host, path }); + }; + exports8.default = buildStream; + } + }); + + // node_modules/esbuild-plugin-polyfill-node/polyfills/empty.js + var empty_exports = {}; + __export(empty_exports, { + default: () => empty_default + }); + var empty_default; + var init_empty = __esm({ + "node_modules/esbuild-plugin-polyfill-node/polyfills/empty.js"() { + init_dirname(); + init_buffer2(); + init_process2(); + empty_default = {}; + } + }); + + // build/lib/connect/tls.js + var require_tls = __commonJS({ + "build/lib/connect/tls.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var __importDefault = exports8 && exports8.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports8, "__esModule", { value: true }); + var tls_1 = (init_empty(), __toCommonJS(empty_exports)); + var net_1 = __importDefault((init_net(), __toCommonJS(net_exports))); + var debug_1 = __importDefault(require_browser4()); + var socks_1 = __importDefault(require_socks()); + var debug = (0, debug_1.default)("mqttjs:tls"); + function connect(opts) { + const { host, port, socksProxy, ...rest } = opts; + if (socksProxy !== void 0) { + const socket = (0, socks_1.default)(host, port, socksProxy, { + timeout: opts.socksTimeout + }); + return (0, tls_1.connect)({ + ...rest, + socket + }); + } + return (0, tls_1.connect)(opts); + } + var buildStream = (client, opts) => { + opts.port = opts.port || 8883; + opts.host = opts.hostname || opts.host || "localhost"; + if (net_1.default.isIP(opts.host) === 0) { + opts.servername = opts.host; + } + opts.rejectUnauthorized = opts.rejectUnauthorized !== false; + delete opts.path; + debug("port %d host %s rejectUnauthorized %b", opts.port, opts.host, opts.rejectUnauthorized); + const connection = connect(opts); + connection.on("secureConnect", () => { + if (opts.rejectUnauthorized && !connection.authorized) { + connection.emit("error", new Error("TLS not authorized")); + } else { + connection.removeListener("error", handleTLSerrors); + } + }); + function handleTLSerrors(err) { + if (opts.rejectUnauthorized) { + client.emit("error", err); + } + connection.end(); + } + connection.on("error", handleTLSerrors); + return connection; + }; + exports8.default = buildStream; + } + }); + + // build/lib/connect/wx.js + var require_wx = __commonJS({ + "build/lib/connect/wx.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + var buffer_1 = (init_buffer(), __toCommonJS(buffer_exports)); + var readable_stream_1 = require_browser3(); + var BufferedDuplex_1 = require_BufferedDuplex(); + var socketTask; + var proxy; + var stream; + function buildProxy() { + const _proxy = new readable_stream_1.Transform(); + _proxy._write = (chunk, encoding, next) => { + socketTask.send({ + data: chunk.buffer, + success() { + next(); + }, + fail(errMsg) { + next(new Error(errMsg)); + } + }); + }; + _proxy._flush = (done) => { + socketTask.close({ + success() { + done(); + } + }); + }; + return _proxy; + } + function setDefaultOpts(opts) { + if (!opts.hostname) { + opts.hostname = "localhost"; + } + if (!opts.path) { + opts.path = "/"; + } + if (!opts.wsOptions) { + opts.wsOptions = {}; + } + } + function buildUrl(opts, client) { + const protocol = opts.protocol === "wxs" ? "wss" : "ws"; + let url = `${protocol}://${opts.hostname}${opts.path}`; + if (opts.port && opts.port !== 80 && opts.port !== 443) { + url = `${protocol}://${opts.hostname}:${opts.port}${opts.path}`; + } + if (typeof opts.transformWsUrl === "function") { + url = opts.transformWsUrl(url, opts, client); + } + return url; + } + function bindEventHandler() { + socketTask.onOpen(() => { + stream.socketReady(); + }); + socketTask.onMessage((res) => { + let { data } = res; + if (data instanceof ArrayBuffer) + data = buffer_1.Buffer.from(data); + else + data = buffer_1.Buffer.from(data, "utf8"); + proxy.push(data); + }); + socketTask.onClose(() => { + stream.emit("close"); + stream.end(); + stream.destroy(); + }); + socketTask.onError((error) => { + const err = new Error(error.errMsg); + stream.destroy(err); + }); + } + var buildStream = (client, opts) => { + opts.hostname = opts.hostname || opts.host; + if (!opts.hostname) { + throw new Error("Could not determine host. Specify host manually."); + } + const websocketSubProtocol = opts.protocolId === "MQIsdp" && opts.protocolVersion === 3 ? "mqttv3.1" : "mqtt"; + setDefaultOpts(opts); + const url = buildUrl(opts, client); + socketTask = wx.connectSocket({ + url, + protocols: [websocketSubProtocol] + }); + proxy = buildProxy(); + stream = new BufferedDuplex_1.BufferedDuplex(opts, proxy, socketTask); + stream._destroy = (err, cb) => { + socketTask.close({ + success() { + if (cb) + cb(err); + } + }); + }; + const destroyRef = stream.destroy; + stream.destroy = (err, cb) => { + stream.destroy = destroyRef; + setTimeout(() => { + socketTask.close({ + fail() { + stream._destroy(err, cb); + } + }); + }, 0); + return stream; + }; + bindEventHandler(); + return stream; + }; + exports8.default = buildStream; + } + }); + + // build/lib/connect/ali.js + var require_ali = __commonJS({ + "build/lib/connect/ali.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + Object.defineProperty(exports8, "__esModule", { value: true }); + var buffer_1 = (init_buffer(), __toCommonJS(buffer_exports)); + var readable_stream_1 = require_browser3(); + var BufferedDuplex_1 = require_BufferedDuplex(); + var my; + var proxy; + var stream; + var isInitialized = false; + function buildProxy() { + const _proxy = new readable_stream_1.Transform(); + _proxy._write = (chunk, encoding, next) => { + my.sendSocketMessage({ + data: chunk.buffer, + success() { + next(); + }, + fail() { + next(new Error()); + } + }); + }; + _proxy._flush = (done) => { + my.closeSocket({ + success() { + done(); + } + }); + }; + return _proxy; + } + function setDefaultOpts(opts) { + if (!opts.hostname) { + opts.hostname = "localhost"; + } + if (!opts.path) { + opts.path = "/"; + } + if (!opts.wsOptions) { + opts.wsOptions = {}; + } + } + function buildUrl(opts, client) { + const protocol = opts.protocol === "alis" ? "wss" : "ws"; + let url = `${protocol}://${opts.hostname}${opts.path}`; + if (opts.port && opts.port !== 80 && opts.port !== 443) { + url = `${protocol}://${opts.hostname}:${opts.port}${opts.path}`; + } + if (typeof opts.transformWsUrl === "function") { + url = opts.transformWsUrl(url, opts, client); + } + return url; + } + function bindEventHandler() { + if (isInitialized) + return; + isInitialized = true; + my.onSocketOpen(() => { + stream.socketReady(); + }); + my.onSocketMessage((res) => { + if (typeof res.data === "string") { + const buffer = buffer_1.Buffer.from(res.data, "base64"); + proxy.push(buffer); + } else { + const reader = new FileReader(); + reader.addEventListener("load", () => { + if (reader.result instanceof ArrayBuffer) { + proxy.push(buffer_1.Buffer.from(reader.result)); + return; + } + proxy.push(buffer_1.Buffer.from(reader.result, "utf-8")); + }); + reader.readAsArrayBuffer(res.data); + } + }); + my.onSocketClose(() => { + stream.end(); + stream.destroy(); + }); + my.onSocketError((err) => { + stream.destroy(err); + }); + } + var buildStream = (client, opts) => { + opts.hostname = opts.hostname || opts.host; + if (!opts.hostname) { + throw new Error("Could not determine host. Specify host manually."); + } + const websocketSubProtocol = opts.protocolId === "MQIsdp" && opts.protocolVersion === 3 ? "mqttv3.1" : "mqtt"; + setDefaultOpts(opts); + const url = buildUrl(opts, client); + my = opts.my; + my.connectSocket({ + url, + protocols: websocketSubProtocol + }); + proxy = buildProxy(); + stream = new BufferedDuplex_1.BufferedDuplex(opts, proxy, my); + bindEventHandler(); + return stream; + }; + exports8.default = buildStream; + } + }); + + // build/lib/connect/index.js + var require_connect = __commonJS({ + "build/lib/connect/index.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var __importDefault = exports8 && exports8.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports8, "__esModule", { value: true }); + exports8.connectAsync = connectAsync; + var debug_1 = __importDefault(require_browser4()); + var url_1 = __importDefault((init_url(), __toCommonJS(url_exports))); + var client_1 = __importDefault(require_client()); + var is_browser_1 = __importDefault(require_is_browser()); + if (typeof process_exports?.nextTick !== "function") { + process_exports.nextTick = setImmediate; + } + var debug = (0, debug_1.default)("mqttjs"); + var protocols = null; + function parseAuthOptions(opts) { + let matches; + if (opts.auth) { + matches = opts.auth.match(/^(.+):(.+)$/); + if (matches) { + const [, username, password] = matches; + opts.username = username; + opts.password = password; + } else { + opts.username = opts.auth; + } + } + } + function connect(brokerUrl, opts) { + debug("connecting to an MQTT broker..."); + if (typeof brokerUrl === "object" && !opts) { + opts = brokerUrl; + brokerUrl = ""; + } + opts = opts || {}; + if (brokerUrl && typeof brokerUrl === "string") { + const parsedUrl = url_1.default.parse(brokerUrl, true); + const parsedOptions = {}; + if (parsedUrl.port != null) { + parsedOptions.port = Number(parsedUrl.port); + } + parsedOptions.host = parsedUrl.hostname; + parsedOptions.query = parsedUrl.query; + parsedOptions.auth = parsedUrl.auth; + parsedOptions.protocol = parsedUrl.protocol; + parsedOptions.path = parsedUrl.path; + opts = { ...parsedOptions, ...opts }; + if (!opts.protocol) { + throw new Error("Missing protocol"); + } + opts.protocol = opts.protocol.replace(/:$/, ""); + } + opts.unixSocket = opts.unixSocket || opts.protocol?.includes("+unix"); + if (opts.unixSocket) { + opts.protocol = opts.protocol.replace("+unix", ""); + } else if (!opts.protocol?.startsWith("ws") && !opts.protocol?.startsWith("wx")) { + delete opts.path; + } + parseAuthOptions(opts); + if (opts.query && typeof opts.query.clientId === "string") { + opts.clientId = opts.query.clientId; + } + if (is_browser_1.default || opts.unixSocket) { + opts.socksProxy = void 0; + } else if (opts.socksProxy === void 0 && typeof process_exports !== "undefined") { + opts.socksProxy = process_exports.env["MQTTJS_SOCKS_PROXY"]; + } + if (opts.cert && opts.key) { + if (opts.protocol) { + if (["mqtts", "wss", "wxs", "alis"].indexOf(opts.protocol) === -1) { + switch (opts.protocol) { + case "mqtt": + opts.protocol = "mqtts"; + break; + case "ws": + opts.protocol = "wss"; + break; + case "wx": + opts.protocol = "wxs"; + break; + case "ali": + opts.protocol = "alis"; + break; + default: + throw new Error(`Unknown protocol for secure connection: "${opts.protocol}"!`); + } + } + } else { + throw new Error("Missing secure protocol key"); + } + } + if (!protocols) { + protocols = {}; + if (!is_browser_1.default && !opts.forceNativeWebSocket) { + protocols.ws = require_ws().streamBuilder; + protocols.wss = require_ws().streamBuilder; + protocols.mqtt = require_tcp().default; + protocols.tcp = require_tcp().default; + protocols.ssl = require_tls().default; + protocols.tls = protocols.ssl; + protocols.mqtts = require_tls().default; + } else { + protocols.ws = require_ws().browserStreamBuilder; + protocols.wss = require_ws().browserStreamBuilder; + protocols.wx = require_wx().default; + protocols.wxs = require_wx().default; + protocols.ali = require_ali().default; + protocols.alis = require_ali().default; + } + } + if (!protocols[opts.protocol]) { + const isSecure = ["mqtts", "wss"].indexOf(opts.protocol) !== -1; + opts.protocol = [ + "mqtt", + "mqtts", + "ws", + "wss", + "wx", + "wxs", + "ali", + "alis" + ].filter((key, index) => { + if (isSecure && index % 2 === 0) { + return false; + } + return typeof protocols[key] === "function"; + })[0]; + } + if (opts.clean === false && !opts.clientId) { + throw new Error("Missing clientId for unclean clients"); + } + if (opts.protocol) { + opts.defaultProtocol = opts.protocol; + } + function wrapper(client2) { + if (opts.servers) { + if (!client2._reconnectCount || client2._reconnectCount === opts.servers.length) { + client2._reconnectCount = 0; + } + opts.host = opts.servers[client2._reconnectCount].host; + opts.port = opts.servers[client2._reconnectCount].port; + opts.protocol = !opts.servers[client2._reconnectCount].protocol ? opts.defaultProtocol : opts.servers[client2._reconnectCount].protocol; + opts.hostname = opts.host; + client2._reconnectCount++; + } + debug("calling streambuilder for", opts.protocol); + return protocols[opts.protocol](client2, opts); + } + const client = new client_1.default(wrapper, opts); + client.on("error", () => { + }); + return client; + } + function connectAsync(brokerUrl, opts, allowRetries = true) { + return new Promise((resolve2, reject) => { + const client = connect(brokerUrl, opts); + const promiseResolutionListeners = { + connect: (connack) => { + removePromiseResolutionListeners(); + resolve2(client); + }, + end: () => { + removePromiseResolutionListeners(); + resolve2(client); + }, + error: (err) => { + removePromiseResolutionListeners(); + client.end(); + reject(err); + } + }; + if (allowRetries === false) { + promiseResolutionListeners.close = () => { + promiseResolutionListeners.error(new Error("Couldn't connect to server")); + }; + } + function removePromiseResolutionListeners() { + Object.keys(promiseResolutionListeners).forEach((eventName) => { + client.off(eventName, promiseResolutionListeners[eventName]); + }); + } + Object.keys(promiseResolutionListeners).forEach((eventName) => { + client.on(eventName, promiseResolutionListeners[eventName]); + }); + }); + } + exports8.default = connect; + } + }); + + // build/mqtt.js + var require_mqtt2 = __commonJS({ + "build/mqtt.js"(exports8) { + "use strict"; + init_dirname(); + init_buffer2(); + init_process2(); + var __createBinding = exports8 && exports8.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports8 && exports8.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar = exports8 && exports8.__importStar || /* @__PURE__ */ function() { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function(o2) { + var ar = []; + for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + } + __setModuleDefault(result, mod); + return result; + }; + }(); + var __exportStar = exports8 && exports8.__exportStar || function(m, exports9) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports9, p)) __createBinding(exports9, m, p); + }; + var __importDefault = exports8 && exports8.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports8, "__esModule", { value: true }); + exports8.ReasonCodes = exports8.KeepaliveManager = exports8.UniqueMessageIdProvider = exports8.DefaultMessageIdProvider = exports8.Store = exports8.MqttClient = exports8.connectAsync = exports8.connect = exports8.Client = void 0; + var client_1 = __importDefault(require_client()); + exports8.MqttClient = client_1.default; + var default_message_id_provider_1 = __importDefault(require_default_message_id_provider()); + exports8.DefaultMessageIdProvider = default_message_id_provider_1.default; + var unique_message_id_provider_1 = __importDefault(require_unique_message_id_provider()); + exports8.UniqueMessageIdProvider = unique_message_id_provider_1.default; + var store_1 = __importDefault(require_store()); + exports8.Store = store_1.default; + var connect_1 = __importStar(require_connect()); + exports8.connect = connect_1.default; + Object.defineProperty(exports8, "connectAsync", { enumerable: true, get: function() { + return connect_1.connectAsync; + } }); + var KeepaliveManager_1 = __importDefault(require_KeepaliveManager()); + exports8.KeepaliveManager = KeepaliveManager_1.default; + exports8.Client = client_1.default; + __exportStar(require_client(), exports8); + __exportStar(require_shared(), exports8); + var ack_1 = require_ack(); + Object.defineProperty(exports8, "ReasonCodes", { enumerable: true, get: function() { + return ack_1.ReasonCodes; + } }); + } + }); + + // build/index.js + var require_index = __commonJS({ + "build/index.js"(exports8) { + init_dirname(); + init_buffer2(); + init_process2(); + var __createBinding = exports8 && exports8.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports8 && exports8.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar = exports8 && exports8.__importStar || /* @__PURE__ */ function() { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function(o2) { + var ar = []; + for (var k in o2) if (Object.prototype.hasOwnProperty.call(o2, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + } + __setModuleDefault(result, mod); + return result; + }; + }(); + var __exportStar = exports8 && exports8.__exportStar || function(m, exports9) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports9, p)) __createBinding(exports9, m, p); + }; + Object.defineProperty(exports8, "__esModule", { value: true }); + var mqtt = __importStar(require_mqtt2()); + exports8.default = mqtt; + __exportStar(require_mqtt2(), exports8); + } + }); + return require_index(); +})(); +/*! Bundled license information: + +@jspm/core/nodelibs/browser/chunk-DtuTasat.js: + (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *) + +safe-buffer/index.js: + (*! safe-buffer. MIT License. Feross Aboukhadijeh *) + +@babel/runtime/helpers/regenerator.js: + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE *) +*/ diff --git a/js/overlayscrollbars.browser.es6.min.js b/js/overlayscrollbars.browser.es6.min.js new file mode 100644 index 0000000..7f44ae6 --- /dev/null +++ b/js/overlayscrollbars.browser.es6.min.js @@ -0,0 +1,10 @@ +/*! + * OverlayScrollbars + * Version: 2.11.0 + * + * Copyright (c) Rene Haas | KingSora. + * https://github.com/KingSora + * + * Released under the MIT license. + */ +var OverlayScrollbarsGlobal=function(t){"use strict";const e=(t,e)=>{const{o:n,i:r,u:o}=t;let s,i=n;const l=(t,e)=>{const n=i,l=t,c=e||(r?!r(n,l):n!==l);return(c||o)&&(i=l,s=n),[i,c,s]};return[e?t=>l(e(i,s),t):l,t=>[i,!!t,s]]},n="undefined"!=typeof window&&"undefined"!=typeof HTMLElement&&window.document?window:{},r=Math.max,o=Math.min,s=Math.round,i=Math.abs,l=Math.sign,c=n.cancelAnimationFrame,a=n.requestAnimationFrame,u=n.setTimeout,d=n.clearTimeout,p=t=>void 0!==n[t]?n[t]:void 0,y=p("MutationObserver"),h=p("IntersectionObserver"),f=p("ResizeObserver"),v=p("ScrollTimeline"),x=t=>void 0===t,b=t=>null===t,g=t=>"number"==typeof t,w=t=>"string"==typeof t,m=t=>"boolean"==typeof t,$=t=>"function"==typeof t,S=t=>Array.isArray(t),O=t=>"object"==typeof t&&!S(t)&&!b(t),M=t=>{const e=!!t&&t.length,n=g(e)&&e>-1&&e%1==0;return!(!(S(t)||!$(t)&&n)||e>0&&O(t)&&!(e-1 in t))},C=t=>!!t&&t.constructor===Object,D=t=>t instanceof HTMLElement,T=t=>t instanceof Element,k=()=>performance.now(),P=(t,e,n,o,s)=>{let i=0;const l=k(),u=r(0,n),d=n=>{const c=k(),p=c-l>=u,y=n?1:1-(r(0,l+u-c)/u||0),h=(e-t)*($(s)?s(y,y*u,0,1,u):y)+t,f=p||1===y;o&&o(h,y,f),i=f?0:a((()=>d()))};return d(),t=>{c(i),t&&d(t)}};function H(t,e){if(M(t))for(let n=0;ne(t[n],n,t)));return t}const A=(t,e)=>t.indexOf(e)>=0,L=(t,e)=>t.concat(e),E=(t,e,n)=>(!w(e)&&M(e)?Array.prototype.push.apply(t,e):t.push(e),t),R=t=>Array.from(t||[]),U=t=>S(t)?t:!w(t)&&M(t)?R(t):[t],z=t=>!!t&&!t.length,I=t=>R(new Set(t)),_=(t,e,n)=>{H(t,(t=>!t||t.apply(void 0,e||[]))),!n&&(t.length=0)},j="paddingTop",N="paddingRight",V="paddingLeft",B="paddingBottom",F="marginLeft",Z="marginRight",W="marginBottom",q="overflowX",Y="overflowY",X="width",G="height",J="visible",K="hidden",Q="scroll",tt=(t,e,n,r)=>{if(t&&e){let r=!0;return H(n,(n=>{t[n]!==e[n]&&(r=!1)})),r}return!1},et=(t,e)=>tt(t,e,["w","h"]),nt=(t,e)=>tt(t,e,["x","y"]),rt=(t,e)=>tt(t,e,["t","r","b","l"]),ot=()=>{},st=(t,...e)=>t.bind(0,...e),it=t=>{let e;const n=t?u:a,r=t?d:c;return[o=>{r(e),e=n((()=>o()),$(t)?t():t)},()=>r(e)]},lt=(t,e)=>{const{_:n,v:r,p:o,S:s}=e||{};let i,l,p,y,h=ot;const f=function(e){h(),d(i),y=i=l=void 0,h=ot,t.apply(this,e)},v=t=>s&&l?s(l,t):t,x=()=>{h!==ot&&f(v(p)||p)},b=function(){const t=R(arguments),e=$(n)?n():n;if(g(e)&&e>=0){const n=$(r)?r():r,s=g(n)&&n>=0,b=e>0?u:a,w=e>0?d:c,m=v(t)||t,S=f.bind(0,m);let O;h(),o&&!y?(S(),y=!0,O=b((()=>y=void 0),e)):(O=b(S,e),s&&!i&&(i=u(x,n))),h=()=>w(O),l=p=m}else f(t)};return b.m=x,b},ct=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),at=t=>t?Object.keys(t):[],ut=(t,e,n,r,o,s,i)=>{const l=[e,n,r,o,s,i];return"object"==typeof t&&!b(t)||$(t)||(t={}),H(l,(e=>{H(e,((n,r)=>{const o=e[r];if(t===o)return!0;const s=S(o);if(o&&C(o)){const e=t[r];let n=e;s&&!S(e)?n=[]:s||C(e)||(n={}),t[r]=ut(n,o)}else t[r]=s?o.slice():o}))})),t},dt=(t,e)=>H(ut({},t),((t,e,n)=>{void 0===t?delete n[e]:t&&C(t)&&(n[e]=dt(t))})),pt=t=>!at(t).length,yt=(t,e,n)=>r(t,o(e,n)),ht=t=>I((S(t)?t:(t||"").split(" ")).filter((t=>t))),ft=(t,e)=>t&&t.getAttribute(e),vt=(t,e)=>t&&t.hasAttribute(e),xt=(t,e,n)=>{H(ht(e),(e=>{t&&t.setAttribute(e,String(n||""))}))},bt=(t,e)=>{H(ht(e),(e=>t&&t.removeAttribute(e)))},gt=(t,e)=>{const n=ht(ft(t,e)),r=st(xt,t,e),o=(t,e)=>{const r=new Set(n);return H(ht(t),(t=>{r[e](t)})),R(r).join(" ")};return{O:t=>r(o(t,"delete")),$:t=>r(o(t,"add")),C:t=>{const e=ht(t);return e.reduce(((t,e)=>t&&n.includes(e)),e.length>0)}}},wt=(t,e,n)=>(gt(t,e).O(n),st(mt,t,e,n)),mt=(t,e,n)=>(gt(t,e).$(n),st(wt,t,e,n)),$t=(t,e,n,r)=>(r?mt:wt)(t,e,n),St=(t,e,n)=>gt(t,e).C(n),Ot=t=>gt(t,"class"),Mt=(t,e)=>{Ot(t).O(e)},Ct=(t,e)=>(Ot(t).$(e),st(Mt,t,e)),Dt=(t,e)=>{const n=e?T(e)&&e:document;return n?R(n.querySelectorAll(t)):[]},Tt=(t,e)=>T(t)&&t.matches(e),kt=t=>Tt(t,"body"),Pt=t=>t?R(t.childNodes):[],Ht=t=>t&&t.parentElement,At=(t,e)=>T(t)&&t.closest(e),Lt=t=>document.activeElement,Et=t=>{H(U(t),(t=>{const e=Ht(t);t&&e&&e.removeChild(t)}))},Rt=(t,e)=>st(Et,t&&e&&H(U(e),(e=>{e&&t.appendChild(e)})));let Ut;const zt=t=>{const e=document.createElement("div");return xt(e,"class",t),e},It=t=>{const e=zt(),n=Ut,r=t.trim();return e.innerHTML=n?n.createHTML(r):r,H(Pt(e),(t=>Et(t)))},_t=(t,e)=>t.getPropertyValue(e)||t[e]||"",jt=t=>{const e=t||0;return isFinite(e)?e:0},Nt=t=>jt(parseFloat(t||"")),Vt=t=>Math.round(1e4*t)/1e4,Bt=t=>`${Vt(jt(t))}px`;function Ft(t,e){t&&e&&H(e,((e,n)=>{try{const r=t.style,o=b(e)||m(e)?"":g(e)?Bt(e):e;0===n.indexOf("--")?r.setProperty(n,o):r[n]=o}catch(r){}}))}function Zt(t,e,r){const o=w(e);let s=o?"":{};if(t){const i=n.getComputedStyle(t,r)||t.style;s=o?_t(i,e):R(e).reduce(((t,e)=>(t[e]=_t(i,e),t)),s)}return s}const Wt=(t,e,n)=>{const r=e?`${e}-`:"",o=n?`-${n}`:"",s=`${r}top${o}`,i=`${r}right${o}`,l=`${r}bottom${o}`,c=`${r}left${o}`,a=Zt(t,[s,i,l,c]);return{t:Nt(a[s]),r:Nt(a[i]),b:Nt(a[l]),l:Nt(a[c])}},qt=(t,e)=>`translate${O(t)?`(${t.x},${t.y})`:`${e?"X":"Y"}(${t})`}`,Yt={w:0,h:0},Xt=(t,e)=>e?{w:e[`${t}Width`],h:e[`${t}Height`]}:Yt,Gt=t=>Xt("inner",t||n),Jt=st(Xt,"offset"),Kt=st(Xt,"client"),Qt=st(Xt,"scroll"),te=t=>{const e=parseFloat(Zt(t,X))||0,n=parseFloat(Zt(t,G))||0;return{w:e-s(e),h:n-s(n)}},ee=t=>t.getBoundingClientRect(),ne=t=>!(!t||!t[G]&&!t[X]),re=(t,e)=>{const n=ne(t);return!ne(e)&&n},oe=(t,e,n,r)=>{H(ht(e),(e=>{t&&t.removeEventListener(e,n,r)}))},se=(t,e,n,r)=>{var o;const s=null==(o=r&&r.H)||o,i=r&&r.I||!1,l=r&&r.A||!1,c={passive:s,capture:i};return st(_,ht(e).map((e=>{const r=l?o=>{oe(t,e,r,i),n&&n(o)}:n;return t&&t.addEventListener(e,r,c),st(oe,t,e,r,i)})))},ie=t=>t.stopPropagation(),le=t=>t.preventDefault(),ce=t=>ie(t)||le(t),ae=(t,e)=>{const{x:n,y:r}=g(e)?{x:e,y:e}:e||{};g(n)&&(t.scrollLeft=n),g(r)&&(t.scrollTop=r)},ue=t=>({x:t.scrollLeft,y:t.scrollTop}),de=(t,e)=>{const{D:n,M:r}=t,{w:o,h:s}=e,c=(t,e,n)=>{let r=l(t)*n,o=l(e)*n;if(r===o){const n=i(t),s=i(e);o=n>s?0:o,r=n{const n=(t,e)=>0===t&&t<=e;return{x:n(t.x,e.x),y:n(t.y,e.y)}},ye=({D:t,M:e},n)=>{const r=(t,e,n)=>yt(0,1,(t-n)/(t-e)||0);return{x:r(t.x,e.x,n.x),y:r(t.y,e.y,n.y)}},he=t=>{t&&t.focus&&t.focus({preventScroll:!0})},fe=(t,e)=>{H(U(e),t)},ve=t=>{const e=new Map,n=(t,n)=>{if(t){const r=e.get(t);fe((t=>{r&&r[t?"delete":"clear"](t)}),n)}else e.forEach((t=>{t.clear()})),e.clear()},r=(t,o)=>{if(w(t)){const r=e.get(t)||new Set;return e.set(t,r),fe((t=>{$(t)&&r.add(t)}),o),st(n,t,o)}m(o)&&o&&n();const s=at(t),i=[];return H(s,(e=>{const n=t[e];n&&E(i,r(e,n))})),st(_,i)};return r(t||{}),[r,n,(t,n)=>{H(R(e.get(t)),(t=>{n&&!z(n)?t.apply(0,n):t()}))}]},xe={},be={},ge=(t,e,n)=>at(t).map((r=>{const{static:o,instance:s}=t[r],[i,l,c]=n||[],a=n?s:o;if(a){const t=n?a(i,l,e):a(e);return(c||be)[r]=t}})),we=t=>be[t],me="__osOptionsValidationPlugin",$e=`data-overlayscrollbars`,Se="os-environment",Oe=`${Se}-scrollbar-hidden`,Me=`${$e}-initialize`,Ce="noClipping",De=`${$e}-body`,Te=$e,ke="host",Pe=`${$e}-viewport`,He=q,Ae=Y,Le="arrange",Ee="measuring",Re="scrolling",Ue="scrollbarHidden",ze="noContent",Ie=`${$e}-padding`,_e=`${$e}-content`,je="os-size-observer",Ne=`${je}-appear`,Ve=`${je}-listener`,Be=`${Ve}-scroll`,Fe=`${Ve}-item`,Ze=`${Fe}-final`,We="os-trinsic-observer",qe="os-theme-none",Ye="os-scrollbar",Xe=`${Ye}-rtl`,Ge=`${Ye}-horizontal`,Je=`${Ye}-vertical`,Ke=`${Ye}-track`,Qe=`${Ye}-handle`,tn=`${Ye}-visible`,en=`${Ye}-cornerless`,nn=`${Ye}-interaction`,rn=`${Ye}-unusable`,on=`${Ye}-auto-hide`,sn=`${on}-hidden`,ln=`${Ye}-wheel`,cn=`${Ke}-interactive`,an=`${Qe}-interactive`,un="__osSizeObserverPlugin",dn=(()=>({[un]:{static:()=>(t,e,n)=>{const r=3333333,o="scroll",s=It(`
`),i=s[0],l=i.lastChild,u=i.firstChild,d=null==u?void 0:u.firstChild;let p,y=Jt(i),h=y,f=!1;const v=()=>{ae(u,r),ae(l,r)},x=t=>{p=0,f&&(y=h,e(!0===t))},b=t=>{h=Jt(i),f=!t||!et(h,y),t?(ie(t),f&&!p&&(c(p),p=a(x))):x(!1===t),v()},g=[Rt(t,s),se(u,o,b),se(l,o,b)];return Ct(t,Be),Ft(d,{[X]:r,[G]:r}),a(v),[n?st(b,!1):v,g]}}}))(),pn=(t,e)=>{const{T:n}=e,[r,o]=t("showNativeOverlaidScrollbars");return[r&&n.x&&n.y,o]},yn=t=>0===t.indexOf(J),hn=(t,e)=>{const n=(t,e,n,r)=>{const o=t===J?K:t.replace(`${J}-`,""),s=yn(t),i=yn(n);return e||r?s&&i?J:s?e&&r?o:e?J:K:e?o:i&&r?J:K:K},r={x:n(e.x,t.x,e.y,t.y),y:n(e.y,t.y,e.x,t.x)};return{k:r,R:{x:r.x===Q,y:r.y===Q}}},fn="__osScrollbarsHidingPlugin",vn=(()=>({[fn]:{static:()=>({V:(t,e,n,r,o)=>{const{L:s,U:i}=t,{P:l,T:c,N:a}=r,u=!s&&!l&&(c.x||c.y),[d]=pn(o,r),p=t=>{const{R:e}=t,n=l||d?0:42,r=(t,e,r)=>[e&&!l?t?n:r:0,t&&!!n],[o,s]=r(c.x,e.x,a.x),[i,u]=r(c.y,e.y,a.y);return{q:{x:o,y:i},j:{x:s,y:u}}},y=(t,{B:n},r)=>{if(!s){const o=ut({},{[Z]:0,[W]:0,[F]:0}),{q:s,j:i}=p(t),{x:l,y:c}=i,{x:a,y:u}=s,{F:d}=e,y=n?F:Z,h=n?V:N,f=d[y],v=d[W],x=d[h],b=d[B];return o[X]=`calc(100% + ${u+-1*f}px)`,o[y]=-u+f,o[W]=-a+v,r&&(o[h]=x+(c?u:0),o[B]=b+(l?a:0)),o}};return{X:p,Y:(t,r,o)=>{if(u){const{F:s}=e,{q:l,j:c}=p(t),{x:a,y:u}=c,{x:d,y}=l,{B:h}=n,f=s[h?N:V],v=s.paddingTop,x=r.w+o.w,b=r.h+o.h,g={w:y&&u?`${y+x-f}px`:"",h:d&&a?`${d+b-v}px`:""};Ft(i,{"--os-vaw":g.w,"--os-vah":g.h})}return u},W:t=>{if(u){const r=t||(()=>{const t=t=>{const e=Zt(i,t);return[e,e===Q]},[e,n]=t(q),[r,o]=t(Y);return{k:{x:e,y:r},R:{x:n,y:o}}})(),{F:o}=e,{j:s}=p(r),{x:l,y:c}=s,a={},d=t=>H(t,(t=>{a[t]=o[t]}));l&&d([W,j,B]),c&&d([F,Z,V,N]);const h=Zt(i,at(a)),f=wt(i,Pe,Le);return Ft(i,a),[()=>{Ft(i,ut({},h,y(r,n,u))),f()},r]}return[ot]},G:y}}})}}))(),xn="__osClickScrollPlugin",bn=(()=>({[xn]:{static:()=>(t,e,n,r)=>{let o=!1,s=ot;const i=133,l=222,[c,a]=it(i),u=Math.sign(e),d=n*u,p=d/2,y=t=>1-(1-t)*(1-t),h=(e,n)=>P(e,n,l,t,y),f=(n,r)=>P(n,e-d,i*r,((n,r,o)=>{t(n),o&&(s=h(n,e))})),v=P(0,d,l,((i,l,a)=>{if(t(i),a&&(r(o),!o)){const t=e-i;Math.sign(t-p)===u&&c((()=>{const r=t-d,o=Math.sign(r)===u;s=o?f(i,Math.abs(r)/n):h(i,e)}))}}),y);return t=>{o=!0,t&&v(),a(),s()}}}}))(),gn=t=>JSON.stringify(t,((t,e)=>{if($(e))throw 0;return e})),wn=(t,e)=>t?`${e}`.split(".").reduce(((t,e)=>t&&ct(t,e)?t[e]:void 0),t):void 0,mn={paddingAbsolute:!1,showNativeOverlaidScrollbars:!1,update:{elementEvents:[["img","load"]],debounce:[0,33],attributes:null,ignoreMutation:null},overflow:{x:"scroll",y:"scroll"},scrollbars:{theme:"os-theme-dark",visibility:"auto",autoHide:"never",autoHideDelay:1300,autoHideSuspend:!1,dragScroll:!0,clickScroll:!1,pointers:["mouse","touch","pen"]}},$n=(t,e)=>{const n={};return H(L(at(e),at(t)),(r=>{const o=t[r],s=e[r];if(O(o)&&O(s))ut(n[r]={},$n(o,s)),pt(n[r])&&delete n[r];else if(ct(e,r)&&s!==o){let t=!0;if(S(o)||S(s))try{gn(o)===gn(s)&&(t=!1)}catch(i){}t&&(n[r]=s)}})),n},Sn=(t,e,n)=>r=>[wn(t,r),n||void 0!==wn(e,r)];let On,Mn;const Cn=()=>(Mn||(Mn=(()=>{const t=(t,e,n)=>{Rt(document.body,t),Rt(document.body,t);const r=Kt(t),o=Jt(t),s=te(e);return n&&Et(t),{x:o.h-r.h+s.h,y:o.w-r.w+s.w}},r=It(`
`)[0],o=r.firstChild,s=r.lastChild,i=On;i&&(s.nonce=i);const[l,,c]=ve(),[a,u]=e({o:t(r,o),i:nt},st(t,r,o,!0)),[d]=u(),p=(t=>{let e=!1;const n=Ct(t,Oe);try{e="none"===Zt(t,"scrollbar-width")||"none"===Zt(t,"display","::-webkit-scrollbar")}catch(r){}return n(),e})(r),y={x:0===d.x,y:0===d.y},h={elements:{host:null,padding:!p,viewport:t=>p&&kt(t)&&t,content:!1},scrollbars:{slot:!0},cancel:{nativeScrollbarsOverlaid:!1,body:null}},f=ut({},mn),x=st(ut,{},f),b=st(ut,{},h),g={N:d,T:y,P:p,J:!!v,K:st(l,"r"),Z:b,tt:t=>ut(h,t)&&b(),nt:x,ot:t=>ut(f,t)&&x(),st:ut({},h),et:ut({},f)};if(bt(r,"style"),Et(r),se(n,"resize",(()=>{c("r",[])})),$(n.matchMedia)&&!p&&(!y.x||!y.y)){const t=e=>{const r=n.matchMedia(`(resolution: ${n.devicePixelRatio}dppx)`);se(r,"change",(()=>{e(),t(e)}),{A:!0})};t((()=>{const[t,e]=a();ut(g.N,t),c("r",[e])}))}return g})()),Mn),Dn=(t,e,n,r)=>{let o=!1;const{ct:s,rt:i,lt:l,it:c,ut:a,_t:u}=r||{},d=lt((()=>o&&n(!0)),{_:33,v:99}),[p,h]=((t,e,n)=>{let r=!1;const o=!!n&&new WeakMap,s=s=>{if(o&&n){const i=n.map((e=>{const[n,r]=e||[];return[r&&n?(s||Dt)(n,t):[],r]}));H(i,(n=>H(n[0],(s=>{const i=n[1],l=o.get(s)||[];if(t.contains(s)&&i){const t=se(s,i,(n=>{r?(t(),o.delete(s)):e(n)}));o.set(s,E(l,t))}else _(l),o.delete(s)}))))}};return s(),[()=>{r=!0},s]})(t,d,l),f=i||[],v=L(s||[],f),x=(o,s)=>{if(!z(s)){const i=a||ot,l=u||ot,d=[],p=[];let y=!1,v=!1;if(H(s,(n=>{const{attributeName:o,target:s,type:a,oldValue:u,addedNodes:h,removedNodes:x}=n,b="attributes"===a,g="childList"===a,m=t===s,$=b&&o,S=$&&ft(s,o||""),O=w(S)?S:null,M=$&&u!==O,C=A(f,o)&&M;if(e&&(g||!m)){const e=b&&M,a=e&&c&&Tt(s,c),p=(a?!i(s,o,u,O):!b||e)&&!l(n,!!a,t,r);H(h,(t=>E(d,t))),H(x,(t=>E(d,t))),v=v||p}!e&&m&&M&&!i(s,o,u,O)&&(E(p,o),y=y||C)})),h((t=>I(d).reduce(((e,n)=>(E(e,Dt(t,n)),Tt(n,t)?E(e,n):e)),[]))),e)return!o&&v&&n(!1),[!1];if(!z(p)||y){const t=[I(p),y];return!o&&n.apply(0,t),t}}},b=new y(st(x,!1));return[()=>(b.observe(t,{attributes:!0,attributeOldValue:!0,attributeFilter:v,subtree:e,childList:e,characterData:e}),o=!0,()=>{o&&(p(),b.disconnect(),o=!1)}),()=>{if(o)return d.m(),x(!0,b.takeRecords())}]},Tn=(t,n,r)=>{const{dt:o}=r||{},s=we(un),[i]=e({o:!1,u:!0});return()=>{const e=[],r=It(`
`)[0],l=r.firstChild,c=t=>{let e=!1,r=!1;if(t instanceof ResizeObserverEntry){const[n,,o]=i(t.contentRect),s=ne(n);r=re(n,o),e=!r&&!s}else r=!0===t;e||n({ft:!0,dt:r})};if(f){const t=new f((t=>c(t.pop())));t.observe(l),E(e,(()=>{t.disconnect()}))}else{if(!s)return ot;{const[t,n]=s(l,c,o);E(e,L([Ct(r,Ne),se(r,"animationstart",t)],n))}}return st(_,E(e,Rt(t,r)))}},kn=(t,n)=>{let r;const o=zt(We),[s]=e({o:!1}),i=(t,e)=>{if(t){const r=s((t=>0===t.h||t.isIntersecting||t.intersectionRatio>0)(t)),[,o]=r;return o&&!e&&n(r)&&[r]}},l=(t,e)=>i(e.pop(),t);return[()=>{const e=[];if(h)r=new h(st(l,!1),{root:t}),r.observe(o),E(e,(()=>{r.disconnect()}));else{const t=()=>{const t=Jt(o);i(t)};E(e,Tn(o,t)()),t()}return st(_,E(e,Rt(t,o)))},()=>r&&l(!0,r.takeRecords())]},Pn=(t,n,r,o)=>{let s,i,l,c,a,u;const d=`[${Te}]`,p=`[${Pe}]`,y=["id","class","style","open","wrap","cols","rows"],{vt:h,ht:v,U:x,gt:b,bt:w,L:m,yt:O,wt:M,St:C,Ot:D}=t,k=t=>"rtl"===Zt(t,"direction"),P={$t:!1,B:k(h)},H=Cn(),A=we(fn),[E]=e({i:et,o:{w:0,h:0}},(()=>{const e=A&&A.V(t,n,P,H,r).W,o=!(O&&m)&&St(v,Te,Ce),s=!m&&M(Le),i=s&&ue(b),l=i&&D(),c=C(Ee,o),a=s&&e&&e()[0],u=Qt(x),d=te(x);return a&&a(),ae(b,i),l&&l(),o&&c(),{w:u.w+d.w,h:u.h+d.h}})),R=lt(o,{_:()=>s,v:()=>i,S(t,e){const[n]=t,[r]=e;return[L(at(n),at(r)).reduce(((t,e)=>(t[e]=n[e]||r[e],t)),{})]}}),U=t=>{const e=k(h);ut(t,{Ct:u!==e}),ut(P,{B:e}),u=e},z=(t,e)=>{const[n,r]=t,s={xt:r};return ut(P,{$t:n}),!e&&o(s),s},I=({ft:t,dt:e})=>{const n=t&&!e||!H.P?o:R,r={ft:t||e,dt:e};U(r),n(r)},_=(t,e)=>{const[,n]=E(),r={Ht:n};return U(r),n&&!e&&(t?o:R)(r),r},j=(t,e,n)=>{const r={Et:e};return U(r),e&&!n&&R(r),r},[N,V]=w?kn(v,z):[],B=!m&&Tn(v,I,{dt:!0}),[F,Z]=Dn(v,!1,j,{rt:y,ct:y}),W=m&&f&&new f((t=>{const e=t[t.length-1].contentRect;I({ft:!0,dt:re(e,a)}),a=e})),q=lt((()=>{const[,t]=E();o({Ht:t})}),{_:222,p:!0});return[()=>{W&&W.observe(v);const t=B&&B(),e=N&&N(),n=F(),r=H.K((t=>{t?R({zt:t}):q()}));return()=>{W&&W.disconnect(),t&&t(),e&&e(),c&&c(),n(),r()}},({It:t,At:e,Dt:n})=>{const r={},[o]=t("update.ignoreMutation"),[a,u]=t("update.attributes"),[h,f]=t("update.elementEvents"),[v,b]=t("update.debounce"),O=e||n;if(f||u){l&&l(),c&&c();const[t,e]=Dn(w||x,!0,_,{ct:L(y,a||[]),lt:h,it:d,_t:(t,e)=>{const{target:n,attributeName:r}=t;return!(e||!r||m)&&((t,e,n)=>{const r=At(t,e),o=t&&((t,e)=>{const n=e?T(e)&&e:document;return n&&n.querySelector(t)})(n,r),s=At(o,e)===r;return!(!r||!o)&&(r===t||o===t||s&&At(At(t,n),e)!==r)})(n,d,p)||!!At(n,`.${Ye}`)||!!(t=>$(o)&&o(t))(t)}});c=t(),l=e}if(b)if(R.m(),S(v)){const t=v[0],e=v[1];s=g(t)&&t,i=g(e)&&e}else g(v)?(s=v,i=!1):(s=!1,i=!1);if(O){const t=Z(),e=V&&V(),n=l&&l();t&&ut(r,j(t[0],t[1],O)),e&&ut(r,z(e[0],O)),n&&ut(r,_(n[0],O))}return U(r),r},P]},Hn=(t,e)=>$(e)?e.apply(0,t):e,An=(t,e,n,r)=>{const o=x(r)?n:r;return Hn(t,o)||e.apply(0,t)},Ln=(t,e,n,r)=>{const o=x(r)?n:r,s=Hn(t,o);return!!s&&(D(s)?s:e.apply(0,t))},En=(t,e,n,r)=>{const o="--os-viewport-percent",s="--os-scroll-percent",i="--os-scroll-direction",{Z:l}=Cn(),{scrollbars:c}=l(),{slot:a}=c,{vt:u,ht:d,U:p,Mt:y,gt:h,yt:f,L:x}=e,{scrollbars:b}=y?{}:t,{slot:g}=b||{},w=[],$=[],S=[],O=Ln([u,d,p],(()=>x&&f?u:d),a,g),M=t=>{if(v){let e=null,r=[];const o=new v({source:h,axis:t}),s=()=>{e&&e.cancel(),e=null},i=i=>{const{Tt:l}=n,c=pe(l)[t],a="x"===t,u=[qt(0,a),qt(`calc(100cq${a?"w":"h"} + -100%)`,a)],d=c?u:u.reverse();return r[0]===d[0]&&r[1]===d[1]||(s(),r=d,e=i.kt.animate({clear:["left"],transform:d},{timeline:o})),s};return{Rt:i}}},C={x:M("x"),y:M("y")},D=(t,e,n)=>{const r=n?Ct:Mt;H(t,(t=>{r(t.Ut,e)}))},T=(t,e)=>{H(t,(t=>{const[n,r]=e(t);Ft(n,r)}))},k=(t,e,n)=>{const r=m(n),o=!r||!n;(!r||n)&&D($,t,e),o&&D(S,t,e)},P=t=>{const e=t?"x":"y",n=zt(`${Ye} ${t?Ge:Je}`),o=zt(Ke),s=zt(Qe),i={Ut:n,Pt:o,kt:s},l=C[e];return E(t?$:S,i),E(w,[Rt(n,o),Rt(o,s),st(Et,n),l&&l.Rt(i),r(i,k,t)]),i},A=st(P,!0),L=st(P,!1);return A(),L(),[{Nt:()=>{const t=(()=>{const{Vt:t,Lt:e}=n,r=(t,e)=>yt(0,1,t/(t+e)||0);return{x:r(e.x,t.x),y:r(e.y,t.y)}})(),e=t=>e=>[e.Ut,{[o]:Vt(t)+""}];T($,e(t.x)),T(S,e(t.y))},qt:()=>{if(!v){const{Tt:t}=n,e=ye(t,ue(h)),r=t=>e=>[e.Ut,{[s]:Vt(t)+""}];T($,r(e.x)),T(S,r(e.y))}},jt:()=>{const{Tt:t}=n,e=pe(t),r=t=>e=>[e.Ut,{[i]:t?"0":"1"}];T($,r(e.x)),T(S,r(e.y)),v&&($.forEach(C.x.Rt),S.forEach(C.y.Rt))},Bt:()=>{if(x&&!f){const{Vt:t,Tt:e}=n,r=pe(e),o=ye(e,ue(h)),s=e=>{const{Ut:n}=e,s=Ht(n)===p&&n,i=(t,e,n)=>{const r=e*t;return Bt(n?r:-r)};return[s,s&&{transform:qt({x:i(o.x,t.x,r.x),y:i(o.y,t.y,r.y)})}]};T($,s),T(S,s)}},Ft:k,Xt:{Yt:$,Wt:A,Gt:st(T,$)},Jt:{Yt:S,Wt:L,Gt:st(T,S)}},()=>(Rt(O,$[0].Ut),Rt(O,S[0].Ut),st(_,w))]},Rn=(t,e,n,r)=>(o,l,c)=>{const{ht:a,U:d,L:p,gt:y,Kt:h,Ot:f}=e,{Ut:v,Pt:x,kt:b}=o,[g,w]=it(333),[m,S]=it(444),O=t=>{$(y.scrollBy)&&y.scrollBy({behavior:"smooth",left:t.x,top:t.y})};let M=!0;return st(_,[se(b,"pointermove pointerleave",r),se(v,"pointerenter",(()=>{l(nn,!0)})),se(v,"pointerleave pointercancel",(()=>{l(nn,!1)})),!p&&se(v,"mousedown",(()=>{const t=Lt();(vt(t,Pe)||vt(t,Te)||t===document.body)&&u(st(he,d),25)})),se(v,"wheel",(t=>{const{deltaX:e,deltaY:n,deltaMode:r}=t;M&&0===r&&Ht(v)===a&&O({x:e,y:n}),M=!1,l(ln,!0),g((()=>{M=!0,l(ln)})),le(t)}),{H:!1,I:!0}),se(v,"pointerdown",st(se,h,"click",ce,{A:!0,I:!0,H:!1}),{I:!0}),(()=>{const e="pointerup pointercancel lostpointercapture",r=`client${c?"X":"Y"}`,o=c?X:G,l=c?"left":"top",a=c?"w":"h",u=c?"x":"y",d=(t,e)=>r=>{const{Vt:o}=n,s=Jt(x)[a]-Jt(b)[a],i=e*r/s*o[u];ae(y,{[u]:t+i})},p=[];return se(x,"pointerdown",(n=>{const c=At(n.target,`.${Qe}`)===b,v=c?b:x,g=t.scrollbars,w=g[c?"dragScroll":"clickScroll"],{button:$,isPrimary:M,pointerType:C}=n,{pointers:D}=g;if(0===$&&M&&w&&(D||[]).includes(C)){_(p),S();const t=!c&&(n.shiftKey||"instant"===w),g=st(ee,b),$=st(ee,x),M=(t,e)=>(t||g())[l]-(e||$())[l],C=s(ee(y)[o])/Jt(y)[a]||1,D=d(ue(y)[u],1/C),T=n[r],k=g(),P=$(),H=k[o],A=M(k,P)+H/2,L=T-P[l],R=c?0:L-A,U=t=>{_(j),v.releasePointerCapture(t.pointerId)},z=c||t,I=f(),j=[se(h,e,U),se(h,"selectstart",(t=>le(t)),{H:!1}),se(x,e,U),z&&se(x,"pointermove",(t=>D(R+(t[r]-T)))),z&&(()=>{const t=ue(y);I();const e=ue(y),n={x:e.x-t.x,y:e.y-t.y};(i(n.x)>3||i(n.y)>3)&&(f(),ae(y,t),O(n),m(I))})];if(v.setPointerCapture(n.pointerId),t)D(R);else if(!c){const t=we(xn);if(t){const e=t(D,R,H,(t=>{t?I():E(j,I)}));E(j,e),E(p,st(e,!0))}}}}))})(),w,S])},Un=t=>{const e=Cn(),{Z:r,P:o}=e,{elements:s}=r(),{padding:i,viewport:l,content:c}=s,a=D(t),u=a?{}:t,{elements:d}=u,{padding:p,viewport:y,content:h}=d||{},f=a?t:u.target,v=kt(f),x=f.ownerDocument,b=x.documentElement,g=()=>x.defaultView||n,w=st(An,[f]),m=st(Ln,[f]),$=st(zt,""),S=st(w,$,l),O=st(m,$,c),M=S(y),C=M===f,T=C&&v,k=!C&&O(h),P=!C&&M===k,H=T?b:M,L=T?H:f,R=!C&&m($,i,p),U=!P&&k,z=[U,H,R,L].map((t=>D(t)&&!Ht(t)&&t)),I=t=>t&&A(z,t),j=!I(H)&&(t=>{const e=Jt(t),n=Qt(t),r=Zt(t,q),o=Zt(t,Y);return n.w-e.w>0&&!yn(r)||n.h-e.h>0&&!yn(o)})(H)?H:f,N=T?b:H,V={vt:f,ht:L,U:H,ln:R,bt:U,gt:N,Qt:T?x:H,an:v?b:j,Kt:x,yt:v,Mt:a,L:C,un:g,wt:t=>St(H,Pe,t),St:(t,e)=>$t(H,Pe,t,e),Ot:()=>$t(N,Pe,Re,!0)},{vt:B,ht:F,ln:Z,U:W,bt:X}=V,G=[()=>{bt(F,[Te,Me]),bt(B,Me),v&&bt(b,[Me,Te])}];let J=Pt([X,W,Z,F,B].find((t=>t&&!I(t))));const K=T?B:X||W,Q=st(_,G);return[V,()=>{const t=g(),e=Lt(),n=t=>{Rt(Ht(t),Pt(t)),Et(t)},r=t=>se(t,"focusin focusout focus blur",ce,{I:!0,H:!1}),s="tabindex",i=ft(W,s),l=r(e);return xt(F,Te,C?"":ke),xt(Z,Ie,""),xt(W,Pe,""),xt(X,_e,""),C||(xt(W,s,i||"-1"),v&&xt(b,De,"")),Rt(K,J),Rt(F,Z),Rt(Z||F,!C&&W),Rt(W,X),E(G,[l,()=>{const t=Lt(),e=I(W),o=e&&t===W?B:t,l=r(o);bt(Z,Ie),bt(X,_e),bt(W,Pe),v&&bt(b,De),i?xt(W,s,i):bt(W,s),I(X)&&n(X),e&&n(W),I(Z)&&n(Z),he(o),l()}]),o&&!C&&(mt(W,Pe,Ue),E(G,st(bt,W,Pe))),he(!C&&v&&e===B&&t.top===t?W:e),l(),J=0,Q},Q]},zn=({bt:t})=>({Zt:e,_n:n,Dt:r})=>{const{xt:o}=e||{},{$t:s}=n;t&&(o||r)&&Ft(t,{[G]:s&&"100%"})},In=({ht:t,ln:n,U:r,L:o},s)=>{const[i,l]=e({i:rt,o:Wt()},st(Wt,t,"padding",""));return({It:t,Zt:e,_n:c,Dt:a})=>{let[u,d]=l(a);const{P:p}=Cn(),{ft:y,Ht:h,Ct:f}=e||{},{B:v}=c,[x,b]=t("paddingAbsolute");(y||d||a||h)&&([u,d]=i(a));const g=!o&&(b||f||d);if(g){const t=!x||!n&&!p,e=u.r+u.l,o=u.t+u.b,i={[Z]:t&&!v?-e:0,[W]:t?-o:0,[F]:t&&v?-e:0,top:t?-u.t:0,right:t?v?-u.r:"auto":0,left:t?v?"auto":-u.l:0,[X]:t&&`calc(100% + ${e}px)`},l={[j]:t?u.t:0,[N]:t?u.r:0,[B]:t?u.b:0,[V]:t?u.l:0};Ft(n||r,i),Ft(r,l),ut(s,{ln:u,dn:!t,F:n?l:ut({},i,l)})}return{fn:g}}},_n=(t,o)=>{const s=Cn(),{ht:i,ln:l,U:c,L:u,Qt:d,gt:p,yt:y,St:h,un:f}=t,{P:v}=s,x=y&&u,b=st(r,0),g={display:()=>!1,direction:t=>"ltr"!==t,flexDirection:t=>t.endsWith("-reverse"),writingMode:t=>"horizontal-tb"!==t},w=at(g),m={i:et,o:{w:0,h:0}},$={i:nt,o:{}},S=t=>{h(Ee,!x&&t)},O=t=>{const e=w.some((e=>{const n=t[e];return n&&g[e](n)}));if(!e)return{D:{x:0,y:0},M:{x:1,y:1}};S(!0);const n=ue(p),r=h(ze,!0),o=se(d,Q,(t=>{const e=ue(p);t.isTrusted&&e.x===n.x&&e.y===n.y&&ie(t)}),{I:!0,A:!0});ae(p,{x:0,y:0}),r();const s=ue(p),i=Qt(p);ae(p,{x:i.w,y:i.h});const l=ue(p);ae(p,{x:l.x-s.x<1&&-i.w,y:l.y-s.y<1&&-i.h});const c=ue(p);return ae(p,n),a((()=>o())),{D:s,M:c}},M=(t,e)=>{const r=n.devicePixelRatio%1!=0?1:0,o={w:b(t.w-e.w),h:b(t.h-e.h)};return{w:o.w>r?o.w:0,h:o.h>r?o.h:0}},[C,D]=e(m,st(te,c)),[T,k]=e(m,st(Qt,c)),[P,H]=e(m),[A]=e($),[L,E]=e(m),[R]=e($),[U]=e({i:(t,e)=>tt(t,e,w),o:{}},(()=>(t=>!!t&&(t=>!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length))(t))(c)?Zt(c,w):{})),[z,I]=e({i:(t,e)=>nt(t.D,e.D)&&nt(t.M,e.M),o:{D:{x:0,y:0},M:{x:0,y:0}}}),_=we(fn),j=(t,e)=>`${e?He:Ae}${(t=>{const e=String(t||"");return e?e[0].toUpperCase()+e.slice(1):""})(t)}`,N=t=>{const e=t=>[J,K,Q].map((e=>j(e,t))),n=e(!0).concat(e()).join(" ");h(n),h(at(t).map((e=>j(t[e],"x"===e))).join(" "),!0)};return({It:e,Zt:n,_n:r,Dt:a},{fn:u})=>{const{ft:d,Ht:p,Ct:y,dt:g,zt:w}=n||{},m=_&&_.V(t,o,r,s,e),{Y:$,W:j,G:V}=m||{},[B,F]=pn(e,s),[Z,W]=e("overflow"),q=yn(Z.x),Y=yn(Z.y);let X=D(a),G=k(a),J=H(a),K=E(a);F&&v&&h(Ue,!B);{St(i,Te,Ce)&&S(!0);const[t]=j?j():[],[e]=X=C(a),[n]=G=T(a),r=Kt(c),o=x&&Gt(f()),s={w:b(n.w+e.w),h:b(n.h+e.h)},l={w:b((o?o.w:r.w+b(r.w-n.w))+e.w),h:b((o?o.h:r.h+b(r.h-n.h))+e.h)};t&&t(),K=L(l),J=P(M(s,l),a)}const[Q,tt]=K,[et,nt]=J,[rt,ot]=G,[st,it]=X,[lt,ct]=A({x:et.w>0,y:et.h>0}),at=q&&Y&&(lt.x||lt.y)||q&<.x&&!lt.y||Y&<.y&&!lt.x,dt=u||y||w||it||ot||tt||nt||W||F||!0,pt=hn(lt,Z),[yt,ht]=R(pt.k),[ft,vt]=U(a),xt=y||g||vt||ct||a,[bt,gt]=xt?z(O(ft),a):I();return dt&&(ht&&N(pt.k),V&&$&&Ft(c,V(pt,r,$(pt,rt,st)))),S(!1),$t(i,Te,Ce,at),$t(l,Ie,Ce,at),ut(o,{k:yt,Lt:{x:Q.w,y:Q.h},Vt:{x:et.w,y:et.h},rn:lt,Tt:de(bt,et)}),{en:ht,nn:tt,sn:nt,cn:gt||nt,vn:xt}}},jn=t=>{const[e,n,r]=Un(t),o={ln:{t:0,r:0,b:0,l:0},dn:!1,F:{[Z]:0,[W]:0,[F]:0,[j]:0,[N]:0,[B]:0,[V]:0},Lt:{x:0,y:0},Vt:{x:0,y:0},k:{x:K,y:K},rn:{x:!1,y:!1},Tt:{D:{x:0,y:0},M:{x:0,y:0}}},{vt:s,gt:i,L:l,Ot:c}=e,{P:a,T:u}=Cn(),d=!a&&(u.x||u.y),p=[zn(e),In(e,o),_n(e,o)];return[n,t=>{const e={},n=d&&ue(i),r=n&&c();return H(p,(n=>{ut(e,n(t,e)||{})})),ae(i,n),r&&r(),!l&&ae(s,0),e},o,e,r]},Nn=new WeakMap,Vn=t=>Nn.get(t),Bn=(t,e,n)=>{const{nt:r}=Cn(),o=D(t),s=o?t:t.target,i=Vn(s);if(e&&!i){let i=!1;const l=[],c={},a=t=>{const e=dt(t),n=we(me);return n?n(e,!0):e},u=ut({},r(),a(e)),[d,p,y]=ve(),[h,f,v]=ve(n),g=(t,e)=>{v(t,e),y(t,e)},[w,m,$,S,O]=((t,e,n,r)=>{let o=!1;const s=Sn(e,{}),[i,l,c,a,u]=jn(t),[d,p,y]=Pn(a,c,s,(t=>{b({},t)})),[h,f,,v]=((t,e,n,r,o,s)=>{let i,l,c,a,u,d=ot,p=0;const y=["mouse","pen"],h=t=>y.includes(t.pointerType),[f,v]=it(),[x,b]=it(100),[g,w]=it(100),[m,$]=it((()=>p)),[S,O]=En(t,o,r,Rn(e,o,r,(t=>h(t)&&R()))),{ht:M,Qt:C,yt:D}=o,{Ft:T,Nt:k,qt:P,jt:H,Bt:A}=S,L=(t,e)=>{if($(),t)T(sn);else{const t=st(T,sn,!0);p>0&&!e?m(t):t()}},R=()=>{(c?i:a)||(L(!0),x((()=>{L(!1)})))},U=t=>{T(on,t,!0),T(on,t,!1)},z=t=>{h(t)&&(i=c,c&&L(!0))},I=[$,b,w,v,()=>d(),se(M,"pointerover",z,{A:!0}),se(M,"pointerenter",z),se(M,"pointerleave",(t=>{h(t)&&(i=!1,c&&L(!1))})),se(M,"pointermove",(t=>{h(t)&&l&&R()})),se(C,"scroll",(t=>{f((()=>{P(),R()})),s(t),A()}))];return[()=>st(_,E(I,O())),({It:t,Dt:e,Zt:o,tn:s})=>{const{nn:i,sn:y,en:h,cn:f}=s||{},{Ct:v,dt:x}=o||{},{B:b}=n,{T:w}=Cn(),{k:m,rn:$}=r,[S,O]=t("showNativeOverlaidScrollbars"),[M,E]=t("scrollbars.theme"),[R,z]=t("scrollbars.visibility"),[I,_]=t("scrollbars.autoHide"),[j,N]=t("scrollbars.autoHideSuspend"),[V]=t("scrollbars.autoHideDelay"),[B,F]=t("scrollbars.dragScroll"),[Z,W]=t("scrollbars.clickScroll"),[q,Y]=t("overflow"),X=x&&!e,G=$.x||$.y,K=i||y||f||v||e,tt=h||z||Y,et=S&&w.x&&w.y,nt=(t,e,n)=>{const r=t.includes(Q)&&(R===J||"auto"===R&&e===Q);return T(tn,r,n),r};if(p=V,X&&(j&&G?(U(!1),d(),g((()=>{d=se(C,"scroll",st(U,!0),{A:!0})}))):U(!0)),O&&T(qe,et),E&&(T(u),T(M,!0),u=M),N&&!j&&U(!0),_&&(l="move"===I,c="leave"===I,a="never"===I,L(a,!0)),F&&T(an,B),W&&T(cn,!!Z),tt){const t=nt(q.x,m.x,!0),e=nt(q.y,m.y,!1);T(en,!(t&&e))}K&&(P(),k(),A(),f&&H(),T(rn,!$.x,!0),T(rn,!$.y,!1),T(Xe,b&&!D))},{},S]})(t,e,y,c,a,(t=>g("scroll",[C,t]))),x=t=>at(t).some((e=>!!t[e])),b=(t,s)=>{if(n())return!1;const{pn:i,Dt:c,At:a,hn:u}=t,d=i||{},h=!!c||!o,v={It:Sn(e,d,h),pn:d,Dt:h};if(u)return f(v),!1;const b=s||p(ut({},v,{At:a})),g=l(ut({},v,{_n:y,Zt:b}));f(ut({},v,{Zt:b,tn:g}));const w=x(b),m=x(g),$=w||m||!pt(d)||h;return o=!0,$&&r(t,{Zt:b,tn:g}),$};return[()=>{const{an:t,gt:e,Ot:n}=a,r=ue(t),o=[d(),i(),h()],s=n();return ae(e,r),s(),st(_,o)},b,()=>({gn:y,bn:c}),{yn:a,wn:v},u]})(t,u,(()=>i),(({pn:t,Dt:e},{Zt:n,tn:r})=>{const{ft:o,Ct:s,xt:i,Ht:l,Et:c,dt:a}=n,{nn:u,sn:d,en:p,cn:y}=r;g("updated",[C,{updateHints:{sizeChanged:!!o,directionChanged:!!s,heightIntrinsicChanged:!!i,overflowEdgeChanged:!!u,overflowAmountChanged:!!d,overflowStyleChanged:!!p,scrollCoordinatesChanged:!!y,contentMutation:!!l,hostMutation:!!c,appear:!!a},changedOptions:t||{},force:!!e}])})),M=t=>{(t=>{Nn.delete(t)})(s),_(l),i=!0,g("destroyed",[C,t]),p(),f()},C={options(t,e){if(t){const n=e?r():{},o=$n(u,ut(n,a(t)));pt(o)||(ut(u,o),m({pn:o}))}return ut({},u)},on:h,off:(t,e)=>{t&&e&&f(t,e)},state(){const{gn:t,bn:e}=$(),{B:n}=t,{Lt:r,Vt:o,k:s,rn:l,ln:c,dn:a,Tt:u}=e;return ut({},{overflowEdge:r,overflowAmount:o,overflowStyle:s,hasOverflow:l,scrollCoordinates:{start:u.D,end:u.M},padding:c,paddingAbsolute:a,directionRTL:n,destroyed:i})},elements(){const{vt:t,ht:e,ln:n,U:r,bt:o,gt:s,Qt:i}=S.yn,{Xt:l,Jt:c}=S.wn,a=t=>{const{kt:e,Pt:n,Ut:r}=t;return{scrollbar:r,track:n,handle:e}},u=t=>{const{Yt:e,Wt:n}=t,r=a(e[0]);return ut({},r,{clone:()=>{const t=a(n());return m({hn:!0}),t}})};return ut({},{target:t,host:e,padding:n||r,viewport:r,content:o||r,scrollOffsetElement:s,scrollEventElement:i,scrollbarHorizontal:u(l),scrollbarVertical:u(c)})},update:t=>m({Dt:t,At:!0}),destroy:st(M,!1),plugin:t=>c[at(t)[0]]};return E(l,[O]),((t,e)=>{Nn.set(t,e)})(s,C),ge(xe,Bn,[C,d,c]),((t,e)=>{const{nativeScrollbarsOverlaid:n,body:r}=e||{},{T:o,P:s,Z:i}=Cn(),{nativeScrollbarsOverlaid:l,body:c}=i().cancel,a=null!=n?n:l,u=x(r)?c:r,d=(o.x||o.y)&&a,p=t&&(b(u)?!s:u);return!!d||!!p})(S.yn.yt,!o&&t.cancel)?(M(!0),C):(E(l,w()),g("initialized",[C]),C.update(),C)}return i};return Bn.plugin=t=>{const e=S(t),n=e?t:[t],r=n.map((t=>ge(t,Bn)[0]));return(t=>{H(t,(t=>H(t,((e,n)=>{xe[n]=t[n]}))))})(n),e?r:r[0]},Bn.valid=t=>{const e=t&&t.elements,n=$(e)&&e();return C(n)&&!!Vn(n.target)},Bn.env=()=>{const{N:t,T:e,P:n,J:r,st:o,et:s,Z:i,tt:l,nt:c,ot:a}=Cn();return ut({},{scrollbarsSize:t,scrollbarsOverlaid:e,scrollbarsHiding:n,scrollTimeline:r,staticDefaultInitialization:o,staticDefaultOptions:s,getDefaultInitialization:i,setDefaultInitialization:l,getDefaultOptions:c,setDefaultOptions:a})},Bn.nonce=t=>{On=t},Bn.trustedTypePolicy=t=>{Ut=t},t.ClickScrollPlugin=bn,t.OverlayScrollbars=Bn,t.ScrollbarsHidingPlugin=vn,t.SizeObserverPlugin=dn,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t}({}); \ No newline at end of file diff --git a/js/popper.min.js b/js/popper.min.js new file mode 100644 index 0000000..3938564 --- /dev/null +++ b/js/popper.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.11.8 - MIT License + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function p(e,o,i){void 0===o&&(o=!1),void 0===i&&(i=!1);var a=e.getBoundingClientRect(),f=1,p=1;o&&r(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function N(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function I(e,r,o){return r===H?N(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):N(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function _(e,t,o,s){var f="clippingParents"===t?function(e){var t=w(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&C(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=I(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),I(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function F(e){return e.split("-")[0]}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?F(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y("number"!=typeof b?b:G(b,k)),w=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?w:m],E=_(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=N(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[F(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=F(v),g=f||(y===v||!h?[fe(v)]:function(e){if(F(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(F(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var C=fe(q),N=[];if(i&&N.push(V[H]<=0),s&&N.push(V[q]<=0,V[C]<=0),N.every((function(e){return e}))){E=B,j=!1;break}O.set(B,N)}if(j)for(var I=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,"break"},_=h?3:1;_>0;_--){if("break"===I(_))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=F(t.placement),w=U(t.placement),O=!w,j=z(x),M="x"===j?"y":"x",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,C="y"===j?D:P,N="y"===j?A:L,I="y"===j?"height":"width",_=k[j],X=_+b[C],Y=_-b[N],G=m?-H[I]/2:0,K=w===W?B[I]:H[I],Q=w===W?-H[I]:-B[I],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[C],ne=ee[N],re=de(0,B[I],$[I]),oe=O?B[I]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[I]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=_+ie-fe,pe=de(m?a(X,_+oe-fe-se):X,_,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-_}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=F(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&C(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,"__esModule",{value:!0})})); +//# sourceMappingURL=popper.min.js.map diff --git a/js/siprefix.min.js b/js/siprefix.min.js new file mode 100644 index 0000000..5f2b86b --- /dev/null +++ b/js/siprefix.min.js @@ -0,0 +1 @@ +function siConvert(r){var t={Y:24,Z:21,E:18,P:15,T:12,G:9,M:6,k:3,"":0,m:-3,"µ":-6,n:-9,p:-12,f:-15,a:-18,z:-21,y:-24};if("string"==typeof r)return t[r];if("number"==typeof r)for(var n in t)if(t[n]===r)return n}function scale(r,t){t=t!==!1,"string"==typeof r&&(r=expand(r)),r=Number(r);var n=0;if(r!=0){n=Math.floor(Math.log10(Math.abs(r)));}n=3*Math.floor(n/3),n>24?n=24:n<-24&&(n=-24),r/=Math.pow(10,n);r=Math.round(r*10)/10;var e=siConvert(n);return 1==t?(String(r)+" "+e).trim():0==t?[r,e]:void 0}function expand(r){var t=0;if("string"==typeof r&&/[a-zA-Z]/.test(r.slice(-1))){var n=r.slice(-1);t=siConvert(n),r=r.slice(0,-1).trim()}return r=Number(r),r*=Math.pow(10,t)} \ No newline at end of file diff --git a/js/solar/autoActionFuncs.js b/js/solar/autoActionFuncs.js new file mode 100644 index 0000000..af41f72 --- /dev/null +++ b/js/solar/autoActionFuncs.js @@ -0,0 +1,295 @@ +function changeValueType(event){ + dropdown = event.currentTarget; + type = dropdown.options[dropdown.selectedIndex].dataset.type; + id = dropdown.id.match(/\d+$/); + if(dropdown.id.search("act") > -1){ + opBtnID = "btnActOperator"+id; + valBlockID = "actValBlock"+id; + valElemID = "actValue"+id; + }else{ + opBtnID = "btnOperator"+id; + valBlockID ="valBlock"+id; + valElemID = "threshold"+id; + } + if(type =="hidden"){ + document.getElementById(opBtnID).hidden = true; + document.getElementById(valBlockID).hidden = true; + }else{ + document.getElementById(opBtnID).hidden = false; + document.getElementById(valBlockID).hidden = false; + document.getElementById(valElemID).type = type; + } + } + + function fillSensorDD(ID){ + var elem = document.getElementById("sensorSelect"+ID); + fetch("./ajax/fillSensorDD.php", { + method: 'GET', + headers: { + 'X-Requested-From-Modal': 'a', + 'Requested-With-Ajax': 'ajax' + } + }) + .then(response => response.text()) + .then(html => { + elem.innerHTML = html; + elem.addEventListener("change", arrangeSensorInputs); + document.getElementById("paramSelect"+ID).addEventListener("change", changeValueType); + elem.dispatchEvent(new Event('change')); + }) + .catch(error => { + elem.innerHTML = ""; + }); + } + + function fillActorDD(ID){ + var elem = document.getElementById("actorSelect"+ID); + fetch("./ajax/fillActorDD.php", { + method: 'GET', + headers: { + 'X-Requested-From-Modal': 'a', + 'Requested-With-Ajax': 'ajax' + } + }) + .then(response => response.text()) + .then(html => { + elem.innerHTML = html; + elem.addEventListener("change", arrangeActorInputs); + document.getElementById("actParamSelect"+ID).addEventListener("change", changeValueType); + document.getElementById("actorSelect"+ID).dispatchEvent(new Event('change')); + }) + .catch(error => { + elem.innerHTML = ""; + }); + } + + function changeAllIDs (parentNode, newID) { + for (var i = 0; i < parentNode.childNodes.length; i++) { + var child = parentNode.childNodes[i]; + changeAllIDs(child, newID); + } + if(parentNode.id){ + parentNode.id = parentNode.id.replace(/\d+$/, newID); + } + if(parentNode.dataset !== undefined){ + if(parentNode.dataset.delid) + parentNode.dataset.delid = parentNode.dataset.delid.replace(/\d+$/, newID); + } + } + + function delAutoEntry(event){ + ID = event.currentTarget.dataset.delid; + document.getElementById(ID).remove(); + ID = ID.replace(/\d+$/, function(n){ return ++n }); + while(sensor= document.getElementById(ID)){ + changeAllIDs(sensor, ID.match(/\d+$/)-1); + ID = ID.replace(/\d+$/, function(n){ return ++n }); + } + } + function addSensor(event){ + var t = document.getElementById('sensorsList').children; + //get the second last element (ignore "add" button) + nextID = Number(t[t.length-1].id.replace("sensorSettings","")) + 1; + var div = document.createElement('div'); + div.className = "input-group mt-3"; + div.id = "sensorSettings"+String(nextID); + div.innerHTML = ` +
+ + +
+
+ + +
+ +
+ + +
+ + `; + document.getElementById("sensorsList").appendChild(div); + fillSensorDD(nextID); + } + + function addActor(event){ + var t = document.getElementById('actorsList').children; + //get the second last element (ignore "add" button) + nextID = Number(t[t.length-1].id.replace("actorSettings","")) + 1; + var div = document.createElement('div'); + div.className = "input-group mt-3"; + div.id = "actorSettings"+String(nextID); + div.innerHTML = `
+ + +
+
+ + +
+ +
+ + +
+ `; + + document.getElementById("actorsList").appendChild(div); + /*"afterend",`
+
+ + +
+
+ + +
+ +
+ + +
+ +
`);*/ + fillActorDD(nextID); + } + + function arrangeSensorInputs(event){ + ID = Number(event.currentTarget.id.replace("sensorSelect","")); + sensorID = document.getElementById("sensorSelect"+ID).value; + + fetch("./ajax/sensorDetails.php?sensorID="+sensorID, { + method: 'GET', + headers: { + 'X-Requested-From-Modal': 'a', + 'Requested-With-Ajax': 'ajax' + } + }) + .then(response => response.text()) + .then(html => { + params = JSON.parse(html); + document.getElementById("paramSelect"+ID).innerHTML = ""; + if(params.Parameters.length == 1){ + document.getElementById("paramBlock"+ID).hidden = true; + }else{ + document.getElementById("paramBlock"+ID).hidden = false; + } + params.Parameters.forEach((param, index) => { + var option = document.createElement("option"); + option.text = param.name; + option.value = index; + option.setAttribute("data-type",param.type); + document.getElementById("paramSelect"+ID).appendChild(option); + document.getElementById("btnOperator"+ID).setAttribute("data-tglstates",JSON.stringify(param.operators)); + document.getElementById("btnOperator"+ID).innerHTML = param.operators[0]; + document.getElementById("btnOperator"+ID).addEventListener("click", tglOperators); + if(document.getElementById("btnLogic"+ID)) + document.getElementById("btnLogic"+ID).addEventListener("click", tglOperators); + document.getElementById("threshold"+ID).setAttribute("type",param.type); + }); + document.getElementById("paramSelect"+ID).dispatchEvent(new Event('change')); + }) + .catch(error => { + alert(error); + document.getElementById("paramSelect"+ID).innerHTML = ""; + }); + } + + function arrangeActorInputs(event){ + ID = Number(event.currentTarget.id.replace("actorSelect","")); + sensorID = document.getElementById("actorSelect"+ID).value; + + fetch("./ajax/actorDetails.php?actorID="+sensorID, { + method: 'GET', + headers: { + 'X-Requested-From-Modal': 'a', + 'Requested-With-Ajax': 'ajax' + } + }) + .then(response => response.text()) + .then(html => { + params = JSON.parse(html); + document.getElementById("actParamSelect"+ID).innerHTML = ""; + if(params.Parameters.length == 1){ + document.getElementById("actParamBlock"+ID).hidden = true; + }else{ + document.getElementById("actParamBlock"+ID).hidden = false; + } + params.Parameters.forEach((param, index) => { + var option = document.createElement("option"); + option.text = param.name; + option.value = index; + option.setAttribute("data-type",param.type); + document.getElementById("actParamSelect"+ID).appendChild(option); + if(param.operators === undefined){ + document.getElementById("btnActOperator"+ID).dataset.tglstates = "[\"=\"]"; + document.getElementById("btnActOperator"+ID).innerHTML = "="; + }else{ + document.getElementById("btnActOperator"+ID).dataset.tglstates = JSON.stringify(param.operators); + document.getElementById("btnActOperator"+ID).innerHTML = param.operators[0]; + } + document.getElementById("btnActOperator"+ID).addEventListener("click", tglOperators); + if(document.getElementById("btnActLogic"+ID)){ + document.getElementById("btnActLogic"+ID).addEventListener("click", tglOperators); + } + //if(document.getElementById("actParamSelect"+ID).value == param.id) + // document.getElementById("actValue"+ID).setAttribute("type",param.type); + }); + document.getElementById("actParamSelect"+ID).dispatchEvent(new Event('change')); + }) + .catch(error => { + document.getElementById("actParamSelect"+ID).innerHTML = ""; + }); + } + + + function tglOperators(event){ + btn = event.currentTarget; + operators = JSON.parse(btn.dataset.tglstates); + current = btn.innerHTML; + btn.innerHTML = operators[(operators.indexOf(current)+1) % operators.length]; + } + + function loadAutomatic(params){ + if(params.search("action=new")>0){ + fillSensorDD("1"); + fillActorDD("1"); + } + } + + function openAutoActionModal(params) { + let contentURL = "./ajax/AutoAction.php"+params; + if(params.search("action=new")>0) + document.getElementById("modal-title").innerHTML = "Neue Automatik anlegen"; + else + document.getElementById("modal-title").innerHTML = "Automatik Einstellungen"; + modalBodyElement = document.getElementById('modal-body'); + modalBodyElement.innerHTML = loadingHTML("Wird geladen..."); + document.getElementById("modalSaveBtn").addEventListener("click", submitFormAjax); + document.getElementById("modalSaveBtn").contentURL = contentURL; + modalEV.show(); + fetch(contentURL, { + method: 'GET', + headers: { + 'X-Requested-From-Modal': 'a', + 'Requested-With-Ajax': 'ajax' + } + }) + .then(response => response.text()) + .then(html => { + modalBodyElement.innerHTML = html; + loadAutomatic(params); + document.getElementById("btnAddSensor").addEventListener("click", addSensor); + document.getElementById("btnAddActor").addEventListener("click", addActor); + }) + .catch(error => { + modalBodyElement.innerHTML += error.message; + }); + } \ No newline at end of file diff --git a/js/solar/heatMQTT.js b/js/solar/heatMQTT.js new file mode 100644 index 0000000..8b5f41b --- /dev/null +++ b/js/solar/heatMQTT.js @@ -0,0 +1,236 @@ +var mqttData = {}; + +const solarMQTT = { + getMQTT: function () { + const id = Math.random().toString(36).substring(7); + const topic = "#"; + const connection = "wss://mqtt.nas.el-wa.org:443" + mqttsolarTreeDone = false; + // const connection = "ws://username:password@37.97.203.138:8083" // Works + // const connection = "wss://public:public@public.cloud.shiftr.io" // Works + const client = mqtt.connect(connection, { + rejectUnauthorized: false, + }); + + client.on("message", messageReceived); + client.on("connect", function () { + client.subscribe("solarManager/#"); + client.subscribe("wattpilot/properties/lmo/state"); + client.subscribe("wattpilot/properties/ftt/state"); + client.subscribe("wattpilot/properties/fte/state"); + client.subscribe("wattpilot/properties/amp/state"); + client.subscribe("wattpilot/properties/car/state"); + client.subscribe("go-eCharger/270003/amp"); + client.subscribe("go-eCharger/270003/ate"); + client.subscribe("go-eCharger/270003/lmo"); + client.subscribe("go-eCharger/270003/att"); + client.subscribe("go-eCharger/270003/car"); + client.subscribe("weatherStation/#"); + }); + client.on("error", function (error) { + //alert("MQTT Error: " + error); + }); + client.on('end', function () { + setTimeout(getMQTT, 5000); + alert("MQTT Disconnected, try to reconnect in 5 secs."); + }) + + function getNestedProp(obj, path) { + return path.split('/').reduce((acc, key) => acc && acc[key], obj); + } + function setNestedProp(obj, path, value) { + var schema = obj; // a moving reference to internal objects within obj + var pList = path.split('/'); + var len = pList.length; + for (var i = 0; i < len - 1; i++) { + var elem = pList[i]; + if (!schema[elem]) schema[elem] = {} + schema = schema[elem]; + } + + schema[pList[len - 1]] = value; + } + + function messageReceived(topic, message) { + setNestedProp(mqttData, topic, message); + if (topic == "solarManager/P_Load") { + setTimeout(function () { solarSVG.updateValuesMQTT(mqttData) }, 200); //give the object tree some time to build up and receive all values + } + } + } +} + +const solarSVG = { + updateCnt: 99, + updateValuesMQTT: function (mqttData) { + if (this.updateCnt > 10) { + this.updateCnt = 0; + var obj = document.querySelector("object"); + var htmlNode = obj.contentDocument; + htmlNode.getElementById("PufferOtxt").innerHTML = mqttData["solarManager"]["t_buffT"] + " °C"; + htmlNode.getElementById("PufferMtxt").innerHTML = mqttData["solarManager"]["t_buffM"] + " °C"; + htmlNode.getElementById("PufferUtxt").innerHTML = mqttData["solarManager"]["t_buffB"] + " °C"; + htmlNode.getElementById("heaterVL").innerHTML = mqttData["solarManager"]["t_heatVL"] + " °C"; + htmlNode.getElementById("heaterRL").innerHTML = mqttData["solarManager"]["t_heatRL"] + " °C"; + htmlNode.getElementById("thermeVLfb").innerHTML = mqttData["solarManager"]["t_gasVLu"] + " °C"; + htmlNode.getElementById("thermeVLww").innerHTML = mqttData["solarManager"]["t_gasVLo"] + " °C"; + htmlNode.getElementById("thermeRL").innerHTML = mqttData["solarManager"]["t_gasRL"] + " °C"; + htmlNode.getElementById("fbVL").innerHTML = mqttData["solarManager"]["t_fbVL"] + " °C"; + htmlNode.getElementById("fbRL").innerHTML = mqttData["solarManager"]["t_fbRL"] + " °C"; + htmlNode.getElementById("triac").innerHTML = mqttData["solarManager"]["t_triac"] + " °C"; + } + this.updateCnt++; + } + +} + +var chartSettings = { + type: 'line', + options: { + animation: true, + plugins: { + annotation: { + common: { type: 'box', drawTime: 'beforeDatasetsDraw', yScaleID: 'y-axis-0', backgroundColor: 'rgba(255, 255, 255, 0.05)', init: true }, + annotations: [] + }, + tooltip: { + position: 'nearest', + pointStyle: "circle", + boxWidth: 4, + usePointStyle: true, + callbacks: { + label: function (context) { + let label = context.dataset.label || ''; + if (label) { + label += ': '; + } + if (context.dataset.yAxisID == "y1") { + label += Math.round(context.parsed.y * 10) / 10 + " " + "L/min"; + } else { + if (context.parsed.y !== null) { + ret = scale(Math.round(context.parsed.y), false); + label += ret[0] + " " + ret[1] + "°C"; + } + } + return label; + }, + }, + }, + legend: { + position: "bottom", + labels: { + pointStyleWidth: 10, + usePointStyle: true, + pointStyle: "line", + } + }, + }, + responsive: true, + maintainAspectRatio: false, + interaction: { + intersect: false, + mode: 'index', + }, + scales: { + x: { + adapters: { + date: { + locale: "DE-de" + } + }, + ticks: { + + }, + type: 'timestack', + }, + y: { + stacked: false, + display: true, + position: 'left', + ticks: { + callback: value => `${value} °C`, + }, + title: { + display: true, + text: "Temperatur" + } + }, + y1: { + stacked: false, + display: true, + position: 'right', + ticks: { + callback: value => `${value} L/min`, + }, + title: { + display: true, + text: "Wasserverbrauch" + }, + data:{} + } + } + } + }; + + var chartData = {}; + const heatChart = new Chart( + document.querySelector('#heat-chart'), + Object.assign({}, chartSettings) + ); + const waterChart = new Chart( + document.querySelector('#water-chart'), + Object.assign({}, chartSettings) + ); + + document.addEventListener('readystatechange', function () { + if (event.target.readyState === "complete") { + solarMQTT.getMQTT(); + getData(heatChart, 'ajax/getHeaterData.php'); + getData(waterChart, 'ajax/getWaterData.php'); + } + }); + + String.prototype.toHHMM = function () { + var sec_num = parseInt(this, 10); // don't forget the second param + var hours = Math.floor(sec_num / 3600); + var minutes = Math.floor((sec_num - (hours * 3600)) / 60); + var seconds = sec_num - (hours * 3600) - (minutes * 60); + + if (hours < 10) { hours = "0" + hours; } + if (minutes < 10) { minutes = "0" + minutes; } + return hours + ':' + minutes; + } + + async function getData(chart, url, sunrise=true) { + try { + console.log("fetching"); + const response = await fetch(url); + if (!response.ok) { + console.log("err"); + throw new Error(`Response status: ${response.status}`); + } + chart.data = await response.json(); + if(sunrise){ + const response2 = await fetch("ajax/getSunrise.php?FROM=-24&TO=0"); + if (!response2.ok) { + console.log("err"); + throw new Error(`Response status: ${response2.status}`); + } + chart.options.plugins.annotation.annotations = await response2.json(); + } + chart.update(); + } catch (error) { + console.log(error.message); + } + setTimeout(function () { getData(chart, url, sunrise) }, 5 * 60 * 1000); //renew data every 5 min. + } + + function powerToString(power) { + if (Math.abs(power) > 999) { + power = power / 1000 + return power.toPrecision(3) + " kW" + } else { + return Math.round(power) + " W" + } + + } \ No newline at end of file diff --git a/js/solar/historyMQTT.js b/js/solar/historyMQTT.js new file mode 100644 index 0000000..ec9495e --- /dev/null +++ b/js/solar/historyMQTT.js @@ -0,0 +1,199 @@ +tooltipLabel = function (context) { + let label = context.dataset.label || ''; + if (label) { + label += ': '; + } + if (context.dataset.yAxisID == "y1") { + label += Math.round(context.parsed.y * 10) / 10 + " " + "%"; + } else { + if (context.parsed.y !== null) { + ret = scale(Math.round(context.parsed.y), false); + label += ret[0] + " " + ret[1] + "Wh"; + } + } + return label; +}; + +tooltipFooter = function (tooltipItems){ + let sum = 0; + + tooltipItems.forEach(function(tooltipItem) { + if (tooltipItem.dataset.yAxisID != "y1") { + sum += tooltipItem.parsed.y; + } + }); + ret = scale(Math.round(sum), false); + sum = ret[0] + " " + ret[1] + "Wh"; + return 'Summe: ' + sum; +} + +legendLabels = function(chart){ + const datasets = chart.data.datasets; + const { + labels: { + usePointStyle, + pointStyle, + textAlign, + color + } + } = chart.legend.options; + return chart._getSortedDatasetMetas().map((meta) => { + const style = meta.controller.getStyle(usePointStyle ? 0 : undefined); + const borderWidth = Chart.helpers.toPadding(style.borderWidth); + ret = scale(Math.round(arraySum(datasets[meta.index].data)), false); + ret2 = scale(Math.round(datasets[meta.index].data[datasets[meta.index].data.length-1]), false); + return { + text: datasets[meta.index].label + " Σ " + ret[0]+" "+ret[1]+"Wh",//+ " Last: " + ret2[0]+" "+ret2[1]+"W", + fillStyle: style.backgroundColor, + fontColor: color, + hidden: !meta.visible, + lineCap: style.borderCapStyle, + lineDash: style.borderDash, + lineDashOffset: style.borderDashOffset, + lineJoin: style.borderJoinStyle, + lineWidth: (borderWidth.width + borderWidth.height) / 4, + strokeStyle: style.borderColor, + pointStyle: pointStyle || style.pointStyle, + rotation: style.rotation, + textAlign: textAlign || style.textAlign, + borderRadius: 0, // TODO: v4, default to style.borderRadius + datasetIndex: meta.index + }; + }, this); +} +Chart.defaults.plugins.tooltip.callbacks.footer = tooltipFooter; +Chart.defaults.plugins.tooltip.callbacks.label = tooltipLabel; +Chart.defaults.plugins.legend.labels.generateLabels = legendLabels; + + var forecastChartSettings = { + type: 'bar', + options: { + responsive: true, + maintainAspectRatio: false, + interaction: { + intersect: false, + mode: 'index', + }, + scales: { + y: { + stacked: true, + display: true, + min: 0, + suggestedMax: 1000, + ticks: { + callback: value => `${value / 1000} kWh`, + } + }, + } + } + }; + + var decadeChartSettings = { + type: 'bar', + options: { + responsive: true, + maintainAspectRatio: false, + interaction: { + intersect: false, + mode: 'index', + }, + scales: { + y: { + stacked: true, + display: true, + min: 0, + suggestedMax: 1000000, + ticks: { + callback: value => `${value / 1000000} MWh`, + } + }, + } + } + }; + + var chartData = {}; + + const consChart = new Chart( + document.querySelector('#consumption-chart'), + Object.assign({}, forecastChartSettings) + ); + const prodChart = new Chart( + document.querySelector('#production-chart'), + Object.assign({}, forecastChartSettings) + ); + const consChartYear = new Chart( + document.querySelector('#consumption-chart-year'), + Object.assign({}, decadeChartSettings) + ); + const prodChartYear = new Chart( + document.querySelector('#production-chart-year'), + Object.assign({}, decadeChartSettings) + ); + const consChartDecade = new Chart( + document.querySelector('#consumption-chart-decade'), + Object.assign({}, decadeChartSettings) + ); + const prodChartDecade = new Chart( + document.querySelector('#production-chart-decade'), + Object.assign({}, decadeChartSettings) + ); + document.addEventListener('readystatechange', function () { + if (event.target.readyState === "complete") { + getData(prodChart, 'ajax/getProdData_month.php'); + getData(consChart, 'ajax/getConsData_month.php'); + getData(prodChartYear, 'ajax/getProdData_year.php'); + getData(consChartYear, 'ajax/getConsData_year.php'); + getData(prodChartDecade, 'ajax/getProdData_decade.php'); + getData(consChartDecade, 'ajax/getConsData_decade.php'); + //getData(prodChart, 'ajax/getProdData.php'); + //getData(foreChart,'ajax/getForecastData.php', false); + getStats("Stats-Year","ajax/getStats.php?type=ThisYear"); + getStats("Stats-Lastyear","ajax/getStats.php?type=LastYear"); + getStats("Stats-Prelastyear","ajax/getStats.php?type=PreLastYear"); + } + }); + + async function getData(chart, url, sunrise=true) { + try { + console.log("fetching"+chart); + const response = await fetch(url); + if (!response.ok) { + console.log("err"); + throw new Error(`Response status: ${response.status}`); + } + chart.data = await response.json(); + + + chart.update(); + //chart.options.scales.x.min = chart.data.labels[0]-(chart.data.labels[1]-chart.data.labels[0])/2; + //chart.options.scales.x.max = chart.data.labels[chart.data.labels.length-1]+(chart.data.labels[1]-chart.data.labels[0])/2; + chart.update(); + } catch (error) { + console.log(error.message); + } + setTimeout(function () { getData(chart, url, sunrise) }, 5 * 60 * 1000); //renew data every 5 min. + } + async function getStats(elem_id, url) { + try { + console.log("fetching"); + const response = await fetch(url); + if (!response.ok) { + console.log("err"); + throw new Error(`Response status: ${response.status}`); + } + document.getElementById(elem_id).innerHTML = await response.text(); + } catch (error) { + console.log(error.message); + } + setTimeout(function () { getData(chart, url, sunrise) }, 5 * 60 * 1000); //renew data every 5 min. + } + + function powerToString(power) { + if (Math.abs(power) > 999) { + power = power / 1000 + return power.toPrecision(3) + " kW" + } else { + return Math.round(power) + " W" + } + + } \ No newline at end of file diff --git a/js/solar/homeMQTT.js b/js/solar/homeMQTT.js new file mode 100644 index 0000000..81806f9 --- /dev/null +++ b/js/solar/homeMQTT.js @@ -0,0 +1,427 @@ + +const homeMQTT = { + getMQTT: function () { + const id = Math.random().toString(36).substring(7); + const topic = "#"; + const connection = "wss://mqtt.nas.el-wa.org:443" + mqttsolarTreeDone = false; + // const connection = "ws://username:password@37.97.203.138:8083" // Works + // const connection = "wss://public:public@public.cloud.shiftr.io" // Works + const client = mqtt.connect(connection, { + rejectUnauthorized: false, + }); + + client.on("message", messageReceived); + client.on("connect", function () { + client.subscribe("Raumtemp/#"); + }); + client.on("error", function (error) { + //alert("MQTT Error: " + error); + }); + client.on('end', function () { + setTimeout(getMQTT, 5000); + alert("MQTT Disconnected, try to reconnect in 5 secs."); + }) + + function getNestedProp(obj, path) { + return path.split('/').reduce((acc, key) => acc && acc[key], obj); + } + function setNestedProp(obj, path, value) { + var schema = obj; // a moving reference to internal objects within obj + var pList = path.split('/'); + var len = pList.length; + for (var i = 0; i < len - 1; i++) { + var elem = pList[i]; + if (!schema[elem]) schema[elem] = {} + schema = schema[elem]; + } + + schema[pList[len - 1]] = value; + } + + function messageReceived(topic, message) { + setNestedProp(mqttData, topic, message); + setTimeout(function () { homeSVG.updateValuesMQTT(mqttData) }, 200); //give the object tree some time to build up and receive all values + } + } +} + +const homeSVG = { + updateCnt: 99, + fillElementArray: function () { + + }, + updateValuesMQTT: function (mqttData) { + var htmlNode = document +//OG + if(typeof(mqttData["Raumtemp"]["OG"]["Wohnzimmer"]["Heating"]) != "undefined"){ + if(mqttData["Raumtemp"]["OG"]["Wohnzimmer"]["Heating"] == "false") htmlNode.getElementById('OG_wozi_heater').setAttribute("display", "none"); + else htmlNode.getElementById('OG_wozi_heater').setAttribute("display", ""); + } + if(typeof(mqttData["Raumtemp"]["OG"]["Wohnzimmer"]["mode"]) != "undefined"){ + if(mqttData["Raumtemp"]["OG"]["Wohnzimmer"]["mode"] == "Overheating") htmlNode.getElementById('OG_wozi_buffer').setAttribute("display", ""); + else htmlNode.getElementById('OG_wozi_buffer').setAttribute("display", "none"); + } + if(typeof(mqttData["Raumtemp"]["OG"]["Wohnzimmer"]["Set Temp[degC]"]) != "undefined") + htmlNode.getElementById('OG_pres_wozi').innerHTML = Math.floor(mqttData["Raumtemp"]["OG"]["Wohnzimmer"]["Set Temp[degC]"])+" °C"; + if(typeof(mqttData["Raumtemp"]["OG"]["Wohnzimmer"]["Temp[degC]"]) != "undefined") + htmlNode.getElementById('OG_tmp_wozi').innerHTML = mqttData["Raumtemp"]["OG"]["Wohnzimmer"]["Temp[degC]"]+" °C"; + if(typeof(mqttData["Raumtemp"]["OG"]["Wohnzimmer"]["rHum[%]"]) != "undefined") + htmlNode.getElementById('OG_hum_wozi').innerHTML = mqttData["Raumtemp"]["OG"]["Wohnzimmer"]["rHum[%]"]+" %rF"; + + if(typeof(mqttData["Raumtemp"]["OG"]["Bad"]["Heating"]) != "undefined"){ + if(mqttData["Raumtemp"]["OG"]["Bad"]["Heating"] == "false") htmlNode.getElementById('OG_bad_heater').setAttribute("display", "none"); + else htmlNode.getElementById('OG_bad_heater').setAttribute("display", ""); + } + if(typeof(mqttData["Raumtemp"]["OG"]["Bad"]["mode"]) != "undefined"){ + if(mqttData["Raumtemp"]["OG"]["Bad"]["mode"] == "Overheating") htmlNode.getElementById('OG_bad_buffer').setAttribute("display", ""); + else htmlNode.getElementById('OG_bad_buffer').setAttribute("display", "none"); + } + if(typeof(mqttData["Raumtemp"]["OG"]["Bad"]["Set Temp[degC]"]) != "undefined") + htmlNode.getElementById('OG_pres_bad').innerHTML = Math.floor(mqttData["Raumtemp"]["OG"]["Bad"]["Set Temp[degC]"])+" °C"; + if(typeof(mqttData["Raumtemp"]["OG"]["Bad"]["Temp[degC]"]) != "undefined") + htmlNode.getElementById('OG_tmp_bad').innerHTML = mqttData["Raumtemp"]["OG"]["Bad"]["Temp[degC]"]+" °C"; + if(typeof(mqttData["Raumtemp"]["OG"]["Bad"]["rHum[%]"]) != "undefined") + htmlNode.getElementById('OG_hum_bad').innerHTML = mqttData["Raumtemp"]["OG"]["Bad"]["rHum[%]"]+" %rF"; + + if(typeof(mqttData["Raumtemp"]["OG"]["Schlafzimmer"]["Heating"]) != "undefined"){ + if(mqttData["Raumtemp"]["OG"]["Schlafzimmer"]["Heating"] == "false") htmlNode.getElementById('OG_schlafen_heater').setAttribute("display", "none"); + else htmlNode.getElementById('OG_schlafen_heater').setAttribute("display", ""); + } + if(typeof(mqttData["Raumtemp"]["OG"]["Schlafzimmer"]["mode"]) != "undefined"){ + if(mqttData["Raumtemp"]["OG"]["Schlafzimmer"]["mode"] == "Overheating") htmlNode.getElementById('OG_schlafen_buffer').setAttribute("display", ""); + else htmlNode.getElementById('OG_schlafen_buffer').setAttribute("display", "none"); + } + if(typeof(mqttData["Raumtemp"]["OG"]["Schlafzimmer"]["Set Temp[degC]"]) != "undefined") + htmlNode.getElementById('OG_pres_schlafen').innerHTML = Math.floor(mqttData["Raumtemp"]["OG"]["Schlafzimmer"]["Set Temp[degC]"])+" °C"; + if(typeof(mqttData["Raumtemp"]["OG"]["Schlafzimmer"]["Temp[degC]"]) != "undefined") + htmlNode.getElementById('OG_tmp_schlafen').innerHTML = mqttData["Raumtemp"]["OG"]["Schlafzimmer"]["Temp[degC]"]+" °C"; + if(typeof(mqttData["Raumtemp"]["OG"]["Schlafzimmer"]["rHum[%]"]) != "undefined") + htmlNode.getElementById('OG_hum_schlafen').innerHTML = mqttData["Raumtemp"]["OG"]["Schlafzimmer"]["rHum[%]"]+" %rF"; + + if(typeof(mqttData["Raumtemp"]["OG"]["KiZi"]["Heating"]) != "undefined"){ + if(mqttData["Raumtemp"]["OG"]["KiZi"]["Heating"] == "false") htmlNode.getElementById('OG_kizi_heater').setAttribute("display", "none"); + else htmlNode.getElementById('OG_kizi_heater').setAttribute("display", ""); + } + if(typeof(mqttData["Raumtemp"]["OG"]["KiZi"]["mode"]) != "undefined"){ + if(mqttData["Raumtemp"]["OG"]["KiZi"]["mode"] == "Overheating") htmlNode.getElementById('OG_kizi_buffer').setAttribute("display", ""); + else htmlNode.getElementById('OG_kizi_buffer').setAttribute("display", "none"); + } + if(typeof(mqttData["Raumtemp"]["OG"]["KiZi"]["Set Temp[degC]"]) != "undefined") + htmlNode.getElementById('OG_pres_kizi').innerHTML = Math.floor(mqttData["Raumtemp"]["OG"]["KiZi"]["Set Temp[degC]"])+" °C"; + if(typeof(mqttData["Raumtemp"]["OG"]["KiZi"]["Temp[degC]"]) != "undefined") + htmlNode.getElementById('OG_tmp_kizi').innerHTML = mqttData["Raumtemp"]["OG"]["KiZi"]["Temp[degC]"]+" °C"; + if(typeof(mqttData["Raumtemp"]["OG"]["KiZi"]["rHum[%]"]) != "undefined") + htmlNode.getElementById('OG_hum_kizi').innerHTML = mqttData["Raumtemp"]["OG"]["KiZi"]["rHum[%]"]+" %rF"; + + if(typeof(mqttData["Raumtemp"]["OG"]["Buero"]["Heating"]) != "undefined"){ + if(mqttData["Raumtemp"]["OG"]["Buero"]["Heating"] == "false") htmlNode.getElementById('OG_buero_heater').setAttribute("display", "none"); + else htmlNode.getElementById('OG_buero_heater').setAttribute("display", ""); + } + if(typeof(mqttData["Raumtemp"]["OG"]["Buero"]["mode"]) != "undefined"){ + if(mqttData["Raumtemp"]["OG"]["Buero"]["mode"] == "Overheating") htmlNode.getElementById('OG_buero_buffer').setAttribute("display", ""); + else htmlNode.getElementById('OG_buero_buffer').setAttribute("display", "none"); + } + if(typeof(mqttData["Raumtemp"]["OG"]["Buero"]["Set Temp[degC]"]) != "undefined") + htmlNode.getElementById('OG_pres_buero').innerHTML = Math.floor(mqttData["Raumtemp"]["OG"]["Buero"]["Set Temp[degC]"])+" °C"; + if(typeof(mqttData["Raumtemp"]["OG"]["Buero"]["Temp[degC]"]) != "undefined") + htmlNode.getElementById('OG_tmp_buero').innerHTML = mqttData["Raumtemp"]["OG"]["Buero"]["Temp[degC]"]+" °C"; + if(typeof(mqttData["Raumtemp"]["OG"]["Buero"]["rHum[%]"]) != "undefined") + htmlNode.getElementById('OG_hum_buero').innerHTML = mqttData["Raumtemp"]["OG"]["Buero"]["rHum[%]"]+" %rF"; + +//EG + if(typeof(mqttData["Raumtemp"]["EG"]["Wohnzimmer"]["Heating"]) != "undefined"){ + if(mqttData["Raumtemp"]["EG"]["Wohnzimmer"]["Heating"] == "false") htmlNode.getElementById('EG_wozi_heater').setAttribute("display", "none"); + else htmlNode.getElementById('EG_wozi_heater').setAttribute("display", ""); + } + if(typeof(mqttData["Raumtemp"]["EG"]["Wohnzimmer"]["mode"]) != "undefined"){ + if(mqttData["Raumtemp"]["EG"]["Wohnzimmer"]["mode"] == "Overheating") htmlNode.getElementById('EG_wozi_buffer').setAttribute("display", ""); + else htmlNode.getElementById('EG_wozi_buffer').setAttribute("display", "none"); + } + if(typeof(mqttData["Raumtemp"]["EG"]["Wohnzimmer"]["Set Temp[degC]"]) != "undefined") + htmlNode.getElementById('EG_pres_wozi').innerHTML = Math.floor(mqttData["Raumtemp"]["EG"]["Wohnzimmer"]["Set Temp[degC]"])+" °C"; + if(typeof(mqttData["Raumtemp"]["EG"]["Wohnzimmer"]["Temp[degC]"]) != "undefined") + htmlNode.getElementById('EG_tmp_wozi').innerHTML = mqttData["Raumtemp"]["EG"]["Wohnzimmer"]["Temp[degC]"]+" °C"; + if(typeof(mqttData["Raumtemp"]["EG"]["Wohnzimmer"]["rHum[%]"]) != "undefined") + htmlNode.getElementById('EG_hum_wozi').innerHTML = mqttData["Raumtemp"]["EG"]["Wohnzimmer"]["rHum[%]"]+" %rF"; + + if(typeof(mqttData["Raumtemp"]["EG"]["Bad"]["Heating"]) != "undefined"){ + if(mqttData["Raumtemp"]["EG"]["Bad"]["Heating"] == "false") htmlNode.getElementById('EG_bad_heater').setAttribute("display", "none"); + else htmlNode.getElementById('EG_bad_heater').setAttribute("display", ""); + } + if(typeof(mqttData["Raumtemp"]["EG"]["Bad"]["mode"]) != "undefined"){ + if(mqttData["Raumtemp"]["EG"]["Bad"]["mode"] == "Overheating") htmlNode.getElementById('EG_bad_buffer').setAttribute("display", ""); + else htmlNode.getElementById('EG_bad_buffer').setAttribute("display", "none"); + } + if(typeof(mqttData["Raumtemp"]["EG"]["Bad"]["Set Temp[degC]"]) != "undefined") + htmlNode.getElementById('EG_pres_bad').innerHTML = Math.floor(mqttData["Raumtemp"]["EG"]["Bad"]["Set Temp[degC]"])+" °C"; + if(typeof(mqttData["Raumtemp"]["EG"]["Bad"]["Temp[degC]"]) != "undefined") + htmlNode.getElementById('EG_tmp_bad').innerHTML = mqttData["Raumtemp"]["EG"]["Bad"]["Temp[degC]"]+" °C"; + if(typeof(mqttData["Raumtemp"]["EG"]["Bad"]["rHum[%]"]) != "undefined") + htmlNode.getElementById('EG_hum_bad').innerHTML = mqttData["Raumtemp"]["EG"]["Bad"]["rHum[%]"]+" %rF"; + + if(typeof(mqttData["Raumtemp"]["EG"]["Schlafen"]["Heating"]) != "undefined"){ + if(mqttData["Raumtemp"]["EG"]["Schlafen"]["Heating"] == "false") htmlNode.getElementById('EG_schlafen_heater').setAttribute("display", "none"); + else htmlNode.getElementById('EG_schlafen_heater').setAttribute("display", ""); + } + if(typeof(mqttData["Raumtemp"]["EG"]["Schlafen"]["mode"]) != "undefined"){ + if(mqttData["Raumtemp"]["EG"]["Schlafen"]["mode"] == "Overheating") htmlNode.getElementById('EG_schlafen_buffer').setAttribute("display", ""); + else htmlNode.getElementById('EG_schlafen_buffer').setAttribute("display", "none"); + } + if(typeof(mqttData["Raumtemp"]["EG"]["Schlafen"]["Set Temp[degC]"]) != "undefined") + htmlNode.getElementById('EG_pres_schlafen').innerHTML = Math.floor(mqttData["Raumtemp"]["EG"]["Schlafen"]["Set Temp[degC]"])+" °C"; + if(typeof(mqttData["Raumtemp"]["EG"]["Schlafen"]["Temp[degC]"]) != "undefined") + htmlNode.getElementById('EG_tmp_schlafen').innerHTML = mqttData["Raumtemp"]["EG"]["Schlafen"]["Temp[degC]"]+" °C"; + if(typeof(mqttData["Raumtemp"]["EG"]["Schlafen"]["rHum[%]"]) != "undefined") + htmlNode.getElementById('EG_hum_schlafen').innerHTML = mqttData["Raumtemp"]["EG"]["Schlafen"]["rHum[%]"]+" %rF"; + + if(typeof(mqttData["Raumtemp"]["EG"]["Florian"]["Heating"]) != "undefined"){ + if(mqttData["Raumtemp"]["EG"]["Florian"]["Heating"] == "false") htmlNode.getElementById('EG_kizi_heater').setAttribute("display", "none"); + else htmlNode.getElementById('EG_kizi_heater').setAttribute("display", ""); + } + if(typeof(mqttData["Raumtemp"]["EG"]["Florian"]["mode"]) != "undefined"){ + if(mqttData["Raumtemp"]["EG"]["Florian"]["mode"] == "Overheating") htmlNode.getElementById('EG_kizi_buffer').setAttribute("display", ""); + else htmlNode.getElementById('EG_kizi_buffer').setAttribute("display", "none"); + } + if(typeof(mqttData["Raumtemp"]["EG"]["Florian"]["Set Temp[degC]"]) != "undefined") + htmlNode.getElementById('EG_pres_kizi').innerHTML = Math.floor(mqttData["Raumtemp"]["EG"]["Florian"]["Set Temp[degC]"])+" °C"; + if(typeof(mqttData["Raumtemp"]["EG"]["Florian"]["Temp[degC]"]) != "undefined") + htmlNode.getElementById('EG_tmp_kizi').innerHTML = mqttData["Raumtemp"]["EG"]["Florian"]["Temp[degC]"]+" °C"; + if(typeof(mqttData["Raumtemp"]["EG"]["Florian"]["rHum[%]"]) != "undefined") + htmlNode.getElementById('EG_hum_kizi').innerHTML = mqttData["Raumtemp"]["EG"]["Florian"]["rHum[%]"]+" %rF"; + + if(typeof(mqttData["Raumtemp"]["EG"]["Magdalena"]["Heating"]) != "undefined"){ + if(mqttData["Raumtemp"]["EG"]["Magdalena"]["Heating"] == "false") htmlNode.getElementById('EG_buero_heater').setAttribute("display", "none"); + else htmlNode.getElementById('EG_buero_heater').setAttribute("display", ""); + } + if(typeof(mqttData["Raumtemp"]["EG"]["Magdalena"]["mode"]) != "undefined"){ + if(mqttData["Raumtemp"]["EG"]["Magdalena"]["mode"] == "Overheating") htmlNode.getElementById('EG_buero_buffer').setAttribute("display", ""); + else htmlNode.getElementById('EG_buero_buffer').setAttribute("display", "none"); + } + if(typeof(mqttData["Raumtemp"]["EG"]["Magdalena"]["Set Temp[degC]"]) != "undefined") + htmlNode.getElementById('EG_pres_buero').innerHTML = Math.floor(mqttData["Raumtemp"]["EG"]["Magdalena"]["Set Temp[degC]"])+" °C"; + if(typeof(mqttData["Raumtemp"]["EG"]["Magdalena"]["Temp[degC]"]) != "undefined") + htmlNode.getElementById('EG_tmp_buero').innerHTML = mqttData["Raumtemp"]["EG"]["Magdalena"]["Temp[degC]"]+" °C"; + if(typeof(mqttData["Raumtemp"]["EG"]["Magdalena"]["rHum[%]"]) != "undefined") + htmlNode.getElementById('EG_hum_buero').innerHTML = mqttData["Raumtemp"]["EG"]["Magdalena"]["rHum[%]"]+" %rF"; +//UG + if(typeof(mqttData["Raumtemp"]["UG"]["Kueche"]["Heating"]) != "undefined"){ + if(mqttData["Raumtemp"]["UG"]["Kueche"]["Heating"] == "false") htmlNode.getElementById('UG_kueche_heater').setAttribute("display", "none"); + else htmlNode.getElementById('UG_kueche_heater').setAttribute("display", ""); + } + if(typeof(mqttData["Raumtemp"]["UG"]["Kueche"]["mode"]) != "undefined"){ + if(mqttData["Raumtemp"]["UG"]["Kueche"]["mode"] == "Overheating") htmlNode.getElementById('UG_kueche_buffer').setAttribute("display", ""); + else htmlNode.getElementById('UG_kueche_buffer').setAttribute("display", "none"); + } + if(typeof(mqttData["Raumtemp"]["UG"]["Kueche"]["Set Temp[degC]"]) != "undefined") + htmlNode.getElementById('UG_pres_kueche').innerHTML = Math.floor(mqttData["Raumtemp"]["UG"]["Kueche"]["Set Temp[degC]"])+" °C"; + if(typeof(mqttData["Raumtemp"]["UG"]["Kueche"]["Temp[degC]"]) != "undefined") + htmlNode.getElementById('UG_tmp_kueche').innerHTML = mqttData["Raumtemp"]["UG"]["Kueche"]["Temp[degC]"]+" °C"; + if(typeof(mqttData["Raumtemp"]["UG"]["Kueche"]["rHum[%]"]) != "undefined") + htmlNode.getElementById('UG_hum_kueche').innerHTML = mqttData["Raumtemp"]["UG"]["Kueche"]["rHum[%]"]+" %rF"; + + if(typeof(mqttData["Raumtemp"]["UG"]["Buero"]["Heating"]) != "undefined"){ + if(mqttData["Raumtemp"]["UG"]["Buero"]["Heating"] == "false") htmlNode.getElementById('UG_buero_heater').setAttribute("display", "none"); + else htmlNode.getElementById('UG_buero_heater').setAttribute("display", ""); + } + if(typeof(mqttData["Raumtemp"]["UG"]["Buero"]["mode"]) != "undefined"){ + if(mqttData["Raumtemp"]["UG"]["Buero"]["mode"] == "Overheating") htmlNode.getElementById('UG_buero_buffer').setAttribute("display", ""); + else htmlNode.getElementById('UG_buero_buffer').setAttribute("display", "none"); + } + if(typeof(mqttData["Raumtemp"]["UG"]["Buero"]["Set Temp[degC]"]) != "undefined") + htmlNode.getElementById('UG_pres_buero').innerHTML = Math.floor(mqttData["Raumtemp"]["UG"]["Buero"]["Set Temp[degC]"])+" °C"; + if(typeof(mqttData["Raumtemp"]["UG"]["Buero"]["Temp[degC]"]) != "undefined") + htmlNode.getElementById('UG_tmp_buero').innerHTML = mqttData["Raumtemp"]["UG"]["Buero"]["Temp[degC]"]+" °C"; + if(typeof(mqttData["Raumtemp"]["UG"]["Buero"]["rHum[%]"]) != "undefined") + htmlNode.getElementById('UG_hum_buero').innerHTML = mqttData["Raumtemp"]["UG"]["Buero"]["rHum[%]"]+" %rF"; + + if(typeof(mqttData["Raumtemp"]["UG"]["Bad"]["Heating"]) != "undefined"){ + if(mqttData["Raumtemp"]["UG"]["Bad"]["Heating"] == "false") htmlNode.getElementById('UG_bad_heater').setAttribute("display", "none"); + else htmlNode.getElementById('UG_bad_heater').setAttribute("display", ""); + } + if(typeof(mqttData["Raumtemp"]["UG"]["Bad"]["mode"]) != "undefined"){ + if(mqttData["Raumtemp"]["UG"]["Bad"]["mode"] == "Overheating") htmlNode.getElementById('UG_bad_buffer').setAttribute("display", ""); + else htmlNode.getElementById('UG_bad_buffer').setAttribute("display", "none"); + } + if(typeof(mqttData["Raumtemp"]["UG"]["Bad"]["Set Temp[degC]"]) != "undefined") + htmlNode.getElementById('UG_pres_bad').innerHTML = Math.floor(mqttData["Raumtemp"]["UG"]["Bad"]["Set Temp[degC]"])+" °C"; + if(typeof(mqttData["Raumtemp"]["UG"]["Bad"]["Temp[degC]"]) != "undefined") + htmlNode.getElementById('UG_tmp_bad').innerHTML = mqttData["Raumtemp"]["UG"]["Bad"]["Temp[degC]"]+" °C"; + if(typeof(mqttData["Raumtemp"]["UG"]["Bad"]["rHum[%]"]) != "undefined") + htmlNode.getElementById('UG_hum_bad').innerHTML = mqttData["Raumtemp"]["UG"]["Bad"]["rHum[%]"]+" %rF"; + + } + +} + +var currentFloor = "OG"; + +function addClass(el, classNameToAdd){ + el.className += ' ' + classNameToAdd; +} + +function removeClass(el, classNameToRemove){ + var elClass = ' ' + el.className + ' '; + while(elClass.indexOf(' ' + classNameToRemove + ' ') !== -1){ + elClass = elClass.replace(' ' + classNameToRemove + ' ', ''); + } + el.className = elClass; +} + +function switchTab(newtab){ + newContent = document.getElementById(newtab); + newTabBtn = document.getElementById(newtab+"-tab"); + removeClass(document.getElementById("actions-OG-tab"),"active"); + removeClass(document.getElementById("actions-EG-tab"),"active"); + removeClass(document.getElementById("actions-UG-tab"),"active"); + + removeClass(document.getElementById("actions-OG"),"active show"); + removeClass(document.getElementById("actions-EG"),"active show"); + removeClass(document.getElementById("actions-UG"),"active show"); + addClass(newTabBtn,"active"); + addClass(newContent,"active show"); + + +} + + +function switchFloor(floor){ + if(currentFloor == floor) + return; + const targetIn = document.getElementById(floor+'_Info'); + const targetOut = document.getElementById(currentFloor+'_Info'); + var blendIn = new KeyframeEffect( + targetIn, [{opacity: '0'},{opacity: '100'}], + { + duration: 500, + easing: "ease-in-out", + fill: "forwards", + iterations: 1, + } + ); + var blendOut = new KeyframeEffect( + targetOut, [{opacity: '100'},{opacity: '0'}], + { + duration: 500, + easing: "ease-in-out", + fill: "forwards", + iterations: 1, + } + ); + var inAnim = new Animation(blendIn,document.timeline); + var outAnim = new Animation(blendOut,document.timeline); + targetIn.setAttribute("display",""); + outAnim.onfinish= (event) => { + targetOut.setAttribute("display","none"); + }; + inAnim.play(); + outAnim.play(); + currentFloor = floor; +} + + + var modalEV = new bootstrap.Modal(document.getElementById('modalEV'), { + keyboard: false + }); + var offcanvas = new bootstrap.Offcanvas(document.getElementById('offcanvas'), { + keyboard: false + }); + + var mqttData = {}; + + function openHeaterSettings(heater){ + openModal(heater) + } + + document.addEventListener('readystatechange', function () { + if (event.target.readyState === "complete") { + homeMQTT.getMQTT(); + this.getElementById("meteogram").innerHTML = ""; + } + }); + + function loadingHTML(msg) { + return "
Loading...
   " + msg + "
" + } + + function openModal(heater) { + var contentURL = "./ajax/roomtemp.php?heater="+heater; + let heaterMQTT = heater.toString().split("_"); + document.getElementById("modal-title").innerHTML = "Thermostat "+heater.replace("_"," ").replace("ue","ü").replace("ae","ä").replace("oe","ö"); + modalBodyElement = document.getElementById("modal-body"); + modalBodyElement.innerHTML = loadingHTML("Wird geladen..."); + document.getElementById("modalSaveBtn").addEventListener("click", submitFormAjax); + document.getElementById("modalSaveBtn").contentURL = contentURL; + modalEV.show(); + fetch(contentURL, { + method: 'GET', + headers: { + 'X-Requested-From-Modal': 'a', + 'Requested-With-Ajax': 'ajax' + } + }) + .then(response => response.text()) + .then(html => { + modalBodyElement.innerHTML = html; + var slider = document.getElementById("modal-slider"); + var span = document.getElementById("modal-slider-label"); + slider.oninput = function () { + sliderPrcnt=(slider.value-10)*5; + slider.style.setProperty("--background-size", `${sliderPrcnt}%`); + marginValue = sliderPrcnt; + if (marginValue < 10) { + marginValue = marginValue - 0.4 * marginValue; + } else if (marginValue < 85) { + marginValue = marginValue - 4; + } + else { + marginValue = marginValue - 4 - 0.5 * (marginValue - 85); + } + span.setAttribute('style', 'margin-left:' + marginValue + '%;'); + span.innerHTML = this.value + " °C"; + } + + if(typeof(mqttData["Raumtemp"][heaterMQTT[0]][heaterMQTT[1]]["Set Temp[degC]"])!= "undefined") + slider.setAttribute("value",mqttData["Raumtemp"][heaterMQTT[0]][heaterMQTT[1]]["Set Temp[degC]"]); + else + slider.setAttribute("value",10); + slider.dispatchEvent(new Event('input')); + }) + .catch(error => { + modalBodyElement.innerHTML += error.message; + }); + } + + function submitFormAjax(event) { + let xmlhttp = window.XMLHttpRequest ? + new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); + + xmlhttp.onreadystatechange = function () { + if (this.readyState === 4 && this.status === 200){ + setTimeout(function () { modalEV.hide() }, 700); + alert(xmlhttp.responseText); + } + } + const form = document.getElementById('modalEV').querySelector('form'); + post = ""; + // Get interesting form elements + const formElements = Array.from(form.elements); + for (let i = 0; i < formElements.length; i++) { + if(formElements[i].name){ + if (formElements[i].type == "radio" && formElements[i].checked) { + post += formElements[i].name + "=" + encodeURIComponent(formElements[i].value) + "&"; + } else if(formElements[i].type == "checkbox" && formElements[i].checked){ + post += formElements[i].name + "=" + encodeURIComponent(formElements[i].value) + "&"; + } else if(formElements[i].type == "button" && !formElements[i].classList.contains("accordion-button")){ + post += formElements[i].name + "=" + encodeURIComponent(formElements[i].innerHTML) + "&"; + }else if(formElements[i].type != "checkbox" && formElements[i].type != "radio") { + post += formElements[i].name + "=" + encodeURIComponent(formElements[i].value) + "&"; + } + } + } + xmlhttp.open("POST", event.currentTarget.contentURL, true); + xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); + document.getElementById('modalEV').querySelector('.modal-body').innerHTML = loadingHTML("Änderungen werden übernommen..."); + xmlhttp.send(post); + return false; + } \ No newline at end of file diff --git a/js/solar/solarMQTT.js b/js/solar/solarMQTT.js new file mode 100644 index 0000000..f586aee --- /dev/null +++ b/js/solar/solarMQTT.js @@ -0,0 +1,861 @@ +const solarMQTT = { + getMQTT: function () { + const id = Math.random().toString(36).substring(7); + const topic = "#"; + const connection = "wss://mqtt.nas.el-wa.org:443" + mqttsolarTreeDone = false; + // const connection = "ws://username:password@37.97.203.138:8083" // Works + // const connection = "wss://public:public@public.cloud.shiftr.io" // Works + const client = mqtt.connect(connection, { + rejectUnauthorized: false, + }); + + client.on("message", messageReceived); + client.on("connect", function () { + client.subscribe("solarManager/#"); + client.subscribe("wattpilot/properties/lmo/state"); + client.subscribe("wattpilot/properties/ftt/state"); + client.subscribe("wattpilot/properties/fte/state"); + client.subscribe("wattpilot/properties/amp/state"); + client.subscribe("wattpilot/properties/car/state"); + client.subscribe("go-eCharger/270003/amp"); + client.subscribe("go-eCharger/270003/ate"); + client.subscribe("go-eCharger/270003/lmo"); + client.subscribe("go-eCharger/270003/att"); + client.subscribe("go-eCharger/270003/car"); + client.subscribe("weatherStation/#"); + }); + client.on("error", function (error) { + //alert("MQTT Error: " + error); + }); + client.on('end', function () { + setTimeout(getMQTT, 5000); + alert("MQTT Disconnected, try to reconnect in 5 secs."); + }) + + function getNestedProp(obj, path) { + return path.split('/').reduce((acc, key) => acc && acc[key], obj); + } + function setNestedProp(obj, path, value) { + var schema = obj; // a moving reference to internal objects within obj + var pList = path.split('/'); + var len = pList.length; + for (var i = 0; i < len - 1; i++) { + var elem = pList[i]; + if (!schema[elem]) schema[elem] = {} + schema = schema[elem]; + } + + schema[pList[len - 1]] = value; + } + + function messageReceived(topic, message) { + mqttData[topic] = message; + if (topic == "solarManager/P_Load") { + setTimeout(function () { solarSVG.updateValuesMQTT(mqttData) }, 200); //give the object tree some time to build up and receive all values + }else if(topic == "weatherStation/windDeg"){ + setTimeout(function () { updateValuesWeather() }, 200); //give the object tree some time to build up and receive all values + } + } + } +} + +const solarSVG = { + updateCnt: 99, + fillElementArray: function () { + + }, + updateValuesMQTT: function (mqttData) { + + const angleFactor = 15000 / 288; + const sixkWangleFactor = 6000 / 288; + var cons = Number(mqttData["solarManager/P_Load"]); + var pvn = JSON.parse(mqttData["solarManager/P_PVn"]); + var pv = Number(mqttData["solarManager/P_PV"]); + var pv2 = Number(pvn[1]); + var pv1 = Number(pvn[0]); + var pv3 = pv - (pv1 + pv2); + var pbatt = Number(mqttData["solarManager/P_Akku"]); + var limbatt = Number(mqttData["solarManager/crgMaxPct"]); + var grid = Number(mqttData["solarManager/P_Grid"]); + var soc = Number(mqttData["solarManager/SOC"]); + var og = Number(mqttData["solarManager/og"]); + var eg = Number(mqttData["solarManager/eg"]); + var ug = Number(mqttData["solarManager/ug"]); + var evsoc = Number(mqttData["solarManager/evSOC"]); + var evlock = Number(mqttData["solarManager/evLock"]); + var evMode = mqttData["solarManager/evMode"]; + var evPower = Number(mqttData["solarManager/evPower"]); + var plugev = Number(mqttData["solarManager/evPlug"]); + var fuelev = Number(mqttData["solarManager/evFuel"]); + var heatOG = Number(mqttData["solarManager/heatOG"]); + var heatEG = Number(mqttData["solarManager/heatEG"]); + var puffO = Number(mqttData["solarManager/t_buffT"]); + var puffM = Number(mqttData["solarManager/t_buffM"]); + var puffU = Number(mqttData["solarManager/t_buffB"]); + var heatMode = mqttData["solarManager/heatMode"]; + var carRemChrg = Number(mqttData["solarManager/carRemChrg"]); + var aut = Number(mqttData["solarManager/autarky"]); + var Pheat = Number(mqttData["solarManager/pHeat"]); + var waterHeight = Number(mqttData["solarManager/waterHeight"]); + var waterTemp = Number(mqttData["solarManager/waterTemp"]); + var p_wr = Number(mqttData["solarManager/P_WR"]); + var eff = Number(mqttData["solarManager/eff"]); + var i_l1evu = Number(mqttData["solarManager/i_l1evu"]); + var i_l2evu = Number(mqttData["solarManager/i_l2evu"]); + var i_l3evu = Number(mqttData["solarManager/i_l3evu"]); + var evPowerOG = Number(mqttData["solarManager/evPowerOG"]); + var evPlugOG = Number(mqttData["solarManager/evPlugOG"]); + var evModeOG = mqttData["solarManager/evModeOG"]; + + + var common = -cons - ug - eg + og ; + if(common < 0){ + common = 0; + } + + var htmlNode = document + htmlNode.getElementById('consumerArc').setAttribute("d", describeArc(100, 100, 95, 0, Math.round(-cons / angleFactor))); + + htmlNode.getElementById("ogArc").setAttribute("d", describeArc(100, 100, 95, 0, Math.round(-og / angleFactor))); + htmlNode.getElementById("consumerText").innerHTML = powerToString(-cons); + + htmlNode.getElementById("consumerTextAllg").innerHTML = "Gemein: "+powerToString(common); + + if (evPower > 0) { + htmlNode.getElementById("evCharge").style.display = ""; + if (carRemChrg > -1) { + var today = new Date(); + today.setMinutes(today.getMinutes() + carRemChrg); + var h = today.getHours(); + var m = today.getMinutes(); + if (h < 10) + h = "0" + h; + if (m < 10) + m = "0" + m; + htmlNode.getElementById("evRemText").innerHTML = h + ":" + m + } + } else { + htmlNode.getElementById("evRemText").innerHTML = ""; + } + htmlNode.getElementById("ogText").innerHTML = powerToString(-og); + htmlNode.getElementById("egText").innerHTML = powerToString(eg); + htmlNode.getElementById("ugText").innerHTML = powerToString(ug); + htmlNode.getElementById("pvText").innerHTML = powerToString(pv); + htmlNode.getElementById("pv1txt").innerHTML = powerToString(pv1); + htmlNode.getElementById("pv2txt").innerHTML = powerToString(pv2); + htmlNode.getElementById("pv3txt").innerHTML = powerToString(pv3); + htmlNode.getElementById("il1txt").innerHTML = Math.round(i_l1evu * 10) / 10 + " A" + htmlNode.getElementById("il2txt").innerHTML = Math.round(i_l2evu * 10) / 10 + " A" + htmlNode.getElementById("il3txt").innerHTML = Math.round(i_l3evu * 10) / 10 + " A" + htmlNode.getElementById("batText").innerHTML = powerToString(pbatt); + htmlNode.getElementById("heatText").innerHTML = powerToString(Pheat); + htmlNode.getElementById("evText").innerHTML = powerToString(evPower * 1000); + htmlNode.getElementById("evTextOG").innerHTML = powerToString(evPowerOG * 1000); + htmlNode.getElementById("genText").innerHTML = "Autarkie: " + Math.round(aut) + " %"; + htmlNode.getElementById("genInfoText").innerHTML = "Wirkungsgrad: " + Math.round(eff) + " %";// powerToString(p_wr); + htmlNode.getElementById("gridText").innerHTML = powerToString(grid); + htmlNode.getElementById("waterText").innerHTML = Math.round(waterHeight) / 10 + " cm" + htmlNode.getElementById("waterTemp").innerHTML = (waterTemp).toPrecision(3) + " °C" + htmlNode.getElementById("waterState").setAttribute("y", (100 - (waterHeight / 1500) * 100) + "%"); + + for (i = 0; i < pvn.length; i++) { + htmlNode.getElementById("det_pv" + i + "P").innerHTML = powerToString(pvn[i]); + } + + tttext = "" + var i = 0; + while (mqttData["solarManager/inverters" + i]) { + if (mqttData["solarManager/inverters" + i+"/error"] > 0) { + tttext = tttext + '' + mqttData["solarManager/inverters" + i+"/name"] + ":" + tttext = tttext + '' + "--" + " °C" + tttext = tttext + '' + "-- W" + "" + } else { + tttext = tttext + '' + mqttData["solarManager/inverters" + i+"/name"] + ":" + tttext = tttext + '' + Math.round(mqttData["solarManager/inverters" + i+"/temp"]) + " °C" + tttext = tttext + '' + powerToString(mqttData["solarManager/inverters" + i+"/p_AC"]) + "" + } + i++; + } + + htmlNode.getElementById("invList").innerHTML = tttext + htmlNode.getElementById("egArc").setAttribute("d", describeArc(100, 100, 95, 0, Math.round(eg / angleFactor))); + htmlNode.getElementById("ugArc").setAttribute("d", describeArc(100, 100, 95, 0, Math.round(ug / angleFactor))); + htmlNode.getElementById("pvArc").setAttribute("d", describeArc(100, 100, 95, 0, Math.round(pv1 / angleFactor))); + htmlNode.getElementById("pv2Arc").setAttribute("d", describeArc(100, 100, 95, Math.round(pv1 / angleFactor), Math.round(pv1 / angleFactor) + Math.round(pv2 / angleFactor))); + htmlNode.getElementById("pv3Arc").setAttribute("d", describeArc(100, 100, 95, Math.round(pv1 / angleFactor) + Math.round(pv2 / angleFactor), Math.round(pv1 / angleFactor) + Math.round(pv2 / angleFactor) + Math.round(pv3 / angleFactor))); + + if (pbatt < 0) { + if (limbatt < 100) { + htmlNode.getElementById("charge").style.display = "none"; + htmlNode.getElementById("batLim").style.display = ""; + htmlNode.getElementById("batLimText").innerHTML = Math.round(limbatt) + "%"; + } else { + htmlNode.getElementById("charge").style.display = ""; + htmlNode.getElementById("batLim").style.display = "none"; + } + htmlNode.getElementById("batArc").setAttribute("d", describeArc(100, 100, 95, 0, Math.round(-pbatt / angleFactor))); + htmlNode.getElementById("battani").setAttribute("class", "stream-rev"); + htmlNode.getElementById("battani").setAttribute("stroke-width", 55 * (1 - Math.exp(pbatt / 2000))); + } else { + htmlNode.getElementById("charge").style.display = "none"; + htmlNode.getElementById("batLim").style.display = "none"; + htmlNode.getElementById("batArc").setAttribute("d", describeArc(100, 100, 95, 0, Math.round(pbatt / angleFactor))); + htmlNode.getElementById("battani").setAttribute("class", "stream"); + htmlNode.getElementById("battani").setAttribute("stroke-width", 55 * (1 - Math.exp(-pbatt / 2000))); + } + htmlNode.getElementById("batChargeState").setAttribute("y", (100 - soc) + "%"); + //htmlNode.getElementById("heatChargeState").setAttribute("y", 100 - ((((puffO + puffM) / 2) - 30) * 1.66) + "%"); + htmlNode.getElementById('tmpH').setAttribute("stop-color", assignColor("#2389BA", "#BA3B23", 20, 80, puffO)); + htmlNode.getElementById('tmpM').setAttribute("stop-color", assignColor("#2389BA", "#BA3B23", 20, 80, puffM)); + htmlNode.getElementById('tmpL').setAttribute("stop-color", assignColor("#2389BA", "#BA3B23", 20, 80, puffU)); + htmlNode.getElementById("batSOC").innerHTML = soc + " %"; + htmlNode.getElementById("evArc").setAttribute("d", describeArc(100, 100, 95, 0, Math.round(evPower * 2000 / angleFactor))); + htmlNode.getElementById("evChargeState").setAttribute("y", (100 - evsoc) + "%"); + htmlNode.getElementById("evSOC").innerHTML = evsoc + " %"; + htmlNode.getElementById("evFuel").innerHTML = fuelev + " %"; + + htmlNode.getElementById("heatArc").setAttribute("d", describeArc(100, 100, 95, 0, Math.round(Pheat / sixkWangleFactor))); + htmlNode.getElementById("heatUp").innerHTML = Math.round(puffO * 10) / 10 + " °C"; + htmlNode.getElementById("heatDown").innerHTML = Math.round(puffM * 10) / 10 + " °C"; + + if (evlock == false) { + htmlNode.getElementById("evLock").style.display = "none"; + } else { + htmlNode.getElementById("evLock").style.display = ""; + } + if (heatMode == "eco") { + htmlNode.getElementById("heatEco").style.display = ""; + htmlNode.getElementById("heatDefault").style.display = "none"; + } else { + htmlNode.getElementById("heatEco").style.display = "none"; + htmlNode.getElementById("heatDefault").style.display = ""; + } + if (evMode == "Eco") { + htmlNode.getElementById("evEco").style.display = ""; + htmlNode.getElementById("evNextTrip").style.display = "none"; + htmlNode.getElementById("evDefault").style.display = "none"; + } else if (evMode == "Next Trip") { + htmlNode.getElementById("evEco").style.display = "none"; + htmlNode.getElementById("evNextTrip").style.display = ""; + htmlNode.getElementById("evDefault").style.display = "none"; + } else { + htmlNode.getElementById("evEco").style.display = "none"; + htmlNode.getElementById("evNextTrip").style.display = "none"; + htmlNode.getElementById("evDefault").style.display = ""; + } + if (heatOG) { + htmlNode.getElementById("heatOG").style.display = ""; + } else { + htmlNode.getElementById("heatOG").style.display = "none"; + } + if (heatEG) { + htmlNode.getElementById("heatEG").style.display = ""; + } else { + htmlNode.getElementById("heatEG").style.display = "none"; + } + if (plugev != "no car") { + htmlNode.getElementById("evPlug").style.display = ""; + } else { + htmlNode.getElementById("evPlug").style.display = "none"; + } + if (evModeOG == "Eco") { + htmlNode.getElementById("evEcoOG").style.display = ""; + htmlNode.getElementById("evNextTripOG").style.display = "none"; + htmlNode.getElementById("evDefaultOG").style.display = "none"; + } else if (evModeOG == "Next Trip") { + htmlNode.getElementById("evEcoOG").style.display = "none"; + htmlNode.getElementById("evNextTripOG").style.display = ""; + htmlNode.getElementById("evDefaultOG").style.display = "none"; + } else { + htmlNode.getElementById("evEcoOG").style.display = "none"; + htmlNode.getElementById("evNextTripOG").style.display = "none"; + htmlNode.getElementById("evDefaultOG").style.display = ""; + } + if (evPlugOG > 0) { + htmlNode.getElementById("evPlugOG").style.display = ""; + } else { + htmlNode.getElementById("evPlugOG").style.display = "none"; + } + if (grid < 0) { + htmlNode.getElementById("gridArc").setAttribute("d", describeArc(100, 100, 95, 0, -grid / angleFactor)); + htmlNode.getElementById("consGridani").setAttribute("class", "stream-rev"); + htmlNode.getElementById("consGridani").setAttribute("stroke-width", 55 * (1 - Math.exp(grid / 2000))); + } else { + htmlNode.getElementById("gridArc").setAttribute("d", describeArc(100, 100, 95, 0, grid / angleFactor)); + htmlNode.getElementById("consGridani").setAttribute("class", "stream"); + htmlNode.getElementById("consGridani").setAttribute("stroke-width", 55 * (1 - Math.exp(-grid / 2000))); + } + + htmlNode.getElementById("consEVani").setAttribute("stroke-width", 55 * (1 - Math.exp(-evPower))); + htmlNode.getElementById("consEVOGani").setAttribute("stroke-width", 55 * (1 - Math.exp(-evPowerOG))); + htmlNode.getElementById("consOGani").setAttribute("stroke-width", 55 * (1 - Math.exp(og / 2000))); + + htmlNode.getElementById("consUGani").setAttribute("stroke-width", 55 * (1 - Math.exp( -ug / 2000))); + + htmlNode.getElementById("consHeatAni").setAttribute("stroke-width", 55 * (1 - Math.exp(-Pheat / 2000))); + htmlNode.getElementById("consAni").setAttribute("stroke-width", 55 * (1 - Math.exp(cons / 2000))); + htmlNode.getElementById("consEGani").setAttribute("stroke-width", 55 * (1 - Math.exp(-eg / 2000))); + htmlNode.getElementById("pvani").setAttribute("stroke-width", 55 * (1 - Math.exp(-pv / 2000))); + htmlNode.getElementById("pvani"); + } + +} + +var chartSettings = { + type: 'line', + options: { + animation: true, + plugins: { + annotation: { + common: { type: 'box', drawTime: 'beforeDatasetsDraw', yScaleID: 'y-axis-0', backgroundColor: 'rgba(255, 255, 255, 0.05)', init: true }, + annotations: [] + }, + tooltip: { + position: 'nearest', + pointStyle: "circle", + boxWidth: 4, + usePointStyle: true, + callbacks: { + footer: function (tooltipItems){return ""}, + }, + }, + legend: { + position: "bottom", + labels: { + pointStyleWidth: 10, + usePointStyle: true, + pointStyle: "line", + } + }, + }, + responsive: true, + maintainAspectRatio: false, + interaction: { + intersect: false, + mode: 'index', + }, + scales: { + x: { + adapters: { + date: { + locale: "DE-de" + } + }, + ticks: { + + }, + type: 'timestack', + }, + y: { + stacked: true, + display: true, + min: 0, + position: 'left', + ticks: { + callback: value => `${value / 1000} kW`, + }, + /*title: { + display: true, + text: "Leistung" + }*/ + }, + y1: { + stacked: false, + display: true, + position: 'right', + min: 0, + max: 100, + ticks: { + callback: value => `${value} %`, + }, + /*title: { + display: true, + text: "Ladestand" + },*/ + data:{} + } + } + } + }; + + var forecastChartSettings = { + type: 'bar', + options: { + animation: true, + plugins: { + tooltip: { + position: 'nearest', + pointStyle: "circle", + boxWidth: 4, + usePointStyle: true, + callbacks: { + footer: function (tooltipItems){return ""}, + }, + }, + legend: { + position: "bottom", + labels: { + pointStyleWidth: 10, + usePointStyle: true, + pointStyle: "line", + } + }, + }, + responsive: true, + maintainAspectRatio: false, + interaction: { + intersect: false, + mode: 'index', + }, + scales: { + x: { + adapters: { + date: { + locale: "DE-de" + } + }, + ticks: { + }, + type: 'timestack', + timestack:{ + right_floating_tick_thres: 0.3, + format_style: {month: 'long'}, + } + }, + y: { + stacked: false, + display: true, + position: 'left', + ticks: { + callback: value => `${value / 1000} kW`, + }, + /*title: { + display: true, + text: "Leistung" + }*/ + }, + } + } + }; + + var modalEV = new bootstrap.Modal(document.getElementById('modalEV'), { + keyboard: false + }); + var chartData = {}; + var mqttData = {}; + var timeFrom = -24; + var timeTo = 12; + const consChart = new Chart( + document.querySelector('#consumption-chart'), + Object.assign({}, chartSettings) + ); + const prodChart = new Chart( + document.querySelector('#production-chart'), + Object.assign({}, chartSettings) + ); + + const foreChart = new Chart( + document.querySelector('#forecast-chart'), + Object.assign({}, forecastChartSettings) + ); + + function updateCharts(){ + getData(consChart, 'ajax/getConsData.php',true,false,false); + getData(prodChart, 'ajax/getProdData.php',true,false,false); + } + + function prevDay(){ + timeFrom -= 24; + timeTo -= 24; + + var now = new Date(); + now.setDate(now.getDate()+1+(timeFrom/24)); + var day = ("0" + now.getDate()).slice(-2); + var month = ("0" + (now.getMonth() + 1)).slice(-2); + var selected = now.getFullYear()+"-"+(month)+"-"+(day); + document.getElementById("DatePickerCons").value = selected; + document.getElementById("DatePickerProd").value = selected; + updateCharts(); + } + + function changeDay(e){ + const date1 = new Date(e.target.value); + const date2 = new Date(); + const difference = Math.floor((date1.getTime() - date2.getTime()) / (1000*60*60*24)) *24; + timeFrom = difference; + timeTo = difference+36; + updateCharts(); + //.then((ret) => enableEvents()); + } + + function nextDay(){ + timeFrom += 24; + timeTo += 24; + var now = new Date(); + now.setDate(now.getDate()+1+(timeFrom/24)); + var day = ("0" + now.getDate()).slice(-2); + var month = ("0" + (now.getMonth() + 1)).slice(-2); + var selected = now.getFullYear()+"-"+(month)+"-"+(day); + document.getElementById("DatePickerCons").value = selected; + document.getElementById("DatePickerProd").value = selected; + updateCharts(); + } + + document.addEventListener('readystatechange', function () { + if (event.target.readyState === "complete") { + solarMQTT.getMQTT(); + getData(consChart, 'ajax/getConsData.php'); + getData(prodChart, 'ajax/getProdData.php'); + getData(foreChart,'ajax/getForecastData.php', false); + getStats("Stats-Year","ajax/getStats.php?type=ThisYear"); + solarSVG.fillElementArray(); + this.getElementById("meteogram").innerHTML = ""; + } + }); + + String.prototype.toHHMM = function () { + var sec_num = parseInt(this, 10); // don't forget the second param + var hours = Math.floor(sec_num / 3600); + var minutes = Math.floor((sec_num - (hours * 3600)) / 60); + //var seconds = sec_num - (hours * 3600) - (minutes * 60); + + if (hours < 10) { hours = "0" + hours; } + if (minutes < 10) { minutes = "0" + minutes; } + return hours + ':' + minutes; + } + + function loadingHTML(msg) { + return "
Loading...
   " + msg + "
" + } + + function openModal(type) { + switch(type){ + case "CarEG": + document.getElementById("modal-title").innerHTML = "Autoladung EG"; + contentURL = "ajax/carEG.php"; + break; + case "CarOG": + document.getElementById("modal-title").innerHTML = "Autoladung OG"; + contentURL = "ajax/carOG.php"; + break; + case "heater": + document.getElementById("modal-title").innerHTML = "Steuerung Heizstab"; + contentURL = "ajax/heater.php"; + break; + default: + document.getElementById("modal-title").innerHTML = "Fehler"; + contentURL = ""; + break; + } + + modalBodyElement = document.getElementById('modal-body'); + modalBodyElement.innerHTML = loadingHTML("Wird geladen..."); + document.getElementById("modalSaveBtn").addEventListener("click", submitFormAjax); + document.getElementById("modalSaveBtn").contentURL = contentURL; + modalEV.show(); + fetch(contentURL, { + method: 'GET', + headers: { + 'X-Requested-From-Modal': 'a', + 'Requested-With-Ajax': 'ajax' + } + }) + .then(response => response.text()) + .then(html => { + modalBodyElement.innerHTML = html; + + var slider = document.getElementById("modal-slider"); + var span = document.getElementById("modal-slider-label"); + switch(type){ + case "CarEG": + slider.oninput = function () { + marginValue = parseInt(this.value); + slider.style.setProperty("--background-size", `${marginValue}%`); + if (marginValue < 10) { + marginValue = marginValue - 0.4 * marginValue; + } else if (marginValue < 85) { + marginValue = marginValue - 4; + } + else { + marginValue = marginValue - 4 - 0.5 * (marginValue - 85); + } + span.setAttribute('style', 'margin-left:' + marginValue + '%;'); + span.innerHTML = this.value + "%"; + } + document.getElementById("evStart/Stop").addEventListener("click", submitFormAjax); + document.getElementById("evStart/Stop").contentURL = contentURL; + mode = new TextDecoder().decode(mqttData["wattpilot/properties/lmo/state"]); + time = String(mqttData["wattpilot/properties/ftt/state"]); + energy = mqttData["wattpilot/properties/fte/state"]; + amp = new TextDecoder().decode(mqttData["wattpilot/properties/amp/state"]); + car = new TextDecoder().decode(mqttData["wattpilot/properties/car/state"]); + charge = Number(mqttData["solarManager/p_l1ev"])+Number(mqttData["solarManager/p_l2ev"])+Number(mqttData["solarManager/p_l3ev"]) + if (charge < 0.2) { document.getElementById("evStart/Stop").innerHTML = 'Laden starten' } + else { document.getElementById("evStart/Stop").innerHTML = 'Laden stoppen' } + if (mode == "Awattar") { document.getElementById("EV_Eco").click(); } + else if (mode == "Default") { document.getElementById("EV_Default").click(); } + else if (mode == "AutomaticStop") { document.getElementById("EV_NextTrip").click(); } + else { alert(mode); } + document.getElementById("EV_NextTripTime").value = time.toHHMM(); + document.getElementById("modal-slider").value = Math.round(energy * 100 / 14000); + document.getElementById("modal-slider").dispatchEvent(new Event('input')); + if (amp == "16") { document.getElementById("EV_16A").click(); } + else if (amp == "10") { document.getElementById("EV_10A").click(); } + else if (amp == "6") { document.getElementById("EV_6A").click(); } + break; + case "CarOG": + slider.oninput = function () { + marginValue = parseInt((this.value-this.min)*100/this.max); + slider.style.setProperty("--background-size", `${marginValue}%`); + if (marginValue < 10) { + marginValue = marginValue - 0.4 * marginValue; + } else if (marginValue < 85) { + marginValue = marginValue - 4; + } + else { + marginValue = marginValue - 4 - 0.5 * (marginValue - 85); + } + span.setAttribute('style', 'margin-left:' + marginValue + '%;'); + span.innerHTML = this.value + "%"; + } + document.getElementById("evStart/Stop").addEventListener("click", submitFormAjax); + document.getElementById("evStart/Stop").contentURL = contentURL; + mode = mqttData["go-eCharger/270003/lmo"]; + time = String(mqttData["go-eCharger/270003/att"]); + energy = mqttData["go-eCharger/270003/ate"]; + amp = mqttData["go-eCharger/270003/amp"]; + car = mqttData["go-eCharger/270003/car"]; + if (car != "2") { document.getElementById("evStart/Stop").innerHTML = 'Laden starten' } + else { document.getElementById("evStart/Stop").innerHTML = 'Laden stoppen' } + if (mode == "4") { document.getElementById("EV_Eco").click(); } + else if (mode == "3") { document.getElementById("EV_Default").click(); } + else if (mode == "5") { document.getElementById("EV_NextTrip").click(); } + else { alert(mode); } + document.getElementById("EV_NextTripTime").value = time.toHHMM(); + document.getElementById("modal-slider").value = Math.round(energy * 100 / 14000); + document.getElementById("modal-slider").dispatchEvent(new Event('input')); + if (amp == "16") { document.getElementById("EV_16A").click(); } + else if (amp == "10") { document.getElementById("EV_10A").click(); } + else if (amp == "6") { document.getElementById("EV_6A").click(); } + break; + case "heater": + slider.oninput = function () { + marginValue = parseInt((this.value-this.min)*100/this.max); + slider.style.setProperty("--background-size", `${marginValue}%`); + if (marginValue < 10) { + marginValue = marginValue - 0.4 * marginValue; + } else if (marginValue < 85) { + marginValue = marginValue - 4; + } + else { + marginValue = marginValue - 4 - 0.5 * (marginValue - 85); + } + span.setAttribute('style', 'margin-left:' + marginValue + '%;'); + if(this.value == 0){ + span.innerHTML = "Automatik"; + }else{ + span.innerHTML = (this.value/10) + " kW"; + } + } + if(mqttData["solarManager/heatMode"] == "eco"){ + document.getElementById("modal-slider").value = 0; + }else{ + document.getElementById("modal-slider").value = Math.round(mqttData["solarManager/pHeat"]/100); + } + document.getElementById("modal-slider").dispatchEvent(new Event('input')); + break; + } + + }) + .catch(error => { + modalBodyElement.innerHTML = error.message; + }); + } + + function submitFormAjax(event) { + let xmlhttp = window.XMLHttpRequest ? + new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); + + xmlhttp.onreadystatechange = function () { + if (this.readyState === 4 && this.status === 200) + modalEV.hide(); + } + const form = document.getElementById('modalEV').querySelector('form'); + post = ""; + // ✅ Get interesting form elements + if (event.currentTarget.id == "evStart/Stop") { + post = "evStart/Stop=" + event.currentTarget.innerHTML; + } else { + const formElements = Array.from(form.elements); + for (let i = 0; i < formElements.length; i++) { + if(formElements[i].name){ + if (formElements[i].type == "radio" && formElements[i].checked) { + post += formElements[i].name + "=" + encodeURIComponent(formElements[i].value) + "&"; + } else if(formElements[i].type == "checkbox" && formElements[i].checked){ + post += formElements[i].name + "=" + encodeURIComponent(formElements[i].value) + "&"; + } else if(formElements[i].type == "button" && !formElements[i].classList.contains("accordion-button")){ + post += formElements[i].name + "=" + encodeURIComponent(formElements[i].innerHTML) + "&"; + }else if(formElements[i].type != "checkbox" && formElements[i].type != "radio") { + post += formElements[i].name + "=" + encodeURIComponent(formElements[i].value) + "&"; + } + } + } + } + xmlhttp.open("POST", event.currentTarget.contentURL, true); + xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); + document.getElementById('modalEV').querySelector('.modal-body').innerHTML = loadingHTML("Änderungen werden übernommen..."); + xmlhttp.send(post); + return false; + } + + async function getData(chrt, url, sunrise=true, autoUpdate=true, animation=true) { + try { + chrt.options.events = []; + console.log("fetching "+url+"?FROM="+timeFrom+"&TO="+timeTo); + const response = await fetch(url+"?FROM="+timeFrom+"&TO="+timeTo); + if (!response.ok) { + console.log("err"); + throw new Error(`Response status: ${response.status}`); + } + + chrt.data = await response.json(); + if(sunrise){ + const response2 = await fetch("ajax/getSunrise.php?FROM="+timeFrom+"&TO="+timeTo); + if (!response2.ok) { + console.log("err"); + throw new Error(`Response status: ${response2.status}`); + } + chrt.options.plugins.annotation.annotations = await response2.json(); + } + chrt.options.events = ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove']; + if(animation) + chrt.update(); + else + chrt.update("none"); + } catch (error) { + console.log(error.message); + } + if(autoUpdate){ + setTimeout(function () { getData(chrt, url, sunrise,autoUpdate,animation) }, 5 * 60 * 1000); //renew data every 5 min. + } + } + + async function getDataOnly(chart, url, sunrise=true, autoUpdate=true, animation=true) { + + try { + console.log("fetching "+url+"?FROM="+timeFrom+"&TO="+timeTo); + const response = await fetch(url+"?FROM="+timeFrom+"&TO="+timeTo); + if (!response.ok) { + console.log("err"); + throw new Error(`Response status: ${response.status}`); + } + + chart.data = await response.json(); + if(sunrise){ + const response2 = await fetch("ajax/getSunrise.php?FROM="+timeFrom+"&TO="+timeTo); + if (!response2.ok) { + console.log("err"); + throw new Error(`Response status: ${response2.status}`); + } + chart.options.plugins.annotation.annotations = await response2.json(); + } + } catch (error) { + console.log(error.message); + } + if(autoUpdate){ + setTimeout(function () { getData(chart, url, sunrise,autoUpdate,animation) }, 5 * 60 * 1000); //renew data every 5 min. + } + } + + async function getStats(elem_id, url) { + try { + console.log("fetching"); + const response = await fetch(url); + if (!response.ok) { + console.log("err"); + throw new Error(`Response status: ${response.status}`); + } + document.getElementById(elem_id).innerHTML = await response.text(); + } catch (error) { + console.log(error.message); + } + setTimeout(function () { getData(chart, url, sunrise) }, 5 * 60 * 1000); //renew data every 5 min. + } + + function powerToString(power) { + if (Math.abs(power) > 999) { + power = power / 1000 + return power.toPrecision(3) + " kW" + } else { + return Math.round(power) + " W" + } + + } + + function polarToCartesian(centerX, centerY, radius, angleInDegrees) { + var angleInRadians = (angleInDegrees - 90) * Math.PI / 180.0; + + return { + x: centerX + (radius * Math.cos(angleInRadians)), + y: centerY + (radius * Math.sin(angleInRadians)) + }; + } + + function getRBGComponent(colRange, minCol, valRange, minVal, val) { + return Math.round(((val - minVal) / valRange) * colRange + minCol) + .toString(16) + .toUpperCase() + .padStart(2, '0'); + } + + function assignColor(minCol, maxCol, minVal, maxVal, val) { + var color = ""; + var minR = parseInt(minCol.substring(1, 3), 16); + var maxR = parseInt(maxCol.substring(1, 3), 16); + var minG = parseInt(minCol.substring(3, 5), 16); + var maxG = parseInt(maxCol.substring(3, 5), 16); + var minB = parseInt(minCol.substring(5, 7), 16); + var maxB = parseInt(maxCol.substring(5, 7), 16); + var valsRange = maxVal - minVal; + var rangeG = maxG - minG; + var rangeR = maxR - minR; + var rangeB = maxB - minB; + if (val > maxVal) + val = maxVal; + else if (val < minVal) + val = minVal; + + color = '#' + + getRBGComponent(rangeR, minR, valsRange, minVal, val) + + getRBGComponent(rangeG, minG, valsRange, minVal, val) + + getRBGComponent(rangeB, minB, valsRange, minVal, val); + return color; + } + + function describeArc(x, y, radius, startAngle, endAngle) { + if (endAngle > 288) { + endAngle = 288; + } + var start = polarToCartesian(x, y, radius, endAngle); + var end = polarToCartesian(x, y, radius, startAngle); + var largeArcFlag = endAngle - startAngle <= 180 ? "0" : "1"; + var d = [ + "M", start.x, start.y, + "A", radius, radius, 0, largeArcFlag, 0, end.x, end.y + ].join(" "); + return d; + } + + + + function updateValuesWeather(){ + var div=document.getElementById("windDir"); + div.style.transform = "rotate("+(90+Number(mqttData["weatherStation/windDeg"]))+"deg)"; + document.getElementById("windSpd").innerHTML = mqttData["weatherStation/avgWindspeed"]; + document.getElementById("humidity").innerHTML = mqttData["weatherStation/hum"]; + document.getElementById("temp").innerHTML = mqttData["weatherStation/tempAmb"]; + document.getElementById("windDirGust").style.transform = "rotate("+(90+Number(mqttData["weatherStation/gustDeg"]))+"deg)"; + document.getElementById("windGust").innerHTML = mqttData["weatherStation/maxgust"]; + document.getElementById("ambPress").innerHTML = Math.round(mqttData["weatherStation/qff"]*10)/10; + } \ No newline at end of file diff --git a/restricted/.htaccess b/restricted/.htaccess new file mode 100644 index 0000000..3418e55 --- /dev/null +++ b/restricted/.htaccess @@ -0,0 +1 @@ +deny from all \ No newline at end of file diff --git a/restricted/WebAuthn/.gitignore b/restricted/WebAuthn/.gitignore new file mode 100644 index 0000000..ff50084 --- /dev/null +++ b/restricted/WebAuthn/.gitignore @@ -0,0 +1,8 @@ +# Netbeans project +nbproject/ +/index.php + + +# .pem files from FIDO Alliance Metadata Service (MDS) +_test/rootCertificates/mds/*.pem +_test/rootCertificates/mds/lastMdsFetch.txt diff --git a/restricted/WebAuthn/LICENSE b/restricted/WebAuthn/LICENSE new file mode 100644 index 0000000..0580d1b --- /dev/null +++ b/restricted/WebAuthn/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright © 2022 Lukas Buchs +Copyright © 2018 Thomas Bleeker (CBOR & ByteBuffer part) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/restricted/WebAuthn/README.md b/restricted/WebAuthn/README.md new file mode 100644 index 0000000..8d1cb7b --- /dev/null +++ b/restricted/WebAuthn/README.md @@ -0,0 +1,144 @@ +[![Licensed under the MIT License](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/lbuchs/WebAuthn/blob/master/LICENSE) +[![Requires PHP 7.1.0](https://img.shields.io/badge/PHP-7.1.0-green.svg)](https://php.net) +[![Last Commit](https://img.shields.io/github/last-commit/lbuchs/WebAuthn.svg)](https://github.com/lbuchs/WebAuthn/commits/master) + +# WebAuthn +*A simple PHP WebAuthn (FIDO2) server library* + +Goal of this project is to provide a small, lightweight, understandable library to protect logins with passkeys, security keys like Yubico or Solo, fingerprint on Android or Windows Hello. + +## Manual +See /_test for a simple usage of this library. Check [webauthn.lubu.ch](https://webauthn.lubu.ch) for a working example. + +### Supported attestation statement formats +* android-key ✅ +* android-safetynet ✅ +* apple ✅ +* fido-u2f ✅ +* none ✅ +* packed ✅ +* tpm ✅ + +> [!NOTE] +> This library supports authenticators which are signed with a X.509 certificate or which are self attested. ECDAA is not supported. + +## Workflow + + JAVASCRIPT | SERVER + ------------------------------------------------------------ + REGISTRATION + + + window.fetch -----------------> getCreateArgs + | + navigator.credentials.create <-------------' + | + '-------------------------> processCreate + | + alert ok or fail <----------------' + + + ------------------------------------------------------------ + VALIDATION + + + window.fetch ------------------> getGetArgs + | + navigator.credentials.get <----------------' + | + '-------------------------> processGet + | + alert ok or fail <----------------' + +## Attestation +Typically, when someone logs in, you only need to confirm that they are using the same device they used during +registration. In this scenario, you do not require any form of attestation. +However, if you need additional security, such as when your company mandates the use of a Solokey for login, +you can verify its authenticity through direct attestation. Companies may also purchase authenticators that +are signed with their own root certificate, enabling them to validate that an authenticator is affiliated with +their organization. + +### no attestation +just verify that the device is the same device used on registration. +You can use 'none' attestation with this library if you only check 'none' as format. + +> [!TIP] +> this is propably what you want to use if you want secure login for a public website. + +### indirect attestation +the browser may replace the AAGUID and attestation statement with a more privacy-friendly and/or more easily +verifiable version of the same data (for example, by employing an anonymization CA). +You can not validate against any root ca, if the browser uses a anonymization certificate. +this library sets attestation to indirect, if you select multiple formats but don't provide any root ca. + +> [!TIP] +> hybrid soultion, clients may be discouraged by browser warnings but then you know what device they're using (statistics rulez!) + +### direct attestation +the browser proviedes data about the identificator device, the device can be identified uniquely. User could be tracked over multiple sites, because of that the browser may show a warning message about providing this data when register. +this library sets attestation to direct, if you select multiple formats and provide root ca's. + +> [!TIP] +> this is probably what you want if you know what devices your clients are using and make sure that only this devices are used. + +## Passkeys / Client-side discoverable Credentials +A Client-side discoverable Credential Source is a public key credential source whose credential private key is stored in the authenticator, +client or client device. Such client-side storage requires a resident credential capable authenticator. +This is only supported by FIDO2 hardware, not by older U2F hardware. + +>[!NOTE] +>Passkeys is a technique that allows sharing credentials stored on the device with other devices. So from a technical standpoint of the server, there is no difference to client-side discoverable credentials. The difference is only that the phone or computer system is automatically syncing the credentials between the user’s devices via a cloud service. The cross-device sync of passkeys is managed transparently by the OS. + +### How does it work? +In a typical server-side key management process, a user initiates a request by entering their username and, in some cases, their password. +The server validates the user's credentials and, upon successful authentication, retrieves a list of all public key identifiers associated with that user account. +This list is then returned to the authenticator, which selects the first credential identifier it issued and responds with a signature that can be verified using the public key registered during the registration process. + +In a client-side key process, the user does not need to provide a username or password. +Instead, the authenticator searches its own memory to see if it has saved a key for the relying party (domain). +If a key is found, the authentication process proceeds in the same way as it would if the server had sent a list +of identifiers. There is no difference in the verification process. + +### How can I use it with this library? +#### on registration +When calling `WebAuthn\WebAuthn->getCreateArgs`, set `$requireResidentKey` to true, +to notify the authenticator that he should save the registration in its memory. + +#### on login +When calling `WebAuthn\WebAuthn->getGetArgs`, don't provide any `$credentialIds` (the authenticator will look up the ids in its own memory and returns the user ID as userHandle). +Set the type of authenticator to `hybrid` (Passkey scanned via QR Code) and `internal` (Passkey stored on the device itself). + +#### disadvantage +The RP ID (= domain) is saved on the authenticator. So If an authenticator is lost, its theoretically possible to find the services, which the authenticator is used and login there. + +### device support +Availability of built-in passkeys that automatically synchronize to all of a user’s devices: (see also [passkeys.dev/device-support](https://passkeys.dev/device-support/)) +* Apple iOS 16+ / iPadOS 16+ / macOS Ventura+ +* Android 9+ +* Microsoft Windows 11 23H2+ + +## Requirements +* PHP >= 8.0 with [OpenSSL](http://php.net/manual/en/book.openssl.php) and [Multibyte String](https://www.php.net/manual/en/book.mbstring.php) +* Browser with [WebAuthn support](https://caniuse.com/webauthn) (Firefox 60+, Chrome 67+, Edge 18+, Safari 13+) +* PHP [Sodium](https://www.php.net/manual/en/book.sodium.php) (or [Sodium Compat](https://github.com/paragonie/sodium_compat) ) for [Ed25519](https://en.wikipedia.org/wiki/EdDSA#Ed25519) support + +## Infos about WebAuthn +* [Wikipedia](https://en.wikipedia.org/wiki/WebAuthn) +* [W3C](https://www.w3.org/TR/webauthn/) +* [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API) +* [dev.yubico](https://developers.yubico.com/FIDO2/) +* [FIDO Alliance](https://fidoalliance.org) +* [passkeys](https://passkeys.dev/) + +## FIDO2 Hardware +* [Yubico](https://www.yubico.com) +* [Solo](https://solokeys.com) Open Source! +* [Nitrokey](https://www.nitrokey.com/) +* [Feitan](https://fido.ftsafe.com/) +* [TrustKey](https://www.trustkeysolutions.com) +* [Google Titan](https://cloud.google.com/titan-security-key) +* [Egis](https://www.egistec.com/u2f-solution/) +* [OneSpan](https://www.vasco.com/products/two-factor-authenticators/hardware/one-button/digipass-secureclick.html) +* [Hypersecu](https://hypersecu.com/tmp/products/hyperfido) +* [Kensington VeriMark™](https://www.kensington.com/) +* [Token2](https://www.token2.com/shop/category/fido2-keys) diff --git a/restricted/WebAuthn/_test/client.html b/restricted/WebAuthn/_test/client.html new file mode 100644 index 0000000..13c5d8d --- /dev/null +++ b/restricted/WebAuthn/_test/client.html @@ -0,0 +1,547 @@ + + + + + lbuchs/WebAuthn Test + + + + + +

lbuchs/WebAuthn

+
A simple PHP WebAuthn (FIDO2) server library.
+
+
+
 
+
 
+
Simple working demo for the lbuchs/WebAuthn library.
+
+
 
+ + + + + + + +
+ + + + + +
+
 
+ +
+ + +
+ +
 
+
Relying Party
+

A valid domain string that identifies the + WebAuthn Relying Party
on whose behalf a given registration or authentication ceremony is being performed.

+
+ + +
+ +
 
+
User
+
+ + + You get the user ID back when checking registration (as userHandle), if you're using client-side discoverable credentials. + You can identify with this ID the user who wants to login. + A user handle is an opaque byte sequence with a maximum size of 64 bytes, and is not meant to be displayed to the user. + The user handle MUST NOT contain personally identifying information about the user, such as a username or e-mail address. +
+
+ + + only for display, i.e., aiding the user in determining the difference between user accounts with similar display names. +
+
+ + + A human-palatable name for the user account, intended only for display. +
+ +
 
+
user verification
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
 
+
type of authenticator
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
 
+
attestation
+
+ + +
+
+ + +
+ +
 
+
attestation statement format
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
 
+
attestation root certificates
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
(Nothing checked = accept all)
+
 
+ +
+ +
+ +
 
+
If you select a root ca, direct attestation is required to validate your client with the root.
+ The browser may warn you that he will provide informations about your device.
+ When not checking against any root ca (deselect all certificates), + the client may change the assertion from the authenticator (for instance, using an anonymization CA),
+ the browser may not warn about providing informations about your device. +
+
+ Copyright © 2023 Lukas Buchs - license therms +
+ +
+
+
+

Here you can see what's saved on the server:

+ +
+
+ + diff --git a/restricted/WebAuthn/_test/rootCertificates/apple.pem b/restricted/WebAuthn/_test/rootCertificates/apple.pem new file mode 100644 index 0000000..8ae6bbf --- /dev/null +++ b/restricted/WebAuthn/_test/rootCertificates/apple.pem @@ -0,0 +1,48 @@ + Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 68:1d:01:6c:7a:3c:e3:02:25:a5:01:94:28:47:57:71 + + Signature Algorithm: ecdsa-with-SHA384 + + Issuer: + stateOrProvinceName = California + organizationName = Apple Inc. + commonName = Apple WebAuthn Root CA + + Validity + Not Before: Mar 18 18:21:32 2020 GMT + Not After : Mar 15 00:00:00 2045 GMT + + Subject: + stateOrProvinceName = California + organizationName = Apple Inc. + commonName = Apple WebAuthn Root CA + + Subject Public Key Info: + Public Key Algorithm: id-ecPublicKey + ASN1 OID: secp384r1 + + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Subject Key Identifier: + 26:D7:64:D9:C5:78:C2:5A:67:D1:A7:DE:6B:12:D0:1B:63:F1:C6:D7 + X509v3 Key Usage: critical + Certificate Sign, CRL Sign + +-----BEGIN CERTIFICATE----- +MIICEjCCAZmgAwIBAgIQaB0BbHo84wIlpQGUKEdXcTAKBggqhkjOPQQDAzBLMR8w +HQYDVQQDDBZBcHBsZSBXZWJBdXRobiBSb290IENBMRMwEQYDVQQKDApBcHBsZSBJ +bmMuMRMwEQYDVQQIDApDYWxpZm9ybmlhMB4XDTIwMDMxODE4MjEzMloXDTQ1MDMx +NTAwMDAwMFowSzEfMB0GA1UEAwwWQXBwbGUgV2ViQXV0aG4gUm9vdCBDQTETMBEG +A1UECgwKQXBwbGUgSW5jLjETMBEGA1UECAwKQ2FsaWZvcm5pYTB2MBAGByqGSM49 +AgEGBSuBBAAiA2IABCJCQ2pTVhzjl4Wo6IhHtMSAzO2cv+H9DQKev3//fG59G11k +xu9eI0/7o6V5uShBpe1u6l6mS19S1FEh6yGljnZAJ+2GNP1mi/YK2kSXIuTHjxA/ +pcoRf7XkOtO4o1qlcaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUJtdk +2cV4wlpn0afeaxLQG2PxxtcwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cA +MGQCMFrZ+9DsJ1PW9hfNdBywZDsWDbWFp28it1d/5w2RPkRX3Bbn/UbDTNLx7Jr3 +jAGGiQIwHFj+dJZYUJR786osByBelJYsVZd2GbHQu209b5RCmGQ21gpSAk9QZW4B +1bWeT0vT +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/_test/rootCertificates/globalSign.pem b/restricted/WebAuthn/_test/rootCertificates/globalSign.pem new file mode 100644 index 0000000..407de0f --- /dev/null +++ b/restricted/WebAuthn/_test/rootCertificates/globalSign.pem @@ -0,0 +1,37 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 04:00:00:00:00:01:0f:86:26:e6:0d + Signature Algorithm: sha1WithRSAEncryption + Issuer: OU=GlobalSign Root CA - R2, O=GlobalSign, CN=GlobalSign + Validity + Not Before: Dec 15 08:00:00 2006 GMT + Not After : Dec 15 08:00:00 2021 GMT + Subject: OU=GlobalSign Root CA - R2, O=GlobalSign, CN=GlobalSign + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 +MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL +v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 +eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq +tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd +C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa +zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB +mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH +V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n +bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG +3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs +J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO +291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS +ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd +AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE----- \ No newline at end of file diff --git a/restricted/WebAuthn/_test/rootCertificates/googleHardware.pem b/restricted/WebAuthn/_test/rootCertificates/googleHardware.pem new file mode 100644 index 0000000..63fe64a --- /dev/null +++ b/restricted/WebAuthn/_test/rootCertificates/googleHardware.pem @@ -0,0 +1,130 @@ +Google Hardware Attestation Root certificate +---------------------------------------------- + +https://developer.android.com/training/articles/security-key-attestation.html + +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + e8:fa:19:63:14:d2:fa:18 + Signature Algorithm: sha256WithRSAEncryption + Issuer: serialNumber = f92009e853b6b045 + Validity + Not Before: May 26 16:28:52 2016 GMT + Not After : May 24 16:28:52 2026 GMT + Subject: serialNumber = f92009e853b6b045 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (4096 bit) + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 36:61:E1:00:7C:88:05:09:51:8B:44:6C:47:FF:1A:4C:C9:EA:4F:12 + X509v3 Authority Key Identifier: + keyid:36:61:E1:00:7C:88:05:09:51:8B:44:6C:47:FF:1A:4C:C9:EA:4F:12 + + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Key Usage: critical + Digital Signature, Certificate Sign, CRL Sign + X509v3 CRL Distribution Points: + + Full Name: + URI:https://android.googleapis.com/attestation/crl/ + + Signature Algorithm: sha256WithRSAEncryption + + +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIJAOj6GWMU0voYMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV +BAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTYwNTI2MTYyODUyWhcNMjYwNTI0MTYy +ODUyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS +Sxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7 +tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj +nar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq +C4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ +oVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O +JtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg +sTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi +igHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M +RPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E +aDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um +AGMCAwEAAaOBpjCBozAdBgNVHQ4EFgQUNmHhAHyIBQlRi0RsR/8aTMnqTxIwHwYD +VR0jBBgwFoAUNmHhAHyIBQlRi0RsR/8aTMnqTxIwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAYYwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cHM6Ly9hbmRyb2lk +Lmdvb2dsZWFwaXMuY29tL2F0dGVzdGF0aW9uL2NybC8wDQYJKoZIhvcNAQELBQAD +ggIBACDIw41L3KlXG0aMiS//cqrG+EShHUGo8HNsw30W1kJtjn6UBwRM6jnmiwfB +Pb8VA91chb2vssAtX2zbTvqBJ9+LBPGCdw/E53Rbf86qhxKaiAHOjpvAy5Y3m00m +qC0w/Zwvju1twb4vhLaJ5NkUJYsUS7rmJKHHBnETLi8GFqiEsqTWpG/6ibYCv7rY +DBJDcR9W62BW9jfIoBQcxUCUJouMPH25lLNcDc1ssqvC2v7iUgI9LeoM1sNovqPm +QUiG9rHli1vXxzCyaMTjwftkJLkf6724DFhuKug2jITV0QkXvaJWF4nUaHOTNA4u +JU9WDvZLI1j83A+/xnAJUucIv/zGJ1AMH2boHqF8CY16LpsYgBt6tKxxWH00XcyD +CdW2KlBCeqbQPcsFmWyWugxdcekhYsAWyoSf818NUsZdBWBaR/OukXrNLfkQ79Iy +ZohZbvabO/X+MVT3rriAoKc8oE2Uws6DF+60PV7/WIPjNvXySdqspImSN78mflxD +qwLqRBYkA3I75qppLGG9rp7UCdRjxMl8ZDBld+7yvHVgt1cVzJx9xnyGCC23Uaic +MDSXYrB4I4WHXPGjxhZuCuPBLTdOLU8YRvMYdEvYebWHMpvwGCF6bAx3JBpIeOQ1 +wDB5y0USicV3YgYGmi+NZfhA4URSh77Yd6uuJOJENRaNVTzk +-----END CERTIFICATE----- + + + Certificate: + Data: + Version: 3 (0x2) + Serial Number: 15352756130135856819 (0xd50ff25ba3f2d6b3) + Signature Algorithm: sha256WithRSAEncryption + Issuer: + serialNumber = f92009e853b6b045 + Validity + Not Before: Nov 22 20:37:58 2019 GMT + Not After : Nov 18 20:37:58 2034 GMT + Subject: + serialNumber = f92009e853b6b045 + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (4096 bit) + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 36:61:E1:00:7C:88:05:09:51:8B:44:6C:47:FF:1A:4C:C9:EA:4F:12 + X509v3 Authority Key Identifier: + keyid:36:61:E1:00:7C:88:05:09:51:8B:44:6C:47:FF:1A:4C:C9:EA:4F:12 + + X509v3 Basic Constraints: critical + CA:TRUE + X509v3 Key Usage: critical + Certificate Sign + Signature Algorithm: sha256WithRSAEncryption + + +-----BEGIN CERTIFICATE----- +MIIFHDCCAwSgAwIBAgIJANUP8luj8tazMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV +BAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTkxMTIyMjAzNzU4WhcNMzQxMTE4MjAz +NzU4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS +Sxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7 +tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj +nar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq +C4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ +oVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O +JtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg +sTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi +igHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M +RPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E +aDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um +AGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud +IwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBOMaBc8oumXb2voc7XCWnu +XKhBBK3e2KMGz39t7lA3XXRe2ZLLAkLM5y3J7tURkf5a1SutfdOyXAmeE6SRo83U +h6WszodmMkxK5GM4JGrnt4pBisu5igXEydaW7qq2CdC6DOGjG+mEkN8/TA6p3cno +L/sPyz6evdjLlSeJ8rFBH6xWyIZCbrcpYEJzXaUOEaxxXxgYz5/cTiVKN2M1G2ok +QBUIYSY6bjEL4aUN5cfo7ogP3UvliEo3Eo0YgwuzR2v0KR6C1cZqZJSTnghIC/vA +D32KdNQ+c3N+vl2OTsUVMC1GiWkngNx1OO1+kXW+YTnnTUOtOIswUP/Vqd5SYgAI +mMAfY8U9/iIgkQj6T2W6FsScy94IN9fFhE1UtzmLoBIuUFsVXJMTz+Jucth+IqoW +Fua9v1R93/k98p41pjtFX+H8DslVgfP097vju4KDlqN64xV1grw3ZLl4CiOe/A91 +oeLm2UHOq6wn3esB4r2EIQKb6jTVGu5sYCcdWpXr0AUVqcABPdgL+H7qJguBw09o +jm6xNIrw2OocrDKsudk/okr/AwqEyPKw9WnMlQgLIKw1rODG2NvU9oR3GVGdMkUB +ZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCH +ex0SdDrx+tWUDqG8At2JHA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/_test/rootCertificates/hypersecu.pem b/restricted/WebAuthn/_test/rootCertificates/hypersecu.pem new file mode 100644 index 0000000..536b24e --- /dev/null +++ b/restricted/WebAuthn/_test/rootCertificates/hypersecu.pem @@ -0,0 +1,56 @@ +HyperFIDO U2F Security Key Attestation CA +https://hypersecu.com/support/downloads/attestation + +Last Update: 2017-01-01 + +HyperFIDO U2F Security Key devices which contain attestation certificates signed by a set of CAs. +This file contains the CA certificates that Relying Parties (RP) need to configure their software +with to be able to verify U2F device certificates. + +The file will be updated as needed when we publish more CA certificates. + +Issuer: CN=FT FIDO 0100 + +-----BEGIN CERTIFICATE----- +MIIBjTCCATOgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxGVCBGSURP +IDAxMDAwHhcNMTQwNzAxMTUzNjI2WhcNNDQwNzAzMTUzNjI2WjAXMRUwEwYDVQQD +EwxGVCBGSURPIDAxMDAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASxdLxJx8ol +S3DS5cIHzunPF0gg69d+o8ZVCMJtpRtlfBzGuVL4YhaXk2SC2gptPTgmpZCV2vbN +fAPi5gOF0vbZo3AwbjAdBgNVHQ4EFgQUXt4jWlYDgwhaPU+EqLmeM9LoPRMwPwYD +VR0jBDgwNoAUXt4jWlYDgwhaPU+EqLmeM9LoPROhG6QZMBcxFTATBgNVBAMTDEZU +IEZJRE8gMDEwMIIBATAMBgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0gAMEUCIQC2 +D9o9cconKTo8+4GZPyZBJ3amc8F0/kzyidX9dhrAIAIgM9ocs5BW/JfmshVP9Mb+ +Joa/kgX4dWbZxrk0ioTfJZg= +-----END CERTIFICATE----- + + + Certificate: + Data: + Version: 3 (0x2) + Serial Number: 4107 (0x100b) + Signature Algorithm: ecdsa-with-SHA256 + Issuer: + commonName = HYPERFIDO 0200 + organizationName = HYPERSECU + countryName = CA + Validity + Not Before: Jan 1 00:00:00 2018 GMT + Not After : Dec 31 23:59:59 2047 GMT + Subject: + commonName = HYPERFIDO 0200 + organizationName = HYPERSECU + countryName = CA + + +-----BEGIN CERTIFICATE----- +MIIBxzCCAWygAwIBAgICEAswCgYIKoZIzj0EAwIwOjELMAkGA1UEBhMCQ0ExEjAQ +BgNVBAoMCUhZUEVSU0VDVTEXMBUGA1UEAwwOSFlQRVJGSURPIDAyMDAwIBcNMTgw +MTAxMDAwMDAwWhgPMjA0NzEyMzEyMzU5NTlaMDoxCzAJBgNVBAYTAkNBMRIwEAYD +VQQKDAlIWVBFUlNFQ1UxFzAVBgNVBAMMDkhZUEVSRklETyAwMjAwMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAErKUI1G0S7a6IOLlmHipLlBuxTYjsEESQvzQh3dB7 +dvxxWWm7kWL91rq6S7ayZG0gZPR+zYqdFzwAYDcG4+aX66NgMF4wHQYDVR0OBBYE +FLZYcfMMwkQAGbt3ryzZFPFypmsIMB8GA1UdIwQYMBaAFLZYcfMMwkQAGbt3ryzZ +FPFypmsIMAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMC +A0kAMEYCIQCG2/ppMGt7pkcRie5YIohS3uDPIrmiRcTjqDclKVWg0gIhANcPNDZH +E2/zZ+uB5ThG9OZus+xSb4knkrbAyXKX2zm/ +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/_test/rootCertificates/mds/.gitkeep b/restricted/WebAuthn/_test/rootCertificates/mds/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/restricted/WebAuthn/_test/rootCertificates/mds/.gitkeep @@ -0,0 +1 @@ + diff --git a/restricted/WebAuthn/_test/rootCertificates/microsoftTpmCollection.pem b/restricted/WebAuthn/_test/rootCertificates/microsoftTpmCollection.pem new file mode 100644 index 0000000..75f9e38 --- /dev/null +++ b/restricted/WebAuthn/_test/rootCertificates/microsoftTpmCollection.pem @@ -0,0 +1,28844 @@ +A collection of trusted TPM root and intermediate certificates +published by Microsoft. + +https://docs.microsoft.com/en-us/windows-server/security/guarded-fabric-shielded-vm/guarded-fabric-install-trusted-tpm-root-certificates + +AMD fTPM ECC ICA CZFamily 35F45AAB781751FE7C24D5EDAABAB507 +========================================================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAvKgAwIBAgIQNfRaq3gXUf58JNXtqrq1BzAKBggqhkjOPQQDAjB2MRQw +EgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1bm55 +dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERldmlj +ZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xNzAxMDEwNTAwMDBaFw00MjAxMDEwNTAw +MDBaMHYxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzESMBAGA1UE +BxMJU3Vubnl2YWxlMQswCQYDVQQIEwJDQTEfMB0GA1UEChMWQWR2YW5jZWQgTWlj +cm8gRGV2aWNlczEPMA0GA1UEAxMGUFJHLUNaMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEBlpn+AdLBGvcVI3hOEA6W0KVi47yRZJpDGoFzjymztysYVGK14hcP2Ou ++PVGyXC3jCWeuRxwA72VdrqoSeHuJ6OCAWAwggFcMA4GA1UdDwEB/wQEAwIBBjCB +ggYIKwYBBQUHAQEEdjB0MEgGCCsGAQUFBzAChjxodHRwOi8vZnRwbS5hbWQuY29t +L3BraS9haWEvMjM0NTIyMDFENDFDNUFCMDY0MDMyQkQyM0YxNThGRUYwKAYIKwYB +BQUHMAGGHGh0dHA6Ly9mdHBtLmFtZC5jb20vcGtpL29jc3AwLAYDVR0fBCUwIzAh +oB+gHYYbaHR0cDovL2Z0cG0uYW1kLmNvbS9wa2kvY3JsMEMGA1UdIAQ8MDowOAYK +KwYBBAGceGUVCjAqMCgGCCsGAQUFBwIBFhxodHRwczovL2Z0cG0uYW1kLmNvbS9w +a2kvY3BzMB0GA1UdDgQWBBQozldJxrgWZhsi/R/V1m1UPKEA7TAfBgNVHSMEGDAW +gBTyGtD46KMG6cvNOH6GcmMX28G+uTASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqG +SM49BAMCA0gAMEUCIF8AlJl2lptIKpgL43QRxzExH5XRWITmH7fNrT2WK35AAiEA +96iA8KaxcEVV2y6HNXM7EQZWNvqCLtKrtuvKBWYefYA= +-----END CERTIFICATE----- + + +AMD fTPM ECC ICA RNFamily CA6EA09EB84853EC720CD9BE5AAE73BF +========================================================== +-----BEGIN CERTIFICATE----- +MIIDTjCCAvSgAwIBAgIQSm6gnrhIU+xyDNm+Wq5zvzAKBggqhkjOPQQDAjB2MRQw +EgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1bm55 +dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERldmlj +ZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xOTAxMDEwNTAwMDBaFw00NDAxMDEwNTAw +MDBaMHgxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzEUMBIGA1UE +BxMLU2FudGEgQ2xhcmExCzAJBgNVBAgTAkNBMR8wHQYDVQQKExZBZHZhbmNlZCBN +aWNybyBEZXZpY2VzMQ8wDQYDVQQDEwZQUkctUk4wWTATBgcqhkjOPQIBBggqhkjO +PQMBBwNCAAQ5fkz4KonekKk4By4PVu900jts2g37esRAHdwgwvMXIxRHf1lBqmCm +iuT2MEHZi21VRFdcVUr+3cEdP9E6etEIo4IBYDCCAVwwDgYDVR0PAQH/BAQDAgEG +MIGCBggrBgEFBQcBAQR2MHQwSAYIKwYBBQUHMAKGPGh0dHA6Ly9mdHBtLmFtZC5j +b20vcGtpL2FpYS8yMzQ1MjIwMUQ0MUM1QUIwNjQwMzJCRDIzRjE1OEZFRjAoBggr +BgEFBQcwAYYcaHR0cDovL2Z0cG0uYW1kLmNvbS9wa2kvb2NzcDAsBgNVHR8EJTAj +MCGgH6AdhhtodHRwOi8vZnRwbS5hbWQuY29tL3BraS9jcmwwQwYDVR0gBDwwOjA4 +BgorBgEEAZx4ZRUKMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vZnRwbS5hbWQuY29t +L3BraS9jcHMwHQYDVR0OBBYEFEUUrnBzWAfx5JAHoyxeDgcTefraMB8GA1UdIwQY +MBaAFPIa0Pjoowbpy804foZyYxfbwb65MBIGA1UdEwEB/wQIMAYBAf8CAQAwCgYI +KoZIzj0EAwIDSAAwRQIgahQcXdsmgv2bVQ6mvRbmjYAZXIgRGzTkvNp9KHkdSaQC +IQCXNY98DRYBugeGd3BB9DgG1dAj8lPmHx5klhYCijzSYQ== +-----END CERTIFICATE----- + + +AMD fTPM ECC ICA RVFamily 7ABAE76EBBA151415337F49A77CB1C3E +========================================================== +-----BEGIN CERTIFICATE----- +MIIDTTCCAvKgAwIBAgIQaJK2kr7QVTNAD9X6rjYYgjAKBggqhkjOPQQDAjB2MRQw +EgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1bm55 +dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERldmlj +ZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xNzAxMDEwNTAwMDBaFw00MjAxMDEwNTAw +MDBaMHYxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzESMBAGA1UE +BxMJU3Vubnl2YWxlMQswCQYDVQQIEwJDQTEfMB0GA1UEChMWQWR2YW5jZWQgTWlj +cm8gRGV2aWNlczEPMA0GA1UEAxMGUFJHLVJWMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEgjqHAi3VGlHTA8AMKMiE4w150DBQssiBN5CXW6OkjXRdzW0AcbBsf4+p +VWPyRfpVtszns6GC2mB+9R/DgsCzEKOCAWAwggFcMA4GA1UdDwEB/wQEAwIBBjCB +ggYIKwYBBQUHAQEEdjB0MEgGCCsGAQUFBzAChjxodHRwOi8vZnRwbS5hbWQuY29t +L3BraS9haWEvMjM0NTIyMDFENDFDNUFCMDY0MDMyQkQyM0YxNThGRUYwKAYIKwYB +BQUHMAGGHGh0dHA6Ly9mdHBtLmFtZC5jb20vcGtpL29jc3AwLAYDVR0fBCUwIzAh +oB+gHYYbaHR0cDovL2Z0cG0uYW1kLmNvbS9wa2kvY3JsMEMGA1UdIAQ8MDowOAYK +KwYBBAGceGUVCjAqMCgGCCsGAQUFBwIBFhxodHRwczovL2Z0cG0uYW1kLmNvbS9w +a2kvY3BzMB0GA1UdDgQWBBR6IqVx7p7wpEU4i+tS38xSxwZdvDAfBgNVHSMEGDAW +gBTyGtD46KMG6cvNOH6GcmMX28G+uTASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqG +SM49BAMCA0kAMEYCIQCuX4QBN4CPlmsuwENURCNvdQjvPvgTetx8kIsqvwos3wIh +AKU9cWLmxsLNLWFrCAwNFybGzkUtAzAdx8Culc0/sFeG +-----END CERTIFICATE----- + + +AMD fTPM ECC ICA SSPFamily 282772bd68af58ba6b13477a89bb1a04 +=========================================================== +-----BEGIN CERTIFICATE----- +MIIDTzCCAvWgAwIBAgIQKCdyvWivWLprE0d6ibsaBDAKBggqhkjOPQQDAjB2MRQw +EgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1bm55 +dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERldmlj +ZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xOTAxMDEwNTAwMDBaFw00NDAxMDEwNTAw +MDBaMHkxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzEUMBIGA1UE +BxMLU2FudGEgQ2xhcmExCzAJBgNVBAgTAkNBMR8wHQYDVQQKExZBZHZhbmNlZCBN +aWNybyBEZXZpY2VzMRAwDgYDVQQDEwdQUkctU1NQMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEl6IO1QcWF2hjA9bVwvfQCf/M9i7KNA5O/D5ypbdVVpifwwMwSwMG +BmO9mmK56g6EPvDXpFmMg50FmQ6jU7LcKaOCAWAwggFcMA4GA1UdDwEB/wQEAwIB +BjCBggYIKwYBBQUHAQEEdjB0MEgGCCsGAQUFBzAChjxodHRwOi8vZnRwbS5hbWQu +Y29tL3BraS9haWEvMjM0NTIyMDFENDFDNUFCMDY0MDMyQkQyM0YxNThGRUYwKAYI +KwYBBQUHMAGGHGh0dHA6Ly9mdHBtLmFtZC5jb20vcGtpL29jc3AwLAYDVR0fBCUw +IzAhoB+gHYYbaHR0cDovL2Z0cG0uYW1kLmNvbS9wa2kvY3JsMEMGA1UdIAQ8MDow +OAYKKwYBBAGceGUVCjAqMCgGCCsGAQUFBwIBFhxodHRwczovL2Z0cG0uYW1kLmNv +bS9wa2kvY3BzMB0GA1UdDgQWBBSMWXd2hTue25DGGoyvyinxvqBKxjAfBgNVHSME +GDAWgBTyGtD46KMG6cvNOH6GcmMX28G+uTASBgNVHRMBAf8ECDAGAQH/AgEAMAoG +CCqGSM49BAMCA0gAMEUCIAhSltSJhcMQa1BK+AuC4et0wxo1DnDIdrXn13tEkxet +AiEA9ddrkfrmDpH7mMTJR1ejntr+m0sUTDJ9OtPzz+gthTA= +-----END CERTIFICATE----- + + +AMD fTPM ECC ICA STFamily 4A7A7EC532E35402724A2BB4501011CE +========================================================== +-----BEGIN CERTIFICATE----- +MIIDSzCCAvKgAwIBAgIQSnp+xTLjVAJySiu0UBARzjAKBggqhkjOPQQDAjB2MRQw +EgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1bm55 +dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERldmlj +ZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xNzAxMDEwNTAwMDBaFw00MjAxMDEwNTAw +MDBaMHYxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzESMBAGA1UE +BxMJU3Vubnl2YWxlMQswCQYDVQQIEwJDQTEfMB0GA1UEChMWQWR2YW5jZWQgTWlj +cm8gRGV2aWNlczEPMA0GA1UEAxMGUFJHLVNUMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEuqTQcmuKG6lBH2pZ8FcFUVrdkesyyX/cIl7eWyhLQGUehJDrshpaX4uT +zYTrwiyo+JVDCEz0SGqxF10DmP0kUqOCAWAwggFcMA4GA1UdDwEB/wQEAwIBBjCB +ggYIKwYBBQUHAQEEdjB0MEgGCCsGAQUFBzAChjxodHRwOi8vZnRwbS5hbWQuY29t +L3BraS9haWEvMjM0NTIyMDFENDFDNUFCMDY0MDMyQkQyM0YxNThGRUYwKAYIKwYB +BQUHMAGGHGh0dHA6Ly9mdHBtLmFtZC5jb20vcGtpL29jc3AwLAYDVR0fBCUwIzAh +oB+gHYYbaHR0cDovL2Z0cG0uYW1kLmNvbS9wa2kvY3JsMEMGA1UdIAQ8MDowOAYK +KwYBBAGceGUVCjAqMCgGCCsGAQUFBwIBFhxodHRwczovL2Z0cG0uYW1kLmNvbS9w +a2kvY3BzMB0GA1UdDgQWBBSMlQK6u0nLp8P7+HwwzcGysubG6zAfBgNVHSMEGDAW +gBTyGtD46KMG6cvNOH6GcmMX28G+uTASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqG +SM49BAMCA0cAMEQCIDz6Mytrfm+ihk744RkVAPPxkefsMZcUxdhGqnrv7owiAiBr +q+LoaHiiDgfNpbeQlElRIu9c2y2FmhOYrt6STGQjQw== +-----END CERTIFICATE----- + + +AMD fTPM ECC ICA ZPFamily 1425A264BB595F9469645F3B7AA30209 +========================================================== +-----BEGIN CERTIFICATE----- +MIIDTTCCAvKgAwIBAgIQFCWiZLtZX5RpZF87eqMCCTAKBggqhkjOPQQDAjB2MRQw +EgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1bm55 +dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERldmlj +ZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xNzAxMDEwNTAwMDBaFw00MjAxMDEwNTAw +MDBaMHYxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzESMBAGA1UE +BxMJU3Vubnl2YWxlMQswCQYDVQQIEwJDQTEfMB0GA1UEChMWQWR2YW5jZWQgTWlj +cm8gRGV2aWNlczEPMA0GA1UEAxMGUFJHLVpQMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEUs7cHYxm8jLp3GOE4MVnvVx5U0AKrTeLyBMwSstWX3VnUQM8oMeTh5eY +4Zfis0MDpVxXVE3JcGGr45iOkkWSYaOCAWAwggFcMA4GA1UdDwEB/wQEAwIBBjCB +ggYIKwYBBQUHAQEEdjB0MEgGCCsGAQUFBzAChjxodHRwOi8vZnRwbS5hbWQuY29t +L3BraS9haWEvMjM0NTIyMDFENDFDNUFCMDY0MDMyQkQyM0YxNThGRUYwKAYIKwYB +BQUHMAGGHGh0dHA6Ly9mdHBtLmFtZC5jb20vcGtpL29jc3AwLAYDVR0fBCUwIzAh +oB+gHYYbaHR0cDovL2Z0cG0uYW1kLmNvbS9wa2kvY3JsMEMGA1UdIAQ8MDowOAYK +KwYBBAGceGUVCjAqMCgGCCsGAQUFBwIBFhxodHRwczovL2Z0cG0uYW1kLmNvbS9w +a2kvY3BzMB0GA1UdDgQWBBQ2sLcQwBDRgZIhwpvc5T5QAzwpFTAfBgNVHSMEGDAW +gBTyGtD46KMG6cvNOH6GcmMX28G+uTASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqG +SM49BAMCA0kAMEYCIQDoFZIeUSnF7cDRjJb+iojim+QnaGsa63mDnJVaGc5UfQIh +AIzqZvY5zohbdv+OWKibF2rEh9+bOQkuE1M7I43JDcZy +-----END CERTIFICATE----- + + +AMD fTPM ECC RootCA +=================== +-----BEGIN CERTIFICATE----- +MIIDAjCCAqigAwIBAgIQI0UiAdQcWrBkAyvSPxWP7zAKBggqhkjOPQQDAjB2MRQw +EgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1bm55 +dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERldmlj +ZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xNjAxMDEwNTAwMDBaFw00MTAxMDEwNTAw +MDBaMHYxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzESMBAGA1UE +BxMJU3Vubnl2YWxlMQswCQYDVQQIEwJDQTEfMB0GA1UEChMWQWR2YW5jZWQgTWlj +cm8gRGV2aWNlczEPMA0GA1UEAxMGQU1EVFBNMFkwEwYHKoZIzj0CAQYIKoZIzj0D +AQcDQgAEKLNGw0F3uq7kcoZazSAm46NUyiIJC5DgNAPo1CfrPsn3UtRni1DxC1xa +sMtvIo3jAVHZlVsmAT1g0r5XiNb5mqOCARYwggESMA4GA1UdDwEB/wQEAwIBBjAj +BgkrBgEEAYI3FSsEFgQU8hrQ+OijBunLzTh+hnJjF9vBvrkwHQYDVR0OBBYEFPIa +0Pjoowbpy804foZyYxfbwb65MA8GA1UdEwEB/wQFMAMBAf8wOAYIKwYBBQUHAQEE +LDAqMCgGCCsGAQUFBzABhhxodHRwOi8vZnRwbS5hbWQuY29tL3BraS9vY3NwMCwG +A1UdHwQlMCMwIaAfoB2GG2h0dHA6Ly9mdHBtLmFtZC5jb20vcGtpL2NybDBDBgNV +HSAEPDA6MDgGCisGAQQBnHhlFQowKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9mdHBt +LmFtZC5jb20vcGtpL2NwczAKBggqhkjOPQQDAgNIADBFAiEAgaCRgPGIA9/8xEVy +tJ1YK0ERBDGHxPT0igzycASqDhACIDWbPtOXQG3Z4W09OjRtWwLwdCEkelKfPazb +yhIHIT4m +-----END CERTIFICATE----- + + +AMD fTPM RSA ICA CZFamily 01F7DE3D30F15BE252C0AFCC1A0A562C +========================================================== +-----BEGIN CERTIFICATE----- +MIIE2DCCA8CgAwIBAgIQAffePTDxW+JSwK/MGgpWLDANBgkqhkiG9w0BAQsFADB2 +MRQwEgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1 +bm55dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERl +dmljZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xNzAxMDEwNTAwMDBaFw00MjAxMDEw +NTAwMDBaMHYxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzESMBAG +A1UEBxMJU3Vubnl2YWxlMQswCQYDVQQIEwJDQTEfMB0GA1UEChMWQWR2YW5jZWQg +TWljcm8gRGV2aWNlczEPMA0GA1UEAxMGUFJHLUNaMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAvMx6GldSnmqFRVWG3oUBIb4D/Go7LFSnnU9Tvtn8rT97 +FoqxQRQN4a2Frx90tTXnvakc/bF5fWjB1lZauToCpgkUWVFSuIQe5Mw1IEK/aY0v +/cQYSHrwnpmPoJa0oSKUrX7d8E3okAFCbDXyuKBzGnci9toQcWNMHoNAf6AbcpVD +FGmsSmukSNzyiolgtkvPEZxhINl4zvQh0wYnKaU6/Ah6TzW1+TRyeiGNHkiccgh+ +YdSEwcvHUsZYI7QSd2d3IcX6b0wqubiE4jWoWkKmPiuX8BOu1YOjnKhTbq8rbpGq +RKRV7SPyJqgTbXtUg9dZ9m28C92/iTdbaeFkgUvTTwIDAQABo4IBYDCCAVwwDgYD +VR0PAQH/BAQDAgEGMIGCBggrBgEFBQcBAQR2MHQwSAYIKwYBBQUHMAKGPGh0dHA6 +Ly9mdHBtLmFtZC5jb20vcGtpL2FpYS8yNjREMzlBMjNDRUI1RDVCNDlENjEwMDQ0 +RUVCRDEyMTAoBggrBgEFBQcwAYYcaHR0cDovL2Z0cG0uYW1kLmNvbS9wa2kvb2Nz +cDAsBgNVHR8EJTAjMCGgH6AdhhtodHRwOi8vZnRwbS5hbWQuY29tL3BraS9jcmww +QwYDVR0gBDwwOjA4BgorBgEEAZx4ZRUKMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v +ZnRwbS5hbWQuY29tL3BraS9jcHMwHQYDVR0OBBYEFBSC/Zy4ivu3+RfKFCJfiRbz +EEANMB8GA1UdIwQYMBaAFFeMVF95aVFCEiGkpXis219oL4nIMBIGA1UdEwEB/wQI +MAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBAJRBWLzYJ5MPlxOHGGGm4881vTey +LG8UvARg3+q0DvFs8T7piBtFXAOb0tu1kNquHWGJCNeJWcsNbi4Buzc63fbptt4j +Jh9ckLQnp1SK3mn5xo+O+5mgF5G9dN+kE910FEntH5k5Ox1bTKZzrSRSTP5cNacB +e9FCVddjjH4yAOUKywMDbZipyX0GwNgJJYskYr/n7WG4vRCf9WFNMdeuTm8b8HPM +i8Q0+5+0tl0X9Y7Mzds2ciwdlNI6COWXnels1Zy3Pex7Uc8KiU6q51EAl/YJEdca +5zR/1B9i9pukRo9Pz096SqX8sjqXq6roHhkaXllniOYr6zaeTuRuUJpT8KY= +-----END CERTIFICATE----- + + +AMD fTPM RSA ICA RNFamily CC5AB663EE845CA9654A582121F50381 +========================================================== +-----BEGIN CERTIFICATE----- +MIIE2jCCA8KgAwIBAgIQTFq2Y+6EXKllSlghIfUDgTANBgkqhkiG9w0BAQsFADB2 +MRQwEgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1 +bm55dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERl +dmljZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xOTAxMDEwNTAwMDBaFw00NDAxMDEw +NTAwMDBaMHgxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzEUMBIG +A1UEBxMLU2FudGEgQ2xhcmExCzAJBgNVBAgTAkNBMR8wHQYDVQQKExZBZHZhbmNl +ZCBNaWNybyBEZXZpY2VzMQ8wDQYDVQQDEwZQUkctUk4wggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCr2nNY0tQPp2mEX75pycX0XVqCCraSmUzFhPoiNPI8 +2OSmH8XhFsXelR84fukJrvnVEqtMimxhWkTguSBTf+dBTWbOfKnfzc7SJbQqblly +Njs9RCppU/fN+NjYnoSqgGNl0mT/TiHZZozWcgaKTtkezxDi7czedY2Bk4z0SS98 +CYX7FcAHwK2ZOZHHs+AAwf4M9Ijf5FeTuU4m3T0Le9VBvoYak6VC7MHJ0MQecU26 +TDgVWzUu0wyncwS6fqFtbftNLfp8FsmdG+Oser6RDz/Pkl5R9KkhEQBwyhiMtwAR +pSCUeP3xCYSAQQ00Arl+HXvNda54tID56p0UatoTyi0vAgMBAAGjggFgMIIBXDAO +BgNVHQ8BAf8EBAMCAQYwgYIGCCsGAQUFBwEBBHYwdDBIBggrBgEFBQcwAoY8aHR0 +cDovL2Z0cG0uYW1kLmNvbS9wa2kvYWlhLzI2NEQzOUEyM0NFQjVENUI0OUQ2MTAw +NDRFRUJEMTIxMCgGCCsGAQUFBzABhhxodHRwOi8vZnRwbS5hbWQuY29tL3BraS9v +Y3NwMCwGA1UdHwQlMCMwIaAfoB2GG2h0dHA6Ly9mdHBtLmFtZC5jb20vcGtpL2Ny +bDBDBgNVHSAEPDA6MDgGCisGAQQBnHhlFQowKjAoBggrBgEFBQcCARYcaHR0cHM6 +Ly9mdHBtLmFtZC5jb20vcGtpL2NwczAdBgNVHQ4EFgQUUvtZ4pqoOpYvue7w/ltI +Ed5rdR4wHwYDVR0jBBgwFoAUV4xUX3lpUUISIaSleKzbX2gvicgwEgYDVR0TAQH/ +BAgwBgEB/wIBADANBgkqhkiG9w0BAQsFAAOCAQEAl9N/5lOIvJpbOgfiIqKFHZRy +jVaTUi0qdQzrQD54KWto+jfurZIDTb1d6hfkLNC2gJcu+SAidknBoaw5GB1EBFsV +wHI7hVSuXJ7fBw828NyvQKymacm4JdxeVc+GR6UItG9dUVCV6LjMFodSLJuL8a2e +9Cxz6s09scV9AB2162Ls56CRAc+6TM1HA+q21EpSgWGXweDf7kP8+LicWr9uSS9p +oLH5zJoJ9PC0IySgVQc0LtErR2oSAyi8lPSQaUj3dQTpd054roGcTlyPsM5PGZsI +dL43XMLMhNtn2h/fV3RZOUtxSIiMm/i62xsDIi742rQ3ZPmTbiTDqzPVk18NdQ== +-----END CERTIFICATE----- + + +AMD fTPM RSA ICA RVFamily 7ABAE76EBBA151415337F49A77CB1C3E +========================================================== +-----BEGIN CERTIFICATE----- +MIIE2DCCA8CgAwIBAgIQerrnbruhUUFTN/Sad8scPjANBgkqhkiG9w0BAQsFADB2 +MRQwEgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1 +bm55dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERl +dmljZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xNzAxMDEwNTAwMDBaFw00MjAxMDEw +NTAwMDBaMHYxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzESMBAG +A1UEBxMJU3Vubnl2YWxlMQswCQYDVQQIEwJDQTEfMB0GA1UEChMWQWR2YW5jZWQg +TWljcm8gRGV2aWNlczEPMA0GA1UEAxMGUFJHLVJWMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAxPCInsP6UJTB9APCZcXBT+XQS9SGiw5yZtM5eSPGvDDa +7FQRtxwiA6m386xXQhZplz9F0GDwc6iVcf/yh2W7203cDKbbKXjc6KLPUAnRSMen +NeIj9bmSut2Epi5Z8RMMd6M11b0f/bxJGMmttM8y0kpzn+u0qK06wyeo+ZqnQFoX +DQzlenGstpCGj5MyTd0ATSu7yrjp0cdQeTRbl4bF/9PQ3gqKzLCbHtFnnTN19bkU +jKM0GQ4AY+tMu3WRsQW0hFHK0q+HQDijkCGw62wvKlakpTVxg9zC28kmaab+RPxJ +IYyAoNR8D5C5xscBM7nhGZLN2DjBg5paW+5yk/UZdQIDAQABo4IBYDCCAVwwDgYD +VR0PAQH/BAQDAgEGMIGCBggrBgEFBQcBAQR2MHQwSAYIKwYBBQUHMAKGPGh0dHA6 +Ly9mdHBtLmFtZC5jb20vcGtpL2FpYS8yNjREMzlBMjNDRUI1RDVCNDlENjEwMDQ0 +RUVCRDEyMTAoBggrBgEFBQcwAYYcaHR0cDovL2Z0cG0uYW1kLmNvbS9wa2kvb2Nz +cDAsBgNVHR8EJTAjMCGgH6AdhhtodHRwOi8vZnRwbS5hbWQuY29tL3BraS9jcmww +QwYDVR0gBDwwOjA4BgorBgEEAZx4ZRUKMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v +ZnRwbS5hbWQuY29tL3BraS9jcHMwHQYDVR0OBBYEFIoFeM9WFG/qOZr5A/tbCsNu +snhqMB8GA1UdIwQYMBaAFFeMVF95aVFCEiGkpXis219oL4nIMBIGA1UdEwEB/wQI +MAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBAJ9TlFKslPxTCEsde9ZuM74ZV/ih +pzO+89jTQaIlNgIkkKeDX6q7Oy0XATvQGeNpQ4sifhEd4EAi45A6ZpowZyflezDE +tuyG7KMmFpLuE5IL1msuEy9+LGyRSmX+TIhvMcOBPPGvLZJ3YV0UUvvSFwhhbJ5C +YlD0grQN27feVXuqoj7MjgkZ5ZNrYz4yTcpljfta1oFs7zVrA7nmjtB7J6/fy5y7 +t85iJZujW4YG8dskch28PBJ28v5kW1FHJfVj/0hH759b2DDc0w0iaA9aj0PYj3Vm +igYAcR4XCQWNADt8a5acm/y5/7t+wW1XSKDxochM8Evb7eNsUlTTFT+eL4Y= +-----END CERTIFICATE----- + + +AMD fTPM RSA ICA SSPFamily 8f557bf02fba534642df289ff945cd40 +=========================================================== +-----BEGIN CERTIFICATE----- +MIIE2zCCA8OgAwIBAgIQD1V78C+6U0ZC3yif+UXNQDANBgkqhkiG9w0BAQsFADB2 +MRQwEgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1 +bm55dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERl +dmljZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xOTAxMDEwNTAwMDBaFw00NDAxMDEw +NTAwMDBaMHkxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzEUMBIG +A1UEBxMLU2FudGEgQ2xhcmExCzAJBgNVBAgTAkNBMR8wHQYDVQQKExZBZHZhbmNl +ZCBNaWNybyBEZXZpY2VzMRAwDgYDVQQDEwdQUkctU1NQMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA3Ew91HKxCZ1CY0Joh3EslBzLWZPagldUqYRxEJDR +Zaz+pSZ51UkMgKmj81FZACEjCpB1rnvky6GLpa/NZMv7vAx8MirXlu7kaV6h0hCl +Qtmebe17eSsux9VvMvOBgyOMZzjQYQSiBYKZtyCPFIKryTAMxmozfRVTwOt3JpWE +tXRutkP6RRzJGYGSe5j/44Dn6MhXc+uUoQcprMqrsmItAepGYxXOWC/AZ6c9Qi+h +cysRxdyMqsRfekF38q8pxHcb+2czshxYxnxes/K7zAQfs8i+vYuvbq1LRiRTwz0p +0Bf3MmjiPYpwyGHOa/lW7vFXZu+YBtpx4B/HB6m9VvgxcQIDAQABo4IBYDCCAVww +DgYDVR0PAQH/BAQDAgEGMIGCBggrBgEFBQcBAQR2MHQwSAYIKwYBBQUHMAKGPGh0 +dHA6Ly9mdHBtLmFtZC5jb20vcGtpL2FpYS8yNjREMzlBMjNDRUI1RDVCNDlENjEw +MDQ0RUVCRDEyMTAoBggrBgEFBQcwAYYcaHR0cDovL2Z0cG0uYW1kLmNvbS9wa2kv +b2NzcDAsBgNVHR8EJTAjMCGgH6AdhhtodHRwOi8vZnRwbS5hbWQuY29tL3BraS9j +cmwwQwYDVR0gBDwwOjA4BgorBgEEAZx4ZRUKMCowKAYIKwYBBQUHAgEWHGh0dHBz +Oi8vZnRwbS5hbWQuY29tL3BraS9jcHMwHQYDVR0OBBYEFJB9Zem1YjFZl91a0Iay +t1mJV7ksMB8GA1UdIwQYMBaAFFeMVF95aVFCEiGkpXis219oL4nIMBIGA1UdEwEB +/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBADLIOVF6Wu8rI7FypvQys+T5 +joQ3TrLvNfpy1QK1R/m8VLANglZXECLpVvSs4pqopuM5yWN1NPA3nJoTRpacqDFs +zXbZ+nh5fBhBfiaF1n2jYkGafG6nSdqvWhUazK9klHyTvXRKEZEJExVXpvcN31hI +MZ/kpGhMoF90rcUzoKajM6zHZtuDT1KFd2I/NFf+yQxOGtrOP98q+RXuFfXWVBVB +a+LAmFuAHsn/Pqqiu5YdGAbVAfEPht/QEdB1+BpQ7mry7NiHi5w5z28qsQYGcgyo +K6qPRxQgHT8/CqI3Fx1C/UoHq+4TH88EMxIB9knyydVipIQZWdf5zjmxVSRmhkU= +-----END CERTIFICATE----- + + +AMD fTPM RSA ICA STFamily 1EEA5C967B0557D56AC61D4EE4DB235C +========================================================== +-----BEGIN CERTIFICATE----- +MIIE2DCCA8CgAwIBAgIQHupclnsFV9Vqxh1O5NsjXDANBgkqhkiG9w0BAQsFADB2 +MRQwEgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1 +bm55dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERl +dmljZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xNzAxMDEwNTAwMDBaFw00MjAxMDEw +NTAwMDBaMHYxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzESMBAG +A1UEBxMJU3Vubnl2YWxlMQswCQYDVQQIEwJDQTEfMB0GA1UEChMWQWR2YW5jZWQg +TWljcm8gRGV2aWNlczEPMA0GA1UEAxMGUFJHLVNUMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA6T3q1dRWVLt1a/26XhXMNb74HDe9B2p1rQ/MNCOdbta0 +gSGZYokQwEQWA7M7UpZ8UffV60/GDVHcMtaucVjkCwrySnI1Cul0cV8Wi/NYlOnK +pEy1TUmiJQnETPTP5yyoQ08wzv91hHD/uL3HRvIycpCAasoJP2Tvd80D/hTKEUtG +7wo1qjbQKk2zVBDihJB9wGms2TQ8kIJnuO782FXYe5mBUE4FlMBEQorKVPLEY/aV +DVfZJMmC1HA45eFEKg9bliVsDrAl1AdULTJvOSB8fv79klJa1usqRlZuDw94Iiko +GRegGdy+P4wCHZa63oaFfW2gwMsTtE94Awocaex67wIDAQABo4IBYDCCAVwwDgYD +VR0PAQH/BAQDAgEGMIGCBggrBgEFBQcBAQR2MHQwSAYIKwYBBQUHMAKGPGh0dHA6 +Ly9mdHBtLmFtZC5jb20vcGtpL2FpYS8yNjREMzlBMjNDRUI1RDVCNDlENjEwMDQ0 +RUVCRDEyMTAoBggrBgEFBQcwAYYcaHR0cDovL2Z0cG0uYW1kLmNvbS9wa2kvb2Nz +cDAsBgNVHR8EJTAjMCGgH6AdhhtodHRwOi8vZnRwbS5hbWQuY29tL3BraS9jcmww +QwYDVR0gBDwwOjA4BgorBgEEAZx4ZRUKMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v +ZnRwbS5hbWQuY29tL3BraS9jcHMwHQYDVR0OBBYEFJDgB+F1V0IBp6jayTsyMRSo +h+HoMB8GA1UdIwQYMBaAFFeMVF95aVFCEiGkpXis219oL4nIMBIGA1UdEwEB/wQI +MAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBAFEH+eXMomVzTr17dIOhIlJeTG+A +zFb4DhU01k0aOhpiCyS/09FJ7NOOOPfuzfGz69xpEuTbCJTwR/waVHiaYh4WWRdH +nRAphoJaFCgvleIblhweJXtbhbNZZqVn4Cu+zyXmjs5lJyidEzMexPXcUdo/05xE +NTM8MS2z/pJpxeLuvdz3FUb4iTZt2gLy3EswjxPD7QXezkRkPCf5ODNeYKjT7H3f +qX4bXuaGh6mOm9F8dQe1p28FLG7zAkqbmrokXrSrmkAvNhao2Gc3Y3IvQQw6KTPh +dGwGLQQkY5vtUKrK4kcWcvTtUQlVLAIQAnJscQgTu6Ix5oV57KSe3Cij4CA= +-----END CERTIFICATE----- + + +AMD fTPM RSA ICA ZPFamily 2BDEA5B81C045B536EE60CA3653E4B1B +========================================================== +-----BEGIN CERTIFICATE----- +MIIE2DCCA8CgAwIBAgIQK96luBwEW1Nu5gyjZT5LGzANBgkqhkiG9w0BAQsFADB2 +MRQwEgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1 +bm55dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERl +dmljZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xNzAxMDEwNTAwMDBaFw00MjAxMDEw +NTAwMDBaMHYxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzESMBAG +A1UEBxMJU3Vubnl2YWxlMQswCQYDVQQIEwJDQTEfMB0GA1UEChMWQWR2YW5jZWQg +TWljcm8gRGV2aWNlczEPMA0GA1UEAxMGUFJHLVpQMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAuCTPvBEZF+063jnTNkxbUpppwyi4E+Ckj03xf7XDHPFP +h+3q3zHvsamIXRncYM9jQHkNYDHdR9z+4oLfspBfP5o/Ks8nFvrGsL7vSHzxBJy7 +3eunsREP8Ca2TE4oaXn5hbDSBaF+kYwlrqHLE5PzVF2piShomR9mkZyRYk1l9+sb +2Nv6rpFd+eaFjLMgD2xc1BLqNGH2ICvjBDMaZ27YmcZK7gwUpfDXhipzG59JLSm4 +fJ3THFW8ZdP64zt6H1zKaQ4ou7EEHh9qs5UgKzXwEG3MzE03nMedmUzBoC26VqbI +aDGzLzO0I5kUNZlyBomkN/MamcJcvqsaal5xoDPujwIDAQABo4IBYDCCAVwwDgYD +VR0PAQH/BAQDAgEGMIGCBggrBgEFBQcBAQR2MHQwSAYIKwYBBQUHMAKGPGh0dHA6 +Ly9mdHBtLmFtZC5jb20vcGtpL2FpYS8yNjREMzlBMjNDRUI1RDVCNDlENjEwMDQ0 +RUVCRDEyMTAoBggrBgEFBQcwAYYcaHR0cDovL2Z0cG0uYW1kLmNvbS9wa2kvb2Nz +cDAsBgNVHR8EJTAjMCGgH6AdhhtodHRwOi8vZnRwbS5hbWQuY29tL3BraS9jcmww +QwYDVR0gBDwwOjA4BgorBgEEAZx4ZRUKMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v +ZnRwbS5hbWQuY29tL3BraS9jcHMwHQYDVR0OBBYEFMuz9ybnLDe/fpxs+qbvBviP +0fxMMB8GA1UdIwQYMBaAFFeMVF95aVFCEiGkpXis219oL4nIMBIGA1UdEwEB/wQI +MAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBAEvK4x3Ea5XIGTEfnjlPyvoHJgMw +uJnnyKJ02xfgAULfF6NgI5ZFsa1z+pqPhOHVTR2X4oxPeaA/TiBB7MWMYOTU8pc+ +6L8fOE+6W7q96iGNXUESiC68Nxy3cH6r3QFnfP8KJy4pTw7nF4uB+N92VZdf4PHq +cTjKGnDXw+zjuooqhq+QIjM77wvlPg8d65BT8fnnTlTWMuBkaNpkknukMM/rt6R5 +6hDehYwNiHoZejF9jPF0DXacuLhOrmUbtWyyN8I52eo72X4WYO7dd9ELXOSANndv +8RyOND5a9I6RO199XSNZHvZ4XxaD8eqcJ3Q99obAexDoR64Ri0ovbibmAFw= +-----END CERTIFICATE----- + + +AMD fTPM RSA RootCA +=================== +-----BEGIN CERTIFICATE----- +MIIEiDCCA3CgAwIBAgIQJk05ojzrXVtJ1hAETuvRITANBgkqhkiG9w0BAQsFADB2 +MRQwEgYDVQQLEwtFbmdpbmVlcmluZzELMAkGA1UEBhMCVVMxEjAQBgNVBAcTCVN1 +bm55dmFsZTELMAkGA1UECBMCQ0ExHzAdBgNVBAoTFkFkdmFuY2VkIE1pY3JvIERl +dmljZXMxDzANBgNVBAMTBkFNRFRQTTAeFw0xNDEwMjMxNDM0MzJaFw0zOTEwMjMx +NDM0MzJaMHYxFDASBgNVBAsTC0VuZ2luZWVyaW5nMQswCQYDVQQGEwJVUzESMBAG +A1UEBxMJU3Vubnl2YWxlMQswCQYDVQQIEwJDQTEfMB0GA1UEChMWQWR2YW5jZWQg +TWljcm8gRGV2aWNlczEPMA0GA1UEAxMGQU1EVFBNMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAssnOAYu5nRflQk0bVtsTFcLSAMx9odZ4Ey3n6/MA6FD7 +DECIE70RGZgaRIID0eb+dyX3znMrp1TS+lD+GJSw7yDJrKeU4it8cMLqFrqGm4SE +x/X5GBa11sTmL4i60pJ5nDo2T69OiJ+iqYzgBfYJLqHQaeSRN6bBYyn3w1H4JNzP +DNvqKHvkPfYewHjUAFJAI1dShYO8REnNCB8eeolj375nymfAAZzgA8v7zmFX/1tV +LCy7Mm6n7zndT452TB1mek9LC5LkwlnyABwaN2Q8LV4NWpIAzTgr55xbU5VvgcIp +w+/qcbYHmqL6ZzCSeE1gRKQXlsybK+W4phCtQfMgHQIDAQABo4IBEDCCAQwwDgYD +VR0PAQH/BAQDAgEGMCMGCSsGAQQBgjcVKwQWBBRXjFRfeWlRQhIhpKV4rNtfaC+J +yDAdBgNVHQ4EFgQUV4xUX3lpUUISIaSleKzbX2gvicgwDwYDVR0TAQH/BAUwAwEB +/zA4BggrBgEFBQcBAQQsMCowKAYIKwYBBQUHMAGGHGh0dHA6Ly9mdHBtLmFtZC5j +b20vcGtpL29jc3AwLAYDVR0fBCUwIzAhoB+gHYYbaHR0cDovL2Z0cG0uYW1kLmNv +bS9wa2kvY3JsMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRw +czovL2Z0cG0uYW1kLmNvbS9wa2kvY3BzMA0GCSqGSIb3DQEBCwUAA4IBAQCWB9yA +oYYIt5HRY/OqJ5LUacP6rNmsMfPUDTcahXB3iQmY8HpUoGB23lhxbq+kz3vIiGAc +UdKHlpB/epXyhABGTcJrNPMfx9akLqhI7WnMCPBbHDDDzKjjMB3Vm65PFbyuqbLu +jN/sN6kNtc4hL5r5Pr6Mze5H9WXBo2F2Oy+7+9jWMkxNrmUhoUUrF/6YsajTGPeq +7r+i6q84W2nJdd+BoQQv4sk5GeuN2j2u4k1a8DkRPsVPc2I9QTtbzekchTK1GCXW +ki3DKGkZUEuaoaa60Kgw55Q5rt1eK7HKEG5npmR8aEod7BDLWy4CMTNAWR5iabCW +/KX28JbJL6Phau9j +-----END CERTIFICATE----- + + +Atmel Signing Module 01 +======================= +-----BEGIN CERTIFICATE----- +MIIDEjCCArmgAwIBAgIUWZRTybphJ0L8eMcF+mnAEpwxmMkwCgYIKoZIzj0EAwIw +czELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRkwFwYDVQQHExBDb2xv +cmFkbyBTcHJpbmdzMQ4wDAYDVQQKEwVBdG1lbDEmMCQGA1UEAxMdQXRtZWwgVFBN +IFJvb3QgU2lnbmluZyBNb2R1bGUwHhcNMTEwMTAxMDAwMDAwWhcNMzEwMTAxMDAw +MDAwWjBtMQswCQYDVQQGEwJVUzERMA8GA1UECBMIQ29sb3JhZG8xGTAXBgNVBAcT +EENvbG9yYWRvIFNwcmluZ3MxDjAMBgNVBAoTBUF0bWVsMSAwHgYDVQQDExdBdG1l +bCBTaWduaW5nIE1vZHVsZSAwMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAOWvuMl7bm1JxiT8+2VY1rKRoXuU6/QYa1kPUDnw6FZZJovrYNhqnPagPUd/ +VoYohJirkN/uFyLzvlxRa1Qr/vGLhJwSCLuOhRF9SwRuy51CW5IAFdKcxzFjoIS4 +QyBnBoP+pDvXx/uynMH8DWofmS5H234rN3JtPUZThvEUqvC8ivGXNO0B9jOy//Dx +Z0UUOTJwIFu77pPIfzOtk08vsg1blpf454d76yoFTKDsi/4jNxHRRyFfq/5STiPx +0QJZIngkRoidZCSOLUKVF4i/rStogdcgMZ6nEkM1lsZTbrurAFFdrSPqjFTNqOnk +9X/zDO/m+J5srga3TiDuXb03pO8CAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBT3YaOh9AjxCQeXuHEnwqI5fArKJDAfBgNVHSMEGDAWgBQx0F0Qba/k +7RndCq/TW+oio3gcVzASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMCA0cA +MEQCIFEnpOFkOJnm2Occa/pRpqIO+xMWna+3GHQ7hdak1oS5AiBdjJ9CEBMWRgNd +MXeyfubNfOA9rcIsxM18ODwiXw6WcQ== +-----END CERTIFICATE----- + + +Atmel Signing Module 02 +======================= +-----BEGIN CERTIFICATE----- +MIIDEzCCArmgAwIBAgIUVxemUjurjw1OiJWUZ3lLwvPhRJQwCgYIKoZIzj0EAwIw +czELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRkwFwYDVQQHExBDb2xv +cmFkbyBTcHJpbmdzMQ4wDAYDVQQKEwVBdG1lbDEmMCQGA1UEAxMdQXRtZWwgVFBN +IFJvb3QgU2lnbmluZyBNb2R1bGUwHhcNMTEwMTAxMDAwMDAwWhcNMzEwMTAxMDAw +MDAwWjBtMQswCQYDVQQGEwJVUzERMA8GA1UECBMIQ29sb3JhZG8xGTAXBgNVBAcT +EENvbG9yYWRvIFNwcmluZ3MxDjAMBgNVBAoTBUF0bWVsMSAwHgYDVQQDExdBdG1l +bCBTaWduaW5nIE1vZHVsZSAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAOnv6DDMr+zT5TSqPQO5bMCQ5BNeC2RkrCokcs8iXtqhwqAcLGRKt0FdsOHb +nJ4HDsrEWnMw3fApLvWd99nW4vU6ukWWqZP3i+5nARf1wTbu1n7dzw0U87PIKTN8 +RR6OffjgI3msd0xPMkej4YoqaeNriPX9fOL0LIMMxFjc+pDFD+ZsHtx5vcvEZU86 +6SQLVbVvcOy5qEnjhx4M7BBhvauRdj5GOl9BbfXg0GiDpU6H5Eh87xtlS7/DCSDT +I516z57xfHaht/JcwCLw3ySisROTI2NmqBXNXXyEkA7+LGMdNm+o8Hw5fKRQq8As +x+3FpiBNIQ9gVdi6bq1EU4vpJDECAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSBtdmcv6yYxdYajr8mqGoIa/o+zjAfBgNVHSMEGDAWgBQx0F0Qba/k +7RndCq/TW+oio3gcVzASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMCA0gA +MEUCIGtXLUfjDHdNbmtLSjuamOhml4OIvINSUdwUHBfSAiJ/AiEAzBUigNgggA9s +jAoDiVeUXqT5N097WlQjGPlhO4exl3M= +-----END CERTIFICATE----- + + +Atmel Signing Module 03 +======================= +-----BEGIN CERTIFICATE----- +MIIDEjCCArmgAwIBAgIUaEzk01H7UPLd9cdjrm8SGNM5dQYwCgYIKoZIzj0EAwIw +czELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRkwFwYDVQQHExBDb2xv +cmFkbyBTcHJpbmdzMQ4wDAYDVQQKEwVBdG1lbDEmMCQGA1UEAxMdQXRtZWwgVFBN +IFJvb3QgU2lnbmluZyBNb2R1bGUwHhcNMTEwMTAxMDAwMDAwWhcNMzEwMTAxMDAw +MDAwWjBtMQswCQYDVQQGEwJVUzERMA8GA1UECBMIQ29sb3JhZG8xGTAXBgNVBAcT +EENvbG9yYWRvIFNwcmluZ3MxDjAMBgNVBAoTBUF0bWVsMSAwHgYDVQQDExdBdG1l +bCBTaWduaW5nIE1vZHVsZSAwMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAJhQFAEyf/MSHrhVtGijWXMArQywzkKBiHs/rIOuBJifqxCjR3z0I+3nt1MY +gEVqC75qzMDGRR11bh2+kOkFAR9jplGX4XAV5veGW16xUMg8aLEd5VPiWbuSStF+ ++pGQELYgSNv1JCTLdMUVJtT+6SJyp6pPR2MNh6cKwmGSCO/EdjfG3xiQFzqc9aDq +SO41R3sLSWP4Lp9Y4F7jsDVvtaLg2lKwf/LfZtJb7KHqnbqtDYb5eAC+pMVRaeLE +l94BbkjkXGxT+Ibu1DCcuoOfXW7IKbpW5bXdvhw6sRGuFTzntyJQuIlLKNPdb6vl +ePU4WDmdE1xY5NXTXXExbitjvJECAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTNNAGsbhxvk93YadRqUYMRs3R4lTAfBgNVHSMEGDAWgBQx0F0Qba/k +7RndCq/TW+oio3gcVzASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMCA0cA +MEQCIAikYRQQ9utw0dyX9nMT5hCCqRIWshNyzwJ7ixSDJFKzAiBHE2YmS4ilCQuO +JuTeDJYWPWyfb5Cl3JwXdDNlaM3vvw== +-----END CERTIFICATE----- + + +Atmel Signing Module 04 +======================= +-----BEGIN CERTIFICATE----- +MIIDEzCCArmgAwIBAgIUa3uAQUxkKpWg/Y7HTiCoypgW74IwCgYIKoZIzj0EAwIw +czELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRkwFwYDVQQHExBDb2xv +cmFkbyBTcHJpbmdzMQ4wDAYDVQQKEwVBdG1lbDEmMCQGA1UEAxMdQXRtZWwgVFBN +IFJvb3QgU2lnbmluZyBNb2R1bGUwHhcNMTEwMTAxMDAwMDAwWhcNMzEwMTAxMDAw +MDAwWjBtMQswCQYDVQQGEwJVUzERMA8GA1UECBMIQ29sb3JhZG8xGTAXBgNVBAcT +EENvbG9yYWRvIFNwcmluZ3MxDjAMBgNVBAoTBUF0bWVsMSAwHgYDVQQDExdBdG1l +bCBTaWduaW5nIE1vZHVsZSAwNDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMbZdbGpbv9kl3qghjLWnNBjAqsekHoeCra74j3xlXTm5LLshkTz7mltuf6G +DRi5X9sf5A5ZJwdnmRTIlvKLSl1fsTudLhXMaEx12dcJzA/MegoDNM9I9w0OXdHr +ubEUQ3exh2BKbrzI9MfKYJGZPgvlMdoVpY/MRIhAx/KucMj+QF/dhpKaFAC9HuL1 +Fe/3AhAXLCzrPDquqys5ooPNpLA4i/05//E7bEplAME/xczP4Iu/cdA9YR7V8izh +TwyKzst3d3M+UDDkkiwxxo5qGgwRdPq3AUSQglNogbXyDAXryTtSAVJo/xIHqx1l +mn+aTTSQC+tngHnmlipuTml+m1UCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSghUvRl/ghL6y6OJkb/dv10TzpzjAfBgNVHSMEGDAWgBQx0F0Qba/k +7RndCq/TW+oio3gcVzASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMCA0gA +MEUCIQC/qQV5ZAFBIoKvCDKNfIeimdZJHWhlLNxRDJs6VIfR+AIgQdLz5oU0ZWix +17vP0kgii5i1CmLfjvOeajfa8SXD8tI= +-----END CERTIFICATE----- + + +Atmel Signing Module 05 +======================= +-----BEGIN CERTIFICATE----- +MIIDEzCCArmgAwIBAgIUSU3KWn2tz8G9sFtsBnlCUIXlQNAwCgYIKoZIzj0EAwIw +czELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRkwFwYDVQQHExBDb2xv +cmFkbyBTcHJpbmdzMQ4wDAYDVQQKEwVBdG1lbDEmMCQGA1UEAxMdQXRtZWwgVFBN +IFJvb3QgU2lnbmluZyBNb2R1bGUwHhcNMTEwMTAxMDAwMDAwWhcNMzEwMTAxMDAw +MDAwWjBtMQswCQYDVQQGEwJVUzERMA8GA1UECBMIQ29sb3JhZG8xGTAXBgNVBAcT +EENvbG9yYWRvIFNwcmluZ3MxDjAMBgNVBAoTBUF0bWVsMSAwHgYDVQQDExdBdG1l +bCBTaWduaW5nIE1vZHVsZSAwNTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAKoNRY4TkPxrKoFC/lkgXH2K94ZMcZdRAWgiKoqJXNUeU5mWm2h6AlCCZocF +3xRoRb4WayNAHBKiGADS4GNK4r5+Ier1fq68LcTNV+1/IZk/gHb8S9qfZTgqe1za +UNkcPqP9iYbgUlL/qKVuyusD7psFKcuIC/nQKM2cgY2p+QqPbD+WId5HRt/ns0bH +8X9wp0u+jYYx4JSvQFlHTNXOphRqkz/n1Pckk6aGm65w1MyHHnbuTrDGWuS9S3iy +h66q2zN2/feWlPUT6yEKDt8fgUmrvQG9HeteM6Q9E3lsIwU+2OayINeGyMew4gPu +JBkROXx2baXUlqYCZpZHDm0knb0CAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTW9W7Pz37dt/2H7QHhJ+4AmkY7yTAfBgNVHSMEGDAWgBQx0F0Qba/k +7RndCq/TW+oio3gcVzASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMCA0gA +MEUCIQCDW3rnSU5hck1n9vfuxl6IiY/wlDDs0P/qHjWXPa9k/AIgeR1Y4NGdhzgW +NwHWGepWPddzcD/UxQ9I63ZJDqYHeYg= +-----END CERTIFICATE----- + + +Atmel Signing Module 11 +======================= +-----BEGIN CERTIFICATE----- +MIIDEzCCArmgAwIBAgIUbxTqjeOwQnxp4/enilmqXAQCYkkwCgYIKoZIzj0EAwIw +czELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRkwFwYDVQQHExBDb2xv +cmFkbyBTcHJpbmdzMQ4wDAYDVQQKEwVBdG1lbDEmMCQGA1UEAxMdQXRtZWwgVFBN +IFJvb3QgU2lnbmluZyBNb2R1bGUwHhcNMTEwMTAxMDAwMDAwWhcNMzEwMTAxMDAw +MDAwWjBtMQswCQYDVQQGEwJVUzERMA8GA1UECBMIQ29sb3JhZG8xGTAXBgNVBAcT +EENvbG9yYWRvIFNwcmluZ3MxDjAMBgNVBAoTBUF0bWVsMSAwHgYDVQQDExdBdG1l +bCBTaWduaW5nIE1vZHVsZSAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMPbPcpKYMx9QYq8/CVZh3P41zUmhbA0GDPYXEt+ddz+2q0vq/5rrJlKn3cm +2PxkPPmKgAOiGavsZRme1lBJsb6Px5Z5vxUI93qWRg967gKZvvHS1eB77OEY2Qkv +HH6ZEWcoIfp0Xa2d2gMGUY0G4b5fJgCTkNkafQDWmTM2I63u2nZLqiBQ2vN5yoJ+ +F5DCH7fjLYTr3DGJmbUi+uILwDWez4q8gdnDIUvtMgDBivzqptBCyEZPMKgEf5d7 +cUVcaEBKgPXwZNm7xjYlr2vdnIcQi6RF/fgnGVr1Hh+lKeWthA8cPAYMRNC+rKoy +DVp9rjdMe45SsrIPlxMqO6lKTEUCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBRGZt52YgTnTdKbtP3FhSOhQD1qMjAfBgNVHSMEGDAWgBQx0F0Qba/k +7RndCq/TW+oio3gcVzASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMCA0gA +MEUCIDHF6nImxBvotQNGm8a+izHSkadrP+qlSHHUlk4Mrv75AiEA3p0ecSdX0hM3 +701WulPqT7V9Fvb1r+VEpvQBiJEzvHM= +-----END CERTIFICATE----- + + +Atmel Signing Module 20 +======================= +-----BEGIN CERTIFICATE----- +MIIDEjCCArmgAwIBAgIUdbpNMUXEGTxeQxEIRMR8jFViQfMwCgYIKoZIzj0EAwIw +czELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRkwFwYDVQQHExBDb2xv +cmFkbyBTcHJpbmdzMQ4wDAYDVQQKEwVBdG1lbDEmMCQGA1UEAxMdQXRtZWwgVFBN +IFJvb3QgU2lnbmluZyBNb2R1bGUwHhcNMTEwMTAxMDAwMDAwWhcNMzEwMTAxMDAw +MDAwWjBtMQswCQYDVQQGEwJVUzERMA8GA1UECBMIQ29sb3JhZG8xGTAXBgNVBAcT +EENvbG9yYWRvIFNwcmluZ3MxDjAMBgNVBAoTBUF0bWVsMSAwHgYDVQQDExdBdG1l +bCBTaWduaW5nIE1vZHVsZSAyMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAJWEXww92zCQe8OhZfins6CGhJM8/tlQnhfL96IbDZ0igoHMfLpO0nsqedGx +LSwerzs8IHDOVoxSLSsmC2Wh7T+N6t4h7LyEowBjXGBnENzazOImuqXNoHla2rqZ +XT03UBTkI8HftD/0Nv0TG1mOoPrG4yA7SLRHNb4X+myN04p0/mxscV3UfQeqloCz +XPx99cLATTdpz79SuMBPDFnwFe4XCtjaCHNcxhGPiIlj7V0ruPM5r0tpcSllmLoh +wcAreZ7P1OzPF0o5Go+0m4Q9NsisIjGr7u0jAHHklljAboY4Jvf83zADyjvcHkIs +VQnrl7KQcnn7HpD7pOaIW1jkv28CAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTgAo2HzmxnqHUcxLXXT1diLnXkKjAfBgNVHSMEGDAWgBQx0F0Qba/k +7RndCq/TW+oio3gcVzASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMCA0cA +MEQCIENnp5oVvHCerJeUTpl6TLgzZmOr1erz5miO4o0lFrxlAiAyIt7Bc3G26GjR +0y5/4fUicKo9xnhXKNxFZFyXc6gaJw== +-----END CERTIFICATE----- + + +Atmel Signing Module 21 +======================= +-----BEGIN CERTIFICATE----- +MIIDEzCCArmgAwIBAgIUUMytw8rGzN8RC77Wdf03M/PTMeAwCgYIKoZIzj0EAwIw +czELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRkwFwYDVQQHExBDb2xv +cmFkbyBTcHJpbmdzMQ4wDAYDVQQKEwVBdG1lbDEmMCQGA1UEAxMdQXRtZWwgVFBN +IFJvb3QgU2lnbmluZyBNb2R1bGUwHhcNMTEwMTAxMDAwMDAwWhcNMzEwMTAxMDAw +MDAwWjBtMQswCQYDVQQGEwJVUzERMA8GA1UECBMIQ29sb3JhZG8xGTAXBgNVBAcT +EENvbG9yYWRvIFNwcmluZ3MxDjAMBgNVBAoTBUF0bWVsMSAwHgYDVQQDExdBdG1l +bCBTaWduaW5nIE1vZHVsZSAyMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMpV2oOCZs6KmkyvHgnEow0jhkXK1/CCv3wWsIBFigID8v8rvvBRl1ytdFw3 +iNX5pQHnw6+9+PQp/r/f8vjH31yHbigqkeWT/TNfnwZO5OZeMdkngvTXyDBvnNMi +eptZBJrEjdOJ5SpPH6KOeC+w2PipI34ehD8cs8bDA6qk6zInwU4RdpKqOSlAQ3QY +yJDlB9XWy1hoxIFKSqHArtjONVO45o06GrZAPnd1fj8kEReP5SZE2Ir+ictWZdaq +RJC70dKiq86B5Doo+8waUP+OgdgVtaQEY1OwCKdzbX0uUxy+fZqV8abso+stodMM +TVUZD2aZ1QNGVh4M/SeE3CIADT8CAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBQtYFzYgrK9cWzOcckLx3TT1byx1DAfBgNVHSMEGDAWgBQx0F0Qba/k +7RndCq/TW+oio3gcVzASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMCA0gA +MEUCIQDoOiYGiPcrHJjH2Kb7Wmqvesv9CXaDekyjMbKjCKBgsgIgW0qsMympS+Rk +GzxdH7cnLlwmB+hArEf+9S8nETRHY0M= +-----END CERTIFICATE----- + + +Atmel Signing Module 22 +======================= +-----BEGIN CERTIFICATE----- +MIIDEzCCArmgAwIBAgIUXdnnM6tgfyJOezwERoiMm2102wQwCgYIKoZIzj0EAwIw +czELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRkwFwYDVQQHExBDb2xv +cmFkbyBTcHJpbmdzMQ4wDAYDVQQKEwVBdG1lbDEmMCQGA1UEAxMdQXRtZWwgVFBN +IFJvb3QgU2lnbmluZyBNb2R1bGUwHhcNMTEwMTAxMDAwMDAwWhcNMzEwMTAxMDAw +MDAwWjBtMQswCQYDVQQGEwJVUzERMA8GA1UECBMIQ29sb3JhZG8xGTAXBgNVBAcT +EENvbG9yYWRvIFNwcmluZ3MxDjAMBgNVBAoTBUF0bWVsMSAwHgYDVQQDExdBdG1l +bCBTaWduaW5nIE1vZHVsZSAyMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMWtFwSJQY/beW2AfNQnmppVdyN602rYYMlJ9lS+/8J4NryucewQd2tcI17e +ZP7sEfzObXyAzko7oP0nQ301pGUXvNiI/6GCTsrXKxcxM6LiGVQO7f7inV80cM+3 +Weiz5zVZKfBollAwg6UzTZp74nmXI6qH2ow3HNBAu9tDU/jappACXdKmDLPouEwN +qJtgti8aZKvmHSadqSTggkKrgsJi1wfDsa3XY1+EFuZh84oMeH2pwvxiXF7kUD16 +i67h2ZVplKlO0pesmRJbiLR2wa4uAcQ90O3lx9LDN62RlAi695TD14xrH6aIGU+M +y69O+UCMbcHuTlKZ7JVOtXN+FwcCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBQ1ruc2ybTShhMJ54FcD6TOQNhl9jAfBgNVHSMEGDAWgBQx0F0Qba/k +7RndCq/TW+oio3gcVzASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMCA0gA +MEUCIQDcUaA0rdKJWzumgJ0hevRoj0b3PWThtplRdhhS2QGotAIgF0ZXSGWMQswQ +UvwooDAveOY2Mh147/Px5XZR47nfDpI= +-----END CERTIFICATE----- + + +Atmel Signing Module 23 +======================= +-----BEGIN CERTIFICATE----- +MIIDFDCCArmgAwIBAgIUQwWvul0AgI+EMR5YMnHQ6UcNhcgwCgYIKoZIzj0EAwIw +czELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRkwFwYDVQQHExBDb2xv +cmFkbyBTcHJpbmdzMQ4wDAYDVQQKEwVBdG1lbDEmMCQGA1UEAxMdQXRtZWwgVFBN +IFJvb3QgU2lnbmluZyBNb2R1bGUwHhcNMTEwMTAxMDAwMDAwWhcNMzEwMTAxMDAw +MDAwWjBtMQswCQYDVQQGEwJVUzERMA8GA1UECBMIQ29sb3JhZG8xGTAXBgNVBAcT +EENvbG9yYWRvIFNwcmluZ3MxDjAMBgNVBAoTBUF0bWVsMSAwHgYDVQQDExdBdG1l +bCBTaWduaW5nIE1vZHVsZSAyMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBANRxHgp/Nq/Fa4OuIaML7bP9mI+crl4RL+xcFGiEqO62BZwG7LcjFRjbC9uK +3kVu2oso+uYhxKI8dQmq9yZbvIWH06omoBZhCv6nvHqxGrcIOYxUNBnSt2vU8O54 +WGY46XvfLEYy/w0JSOTYigpTxeGTaiONfDBps5jzf0DcUZyiQK+S0xPBWQjEoZuV +fXoHu9qC4+FXz7s9vX0CwWViQNvjVMuoAqXFEoXoxn5vQ0xgZNJt8K7qsl7sysye +FNF6OZ06qe2VfyS20lp0ycbO9oWeA9Z24tKWj0IHCuRWGyMENVrhKTeUDH4pbAGR +W6JEJ0Gvo19kc5XqGtJlEVRJxk0CAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBRV9No5ymW2aB8rdxG8PvIIqGedHjAfBgNVHSMEGDAWgBQx0F0Qba/k +7RndCq/TW+oio3gcVzASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMCA0kA +MEYCIQDcDy9hL5tv2dnKG5F0QAUDyPjFpM2oXT+7+65lhXEZVQIhAM8nWy0r2RPn +/it+ZY4TUGbji7rKab2tAC6YcagHvFiw +-----END CERTIFICATE----- + + +Atmel Signing Module 24 +======================= +-----BEGIN CERTIFICATE----- +MIIDEjCCArmgAwIBAgIUUkbrM0nja86+VltbnRvVSPQKYe0wCgYIKoZIzj0EAwIw +czELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRkwFwYDVQQHExBDb2xv +cmFkbyBTcHJpbmdzMQ4wDAYDVQQKEwVBdG1lbDEmMCQGA1UEAxMdQXRtZWwgVFBN +IFJvb3QgU2lnbmluZyBNb2R1bGUwHhcNMTEwMTAxMDAwMDAwWhcNMzEwMTAxMDAw +MDAwWjBtMQswCQYDVQQGEwJVUzERMA8GA1UECBMIQ29sb3JhZG8xGTAXBgNVBAcT +EENvbG9yYWRvIFNwcmluZ3MxDjAMBgNVBAoTBUF0bWVsMSAwHgYDVQQDExdBdG1l +bCBTaWduaW5nIE1vZHVsZSAyNDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAKq0tRItVby8VWFjb/7N+WmJh2uTDp70Mm4Fv4tV7iDWbj0KmDcNNsK1kQOX +n7drbPhZCQ728+nnbah99Ao8fqZhPTr6LWOzu626K7s9ltj6XENP4py1IsTYqvwP +IIikViWkzbIhelSzRFhHubH963uvgv2UFH8LqTOem1NCayDMRIKfEghYLkLDcHKt +rcba9bo4F+DzegznregXK06bGL8SoUD2y/035f5DKmFc6qsqwRoJIPPthUcTum1U +iQsK8qwN+2cJICZd5P6om0xc8CVXyZxmk+ey/01FSUcAA7VTfqCRXEGpkezelSLq +Ice36e1PLfJ6yoWaSMCuNOYSxNcCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBQWs0Hjgc1cPnmayDjKF/H38/dDHjAfBgNVHSMEGDAWgBQx0F0Qba/k +7RndCq/TW+oio3gcVzASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMCA0cA +MEQCIDyZXKar+bsQIZHVGtcTLpMqi35eoF7pqjOhFIv1FHZ6AiBrBZyelmYzR2i3 +3IYua7i/IisumKWp5EQZFAQkOXZZYA== +-----END CERTIFICATE----- + + +Atmel Signing Module 25 +======================= +-----BEGIN CERTIFICATE----- +MIIDFDCCArmgAwIBAgIUV0h4consbzOZTBM8CEnTXqqohHwwCgYIKoZIzj0EAwIw +czELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRkwFwYDVQQHExBDb2xv +cmFkbyBTcHJpbmdzMQ4wDAYDVQQKEwVBdG1lbDEmMCQGA1UEAxMdQXRtZWwgVFBN +IFJvb3QgU2lnbmluZyBNb2R1bGUwHhcNMTEwMTAxMDAwMDAwWhcNMzEwMTAxMDAw +MDAwWjBtMQswCQYDVQQGEwJVUzERMA8GA1UECBMIQ29sb3JhZG8xGTAXBgNVBAcT +EENvbG9yYWRvIFNwcmluZ3MxDjAMBgNVBAoTBUF0bWVsMSAwHgYDVQQDExdBdG1l +bCBTaWduaW5nIE1vZHVsZSAyNTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBANUeH1QW1CO7bGkbktFbx04qLmey/xwKJByLKM3iymporLZ6AjSjMs+NKcBn +pyvJdF57yb3qAJU/t7WyppnqO4kdUD9vLITfIIJzmx2aQTdnD4skodAPLmCBF2N7 +CTKzWf4djDG42A9p1Mq3labo/psrUm75gdXqnI/aeCQWNWqsFwa5tA6sWVybFTQZ +Iye3PZBct83vMnHExSsf8F3u7zx4KFigO0S7TNov6aSXUIE/yLmzq4WU8lj6by0A +6TX9Kf0g5gcsN/0c4pzxZcVJgHgc70w8DO4xLGSFEBg2SAYYnyuOVSy60Ig00zi/ +HlcPQ/B9M5/ACbu3BfcPaGEI+n0CAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBQndjHQWfp6lVP7Wd/W6FvBIjAP8DAfBgNVHSMEGDAWgBQx0F0Qba/k +7RndCq/TW+oio3gcVzASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMCA0kA +MEYCIQCHfFzFzq1oxXvOHV7Pfv+NN/BF+TEJ/NS7gkhmXvqCuAIhAKN6WGiht+ZX +0q0wktHHVdePVJ7vxsw42t/0oqu1je0B +-----END CERTIFICATE----- + + +Atmel TPM Root Signing Module +============================= +-----BEGIN CERTIFICATE----- +MIICKzCCAdCgAwIBAgIUcD8hGhUZbtWr/R0SMo4rBkmgVHgwCgYIKoZIzj0EAwIw +czELMAkGA1UEBhMCVVMxETAPBgNVBAgTCENvbG9yYWRvMRkwFwYDVQQHExBDb2xv +cmFkbyBTcHJpbmdzMQ4wDAYDVQQKEwVBdG1lbDEmMCQGA1UEAxMdQXRtZWwgVFBN +IFJvb3QgU2lnbmluZyBNb2R1bGUwHhcNMTAxMjMxMDAwMDAwWhcNNDAxMjMxMDAw +MDAwWjBzMQswCQYDVQQGEwJVUzERMA8GA1UECBMIQ29sb3JhZG8xGTAXBgNVBAcT +EENvbG9yYWRvIFNwcmluZ3MxDjAMBgNVBAoTBUF0bWVsMSYwJAYDVQQDEx1BdG1l +bCBUUE0gUm9vdCBTaWduaW5nIE1vZHVsZTBZMBMGByqGSM49AgEGCCqGSM49AwEH +A0IABH2Mc2ZzwulHWuF8a+EMpey51ZrMiF78oQywMFzGCmV4CmfpSQVpJqw23np8 +QveCQOt7n/zsBMRsqk1bsAfYKwqjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB +Af8EBTADAQH/MB0GA1UdDgQWBBQx0F0Qba/k7RndCq/TW+oio3gcVzAKBggqhkjO +PQQDAgNJADBGAiEAyNu4sBDbRURcVGhKysdHGYidk5H2Bia+yo5mDryJ3hMCIQCs +lDkUE4T1jHHwzSxca6KCXzgtpyui78G742CdYm9W5Q== +-----END CERTIFICATE----- + + +BXTEPIDA0PROD EK Platform Public Key +==================================== +-----BEGIN CERTIFICATE----- +MIIDwDCCA2agAwIBAgIUJrmq4T0WF+KN0GBFY1nQZekcmZYwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTUw +OTE4MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBlzELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xMTAvBgNVBAsMKFRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIEJYVF9F +UElEX0EwX1BST0QxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wWTATBgcqhkjOPQIB +BggqhkjOPQMBBwNCAATlW6lYkjRqfJcDgYYIF4Aj+5grglb5Rndr70jShDj4cDRL +SNkToyuHhQIEmsa+gd3r3bH9kVb83Jzj7nrhrlKMo4IBnDCCAZgwHwYDVR0jBBgw +FoAU6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYEFLmel5quSHdOou/Km/mt +WwQEDcEKMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMBMGA1Ud +JQEB/wQJMAcGBWeBBQgBMHAGA1UdIAEB/wRmMGQwYgYKKoZIhvhNAQUCATBUMFIG +CCsGAQUFBwIBFkZodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JM +L2VrY2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMFwGCCsGAQUFBwEBBFAw +TjBMBggrBgEFBQcwAoZAaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50 +L0NSTC9la2NlcnQvRUtSb290UHVibGljS2V5LmNlcjBNBgNVHR8ERjBEMEKgQKA+ +hjxodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9F +S19QbGF0Zm9ybS5jcmwwCgYIKoZIzj0EAwIDSAAwRQIhAOTeL3SQOpcJcUfg4ZAJ +L0lK7kiLrx98zD5PcAYOof0OAiBy6x20LwfMKNQc2fQecc9NHDiYqzowUIHXldhz +/m86tA== +-----END CERTIFICATE----- + + +BXTEPIDPROD EK Platform Public Key +================================== +-----BEGIN CERTIFICATE----- +MIIDvTCCA2OgAwIBAgIUNY8XaQcdQQmxADTKueN39ZzWIXswCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTUw +MzE5MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBlDELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xLjAsBgNVBAsMJVRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIEJYVF9F +UElEX1BST0QxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAAQblrtMsCNzHUAZTZ6vQGJjMWlS73/DhZ98HaEb/8HDDwm9CdOA +IjTYsRcZKDnLufP0tiTqAZ7H38RJx4/K6nu6o4IBnDCCAZgwHwYDVR0jBBgwFoAU +6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYEFDFzTW+K6pE6CjEYC3hcwGMI +lMx7MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMBMGA1UdJQEB +/wQJMAcGBWeBBQgBMHAGA1UdIAEB/wRmMGQwYgYKKoZIhvhNAQUCATBUMFIGCCsG +AQUFBwIBFkZodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2Vr +Y2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMFwGCCsGAQUFBwEBBFAwTjBM +BggrBgEFBQcwAoZAaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NS +TC9la2NlcnQvRUtSb290UHVibGljS2V5LmNlcjBNBgNVHR8ERjBEMEKgQKA+hjxo +dHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS19Q +bGF0Zm9ybS5jcmwwCgYIKoZIzj0EAwIDSAAwRQIgZgs69p123xjRxvnkZ03i2gNw +FAVq0i0YUGQifKr8BygCIQC7ldmSv4N2yejCvlM1Bl0q9X0ZHiTk5avr35/JYJMn +WA== +-----END CERTIFICATE----- + + +BXT EPID A0 PROD RK 0 +===================== +-----BEGIN CERTIFICATE----- +MIIDxTCCA2ugAwIBAgIUGIWdGeQ7GqOClckr+/OQPqXezKQwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTUw +OTE4MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBnDELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xNjA0BgNVBAsMLVRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIEJYVF9F +UElEX0EwX1BST0RfUktfMDEWMBQGA1UEAwwNd3d3LmludGVsLmNvbTBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABJntoU9et71cNVj1/QhhSd7YIWdJIBbN9OOfo1b/ +ySHC4oaXDypNoWWryX/YX0a35ySUW7nBo9hXJ6ZZ6bysCFSjggGcMIIBmDAfBgNV +HSMEGDAWgBToUgXCT9jS1aUhRxa2zgx7W7p3DzAdBgNVHQ4EFgQU1zz+Wp4BgIAR +gaFETeNu+/iLoW4wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYw +EwYDVR0lAQH/BAkwBwYFZ4EFCAEwcAYDVR0gAQH/BGYwZDBiBgoqhkiG+E0BBQIB +MFQwUgYIKwYBBQUHAgEWRmh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20vY29udGVu +dC9DUkwvZWtjZXJ0L0VLY2VydFBvbGljeVN0YXRlbWVudC5wZGYwXAYIKwYBBQUH +AQEEUDBOMEwGCCsGAQUFBzAChkBodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2Nv +bnRlbnQvQ1JML2VrY2VydC9FS1Jvb3RQdWJsaWNLZXkuY2VyME0GA1UdHwRGMEQw +QqBAoD6GPGh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20vY29udGVudC9DUkwvZWtj +ZXJ0L0VLX1BsYXRmb3JtLmNybDAKBggqhkjOPQQDAgNIADBFAiEAwaHTAqCWvTbG +VJOELR/gWmyM+gbAvLxhgxs/16kz9KQCIAU21IF1QZwJS1j0+X2cMWINm6tDj+1w +473Z2vx0JxZI +-----END CERTIFICATE----- + + +BXT EPID A0 TEST RK 0 +===================== +-----BEGIN CERTIFICATE----- +MIIDxjCCA2ugAwIBAgIUWKo1AFwaYLTyc9BRshwgTyQC4DUwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTUw +OTE4MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBnDELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xNjA0BgNVBAsMLVRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIEJYVF9F +UElEX0EwX1RFU1RfUktfMDEWMBQGA1UEAwwNd3d3LmludGVsLmNvbTBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABNsUeT+lNMvpewq8JB1WrgPtcG5u2uLdSsEOYQrC +FL5yGN1Qyz+nZ0j7a0GblIsxWB6vDDOQ+ByY0lCpTuq/WN2jggGcMIIBmDAfBgNV +HSMEGDAWgBToUgXCT9jS1aUhRxa2zgx7W7p3DzAdBgNVHQ4EFgQUFLjnE3+plSbE +cX36iBskk2u8a9AwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYw +EwYDVR0lAQH/BAkwBwYFZ4EFCAEwcAYDVR0gAQH/BGYwZDBiBgoqhkiG+E0BBQIB +MFQwUgYIKwYBBQUHAgEWRmh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20vY29udGVu +dC9DUkwvZWtjZXJ0L0VLY2VydFBvbGljeVN0YXRlbWVudC5wZGYwXAYIKwYBBQUH +AQEEUDBOMEwGCCsGAQUFBzAChkBodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2Nv +bnRlbnQvQ1JML2VrY2VydC9FS1Jvb3RQdWJsaWNLZXkuY2VyME0GA1UdHwRGMEQw +QqBAoD6GPGh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20vY29udGVudC9DUkwvZWtj +ZXJ0L0VLX1BsYXRmb3JtLmNybDAKBggqhkjOPQQDAgNJADBGAiEAmcHDePxSjZrw +TRQT/UzIvjJbpEcWcSW/wdJGs3DFoRACIQDBcehub2+ysFpZ8TnoZ3c8d0AcPVC4 +6hfaQ1ej3zKk0Q== +-----END CERTIFICATE----- + + +CHVEPIDPROD EK Platform Public Key +================================== +-----BEGIN CERTIFICATE----- +MIIDvTCCA2OgAwIBAgIUMoXQN7fpvlMh+EaakFHIPEncyIEwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTQw +ODIyMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBlDELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xLjAsBgNVBAsMJVRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIENIVl9F +UElEX1BST0QxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAARV46h+ExRcpu1wKs5TPMCB68LT07TgFz5gl96xCRDe/ezW0PEB +6gpJelw06KCONPrlgiBuAzlBPm1HXgBiTGXDo4IBnDCCAZgwHwYDVR0jBBgwFoAU +6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYEFA+ntJUEgSYSDhJzFgZ3bz1o +oDfAMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMBMGA1UdJQEB +/wQJMAcGBWeBBQgBMHAGA1UdIAEB/wRmMGQwYgYKKoZIhvhNAQUCATBUMFIGCCsG +AQUFBwIBFkZodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2Vr +Y2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMFwGCCsGAQUFBwEBBFAwTjBM +BggrBgEFBQcwAoZAaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NS +TC9la2NlcnQvRUtSb290UHVibGljS2V5LmNlcjBNBgNVHR8ERjBEMEKgQKA+hjxo +dHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS19Q +bGF0Zm9ybS5jcmwwCgYIKoZIzj0EAwIDSAAwRQIhAOCv9lgVGKQjhwKbXmyjRac5 +PPxL6tFKlwuw19AijVaUAiBFM7VCxiZh2CZoCAYd95CU+Qi1UhglyV5v9LN2uGXp +jg== +-----END CERTIFICATE----- + + +CLPEPIDPROD EK Platform Public Key +================================== +-----BEGIN CERTIFICATE----- +MIIDvDCCA2OgAwIBAgIUXaavSNGtxrLKxvmH7yH49yMw2AowCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTQw +MjA2MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBlDELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xLjAsBgNVBAsMJVRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIENMUF9F +UElEX1BST0QxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAAQJMoQnAKAb2Pf0c+1FIBq973Jobw1Xyi7lGiGOxN4XJqxQ4g/Q +AUsZdBrB9irC/9mZPLiVeeC5gmX1t+h74M4Uo4IBnDCCAZgwHwYDVR0jBBgwFoAU +6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYEFBQJK194FOybcT6am5CkxRnf +COaIMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMBMGA1UdJQEB +/wQJMAcGBWeBBQgBMHAGA1UdIAEB/wRmMGQwYgYKKoZIhvhNAQUCATBUMFIGCCsG +AQUFBwIBFkZodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2Vr +Y2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMFwGCCsGAQUFBwEBBFAwTjBM +BggrBgEFBQcwAoZAaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NS +TC9la2NlcnQvRUtSb290UHVibGljS2V5LmNlcjBNBgNVHR8ERjBEMEKgQKA+hjxo +dHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS19Q +bGF0Zm9ybS5jcmwwCgYIKoZIzj0EAwIDRwAwRAIgOgE2XZ69IS6mmUGqQhWWxEUA +dHEVz7iBBGt2IU99uIoCIEYlzTKUCBBLVqAhHNUxVS75owLH10/g9ktM+Lu4yIc2 +-----END CERTIFICATE----- + + +CMLEPIDPROD EK Platform Public Key +================================== +-----BEGIN CERTIFICATE----- +MIID3TCCA4KgAwIBAgIUJJYdv83l0uoZXqKPrcJr/zFNRtQwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTgx +MTEzMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBmzELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xNTAzBgNVBAsMLFRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIENNTF9F +UElEX1BST0QgcGlkOjEzMRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAERUv5VuJeLq+kowdxzthg1RXIva2wIXx8QTyDpohD +H/6iycf6vXrbhwOBt1ol7siMJUslPCRKhGpAQ+5Z/L5DQ6OCAbQwggGwMB8GA1Ud +IwQYMBaAFOhSBcJP2NLVpSFHFrbODHtbuncPMB0GA1UdDgQWBBSar1ke4mPKrhD1 +e6BPqNHdZhP56zASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAT +BgNVHSUBAf8ECTAHBgVngQUIATB4BgNVHSABAf8EbjBsMGoGCiqGSIb4TQEFAgEw +XDBaBggrBgEFBQcCARZOaHR0cHM6Ly90cnVzdGVkc2VydmljZXMuaW50ZWwuY29t +L2NvbnRlbnQvQ1JML2VrY2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMGQG +CCsGAQUFBwEBBFgwVjBUBggrBgEFBQcwAoZIaHR0cHM6Ly90cnVzdGVkc2Vydmlj +ZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS1Jvb3RQdWJsaWNLZXku +Y2VyMFUGA1UdHwROMEwwSqBIoEaGRGh0dHBzOi8vdHJ1c3RlZHNlcnZpY2VzLmlu +dGVsLmNvbS9jb250ZW50L0NSTC9la2NlcnQvRUtfUGxhdGZvcm0uY3JsMAoGCCqG +SM49BAMCA0kAMEYCIQCKMvSG3LUNthJYfcl93+GbGvLNldo6Qcc60WcBuY5FvgIh +AIDvu80EGqYvcUn74n5S10pTOsDJNLRipPPQoMepPeO0 +-----END CERTIFICATE----- + + +CMPVEPIDPROD EK Platform Public Key +=================================== +-----BEGIN CERTIFICATE----- +MIID3jCCA4SgAwIBAgIUZqPOgb6Fz4HkCYS4cY4AWWHfg0swCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTkx +MDExMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBnTELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xNzA1BgNVBAsMLlRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIENNUF9W +X0VQSURfUFJPRCBwaWQ6MTQxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wWTATBgcq +hkjOPQIBBggqhkjOPQMBBwNCAAQ9neK8IMs5NI0+ZEZ0EvttzM0ekPGeWwJxzLzG +S34hmhc+q9tlEqNs3bijktSy/mC0QeZU+GMD8qYAIRjkXneVo4IBtDCCAbAwHwYD +VR0jBBgwFoAU6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYEFHhqN19NVLMU +VFHUvpN2D3QkJP54MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEG +MBMGA1UdJQEB/wQJMAcGBWeBBQgBMHgGA1UdIAEB/wRuMGwwagYKKoZIhvhNAQUC +ATBcMFoGCCsGAQUFBwIBFk5odHRwczovL3RydXN0ZWRzZXJ2aWNlcy5pbnRlbC5j +b20vY29udGVudC9DUkwvZWtjZXJ0L0VLY2VydFBvbGljeVN0YXRlbWVudC5wZGYw +ZAYIKwYBBQUHAQEEWDBWMFQGCCsGAQUFBzAChkhodHRwczovL3RydXN0ZWRzZXJ2 +aWNlcy5pbnRlbC5jb20vY29udGVudC9DUkwvZWtjZXJ0L0VLUm9vdFB1YmxpY0tl +eS5jZXIwVQYDVR0fBE4wTDBKoEigRoZEaHR0cHM6Ly90cnVzdGVkc2VydmljZXMu +aW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS19QbGF0Zm9ybS5jcmwwCgYI +KoZIzj0EAwIDSAAwRQIhAPr/fdeTCoVIPz8lL/tciWI/RBlFF2kSRMt7Ug/QicIe +AiBFSWsm9yySkuTMbl02+epNubtWHQajtdUw1e0mlkkqoQ== +-----END CERTIFICATE----- + + +CNLEPIDLPB1PROD EK Platform Public Key +====================================== +-----BEGIN CERTIFICATE----- +MIIDyDCCA2+gAwIBAgIUTbSNk7/j6+rpa3ruoB5Ztu1x7KkwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTcx +MDIzMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBoDELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xOjA4BgNVBAsMMVRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIENOTF9F +UElEX0xQX0IxX1BST0QgcGlkOjYxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAASvNtcFYyHUv4dJOmSsJe6Ld96fdiK5R3s5 +wkFN/q89JyFI4GufLTvvFXkVDsGs+ttNrDGzQbeYRnEBcdlzBo1Ro4IBnDCCAZgw +HwYDVR0jBBgwFoAU6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYEFCM2Do4Y +mU2r6RxCR8s7gm7YCJILMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQD +AgEGMBMGA1UdJQEB/wQJMAcGBWeBBQgBMHAGA1UdIAEB/wRmMGQwYgYKKoZIhvhN +AQUCATBUMFIGCCsGAQUFBwIBFkZodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2Nv +bnRlbnQvQ1JML2VrY2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMFwGCCsG +AQUFBwEBBFAwTjBMBggrBgEFBQcwAoZAaHR0cDovL3VwZ3JhZGVzLmludGVsLmNv +bS9jb250ZW50L0NSTC9la2NlcnQvRUtSb290UHVibGljS2V5LmNlcjBNBgNVHR8E +RjBEMEKgQKA+hjxodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JM +L2VrY2VydC9FS19QbGF0Zm9ybS5jcmwwCgYIKoZIzj0EAwIDRwAwRAIgOoyT3aM2 +KOecmnycl1gmrQGAgzZbCx9dZQxIsVJLmxMCIFnIlM1RJhaogvrAc+8fqUuVUmDy +7c3XLnqZ2iGys4KB +-----END CERTIFICATE----- + + +CNLEPIDPOSTB1LPPROD2 EK Platform Public Key +=========================================== +-----BEGIN CERTIFICATE----- +MIID0TCCA3igAwIBAgIUC1r2BxSKTnCjf+IE/EUFMplADIUwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTcx +MTE0MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBpjELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xQDA+BgNVBAsMN1RQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIENOTF9F +UElEX1BPU1RfQjFMUF9QUk9EXzIgcGlkOjkxFjAUBgNVBAMMDXd3dy5pbnRlbC5j +b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASZYf1VqIEVg2HPaCvFOxHvXKEK +XxIm9S0FTDHCcNxVr+O4XstUP5Py2qU8sCbsvzPhYiJx/vTs2TBU+9LJtFoUo4IB +nzCCAZswHwYDVR0jBBgwFoAU6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYE +FBegBXXQXljjiBIQu5ixBFu0wwY5MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0P +AQH/BAQDAgEGMBMGA1UdJQEB/wQJMAcGBWeBBQgBMHEGA1UdIAEB/wRnMGUwYwYK +KoZIhvhNAQUCATBVMFMGCCsGAQUFBwIBFkdodHRwczovL3VwZ3JhZGVzLmludGVs +LmNvbS9jb250ZW50L0NSTC9la2NlcnQvRUtjZXJ0UG9saWN5U3RhdGVtZW50LnBk +ZjBdBggrBgEFBQcBAQRRME8wTQYIKwYBBQUHMAKGQWh0dHBzOi8vdXBncmFkZXMu +aW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS1Jvb3RQdWJsaWNLZXkuY2Vy +ME4GA1UdHwRHMEUwQ6BBoD+GPWh0dHBzOi8vdXBncmFkZXMuaW50ZWwuY29tL2Nv +bnRlbnQvQ1JML2VrY2VydC9FS19QbGF0Zm9ybS5jcmwwCgYIKoZIzj0EAwIDRwAw +RAIgXsUtnUUfU90GerQubnLQ/NSRrAkjUKjHiphIdgzNRpcCIEJ7yKGSsVDkE++Z +cJigMhp/OGd+UI8GtBRnPe0RiNyR +-----END CERTIFICATE----- + + +CNLEPIDPOSTB1LPPROD EK Platform Public Key +========================================== +-----BEGIN CERTIFICATE----- +MIIDzDCCA3OgAwIBAgIUI7MycK2I3XPBTYo4V78C5VKvQ9gwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTcx +MDI1MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBpDELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xPjA8BgNVBAsMNVRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIENOTF9F +UElEX1BPU1RfQjFMUF9QUk9EIHBpZDo2MRYwFAYDVQQDDA13d3cuaW50ZWwuY29t +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKJo/Rz9gEbTHZRlf1rFUmWh4vkhY +6YdWx29rRdiAKBo9GWtaAqysXZJS8l3UE3C20I3uR3q0sLBsMRBP5nt+BqOCAZww +ggGYMB8GA1UdIwQYMBaAFOhSBcJP2NLVpSFHFrbODHtbuncPMB0GA1UdDgQWBBQU +GXumXWM7W3FzRF3uGruj7z1gXTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB +/wQEAwIBBjATBgNVHSUBAf8ECTAHBgVngQUIATBwBgNVHSABAf8EZjBkMGIGCiqG +SIb4TQEFAgEwVDBSBggrBgEFBQcCARZGaHR0cDovL3VwZ3JhZGVzLmludGVsLmNv +bS9jb250ZW50L0NSTC9la2NlcnQvRUtjZXJ0UG9saWN5U3RhdGVtZW50LnBkZjBc +BggrBgEFBQcBAQRQME4wTAYIKwYBBQUHMAKGQGh0dHA6Ly91cGdyYWRlcy5pbnRl +bC5jb20vY29udGVudC9DUkwvZWtjZXJ0L0VLUm9vdFB1YmxpY0tleS5jZXIwTQYD +VR0fBEYwRDBCoECgPoY8aHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50 +L0NSTC9la2NlcnQvRUtfUGxhdGZvcm0uY3JsMAoGCCqGSM49BAMCA0cAMEQCIEiL +qfQE1ISepbRb4/1amUkZILNm5JQc1ssyzRa0qB8mAiAGocAQVjAF2uLo6tCSUrof +Zo+PQtRTQ849fA4Ok8HWcA== +-----END CERTIFICATE----- + + +CNLEPIDPROD EK Platform Public Key +================================== +-----BEGIN CERTIFICATE----- +MIIDyDCCA26gAwIBAgIUHroxX5HAoxWX+7O/H+VOxwBdRGwwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTYx +MjA1MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBnzELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xOTA3BgNVBAsMMFRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIENOTF9F +UElEX1BST0QgIHBpZDozMjc3NDEWMBQGA1UEAwwNd3d3LmludGVsLmNvbTBZMBMG +ByqGSM49AgEGCCqGSM49AwEHA0IABCIM11xTzlVED9XOuSi1yLjWDk4XcAFJTi4b +K84RsM5yDXygW0RyutWunVGYFgWcbmhtdZd/FMTeUFHTrETpI0ajggGcMIIBmDAf +BgNVHSMEGDAWgBToUgXCT9jS1aUhRxa2zgx7W7p3DzAdBgNVHQ4EFgQULTzs/mWU +gpcZ1lVrYAVB50n8Y1swEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC +AQYwEwYDVR0lAQH/BAkwBwYFZ4EFCAEwcAYDVR0gAQH/BGYwZDBiBgoqhkiG+E0B +BQIBMFQwUgYIKwYBBQUHAgEWRmh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20vY29u +dGVudC9DUkwvZWtjZXJ0L0VLY2VydFBvbGljeVN0YXRlbWVudC5wZGYwXAYIKwYB +BQUHAQEEUDBOMEwGCCsGAQUFBzAChkBodHRwOi8vdXBncmFkZXMuaW50ZWwuY29t +L2NvbnRlbnQvQ1JML2VrY2VydC9FS1Jvb3RQdWJsaWNLZXkuY2VyME0GA1UdHwRG +MEQwQqBAoD6GPGh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20vY29udGVudC9DUkwv +ZWtjZXJ0L0VLX1BsYXRmb3JtLmNybDAKBggqhkjOPQQDAgNIADBFAiEA+07aI19y +RxzeCkhZirRjkYFRcCfiuchnlt8tobXycekCIBfdj8hqroYXETn8hzq64Wn/t9tx +917kHW8lBxE3lbzl +-----END CERTIFICATE----- + + +CloverviewEPIDPROD EK Platform Public Key +========================================= +-----BEGIN CERTIFICATE----- +MIIDwzCCA2qgAwIBAgIUZ4oCAoWl3AhuVgPUXJbkaZ55W+owCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTQw +MzEyMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBmzELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xNTAzBgNVBAsMLFRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIENsb3Zl +cnZpZXdfRVBJRF9QUk9EMRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEYjYfgF37t9HFczTzesvwKGh1+biqUE7UAD89GXb5 +jgCEXqS7mQKPkGAzeR6wBSNgQjEBosn1JgcrBBPrnZj5HqOCAZwwggGYMB8GA1Ud +IwQYMBaAFOhSBcJP2NLVpSFHFrbODHtbuncPMB0GA1UdDgQWBBRJlMEp8aVI1IhY +byKi34YDc5s70zASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAT +BgNVHSUBAf8ECTAHBgVngQUIATBwBgNVHSABAf8EZjBkMGIGCiqGSIb4TQEFAgEw +VDBSBggrBgEFBQcCARZGaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50 +L0NSTC9la2NlcnQvRUtjZXJ0UG9saWN5U3RhdGVtZW50LnBkZjBcBggrBgEFBQcB +AQRQME4wTAYIKwYBBQUHMAKGQGh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20vY29u +dGVudC9DUkwvZWtjZXJ0L0VLUm9vdFB1YmxpY0tleS5jZXIwTQYDVR0fBEYwRDBC +oECgPoY8aHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NSTC9la2Nl +cnQvRUtfUGxhdGZvcm0uY3JsMAoGCCqGSM49BAMCA0cAMEQCIB8Mx7/ClbTKy8IU +UZ/waaekl6Y4aAz/pQZX1sEqhcSCAiBmO5wSipqHOj66P3VMrrDC+VQOAkKRKcn4 +/mbEsFXpRA== +-----END CERTIFICATE----- + + +DNVEPIDPROD EK Platform Public Key +================================== +-----BEGIN CERTIFICATE----- +MIIDvDCCA2OgAwIBAgIUeXOWB5FJbPbe+/Hs+POfNMKKcNcwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTYw +MTIwMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBlDELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xLjAsBgNVBAsMJVRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIEROVl9F +UElEX1BST0QxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAARAJiJHEDHXQppRQJBvJyqycjHV201mVYIxCFD9u9ulqNJrWBTv +1TGPMHESl7T2foiDJdlsfR2vI3OZGbzfmo7eo4IBnDCCAZgwHwYDVR0jBBgwFoAU +6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYEFLuYBeMZp42676iItFYVlXIF +F5GBMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMBMGA1UdJQEB +/wQJMAcGBWeBBQgBMHAGA1UdIAEB/wRmMGQwYgYKKoZIhvhNAQUCATBUMFIGCCsG +AQUFBwIBFkZodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2Vr +Y2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMFwGCCsGAQUFBwEBBFAwTjBM +BggrBgEFBQcwAoZAaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NS +TC9la2NlcnQvRUtSb290UHVibGljS2V5LmNlcjBNBgNVHR8ERjBEMEKgQKA+hjxo +dHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS19Q +bGF0Zm9ybS5jcmwwCgYIKoZIzj0EAwIDRwAwRAIgah8QuU+rWzNfp52vfywQF+J+ +O/6rnzjbPMQYONUDEIgCIEbDzUQn14z4JlymYCaDT4mnzR97kzEBoO8VoI0WTknK +-----END CERTIFICATE----- + + +EKRootPublicKey +=============== +-----BEGIN CERTIFICATE----- +MIICdzCCAh6gAwIBAgIUB+dPf7a3IyJGO923z34oQLRP7pwwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTQw +MTE1MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBhzELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xITAfBgNVBAsMGFRQTSBFSyByb290IGNlcnQgc2lnbmluZzEWMBQG +A1UEAwwNd3d3LmludGVsLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJR9 +gVEsjUrMb+E/dl19ywJsKZDnghmwVyG16dAfQ0Pftp1bjhtPEGEguvbLGRRopKWH +VscAOlTFnvCHq+6/9/SjZjBkMB8GA1UdIwQYMBaAFOhSBcJP2NLVpSFHFrbODHtb +uncPMB0GA1UdDgQWBBToUgXCT9jS1aUhRxa2zgx7W7p3DzASBgNVHRMBAf8ECDAG +AQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAldFScWQ6L +PQgW/YT+2GILcATEA2TgzASaCrG+AzL6FgIgLH8ABRzm028hRYR/JZVGkHiomzYX +VILmTjHwSL7uZBU= +-----END CERTIFICATE----- + + +EUS AMD KEYID CBB3F726E72C37BF7E9C6CFAA6EF06F88FD1FC4C +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAWhkCVHhqXAZpQAAAAABaDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDgzMDIxMjgwMFoXDTI5MTIzMTIxMjgwMFowQTE/MD0GA1UEAxM2RVVT +LUFNRC1LRVlJRC1DQkIzRjcyNkU3MkMzN0JGN0U5QzZDRkFBNkVGMDZGODhGRDFG +QzRDMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4b2fVSWFeXjREUf7 +MBIO6f56is9utoucFSNUpCNN/K3X+iGZQWoi58cXm6rK/6WmYgs/t2ehTo6u/wFW ++IfKF8lAxfnny038x7DOu9z4KFldSbQGXK8fqqMqH5zqBT742uNYqFrMpG9fxZbL +3OeuZP2NIrJKNzpU8ZFxA64ByRrdbwhe67AJxUjJgG2omnrSGiplHCdzjsJ/Dfvv +9FIFvG0A+tlS7eACr+AQKVHSPro5NQ90+XKELZ4RTpXVVc0bBMdATUG5b5CVJ4yE +5d3EAu/XhLJY7XlieZZHNd2I17V5ymU8a9RA/HO/X3/1CimQVdnEYuCkfqNgT2+b +4F8e+QIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUKFK5R4UknKp2kMAX476nrUUrDfgwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBwTrLJ +BMzzL+R0soMDJrCWhNQPQ4E6Mf6xKlNjdI/OiieFG/RLlv9C/MQZp+Juuyu8gAsV +ISLMKXDw9Msbr7/sZyviIIG5i5PzJLDAdJE468VwDY69fBE26BZCi30dguA0lqCY +ojlmk/m7poqnJAFj/G6+9S+IXYlMxi/8cFLMqtDRD51E2PyRIDvbjl8XPkGnkvsA +l1tmUsqyDLk+Ng7rw4WF7BBVYfBDs0EUrxzSZipEXipyGiBk8nJWN4+BVqjSJsjM +m5/gMnqcyY9kQjczA6E2lZVDCBKqZsys7WC9DBPqX3Vcni1QLX0RKWUWrylraJUx +87xOFzM3fFIkLUpFvMvq+2jTXLzPXjiJiyzpk3mYpMXqwOVqOcAfPKfKBdGhxhgh +D7I2of/Hi0mQ6ira3kv8DbnlTs5MoE0mwY9+aKK6tzN8zcvNIpIwdPZfefmjxwgu +9jUokIizbuowv3bXp2PIYc8AH8i1vUfaOlzDZjtU39W4B0HEhy2EJCNBjUz5/ne8 +JpokFaZTU64PFABhbk1g6uoYqOmt77zMw5LRYtWssqk+9+HsClW/8Os9FPPHpTnj +bPtJCxrthVDD5+QWXycqGlasi4ipiuGsONjMN8Dd4/r4lVEJLWdlZ3e7t4lHP4hE +OeaSBIBBHa8/3mpvaqb3VzmlKed+3pU06AlBmw== +-----END CERTIFICATE----- + + +EUS AMD KEYID CBB3F726E72C37BF7E9C6CFAA6EF06F88FD1FC4C 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAlEoQg1LONsbAQAAAAACUTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkzNFoXDTI1MDMyMTIwMjkzNFowQTE/MD0GA1UEAxM2RVVT +LUFNRC1LRVlJRC1DQkIzRjcyNkU3MkMzN0JGN0U5QzZDRkFBNkVGMDZGODhGRDFG +QzRDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyyvmjfcX5CmLjn8V +iDmaFYkc5lREOVML6sKozgirRGwROjYxNSduvU2beXQRlcNP7jCJOQm3o850OGL2 +kJIiN0GjEob4DDPnKG4XQyqW0SyjFHoYAYKNawVqGD54hoXy4yFQOJkGmBI0XCsE +lj/Euy3hqYp9PsrJIEYj0uabmIDNrFstQ0zSDssXxUNCJXITZAeXZpPlw7VBFXWY +efrOJ8Lh88dud0bklypLZoiohzYIkQJKUvGGj6LBpFQkJc3rhXDM8AbRbqd8HmTF +3DVVgAIL4vIunMoWTCflR3A0lxe+Moa6BXS27J4CSLH6XD7Uk6Q0/XJj1hBFXFWx +cr4XSV2i1QKT6lQs8gw5St67Lt7W9heptqYXkw6qcsRQCszxJyY+7kfpvYPwmLNK +uqCybrN7RgwMN6g4s7wlIiOWFgJDofZop9uc1KeJFXtMyKVZN0V5AkTEgR6fWBvt +dJOPxB+IMPO+PiTAoXexOGXrbWAeosoJlFs51yr5LOkA6eZMTRexSNzslZAvDwdd +CriR5LbHnjbQnNZVBmVXLbi69CUQleG9pMG04UFPJUNoAAPcEiQENKYhg+Fe6p30 +U7VzGNIYt41n9t/+WFu54f+3WqAZqR5OJEhhVLucgzaNxLVxddieUSI6eaJ5u0FK +lbl5XKKRGpV297+ux8KKHLq4sKMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNNp4qXdGCH3pCMw +tFakl+9AYRXFMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAJ5lAfQZ6zIOcOrEYdp7A7iGx38WMkkjP1CEjrwH/IivH +mT9IiPjW4PdNTzDPrhGeq9oHbBG1RE4+sW2K6pp+2EXrm13chQhiArtE7EQU9C5Y +paEPdfG5b869biZVkjhyeJC1ptbv7GW1dqaeMxMZ3vqblWA1nYrsUD+m8i/05lEW +k6CXl1M6Lf/S8LMBgMe7LbLNr78+1AEVTkjiTpLL05wHbHDaEcndvoad/X+05U8T +JK05NmVa37Rl7R3HxwsMS9ZUbbeRalEVRp5fTOfUBzU/4JEgKyQDyCg+mgVUEIV9 +TJXqcgrgHsCHlaYWyT6kM6juhYbzWRPTHMEnrqCOR3vzzQzXtPR6QI20uE4GHQgY +3K77PR2k//7tlz3LuHhIqd7z4toTFrRs5R/rzyCDQ/LTWzKkKKT/daqPDTiWOELd +emBNAFkAy7rd96Si334vF3V33t68K7yOviQJdjSE6Xtous0Q24LfMfLMK8yoMe0e +yhRTME+lsdzBB2j5C0aGBz3xkTYeJcfMvcFxqLfLpiGt4oL5G5ZNyxNZzfj9S7Ci +MUL72sztTUzo/O+4nB3EsKQk9xcpXDN07P7LeXl7Tbmpzw1w469cdXhGUlLbg20M +j9dpz7IeE+6vjczsi9Bf2Jber+R3tj/MOT6fUt4vhDOnzxgJ6qs6IsmajMJW7F4= +-----END CERTIFICATE----- + + +EUS AMD KeyId 578C545F796951421221A4A578ACDB5F682F89C8 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAFZ4FBI2r3n/cwAAAAAAVjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEzM1oXDTMwMDIxODIxMTEzM1owQTE/MD0GA1UEAxM2RVVT +LUFNRC1LZXlJZC01NzhDNTQ1Rjc5Njk1MTQyMTIyMUE0QTU3OEFDREI1RjY4MkY4 +OUM4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoJRE6Jg2ABZLY8A0 +o+iKAvqaMzcWKYS8hBzyZYrSCggDNZKs7M8FvbPF+6LlsYkKGlolTvD03+yZwIdP +NgLq8CAJnoa/ezHZrdm7fmxJVrpzF3UjYh6AGVvJwV51HPXfMzHS9Val8N7Y0h2j +Ymi8Myvo5lUSKMX9/hqHQyk/5T7YfJZaOHz+QGK6W/0doVPVKr6dokrt5ZlpTxWD +IJ1jh4DQhclxdc6VIFvtaXL87yCb60rXlwqylU0bfcaPNRYXZXNQRssikRwDSTLz +zXNctG2Ui70nNbOkNM24b1Xpf2XLbU4d2EgTAkAgUAo+PEnNsQAOLp5PcJwkBgkv +Q2FVQwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUnSq/EMxVcExBgWKBjoPE16Wo2z8wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA0XziO +qkXigBCZ8NE5Way1fm8L8XtylnEUKXMUH3iyCb6R0BxNXJuT9Y+6MPp4fQufppNi +PTYxBjaWomtXoxKOEmmqrFbAYjcsXzf6CXgjR8K7fGmFdxtBajp82LDLyLgqkYXt +jgipfjzJWa15hCcLr1qF4vooWK6WO4dfvGN76MhD1d3BaYjCv6QMCW5rghyrHMud +8ggtIfyCytAFIu0jc0fhXy/qGbbSYY1jWWkGh4Nk313a7wiLl8CDeMNStk/kfGpm +tDHb41ILNXDDL4B6wqS6teZLMNIZnYsFHONNgFSQ/690/cQki/vsP5pDbNL0Bw2I +GbKeo7n0wBiwLavk5LbHz6CDBqe3HSquc2bqdRQme1gIm669ikdK/De5SXwLJECL +Dvhzyy5G3YksW5SF1QqTwvUvVT4V7Xid00FtENpP2iZscZAmc2ViECvqUpQzcEBh +JiBOlKh4HTxX0o6mcfTAUMGay6H0NwXEpZK2SRO2ia0QUCDwa+vrarMspga6T/6x +e7VFjj5CuLivoeMnqqyg35Uk29SiBMR7lHPZZFwXh0/rlcyButw0vo/T03omRQii +3Li85y/cVg19Tdxva2M3YqObeshtyxGRbjKiAqyOu/IhZDz1+jc7Q+0Nv8p34Zji +M82r845KWUzZIrUeCpbxe6nk2rib3I23rgVisA== +-----END CERTIFICATE----- + + +EUS ATML KEYID 16B341E381CD5C3E799AC838CA17F1F7F3F7431E 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAlPun/3oGq3sHQAAAAACUzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkzNVoXDTI1MDMyMTIwMjkzNVowQjFAMD4GA1UEAxM3RVVT +LUFUTUwtS0VZSUQtMTZCMzQxRTM4MUNENUMzRTc5OUFDODM4Q0ExN0YxRjdGM0Y3 +NDMxRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMQlMuijD4cuFikM +hbiO7Kk+WkTuVpOmKlFfe+VhcwdAMEKjg+gT+udRlId1CeMKW9hH+nqX/6/zXQra +PKOl04w+WWCphHyw5EfysKhnk4HaHxgLB8KM43sIUZYMY7H7C/SlSr+PK3c+c7Bs +LpKwWUWKzAJk/sbRn03XjskJDp76TPV4+ftItx0nUHIl8EV6AGyC2+oi0XVI4Q1q +KlmRM+ZWId2AT5Ii6i6wjEW52yJHgppKISwybyiCHdq5zj8XGOt0FZxo/ahkGhyJ +uWhilvosyyspj7PliDqU0WxguHfK7zDOuELOZFWU665iYNzc/SLrbKTkDd3iCv2p +PN2+ZcLjTVQQqI6BDwCsIP+5lkfD7h1lxW2sgt9pqsy1l8Gj/V7RXSvPxR2tlRCC +HkrpPwRj9nj4sdSNXPVUhHtj8FxIl0fBY/DgzLfnRKVV7ioh6bnKOVSdJ0jKt6UQ +/GazAhJNdSr9V2Sdh8JYp4IUWVwdMIBAO+ORdw5jKsEudSTNc3dMQ6wnSQmhwC97 +Gnw0GGJdgHU0w9rL6J/g8IctIL0CGPY1GwGxuKgu6O5sTWRHv4yVmNRifkuw57/c +ovIM2ckGfVBjADpprWww+tYBJrCy8/hvWbReOkl5MbVIQbwc0PxE5NI6JmGlN4QH +Q8NrcQf4/rXSnHqs16iHS2/Yi4LZAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSXSNLWZuAc+TOF +PfDxKg0hNvU8uzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAEL+6sq2ypnyucF3Cl4evYB4UbNFXsjGy9BxzDhyJONA +qbPtpztcY/0TXMibuScODkzh0whlqYCHGfEWDUu9WIzuXfWTsc5zfYL/GV7Dd/u1 +5yoGzQHvm3uY96XdXntHyFmrn+cY4CoVbZtBXdRM72g5fR+tU4/MpKJYOGJ2DQ8e +9gjyiDr9+sXD/GMwUIiwwAE162dWsL9HRX40pgU3tFp8gCVRhrXZInjGwKGvNHYb +0D80f0tFUxE1LiUTaQ5dVxBxwNLIjQv7a23Mr9CRmSP6BWYeoTnf613U4YEM+HBq +uzJdQ4nBuWqtKbDpMSyMLX7yqDe0eBEXASoyeFKajhaN0xun8Ic0QAXVgJG8mk3+ +Okywn6Ixh+1waLFYc55Y/O9VKLMg9gOe7LjI0kQaCQfpmNzqTJ0ZUfjza0imt8GN +0DXJANNdFBGxLGt0Xv3y2iWlogSaW1Wj1PAavFcD53snXwYkMopEoTFCipuM5pKC +KzpAPvJUiOWdvEpbl+T8kxcOj5220hORmBt9JrjuRfWgJRDbW9BsrBhdgbYM4AAx +WfMnZJ2zSGWXqMNaVYnBj0suyx+WGi+Fbhwh00/LScM8x7zvkskki99WDMrmn4OY +4XzNi5dVE4Xme4UQVp4aDQHKXVNT+6Hf/OPC3VPc0DPQ37GnXQ4J1bjsQ3JzmAnd +-----END CERTIFICATE----- + + +EUS ATML KEYID 277631D059FA7A9553FB59DFD6E85BC122300FF0 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAlj0RobHZjv56QAAAAACWDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk0MVoXDTI1MDMyMTIwMjk0MVowQjFAMD4GA1UEAxM3RVVT +LUFUTUwtS0VZSUQtMjc3NjMxRDA1OUZBN0E5NTUzRkI1OURGRDZFODVCQzEyMjMw +MEZGMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALgXu21ePkSPO49d +KWgr8ppJJ2MwGTTNyRsrI0WIYGpzFTN/vXpKwZ/kK9r9GZq8Gkrxs/+yG9waWHpA +L+44QniJPZVJJsCQ0xnP5TZ0toBI/095Q322VorHsnOPM77+hqCcEkyE7zl64rVG +pWZ5Y1WM1xXWQF6M1mMSWWQos1gH7dQX5w2vdvJetKTPYXvzjm3QM76oZ14M2tCi +An0O6FGUfZj8GeMPbnhVMotSfYDGVZsyA9FgBvv/veoecLBuNocL+J/NrE/h4PWa +5LSvaWD1Tp3f3g+XKxk9JtjWoIN844o2mtadpJmsJG2HRdKHetPPx1gJDsz20mFS +PnFrKxqirT7wYOuFbkw7me7LN9OEs80FPDjY3Jtr/Hwk1pV2HeVeUUmpNKeBUvGZ +xjJLpeCdI1T6kTDqvgbH4/nOOGoef3WeH+xOJYZKZr1YdiLhLmU0ZkjlpqaaWhxb +EMPpj8dlqPzu6nyAt2zkXI+B3MJ7nYfXKFd77jsx4+4R1RB1t9mGvhwbpA6IgNf9 +Db6IhnMxiZCMVEiYUuPyIsxfo/5pMa2/Oyw9bKdDoXFRZbrPgM7T1oiVp1UI+xdi +U7/KiSqB8iGxwOGAajSDMI0pIvEhtBOBoAd+9lLN2FT0dgE6LJmZxaEAV405J7YL +g+RtqQ0rrTF1p4OI4+Aniz+q8htnAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQsURuJ2FxqGGoh +wLcYAEnmWI6BXTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAEZ7m7pzQ9/JoFHRJK5oOoCL48rXhvq/wZjS6QVEiu/M +BKrMVVVHK7V1m1LD2KMScXhRlQlVZDGRmxXhFizScblWok9lFGeWnXuZcoEgIUZx +puw+wW+mA4dyKtuAZHLvVUFiHA/mPFjh+3q7djnVaK6YDdHr9OtEWyMJ/1MsAv+i +aqpAWMf6rVdifQ/Pdlc2sK7FSZcZIuD4QN/Y1mXpaSsNJDclzQjQsAAnfbL207RI +TauNBj4QtbR/kyi7TwaRz23QJLhxg86jmH5nQJUve+v9S/jpDvN/dq90BpVpoXGl +2+qVoAqDEzyk0LuwbIur11WQQfVHGuusdA1oWHtJ1P/gLVNhqNhSlSoIaLySZ09S +0PLXNIxmmOqBKgvJfr3oz0ly/4GHwMIYKBU3OmN6Q+8i6fL/UpO2bq3euTbRHddz +Of7kc481M3bgFuSCkjhnzPWcO9QOkSH4mzWNblfxJoBb+FmxTt2DQiB8zt0ducy4 +hE3gfsmYyj/SBxF7Ui7O9lKa9wQKUm6qbkufnlH5CPcGvD0lW/2qdY8JHslfJSa9 +HY4GONcs7YmLaV/JRJT9+XR0XQ9fMkwnxobqzSz7YHVSiXIQBRzAuiTZUjvFqo4N ++/6CJLqIRVgUpWkc8CYROu/oe4u1+VccVTmvK/Zr4qZl8ZkLgznLHqVts+00oq9b +-----END CERTIFICATE----- + + +EUS ATML KEYID 2D605CD882B2BD716CCE71C90BC774D3D5BCB1D4 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAlIQhEc8mPS27AAAAAACUjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkzNVoXDTI1MDMyMTIwMjkzNVowQjFAMD4GA1UEAxM3RVVT +LUFUTUwtS0VZSUQtMkQ2MDVDRDg4MkIyQkQ3MTZDQ0U3MUM5MEJDNzc0RDNENUJD +QjFENDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKJ4CpXBUvk+lFRW +d1sUKv7fC5fHo4SjwsgC5RCUjlK/q6RANm8CKlzjgkXbKBgkL7/QQUBs71dvUx9O +PuDoz44R5JjLshXlSppqatQcvbFJqWKaU93dRTXW6Bd61y1ealYfqN146o/DQbwH +pJyGGAOaRSB5KYjB2GJqfW0B39UOpMIAIQWtfjuZzSh8i++VlpsuRgGEminvFmOa +tOVznCBwg2P7bXoLRFlaGInHPLvVIzqOuBkv745E/MX9b9Vq7PNrrsjSje4aVLyM +uL3MCKw/WwqPMu1HrQ4s7OeHJA68FhH+1/QYBowreXIPwt0qwhGF9cz95nnwDjRa +zk3VSMWY5jaMVanW9Qvx63FOkKHTDDsbPHDdtyLFDBrSl9zFlQ69Fr5gkbc+uFBr +YxZb+LOjgs3M6H2BnsC2Zj0CUu7rhXFzvT/dgWqyGSDr0ULI515jFZMwJac2Ux1c +XKaRJPuQDlA4t23wJ0gsp7PZrowHT8JfGhJPm6pVwglFtjnoCqf+Ls8zpwKmOwCg +4osiQ5P2jbwXVRkAYRApAuC1W3hBW0q7KFMAAPHhmcrpIhgphybBgFQrFkB0/vAD +z2hEo3Eibpfmxs5wIRRdr/F5Ug6XubVf5k+Vd8dxaVImKnRlB/wb0oLquXw08paR +yI5GURh982h9EfN9TK+LQJkA1gntAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRFL9sGscp2CsBl +ptPZ+FEj6ec+NzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAIJVUJtdWJ0cUnUeEMZMT768aloAhO8p352fZ+yp6mj5 +n2jfX3kZWvXCStuHiNq0Jtxd3IoJIFmyqx+TigSGywGyZeP1qh8HM3yGyd2hA+gn +XQIM7fdbbJRJLz+As09xk7SmBDxQnUVEQ9uKaJ1CDHRgn5yUvOxw5XVFiClaRilj +Zf6g1njdR9wCuWmSuHqHa3UJEQltS9Q2npDMYI6Ug86OBSn+myX2XlBzMdIWCPGc +bkOs9k/Hvc8hNg6KNROoqU2VsbXhe4av0k7quri20dqBTpA3hkgqp2TVw18DDjr0 +fQd+7a5O/gdcML8wLU7HkPP94zuADEGx7/2/AACDxkn92Rs2qs8VMji03hE4Xkgs +JKfCoIobEaX2znzn+8Qr/GSl91O9YlZNHTQC+HdD+NWHvzHtl4NELD3J92G0cP7A +XhfzrOfFlX053vRhiFrG08Jwi5urj7yK+BgSZ8WecgyGRrccNXKGaCvAp8MzcfKo +PYkWCuKse/kPrqzmzHZ6+V3jmDlHuvQd8jT9NMUMAl9Afe1ELZaKcRDYrJhcPzaD +SkYg8KuSJqo9zinlHGYA6hStRXmta3ud0/xAiLckVikqe/rKCGXNmnYSbF+1wNkn +5q2FXPbhox/AE78ZbcbSx59+r8pqiWiZHbp8q4RYyM8Iy0rAv5xcroIDq9yWksMM +-----END CERTIFICATE----- + + +EUS ATML KEYID 35AEE736C9B4D2861309E7815C0FA4CE40D865F6 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAlQam3oKt2IfRQAAAAACVDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkzNloXDTI1MDMyMTIwMjkzNlowQjFAMD4GA1UEAxM3RVVT +LUFUTUwtS0VZSUQtMzVBRUU3MzZDOUI0RDI4NjEzMDlFNzgxNUMwRkE0Q0U0MEQ4 +NjVGNjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM5kvEGZXlL5weKM +848Vdj4w9tTNOGm7nu/Ec+Y1yK8pKWHkQ/I8E9duOH0+LWSB42Yj/x8cBLIcd+2r +t6X7vH81XU4ShVwMJHrAaNAMPKeu4zdzWx32r9bSCSFih+n+xJ42fNSQr8ouYKCn +D+dDwrgqqIs0FNUDx5UKQ2144NVBDQrlBRsX26roIi/ld7fFNVojB924plIGM7so +py7q+FqlObjGWrC+bpspxr0G00aqSrnYEMTgOeP6NxorXjwZnQJi/U7tZZPqQIU4 +p4pce/xLK997EBvf9e5SaUAJudBZVMjS5/dsePfNGqiar3a1ifFnm3QSSvbELV0M +M9a+RA+oKVlY0O4pCCJ8gmE8N2x9DUog1Y1autdzNTJPhxBgrFUQx/c91mxxjw6Z +QPUPBWxsH9Hi6Eisza4cXag33auzGs2v19ledRpQ9LARlwRatgSbP0lCFXBA9mmL +WX7e2WIKd02FyrdzEuZjzpXmqsdPAd3RmLiHP3L1yuQln4h7hNbcpwnzSO9bKQzu +hwdVnJXbj64sYh3zDQ6FsaV/NiMAgQ6jjqmc17uaCMxm9InSya42jVRjRl1C80C+ +MOkx89dD04GNRsyTEGrmR7Q5DzQn1URoJcvq6dYO1+nC4+6hHcQ718n+oUhfMQuP +tGpoIX3gr5wHFsbM1ddaqJn9lRO9AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBScAUtJ8FtbVm7p +QE2uFIwSb0K9pjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAF9FdT5ONLsNbIlB/oED1Fl+YIxtSAo5s1rWnxJ4ztqV +anU7V1BnIp9YaJT6jpf2ozFNcu4+bl0PDv5jP1mB/pEyPl7S60V4s4HBy2mH9XHf +E0bVN20OhHDBnzaI4u5DJaKZ3mqYIaDroDNZs71BWOdT7vyfBu8SecUG0ZLpJNWs +Tbm6mIRxSKQs85xqPsVmBok2iDV9H4aLvx9b13e05wPD7YeH96SKi/3snjsnSII2 +uT4wRu4iDKmlMghYPO0/zrMxbAqS1vGwr5YzZqIDjKX+cbcgxVDMKuG/miGgSkqj +ikhngnuyVkrnZLiqUoYGtbtU9yYFbTwOcsYUYSqPP6qbKvKtCpN08rc7Kmvmu6R/ +u8HKnzPtxMP7TmdMTY91xwUdNCVSN4th/6H/jYeT9k6wH0YQ9RtaFU/KwqhtKRQU +6RNFH8bHifPeaFMB3+jBeiLE43cAQOKT8DfnygFkN0eDkQWkecvi6CmKkTyuAcGP +UPEE+4XVb0ybXI7Qewls1ENH6ZJhUFMk21SNrHJMZsbFVuUr/ybEmf7WcEI5caev +UA+cCPMSXOFqxDbpR6nEuQmHGMt/y5fAN5QlQRYZKawh9hzqXaUibpA7KVTafFUy +L2ToXGpESzH5ADJe7dAOvuD+XyeJaA/5CGD8StBjilz+XJrsLJ7KXFKBcm+XUsg3 +-----END CERTIFICATE----- + + +EUS ATML KEYID 4666DE766204E74DD29BB4FDC58523A1403D6A32 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAle1vdoUCKmKrQAAAAACVzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkzOVoXDTI1MDMyMTIwMjkzOVowQjFAMD4GA1UEAxM3RVVT +LUFUTUwtS0VZSUQtNDY2NkRFNzY2MjA0RTc0REQyOUJCNEZEQzU4NTIzQTE0MDNE +NkEzMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALHcyMaqEXJ4aFo4 +VId0Qj0qfNdUOLhcpOz4B76amFJ6l9r86B4Ap7QX9OOSwuY+Myy8hp0MWl2YWSE/ +azNyp9BVYt82BnMRW44Pm1xbuX2Hmlc/JFbiBXj4BMg1D3ipIasPWtiZZxeYBVLX +cn+lCW7u18V6mMDxnxKY7c3ixE1gnJ5NrXCh9u/O3QqTsfiyJr+BcvF+0OUIxMi0 +EEraVxb89Ij72eqrZ9NzYgeGcrDVF3JSEftoshL/mXawCa3C82ctTc8inro2t7iM +ocvmhTv4hQoiYOM4+f2hoTSWBEUxqvwIlreudCXRCa1Hi06K9NoCJgi8iA8gTMh4 +YYYdywc7r779tilwVdau4PZNyWBzAZBek+YgSdQe58Z9+ohodKsnM2JPK2LCICRd +Lxv+Nq6pkmyNlIvh6pKeJUsUSbv9uGQPbnlC7CGft3dDhVSG+BUeDcxfS4tjTesU +1uAyXJXHbvzzaxBXF7kp5haMz5ykgkRE4J3sRCzvxme3/GQALmluUJ9wY0+bA2q3 +Yz9iBKnK+Vs7NaPYNVz/slXShLMCAJzwQyOxTVZQcATRnJHpNoFL8QsJFgXvptec +S0nj95dL0+LHV0eLPQWLqRcxbJe0KY1T96wKQevJS/ShbBb8nidbbtG64QEiqqMx +69SglZnviKUbEUm90xD9MldRJ2olAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSKWX3Jh+vKZkHX +onJDbK7sUu4QEjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAIaLvEpPmJ/98Jxgk4PWcAUPXViJhpqJGYPgzc2h6kGT +/hTAem/MnukSRjSpVx8LhO0WjcAPeBNJc1FTYCKI0pwWywWAoM82Gi2VG+GM3av6 +1tVLkA3IWtrPvbmT5G+vFTOffxrcb2PqKuVTDzeZHspJfcIKxC3yY5d/Yg72ixJx +mPqpKhvgmWFRXnNnrFhHvCh3QwoRjV0IFV9xSKyTbcXdc6LmTV+LETsXXc49uAR5 +7IBvDtMoGgbDIGWR1J7MJhVabU7n78emK5otajqLjjaAsQVr6R7vGNPYRRntrXLC +UGJUY459lrdvJZjA9ysBbOZWxV4O+VPvGIqrMdBK1tSegYW2AwAriEGAkVrqY/zI +boRqlsqkkZp8BV5TfGc2r43cg7bYre95VIbM2KJK49nMPRMftBANH+19sCOmGDnQ +GrhLovlA6U/66gIKqq5+aISM3C4QwZ5hoOr52K99dneTggKERd/i5MUPM978D0Wj +riIdCYv6QXV2iOqq0U18UyZr5+GLAwbKQJkTx7qDqtQ8us8d7Y7017gN74prRYRz +ItK9WawfHmwpDMY9Vqz4rH+j95ayJKl0sF0rUYjcB+mpQTce+SeBG2CUEixCIXKk +sSzvbmI1K+ur0CjM7/ILMEOi0n7fkK0FEptUmYCcrSZnzxXWClIuMKgX202OLybD +-----END CERTIFICATE----- + + +EUS ATML KEYID 55F4DA39CA65B6681F2B7711BC3EF208A8679D1E 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAlVB4xMV592EuAAAAAACVTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkzN1oXDTI1MDMyMTIwMjkzN1owQjFAMD4GA1UEAxM3RVVT +LUFUTUwtS0VZSUQtNTVGNERBMzlDQTY1QjY2ODFGMkI3NzExQkMzRUYyMDhBODY3 +OUQxRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANsmxurXRFjjP5UI +Thu7au1Y+lWdKXsLN7XrVwkgRYg0nUkmBVTJ03hnq52wdvvGIvKdGEytJ8hRPNtH +5smbdmxSS9q+HqOHbjm/3gDHo5tKdpgTM7MHoyJaTv7umL1+UDbv4XmJxJovEV+o +DXou2eFnJkiDKJsCNUj2RxuhuqzWZHGDt6bI5tKozsepqn3E35PJcrx9RMcLyK/V +IASb4SULQvZ2LOV488ID0WCL6XIxY47+ab3foHFszqJ3iHcTyDIIrkjHYRtkxWkk +j1QKHviWyIeIatnHzQQ0gr4tBB/PvZoy3BMYLuzpOMuIj6nS5VNo99sRWvaMtGKW +NERb8+yI6h0YzLRbYIZ3dxVkduiK1nBX1LkdUp8+yq3Py52gbyKc1eslbKm2kkym +yBnW8o2wofcahcTILL+RKT4zS+dbFFYKvkDKCXsj9K6Qg8ytkc9Jf2UAIVNMvvqx +F18B8INRV7//FcT8SgbHoXEvYrGkNuZ1OMRBVQJIQ9ou8yKIz7kWryk9KD/PDQm0 +sqKlFD3lIeK3qvhkDIqHHKg5lBPOcvLi3l73kajus1Z0k+87PqvZdnUemH4XZ/Yr +84GpuidczCu515KvheTAhMhItFZB1f0PjZM2eA/2VVW1wtzoNYhjG7WI2Kgqo6Gx +wgHW6LqOuheB42xC5BKVdaLMTLY9AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRgxj3VGnKALHiv +CQ0XzJNh9SFqzTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBADX6IH4rt6iRD1Nf7xC56mY1tove/Rxme8OG/+0Edk+E +eMALD7TnAanfeZC76F+dy+O1/cwFPwRUNyJxBXBahhTDqBz23cKXW6orYPZc5VTS +Z61lPobVB6cDNSqHKs8is9WGFTqHk5IoRn+qO6hHaV+/CdPrZ2O1NImmkcDJ+qjQ +Ne8p123PeIJ0JBuL0a8Hv758vy5+4UflAhEUT638HC5VoaZtQKvK38rK7MxoOmMp +WfLm5XDW3pad7x/opvetelUQBX/2CLFH+/5QFrcqxI3amK/sE8Lbi/7X7k2st0WY +aiAcoEhiVqzqQWszEwyYXAA68Ra1LurzYU++4pbZ4mFmS4naVSLkEOkFMNYa3z7J +6Caa2lWy5H//4z1Me2d6DhZINdQu0I7n1wOxY+CxnYXkdE8yYaRr+Z+a2aiurywn +TKdSVyfrXnxQHvK5ZlO/h1cYnEHW3DW2RV3o19YHyd0SpWgH4wWRGkgkjCNbKYRA +75om2CFwZXwbFM6Z82MEL9bCsDjCUMmqe7mSCQ3jsnci0i2WYgNU+2xJZlkoQ9Fi +6J2+sC6LZjK/7cuys8/dK9kehvO44EnsMDx0Yp4tR6ZM0KOXQ1BStwsAP2TbAEtm +GoDsdIrwhgMHQd3TUvi3gedrBpzT+5iEK/+JJCJt2IqJqtZ3bgb4apJL1KuaRU04 +-----END CERTIFICATE----- + + +EUS ATML KEYID 81B5D99CBFAC98C5D61A8EBF26A86A086BFA3ECE 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAlaNRJm/QE9H+wAAAAACVjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkzOFoXDTI1MDMyMTIwMjkzOFowQjFAMD4GA1UEAxM3RVVT +LUFUTUwtS0VZSUQtODFCNUQ5OUNCRkFDOThDNUQ2MUE4RUJGMjZBODZBMDg2QkZB +M0VDRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAN1ccX60UUQtteAR +7cHE+9isqoSwaYDGaD/hnFRv4CGh8oehBdmZ+AD5Dj35dmSNuqxVS6c1EuIi7Quz +l52dSl8PXel8c6wfF66obgHYxBmwhLqzvjqosOCDXyE0a3/PhNLXNjWdOP9vFY4F +cJS3Cf6Q+RvNi42qhHrEkmgIKPu6dR3fmtfh1FQzr1TMS6uqiAwDjMSjNFn6ANni +UcodrpFqlaN0Etvj8AshowReKzFmX25HBduv59s96RXtU3g8BflllQtUJ0AaYk6C +sgG9Ci2s2FR+dzt3T1gI3U9jiuiHSR2/5wDPN+ZGRPp5o1qYe0fUYO4MJ4z/iPeo +/qu7SOSMuG6/zFpZNf37HAm6/iu9rwPyhfdMU1BL5QLLc8z6Z8VOlZHXGzWAie3H +w1Ktdi/DP1qKUOsm5n7Jw3wlKsD3nnV/TBZwU+KyUr4dllkH6qDAeBT4orVWhN9Y +9X+ZtpqMLJEDvsxKt9ZW1KbxrgIZAkK5ZLivraKz/L5fgh48NAmZe/NaVSqLd3ws +vLSIv9U4pws7uniK6JTK2TWX6Xd1xEex/ra8ouuKLtB+OadUrZAhtAAAuVWT2qj5 +dY85KGEY2cHAhNDBapaS3StlWI67CYO7JMfzPvW/gMVOZzoIXy+XyvNyUAYObVmU +XNyoGh6W/EukBDbJTXJMHMLlXevXAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRZL5YAw6zvM4yt +Zuwp4JOGzAmISzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBADm6JRGaVIghH4sZeoWknLI9C8g6+tyrn1jmd08zwjKG +FNoKo4o/cimEMb97VpKaAyOfsIXGQg7wUwxBuBwlc7EbrSIZBXj3KUSURcZTj14w +kNGQ/xrdxlgBBZwepNWpZTRE1AaOHfaO6YexF67ZuDAh6cODyleK4dRwBjHBR0OR +dxJUaIN//caNYGnoEAolcrqZ+Snc9yKEGNs34VxPd30GYFgzQOom88u2aivFBmFe +t4pRg8kgy12/gGDGtQjNPjftL/TBE9vlpETCw2cFpKUZUX7Ole78b9/pMvWoL4oA +oiLUHnoyi65I76mXYgxt3qvrx/ZXCiRRnZ2uTFLgJPkBU3rcdcLDTMZC0uVh4+2B +QL3oj68yKa3re0H51H8tX1aGGJPDjl/O6gfEYqwAb5RdGfIq/2GproXIkPQAfQ+G +hUlAuIHjy2rRTBw9TodSpTzIC/hjFNxLLuhCdG8DZsBCj+Sk0U8ACLYnHkucf54i +3HtGGdx6qrJEHGYzR72wGzupOCjgyjMTvF5sUw92MX5XlUMT5vTKkXnZH3R2aCG1 +G/DMGhdll94uyNs4OxMN4SjNnFb+lxSQrLAnytCwLwkhjBA9lBq8tpiwas3Yq8IJ +/zaFQVNt+pJ3Oldx3cPnNLxivo6AgBmF6yVIS6BqUz1x1BSKCbel0mZJ/2LCrpKt +-----END CERTIFICATE----- + + +EUS ATML KEYID A0854BD197F8212FACBA38991BFDDBF5D13CE9CE 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAlnG1yZUqZIc8wAAAAACWTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk0MloXDTI1MDMyMTIwMjk0MlowQjFAMD4GA1UEAxM3RVVT +LUFUTUwtS0VZSUQtQTA4NTRCRDE5N0Y4MjEyRkFDQkEzODk5MUJGRERCRjVEMTND +RTlDRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJkhRYdCsaKSLJq3 +ZGYjigq2BYvu/6eAOfm9CzHnOvdOB3ehpFCU2mdQ1xN9oZHDEXUhA+AjJLttvQsh +7CfYsaJD51rxbOklLpi6RH7bExxWTJP+FcLyYzD/vQvOlgEhTPJ4Ke9VI7NBpDaR +iicKkLh7M/Z0vuZoQ2Ceu8RKOYgybuBShqC0NKZZpWi5Z/zMt6vwTwAw9uDyuzHs +l1ZdUtkyrEuBOaz5d8V5URpAAGcGc/LAOUgKkYz6cNWZI+kcFoEjSA4ovA/FK8mb +3AzUK7hea8K5TbBjnAA8GVNsUnLECZMdoboWSXqTXVISJKX/BD/g5DjShMnNLYg6 +7ENYT08KI7E3Xl74cUIgjM+7Fc6pMjhaCjLsVhMsXd/wX1zMSMWCjJnfYQVcu+uK +dEGUdXaXD8ATvffIdNN79Y0ClWBRRO+xomOq7wb/wexy6Ey8kToPYM6MvXDFwl4n +YYJLXL2+oH3CwUG4DKp39fdHzn/jJbW94UkM8GFVfEH5DdUVgXWj121GTym2xmt3 +eW0z5+hzlHnDYIewLqsVQpVg02+5og8XhhpZFnI2emAgRQp+PKjCby/LYLHTCiR2 +EqYWrCx+/QnzB4INCz9e7aXNnPjJ2Cs8bPxEalLFQ5zOc01Crqfg9qbAbTrFaDJR +wYKUOVG3drrDiXCRWiYxNu3ZQgFtAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTfG7r5WNnoL/0U +hqtd2P0Po41bWDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBADjdhcH6w1wBpbwZH8+8gYakANFavZg1A0vk582dw6xS +wsV5YWhDJ/5LjnLQQMfxI98Z3R9dzt/hfWoM53fcBs/paJcggyi7GfkwLNThPNKC +bQQC5kAuOenL37d0TzxC1SjyDx334t10gjxptVDUn/ah4hTYkvy0iYmOQ0ntilll +PreUNpueV1HeD21h0PJt8kmpzpX9CO7SLw75krVhrmQo1hpUvGcWcFu4GmEH1UWl +zanHwOoOOlSA6bAc8PxhI8M8IE2o+7PwIvFHo99doXfv36TpGU8/Da8r62gAa9l/ +UVTzRtD7OtAkOEScpLPhqAqNC6qqb4HogbbMZcFFpm1b/SYRAz8jn2azEIhRI9rn +v+8F0VVN2Vtcl6dbGWzpXZ4h7ImmzBRf2vqJ3FDro8Si1LcJT4K8SERtxzfItAzB +hkfN37TSYSsqskrErhGKTvGrnIXkD2qYZkdIT0TFYaPIZZSDnSELGJfZKFQwDhg+ +5Hm6rsm+bDFhF1I4j8neg9ykHmXDBwAfbrRt0/uOuYZq/3D+QexOgCnogHsJwTeQ +chuvPW8I3rvcqNMPVoud8Wx4qxGgLyBHbEeleqeFiS1KObMdYbyTPavqezMZyKpU +BqDXz+7PdITaFv5GULB6+p7VJ6X4kjEPKvQGB4DR7wk8M9Qrhk0Aq7imkbCm/9C2 +-----END CERTIFICATE----- + + +EUS ATML KEYID CD3401AC6E1C6F93DDD869D46A518311B3747895 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAlosVy8J4D8CJwAAAAACWjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk0M1oXDTI1MDMyMTIwMjk0M1owQjFAMD4GA1UEAxM3RVVT +LUFUTUwtS0VZSUQtQ0QzNDAxQUM2RTFDNkY5M0RERDg2OUQ0NkE1MTgzMTFCMzc0 +Nzg5NTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANnS+i2lVuEFiJ+O +8QiffeuPsVtffdjeRcNlCVTqna+2SSPRg1hQb7GLG2/oBFS5lle+FtAk91X0REHq +Gkf6FOWACN+LY1A5rhb9PGlvpv/u3epWLbDFF2dqi13OIpmRfxz0xSjsHwwc4TlH ++SfTDstr11Tfha6JE/Oh39ESI8PiXNWPfKeGPXYtjG6UKqEbo6gedRMPeUKWn1v7 +xVuZwQzeGeG/06qFhXft4fuLuNpIRjwrfLOOX+NGsfmx4x1hovpi7AocniggXhk3 +XnjpCr9wSHGHWZFaXOW88plsW8CeMlTsabkN9OMiWTByE1LJK8N7mJ1w2f/7LjKZ +467oo7nL/Os83qYEdEl++zP69bZCQGb/Yzn+v71ecG1R9/vqd7Jph3NK5zqgsY0Q +1PRyjTJggxzaxXtc75brTOE4mXh2Qo1NAOCFdoKlFhLboTzu2A9ijUPNfK1YKagr +th9DCzweVygiwVuA1PqudiaIWVBPBUcgnoGkHQP8nR2url/A6y7xuCn9cdKk+28J +q7vHhWPrlkLDAKIwn8R3SowGrILDFNT/YED7ScUo2LtCheuDN2pl1LzUxgJGauF6 +JQFKhLegC1a7dnFJiVE+0Og4laK9D/jIMtHEUlm8iOlOelUNS72TK9xapaWdlFxm +P+GYR/QkloWQ6j6owt2/DFIcGzrbAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQs5mHaTU7dPkKD +QEeSbjn9++yL6DAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAHcTF+psxRI3IMfsXh9+Kc05nFhNImxum212SscfHlNy +Z7E92hmFK1hJWqaXjAJStdTeqymo/NfymmWhvDLhrcIS1Ud5oR6ukn8yC3D/qNBS +j4kxVcFWiLGhuctafXF5xmIzcsCTTu7rt485eoRqml/8E6E69yoFFIpxRI1TqAEZ +F6HkzAd38TJoj6TW+XerCozjt0vKtInCLiBmUH+elVBF8OsFDxtu9J/QTUw6XWcW +QT5xgxMXfjqDU0bMTRn/2LeDVGZAc++oVIKs/zMKpDZV0umobSZ9pFskHVLWX2LC +lwzAkb5rYxW6jthvS4d9g9aVp77VHqrH0URasE0nsIcX0aMqaQoILkbp+gghNpXj +IdPy7Ss33OlnyLhTv9A7gwtvlEVQOkjMJpjuIKNaDuk7mMJbhfH3lOpjJYD2SnAm +gM125R1EsyfBxZg+xJcIcnkjc0qnDg1/+4G6ddocC8slHMmm7pcSP+cqDGCr6/6z +eQ6Olnim9F/7LpLv+Z25T/ndTG6EV+IG8VL0OI3QWD6QuE60ARRAyqjpKJpXh4qT +9iWwp63UlHvvQkmrqDuytx3gQcXyLC3K1uC7I0AJ/tcbLiHN+6Fn3ZY0Bl95TZ2h +14Da/N5vByJI1YaaawmQQsRLPS8HK4wcEwU7sTbcUjgU3oWeaY4aOH51gwvajHoU +-----END CERTIFICATE----- + + +EUS ATML KEYID D6F56ECFCF7EDDB7FD87ED01E127EE009A463BC9 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAlt6O133sCTZbQAAAAACWzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk0NFoXDTI1MDMyMTIwMjk0NFowQjFAMD4GA1UEAxM3RVVT +LUFUTUwtS0VZSUQtRDZGNTZFQ0ZDRjdFRERCN0ZEODdFRDAxRTEyN0VFMDA5QTQ2 +M0JDOTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMYQ0MC+6ur6O234 ++o9vyh951ljCqEgWuj+KfEHdizMHCY3XTpn8wZ4znqPL87wRUyOPB2/ghkjn+cS/ +y9Y8ky8LVseqKouwg7KTYUAInC9U0VPbyF5FcdwxRId0uJ0NMulyu/+loENcgc/6 +5fq2loO/bOaNEnpoFT5chy2FCO5EXpqIevDf3u6z+sB0RKRpajabZ3blDzW1XYv8 +2+BB6b/bP+JtwEkBcoAlVceCS2JDLjTJUaVAFZJlOuyiOtxvdcyHtBOPI0xqf0es +Dzg7iu8dZH/ftqrhY56DsaFnK2mknqlLE3VoCpHl70I2FsRj5gNl534JRnR+NX+q +ahSXusbcq+BdRBpBOobuOJs7GhYG8C/aNKafqfy7m2trsHUlzZx28SSj9H2qNHk+ +l9t3w+E77QNkYg5fCLt/1eAcGp4uS7bzuUhtEXoie1HlhLak7bM2c687VkRPAjoU +WdcrIj5Y5aolxF3WlD/Cu5YtPT/qUOevP2m2+7zKaq5NRx3esGMtdE60ytJcqbSB +ljbp1hVSjkwoLwOsJkEHN1SylzYYHiHTaefCJYuyTQOtoHttH89ExvBMzsa1Vbj6 +Fp05wgv1Z4XC4MBhu6rpbnj3seO/Qhw/Q6IZIiPrMDZCH0IxrlKtIQEshjEGfhVl +vN+UBIwwbS6fqRI743DdEDklJh5lAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSfthvQSUEhRn+q +zE2azzYTDss+8DAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAJfr+6agfBufsnCpO06sX+5tdrErHH1j+BXR+DOeoS7Q +YoGCUAqxR5OoOZP28+NWc8ioNFeyKfWHk2+lt+zumFXEz5/tJK0D5J5c0e0M6IJ/ +njfmWYPmpqmHK9LfGrhBsmCtX1xbqHFjrFB1YRsJLHYlGTtOrCie3zwHJVInaK8Z +qUSLQbxddg8BCFJJcIrMfRtVYffoQQCAX/Do/ViAZ5BlBSStcq1t04eSxwhs0eOB +TkuApIoExhcAwt7dVOxyFEEf88qIvfnXvVX1ZTQjlPd/F7QcmMDHWvWSpBiUUlAz +CUiTWPEA6cnCFweSLImKKJFBquGM39RQUiwsNPJrFsNevMYNt90nKklzYwbdspsb +OOvCPW/qE83xhykqF+jBVK4gKyCq0sbx8FN+q5Fiu4RjOtaTkMVtfrcQ2QDW86iZ +2IxqH3r2eGpSGmOV8+Gy4GtlvtkG7egkR/0v0Rndu8YjH2uyukRj+f9WjZMAQ49f +Do+B2SkaXHc/7JUwVG56u3WnbXySXNL5JGCmRkCZq6o9V2NtkOmrUpWbDq+vzyp4 +MK2RKVIr5f7NI4+bq92fPKqz4oRL3X6J/pqv6UfiWl98yYMT4Y0oPDIfWmFzvro4 +gOlAW7sty1Ey1wR1lzogPuhAG97hPkt//Y2SqkBBc34Fz9u+diZZaSlxhmRNaZBY +-----END CERTIFICATE----- + + +EUS ATML KEYID E0028D87CE6C67A8751CC4B5D74F57622E75E42A 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAlyYHFbSWlizQgAAAAACXDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk0NVoXDTI1MDMyMTIwMjk0NVowQjFAMD4GA1UEAxM3RVVT +LUFUTUwtS0VZSUQtRTAwMjhEODdDRTZDNjdBODc1MUNDNEI1RDc0RjU3NjIyRTc1 +RTQyQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAN0AAqFEnjv7Gom2 +Dqfb4TWNf9Fzv7ixxWGbmvVmA4gwMv+S7XwrY97a0yTs1UKO/EvqR9z9r5EHZnES +jqY5zJ4tIKbz2qjd23qjKT6qBNmsFjU8Oddho3ECom/DpmQF3iBLUl29IyEJaTm4 +kEl1jKufRyl008zoPXARRIMknJ4hAGiBbi4o6HI1M8nPL6xuuxjRvTDQW8GMxABQ +WgceYs78Z7MDD+MNfv8NzEjslYPdicEDTM82TpgG3e3n7VhBp79jddRTSW8Lhn6W +SgKh8WLVOXzdK/mfpQW6TO8eKuJ/GepHTA0y3AHLCHHc1wIxEQuzoBGsGnCEUNRQ +B7hhjAkrMdrwcQdFzq1f45O9iVAxljZhywW0F7JPbGQicLoqw4t6y8LoO7gwivkg +DyPZKWbtdkRVoGJwvKBMtHHG//CtVCzN9PbZfORizCK3R8ArpAhG2YZcuaSjGmpC ++eSCkbSsEI2alKlMhyga7TmhR8F5ertpRbDPRG5f0m3Hr7nNcS8sJkCibchGtsyN +HAcpmQsI9Pgbuj26+woMAT6zJ5jhmrznZaKckULWimdCWAAPXAQcHN735wrDzwP3 +n8y38b1b210SBbxXEM3wCTrSyg+d6xI1YDM5xV1WeVon5zvP/650Tz1uAPwzHQEf +SO9zKVXejdjQ+thfS06BQ8FikJf3AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTFncVSfAyXzbLK +inR2jMjQ122BSzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAEfS/IrePpho1AUmhq0kPlvfVPws8qoOTUprofXLgrf3 +8b85xYBbyOYUFhsrKEI9Yvz92NGuEUMYp1Wwu3cUsB2YyeH732ducHsDyXXcoZYH +5uJx3yZnq9tFSupkcZj6ZQWgKOwL3PKfMDs284ddTxztFP+M3hClfF54qyisVqeP +vXGS7Hn6syWPnABu5gNUb6eit1fa4GNo7GPWWCeXogzI6IA9YWdlqabxbM/ZlYrZ +wLfEKWupaR3HhV/m6DpIZa6oUFmqvcQqlQhk9y/XrapMbkq03KbnrnkEt3r1yPoG +/yH5v8vTl7YVmSW9uy7Ag1ozBUowHJCzo63JniC6jtRO8ELMHqvifMAlpcYbcrY0 +2R2CKpVO2k8OjWToRn1r7zMYdHfBPL+hypem4fk9zKeFXmnklnekmwRDu8JZ6Luy +V+ndYS5Zo2snPsa9OPFn3l6rp5Sgt8683qrtPz9N0XiZDGx88ldDGF3r3SN0onKe +sSSD+e2v8oAMOGyfvPMntuKdgjV69lLHCIVGFpJ0l5F0aPff7oy8St3QBQNDK73x +jNRFl4Xl3gN0Iyf13wnE7k+I/iAQ5D5WFnk2oisoIeJKN5PQ3meuskUQHbhJC4Z2 +37baoE5wxa4ap9pZHjT7HcgfGAxy9sGPC0/1raNEqe6Zo5d2nYOUwyYk/bknkzhV +-----END CERTIFICATE----- + + +EUS ATML KEYID F761A3A1F408F1090797B87127C2A2397C0ACA24 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAl23M+v3G5a9PQAAAAACXTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk0NloXDTI1MDMyMTIwMjk0NlowQjFAMD4GA1UEAxM3RVVT +LUFUTUwtS0VZSUQtRjc2MUEzQTFGNDA4RjEwOTA3OTdCODcxMjdDMkEyMzk3QzBB +Q0EyNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXG8rmLP8vvAfAw +q3NGTUa8MLY8Rj4G6p//GpRBTNDK/Utv9U1ruXG6wFlfJJ22axxDkrzxHIEwZN09 +9v4KvECIUZNNdOeEpUS0gslTw7Z+ikHSBRODfN3j5rnTkwug31dJ9KnWKoHqCB+b +U6D+Y/5KiaKJATVLdz90oKXIfdm+ysKaZjYAb/iTI1BBOZ8ZpPERshWIubcEDkPs +bCbs9O02MsPp4prZ/L8X74QVsu33Z65qDCP6f8YNqnfMKmKwszUR9vySxgGpF2+c +4S/D5btvyK+SYD4vB4TneX2KOsWBkmGpWlzcPPtx4DKL1FeMbwHWumlj/ykZZRo+ +JWbNJkXkOBDd1/iYz1pfWdOvkMETrsfSCk9r5p9F3YwARbtmhtYATtY4mwSEhUO1 +Up8z5sh9BYKJYup4PCx6RYQgNbDVJ0D9gcrnV4LdFptOEiWd2itE+Qy/8l/FBy9J +jNYL4FtGN5i620F4Wtjha4r2jKYl0zBahgIEFg4z7KjO6QyMnZ14jfCjdEJVqStO +NufOV6tlza0TPVVzQ2ZQpW9BTjNi8mnUoOIuMhteXDef8JFJVUH3SSm8k64HiOAM +H5+U3a5c/+G8nILZZy5jTBbXV6LtLDgM9LqLf8nuSgn7p4DYp2H0WgF2/yc8z3Zs +6GASVzi4aCwp00pQ7Usb87XKNpFtAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTctR0aFx13GNry +bNmZSE9hJRMDZDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAHycRusJ4FmWMj0Igu4aaXG1R1v3IwbRZIJho3i4idT/ +j533JxwXOTfK8s6MVmjIr+I7+nHtCxYv52lCcjxRJ/1Rnoz0LycQuu+rFti/lJbE +rlsFgxG9hWu7BTbGwUSPuA9kM4DTtELPJNxpsuec16hOebru1n5+ynExm87DG+HI +Wf/G3BgM4PRy60ifpwldqN3f1pJH8jSyJfheqqx3jQaa7ytHRvYKLaLvHhJn5Ha2 +ZumTwmIEsU6R/E8GR1QJhjQicehsUGciEp7qzVEejKLXqkbJMhoj+GvYN0BDn2Ej +t25cL+hvUGRSJR3U3jHwV1B4U7nc0oFeCdZBcA4+/vifgrhAkSwWVB6p/6/8Cn6G +pDdc2AF7g+Ao+WJbYO0KYKZqWjwS5Z6iKJBY+u88iz3fDx5Rn08djoNroWcub88w ++1WWuyCMj3ce4og1tN371z+1Cy7Ck/YxVkJmJAA8fddyr2szumqlKdLen8VEufKO +9KO+YDGgHQNmyPOGEI+vjLCyOK+qzTonDf2ao75xhYEwRbCS40vv0o07ln47UkuX +2LyYm8iP4hfnpmHtMaUSEsmu+DER5JAQ82F5QxEwklAlXtVCttgfEHBYnyTCU3Kn +Xp6Q73AF6KdiDAoeCyqeILPsOf5u6WZvYvcAL46CytUwXxOCSZRStl1MNZqaLPd6 +-----END CERTIFICATE----- + + +EUS IFX KEYID 090CAAE1858A3C3A3B6D4DF8978916FB205FCA90 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAARsTlNAY2cDUJQAAAAABGzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjM1OFoXDTI5MTIzMTE4MjM1OFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0wOTBDQUFFMTg1OEEzQzNBM0I2RDRERjg5Nzg5MTZGQjIwNUZD +QTkwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAifhM15G4CTA0jZT+ +KOiN/cmUIWA6fKv8T69ABsR55FZ5Ll0MWcuSx1crx66qmTx1Am5UR1aRM+93CyHs +cIBLSYq07Tu7ASu2JMrHJWmw/7Qfr8u1h7u1ttdt721QKmmuzLPRE6ebc+fwDWrr +I5qQ42zh3+o2RFmiZGmNqrEas01TIz9NxxW4qFJha6AitGtph+L4PU/3yXf+iRIH +dh+qnEZIatn16j/q7A4gVU02oIPUnLXVb+fIHi+mrB9Jzxe3LFE8s7EGzXBKM3hQ +EnDPqk5c8XRMo+WBsxjs44MwdFPJovggKSbVlNPqDV2fT5YzcfePShXRDmoN4/Dd +GNTXUQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU2TfQ4oe9B48sxwyeinFxwy2Pet4wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBPpfB7 +FWLfV+1OA087YBAOXH4OQcUNeiblKquRY5xu99QSJkp3jarBKx/Mq29u//oEy+/P +MSymhC+fT+CTmuejxDZgc+s0rIgZoVi9HDuBD4sq8StkThsRuD3x5RY83d0xncMi +ZnSNPMV725RyTRV0Yxo9I5tTONGJSpBYJXyxnW7xI72y99IHP9TScq9shaEMD2kp +4I3q+bPTSaVAU1i+Yi2PfVoYgcAtrHQzOJiIh3FcBhUxvZ0SlPJMMh4j6C0QGrxP +hHn5v8wx02LDG9W/RjeX19pPgklgkD31FfhRkQwUq3J7PkKprw1O6zJutwvFr/q1 +ScOpQB5E+NuBQzANAqxjvFhD+3RKQG1Tnu7ir8qJ5AsL4lcgxvQpQo6Qxiik2O+t +rCanuxWot8nOUSp/dgD+bmjZB3UV2CWjAIdk8GzxDuNcAZF56lwYdbecywKyy0H1 +gXtff9hTZkrH/b9AWSbWmRrBuz8UBCo29xPKaeDbaVX1+ZcY7GbiBCEwaCaAs8Bq +JNcfGcFMay7Ozv5qaUpptj5qw2g7HawINcfFyjXjSV/2nq/PQ+CtxI61XOlyGDk0 +hbb1kOk0QJj3QkVfo2zKYN0RgtDrl8PFpmqGJYHkq/CGr/pd9Q49jNAwMLgCjzVi +Gcu9WNN2XAeEYwojqaMAcKWfkDunB5FQjAut8Q== +-----END CERTIFICATE----- + + +EUS IFX KEYID 11227AB228983289AD2E7EE6841321901EF592F6 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAARw5hpDDIAE1dwAAAAABHDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjM1OFoXDTI5MTIzMTE4MjM1OFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0xMTIyN0FCMjI4OTgzMjg5QUQyRTdFRTY4NDEzMjE5MDFFRjU5 +MkY2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjzFu7ZqP++8YecNH +KarHsVTFujdMQW6oQ9E/kuUzqSl+IUhgwEN8RZsvTteRWC0NukhT1N3osnc6yd/S +YBMMbJzm5H6JAlmxXtoaBfNLV18k1J4DZzMFl3upbcorn0rGz0uAi4HdiDabpONb +8vK+rWFQibfs2XjDVm1IZkm3MZXtfFhWDGDyIYlQ88pyOU61zrEtci/ZPaXllKNy +zI+ZKD/ukDa/Ku3PoH7av5iKAqk/wg9Xc+Ni5I3y89nO64KhSqUwbaHrrquIC1qp +aqa2tYWDDvufhBZYjTeCLpQPxi7/YPzYB18P/UOH++whcyCWuJ6rJuB7zIraRuRN +KCpJCQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU2nrCJvqFh8XeIOabudMDqJIGYKYwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA72Yob +ByQrTnXaStPfn+gsWCU/mEbYxV5PwQxh/RrEo7+6Z2BZ1MB6DkaE0naykktueEe1 +n76kbF9d21BMBsYqCh9n5pmsp6G9gQVKCK2WyvM+S2MsbyN01+q30Gf06QOGP8Ic +OmCQfYZrD6DaF24om6FllUrmQhHlFsb+hClnCQEYuL891NZaIgJSvfj+jYn3bBwP +JKZh7KvqM9LjSsxCTrON/T+eh7qdsGPWlJZEJUOARP+7f4rsggH67T7vBqjSpKrU +SesBZt1I8A8weteaIeTAGA5JsNBzskrpBOtSqSzN2gbAcddY7ktuscKQTujB24b3 +g4d4eOv3HFaYNygWVeECAtQ+pkEB45pQtynvmfB0iwXWtlk1LPHc8Dy0tYij47+0 +PGMARooCoD8sTYR0akcdKghZYGgikt9DqlypKwGq3i7cQnWumCf3+YACXS8YIHYf +nYGo6+NlWD+N5JrzFrVFGMWxndCizLKNHKcxR5r/rYBHcLHrYZBg8u+A6JsXcXt7 +8J6bld83jKbBai0aCd95llQgtP2Rnz75TBEC9LZJZbBENU8fwngbS8ha0h8iAC4G +R+5iY5ETASPib907Pj7tQsVIetZVN1HG7ouCJAGgvTe3Yii95f7RWefhGQGUKI8P +hrWiC298Sgj09DrMtWFVfKwk8ti2bH6cyRGIqA== +-----END CERTIFICATE----- + + +EUS IFX KEYID 11227AB228983289AD2E7EE6841321901EF592F6 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAhoZJ6vf/8RoMgAAAAACGjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMxOFoXDTI1MDIxNDIxNDMxOFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0xMTIyN0FCMjI4OTgzMjg5QUQyRTdFRTY4NDEzMjE5MDFFRjU5 +MkY2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApeOrMza4KgqnxXC5 +EUuY9Y+aRWmi/eTEynIdsnPL7hEQu3gJtQLMrfVyfCzeFwygZqKKVxdc7hDa7XDS +6w1N9lRqqYlqnl44bsJs4MnHy/I0XPMIFiVtRxwJchT3fNdZOR4Kit9vsxquHwHL +pB3elWeDUEW4H8nMevb8D3gz578Fd6NlFZQy29fd9jkK9HV7qPBcSh8RXD6dTQXb +7JjG8Gh5SYI1AXCSf33xkJ+Boz4pMysi9kWrIcd0QQq6hpY1iEuXbIKwWjMhuRLl +oU2p9VPUFoI15KN/JxQFrGZz6XF1OxQwEXxUJh6kw+iyvICxDc2UMPnpLwelAGbu +hPuaYFCqj20yCi67ZNk5C4kLj3ac1eUSN1IeXjl6Reag8yBrkLmNTReMXnHz+g8z +0TBDNfyZA78jF0D7EOPzqGLXmjOr6oPxfPjRTDELmyT3/fVaygsmonkaniQPlula +bJ2x7gg37JOTUTsc89lxcfBE8jzByV7HpqxgnTSCx3Zga/fuzACENGV/N5/FJUza +LPiUWhO0t8HJFa3HKUi2SSUGTY0pDrnOzw793Ebq88UP6AKK/rRA5UHqDbd7/7jb +MH644ML8lZ0QeuuKn1oj4wOyvL0YCvpIyNHbOHSqcQaZhATdDomJdRVcx87YHvyZ +E2nQi4xJyup5dY2vrP8ENRHcaWsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFBlJ3woeZpFT1N9 +1cJRdcKNM+iYMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAHkqhwmv+BB0A1LMPsULW3OoZ5ddO4qiRlHwIqC2rSdHr +Ln81GwB2EGM38CtMxznnxSz0KvaYyMnTlYZj5FRxV7jZdIpeJnb6/pSYcbNX7kna +f++qnnAccdW8B09vEhxacz6tAVCc0ozAFrrFBmxEVpVFzcuGHD3NB0MhrTerlZmX +cJTLx71BKz6o4EIUgN/m1uomNpNl7WdIpqTBKiYQ0NY1K4t81TbzkUGqdTRnY7rz +0/ReGv92Z4FUwSKjykldbGOATM3/Q5wpu6Dw6U5YtJgtg2gVBmqh/+Kc3xt7UZkp +ATxveEJ9RYw8Z7CWl+bIunjPNwVzOTkHG46xnmeTd9Yu3F+PY+EN09hplPiZKoLN +TIrxm63O7LciqIgAhUBBv07IRCUgnuZ/w6Ef24KWjQvD8spzSIlSNd43UX4vrDER +p/M2CNNt37R2YmA+4u3QyTq28KJ7I+zL1o0G+khQhmJFEBy6MjgY+M6gfDiv1TI8 +haPVAunn1MPWIX/cmyeRDnMg/JQLc4GfJQqdpi3i9668hpxMLPSDajyUtXrlBROj +Buoz5XW2AbETtEE1cKZcqoOFN01jY7YNm6JucZfzhCX5QdhMGi1w3JTStAzV5a+E +898pXUno6HFc7/qInkXVk8RTUwCsWwMrFWENDSU8HyHhjLGGIkRQuKP5Uub20ns= +-----END CERTIFICATE----- + + +EUS IFX KEYID 128462F2A0D16CDE1946F1000544B055BC113D10 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAba9a5cZbUQtBAAAAAABtjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkwM1oXDTI1MDEzMDE5MDkwM1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0xMjg0NjJGMkEwRDE2Q0RFMTk0NkYxMDAwNTQ0QjA1NUJDMTEz +RDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArzH+FvA0Ieu6A4Sl +ZkUQD3/JuigC+tnVxK6kG8YcQld7EXS9+tKRWDLqU+6A4/uHoSVn8k42V333B8fB +gkcUzmZAH9fOuoXzWhIYp30xUmBhb6TiZn/gPA1zrCyEX8Z78RXk0amowKlCLypH +2XKJ0HYpW/GfIYr+t0kY/2+3w1ZMg+J9Fu186rNh5OKIMicD14s1XmZvTAY4Lb3m +BjLQU0cgBxKejrH/sG1kc+v4rHAAIzBKuAii+rJlloSW3HAhxPQpy70JlHcQdc// +PkDTRjk+6D90nuPxGcZBltJBkNPbSlhc4M249QTV9tCHrPysAGbK4WQGWk2bz8gG +0wZRQ5j61AjdZcs3+cnBhlGi2+CW7XTWbhdlA1K5qwicveDtQOpv2ebbHzaDfJG0 +xB694PR5y0P7nrEdMNLdHAo0Nv/yFf0IpKzomfF0+MOQy1Ai0Kn6zwaNYy3cdrnI +dEfo2VCl/PhwvP98LGY4/JsjSc4uGUdGmc6X69KP+GqznUOO8obBixsSGe2g4cV5 +E0ETC3fHp/O844H9kbZnzX2u7xetdXYfLzJOmo+/RfgDiT5f3nx5Lxyp91NWb3B/ +bkcnYBSUsjkA3o1xbUR1QIoAPLH8ded8ZEJB5yQHsXEV4jAFYw7YDK/7qj/BFz83 +ey2GIPmYRDpPGZ45q4UJCBCzQPsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBFefSGesNeSe4zM +RuRkRYZK+QaIMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAnBJ0DJreJ6JSkEc1erludO8nioAOu2rBsVBQ7r46ybV5 +7WJd7Wmd7nbNYbK8+vlbtrsazU6o5hEd0Z9l2AIkt7sLwot57WP2e+wMI+gkf/w8 +xkWPu3Bq+wOwYRzRPM+5SzheM7KB8mXUK0j+cptth98v35KE6gI58K/IdbatX4Cp +ouyqxoVeW90JrUJi5qGlpsS54SsHlzc9X4OISHU8HhH7KXqHxSjgh6I2iq7cpcIJ +6L5kZEQ6nc1/t2JC/L88/tAZU0MA8QRaQ37vQx9EmGC9b2K5GyjbOmaVUPgrUI3F +dxnDLwYRQY7uUtKl1+4w4DFBJxRWToIRXH+kgMlE264eoOmM9s4jDnYnaKvBk4VN +iFa/O55xDLcJxWUaB0PaLadFV1DnuGJF46B7oMofr8WkCB3hZyZH1lGpQ/h+/pZC +vuwuVxhT5VkRwp4oOrEODmEUG4S4Vg6GD8HBuIkDCcNi8WxxsuV6qvc4HbrPbXQx +X96NqpyrhkMS9BQKezjZFl0a1Q0j39gTbkeyGU/OK0UQHMWZewgrH0wCccEPhxGq +ID8IQKkom1LGlseVmRFIRZVCHzJY7pFt7+W9GbhfuRHpKQIb3doPYUCF5omGBKWm +EXK3ZwL4vrUlXtCUlwLo8VcVipmQQqpqmV/WyB0A93RvPOTvsprOjbIuEv5DtmU= +-----END CERTIFICATE----- + + +EUS IFX KEYID 1BD645FC1F90827C283E6CB526859FFAB0E0C62B 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAhF4Xdp0sMlSNQAAAAACETANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMxMloXDTI1MDIxNDIxNDMxMlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0xQkQ2NDVGQzFGOTA4MjdDMjgzRTZDQjUyNjg1OUZGQUIwRTBD +NjJCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAo8JYyj6mHAGiMjqz +kVqvKMoambQ2WLUR3m7cr7TcUB4hWhASJZRSa4elIBwr0vatcFSIFtBQqSOOJCsn +XaHhTVLTDsCDCcaa/AU2ZlFRCHrUrhNU5Rh6mtgKm97MLWcFEY88nBxLr6rjp/t6 +5F/Yag2n8feGsIrkErNz00VWbg+uf2z41b+3haEG0Yk8F6KHOcVyIZvFavWmuUlt +QKX4c0V0byR2wdsuAxEx5bY/7dQ0DGQR3N6Ft/IH7/J3zXbmgJ652xA0h15ZrWDr +awZgQ7fDiqCl6y6fp1O/+2DUTBYb2OF0LU80wObSDpaf+dq8lIzJ70hDvx0iFNvT +mvsA5mf8hTcQUWpziXcNOlkEJdLVXUNGkmvUPgr+S22oqOy1G1ZPHBe8F2pp14qv +YD0LyS3tuhOTTnPNAZeV2MtjZBuJrVaxbj0Fehudu5jsbFN9pIyCfZt804D/+fwh +jGRvGmziT7B1GXlnM4FQg2//QtDJXq8kRrB9WHRHg81LfN/JXLzZAp6mdfbtYwWZ +AiJTzH3T83NAvIzcnWf6iRSVHblpnFuqWe98aVpCqtwrrIXTRbKZBuHG38PIDfWq +X7hN+mOpPAdjI1+Z8NusxuUN8mxVvSXhpOZYYA2yoaaSH3BA7VVBbNx6OrI/Amso +YjeSNWKXMO2nxXjUL2SfdhF/x8sCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDLGCjJEsQQBnsQT +avwIDKQHmvySMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAekTOl6SjZQvTIuRVTQSIxzHVfxgaHW9xHDzRtt5El8Oi +d9BKK9WCGxYM7JSBjTLqzzbwpoF+sILLNlMqHK7PdfSUStrYEZh4sjFxDpmkqyYo +DrG7Bx1bMJG3Lj1WARoj6m530p4zyu1rmFo5DU40Wnwe9FLgedo6cjdrZMuofJSQ +PWTkm7UY9ow8FayrDPu7mezyGXjnvBgcB14BkDLymbVouBmvciU1/l7oYw5hsf/z +G/+xlxth993s/JbbOS+wySs/IQk5PNN+X6c+bA+465pB/2QlQMKINaSj0Vn3+BOM +f+sI6e/8vpWNRT/qsiVM05+ef1Z8RO+YehaIHhTCv1hpDSHkXcBu3tFRCnNjJeWO +alMYoAF2wnHD0QRS3v4Jz+qogrClTzqXTpyM00jTyJ2n/LoBHr8vmN1ZlhJyE2Zs +36yu30OPLqvbs47CdI0clbr/zb3I8gEc+4EiX4jaFbEq31qxm8LRtht0aYePE5HJ +HHp/QfFGsaXAQZ4qbavVEVWbxZGiIbULWYQJw7ckijTGvbnRHEHZkZKfylkhqpNH +zpMR/lMPpRAdaGXb1xRoLTpk0ZWF+vFjAEIWUUbxjQsHgflhwOOi0mEoYCODVcpR +x9idUZnJdGWN6uaAXwahPIUN4xIToFEgG0Xf33U1jQ4UiJ7qbwxt0mR5SVLCwFg= +-----END CERTIFICATE----- + + +EUS IFX KEYID 1DDE0F406D122C3E5A4F861F94876C9E1ACDD37E 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAbDFOAd/UZ+ewAAAAAABsDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDg1OFoXDTI1MDEzMDE5MDg1OFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0xRERFMEY0MDZEMTIyQzNFNUE0Rjg2MUY5NDg3NkM5RTFBQ0RE +MzdFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAn13QOPVww49WXH86 +J8y5N6LX5mxCsnYQY4+4m9nyXrwiQfZbyLTfPCw9LFebgvYq/Y+vUMIcQPt1g33K +BMmyLzI5gZFoifdJSdWiG6UoIxq5yPAbW/TIlZZ2/uBSepmVy14RHaZFql9/zq81 +cmhlvrmLzcbZR0zLeNbuHuIzhQ3Jw+9i85LyOsDpmF+CkRu9Uk1WM8gcu/ba+fyh +Pb+roYrMtI/ThwbG1A28fJAc69OkiTrTW2WsSLjjiEZ4mJ6pRg8yWEY6iiVIsaVL +o5ZAEG1Oycpyg8V8NfB8rtigOH6dHxKtQDhN6Ibtcav8PP+Rv2S0PyuisHrCbE7e +V8i7Wz+7yJ6Ok1jXX63uqyUsWd4tOa9JFwk+NYprXVKkDkoAfOUOo/4iDFmfvv5O +ljrBJhjp5rYBkEZHh4G+RPnrwyk4WK8zCe6Wr218MMfSvDxU+eed8gtrNFwlwUQ3 +HLCcoHHs3v36kHlUe3f0H/rc6RWXSVfitJuBCCFHprXkj9nJooLLp3HEOyGFeBhh +FWLpO7Jy1luvyEX/1AmQxk6mUQvwddTbrGuwaIq/t8sG3hBvPqCrzXmMxMIuLa9v +adlVdayLsp90Gcjt7fQsDVGbheqd7aFdhKZ6D8GdE9LypZEV+YApbIdu/ldbqccW +0xmSVuB9p0bkwRaNUOr4BAiu3CkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFLKP8Wqss9HB+LR +HIKPdYL7IG19MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAPA93Nv2HmtBBmt+inM8+Fhjmx8rBS82rcQpllkEeWflA +eMfKQ1cAUVc2OuZ2joHwlwoYufDaXJ4st1kye13HBxV9rYQrdBDv0oBcHumUBhJW +8nui+f38nYcFvMeVlt2E352UbpihJiIvCEBq0oU6/oH89atBJ6fSgj4icrmP2+wO +7PCr/l0MRN8s+PybWlMpBCYVjIcSrWsVGuzCZcbxfvVddHqWy7xNmHDh8Q5s4Cim +riU2A8hUehWF6IbtVzLQwSYeibLfVFFdeH7ZceC1szMgpyAKzAx3WgpAaAab3KQ2 +hzXBmNMTNsVp2hyJKQ+0VVqX/D3KoQ6zb+68OT2ml4a4aIj41/rCKThxmPloZ+xh +ojm9N/r7/ab2Nl8mv09IGAxlCZGEuXZe7fgrDMTi8niXG2YgwhPC7wxZ2oZgemky +TolZ1qrNrTM8apwzp24QhXGxsEIoLIinfNuzw9er0cRjwBfrp4U5M5ODOgih1V37 +sXkZlhfpae6GTKVufhY5312RIBUpNihZqebXzycmSldIH+/AE2/cZlj4aNdsEifo +oZ74WKneBuCArgXFyO+mhartskzWwGqvvwtz2kxJLIkdWZtlh+zIay9eIOr6oVrf +vqlV09cFyW/EBVwuv/0GJFP1GL7G7Q0UzuIVRRadF96N888tSunpjw5WzNFlrSM= +-----END CERTIFICATE----- + + +EUS IFX KEYID 1FCDFB8ECE408675D963E5E5108D55C984DD797A 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAl4ad5Nz0f006wAAAAACXjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk0NloXDTI1MDMyMTIwMjk0NlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0xRkNERkI4RUNFNDA4Njc1RDk2M0U1RTUxMDhENTVDOTg0REQ3 +OTdBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAt9o7/FLymjs82bAw +nGsA4gjvoyIc5jc6YNLCRpzVZMljnOwjtdbIr2gHYN29z8sAiHiTtzTVUxAStVIV +HMKilbDYdMW+NwaqcMy+XUfOREEC5yQVCgnZjju8qwTW7fu0xO6Ebiy5fdnFapl6 +wrYszPuEf3Q0Gds1JKMz6Bcr35DaoSzb1YAEYvdM4y+VSOuPca4M4oKH1W1rtLuy +VQ7k79zz2297B2//f+KPGWXlMQxn8EVitta+DJKemS6aw9nyG0RSsBsmsRT4uKP6 +/Wv/DwXMLODU2obn2WPT9M4rFUwmD4O3rZGoqeYXTo2paIsM11EaGJQ68W3/7wWl +W3p6t5mY9eOpsgX08Bdnr+fkvIxe0N1YvOKIyqLDqVyYvhC9FXCTeA6hrC1dVyMq +/Vnn23XFKFLQjJVpKebSoX2CnIdzuOPWjdV1fsGiv7PF4QxJ9ZiLB9qeReoWLIry +I04QscjeHKNhzrkxqAO+rUob1lZm2U8atH8xtQIgKBRTQkSJvHxYzMXmG7Nlc5nd +FjNa3nt0oCvKtex+RmxKpF2Lv40RveGaZQe2OvRb+1+fGU+GiR0lmZt0DmfFo+mt ++6F3onEAam8J/EM2szX0z8WgCr19KnG9mGVXUGOiMkz4TRK+OJ5T5GHO6vrT8BGL +O15acBCgOWdwZY1E9Dl2nJ0E9RECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGJws0chYaQ4IgV0 +aA77ygndFW01MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAcLfZyPBeGJFBdSeU4fAxukIMr8kfP0pdevXjUKUKogeQ +4uunojJ68lGGjvmZjRm5yxP53qdPsLvaVnVu9abOo7E+AoTk1mOk8kzfUBeQ7Tpk +AByUeW3BhqVY4ci2Fx0J8G78s0Gp8FzFGMcTQXdKKZqEhvnxMWILIDqMg4ViXs1Q +ZmdwJMihsGNCBixHyp1T/AqUAf+4rd6Bm9AP1BlJ1SUT2UPohW7H9P+6zY5Tl+lA +aURBdOcnw5eiQYSdmrq641/G1IR6ZeWq8dk42l7HJgCzvxSsu/mKNBNOVxPhVPeu +nw1UfYYuUIuGKgdDHQomW5Xv6zr092CST/yA/xxomqgTIa+wluWqOawqxBux6MK/ +DcjnJeDCyepulJq9qq2phwuR0YYpuc1Y+VUU3VMO6Nn7qv61e/igM+zeNcwh5wxt +eD7w0/ybHWhL6Ol8ssYEbzRi9fozeNGnix9ZtcKbsS50SXTly+Jomu5cg4QtZEDI ++yqhs8eZ7q0sj4eF0k0gWMrRxSLGAD0kar1DHQQgt7NTpmq5t3JTL2C1RUUBeAxc +YMDc+5Tz1iOOzwRPHF/aNiC6oWxrb44W1tvsIGi775qjVufDTpjVxEwV/jy6R2tC +j/CAp2kUM9CdbI9kOstNj/eiPPpPF9HjJtr8z0MpRCIHWi+DwSv73KV8qBs3MHA= +-----END CERTIFICATE----- + + +EUS IFX KEYID 22BF9BF4978F4F45A4E9DBF729D8A08ADCA0A82C 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAbO6/Zrd5mkC3gAAAAABszANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkwMFoXDTI1MDEzMDE5MDkwMFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0yMkJGOUJGNDk3OEY0RjQ1QTRFOURCRjcyOUQ4QTA4QURDQTBB +ODJDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAl9VnCiGZ4p+6rPjO +5C7RYOrAxQXour7xr/w+Zwa27OM4WyrW5DXe/SUWxht6/qbELqr5JGtBRxsfzKnH +l8od+kc7VGWqEU2NB31HTFyzGtnx+YcvstteT2wX6wwItyhWHGDmh2a0/B7OaKA+ +nbsW1/UP83hTkTh+6i6EpH3QFsCAOT/rBaI2QEQ6mKVVEw6U3+1My9x9dN8hmGiU +wbH/K60VC6QVOf+npjOBh6cpB018P82wSZPI3qbUb3GEW2CbMlUTzvwR7P7E/ogh +j0qqgGdgOwHsrNHWSMEVuCiWSKXRU/pP9/5poy5vwYNTyWPuB211+VqBdqVzK3lm +RJNlO0evLG8hF0nokcc0HoqRW8EXpw1u8upzsQLWalvd2Gh0WB09jYU383J4MOGt +fMQZSu7Y+XNWbvouDh2Wu1KlEATqALHaYkV9hm/W2XsTEg5W0iz1eCWPFF4v2etL +vZJB9YlsyjV53PXOsxnUijDVjmiUZER5B+YB1pHO+U8WULmi9TdnvoY6eLQZCeOv +NWcVSQUG29w+lnTngyF/yfPUbDIa7cMWgQwoSJhN9XeBldjPlTrA266FQQpsN8JH +QQOZHsjVCIPbs9H5HN564d9v8x7jJGK7Vrv8wyLXKBWke6VlU4tHw7GE6z0SV3gd +igAq8CAP3mGToi+vilnsUbyUif8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFnDcc1UhjZeadCH +TBhevU+8qALvMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAi3lP0tMGvGbrAdMCF/D7tv+iI/bn3I9MKvHmD70YWal5 +lIboCCeuo+PoMbTxUnSAbN65H9K+Jq1hDlkMgyAMRI6xzwepi3bnUmzA4wLP5/Db +wcfyrzUrvV4W5jw3FGeCr7e74pdfemm3xxgE9/ZIhjEuXW7JMPNmAXhucwTSb7x1 +Scdaa7EV9eq93GdzqG5EhcY5HQkFqY+kRPCecAXq6Op7oYR8mdmun0HSHgdyW+BJ +yktLW60V47lLTDLfMNTFUl8B9x2g+Y2/WuhpW3zNPoxn/HVOE+zvyX45sBxcucfw +rxhBhd+0KKqMWpzlvnBiF7fW9nv67XMGEDkFIZEryAGdEK3Cjg9w4WipHLd66Hwv +V2ZKk80T9h6WWdjuwyqcBzw8TtScDoQlwhmfvsSKbPlohFrf5Se9NLd8PXdTfPYK +Q7RzHk2C6mwP1+jks3EbhixBjvUhmWOoTOufLRKxV8t+AjGx9B+oK8earCtdvuZS +aKQWqCxUrvIOJVSLrW6OmY7eH9yc81w3dCvDRafXmqm9IE8U2+rCRkTLBt9wHu2H +D0LHBcPR9nmEiYSR5pvHVqfJ+pmMaU6S03gh3xCJWINRE56vY/DMGuCzFFvfFZNf +PcvLll8JDU7VDyhuJk6AG1dYvfhJ8SznOpfFLxZQrpAYR7kvgAC+1qT0cTgTe6c= +-----END CERTIFICATE----- + + +EUS IFX KEYID 265CF32470FC4D93C7022FA34AB4C8087948454B +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAVw35o+1HkiHwwAAAAABXDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDgxMTIwMjUyNloXDTI5MTIzMTIwMjUyNlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0yNjVDRjMyNDcwRkM0RDkzQzcwMjJGQTM0QUI0QzgwODc5NDg0 +NTRCMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3ugFBOGbLl7FGWQM +GYTMNpRyyotnMfeZL5SToO5TBojIvYEP9NEgdeXkUWdeY12Bjy9B87Wv+5V6pOF7 +3h9DVN/zh4i9x6S5VkilS08FwfkaSM4JUqDDYz4/l4Nl5wbbAqrBwfWfgPdI1OpN +zvxaXDxENP8dKns9+c6Q+tSljrgg7jf7yHD1i0eNnW2mpXLMCPKKoAoS2Qsv/ShZ +x53yQJepf+V2dXrO4Z9nfFxqLZeODbffJAdfw2Jcg1zDdZcQBR1zxQHNg8K/JJd+ +eaOCvgQQbuSOTCU3K0jm4zYmIG9XFJrRuPWTpS5HKwSHSXZZHAa32b+gQrSwrZBw +6myvbQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU8fBaQPZiIagiLGA5Ybubt8p54+4wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQB/9QQa +nAp5I1C6bL70X79y1137RVtTmoxTPF9UAjwxqSNuSqtmwrciguzals344fu5+/Ej +rgSjnyrpL2V3co6/pmVvqFIBIopRd+ZJCfS4tkeXxAXjRxptq2XY4XIMS+366339 +/29uWbs9o+BQi5Ub2K9aYVjWB3ckACSc1UAl9M05aROYznTjn4TkjdQIrVTWNEL7 +4vrluNQWwbw8ydlFydmsSZZO9tWw2HfNGGTT2wiirCGd0ZnsNVeENvmI/0uEoAa3 +la3L66EKuOVyL514vUTkjXYQT8FuYDvPa+cvp29kalY1Pw+wxnZHJWBsvOj7PP9c +rj7tsZnwwmD0DWqO9V8I0Pw7Hvhlv/FQDHCNajan/vrg1h4QGyZvDHdkfyQSlcp6 +F93gOGN/ECaSvfFz8wz7mPKy4PnRML5gASJ2vn/bU5LP6qcK3EKz4DnxSWplhWue +I8nCU/R/IuxiUUmCPXNBvFUeKXA2+DYHEF8ATPxdtLD2Q43YODl3jpnASbEaIj7F +sHPGDkrrWycEcDwqTO7BSV5UrjPITYxgsgPTjsxTQIoatqRWzn8rPGhfY8hj/0Cm +kOYPRcjXgdTOmrwbiIG00yUNcmJGL+Slr4963EEXE7TcXQv/4JHpVjTen79BiIWg +SaSOdRJ/r1qg/PTLu4CDGI0Ih9lRwOecRZnRPg== +-----END CERTIFICATE----- + + +EUS IFX KEYID 265CF32470FC4D93C7022FA34AB4C8087948454B 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAhgAsnpTYYvQ+gAAAAACGDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMxN1oXDTI1MDIxNDIxNDMxN1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0yNjVDRjMyNDcwRkM0RDkzQzcwMjJGQTM0QUI0QzgwODc5NDg0 +NTRCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6nMsPde/ShFrg3lK +BScyB5XdWtgdef7sAaVj6UDm/oqUGDAo2oQ2wRJV8iQH/BIVevOwfBlV8LM3bNeY +L2XGPIQHfimTL9HbcvJvmjTiDAXrphCNSfbfwY/mF9t8R/w8BEtf0VYYU1T4Btkw +NrtAyZE8eFcuVT2Yv8XrJ+8WqkozV1jscoveVqYrI1oTNfKSuVgNLO7H8t4WNdFg +MqDMXqlyw7N5MB+0l1uGuVHvahbdxq60+Lkii1ujlFrjJhW8PVfegy+aej6cRRLt +6bW+Uc8GevZ1zLaCZxdP0gGoaSUKLXbB64ukPqcSCI0zlzWGY/OnE/iwEW0Vaq76 +gumzLN/T/bXxrc31P4SKM+rdXUjQr2IJMukYQtS5CjOaf02lMd/vlEsacqv0FGmt +mU3utLKXkpNjWxrprCm4PC2KA1pXcjTdCDs8CsqWtHfknonBI9HXArXRsBiYUYMf +pKoYfmm+0U0PV+x7k5CyNvnTFHGoju58v8Dus3toGtdVAcsrAS2x1D0L/VG9vHtq +SgMtoxH2qq014HtIaaWp4QBoB/Xg5pjPkLcrv5uYDnYKdcU0IS2WGRhyCHCu8DRm +6/MLrCRBLfQ+ipsK737CpNmcUQu/570mR1xIa3djPYxf+A9aKqPK5tdVVYSEwaXC +9W+SX061UV87T6EsSpDTrYXrY/0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFD7q6cZ2atp1HMNf +up+agPZ4lak2MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAlInaGMl/Re9ol7iiMCzSLoZSSLjHQC8cwTB4TdJMeiSF +stmw1H5v/PKGSGDr+FF/pklXnR7AqnZqVH+6+4MU3YoV4SZyXg2PEMdwtaFAr7eQ +CEOLsllSsX6aM8NYeKWG295BJjn7HhjRqy4N20LlZKpGySAqbK7qyfhJCOTqTUwX +3TDbXw02VWtFT+jtRiIhBdCu7TUh7i+oqLJfd+KZoPUd1MYoDSIueD+az8/NtNkh +IF7ST6dN9dhKBPz9a2c/AQIYtF1YCvvOm7Et7oXc+d2R+0rgkXw4iOPOM94+va+Y +c7K+vCdMw8YAkuhYQIgax7QHAtvdl6KumA2aVQBYAk1uor43LAlY1bz6fO4AhvOq +0RFkesifY3+owNn/Mg43bEeUe3i2PVr5QUMWtFrRNGv9budR6eQJUr9HDjmIQOrK +eijPl28+2bLvBN+YAqAdmFco3AO/r6Jf9sgdYyDQxD1VzK7pxjsRxarFCzc8yHtB +b9bdrkshlf1A5/IF58rr2+bUzTc8JCBCdwz/CPIfqq6zNRcgbChhsE3RBR4l0e4g +P8kRBOxuWoLKnICNGuX6GELg/2DjPaIfujaMwu3dt/VbNXqtn6apiP3zYmx3/8rw +sBhAJrSQ3MCJudFe3nI1xOulXFwib/hlKYxU6ynWlh/c6SxyJJfnsGhdIYZsit8= +-----END CERTIFICATE----- + + +EUS IFX KEYID 2A4A698325A1B220464EF009B01892268B25F84F 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAeG5LvuOBnNz8wAAAAAB4TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAyMFoXDTI1MDIwNjIxMzAyMFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0yQTRBNjk4MzI1QTFCMjIwNDY0RUYwMDlCMDE4OTIyNjhCMjVG +ODRGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqvwC3tjccndFWSKP +QLT8I3M5Rgs7UMDemNelcvkf5noXqg1ZdjSwQkIkjCn/oQVlnc3x9Rlh75l3hAj6 +pzLSA99oQpRBogdh+vT3ocOyD46plj+98janTPcyHc0Ha1MhWUBxmnTYhkxWhWar +jHe6/8QqYN5FePvq+91YbkIe9gtfCZyKw8FpTzA61701YX50oelD3oEt90BDUe/1 +amEzdom5xhLSinAouqKRLo3LVOWHeL0sjIVXEOxYR6zP19nqytM6L1Kg9hZz+773 +BbrcqGy9Ki/1v7jA1M/H5KbROmMTwO15K0tFbTD29YpqMncSBJRQyI3JoB1mkTPn +GGlXDCGthrZDIDgRtrG7zGW6SYJ6ajzUFn1O2MRZ3S+qtlkJybNJiQqmbcDXruHF +X4mgQ0bdiI4za+ypyjjurjL3+uYUZKGmEldjQykZpO5Igh8Xka8vaepN2ck5RJRi +r8ZzNyqNgWFwPAtNVyhsfv5O0nfFmtSF9purzf5+utmzA+/YZUCRIN1+50yDvtqn +o5o3npkJbVDIM9tc5Aua873qSw6Z+siA/4FEhUs/8LJtB+CXCSEBVgPp6WFGz5lR +NHxDRJH7VtP5UKqYVpZ5ijnkiQO4deBpvLc3aEr/QBvBsfY8Hh/Dm+hG2XPx26it +MDCPfg4IzqVN5QyExbe+kmwK5/sCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDRpy3Wj6iJe1SXw +5sPAFYrmzwgGMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAZs/MWIO5coC8zZrAoJ/vi4NjIqMQKOUDRZjIy3gr+tRU +Dnxg4jvhh2ytCZinq0nk9zMpQGqb3vKuFd23bRUFdh2MR0U/2oL57XgcqbU5WXOr +sUa7UtWANOK1ezX0j7HsLxiXurkBDmG/UQiUkO5FS/cMvbWiZIrNByw6DS/VrzaR +YnCLdnDk9luhC30xw77mLqrxr3gQDCM2tlWqgPQXRWZkiyFVGn5Dm5ZvxDBMGLZe ++RYvSOk/est8BoqEveX9LkZj5S7TwH6qFcgiwSUeSOx/3zXxgUuC2NVyQhBxn19l +kogOW3M+JSryLX3uZaIzcl2mVKYWOyFmF1sqm60iooAkkjRDKtbPI0Edhj3UTOny +lnn8Mb4Wm2oHwxYDk3C040a2FPuglIkmmOwaNC5LqaaSerCehn5pQUEHzbWTwrbN +DrWOURnLEZmcG6nR+wuiryF2dFUBNJ+xexhGP0rrowyWY7tbIHt8N9NrMylkiVJF +cWJN05b1zJjoXchsktqyu8a2FE93QM4ffhUfycS12wxPwot5bfVhV/lY1/DkAAxT +0+C1NDf+Is+5Nu1P4nnF/LZ2tNO84kp2QvhiPTJvUrY8s3EBxXyyHWjdzjRjvMIG +XDVfwIbFJ/h0oxMnxJGH7txaTqctrcA+QdY4exbAcAbxujF1T7T6HBIOfCNUtrA= +-----END CERTIFICATE----- + + +EUS IFX KEYID 2AD70EB90962C541A55E2D15B85BFAD286154F0D 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAbFXjbiCUzl5KQAAAAABsTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDg1OVoXDTI1MDEzMDE5MDg1OVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0yQUQ3MEVCOTA5NjJDNTQxQTU1RTJEMTVCODVCRkFEMjg2MTU0 +RjBEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuzaGe1Su+WrNfgaX +oAF44ooRPUwB2aEmCLVq6IZOcLUifzs9MzAo40kRH+JbiULfQMy63CLlAyXxCjT5 +qtm5FN2YjlHHXporUujGIwrajvUKiWi/zCELchvPoRJJBAXcQ0UAKWLTGnf+IOsT +VqaNT0UQNDCT1i9HD1MplOzIceh2VK4IHo4MQtLHiv0jTGvOfz7Dk1SWPoqNgO27 +TQyCSJZjd2kSCiCXKgOqMwydoh1KuAFSW27sQfjmAFDD2V+01IYshBjsBJDmG7/s +lD6rBJ8nxC4q1paSC8aR9e3zwKKxf0W3OKeQUKtpWYXRE8qs4em2KSJZ4nm3so7P +yH3QBe7qpH8vMMaIQYWtARSf1CeJE5ZkNYIQehylXs4tBA5MsCf/JeAhntdLSn8W +SR8dkzRHGkroifnpviJzxZNJrMZP5FwNpThO8UcPI8QSO5UlnnL0ex8BcjKmqdkk +0bF8kXm/z8l7NRsyD1CYXqsIyVR/sdQrTtZPzNaaj903VUP0OUu6Xit13Hvbo1ho +CwZj8uI00tH9ZG+jhmH75hflwWJb+/wblp58iUZz4Z6j36owjWuc/W60+CnXpQjY +PtqjZMRMV2RyW0hbGTM422Fr3eGzB+FKlscwbbqhfPQsNOBqIeZszEGxifiDfEI2 +iqxan92BsRELr/5YC8h+n1vuansCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOJfc1lZK9SdcHiD +elGSrEDCM3cgMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEARktesFKL1/xgMzNBri1G2rhsVBK1kkbth0yI64azHzqh +98BqxalIxYvDJvypmLfapqcKA+aUyh/kfa17myIbab6C1A25WXypuNF8ayclQWLm +yiDxo9M8bnjf1drmdic4h4Rlpk00fPw+1v+DiDu9qhZPDyyOC6XQs5N1wzowtQeY +8133H7efF/1jXtoDMstABmSRkSGJxawZa1mUsvhJEpOtl5Zwj64pMT/eT4HwvMfT +gEpOK/0ef7HkJnFiPA0KUFWqyzFTTxfkDnTFcXaW1AKINLKqi/Fet2Vrb4hc71al +1K3/OxeoEUtZeyILiTT9RUmSkku/imaSLOTVbmB8QGatMiLmMMX8Ah7uCZ4Zou7c +zw2Drx3SmB1swke/gOZfiK+2eToTx9Wy48gSind86qsVe7CvWTtgMU9y8X1Ufl9E +6XLeAp7fPocD76jZ26QD6gVrPmrRG6Z5RqXCGcisHgQKKIG5EedGOInq4ZtsJJ2l +Bey7dSqQ9zL3yLS0HO6PN22eh6YJlMRuKPGC5/m+Gl2UJGeql/G52jAeRioH07XY +6XARKyO3OH+x2MHJxONEW6Og8Ycis67OgJ93gp0/2sYQTZYdYuFUtihGSsp2D/pn +djMd4Xg5AahdlrS4K1pwFck6tXmJHUZHwfxU5bSrtWpAVdMq7JotzFoIfhD++7M= +-----END CERTIFICATE----- + + +EUS IFX KEYID 3735DDC8E300B817AEBE03503A92EDDFDF1AC71A 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAbX3dfz6HsQdxQAAAAABtTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkwMloXDTI1MDEzMDE5MDkwMlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0zNzM1RERDOEUzMDBCODE3QUVCRTAzNTAzQTkyRURERkRGMUFD +NzFBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqcAmfLVFmGjvu2dD +AV2kFuIgMLdKrzgEbDkrzA0SwV2bdoZydjsNN4dvTkFh2dDc+FSxSN4digNIZsY0 +ET1PeQrVqo0QSm7v3fPWb1Cm8IbvuuRvU91mw8ffq3xc8xV0F8laUiz6j4vHECC/ +17ayuwJs+GYYES3I42S7eDXpVIl2A6X0mWKRp7EoSor4fDYn9LCHzumF7Cx5jnFV +heCH71qODkyk9RGcFRPRPcmusFOkWn/3jfjBZO7wSvTT46HeTOcurpJAm4Zr6meO +dO9rl9s5ElxTwgdyotZ+Ejjv9xt+v4x0keANTvr33HznsyDGP1dqNCILsQrNPC/h +1aq5uxFX3npDrJrcBAhwoZmxsIlcSRbxekggFirIMTs+EZ/pWVPPZDhlwe0L9nKM +Vx3f/uS7Emtuxy9H7LxeomWhkLK8sUo5BuO2Hq2fB6biJ+ILCuAd13KxSCJ30B3P +kPJileD02Nz3GlvNC3Yb8CSBQhRasn8ya2RaBZ2RaTLeXPk11X2rRcwD2MBOIyoK +GMLw4Nnp7ImUbKrtoK2o3K8RK8rOAbNs1XskAco6ByGEvVEsDdR02aFKUHSV/nX4 +HdL48VofGPkGgwkf9dbMUkbH9yfVO/JQvvv3asHj77ScU1favpRBKYd5lFGUnYm9 +5XUJMLBL/oZYGk0OmkBiouyvqIcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPiLVnAI8eSo6Mpz +JPcZKiQzuz4+MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAIc5PXbdKxnaAc4Y+I6B5j2fGGB1aAFxLQRqryJeQldvq +M5rzxetAn1vPRaZg3OgslpajiedV87R3miwhUqZOWPwOLQOY7VI0CW1AQgDYTFBI +DrK+Fp/hWU0lgIzEu/lk4Tp8K+HPuJHRyuwJFMGdfR8w7mYIRrszfmMZlgVSY/Ry +i/pwkSQlp84KiP6FQfzMkDoaDNw456Md748P5JRSn2F5A1UeSHEVRuQT3+vXx5Yu +5rR0sWogyBZtKT53HP8BatnCt/SwtfUP8INq1PC6z4NT7BzVstdTRdQbRSf8s2/m +LCdwoJUrElr3NogLIC9hrFa80u0ov0QWvIjuFmaHpFh++GoWyZ9mPp4xTk2R4Ksr +puxFJu6oA1NLxs6+6f8AigopyBCSvzP5DFXlZBKk5S7sqpHXTlsqMHh99gkOd6lS +2x3GYJLt0Qf9G7eQnRt3X3irYvg+9PNCv1RnrGHUbpoXS74zklG/AvhQ4/p0HCmc +6S0cK5ZLCC19TltqkgzbohZjrerQUAfmAcRVCdFLigTKkOjoWUmxLDQiSuqmqtQ8 +ODRDgusmbOCGh3j+GpSEecJE2WI0/JsBEtKbl9GNHlZzrN4AK/jtDLyQQwL4+Oyu +d/gua3PamUK3aYg/A3kLyukP2UDndiSRsyJscd4EVnZOV48qcMXpDernmwqUJ2o= +-----END CERTIFICATE----- + + +EUS IFX KEYID 3FE3E3E0383ECB899118188F4E2B9644DBD39A3C 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAhIHRTLb2n6DyQAAAAACEjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMxMloXDTI1MDIxNDIxNDMxMlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0zRkUzRTNFMDM4M0VDQjg5OTExODE4OEY0RTJCOTY0NERCRDM5 +QTNDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAk+Ixzym8EMhYVNKT +ob59A2Wa7m44r5Fbs/v2Uweopfc/2R6sLG8Vfv24GW/III7unDf+6s6iji8OlL36 +UL6iLzH+6tZt7RJnpZytr+IyR/HrX0XO7RGznhpNBhJyiL5qr98PTRQX4ql9EIAo +2lg86VYB7AkpvCvew4sz3F4YR9uuD9LBSnPMhmloIixRv5BkUppXRJjyCtaRVIVA +p9JS7Ts5wtCcST+ca/t+Cg2+IJBfSFCUUKwhMXLx1TqXogSjaug953uPm3OMp7ve +XD3tvFiqAVozxqx+I/Nk2gnbGtAVpD4wKmAPGTSbzkcaAWOdRHfdUnombQvSPA7Z +VYPIXS2mxU7esxGkJ6n7OvXVl9HiIka4PbQnDyIXr/dCFkiZdGS+lXo4YDbCcx9z +PuV/eGUj6lKvSn+c2unkO7KFtbuByrQwp8gLZ6GY5Hhn4QWb4CIneB5eSXKb3mBr +Bv6+CHVy4ETxMHLYDPuLE1GAoUELDfqbRr8lSg4MSeADl53lf45Q/MmyJZY7Pfs0 +c5hD0piVotTRHFS4HUaLC81L9EqRjQNMjRgJUT9mfj+0/R1esbnKPSv17IfRQXix +e5z99G+UkV1UO0+Ch5R5f9o8zysoxrW69tvROXaQ7OIwdVVLbhvHE1em3MvRMVUi +hh/Vg7G6NYdpCfO4daESPatY1JkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDV9fV4eRb1xgejd +sKa/fh15SqX2MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEALiAchulMI7D2qGDOZGkW45cxdaPAnen0i0EONpNvX1K7 +KoTyDKUqqJHJQN3xDu5tXM2XmNAAKZOifTy0yHdAhCk6ucN8761VqBohv8F5XA3r +NK8jOjH0XvERBhKcTwSYaq9mnmz3f1NKBAUMvUGdJpfgoNPZQmLRvBYWkXOuBJA7 +XucYXOMwbe9mu9u/tJ9db53ZzetPhSg9sPzBhZQ/ogndchBYGPkiWethwqaniBlY +XYS8h66fzX1vnGx0u0g2eoaybM7+AfjXaLdY3guB3vuokJu+Lb0cq0ldCoJeKb9P +fgjM7y0VonzpAVi6Y9HVk16UqDupqeqrNkIDmKYNS6wbsLflnyuNcbaGjLSWjvH+ +SrKFA7Z0H9LjPCtN1zi18HyMOymKKljzMPrk58pILmRW0EzyY66JJqEgj7wX6SOV +vw/zZ5zNW3YqdulbJQtobKkdIBWKAmXYfit7F4Pb6ntSJdA0ghaKDa75tC6HXGax +LkKQrbg/gmN7XwEhn69tgMu35I3XnTNNp6eeoAjId60r7n8/O8+uP/vou4SmDnw5 +vOnHPwqof3++CUwt/1Cht1s70jaEYtbhqNXQuE4ZZSnbzd7BZphNJgPQ+evXFbiT +ptZRiJ5RXzm+/zcHc9oYXb+2bRCKCsW80EI6eVhKJ8FfCzSfpg4e9XqwQWlb0sY= +-----END CERTIFICATE----- + + +EUS IFX KEYID 4AC90CEE68D4B5729DE4357D2C475884F409B7A6 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAeLMJMNdSTq4LwAAAAAB4jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAyMVoXDTI1MDIwNjIxMzAyMVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC00QUM5MENFRTY4RDRCNTcyOURFNDM1N0QyQzQ3NTg4NEY0MDlC +N0E2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8o7p/92sE6L5Re0Y +GwY6hQHQX0oVURSBD0/EpPien8iNZAxx1Q+3NEcMJXW8t6+tBvuPFx3T7ybjTx7v +5zEJwK0H9tYSLvms7I0zAs0rFSq7W2EoplZS3+UFAKMA2Wyx6LXxyqeebqOM7G3z +/BaxibvPLW3ZCDFTYSUUHCZpiRIOOhNq9wwwGUZvs6tC6x+H18Od7TaWhfN49IWx +MXzwlnEggORxTKs6Cv4Mu3C8HY6x8vHJieJwfh2AfOL3KQyVs1pWq4oY68o6vph1 +V2lqKn0jECB/54QKYJ86mDzqWlxNJvOi/d3aANX82pPNVEl/4FUtyTunwXi+GSU/ +kEOGeBuly50PPkD9FwCm/Xtjx78H0sfWzDcg6LQChezukE0t4zwIQ1e6W+hzUOhp +4Vd6ibcvUUqimQWO269IzSzmGHbdQfEJKuUU1+SKvC32r9mPUvDP+w60X6LmvvKH +mft6bJScWWGObzNE9VgIOjHsYh+Ix0urNzOR0zxSVDfIgJAHVghDR+hbk/JVH4Si +6kicbDKXvSrSlMzNv9OoFzjUbaEdfLct/9Vys1T1m4jOghM4b28pLkDsKd1DDCTt +3F9UwKlQxZZTjWqFT9rG7Xe8ztgygn71W/8jWADGRxLMkv8xx0TDUpj+sjIrpGYA +xzsy9Z4ZI4qOtolBW0sx+A8r3AkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLWrHXnQ1+TO9hyf +MtUD6gbWONdFMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAVfKB0ujmse1pDjbDgY0Htl0bxQeIpdvJcL702BnJ8hSX +QgxJps+OktSxSQi26kd9+ZNvOeEioBgGCZcColDpkHH1FcY0zj0x8A2M58+b9YVl +BjK3eEsqB6CDdTt8D94eoaVMvrRqTNTVjslZbZP239URqGI6HGzA7+i8Wf8EnjJo +IX9TEdc0sjAhmANccDWgy0iphzH3i6yJYfBraUMD62jV4yxNa/dnlrDWdvt547Jq +CMcZ8A/eLXcDeDftd7Km41gmNaYm9XOW1l/neTNAcrpssB7URFNo87ndmWAUlSMt +qDMq/9J3SOytNRohS14q08uy/Nmt0oSb+RSA3TsIBvisxHYJPCymil6hHw89BQ3C +ppqWTDdnpEt2hYsUf+hNvCIodO0NxarX1Xh+BHy84d+dr+9P6ZctRUlA1wnkQ5ab +ldhlos0BAWwmAbZod/poeYVIaBTauU/XYPJuS+S7YEH4r95GPB35VK3A0mwB4CNl +RSqTX85AqDdds1nfQkhy0wdQwGWTFf0vbYnnxtkyV1NaepMRL5XUkxksRr/AF9hq +Jpbq0We9TRGwqcj9EkiLHW7wQ8ei29Dj5QDIAx3d/5tGb5DGJ1w1L9Tm/tIS+ZKa +j7vl/eid/aESG+uTsIxhb63ZE85jS6lg+f39bMcLVBQvQQ4hgO3Ps+Y0wxV01xI= +-----END CERTIFICATE----- + + +EUS IFX KEYID 6DED70AB841AE9C22A03647FC8D1482188D3DAE3 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAbJopnOuDqQd0QAAAAABsjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkwMFoXDTI1MDEzMDE5MDkwMFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC02REVENzBBQjg0MUFFOUMyMkEwMzY0N0ZDOEQxNDgyMTg4RDNE +QUUzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4GFTrjd+XXVDjAZG +EGZ4/xMdMr7/diubUilkrfAKZlNX2YwZOTLHUkh9NlxttdRI/PJPzjeTtJQDEf8b +svJ4s902QM+Lt9mmrN3KHudCi9SEVG71XpzZf8ROUsOzZSdaTw7Js9ef480Z6kQP +YLzjrV1l+20xcs5/hioQMbQtweUXo+UNOAw4l1zGa3Lq23JyscgWm93B422vz2DN +K/tVDyhdHmsruIGPERtfabDorggrL8f5MGGCcoi3BULhUUxicIvG++VvwVV/QrF4 +kEYEKljGykzeB/j5Bmoxq2ueUH3w46DLXSIwbRrnxmlyCSggWhWgpv/f+sDifFv2 +yOVc4xWOWTxZ60irhOHAoSvA45a3DYe6d5g1gx2WnLraJmcL1Qw++vSDff/d2ItL +cLbtgfxnjxSLEmZghB9YFHxBGlYBtKh1xmSxAGq0lu+4MQ5T5Gj2rSaW7mYB6pUw +63NbG9trIgXKOEVdsAC2oTFJKjlHMwwK4fnhzYb/EI5X8N0qEMUtYuRTvulIxoI2 +0j3D4B1c+K+6aInriknM82/xnhSKfYM88EMlK4UAVK5vFMBEbjY3Plo+jSAqIcdp +8WupX2yuhUvzWdhXNSHwGhCFvGrwXGK8Mk/9DjwKK2cYJzirgD+e/zdohMShyolU +G0DjH+r8eMGrp6B53FH8u4RHed8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNTMYqdLpbLcNFbq +3g48fOGf5HR4MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAiNqGEUPr/d/BthJymLArvn6wETqh7LejR9sts+7SGmhm +g1W6n84RFUMKMwUrn64nCXnmbuVR65Or8xi7ttyj1PEM+/FJ1UV5M27SBIUZiZ2I +4S5zj6zU/NNdav10WWCS5LzcGAhx4V8bjsLU/FeyJUxlb71llo63jsKhm9FOUov9 +C5jgHPGlFCKTVUYuvWc7VmOfsd8tKFbxFLzvq9YbzUdkO4giJcEyp+X2eQ6dNcxM +sE8Af1zTYtvHSoGmvNkMJKRaYa903wc1Ffw/cWeeFotxoi+EkklYces0mRcxoHF5 +FJpef+j/U69qtzpcvnIqD6Iv0Y69rxKwkBfAztybupk6KKfU7eUPnj2u5TCkQqY4 +EwAiK1PzKXOR78ow28vdq07cZHGg6zEQB6RZ6QGBP7i97XY114UzBnfxGIabhUZK +oC87iJxOq4D61sZazKZW6o3ydzp2WN3/VvzsSj4KVn6G7WqeocuSJugqeqLQvnNb ++mOBUBfd7ym7jAwSDC0vNjp7bTSCBKKo2Hd5xa6LGEeav99J1bmoqR0z00eeJTm8 +Lb2QozKRAJ9MpYz9YEIF51IIctONREJVCIMSyUB4vRaJOqiSAzRrFLUyW6nktMTD +muxWa0E+nPTldeYpTLB5Vgk1R4twp2F1g/9Da1UbifP0wzJizs/U8YdUQTU/5kE= +-----END CERTIFICATE----- + + +EUS IFX KEYID 73ABB81A0225456337F02B25BD39E658B90F00FF 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAhbdbTd45TewqQAAAAACFjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMxNVoXDTI1MDIxNDIxNDMxNVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC03M0FCQjgxQTAyMjU0NTYzMzdGMDJCMjVCRDM5RTY1OEI5MEYw +MEZGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4W8OcyWSdzaeZiMj +jY1H6RAVp9h04W/WL3KvITEPVUGkVdEovykzVgDRfZKwCiZvNV6/+9+C7tjaZGMG +90Pp2MxypyvKW3dAJQJYXbX8/dzlhejDSnQCNjwck8ksZQyUW2p7auvJ+wDP4jhR +smk8oON0DZUl71uiO3YJVBbwYGuL8sEA4aES1xs+oakj+6tAbrhZvhJQlJwOdI73 +HdcRHxIHGywbWnoxzSWY4gRn1QCNvz7J1qdQz3HvzGKEsH7/hauN2acnhaIieB1W +5FxCxM3tthRgzen+iYoXL8AuNf6aWuvs8LpAlVaWqjWYgpiKJlNWqSrxc/svg/Qa +8aM49CQyg7YrO/x/tOPYik5/9gNqfMqrtwMxuR4vss6S+NktlkSrATdydgwh06ma +Lq8lX08bYMRUwODXhYDSS/rLx+avA2jBi5qIDw43NilLJDAkex7Mrk2dSRqqFGIN +Bv6cerUpESWbJggMp/t44o811Iwm8NY7vC3oNPq7Pg7OM02HcsBjRmlWWvlbDnbb +4fiVareUcg5a4MMiRrj+VcFrobPRWjUBCaOa8+wx/AsqRUxgQISnjsi1EE5LQzQ9 +M4SvppuUhf5qGt3tyfRhxJ5S7AnKfD0pmtOJe7OzxSYJYyxMKO7OE1AIsB14EDAR +HwPAFlpCqn+mrQG3iQWMmt0Sa2MCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLVuhljNo5X7sxVf +tjoYuVTkZVMeMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAc6CvPKN6EEx5HAmQ7kq2ERyRdDZDWxXSnYpf8kkSwUnZ +zjNoKYdxhv+PrK9X2PjX9b/up+jg4DYjlpP5j4dOUIV1wlxssbzK+WPwweNgZ/Pg +IOXyQGgWyfmgGivm3+6Sm9zp+EgiSgrzilTx1n4PJqR9Z2d2ngTIEMZ/DPLb6tbf ++ipCDAs0DtrdUpmgNo9nTG6PuQiN3LMsbkvcu4ceRYdmSNz4P4qVMV1GiwPHpwnF +64fOgHsCAEhqgaTuHkfBLEGBWIaEQyibrFvB4guDRT3hzPdMrMtqan4hA31f2CA5 +uFjYwUom9sQFg6xGP5ZJKxpzEDo4XZskBdFPtUC9Xn2TO8P/gkxA1/RmUCULKvqF +b1Et98/cM6Nbs3B37Czd7HTo072R6An9Tylmv195rxxsSkWq/71TM7Bj48WwygBD +cDOF4iuM9f8e4SpFebX9Ps1k7xXBsldEqpQ2Kq5q5EdwNt7oQBP4AgjZXNMYBLK8 +25+HHsR0iHgU6VPwbLB9rjqHEyEJnK4DDf8QSm71FIUCYgKkOnI5535waI8N+XC6 +nRr1srMWrarjx0r7CuuAgMYRSVPRpl06mNupvQ6jPjV70RhbKnEFapRjdhUKnYHy +pMo8tqzL4hdoc2358kGssBjLjF/BWOSVPWNjAb+GROqDoeSUfeqGrYghM6VyoFw= +-----END CERTIFICATE----- + + +EUS IFX KEYID 8E1F3B1E129D4ADED7631F5B4A2B75828AF28128 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAeS1aH/+dYpZzwAAAAAB5DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAyMloXDTI1MDIwNjIxMzAyMlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC04RTFGM0IxRTEyOUQ0QURFRDc2MzFGNUI0QTJCNzU4MjhBRjI4 +MTI4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr8IlW/VPTym+H3FT +Fk4Z8ENQJAvRuS9emdA25Ahy9ROc+mii/Yfw4fDWc0c6wbGuUy+QELf6q8k+t6uR +2D9Cr8ZXKuXmZzt8ziG/GtUtxT6idjA1DEY8UCgk706DnL+YivWYnwqMMYEWEgip +jmMWk5S3R/mWZ5RVptkaxeywgWcYme009Xzf0XkyZWHwxf7DHNXmDKP3o5E2H++A +zIJC5Kfhxo/H5YqbdSMvfNWrbu3kaTKOiW3yZqK2jo34IuOvNezGCZ4/JWenc3fT +FOnoZnTHQd7OiQ2031K5RBl2gQgLij89mnGSOpiYZLEx/ELOtsO6yNKJOuqyVAZW +b4JFN3X5n4HqdpcWVcWNyRpjFEhPtcLoopTNHm4H5ExEYIUw9oQA/musV/6YtYmY +sb83soIjtzjYpFDzrncKkyCRdZTdqXVcuZFFi6qolHPzfFo9RWU1SI8Im2/T3HpA +/6OmZV4ZWhjgAXoAO/KRdRrssrcxvnIpuYwvjY76xzb2lKbFttsr0Pvp1UriH+Yk +vB9x2HnyuA9es17x86OnkFwHx7Q+TYRvIYOotDtqLAQazcyaVxCjCFXMUuCaUcQ6 +PW5JFXJ7hZOIX2U0zdEwKFly2w/fAzVXi88pSauGJ5vcTHyY5j9HiH2Jb+ZWmeMN +2CUq9PfBHLYNGbEZ9quWnoJopXkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCWxwNyAjjAHd/gF +fpUJigpj0kwHMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAMS2CPRpGkUVp+rMwCRwOPcm7ytLismnR+z+Mb2jv5vCS +AL1zeiSYFKJ0Nq9L5Glo8jvxrEE9RRTnK2C11Dl9RQ3i1sRoqS95TAe4VuKsB0+m +S8VTV1bCIKzmINAbFly69rpT1vu7ihhqzFnttnmtktMo+w0bZVUtQ5eEh1hjut70 +uYbVTMZ2G1sQZEYQA3oVQzjwCuOTKgJFAVs8tV/LSYgjDG2RBoNdxeH5mtLZ4QZ3 +TQp2+7ONihfSQ/1N0lvWPBbCdSOtw4C3xV2cEXcSrJKKXaVDqYdDJZN7JjygGFpU +Nzb8PZWrA85G+fTDf0P+kUTMU74XAOAf872IFzVpobugB1yX/0vOJjtyh1gmvquf +hzUVdKuRIULB4OSfu+6EJsd3TrkKOUMiDBD0b0bSZ4J2qQ3qdSxbp9ClHz8cprl+ +D9II394tme6wRnjanR6mrWQbUv0di/pcOkuX1yhNTzOiSwTRQrY85vSCye7Rc4DS +6S0kt21Tcvhzy82T91EWfhOnkzQAmskk1yBUnKAKYKziuksswgv3x95W5mfvMMg0 +a85ZTjMkUMe5ipdgZAJcBcIbXYkmXXNENerGitEQVmra6zROI/E8VcxOtiAi8eEP +cHxPNcwgxBCzvMXgN7maog2aRtuiqNqekXoPJSjeuEe/DSeLR97JYLoMcRLmUao= +-----END CERTIFICATE----- + + +EUS IFX KEYID 9532153BAA9D74482D275B1A3E475309D3CFE507 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAhzIHHQPc/zxxgAAAAACHDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMyMFoXDTI1MDIxNDIxNDMyMFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC05NTMyMTUzQkFBOUQ3NDQ4MkQyNzVCMUEzRTQ3NTMwOUQzQ0ZF +NTA3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwZqwNx7IPA/c9AtH +iTgATiXO74DsBuXGk1T0p/ZEkxVqGk5iVZF1BsMl/yQ9jG9lqeNeHCb4EUCkHXyv +csCug0HzjrBReVCmvepg0kbNvHO1GpXeHafCNMaVrUyUJyGupyQ9AUzCPBkWW9Ty +68bFsBq3FCtk8MSa7g9mV/M/XRWa54nXrJwsTCzrRs1Doa7S1E+nnDBa5CmRsFef +yKU6PX7kvOLdOs1Pn31AlhRL/QBgNxGkVP5YFneqOiWvmckU0AXA0xBinmH6HRfZ +nSZDiMKz3PEazF5qZtQ8N6PIe2E41FwpwOxfdomYWkIQwLWWs7N5alycMiK3oFb/ +dg9apFIckiFDDrsUa5z6NfsAvF6gyffZMwxS+ORYaJWUrvxJ2MG34fWAX2BpFafA +L/NVdxSA53rCdIhVDBsChgU/+PDddqyW8T3Ina9XY9IN9WbSsRRFUvoBan0G83CZ +Kh/IuIiQGf2kdpHksCnp3+q6A5pnpGbuhoCdy2VVUtyK1Ry6aug0cHfhiZWSZy2j +5QyYT9Z8oz+Yfbouc/Eu8tRsv0wTTcYi13A3/0TF1qTi+/AaaY9zwaZUheZ/kENb +d2ta7lxXyZ5ytfPAnqYQwRxc7+UN2U8+oWF4w4M9PrlrQEw5dmDM2VCFUwRxGx7I +o/UomWy5MVWkULL/6wE/OrW7aNUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAjmUmd4HIVvQqIn +7oO0q2c8AM2GMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAe9/V77pzXrVIwJYrQkIfDemcIoKp0xSdenHLal0O8ynV +h27GaaFay8Xwsfpeoq9ZdS5gdVm5JY2S9eIGyge++tArrf4nYf/vzcfof3pRG5kz +FGgXMJ/6NgzpDF0qGeBJjkSEudXr5trZdBRqjmK1MHkk8N92KYyIqEtW/87znjDN +7lZ9gHfEAb/gg0gBss6Zx30tan7QbgcamYpJg1AIu1GcMVFx0/bgtR+itI3vm42f +n4WGIl9wt03kD4nbmYTUrI6stgKoScf1SChGSUV/xh83l5Knc1YRh2h5pYcO/amn +Mk49mQRd54b8fM3GyXiovj+WxGmbIyzMSSENtqMY2PDMXmVWoKWFgM+nS5qzcejy +HIWblK+GzWfIDVwp0jHex2FADDHsCMkiX1SpIirdPhSpZanV0djVTvizqx50biwM +5rZoDb7xdzlqXy3rJ9xKmRJz35zgksJMb41NikkJJHEGyFzExayMJ5Usw/fT2OfC +FYYkwWjFvsIzTNNOjmSF4QzTQQ+B6dSG5y9U5nJWqcAZkq/oF3mbsvS2YrpcZGX/ +aZdbpXdd4zUPxV6d00EgPe5cDf7pL3UYUoFuksNDUbD3U2YZtWvrBdwrW8hGPcxQ +t7QQ0djgZzFkisDA1bFQ1o3kU9RrRD3gtGmiBui89NbepucThnwYQlbnvx2HM0k= +-----END CERTIFICATE----- + + +EUS IFX KEYID 97E5D1CD8B0497C04B4655A869C8F30EFA89388D 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAmEzYHlRZupoHgAAAAACYTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk0OVoXDTI1MDMyMTIwMjk0OVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC05N0U1RDFDRDhCMDQ5N0MwNEI0NjU1QTg2OUM4RjMwRUZBODkz +ODhEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAml1LspKnlhOAnmqX ++45iTA9V3XDinetqRLCtYhSJL3zmSYDPLAVf8Uz0q8e9pqyLignG8fW09LP5Yb34 +gHxgd/+cYLsRmJnlffK0CnU2VsWvRZQVBsltsfxLzOaLjg73U0CAyA7HSig9pMQU +n4mD4cZGSMaZOAnWwEzYlKHROsnNzK2jrO9ml7TRvN1Z8Nb27D43Nv0TouMPjxKe +E1zLHNLyE5Ylw8onNWc4z4PH/PwaiomkDOoRvOWTi9bKMbpStF0apyV8Jb/+kJU+ +rSHacpdVTUXwFEjeotDUYgsf/iXMUQ3v3ObiioQjpmEA5PZOoVqI5PFZdotY3nT4 +YI5KVYXV11iZcJMirYczGJMPfpB7cJuVNWo/LQxB4OgN0TP0OhackB+tl/dqOzKt +UFdgRdW7OQ6C52SjJ+kNI+6KFixHxkKpj/cbMlqWXbLBU4O/+fvITPpScZWgRT1h +bBtwMmg6Fi/ADAEyTeiGRkxsHRiYx3k+ldVRj4vZTw1lw4pdcqMum6Fa54Bh/5DS +i1zEM0Q5HavPluQs9jyDBEX/2zMjG3QIf6Nr/sN8hOHTe/dSUHkoPOI4Qrs01wwk +uPS9kixEwIrIOMXRT0O7LvBzuXk3UkdGrHcS1N1BE8fCCsURLcTJoxH1zoBQ53Bq +xUw4RYjox9x8/Ahs9XrncIQgFfkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFsXalQTDjBC1Dfg +gcG2Nc+N6ZhBMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAG6G/CFhaKFmW0h7ngvlzhcYdXqAGXkCUfWDY0yZ42cdN +PtJmuxriWsqdMEjCGYNglnjW0p5Or/jrQcqT7HVLW9t523xlcpkc/1lUE+J0c42Q +MYNZgtMfPwPSSup89R/9b7ML4roNBAht/1PDgU4fe9sT4gkwuvErqd7oIXyPxCkN +LxvGyjNc7pglmdxbqIFwA3CC6Lx9hJOaPR6xVl53VzaJNFanf/tV6eIlYUPSdIMe +Czo92BHwhVBWqkl4MKwBMwSTsLVMKY/15EISZxWnA6iD86OR4c936l+X1uHTNBmd +r+rq2zD5QkD860NM6QRpk/46zHznBVug/E3OzOJ2OHxa7bF4m5KGyKOI/PvG0+nV +Zzg9QeCbp/lUa0cIXvnhdBzMgs7C1f8E8Lq1HUi1LLwYPqsEhU1H/TowCHLh5H6o +54bZG+XVu4uCViBPM0s929cPYrNxO2kH7j8fPOlMI9usQxhqDbQtWEAT7vuIMjO6 +vJnjSS4dTNZ9PHY6IbYAXQ27VkBQ047Uyp5g5yKXRPC8WR/5Ag2hnxpPHhepmxWL +DreYUdnz50XgHj5nIBcXyzG2UMuBpiYZAiONRNIR65xQS0gfXlfgdUu4dE3mN5/N +Wj2EQqDZ9nRWTwKDjqysum4znM1Gxpat0057Ug5BQov2F4wiAEAvHcEDt8Of2HE= +-----END CERTIFICATE----- + + +EUS IFX KEYID 9A643BC48007E0824798430036B658419B70C077 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAVvwBylrlMCGKwAAAAABWzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDgxMTIwMjUyNloXDTI5MTIzMTIwMjUyNlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC05QTY0M0JDNDgwMDdFMDgyNDc5ODQzMDAzNkI2NTg0MTlCNzBD +MDc3MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvZKTvPfvu0ULoCAd +5cxEBTFdggx1J+qv1QgEGAD22wR9J7+DjjvpMvCYnbt/r1Ak5sWZVNg+1preL5Qt +AULc/DsZ4w3CUPm6KqbOfbkhgVszgtGnQCadLOEQ3GrbN2vFDyYY0dVW0do/UJCO +ObwJgK/5jmHt9sXlsEp7wsGl+8GJnd7T2kH8p98we6gg9WdNwDEd0DXMQWrEtkBR +lDn9NHZUHnk2+NQo7zkmJBQ1rYoz8L/fRLsvmn/IpEmPAkG7eR0hoUkvCPV+431f +3Bx4h6pec2Em9y+YGCY385YePY0HYfMQEvSvmvNC+tleVzCWd7/3bvxe15pG1Grt +i1RjsQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU8fXM4XLtEjNa6EijImtvgpL/keAwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCF3/Lp +p3lwKJr+HboD2UC92+O6QHQlZ0iLFnSKPAXWsnKD+ug6TolimOSIbPJMG6fVY52p +ukkzeJ5/RrjL4ZNXJxY23Jq8R5i7uftH/mt+OhhAoeufLl1i8duYakL+X/jWgfvN +0XDXmX8mMfJGkBbuNUugFV6vz8dwQuW+o1PZNqliakozsy7OjcqK1wM05Q44GSkN +D0DxvIbMMnZmf1ZgKJ6rpI4tqvfip4fe2UmikQAwmeNMCFoJi7uoWk2KsJppKPrb +273Z6YZZlpkDWmBjvqkJ32E1ATDCGHiKnqxsR9PY8ZAg6NlmdhzE4xy/SNj7yumR +3mtnHxnsveKShlJAcJ3dqVAp7rNOrxgDa9wVgjvTE8IbkM+IZT/PpO+f9RUY+ROo +t719QbzLgKEa51DuF8HWzbASmb9vg2swrlavzC9f5EX5V2OjBpBp1VbJgOZhqkMl +GBY7qbDzKGGsLi2GlI3NDyGeeTQqcTwJwHo5Os/stg+Ih2h//PtO8fwn8o6Eccyj +3/Rh+3UKjRPCLM3PAAiQT79rXx/dWwVILh/vCQtYTC6cHzxUJJgjxA69vsEAXxAR +mcuLihKb9kQREWpd5yWwyQF3gi0vDCz3qqCygBBgQs+2dJfUMhpi3uqaSgNgsyz7 +KKxAB7Mb/3a8vVy+fmRu3gEROrTu3vlMCmKWcw== +-----END CERTIFICATE----- + + +EUS IFX KEYID 9A643BC48007E0824798430036B658419B70C077 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAhUHMuG/tQqfjwAAAAACFTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMxNVoXDTI1MDIxNDIxNDMxNVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC05QTY0M0JDNDgwMDdFMDgyNDc5ODQzMDAzNkI2NTg0MTlCNzBD +MDc3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwEGIMJHe2tEPF8K5 +bLKr2SWyIgmKjXp5TJXqQrBb6z5fvndfst0mjOVMG/bHobL4WIJa8CAA3xDBW8i0 +vY4+j3qr0DnM8/F80KloCfhYW3y6h6pW7GGKAdYUsVvh31JkPQsQ2DZMs83JsTt2 +hdnhbmNlCqw8WT10w+B9NfOGolOivSnxSN1uAZ+aMD17cQ4ZHA4MmWsrAv6Zv1ZB +AIBktHw48hND7JdOtCxM7bDGQLZpqZC+wE9BCbtdZ8TxpDHtKdIBXM+yzcYzbBC1 +rvgWXTaSDFEV3i3GrFMyGch76Ntc6DkH7QrxIWgQibgiu/bYphuxiQVQWymyxrXH +rnLcCCOVRvND+MSL9Y5l24c+Hg62xM0HnyuLeh2/L1btib+5dgmFUYse3NcMxqcL +0OxtMkE0tcazR6ckG57ETgfTySe1rfs2KkAMzukwCRT2wGDC+40RL19R+ABeYgVy +MRJMmOSjKefACAAd1nS0LT5Z0Sna1fVFS232f6xrZlOfvDYztZYcPAn/q68rQgSo +DI8Sbx6QYKqCDJNkuS2I7pQJ4T0tx1TmjK+/3gifSzs3OpNyqdIvIa/qfYyZeKel +G5CdJ3q2PLK4KfJV80hPEwbH7rN4uXJWXUkKQWZA3AVq8kMMsZB+zBd3MQ+0OcPj +LpChz4b8tQg+QfYKQGaaj+K0MOkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEEqEpk/Nqmh1dXC +y3xLx+10+VpRMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAMkZaYcpU3iIaq/brsm0NuQ/8vDW3Lx0xIYLQKjLsPCFP +RJwS8eCBQKUiDk+J4ZUxp+Jo1M5ZWIDz7NQ309gTXTO3TdbLUls+4bDxMSZC32pJ +6HFQjKp3C0790H48xGpmrRntO1LLTT9tZonkcp5oOS6JASn4xy2ELdMAHPEzm+ZI +5cl+hx9rXxM+tLg+n4M4KjUywSv0k9eYcZwW/RtCK2LbUIWDqUyT5hYlSsYhohEd +2y3RHOS6xJsl2XFjr1catNGS7xo0MIrmpCH4/gH1OE4BxFSSPGpd+QawjrCsLbxx +mGv5xdeDgaPQ/M3BlStbyegWQoEeIM6IfroDI6Oh6OZ5/Ejfhj5WupqwGHjpAyBF +s0xgNgAHhkK1nwd69LPCiZoytyY6AMg3eYlz55fbMJDrsZjOiQ5wZRLEg4lNRq9Q +73CC0rOmj2HzfltFXLS5aaeW5I4UPHCComw0RffVb4CemNUn0BZUX6lGuCSTz+G6 +xzuXxE18ZfvzWUbaW8F65hP6R1ZzDvBJNKiAxFSkiJIffTbF2W3Tjnbb+whLjBcv +pdydPvi6mtHqUIDqE/5WdPe00AtthV8hTb+63RjyL1QfdfQcHYzLlNJOp7IAshLf +2RhX80P8VGgnNvpBb+BIRjbIDmRyrNVZQFjflE8fOtBFx6aN80id5O2P6feUp/M= +-----END CERTIFICATE----- + + +EUS IFX KEYID A4384BEE3966533539CD0A736D1DD2C213538DBE 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAbhG8SH5lEOeigAAAAABuDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkwNFoXDTI1MDEzMDE5MDkwNFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1BNDM4NEJFRTM5NjY1MzM1MzlDRDBBNzM2RDFERDJDMjEzNTM4 +REJFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsgRKeHAhAXsYF/SO +wDxam4JMH+sxnhVU7ZvlS/+RMv/bfYXJBMv7PZ+EvK5vdv3pDBgtauiY9h6NVchJ +6IJwXwEnsWOv7aAMAUlLH0DqwTcUDH3y/bDsPgPyTn6ET/mUVqvi2VR33f4LzNNB +Xl0DpPxJNdBAQuAwtfWczS9DFSJpj4yCgvvibAlkEMuNbftsPNiBHYOBoh6pHSMp +bkjskygrB91ke+tZXnWcUgWtlpncPt7cIxn8NGN70mbWttZce+Jqg/eQ9xFGHP5l +NCJRTvul5eHlQmVs7JA0dRW8s5sWH3IVGq1q393AwytAcoKfsZTKEs46A4m859Ks +IN4fY0twM2lUp7pMCzldhihlYRc5qMlD2QUVvSXkPeGhf6UgLr/PLnqfZ9XhFnT5 +1huV2w0oz333MT41JLHQl4bmeEOPdv1+aM4wUYQCmaZrUbv1/WgcWW8A7S6NmBeA +7pl4FlpRetSk2Qo8oAPP/NY9UXk4skvkgSVABnG05nsrevg/BmI/hlDtBSw5++xs +1BboFvZ7QohBHdTndLNt2z83ATadqtSv3Ta6kXl5uXp/QFCdnrj3mi7Gz0W28xiY +FTyfb9lwkH4/7BjBxnAVWp2sLp7LWafo68trfGFjxmfNEl7prWm7QWPK9YhdfiyI +yYSfcf+oVlchwLUbLqtYV+WFJA8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOp84Xt5b9ylb91S +JV60gaKBNtgiMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAj1zipxQFij7kmeUnyZS8F6pWr3DqIIM4qMOlFg8EOzrv +i7slkxAdUe41M2vE2+L9egU0Ud6uqn60e5buPDRj8lYdIH8lEh5ke9JzXgc7yODF +mNfNU9JZZWFzZVUdjK7SAywzCxEdngwUx+/J9tb0EL8jTBv03n8JxHT+wWK28QcS +ogvtZW1p3Gh+cE8SM+RGDf7q2xZKxSNxf+UX0Cx3XxG4JebuzBx44SCaUG0xfNPF +uFQ5RZSnQZGC3EL/QWZyCbl1jSGb6MXyQsTcGkmXzhO93pqO4G0qhp7oiDgqD7OD +/bbFPBtOjoGlLXqxK6kP57P5ieTu8xKqkS/oRTxPldndKDoSeW0DPMVxouz7V4hJ +z4feOfW6mvWyfVxsW9676v0GqZ4m8s+rqJTQd8YgDebqxt1cFnNfrxLG3aRuHepr +WIRvE3Nj2O+/bKZsf3MZ/eDS6u8hUGWWnarwoLvoxbGjAEyndsjLikjBwjGpQtNJ +1DXzajRODRXVn+77qMXWvXbUzckSq3PlTb2h0QuvrN0kLN4ZI9qykvtEEphb1MoE +1n7wMIHOVR+4LgfE23BS2pSSs9rPywMzZvmsogcygCPba2EbLqAKn+9Inz5SoLm7 +KEVKnV43jIsHtjUTBF7UUknLxJRjq4rqUhXK1ZeH2FzsBf0KTdMBmEcfbkdJqJk= +-----END CERTIFICATE----- + + +EUS IFX KEYID A4D18726364EA2E3B278464CDC7FAD968E015D4B 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAbfmoZNUb7mAnwAAAAABtzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkwM1oXDTI1MDEzMDE5MDkwM1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1BNEQxODcyNjM2NEVBMkUzQjI3ODQ2NENEQzdGQUQ5NjhFMDE1 +RDRCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtjb+TdYaTIWtcMbO +17KuOMZ30CJz5Y2eNHGHZlD4gq1TjRikF62dW2dBWOseWoVfBDgO9RiUqMzd43aX +bp3o35DP2FGqFGjU5LZJInasMUrQK5lkm4phjk6oSF3c0LGIHugiOWoYoXFISm3o +qbWZiiG66snWKUi8jVNwSmwVGM79AgfegvVbc1QFpKEQdwofPjzQInyDazOtbq+7 +0+OOzU2I62nEdTATUKSbZGUqtBdiZU2rtwVBUb0r4K6yOtpIVUchlo41vIits82j +mBhXEYZoF8UTQ3f7PYOu+5WlNOF6/u3eHwwvdvSpczqLh+ioWtCzrWLEh/94S0cI +bT0Y6XUzTGR4IQy0Svf2eoSE27UzHn6BG1S6MlFMO2Sl80kqgA7GDmJVG7B0VfAG +KG8nWwNTLN2jEt3KJac0QpQmdjGAvx3uI4cB5SAPSDSnhSUfd/Ee7zD7s71J++c5 +YmzxRHRdiE9ppqeA2qHSy7laQRmG8ELYhRBNTjn+MTNkYwRS14rjISoH9sw6PNvP +H50c/wNIDK8u7W00UVTHUWN2Kf3oQPkQvkE3dg1THeEwnTr0ez5fGGnCZUaX6PY8 +PncJRMQiQdH3bh/HCuKE4maStpjHwy0pem9dc0m7fRMkeRT3irvLWjafe/uP1FLM +/mMby9LpY8M5hi3q30AN8pMW5dUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPl1Oxfb2rNfgIg2 +Xa0Mgx8KzT14MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAGG7roj3mv9KlllYs+zvGSYmjxFalqB7O6QfKxJDOBEF7 +ndjkdjajX4Xo1xPNwobMUwnE+1Daaf4MoTsKwgMg/ht3nMXWBL2qpBv1CtGRlPXE +wcoB9O88ufkUKi5u5BCwrQlKXToVCeHimBOLsr+ktnWvnCY2lKm+LfsgzzbW8Xku +ecK0KPTznci7XHMrnYrFqfCleMGeiUqKnx3CTKygZelQa5fTj+weB1yHIHyifD15 +V0TxpZz7mZpBvQoZmMmA1YMsZRLJ5kXQiy+q0xykDm4Nb/e+HkU35Pu6ZLR5lwAc +cpy8GdvTloQ9UNY2ey/OQWisPnHl6P9rc/KnNIwcEkHoUHsjXDD2yMdc9Jb6oQ+J +wFMv2d7nX0v9sx2CPIazB3v57rjIdB4WyuTNxOXcXGkf/9fD9rQg95ru9HxuYPvP +HvKlMgOBKChNNmhojjjGY2WJ0+EfoM5UdukYASR8RUv2WpXOnNNVPxfspi26z8Sl +UZ+TFg7X2vyc1GK4OafAtuvcO8lZZtFdxxXBjFMCN977X8UsHLl062tlCf17KygP +jIL636pm+fxr6CdiEH0jgxTYmCXoXoVB7PrzXa3hQaoLEGBcDKFsCYhnfFi2Spn5 +kkbCI8LdsosEsOVin7WDIdtUxBSW30ezikkz+/D/WQemhjRdL9ysNCxUnot+3Hc= +-----END CERTIFICATE----- + + +EUS IFX KEYID B02981157B6D7CC3210016380B898950524350E6 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAbprjOwG43pYeQAAAAABujANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkwNloXDTI1MDEzMDE5MDkwNlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1CMDI5ODExNTdCNkQ3Q0MzMjEwMDE2MzgwQjg5ODk1MDUyNDM1 +MEU2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwqaeUAppMAnryxZO +DlJhqo4fyLuVpifQESv3wUqm7jN/IEjQxoB1Uf9rUci/leAAgMI5oD3qc2MIfe3/ +RtaDKWOftpVt/eqEWf5lYRX2MJV0So+Gxn+PpTk4IasNi8lAp8v9A9CDxQGyoN+f +0426kC25k9ur5ZHCYXQDDAB20ZbOjH4gq2M9w1HDaQYtw5u6iqY9rEEZD+e4gynE +acGC65VDsKVQYVVnWjOUOxhy8dLDz72hTzI/+aI/axpYTYWjjfpDcC+RbQw3HOPm +menvsHJj4GpOjjDoZEmTs4PcH2kJHPePQBRxvQfh/LlPjndmPCznNdaGwvDsvn/k +iyQHhtghK22eUri52G5ZpRMduLQpmbvrRj/DWvx+aoC68HhWysECQcdp9FMd5r2w +/ve/LGpBa+t7/h6110aZXwLM5jc4AvF9Vo6CjG4heZsQFScLwi+FWfNwXWBa4hEX +pFGwiSSgxCUW7t3oM9ViWiEljR/K6AZZiBX47tQewQe3bNHlkGNLi5Mpgp3RNJ0k +tfy0ilvXU6Oy9UQBrftoP4N25OBcFFnppHjo/vkcEUvpXkGAcpm6J5NOsEdChTpU +frt5OEff+i6kDPoTjbIlH1TMbBZdXPkxQFuTKRm5bU7zKoyq+v+2D6VarcvkduU5 +OYYeRHha0d2bU8Ldll4FnBH1OcMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPIF31M/moHZLaQt +/hi9q4M9bnAoMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAHoJoUimNsgpJqxpYuJicFuyThl/yjXdyBarzMP+hC26e +THH5kXG5NM+EKAuDbSDArOtO49zx5oxtSpnWVUfMJezyR9q8I5sL0ury8eJ3gr/Q +qB6CQeirt8kUgm5jVza1FWBqRJeFh+zUruSmOCsYAWobvpFS30gpCp4XLdRIsHM/ +40kNLToO/Gt6vMFltmjI9itXp5hc4MeucQpoOIeNpJLp47NiMav0K+P2xUFX9kDB +k0JTnJuHJEpF2XPo2lsZU39MurHGlDKCaNFCgSH28rem5hYgpNeXvCKjszQ4TcaZ +26qH+1OA1/Ocm1KaBSB6Df5GuDfR0ZMV2PRHhbEIDwUR+wUVZ15ciUbS6wHwfaso +j7WBo9pDhvaxLiKkC73iawwQD53Kwutfro5D4qoulsk8kI17Ovy3mqqo5e1kIS1c +GFjTp9vSY5hu1qEbQnKbNpa+Nq1X4ywzAw+OewyGtomIy2lc6G7loaHTDm5c3Nf/ +Q5nmD0LJK1NFjpVduGZaxHD6trITTeXz8yvWN8k/FepSWbAP+LAgkhmAvk1yjTkr +5j/dgE/NjVKswpnraFdjkbyUVkrppl+bsOIpgmZW4Y9Wmgw9SshtQ69+xiJ3jWvH +TIL2BqEIOgDTf+iibTkjbSalyagl8w+RlmKJ5Yyx2hyLU4/8NBniwtYl/ihFMek= +-----END CERTIFICATE----- + + +EUS IFX KEYID B080359B59AA938800A4AEBFD10CC70CF01B1B37 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAbmYElIbXpPhcgAAAAABuTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkwNVoXDTI1MDEzMDE5MDkwNVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1CMDgwMzU5QjU5QUE5Mzg4MDBBNEFFQkZEMTBDQzcwQ0YwMUIx +QjM3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1bypPi4gSD+YnEvb +Yn7UFuG8p5DBf/ANllT7ofpsAAtAmiFn6IbhquezpbaXfbPAWyWD5Kw5W8CTIbAs +bhlV4XQcecZ7zwGJ290ovFabdGNjQavqF1f+GUG+xSPFvJnFaRlt2BFmiN/0w8VI +GC/pnGHGrSupp7TeBX/YIuCU0BYWkRFOPITjRfOMLfHw1K65JvvF2qk4KBIU6p+2 +/jCfnQ4+tKLV5krgv3MZYlraQYjAl4OkycJXG26CL04eNOSwQjIazGCIX83ZywZb +Vb5cOwKOOZEvtobvRjREC6jud165DCDDOXvrF4tzdQ+vx3wcuyvpCUjEKOlq9YQm +7laEOLze8nk3MBjb1ETE3EJkMUQUBz/+2g2yfeg41Pr3tBB+kiPa1eI1NB43p5NW +wGIz9Apxwfi6BHb+enSHaDfNtDpvwHFVFZ5smvHr40Cttf0qCs6pEzdBFCvia1+U +gMifOEppGlZ2kKhz8O9SLZhBpWyBezl1wlBKGlyKsLTpBdqYX9gRsjzNKFRkZetF +itouHgYAejiC0lgHt/rFniK8KrMwoFFhnGV2ADjX3tSTX/4np1nH/pHLm/1hpW9T +SaoaAdsaQTCyXgCIz2qH+r+LPSJeC6xIOx9NYm5ZhWt91Gx17dgsm0ksDRLPY1i3 +s12JO/cJBL6c01xlnY/7HgsBDpUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIUqjwQr7Tx7+T9Q +A7sZeSQAqY1VMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAmYKQlD5wvPhvVVJMKqsYWQ8imyaRYs+fGY4awaaglbil +lChmD6j4PIBaNMzcI+GwEAJ73AWNXlbJeMy1iBBbJbMCrH/ZSdP/NrxcXJU5vH7L +jNzP3TLinxGfURdf5v0rc59epAHGkVltD/de4TM6HlAEBL7lwGwWst6jreWJOFqY +87fH77FK2+L5DSCy3IqMtLYKcwIFqTWqrGJo3EzTEY7WP/8ENRLtotzczZOg6wkB +Udt/esMzjC4l5ZDYuTZO3JwP3N1uBXu+CRSjPfesBKA0nMtKxGdGZ5tHwFzGkjPq +t+ZI1E4iF/4kAhT5HOvK4CpnG06gEzozOk5fxhY6gwugdJ5zjbVWomjn1W+mranJ +azeblO193OQMhNzedIecAwyLD2RLWZFyt8+vuAFukGLDzkzDWoVOrUFeaQPgaoNn +DnroHO18d6CCWT8tKIXSZi882IyxH9ycpH8JMNKl58OvOIrzU1bpSJkqiy27phKd +jYT3VSYMEK2IvAv5VqyKoSo48OGQspuTyhAPU1eH61ejSgmtLJYwpcsXUTjf44FE +bPhgAEO9thCrT+tVMcyWAZOe3J2itjDiROazrdhSiF8PVgipVXDAUxrL6mhLLGrs +IXr/EJmgsEwW7tZHPD6pc0NjXnNL+j3AruUOwOX5HkO4JxNvO6nEC7uphHo5XtY= +-----END CERTIFICATE----- + + +EUS IFX KEYID B2D3CC08144C50808C289D119627479BFFC0E4A3 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAh2nqiZC+P6b0AAAAAACHTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMyMVoXDTI1MDIxNDIxNDMyMVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1CMkQzQ0MwODE0NEM1MDgwOEMyODlEMTE5NjI3NDc5QkZGQzBF +NEEzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnozSsyyOOLPoivfF +LaKWHaldpKBOkTQb0c3h1jC8lA3WHfkihH6LVcJUQheqWIHZvMEt4FUFYM7Br59V +/JCf5j7VI6ID0jgwZ5QqCjckWgh/x1iUB0V+piedDJj0IueRNfFgZx5wPtPBom/7 +pHmMrp88Hgg0er0IGSnInpVelftZUWz+KbyRwDjMfQe7G+vLL2sfwBZjyWoflhAo +tEClxF6tYQM9T/bI/Rl/GECQsCB3Q3751MTnM1Y1Bwqm/NTRYX+5t43WS35mRIiU +1c5QbyL6j9gT1DyVp1y2WfpR6to+kErmsgt5VLY0OfdOPtu8yPBPF6GbCTyj42wN +4vTdlK/OGRTznKnfshw06Tq8OrZquhAagkvgsVW3YcIYoVCsI2kYHgb0X7Mw/fkw +xHIkASAq36qhJK7uNXj4s2CNnYl6Bmfh/86rod41QzrRBQ8WEF+LAQD9AxeUtb9i +yljZjt3slLdcr5jWqarYAPLR5jMNAcfNQDwcXvigciR3IG/zf4AX60qu0plLfC4y +6brnYfkb4Lk940PAVxTITvR9W9gwennpK+L3CPLWZNXE13fBhhA09RVtZdXgVCSO +muOeyCnDBC5s7oEDaYKP1TVGk6daAC5LV9Two1+izi5/63D+GKqiOWKhCrYDQzum +32S+P+C7zoIKGgxHUyXxl1Hyrk0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJXrVsG0R/OYr75B +fqLnec1JvHYMMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAFoJQF0xyrQwJDGT+joG47zhZwpfIztwNCMyyx9KBTNXa +B+Uqk6s123cZLb/MqC8WHDUui4Tz9l3ebzP02MXBwpZzTA0nLuOfjucZM0JCjtim +6+HOUV6wF8v0uf5OXsoQ00J5nVb33m7e9Zreygs+RELfiINaegkpTwuh962xe9x0 +ue3ihaAE7+6NUw+9h1aSKscYb8gZCpZk9l6ktRY+IyD0XyRqQ6zNEJCnQ8yfV3Cu +Oa/uHK0p4OlSehGlAhI4/TIWcY4JFyUelLOeJSnPBoJBZwK1XjZ/Nqtyt1Br3H+0 +ZGs1BzfmFXs0XTNNVP9d7zOTYHZmqRNVgZJ76B1CUuj+p6SFUiy1DuD/y28GA4B3 +gkgggjWQzruKNCCB3NG1cw1esCa7J8YflcmioTfbuB4zzQyYFEsTKDC8+ycvzCTJ +awYcrMYgCbVdLQMwrYiYWRnBIFZPxEg4Ibs21erLO5mFNCSJVw/ub6F5sIhSzmm9 +9a/f+M08aKxszk8wikXYaqMOS7E4Bs/5oHgMaSX903uqg77WrFcKw5iJDptNWpiF +PIp0OvMoXSKDyxKPPLq/h6KMvq6t2sgxA9yFB/Lccnww+orHqcDzOLLmfB4Sj8Kg +Cvzxs47B1uuaYbR41kIh3udshGG4LQP+OloV0AbHlW9ZT0YamaXvrAlxUyuXows= +-----END CERTIFICATE----- + + +EUS IFX KEYID BD6C69C0759EAA95DD6D156EA64170C4B9B36C78 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAh5wG73syWAFZgAAAAACHjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMyMVoXDTI1MDIxNDIxNDMyMVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1CRDZDNjlDMDc1OUVBQTk1REQ2RDE1NkVBNjQxNzBDNEI5QjM2 +Qzc4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApo26K+S/VkF/g1YJ +o7In1DjP18sl52TG+4SFuzTCQXi1nqCZnM16MfihtlU6gXFqsT8Kbinug30szWb1 +Iu+wv7wt4L+OPjUAIql9OkkdO1iF8AauPsuce9aoJZorvKys/FLbKzz11uG9sI3R +Y07r1CclHZ5rZm4CB3olLfTPa+kOyUQuQlr521TKQceEBkrBq68DW162gydeMIT7 +pLTPU7IXp5TV4gu7n6ay5b2SWAQ9jKIeadVtwL8x4BVgndo2YPk9NwT0XBAcWg7J +V7OMdp31nmvTa5D691TIvIj2pdNiS4SjQhjS2hGkx+0qRq2rWzdC12WZ4dGgSu02 +IEijp9YQaG1tNkyrIWgjk9rQO23lkdk0Bgk3LwZ6J4O7CNXN1KH4FyEIiBayb+dV +rhXP6H4reAifhpoVbJf/Lly4/NsbcVaz0KsusFXyNIgxyTkfEdhE0a9YMOnHxkP2 +l/HqpBqvDVoeGlGKz5Cc2aotwZeZf/Tj7qqgnk8BnXcGaZp4mP+V1GPPO0X1Ym9a +5Yerx7/m9MM/RS8Q5pzle3RKxIuVp7ikh6p9ozDo6ErEn2QtCpvj2rxipKezArm7 +EoueGt9vs/JjWNieLUxjl8efWSKkBeaqxSFHVijkDjsknW9Ez+NPfZB1LK8utBdq +lyVBpjr6MjbYqvnRiNZrbM/g9LcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNQuq8LF21ld+XI8 +0PPDn/UJUhlgMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAm5lnUjOaO4WarV95hFb2FSeFP71m4YacRPrS/yPbbgXt +0UYcPmP0KTKySjF7RZdJG3ohv6KeSL6H7b3fJLAtv5KrZFrvATymvDWL1ZhNYcHK +JpYrL3cmf8HJqNaMZTmBsEEjc93tpaLAYmcBElO2c1jO8lZ6M2Fl8H6GkhCemfnq +SfpW3ig2N9jxryKMtcUZCnXhOdeL9ggfa02DNMbmO2tSsCLyq1AtEqIgi1yb9dSM +1hqEDBw4fU+j/zZAuqO2inFOv0AwtaSZU+1Sq8bQ4lLNBNNDrZByttTfMD31OsXv +0TYo8KJkGHRJooJVITDrahzPDSNh9eDJcW73GpM+9tfpzw4y+Wed8Bm7CmihkXy/ +prt0LH1rYUJz3gc6iLBZR6fK4h0ENXG4sPA+iDxqxFcLuRQxA2mIO+iXW2jKtZha +qWqYKwrJBuYAEiJzJgdtU/9f4RtqCwBgyqRAUkrYl/eGLHZNbvPQBSv9neilpz1X +R253HkKltVpi+ZhHrOwN5kmv20DT3V9jX6FGgmzXjqttmrZpxzhhRrsLWPA3r8oO +hGZsfLlkh/DEsw4wYzLVPco/33fmoCdw99VfS34zbfg3z124KxIITftQzwh2B4Cw +HJgc4dqhbHN8oVWIRkfW8fVt9Q+MvdbS4eXRaY15nfQwJjmbV/1S7NhApxT2JRE= +-----END CERTIFICATE----- + + +EUS IFX KEYID C0044E3B23F43B2854BB76AD4FDD79BC62986C55 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAewQ31pmy1+G4AAAAAAB7DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAyOVoXDTI1MDIwNjIxMzAyOVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1DMDA0NEUzQjIzRjQzQjI4NTRCQjc2QUQ0RkRENzlCQzYyOTg2 +QzU1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzRz/CAboDH/n6OBg +9Y8V21M9HYUEYhHxnP3oyOSzndLy7fzX2+NeT3YrLQ8HY5VYytcku2CTYgparoWA +kxgUNqouQAx+l6qVx/F0fFb9GrJDJ7JO0ux7v6RU2xCSn/MkRhlD5wM6CjaRyQiZ +80stVonjzeS2a15bK3t4mleI57NDu8+naclcqWa0lHeykyTyHr/u3m2io8eAoJ8L +4guq3TFbsqfMCn5VMEZfW1iTWTnfQUarZmNQALiDCrT5ixWAaoy3cm4jCBg8YYWB +r4VeN0JvnXk8KAoPzOvG9lhbo4hCoGmT0FaVwcxbAorNfz+GrJxe/YteOv86cX0g +NYD+nmlrfzqPP4yLA7SVcHz2tk8WgzN7VRf41pa2TbR1GYbpWjxIamxZUHx16nMA +hjI020SNqg3m2cIMdmpDNV6JkwwlhxUfDwMxNiW0/m+faX2NBqWkVqPa1xagj07g +MzUMg/jPrmRU4IWjpHjBf6GjSUeC6l4+GU/vf2c+Kx33naNMVuRWbBLzK1UPXIZe +KxIBEMYRWwYOUyM6mKwlh2Jt+JYe00qfgBFqQYFBRazwD2Alvcc/fhTnH50aI8T6 +pq8P4l82wcNCt+0+y37gMMH/Ax6a/9XiaKswj7TgMZrGwlJrlgtQA3GUPWZLt3rn +ZbuLPr3LwBtl7lk61r671AHT5LECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCH6SxvRf0uDkA0B +OqDyiXFSBVwVMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEARR94rn7/BMqAqx1cYmrua34SAUBb9vkE0MQbVBIgWJ+s +i8tInkjUHTxC1PRHggR6CO2tkhZ3zZw4CxUgc4zenoKkw4vE09P/Pa5fl6i74Ixa +MJ4hRyhvRqSLwF32Tsg+qZuawLKCqzFjKuY/lfwdGtbVMFK/V3YnlwZmcPCzhin1 +OBwKHVYmqBwKxtDSJpm9MmOmhRpGbLgD+5+n5gS3LMJgqo/qNrsOLMWtKc3XFIV5 +x9BmgtQRG1/aIjkNagMUTzryfyLgdKattpHbZA2tPG8jbNAW4/fn+1JCqud0x/eO +EP94L066w/AoixIRh/rZWio+0/hzJf99qetaq05IUkDFqAHJzBvP1z7s9KKRnYX0 +OvsOL/T8mgMeEFWTm2xhNpaMh8VseCgfVT8gb++D6xHo9Mfn78EdHAFgCnWpGSwJ +IN9lhKKkqag5LasaTJz0oSKm/sQYDgpqNVqNFoOAcZDeCkYYi7kS9VnM+fO2XRdU +wM+Oe0wpBNfEdjwqzMBULDc91ouf+ZSzOtO/twpjlDIGf2yxKMovWJsdYSMeUpxh +PoT2B5CE2DbFt17EvpX4NQYGnHBadtA5bBxd3aajYYvFvj6wnMKJpgY3XglF9AQe +krAVlqbnBbrNO40isOalty5b6S0ZHXCTgu15lqQBt0hy579lGR06Q1X5qTt3l8M= +-----END CERTIFICATE----- + + +EUS IFX KEYID C7EE1D9CF6A291A06E4F5B88CEB25CAEE12F827B 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAh9rELZR3/6dvQAAAAACHzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMyMloXDTI1MDIxNDIxNDMyMlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1DN0VFMUQ5Q0Y2QTI5MUEwNkU0RjVCODhDRUIyNUNBRUUxMkY4 +MjdCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjdVs2vYpXXYaZ+Un +ZE7jGE78j0FuJo9AxopzWK9l/V/UaRNaIlCDXIVYfq7MH2qs1gU9Q9EhMUKk5PCN +FZ3xx34kcw2bLBi59dubM165HBjigAhkdHPsMg0JmxhQO24rh2ZknFmkFVxfR/HJ +6ZmYKPdXvQ7bhmATJvg+spafENAQOCFSCgvWUh3BS6tv+pJe1ag8uT+e9JVSuZ5n +bXSmZKsxQzLZLHBFUxD9W2IUqoT1gsuA7YvM6GkrnK5bA++pfMXuKS8BcKDmtPHE +F2fE5ZRmBcR1ny9OGgwmxlfRXuxProrHjYDa5M5CLam8etWwTy5LVPEkw5UNjPMW +EPfC3X1OH2CQO/YZtfUnljVhh9tRkrpedvPvQLlNogAAPKxuyqR0+MIhRv1cgL2Q +YBwPmTtxlg15YFgS6kJaGVNaK7PIqWTlWrtHWGFfeL3JQSmm+oQR1DwhL7ELeu7d +GXQdYyUZugzLhnNZh3xZr0usNDxD0mAEpVkrVecuLMrwDJ61uB8guB22PfyYN63G +H6p4cbOwATYOjE2OOfKYTlyQ3Xu93zz0Y0iyVtcrOH4qTr04nu6HWtg3YezLWxNL +FT/Bg6tWZlVGmHdbIPz5LNY9W7ID3PFMW14jCbw6s0LzL42bTI/fsXzlwE/28C1U +trrvNRzknvnNU0JrAKXD1wFCSocCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJNFYRM8Dj9cPO9+ +QzxUqugaX/n4MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAW920HYL4Dun+d7XatjTPs0NUmu5IHxSn+DjIdbpwaQT/ +COO1PVcgH5c5wRoPJEJHlYzk5PQJJiX1Va70j2zLkS4VGA1oXML6f5vuI3gEui3C +B343L0EhPD3Fq49HhV39Rxz4szHd0zSUgsVGV07Celb5aO3wz0N4d6Ur7IHK58Cn +0k8eh7R7VZkTZ9J2FNxb7yIy6UP4Na/rQ03ijHuk7U7y7X8iBpTDpgUoSBW+YyKD +o2LVq0ubWlY7Hgf0IFu2aYyw7KRBn5vkVTfenCXhNL48WZxmEYVZfCN4loj5yIpj +cHdGdxnPJ88U+WRYd84U3rwqIHmK5zxICti812tDsCNSlb5JaCRK9nkNkr24SkzQ +fk8oQXiH73eH5Te4MxQWUsFUhB+rzMsgkWvW4jkS8X27NVnaCW366YLw7OyobSth +issQ9gwfp0ZH4+GWRi9hCByFHvUK1y2v5iHL4fXvZxJGP3/rBDX669ECZSMQ8/7+ +gejKMJ2WNJUzIj6kfuYuuIqsmtoTtJza53lN40BbDvEUUvuqtZbPDFsg0CfLxqQ4 +oZLstgiodN/qd9t9hp5habjTJx799HXidXteNIgYUWdBQrn16HfrpF72k2rI86pk +n1CkwPWGxiScpzmJb3R99FhTpf2wVISnCcm0kHPiVAy4YjKgm/0paoBawB8ME/4= +-----END CERTIFICATE----- + + +EUS IFX KEYID C88C75FB06270BF7EA1244FB9C25DFD209B7ABCD 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAiACiQN0FP3++wAAAAACIDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMyM1oXDTI1MDIxNDIxNDMyM1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1DODhDNzVGQjA2MjcwQkY3RUExMjQ0RkI5QzI1REZEMjA5QjdB +QkNEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAg6mmrQuFEozu545L +4TdngguKDkUh9I7wEMAuYotFYo1srUDo/mZlo810RfeqUf8g6DBjizDhIFMrx6zC +GkuDQ1ontVxLV2pje1KQWihOwR18APz/DbZdUzclH2ryCvFpQxmWi8s4WSJWxIjp +u5Dbi1mbpdhAC83vo6EDIx6HLYjLP0sxEgY0Vdaroh5Cl2yb24Xkh2J6qXyISZnv +0gHOKox/XM3EdM1vTEZdB6EkZ1DGWP+8hQYJRFuQNU5h5lEtpX6FL9+NzGfDzT9W +JkR7PXrx8dpDM4+rxU40lM0G7QrI1KhwpW6uI/58SDCnBLc3DP/qofl4xLwqkHMY +DF+oDfJABmPBMdiR5TUiF6zrZL+zvYWgN3MLJo7fg2zCozqixTIb82jCVmqhrxB4 +WyEi1nCAh0AOTZQQh8l/gTFWrdlqV8NogkV1RQIclXqq4p4Mz5nkpHCiUGkR7/cf +aFu1TnF8SIujH6xeSMjMzYFA9Ku25xifvjEkoRxwZsPAJa28eEJZLBRv49J4xGl5 +Gz+qOYwI0WTZsTf4WWCfpisoy0BlZnArSTe3uRYT/ZIjnzz0lCqcVzJsUNze1sCw +kUY1vUCCXeS5rm4/lvZu7NdrXv2LRUtw/jFzDqHBtWw2vokc9eUYa/1Ospu216hD +LGRwx03xBLiCsU+7YLWpFVabHAMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKsryFRwnB0QRESK +Q5vhJ4jP4h2JMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEARCv64m2aFqti9/nBt5Zd2q0EQEPrsvesemPXW/5/eTul +cDse4ZiQaLufP0GVEgOdgecYVb+iNClE1RD0+oXTIJsoJOVkrMiacNvqWmDLDHQF ++Ch6IlzvCxuIeZsYhx7tw4qomtw7I6MRNFmvZyGwzKnEVNiplT/IAKzpJcgDeVCO +um3ZEU7c6ze/VseIonBpunMTEWr0RdcPkfcjaakmfPEhDxhKxzoU+1EJlkiceYib +0CYhWexCSyF9+hZWqtPTr65Jgk8ldliqZIBui+X3ij+WV6Ni0IxuQZCX7IOXEmG1 +zUty8/kaG2cFH1f4+rVtakW3ScPoMfq3Dxq8Qk5vaAhLzO2sxAuKeFo3Yp1X19Us +yZT8k8pMGLrG73tZqS4XOvxIsONedbIbVlWBL1mZ565bQhPtrDK7mD80gCGgFBSM +zJ85jMWAiV3IS67IWLP1DlPB0231Wl1sm9aOKNntOO2b3nrm24IZAbF9O61IEz15 +z9hseEWuw7W8UtuEzltJtsxWsLKbwPqJiI14+Fy/aNDpYK71gtrYEgIeqjYoE6Se +qhsUmGi2pkoC74Lv0Th69Cwva2Zteh7xCJObMEScOroeclLwgLDHtVpFLirqjCpM +Whh+7SAbOnv5yw2t5Yqbtr1m2iU+8qnuRvpGlh2JQqpEotUa2bCI8wzEDz+nyCM= +-----END CERTIFICATE----- + + +EUS IFX KEYID DA206EF5DA6CF79CAE93C5E472FFE9480172CC8E +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAV3+LbnqAUAvlwAAAAABXTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDgxMTIwMjUyN1oXDTI5MTIzMTIwMjUyN1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1EQTIwNkVGNURBNkNGNzlDQUU5M0M1RTQ3MkZGRTk0ODAxNzJD +QzhFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0+7/982F6FhgILeb +sL+C6Gh2vJ5ijiYDAXTD62In0RQq7MQ4aOLg79VvtEy5oFRoRnz84iQuTYO4RPeh +L4p0QIQGDGTpwjbLQmAgRm7U2gbmrSJCxd5r3L3a4O0UZlbD428XQrIbNDfdP+8r +xSQIY3otH2E8yl7pO4p6KSInNxRyJ/qyqxzuUlFS1BjfnAtK8tqPUUQz9SMDkXO3 +zyjispEtTuym/xqx4jX/usZR1g4ixqN95eY2tVORI8HklCQzl22h++I4biVW0LB9 +dihPmbtI2QD4eVW9JeqjVlj1k+OSbBc4UiKDAjCr5iA9apcoOlNH7nuOu9foFoJP +DxAqZQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUF0zFnpzucr/JtyFeUfsRIpDdszEwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBJNJ/8 +iVY2ZMNwLu3mmAPTVU4oUcch0CudJvXvKIkHL52xIYbYYPiJfAdSSXVd9a6n4An6 +ss+sbWQA1kc3iptM99Ca9nAWgEe8f722Uju9oQ8r2kZ+K21HQVgxuvSFKHO7cRR+ +91bnFPb+dfaKln8KFRYrxRsfncf6mTUHG2oIUC64Bv+cx5HjpL9rOKyOi+Tsvgxg +GxwKR+IYxLW9yHtCFllPHqT2ul6+1FFY+1Zw2bm7H4XKkZg3PI0Lrb0kjNu7s6O0 +KpO0jHbAey4wx0L58o8gbwdAi1RN/puyXFe8xpTUxGRVvKiiJ/3SMNW+WI61sMln +6hG82rwQPR/g1rzRxmcnrULz4W2Sxun2g3FlCkeo/NU/+3SzqVxKicflcG+KfSsR +IaTggv+57aJaFRM1FpnQdGOmRoX8Dr95yVgYJsh5meqeD8rOuSZRIdTs6PSh6azg +sQDHRSJ8noBjLSgr92nKOCzI2JT4P3QytYbnY+b4lW7QlVJ+zlRmIDFpLokz7IyJ +U1HpHt9W7AwfuGG0Bw/RWcMetEsfYVE/p4c5tXCMoFt4bvmgMWpjA9szZ4iYsh16 +jPBs6Fu5g4xh6bPUaENv5DW8s4E1EBYdecOwqtOT1+R34LsCsjqNkxC3j7TQSFvO +7YmG/EJ2Gg4uga0TCHCMcvtfd9vtR57g00aNGA== +-----END CERTIFICATE----- + + +EUS IFX KEYID DA206EF5DA6CF79CAE93C5E472FFE9480172CC8E 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAmL7QKxricDTFgAAAAACYjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk1MFoXDTI1MDMyMTIwMjk1MFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1EQTIwNkVGNURBNkNGNzlDQUU5M0M1RTQ3MkZGRTk0ODAxNzJD +QzhFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqDg2hcJIAJyJjEQc +tTARk6Mu8UjVTqkoZomqYAcAQmphehcJUD5nBmWPMG69fFERqdgUAQX0akjsFABC +Q/Vk4BNcKJqPpz6iwK+A0iv9jPPzhVpaT7Ouo8mIEDdlX5/wtHB/bQSbQ9iKiYyK +HxJZC6Y8GMdO9D4xK/L8LJGCUBUdxzHtIqsomb4CxcXDLcOm8l1V+sWSn9Y75ftK +k8yhrnil1foQqtrhGk/PMT+8u+s45VrUgtfqbzzsRdSaWT95qIY6Cnf95wao5F0J +NNTGOksz3n7SJnEz6xBKERcs8Q/6hlFV2LIWssGU8QtzEafWhPoPP+kfcbVrjI2d +9K5H9tcRbcbf3THdDm4mUVsPGGKpMvBWven/OF1WuCCogDI41zwpXE2520BYfDw+ +4eX40zjI+g24oaPi+653Xjklv/9ONbNjjRLZFICyB3+KgO+vyTfrpeI9nnyMel+F +iUnlsr1vFaJqWKBoFYsDkJWcxLz3Sv8H/oKHf8bhsg1CaAX5Daekk/dMDScAV6pW +sf20+AC3GF0avdLjcWjb2x7JwmmDqkDdn7yHcKurKZIff/fD2hJ/3wa7vzxaAOO1 +cnpAMjrjoFOJSseJhDa9hI1VCecqEKEHI5sKL/BE4JUAVyI/Ax166gT7n1iwUlmu +H/uErYF96qtlHJyr096CeSdPc2ECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLFEDoOCirru4aB5 +lk+1wwA6zIiGMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAC4NYgBdWOwxnlLfFnxx8l6lYcSE7ap1xvHIHxHjr4jPg +8FbVcDNPje/HDVHfDs2e9vtbTsvxRrM97/B2/vbbRc+iArczffvwap12ypq+Oo+T +9bj2tqHPxFvKN1i2HvhWT4LJNoce4h3CI5XHrTTTCfJSJYD3EX2dT+mexLbe0hh/ +syIb3UpxvREED1KxZ6lOrmGQzX+dWQNhen4zpftTfxnKjrv8q3w+DF/Kn+MkMtA0 +bx9tgspadm2rZCOloYtOoL9IIHjAdMxmfmsppnoiJa0f8h8xkHC45R4YoAL4nOIX +4Z1O5HAqU1yZmuzD56vW3Fwgrcpdj0crOW68EWTVIQnFoWgLj65e0KOyRe7FOmma +KylL9VFBjy3wAEJ25gAkeSy9NW+Zrv1Nz0ExmJ2UubGMo3jF+at/xgfB0+NP1eja +8BoI6Agtk5j7LmIwc/Xnf2ASQRfThFbWvl36v2jTN8k0YLSU0cEViejYA3cFRqxx +9I/BKegu08Wof4CHbSLPpHvuNWL4PQR+teXZ8LVqNXDufg5+ceCbnGtYQuqauMIY +ZrkN38aoW3gK6faGITE32emPVVvfZlntjAc8x796P1HcXZgiijVZsIofUqhPCoJq +zbvogC2erImViudzquE9d9bkpY98QxaeqCI8Ht97yXrh3PI6kNrukHv32iZlILE= +-----END CERTIFICATE----- + + +EUS IFX KEYID DF5D6DAB5102DF18A1F77113F4983C62CBAF7385 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAe7ZL7TfYaBbWgAAAAAB7jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAzMFoXDTI1MDIwNjIxMzAzMFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1ERjVENkRBQjUxMDJERjE4QTFGNzcxMTNGNDk4M0M2MkNCQUY3 +Mzg1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApctcZCxvW0nx2zNg +gFDWc83oA8JuxfhAiCNVaYK9zUsHc0mDOtn6kVswKfstK5etoGMGHtBeIKsWxXtB +ID3la2PMo5F6MVh+p+Ixqne3N5Z8Qs85ff8JZAWO0jgHvCDRX4SswM9qXjASjsOF +3jFlrLVpfGIxtr3EMD2n7Slc5y8oQ5ekBxscx6MuvYOP6D9eddXaLC9Mvht+nqaN +rWJrK21H7WpR0f3wlvBVrxI3X1/k1BiKmJA6/q4e1fXBi2KPFAbh2NArlWnTgv5t +mUpkM4+H/YpiZwYgzTNNhP1cRFUsqAccrto//dXHKKjjhYhGpuqWaOBO0Di8llFg +cPWsVxkdiD6rzVkrcNdhCLYeU2JGclJZH6Xili/SzBXzK+GER4cB9SNQbKHALg/n +4UGzVBZVI0K2Aq+wnj31xMFhY2RcUWF07d2K3ztyRBUpUPKqeUXrBQD2PSgsrBMQ +XWXy0caKpl8nHebtemghOZhtZG58Tj/C55QKeGcMOsp4PP6IVXXcisr7JogLZhYs +z/fH44n/FqA1IpxOnRyaFIMYIJm21gCCJzMMx+dLp0NL7ePZUPiJNLDhIAhd1caZ +JK36Qq+ukHUiVuG6mKGZU9LJs9GkbhBG5Dj9jnBMjHEEqTBfNHWHPxiZwhuwEKe6 +Rg7ljxojT3rEK1u5wB31DQUoAHsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFImizg1r42zZvZYe +ps7CD4wWZnryMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAEPLfacVyDfZhUaGNCOTJiXFU+86dDIwYK9hQxX+DAPdH +6ZI+LFFxGNXTik5i2uVaIrmG7u4OnTojtbJ6biTXsfNAGHcjTOKH8zlj2j9NvQxF +m2eJnl1KE+87KTE9D3ovtOa0uv3pUpm21as9rdCmjDQLC94mAbQNUrTOOdm/bYvQ +sbk8zzQFvU8rf9AbDQBGop8362y4MaXPUx0RV5zoXgJz7lzTRoGcPFTHrHgM3DoA +BOxrazcTRFxzw1WCdyxc9tOZbii4gjAAGT/jqfuLb1bVAcXOwhCVoqFZE/5QUz0x +ae1RCMkU/V1g4Gi4GDuu1ih3YhqcVuRYOfPu28VwnS9/x3EUg7DaTe1v+EwNiJGV +o04S9yaI5Ec/6awIFzm1rlMtY5rAPh1+c4sBt2W7NaeNZjSfa6Gi2ieaLUKLbK6m +TbgzlXaPt+NCcIXFITrYg1ppaQ8bU/1ErJgo0MIru5HOc3igMCzVFW/2xEx7inil +1Qwl3hzE2zF2mcq1y1t8eMp+MZRoSFmHOLVLAnzrd5+4DzmuA87UCGfUPem+wF9J +Qxj12+0Pb+nZyTht7QRDAstc+7UT14jzPzyli6Z9FaVls86cH/KBkzvQJFk+aGyK +LKwu/aIswBLkJx3rLaIweQABQb0y/eOdoJcp85lW1pxDSs2gybIMY02vlx23GLo= +-----END CERTIFICATE----- + + +EUS IFX KEYID E9061797E8E5E8C68F935EE5E976BC8FA17D7523 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAASAAOjnYxKJpHwAAAAABIDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQwMVoXDTI5MTIzMTE4MjQwMVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1FOTA2MTc5N0U4RTVFOEM2OEY5MzVFRTVFOTc2QkM4RkExN0Q3 +NTIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsIAR+gs7phLxIuFg +Z08gUqTN8aOoAZcLpCUgJDF/XTQ2FVuASr8EuhUTdXtYHOz7xBUOJDE/vwqvb6FF +r2lI4a5wqKrvEs6ZVk9OPoX/TgpZUlawQk0qNkQlzV9aAmKa6ofitoLzMAbP9N/n +mO4rKjyF/x9BR1P+4/iW7yLh9l0DvBQj0k0O8VLrIv7j3Si4WHOIzNuN1xZ7slDG +vXe8bHcI5rYjmQHeCiaf0PCL2kQbpti48v6KdkLdqyloyXK2sAhvxRB3OJnlqDz/ +JJ626QfuisGQk+YBjOVxx6etka0IvgiRncY9qEL5N2Eucms57yUyaWRDMnqTGqMX +WzG6pwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUR6E/W4K0+qyiwwWa64nYQ3aHoEswHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCAWgyH +O01PB7H6WrTn8OH1eLOB/E+mc+t0wk1zgpVBkdQ2SlHT6ApK9Hx77S9bg0tfTFpK +rdZb+2aekQu9cPMHhE/8WnS/vwy7/kz75pSKPGJoy4gi7cIjufM+jv+U5Dako3XE +E7bhHdNEQOheTCDenGVLnz3sLVIXb2TnmAudhqC3QNp8/LI1fLGtvfEJ05Z4STCE +9GpdnCYQVROOglc1TGp8C/hP8fwuLzl+jNPyoBnY7k08tOBlLpWq8EMtkkTBtToa +R540Q5/s0D8gumXEIxLZ+Ei15SMJghwqKsZ6O0EtM5zxGW0KJwGCDAxeiMt4gLdZ +QJHOhZlYAdhwbarVsN77q/zeBSUaFNa1+Mgt3WgV7lSQCvfvjhp5xufKrLP28p7S +wkta4zgyw38nmNIozwhk9DYUlrqX13iOzKCRxI1/I8Q6Mj3KzGQLwjt2JJI9PMCC +Jjt+K3XBpQl46UO9liQhgtOszrbUNGrVBGR76BbE5UnEbOrCklWu7NBjmfumvHM9 +6gQubXfPs8seRUxkDcpyAPj5UTN/DtwQqSzLohriikPlpI6LlbVKialauAb3XuWr +AodxzQJJ+F76U7eCcBz8PIZcu+JjpHUWtTSQ8Z1MAzOcGoty8h9lBuH5UBAnHckJ +GDrWPLMe9MR1SkL+ximdW1P+YtEiRhSNPHVO1Q== +-----END CERTIFICATE----- + + +EUS IFX KEYID EFFEEC5E01610082C0E311CBD07A3204408B32B8 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAmN6EEZ2nnXbvwAAAAACYzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk1MFoXDTI1MDMyMTIwMjk1MFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1FRkZFRUM1RTAxNjEwMDgyQzBFMzExQ0JEMDdBMzIwNDQwOEIz +MkI4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxptYhuma1sIdGvpw +ZQZonESYPdsFlxbJiAazNE2Gvc1jFwciis24nPn3UT8hp+v0GTLCRpL0QQvqaVXx +ShwyJBKxeKcv34eFjw/2aOUNWdKq9WVlX1asBsgS6B4KaZBHqOKGQCiTGa/F9ECR +yRV6ng1o3YAB+zwmsZcwuWxtwwn7JPE05kucRVaL1GRTsXZKFwzilOOGZ9pCkNAq +RtcYs7xnN4Q1UxiZuXGo89gXQ+mTOK7rNy2I4hqV78tk28giT3k7iIvsDbELMigu +of/WPhiXPdQguNT4uTrRE3fEK1gulvoY423/EXRKa9H4oSKVq6NX1keu3ynY4DCB +YWwGcqeY1cZ7xBTvtxbTnD/JKfHlCA2O9wx6E+q8wBCMwH2CCkmcldMZCjfjoyin +JmW4Diwge96SE2jBxsr7sNwAMUPfrn7wXIUrfGgp2GBTE3CNGToa4x0xHw9yUHSi +Jr5T7qZ6uJPcCUUaRhDFvSD9V/fJzSh7Fsfndsa7S1OoS0450M+36QQRnWkkOJsq +DqgToHYuvTMtUOArC0uSKaHJIqgTqhPJDhMR7KEcyTeTlt2MZ7vgGVmbKghCTcx5 +a1/5gfcVcN8LZF+lnQ0HePdeJfkVSOhwAu/PkNhPGi8/m/6X1fOQkQtSC6wXFgOG +H+5EnLiTMm6WGOEjTqgduv5SOzsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNmk/INDlitzMhBU +ue45jCBmx4jBMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAbiwFK8lJYei7FHvrn38JoPKuxNA3NnCrDVKB7/ZYcaud +uuFQ5PAk1IO7vcnIKwB0eLH+p2PUoro9VzRJn+Uxx050wcpjcNphPA1k6gjRlQ5j +ZdALr4f2wuOputrS5quhegy8AKuANhyyrrrmeSaDVJaHx3QCU+ygwqMJom4RRe9a +aFfRAAS7+ObtcTJ0BQTiqIdpQW8URUUz2eiTsTyqKbIkKDq/C/kKMQA0LXTVb+j+ +0O50VN4B02PZGbyiANRmooQHSxs/jY3DUXOIDyoMForb3tJg/UAg63fXsR6JnqXj +3fW4RA3e1GHJGprMWUCr+fvK5+AMc4G29R1LCfZOw94Unx1INKnZtsf/m4RqAV9S +mAlm8DOGcvu/hxs6DEakPRdY8faQqU5dFAnqPPPJpaqkVumUCzg0WQxdK1/bhY9Y +fydypunv4tykzFqxycyCRJKZqnj24EuM5bSIUi4/AmmJTa0meHohXv+v62cFg3Pu +BNjwKGSRQ5cMryeATONzz49CCxtq8H/acpb1/sFjXlmQiYSFCphx1Vi72CiiKR7Y +XHPN+62PPDNB8DMB5aDDvIhkGuSEbkLrFyoNjGdPmslRJU09tc5i/PxpK+cjyB3w +hOCjOfJ1IUOJfTibGG+LFCWq6tRJ5Tx+6wvNbeer7LSdCQFci4MKlnrbJIAvPL4= +-----END CERTIFICATE----- + + +EUS IFX KEYID F53E4F475E0D3C6E2B3E56E3AE8ABB953122617F 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAbvERC68yQGBUAAAAAABuzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkwN1oXDTI1MDEzMDE5MDkwN1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1GNTNFNEY0NzVFMEQzQzZFMkIzRTU2RTNBRThBQkI5NTMxMjI2 +MTdGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyA/l9loLSPez0tx6 +Fn9e8hzd8kKOdXqfnqiqLbfGhAi7KYSbRpeFHj4b1HbYX8L3pfKAuvE42xkWCSrG +/T+h0HLlMP+aimYu5oqqCE2cwiljCgLpBePErOEZkDsKH8TZXrQifuNjc5Q5nrHM +KWiheu9/8DWiM3JIIK98TbFT4xmSIcyIG8OfnSZqagqtXdvxUA8M92rdTrmxHumS +W3lgv1LH/FTpJKitNfWsU1/fVk1riGWIRyT+eAy3mXP0xWco89PiPfYCUGqkG43a +q51v+1jmO3lE55ipi2+5yS9AQnCefBdLk+7P78gGrBRAs1vQAQWlESksBhfnelxo +WE74BGkzKOQIF/cb6sDP4gjBWxbZz7rpr0qTLscAycx10bAfTCS5ZGy/wEB5iBVP +56xDVzt0XyKndFeBSfWuc6NluNJzZHtVhmqpAI2xjGjoYomacgzFF5BkL22ARJjY +0g1FZ0iwymxPCSuamk8J21pDWGh8NMFZan6JZxPzbgunwoa/QDoDcTiMpXCrpgdu +c7Lb8u2he3s2XeIcHwM8LwtpO91rCaZrKmgoaMO1mpqKHdF2f8Q+9idisTNE2eX+ +fYZSgwbueQSNiZwa6XmyP5X4g+0sJEfvGgYDqPVPVcV9EEp7jQthyS8unXIfJhkB +qMn7DJ1ouLL2Ugymd1paYCF6MEECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPm1HqXFPleEQlsR +Z5Nf/pviKNtIMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEATb2c5VVQ1KO7td7tuyw7u9TfiVhZqMIodHIIsyf4hmz4 +BStlTbEQmWRJUCryUvpeLQrmUcZ7LTc4r48D8Alh/u/B2Grh/lroyGfP9l/+REXW +1ah12mgbd+bVd1KeDZWZHQlKlDTSqEr0AOmg3uFA600UayZXV4YAMCdUpds1NTbN +WaxNxjMtGd3vKwa1ZenV2i22xUapz50qfpAyGG55MihsrOBD4pmMaVR95dzMbkX9 +MGfDD2LWd3ndIgvFNrcVv3j8qyTzk52hbNqTvL8qfZ8qZx3VaxyJUjX+M71AoETI +VRFTseBQRBdCJ7k4hinrNZSG8E1SUyH3v+JuzuHygInBt3ZxyCsMlu4lhmui3Eq7 +o4VElxrHGwTBWkLXSA032z+rCaQgVAHhw5DeE/7Z+odKKZvY1U72b3mRXL6F/xeT +krIMsyAbmxsJVOEGYxWpsSEK//YOc/vV8+/cb6oGcr7QcWvssw7g5nQqd9O6I53w ++FbnlWyfeV6rAnkuTPsTuFnrazsBsJ82A1MHShW2FqdYGYW3hfaffOIY1fZ24Mq4 +QXqDLoWCxn62hHhc4OpwDXylOzEDW8FD1ln3XYR4vkMJcg0lEhk+bdbs+XPPmIiB +XTsfZ9Ow8uT/roUa1u7VRVOGIaaK4Hnjwlqvactlrz+j0f8RH5JAy7awUhdqHas= +-----END CERTIFICATE----- + + +EUS IFX KEYID F65C289B3D93B78F978AC8D017B7947DA93637A5 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAmTZn5LC8gyqLAAAAAACZDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk1MVoXDTI1MDMyMTIwMjk1MVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1GNjVDMjg5QjNEOTNCNzhGOTc4QUM4RDAxN0I3OTQ3REE5MzYz +N0E1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlH1t4xR4Hp+n4DTP +7wNpC0CmIzBZG/LoLvsjrufR/GjDlvYQC73Lv+CwhaOnH3J6Y/3ujIMd+uxDsnT1 +Vox41qAiwXTIbILSuBi9/OlB8eOUUxtNBMsslaTnvzhKIyuH3wXn0k04RX0324zQ +M8uVmmu2WgQ9rv760rfIfdx3SM8F36xAwN0rZVL8W6PfgdcY4ajRxL9jLBwp1k8h +ihcRd/IhGOmmUse+MqNNMfYH1re3XMtjUpLncqhn1cawDey34RDc469K+gJFKNKv +8e2RXUa7GLTLu1Jt0g35RnOOSdHxcl3xjRIZkNcW2PVi5xfFtTYlyE5OQHn5wvLL +BJVk6x3ScpgcqW1Gwj2fgAcXC5GPOwnLg24iYsrxFJ043G0AEsqn/kD0Zzn2H9B0 +BLiswBNnoXPmOPOMo7NfBUMi3HcytFTVIIJCZjFkVn8eFTK7P5RP0qpeNcU1zHWD +6yuIuVqKY+x2FhZqeeboK6doVsVyoJKcIUlUxZ/XmBE5cJLuqzYp5pWBlXDfjRar +SyqjlCyXTtgh1po5GAmyxcP8JJUwP+6NPLV6AxzbvbmP7whX2Utl2p5rOVkFyGNn +37EPEBM5G/SbJtL6AcN/4RVg8cK8Y2xFb2IxpHzW7TAhQ7RCgT6iw02Q04WJBch6 +sogoPgiqqbyMeRR82zHmrOFV3S8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIRoMJT4xuK2mSLk +GkvXpIekKyhfMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAQn3/NzXwOtqOE6N57S+X6TQ0c3DM2LgtSROQczzmD8ee +u6tsuhd8RNq7Zodpwd8hJ+zhc6hPm0S0YzSptU+gcmSyWp2bYC4IW/Iy3Nwo5xPV +BkOBA+R8IBXwFf/Isiq4RpgSkvbcx9zE2R2mDSkr4SiN0hpcYrYyiDJIOrYVd4VY +PmShfxVKI5017+V0i7zg7oh4pjHD8nmt9rVW2bS3Oo3OHDi9at1y0Aq1fG7V+/yD +jXGt0JfMIsflkqqfqRJ9kowyXSZoN0bhyfv5x2x3FqoxdAIvb+WyVlIKNLsU05cq +P6y+rJhl117z2ZCD+dReuIv5VKx+yVqAhPcPnccbxWkaMbg/wnc8fzHqFENb2CNU +pg16IkNW3FxNh1ImGpa5OFp3g918SUS280hK626risQnADzxfPNmm8YC6irZcP75 +WHKcvkfGw3kGAAIIjAljcCxj4KGrxKgwHL1dW4FnAzN8t5i8U0c24uH2zSNumQHA +GwTbfCU6a5FMBPV4c2Vb3cJsRRFyqHB171ouDWTo8iYreYA+JmP6Namy7TYDSz3I +WnFpjqFF9ciOQb1lT8YygejIrD/wNHu5wIHvcQWO1lFi1gnyTEoh9XATBVEB1fKA +JF48xGulFG+2FhbxwOZQGcQvZnwTwfpWIaMFfm4X8x9fjz4KGeckQ9c2uvpeMQQ= +-----END CERTIFICATE----- + + +EUS IFX KeyId 2583CADE368F69C80F58D34A48B2DE653DFEAF98 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAA7UFlfjFeNs/gAAAAAADjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDgyMVoXDTI5MTIxOTE4NDgyMVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC0yNTgzQ0FERTM2OEY2OUM4MEY1OEQzNEE0OEIyREU2NTNERkVB +Rjk4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn4Wrp5ztDKLZNUdE +b6RmW2fSKfEkjjpwKPYwRNz4Iz9QTLOaXH828yXUf2sQsfajyzNjWyZwwrDCLJOc ++h8PbW1u2D31xJUUa18EZsSiDHFD80VFttEpNMusjgXfryn/SYQsV3m+bAq8C8iE +QncxdcPW34oPcfGghSGjd3uTKknvcvLeEqQzfBoVo9jOOQl0apkWII6J1dxQCz7u +s5q6sEprCY1ZpQAx5T7nc32EXSuAvpaXhkITHF2moyy/qBHCEnt33H9kNKkYu/vV +mAFDmaKUOkdWtQa6l+GN7eS32UqYvtCt/vf7Q3d8M5QktJOHiQ99swf+SdrVLiID +3zow8wIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUQZ8NUUdjcnm5bxxU1g+k3p1H5YIwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAf27Yh +DKoRm+/1gjXZPPYhGJz4u5dttUqzIer8lrgIVNKVWccJNCXdCJ8Eu8TTMATfcnsK +Nfk3ukzrFGJJzJYKXrFcyXA6cnG1j1A3jgo3i3GyyyCKz/kO7LnkNA1Uo9aiE1NP +pVcLGUWlg8c7b+varGfP9kiUR6N/VSvwpn6Ccul9TOE8RtmW53yc4B6S0G3NxdaI +J5KHauJmJDqjd4fSZ7ZFISz7Tcumz0MCqr4zte48TNcDTdGPDWMBGAgkxkJFoSz5 +G8cVUgBR9mag3OBI2ChiRBPWX2iVSvgCiHjlM4Uo5rlduEGoh0MJYwxFh3x4teeE +uoVWlpfI6RA8hjIb+14uxQehNHpcaVdkCfM6NOuH5UIcOOOYAPWCoqSsU4JjZjfa +Cx4oci1uH6BJ2ZX7eZZChfG5/oauK3DFi/Iw0N5+WaRAU/1/VAUTuEeA0ChG+Xjl +NP5ddmixkXRsor2eabhDsfbKnasEGfwDfWPzmVwOSUPMo+NL7BKVN+Ia94KUO6u7 +6JYs+Sx1/1DVnFAwRrhZ9IpkIbKyDDvtO85lWj2XmM4ZU+EBcxiqBmbHRN8srtjb +StRzT60WoFrZz+TMnY178WX0Hz4mrtIh9l3Wm2hJlPkeduDC0Tp4MNlxgdq2lRBP +BX2i0qsPwSucB/RczT+owwWy6GbQQsdtO44vVA== +-----END CERTIFICATE----- + + +EUS IFX KeyId 2583CADE368F69C80F58D34A48B2DE653DFEAF98 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAhl5kekrk7NsPQAAAAACGTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMxOFoXDTI1MDIxNDIxNDMxOFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0yNTgzQ0FERTM2OEY2OUM4MEY1OEQzNEE0OEIyREU2NTNERkVB +Rjk4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAs8I7HP8MptPa7e43 +c+3uf+UZxFkErI2fHhFLyGi6hnKqMPMfAZz3P+ct85dZ3/ESIp2DsIdTZ20AQAuG +TYLVOvqvp5dfdq4xc2atQdFAKx0WvCGEyr1TTCcj6JFVBJPvNlaWzZbgjB8ftcr7 +GKNOr2BqFdqbxOfSTqDXVBvdFFui5wZOu23b4I0xTa4U5cOiOJvMr/J1E7FC7p7y +1Sj16NdrGuhGXJykbu2rGHsax5CIp6IQjipb6EDO8Bv494X3Db1geoBEVAcQFURh +41eBjkcGiNIF6t0HoXu0LfVaenNFwyg5sUUdirZQjYajLyw92NVJk5+w+vuPwlnu +/BNm/knqwm62Wm0z0L4jM8zGOx7C/eVslw17H3ti3AQ5VmUwAueWr+QJO0zxIURn +LjvHiyIjxkTP9MlGiyDVFBmYgVPoSrcI5aS/bSkQyFFoaCmooNjd3p4LIn/QW7hl +J8cWM6Y2wXR1gFysdN4UEcnKXrSFUsbJOQ8ZwFIFeWx8YTVSe47hcvGUkLUWjkI+ +2ZXXHhNjEIcKrt0/JaVADVXTylsH5D3ounPPfrXZXhj6mDEuGFsGzi9O6Qj5/dwJ +RnirLGA3O4uXbMYnNFIdZbrPBnjSmb9MhmdlpkbSpQeBmSmoAfwv8+pbetL0e5qz +/8vEqfvyHaDUTREs4FDhluFiwucCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDmIBeLrjewc9vGM +KeWrZ97515iqMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAQ0kw2rca+GqOMz0y3HU79CfFi5Zx13/bLjAYApDVvpjG +1ILkk+LYQ6pIXIIBr3XFtOYpswHVoRifbC2bkynvzqQ+mYDPhlQQwbN5ORkxZyGS +PaHAHCSHgZc3ZtP0apTgfdWDd1jE4+u9rTrNCRtbdG4giwGgm+/oIZqWoZQvdoaJ +DCvkqM3sMS6r8BKxc2ZtnfYJFqN0iAw2NY9Dm3DpLxNB2EFa9AyvjarQv1Ptj5yj +3pexJLTdesDuZNoZ9z0Ulj8HS+kX/8bxwavTjGfBXUz/m/TVhPNTePbGHzVGWImS +NkjW3OlKHvadUiXBrN1tfpqCJ3K4EOlmjMmJWfidpa11wn/RUtPSEt+tpigqS1Aw +BkID2MLMVvIOydXO5hmSJ2ELB9bIZZeJs9T+3KlGa5qTKIMg0iWQLVizgvMmxAXV +S78MNUBmB2rhvPHj/HcuKEaAwAlzpC3AZ3d6cU9yfJ4mJDJ/nBH33pf7UikM+27u +O9NFn9t+jGBRFfO/4KSqsoolVDsSEOhFD+JxZJjNPaHyUUcGPOWhQuhhUsSE9PHi +n/FrdaNUk6dhnepWIT6mJTkvmzRMIusSCgqPgy5A44UCay/7vMc/m53DsRnbs6Js +FcDXn4H6FAbxLKzn4vsy1y4uuiNCjrs3+4M69lx9Mdvhj1X5Ris50d020q5710c= +-----END CERTIFICATE----- + + +EUS IFX KeyId 32C6E576663FEE80D64CDD7B18E5603863B3BC8A 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAebMRcDwui5MxwAAAAAB5jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAyNFoXDTI1MDIwNjIxMzAyNFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0zMkM2RTU3NjY2M0ZFRTgwRDY0Q0REN0IxOEU1NjAzODYzQjNC +QzhBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2gBq1WQM4mQVnS7a +AlcmqUZVjDhM9mJbH5cDQQu/ypjPiMFgLF8Kju+dhv2RaGsqm0zUK9MtRVAB4kOm +MHTU8ud/PyNFdYmCuA2AJXQt4E7bC/trADa4ZzysXwBAqm4xh96gVxKmcrsUrj5t +dNsZjaBkuBOK3/RFhiN/z1TaHe7rqwUNKw7zhXNndV3D+3KM3ppp9KxNI3hP2zDs +32uYcYCQMFyNkvf6w6K/Slevy0M5kICQcQ/HDaUTTdbIjD08Hy2b3GMSD6Gb87BB +tT+U1aS6WEtyJun1cR+4avPlPD1hrQfsIg5XDbVeRwKu1AwERogE3EcgQE5giFcq +1zpbYFd+7RGztxiVIyj8xHEtufhe9xSeYG1asMX/ahWaEVP2Z3bHaU310rZTuVcD +5A1iYWllnO6kYYQysSYpAWr/fvh+r+wQc3u2pmPlr9JX5HZ3P6j+gulU6a8U7A4S +6AjeNhewLVjRkYI6uS7eMf9x1Mip1HawiGzFZBTvm0s6FJDd1XcRu152NqQ4TLO7 +PBALOcwPPf5Ob+afNyCsSjDBd/KnefCk0DGHsn7ORG0QZvLkeaK+Lq++mKhsn/D9 +geRemP1E1hbUq9P3ecZ+wp6wbMN/kvopj/6hc/HvjuW5dPylO6JVPpq0ZjTM5EE5 +0RuYNiVgAD3ZrzSILZuq2oyyXt8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAYPlXAAriJfQYtW +tCzNx86Gaft0MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAhgyrjkJuDyxYcOTyAhx26nRJLbF7uLSmgORLkl5n0/oH +a/WsNP6PFQaFAGwWe6VNJuTzS8K8B0vbs6o8edqRxZh96+OTVu4nvU7z9bft9ASc +AUY07Cqd+Hd4iP+8X0iDenbP+bwsLDhjZMfL3FQFTS0tWN0XN6eZ7zF0GkJYCG8g +0/IiH9YZtgBxHaiQ1DNWSKxGag/EXwWboXK9Lj22jT7tI6+hL/aeDVSPwUvRAXW2 +aHmW7iQKQlWWtMswUpzpg4TJsbIjhZTVG1reZ1o3remytZwrdZYX/e6I9vWLsRfr +5LVvplFUf0/G6KZXZHgde27+JRjsOlf8wo66lY2GjlIIxmAR6FwkINItwwTMKqvu +xz9zEApzY24ZmfV/gVBlAgGyh6QvBBQMNPKXTwRug1alqwWRWLRug40CyowBnETo +1mawMm0q+ucKIxJqDl/6shUePwH01TZrU9O/v63HtPAoOrqjykNC8U/3PerBvMMt +ToFroRDnWGqWVu3n8nXiXLMD2cW2ipjJ4HH8SrHThlOiToCfadFX77tgrEhez62v +e2Hf6H5HyRrDKx1RqJVts+uGx+NJT2JDGPmnBhb9Brw+BZMl9qoca+RXixww5Cao +A9OiZN/JA9yW6VXiWIzYqNnF/Iv7k1rYU8xLgLKzztOPUb8X4hOd3NNcjsfPEk8= +-----END CERTIFICATE----- + + +EUS IFX KeyId 3893cdbdd873c4233315e1b13ba96a0d23cc10c7 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAABFmpxFUhvCQSQAAAAAAETANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDgzOFoXDTI5MTIxOTE4NDgzOFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC0zODkzY2RiZGQ4NzNjNDIzMzMxNWUxYjEzYmE5NmEwZDIzY2Mx +MGM3MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6OvFiZrgcA/+eMVc +BqRpTEonNqTPqTzeeWVvrMlewCWGK7yf+ngc+1HHO4DnQQpMcqj1Eo4Xl+zvXL+6 +IDPR/+ddzWZpnJSFG+kSnJk4dphWwXXQSqpYPTJQtC9RG5umJJBhXANQmIPLPvC4 +KPDQrc1jw/UPMAeKGRUuEUXZ416GFg4J5V1C0+T+93ZjyHmIBdIREri3t2KkQBnR +qbWrch5JY4kBVMZZkIwv9rOOaaU/BTUR73rxV9Pb0OBLtKgEkU6Rs9ftt9h/XkoY +U/5omf+FW0wrKtCSKUDP03PQrYaohvntkMlnaZczw8QztmOqsQVS4O7pTcQh/6zp +ukezdQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUczhTk0TT5Ert/JrrE6LG1RWC9N8wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAVaKvr +9khOLlv1C5GxVcbQeVWfHKImR/6d0PlZaCWeej3oAkTxLoM3hrj12o5DddNxby/t ++6kFez6EZ8EbPinWipzz4NGQACnbSpc1AKcxRg1ry/Mwf5WB44w97NclLRJsfP/r +KBTSxL/nsHYdUbXnnVpJscJ8X6NWXoDrB3M6cCna4AKWF5yQ9XiHRxOJA0shJK0l +5H+i4YASIzD++w9T1be+B4kCCv/vkG/ua3388vJFM+CUJipouN3AU/jH4q8nlRQh +5fzx0jNojHY7EIfxYyVRMSDTrRubz/8qCeeoC7hQSKFCf9qqNaEgl42m235FMlg/ +lbRQwltCP5r2Q+QXkZrjQu2fLIRVMUhM3EmSgbxgInUr9h5mdPBAcvDLsxynRLRh +1AsnQQaUTGUhCJ4FncvrDg3mkTbGBD1357hNMC4iJGFEog7Ha2rcsGtxBCujRZDV +8i72ZnxC1ch0DIbdu6jHRATJpPT0U+4QDS89OdJrqG5fvGFuBMeXKl95DmgvkXhR +yrIVaC6kMRsBuS3L+NKgLeDEW3f45q3LIpgy6ycG7h4F7/c4eFcDjQyRftsHNrmu +Sp1e1q/Vsey+2O2x/O31rsf5UQcz+swJqOx2NfwAWKaObUPxz90kq0t1+/panaux +3WP98A+xufBgQOG1520itDxD/7CXd3KtlT2Z8Q== +-----END CERTIFICATE----- + + +EUS IFX KeyId 43325af5500406548930cda9a67dc78067b97801 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAABcsNmRo1ykEngAAAAAAFzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDkxMloXDTI5MTIxOTE4NDkxMlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC00MzMyNWFmNTUwMDQwNjU0ODkzMGNkYTlhNjdkYzc4MDY3Yjk3 +ODAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnPOinc27FaDLO1IZ +vjb/rcm1xbUz+g0n06U5cCLBDEQieEB4DT3iqmDDVlSSaK7sfTkeQ5ryUSZQrO/0 +7QO9Ano95/Fy8TzID/2rRrA/nno9RcbUDrw+U0PJhMxhHRw9B9sGQARV6ZZJyPB4 +j435YuAbIpAlbt2vceiwdYlrQ8JREcDng+/cFk2aNv2ORbXY0V3u03Psul5JwpfH +OxK3D4H0oQSM+OaLW0qeCsILJmM7NCrFUIzedst+vp0SiOMdBOY3IO5jerWh3VUj +rjaDKEmwbHkhA1LlfTq9Yv15kuzoxx8PE9MnJ6iiyiZ3K+c69+Fd1j9kr90436cp +hagpPQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU5+40RgVcuyqOQg1jDA1nFFodCkUwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdJ+St +gkqE2S1HcAWnSvbd6kJ7W4MJuJv6BYcJtezXy93aJrmWkitIJPklzsGl0OrEq2W9 +8PgBHatFIAwAm94apusd8Po3HvSFP9LiZirfd64WhQidFkE8ckvFYXUdE2/GxXni +1GwoF971UHlbvU2hbLtl4YMODCCG3XWPpKhWHD5iyuwOXQJdS9wYCCW4jn1QOvhK +NWOfslQZNuRzVuzoGKAvh7xMSRDNv6U3f3lBo+QE9QR/IwkrP4lLSWvzX4HpbTFq +YuIcPCKWS3NU5eTdc2dpxYihiXKTK3eayUCuieJ0XFUH49fZPlHzKTDftzsaFzX7 +OuC5OFFaFip4BeRUULjZaETzUIg+dEJ+tov3wr8hhQTntdhgGWz0UDqLgj6r4wAb +gIGEzhwR7dC/L/qD0w8O8HcYTNjV2IbpWNt+ssZdjkQUnF1GK0roz7D/DyFeSnkQ +O4b3vzuTYLMuVthmuOQj3F4CBJAJWGjyo3oruElj60Z5YMyqPQhgoD0E7zfNedXA +HxC9no8SPdoSByjBjGQ8BJUmTAwVKwGAMf17ifB0IZp9M/MIabDseVbXpy8cK3jV +p8SWlaNHahtQqk77kN/qZLzQg/4os9QaAgGEzVVwiIL7JakXB4LTIKdXf7HWMPrn +mtx+yKnEMQq14CVHJ/pTj1dj+YhSzJb21JrlBA== +-----END CERTIFICATE----- + + +EUS IFX KeyId 4A769EB5D93C833A5500F1F281324EEF03FBEB3D +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAFoM8T+juAbhNwAAAAAAWjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDYxNjIwNTgwNVoXDTI5MTIzMTIwNTgwNVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC00QTc2OUVCNUQ5M0M4MzNBNTUwMEYxRjI4MTMyNEVFRjAzRkJF +QjNEMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqgeo5YaVOVQovR9N +LARoKG/9OW7PGRZMEma7qLI/f6kXR+oMSsT7ZsxWH5l8CT12XFjwImW8KQOchivY +BSWeswHnDgTvI2VJ+LBHwTtst0ViOBGS75YQZ6Dg5Yqym3nqSYRUG4YRctN9u8Cc +3mE4SBetcntwjAP2xf/5B35aoLOjOm81arS3id9wblYoQ99kv48Na0Dshm14+EXd +At628OBUUylgc1NItZiRGw5dgu45ZrEVGtTS/iq+pY1NNJB9GdagueIom+y+2K64 +w0+1YcTxbxrOBGhG2bLfBbyN7l1gUdijaMT5z0VwBu7HgyKIWqWRlczJ3Rc1DB/I +VRl4jwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUjU9X/XbEGQDdjiqD5ps4RuMb8A4wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAQN2Dh +RgwLWWNeBAgtEu8eIcIF6Lj3SL5+Xjtv6tiKz6wG7ChHcz+P+lzvTx2ohxVKlnaS +aWxOpy5U6ONaU+rW5PgwXOFPGiBczeP7rw90R/dxc8SvQJtV53Rw1vXU+nfD1vVa +Z/tstGqo5kgWZO8p2hnaa6XNdBe8kZKQp0FXG4cdUTvABXNYvj1QHhjm6pQpUrXr +ypYWKdvkRucC7yihwHqaL2wpRVqPs6PcnCftiviRgTGFLu+6HaPEksQF++6IWDtg +zHr1ETV24TtP3UsRMWM+1u5AlVj3lkNLzlCkhafNdXviQ+RTmMVjxdZWj2uzG2DJ +T63uVpQ0PR7sMnuvJxYRdnMO9L16L6sxDvkO7rrYPlDHCyTqgleVCd9uSWcVc8mm +Xe74s62A9j59sbFEC+FSvuuPXT4AU5TQlmpVDyp7KJn//iEdyeot769IgH2R4Bzy +KQjAv3oDcH5Ubm5lbL267whO6FO4qvgwZcwjEF6EHqRycWfFR/UE/aSzYOc+HyV1 +Wi6yilKJVyLPhun2l6+hYm4DBuAA0aQHWrHHvoAW0fZyBOA0If0qJNtVDmpNbs4l +gGIqVy+5vbRQXotlKMqO03YcCuHIQSSJfwaZ4NRu/OT5869Ml/D2ULmlFZvog8fj +rfqMiegTcmahfohOqnDk1aVgu+bwnH+6b8NZPg== +-----END CERTIFICATE----- + + +EUS IFX KeyId 4A769EB5D93C833A5500F1F281324EEF03FBEB3D 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAhNGtZVcULt05AAAAAACEzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMxM1oXDTI1MDIxNDIxNDMxM1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC00QTc2OUVCNUQ5M0M4MzNBNTUwMEYxRjI4MTMyNEVFRjAzRkJF +QjNEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnIVmLPLEkgjVXV8h +bdeYSRqUm5LXJdsb7HkyTfhpPBiD/gLu6lW2jQriT3J6zRtaIBPHLjJbrFEZn3qw +dmQA8YwAj67WHV22M8dYDobxseK8SgWIYVBnlxLPeCyPI9Vu9IBMVNjd+P5z2GHs +0KqVT4t9lCFyaBoAGYdDzf3XNaFz7bFkHWiVybr9kMQ4EdflW/p9M/ilz6yCr7H1 +cD6h7Uh+kCVw1Jn1cGxqYpQc3uVFUAUSz20TmT1JokvxMNejaRQN7XjdGeAsGwnG +4pnQoRIsjsD5+qyutQRUf0iSs48irSw1GxbCvDTbNcosCm0n3QA727DoJC1NkTVD +VKrWh5ScwJVfmtpeqknHUT88xA8SI78F5JNPCnlpdyGt1Yr7SdHuvCGfKThC1llo +3lc4oyuU+4/e3na+gsPzPZCC5Vgx1/xivpi2+25PGHTmKIvGGy37DsBl5tod9FdH +c9rukA8a4uAWYoX1QfB/SWZLRG6nzwVZKzYctC+mWn4hyMfUihwjwy/z+yO9BYX7 +uWi7Y17FTagbE4/yw8u0hRlnYrHXhmUesI9bg+zFvST4SRRBbz3u0Z/O8Oat0oFU +rmcrcD7jLEDx+egNYDCZzAjakb/w+cSKlgn4t+Rn/AoKjDJM03sdw6ps+Yt3WXnN +Qv3WGlA38kc4K4WRN3xaYgO09dMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJgbfGgDv5WtqITm +0hCeqlyLRdlMMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAT/hdervkzJ9JjxqtseAXOXQd8VNY2S5Bl1GbhaxEj3zo +o+vDkyR+65zi/oVYmW3RRXS2YrOX7LMV7R/pMEwkp6Gkkc/K8p/g0L9YzkjYlNuK +4clP9IaIbGFFl6YmqAifQoFYZmxrJThHLlLfP4iqWMP1EFZKv9XXqBPYuWm3Imy5 +OAy1jPyQS6SbdPhxLaCqUuumxT65p82QGlQkz5P5p5RmSwPFxzm/U2fqq60iEgSt +YXLf1QzL5JszQ2kWLEdOwhVbmHKEpbX9RXoosnBB/1QLZh6Wrm2YF0x72V1zKunn +ZNRWqgRLvLkBR5E/v+2T/HdWQrctra+DPyVuP23eOXrWIqdA7kBfAvp1HrkHU1Lh +er/3S18NSJINY802jnlAbNP0JV/Tn70D5wQhN58dW+zJiJR/FYbUYKypcLRk48TH +y+BiCbwLSGWoj5m5kdcewx7DC54QpcVtj9G2BUHLFPW6s/aVu4KpUs1FoRNAFeTa +hR3flXZXYoSCvOg/fDR5sZi1iHKul7tZVb0Fxo7h3OLRIpaGXVEKn5u3EEmzkXxD +q3Y3AsK610P6dpKRGcHFJ06R04NI95GgwX9RXNPILDELB7A3awT6IwceG76HFkuM +Exu188NHR7OK4pgN1EV3inpHBz8aQ6pvYvaIVzZsBJek2EeplqpfBQTJ1Ym4gAE= +-----END CERTIFICATE----- + + +EUS IFX KeyId 4c4b4d648908e45bfe5a10d36387a688aec1cf78 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAAL0WmwUyZ6aeQAAAAAAAjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDcxMVoXDTI5MTIxOTE4NDcxMVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC00YzRiNGQ2NDg5MDhlNDViZmU1YTEwZDM2Mzg3YTY4OGFlYzFj +Zjc4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAseU08dQ8TkTP4vn+ +51IBHoLM4+HiaHP4q9+hUHmS99mUt5zjwFeP0tFtDRaBgHMI9BTOpOCfhpa1cGNh +RVVOvlW40vKDnVsZ7hVDarczS8mPGcLznpCVdjPOzmRt8Rj8J8NFF3fZJlFuy2rB +frlVsroIm++fDwZioyoop0015Je30SUlSFr+qd81OFOs11xPwDV2kmvto5+tnmlf +kZkWz7aFFc8Hqqu+YXDKncJmlx+6JzJxwLlaLWQkDDJvxSdf6W9vC8GkfZsmR9CB +MgF4ezQZWbKsYZsr93nJjHCrd2fOf1NJhWO6C3AtBNkbJ0HV/jbK0M+5yKwmsRoB ++iUF0QIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUSPLJqPDlLkKIu2QnxccAO3TKQzkwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCOhKbv +udkFOEOOir6BXOh1bvsDMobr0Sth079hOe/NtPHsSAHqBO4b7lSEzixSfLhfIQBI +3WtLXU86WmpGR1OnuM2VOFnCDEpsqDCUoWOgd0F5jRVqZWV8MEIL7Ua+GKsWMlqj +9zPsWkYNX0hx1oGejp12wMGKvYI0+PDN211MmOzFxksNoZG9476ltTD47w5RUCLL +Uc+1l02Ty2AP8HOviLjl6o5JchXbYiKQWHMhbGD9VMBlsEME7+N7aIxZo62KXPNF +Gc8iyLNfSTaqFVsIRsRVSbFCX3klKPj6J9naHMx5XLZ2smpqDWvYTBDZVshNGy0w +OkhwsvnJLzPygiTxlZDpKUzIxVvKUt0RsutgrML66zBWRoRDoO0a5zDzxsb+F4Mw +5CtQVE7vClbdVxTHBp+dxg+pzgzmhzjekZWF5WzBGik6VFBTgfz9r5KyxtByuOk+ +OUtDQZTFnuEFNNn+GCaMg6NKHOVk61DjRGMGsUI8g29VwPJd3AsL/V6vf+SiU73f +zBYpydBitZzrRe5KPc1NkDPVgmHCygrXU75Q1NXtVJ2TSh4wwxfG8h9JwI6T9Osa +eMlhsAYNG6bvklrEOqoPCUyTyCDYHKLUFtdQfg1vYBBuYbhWPENGugsb5WV1025D +BPIpU/vJLwNvGphtijrzH7S2hBqczP+RHYxNdA== +-----END CERTIFICATE----- + + +EUS IFX KeyId 65957CAE12EF1B1A875D951A9425B1BC1D2B3BD3 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAGCPeJuMtBw8KgAAAAAAYDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDYxNjIwNTgwOFoXDTI5MTIzMTIwNTgwOFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC02NTk1N0NBRTEyRUYxQjFBODc1RDk1MUE5NDI1QjFCQzFEMkIz +QkQzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA94EKp/Wp4GLPOTyA +B6tFZfKI0AUjXAD/SloSJcLoiumW85qNA+zUwyJSaYletTynLuUezjbmfhrKXm0N +Q+lKzZkPIAZPLemf2cXe7shaqu6lGjo82LyZRh+S9/e2yybiFkXMJLfQUb5pmO1F +OsJQgMAZ3Hp9tIoBcTMA/sedG188/iQ0vbiK7GxmWJFd+M6TPPHW5x9j0WxowHUi +Jx1sHVCFQQ6D0qFJCaDNocWZRBJuxSQZx+9qW+VS2R/3/M3DVMYcWT7EagOuT/aU +ul2zi8XdKcBjX3htrgGybqaQshrmk3w5n+9lE0CyqltwoABBABuJhAxAPSOfG0A+ +Oz+R+wIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUiquI8B+w6NlmpHjRhAy9bce05qAwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCPMJsi +6wfuDSr1aqKEbYrVt9xTKKcU7BNo5QhQqfXjdsQI5lHpyMVwdCFDyGRIm20fpE0b +DcRk44eo6oVSJ8P68RUo/5puKX4JkkkKcAhQ6khPxTC1V92BEsKYefDtjmlTDxRV +VCYV0Jam/C/OtR11wTtVIp7DV3NVYbQrRqnggzjTYJp+lV0D33YTY48Io9QnrTqA +UZPYuxfBsB67yuG0SFuherbl0FK6X65ufClazjnJ57Lh12wqtaJfU2atiVFNrDMa +yMgQEeEFgC1nyqGBcMPjvvnjDBp3KjBHBHZrxY6SEvm60CogtYUJMsoDKg+Iuc2f +08ayeF1hnrYT99xeMHm5kAfGKbvdmX14TYnRGuTt9xNhcKDa6Hr3QUjF+amskJxm +fzNZU7io+JyWCo2O12QA/uJv0DFk+9iPjer8d6JAEzZneI1N0KzIHKeB0gSybrWM +pyMIh3t15rBiGvY5JXTyfmTvAJwQMawlw9fdsOR+vLGu+Zf1eyCdb0Lck5kmDbyS +7qBn1SIUR+oqVfE5Ql6G11jt3y4QbvshdPjTmsvWkTy5jzFIoj7n6n4SzAVKPoRB +LouPZ2c02yIy6PMX6RuAHh/eqAIpjXQV0zN2co86q8WcheYe7+hdJI5GVhGkTt2H +SVKm9czwaxXoOPRbvEib7ynN8+5XnuKJIi9T9A== +-----END CERTIFICATE----- + + +EUS IFX KeyId 65957CAE12EF1B1A875D951A9425B1BC1D2B3BD3 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAhtKc3+DmFZf/gAAAAACGzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMxOVoXDTI1MDIxNDIxNDMxOVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC02NTk1N0NBRTEyRUYxQjFBODc1RDk1MUE5NDI1QjFCQzFEMkIz +QkQzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvFiYG5Sm5jVrx2cm +Hqw96/92xgOTAerND/3zEqmGAa42ZnL8dNGpSyRxlLq0HYbJ4zWfhSFmOHEkzRNQ +BDe/TeAxnb7ylE2huKLICRiIb23ASGrfTi98IS6ddd70V1U1zAbZkQ1KZMieE1Ut +EM6SUQ22Z51yAf2leF2yIMmy7CjxXx/zRGFA6CbvFC5KaeVq3ttM4xM5Kff69UAu +of038smoRs2ajN4jlTL6ql9rmxbLcEcODM4vn2dQS3o8r+dib7FzMs5gxizdsDUQ +daewL50Ld3j2znhuqaXh9Jtt4/oy8dYX5131NfiiDdRbKD1H7uWT1m9PzAMlhdYs +Fp+dAw0ikSjZq5DKEFK+TQTqcFA/9AyhUFVDFHp/SwgcziRJk49/1vK/Oz7Ok62e +ZmAw+SnxwG6ghwVQgf1JIS37+PUzodyzkNVH4PndCaMj0+2vQhsrA8rIMHDIRr+q +gA5scYqotaGpdPdiRoN6t1NZ3pVcgCeec3LRWawh78gQEv4JRZEDR46mj9umLJTp +o84vQjOnttGzohM7BQIYhMGMDv3xj3Jwfk/FjuZZANWR1mlpkXZ5uNgI1rWgTePi +N6O7eNbCrYbg/gg8XdxHk2N+gLv9VsgctNRTqdbbou1dDbHm3FHsk5QTbfIPVRTe +FTiX7QRi4ilYnJXfoiZ+KFY0Th8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDpVjY0+ij/p9uV5 +huMNmMVSl6EPMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAP4IK/oZaBHVhDUJD+IVoaKUwSfV7efIkYZuTEzWnQHkG +4WeCnzaqo4tnsRha+SGJPSW7atwT18UGucfs+vSheKlcVJd1+1j9AWdUcTFz5oIj +oqDp7hr37ubg7YhkyVccl0Kdu2s+v2bfq+cgLSGnBUOp0A3GBfqdXDZVi2GjMWar +7gMf8+SVviJKJqao4CYVL5fF0Q1kNyjq4qwVkcU5yvsCasMD0TbSVOrP8gdJTmLY +GYizYICO0CXG/L9068SxMvBQ0QTKgqgIouRjgEoJUU3Wzejn1PsETnyzMKarIybd +mKVJ888jX+j53wi5ZM3JF2P1mpydUpgY1jGnUPVkUTeINm3BK4vcgA0lLPOCMs8I +S5WOQtaXqpqDSqr3u27iS8PO8ZN3GW3Mex2V3QISqfZzGpZxCtAf525pqrNoUvmX +b5pB+visa5jQIqvzeCGaaoedOIIC2lTHCXF36b9Erm0hqqfVQh1n5WLoWidPOLfu +3xcRnH2OmXwyDp1YiiBhnIhZ8SzkudI2EM7YW7Ht5ompfBgr+JO+7jh6FsIuTDwR +cEuHiJuq3splL749TDDPTKHYac/5FtAdPzSNv1ZJMoZL1QEO14lR3EmkVbGJ9uc4 +5uUTs9X7DqTxvTBnVOmLhuRDSh49R6gTX7gWBPihPnG2qTv2CoX22bnsoDyAAeQ= +-----END CERTIFICATE----- + + +EUS IFX KeyId 7026D09ED935DCDC44D84D7DA75CCF0ABC1FDE0A 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAekk3cpnhteHPQAAAAAB6TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAyNloXDTI1MDIwNjIxMzAyNlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC03MDI2RDA5RUQ5MzVEQ0RDNDREODREN0RBNzVDQ0YwQUJDMUZE +RTBBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzIv27m4a/xMxgD5j +Sm+ljZ0zP7dLR8KlOUtEm8X3DBHbbNtFjzimWKj+MRiTyjaFAl9iPlFxwppQFu1d +9jALJMxGmC4UsSkDi5FY1S8RhTJ5uhe8okr9oqcRpm3Vgqm9FD/h6x4rXUDfZGdV +Vnt5gY1SPGcd3yUzM3XA8N2x7tYuUJQNA19q9QINiQd9PyC5sgY4hh0i+3OaFt5W +IT/etLFHk+x4L8sFHBR/d4DSDSW/IaOQPrhsHqU+CfqIWdVRjPmnqCiBU/G5IhW6 +9cB87JvXlhJrv5PoaWzKcgQiQuWcW/YEiqLa4WbaDTwolcC+G3Ku03opFj3GIBMt +2TJ68I9tnTTIaJ5GdxBE5RE5QSq1dFXYIuGW82y4tzKU+rKPZxWKsi4ISrM6ppFJ +dOShZ3Dwc/DDJJzvsgq6wVhDHjIAIfcpqbu+KmWcPlfsSG5UgRxhkIJkoAobQlwg +K20BIzOy4ozgVMGdXSuXVpKkJpTtV6wE70YgNii18dU+HoQskTBlsg5J0xsqzTd+ +BbBWvdiFSelKqTWlYmusWciOBlIEWAJd63NH5M81MF7Yx5T/kzwni+99FLIy8fnW +qxIn2+mSjnLNyNgxSYrqzDPLoqAY/1pck+yD5FVG+dk6Nk+u8meq39lP4pHSFHfQ +YFMRFMhovazlCuWgLih6TDmcA2ECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJYPXyLArNHiIk1B +VDkE5fnl6kztMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAOCf25Xfmw1EbYD2qZLkh5FN/EWl1uCHnwudJ+Ll37RBs +9A6coHZvo6oObdgoNmoYHIB01qjvF+ZejM9k30jX5SJ7AssdKycL4vgoZ0+Ogxxu +LC6eI4YrxHv2ldb9ugo4NMaJw62Ktp6x2ZhFUZ1K02iYFgmbjDpRwbYSl8do+fMY +BNHxFPLqRmBPrIzKVsjr9Q9I1U/2e3FK30aw7x6gm1imWcsmZd6qSARZst4XBNSd +0jYej9JmTkOQKmZVzXx+iciCi4Z1c4NacerLXdd9M/WXft+L74NGZruye+YFtmGt +cwBd/Ot0FLOqfuYqZb+tVK1koCnZX6XKFDmvQMxR/J4AVj7J23FDxcuJkK4vaeju +w6VFMa3Q0PWkTTDIMhJb7ow/WGN3qf44MNxqsmm6IIRBJcWxAnKRn52fSE5bP0dy +2FCuZ8ckc8tXUc8C5rbuKzylQK2ijBUDmOF7pGVga4LZwUTSTTQMgut5HGBSlmo+ +Vec8NS6HwYb87tIRZfAFZF4B2s3ahxr0PBBQ6va2BufUXOKwB6TsPzRo/6rozZR5 +Jf7eQpgpnpjGuWY+YAc2H97RXgKQsv9PXI703tjqtqJko60xPr3g9rzfBwbjXIpS +UKbbnYMKdGxp4gOqNVRK/czmIhatCDPd7G2hCFSD731RVvqCijrtK5Lebza2fQA= +-----END CERTIFICATE----- + + +EUS IFX KeyId 7568FF26F37D11268567B6864EC72A08C818891E +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAABRKf77/xwrt+wAAAAAAFDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDg1NVoXDTI5MTIxOTE4NDg1NVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC03NTY4RkYyNkYzN0QxMTI2ODU2N0I2ODY0RUM3MkEwOEM4MTg4 +OTFFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwYFutgck4T/xD8+l +V1jzyK8UQfSCI2BrCbY39BN0vMiTnwndEGcoBNPO9ZT2VRsFxFm219tiaj3mPkmm ++dm1UON7sjh4y60+mGbINdo2VUIyagazgWN39rdoiLoyswCe3f8VQckl9Q9ZEUSa +5SjGEOXWMSSRf0rlroLWT7VlAO4pWmAQW0sfgjmd+DtCJ6eAZg4vLeCCqukp06BY +PiaQ9d8vDDEzmPWXMPTyg6CNSG61GoQlvgL6to8lbUmoBhvllNZvHaQNcOVS8/45 +pPRFZQmipQbTBBS83Z/S3vx9WkYYe/82jgAzO9OK6b4gZUUdfRQACRBjgnvnkrg4 +d5ZCUQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUEYOgijF+x/HPHx0kBWWVxx5jQNIwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAV2ive +LX1TKD7R9Vp6wb3SghwfX3enaa+u7D3RdlCvH3Fr3yMXT2f6TVDGXgchZkoehcDO +TKCLiG81g48edYtey3G4ja/x4uiorXpllEt0xgGjMut4raix6UlbdYa7LWan3rNN +6NIht+AVyCnU1dueYZ4cfr6VQmAc4sbwgyYvRm+etsi4wdmpkhNRBfajYLZ0RnZM +IUHV5yxBlJUdWI3nXnkC3LofYFLSI7Mh/rBqg20B3Jm0WNYrzDeCLio/GbpkrO8N +IKYezc5njxr/w4ZgtkSUe62wdjuaWP+mm6OP5EGW/CXoFzFP1C7aZUwyUdSpn9dj +MavuYonWSNsGOGWxf66DBlJgoTRdM93mC8okdQAsdkVIckUsl1J/XabL//YfEBuK +Kj5hli+QQ5JUklWQl37x8J5R8htUpkLBDqqLiFft9AtlCdP6MppNsNU4vkmNDoTr +wJWA2S4VGjui8vDQKFG2Bd3/nRKpvBZsnZYygKzJiGvTjLaIEM/WfzL9bMBDyKNb +rSlaryyB6A4Y6jgJYmVAyP1M4CRzfw0/n/qwwcFn3zriN8TKr1havAXx4tubd4V3 +WkRAcbaoZ7mZRj7LH72h+3OOg6VZq2OlyCCKbAj++p9oGFm1thBjRqztQKaF3Uiv +3lZjPoO/cYLe9gWEQr1Jd6MQzdQWocuQqU5Otw== +-----END CERTIFICATE----- + + +EUS IFX KeyId 76FA7DF0C07733DC8CE24E8EFF196D27788668DA +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAVGTdpP0T5xpugAAAAABUTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDcyNTIwNDU1NFoXDTI5MTIzMTIwNDU1NFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC03NkZBN0RGMEMwNzczM0RDOENFMjRFOEVGRjE5NkQyNzc4ODY2 +OERBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm3I/JYk90zn9XdtY +kTp9Cftggw7zgz5t6tDw3W42CylkealKYUkFfE7bfWK/pya+YM3c0i+tx2OHxfNB +wtaJuPwHoGRBc0ADsCizYn6ce0yKxBt0rSwwJnv6jiGwcuvYFxfMY1igXqoOL5Jv +JKQU4redNaKDyQ2SOF1PdxdeHtKkhhFk31BdB0SE1Roei0S1BJFqvRa/3MXK8Eq+ +vX07yNyp45o60xMEpSFBysaiMZDfnmbTeu/EoqBE7npRTHqX8jZJCOUBWNwyAj8C +jLBpEN2Ur2O8zKVcJ5e26noVgWjSNF33G1nWW+S3UymzFOKc5R/MffQJ8U7R6FQ3 +oht39wIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUqOdpZLXNttbIODWhcjYHccNqG3MwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBk+Ubb +GK9WHEUnV3iNr7KwgLP2aktlabYUBNFF/Zms0sMgBiImWh07jal7b5Seh2jka27H +BKcTZTmytUvu0kuZ8zap8ITYyrpgbLq0QxGhFDgzw78XsKBD+EqLczVCIZ1oMETF +VTK8V4evWNNW94FdzkjQVeNl4KqZsrgcMadpNZYQKpaAWAJHJbFazAulXEH9yFJU +9IPUTUbGdWnOdUbs4zVcXO6rWO7lPhw7kIb8YD0iO/bB7N9xhW8bgyRAXh3bJRte +l+g+MChitbe+RuxFW49rheN1XxSHhGqFiSJdXqDpofSIvskB/S/byAbX4KWsZByk +4RzsKBfm3MhfLkbEmm/u9MPjGjc9ouSpYrMXknBjFOmOnBner33WmdtCNn9fOFqm +2yQwI1go14cir25yZDoVJnnn1lgPQ735toBgqVEb+ZWH8B4Gal6kzJQHDSdHodUf +uk2vRgKyglVgDfYGZSyabYsNoLFpikt3VKkP6jAMcGZAPmFjZ8ozqzvZUAmJ0wxx +zu4O3CZroF8m52adxF3ICOwbN6ldGwF+kuYLDLwbx5wpDf+tNBB6eKZIrB0djlP8 +mVC0esd0/jfeahJCG0EXk0BI7MLV/XUi94bZEzNH4edHOMm1cJBZgmnDGBZ8JQV0 ++MUgS6o45OOkZ5a7uFnCRYPod/5PAe+kUYDRxA== +-----END CERTIFICATE----- + + +EUS IFX KeyId 76FA7DF0C07733DC8CE24E8EFF196D27788668DA 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAbQJxYLTELC3mQAAAAABtDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkwMVoXDTI1MDEzMDE5MDkwMVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC03NkZBN0RGMEMwNzczM0RDOENFMjRFOEVGRjE5NkQyNzc4ODY2 +OERBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArMo+Pe293PZSBty9 +3L34M2WnEhKzZVm9V1ZINZQqfLxpke/tyyW2tN7QOFd7/Hl/l16VfWVLZQ5rMbuU +Q8//10PvtcZt4JS2sFAeRk6hzEyHyuFZ4c/OZbVBkjb/WR2BW5+tuDCkBtStbfrv +V+Dtu0jU9EchcrwQrQnfOAvXBfPtkEAq28cqNBuJcZqZUskUjeugEK8hHCJKh6dF +N7jCJJuasMwnwpQU2XRDDWdTYQtnfhHCCuTH9zay1g4Wgv0VQnEE1bQvAa+ru7S+ +vFFSM9LSvpYJ9sGCyUCHM+iJnn6DGdXzXtIh7W4Cn5Bjwnzk/5fScyCfWhYPkP0X +6Y2AHSvdqqcYuKIbeO/5mtLDmcjDnK40sdFF03u7W7gPIJ7Msu82SGSw5nOa+lS3 +fPSbtLVEI8TqagDKzSaE1J1ldG41KAaUtIwr1QtsDgisuhwxUh8Fr6QEDtZ3dDAq +6Sk+Ea+BPqE+Qsu9BRd+y/uDjZO8qAEhGC0jluGSfruOKW0JYHvci5AswkrXfGL2 +sOyDdeDDzNC0rjSfhwlB6Tn6avwkp+/EV9Cv7GSVrsErkop47/z8cP272DK/5+aT +u8mjzNxebCYdn6GDvKUGDLmwWA1m2OALuH2CDg1kGASqTy4FtR7EQB4EQTlAA0fM +QGG1J4D+SrZzG7dJu1S9jQwM5MsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCs502EEmHFNPr0x +GYBZS+bP+FiXMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAj3UYpNKR827/hkfnZsIIn15gqc1bYinT1swGy40bERL8 +1W4Yxh4KufBkYr/ZbdcQiHacK55NK7K5iPORlk3epfVw1MFv6VfiHfthtag17HKn +AoztG6m6f8crmkXhtpsRq8pddFWtclsP73YmGcWc+cAVFLXif+hSZqphsGnIZq2R +Zv1e652vNtpsmTPAGAP4EjBlPem9A87zQGQ3gGgjZd6QpMNn9RPS1ExSVpEOjGt5 +H5IqI5Nr6eieQTsC7ovTPJb54SkhDqL/tPGJROcHmSzKoJr3iAX0HpWmf3O8ElDc +2w8EVshjjZd7xJKp22zU5GB0RnE9mnPtZN5OtpJYJDGuIP2Lb1i14SrblvWUWDLM +jy57LjwvSlhZXKfdNtVUL7/ZyqE0apm1lwB1vgLUiBtY/Qb9YqopIlcj3IaKEnny +UIXxvSVOeKmneBbiClZpjG1PIP2kgr1DNpoFAXWqXethTAay9F8Wggnv0W7zT5Lc +9fRXoW5k/lL/ebQqdr3RFkx87d5l/p21IMyn6Xe68AnL09ofpgEepds/fc0/2zGv +Ropf3PxfUTTM1VfTEI2As7gm3gVwy0nBUpFQrf5RK7aIiV7ti8+bYy8YutA27nDT +DxmouB72jtRx8KT3+skvAG3qYAtXL5LDElqtWo5U3tD6ycYjRMmsuF5w48MyL5U= +-----END CERTIFICATE----- + + +EUS IFX KeyId 78A409C457DE6926F6DF42C6114EB7E56A9B56E7 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAAg3etGcgjZYJwAAAAAACDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDc0NloXDTI5MTIxOTE4NDc0NlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC03OEE0MDlDNDU3REU2OTI2RjZERjQyQzYxMTRFQjdFNTZBOUI1 +NkU3MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApC8bT99CvAKli6p8 +6BqwCIQfUR9GBUf+2X2QNsrSHwNaAHKiAsc8YeqnOsvDcMdR1fTLxpYsctkKNBkT +MjWN0oVOS41U/Bx8FRSe+Bo1zztWufrIWKqcFPselzseLUpoDOPSig1pxoyLupU/ +uxmVbiFeSq50UT9gzZeYiYOqnVAzHWm/ULvagYNS7tXEpaU0C02m7PEqkEtdNRpL +n5bjHP+ZXZd08IoqfGTqcHuohsliZwMh4C5U4JlaHfev7vNgO/5IFV8ZQ1zBfS1V +jBMkeYyAWdruPzxCr3/DJ8aTGOFzguZiDGlDFgLvBAB8kycTBvsv0FVqM+MJKoxQ +LuyscwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUQhI8YNfKS6s6YLEXGvBled0FRiIwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAeXH2m +1ZYuBV11imrPYY9401qEQH4bK1ksl8zGpkPnwZlPikeCW3nJaV1mydzy51ZAxVhF +OZ9BgbjPKovf4mM2nX1HrczvCS27z6piC/5PGLjlR0BPmNK97nQHUrIh38HIugbD +VOxcClorwcEdpIOdfdChGICAPg81X0SzmCj+WJ2rdGhZrUykpaQwwo/GH5RsLsk5 +6fkOh+NDMpXiwjhcUJPDnILSSSd2yl+xm2KjSKc+bRS5nxRGmqN5Lr5rVRU5ogYx +iub1qWBDVBXSsZVYxPtLVKRHLAjbutg/cxIhQ/yzciRxHHmjZ/uHZjQlZ4G8UODx +5VwvIJrt6dVy7DZf5GseV/vhvZe/kba8CroGxFje1KmbjReOyaNJ8rKB4mPqXY3q +EwZZF/hF+h8SXRjz/FpjYhnMYiTZa40OaEX6i1jE/Vs5hYxAk5LQpWBECLOw14Nr +XDbz/oqGQndu2MSYLUKEENJl0CXRCIH8g2NLvzJ7Ad9DCPhHr+ra1njuCOm0SM9v +QuGRBrb3Ju3rdQqjtCooYgc4QPqLZlxyFqxE6XSht9fcfKVvAfsp05k2LhpOqmHV +zyZR61eednlW2rG8aPzuLyhYoC0fLmazVMkxx5L0SGM7xpzpy0k9G0NCzOWgXOuy +SvXEtGADUBbutaftaSuwQ5JDHBAuCC//yqwRJw== +-----END CERTIFICATE----- + + +EUS IFX KeyId 78A409C457DE6926F6DF42C6114EB7E56A9B56E7 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAhcacaNiWEfa/gAAAAACFzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMxNloXDTI1MDIxNDIxNDMxNlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC03OEE0MDlDNDU3REU2OTI2RjZERjQyQzYxMTRFQjdFNTZBOUI1 +NkU3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArIaw6F01+0J2PXwD +Hms26sTh2X2QHlb2oVsZIiS7s7BZM6+eCOuGy8rPryUwC5P3TkADtzJs7/9jrzqw +t+dJPQ8dGHQK3mp+cLb3xf4WDupVnYOTcLmDD9ypg1Kldc084xQB04yf/FVHKPWk +qdpNM7rMTBZeqikzOdxpH3KEDqnbskdT4jdfKQFlX4IymkuNX823XkJHZfxtPOV0 +WstFkTJjyZFn+RKnRMBYMnjwzGDQ+cMCWsxeEAFcFzmCRUC22VBQdh7eJrxMHSX9 +OTEJjqQ1x7BOOZk8unimoGGCI2D56GSF7YvqAFXnf11TF38uiIyQkbjNipHszlfG +pdq1F2ut9KtcmYM+Cy15R9X31PBHoKjgPw3Q7gJjVW/4JUNC6e+45AH721bNZ4yv +YrTW+V6Eeo5pvJDIElp1Rw+u47xGsFhgdCYdIAjryQgWW+xOIlHmuek7xxVbkAoM +swlnKNHV/eOYYolCnGvHJmxnl5r6Obc2qrVPi5EWJzxjeTQe/CI/5x63bpHkoDDP +hEwpGo7XT5WgJLpapt9skGZFvm/KL7PLiIOvJNIO5yUzCgSuIm34+FgwvHk7wh3x +3PGdD/ekwDepk9NyYBMAimBpFraC+Z4q9aAHcoV8B7JKzsfAUpkCFZgfYF4IsfOk +wHYoAvSiBEsdYZoNL/z8OSPhowECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAe2wq6bxr2Iu8ea +v5abU3tXSutqMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAE8qwd1UAdcMFAvOdgpf9JnRNQs+ZkVfmgCdoGiUirCdQ +l4ZOyiO0wmvgCN5EXYhvqI0kFhJbK9N3B+YwL3n9CZ4MIGaua6If+3lONyibg3wM +Pu0pODCW2Mc/2n2jvYpX/eqC1/wkF91rIsnhyJhb2s5jomzBBKRAqHJgXwLO2/Y3 +rE5lQLzoAAzmgJfnC84LzpJL2ngnV2emTcZbNOTf4VNsK9bNUUG0V9IrLLArMOm+ +YoiCK5nj6359oqi0alnxMzpf0qc3sSKISvP7xr2h8u8tOmkmZH3ZyTzlFvR8nPBD +aF3AcKn1EdnKPF2lgrn0Spkr9F0Jv1SKMwoO9XVRg0I+NPqhKfrftgiO9J4+Jc6n +jscLeC48vs79aQ4iGCDJtM12Vf9aYcATg7tB0Z7VyvGJimEbEZLNIi0xa533ra/4 +ivR/k5q8lso3DLRULEGHG47L8yya/kxiwd/WQaR5fnSl/S3loIjS8iCai5KNwrh3 +My6nGQ5j1IM1QXbCiljKN+5zP93PsziHy2HaWSOdT1mEJ5o0HISWoMNStVAOYdc5 +NvvpYG6K8OXeyaPvT5ED7Ia9OKIFDT0k/DkwolSeqt512JPiDUIEfLS+tB099Zqf +7uCklOgR7Df/SnMnEzhv7r7ymTm7DXOGZFpLOzhDtu10zfAJNaycgmaLRk83/XM= +-----END CERTIFICATE----- + + +EUS IFX KeyId 88b3c13f6105d104229f5ac0eb499564acd473bd +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAAswdhspDj1wpgAAAAAACzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDgwM1oXDTI5MTIxOTE4NDgwM1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC04OGIzYzEzZjYxMDVkMTA0MjI5ZjVhYzBlYjQ5OTU2NGFjZDQ3 +M2JkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmyw30YmumKxVt9a7 +u6jp0MPM6gqzF9O+Lxn4X75+2m1TR4aJimBFn1VqX4h3v8fX94gp8c19lUF95Nje +5WKc8FB+EhjZrCgvBSpzXf9BBetJjaxTqyrZbd0enlWFSlrVb045fSn/p8JgXTt0 +gQJoEkCaAx/bLICPw0Z7PWIxrS6+KmPAURUljXvspFO7K1iacLArlRD1ZS4AbPDH +3xQ7Q+KtdGVlnceZVNNmdQ1UQWSnv73Esij4b02dQ4NrQtqKQ+44q6SUu/v08QFA +YP1UGzFkmnSIl295bS0jm1cMAe5v7PQt2Ik+FC69FhQ0TBTF0ILMZHYOQoASma6/ +BuEYswIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUIZUetMmqcacuIrG6lS89UVENMIowHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBy2vwp +nQOIpDE8sIUWL44STZL9BasPWONSUzS4/VFCHeIJ1KlzroXe+kQLn9bO9rIfeENa +SyTfvDwBHa+VKBprGZ8LsahtXZ+lLgCBUEjJi3DsVp5HtHUSog7/BL5LjtBMoeHW +LNtSHskFqa0hl3Pnw5S9Z7a33q9stjVVxCuYn1/vG2Id0Se7zN5/yN3A/JepONgY +5kCYxkuiXZDYrp3kNPZ9LoHhceT3BALziInA4XrD/CkZ71nVPTfWvCBb9KwBWwRo +7Jb2/pOBuHyLmDHqAVI/sPBA7AXG7duKm6/1lBiSEfKWtf4at1Yvw4BROqL6XHHf +V+S1fIMbkVIEnrVMYSwPEFGTjpTVQIt5NwRY11IybPGOqaUCUNRp6D+65NuKgcTd +lnT/lZo7aAYLy+40Yv0jM3eN8ZYwmIq6IkBqQbEoJilsberfDkVD66oT6s+vclVK +lD15EX/qz35gY/qjgjlsxZsGkM5jGPjrksBtyC0s9DiPFrMO98V9fpZxvYiRKhwZ +KbYbeYCpUvx3jgH/LvxmOGD2TXyBXduassZjCbtmVubXoN50JYPQ6B87G3WSiE9T +auUFP2FHRJYsBpYiu0Gc7Y6M12svLMzTrODNjsnZh+aCqNBFPNocNCl+2iF767Yz +mIvKH5XkqvcZJrBD+vrkNlcNO2GSBjprEZ6eBA== +-----END CERTIFICATE----- + + +EUS IFX KeyId 8FFD47880E239A3A3A20DE13EDF101E882A9D21D +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAASdSINaB9kmSQAAAAAABDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDcyM1oXDTI5MTIxOTE4NDcyM1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC04RkZENDc4ODBFMjM5QTNBM0EyMERFMTNFREYxMDFFODgyQTlE +MjFEMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqUT8B8DZdwt4wXOZ +BUc3PNCrfuIsyEntSx/C1wk6m7dbYXiWXZVgfHssCjVcjhMZe4ou0P0PK8gr3FMh +0eW4pCgdGjailV15lrwdmX5Cshrda1vXaEwjRzhsNkn94uZW1g3ycgGj7pzmWhYn +yJDCfHK2a+9EAIpIln9bfglSNPCpBnIhga6KGxn6RSOIi42KYxLaPiApG4kjCNEz +EmxlO0/7Xos6NbqrzhYcqq4D9gsSyG6c9xf+73HSdbsKhURVhpZIYJfozBKmaqCF +XsIOpDIWvf62I+yp5v4BlSXx13mgCEmJPJ76JO0UX+orla1UPL7S1bYbA38JUNN6 +pmuWBQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUPuphYa6suRIZ529x3WdTqs68BqEwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBVtiIA +nAl+VolZyFOQVRoYnqW1yerM9IGbBx35vafmLYErHizK9oct5uZNvj4eIG+q269y +gIp78s0feu/MmwhyeXP/JVzGRsqVaxyPL/K6mXpJ8H2EoBUYXX8udqIgOKU3vSqA +E9PUskBJYUoLSFaLov8Do+gSa9ljyE4yMyIvP8730Nx1HChgoColHtbXdIS6CvdI +UF6piLK1TIDNmeqmXfaL93rFizvIC3pFvW+kLdDGSpD1fnSKAwOPqxasvbo1LcgP +1SGcr9qz1ud8KBp/9wx06PdMMw/sgpOVHlHyIIPTpZibnda0vvtYIeXNG47BaKaJ +vbli8JSUJ55HubYjH7AxyQyungVN1zutAulo7ldzusXY42pxoGYRxtz+E5jJ2pnk +ub3/WHZc9fF0jQvlxfZlOYLiczQKwSG63EHQIRh48gwymC/2066eXpygfCoYaGJo +0t6tk0JbEy4KZFK+fgP45I5RCwsCncHk338+NBFjHiX7SrLB/HaW/GWOId61NEBF +1H1Ybefs3j0kUqFWGKlXx2SZHTmiC1gLQ56f/tgKxCf5TQV350maYyfG49DUDzE3 +UftraqhCcUJWdP3cpWdy2hCMO0q5eTNep/e2HI0O8n1ICUgyHO9uPoU7+hiO2j24 +C0tMR2rD8pVYE8s5/LCzTj9TlhiMpNkI9Hytlw== +-----END CERTIFICATE----- + + +EUS IFX KeyId 8FFD47880E239A3A3A20DE13EDF101E882A9D21D 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAhSYz5UxlWraggAAAAACFDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMxNFoXDTI1MDIxNDIxNDMxNFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC04RkZENDc4ODBFMjM5QTNBM0EyMERFMTNFREYxMDFFODgyQTlE +MjFEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1fVZSH3oK0tDYRon +4DdL4x2dMKsUeM/SDe2sMUVE9wXRUYn3aB+Wm/Prs+aepxezAV2w7bf9tJNR8ICC +ahwCUhmHJ8/jc2maNdXT8y237M+j3XYeDUwKJLwWuNkqHXujOJmBR5rl0yre7o9s +3ongKGW2giamOrumelWN9nUxRZ0us+3woZuHlHR22nExekRrcCHdiDaYIc6c7nNl +122kHmwjOEkKXz7Lu39GJfNTfprI/c31AS5sjBd6qRnNlZOPANpO5hA0srdnM044 +J3ajiW1pHdxxwXlZ45HI+xT5Ka85LLjNzr4KUX58TOlIzkxgp3aqrwmOLBw1h/DJ +dDAEDdMC23mGdLaFFeljXwkwGvp6uqNitnjnpK7hgpNuISut2bOuvwSu0fBToY+J +B1ApgGvIGKCG/MsRzyFoOJq479Sn4VHe7vvk0JFrWoE1GJGEeQMFZ0gAJGJRIEKw +Bic919/wLgKUsmUAh4xMMa7gs7sQYEtlxVM6gM5greWPbC4mTmdn6hNQEA+AZPUb +FeiKfflofnVy3SQ8BR2yhdkGLSkTCIaSUYzaR2qVt0Eo1aU/1MvFLQEZgBn+Jmso +XNcCkDQTXYFy9PMREGyAX5MA6uazRhguIqFTzZwkJ6RMg7v8iHs5xTpVObcmvbX9 +8QYUls/G5viWqMvCc1VqQKj/VhUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFP9FxCQNiJsJHj8Y +eI3tPJd12bFbMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAE9ondZOTI57eYARh+sxH3AR8kmpU6d6BEROI9zdY7611 +TB2KBtGkJZTBxTdgGbZaLULIHa9/d3UlWdebW9xXi4VpeYVIelpGGluLvZssXfAy +oBvhoYl19fb1t9lqvof2ElUsHqMkMrvfI1C1lV3NIHq9lrstx2RSsKX+MNADGCUp +SQTvbW3caO+v5n6fheMq4v9ax/H2NzYa+B3JkM5DWIsrdGXhH6nvDQP6f6oXzNSD +8jA5cQMVwUkTi1RCBbrTLeF0bG5lhdEVQ5iIk5ogY4g5smUQ1JkUM/Ao0C70wXvf +Fmzo9GpgsBISnXUYQaLnj2X5zF3mwt2lCqIAWUO24EaD/qyVg9xaQ0yG0XPRxVUW +/GxitfqhXVLbJ+tSEz/YOf1hrnATWhBr8djfQ3g5PAV93WzhgDHpOutSiSezInnB +cNLLO36mqoLqrHWD3r8cbiSCrLvagEuU0thOEvBMdiMzBtxBvf9logirVnxSXFhW +Gmj5GllQV1iJC8g5gxLP2MZtW9Drw/limWv8t2iaM+ycSRHmWxgFKyLrc4ixvm2m +Ii2idlSGW/kBPUs75dEXWc8eHbcb8TRLpkKJRuWtX22YzUp9+Nn1C1IfFQczDNAx +6URFtej5KXHaL8jkCSTrFWDkcTnks60NVimb+Doc1rTp89o3sEo8mjc1F0xFHGI= +-----END CERTIFICATE----- + + +EUS IFX KeyId A0C9DEC08FD39A8B59C46BCBE87FD9948C55F970 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAABodkYGmth8dtgAAAAAAGjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDkzMFoXDTI5MTIxOTE4NDkzMFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC1BMEM5REVDMDhGRDM5QThCNTlDNDZCQ0JFODdGRDk5NDhDNTVG +OTcwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2TMd26m9d9f9GwrB +5gU7JxQPq1PGqL1ZcGfew41AyscsT4fWGCqPfrwGC6YlkXWR+PNox0h2lXktRvGW +bxhJw0xRS2c3z/9CNfWEux+exkkowH8lt+84zRwKKoSnYihXgFhJrJycmcyvByz/ +qnsUKts5c3/PNKwStUsfCYB5ozAI7cdPQm4vK4IUD8Th1HplIC2svQslgLt8Kl76 +W1sY1uklg2Be/jpNhZg9ayMSvlvm1F+0ZFzLizCMn3RUU/qaA4GNnRfcC3yjCmic +cDcBDd92yAUIHnAsspVliphyXmkhSp5zU9jDYKmjbq1L9CyL6emyIc4Pr0m5jl9Q +DurRKwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUL3SiVXr3GkhTI5chLyncNYbBx4kwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCVr0l9 +wRrUjOBNvKqXXl9cRyku3L7fUMbvnbUuIxj8aTm1v4gLhr0V3P6gA2iuuX1RydnZ +uRSS3011YoUeNO7k+rqeRamphXg87X+B5OsbT0FK/um9/aCldXlE4zjHW6WmHSNC +594VatM104MKyEMPRRfpL2+bCg3ahD0XxtNNuq4OzphtiCUS3NZ7HyP0DGPeMVOE +9166m2c7lbIgWSCXptwlS4lcc7oYciKTTlGe+Jh8gSPHsugdHJIe2jN59Yfu2aED +24OQGe7bo4klUzfHQKRPgIXKDNSw6A3lr+3o7Q+zUnU61ok3E5DwkHX+YiByMkB9 +9YIqTzN2YJ9y4z8i6uZcZL3UCZp/ykCjB9kQXdqhAvgnMVIOKfdRxvRPOxURnrfE +fSbdTxqhL5k1nBuwcUh95sW+scYUmsmWTxWCIN92drGRFz/KU+u/txosApOm8Ngm +OwW19mP8bIA8BH34Wub5wrExujjXsVFdpkZnRnPAOhhnAvK6WZrvqbL4zhIvHG8F +CFlqW3+ixDr6g4BnKHTRwmaNv6y76hFBJKdJgQAe7RD8BwSVgPNmr1OZi9Qhsui+ +Cg4S6m9uTTrSqhZb1/BigOkqGdgCz86AgfXc7GmC+50qfLo5Gz03JyvYSgMdSklN +S69fko0b9R8Php8jWIyeUtPfrqWJnBBn9sJXeQ== +-----END CERTIFICATE----- + + +EUS IFX KeyId CA6970458673493A8AE1994EF1E29238F27F4518 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAClyORA+QqiYiAAAAAAAKTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTA1NloXDTI5MTIxOTE4NTA1NlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC1DQTY5NzA0NTg2NzM0OTNBOEFFMTk5NEVGMUUyOTIzOEYyN0Y0 +NTE4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo8TbiRVYoe5KWb0s +1QSsgo47IZtBKmLSubYX7SMY7KhdIyRTE8SwKkp7z3lmF/CWUXB10gih6cxnFw7K +NPNdo/dNLcnCobLtqfffJTo+auFnzU20hk/0zfJHFlom75wVqnEAlS2hDMlwYEq7 +jxhJ+4Sq2HD4OINS8K32k9z3uoJtCkfy1dMJpRJgG3ZK5CWTqKgcOF+jB259i4Nq +Kv0mj5KRCHt1bmPGXS2LIfRb1xLIiS4LpYtTadCYFeyFAMZUJGRbQjAVUhLqPnNV +lK//7SxF51gBYHZ1c7sOlKyRm3qqvL7nqJP3zKQz6aJ9+Yu30QWXFbRnhwnOH6zE +l7mgTQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUJLwHsvTLE2a9oGkGq7zxnczlJqkwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQATMdfA +QuauXelo6dxPCDdabtf1EUD47hjEpxfkrKQncxpwHgUD7m7YFLqxN5ddXwVHm05n +wKpAlhlmkk+ZRGxIPAysLyTDfIpzNlHMZYaJTe+JDSGR2uRFsBlQ4yf75S3eR81k +0XGwokLiqPWAe2OVNr7sxYoIWJLuVFwVf/RPeFcB44B3jWjX3JnXUG3Fex2sulq7 +rlCXNzwRwrpU+A2ASMlfnz+2T/YIWfxcUxxjR5l8Q+7/Yf9pHewO2j9zDoDniH5e +KCAoIvpGu5c9OcncTIy1b4446ycGCG6YLia/lZIVQ7dk6KCTzmC/Rliu5mkQjIqq +VUBPrUths9k2qx+uaXXPue+C5HQHrLyjqRbEf3XYYrImfUCfX1gKZzmTEngg8NrL +WJ+deECg/6FjxYS2hFVZfdu04sXKkuoH997nZ/CDXplh9v9ERiCG6P20V+SgL/3p +K+9mgGqa0e0vLF7f1Eb9uPJ1O8Rn9LUaz1GP7lIMzQZ9XwOKHJa96+3avPXqvlG1 +X/wRoFHhSMqFtQTiTLRSTFR8FMCsT5mPBKcVvuT+hFTCGW3uZGkAOM8KiaPsTKqE +JWTa1bMZhINzaKBUIs7Kg8CENzuz0rVJL+Np0qz+eeajirRS6Kx6JNZHECTh16ux +B+njmy7+2Ck1ot62M7NCe71vWADE8BYmXNvuHA== +-----END CERTIFICATE----- + + +EUS IFX KeyId EC3F8D4CC12ABE88A019064E8A62B7018FA2E359 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAC/B/SbTNs7xoAAAAAAALzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTEzMFoXDTI5MTIxOTE4NTEzMFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC1FQzNGOEQ0Q0MxMkFCRTg4QTAxOTA2NEU4QTYyQjcwMThGQTJF +MzU5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAocch2Ww7ks51HUOq +xehio/ftHLKQQTxQjSQCb4WNwLPWMMtIY5vRTGGKK4FwyI1N1nIvYcbNIayQzN4r +UlDdGH+vQ0MJHj589StrYdU9C/hkqozuWsWtZ3NV1M/POzoq1n5xA14kxoWJZ4k2 +fadFASEy+139LMS/qGyHp60KPU2fd+NA6wVxAAYagvQd5XBcTAVa7CpjVuYw3PDW +p1pyx5VCRwrTfwX+6qCv5e4LCR0tnl9vNkdTo07xPHVlhj85X9c/tgEOhRnQQI+J +r1vEv/pOPwRl1w/QlBhlrKoHueSKsTHLdd2SxhBVwspCGbrr+HsYr/Gvk7xPatTc +bWlMMQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU+uz8QMtH8DtEAakyGOo/EELm+2EwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBWp4bq +HLMF27b/b9LfzDXPikAWNlSGocDH1VN54dYAe8du56OFOvXRbd4EbyOaB2YALy1y +3KKRhXmqGBOKL+k/kwT/Je50ivJUaflld8p2CBzwC2b7j1JyEoqr4UKrDwO4Nolv +90eIbpzqyt/x0Ran15o9wP9Qxyawokl+wrOt3EnA0u8k9WMDMDMC97Eg5pZ6BdV7 +5WU/bqUAGIynphtdZtYSQY3SIGCUuI7I+7GthJaatiLiqWv1+pV9tvDawf3xPr9Q +XiEUJwXlN3v6JAm8S5+wxFAww3hqIqRo0dGAwV8IuFVju3pVwY14kSSYNn+gg3FF +N+vtedZfHlu2WXny+ZhjyTpslahQpvb0eFDhdEwRlnAyu/8jbJ5GCaqCgYs2aZ3p +9mN2SfbV7uol62452f6+Rb9m/TzyV6K49FD3P6k6uSHMSZQOmZTMGVle37LBZU1X +qLUm0JLkauY86OnAbxXRnzaXBorkzWfSHL3R2jB7reH3YKpQQ0UvkXUVhlvcakfY +HvIbdVN/SFkCoohBZTjUx6Po0kwR0bd8MGExwulsSTk1oZERQXo/jr1bURVFd36R +qw+CxlbzZvsXXn63R8MR3F1bqI7YaapoIiYU6AMu9RER36lMc2NF7d3h+oRwVKvH +H7jMZexBdVVTFab5SDmBXh7sk9gW0IuQFnqxyQ== +-----END CERTIFICATE----- + + +EUS IFX KeyId a75598b8026fa544affcbc4b9106c12f96d3f0b8 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAB0I7G5UzdkyOQAAAAAAHTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDk0N1oXDTI5MTIxOTE4NDk0N1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC1hNzU1OThiODAyNmZhNTQ0YWZmY2JjNGI5MTA2YzEyZjk2ZDNm +MGI4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwV1GHsVAbIL6Ep3r +kCTA+TdlfFC6jndhDf6J3/nBOqz0/G60phkdbFmC9gQw+EkR0OjsyZ6JWB4c2dug +SAeB61LXeJsIYZllKGUGPhscv4bKcBxP/EBLL6LoadOBi1sF8OjQr4egyd2WQdRc +AqJqF62q5o4UPzODsoftiAsCPoBL8BDPkan/tI90ScQXJjXXHBbQ8lxUPlHx+3Ty +FlOcVcPtn//ZULNh1zPc3Q7yQoKLVvKhMgkGZcQnvaKSi4QMA6S54WqCdpp/EesN +QloMRguzxSVnW2EJx/Th/cxN8DA/PRWDU1N1Kk/+ZNxLZa5CxdpjE+UnX1xv0YtI +eYyNPQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUMeSSVkjTNcqhUEUNIaHaJ+zSBU4wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQArAdiJ +gSlfJrkfhbrezXks/gcvKa5zjhwmDwE42Gv6VAq8OqbBUQIVr6ufpSvMFmwzQzS3 +QtGFTNgXlrpl1JEkGX62a7qZMjGyRQsOD/ehk4sEln2O9nNaEeEsJr3/s9sWzKS7 +eoFSXaas4G/g5elai7yFbj5sC4BnCZ3XzDpJXlXYHn9GCtNnIq2TgqDElhdh8DRD +R+UrjcPY1W1Psexv6HYzLcIJnDjkSRYKReS92eXE6nFtRZScW4h6nRPBh126M5s/ +r4ftUD+MfP5efC5U8cnX5ZOyaM1Xpmdg7dVcPWn8ooepwYWDGOteFjNTTD2XWPbA +II73E8QyrozinuFciR7SQe+O0a77WTUfCyBBg2QCsMNSrFZA4X9su5eMeGzh0YiU +ZUxY2oZTzpy3Ys2paRiuXYpItusvZlnrHkX4M2/QvfbTiDU8YpvgZ3qIZieCTVt5 +vl3tRmffD+o5xGbXybIASNCWa6PJQOW/vzJVl1uX+PljbL0jKeyJutKxW2aqXSEc +L5Oqa6Jv6KpDli1fjeGZHEsmXCCTcXcCjuspHLFZa2QN4/HONQZFr6IOKnopCtzz +ozsRrJ7uRdj/8IgGlgIOllb6hT38cdqM0FjyrZOoQ2drNXOpdHXy0xNzhqQ1a9Ij +JywXTOSldn/YwMQCAgLuHfhAucM5veoMgzXiyw== +-----END CERTIFICATE----- + + +EUS IFX KeyId bbcf7cc184213166dab5be53a87014ddd348d8cc +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAACDIUbHcZtCC3AAAAAAAIDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTAwNFoXDTI5MTIxOTE4NTAwNFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC1iYmNmN2NjMTg0MjEzMTY2ZGFiNWJlNTNhODcwMTRkZGQzNDhk +OGNjMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsCuSNfloE3CQKykL +a4x4nHVXISra4cS5eYJ+I7uFfAOU2TZXviwfFEb9ZxXcluAdFk8UVI7SgcyZhKoH +3WKqqLO9rN6JQ47e7wrvurOVa+YRV0aHpOMCXmkTq6zRQiuJuT9pVEhQ0vyjMtqa +XyvHFTXkIylHyeJtADGpxuAwyAl4vQGPx3O408f2DvOua4BDlbazGMz92DDt+Bxk +nifKiW6NVOUgzQEt0ygOGEwGClpiIPlv934G+/k8Xt0z29pa7dFUUGNjfCp0DZCV +SO+BVUEBUIu39qBfFAL2BJshw0ERaX7QZTNm4zKGEOLFGqyqsrUnm5E3dK91jY6m +pHYy+wIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQULKThEoZu9nZDkjX0G0BVH+h6sHAwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBl5cGh +vDXr3U2fVfNjklgqrn9O7/cFRIgf0mx4tJBWfR1sqXngIOXPP9tSoUtl8AE6JghI +PcIpwP+5KIdg5ca6TOmOL28qh4kaye39lL18V7aLIdid13kwLmvyv8K6GmV/dbJL +hLMDtrZTlgNh9saKUinbssSFcwiBSWISQG+4M1NBbzOg0+1YCYQ15E+ApRk436Y0 +TUBX5MtUXP5NdlYKIDJi+lQNzCnQ85cx/Rh7cDr0hTp7Kd0R23FLGn8ca2KAIEzO +1Q/TGFj88Wdo2MweWtgK7LDUq753SN3H/WzPQSKKg0tK2+nNnsIYgzqr5EN9cUWG +qiv995ViA8WY00+R097jxoK2Bb3DIRyFUNRH7v/9Y28EIw8+EkC1dd1VfZLknSFk +1i0Lk1RL6z2eaRw1ktUOVAqIwkRpCfo/xotTXIEg/SAsFN+0WwKQ+7Bc0qXipt0U +j2U6eJpVDRtCB0YHSJcejB88lnEVQRAybF4VLluHdB0ri8Zh/HrgJl20QAZ4nzG1 +7PLHaaXqDSawErMVPammCzFvpr81OiwIqYfEAsaryC/n704xH+z7+jOCPpS36DuM +OUVd6LCfPiez7VAW/HLm3s1Itt1M1saOEI+Kdh/6S4wTgu/jOez/vVyKLiEZgUmo +VWwJ+m+Hxi2Egk2+FkGJstvayYltZAZXu0+Csg== +-----END CERTIFICATE----- + + +EUS IFX KeyId c6cb2a4db7294be911724f5041310b4c42f89bb2 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAACZkpQ87aBlKPwAAAAAAJjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTAzOVoXDTI5MTIxOTE4NTAzOVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC1jNmNiMmE0ZGI3Mjk0YmU5MTE3MjRmNTA0MTMxMGI0YzQyZjg5 +YmIyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsjZ3yEU5SCsYRWtD +wDw1RX0lzckp/k7RNIbXmKo4TAdtsbgHKIt3s0Y2HVtyRcXP6NsIy+P4h0oah39B +X5qFXFZOyBIb966VlQDmKjIckqh7tavc8Duh4Y+dysIqkXIqIb0vwQHqkMe0qKCy +XaYvw/TCiZq/jfbnu34mB8XHDSPJTfWHFOAm0VqDj1ZIE0uH0ESA5zJil2AvZs0d +SMCeHgbck/OkwiDZoVK63AmKUnvjnTlHoazUn6k2s2yE3Xn5HD6vIHAs3H75dC/Y +rkYYaCbvJXyJdFeZjkqajhXd+TniVY/YwFhRBbp6zZRi1FjQEoNB3H+bs79LFs5f +K1krPwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUpA/aEZT5TYXMRYqdGmLfgv7L34cwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAyU/9f +w/xlImm6Vi6HURiBvjhlJECoSS1hsbkWJU2CCuvFyWNEQwS6aVbraehSTm6fSfOW +miVM+vu23pfVLT0fd02KJ3ygAjI1ud3LS2nKl7qBE2o0M5CRv2P/63t3xLNKw0L4 +cHwILPPwqm36G1D8ULrXXhp88rWyxeSGCZQcgj56kOB7fsVKCn5CXfuhjjHTU1ow +KRdFyK0D+djJtfkOPKYyrH4Oxypvi5zddTvOl1fgd+0Taz9NRNuyxOiqGqpY/2Jx +XJDkd337kwndffuuCPVdP1OifoT2lEzsLQrFzx+BhooUl4cbxcOCw2qWK/FLONJf +9+bSpw3AIswnDXz7lt4xfmbs+x+oZKh5u2wrnA4g+DdQ7zqhWFfWmqUOJEhtGfJI +AkXQiypM0KOLxnPTXZc2JUuLZrIX7SSbYrqgKQVlkfeX1KJ+aG3sFdN+IK4uP3kz +Cnsq53S8NdORJniFfxGXYM7GI/0zzu4BnhnCT6OzxY/eg78K3l/M4tMUjVMMh5s5 +nCfF2znRl0KBUat/xQVaOZXdO32TssxzhhFT1o8qs6vWJuzflqbz5EU1qHuyTXhP +2krfKvN3sQtOCCZp+N1YqutV6F57FOBPJvAiJRX/dVoOQPOVrCJe7d6H7p7mRhYr +vF6O7NA5dZX0tCvEUapabxMO9GdTFQBbBndC6Q== +-----END CERTIFICATE----- + + +EUS IFX KeyId e82669cd9f2098270297499eaeb8dfa7e68b3422 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAACyhVhy9N1pAOQAAAAAALDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTExM1oXDTI5MTIxOTE4NTExM1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LZXlJZC1lODI2NjljZDlmMjA5ODI3MDI5NzQ5OWVhZWI4ZGZhN2U2OGIz +NDIyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0NGNi9RlmSa7nE6n +Ze6OWGDTwnl+Iu9SLzMdyqRvUATu5K4HbCENNQxWGB2VPJrNEK9+G/iEElVtNjBZ +A1cJ0hwAplWnFGqUVt+gHwQNze+5vCZ1/JhKIkgMLlwfBEasNl9l10o1AIoBQQg0 +8p/isoI3U0X0VblMIrY82S2fvOoswb1Jzcpa3y4VX8nJp8xAhCWp+0poYSXIVxHu +BiPh3zSuYCgpsUqb+f/5e8mAL7e66YV8uHfxYugb/jtwWzTRGIzIjCBVw/tSCeeM +BVPDFhhcmJlhp0uj66W4zGTQVRjAeEKQwT62jdZThx7J1pWZDIt6vudaRKMua0ZV +Ch5aGwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUgLWG+JtSPDI4nRuwkZtDSbDW9MUwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCVD24j +eIzi56zvsiBijO3DHdkwN2wWUB6+PRG4hRIYYuOk0Sa9FVUam3b1TsJ0PBnPF3LI +7qhsU2yAcKAHR8JPM2rNzWcomGYbSANfRtOcDT7onB9myJgtRsqgRWA58jm88LG9 +yO9bFdngx04chxsoSPm0P0tXDW3w4KmQN9KtNhLquvZrBJ32Y0FZyqH1N281eflq +g05xRmyesmS5i367waH5rdTXsiRWPOX6V3Hnatd2z4bqZbn6jfwRgFfeRPnkRu5M +AUuzpmDz/xxB8qOF5c1logJ7EKKCUxQnVFYXRZKPsAzrtObH9+K+/gnnpBKIQxeq +ewPNvcJu6+FzrJKhyK6jO3Br0lW3hcoFg5+6IR7ebe5cEuXrT6SRoasyYQ/Lzs63 +rGWtSFc0ul6Jm9UAoNyaaz22xJonmMK2mgLZEnbATogqMAy6CBy4dOqdwLm7bUiD +yI4v1Oek8n/StKcaePn0ag2Pj/xvLTRNECw2aZYCRLocSArUq+qD5HICd1Ar+MDa +Csk/axIMdGvZbhM/P7V2ctzroIjdwy+Z38WfdYL8VGl5WTmtt7+rM9jcDrfN2/OG +kSr7XEwUBFjqkWtm8vgceFTJfukf+RPBqEneZADqfSY9FVnp6ksY7wqZMi700WjO +kHN5i4UY9dO1dOBZ2ruhTK3fzBnIUxIQlkxhCQ== +-----END CERTIFICATE----- + + +EUS INTC KEYID 14B8E7137FA99526C4717DFA881B24936BBC6BD0 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAWz3eM0Ti4VNrQAAAAABbDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDkwNjE5MTQzN1oXDTI5MTIzMTE5MTQzN1owQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtMTRCOEU3MTM3RkE5OTUyNkM0NzE3REZBODgxQjI0OTM2QkJD +NkJEMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANnNzKJ3iA5MYg0W +AODybUV6b1Jk/TU0EhCzUd/ggN2cX0zB//bXJwLk809s+T3SSNAKC6JdtKgDM+9k +yt9kZwKzM7wuU8JY36xh6LoTaez51spUk/axqsh+E8W1UdARTk5anHT9d84iekJL +19U1mV+jZGGckOb6wheOzXlTK/RxxxEAHHCZwZy9tOFc7nuQH/KKwqjYsQ3UVm07 +YvhQTUnRWURKSTlrR3ubF/irXIlyM9edhOB3QEwc4QK+AAxF0b501w6hM5IXmvmP +XFtqDP5RW4Qyyb2szSUt3i1FSwaK8fVO2RmzDLBF1rTtlzbeMdTFWBiRuvfAOJnp +re4VOC8CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFAdqFRppjR2aoLPIE4KipYTxP1dJMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAeNKl +w0j+exleM9ZMGPBKY37d5BajBOYUnf06bKKQA2Ht2C9+9yjxNBEKbI2Jijv23l42 +3Z02XCrpkmxN1YL/OiDvxcvT8iobV0jYkvUTGupZWOnmxtQZZb7NtbM3/44E9SOK +rPyER7xkMyMZ44DVJvBaNNbnKWgSFemwP+zutMKkmYEGHMYzaDv6ZFxMthBNCtJs +r68OacRCW1XsSb4gQLddrahaZWRUZRo0J0X6jwUxmwLJ5jcSJ34DcS88O0yAUjHv +1NvESEiN3O9th5HruV0RvLTTaMnO1qzPBLRxoJCJVyJIu9uCTouO+k0XfYmPm2ZV +eXTrt5+0w1nv4+sFZQbQtJyGQhG1py6DNU47kR3C3vSzYQOMXsp1hTJvAXkek7fw +gKzbYZYmCiywIQdsBq/d1O1/aTdIAPfR6GHeT6Gsv20x0eUmaXZCo2osBMOalKoR +adbZfg7Y3sVrWlF5ZkFyBE4MggQty5BtIEvzJMnignQd274aW4HNtmg3jB5QCuqd +f9Wf7xpmGoQid3x0GgxIjjL9FbC/lAQAYhIcOpJ/BHf2aJWuOLRtYe7lD4E7E2F9 +TmzLEQ3nkVPxRikBq8B0AW5l9UR2/SfSg9P+h9ja8YZPU10rLsVUQNFcadOVaLym +lhI2ofSozt3JA5M7ybJ8MxZ6n6GHqxud0NwaeR0= +-----END CERTIFICATE----- + + +EUS INTC KEYID 14B8E7137FA99526C4717DFA881B24936BBC6BD0 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAmj3jQKSorqWZwAAAAACaDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk1NFoXDTI1MDMyMTIwMjk1NFowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtMTRCOEU3MTM3RkE5OTUyNkM0NzE3REZBODgxQjI0OTM2QkJD +NkJEMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOAqzJU49i6O/V2k +Vcxr8m/RdiRUWkQaz2JOUM80thxq7o9/Uq6lJ7D4jUyrTO3gxFrIOpejlaqUPnbj ++rJRCG5jpl2uFYWSqzMq+HZb9n3HLeu8rAt/y5rlyvKdS3UZZKAc0+2dMNiGJkh7 +9z8QfReX8xMdb2w8aJJXZX1sAqTfOoXpH1tjqqf0sQL6TfOX6EWQG8eYfAcvcI4d +5gSgKVup4vDrTNlP0dO1YFQvl0hLdLE/44hPxL7TnihS/afvlVD2nGXkKeDHyGZY +A8AVL4qQQEqR/n7NFqFO3QBEoIrLMzm4F3vyug+haEpPhNTX4x+VDA2v2lGJwjC4 +wG/obSYE8DJG21PE+mB6Xi2pdvfkgQ0zhCW7rQ6PPz3B1d1x+JfmGFVhv3Q50fKm +Sgl9oT4QaBjO0vUJ1e/8RXmSDVRrJoaCK7e/OcZvhZvzd/yGNdeXDEmWufWHbAbN +yQ/X8Wq1ktstQC/iuOyUnJDsgH5Db5DvHrFlDpJ3svr0RRij33nkNHxNEr2ZA4KQ +I8DlRgrPsEwpPA2pELj8VhNKHPmQwUu0kxYCxamfK6yaIqh8dtaOtYVEQekWvzJP +xT0Pe0qgORWxzOIcJqyzgDylEFppwP44jCSieO/2ADKcTJ6JpCuaOVY0PPMPoyUK ++WvkPy7iyo64zdhFMpdUSVh85GSbAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBR6oo9hoOCWWHna +4XovlYAqDocmjTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAInT2go/UY0iGAJDcI9OCT3fiMz7gn7O7fkosqq5H61D +yjQApZdwKt0/Wlxa6VALBpGcz8VQCstwd7Cp6jy2czuOjwcmHKtIndvJTJ7B/cU7 +N8IWaq5zSv7jg8M8jKKuAW7wzSEnHF5QOuTu+P0o0d0QBKGp1nTXC2G0MZZU99An +JosD2nbZ68eKVXAY3uP+rGwKclHp1unrcoC7v07Yu8J4xM+E4KHga0muXNbyr0jZ +QiZ23QXa78CGE6FDodozp6xZmZWBfKmbcN+XSntNFKsxjSMwItcnKh+4KXbTIwUD +A0Cp0KuJBOy3oAafWu8SZbI7NUqEojiy1StWxlhOshx+vagb9r2SGeMWv4RqnbHO +2ai/6bohcS+5YQCesiYG4azJ+Ki0DiA55mpdOFy9KpmURLJfUzhFUVSvIV61Uos0 +uLD6r4kvfforZ8+nLYYlbMQhZsLpjJ8hg5KOM0YBGEnwj9QoYUjkdXkQlbXgjIDN +SYcRVBCGfmzgyyVOSBVhadGP8tk1T2wiou95s8MR8jTJ+jrLWCC/Br3LHnX6sBmD +iEJ9TQHGyweOYq7O48CnSmVorqR3+3sawu666NCKrVcdP+mivGAB0wNwC61TUjBa +UwVMgp6FIUcpyf8Q95VOXNNX165ykTwVkiYXTZ2VkmBVemhvbz729oroM8PR1rjI +-----END CERTIFICATE----- + + +EUS INTC KEYID 2CFCF43B16C8BFC78249CC971EE57324D639F079 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAUGqAMW+COb7ggAAAAABQTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDYyMTIwMDQ0MVoXDTI5MTIzMTIwMDQ0MVowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtMkNGQ0Y0M0IxNkM4QkZDNzgyNDlDQzk3MUVFNTczMjRENjM5 +RjA3OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoep2G4F/Ca7YdK +TBeN3Q19clOQppmUEXsI3673nv8hcANemB0jjAeAnt+bF85WIy5hh0YYRnqiX3At +GJQ7fCyaB8YbOxT9PS6ikaMiKiRcHn0w6Uz1yauE9o2CBqVEquCnN55Pis9xYCF9 +H6q062XSyLebaBvBCrRmSz+lCxjm9vvd04wHcP+1eGBqpey4W4Y9YwPg6iswekFm +mZnT/5/NWjVqn2nH8Ac7rBg2yYnUvbXUEo40xaC31IOW0Eq1vT8mknUGVOQoNrs+ +keC21ZgRxdpQbjN5/jShdyxot1GiRYIipwZiDvv2zQZ2Dxd+P3wq02hdUbXgoTn1 +6Uzrt2cCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFAqln0vXBVsTAmJ4fKb0/WJdOeQxMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAA3HT +XSv9eHp1RWdXbPBx222QQDxu9zqVsvVKiRrpx86Scn8JEuK9HJLqRe6jwMfcCuX7 +jOruI+jcEQXWyxIuCNTE+rgoJsvKePMpzHUfhH75WunVKHv0bB9jgBMeoSLreduU +jFIZcthyD2tvW9CT4gImG/uREmtUZ2QZorDQNgvwHLfJ3rHfnmP9DwvzN48unMNh +fpauDMd5dt/0GAQY7VCpiUabp7WPxGCYEGL3NRQAfzSPAJIS8zyEWwBeK8ObBNEd +/s7EiJdwDh90kkkpdhIc4ySsu0HVceEoNQ57a9iewkBDYpWO4/NmUkLwTCXk3o9O +k2QDKS0hlajEhQ773RZnl7IdIap5uz5QYzFDW5VW1lfM+o5bDynPhHr+6RcX4dly +b9m1su8GMeJGJxD9cTJ+BCkFhPHknWGFRCx8NvIk+DG1M3deNcIlUabGW/aqwgIo +gMcQpZvbrA6vxwY2+69HwQC/EQ/jr5SmuJtFKsMWzm9oBmTCXs7hu5c3QsDr3/gz +TUtNXs5Gd0XtSsQTT1DZp/IHUKHrvz+GbQpxBegseoYCdq7ADVIEMRGvr7nrCjy1 +xeInytFORLiWmxAfgTYkGpkl2FYorfyVVGU7q0G42h46dwGId/peb5ByrT/6wFBF +Ka9pLTKNExPJPWQcH83Zk6OVo6/lEfOQmldTDII= +-----END CERTIFICATE----- + + +EUS INTC KEYID 2CFCF43B16C8BFC78249CC971EE57324D639F079 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAmXQ1TM9wlZhYwAAAAACZTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk1MloXDTI1MDMyMTIwMjk1MlowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtMkNGQ0Y0M0IxNkM4QkZDNzgyNDlDQzk3MUVFNTczMjRENjM5 +RjA3OTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKZqWeGDTsxQ3bnT +O08WefuGXkKZ8Z4iYzt3TrX3hjNTo2eIKWysGmS3Vp8baYuNxL6wOvKTRd6JjFs4 +LILjzWrGibud/D0FvNeaDbGvPlo5HbBy5xqpm7E6hSxV41MozePPgZW7MCOtzrED +9cuYBwB5U1AfAD08p7BIXqN/Sph4LjktgR45fJDUBu5I/ZggONj7p7VLnht4y2gk +lYitj3gnvQLDo8p9EG8OFvO1ft8SxYFXRLlkXqEpkKppCP7/oM981n3QOZ+1I2GT +hYWrTYihcXdKApG86AQpda2N5oPjNY1KxdrwWR7W5jIbI08rvck0gjLNxULs3wB7 +hIk9/tg+6N0B6M/SLpnCkBSoCz3/bkOLi42tAs92vmYq5CntWpdkTD8RkLbpu2MH +3318IICLcS38wF4BkJhtyLevhLT6d+E6dxfZiD79Va6+E2b3945eSHi++A91pzQ3 +YO9qzLebYZBdMEFAAZ0ssD4CUPWucEl/7/iGrirCt768eBzJmNFRC2fD6SK/bgNQ +SCtzWzmyABuysiJZzxxo0mAMkjc4Kp+9V+d7SOhh2mtLubLF2n+BoWEKybhKRDPu +JQekoEvdXED3mPsrDknemvC+6+0LCd66+gUhFvV65zliPO3yhnyk3JLYLcMTlOTH +MGMCeGKwqb0LFyATM6sXJ2CrWx37AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSnozOqqzPTiOLr +S3V8h7ReMQnxEjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBADt0XT8KW2RArG4lDX6TmIDig1jpY+h9JUfSA9OB7wM9 +7I8qOU/mf1RfrAuE8bL3aA3UvU7e2/Sp38L7g506eQtJjk4yyzjTJcPULJwnwWqW +8mwC/Vt3aJbPfJ0puYxR8D6hcuVqB9fAToUBsTng0WD+Ho2Vjeq4BNNisOSWVSsf +GXeLbwl53xTmsm8ieXfTozg7A4oO1/XW+v5fujEMyJftuZWNlaYH11JtwSsbuN6r +8yE+oTb/RRT47t9XpzJWEtGi/4UBPof8rXKJb1M0mWFovEh69BNB5wSfArtGwVye +8QRHbjlgmzgfQJYSZRp/8pdWxeCJnPgWz/QraX+48ssOC9cL0J4NEXUXe3dqDe90 +qEYCDY4HDYGUcOikskZ7frByItgBbMyBavYINOUDcYMawStVkw6aMEU/HP3cKlEs +LSgyJq4ceECnTYfWv3zTHOJEHuwPQhStMt6osAX53VoelpIqu+NAWYO/aynuK16e +sfu0HUXqiizSlMX+fFnyVcIZgyLeol+RG4Flmt7gS15Yjk38HDaIgok44ZX0x8wk +Fu+8UWVNRh1+cAxynW+4NuQ6+B5OhVZYT04lR8r4LNeUvsx72UpuNlCu8qi8nAlq +S3g+bAuJVwTPMU4oNhQf6RuCNs6Of5V9GmKpZPOEYsLGNf4evZQNKMufRGtP783X +-----END CERTIFICATE----- + + +EUS INTC KEYID 2D3CECFE6594829719D6556B600541E749FC635B +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAASIoHogeI+b2egAAAAABIjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQwMloXDTI5MTIzMTE4MjQwMlowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtMkQzQ0VDRkU2NTk0ODI5NzE5RDY1NTZCNjAwNTQxRTc0OUZD +NjM1QjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALgUMc9LO+738FXS +2IjrAP0MzfhxeeA+HSBEhzfYDtZWWyOHsrxvn6eKa3RwKuEHJCaZjGUxWAa0UAvY +W74z6Jbrd1ImZhCNea85avwlELUUi7+MvQTp5A2js2bIR9p9/E5D/4wX+HnE3fa3 +c9esDbmtxs760WQdiuvx3NNDh4jqfoGssKFcmfZmLPBdwFOYfqt4zseu9kEddvAd +fncgSWSTtfySPd9MYCikurlZrVnjA6Z4wNPSpOuGA0qPmccNYYd1+7vJ4tAVPMvy +qlZSXTm30LjJLttQTRqRZWcJjuUGdKSLYZIl6OzInnefulStGZVi39vZKVSHUN9/ +eRSadDcCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFLMz/hTpwwK3iY6+ma8B+k9UjL0wMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAPs5S +BUlVZK8U7cRbOv0R3AHJ3UqPo6HWuI8aWn5svp1s7QKyYIcM/oapVWnGGEhIKmVf +r+zrLR34SDx0/Wup2Al81JgkMKp7TosSepHveMPcV8s2WCK4xaLfJatyf3gkSzJM +z913ukXHd79q2LcFlPF/z8Z+epubMyxKskYUN5DOn8Z8zvbC9DZBVh6jQHcrvRu2 +OR3id4/an039Fk1acCYoWCKX/jIo/I/q7Jv6WokSFBnTRWbFbsctiMTclQUuAS+Z +9ewDjBLKGgMo/XDrSz6BnT6/42iPPvaA1h2QLTIV0kNYSBoCkZJ0+kE7LfJ0TimE +uBauJsub9ivR/g9qz64f9BiG64HSPK8TWYsXM/BIguPgtv3XBSw14NJxf28sWg8T +dy9Q4WHH7dAPD5ZHzdHuC6iHTKPr4PHz01gplqVCWXP0bWWPt5PgsgXTu7X0XC7r +aJxP6vFJU+tLnlyMM9yMXgVefK/jlJtoWSNhvITAFUeuhC4t2y+2AzbpobNJA3mD +VMs8YZ5lqcw2+s3509DlOE3exfEVNxBpxHyFktoOTfJHJjPh0m5xDVNJ2CtS2ZDj +NAew+HzjXqHhuNo/V6+id74907FplhRZeFdsQbbaAcHuzi0Gax+D5tTAx/kKC+lL +O3l8de/Oi2UDjS5pCe/7ywXTdNF6vK6uuCD6Lvs= +-----END CERTIFICATE----- + + +EUS INTC KEYID 30B86F094DA6ABD52371043F2BF7668C783F0E66 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAW2LgKsizWpnPwAAAAABbTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDkwNjE5MTQzOFoXDTI5MTIzMTE5MTQzOFowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtMzBCODZGMDk0REE2QUJENTIzNzEwNDNGMkJGNzY2OEM3ODNG +MEU2NjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALxKFRVkAmy3oss9 +F+e8fkUukVznNib6IwqCyizalGa4Ss/GdLOs/Bm+v/R7chQoW9wH9jB2/8in+4UA ++7it8QfabM1g9fn5qwZ4RsR6yahV3G31NmcYtEC5VOVOfu/QR1NY5mk2NFMhdfbM +527UdfAXkuU9hDnHmVdrbi/WLC6JsIuXSe93Pkg0q5MC7VONgGmFY0pSJjj2in05 +/J6Lp8J6nyUuU9N35+C4ajcTzdgEkqhA7KkxvZ/ENBAawegBGdVfR6LckdyHmmxZ +Nl6fgXuJvP3Vkrq6hnNzVEk+kTy+OTag+FtMyeyczU8cwQPWBG3aS0U52nB5VJVH +rkqJpxcCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFIhGUaLkTsCUhxtm+Ht+n/FFnAoxMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAO0t1 +VP58YSW2b64bEbHKIEG8PMKNDtSXl5Mmo5F9fM0ir1VtOMfRAvjgRPnvBvFKVmwH +e2GnAyqCSeK1FrTUPrpmvbD/45f+iuydKfM7ZMW0NRDSiDmZNdcvseqlksXlgbop +J0JR59TwzvZWAnnfhNtT9G1MnIs6eU/uSyOvrSAZeXrVoY7twv9Qpp11+5lUC8rf +lUd/aE5ukx4ceu3xJI21cm0253er+joBVeAxDDUg88hlSbrUew+hEFjr5rxhCpl8 +0+KXBk3y/7Z63QwgDUBeZ9PwRLw5YgF/ThEgYXc8058606fXKsL8vAorZmB8zbhQ +m9smeEpNTem4lo6ddrdo6mwt2O+cI4epNBqulIZLsfJIlL+TBNMJINM7dxObu3kD +ZCecTpjgMruPNv12ZspL8+e8I/mFUvV70sd6blaotwfYOsRSX47krZhViGdGu9t3 +SgLctrT2ix2WUG0ddAptVI4KfgrqsPzIDSuiZTuHe2k7DY8BTrzv5uNfRjaL+opa +tnHq7iGuTQxRnfRHS2J94q1ZkB/Hkm18E+SjSma/fXtDmo7rDQgttT+Fkw8K34d4 +5+YRUNSPQA0SXuv7/Jj5JcbQn9QXWCnt8pLrwYvVbPPeOqVg1iNKP/bPPZfE+hTV +RWgQ+ZvAWcnAy2rAwRjSx+FLMceJwmc7LNBPvV8= +-----END CERTIFICATE----- + + +EUS INTC KEYID 30B86F094DA6ABD52371043F2BF7668C783F0E66 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAmliMcKBaDdd2AAAAAACaTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk1NVoXDTI1MDMyMTIwMjk1NVowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtMzBCODZGMDk0REE2QUJENTIzNzEwNDNGMkJGNzY2OEM3ODNG +MEU2NjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOehxxCDQIwiWzrY +mqj4wnVqK6ActsuKxg8XFVyeQuwzMutCVJNdS+49fhsXf2wzy5ucrjobCAl3ZHDb +cHrK3cYE6GZL1qYVbiyNVaUAknuNJnqKJx0E/F8e6ZphLvazxLacnyOvJ38qylGy +JwISvp5l6MfmvYrFkaESgaIYlg5sOYICQrqNVb0H3U8WN6RgAQLvwR0OspIqH3ZE +V2glELb3U31Iuz4Xi9rYSpMcWyOmp9m85EkoLqks+P8PpwM3eK/rwRmVYMauMj1h +cZtHEpz4Fdo2TJaN5RWT4hk/dtEKuniiBO67dr4SQCJE/Lc+itbCTKU5DnJ8bQ0E +4lUSD2nPTefPk09b+Mq3pHFdii038Fzxv2sNdQ99M1/9HYkwkc8UlqfOHDYJfj1p +z133umIDQtlBMEOpVccqQZdsfMCKlFTgkPGaonNwd1wbuKVHGFdGRpJWOg2c6fZU +UFegSSZAHXktWsQ0dFF7KxxA+NfeuhNLI5VGxHMTVIkk4Y5qmbf0NYN+DkP63LEJ +4XTvyO3KP1RKt4ohLaUTTjd78m8H0Np2dJ4qMoHSgl1ShMdfqSByMyRvmmiR1Yth +Bh+WBtQboqmK15A/1iNlw7lIVJJGkMupgexiwofhC7KIEpGowbj6I7sGFBcPt0ZE +7piI3v97CHtq2DgZBxVQyXkcBbqhAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSfojVJ7xoP+Oa/ +eZkgksMa/LdrgTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAF3ASYRHbqu558QeoYw9k5EpCxuelWlw5YggoMLy/O4U +ffj0Qybd6Wbv00mTrIsfeZU2bkhzsI1M7+BaPiLC8wl8dvAGikPd9cGvGEEZnF8K +5NdKvbN1bA3+LKx3/lAULbKm7QOt9xLDlwzUFxP6P3IjQGwnhv63kP5klulznZcE ++2/wOzG0FAyyG8mAM82wmQyZXEouenLwcaIrE1e8Q8UmJWVMQ66VVF8yMTnsPe7o +5nvm7uO8aES/agHIaKCx54TjsnN7GG2W9cKLoCis+FD9TN3GikW46QN3gcIizErQ +GCytybjd17p0gQQ+Q/kRNrvLpR5Ah5+7pQYP9YSR0Ed9JJLvJMZTnvNx1tuQ2m1a +b1CfARxbvfC6tT8EAxrRv4/qnF9RnCXIpsrn0DitJLQEy47jKa7JnZGxedVBYmTX +AWNVVdyLlzMnBaV7WA8CMDdDx2afGOMvAmLTPtYzUaVemhkFJTvXCMD2bTSTW7YZ +da48+jjJaDBqGAhu88IRv5+HKcafOS89vdjcpricaGN4FAg7qNwex07VCvSNswTt +4YghJMF53HiR+jxO8uWI/7NCgoe6Yki7k4/XQhtr5GExUxYaDREu5fAQ1wZTRGrE +FOZ9hNEc8C7RnBKrEBLU1Cg5KtHXXpCpg7ORMimD/dKQ6UPhIUtR27Qqnh8W8h1+ +-----END CERTIFICATE----- + + +EUS INTC KEYID 31734D6F8AEA913A0A31180B785CC0630894CC7B +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAQKYexESldX2wgAAAAABAjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjUzNFoXDTI5MTIzMTE4MjUzNFowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtMzE3MzRENkY4QUVBOTEzQTBBMzExODBCNzg1Q0MwNjMwODk0 +Q0M3QjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKpdS5Cb1l+kIsge +28S1LPYXLi/WLV3GhKBW9KiBMOLeLb4paufsYxG3UPUiJt1dUclnPK5xNhdIHwXM +IJBFusy4clDAVVhhIfQRiS0q4pU7D8+xLolxsWMY6UNRGs4MTmXSHPTLvuI2alXJ +npMYTMDHQnV9lKQEkCDEIgEyDpqEIHFHdASpfnSiqlEEvmUwTJm5UBI/7uNlTU+X +MeHuYx2PWhagB5vB3GVfUJA3cSLDzYXZijScL1xfejo5rXEXXK6QESndJ/iOvVBh +DDodXgbBQcBk7YP1kQiwsv+AubsrGWH9kR7HccX/uOsTRnU+ultj30Wqvgv2FgoB +2M15v98CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFNQivBn0T8ccIMhiekaPsBmTPb9/MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAEJYT +uv4L7lktotmj9tnGrgJQPC1NCKRoJB0BlS46I1JRm74C9X3BfjKNGdbueDP4AenK +NNrxeEbb/XqvtdBdO1JDyciovWCFs3GXzhKtH4aozH8WL9ARoCgWhfu3E7iooXSi +rNJERNiPWo+lcnrHbmakOTxvOM83JGyv2uXa7z/Jl/axlhYWmyeOioo9vwAx07cI +cW7oB0ZNXKetfMyhoU1sl6YJEd1rI/9dkaC7CyyMpvy52dNdVpmKi3Xa1285G6G5 +p2yleQpNSkvtmtMXsJztT1PloQhhtYaJnG3AvhI1RBMGX8A3D4ezlDWWPRsX9D2w +CL9pncyrwrtjeY64UfOGh48r2iyqfBfDaF1ecCQR6dnGCDhSLjWCxkAaxYJsRFXU +1uYw9DZz0zjc0CqGPkNIpE8lr33u+dhVt5y9TrhwMeZekq+1JiWe6q7Dcb23quIP +ItV6eIKlZ5NPI6D++nWQnea18ExKEN8A132hmM2+15EhlLJLh4FmJf7qNsQcDnWN +05GcGtUNzpcB2+sU+ZfyeQrN0RYpIOK/ApEz48ovuKk4zr1C2lFH6u1G75KCQ37U +pcgTtK00Bosgn2dIcDFwv/heO1X79jySABUtNvAzP3aM6FHd1EKdos8pjcSppC9m +RDLZqQGgE3pQzRSfQI4o38Hy3U5JXhJm0ntfVcE= +-----END CERTIFICATE----- + + +EUS INTC KEYID 31734D6F8AEA913A0A31180B785CC0630894CC7B 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAmqUDKDexS/+6wAAAAACajANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk1NloXDTI1MDMyMTIwMjk1NlowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtMzE3MzRENkY4QUVBOTEzQTBBMzExODBCNzg1Q0MwNjMwODk0 +Q0M3QjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ9OYr3h+Puo+hQN +sWAOC4t6Lw+61B7XQDbhJUlQ2b6TH84CFb0leFGwom5MOI1kEaBKpEchZ+QjPO/A +V3c3V3tbqHFOcj33I3vBYugHtbbgYUmPX1kcoRTf3Mb8PqSsMrJlOj/Q9/KGoX92 +Zi4YITXRXJh+ttLt7FB5gTw4xYu6Zy4cKBzONKptxcn53d2cNl+308Uq/+nIhA9o +JOgJjPb3g93HseQ1/rpkWRCTdjpQ7hSIZ/hwuegTe8ddjiaCzFk0V4pdMtiOjfSP +zdbbiqpQcbkm1cCKW1JeAS/d2gbTqCJjr0m0L1jDMxyJ9MHzxQhEq5CkBd89y4at +qy2Z4OfK0AVe7h2y0pHkw2RNgWB4X7mKr6BvLaTIToqA5NnR/q+BQ3KdtOYKb0NK +wau98ga6IrmTu9u41RxjqsbywtVSc7RslnRS9MnlMpGIfCfTwtbMytbVRlx0hOdN +qKhAzfZNYms/2tjOZe7v2k6QToLcjO0l5UizD4Ws0qJixzr/JDLaeEODpaMtUntD +M0UxOD6i1qixc/jQkzb7WFCMgbSF4tkcvlmeNhY+4IIFtVtMiMr4bEm4bi5BcurD +VywEeqLgA9+EC0otYPeHz3CzGJrvNlbIom7rSNZOqnmESrkzDGrm7d6Q5HySXZIJ +HPWgGhlz5ey+gFWcNXitJqfZgWXbAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRP5QnhlyTrEyzl +u5GIqkdXDyCs3DAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBACzqCU73CMaeIlQoEyEeqU51llw+HWG7bcJPrzlh/jHV +JrrIMS7IANM44uCx08bNQAQRpiFzaz4hlXeQA9RUIVxyK8eNCrwS6pKyXa0L3mKs +zOZA4gGkSR12fuuyvlWbEt6+gdsMdWcqVybAaHmFrHCXe4fh7aKcRyVF4OxRBKkG +4qbLhgkk20d6ijAouwjyxFIIyl50AErmbzhYDRPmXlhDCrWSYLWG9dYbWfBwk93K +NUDWYundai++/prBV7Uj8MR6f7w8cNPDYXd+JeSUdXL8kf9I2kgdKLPrDZME+vke +Em9daTTaZam5Ye/BYx4epTIJwHi+on6aQMXswGNxrQgBmwkIbz6Vq6OB7xqtNwSw +wCcHjtcC84fY0LjyFd8iycNQCPG7t7QHyk2oEY2yJj0e+eEeB8z19eFKf62GY2av +VwbSdiw3RTYG5gbNlzSbvPDbKr2Ac49M8z2m/gmb21mYZssct3/j5TSAtuvDcdcR +zTNGooA7PrnQ/VLLUgzHUNcclkCLs1AUj05t0nAXJAWff8OP1utDql7N2LyHAJPA +/6pVcmvbN+KHVMt8ph2UGd9fFLwOp8jFxsxbvwc8B9ctQ3KnYlObLZfk3TFAV9+c +41LxJmyl5rhk5eJWKFqcezGi93riWpzAbQdNfdxdDNmksSBDZMxsebuPVBPvBck7 +-----END CERTIFICATE----- + + +EUS INTC KEYID 51C73CBCDFC990AA677417CD5F78BA37D4A8D731 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAASPiq0oHKWwGrAAAAAABIzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQwMloXDTI5MTIzMTE4MjQwMlowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtNTFDNzNDQkNERkM5OTBBQTY3NzQxN0NENUY3OEJBMzdENEE4 +RDczMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJndpYu7G0SEmZkF +YVshljO9wHHYC+wTS9fDgjAp5FLdl4CTFSjnJgPg3vLCH4E2xRpi4MQkzwX2E2U1 +11M9/9M/5NkbeqOx4vnZ3P5pleuVV1h8nisyXxB2MaMJMe5aoO/jIJ8dMKvTqB8I +uKpBU96Zvmli7Z/+kQnXFwAqL/Z37s39RSav6HPscPfhP6W1MliMbsNXcz9fUzt2 +xtfhbRDsw2bPOmzehVw+1jY5cLWRAcIA2AbGM/nDTjVUBR2b6q7zWvBwlnUv9Os3 +938xKfRoYjxsnXGBSGW7QQ9mbpkiTlueiMey/2iZixVaCwt9Cc8im2JazapRYANs +9g9SIVcCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFPFjkvb6mpbIdghxEUxZ6LkilNbqMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAVBX5 +sQD4ymhbVyVOQ6/1rV6HYEC05rxZJ9vHB02EDCjRKBpdExaxg18OnYBNsJc4eM6r +hde20pue4j1K4UUlG42nbQdgd5W5FQPZUWJ6W+KXc6OXpiqlfPbbVBeWCxvkJp// +5cmwMYoIQF5waeBIYRp6pLPUIy8gcrUKewKFs2mciB7GBsBJDk+D2spuqmZLbOBC +V6rdJKBREXnsPwzf8yqnolm7qjtKhQtcyiUal93XUcUIxLQKOIp1e4MWBJJxv7Tz +rA2gpCRg17WlBiWp43SI3WJS1L1eak4rup5TGD4/llk6+twdgIbRKGb5iDzkKs3P +HaGWdtXjKfl4+5wlOd3JLCmROQiVul4M1yTMMmZ3/BNNaPs7fVPCoe+b6ez/Ypeu +MCoD04DdUM56Uxursb9oqyWxcd2nZxHDb+HMV0VvuP9QPtyvAxWul21qWx4QLF8s +AjwF3OTsntnFL0yjwZs3vjUt1Qs9X+zgcKRqVZslRN8Z4+WQMmz0pAToJMcj+xGw +PogB5lFIw/QCzodu1lnUBSLOIq9q01ZmwxZ21QIiUtknSmL8sRDTzcXyf5mB6dzb +VQA0NT5MyX3w9lr3r6AHftVuMSjzwRz6Y7/8VAItyP6tDUNlSqPqnBtsuxYe7m/2 +WfI9d+OyiG5TByZHsm8KkE0CY2BYeJUrEFAe8FQ= +-----END CERTIFICATE----- + + +EUS INTC KEYID 51C73CBCDFC990AA677417CD5F78BA37D4A8D731 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAbxc47LGle3tmwAAAAABvDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkwN1oXDTI1MDEzMDE5MDkwN1owQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtNTFDNzNDQkNERkM5OTBBQTY3NzQxN0NENUY3OEJBMzdENEE4 +RDczMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMkKdXDZkj6VASjH +ZcDrJsgBqHgXx8cD7U0I2IEoubbSo2Xb4d8SfryOYQl9ByGXS/nwAfJ1sBF/ljFb +OWUcqh0OPFpsRsjRgl7CADDxBeGktwHCU7jAx72OpV/TnKxe/cK0xEEHBoqUepoW +fdLdSxuE5ZpINWaXfDgyjfuk7O0Jtb7GVJQlVDeV9Yermbjuv4Dd/YuKPMRNa2vF +Pi817hn5ghhI49EUdEOhg3sZHStR2tM87/W7kImYW0nJvPkvyo7tC2or/1iY2qSw +FHwuxmOexlp8y94D6HriJyXG+D9eXofGRE0KmDO31xiIF1nyl087QETUEuy7j9iE +tJK/4eoZROI1si+IdOXgb69OPzYE3NdqfWDB2IPgB8yTnQe5PzbWLB80zL6ldWa0 +TS2uwJqgN8v0fsMb1MweC8XswylaNZLwDz2vH3D7Z9VaMFMpRfMgVg7rRWNViryu +whXE+mpUjwdyaqTCBG6V9X75iptC/cF87umWybrJCvwYgbFvMJsJbATP8pLzenVL +lJHiFaJ3k2x1H7g4TpTsfpW86ehcGzuBcZeP87ciOH6SWmEjGtGfJl+ppm7jTPFu +JJZTPKGe3DAv4xzqT9KZypouNetqTKXcytibfdQfqZoBO/6k84VSeY97bGTJGgPw +ygRbjNs7BXAbkojizPAaYwH+eHilAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSOzIlOWBiKYthD ++x4PSg8PY0kJtzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFw/zNYcvDkvyRy7wMJdruzAuS+LgIAgn2TDj5OQmMsL +q+UJkQjh+mELaVM695hw2NWr5jt+5TKN9o+m/pkYDglIGB5kPCluJgcjG7bUMdgc +f8OBUJY9REuQdfEDnOjInBHoc2m4nKjW8NHdVtJyYM5tkkL7U0lxfzAHgerJmUbQ ++dSnLWcnckHchG2u1G6/yAbpV3wC87RL1XhU0eAKv19fVsZZudpBBSPhcRmQE1P6 +UneWuGJlMI8zJxqydpeljVZMfLl670+KbPe7u09rqqk4yi20f1Rqjt+0TeXmWryj +gOdOKBGZsQzIr3GKxLYKKrAcU8Hz4gMnnpzq4397SxW09xr2VXrqG7jG4Yv7PhmR +BnIxyrE/yPCRRL0GQfBAaWqYIrvfsW+O76zc3L9Qul72tH5Ps3ORn2m5GNf7XC/0 +rUZ5GOiZR4zrDBDFbGTZIJJLChKgNlG1Bc3Oq/aQ8LOxj7jswY/9rrxlCH6C3l/g +iulc7kp2nKDid5FQlKUEf/GDxdvsdqlF2WoB0ANGN/MZeh7UrM2lDOWfCTnonxm7 +Z0bcWstVxuoBAfhqYWZd5JxY6nckReCbPflHXKHQ/wH5f8ruBtc0r4jlPValdpRw +RvGvGXVF5kcgWc96rtx3hf4S+T4LIXp5MqhUjXqzTW2gElJCR0a7xflv6UTt8EkI +-----END CERTIFICATE----- + + +EUS INTC KEYID 5E73C89AA3E902B272B9F0741F7D8730E3EC724A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAGkXDAadazM/6wAAAAAAaTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MTIxMDIyMTg0MVoXDTI5MTIzMTIyMTg0MVowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtNUU3M0M4OUFBM0U5MDJCMjcyQjlGMDc0MUY3RDg3MzBFM0VD +NzI0QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAODKD2O5FH5Sb1gp +2YCbwI0t8kB+xd+BsD0ZVyjfAniZJrqzujj0z81Fc3oF0XeJHZylyNA0qCwK24mp +tfjoCzTf36OnqvEV1duJXT/SizX31r8G7IUbeYeTyoB45QnjbRdiUowKH+sGMcJQ +DKwveVq41neo9zaqPf1rpm6fEQBQmFYB3V5W9aCledguEyG4fLy50E/4yVqEta81 +m4PiPO99ob+43+9lVpDeS+flXO8vqV52FAu2T0OkdGGjTBG0v8QtKzDQdLFWROl0 +Ds0zUmu6fiCKo00eH1KIqRu1UGXFUmb2jS8IP4g4Dm1/FZ1t29SwLEpLSs8cNUlJ +68dYCCMCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFMdk740jGUSWBLMjWRBPabISbsfmMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAeKk0 +c3n8BHY8JdHgWHOLF8CxDGJiwPXFoNqJOaIr/j53sWIMjgkHPyMHe1XYJYAm/ZPx +D0UDU0Xd1S7JTidzWvsWtl2NdsJBhbRUQM7lhhqE/ALZfmtKUkJsMud9U8S96jT1 +E6qz7UNrobu4kFZxiKzhfO8PoaL6TP7CsNmjO4hfL0epKlYY1DYxN+a7o1olNDJ3 +VAZi8yXJ8LfC+p6WM7AqtBwTu5QDymM7+vzRoBQZEzEQwlxilfOR6uehm6MXfSUf +Jo35+oVCsny6HHT7K7m7WjnhsOG3YQRif9xxjs/r3YdzEGUsotT7rXRw4ng/EMFJ +nmWRh+ZY6cexC+Nyh92bTY0866RV3RIDhslxk/szG+EMkAzIKRSsCbeqPA2TPss7 +PF54x99h55X+19VQmxdyfpKVNGN5G6wZHeULZctrW6CBRjyd3ZNLQJ12w5gT3KJT +2T4mCtEGVI2vlyWO09PU9+7owg+Jtbpd/nmlH8w/ZJ0hL+Tj1QIJzfgmD8N06De/ +em30DU1EufrKbxBsXnM41Tic3SPluzApTrZeGcD86Z7XZQjcxaAfqM15eaMRMtD3 +mGd2d86GGEqUxB5nPk/x8FioKxYzGIcbls7BcxXSX+pJzvdCx8hYHoKr3/LccRkm +ENcfR/xK1Pg3uP14U2964yEJ/ANsp9CxvdAh+sk= +-----END CERTIFICATE----- + + +EUS INTC KEYID 5E73C89AA3E902B272B9F0741F7D8730E3EC724A 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAmZQwZw90C9GuAAAAAACZjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk1M1oXDTI1MDMyMTIwMjk1M1owQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtNUU3M0M4OUFBM0U5MDJCMjcyQjlGMDc0MUY3RDg3MzBFM0VD +NzI0QTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL17VBKe3m+/8pe9 +IuDB4VGTxivtDiDLY3aO9pwze6z4Qu3DVr6OIZLe8zJ8sZXF2ccNlL4gQlL3tX6j +t7QTXljRPIlIiNOYs1+Ory+HWog4tO0nK/YDFSDT2jU7h2e7TCdImjYr+ljHtcfU +7OK4rkGJ2Ua9itW+BueKxzkKE/Bcp1Dqp6braO/QHlHgTzusaLf9rTEw+ZZVRw1o +/iPNiVf3s6+Eu8GQcz/fgUVokvB/97gwT9XCrGswba4Qm0V7/oziqtzM1z91nzi3 +KBQ7kRCEK1l2TAzReASMOlVuWHLRA0hTsfcnPiNYYKlYU1VVCwAoC5ZrXqiAtV14 +2JsbgvCmiw55trGOYKLpJJ2rqO6VDw3djFP6S/yoLV7l/DAG08A47pJDys/9pkDP +iZpuhY1t+bmm6Qf0/zdlRJtZbmsLY+m6jniBOs07WV4X9lIbMZWdhz+Fk93manws +R/6XC0MjEh2ZkK9KyC5RavNxluNES8ENtvVfJJGDX/oZ2YmRWHAdPD8PDauWImvm +sO0mDPYlApoabrAkyhl0wrOtJjlIYST8e0B5kPdVGxotJO1NhcehSZ1XGxhp868X +Yrs3bOlevSap3REXMdbSyUBI5raddt6g62VIqRfOyOOneHQvHr2JkCHttlnXiyh5 +387SZjTANJDagj6bCO4U8lwGlLIbAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTNh1XW6YqdXrCU +TfxApobm1TlRNDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBABsfig4Hetcsydbdn7lA3Nvp0ENGLJaJAdBsvXKfKPP1 +gp+58LQ0GoJH/N38BswGJJ0dBs9sSDN5ZmV0ObZuNKFNDmWztEGJOB0mSDZ2LLgL +usfO9AntC5fN6JcCmunQexBjh+jM7jtHdqN0Pv2XtXdpbN6+NpxxqPWiXX22O0eH +Sw2TOAoG9BNxqgpJvfh256v4E53C7f0mAx2tTeQV4F96SlE4DTe/dO34hpX2k6za +NPpgR5AWSVGnuZc/EmclvNjy8datPPkIzTwMeGT9QlTPahULPP6dXPT7E/CBZaZ3 +sxB/upYkju0MCkI3eNK0KvRHNDzqSnLyGgHxqRE/tcyNN2g9vFFh5sVtRFh7COEZ +KPhulCvpRtxPJfA1as7b7PmAwGU/PIdd413bFedXEwGvCfRtgj80kD1M1XIOnuwg +g0IifZIdmc4Qnuz3prA7dPahFBsXnRzRFc8+uEBJpClSncvXMy6my3p4ZlamK9Zy +qz/NgKcLKaXzqKuBr8KmxDoVpHIxj98AdUVJZThAPYLWI7Zd9mXhsUpzkJwThEhw +6q69qnRFjo501vIh4R4fYVkHZ3j8GzsP7N1vML+n087dYdK4LAhX+RH1ZrPFHazq +lAFqjHl6QibbCbYN9pvaMtWfUAgkrqNbkRFp1sGlARdDIYFjGVOVmioR531dasaH +-----END CERTIFICATE----- + + +EUS INTC KEYID 6CA9DF62A1AAE23E0FEB7C3F5EB8E61ECAC17CB7 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAWt1syLJ7EikpwAAAAABazANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDkwNjE5MTQzN1oXDTI5MTIzMTE5MTQzN1owQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtNkNBOURGNjJBMUFBRTIzRTBGRUI3QzNGNUVCOEU2MUVDQUMx +N0NCNzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIshp0qIP9yhGvWx +lwe2Hn06i1ysyjgJPrTmPc+XLXXDnk2mE/gVwqhzcWVEu5U8yVx3mMJ+lOS2IL2f +UJ3EoeKlppHlk0/LwQcuHDnbrc8LH2k8hsxmPfcDuu3cNeyWwVOPEDaGEy26+fU8 +97kpubI7Y16Zm2nI9lZroaYjJ/hcBbPIYxnwQWf9Pk07dNS8F0gSYqM0UblClU+s +qYHRR23MEgglPMFbcvdnBZ3ye6xvmEw+t0rnqJj/XecnWefR3kMpmEcoRbv1VbXH +3dW1vs3W8/DY45blIbtpXDPc6WhX7POSMs38W4XTNvL19D0ad6rt4fQbIbvFNHqx +c//CNIMCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFARTzJSfwZ+rWVgbXHwChigL7IQLMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAQ9Ld +pEQOa7vyKkWGpO7XDsfp3pwcUonGwjpatTaA47xtPu8yUVPw317Fu+dpRbdWRRHG +9fzFUqQFr4NyX1tGumyFzoKEgZA5bAPRk2DE/FddIqisxOpOZy3q12DKHM9dE7+J +YKwtoH1TacpsCRNh343m4wXidPqs5Kywl60pMWv/wGyy3lX3TGjYsuJM3yeFEv09 +1vmqU87guDc1Z2bbZyOw5TPHawBJVWroB7Jaj0rTwz2zoub0zcvwrhBLoiyqRqKL +UPvSbclLNl2Fl26WIaZEOR2XhaqpNqG/QA+rEe4PYst6oFnjLAN8KCDtyTitiSgQ +907vYovPx9m2bOi+x/D90rVPP7v8LkjFZMUEUMh4F33vVen3scQz1nfmumpc7/YP +NEWm9StH4b7R3I2WBBwlOyZtXCIrWKvhEjsjhyowfnTuqN+Wog1gMLbMqnQfwGXk +pv8iOFr+ZV8Xtoo1+OA7eyQtSJqFVBOnca4/TOybCE9/GsQ0fTaMlnlPyFxoi0SN +OKUkl1hKi6rzks1ZCPgsNr32SFFu0UXC+16hivUkuSGZxWScaKygTXRIXF8ECurg +CVfdpjzi4cv83WP24UFBH5kG/XjWrOb9FHmlzpMmkxByoDHF01SehksK2wwaumHG +AniUb5FaZF3ssOJcQlJ9MlNKApkutTPJtiTrwkg= +-----END CERTIFICATE----- + + +EUS INTC KEYID 6CA9DF62A1AAE23E0FEB7C3F5EB8E61ECAC17CB7 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAmeWmvjRGFAuLwAAAAACZzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk1M1oXDTI1MDMyMTIwMjk1M1owQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtNkNBOURGNjJBMUFBRTIzRTBGRUI3QzNGNUVCOEU2MUVDQUMx +N0NCNzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJZxnhSQVjPuahLz +V/TQ+HZHfJ+CUGSkq5ofvY1M9w9cq0ZHSeTHqEUDEHCSPtjoOscjq640x4xJ/Xa9 +88vz8koMbW8cF03JoV21nCz1GcTXxCiKMaYP33RrCmbwj1CchTNw3b8TGRHqp8aG +tdvEK6sSNZDVHs5EocL5pbLBGwSq6Ej7oXHacn5085oaSQR8pbEJ8uOkejeo1jGO +IMnG8M1MdokL7xCpo2xwJdfpX2hlywVRwHWpbFsSwTB8pdlEyG+hCshiaIEZA2Ei +jneI3TQMhsz5Uplssqlt37W+SpaAffjAFMej5LqEqEODNgVSnA4alokTl1NzE4tG +0MiJoAjO4n7HJ0ThZ19oswyQ2CKP+nRXEnHVAKHk7+dPI8LbM6ro8uxc42Gsn3Oa +Mfuzqq3mr/REKKZbpukujW/3+IfJpS3uFuK/wvVdT5F0Eb1mQSF7t0xNXPrC+BzD +EVp+jTIDACJ+MwO22zE99yp5Aq++twYIGQ1emt9S0QvFLBGNX4gXh3XC3o67gDV4 +v8AgwxNbePRua4XIkMlx58eOoSPHKTo8y7BovXIxaaV2vkP5PubGMf+r3otTyMey +TRmOm0lb49Vztw1HStDAmqOyF6c7omgW32MGj7g/04KOnypngsz8QzKm0V+fKR+O +OzaJgbJosTVbNaPY0YWHkMq+PcqXAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQfN+QmXq2NMPQ9 +gEgtn5DSw097ljAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAEUI0l8+ytuapQijCWDZylZ423Xlw8tR5vp+N67u75qR +iJIxt37Fr8jNOF+4qRi39aIPry23IMQwsQhCecb4IjkyWLtMNMKjRi2YD4c4SGcB +jWis1Yl0IOfb2nTFYtx2VV3E8bmDXL3eKnqmhh0fs9BIx5NjKJvg1AwSg59n6Tco +PC/fsXg8NodfhwA6UPoFEdVQnoXZUEyn6h6K1NJn1tr4S58KyaUvWqxzdYvtGSJB +EMflNvCiSyXnliMHGtIPbXePfS5OO4o7rI9aP5asTVj2MvXdz8gJ/F2Cp6e7+QsS +1qe6YbtkCfoKFioc8v+yYo4tk2fW2OiwcM3pq3KlkJqTtFTcz1b7TuMkG1HiqO4y +MtarlTHduCYC6ZgUNNSnuTWIq45onksUM4NcAzfWajbVz+89GmfEgi2tInViOR/K +ed2jgRIbaec9YwD3bTFI7AXJErT9PqHdLOKFh/iyzhu5m09TZP/sg+J+hYeKHXjJ +fQFU9mdaC9WdEiBruWPKXfqEEegtNzLACrQ0sCljlDRdy2CbW1iQ29B49DtO6pve +wPacGCvGCLTMHWwhsCzfa1X+ciebFQiESkVWorsBv1jhjTEeGzSoXhWVh49PNHP7 +nZLBwlPgRCblOLNTznAz43J4jFoJbgS0Y4Xed8v9hXuLJfCRmfeB4mcGdtoVEk3e +-----END CERTIFICATE----- + + +EUS INTC KEYID B99E979AAE48774EA2EFCA9BF9AD5B04040DC10A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAQO2gYLKFKCTLwAAAAABAzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjUzNFoXDTI5MTIzMTE4MjUzNFowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtQjk5RTk3OUFBRTQ4Nzc0RUEyRUZDQTlCRjlBRDVCMDQwNDBE +QzEwQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALm4jGtP1v9LF9fc +sU6a+3frz51lypwCfk+Q21OcMcbNh2DHvfC1Q55dTzTZwrpq2RQdrZMJLHj9BR44 +NYRI3pIo1FLS3jqiGf+zALa4kHiUtBzE/eJErS2MoLSpVrp8ab8L67DY+1aZFp+4 +M7982BVFmaga6nw24vnz4icsKgzZX56WmP+xSQz8GfVKyEJ28TBL754iZO5VMPrt +6jEGZcadcj9LOcrRSr8gN+TqByLsDzEgfNEpfR1dzi8kCyWmM309Bn37peFDxeIn +Q0NMXwn5rd4IbCfdTEMzXZD5oa/AypbDzqruQyLDXZLM2Mf5eyXY2tODaZcTATUu +9q9//H8CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFDJO04/f38alU27sOGRDk/RAUF0UMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAdlEo +CjJdkHIPNWD7xgmf225WgjukJHd+CbZuDxmonydTxmhmJG1hQALGYMGNrFQGQfIc +cwLkFl8EThsPf1ZKkzNUP+j2xT9xv+3KfedoiZBPI9NPtiofpPitoyLNYNtnAwhe +aesEE94oKIWOIFEqJIUksftEiJwj5n7YjmG0PB736DNQsWciSVOZivkNMICPWEQa +zaS3N3SAAML/CviZud9VQmREzpk2Y4WVy7ULlTyNuTZ1d2TsRx5bnBDYbgAJyW56 +EaZhVpkRV6Ad+6Hljr/LbA2DYfXUmjqjXcJujnj3XKeSwaf9hTj5U4TDaMHkiNaK +iV1Y+/SKxKYzl0nhv3TeBYaM7CCtxblCO5dSJRkmW/uvKroljs+ca+6JJ9BDmd4U +eU/g+0+EPycOy7mJz+TF0mG9INST4bhAxA33RtbOX+ZQ0NPMNzUlv+RvklZhii7O +U0BdhF9sxlNlGO3IjKKmY7ww/IGOrRaK+uUAVoCzuxshFahd4AEI/8LwMcoDL4yK +tAzCV/oaPPY8sGPQG9fHwzJC9h7DGe0rPlRWAi/SMzye3UFrPZrasKv/GZ579jmC +OkE1H3HMgTSOk5a+Ydb/n22/exEFZFmkXS52ka2ZWtZOHWfOKI/ljzKY2DviiOfP +21Y6dn6/jUxW9ooxTQeMn4M1JekCeKWdZ9/sDnA= +-----END CERTIFICATE----- + + +EUS INTC KEYID B99E979AAE48774EA2EFCA9BF9AD5B04040DC10A 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAmvJ9tckw+A/RwAAAAACazANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk1N1oXDTI1MDMyMTIwMjk1N1owQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtQjk5RTk3OUFBRTQ4Nzc0RUEyRUZDQTlCRjlBRDVCMDQwNDBE +QzEwQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALXRkANb99uA7pp+ +quh4pSJhpbE/mJLRA2+4el/lYhgfasZMwMug41KMc8+BiV3AtouVojAoTe5HYdgf +8Nzz4GsZkkYzpDjeEqxE9HCyf9rNerzkABDBcKLxp4CalWQ4nbSOeXTwQazOYjWv +i0wWKhJZcXGnHPAuWA6RzHGQKetKUggOXO7TADHKpL4fpLvOch82nePo1MekoHmk +Wh7fCGTgEaPZ1loGzYHV9fHwmAo5SUFsrvlgkJu/RItelhkBuU5OVeVStQ9NMUSl +zC56Q/R5kgi/zfV96tayhkOM4WX54vKWQPM7VmairqAy83K9fKg0OGITdG8ce/rB +zEJuQwsSORmyxLR8051ZWtjxQ50Q2KwNNmyZt4YsLOJOjRIJBrsnhHzy78cyZxp6 +a3hzMLSKhasx/NY/r3uOvMEBzWMRs4u6SP8nBsO9pwbFAPIkFA8KmRRYgb257dzR +A3tdfh4tfXBVCuQPs6ASGh6qe5WjDDa9i95kXLR8rz98arUfZOibjAA5PlDYGIke +aIHppfWb6zDT1icfJI+oXjy6zTUcGdXFv101hyGp81yTdHhCFZAPAHd9gxIMS2ie +Y7HWj6gl1YV6mJprXmGwt4mp1vH/VoKPNkYCq9g5yULyKvEtR9lL8QFibfK9CY2K +Pj5L/ZOTle0qidzW4GVxU4d15ZOTAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSfjOXvIStzRXAB +ZAUahOITcljQPjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBACqDQ2/4HKhRdoA+hntoZMEU6LQu6o+SxTJQAcm+eDmn +xiTQwsDj4W5RJpZ0+qL9mN9BU6WTJGyv5lAM3TiiEMLOEY/p2yTDOBJWTFTgtxAM +WFfHLhn+SBb+3x4LkT/HgK9/7VH7IdvqV7ACBROiv1Uaon+eHKjM7YZ5+Pw80ouB +JVodI9919J7mZRHjLt3Ax7jM8VAj7clqjm28/C7nDhOH7Vu8FlAuMfMqepS439cX +ZAS8ukuA2AiN0ELOyyMyJ0HT57rqT/AyPFQdNY7R02HeRYsgMN7ZY/UZb+6/egRQ +ugUMZb9fSGPIr1FgeiksF3whoKYfVwNJf5w1eQGhorRk2C+7wof8k3ta8LHDP/2e +fhmH8JNC84zU9I1vjI63pzQl+URRT1PQ6fsKMm4l6yhaDnce351Q3rWVj8ZMjA/o +cr7VJOx1Rr/Z9FsELniyHvLq6rx3/jkIxGOaSmB+pHuj3BqW35WQas1lVeR0VL90 +8r4UdCiLNGVU5JpyaldAw8jJNQd/+HT4n+I8Po4/LqOLIAAIOmxDjXkB82ZiKyg9 +vlOFIJMPZLDWqzzFxo2YWhdUSJbIc7IKZX2HZ5KOBap6kkJZKxkpUMB7fibw4tZ9 +jOGxdThKbDNr6ATLWKdOX+jJcHukJtuDg2KeoaA4dW3ChxpDpH1awBLkU9oek2y9 +-----END CERTIFICATE----- + + +EUS INTC KEYID BB9805E319A78DBAEFA888B45615957205179181 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAASRhqjcE58u/3gAAAAABJDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQwM1oXDTI5MTIzMTE4MjQwM1owQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtQkI5ODA1RTMxOUE3OERCQUVGQTg4OEI0NTYxNTk1NzIwNTE3 +OTE4MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJtgIoPzMQPe8IkM +JOyXxG4BVb7gb6mXdsOoCu3SEOcZeVITS6wtSFAk6cZrM60T6aayu7rDUjUpiHBc +e1Q40Hwt0RWWLa5yJDUZ1FxKb+Wdk6lA22CezwDoUbLwKHAhzMS3p89/uInFYFIb +9WGu67eW7h93i+F5rHAPhVx0An3ZX4DczHsg1H2vzhV1r4IYPsfT678fmY/YN/GK +6A2T2b9mCLEwg/h+b7shdNQH2nljpDwI0C+YNqvKfn6qKwGjwjGj7CBmeAW2IJmC +kdSfQ01t7RbqZIFlSKWVj4e/GUyJMO7UZPW1ur6K9d7fYZRIoAjjGPiuPw3ZeMkX +sDScYcUCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFI4VfbeyWKcT4CHqpmskXPjczzeWMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAgFvS +EGAuSiekS1hQBtlJPZxWsZfFwCmvcVl/pvE1gPHneE/UEGD7Yts+oqfYj5FIhi24 +7/wjjOHNGFQmjO84AXkme9HNk/I5aKOOcEda45bnTeD4XaJLAMV6ZNNMmUoitdBc +SFTbrbcGnw9plI0yvdZsUqszEFrmVf2CqNYO/Bkr3K1iL37E2SibAX/pACLpnwaf +Ykz+IC+FoVx3Eefvonrx4GHJ0KhuJ9PQBUbxJZlpoHaItPgMK3DU+iy376aq0VXT +wcSJs6dY2BujpAj6KKY3xrcRgtqGZWz9K7tHQl5OOZEr9fqxc9KVA1ffLVnKcvbG +SHPnTNAYv7jHpNNPe/63nsMu3COOKBh5qXGZqBmY1eTxRYWdXi2gJMidu3EXpmNO +Faxo11YyyuDcvoe/Dw/vJhTA2y9nIjBV7MAbvh3b3KllSfwJXy1SH7byAtnDbQAW +gy8ft5lWdaaYBNIilfFMHjEomtMmSlH0vm3ZVOznS+0XmMBhWSkae4aY/pI93i0B +PKGs/gw0d1/OmhSyLjwiJN1ivhISSsixI+PeNtlUI3oT6pmwIu2lmnnIFz4HKKma +/K25fgn8nJMiNTvhUGbZPVP79igiGZDVQMA1J63q/+rP3MtoF9ub7Dc5KwbVT4HI +mXq/Eu1D6tf0TlevVij5Ob/PuFAmEAhs50AGPpI= +-----END CERTIFICATE----- + + +EUS INTC KEYID CEFE333390733C6727C7880DFE429AFEB557A892 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAASWvbYh6E56iTQAAAAABJTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQwM1oXDTI5MTIzMTE4MjQwM1owQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtQ0VGRTMzMzM5MDczM0M2NzI3Qzc4ODBERkU0MjlBRkVCNTU3 +QTg5MjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoWkqSQkFPFbxBq +S3k95SZxOT4DmnbxYm8vP1KIuofT1CjK+fkOkXCPmTNKUvtDE5gn3kKdSDUqYp+I +JjHbOviyKI8GbMQjoayR806sHJLdVDCK3u+QIEt3/7dror1qt8dj9AcH/4E+tLJ7 +5MDTsgECG0warGuckTV9PVp2IKCuy02d4iM7+M/VzS2/UuYWuTqra/3cw3E80eUJ ++hYNKjskW0D07a/WGbPkFNkJYoxYmfAjOh+Zs+6X2thsqXcMS/tNXo341HMeXH5k +1t+dNYpsuB8kJ/BNbUBfjspmxgaQKzIXUFhadW8Ht+vOaV1Y3ChIbKXRWsri0rgM +bao+Q18CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFOuxdw4MaTuiSkzl7rafmohpSTJlMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAHiYS +1VMhleu57q4x0M4oWlUyZGwr1IgdFKqKckqKAQxrfUErHvClLiLHkg8EXq1opxu1 +kpDptjx/zBKLAsvvlmyl5y4wqw9K73mP59EqbhZMyhyJRWDHg5S6fXQZn7zqrEec +qgrcH87QEK2X4LtWRVNpEbxxgCCvq8pyfm0QtKQYzmdCKwCRgfZD5Msm1BkhxGHe +LyPV+E8kWTJGAoRJgUtJiFmZ+SD3a2jlGXHxN7LXE/Tc/eB5TMe6tDCxwOS7mavk +cGVd+DtintQrUcvQG6jsAH0tfpbetZChkALPzpn0/K+V8qRF79jcXHY+C/mtI3c/ +FJ4fwuuuL8X9N3jbrlL3+xcNXjOKGx3TW5SWaDbKuc3IRHH5FDYF1jBnh64ZCC4+ +n3QcG7UWuSaXFp0Ko/hjQL1Tbgd5RSvpszRrHMPyX9D8PxBxeCTUUMB4c5ijhJuQ +/8W7NBVEssje2TdXd+YSThVzr4AGjmWB9vT2jNKhSDNJJqnZj5deip9Hj2Uae1ju +GR/jgIXuA0FsOVYefHyGUES3thFmSLB7zP9cDnjBBt8I0KCmRNAuExZdo/DWoMdt +eQzWHKCoQUzcPL5MSev0NJtz0SfO0FWdrJ1lO1MXTYdhqNRMc9S+Kc5bak7Xqa91 +WNpFmOP+d5MyVyG1s5J5rIAguIu4BUaiy7xsC/M= +-----END CERTIFICATE----- + + +EUS INTC KEYID D73CFE5A9E0180801181A1444DE36EFBF88BA16E +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAW4WRfQvFvs4KAAAAAABbjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDkwNjE5MTQzOFoXDTI5MTIzMTE5MTQzOFowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtRDczQ0ZFNUE5RTAxODA4MDExODFBMTQ0NERFMzZFRkJGODhC +QTE2RTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALlasK7KO575EZy1 +AnLAqACYte7eJy+z7LSunk0Ag3gFFkdsl4gqy8fkqMSi7eC7M74RYU+VaPR0N2z2 +wKnDbwaPUMcPFEBWK8UvmtoAgPMThZ25fv0Q0DiGWGvjdJnJP5Xw63vNP4xrAtnE +X/NL50sv/qNRFb7wUBZXFXP9uTsmn1wdo47anGs56dV+XS+q54h+rt1i/rcJlzfm +NdBO4x/ypA24Y0OfZ0/sMvAspfWZIaSZ2CAUebc5pZWZTPoSIzt8Pl0jVZVdAJfj +pfsIj9XQYh/M3naMM+kmKW9bEzT36grwrFZJ+KHCJGzTJe1SyecAIyJ88C/HTqrA +sRp5KycCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFBX1K+JicCI/w4d9cXBMvvGbddjtMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAEy14 +6S9qljBwVc9259Sc8izzfwXTwDxYmtt7NQJA80KxqFodguJwfS089Vb6Kw/fOhLV +uHrIN94Jt1eXLOpo0j3qikqZB7qkORy/DjsRKnzfyFmpoAwOUZwgmMBwPUDS9fil +ilS5gXUKxzGTdjzbmWJ6iq0N2Re7LZ+xZOmQbz2I7+nOmlBTaxPh1IWpn/MHusGW +4Gn/EwpTExM1OL7bNKJYRo2HQrlDMm8wWSz6rNyWJttArlYZPTAmjGvNo1nxtQnp +l8I9dR6I8LwnAXw/joG7CGmMV3xVZjM33HaC59np30MaS/4M7k05HHtYr+DjMPDs +sAJ/anN7vOYoNK9x+8edYT4qEhZMgTC+qx9UUZ77sk5gEdVZENdLvfzgzZl9i2Wd +pvRms9AGnyx3pcwrLPDs1ZfiIeqewJ3IfYabkvConSW9iprMkyVEunubtg+91tnU +m7oDkMQicp4uNLP59jBZoo89YH04P+bCeytrSpCDNU2p+Ao77XRF1VA3ERLItU7X +9Jg8beIK7lyKhOp7XbVK/eEszlFYZaNS08iwOCtdE/qKHT52U9XaLMrJt7kvfc95 +2Nzr6UTXO5zZ4DsTXJivJiKdJRgbf73TlQy2tthTwFvno6sP1Of511FXygWD0/Ql +1sj3DgOrxXyZ2nFUswZJc7rfukFFPCkCy1R1m2U= +-----END CERTIFICATE----- + + +EUS INTC KEYID D73CFE5A9E0180801181A1444DE36EFBF88BA16E 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAmws9mj8kuDmPgAAAAACbDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk1OFoXDTI1MDMyMTIwMjk1OFowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtRDczQ0ZFNUE5RTAxODA4MDExODFBMTQ0NERFMzZFRkJGODhC +QTE2RTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANJy5bw/RP3L62ig +2xgZD6du9KYbrjJAM7soQ67/WhJ4i9GV6HFp511ly07n2WQsI+zTtGYGMiQepdTS +flAnfZASgiUMeoe3vQDIqY4fu74gpGjGV6NiFSBbgquZcWJI6yza49Nj8lY+Swhw +oaHNtcw0muls76rGXxoj3rXLYtG/xqcokugE6e6gF1bgAZaEeNcETkqmM2+0mVBN +NSfcQn7GTSZLd8GfwnL4/vCh/oGRMegAOo7Xj3CbexElLXQfXsz34BqNPyB2pd/U +dbGbS1mDwnadE0J79Mx4BCsbHXPk4Wa2wH37cU6XWQqbjKYF2XZZCBLX4nta1j1Q +tIkzG4ReA+/JSMA0BpzYydbOhADoOaLUuX8wlrAZF8v9wyOJ4IIf8+aPuvJV2Xoj ++BG5KrRxltwjYA2+Eo4TG34N8FGwZQhg7NWgWQMR75COFm3LHfFncKxE41l83O6N +oUrqVh9fizYV7B2Qx2qbKfpAUulsOQyXSX1TtuLSYKOmyudb2WwstGhHaRRJu7nt +mepPk1wyTjk0/mc/IIzdBLqrgAX5voa/5Rim46jBbNuOfFcMElTuMZlpEJdK1LaW +kFX5GSXVjuC9dMmNXtq0KRMDjpEPHhAs4fjq/exzJBG2X2FQ+koRHsfr+j3m/dUl +UVZrmclZDKfeE3bskLwY1aaCAvwrAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSz85vups9Npg3X +kbPy4JA6X3LYmjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAGFRnEpAi4ywKYFaiXtsqgZDupLMSyQBWoluWgu3iMTt +LDEKwTZOAF4AEdCuGWuAgczcWwMk/WdnRnmyJn5eNeu8DuqDXF+EJ8tMflOW6gkE +7R5iFBdoA/WaKXNdCRDE+jT80FT/kD+l/y/v/DpYTkTZlYuQagLgLqXjIJLGj1vT +4tQ0QJFq+5EAKiZ9qFgIQFEvBIoNWti6dFUW9T6sGS5vLSAFyERvNE6x+UX//jaF +0wzwvmLQ4BF0jKSkIVQLIeG8z0ZhjOV7cjg3lKCR/tG6x/280WJsqakoeCYn/5vO +vlAQraaEBjAyhzlw6Ek5nsd0kpaW6H75qFD3QcxOS+mxUq9HhWkDmR33/vwtdooc +WniFBIP8CExyO5C4gNtY3W2pI+lTc/GlvQe0BDhjmDHfCYsgAei9bn5J9GEEp9hz +uy3PiBPMH42AQXsBybEh98BLje9f39+2HUzOUn9pC0hUALyC5ok2FPn2dJuPIcH8 +5z5Mpw60VMN1xC50h1UtOpxL6OPEQXVxoNkg6ADEqq/cnWl4YvOlx/TU095w55YA +Wm4lVKvIz6ilo7aL8WWloaN+ruxtYY3YKz8YPd7DCrEt0+5D9f52gCiVK+dHGcAk +4XukM3+af9VHSTJZ4S9gfK14yE+rYNmxj9MJl9cyVaVnoIb2DYa85qwr7Jc23vSc +-----END CERTIFICATE----- + + +EUS INTC KEYID F99F207DFC8797BFF90D641D25FD5A45F76310B8 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAGqjH07qY5O6IAAAAAAAajANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MTIxMDIyMTg0MloXDTI5MTIzMTIyMTg0MlowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtRjk5RjIwN0RGQzg3OTdCRkY5MEQ2NDFEMjVGRDVBNDVGNzYz +MTBCODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALXzy5moh5thA1Wb +7zGaLOGahwroG+Bfdxk/J3Ed5P3yonllAlJ6rEpw8/F/4TkY1uoyJh4GAxKF5BaX +y7Ibx0ZYL8ZYsy3GMhB9z7WgkUKtq9arQbmMvgKBW/eEolt8njJawuVYFntPV6A9 +nnLulTEXM/gP6n7KkOOoXffnj17fwrUh52odlGWyPpGlobPOUQvYzZXTzIZ79AuH +P03yXZjoHk7QVJ0z3Xid0cxWD6mUY7csaGOB2O0ZF5HuP5GYTC9VWyfFeSo2PxVF +lzwldkN3Sii9vHH0NYBosiUn9JvdpDVv89X5+pET0RGE2L2ZrrzYS1nxOok/r72W +nw6TQfkCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFOasLuA6cLa16YU5scaCUYaD+UIxMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAAxVn +xv9XLvIoKBvIFGW8RFZjP6Bua8A8f8LlNyBTEsoFCdBXgpl13dYXM45ClmRdBu1H +pTHjF6Ms3Pc1X0aEMoiICyPxSQpPZbg5IPrSbsuH3EbYMYwSic/wUqbklUttSxeN +Z/qrDR8ysuAcZ8urV9mmyPRQW9N1w2m3m4sweqV/c6Uw7VYLn/2cd5qJ7W9RAbRF +gKVvpB17Rup6iw2l2BzyJDJUqCCWUXkWb5QdrapgjRXHwzWro9UOlj2pynr24uVA +b7r6u3OAHhtQoYoe1pF7/GUqQYMwA/FJ55+RNpmH7ldmUWXUdVxw8u9rnuwCHkMt +vOWlbgErwLys+tW+6uCw/LMmrFUIe+w/mgmr3RuyX6Up/ry1LPwEz4wIBlMcBt2S +w1Qei3fOHpNawCx3eku1pv4DOxJ0aCByLaqfSm+aN+xGMkXC5DeQ5rXIFDz0WX1j +yoGjZl4YLYwLJDSri7NWbga1cFAbeIQutDdMT4PBFtq7g9Uf3qH2Uu6b7JuiuhFt +W6qxm/LwiRk6ClqnpJ48ZOuwBPc+QOhknychSWORtPAAeLhLuqWyAHZlM4BtlWlO +tnwEcihNKDMCHA+VGpMBIDEk4idZLkMrswh0LpDvQyIwZXLsWRMaeIMnAEfzTRAg +YUMhjCaAR/wBONp9cLf1Pa9HEehZOGeB1sNYNsM= +-----END CERTIFICATE----- + + +EUS INTC KEYID F99F207DFC8797BFF90D641D25FD5A45F76310B8 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAm3fuaUlRccFZAAAAAACbTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk1OFoXDTI1MDMyMTIwMjk1OFowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtRjk5RjIwN0RGQzg3OTdCRkY5MEQ2NDFEMjVGRDVBNDVGNzYz +MTBCODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOsDql4x/x+P5gMZ +btHMM6bCUgdNaQJ7fA5FylL5YoX7ltA5q+CnmNhjHLrzSY3EdsIgpTdsaJ0IXe6Z +wULSLE0H74nUIi4AfaIP2lreJHr+kRur4TivdWJJj1TEUhuaszsur125FxgEEtCM +Ajfwwmwe0Y/SjUUJCl5YxU1sxC4nuggIwtTB/Wg6bZ3ORZWNrVw7qxE9VTqXc2XY +k7xsIrvy+DMEx/5wJHrmb3uEShQQqy3RTJlJUxQWe7fuLVEztna+tRLhQ9JqybXX +e7gTAbRsrIhUep0C/aLx0RmaDqNC7QNw4t6+XeL3du57DMBX/7RCAm60CHJxztqw +xlSHJtDn4NF21HSOoDwQP7a9gPStV0lqbjk1Q+xqqPQ1Ornva7tqbVtbgCeMlLXZ +VIXSAhwhQUKPp6c0P5LcSV4EnFY9Wsl5TalONgV4mFxegvh+FHuRCq7WD/KvF7iF +SErmAa9YxEKejsazMo5lQ8kEiS0t4B0zpz57sBEvMij+30JEoOiekIiT78uayfvQ +YVVzPioUKGhtbYpC1i6+PsdOd58WQDdep4SNeZdw4sUCBiYBd4BQ6YB0UREIs1m6 +GEPez5KTZzb/PaVvizbgpH9DGSoUiCzh9rmVvQYHrfW1mYP8q1LJsc86TARhY95m +H1pkVeaGPAa+RZaiY+0E8zmsjT+FAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRTK86uZoRzCmVH +9oej6ur+HiBJnDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAD8GECeJ4fKONZJr7Eb06S6v5rTSSr55xueVCMoS8NV0 +1bDFClu7NXi/sgsIlbTDRWlj8aIWnTwdFw/ZnpM34BrDpmG8bU55yZHgCxIOStB1 +xd2ONFA5m4eqES6WdISymZhav/ubiqymTuM6IwORQ8I1PTNPnMKOWrSrRdumrTR2 +IZITdNC1OAQIggNgouXbNRFeIekNja2WRpypoToiuwmUrVIOldokncUtfF1yZZph +nj93ur0Q0BcQfaZdsKcMYKVcqwwSpX50xOKMWfA/71l57eX6D6YStr/sae/AeQGu +pNfSVWwKsg+q/kBsQOU59SmPyexCaddlVvuUOzLnf0KuWyRIJNVZa3zZiAbA4BcN +hwUxb95f8MBdj4GI162x1slREbeowqFR4YM5BkTDyLZCH7eRWF5UhQ0Km/m3AkrM +S8od/rDQkYKjVEgBMMjbbVJnn9ctPTK+StvP5llvrkQY+UcJvmmwpQ17XfCEpPnG +eew6HSqdub11RpPui6Q7jqnODVni7qwmSJE1zRay0N/s0iCYV7b0xEublFzZjuaX +D26L4hwzJJnC8bU1b6ZiUGjvaTTM+aspPjgrfRlOUIyKM/2iABioZZec3sOy+edZ +2R8wYIg9g3twR9Dw+TfRQmZrZMybQNvNtsQnoNngdQ7NNbukwOg/uknnmGCmvHWU +-----END CERTIFICATE----- + + +EUS INTC KeyId 0FA7B495048126120E12731606776F3D68A037C0 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAD5lrGsT0ZkSDwAAAAAAPjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTExNVoXDTMwMDIxODIxMTExNVowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS2V5SWQtMEZBN0I0OTUwNDgxMjYxMjBFMTI3MzE2MDY3NzZGM0Q2OEEw +MzdDMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALY7KvW132KuoR39 +HWpoh+enn5TuUdl+b2HfU20iReZJwpgBaBxA6CtY7yU7+R5zQTaPGHSqrd6YF4EK +MuraqIpSN+PHu5hY0JPV1PR6qC/KlcmcQRI8XNfiIRBgvX7yvireFn2tfUflmFW5 ++g/oHq+ZWBDMdH0lENv78ZzOu4+Tr1fvUK+zWkXM/pqBnYodkmenpgWf27rddXrq +CIWxjPVtjK/+O4seg63q2HsT69wsxj94hbHlq3ZF792Dr6QoOmHL8Ic2VMPXapes +9vgxRiXC5d1N7wVQuql9sNuX5JPRK6OE/pCHOp2VZH0fol9mXx/NCCGiXrMM3+aq +hWVFyl8CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFJTBdEneydtC/3G4ZGjITtepUcqCMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAVNOj +IokMCDlXnT5pkEV4e/uZYvgsfiY/o1c8p6g5JbQ+AoeB5udLv87HzPO1dXcKHn5Y +bSey0VInwzTat56KZ4hNM2dGnWAOeJHHpmgqEfhj+ah+09lh2e29fuS5fmuKBYhq +bcFwGjh9l5J/I9f7jH2K3U/hxkHcoJyBvriCtYAsMU8OHr3VkElXw312gjPFEeSH +K54VWjPkY9CDL8DZMi+hWgQI5iepx+dpD/ZQciAe050ShaxsBOCCxSoEvD4Gath9 +tw1vG3jpH75DqPrDllqKHOAKg9w8floCYwB0n1TCi+0mVtnRKLZGpJZf2ezmUsOB +vgEn1ZYgmqyc6iZM5WjFph8b3ChpTdXHJ3bx7Sj8UB/eBby9rDGXxDOAhUcAEMVO +qRXABS8g/pQrbPfIozxWXSJWWphlBEX/QauTmpp6K09yZohM7ucQ4M9q2+3ZNDFU +M0A+7oZmRkBvjLUN0Zeh45l6Du47LGIp4tCWhn0gMS02s8U9wno8wFwne8rCT4Wu +UxsY2m9zGSfuuMeaL2kBZeWBjiJ66H05q5ew9SiseeE5U0a6krkc5o5fVGd4hDeI +Dy+Juu/fztvkAs4YQoNawRq7wd7m8y1grxpK7/TurKqLqVTKiV7rXCswsooL979k +RMpVsejowG9BjnoPy56h8odpanki9XDtLMotq2c= +-----END CERTIFICATE----- + + +EUS INTC KeyId 14092B5F7814EC9B713E9A9B90A4C519DF08E688 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAEe8NnwqbYOfyQAAAAAARzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyMFoXDTMwMDIxODIxMTEyMFowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS2V5SWQtMTQwOTJCNUY3ODE0RUM5QjcxM0U5QTlCOTBBNEM1MTlERjA4 +RTY4ODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALGCVEHmjf5IeJ0I +1KOy3yTciqahVrWiq+TQLNKmFAFCNzLBDZ6o8IvsVEQzXYpycoibpnYzVSngcwMV +d6TAySgMDu0lWnzy3TGufT51OmxyaH17UGhFDrxAGon7JAxGkHAkLtrVWpupyD5l +e+wUYl1U57ellGp7En85H3EtleSZrXgTyWnHBYY2XMa91tfH8GC/evpYmbfFwxj7 +rmMyd3en3pJougiNQ2V4njvadGgIp3ZFTrx2XwFGBsKlglMz+pkFU3CczQeb+Zjz +qv7c2luITcWlCl5Y/PqFQl5iyRxafhr7Qe1q20SExbMLJr3LX057ogsWNO7xqWyn +6u90pWsCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFFCruxTyDEx1ZoYLWPW/wJnA9RmWMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAUT8B +kCuz9Ki/we8FzHDypoEmX6XxuD6PBiMAB2WMH4weXc2sMx2BSDGPvprf/BXgaRTH +oXEZV2MYzLeiPVJPoGoiG6rSpg+vld3mz2w0+Tr8vQ0zh7vUPJNGrzh6EVsiX+cm +s35aLVk622yUePRrGkP/YOlLJdeqtVB+6yzQv2jQ7Fn9I9XhGnlU0xLwsuKA+sLV +rKa1ZQGTfl3wZ7D0Klej9/1YBiYtuRtv/2b7skUHV8s/PuwsaTUEVxPbKaOE6Lum +x6H+6YvFbAhXZIRckp+nNmZdUrX1cylpoMsRXspvqvv4DgTjNW23Zv2SrepuCmTN +l4of4jt+ciBRzSMf9Sx/sXioGdbaWCTMopW4noLJfte6SSyNw0vBR+HIMQ07AIAp +7QN6pM6srwPttj+lnn49sa1cH14P3Wes16nj4igMHpDy35jFsxYyziebdZmFznNs +IZN3v1aGgME/7+i2Uv2jmFy69U7K14rQQRujVtx/zUhYNdReZAoJ7webh+pwQ6UK +0Jv+EhZWU6td9Hlaw4DdS5EamwLDBs4bp13BGuU2bwedBFTpgVPbsXUjadOrqdmU +jh1y6aIlc8K2TNQn3bjhdcTMgkDr5Qgkf2VduQWwXWjDnE6u/C7h+AiJfXnS0r/S +ZyvG9yPf9oWRJYXS7WEykF/ZK4VWgHmHgr2vpD8= +-----END CERTIFICATE----- + + +EUS INTC KeyId 145126D0FDB53E99907D6FC6FF1B90455B9E324A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAE32aIQICL9eBQAAAAAATTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyM1oXDTMwMDIxODIxMTEyM1owQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS2V5SWQtMTQ1MTI2RDBGREI1M0U5OTkwN0Q2RkM2RkYxQjkwNDU1QjlF +MzI0QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANDSCb2X0ZBntFva +g0s0j9OQ6g/hJ0QRDUAdPJeRpsJYj3DnBo4roTRFapRJG42/IOWWRcTkysQMpWK0 +up8g1msDntgKbIkSQuAD4TOYqA+bAoBzKDw3Ql89+RlbdCnLlnTqjK4nlG7R1sVv +tl/f/bGPksGoYjXB8gZSGk3NxQkyVoHuUsk92Tsp25NDSTfPn71p7jU4CBHU7fVt +rZfsaa2TqYmTQ2nvOeO4BP35OjZ9XHqBNuf4eH7dW2J9dOP243vLtLyhf1y8ewxj +vPpS8Aw8e1mFFt7OUu54Z96KBt++DAkjlXDbncn9vhZ6KZFu5h52KatP5AxpzLmy +gLJ3W80CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFCKlwuHQP3bD5+gETLbOc9iQA6m6MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAJIpG +LRosRQq/h8Ya0GKFzej7JajGlecboFRt/zNnB7tl5hqGU1Vf+rOVw/GD/x1SYyZc +PuHSwiVxwQx8lVL1G2ydp/2t/NhUe7jRPdfo32/ukBaNDOvJ0uB4wLc0Mu5p8I5K +Tcjf/WMjcxZ+NMEEU1+01eRW6G3dKIuoVgy3LqzWJ7Ka9JB91EsBkC1PApicN+Jx +Ihs1kBeFZHY0YD8AG/fQ3X1XoA6GESoBlabB0/c8+eFftwnvTolsp8kXqXrIpmAq +s0rmloHl1TN2W1waIpW/GCZeyZz6vM2zvlJani5CXL1ylblgcKauEWkL9aQCgQXT +sefsvP6JgjQDWeK5hl1ywYOzN/MxzyLs4ke0rNeUOsZYcOC5PItPK56/nh7IqUps +WQuGFHlMktd8B+UqPoPz91jTywwYqB86adYt6Az7pjq8zKexC/fASE1T5kMc4L/P +/2dbMfvwg5uE3wSYkNDjH3ScsribsX7CQbMVeSL9gkUUShtLIj+lnXlFQxfAqkL/ +jmoZJT8ArvXAeWM3bDKCiM2BMCKhdFDQSRlh8f+M8DtWMMyZmp7MGFsP/JOtq99q +l2C7B76kg5eO2oLmLiYmsF7yU8uuoovFv8KGIO4oDw0IqwZO1rCHuJELSStnFnWb +QGBnwS2Qb/IQREeYJgJoKAD/7alTGSgPPCmWMQ4= +-----END CERTIFICATE----- + + +EUS INTC KeyId 4994C129F1A548D488586F22A2DF8603739B3BD3 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAET918QcELhHvgAAAAAARDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTExOVoXDTMwMDIxODIxMTExOVowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS2V5SWQtNDk5NEMxMjlGMUE1NDhENDg4NTg2RjIyQTJERjg2MDM3MzlC +M0JEMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJSBZIHbSgg3i032 +Sgs11OljWxeOu4But/MWE+J5LN3O3taOEUzxKphAIYYflMplayW7gesOsb2OJfD5 +YMYojqGMITgGEhuraAmPBbdwkOuujb9q3zo7U2+9wi4APFjJ91LdhHod0goywz5S +5D/0jTGu3vPw06j2lWMjXc7TWre5yban4wUo7iiuC9gl3aaXzjmtDx0IppdppFlL +H4GL3JrRws3EUAexf3noXL1dM1RIj9B/R0qYJIFAmeZ0N5YoK65iygLlsu90zbJ8 +y21h8SKaZi8NRhUQjcFMCYBuVMuCFIpMbhaOWRXL+zSrPa41RTz5MeiIK63K6WPR +8Rn38R0CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFJtqshoymT3a8pmubGGtyor7qJtWMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAdXZd +j0PEnZhwDQo90dj2XuFJRWLHIqylKNV8tB1C8rkJOKR1plnEDZFDs9r3FrAoGazf +r6dmTeZsffgfm1pUfitKNoeSYnoNHkzUyloXA/ckOXHidGZPUO2UeTH46EcLhFRi +VX9aQ8GOUJhQNBQ5XWIFxu+kifD+iv5/4SZ/7luSlzxaQZewOXZ2OcXQf//bK4Me +dXfhq/6bKZqx4N3/ePqIs1bstxNSgq0gbjtMq/eTdfnYK8wA/v+SiERKiccbV/K1 +nzbrkrWql/cv9a5VswPEXPXhsXXTXD4XUthdpb9JGHEMawMxHCb86yqeM0bH4z2t +nCJO9agcjLXWwy6XQ7gA5LJDF9HmFX8O4EXH4snShqzESRiB6nIzJRNY8qArCgZe +ZxW5fczFGgNgiK8pbMQpIzPk/nhFKWPN7P42dtKsJE2xSvOrwtSkvVybBai7eGmi +aKu1onCgTii3rYRBqL4E8pPaCE0r+9W+VqwMvME2dmocIGi1vURAPGnTTouNSssW +5Wsohedpfqwc1QH5sJjOMkwtu0OFN3XMdZ+oDEXL7Ga1NFEjXI1oToTZJgUeSig0 +3LqoJqEOYQngX1pa4ZMm1DfSdyYNoVPXtx+1mbSIP8OiSNzoMvLV2Y3Z2QlMCGKn +Eqe2zpePod9HNLVz2QYILAtBPTGR21WYDptWGmQ= +-----END CERTIFICATE----- + + +EUS INTC KeyId 72750C52CA3E250E701DED65CC69204494A8573A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAEry6QOa+4iLBAAAAAAASjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyMloXDTMwMDIxODIxMTEyMlowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS2V5SWQtNzI3NTBDNTJDQTNFMjUwRTcwMURFRDY1Q0M2OTIwNDQ5NEE4 +NTczQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKHbVI1KG+tpC+F5 +Wt673uDUd4i3gCJZZ2nnSA+a3R6DQFHc9ZoUcmf9Gol5U8IiwRaZYFLjMrL9/JNm +cU46cIhluTp6/CgYtem12HAqiBTGpesSMI8ZeISBePiFN7mqRvOucwei3gsqMuva +Y7kGQMbJOzDAAzfqNr0S1ZFYXkNJepATbFuMGgXLlfl7FlT2ar9BAscZf+/207Up +pUPd01D2rfPbiFrC+2AKcIqAbgH5njRRMFdooNRYXlpWhlmQ/UeR/gz3FnUsCOCA +araiAf+zA1PzoZPenE3MpHrkJ8lEWmQ3UlvFmz/efMYfN6wKNXYuSl3ch2luvf+x +d+F5OLkCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFFvEgnzMPJGA4OXEF/tWRCuFu5dVMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEACTx4 +iZ/bFe7QBMc6q+t6z5EbzfmqkTjF8EFZVLjmwHOjliv/HdHVMtc9VtkjhnP+QCHa +GT68p1fD/EzEtiX8EfmEHREDkI9M8s6Bansxk7mPQSIO7TyXTZZVLE+65BdY4xUX +LvXFj09rdWDeu9bnu1Brgel8kOi+d/QY5fAx3cNkiWyR/NEKKoeyUg5PS82TwTuT +FTvoYL6oBgwFrPEeaLYz1ogUzrguGvxgafp97bTIm3G33yVTQv6+2hTbucDBOAnA +MmoxdtLV9fq3ThUvXIi64hVg0yGpuxRGKWtGlT94/7XF7bTowfgf1PplZgsADpac +6R9WVTqR5w/4yXCjE3bzzN8Pf5AdKG/9pxODxqJgxk5dT/Fj36/RMcOPrJ8BZNjt +RccqXh16oFt9Y6ROnbkVdStWqBaa9KEBCm/Dr1LvPD5km1obn2udZal5adXbpRu1 +xy4u41vZWs/t7v8FJsD4/NEixHxDRDolb42iBQSDAgwgUNHRmEdk/ITbLZ3ZC/fQ +BBZgWqvnGrC0WhWWKId8rNGgE73fKydOhOhYP65fxpATglN1lQ6j/nj8DADrkC3w +s+2tLBikHOYV54Y4pR9N1+M6KflWFdqQyLYb8UPzH5zogdJOG3x8TfCvIN2r0Nae +tHw22cR8IACWqcBDFUbtyn9Ar+oiN0iRxjaOxq4= +-----END CERTIFICATE----- + + +EUS INTC KeyId 8E1AD84693D5D89B1472CD8F999076EDC4115400 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAEHcqGIJXpg50wAAAAAAQTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTExN1oXDTMwMDIxODIxMTExN1owQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS2V5SWQtOEUxQUQ4NDY5M0Q1RDg5QjE0NzJDRDhGOTk5MDc2RURDNDEx +NTQwMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOkh47uQVQXhO7VT +uUBsMapiDQtHJRsqTxlrvCcPO0hvMwz5Go2yeQgNnzQhWn2rE125KUHa+EaiQGNH +J5Y5Jf74HiG/xX8I9uiJ+9vTBO5Kmjqb0qtV50OppzG3acnvvRxSnNrNs39QX3+C +4/z/TESZwEWC8/8omowS2nMonE7tESShaUi4izBtnHIW0wkRFsVznTLTiRMUeU3A +JadU7RXYTnZNJEoH7LrDFXHYY3zRs+r/VB/LVd6frHj9bgzxYL/tgnLEf88Tmql4 +E56oG2ZRK6ArA33Qk5KrVwZrMD+8lXZZBwXzn9MQqzr189Bs0oJx9JQGn7YtVmCA +NEOq9h8CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFPc8ECss5t3rccoGvqSoyzD8RnbhMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEANKjD +v/HCXKAtv11jKwAPdJbWcX51nbGYO2BSqMhCOVw8VAt2f/gz2a5qTeJ9OEwTv2yE +rcpEaKQhwfEEdVU6ujVq9ROfKRNLEVQHryMNGDeEc2uXdEt0ORWkMJn0KYcYMaTA +6aX1MepHfBomuA+2IIYn2zUXbtJ+Cz7MuNyYPY6EsNhZD6gDHouCk2fGKPhfQ1+9 +gXK4NuorCW9aOAlauoV6fOKf+aNuhAJxDmxRUB7jq3xuhkVt/SzhwxL+5dE7+epW +LdUk/U7nB+8y1evre4v/xZ2aEeF4NT/YQHv/OMGSdRYyRIM5Pa+hpo50ugIiAV9l +Rrg/CVy5TyOU4lyfshIc+4A5hKAMvHyfA+XleqZYZLbE6twwuGJH+vGR7Jmuza/l +Inmnvle/rRcnANrJ5JoLedF91XvhFhS5E5PPS+Y2h8OGz2k0mKiY11fXRjdMQVti +g3KJg9jd5p6+xZ1YXttFMZnwX8QMxxPzk4Gns51n2ioZRmb76CgoKRQdVFur1Wke +POgHQqqTCMOjdZric+XYAugcw+exon8zq2BlG6ll/xYxphMfISA8H5AGuv0K1bry +ExRLDso4l3wOmZxBl8L1WOSzuHVYlfedxbFIiCFcC6lkaBMTcH1Aybd7MSabIcVR +ZcYPwI3Ty/teHn1Xi8DQJf/qCXKdLS4pg8/s0Sk= +-----END CERTIFICATE----- + + +EUS INTC KeyId BF9C5C6FBF80CDCE74ABCD0E0E6004EA022A6606 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAFAzbiD6Y4QKiwAAAAAAUDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyNVoXDTMwMDIxODIxMTEyNVowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS2V5SWQtQkY5QzVDNkZCRjgwQ0RDRTc0QUJDRDBFMEU2MDA0RUEwMjJB +NjYwNjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKttX+wXWqpHDOkC +4dWXht80fd6fiTEvZqRjtsGUMb1ceXCVFjPXda+1l+MG1qrg7mGJT0qRH5EAezpj +O/SgS+4bT00WWDDq3Mcugxmk2tznKBebfNUzGgsMYP03I4SVJ45gqCkt0KjdYcEw +agpEPbeMWDxJ6LZgrUFZJfDlN1X74UHo7tr96lZmsZxy8ni5bxhbZ+OsiqQAR4zn +RUV05b4eET7LH+mIqyvL2JNHKAgEgAv11awLxOTD7POw5XDVQ4+TnZuw2o+9zbSV +Oe9lyXdJEykk1m4aVGzA6MG4QXn3A+Y3qKSjayAoHFz8rZrutOoRUZBH2C3miGzL +pXW8Ci0CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFDb6Pl4eRSn7KOQWGnAELjAQJ3fZMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAOfOw +ObTJLC2ewPQu4yu7v1xmQLAf2pwsjTpLN5JUX2D/7ApErztVB4rMtPpYvOMhcT2K +V95J/S7Fa6TMUD8ieLfmngX5sVEHcRRD49KGDfF6Tt7V2SmNJvp+wigf+CopTMXW +H75jV4bXqDz7sCzPohAG+hN3HGZIUQQDaR/sOB5csuP4nx59RpfBbutmjv004HGR +7ckixmMkdyluRExw/VSFzq9+1dXxeio/SfZO+ZF5I7JLMbxA0ZIbZoIoH6xfrtBt +kXhT3SakP3I6MSNphvIc4416pKFNerrIhICkdMLRr8bYkoHCwNW6zsB5gAA1XQmk +Q6N5pEgGbSuPeRDan32OxFy3vzbQzBnUbV4pfok6KbWNTZDol7O7usAeY+vpZ//h +Siaq5uNfHg0R8ItQAH3xRgnuZBEBUS1f3GpRJDqg0TA9OgFJHwhf+0CyyREJ/2sl +4KdcrREVfH8rzVp94/8Zhz4Nr+uldyvkOWT2UWN5PNzitRDKmtGnJ7WvlFbt6POh +/u6zM+awkEp4/hWCHl6uPT5UV08zyNMctWCIuwWXDmKxdXcL0MWhMsjKKDLctP7W +MlMH4q6t/2J5VbUY2d7RyFbFcpR5h6Nx0sE5kX5lyM5s3zOKEMfHqGXSzSWatTvX +dslTmIqOOa6BKlRXLe6nSftCAwe1b7phsjPcMEo= +-----END CERTIFICATE----- + + +EUS INTL KeyId 145126D0FDB53E99907D6FC6FF1B90455B9E324A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAADtiAUvFZn/F3gAAAAAAOzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDEyODIxNTgwOFoXDTMwMDEyODIxNTgwOFowQjFAMD4GA1UEAxM3RVVT +LUlOVEwtS2V5SWQtMTQ1MTI2RDBGREI1M0U5OTkwN0Q2RkM2RkYxQjkwNDU1QjlF +MzI0QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMMdDmxluQEqk2Sf +V0UF+9fB+EDV/uazh7cekCi6oQ70anGZInuIynibRoL+G5rvM1V04sdmzZ3MTOa4 +U2Vq1unCKo3yMcPCDWCTWip9C20yp4JuKtuiDicDhOA6WIjVdgkvU8pxy3op76kB +xOeYnfic+eUKD7i/mzQVlAom/7jcBWAXr3iVYeveU0N9SmSTfl5unG6KZ8xKjeF5 +hVIawr9G+aHrGxlaY4GI4qsZhLJVCyOHrpEn5JfyZcGlB7uUU84wQ1MLCkBiu+na +UrMfaXzhA4L9Ane7S7ra8QcLJfgGKDGaE51UKuzTWntP/bQatgoMzjTWBwwryykl +U0XHcOkCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFJi6GyVCnPw80qYmtd/zWhXvBbalMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAJ0t/ +Jx41HVNSMBFe3mzjWCRSBxQCaHlRCLkP9mZGYoVX5SQGUrRK56ubnKAd0GlJGWP9 +rI6rDrbmH7kWF4TLpfVNb22teJm4Q4gWBHxL6pWX7gLbe5p7P8PCnGTG3MR7mAsp +qfdzGMF8aCBEA28baVZsMDzKkdN/In7pVhZ05vmF/QmMG76KvvJEPYcMipOLW4Ga +mQRLA7esITLTryEzhjgY9QvJWILC/h2ogDViFFOYL+Q0epvxdjoP2O9hDAFp59CA +KO8hAMsYDV6YrFNbdoCCyedumQJdssZJnYBhaGIxxumAZjNmjSLLb4PHq20n1cG4 +H0l8Tv1b2q1pXNqIXoc3A4FLirKpl8fUTX4q0yA5k1IzIDx37hNSNP1j1k4GpSSH +uN6qUn3Dv7HgOxLQw+v6STxnlA0nMYAMLkYUlx9Tm+6vcjgtNmFdkn7YxyJ+YeNJ +wmwwFJFI2d/D0tC3xTgloiJkO4s9/VoeW3PjYZi3PLxNnZo3LLz76ecrSYp7gfqD +zekYVtBSk96vsg4tACK3C0fkyfZu/hlXsdS7sPw+YUxPb7V7R9qafrHU5EA7OOJE +nBK8/4YERUhoMeu+7dGs9PLqD2MpZ78D7uAeebb1mLPX6AVWvhJIaPdNXLio5sxn +gzRjcrSXvEVsxxoHkenZkdQlY5i3SzUhs8WNRzA= +-----END CERTIFICATE----- + + +EUS NTC KEYID 08300F43A8F4B8C8E624A4F7060CF59E745015E7 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAGtKhJumYBl2sQAAAAAAazANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MTIxMDIyMTg0M1oXDTI5MTIzMTIyMTg0M1owQTE/MD0GA1UEAxM2RVVT +LU5UQy1LRVlJRC0wODMwMEY0M0E4RjRCOEM4RTYyNEE0RjcwNjBDRjU5RTc0NTAx +NUU3MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvoWKtWSo9zzYUZbJ +xWgfUDhOyfwh/y8Wiu2SQq+W7cb9ocza06svQi+JDvxAWCxkMVv+cq62G5c/Dagg +exbzDe05vX/utlwHRSzTchKfKE0Kyvnpfp411lJFSGldPkXlmqYljW7mGMxMdJ9B +Uzrje1D+1DQMCkxsukO/IiizpwpL4gqwLk3iALff+szSChJGPumeYTa7uq++5FAK +d/xWkcSi3HE8UG+ah2GF4RRlJbMxPwAtlNc109Nr3VkTCQMI2g38+mSsDooUn7Sw +s669K+pMw5rUeAZA8zOGxloXhABr+786wxcATGDJ5qVv0Pq8Dc9gHnAu/NE0DRAc +odXxowIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUKgXemerGcdyrvJdHyvRnIxqW6FswHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCcU3x1 +FmdC703o3cYARTJOtKtElfUZA40FhvZfxIgqOOfJDCvKPs2g5pzQhp4V3uhwperD +/5woMwM6PhIvmZVZE9sXudbTkfLg2Y2PpkHIgRmt9MlqMIrXSvHtG5f4f6CkV2Ze +aIqtYJ5Ah/zzcfj9MyDrqSvpqaddaCgue3w/CJG/Rf8AaIivGdZfvk6jy8Js6IQA +4WRN+3dAIfZpz4MgCs9MaXBzPt881WJqIqsScbEPLW5SH6/5q85cRsdKYez908pv +bWHHA0B1hOEq90zYBgKMcuMOGkfKu3Cl6LmIxq5laM8pKoZ0OxwYu9HVB0ko/O+t +wG7HN9jyrW5msQh+UJuQTUAK4FBcfOWsmr9quf4TbRtDYrg6domzM8Ej/gSAkUjZ +DuYKck8AXtCL2bUc/zYYfMKw4Wq0m7KE83eW87WYQnvXleVV0uTLCXx1tuRN/Xlu +5enwuFjGXJ+l/QVxu4YCsFq1kIuy9IihQ5hkRS8CTyeOhVm5dhDA/5o3JUe8RFvY +ec/3UjO1fOBAsdNunuqu/JBUtrUyzHfi8fLVWAz3kTUdGiqd1bOCeidwTQD302EL +RcjwuknzUwMk2TheYl7Ogs7FwlOUKPJENNFVUdnRRH5WTQKdqgw6jvcV4eOCeAvl +rxWyHpSUbauRC0BhanxPsGJY0N6ymI6ShQCdSQ== +-----END CERTIFICATE----- + + +EUS NTC KEYID 08300F43A8F4B8C8E624A4F7060CF59E745015E7 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAjKq+Eg9faHAaQAAAAACMjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkxMFoXDTI1MDMyMTIwMjkxMFowQTE/MD0GA1UEAxM2RVVT +LU5UQy1LRVlJRC0wODMwMEY0M0E4RjRCOEM4RTYyNEE0RjcwNjBDRjU5RTc0NTAx +NUU3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkgKOc5fQOU/BkEVy +uRr1lo2CoLMM+UAQHcQJHDEioiskpeLk2C67QaQeqL58iFC6sjq53mKDGBDrW3Wx +bl8rmJ8I8juXxA7oInWrVn4hWazQgHXpycrR5JOrjYS54nVCe82f55DDaoi1cLrK +AJWqyBjEQ/SrQHx9qU5MaKP0Qswlo70R3qm4i/Ly93XgItWejU90FUeKTGwp2ZuO +0ECuxoMC1pcIf0P34yaP/ZXj+tue+I9tTvmYicjXP3XFxhsmE1Cc/9o/YmDMBvum +t7cQhink1kCyMgrqERkUr/NJhdXyIt50Qb/xNPr5H7IXHcqTNy5d8HCGbgNr94vz +GchOWypTaDnuPY7t1uJBpxCW5qZLHKbUbc07LeIqQ5tW94uSIHgDH3E/LZ+0rUqb +45FystFTYvs2W9ynUzfRjtVC69S79x777lz69SsJdc2vdY7FZcu4laS6D1h0jBmB +1OfUqZA44GylDyaddeLmweIxrsny8I8gKtOTg+NtOgw2iaVL17oibDTY3wK69qyi +61M4dNrK7ggLkskgO0s9UWalbE7VFBd/KVJeRb2acBUTDzvT/k9qXWmJep2FRqQT +CmX3xaFoZw+5DqFvmaYFV2UtDDw/Eh5/zx7vmKaaDJ4Jrp4yYpm8n4R7+OEC93C/ +EiILi01XTDQttdcGPPBLySQctO8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKts369VMlrV+okC +J7oF/dsWlonEMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAlfRE4CJE+Jg0ZXN8EipjGiUk0sGnjXeSKekpOMAWLQ12 +SCppeQ9VgiUTkSahB8vwS1GsfxpUjbOZBV1CbRFGYl0eKngS9XaHpk83YgihHJAC +m356Xfb86KlVsiQc0sSn9tj/ThHY2dCQIiiZxe1IdU0T0h583RKllGbjGat+CvDc +wIanmljzxhnwJk0T2acqDpBnSvcdxAEjTX7DjY3VHNehuHkZ3OIDlwGPTTORfhtk +0mAPNLx6C2AQZQ1xY/3IOiL/f0c/a/zkBCvJqstPBMEjpbPz0Bxa9aLhLAfN0L9t +5GOEPEGVrAOBatTGNnuXPAAYLcaXr8FvCZBThczwN9U1ftArJfN+feWZZt/VkB4T +1uy7sbKPXNcT9/WPi1RXJq6Ov0kzKtUhdFbkM7uC5LxDu6R6KcAjVP3fdQwfOkev +UhH/OEWwM6aNajGtLpPJre15A+tTl5rvmJ+AYW1Q+hNX6XPXT9OELTT6FilFlYzl +zp1oPaQOJLOcs/Qi+X/v0zPBwwF9hnL3oXiLvo2W9z2INOwQYPAT4b1e/Q6TVDWH +hzgu8DIq/lAF2QKNZLbXnCrOcOMIlsK7ZGZxIVBk/Qu8RCYsxMhrecWwtHx7dnoM ++b6Df87PPwLPhYHYjDAbMX0eQnNBy3lDY6KE5iSe9CxvdSfr6RYYdHq1VyJdsLI= +-----END CERTIFICATE----- + + +EUS NTC KEYID 1591D4B6EAF98D0104864B6903A48DD0026077D3 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAP/BJ0QbynxwswAAAAAA/zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDIwMTE3NDAyNFoXDTI5MTIzMTE3NDAyNFowQTE/MD0GA1UEAxM2RVVT +LU5UQy1LRVlJRC0xNTkxRDRCNkVBRjk4RDAxMDQ4NjRCNjkwM0E0OEREMDAyNjA3 +N0QzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxd1X2PhH30KIEao+ +lu36RBCtd9yod+v9gpTokamoCZcdHWVBdR92eb9NmItO+NLz4w/4rHtaQYk1vA9P +YmWY+lcHLp9lUDLnuaPhM0VgGkhHQ92pfTE10kl657Mb9Xs+9UehkRg3NY2nWQGq +M8NO8jmJBNASw4QPwHUwPfswnM2FZ/d1uRwr1hNLv/qn62SJQxhPgTe1YeqY79h1 +sLJEKnBluMN6L4jGx5fnyUxTyFsg3SIS7Aab5lAGEGbIia6cR3e6iLHfg3Kh/+nV +Ihxd9bkKyA4FLJBpycaAOHEU4K+7JGAR4mX8Y26ObGxIoeer5Ea+fiIb7gZ+uQBY +6ywDXQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUQd+bdLyrcQXwp8G/RNbA/JsRV9kwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA0n+jg +jI3X/eNS45m4d1yQ2OFNzE+Ah8YzC24EtXUUQsVj36O+tJ98NSZAAusZWac9BhGp +Zn4QdzP91xT4Uznw1LV9v8fVr81ZmcfjYqOZMfu2HU3dxDZT8RAet9gzeC45qsjT +/rvBr+bVf/JTn2YdNub0XkHOq+mAaK3d4d/1AWbyaIMqxzJIgj/aElqBiL5kU1rf +MrysSenJUM5bctUgoOPk6N4RKYwe/PMpHssV0jNKk5aIUKiPc6QnDKqabaZEOfCi +CzXdCnYAevxCL5+rsJk27pqo5F9S+OhBFfFQM4aqirua9uzsEEdL7dyhC23E2PoX +qMUj1vsU+1OFbCjOJV+0N72oZPLmiKon/3C/XhFvgBCtJubzspwQilrKI4ePbS7N +fZDGduX1BLNnr1YJ4DeHpZUmCkRSwQKqfLCdSCxSGyZuEO4elDunDGqtnlYNHynL +2nJ81CqWhPi/TGN1Ubn64/DVliYNwc8vRYZEM3FEYT6z3pA+jTnVAAjz1HyYid6S +/FjhvVQK10Tq+Fjc0HHSlWZqIlOdD3UVxDTpQue8WPdMMrZLz6wlgRU/VqAoJSUF +ndM0RI7TCGfhOnWzlm7h95AtY5rShnUrygtvptt4EVxdXgz9WD5sKwjiH2omrasS +wu5q5hQuWwuYR4D405Q2VR587EvH4wC9m5B7Zw== +-----END CERTIFICATE----- + + +EUS NTC KEYID 9FBB79AA0F526278BED150929A7171E96A35BEF7 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAm4PIEVQrRctOgAAAAACbjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk1OVoXDTI1MDMyMTIwMjk1OVowQTE/MD0GA1UEAxM2RVVT +LU5UQy1LRVlJRC05RkJCNzlBQTBGNTI2Mjc4QkVEMTUwOTI5QTcxNzFFOTZBMzVC +RUY3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr/eQkvV6uhzpj2bS +ABtGkcsm6E4y776qGriBgvAHCejKEHwlgSrDb/0P9totScuDgNCibB0CUBFLFjSd +Wpr2tPaUp47v7YLp+hfdOSsyCn/snKtd2/0/P0s298pGZ64ILOgAXiTSkJfN5d2A +JZVFpBHowCFFz2dXrXbwZGxenLp7xMvoHcHuqWVRFZOHe/YuyvpykQEDOGLeXSBU +qHlhTxaS2U3KAtR+KWtHrRxQOWkTxZ4/WQFOSUoTJKY3NVDP47h6TC+Bv1TZls2q +9wzvQ+6Mc9NwsIxnDLsxVhK3WTtZq4gN4dKp2vKMVdIX+xavMVMyQBZsMIPEsn5H +E2iEXn200FSV4iJujG9iiBr1NpZ4TxvrZryxQC/GBMRCOzT0L8NGwA6/2wjYgNCQ +ubm6KW2hbgMMALyxKOb0y2uRH9RTJCUVHvAZRrP0vxGWfC0QAI/w7U6ja8WG5+mN +LKOx5G1Uj1R8hj9IC6RtQrKsoGcqhWiAaHrwYoJN8VYXqMRk55TS/hYhbSXyYJMw +raHWIW/eKibiUu/TfsRKPhElzSxfhVsVl75Nj/KVaZP1+OK6YvH5hF2j+R3k3ZCf +JNYhUuuW8DOgltEXeaTdlyebR9cFjDWnt5sDbVV9Mtf9ffQzQs3NP9oi9ajsJBEN +rzbVbnyNtVgRxZYa9sA0cROq3SsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOL9pzpCjZKS6VQg +H6ysWFw07pI9MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAC2s+ZR/tmuxisQOFH0A0AdVGR34bToJY/oWAjyrFjtFZ +V8wAGFpH/Y07l+UnFxTb9gvquD1G2Gc/dtCR7gcP4kFlRz/1o6WvZ35wBGrV7WW7 +kSTRONl6SFZWs2fvHTX5ebKVq6hDGvj0dyvtphZf+iOqLpsIEA+QSmucY2FWDWqW +oP6P7OPOf/Z8V3v3izA5m4oNBzqEnnJM1akF/xdto+quIu70ucqmAgbzlcOrOHXP +htYXMk7OxzfuVEmv5oTr14tKe8pKDktnsfInoRB6b2QlBH61VBhDbdWmu7+/wV5N +lOs6T/bBr5gEeafOjKZ8TT0dB7U67ouPwDI7TLgRlyhkd5WqGphVPbLPRLOxyaCv +SsTmPEXmMJmTyOWpCGF0FMK3qbmxdzTjJE/cU9FDPWIZMMToud/ZBuBc3byWu/w/ +Fjg6YPa/mLOnctj9PT6F23DZi897psH1ZRtuooVcqaoMxj9CtZTJwyYK8zUA+yws +6cZjQa9/sWZoVPS0lIxDVI7Hs+kHsfU8gWnVBgRo47FtCcvm4Ct5dlvfcd4pQVBw +WSrPtXGHkY/VGRd6S3rwVwZ3ETdLKVH4MoWr1xkrNu0c2HNShNe+Dc+LZU3pmd59 +ZZnQGCgctOPkBqVbHsNUIee1lQmVtUQw1zanGAc8h6t06BFyb2AbRfrGQZiZRTg= +-----END CERTIFICATE----- + + +EUS NTC KEYID A0D737290E16CF2AE2BEE7100CF56B2F04C5F043 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAQQ5TDyLHjCIYQAAAAABBDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjUzNVoXDTI5MTIzMTE4MjUzNVowQTE/MD0GA1UEAxM2RVVT +LU5UQy1LRVlJRC1BMEQ3MzcyOTBFMTZDRjJBRTJCRUU3MTAwQ0Y1NkIyRjA0QzVG +MDQzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn06NkIBJ+6jzAzhl +9p/IE3S+iWIKRJn79r+cTapuWwyLKDaZVZoogjIYZn/tCjIsNN0SCBXp1npK5Zxr +SBNXq9marMjczff3MtsDC/K0d+HFcKWC+agcuvJ5qGqNEQAXyXXGkHDyJOicRBlx +mEeC5Rao/kWK86XDSB2+cjXeOgx2RYXV9GqY/aoKbX6IZ1b5gd1+NUC9iez1tuLA +pa5dVjSJio3HFH90bn64e5OrTCzx3s39v/cXfYHvVKXDlaijkJ7ejKF9blAKmQIP +BDMrzh4wYGvPPWpySeslPm1ZAdJQIOE/eZ4LuAMUvUFTmE0isP5XJn4vKHEaYTME +QqggWQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUGY/YewSAAwl3GM5sybgr0TengigwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA9Fbaa +Qn7c7AUUYba9XvVVwFearLx4eI1/X1obDGrRBAC5eIxnp6dVT6lBHzfo1a1iSbCY +Ug5q9gMoY9xK9dKKrFNwetvlYnWkH3O/DPs5NAWMxtXdyMsIWGHKjozCMbZL6tld +eRQI10nGF5YLApVTX265tB9QMrZ4YpDieEnhwy5GlyJKGrBdPcjg8St3D20SYn5P +Tp6DNI+qLQwvvlUlqHyBDFEWBimv2mR9/jKMPrVKZlFDP9Kif7G/CJjwID4CVhTK +AD+GGW+jcqKCV3tvCqCe6+cj2qrQOO8wPET9QGInXe/F00NqfA8+4v1GUZADBQPw +DTmlaPCQsLTB1+u493aPbP5eLk3iEvR0IiXtb3VLW2Y2rKzri547lmwtXr46pLl9 +u2Eod8ZmTSRXshsHdkmQBq1Vby0woi/J3NLj2wBy/SvXEBIiWkZ0qT2srASM0rfb +Iz5oXFNx42jc6b/aWktfP7r3RMQlUidi0OpLENJ6S9TGC9bLz71eb16+7APtc+EE +eeYOAmc9fmoFk/VkxWc0zxoHSQfMVypLMAGVqPCP4Zfwhsu9l3f4+ad97/M9vEdf +stri+BFAhaeCumR9vQX/0RtmBEE8q/xCFXOqR14xgEWmPQE5lX+uEUUlT+VnPY7b +ZgsyO7MQDZL0MoRWnv7Gp43xTxTe705zyNbqrg== +-----END CERTIFICATE----- + + +EUS NTC KEYID A0D737290E16CF2AE2BEE7100CF56B2F04C5F043 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAjPtFVetiD6TuQAAAAACMzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkxMVoXDTI1MDMyMTIwMjkxMVowQTE/MD0GA1UEAxM2RVVT +LU5UQy1LRVlJRC1BMEQ3MzcyOTBFMTZDRjJBRTJCRUU3MTAwQ0Y1NkIyRjA0QzVG +MDQzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApk1ETPo/42Cc5FLH +/8tr4/BaRQw1WaNiFqyKC9jbW51jloyGIuZuPUwbb8zRB/1TBUGY60R8odMSrCVl +EJ9JqCcyoTx3hFH6ntEY3FZ4MXCv7vH7nGaMPEscnZsKL19dMGhBPFq7p+u3SXO1 +PhoOtoB0sXu6xsXTRzfoTiR2oZnwz6ZnOGcZod44CG9tJ35/xoQBMghYZGQONyho +3JdP6FPJNPQvg9IgxfQr4/XFss5Z1A8dYiHKOuvf4QLPbEcxTxxyYnMGwZyMpv3X +h6E7V5KIohyG+WSVof/R9G5mTw92NzJS2Cpw4UnTuqRtxnC8/SwEWsR46NSK8Et/ +YOcsfdo1Ufp8XIBNdj07LQ8+xHScmBThlPMK9oNhDsqmWDYXsA+LGXLZKj7B2Q7/ +TtY+faGQ1+0Y2lC4UR2XTBS0gWBRnk/QapOGeZjKA8JSoQNcgkZ8OPVoPx44OfWw +2nYmqJ2k5nT12RUzOpyQcOtbj702ILoxpQeJ+5IILAlrWys0AnWlrkmJGxA7pEdy +0iaJEwfKQxvb5whbmFioOTCHbEepeP8GxiXugKQKIKQMtDOvULL7jIXLvyrV5uw2 +cDM2bN+7RRUJS2i0xCHFwGrB6nMtK7er1QX3I/StjKZZgv0Ic/ihJOXmTq9gdCCa +GgBAFXwyWH0P6tWbo/IWbCPIKvMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOWM4nBo1pDmsmSS +ZMVkBnJP0DMrMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAUUuTWFBJuvy+KMl+J/Vjs/vpz0D+oCjsai4LWsvXqwoW +92vf75t3U+6ybE8joeJQFzLZpeLz7Gg+ngIPoKTDKvt7Ld+QQRKA/WSsN+7R6cd3 +ZFTzjJhJ0oKLfOjUtCXqllMmijAz3YEhWiN98fqytenocAaxSQHqaUclkctijXxQ +1y5so8aQuUzZYVgTafpkPT+h7I3fiTpo0TqMnnXA5rOymLHaiePeNDunIjUOa3gb +9pvypEAgiarzbV5HwAFsISBFKtaDadEh01E54hfSEPl5m2SIUZJeKAxjHjdsOm7G +sKo4XwzPu7/A6VwrOhohYrXD8j1GXOAgrq3p3Q6CgMLQm9TdR0/rexX0LxYZwYSH +xMcXxtTu92HaOUiXXKUqQOMtk8JJSJzI9JKlF84/jZmmJFQ+ctLK0YKk9kxWJzrV +1gu1RZx6qz089VfZmXnqvoyW2yfv0mzmTJFBHhWahMpgRR8jWb9ZId+g+NQZnmb5 +VHi2jBXnara9OCWpKAwQEB7Vrzhr5o+4g9DCsOQDQwlfQhYwhQK6tUguD0aF70AD +rzbyNMS4aZTktnjFJtl7swjaJazPVN+CEb8/2CXh3SlEgUWoy4QuLN1PU0ExZAMA +WoIlniQtOS4YU5bNw39J2Vpg5gFk9EPeu5kW5v0N8KKJnBrCwt6kUpC/N/Ys2to= +-----END CERTIFICATE----- + + +EUS NTC NAMEID 3E6C3B35EF144B0A76CDCFA4080B8B7BCA3CC8EE +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAQW52ti1yf2aeAAAAAABBTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjUzNVoXDTI5MTIzMTE4MjUzNVowQjFAMD4GA1UEAxM3RVVT +LU5UQy1OQU1FSUQtM0U2QzNCMzVFRjE0NEIwQTc2Q0RDRkE0MDgwQjhCN0JDQTND +QzhFRTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJYTWn6nZxBpNTKr +NYhlkbwF7D1jmEDg0lf14r2oxyxYagfRrvcBuC1Ns4fU0XTR4uKK01nD2gQ3mgJr +YUaXhZ6yTpqEMOQmaUYDu8DV4mVGaUy73216sztoG3L/adLgJQ7tTyFwXCnxXezT +xs+dsw/rUFLeI38/AvQpY6lhYBgKYA6gm4Q95zF/7TwVhOduKlvbptkLe3VHl0UU +cezof0d4jLDN0o4y5s1+Tk0GI/xwt4V4dXXlKd5mzAMXvrbQLyCBhRZght1Pt6YC +zH60ahn6aiRKNZrGmQ0CM9CcjkRmhfwE+aLtsiHQtmMMGTUUDrQtz0YcYLfaiCIq +to4Oy9kCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFJ0MZKyGHd4DJDOQNGTZOFzwn8W+MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAQy1Q +54flGDjr8wHBT1nN50ZlNihVSr6Nyn1kdwOO5gLbO8O+59SDXmYouBwUUQUv8aMx +iIqijCts1WkhtvtsmZlrVxxknPsL/FX3eJYK9qf2qSV8DrDC10Aae6cvkMj0Ok/w +X1fywem/JU6LaMU1Uodk9HguUhcjMYl3mKOfL1HysHjBHeRzBe0yvnE8YhkqPFCj +wbRGcMbMFdbFhLun4l/BoMXBTxqtv1vM4QEXyM8r9x5tAlZIMChwSm4P09JBYCg+ +DSwphM3lAUDRDGIkVdj+r59bbyrWskR/8cLrzBFaikgO/Pok6pyU6Rikw7+gKdBz +DqQLtchddDXFfZwfEVJeS+911zp5I/fZ0LaPC0QVjFMl/uGOJ3DfLqTW+Hwm+5SH +Tx9TDKEModijrQG2Gk9/jM3HIxh1PSQSdO9enX9hdkmTZ3BY9cX2XdDhXMiBOX8G +4Fjm7nhmUPSxStB6210HfPMhLK/DYWmI5plKDxkuVQGnDb5bCDzxco5Dx8uZpcXf +B+4FGbR0FaMlrh17wJB2HXslZc+ffz10HI62JiCRjpbN3c0GQDGuRbpVSGZgG7j8 +Q7NJzyydDIIZeDTnE76L0F6XaOrWgPM4a6346ZbGJUs2XPAigSFyEDnw/3QK2kga +w+v7nP0ncaPOpb9u0pIgCQNvU83Y3PusVepPoBU= +-----END CERTIFICATE----- + + +EUS NTC NAMEID 3E6C3B35EF144B0A76CDCFA4080B8B7BCA3CC8EE 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAjQu1vQy01PqXQAAAAACNDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkxMVoXDTI1MDMyMTIwMjkxMVowQjFAMD4GA1UEAxM3RVVT +LU5UQy1OQU1FSUQtM0U2QzNCMzVFRjE0NEIwQTc2Q0RDRkE0MDgwQjhCN0JDQTND +QzhFRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK246r1mE2v65zju +PvoV7xkK4coKagXl4YnUfNTqHhZjM6+gdsCHMa8SNFxLfs2Qg9LHS88TxJXMYwzf +0mmnliL+hlGioIm91wpAAlnQppLjiJLDkxkrSZsXEB/kQ0TDTCydhAUu5wtbrKP8 +dTDMHoRTRD7Lq9+1tHJL6qrrRR6AS44nYulYMM9Mw8nPz7YhG1OTilRnVoSnX3zT +jn+Em3OD2Fljo1D0T/PxXtNy1TyHOGaYeUc1jbPPep/DTxx5AO7om8oz+TzIrVfH +rl6jMNQg83I6+w2G4yBlk67dhGPnW9rBvg4IMLq73OmugpyxXH/qjlldfFfWC9QI +CMU1g7pGPMXNMdRwPv/Xb1oI/U3H7cIlF9AvLdq8qZxT143rHHWozBALA2oVwwcA +itoKoJRQJRJ3tiHmzAbnws5AoCa7xWH411NdYMM+cXq7EoiNX02+mphg3cWlA/hT +FyrOFvaZLk4P1Wlu0oL1eUHggjzlkO6cT68IAGKy63MQeh6prc7137Nnkp0KgCm4 +UqBcRcDDBMnteZBOdXXcEz89t1bld0OqULU4jE+ba0aiNYbB7Fy7iUx69WLq2/0d +ItbfyINSb+3OEpKL3XotYuiTb1MXZLl1fbQAYMNkhvFJRt4BtSS71NGzTS0n6RVN +q0oVLvMqSNvvsQcwu3G2vuLja8dLAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRt8LOjdrURSTpG +8iLGRs21qF8m4zAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBADtPVlJaf0fPgvRX5632qo6bBEg9gfPDQpm+VW0AUqEl +My7vmVKTqtzbIQaJbMLo9eRnJ8zR84dvwxirmw5j1ZRoO4zLKE8PqdGiQ9UM5PtM +q+b6emD3X9US6YZYiOj+vgM5z7a/DqgJl/RArm8c6MGiX6RGx/LaQnqjHDDzczki +nECfFKzs8vJemnSbu0IOnwX0fazuf6OphVt3cJEbmKuFuttYkSQETnmuulw8TTLP +YsFWFwNgeQhjtDiM7jYXKZjD6ML4bx1QeMbO9kiZEVYxpM8iwd5iWfYcabNku46h +zFFXAhDYG10//u+bddSq+GyaFAyeCUr64KYcH6MBHeAyY0kG2W8a7Xr4urX2PzEr +X4E245is0l9RLnpFx2+/8g6ni1/tVXaQLZaGO+2HEvGclOG1DF9FY+WP4frL4MKy +sKLZP9kIWE2c9wrpZtW8tpnJvQzqeczg7voevLt7L/wl7ew0tJMbhUqVIBR2u3i0 +8Wg+FNMeK+4bLqpx0GeAH6kKFuqS4NkLJmCQQofjgGE89sy6VDKMZpZtDyJiCx1H +TEicMi1Yk0+f7Tq9y6wPLYxdxSavGPDZ+Cx6UMDSYHzrAnNQ1haVhza9wUX7sJUX +uaCSd1rb98ywmAw64JtMZ7uU2UMaieNahASGldtGajE112YUjCIGQYdwks57m+72 +-----END CERTIFICATE----- + + +EUS NTC NAMEID 770E974ACAF0DB9AE67E7B6F5D410F9ACE2FAD65 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAGzWGLboghYK+wAAAAAAbDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MTIxMDIyMTg0M1oXDTI5MTIzMTIyMTg0M1owQjFAMD4GA1UEAxM3RVVT +LU5UQy1OQU1FSUQtNzcwRTk3NEFDQUYwREI5QUU2N0U3QjZGNUQ0MTBGOUFDRTJG +QUQ2NTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMD56te00Wibc9XT +H+BGgPta0Elrw/xWYcxtpdJIUqZqei9Tzx7Wg1OzcMXISXEwWdSsCJfDOwj1Wm23 +VI53zt2tQ8KTXrbAK77LV8uhvlNLmSndqNrKdrDeYGe371QrEkFLVIILsmT+oIyt +0zhgnp/TGrp8ox1mY8xdbdasomK2i7qrGpisOefoHsdHeIajN0VTugbcFvY3LpMc +xSazmjrPMEMJsCaRKnxw5zypQ9RHlVkd0+LlQWxP/PSPe/dLPXo9hLEwVFRlzASs +A1SoZtS4x8m2zToIKTX8hU0XqaKjMFvdin0Mi5wizr+15cxu8Rvz8hlNz9SXV/dW +sJBssZcCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFP8pClsDD0vhoP/5Sheer7e0ZDECMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAeEJi +C+h+uUHL8ASBiOLvNwS3y762D+kT/utmzSH934QxvOfOVZCvU/9mLU8PXZAHsIPs +fa/2L8nYyr6PxRbcEMD6oLpVC31sfiHKo9Oq6ZBLH6u4awJZGt/PIeSZmsMTvMfL +3+Fa2WYvlfJQ7Bh6xoTjZBSDSz13RgbSwzHnRn8S+yY63JEl192Je6q9m0KZih3J +671tx50YJzoOSX1d6jxPqkOxYXgxIegu8Z4AC0dPTEQGDmA1TgE0hc77F5cBNhAG +Yq/9q8gLro8zrOAr4owLe46d8TgGcnzt7T4cmcJlHA7IGvO0ma7/H980XlgNu2ec +DPCbI3nYKtTba3ZMh/km8Wn7btQM5caUV+/sVqBlW5R1dxtF6yGVHobfpZAqpyra +jf/xJQWx5G5BUib8kbtpvp2h4UWbkJbJbg3rotYlyMKKdGMhYK1axmulBn1MgPcm +G+j1Pv6BGgt8jpraFuEPDFj8dGGfYOlVOOCR9pVXh5JmcG27R08IXTTM/XjBdBJo +S6vM8yXUTpHpSwfFqMwtdQCnjxg4uPNCevymftD8JY4O37/NV0AODh3PZcNhu3Zb +9Y4h2S/ODloVO0W4h9zK6OEQXDcmYiW6mp7PHlXnT1Qv3oSdpdskPAKmcKJU9a1F +0aRDXNzfPDicQQC4eh8fD9JZd9Ffrlfyscj7JNg= +-----END CERTIFICATE----- + + +EUS NTC NAMEID 770E974ACAF0DB9AE67E7B6F5D410F9ACE2FAD65 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAjZQ6MOtf8ynOAAAAAACNjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkxM1oXDTI1MDMyMTIwMjkxM1owQjFAMD4GA1UEAxM3RVVT +LU5UQy1OQU1FSUQtNzcwRTk3NEFDQUYwREI5QUU2N0U3QjZGNUQ0MTBGOUFDRTJG +QUQ2NTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKjrgb6+9ImqqzZk +hChHsCDjesdSPDruMCOeepk+uZjctWNEVK13N8x43v5O+E9SllauWnxKBvu5Om+d +c/+KTbhzMpSSJNa3DeCsymLtAABedofEgf7Z7XgWF9O5Kx0yzE2ZNtJ+XKXujWHm +9wm0TudbUt2no56FMvj1hcP4u6lQY5hwSd291cs3MaMIJJL2dXBMyn7yoIBsfOm9 +xug6y8/SG+Yc554ERNwLHhWimZich5QGERafXDqZMx72GsByO/dCArk2eDk24+Ap +e7uUrwzYczrW13bJ9GOofLJQWoJY2eEHpQ5NkXDXmHLNLqMIKTwAhxLdr1t0gbru +pxcyF2N4k2TwMNWruKIHZfrDdoKRbOPBC2lewzZkNTPokwJojuSf1VHOrFwzJx// +naHDkFNc1b/MAf6VlIK+AWVNa74F9AVxpqTFhdVs9jWXDO6/uTP5dc9gkRu6GWXZ +eVSINhxdEQy7diTRYgyCBiyX4QGMNrvekyqn9nIUf+dbHbus6UD/h4Uxf6zyWUQC +kl7j+COh5Hx2zLlp5VsazoKMqBr18FDLBPnTyV0nb41/EJ2Qt2Svt2cm0GlW6Wnf +oafcVi8plbf98jpHw8BI6ydQSke80naDZJrO2b6d4DzcqiVx4MBzx8DbIXXjrFlY +D/vo1XhcRN6r23cjHb7id/67JCSlAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRwhIVzb/xesz3s +72yaADCp9iXqzjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFTBiEs/TXF9fSi7coyITmGEquCPalyFtM+iSHQ2VKru +9UX6nEujplEPYTQOAoTvhUlms1HwXB/ttnpzrVo+uOr9WNKkuynD8NMfQBZ2GOXR +bM47CP57b7l1EvqpW472px21sE27YCpokVf2/jtD1ridpoREgre26CHrWHQ8hfk1 +BlbfwBj94VsX8wSCDI2O2jDHVJJLkhjDXv2BV5VNsCEwQ6927z2tOE1NuyhChUcg +35KLz4sCIYS0YLVHfslUbfiXMw96qhJMfs6Q2tAKQP0V/a/5sycutcT54hvyQJXz +wux1cqZ7UtdiGjdOxr7O5mWzlKKtvOZC5BXVgasE5J2UPiA7plG+5Kijrq4eLwqy +ujZLGac08BnBpj1UyUSvNfJ/dNXh0v8n/1QTStblT2ipLNki9nkcEVRQpM0dfJyi +GRY9wkXy8Vlsu+KZ0HZCE8raCerWn501nzZjAUUplnV91pX0M+N/Z379EZaFS2a8 +eWaCDdeQukCuqi8T2Z7vVtWV3hb+vFDknpuO0OHGQjMet3STn23MRAHnTwLDkSuf +ga9EFHShWRwdn4gpD+UXBX6OFSxUIzV6S3kL0K6DRZlY38rIIwxsBJQIjW0DmR8g +izDAkL9jF0eFaXjEaVhJvCQnnGFlbSTipPETK3f1aYdt2C6Qfj9N2VSFAOlkxDx6 +-----END CERTIFICATE----- + + +EUS NTC NAMEID BCD3C503D39E51B0C50489E9228E984A7E63E303 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAQbwgKcEMPrzTgAAAAABBjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjUzNloXDTI5MTIzMTE4MjUzNlowQjFAMD4GA1UEAxM3RVVT +LU5UQy1OQU1FSUQtQkNEM0M1MDNEMzlFNTFCMEM1MDQ4OUU5MjI4RTk4NEE3RTYz +RTMwMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK86o16n5Ja993I8 +XxOQYFeWZnMPTQeD45IZppDnHK6kEMPqpo1mmWf7ddfWAjIcQ6hqsqEWFMHNS65G +fNbfwAzRB4FRnXAEPfxUqCwc7XptxVxUs8li6u/vgFmoP8clya3ng1QT1NDMUgCD +EI3a6kfHCHkrPzDw0Sp4K2CvRTzbfqoH81/Pl2Rbayo742TFBvQU5d9bgiLuBXTP +PK8u3clJlukPbMhPM5YltOAwBjrCKsFSv9QwOfzotE/KcmMf3ih42m3/woh3cLw8 +QO84Ojjq+4/8xHLYJIrjukPb1il7WVYe4JaqqZGFTp0cEmFjOB8ns1BLlHRzhZkc +P85URScCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFHyODLqSi/vMK4BXgpOqWhkVljaMMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAmuXw +uZ5tkOA9asncl8f64fywmzaGFujy1FaN9VLYmrucbM8xth1/MBXsh1kna9zip597 +HXl1oXmSpHCawuXlrRTefRU+8VoUCiqyXkUR0MzjUdOapUlVIYaENpr+zHgk0/sv +KQiE6/qcnZsuPkwpcqXBfViiSzyWW4jyXNGkTZpHK+me1cmhAdx3onjAukxF94n/ +8ej8ep3RNaCX5Yq3jKPeR11txkpiFwyFXG3P+nuExJm60VLtqsBWJr/nxv5HCMIK +F0SiXzOW8FzpQpKznMgTi/YUiqJlVjYRb5MtsvC1+sze4wPvS2fRpgWMJlVSc5pr +Z8dXOMD6lqsT2k4bcVMp0c/D1+vtcfGiHzClJ7j5HeXlo6P3qJTSgLbyLbG0yEwK +f0//PRqtGdQGUrWds0uwSnzoVaNbGGZv3vsrbbjzTQLqdTarHYEc05Pzafcg/iXI +jVbspuQt3rCrBpbY25/rQQZ0Xz2sam1sXMhw/m1vHTUnZLAQRSMnu5xQozHNqxFt +Yoh+sLCcXNf/84LB6p3+WNdiXkHPzxUO+WzjJk+xt+FeQkspE31/RY65p2WAJSLl +Ay9jcLUX8EtY+P+4llWVr/p/v+1begAZsLJrcwbf8QsUju2IK7/sfCtTXz8pMXqg +WJGMGcU1XzIeC0tfbn2u7rs96ZkXcZyk4/4F+jg= +-----END CERTIFICATE----- + + +EUS NTC NAMEID BCD3C503D39E51B0C50489E9228E984A7E63E303 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAje0BL1cqHqc1AAAAAACNzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkxNFoXDTI1MDMyMTIwMjkxNFowQjFAMD4GA1UEAxM3RVVT +LU5UQy1OQU1FSUQtQkNEM0M1MDNEMzlFNTFCMEM1MDQ4OUU5MjI4RTk4NEE3RTYz +RTMwMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUBOPqTTYFxsUAI +2or83Ti+3xps5p4k67wUpQIVx7UBSO9I2sPNJ3ySjg8gyGSuuMCzu/FBrnsZo84i +qtMpOYpmB/gSJbfEBkNJBmrRsBv/jyuGonDLTQEVHzP17VZBZVe7+FFfOKP4m621 +fg5kwIGQ+McUracESqcjuLSBlXkSrYQ/GX2ZdYu228oquubN2ANXy+Efz7HjofsQ +OHVJtzXEmQkd/iD+ZhvjZNQWjc7nW7TiWHuh7mVVBc3O6d9goWRrhVvZn26vUNXD +qS6jUXk+okiKXJQrTFN7MXeWdaJmgiiyNuzNFAi/D323WIIYAPi2owODbuOq1XSF +J+bYfRpK6bu8b8QRjfhs19IZ/R2c87bDSs0TjwhH4zrCESQ6KTToxqKw0Mbv/nBO +wG2HwlTs0r4LOTQK28JxQOk9GJdAzLnKGpXfAEyWH4jIcTVFBL6VPwSjIKzzVNwh +jdVazd/8L0vXmajPhkfHhPD/Py8qIYUhTHMPNC+Stl+6mMEZi01k6Zdc2jbjuqDK +shZZxhI3yjKriMzzFdnRUxF9o5AQEJKhYUNTzt9VhH5mxSPz6tLKoKi18GTc4ICH +W5Ym4dSzcR7hBBJrB15SCCfBUoENK3ASnFA8mmEfLeCYdXvxCRzoIGEdXtWdIg85 +HyDWLPwFXgWoAJUZOMkVX2cLx8sRAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQJ918h4MSMnR1c +OzS03xneH8/eUzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAAIxRO8hpSs1mRHB4sNHaiiqkPT/Wk4BOk/TkY3awIRY +7OUfiLBVLs6qU+CH8TsQdaloLwt5PV/q85Z5bJnCsgd9r7fRtnJUQ+BvRVKmukmu +1EIRdQAg6D584ng9VqCgaJQbXRkZG2QN2/KZCYrw4Al8aIdpBxauKhv8j6QyfR2Y +xvPyHBHdLArBn/FFsHic8h3bm4BRQ2y8XYQsm9y6/GqVLg7/tsy65csFd+1XGhmw +fWCZfYdA095W+Dcn8oeAqSa/4Nns7pNm977FAqlqhdTGkSErBfmqOYBtSS4g0pkZ +aFlHBvVSYtxuUt9Kimptu4uQSpzX8tJmsk0BCXRWd/mvJN0shz4yo/KB9g2N0TXW +9Xecnl7Tu0ycESwvLMVuKqqfycZE7R2geJm/R4l4P94a8sb9egZYDGnCievcQGAK +8DgKYMrYKkXeyNfhgqoTJKYgbnXnuUkkFxoSTvwwY334KULinrADLrLAcGtPE/au +2bC9C2CkUiNYas5uW1J4tuRFE4hMWvWHyqv2ohjLgVYn7eQtfBfFzdju14nCqCJj +18Si7IuRJXOEODgoPlXvguk75KcY0m8REjBEXhuL/Hj32mJlxFR1vAvmSEPInrar +5TbfuwXv0t46ZXtYueChN0hZzaC/yweWBUfdStrcilYmZN66ZEK+lDknBNaXf8GR +-----END CERTIFICATE----- + + +EUS NTC NAMEID D659BCF0AFFF2284AE8AC274C6D91215AED2B62F +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAQdBgatll3kwegAAAAABBzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjUzNloXDTI5MTIzMTE4MjUzNlowQjFAMD4GA1UEAxM3RVVT +LU5UQy1OQU1FSUQtRDY1OUJDRjBBRkZGMjI4NEFFOEFDMjc0QzZEOTEyMTVBRUQy +QjYyRjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK+8j99n8F6ckr+8 +6jPXNzqQQhusQau8hXYtXVe4+naeEBRX49UoFpogTq9vMXIBhZXYb7lPtfRW18Wi +mmIOyEikfmDF8jDwUKY8rZOwu7vVvfRWheCNs04vdtzbbj2S24WxdvkrowGecwAu +1GAY2i2SXXXQQHscnmLhjNaPsDGua0y6zp+qOKTw2eheuPsXU8ckYOyNkutoyNks +Pri+aVk8erzMX1x8/D9qZHLCCDZWy+XC2v1rAkMoqhHSL79q0gT4tlv7AKUvUxa/ +gI8vtqa6uRmgM4ZzRr3FkIja9cNP/Zj//h+VNQgOGP+8lKZ6IDgwtwtKuMstYoin +EGHbzvkCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFFxAPzpBG4a0EmmC+Yn0nkFCqFc0MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAZLx5 +ztOQa2sNKR6RxEFq8ATJaeXX749UYu710WZE1Ec0BmNwlifBVLyxQ4DBMPIDN4Rf +0/JA7jAcO5jErJOo+lN8dtEmk8ZxQQb7QVUEPPpMdD/Stw4hvC04TMwLjv/CEis0 +tSNEvHgnwtlHUbyzW5z361n1lYCe+78AfRNUGJjdocaEDc8muT8Bv5mJT2UW1off +d71giTZN+k4cGgxAXOlismYMHjpmiYcB/KckbpSzRvNVt7aD7FAjqNnnRBlEEYK6 +zugQz2wsFBLrouAXrfdTXuDrOkAHF8pTxpyqcqWSI/5xLyZCf/u7YnPBKKg8A01R +983ijCbr7F8jJUHLwnPN+f1xpIhmi/gLodSBOjmS85LJzDpsuaz30WShFnSpnIgJ +2MIvjfxogAo/k0yIoyOsFlB3v9kZxKASP1SLaK5VP5HwAOYdJNyI9dv9zubMo+0t +jsjjruDAUFvDjhc3KErOnyX2iKaA236mm9e3X3+6ta8ObfK2zXfT9KliS26mUXzB +mOalLEHqNO3v4IsG03KjQ5/G1mJGTt/qZ84//bH9kqVsTfWI132Cmv4A6lS6i8rB +O6hFhzv6UMv7C6/Y67DpeUAHDAEjsOLfLfkuediV9/g0y0unhw+pMT3a4qAZWM8o ++JT6hCH9mU4GjJm5asM3Gro4zIlRfKl3bu53X8s= +-----END CERTIFICATE----- + + +EUS NTC NAMEID D659BCF0AFFF2284AE8AC274C6D91215AED2B62F 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAjitwd1vskIoWwAAAAACODANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkxNVoXDTI1MDMyMTIwMjkxNVowQjFAMD4GA1UEAxM3RVVT +LU5UQy1OQU1FSUQtRDY1OUJDRjBBRkZGMjI4NEFFOEFDMjc0QzZEOTEyMTVBRUQy +QjYyRjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCoDho+jCoftg6n +TmgILV2Vmt3LprN61A910Cj9IDSm57Lz9wsJz7ZwNNzJw5214Vm5QogNSQ+wLkB0 +1X22kO/pGcwvNW0H4IFA7pbwTwfvV0nwzYXEUSRhutWLKO8eLdvfdM3C8Qz2JK8g +5o/JMHLxzhJjAcB7SxCJCHYrYoRYI4L2l08MFgkyJcfk7wDyUgLh0bDi0D7yJbwA +ivhTlnDcr+OJgmNOqX4CY2zJxF1RMli9zYaICUnK4IV9SOCgodHEhcaS6SMIgWfx +f9iks2SHSzSd6VGntsRC2jTOkNbFSCPpbPMGvDCXNdPLS+Xo00XHYJH05Bnta4ug +MHTXAnnND9QtRyYPdFpnCjtv96V+eDP3ISxEbCIS70My5ClY6IhOW/ZcD8tVyyx7 +g+grrdWDz80Mh1SCGzVUPBeSWJntsOhtfNYG0BU98apObdVIduwSYc4eMi6dTvGv +xHv0AeQC4POCTYCOpCCyzjUJHQda510NJMCcl5wuSc0boYxfdnMVya2Lyo7HBQVc +oKuq1lJNXc3S6wmgq7h5PFo9cd4YOFGBfSA4FJsDMoEiNAtVHiW5Wqh89/G5Y6Eo +N6y6USy0cRb9Q41ju3qPT1A37xSBqoenTouOmM8U0EAr59D8W/LymapsE5CWgjyt +3ZfL7YEL/QylVpqtdsxfIvDmo7S9AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRkHXul0Od/cloJ +H5877f4kZR3BeDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAA52a4DIfG5p0Mt8VCSHlcml01px7PHxKlUmkUGTBvsl +oeGYP7nyW7KQ2XZBpp2N0ZUgWRI/GParyrbaVF7sEbnfMMAXhqtQm6pcfANk+/WI +Or0u1hmWHb+9oAsGMORn5OszoTg6jqy7JVOQAsrqZ6Y3K33k+8GUjMEpi9UkSX03 +P4uYKrt9pJlHQ74Jg+q6KTdnsSG5lxk8egRhEJgQc+lbpYgDcocirCCMdcM2gQQ4 +7szXEPw1tDph7Tgqju3wNJLn+XZVH7OJrsdxZbXHVvlGJ4wYAENeBsSjob1h30HE +UNZoyAmbXCS32ik1Xk+1FuqM0c85edCyMhqd4FDtxDbCb4yoZE6TvACHeYuP2VXJ +Dh1/dc30ksntHFDxBoSSbRRf/z5BvyR70xt4Npl/nSSbN63ca8TxstEq8MTplcyo +8deDlVqg7+spY/khECXM22vuTzkCDkTkSBPArWQg2YHayh5vlyR+FTYCLOCFN3vb +zOt5cGs9ECQJ/yslmQDFyoj7R43z3B+f7TsgkxYxuQNuBAAQrReXkTLzBSLGadPj +aXKECmOKyysdwisSi90uVifIOWuDMhdSPojVBUTCMNapdtOWtWT+fxImyJGC0qBH +y4VI2BsjaVKFwcPId7JdHRnP6Gg3rnz5ynSI5bcoXMxncEUbsxonrX1uj2ToCfc/ +-----END CERTIFICATE----- + + +EUS NTC NameId 91EBBB7C51FA7F78AA3D44D3425B1D5D23975CAF +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAU1E5QLy66wgwgAAAAABTTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDcxMDIwMTEyM1oXDTI5MTIzMTIwMTEyM1owQjFAMD4GA1UEAxM3RVVT +LU5UQy1OQU1FSUQtOTFFQkJCN0M1MUZBN0Y3OEFBM0Q0NEQzNDI1QjFENUQyMzk3 +NUNBRjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKUeL9jRkg6dk3Ta +IABNWZ0RmevTQerrzBaN+3em92A+tA7Aa/ubDt4gFnxxp3TcEBkmIsIR5F9PEH+Z +l6tSg5CPb5Pi2N2ufjrGMeUTFKfausEXqi+GmTadPLzjvDi0l56s8TMJRG4+0tmV +0bK9TEBHiuCdf4bD3bHdN0mcEla0vvZ9mCWrxlCVNyJpHk5/MeXG848VqHqGbU5n +ASWBjUJHLVOo3myvCh7hm7EUUNSNfdETEIHLO9oN/1E5zPI/DYQt1lUGe2qwgS0o +yKREK1vjsWzaEleIwrz+p15lKhGse0kVrUKDd00Z3T11CcKJSpI882G+ogcUhZNW +6K0XM4cCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFIQLF3/s8HuVwQx2JVZEJMpFMCiwMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEALfHi +lMOShim5ui+xXv6AE6dFQKPYXHiqTI0Nnf2m0qHJVTc14rZcRmNlCfUD5nmUdEkI +R2RVRtnX2Om2hXTgsySkyM7uYfUcHpt89EvOoqZ3Vm+mlYxOaEwJVHQfJJe3oNr/ +KvqWTMDykfGyYlTOkHRFtz2mEoKlBs8qtFtcPnx0CoX4owMV7SU7DvlTtV7CMci3 +43QIPw+iYJ4Q1XfoZpXc3W4xweC9Q1eKrj/i62n53Uf4uR4JK5X0fwxy4OeWKNLV +Xo8Mxo3kAqDjDBVmO5af9EIXbl+lIiURNB6HNkL++NPZfg5ieg7sfv7mVikxKRDY +pJDNY58aK/N/c3FJB7v/x1h5SBnUJM/H2FQDyt2QCsZ2MJ3R15k30t7Il7EpPBAl +CxjVIeCmVQ+4aMboUqJHi/xbhOLqy3iErnmxaZvUhjRTJzoHRbGPKBXF+ciNXV3m +AEPKP0jriH7QtLLN6IW1auQfW9Z1GQzHKmLqCVqQ46Ql3IOHzncUbdxo2Jm/QXky +BHbe17RLpjLCAJfFBI0J3nypwgBvNxHZ1ks7M3TYpJGz2/+7D+sDpAGHv8F2FyB2 +mMg3HsDNHqSq0DNTSnYVYOOMlIR9AFSvEDdrw90qxjv5kPiZoYbUFll0xKTtPvnU +kLuivKvCr3W0FsX1nOgUzQX1Cu4MWcyK75Nclx0= +-----END CERTIFICATE----- + + +EUS NTC NameId 91EBBB7C51FA7F78AA3D44D3425B1D5D23975CAF 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAjX/w9/ZMQnzqQAAAAACNTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkxMloXDTI1MDMyMTIwMjkxMlowQjFAMD4GA1UEAxM3RVVT +LU5UQy1OQU1FSUQtOTFFQkJCN0M1MUZBN0Y3OEFBM0Q0NEQzNDI1QjFENUQyMzk3 +NUNBRjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALVT5NDF46h3QRqD +EceM60f8fnm1qpeArCK0jEYvBGbM2COoHpoR6aHr9fzh6Gl6QkCpC5+vTrWuepvf +Lz02vFRvjasn7lAh4Nwlarl6/GiraaJdbzkvZMs2dNkZ5YeAOm9SL4f59126WUsI +57275QYDUO5ZhCfYY91bnpTJ9I3tL5QrfGvFRXfKv/P+2UCZ2mo/FPW+Ged+3Ivl +D2y4ElLKyJKgsvfVUqGinGHhHq2rJ7aee66luaeu512Lg3MQxgYvBMOqyROgucdd +Inom/azP0Vp+px+SOhZXThwLPDURHdi/Wq4SN2NbBgRPvuzW+KwPI4fKdyjoOxbR +pYyH2qBF0FPQLJv4Bm3NArTH0qwX4oKvC0bZsBFB9L/UhDWp/gK8fBEjk54gOgmy +O2u1tWd4fxhpvsQzeZSAbVQx40qZ5kYKXIdLcgK6IdAUQ+uDs2WpxAJhg4QfFVuD +lW/fjAW2pbLPz2hyP3nl/h1b/HM7X+0q/CJ0aOJzhVyOFdNTuNNpSqqVGf7ItRLL +Z32WEJfTtBMoGfU3noYwOcC+tEQp01w4P0S6ToCgRfIkwig4NnN7OWHKjRLROoMA +pp48i/qIstDEfh+sThS+xd5evlhYfhjB0A7UccYjE94KqwX/ZTDumlRHVyV+Q+KT +FDBUzgZbj4YQdFuayJ9AQLmbF4CNAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRl60rllVO0Pk8y +HpB2Nqpse5+szTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBADlmNDeQp94NaR0wHJU0CO86ZRESxa1MOlXzd6D5Aa5N +sChpIwXPXU3R+BCv9CDuxEScl+oUzRfDJMozv/uTqCJoAxiCmynOE6aTIcRZzniI +XmADMZKKlxscd0RZXJ6Y/R/tzj6qNz/JLARbnrYrm8fyRJasWzUffGfadvgOLykX +uzvkjycVLFJAZl6dLPAuNz1VEiEfsJyn10A2yh9fNOZE6mQYDpgi+jELizxvaFJv +KfaypstgL/p66frTn58G/ak43AbQkuMS9+IVBb3iRKHbLFsIU5HL1iUNzzcNEa6p +ECJM04poO2urCtzY8SfpX4s6RSrRflHetY1U8gvam6iglVj8ohStb7U0ICr/Np0l +rFUI8wf5YAf3hWzwFR4gcmsmlhlqH3S4ezsOtU+KS+wxbe5LeL+8Hw2T2fqzWI2M +FVn2kKh0jT5WJKCgdkgg3pNV7qbfnXKYxLOxUEbbV033K17c0/7UDpBV8CdocErR +laxi00TiJfZNX2Wz7JyWXT9bYDzmO52UkhNV2iux6FzEE+2IPzaCLtLQJBatK681 +oueTnxkF5hcGMUR6FgPsh8xynt6rRKftuNQw+xfw1SPOlPPV2oYXVKNScd/oVWez +Ca/RD0lOeLDX6X/wXhYoi+1FYSiqmWivRdGRDRvio+pMtsSUzrCQd0CghlHER2DE +-----END CERTIFICATE----- + + +EUS Ntz keyid 022cbeed5d77060f2833e9d5376ba8bc308cd9ba +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAsihWy3btd9PuQAAAAACyDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIxM1oXDTI1MDUyMjIwMzIxM1owQTE/MD0GA1UEAxM2RVVT +LU5UWi1LRVlJRC0wMjJDQkVFRDVENzcwNjBGMjgzM0U5RDUzNzZCQThCQzMwOENE +OUJBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyt9FG0XYvPMKdTF1 +0JTqEkwFWya1+VZEfqGwd2Au/k/CWrkb9wStXC1PRBDHUw/0xysCPapl9QmiVOAU +RfMhyknC//W88IQzcY/dxym55O2QP/HDcgkeGGxSbhFhTPxbT7E4gADIrzRYHNUV +oLDYeefyLGkCiRYJ+dk9BW7Gygmm818ziJevB1pidcJg8qAW+4ORx5+VZB8fY2Ak +sSfrx/UtDBWcC4CKc4SregY4RVBZQY0UYPDD7Wuwpcldr+rpffE616IHEGcCdTmk +KNgPoFCGr/ua9YndiM2/m10WsoAnrYep0fniN6hHMGZR8kZS1+4AkphFULk04dfd +wbtjKESZlcQfHr3Tf1/VVljoYhqy36yKa9yorR+VXUkY7YUnnbF8TBhHGEmn8AsD +H5G6DfRYyV9ZBukzp+AmWfsvZSjdAgyGzCLDvN4drBr8mW78Xbgex7IPIgfF7Amr +Sy2tsySgSaDOxilDuByhowLe7H8DTkvx8MPA9vtWmQt21fkiIb4plasNYzhxaiCW +jf3f+x1XqfpTP019bE7U/Rel3Nf4UBzn7vBlEtTpSsckVYzEV3Zkko4T+leEDITz +RsFxk1N4cYbeyQoso8JHq/BdXXzXw4IFfUqnKe1WadRuJTmEY+S0Nnj0SxXeyuom +vj2gD2MRZLeSyZLrylLBpg8q+i8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHw0u/rB0GHJiz4G +NSDf+FEpZ7AtMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAWmzjQqxonHglNbo7ZlNyqEiu6S018oOxFsknzq7Hz+6K +qN2JwWs7PO9UXUBfm1eBA18xF+dd4ss4b/BsKGfSrhEtNdx7kqk/UHW26CCabZLE +61NYp0OZWOB91TIlaw2iod65u9Ip8ugWnRKi8qPo+A87xwDQJzrU7CBquThpGbHh +7fyV9vz6AxGo1F2r92yPJ4r3onF3S+hlbQHFA7UUqS0tzv/Gil03v+DnC7/34W3o +gPlHzN0bM+jy3e+2QzaBACuIvqJWWKj2AEHM3agrPzaBVogSHypSblP36MayDj9q +5fHjMrdgK+4qmxauKVKK37H2LJER4NVkd8h0DACUaAM0vUwNSBcxkDKP1y4LieJ5 +v62trl1XX67GZLAKVWHAnUyNiger8iFYy/58s94yK4C+G4b3HXdYRwdISixKPFrG +HgXZRoWGbUPHaFPffWr8GzttcDVnMmAkF9+YJGjJfAyDIsBaNFs4Kpp5u22JmZXh +vTqSDmG4tNlCS5DuViFMFZe+VABNZLTejy0okQR6YnfIcbCRq1sQ/QbJ8VxzmrwW +zvyZZENU1TdXhPn+JdNK/WmaT0z19Khi1sEv/xnNyySJyxI7NrkM1vN/hbtt4cpa +Vz9gr/gMzHQWfCX4iU1h5xWuNVpBRU+qAVZJVTyX2y7NyBtzV8Vg1feDOhjNFdU= +-----END CERTIFICATE----- + + +EUS Ntz keyid 03d1cde438ea3db34d943181c1cd517d688062ef +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAsd08uJHHlceYgAAAAACxzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIxM1oXDTI1MDUyMjIwMzIxM1owQTE/MD0GA1UEAxM2RVVT +LU5UWi1LRVlJRC0wM0QxQ0RFNDM4RUEzREIzNEQ5NDMxODFDMUNENTE3RDY4ODA2 +MkVGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmxYZPVt+k46N5+qi +LeCAhSyIwVi1k7AU9vkG/yg0hA5kmR0wIzqTMRyfl14E+aTogCXfwywv3Uo9FSdW +SvfL9CmMDrZI4Jtmhh20yZBzpVy45lDIVKp0WXP5MlP2F4errPLp9700+zmi/+tE +A2E11NX+lQt0kWz4XMezFrGfXgVlDwqRG7Qr6vBxkapfEkI6hlO6iH9snkvNk5pR +5XrYhyoDnAuhNlYBdkzmA8gIof8YiIhjSDTYINshL+gO7Avp15OQGk8t9bIIeO99 +wWXMwDsOXWuCHgT+keZzP5ukqvSjArGDAO1SVXt1GSL5HtXKETqbZ0ZkqUL+88Rm +VI/B+E2Vu8jiWGN7eO/b0uN1Io5Z9C5OSV4b/sl7nnZ8mzgsbauhC1GYa5/vlNNx +ls0Nqlu6QoNLenpx+0fLxjes5dVHgvjTIR+LZs+OsXrwtWRh/vS2FxD7ZNlKSBHR +anV4PQfwuDG/6LbAA8abxgWX2XnzT2KHswEaJbSP7zf5Oet83/gR7ccpsQKpPhjE +9//ipuCSNNa6dJ7xT2sNVyUfusqG4A2wkz6oOOUB6n2DEQAloaPvMIUp5VBjGsWu +NMKucDrgcRdTsgbT3yBlHcXpkP5W8Tnax+dq++0+0zff/jDIoEubgNKT2Ztck/8G +QDDh+oEJB2LPoDjtT6Fmu7mX5KcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKXvxE2EQok2iinW +aEZE6tvbAMTQMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAjeckwsYACNsO+rSJI7NFfVNLeSTGwaWEVKOn2mTrT1hc +nSsiHPkTkMCRB+XUFTXRDRFDl3EtfglCd7c7yxOabBsXmE4W5J1fXy9daUuPY2G+ +IujsHUwKQki/VogAb27hsQVZ17hTxaeaZJDBP5MZbJgzLGyeDkYHHxSdNDYxVvAS +N4UZtdqLxAo4nnszrPCh7jzkbTNB+EagrO7xSllWG/guNZEqlqZj00ypbHU/DTPl +C3vW9nPBrVJvQQOkS6xWKtnTvu23VsbyZsj/mWf3DF7OMFWwf3wUye/mQsiLg/Xy +dbaNrlytXzp3Gc2FlwEGivJCPDqqo8M6zqWd7BuLRpNOUEtDmdNawHcBCjSba/yv ++AXwqIXAWeZYKRDs5K++nlr1o9ohhDUvxKtUl86ml4mNEHQvI4AkPQgdatNmgLo6 +xCG8YEkLPAu+y8pElLK/zUMdIIiX6leD5O4F81lh1K2h8hw8jgEYl1p0mX2loELJ +MgYHysFe+Dnrry+vLM6vC/5z5jHP0kpEkUhYlbo2NlVpYSpcIjjDKqYYtkOaAvVq +1q0iI6UD3nSqyruEWSqN2Sjy9BCIq1QBKcTKkFTONjLyI6ldBn5B6rCJBWk1rb3B +RCOBKo8OSa/K4e9xRjJTk3deSJ4kpsPCh5FWwGRXLywxdX5o3jv+HdvyDTCegBE= +-----END CERTIFICATE----- + + +EUS Ntz keyid ebb2f4e312e6529c4ed0cdb68228580ae5203d45 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAsl2ucn4ZGzTBQAAAAACyTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIxNFoXDTI1MDUyMjIwMzIxNFowQTE/MD0GA1UEAxM2RVVT +LU5UWi1LRVlJRC1FQkIyRjRFMzEyRTY1MjlDNEVEMENEQjY4MjI4NTgwQUU1MjAz +RDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArvXdfXA7YBKeYidc +zLvZKBHkXivf4Nz21u8y51OFdAB3GT5D+UXeGDNKs9vpDWceZ3Y0eksEOnmVzWcW +pnt3uyg0Ki/ri9QYoqlWwFEuIKI+SOowOL4aE32Sp9N7F0Mt3xYFqosHMgsRgYXy +buYhFXButO6kuPQn7CKo1YUa6qXmfqQ9sOSAwQBwjfWIqNV5QKAwlSKg5uNKqtUK +nzVeRIlFXnAMohloPbw80u7ZV34UtEntB3PPFpJdpn8xMOY4QQ0rlPvj3KL/ROMW +E81YtwDAAnnDvzQpZ/W0lPpkbErGmzBHtT4WxYwPEmrR8xdlR9jPv/54h9JSm1E6 +ZBvs7PPB4hr5rKbNjOPfKHAUxGPlweAPw5xWEvzVbun1NS9l00PJwRJFxunM6nEO +rr1urSO9aODt/UrYvW4Fht/syGNLax6DV1XJbR7XeASseMnbSPN+Owo0JIZxGrvf +/snz+XXzgkqirLgC8tI10v2nOPhKqwfUBHIf/MYdul9//LTGWA5nthZAuAHCzNMG +5w9HgJj6l2/TqNVL/0fjyjf+opurrAxNf37xx0FC3t1pbqdavfyO4yRvVDa3ym0a +XVhXm4f11NRbYQ17ndDPgbFojAqtsmhEDoVKuYHRzon7+YdtSi0lGmnBDzM96AUa +PexNqJv0UXy3jeuvDrycUpHckfMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKnlilf+31+yXz6j +yeSBrxhnLGtXMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAmyqS6qavV5Gvg7Mk09qgMQ5+e6n9Q98zTkyQvp71EnJX +zZ84zOudX/qFiHo9qP+fsB42fe2eqYsRpHdkLLdTiBSkENghiyF6pjPy+f5+YXTq +zAsE7rkGNhNCUiz2Fo/GdKQw2HB3+fc9oNn19adGldL6JrrEGUiD9c62pMWV4S7u +AnaCB27nfcwIa0ABBaiaHqz8mCgR43bx9oiHNrdi4TEdX0enEP+nRV+hzTEjKNxy +qdG6677D5ZRt//3bW3w9Xc571fyCSkAAHZ6gmqlfgiIuNyeeLUpyGC2F+9ARAH99 +kBNBFiMQoFyzaN8TqqA7q0a8DYTJFZA0DlTle+bRC8FlEtBOvRKgDPwuL3BL7aWq +0pIaqG185Up1KDJrNYNvNwDMsXADaSS9c8WMDz79kdrxR0qZ/xomgWcqQnMWN7X6 +bfnQ5gkUAFuHWfVS3yayANA36h0oMdteFRzORgZiAR0DxSybxtaQ9rYIs/oUVgGD +e2+1pdeHR2lIKJiCtiC4osvNwJXWQ5Iitr8PxzQ6/PArtvljJS8c1AXhelo5fYFs +fX7YG2nHoZDFy5h63mYGIceJvXjBaVgvjEueQxgNNsRijTfH5/4tGYyvRmwmhwuI +HuChptfQvoo3rnR7DmFpPJHZRa6MYmMfjlJ2MoOJIb+pAFfv4Dhf0WiJ11KdAFA= +-----END CERTIFICATE----- + + +EUS QCOM KeyId 79100C2EA35C4FC14BDE159B56326FB731D1D512 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAGaJjZ/eOI6nzgAAAAAAZjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDYxNjIwNTgxMVoXDTI5MTIzMTIwNTgxMVowQjFAMD4GA1UEAxM3RVVT +LVFDT00tS2V5SWQtNzkxMDBDMkVBMzVDNEZDMTRCREUxNTlCNTYzMjZGQjczMUQx +RDUxMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMPaZJdOrwQCfJ6u +gUp+iHNIGlpxYuJnNBh0fcJajgyYNTVpHt0C5Zsw1sjQqL+sAZXLSNEs0vp2X6Og ++doBiVUVBdXRh2hrbSsI3NRqWP6qcdxg8XJR+rus/9JVz6JzuIEFjRTNIq7JJn8L ++/JwfNPEjF1NYLm4uS6H1m/5A4KtwG2DQ2ouP4Qf4b0RuqKPdQHs1jhXBtUTAUYR +TTaZHCpyn0cIQT4KHIDc3tP4xLkFuwywdhIA7lg3WFm5h+T88+LzH8J82mtGPEWH +RLOYPcb8fQcZJVcX+C3WGcRBMGVJ0kz63kI60mjmvkZZ5Z5rCT80g7ig2xwiVN7g +8F8LLNkCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFGOvUFZBSJ+Z/7QGuzTXVaTXzNtBMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAdpiJ +bMsAALIIbG644A0Izqwi0PlRcOtlCHpX70NLfVKqnZHUzF6wTr5JmDuN1ljUOoDd +503M/3md9JXw98nBRWG+BJSVK2JVQJHFwCLh4s70wPPWsRJg+AEjXnHxww/KKkcs +APMcCTVhVRMNXwH7YQqDJsSCtum2Oh4UVR0uYWN0JK2vKxPUT+zCX4Xts1PZ+Fhp +5+IOdSON08FAbl+cgqHbLdNwoHg01dqSpsSl2HElw1NvUE6CrLQaCswgu3T/Ydk4 +9Lg3AZRaMg69ol2g6QuawT3eZTUKc8T6FsDVtuwOW84MPyqHDpBx383JxVpZ/Osm +qoiiXwEsvXr4AVgnj+QJ6hNTB1m6dMIfWcDOdoopZXV5cHwsmgP/lpQCAw+BMn6m ++fP4ceAlNKP/tVLymqp2cLL9hV/EhZPjnp/Q7T3p9N/tJRN5+cNpN9V+hf44v3+0 +LUKtGLnCHs58PL1dZ7uAT5XT3tXe5VYy8lGpgGeGnxwvKdmCCkPArZWYkr8FaHMI +rU/3W8vFC1Ejxqnv1D2/kJ4w5m5LeMMtulg9zN8regr55yEeorQoUTNo8QB7kEcQ +sbQ9y9zsdZYUBKK5f3hPcGSCzS1ruRjR4igv2QM0AmvtEn52Ugn/Uva1JEmM3mbe +H+R/zjmqvKOz53+ezORej/XmG6dn72+UXk0GLNk= +-----END CERTIFICATE----- + + +EUS STM KEYID 08CBB05CA4510B2A73299184EDDC9CCE42911211 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAt0qtrSuQ36cqgAAAAAC3TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYyOVoXDTI1MDYxODE5MTYyOVowQTE/MD0GA1UEAxM2RVVT +LVNUTS1LRVlJRC0wOENCQjA1Q0E0NTEwQjJBNzMyOTkxODRFRERDOUNDRTQyOTEx +MjExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EK0uRm9kplSrj05 +AghoxYZrhF6zq4Sh7YkRyFwgl88bkimSwSBEr/tZARSdp6mzOrXKEM71OI9lwCNb +biQvgIFZy49l6Hxmcdj19VfllIVyocpqK7q87VSyGfUuBbXqut+JuCcCCnJBBOjm +UVrBjJni9P5mSQOziwYVeVvCUGRVIFd5xC2nuODWag0rJrr/Dn1uS6cApKd+utiJ +X3J196AsDrhzs7n+tjVOxdj3Kk8/fmj0k2bXP0bgyXkhPsrBR6LE+/qLt9WwMj+E +h2lM9KU49e/eBEEWCgcpMIC+xwyyf3Yin4Wg4yGmGNfL0zoGK4ogYsMQMbeJYYjm +3j0gP5Z0zsc8rbweQoOVEjaB5Z3xDGBYBY9QOT2bSvpjlE4E4PNQLIYDl4PHfab7 +jrFIgSgZnkiHWfXlCUISZ9w/eJKG7WsUTVrtDtVzV5c+NJ/mpkiOkpaml+614g1L +FpUkb7BXl7U7ZdTolyUr8/UfK86PSQwlAR9W6QKakxVr74+Ki0M8h0OwQCRSzfQq +WySHMUinzqP5fvZ79r4fvrdCNrTv5m16MxXRSnv7ecSmnmOoHIsQvahNe4hhR42I +cpJ8EGP/HCzxy1atcJ2wStcbOoVvlZHI9vwTqF9Zn8g4N/dvGoumEq3suL1hff93 +CronRT/loSBAgc922EBQmsk+i5sCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOG19Fwjr9WvIqK4 +3gKzkIAMW/gZMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAOyLYuC3xmS5TpVubmYVAgv/pYgu/l9D2w0b/B6zeAk0p +4mzt85T5uAHjn1U39GWgYGiRBAqBMwWsw8VkbNAWjuHRmcOIilBzaWBeVhlhjI4W +MGBU0gtgb7EA1lnZWeJ4ShcgVML3RlJHSBo+bMQc2zX9Rg51crX8gluRfwzeh+p3 +VmP11aRzLHa+hzomCf0ggvFN8ynZUYGm7SMKnLHg0r1Ltya5/hHOhkKFpHZTUbVR +fylxPyYYe7mY7ym1VFklNbgOU0X+dM8w9yaHySPZnHXsYvWl1u+vLAY1S27CgaD7 +RhDLEtIA/JTvmVwNJjb18GoOlpJrL3TUfGUCK/RwBgqBWjqHqZ5cH6rNkP123uZl +FxGLdWdCG96vAO5psufExlYnD1GCEIw1wbqHTiRgL/7HF0ZtzWZG+rgqo6CNuLIj +j20gm8C2P+s5ajnXf9tQOdc0t36bpY8nP1qEhJVLPMFf9iCvJAycDVRujzpyq83M +l3SqReUrLCbw4qGz6RIv3LGjoqL6OP6mfzHsvkiki2aXp0+tIyGANzju7Ewr+N7F +6mx0EI6n2DR6u4WZ3mMQOS1K+BkSBAdmUPa9uTzWv43PaGyJFRs832U6YbjkiLHN +PSwqEjPs2BNFbpmcUMzqz4u/hOwTVkCMmWf2KfQbH9Q4yzeb28n7VF0LsriXEf0= +-----END CERTIFICATE----- + + +EUS STM KEYID 1ADB994AB58BE57A0CC9B900E7851E1A43C08660 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAQjCmL7EEWKHxAAAAAABCDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjUzN1oXDTI5MTIzMTE4MjUzN1owQTE/MD0GA1UEAxM2RVVT +LVNUTS1LRVlJRC0xQURCOTk0QUI1OEJFNTdBMENDOUI5MDBFNzg1MUUxQTQzQzA4 +NjYwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmWPfZZEgPJQyEQWh +4WgoZ31OKbtV4gDUfYrzObzQrUVZih0wHqKbjKvlb6ZnEryf0ygnZbn7RUggkftJ +nMzjOn4uqoysCJMTybG1C12HHiSFQll+F88I8gtPwSY436URV4SkH8JIQRyKH0rQ +U7DdCEc1+Pj8sqhOj3yg8Cx6JcSFEpbyGyq4mneJ/5+iT30vefqXbMv7P6tEnfa7 +ix6GBErlUyo+kiqyGtK0x5S7I9w+oNNManZHcVYGnbXVnowNWPEa5/sG4VIUJg5n +VhKJq2uK+5qTetfquYowhyC2Y0xJKBUQGXAGc1qDZJ6udReihV/ibCYz1x2k9EWu +56w7SwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUD508kav3b7tlXDZCstZQRz0yNdowHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBjYN8w +IviKh2SWtsB9L3PEA9eQZJPthcyn8BfgefQjPTar7bmT2B2OV/0IqpIAtyT4nlgu +W3oI6M8YlHYYKF8vDYKInC/wqWkOLNnijzYcJIkMAEHixbHgNqx9E/qQGk9uCgLK +MJhoENN+HTEzOOeJMqnpOU8wmePD3ejwxV3oJlKZ9jX5D9LcuHz385eI4OePgIVg +QbE4gLtdCSzeOJXSn8K1vJgvQctnvEmtWdRGH61GQ0iM8423rC4KARZCQzWGJ4OT +H5u4jT56snbi62nVEs9U25cJXpspCiGsXKJMytF8CmfkPmw1dotiWdahctCOx1wW +BUdyZQZp4FdCcxHRYknFBd4KnqbnIhZEFQFcBLJVOgm0JhXV9j+lQo2vi9Z8+2TM +6wh34QhEZhE9ZjE9eOMm9r9syoUqahvx9ZbczHWDoZtzjbCgoz+B5/d6J1Cqus/F +8VQ68JO1YlWmaPVOLQ2ecaAarBYafRI/bpYoOsX8m7C8nTTPNwjIJ/1lyOdTQDHF +uHcv/Ck/TL6dI5VaU6AiIjZyMLZS7SejkDwNRj2APXicrOmL/toDqYmAWY5xp225 +dClh/e2hWPv5LbkJRUeed4UYqlD/EPCyMvBZkjiA4lzoRXvu2r1tmuQ2xStJ14Hu +NOb1l+q11XUTnPvxIxAFEq+NOZGQZCoj/SkKvA== +-----END CERTIFICATE----- + + +EUS STM KEYID 1ADB994AB58BE57A0CC9B900E7851E1A43C08660 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAjn5u2odSWRHfwAAAAACOTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkxNVoXDTI1MDMyMTIwMjkxNVowQTE/MD0GA1UEAxM2RVVT +LVNUTS1LRVlJRC0xQURCOTk0QUI1OEJFNTdBMENDOUI5MDBFNzg1MUUxQTQzQzA4 +NjYwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2+Ij+YaPqXGfi/l8 +6UUtWVZelvTdmhLNkBoMtQO/Cb6/91VS6DlMviooiHg5p8v5TFXSMZY7SKLz9tMa +gX+QYqvsWsegf4EyJ5spdX0elsX6DnzgYJZ6ypS65rJp3cR9u9PEtG4Ahh+dJeiu +xxCE3MA0JG73/N09MnpDltbIe/SbPaceuk3QOz2EmtElIl0ARLBZt0DFo1NTr4+e +/Y8eAtNP9wnOxcZxXOnoerVrpL8L2bb6JLDNUiIdfugVLx5eouzTqAJ3uVWaz8zX +CCCl2jmaMHaQN6dg3xgSZReq3UjVEh1Mg12BBx0YgUBVYI+jazQe1ebPUnN3SlBP +Gw85ww0W+btMd/ZOrJz+6LtSpQoOm/AN7/tviTR9R+wUavQK4WBEc3ugq1uMQ6YF +QmFGqhz17CyGhSGZ30WO9NEe+82blDLgoMxPra5Ei4Ynkf5gn/JjMGxdjbyr1PWi +snTo1JXy1gOLyaNS52MFZFDlCmqgbFDNN5iohwI4W2wCaT0flXRNRnYqnWLUxxv5 +MaZR7nvI5G46z09PSYr1TyWTIwLveaYnvlrndLfXqMGuVYikx023YvD5W79HW/7M +C4kZZUtv3099TZZCDSqhvT5wkrrIWdUdOphTdaYyyHIDRl9cE6Tbx1U1Ig3GF4W9 +Rkv6HknC/h75YolWhN+g+/2TpCUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLhf1WfKksQOzwzY +H20/A1VvOKZRMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAQar+KGz3a1Ped8CAUJTZ20aOapOpEDcnH/Vw8ajPoUWG +Kt2PuLXB5s+K+jKhS7ekvwpIy0JjccGWuTo3hA4kOetYzj23qUSSWbn/2xi+al7n +zu+4QFOvwZv7Qpl+nQUrcQp6ekTRMcrwX3SFqeK8yAytV9HpSJCIV4bXxcnmsl5f +E9wQf99jitWekMJ1Ux5oFysDKRUDxYxmPq69SjJ+WYkLhMLZkPoCIpCNnLYMTeEo +dteCwzbCoypS5f48j+NL2mrbwHo8V/qFj/tiw6E4zoTyuhL0MCpKlKk1LH0Rx2gf +R6pXQwZweYy2O11X8/PALMXeQZn23VWK5BPKyexpkxNI8F/aLv37qRuS3klxN4w/ +wggKgyXxbgrjVYWWmi2iwKHu/iM7aSID/cyK3bRTjYSmrOAeB+XX+cu545q3hHCh +k9YCHv7bKHz31GJvgHXI2DUmDMuE7buV33/VuwCWlzLnuugptRpRgbsE0SF2NG0e +k5YfllNfXJ7znYIcOTZZrsk8U0pnZW6/pqw+2rKnYwcX4VvaajGf+7TqoZcIbrJo +83J2megARogm4TwHK3hJ2nk6vW/KXKCo7TTM2xPiUZs9A6zH9jLhEV3hxf2ees0G +ueb84AMx9EqpO3kBsGRon252oczsF0Gd1FtOneVG1GtgKiO1eol8J5Zll1bsmOM= +-----END CERTIFICATE----- + + +EUS STM KEYID 662D8F1CECDFF147A8B6F0EA296AF7F24CADF9CF +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAt/MAwg1kiPdsQAAAAAC3zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzMFoXDTI1MDYxODE5MTYzMFowQTE/MD0GA1UEAxM2RVVT +LVNUTS1LRVlJRC02NjJEOEYxQ0VDREZGMTQ3QThCNkYwRUEyOTZBRjdGMjRDQURG +OUNGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwnBn2oPMuRmIFgLl +7An4G5qc/Fn+itWOP0HAemugHqtpHOK1q1ORz8noWBwiscKYgFD+frk4/nYYk7Ki +QhoshvZn/ySqAgldk6H6zyVSs51JQOz0DhERHIcwX0ezryuZbxIqKOu4Krch502w +Hqntc19Hvm7MXUPgqGOJopnCBxNypCJsvzy/z81Kl/Q+kLHI1UomnYDfm5g2NYKw +gJ2/pXJOLTXoO8GCN2ayRA7cKp+lFgs+5+hISaWQeOWBfM9o50TDAig6hP8yfMG1 +/8Gz17bTAZfK/PSi6q/RorDoI850opGQ274lwCOeUil2Ryu1RV4LSs1+WSFUKuB3 +hju6mvWWKRX1GqqGoEH9QMZN8oRb3UIsuxOWOIPYC6vpXNlcl9ia0axK9ggl0X/3 +ciQkhUQOmyBfLsMPfQcX5ZiEuF4iCMPC7/ZSX5P6ppLGOZWJ5nmhdBLHCkJiczFk +SJ4gRMP0x7eczG69YIxqmxOXW8ZSwlTcEKWzEtmhpuUUtLskfmfDwbamXOGb9IZJ +03lP3rm9zuuz5JYeBobBVxxVXgxIei+Q+YgZyPdnCT2XmAn8QcKTmrdEO0o/mOSD +f0OKOVLCEfroVtAxPe9Y4YkVMNibBexrNmVLAtG8w/L+D0Ts/4gfE0tKSNGs23ZH +WK1UJ0uWxhbKpm75d76f7C0g6okCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKPMQ0hh00kg//1Z +Zj1bRHPyld9dMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAIQntUhVmHC9zWlLnrT/qeFwWjHSi8tRAxDYoIj/hbYqQ +UpFlSyjJAixnOifO/YQmHbW+43Vv2vXDN9DurMCdeojD0OuB1ctz3YFOJ7k7spTE +mChENIrIToWC1O7kEse5gSPB5DEducKDxARaw+9ee2DkWvl0Wh7TJll62ovz/daW +lmSJPpTkkebTskTebX/zWCXmEJ5prgTToHejlDX/LbiGjWManHKWustHFY5jebZR +FT9ITAT6kR5zfS1WEfCfiyOZQg3/Izo2SntsnHtBDKWolxkrv4dPSZcWokARtS4r +DK5MeaJW+mlNStOLznhhdYkMogO3ihEmS44j9g7kzAwGEtHR9ORm52xZTGthx1nr +6f1pmEaUJizB5UFomqvmnxI25t9WUO/pAoCTpF1rW1NWifePBf8s0mky1xdOkPfC +5Gbr+HYiIi3kUaEsFTac/+qDPYgIJ0mRfPwO8GtnXB64fYuheWXVgEPWnzViU+4Y +TRSrFkr3YiNCwr1446/PGbTtAGMuu0XbZJGiRPYbmTWIgGa4vOkPUe+i6Wyxex5D +kf4tl+uqUARGSy7aM6mWS5FWV6yNVyne9N4MbmZHiuCPJ4oNlMNEi80U1Xsn/5Ma +7Tt/3fyLobcOslYU7YB9zu4MYL7yhPqP82Jqm1Mc8bZFDfihAchLeR7Zhh9ev0g= +-----END CERTIFICATE----- + + +EUS STM KEYID 6B2780800A941CB47EFBCABDD8D1F01D529BF36C +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAtySoWzQjY2ijwAAAAAC3DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYyOFoXDTI1MDYxODE5MTYyOFowQTE/MD0GA1UEAxM2RVVT +LVNUTS1LRVlJRC02QjI3ODA4MDBBOTQxQ0I0N0VGQkNBQkREOEQxRjAxRDUyOUJG +MzZDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsDYMuLAww70CgUBb +B/QT0EiBvwcE+bq9qwKi1cYNrgnpgrgJZf7dZUGoyiFJLs+r481elwToABfbHE9M +fHW5aTYjG9iKrtSuzrEIOnHFZVNZZfo5UJc2A6U0bZ1Ik5p3llKEQSV1Gi6rngN4 +gpo0KTRuuyVAO5ovwHWiPMpRj42IQz88tdK+T5/QengkDFzXyY2oJrZLyfWJ9Aib +n2e7ncEMLkcKdBUe/g8Jqtp/yzD0HP7AlMb6Xi74x5uVPIuW+Y0gvhBBl80u3vnz +cUpNYQzB+4NaMXzU7DaFAsMaW8EGMBCuAdgQ20piyJkDkHVs9hW29hLAdQcQQQ/s +UAybHqHf5p69E+U3Miv14oRXOJdabVZg9+zEIrPXm1AqfnCG9gWb69n0XnLLz4VM +GDrXI05Afwx7j1+jsXhL2qmVexrkz1Z6fyuFtidILmgCgiGdAY891YuPWGbV2sGp +gwVlX30s1iDW+h/iR58nPy3kuOF1cQfvoCY8pv7zeydbPmnX2KRibwmorZTiqd+J +Mw+6gvynIhW+GHBQD1RX7EoGF+mtTQEg5gMkyYRGi1cWD1adRWkiYypz+GMBHs4/ +zaQnQvpeAMBGkDrNwWWmohnTFVoFw5R8s3K0eT/RSySl7xVrBzLdWlrRsbhrtxHO +klpFFKJPHz0FbrnUMBku6DRUzxMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCBY05FUrXOCUvlU +H0wnnkh42EqUMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAgqTDdvG9I8b+3kc8bao4Z29QjZ4uZdTkjP2q9GZB8jHf +fkJTUWrDwWGK6/ckcZ2nsk5nMEOKINR86kKqbkQAAB6inKi82J1gnoODrvLD7c7x +47qDDSNwDM1Pe5P4RmBUHoIDuZiRFUp0yAincXu5D1izVlRwVCM+VdiVgTKZ6Smk +W2Esd91g93MUTKi56pH7hB2AcpOPrt/qZjLam2cGaNn0dbs/5myhtll9801efGmF +Xapn/4+ZUh9aJIqE84XKkIjfMixaPqtew59B4XQFyb9rY6wzuPbmoLnkEScmVkqM +tzXpdK9FDT5N9AfgtoEgfhkYO5EvZqa0UsKWHId6xtxZ9jaaUTmA2DcUbWM/Yh1x +N/x3zz6v/GQnK2j0CCdWG+5aKiRIbKH6OLEGj6dW7ExtFXhRhJLTIfFDkxoSgZHZ +BjWRDPk3H/5ViTkBVD379tDoDo52UhHamoDokVkXJ6pj1pQSAjl9SAWzzEWEiFmG +BisH7cxYZQHWL7PoKH05cg/Dac4A5DQ1nNfvzqgyDo2zl8X2YwNDM/rebEaR1cX6 +OKTvx+v7NF8fAPmMET01czBWgKfQGtj49NEXCgtw77d+sv5Vl4i7DLd8/QVAKSeL +4xZHxxNFdM1WZejmXPeycWdrgSAwmuHRuYLSJz7blCjiSS9WDlK/SkGPO1/JxkM= +-----END CERTIFICATE----- + + +EUS STM KEYID 9DA5C72CA00BE14B85B3E535C8B07C83E85BDFF6 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAt5MuegjmoFIVwAAAAAC3jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYyOVoXDTI1MDYxODE5MTYyOVowQTE/MD0GA1UEAxM2RVVT +LVNUTS1LRVlJRC05REE1QzcyQ0EwMEJFMTRCODVCM0U1MzVDOEIwN0M4M0U4NUJE +RkY2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvgG2WQ+UWfdeFmRO +k/W0eJDWAp9Ov1zwMNIssrPKLsWP0Bi9AcdTVAFgJABiPka3hCf2Fhr2tzcyNARq +pzVsT+pU/JOtnEAasVf7cG1F2XrmZs68YRzNWhgOt8IX6Xg/KnCImAiGQnvLWAcV +gW1RSH+9nAZb3w9ulsX8gJXZJSQ70f2/gsPOe4z8/kNzFpxvXYKHRIvW0SWAutzW +H3mPum2TJj4Y6c35J+WTyv4FYrZ2mNk5xel9T1BktdQYTpG0vGmlNIAbPvRyiTe7 +y0DVCsttuY0buzwRPDKMcpKhTVVTDQMX7GerPMxRCRWMZ7ihX6Z1luSN6G7yKIyE +9i4hF1oqi5kQgmd3h3XeyW1KhjJc3wCEQuD7Id1Adcf70DQ56JyPW+ZbDYJzXqsh +VWSBad6+2atTkdDU7kS5QF95iKE2qvYa1XxTA+rjCw58w/XyH+q9uX4pZoaCMVeH +EIE11G18OPvq7fKuuXMv5ky4LyZB7i+uiBZgCZRiQ78cQ+Z6OwbME8lpmdFacBvu +qw6MU66yizNtCFhFmx7k8qnlrWEQDXRySsD/NlV5QmgSrgCWfi29q2lrIVLhHpzU +aFTyr2e1sck84VwSKER23bEuSIvpaFcmn1NTjJS7en5pkAoW7JnYiiifTMta5uOq +D+gf5EnJXzHDrtl2iTyYHBUovA0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCGqEQN1izKsPHds +uSSSimVqqH+ZMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAjaY1gfoPF/RKP+kU9HggH5V5mkEyw8ezxV8dNFYI81TR +/WxVyxSmqUfSK6Nt1HgHGysl6s1mZGhDLufxrGAf+GqFPWdvQM3f6eTIpo+1sRcT +DdX2vfqaO7O/EMXWrg6ePjU82YdKLW7apGyVI0A20L3rl5I3xwb8RtE/45qU3U4N +vHs2oUtcgoyvZolhU5K+a+g7v7yCmP8L+k79IpHXIrCdeyAWiJCaOAKULdNbS2qM +YnK9Zw7CD+h5hzKKaRzpHuNiDiNyCHAQ2CVJ8xD/NtThOPANj+allQe5uUVxdXAY +tRHwKOwda3fXHTHysUwYordSCrBzHqjF96QvB6jhzG59zzVe4MOtiOAt29p2k3rK +ipnycEzDldM7LDIAJzVpPpnGD6UBu7kFW8mzmNIVgbjZP67VuZCy+p5XK2eV6rYg +Rm55BSn8qu3zl/4k0cvoFfc8az+E5KX+2mKSALtJxBnoW/bQg7OVaeiIS7yisySu +Ewmq2f6qvoRTIzTv3U4O0VzWBzGdbJ48tskFLmS1FSf2Nr+r/x1+MJhpOyh3JErb +kh2TkHsdqvO1p1BSE12Ojnuf1QkPF16eB8Mt5ITITtc0Uu1Wa9oQE8rpM8f3AV/e +RPoKYf9Ijq+N3wXkN3sTCIwsLskWF85O5A1LhnXVoo6JS/vHWVgCC1/N+WhIhGA= +-----END CERTIFICATE----- + + +EUS STM KEYID BD963E9AD574AAD94FAD6CBF416DD85B4A559942 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAuBSL3BNOU2C0gAAAAAC4DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzMVoXDTI1MDYxODE5MTYzMVowQTE/MD0GA1UEAxM2RVVT +LVNUTS1LRVlJRC1CRDk2M0U5QUQ1NzRBQUQ5NEZBRDZDQkY0MTZERDg1QjRBNTU5 +OTQyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsl4kT0dH1l6E5TTB +QSnOPtSr06sS8OxpID1o2d0Bjvy+IMckQZvDGOZQfY1CIrPXYuGDKfxnohjX4Lwg +JSRPP0sr2iVvWdlKiqKUb0qM0m2P2pjSeLaTW4cG6IUmi4GIz18Y1Wn3Ycfi3Z6E +3NIm/WDEMJeJhOonyKDdoo6xXq6oUzDRUVPYvGwRwjM7Avmry0ZFaOzrJnlY7o9O +KvyYWYDtt3gdydJVEeJBYvV87IF1CODLfy/9pITGRxP+Wa2c9R+nw0KlbGquEEVd +r6pdSr6cJqdMfVKK1S+WpfGUk38dy80wZRIWx69E1A+cUKp9vlAhwVEHNgmbmI1c +eQO3X1Yy7jwKF7+jqMBkOrt4d5hLvb23KnHk4MQ3RFDUIFnLb8j4jbjb0/bbPgOq +UU0JhQ+8Yx2Xc2CPEw9If4m4IrK4ihkx4w79zX5PVT6YlgG1B8Kbgo/Vlr96raMj +B9c/5zJ87i9N9aLDh79gH9bXRfjWJKEIRKOhvsdiUllCE0/LVyK1BVHYzvPyT4Uq +JSB+cUQ44GRmK/GQ/0afUVX+8mGWI1oLYbYf9z5ddSiZGPeMzQlpo6vzyHpr9mDG +SIA/X8XfyHH+85vzvIaeKDRe2hOphBRRQ6c6bxT5zTnyElkNraSAA/qSiKDqYxqM +9eXhW/4u3g2hcrXBZwGwvMClU30CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFN2MeNtl43s04CTb +j92JS/eS3Ao5MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAe8XE2Xfp9DYA09TZqyiM11ZpF8u7jeKu4kHvC/hbaeHh +PUAirQocfDAzDTbGpqMGD00aAS31hdk6NdLnTXtwHnFu5c2i2MRGliiK8T5JrVOE +Obj+gRuTkotCszcxBPeIBWkCFf8XXBbvkKasx/NsbcgQIqyvoJNZ9JiABwJv3EXK ++JA9pK1u61BFBYrAsAGankfMLGFJNQxlkski2/YsRWH6edjT8O6KiW7Cf8KUUvpy +kpySWHURcDSeITbt2S+ZTQAyLQVyyhE3yENcrpJ5U/gIm4KAqE95GeARDvsJpOzO +3Va3AT2e84KpAXcpHS5aY55sIng/bKw2fFnsp9/xT9Wiow+8wi+R/5TwdofgUkW1 +JRU5QCquvw+ThfRfwo+mUqi3dYMpEdW6TkO5ZRnomav9Z276NdR7mWkeXpTWgJ62 +BquRXll0kuyliK0WWM2mu9+rYai+3wNbIS4SW5+LjmkfyEOB+UnTU8R/L8bPBrrv +kE6VrvaRSurU+IDgvyLDQDWu6Y3UybfBvMVQ4ALnBYTxQAQTHtaQoFnfd3jcDfg2 +rBkhOZz7LzhMheET9Ar8f0kfgGmqSnud1TrW4Np2CCqm9H+4JYcrAujQ5kUThpBo +XSpFKx9uOZn2t9h10BBHQOdW6PAF7IveG+U/LLb+2t6+/ijGQGcTjrBisw0mGRo= +-----END CERTIFICATE----- + + +EUS STM KEYID CF23E59526E446C3FE4F13EB686F624D705305F2 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAQm9Vn5zfo6ucAAAAAABCTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjUzN1oXDTI5MTIzMTE4MjUzN1owQTE/MD0GA1UEAxM2RVVT +LVNUTS1LRVlJRC1DRjIzRTU5NTI2RTQ0NkMzRkU0RjEzRUI2ODZGNjI0RDcwNTMw +NUYyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2A+ppYSeqPKBdmgt +eSiydSSkw5KAWugshi8iRJ2kCe8CGVFnSsiVeG5mlu4f+ZvqSCHA7UgnWzbLpPC9 +qH65qZ2ZeNpHhu3gCWCKdTxCDpamvowtBXaDTpEMz9eGMMCJ05TsbhmOGDZBS665 +XqT9TvTEbOVuE36WiurHo6yOKM5znDd8YZ24U3clq5K712jz6WhlDfAITfJyqI83 +F6Lqh8Xsd92aUSJ9X//ww8sUe/hR1DAzpXDRvu+2c59vay/2a0DiJA6YH6hP6kZo +CvkjnJDF/pJM/MxGkVMOKdOOROTpRDnWLCmRyjn03rIP6Wo+hPR2Jy6KrH518YQ6 +bFCVswIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU1S9+iNOnxxvQwuvuqCdkbMr3xa0wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQB+CT0f +dYMg2kDG8uK94DF8fqikbUrQAcA7YP9qerTwJunxlVEk3Qgq4iR8/XAekflxNFZp +HzeROCAdsU5lJKljby14y2tbDy1MewvuRK/6DafCC6HQuJP95TitNkO+7OoDsMdp +Z35pahYVXu64cjcZCqAO4u3NhmV3C6+8XxSwTIbYe+5I6mnsJWjY9C11+DvwiJri +j21xsK3BpuPteSCITZXt9Le9+1cNRnVm7AsKeDwkkcyHEupdvXYIggEgHP4lygg8 +/ShwPw/OB6uUqIQHUQYYlfWfripVpDbKyDoqbkYn4celYdj+xfOqJX1nzxo0Opj2 +iadPyAuHNxIWPkLJOKgr9Q7HV3OPgGv4ndMrwrn7mlwt56obFkp8avVrdAXMvIT4 +zdzk8grXc/fWZBOaKnq/rMLHBavLvVEaT2uue7AfBOYW3X5F2TRX/mLTF8G8XNqt +PwpeCNwaJSKvEi6s/izwS7cCdvjWjzT9WrwTJbfGgCBZwqkXN9xwGzjVV2Auk0vH +l5TwsR7+MJ7ECSLBDsF5a3gNxVqlYq8zPVURr7ZSLWM68JEf6nB+Cvyyks4ukaB1 +Mjg+XLomBPP1PQ+qsT6zlILNGipK+AP27GUsAGqEbrY1E6k+M4IV5jDDYCJYSERd +/9c6B/RIEOrjBAizD+vm6W8uitdDUtHdcb230Q== +-----END CERTIFICATE----- + + +EUS STM KEYID CF23E59526E446C3FE4F13EB686F624D705305F2 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAjowVWWAySzRKQAAAAACOjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkxNloXDTI1MDMyMTIwMjkxNlowQTE/MD0GA1UEAxM2RVVT +LVNUTS1LRVlJRC1DRjIzRTU5NTI2RTQ0NkMzRkU0RjEzRUI2ODZGNjI0RDcwNTMw +NUYyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnvzYirB8407gAINy +YDuDGg3FQ1Lh/sYKpwOSunzRlkPSzYBLPe/KNNBdfKnptvc/NMx+ylkxRJrZacFZ +VcRQsrB3AAvaG9kmag83EdxD9TlV8Zc4X0T5H5vf4o4LrL/pLjmMD+wRI6FOdEXR +JF88/lcvxTTGD7a8tAW5/gbHJagIXkKgdAUb7rl93c4QIkrLfMRo9t1TvX7GxSQF +Ak4Y2I1QF6bqKHBBzPVE/OatV4mPyus8Vr8kHvT8AorCqc43W38dj5mlHnbPR6AY +rmww0NY2bgi3zjK0R9vkBJHT42bZ0/caFSpswpwSUuaufgMPgisV+3Z0x9U9rHDh +gwzcFLyv1ukwn5uxFZJuz/hoj98iZa/7orTGkN9p39YoT34ClH0qrgQdz+m6HwPQ +k6ijBlBQTr9d343V903wqfUzJQsqPdalWyKnlGS2nPy8DRpmHu/8RdGbCRIMNdeT +zcioF0T6rMPtpJbShxq25apG41Jk+xKKD3FWe8TKUefv58QouY/aUYMs+WfFBeA5 +MbJnnjdCiCgGAQJYIm17wQDs1VWtd+S/jwbyaeim2CbbVgJSFlnB7D5XHva3/LQa +jg8LWJJSsUWT/TJhxBtFDoho9DDMg7qx3Lqqh1Ht4Ktl7GGgKW1TT25adSP8Ug2i +V4jmC7X2covYVXvxslvV5YPRxBUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIDvG/PBCdSeL8VK +VE4YZOijZKqVMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAnI5HGgefnX391S+8YTkbMkUQMz5QY9uIAAf0PoqBgtwq +qrpjuUaEsNbkXr8LfHTaCiHUgePg73cUzmUMfqbItdZisA9uGvyFjfSZLCEkvdQ5 +G2hsVemtTPP6QHF+Xn1bD1SEaOoTpm/i7XVInTap+6Oz0DRB+doOnHTbx7ZRgJ+F +pjXCEVGEejr5a/G1Dd5/Zjxowbf3FWlhK1alaW+Um0V0GmsJMHuqj0IL4qtE+Cvj +QoqqZpEAikNp3d2uQR+To1fTQd5/6L4LyEgu9O4J9/sZUCDT2So85KqpEjpvCHbe +fFiFMPLvWdE1IElPgJTwTfK6toNLXkVgRhKol5QGG1ks06SjH48/SsTc5Q+j0sd0 +lvgyvPEQgOMn9SfzJnYng+I5qTKAZwARMNHHf+2qRcxJgd7fMrim6E2QKvCoetcP +tJfuYSALbqIS62GhQcWMivESraOvfd70rXQ/njCS1APBkO9umiBqW3ZEuHwnhPQ1 +2v7q9skdjmdPxUGTLX6mfqCvj5XSZatIMCXWKJu2a+ZnpfyrqTW/zVjupCQBWnX6 +1sXPQgYOSpYM/5xb0khaHjOGdaUX2gQiyEp8hUQY3Tqhzah1UUQIIHo7B/7yePos +kwL3tG/0HR5VtwWVvNi8QE69Z0q4my6jBN7hC+Sx6HgKSag40mJHTHO06AwbWvs= +-----END CERTIFICATE----- + + +EUS STM KEYID FB17D70D734870E919C4E8E603975E664E0E43DE +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAuFdC5FFVhw1xgAAAAAC4TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzMVoXDTI1MDYxODE5MTYzMVowQTE/MD0GA1UEAxM2RVVT +LVNUTS1LRVlJRC1GQjE3RDcwRDczNDg3MEU5MTlDNEU4RTYwMzk3NUU2NjRFMEU0 +M0RFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAj9PEvkl6sHE1+aij +I2w5SAwqh9QSYI8zvPc1bAjF3Wo0eDT3Wg1gxYgGmCD3jx4fwCLzEqu9didlvRVw +/N12BkwX8suKKaJ0kNsv3Fp9e3H98mRkY6yjFRCmCCqDydqCxqCyeGWSE5GjYHaD +F3dIGL/wMx+TJQlqAluNvctrqQbWqtkp7vLm7PPN+itf2vmudNJQ/rLNzjvnSKxP +Bfhq/FKgkP9EivzWV/zxudN+gHC9lga5SCh1splL91ZpXkdiZ3iN4/kSBvWO8C7/ +zhwILBlVR6pXq3CLKFSvPYGBQ1NUt+p4GZOBOS1dFDvvJEwp0HzkrqoTzFLGJRlu +GVy2sRVjjHPieFA7b1kwVaseCP8ohDwx62hulbScuPlRGs6Y7drPDKxnqENii1K6 +EwwEqzkFTEWchh4ID09oMRGQ7tpaRn7vEYWldSJmL4JfTeHYPXMjyCCL+j+ARIuZ +W6ApXjAZrUOdKPcy8BXTIyu/RD3SrQSSsKi652/Zb/BZlfo0sXLo+twG0/vX5LhD +5/wd0vnywmlWTGBQ3U3yJfPhLJfjHTbsp6kGw5JQtVWLvkqqRH7koBNXA9xfqBG5 +3RrX4HZU/GfpWQwh4xlCTYACbeCOfP6lsCfZD+IolviYpiXaHahLIBOe8g9Ub0KW +e8NZpEnZ2cvWgYqrMpOb9VJfW5sCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIqxF+rWvu+7aikS ++a3hTfT3pDm2MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAkIvFLoMymFtCiOgoh47Gv9NOpxkCO/FIT0KCZdNicVEQ +h8EMSXvxIUDOL2jxasYGQExDoH0WRdwkquFxLPThNvpkroSQ0V3/Z7eb8DnnRml6 +l0DTiDErin/7V3MB3tuTrFyn1whnOBaKivP966CXVy+YfmZ213bqF/sXJQJ3VSMh +DoCKnCTjeNlDWA6IY6hcqFEfw3HkegufsqpzSFlL7FqhkQIkfhEaihB6j8UhBQc5 +VAXeUYoUbS4zder0G1+YJxt5gGiBah3pUcEd9Y0xM+1gQ3JulYc713zImpktBBap +5CNB2EQqh2FjLe40csX+MRvmQJrprybBiasIP9IeVWCnJREwbr7vqPzMjnEzb2s+ +3rbybvbRMLlyXBSzmoVFaSWZ5xI5ww2fnzw99CX5h3UnoDVItVJDQ2+ydZkDpHqG +LZ6HUuXtQpfGf0E1Cjp78Evv1tU20kWv2WdfcjNKNkHF0GMjSnBAc2lRk2aooOT+ +/9joD/vvMmiIweOehicdJzoMUkkEE7H9e3qLE7mqsV40rf3FJR52YadyHA8MKBA3 +GFe1rZQDYVLQIy6jL8wBtO5NFu7U1t6QSg5VPdSYagcIo6p188GtjOLBeDf6k4bf +jJtACIHz/eo8oojK6bsZRCA0nuHFaJFLPMioi4y2NaucuHnmqkTRZEkUBoSfeRE= +-----END CERTIFICATE----- + + +EUS STM KeyId 0056A610D53D1B3B6DBD14094B2DCE7E1F756ED0 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAADLBtjRHGBY+QAAAAAAAMjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTE0OFoXDTI5MTIxOTE4NTE0OFowQTE/MD0GA1UEAxM2RVVT +LVNUTS1LZXlJZC0wMDU2QTYxMEQ1M0QxQjNCNkRCRDE0MDk0QjJEQ0U3RTFGNzU2 +RUQwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn1SPasolqGKkFmKl +qxsAJRawPsXgGwfrP4kNn6fKuMyyYNqQq7jE/ViSyAjaiIddaKvTDKs6FB2ts+sF +O8iNJIRQLLQDwYzFW7AJ/AnfnLyMFGGr9umq7T7KL/bbr1kUlfiH2T91bOh7ZW2f +vj/FNeVEncDIRv0TIwQQcFqqvdMLmTRY6+RMHgaT2Sx9U51OGGZh/TfEdEY6ia6K +b4hG3MoyHcTaBqFaFgM/N28OWfVSx5CsmVwm6ni5kZotr+zSMmMZjVj8vnkNmMke +Oo7byt+D9vLbvjotrBryeF5o9zwVvvWjSwQyGeZRbia/FsBeLmgseWwHOuMaQfsO +LG1vjQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU0Ua8rd4q3PcsNh8ct0FqiJjrEUAwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQADb5vA +hHPd4xvj3ZsTlVG61LBJ/DS85Avn6xsGu7GhcEkHVb8w18G0xoSwHTqGQT2ujRc+ +T7GXKar8Kzfg2pjwsLEHeylMSmJzfxVRtfT+Uw5VjD55o/J4XnWx5RYmWieJTFAL +wiMjcBUvLopkZt6tLpDdKqSmJxcd70ZrS4/GPcg8JQricHj72G4WIKVDH/rTVKxQ +HAMt63xL7DR1gHBuP4SSqaBMBOBpzoRrwAkQykqkT94F1bF83PSF1hS7iLgmx1bU +X7x42T6GGomWtj0J54Epv+hs48aUM0SOcqOBfUt2P8HGepIa4n7N2cR1cHqlHhU7 +MRQ18v9E2Y64nEwkXgHaqysmlh+pBH+AaKCLxUNj4v7+PvDNZiumqRM1K2wS5lO3 +3exRTKLVJjoD+t26C5gw7DasrZrIb8CxBVil5gQf4LW0+MUjiOcuRMDqZ6tScQX1 +dRNbxy55tny5rXAmXztCpMcq4pTHPyl+AQ3c4bLaGIsoSQ7dXPQuh35SOuUdqS+V +onGVVYd3pAQ5lh6dVFAc2rH2Tk3FBWjYkQtX0rOGl9COW6pclFcgqjRkouHGYL0u +T34g8u1THbKNMzSVtUbqezw8zk3dd6+7oS5+l1ze61wNrpmzwUm/L9We96hMv82s +qw9Z7SFiI9f4NKmvws6TX6Z3xrWYLBhg/lJiUw== +-----END CERTIFICATE----- + + +EUS STM KeyId 571f806b47cce79bfa35947ced88b8d1005ae09e +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAADVHvjrRtNcwGQAAAAAANTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTIwNVoXDTI5MTIxOTE4NTIwNVowQTE/MD0GA1UEAxM2RVVT +LVNUTS1LZXlJZC01NzFmODA2YjQ3Y2NlNzliZmEzNTk0N2NlZDg4YjhkMTAwNWFl +MDllMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApuq3dqWshuM7VDm+ +TYEF6FTIFhl9n9u5JBBEpRLn92tw65iC3ErDZkLXoWvv61NlLoj0J4i30m9dik8q +ARnyELUuIv9y45KIqNiiPiR71ViRTTpEI7GJjlgPXViAksWimPOE/hGrqeGauM82 +pzcbY+ERIyjQgxoEBtL909yjvKq3Y7HFaGIfdHGPfJ1Odgy+wzVUtBC5ljU0zLN1 +GMsoXG5Qm4If9+7WoF9h3asZjizSMpf8AOX2IMiH+JAEtzRtsv4DSyZAH6NS+Inx +M64uafa60q8CKjyrBxpCauVWRO3ryDH44dmnDS1fpPH07y0qcrl+NsNo6bz24qz1 +5S1+cQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU2g674DMuFkUWdiL/RuP3mnlsvwcwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQB3hsNn +KY3ZW2T30lHv2UEy8iiNA14VOOunU2gmMuXQp52bAjSPP3XYgkhQHbuqWBSW9mbA +UH9kwYccsFI1FhLr6/kpSuKwFvpn6qLq3bdYQG02y0+IvbmTepdAyj5OMhTJ+7e7 +SRHQ62nIMFDcjSlKiWiKpTL63EZ5rvfjF5GrBMfwnDmGnDpag8rjRlnb9YPbXqJf +kBvJAA7uJI8H7RPkK9XaE7q81SKtU7VjqHwgHC+0rbUhCz4BOVRat15m9+4qFeKb +f+kj8U19CgMhUTf4HrKZEJAfrCbFTwuBLudt6z960SD3UDXvUiJZ/cqJ268aCk+j +xK03t7oSQIkL31CyfY9GBzK8m2BeXEUW5C01ag/9DPHCLnayRGGWEIOyTYwyBBfO +XLLjDM2E88cpJ9KHKYvkN5R4rZ3gtMjulY+tiZ5ooxUIy5cdhmbe3P4IEgH3aoP4 +nPmd1NPreSWaUI7a0qqiUEyV0c5RqFMBVmul1BQ9V/s8CaNCy7yF/NrXH4/KmdNS +fxh5J1Ll5AhRQOKiwXyIcHGJExCYYjRnLCJfmeLgsxcAwwyzSu1N8UP6f0/y3G9a +xADLWvbir4vrLVmbP6BSB8rYyLsUy1ceAhX4ZDB9z49MKa9DvbNgRiGL8cTZRoZl +SmAC3iBMs+goAZ2PaNuyr5rKZIhGJfVGu8v+JA== +-----END CERTIFICATE----- + + +EUS STM KeyId F3C91574A6E773FF13BF0C6BAD7A7B65CF1C7820 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAADhXMfiL+XfM2QAAAAAAODANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTIyMloXDTI5MTIxOTE4NTIyMlowQTE/MD0GA1UEAxM2RVVT +LVNUTS1LZXlJZC1GM0M5MTU3NEE2RTc3M0ZGMTNCRjBDNkJBRDdBN0I2NUNGMUM3 +ODIwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuq0u8iHw3wzfI+rn +LQhIba9AhpLFFzEkCj2ehlp+i7P5d2laW4kgH7q64D08TWttdcIsQaqpfvV7ipHE +qKSor8+QVA6fQd3OVp16TfJCMI4bbtplTceFtPl78WEaGsrl7KxTFnal2Dq56wze +snXcEdKdu4mW45fOobSikWl3R+LFoIY97l0abSVoAtMGnJdG7bfiqlJECCRlmXEL +wZLjXwZ37lOtwhtA0whA57PNAsiqTOyKKmOwN5/A6be8uQFCkG7MZPZvIGSUOFQs +fxo1MmHWS+UyBM8WKaXqtpcTrAsJaOthsnA2ZFeiTV7Dpn/xTkSqjOP+BLS7g/eD +NeUE+wIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUUSgPgRiknlD/P20o87itsDPpdjwwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBL10XD +7jF/ybJ+keL4jISYYFZ7fviwgleXe8my7Xhuvsn6n9WfAbWBGP6ITmfQo38ltbYj +9jZuMZGPxn9d4Bx2ioMYD9XnIQ1QrDz3fviEaBECNfGm/Ayw/0u7ojcMmW21cUrS +nf0dkfesV54KoVi6Ju4AAa0FL6vMconxMth2ozJKir5hveezv0ixITYaobqlG/oe +8YF7xBvuSHfIazBBtyQzKJB0GMwoXNxCz+mPfqV3GzzUbS9TquJjBqnCnow0V3qg +CbUrtP9jTir1y6MVyBRRCKq51jOQjf7HDrmEADKiw7TX5oJ1hNlRGqEUAaB8EIlb +a1hz13jDOLRalBz6fJ82RLGrZImck4gEUTtAOTJw7wwvqNshO2gArfEdAD/JaqBf +nO4OEZodIxL/hOcBVWJkBr+iI6EFqy1fYQUapgKGZTRXe5jvPBg/b5rMp8gqfGYq +GLUlwG1LvphBpWk1RV/JYHkdCYkbWoxEW+ApZ67tjqJnZIYD403mouY8fS/vlAA0 +lex1oOKpe2zS1Rs8NlvdhDuFdJhgkJIh0P84IH4gTlNJyfk2Hzl/sOM9wf2DegVA +jid7cZkAWnDJu6+Bt0TZqeFws9mzL1hJAulv3F8SF5l0NmIH1d+2TY1LbOn2CFHa +HRIzSztV2q5uFyNzhtRnVnu/GfH+c6L4JaORSg== +-----END CERTIFICATE----- + + +EUS WEC NameId 19BCC8BF66E8EB3575C1E83ADB8D4E1612B56B0F +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAFMFrVQ6qzGBmQAAAAAAUzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyN1oXDTMwMDIxODIxMTEyN1owQjFAMD4GA1UEAxM3RVVT +LVdFQy1OYW1lSWQtMTlCQ0M4QkY2NkU4RUIzNTc1QzFFODNBREI4RDRFMTYxMkI1 +NkIwRjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOX9MM0ZkYCLj+FE +yGZur5rBMeFBMbr7zyMTppNyC1D9afbiPcJ9huBId9zEQSrtmjg4wSa9mkqbkpH0 +5dCvytYnwpNQ4EmX70pXEncnG8ZccRnMO+LgZF2kJkuPMpAIAsvvvh7XhPPNL4Q5 +2ZbFUC2lPOppXXtQgrVm335i75B1AsCpDc6o87hPQ/IYdJr+KD3ABExrdyvFHSch +rma0/Cp4mWgdVa8IQBrG/ngrq8asZ7CPG7AfRgimwqUMEVW9Jd+5GuiHFZbQtd0x ++gQJQwv9av48N5tvhEDDO4KmKypirpeEnsKaZjkkbao0sCXuMtQhQeyZIlJkaRDs +CIlQxrECAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFAKAPpFYPfEdheKWk0hdNrMgs8UTMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAJBga +jucw416OL15Kl9iVYgfU4cEjOH9Zx5OtlcX6d6a5Z7FKDov4cDecVV/F7FToN4MM +CMlHsQ/kLFzgdzgmvgy+UcITrRXAY9oEDJX7J4/4b4P720WW3xHt+W5biTiwVzWT +Zf/725HUhhy+FzSP5mHWALYt9JFEMhoi/aCLT2A2p2rW/N0TeGBUq1ANlh3zOSKX +9/LmdRvoWG/1kW29Pnmxbf/SaeACop//kNV+xBGrtoCi+SP3pqW7rH2sPv1pBXhz +cLpIojZFeo2P1htaJqMBuR2lNoa+FViQaVqd/06g4jHuiPnIF5wIWVUFX24g+Xqr +jp8Av9zMYH1zR+hudQaCzCzlSG+ltqEuOEQ4TiiIIgmiMUT4LX51L9SnApUru7T2 +zHsMCQC1PUARTLIxInkUKdYX4oF07H+5AOsw1cMBBD2lzaZY1m3D9ZchVR+maNID +TSzD0uUp8O9XRu3kKfn487hLOiukQtjIlYuvD2t/L/EcqYRzAojeqXXNq5MmYsXY +ScrK/znmYZftUHXSyqyrINcyxNqjsZFRMdR21Gc2QwY2+Ks+MlPy+O90ze6hkGHe +/U2zcmYlvjBFBKp7X25d94Fe+XbhL3sCHutJ8FiPSI06Dni4dXhUYRVnJocN+Hnb +TpgRjItdSvUDEIPMr/XROBgmg8QHGuGS2N3lLsc= +-----END CERTIFICATE----- + + +EUS amd keyid 8a0578cf56146fea399af903fb5b0ac36eb2786a +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAtaLKSUISz4oPwAAAAAC1jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDgyMDE3NTE1N1oXDTI1MDgyMDE3NTE1N1owQTE/MD0GA1UEAxM2RVVT +LUFNRC1LRVlJRC04QTA1NzhDRjU2MTQ2RkVBMzk5QUY5MDNGQjVCMEFDMzZFQjI3 +ODZBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7k1klA4MZ/n+7nnt +92OcGw1HKBE+nkobS8wlgO6ambMFwAOmUzqR+tEWgHG3ghFs9suBkhqp9QwoXCVg +T1LQTytyWBZmn9KxJsO5dIgFKn/bWvrsKz8gHCKQPLHhbJE/bDAKcJvH5harM413 +k8H5RYcm2rgxHRm0I2eAVFfEFRsS/iZ0vsA09Wh5SJ4Gh/qe0fmHFu08RbbRdQEa +qfTieazOLJdYDPiTMQpUoyAYEwi+dJCDgy1LcdQeRfiOW46pNoh43F0+DRft28He +0AyV7jh8owagGVs9cyE5A9FpZe9lZ8DMEQxTvC9y+cgVwL9BetN0idSl+XA4ZNd8 +q0rlNPXSXWPUJVnfhgVO2e+55DFiOEUZvHKThUdIpwilL/1Q0lZ11Wsfj3nedtYx +P8zHGedLRV54XVmFP39nBKvuokzMPY130cpAlM3vaRXnMNjLbWUcteXANuWVDEAG +yKp3AN6Dn8IjO3okgGFVtWAOqRUNrzjFwttLjGq8xfv0DYNT/9DPaT5A4cV+HOer +HLnOwL63lBRwGCWtpa4aBKw3FAti5qUEl0eMY2xygSN3hgvUvP5u/v2NTxVcAQL/ +AOmzTJDZWyaipqAn75mmoGs3csYSF3psXpsInFADrJK3D/w7cdaMFwlkpHNWuK7y +CXRaXDqWAjIKQKsuWc0gBA5fm9UCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJoeUEIVxj7ZnWb1 +4IUGABcQwHfCMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAabY9u+d0nd7e5YukBSwxdDX1wLBXOW32jbroJ4HfOOKs +ZIjIZZy3UKdcJgeZ6cElCTlme6IfmB4vcpzMXXrY/Uvnj4wNiyY6sqCvK1lINZ8u +lTGe9MLawJU1iEC4Ws5N7P9aEjwQslGjaZcqMNpG9DLA7U+BilJO5CLhoNOIMB3F +a39nuA2WME+rlgSDhdwRnctsO9mYX1Z6ugo/bOC3mfbpRkfa4DFX6nOgxKr4/AVq +wNRKSPpA4/kMefqg6UPfs360dNza6zVJ30eGI4AgTrPi0dLJ+Sd5hDGkc/bHRIvs +FCSRDvPosd89V3euq2dqza6HOnBJsrJ+RsqSEIdl7zAmVa52WGFMhq/Ik0n0mgT8 +VfwYzQyawxTfXTGaYaSu/2lUNhFzr4hHem1xDjq0U587exoSpBRCvFQmmN+rRWsP +AiSFBB3ApgdKpqNT4b6MbB6zqxaF5DpKxzld9Num9NoPqzPUAnMxqA0JDmO6lo5b +gnpy1d6bz5k5lpgZK2PXo3zfbu12tSYFwPVzDCQj6rjl8CHKUZYFrN7F6FdQym62 +dzMBGNA6va/FSXb0QOzjsCS0CETMI1uQ8r0Q3rORRc3M0AEEMndH6NuudLgTxnfH +OuNC6WoZ8hla/xIc9HFkI0QVbkTyHKmYYvN14RU7dML5owcqJ63segyzrPiE7nQ= +-----END CERTIFICATE----- + + +EUS amd keyid 90e007e175574201a7a8dac93b323114a887e1e8 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAtcCz/QGTnSE8AAAAAAC1zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDgyMDE3NTE1OFoXDTI1MDgyMDE3NTE1OFowQTE/MD0GA1UEAxM2RVVT +LUFNRC1LRVlJRC05MEUwMDdFMTc1NTc0MjAxQTdBOERBQzkzQjMyMzExNEE4ODdF +MUU4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoyLPbYhW5DvSSW6T +Plq7LwaUrsss8fFToRX4z/HFNsHbSFsUsdDb5B4JqVqD8zsOQ6hXTurmEJNqEDwm +3Whz4Tk6MLE0AyPbHW7Ip4XwGm00jGYOTyT67uZdIRhUvjnMKtf3VjQMoBBbjzGm +f+uNlwLF6Ugiam0j4/strPkDHygOXVcCUUqbsnvgxkFKzbcTYXdn2WjYAFsfn/td +FpXMvfn+zsQae2yLz0pZPYHe20FSsEZQ+9u0UeokK0qUe2hcJY7S/oCyNLUB8oO/ +HlVWXmtzT0Oh8n2L8dwRyYhI0aAbl+AVgTNaECsswpnDA4zeHvVbuSYdIFdBBt/z +7VKC7WROncrFTgpnzVcTaEIyGMsL2EbCtMA3QZsM5xKKU7TjmHRH8OzAtQBPx4Rh +7GiiCymXOUmTpkn2fcp2oLUwuETUKOJfD+5eB6LKNe23qimaMtj3JfOLs4i9wDWk +YdeX7Evh+NdI5Ue30hQ7XpNTzLob+Lwcae5Jb3waSYrqds4QTAqDC7DpRBhyhce7 +QWWUd0J9PLPvHp3kkjLnrIFGghR8jkGDXxAcmStqKZ7WeaHIDgoMbZ5IED7B36NT +H+eUsUY0gEc6yLPNbZjQChuj2ynrsvALsGkLF7guKA6ljTKt73byoBvb63EjVGGi +ijMVDaX9wKJBv8Pf3NkfCxuTw5MCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFC3YMEWa1fk11Iqx +vj3WKg3FHoT2MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAeBI2vynf5Cyl75z4oTo75Ap7zB8PelfQRSzUqImFqoek +jTD4YSCiTCqpe+brL2GTLN1jMGldG1w/jqxQQAQwFdvFR21xyXewft1SgEtbKJMT +saclbTy0CwOttxGgNyT5KOMrHR4/wIPLILEZRjLm/f2maaHoGJ+8P8VLePhAUXVj +OIqiBRJsMnrsicHnwWcBY1u/7gKSoy/f3w7EkEfyAccc7/R+Sv2hPPI1Bt1dgw1f +R1kG2u2+fHDKvMa48/+OUkTLtv2jtjzhMySTI615cvjSehj2wbDiofx1zkWhdErc +riasg1VHR8jYrgWbRrHzbC3oruyHnutW6OafaqTOW61mLJBeDgtfCyt3muuFRtrx +tI2+XwkqrcX2AMg+CxHA1hg2BXIeI+VNTs4Ef0jm9BmrPWv9NMzPYDuDJHnKtDx7 +PH7vrO/xphVqLHp2ZeNKcjt90zXZcm6IQvoNu8Q2k7S25odIzgARih+B0tySAIt6 +QPRKKKqJanDTIi2e59OAUPgz5BSJRw3VQqtYGGuF0ip+ghX6xxBbVc4gGd3CIj3h +psSJuG7nr0AUIR3HzyAn/HYD6eTZDQRtXdtr45bikgjnbCyziB23riCw75rSWUxs +lh3Xhea6+uoIE1mY16F62A78L/bwJ6/qo1UJbJDD6ypmnS3Y8r1VeB05V0cVZdE= +-----END CERTIFICATE----- + + +EUS ifx keyid 0d9969519b979d32ee4b803165664e9cc86f9d0d +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAYwbZZZqZBtxPwAAAAABjDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIwNzIxMTcwOVoXDTI0MTIwNzIxMTcwOVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0wRDk5Njk1MTlCOTc5RDMyRUU0QjgwMzE2NTY2NEU5Q0M4NkY5 +RDBEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA62tT6AspodVmCSzv +7aqoNJwNHka/5GqT4pRG02t4+XMZhqIkk7955kJxrfUOc2Fsls3//YTc8k5T1P/e +iQiJtpk80a++712DuY8oqDwOqNbOk3b+Ur7krIJ1L0koaVi7JQ67gI4jWFlPLvsf +m3Lt7RluHGmHC9ZYja0SGdTK3q8C6W7NgTC5xe2YT+3c5GxsX8bb9H121MUWXPhJ +eXUo5Tef99xrLAvHCh323JLl8xxUNeSWGLN5BAByYwvM8HFTAIdEQjRblK8H1ex3 +M+9dHlfWchI5Xys9ka5cNKbEvz4UIphdspS189pibSWZZqSMGF5mTN10DBM3x4jt +RrZMS48ceUoBGcE/JHW4rd/VBHyHw1njPAP9r10W9aSIFNRHYGWAfdKpdj+kYfr5 +Bk+SP2mrhmq9RyYw416IguARDrcrzixiIT0rIiiUkq1ek3QGQh0fA3UFzeObbaTV +5bhhAwQIDx62IYdHsN2KUeANQluWSd2IFisTjPBh5EyVGU1YXaU28Z80orcMZ4ZU +IF97AJrbGxWEd7o+Swtx8ppDW9PMwgm7UiufzYEdyYkmYH0JNCXrCkXq7So0/rKG +Lflmm3C946DU7/1DHD423SoRolfKwK5ZqWFMQU8waibqUADXpmeiKTI7560kYwrV +ge4zlh9Nl1Tyhw9w9EuPp0d/vxcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEtri//YB16uNi2X +BdMtdhwUNb9lMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEARDqTkzRKXBx9ZH8kiGEJjLYdUhn8Bnh/rPblK8Q7Ku9R +3IYUtNvs6H7uumQdtCwswUL9LZ1YRaI+SbPNWDry50psx4mBFo7gMunrJqxcMdQz +dyitGXKbGIJ2rTKUrhJ4NL5k+mtAGCFznWwfezhdHLGOd6y3uxRwAEvcj0YuuwqC +UoBjPdScrf5L/ijdqpSYngSL3B+kFn98vo5RDh1kDTVIB1Q75HKG+e2sNxlH2Hnw +4tstqT8OeBRVZaDqMBB8YCneEwPBWoaXz8LmFJZZ4KaS3qoFaGBydHoaN6vCRQb3 +iu+b4m0ZqkETJBAQdEGZXsvDq1UPwDdCQqKZqjWDGODzkKhIfdccCeTpfOKlkH3x +hVe6fEmVd20686//lhUm5fH4MF2UGPIDvd0eOZ5ewZK0Q1XpEyksCReBap3Whvgd +wITvlPLFq2cJGp/rypO0QEstNGIwc7Vk8vSatWGqokcH3TQiuLrTcTyaAG/p6RzG +Mi/FDz7itpg0WjIHjZBq2GQGhqISfVPBUXG3x2aaLw5669vCQ6/LnyFeoYo6Y0v5 +xxzMHZ8DOw4hPIPVSMbWcal3j14JhD9pfjj8rDsFwlkIcU6NEhMKqnzeujUJqpLu +B96jY6GTlAg8+cU08nooFk35VldTnpSHqHI+UlSQq4j6Y96LwCcb7ZWpPC7ukjY= +-----END CERTIFICATE----- + + +EUS ifx keyid 18b1af70b93f991972f362556a9a3fbf4bb24e0d +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZvWko6fkkAwtgAAAAABmzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkxNloXDTI0MTIyMDIxNDkxNlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0xOEIxQUY3MEI5M0Y5OTE5NzJGMzYyNTU2QTlBM0ZCRjRCQjI0 +RTBEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArp8J/R1qO3DQx8Fq +Sqteql286drxo2MNLXh4ukWxAkmdvtGjghUcajeQBP+3X21kfm3qpwPMao1agp2G +b8lDLla6DQQXQ31JwV6DP+sij1UjE8WadNwKIQfnWsmjnvSIrV7kgAGiNGlkEjhT +VaJQVEMRMQIB0E/h9vZ6l1asd+YQpodFQHJBoIT6cHT5V5erZyWbMdRC1RrL+HUg +aIL5OJjRAdmTyIATNxwJL8fA4aPOjh8Kjf3f+XA3birPWT0vlSAiRKSErwJNafQc +jTI10ybS+gsaGw4fHnDP0mYxUtWT3eDsIOf1JB2MFITlAThzyvDJQgW8IIu06+C9 +8eUA5ePNDyS1w3qML+cyzxTu/OWLuYxoniBSywTj6CTn7YYyFxhZvYQdwQoG+Qdu +XlwJI5tyGEnmSidI4A3Dr0Uuk1sobakX9TyPVLcDE2dLr3pYYShw3wHMvpSczqOg +hn93afQXouYyXGm9eQKxihYVhsVQWE8Gv8Dxwi7ugebdoW/yCB8/CpYJZ6aIzD0F +X2WMEnHR8aibLj7nvCiGQVnkiVm8HiKPwgXMd1bmUUrvuCFakpiL1c4XFKcwZsq6 +JJPKg1eatGqHx4c4QSanKgXiSKku0+Vhpd6pm79sXRZ78TToWYqvSn5dAuKApj4d +xzgIb5NsgX+d3Z5R9mnLcKnotpECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPtSHZIO1Fg4YQd3 +Lk+KaQJnp9wZMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAjUfwiUMX6Kx9ZXhInn0OycphJl6wLlpQVG2Kw3mKnzXv +LzTTi33QWSytFVPeSTe4g2lDQEIuNc1HRlGHJH5QWSwI3+zTo5Le7ThqbH/mQSIf +X5icJrGjA5XdW6KPIDJ1P74MTs4VPppFqsuWE2GoIB+O+wOq7Jz1rtZJOLwxFmSI +Pg2Is26S72KBWYol73tIYX0QYx8vfZBsnChFowe2GhaM8IcHDG7UnCE3qbDUzk3h +kRp2S3StFx735kz+vxCLX5UZDRvfnsg/ZQFm5tNaL3FjBze2M1ct6KPFrHx7AUvB +W0inq0bAPDrfKg8AoeTC4mjRaxNBzTnE6UmAB9i2C9wvn3OlFkNmjM9zhEm3lU2k +BHMsOo31qEIP5O8zItFF1drhF8JbGJ6PBsrxR6LfX0s+GaijVydLD3wO+IQV0SHP +JBHDILeYG4mVywVEzJfwZAWD0RFTle7QR0EErwIj5ujHbTKo8tHOV3BKzXXHdB71 +zMFrZ0pJn6LaBuLnMP6nYYesVboo4ivbnMo85cf496akzl2A70TQyfUksvk/FaVC +AaTzUo9Zenx11xKdlhC9+xEhpIaEOs2z6TeuaPiJh6StlsJTxcjnWDL0bHojvhOM +otORmR2DuAc8FBopnQlnDZ33OZIXT9q9TU6HfKHTYnbxN/vVfPcGzY70aJrW2bI= +-----END CERTIFICATE----- + + +EUS ifx keyid 263b744d85412bae6e13e94a53c235185ba4eeec 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAejj+BtOWd/TawAAAAAB6DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAyNloXDTI1MDIwNjIxMzAyNlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0yNjNCNzQ0RDg1NDEyQkFFNkUxM0U5NEE1M0MyMzUxODVCQTRF +RUVDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApSGRwEfDv7B2XNpr +oYXTLtGo9gwBB64w8Qwyaqjlj1ZkwJ9uFzYXYVptB60WezzkTbnn8WTEyCt2nrT+ +R+allzCg6SUfCd5YOjVPA7EcEarI3G7Sq2u1+r5uuNLgJeXYeZ1tSr9t3bpQFzvJ +8JoiMdXXMERw1/RKjEzNWdp8mJ7iZL66NDcEibRUx9CI+QVbcOqam0iJ6FvyxS2g +jw9iIFPscmWJhGTeF1UxupIVxkCyCXizAdjkhKoCcMTs4xa8FMrxoz0F0/5aFxz2 +/Z9po5b9lZCsOX4mQ8qRDz2dmdJQBwdppwhR+Fo25cCMW6nq+ZwpILcWNKiEyrSD +51OmS7vNed+RAOqkkkzHdMHYV9gj35iCXhVXWhoAuHUHOW5wslGGGLvbHiJMjjnT +r9iCeKr5+UMDkKE7XKQ1P6GBXBQJq9QG0LDlez35XOc/IO8hE4/4huG8H90Jw4bi +PouCGDLwEhdkIjpah8YkIBX6AtG5uvgwWVGtw1yA0Q3UJ02y6GtxdpeW45iAbuIm +Hnj713zNXpxCqiTMv2XMzG1H/76JgK536kfaj0S0E+qD9s8hRJm3HEBQKNmy8MSU +ykTv00ye1hnwT2MvRRz0OYrtFWW9zkohZXyW5CohwovSHzo4NPQjt8nDsyzjDnjR +NT6LkwHynZ5+1l3KuGN2OIoAmEkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFM1aJUVst+5OqPK3 +t3hOBjX62CBWMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAndRMUg81zae49Mliv5NW+zBoU2LEZPz1qzek5ihf+xR8 +EtyIeqOR9X4daukMUkjiRTAVCGkAxEOqKeZdaU7fp9jJgc2wexw0ol5Zrwe8pbRd +jk9Eos0UJMEthGjhssjZNUZJYxj1Nojf0wafCIABK6JlrTAxRbGzAWaI5s2pwVGK +EAYpCv56mt1hHRBB2cIlw6TGw1aOjXdoiITkZbcidzCCWIXcyDw+ru/TxWU8I/CO +QV1Gs4K/bONXuc9Hs4Skyuqe4po7/+5g53Cwwj60Eb1gzhnM+x3aXb3UdzkxQZ2o +vS/qjKN36a0Pf/PQ/cfIhMHD734fUy5hEME9EwllTIydigz4AzP4koAiWwGwZDzd +Er/ykp+0FPHpXLtf+mwoN49kSv+QtsURmnoZ/I89JUNruGxrUKMTJRVspzVeqfyE +IBEzYndYhMXE9kGuA57gKW/W2/1z2RQvaUYx9BT9v99SCCvEzfMjeEXm/0PrGtqe +OaCwTIGqBlLwsXns7D3/z/4SrxG4cuJYLwKQBBuf6sX8Rsk2KEOKrNOnfxThn4hi +R/Rt08vNQz0VvGTmpWDZJZj27l4u3JM3Y1u9nc9zch0JmsQdHcnf5hmgfZT8pJP2 +pVvcrzNfejR6w8B/WyfcecATuOXTKrEGqwCE2i+L+5mQde1z7hMQsG+Fd2Gpkwo= +-----END CERTIFICATE----- + + +EUS ifx keyid 29fe69630e853a4cd3575f84392a9bed2d7e8ca2 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAeUYOXPv9WpipQAAAAAB5TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAyM1oXDTI1MDIwNjIxMzAyM1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0yOUZFNjk2MzBFODUzQTRDRDM1NzVGODQzOTJBOUJFRDJEN0U4 +Q0EyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAskajnggLuj8fiZrp +Y6pVF4MIu91lDK5psn25/m8ip0UQ3PWRC6R4ttrjnw0f9vIfirUkaxsSUAYuFmME +D91XvtHouj0oCn+CZmogVKkt788XqjxJmm0VlZvcf9nqOB1BHP4Qp5G2JhFImsAF +iMpvgZIfLdacxNKFEG2/eWIC70VZmPvmG1XDNqwyoS3a2SdHrpp/d2QCOLYVK0LV +Y7FHA+auetAG4YgDMSqDc+VstTvQmbyv0cderD14+6SRkp0xYI9HioBnpZKyEYma +tc1DjktWjmKmpBYYiAzBaG6dUgWMU80rWcVnG+1XPfPnPMoJwA6qbz+wJ8HmBQCP +5s2gTW+IYu8ssutgr7Wd2Oi0NK9KuSy/FuUmIgR35gPbOL/QRV05d2NvU1u5t2pa +LddecFXJGnfoUGzbvRtT9mX2e3X855ngw//yKmywUFLdbjJ5sff8uZTrGkk3K7DU +/CTyCN7t72YdRASLd/ueZSVdUgA0BCDTL1DCaPY/vL9NIaRwcFqqmURlkx9gKfg5 +IzA2EwlNAeSrzgQCGMPK/pvKfkNWD3PGg+rVy+0igzPM64reLZd0Xaq890vaC+7D +jC1Y9fPsx+4RXw2+K2FAPT/PKLxWxTSfJczJEFmcnoOyuCdbR/VwLS12CT3GVELe +G1SYgNdCBk1/lNmW9mS8PxIzL2ECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNTnaDzWF5JY8vWL +KP7TQ1BLJQB+MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAFXJhPPu7LLO2prsW9uJwP7s4rHlIMaBokzsKLAXE2loW +8vHyEJv2MW+ahwNbw6krvn7PXGFptt3MizJKqaz7xbqjeFMpNFao55F3sLciJ2VM +q/NX2sslGcCXcCHmUB+1rO2ZzUun6wGq+qfUXcctKtEvgvz7aBJOjWtJ3NrLxXsQ +d7anBzUPk4nqPAaCXQKjtvxCxiYsaOFSyyCBQ2XQNzSCvD0a32CwTRkF/Rr1viZM +sz1uhAtnca/U9DHtfDXek1AgVDcG7/BiVCrJVFdOrAP+sYJ2tiRVoOWKySygymQW +nHWxDcd/sM2htRTDuj1HOx+1+oi+f5YdBVMrJWS2pCuhGpaF5xX0jQKedZTsSOPf +7c9yKB3Dc/yJk74iTLUAcEW5srGUnlfUK3O+NeBpaVeR3xi40epqYK4SDX8tp/VI +tr2Khlw3aAVALuifY/y/KTmUYaPYUZ+wvyZwdTRmSYFR5wGu0IvHX+J3hlbg8KyO +V15rdvUpaHjKAgQ/xrn2kE/o0qN/wuutCBhjhxLX6LRPKeC7ZWQ0LG/dMZxFXiGH +PG3ElDIhH9BS88sQnLRn0wxN/IhClnYS8NJj4QPS5HcIxqt6EV538cS699+kBbwn +pRJBWSrgVMd9rxRblc5Wku5HG0aBDB/ocm7LKD9N51m2P8CMp4tQByYr95/1nV8= +-----END CERTIFICATE----- + + +EUS ifx keyid 2a77a0e342cbc6c72ee3fafc3b0a7bcea7c9ce4e +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZjWCbvU2YLDUgAAAAABmDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkxNFoXDTI0MTIyMDIxNDkxNFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0yQTc3QTBFMzQyQ0JDNkM3MkVFM0ZBRkMzQjBBN0JDRUE3QzlD +RTRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoqOgGv6ANGBIj2nG +FIYQz62A1oAYP9UvKI6ckGV/n1MVjuKk0cHYhUUwfLWrhMu3tq1fFA6MP5RHym+r +Ywj0GN2x2RxDCBQ18YdZf79sbd9u69xlsmBXXVjClYTJIlR4JuN76TqEYniXv2UF +SdDU8roPjzMYadlP+VG4Tcot6D9eJ+6SbwR10g/Ka4wIqcZl3w4YEPYuvyzM85sk +0xz9zIZv4lRa6E1z/w+/Q5RfB6GauuhSqza32ypQfD0xQFCjYBDPTgDJcaN6kzwJ +6z298K4uasJ8P0VLxpTAQHM//cDbZmCJ2DQRQQjqc/jJSkj81bpPhaeRqGF5MoCI +bqdH3cOi3GPI7n5lXtI9Z/4tHt7bq8ld4l9SNFudPRrAd5e/f3N3PXK0iCybKRgC +dgp3Oxv8eiH4smh17SBLPVk4LALhoCie3E6F1WqRlfCpp51vQSwvVhI8nTlz9my9 +L1Nv8l3WHJfWvhHWhx17uLF/NSrQRoJCrjpgjJAYairSg7qkLCqCwIuoNhGQHqou +dJIvCqyvyDFj76Plt9aNS2uYw63fjoaJxnNWwm8gEB5i/BC2mxhs54vO832ZeXHJ +ArhWFe1nb+w0+LogUYxlWOVxeCqleGrhGTxlVGUVc/6CFqFdosaunNblq8aMo4AE +Gji6XjY+gfdo4FdLKUUDEGT4f0sCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFM/rLqmwlelaSa3y +9PElVbJqYA/uMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAnUZ+o/c0u9eJ26Ry02ttoYaOa3K6+jVlTIAmL8TJAyUm +M/7fvcewXD8+qB+goQtvv402xt1EZUGYzkHWHUG4qCveo+mtKVjUoUm69T/6ao17 +iMLoSLEb587NuipAQCgbGEaUSZoVpAcvNaFoR3pYWVrCpfGCxR58xpV3wVYtfcmN +xWTVCtDJ6rDzd/+byx1atZ9ugR5O7R7ywktBfpBUe/GQFUXqqLF7GJP2eghLbt1Z +Ls8PxyZzHy2lsi8UugNlGnHJRvZN9ghw42cNlE81QGyBg1+C3+rdaEVQSf1mey9v +d3WMn5r6Tx+s625AdStTGa7PdnQUU+UGgncVh/U9aQ7Tv5DpjlHsUHjlu4yb+eX3 +/A7i6XUUwbC66y3Km+fTxqq24xHRJnhyjcWXiyCrJ/wnx1WXHed13W7VT+Yk/Qzx +xXY+Ch7OkeUefd1wamixvTcoAlnaGlDsDsg/QdmY2yWeApHCBxk5QGo2cE9lIHs8 +7W6htWoh61U6C01FnvA0YxY30bhmzUfd3XY1LIqWjEOBFvvxvDPBcb6wRgXi+kMF +TnDOWnAkJCZ3d8g7QuD0p2DYsnitLOTMkbB4LkLFX6gXAwLo49v3mqkAvbtr2DsL +sjJzbgNCY5/BSxVee0FgCfaS5oqPU/2qR58lfBqFIwa53a13KF8nTGMR3naxzfg= +-----END CERTIFICATE----- + + +EUS ifx keyid 2f572bbadec4d18e0d91ff4375fb468c61b8c7af +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZljuiAslaNNEAAAAAABmTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkxNVoXDTI0MTIyMDIxNDkxNVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0yRjU3MkJCQURFQzREMThFMEQ5MUZGNDM3NUZCNDY4QzYxQjhD +N0FGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxv1mlg1wFzSrNPbb +q9D9Z0X4cyOC9H9sYqtLtHyRuC+03DWuORKiL5wGajdJp+mv2Ym9euehEzZ7NS2P +0QY8jImRD+yRM3Qv2NfrUgQPDiGKQ08vjEpJgQBeQ0qR+7YHUDGf8ZfFCm2dA1Bq +T23I2E1o/YkLQTWWF4RMeUW7fWGzrF81n60x8NoG/ZByrxflu6R+rIsEAESfMh7O +fHqFQn9huokrIzOp+BnFCEAT1FzXPqrQltgs4dV0OiQQv86EJ0M6lTGEbCJeakDx ++FRYaqCzmklwqp7VomKRk23aSIb8IuifylrDqBWL8dzUZaXUHcAhowqGDkOF+FF6 +bEfe3Xo88aBoyTFK6yKnx2Ik/sdzMwHByqRpIEGJONnAWCBx02O8qTrJ7gUdknp2 +aFBBCYX/hYM5nyDjeGqHUq5RtPjL6YZ+ydStK3n3uXXy0hXUN/Fo31lK3Yz3eNN2 +hSaI2nV2vF2XOJMTtxpUDXXdpFEOsCW8Z07SNhqYxDiM2Yn7jdipN2e5r8UdBeQi +oBfMnUJQKdVASpqYeeKies3T5n2aB+0ciwH0uLtcW+3OT6nHTN1pLbeKiuG5cHB7 +QM9VzwaCGw7y3rnEbXHeo14v4Rc6FSJAhM/8llnAReGYFPiVhm77KRrlt4G7GnWE +9Jb1n7pH8iM3PlgAxlroCHFlhd8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDc21KrYy23xx5TT +9kLHEfUkKFo5MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAdQU7R9DTOJE77F+jRl9vjeFwu1HOqeo9OeMoJY1/Ag66 +gsg8cCr+6crmcVrwtoHw4bCeE/CIVkRh0XrzNoDnn1XXKY2AuwG3vN0FuxofHwi6 +vHYvEhoypgsWgwxG+5mFXjXcVMaAoHD8oySLvYmIXBNR3AGywCvG4sK0d4mb1c4V +0Ey+ySoPpyeYP/s6QRSRAaN9rb/T/YkTaqRzGnMYMfq0WQzy+0hLS8jvceR/FcsK +Rd8wBuKc9IdH/aeqDtWDdfGygXKZ5AQavYFh/wU2dj0JKY9ab9JeDGuOIpjo88Oj +ciArzx8V/7XJpxWxLkc7uD6v9nfiHgqqFyqQEvhka2bztZoRUcnGCUr9SBFB5bQE +6F+IxNTGFKBzrQ+E9LkSOEzbZyvc6clL2VW+kC1l/FTb2B4zpy0OwH4mOoW7rs8G +XEQkk7hCAwiLtLa/bTsyoDBzJaMkmFN10TySwrLejwp22UQgFeMfvOJ/GAlRd1lJ +DuPQT21hCgoo03En2wr/X6ZGcBGa2AocOpcg19Sqv9v4c94iwZlxF32ZVis71RW0 +3vZ2TC0ZtNjp4zlXyA7pTvjYHjuTsdwPzcZAVA41Adng7aocDvsU+P8Clt/BAmGT ++HwSmbA+cdr8WhJPzJ2wZwge3RczaaZA6FBvi13QCGdQghgZMtqEI4HMT29UwPc= +-----END CERTIFICATE----- + + +EUS ifx keyid 347c93cabded6168c61fdc8740a7353e46751616 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZzE3FQDQjGTbwAAAAABnDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkxN1oXDTI0MTIyMDIxNDkxN1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0zNDdDOTNDQUJERUQ2MTY4QzYxRkRDODc0MEE3MzUzRTQ2NzUx +NjE2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnc29Yr6ewQjYTeHU +KHSBe/wiN4KJgC4heMHUx8mOVofuCIOcUhVDN7UDoz5bx7oKpnxCsi6aEdIVP8Y1 +NKI2h8y8jp6X8GXvB8Q3BBdyFmwYwxU6GRAzBcwMk7lWSx2MI50q2MwMvf70l+6M +T9E7UDMcJVIZAbrhA0iGJ7dcg9cXAcUwgQ57FlOx3RGNhx5Z0haD/kj05zdXoKLg +0AvuLEVsoEbDfzYNEFuyQHf3oGoLRqMr/YedVQWqQUtGqvEL/x5snOc3Ai+3OoEq +ep3uNpavnOTc8IoYmPAN8kbUSz8t+zj7Hzq6MtVu700vMquOZZLg/MXvQRdwt7hN +wRGaHPB4iEh7dd7tOdo3vaLjA0MGxtp7sh2TAknGPm7bYBIP8WCqIYiLmGC9R4iL +uAwGqoob1eAL/IS4qCFbRasKpOINs8orAXQOqbY1zAg5D4DaJI/J1ewh+ExADQ2E +0nsck7Z7TJj7Sd4uLxffQbHgyyfh7GFl/K6PW2zHiEYEXv9HTMrAAAy8hFIcYCao +rYx0pagozoYRH+0PpP8Lo3YUeZ8Azh3XH/dKSTOzjnpa2hl3I8fqxiRkg6qT17CR +fxJXBF61Rm/xMdlhn4LS06RMJRnugLWIR72FKst5CzQuOMOZ9yn8CQ0m6GsrG1Az +sWok+JnwszW5wdolA7uw7z9aTXMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBPVWlbN8iEzPSFc +0j/+om356sm4MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEABHsIT2dX7uiwCjDRnRPz/vZfluGSGnYFXTnvGMe3NNMw +ZCL/aonhapQqw/bFxTA2DZJyGjP+/wGgTWiLRx5Ahzbx8+46Rr/9hLwfDVcJNU1t +cAtLUcO33gICuAeEma+ll+js5t2ur5hAqAuk/1l1YBuD8/EsK4cTij/McLQ4ou15 +F7W/0wU8wiBUe9lrOFaR1TYO98Q/hnxpanwcyMz8QnnAL3i9hJqHKDqnKHHY4vIR +mhID8emHp0CK/Vogrb8HWZAO8vU+0gImf835OtMNrSJM7RjmL37V0Sgf94gYFIsE +PXYvwHOlvTobUWu50xDMl+T+JoTeaN7lKWXo9zJJWs2Dn5Cxopn2CVnHkQjcu8kQ +74L+vx4Jrl3arpaFBX3O3tM8OSrfkY/jlnDaKEnSaI7vygar20awcNIet9cy1kYH +0V70mSdAE40kWiSyxuEQftgc2PopKJVUjZfYjbBFBJclZ6W/AUM+voXCwM/AB/xS +PUXBpo6Y5pM74WKPf1nZK7SleGXiYyZgGnlwWTt2uPTLY4+tHY2ylms3jjCOrYRs +IzbRa57XLW3SARzCUdEr6fAH3/W/Jc3YVat38sVvkQXuc8TAB6T7QQH0utKPPbeD +ZGbkyt0N1vnxXu2q0pJzyojbtVSHj8M2rwwYK17u5ELYmBt7I7zZfgclI3JoKNs= +-----END CERTIFICATE----- + + +EUS ifx keyid 37ae346baa54c513cff0290bb321a22a34a4a8c4 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAYGJIvhGas10mQAAAAABgTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MDkyMDIwMDk1NFoXDTI0MDkyMDIwMDk1NFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0zN0FFMzQ2QkFBNTRDNTEzQ0ZGMDI5MEJCMzIxQTIyQTM0QTRB +OEM0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqIal0K5MaeUAE2aK +0mSzLmLeEFRKc8JfmYi8YzWtNHZbCVdAV/ec0rDg1i6cKB2ONgQ1lEuHsqEzh8sa +Ejdj+gTABJRoAEweOXVXyCzDyJcjkXSi4VnJ9p0nk12An5EO+xIkrDzQKI2fWQ+P +dot4m7eCo1MClN/r7uHh8XP/EQtjMLAkyk6tnhvGX7CBkoq9MukPcpd9MjmwtAaG +kQ08JIpkTblajRx/VAFdE2xT0JZq8Q6VDsG5dO0FRAajOVY8LujyuQSrjcg/L4WM +rHz7MJfOfUjWwDMSas0cUzxAfQIORVUf4T17thb2t/wWVNDxvpWkUvGGp59oNdY2 +9XhryZzYgyhkui/Hi1q83LEz2hb3Vi9pJ2lE4r04fHyRIioFVNT6CvKfPQTWvbNX +cnFlZAg3j0HYC7lbDBhEFpb/WLHsrjRRz4Sf3qms/1jDSwhuNKAFg7T2wHu/sy4s +2StXD6EkpLYRSgSHwxjdyaRldv7NCrqCW3gx8cE1sviT2S4TCLpPavkg68pgg8mS +SYGXKo/v1dBq/hDbs19JlSAJy7MrgAzvyL3U/RzpiPEv7w1SNGcU8H/4tzW42e+J +0gk4c73YCTG6jXDpl+XGzTr9DsjefIw+V1v+p+w4RhcX1e8pWYg1Sz0aBsOOXHo2 +Uy4wbqoKx3zsOy9NWP4R6zNvqrkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGhTrcDZxsjgTl8J +19XWRrR0/PlSMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAFudveZB4eDO3imhTcehiHt2zar2jkzS3i1byHQte06gz +sqpDbNdogo/7NsQA9btrUQ68WH6lRo2MoXpNVSCNji4DsHoudcwaACwQOYgCJ4ng +rbU6ZHpJEZkWCp44S5nK9J5atyoNynzyy/8G8Lb7MwmpFyN+p5kOvb/qsibJ7Vui +5P7ncEHzYhdHy99pfSlGkkJ+Tay73uuXAZ7lwC+LCzY1RdQM/8Pr4uwkkyYtXSGh +24aLjxQgVzGb1rtcvw5oRHY3f8UBMRhaoqYC6zw4tbp1dWrPz/AYmxoHIWCuF/Sf +EWvhzoRzu+6DZHaqtaOmqh8JG1sMLj9+cYihzW24GmeZFhduAN2gHp/0pkxZHN8H +bTJWXrH5cb+HIvxP240gXADNFNiOqZnSeqoecuWoNS3WBc3JKixyC1G57lPtttQY +xrV/dVwIQ1oyM0aeKtf8Q82sFq3VAmaOGjG7SCHkTYo9BhuNlcEDcsGK6/T0LUGl +Sbkf3JcNpkbhnW6SxTzAlHv7MAlU4CBvxRWUGzD7ExADGTkEW/eZh2qomxw0gGZR +9wA29xRu3ds/CBWOXLvHhFDIvRZkiiLUEO1Tstu8puCIwtcjJGlDZL95HmeB8sEQ +FBlLNq4ph9nfX7EBrrF4LXyryGHK5pPiWcUK5X1favk4uwSCYCYZ8cBc0Q3b/SE= +-----END CERTIFICATE----- + + +EUS ifx keyid 37ae346baa54c513cff0290bb321a22a34a4a8c4 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAmA4J/S31Km5egAAAAACYDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk0OFoXDTI1MDMyMTIwMjk0OFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC0zN0FFMzQ2QkFBNTRDNTEzQ0ZGMDI5MEJCMzIxQTIyQTM0QTRB +OEM0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAn01zwYJ2lBnVbOJF +tCaRbWMxD/8C40AWJc1qRQJV3dwVZQ4N3JxUF0uvmlMmgxszNjnXfX3L7saypNtY +PNmDpdxa6DgRz+b1KjxUC0ANZ6UzXU47dgNey7E+to6lWRyDJC44bZf8re8K4S9X +40ET13mynw0JKJL/YNNdwxp7vUhhiQJdpsGt1hBlffNtg1Pg+CES5fpxSvAJSVvn +Vmj+807jGGhJYdrVSJzQX8My3sSCvpsbofP479sgab/7admkuPUfIke6wH6ZAAmi +CEh3ARSj1wbFRdQQECb+eS88LcfycVaaySd+WQp87re/byBBmuLu9oidl4+YKjuj +MCocGQjd75u5qqW0OMIqgq13A+Nd5+QKHoG/NVGHNfZfkiLS3/13hH3AbxyDb7vj +X4Fgsd1zpH83BcyE1mq3Fe9hiHM0OzXITcNbiwXFYA02zY7CXWu+nVm8NkELrNv+ +R0CPNB0pqMNv0AaSQgiaWDpCc9ZNB4VcquqeLCd4OJDtYrRB+X9EA3N2eSUTsErd +x6csO/99T7s+SlZpr5vVNw+e488f7mGD/gQXBbWQWZYtk55ymM3ChQsED5xK/DCJ +ZYetKe+phiF17l1H9XQEO07vTrhRXbKdp2OTgnYZ1pTmjMIALMzg3LwhXrAuoy8I +3xLQh22Bo10koraHkcJe3uAvtDECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOp3ludHKhBE8aK0 +vkuT5aIKcR3rMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEABW9FwOSh/WpTw6HE7MdEmGua08jDlQ/L8gb9Zn3L5EQP +KHK89a1X7eC2t4mOkUhcK7rH5ES6J7o2K8AIvfQQi7kuJPphFQO+epxvNC9DrbsD +bmGh0yWxvpkjSWxrfYu1cEdOJGFWIcFaiYq0mSAURSloj1Talf7y/14kacmw0q3n +wkXQFPWEvowQfA71nN6H0GG6Tl7/DApj0qM8vki9+QnRt8kiB/p+cpuCgjLcIpQB +SKWqoAIQBe/uKCBLQKVPvtXXtz2BY0DXzL25U0e1eDnTN4Kud6wHDyCvXBMNiV3j +65YfWwqROuQ3bwUeQxoxCtNiUgfaW2uIcEnisljOk7s9mBtng80eOKLSggX3a//g +RZwODqSoIJLWFHBfvJ1kqozJo9aPVGG5w+DngfjVwRxZU4TJt6Y58IR/KE/mAIuz ++57zyvEKiCiDbw5uYO4miACNGvEvoq+hYG4iI6gK/yvC4KahwFCi2Bl9rHpIurYh ++LEduqe04cxBk/PIbcViIfPrW7UbMk92aGJTRWEIeVN6T7mpbSLgW7OPHKR2/ZW0 +hHjhX9LLs4Zg/Al1B8REcRIdP9WCcllX90KIKOaEkrLbTT4ajuHhsbKFVKddc1An +EVS0Q+Fl19FBrUuUDaUb86fXpQcsVMFXqcN1rjAHUrn60qq/nRbY/x4VESFz6JU= +-----END CERTIFICATE----- + + +EUS ifx keyid 40b8682b8d18450a2b06849d9b5cd96f4cddf4be 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAeczyC5YV0MCEAAAAAAB5zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAyNVoXDTI1MDIwNjIxMzAyNVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC00MEI4NjgyQjhEMTg0NTBBMkIwNjg0OUQ5QjVDRDk2RjRDRERG +NEJFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzMxdjJ++Z91Zdvjl +pW3Q19zKp6UZxiEEngSvoW1tHaWFfhGhM6cKZRpTjFPJ9HS669Bh27f9XKVgulDW +sw/kZTOLBihJR17bItE1xTWT6i2oHVywnzduAsgZaVSkXYu7Zihj+LvIiSC0qxkU +qASFVSVq9ytX0bgrMXFZELmVGwTCFGA+K2y+2lsvqw+bhTMy1qwzrcL9h1f8Onbp +X4fBY1hvDXXxKTCqHMOE/phuo9KG3Np6Lz2+7kz/IVDndlolUKJdDUEVOhgV3rap +UfmmTVhUkz55mS89w0dxZhcLd4ZSXTnIeagltSymnDEJTLUoOXV6BDyGuvxDP1Vo +mmKKCdqGU3nRGP80PNzhavbj8UrOwlnEVyDkce9DOD+nIZ++387zNIsFTiykB4d6 +ZRxnesnf6fWLZ408KhpRDEE7cqHkVPfpwGXcnPlhBBg+Xzg1DjkNagCFpfRiy+Aj ++XQz5DvP9qQ81y5X3HrpA3NNcFQf3qyDfQDNgEXxuL5SRuL6l/TWoZ9vHyGhsR9u +XdnVRI0Y5wy/uQCVB10kkrLtIouK79Qlf0fh6GNB7ayPWHBE0LSB28ipQRluOFWc +PlKyPAGZOT8NsV0E4pbYP3nlX22Yr34Z18Pu4S07W11lfZQaZ9qluxnEKX2psAGz +gWMcIwu/hs5uPziW2zSXHY9F1jECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGifELXJZTmOBoh3 +jt3Wgm7tWu3fMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAc7NGn9nTT6X1W2eueWtoSWHG1KoWwQ4apCI0S8iwTkP/ +S4q8B0+UoWjMcXTDBGypev1uyKXcQAF7DGmW06IXxqbZ2qJDDcrpgpdYCZyh8xqY +D0IMZlT6CLcIRUH8VQHv4a0S9BB/o4gC5Hw9yyYzirZt8zGk7e+osMNr5z2xDIYv +vmIaVDwMRYTix9vILBb5KPgUElWlEr0Zi/HVMLa3p7wAN6pBpAuVjDY4YiXyNcV1 +Rx6EdL9+KimiGcxFbiZYGFXH6vE+p1cceBebbOG9pj6QswQUcM4n7f7GIB52IaCL +rn64v44jAXQ1gDSt0OFiyVowp6o3xsMxPoTYePllqzLRPf7x5S6bTyTtcrBsiSOx +wf/T1BNlaQccaf2Acx/qDA8VIqWSNBOplW0Ywq1HmJu6ZFF6hTa2+c5h7Tu6ApqK +obAyg+fMz2865vOfpVgD3c3VD6fRHC1CQSTW9ngF29MP/kNfrDfr9DsB5sECOPb9 +0fxGFltv/z0wlZi2XSn5HiH3FLMtUfMl2voyTQ/3fK7Q71a3+9VdZBWAUMnjCOk4 +nsffAehnq5+kl/gWlALlujSO4tcsGCvrkL9Aj4dGJ01VInXsfQu7nol3ICX5rT3f +zt/km8zZbh6sITNjgzQebLF4JAlJzbbHSkvA/TPoxGwdiikfCiSYDFgJ894Xumg= +-----END CERTIFICATE----- + + +EUS ifx keyid 46f26f96330691e561b72f7a63dce3a0517039fb +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAY6CqJ3bPhxvggAAAAABjjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIwNzIxMTcxMVoXDTI0MTIwNzIxMTcxMVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC00NkYyNkY5NjMzMDY5MUU1NjFCNzJGN0E2M0RDRTNBMDUxNzAz +OUZCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAw2S1CFj7VYhlEfp6 +PsxfVAPMeCVe2osGNQqmUQBL16B9jEiwwmGL0zi0+B8cVZWde1ssiHqVkkzYMK82 +v/E5GR3v1/zUgNYHOwP6ouJ4BfzuttM1rui903z3XdZZU2Dy+gijd4e7yZLN9wot +uQqeRnqj4ecCquFXsU4Xc+fzLMuLVVChDWZgTHXBejvyCOCFy/B7Enhk4Auiqc8H +hQ8MVpQE7j/Y1dXu667LowDvjoS0HAZBm1LYtKw3O3EOLjHBrPa87xbnPA9KfUp8 +zC4eCZ24n6O4x5usi6BuXVXJRCTqyervAxslvjJF5bKxL7abfprnD7ELCDZY+Jhx +jAZwjjDNXawsQmllBeFFxR0ru7PERLzLU0upYGiSp2x5oNMwHmDVpmTFwb99kig8 +9YNpA8/vKja+KkxolQl8YVhGnouwv52/q4QJbXsoD16EBxI4uhPa4OUlbjcRlyxi +9JttUVWtoKcdOjs7hhaDis6yy5Wv2xxV937kmUxfoinjHL5g/5/2qRHuQpW3aek4 +//HZ6FsgSRm5bpty3vXnA9+N5ebPmMyFQtiQVcSXeEwBY+yxU81zAyk2uFcVoTJN +J4tvvs3E33cfhPYch3SvXJvkKUDpXdj/NY4VBlIX11NKtMVHw0oyWG57YVOij55T +2pa6M6afQ1ujz8BKDG/2xrCO+LECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFG/bAV6GUhuh06mV +PuJs99Qtj7kuMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAfOXDZPbDR7wvJUpoTF4opB+YEy73NvItRaAfPCCIoQSI +UQwVjXsnrQCqVcvGzMqvhdBYUbi/hgknvYP0ecfs76XY7J8Mfz1oHvvZA/XStOv1 +z8DpQdqqICFUWsiGizhvwMD4FZQWZAHsahZadz5wJ7W34DFzGkwxpEwYBdvGrgEz +4nIxS9JQ7XWjtjlKrVP4UA9punECKX48Z3CWH19bvvgmSnfx1xssHDuKh/QVx6rS +ytZoi1O6+FSj3QqsS1EyS0nNYgR4TKx2G4O+cPH/perQoFtDBL9cIMtcasrQbhTk +SEc4pJvhCOQXV6BEt8zifjHZ+t2SvQWo8M8lUrOndWo+hLgl5wXgvFNJITCdSdaC +ufVFjhqtAh8h70fAAkJxAM+D4NU+/kVBBUlqVk8kUeKMhQ61C9k9Dqu7jm9ZIQ9e +pl7/LwV0VgrtCPWroRRswFPjss2ovJJtYKLXHzyLYQcDWy/CofjYmIvutdD4VXzW +qJfF44+HpEUY4B8fL+GoOgfr7byuPciDkFzgLrCn/dceNRCDBd8w72zh6lXvsdmx +V5BXcNHBXx+kzC/bXV/C34Ce0scCFwXEfWmP5EDptNGZHkTvrp4RcDbMTmW6xyGv +0eq4nEah51S2nz1rtZwb8oZZu+JDF93nGcjla4PfH5uo0a6swSLp5jDL+x1GiX0= +-----END CERTIFICATE----- + + +EUS ifx keyid 5c2920742179bc704db1d8c54c34ca94405617ca 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAeMR8u59Iwo3zAAAAAAB4zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAyMloXDTI1MDIwNjIxMzAyMlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC01QzI5MjA3NDIxNzlCQzcwNERCMUQ4QzU0QzM0Q0E5NDQwNTYx +N0NBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp1GZxEAQUOm+hN4s +C5Orf/rJHYfj7zLgjD7x1iRTCbVMgBcLOMTSptr4LR+rUsG/3eqZVPU5VodDwcxW +FdsuJlwCazhNQGKVU8XvtTe9Vdm6mNxmzLOykA2AvAymacw6teIg+3SVBPX5YWV3 +y49ReKf8G4mdBNXgT24t6u6BUQpKKQyA94IeMnmlj4Jf68put8gg3FaQ0WrJFS+Q +dqM73QcZx+Ek+9EEe1xFd7w0RUjJdhB1z4PwoE1B2/yFujsZIujbaMkqPKt/C9hs +nz3MTYnJCPajdkXi5L0evKRAwfceDBk0SqrSwZZcaNf9HfLx+DCDJaY/9MOz4sE/ +lmOs3FrHWHwIynjALQZ69cdonLxV8+3fBVlT0NBTzouKqMMkBm1SGgGNpgzrtbPu +I8wWhNnWEVKF20u9V8Nqz+rWk0rWGwdP1ajnwn0K3YUWUWjP7jcJU4x63xg+E27k +cShxMAztN7/zypoLarmMYsnupR5++J+GAt53krYyhBDO56oAlH/OEF5TOeYpHBRA +ZrpEXfYrrD3jc3hUB08OmQYJnYinXXQ8JvwPPC70gW2gQmnpgaP5HEeA2mq5HI7f +MIRsBcVbRU/cs/PqIn3fDhMi4XeDRl4k6vbiCN6hH4lu//1yfnVaijEhtIJ8Z5hn +CSnqxFqzaY3okc09eW8qZUh8gF0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOTOt/LydYw5kX5S +zHcwzr7BXwE6MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAjw4SqhhoEk3BmDLWg+cuBScNgNrK+YNQRNW3tRba70en +QyCIEOVT9/EfXYe6Y9pbZYUE2GEICRprUuxQAFXMAa/MwJCW7+pxncSgf7TcZTBO +r5K/0lk8XaAIo+wjZA2rKJciS0xYSXfqt/vtXYLyJrI8wY4MM/3PSXIWE9qXLZYL +/+At+NfVv501yWG5jG9nao0LdkyznyTexi6dO2TPGm6urZEr6PHbKOEm7kjtq/DP +47WPAX4JQn43x//Fay3rsh6HLgQ7hz6OCqekPQg9BKowJmL/UWJKNWjdRNGUQOmL +qQqIjUlCM+IDp4Ja+h7X7KEYB8dV/PrJmHhZGCj/WVapS1lbjw6lBaQonuBiBs6f +lQcuXKDNE9ltguLUCdrkwCujrL/vYNwGnh1BvqkeHEsmxpoTMBE43pQzcgFXiJ9A +xZ0C4w5qCjq0ZISdKEIJxsJNDM3LVPcNa8yGwyra2Pu7L67Cy771UVx1xNyfjXo/ +3AnnQyoj3eV2IhDyOe72uZBWQfc6IexsUe++qet2ViJxqUAC4pg+1kdDdYxM0ZVd +FCMigXFQRJUL8w3s3f50dVlVlkkEH5oidrmPDRYM2RoMog0B/nlmyoRPDeXDP8SA +oiLnx17RG7DQLk2HkUEmEcmbmHPb4/q0AYWpI5xIgzOXrM0lyHLQbJeKOSkaGXI= +-----END CERTIFICATE----- + + +EUS ifx keyid 5d0815951f5f60638a69e7252f3ec4becd7554b2 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAY3oagM+yyLjeAAAAAABjTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIwNzIxMTcxMFoXDTI0MTIwNzIxMTcxMFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC01RDA4MTU5NTFGNUY2MDYzOEE2OUU3MjUyRjNFQzRCRUNENzU1 +NEIyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA53AhavR9E2ozZ1EE +SDOsGCAR74Jw6Ibk/2QA7x1/XscGsHVJpGlSd8Np5DrQwUR79CNKnof20CdfgZQb +kDYS4DIyiZXtlhysCBw88vh700okwMwtn8bhBkvR98gP5ePRz9k7rDtGuPPdN4e8 +0pKsHaxEXJFXdYnTgWq/XZZ2dvrsHWyTS47tc5ZpEIlJJZWpHE6Okh8R3U1pYnUP +vhkj2vsCrz6ve87XG79g51lHRH0iD8vaR1tTemt+Anpz/3YsYWE73m1pk/iFI5mC +ty/3ZW6Ost8wdJ2cRnTNHHU1Vl68iWun5TbnL2OFTA/eAv0dJQMFa7QXf96f/iUz +XRiHfDyj6SLRkUHuGlF0bG66uBTEgyPnf8xIzOQpStMYL4t/396hqInGEql6Mi6M +vhmqk1gXRkW9v/Skq8qyE89a9LWDd/Zsw8a7mmNi+fAJZHS5DRoI3QdxihiP0B/0 +7ig7ck8yKqNiNjyXqdtZy2ezC2QOftpUQoyCGK7SvHgO9ypaoERhxgGIly3+bixc +iEt6PmKDcPr8C5e6Ovl9HhI9Ec+dUvvxFeo8E2uyzpcUMkqCgt+VfPhz7VesI/GV +8eLCxDOF+nx1ICNs8xBMwDmiTDFb1Kb9Vdha9mBYWxNkbwz+MpZJdTXnv5sT3w25 +aUyGTX1bzT658WZ7trGL1BDm+/MCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHTN+6CHYVyAvldX +pn4OwbRGs+h7MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAAljC9uUGmSI4Xuw5SVTQSu8/k8fcY4+KubCck1CUEpCg +P1f2fHdeMFBGHZMImQWFl7O4KmpqRi4lGn48+wRVm6N+4XNZWRAjzn8l/A1t6ioV +QbRDCZctTm9Efek/u5eTXYoikcIG59qr6SVkR8xX2o12DfLIfjlj/EHEuFjnn7J2 +S95fXQmr15P+w40AR6shl3QgsnEBM3/S8LAG9I3YyFAvikqutqJ4TT58TjbheubD +d2MJ0lcv6tWSdxBGdUHSCKXoSEI12l3WsVGOKuicLR9x4wTAB1Vat29XtWDh2Qw0 +Sc77N4eOXuFjGad7W9xwmRD4HvktECdk2bs8wTBqjre4q4H6Ch52+es7s5wN/neA +sck0rR1ttSZ7b0Ha2xoNtqxK4IrQvaxyiBkvUpSM/4E0U1Zt0n1k9yvmPOG++vk2 +vmMXmsjpPtMRj7M10qhig+jFBV5IbMWXsqn99vmRaCaYT1UyGTgXqYLM3G1g8hmb +0y876R9rO521zqD3XDi4Af/YjJhOKBKLjjIaN/FA8eSx0vhMxCnQt8XwxzuICS5h +CpUMaTjIofym5Tiya+7gsUT4NU7BA7yYBKLoddmyVOXl9KuAcax3VCy/t3Ne6Snh +L2nGL662tLbMdz/h1AZyUq28n48cHbO+OH2au8dFUbIyHAQrfTTzIyjMgVWR6Ow= +-----END CERTIFICATE----- + + +EUS ifx keyid 69146ac3cfb3665c7ae78101cca5c14255ca2bc8 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAepx/LwaJlacTwAAAAAB6jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAyN1oXDTI1MDIwNjIxMzAyN1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC02OTE0NkFDM0NGQjM2NjVDN0FFNzgxMDFDQ0E1QzE0MjU1Q0Ey +QkM4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzZiYCp8NFzYryZW3 +2fl6yZAu4OuDVdqR6FS/Qf9FjHqSwXBsoM+KLPV8NDF2N9788ji8Lji0Cwwr81EB +eJXlgrxp0P/ceeQ/eFMH53mUGvMnHo5QOBmsP3MNyI52s7pg2BDoKI/0YLM1z6bf +oteJynoCInUjqVm3Hw0Eez+UJFuxurmNkTXArWzZZhroNuBs3udP4PhpWbGQzo0y +nS226HESyofguOwdppYqW2M4HM0TqPr2rtFBTUyEtqeXtiO8iyX7UtEL5Osvu71O +nySzlPygyZG0HX9xOt6rCDjeP9kQ4WuDMq4wsgE0AQblgqvHWUh+59qPE9/eoVwt +aPbF2Ilxg2qm0JObsXneeMD/pFOoJ9hKu04WKcA9sUSwIEaPldJDC3R0UWwA6pGe +Ob+OYEWtBD9rBj967pFiV77+yMQOCxmdy0uqXZVUrFCCWAiziMFxdYL601jnLBVE +LDyansmd4lBuWw6kVk+0Ga9XRvhAQCBP/oHfb2LxqvrE/5YspcgLWzJBNXMQiFl6 +Sfuz+vFOvpm4wV2PFmMNXA50KtpEN/cJH208IxRXc8f3UA3X7+2df7Ijh1hnMAS1 +lUpeqzPvLUECxnIiujGWCR0utNrg1DeljBRMuiUPSZfMtqyM0f0x+uSSWkDxUJ+s +mEbmVfMKEHshbeygwsppMgJS7gECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJKSTU7JQHfefLvA +2OdUn1fz/3FxMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAkJhWCwqwgsWrR7WyCZO5kUnDbVbN7Krl1AETbcX30yJN +F3nD5EzwQpJlGtO9sLO1DtTJnDVLiYO4oUkYOh8IwNGMEi1njTYO06MAwI919nZn +6aO5zuFX6oD4g3rEK1pbrDx2HE6k2lkwjMomisnzp+UdVKORojz62MS4PanIxLRk +4esv6XKfSBpHDh+3jRBSUVO/SNk6fls7ZCrvMRircy/avUPJeN76kdGGOfE5k+ty +nSiWto42xsUOJw8SVkWo5+GzWEyfBwN+0WSmj97PCG6Khh0CwVoMqvbeulz/wkqt +dnD3eRBWoWil8zAzyPU3YpeLH/cYJIuEqQi7CKhY/OGKR7XMQuv15INCUSWgiexQ +FR1Qfd6mBiU2Pp42cZfeP78JzY8iWAp/DhQfNVlDUM6NBK70LaW4TK6sD6Dw9gvD +Q0Z3OzfnSzKFXWzZqmks6qEUnVCfrH3Ll1ZzQGFPWF+pNKdyOL1z1qPGrOAPXHXM +bA47iv4Zd6GmdjkL12mbuIhmXTkM2iE7zL5XlUwtVOtUsQH0MO//0fPKdSdx91R1 +iRik3zVs1hrC2FEuD+JgqsJgQM3wNjLy8RJq8fnKh+7E17Ngu9H8W12tT7Erjqgp +CRA7awl0De25Q7C9VZeKj6/ggXdQ2nWOYmfK9MQVCzLq4vAHYxQFxva1o1aU91o= +-----END CERTIFICATE----- + + +EUS ifx keyid 7cb4b78e688614be4421c5858f15b96d5eab51ee +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZrDRs0tLqM0rAAAAAABmjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkxNloXDTI0MTIyMDIxNDkxNlowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC03Q0I0Qjc4RTY4ODYxNEJFNDQyMUM1ODU4RjE1Qjk2RDVFQUI1 +MUVFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuAtdvdB59xUfhRbo +QMP41nJ9sasWg+KHa28dWOHTQFDkDIAoWmw5wNvxUW2xx3E/p5glBpZBVVKLoSuM +riP7JsxKuoXyBrFRqmkk1YEEzUafMQq43jtASwX064rMjojUsEWnJYvKoFj6xQ0s +tqsMAcLDjPC8ENvaWaZjAubUquyDNCi0QRFxtRocI4bKlQ+s8j1kQqtRjJAoYiWE +7R2rS3llb5vfw21NumdwxseWjfJN9ENkcX1Dq+cgyBa0ZX/oqkXrSBhtaOmTqCTu +/VQMQKa6cvpTzfa+nVVzrZvCYMhukdeaG/kCQ6S+YMhAp8bFGpreD2tK/XvFZx3N +h9Djgv8yqvNjbI1mZre24Uyg8EBOreADY9hmeQWfpFWDdrHrUZS5XBNy/bFWxSF9 +3vwl1S/uhffS4LWL4bdzQY76udcPqm7wM6H9de8orj6DOgTm6cPHvhHUQl/Ak1Xa +cgcNQU3ALXFZo551N6rdxMzoH6FlymanZw7GuEZra+628ER0iFIRWi/4pbYjHnB4 +KX/oaNBxASMCBRvU8IgpGPecyMDy0z2bBWcK/Pn5l2SmzTf+MjUhnPbKY3TN8g/W +jR0jX1xlnpIuGoUXtjeBtB8h8uGyX9bnXNbVj0opTF7ifCQkYBZOIThtjJTkBd6F +wwYGwbIFUe0rxaMvO+V8poyhbS8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOJF654rK9YS+FTE +MgRSkA47Ek/AMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAAkxnrG1p4yCEL7NuYf9l8MHD0VN/0AJjaqKFK+665C8o +htk82I1IJvQpdYnBkuOYePz9FbHT+wJfRwVNp1swa0vNdVK+/G6Q/n2z4pURWiqF +HeZt5jHZzeLMI2e7NHNUI6nAfJEBXkLpU8IPMCE605WRraXix9EvZqUR9AdMy1vE +yK2ntivKckKIyejC9YJDEKsQqZn+nqi5XDtyx2/g2jko3ewrfto6ohtQ8Klxczjw +05DxSbSbgA/FpNaAXEqgQIrURLSXnJk2siJS/FjOlrsY1NuzKqTSe5chnXecCek8 +qNpNhn9o/W/VLLjdToxvAEFE3SEFaCQYSPqqMjSaZ88t4SHbbNc1m9kVgrb/lB/9 +oHrV0IKrqzEV1WmAanpCZAAR4UP1hyebq9b3BJPz8iWKf7Lu9k3ZRPp6DV30xoIf +0sA59rNkmkTqg/sR/sn+ltpDSqGAKVDa/zR7uTMnHm8Jmb+AJpdLz8iMo2DI3rXc +QC5ZlUYvcBTtnKf2Sadebd02TcVR9DWihg5XYYrrvhUaXBYDrRlkTPa6DyDJT3Km +sEuPz5xhKdzTkMcnZG3zhbAm1LI0Gkb1wancRdCHQwKBWhNyG4ciOS9w6YmWfAxB +rJJ2L4aE0qwcd+gaBCLiCQ+EvLTdArehsphEGeLkIvzmjgWf+yjAsz0lHvem5SQ= +-----END CERTIFICATE----- + + +EUS ifx keyid 8343bac2129d78299c4b513cc3de61037bfcc955 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZ0RAuYeSagmNgAAAAABnTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkxOFoXDTI0MTIyMDIxNDkxOFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC04MzQzQkFDMjEyOUQ3ODI5OUM0QjUxM0NDM0RFNjEwMzdCRkND +OTU1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArd3H2UWOha7b5vf3 +ZrnxPY59u2vo5yhEKc23T6Va23MLYOAUqpMQm/Dbnb8zsd1MZMTYlP2nS4+j0qlW +1hTNU9O18ZmgRHdGmwSnAD/4CaF7Nz7NRQ7h1LcvjBbuCEP28eLQXbAZRGIl5z/B +yhGfSHbodlKRjxBVUpn7wQ9xBNziNiVj98B7uO4TfPwB0kr0iqlz+mwW1jR+ZZXS +ZM+3jjJgbZoH5lGD7t4tPOL1gy3mKU+GSBgorstgeLPpYYvnYvsXK72Wk5LFOKKB +tLldrplbT4yOa/WDp+UjoM70gnFsc3ThkEvJAHJXPrhBWq3uGSGOoW/xifEu+qca +b1A2DQWcDlcovAkKp8Rhk4Cn0KwkwDzu6KU3j9Ij7S68sFa1AfMr+hzURDPV36XT +CIeGfbBdz3kU4cm9pgvrVZZle1yhmu1CoOg5ZBYSfl47CsUtbsmgeLh+A0P7O8Ui +Bwf/9PF/CZjEpQu9lyXKiGOgZBtaL8+qLoo4Iuamx1u11FuOAzzRmj2WYQOTkZvM +y7PX6jgM02lQe3OzCEQIiZWjSzO6Th6VCzlzrt0A1+0E4aSmmke826rhmb/hgodT +fIjSGfHrYj92ocobomrJdzaeaVzydln8pJfvGOIemflVud9AYaq/2FKadlVF/cPZ +OPkdW/VF76Il7JZy65m3Q9EYlr8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFK/zt7i4rBHF1iBZ +vplpdbZ+cHOJMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAAZcB9V5azBzUb3uCfhzX80LSu6NkOE3EH1ZueatY5nmN +Lf/xIWNxiH5sSkaihJxMSC+4xuv6bG3PF/6n7Ek2VKw8+wC27WrZU6Ol2A+Nu9vW +AHEb8bMeu/E8ZdzQ4Q76pRa1wHcW9TokkQtXvWowzfWJGAP/HChefhKw2i5cwv2k +S+7ixM0kfbu3ni3JjLqzDQ71EAGavyScYjdH6psiV23vLg1ZXFz9gG1WBbKnLBg5 +V8bfj8TGT8wO3VgpdoMOgeI9+LA23bdLNZfoRlB3SnScw4+yVckWQbmd8S59U1zW +OpFbKcgWcgUHFE6WvECL553IYxTrQUYpNZJ3Rgpi1W0+WvQt/wopfQ4FQRbZD4mI +oFRc+HuscyI58Hk3K4YKJTtSGiS3HpvPl5kB49O8t7L9WjOxYCRBLHoD2iNMTFy8 +6x0M76OrSPB1gohduLHYb97ciNnNA/lT1t6xbU1FvQ2fDExE0uzKGpwlo0sNuAzY +bCVNSWtTaFvWZbiOI6FDZbGDQlBvFNlZmdOnNy1VGEOKKy7z3/fxCv1vJ4ql9vXB +mXP+Xyx9S3yU8+ldf5QAKFcMlcZB7gPvGoLUJ0sdpQ/IQFZ2tdoFoyGUlnb4qz7C +u8mow/alqbF+/pdrCVqnec4NsZlkBKGTJbC0+Krynj72/xZXI207oib/rK+dj+4= +-----END CERTIFICATE----- + + +EUS ifx keyid 9c7df5a91c3d49bbe7378d4aba12ff8e78a2d75c +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAYB07g4HB2RasgAAAAABgDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MDkyMDIwMDk1NFoXDTI0MDkyMDIwMDk1NFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC05QzdERjVBOTFDM0Q0OUJCRTczNzhENEFCQTEyRkY4RTc4QTJE +NzVDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwt0CQy6lJbtd2wmr +UuXb1rhKxIrsgJdvC7z9gAdQIqSnISw/ZWR3U7ncQpYwx6RgZ+UHPPnCrsdOaoqb +fTn2hNNYM/KDuMfHfgUtjb1HSJvGJSgXbVmHLuRuzlhsBdr7KR2zBYhWcP5pd09v +YXS+zsGJw/BHsmL0/W+JAC3+C8Pu/gHOMZiP3c91CbhAdl2wYPT4TmCDY8E/ZikN +LZ3Tz5Y/0JMGMCyGj4nbRLpEZ9v88CPJogovRmoYo/SOgk7DOZx8yPupPpUc0k+M +yyTcLmaUHtCUohSTQI/bFV4CXABphE6NLS7o0McWovE141Vky0YNDsp5EJUUnMeU +/JVOqUVpWn4sLzF5yH9/tb2db57s78izGjoL72dHNZUWh9F1YLls/TYtMa8nwe1t +7L7Tq8PMDYelR5I4KSMiW9M06mA1DOxmI2+hWV2vb8w6hw2jpizhqgNMZvIH6VUq +/Kmp8f01f17V4Grwug27Ve+KU0D1E2yADCEyvicQJeb2KLzCArftnU/KESGGujou +qocQmATm2ScqbSE2AjYWgymDkc8XUwZD65TALTbT52jwCdJeGqQqeQbhH0kP4suM +tZ0NSIJfvWZ/zGQZABsEIGMn40OwaTy8kR1ZwHqbzzgXdktZCY3GGgFHg696Vt+M +SBlQaZ9igiwbXw2RdOoKSKmGObkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDy1BUBbk8+JUqcU +/lxEBomP4rkRMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAamefbKHAJ6DAWp2/f/KcPvSPMTM3vdLX5ouSo9a79n+c +beH7YMO1Qtr1UolBRY4RU31fsEpCMW9mSDznCq96aPnPx43vJCGfQroO/V6i7eJX +HYi+LxTn+4wNoXbj0fVsnF7dkXdF25ZQGOsB2mqmyk5BZgA8SBoXJ0t6U5gEqbh9 +VrXX+X3iSIpwmeoES/6tzvu1ExGXjc2OpMp5n0r/bguVziDojGtlkS9xbMxsPEsA +HwFa5Yz7gJk4oJmTQPo3nJG9P2q2TNmrbGISkjcx5FuhVRMGhAn+QgBTzxDx/jQw +y267IcYIgngkdoqi0e6MOXl3gVPtVPHVjZKMJYLKOun4Qb4rG/M6yDnjgQIsAwKt +V6GkVRfHQFZpw8+SJMMWKOv8ZygnMARNF0fF/5XE0DXCZ+J4Xp2jnsFa+HnPj8XO +jMG51x8vpzkvPZeelWAhRwv14F8Ds43GSVF1IAmmluHPzJx85uTzncUmWExDm3Kv +1JUTMVliUXKrwOxJU4lgbiHgPwmBVwKZHJVjKGDCm82HkPYOqOt9Vx4woMjAQORn +cBuwMp4YBbjbflxltyy6motCBOKyYKHbxjJHGdoxZelDlrzY1n6nHJSESTNYlN0B +t6Wr9nn5qsjluphpKhYbDEO8oiXS+jX8OaSt0V5p9v6yqgevVym6doo2nak9QmE= +-----END CERTIFICATE----- + + +EUS ifx keyid 9c7df5a91c3d49bbe7378d4aba12ff8e78a2d75c 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAl89DNMjCa+gRgAAAAACXzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjk0N1oXDTI1MDMyMTIwMjk0N1owQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC05QzdERjVBOTFDM0Q0OUJCRTczNzhENEFCQTEyRkY4RTc4QTJE +NzVDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzKXEO/ul5NDLydgx +nEr64MRYlR6Asi2lmJlI45ibNXVq3O2gvgqoRJu3NfRFWUnivm0s0xpU/j5UbsQE +VehMQvjxYf0nc48MOsJ5gFV9kBD4ElS1J9QoA3cVD5Kcd4GmuUpvnd7RCQY7RMca +CClwqE1H9fi+P9cC2/dZXGiE60Xqj+f3JtFGzJFOG+x1d/OFxefxqaC9Ob3GGIzU +Az5bnzAUmZga3exszcHSKKeTJ1l7G3SVc/Qb9d6h+JzfiDJ/IEKPkfCpKbHA2IoC +ViRdozz6Ct/ZFcTnkN36NInVpsRFbUhkMQmIz5s+juc6+n/jeEaz8XKxCEJdMa8H +jTwcbV73BWG5ZV+V/eA99dm1NbICvJ2mpO/AhNP1KEhaoQ1T7xK2koD2FNzOOI8x +rCBOfdrftOUACjabVpSPXv6vZvnPVn7EPv+WowMxA7R+Q3pyx0ytCbaMWT4M6Q2P +t89d6uxfQ8EKUMZJjW/dUx8jtE5Q/CrFLq7MLZpAPDFc+C4EhI3bqSLdID4MFOQB +Y1iQCHHAZYPvv/CEIXNVTuu1j+i2tHCv6LgAW09tF4uTtwbpGB7ILHjLnLDQyYT+ +68Rud0MU6/LQtKOCtpEVaThIXV9SG1dQ99+m2HDZ43TGNRzLNcBf/4P17X9RhvRO +ZINr60h9ZriMlLP8ieR6WtSvDHsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFO1TOVS2Mf0M7NWo +xCMl/i03Fb95MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAEnS194k0RTctTV6eC1XTqOOHPqFzrBuSahMCf75G+Wnn ++RwXxAdkVSyOVC2DAlv8VMz5D0re0HYyxw+7/esWTzEVMNX3T3AzQwDb7bd2H33P +EB1OIN0e6yrIDU92pZeF/nqLGIzKFHBdKJLf8rGU7KyDWSPB0B+qbAahd1xz2mFs +glGbf3HocGjQ0Nm0zVMbUgt3FpQyJ1ltD+NG0Gt3ugjerhLkzTJqeLAuIn3ghWG3 +PF0Gg0ar3OroCed2vcAh+/UdwywtO/6Je06bfAPqe2v4wX0J9gyNJJ5h/LtBpjQY +m7vogdOOIShuXjTHiQj0hOEk18EGX3OIpF6SLns4nLcydWFVv1vXhyKdGh4XYb43 +h+pxcBDmVqvVy0+xDOc38w2rK3lcSxSc3Bo9ai/WSyh5chzKrSNlQfmXGWu50Xk0 +EzgVsZg6gNHousWL2a7r2hqASGl4VMYS+sgzybLefibxReqZk5hdOzCtCpOXd4fW +maFvO2VPcXa59cioKToNeKXBOmoqQGI5Ek8jjcuv13x5c+pQ2ut7FKGeEWtl42od +dShNViCmn7JuS3++IErMQiT8Ws/fRESmai123LXvo/2/k0IzXygphlYqarkF1Agi +IE2dARdw7Co84Ks2n8Bo0ag+GKltjyMhD4tvzQCQygSlGsB3gBd/ptapjwXHvCk= +-----END CERTIFICATE----- + + +EUS ifx keyid a26ceeac95fa33673219d0c2a77637102fb53ff2 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZ5J6uFGPAQ9gwAAAAABnjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkxOVoXDTI0MTIyMDIxNDkxOVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1BMjZDRUVBQzk1RkEzMzY3MzIxOUQwQzJBNzc2MzcxMDJGQjUz +RkYyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwXMX0Es6C9FFejSC +iGHd0J3oIq1C49MSgX4eOxU1lR/Kc7CM358wMbVM/2ZXGwhoYofvRwXlqqL8n+bL +Djwt4rLyGnabTCSoqZ4TZFS7EFgh9J36YxjfjgDukhgGOwkz4N9Uq1qSW/zyQIYu +i1ZnKv8J5UHH1bXZu3JOfTJ1CmJPjJJLR0dCNqLaOuwafnC4kwlwv3iP4UnhqefZ +p0ct+tfLi302vp68+RTylzQb9JvsLax80vd6zEUHezrE3dSk/uPhYwS6BqDGur5u +pGbKdqMOWEpVS72ryae710oCDoo2qZ3KcOU6Tera3noAh24y5Ek6G9vRjCpsYITC +FJXvS1Pgtlb/qGyJ2naN1DD/g1dFCR0KWO2Q9NqyOrMHpd3UBl4p+zYJAXXsXMbO +F6G2MZ6iqPtGi9OilS7LWKv3ao2vuCQzsMRM5i2/Vn7LvXbX5tiIZQTyhsSZduh+ +0tWj4bFdQYGyyhuStLow5zVHYYqkES6QJTpGow0+2ccn4SDKTe0m+la86DwAG58t +cq15K2bfGq78jRgY4CV9NGLlNu/ld1jXZxob3AGkrStUq7H97lpKwslgqJ9yfg+6 +3eQEbuviCNNh6AfZgN1I01wvcsKG+gxF3oJ63wWqLt+Hawz5PCgMtjYTXkAYM1hQ +d1XyRBWS6YTNGJYgvTd8jS7sQT0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNVuoOGHd1WdIMw8 +gfDm2yAU5F5vMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAG6rbyunqDGKCBXFq9CqiVHJ+mQ05t+iSF4v3U9dEN4Rj +yxoVx9qYWp7UfQoviGFoPpyV+SH2fL2AFcjexdb77VaW6WCJ5VBoBG6qplX4JZy2 +dZwigZK1AmwBaAjILNqwf3Pnt68hh0h/mYhuBDfnSrXd0MZNmB5SbzL6YuyJd/5A +v0/pJ+pibj43tWDz59Vrdt3M3NUK0r/V1M5fN2G7Tgtf7kZpV/VAKSk4geW0spKW +UBGw8SMxYIeTJ5DD5SWah4SaEYVCEizr3Cdn/mzpFbS6ttR9Ab2t2g/rcKWVQVEb +m3CBCUyWJ12C7NwG1mKjUm4VNLwcmbVmsktMAJ3gkDm+8u7xSL9OeP0a1r0J/OWG +Pf7/HmGh4Srb6yj3d82O9fF5YBV9UDsXq01o1Ee+cPah9m2sC+KInBLSnEBGAY5r +zJcS2Qqciivbn9SfLWEStnu4OTvR+MpevOYKMudA++wjLWr0K0Eham9/UUwbjBSM +37vyIN1W181H71HydP1W0xvt4HyevFENTIm2UuTj75ZWRJIIMXTI24Xnl+AzttlF +wdNUtoaTH0ulJtc7VQhFzhPe1r80ahLt+5PLnKz/pdJ6YZ8twQyZzMzuQyhKOGiT +QzGNj5MmpV05gsUiqDIZz5Pdz8/oNH2/S0FcTt10Clmrm1laKdZEvsW1K2nUQG8= +-----END CERTIFICATE----- + + +EUS ifx keyid c2ef641c329cb0a9f2eae04bfb10c99b89c34614 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAeuFrJsGrLzgcAAAAAAB6zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAyOFoXDTI1MDIwNjIxMzAyOFowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1DMkVGNjQxQzMyOUNCMEE5RjJFQUUwNEJGQjEwQzk5Qjg5QzM0 +NjE0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsf/5zbYJctlToaUW +s7TnRI4k92SikAYuQ/hobsgpi76Ls6gs0ftBOT2O3oeZ3/a6JJ2k9t+pQYMqUq5U +kH1E1tekFx/BPs9ZiJ1a3cnVrMUu6e2SVcChRnKr0sfJ2c9PmwO5MYBFJXXW1NoN +GJOz6W7TXRVFQyNdzjSg3Odn+73aOW8rVctQ30EIUQWeOLl50LAQIVSPLV1CjwS7 +EyNhojM5T9iqE3yxjYscC8aSTedn/nSZiXH7hdgAKIPuK6YJ01X0l/BPVmV9JZC7 +xGUiDH96ofGwviwo8h8jP/NGNeWrePwGCYN/WQXesS9SjZNU18BEOiG44HsKd8IR +DVBorqgZAMewp0RrbUfCUzVa49yQvsieEiH2oYtpRW6aTzbYSyvGP3MzJbg3wALN +DDNWCMVQYRGCSiBaLQc6H94posRMQvI+Yb6C7ZzKVGJZnoHk3XN5TUYBxHsc1DdS +BOrT3ncXfMpq+f0KBkuoB7C5b8M/HKjS0Llzq5iW2A6tycVJQDdFEPrbVj6V3Thk +DtNWolVxNG8w4MDLOPW0AAx8RZUepFwNVVsnh0pBewdhxGKU1RWqnmV7qFeaCLJI +Bw6bIT83TzhSzJDZsVbYo4WCM7KNdPWJlZTj2Rdl/77a9XU14DEJQZkpp65sMi4w +h7lgi1CVcfTB+QSh0VfbISnXe3UCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHjT4jVmyYqJNXDP +QD/nxqCUQt7TMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAiIa2qqGL5G8Ew2b8N4z1ge1ZTUDrl08Crn1YUypDAMjl +536Gz5OylsQneEEjq1CXEtWpmXsakKbbAsCLwYvq+6ySH8yKa8EwSVUd0RH5s+cT +fxnmQ4yXYrejxIsKehfCJFwXnm78gHJL2XYqdQ02TXqg3EsVCRhCou81P0IjQiGC +YdBnmVol0PuheOEKK1lEVsw0hUg8XVVtzNEuH6ej3BQGaIAinwvltHYJs/lOVPvh +I3SH7agCGII6P93DL/9Qj0UPdGUP9s2rwiQ0GFSEtaTTwUB8ic8D2+uHbPcOZiC9 +lxXmrtMl6q0v9oypCxp5gNrDdqvuKkn59Q4nWMf+GX5g/UygDbKWdmwVMGE3YcyS +2fIklW+zqR0ojZOksddi0XpJacVlNS8h3lYwBV7YtnskrBnhy1ASHfXUyTuUv2Jp +igwHvXn/KltFdvAf1ZcnKugejF9/yihLVNvDsDCGwi/NkfNFvVKwKHg0rk2NP4XZ +IAzLzDagx8efSocE2QK3vXzJbJSPdIvyBT9Rw7vbkGy6SKmFIy4JaUK5MfwiJFxZ +XtZysfdQ6KD4qgX8yaSLymZosAtgwcgqUZt57vgfCtp2AGPVvexqUB69SFJZ+wyl +LvPxh/Il2vXSQX2idg30ZdFcktO+9LQ5ShdbPehvmyqoGWWiLZsVEgpXObXbz4c= +-----END CERTIFICATE----- + + +EUS ifx keyid ce77153b6e110ca4ae2971a09851ef499326202a +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZ/WmjOKcPUG+AAAAAABnzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkxOVoXDTI0MTIyMDIxNDkxOVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1DRTc3MTUzQjZFMTEwQ0E0QUUyOTcxQTA5ODUxRUY0OTkzMjYy +MDJBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnQyYPaQgvyk/vqch +yj0A7Al+NKk7w78mwVv4uoQ+yQJWHNO+UgQNOMP9leYGlnfVL3BmjN8LCiKoNyNZ +on+AoiLviDRsE6kPwvdCd7lB7r/qqDTvOZEdMweKZF7jqNHQtLgpX4p1eGaC8okM +58ZQZk/GMdxoF/oUSkWjgtrBDlLBATZz1awXcvZWBAj/LtC4vHQ0zC68oa3vqk1L +PpP/WPXrqaPfWDnhlu/4FbYZMA9MoC9yi008pP3iAEk6wa0c9eUrM54mmvxQV6AY +bsstiR9YI25oemYiRZDnyzJ/Tu+14XyVvsf2Ng12j3EIO85zf7mQzT0t3NS3wVDG +mIjkJ8de2t9K5K372mEWj5LwipuHfvQ++4klyfoYvaR4ycvUbSs7orum4RNRo4gZ +9B74kHTZ0ghRIRCG+Zeewa3Lqj005cdBOz7j99Neo1wdEPxBQX1v/qRc3Sc9lSVN +VXJ5hqkGHOcEjtWNI+fRTJ1v21uZBKzCKbnegR7LL9Xj9jJjMZCCZGjhiPpLqeLh +SW5cZctLJZGIA+eSMU0UFwBVVmvfCZkQx1sks4ms/BrIMJHB6m5Dz3mkfmL4eyr2 +/cASpps/73V5HlzsHApG+D3DQ00InLXXh0urReEzDHjTjMzUkdl84hAbS0ys+r03 +ozp8ybgoQtfIE/DgglHXSWOzqgcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMzMIwHny8iST35W +/fxF50/8YnMhMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEARD0jbqsA8fAxrmS1I5sjtNeAlUh+XL6nED+7IpefH2YA +GOycaxjX6jqWZxZkyldUZ7IiYLWmCHKGY/PFt7y9Hj0958x0Dx+KmTugtFjzpY/i +ri4C8vUkZIFbeQecT3PSM9vxZbM3QigLDQRnQReMMAcecGxNHvu+3q/IM/0NOst5 +Wq0NpAweHp5A4IZ7c17yp0oeqJaU5YOH1iSn57/OJCQO61juasBX0mmKNDnNXm8t +/wXwGwSPl+Tps5HyuTKJBK9JM8Jp1gFd+0MiGuZrfzxPJJUXOY+Dyjoal+LPfoCw +S1fTizc07gPxmwtMQ+t07/yg/nSi6SbWXhGrLPbZ7ygwKCC653E1jyM+jSZ184/J +wtakxS+0C1W1ukvxFtXGW4jdwCPITfEuRywHK9zMlH322aW07IWqeeEc18vSgQ+c +GGolFCwtJGQdfgGpyzekVZnYKP6ASaDIdl6YdltTryhZBXf+uPT+Gg+g8lqAUmJs +TDA155kQMO2oIiEXQq2Wx/buFDsktiytKFQUkCEzHCfW/YwPUQTgE6LY0ZRyO1B8 +6EOAK2UpoLCe60MG9BaClLqNVM2kAhUeaPRXK2YfwYQDwvi53IOele0RyrAkiovv +Ze46E4tXA16GuWCa0FMQEDLulprijXVIGonYNdzPfM2CZlySJM1qquC2/mhfExw= +-----END CERTIFICATE----- + + +EUS ifx keyid d8a3f556085a68c8aa5d5fe079bcc6e9c6d37764 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAe0aF+W4Bo5YigAAAAAB7TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAyOVoXDTI1MDIwNjIxMzAyOVowQTE/MD0GA1UEAxM2RVVT +LUlGWC1LRVlJRC1EOEEzRjU1NjA4NUE2OEM4QUE1RDVGRTA3OUJDQzZFOUM2RDM3 +NzY0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuMvnOZiDJkjlhCFD +F/F1APodbhWNyJJxrpGsUsoV5Ltx+HoVuNr1IykcF4QcRKFLIl59ceijlQ4y8Zcg +QA5PNNF1NDGuimzvZDO9CUVJxrrjtoSVYtuWDDNWVg8lHYhflDmr7TAmbn4oP99s +xFZ18qzvR0UuhYoc1ddSYDu8a5BZQqk6im7v5FvkY023GSTqmbz4RWxAWREl5y1V +Nul8quxH6RE/fDld+6CsBiudzRCQNhgc4QDFwiIbKS+VIBIsU97I6hZFDuQuPc/Q +DLmMQKmxvQ19hCUvEPzXJOCqXi6EIZzi3qbjoGlah7llxMtfcXVLMM2iKmFWsUZ9 +/sTptwqzBsc9WTgTrEGKN51XqmyNtJiEDKopqra49e19/T5nvtWCXIovteqD0rTS +p85gzcWRGa2Wr0toJMpZ3o7Hw1WnSe9xulM0QlIJzEEKTRPmIjRTQRUo2Taej7vj +6ORmRVWUqHFQroITnZcBsy1J04iuOFCGuQsIEJiVVW1qGMUMImTKSgyD7uuxUgj6 +y2VwYq5eUFK3iHT7WHJsM7SUJCtDo2HlPY06W1VUt9KB/KP7lLcrFSNqJJ0dNNAm +Q4xYG3aE6Uo5VaeSDVOUgKPGl4kWapM5wxramYZ3RMQucHcng3nG1HRTaKoumULP +RCWRXo6j2DcEWsouLkXuaWBZ9NsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGPGpzdaUAsXOOAC +bUQ2BzAgwavoMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAWDXwC42s4etnrN2k6m6rVU5zBd1IuC9YdDQGglL2FpTa +yXyfvCICvPVWzBXPb4kJKwBILuXIJfysVeARo+kHzi4uaZXcJ05s6Os3Dg+76zwC +1hzluSkL+GRa4ykqeqk4cWXgQuYKXb2IpgRPTT/nagcsAOtIqlNis8QqYqN9zPOY +j1dj0AzMZOVFWKQb6JPZlml9/n9zXm9H1FjW7BXbjnDgh9KzPbOewmZbHMXKeIBQ +R8yaselDVQwUy4y0/LriSmube6yo5bx+ierd8vpbhN2uXmKVQ4JAWvA12C2iDdSY +DMKCYwKv8fPIikbwGGxVfwEAir4aHKRdG137ohJR0xnZBGRNnprW1YD0jnYE8yj5 +W4+sSJCcnGoX6x1gy4sCIMy+QGhMwUAX+8QrUUW5Q4UxOT4JmjdXkf5mUAM7fLmp +4C+j8um4kpWQgMFvzTniWOXwgWeibR2cywdX/P+VI9abvvk4sqpCoHUa/ZHoh0dp +cMGpBc8MKAez1FTonUjlYq/f+VuHkpoCdsBaPcykRVdq4yyEPlqu9iAyTzRIVW8z +X26U9v6kXr+GXDgd9SbWa1dFngaswkcL7Ec62nfqRJcXu2wC7ePUfC6lb1AF4kF0 +8sGIsA5UPF2PVMZUax9fZAAv9K+G2AI2bgmFNM14IIiYe51cEdSFh15kIKLmv6U= +-----END CERTIFICATE----- + + +EUS intc keyid 17a00575d05e58e3881210bb98b1045bb4c30639 +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAY/chjxkIqfWXQAAAAABjzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIwNzIxMTcxMloXDTI0MTIwNzIxMTcxMlowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtMTdBMDA1NzVEMDVFNThFMzg4MTIxMEJCOThCMTA0NUJCNEMz +MDYzOTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMayXN4egz7FmHL8 +RA9tIjnh/iz0fJLlyZaX+TbzkpeuByFFA06aflkCDJH+GmGegDzyUkEKpGe9o2Oo +QP4JLxliv+gDlZ3OaXlY5al8EBrdLp+ORj1TJTeWCkEQ98VI5XpHYO2JCvgqAOO4 +ZWcdyGbSQKIq7nrheHMUVSfQ4plVB/Oc+Ggl0TALNFqL/Y6Hrhk52FBCrK2eBfA6 +RzwbOVAAu8DVkOZ+QQN9qeStP9/vkdpvcwEvNkyhMND5qtUsoR09VR8+FCPKaSvP +wmd+R7Ld1vwFNty2sE/TgZyE96WdqMUkOGxKEHEuvAeRntBPdSW44Wbu7Pf/Cqje +3pdQ9YTiLyJOEUbugSf0lZNsKqFgtxtu4JR9zoLzUyXSxX4GcreKn4ZWq2/bBNzP +YHHShOn8GL3Y/GvyOf3laXUpG8xzeEYdrJl/kg/Zcy/45wg3b2tk0pjCzdumZfoN +aT5a8rSof/wmPGjJQBAMU1jo0cliIPt46xXoho9UJfPxMExe6SndUCqdK2AIAaeg +12CIbu+c3TXaMHJs/ssbTL0mkYI2A2KhlxRmnaqKwDW2dpFlh6KUJsS8xEwxY22w +iDpIaA9s033H3fLW/bbKWdnA4VNMPv2yMoJuhJKLoMszp5sBWx4Lcz+tblTP+466 +OLm9mroUXLfxa18hfrqJKkPRQe6nAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQDKmudOzx1N+wX +L+ALK2LmK/sLsjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFtVoU17wSMcHvOh9HaIcLVdz6TuIBERHsSEVyruSoEf +rrcMgZY3ejySz7jPLkmSD6W7Sd5WMFTWeSFZGZuK/vEHcJ6hMSE5wrCUa82AFC+m +BNWzb7GbApmLBZG1IMfi52xiqIL0JwsAKPNZ2YvnRAW4bDUlPXHClV013VZlR3tV +mBXIxNHF+6seECZqmXVAV6NG7RiK+zjSj14b7R9V1vCg5RP/yHXixQnEWfxvtxxV +4XYoAwtAOtO6wt6WkGBs2E0Nqly8mgKPnmOYCk8mKWVxstNEAKWvJZrpikv0voWl +RSxlSgLHLb+oTmKwb9kLbj9rdErM+GAmbjVALUMNoKZd8jeXwy34/dRbNnzqSkKg +1qK+GLb1RwYsrwYesPJDqdYJxO/C4Pf5nODHmyKAfemYZKwRB+7poinpGqhDyH/F +tqc53Dmc5yMc/qwOZM1mwT/HYdkQfuC6uY2ezFQVaT9iRzNVJHMFh3BWTnJmefjH +6kj9BmR4uZ9iT9CCgDQg7XDbxn4YJFpT7/7CG3W/AQIT+2l7Us7n3bZaG0MMt0ke +vAqrnqEDLRNZ7A36iKid1Sw0Vc+7q0UyOXedJa50ulrfR6PEyphaeJtePlBvEuCf +vvmlYyNN7v5vv6L0ROz2FpOWtMbCLplkoX6X7mBZWG0hj11CLvsoXfFsOiaIoRcH +-----END CERTIFICATE----- + + +EUS intc keyid 9aaf591ee263caae10f57ba04fa8d1dd6613f9eb +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAsWg+ouaZocuNAAAAAACxTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIxMVoXDTI1MDUyMjIwMzIxMVowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtOUFBRjU5MUVFMjYzQ0FBRTEwRjU3QkEwNEZBOEQxREQ2NjEz +RjlFQjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKERnCcGtTkmD7f1 +Ctug0xZfbhp6zPNLZ4QWv4lfSNsyHEbEC1QxB+l/6EqJLQ6GALaYQwvse1fhxhd9 +oFuX2aGZWOONzVdFDuzm4Q7ON4PKQ3RvRk1M5i/cdb5GyC/SxHkXXkGljC7fsCrX +Bi1/MNn3eS5h+/nUf+xOiFKZL/RTT+c8b8P9Pnjum/QvNFj9WcD4XiArzBnYWcAQ +pPvZs3wvUtJqKkXHxmsa5g4dbS8uTMivW20oAUqFeN+UH4vkLalQ/0im5AUpMWgn +wUamSE6cOTa4t7jI/Npq3YhnG95bIIUEx3HG3iLLCsFV3Ohmwyeomhmw25W7BU2u +3HLoKTqv0fYhTVTyFQQy7GFBS87jZ/1030FztqT1SitByYjgc/02l6jmP4QoPvY2 +O+DHqfgDGzRAwgS8GnppBu0i5OtIE2HK8KIU2QlgD5wOvROyC9E9IuX+qJyEN6gn +uaOSDqeB1J73JUZOgBLDC9rszo0xnP6S/kOvJ8cBUv28tjdxXrB2l4XREMJNQZSJ +6z0YWGZYiS5wK/yPXWrRoOCJndcrfOk05bLKCVwUy8ANDF/O4a4iMbT4IwpWzx7J +KvjOiSbi0HJKMvRe/Z8fYF5Fndv2WLrYMWIZWpkLTsw/x3di0Q/gyubAViaPHL3U +CsvtNjSXzLUrWwanrdrfVtdqGyrnAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBR+UaAiJ+2tks/P +fXcoMtDUI7N5ojAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAEB7j727lUpvV62MC1+R05EWpR0g7Z/Uu/CXBSGnbhyc ++k8Ofhi6UFOMi+n15vqe5Zmm8gN2ifFw7wK5lDbwZ7EyNT1IPgPv65rxNi9GO4j0 +i3W3ICnezFWwt8SOoFbTmJSql8q4mhfrLyOXAG04kbDCB9H4gDTtjLZwaT1+BKsj +tWSdVldTpIY8N8u6jXZyhCx2vDBf5P+joBIEzFdCVV/U42v9InQdQqVOlsxprAZe +XINpCX58/Ve71pjurVt1ryus73E/ZrF/uYKUdWZSgVFzbjeCjiET2POwBwkt5FP5 +c9hWLMoMu59xrCK1bFACGdCVld1uvXn4pVHs5oSFUnw/42vBVOk7C6WtupraX9qq +oQXOuE8/w7P6ZYd3/5FI1XCp9QaG/OsiIXEN8XE2Eb7oBFmQIi/xJ5lpRyyFtAzQ +V0lgmpqYO3psdfqrXWmyG6rPemHoLu/ZK3AitDUtWTJhTaK9GmQp1APeXZ5JsbmN +EGcgsASEDFACsdS72Gw5yyPCB15vxlTw/ws5++i4NKZ58G/mPfcbtR34Vg7lwbP7 +yeN27i0RXAEM9B9v73wQbvmuJ5igyDeRy6N4jTAOljeeGS83e9gZGgPnEeM98Qbe +VBfHi+UZt6+bzHlJ2K2+MWOJGYCmjMIfQS37i5pH6lY7pajMeK8SE8K0eHuvfC3K +-----END CERTIFICATE----- + + +EUS intc keyid b066d9697f5d3a07b425c10f587cceecf16ffe58 +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAu4cDP0+WFkU0wAAAAAC7jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDkxMDE5MjAwNloXDTI2MDkxMDE5MjAwNlowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtQjA2NkQ5Njk3RjVEM0EwN0I0MjVDMTBGNTg3Q0NFRUNGMTZG +RkU1ODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJv185zrZvs4LfTe +Qz+e17WrbS0d86563WD+sc5JS6sXNkBD+JbUjSkx8bd0i9ZeAtivqXqmemX/K6Tp ++5HZCZHmrtqyubeqExF6icyGSfdtA6dvggE7ItTnINhFRItgvjks5YM4QkHYzppw +ZtWa0DFxPkzRfLXwJWz1plYDpZ4zki+jFBVRpITqQ4xvFvtIA2cCbmkIa/p7a9It +rixkerBYcb89+kqnok0XqthIMWiCbvDgYAXZUrtN2eKs915jLibAlWAh82G0P0/o +ae4bT2lDmYJMreoWGIMrUcB+2I1wVFDCPlYpi3vKvj+ykMdMk+zLMb23fSfiY4Pc +7PeYCO7YpR1wAZt5wNZZHsyF2GP1a7WYMyx70oIuVe6T1AxWuq/e4I79/s0YW8gL +vkSfA9dCoCyqQk6/mxazFbUJueZi7KA9W05yUBqEe1zrcHXWJ3gNw1cvf0EbwNfG +na4beab3Cj3/dRQcizOdXBHfQ5R79tM8txYsk5wFMz643eZbAtz8nmO3UZHeKQv+ ++VoklX7sgwexesPlcuhxsrA0CXPkFvuvi9d7hAMpqantQ8LWJE4J+6Az3pUm1TUm +VQEiOFZVb197z9bstKkQIhJRYJ4UkkxfBBjnArN+MyKWoS0UV6Q2r9ItS5pdImXL +5Sunnt5quBhlbpi8ySnwWC7Zec1FAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBR0O47u8N0rw+mR +ZvRX47RdTE+KUTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAGsrq39bMPHdu3MbypiGeF1YGqSOP3j70j6GPaIzcz2B +wP4Z12p8DVKf5x3IQgF1pq/Am050E1G9KbV6lwzYlNxeiwzs4/wYoucqOvO/mraX +vhrARvSaJltuVJj2wQLTrPYnaJ7zrXo2LJRks5Q/PK7vyQu/orWb97w3sFb+v+c4 +ohSobk4ajf7nPguRj9R3jfgFIbH9fIDeg3H8oVQopSKev6WjiQXd0rPSGuZqmazb +UJ1kiXsrzRbj0sd8jeNyGZsM4d4J8jk80WRXfMuc+In8Va8tnPH64YjPYw88FTPF +IA90XyYG0i3lnjIRmVoA4Js9NWrOkA7nn/bMxzdf+4L9AurDmiwNl90c2oh8+TJL +QPACSnysyP9L+7mliP5b5LseUgu2Pzmq+xCJ0Jg4Cz9m7JyOD5fkIHPX3PyZwtkr +2gYLp6lBZJWllcqjsnYbd9squXPSJps8qtFt/TD5HbOJHkgKoAwNvoEhxNaKml8H +jICOayMKwtkPBjaqj0VafaWNjz+VWQAtN9VACaHw6mQaylnbR8EuVmivMukadUc1 +Jn377m/JEsxaqLwHqmd9CGrFziFuTJRcC3ymNdvWrks8NcbZxCxVN8TbNO05M1dp +rp1c6YwTmTWb0SYWo4zJfuwlxgUTuDVT5IyDb4aoqLxKnhkIIeJBMf1av6xxyQEA +-----END CERTIFICATE----- + + +EUS intc keyid e7083f22152a7492ec59b0c4243437648b15dbb7 +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAsY/lib3TLHDigAAAAACxjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIxMloXDTI1MDUyMjIwMzIxMlowQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtRTcwODNGMjIxNTJBNzQ5MkVDNTlCMEM0MjQzNDM3NjQ4QjE1 +REJCNzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJygcdLHanufJkYU +YjV2/0OkoVw+pOjEiBzJdpjYdQOlL6M5eNxSIzwvxk0QOV96V/R9vMsApbMIwBzR +enI3Jakdv8IRO0firjiDR9pi/YnylNfdnoX/e+butL8bbXzVT8ct5CfaMDV1p0zt +d+4Rpr6Uqi6ELjC8ZuMjInAsnAaN4kpR+C4Nh9ZXtyNz1bvSmcCinbFbymTk/bxx +CLtf+QmYxmPJgxAraN5M0/jL8Aw+lXFRgSRTeS9bMEn2nGxnpQxhcfWW9wr2Vu9U +QCDri7ifa/4Ul6ZGNv2XOYQCkAybpN6qMEN5FEuyq79Q7DZ3yF4i6iB8aqfyrw5x +BgklIEq3U9+ovud30pwBDGfSp7TLdmyXQ4A8r+R/FLxvsujZr+C2anBpGI+QiF4y +V73kEGWRVinJeO61tWpDb6cBv7PpLPiDBwg4HLwJTumw54/7xKr3q6tAGRMv+fUx +5JR7PoVOsjQypu7Lrtdc07rHrB2jDsTeFVe11uEj7WOpEjS4Tqz9LlR2aUnIHBvq +y8V73qFwR4nPMhTU8kv9mAhh+mFlTw0EnJML7Lx030MMCKmMgizmGrw/n258RHGg +MUGZeV6pzHW5G7pLj2y6VS6ZtyctME27uxeBuer0/qqqzC1dfh8r3FGGzNc3ucV2 +Lsk4dVNLM+g8mJiiA8NFNEAnfqJTAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTyqeMuLv06VUsA +0QrU2MoioIBi6jAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAGBoH4kOrAuQwMXZ4rugm2A2gmAAAB9jKpQOW9UxFME7 +ZDdnUBJKV3taH8vyHv6Z55585RRhBR02ufjfgtpshXdMngGvGny90miIi3EwPTCf +/R5SSpyONf7QABZ/DA324Pzi4nfwLpbFj/eQL34J8iL25oLDJPoOMcyaeOjPQMGU +ShlHfwzOqp7AtT1Rn4IJI8fbqxujO4kfn/OndZKvWNNnh0jzRGYlxOQC8yWDMT1B +w2XJOaeP1cQVzGh8C5eb2ZH5Vs+ybBuTuZ/tw0ghwUfGWWGDBSnWm4yIZ+Ik2/HR +Fdcjdw8nggtbFdOXxh4VCYyMFq/hMsJfR0w8QY3P4pZ5G8Bb3RA7ckSrMtyZBNF7 +X9kuwy272qaWu5lKzys9YYyFeS/0JzCPelURLOn1iKaBVc+4pM1UrdEFWuUSD9oL +co1ZGoUNytQMj2Z41GOwNkxx4cWXn8VWBr5BJp/KD7D1etYGGeUSjzbSIjbBfWGJ +7DZQJFObZIKLga5GAmGg1aKyQd3C91CZif0mKC4F/Bhw6VTeNEXV404NDSpzS607 +lowSEeJl/5AtCWQqDLy00Tktv5I1ZL635PLe9dBSF/FDdpr580jVTz8aU/0T7XK0 +3Clz9VRU7WSXcNjdTK/JRFj8/ewVoDHnkJl5Ysje6pwiTb5JGFNlrC9eHKrenJAu +-----END CERTIFICATE----- + + +EUS intc keyid f307ba33347c283a1e0c1508ad02f5c8ca06f45e +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAvDzBPe74D5/EAAAAAAC8DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDkxMDE5MjAwN1oXDTI2MDkxMDE5MjAwN1owQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtRjMwN0JBMzMzNDdDMjgzQTFFMEMxNTA4QUQwMkY1QzhDQTA2 +RjQ1RTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7i66vOe6lKAdk3 +nJBxRM59qJvFWVsCbTmclOFYlmjldETZLy0vxWMX/ykA/KxHH/D7E+9NxyHIiMin +HpXoknU8YTJjB971uXvI6wx1r7nG0zckHe/qDQpUj8lyq2UX8xmryiQNcQjEtsfK +dU6ZbnSI6BLJ3GMDUSzGTDkQcY7ztA/C8a2K4H+qw+GRaoGqgdOM7CuQV4EtBucW +4wGyhYo+H8Xs6wScs+ScAO0slPhyZaIesgMKGxbmIbu1RPfHgSYvLuIcEJjbmzDh +Za/8pGuGBZBFgnKvCO7GT1BIE0Ki3GM7+6lsndKgHxPqzbR0Wm42S3d8jA0YetG2 +tsJNIuXNH2RpIS/DrqHxmhauuHPUA9joZ/36TahjNR1qCyBaHUE1Ni/cm36Ki7Fv +mjrj8OOnFtT4EE99UyFniISt2GTSHcMCpadhPUv3JhbpyUiCv9cGT2FLPUHsO/2E +tm04LP1Vw0KOf+Uq2GQ0+d/R+p5Zk6Q2Njq7RLGxHbIV+XclpOSWa8RBN79fe8PJ +L1443zgcwtRa7+CEBJkLQbTffLE/w9XNdHVJlEWWf6xddYV/d1uqa7aNLY1q+ZWh +ySUuCHT22RYmVqOa/QB87fG8MvIP0ykCc/000jztZSUYecM3dVXTK/977Fdh6nBU +mfOHQNZgcdwD8cq8/MPsCRU3JT5RAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT5F9mkAm/cZ++g +J+sRwElmMIHC8TAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAEph0T36OZKg+eX1AHAIvWYCKxudf2vyBc6WOQm7HbRa +we7qRk3n5cwa/+/ox3tjFuKcBnWqfiHHjqFCkz8GztR4S9OToRShG2uTNAxdIFbU +pJ1JwJzgy8Cdg66lUafBlDDMEu/KHiX8fQCqnGv75xrR08GMjmB9M8nQBAk/19yI +9rU44BK1BEsZM5GlsHLVrLpGFKg9JO/txoed4uuMcSvsav503eIYiyFNe0C8Av68 +Q+ZEeJMieKxGMLZAzIXY4CzBdsboN5FPaT1o2YhsFh1CIZf5GVaCWpJOIPzdUNbT +XXuqQPhFVwqoik1eA29n32I+PT92bOTIXUTSxUZhuPID8cbpOxV5ex4IVtEEE522 +DrR+5I8erabsNUhoi49FLhmGFy6/wzbAhkSFxJLj68+MMNprFNlyvKyrbnlP6BSW +ACveaGRa0bcpmkz2a/GFlijnaeM3TW2boEFBTjqI2KocicE0XP+8NxLn6JVKrnRv +Xexz5ksncOQjTit6ozS38+BJF/vfvegA3AWNbERP6E6pfkqDzwcGxuJB6brEShIs +ufhlimUQg5O/QdwbYhCNRBjemze+NVSTbsqvKvE9a4EWEOnIG4sedRmaOZJnHh47 +82DRtvp3B/FQOKl1QlnYh6R9MRtpammNnNSVMl0BNjtNELX2yzzlgDo2RTEw3ksy +-----END CERTIFICATE----- + + +EUS intc keyid f6dcae3808326f10a46a62d55fe0a9cbe841a3d4 +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAu9qru4sEpDw+AAAAAAC7zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDkxMDE5MjAwN1oXDTI2MDkxMDE5MjAwN1owQjFAMD4GA1UEAxM3RVVT +LUlOVEMtS0VZSUQtRjZEQ0FFMzgwODMyNkYxMEE0NkE2MkQ1NUZFMEE5Q0JFODQx +QTNENDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKlQJlVxkA+DBNlq +0grUoktXY8wtAsCQ+o/0TQrjRK4X3owQ2Qt2xb2LLYEDlf200m6LH0sK20vSBwOo +ofOZT0BKLVmsl8BE/yHAqv60pcOEiGqU3vcffAZlf5U2++K/Eft6xUBXF14P4YHe +1OZVBKnqGr4LPf+plrxPo+YZ2t5q65o+GRo8DylwR0myLWV7uBbEXTcOrBKtUyJ3 +w6NwgKiFDzGIo/+O/tEZ4Smu2M+y3zRQarR4nvkrbkJItTlH54kSxdSpmtH0v67W +43YmdtunMlni/wi7qomtCjegGKwJ44h5GJqrG3GYEORwAwO+t3Es5sScZxUdDAUJ +8EnWgViGZpV5CEFx30q4ni1cUHSSzNZLUY1A7HiwhoPe6LxYEOYB4V/YCvTh7ruR +kJUeadr4ZDK0qaVb3cXXBz1zoQuqb3tFIXZZl9eMWiSG/guWX9GJQxVFmIcOB90W +0okg+4X+QgLRPjad57Dmc4QYo+oazBN8G/LvKF7M6Vs8GkRaBZMXY1kW812yM7bH +AICAutJozQGgTPnHleI5QxPX/EgN65jG6cfuRwQUKOJl4cEyVEO6Ev1ChhG0F/ii +h1AonB2RSIYFr6bWAZ5Ugu9R3KXYSBpF8cMq3dxVViIyMkn2s9c2IPgtEjmy/CWB +kdnzPtcgvONlBTOmN3yYzhDCeFa9AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT6hHlJwUWDvA97 +eVy9Z8Q2TCjRbTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFr0lmb2yoXyfXEL42FulRfR13nLUh5bhOAwcilFT6Ea +u51BY3fV1xboCDrj+vkm7aeB2kjRKR7yDxOh2efA2nlWPXzq+ubysillpE3WKMFG +QKNsv4VsSiC3/EQmbrXQjA3+3R+4ZPCWwphXXHElukvRmLO6P1K8nE6m9dlZGeWR +ap0BQIMJG65Mf/KeuwNQtCZmn9Jyi8CjhTUvByGFGzBDCsPhs8b8HVapXElxpQNL +9nbZba1BPv3xawyCOPHSTh3lQ4ytb5lCTVZbHg2uvCR9IhAX928IvG+LKUo78nsI +Wwyn5BGrNKE7jJt6BMgV99aJPHEc4vnZg0/ZswQ5iIG+ix27mOyw0nufl1G1Ye7q +NBgDfDL00+rAkRPIN5/RRwYclyaVKfVOWlUBp4sDxixYV/MofUwSNyRDApv23dfu +bF6Wx9LqepdZWBsjTaXYu7k9VIwfdUqK380rKR+DoO2uNas8B1tEIKxpW3BKGIGu +X9900zm2oXyZ1GgAtE5rGosBU3XOUndS6aTRv2A2AE4mURfy57HDFB83kmX0JJs+ +otwwbUW2DpuLtvwwB9K69q8p3rRCGqPzICNK2WEqQ8o1U0kYdxCoftlovAK26IKg +hZG2MeGiNk23RS4NtQwE7MIAusX8qJPIZWrI4OKqKO7ss9Q/OAT5MMYk6X2RU1aa +-----END CERTIFICATE----- + + +EUS ntc keyid 1591d4b6eaf98d0104864b6903a48dd0026077d3 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAjGqiNBrvJ6QVAAAAAACMTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkwOVoXDTI1MDMyMTIwMjkwOVowQTE/MD0GA1UEAxM2RVVT +LU5UQy1LRVlJRC0xNTkxRDRCNkVBRjk4RDAxMDQ4NjRCNjkwM0E0OEREMDAyNjA3 +N0QzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzXDrKuMW2PE5+yun +PSWQUZO0RlQ9pT9kuB0Ttz+AreR+MXj7zTeIHsjsgb6tMXA9NgyeCHgA2ux2D0GG +v+BvTXDHd7mIyM4/kI4t8X7ZHAipKTAVuASu3Y7mAawMEnmhCx1zROo1qgLU+l43 +XuF9Gvl7F45COHMNNy83WY8mbsoGFS2V7EmUmIjRbWfyDTShQu3f2k6N0B8jp/Zn +9VOT4CNU72AR22sbkgnhdRdd/Buvpq0ChrQCYScKoW78SlAJXQie9xxRf8MF+d21 +m4wt034bq4daLvqcLRVU2uuAoawf7/LMgm9dYKWtrXXr5wvsciN+RgY0VqPpUBex +xhxq+Wt1wxdarlIUjvWcmWvKhoUtddOx7w/9K5FI8BEZaYvbO8JcakQgxkmmrtbL +5b7IEUkshN7sYUtSN6muoxJjXrakhs1nAp3LKLAyElLzROoCvZH5wpCYCA51LDAM +eler9preRa7OVlIjEdIQM/EB+VJjOhH7jfj+X22fr370bbtXgmaeEpbEh4CkzGfE +55hoLFmNR5jayJhAPCrmHWoDI5+XFvFAw+k0cizpmTfb1wZfBqfA9GbuZlb3ni4Q +JH4M3Jw1G8cFZZMln00MslPLC3auGlp3yX7wGSE1PGO6bod/Ua/MhWu7sZLgArLR +x5HtnpDDdOFOz8ysD+VyHL5Q6qkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFB0GLu54Vnz9pHJP +K7RSSIlW0EunMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAinx1JuQ5WJYppnVgVYFW18pUrN8U29xb5bJ/+PQXGii2 +F57OrlZ93UPcVrsBu+Xy+QJ5ubKhuEmyqje7cCQHVt2DsSPockX4Y8dgq1f2TwRw +/YZ3gvPSzJqmcUSPN0YByS+obxLKKl5uDy0N2HoR3HserYgSZzzmArd2xGLDs53B +V0HP0fDdw4wfRCt0FSTwZYlNeIuWCtZgA9iy0eoCn/PV85ycFkzPVzsbet7AZcJQ +JqowhnDP8LDfDLSV2+4eUps40OQkPnc/R/sbRrf/iZvb0y3cpnDbY2V7la/ml0f2 +4emtTTQQQkzKAip/MulPDBgTVvKtREBfvR3hmkRL6nClIYGb2mXcLQd+RK3XlNVW +u9NxpRV6jPFl93CKlL9Nyco8zzl+lgt5f2wY+k8FU5OmybKet0Nkms4rWFcfVEqU +syTYLgT3EwFu4RX3Bl1YGCWCAYL5Xj4cSHYTAYz7T20MaAsmJV+Q0q3hNMCnBaB1 +TXfyuFdq9PNq3jFamb1iTd/IdAr8bjlov7l92F/bsxx7yIRl1ti1SEccmZqC/Fnl +Xf0BhRWIiirMBbOiBU1jHLJUpRZli5wbSKUF6x/IBlFDo05xg+K8YC5XPFLvhlWn +dkkuEFZsbxrTdqHjOgjdm7GsenWGYAoMl/XPKh/z+rFi4lzQiPH/+CROZjGFvHQ= +-----END CERTIFICATE----- + + +EUS ntc keyid 23f4e22ad3be374a449772954aa283aed752572e +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAXro61VCJKtVFgAAAAABejANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MDgwMjE3NTE1NVoXDTI0MDgwMjE3NTE1NVowQTE/MD0GA1UEAxM2RVVT +LU5UQy1LRVlJRC0yM0Y0RTIyQUQzQkUzNzRBNDQ5NzcyOTU0QUEyODNBRUQ3NTI1 +NzJFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxizFnfn1egyOJ6Mu +T3VY5FecD24kcysaP0TrIl3wHjRySVHW3Bb3rzbp+B0wzAU8jp9exgzs+5fyZyoM +YsKyI8VO6hdBE8GfZUR9kSlOX3KFgFGzZqzi+kXig5yzYoJTrvfQLN6SxzsWL1l0 +taz+GqfjCSuqXpy/17l+Hf8FJO9bTHv3kUu7ul3SOrUUD2hAy9n3bVFmQ/hf8mzc +u1VBQ85gnpjMEZ2HVKgqnk+kv4WQQzbOR3UFd2peVStN808m8nB5PUJjwLVxFZm1 +mWSSaypalxOcUpOe7agwLEleJCy4atkC7iVmY4tpwNE1rcM+0l1BhUGJn2UeT3vW +MHCz0eJeZVfSzgWTxFWoQFxLJTt9R+m7K7bCu4WAkPfZOjUtvC9YZqesGGQJP59W +l/8OErDBH1rMf4V/Nn3B6H/vvoYdMhCYXaOTLgEPp9IjMHRT6XkE3+/T/a6jaQcR +rP1OUWHjGDNRwWWt5jRU4NhZuYwB1aXK43cLtc/h/AFVu2sD5z9NJr8K6oUip8Vw +8KeKKH7hqMIFDl3A8s2uLmF9A8vxEmxfQoezTAED8AN/w7ZLjzLcrVHxFgjPwQ1y +Q3DMU/sp7dkLMU5809p4OHRx4WpF5wQ7+rh6LCKD+lyIwhF5wx4mJPXY7+mElQpY +l0Pc/Wn75IG5VnvI8PQUaP5pCfUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJehpIeAAYGVmmY1 +VYxaisMMNOdsMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEASqgjS0E/ZS6uOWaCjueIzgyhdPoq9CUmDDRdw43WDRIZ +n5ZNmTfYao8TtNmqA0RUy5nAKKZ/ClM8qlsxqCdkEggixE4ltkWOvyr6kqk91iOS +RWuGYyU5bR3XF7S+XjGxz7oDBDkw+H2p2ZteAhDCkNQjM4hPfykKFfbpr9x2Rg6X +NtLDiBlG1B7Lj4BqRrMjcxdAKjO+Fc6pn/17yR1c+12wKmQTna+il0YC1PQirKFv +ekUyYieCximqmjOsYR7xeUBZ/t81PNRH5mb/QWqFqgNz7DRXFFHsMX6lwdlT4yby +nuIMu0Xwhnq6xrJyLucKDfJJ1uIudXSieZfm+7mJ4wb6kv/hFSluGZ2W8grTXCm/ +a1L2hYxVa9b5XD71OeQDbiT3C3oe47eJvez3Ir4hptERS/pc2QolQTnBk2j/QfE7 +Ugz0ShaA0LRAsyg29TPE0EDLofAbRnJzI50bVueTAxTuBQc4YFW2L8UH1G2jxOnS +WFRCC/z62AyYFzPsD2GSaJTRqw3dnh357S+H+u2L6mModMjOkRRT9OOj41N2oEit +iOtoELO3mtmLLBLy/oCWADbJSQAMDG1Q1JyYjqhLgDOqsr4HsejuqWu8eIYNOg+i +kW4plyMJnb5Hs0H2hVgRBsfIHpOc3FHC2mTMPFvYfED+FsyOUSx7hLlBYnix/GQ= +-----END CERTIFICATE----- + + +EUS ntc keyid 23f4e22ad3be374a449772954aa283aed752572e 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAm+aT1VMuZQTgQAAAAACbzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAwMFoXDTI1MDMyMTIwMzAwMFowQTE/MD0GA1UEAxM2RVVT +LU5UQy1LRVlJRC0yM0Y0RTIyQUQzQkUzNzRBNDQ5NzcyOTU0QUEyODNBRUQ3NTI1 +NzJFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0en2pJ/IxDvcecmV +yUZGzxoBiZUNfm/yyp1r/Rr6Vtg2E6ibDbjnCwb2DNQJqiUAF8+GtaW1VukYYKk4 +cxO3PUb9ceI2cA/v7dJXvOh9bxhi9iHpdNbPDIM3PpHVS2Tq3cl4mOLTzORAjNqG +kfx7Shm6fKqVklCCsgeqsrcKthQv5LJDBgduVXAvwZmMDHFl6uxO/Exnzvij2bDl +npMGera4637VP1dUKcAeKePzNfg2f6wuBBAeDbX1rRhLAC3+uL//q0vZTH/10lRS +TtDTMSoaqrmIC/Pr2lZvRj3+sPRdpQs+Y/d1WM0pHEixI749HdxtVmN6wuZFbmND +ZgX8LFUR3WOyH4hQOPAlTkvkXp2JZ4IRcCURQg7Jxg6OEQkKIS5LLF8sxVMXcXyE +b90dN+uzq2dzIMhYNHUeohCVhkjY0CLYINAsaaAEJSrHDiXdDljCuViwDi/TSzqa +jbrhYf+tGgFicLcZ2IXKBrYJfLvHWyMALvQRWx1NxMBSjR2CiwUmKJEyTy3VQpDV +gWFW1GggR3UVbZFOqZ6O6UsXRsr1qNhLMBe+JaHKC1q7oO7fkZNcCjNpLKcMVq8z +rhyCWjaJx7tD63/wVn1Ef1O+OaYSr5YeHCNbvYq/4OxmRTto1okuJzy4XSX8SBPW +Au0oLBwNBACToZpqQaj7grwzS+kCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPHpo8CVyttIkDcU +Z/bW+RX9SeW5MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAETYPUCpA6Oc+xBWTT6gJ/3Mecfw17FHyu/tbuI+GQb9S +2GBt+RhNQg6UTFygbIr7/olKH5eHQrHXder5ZlvztMY9AKuCfGTGnkA84K3Ts+z8 +oE6JlnYG+RpdY+AL93HvYnL8ZWgtLlZkXRgZMg+nuoflKKePopGd+Y2YT45ELzTl +f/zXvm07zwWvybrDXbA9h+oFXpLPrr98dU8N3sw5kpczR++0y/aveVS1c6YalbWN +yfzjmXGyJrKeLLKg9Az4vB75aXg/2ig4APC36Nu/UloxXvm/1SQ9Kfl8qVSy3g0K +TFxmj1ZzYKLaziu26qW1Hg68p9kzwfDL66esrZ0hTqSMImY47Hzstrnc2kRDwT5T +FeGzaexBXFT+fd0sf8zcxISCvcdQEh4QybxHw+SqElgZNl6zdaA2+XOfguvslAlZ +jnRy5ycEcDb/zgyA5w2dxQs2NFEIXK1tRC0H9v6wSSYz5pLT0wNvTeWKfNU4AWVS +NQd3L1NyIXEkeUUZd+5p2FhunkJ+U5F3wOlbAHMgFAmOclBs87EOtR77QOFzY20+ +8fx2paeeAmkDLqJm0joOEdCpcrRREUAmG1xlt7xSvvG32C03SN1r5mASlAMCAukB +2vDkVStYB5mVAC1dRQsnc/I6xcMj2BuYMkSDhHhrrebdrkR1gZ+Ni4sIDw7KHT0= +-----END CERTIFICATE----- + + +EUS ntc keyid 882f047b87121cf9885f31160bc7bb5586af471b +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAXvh3ypb0eTPegAAAAABezANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MDgwMjE3NTE1NloXDTI0MDgwMjE3NTE1NlowQTE/MD0GA1UEAxM2RVVT +LU5UQy1LRVlJRC04ODJGMDQ3Qjg3MTIxQ0Y5ODg1RjMxMTYwQkM3QkI1NTg2QUY0 +NzFCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5GZWRrhChWOrEnuA +pcH6Y8zgL5sZol/Jhwg8fx5q/cd7gfqYFqw1Cz7p1hHW8cNT54EsLMXyHxImzAVr +SiAcgvNOH7JpyDTM1JDue1aLwOZFsGBGxTBK9LY7TwOJyRGMwiFgazNa4337EYck +SrIMGykKsXiv2Af9RNKQgp+aeLNNHcnEUVM/lhutixsR75QTPFwQC8UUIP6AS2w5 +ytuLlHxAjbDRTFkPkgiAa1KeFmKLSkpBldwEvnvJhejzmj+j7qZ4leGHhbjJqZEK +lEtKlytNxbGsVKMf6Nvor0Tgg3MCFbkP8y1HY/rauy6AYNxmsTQZCM7RZtAF2CyA +i6b7ZDdyYJCM9VHcc+U4FP/DF69sSOr+oSnad6TbCaLBL8b07R5gapvIIOclVFvE +PrfGIpldvY/+blhpK5OePldYn/bmgHlub1DmFaNt9nEp8udTcXrIOskxlrguwFI3 +Uwq0xC3Sz7iha/c7L5GbPehWvSlHeXRRM5omx5R8N+AUYjsm1EjOEkTMLJGHCbGM +e0NsPpv3FdcQqinpNoTs08YcxsADBassJWGbJSzaWs9V46gReh2PgQoruhdWg3Z4 +U3Fp13Gq/3E0l998SqfiftrWS7+BCqSnkmqWEf+alorcpNU1eIinU/rPtjYVWI3v +tXYj/u2VLdbG+ilMuFxPre7dgyUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKEnCgBZ1WyeLkZB +AWY+AQ8GfqbBMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAP3Jqbci9LfFN0Fo2j4D2XwT9Fyh6a0ARRuOzWGmfMz+v +hzT26eiQOk4BXhMEtanCjrNjY8/qUrorRWafw4pVjZiGoogMxh63adKIewmvg9sg +ZG1eURau+U5pw9chFVk1AJu4EnGndc7xKQ7iJkc+DAdCNAqM1Ez4afeyjeAV3CDf +Aqr5Dj5dpI6+g8MGvjwX+9EYG/pQg2hYjqm5iNe5QTBebpS1CfdEltTC3CU68c33 +Z0esuUqiR2gfGgD73hhFqGYMzxD62uihUD7ki/IvAZ/Bqa2ujpDrpFUnEh7YWzyD +QepF14ZZt1mu5IxypVyqwhfB2Ff1ouqDX0rndUZYwqbShaalthiSDUspITrKPY6k +OrohxYsGzPIhyYI9HwiIIf8d3ABYAKsPqcsgImEGT7RxG9A7HFwDZ4XPmYsM3G54 +NKv6DxbqAMiwMrvFPES1KPMAQSehKuD9RE/pX3W1OYaIaU51bPR7DCmmKGwo09QP +U4W6J3u9F5T6ay3H8wYsJmMLMRhUhs0FKvmqEV1NVRkgToQK1ubkWEkPwbOPSZhH +VkIZ/iSIt2Q9R0JrSMLv0vJNzKDvkkXqVP8JTYIGUailx9DMrq1hrrBZv4mbA2K4 +yTRSvHoHykfh7FiJbduRl73MVGw7JMJHRTSuX3ooUsw5zhsXfwZU6TNXwMr7rWA= +-----END CERTIFICATE----- + + +EUS ntc keyid 882f047b87121cf9885f31160bc7bb5586af471b 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAnDvB5f8m1gXpwAAAAACcDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAwMVoXDTI1MDMyMTIwMzAwMVowQTE/MD0GA1UEAxM2RVVT +LU5UQy1LRVlJRC04ODJGMDQ3Qjg3MTIxQ0Y5ODg1RjMxMTYwQkM3QkI1NTg2QUY0 +NzFCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr2C4AaMpHp3xv4GE +eODWbPUP2rXcvCiE1KM+OHUq84P4fjk+AUT1tlsrCj/6Udh0RfMDl4U7E6KxmrUU +Bc4TI1pnY8B4AX9xhEzTReZv3RcFFTM9n7Sgb0VLMrJMy/tF4bi7FiNQK8B3ndGc +O1cxTL6rlwIdN9R1eIJLV7dW/Z8PoAo5xbe1YuiO2eZaF77R1QLTt2qZCCZlRD9W +32JIOG5l4YGqG5n/sU7P/ZFvX20pcYZkHNx5I2GOXWa4GWwuj3jOA6Vdh3hWjUeb +Qt/QXQd32W/dhpHQMTYWz/YNBHcjveQHVplRKchRCpaA5wCagV6/dK8aWtw8oxuh +e+LQ0QG3yaZ5U7sZFI+CKGYfEjDOt0on0+fqV3ffsBFIb/tyZXHBHlt7XjuOq8ku +n3LVzck4yMl547sKBm1PTMfTYkfIGs11Pk08fa+Tog62Km3DGnWBo+LYepmVFEMn +ExCCKswxxYjtEBKHj3nt5K5gSkTEM7s55qijpnVeyYkMWh6rTnIAV+eM1tVwUbBE +4xVmDra/D0UVnmQm9gJc9/0hCsathvXe6O+LgOJ9kx0OzblEnMOEVUu4VXLUPyUX +XkOTEnKBOyjBLIzfI3YTkBVyTBW4Zl3Y6yUB+ew7IZisvBgfXify3UEMaVp04KE+ +mepipINN1NmZJ5PjAxuNqYebv00CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDNpwso/h5JRhYp6 +1mod4WkAxEaoMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAH1OygGMJuCtoF9F6AoJibtRnklMaNjWNzRIi2PqNti9r +mAj8RO504aVdPqFsLNzqlRmPFVj5cblywoZJV5yzP0pwdIIyLoY/aSIZJuD1QtGF +JTZ7p8mFEFlSt0IwO7h87+cdwpxdRFooArTKb5PBdm3F5MwPOjfS2qvckogt6cPW +L/kYU0ZXxkozIjIHXNe8O1kTTdikrHlT7IiIztJkm8LCfKCkmjM3VpGIbY5nNt9b +I/7aN7KCUvJnG+KH91xH3D2dvRZhq7uVPdradoBuTG/RGyXd70A9utq8W1jGRnf3 +EWAyNg9Pwf/2JaA8dvs58F+KI4+q4TkUivAGsKdQT+4PX0O5E+pMQL/NmwlReiMX +dnskct/SmkZoNkfpS5lCpEcGIXHlc9tb6ygQuvgNVa568B/YPecBQG+tuU8OV4Ut +UrxJOrlXKGlO3ZxZ2YtAdUUqaNulVMN1gRU8sK6b2+W8GpoB2uevZ2Wuk1sUy6ty +TdJq52xfzZipbznQzxC0tVQErLd7EV5S2kpGLycOANECPjB0Svzfu3D67Qied00a +9dMUGdBHo1RTUn/rnOzf5ekdyVrGXknYRJiaVksjaVRliv4MjuyAAp0FXb89c/1s +vcA0MjSNXFO1Evrq67DLm527WSXRHc93NcsSWtODpAVLu9QTT5xXAk8zDJHXqrc= +-----END CERTIFICATE----- + + +EkMfrCA001 +========== +-----BEGIN CERTIFICATE----- +MIIDNDCCArmgAwIBAgICEAAwCgYIKoZIzj0EAwMwazELMAkGA1UEBhMCQ04xITAf +BgNVBAoMGE5hdGlvbnogVGVjaG5vbG9naWVzIEluYzEbMBkGA1UECwwSTmF0aW9u +eiBUUE0gRGV2aWNlMRwwGgYDVQQDDBNOYXRpb256IFRQTSBSb290IENBMB4XDTE3 +MDUxMzAwMDAwMFoXDTM3MDUxMzAwMDAwMFoweDELMAkGA1UEBhMCQ04xITAfBgNV +BAoMGE5hdGlvbnogVGVjaG5vbG9naWVzIEluYzEbMBkGA1UECwwSTmF0aW9ueiBU +UE0gRGV2aWNlMSkwJwYDVQQDDCBOYXRpb256IFRQTSBNYW51ZmFjdHVyaW5nIENB +IDAwMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABA8ri4sMjK5RoF9LOA8eZs9ZHKJ1 +dXT/w28Vtwe6yBA4Op5w0n0o3+9NPPKJfsw1YDoeKZ9kwvpxTVM7kBtpKOw6NRRq +bUAkzAfYqIwpHPPhN25JSOXhl3bn36dSCfUCfqOCASEwggEdMEsGCCsGAQUFBwEB +BD8wPTA7BggrBgEFBQcwAoYvaHR0cDovL3BraS5uYXRpb256LmNvbS5jbi9Fa1Jv +b3RDQS9Fa1Jvb3RDQS5jcnQwHQYDVR0OBBYEFAIsvu1ddwYPKDPp1TdrqLwwjNm6 +MEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6Ly9wa2kubmF0aW9uei5jb20uY24vRWtS +b290Q0EvRWtSb290Q0EuY3JsMBYGA1UdIAQPMA0wCwYJKoEcho0hAQUBMB8GA1Ud +IwQYMBaAFDq8/wjfXgEMK2QHi8fOlQb0CP3kMBAGA1UdJQQJMAcGBWeBBQgBMA4G +A1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMDA2kA +MGYCMQC3Z7rH2wyIAhKM/2TopTbWUzrTTlwyjHw1ShOcovNEMgevVM/+AV1SAGSL ++n3LengCMQCYnzH/Wk4o4+0lOrnUDLNT4L7N6d3IIFGs0XARk1S/RCBoyGSlHUP3 +7JhNd0voDIc= +-----END CERTIFICATE----- + + +EkMfrCA002 +========== +-----BEGIN CERTIFICATE----- +MIIDMzCCArmgAwIBAgICEAEwCgYIKoZIzj0EAwMwazELMAkGA1UEBhMCQ04xITAf +BgNVBAoMGE5hdGlvbnogVGVjaG5vbG9naWVzIEluYzEbMBkGA1UECwwSTmF0aW9u +eiBUUE0gRGV2aWNlMRwwGgYDVQQDDBNOYXRpb256IFRQTSBSb290IENBMB4XDTE3 +MDUxNDAwMDAwMFoXDTM3MDUxNDAwMDAwMFoweDELMAkGA1UEBhMCQ04xITAfBgNV +BAoMGE5hdGlvbnogVGVjaG5vbG9naWVzIEluYzEbMBkGA1UECwwSTmF0aW9ueiBU +UE0gRGV2aWNlMSkwJwYDVQQDDCBOYXRpb256IFRQTSBNYW51ZmFjdHVyaW5nIENB +IDAwMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABLq7H/y6uXdkXZWYlGAHJGjaPsS6 +cnLxp+oMnOQhr/wuTviTiCWA7gFaPOeEg5JSC944VG54M+JS0jKnlM38CMPWBKQQ +nNEaWWMkJbhI/DychOqZ9bHVN0DmsrBWeSzFdKOCASEwggEdMEsGCCsGAQUFBwEB +BD8wPTA7BggrBgEFBQcwAoYvaHR0cDovL3BraS5uYXRpb256LmNvbS5jbi9Fa1Jv +b3RDQS9Fa1Jvb3RDQS5jcnQwHQYDVR0OBBYEFAPRzeQ46j2zTZQxgcHNUX1ogGLv +MEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6Ly9wa2kubmF0aW9uei5jb20uY24vRWtS +b290Q0EvRWtSb290Q0EuY3JsMBYGA1UdIAQPMA0wCwYJKoEcho0hAQUBMB8GA1Ud +IwQYMBaAFDq8/wjfXgEMK2QHi8fOlQb0CP3kMBAGA1UdJQQJMAcGBWeBBQgBMA4G +A1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMDA2gA +MGUCMFWbhtvZOP+xqrxC2N5ArgiBBfheFTWM5rectLY50LQJpOMaiVSFs72PUrhz +IFX6ewIxAPL7H/hDyflrnB1kUrcbMaRxjuV8xP6h6bT6hrz5x4Y+nORKkxbz2KLU +G3zS/IDHOQ== +-----END CERTIFICATE----- + + +EkMfrCA003 +========== +-----BEGIN CERTIFICATE----- +MIIDMzCCArmgAwIBAgICEAIwCgYIKoZIzj0EAwMwazELMAkGA1UEBhMCQ04xITAf +BgNVBAoMGE5hdGlvbnogVGVjaG5vbG9naWVzIEluYzEbMBkGA1UECwwSTmF0aW9u +eiBUUE0gRGV2aWNlMRwwGgYDVQQDDBNOYXRpb256IFRQTSBSb290IENBMB4XDTE3 +MDUxNTAwMDAwMFoXDTM3MDUxNTAwMDAwMFoweDELMAkGA1UEBhMCQ04xITAfBgNV +BAoMGE5hdGlvbnogVGVjaG5vbG9naWVzIEluYzEbMBkGA1UECwwSTmF0aW9ueiBU +UE0gRGV2aWNlMSkwJwYDVQQDDCBOYXRpb256IFRQTSBNYW51ZmFjdHVyaW5nIENB +IDAwMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABCtznQzLxTR4YGov53b3NXkjNBcb +iWeC7XsukpYkm61dxCw+bsP+jm1soaN9/WDcodzN8hlBFVYWwL79K+S5w9Xojnik +rrnadWfCJ/LwmY1esyjQEmSbCXiukCZGfB8Nq6OCASEwggEdMEsGCCsGAQUFBwEB +BD8wPTA7BggrBgEFBQcwAoYvaHR0cDovL3BraS5uYXRpb256LmNvbS5jbi9Fa1Jv +b3RDQS9Fa1Jvb3RDQS5jcnQwHQYDVR0OBBYEFOuy9OMS5lKcTtDNtoIoWArlID1F +MEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6Ly9wa2kubmF0aW9uei5jb20uY24vRWtS +b290Q0EvRWtSb290Q0EuY3JsMBYGA1UdIAQPMA0wCwYJKoEcho0hAQUBMB8GA1Ud +IwQYMBaAFDq8/wjfXgEMK2QHi8fOlQb0CP3kMBAGA1UdJQQJMAcGBWeBBQgBMA4G +A1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMAoGCCqGSM49BAMDA2gA +MGUCMBFkhoH7ATgC8Z9QAsWJ6YZzI9wsXMcLjytBY1Ae9gWkFQEnfrx43gd+/pRl +2Mpy5AIxANhHc4NyRsFsZ828jOUthQIH0A8rckSDwNkoGWGVAuny/S9Gww6k5EM4 +EwQq9W0Syw== +-----END CERTIFICATE----- + + +EkRootCA +======== +-----BEGIN CERTIFICATE----- +MIICRDCCAcqgAwIBAgIBATAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJDTjEhMB8G +A1UECgwYTmF0aW9ueiBUZWNobm9sb2dpZXMgSW5jMRswGQYDVQQLDBJOYXRpb256 +IFRQTSBEZXZpY2UxHDAaBgNVBAMME05hdGlvbnogVFBNIFJvb3QgQ0EwHhcNMTcw +NTEyMDAwMDAwWhcNNDcwNTEzMDAwMDAwWjBrMQswCQYDVQQGEwJDTjEhMB8GA1UE +CgwYTmF0aW9ueiBUZWNobm9sb2dpZXMgSW5jMRswGQYDVQQLDBJOYXRpb256IFRQ +TSBEZXZpY2UxHDAaBgNVBAMME05hdGlvbnogVFBNIFJvb3QgQ0EwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATvuDTN8TNvp3A9fSjWpDARLmvz7ItQrDq/mmuzvzInwQfs +YKUUJza4MXB3yS0PH1jjv1YMvaIBIalAgc+kahScQUy6W2fy6hd36pazmc/vQfG3 +Gdhw56gGwRHx4rn4TuqjQjBAMB0GA1UdDgQWBBQ6vP8I314BDCtkB4vHzpUG9Aj9 +5DAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjApzqSmd4cCMKC7slJ4NE/7zweXZx89JzSEnEWGcq78jbbXCw6yM+R4nCNX +phflI9QCMQCeFOAvyR+DQvThfGFINABej+1zeDVIjuZHat3FHVyV0UQVClPgMlZu +TntipXwGOVY= +-----END CERTIFICATE----- + + +GLKEPIDPROD EK Platform Public Key +================================== +-----BEGIN CERTIFICATE----- +MIIDxDCCA2qgAwIBAgIUeJCm5DJJ3LZLjf31LBZG2MOb7gswCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTYw +NDI1MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBmzELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xNTAzBgNVBAsMLFRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIEdMS19F +UElEX1BST0QgIHBpZDo3MRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEdPvHsaWD2zyRR1J7mw9BrOWxq/uUKsIcktxwUGPA +hHiCK/Y43Vv7ndo5XwSAIsOyP564zLeocOMp8RS+lj0L0KOCAZwwggGYMB8GA1Ud +IwQYMBaAFOhSBcJP2NLVpSFHFrbODHtbuncPMB0GA1UdDgQWBBRRxzy838mQqmd0 +F81feLo31KjXMTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAT +BgNVHSUBAf8ECTAHBgVngQUIATBwBgNVHSABAf8EZjBkMGIGCiqGSIb4TQEFAgEw +VDBSBggrBgEFBQcCARZGaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50 +L0NSTC9la2NlcnQvRUtjZXJ0UG9saWN5U3RhdGVtZW50LnBkZjBcBggrBgEFBQcB +AQRQME4wTAYIKwYBBQUHMAKGQGh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20vY29u +dGVudC9DUkwvZWtjZXJ0L0VLUm9vdFB1YmxpY0tleS5jZXIwTQYDVR0fBEYwRDBC +oECgPoY8aHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NSTC9la2Nl +cnQvRUtfUGxhdGZvcm0uY3JsMAoGCCqGSM49BAMCA0gAMEUCIHrLbdmf3dL7SIiA +7Fntln2cX/Kg4oOxVpH5MJhiSaDRAiEAtsITmuEnCPCT0Xrelv/xNm1vD3VYOPLG +T4O4Jh5soec= +-----END CERTIFICATE----- + + +GlobalSign Trusted Computing CA +=============================== +-----BEGIN CERTIFICATE----- +MIID1zCCAr+gAwIBAgILBAAAAAABIBkJGa4wDQYJKoZIhvcNAQELBQAwgYcxOzA5 +BgNVBAsTMkdsb2JhbFNpZ24gVHJ1c3RlZCBDb21wdXRpbmcgQ2VydGlmaWNhdGUg +QXV0aG9yaXR5MRMwEQYDVQQKEwpHbG9iYWxTaWduMTMwMQYDVQQDEypHbG9iYWxT +aWduIFRydXN0ZWQgUGxhdGZvcm0gTW9kdWxlIFJvb3QgQ0EwHhcNMDkwMzE4MTAw +MDAwWhcNNDkwMzE4MTAwMDAwWjCBhzE7MDkGA1UECxMyR2xvYmFsU2lnbiBUcnVz +dGVkIENvbXB1dGluZyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxEzARBgNVBAoTCkds +b2JhbFNpZ24xMzAxBgNVBAMTKkdsb2JhbFNpZ24gVHJ1c3RlZCBQbGF0Zm9ybSBN +b2R1bGUgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPi3 +Gi0wHyTT7dq24caFAp31gXFDvALRGJrMiP+TunIYPacYD8eBVSNEiVoCUcVfYxzl +/DPTxmRyGXgQM8CVh9THrxDTW7N2PSAoZ7fvlmjTiBL/IQ7m1F+9wGI/FuaMTphz +w6lBda7HFlIYKTbM/vz24axCHLzJ8Xir2L889D9MMIerBRqouVsDGauH+TIOdw4o +IGKhorqfsDro57JHwViMWlbB1Ogad7PBX5X/e9GDNdZTdo4c0bZnKO+dEtzEgKCh +JmQ53Mxa9y4xPMGRRnjLsyxuM99vkkYXy7rnxctSo7GtGIJJVabNuXZ0peaY9ku0 +CUgKAsQndLkTHz8bIh0CAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB +/wQFMAMBAf8wHQYDVR0OBBYEFB4jY/CFtfYlTu0awFC+ZXzH1BV6MA0GCSqGSIb3 +DQEBCwUAA4IBAQCVb7lI4d49u7EtCX03/rUCCiaZ64NMxxqRmcSVdUx6yRrbl8NN +FNr6ym2kTvwe1+JkTCiDxKzJsOR/jcPczAFiYpFbZQYLA6RK0bzbL9RGcaw5LLhY +o/flqsu3N2/HNesWbekoxLosP6NLGEOnpj1B+R3y7HCQq/08U5l3Ete6TRKTAavc +0mty+uCFtLXf+tirl7xSaIGD0LwcYNdzLEB9g4je6FQSWL0QOXb+zR755QYupZAw +G1PnOgYWfqWowKcQQexFPrKGlzh0ncITV/nBEi++fnnZ7TFiwaKwe+WussrROV1S +DDF29dmoMcbSFDL+DgSMabVT6Qr6Ze1rbmSh +-----END CERTIFICATE----- + + +GlobalSign Trusted Platform Module ECC Root CA +============================================== +-----BEGIN CERTIFICATE----- +MIICszCCAjqgAwIBAgIORdycjBUV21nQRkudeekwCgYIKoZIzj0EAwMwgYsxOzA5 +BgNVBAsTMkdsb2JhbFNpZ24gVHJ1c3RlZCBDb21wdXRpbmcgQ2VydGlmaWNhdGUg +QXV0aG9yaXR5MRMwEQYDVQQKEwpHbG9iYWxTaWduMTcwNQYDVQQDEy5HbG9iYWxT +aWduIFRydXN0ZWQgUGxhdGZvcm0gTW9kdWxlIEVDQyBSb290IENBMB4XDTE0MTEy +NjAwMDAwMFoXDTM4MDExOTAzMTQwN1owgYsxOzA5BgNVBAsTMkdsb2JhbFNpZ24g +VHJ1c3RlZCBDb21wdXRpbmcgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRMwEQYDVQQK +EwpHbG9iYWxTaWduMTcwNQYDVQQDEy5HbG9iYWxTaWduIFRydXN0ZWQgUGxhdGZv +cm0gTW9kdWxlIEVDQyBSb290IENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAENTps +86FDUD+bep3kd1U5pnita316zBktOVNWxZQ+Ymua0oaR66ItzHrl19zYSGbW6ar0 +1V91kktxWDJ6UFl3MyH3yXKsCHS2O5vxMlfmdRp8tpebMorHtIWf9u1+ctNFo2Mw +YTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUYT78 +EZkKf7CpW5CgJl4pYUe3MAMwHwYDVR0jBBgwFoAUYT78EZkKf7CpW5CgJl4pYUe3 +MAMwCgYIKoZIzj0EAwMDZwAwZAIwd02iAb5aN/pQGWdTJ7/lgMhFCuOLGtQ+ocdV +/xmoxdIWLtggAuq9fFDfsu/vzeJ7AjAGhdk03AjHpLl0dAp7aCI8D8qupwyYTBaL +rSJCZDMHhvNhETbbLu8uEPKt/U6/mGM= +-----END CERTIFICATE----- + + +ICLEPIDA01PROD EK Platform Public Key +===================================== +-----BEGIN CERTIFICATE----- +MIIDzTCCA3KgAwIBAgIUa2PTGhcW1ntLDO+ZVX/qS9PxLecwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTcw +NzI0MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBozELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xPTA7BgNVBAsMNFRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIElDTF9F +UElEX0EwLTFfUFJPRCBwaWQ6MzI3NzYxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20w +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATXfDh6DUGnty9I+Mzh03wtMy+dJYAs +kQ0hSvi0r1i6oK4xKY2AM2tc8AuYk+8/BMPOMBQ1SZQ/h/tVEP8Bv7Qmo4IBnDCC +AZgwHwYDVR0jBBgwFoAU6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYEFAmS +FlOcyOe9A3cFdQK8j8/xBz+fMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/ +BAQDAgEGMBMGA1UdJQEB/wQJMAcGBWeBBQgBMHAGA1UdIAEB/wRmMGQwYgYKKoZI +hvhNAQUCATBUMFIGCCsGAQUFBwIBFkZodHRwOi8vdXBncmFkZXMuaW50ZWwuY29t +L2NvbnRlbnQvQ1JML2VrY2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMFwG +CCsGAQUFBwEBBFAwTjBMBggrBgEFBQcwAoZAaHR0cDovL3VwZ3JhZGVzLmludGVs +LmNvbS9jb250ZW50L0NSTC9la2NlcnQvRUtSb290UHVibGljS2V5LmNlcjBNBgNV +HR8ERjBEMEKgQKA+hjxodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQv +Q1JML2VrY2VydC9FS19QbGF0Zm9ybS5jcmwwCgYIKoZIzj0EAwIDSQAwRgIhAPwE +qdbnrfr9ocymzXuOO2eg6CX1co6ClXm2I0kRiuCeAiEA7Co/yzwlHl1tGRxFNse5 +GYJcINeg1jak4KIt2oARTAA= +-----END CERTIFICATE----- + + +ICLEPIDA0PROD EK Platform Public Key +==================================== +-----BEGIN CERTIFICATE----- +MIIDyzCCA3CgAwIBAgIUO81yle53sU/x6H0c2k9h0xFcEv4wCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTcw +NDEzMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBoTELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xOzA5BgNVBAsMMlRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIElDTF9F +UElEX0EwX1BST0QgcGlkOjMyNzc2MRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEiJpjt4It5CWUwac/MzKEwsKIgNuuxCKE +QdXogNlUif2glKt4POgzIcJkVLJLyyM2Ec/140ru5BoZhDMgOA9RGaOCAZwwggGY +MB8GA1UdIwQYMBaAFOhSBcJP2NLVpSFHFrbODHtbuncPMB0GA1UdDgQWBBQxmbXW +LVfTBnuVPBDED3t3wGHH5TASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQE +AwIBBjATBgNVHSUBAf8ECTAHBgVngQUIATBwBgNVHSABAf8EZjBkMGIGCiqGSIb4 +TQEFAgEwVDBSBggrBgEFBQcCARZGaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9j +b250ZW50L0NSTC9la2NlcnQvRUtjZXJ0UG9saWN5U3RhdGVtZW50LnBkZjBcBggr +BgEFBQcBAQRQME4wTAYIKwYBBQUHMAKGQGh0dHA6Ly91cGdyYWRlcy5pbnRlbC5j +b20vY29udGVudC9DUkwvZWtjZXJ0L0VLUm9vdFB1YmxpY0tleS5jZXIwTQYDVR0f +BEYwRDBCoECgPoY8aHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NS +TC9la2NlcnQvRUtfUGxhdGZvcm0uY3JsMAoGCCqGSM49BAMCA0kAMEYCIQDyG/Yl +jsq10e2sL/Zt8nMS3qX/A8QGEEEQoLXhylrAnAIhAMpXdvsHgjSf1cnvNHTe/AJI +JPt4OouB+++pjcIFBgJa +-----END CERTIFICATE----- + + +ICLEPIDPRODPRQ EK Platform Public Key +===================================== +-----BEGIN CERTIFICATE----- +MIID4DCCA4WgAwIBAgIUK2W4+9mqRBEoaVZRcTqjTJGlG0AwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTgw +NDExMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBnjELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xODA2BgNVBAsML1RQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIElDTF9F +UElEX1BST0RfUFJRIHBpZDo4MRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAEAT0wyOmzp6qeiNa01wnbVbjqa7ghrOVSUGsP +jPRui9Pv5ppneRpIWX46DRqLlccuhQ8zyWT+8WRvaYVjFbI3Y6OCAbQwggGwMB8G +A1UdIwQYMBaAFOhSBcJP2NLVpSFHFrbODHtbuncPMB0GA1UdDgQWBBTnCD8iFSp0 +kuxZsMQkNDdkixXbtzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIB +BjATBgNVHSUBAf8ECTAHBgVngQUIATB4BgNVHSABAf8EbjBsMGoGCiqGSIb4TQEF +AgEwXDBaBggrBgEFBQcCARZOaHR0cHM6Ly90cnVzdGVkc2VydmljZXMuaW50ZWwu +Y29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRm +MGQGCCsGAQUFBwEBBFgwVjBUBggrBgEFBQcwAoZIaHR0cHM6Ly90cnVzdGVkc2Vy +dmljZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS1Jvb3RQdWJsaWNL +ZXkuY2VyMFUGA1UdHwROMEwwSqBIoEaGRGh0dHBzOi8vdHJ1c3RlZHNlcnZpY2Vz +LmludGVsLmNvbS9jb250ZW50L0NSTC9la2NlcnQvRUtfUGxhdGZvcm0uY3JsMAoG +CCqGSM49BAMCA0kAMEYCIQC1AP9ZtoaRdXQ1PbDCdXRV18T6CgycsEWuLD8FMOH5 +pQIhAKK2OjBsvdJ/02nR2NA/nn+HCE7J6KcBGnrXgrBNhJqD +-----END CERTIFICATE----- + + +ICLNEPIDPREPROD EK Platform Public Key +====================================== +-----BEGIN CERTIFICATE----- +MIID4DCCA4egAwIBAgIUXkxuzZRHJyFImHICvQUSWQzc2rwwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTgw +NzIwMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBoDELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xOjA4BgNVBAsMMVRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIElDTF9O +X0VQSURfUFJFX1BST0QgcGlkOjgxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAASIKflBTHgWAfxZ7s0DDJzHr4P+NRIOij0T +l+3j87YOQnUupf9b11ungwK1xu7OEAMkXAZOrgC6Quh2N7D35FpCo4IBtDCCAbAw +HwYDVR0jBBgwFoAU6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYEFF/F5tdR +fOAWxhYRC1AU2CW+MXp+MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQD +AgEGMBMGA1UdJQEB/wQJMAcGBWeBBQgBMHgGA1UdIAEB/wRuMGwwagYKKoZIhvhN +AQUCATBcMFoGCCsGAQUFBwIBFk5odHRwczovL3RydXN0ZWRzZXJ2aWNlcy5pbnRl +bC5jb20vY29udGVudC9DUkwvZWtjZXJ0L0VLY2VydFBvbGljeVN0YXRlbWVudC5w +ZGYwZAYIKwYBBQUHAQEEWDBWMFQGCCsGAQUFBzAChkhodHRwczovL3RydXN0ZWRz +ZXJ2aWNlcy5pbnRlbC5jb20vY29udGVudC9DUkwvZWtjZXJ0L0VLUm9vdFB1Ymxp +Y0tleS5jZXIwVQYDVR0fBE4wTDBKoEigRoZEaHR0cHM6Ly90cnVzdGVkc2Vydmlj +ZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS19QbGF0Zm9ybS5jcmww +CgYIKoZIzj0EAwIDRwAwRAIgIQlaL2ssGlrBMigtnjoaYdC4PaCBTZabfonH/mSf +WuwCICS+0WCezJI4q9Uli/NNd2QbIOXCws6uYm82mf1ug3ql +-----END CERTIFICATE----- + + +ICLNEPIDPROD EK Platform Public Key +=================================== +-----BEGIN CERTIFICATE----- +MIID3jCCA4OgAwIBAgIUfijEolWRI6DskStNws7uEjWMXmcwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTgw +NzE3MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBnDELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xNjA0BgNVBAsMLVRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIElDTF9O +X0VQSURfUFJPRCBwaWQ6ODEWMBQGA1UEAwwNd3d3LmludGVsLmNvbTBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABFe2JNAM1HZE7a3Cot3iSiNWYdz6/tIWI0uYpQEK +bT69DWnxId2gA9hBxeiCPzVUgwDIhMdNIn5IUYFQfnegAWCjggG0MIIBsDAfBgNV +HSMEGDAWgBToUgXCT9jS1aUhRxa2zgx7W7p3DzAdBgNVHQ4EFgQUHPj6cjkwo+cx +Kc19nzqEXXHKcmgwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYw +EwYDVR0lAQH/BAkwBwYFZ4EFCAEweAYDVR0gAQH/BG4wbDBqBgoqhkiG+E0BBQIB +MFwwWgYIKwYBBQUHAgEWTmh0dHBzOi8vdHJ1c3RlZHNlcnZpY2VzLmludGVsLmNv +bS9jb250ZW50L0NSTC9la2NlcnQvRUtjZXJ0UG9saWN5U3RhdGVtZW50LnBkZjBk +BggrBgEFBQcBAQRYMFYwVAYIKwYBBQUHMAKGSGh0dHBzOi8vdHJ1c3RlZHNlcnZp +Y2VzLmludGVsLmNvbS9jb250ZW50L0NSTC9la2NlcnQvRUtSb290UHVibGljS2V5 +LmNlcjBVBgNVHR8ETjBMMEqgSKBGhkRodHRwczovL3RydXN0ZWRzZXJ2aWNlcy5p +bnRlbC5jb20vY29udGVudC9DUkwvZWtjZXJ0L0VLX1BsYXRmb3JtLmNybDAKBggq +hkjOPQQDAgNJADBGAiEAjdzufne0DyVRp08H8+BeyDTN4XZLfrcZ/4flZWgeK1wC +IQCzAiEENj2VsvBvnic8m65EtUl80yjxgVS+fHLCWW9Ylw== +-----END CERTIFICATE----- + + +IFX TPM EK Root CA +================== +-----BEGIN CERTIFICATE----- +MIIEUDCCAzigAwIBAgIQRyQE4N8hgD99IM2HSOq5WjANBgkqhkiG9w0BAQUFADCB +ljELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTswOQYDVQQL +EzJWZXJpU2lnbiBUcnVzdGVkIENvbXB1dGluZyBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTExMC8GA1UEAxMoVmVyaVNpZ24gVHJ1c3RlZCBQbGF0Zm9ybSBNb2R1bGUg +Um9vdCBDQTAeFw0wNTEwMjUwMDAwMDBaFw0zMDEwMjQyMzU5NTlaMG0xCzAJBgNV +BAYTAkRFMRAwDgYDVQQIEwdCYXZhcmlhMSEwHwYDVQQKExhJbmZpbmVvbiBUZWNo +bm9sb2dpZXMgQUcxDDAKBgNVBAsTA0FJTTEbMBkGA1UEAxMSSUZYIFRQTSBFSyBS +b290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1yZqFFg0PLDo +cW7Fyis2Xe5vERxnJ+KlEMUOQnrw5At9f0/ggovDM8uCVW71T6e24T6HH6kUQZCt +yddtsaf0tebmA3TxjiuBzBAtT6qyns35+sXuL6uZaLnjGKXDv+uByOzpmBXUSwq1 +tdSTPQ0wWWQ6v/qwKofZdxAaPCTIBw61G08rkUT42a1hPESmVFrmc5hcnn4AQmJE +cjcOhClwIKE9OQw8TzI+7ncgCZlY3FZFKqHp7NRNnaihpmKbHvn5wXIUnKuvS4iZ +HqSbzGBuZ0ogqJ22ruDJi+JWYUWBmgI1JO85CPJ1Q58t0ME3hM3oWeqV6adWUcIc +IpclkYQWlwIDAQABo4HBMIG+MBIGA1UdEwEB/wQIMAYBAf8CAQEwWAYDVR0gAQH/ +BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3LnZl +cmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwDgYDVR0PAQH/BAQDAgIE +MB0GA1UdDgQWBBRW65FEhWPWcrOu1EWWC/eUDlRCpjAfBgNVHSMEGDAWgBQPFPXj +IIhEFsomv40fzjcV6kVvBjANBgkqhkiG9w0BAQUFAAOCAQEAWKL5zsV8p/TZk3mt +9m9NAqXWBDVHBnDgBE+Qphf25s+3s098vkWVLTddH3PtddF3MEYC4W8+dn4tyFe9 +mQ+96q8dwJdNabwBokrZy2beL71CXt/4jYNN0j/N9uYO4vIDBFDKRMWCtUO217+w +xQTSOv5+mpgFw7UML/QpgpdmZy2i+eZPxDo8dzT+YJXC5vsHVSooA3rWDDzvnoLC +cmDDiT3pG6AdjAN61MeeHHmoJavV8Tvdoa3g14Sn1lL+TQ1xaznyh520sX0dXPTp +GqZbDzqEMiVbG7vFECqINE96/rwppJlWK91F1MZikGXr7FeF5C0JutGLb0gaYOmv +Yau4DQ== +-----END CERTIFICATE----- + + +IFX RootCA +========== +-----BEGIN CERTIFICATE----- +MIID9zCCAt+gAwIBAgIQc3HALwPpy5ENrJ49S+Yo0TANBgkqhkiG9w0BAQUFADCB +ljELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTswOQYDVQQL +EzJWZXJpU2lnbiBUcnVzdGVkIENvbXB1dGluZyBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTExMC8GA1UEAxMoVmVyaVNpZ24gVHJ1c3RlZCBQbGF0Zm9ybSBNb2R1bGUg +Um9vdCBDQTAeFw0wNTEwMjUwMDAwMDBaFw00NTEwMjQyMzU5NTlaMIGWMQswCQYD +VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xOzA5BgNVBAsTMlZlcmlT +aWduIFRydXN0ZWQgQ29tcHV0aW5nIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MTEw +LwYDVQQDEyhWZXJpU2lnbiBUcnVzdGVkIFBsYXRmb3JtIE1vZHVsZSBSb290IENB +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2VBrQOh7Y1WHczxt1IGn +rlBKKr0K6OZXVllr6F5vuF0lneajCRpxZJUne7v7/apxesr59LrQcDbOktlrGXXz +OXjKBaXZBkKOO8ROIE2Ae6rslOMynlPHWP4HKdogZe3LPPViuC14uhgz5iXJ8pFf +UQdKxCdKWTzICg0B+l46pp42Fxr83eR72O9kSzEqijkaYdoDx06yxWALguUGzS7H +5sycnu2tAGDGFrmsQoh8mK4FUi5vce8JuWuhirCXZzmP/fV4tYndw+HJS/D7XuWk +BWcbm0clLTbmYZ7Ae1rl1XTP5pd8Q3cHGB6R0HcXyACyE4Vjp/g0J3HJjHd3L6Tr +wwIDAQABoz8wPTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4E +FgQUDxT14yCIRBbKJr+NH843FepFbwYwDQYJKoZIhvcNAQEFBQADggEBAH6Ujdhq +L8b38+swPJ2Jowu7UxcgzRWr2ayLqx8MwQkN1giSLsxcj6sHseMwqHLz2fCFfK2W +Si5ZeyIWlB1TOJtwdpcmafFNPs0hOWWyl3D4uY2kfiQFu+GdpRtM7T+lsgDLlXvz +t6nW2TscwGRKZA34hhvtE7294JJ56DlIcdSm3CY9MBvJ+pF2LyOC1NddHDf8ywKE +XA9CXVmu3dpvwE+s7flQPS2E+y5EaWkXtKso2JTaHMS3PSwSJRhmknf/QtEkPZfb +jzbhZZxVu48EZKOJL8lXzqm4hgpf7kX+WrVsCAny6AJkNn1xsQfvT0Y5OaVNH2RF +j4ORjyt4A5du3H4= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 01 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEMV64bDANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0wNTEwMjAxMzQ3NDNaFw0yNTEwMjAxMzQ3NDNaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAwMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALftPhYN +t4rE+JnU/XOPICbOBLvfo6iA7nuq7zf4DzsAWBdsZEdFJQfaK331ihG3IpQnlQ2i +YtDim289265f0J4OkPFpKeFU27CsfozVaNUm6UR/uzwA8ncxFc3iZLRMRNLru/Al +VG053ULVDQMVx2iwwbBSAYO9pGiGbk1iMmuZaSErMdb9v0KRUyZM7yABiyDlM3cz +UQX5vLWV0uWqxdGoHwNva5u3ynP9UxPTZWHZOHE6+14rMzpobs6Ww2RR8BgF96rh +4rRAZEl8BXhwiQq4STvUXkfvdpWH4lzsGcDDtrB6Nt3KvVNvsKz+b07Dk+Xzt+EH +NTf3Byk2HlvX+scCAwEAAaOCATswggE3MB0GA1UdDgQWBBQ4k8292HPEIzMV4bE7 +qWoNI8wQxzAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBABJ1+Ap3rNlxZ0FW0aIgdzktbNHlvXWNxFdYIBbM +OKjmbOos0Y4O60eKPu259XmMItCUmtbzF3oKYXq6ybARUT2Lm+JsseMF5VgikSlU +BJALqpKVjwAds81OtmnIQe2LSu4xcTSavpsL4f52cUAu/maMhtSgN9mq5roYptq9 +DnSSDZrX4uYiMPl//rBaNDBflhJ727j8xo9CCohF3yQUoQm7coUgbRMzyO64yMIO +3fhb+Vuc7sNwrMOz3VJN14C3JMoGgXy0c57IP/kD5zGRvljKEvrRC2I147+fPeLS +DueRMS6lblvRKiZgmGAg7YaKOkOaEmVDMQ+fTo2Po7hI5wc= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 02 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEaItIgTANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0wNjEyMjExMDM0MDBaFw0yNjEyMjExMDM0MDBaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK6KnP5R +8ppq9TtPu3mAs3AFxdWhzK5ks+BixGR6mpzyXG64Bjl4xzBXeBIVtlBZXYvIAJ5s +eCTEEsnZc9eKNJeFLdmXQ/siRrTeonyxoS4aL1mVEQebLUz2gN9J6j1ewly+OvGk +jEYouGCzA+fARzLeRIrhuhBI0kUChbH7VM8FngJsbT4xKB3EJ6Wttma25VSimkAr +SPS6dzUDRS1OFCWtAtHJW6YjBnA4wgR8WfpXsnjeNpwEEB+JciWu1VAueLNI+Kis +RiferCfsgWRvHkR6RQf04h+FlhnYHJnf1ktqcEi1oYAjLsbYOAwqyoU1Pev9cS28 +EA6FTJcxjuHhH9ECAwEAAaOCATswggE3MB0GA1UdDgQWBBRDMlr1UAQGVIkwzamm +fceAZ7l4ATAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBAIZAaYGzf9AYv6DqoUNx6wdpayhCeX75/IHuFQ/d +gLzat9Vd6qNKdAByskpOjpE0KRauEzD/BhTtkEJDazPSmVP1QxAPjqGaD+JjqhS/ +Q6aY+1PSDi2zRIDA66V2yFJDcUBTtShbdTg144YSkVSY5UCKhQrsdg8yAbs7saAB +LHzVebTXffjmkTk5GZk26d/AZQRjfssta1N/TWhWTfuZtwYvjZmgDPeCfr6AOPLr +pVJz+ntzUKGpQ+5mwDJXMZ0qeiFIgXUlU0D+lfuajc/x9rgix9cM+o7amgDlRi1T +55Uu2vzUQ9jLUaISFaTTMag+quBDhx8BDVu+igLp5hvBtxQ= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 03 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEH7fYljANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0wNzA0MTMxNjQ0MjRaFw0yNzA0MTMxNjQ0MjRaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAwMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJWdPAuH +z/p1tIwB1QXlPD/PjedZ4uBZdwPH5tI3Uve0TzbR/mO5clx/loWn7nZ5cHkH1nhB +R67JEFY0a9GithPfITh0XRxPcisLBE/SoqZ90KHFaS+N6SwOpdCP0GlUg1OesKCF +79Z6fXrkTZsVpPqdawdZK+oUsDO9z9U6xqV7bwsS75Y+QiHsm6UTgAkSNQnuFMP3 +NqQyDi/BaWaYRGQ6K8pM7Y7e1h21z/+5X7LncZXU8hgpYpu2zQPg96IkYboVUKL4 +00snaPcOvfagsBUGlBltNfz7geaSuWTCdwEiwlkCYZqCtbkAj5FiStajrzP72BfT +2fshIv+5eF7Qp5ECAwEAAaOCATswggE3MB0GA1UdDgQWBBTGyypNtylL6RFyT1BB +MQtMQvibsjAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBAGN1bkh4J90DGcOPP2BlwE6ejJ0iDKf1zF+7CLu5 +WS5K4dvuzsWUoQ5eplUt1LrIlorLr46mLokZD0RTG8t49Rcw4AvxMgWk7oYk69q2 +0MGwXwgZ5OQypHaPwslmddLcX+RyEvjrdGpQx3E/87ZrQP8OKnmqI3pBlB8QwCGL +SV9AERaGDpzIHoObLlUjgHuD6aFekPfeIu1xbN25oZCWmqFVIhkKxWE1Xu+qqHIA +dnCFhoIWH3ie9OsJh/iDRaANYYGyplIibDx1FJA8fqiBiBBKUlPoJvbqmZs4meMd +OoeOuCvQ7op28UtaoV6H6BSYmN5dOgW7r1lX2Re0nd84NGE= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 04 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEDhD4wDANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0wNzEyMDMxMzA3NTVaFw0yNzEyMDMxMzA3NTVaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAwNDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN3UBmDk +jJzzJ+WCgrq4tILtE9KJPMGHwvCsbJOlo7eHiEb8JQzGK1prkPQ3dowFRXPnqONP +WUa36/J3R32xgvuZHqAdliZCt8IUb9qYhDenuXo1SSqJ8LWp30QIJ0vnkaQ2TCkO +bveZZR3hK2OZKRTkFaV/iy2RH+Qs4JAe3diD8mlIu2gXAXnKJSkrzW6gbMzrlTOi +RCuGcatpy7Hfmodbz/0Trbuwtc3dyJZ3Ko1z9bz2Oirjh93RrmYjbtL0HhkAjMOR +83GLrzwUddSqmxtXXX8j5i+/gmE3AO71swOIESdGugxaKUzJ1jTqWKMZcx0E6BFI +lDIfKk0fJlSxHfECAwEAAaOCATswggE3MB0GA1UdDgQWBBSIs8E/YQXRBCKfWsDr +SZVkrNRzvTAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBAFtqClQNBLOzcGZUpsBqlz3frzM45iiBpxosG1Re +IgoAgtIBEtl609TG51tmpm294KqpfKZVO+xNzovm8k/heGb0jmYf+q1ggrk2qT4v +Qy2jgE0jbP/P8WWq8NHC13uMcBUGPaka7yofEDDwz7TcduQyJVfG2pd1vflnzP0+ +iiJpfCk3CAQQnb+B7zsOp7jHNwpvHP+FhNwZaikaa0OdR/ML9da1sOOW3oJSTEjW +SMLuhaZHtcVgitvtOVvCI/aq47rNJku3xQ7c/s8FHnFzQQ+Q4TExbP20SrqQIlL/ +9sFAb7/nKYNauusakiF3pfvMrJOJigNfJyIcWaGfyyQtVVI= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 05 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEVuRoqzANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0wOTEyMTExMDM4NDJaFw0yOTEyMTExMDM4NDJaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAwNTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL79zMCO +bjkg7gCWEuyGO49CisF/QrGoz9adW1FBuSW8U9IOlvWXNsvoasC1mhrsfkRRojuU +mWifxxxcVfOI9v1SbRfJ+i6lG21IcVe6ywLJdDliT+3vzvrb/2hU/XjCCMDWb/Pw +aZslV5iL4QEiKxvRIiWMYHW0MkkL7mzRBDVN/Vz3ZiL5Lpq7awiKuX9OXpS2a1wf +qSGAlm2TxjU884q9Ky85JJugn0Q/C3dc8aaFPKLHlRs6rIvN1l0LwB1b5EWPzTPJ +d9EhRPFJOAbJS66nSgX06Fl7eWB71ow6w/25otLQCbpy6OrF8wBVMtPMHqFb1c32 +PaaNzpCBnIU7vaMCAwEAAaOCATswggE3MB0GA1UdDgQWBBS7z3zBhCExZtq1vlOo +cBTd00jYzDAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBAHomNJtmFNtRJI2+s6ZwdzCTHXXIcR/T+N/lfPbE +hIUG4Kg+3uQMP7zBi22m3I3Kk9SXsjLqV5mnsQUGMGlF7jw5W5Q+d6NSJz4taw9D +2DsiUxE/i5vrjWiUaWxv2Eckd4MUexe5Qz8YSh4FPqLB8FZnAlgx2kfdzRIUjkMq +EgFK8ZRSUjXdczvsud68YPVMIZTxK0L8POGJ6RYiDrjTelprfZ4pKKZ79XwxwAIo +pG6emUEf+doRT0KoHoCHr9vvWCWKhojqlQ6jflPZcEsNBMbq5KHVN77vOU58OKx1 +56v3EaqrZenVFt8+n6h2NzhOmg2quQXIr0V9jEg8GAMehDs= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 06 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEDhD4wDANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMTAyMTYxNDE4NTJaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAwNjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN6eWKNT +MT0h1oPGh9aqqrJAJIcXVXwHcWHF5RX0HY76SDKfRWWPtVD0P5HRugwlGUKftu+W +T4llcJjJCpeDrW07rqYl2wRHNMR4do21O2AixVbYF07XRL1uRFVmVxXNXL63w/y4 +Iqs9+rHs7hpijD1T9ghZg0MVmPtkbwQ0fVrgAh1XV8xuMCfB4T8QYzrki7+YcywH +nBdoSw21i9ApGt3id7A33RP6PbkQ6BpJaWIqechax2jYcPB5tUwrmMhW5xXvC6nA +HuHaEkGDihMH/pSx3fplzffuqn5bS4qUw9zQKbtevPyTXlZkH0yMtecmxo+d1rQf +hgLvbceNhwp3NXECAwEAAaOCATswggE3MB0GA1UdDgQWBBToJmnNnyCYJwKXSZ6u +uN+n5os0IjAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBAKx96oNsigWFgO/1yFhTL0LAEIpfI0TZnHBSsQrU +ez6xeDQUDxWNE0fiFEAFtzWN7JNIjhbuX4+d9zpN1h/ylsXGDj11QY+O2JnCkf3+ +jdllCJBTyV9tigIkYO8Z604R2Tl7Jv/9QQmuhcRZF13qTMrOsx6zhtOvpcX+Q28L +FUkc6fpxiwQpTbBeoakEpmo2DJQM4Uo1NbcOij44q9TJyoyLIeTNUpykIGu7/PDu +ZhgHSpy2zgGGtr8pKMhzwrJ+zd3UrIve+9odJfzsasILU7/YXLKAgh4PBQzTq/qz +rTOkBix7tGVbOA2A/wSoSseL5nbk3gM8OYxuten6f5spGfY= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 07 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIERT2I1TANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMjA3MTcwOTE0MDVaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAwNzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPBMm1uf +PLwlCRefXg8x3OswKQD1KEWOACw+kU1rKeXgkksLyrLdBT9l2dSo7qgmnIXEGdum +QKiOFNxfjIwaQml6WsRZSzb5IxEPkdGAPThVQMAaQzFAsGBUx3oUTuOmpllQwg+S +Fb40c7EALraxdWoi+8GNIe+su8jCcMZs90mC4k8FeCXKtRwN2ECk8tBZAyI5wz4/ +UsbKBv5Jv09gzCig+xFz0u4FoUHTDo/6Mtu4bBrrWzCfdsLkYpZWEuySmg07BKz6 +RSWRLHb3ZelIvnH1BdYZzGc6iJ8O2eHXXyN7evamhVAlPLTDqP8WyAkdvL3qD/ju +49W9kvScU8WhXJMCAwEAAaOCATswggE3MB0GA1UdDgQWBBSnVZi4Am+lRK/8vEuR +BsEvltPwuDAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBAIwzS8afUzJKdbXnNbzbz1JAtUQkBghhtjr1C3ms +T3at37EbsQqMXwMTE9xPNpfC1dKzLHRjczMogYU3RouKXfGofx0AjH64rmGUYNIa +wwujWjrAgtMXFu6Ko3yHvN0yigp297SS5f1hdwrStSUl6oY7KouAuTF0dUf/dQX4 +yMvgSkOP4Adtw06/pPRkV1JWPTP+uGV7wKC6Pz6ynKocssWGOtjitlxhF/lNM3zZ +kpStYV9yXkbC62r36vHhmi0EV46iJ8RkzRiDOI5wD13nHFan8b08m6vXaP9sQ3FM +mowj63pQl3M9yi3OrFdYb9ELhnHpURELD8khVfBkqIih7mg= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 08 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEfGoY6jANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMjA3MTcwOTI0NTJaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAwODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOJaIJu6 +r/betrMgWJ/JZ5j8ytoAA9RWq0cw7+W0e5L2kDLJMM288wYT+iEbfwx6sWSLAl7q +okXYDtTB9MFNhQ5ZWFLslFXbYigtXJxwANcSdPISTF1Czn6LLi1fu1EHddwCXFC8 +xaX0iGgQ9pZklvAy2ijK9BPHquWisisEiWZNRT9dCVylzOR3+p2YOC3ZrRmg7Bj+ +DkC7dltTTO6dPR+LNOFe01pJlpZdF4YHcu4EC10gRu0quZz1LtDZWFKezK7rg5Rj +LSAJbKOsGXjl6hQXMtADEX9Vlz1vItD21OYCNRsu6VdipiL0bl0aAio4BV3GMyjk +0gHnQwCk9k/YPU8CAwEAAaOCATswggE3MB0GA1UdDgQWBBRMS01kiQjkW/5aENNj +h6aIrsHPeDAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBALMiDyQ9WKH/eTI84Mk8KYk+TXXEwf+fhgeCvxOQ +G0FTSmOpJaNIzxWXr/gDbY3dO0ODjWRKYvhimZUuV+ckMA+wZX2C6o8g5njpWIOH +pSAa+W35ijArh0Zt3MASJ46avd+fnQGTdzT0hK46gx6n2KixLvaZsR3JtuwUFYlQ +wzmz/UsbBNEoPiR8p5E0Zf5GEGiTqkmBVYyS6XA34axpMMRHy0wI7AGs0gVihwUM +rr0iWOu+GAcrm11lcYzqJvuEkfenAF62ufA2Ktv+Ut2xiRC0jUIp73CeplAJsqBr +camV3pJn3qYPI5c1njMRYnoRFWQbrOR5ADWDQLFQPYRrJmg= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 10 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEM5ao/zANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMjA3MTcwOTI5MTlaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAxMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRlTuyM +988TVLch/7OdoQpY019PVwqniuplnAGaS7C+NxQonCcjh6dLekLdGYkYEv8QlmG5 +Kf2117ft7AEJQCS+oa5TBJmfIZilvlu3IkbssMkqR7Fpw5yzC5qRF07xo7IURgwX +6iSeli2kg1cPj0lUwxQMmgOVZsayHLz83Bd0hPiJzOkYs5oRvbXZvXdE7W1uumqu +ufJPxpHezlbIHfMw1nLFKBIm0O9FfOtAmE63Iw/i6Flouz05QWo6uzRSPiwKlkfX +44u+G1TKfMzj/g18uU4Im+xrq07WyIZ1tyTXgEHfUW9kreWHudO0DKpgQ680VGNd +dRYjYFPMPCzuGqcCAwEAAaOCATswggE3MB0GA1UdDgQWBBSwgDWbWaqTiACkrr/R +DMcM8BsbNzAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBAI1H2eG4Wpv/GQ41omXwBPANExcgxZZIPIFqFws4 +pAM7o1w/RBCFLaCINrCITbxSGE2YbKOMj5VUY84IbCkQqemlLVmMHoRZmP6StQ8/ +DeSeFquVCRrKCwfdHxSKV+sYjCnVmwGjkQi/VYsILsQUN8V3m3bjBp5xpJhQXYSe +sRap/3moZ5lgPAhQg7AC/ezATwvOSbYxKn8Ib5c59+c2q27U8/nMOj6eqUxRjUNZ +DjF5iN8j8CQdOrJJQpRvfSflceyh2jUjMWwC2kdON6WrBwSk0OQGK6ljaUFp4B0I +BE4Mub0MirzHqc2B+NLeJ5bmgPTTP1CKH9YR4Nn04QYcT6o= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 11 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEasM5FDANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMjA3MTcwOTM0NDJaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANpJ19VO +asFjdFHwNZWj0RWszzqYaFooM3Ewj7GOmDpIWLwNZt5hCmegtZb2pI16XXKjmNt6 +lPMk/N+SU7kqxVjJ+zf26IUa//KPalrbQ9hHM8r4uFQpqrsmV/C5jA/v0CtsTFYZ +a1CNhyfeiDGKOkJmvSQO5Td2ADg8eEu/ojU9k7hFt/21aKFVK5sguqpWkhSnJELq +3X4IvhPqcKekxj5PL61otJonLsJQPSeSZcmTd09GN/I9ISFwCLjFhsjprjViJHXu +SBYwqw+fqAD1CUB3cFYpLMrlnW+yJFxyLXPAkU5dqSu9Z7K1c2cvFGkx2fp8z8IE +QGqU9umJ8mnvHh8CAwEAAaOCATswggE3MB0GA1UdDgQWBBSwKYEVe218wyEAFjgL +iYlQUkNQ5jAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBAAnneKcE6RRyN+IKxCqcGK/HfRjn+aRLTzDrKmPt +mjLSfzWcDGUZZ3gcb5cnedduQYqPVblpOk+k0JzaEs/bFxdbYUZ4VpyNNWeSuHkS +0nZMXVGFMhzoYnlbZFR/zURgKW8SFPMpyzVej1rqfj3SJlDc7A6nFdX91f4ZUbNp +/bNvMFueCiS3geZy8lzkoHLQNc/TPfmcLkaY+3VxBr3CnezRh6w99FIelL49qFbg +jFBEmnshVu5gI0TP6arOUpP+LCyulo/Hb3lBKLxgWAnp7EEy4ooFLJUWdHG1yWF/ +wq+62bUqNS3Xo0aHRYn7xOxvDYLTUHvrLJ+AUtcAWz7MzZU= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 12 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEIe/JKTANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMjA3MTcwOTM2MjRaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAxMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALULsMl0 +TB+WYghzTlkDDYZ47nCLznJTMwcZB39cuE5WEEVaya1nulYxZeD5wcDmRQnootxD +DZefiFHP/lcmiWomA/qnwobFFRYpORmt8JYTjbVO3cjF1wWiF8O3u2M6jRF8rW2V +wYy97qvEaHLsuGepTwZmv5d1hntizHh1v+NP4zzltMO4VRSicP8PdxS3rekVmXQZ +3qG17+KBwJHnQyibxIS0Vez7Bz6K9DIyNfnUtrTlwfOVwTJObhaI7wUrx2s7kh+G +vxxSr6Rx77ezxSrDEjm6XVgjLBMIqb7se3scNwllG6M3qWqmZjuFYkKiuTDwRSYL +dQ7TrWFfFbG3xPkCAwEAAaOCATswggE3MB0GA1UdDgQWBBQ3Nd3I4wC4F66+A1A6 +ku3f3xrHGjAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBAJX/SG76Ix0sw0Dys1Hl+DxBUltgxDYYeCa3Fa6Y +t81JmvMmSoXRa15v6h+FwiETaAJP4vR2VxSxiyeX3mQfk25NXWGuwP4Vu3EVY86l +wmefN7S5waLRoTE1uRjbD7LeHdi8tRzZdgBSbw1xePBZ/qc1bJC49LRQqWnf8OIS +XOD/2MThp26AwZeka3qGhwVghEBdwgwqFLHy0ZeanmX2hRFn+la15K35mxajKZWl +1qS/c0u8/wIWvO2bU2KkPWtrKW78w7cm3ht+lUEQANjocnR+gzdk14f6B07SY/Bd +gmwVMhcrp/E9DK8TQvjxDbTTs/bfHC66ZbPOgqIeXNYguk8= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 13 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEWRxZPjANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMjA3MTcwOTM3NTFaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAxMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIz8Rlvr +xEWhF8znIg3h2zT7jQyvKhglxxEmcjkmL7qvqeWRwNptqSV2yIkFfKdhGAv2oHNu +lmM0fkk9apiOehVR/vLvoEAdXFqLp8l5+TpLGRTcLyTu+ON6zOIr827j2jw1no+L +qbsB3C5u8F/ngbx+x2XTYWFJIGBJh0x8v4nGH8LZWftnXHQk4Ere78nQBzlF8Yud +8XTZD99J/MrK1twuYFT+3fFu82DTqVpkw4F2ZPozlX+j2XnLGTK7arTkEMpX1EWa +13+VM9Fp9mWmUrrah4qMop4hhTogc/l/p2rDp9gP5QPUm3Rg+TkERKCrx7Zrw/u3 +BSDhrPkGcJGMq6cCAwEAAaOCATswggE3MB0GA1UdDgQWBBQlg8reNo9pyA9Y00pI +st5lPf6vmDAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBABQm3vpFSEoU3htlSbQ18X7Jnv5DbeTmoEi8NXfc +W4qTaRYKC1+efgH5ChWpBi9xqGrSK7xls5n9xlJc4CVuKkkN7fd9EiP5MxNZP7wW +Z+Zbd4NIdiyyXtHdI9mQsV01A1qilhXNNTxSmTgjQPZU4i8Pt6zujzmUkSZq8GS+ +juH/O1Fjr9qeH8tFOQdHH96L2W7eWW5xHGF7udUCkGIiBcLPPgNxz46VW9q4Ycj8 +uxg2E5XULwFTzbJXa8uqaN8R+T2S8NqJBVO+gkh/purXXbrlkhLCMeWtWOrDiTXR +WpiTv4ENvd8RP2vlzO2AaVYR/EumoR/qwdIcovppwgTyyOQ= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 14 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEEEjpUzANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMjA3MTcwOTM4NTlaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAxNDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANWy64+P +I90LXKDBXUN24noDgP2OseUsLCcNlh6MD2b9YubtazZg/72LBzUXlHb16cLqTHYv +X+7dO165F4WnJLxMBhe4OWYzbdncQHZAhxv5nfThcB61ofVkf8V4ecu5c7KnK6uo +U2smRqN6pbc+MqTI8D41yINLORrTY/H30d8r7jkjP0c4Tz4tLo74PJU5tN/DYMiu +uIthEedXr2RtwBpo2qkIx/gGiJTp6ZHFkAUGjdmw+HET5qgKsEXbTBsj/zihBgmM +LhhOHPQqQ+podT8mSZmQSOijw0BgMr6xRXBwvL46k+EiY49vGP9QXDX7gnzl0MEv +J/RcD1nIpKhpeEkCAwEAAaOCATswggE3MB0GA1UdDgQWBBQiv5v0l49PRaTp2/cp +2KCK3KCoLDAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBAKE+bzD+G1DZhqUCnaLUAlN+ZMFJsPIGwjPRzZFb +MQLZcvkc9M3KV2pKsg3MrD+6kK/+XEYL49C9eWRNrUtkZl1SORzUELnUm2E3kezx +plnCU5lzsuCS+iYptVD17uFYcybYMOAMulCRyjMkYG1cQCdDczST3VWPzON5+6+v +eo5Og9RRPsVByHGoHf5lcmTi0vNKvX4QtoyZ78VQ012c5Q3A1fEldLl4IFN+sfu9 +Af3o/as2GQs3KvgCOB3usgnRvojBu+MLxw4pk6ju46rCNTe1XIwHi0Y2nxZbUowL +dldRwQEbQhhma2FCecsgBmMKqzLsi1B/fkKeiF2fE7mo7YA= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 15 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIER3V5aDANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMjExMTQxNDQzMzRaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAxNTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKS6pgcg +OQWSozVbMkdf9jZkpGdT4U735zs0skfpjoKK2CgpLMO/+oGKbObm/DQPRQO/oxvq +jJNBKz55QBgKd+MoQ6t+2J8mcQ91Nfwqnm1C4r+c4zezJ1Utk/KIYNqpFDAzefBA +/lK8IxQ6kmzxcIFE4skaFsSgkearSZGG6sA9A51yxwvs8yUrQF51ICEUM7wDb4cM +53utaFdm6p6m9UZGSmmrdTiemOkuuwtl8IUQXfuk9lFyQsACBTM95Hrts0IzI6hX +QeTwSL4JqyEnKP9vbtT4eXzWNycqSYBf0+Uo/HHZo9WuVDUaA4I9zcmD0qCvSOT0 +NAj4ifJ7SPGInU0CAwEAAaOCATswggE3MB0GA1UdDgQWBBR4pAnEV95pJvbfQsYR +TrflaptW5zAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBAAnZDdJZs5QgAXnl0Jo5sCqktZcwcK+V1+uhsqrT +Z7OJ9Ze1YJ9XB14KxRfmck7Erl5HVc6PtUcLnR0tuJKKKqm7dTe4sQEFYd5usjrW +KSG6y7BOH7AdonocILY9OIxuNwxMAqhK8LIjkkRCeOWSvCqLnaLtrP52C0fBkTTM +SWX7YnsutXEpwhro3Qsnm9hL9s3s/WoIuNKUcLFH/qWKztpxXnF0zip73gcZbwEy +1GPQQpYnxFJ2R2ab2RHlO+3Uf3FDxn+eRLXNl95ZZ6GE4OIIpKEg2urIiig0HmGA +ijO6JfJxT30H9QNsx78sjYs7pOfMw6DfiqJ8Fx82GcCUOyM= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 16 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIENc6ZkjANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMjExMTUxMDE4NTdaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAxNjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALmNQtUo +RiADamYT7QWhvhFDGufeQ17FX3KBRlK5Jl7CkDXUAbU4qchLtbh1RQ+uj77e80MM +QQjYUWQE895NRhUvRxATZzp8fyNjBMc2O5HA4P2fx6nsdRUhpgpgQoOc93rt4yQ9 +D1H0esw5Z20ja9Upjhi5pHg8YLKhzRsyEkkJ1YRGSe5FOdaqBaWQLBR7TwYtUUVw +jq4iTsZai1HXpBhjJ9qPO558eW+LLbPSvbObgpveuo0r+ILLrdt112+o+jE2gmiL +zSg1Uzo6aKSv335ZfYuWVAL/IqWkpBj9tLVJ8hjDkI5mvc6rPi/l7gpKHZ60Gihu +0HtsESWB/a6giNkCAwEAAaOBwTCBvjAdBgNVHQ4EFgQUEoRi8qDRbN4ZRvEABUSw +VbwRPRAwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAJjJENKPWl9U +OlDLwzJNyAO+9QW311+7QhH2cQv8LOPXv+s+3/5uMNhOCmCfJieUoq4Vo6Pibo8K +bf0b0D0DHVM5SpOucjXinCcX18g6M7IPr3/ABx0hWP5NQkAExcm5R2XGsBua2hUj +BKzjqe7zgHLugt0V7DDPC7jmdElOHTHmK5COItL0QysrOrWdhrLTrP+HbLRRJbO9 +WsYNWb4w6m7X2rvd9CJmjr43aShAYX3s42EmjvBI7ddlHQUwAcbrgt3zmrAtYzIW +2Zg/BQARfBJIPuyvcLJVzDjJJBjUxQsUYYSZAp4I1hRK8tTWBf/tcKN4jfIiGTfz +H0PQrjHMW64= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 17 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEJCe5vDANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMzAxMTgxNDE4NTlaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAxNzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALDzzG8C +6MBIZQEQJzEGlkSoFfYx7UFnbAXOP35eXkDfs79tmXh/Kpvo+LgDXAPVwiJgcphS +MNTOhAes1kA/cuGk2/BpUE5W+owIB6cEUm6sHjea5VnrS7rZ205lKzsU5ThJel53 +aLzgv/r4AMYfHyJid1xSbheQor7PmgcqWPag8wQrUnn+mVe8rcPJclQotmsV1SY/ +AMUorEdxbeaTgZkP8jvCjywzty2Jtfju75BTtg0jBDEIHWVuqOwWx879nvWpBho8 +khOU1FPZrHc5fVm0w7ryWCZvZVWUacMAeYfVqDOOEPxUzZMDA8NwB9bh5sY/Nrz7 +oeSUr7Ps2aJAf/kCAwEAAaOBwTCBvjAdBgNVHQ4EFgQU7D+NTMEqvoigGQZOimK3 +AY+i41kwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAJ1qznUH6nCB +1akxmhMYWBEjQsqHdy+lwYYMNHl98s9AnHWMXzpGcGUJg695D9hQrw4kHpjn9a1L +yxTA4NPz3W3k5gk4Jtp20yJeClGXEIcf86WsJwyC1gDGQfV2k+vdzlhpfCJLVq1i +Ec0I/AlwOJBgRvLmldPuYAqtDTE0drffAkhaMoEr5d+X5cC1iAsvpPw0dL+AqqFh +3+YVDtrjdmhcHtopQfzM4/voZr9F+t+WBdg+NIfZHJZud/ZX+4FrNco91wDueryU +Az7W27Cet2fUk9zv/GYMRVrS8lO7K76Leawt4fNtLDBVQLlj+3RYyU5cK8aj8yAe +KboVHBoSukQ= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 18 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEW1RJ0TANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMzAxMTgxNDMyNDBaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAxODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANs3+XqT +S/vs4eR8quyXIgPFixBg75cWbSjl7yXHylta8sLrmog5xtMdtjtUZIE6ko34PQ0r +b2nLnviHzmKsVGcEgVqB5DYR4p1/WcuQXY+POaWeWnHUVI8wErvjfuCBkkofL5lE +wD+HaznTRE9ZMFpmRGGbC5oVsGSd1OGefjeaIK3DMZFQle5YQgbFh5CccQ8nTOHK +cPqcgEI/ncAZMecGMZFmXvgxn24tQ+PCutuBvmY1BYt76US5MnKr9rKpcBtmygRY +xTMWmEETr3lTlElvEzDuMmj+cjrbweMZldS1r3Vf+hCGrDidcQidu3BY5v+ZifUL +Db0ekQBo2NVFUTcCAwEAAaOCATswggE3MB0GA1UdDgQWBBR1aP8m830RJoVntoZO +xyoIyBiJHjAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBAMuw0E9SWAmRoMyYeH4QfA0Eu2DHHsAVvpTWICqN +YCWCnDku3PEUJpAS02Iu4MN2EUjywgIgccYjawfiI1xQ+qKJWVVXo1rScfRn3g4a +LyfBzZDo/ka7dK1azNDI2ieRrh6pPvIgYAriipX6kVTNV2tTpQVF+OoeXOvqMyIY +sIpwZCIwSTvgwMIQblik9IQt+rxh3fqESlAZ9NztFnA+ftTS1YeeQR/OjLxUtUX0 +lbKHtjIuvokyEAj1C+TMASt2CMsRuSf5U0nVA4Ekci+XzCIhvPnB2860TMvq+hzy +ANAzLSZsSZOo8KYY9ZgBdksLpPPrOYTFSMXO+oom5xh5r/Q= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 19 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIEEoDZ5jANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMzAxMTgxNDMzMzhaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAxOTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJKGIVvI +WUB2oSXmfiSzIzKWcBiUabZRK9wBSyidvI+EYOplPfuH+rzSHiz/kh20pM8bu6c+ +gK+79gp5p4K9P4egK2zsqph9zYzFwNmIBjOaQiYUPp9QFtZ5RP6XMH1eyYK8UWVq +/6WDmDKGgWrK22MAxV2LYCCQaEa2LSN1MkVFEeRC1lRDc7RoCEW2dR4tbiDCdFjO +WznX1nBctU8uupPdaiPclL8PH0bX9L9XuH/OJ8HN1zns/6v4c1SokJYfHqOYn89R +uynjnV3X79+65mm2BVZFsCPV0Q+i6dj8faVvjLA9hubpILw74g/hOA1FSnOfl95Q +yVTEffwXijRd8qcCAwEAAaOCATswggE3MB0GA1UdDgQWBBQd3g9AbRIsPlpPhh+U +h2yeGs3TfjAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBANAH4pGKFW0codMGIaPVYWmsWz1zCe+AM+e24dKQ +Sx6VXDrYYoMdoO3D+loqVDs+zQHguJij93R0k4VgZRRIruODk8EDhppobt0boXl4 +hB2U6uwERND/8rUtF08WzA1opau1R46p7Wgyo1yNYcYKSSd21+YgiKMglYH4bz1T ++Tvse5I5ujZ1BvTlfkFBNnx09wUmGaL7qn/FG8bnXy+oakkIJk0OhGjVyQ/nRw1Q +HSRcKv11cfpqhHR4ekZsJ3RiHWRZgD7uVXuHV6LNcKKK3pJHBSLWaVnPtCG3a5iZ +AjKPQ3bIOLfNC+k1TcA3z3FjX/SBKo18D0/Y3HWN8UzTg1Y= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 20 +============================= +-----BEGIN CERTIFICATE----- +MIIEnzCCA4egAwIBAgIESa1p+zANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMzA4MjcxMzU4NTlaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAyMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAISatv1/ +C6U9+bRoGnFIRJP99ETyRdBaZZbjMzomJ0+n6VsyZKU8HshD1D56e7td3nOqMixg +ygaBK3Fq6jgR4nEDafH8bXvhY+6nLYzqgWub8htqAjOxyw9AVSJaeByr1Xo9OZJX +06exrdSikAW6ANcn9khpEpl3kUB/z4qY+tDgabIYQokVvEZ1KCYXbAKTQaV1j2CJ +DYExo82lQJepEATiVpXlM71UCxpdpeudiWKYRWY7oV5EpyOcMzolYVfQ6c/2EDhj +6CxlYALKzu7xgNLXfhUCJWPjCK7NDr86n5s1tKHmJUdbHyqnes8h5p/7MVAn+BuA +auk5MR7GY5TfkwECAwEAAaOCATswggE3MB0GA1UdDgQWBBSP/UeIDiOaOjog3hPt +8QHogqnSHTAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADBYBgNV +HSABAf8ETjBMMEoGC2CGSAGG+EUBBy8BMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 +d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvaW5kZXguaHRtbDCBlwYDVR0jBIGP +MIGMgBRW65FEhWPWcrOu1EWWC/eUDlRCpqFxpG8wbTELMAkGA1UEBhMCREUxEDAO +BgNVBAgTB0JhdmFyaWExITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEMMAoGA1UECxMDQUlNMRswGQYDVQQDExJJRlggVFBNIEVLIFJvb3QgQ0GCAQMw +DQYJKoZIhvcNAQEFBQADggEBAJWePIX29bPvG9qnOWWGOuIsUhChgOzaLA/LkJEQ +HnRMPUU8hO9RGMuFW0QN62eSKel/H0M1ty3XtjMMxRg7DqJiRN7FgPkEN6gCX9TZ +lyNyxz8gNULrhQ5fB3oorQd0Miwo4zJ+GjW3tmCkfPzoXz8h6gRlIRtY+6mvaVw1 +ad0QgF3Dp6R1yY1jmCHqG0w26PU97G6Lk6l+y9cJzmgVxVgmYdRXQvsb0HVn0Vg7 +CYcq9L+VXwRmLH5YkehVS5r+VBXYCMiTCOLZ4GAtYkSQIUqZZk4lgM2uBXBdqqyo +0JAQaJMmyFG7GkB1SItEl3RGdLIX4pdbwRcRecB+TOE/dWM= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 21 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEANn6EDANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xMzA4MjcxNDAyMjFaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAyMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIFJOXEJ +l01sCFDIpgME7X0gmxuI9DW2lTlNrZ+05kGAAqOUCWbS8EEDyIZZYA7qjipcaXxf +mJ9i0zoG2hC1AHXzfzzmrQcEE6DhCeFv5lKzk8Ta/FV5zLmRXppw9cBbzg00HWuI +f0PEM0vY7GopP/q3N/d6RQac0DRdPVNOhNApApw3omfAzC2Nzj4sdvIaQPXY1GOI +Koy7ktgjVoUmZ1Po8FHni2geh4EKWyHvcZZiqCCN/ZTFWhJqES454Ncy1zxZkJX6 +/1K7wOjFs9zZBNBd4A1cURLz33t2YCq+XcD4+JtViJokxU7boSNK5Ji+mwLLXIBI +0dyQIQcFuvwOKDcCAwEAAaOBwTCBvjAdBgNVHQ4EFgQUoMnewI/TmotZxGvL6H/Z +lIxV+XAwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAMvISZvt0QDC +8OW67Lcn6FKjl95hm/MdhNX3QwkRaSYFCpVDW8dk622SFrwlzKoMAnNSlpwf7MOl +9n5Fkd4gSlyMOdBIwtd53mAOVRCRIhHgrrfmi76saLsaNQci3kjnCDYL4U68o1dQ +41zlCko8vb7EO5/2fBKG/DS1gzGW1y3ctEpYNn38TunrDYgkUksNKaSZtmrfXNeI +ZavtFtxRQo5v5VNUqOkyfvn4dB/og+xFnqOCpi7FLNAfG/1DnLhvheHk5Ii51oKs +iOIcij0vGiyKbozlNvHl+0xe7UOT1s1U6YdzWz6YmzyCEjOkz720TenG99l89UZX +71FyouYrMhw= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 22 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEbzMaOjANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNDA3MTYxNDI5MjJaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAyMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMP3SruH +YcDDzDP2QOwNd6RGhb/C8zO+37ifQeiDC4ZxMc5chxZiJN6N67R8xdwWftmM7W5G +d3kFipZAFwxDJr0ndoVyhMLLsugdV3hBi1u5i2KkT1RPsZuigpEekFE8fR/D5G6z +bNlu9gejaLDQpAfGB1ouVZekKuDoA9nSxKVGyZWJaObMfBnmUse5KZKOrQjBu7sq +Aljlipp5vK+c6pCb/x2ntSgLJzef7GrrQDCgUfs7OLq65VAhnyW5hhRTy52wUp6g +maTPnL+NPWallVlEwVdayO9hMMBCnb6c67VsbRQvaAi9hfXGXZY/+WmpOIpUgB0Q +Ey+91F8R20wpt7cCAwEAAaOBwTCBvjAdBgNVHQ4EFgQUKtcOuQlixUGlXi0VuFv6 +0oYVTw0wDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAADJyV2Sc1nZ +P8nEvTa0E6cYu4+PRnLLqdDRmAM3oNjx0Vg7lq/Vdg61xvZ4SpKig+3qVGsM3pYJ +K8BriSU+uFiUzKyeMdz5O8B9Sf/oW9EiVidq15juRGEIrQmewA/rZsTlPiHg8gUv +gWc6YzLbicKtlwmg2tQDNDAoDc1212aG/XI8ZXzgC+9IS7Gtgkqx9tV81gw/jO5H +mWQ3ti1ps9Olvd4cQWmpYPFmcIv+vklzfnIumLLl94JUL2Zp72D8aL9ZPDjLKj5R +zuEzciOHcoE8Gp5YR35syM0sRzBUMKKqCI2GmRSODV8MMI1jnSjIfVSAvpsgaC8b +gAA4qxUCCHk= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 23 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEXYw6ZDANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNTA1MTkwODM3NTdaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAyMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK6fFwMe +1o2UdDbcqcVPGPAU/5E7j2n0OrUYOFOiL+QxER3HSkV3NJLuuVRDWF371+RsSJpf +/Q84Zh6xNj2Cz44nlkswhU7oFcxUSzJK22OJ/HvEP0uXk4CZvzOtQ6nL3lVUlO/A +j+NvvKCx4/kRQjRswPHTqs+iLmY02QljexW7bwLzUkpJI3+XuYmfdWVFDg7XDJ/p +5DJ7hT5y7bpfyJ4AhJg5gTLG0iwO1u/L2861mbSBF1Y3K1fw2tJUH1BNuEvs+7qF +jQgJFYgLlp8KhfVh+LJT5Cs5L3Z/mM2ONxAacmXMhwAgMTfoxhRwVv+JPnY+h257 +gxM64v9KgzI0k3UCAwEAAaOBwTCBvjAdBgNVHQ4EFgQUpNGHJjZOouOyeEZM3H+t +lo4BXUswDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAHSJf3zl9/hn +XhfH+Ijq47GjiUJJnvJwkhA3OogrFw7/uuJXgsVGKS+jAto7GacgqxAqdoOY+RWk +1p31x53ezE+WpJMV70Po69hXPhFtLo/Z0K9GCyodw8URwatVSTK1Jm3FVRcvs/QM +bdNFyX2nzqLL32hkw+B3/hvEalqtHxlaq6Q2w83IViZLpM8zhB19zDuZrHOi0HMd +pjcT1GXBYmUY9IdxGVpyuFXSEYkmTpS/xE4m9zmxhKXCI1XYnZVupKfmVkN/ZUcd +OV3SXCQBQsNJE5+KpY1pEaQvzqlFACH3TOvr7eeG1PCeqrThCYEluSxYTv0ITGyt +I0umB61/vwU= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 25 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEFLjKeTANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNTA1MTkwODQwNDdaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAyNTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANtaHXlX +JprVsWAKov/mD3JPCnD9pKnoI1ODtdgOfVNk7IHHHuqeX4GezJ062wzT4HXfbwLu +kZ34+fyUbWgaq/Ig3MYpLwfF/V/0S+XOiFpJiIYK8Vr7404Cw5Inu0gkGUbN8+1F +JXC2jjtvVA5CbzqHjcA+KRNc9PnTyhguSCFMcTxpVLAemIlOX5uvDnAF3yfJG7HI +QtyUm+E757DxRX2MKe+/BALh5IgPyBDS38b2t7G9c5gA6jH7XVMd/7zEtWogHhWE +7lNXqlgJFxYGkDDT8toy3qiOusagHz0yTnFS2R4Hv9BGItdnM/MxzFNN2AnIvz4H +hkuOtutced3o+y0CAwEAAaOBwTCBvjAdBgNVHQ4EFgQUl+XRzYsEl8BLRlWoacjz +DvqJOI0wDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBABKmY19oBOwZ +fJPhhjTGmxJsUM2mYAb7HvmLPp7iE0iGjqgzMRl6xCCpd77kO+m9sr4OFf2JygCS +wO0F+ZaBWJOFtlHhyHGyjvspP3tbpGqCO+HO+JAICjtD78MzJZBMbpDRBsccKe1I +WvBkP2h5QHBmaw6ACTbFBOrPv/1VQiP2nLF5QzHfyHAVIzemxLVlhptk/Fnr8gR6 +ronVPD7EYTdc4SgIxQaKuktrrnXZ2O6XALLUkW3WjOLetCR1HdoBpBiHfgxYNg6b +zHFZ7HdLTWnzVAHia/BhIfFlucNNo6DrHk4yKVOy5/yIXgI3pjR+HlRXz9WEtTiu +dQh/7jQ9tss= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 26 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIES+VajjANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNTA1MTkwODQxNTdaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAyNjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVaDtMJ +CHVl6pnnRAPGGlZ/LoIXC2j74FH/e8FJvFmtb1FGDLkbtBJvjym8QrFC9eU8Ljqc +Pcu/hquZZTrDl997847fvxFjkX4rIlCUSjoZlrKhVFvoQdHhD9XaIwAj2rTzWGwj +2tgJYd8PGVOHKW2dShlAthCsfzahXlli4G7okfHCgQqV60/uHXPQ8Ep0oif+119I +gfmZRdRfQ2Hy1c5W0mBlR7CgCtw0kE2S0xNWo/uVByK0Ivmv7tGoTOlmwtV825H2 +ShQL3SiHoU3cf6OQV76x0UuhrMfk+mz9gwXFm84kXUeu8T/NbNiUiydDx0hbjlr8 +Vjv0e/qN9EoWVlECAwEAAaOBwTCBvjAdBgNVHQ4EFgQUSnaetdk8gzpVAPHygTJO +7wP76z0wDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAKmCYBT716GH +7tvkl2nAyw39ksJ2AIuqVMZuMkN9TAVAGbSzZ7NfMP9WNoaFG6/5CBvvISV4KB+x +8SF1cBzziwV9RUNSNNK8rfkaHhPqZTQfQd2faBfAxJlP59EpLME0mI4/2tp26tXi +vxbHAGBzfJQQmMmIDSc5Q/QzIFUsfQ9Z1LaPoZwg0oww0OVlVtWwbZh2Zdv9uSlx +UgAhip0BKL9HCLSXBo77e2UpjybACypV4aPYBvoSLeGe2D1QIZEpQPNtSXG9q5Oc +cuSdjfj4eqEwaKHCMLKBt+GiDNLR+Eo/eI0qMDoYww30e7V7bMVWATilgjgCy7KW +aWHAjatvTm4= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 27 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEAxHqozANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNTA1MTkwODQyNTRaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAyNzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMZ9YGRD +ueNdXAEeWAjS3yF9/atwqG//kJl+Hxmgk848qv7HfQyTymTuUM10lgFdDxo329Gc +e0vuo2nNINVlHc7x0VTNvSwQxDFNG5GqWebX9mUSbK9FRdpNyAWBvHmY5nfVeiNl +qQY8nDW4QmLlLJLy4XwxPLLblyu6OMXzFJbl/4DqaBEm1lJcgNMLQrKIzHbqY6P2 +xg6T3zBy5H0FARvQ4QJU+Wjhw74BdWHntGl5v5Hp7uRlkEnPs/HsB1DZ7hzBWeHU +8OPTwZIdporTeYDkz2vv4K17j0e7phJkrzUSD2Y4CKn023jmPgvr0ShBFxdOhUde +F13ovzZU0w/8GBsCAwEAAaOBwTCBvjAdBgNVHQ4EFgQUZZV8rhLvGxqHXZUalCWx +vB0rO9MwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAE5SYxLxwnfa +kCfnOQGPwn2P7Cf1OUAyheX1XDIO4sv8Qt2T/2uobVCk6oW1Grg1cgKLZzhPnG7u +F305hlqNmVhM3kWXN+RpQvASHV5yszyOVXEGagGTDJJNsvqqOHU/og4TjwDU4kh/ +XPYo/u3xZQCsveXX2pwD06NNCmJyqXY4fPrc06qzPy3Ukqm4Tod533aEZJeikO7l +fvPp/X3diDCO4+xPdULW72iQnPoowG7265jFiK6eJPc69mlH7fHBCl6DBplWDdn9 +x4yGYNVIa8fmWFVoiUSFK94kt8aQczBXSULS9b2OjWTL8p7FPq7kWwCR/wcDigFB +UwrYTF+zN0Y= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 28 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEOj56uDANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNTA1MTkwODQzNTVaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAyODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJaB6YDb +sqxxKtzlf4e2AJNERvNn8ZtfAoia0V2Cx1ODPr9DOBlyJ2axY+g5orNCd3W7CIMt +bBb91c2ssi71u2y4dav2Mjyr/7pp6cPT0BrpYE9wNml1+5ROYb5OjUGgMvBUlhxC +7uDFWHShZ1fgTKWdklgdzYN9mUFc2Z3cHrmGpF7bfk4mEQdpb2qrTu5k38IW40vz +1VxIFlkSPXtOaxhjmi+qbOlLzlMz1/tYAPXiJBcrKECOLwB5v52eAhCEDGi/SiK5 +g4SAE8qHfoX9XVPZ/b09bH/sSIJ5lJBe7t/kHh4xSKOaLZPeXjpP+DzFXfe1OhXQ +OdwqqvuhxgfLB4ECAwEAAaOBwTCBvjAdBgNVHQ4EFgQUbe1wq4Qa6cIqA2R/yNFI +IYjT2uMwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAKLEoVWuOdoN ++eMatz8x/CUBDdbqgcPamaR1XzFBiYEPx7S59nL3rOxbRlx6YEDqIh3BoJNaIBZt +NG5XEVioiAxJP+r1MGSdOHAK55fEkgcsuyofzjuWCFJwgPkBglCB1Fs4zL37ngat +zPsGnHuqyG4huZN8U4CX5CadRlJ/cpLP4qrVxCGKUIQtZdGawcGA9V0qZjr2OyOm +hvSB23JRJglrQ3FwdX3CqjapDzalLnSzaQBLhlIIlf3UifORDWxAEevnH3TShkBR +lSVNB3GXRn1T35b8chPKu9aIYCBW94yVG07uVm/UE0SnwE5YIxMsG161TpgTYw61 +QzoKKOCDmKI= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 29 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEcWsKzTANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNTA1MTkwODQ0NTVaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAyOTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM1CQ3B3 +aJCs4znGLX+q6EO7LHZdJ2hcBEHSeDYakpBitMlcxXITyGTpHLuSsRUfF6NGpOdU +xmbyo+B+qf+5yA/lTZR59zRYxkv3sMpOOIId0xjoLW/jh5A8pzyj5Z20jv47PHyJ +WZvoe7XkOab1hDpBLUoyHxVJVUSLccoLX9pHXIahyZnd56AaoWQ25l8LBIdMDbOX +BUa9gGFXBYxVdqXACyvOcXPIh/OI3E1SZ8aPpcR/zuPYSRBxzXdC1DFiyyhfW6Xg +2qDpEP3OVmxbv3s3AdUWYAkDRBlf1yeEVr2YSDgvxfzq6/k6LsiMVyJyNRlpLpDS +P4acNNixr0mdQScCAwEAAaOBwTCBvjAdBgNVHQ4EFgQU9T5PR14NPG4rPlbjroq7 +lTEiYX8wDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAE32RSaqKXQY +09Oqvl0RnpmnqXd4X7opdam1XxbohB7tsC1hjsvZ0zSXZ68MJUhqaoEZRAShS9xp +JZ04yiaYB6cqMPa/APlR1+CW/Ff7FroRRaxF4Jia4EBVooWb18uR4YBZkCyJNBkn +ch0YltTMKpBga6+n8nJUuS7idTyw38cts+gPZIs8jS6+J4/3Bkq25V1OmbQvjwcA +6xZ7Y5PPGPUCWhIS2C1syRGjOG8xVEjRwC8KwbQ9tiH+LjbWsyJHC7rltt7bp4L6 +YNmtpBF3sdtUopVbw1d3zXi/nJydqpXJJhgp6gsj1lFqE98oBwamuAUq6SlW7o1r +MCA/Va9Mn6E= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 31 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEX8Qq9zANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNTA4MjcxMjU0NTBaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAzMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKxXFBma +vasFsED5VxnkRpjuLhuEV6yf/m7Y6Iv7RwZlxEoNOvLd6pbbhZIHIbWlnRlurOff +A03nhGoX71Dg6yG1OPl3cHpWczOc1Y0mAp+0+IdTcmFJ/nh4+TS7CgIXCYVB81eP +c7DLhFhRV9BU3JJlsAh0EEVboiixIfL34gV0QvKAzEj9i36gbxeBX1/OLR8tOZYA +t8BLKOdt4WRQoI9Zakvs6BCoxcffz2JMyhAx6Ys9+H/WCnlVc+9ytCStQ4Hlmfee +fge4HHJQK45EDFoIz4sTdDMVYz3NNn16MJVNrbleZ4rLdgTij/52OBy5ORogfj6v +R34oYyWmsTv1J9MCAwEAAaOBwTCBvjAdBgNVHQ4EFgQUpDhL7jlmUzU5zQpzbR3S +whNTjb4wDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAMXxs2M/TTJu +yq9Zy0ftbNhmgIClw0FpnDs9JlDs8rVAlbYsH1G5QtHOoYS0FZiNioJMAEphsSHv +g2FSA2P2F8G2mZRKcj+GR77YwSpPlnD7qg9wHXjw9y0bsmUrVqAJTJsikL5VVRyW +l4tzM3TQylZWztDK8mXd9XbthD4bGxNmSeo1bhC11vUNplU8sQNZwwhCTIptc4jF +1MmuAC8DhjMFdiXDnN40fq00tW6y0I3STVnbIg5jm4u1+4Xw8vJGT02SR/tVJT4Y +XMYLgCg8syHAfPZt+McGsH8OHw7mD695SFNOv6x41R9WZS04DM/ETJC1pzYNAcWO +FuW5d3CuMCU= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 32 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEFvC7DDANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNTA4MjcxMjU1MzhaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAzMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANXP/Ytm +oI/kJjA092EE6+RQ/Oh24AWtJwJEz5i6cmlEZYMcqrUR8AlhqaJqOZgZrTrh6A/T +cfJT2z+4E/x1jKHdNQH0y/P7Td8uubl1hfY/1AT8lSKbw0ObBHSwRVnjt6XhELec ++4ULU2HivNpiBxrGSkm4hB/fEyfh0k/WL3GXgmcqXVxlpG/9gBuJ4JYRc1PLZZP7 +HkdCUY4EBseSpVAyQcjkIngAQtNxehbHFCAKek3LUfxoTP6Uunl+tKLRQA1uxsxI +i1OHZb0f0FRQ3wxeDmpy2Z3HEO/4powLbzTPQDSpxrOSZ3wj8u+ES/m6tK5Em+sl +lVNeffcu455R0LcCAwEAAaOBwTCBvjAdBgNVHQ4EFgQUg0O6whKdeCmcS1E8w95h +A3v8yVUwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAKpqbtAIm8Sr +5NZDeDECSCF3XHO49Z+il/Zfvv/5woT8/PFZMdm3nl6L5Aekq3LehYiuSfptnna+ +E850eJg1EpX2cxD8MgTc2iajS6I8CO1I+lINyEuYuIQYsYlfse8Llmw+cc0YoyZb ++fqgZaSkClroYPpASfqSjaWjUxUq4OfJFdxMvSftgaJa+z3DuUO0yQ1L7EkmIAW/ +MRsgl5vFaCiGxpJkEHxzKlfaSbw+6K9RW6i0eY4X/EY2P+97TxEwGMpmZlovuz1j +V2SHlAopMyqGj+LT9WchxfGCzTnYRGuEsBfS7tFBC4EmTlDr1jgEdi/zeLIOPWS0 +shWiMlG+0BE= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 33 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIETh1LITANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNjA1MTIxMjAzMTVaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAzMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPfxxGeU +blTNpv2K9ZS2m9Abqm3s5ouDOk1K1rMmuNSBa1VbcdE9/qaeR6LHCXI2j5WX+kdw +A/yjwXeAZSV8yA7ygblRAnvlPCznQbQ1dY7QMcG4mW1J7i5eABAegxi3ZRCaVEDZ +WCpKhZfqzfRknC5uF0aMMAgL8V91/IoEl0YFO6i8Rg3joJLdMEvOK8bYEFjJWYc7 +YEObcviconBA7u8P6b2qdS3aIh2df/s0+/+uiPjKVj51EGhR0tIIK+pM0nCKcpjr +mOj8yTZEr6offdqRR2NBiZfBoJDFE7LKFpt+PzM3l4n5BACNwBAzVmZZTh5JQnga +pOKnX/h+aUqwnUECAwEAAaOBwTCBvjAdBgNVHQ4EFgQUdvp98MB3M9yM4k6O/xlt +J3iGaNowDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAMp8iDz7KC4J +E275CZjm9wh+Mv+jDUeg0LPIcch8A7wnwX1i8hXlQUO8q0+as3bbBizGo+KUMTUp +DJ9hsH7YqBbW1QcLJnOAGynOz0wIvQmqrPUTwoQTjaoEKVjT8SeNPluFGukb22kz +jW/K3584JIXgRF3MeVWAKqF2SuH+aB/kzZXZQ1NH072ZEomV2i+R7JQdRg+As+xG +8n/o5x/iPdGq+A5w3lr9VlHZ5APAV7EiUJjDKFyeUU1k9WA1TmDww5KL0JvNA8fn +k8cwHaxdJ63UEevSAN/vx+0CPZ1T+KxTN0nOff+hLjYvtVU7Bght+KRIi9j/zn9I +nQRoO5KMhnU= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 37 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEB4HLyTANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNjA4MDIxMzEwMDZaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAzNzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMLailaY +24SX+8A3SLQW1ny1gtHXO9cQcvEBtWyoIGdKbDWQ1Bx1q8wQQBYhIFTQepXPotQL +vcwAQFae14bdLl/hi7gXiqvWHX3O7HWWvswSW3UXV6EjaCH6YRuhfTnZavFBYP6h +Dc+k+u5Wq9y/q/nS0niYcFZpbJ1BL+3G3e0ZMsxnqtdGxhMQOrDNMahtisiBDLE/ +jvEsoXtrn/GXttUAZ3nxx1MYCazaeVmF59g1zaBpzuRjg0yYPYTP6RolTK0Xf74w +hfY63F61PSYHEdoRj9mB0JO7VE6cJGbGsGgEDyLzi2Dt1hodMNtnpegd+je7ns7j +pExQSTYCGig4AeECAwEAAaOBwTCBvjAdBgNVHQ4EFgQUL1crut7E0Y4Nkf9DdftG +jGG4x68wDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAL4rq9HarSij +LQK3hDSOsojjRI4w7H9v+onyh8Cz68IVgLDkPtbVIAe//ElyByB8lecamHb+qY4s +SjnEydotMbvZSeEDMOOWqBgDzubqN2RU2FWDZeHcMXIruWVAKKrB+YtKoZeNlo4+ +Ix+a6TD1krBxcW5VENtWlBdXUxLqgRvXdwGZ/hG0QAfwNACxMlBAJruoLLatk8gt +FSjiuir7a9a5vDykJBVQc7Wp4ZQJhuctaGo7BOjEDS4lAmniAf7rYJjuixPbYsqD +XpZuBODkdGwnty9qc3vWfxDU1zlpXFnBuHCGgVdk4Ab0Pm/1mWbMCLdUSpt26LkT +MC5345ECIDg= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 39 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEddrr8zANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNzAzMjExNDI0MDJaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSAzOTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIoklAvm +GqTgeYk4pxLXG0hE9DUc8hpICF/lwI80g8SNU1mleSQpFqW5kK24rXhRE/ebix4A +Fi9UoPhBGhBcW9TPytMWsUwGy9OqU+ZnX9CSGFtRAT+Z62fpe0mDcooYeTrieyKe +C9nT4ILbPRrrV0LHU8XBLBVoapYkKrhZ6ePTFdb+RAbibpoQVLrDErRG6RaTkwGs +2lyle/MAfPFAgMsom5z7MsYze8DzqcRCOLLxm3Wj8dvVst+TA5gEJ+4mcps3+MmJ +RDvubFK0eZphIBi60/Jq4PW8K8O6WS1ZgGQAKiTCkz7pRjRp6x2ecfWlKjD/zUW3 +ZJysSoCgqsV9xwsCAwEAAaOBwTCBvjAdBgNVHQ4EFgQURvJvljMGkeVhty96Y9zj +oFFwOfswDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBACIOSV4IDxBI +Q653+Ry3GZ0MmEDOK83J5uhjmQsXMc2mQr81mwuJt8YAd/en2jC5QcErB9FRj/SK +1xyqwcJJFhpq+VkGEJR8kiggHrbQQA7hhpGCprqzF14MqsMzz0bKFza1uREZC6fd +DBzpvADDcuvMPm9d3xK6YcEpypxN99E/yhiyM3H840FkqyOati6HXTr0qdcC+tAp +2yN2m/iM4X8mS4XfEmVHRmvblutBEN6848mQqm/eb0XAAZzgMkEquTiAEuTj+FHp +NN1qZYkAqXWAimZcEeQQWlkZIbGoD8QOpHOGx/rNBWUkJKFI4ipr+OgVfiHPQoEg +3gPpvPKMZXU= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 53 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEC/Gs7zANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNzA4MjExMzM4MjFaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSA1MzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJWs4L3V +UiRqEu9B/aIcIU19FA9tnhyFG4mYTUBt4ho4FfeYbE3uAzxpNo819VlzId/pt7FD +v46Da3vs+ut29keREQovnS1HpOxZhWVh8j67Kr3BFVSzd9OZRyCDMe435cRHwP/3 +W0LXkpADFwaF/4O7/i2vzK04HK0Wb2vwIZFIixrQGVwavn/7YFeh5NQm8OU51XLE +n7GIXhHAyUXV4RpKcHhbDPuw67obUqkvulswEHe1M/hsqtPaY5cWeIl+Jjv9/kp2 +Ikl6eDclp7yHXc13Xvh2vqfrfeC2Bz3SPWLX4h9qptyC5td0tONfCMbzE9wk7D+C +eeM9b6W9kRE+f1MCAwEAAaOBwTCBvjAdBgNVHQ4EFgQUKneg40LLxscu4/r8Owp7 +zqfJzk4wDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAGhDSonPnyer +gyjkb0D/mejWOyOWAlM2YCktqx99hxWg8m/aIMRBP/xlVkd1GR4pp3TdP//EE4JQ +Swwk4A81K+HY/WRflX8R5+SdaskKAXWqIwmXILVuxgXJCnAkWAoX3ZK+eneWSZ9i +pGp0n33b2lyNh110IitPpgip73Amj7Jp5oRfN7SxeAxLYgxnjjvsnWOd+OZ+/K2A +GX+rGzlGZ36RvaiGUY4cJyHSdoQh3sGm8xjqTf2pddoWydoxmgifzG+01jLRi5Uh +Gbyq7M+wuG7aFlZuPMN4tBltBZAqxk9o4Vsf5uT/wjdWjWP+V62lutDM8lFdq3Tq +egGHxNUN5IY= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 55 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEekrNGTANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNzA4MjExMzQxMjRaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSA1NTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKqqd07P +hld0loCD1hMlbAW9F9jflzb8uwWdc3mzCpmmPAE3qGUFq3IyBMxUzJKi1AQrjr51 +czUc5UukP7EpNeD+ewv31xvv5ZDpLbXmJhLfkq9tD/hSn3Ipkl+JH4r+ho2m2pGf +RW4N2z+YJjLO0Y2KKdcFT8ErpQDciepZVY/cPRjYei9H2AR4gTSm4CnAfWdli/BW +Ukm2ApDo5iz1Sis4eysUen62Mgi3zFEnjEa0C1jLhJJfrUZvSfqDckYDRNrVWO+D +iIu/Dso9D9bzAfYoRK756J/nflqqaRLStTgQK/6RF0+SIuRIGylxZNDjAid1MabE +lTg1AltwZ5quwDcCAwEAAaOBwTCBvjAdBgNVHQ4EFgQUNHyTyr3tYWjGH9yHQKc1 +PkZ1FhYwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAJzWoFwYEuLk +RbVjk8OarbaPwNJ0vqE6FXgMCaChoFTMk7I900LAymJ2d7ymfMDyCe3YPEi2Dg3D +keZQUeJ50rki6vzVQgVbRy77oBQ3JEY+E0q1kSu4ifBKJ7Otpbiri4vOnCuc6TGn +lsHQBFR49gYdk7H6+o3DmUCNl4of1b6/cvFOl2YAxujjeQhd+G5gYR/QIW3bCt8m +dg2DgLuVqOVmpVqajdafh6LygfQPkKwmycyVsTrlIDprnvD7iXsRCJZyZiz0u6ZG +FPBeWiEUXlkjOUoR1EvU3NNpWkkFXiLeZwog6aNX5dQ9OgIhvcnpz/gzltm31/Va +4FQyxfGuToQ= +-----END CERTIFICATE----- + + +IFX TPM EK Intermediate CA 63 +============================= +-----BEGIN CERTIFICATE----- +MIIEJDCCAwygAwIBAgIEH9B9WDANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJE +RTEQMA4GA1UECBMHQmF2YXJpYTEhMB8GA1UEChMYSW5maW5lb24gVGVjaG5vbG9n +aWVzIEFHMQwwCgYDVQQLEwNBSU0xGzAZBgNVBAMTEklGWCBUUE0gRUsgUm9vdCBD +QTAeFw0xNzA4MjExMzQ0MTlaFw0zMDEwMTgyMzU5NTlaMHcxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIEwZTYXhvbnkxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2ll +cyBBRzEMMAoGA1UECxMDQUlNMSYwJAYDVQQDEx1JRlggVFBNIEVLIEludGVybWVk +aWF0ZSBDQSA2MzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALkHRgiW +Vjfv9aSAZ1+5jqsOBr+02Ki2X0fCZL71YSNiz90P2vud+iSeVBTSjDGrHLd3DlGa +MYxe1DPF3PVk0QNMXVledT52wOuGp5s+6uoSX+4W/zU3efC4zEJvvGz9qiwwDO4W +H6FgjTvVE+Rrn2pbrzW8n2lIvHnJLVGzHiSZfayQrmS0rAHrrbJSFvts1x/Al4GL +ky7RyCgqJw+KxDNZ16x4k0Gv9PhboKyUc+h/Hn+2w5RcAlKTZukLCfujg6KRUJek +v51ekPQzRf8mw4z5x2Bd5nmxNNWJ+4CGoG+/N+mP/n2gaYMZdadQzn6l+/WtIKhr +6QWnAYye++AKbEMCAwEAAaOBwTCBvjAdBgNVHQ4EFgQUomzurJX6M2cyGdDCp3Y3 +EC+1P/IwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQAwWAYDVR0g +AQH/BE4wTDBKBgtghkgBhvhFAQcvATA7MDkGCCsGAQUFBwIBFi1odHRwOi8vd3d3 +LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L2luZGV4Lmh0bWwwHwYDVR0jBBgwFoAU +VuuRRIVj1nKzrtRFlgv3lA5UQqYwDQYJKoZIhvcNAQEFBQADggEBAEVQDi0bnfgY +GaCMLvCnwhtqgc/rCSk2VYGlZ2QS8q+MmnegR9Lb3vZAsDT8c2TgvrnK1pHrFbsx +vZ9xloJkUt+aCIZ/8PR+wFZrsX0P7mLT9HgJDrCciN4b/giDto9IQ5WBtp/Fr3oM +Wg91QZdONHDtR/X7UYZMm6Ev6vQAdnZkSHnZApR+0yKoBJYININZfI9ePZ+s5Bll +meTVjyKtCG8LgcGDDq8Vaodl36VQya5TEkT3e6rLvl9XyhxG4R3xzNEK/0x5Rh4C +ZQLB4V09fbciSfsXpOflmO5rF7kDBIJyLhwWONtnsW8m3hGI0qhwb0MoLQ/OW4CA +7wYXq7TEzK4= +-----END CERTIFICATE----- + + +IFX TPM RootCert 008 +==================== +-----BEGIN CERTIFICATE----- +MIIFCzCCA/OgAwIBAgIDB71yMA0GCSqGSIb3DQEBBQUAMIGIMQswCQYDVQQGDAJE +RTEPMA0GA1UECAwGU2F4b255MRAwDgYDVQQHDAdEcmVzZGVuMSEwHwYDVQQKDBhJ +bmZpbmVvbiBUZWNobm9sb2dpZXMgQUcxFTATBgNVBAsMDEluZmluZW9uIFNNUzEc +MBoGA1UEAwwTSW5maW5lb24gVFBNIENBIDAwODAeFw0wMzExMjAwMDAwMDBaFw0x +ODExMjAyMzU5NTlaMIGIMQswCQYDVQQGDAJERTEPMA0GA1UECAwGU2F4b255MRAw +DgYDVQQHDAdEcmVzZGVuMSEwHwYDVQQKDBhJbmZpbmVvbiBUZWNobm9sb2dpZXMg +QUcxFTATBgNVBAsMDEluZmluZW9uIFNNUzEcMBoGA1UEAwwTSW5maW5lb24gVFBN +IENBIDAwODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKdYBZJDm3wk +4f43wHZFbUy7gawds0C615qSx7nxxsObjo8hFbGIiLEqU3NQUQlpxmuC45iOgjZZ +GcEkdUfJJGMevybeSzDZD43EAU+k84FOnYDM2z6SpJmxzfwjpflVR9Hc4SAzqpsQ +7qrnIvtBJNZKjCzMvnKkI3lCZrSRS0fT0FK6SQmFCL+oPy+IwQvSK2kqkdXRBjGt +KQPvMWK1JccVOGCjX3IcIPkTgchfQCYBd73DajFjKxpGzNv0L0RHJ/8Rbl9zJqto +QoRstt9V7uAs5k5iwk2/7j7z284i71pgjSlhx5ZnBj/1Fai+w2iiZVpwiX7UhqSx +QfFF6FiuS+ECAwEAAaOCAXowggF2MB0GA1UdDgQWBBTRoAWWqkeklbC3hkoHGjpM +rdu+uzALBgNVHQ8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBATCBjwYDVR0gAQH/ +BIGEMIGBMH8GCCqCFABEAQEBMHMwOQYIKwYBBQUHAgEWLWh0dHA6Ly93d3cuaW5m +aW5lb24uY29tL3RwbS9DZXJ0aWZpY2F0ZVBvbGljeTA2BggrBgEFBQcCAjAqDChU +Q1BBIFRydXN0ZWQgUGxhdGZvcm0gTW9kdWxlIEVuZG9yc2VtZW50MIGhBgNVHSME +gZkwgZahgY6kgYswgYgxCzAJBgNVBAYMAkRFMQ8wDQYDVQQIDAZTYXhvbnkxEDAO +BgNVBAcMB0RyZXNkZW4xITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBB +RzEVMBMGA1UECwwMSW5maW5lb24gU01TMRwwGgYDVQQDDBNJbmZpbmVvbiBUUE0g +Q0EgMDA4ggMHvXIwDQYJKoZIhvcNAQEFBQADggEBABlv8CyAoWqgyMTm++2CXEbt +9xI/XboYAkk6BR5QJgbRBFVyaMPzQ0UZd/EXbML2i37jhM+C8ZvZH55gnJSxMgCZ +Z0PWKJMD+jwGB6oMGO9uNq0JYiY2xto+akWrR12FO4dE7JuuSQeCjoaeh69+jl0B +qw38lUFadM9hEHCU+1sPm5CgnBp3o/5ynD0DOB5lOVuE1orHFckvteq8yXWuKYiR +FV0iin115/1Pi5SsvfKyIxR83EqklPoxyn9gYQmcKg4TDcJwM2ag37AfyAuQDctL +q4F8q/AXBPWMMXId+6KPIYDXn7P7tOPMBAG47vr3ow9kgKCF42lGb/M7hRhw6gM= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Root CA +=============================== +-----BEGIN CERTIFICATE----- +MIICWzCCAeKgAwIBAgIBBDAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEhMB8G +A1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJR0Eo +VE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUNDIFJv +b3QgQ0EwHhcNMTMwNzI2MDAwMDAwWhcNNDMwNzI1MjM1OTU5WjB3MQswCQYDVQQG +EwJERTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQL +DBJPUFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShU +TSkgRUNDIFJvb3QgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQm1HxLVgvAu1q2 +GM+ymTz12zdTEu0JBVG9CdsVEJv/pE7pSWOlsG3YwU792YAvjSy7zL+WtDK40KGe +Om8bSWt46QJ00MQUkYxz6YqXbb14BBr06hWD6u6IMBupNkPd9pKjQjBAMB0GA1Ud +DgQWBBS0GIXISkrFEnryQDnexPWLHn5K0TAOBgNVHQ8BAf8EBAMCAAYwDwYDVR0T +AQH/BAUwAwEB/zAKBggqhkjOPQQDAwNnADBkAjA6QZcV8DjjbPuKjKDZQmTRywZk +MAn8wE6kuW3EouVvBt+/2O+szxMe4vxj8R6TDCYCMG7c9ov86ll/jDlJb/q0L4G+ ++O3Bdel9P5+cOgzIGANkOPEzBQM3VfJegfnriT/kaA== +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 029 Issued by RootCA +============================================================= +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEVv0NbTANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTcwODIxMTMwMDUzWhcNMzcwODIxMTMwMDUzWjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDI5MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAxmiJEQsOfFoZlRzWl2jwooUjcKloAgTk4wQmWZqW +BhqY5HG5jBDmik8sSCLTvEraNRgl1fkMQn5f80Oc6HWveLV4yKPZtI46N2nhoVak +li3shZZLdblA2w8Vs50nBq+ARyssbmSY3n/K1u6AblnEA6socaNvvlEX9YzJUuAA +CyQkez3/u7LE7HmUi9rbkPnziJs0v48Nuf/f3wJAJMyalkgk3hZpZU+Ky+bpiaLG +vcb4V7/2o4KPdtFK3xaBKI2Cx1jpCQIR/2x7BN73jOzjDSeFGB+dNwAoRFN+tYX2 +1/Tp5qQ8RvQ//E7YlybuPd9LRG7j9ybvFPpPF93sgNtkDQIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUGLGvcLk/mRly82JVapo/v0uyTg0wDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAgQiOzCuv7EMV +rjwH9usWev5aAVCgk8sxVqKcSqfzGzlf8X7ihVnJyQI5vmZK+go97rCOfpr3mOMN +KjEdbD9y5mYeQseakrUnzk//futdAoMOoRgMb7iEzNKY735YhTlqqPTno8OXjuhF +SeMhrPHUZfjWXkiNoyc6eahNEQ4Z232LyFrCEwRMIi1TdYoKGHxDe9CegU0Eu9Qy +ax5ETcMHr/3PMJ8w2gPBsQMnBzFyahSDnZJBB44Xn54wv+qiy59xl9SvaAJgrK0y +4MWDrmQlrEUguxLBUOMcvfDXZTEh72jbFoV6vA9HzQbaLFyvx5DteP2XwTiTE0+p +3wQNaFszdwLCwOHARQ32+TzpFWO+4cSTFhLyEW008CyYNwAMx0UJqG39+W7BNtDH +TtyfIa+WLS/LczVe/eF7TomQCUri3hWWGwgHP4HnEH8zEUA8MeGpZtBomF5itXKH +vpeuuYBII9CWgaVhaJEs9jYu8cck60sToLzQIaYgyZQ9ICZo5lSdpGfuXxufvP2G ++0NaGeCc8m57lTHgKuXClvJ9lVkJZDUvAkHkjK8lix7NYs3QHYkkefS+Hobx0gOE +trp0pGqLBe7zn3pJdJbvmm+s3l+2n8Nk/xzHjUuMFnZNunnYDCacrdFtbk4uFnFJ +cNrPezJSJUEnjXlfJxctJ+nsFApPRfI= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 030 Issued by RootCA +============================================================= +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEDimdgjANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTcwODIxMTMwMTIwWhcNMzcwODIxMTMwMTIwWjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDMwMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAqvKSP8pXtgp8vsgoB63mJmlV0vjN3PHPVeVY+zxn +KxCcOwjP5BY807tKDmqpjcpxoFDLM0qaMOugqnqkCTdQg6LTcml53m8n46u/ncZC +NZP1f+oFe4TbboZA3svKLMS92OuuV27fgyZMWJ2VZmIXsXfaO+UtsNqpUe2Hxif5 +irSREkL/o6Y1Pm7sYzxHNmmapV6vi4NwK4oJ7fcWjT+ZDc21beeqAGQuuMTOZBoV +6GuwdHJqHnDqkgd57ZHp6qQ9zky1nwRuzyjN0/PLCaDVRMmTiw7EEQXmdveqP39o +7ITy67PVD/YnUf+uWT3xIV8whyGxZ1UxnRVV0hSBJgih+QIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUlCdhTT1IqwPZR0/vqpIoMSGpAzUwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAfIfXVR0CT2sJ +hUSx50XP8s0RPvhPIgOSZunBJ3x8H1YeDGBMChdk25gZY6VzlAR26hqCT4BDds3Z +r8X0aoafPpzkNIjhLKdCAWIDSrGpa4gfrbj9r+Hu1qq3Fsl0dDdqHOpxb6xF/cb9 +bcj3av9XzWA2osSPk/v8FwV6muXj16sCWTsnaz8qPx064NhH2RuE/AuePHy/qDS+ +UPo4KidQNoSaZzw0647fAqkj/8McX4TohjhGF9exAezUu7MOVl/zHaRhu16LJQx0 +OLR9mn+gGeAurT2sDyX1Ci/HaCojwjbY7xvakqfiTiJ9iC9bAcE2ig459jU47X28 +pcbr/HAudddt3FzaP1aAt6FWxJaBMw/guXw8AE/MhLXYwQyWWMeWPof9CCW4oSem +s1o87jwSYq5XsdKR28ULYK5K/iKoyCq3/eXQltU4DNHPAPbGzWw2Ocm1WXdDkqdv +19jVv7y/XXPeXxfvxDgmGrSKBcJlBZlHy2Bx/M48UAb1munD66ZDHTIoooqc5JEh +lJaTxIGP1oQWuOWDBn2WHnbgA5iv8p4SLoYC1FM4skmCOy+57iERY4hbUKSbJd2I +dInT8TNgqgMjGKX0E+1/dVGfR90MrE3i8jqtBz4G1mRNAuYUkgTMYChjqwiCMh5i +CTEHdj7wd385OyhwgXHPzf1XPSXpqgo= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 033 Issued by RootCA +============================================================= +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIERVYtlzANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTcwODIxMTMwMTQ5WhcNMzcwODIxMTMwMTQ5WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDMzMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAqF6yFNXvXGQt/HDujfvXtvzHZWkuUGX7PAv6BJ9F +YZBQmMu6TstJDZYjMJPVOT3rNmCgrqt5wSl7l3VeA+R3yUAejIIK7tkUPqoR7dKp +moUtblbtjn+aD1lMQypmiaWwMAGwI84i2dGwRbQp91W4n2pp9ZMVQ5euwMjSspbL +H+f2wnvXF1N6wSELeVV+P2/V3liSI/d4Cjr0zJ2NFSY0jNPgtBV4zZMJ1XhmixiR +Jib3ZLXjNL6bFTKq8JxO/9MaIocj/ZHGHT8vB4Us5rwz7N3PZt1YPATmSD+NWHke +hq7xLxVtlmLVROKXlfeaKnUL+CHCRlhz21wdwmUJSQ5K/QIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUX+YYDCV/JhMLmLDg9aNHaDZ385EwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAj5PDj/b/UfZa +tES6DdviiuO3lHIcV//pvG2QTSijvgoqfqDuAaNdqqJyEjD6eZokOij/pmPnAWux +9nGTbUWYmApHW7iPR4Hvcp8IZGRmoXfL3I4dqb7+zkA5Dl1Qzxh96fZaCE9q1OaO +WMk1yK4m3ky5fKHa8KifMrzAvygRl0Ctra0VoziHlobyBpLjnf1exCtzUpaqmNe/ +exefBTbzjmjKUk9xsdy8xynDeQCs5Hu658CilusQExDoDVagkp/ezzhcu4NX3tAO ++1y1ri3VzNSSgox7HOqb86+5Rv8kdvhvKrYrSAlu07PUUULKXgt3F15Q/LoJMRFF +vFTl1tstn2Gq8ru8xaSrmk5KnKwPeRx7v4mNezj+dEma5LqNf6uBmHqD2XACh+xs +zWHNvqsfSNfLxhRhXOE4apdXqwCEiQhX//8U57Mz/UIlBdqCsX9hJeWAgleKQeHg +VcQzLAwsNUX1fqJht3toI+WCXSWIrqx6OXbu8wYJpsUUElu3ww+zHHVlCubyr/tf +aCNOH5jSZxOSXTa9EKwmBmffs0OMloUgTfcCqcoCmF59fH9kLf6k8gMRNn1IZP9A +M+AqrPw8trApPCyD1oY1wAPerh9CHGyViL1hh/2LE8AEpuEy6BHDzTNKgCRhL0Bd +UmfkXFd8zcOy+Opgj7lQN+OQDCNNCWc= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 034 Issued by RootCA +============================================================= +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEfIK9rDANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTcwODIxMTMwMjE4WhcNMzcwODIxMTMwMjE4WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDM0MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAyLdb1TmP6fhElRQMq5voDKwFKZhacbR18Gp3E01K +9s4YcsdWnwcYHhtv7Q/LHkpI3WamRVOTTKVO5IZVJ/Pf/Inm71xz2flFeorQGgyu +/mzlIJ8JwQv8zZZXX9VsFK65FdLRDQbwWFceXMMld+bP7g/f3tN26EaEVOkpWGHU +RRGS6h6BoVtysgnVJOSHqUmUnuGR93Hrb7HAZAqk6pIM7cS4eDwXfHwCRoymc5OF +nHzC1hqh8oFd2lHpMMxrg0CVm63i4LsuDUXCA/Cb9rZhzhBa+WLr8tYnFMFTWZoy +qGQk3ld1si8mrt4EvcuRclhJxsyQQB0F1Fj6iWuvRYj47wIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUN640a6pUxRPP8CkLsyGiKjSkqMQwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAKVvVDf/S8h6a +kbGwXKUYZrGbtlg2dWVkMD4vuDMyNhuGWNTjgaWyN9nGeSfppb6lu/60jdi602DW +DnyIPzGCRCzkl+7AAjLAK5IH01odeFEXRHCP8oS5lCjYrrRRKn78+j9G4PlqS+kF +zT93nY0ttll/prx4VRrYKX+59CJv2vGxWutBo635AstQo115yEdgH8OobVNvJFLA +ZsJ5FssnZdQ45dNNFHiEZJ5cQK5SswAPZeu3iuhVuwofao4BZedCZE+rkUEL3Cgm +IXzaez+LN6ggDC6+vSHNgKpwyGc3PR83CQwgnT2vXWsacG1pileOL6IkeRBFa10O +SwOY9tqY2WEaP12T19/5UG/j+KrWZc01Ho8JYJaMZz2pSHiMi5edxGN79Mdftnl2 +RbEimP6ZbqJ1JkTsq0akvwynWh9uCTo62FtdiWTk691aKsZxL7wY9vhdlF3Va4Qj +2aGYVwyId2BRMeCZTSdltz61nzbZgjdaB71/FE2mXq05H0W+klwxVGXALZPltMNe +oLhH4D+pUXKIyZ56zmRfGHJffiTDJ8yGsa7NOwvU9NzM/BLmdKrR5O81+ml4QeP9 +3fJxLLGVhffcuEQW4zDE9qmK8HU2pHJpOj1Y13Z8/FirHdkqTk/VLhcl31QZIpFL +PM8oF8K1AyvTdS7qKqjsB/9kHUshy0o= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 035 Issued by RootCA +============================================================= +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEM69NwTANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTcwODIxMTMwMjQzWhcNMzcwODIxMTMwMjQzWjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDM1MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAqjmSiRVBk4MEMDzI7vyyObVhQx/NL59pLFzuYDnI +FX8Lez+XLLC4FTvQQGov/PPrx37ZrZefhyuNoB1tVZCj22QZcWG+GEXKt1rXTgRb +7/VT78PbmZehjMgs8cGQM0oWkbrHqastkkfScn2NR6oxNlUFjW/tl/Cw6L1Hjto7 +l0Du1/0Zgty4vm+tD3Xbelzcp9lpnKCYOnYY2vPE+LEG4711wIvRszdww5lGEBLG +kNI7ALFbI/SnLIXyZFE7fGGiSPElpjirjSmXsGDhfa5cQfVR28YD5dpUh/De5u4A +ObM0TjUvW+vnytOPs9vh5hYj9AAk8/X/UfhayE6lwYsrfQIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUzncVO24RDKSuKXGgmFHvSZMmICowDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAFUoMlK6p29cR +VUpX67g1Yb8j0ei61L3olwGMEO3OCtGrWEFI/icQtxgoSLx1h8GSVBHAJQt1Ji8u +OjA4s8GjQQ6V0GIRK3ixvO12RiF9qjRK2IeYL/4ggG7U/xGho76LhWre3yTtCwTQ +sCn8EtTbfgAPMARkzk9S5yiGbxoy2WNxRbEzcYrc6M90+6TCNx5RbA+z4Q9ZTFC+ +rE+CDBf+x3UCjxPQe+VMVhhNgYvlg4S6O9Ql0qLYVUW+QdR9IQfHgJ9PQHy1Y0Ue +EuXGhnpQGPkagAEeK51w6AuFijAmr0y39LLc00Qe0b2LIgP11XZU66h4uF74OVHu +s8cNgqo5UP3jZLd+7QAtBv/L7Jk4fKNT/Qd98NSOdJJu2Mt4pAk/nEU07TNgrK5y +HNqnIZt3681gK9633H61WC9hHEPW9D1WQlIhK/FzuCWdI+hD1ny2BlAOsABfaxQR +2sXmj1SYtRfKHGEXAlA6+mdnE1GHPLxmQjqWf6skE6+aY1Ge8oWd20M0D2gU3ECr +GnzBFt55bCv3Yh2MujOQmimcrspa3MpNgNK5Z6O1cWfBZGec/84K+Jz83GKofzNl +/NHFN5to2Ex47JzEAWh1BDUHfIEDPZ4ZVQr/2mT/PgzPqCu4snasVWPz80CwyMAY +A3VriCkcBwy8VsmJweQUSe/8JLxZVtQ= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Root CA +=============================== +-----BEGIN CERTIFICATE----- +MIIFqzCCA5OgAwIBAgIBAzANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgUlNB +IFJvb3QgQ0EwHhcNMTMwNzI2MDAwMDAwWhcNNDMwNzI1MjM1OTU5WjB3MQswCQYD +VQQGEwJERTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYD +VQQLDBJPUFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElH +QShUTSkgUlNBIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQC7E+gc0B5T7awzux66zMMZMTtCkPqGv6a3NVx73ICg2DSwnipFwBiUl9soEodn +25SVVN7pqmvKA2gMTR5QexuYS9PPerfRZrBY00xyFx84V+mIRPg4YqUMLtZBcAwr +R3GO6cffHp20SBH5ITpuqKciwb0v5ueLdtZHYRPq1+jgy58IFY/vACyF/ccWZxUS +JRNSe4ruwBgI7NMWicxiiWQmz1fE3e0mUGQ1tu4M6MpZPxTZxWzN0mMz9noj1oIT +ZUnq/drN54LHzX45l+2b14f5FkvtcXxJ7OCkI7lmWIt8s5fE4HhixEgsR2RX5hzl +8XiHiS7uD3pQhBYSBN5IBbVWREex1IUat5eAOb9AXjnZ7ivxJKiY/BkOmrNgN8k2 +7vOS4P81ix1GnXsjyHJ6mOtWRC9UHfvJcvM3U9tuU+3dRfib03NGxSPnKteL4SP1 +bdHfiGjV3LIxzFHOfdjM2cvFJ6jXg5hwXCFSdsQm5e2BfT3dWDBSfR4h3Prpkl6d +cAyb3nNtMK3HR5yl6QBuJybw8afHT3KRbwvOHOCR0ZVJTszclEPcM3NQdwFlhqLS +ghIflaKSPv9yHTKeg2AB5q9JSG2nwSTrjDKRab225+zJ0yylH5NwxIBLaVHDyAEu +81af+wnm99oqgvJuDKSQGyLf6sCeuy81wQYO46yNa+xJwQIDAQABo0IwQDAdBgNV +HQ4EFgQU3LtWq/EY/KaadREQZYQSntVBkrkwDgYDVR0PAQH/BAQDAgAGMA8GA1Ud +EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBAGHTBUx3ETIXYJsaAgb2pyyN +UltVL2bKzGMVSsnTCrXUU8hKrDQh3jNIMrS0d6dU/fGaGJvehxmmJfjaN/IFWA4M +BdZEnpAe2fJEP8vbLa/QHVfsAVuotLD6QWAqeaC2txpxkerveoV2JAwj1jrprT4y +rkS8SxZuKS05rYdlG30GjOKTq81amQtGf2NlNiM0lBB/SKTt0Uv5TK0jIWbz2WoZ +gGut7mF0md1rHRauWRcoHQdxWSQTCTtgoQzeBj4IS6N3QxQBKV9LL9UWm+CMIT7Y +np8bSJ8oW4UdpSuYWe1ZwSjZyzDiSzpuc4gTS6aHfMmEfoVwC8HN03/HD6B1Lwo2 +DvEaqAxkya9IYWrDqkMrEErJO6cqx/vfIcfY/8JYmUJGTmvVlaODJTwYwov/2rjr +la5gR+xrTM7dq8bZimSQTO8h6cdL6u+3c8mGriCQkNZIZEac/Gdn+KwydaOZIcnf +Rdp3SalxsSp6cWwJGE4wpYKB2ClM2QF3yNQoTGNwMlpsxnU72ihDi/RxyaRTz9OR +pubNq8Wuq7jQUs5U00ryrMCZog1cxLzyfZwwCYh6O2CmbvMoydHNy5CU3ygxaLWv +JpgZVHN103npVMR3mLNa3QE+5MFlBlP3Mmystu8iVAKJas39VO5y5jad4dRLkwtM +6sJa8iBpdRjZrBp5sJBI +-----END CERTIFICATE----- + + +Infineon OPTIGA ECC Manufacturing CA 036 Issued by RootCA.crt C v01 00 EN +========================================================================= +-----BEGIN CERTIFICATE----- +MIIDRjCCAs2gAwIBAgIEfrquPzAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTgwMzIzMTE1NTQ3WhcNMzgwMzIzMTE1NTQ3WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDM2MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEus+QlTFxQlmsyFp4vbjrrtQVJn/WhaqxZPDmtZzwSOEL3dRO0vIa +yDpG7If66k4jcTnA7/bdu/kSfkWmMGcvpKOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFDYrAhZcqvUXEOuN +pEPtXnoHqWXLMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDZwAwZAIwDXTuJnPXYmuS1KSJ5loZ4Tq2ydcNXFUN +0fPST8/WWqPAyipDa7H3q66sablvN092AjA2uFtBfwNr+S5KMh9qedkArG5CW6Zy +4nkMEez14v97SfWe/MONY0eFbGNTfbSUstA= +-----END CERTIFICATE----- + + +Infineon OPTIGA RSA Manufacturing CA 036 Issued by RootCA.crt C v01 00 EN +========================================================================= +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEIght6zANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTgwMzIzMTEzNjM0WhcNMzgwMzIzMTEzNjM0WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDM2MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAq1qEAbBxprGQ7XTXh8d3RrKOdllPtAZPdXzwBe5O +si9D9xwhVnl5Yer77KU0HKIrymZMIxd7LiJ11+GLFIqPeTwQr/w4o48QHmalQMCa +9/ESj03T5v1yDe4l8O8vycmkGGlP59MIFpWC41j4TrhVYrBskeU2zsH7kBEUSzNR +5Z585sx+PvM9f/s06d2FcjihBe7zXZPMeMtGhIp8J9nXEITnYwZzJ+RsW4kALwBV +lZp1HXuvGjH3IhTUhXIIEvYdJ7KOd4XhtPq348oOrScyMjxQXkw+kcgzDuL39MB/ +fwqo7YQ3qi+8hsnqlZE1Uds+ILiGiK0EHQ8ixJQND/nDDQIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUfLS3jmiGFL5EIcWFjxW5bV6rUe4wDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAokHQ/1UR+BDr +V75MjThS71x3Cv5SU8s+KGg46wES841xo79fMkNfST735VOskVBOoY4FbKRftHMr +IGZBsVtCZGSMVvbOVwEeXIfLFlAw+2ngvrGdqJ+hkqndF97JQLnLMhBgnW29/u3E +N/81GfAPpMbQyiIhmeRFQGYgsWwRXF73XrwtlGNGmAgY8DFP5ekKJlf0vwOMGS/r +9vtRIHZbiVCPDIY29bAC96vmfVtFoxTxDoojKwrnKjo6eIa7kzSVa5G7Sv7MVcns +wdHqWptLEWeEqnCPDthJiXNQ4f9I6BtwVnnuF/QHPQCYc7WkEKhsqYruEbEx3W/Y +fg7z1vTgkjq1rXip6R8GFm7FjztA31QL9aHcoj5JPSAsEbuyjv0EGlPHGqAnZF9Z +rksB2k8X1wMpQIl53kGZC6gx+ryOxzGowd6Fy6xQejLUwVOjXk2HbhO1VC1k6NWx +DZ1YVPV3i3yrekQ1dekhVXY50h3u385b1lER1zqraIRfTq4L4znt1kLkhuyZptPj +QXReZrZ16KmAZYCo6u0aSnWN5T4g5gNyz6yDonC75X18urh/m7D6dAtPhda8iRJY +8MYGqqkDJ2kaCle1pwcR/DdFuxKUatJXZU5UP9Eh2bWif/0ey6j0PLddg/vzUmSr +9x3S5qahN8S35J7GTDp8WK+L1VgV74U= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 000 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIEH7fYljAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTMwNzI2MTM1NjI2WhcNMzMwNzI2MTM1NjI2WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDAwMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEgjgiLxUMtWktzkf1glqbegCSR/k8z8prL0bLxlU/06KlCR+q6cqh +y0bDX3u577mxJQ9z0jEXoWQG7sUlDHmMZaOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFHOruBoCJUVjN/Ar +Jb055li5DwD/MA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIwGT4kzJwmpfto2RR3JQTV3kPJ0HoVUBCg +Yo83ehnBnxj0PHuzH9UBEshqgTRGqxvBAjEAk10of8yeeS8b1Rmk2aSceZDEOEpF +XHWOBQYTjqvliBomaEQEaYPogpHUTYKIm+XY +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 001 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIERT2I1TAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTMwNzI5MDgxNjI2WhcNMzMwNzI5MDgxNjI2WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDAxMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAESAXhqsOQZFWz1EIJ7QFVYjVha2NJZ/uBOSRzFhO+akmaSmAN1xX9 +Do8KR5OoLiofunDiewGO1LcSQ4Dp3/Aj+qOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFD/j4+A4PsuJkRgY +j04rlkTb05o8MA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIwEq4g5bzryxKAQXrV1/xSg5ST5dzPT8eZ +FuN2TvKbWoh0qVZSwagytT4KQ1JZrw+XAjEAriM6Wole0yJOQK+vKVDTuUVsRFCx +C4xpQBZML3p5Bgx+JNcgooBCagIBSV9sAKY3 +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 002 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIEM5ao/zAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTMxMDA3MDgwNzQxWhcNMzMxMDA3MDgwNzQxWjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDAyMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEfhDta1mpOBvEM03eU6dh4BXc0WW8RIoEayH/Xj55B3i8sPBI9orj +0Bdee+FFBJGoiLRGNbnS+jlXWLDGmrbq66OCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFMppcEWGc0k6iuGZ +TvHikjjyf0UYMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIxAJnQmCqeG7ibKhgQztdl3q/vyET+VvVf +EZZFadCznGTCkMKWrNocqSSs8sH2HKGaWwIwHf4mh5VrDTwDNBRLhas5tn3UUlEP +pfZ6pk2SDIX0+G4uuPr0//Q5u/IXzub6IA2D +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 003 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRjCCAs2gAwIBAgIER3V5aDAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTQxMTI0MTU0OTQ3WhcNMzQxMTI0MTU0OTQ3WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDAzMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAECjK/9FKtsbnyopQGwokCmiJARyiyr4/G9Lthttr86gWbZ3MQsQ5V +w+Api4ZrS01BO1F54Qc3aI2Ji3yPEE2U0qOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFFVd72wz+DBEi62s +/+yx03ut8eeGMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDZwAwZAIwZ9HqVEOTXAk1RGCLWk0aLfppEwQk2/VP +AuQumUi48hbpfK41ZjB3IYoS9lgfEC+QAjAvWrLXq1v7rIm8Pcf6iZ+rlI72d/39 +q4sIXNmXHqUWrIegp+usDAGjAYDpBffEbow= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 004 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIEfqIJfTAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTQxMTI0MTU1MDE1WhcNMzQxMTI0MTU1MDE1WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDA0MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEU4vVtCu+sc2VldUl0QToWhbfRiAhumb2S3Seqm1P56agXPJsXw2h +ssA8ic0Jw7h1bGpM6+EzNBesTpGksBYuLqOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFL1sacB1nqqV3W0V +bqZBcMS5s2x4MA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIwTJ3astNZ2hyRMPG3RO1BeKieoANrv0jr +n5GONNPGZ11mVZYgFVSiheBZ9xqOFMvZAjEA9Qk+Dwmei1FuY/ztnGeRLw7bJ7lo +u+rdhyvlzIO6aI8x5wgJsbcX6ST5QEncz99t +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 005 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIENc6ZkjAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTQxMTI0MTU1MDQwWhcNMzQxMTI0MTU1MDQwWjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDA1MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEucLf6j2YEKqnWByXqcHECwNKzEDMtriPScrXaP/5G6qeJgzYgIFI +9kXeaTRa8uGsyYnqhIqkjQx7CKoOJM42KKOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFBvWRfwfkIJ8KD5s +tSaFn/qw4MYrMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIxAMTfYD1Y7mRiquCTRLMhkfYVUEeuGpW/ +fYwVZP6rZVTbPCC7Ak2c+GS7mdanU4NfMQIwTqjSj8HxgtidkhOGXh5vIfdOZKN2 +uAgvKaFoMewKrB9HWqL2fxyfw6ThGAF/f7Wt +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 006 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIEbPsppzAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTQxMTI0MTU1MTA2WhcNMzQxMTI0MTU1MTA2WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDA2MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAElzqNqZ2XgsaL6hZirvgHr+E0Xaif1BlI5t3fNAWVGzUAKHhIpja3 +7AobOMWvUxYj+OYs1Dt/LP3TNq8o4pz7iKOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFLLTzAgUTFCAjCid +EZYnR5v/wOSjMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIxAKp47gU65/w36GmA0STe4eJXcfHuzkza +LPin+gTJBhHvNDUB139tfHQxB81Hw3AZyAIwc7kOzw5qr+EntqPlWBZciXrx5ISo +2OQeQiNkjI5t8ng22+VQQvgU3GyOh2On7WwH +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 007 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRjCCAs2gAwIBAgIEEoDZ5jAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTUwNDIwMTUzMTQzWhcNMzUwNDIwMTUzMTQzWjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDA3MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAE17ITpvjV5tEaD/9X83lNW7dkEv2ynWmXk6kxUF9yWbuwWzdogpOK +ZXOLaVEGPIiwu+MyrfEuccgkkw1c0KEhhaOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFPZcKJs9k7ePl4rI +0Be3lH2pNjelMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDZwAwZAIwMAhAKzoKbb0YB48gUSLnxJ5BKHi/9Vor +h/8XCYbdY8mOREGD2iH+le0Il5CDPp4vAjBfsnbHqpTsXWCUhv8mHVwojbm3e6P1 +xsp/k8Cil24vmrfNN7tJOqwiB3U3L7Pn9ms= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 008 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIESa1p+zAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTUwNDIwMTUzNDQ3WhcNMzUwNDIwMTUzNDQ3WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDA4MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEsOw61JbODkPWdM7hSgj9RowIrGVhP0sieh4HWgP9FlMMKoyKSYwR +jxr0/xoIYzWdJ5gwnQSNtRj8CU1V4zFXTKOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFJUyFTuqnXRILSdb +Gj5HUwnTz+UHMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIwDb+D8PxfcmwLrjzU7ujv+tugIXiUeYUN +YVYcmKsQ1Z/dKb1KpKgsVX2s6MMjtymAAjEA21sgUQ5ftsXQRL3kIRK+wymyBSAw +4J20zn3eeUf9sqDnE9t+iiF7UNxuRdNSm6D2 +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 009 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIEFLjKeTAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTUwODI3MTIzMTQ2WhcNMzUwODI3MTIzMTQ2WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDA5MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEYVkDEvkG3vXJQKrfnkPXndhKFO04BTQu2srPbx4fbdBxjQlZ5Oaj +cqugXAJy1z4zkO6mQJMQgcEczvRfgMb6eKOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFJK7UcuXkAxM41C+ +L0qy0qW/ZF05MA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIxANij6ey5HFMcpP6155Bx4TEzlqoM2xOp +C21B4/BQDpysARH4cqtDzNtz3r6bUjvv/QIwf4vgrStUGjOO2bMWfvkK2y9fLj5S +WDq8vuIRd1L5/XdeJDuGIumbItoXs0s6u0wb +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 010 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIES+VajjAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTUwODI3MTIzMjEzWhcNMzUwODI3MTIzMjEzWjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDEwMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEmNM2OAm+Z8nWW8uHW1r2td77f6n1J6nQt8tT4PG6nx/PInVVpo5z +CB0wlYJhZT/bwWM5fgaYBe/KsruY7tUea6OCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFB/N+47OQIZ12WPl +5RCNVcmE3Xl6MA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIwQm072iAm/wOXnhC0Zn632aUqJZESMNfy +/iA9jmpWqfiDq3mpIni+nYz8FJ0E5qM2AjEAtFT6U066B4jGvuK2uMDcP8IHxSle +pjHLOVkOV0MoZ6CkK4enQu8p0qn1PqNOqSGT +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 011 +============================================ +-----BEGIN CERTIFICATE----- +MIIDSDCCAs2gAwIBAgIEAxHqozAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTUwODI3MTIzMjM5WhcNMzUwODI3MTIzMjM5WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDExMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEEFSwmnoHF+cFvvzNGm8WrWz7Dja7KFVsiSYeZzE9Svn9AduLqbfC +hhlUF/JntiuWgn5LK6Z3ITHPEg9DgCa/3KOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFJF3PLhoJOHBlUnt +isEz3ManNpuFMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaQAwZgIxAPjxzTlhPxleoQE9IGaEXWP5w4OjC+Zw +2aaSk+f46h8O4FZK3Csf1XzIoa0tLG4O3wIxALssqv1PeM0rotzWRTjTF4cJ9GfX +TvSHONnkZyiiOxMJGgjPmW6fRZshWROK7eU7uw== +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 012 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIEKJea4jAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTYwNTExMTM1NzAyWhcNMzYwNTExMTM1NzAyWjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDEyMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEYqL3MCTPWnY/zRKxE7mVU99FeoZcWXoSt8cCN/Wf4nT14/izfULM +RGhiOnjCBt5BTrh0yuTEY1FGd7IZJjoho6OCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFFUu4WTtyGmy9qNe +7aKEUSlLH318MA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIwURIrS2Egg8/ch3NyXxNRRCTqjhB0z/kt +xo2HcYZGQqQrntZG1jG5Qe/GkVW/H5iEAjEAswUat1IN7i9Qv4S7Gpwx2diuBEdG +PWwHsN8it9wublUnSNbcXp/mGEeHajzmoLod +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 013 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRjCCAs2gAwIBAgIEX8Qq9zAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTYwNTExMTM1NzU5WhcNMzYwNTExMTM1NzU5WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDEzMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEZ0AYmyso6QQUfTUmJWYCfc/ULgPC1zZaJlFefWAJd5VWnWYS1HTL +433jR7E78yiyQqMayx6CWsv5epCYl5ktiaOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFAHZJmCgGreK3A5x +tI4ygAWIO6aMMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDZwAwZAIwVNWonYIAladCUPYQ125cbghpnX2w0t6/ +tLCSG2ukE/KqNlsrVu65SW/y5FMOsswgAjA1tGjUM1xjQp5/KVL1dLyECwppV7E4 +PH0DE2uw15liowUsMS0XO/2NrguI9HLg0FE= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 016 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIEc6L7YDAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTYwODAyMTM1NDUzWhcNMzYwODAyMTM1NDUzWjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDE2MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAE3w3hoSHbvd9mTyx88k62+eX6ff7Uz4XnTkQhtzQDyJ/cQu6dDqm5 +xgcZOV0rslfUo4lwAlC0cuXTBA9kohXD6aOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFGNTWbC3f9X8QSDL +xSCwlXWKkiIHMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIwcvlWT1oNXG1c2ybwZ+sTxCBudlDQkW45 +MJIWQKtX/rAJ4/vDrL4aRJZ1VaGTSBrnAjEAr1QOmvVFkRqUlFkAn6uwE20RZHai +mFOa+uAUNoQxKtCDoBYCug6SsqAAkEbe9olr +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 017 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRjCCAs2gAwIBAgIEKs+LdTAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTYwODAyMTM1NTE3WhcNMzYwODAyMTM1NTE3WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDE3MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEmpQH+8nM1cCHRoJAIv8FpdSBLYK/C7OTbBkYSATJv7wFglopOUz1 +Bv5ZY3/szKKagWJ5vR0d4YHcbUg37d6O8qOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFF6n6KrNLG9YR3RK +6WDBp49Gb93fMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDZwAwZAIwUU/5Zgx58MLFnvIqWGFxF6//7TyLkrpE +wybMDhR5AIKnb6oWGVcOAXu1nJOtb/tDAjBvDwcl/Cca6jjGrCGQsKXirjrKyE7z +FPgVny9iHdFzqpXFfZjDCcbAxMoxSJbQr80= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 018 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIEYfwbijAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTYwODAyMTM1NTM3WhcNMzYwODAyMTM1NTM3WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDE4MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAELhEPzcyxRpTxZX6UO5SbBknnpFtvZrftZhyZQ7JMDl3TznGsye1J +xa8PgI0az8Kc5XpS1fI6ERfzyN7zbdE01KOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFI/SdpH2FM8T5Yk1 +mmg/9CJK1kCIMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIwQ+HTwWourWY9A4TLPLNUlR2TXO4OAPat +qF5EWVzSi98czvfnF4wSpjGIqJZ9gaqeAjEAzJnP2ZWr0v+QXXTuOQpAOE5Rt2lm +DODb/RTpm4cp6AOEscy69nThOxhdoNrBzZA/ +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 019 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRjCCAs2gAwIBAgIEGSirnzAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTYwODAyMTM1NjA2WhcNMzYwODAyMTM1NjA2WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDE5MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEO4lkvFv9iH2hQVjcln1pixkf5G3FRlILgoEwz/SgvgS7RoIt6IwB +bG4U/x0v7i71TWtBoHhlUdbOHFRhraXqi6OCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFNYVpU0in5zGEpIR +yO027m4xvBCAMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDZwAwZAIwSwLaf9295b5HxZCdSU0FyU9m4wSeWuLg +gSOT/I3ISIHo/5qwjCVmxKcwBQ/iKkMQAjBGSEOPbWmJAmoNug4po/+A5j8ABgWy +gzzyzCilbc6CQYtQ6vX5rMu8tVMzSK/CR2w= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 020 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIECbm8XDAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTcwMzIxMTMzODAyWhcNMzcwMzIxMTMzODAyWjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDIwMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEzKTn7nVzQe2AdMdg9qxZz0QL++TGcgA/rjBVvMW0eERlPkZqXpeH +8gfBbEJsh9+Gbbi5A/bCw8V1uIG5xdm2MaOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFAqMF3ZmfO6YhXaN +rEAeAguYV2FjMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIwb+IGlAhFgotHys/m+6SWE3nrkq3TF8BB +GR+RVTwR3BNQ2qiEy3rwrlihQ1hochslAjEAplp51dndKI84th82A/ec/PpXy7Q8 +YWg/t8ZPq6EnSDiVAD1ba8JA6fbjk78i8ZOU +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 022 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIEeBLchjAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTcwMzIxMTMzOTA3WhcNMzcwMzIxMTMzOTA3WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDIyMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEt+5SPdxvaWHAUKuv0gtia7dbIQSaVslB3aqHkzhfS1930P+FZCmp +TVbIxXkDTza+Wwtrofi6Iv+NCnQBslJu/qOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFIzH4wB9wx8/J0OF +yzCHkzmb1p0bMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIxAJPeOMJc0a3JD0BHPbLphFHMXlz8cd57 +5aE1sFnU3DYSkasKcZLs/UCJNpPJ44jR/wIwJ0gbuL+rSQ6DsBkJZvByyIQ2bwI0 +3InIj4rhlXOCqCcsgSQ93oE+Z4v7rTPjm9HI +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 023 +============================================ +-----BEGIN CERTIFICATE----- +MIIDSDCCAs2gAwIBAgIELz9smzAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTcwMzIxMTMzOTQxWhcNMzcwMzIxMTMzOTQxWjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDIzMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEChCyxDkQ5gqPnb0rxjHC0J1CVYS5EoD3N5hYibRO9Cz7zY1rTmId +99hqLReSGwp1MTF33puR7iMhl9J9mooMKqOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFJVGDFA8bnCROXQ2 +IJWDYLUZLDDaMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaQAwZgIxAN0sm9rM09N7nls64JUNt+oZw5+LbGj5 +kMQtv5eCeTf48+shuxg5bLo8exVvo+HfwAIxAL00c3Q2+HZdaVxxwJ8xTHHYh0sq +SFxF7Klf6Xm3YdUaD7Gv6zZnenuvmBnXanlP2w== +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 024 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIEZmv8sDAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTcwMzIxMTM0MDEwWhcNMzcwMzIxMTM0MDEwWjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDI0MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAE3N2ifVI147v9Ob45NgYIOx/AVYtiNlBOeqdgHDkvrGakG07xLo9+ +oqgeT5URbs1nF4DXcELHdhabJczZHg91saOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFG385NAcN8MLrEer +yKoLzgWn5FfgMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIxAI+jH78HK81/l3Y/UlTkTVQ3qedvSvLo +CgzouT4rtQwso6ELJGmWGGHpy3YG+4ervAIwWo9A62/8RApgHP07d36EQigY6oA6 +NvjGTKw4gU32QFtpjFbzX8tTOktmTLBY0aI8 +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 025 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRjCCAs2gAwIBAgIEHZiMxTAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTcwMzIxMTM0MDQ1WhcNMzcwMzIxMTM0MDQ1WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDI1MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEmWe4heeMd71Kv8KyxqFCuDLpJHA0CKCHUlfY6tF397N/sdcH1MMy +aVOgZSpldr53EvBhbQVbtXePZCQTBb2Cs6OCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFJwktsi2Ra81b1Z5 +yUgrZfDmlojIMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDZwAwZAIwfT6ZwuMZXp5wMpxVI4Pjoe2xH/K+3KQy +RhJ1RYo8/twdYXbIEiBOqkIBOVuhGjwkAjA1KEquyQEil6Wx110ha5Wr8sZsLngZ +2HZdQT0jmZw/iWhTfBbenRatzXyT9Cnt+ik= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 026 +============================================ +-----BEGIN CERTIFICATE----- +MIIDSDCCAs2gAwIBAgIEVMUc2jAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTcwMzIxMTM0MTExWhcNMzcwMzIxMTM0MTExWjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDI2MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAE0g4Rom+SJ6wArAW94cN2OL2dg+o5OOV7aYODJHeY85wESoc0+CQn +0cBGfusJg5GWWK33yD4ac/V1RqZdv/MD26OCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFDHFzkyTLGGOORqE +IP5exrRxRr+LMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaQAwZgIxAIVABxnsbmjgjJlpst+VaZJnp6kS4pTs +i+pBos+G7VbzjF6LsxuR7sfcWdmmYLc1NQIxAMZO6aXxyo1KO4PFzMbxsc423C4S +1qExK809xBth2b5TauKDHffiZ0lyJCtkv3ckVg== +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 029 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRjCCAs2gAwIBAgIEQx49BDAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTcwODIxMTI0OTIxWhcNMzcwODIxMTI0OTIxWjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDI5MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEMuIACikHeix/6rU9HfN1T30Jqz6IGYJkYmdPkEwArIvkMeiKjQ9x +njQJy6DIikRlRpeZmqBwUP/IyFRCfvWAbaOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFO9r2jKd8yLAZa4P +2boDZkXAewMBMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDZwAwZAIwN/s6YRS0ZSKi+u4fNqhAbmmOWg24Arx9 +2EmbIMREUQTT6UIlImq3L9vmt0iSqrAnAjA5aP5J8Ww10Vba3Xji19Bd/NADTkgV +QT8M1T+suR1/MFXMFnTcx1jPDcO1HWS400Y= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 030 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRjCCAs2gAwIBAgIEekrNGTAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTcwODIxMTI1NDA1WhcNMzcwODIxMTI1NDA1WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDMwMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEviCrDW4/G6BBhxd9PCEOG//OXL+NeAV5DrbZiY/Jik5dl0pVMwxN +7PAv1y2vcN0e2i7a6VGAUDT0y1PxlKQzAqOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFCWeXLxPA08cre+c +4+SONC4kt2ksMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDZwAwZAIwYld+v8sE8M93lCm+M06LCGHi9E+6YvpM +Ol4NzEq6VPBm2xKqmdPx12iqmPANWXdTAjB5BB7H3aSXuvidxNlf3y7SaamV5Dps +Rt1C2treh4G5OgNU2ds/ChZHVpAY4YlfMHE= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 033 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIEMXddLjAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTcwODIxMTI1NDQ0WhcNMzcwODIxMTI1NDQ0WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDMzMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEjnIhe+AWszJCCSgIp33E7JZxztqFUldI1lIkVaPGFQSv4aIeEnh2 +s0a2yJqE8b0OA0Ory8Fheh++Lb/QvxjOPqOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFBAyeHmv8qcFQOBf +VQOeMYVIviWPMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIxAJ9HvAUP5vwRJuB5J8UX4ppHsESLIscO +sRka1R26MO4gOQhmhMd3132/K3gm0ixR+wIwaXGX3eeO6Wx/QFhFO/rZghw+kUJK +Lmzsz1G44uDv1ZEuueBGDX97Vpons8TRxTiz +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 034 +============================================ +-----BEGIN CERTIFICATE----- +MIIDSDCCAs2gAwIBAgIEaKPtQzAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTcwODIxMTI1NTExWhcNMzcwODIxMTI1NTExWjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDM0MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAELEOSkTcpnmdVWp+UfC8XpkEujQrVpQuOkUdaxJx4YVILBxH6euHq +AZSo9NMfvNHTa5QLOm1m3DQJLaxWVf9Jx6OCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFGSdpbdhn73Tltnw +6G21cW68rnecMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaQAwZgIxAJ5nBp67z9ZhR/+xAd8QMJOiQ2byRVyc +uxlRkC1+551Z/pzddQz54IXOkrcxjhPk8gIxAN86bh1QpCun7fYzrxCnxkWrroA/ +RVwrwKHbtmu/YgUlqEN0WKuDeIwO77aY9SKEqg== +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) ECC Manufacturing CA 035 +============================================ +-----BEGIN CERTIFICATE----- +MIIDRzCCAs2gAwIBAgIEH9B9WDAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTcwODIxMTI1NTM3WhcNMzcwODIxMTI1NTM3WjCBgzELMAkG +A1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEaMBgG +A1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9QVElH +QShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDM1MFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEInKYHLxvJcrYn88LkUlsw5qxb/tZt6IPodtzwxqHxrpDIjlEPqrU +ysq13/gQ0gZQMRJX6YaiE6jghmvPJDFYkqOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhRWNj +Um9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0OBBYEFDZZjyLshMPE9kDS +HBZ9C5ETe5CkMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVj +Y1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+StEwEAYDVR0lBAkwBwYF +Z4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIwAmzO1C8gimZcFnV6K0wvtdlajkNiw+1y +9x3J3i547hvGvoaCKm9nTkcaxcS1FiSlAjEAu/p9+RJKhGUzLm7nMXf1YqvKkC7G +0vjwKQEotnxRWvGvD+m3PV7sJvyrYBDVDVMP +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 000 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEVuRoqzANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTMwNzI5MDgxMTQwWhcNMzMwNzI5MDgxMTQwWjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDAwMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAlT0/sSQRTPxm2js3OayWqzZQZGyyV256pCKJZbJg +YHyLzOjlwZvenaexI4pPn8aetl2v01onsFSqsoAD37UW2FtfX34PM1FAtL6MYLpZ +p4/B2/8CHlXi3fPND3fBfRaMCHNy2JbTWB9dUaaAHjSL7DlODYMeWr594/wbfDex +/x1b2A0HeKFgqIapT0uYo6MLFtQOtdRdyf0ocqzC6wJrHXA87xZilKpwuGmG+hBM +J/Eugkk3rZLSWFGVx7qvaK1Y7purnMXG+/bkByRpkWJPbH8E867DDrMNm8ySh0xd +7ugx3h+BME3Jxap8vNzmA74oHlluCTnIcYulNQ6io4jTwwIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUaRRqw8+zZlx654EBzKXBQlXKK8gwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAnKGIqDQFYlDi +zCPtIUq4pYBpqrlIGCIK3Cfcfbgc7HOpoT28MpifZf0SjhdiXNv0s3ur51thnsSj +t1M0M7OB1LP58crCDPMAJHfafHlEUCTkWf9PD578YIYepXpHXvXJJGlejK49r3V/ +HTdNK1E6xhrGQtUHwaf2f+fT0BnU5k+cdtOn5SG76N5Wp/wBXROTWX9uAdxPgN+y +k+u20FCs0ON6dnnp2dMyEADBn3zBgHqGLya5om3ZKi3skrE9ZOF/P1y/SXvsXcbw +DRLmptvuKiYg++qJhxA3bErHfvpo2unuq1JoZsDO98CBl0lql6beq2JNBYemVWis +7P5YBSJ7oKPb8/5suGHn5gYlJ6UfcsHmc9Qqki/XbYQPjGXsqtlf9cnCimrudGOM +ztvIXq7a4H5Khim029p0Rifobmu7ZbjvrQ9vxtZDhDN6SqQGiZhsi0jT5BisjAY6 +XMfXIFmItwL8GEFEN2A04v6AgQfBIVR/y7+paINQdgNZ6s/utLVXRVjvFOQOBl65 +8rw6k+uZMMC5LkSTYqFXrRoDKIZMpKEZcPsHPE3LHzQBd+EWGAiTOHPVatBIigal +V1MtHOpUvpvinwXj36KTN52OpvoEQAd4ixW9BWSL/dXO1BO/HnXC4AvGc7EAVuL5 +dlqgUo825Gqt5BBm3OOlwVTVY/saBEs= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 001 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEDhD4wDANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTMwNzI5MDgxMzM2WhcNMzMwNzI5MDgxMzM2WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDAxMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA06qoUKCYkWAXMEtP7vwjNwiEYY+imalziY9q5z39 +6UlJ1AUE8+gsxDBTxeZzKgsDW8z+5Io7UpPDLLNTVuQtqZDsjBfWh1iH4FcQm1yt +trS2O4H5untO9HUX9uGHZpTsxYtTeriTfENnLRswenTd2GJ/NOpl7WW+YJCFpvBl +Q9F0PHF/NWZrh+8j+fFJ0p2+VRt0E1I2O6v6nM5FIK77G1rXCvl2I5tmLs3GS9hj +REI3wc/6sI8Uu+m7i1XyMAkQ3m2TYugoBzDuMVDbP9sZcAQSVyJeqciGLvcNAk3N +Y1IAnqo2r9u2fh6OWAm4dcg6Mf8s9jEHIwHr+OBKZf5wTwIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUyIx1+wYnC/fqEkT7nCXf0gm3q80wDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEALF/p3utcdpkn +Biu8nz7o8+n9/v2F70cdeecEzJL3YmZiapbmeoas7Xj1bcZmlyu++ta2v28x9vwZ +RmZjwqVI3VcsEGXnYqATSLWUHO/cNI8U20JE/xeXhOV36ZnTjewBJyZGcX+J1J67 +X9GkbkwTOvewhJ9PA6oI/uXY8OQ43PRSZZHExA3TtnucculgBhBGJNOClM5PfLuf +G3WwaJE8ejM7DeN8RSmw5bpauMbUw5J0/NtdDAWB25uIokKzQS7UULVTRSkSqPj0 +/YV66sFOc6i7lGfYYcxX1xlL7xegW87IuxdQWe5dY8CzCLC6t5jWKzMdNBz5tKTa +tX73GVIcX8Wtha4VmZ1woftjYIz7oZ4NY3FWPxYxlNGrzXj775jnxKipuXFiB8ao +p2SEnEuYh1vtUqMnH35xzHLVQh1magAT57H+eKCx3dZ4y8/bcksf5uAjrHBizv3w +T/udd1PLuJ4zEtfXTCaMV6yeShI9FAo1ewODDPOx+ZuCn4Iov3l7IkXViVuCTWlr +ZJb6CShnCtzcf0hsfXVgKJbYOY3MxIpYu80H6+Qk1A62COCecpABigCQqwjtvJFt +8lL0AJ7lo0nZwSSBjBQecrZ/E7bM1VxCGd/HcZbKBzx4Pn+Sla8eXNBxD4TNBTjJ +adInH2PBaVZwyNKiMuadenzOrWg0k4w= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 002 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEfGoY6jANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTMxMDA3MDgwNDA3WhcNMzMxMDA3MDgwNDA3WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDAyMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAs3ScABjzini2dUqiGn+i2EnipmaMJz9zKhe5qXvA +yh1kp0ekrVYr89lRq3jmIeOdwDD+3Ax77ANLHRdCHFIhpsMzHvltU736unNfmO5A +hAAxcXNwEi+u7IxyPM2sqcjPm2aCqJoiph9n2rIOs6OJD9NbV2msdxsG4on/2E9U +HHv+PgHcg6OqqMotfoI2XYr9WYWXgl/tprE4CcpM13fWvZ0RRyHNexlTg31s+PJ6 +bXbdf2w3OaIspSBi8EB4JtwKbhhjW6CHvnq3xM/05Sj7rORMGc9lXa90JuzjAxtH +Rzi2DbRRApiQHP8DCUtCRQH1vXwq5OUyJVVVGaDgsAyUJwIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUwu9kHDKcsKny6uBL+xDJm4nDRhQwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAse5qdigWczhx +JcahxsbuWzOzlMNRPo42zkQmENnaNkBaCIWFqRU82REljuN+yU/cLud01sKN0KqU +UtyeTDnOdNSWPBCR0VfXgxor68np90bGplJmhFOAahUM9yFdIzGfu/Akzielohnr +PCRwlvCcCVlvuN+9uoFd/vOiINR00Esn9/ITpDMHgGIW+dIvoDCm3Guu9Q9RbPso +C46fPPN7lfEW7BzxM+bSqA2xR7NrTJ9HFMVx0FgM7Dx3amfL9cBUi2uZwSmwDtCL +AMjqDUiu1Lizyzvl/v4LxpK4ZfJQlbVZrKRcW9UuyWYOGgegkMJTSdNOZ2cDFOxz +T1m9SC4yFNoPGgO6vAufuH3v8BDBIwAvc+V0zf1L5XKiDvXjU2vgqcusnloy8LQI +ExhZnLo5Fri4IdjJrlCFSysgEdwLB2V9N11goxZaknPsqg1+MNJqrbFv5BBPaawo +ZxxgRKlT+a2axFQc3+jA3sC3zDZrBTZeH7CK4MPndBYSrsU5edE6ylripaUivNCB +TQ9cBHo8l7I+7neSl1V9U7g2OXtUKE1CclYfKCeduRfjXGUXStI3t64Mmt5XqREh +WExC6lv3UTGYrd0+WYYWc34ebQPTd+73OA5L91L0FE29FZkUUlfpokXxvCNRy7Ma +AwywUAgHORd6y2cYsNa9WCzeBE9Vxcw= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 003 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEasM5FDANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTQxMTI0MTUzNzE2WhcNMzQxMTI0MTUzNzE2WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDAzMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAuUD5SLLVYRmuxDjT3cWQbRTywTWUVFE3EupJQZjJ +9mvFc2KcjpQv6rpdaT4JC33P1M9iJgrHwYO0AZlGl2FcFpSNkc/3CWoMTT9rOdwS +/MxlNSkxwTz6IAYUYh7+pd7T49NpRRGZ1dOMfyOxWgA4C0g3EP/ciIvA2cCZ95Hf +ARD9NhuG2DAEYGNRSHY2d/Oxu+7ytzkGFFj0h1jnvGNJpWNCf3CG8aNc5gJAduMr +WcaMHb+6fWEysg++F2FLav813+/61FqvSrUMsQg0lpE16KBA5QC2Wcr/kLZGVVGc +uALtgJ/bnd8XgEv7W8WG+jyblUe+hkZWmxYluHS3yJeRbwIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUQLhoK40YRQorBoSdm1zZb0zd9L4wDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAeUzrsGq3oQOT +mF7g71TtMMndwPxgZvaB4bAc7dNettn5Yc1usikERfvJu4/iBs/Tdl6z6TokO+6V +JuBb6PDV7f5MFfffeThraPCTeDcyYBzQRGnoCxc8Kf81ZJT04ef8CQkkfuZHW1pO ++HHM1ZfFfNdNTay1h83x1lg1U0KnlmJ5KCVFiB94owr9t5cUoiSbAsPcpqCrWczo +Rsg1aTpokwI8Y45lqgt0SxEmQw2PIAEjHG2GQcLBDeI0c7cK5OMEjSMXStJHmNbp +u4RHXzd+47nCD2kGV8Bx5QnK8qDVAFAe/UTDQi5mTtDFRL36Nns7jz8USemu+bw9 +l24PN73rKcB2wNF2/oFTLPHkdYfTKYGXG1g2ZkDcTAENSOq3fcTfAuyHQozBwYHG +GGyyPHy6KvLkqMQuqeDv0QxGOtE+6cedFMP2D9bMaujR389mSm7DE6YyNQClRW7w +J1+rNYuN2vErvB96ir1zljXq0yMxrm5nTeiAT4p5eoFqoeSYDbFljt/f+PebREiO +nJIy4fdvKlHAf70gPdYpYipc4oTZxLeWjDQxRFFBDFrnLdlPSg6zSL2Q3ANAEI3y +MtHaEaU0wbaBvezyzMUHI5nLnYFL+QRP4N2OFNI/ejBaEpmIXzf6+/eF40MNLHuR +9/B93Q+hpw8O6XZ7qx697I+5+smLlPQ= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 004 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEIe/JKTANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTQxMTI0MTUzOTE2WhcNMzQxMTI0MTUzOTE2WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDA0MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAhFAEamE+AGtKlpCDU1ILU3NUVjkrU2MiD+RcYM44 +/+t6Ho90lVLIarwpjUC9E6skZDwSfjDFv1yR+xJ6nnfK05PX6CcW4I6xIYsPLESQ +Pe988Ug9FoTvqgQ/yy+5Ru16xFNWWCCF1KgMwyxgaX2hnkUU7aOIVPD1pHS/17TN +6F2zl46OL8qX9z9yHi+DRtjWZrQhQQ6lvi+hU+fgtFKGUUdZL/jyZXALVMvTt9hO +o7HPJDbzAIfCY5TZQByTbUwN+61twPw3m8QzNI79GlDDewD2nVzomDJUvV02Dbrb +e+NiLnZ/jZcHzWmF0ERqXM/sNnsWxSx7ECQV9mb4LPscCwIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUJjt0TYVBK65uE+lKU8I1GFuk7uwwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEANY49i1/+6S9J +VS/yaHfxn49uVFMwJNeM7Ez6sANMxZ6UlSW5tz1xcwBo9ysViyt9W45MmKbXz0jz +HQBTuq3jq+aDjYJAtpvlQoqARSa0P6hXPMYXXLas7z/DwUeWomV+iYczG067Swsh +jQ4WKtg3o4f82Zmd39oJpYgIbJJPC7KyaNuDionRw5fiVfgEPRmUsB1jQGWz/d/r +YWjFU6zr6kqrVoostGls6PXxfyYcw9iiMsHWgsekyW3q+4mDRSaLJMyixw1Vwfy0 +TmYjrwg6hi9+JrIJpnFCb8aCjZvZ0JZj+tWgjGnmw0acej2SEFItMBz0UHQNXn0j +BLVYfu9RwulqFWd52pumJVHECoDEQn93MdzippYAqEE9kaEl5wt8cd+9uRCcBuy2 +OPleKXWvuYEEjqH7SbBxHiZuqdHZvFkfRdSNc1dW7sKE6N4UZ+b8+UoCha2pUzE2 +yYeE3dkv/E1K+6uq38Fe42Iz22hlZrEeA3aGrHopOFvUY2MOM8ksdDBwQZ5YzBQ4 +HcD5RHrvsYUbkcPnnVVkN+M8IKJ+6LVowx3EG+ytzVixHrSVJ91ooG9ocD2vxZAU +bY8gLugWaRbOZkgYaHTj4Rjq3ZxuEPXEDKrSm7nUgMMlq5BDYhVzBWXrJtyYIv37 +QHaD0AfWGx+CiPbtXWmvkhC+QLzYnWI= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 005 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEWRxZPjANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTQxMTI0MTUzOTUyWhcNMzQxMTI0MTUzOTUyWjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDA1MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAlfxzOag9lbqDszEJONeUFuI7i0ai6knYlGyaiAiV +kxT3dQ1RNIkypxayrZsJ7kosQ2AtS88YzQUpkq6iBqANkyH6HedXtZg5pnKYUrt5 +alIcTxb5SQi6swokkBuDS+FzW+/e7tw/GwhGW5mbaCAVTE0KB/efe5RGkbpBZULA +Q5BIIAJdwylGq/BjPBLElNa5L4WLbKHsErG1TXKjG3Jx0PcSIpXNxe+QOv8wfT8A +IfEtlaW5kroKplO/dd95gCDpGrYmKI2jEq0h7YR/HBzNFnB41v/QHmUYmOp9Ko66 +6BnnP5lEnK4WdGmceX+nQX9uoXkQQxvKrUbDqvcZB3/tjwIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUKf5pYw6FOkzTV1+EOSqb7S1+jKIwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEABvP9TBP5I3mE +N3kx0NJVf1ugDWLV9mWzwC1sM6pTH1i7V6GvD0tMFi6hCnwug4DUZV6wCObys2aY +Nhp7kAqSs6vzBZ9tFMdoiXX8ozqCx1SojgPDqXdrBsjY/v8COBKfDuKuVY2SlmgB +oE7msFFTIhm27SqPS7o/u2oyQCvIVjMt6uzmZ1lVIxtjCDDb3Ps1Xwp0g2BAJr2y +/2EJB5WnRU1FG0rjG+GXMMWxRMZb6UUFfOuWdouemHBfvZqesAVDBRqd5HYX9xKG +6Abl4YxcvJUYSPwwhA1ysxPnWLQmtJW9vtLfuaoPadDETwmZdPz69eS+5MfVmVNi +es338/AygwibpA2g4ym0le0nTKyPSJDkDHtjdQKQLxKBCZNQMzuzn5FdjuU9Tmpx +97tNEgYbKcjQ1oOD0Eji4ik3EVRulb8XvY8DD7SXzntHTRHfmWR52AQuX06GhvfW +3ENiCQPtgro9js8snOD2CCvKOp1eW4eT6/t/5/Pa0YcbvcBBzJ5Uk+QetayjNh3x +ojTmNVFyXnL8iht5S5Mh2f42RPhMpN+lNBQrNx63rL9IRuC7fP5MWH0IZl0ngvW9 +0tcSInFqdw7ubtey6O2DeeYQZs5up3hc2DISnHohypgSW1gqksL2oG4mF/FJO6io +h42jrWytzG9zPXJ0y8aviHaqDgz7qJQ= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 006 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEEEjpUzANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTQxMTI0MTU0MDI1WhcNMzQxMTI0MTU0MDI1WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDA2MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAkjXzEvxdokqQEvdnL7mssJ8fIkBYIleYHjYpCYMy +zQGzKXjA8G81A4tj6zTIq8hfECnM4cafDoJw/RypvbIpdBBleCbZpm5CYUKLB4zY +af0ru5KQQaQwDzYaDLA466l394s9r4/htNp6FETMAsuUOmefFfiyfe/p8zeOB4Wa +I2RegtRfqZw4P6v7zoyHSLq7z44BFwuQb6Jq1MnU04NT49dpAGabvOIycJPWsvlh +g3wnSWtapO37dYZxYkUdRmL/ihp49d3QBYlvUnZCVQeFEA+X/w56LANtMJH/8DQx +GrdMnN78Tw1+yjoqmw9rlr0qnehgi5bBPnz1WB5rbER/4QIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUx+4dnPaikaBuT1uIzrJcruEvgnswDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAP6rKaBGv9Avo +kjEZvDyBgajuZhPcM3iD3AeBslUImSnxXPnlm2oyUPtEunriPU4Qmfon4QeDMvPS +2tig2GAokmDPmFZyBURaOpc1uDa8t5TEKyZqUo3sq1n/H5x4VBJ3wc7VzfUZ51Pw +N5sYqOftuI0R6VnlFeUgce4jbf8nMESmPUAFqxYkD6kq7g57UGQT/NaTFaUIugFX +L+8RxCXEhZYDQgWyQTQFlBB49xZMdqPbnMI08Np5gFVXeo4HigW6pZNohBDgt6cg +5OvOfPypE/kNKcWCZfihOHjdyrI/+FWgThvzcZYmLX1DYziNqdZOsyZushYAznxZ +rA6HuCh01vN9zGrbD8q+2Ht3CFCu9ffKcSqDRrc4xWulyysDcOW8vPeqTuAlF1H2 +s70iwEWFvMmxR943iBr/5TO2eg6gmZdbVSEkxKYnoU10MuAfajQdy/P7KK4Nhoe2 +W87h3NNgVickFfKIdiGFRHqbtVOxMEvfMpZtIAC18lP2sF5inSAiLtFRSkmUXLw0 +dV8GcCqaXwYgbmuDHgG8RlYXOEkknMtT6MOxU3ocQb90HTL8hnqEEVrVfwSvG1ra +hJqBE5i9RFD6tTeDl6Z4NNC9UpYXYK1sl7Kp3evFagl/y6TLspmjC1/zp03aZeaT +aHV9ERAp5P/XaY6KpbgdiqHas1gdAZY= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 007 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEJCe5vDANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTUwNDIwMTUyMzM2WhcNMzUwNDIwMTUyMzM2WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDA3MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAi3cytYnPPgOFX3dzERwxtvj7sJ7/ZwAySgvUc2+1 +kvPxHq0lxoaLNcDen0tMaUScEb8TkgRKK9HOOVwpMm8IzxTr4s3SFzk9dQVSouNt +qqArgagPVfvgAeGw/kzdQo42WWcUCdK5BSaymv8HQBIUR6d3zE1O5u/d1pWaYo9x +IsmLj/R1Q1kI7KcMF1LWkSfOUg+YpZO+qL+mKP7qy1fcf4OnqfdVr4j8dkchCp+D +j/aUksKlzrWoFFZH5AxsCZiu424A88kXHXevVtq3zZ8nZfaVt4FEgv3daEHaSzei +2z+i3ldMJsW3+5Xw68ApG2A4PZHsiRLWz0chJtH45fjIzQIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUnH31qRw9SbvnN41KuhL/jnii11wwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAoUK5UZA1P1Qq +QpAOAAlykC7E2+x8+rjfubRX9BYsZjOuMWtJA5pbtgl0vhDQd5lmrU6F6M6HXWil +xOEpJ0rtTgOvDRJNeaVzAsrtjFo97m/H2nAaBk1FlVOIn6fLip7fRuPwKG5m19E3 +F2DPC3sqltYH82YaSBItYFrOWbdy6XzE9l0CydMYKNbf33+KB6T+WqfrW0TWWlAP +AylyG4EN7yf+etW4QYbDOIJKPqecPkms2UbV6QWcDoVI1DaR+vOVvkaLcCRODTUz +j3ga9NTeFBE4w9BUEtngNMK+man7WwAPLt/nzt7/uv3hJPDUVTdFBJB+Di8Ike40 +m4xBrqp5xsHdaML6cTnjUukUZIuacIiLIj9B2I5j9Kh+YtVaxO23Fkqv000fv5BB +LQYBEle01vVm0enfuJawHKICzgGIIylfuK62utdgGNFkxSDVD1l7C5fo0vPwcU2Q +7j+RAg8n1UVwY5XTz4gnvz1qby9Lgw/h7jfqswEOgYa5It41cSzsRbJXajEvczPB +XXkeA6RMEtb0ewEjceWsqvxZ9IDWlEbahFWP8nHnXZwelcxLTWG3tDh6Pe9xPD0D +fKOBEw5vnCQtiHW+OIv+oC8bFAkDLe5dczckIbwzDdFhnh3j+opATirdjyTsmkpk +NF1yp4dtA/CQ7EONkPu75lLFxY3T0zA= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 008 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEW1RJ0TANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTUwNDIwMTUyNzUyWhcNMzUwNDIwMTUyNzUyWjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDA4MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAqmjZb/MgXagN1uQaLtroNt6Uy98SRsWsJSElrVk+ +ym9JSFuNzei0Whh8KjMO2OVAHbViZM8Rw4CxGnbTqlu5X5vjLWhx+7f9a/CsimKO +XAeU8cmjORRPAnqrg12Q4a5tKYL/dsiRoQTK/u2NZ/G7f7DMm0MtCuyUThV8SPSq +8oDZM7FXqmwF9WCLRfHitXAcAqoSrFpRSZ/rTmz9bil58NE+5MDB+cAwsD5SNXZN +Rc6Q4Ddr8PizwW/dk/vMZ6BAbS9bYUmwGdgdZ5yJ5s1hx5HqTvy9RVfG3dxuJX1z +vZjvalxBeCJoqEDPjXuwPd1okUwkvfXvwj0MzH2Jni/+hwIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQU7/7sXgFhAILA4xHL0HoyBECLMrgwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEABE1sRK9RYbpA +dPjCNiBd9SowEOhoQx9j48snWbcv6gMatcCtdggUTZUHpVB/K4uTjm6+Y9JX04Fe +YriXkS20UdbRz51Xx9ZZyTz/7UhISkpnAZ4nQ6wIqdOlN/Db+0q8i0jBnITPmw+C +21qjHccbWIsFcpPUsXWniG4/pUfnMhFBSu9z3uAGH5qAzbQvvtygAamvtUTTue7j +0fo8SOmrcmnHDXnEJdYjiIpxh56+rJncPaJq3xFUQnGz+Ml9fizQCgwuf5pU9hTK +n+MdZ6cqZVpD8RtJjyQAr2GcqvcJw834uiKpTyOC9qI+LM0fr0levkGDMUW2SYxm +LM3+vvfrUIp+jbaHYir4l3DUx5HTeFWsRjXdN6wn956FgKdjw+4cMltfqfVrIW+a +TLOn5ki9jBl3/ynKJcC31LDOlKI7i9IBHMOSrSFf8y8kH5KvNEKmbeRGSxNpvUYZ +HaGemroeVyXLDd8Ulfpw82EmOT7bZnPieSZRjnonBA6tv6nlvpvDLlQYbuFzpnNk +iFc+AXgUfrdGsUANzxbjYBxkWRS5Eu6fKUqA+F3Ii0IbVAdEqwOcrogKh6PgS514 +6gJ664llmx3m8tBsPPdzQUSUxKgcVcmwLkKJGeGTmV9SmcoCd8LWvZDDn2+zFugi +qStrGPW9mdEpSKtQxUVv6uLxVKV6uxw= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 009 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEbzMaOjANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTUwODI3MTIyNzM4WhcNMzUwODI3MTIyNzM4WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDA5MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAukUY4AlHEhX92oaJaEdagOpl1GD3SWZ4ukutrzpb +yw8Kbq2lqRFbx0WYePHlMNqe314wpXhtjMcJVG42RpZDCTOZxaFnsGThPrpLlTlN +e0SSIbek9oU8+a0KLet74Y9KTBF32SLv+6Kibt2POtLVOiVTdeZgOZ64jjb3DHQc +PSGNTWZ/OhIqXWRIr7pnuvqltEbftmFNB3kGoDNWLIawPqflN4mI+YZuv1xPz2M9 +ld+83l0LmpGoPbmgYwMhKFeVfYI6jiDPFEk+I//FrXo30GZ6wZUX10ox8aOa2UOS +I3XPNOBaYyOzKQZr2ed8jK9ySmyVAqkIkZoNx1xx2ORn6QIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUCQyq4YWKPDo7bU34l4kW+yBfypAwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEApUpo0VkZDFDK +gUU5fKY/Zb16IkTUb/IFt6T7epGB+mTv+lrg3RPWNYecWcMGFFYLSDnkeYQ4G7C6 +ubkneBiOq9PKEJpv8Eip/sID4JcLiV28NCpq8EqqC5FRygcAaPR/BtqP/Zje9sJL +8fjl9PryzfV7l41uTIxn8Gu2OMnqs/oTUdiHUcLYVTaBBolHhsJ22++Jfxvk32q3 +UiX5X6BDn5YXHrSSm89lsXk4P9fgLmjOPVunYejnX8JdedoV/JCFO6YJDbYrllmV +hb9s/pWWKYcWcLCOuHKfBfbpoP5wSEg3iPRAW8L7SEc9JQk8kQ+Z+WJyR3DkBe2h +E0RyPbZWefTY9fnZPI3LSYp3jCCwNz4tjb18wlaPz8xS2cqNdKHuIsrwhXN77XKZ +NzSiHREfrlOQNzsC2M0f8TPqh4B0DXH6cHZHCQOk/2FBvtdallRWR/UeD5WOOUQ8 +uzwi2c1vXTAZDR1bM/lxitg23OrqQwc6PDCN10mnrqRdaDq+uAwdSpiSjiIN6AoM +CG7Q21vsbvT+JdM5rhYDLQuHxCPM4uciclnCDHsOBjPXKW/FzAIt6llcSG0kLlp0 +MfzA8P8kw0bcePFq8xMr6FDpd9E9CGCxkXyMn2jLyOOz+tJB/rwTKifhWyscUl0y +9YYumbJ6vVq2dAwyhAWL5YYW2Y/zZwo= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 010 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEJl+qTzANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTUwODI3MTIyODIyWhcNMzUwODI3MTIyODIyWjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDEwMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAwEtScKQB4zjh2Ci7OOxmnIhSVCncEZYYc9daievb +XPn8fsWp39O9RG+27tGWQgTrxtNnm12dOEVUWCG2azr3o1DREr/ESOHQ8/3kXhY2 +86DmGZS4M02rya7uv+DWcKuZi9KR3NmbFHfqp2zp9S9xjUaugDVQYqsFJ2EYC89J +7obFHcfw0KYiUili1NDGzcYnnTSKhKPTsVloTezq6HgqeZArkOX/O1NIZX9RRpAb +DnJ8GgVLqZ4gCkbFTbA9FY1S5fQsTTU3nv7HB7LkAsY+BPNbOjY4nq8nLc3LP4x1 +wj7iisx9Icn/fIgFldYFDHy09hlOQntWM94hLXIT0nc/1QIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQU2KP1VghaaMiqXV/gebzG6cbTd2QwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAo2BsBPPBEiXO +/fp4Lj00Dz+nb4g0SZLC0zIp0xvzM/ibGZufYb854+kq9RY1SeFz7It+DVOgdoCh +GdFc6CXHqZdZoFpFkQY7I31OPkzy65uQnIzsRLce+Ct4Lts5+I0XHDpxtGOCLaWo +Ms1bTleWljsxgmw3CWY9V14tIF5dEEmnUgjgbDo7Ai5nLahgfqNU4XfXK9zSRX+R +V0IiYDVFDQqfzJ4GroB4ttYthzr1x1e+vJd4Bh9ErF3v9L8cCthKytOwu65npYBG +UGH+aWRoaX/3pROjXEZFhFHfNETFc+gVXesIfYeJJQPygudADNYfVtAsDF4qx3JT +UUlgmzC3z7YivGGBD1Uoj2b7x1DCCy0x0v8ibXbgd7nT0g6a0lZGt4i4gvbUUbEm +463Vr8Bb1XgA5bsbevUdR8SmuIY0PiS7qioQs4cRGagOSVG0MlKtDD9E/jZ5PUZI +RpTduKG/lLwH0HHeNgKmDt/pTQWa4/sUgp/KHqg1E82J7sCu4vB/Bk1pTybe4GV/ +YDSc1NGABsWRzZnrIHrIVsXYM5rQzV9+/+BxRmhEqUVUGNzsFYW/RRieNWyojYG6 +v54K9BtAELt1tWXBDE/2Np/RFZQNeEFh2pkLxRNOXytuVoXwII7QNr4TDef2PmE+ +thsvOkC60E8ZEsKZ8GU3Q32lT5CExWI= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 011 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEXYw6ZDANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTUwODI3MTIyODU3WhcNMzUwODI3MTIyODU3WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDExMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAue1NnPP7ZWDRj1of4h/vyabVX9ZLHiwuBIZkheDk +NF4jsn+uR8xud3RXZrNd6lga6kmJPBwwa60HNc4bJ1XuFVy6Ch2V6yYNqzrIHgTB +zfc5GqfjVXir47tRws2Em01lv+hLPcx0wdJLw1WVadwjPjKDVauNMTaWcZbQryXn +ZQkDTlNJqMEwCdYrnSxpNtgvmM/OqvdgQyGTV+N1A1uHGTqMyaRVzuq9BGyLfLrd +bCgum4OUTlwmhVkRXCoo4loa6Mx3qlP4WsPLe0pnGnBNXzUO2Y+F2Ye2S45R58ox +keP2fznHY0z/7FDAJSYZSmfnjGwuNGANhoqzkjmAvfDOXwIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUXCkgdCF5vHBNsdjFTDTKlEBWF8owDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAYeUbnJWPImxO +yGYdc9kPj9xGd59U0Y4bypm3z2YW4tPLr2c5MP8Tte0Cpq3AD+V9MlWQW3VRhcv8 +ATEcKyWoOEBSPzNcSMDekjwAnS4mAOEdlJ5rG+bbixH5116QYUCkJvdVYIb3sZTy +02hj2Z3zofmz/9CSCuKqeQdoF4l/3olR8k46Pd/Z9DUZSCxW26WYzviYORzAusoi +H9qGgO7NLkFeYBlKFrkplOWlNTpM1psfAYhIuhhnIGarcp+59owc99n/f3VS6mQn +789KMaVPJYqOC2/t1R5P/hgwoDxbjoRmy74f+nUmMdp7lF55GsN/APQ71LgqDg8V +LuVVuaFSW5kb8DWDjG/z5fNR46/TBI2VFAAabuYmfC2y9n4CYRNdSHH8FnDOGdxl +ll6VJi3x84ywPxNf3m9ok8j+lmoiGm82YUlZbAnjFIoNtNvFIh5NoPzf6/LHEKYD +zOaK3TimuJESzPuxjTumUj06rceOokczl2oVvGzvHqWYAWU8gJQa1aY3LkQ0fK5q ++Vc/+uenilJEXEQZX2Y5Px8dLDcr9rPiMuxY76sEcg+PFvJLg9QIhKkgzt74v8Ih +aeDhrhAwKgDKcWAohYA/WQluxQommKp0N0s/Oi6yICpV73l41ea7kKzrjMu40IUS +befqsgmXOcuz+HHnTsINAd1EK+kMoFI= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 012 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEOj56uDANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTYwNTExMTM0ODAwWhcNMzYwNTExMTM0ODAwWjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDEyMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAmRofX7r38HF1HfxgMgmjSvbUTA/PzJy2+cFlXqyR +Uzqh94FRupAD8zpBD1D+qyjr3VDhEhfc0aBmhpQTytMIzWb9SJl5ZDXRlqY+o993 +4bkpetcCBFvfTheA4dIopNr9+N7v7m4MvWriTc4QAQKl04QZj0NEyZSW5e+yD3u6 +4d1a+xw25basgJCAgHb4l5bkkOL5DVAIMmUXiFWFRXa65hMSm1YBGzPmfi7ufkaW +dokdXZJjV6asff799x39Y2PlvisZcWEvL7qhSUvXvwI/6JDU1RWoTuJMw6OkWGY7 +t8hP+I9zFSXQZTwuER5oE4BSqZU8FmKIUvJ1OVZ2pmTuFwIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQU311tq1EC3xih93ET9Jg8Ysuvc4UwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAofgkjR4XQMxV +891IQs3jKjie2IZvEqPFsBOnkMwp0Yb/82f4HVe3A7c5YGnmrN04rOAl1xB063xK +m3Bfm6y10p2NHyTbI7japuITYG0fZP50LEQT+AtNyUh6iRXLxeGROD5HMLcF/k1n +BuZ8SJ2XO+HTmMqsaAsP/l1EUmhMUlQkgOhwdN/ELnRqM9/RYVdSk56I+RVp+b4E +zuqhIFfas6wfC+XoZIqXpVljux33na/6v+A/dSxR6uFcc5m1NPVv5KKQaB4Jkze+ +UlaVm98jKJbV1N1FvL5T9EoKN5EZq2KmODvqhn0JO6gu5D/35aR87BHUuW8vDoSb +DWkbi2Y89BJ3eNTPR03k6uniBzHwFYuTvuDNPIVG237HsQnK1PT947aGE531M4jT +Yd4DQqSBCgKc3T2a89MDfosN7Qg+OqlA1nA1eHVWyRuRdk3kr/fy6rWK4DotZWFH +wkN029E5PQNd1cAVFioSTwPT34qPd4wxEw9FMnZ9eu0QpyXBQwJO3sKrN8czyk43 +5zeIuH4wRz6RC25RVqRKm/OufIcJKRAdsuryTBb97KwRRtVpD7amPaceGWkLCcgH +/6iGnsVP+MKDA3Wzw0xn7LxYC29/TcNZZbVXcVxe/N+IUSeZNhekOqvjpQtPsG4r +RHaB/fhyBjos8Emj9y/jvLbMQ/ypYMQ= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 013 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEcWsKzTANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTYwNTExMTM1NDM0WhcNMzYwNTExMTM1NDM0WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDEzMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAl2EhmwUjS2q7V6oFKcnBvB1NIzGWUx69wF0Fn/89 +dgovVwZ3hYqyGvZaMaojcJa8UtdlFq0FrS3G30VZlIwAcaVQA2I6LjftvVdYUiC1 +lvmyjVFsO8pXMIN8azbhDBTAclOqIgAWToMKjmoaLfgY4c400+GnOlMFezUAwGze +Edhv7IHaVO2kS2fbA97bzAzXJiFWMW1A0V4/yBrLHr7hBm5SJdjgFYPuAqfr7aeA +dmWnR7ZPlcN+48r2K4JAjic5qbQAWJ9pUVOw8/i1KAyo/IchDG0sID4dHI2atOLg +ukejlUaIlGiUbqCEdY1jB0GZICuy4wg7rIvyNZvzm2uSIQIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUESJ6siiYMomtLn7mhBMhkB71kvYwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEApfzZ2HRYpPua +H9KLRfYMg2AOLxxcZfKhvBPIF2E9jQ2I4H0wE23nWRHWbs/fR2LOY4tKTtKQkSpw +l7Lu/zBri2iogp/X0i4/FTlx0OTKkfXbgoMa4W6a84DB3bIcpx+uWgqU9y5IZnym +BnJrHyRNgln3rxualgTkH9SJ2dgCWjVxd4ekM9tgEXrz/DNN0AxkJqjb29AxboGq +PCOlb5bLVODUaC4UjiEMTOlXPYiu6cf0zto9KCkV7TpvlX8SfFYwds6dIjcn4px+ +ibnFk8Odi1Zjv/FGu2QC/b29jhEgzLQlhfaBBhOcA8cw27Xi6K7R7oxlsi/yC7nZ +FEXtR+Smq4HE1FFWGQCBzg+kN0T0L5mB8ud472cMJ7XAGH7odlHAbF8kqHOuTyqR +BYNgJA6SldVFLtaXaF/2J8PtZe+qQkaHqW554GJRKSR1Y6D8geWIFJkv+3mvK1rA +dvzmeYEf1PcI7PR8JeHMOEw9JwE8VqtXTH32zWJn+d4QuU3pgX9Icb+2yHHCwz8i +ySGAvhIb7/h/nWN4LmHQ+hdQ1UFxvYQOMSsL1c69ahAAX84s8XZrv4lkTigFV1gV +HpcMGjtfKUsoEo6gA07+DVSM8C/1F6YnElide3GWLEY+LnBoloB0ka9K6ytXTjYI +Jdpqp4BhblKl466LOKmsKm3VqKshehk= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 016 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEFvC7DDANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTYwODAyMTM1MDI0WhcNMzYwODAyMTM1MDI0WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDE2MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA07bl13XpI1uk8IOcJ99Z/G47J7SFTL5cr0U/lAOY +d3hu5CLywtoXv/1BZwlflhLA+4OLX+LfnoGTLyr7KoXBsJyIDEYeoa/edTpdEhRE +Cp2zPKaSKQiCwQncGgDIjBYr0bop2GtZoTmb3njCA27vIEKo1iN3IKJrHGdcQZH5 +qoCGPVDMj6LN0fMR9ypzhi6xemye6Frm+sRE7vdzYslHizQIhmuxXGyU6dmj5aVV +rqmfdKAhG/AIvRYpf4nwxbaoXNExaEIxA3INkxwP8/dPEj6VdjlPMv8EuzTZ6M1w +Oj4t3VPSM+wU+MzQnnAwUo+e9GRSMjGIvfocgq2vabPZUwIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUxm79LEkkbmB90J4XLlp/jj2mD2IwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAX4En48dnljkW +rdC1OECq+6nFTlPPDYpfcXz0rKjGC/wpKTlvWVVA0dLj41y7Asev8+bAR7J67ma0 +yDwvAYsRHUmpR2cN8VPUPp4hdksAQWD78laWO3/oRSjcTjEnTN/Z8tMt0ROG6yGx +1vh3JidEz0nzBGhyuX1yfzYlDCeCWZQPJTghf45KRKsZYq6gbSPcvWX3XzHDmzd6 ++y/fWivl1LUqqBWD7F9nEnocCjYqGXHHJKjMC63XLrk4ilc2UrNpDJuo8jMdMM/w +/gJjk8qWMJ9BlGoybs803QYv1dWkayDNTOiqU1Fwod8SjtV38BZIf1DrwVxNQl7S +jQicbh5Zrgp4VtHNaZWOE2/6B8P+KiKf7Nzollb+tn5c46NF0A6PJxkekpItAALn +U+AynGMLIfDw0HwdZ+1Opn02YbCh3rno3JbymJP0DLOgGwtS7b4EIJuQ9FY003wg +yJ6g5b24y2KsBhgdEDZiHodiylje6UVkGMMrvHdWLEPGtNUylzTq9sgXoIB6JW52 +d2oM2FGpdwvgJBcP0zgBlD0JUG0VgoqzwUAXwzOWWCv3TtwAngMwpH8b87aq8DQN +urKZJKPI0i7mhw+1yQ5Iv5QbB6H4d9KwzS03IqksJD+HuBGLTzkWTZj8/xWOkD91 +4tRRYXiS8KNhZiIahOBz52dNt+yPy7g= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 017 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIETh1LITANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTYwODAyMTM1MTAzWhcNMzYwODAyMTM1MTAzWjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDE3MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA5A0BkjXsH/WNUL8O+YlAPQcXwHbM2SCt7jfY+xA0 +uCzBAn6a7q1ggyyJHqIEWdWEhlXyE8EYK4/6v7cWg/h+TdZmlLPF/0YaF1zNV78V +W2S/Z0wrgHfZzjVj8ihbSFd7BdmbrS3sKmyf8OWk3LJgoRY8cwiKv2fsTP3iC1tx +05+/2TsHPI1lngA6taSZtT6kA8Xcld6mUnbzGwhRwtZH/oPaD/7OAq57p5VkdMws +qGBjy9CG1UXUshLsJzuFVezT7JxEiUrxhOFbC4NlhhDheD4jZXMNPFUzIhD79g4f +6rPl/3WtbzdWjOxZkSlnAQsMUsQGGw/Z2stv2eYCRBcAKwIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUwAROOyP0OyhUu3atT915vGKYbFUwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAtHI/O0RgS8HQ +2QIPWF3zjWK7v+TN/R+t4K1uTSeS9g5Pzj8JMTwsNAmjU+kgZY5WxbCIVszF8sXi +yTAJIz2G2gwuEqhnoYQ5JKbzxol8ulpNELfExtMsAveX/tn1MbgtBpcw94VoNDcR +4P3RxpYcZ9qg8vAV7uvUD1JJni4VmULHGGdzXvtV2sCw3OGzrle3lfIoBF5Vs6Od +0+wHb2igK62aJQkgQIFN2ZBaWRxSwyrZgXlc7CTX7oEV/KoHdyJH0fjVyLUAs+Yk +Yyirg7eF/BPD1sztVQI31eabaiBKk+brUZkFyiBHTsLozH5snzaAQSesSSF+OKHg +MZ2qH/xdl0XwH7qDW5iSf9Rw+vVnofiX+TIS8J5iMRV5PMB7Zq23j6vMtf4BN67r +R7oUioPy0z+gcm12GzTIZ6yZsX05D/PQ9KsreO1LP1SeqZ3rGo2mzFGIPIuKqkVg +415pIqzArFSTi365u43KRitWrFHLVqbNIrfO5iBEjufuwoLchCUfK1OiW6u9Ycj3 +L/XgTm+hGxnyc6DIK5QJOqbEFn1nIIcxIIRdXzDb55IIx3+LLcNrNqY/pwe8g4gG +Xl83tSIK2r/C18P7/JRNYSp398LcN/so21I/XcG6qtFsqCFwODJnx+9ed3A1bcg1 +AAk0rA06qGwW27QA9NGfW+Bozk5NNo0= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 018 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEBUnbNjANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTYwODAyMTM1MTI0WhcNMzYwODAyMTM1MTI0WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDE4MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA13d8bhc6JlHZaW5lk/1W8jYSFxAJPfw8vCfbbGlR +rrlfJjHplcRTiq9/+YIJnKepyu9ZGpfVZR8++NcxJ0gPw9opaQ4A8LC+d2ZL80g2 +Q8Hu9ZNbCBD9p/eau925d8Z023JxVZkSFYAQaAHGbiYbfpwWgyG7x1OgEO6kqKjK +cOw3kuu+tDQBVwS39B9SBALXlY44j1CvBxa4OkG44Sq9SvrTTBmjCsNBrnMIbjWn +t4cTHMsZMT23Od7Hd2qvP7Zl2MlmAlrA0AiFrXJ9/WXsglMEA6H16jnzWvl/NQ66 +U2a/Accsc+j8gC0HheGFIP3zuPxTuQGFjtU4O0/LitUOvwIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUjh87HhKdSt7XYx9bSit1gorygSgwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAPZIS+i38p80Y +WdqcSe0dN1sepE5Q7ibhCy8/6sfXPSh4H96usBReYmfHzx456iy8pkwaBBRDG9OF +8U8UDDSAAre7Vec2uSBg+N4dyzFTU/82HhnppYdb0K+s3jA2suHsz90ORZ4zaG73 +322bIXnLmj1ftSFrdCPDKb4b9gY6+A4nG+Jk0gjGblr8WJqcbq8nQ0bMbtoqWgvR +qb1FFAqtgKGB4krr9xfLDdTWH3Xha24qzkk2s0Noll7Y7aAx/PfPTQOW/sWgzWri +h26e6EUbgUkKL2Pw0KbsypqVBKE4BhNYf38WFQ4KcUkNH042BAlwU2zFWXvJ6nhk +lXON7YeLT5bg+fbIjU4e+jEm7IroCK9p6KURWjoOz1ErdvagXcXDifUf8WLV5rX3 +mOouPYzDbxPVKsQqetA2kKE07QCcjuNGdDAP1eME34ntL+3JbUpQ4JYNUu6NdXYB +twVwA91W0Nx9H1Rlbf+GGq7+WOGsEPkdnRN3zyGTJst0eaYZbRZtIH4SvccDFXr+ +dFCZQzpQW3M6rIf8KKS7IkqvUDqd95SiyyVfM5QxFEefweMFl+EMi497gVGJR2/t +yc+4zrXOmwXEJxdIZueJmSyO1zVkH0jF8G+skyJ4wv1ZXghn/Chm9IVpW95JTm5a +Hl3ICSVYBbGFDUIC67t6BJprXy33fms= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 019 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEPHZrSzANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTYwODAyMTM1MjA0WhcNMzYwODAyMTM1MjA0WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDE5MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA21/GD5Jk7IgyuVi/coUHHYN890HpShCa48WVhi/+ +D9Pvc8avo585MYIHHqFz4VZh6RUyBPLIxxvg4Zt7E3P+edxx4Ov6DrnuIGuhA726 +cDLn9tynWonacFG5q+XiLpyHaEmxdWK/LEWKMT1TlEwnSDSB7cF+eOWbrCt9tCQG ++gqWVj6SAvTqT37ZGFOywU579KaYEaI01Lf81Wu5bifoHwicV420PqcDsHyG4+q0 +LntEcmZCck4XFce2Kwk0rt6sKg2yKf+PKU06QbAGTtJEMY9q7hWLboAuZ31tMfV8 +rQN1if/dJVeVuGQg5e1iDkC3BkyKef+0bPWKMOtPQ6irMQIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQU6QYXl+jl6MaPk17l6Xa8j6F9dSMwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAJwFGx73+ZMAq +zaa9EroKhK7ECSx+8InpjdSUm/y8GRUtR70SKoJuJHK14rWVOC5Lanrwp0gXsa0S +quiGBDL0bzG1JTtNGBIvwD1C/8L6vQlxgbwFuB2Dah1YdPgmvCck4xyYua4qlwav +0hF1nxccYzmGvbxxYJH2zyz6/Tees3PIw28Zhujsa3W2xUHd1lqazxvOchDR6P0u +BvKIZZ1XXlgMnhaVd+ZYW6nYAKrGh5/d6fIp7CJMP1QFTIj7OHkXZPAvEarjo8Iw +54UeKM/t5axLP7hXBrYS84pbnni5aJ1C0LsjKsi/goMV1O16eQ+UOg7huJR8rQm+ +uSVjVaI5cq4tdRytGNix401TRLHfn2XQ4ea6EUSbbFR6STioKB7HrMqISrbbwdNj +aa2TFNkcC/GZ70v+UsKoYmwqoOh1rqPGlnajaSE7bU+2uLXDYYqLtsjPg4vNE9IN +LXwEvW+YcKjB8ZMPCfh6gSbUmZ0j86WXXCgPCWUEQgeyT1oRoTkB4Ie4KpkSBUsk +wyg/mKHFN/edv1wZPUCz/npaK/XBQdkHiGLmp3oMscwuPgBHXOlU1EHH2QpnQr0f +zFpBgzeC0P8d0fK2LFj33tvJcHgZnLLI+d1Zw1MAJL8xnH7QR+jRoNR1sNRjqUG6 +EqbwVM0ToXnZ/umHXLI5ZicMb+fdz28= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 020 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEUFU7tDANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTcwMzIxMTMyMTA3WhcNMzcwMzIxMTMyMTA3WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDIwMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAhLyPhpe3CcmBDqyufzYyX159EYaxCxeO0GsSQkzo +K503UaukVqxlbLFmj0WVuDvDK3Z0YzELq3OFCZlHBORok4uUpWFXtW99anDSW7xP +XfQ7X+JGwEi/RAGw26UwjHnfYxWpxTPmzm2NsfXvwEVAA2/h1yv3wxIntq0cB+Sq +52r9kCALfEEScZaoO0f97a5wyiKnmHkP6WVLVCm6CYrBRkgAgBTpk+O7Il9l8dg+ +/28bAPt86exBVD4kTvZDq+3OLviQquHvOObDNl1FZimpJV5oVKxjyjE/mf0FmNPs +b8xjcIvpWHQXjDAaxBo3WQKdFKUQW2Uzqyxw5GHCujpV0QIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUMsbldmY/7oDWTN17GOVgOGOzvIowDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAQBrZVZFzHZdG +0dJPwphGzsXV5b/zBVX0wA0BGWh0TYzffqlSOmkrN1SXceDxgaUyi/ZQ5bEhvJys +0BsHl6Ovq44Xk3hLfbFVKQ8aLV1mfwWSEYREZMCleJmleBi+FD9dDxCFem6UBe2a +giibX9Am65XYtGGL9F48A/WHq4bcs5frM+Aq6BqFNUU1785cNWCTjpLmCbDVxwYs +prk61dGD8L0uQrFGZWZHJ4EUlBtezHAHTOat3tg5SrxkCs6D5ThNl27TDItRqCCB +ROhueR2TDAvBVJpG3Xeg6AGhNwDv9MWd/kQFjUDD0I9leWhpdTQmRb8DpVhXTxwB +f8yiOIGh/Ry9m6kdxeMcbExUyW/XZBiEXFE1qlPPuJsmPTddYtL1X0aaefeN/Wik +kKoE3vKvN6QduyIpPI24pybgzyExJz9N6asLxvN59ECb4Hpt/dkJUhCU6d+eB2OW +KnMLdTHLjxPy5ijJN0frnX2s0p++TV690ZPwJJhP3+qGzy7pk89BVNRbKSEfRJCk +3/5gWo8S5O2Us1PFsN3gkTG9wUCakhmNRJjWDNxmU1vnTtBP2Z3zYps2/K1SZRxh +8vz5iT8goxi7iW+jpSZ5Pa1/q4rmPv0OBbkUg5mSf1F68drGfUtnEkiTRo4g3SGX +HJsfLGq5sTYivqQONogTY/8yGT9bLDw= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 021 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEB4HLyTANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTcwMzIxMTMyMjEzWhcNMzcwMzIxMTMyMjEzWjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDIxMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAlB5EbbHJlUM0PuUeNVQfPrGaVm7t5UwYrbgU4loi +cjYA+7pDJND39g34LJecBXe6csr48QmWc5gj+watzIelr/XBOSGfXO9fX5Uueuis +y5rlQH0jo6VD2qCZHcF4GT8theCx/fxNdWX+U7EYjbmfvTFFqEIRMwvjGgmUHGoi +W92xoIl/Td/h6u/2IG/W9lud33ghWdVPnNo8UyNyDS+zpS7CRo0ufYGYun8I0LxL +ILceKtVdHdzsgA/UWXx+5x9d4z/5NxNumyBGb2yw3q2FLVzW6cDGPCNJo71nbXX8 +6McLdoo6/WqPoAZ38Lmg5uE3EXGMFLxvQlQuWETUbjPl3wIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQU2iBu9dps95yuk8Xkcv/pSAFyzI4wDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEASvYoQD5PVK9n +70uR8krUDYoqcW+JPvK4zYoPL9mjpFfWGMpvQWaxqqgJujb52VVoRs5svyj3m+lt +v4f+MwaB5MbNt8RzX6PqFSd7ckAuaMAnEe8jvKABG2kHAzvECKQYttEt+NpE9O0i +QQqDiCXBUH32EFfeXkvcDTwUF+hnBLZ9R1cg0eQfowr0n+yqkbWxbon63WoIJVNK +rctQ1Uzn8KIOZnZNQYIqhLEeRaTZ6DMCRETLYIIn62/n6ya7JCRt239rQA/jAOt6 +/oaKit/M+rfZX7zKVIlp7Lw6tFVkN/3v5SdUjmGq6Sm2d8mm4LOVEcMINuL4PrSn +uEMvFen7TwhZa3u68dNjYubB1C7pKBDZCvgS1r074/Gj+dwGhbS13wDHa+ne4MHB +WX+8bj7IOPqt7HI3aG07YhjGgvZfnJ7JDkzHRXo1ab6FAg5/6mRagWnwyn6TFsPT +f/O0Xo7txKxahndlolifGKSO74BEwZytCD2CpC6Mb7VdLRczQrgs9l81LqW2lkXe +xGmoGmpe8ZuNsEoAKMbXmjVe3YdyBnpy0gHsYseFNGtXRKRb5mtKyQgKiJfqwjkK +IYpUGaAs5gOQvJseHbSAz+k9R3yC6PrJpX1FXUK9xo6dR8IvGkdz7NELPWZ7UqLQ +50BKxd6gCYJpW76RaC8lAoCJ/I7UVbE= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 022 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEddrr8zANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTcwMzIxMTMyODA2WhcNMzcwMzIxMTMyODA2WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDIyMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAnFpFSA+DGquMUBFXwRPfuqD7xt8iM0P5erFCkhqW +zt9DRzHt8ZP6+oPa+rlKncXyvpPAZckchkMRI9c6VRLWMFtMKxgnp19Z1aZKHWNo +dcLACmHQWVaw7KRraVrGLg/v7oZB7Hlqd/OByP83r1WoR4hWzhYS98bSIYAlZYOk +bvGpyilwkKBBiuhyBylGg1PS06b5sbEUgxlb0YA8pWrWICDYIwQTRXcrXZqqXct5 +wnuhoTHnxGnhBmbrnGkhAoTomXcFdzBchk/NBdUsIWZ3J1RE+1rLftcODqZ79hpd +Ixi3ltYfVBrBsAKTrP+7Qh4o/xncu1cZTYO4Kj4dQ++RCQIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUcCbQntk13NxE2E19p1zPCrwf3gowDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAiPpFXHrY2Br9 +z4Uw9+7YLlyEWgZfH6BRrDzXUHzuePRSa8odikOrDX/UcZYjzjJOOmDZhMDH9RGC +xf5ZmJgDBirgk6GF27qgKyGi6TM2SMPp1EfPC/QigAEeBdSeHJPqfDSiaHaFRCuB +MZSdy6oIXZhfaKd6iT//m2eYMHu7bVWBB/g9fwTvmSkim8EGjMOkiBrZWsejkbwu +/Z9rTTw/fsZs1gCLLIiCB9oQbnsz07VIPqucup+rhv9XVJ/cWs4qo0GeWKuExGuk +ZfjXSqIlmldb/SnGoX8U+GhweElMLWTYAResAtaEMDg2vPek87PXywnRWbMEt68t +PSwxAM5bqeD7eSl4WR+kRgx8harnDrBi2mwch4C4IqMHn6bP/OysDODw72o62nXu +5jqR0UIz4zGvkkYlMuPcQ1izfYcd7m+MB5spZe9vxbVaXkPa+XF2b0uZNMyyOuME +vMubFylnNiqmcAl8U+8RVRlLxG2Hh35KK9qIlQ2lZ7hTPRmQpFC9S4uRIzonXnL8 +7L6BVkn8zjCtL3xu9S7Br77y5DQCR++WLACS+tKY6NXmW4pXEcDBqwWsKTwaXjvP +ICAGfLGQZ+uFoKhRM5w3OySzsWV5l2U7hxBrrag2L6cNkUbVvSrEjXxaDq9xQTS6 +8OY/sm8ZOVzgfXKihvQuMr9uE8wq3s4= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 023 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIELQd8CDANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTcwMzIxMTMyOTQyWhcNMzcwMzIxMTMyOTQyWjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDIzMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEArC6DMuXAKAHFjEfXCBzSolXaP7y45XRAZeEJ9lqR +sj9DCvSJZYutu88cY/ZS3bMGlteQL0ugb9VuaNXb6aPU/yhykkx+r7Hv+xivIcIn +9cpTgp4fxJMcoajWbUyQf8iRLF7kODr8tdqU/BYJAkhc7CpKI95SBFcCZ8Zp9wpR +UJV5nyuXWYeluTIrAYWlza8PTqs+cQYi+eXkbEhVazol1gdhEP4alPkZElJwKOGb +AULGDRAzZV6kAyjFpR36eQHF8mPlVP5ZaknoEXHimKrd2aZFF+ppjwUuFsuwg336 +lP7Gtzit3gtAQXH65nXz+UETdcbXIP18uGnu3cZWOfLEaQIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUSskM7mjUtXKd5DV9LEdYhPQJt6YwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAOBr/pWHv8eZt +QLema7QWJUFG6CkV643c/94zNMMFWxvkx595B2t7jZsp41zBzEGI+m7XYFk9HDVF +l2ZJrGXwMEYwLjkrDJ7uorFvmCv0By2H7XbC1eWBAr8eFl+AQqr//Mqt8FjFBs7B +LvK8cUMRico+39/aaa6iNTJaAv5hBjOBkMNQOaNmsI7XPh0T87rpcD0pK/XEprg0 +/xi3OnjkeMMTJ+98Va4Udg/EFcg/PSwhnQOi0y/uEvz8g3ps8RSEAVFw+4is3Z3z +J1YQ+Omb4muk0/M6n1AZ2vWWgTHTFV/a+zkS4p2fcw7/p4u3THDFiGrxS845Ps3g +flrd09HtuukkAl1iI/UuhigT1COGdtaZq7pWUPmrm8QtFA6zNPcOKx5Ox7DZ0xJc +K3skfIJb3BmqIj06MYFEbOJYYt4Ac4gfTWg+JPJjmEzqCr0+sNGgGmCOw8SelTtc +/KIN8MhesIFzuRnqYJ1SrIBLOROehYbFEdK8OZEGCkRpYkVqXn4CM8ypvxa5wggM +if1t5rDPVRAZddJj7zlPms4mEf0nx7HDua16Fg5TYpb5RP7ev6k+EmvvPIopHk2J +SrvMVNjlMicx7NvPCa3oUMffso5OjQIv2nE3/FmVdVtmT2RQxGKfh/vWq0kmGF0t +VMmzMSa6dSLvRaDJcl515LeVS9tZvEs= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 024 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEZDQMHTANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTcwMzIxMTMzMDM2WhcNMzcwMzIxMTMzMDM2WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDI0MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAlxFity2Oj+nLDYbvoLMjqmgv3/UQFTVWfhDUpywt ++DeMQq8JteJmxWXZMKsMMRHG/1FzOWjnqBWcyUCqVNBSFqkU5GOw66Y1ahVrdtFg +bG7FqqOcFOFHN3RljRDEboh26ORlrMB9h8XkB9VaHkYcLvWu5w2VtXyiP6LSVWq4 +sbErcYwpsdFupR47PKbqUg6DSJzZV43U2ypiGQxw10Yz1KXGOXZhtozY5nmX1W4r +78Vb+R6t0wfFE9BpraE94NvzKUMAkZddgf3uDL1BzKaTCMe9pK6VkWnUU9Yfnzu4 +SBiG3DF1P8ZFCXyiJlG2isD4LnuEvW1y11jpJSjX9JQYOwIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUJlzzJHD8TZPHAi+jSrTICHlIRUswDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAIVJNce2jrlnC +nXc1TZ09ztr53mVC8E5PJwlf9mo3bM1DQjjcK6Lqehm/O+2pxEOllLt2txaYBWUc +anuDdLitxbSq0o+CnQ/KR8nfxwEEuxI886tlIA34UIh4Fs9O+6wKS8xoJ5quI5wp +R4m+hAy8b1QUmTTum0mbBf0VDgHW2KmcaFnawjjAzGKNQRgqAI3WfSKWFiImTPtZ +eMb65U5WxVC9Vv2Ge+wQIkx80Ppm1jKV9jRaXG0C0ssciI2IXdIcLLMDgREOAEyw +v7JMu/k9Vqr2nj8hTk4ZjoXOk4K4GxOb3qmTRKFKY0PLIn+C4skPoy+l06WgC60P +bcPmV+UxYaKPbTK8XuDqwjra8eZjE2glUNvY8VVRDWsqR43Efqf7dAM9mC5hu2yd +t33BJHkweOosoJfuDVWVZlQBqrRvr4j/P7rVW16fSv3ddqUlwkV9/fE1pG3K1ak8 +WBxlx0jARAt+Wt3CHYZ6eS+txdnSyREDxFM2SeN7PRNIKOeOb3WKRLrshdLaFH/j +Hujysgv2TnEWJowLe/KIPx3SYnaRF0UvT50lbWAryIja7LJrFNl4JAawDx9ANC+X +mwc7yKo2vd16zcX3pG1+4sAD1+9JyqPOMP4VU8VqWKz2cD61CwwIBYnXxS9KGz+V +8s8K1sKzv9rxJExbFtBhTlNiVKFJvdc= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 025 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEG2CcMjANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTcwMzIxMTMzMTA4WhcNMzcwMzIxMTMzMTA4WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDI1MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAmPGDHLCw1mubjm7m4vlAa8uN1AviYgFwjiaqjBg7 +ubye56UskBqSZcvWVaP9ep54vxDZE2L1RrVy47kGQMc4HUjrMAv7O+kqJ0gZKU/S +pimoC87RiXILuQrC3SQfWiajHAMkZ3IIUz8wwTHSR86gjgc1/fj90skwOL4MG3tP +8Rqh36ETtVfTaeLd25bhgckDVw5rLH/PigI7d3WFh6S8eE+21wWSloHLMpBqqKoM +zYeBInlDtBfnryps8FBmhbbOg0RUHcTRKONW7A5T0aHgyf2b+7P0jlywqDXRWi5O +fbLOIHUj2lZvaDcufETeuCOboxTHWLRbZDSlxuRqxP8BawIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUKkppgyWhsiBGTvAJsBiSJosl+E8wDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAIWXOlu07AR5i +befH/JKbJVZKywvQDn4w5Pi5SpaV98dfICFMNCCD0I3u6WMTA6UNAcad1XfPrNt5 +0mXYZxispIOTxYJ4tzQ0YpuaCulULklKoaWD58rPjRMbLjPwJiasV3LbDl8WVilo +Dry/BmKiBUrP343xngS5TkyF7Xpl2NXkqWyV8nuYOjqAAY5prXnFdaPCamya1MGI +/Hh6fNcJAyLlyrxfDzJZ2kJKiO2KtdNIa77wl7YsxibW85WYudzM4+gbKgMhb8pQ +acHL/cL78Py9DgyKneHz+8LbWYHuLN7BR5vFa3C1Flv/e22yWUwSI8FWCf/oyf4X +wPgJGWoW6BH3HYjrfzjqLuM/r9nZG7FfMrvAoiD+fVj/Ou217bynxAoQszeGjMDd +Vx1LFVje6m7diPXiCauLO0+JFC50c51oUWyoYtvl5cX1weWa0E4vSeJ/hc60ddfR +3Sbn298kmWIe1AxW3bNbfzPJRDaxkeACcbjTcXpLp1C0uK3rBUrbfX2xXwsyQ0GF +fR/cxAFaAhJhRt7K0fijhEmaI0r/pBtsKCwkcg9E2HWmeiMCBHcVR4+ZATqWe6u2 +ej4e82bAe3QoH/SzzI2Gipj20YEncIuN8KHFIg4mjuMLRFD2bGHGx2uKSJAOSiUp +ucbI8QJL7ZjckWXXR4Cj7micglXK4/k= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) RSA Manufacturing CA 026 +============================================ +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIEUo0sRzANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTcwMzIxMTMzMTU2WhcNMzcwMzIxMTMzMTU2WjCBgzEL +MAkGA1UEBhMCREUxITAfBgNVBAoMGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEa +MBgGA1UECwwRT1BUSUdBKFRNKSBUUE0yLjAxNTAzBgNVBAMMLEluZmluZW9uIE9Q +VElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDI2MIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAtCO6bM6wy0aNEmYNXK34bMfimGQJMTlfu72qqJBv +ytkRClYYl50myAAGu5/mCkzjlaUrGSld2f8MCr0514O3lVkFQOdaf7zHFBxcEfvy +Z0fv8O1/OhoNN+9GEnPkXfpoNysQNa5JApCKXNrFw8JOfHjxQ5tzSZ1god5uMCSr +G/H10SP/YDjpWHw9BgYdhVE+wvJSnsPa3k3k+UGQEuUdm7LOTFEElCUrLESTCfo7 +Ls9N7dxdP3OGUZQW4tfkw/ZebJ7blcQTvk95ROh/SUoKMRIe3NNkNIwyZLJkHa+N +IKINZ7PvuR67EHxZocBPzf8FfRVkljQP37o5LakS+LTxIQIDAQABo4IBODCCATQw +VwYIKwYBBQUHAQEESzBJMEcGCCsGAQUFBzAChjtodHRwOi8vcGtpLmluZmluZW9u +LmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNydDAdBgNVHQ4E +FgQUmmQ7xIAH4IJHmEMANrZYQZtwwHcwDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB +/wQIMAYBAf8CAQAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhUnNhUm9vdENBL09wdGlnYVJzYVJvb3RDQS5jcmwwFQYDVR0g +BA4wDDAKBggqghQARAEUATAfBgNVHSMEGDAWgBTcu1ar8Rj8ppp1ERBlhBKe1UGS +uTAQBgNVHSUECTAHBgVngQUIATANBgkqhkiG9w0BAQsFAAOCAgEAkt7WWZQeuoEa +KUgjTdR+hFowYDmowa/zebc/g7knMOL2GVx1F47p93wiR4wxMsfYUb9gJMXJ2w/F +4e5yXTJav7F/YIdRxRB3LLaFlT/kBcCCfOOsDNiTE1jkn+ZaTP4mgA7vMoZbej9o +n85moqYzSxj9Vj8fs0z3tA5lnbpX3mDd/YQ9h7GZZVpsJ895k+030r6uP+qfV7hO +yzLYQWbwf74NUd9iN8S+xvO/JNOWMtrgaZs9PQiDy4zrK1f2VveCOqYXpEkHQZYS +s6VU2wvjpL3YAdtyc6djCDx8300xSnxSwZn2tEypgGjBnNXBD7zwl7odbRAWj7Hr +WEPBEueSFQzojU0V0YmnidSpx/+HvDPL2Fv/7HQbSJ6rifcKYOOY/LbMylWY204c +634eAP1nf/e0eVoO2LFM8vcwH55CMGtojyYOXoqWz/fImbCm9Ts5HID+YKwYRE+v +0cZxw6Uyib6ibxbiOs8w6VqX1JxUUa/Z5ocl4HP9V5tkt/WiK+I67ZhpKhcxez9I +xQcJj56P+W4F3PyVAhFUyE5cFoJ0LdZ756q9OK1gzUVk92r+CvZCXqQ+Ii6c37am +Z9Vm+8c3CH1dne4oLpZvSnrBU6Ndjb02a3tAFGIJqXQAtG07cmBBbm8NPvSE+65U +4nlf2WMqom/qnrExKAqVFojOHAKg/Ps= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) TPM 2.0 ECC CA 039 +====================================== +-----BEGIN CERTIFICATE----- +MIIDOjCCAr+gAwIBAgIEJEBefjAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTgwMzIzMTIwMDQyWhcNMzgwMzIzMTIwMDQyWjB2MQswCQYD +VQQGEwJERTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRMwEQYD +VQQLDApPUFRJR0EoVE0pMS8wLQYDVQQDDCZJbmZpbmVvbiBPUFRJR0EoVE0pIFRQ +TSAyLjAgRUNDIENBIDAzOTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH/VmArA +LCMF8yt4fOpgFDNtQIByMchULOXfAiYaQRfYQ4jSDfu5L5UomXpssdFcPSYd2a05 +xmd2A/HeSmP2mC6jggE4MIIBNDBXBggrBgEFBQcBAQRLMEkwRwYIKwYBBQUHMAKG +O2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVjY1Jvb3RDQS9PcHRpZ2FF +Y2NSb290Q0EuY3J0MB0GA1UdDgQWBBQ5tVhLfPFnAecwmOIUup5lehAJMjAOBgNV +HQ8BAf8EBAMCAAYwEgYDVR0TAQH/BAgwBgEB/wIBADBMBgNVHR8ERTBDMEGgP6A9 +hjtodHRwOi8vcGtpLmluZmluZW9uLmNvbS9PcHRpZ2FFY2NSb290Q0EvT3B0aWdh +RWNjUm9vdENBLmNybDAVBgNVHSAEDjAMMAoGCCqCFABEARQBMB8GA1UdIwQYMBaA +FLQYhchKSsUSevJAOd7E9YsefkrRMBAGA1UdJQQJMAcGBWeBBQgBMAoGCCqGSM49 +BAMDA2kAMGYCMQCKyV90uLjYXeG+waQjv8BbsLUaGGbwgCbN6vnOShE8eZOv+UI9 +lpnddzQAOvH3F/oCMQCNDn9PgbwAa6PdG4wOGJo2qojMXwRLz59SHpGvRYi2Jv8X +BIYjvam/7uzBzX/b3d8= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) TPM 2.0 ECC CA 040 +====================================== +-----BEGIN CERTIFICATE----- +MIIDVTCCAtygAwIBAgIEOB8u5zAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTgwODIwMTMxMjI3WhcNMzgwODIwMTMxMjI3WjB2MQswCQYD +VQQGEwJERTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRMwEQYD +VQQLDApPUFRJR0EoVE0pMS8wLQYDVQQDDCZJbmZpbmVvbiBPUFRJR0EoVE0pIFRQ +TSAyLjAgRUNDIENBIDA0MDB2MBAGByqGSM49AgEGBSuBBAAiA2IABCCw6GpgdnzD +rmjpcdnveQuwWnzi3PzC4ZwYcTHIoIcFIvZKnfyN0iABuU/DNEkIiBufNqNk0VBW +Nzva1kY7BwyyyfHQMDQF9/pITYfFnH46YPQ73hC8z6WQvGy7fWZilqOCATgwggE0 +MFcGCCsGAQUFBwEBBEswSTBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhRWNjUm9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0O +BBYEFBwh6YfjojX5mLh/5xE11xsf+M2OMA4GA1UdDwEB/wQEAwIABjASBgNVHRMB +Af8ECDAGAQH/AgEAMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5l +b24uY29tL09wdGlnYUVjY1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1Ud +IAQOMAwwCgYIKoIUAEQBFAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+ +StEwEAYDVR0lBAkwBwYFZ4EFCAEwCgYIKoZIzj0EAwMDZwAwZAIwPrqpvvkaAbsw +mnER/VAo4g7BuH+sHpltd/pz26eyCtr1xsHTkQr14jMAaCCFdw+jAjBaP3vGR9KW +vSFo7xsgohrnLwW/qmX5MweP2SU9TjfFpfOzIR63hkVsop32FboV/8Q= +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) TPM 2.0 ECC CA 041 +====================================== +-----BEGIN CERTIFICATE----- +MIIDVjCCAtygAwIBAgIEb0u+/DAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTgwODIwMTMxMzA2WhcNMzgwODIwMTMxMzA2WjB2MQswCQYD +VQQGEwJERTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRMwEQYD +VQQLDApPUFRJR0EoVE0pMS8wLQYDVQQDDCZJbmZpbmVvbiBPUFRJR0EoVE0pIFRQ +TSAyLjAgRUNDIENBIDA0MTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMSnWthFA/js +2tVanRDB5jfjeS2FJ1WD+k5HH+528782K0ssIGAMM0EekBM4K/saYA5VjXujVh50 +oejmBi4SLMhesgMX9yTedaDQ67WtgnCEKGUl6HC59SRry0XvsGYt6qOCATgwggE0 +MFcGCCsGAQUFBwEBBEswSTBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVv +bi5jb20vT3B0aWdhRWNjUm9vdENBL09wdGlnYUVjY1Jvb3RDQS5jcnQwHQYDVR0O +BBYEFBwyRK/0EsRTBMDIdgnsRecewlYQMA4GA1UdDwEB/wQEAwIABjASBgNVHRMB +Af8ECDAGAQH/AgEAMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5l +b24uY29tL09wdGlnYUVjY1Jvb3RDQS9PcHRpZ2FFY2NSb290Q0EuY3JsMBUGA1Ud +IAQOMAwwCgYIKoIUAEQBFAEwHwYDVR0jBBgwFoAUtBiFyEpKxRJ68kA53sT1ix5+ +StEwEAYDVR0lBAkwBwYFZ4EFCAEwCgYIKoZIzj0EAwMDaAAwZQIwT9sh6m7Rndjy +xRH3njazRrYgQwICvdNDQ9P80z1BE3003SkCZxoN20IpDercWZwZAjEA9cHtFcbX +7JzThD5sXiibq/cwoCFfqY+ih4iwsQzdDhAZ5+w0fTQAP+4H6iXxq5FD +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) TPM 2.0 ECC CA 042 +====================================== +-----BEGIN CERTIFICATE----- +MIIDOTCCAr+gAwIBAgIEJnhPETAKBggqhkjOPQQDAzB3MQswCQYDVQQGEwJERTEh +MB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJPUFRJ +R0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkgRUND +IFJvb3QgQ0EwHhcNMTgwODIwMTMxMzQ2WhcNMzgwODIwMTMxMzQ2WjB2MQswCQYD +VQQGEwJERTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRMwEQYD +VQQLDApPUFRJR0EoVE0pMS8wLQYDVQQDDCZJbmZpbmVvbiBPUFRJR0EoVE0pIFRQ +TSAyLjAgRUNDIENBIDA0MjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHy6yq3F +3TCvBXY63AGJzHxRf45Gipj7C+W9mnAyz3LAEMTIVBtS4XcvHR6oQBt7RRvrpwLe +TJjg1Ngg0F4zHPGjggE4MIIBNDBXBggrBgEFBQcBAQRLMEkwRwYIKwYBBQUHMAKG +O2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYUVjY1Jvb3RDQS9PcHRpZ2FF +Y2NSb290Q0EuY3J0MB0GA1UdDgQWBBSxHzPMpgZWuiWcLpBaO1Q/UkSXkTAOBgNV +HQ8BAf8EBAMCAAYwEgYDVR0TAQH/BAgwBgEB/wIBADBMBgNVHR8ERTBDMEGgP6A9 +hjtodHRwOi8vcGtpLmluZmluZW9uLmNvbS9PcHRpZ2FFY2NSb290Q0EvT3B0aWdh +RWNjUm9vdENBLmNybDAVBgNVHSAEDjAMMAoGCCqCFABEARQBMB8GA1UdIwQYMBaA +FLQYhchKSsUSevJAOd7E9YsefkrRMBAGA1UdJQQJMAcGBWeBBQgBMAoGCCqGSM49 +BAMDA2gAMGUCMQDtid0qUz8rNZM6RL6rZJFkp/TnGK02NDJxagGxALYb/fopOFTi +o7vPa5tK3AkUTYkCMGPRO189BXa1pCHN+f5504WalgQtwCXBVGuDRikyMGQlQ+pl +bj1WIHraEHemKemcSA== +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) TPM 2.0 RSA CA 039 +====================================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIER44eKjANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTgwMzIzMTE1MDM2WhcNMzgwMzIzMTE1MDM2WjB2MQsw +CQYDVQQGEwJERTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRMw +EQYDVQQLDApPUFRJR0EoVE0pMS8wLQYDVQQDDCZJbmZpbmVvbiBPUFRJR0EoVE0p +IFRQTSAyLjAgUlNBIENBIDAzOTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBALWm5gz88K3Sy/isxkOOI6CgwdMarVGWyplY5lA4IuFVBXhzAPkJ9j7V2J1r +0MYWFN316C7CSq0Egzl4lhorCWxBwAzRtJyze1O/whfhDIt+vz5Y0oWZf6VJ+Hm8 +xUGC3Y4kiOOoxwcRj2O6je4pG2IQFNOjWJRptedpVxs40FfwPzQyQ02QlbKCimxm +fv2j2QWbe5/zXZDvu1tit+VpsdArlVY/50d1yZtristSNAJDSqujYv9e1P7p3HWn +0u+Pu39RLmVUdkxZhmc5BlEjsicA9J6Vc43/OPrHSbTjHtR5TjuQE+Jikw+qOlsX +HNSu+7IX8fJD+VLUWpYBELrseBUCAwEAAaOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhUnNh +Um9vdENBL09wdGlnYVJzYVJvb3RDQS5jcnQwHQYDVR0OBBYEFA2ZaVGbl50y7kuA +MWVmTpzIb50NMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYVJz +YVJvb3RDQS9PcHRpZ2FSc2FSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAU3LtWq/EY/KaadREQZYQSntVBkrkwEAYDVR0lBAkwBwYF +Z4EFCAEwDQYJKoZIhvcNAQELBQADggIBAESxfFGILeC/800JE3wk6d9n/1miLP/T +pPDgET2a2zA+oTzuwTYwURM9zenYFJtooN8WWs/DbYUbUJlIHvnUDHtsBjycCHry +dGqLzK5695YZjVOfQQaMAZTYX+DbQnD/yGO8d9mOfvJ60daakjAM/vUcuJBWckN+ +y6vTMMNM8XNX6g5Clq1wwKqJfZrYGc0WBAl7Ce1PnW3JrL8fFjghPKJqx1tyEUIk +06DYktk+SMp2nZzpqu/jQeADNnTWNS6U4kPIO5za9QflknMVoOcLHzi8R1VeuhC4 +9JHaTjvQDOG3vu5cAI3B0Pcwjra7D2XIhevZMXKFwG2c917LtTBs2eSdX96veu1w +AUcSm0mdkJsasV2GtPzBuidA1da2VreHZbj++WMFA9b/RPvDVuZb4OTSRlZ4bsy2 +HgZm9emRv81xPt+w7FRsDvHRh9IXeuQLSuRTyasuiwjuzGbshLeZ+3TgH/D+3Ahv +gNzCtQgc3DH/zklADnbndVS6B6Y+8OoCwhKRTNwhESPObYr/jD0LyU9+cYW6hHG/ +Mt3w33Ot4Zl5YlGH5tWGOputa075PKGUKB66tOVLqtiU3A/T8iO4TxAk5r3u+WcN +dp/KYlZfHphTyxL76jUpdhOg5vq3KIiNOo0B0DPBrI9hu0zv2ixQ9VrrTNmSqPfm +lS0hAEXMzh1T +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) TPM 2.0 RSA CA 040 +====================================== +-----BEGIN CERTIFICATE----- +MIIGpTCCBI2gAwIBAgIEEpl+qDANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTgwODIwMTIzNjI0WhcNMzgwODIwMTIzNjI0WjB2MQsw +CQYDVQQGEwJERTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRMw +EQYDVQQLDApPUFRJR0EoVE0pMS8wLQYDVQQDDCZJbmZpbmVvbiBPUFRJR0EoVE0p +IFRQTSAyLjAgUlNBIENBIDA0MDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBAIvCHKesblOFZ8vmu0+E9ymDL1ebAXShjihlfPB52Zul1GsSzkGZjikIMAUE +E8WsSCl4mNIzDKm76bfTPfjEo06Ztp327LwGor49sucp8S4aS6WiEJ9Ni2YuP+v4 +pPSckv7t9Hzf732YDIrahZA6RSc+Vza+g3j7bf5J7F7M/OoKrUDlgXXna4wmjsgK +kVTv/Mnqc1i8eEMaKIswmr2ZD8kEtA6OK95Q0/TaBDmIs/keGiFtokMT0/OL3xLn +noI8dVISWKCy4JYYj4yYs7IToAz2NhX1iS2T/L99AzNZIegw1hQ4cUTvL/yIuM9e ++e3+dQws0N5Vgcvfp/KMUKPq9aku8B053Gz3fL3jNCF+bT6uBxB9OE0dTW74go8Q +KO8TACNryjpGe1NdZGcnNjmY3LySDLMTwPwBBjin7BFYkQYLMT391ZG7LPO7Hv2h +mWjGHZ/Fjv7SY1xSCvFL0Ll+R4Z7WNOKDNIH0wSEHOW6k3tBQkYgaQO/+blbkWsn +YSCzLCuxntw0X2j9MSHABRzycw+Jfjp/6ya/bjL32FU9RGQRO1aOvYvOIWvOCr/l +ZN0LZn22C6LWi+J/V3P4Fx9CIcO0daNwdozbDwKBDG3OP3gLSFbksoSgN3xtXbem +36xuJCRSjxl1lSFfbJ+GmjW7U3hA3Z2qo35tqGO/UEkI1uUNAgMBAAGjggE4MIIB +NDBXBggrBgEFBQcBAQRLMEkwRwYIKwYBBQUHMAKGO2h0dHA6Ly9wa2kuaW5maW5l +b24uY29tL09wdGlnYVJzYVJvb3RDQS9PcHRpZ2FSc2FSb290Q0EuY3J0MB0GA1Ud +DgQWBBRE9bvUvZBBpOhb94vU3dAIBUA5sDAOBgNVHQ8BAf8EBAMCAAYwEgYDVR0T +AQH/BAgwBgEB/wIBADBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vcGtpLmluZmlu +ZW9uLmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNybDAVBgNV +HSAEDjAMMAoGCCqCFABEARQBMB8GA1UdIwQYMBaAFNy7VqvxGPymmnUREGWEEp7V +QZK5MBAGA1UdJQQJMAcGBWeBBQgBMA0GCSqGSIb3DQEBCwUAA4ICAQB3Bj9GzKLs +y5r41nMa69j+Jg3FPq0uQk8XQY9xzDserF0kK0j6wEHYP47OJ749pxn9a+e//VMJ +cdfw/dDF/nPFlZ0pOA1XsdEpJZTt5j+OHDg4Z0ToAWSbul8gd/cOZa59RJlnvqjk +z8627Z3L/V9opIcMvgONgU+e1tLvjhu8zLL0U8EW+nHCJKH4bTY2r36baWyXa7nZ +XewzFl24zq5qweLRfx6fi58mEu8cqzDRwkbqb3obwZVW9fRagv5T1CWQInlMbbET +Aln0WH1Kw1XvqOBkQ00dw8EOzbxxuD+JSqjBbqGzh1qeL/HDIRh+v4Qpbcaz6r5y +CRFxu/nEchIBGjdUkVdGD0AblHV7joBWnr9eK+qD6uBNyAIl3rfjVNgG/M77YrZT +aCF29ONfXoHjVPMovDJAjCJyW0/HZkSKIoPK1ZkVNNotHQCHOhHSNScy/B1HvMTh +oQKkWLegoonMVDwzDqFT2H65e0FLVO/XWKTEW/z8WRbQ8812J1BSXGdU4jLWunmR +xlGDYdxaet1j2LXvOOsyxfoyVi5SgDnHWyHGX6071s5p3rQcpiyxJEh0+4khuV5V +1P7YXig5hiAEXlYrNByRGiQg4hUSEBQehuvnhJB0ZiLyoXaCulmT9o4ctvM2WThd +2sieTn6+DW9ln0H27BBN+AvkIhTKP1ChMw== +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) TPM 2.0 RSA CA 041 +====================================== +-----BEGIN CERTIFICATE----- +MIIGpTCCBI2gAwIBAgIEScYOvTANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTgwODIwMTIzODQ0WhcNMzgwODIwMTIzODQ0WjB2MQsw +CQYDVQQGEwJERTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRMw +EQYDVQQLDApPUFRJR0EoVE0pMS8wLQYDVQQDDCZJbmZpbmVvbiBPUFRJR0EoVE0p +IFRQTSAyLjAgUlNBIENBIDA0MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBAIP4Z5VoOlFJqvY966nmrBRV4RH0KRC/aW6E2+Cq+aT09+JSAOqEDg0TE6Fb +Tb7Q/fn3FlRCIC0MCyl7p7y5E8+VDd+og6cZ3E0ppPVsTEjHplIq9QnxnrKu5D8o +yn9g/VGBogAsm1UTNN4G3f5l6fQft3XsX8vH5k1g7QcEVNXNE9a8gw6NDNr8ZCLO +yvg5Sa88v6kq9CghNVjiSIQlKaJ+9uwJO7SyCAINlL9ChJNNTP2jD75H/6ZCGZdX +cSZNNNPW/wAyY7zkZ57BFkBakMVeKmmMnaJWF0xV2BlbHFgcm1PHMTc2qV32hBeJ +pA4Secgr/RzvrC6M/Vk4kgclxIQU865TP06w2xTLVx9bE841cho9NCiXG8xgEzZ3 +yOuQ+97K/5+LBNGr8kOdYxEXkiL1ywjEYKQDzfSQJMjI6AunycUqLQgkH6T38rEc +FGJQ2/EbAD8zj/HkMjPzSQdqzYSlqcmKZ74FBsfl7yf4H1f8rj++NlIL94VAmj9W +I4WmnMy7MsgUfRfaZN/kyT1s/qwK5bwpv9oLfIVU780F2FjvBJFSytPZGjKsDYiC +3wIw0XdWv9VMws39ECiId8J6d+NnadCW+JLVLPl/AskdJhscELQdfgF2/TyI3EqS +A/2UySeF5OZ385VLsXiF+ASNKjv8nwwheQsqx5/qsRydKa15AgMBAAGjggE4MIIB +NDBXBggrBgEFBQcBAQRLMEkwRwYIKwYBBQUHMAKGO2h0dHA6Ly9wa2kuaW5maW5l +b24uY29tL09wdGlnYVJzYVJvb3RDQS9PcHRpZ2FSc2FSb290Q0EuY3J0MB0GA1Ud +DgQWBBRW9rWXOWMBGFuR2ACs7pFiGeOmuzAOBgNVHQ8BAf8EBAMCAAYwEgYDVR0T +AQH/BAgwBgEB/wIBADBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vcGtpLmluZmlu +ZW9uLmNvbS9PcHRpZ2FSc2FSb290Q0EvT3B0aWdhUnNhUm9vdENBLmNybDAVBgNV +HSAEDjAMMAoGCCqCFABEARQBMB8GA1UdIwQYMBaAFNy7VqvxGPymmnUREGWEEp7V +QZK5MBAGA1UdJQQJMAcGBWeBBQgBMA0GCSqGSIb3DQEBCwUAA4ICAQCqOpPQfLil +RakU9Uv1gzhCK1UZJsLMDtk1aD4tRGgFqZB9QsBjBpaD+LwCsgSfmUgCdiYoBY/d +NMRDxqacXqX6FRun9v8JjfBd5iFDZ8rtPTNZv2grWqc9Hug7mgYIp3/+6bTIi6c0 +pEq+nsKIkHjIzDvgqv6iLGxzgJm9OjDmYp7k1zuax8dICVvafilp0rK1yieWpaAj +w31ns9Txm4Hruh51Y9uzNFNj9EC5StbjVxg8qeZCk5hS76mU2fPsa17iHpLU7Vft +VvKyPMjgpSxbIVWLt+XQbnVZdqAva5gGzxEY7TOlTUq6Y7VjC3k1R76uP64AXmIx +OpZ4wN5gs1vdqs1SjG6qRLg9qmYjvxbDHlHg4MDRTkLxDjvbllWS2Fi3tNPU/U48 +e3ZA3N2JTxD4wSfiFOvWtYIUgkyHVVgZFfJOY/jCpCnMVJSbw4ZWwDdemsQX/0cz ++UyaxM/FnvYuoQBBzyP0kISwhf7NkqtKWsbPROFuasc5QoEL/9XrLymXfGvnH6yz +i9Wr2vKLkpRASz3To0Pvr/fXMH7fyFL6wmtPvYoZ6xcXQdPRC55254oDxGwY0KbG +2m2793RJBNbWVy5IWHgLpRGum4PpJ4Lq66SYKqLAENqC4BytzcW+rpo8gPlbHVu/ +lzSuZgod3dAJpbdiYsm6GqRokX3/X9Uwjg== +-----END CERTIFICATE----- + + +Infineon OPTIGA(TM) TPM 2.0 RSA CA 042 +====================================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIEAPKe0jANBgkqhkiG9w0BAQsFADB3MQswCQYDVQQGEwJE +RTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRswGQYDVQQLDBJP +UFRJR0EoVE0pIERldmljZXMxKDAmBgNVBAMMH0luZmluZW9uIE9QVElHQShUTSkg +UlNBIFJvb3QgQ0EwHhcNMTgwODIwMTI0MDAxWhcNMzgwODIwMTI0MDAxWjB2MQsw +CQYDVQQGEwJERTEhMB8GA1UECgwYSW5maW5lb24gVGVjaG5vbG9naWVzIEFHMRMw +EQYDVQQLDApPUFRJR0EoVE0pMS8wLQYDVQQDDCZJbmZpbmVvbiBPUFRJR0EoVE0p +IFRQTSAyLjAgUlNBIENBIDA0MjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAIVUeKYRnVu2bZCwKKd5zH3oOYz73J3ZPoMviq90y51mccnCiydAwR5k+uSr +NBjIUUVpQc11K005HbU42lA02XHBlchHVAd1rHPUp55Qvscsh/OU0MTV7Cb7LLnS +Mm9hD7K5bwdNjnSxD6gayoBwAOa5p23FBuqCiUPNzUD+1rtrkYyFD3t8WmnDbfxe +UWh5wWzIV0PGV7sKPOov+IXEfXFF+fWAwsGXTPi5+cibRLwoy88Rk/+vRLVxg0eZ +OnxH8B+qcpEIPmXfxbdGqUoY82icT1Nj1EjCjkyMTAxH5Q+8PVDHDjyRLNg+6aYt +MXYTX0D6MxhobOVjYLgZAnQPlkcCAwEAAaOCATgwggE0MFcGCCsGAQUFBwEBBEsw +STBHBggrBgEFBQcwAoY7aHR0cDovL3BraS5pbmZpbmVvbi5jb20vT3B0aWdhUnNh +Um9vdENBL09wdGlnYVJzYVJvb3RDQS5jcnQwHQYDVR0OBBYEFF0IFZUfX2Bjimnn +JS8+xL7NdVSyMA4GA1UdDwEB/wQEAwIABjASBgNVHRMBAf8ECDAGAQH/AgEAMEwG +A1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kuaW5maW5lb24uY29tL09wdGlnYVJz +YVJvb3RDQS9PcHRpZ2FSc2FSb290Q0EuY3JsMBUGA1UdIAQOMAwwCgYIKoIUAEQB +FAEwHwYDVR0jBBgwFoAU3LtWq/EY/KaadREQZYQSntVBkrkwEAYDVR0lBAkwBwYF +Z4EFCAEwDQYJKoZIhvcNAQELBQADggIBAEbItIpYAO2jCA78oqKiTxuMnUr6uUzi +EKrzKe9nss4FfJbqx9s7E4WKlUW51TnJ1rysE15WHi71k80qNXhwZTykBmzmd6qH +JsR17e1JqnotdmA16z5Y6vC3kp9gGa46Jxqz+8SFkGfkwKNzvBwjlixWMcWdWw0A +aBKhoyM0WGNZgUvuSvCSL8l4rwyuCcLBp2ls7hnU1p8tvvgZSlbAjp4ulSNUTfIK +A4PQGLW9YMKhBjq+q7S6ZmWp5080nikyk7bvfI1wXWqlPmIwiSn8+7zKmgjbMxd8 +HN/gKNGXuNhQbG9h0tKFgsDufQIffzEZY0rNrRAkunOJTZrCG6PVJntP7MGfrtbN +RJVAqb5T2+WMiaJj4iaflP12aStL0DoHnM53uNQ6lcWe/uqzLHMnjc49tYWCf/Um +7yeboZF22bebjkseeKhjoOlm+lnm+3FcJrgwXEBq9/5EnrKc9zuZhmuwMB5JFtOn +VhRxDXvI3qj88PRt9CNoQMV3MFS6xofYTyoCqcG8Fe5XpZhLRRKLaMaK3VW+4mMj +67/QGXfGdF7f79SrTjsxGM8LNxcQnqURbWEbw2LQ24B5qdxjB2UnlzxSgq9LDpmx +WUcE/gwzHxlU/VOsYZPqpZoe8qHYALtZgnoNK8U49TMz/nqWpRp/rw0SkI/HTFpJ +tczrRcnoB1PW +-----END CERTIFICATE----- + + +JSLEPIDPROD EK Platform Public Key +================================== +-----BEGIN CERTIFICATE----- +MIID3DCCA4KgAwIBAgIUTunPNQNF02rDLKnlu+pbcfYgrRcwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMjAw +MTI3MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBmzELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xNTAzBgNVBAsMLFRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIEpTTF9F +UElEX1BST0QgcGlkOjE5MRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnYB3CwWkfFdnJ9vHIxlxy9MYbbzB6jQ0PyUzlkTF +GZgEAafbmGoWdoO8j5qQHwTLe441dO8fTwyRDjKjyuNdZaOCAbQwggGwMB8GA1Ud +IwQYMBaAFOhSBcJP2NLVpSFHFrbODHtbuncPMB0GA1UdDgQWBBT23K44CDJvEKRq +YtVf4KnL6EGj1DASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAT +BgNVHSUBAf8ECTAHBgVngQUIATB4BgNVHSABAf8EbjBsMGoGCiqGSIb4TQEFAgEw +XDBaBggrBgEFBQcCARZOaHR0cHM6Ly90cnVzdGVkc2VydmljZXMuaW50ZWwuY29t +L2NvbnRlbnQvQ1JML2VrY2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMGQG +CCsGAQUFBwEBBFgwVjBUBggrBgEFBQcwAoZIaHR0cHM6Ly90cnVzdGVkc2Vydmlj +ZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS1Jvb3RQdWJsaWNLZXku +Y2VyMFUGA1UdHwROMEwwSqBIoEaGRGh0dHBzOi8vdHJ1c3RlZHNlcnZpY2VzLmlu +dGVsLmNvbS9jb250ZW50L0NSTC9la2NlcnQvRUtfUGxhdGZvcm0uY3JsMAoGCCqG +SM49BAMCA0gAMEUCIQC35k/pck256qAn3p0KVsodOk1Rv9Uw6oYewjJSR7ddewIg +VzJh3HspyWfCM0RWCfRem4f+6tmvu//747agNqcHHFI= +-----END CERTIFICATE----- + + +LBGEPIDPROD EK Platform Public Key +================================== +-----BEGIN CERTIFICATE----- +MIIDvDCCA2OgAwIBAgIUJMaOmkBae0m0M3onhTGMSyi5URAwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTUw +NDAxMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBlDELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xLjAsBgNVBAsMJVRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIExCR19F +UElEX1BST0QxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAARj1wH3vjpz0n7HixEdu/Q8iA3XjCcDterGhwRBKnuFu/uQ250j +S3Vrf9VYlTmUPD9EHdUwwCrPeuRbrJJ8+DKmo4IBnDCCAZgwHwYDVR0jBBgwFoAU +6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYEFCz89DsWyL/HgknMlx7lcyTW +OfB5MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMBMGA1UdJQEB +/wQJMAcGBWeBBQgBMHAGA1UdIAEB/wRmMGQwYgYKKoZIhvhNAQUCATBUMFIGCCsG +AQUFBwIBFkZodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2Vr +Y2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMFwGCCsGAQUFBwEBBFAwTjBM +BggrBgEFBQcwAoZAaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NS +TC9la2NlcnQvRUtSb290UHVibGljS2V5LmNlcjBNBgNVHR8ERjBEMEKgQKA+hjxo +dHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS19Q +bGF0Zm9ybS5jcmwwCgYIKoZIzj0EAwIDRwAwRAIgdfPUh1wH/eKcByB2BxrEP7/4 +bt3FyVJvQBhfPnBOmkoCIDFkZmbIDhXdlPOAvJiejUgHG+KaREnUxSKeDk+XgMDS +-----END CERTIFICATE----- + + +LKFEPIDB0PROD EK Platform Public Key +==================================== +-----BEGIN CERTIFICATE----- +MIID3jCCA4WgAwIBAgIUSuGA1U3y0XMcqbGsJZXvvFkfCyQwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTkw +NzMwMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBnjELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xODA2BgNVBAsML1RQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIExLRl9F +UElEX0IwX1BST0QgcGlkOjEwMRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAEj9WEZ+vecTwkNMPfCswILr2P4rqdDduq/GdS +kKY+U8AnqeOpWh4uDbc8VmSZ9rs6yAG5dqd12r4h/oKdUfQtp6OCAbQwggGwMB8G +A1UdIwQYMBaAFOhSBcJP2NLVpSFHFrbODHtbuncPMB0GA1UdDgQWBBTKcSqfh15I +zee/ZX+3JixwPv9f4jASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIB +BjATBgNVHSUBAf8ECTAHBgVngQUIATB4BgNVHSABAf8EbjBsMGoGCiqGSIb4TQEF +AgEwXDBaBggrBgEFBQcCARZOaHR0cHM6Ly90cnVzdGVkc2VydmljZXMuaW50ZWwu +Y29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRm +MGQGCCsGAQUFBwEBBFgwVjBUBggrBgEFBQcwAoZIaHR0cHM6Ly90cnVzdGVkc2Vy +dmljZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS1Jvb3RQdWJsaWNL +ZXkuY2VyMFUGA1UdHwROMEwwSqBIoEaGRGh0dHBzOi8vdHJ1c3RlZHNlcnZpY2Vz +LmludGVsLmNvbS9jb250ZW50L0NSTC9la2NlcnQvRUtfUGxhdGZvcm0uY3JsMAoG +CCqGSM49BAMCA0cAMEQCIGx/iZo9bQm6PjZNlkkvvlys2L9ZvRxnzg27zVrvkOIK +AiAMMcXHdgsuLfQtUNep+uycG95uBc6zu05gZMTVMhA21w== +-----END CERTIFICATE----- + + +LKFEPIDPROD EK Platform Public Key +================================== +-----BEGIN CERTIFICATE----- +MIID3DCCA4KgAwIBAgIUAu3ZmDsi1KQeQl9cM6ifUHuup2YwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTgw +NDA0MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBmzELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xNTAzBgNVBAsMLFRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIExLRl9F +UElEX1BST0QgcGlkOjEwMRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEiUVjU37rsmLCoQ7MYeOCXxbOvE7yJZ5jYkFvF1tL +stZyPkVPTUS7wkMg72pweWAVCuNYBY+3OdtT3XEzL2YJ/qOCAbQwggGwMB8GA1Ud +IwQYMBaAFOhSBcJP2NLVpSFHFrbODHtbuncPMB0GA1UdDgQWBBTxi/gccYC9QSOG +RsIW779umVLPGjASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAT +BgNVHSUBAf8ECTAHBgVngQUIATB4BgNVHSABAf8EbjBsMGoGCiqGSIb4TQEFAgEw +XDBaBggrBgEFBQcCARZOaHR0cHM6Ly90cnVzdGVkc2VydmljZXMuaW50ZWwuY29t +L2NvbnRlbnQvQ1JML2VrY2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMGQG +CCsGAQUFBwEBBFgwVjBUBggrBgEFBQcwAoZIaHR0cHM6Ly90cnVzdGVkc2Vydmlj +ZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS1Jvb3RQdWJsaWNLZXku +Y2VyMFUGA1UdHwROMEwwSqBIoEaGRGh0dHBzOi8vdHJ1c3RlZHNlcnZpY2VzLmlu +dGVsLmNvbS9jb250ZW50L0NSTC9la2NlcnQvRUtfUGxhdGZvcm0uY3JsMAoGCCqG +SM49BAMCA0gAMEUCIFSuATZaoaWDRvFFN+0Wvzwg1rJqzQvNdtLKrDRUeRlsAiEA +lKo7/80b1x/0w7rYYY3N26Zd3IWTYMpJGL5OCvjUzfc= +-----END CERTIFICATE----- + + +LPTEPIDLP EK Platform Public Key +================================ +-----BEGIN CERTIFICATE----- +MIIDvDCCA2GgAwIBAgIURR2MSilWjn/sh8LzdhFy5KEdm2YwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTQw +MTIwMDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBkjELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xLDAqBgNVBAsMI1RQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIExQVC1F +UElELUxQMRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEcuwvyNIK+oJU1UovTP2L2QXVQkWmWpUO+QrNNk5F3q4t8PbnEiFi +TRj5SUcKq6lcfvLzxJr0d7NpjfICAvBELaOCAZwwggGYMB8GA1UdIwQYMBaAFOhS +BcJP2NLVpSFHFrbODHtbuncPMB0GA1UdDgQWBBSOGthGk9XYmxRyzY+ZkHbtxBFU +ADASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjATBgNVHSUBAf8E +CTAHBgVngQUIATBwBgNVHSABAf8EZjBkMGIGCiqGSIb4TQEFAgEwVDBSBggrBgEF +BQcCARZGaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NSTC9la2Nl +cnQvRUtjZXJ0UG9saWN5U3RhdGVtZW50LnBkZjBcBggrBgEFBQcBAQRQME4wTAYI +KwYBBQUHMAKGQGh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20vY29udGVudC9DUkwv +ZWtjZXJ0L0VLUm9vdFB1YmxpY0tleS5jZXIwTQYDVR0fBEYwRDBCoECgPoY8aHR0 +cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NSTC9la2NlcnQvRUtfUGxh +dGZvcm0uY3JsMAoGCCqGSM49BAMCA0kAMEYCIQDnoZ1uLFe35n9Sy2piGvcJj6Ma +lpdPJfEogmZLu+SrAQIhAP0B4jPnWcFHPDIlXh2WoOysRbOOkOff78W8a2/9td68 +-----END CERTIFICATE----- + + +MCC PROD 00001881 OnDie CA +========================== +-----BEGIN CERTIFICATE----- +MIIC8DCCAnWgAwIBAgIUZi+xu0T2Z9Z3QmBZ6iOovdIWCc4wCgYIKoZIzj0EAwMw +QDEmMCQGA1UECwwdT25EaWUgQ0EgQ1NNRSBJbnRlcm1lZGlhdGUgQ0ExFjAUBgNV +BAMMDXd3dy5pbnRlbC5jb20wHhcNMTkwNTAxMDAwMDAwWhcNNDkxMjMxMjM1OTU5 +WjBIMS4wLAYDVQQLDCVPbiBEaWUgQ1NNRSBQX01DQyAwMDAwMTg4MSBJc3N1aW5n +IENBMRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMHYwEAYHKoZIzj0CAQYFK4EEACID +YgAEAyt8PUvNaHB0Z+a8lZbzruMMTSZRdAPbyP5rso75X8zD8bRaLd2Imj/Nsqfn +kcweLFjp/DSQrDErBOy90DBzLnvLQUv5tcm7nBmuYudcnZHFmTYWm8p1aPy3lS9r +6IoCo4IBJjCCASIwHQYDVR0OBBYEFPMHujM0fCg6HgwVCK0C9cjKBvReMB8GA1Ud +IwQYMBaAFGGaCniWiAPMYZCopT+QbXV8n2lqMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMGcGCCsGAQUFBwEBBFswWTBXBggrBgEFBQcwAoZLaHR0cHM6 +Ly90c2NpLmludGVsLmNvbS9jb250ZW50L09uRGllQ0EvY2VydHMvT25EaWVfQ0Ff +Q1NNRV9JbnRlcm1lZGlhdGUuY2VyMFYGA1UdHwRPME0wS6BJoEeGRWh0dHBzOi8v +dHNjaS5pbnRlbC5jb20vY29udGVudC9PbkRpZUNBL2NybHMvT25EaWVfQ0FfQ1NN +RV9Qcm9kdWN0LmNybDAKBggqhkjOPQQDAwNpADBmAjEAjz1UnT4SgJglAgJtSvpQ +eIrtmNHeA03tlwNxgGoTm+8jPLd/59E/2mwIZT2eeQ2ZAjEA91DbMoWvfI0mYR0Y +08hIx3A4C0+39WPcNv+uirNnBOn09EACxfVfWijYLFljXL0A +-----END CERTIFICATE----- + + +Microsoft TPM Endorsement Key Service +===================================== +-----BEGIN CERTIFICATE----- +MIIGCTCCA/GgAwIBAgITMwAAAFm4K9/t6wIyPgAAAAAAWTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDMyMDE3MzEzNVoXDTMwMDMyMDE3MzEzNVowgYQxCzAJBgNVBAYTAlVT +MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLjAsBgNVBAMTJU1pY3Jvc29mdCBUUE0g +RW5kb3JzZW1lbnQgS2V5IFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQCbi5fATDXjleuXc21QiMyPmeUCjF4CJ8VHFvJHxllsgpNJJ8Wgt7wd +IF1HMbldCf3EL6HIzRI4PSZYD0QdO9SkDRH5ptQ8FOrSwYHaNh1BIduYk8L0xEre +q07zwmmUKMMoyyA3FniS1VbYMv2wFzJaqs5RofDq4zEZq0WVC+GIvv88sUoMmsUg +KgjB2VjSs9v0tJmi74HQM9RSayAmnjUHeFAegpYkXCfrB+OEXefmjNBQlMeFqY00 +o+LmfwRyoe37UTwXo2AiZeMUZ9nccRlCi85pStx4vcwxuxJgxB5cjlDW4xHRU+EL +XTEtvNmIfNtQRbcngVXhjUfYT13cUbzbAgMBAAGjggFoMIIBZDAQBgNVHSUECTAH +BgVngQUIATAdBgNVHQ4EFgQUeRAMLqNcT8FL3hWbVjJvtzHR1RIwEgYDVR0TAQH/ +BAgwBgEB/wIBADALBgNVHQ8EBAMCAYYwHwYDVR0jBBgwFoAUeowKzi9IYhfilNGu +VcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDovL3d3dy5taWNyb3NvZnQu +Y29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIwUm9vdCUyMENlcnRpZmlj +YXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYBBQUHAQEEcTBvMG0GCCsG +AQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01p +Y3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUy +MDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCHdUGF2gHV7TW18ElZrOCRBrVJ +yu3wDmt8dsTlTHaFyUA1cut3baIAansPFue5afbWpXNOe9VZakPQABm2P2BBtpEV +tVGl98/Ifxgq/QRyln4gDCGWOb49hnDmyX+kn54cFnLLb47LxSSEpnAQEfrRTvsg +ks7b/drzQa8lp5kJkW+KxPL0r9ajvcA08UJmK6znKA/Oye4UBTzavs2axKoaWm+o +8K3EBDOSAj9CZIaLgAeJNO2DGAyFBgzGbBL9MZR0lMyHeOzWMCST3L50g3yrCiVf +X86bUV3bAYE3Kqa3oCHw5Mw50gvcFNPHmMbxcVXRlQ3PtfvdSpw3mDGGm05fFycy +2omOSdMfKj6PgvcUkLet12xzAHeW+K8ikpZdHNJkQoRoBNcZX1Ek1aTuA/hn+0m/ +Vnqd7+ohNVpknpRcrXjwuWNrDLavkcoQlY3JX2dYG0Nc6QHEjsVEi052EfIt5urD +AUEXcdYydBxoMf/6MLSGiKiSsfQbOrYBz/nrbRsoWeM/xf1iQD00Qw2ANw3TdTY+ +fi4MiwReUu3B5o2SkgxmHnV1y6H+bQqkLmOPLc0qtAWFq8+PkPo5G7fj063djT5M +Ukcw+dZ9iMawOAyzP0EbNIgY7GaB9nlV4zzIZlqst4I1orhG9hujaOjWGYtBfTZt +JlC5INCx6XHHd6Q27A== +-----END CERTIFICATE----- + + +Microsoft TPM Root Certificate Authority 2014 (1) +================================================= +-----BEGIN CERTIFICATE----- +MIIF9TCCA92gAwIBAgIQXbYwTgy/J79JuMhpUB5dyzANBgkqhkiG9w0BAQsFADCB +jDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl +ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UEAxMt +TWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0MB4X +DTE0MTIxMDIxMzExOVoXDTM5MTIxMDIxMzkyOFowgYwxCzAJBgNVBAYTAlVTMRMw +EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN +aWNyb3NvZnQgQ29ycG9yYXRpb24xNjA0BgNVBAMTLU1pY3Jvc29mdCBUUE0gUm9v +dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxNDCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJ+n+bnKt/JHIRC/oI/xgkgsYdPzP0gpvduDA2GbRtth+L4W +UyoZKGBw7uz5bjjP8Aql4YExyjR3EZQ4LqnZChMpoCofbeDR4MjCE1TGwWghGpS0 +mM3GtWD9XiME4rE2K0VW3pdN0CLzkYbvZbs2wQTFfE62yNQiDjyHFWAZ4BQH4eWa +8wrDMUxIAneUCpU6zCwM+l6Qh4ohX063BHzXlTSTc1fDsiPaKuMMjWjK9vp5UHFP +a+dMAWr6OljQZPFIg3aZ4cUfzS9y+n77Hs1NXPBn6E4Db679z4DThIXyoKeZTv1a +aWOWl/exsDLGt2mTMTyykVV8uD1eRjYriFpmoRDwJKAEMOfaURarzp7hka9TOElG +yD2gOV4Fscr2MxAYCywLmOLzA4VDSYLuKAhPSp7yawET30AvY1HRfMwBxetSqWP2 ++yZRNYJlHpor5QTuRDgzR+Zej+aWx6rWNYx43kLthozeVJ3QCsD5iEI/OZlmWn5W +Yf7O8LB/1A7scrYv44FD8ck3Z+hxXpkklAsjJMsHZa9mBqh+VR1AicX4uZG8m16x +65ZU2uUpBa3rn8CTNmw17ZHOiuSWJtS9+PrZVA8ljgf4QgA1g6NPOEiLG2fn8Gm+ +r5Ak+9tqv72KDd2FPBJ7Xx4stYj/WjNPtEUhW4rcLK3ktLfcy6ea7Rocw5y5AgMB +AAGjUTBPMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR6 +jArOL0hiF+KU0a5VwVLscXSkVjAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0B +AQsFAAOCAgEAW4ioo1+J9VWC0UntSBXcXRm1ePTVamtsxVy/GpP4EmJd3Ub53JzN +BfYdgfUL51CppS3ZY6BoagB+DqoA2GbSL+7sFGHBl5ka6FNelrwsH6VVw4xV/8kl +IjmqOyfatPYsz0sUdZev+reeiGpKVoXrK6BDnUU27/mgPtem5YKWvHB/soofUrLK +zZV3WfGdx9zBr8V0xW6vO3CKaqkqU9y6EsQw34n7eJCbEVVQ8VdFd9iV1pmXwaBA +fBwkviPTKEP9Cm+zbFIOLr3V3CL9hJj+gkTUuXWlJJ6wVXEG5i4rIbLAV59UrW4L +onP+seqvWMJYUFxu/niF0R3fSGM+NU11DtBVkhRZt1u0kFhZqjDz1dWyfT/N7Hke +3WsDqUFsBi+8SEw90rWx2aUkLvKo83oU4Mx4na+2I3l9F2a2VNGk4K7l3a00g51m +iPiq0Da0jqw30PaLluTMTGY5+RnZVh50JD6nk+Ea3wRkU8aiYFnpIxfKBZ72whmY +Ya/egj9IKeqpR0vuLebbU0fJBf880K1jWD3Z5SFyJXo057Mv0OPw5mttytE585ZI +y5JsaRXlsOoWGRXE3kUT/MKR1UoAgR54c8Bsh+9Dq2wqIK9mRn15zvBDeyHG6+cz +urLopziOUeWokxZN1syrEdKlhFoPYavm6t+PzIcpdxZwHA+V3jLJPfI= +-----END CERTIFICATE----- + + +Microsoft TPM Root Certificate Authority 2014 +============================================= +-----BEGIN CERTIFICATE----- +MIIF9TCCA92gAwIBAgIQXbYwTgy/J79JuMhpUB5dyzANBgkqhkiG9w0BAQsFADCB +jDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl +ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UEAxMt +TWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0MB4X +DTE0MTIxMDIxMzExOVoXDTM5MTIxMDIxMzkyOFowgYwxCzAJBgNVBAYTAlVTMRMw +EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN +aWNyb3NvZnQgQ29ycG9yYXRpb24xNjA0BgNVBAMTLU1pY3Jvc29mdCBUUE0gUm9v +dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxNDCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJ+n+bnKt/JHIRC/oI/xgkgsYdPzP0gpvduDA2GbRtth+L4W +UyoZKGBw7uz5bjjP8Aql4YExyjR3EZQ4LqnZChMpoCofbeDR4MjCE1TGwWghGpS0 +mM3GtWD9XiME4rE2K0VW3pdN0CLzkYbvZbs2wQTFfE62yNQiDjyHFWAZ4BQH4eWa +8wrDMUxIAneUCpU6zCwM+l6Qh4ohX063BHzXlTSTc1fDsiPaKuMMjWjK9vp5UHFP +a+dMAWr6OljQZPFIg3aZ4cUfzS9y+n77Hs1NXPBn6E4Db679z4DThIXyoKeZTv1a +aWOWl/exsDLGt2mTMTyykVV8uD1eRjYriFpmoRDwJKAEMOfaURarzp7hka9TOElG +yD2gOV4Fscr2MxAYCywLmOLzA4VDSYLuKAhPSp7yawET30AvY1HRfMwBxetSqWP2 ++yZRNYJlHpor5QTuRDgzR+Zej+aWx6rWNYx43kLthozeVJ3QCsD5iEI/OZlmWn5W +Yf7O8LB/1A7scrYv44FD8ck3Z+hxXpkklAsjJMsHZa9mBqh+VR1AicX4uZG8m16x +65ZU2uUpBa3rn8CTNmw17ZHOiuSWJtS9+PrZVA8ljgf4QgA1g6NPOEiLG2fn8Gm+ +r5Ak+9tqv72KDd2FPBJ7Xx4stYj/WjNPtEUhW4rcLK3ktLfcy6ea7Rocw5y5AgMB +AAGjUTBPMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR6 +jArOL0hiF+KU0a5VwVLscXSkVjAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0B +AQsFAAOCAgEAW4ioo1+J9VWC0UntSBXcXRm1ePTVamtsxVy/GpP4EmJd3Ub53JzN +BfYdgfUL51CppS3ZY6BoagB+DqoA2GbSL+7sFGHBl5ka6FNelrwsH6VVw4xV/8kl +IjmqOyfatPYsz0sUdZev+reeiGpKVoXrK6BDnUU27/mgPtem5YKWvHB/soofUrLK +zZV3WfGdx9zBr8V0xW6vO3CKaqkqU9y6EsQw34n7eJCbEVVQ8VdFd9iV1pmXwaBA +fBwkviPTKEP9Cm+zbFIOLr3V3CL9hJj+gkTUuXWlJJ6wVXEG5i4rIbLAV59UrW4L +onP+seqvWMJYUFxu/niF0R3fSGM+NU11DtBVkhRZt1u0kFhZqjDz1dWyfT/N7Hke +3WsDqUFsBi+8SEw90rWx2aUkLvKo83oU4Mx4na+2I3l9F2a2VNGk4K7l3a00g51m +iPiq0Da0jqw30PaLluTMTGY5+RnZVh50JD6nk+Ea3wRkU8aiYFnpIxfKBZ72whmY +Ya/egj9IKeqpR0vuLebbU0fJBf880K1jWD3Z5SFyJXo057Mv0OPw5mttytE585ZI +y5JsaRXlsOoWGRXE3kUT/MKR1UoAgR54c8Bsh+9Dq2wqIK9mRn15zvBDeyHG6+cz +urLopziOUeWokxZN1syrEdKlhFoPYavm6t+PzIcpdxZwHA+V3jLJPfI= +-----END CERTIFICATE----- + + +NCU AMD KEYID CBB3F726E72C37BF7E9C6CFAA6EF06F88FD1FC4C +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAWkcYoIEaHN2cwAAAAABaTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDgzMDIxMjgwMFoXDTI5MTIzMTIxMjgwMFowQTE/MD0GA1UEAxM2TkNV +LUFNRC1LRVlJRC1DQkIzRjcyNkU3MkMzN0JGN0U5QzZDRkFBNkVGMDZGODhGRDFG +QzRDMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApMsmpNyIsRavY6bK +Sgq9DUsxBzZprBXhH+8lUTaf4K+H/hxOuoMURu+PQI6cB2OUQN2/BbE6LtLqjE2O +kCpdyn2Xi4WZ/Mg0vUMKcYqmH3LAdFMzzzHYBO3F6SS70ByAuw9hOujOX0zR+Ac2 +xzW9qrE2EhhntKgQM7meWbTocZnJv0G3+yVpZ5j1yrNhq0aupjNYF9/kGxR1Y4rh +NezWJrZ+lZYSoLlXEC6ZJalbAaVW8QKFRXO1WZP+yuv40WOghhcj7pGYDwRA0lqn +5Q4kRBiAwrUNoEOMrMHKjgacguvNRo9sYgKT4AMVuDMNGgRqxzMh7wbSkUB6dvw4 +Xm2A9QIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUwdnka1fhtc5jJH7otmouFzdnAKAwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCLuDv4 +TUueSp5xu4uXZuNY03OOUhvPD8yabEq9I3BXIxoQ5DUQsKpBrFjl0MnOQSX+Fboz +YitPg3mk0eTdPuB2N1RUrCgufb0gtoNTcOCmq59VEQYNpoYXvhEhs0KWgTSPce/l +S1vBWqq0fDRET+Vy1aZLjG+dWrCfhyRXBoEtboFhJXLWKverg+pdR2DDagptE0mo ++qtNejSJqPE1sMfVPTDZw0yW7qEcC4J1uKyW3PYGthxc2rqVENzPo4FbAe6RDOhd +tbphwt7m67VtWEEGB+CqS5NcQ3pmhqssBZUclqvi7IjQLPpnKo8uceIeZjXg0DAK +9Zf9xVrC43/WpjYfSlOeUPT4fk822uR4m4wqh9Rd2To9CBb1FK/GI2vZ05eMf5px +pMQxcnk06K/Qwz1fPS/tFO2Gy7+CAer4lIgRjLvWl8l+fqeq2pbHIOgFx+NjBltt +XSIstkLltSCmEMipZQT1hkLF9o0nhRAKP2wMQfdCXWS/LN1St7uWceOxufHbMlr6 +cWxK1pjgb0K+NPvEJKnvOxW+MK3T19u+FC1MopKPIlvWLVxT5qnK1vALqj9ESLlQ +sd/I9YSDS/SofHIf7ihhZqpADn8DDCY296/VUfhCN/LK5Tkg4oiRuc4f4FVC6PVD +KhTnNrB6O9eBLlikwOlLiExDSn2EZxWMMfELrQ== +-----END CERTIFICATE----- + + +NCU AMD KEYID CBB3F726E72C37BF7E9C6CFAA6EF06F88FD1FC4C 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAjvxJ+z8nFelVwAAAAACOzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkxN1oXDTI1MDMyMTIwMjkxN1owQTE/MD0GA1UEAxM2TkNV +LUFNRC1LRVlJRC1DQkIzRjcyNkU3MkMzN0JGN0U5QzZDRkFBNkVGMDZGODhGRDFG +QzRDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA44Ysh/JqZGAX4efo +BUEKmddcfKobewbboTmqWoi88FGVJ21NiLjHvc98FvL/ct1Ve5XZe0d59XogLRE/ +VncmfGQnw1lGghdzO53khxmqEZW31f6/xCnBSEvCSnrNJYbwi0BFzvz0OUq+6yW8 +ZdzpQrAGy3zYURv417UXblIkJ2eveLTq3Z3tiib3gmINU8aJC+hFLsxcuN9hki6K +VlJq3lh12q+pbZJEgAzh7Apu3RANNlcZTrMePQ2BrrhMYuGbQux9S7q7Crec8AZ0 +waen5yebH9XOFLOft5Xg7FrVV+FIghEC2tZHEXYp702bCQHsSEROFyL8XST0mL0+ +SbJwDEO1HbU+ODNmFskldtb7N5XoFZgodutC2etpic3UgqmhltqeecKbL9BPYj+4 +fraJpbdzAkPTlbSd+egoB+dsRS4Xvlw3NOcQWfkSl6yTqvf4Os570jJV0heYKtX/ +yro6j5Giw4/tEaVcn7U7Lc91MXLjEc6ADrcOYVfstij+oGKECag+kHhzyyqbB/fP +yxCVVtVvYnoQq2DrOgIOkCDhdGWI3raPjcUCp4fJ+C84/zMn/lfr6k8nDedQh5EA +0rPGCGyp2QHB+uhGAVNBFeAnhyD+z0aeli+osIO6LdDO1or1yAOjc/x040Yhx01/ +fEWayU7xHx1DX8ytaK3gG+54YrsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCwoFMt1mK+5bD86 +EiICUVxCDtqaMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAO3QK0myjXT/HVVxGPV1scRE6InKkMwAnUPd/GCg+x0Jz +rsNy1NAq/h51oKok36lQ3UwDVOfv9AEHgRKlzjR3fS39GQAkmh40K55dQq+o+JQQ +vmEqNNnPrVaGQASA8M3gA1elZ/qGGlggF+zjvt3awtMtncMDpN9CV5Eji18y9Otr +f3oYNcVLLBYHB1AJtpz5C+/ski77fOQgP0MiabXVTZc7lFSVGs1d2R8BpzYwa6p2 +kTSlayg0sT9Nl4uPoQwn6AFSLikU5G6lUjmfmh+/YwPLwHQSxEkKGH9pzE9o17MD +MFFal8/1uLrbZBbSLRg7A8sUE6a5bpEJzLHAAfLUluglkW8efVCA1cQ0F90orwmT +jcClgq8TLz8w4q3TlOur4LMMd/dpfJoTlj5/FyFlo13x+BgqFdGFxj/fEiaSArEE +9/vjpPvAOr35UdRNoiJ0PJXLBWGnhxA8/RjP5CzWFRpS25hW+DM1qHaVVWdooMGo +TUs8vmzRfnj7KoBRsnSspP2RmXgxB0fO5EWw+YXaRLAJJpSFwIH92x7YA4bnZdlP +6j+48jY/XmijWeWvDKudqBjEhv6pEQdKfNWTXObgAsHBS3b35cL8korN5rtMyykS +cCazP8hjuDZi55cwO/wYu1IZD7RMsKBMb7UwSFq9QQkXkgqxwMHttigEsKfyc+g= +-----END CERTIFICATE----- + + +NCU AMD KeyId 578C545F796951421221A4A578ACDB5F682F89C8 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAFcmpejOhVyE4AAAAAAAVzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEzM1oXDTMwMDIxODIxMTEzM1owQTE/MD0GA1UEAxM2TkNV +LUFNRC1LZXlJZC01NzhDNTQ1Rjc5Njk1MTQyMTIyMUE0QTU3OEFDREI1RjY4MkY4 +OUM4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAougXj6NuBrlwzXIJ +8MzPVH6zaSo37uBnVeRsFnncZqYgz7hKk66U/TrMxhkRN8SGnRCKBx+sNujxVNWT +9sH0p+LDP3ElG+IZ1mQ4EwzIhjzGO0CsGLnKQbEmAKVi0YTTr35TbqMFlT1xOmHo ++fmYiZSFd+Rm7ql8nOh5ipbkaMmBzUD0+oO5K+DOm9Y3NC2N97+npOkPAlGM6cIB +Gc6rbNf9CVYB+/PsEbit97YB19PrVhYNd00REynyJyOS2giKQ3J/QyLFniDGyBxF +CTQQY5itqXlM815NBSdI5jyy5grT4CnXzabeM7GQNh8oZmypVmx7j7O7lUDb7JTq +pCV8SwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU0EVRTP7Zl3hIzNsSYr6WUWcPVfswHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBVoWrp +sWC5REVdYYFJo6iadOgdCmxDxLtdbBsefZTZo4EYkcyISavzf7FD2VYJlbRDRfv0 +M36AqfPPQhyi0H10mVB7p8kLCQUjO1RsZzLKwbR15w5h0HoJTnjT+r//chPNn6t7 +dvIARCVXiyjmhVM1ggPtHdl7C3C9yn61HlKP79VuPAtLBM0ky+TPj0DkcgmvFxT9 +XhXd5rk1Wm6dk2LsYoCoMm2RcU/Tp5aVwTpducMBBPiZXZVRrVXlTI2Jent0/grd +7a+BcbXWLBAdhF0XWpB6d0IHK+QRyF0vTwfWjpirdf90woXFZrIVqufKJZCOmNvG +fB/uD4xaLQ2106IZ5avl9STGSsjRs7CSats/QBmbAuaZqOsNbmP+5JvnABwVYiNf +l1j72pGCRT5jDx9gJwUV6g65urGydOwMH7wNYLY+xAiyiqz9mykReS/17FXSkzGR +YvkcRPSKYl+CSq82d67Sez8ZUpnMYgKdnmPd/qBb0xFKmNQ9XI1h8xFZd9hs7MN0 +zZanILieV7Qdlyrtovy4Ngeqh9dJs6KQRBSAkgKBcAK0kiTNlBqL7Sz++Y+Ni5LM +jiq3x7uiL/9HKQZbMfAeHHpCg/6bbTufdQAH+YXQQnGG51XfRl5zllUY3PXyir// +xdTnjo0xwnWDEn0TInnBEUbRWl/cTgO8gUYSxA== +-----END CERTIFICATE----- + + +NCU ATML KEYID 16B341E381CD5C3E799AC838CA17F1F7F3F7431E 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAj0e0edm04AMmgAAAAACPTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkxOFoXDTI1MDMyMTIwMjkxOFowQjFAMD4GA1UEAxM3TkNV +LUFUTUwtS0VZSUQtMTZCMzQxRTM4MUNENUMzRTc5OUFDODM4Q0ExN0YxRjdGM0Y3 +NDMxRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ1M6N+Pb2XwUj1i +QofMfv9VCt5EZc9mbnN1RFhVyoLqeAsGQ0sGT/xGl13/JiZ6sqUC7r+kpxUJFjnP +VNbcHXFg8QYFkG4AVbj41AbY8+inRX5lYqeQafu7EZWM2qhADFjiPlG1phEXaVnD +FRF3A5qlgPVZdo46vGjHLNWDP71XlXPjZVQMJyj5ysddme5Q89tCJZzUpH3/QiZS +KYgR2AdMQaqOFIWuwXrpwteZiI42iKV00GPPvgX3fwbkbDV9fLIjtzgGMJ740azD +WV4o0r/LeKmx448O1hr/wYLkwwC3/FsgiGYqWJ0Cf+nukMWKcdvNVwLxDbKDyUJQ +yxs4VJfhBGYC/iqLLn2Q9Wj8kZwiZpDTL8UTv91JIxFilRYid1kJoN43VpRrUS1j +LpNpGUVXbc/rIxqKruvodXKut60GTRiBXWppwk6eN5fHYYobkQM0GnzSZ8pr7xo6 +3jXHONIQ/6RyBiXX44XtX9cxGMu0D4n5Z78fUsGpr8X7Ag6CbJnKb/R4HXh9BK3H +Cg3iJrhjbCDq9WB/Weh9KUYQtq8IZRGTOyt0OYEa38+lNr1RHTqWgYVMLhO6+BPO +IMr7IimeRvRRXbyyF+PWK0w81aJG2JotZUR3R7jnQjoL1HzZAjyMlnELeAF4EuUM +6sGiRl8L86hI0DrFuU6QK3K/gCIbAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSfKDm9EFbvQ4YL +hva5Xu2JPFwMxDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAG1ypRqEL3zaXeQ7oqoCPWRwhPcwrRISPnhe8dt5Boew +iYwOMzLgzmyzllZiMDzJa8kajt5rGPrD4li0Jj+DsVDa9cpSlhJBtVW9G1cAN/Td +xQ6DJEKoSw8xNixbb1sCbaxLfhzaOLBlK6XRE6nh/tF5ivpmTo7k4A1B6OujEt7V +kc3JzoW0Khac7XPvz0MgF0VN71IuYTaWl8CrUaErc5D4OUlh1gyFdqZXWJWYegQM +7dd3ONWYfLaiXz1GLD/WdcoMO2hAXHZMrJdSbeY4K7MBK7XdD17HdZAVqtCdGLkk +iVSGI1YGexpDbi/WZtH10R8AYUKK5phaSeL46agI4jpOyd6gmqn+OdjhPm2PolkD +sBONwVeqBzdEghiIXQuNV17G9v9KfqWfKVIe1d0ATB709RUOwfE+C5bYA4TzMwN4 +e+F7DRgbNKbF6398MTZIxz52pdQuAf7SKPnDq3Y20jSfIDMQdzR3lu7Q5dtaP7Zl +i3BNdfePdzuaXt7CakLHteskX0F5uqXPI4f7sm4ov/wC/6bB9OrU6N6KoiymNo0S +UkNVt9wHChoBDhn6vEmfCMpdfd1PLHfVP9SDqUMJBhQSNTcMwlCdg6LT66ka2Y2O +pGpK8ShqBh7RFQcUoLN+54D9TzkLKJt9gqpqo/cdsuVtmcGLSCbJy4X0ysUljb40 +-----END CERTIFICATE----- + + +NCU ATML KEYID 277631D059FA7A9553FB59DFD6E85BC122300FF0 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAkLpeBGbckgOXQAAAAACQjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkyMloXDTI1MDMyMTIwMjkyMlowQjFAMD4GA1UEAxM3TkNV +LUFUTUwtS0VZSUQtMjc3NjMxRDA1OUZBN0E5NTUzRkI1OURGRDZFODVCQzEyMjMw +MEZGMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAO7O9f+oe3b20lh3 +uHTSmutODxtV4XTSH6sy10nejkbDEwXAxgr6ywW5vLoV6JVNG7ixauwEU4gyDJ2Q +NOXgk3uZ8Zta+RTYyCiG84BG4nD/mLjHYB9BXs396Sgt8GMjbTb5CXkX3LoMhsZv +pMLihDBNVXAH2YMhHli9h40sdLdppyk67Fn0EN1+6gJrOuE6k7+m0qNrG8JxnuHG +xHrp5nPJdQpRhnyJ4bfKFipbhs1FqW0CNVKbNe3MktcETx+jP/8tFM6+CkxxziuV +pjGGg7sdvijB6AqW+M0UjCAmNbfGKa0uWzeWZEFDB1nd0c+qM4MComDQ0JdEjQAC +h8eFLGQxfFaVdIM1F1P/r5k6kYKDZRiZv77UWZbgHiL5198MFU3t/pPlLR3A3QJ7 +VBZsWuY+Ela+6kdzaEBZFKEUt879/BKMftMFMVCX77cy7IdJOQYvIMCRkPiUGIIm +NWXevE7ckZWd+TUi1bLgRbfni1w0RF45ViOOqa81moVfu4ol0BfK5oWXFlTLIZD3 +vyI8na+pcjQJ2DHYx+ZJAQkhjjgyn9HiL0fDaU29degJNn5Qw+FKlA5Lk5rlqwu4 +vMGuZVuwLPjbhygHjv87GD7qayOQ8fxp4qwjUvaC/1b0wReqnxG16UqP7IWk++dt +3wLb/gfjWFg9cmNf2g8pyOW9weo/AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSBPP+9Xb4QOExP +gnR1hLtzWtM/MDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAHoJ4kuMaHW2ZXSindUSwKb/3bjzU9WUiV5N3JQr2mM/ +XE+Yoasy6vHrzCC9MKZ/mWPikADxvY1tXKGMneaEs62im3SxPijkbeKaByD5cGkP +Q0eBE+lO6+wgVH0JofDxiMJ4LkGKq62hfxRNSHIDvipYVlNwwN8ZVhlNYbsDyJD6 +3k0lJk/Hhl6XkEXCcZQGUIon3Qel3U6ibeqP0DpxVQ9XcHLLJV+n/k04F4aFuTsD +/epaeiJQr4mxZEnpCZB33AimHzj4OhV98nVWQETZyQ22QclUsRUtjdqQxu8TysZm +3K8LdbHOH0ViWhoudUVM7Mn2wqswEkAWz51+0wgu1BQ7342bvRAB373fBpKvH2B6 +EaTg9A/vHefCSBI21DUSZvLp1K5PZtlrKeYPdNdM863MHdEL6/ux+C3ya5sBjFsE +xEbUDp2E3kC9sS4rVGiDFil+hzE6dcZJEcvx5lvFtfHTaLum+SBFMG6lNKXlANdi +/XVFe1cDfAwYgg8NgD4v6YSrdrumev5B16pk3uFSWHPN+8hv28JX0zqQrVjRj5gO +VQTkYy9BQpDlMpYax1FdZCFJ/Cpz3Mi1YUjodnK2DAlA75ALOJHrNNwvCJDZbu+G +e/M/psklytrVQ/LunbO4ojTdgrd4e8chHg0YeT9N5uc56yxTDcru9JUjBqo118mf +-----END CERTIFICATE----- + + +NCU ATML KEYID 2D605CD882B2BD716CCE71C90BC774D3D5BCB1D4 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAjyDKOZAblaD6gAAAAACPDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkxOFoXDTI1MDMyMTIwMjkxOFowQjFAMD4GA1UEAxM3TkNV +LUFUTUwtS0VZSUQtMkQ2MDVDRDg4MkIyQkQ3MTZDQ0U3MUM5MEJDNzc0RDNENUJD +QjFENDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMp8k1D76qIlGClK +Fk2yKIrpMwhyY+EOgw7Cn4soT/VYehHnnRgcikGZjbGnTIMOP7BWDa3TdIdguyp2 +xo5ozlbovaCuJiN83ulQFVXutuWQ3ilLwBkKnWruOTm3VgUIP+5P09qi3PcX1YX1 +MvqPvxf13wZjiVVsN5vMxBEICH5D2WbFBVmXf+nMybI4LbPzpJr8F9QtZ5aKKGfd +6yJ9iVKfthm94dkGXWNfUN8FIXNj4vPPN0eL9VfESD7PaPxMZeZqqZG++74Y62xb +RsgXyr+HV7vFS/xUA+JtQ3BCXU/2iZSCNdgkt86Me/SPcsTbHzsJEzwwHhSjAzOQ +ymSU4A3qb0hjh9A27uXy5ntKS/sR3NecMuxnqk1FVBpWe6nHGfJNVu3H6XNleq4Y +DwSWG+4FsH6JcVqhO7cdFbUf3ZggRHGFcxpkamkrQ60w84j//IG4a2hfZbe67sDS +4U+rmPcY6fB+mIQEcygj4qv2K9yFbLsPcKZoeltgH/0pCEN7vyLsRS7WArfZPdt8 +XQXDV3kctCHJAGH4kSeY1KB82NpLha/NkSTNwLwt8v9wQ37adB+2zcT7BO7gLZB+ +RkoVj0FkEa4VOvDvDtr8y9WQgTlYjVzoK5EQ5Pll0NbWNGl16o6Oonh9z49vWyII +kbM3dnfUZdW6cHRPwXqUWEO8nmgjAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRCoDUP1NVc1Knh +2FbPsAzu8GCIBzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBABEti63k1V1WQJEJCdUYWsURQCUKliS+0yiItc7o5wNF +F4M+HTzEq7oZH4eF7ZCv+FY0mx8lKvQq4jcW9avus3wIGk7ClGISLrD68vWZMjzM +Jh/cyDpOxOA+mV890oz0qhxPZdKtUZTQWjxE705O53+UpbWUexvmjv1YLQF5vlwM +TUIP9z1BpcSWFSm/DB+m9Wf2+sr73MxgfGP2TAHk2kFDl3j/mpd8HBJ5SayiGILe +1po4lxn9dhQAYktvzcC9nUM3q2tdVhC/FJSGDi95jcc9BXsozHiw7457Xktf5pSz +ncPPA95MOM5yj+VBfQQWtD1a1Qqy/GMQHiL4MOC+qSkyhx28usVZhX165hrH2T9Y +ZVxEFceygUV0+DZWyoQ6eMmPOzxPkMpvYl+mohQvB6pQkj2QPjxQjKT2A7DY1lu9 +FH1LxlISFAQvHPQkPacv4KiY1AOFkiEm04zNSWN2Oo1mdMO+luWcLtMx4JEE5FeN +Aq4BqB9NCg20kz9cSUpcpMBOjfVtiCapLcikqfFtA8z48rNatsbe2VfLPk3vZQWm +ypuRNKKkeGhoh+Yku26TZezoQL9MMxAsrkmpeE9o7ryxa/TeL692iiFAYG5UInzw +u5RGKLWpiazJZz2hVF08yIn8S7LwiFUKUcaxrauUGeKQdHu9StOK1ysK0vT5atYc +-----END CERTIFICATE----- + + +NCU ATML KEYID 35AEE736C9B4D2861309E7815C0FA4CE40D865F6 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAj7xqYC/HZ81KgAAAAACPjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkxOVoXDTI1MDMyMTIwMjkxOVowQjFAMD4GA1UEAxM3TkNV +LUFUTUwtS0VZSUQtMzVBRUU3MzZDOUI0RDI4NjEzMDlFNzgxNUMwRkE0Q0U0MEQ4 +NjVGNjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANrCXCjyWyYRTmkd +dSQ1+yX2V4FcMqOnjot2YSniFfPZ7fGwfDfXfJyeT5CVXcV0rOvtSw5hSH3Qb9V5 +UgJ973wkh6bE/y8pQ52KzXysGf5VACE7cxA4Lr5rXCRRbaX3RizB/qtvS3dc4MTj +Iz3cZ5r1NZvvuF0ECjKsDAb6Zv7v8ywbcR3OWC8n9BjVEZ5H40ohhIc3tgGlbtra +rBQ+wZat1rbhzh6Mp3kQONAPuy/ZeK3PCoEvINfsnd9JKUJOeyr/JzUTLwBnDS0z +Hjj0E7gspdR/Vp+eTD67y4czlYhQQ3LHIC24dckOxFaRfAjfDUGE46WxUYFf+XWT +RmHfYo7+GRfanlRsCYaALMT1gBqyDc2dnTZJPikd57wFGe9qcFPw6RsNHzopAUqo +oD4RhVMSAvGADwvviZ+AvS6r6i2XCsiDdNlujr9tOb1AgDY58oVy+c923ITNW4O4 +XKVBz+Sagxao0m6uIk4Bt4FSuRrvy1tfPp0/3bxyJoROu2mzLbwjQCQGk6qlJZLc +nKOBW6DunaXmDQuJivaN0b/zTtcRgnMrrebmm7hBbUspzirHhSVJ9r6HoQVAExjw +i2XZUBoRG3mew5KPYB+d26CZt74GpN/cG+K5wxBVi18xjLWInMeniyVnv7MBSB1X +k+AbccgLIb5F+QBZ+FbQyJ0eQtrZAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBREW20obHJN09w7 +hc9LLN7lO6ebcTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAJmmwj4oxZnoIuD6brxRZh6VP8DQ+7N0zpahXMwCZhsc +52JG8y0eY1gV/0VG5bzJDrJYFQimv7ZPcY6u0W6Jl02F6onv6PnYJqcOwRfnYkzx +8A4aAPxDC52i8o9bN19iweXIjjqc2ivaVKPSaeKH4lWmcrgq5oD+yLYJnhgYYlw1 +JyHB5FLP+98MG3a6beM3Yos7QI/PjzIFQx9PxFzCivWZPj29B3mVTLpDaBAT1v0C +GlZdmEWWP3sACcae7EcGDDzXWndmagxWb4F7x4kRuGwV4eSCb1QygaZeUNcvTceW +ZTgJdlp5rAn89CpyieBAYwEqJuRE4NDnnvi/CLvgtgOs/WrTMrLr9hiLufoX8iLm +oXYPkh6yZzZ/WmeHbUzvcdSOtl97001j1XKFOAYxjP6CRBQ9+OuKucxyxXorQN7P +XzX8LDly0W7Uj7crmi69MMMF8clZU5D8buyNSBjvnuLLJfUnj9NSVQpCXidyzkba +S+rfW1zr/Ny1dqOYMCvY12V1ePmcJVltlGRy8DxOtiynTJ0C7ObPe22VGpJ3RIjj +MVuBHgpqe5uWtYSzjH0Ox+2QdE/ywN8w7AfIccCj9pC9uvfziSwYyVgfQjkxvx9g +VON12786ze8WM74NX/D5s7sj29lMRZoU3LNfUcI6ekSobQDUl/ISp8xth3A6kxyU +-----END CERTIFICATE----- + + +NCU ATML KEYID 4666DE766204E74DD29BB4FDC58523A1403D6A32 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAkEVizcaAjIhPQAAAAACQTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkyMloXDTI1MDMyMTIwMjkyMlowQjFAMD4GA1UEAxM3TkNV +LUFUTUwtS0VZSUQtNDY2NkRFNzY2MjA0RTc0REQyOUJCNEZEQzU4NTIzQTE0MDNE +NkEzMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL7fgCYS8NIlRSkH +H7rycsqUOANooIsWlD00aRUuKjCO+8FINgZsETGdW8soLrmscfHG7wg8c23btoCK +6THRD2cuGwG8gmuZIXi5Vkw2H6lLKqHxj4JqQoyP9904XU6PsAmipybOuM1SaqwQ +YOI80Aa6w9AT7N30QvG/AsQAMu40xMs5PmpO3T3WJXUnOB0IiBgqBpVHesQpQ79a +dGGMu00gv6EqWKpjs4IlFhUqm/erGxtVv9tD78Et/qTMH6vR3RLW7NvhepPh2keN +zeZjW/tbyaNmuvKoc9pUKoLmJyWBsIcSZE5oUJyuYFDTJa7y94Zz2G1KLgMR26y+ +zwvVq6Wc1ZnVB91qy35LS1YxLGoK0k897EgtXhTidA7j1fYAdoJF8y+JN042kYkh +w6hymotkRcV30G6V/XKeToLE4JmafIdXzHq7XgUx+l1hhVWRTTVnjb8hz9gZ6hXu +A6P/+/c2SpHpXtKSp95mSpdg5Dl6crsGG0CPiJiWlkcaFnvGvKIihAiYWkhgGI64 +L2QTWtuG50kp2zOVNsT+albqEen+sLxZ78FLt9IUBP6HRfGkAQJxQG8fDvp9Cxwc +3oWacwI3O98sdSJBnnueBIl7XdShzHWy0mFskT8Eg9Re45HNDVrWAOB2pUWR/sCV +6AJN0zDPCj3A5P3eIOEXNONhxmglAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRYGsv0YsORhZIz +4VmOpQw3HCLFsDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAAzDdCF9ZHlMcBLzu9DCz5EKYSkxoV2oY9FAnjnjCbcJ +d2sdZWcMdCwHGAUmv+8heCSK139hX8GBfHHun7C8jSAQgLXTj1AvKRrfAGVrd4Wb +VNAz9JkGYw8QifgcgtZV18kz2KNk3zt+X4YIqHPKXNpzgmUJT3fApbo5fmUDDTd0 +4g5mQsjnUl6AJ2RC8FAIKBT8AVxVS8cf29V8wemcq2QiFKzDRsdVwI0t6zrKl0FS +AnImP/uYutf7EOaQWBgNajnnTSRq0ekStPx4KNLQgiHH7B221JUK8t7qqRyimoH5 +6iT1VykwGEDW7YXUu4wT8O3LbMMeBNT72R/04ioEOQHzKQkltiPDVf7gvYsr8H4B +cIfcNXCTqi8utfwMuVHxb9ssUzrFWBQBjHBdKny5jWBM1ogycPzJg5F1lsPP+fI+ +i+9ew6/MdgI4CNn5iP0OXnSA/XsFW1K1WGbBiutcIsUyFZpntT7jfYp3nrpplcp9 +xXvbjcF+RngAijMNfwQDliCKCHor3iz4gQIXkDwvoJKe+dWpoyDcfosgmidxx8nr +keM2pSdumxQAsZLMbip245lPRlWXJ9lrPxg8rPmA2q4tfOprcepY/Gwf7rE6TzAW +z7NBW1V2sEn0Vhs9zSksVIAOlV0mxcRnTzHCKY8H3Pu+iR7e9PtHe1nqfA+xqUNL +-----END CERTIFICATE----- + + +NCU ATML KEYID 55F4DA39CA65B6681F2B7711BC3EF208A8679D1E 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAj8MWKqvd4x8kgAAAAACPzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkyMFoXDTI1MDMyMTIwMjkyMFowQjFAMD4GA1UEAxM3TkNV +LUFUTUwtS0VZSUQtNTVGNERBMzlDQTY1QjY2ODFGMkI3NzExQkMzRUYyMDhBODY3 +OUQxRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOtDhDtIzu/l+k0K +Hqq9Yf56tCT9WSz6idcRr1yISRQWZjtQh4O8fZCwb92Kzu3Hd5OysKljqzPcMZ6+ +Nqy5laFYtC7ijOfCm/yTtdDOidHG+mpGM3rdwMD2sPu20MZHt5RRLW8AJ0zM6u/k +EH+A5S450glnEyvEOtv8HO4EqRC7r/6WP/KhAR0xSYQebWvtLH7LT0HQh5ymnNNN +zdvxRBKof3+F4XvE0CGOIRtu8QHyarMUHJJuXHd4npIE3gQHBHAkdvc33qCm4OfO +iFwNBZgVWU9id9SUEjXmUgxjSgnAblW2MqBJLtVKKLvvbdqOqZlbOYHfG1x4gM02 +LvUCIaK4Xht2B2zYsW9ChZKZb/mObx0Xn7EoY0G3j1abrJr6Ezg6gMrzS0moMFTV +UspBTLKwgqV73ydkYUoiGAYr0u6j/LWJRdoIVBATiIClGkVhaMRZaSqIGTA5ls2T +xW8w7WX7WumWYTqHetQ32VVejiisknMHB8NLerAdPN4QbbGDE/s6batpUy3/FlPU +9bxrGqiCgbvmpMcGwJp3+5K+AnExWMwMTkLSunR0ccSYXLtEtCLVeBPWRfUhdSRR +jQdV+PEHcfxJrcrb8MsaC6PJkVpSE/T16YN8Xm1DpjT73rYFEuws4ZvaF/6biZ9M +B0OXj00qSnOUwJdGKGBe9IiZlvQjAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT5X/ejvCQdj0n8 +BSrvFe/arOI9KDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAF2eKrjyqWrS+aWsY+QuiC8P3T8BYhwJh6mFOdOo0LQL +eN+VcjXVp3kV818BdmjjRzEKp5FSGqu1O/C87StTdUwOyECbJaBKIgskYCSIcJ2u +D0u9krDcsZlNn+Sl08o5H/eOR2P6Y5KVW1KIVWb3MI1qnHpwKzqtWpnHMmWsIFqr +NQTbTl8bLupIXJorwre3AwAnaAjiwJxX069bEYlfr7BwmkjiB31qRQ9i9r3Usg8P +nPYfgaTYxnNV8gKLv67rR+5Z+GsCvY8cYglZ+sFmfYEnv5Qrlp06C83NCBQFDqrv +aPMVC3o5YoDPE3ITZlVBw+QTZEO3m8oby8nkqm7QI95Y33FYIHOVwHWIxeZnIhEL +IE9ubYeurKqzVNR0lyqoqRsTqm2FuPgERNip2BK3+hs9OiqnB9tGl2cDoIHR0iTJ +WfoPfOt+yuRYNn1ZYuxDq7loWZxLzkRXiODuebkjWTYmSurLUiMdEm6CCKLff5Jl +FMaK/KXeESKckVFF0vQzcfBsM88+sRt8sqJLKZycEcmNVQGoF/0Sce6ePJ6GO68O +uj0EH6fjUfegu2nsdvzjOvff3MdEO9ra98us8GHaCRlu6AMFHhONQtmZHyPkYmrE +c/zmRxR/XZIkKtfUhzrdJH+GT1PQSwdsoUtSRyILm5WYPPEiseIFjA1Ak3StMzy5 +-----END CERTIFICATE----- + + +NCU ATML KEYID 81B5D99CBFAC98C5D61A8EBF26A86A086BFA3ECE 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAkBe0qkUhlPZyQAAAAACQDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkyMVoXDTI1MDMyMTIwMjkyMVowQjFAMD4GA1UEAxM3TkNV +LUFUTUwtS0VZSUQtODFCNUQ5OUNCRkFDOThDNUQ2MUE4RUJGMjZBODZBMDg2QkZB +M0VDRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKGXhIATpLe4gtQ6 +Q2GHSJDPsM4ETVvPXNxNC1Q46reBAMDOzKslpTPsE54kpa41LATgM8WQVZz/KScz +NeEDDyQ0sTAWxUGQcnEnzdIKoBTYbdgzgetfd0eY93nzjm0dNAMa9osjY0FTI1r9 +JzGEPoZUiEa+rejqCzVZgCOpatQVum9jXS+/p3yHnxi32KvTcc0ksYtlgRbqzIdV +NNP3FJOVr/wwMoOZhfIg6/bbyIjjRUcA+wXmG+CAAKUqxfadbKITZGJtZY0vYWq7 +EmNmAM1gLY9FpPp1y8pHotKQNuR0p2+mpLp5YHeJnmGx6nXnli60ShTg+7SNoXpt +EwisxHIrvCK6oCK1+KO8qDkLdVzeTCdfHnN5xZYleWe6TR23lpFF4oByUubZre7P +Rv8eywelwb96oYXbMLOo2UBFbfMG2fzuaeIHe9TrmVs5tVYqug7038tvQvuiYkdR +JRy85Ugoh8dncQEKwdmycl5B/l/s0v3hX0DquHqSDS7WZTC8veVrSLGPlkWDhrv1 +Z4c443pQP2+R8d85g1/V+EIb/bCc8QNIqzWIS/8bKHHlSG/7cFFfMYYRTe1igZ0W +yjT0TbJrYKfgqrAtKVW/cNRdDj5JBFspS3y6vf+FHCn+AW8vTnsX1ht7yWB9zr70 +8WFkdttxkg/h3oAIMrCamfHOZVzxAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSril4E0PFFqVed +KblxC+BgEjlJijAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAAcKspoJMOfNXFlDN3AMOB2uszKW9UcZtKzx12x/WhIn +PJfNqluC0sy+U7KLxRO8lnko3o37SJmxzzToYKp6kLU6MwLjwK6Kdw8fJ9AOSNmX +L1f4I4G1UVjvdctqHoycNbzBRG/QGohyyk91IsSJ4mm4fiVSqVPWGeS+NEiOyHUS +vNgK033RjuDC9Aj42puA6bK+OMLQK9pDctae5JHfjuXjx7fMHumoXR8eIiZPKeXD +GdLVOOH90tlbh+AR15J8vrMVW7FuwfGKU8sMGNWUQWgudeAbcZ+9WPuXkuoX4ntZ +K3DxCDSkfvC80nDYfTEjW2zy2l3THisDY6gAWd9EmKQvwk1kS9H/smN8MVJiRZDX +6uavMjjKGZ3bhasvTQ3fnqhvsTS3vOxOH+lVdQjzDRYX5L00YZTBnHVJQSfDgZ0Q +pYElmuD5XA2Bm85yXrKu8NPjzbUhaGGV87MHGknige7tnDndrFP32o8iKf6dWJX/ +HuK+8y9KYL2162Zla2RLrQBrz1J1rV+WAkDLX+LZRmiVByiUGBR5jtjwAIukj9LC +mo4OkaUbmYrgjhxZfoyDH4KqW7xip3gNtUdJbhCFZweoUmkkbKzKtvCSrXHoGZnr +R4xlyYt8bFh4EoLLXH4vfRV5oQ7IStxAthQXD0VVikU3lHVLubCtGTTIMMzIOPUW +-----END CERTIFICATE----- + + +NCU ATML KEYID A0854BD197F8212FACBA38991BFDDBF5D13CE9CE 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAkNY9jHHWJRg/QAAAAACQzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkyM1oXDTI1MDMyMTIwMjkyM1owQjFAMD4GA1UEAxM3TkNV +LUFUTUwtS0VZSUQtQTA4NTRCRDE5N0Y4MjEyRkFDQkEzODk5MUJGRERCRjVEMTND +RTlDRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJx2Uw4ANaC1bSfl +H6BLhB6Sd9ZUknEC4hxsRhB2lH3KxAPeDxIM/4ZySkIkRhd6uMajJIkVPonX+2RL +vnzEy2xJHyQvbWVyZ6gVXi/oObmmM2cMEkAyrCBXIp2JSXNdaWDozxFWoR4nLhnQ +z0Kj0EBv28JNW8718h1mi8ItgZ3C88Cej4KPmr6KRG6Q6ahq5Ov1knAjXPk5WroW +R7j4KQoMkGKqYf0R3lpzakJUEMkpvcbydA6IKYydl72kDHbqNmSW6ZU7YUheF9xZ +YRWOYgAhEpTcve5WZxsn0OyHLmqjSj150EDbkT5k7o+XZvIde8I9NEPbwW2usNPv +P9k2SD6XGn1BCNoZvhQNpVq0LpoGayh8CRRG48vEkg1K52Jj7iZw5jYteIrmiJRh +qxMiHFDH07Sd+MHDD5KN4kEMBc99ZfdtFYwtfOWAMPX+L9g+vQplHEwpc26exVat +gB1yZBg49WSZ+h2/kelPMc1F9OCjezcPcsdHiueYWrPS7OwJ9/wyvvsQmHaarLy3 +ph4knllQV5myWvjqDnUD/f1b5txP2dXdYNBxBeB2nERfYEUEevCVrErBCNNbioVP +frC87yk4ae9CXES71gPDVi1dmciOEjFO8xMfOacY3j7pS7FuFKT3hnPFj907rdNf +kR5Fgs/dlhczVcRoQnSHVhZRoh5NAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTOuY8zcJeBZXrH +L0q+UIRZxQ8fOTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAI/OAQwtMMCbpfJLzCqpeVOWhfIxOg/rm4efYndgY17/ +Hx1YDkgJoKbWH5j4NhdxqWzKgfiW9/HJ2a5SfM3e778LOITp78s8eso71qiqTkgH +KBCgzT3uaNt7pwLMNMpxNjQmpByGflzM/AJQuYsa41uHN3Zx0gJSPCozZC5tb5C+ +9nQvVauhfLiSPhXe6jfmlVat/HnlTWVrnb2NTxsAFOtOes111mxqGlW3DkcvVwH/ +RUsRPnrv6/joljv3uxjbNwbix5kvxUa2D3HslAPZFDyzt9omb3HJB4K4FDZ9sMX2 +SVgEaYIoVKeFSqkeK5RZ5WLJy5YaJh3bLOvYGeqPZAs53E1IfcLK7udRG+OrZ1qs +IZjZNt7xlQ+n2DMIf1+s0hmcn1Vz0jR8R0FV+CdW6iGZl3diGUnUrOHgh+e85jXQ +Ac1nnT9RwfSj1yCtyNNqLbmg/3HS2ydOARVIFu4FewRzUHY430zH8yH4vcTv7iO3 +5ve5FzcDugIW55z4f83TcKheIFs5WKZVgtMJIik1+7utAu7tzQ4hbQZQEGF+kZry +uUQ86eYQjs5unqPxkcLo1b4El/xlrlOH1R5aVi3nX/ZgOY4WSPR1zLQ+oT+kPnrE +FfhBzeZtM9+ox/jA9qygc/UajZtQaZ6DbX4H85RFedfBxxjMOLkpV16Xb/+0gM1E +-----END CERTIFICATE----- + + +NCU ATML KEYID CD3401AC6E1C6F93DDD869D46A518311B3747895 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAkQKr+ZQtHWMDgAAAAACRDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkyNFoXDTI1MDMyMTIwMjkyNFowQjFAMD4GA1UEAxM3TkNV +LUFUTUwtS0VZSUQtQ0QzNDAxQUM2RTFDNkY5M0RERDg2OUQ0NkE1MTgzMTFCMzc0 +Nzg5NTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ8LFl8UTZ2Ga6p7 +pWcderDhkaavthmTUEIckucrLEj599C9ggwY6cB+VIyVUuy9e9LjvCOKaSAYblQ0 +LWIFCfGu07eBw5LE8bpEsDrqw1AHSapvRFWsYZQA16CX2vhvUguxrW0UZ+LKJd9P +hMPFdtMuKeas24jbReuE2F988lDjpG0qltVV29Bd6m7uSkYT0qB+Dh/nEeYuKS1I +2mEiYS8YzO5sLOKg7fA1UnrSP4StnzgnWtuJZWYOcrpS6v2eEkOCpPwcwNOK6a2y +VDhOUgt/EFyZLYwEwjrZRDOtt/KT7MONGlmjusNRCyyS5yRH4eMOebZfuH3mzD3d +NyxpiiKTaSJghan6yutSQTI+Azj97Vrf7eZESsrdn9QQtUmlzLiIIRFnIrOxBgdo +WPyiH2BMlpYRutcJC2a0OBnwNqRihOeyJWhe8cdPTJdNPAlCSf8+E2BFM+qRSsOs +tT/PEa35XM7CRXOV8KcawWNIN530vojE5Tl0nhkAX/ghm6aqjwXsyZbReKIwE0R4 +dRxzHNCS8dQ3Bo6n9wiOERp9YNKPlMczNl0Im41+8L8wH5mhR7+77xOCvGsJKrgZ +aQqiCjT1/q4Uyrc3eW+U7tsUoW+X/cCPFUo+5NRlJJEcCSrr6FW0Rr7PZf8xf0EE +g3PaMzhZtq9smbemhZQ/MskdNUANAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQ3gzNFzq/ujWeA +4TYmNDmGocv0RjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAAR0ecpVaQhMCgcAHoN7Dq4xhKlRTSj1uToevx+RcoKl +6TuyQCkAMZ6mPC/uAJcQKHfZqs3+e4kp5r81sSs5wAKcve31AcY7MY2nRCLmdcTs +4UIoCBofYafmItLLsv29g7ZFYHRSuzgErFrxTHqj+HcsU8LlTVuQzkr93ymfJtPJ +swILHzCp0XttZe5Go16xUoWaZqLl1ca2myW/VvKAZtuowXnrRmc+mB46DdxnIutR +V5k/QX7q/p6D3WAibc8/fQwzokrq2CKZFGWuePEymz+5c5Y+Ull8l1h+ZuygvPsP +kPRRlvD990UhOUw1eRW2ZOwz0UGJqBduWS+Tq+ZzZrY0gL/G2PKsxJqHphKYWok8 +2mOzNqdVDN8VJfSCbaFZtPWaUo3GKlnC/8bYisC4JXOWQ0tdjwl0mSFeRvMaSHyT +6rBcMPlQLRBjbByFyfWpiHwZtiBobIQoCLsHDNLRYVfJpzQ8Zp4nkpaVBKhEV8x1 +DGhb6ii4pKEHdSVxCkUlMkOoSVcPjtwGsCPZpkvmfjn4D18fOjHxTdNxAr0z/Z5U +3t9i+SxnFDbE4mO5scqhBWScg5ejX284Nx4c17yCF7O4W08YNhiE8XeD03Ag9EcY +3E7QQi2u8IVuOdzVaQAW17PQfbHq/TE9kAEwR6idbmGMTIg2cx1CfHGxJb+e/PpL +-----END CERTIFICATE----- + + +NCU ATML KEYID D6F56ECFCF7EDDB7FD87ED01E127EE009A463BC9 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAkV5Ycs+IuqUCgAAAAACRTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkyNVoXDTI1MDMyMTIwMjkyNVowQjFAMD4GA1UEAxM3TkNV +LUFUTUwtS0VZSUQtRDZGNTZFQ0ZDRjdFRERCN0ZEODdFRDAxRTEyN0VFMDA5QTQ2 +M0JDOTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKCxkUFwQUiRsQ9e +5vviwZFxYrEwgFYLZbHUUFw1WkA+GH0pfvE0ReWlGSrjlI2Zip977kPqyMJxh7gw +rWsQblATO/Om4WaxwObnsdN+0+btMOh0C2rTY601YRjuUnJXPdGmQBdc/4pFBjLz +akM3LvG4+7caaRHl0lfSIwkShoFrghQFvjpXCZWD//g/mj0tFweulYKcvypnpcNc +nFwc6jixff6/J9IkcAdEDvTODn2lX59xJj3scL2Rh4Eg8EAA4xqjlK/2qs4NjWGY +iEQyRhpoIlOFX8jmuZRMVWX/iXhohMGBwtgdD75J5BZMzlSpVmLQLDU7EqALoIVb +uOFMoyE1toltIBlWWSfrKiEmNqbTqBDvlOjXlC15y5zWng1GeipHiZQoMipIQZCg +H9lhy/ISqk650qkfmyrNuqxKWsTOKU87qEC3BrX3JBQs6NINz0kcPsgltO3POUea +26gowu+ECPyeS5ZHOSSU02UqFqFARw1W+Qlr7GQ7T9xbO2IwiCo7tC7x7v2Pu0E6 +FQ3bLSErScyqzhF+nEKUDMZtukw+ASD4xO4r59xzvkWPeruyEL3Wx7NvMPSgatqA +Uz4z9hxrW4tqXoa497rhaAIt4VjpEE4M7PV3BZT860g9xRt2+deJukS0zS1e2Gew +VlN1k5Z3Itqc9AA8taUX1foMxQpDAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSkBYVZlFUvysx1 +qLCpTjYsUNVkjzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAGxXjluOIKxLtOnaQjdYnpDHuNoGXJDF2m7CVedV5RTo +ZP9tty/20BD3DPltyrzqN87DNmmMGycVan3DZaKMATIIIZF73T4J3biv6rm6Q1Vj +ldWk+uJw9+s4yUsTekF5iUbuEU8vywNYTF2pjtML5et/FxU39Fwiw2OvDQntbKmH +s1i6kP1QlBvmxXkMPud56DdrnHMJOPbQoEIxxYpe/qh+iYyZKKhPktOKobiDfqTZ +EywN+E7gzbB3Nz7V/P4qZJOTDVRVu2tx81Ms3zphcrgV9gL4e1NyVcunQXHesPGE +4yMqvtLfEUYaLspxrItV1+Vks4vsa99JEqEmyJI0Kwqxt0Sb3wykdrzPelFYZ5sI +dVzg3HcyWYrUKovjDcuN494DzYeaEyI69AP9qCwiMOE61IGB+wF+O4HONrjo4rW+ +KXJz5JdtzDylMf3Xx7zDqhsWuYbARmldqI/vx9e+dVEpwRiMBro8trmlcWWQ5nub +//nBZsTee2tBeocmH9zhOae0YEpjIxrJ4Wq+yHS1rpOE7wxOSe/IfC4b5UfnbSKc +v0oU360PinNGslOGZR4ZiJYk9+2WgTiwDm2iMJvoCMZGZPhWZ0LEb+srAW5ItUOD +kasckXjwnYbgCpI0gX90FvbFutQij+n0zz+n4VHSRO1UrQK3FdzQXzz5f6641VyY +-----END CERTIFICATE----- + + +NCU ATML KEYID E0028D87CE6C67A8751CC4B5D74F57622E75E42A 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAkb93pmfvR28bgAAAAACRjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkyNVoXDTI1MDMyMTIwMjkyNVowQjFAMD4GA1UEAxM3TkNV +LUFUTUwtS0VZSUQtRTAwMjhEODdDRTZDNjdBODc1MUNDNEI1RDc0RjU3NjIyRTc1 +RTQyQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMf3rofE/aQglSpB +0N9JUYLomwX7TLdCtzCJScCKfW5SptgZX97KxhuFba6R2qqfE1NbABvw7ZK86cY3 +8DRNtKFxG5rcA/MW5QY1fhMrwsI/2yLSwRPrgUUmip7NDTWfjKSIYN6Yso72t/Zf +r3STqckd+VZxWbhDcsTRW7uMJk/UC65A9o5Q0j0eQyRtKSrgiBOCwAXHZCZTMN+j +ZzJD4RY6DXF4YusjlrzMwsY8PR1MtUwc425VeKH7m6NYX89lKgUI+EaYW9M99uuy +z6W9DR8yKQ29aIR2LJHEdByTXx3wCrayLiHewTGegZmOb8/gtv6UQt3TEvVATli1 +LoXWq3xVMCbPuoMZQPAnmElJbKoujX4Q7AJrZtUSwezHW1ElUK41ewm5HaR3lQ/X +H+1dtLfijP0jd7ZtLwkrh5CSSOdflol6nOuPcsMD7tm8bhJXFpnDwGcz+zQYKduZ +C4HnY5LM2ENmS8TFZGevfntAUOsXkktjklXOxoTrKNjPy34aKU5dsex5tRWZHX7d +lscvaBlfgt1m+H1eEQyBn1fc6EW/NcHx8GWxk+Tnl9sgqUi/hdm42VqXHahGqa00 +We4iQRSGDPH8+jac0GLAQkvBTxeNM35v0TCUHmwXIHYWGoWaZ9cOBvRW///hX4PH +E4PPu0danDG/iCbTQ+wgDbODra9dAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQcMKsf5wMtFrKw +gJuiECRz0LZj9TAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAATnGMLwWBOChKJMnPacAydTuvIIJeW/gFZ/pYIqmaaP +O3I7YWxg2lmoej39uaB0Mdr+3XINrj9+XNwRnwOs5jamdU4tKccSGYgkb/UGI/xK +g+KCA0RFf98dNuKjwe6Go0vXryJddw/+CELR3FGJ+BFDK+/fwIWillNe5WrVGDAp +nKPu2W+9mHe8SPjC8xyq4IFZJtRSAsZX0kskqrhD2LMmfdDB4vabwzk2c86qcuMu +DVLmOsvhwBogcnCekabBt17LPEMnxuEe3Awln8Ofrhm+wwK3YVMxoy/7g4NnyFB2 +ozYvs6Ll5wfFtvdCZT0PmVQ/WgzYCyjiENRqMWLImQ1fIQhNaK3PObOa+3cXkGpP +f5RFdbf4tlcF2ICKmyCf1wbbvTnuLj9yOwjRAWX7l/8DTg0nq6QOTCJaSO84VmfG +o+PTRZq7KixM6rkkVu5enLvCamFscR7WYJKlcjdD/MYly9rA36ZVQpWIBGmTCW0y +RDxgvMcupM5AWmELlCkSbRj4R6cEqMl+njgI8h0yCrv8oezatCftaCZQYWDP7Y3M +E1mqBfaA/B09P4lpBzspc8ia/54zqdrjONFn6kjvN1jy00TQyoR07oP488zRccgH ++P1sDGXqEL/wZi9prxyqz8tIln3BJKUbbyuvmxZuc09X+WIb41Tqp/VphieXHyKw +-----END CERTIFICATE----- + + +NCU ATML KEYID F761A3A1F408F1090797B87127C2A2397C0ACA24 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAkdNFvLkryvG2QAAAAACRzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkyNloXDTI1MDMyMTIwMjkyNlowQjFAMD4GA1UEAxM3TkNV +LUFUTUwtS0VZSUQtRjc2MUEzQTFGNDA4RjEwOTA3OTdCODcxMjdDMkEyMzk3QzBB +Q0EyNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANs8lDS2GbB0NTyE +bsXHnm6+o/ObYxuQiXmDIRrEKxE9QLEGNAJUmkG8HG9gKpzcYjvCIRTjwh3HiGXM +qGqqF7opqQSoFHziXWEamnDRHqA3uOdp3zP61Cyse0cf0hv7VK237PDwfw138a0P +glB6H0Y9efhX6+pCpFnjEcOkr4t6QHwDF9CBb0FLlQz39hKO9hs2j416b0nCOVnH +nRHACjsa+P1txvIGbiIR+Z87+4j//INxu5FdtTllxCvVYtbNl+iJTaN4fvyI04M3 +YOaDFTXxl0y8D6o98upwdKuS9PzFIW0c6e2LSte1xLV72Vcf+tTD1+OxMMMDt7Oo +zg2+PURno5aQSq0hkJxXrABWSr2JKsnsWnDFQ3Trc/gV9ZfCl0fwWYCV5AMAZauy +d1T4CQSm1t9B3pYGbXxVDWjefzGrhNcVaKq/HMI3qDoU8DznhK/HXMPuT0PX0eds +A09PMlHheb/zKOyq3lPk+blSObDpvr7ZBVpS89zyUT3rwxpAQ7z8ycUagNqkh/oB +LZgegL8Xjg8PN5TdYpLtWf8MpXV8lDZMVhNNQduU02GY+PZEMJXAjcUg3I8qT9y+ +hE7oxu0cgomebwAaCwJPOuDZC+cZUMTl0vPKHIm0nBDxmCPTZmdoYl9wv2ElNffD +lhrgB8ZgfZKU8goTB2S4ct2wKgp5AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSm/r+jTrzBvknN +5iMz/iA0e2lo+zAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBADMBAxNM3mEkTlF5roAPApr/B61eDOIRdYasbA7FEllj +sJn+wwXG9ItH6chflM/Ws8C1qlL/c27OawUnDfyM+CZvY9qbUuRhxWoGxiIvl7Rz +4pWNx+HtMMNShLjyQq7/XUxgUgnjJHT5iro71t969s9zFhMJICybngDOnwUxxC9k +Ue5RPBWEEX3IwKWRiLBIyKraWALNWED4tjUKGXnEyOghJdTBzP54ITdz8+AsreYw +QqP6j4BHsNUFgL1RMuoKzwXIYOYdNZMAQlyrv3K5Y/SQ10iRI9t25nHDDoeVpLU0 +OpVYJG7Na+DD447jkC1UhPFJExgCfSDjz6GMKsHKSArLBvmNuV/M3Htccz5n1b7o +CqMvsjDq0gC6hVkIwUTPxBFZJgM/TNkF7fQ7PD1QvbUPDZxr7tPS3UhSYhDjXo9r +6QFqVAKbMaCKPUy2PG5bybF2M5/yaJGlcO++4K/9RE0vy7D3f9erHqk5nc73R/Iv ++7awcEyXISIdEuC1zzLsa6pVN+SBjWuPpLdRPJtILq/7g/VLVE5RsGOCEDzLuTkZ +gUx0OG1NxzN/xzxSlIpLzlDmstEHT7cBGRYaBHtHJ1wl1l7z4vTga1IaytWBSbQU +/aXwTzLettXl4awZtW9kVk/KWBE5oLIN+YYUffd3wukHn9LK40ijaU2zxlbdrLWj +-----END CERTIFICATE----- + + +NCU IFX KEYID 090CAAE1858A3C3A3B6D4DF8978916FB205FCA90 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAASe6KDbNAcwMjgAAAAABJzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQwNFoXDTI5MTIzMTE4MjQwNFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0wOTBDQUFFMTg1OEEzQzNBM0I2RDRERjg5Nzg5MTZGQjIwNUZD +QTkwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU+sVQ3vDjf15IqQ +o8iomkxYZLmJQdPsXmxSjLtTkEEAtLeCHVylU4fXkYaGQc820TyI9vWH01sNIKsu +C7VDiYtA5hh2jJEEIO6gx0B5CllGIr4ejgoHVF9uItHgk66RQF4WToEwJPydF5og +eiV1kS2NdoMuyqJTFQH+S30udG9AoCMyLgfkbuyUK0Yx82XWcIGPoWuJcAj+I+ky +ysnDpHN0Wu6SRfrF84zKODm/wRfmVTpBil61Q7azhwTyQtwZYbkmpAFAVJjyqC3n +HXUZS6qFGS2rNt98JTv7oDOb7Fudb+YOyZkimBv7jGDB0UwxJZ4k2eVMsPniDnU9 +xRZz3wIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUQ6/C9JJ+TKS7QSmBt8ddZmlM5MIwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBzpdT7 +U6Rx+MDogaa+aBSDNouqdNU79KFvwXcFTkPNeB6+Az7z7Ej/4M8PBu8SAyV2w3CD +Gl9OXx0i80CUaTamUBvDkDmljMADuc5358r4nOIlOj3u/m8E33OO2pEGuCUnlavY +x/V6wkqDZUVw3vyRQsQuzb1fkYixqFBt+5PyV3VFEr9tVVkaFveFy4MU+egYNKC0 ++tlI11HDNtVtxFn8/82QMTlyuo8X4o6T5sWoI4z5z7L6HyEpgdI3zT94iDd+6EnD +zGFOSPR8mRtPWhuWGn8g0a9xefSLMDfVEFMG7mQ7ripkDlKmKE1S2F1r0yoZRkA3 +deP2r88eh+oK2F0fvHpFdU5V/cHAdwTPq7C0ForBJEKZ0gHxG1tZ4dYeIMwZgaK1 +Ze3Ngzlwr7I643P87fZZoWw+3kSiraE7EA8dWiJMZpD2kUGUp4R5CDDdboWOHZRz +SK1bq4Ojv7mVmeHULBBv9chsZrmaDRU9h6AZFkNw4xGCVz9+1tyTo6UJG5L3tPld +LdgmzKg7F5WAQKpXZw+Hn6x6m1j7DIuhMJrIDRg+mBy0Li9WfvrT/AwPFFxYS1fZ +BvZjim86tP4/LNM3dRdktfwWQDGBmiwHLsdIXyRJLFhhRThZCZtSjGCnfFTKKN4F +CRJwNflhgf5/sA3NcxNLsXVvHtg/J8rtexa3OQ== +-----END CERTIFICATE----- + + +NCU IFX KEYID 11227AB228983289AD2E7EE6841321901EF592F6 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAASgIRo0C9c4MtQAAAAABKDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQwNVoXDTI5MTIzMTE4MjQwNVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0xMTIyN0FCMjI4OTgzMjg5QUQyRTdFRTY4NDEzMjE5MDFFRjU5 +MkY2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp3ySaJvd1eWUTJHM +liYUhy7q4vJ45Y8mnk3G6IKUuVHSZ5IFO2UlBebDM433VnjmDyZl6xBQk58zjvH4 +wFWiftdHjh6mXXsqcG744qHYqJdM0dEvYMzVM+HPDCRByX/L2DONCxXgGwo5Tz9T +AKq1zoqBX3wZ+BkpgTj3LOBG2MXWUa/W4+RJ6jQVZyCgmGWeKwc1o+S3IshWywwS +RR3mGMq+YkAXaQ06qGC5X+GyE7sMNYFQHZexSJYsQpEIIh713Mk8kv/8YZ9g5DxE +n8FQVAbGEHaP1WZQ7MrMvh0KfX8yeEz/FEnOaF2kkgv0nU3E7H4lf6E4oldld+mt +USUl2QIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUqGvNsVSHQCTLsw8qQGUwiabSF5YwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBgbJkK +9W34NGFYcoxsgOKHHzBsljHSgCvXDj1/SpulbyL4lX10MwLBVwuKZK3B1XGxgQR/ +5P87C+7LPRQ5eUGbnPeGMcGMRl58Brt4FbaPdwjc+t7g7m/+46TwDwikSRbA+Tt2 +FFZ2cJEWVuqKW2YVEwjy+qxBVI+0LkF5aBSeUDEiVMyZwppfMSk+bd+CzEpYIRCF +Sp0IjPptuND6zzSjC8gt7XnEWCzg14V96nlw9ACoP6LXqdQRMGPOm/0QZvbCsi9D +rvbJ5455I3dnzuKJFdCl3CtzLfAtg/+iulMhoRCWd8QC85e8JchW0jnKxVnpMvp9 +Mnoj5TWbDBAaXRQ3MO31ShAjL/0aRqEvVX7PB/I6H/boM/PTpV1NemgGiRSdERWj +8Klef8BvG1OPtQgX3sB3MyNBW7BTUZ5GEuUcEF0AFuAWmCO2vhDvVxTsXE1v7qVL +lHBgOG3c+9+WCGduQjdrX9dvRbrTehsB4tl19XAhCc3FQKCwJdXDRDXh0NOwEpBd +SFWFm3dh5rYa65Tubb7+uLUTU2RwvxfyfNgCtIuOsKaD7Muph9WjZnAUZbt5MiLI +fU08gU9ynxlJ1Cl2xmLoK70++fMvc86OBopiNg9InnYteu4mPXQg35lTW3V7KAJ3 +9J548UGkoDP24pEKZ4XDRiS21WBXqvPRMPt75Q== +-----END CERTIFICATE----- + + +NCU IFX KEYID 11227AB228983289AD2E7EE6841321901EF592F6 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAip2ufBOXMTpWgAAAAACKjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMzMFoXDTI1MDIxNDIxNDMzMFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0xMTIyN0FCMjI4OTgzMjg5QUQyRTdFRTY4NDEzMjE5MDFFRjU5 +MkY2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8kc7oVR3WP/+EGi9 +D+TuDk5YrH6mHblI17eSelKDcPJi77Ry75asJ0weC/4n3CKsWlj6+sdNslcw3P3l +qLZUiX9FMYM3RkARZ/F2mmDlw7brM6gGIa5m3T1rGXU6WNQqaoHsj5LRDnRXLTtF +3zSwA4SUfnclNqhEJvmGkV74Mjjeedz1gHO1abhyWeiHiAcY8uGRCJ29G8yVkUgI +HBC/HGTrYEKNGywubrT6dw22LrzGOwpKJyh5taffM5NC1oab4OvX2HlAgjC+dRG8 +GcSoD1W4yiGpPRJfoTHAD/3gMO8G0yxX3Ts4/Jy25CiUjDVbE0Lgwe96B3nkiaE/ +VxWl6ZW5tY6TMtHS3iL0rgpJr2tkeYeXy7GocYQCKWtIVqQ5S4hVVonDPwXy2+LY +W5VDoZEujYN/pmU4XWqKboqATFbYR+ClgE177eWiGLVl5zGNnkjalNBq2qrbG3Pc +Dw4o1mTQ8SmIxcDUy5heTtd3WOdGq3jG8Ylqrj7EnEs6xonSzfXRjSdfeNGh3VkM +nQMfEGP5JDKbS1VGWjFrNaMiMXGe9b2729RHNRQYu8g77MR/4XwRzSaMghkal7Bq +I2WmHr+xMaltZ+TO4gTjPw07D4IriRPoe/8+AU5U6gBtX1svqvlUHTbacn2X5s6A +086kieEnAlz7wJC+iPgXlHkeHnsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMeKiqbiod9dz20y +gev9sVNJnGIJMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAiLYecsRcFEx1UzBtpgcRyTJDf3ORxq8+FPWdfcDQscKh +arWcU7fTlCXscHyGRRCMZyWeGsUEzuZVoBDL+4WHedACiA0tfyMVPGtKbdF6CirX +/GgbxJ2jBB85C0g0apNxgqHiulmmEOYECSDaeDvjne8iXOFoL3Q+68eSQtZhSDrh +w7TKWmtpFDH7uCQmicl1d1D+F6/+M5TmHrcBXFoyM5DZ19oKGSre7OpoHt5d/K22 +kJV6Tohm/YTZhARywE69akUGcQe9Ez66uKoEJCz/YCgcEc6+dzMqIOux5DBMIdmj +lJW5I++ppFQyYAWpNDInT7fv2fh/0BU9OvoEgFCSgDNv7hy9x36bFkwvHcXVcPhq +qjhMATp5mXcXhCFiwtA17B8z+PdMt1uIX2gOcXG23dJzhGYwatbeSMstiYdMrGmk +jIbkV8ARXrnYD8gPtyx+xM5OW3bzzh3kTMBfYwYdNUmHAZosxe3eTGHumLytEiIF +b0EoFGMr9zY9KVDS6JjHDPaQKyEBD7G5bB3V1+Q21ZJXZbpP3G5G7BBiEMyepw7R +qavvxGWW13f6WOyL8aecdoGtbebr7I4Rk7j/vmYpcx9DZ+XT758EBuK+tYnvBaOO +kvzaJryPCkFgxz1JYWPooxWTbhOu2VeOfWn5UABN8zdYkbQa8rSjegvsmjqch6Y= +-----END CERTIFICATE----- + + +NCU IFX KEYID 128462F2A0D16CDE1946F1000544B055BC113D10 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAcNgQhpbR3xXcQAAAAABwzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkxM1oXDTI1MDEzMDE5MDkxM1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0xMjg0NjJGMkEwRDE2Q0RFMTk0NkYxMDAwNTQ0QjA1NUJDMTEz +RDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApvlOh/AEQf7Jl9Qn +E2oirapvpksApPqbfdQX7KZeewqudvNyAJUHo7PMWOrUAro9cCl0G8cQZH1HEBs4 +uGqD92M2zJ9Yu3OWVlPV9e6phR7jzzA4UkvfTIz58NqCErlDBkLnNNdeqy9Ap3WX +ZkKl27lPKmEVsPAJ80b26ziVSL+DsWs8jM30thgKCqsm+vsh1SyA4noj1m8Jb0Od +7unzzf3d3T6JvmWeBDm7/b5/lzerq1qSPQFrMZYAedmAlx3omvDo1ZqhLnnGBnJd +mEODFbwZrDwNJvGnFgxXpuUwBlVBzU1vcwmxUhs8KQ47ATFSC3Sx3UEhe8eT5WEE +tLWOX7xRx/8HekMS+s6tyifEKy4tF8sHRpiVs/VRM56ufdkGYC6KE5XVB45JoLYs +xDaYyV2DBIm5q4iCgHA+07ci3ZgG+A6x1OvuTWStFeojDY8tUwczkxDUSZASqNJU +Ygh4c0hMt8IL5Z8ig166MJRROJWLPmJL9SobL5Xu+JXrQHCVl82Ccrm/udnU4zI/ +X4RH5xs6Sqn5uNyjRzBrYB7eZ5c0sYz9e2gPb3bVSMfPo3dJZzkVtl+z7Q/q9TBq +I3MLYshCby3zsJMI2V2LQE7MPls7Uk13jcSWHvf1yGD+xNXmBZ88GnnYNi+XhpJd +JMO1T8G0eSGpjB8/dMAufWleD9MCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDtGHKrO22sIwLAD +5XVh9qMAhQ39MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEACP1D6HRrXmZtsaa9up4xHPWZXFhDi60jISZ7Ylqovgxl +hO52rM6FJpedKJ2AXSzSrTyuutZWS1bHDHxm8X3jDMwPQKFd5o6opJ5mJkpUSDiT +woBSNVwolnubXLoAU3DKx8DZfNDinMklMmRiz+3wpQOu5hHpO+RiMZLg3HlbX3Mi +V+OibeBfCp4q5/8/DOnYM5KQrlwE46+lyPIJAN9DMheC1AHxkd2FWbyhYArEhk8w +3o2//dp+vkVTaAC2VZjAPGtLmRsE/UJvTzAM6csCD7vBva2e0EfKzceR3cTQUwMf +zI2SIOIdZnwsyKu00Bu6P5FxnBXxRDBlnnhIuz1Ib7roF6u05yVqlqGJiiceFBMV +nGCHqlocv//uodoKamuDDU8LUks1GC/wveCuhw3y5OIpd004cbRPDoGTW7TmEWB0 +01ncFN+IU1XPM5rYH/qycjkSnoznJJwW/taVO29QvQAjNfbo1j3sKkJzQhQtwrCO +1AG4LKoUe5VHVzbkkzUr4s/nrs2coQ2szUPm9mXQQBUrtYTm2p827yN4mrQeE0FZ +07Dfo8ilCieo+AUtWOxgquP5OGeQd579MZoo9Pg/NiRk2RQhP/QVg+nK9/hwbcY2 +16rMhs6ImBRPFgdEwdFTKwPOeY0wXRBrlkVrA8f+OCeOyLMn05Mcydy5FetPgDQ= +-----END CERTIFICATE----- + + +NCU IFX KEYID 1BD645FC1F90827C283E6CB526859FFAB0E0C62B 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAiHpBqkjgsLvNQAAAAACITANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMyNFoXDTI1MDIxNDIxNDMyNFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0xQkQ2NDVGQzFGOTA4MjdDMjgzRTZDQjUyNjg1OUZGQUIwRTBD +NjJCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoFjp+IyVhdkcDiwN +nc35YIeM2aGV2CjmJeCkuWofgg6dnurduU9LtBVrbkavRyAAm37bGnWGwqwSawWn +KLrrAcQ1pTEH9OSDKSW8h8mr8HQYvk2TQMBXsulIDpdf53HMp3LclIoy9oAly//o +GT3NImX0b8K05ahuzfDNjgHOrwfO+koOphkl8AGLQV3KIATJGoCpN5/Jwu+sbeP6 +5sUkmhNqKJ5ZXYlhlCx1clcka1CWD8j7tDosVoEO4bxhCRFBMyZ/253p0hq3havu ++y8GT1l6ezYCFjt5HyN0sssnZit5JEusRMHzrzLLUWIgYF5aioszaX30HlnTfp5i +VWQIgIXW5fQWZNmLRCEYEYPuk8X/lpxA8cTGOyTO9FmttshcPe4hitwi8cMBm0Xh +TuI1jkw7jZIwuwzJASaJbQaqjKMCCkQP3uxSnmZ1/FSwRc61x9QSDSk5jf46caOb +JQgI7+RebcaKs6cNNg6jCyDOAI3RpGDPUC5aQx6SaIu/NM3mCKnJcjZuNHmIPMfL +QZJ5WuBLRvu2sccFCo3otxu1k/qLZ9g91XzuY3qx2BcPFzA+jSrexPcpSedE6Rjc +KhGU6yVzzgnqGhP3gcqEiQkR1fRetKdyIPdARqd0MofK61bxjOzoZJ7UW3ewEj/C +WcnCYs5qK8P0o/rbRafmTAWgQL8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJEnOMDnmQurpg50 +U69aejpM5rYkMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEATNW02iu2/fmf9tECjZ2uL24Vo7oJjG8k4RrmZV6zwULa +bKPsInqL+lyYWN5Ccv18aPZq7iWUp+CJOvjK3Mh+w48NnG/fk5DSBZFbI99XF2cX +1dKINrF+DYHEM7z7183N/aGEym9L+VnK+SPV8n5HZn+VAkpZxkjWLUMeCP3ZL0sW +03jv+vmuOMfMHPYKMu2GXnklYsbXUWlVysU+VEI6nFFthcWKJ/QWyzvkUypG3trj +6ggbW9Lf14dETLMUkxx2HwiKbg76VHO/i1OsJEmknlrmawwEN7iWZx0y2jpQXncN +VR0n/83KnsTdYVFH32AoS/PS536x3TlgCvcRrWl+lwX6f1N0mcneir+c3MNyt0Ds +XRWSNhywCTPEqxo6qS/Ff+s4EjQp8G46gg28gXRQom8esU2erjaCo3r0+wo+Gc1l +hbHBz6fDuTWpns7w5B4NGZujPv4M5ayU+ysvHWzKf9Y7WKBiHVwmO826P9ugOFMR +YCE5ZThPzczBpW4oY4WiZnpvhuwOTseXUggy4bLQKBWyCKeYhiQwGn7MV1r/YZZ0 +nLsGLzSRDy88xP1qks83t6XqJRzjjfrJiWH3ejojpYvDDsW9aNJvnMXXK6aCoMSz +lhuFtx+8GVJQRfDiiT5s+GJUEJC5ffJChS+t7izAK8rgYP6qC7zRhllmCbhDLkc= +-----END CERTIFICATE----- + + +NCU IFX KEYID 1DDE0F406D122C3E5A4F861F94876C9E1ACDD37E 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAb2uiwYFoGvC6QAAAAABvTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkwOFoXDTI1MDEzMDE5MDkwOFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0xRERFMEY0MDZEMTIyQzNFNUE0Rjg2MUY5NDg3NkM5RTFBQ0RE +MzdFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAy5aPaOnaFCPdBRJE +vkRNQtNJe5odMYOXQ0eL6kYtNN6Rng/URDzZvRPp6jN9I6fx54Kg+wmQftW+mAxH +vQOGddZ+iaCZcKuOOhTEFf+l+8inxLUR+LAR9LLDvK1SYCndaT0YVVK951rYr/Qg +xXJx1rsO8kgf163vbCKPw8sIQ2bhynCyrwNBT4BHfHwn+sljMR9joem2EBilcz7U +dHx9jCHtlpd+UVbz/C2Whj2jeEWNS5bHXJ5sVWXecALEqt8C0a1IAKATTUear4BY +RjvKOMSo2Cqt2ibmrbId1gjfm0fhjUf3SR1N5AJCmpmdHveNSwMmStMuOZ9OxObg +9vjrLP4OUDPro4Yz0jymYGbPfG1JaEn6In7OJnAh9uD2B9RWzxprq4Bg/J8C1Ks6 +2fafTSCbGdEpGdiUWPo+ug2CrAgcWvYcPj9TNcbAeiCLbXj+5H3gddZpIjCXwjYk +fPwW+kK8BL/X6p/LUqMYHW/FzfUVsGmWGASVq+Gbk8k78q0k0zNNqtWNCPyiHw97 +QT8wD/J3JyKFHLj2eL1KqRZWkfzn9cU2EMOXV88+XP66B/1A2qBI8kCZiFrRbyAk +rd0Dcs5bF8XpghaWigJWpLv87xY+U4ZuOnLros/47QdEhcztdwbVu5WR26pqD66+ +qNBCKSh5hxy6WebHEJm7oB6jJ4UCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKJYFAEu6Zb5oA0I +h76P/Dx2gcaDMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAG5nzFdzx9pbwSmCRroesluBhiGnYs3ZDs+FcOEc83U08 +0MrTrUS/JYIoa5vIgYbxUGLEvlcN6P1/sLyFg5Q8pF6rFnYOF2gPKZyw27xTH2J/ +QIJWMlcKF8SVeNzBrD6dAX4AqsIS8ZMbDvR3p/0BTGzdSnqOkvJnNShjfp5tfhbm +2q3i5BzkX+lO4/5EofzCPRKaQ8x4LxqgEEnQkS+1sz+UamPbI3ryLMvczBerK9xy +ppD1uTiOTJqvaEhF0A1jE7nqJm/0gqAuv4q3At4M2KtdcB9TjcbDvOLT2EHrBxYn +UIlFpDIRgUl9u/YmDhK+DUtLfZ+Lfp9XUek5mFoeokr2oLU5YjKwX/p1uIaKau0k +LteHkXwhKB35r7g6ImyWL818cLJK6socMA90u3eVQUQkqgqqol99mY6TCvtHueLG +/6l6XYD+yaMnwWDe9y8KJNZbndC3lS+ahN/LCcHm/Xh6mn1hwXuCqFuWzu5EWfiE +mEWS9NRtiodfNLkyyDoH0NNNgdG0kpIo1IL9WMLViuRNQ+LhaMaUdOMpLXB1xxRG +vHBVIOfvWV8Tw4tIkVVp9TG17iWm9ANXT0mFWvsDjaEq+o5B5TLg0bBucCM81jXl +6DA8dCSwuQkX2qoAwf49fs6DvBhL6VpSZR3N4MJAuACQqH/oIADpVv9IV3eu8aQ= +-----END CERTIFICATE----- + + +NCU IFX KEYID 1FCDFB8ECE408675D963E5E5108D55C984DD797A 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAkj2ViSQW/0leAAAAAACSDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkyN1oXDTI1MDMyMTIwMjkyN1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0xRkNERkI4RUNFNDA4Njc1RDk2M0U1RTUxMDhENTVDOTg0REQ3 +OTdBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6u2xB6faiUDrt3bH +i1EWptqoRcX00O2GqLi0MTd4Kc9zQqp1ZxaLFb0DavJyK+mjNU9jvKFPqVMSGYQs +XBBXmhbX6j9d59h8xzRMUPH4zjny45u5B5TnleFj4GT5jLfs8UZq7+FQis0j4Ooy +foW80aXSb8FhxWcX8/fF0qJgHHRJOiFxn16SEeF0xIUfrNvcsDfEoiTliDc6G0yR +f0nfrPJGjzH5gAwCFBfkNhDpXMCa3pKTA8MBsCla8ckFIHfTgQd/4ZG6LyuPKnCT +SVWi1fg3rWpUgwBFjs0+i2XlyLiVbMrJaXKSrDcP8N72k1Ijbszcd4oNi4ilbL8M +HEKVoire5Fj1Yr8Ks3+uvLCxImcBTx5STEU6jZ8owcPqcEaqWmCGmQ1dwHiYEd7v +HBjN4PjkuR96xfTlCkqZ6M3n/wWlBZEcJmfCq+wUQTWS13rx5vsITRadJhm3+l0G +VYRmfhVEoIvcF6cRqJRbUSJA2dL2Z2IrFTfC/P0qRbN7NTSsBd7uaJauLHImAlw0 +vZZ3UmATGwVmvICLxouPWkOYWul/HKjbcyxwz39kX9D5SzVYbLpj59zo7xuOUYZK +8r/Bt1od/fV5PYo39eZNKVw6TD172W7FRGjPWn12KqkEI3sKuwCthc792hYCt6Ns +lU71jlM1UeGjckxUevRVohgCYBkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCVPPx3dXP4HGJGz +Z5LAIb4kAYz/MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAXdlg8mcknVqCGMKcVNPc69OOUarmsXg6AHV7qt6J/LLq +WffGDqbIARJvt0DO3FNBiRqc7fZOzexRBFak0xNriooZ/v2PNCcOK/RWedJvE8ti +R5Os2VHduFqvSboRW5aSagr08BaL0rV+IJTWeHZK57xXks720tcxgC9d7MRBKxms +uqXtV8YO+D0FuS5BxL53q32a9ame+VctpzhvNVC9IIpEWESco0GxzWbUVO/hxQuQ +wdzVfzJfjDRTmLMUg7cWSqcinxwNXaBvbqZyfDZMwj66lQ3xR4+OZf1KZ+fYVy0D +8TcOsMkk0VJrToOEDkixRcMTQ9AkOsI5jmxssHRJmMwSwHKISkRzbtb7u2DWPQl+ +HoidCz8T2vVJx+BjmRjOeJLlK21EntD5X/MgBdLufVoBgjlDDHlyOW8jAKNFnsia +fUabxdxbEL091CxJRcktyu6HDUUWWZXEiXl18d81ANiUZKO7VEe3TZpwcMQFIsHH +Bb+N8O9gWy9E4uIwql2VdQqOipLmWbDgB17RpItGmsunshxfT1GxqEBQBULRrUv+ +ShmBXPm54wWfo68NHpKwtGE3pBs3FabyyGK9GMBnQ1/KkMgqqNVlPY5YyxQPxGYW +lvQtWEHb2udsu/mWesepOBLZpXwJLenwq0311TPenIuahFhKVRBIBNxtwdXfGEo= +-----END CERTIFICATE----- + + +NCU IFX KEYID 22BF9BF4978F4F45A4E9DBF729D8A08ADCA0A82C 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAcBUxQeXvFAGugAAAAABwDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkxMVoXDTI1MDEzMDE5MDkxMVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0yMkJGOUJGNDk3OEY0RjQ1QTRFOURCRjcyOUQ4QTA4QURDQTBB +ODJDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkNJnQCWtlai3wVPu +jUodNI2hbxrhWIH8I0a9nNtxfpmE64ifRIggih+WT8oJyZsrX5OudTUkF//7kvoi +IvA4Qo53LjW28AMVKVTx5YKIjJ7jB3rBRWnEmZzwVZ3XJ9euo0jiQvLy4BUtf33X +ui8P1DtO741q92CG2dd+xnzqNtLjr6uTxJAEg4Bi2q0NAcSpiGsImkSf2rxaG/Tz +GR5Wx3g6aYehynYUMfi5m+mgFdnR/k0ZovM1umA3Y6ynCkmktEw71hINAhNUZDCf +fh1jallGwMq66hUidRCaxmRLdXFhPcl1WLajSDzUiV1cDIn3AWZ5KnKr8GKOrwkT +YTjLGxOLwtQesWqN1dTIXvBUfdxlwoGdtOTtlzIwXdqMLIF/f4OSCMsEOf3LZhda +H2530qrtEAu6YbK31p3nBHqWl9kXNC1wjk3niRSQ8N6PObwX2yZOG+mKMJBr/n88 +3Petegw6NU/GJvSrFZxIIICv6iHoS2M3EV+7fyodPwbV2kDfdLUOmv1OAjSvsr7z +zCxacyyfsgb32KhRPoD8GLffpTsqIXSIW7HREV8DDLNNAKLDsjP50vCM6v7rqnlT +ZGCOjlH06EKfunCVe1RQIf3XPG1MI6nRQUsIuALZzMHdZdAtCTdGRI1Yctn9nhXB +ilYD7cpZ9rCuywyNoV3WcFOLPksCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHuq67yA1sw0gTgy +BOd97z2lyOh0MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEADMdqbOSeOs2G3dhU0EMoh33E4oU/l6Bt5Extfv4pw4xz +z1W/+/BSvGjXGPOMh5YMS5FN3tgEdmDirG5n0FCi5MTLbQ9Bq0mir0yHY5fGeHev +6I1WhmH+PaIt+muHTCSyDSwjWp2pdGy592rIY+ck0U4Oxdgb0+gAFjONe9hXtD5Y +aIu7PyLOQazPolToiQs+OtZGEy7+nIIwm39/HZuStCxmUsn3Y3EdCGCuyqG5l9Ul +jIjtxgG5s61bEziiHqHIrIzSgVUGRogMYovgoMD9tbrSrizN1bYz7r5edgqPOAIR +PQgsScJMzwKQ8mHGZ2CGPeRcp0/RsG5Zq3b6QFXmEQBOTXvLnaSL4aJSsUq6+ZRT +kPXOmlY7AUEqcrOTzyHgFhWTTG/UBQBm+Szy5uWR5Pg4CWGmcLNOHHAj94fdlOqI +ovruFbgOaoh1O7nzHzIri3lGBRxWUk0hUuDxz3p5m+jTXOI8q7swL1oTAuHf98Xf +BNOLu9+ON5BdfMa+KnmtosBFD7CjrxVk5DBh7tb/a0QnKI/b7lGOnCT6raMfbvr0 +CN/85VWD41mA61vEtq8+rVugamN81hOnIDYZMF8+6dFsKEMdrHbytHvax+LntjnU +5UxQm3XiL2bvKbOmHilD/yQ+GH84LfaO8C+eMvnFoLaKTXZO7phJHvEwEa9098s= +-----END CERTIFICATE----- + + +NCU IFX KEYID 265CF32470FC4D93C7022FA34AB4C8087948454B +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAWHMraUqvIwtdQAAAAABYTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDgxMTIwMjUyOVoXDTI5MTIzMTIwMjUyOVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0yNjVDRjMyNDcwRkM0RDkzQzcwMjJGQTM0QUI0QzgwODc5NDg0 +NTRCMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzWsVw0kiY2FmguFW +Fc1eJCmvWPdPgvcQNjsJKPVSIJMvNuDHFkh1ntcoPl0LObNvIM+AtBbG64bPLld+ +2LOttaNidMj3vmRpu5zKFpIDaIYIrhBmWpAgh7IgfzcnapVjI1NABN1z0PEzuMBn +Mo4VZZtpht+9jeAASSvbZhLXeRd8zytx0X9OkasN8AZ22ejiSQQnCfQu1bPQIKEk +I6qtIR518D8H9pPIvi0rxwPPlbgkNMum2xOedph0wssUXP85E/do6DNrJIwDlHdB +GlN3ZXQ0aFPW4igXevXEF6Dy4zAJRQ1cev1oFjMIeHKzJ5ydvU6vdBrasfJXCRbD +4XYYWwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUvj+Re68yxJ/hkycj3v1Lj9VW4pUwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCY91DX +uOzt8ByEPqXW/MJvEN9oX6yPHTRvK0sZkBO70XtnR6BtZmCn5OGcK8K9WH8AJnFJ +dwmEyC9iSJuNkNZVCaqxjFfmDzQ8IjaAH/ZxM7Z/JF4TRNfEI84j/vgR6vDYHBUa +yuG5phUL0hU7cQkDiWxHp/a0zZry4jObq4tQ7rbJZTLxkxSseOE6vOndVir7nqEB +UuHZdwH7TvmSxMOYoKLLLXpEQrlTI/XYvAYStNSRm0cprzVSkl7nmz5s23PSET34 +HP71C4vMr7sSYFPxkD2dW4nQYVIguiDWFwzoREKeCWbpFMGUH+5b/8NKqj3R8Vic +YOwj08w3G2S1+hIUW7zsP4jfko3HqyBXvU91zOFYXWsGiGHnHOXcGvkIp75Y39ce +4rhfWIkZw+Y/IFNpNWXPG48MhgS/NdtsdDJgNd94G8oQDbXgMPwrxs/4bD84H+y2 +7B36c/iBQSmwk410XuLCBp8x1Ja1VCBnuvW9pkfQnMwksGRwJE1iL9jbtRgG5gN4 +x4+DsGijccPeC6NprGFKcNMgbIOFdRmQssVIsxDGkXyjobpzIf/lR6zv8YI/zd3S +YTwmBnQjORHF28R/xmArHJBz0ppdYG15k4s5Lwz9GICfoVo1gKP22i3ZyUNN2+1A +DrMHOsWh6jzKO/H/LdBFRKVeJ9LMDh8xdbxfjw== +-----END CERTIFICATE----- + + +NCU IFX KEYID 265CF32470FC4D93C7022FA34AB4C8087948454B 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAii2xsZ5NZi2yQAAAAACKDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMyOVoXDTI1MDIxNDIxNDMyOVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0yNjVDRjMyNDcwRkM0RDkzQzcwMjJGQTM0QUI0QzgwODc5NDg0 +NTRCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAx/yjQgGWenToHZmM +BLfkVMbz/gw//2Oi881jpaRTqBVL8sYCPCziVJ39K4qAU69dymH42XhOIii/c7KA ++I4XSv0QLjZ5YkNQj/BHzutz6tTcVolVHdLHHuDjmJ+FRqnajm8mAVurLEAaDrL9 +YvE+DXFHon87hDDM/O8fZ68vkjB/iuE/DIOuZo2L8gTDrDXaIj0qTYDu3RzSfX9h +h64CrAZiwNW9f3Sn5Kahk2CfMls5RY8BOpv6nccvWmjejMYQKTs/2WcjHI15//Uk +o2KMVMbC02NRTN2r6MJVuLcSuvu6dNg+JM+F8nsJqW2QY7LW6Lnm+qZ0T2s36mQF +p1n62NzC3K023nYwbvjyC8CeUXYngnYJxB4b1+2siKo7NlwuUtYJOme0ictglDjN +z5fBFM/kt97/aAaWdizr8+W81NjFhMq2Q+SVsDr8R7ACXe1CQ3diuiaJcPXw6O8e +6BKb2L2nlaJOCXakEQvOhMMDQNCnVDMeWSUo20RRa4S90//ovNpdMrso+KimYyTc +Y18EDFsNwf5NU3bKvLqTyIRMWqHH+fdlENrcu5GeD493r8DrNBiiBaRMR3jTfkJv +wzXDyOz74oVGzjrcjqBHQDcz/Umun9yGemLFIjy+WmcoGV8mzwWt24+gjRAdmCVt +bxDVyfyohjyl2YzT4smQZFWiXhECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFK8Gi54eLqRi8yGv +vnHo0jmuQN6TMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAkfT/vFSy7rGiPi5re+s0ziLs86vaI4g/1/eUuki4tmOa +unCGjxWWb5ccsHMpEKeNKRX9a5MUpF0jVh1FOuZJsl/sZdboMSgMj2b7aILSwQAm +ljZrmlzwicZuyuPZDef4WD27xEo/m2eOdjdk0iA8HlOYVwRYyOW0t3SlApZ8aDBs +dC+11BngJLqcyuiWgkI5v8FaU+mj8QmEckwxUTJSNM5ftgAKfIhGjuTsHuELPGXo +lNhQroUjmYrjA+YoZbCsvgx3Zcq627Thvv7KVwkwf/LxYDpBeF2vSZ118OsMsXng +uYC6Uv8rzEubCHDAtE178darVhVigQMkQR1yXQ8ADMItJ9Wx9zYfL2tMRiDsIm8r +PZvL6bx2AyCnO9D7tLbl+A1YHHBj6iWm5taxP8ayZlcu41eBZvdHoMFv62q5cUTc +ACs1R3d5z53CNWTqXgJvWbpGmakh7YXtC62k9c0Q2t6IiswjUl4JtlghRYtBz/bv +KvUVkU5v1Ni988bdX2dz+hJKx6onPi/0PHoaYWkvG+r6B+Tvz4xPk0D3OA7rF+/B +x8VRQ46BWPHDFUjuLOQSBDgUBh+Tt2a2d8QKzq3aNg+3IxpTHcOgR0K5VP3ql89w +/iQA7ej5Ksk0FjJH6VXZAPctOGFWVvPrbr5hjnQqYN6GRZtJJb7uaWAk3ngstB8= +-----END CERTIFICATE----- + + +NCU IFX KEYID 2A4A698325A1B220464EF009B01892268B25F84F 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAe8Bi0/yZRroYwAAAAAB7zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAzMVoXDTI1MDIwNjIxMzAzMVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0yQTRBNjk4MzI1QTFCMjIwNDY0RUYwMDlCMDE4OTIyNjhCMjVG +ODRGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsWjmHwGFb3JEdf5e +1+Ut2CsavMC92HZz4dqUuUs+QaYTDo+USEnslmw5xOhRaH6WdHOTS1uXXLBLP0Xx +1clWjAqvvPxQlNb3a2rny32lF2bXZaagEJhw5x7jXPrNt1lfC7qZAsVN8qmAstA8 +rG+K1Nv13bQNvLUcnxS7DqOVhv8B0rR+mMcnNPESFEtAmNg2tZPbTbLOGt1Trf+V +9sVAmVtOJJZspgJtNarQiCoIzeDJ2q6vTOr3Vp2q2mtvAEHRxNUgO2CWjTmFrMKd +itNlz8P58IL4+1fmdDkcHf0vKcEWjPMwaptoWBwy6jP4OEdwXn9yBRZORfoggjnk +0sm/VUTW1WVEOjzaMm6bvPx7n2Ntv7Vbs2fGuX6rkFIqkEQFYzfHf6emFofg62Dw +GAVMYRqfH7IOy7n0ksnngKLDyKASpp2mjEb16FwjVD3UGlYbBbFGZ1Tgw8xZluYu +XtIYNXqxdbrI9h1ojmJf3CHRL2J7ie4M7m4Qxr+RvjhFQE2s3WXjiFNjp73wbJjX +mijZAlC4p/Q7mvo99JYpWndpo9FvgpcdwtMzFpni4B5U5HGM37sXIyH30J3GSjHe +MfoboP70OgiW8Nel/5IMwhCIQ4sOodhwo5TJ/04k6Pzv41CxxKkCEISv7Ym/B85T +HRi9jjn4Qdnyn4D+I0pIMVocJMMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFC3woPGoInsQJj97 +tuKiY3i8MoSNMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAXDYiZ0dXxfHb7VxWEzF2XKGC2zd+F2RvvDDvO4m+uhXg +k7TI2XLgmo92slFhXzhx/ioRig6g3MyWwaF1VsKvt3F+H9VtYh+9E0SXhQFzilZb +F5zU5UZELj3gUQgJtLZPXUtnJGLQAI2lWLzq1IIiuLXngdQCqnR8skUaFeoUWF8K +AVoq8VI+PnHhq/3SDjUm4BQhQEDpUItSITDpRhMtcZt486e6i62BokGqlx+vD8CA +OQ1yxs2z+TF8+OW3LmpjnWaP0fxXca+xid0WqXs7Y4DZ1Sk6EOEw2CoIOnHL/6Wp +KDtr2qXRjjytEaaVM4RafSYmN1ssrCYtF/0yZ/+iHr69fjbVF/8b+fILQ2mTU4io +ZV68IWPSuj85NXZ1e+EmO/U9GWSjXSAQAOUEEpU+v3m2yqjKDFSJRUtPYUO0rpEX +UzJ7ps6fpoE24PpVscAtBa+PaCnCl//6wXadvf1KW7mQIMYbsuvWOhddcwwm1Dnq +HmTIlGfqlCExz+7TVssxvLfBF3In/BSgPCJLKh5KiOeZHcV2ixXDbrPS1hxUVdYF +VfaJDGWBlmss0mIhkcNGYUE1wtvyp+6h3DOrvQYgz4BH3BAdrWLc3dRBP+lzvrNk +Ap2xxqKrInSyP83TlBjAAxRvy5Uk22hcEDgsvrJZPRA8KwfonHabctCFUI4qIdE= +-----END CERTIFICATE----- + + +NCU IFX KEYID 2AD70EB90962C541A55E2D15B85BFAD286154F0D 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAb7AhPYiZ/Sl8AAAAAABvjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkwOVoXDTI1MDEzMDE5MDkwOVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0yQUQ3MEVCOTA5NjJDNTQxQTU1RTJEMTVCODVCRkFEMjg2MTU0 +RjBEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkH3VtXXJAfsfy4Kn +Bpqw7d1E+ORM1s6RpswLQOQDB6W2h1b+8/btf8tOG2NttI6kQ5Cp9GPV7a4fupFZ +32VvuJs+mdlr0XAbx6NeCSTf6jWekPJ4odzMESAnYhxkybOiJjaeYi+3F5TlNtVt ++d4+hVnE1Wx30DeFAgViptK3JlpEB7qZFm4PgM+s5ej57YjYBGMRkNQ36JDfIOve +9jQGxs9Nk0WcWRUQhou4ptUdwGn9EHuy2Lr6FrJb5fMv0Y/hFudhYMN3bhxp3mUd +BgGSEJByFOyN8vdMt9jxyCxVFcV23MsRjV2vLdxZSILAEC6zVQqVF8YAeiHozw3E +DaQ/tuQZJAVsyZ6WNmqzavAv35KxTXVTv18w/K6D2cQ5RJPWWoKizfOA8t22BZ2Q +pGKyZcP70nbu/m6nHjtYPl49beFyTpfZNFe5DAJs2wLWreEVqCaIQHvF5Sr2X5nX +sXkO72Ag/AG/W0ynPoR7lLLuhhtKtwfOhDZo7bANY1hK2hld6nAVvtAG+0RNPMkW +iMZB+2RkVV/fnLjsJEK1Uh+INZUMSv7AE1A0ezDmAj3YR3nM8jOYeA+7TeVfCfH1 +CZCYsa23R85OxjNir1dqadpvWPVoZfQ7WvmVlO9I4oBp2S33ZPZI2sB3d1LL+pK3 +S6NNLQML+p/hGe/HpHtgbhaoIIECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFN9+mefVLWPIp/bD +TqFmfUfWGOopMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAYyjDy2JmRpiu65GuMp+27FpbTg0nDemP03tSNEbwRiB+ +tPkUMgG7XKXbJp2AP+3eZ7QUZ1CwZe96v9aNXu7QzzT2D7Ah7iUtoGN9DQxb9R3P +Gk5rctmd3cET66jt5seHSzBaVyQrz5WMFPeIIlnS207XL8FAQAbG5jnJu9qb13pw +eiUfVXxOyF+acCQFmjwz5uRqO2yXVexWsr/zus77NbL9pw1LrOXU4OA/5GZyaTwL +g1KqPz38YRCLzyitUELvYRN6+1h1pkRW2/qHRWywxiF4mgiSr5UmtghtdF/EzfWW +qmH4f+e9Bveeb/5WNvx1kqYeWbH05rnBuZPUd924ViZY1w6vOeBTjTDsPUWkXzzD +Yl40/Bvr6+vPeZgULLOuTw37wJy8Evbdq0sHO8XeVp+f+h+omXifG2YzIpiddM4z +U0yyzuH+ENFLBVn90dkVO1C6pJiEpx6zO5cp6lUgRchBMV1qJ4uDyuNDMUfy5rSi +XyFNI6DX0Xb+eFwPAYcsKkqvSAjRrxmDY7bPk72hPl+9I6fP1/PLPmQpyDErFh00 +6HsCNB3nNRfW2/T1ZHe517X6UAlXkyUeNFA8n0Mf9J31WTbJqXq/q1KJDQnQZTlP +uT9Yp0gXIuuCbwmAU+S5ETjGrtaDSlj85YuBWXAhqyXyvxbpCBr2bRbkbwdotUw= +-----END CERTIFICATE----- + + +NCU IFX KEYID 3735DDC8E300B817AEBE03503A92EDDFDF1AC71A 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAcKqOtLNsmiUsgAAAAABwjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkxMloXDTI1MDEzMDE5MDkxMlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0zNzM1RERDOEUzMDBCODE3QUVCRTAzNTAzQTkyRURERkRGMUFD +NzFBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzbCD7k7V8uEQSjE/ +GDSwQxluR64FtTctk8OeWK9NNjZWiAxwRItm0e+ZuStJ4sloadVzLJwd8TJQ6iRp +pCAOvx5nPGTMBe5cmMTis6qjqe+w8s/dKIR0xig7pg9i1SaRNeZ90t7XoEebo9L+ +uUP0DH0/wc1s00dw1X9XpKp7M9pUpfAZKfWiGFoAKkJvevpTbqCaiZ2yJFqs+Q6w +f4Uskt4bFQ+dpr2y/luevttOmoohNBsK4Zw7Bv0zEc4IhWlhWb9S85pMxu14i7oS +C5Z8wLya2gp33Zf/zuvN8+JUYh03gEb5AJVq9LbjxYQMADJAptCSHRJWJnI6nPrz +ux0nURCQhWBGNAWyoeD6uaXj0WQdivv+GuCJefv3FXkeviPr8B+wRGTaeEmb0LuA +1TnbLnJrKHoFcaXlKZ93Org/U7h7NlIF01M8mdqt2JvnINS0IstYGOsRXMJ4Kfgu +JVAMX/CW/c0iNvdZJvJZy+fiVLwbHXVLwJZLpgLUeIM028h8kii7jAL3hrRes9ap +umTTeZPjH/kHcD2ydPzcbQQmoGxKN78vlV52KbHIFriRxoGAdiNmzfDngonmQS2I +I459btnc05jm/AlDg4VKfLG3A22JkwM/jdHivUWY58QY6IVC3OF9+cU66H47kf2J +to/uXf4xILITs9V48rr2TvUJSzUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPJJWGLyKlVsPfA+ +oOl0w8+49km0MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAjykhN1exY7MjB3DvUhevnthSlYNAwHVw4r47m6Z/7USt +/UecCoqNe7B65eJrcSQMIgCXOCRPpryqry49PJ5eqImZalwNZYdT+0YyatbM/URP +88ksJ38asUIZDnGxQkDRp3VeBWCTnyv6VsELOqj5b3v8immrU1wwt/v9qe4ti5tM +n3rTSmwtMQxwpxezJkJQMNWJq/XgstiJINpLfKEjiN/MPr/8B5msqWUEOy1uyxqO +pnYMJ8TwIO/3UNEEGeGNcl2mwIhuy7MLpeLVcFgETXQ/0BP/cKAfR5cqKFuxC4Jp +B4E4ZXQuxL6pvcYmtySi0pwjcLd4ZK7efvPyGATfd5r1GX3cU6He7soHc8nycMeb +RMOamQUlPOwdeqj9J/ifrG2EBl45rrzK9z0/M1kikBmDdWRnduT1ez2ze5c3xmnB +etPdoi3abDLc+XczYNUIqVDRelSqpOmJfARIqKiZkXokUvWh0TywHm0JjOE/25mt +XJopQ3AHWnK9Y+3LdGUxsOiBazzjOjOkdP1LDAUMb1QZAvhHNFRQhLbcs1eihLWr +2xiONaVU6J6B4ao+vqyAnB2t2zBMIzlm8G7olRUkQaEDRT4iEEBgU46EzvO1zLFd +QTXl4gHveBnbaFJlvxdIsUhdWcsMim9452vid3a0XoCJUpIIrSZcUPTVDEdBtds= +-----END CERTIFICATE----- + + +NCU IFX KEYID 3FE3E3E0383ECB899118188F4E2B9644DBD39A3C 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAiKPhhZJa0zfxQAAAAACIjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMyNFoXDTI1MDIxNDIxNDMyNFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0zRkUzRTNFMDM4M0VDQjg5OTExODE4OEY0RTJCOTY0NERCRDM5 +QTNDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxgIOkt6d4FznVKJC +5mMM0jvYRmp3flwZ3CeGxIFZW155LoQIafjEkjj4QEZcYSdUi7uHFSr6y+UcLYaK ++RLLHl6ItvDbNhO/ycj8Lb4tP1UnSITZrOyGmzwlRENDk/0u6lC8AYdXQtqvcYWd +zqdR+8tU+97B3zuyDjXIBso3J+7x9UGMyrLV5jsb128sHsUR2coH6ojG5KbiErR6 +RoMaCHdstqxcgpsL0dxSBQYBxDgVWHjxjoTrJEL5yDffnZIqYoYdgZ//+K23WBC3 +iyhnXwR4VwqaAo0aX09D6xX79ZIrM57uEVobbHi0gqRQFT1NUdpkxBe4VIUb7CS3 +qpW7DEEeZ2L/8fMg7rTssodO2diCJSYkYh29Huc2Efn1vYGgPraNHghHXG8fG/Gs +WySSqqbj3BKmG3UKl9t8o5qyzVs8WZMZ0WCzm/gGDZCYfGKYvCF3S+5PuqxQS7mo +Pl8fO0VBLeMNKAOWJxEbSiGo0gq5GwEEm/yvZFZEQwZr+ElWh3fpnDtXkYaCz7f/ +yIQ0ThH9O29SCqTScz1NXHfRodtdU6dob326T8jy51Ol6u12NFCKGJDFtUWKYC5h +rb6XKQpuvLOpDkEaH0xcdw1H8rA5ZwsdPWUZUPHdAt5aZc89SXEWrJGL5FBWCN0X +6FIF0xgE5O6s2LXWhdqMU+FmdckCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHMqhk9V77llaJPC +XtLMVasy6XoeMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAe/3SKmjnilM/uMmTHbsyV3+V336IxfG75kWpvVMQAGGl +na6ziab0XwhaKslwtFWqRsjAvfsoVpK28oLO2lRm8/efCmCBZcP5vOFwuyMoOiYl +SIUJhFT84QvPGv97qAjZSpZXe1szgIehBt4Zmfj0EYWmRIvgJmqadPNpErzsc7Oa +NLuFGtWxygH1irxUlc4Txo/MGiDHSUTSDDqrYMPeodrmld2QFRxcilx66+4EOpeh +ejqFiRWsC5CedmA/s2+M2fpyXRzeBBguU+mSORyhdoAVScLY0uXLHqq0Ci3bsm1v +H0DFFBXr/rByfjvf/7J6YrjSH60SJqckMyr7PPVzi9TFMttYj0p4TS9dercFi9dN +4TQJW7Fkdg4vdrMMdPS6ZZkQbb8hLpwPQg1i0vRmvD35RwSJEZ1WdUA/bZNG3IaR +mVmWb9vhUbRw+fF9PDrC806ED/hHQScypVzbDwg2CMqSZXlZXyaxKk9TPIbVFQGt +PaEDWMl1Dr83fbJp0DPnv9Gcx+ADkTqQAOw+oRoVeIC7nA6/qkgSjuuRsT6hYMac +IwAFHMC4FcjOM01Ky1TTjrEzK6+Ln5pIE6NeZOuNt8PaWhbLgokvaf9xCH/pKraq +yTuO6X2e+YdFP/D/pzG/rSNSQIpP9/yvSujZId9FXf+rM5aEHBMVWWKme+9IpDM= +-----END CERTIFICATE----- + + +NCU IFX KEYID 4AC90CEE68D4B5729DE4357D2C475884F409B7A6 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAfDHblfnn3wwdQAAAAAB8DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAzMloXDTI1MDIwNjIxMzAzMlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC00QUM5MENFRTY4RDRCNTcyOURFNDM1N0QyQzQ3NTg4NEY0MDlC +N0E2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAx42cPZMGWhs/vKzv +lqRuwRgEOWXapEL69NunPCIx6u02JIl6yVWHRx+dL3kN4HmMZnG6Dk+I9lUfTtPa +sbLQIp4CGM2/ai+TfxSkiGOe3z/34EFZF52O4uDPvUO2t7R0m+7Vw8i7lIaZBpQT +0R9SFK1M0VGoF+ehXOp6rXk47EhxLJb/wphBEURWR/qK1aPcTzYz4oSmpHPLq2ow +0QnDRwMfxLf+v3Dei54xq9oOMqSy0K8WNiI4qpkR7/rfy31jAnuCHnGcaBR14WQe +0j4eXjT/HoxFlU40ks73UmklFjzaAHEshkNTPpj4cxva1jUZAqvZsMQ9CeuO4JSK +sK80A/qgJS838LqMnIVp0tsW145tE3n8QPhsRao5jl6A19c9mrzv/5gPGEMrq7Ba +BbOdhg+srm0/c/UZAgw4ybLgnhH2YN9xnglN2cSj7BbJ2rcfuwDK2Na8yaWKrmOw +OI0USsSQsuUdFveJXgVY14e0Po1wzQ7wsbMBPiGW3HhCLfPIk3LpVQ2vIigVncxW +QHoMrwEbgzK/G0Ud4vfZl2UQ/MqXtjnwcogdTXPBCNSOIJs2NyhAPjIBuFkT7/Mb +p5XMbNsicKujF2ig81Uyk3U6VECXKjC4Pa5n4RQ9xPDMW16IbS3q94UtQnOq6Ajh +WV37tL9wCVY0ynvZO2HaAUc7KTsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFC4y0aYbBM3BfOe1 +7hR4RVXjQkMAMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAkxc5kX1frvGH29mn8CJPrAz8h9pZ7Otz6ya8AxxNaqE/ +cvLKvuUCaP145P60dJ8jL87KWS6hstu0hmME6mLwN8KSj1rkmHyHMJUmXIHw0efO +SNuanJ80ulDR9O57qG3Hh1bx/scA94CzTLkm5sDU0OqreLEvqboO5VqOHMt55TiM +jZ2EUaeIpX5bV3WqDy+nDh3eKOvt4d00KfQ7LST45tC59KDVtG46z+Mt6VwKKP1F +w7A+t51XMCKE1lYc98MdT6RySSRHLIr8Qm1YArcZo9pfZbt9AygoeK5QM9NPZDOm +31O1eCsn0I1e3L+ZLBimB7iPL18GEORDai714qlf40yTvVskPlmZPIRHUVq5j/kQ +a2+0XCbcnMo/88qRiQ/QnssBezkI56uiGucasNn8W2vHnqpDmTGG/KZc5m55e2ii +Eei3AmgTUgDuuO4J5BeKCaMfziYEcEX9bZOs2zT5ZzHR0TbCSxFQ1AUbivNwMXAo +YugMHpYk2Bi8pbhkM0TEPC3+/9UfVKsvbBL0nw6nJjE1KSWWZsJa8apUEQwlt2YG +T1TBeobtNg8tQwYu3SvT3zH0TNNxbHS2iLt1UBCmYqxOACvg5DzPqR65yxb0QPp1 +xwHllmljiIBVIclGvqOyV/bPlkxoZ/lDsSU2aYS10JGnKvcOiqLRfjh3ygkiUE0= +-----END CERTIFICATE----- + + +NCU IFX KEYID 6DED70AB841AE9C22A03647FC8D1482188D3DAE3 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAb//DDsdTa3NRAAAAAABvzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkxMFoXDTI1MDEzMDE5MDkxMFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC02REVENzBBQjg0MUFFOUMyMkEwMzY0N0ZDOEQxNDgyMTg4RDNE +QUUzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlV4z+sVgWQQMKZFn +j3naJ5Fb7ZzU3JdsYVpJC4TFGzP4G3etr/vqguPwmxAUMD7B32lx54h/2dQVWsAK +HxwKDlZ9ZhKLykE3pOcyf8vTmCn5laOk6+0J639m2+D/rlmPPwgBTu9GmQ+7yRbz +mtXgSfOyYcV85a+HlJsD4OgAlsWgMIihTdDNIG2rtvxIzQynqr5ly56Tu2mK+EpW +FcWgIZWfXEXELd4H8Ej9M4Nb/Z5hURAljikVfzz77Z2RkvYV9BTxRqEV4VkNwAod +hYIVJwmLjct5+XeFHB4msn56iSrvedhPkyoZnYaGgO1KOyeayuePFlz5+U2JedNZ +bfoUev+6RBIzdaYMsiAX6oRLSKb/f7S5W1UIxswkgTu42ZVRmVdVOURbmu69mSPe +QG6xa+TebRne5/KzYsnMXaXB2h2A1LBBZ3Ap+CFo8M3HRPGl03ylFThgrQwnbFKP +lBdGdeyaPmQiVFtfiIrOh5DtESWE6luNN07nTBF+cRWXhjh0z84zpXeAyjZVKcCw +pSYu/pgavJlrgMiVzauBCUz6QJTYGnJbTR96TQVFbeL8mbC41GqW/Mczp8RcQfTx +Qgra1e3N9Ij84sxG8l1FlOUzxSN6PwvsiHBoQEe+PUTOJQjSuKu733BhGdJ1QerP +6UvSP1by2vBIp2Y05NS1RFJR58cCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNWmt/QqsR0JLf7i +VaPs5B8+3gdwMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAnViyRMRm49cWSrTtdIc3+62u2SXvB3T9mFqt2OMoTQQf +YegEkOn2C2O/RoOBPbYwlRAf+6pGxkZi/gApwzzpjcU9T2zUudgPLCFBreB6hHKM +JOyopCrrg4H5cK1kPVBFqRdFARJXPPHt4dUKbJAWR0qrafVfu1bq6HlNxseK5sFS +43ekcn1t0UPnGa7EpflI6MamFzh5Wv0LkrzxCUrvKHfUsOaGIrIBbu8Vci8tklcR +V7NO69053vPpfYCZqHrlQ4J5W35He9BVAS/ubHQyECRWfidkz40y/boYewyI2Azj +HscRA5Xo+6+rmFtNuOJd0+IHVgK0hceZNQwerzuylxODO744xEeQs+sga4dKdtDg +cbqnxsP4RF2MVZWEJ5TvUDsxc3O0KjpfblcZGL3fky2nNFyAMTy6fZg0KD/OYFf8 +sa61Tij3AsM4RW/QL0sI+1AyViv7P6CuwpH5BrIkSIafBBcdvtx5tb9YUOV5lm8N +ZQHUfaBr/obh81OnGJOe5MSpZq2E51S4BL/NK/ZAojXfmNTjxFR9hJVg9K/MBI0X +2qntxAAae8rs3wNOZqceVXXdhKZSU1V1rI/ydMzh5y15FzpXV0BlzSwfHrpGof2d +7Kv3TCR58wFWuXgjP3v7M4fgEomP7Re7RYm9EdtcJfR+F65OYaV7GMfQ9M4mXq4= +-----END CERTIFICATE----- + + +NCU IFX KEYID 73ABB81A0225456337F02B25BD39E658B90F00FF 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAiZAzVGio/SVEAAAAAACJjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMyN1oXDTI1MDIxNDIxNDMyN1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC03M0FCQjgxQTAyMjU0NTYzMzdGMDJCMjVCRDM5RTY1OEI5MEYw +MEZGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtMKHEzdnQR64AkpD +1+4k5LNKWbZsN4pXzGQ2SlFAuiVllsKD6N/6H8Zb4Y3VjYP6DgNkERorabFvs5tN +eAARpUSP7owB7HcThANikbEJQSwheEP/auQyKYvn6/kx7sNlv4wA2j73Zu1x1uH5 +bdkrTJeUzTXQtqEG4d/Jmqdu8EZ3hAaaprZE52p4EllWthzC0X6wClC0ZcfOaRXg +O/dIUI2ZKahDCxr1UJ0CdY+VS0PcVcKo+eVn08ajeSA6h/cAcW32ecTwxulrALMv +oHEuzb8xcvxMR8orzNA91r2hg9ejDO4raC0yd3u/bhhEQUwYRtzbMxkKGleH8Yy2 +grrsX/U1NXP0B7PvTJVZcZbjG75nhQMB7kz/PvZ7UcQD3BdADBhcXE+MpoNIFSEE +sm1PdEZTj0zVV2RU7DuKRXaPmRiTVigY9qVNBOPVrcxAfpE6lM/3WQnA5m7tTKqe +/lybni96yIIKvzZfj3VmmolOXdwLqiRhzlN+IIziwwLvrKq1faPWXDOoxCLovhdc +F7QhjXKVm0PWwXHzF8mSowALXHH3wkl4uEYeKi++EkoIGDVs1UFGyC08SiWw4/Nm +A/7OyxisIYgx/2cMlyl7omrE5h0JzjskdNezCF1cOqbBYXm0N9vxWJhe1dTqbEyV +h4q8UQdoFaPC0RAaC8T14StyjzMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEZYTfQGVgmhij8c +XfQNbA8pVAEwMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAJdXZbZwoSoKcvYHTOWjigELIFUFyeGxCgFan94TLBFvi +iQGDbTxGWE8CIxPJHuvLFbAqQV/58PvDsFGMjWBjrlRFURmVHC4mfq/4WRr1REv/ +v10IApUiA9t8lvqjOzIKpa9QGEBzP/KPcx6DkpnhR1PDfuSjNMNg4/7iTTXD2IIK +9rTJJk/2ASViJzmRnWfYkzgsGIlTumaKxd643eLKEzCCBcmJfr/BRupJbfLvH6IQ +XTNnY8NXj184iVw9us7EwSDOTWOA5GqBel8TqMgVAkm4OhhmS1Oah030NOFMMVCi +yo/w+Zvo2jqkkUNXHJA6HLF6MaRyeIlqdDCQDK8N/2PUaPqCpEGjhzvgN5Imm9PU +UhsycRdjiLmistzDq2VxxqyQtZGtBfC3FM8VE0OZfP25Uhnd57YBBzO7vliQdwr6 +oFkAGJFTjTmhAnY4oaeZybmU7fxBF7ZNJOATN0KfUtP0Fj649d38TlMtr++jBIkc +WTT+oPR4Pii+8L41sdqxuC9qeBdol3SQ3hNd1GK07VutTmu+2eWS3cpByoeTnRYI +gmGE9CsJbAXsslgd1vodNvQFgbXzxAJZo5p0YjIx5UfQCYjbnzmxp9T9Qv2qbcbI +Mrg2mqzef6g9glnKl3eyjXHe3VyC8DhJPaN9SG8fXTTWVZy8/uMsFHsqqhoqhkE= +-----END CERTIFICATE----- + + +NCU IFX KEYID 8E1F3B1E129D4ADED7631F5B4A2B75828AF28128 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAfI5wHyFXFnLvgAAAAAB8jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAzM1oXDTI1MDIwNjIxMzAzM1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC04RTFGM0IxRTEyOUQ0QURFRDc2MzFGNUI0QTJCNzU4MjhBRjI4 +MTI4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzOJjkcakOG69w7S +8bFoXlQi2OF73uimgSUwl5skAIfyWZYkNlq4hBIyusv0jf5ivPmjc3GhI4tBi1cm +FvZqXFV+88lZbd+2NoyPeOrqHUYUJCbzU3pyaxWQ84zv8QFQ3vjpc5+N2USWj6O9 +2vxno+xTrSmUiBP/G+duQdMd8MDubvpaO/Hk7MFz9+zK3K4/ogOruLqBSOzeoCav +K1msngTNr7XIPFJqJefvZEv4a45QlR+oqWnNm4rGXu2/z0Q6H1k4JIIxxIN+MT7e +RalG6uDQ0OulEaBI3u1+ILWcSh91OzfnxA++K23nixSFZQjdL79UTaVJI6/E/w/m +cpAIwjil9yCF0+EJ46RGixRMhrTLjAkpD15IXazP09x8dVJpvoqHH+lPyBz/ogq1 +SxZ0IE6R+neuYe9w0sG+DP6eB4Hr5Q1Zjm4vIWfRo1bnXmlfVxe68PnSPvcidx0z +7ruRGoYN/zp7IQge+JR8yhDxV6YnWrdwpRW7fG5x0dpaWAmny3U33avG6exCH1gw +ktgHcbR5ia54NkwjQ5uo9RFe7pMzttUB/dG8dGMnnCaTu4V+ABguLakeUEZf4Khh +QYDSOFgajb9vKZL0TYUSYEJ8Beut70rM+9ZX71FKmdemTqFdr5t2n0Hel8LhotxV +G8DYdWyd9QkKzcVuF3z6vK3utY0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAXRSYQZHiDZBPfW +VmlBSDOHb7IoMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAFKCJUKArEkEMoMKt3t+dxvAtWyNnP8aK5i3uw8VwUd70 +aACp2fmiD1lvYiYASwp3YS41ZsH12sUPPgy9sGNdbxtUNCXZbkyhLw1frI3c2VwY +ofPP1ueAbBE9cHAA9un817nk9CHLjHNKUbRb8KWMdCmBQgOk25Ck3OttRk/kJ1LV +erSaPEEB+V7XFJ1lo2/cLIW6+9vWMXp3nF/Ucy82Cga9QgCbQkgns4rxFeDg8/HS +oodYt8Hoa2LMrn1Dae09tqLv3CgQF7ORM3hmosUKbDJpV13Aqzz8fIo+Dx6GJyYm +mg+qM1sHRg+LIgaD7d7qiHmAuKR7hiuqehCN7wogbLAVhIZ5Hat2lohO4mfn+JAj +u0Q56XgZsyh7+3fPtoXRTmDIc3Sg2d3AecO5fff9taH42WiGfDLi0/cy+QyZv2wt +LdKp1D/tyU6ckK6rK1aX7oYtaOEWcG6Ce2epmYEETimapOweB706iYCCRFOZwsox +cnxyfWY6QDLmOjx8lY3Yi/ECmjnBqBSq++vkN2dOF3MnzDcRpkmIWp/P1boMt+Oh +R+2mJM6Vz+rvPwmGpXhAmYJjMT/XzWM4enJzD4SqIt3UYfKAZUr0KwRbrDtYwAlF +8fbXXZRW1/o2JiznBuo+j++lEbOwC+Cy1HoppiTikR9nGmBsz3k/ce0SrdrZk8E= +-----END CERTIFICATE----- + + +NCU IFX KEYID 9532153BAA9D74482D275B1A3E475309D3CFE507 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAiyFiU/kZcMBiQAAAAACLDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMzMloXDTI1MDIxNDIxNDMzMlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC05NTMyMTUzQkFBOUQ3NDQ4MkQyNzVCMUEzRTQ3NTMwOUQzQ0ZF +NTA3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnACWioM+WxkcsHEZ +UdWz18Zv6LAtuJ/OkMxAweNT9SJkjTv69PHvGIcpgPBXww61+0fBMRSK86D0N1WF +MpMPXz/KIB+smxdkou8R1Ntfb0377NHExwPc/S88P9voddpzebAEyp/CfXGXLG4u +P3eiPwfbx69Ljxl2sEzLzbyPopNelFW1PJrwDOk+cZQZ4chCuvYReEFALcfPLokB +/ZwJjDBR87xIL3TeZH5lpRazRFGCbEYIjBvh6Ml56EQ81dsr3ZXIZI4OETWGDBds +6GVwiAhErx/t9gx8bzlZa2rdSaBDZykEnzCZA9+TOzpmHW2TQJFoTDEOI8BSnykZ +9oUXLDJPMIKPv6Dz54RROyq8/DF385KDPM0FO8fV7Tc0hp+WQ6KnPsmYzwYld4LY +rbBvQGCQOH1gphR9WkmviFKBuG5DHwlIljNCrxXAEvShYw5aFHmVO706k/nRrM+v +twwrgNuP9wgYIPduSmYF3pHX/KWZWfQWiJGxdj4On6WUgEY7vHjYNzi7fW2Y6rKr +9dQ4M82DIkuNGRCjIwJMWvMxtKrNpopFF+MtDRxP4L4Z//U5GB1ddj7Pe4n4ReM+ ++Me3yvqZrKlgzebkEvZYdKewn+lAF2PU/xajVU4s+gtlR64RbHvg/kbdwd+g5npI +9f8IA3Xxkv6lREYLv432QNbpkP8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKlyh/aJYynf1Nr4 +AtuBOqMMkIJMMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAB1iQy9kRB5jjC9dRHNkmCBp3+JE/iGRyGwxAKURkgal/ +15f4yhFEhe53gvmypZimsyMxjX/UKxQavHI/WNivd9nxv5+fASvDxJpHcUWJePkP +ZxXleaflthwKNt3qg6cylGB9d9srHR8vPpZ+yMix4h5oP/OoMOQwoPhMwAdpmRve ++gQwgjiiZW9q/dTyfOD1zpHEToblP3jx9fSQUGav1M42wsT3ooxwbRYKJosh1Txt +bqTRlck9zSEHClEs/1iL8KnLAAqkRpHiIX+RKpJHTnhSBM8GYA1QAFCteLRDiaxW +mVTUZuflpEbwKhhWJ0y7HWdAerIRKgdHlj/w0jrMttDa4jwO8tu5jrpYIj2bvmI7 +GbfGSo84F1t/+DChJYi0lGTO68EANk7vPdTxHHxo1XXq7B2JOfyNPaHrTRS8nnSr +NQnMhMaIpSyC9lLsqWSMpiCjwc5tvj5TxJE1BB89SrP7wEdLHhizZ/Q/YnKheSrm +0m358EDiG9VI9msoiO/RcILZD7AVpH9ilH8j6QDdyl5ev9MsILb+ap+LLobHwcH9 +TIzMIaRLdYfhNWLcSyfp2bc0wxedmV6P3x7z80srv89Ri/52xbt7KLFl9jpKABr0 +gniDGH3e2bncbgqLaTuGUOhXvXdlH6bl1/03EH9GAWQwalGrJIz49Ng18wE7GDQ= +-----END CERTIFICATE----- + + +NCU IFX KEYID 97E5D1CD8B0497C04B4655A869C8F30EFA89388D 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAkvDCLzrOQVfXAAAAAACSzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkyOVoXDTI1MDMyMTIwMjkyOVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC05N0U1RDFDRDhCMDQ5N0MwNEI0NjU1QTg2OUM4RjMwRUZBODkz +ODhEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsE34NWb/TMEUwcK1 +Y5nlkXLuMkXzU58wAgOBD5HAOx/CjGS6n1hQVQzeovEHl/s43KhhQ8YdHqYx113j +vnstmF/NFjAxH/A1LMPKm4C5ntEqHHDwCfzaZligoO4qGmszNersyD6Ap9LvAoFo +mGZl8UZoYSBIezBw4Ohvz5shBwti7kA6h1SyWDyjU+PIoz3xbuSDbyU8iNqoA/CK +oaPy40hESBFg744HVYGBc1AH7tl4jOf0jehynOQr/sKkFAmk7vD3UePJAeyi2+Jb +bXLUfoHfC2z5hiubXZAoofgiT+sYj6Km1Bf9sYD32Gh/2FN1kpwudQyzxy5x0LLr +QmAtbr5QE/6XepmF8J2KXZKrJTct5Fwp0GlRrAmWyC+w158DersQPA5YOeMHNmYT +C71Rvt3aJ8+WKwojvuLBnk2icOfYL6vxseZlKphditT9gTx/tCFXPBtrT0fGpRUr +4W2dwZj+paxTfefXyWtdbVIm6VLqvInC56dh87YhkTiFq1LW/4VE+U0DksKkoCoF +BQo5jp45XEJeUg5zUzBbYm2harIRwrYHWyg8p92ZwWwvEwGbGHnBZriO+G7jS4km +vVSq4/bB6zCCJ5/6LucfN7K0jmARmg5RcCPochXgZCXE/bKwSxtqjQAZValtcRiI +G4wDB8s/FC6A7A/rcO8SF/ZtgkkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDDkR0nTqAevTfRN +eIyN7ng4T6C0MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEARvDIm1h4PYOTvrzgXoQ9taRWNWLKGvBo6GU9ou1GkNTn +eez4S97BIMDzIw9DOJOSJZVZE/YB5bRdcc8DOoofmRhHeQ9cf2bghvTc2fElbSYr +Nlscxs/w7hk4H/7kV3/5zQ4XdHijKQAND8D786PPH5Ad0eFBgf+tkf1Ak5+/CqlC +usHQSeWQHe4M1p7wtuIh8U1o4Lk7eqwErh/fgmFtszKep0gBC2D+XmYCYWt+A5jE +5MoF+umKdmrCHv4/JN7sKOrf9bUPCCK8fr+FhPloi1hOHbI7cliSCZinl+vq6ZHn +bd94GlMNMNnmBPgObHq4ZCGwCzWGxEua4nLpkzYroEluMldGc9jcESjyw5vAmKs1 +C4jXNjx2xx8j1FK5w0brvCSKjlP7DkyP2dCNhWFUFxtVS2dlOFifK78Kt17gS6S7 +Jlpcwn+jLTCc7E7ErsFKS26VKGccVvqZ1+iu14gPzdQk6PPxvPYhTxEHmQkgWe82 +sw41WxC6YLi4u2p2DcUR6Ad26lfwi63hOOQ4wTYWwzjdYgKGD3g5keoVYC/i5Uv+ +CmNiOLLx1Zw6kiZXAklD++zPn1E5JQXGrmDqnuwFAX6mNbaIjrhDlSy2Xg7TVGZJ +qC70uNamLksg6umnzTu4b/oCUg6flo+pqfnWW0q089e4soO8VGGWr6LIuuORqnI= +-----END CERTIFICATE----- + + +NCU IFX KEYID 9A643BC48007E0824798430036B658419B70C077 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAWBHOZt2t7ZOqgAAAAABYDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDgxMTIwMjUyOVoXDTI5MTIzMTIwMjUyOVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC05QTY0M0JDNDgwMDdFMDgyNDc5ODQzMDAzNkI2NTg0MTlCNzBD +MDc3MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArBAnstCNkbE5mx1B +20b5RvBAYOOtNWtFMHFwB9Iiz96MArb17VEvaMYubPn2hC4WIs0aJua/ODjFsapJ +304XihPICKvBLgR5yarUJm5zO63926GF11Yu0GyhjXbhom9WUADrgV6Sq0xS7AKE +ebxsGC5k8FRisPnNS/jBvf6VEhs5KMGfOahfORUi7+e2AaXt2MxV2rP2p1eFFumJ +RaNA1mEJ6K1NvoobDK8FdXHvROBT2yU8H9ZNKlgVCdZWFa0icpMOnJZAU8SAPnnb +WnS0H9fxOTvdlj8pe25YnGZRvQ8PwxRlkCU3TinrMcFygMzomgoVMQA3fKCVBkbj +G7lkdwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUjFOc94mE1Zi5D/sCmARRevS0VuowHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA98OIE +YvBUYVn5fhulFNrfbwwsctC3qjLBP/tRbeKPkZHmGyTcSoiLZlohpHeDn1nkvHH/ +gquGZpipste1lalVsf+HhBUI64jN4ySUApxIk3eFYtCsjQorQ0zupWzARDI/Pzrl +VNx5pzpzbSgpI11qCYCxWUoRSV4YiazZmzVTIIWK2n50dJ8l2GBuih7laN3kihpA +CIsmgG5iLmX+4tvRC76gUfhBvhkclmsGVf83DmVgbw/DRc/9Q8rbyNro0qne6hXQ +kHS/tFne/H+z833Ypv4od6nCl7qFRFRL4SHr7lF7DWP6bR8nlifcEaoDxE5xp9Nm +eWBeUkzmZ+BMnfw4WeU6L+/0BSbojS/2YYn3/1xvyZ7RXt5PmUFTK/NivNy/qGqZ +el2YFRPHif1jn5nq75SvEcGd6OkCMybKXGK6UO/YGDg2cg7J3IAX6i4/G9fJQXkJ +B5h/wAJFTFG/gQCW/CL1HZ4wzzT2TN/c6mut/fNHWbQvHSHJaImEgVgeuJAHXuW4 +KA0YEDRT1WtrfAXuruY7ZDzwXlu6vM7X9oVTLhbWxQiYCfFw2NWY8vTYWC1osfev +AUIX1zQ9pPPwGw/DBPuhmkged3TbdvXv+XUMejjUl+4oQYEYuzZwtI7nOpe5lp2i +REAmAisWY/OKMlC3MIiGzMGKWxUM0jwMPXZzOQ== +-----END CERTIFICATE----- + + +NCU IFX KEYID 9A643BC48007E0824798430036B658419B70C077 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAiX+rIyU6r+dKAAAAAACJTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMyN1oXDTI1MDIxNDIxNDMyN1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC05QTY0M0JDNDgwMDdFMDgyNDc5ODQzMDAzNkI2NTg0MTlCNzBD +MDc3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApLwx+d0ftgNX9qsG +i6l//XRxlfS4k2V9cQFn8zCBHdj9RT72q+KdXyTojNNTXiPf9hSqpuaP1g7phhj+ +pXEpu4m0nDI1mXNno3tPXowFzlbQE2vmPAtpnEBdDHBJbJtiDwS3zgzqZfTuCg1r +eWV1mdomu6+ublinFQipPyhFre4Ocp6XroOgWj/jbL/NI/KHo5+6wVK8Cp/bcgX5 +8h2yjuTsJQBNaeCY9TABrhiGKnwccGiXWj/VxWjLqnlqdR+7n4LjDy84SQ3ybERV +UOP3lxXCL8s0LvPR/fTD2Fh2GNE9jTpHvpJO2Uq4kFFolfyzHgHZwO5NtZNSU2+d +cLHkjk6NILsfIsPMxq7fO9ieeuekwWDj4P+Ju0VQDN2AM16mQFo8whMnV0FDqeW6 +V+0D05afu3QEyapKBrE0G6AuX5ahJd1VLhWix+BCFsgqU2+d30nM5raKtAUMwxNI +NwIUoSP40wmYJS7gN4qTr+O07tiGwJjp19LGxPIFl2HvwBrOQ9mM6tERRpeXHSzN +Xgt3UqyetF2k3KtiZ9Eh9ygaTvxlaNoy2ztr9CJ7uxa8+B6Too7f+grfAUTDev1t +NPZme6PbuBfK605jwhS5c2wT6GzWlZ2B1Z+SgggVQ/fgwQAw5SbJoPOukib4fU25 +ApYvRqTHMoDgvJLMa8VgcY9+iXECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJ7M8BW0UYDDZt+m +q88vxVPmY3myMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAW5UHTMBNIBMB9EUnmNY7Wa68i8vpyaGGhX5bxsCGhnP9 +p2rAfqT9Gydrf6dUXUi42jpUpJSRt0XvgAZD4iS3qmpIc+QJaB09tY02LCT9SVNJ +EeYpgAAVq3btxqS69NFn6UY/Vw2AygjXqByZQR+a6NforSqlPDeFh5N7tYWGY8gZ +YPsnZOXVbogHPgsLwD5mMySpgl6oWMUQwPrKkAUSUBuNvRBTSjCpPi1yj3CoZcSq +UFTINfbK5qVGfw6j3j/JJfHaVDz2Dx1Oe9WNGVupkQm6w8GSpxz9WvyVL1uurzrd +EOpzVbjaY3KZ5SzpRRRZJmfd5xBWGZgGTk1wDVvVBENw2oEjzUH4W9PPAYUmpi6k +Lw6e2wKiBvYakhekAyClBYaYCC/EUcTC+ijgAEW9vDJ/SUz9HJCxR56r0ZPYoSAt +nwAeliMzTvEGs/hrGBQ+6cWE/avDrfF0VoppLz8npl0EPZXV2MwkLyC+EdK93frN +gGRQ/zSVfqDSQrlbOZTv2dXM7LtqrX/HrfX35Hi+zIzzUc4TldPnVdW53eU25IZQ +LEifGRBa4s5wYGbBmIrKLgELZv0uFRH21RVJPDrZFTY1HZ+3D8gds0/19FClHAU8 +zlGqE9iZMWqBLtoNkPO7PBWAsGDxy/F6biO1nWPRwWUKFJsmmRL26A795KBvtro= +-----END CERTIFICATE----- + + +NCU IFX KEYID A4384BEE3966533539CD0A736D1DD2C213538DBE 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAcWL4tnoXfjHbwAAAAABxTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkxNFoXDTI1MDEzMDE5MDkxNFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1BNDM4NEJFRTM5NjY1MzM1MzlDRDBBNzM2RDFERDJDMjEzNTM4 +REJFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvnRLTsWlaMDcMxxM +w4diMNBjrTCDL5Vv37fckhGznnw9eXwlRRfo+jZMHhbUqgPRLgrbTJY6TdUVTKDv +X/1Sf899sRYnc5c+sDE1NMAAXSpDxKvTIsphWlVrMlRZp0uaMT0aSAAdCG0KotgT +Q5aWdI71qo1qy0XIGcaIZQ0OucAgQFP8VHoSUPuIKvXxm1SJ2yaUFNBUiv7cqt/W +DNZVgXdGTu8ooSLsZYE7MOVGZCKOa/HAuITIfydSlnktl29IsTa00C6pRSCyzjXw +o/21+BfDmOsTI5k/K4I/rkPA+T+5Ut8V72b4DSNVIKhLcKmiGhfCnikcMO5zw6xj +jIj36nn+eImCNS5zVW3+CFFJAopG5NYfocA4jVLCvMuMZKIn7ul931mkZBSkWmxn +KrIog2f223VfQ4lGEUTJLwpuoxiT3Ufu4BYbWLBaJTjG3/F8ENVdtgJGggs8tZl/ +xuuY1VD2gULVuj5Yp7gAtd8++YXnRiPazvEE5YWA6ztymklVDCoHF4LBIRSbRFV9 +Umvtc1gmFJUTyk0uZvTakHEERi1w58QFYwqvpRzEcOfe06VGfgSxFVpbX2WooVwD +UXUQ9km113449uGQDlvnXaMUBe8QSwfRikds8ASgmnjJIwgEIfBNBf+KGv4tMvM/ +XGAkCVA2h+umLKJ2GIAFbZO/UP8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMw0ujhUut37/vUN +DIDA4dhKZS1aMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAmalBI511Xt1IpwsO7sR09pitnpJ96Bo9FSC6F3srVnco +pOIkrLmZdtXHGpdu9EDoyQtRuNtH7Ih1y4QFG0v0AsWjCZADv/zjzhTikzD81FyY +6THTIYa73upl3KsEKdPSxLLqv8MX5Hvvs643y4BHQ5/VKylitnPM2D/6b74fK52L +8kkfeN9qHa0UzwoQG2uuRnh9RTruxsvxVnXUIkNnOrifB0IlDkzvsICx0bxfWIzs +AEvvBOdMDLQe+mow7xlaZPwGMDtm5ul3sd0CETfnEf7Lx1RGZDdgYnEeTT0KED+R +Pp95f2hxOEcjvpY2dz22DeY+NxnyzUIsA8TWW2dY3kpSYkYEMHS/iBp7aRzQXIIc +M3tbq4CJgS/3KoTZ+qPZO5dI9L/9DUNSD0Z2Zt7jfqH/UdmeppdBA4RqM/1qwdjG +DsCBQcDpCy2xWHXXlx9UBguoVf+J+w9+xVYFKFNpvesYzpfgFmoSrCZGTaUpV5U4 +bT8GG6zayFnFVOGm4kus6AiGhz4//oNBPoRk5ndwcpfglx1U3FVFncQxH81J+mqA +uhnzLHTDuvOIosZpL+yaiVyWFxc7TJIfTMrDqY/BbRX22aH7xs0iU1iPvUX7tJoO +PdRHDs5XTFrQmNkZRTW2sFruxVD5VDJ7DVu8qv65sTYmUEKZ/LReTbOOGyDKOmg= +-----END CERTIFICATE----- + + +NCU IFX KEYID A4D18726364EA2E3B278464CDC7FAD968E015D4B 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAcSzImw9Xze1RwAAAAABxDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkxNFoXDTI1MDEzMDE5MDkxNFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1BNEQxODcyNjM2NEVBMkUzQjI3ODQ2NENEQzdGQUQ5NjhFMDE1 +RDRCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwv2KWljw2531GWl4 +y+AbT9pMaEjeAnmqLcIA0/K2nrv/fYZ9OS9mY4KvP9mQtEjaSYg4lpBInKKkE4la +IVjKIe0ZFio/vUB2nd92pKSLnzyq8HuCcFzkib3JEDTPTQ/0xOox04HJQG1cWOTr +JjgDziVXrG9h0bSk5BH2BLboFSIy/ylM48mhE1/ArQlvlIZIlsx+pwJvMRQx2UZU +xw96aBOqJj5wa9xmoT/Oh1JLZIirrVfL8natb5GPChoEzypknOUSru8ZHLAC5aI9 +hlY5xc7Ksv3UQWVHlXfdkjZzBAv7yATABvANcxmkrr4AbqIdu1o4ez+QieahkigT +sDtIugWI/xiMy6e9WNDHpuTwPd3zFhvXLeBXounTJVZhoEjFXPrnwN7cP2vx/6zw +EQ2e1Kh0uzOkjK9afz0vg2ce5hXrdbRAW8CTMhj+ggmeU/mPiy89fpGXQrUBbLmo +gmcSoXrfX65vUuqpsEzXvEv1A1+szSfIkz/LaA0UUhUYSIkb9VPqi/bcD0iXBIvt +g+1HqeC8sPtSHm0Eg+8HXqtSi8Noh4Tno02UA407M8+ic86ABBD04D7pHpDGwsUu +05isU20/aXnFV7SBICn/2E1J24571UFfpO94A1GdUkk6L1t1bsxS6QfBxv4aMXT8 +pVmCq8ZVM4xw5QX4XsnKY482Es0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLKHqjYzghOPyyg+ +6A3jajMlEDbSMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAnV5iS8oT05StLjuAJmKSAZ0i7X3aS2vv4wzTFczKncU5 +be6cR9/Lp8MxZpzAOMUBqqaudXfYsDi8N7HXaaBQudEFCQr3fuGEvh1QjSP2x5l7 +1QMcCtlXUfTZl16O+y+OnqM/EPwWZTDC0KTie9Nbw6TVwYjH09h4O+OE3sIOsa0w +GX2Gi91/iqjSvsPx9OVr+HHyohBaAKTgaL/qgmNuqdo9jJkXYf+cZYihsoxUI6b9 +V1Nw/LOlArQgcIssr4oI+OUsV42m5P7c04Emn6kAbhxwfWNfG3LhNSxy3mfHWUH/ +dRF55Wnd7t2Dq1x4zG29ko2nTMZURZ52cT2gbiyqaobnNhVNkGuLJZoxFE/oDHtk +7Vgz0VY78dtwSVrEMBc73352CmKwo4luSKz4Wz1MDAoNenLhKtqxYlTBTS82uH5N +BS//tDAUaow0wZOaNZHS6e2rYKeCLJpTsuI/OeOS4l4plGPTx12BppYoVWGvq8D/ +VNDXXN/tSt9to+oCcbou+IJDMYC8cYlXEd8dQE9gtwZBgMlN420Fi+Wu5Ps0KF3X +IWXyfAT2jufjR1bGWOd8C8rOf+nFN1ktvbbyIg50FObt6e22hxsbZcX2aSIvlIZG +MuDeYlDDFhlaycWDeaZ0Wd/NSZPO6W6LvKrktRvGV45diYGtgknH4psG77qJHi0= +-----END CERTIFICATE----- + + +NCU IFX KEYID B02981157B6D7CC3210016380B898950524350E6 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAcfBIpiWu8SLkQAAAAABxzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkxNloXDTI1MDEzMDE5MDkxNlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1CMDI5ODExNTdCNkQ3Q0MzMjEwMDE2MzgwQjg5ODk1MDUyNDM1 +MEU2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAm1duihpHvjo0O+9v +vQn4/M6vnhbIfhBbJ85IggC1b2hQLQiqiHaKEpUDT1kxcO6mTFACcTgOmTcrpY7D +m7M/wjq00e56eukRpM9KnD4efTwOkC0fp0V3NfGN/cATPPzJmXzFCe0JY4T8qudj +2CdNC35sp5qY1X1A/vgi0ldxHnNaiwEOT/HEQzdeF9+6MqJr6Lj9KBxe7NbEIbsw +oAuZjZDMe2V5EL5Wy5JzBEYF4DClMM99SXYTdOj7gm5X1wU8mUz37aULznvt/EkU +kW3hwNVnqY60Q3D1mb3l9+I0pY0/TRc96P1Tg4D8OFVDhb8Ra//3Cm0DzTzAbabF +v70rSehoh5UBWpbhu3hpgUfnyMVtLZCpKvjKcZaeVMCIIOEeXagACRz4pteu/tMT +bwuk1NXW+yb1VzAneaKz80CYU6Q05f0e04Kh2KNzAuvfFbT5EoXK49TJH+F3lYbe +yBRYIJ8QUZJthhCeD8Qj9fvZIV6vtzCcEhtktLbb9jpbz22Vocg9pVRLyOrYMi/K +vO0AeYW5lT1lgAo8Z8zSUirKOEmChqrSLSKp2hHhgWlkMNdU0RIGd2b0393ZxN1s +iiANXjlObLFLm6s0sDVSVVoYGWIKnkCj46lWskFE60Nx9EhSwSvPXsRZRpacmeUl +6FB6Cb8bj1V6Bj/1etknNTMACu0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOR2xV0mQ5qNQGqR +/33dGdgUzQADMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAAI7lTFCIQVP9otT+sDzuF20phV/cPrgLZbieSouq1Fg5 ++jNLKXCSbTXEFUwo8tdP+ZHfBoyfynXfqSqIxQGh+w9nlAU2gSXaWgW2Rr92Jfi+ +uYcp4HhcfmgtPSSCz9/BRW7DGCPNqCJi+6uMrQE0M0DNX9pwSi7S/YtRzUrmD2SA +I5spCmPFxhSwVIt56zzvtmo6wgFh8PeYYIULu03kFdUa48+wi8+wKke4PV9hWOms +PBIYR+0gwDBu4C+DEpkwprXWrZbJ6IhFGBlAeZDQ/CUGFNvnbd+3639mZOCIIvNs +2vzyRwCbHy7RaK4ELSLenN3j2K0InfURe/4/zS0FHQohAjjuW6XyPboBWsRuAFef +A4QqVD4DHA3tbUqKFZQDAD8YQGE3KAOJ36t9yKqYfUllyYDDsHAGeGtxsb2tV7F6 +SUv9sUxOvNAKeMk59Ht7F92HKDVfy+UsIdJsWxxL7QIuMl1j474MwFgDmdhHDKGo +ObbXFnwJdwBjxw9GIZr/jAxyTUA0oCS88sWX7Pt2T74kqi2z9jtgVQBLMRKAQ12o +y8O2o47o60pe4D7DLUS42zOBPsXBLHidDx6dVyVz1m0ZlMWA7tjnNtUwIORl5ghE +WjQYfaqPAd/jgJ2PTigsli8vXM3Dkk5YTG67W8kmlTIkxEZk3LLAe1j6hTfJarE= +-----END CERTIFICATE----- + + +NCU IFX KEYID B080359B59AA938800A4AEBFD10CC70CF01B1B37 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAcbezU5hP+Vt+QAAAAABxjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkxNVoXDTI1MDEzMDE5MDkxNVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1CMDgwMzU5QjU5QUE5Mzg4MDBBNEFFQkZEMTBDQzcwQ0YwMUIx +QjM3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8k1WoS96+eBd9DBX +jm+Vtbo5FCO07fNmXvbsIINUpPJr9b5jroaTUsEvmVUHdGFQRJknNegRWGRGC5LK +/ILJpjh9yWKv/NiuAC9LslLwYGPnjfyX473HvxzZ1qcDuKvyeFUtGQIisWgmL3L6 +vrJ+4ImxRvdeT0jf2zGLbCFY6v495CcJEZM5ZMMW5y0WOukjMNcos2/U9c570rGj +jg9YV6kqpQBH+CwULpRHaka+D3LASL9aaL7Divs8rPJfC32S8BOekqVXF2DBRC8r +/2/kwXjuX4IR98xmnSSH4c3xtnQflqKYkH3Wr8jQbCqZI+QXCRcF1oVaTHDplzst +M2KWTAZwtWVOcMFRzD7pIxewDq5X/2/vsb37F2QMeT6aXUqCwkBsCfZQ0OIuV8QF +cAi3zzJJ7O1F/l8JJIGibanvLtINU3GN1DsTDv+jkOcQhNA4mliUxSAa/IJBjhHU +xTW5bwwEljXAMT2IdV+xY9EhdS3lhx0pT9GrC5L+l626sfPTfuouzcOzIjzS+sTu +ntSeCQ7Pta695PBlsQk+0sPBMoAXjlGOTRbbRMc89Xn8m9VuL50lXSHXcfDSvt7d +ZOewhjQhvyY1y1YQPglNXrd80l/c712YlyRwIXdY6R9Ha6IAfXuPk4t9hn1rKeIf +8bKF8Q0AwYjmOQd8ZA4qLGHKTeMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFL8VJNRHP/aNvMbN +p6rx5Gq5FFCkMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEACtaCoCHgAQIWf3D72cAu1LS/cMznA8DN4M29s0IxOa3D +MLn9h9N9gcaBaXKecUjddGTWKYHkiCCaIOXs9VnFfuGu4p/fe03mOcldJXQUEiPo +X23G0+MLZElgIvMr2hvUZExc+muqUf8dAq+sRlVYRmKD7s3eGryhzKEgAe1oabdE +8DUamP3bBJaEiKMC0J+JC5rN28Z4ubNwXouwYJ0wDsgzWOLEmybeMoXbfB8kX1uc +aeDL1e8N92Sga2BB7lIHuogQkHnNeL33f5MGGNBKbzjc3hmHxgpC7x8liHNImYVb +Z4a75QYd2gR6V2xI4pD7DqkPYowxqfL7hjgRvV5rclXtJI0QeoLzrR5HqCFQKQdb +sdNpLKf3uPl5UC9PVXSKVOMvLz4GIa7c6k76Bybfw2T7zdGCeVk/BhpefsxswTZY +Y2cB61gfv3oSFYsVPjuF+iKpITOd7Em238tzWrlxR0AdTkqildytDkco6Wt6pILV +aiT9r4YGKMXCs9aCRP4NGzNmy0HbcNcp/HWqY5xrqjPEZJO5pE3CZLEYmCzyeNJS +fE1qU+S3ZuSuC+3v3W5ZwHmjpcN7XxbRcZMbT5mieJpynAZSt0zmqgaoMBAVSnGO +eVNktjKt2eNEKNjzuLb/bRYa2MRIIUGRi0BoHUIDKx8Jhh3lAC5YB/gJBKEnego= +-----END CERTIFICATE----- + + +NCU IFX KEYID B2D3CC08144C50808C289D119627479BFFC0E4A3 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAi0YZ4Vu9a5RWgAAAAACLTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMzM1oXDTI1MDIxNDIxNDMzM1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1CMkQzQ0MwODE0NEM1MDgwOEMyODlEMTE5NjI3NDc5QkZGQzBF +NEEzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2D6AJHh9aOqBrAyF +X/qX7604yk7k44GxnsmT1ZHA0owj9unuj7wQDtdfn5FjQKh/Rn1ERNgfYccmAwNt +WIlVSrGABL/2tKlHe9o3tkK0262hZ+WR9a5M8Bob0LV8isqbBcrmvelPoME9Bhum +0HaAwh5CwHDUvAQiwAuH4LuU+gl6csIGASpsytE3/OOruwFuoanthwlKnfVHE3LT +/THDqlE8Xn7L4PWR1kJjARPPHYeKfxNbBgBEry7EL7/F8w0lVdXl2x5XgQ4/jbFI +E8slGwICgS/IdoIY4/d1QcLUVxKeHe1Av9GO7pYGuybHvEmKwTemMPQ+00N3JTIQ +Ua3Mt9FjkTPRk6ZGdnXy3dQ2U34BQj/lQCJdRfgjqYuSCVNtCR6mV+vta2uh0f4G +ljLM5JvhzjERpSpuOdFithnYptaNhIB89QcaW9oJYMF407LRrXrDwQq3hJNjiHXl +hsdlBn40o/ov/rthn66DvPTe+4rabkLZ0XbFvGXSS7MzqeSzANLdhmvm45WpI2UI +n4ZTutZ6d6BZ2DCMtv8aIflgfqb/XTL/yZ5enyqoecm7DeHvozo3WE4c8QrR/Xaj +U+i1x1oTSk735uUge/Qgwf25boysn35RSq37dZvwUTSPL8ODvzZOS2Nqle+dPZNX +KXZ1lYj1YRzvdxLBLPqhhV1VYxcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLFQWwmfvfBLLGQm +FTDa9ahGYN2mMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAEWiaLGJtd4zX6t/G6394D07HPPfbRGB6xncI3f+PUiy+ +rKZgoHJvjXtD922uLui00y7Gg3w2POEA7jK+9LHT9QEAsDpdHaViqO72/FQSaLP/ +/Smf6mjpfIrq35cY01c4Ye4YD9J/SjKE2UfP2YB9zzK6PiWLMlyadAQzPxFm0rvF +3KYFLWpN4qGzvv/zGkL3Wp8oUVx/Y/bz1MMHOM0c4CIZIAP3zED24RLokfvbIPHe +DjCBtKjDMFwRGqjVwT2R/kJNJS3O1FsKuUAMBpLtC3wRcHGzFI8nYnopMKG3lXOQ +yDAd8TeDGahxpsM5lFe2dLg1gtp9MzGXJ/mJ31DHgkB4d2K8a3WqPi1bw+AtuxKU +FSPH2cztzfqDr8jRCGGPwO+M6uk/nutrUxWs915CSdE3ctMB67MYqTV0PPkES5as +xlnA/wM/HaZ44Vm8Dbe0RANOwa3gRkwZPvIk0AyNPm5JAZVzULDsinGNLMrhMfzz +/KRCuIFeqvX9nv1MuM2wvwoIxgryLNrn4BJX/oZD45Nl52yAx7iocSH8sFlGOCyF +7Szn9AcKWksJtGiNQ1C2nYAFNs7JBAfvxARjWT+RM5hJ+e+JORvGFnwbcYcMHVUS +FWWMuhP3i3BHQAjxQQC+EDnU0uvushD6t40k32DtguR+faNZu1Hx3PWQE6v9aLA= +-----END CERTIFICATE----- + + +NCU IFX KEYID BD6C69C0759EAA95DD6D156EA64170C4B9B36C78 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAi5FC5WcZKTAwgAAAAACLjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMzM1oXDTI1MDIxNDIxNDMzM1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1CRDZDNjlDMDc1OUVBQTk1REQ2RDE1NkVBNjQxNzBDNEI5QjM2 +Qzc4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1O1LpBnw/LFn+j17 +ZtK/DLwpyTsYYAyEn4YVX3rbLHhxVTD7yX7fAWY3yOhB7VRRR6H0MwhPTXncClmT ++MswgHd6feLeg2qHf1E7IZSKFpbJW9c71K2Y4raOiWrC2szS5otl8FQ3HheyEXpN +KGYSl3jZV34oFidCr+vE8rnSFv304Jtugd31fCQChGfoJzkg3lP+pOyL3SYvGFwP +jwgSkIAICwymDVhCtrB1Dzv/nps7uyqFFlP1GIIRGc/HxKuwgPSTZ3FTYGBfemcs +I+igQZxYV9L5cMUoKylzz/eybU5l2i9MClAxANrpSL7tvhdc/GASzio7IrucP9fZ +yVb2ctXr2Vs2R28YPS1eRuIG5zc+zYhwBwpL8eNwBpdFWDFTCmtUBjeE08sKQ/G5 +znNc4Bzx9C0m176SHjo1SK1ykQ++ixNjbvzISXOKoKgSTSZm8GncQosmuI00eQ8P +9ofQVYYoN1TvfTp8PDMaLhloLPxPadFGXyyS5yqkNXPYgDh9/uk5yh/FXRp6mybp +JXOucbSZoG4/77Kc96qN+2xk4JPU6dcpizrV1MheOFARZ9I8/pbpXUbSkap3FzS4 +3j/4dHls9fChUMeJkpyoXwcEFHz/awgyQrlAiLvyVvlnDbjuxQMGCyf09haMh4ZS +TSlAyH6Ih86cn/jpKxQcKYlMoRECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIXpIcHyrroXrF2Q +CVGGrYO3jz9NMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAOf0+vS8FLlvlo8fSn/gdxRqxoKHErqlT08kb3iOm/QGO +u+jyKQuvd3lycQ6FO87cj79G+pKSRaWrsYOUIC3xtvgrIwJkgYmOy9piapKbWd8+ +I/QSFhlw1L2JKsm4ReAL9R4e6IjeEu9CLN7518wANEgWUtKOxonYTN2Ga0ejo4rU +79hWQ5v8NoI7C/25VG3PPH4drkLyv2TTgwt7NnnOsexDihBW7/cSTE/w0O6BHMTR +FI7wlRbh3rFH6lqCaS8Wh4QG5jPUFSuru5qo1k6M5YYzEeQequ9nODuzN+KeIUDu +yhLztjNqKpQQXKS119eoTnjL+3TXt493wthUx0wVIgsGfvMe8MgGCqibxPp6H3En +XTnADB27TpcU/6c9qZk0ViqDIEoNOPXn3mIYng0+aqJ5SwP8jxXDwsCgfL5TMH6j +TBFFRUR1ZXuIv8YMOwg/hrAWPYCftlkueeT/OUmAMPYJ0/zjwJobzAbX7RTLI2bi +ToDOlhrxvoEuoMQD4cioAvxC/ssdgEiUgt/9XgNyfEVAmcqQ/yR+qIgi9a4wReva ++KsXfDgl4U+P1eLPbiQelH/zquS6cZzAhsw6IKSN6QlBDwQc39kTsZsOzNAWoCfN +o+BvQc5RcHrUTDMvpICdlr2Ka7YbIBTcEtKD5vHh6sB4fxDSuHGmgnYyjTCQ8kc= +-----END CERTIFICATE----- + + +NCU IFX KEYID C0044E3B23F43B2854BB76AD4FDD79BC62986C55 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAfqcTrAQj/qPAwAAAAAB+jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzA0MFoXDTI1MDIwNjIxMzA0MFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1DMDA0NEUzQjIzRjQzQjI4NTRCQjc2QUQ0RkRENzlCQzYyOTg2 +QzU1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyQBvi5CRRS+QtKhN +iLuTpMQ+zf88hUOTRU6z6QFwc+bj9W1E38wcHIAaJk0XCXAavnp+Hkv8wlJZSD0s +vC//ALCiV0r7r18mMWeMLk87DN6skRoAbywHWC8VQ2g3sATE1Fox1IOW/ZyeIDUY +VHakk29f6qce9lHYovVZmsxuYs7MCu0bKf4cVlFLGIVaV/LsnWtvtPVRDWIkVGRd +QEIscdK+fWLsWvS1JIzFH+ZU/9SyaKIzFEMD1CV0JjxmPcEdEFm+uT8rsMQtEZMD +o0PMgNVdiGtMQ1l3OYjsYx2qFx0OIDwakVNyX+DEVv6NrpJ3BYoPrSljZFkGSs5L ++BHUYbeb21SyPIkH9bx2zksRoDv0qMpR21JBHU2mzfyMIMmRs7bQa4lRXNKA0v3l +NWvx9vLyi/HPTSt2hLyo9dy+APgUhgOsjYl9hitiMWvYOa2Jgp8N05s680r05mH3 +CgrBzR9wvgpeC+1LBZBahOv3OHKrkSNK3nAKDneqIm9N68xrMwAXaWQ0NP0WXsmX +ASVlXoeU4GbSIkfY1HBbunJ/xkG8ow5XorqjxapSAG+2Zz6tr2AkByaJ79aRMUGx +1TcOgMD+hzEACb5+uueggMQqdODtZe2UEVoO2t61eeKEQOugr2wS2XPJxh/h2+Tl +9obkQZNzzK0TeUldCrD7oW+jINMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCKkyWCFqPAxxo3q +hMMAEuF2kZqyMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEALhea3qI0/lblf48IyUOz0AWx4PTzbADsxtgEM1B3c0OQ +af7nn0jODNxeElqniA2fdP+pISdkl/fg3xroD4ztaRizlmSHfZCbDc1idPdnm1F3 +8BDzMaYOuW51YBaGyi6tylYydTUMDvr6U5LRIPDpfSHKzDe+fsXo4ss2cFeNT5Qa +B+6ButdOsafwTh5A4cteb/yiatL5eYPVhN1es/FrHhx+qGbOxgZADz59XTs2YZhg +QP6HOYD81sHQDxfYfyRPjIrELe1waj3sKwSoAU89OyFLYuB0otCR6XJBkDD5wckx +wBXnFF00mDKCdIhXdoeXFn7u6wn/R4U1bWEAphzxwWKmgjFBv0JBL0hh8cdX4vHT +VuGJMbd+elOiuXiL0bxCv9WeZfCtr7D3HroFWon7pad5ljGfaK/Ci/Wu/DYNVo/H +QZ2EG6khRWSbT20YSWJp1BZPJsEYR4rvE297eRKiGpfI+rTDZhOia9vV/vZHu8NS +Q0Q+ObwrFpSqUFtVwgLCazGx1y72LQTqukZ9g7Q+ETAr2QcsOuLcrgkgwhZDELxe +s/vyA4RqKXTIvAZhOExJDYX3ztUUZ6ljr51VP2r7P9K3f44Z2v564Uszj+/Jyuqy +aTR7s+BFEQWR8py5WmsOTkZpLDvpaw+Uv3ymGM9rT384SNtcXBhwebssQ3Y/K/4= +-----END CERTIFICATE----- + + +NCU IFX KEYID C7EE1D9CF6A291A06E4F5B88CEB25CAEE12F827B 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAi+eV0qbx6IwTQAAAAACLzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMzNFoXDTI1MDIxNDIxNDMzNFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1DN0VFMUQ5Q0Y2QTI5MUEwNkU0RjVCODhDRUIyNUNBRUUxMkY4 +MjdCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7HluUbth3895/6Ux +Fryo7zpHEF5ZDpFI0MkvSvm+FHgAQ2OYg4dtKX0R6ef263id5UDXh+7cE7fxP4HH +t/D9HvXB1toGGpLi7Fj+R72E5CfXjMt5F+An49bW88hPQbQZIKaKt7RDF8ozeMNs +MzDzZ7VZnjKvryJiQ4KzX4DiWch+UzGIjcTwvYcNsYGrpGwIeRfucmSHOFOKVe86 +FC58yZHrt0W+Rjlj4AO3wjsLPkrFDOppSh7RgcbEf/+LjzowbN3yHmNLcy+pHEQo +eiFbLQlvC3ILS+nX2z+szwxzcxn0+wxiQcUb7ZnKPY2T2EziPMYxrVjh553mItIA +bwjFTyy7byoeMzHKwfFswdrrG0h3RF/3u6E8iWLh2nfFquSdLLqgkJ5d3al+tJ77 +KAjryhXTr1QszwTyhaOXljskGDuyHqQuf4FZZsOI+LfD73Kfyqwe0egOpw8ECHpm +45WJvUq/cI1PvJRcNAe1RZ3NCm9el8LNMStLj/MUoeg81EeCEuEx6skd/vxyu0LQ +ruJpx/QFCmBeRHKNEnm6hJ8jVjUmf3KtbtJ473kNzxW8ZLPaXwJt9h6rpucQabgN +YkJaNWFzvYvBbAcfM1q6jwEAggDpufjRhh2+4+dbMrS07b0Jesx4VOtpXheo7FJp +PyWa4oVi0FSUxoDb/PdbwZerD98CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMuWcy53kQoBEGRW +tCxHzWAfLkYpMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAGUHLlDxzXE0ROuszLIlGx92Hzu6iWWSwzqwgSxCtk2cI +ydU9LPWumbyT1SIUVLZD3myByCfLZpE9sKXL3MUsObbcudnvOtvhOJfkbgkHOWwJ +ezNFbUg8HjgghdcNNVKx3p7BFUQIrA0sxz5qh4RF1tnCft6zNmJoCQUs3uqswtAV +UIcWThjlhvO2lD0+KUnq6Sy9yKysY4wGzdjlvweFUuOAedGL1YlYXdlxI1JNe6MF +rCNOEHoovd+HQuTwk/2aJaxYsmRIMnXpFx6BZ9EH83P7xZqDLJAjJ2aGyzM91lfe +SUW6FB2mDmIX/fPikD6M9J9YEeIAYdneCGfSvriP35076n93zviWQFsJ6alQJe3D +eOZ+o/EFZJm0Sv9iAkkPzeEMohF5Uq8w3n9/eMoivfs0YcK0gsMJ82KfE9b6tiLF +NuctcdPkKDkW92Ij07VXMwlr6rGCRUooKk3OZUM3DxpapP5bXCpSOoJ4ShGxZxyW +StP4A+m+0yZKdAAFxQmBpjfiSLcCP0K3tVsyxwhcQgm7cOI9wTfNuuCu+sk+WaOE +KCkTJkp72F6gEYDhhB5XSDiiV4SyjKhdPrxGm0ySb235OfZN504+gX/bE72VcKs6 +5BefXnwOTtsWKlIHyCG4iz/bG2t59UF2ByUCb1zQs5Wcj/YLo/RRxBS3tScuRGI= +-----END CERTIFICATE----- + + +NCU IFX KEYID C88C75FB06270BF7EA1244FB9C25DFD209B7ABCD 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAjD1WO8fjZXzdAAAAAACMDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMzNVoXDTI1MDIxNDIxNDMzNVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1DODhDNzVGQjA2MjcwQkY3RUExMjQ0RkI5QzI1REZEMjA5QjdB +QkNEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz7rp/taxx1rQYUG+ +MdgLJPqQSREINJqXB4hnr69H8pfBY2eayu7D4Yd98ZwSt0SkEgkC9ThDRPmLzY2+ +zM/JWs04uyZOF3qjl68KdQ3d4qcZURP4dvw2SsVVH5ioCNscqpGoQSrvAGhYkHbt +4qBQFctZaiE/jkxiLzkMMcWW0ETS2s4/fES9u9X5jGA6cfev9Y8S9vbYkEwe7lIx +NecqLmXqt1Pgcne1xkGZHpQJdbTuXBpprAMb1iNl8MfeNwHYe2TzLk+J4eJYZvRI +wD9qMl3nANV4KZJez4EhDS5KRSqKIK1Y7MTs7VB+XWWvuL2GKtLSPGmtUtF/E+ME +XST25yX80arSxgSqFhox/chxfk0D+MwIUAb1P2sOghITP0zwmZHVoTYeAr2zep97 +MVncwP8lh0SaHpeDvVZoiyQdwM48DawU8xWZmC4ZWMjoCsrQashdKC4hsMrhJ+vg +xs2clMeLvCwvadToH1o3Y2o3UY/DHptXQRuiqk8Z2YqPpsCtXb24Sn6retIUsvas +dAbWOdq0fdjE+4tHw3NkEqcZHS+mBZW905zStRObho5EzUC/0os4jvBQVi68U7o2 +G+7JmY6iK4IQJRzCh5CR2v0RaxBeTA6oGZ+sQ+neb/iYvss0ExJjsro5VnzInnBd +vxDs0aDpkmvk7pwvhiTAZW2k+x8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLId0MskBrvuq4f2 +Il0grQ5gddp3MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAA2F0gw7faEhUoITRrVRdwURylxp80GeOul1QvUhl7WKQ +2gUVPxHwqJ9lkG6UARZccwfUrqnwl76wCNBjBdUtRkesUG51WS49RpJVrjTwcYUD +KCxxZjUBItzfgizzwUqGPHwqoN4snqsBzwChTXCWw6cazocLlYc56tah04HaodDo +lvjcrK1be/KPuTHXe4YEguLIn+5RCWprkvoivucsQ7GbwElM6sYdENZ7Rx3AoCU0 +43aJYjd44CTGDh/j0WEqGSEYU67Xsw8uxE8kiditSBajq/qUn/I9yZaMGDUWEIqw +SHcsexsDuZKDLMu1O+qD+3HSiVbVVwt1SNLpmz3BttWapJs8ssPeOAN/C97i4fUJ +3fytasklrBwb6GK3wiu+xNW4K8l5neNYyBBYsjtkAWC2Y3pkzJ9cmncfudNgU7F0 +x+6VjV6nbioM5C7EC0IvUfXctvKD+zGH06ZdjX9tgkuL8UKf+7f1hUMIuE/x8h4c +aIzoRsFNgROvBfOsTNXmRIYjlSnc9Rp3CW/EpBFOLMSNNQWuUGruzQFD9ocwiCo7 +1S9ax4dAwKWVG/QRw/fXBz7pKh/xe4ZXlGltW446yQKh0kXbidhUJ6R/4ZNG2s0G +vODrKAVEmgSda8l1DnRHaphDKA790DuhltapS7dxXnpuVZ0rm1VVfoDFCzKPgss= +-----END CERTIFICATE----- + + +NCU IFX KEYID DA206EF5DA6CF79CAE93C5E472FFE9480172CC8E +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAWJsX0zGUaMAPwAAAAABYjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDgxMTIwMjUzMFoXDTI5MTIzMTIwMjUzMFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1EQTIwNkVGNURBNkNGNzlDQUU5M0M1RTQ3MkZGRTk0ODAxNzJD +QzhFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwbYHyXlrc6z2iWdf +FgA9Dwv42WRLeh7eedDGsCyS+Pw4oQywh5n0ExKsfHcaEmkJYGZlC4YhMjcA2VHy +0/dGGf3pcmY0mPkzR5cPygordFrGMk1vMv1Jjm1mn2UTdTQlLYHo1gkFG1eX7nQ6 +BsfswWfrxiZ1uIjey9fvElFh98/CgaB6AjJHn3rQMuZj6EtYocAJgWk7+sTEICR9 +q/qc6Q76o9AvPGVCYVlN1GS1RPH3JhHOwHsKeuK9oh207yeWwGFBbpUtB0zs1cPB +sb6HndMOQiZHtJOVGj/0nxChGKtHI+5LiMRnnuwYMdJWRyYhiBa4oRleRSSE1JMW +28VaFQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUUz+vIiS5iyALHEAJ8/mOSYYS6FEwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA5OgmX +wbWNdO6Syjm7rrgbe+Fd+0FgyTA/0tfkcOpsvo+cwFfmpy8a4/3P9Epm/1hFWeUH +SUwxsVfElxfTYdCPWdydY1xvBG2u7gKJyagGWQeK3CLcn3vwN1HdEM+9gZeiOrSN +fYNTAoH/RtwQEyDW6s2yovXIBDGTMQnkVzOODm3kxEQA1+lcQxAubW5xxXl/Oqg/ +g2oDeXQIG+aZ8QfD5WnzBPIJDx/jC2r+fTfHsWLeCUbfWwrJNZtdgzsIyvtzT2+3 +bCgnVq38EawdlUlaCziWEd0VIVZ6dbo3KzVMfsU3jhbUCGe1fshoFEUvVPgtmTHn +uh9/Tw8gIig2YlYg/GSVR3d0mE+cwxQUtxDSoMN7zX9InnHff8G+fJfMrRPJWulr +WXUU6hTC+7C/XXNJeYys7Hx/w/6qZPUy7R1QgNdzuC9YG17IWohzWqUxK5CL9hYD +fT4E1Kj75xNHeegDVUGtOzakD9ZQ/Lb7y9GfUpKKAOlFs9qiOYk17nvIglDtb3nw +xWrf7xLpFSqLUbBDHrbHCW2fxWXM0Ys1UcW2o9RSb53ucbsJmSlu0qcszyix2+AA +ffQGhCoJMKEf63PTMVwByUrUPS2XFjb9YbR7kgGIRYYobK610E22KYhUGyRfp79H +OKsC5BV9CxynGwjurmkcJwSKF488MCV1vfVb0g== +-----END CERTIFICATE----- + + +NCU IFX KEYID DA206EF5DA6CF79CAE93C5E472FFE9480172CC8E 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAkx+O9MVXgwqXgAAAAACTDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkzMFoXDTI1MDMyMTIwMjkzMFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1EQTIwNkVGNURBNkNGNzlDQUU5M0M1RTQ3MkZGRTk0ODAxNzJD +QzhFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqtU9ls4rjU3z8ssF +R4gtQqjSdtKWi5dJPcV1xLdAWTMbIjlKOJhaLjDP1wuLYjO7Py0SUBb2mrG1WLGD +Yi5x3EH43OSUwkX8blD5Lm2EanrtRwTVgVyAApNyURiDOGlTpDUOwHd7Koomo94I +aSLthgR2tvzt9Qs9Abmt7QnOaWsi/ci8YYCSRHoLEcjDgQIKWHBvxZaap1TwrfCi +xjIeVeH5L4XUZFdQPlA8P8PGn/DWi2HUR4t6tkfFeeViDGkd+gdrhel5O8/HX/ty ++aPvjJVt1T/jiANbe43VXzBuQj+mirD0EwN893/380GxM/cbVudZAdVtr5Y8ItZA +4AOT7zX7bu3vaTvv0IqLeIcjL6yIKtfINUELKi03gIyikt2KBsiwK9QoEaId3LrA +YKTV9Tc6am4Yv1Y1gmngfInGr9lrBG+sMsMdrFoj1RPjnZTM9BoRAw+ip7SXxA56 +7UhVMHL9Cvc16ijY8y+4CsH7ghh+PoDng0Y5f/5h1cT0kjF046KX21NkYRcxzkk6 +J72DvzyGNbrLRUaJ1VyUuUEThEUyl4tFN/vFvApTYoFsvBoCYXZ4KbExJRUNwm4Y +EtdTlCnXk9OA69PyO2PzNxpC/f3uGvSgHVaoZkGxRBW9Z/ERo6gdLOzjxjlKUopn +bO7tvhP+mNMOqNZHwE9f/ts5CzkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDEWpx8qumTbZ2VK +uQTtymmoGayIMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAN+t8OfUVCFqGxBc367kuG9rklOcr2VqNUqKb5ITS4eQK +gSswWJwKmpgKPERCtM0hGRvjCafFAMVMZ9jdC/f9X/CsqBZlXUbRq8++AvKKrafR +RdaXf8hT6dZSEkfZa/oPAT+2RvWrEfK4EQeCEpgJ2trBVjQrVFkFexlNgU9mLhaE +zT9Y0uLSDOM//ZpAvTJHxh8ZmxBAp8n6E0Sk7RRyEJ3XkYj0LcLVOzeXp7otJNrb +2wLFXX2qddhzi3CoWOLicMIkruOQgDJ9BkzJtfmwIgzkzd8A4eOv0vCexTYEmZXG +fuwZ7ZaDkTAebQkwg06yj7/pt0L1/Bjvlafi9ul5QmQ/M+nQWqk6kHXcr0EGGo2+ +7D9VPZSq9irmLIV1ChHW+Mfmy+00zAKTM0PGwpr3WB/6BGU5cS7YAE3uaec7Sb1V +PLadqVqhnLb7+9ypXUHj8GceF3CI3u50eowNOPBcHWtcczP90+fVT9z1TnFWhxx/ +EMN1Z1yBtTchHnU8hYVhlYWTXAy1F8bJ6dnvMj0tAMyryQGgcUAeupi9Ad85ukn+ +CXWNiQHwqCG71rV+NNbtPHt3pAbAgvP4Oq/yeD7yuLyqfdKhKLosK++XTxDShKV7 +4weSG6qaT9DP3dLOj432TIMq+0RwszOaJ9XHZR+n/C0DEVM8qd7q6B13WAfpe2I= +-----END CERTIFICATE----- + + +NCU IFX KEYID DF5D6DAB5102DF18A1F77113F4983C62CBAF7385 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAfxPJS7w4ZicegAAAAAB/DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzA0MloXDTI1MDIwNjIxMzA0MlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1ERjVENkRBQjUxMDJERjE4QTFGNzcxMTNGNDk4M0M2MkNCQUY3 +Mzg1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAs4arT94EUeF2eNqC +RoDx0Md0qYA8j4zcsstr6l7Qo8BS0ElOJ1q6saL3aaTiMIl4N3Z6gbY+JZbMRSe4 +MkgwzCXbLrFiKDq6vE1+ZIoiDZ9HJefiukhn7dt9JDBupPR8+ccbZPaCdoFjHlhu +9m+CGV4qEz1fAGwOBcYDmlmerKJIHpAPFG6jyVl50EKgoCaG9G5UTvtTZZWUCOyH +ssIjjG7cdU/biveW0BboF7BfZ0TcuDDpGrqaoaH3GaoXRsAzWEKon4s9r6dZp/48 +4+KVZeEINcu3kXQtvIYPkyqkATHiALBycXKnZYZjhI1lKjG+e8BwyQNnnIVh3u+O +8kD6UgMe5k4e4Yl72D6rFEh6Gq/UbJXas8pC0jfCApMvMwdUXvhAhZYK/Jdj8K1P +IUiNLMROnEul/0FRxrIbvOppB6LiS/ohoLI6/5nKsbzOVIc87zxqn6rORVYmTe1k +Qs0Itbznk02+IpAdYu6xQXgSdvYPF8MuHilln6RkkZ5LkWbF9f29Pttgl2gtFE5j +b7R+GfUCQbB5pnFb/VodXWJZ8N8muOeiQCydEz0up9OtyoVBsdKgTPpaR0OS7o/I +Ez1Vnfq7sspu41VjBLmGszgHXUoiVuyyHq3uSBu39WIvXQ6T/E5M/k6J7G76NsiA +M//Rng/aEl9GohYAhU/LnmY+pUECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFISdnlQAnS+85Uw0 +lx4s2SsoNZ4YMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAb0ddhgAQXyRKmPy57iJgHL94NLYsrogT3q7KOCgtZ/tP +hnO1owNHfrzz8+J6fnipMh9hfcPylgIDDOVB2SEhoxPtoR2tjJDAjz4RVVtW3mLL +PogzLareTe6EWZ0hREY5/WFVTyh0e2gR+FMeUjnJ5p9ifY2+RUqxcv67iAVV5Kw4 +UXPEab9EAlFV6G7At8Y3LJMfBpfPANTSHTA/aPbflzPnPLbsDxDK8p/as8BPOIIG +7snzlYbd3bbUcPhMAuJD2Du9Q5RthFLTAG3T1qjvgXEANTB/d7rl/6MRWCc0bGv4 +AHPIHdKyn43lR/omnGIvOJDJs2Riu85iyWYtFsSg+oqBcTxSfooYOoa7jsI50dQO +hODYwIlrL92MdrywFJfycLLshWUAhZExPDpD3EC5FTPnkoNRO9Mqauk6BnsEQIUH +Bz6q+qCikkfaPjytvzEOZRnsuSU3GsgHjAEjl4dhiw1Ax3ontSsCBCRymoBAfDu4 +YLwkRUKuVLRBOSfMYLrFmHthTGdRMwVoqJirITtWM3Eua8XiM6AB38husvLgq7l5 +tQig8QbCHHTlNsFAgoMx9GXnqqesWFgSEGByio6GbQGaAvRb2tiTxjNyH2Juwa7r +SzYrZRSbGbG3O0ZxHtfU9h5vB4e5gWo/PUBBIuHVVrt3XMma/Xj0YY82Uir62eQ= +-----END CERTIFICATE----- + + +NCU IFX KEYID E9061797E8E5E8C68F935EE5E976BC8FA17D7523 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAASwwtCT/DnFVSwAAAAABLDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQwN1oXDTI5MTIzMTE4MjQwN1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1FOTA2MTc5N0U4RTVFOEM2OEY5MzVFRTVFOTc2QkM4RkExN0Q3 +NTIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8HBg41Omuwz7NphI +x2fE5uX77xY0YsHZAUhYI49V6bwDb7GFeO4JnAfn7wgrg4TkdAhVFRsvhpCuG68P +vizqe6YTNsqbk7D5kEqt21s4BMyV2g+lZgr+H7WMFgGtfNtRQBUjKrFozTRRDRqT +mBc4HRjDXd6+WFK8XGzLr20fYl6lGviNj58g4DGneePgCggn/zEmXRYB9yl/Hhjx +Q1nMElw/CjAeSIiEhCgHB8DZDvSKfgZHFWSttchdPUvuRz7GKsis9C+vJsyKL3xr +hTB5j6j6ulePyq88zT3tkn0j29jt7wMH8qJK+8n0SX0vlBxygTP1vkn/3rMcl0WD +HADFLQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQULB312pe1s+xuXOtHYrSC3nCa8MYwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBiSA07 +0TayJ9L3ltLywSolmFfhEtI4sBzeiOu6c5MxZyLQ+uC50gKVgWrYCBFJ0tdqSTFo +dF5YlPA+U8jRwysLANC3URiU1eH6Jir/PRI+SzYu1MikBd/kZLsaH4ySMaUFqNGM +gKJlygBx8rGzI1OwzijVCmXYf9ZeYnBkY4BHss9ZG5KCxJtbfwV0IhY9bnF38QS3 +SnnnKaCBtrHk0xUxI6su+0r+l63uA7G9EdMrchDg2944nFE2whAYahXvBW/viCUG +ngWUR5ka/UVrP1UP/smawRtd1GXQyO9hSZJlP6uGGGLZPisbrwWkZ9cqV9vsQsks +aaYAC40ulZY/Q6tfGaEiE9lhRMxyaPI0qaMsNJVQraX/5hVrZmjH8YR+aI2iQDbs +xnT07Dp/apXclYU5N9zi3YJNaqrEjVidrU1OlAi08vU8zN5+quTTXZ6uN1tQ9Dbl +CczRhTSR6FZMB/zVNZQ4wy7My+PklS1nliWmEpt8Nfyq2FVDvzrQvCEzos9lCLmO +xAYwSzeUYWP2ulTwt7sT1G1l8aCYlKuQqIuTH4qCxiEFhKtRdPqwGcN9Bdm9hr8g +fKEhEmRmTsCMkvL2kbWyMr3+f3tFtzz8O3axtiyagBu4BuzB2CclwowsMtq/jX1E +7aHg82O4Ix1N+epn95tEG8Orherke4E3fD/lrw== +-----END CERTIFICATE----- + + +NCU IFX KEYID EFFEEC5E01610082C0E311CBD07A3204408B32B8 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAk0XwRlfK6KBtgAAAAACTTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkzMVoXDTI1MDMyMTIwMjkzMVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1FRkZFRUM1RTAxNjEwMDgyQzBFMzExQ0JEMDdBMzIwNDQwOEIz +MkI4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAot3v+77+w18G1Jyg +mHDJ2n9g1gndkPUi44uL3mvDctcPrWiFgaxR7m7Cet+LfTqDqUyg4oKLotR0nDk2 +GJEPTmB8qwyvy+RusQ7IsXR50zIJxvHqPxBfZE8UCarhjgpdnpm6cYEFcUDC7Ye5 +5LK4yo5913t9QASwc0pSfPTHrBqlVdZ2L6ZX4+DdXpOwDnZJgPIcVyOGA8jzEgNj +JduRO+Oii6XEQ6CFxgGg6U+oMwzJs25qJgS41x7Z52tY2gPXZgkWwDZfgrKO2qLJ +qn+oVr9t8ANCFEIPB3UBJzb0qgzz1C6KaX6tCbp5TvK+0dBftx/GH4V/gECxOiQD +OE0lfzwCY1W3OtDXL7qQmIWXQvfIUaZFjaHacOv6rpRX6LaF0EMaijjF3ubaSGbt +AAHXRXLt55xZVc/QQ9cbDxRac501UmVQ/5g9Eh1MpsUJoDlqrAIVKdgz1AIsxt86 +FcCLJ1IrlOl/++YDvSbYQ/Win1GmKtWHeAVoOCyR5rVv/bL+2ml8Fvgv760ewfDy +pni70CDj4oTsi2nCZANxZUtTcf731zazGNKz/fimF6eLfQA73P68K2tsvjdQhF2i +uOlXhXbEeXVw4IjSN66WhoQZ0E9JUUVTq//nxkDZzL0WKELdyMHtK9KqcM3KAmfJ +aHn9Ycdx6v6OkwQNf0k3vAIfTq0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMZtF7SgJCTC/NqH +Nq0BiDHPLg9pMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEADa7g7U/sOuvAu8tSvM1dw5ImsVMDOAE3v1VY1hIh8b9P +xDMZAiTskt3UicYjvAqUX0Orl6jV0KrD5KeRo7inBX6InvFSLBP6/m3iVJIfmrT/ +rOx79rDldUKoj8MPaZxrRoYdzNddpyjfqQspWLM0z1nNkDtgkEZPrBX8XP0GG8RS +TOIkkR+PiJy1/jbasEkgXLuNY/wQcVMwewHteJF5l+YwkgOxF1EewzCNIXVH1VBF +hMcZVc+yK0nshtMnf5Qa6ingZHoOcF0xa0iArgxdAmU9IdzvK57i/xsHteNlBzcf +cuJZuTB5M6e5vL/IU7QsxAvRiYFQepRgrHy9trKuGQxg7DReuv7Xx+wDPCgHBVRM +ynPdYVT4i51fy8zVDQ1n4EpJvKu/jShArB5HusSM3m/5foLkNcBN/xiMU/wO/4Kc +emmpjuxIjB5GZNpMiQfc+LaJQCLQycqI/TvmhmtUn3BBg3cGfsDT+qUH45CYyh8Y +hx2O+Hqw9TjVDb/R1OWDS/b6hLXD14MKDRe74DYlBXSobtpDSSnPeQXJXrHasYjF +NbRo2IiKyfEkGAu32marTIv1g/GwtassSscQexl4/Sl7bw/7mdkAPTXLUhqdX6UG +qBWIgCCnZNM1Qf6Nb083rKmTb52ykIa4d/X0oSaV+cXWwatJH81IjxpdmNPMUsk= +-----END CERTIFICATE----- + + +NCU IFX KEYID F53E4F475E0D3C6E2B3E56E3AE8ABB953122617F 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAchHtZAjKGBA4QAAAAAByDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkxN1oXDTI1MDEzMDE5MDkxN1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1GNTNFNEY0NzVFMEQzQzZFMkIzRTU2RTNBRThBQkI5NTMxMjI2 +MTdGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuf5gkglMAhVmtGRR +2yS0vTZ7eZwwBHsHYel9RBgPJudFqQCZ4PovJgd/6B0SuRiZ4+RYjfSO3KJts9vQ +SpwJ6OrmnvGAdRpuhEBtp2l8gQROp/9cZLKfd23KveyxXgbNkHuj7ARfJU4cwJu/ +ABnUQpRN45v1+bfOE4hxPeXCaecJtXggIEWycauaRUJ2vRPCLkXgSy+x0bVAvzSH +k5Abn8o9cXKudEQixhBO/WzffPrtERfUSXN5uSD0/TgW+qcnAZKr+6CdIsQvz8+H +uSS00SyvAanxGscWFjcOoZcbqoC7jw1upbfFjCMmDnYa5YcZoQTiBxdPmonnwqCS +pc48QWsPTwkEMPZjxRvwWh+pQPUJD/WdsY9Gz8H7puFr2zxjoXm74tpAPWateaU2 +NCga5VuhVSvAncj1rJWPxFvzPKJ6Y6Rk1hW+BaY4DoXuWaEcgwXyibYX+6cImV6r +hT+9V1bdcIzPOH1MmTlLo/Acrfpxg9a+AORq4JNG4qnCKB+8u+NXNyRt8ZmMCaz5 +Zl6laWssWhLwfVSNKPGe1GTrPYJ2c/o0USlkMsEY9CrezIT7j2ORUvsrLnlK4OT0 +yG/as2thqNgSWOv+HOvG9hA81u0F9BU9+U3gz49OYUVRbpCc4ZhvA4QR7WUlU4vn +BevD8RdBTGIkgnNrpWdeqydcI2kCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKgCEFPeT2tmx2lA +ZxNyDZ94NdRVMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAMMRVaOjn+azoBWVBj2zp90ErOHr6USboYlcJFWXrgeY+ +sMOZzyUMqGgA8Kq4iRlSWo9VEv2i9ReslFhgwsU9nd0OtGwgain4jX21kEHs5AUJ +t4JE6tq/JrpiWvR9gvrALXrAyHTmzRSmmPtRetXj7v0ZxVkKNlxknbOrt2DyFoNH +J/DBEQIVWOBTy9hEX3vkt+3FCPDaMorJr/lE85DoVN2B8UFMIa6bxN3EwCiVOUMd ++P17IgaiOqh4meoEbHi0kstCN/Q/+CB9VRZo1WdKhWCevwIe6UbEKTvkE6U6IfTt +/FJo7IWNCR2EFBnsMC5f9zMot1+M/MkYKLTuG75gq1uHjDWY+0H3WufHHdoUmfsA +kVNTZIP6pr5nJC+A0y+sODC+7t5DwGgXaQ9UWKBiUBdOcdk7eqTEIa1T58TgX+ak +tU3SyWw1wh/W8BnF91bg9EsA/z1DpcO4fJx9aZcLgwnM52JOb+x6p59h+LcONu/Y +79CGmfFwx4rjzu03s2Dbmfac6bCezqXF4vU72B4aTpt++wD9qzJ/qpFmavOPHeL0 +W1NgywaLnVdR5QosFyziv1cEA6xNKetyHZyOONfb5lAG4sVntcDxgRTOaUfpv84R +EMjs6iqA+pRacq66Tl8O6s8Z1Yp0zJi+4VP0n9HKYpTnxBY4zC5FTsXZ0e7eyG0= +-----END CERTIFICATE----- + + +NCU IFX KEYID F65C289B3D93B78F978AC8D017B7947DA93637A5 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAk5iPpINfFok4QAAAAACTjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkzMVoXDTI1MDMyMTIwMjkzMVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1GNjVDMjg5QjNEOTNCNzhGOTc4QUM4RDAxN0I3OTQ3REE5MzYz +N0E1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0HC5Y5ge00mASJHL +ODn1eREQru5Tqa6E34hUZ1f1QAbjDtsFioqzzgbpHWWVbil+fv2fP4EJgs0FgkYJ +Z5uTJl0QRObWAbDNkwciZNsXj0XwhF8/676o3lgWU0NeSNsq7PEjzlku+7aWZpF/ +wBz5Isna8zNERAeW+SuYUG1MZyMmmnO9UcpAgvaucESlRMnUR+6Zrg5JoMzAwAci +JUNJrUbxWlWUOpCTuSJoRVQD+nuJSQxQYRt/f4SAITvuc5TB1QgWphxkIBOW+2xA +xqbdVNcrXENbH6grWkCyYCN0rAKJw6HL0TIgTJ9XB0fqSULddw4dCEsn9FXwc4XF +ZL5jPirq7Z5W4tYQLe6KtkOC00gq53bpVSGGPz0z9GsDln0ElqeIO8Ivc40ZNhim +P6rcGwvgEV6eQIRcTi1fRxp1jwcQhpFOaq8bLcPODyRpYbffRU6f5gwxHgyCNclR +1tA9rKXNZdJw7NFqBuwJ2zI3lv6G3HnijMouZuTTb+ODkTRP+pVPKEmubnZldScH +gzCFcVt5NBKH4e3l8oVJqBB3Qhs2IP+dFLPdgqG4uBYhjnCw7W1QxI8Q2Wn7jg57 +pPoqTkty+hIvrrJXo2lEjCMm1b7ar0mxaQdhbBCw1Ir8BbFyhfSh1BW7exaUkEtq +oGjDg5L29ds6XQcjyMKw0RttQlUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAeiwIjLvflqwN03 +jCfMpCTkyc0FMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAndmDv4auyYRGZR5Kqo0wK8hqORC7R4QSHtDEbTLGV+Fg +4Xd4x2AGO9lO1ENK5guXolq+fvibVlqgUzCXJmAU4JiMhVj6grC0H4/opU+YaQJ4 +u1P+QWVRDDI5AYk8A6529+hdjJEhe1URaNKGPlBn0xFwGQKud8pNw7OgEi/u/5Hy +P3an/3UFts/dnQwbv9Y2eedexgX98v2wh6k5CC4uIdKK1ZtLpGbL9e5p5K7YxTmT +hcxOSCZOF4ItIM7ngIs4MVI3GqmvW+i6jouPIZkxmamxMUN2mlyqQsmhKWocQ4z2 +rTrGX4pQdJ+bZE7S+kGcIfg3Sp8+o4bmeUo4KVlvukTKCXC/Fit8yyIEDJ2XqwEj +0E/3lHlshzZWWW9Dcmp0xBGnOQydm3d4PJQC636Zu95AI+f/9A1cFyOqiUntbpeo +5Djzl8els+nASrlAFgQpYi3hC8xirQhWxWg6IxlfbkUCxJu4v4VyMB55StwLETjh +Fo+Flh70+bKx15cuffrCuf5nk3lwdDS6y9aD2F019g5VwAAKbQhffyvdn2lXl0jU +I/LRY5+yMioFHzEzpceHOpyYBG3u+0p3C9cOC7j3dWFbVfgnv+0qe5dp5eRA+rGZ +8AfqgmR6kL/kVn2puNLACEqwNLpXd/E2W6Ios8SCA/z+lrUe9fLLGTRgWSVtbfY= +-----END CERTIFICATE----- + + +NCU IFX KeyId 2583CADE368F69C80F58D34A48B2DE653DFEAF98 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAA/xTsdFvw2KGQAAAAAADzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDgyNloXDTI5MTIxOTE4NDgyNlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC0yNTgzQ0FERTM2OEY2OUM4MEY1OEQzNEE0OEIyREU2NTNERkVB +Rjk4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkHcsO22QUP9WTZug +uqppRRn5cVKQ3bLMbkJMvJsHwmkPevU5CHpzGBXCCsTOwDV3uxNwNZW3uY372T3a +mjO+rpXNYteunhaImjPRa+vwFRIps3skoxmgVYyBbZ4qgvyGmzCHLAQoy5bJcdUn +utqsaCZagV/x6cBN4V0cY5rC4n0CjJVY0tnKxJdduhkMA8YUBF0+Np2LDX0Xq576 +8fnXmBoI5fVU5oxk0JdqOifTcGGEJfqmEPREIAUfb6+NGH8f1E+0ZmcQKNVHMbVo +UdhAxjSyU9VRKex2gas5wsoQPZt+/lEYI98gtNiUs8m443Qe570wRm8o2J/H5Dpo +oG0gNQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUI+9teAZw4UuRbM2taISutc6WW/4wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCcoW2l +UeRUUTZCf9lhwXYogiuWTW7ICD6SbdRQxbxAAxlvsJzuFbq0ejSLJYKrJKCRrdEV +k7t38HHiVzRnQJApCeUHAmcA+Jm9GTcbrtAiqnSE++Y8FT13XTQ4iSo4IZpFOpXA +y3JWT2ic7Tk1AFOBKy5xhk9I9fAu2/L3XkWZiH2qQiJyNnj0F/xIwucvzHgC3mXo +t1yga4qscjM2k7l86nNyDCxioF0QSYYzHXLcLzUtU/LjsJlG77ubvURhWtnNRTCB +t4TcZaqDFHwp/fCilOhk6tO7535LS8pv9FdN0VGY3lp2l5nrjkhbaS3I+TVc0ZUJ +AygBtsUkyRS7fLLnRT8MNu5pRqUO4S0M67owo+fMAB1OYt7z556sxZbz2lKHt8Ry +3GLngBGDBgm2/g4ONGt3h9DJOjmiXfvIt3oV0U3q/wlSYZabFcuUcIJttqn36YCk +8pt6hB8v0dMdGsZWTOdDv8h0VEyyYNqNlTnDtpmOZcoQ+u0LbNJQ4xxD28XNMmAc +Vwe2bChWHpym0Q/yHJ/9Hbj6HNlZW4EgNYGpbUeWECgbbJ5rwzi12itaiqPWs48F +GOwweVcPJwvRZAvmeHAvV9JIooFD8YUgYf1dvIIKiHWWjN4QgPdPYVimUnt9u6qZ +KFvFA8UAWwxCMsK7Wv16bpBWALTgWhL5L4UQsw== +-----END CERTIFICATE----- + + +NCU IFX KeyId 2583CADE368F69C80F58D34A48B2DE653DFEAF98 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAimSTVa3V3JiAgAAAAACKTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMzMFoXDTI1MDIxNDIxNDMzMFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0yNTgzQ0FERTM2OEY2OUM4MEY1OEQzNEE0OEIyREU2NTNERkVB +Rjk4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAw+Pdsh9/5Pv+zaOJ +mdD9B0irVA17ZwPQ1XKmLZeiu79iCqN5MLapEqIdPm5rTRBX85AxBY+MaiKv1VuH +RO9SgeIpVHrASKo0mv7LXRNfXRQVt8HTCkYVcZ9882Lhw2Q4cmmsmqDK1OBFx7Gy +u1SgBLX1LlOWNKvfk0DPOIhh/NbfBG8hIBOm8XEwyckTwtWwGYjxkH2Y5geE1yvv +6/6x/aa6oJ845204KvTyUQcKrpstYzW1QR+jHcqcsi7e4OrORFu1tUdAhLEe+ZDz +/dtW3ZM8Vn4/aVgo78OZIN0qSPm2KEbc0f0eEVyo++7UfsW+WcnvS2PCGSuSrl1b +9pNVCQ6lWCWYHLd/09HbgSiR65jTgS/M7Cogtt/bVheH68oltNnXIeO5k4eWGRMJ +UMaVSFK6GjXrxoDZooKx2G7QadYjhuDEQDJBrQOoeYIhieYQT2yR8FRhMTnaE+Lz +MD01xPHXO4YTyPRIDFBE4jdQo97ld+xAdR+XDHNADa3lwyExIJHMSVqzRxCGf6l1 +IjoYGViaVT11V42jnNlMH6KtFaBx6dhZq2raG3F/8IQnGh3qzKXfBsFIYaK8u5RY +XqgwJyFUwcON1Q131KonfeEei4rNrjQjRg7sIMVy68JKskh+ncPVEhSR3yk2weUL +w9i/wHMQPC75KE1LQgtDnPRm4gUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJ1674iOn+cSxt5v +LyirFWTXAm40MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEABbdaIzd3vGbZQrrfy4P6wte/OrilLWgD5yCuLnqnJ/7C +CuH+9/6kjg+SoQrLcw6Dgq4YIOCPnf6slHYJQ83yBx4waK8ZEcZSmCvUuj+HzeuO +Ddck18uUjkP91vfHVQ17tKntDAeYhJ/OXyYz9dWD5sx4q5yV8UFE1Zo5wgLNNgWH +NGjAhWVbczw6Z1HESWJemKgjnk237fgrGF3Jwilt4zniRlzZLIvD2XnX7nPMdWAy +Gz9WTWgnnufRKua0X49vZO2bKTKgbHpOt4zeRFMXU/gDSCmWE8Ty3km67bluHkeg +9+W6N/zuJfMENdRdUDVNGizhZ2zg1WprFUAvsQBTKl9NbqL9IRgHXfaBaSJWh/wa +kYKtXvskD1YzmUU16T8f/ymdhUFV1ab0OMaE0oPGa5QrfdSHqn2rVb2L21Wmn3C3 +Ykwn0NaniE2zzjhlJGXCEnmJ23LNKJYx8IVrkAkEC4jl1JWdpRMQy4HVVnyJuUow +7uLF2nuo4oMvBDx8vm98RvNiTTRnc+nl/FxXdPuc9izLMjkCBBz9l94HlBcRH4BB +zHXVpRYgxzpstoNPSjt+P9oE0eqmG9A7EsybXY4tjw2maQxJF2DUmcGkYIWxZBFn +E1fv2VIxEBUapJ9cGBc92zFqI0rUQxAEd1z9lnC4STWElKdo/xhpROXWAuDLZCM= +-----END CERTIFICATE----- + + +NCU IFX KeyId 32C6E576663FEE80D64CDD7B18E5603863B3BC8A 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAfR0YGdIcMwmcwAAAAAB9DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAzNVoXDTI1MDIwNjIxMzAzNVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0zMkM2RTU3NjY2M0ZFRTgwRDY0Q0REN0IxOEU1NjAzODYzQjNC +QzhBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmTBHyELrpLEvbNy +SyyxKvSn8JroiF7Sbkys+8Ho6iBvzZpo2YeuFZ5C7qVhOoh0OI1omA6L2alz4ZdE +OjEP/cv8vzNZIJjwiLnT5umigIEGK7QvA2QpyNEHZ1eiMkj91dE3VXfVO7UWWla6 +/qzjc4nhQzRyNiAVfpf61Dt42sB92j9c9vu9449XNLVhGw8mq6uGp3osbqfAxIss +p+trkoMBDVBqrdBMiBpsP9DLxf6d/zDlCWTOYGVuvXLGbGmag1rovI8Ik1rWbL0n +N9O7ZsgjOboE7CVdyhYq3NgL+0GnYeOBZGS5a0HVrzHGfVjFy+px9idWb7hGFiQP +rnq4tczpKMTxLhJw/b+84sPCrNjwgy2UkgAQkSW3unAHe6GZAtYtousdeaa45UrV +4UM4/2eaune/3cPbmu7O31iKSGwrNzOUr0hqtg7azXFf8Uw5wd3aJLBogkT2d2Xu +9NbRdA09y1emVff1NJe7xKI6y9CapMr9N17OsUJ971CweS9CUrcEnvI4VDMFixnn +3rt5SmJ/S6pQWxnAs/+49eklG8L44dWBSZ0uc2qcI00IqNv20s9XpXrr9hSJbQQP +FTPztEqjdHFSsm6MoCH3Msli6/FDpteZIT65EZ29TkfzmnvgSuTbyhgZGficpzo6 +I5owVBo/o2yIoeoEAykwymVB3TsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHnwHV+kUDrHXj9C +pbVSh6uBq+pHMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAMGl7OSBvKemq/ZZOspocQECRIA64HELmrgKC1U2rsCFR +atVeeahgaAast81OUDJmhpCKeVILi5/I0wXfr5M0rSZE8rywDCsYc5vNTtPik7xI +ts+oKPrVVV8cyOE6V2G6VuPHotnQ3j+c+kqxpC1U7mDw75ySziVpSXEge54Jkewp +n++Kq+wbBqoWEpq0SGYJAHNUlv69jkkVTWmH4CAVyb/GeaRLOwar+fXXOgTD7Ulr +TP7/S5ezJ1y9/4B2FYTsrxm7BwqKv/3092OhRtb+DzWXIBMgSSrFHWtBgR02IC2p +9GTfjCe+XlPKcyW3uVBWfWp3r+7iB6RFvo1Ye//KutrWwSalhtR6iuzVSZAa36B2 +AxTdHDLkc29+vgY7FOlTGjSV7UFlCMXJz9nn23kce6DCrxkCgSkWj6/LupnDZKu9 +jfRBKeRl2C728IJjoE3m9CyzMstE1aDxNHZAEpVRNIik4pKE/UzlYCDTrfoDOEc0 +ctujbzS40qDrz+SxxA11ulIPUha6aoDsyTPEJzyoQDICPgn6uIbvy8L7aK8DVyDh +BYrpGp++8LERDk998mndP9ilMezbO529EgnlFQfplVjaPZH8nNWswezTSj0u0bFt +u7OWNx0MqzwtqdQU3FqtizVNt1F47WHwuI3y0thqFCM316WmCNSIE50fsGJWaUo= +-----END CERTIFICATE----- + + +NCU IFX KeyId 3893cdbdd873c4233315e1b13ba96a0d23cc10c7 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAABKybt6sVbTB3gAAAAAAEjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDg0NFoXDTI5MTIxOTE4NDg0NFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC0zODkzY2RiZGQ4NzNjNDIzMzMxNWUxYjEzYmE5NmEwZDIzY2Mx +MGM3MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2sCwYI4jrU//qGQw +vfypSifHlzMU7DH2CbnLuWxiUlifulNHTINeC/K0Rt9VvMWsdpyzSFsCVuXj/YhE +dWJME/w4WvSsnPQ67TN06eiQYXPaOvfpGMwDrKAyVMQIKSA6blFPLFgOIuuMLBt5 +DlHw5CL8ZZtm9fLf4xfWgxeDkYMwcxgo91hqdLlW3PHuCWSQVEDjPEssTS2XaTHr +uHqUEYmBvzCo7gQiRsfUJVHoJe6gTjvAmB1Wg520nxpdEwQsNznLXW1a6sM2/vUQ +wQ9nvAqsTXXmiKTO4oDRcTrmcVb6im5HU6t6phMmqjLJtJTm0wiLEuX5QDaLDawC +JGokfwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUQU5gpjg5bBlPx/TCpWEQ+lq22fgwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBQEBE0 +EkmDybn9pa+121YALG1AFQ6mOOAcoQqfyKxKF45Y+Biq9PCndAQfguPF/2/uaRD9 +2o6G0sAVCgS1oTO6MaaeYbAHt9f2UoTEhQr6Y2Pd8pTidbwRp9Ry6mi/YMDHU3Vd +KvPESaQypEpfF8DXrfjBBdFN/3LwB7XEH9z+JPdkyBHhiJkftFYIx4QukpSOinp8 +TqA3cAsjZI5VdmZ7pLARmGjSrwDTlqT5BPGt2GTr3XePh3jmjH53il5pPZdzwWe1 +y4sDXmCIWPx1WRiZblw75Ei7bxG6Ju3FINrpSxjhZoJ7reojTbvkzTD8hP87Rb+v +2Hqz/D0emTV4f6UNL7AT5sFiTG+Hizo/3dVEHjLzv+03B6xFVekWYYPwkvrRBvMp +SzDUvtru5oEJ57AK31UrYTwmAQBYFn+5JX3wE4zKFotrRksfg+1/4dp7fXLwNBxA +/6nYF9YvEquMcWq+qIC+ioZfK+YHdzk20NeWYFIeSamLXAg8FbmndhZTzvne8jh7 +dAkxzSFdLjOqxvo4QRb8VlKQEAs/yYup/lxTioyGIE1c2QbqCPszQS2sbSPffqAG +S6dpHfEe6TKAAAIbIqng4kznxZ61mY9qfd9wtxB69adiUluXLXEpU4XPmolM5tuz +6AUxKVT7HfQX49p+3PTzKAeaDqfsKG/ffPheag== +-----END CERTIFICATE----- + + +NCU IFX KeyId 43325af5500406548930cda9a67dc78067b97801 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAABjRJA6P9eWDkwAAAAAAGDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDkxOFoXDTI5MTIxOTE4NDkxOFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC00MzMyNWFmNTUwMDQwNjU0ODkzMGNkYTlhNjdkYzc4MDY3Yjk3 +ODAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1Sl/b0nCPT9gkCnM +zLQ7F3rhs3D8Jx1eH6SgJ7ox2eKJQK1VYu2CI0QqeUm/rJoVLYnWoVmbY5jywRl1 +AliKg27Gl5fR6Too9Pr0jXycd6tRpb6e0aCONT6PHzZrmncu8iGQWyzPs2mBl0o+ +RWDti6WWvs0DJa88fy6IZ+9WFzRBX7/fvhmo8v4YeCZVRrMefD0KPwt6mycAH9fV +Okm/bYcAEbqp7t9xEW5bMbDuTqqRf0DyYAsgwC/DVkNj/kR4g1u/cqE2t2OgGPd3 +3nu2VMx9NutvABpCB645MjyN+UfdWffKSgJvlxggIZTaKuNXUSFyISgt5mddj3WG +8M09KQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUoR293aI1X9HXAx/ThC9tOKoxyPwwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCTxttT +BsmetJOxiy1sF9wB7hXj1qXwDhHCAdvDFAQxmat9QNrpZxKKjRwn8ZDROTfRCroX +Mue7wdF4yF9dkPAKMH59sEqtJbT+ZE/fxEs1GhPVkRVQ2JlrH50iyh9v9XQ7rVRM +3zI3HRjxD7moWuJkxKhx5/WN1rE9bX/SwinB8ntp7SI2JY0U9U+GhdyY7W6c/5cH +cqAWgcOPhvar62tnFoxXRd9GbH5tolMbVJdQTqJh9iNGsj9K4PbJAOt4I9A4yMVw +cewDkVBi6Ae068iGQyrHmMnAHkjchUU9o+I7CRk7tPiTWcIUPrZYQvu66hKcmUGV +RW2bEnzCEsY0jjCFl81NxKexAOvbz4vckbHBfrjO9JDV/6QtiA68zHrk53h3ro3U +MRgiXNuOuCqgn9dBNuR3Pl4YCzT2OCQPeAVvL+YhUC4mKrsFChoWW8AaHPq+P7Ti +tYqyt3mUv5JGFlUAlQHkBIFqQivQtQ+Thy6D8VUNB8tYLeK5gY2az54M49kKU5UN +li9uTTbhCipMnJQYGrrSdAQkFNRPs+oPVz6s4UfD8s/pz9H2OmU/G3e3OyoIKz5w +L22JJFSpSvy0R/hmpNoQadHFfjReJpte6UUNtsp46i3+lmqXuk5yfFkJec0FGJDb +QBu1xpXV6I36GuPf0p6ONUqsVFPsqNAmkqLIZA== +-----END CERTIFICATE----- + + +NCU IFX KeyId 4A769EB5D93C833A5500F1F281324EEF03FBEB3D +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAFs+ZhNWartvlwAAAAAAWzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDYxNjIwNTgwNVoXDTI5MTIzMTIwNTgwNVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC00QTc2OUVCNUQ5M0M4MzNBNTUwMEYxRjI4MTMyNEVFRjAzRkJF +QjNEMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0COSzgikrMWzQT3x +S7EwPhkp+bdROT3HkN7knCLkIEyDGu3owxPWZ1hBiRo05K/Iv5UaARWAiN525kWc +UWs0yM1IPYLTNJVEGMQGoZRKsweHFQB0q5V/BK1hD0u2xwaCblBNT5Zd/+Seq0xZ +npNsD4TsUPRxNST+xbHi4odxrUizSwllXexInKg445vdG6y2YW1PEvdwBMi0lLRP +wd1Yd7eYo0S+qSBrqTSGhBgCal4vM8RCe3CAcLxJZzq37MGrMkPW7HYt7laxKT9g +rLrWGye54/8ig4Maf1kvCYbvtWapZFIMcpNilCioNJqykqy6zkHo4bqd2RD8i8Ma +0O8dvQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUY6qiPN6id7QR/S7xIitGjOMA1kQwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA8jdxR +LnK8fBk5CLC/9cPMw2TjuoiJl57fHv+9xajcDFCI3ZXOBIhPu2S1VXFFJNsmRRBU +bE+Z+yeRJEk/X+yImY1rkb5fBUbF3QMkapuXI9zkYyu99LnMd+D1jzbJn5+DOPdr +uzZKCzciPcj9nOTTLNuvgMOeJB553hT5H30rgHhEad9nuvgPeUQQdNoA9MPjIE6R +j5IIYCO0jwFvok3njCCZdtj/I0i4KqCSukCPNLok3g95t4xOsaG+Eg3o1JKyOIas +PM1Ggb9aItbtzZ5v8X/4nwRHefGY9nfD5h8RxXYIuHVNQAi3E8q2u0m+Su/4vnBa +nRHQkOZCZWB2b6770YohDMYLDjPhEhnTeH5DpWtZdNwHhNZvoAfxfFNU+vxYejb3 +9AvTrheWdj5sWUPKc3YRaQ4e3PJIusOvUi17PDhc6OnNHYi0HU1g48vC4CI2Pw8x +sUaVU7pLlF6IP6nbw7WkVFXP6jSWMoChJsfMiyoiVe4wby25c+Oep9gdwqMyz9hE +zj/icVs/lquzqw7CvvuTbMcsz8A+0NKrXGjQDh0tSe5oeNlWR1IJBEw5FJxE37Nv +PBAW22lBVSKtPybXHcPZey/PgYja9Auw68e/yBum24sBMfnUfxLRAAtMb6FVZGUv +AMei/QCAzZPCrTdFfQpdy3jpBw+vudKm+FnuHA== +-----END CERTIFICATE----- + + +NCU IFX KeyId 4A769EB5D93C833A5500F1F281324EEF03FBEB3D 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAiOERLFHg721SAAAAAACIzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMyNVoXDTI1MDIxNDIxNDMyNVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC00QTc2OUVCNUQ5M0M4MzNBNTUwMEYxRjI4MTMyNEVFRjAzRkJF +QjNEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApbShaE2l7gbW2Qt6 +3DZVqZ3lRszJ0cp+YAgif1/SRe32EjLv0VJ7xlQxIbohdV7UlzF76y7jJNPKDIps +ImBWjacJ0NLxHNk5cJ+Uiv5t9IDFfpCMV/1ODmTlJE41/Keo8oXqqiVh1N9/FJ8B +YcPKoVujKGZIWpGjlyrVPSfsyW48cAS2RX6Zf9bpX0eLyTLYDcUFfv07+Bow6FPQ +Z/3jZkVbS+6NTY4LJCUrPYZTtLCDqsWPRMVPO4+ifJQYZUBNKaio8PekGaliIP2C +K2n8XMzza75kx4rxsEK2ZJJ/WmW8hO6IydUqCc9BCnUvxXAE5wlVFXGwLu78vqtK +OFpTLc1xwscfd1UkEOvj7Ok0ypGpnw9wHAZcR0E/FwhB7D2NMzFIeQ08n/63G8F5 +4gZ2X9at6GiL5Ithlsa0lIUQOj4w1Lv8aGfUtBYpudidPbLQSqI+aaiK6/SUXq6g +Oevwj1gecDCbJWOb4CEiiuFxWYOCoS03YNOf0Xcjmdtrk1JJ08Mi5fDdKq7yNN7n +3cAjhomyWINITzGSieX2GatXrJF7KDoXD7NFRoWjVqjVc8KbfIuD2d4lhgNLf7YQ +cqqsy4iLP0Y4RBQm0w80eIeEkXjnQsAvBAvLnX1/+gJfzmjUAqxLrpJFOMLJsUsv +jW+9mI2ohOpm4YXFTMseO9MAT2MCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHuym96qNtIYxqQg +Rprt3NEge01kMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAmuNNzRwL4JSicpQCyzbLPlqxUCoorxetD+1BMjmGmNE0 +yiWy4ylYJ4LbZVf+G+mydSEgP56hJi9AVc03Ef+ZWQezxwX3RVQUy0RfZ68/N+Vn +oGelkjC+ok3sTFg29sTLUZ5XIqovuKsgfs8K/xFGFTxwGs8BOhypmR32XuckqcGg +RsQMHi1D7fZn/WGyWzF12VZf2x05F7NIWu6o3UrQsKSeket1K5i3FOjYqDEUWYSZ +xbuZhiScmqZJEwO1++2vE8Z/PrVg2vHQarkKb8BEKB1U19kPA8TSLxwuIgX17j3H +4awqgNNhTh83GkCJqbfbPfYJRPwhYkb6L4XupB/kQ7tG5dGVGRtKuFyx9TwWQi9N +3Dld3n+vNDJv+pG4oAzoEYkRMoOf30MRcXoIF7AEvgbeyGEnHYCvuQaqk8jZ5RTh +QFzSh90r2IrqdB1XKg50aI/BPLk0g013/uvu2Ec8T7SBP9XavRNmVmSL3Eq2s92p +EvNcsKayDlnNDVMAebGwVCRW0FJzVWlSbE5IAhag5rO+/tisKL2f2Jm+nxQDtQvi +y0MI3rtOykhySL1cOmQAhjhyeZ8aheP+NX8wwsWwzHgdFc1Qb0/K1YCduzOvQXdh +vLvD5MQfr0xKV13r4Gp1CVoOIdt6fFka9cOvP01Q43+W1FJtszJyVNrnkuTad90= +-----END CERTIFICATE----- + + +NCU IFX KeyId 4c4b4d648908e45bfe5a10d36387a688aec1cf78 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAAO7cJBmW3TbggAAAAAAAzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDcxN1oXDTI5MTIxOTE4NDcxN1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC00YzRiNGQ2NDg5MDhlNDViZmU1YTEwZDM2Mzg3YTY4OGFlYzFj +Zjc4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvdhgAKbS9mrN7+yF +IU+Wqw8RlU+75L04zpIY2p6ASwRzo8oV3fUwxMooX6CKzADrCKypLRd+T7UyT4hg +KAtVS3hvzeaU1FZD4jm7/2CwevFtDq6VqjgmAffSuqs9ma5hCG0VZd3ngxrKvFaD +9s8t4a094dusCrdVyLuCKMMy3GWFSsg9913qSykJClgFsEBmtVCR1F5RvWzZpCMz +Ygq6gEshM5KzW9JEj5gcfE+0gkQzUNhvk9XM7/5qdOlg5fuCdFhvh6PcIn1Z8De1 +vzTN3PMYykxKNa3ZUSxL7FKZtBFycKnylHD+XKE8sbNoBm59/LqauQLFwuo7YfeU +R4MUQQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUjAVON+vj4wf+vsPQGv/AbhJfA2kwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBG2lUI +0H5ueR/eFXf2eYeS7K9gMbGjz+O3tDOrWCDLuk7GEOD2TaJv9Z0FeTRMjpMsg3Sn +JWa3oRb6xjeA7l6ojhNh9nio7EHZpiK6vECCvI4lDU9hjLdW8dMaO0FKOLyOPeYn +lI36RPtW03pEjGiQ6tcwF290c3QF5WdpzAMIqdL5RlIswg1XCdEHZ0XyfnYNOFZU +X7rXcEucmTzZi5GcWrt6bECV+EfOFKAs6eyI2uDy2bdpxHoGugwZyh49YmBi7g+t +rRfMwA+8j81EfAluC8upoju/Dms39mgaZYZjTAo8/HeCngoMvEuSUUS1XU9Nj/Jx +KXWZZwFmFEp2jRA1h+8d7XV7pWrq5aUt7u1UENhyDoiCSEa2S8e2IZzTfaxokywj +r7QVarYZPp6Ml8cYVPCLAGZLIOVFsUjLAUR0k2O6nbkSKUtH85YSsdpTA9142Kvr +SM3RNda9s+cOzUW+q55B/tK/WciBT7NJj3kfR7bxTi/hnA8qDNntrhPySVrL9e1i +waffTQLhgQeIZfP0IwnksKMOAPqTGnsRW1cOE3D7/2Rn4tKDHlJmiI3pLsy9QBMK +SytoEdHdxzBLIIbo5zXs5Fh6trszEWdqh4EWnbQOvtYCSyJTEYQ3VEL3guUqkZoD +4Jkcp2rIk7UORHYN47BqS+Z+GPMONt1D9MnPJw== +-----END CERTIFICATE----- + + +NCU IFX KeyId 65957CAE12EF1B1A875D951A9425B1BC1D2B3BD3 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAGEt23sn6nf7QwAAAAAAYTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDYxNjIwNTgwOVoXDTI5MTIzMTIwNTgwOVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC02NTk1N0NBRTEyRUYxQjFBODc1RDk1MUE5NDI1QjFCQzFEMkIz +QkQzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtMxcH88ZB9hblylC +4fnPFy4uSMYlVNRx8gTi51iiCxM5L/783xvgae9rdiGP8x0BDjBNHHm5/2m3yGoq +0qPv3mW4KsFuoZqFe9LSlmsXUlstCS9jqulm6mBACX5jmHHZdfZD+1/+3vlV4P7Z +xbLqygcIjqO/659oOXP2vvlZTi3eA8QSGMuowhSDKWkNDmy6o7ntBGZUThWW11rp +x2k2Qa0WpIu7kpn1oH6PG/EulygaL3L7vpLZtEoFzYiOq/8LksgaDhEpyvK8wAbG +mGWvkwq9PdTlnCSZP0MfLhdXNrRORENmKKzkQGDCxXAi3gLp6N0OsbBQRI8tBH3x +JTlGqwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQULGp/EUZJ0nsBzDQeFckAsErFjfMwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAdk9gc +Ou9GblaU8RqXTg4qyP8WqsSWh8tFKuL5vNX+M0UnwaNXVFuCQsx5HDH9cYYa9n/i +wKeT8Ke43shX4krqLHBjigtKOvUXzkYFxR9bFgr9UgZKRkVnDwyR4v9cGUhwJkeR +83dbKUymaQbJoi9iEZv6UkqwgYnQjGAo4pKmmvLy7B6+vYiEX89EcMyrtlpr5bYC +420/2KFnemq6QG1FJ00HBIqdCk5OOaPAiHANXPQ3V/hMkZr1LlYHgXtsUYiOetb0 +cDUP39TwJChkKv5HWbUtlQpbWb7uMKMySE6+8SujCXkmI3lsAviXC6U8vraNYSj3 +UzHuD6XCd5q5EUq3WgZzpytSwq6nXK1qxa5tElSkmDs+2HeCT1OYDm71kejFMf3x +suFRQa91oMLul8zFagZ2YxHn1GYI6mFjg8L3BEhPkyOsfRAAYM9GuWOfzdzdxHYQ +pXEUtvF7BOiTo+KsT7NyjRTh2LoMb6w1divNVCU2hV8dC97D9ms43GwbYqnvVSno +j2vWogH+85466dGCbsxBbj9NstrfYzl7U2TiqANslKCxqxXguZGN4sAlirYqgQx9 +ltdpSC8fvvs2XVYy9UfbHyb6QdmJ/zzlJ7FSaJ/VEePX0Y5rMyaY+efEGEU5wBB/ +e7UQ9IHxSZv68/t3W8XcLXafVTiPwSYlOzL9vQ== +-----END CERTIFICATE----- + + +NCU IFX KeyId 65957CAE12EF1B1A875D951A9425B1BC1D2B3BD3 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAitcE/GvRDoztQAAAAACKzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMzMVoXDTI1MDIxNDIxNDMzMVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC02NTk1N0NBRTEyRUYxQjFBODc1RDk1MUE5NDI1QjFCQzFEMkIz +QkQzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtBFuX51q/Cfknh7L +cAmutBM6M9SI0ZMdSDb3nC05Y8Ky4isGRC8SU5uiAB1LqQy4JtaQkEwZHG9H5d8O +XL6cOdy4Il4Qs5W5AZw8et5Im8KyQxFE1o6qVw1vmMrG1vH/hXp9t+wG5hl1UTac +nqZnqoZ2887gQ7VodIRACfTHSqLLsWx1SS11E5hle/MhCwnLIRBuipDAUnobH46a +PwSsnK3yx+Eio337nEgxPdO2MkG1kQnf7AifCUgITdGu1qgDw8Ixv6gGBEQQuxCY +nVYSb4jYfzy6M1Bdmad5/HFJbrkeC1EwzihTKqFsLioMSRz+sEYePAs6X1P/XOQR +YM3uMMN+QR6yGchXUQtvqeCdN+JJGwdGC5rE88qy2T8O105MipG4T6U9ZU6t7Mhi +l3Mu65oikYQOIO1/+tgzQ+FbeGsA3lgO3HgWCWzvkEZ+HemYoxXw0+E3Wts8RLFS +i9FvO/aht8XK+Cs6Iflx9uALrp/WE1Em5TUMkm4A6Ma3Pt3GNMCG/CWxYIsLooYT +8oVkoOg0N9oJKewMYz3B6yWY0jYLc5ABHBF2JUeCy0LZSC7EXwV8Ytdfyi9gs1PK +NqU7x8NRxpoGCEnGbNPUHGcEiUHv7Yv6mk4Him33Y94KrocdwXHX9TkO3dAHmOA3 +pFJV79+xgmsxAK8fdKZ6a0417ckCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDs33rLBzVmOz72g +tm1CmV0d3zHZMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAYfjMWysNLihFEF8fmD533eQrvUwaUG3AiHkFKKRWQuIf +r8TET0Vq+9TZmNUudbPygdKlKKuDKRlaHnY8xYqD0TH7jsolqD3TFSfZhbXizJNg +JXx1GWY5mJab3qPMEKJiLCEakkGaHczyHk/EXa9FcDCoSP24w9hyhHB6mBdg2Wjs +2CdR2ybnI/9NrNsAPVTNavdmiRuDw5R9nmJeHiCP5QvWVwWhz+dXzEOkSjQ8S/mT +j8sVZAEBUjQGT/KVto9hj05oMNv2DJiY2CcJNWAF+QS6WL3Q1iDvzzJRWnUcuUNc +jXUeiUZGO9Ljf4MHRS2tqLlgjJNu8JvRhDnasHEgYMIldqgkrbjihSvxAoOC0aDx +tAaB9QkkuJC38+jM4ivmmvAg7SVMrcxhMHlADLr7N02++0IKwl5bg85RcwUVztzr +6e2duj76XT1KtVuXsg6KafhRUXL4iyaZVkg53hdV8NiIdqxny+Cn3Iz0ky/hQOU8 +Yyf6PP+DXXevu0HTAv7TRnTmggkt68cqrQWlIhdcE6m0EsweoS38BkuZ1xXiy+tl +pAvoVIvmtsB0VDDSyLRuaevR8QlZSPZFy4/rI9/WacT4EfWQXa8TSej9+YamI0Zm +XrdUQJ6XYXoQDa2Tds0dQhJQ4XB6Zoctmm9bk+VeKHBq1xMckl6WSb5ZTRPHVw4= +-----END CERTIFICATE----- + + +NCU IFX KeyId 7026D09ED935DCDC44D84D7DA75CCF0ABC1FDE0A 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAfdKp/WcH+r42QAAAAAB9zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAzOFoXDTI1MDIwNjIxMzAzOFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC03MDI2RDA5RUQ5MzVEQ0RDNDREODREN0RBNzVDQ0YwQUJDMUZE +RTBBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1JGM15/ekXdzozhJ +1idiPmj8jYMuKheY2x/V0AbixeD3ZH3NdC4tnbGaqycNPKv9anOgV+F6CMPMiqa6 +pupFIF90ks9fTgXtk00leZ8LRpy2WW5uQQPLprJH8VZw1NQS5A/8XPYH3biCGJYb +AlP9bEJPmW92LUqk1rOy22ccqkhAMqRscksZn0iVts4eWv0oLev4xv1N6Uyr/th+ +IZaj33lL3DLXvrsvhUIylwV47sgVwRC1KK6r9P3/omRCh+oWq4k8XvUvJ0LyROtp +Pff9aMF1MD06dMkLIjlX/pOi16x6yEN+aqZlkFx//WBGokeIADaf75wTl1bj7IW5 +UFwQS9zwoHA/FjyIQ0RYJcQpQtO0tpBiIXlShzKjrbAEhkbaTs3rWMP2ILUyidJD +DO0cbFFWWBa9d+AjAVExlf5EYRB0YoDroUSnrH6EzmU6US9QYUQBoaBMHS197RKb +48ad4Bum48F1mQuSvRq02uaUr7loqr3h7Mu4Vk3aS6YwMWQVq0kD1A/9XIPOgCPf +CMnFe1/oIjuRFaxu2Sj9W0fXfBFicJCKoSAc5j65/Hil0VdSfoTbfg7R0Jy34Baf +OOhyE9im6ls5kPoh6BRD48VpGiF+ZViQd8nh5pK+HJZM3nD7nx2CyyseEY/O6F0j +VF5f9Gr41M58fjZ4WIEEKrt4wYUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAQULcqbIFTm/33L +DxPqf4jF00bvMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAAjbCKvToJSC5UBUIH0J/9kf7m5FOk1oHkDH7YHsp/3Pk +7gvpY44uKumVY1uNK/ko/IrkFfR/aV4LNVuV43gMUC1gpjzJn/sxcAK+YOCU+R4H +nww/eKljrh4KQ3vjbqRvAVcqAsIsW7QaCy24cKxqnomiWy/BmV3v0u8kwKYD0QBh +p5CWzOEhiVdObXl+0aXy8aOb94HSC1AxkU3CqdRB2ITMFoxcO6oWPT95cds/D1Uo +uvYWgtXahU9Ccra8c+iy4OZqNKotBAtUNa2d52sCxDQo8DDdtDRzWv60YmK3F8mL +wIKTMbMVT42nRKeA4AkYZiGboaf7M8U9MkJXGJRizra+TJ6agrSWyU2o/ZYgcKq9 +V8+x8rs1Rkwdu1A+VPA7UDGLGdFQloqqmCyC2Y56nqXyea2rv1rjCYo7BLDBXTo9 +fNF8oYnwfaDP5v+IPg1OqmZaJTDe6W3j5c2lZC4sXK7A3XW5yWY33JGyg3i5U9/r ++xI8MSqEfSQdWJxVqxVeueCtUqWbopTFsScgOu8MuNdGVy6DUQDglL7gCFeW4JZS +FG0G94kU2CmvCSo2gZAHj78X4FlM8Fr1GJHDQnMZvh49tFyI8Wv/xGJNSgBquql4 +WEgn9Hf3gBJirY3W4CMjTZXa58ZVKdIUBSIUDMq9b8Q3tVIijlYIcUYK559Dcwc= +-----END CERTIFICATE----- + + +NCU IFX KeyId 7568FF26F37D11268567B6864EC72A08C818891E +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAABUoAw1d/7kjYwAAAAAAFTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDkwMVoXDTI5MTIxOTE4NDkwMVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC03NTY4RkYyNkYzN0QxMTI2ODU2N0I2ODY0RUM3MkEwOEM4MTg4 +OTFFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxNwtpERAQhxlfasX +nRuRVaWdtLLMjIBhziCTzmW0nCybZrqkqxBBzo31t9OqYlANmo7r6wUYMXDteSFO +nZOaEOXtEtE9L1glxohpJ2DQjEUTrn/4fZQsoBKttYwWjoLrAI/yCl5GjBxyig/q +JGNLTDiYarX3PhREIXccrws+tBKhTB+KOXlSufDusk8+cBtVDW5XzNrBV/euwJwx +Mw+lkq62nynp8rvYaO4XnH6oPaZd6YEO7f7EU6AjEtUMfyYquHQjjQif7TKN0EeP +9faXp7f5jYVdFjYaZQz/8GB3lyrs0+1ogfV5wrjW9v+PaZnMMUYW5X6r1J5RcFze +TQKM6wIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUzRxe9GhIO84Y3yftIufJKwcpEFcwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAO8jgl +SWn4LQhRPgh7K5TzGgZhhkRxAJLUemWVd8ItI24rrhN7vWDEdelZbOKc5Guro9uK +fznJiXogRSGA5W1updTpHODvDX0M9Kg9Un0A9kSlXry+TGP7bRpEI2qOClBKgDcQ +f2ePum6ZWDMjo21ISV1NYtcIpSzNlUzAZzT55roHKEmsEoCiFbo5tcrLrRLyiRnx +483+h88YZU6FV3aVfTnkWRGwe3c/M6GvrMdk53jyAixf485ne3EhHVOTl5/JT+89 +lfk49SiS87KjTbxZIIksW9hKjzSutNd/eaRWYWW9M/FONwAfu6/Kyiw61NDoioeI +KSFt/MlaAQU0m8B/vWPz0m9/E1w+QEKE5F8A7/nU6p+EpIYaA+OxfsHkHZwRqTJM +psuuK8TSrOC0ae1P4WVLe7Tuis5fPSqD6fFM5lSalph2WbRZSNlxOzolPa9dctxG +iHJEOCoWBCrbwDdNEZoCMuKNUydgt/+zrgqBGjFiUL1RkZpwisTQWnRUSSWFGhw6 +vpVbH8ab28hXAurG2yA03BcI0XkOdRcmqn146v13jRfQQJ6iSwushQPs95Og28q4 +Qr4+ljnDiaNOubSRcuIZnVHcFpo+VmXOzoEbuhj8bPWcK46oWKjxBqxJvuYxGDsb +qDPd314rkEbKcVwZmuJ2HVKz5NXRpJUDFEQo2A== +-----END CERTIFICATE----- + + +NCU IFX KeyId 76FA7DF0C07733DC8CE24E8EFF196D27788668DA +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAVRUrDQQYItr9AAAAAABVDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDcyNTIwNDU1NVoXDTI5MTIzMTIwNDU1NVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC03NkZBN0RGMEMwNzczM0RDOENFMjRFOEVGRjE5NkQyNzc4ODY2 +OERBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzaK7q2UfYFM7lv2H +xhzOD7/aXf3QNrO5b3mFKRgfeYuOCOQo21jgCsQiQnMdSA1yo9zb07Dba8Ltvwcq +OimgXSfwfFkv3ZazTHca0KFZ5LYMLzDBhAPBAmNglhPy1sQ7PK1ilNgPyJkZ0U6l +nJxJgeeEx0x6klTLzIybrYJhFaunbyFZ3NPGVyCnpbg/SROjjq8hqOMH/iKLODrA +/Qw10T4kHxzKNNy2TCObwihT83i014KaOJUAO/NYjuBE1snibRhiVc+Z1YTGRwQH +trl6CB+e8JhvU1FBWKSPZBdgnctz6QYoeXV7JT/c9dY+B04PoIvbfZGzpn84cd/j +pEDmcwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU1fONquTrj3/nfTVJFaz5dIZwPE0wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAk4EU1 +B/cv15H0j2/j+1VSveA2yhM6nMiEZR+0pMyQwlvfPveHUUvs71RfVa0T8FC0w15Y +OnKuS35L+NMeLJ7yteAJkUU+sDwaW53PvynTFyTjGE1JMVn5MnmUDvWuIzAaTpij +Bj6ZyqSrvFXvdObilu8gSmxKa1F9VgY7pgG9MrAy4Vp1kIQ+YPAqzHJph4Y02M0b +K0PbZCVeO7JIJ0i2V0vwt3cTpu19c/xBwFIuDTBWTQ96dz1tcgpw1R5w6zXYImpv +xIosUJEBtM610XR9UCLWOEUp5ywaxxhmzUbpTQmkJKb2+GNp3AKPkLyxlHWjHcxx +4Xwp/t4eG72Td6vxuYrx1AyMA40W0HULgVFniKQtWjXyiJPTcXloVMgJAgwsmtU3 +DSMQ00G4Ig4WKF1fRR5IXoT6+w5V0HkCu9BfrYqT2C3YDAdpS96NZg0kYSoTrTq+ +RptfsUEm9dLwmIhjEyKvatqfPU7t8ZxqI4Hxp6ISm/XPWm763Fj74A5qmDgnz7bD +undmph/IXSA0B3yj07HaaTF6w3Wx4BBlKbF3xCIV+K1wUzhJRXG5FZvFjuFYSWYb +knlSmAlcUHLh6QMAsHCisgs287e/2Kf2hAPrBl18ERiCy8JT2ygifRynYWu7Nswo +AGSKxCiAvwysM08MnGzSONV5HoYSO2/j9YrMPw== +-----END CERTIFICATE----- + + +NCU IFX KeyId 76FA7DF0C07733DC8CE24E8EFF196D27788668DA 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAcEFaX8RLnJVhAAAAAABwTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkxMVoXDTI1MDEzMDE5MDkxMVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC03NkZBN0RGMEMwNzczM0RDOENFMjRFOEVGRjE5NkQyNzc4ODY2 +OERBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2AnezVVus6ElFh35 +b+fAV937USpGCJ8msKU2AzL1v3FGHoXmy6ERQFNFy8nAOv7T404VwJEdLlovQ1Xe +N7f3LIAyhjCuE/p8QL2+TnaFwKkZdpARL+NYsnrA0ng1RrPwGoeljax6Sio/P+ya +Y4F3bFUaC/MYAuRQpv/HdK1fUsFAZpkggpOfSrZglgx3tmIa3gIFSfB7jtyRw0BW +rB1cFWSlKNKcyfG6FDor4KuZvVol423U1M/upNiM41PljK5HS+YuMdn7ZgPY2hgl +/xPVUJD3pPgN9o97YaiwbJ0yeWE79GeyKjc6VCkSIPlXTvAegV30HXG1RAnD40OZ ++NsebpaDwv1D7WsdwnkyqwFrSsBmtBndDPPU5e1kpzxymYA1eeFEkZRPVZi3/7D2 +AT06fYbMxb8gNkyA/YyeHadOYKpOqOV53x9oMvqnz1qJgujwcC8Figr2EvEhqN8V +yy5M8Za708aNigAXbxWcWAvOO/N6vmz3jc2A6+OrulJyCdZTNf25YIRvO1Uot9+V +MAXKnsE7cTPh1ZMsC/sQZJQ4L5BDKZqPr6qh2ncvXZj1rDfPFjEwtXXR0D4+QNYM +N+JObkFG1aLTlnBYPZZOkWgbNQxlMyYk3QeE3g/NUBUxoioSo4zq0336J4+mLcvZ +yU4AnI7tU8QzwooWg5r0rnlvUWECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFE3XTfS95GHBVgF +7xiZcmzMwVTSMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAjrU8R28/PdmKm4S+XPQKB2xg3oFgrcr0GdHsJeFDxH1D +pn2hs7FF0AbqkSL0SwK1fdmX8wH88LvAC37so9OoLwv4/fz7sAoKZzQRbsZlBXSP +f8ALN1xk1PVximZnwCOCLcd3p5LicqwOpwDsJo7hOj1n/10IocXgGQ62b89wR7/m +LyJ9rz4iLxPBDXL79VKjsDZpzdEgEYEeuKntT8Xjpzz2LcqDZ1+abcFAoP+Czn/e +oNsrjp+k0i+dacrhRAEoM5PvRze27jDDzUdv69i1ojY3JMfM0jivexPVhivRpmbV +8qhZnnOnwCVSSFDVxEFB2GI6GYkNmExGcZHMIMX9sWycWjwXgMxYYetQnu3mJU1B +5j1/cGslEsHzaeelfHRKvl4T29RrvFf+zZEgOjegY60g4UN86Gpvj/6NYAGym+1C +JsXMgpo3HPelD+1pIIY3DOzOxv2o+k7CrJam43kzCK7hoWZe2kwdQoYW5D3dLnQc +dTRShdNjOfOfRnfpecjasNNlaktcMeTjcTbMpkjiH10+N3HlHfPHZfI4v3ltQI+Z +hkfa/+TDtXZIwK+cYt3Daq20u4vZOJbOaKwpPJ2Xr1R8+SFhHTpQOS2giPl/IoYO +sOHMXaK4PFo/XcbeFhapE1tuGA+l37+/p621pHIIbC8C6a/Flptxf4a2bXaE6/U= +-----END CERTIFICATE----- + + +NCU IFX KeyId 78A409C457DE6926F6DF42C6114EB7E56A9B56E7 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAAkt3xPKTWp2iAAAAAAACTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDc1MloXDTI5MTIxOTE4NDc1MlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC03OEE0MDlDNDU3REU2OTI2RjZERjQyQzYxMTRFQjdFNTZBOUI1 +NkU3MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtlOVrc4ZONFwof4f +0fOd1enhLfiG3tErY4Y5DJOu8P+Ey2SWNS7FCv7ul3x5BDzAqteVMHXpEuGiSDZ6 +UngTT6pu/VcEoI+XejK9LH73CmpYPcvSDHDEUOtpbzMfkaFZbTlL/pOMkxezTpHh +lLLUWj51vYFx7mDtNscIJ5i1bzg4cLKNVNaF2yFq87VquHItJfAV/2ErYRaG7txS +a6xEPzbMIeP+5Xpfw+D8LV8uejSqJztIArxmlURRhk/AUWQiNpl4UwuiPon625Zb +TCrvtakq1Q+riktUpZENW9avAs1/HetxGtWC22eSU+CdUAZyaH1izYBZ0ixPNku9 +9b4JZwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUaq4mLbZKCkjBqeahYc6GWswJHyowHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBKZCCX +YacQaSPuG4mGsY490DRGs0h1CuBE8pgn/edWb/BAc7L8Q3AwhKUyb5ixH6dVF+6y +TKHXzo/4QWNCyrc1W4atHTJgcIi8MGSWP2eI+y68y82ZFrTprmXc/hMd1+OAkbIq +U7rqrKwLMbXU4BqxRPBHevvkKSEABeL5sMyniVp1onFINNXs9iAd9bCjmwrYQ5hW +k9d/TJ5r5p7/o2Jt9ePQGWmjk7za6SnkEghtBTV9IzriElOOauC0Chve3XAh7ZCJ +0998bYqDOURuH++CLYPxEsg89KuanUUZ1yYOhjQq/CUV5NknCejFLNzlLEgy91uw +hLUOk8Oa/6lEJA/qEPdXFfhPmZTMJxiH46WXxPZJk0L/uniElJmUqNS3uz1XaWUn +LLpZN6Hqq3xU3pYJAEucNihAVxWscH/Rd7GkB//7Si968FPFFhCXsZ9S0S8FiKf7 +k821wDvdpNLs+Qn0J7wUPiUDFxDeKyVGg+u4iyPsSJxAzJrychZQUkQ++dnDYQp6 +23E1zmtPyWEd3M7vonHWMvrp6wdm1yTrMKWimXFoLofwDRtS7bSc3aQm3WJgddlF +Xy+QV8u/OGLU7GfSVtdWE0mxSlmtOknE/yhDg1fJYyHmi6Hj99wWi3D6Bp/bklqc +tslhu44kwetWQPMKyLC2OMdnITqYbZhzC6uYQA== +-----END CERTIFICATE----- + + +NCU IFX KeyId 78A409C457DE6926F6DF42C6114EB7E56A9B56E7 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAic77JyLcyNGbAAAAAACJzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMyOFoXDTI1MDIxNDIxNDMyOFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC03OEE0MDlDNDU3REU2OTI2RjZERjQyQzYxMTRFQjdFNTZBOUI1 +NkU3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0Elw+arL5oUlDT11 +GifVBUIMBeo3EcBEtSjjJ5mIRsEt8U4CRu0UO/mfrayQ5ZIyzt8eEpoanksSYt35 +3bChuUtiJ/EmM5Em1MUZTx2yGOUbNmhgrLh3mPWgGg924UILZ9SgHKCN0NeYqFnT +cdzqiWySeYX5GSQlpoc6jQmA4PBpJv1JY/4sQxi7Xrb5J68osOmCflH/Gt0Hhnkn +YEI6YXv9y1/xMFcOCy3nYE53eCxtAFyBu1+9z07gyzwBRdbgMrVTpqK/zXovjNSN +Ew2shcUCmUFGwjRwdc/nI5gIcmHh/EdEdhDI1jMMDU9bfdI/G3iWFsO23ZAjmtlO +6GMSgzmRG9189alv1lKK/gqFZtqVy76edNZdo4lthTzjL0iNLVsV5gnxxwsVkV5w +ik3fGbT007+NVOg5E2zpSW09SktCo6D449w1nnepqKgzyyBIT5Zbft9f0P3ivLnt +XAQAjaqPALNj4q8Hkbdkf+xhHSSN62fJp+t24zXYuzg/kviglsh+hv1HZKXnrVtT +h3CTj8IN+IvVHrSNX4hCD+axIbrRiMSlnbcCbhQB2/hvziuFevEyR9BAW+RCOumA +t0yNE9e6yst/mhL/fHZsd49KLBLYc98dW7756M5ikQiVSieTAzD3boZDw+a3GbGY +5ZBr9P/LAJ4xkh1NSPAsoMf6RrkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFH37korFgKQufprF +sanJZOsWbSa4MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAJ+ZSDg1Jei3/hGFHj0JtVIR7a6Lc+MF13gyR6z1sI4HV +DReqbfF8QY8z/zY+26y/U4cCy7BqgYcOMQrB4s7rcx1TZyga946leUmbAwkdiP+T +HU/Z9AChLxfja31kXZ/iWdgP1IJxWbXPJN2lBU9ODnIGDfUY+eFwvvT0E2xKIYhI +3wb2xPEv24N3P+qOx7pf+wR1iFyXsKb3xUiO5AIZr11a3SX2UZqfZ//8J2FbH3+W +PKTIt+jD6kr+lein3EUnASRM36DDfjitbf+vIezijpCNXpNi3KtTCu1opEzCRI1C +ia18q58JuItJFZVd95RMQ6DJykH4Z/7u1HsS45s1r7GAFuKmqJqELXOtjmMqzm3I +6dY+4XdwExpQJX2I9QmioFfI8Jr6in29wzb5J0IA8ICKNUpDQwrfInO1Ga5zThqa +rPWUM6bWJmFG4yGjA0rfGf4Q+n5zpcQzCXn4asXOhOVnrokjOagkI/iidRhwXP+y +DeXCXyS8V5JRDHXH+0sZLzdMD7bdi09zzvaNtQ8wg9vYNmm9b+9jv2U84VPeUEQf +VtQlwCTXjHb0C7xWIR/ZcRPvsp9tSBGeEEd4JzBAs8RPTrc9huwV5lyV4CakwXvE +wnj8I+ErhBla8A5RLEataAxUivtcd7VWpz+H6WrXL6GBjo/46J62aDlkyMxgzgw= +-----END CERTIFICATE----- + + +NCU IFX KeyId 88b3c13f6105d104229f5ac0eb499564acd473bd +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAAxAyb9OgfbrVwAAAAAADDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDgwOVoXDTI5MTIxOTE4NDgwOVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC04OGIzYzEzZjYxMDVkMTA0MjI5ZjVhYzBlYjQ5OTU2NGFjZDQ3 +M2JkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAosj2IRXHXPaLa9ts +9GtPEkiQ1JCBHRVdaBIVwcWeoXak3i52Xd1JB+UnZY9Hyz99LYL0t4JEhngNA+6u +ViC0R0POUmX9eojsDYIuTqleKFXqr9yBAP/61s9txntpmWvEe44C2fGD8PncDWT9 +RjMSxzOlkWzVqLwvwkMC+bYnsztdTHcyrZ2CEBFirMtem788PQ/nuCGhmDPEPuWJ +l4t0yoCDA1MKz5FxyFHRKjctwmTMF+pJtKxz7OJGTAcGfVnlFP6sKCGL+e8x/sI3 +hkQyO8+/J7eM9DyFq+DbwKrKWnJl28gEOK3gnmhesWEpn8aMzUmKcIkwFAB1E8Uc +jytC4wIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUJdOcnFJS3tDjODxotIwPQK+EYPAwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAxJvCQ +vy93XE3kH/F+5V2hpoksHc8157bzZd+zR/bisG9ycxjxNaa0CempD+s3G4XPY7X6 +OUGNQZJKBEEK9NtZqrc2qqFMETg/a7UNljLWqXsV4Mdemk/Lfqy60vmEjY+cvm5o +/18mFcoeVgBgHPX/YXU3G/m95lJiU6RrfowESt2BO7GosIfW3wnH92gpnaSn5w/y +JaszI6ezx4JjhNPLHgGrh1okiR7SZtpReDhdOyErmy0t+AKP7sJ50VDVsdqCPhDx +lT3YJyJwNUNox0CQlqeo02xByN43NaWTnNJnYKsEJJDjQPXJvs54yM88EMySvj0U +cXENyVPGC5s8CEnVUzMi24n4xknufzVEyOak2ioy92IqRMS9JCYgzNc9K5Lr1IJI +2LLoR1Cj4/EVKN9yc0ehHriQ+siCbByzi24UoLgzoUar3kI1pHAVmPZ/Tm3h75uA +xMn3yXFjM1gU7rCG7Khq37mV5Q87L0ZUgnJ2kO9D0h7o4lmNtnr4acsMEQaxW0jf +cFwXx7lpW3asI9b2zWE4AUL3YweoiuoD7aGHpTI3sx1sWXCv6OBTct9r4qhhgYWa +isTsWRo1lxiA+aq2Ukq+1Z7vL+vq8fmjR+sLhwMIpfWJh3azs/6DqL7uOsGfz7Lh +RkWH7ye+mBL58fqQFlnvqSntg9bOz0T1Xf5T9w== +-----END CERTIFICATE----- + + +NCU IFX KeyId 8FFD47880E239A3A3A20DE13EDF101E882A9D21D +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAAb41ruv3asx7gAAAAAABjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDczNFoXDTI5MTIxOTE4NDczNFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC04RkZENDc4ODBFMjM5QTNBM0EyMERFMTNFREYxMDFFODgyQTlE +MjFEMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9+gyT4WaI0KLIEPd +Dg5fAxjIW03T/cPzVagRbK+W5VZxUR+YoFYyRC9s58FZbj39LULB1pyC3xaXsOpS +XQPN3AykkkbhsZFLQvxluAnOei7qY8QTEB5ZBPtzB/ouLfVt/HwAKA5SggJr1HvL +yhn0ausP1K6pg0aUiHG5ryPtpK07b7WlU3D32S5O/0u8fc4mdxGG4AINY5emCz4y +ggMZt/LqyWrkUwk6gFKWvZ7mK3NdXywCcx+n8k8aCYl8Mt9rrbdp0Gb3fYm0MOmB +cmsxdV/BTCvo12QP39VFtQikS4aW2CxLWLBgcPq9rCSYRFSJu37nnywY5uWjmHse +zGJKZwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUTSQynj9+Fc49oSqJCZhd1uDx//QwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBLLcU7 +sxy9DZC1GqQUnLx8Mr/wddbtC1HmdGjNxiL7zXHJHIZ6/9Ex0UemCH5QTNXqQG8J +cSIa9LZDSgtN476F3EfI2RaSgq2RRj6CP99liPGi75J0zItVsrwsqL3bfcjbYnsW +j3E+/xVVcR/7BddTboq9qnGS2PcCIJSqmhYRM3QLY4AC6ZftCA7VeFksdLO5Ko/5 +dGiQA8a5vV1TdQlus+z+zFT7nej0Nm/uraU4kTSYd9KM9l5c9rrVjBOP5DsnUZCL +pc9tHho3qCCbQYeSd0hazik1QsTtL9AlagmZ9maHQomN7/LEktrxUzPDKK9bwK4d +2Rtrt01lUsu5oCxDccsCFmyxkiwqdGYFJVJt45C4IjhtEq+3Q2uNaZ1f38exJTtk +jFd5OvcIe5CcSybahHZTqt8Z6G3174P6DsEJfnzfKSCyl4s+Xdu5CaYbI74KZULT +8dEpRPV6dj4UwFmQ/VegKBPpavPvLfC8lVq0opkKaYXMfrtCStwEJg3A+zsN3LJD +gC5R67hr+8m1NQKEMUXalQFNTx4vAN2TuT/jBPBFsBbMloUDGUCLAxzWjndL+rPR +36GDCozqFFASn8PScs+nnuDUc/flwVVRTtIdYgDc2u+YcFCfpQ48wr53mUvTOydq +SW4s/XTzEFqoRizYaQXbg8WrjhP8LkboVc0yUQ== +-----END CERTIFICATE----- + + +NCU IFX KeyId 8FFD47880E239A3A3A20DE13EDF101E882A9D21D 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAiQx/rOtBKdBRwAAAAACJDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMyNloXDTI1MDIxNDIxNDMyNlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC04RkZENDc4ODBFMjM5QTNBM0EyMERFMTNFREYxMDFFODgyQTlE +MjFEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtCi2tS004DHL2a06 +myt1jg/WVun8bb5IoWr/fBpgx80cqimAIC0SnBbCAPeKsZReev1bb1RA7dpT8UNr +W4ZmcHY/yIZJvBP9YmwNpRZU8XMZ1TNSFqdHmwuAB1hdJZWI+l5l8aT2F1Fx6oiu +/RRyrT7FItPtHQCXzTQegTp3HcEM2S4wlf/htqW6biY7gh/IKv+2LIMnPC42AvdJ +3YbHC24Tb8Ijkznt07EBa5j2X/yQ/bPEy2j46csbPvqRxAF1wyM+GGUnqmLfzo2m ++wKPgbc/FWzJLSt3y7gO/a9/67B6YfR4h0sh4Q3QyJ7k9EhTDWDt25dS6uqz+ssk +DusybcTLaa/29ymycCdEVDqBodkKs+yPnJhpqtMBhrMcjvkwUZxEZzC2Vh0aPP7O +7CY+tCvmb372KXU5HZbLoFkHShqiiajYmS8B892QcmiPYMW57ORpP4WpsrCDDlcy +0ojdzrm8Bt30XzwWRRHiz+rYU1oY4tOqmGzcNMYo7JuacDsychhP8pmGJZTaeaZr +fC1L+4/VmgaNtFCZYWSJxyB8th1GkxTb6gv1ykZpnVY1Xyg+DYDRAhHZgEURCetu +LVoHCHO/q4FLTBZCx1StkbQ0U2G1OR2Y1skIxMx/JVYShVPZYDRaAeIrZ+aBST+L +HD2QWzvBXYStPBckPh7/4kPW+PUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEQKRXDT2wuYLeWj +8VVsfnhP82+/MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAAAugTDXx42XliuJUEN5RYxi0UCj53lf2+GkWlgM8PYFs +ilAFecE6NMS+fAbwkSbVNQ1KB6Fa+htijcp/ptBPQUcs3mTzY7bzo0DEgnkYqiPv +pUOxnoqPlohegaYMZSKDxogUHBQ0aM1sCNqvL0VERgzk0J1frfpFChDsmQrzlutj +yz3hK6IIvMRUIUh444DnHKED5nqP013sH6YWHuDHOBO7p1+a2KhSHxpKvHl4c89I +tYe/Hf3i8mCBa2Nl0Rl0L+C0YD73Ojn+k2bZOr0SBOXgJsEyuvcYGgv5axHOkKIM +ddZgAH+GxrgzAZ/xBiQawc7jv0thb5Bar7O3L1Mk1lE4f/8OoepQxGTxVPO6mbS4 +GW5fnc1Y1A2BaMrIxf1y/9/rv/Ef+WEo/ANMk6ZMm6b1G0ZlbskjdpuOVmRa2GMJ ++JE7QYRJt2XF8W9LKHkWtmNk/kRLNCes8PK9RZt+RMm61rjE6nZMwRJbjBgalJ9x +sf8gQtSkpEh78LlWCQ4WDyqml6VcADEqFlgWpKwXrvs+8g0TDPAMJMyt/nIEZbA6 +odaNQbGuEUYZRZxZW+HUxKXmbUxUELUsTZJy1x4CFX2XP39BtmkiIUrkRQVQp1FN +HDaduLs9IDLjxdR31p+c2YyeM9pZ3y4bLxsEte4yQ3CuKpROhaBGqRpdXTs4n1s= +-----END CERTIFICATE----- + + +NCU IFX KeyId A0C9DEC08FD39A8B59C46BCBE87FD9948C55F970 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAABvhVcvzHrOHzwAAAAAAGzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDkzNVoXDTI5MTIxOTE4NDkzNVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC1BMEM5REVDMDhGRDM5QThCNTlDNDZCQ0JFODdGRDk5NDhDNTVG +OTcwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwfEFWwiAankldPUZ +FCZYfm3QhPuFm9ocGwSfZWfDrNU5HKSbZOjHV5xmHfZ8/fQVNXIQcbXR3ya+iyUd +xJEtDhnUBLuOYb+MUMVRNtmQtuIxxL1y1aD0NF5oEhHGnMGbSwZnVXK+SZQfWgw7 +q0tpySxJ2JHsgCI+LVGSFMoBKSXqGMqJL8yxhTZm9vpZQhgsB2qq1T3NANCIMx06 ++mbN542Rh4Wr7xmGH5SW0j8wLXiD/WujTyC/X2uo0bqe/OXgbpdCQuHPkq/e5duw +d4EaPhtanXTkviMyWSb6iwUVpnbTEH5u0Qesb2zSxtp50xSYdnA9Gxlz27Hp0sT9 +MkTJAwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUg7u88gecv0N9qvWf+yl4e2JuZy4wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBSRNr0 +KicOPgmz8BfET1U6PSGWqm5ww5U38Qch37+8ttdCdZAEzSsJ3u7S/uPJ4AvZLuoe +cLMkc7c5FREzu3P4fCVnXUfaStHR38+Bj4C/dHmNY8BdOFwoF1jSOmkTNqw4efwJ +MGf7zComN9zYy/GzgF7lW/hM9pHSPv74q+z5e7oKxDx0plDEG2LUNm57I2hCjMXH +LcMpuKMCIa+/Pf6LDRj8zPz6dbeUjpzOgWe43Ii/W8i4Jm3/Zv3fLRhf15JFGCkF +6apA06zJ0AXHcypkmEt7eH2v9Ur302NX5+ePzIKyjBMxcrqoUmMKLAbcYekiWH60 +3lBej8hLLFXDtFK6I9hjmu7u0ZXvjUV//vmicJlTj/1sH1kLhJLeosLi8m3SWAPn +Pr1yUSRXjzVI2Fq0FZ/1DlWEtR2ZnYxJudEUUel7EHbL7f5vDr3L+vemHoOlqyr7 +sLLDd3nVAbygMnGwSs7MrKYLVAtEypHTbjImrNR2dXB/nYAum5DdGLQz136j9lm/ +2y679ZDhpiPIc5VwsD97C1ifi/CIjipUaY+t5/GAHmKmLUAK44hH5i/Hw/OBUkPJ +5eC5wEGWd/brmLnlkhPvlHF3LYE9a5vbumlBeMlkD6DKR6GlrSnwDWTn4EJp8qeC +ET+hWnMnb329dG9NoXSK8AVkTcNMOs8Q+M1Jfg== +-----END CERTIFICATE----- + + +NCU IFX KeyId CA6970458673493A8AE1994EF1E29238F27F4518 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAACpzgO4SpYHlzQAAAAAAKjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTEwMloXDTI5MTIxOTE4NTEwMlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC1DQTY5NzA0NTg2NzM0OTNBOEFFMTk5NEVGMUUyOTIzOEYyN0Y0 +NTE4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwp64rEuL+nktq2NG +Y+1Owi55MmVCbm19APK9uXpxM1ZLmChEv6Hd6fddArmZ5Wfnv8+TwS7d10EJu5A8 +9DAwYrgLXmcwI1LiWtVwQ8tS5Bwy/pnZfPXmpv4jPyrgqe7Nps0yQL9bEAe32RbU +JmfrW1ophnfIL5jKHbL0Ttmn7KfkZRmSu9zOoxnf1pOuU6IjJLHQzUM9DLskPeKy +XjiBDFoxDZNVh3Ks+VZFvI9hGh7RYWNPRbt455z0wVCp/gAnN0FZVRoacx+DBg/n +XKtDmKAAWN1zy/AO00vrUpryPL/k0h6v0+U/PSsu3ssO5HCYqOh6ogGB4KYjAWpp +iI2X0QIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUw2DdMCjR1LNzS0YBUrGu2NXNLf4wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAZx7dS +VUP+O+MGrI8DDP4yTap+8QqnYAW8QJQKx8Z+8h1XtuTOHu34SLBWCyR6cZlQExkm +BMyroGv1jXxsnM2/SIrt/jrubjgSoPS9fTvotDE1ER/BV6y/3xCBFYlRyvGxZTBV +7uGoESSij+a+ghvJmFGrUb7JcVgtl66SUfV+SiRBqOJMEhkaJrEDMHwohewOvNxD +yvls58D8kIyuWK87q48N7MRxj57DsXPkv9tc+YICRBuK81GE/j73bmHRbDAZX3ep +zwT05TqrYtChZNfm+6lZ7hURzoV7eGe0ixlWk0ZtAiKPCbb7fB0RePF3Jw6S6MIy +hCSX8qgU8KuKLObz6NKu9KWY4+K+wmlPAKZw73wLrcuejDV4r4P2uVLKIDCpmE9O +dQU4ro902c7eN2q30jyGtYyWCSTzOmTt+deNtBq99wMH6S3n/Wsuqo1V2gx98Lw6 +UcrdqAetV21eYD41bpckaGpWFuEg/olVcZVk/kUPfUlEJmDZgKd18XiDMypepLk/ +4vTJ+MiLbw/WKqYe/wt5C5/MlfR3PTEfQ2d86OIXhxWF0nOvv8Eie3F8rDsakkZx +5Qoi1W+zDRNKZo+PC9GxoAn/RNxw7Is61j/wjXWZjKe9/79TDW6h7OllRmA0FtIU +nKELQ41zr0pqF6ExO7j7Ft13IU29V7bD7+f44Q== +-----END CERTIFICATE----- + + +NCU IFX KeyId EC3F8D4CC12ABE88A019064E8A62B7018FA2E359 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAADCTUF7UHaHSFQAAAAAAMDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTEzNloXDTI5MTIxOTE4NTEzNlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC1FQzNGOEQ0Q0MxMkFCRTg4QTAxOTA2NEU4QTYyQjcwMThGQTJF +MzU5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs7TgdsEbD8Ucc8wm +Bz/39RSdKGSCvivstcnTSIXVHmkOQ1VhvXZ8vvNPcwFyV8jtzwTAAo0XY5nJXJ2X +55mDgPLRYR6T7wEqVPWqpxkhw6yvr3gaGXXERySwjc4WDhn8fiG5YM6EmKvdKLA4 +XTBOLQehROb8KZQA4vA6cHzvxjWOjaYRaAk6LaNPMbPGlsa1OoID/yAEXY+juZrF +MHlOeKLIrnNKJU3WUrSHWBflvUqplCpG/59+//tWaaGm390wwqVYHdbEn7SLmcdM +lvYuBo82Xm0c34fLBB5n0nDWl54Bg5woioRm0zBosCfTs1WQpbVKU0+iRbWyy6N8 +3anXUQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUf8eNQLNICwJKJIyEp9QvbEqJgsIwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBDQoa8 +dBYvSXShOyTJXwCPDno2sE8kcSz7Od22w3a2Uh9SgGWz7stlw4ZB3nMPkYi+l/aH +chxoAwK1vn5ICfEhmB3kGe6tAyO+64De6se66uqOxk4pdySiNftXrJ9ucqD85LU1 +y3nmxrfOFywSKH+xUJXOHs/wudg3bfe50hRp41sP8xmVjZsX1zP7me8+/xi3Hor9 +6c1bDa3hfeguJa2pQt3ZhGKmYMPH5D113w6nzzoXGCrWtE6nIrtuM2wDEz5KofPB +mkJEb/U6UwpVuttvmUrHihbEoHcYVUHiQvlfZzQy0w6esCeKDtp8W4wEodwy9p6e +KfqaAuDmwpOi+qlzx9CcdhdswirDpdSUIoQ8HebASxfNI3dEpcdZWEAR3I34fKpR +9yo8IPku1rlb5CtMvDziFEMqsWS7dunsdTgKJH+h95b4w9t7yFaisr3U9ncJy5/t +BSjsSQoY5+biWP2YSFvcZQtZULpCOLFLM/Xw/K6AAr2iSjWll8m4gwzL6qtS37it +CtLFC3cB65NFa8IqJvZ/wXoT5m0HOxqaFM02D2pFsmDnhfvnxK9pPLqHsautk3VJ +kyRvRmREXLIr85vmC72OB0L2VlyQoIzKQ6WHlD3Is3Qan0EmTr2rdij/rFVzZexo +Quh1fb/3Z7H6vFS6VGBTfV1dqUqaP9P2q/j/JQ== +-----END CERTIFICATE----- + + +NCU IFX KeyId a75598b8026fa544affcbc4b9106c12f96d3f0b8 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAB4K/1md2wI4hQAAAAAAHjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDk1M1oXDTI5MTIxOTE4NDk1M1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC1hNzU1OThiODAyNmZhNTQ0YWZmY2JjNGI5MTA2YzEyZjk2ZDNm +MGI4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApxHyvkAQz9jWWwJQ +qb/4E5YETXPwu+Tj3Hq/RYw5soVC04TDolKMGPZyxH2AMskAVy14rYrESLAxSTOp ++IH9oUmMk+/bf0YURT7F2pbWDiCq8reyHkZ+VUGY/eBzC3QRLTESJU1rhpBRZ3Ep +BSCrPKrayLMPy8h/8jF+Hy1M7eJPhItSMuQiEYFRlSrdBnEp5jB21OOqi8oETWU8 +9IYleCP01ENl5EiQYYN5KRqGvknHFaHW8INCsmo+yWFmBm1JQM3Bt2WIz9E9SVex +AwQek8HhIx3NsiG7PHQUMWivR/sPhaplwAZuKZ18s3udqye43fW/eS0FByse2D0r +yIYNCQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUjJf1xEZadxthWCHyNaDlmNeo16cwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBlNrFg +El25hhLCmksaN4LNNnjytGFbh5mf5m1bc8nHoT9PhnE+pWf3zUiwq3NoKmolBPc2 +UEhdswE6oY213j804ga/oziow1t5u3h1DMVUrvrJiZTuLqgh4mPFOUi+U7rj6+4G +LnMD3DWm6DV6hmXWwKCBejvFrJKPBKlQpltcYnqCeozSsUbfTg7fdzD0E5EQKw89 +2Ymj1OwqTm7oc4gGe8qCbd2aH7dFbcevPRN8t/3/iEyfm5LKCnNbgyoUoJi84IbR +UFRMGZ87Hu8GHIe4UQj1/00Zpz38ZQKULpYN7m7LTBwQ3bmj069NCfSjwA4H3QNN +Jfa8hx7svkYXqsryzpePEQtthdXLK5VJBxyrpHjxLmIw3icsa5P8L9Ck9/TL1QZy +l+PMwZ0RGpDVnKrzrvHsvXg5T+la3jpKb75I3phSpHKfxWwzsY0QsL/LWjtg1Mnz +rONghxxW9CVuAqQxcLhxowJxNKEfFHN0Ki9W4PySta6q8LTRr3Lud2YJXkpUVHoB +R4yXsfX2hSHgqnC8o7lyDKWaQYaVIWFh/pSdN1wOQE8uSLe71PVLtKNkf+VA7Qob +QLQMkXRWUCCVgr4c8+wBV2VxuL2qM/36MQBqVxCaY3LpPWmLmJcDRMfbndiJIguJ +9DiGeBuW7MPpwTodi81zCpLe/HtKyLeWnpb2iA== +-----END CERTIFICATE----- + + +NCU IFX KeyId bbcf7cc184213166dab5be53a87014ddd348d8cc +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAACEFKjJGkFsmaQAAAAAAITANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTAxMFoXDTI5MTIxOTE4NTAxMFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC1iYmNmN2NjMTg0MjEzMTY2ZGFiNWJlNTNhODcwMTRkZGQzNDhk +OGNjMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiLCPXvAM4d1C26cl +CPRqya/WBDIQd2lCtzKHgDCn3oDRK+GFAiDDLLYpIBoDkJ20bJOVHFs8A9lnt+9Z +kdjuJcPmvdv2WjdZfBiF7HBh/Z8OrGoo4xOfAvudUDtLn9dlc2V3Js95UiPAF0Iu +Jfjuq2V6vS6+aEy5RCt9/cVi7p//DOmD544+8r6rCDBhT9GaVz1IT07TRXsyTAHm +93m1gjW07riFPKEgvX4OtcV0KaxC7z9AYrq8HVIblOkLIYYYsOzeDOGtgs2gXu52 +CYFgwUonLoBjrvRvtSIVwZ3gzHUDWu+aOyVxe0ey9DtvdKajeGWhYXweFKMuvhNr +ne/DMQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUqQIAWhO6d7O7EWDmvUw8ZXQczwIwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBKmDCA +OJL7Ch8tE+lIAreH0C4L2gLPAjRWzyMb/dnfzxAJ/k2QvBfifszpfl7FyETN8w1L +OsIFXkYJbTxhISWDJ4/x0Ah8PbXdSOIxBTIel/Qx66mJOhfReXNsT93ZkMJeTjAW +swkldiSw7JXqsRoh6VMGhvvW1b/8wC+hqfcPj40KA/LQH7zRtHiystU1matAl6LK +D7aV69w4razt0vECJOxD0AZDz1M6tQLiMO8vJMiUjSUzep4pRfHBiZHJTE1zpCBB +XLQ7tozlytU4UNb4QPVBtCpE46P6ZJrduS1lrbwqWuA9iP+IE49UDBuWxtkl+55W +2YPSjdqjqZ8GUIowF62x0tM4Y9xLJq2vK5eu/Wv5yJmuVAezk0VirEcWo7tfh0jX +p8PI8/wGoYeN/WqG2kghuAYEjNN/NcxxjjPk/IS9ohGZH/azZsx5BL/oKf8acRDv +e/SEPRIwsjw994RshvldAop0pVTBxlZxYg1YfJDj6Vz1NALg2cne/pddUSKNiSqA +hvb8ycmB5Iki706u0Hw8AYv3Tyw0mQUqhuNBggC9QtMiLbwQ48qogTIFXm+zxfFy +lcch6yNnKs/c8ezq45Wb447x7QLNupXxWrLFfIfTaUIIWmaEFGF2OflW7ec3PMH+ +6u6Tdq4pw7jUrVA/2u8dP4Oj3f3CHaGrnluq7A== +-----END CERTIFICATE----- + + +NCU IFX KeyId c6cb2a4db7294be911724f5041310b4c42f89bb2 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAACeAEIHltSKmVQAAAAAAJzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTA0NFoXDTI5MTIxOTE4NTA0NFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC1jNmNiMmE0ZGI3Mjk0YmU5MTE3MjRmNTA0MTMxMGI0YzQyZjg5 +YmIyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwzArwO7kziXmsWfi +e6VrfhWYm3YizKWmHyb1XLxPFRpu/mwgInerdIf7/p69bmjnhfbmCh0xQwcL+sU0 +kQ+spJuTSNOk3gUwqtNCkNtr2547MfV+DCPxcE7D6OX8Xkt0pb53KSRBYMSkl/ye +B3oVvYV7ZCyd7CYZARw8ATLKmBUDQZtt+wAeZT7YgswJALEs2j0MNQxrADPByHup +tGKYkKO29Ey4gjwfAw1DNdK4TTC1C/EaZwPxyaHnSGQz+FWLbyAuqT4OA7vxVRUS +3od8uURnQbsSP0J38OGFpg7jRpbN0dZ68OosZBzI9TWo/nbWff3hRjBxBVBuDL+w +8VQXkwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU5FerUi+yesG/NQ0HYEePJqVRe5cwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBJtQ5v +rcJ5NVdLIQktnsKkwl8iIH6T4Zd7H7K1vhVadpqSPVLY8eUlzVfshMYbv80vr4ah +B3r+XbdZfI2e6NAyXeD35cNxxebsNw9AZXKHk3y32PC3x/aWr58Ky+VDOaTo5dBx +z41J2+lbkn7k7aKj6tD48IJQcPl/w9u9/W51kS4eR5sbcQpKJ/+FZt0mbOPt7H/S +GMQ2Ih1SHIjVrcU+Q1c9pOk625UfSdfP5PpFS1duV0pYCrRPyKwDnZ5DvU3UgDsd +Nj58M7bp9xjv3V96U9oYQkFzIpRyeLTungjUFM36sl4WaBNBaPY4ATlK8sTkQq0t +XKbtKiDx6gknijuvNjtaK32TT21geerfjmlm2hrTILeaaB7mtCcLvQpNYDKDll9k +lNUFmqpXBUUZJLfQaSFZwbhDvqEpzDz7uBnRvrvzIRu5Q1VoT+ixnVYs9GOCqPVd +FQYpUM81pqkMu7CpNPjwmSQA/lx3x1a+Krn+2ZuJcIaoZokiUZCrOZOC7D3kkrht +3C/xSOmggjSCqxv+0uHAos0q7mPMZMGDA0lYw3zfeQrNmkXLbrzeZ/t+0xfo+F3X +oY7MVYLncq25uZ0hqr/1C5XtMwJ0Hnpr8wdffB82njPXq3aZWkTXuo8/TiNKKLN7 +N888n7HrYCHO2JX12lohjD3OkW6/3kTXN3rS/A== +-----END CERTIFICATE----- + + +NCU IFX KeyId e82669cd9f2098270297499eaeb8dfa7e68b3422 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAC3cA3YwyDr0AgAAAAAALTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTExOVoXDTI5MTIxOTE4NTExOVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LZXlJZC1lODI2NjljZDlmMjA5ODI3MDI5NzQ5OWVhZWI4ZGZhN2U2OGIz +NDIyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqNDqktSy3KawY61n +M1T/cc2PwcG279Z6w5Yttd1JcvI+wgzfgBUtwf0bmpBZXA5hKnbxe78lTAqftLGo +yt7ZMVpvnh51FMKn8AdQo2nGXLmtKFbYDiIBXnKHJ7kY0sA163mxlphZJcjhF94O +NqmoMi6H7ycfspFDn5m94fS/XZzGY18L7//9rN85B6m21ZI3ps5hl61wZlw8tGFx +nKjPXOUP01Eez5JOXHkr7XnYFbij6Byl6NTfGEZinGx2Yk8IrWGxXNkmKtlpyLUh +dtMJrkjp/TV9OdPcHpnF2cI85BN1erFCr7YMpALUBEQZ6XFp/Dt7x0XmgvFYqfj/ +5kYAKwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUhVyFqP+9JiqyPrttwM80KQnfxVIwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAQoe3a +EuGwaTqNGZvCL4XN6zM7TfvF7XnhY0qtTBbir6BN4M8NrynM+nFFJ8/muvTr0zsA +Zf+1UaBaXDkfETE5vXgtAJr8mIkG+UgHqKlfrsohu9XLsPFVEISn4MODjmJkdCGb +RV/WLbUairppPtpZtO3bhx8+ugPWVYBh96VqjdoLH+MupKUp8G7tIiPEm7ly2nsC +8ZyX4rofw78MspCMYN0yb0YkBCs22kHLpDqFMrR1mVTK+Zq3/nNnVIcpo+g7bTrv +EH9w9y4bhxK+oVHsLatKqIHHP6VLHBjSEqbAROpM3XYXTWnWxbCldZN39+6Iznp/ +129dFEyOMhRkJAZY/hUxfNlcm1t3LVPjM62dNJRGgVMza6JHzZ6aKboEkwCLohn9 +bWrOP3S1sWUfO7KEoDU9rbRFTi5fUu2d16yXhq9FmNFTVeBruWeJ7tws9v7gnGlq +ChdVQb4oQBlI0/sVWK5aGcpnjq6g7pQ5sqSlqO/MVeGMxsL6yGV7w4wshjEGrDst +eA/JTiL1IugeokAYcxbP0pN535uy4gnLatUpcIpwIjkQhGObfqfiskXM6nCJ+Dgr +mMa+OiUsF6OL3QSYF9vmYttpDUbcBVjmUOIDUOJn2zDB1sF2K3VDgIwvTyCNw9pp +j2dBVw5fsN+YKt0MCeASq2lzJlzpcphNJ8UiyQ== +-----END CERTIFICATE----- + + +NCU INTC KEYID 14B8E7137FA99526C4717DFA881B24936BBC6BD0 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAXChs01NipgP0wAAAAABcDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDkwNjE5MTQzOVoXDTI5MTIzMTE5MTQzOVowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtMTRCOEU3MTM3RkE5OTUyNkM0NzE3REZBODgxQjI0OTM2QkJD +NkJEMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMgEeMwnqMRXs4xJ +7NbRYGJrJeC2InS6KZ2o0W6t7VefraYW3+TBVNWtehy+kvm8e3Jt+30hlP+1p5Ig +l4qckvhcpWh5CPc+93stl4OgoWsERmfTwuuauRPhVUg0DagVa+QZ34iQYRaVlIBF +PT8KhliRaheRHkNqkJ4lUagTNfCZatOwu2fBEQkgbqSvfmbRI38njLePY4PtTg5/ +aZCq9Fr3JzIM4KNQgrcO9kSA6AWbQ+OiyvCOUCNTmJG4HRBbU9xwikjpwAIp2ua6 +r7TuiBXJBYk/HVp8SCkya+Cu/Zdvmtc5SRuR+VYGVhNfSjsVJ67U2bh/fy8XBChB +ll64gXkCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFGu11Z8uuCi0BP49RPxcRDmj+8mIMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAGfZ4 +necexgWhVrvAbWQ1Ci4tWpZPjZMGrtehd+dWjxOZ55vJ8JuiAhhQVoXnzzfJo3E9 +HvGyasdOzy+4yG8vvlorV/20yq2TG0HzgHimN32QU21v5Sus20crWTusrWYLHAHt +q8Xv36hPR1cUYu+Df6/yHr1TW/k8oQqG0XMAnfSdu+/jRlFRKxKq74EGNsf2eFon +SGbv9tsa9fUDAjK9DyqYIRewsEEC81ojmqLOV2fK322XTUp1tdAtFZhVjyyUSoeY ++ZBz3uN+uvj0vkOyfFIGO8POcrzs7zcIhVwKsbggxNZExONCrD1eupCFDI6FblG8 +3wGHvfThdDVVzs8wtuxEdzNb/duScKeSwuLNnUc+GEFoOCfNpTlxt9Ve/x56zuse +Z+i1FnjPw6wksm3W2BeiflywGohX/05Fj9CXZfjG6nfWgv4tRXSBQTcl9UL2p/bh +QjSGU2Kw/2xFNzBWV2RbShPDSq4QGWoDIcoSQBGP9qd56aNS0oToZn+KM1gaeeZs +YU4r0D9mTgenoeE/cZYTjBDDq1sL/QsNDIXH8VHgXEy5X8Le7SHgaIrmr/ebYTDs +Zub2R7cEVpTnHmZ6kZwAOHcPFDH5Z+lZnfGz27EOGYNyIW1vdeT4tnNYWI7bAEdq +6HzGQtVM7kGYnI1Mb7qLtfvZWe6xEmZR/P3UT4E= +-----END CERTIFICATE----- + + +NCU INTC KEYID 14B8E7137FA99526C4717DFA881B24936BBC6BD0 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAnIFC3d4gy0QMgAAAAACcjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAwMloXDTI1MDMyMTIwMzAwMlowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtMTRCOEU3MTM3RkE5OTUyNkM0NzE3REZBODgxQjI0OTM2QkJD +NkJEMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALJQf0DDJViFvp/H +myMzI800vWXBYNiZsIClcpdF1FCpqemrxu2r686xO5XjFq97kqxu/b1grZFuhCDr +O8c09FJ17TwrM+ri1Z/MrW19lX/YXQxElCtgGbcxENsLcngHYWk2SQ/Sed2Oqglq +tMmi403Q3WA/ronjtNcosN/8ERrglCN6Y+wXMtqHVbTV9AJdxEhwG704anbzzgAL +3Zy9s+Ue5u8PIXkZC66wBFbsjSvT4+Ugsim16dHmGW9caIUX8wVjlbop0w64WYwz +RjaGzUNtl/G3Q6v2/894hgK8oCvbks7qhW8lenFrYM4L8Gxl2FN0usKIBOsxyrLa +7XzsgeUkDDo1JczQwU5Stemn+a9C2dJRJx7i1l5FwCSHqc+O/N80tDg51bQgtMIg +6coOSJy5G10Nvkb6cio3lbvEsIHCIPxFfg0RPW6Z+1gweQhP1fzbxMjVDlGuhvtm +noZO0pZRiyYjygFof1gPyyaqZkCkCmnQj+fzwxev/PqzZx9gDycVbHx5YibTspbv +MhvGxe5rSlWRjBKzfvvJdk7SlShSXoihCApDkGbtXmq9LSv2i7E30rT6IoP+jXDa +GmaC/K//BJF4nOnD6l70DtnH8Ibxv8yHeq1ljJu1kIP0RYkDTkPcwbhpHIOJ0bN/ +Ch0DcKyNIKYEdgdB33GcZRXVtwixAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQPQKq+ZQI5KZuS +z99ymfQz8t/ayzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAECf4m28qwjsXchDiqbMxEKotGAUkHiTkDhU3fXIp315 +DXgfzUuTwJNZkGye+aUACTAU3ktEGqvYQn37DYWETiFkWlrE/Kv1fq7oc313oa7y +vCKdMstvwldgg7Zno1MUc7Rx4RopsZqQIGVLheUmKqUX4GjCgD5epPsPrO4j7lqI +MlZwsXK5QrFHxHgl5biXuuOMEcsIeRyc4Ysb2PWi8u9zZfrEd3FTMO5aq8Oxc3Pu +ZIqkxL4BDce4yajNkk2NBWnp23Y2WevF9k5ddc5LjUXZlm7ma9/WW7G56Co9DCok +2fBw3GI/Vw5n0ZaTYCE4STjJg51Cmf+63PL7SZhTt1bGP4T86sjBviaXkkpzrkCR +DFZi3Fgsx4YtS+OqPej66RM41T77gved7BM6GHBlMjsK8/HecMj6kw08yZJpq6Qw +cuSbf9ZTGH5UMxBhrPi03/N46L25Qckq/FHiovK/TK+QxmKBwvO0IiF/q8UvZnGu +qc8zgtaJI8Ax0rmrG65E9wXUoJiHNvkwtT4c8UTVTKmjtgbV7kQoT5Zkc6rc/XhJ +xBWzVZpG4LSqEE/cpD4Nse1hjKE8qw18zuP/KvDXT1pqcQBBtsjt7k7m0NMLa5gk +EmQqgQOLeH5buTv04QO9OACluwzrQ4LKNGblNwfySdglvpoWlHLfmfgqaot3Q61W +-----END CERTIFICATE----- + + +NCU INTC KEYID 2CFCF43B16C8BFC78249CC971EE57324D639F079 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAUUccwTE8/U2lgAAAAABRTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDYyMTIwMDQ0M1oXDTI5MTIzMTIwMDQ0M1owQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtMkNGQ0Y0M0IxNkM4QkZDNzgyNDlDQzk3MUVFNTczMjRENjM5 +RjA3OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALvGFL+z712uwcUq +PBxH2NZd7HDrjeKXuuXpxfT4bMazdZWn4PV091wCWZHw9Q5FpH0F34KwjF+bmoQd +qzlZ/K2XLnFYZ++PpVcsjUvMkqeDiGISq6bmQ151oK3l3+POlFAwzJgENN9t0Tkv +ZiU+mv9hVdG2M0mBVt0DqA85RBZfv3YCCCqkH+J22q7w7VdVoxH0b0suOSEdalOY +rirK40fFSNhLebAGB3phI2qz9IM6n7kxuJUT//k6pcmYqhg2UmDYv01yGjms13E7 +FK5FQQOU/cqfxN8QaL67fWoqo5QUUzCbumpT0bFRaRwaOJgWVR0hkJvFwDBcMMoq +7wmEIVUCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFJs/f0rCaEe53J/YE69kQ+JqGxqpMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAlYWB +aUvnZR0Td9PozILFBWYTNNC5aGMz6CB9rAMOZCxKNwsHrvI9up7mQyuGaKekTBJv +7mWY13MtX1QN7wnkOg9dMjYzAQ8kMuoQVF1MjPClc/iG97ZT4wYJ9gNVxTXfQYHc +f8XJ9Gzya1dAAaIQdjscvuWzCDqMbqAKsVCLdpwWcsIxzqdlkKifkLw5PMleQfZQ +TrevhcAbfyIE7bfLLTqVJOxpfG7mWYpb144qBKhN7KjAY+PRE7Bkmyf6VhQic9m1 +VV62YGB00oMY7uqk6AADE+Jf+dFapUcoVoh5PL/FGaBU+HqRTOxBkElEFpBlM3Bk +xC6X5GekQ4wy2T6uKRZz2MBHVIvRH6Tqe45DIA++IkpHmjwcQQEj6OKD++AXHMFz +xQOaAnVVb50Dk0Ep84XL3+6OLCUSWy86RhcpfsH91RaIeIfQta1FKe9y+d6ObG7M +muoEQipeuaiTkxOajN+EGMkQIBN+7yGdzjFtXrWZISB6AArKW73Kt7usgnIDGN9T +PWh+dIcq5nMDsxXfZan4W0Bfsm+tcLQWEl6qa665xVNRdsMzC+9pHBx+jNZ8Lxg+ +5h19oIRvae09UKw5qH7bPcEyLIjhW0968pAnRUhDKdyEQukKPHRMDTlHNQ7QaZGU +vVPLIL5kt7ZtKSz5T4F1nvtc0VLooYpawfQ+vMA= +-----END CERTIFICATE----- + + +NCU INTC KEYID 2CFCF43B16C8BFC78249CC971EE57324D639F079 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAk+jSthDIGGiVgAAAAACTzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkzMloXDTI1MDMyMTIwMjkzMlowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtMkNGQ0Y0M0IxNkM4QkZDNzgyNDlDQzk3MUVFNTczMjRENjM5 +RjA3OTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM8DhJ0v93u7jldl +tmSuE1eNyp0em4MxKRstbsu3nIurbooXbtiV5dK5ah9/ZBZfLzbiep+Li8Gqz057 +5774Ipg3jTAzF/6tLxp7R/hBCBBv9NFL4OVsnOv5SgEdYq/yMh1FHppnkTWQrne8 +dTDMmGcr73T477H6flkYxKLhu9aifAv8ryZX1tTrMmhRuFKgQNPstLmYCe8sm89S ++YpSXDddmEpSrjs81AIsHz/GmDHHhnluG64gRiKqb9zH5A2kQsOzi8OKTmUNK0Tq +BIeJmoZt6nDnzwDKxHD1lOIoukAWTbO3IomLjvaIrZx7iHFS/psocuDLdFJTDrSt +4HFAYoOe6Bzoq2An8wt6F+wKWqZ49fn+L9wOvaIDBbuBRScuGRFPisSlOZ6IRQYI +g7eC8cwdqOhY9mzEFJVi4HBqGHEu7MHBjrt2PCRDCfjvLrchiuPHI1Pf0xF+nCHv +vidwklKOg+WEIq8blej319UXN2lekg469Ngi2U6kxkgkzj851e8ZgwLL2ky3xFeh +11+k0wWaTTe/ytXSgHKAd2hgmP5dkQy2lhbRCR1I3gcI8B7zLdBkA1QNd6OEZ+bc +EAp7UH16RZFbH+EoBXCjmTDA5mG96SiMURLssad2nTangZixizeYVZhHr2htAWqY +r4w0nbs3b1rFULsea3M1h7AYlVA9AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTvcZchP5DKGoKs +DLZ1deJ+PHykCzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAB+04naK8xucgDa4Z1Bv8pjyABPasYdj3eM7juTbJBLN +Q4N2MaESQm0eZp5LH6LAbDPseXO+ddaDrdjZhVehtKyNYKspcKg3ABE3DWha2yYt +ejmjbZECMorydj4yvLvm5zkuTYsqWnzuQoYsVPIOpl0UXWsXymZ584DX0qiLGRaQ +uCNX8TFKN38Pq8nWmOwrE53rirLGRVbpC+j4XpNcKwtpkjlii2rbzOiKKomRLbm7 +NoVNwh2GueHgUQHbWfAAKRqs1waExtw9vHfn/MnrwEENDvAMIG3IoVpCbXvah9Yy +5tObTcKq+6DCNzosRhgIDPjrpBRMRRt/QMwt9/NjLTfUfSxkZ2NkhyBYeToIeBMI +9hcM/xgMXoZHHEYQ9eCPVpXYT4CrGLeVTq8B2thYLHjrOFtruoyIeblLuAXXi6C+ +OBZ3BX9AVO54tydHjDovd3UD5BKKCHwYZhPMAdyv+wk9tf+R80t52yzGgkMm6i2A +nt7H/lEmjTKcFfeY19PIiQh0PMJpaXrl4Dr20APpiL7yW1zYd+MaTES8kZrym0yq +uzTvDWyp5CkEOyfDEwg6UEHokTzIdKFZYPvoShzH6YztfBIndi7pOaxo+AZ8yosu +MNopl6kcCrC9xHXFleq+1ugpvRxNMBsP43pxMRfnEWHipK2TcVsL11Z9Kue70Pwb +-----END CERTIFICATE----- + + +NCU INTC KEYID 2D3CECFE6594829719D6556B600541E749FC635B +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAS4ZUZ6JMrp8bwAAAAABLjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQwOFoXDTI5MTIzMTE4MjQwOFowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtMkQzQ0VDRkU2NTk0ODI5NzE5RDY1NTZCNjAwNTQxRTc0OUZD +NjM1QjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANlqx5U+nNK9yUmV +g3VaYfmA07CQse9sSG9Nl/1THhH1GH6o0jaPReBQnUhIfT0/oLD8OQkDfDrQRFgu +3afGUX7MiwDnxeDOK7Tm1EDvWgZsUGloimXNbgb9W30BWzaABOGtqPVvlh33IBAO +qZD+wDC2tR0hXWUbGgnZDHfmA5HU/eSAH33467wm93if0DkT36WCctYgyzE9Qubt +CLW5QM+YWglUpJxHxI+nSvq9iNtq+3UA/QfRjdIk1bIASoRp1rshtfRBYTfow5RA +LA5+Z2kJSn/E+q2liOYDRlT0yDC2HPVoXf2OHXW8r4lbXhQXNlzH02vedbf+0hsj +kUrRi8kCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFGNrmdUwGuZwHJGm+8bGq42P0OStMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEANsU8 +HnQeZYpzFigXg6db03n3vWZCKhCfDCoIbFQ+NE6afvs/alL6lS+KLpOxGVWAPJ3z +GbMBeKtamFVcgCQXU5ShjogwZlO30sfIeH2mbH0ArEXF95W9etZAYMp9SFmbK75Z +6y6Y29a+VBVG1Zo0MB4IlzEWAAL9/ERE11Dnx/NZkZz+l73uv6PK8D7IrLiaE/bq +cnqv9Rhf6c14wW6l7P0YhEzK+5I1Xndwh1ImwF4LcIyw6SRECa32FA/T1lHL27// +OkTsZB92NVTqwJ1M4ghiwpSh+VuqJZRMObfBlloc9/wgxoH8BFir0jbpZmBmHMlH +vxrO6/SpzmnzjEre0Y7rZ7G/TG96OIzOdEmY9HAJC2HxaVOa3A/fqOe8uEgwyRxJ +qoZY7vRqzmDm6z76rJijmu2OsMCW5mKhIaUh+VvzexHE3P1WsxtCV0PJKEKgNZip +nKZoWKdRY0ZJJDIXUe6vnJeDsZz4sijVHboglCfHtOJ2cvqgVfDRt9TxdiFWsQrB +CfiLDoiB10qCUTh/80uDOKjZSuMWIrGn4svHgmkQVJzEuSDpakQRYjV8E8k3IMoi +8FBjcLFwMl7mFeB+YHw4C69J0FhkcDb5sjcVdx9/sfMGrpRnCquCI+ySDYrE/UqH +Mp1/Pst8Dh/ZeJNOsX42BN6dBoy8zPLtEVWrTGc= +-----END CERTIFICATE----- + + +NCU INTC KEYID 30B86F094DA6ABD52371043F2BF7668C783F0E66 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAXF0rbJiMCYD1QAAAAABcTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDkwNjE5MTQ0MFoXDTI5MTIzMTE5MTQ0MFowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtMzBCODZGMDk0REE2QUJENTIzNzEwNDNGMkJGNzY2OEM3ODNG +MEU2NjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKaDJ5oUOFdYe01E +o/VTtY3IrwnHs1adpEV2X6cary3uPa3ljxpPHLU/msdArn0un+LRRTtF12iNEYJA +htHzMc8oCI+rcQG6MmMmsSnQ2qgC4BNk5YLoMz+SMH0DATqEVmCyjkvrmBp8JoqT +x0MWWIGAU2xc1xY5D7QtL7eiizdg4KGq5jJZncmdzHe4e3lOt4i71kvurf2dRE0T +l4GRCLuErx/P8+8s8Y9W4C5ObWadWJMQNJQPsidB2MkRiV11a1HoY5uWdzptKZW9 +BUsIglqRPuwmKcghMa6fKQumtCPFO12xwoBds+RrV9N6N0B+HHajNdsSFuSm+TNl +25yEhzsCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFMyKl4mh9Dl+yEBJK8A1MTPlNvPfMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAd8fT +FPj4cq5UIsH+B5+t9BEYeHa5qhJ9J8wl6Gg7DyZgZjkN5hiO4XIBYD8NfLRyThDW +Tc4mBN8jDrKwFw8zlICzU32hc3pDQUuDVr5aUSGrKdi8LKBHny50t7WQQGXMvmJU +NoshoexV+YZ4Lg1VKzexZ+onHMvR4GfXDlsRtusIm8Hze3mq13wG3NAGUu3CqeQL +6D1q35L0Jt5Ite23mLnkzhHA1DjdHdi8LyxOCG5pzcliJDrz1C2KdLkaVyPU3Zf0 +AI9e/KUfRCzNCe7fh2UnSVl759EZXaRSHaV7qRB5PzGZlTSL4J1PFO/SOqfvGDa2 +7MPJ8B+lyRAJB4e6ByNk1OCcymyLCjRf9o28DHNJhL5foD+KhIY47K7pQJp0dRB5 +NSHdv7Y3iNWhiuZ2xh2w/U3N9HICEQTdBntVfQ7pnwTbvkrhWcz8dc6v9A1zRJtQ +PcUPyB5yffFrg40Lx0FtNTzZHSHpPPw3PFLLuZzupd4vh7s98NSbKh4qdC0Mhn6a +A9X2IVfT9s4tZas0AfT1LtMrfjVnGeA86cbYGlQhd78yK7OGLuKqhAZlZpcB2m5I +yFy19JfjWeskbj/UMFLR3bSg1rZEZD6lIRoD0IO9nu9QRplXaX+A+8sZmMrJFoZH +uzQncmC6YiIDQ9FGzGuBUlcrzI0G8NF3IZ8l6So= +-----END CERTIFICATE----- + + +NCU INTC KEYID 30B86F094DA6ABD52371043F2BF7668C783F0E66 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAnMyiRhCgCemTgAAAAACczANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAwM1oXDTI1MDMyMTIwMzAwM1owQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtMzBCODZGMDk0REE2QUJENTIzNzEwNDNGMkJGNzY2OEM3ODNG +MEU2NjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANnWluPvXJTvYMvz +abzc0aVW8eDsI1qWHpUv0soBaS/+km8wfM2XAPqNq399Fy1RfoIEdQYOz79kpghd +YYoXRrJD7UXanmOCVevwqZNMInRjVO7SvHsFDMZl3hZ2fv5zo5RtWGsJsOIGLHoD +9BvcycL2cxwgyIN5/J/lKlVTVTmj6hZRt+zFpcB6rv7GgaQ2L89kDSB4wZum4Px0 +Pkbt50lCVC5/qEsERjGVC+sM5DJfWxrd/G/9EyeRWf+OPH+51sKxlKcWZ8lwaR/W +UkiSFNeXY4KjTyIzQk3eFaXEZWWLRV7WCub5QvRqtFfCU90j1LmkqrwKp8qZr/J3 +kX6E/NW61nKoPJGQnGMXjOHr/xxCJtb1MOshEF03iYOp1C2c4Z+yZSTt4futwjhH +x277gIhdvRLdYdT1ePfP2C+XFPt4U2pb9/59EC7x5kIyElATRrYSSZX7xd0UC5gj +aTuzcaNNw2Ruz2dC2CuW1/o2MPKHIONLIk1wSRWaYwkBesVxJa/bZ0O5gIPqGQaQ +1bu3JlFLyMslwJd3r2sIvuGF2pWFJ6xxdeI6Eq/dbymIVs5JeZ86O88t7dUdNZAe +dOa5Syj/Gv6hEWzMgDe6BknncKnGi9Cm+814uOWPhs+KYiOY6H+/zyx2AeMSuzT2 +A6VsLdzN/mMBq38ATwfZLpfAw8ErAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQep7PrbNZU23l5 +t4PSSKhChTULqjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBADM0S5k5fzaFlMgGcWYd4IICAXnuuJ69BFhghjML8nno +cDFBUJEbotZzbFk6rTLCgaWV9Vo4VfiLDbOsrDSVDBgX44xB9m5gOPC8aNrz5t1G +OOawJrGlWYEYt+QLmNN6EZql6mzICV4V22PBI4dAuTsRifrMZZQYUkx9weeQnEm2 +Evz+T9nRgo6+i632MwwTEiHLMUEvp2vhFXuC6RgKmXqy77TprujeZN9td0vRjCOJ +FmPXH+zGIHlpzAj7V4xbWA1+mjSBnbtVHCLtzYHU+FUYko2C5QUCeIPVZRBQN4kN +maTCVRXgeNTZxyhNeeHL/toTRY5xEXsNg3w5QRiEtvzKV8mJwFpQI0eNnadJqi/m +F1eCjjQHnnCKO7jnUslVkKwq1SLdt3JwISoI1WHIfBLrCFKURiuuqdv5jhXbV7Fd +TyCjteUf1QqS1QgGC2m0dv9zRg5jEoZQ8bV82jQhkLb8X2qZ1InApGB+rQJ12v3h +yX/7nEUtEI4qm8DWcmRNYgPDP/DU4gzznrEDZC5Gtm1wd62eINtoU2aFrh0OGBy9 +cBNB40hAZVtcs+KbzullR0/D+oFYizAiCOKQ5FfjTZFM4hEA6ncCkr/17GieFKNy ++W3d1GTIKVqzm8Wuv9GDgGPumeG8dP7nP3sWwiTBs3TklvcltPjZVaylEjD1lRH/ +-----END CERTIFICATE----- + + +NCU INTC KEYID 31734D6F8AEA913A0A31180B785CC0630894CC7B +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAQqMJENfdaGaowAAAAABCjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjUzOFoXDTI5MTIzMTE4MjUzOFowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtMzE3MzRENkY4QUVBOTEzQTBBMzExODBCNzg1Q0MwNjMwODk0 +Q0M3QjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALZYHJRB0oeiFL1W +h6mujB4xd7cl9unjWWrV68X7A/CwvRDjyde+uZo8y2gc1LF+bQt7ZpEl7NinMnUz +5rFrR0lj+NN3qUgvVvcuaJP4bUlzcRpm41MLuvotcUi9+3X/TPyS8XbngRABe1fL +J1C08wOsNNwQgcwsNx1v9V+dZt1zoZjKOxFG7zcXtDL5TA1LzXZ+pmpUB0vre3bG +QtDPVjzdEFHT7B/7gUxbnPoWucikq80DAPlCtlZrN0SF1Nzfj/zopUwwUQOe3NS+ +i9r4xi/ShAm/dYPTRcN/t8LW/35A2LHfAXSh52BGVf9YqK4McM9J5f1PD1bfU7cd +jgDt940CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFAXzL8dajB1rCFmLOREHc7dl3Z8IMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAeTS4 +SUMw3c/3+TCMFrSsbRgILanFFelMk+Q8cE7gMZ2CZ+bL7PwOeoZGSfBlTEBHfagz +cT251+J4apxb4INgiI1+mk8gEJAptrnZZBf1I1hk5HMEk6BKqdGsmE1xDbL7MIJb +49Lj4XjhTNkT0gjg1KzOorpnYf8XoZXPd4oR+iIuwpyn9XNxhMp3ORyEUXcNJngx +bVxV+fdvW6YlSkwOu+SDuA/meVEa4ySYto+w/4WraWsg+E/jvw0PJhzpieq+fQs/ +jK9RDjMFZ/DILNuDz7iaf2S+T3KFQ9Ot5aUk01EruXiVw4dwBQW7aL82jK3NJqnJ +OYwRnC07hLKeYIHxJpzz7kbxyFL1RrNOgtLocve5F7LC1CxmC/zEc1Z2QHzXxCX3 +RNwTOIeD6/jKGnfop+2m5rLc0ApksvLZiDQ1Ub3ruErtDH4S4xcYp4dSwbAp8rcM +T7QkThz+ulc3i+iNf7fN0yKoJFLnFvvDFn8EypYjg3395YiYk4yedFXKIsN7WVnq +Qpm3zOUcmD2C3bnUukxm1D+aru0V0jQ7fVOpviKTiDFwtVkxXpbVW80CaXY2O7dn +gU9icMoIryMepxLYlwZ+3tJ8gv2Fu+Ob9u6Syucfjv8p2hPaInpEwK92HzQaYwIS +FEDVzeyMzpD2cEk7MNMSUbRO9xJSSko6gslxcUE= +-----END CERTIFICATE----- + + +NCU INTC KEYID 31734D6F8AEA913A0A31180B785CC0630894CC7B 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAnRudzat5qElNQAAAAACdDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAwNFoXDTI1MDMyMTIwMzAwNFowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtMzE3MzRENkY4QUVBOTEzQTBBMzExODBCNzg1Q0MwNjMwODk0 +Q0M3QjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKPzjJhxR1U1zan7 +69WtoUpCzWF13Y1jAwDGr+nnDxx14OKc2XjURip8L0//hZ3aJ19B2iNfwon81cfk +BhII6h+CVY3hVAhvys2yGdMrSRaj2Pmc+eTlpG4amD3Vleqn5mea1ZW14CmX46SQ +ZX1GyrR3zcTsLDrOwa5Q2itg/yvPT8j9Bu+G52FJNwWIIOkjY13bsDxsE1ZaxQuY +r8d2JrF5u032Dr9Lts/g8wcV9mKzrEHhJWLklEWbSNFRsB9eD/HWw0iv2WJwL2AZ +cZF6VLLnJ/Zn6CvHHpzhvQnvV+W0UeFxhvEYuCUgEHtj6LawuDffbm6b94Hc3I4s +9Ypg/gfpcjKpL8+PPz2Q9bCkYfW6jehM5xJf6kYq6nqMzV4I0U2BCjbud7PYi4A4 +I9LHX/DJWIeH2vsuAeyWO1Icd1yi1b6apaQDIFO370KcSZ73F2p6u0FsN6oMomDZ +i4il/pmSopm2R6rBtnM+HRAG+V1Jj0Gfq/VkLja52GweVC0pl9roZT5uVtmpf96A +e+OMEm90zYTGKAYgfN4up1kENfpUDLavKksWVtEjVWFbJ1BZi5bkZDWfrzDebSCX +98bfrhmD/0kZdouRURGSg9XUYEEYrQGciDnwv3jRAVC1+jCYIe8HNhjKdiQ0ZhEZ +5xiyTqAqrkJf546FIjYZYIlf76oLAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBS8ly8oYtl8Q/Ft +Zme76opMliH3xzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAAid6NHQOTgPAkwA5y7x2nh6rhU3XWucFx7+Zf2O2ock +/OBNE6gX88dRxhSn/y3TCco4l/vmUl3+ujJvl//G27hLiXXbFMaQdmDXyg10ZKBQ +vN30f0q2XX5+e6Gu/BkpYwcA9hrIgq6RGfVbXhz0WIqGWKxodT14mg5MSKzoByH0 +NCximKmfibi7We5NAXmVWnlXeZn7PZguzLiXX1JWqajw+WOmYI8IEn6ivDDkJX6D +lEJA3L7Oh/E3yqRD5KAUqa5gtX3daas7GPS1HB1YtACS4veFswIHWTyMbIke+ead +UFYObtkNC1OnkwKjlhpYw8f0c3pnqUc48HNTAdBbvDcwUcopsA8SEjSJDtSdwRKK ++TdlWCixYL0tmwj94w3k1cGwo4EgS75IFH0XlsSGcxGRzgmJsoU32YCxXpjVBNNT +b82LNRa+4zJXFKpfbsitYNhnN+yP9AmvkSe0Zqscl7PDzNWsHbVfOQoZkwydarBg +5TPS749PjPTDOfQBP7QzkaEcQIusOeKs7aKUOpuPAMjmjYO1fF33p1pMXOAt9aG/ +2PTblUoL1YPu9KsNIhlzm2ozuMamIkfuvs5qXhaRmv8kPLuI0/8RJZhZ5WLXNwm6 +/fUMs+neP/u5RPC1L1VhPBVgMQ8nEEduUZQA/+wF6SoGI2b865CHlw3BzWSgew/F +-----END CERTIFICATE----- + + +NCU INTC KEYID 51C73CBCDFC990AA677417CD5F78BA37D4A8D731 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAS/nxUEbCHUEKAAAAAABLzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQwOVoXDTI5MTIzMTE4MjQwOVowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtNTFDNzNDQkNERkM5OTBBQTY3NzQxN0NENUY3OEJBMzdENEE4 +RDczMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPbp+JV9q3NPjGfq +xBx5xXxSgho5lm5mw0BGilTRRJvIyrdu7IY66wmgAuQIXHNC/NU5zHSR0oe2Ctre +dDEEXSlZU3lVXMvmhKrGmgM+S78pwgKbuQm3EbVflk4eCktFHfsLyyOjm2tJEG31 +YbETECH1gPndqoW2tQnF/t5ja78RLsKJNVZQ+Ve4ZHH/lyA7D2VZzSS+ycMOAFso +dSRnFAUgkX+hosY1klxOn82TY2IlBoWtwgh1Q/b9fXGc4sLdlboNpRrfahiaFMBa +tgvmeh8og+yn8GtUV0HwLoxO39nQguUPp60C728ZvEDVbPT7/e7juNFHgcqyUoVp +ZSnKcBECAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFPCMkia2Ud/OlYLqKHNSOGPlWze4MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAFNSQ +jAfmlQfG+y/VGBKJaAvsbEtZTgzOdBeuNGVHNAnLsIu3olfaWKOjxMjP7fr1r8wd +7CGaJnLiF7J8DXgovklTdQneFUPzKWMqE3cvDncf/M2fdzk/pKMDkaojYo08b8UT +BAUTpNlFC9ONphHzc1NZbfq3AxNLt1/8NHvTEh2mwqc2K/Bp0aqmT5l75IZnV2mb +Xn7pQIS09Ds8zWCywkA4IcviTKuQczYbFV+ZdJzZDqyVNVQLtShvHIbp10m2FQ5w +9RpbavrzwemCoi5jk1TYpcR6EfqcDd5AUP5cZM/G2lOax5UA5vrK+8JlyZEm+ZAc +PQ7hnPrB5KAciuKvEj1HhWlDF5MlsoPauTNjN0PZ+nlo8xgi9ku7ZssSD+U+Cisl +zzp5seXb8uCq+XMf1nMUF0i5GeSI2fbpt6RfhApUoRfnumsSBtZBcfMO8+f5X4eo +2XBPw9rQfj762hb+J0S+yUXosVGyNTpq5rbmMUGA3q1OoQv8HSVNXWgQlSuLQs+5 +uG5sNc2zRiHbUkmdbyOKhu4Pzv8c4xX0jhNOplhEqff/+BrNPyESF02ygfGBJZVS +IUebi9EP32T17hGh6SlmF9cn3fLAZDANn7ZtGE0mnGRYIFzw9oC+FLKjyTukgo3K +b3V77ZRsxTQUUrMX7Gniow6ZiQhCSocMQ4eIcqA= +-----END CERTIFICATE----- + + +NCU INTC KEYID 51C73CBCDFC990AA677417CD5F78BA37D4A8D731 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAcmzQIF4ABKnmwAAAAAByTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkxN1oXDTI1MDEzMDE5MDkxN1owQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtNTFDNzNDQkNERkM5OTBBQTY3NzQxN0NENUY3OEJBMzdENEE4 +RDczMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMOnqgloyCLYm13P +/xtWEEY57KaA1o+i2wrd/hhbeOUOCYRIwhSoieJ0sNEy9HQVgYjZVGaZZeIP7+PG +2aPJX9fC084akqgQJE75wKnVRsXaphaXEL46Nr5ToIpmY4xmFIgw0/OfufknijJW +Xn7wsVI+jV/TWyEDR4YNfh5bLfqXPEwUFSYZmUCRNrNJPsjJ3T5GED0ZmjK4g8XQ +VAwwF0VYr04R0+w9xddhbkgshMYkzPFnP8MexOrY2XiAmAdqKVlBZml9WHHf0rke +5PwPexSVm8WzdOiaYAl5GqIeDWFM4ttaACHvHSOODlrr4kjRyWTTial7JIMoX+3u +bfb72gPpsWvTRHPoDfMPvHZKa7nLivmMrbq2XIZ+OglOFE9EsRC8+ICMBrYexmkg ++2X+tVnB+FIzQsYrzrqcvQwBUg5N7utvxPYAlhZf2z6vglBn6m7kJ5PjcwBC8uBV +Awvi2+Em9VUwgeRPtgGGpfXjnPZ7OToHTL9r3rfAeiJJl8pBxzS1/N01eEPt2pXb +uqCEh8O1Kkp6OkNHM8mlDLYE5VprXtY5lsHfnaIEdHFo4s5dXDbODqXgfUtpEM84 +s4KbRTZCkmrJvE+pf2b10pvXoK2ghQ1rRHydwfbYxpo9HvBokDWyNUHkREcqvAK4 +pvHA/xCkIhFpRqjdqiFs1t5eowvpAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRGjWxudfNm+UdI +wxPK6xlumF+GGjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBADLIYYNIiUZuMxJPTIK5qDuyWbGteT5U7toQCiz75Ziz +uxAM9ksmDq/o3UbnyeCJfWD7JYfYGien8afXYHhAP6i6SXFHj8Pj926LnQZn7ItE +OUeOsiMgiUNQ4KtsCMf6zd6eq8iL3UoDvlcyZcZOt6AZ4XHJY2OSpQGiRycrMxkb +g3WvL5lTweTSMZ/X2bAS/4SsYMAB1+HynB7OY8aeiBQcR/+I+b5KAqVmN2YZBaoe +r/NEImo+5u+t0My7VvH8Tsd41V5xSw1+v4ZOZ5YVXGGpk/gkPq14IELRPg8XojFQ +0xx+u69Yig+tRqrMS0M3bVoS/l++58QApNRqAJMY55K16r4O94NXzXfQ6oODXIc0 +YaFcphSzjgSbacpdYgYEYUNHTooVeujpSB6MRjdrj0O21rdoguCGLu3i6N1m9Rt2 +Gwv87rmmf30xAXZZUrkhI/w+/sDusncmdN3Ez1krbBHCYeJmV5c4lqow5W2A/dFt +iybozZ95ny51dZPk/tR2JlowjuduxSv7Txs+cYjAuEgic2oNl9omgTnwAgqOaIF5 +dSM13TFmaKgBlcfTRfJFLCF2ltOSyMfbaiaoImBUlg+M4htor0wTyUfRnrSd3djG +UDDX/YJ41c3xGoFW7HvEf6pEXohNw1KFCmO3vNf1uR7qLiGBB3obLcenTyzUNqox +-----END CERTIFICATE----- + + +NCU INTC KEYID 5E73C89AA3E902B272B9F0741F7D8730E3EC724A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAG1RgIPNu8TG4gAAAAAAbTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MTIxMDIyMTg0NFoXDTI5MTIzMTIyMTg0NFowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtNUU3M0M4OUFBM0U5MDJCMjcyQjlGMDc0MUY3RDg3MzBFM0VD +NzI0QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKxAMgQASvjtrfJ4 +ANK0RihfMjkVTy2D1ZLi0aCYcRRTf8too0fGPY42SnCNTEG65JndAhhQfyWKc9YL +pRNChgwLCibFaXYBPpXHqFuh79YmftSlGqEz3mZn26ysf1J11xwPAX0W0gQCWNuL +Ea4wGzkuJCuBt4Z3i+z9dGRXuemFMEBtgXXD61AI5DHZtnFCQR68+dT85T/6wxXM +ARwUylWuBOeIgv6Lk/5hZlCTl2rOLt2K7Z6b20WN7eZIwAkV6dAbkMMkOMBBV9Rd +tSNI3nqQRgNHgunRMWM6XBOGzSt+pj/JKZIHxRyn77uCYJ5H14iDCgq6S7v63u+3 +FHo1tNMCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFHwOaU7LvhQ2+GeDDi9s9TNkbxFfMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAExS4 +TiqL+cT6/ZfyNcwNnrAyZm7uKoeotFJZ71H7GrkIgiXpXDgRgTuTTySvvl+HaUCm +q+ZIKGtDKCYi6rMCqTlU6BsUsFe4Jy2mX992sRyxuUF9MpY+CrT2TeNwGy1Lif6D +9QeFrk9Ug3XZb4wBfUdte5eqgRMBfqwyAUFv512wKrpJdTMdG/kmMNkzCT1LNhWl +im5ZoepUA14oMM83Xav0wumykUygXPSy6VjS83PJ/YpUWDrWSLtQaROVPe0FQQ5G +KLtj3Fd+it3qU5uBxDwmmsEWMfe5c6w/uXGE4f8G2awloaesVgZSsxflp+AOKQhp +Rv6CnX9P9HbZbVPIy4bQfM+jpZgOcm/bLeqeAS+XqYwgGe1ZEdXYIX8bszjA+rHt +79wFfSk70+u0GsCWZiAO1xkTiRAIiboKKYNd4rhO2agcVsZc/XCsgkFhnm9KfAEW +n7X5YyAg83LYYBsHJeafuSuBDixdIWle/BVuiQyOzIShJfdhg7C+wctXITvBrEqv +fDB2uCD2P4cLoaIlU9+QoKTHij3ZdIitxj2/YkCIgU4HmmfHNYRA9Qj39xqGpeeM +NIdibCE3YPisQvPjqIy+U4RE1HJXfmFt1mrDyDu1rr0g+0gf8ZoN89h/P5cIWPfK +TT25RoVSNUl3CjYbNIZ1wDlwiD9aPq1u/3quYWc= +-----END CERTIFICATE----- + + +NCU INTC KEYID 5E73C89AA3E902B272B9F0741F7D8730E3EC724A 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAlC+l3/zUaemXgAAAAACUDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkzM1oXDTI1MDMyMTIwMjkzM1owQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtNUU3M0M4OUFBM0U5MDJCMjcyQjlGMDc0MUY3RDg3MzBFM0VD +NzI0QTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANPm0mnZbAfOoThY +ttvnKleg5wODxk2SRNE6TtTh5u+zdG1e96sgvc5kSfynYzacT8DMUniMBeR35ehh +/ncDVGH3WGgt+Fa3y5Mo6Xj8675bPpkE8xXi77PsYZI4NtKudeVqlZW3RT0XnKek +ENLbBtFSiHSqPX67HkYlktpPvBLeKmLnbU2DzJmdT2YUZf98RGj6HAawvuVMEkKd +tFyLO6JdlLHTP6+TFNIhmdGNQ2cE868CQZ6e0KBVs/eoQ+ZKrnSS2ZEHpsVsAYIz +JX+zyy1Sb86+GTs+SdaqOgCJXSkAfxjneAX5aiJFnWQk7q4sRHoqPmVMktAL7qDn +5Hn3EJYI5fd6eaJXGtGrnIOgPPJPMDO1BDVNSYj7ICYQuUGP5Tbf4ZR2QpvCCNHz +7V4pLH4cUTPBxBTre3weTVbVzwrIs3zEvHoj0dLuv1iAqpRFvM09HG5Udx76K1kR +kcOqwZdI3lpO/5EuvTnA545FKh9FNgQ0qGlHwgTR98H7ksOnER6OPkqvV2agYwaB +XrqFdccTG4VZ7OKNKXwtbcSZZgMuxbFga519i8H60Ja9mTmX7p5s0E0lO9Rcu8lw +Ih7SeVJoxKJb6z7osgj18Jxozx+vGN4VES+h9ViCvutoElIlfb8lYhXSBHs/kSNl +rBzwmmWpBernDzL6MbaiQLYAIFfNAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT2wqW3Ib0xl/Na +hoEBBdB94tlM+TAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAGHd7ZvIjchygqN5sRBMKApblLtFvqfgVQtAAbw6q1DN +KB495ZwxUmm5P+3TnvslFJojoDsAxQbFxKFrQDBugjsZygfKgNYKjdDbDPqYmFBM +eNQC1BN0AvJY3d+QXvifCNqHx6GHIGmDoIHh6qo9Xq5ypZwshPFgR1XDR+UGNmui +okRtY0CaYVcHt9ygKwDcmA4X6j8W/F9ifjhOZ7r3YY3zatS6SSTUZRFkV5FQdnC/ +fxC8763637mzlYI6ixttTMx9IkRGQAr63sVOZzPgtc1E0PjuFiBprqPJEtvwAAe5 +UXtvAdnAe7BYU1rlZ0MREFsyiYxrIUI5QhRi3AKDFAWF5CxWkRd6Pv2MqiHscysm +6ERfUMZNTEvmx1L6PBOS6ZBLrkhp0YmBYxH+PAFo2FpZ0UUt0RZ8WXmCllXd2Jle +dMfrAjc10i5F+Kr+M14tmYszOeoufy6nTGGl8iuCOdIDuFRjNPlcFHDHU/7+Dj7N +FAvu5EYC0Jsgxd5IgwLLy0s9a90fvMO6Gq1+4/MvpzdjMWQzhNnwgs+Rrjxzom2G +zqS2v+qdQoPSYfwjCr3Gpwoy4M3hBHXQq4uOUMCHrke0gw+sqtoN6K2T2/zjLj6U +hFU0e3iwXI1QhySm+U4zqtri1tF7PAaPg23/W6kAQ7Pb9q8NYoKa2NEg9pk/o46B +-----END CERTIFICATE----- + + +NCU INTC KEYID 6CA9DF62A1AAE23E0FEB7C3F5EB8E61ECAC17CB7 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAW/BfJ5U86RK6AAAAAABbzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDkwNjE5MTQzOVoXDTI5MTIzMTE5MTQzOVowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtNkNBOURGNjJBMUFBRTIzRTBGRUI3QzNGNUVCOEU2MUVDQUMx +N0NCNzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANtplkmh3iVKauvO +w1a5PE6IDzZxtvWEhQBIiuWaluYdmn/LtyVQqrZchVT0JTIRzklTcRDsIx5OOmKR +VbHpNOS1FCNL/PUkpUdp7owNw5X6X2AUesqfHYAYgeQhXIRHJ+4dO0FGan/rT5U6 +PL/8Z8UcNXioPYlK3hsVNHWGMxdV/mz2nM64nIdZq0mC2wSSIJHWQerE1MMwR9Do +Pedy8Zv/yVeRfIyA8Tv/9UmziFZyCUM1fumIXGaf708O5l933CtLGcy2Q0vyXrEn +UGzOZ8dv3eRn2Ruj+GrFNZ64auKGcB6yU6GP/o4mxMUDoyuTihGZj8BLexSunNC3 +n7jdZ48CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFCPDBmszHYFkhsNbr9NKz7OkF52LMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAftAn +cwJphGgrNaQw3aeGioQioUGM/wgkKR0a7vQlH1jL8UenjW6u1WGgHkxpj1YJ++xY +iuCtlpQIJslPXMk6gB5AgECedUi8jYkgQlpSylx4YqJOG0h3csjD41sJ613bpclq +WKXEWaBoZtqiHGI/lhDphN0SctBbaXkkGjXHX5qhHI0Puquiy84mCypQtnA2P+et +TnGdKz9d9DuwlK0ZkCa1tx5X6IeIryNIUhpk0lUWkQr+SBEaFZLZ6RJZM0lkADc9 ++jyhrSo5hnH6qmngptVv7IaIopdMMshgRTZQM6Z0BzSJ0BdKqmWq6VDmzS17kCKs +LnBHlEhfXWAt5z7VQ+I0l9koCpHermRXdXuDNSB4nTWxkA3WszQHZpYjphKr5XqK +2DXmdABseT8CO4mhTrFHASticpFmBKjs2HPf3zZyjsDbxSGvknWiGoVyP+ufK6mF +BEwAWRYn2Z0DyypGRXT+tfps+kswM4zCTSlykGM/MYErNqK/4CzH/A1Ah2saW0eC +2Hn1JtvusgpSbVoJ/tA9HEtuA/rMlHVh54StDcmTFr9n5pd+bUpSW+/J2tErm5Jv +QBQ04nVHVNO/nYVH1sGfhMwQuvVjGmWZAalEO4rbKLSrFWBMJZTtB/hSMBoHTUlN +LflEp/cOea06cgQnDK9u6fXtT8petuqg1QB5qLg= +-----END CERTIFICATE----- + + +NCU INTC KEYID 6CA9DF62A1AAE23E0FEB7C3F5EB8E61ECAC17CB7 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAnFSIjeDCns4rgAAAAACcTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAwMloXDTI1MDMyMTIwMzAwMlowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtNkNBOURGNjJBMUFBRTIzRTBGRUI3QzNGNUVCOEU2MUVDQUMx +N0NCNzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJgra62xNaOjXZr4 +bN5QBXpX7PzhMjR5ER3oEj8HnLEil9ZcN5XM6IEymmmA3b6dwTQwQZda+jCgGYYu +JE1+MIHmfay9nPeTH+8U5k4Ekns2ra/T+BJ9U24lQ5OYAHmwplf4HwOb6zWGCGnU +9O+qKV63UY8iwXt9uzCVO2PwDyZsrMjeRj5iUKMgExq1v5yL+L5ugTjEMhBZj5Yp +rO+IQZEAXd7iddC3dFWmXfcXJ6eCL0lxGmbFZNSwIo9iaQXOwni+yTFmxxmh5gu9 +V7xmqyw3wbTQrPrWwiSUcc5Qn3yH9/YzCsLM6CwhQLc/0eFIw8FHZa7xKtlc1nXH +ZUsqkZG7cZaKHD16n1aYKVNBUJ6lw2D/hyJaoUWtSsaTYFUoZIC/hwsbVpWVEme2 +bv9HL+PwDkKJ+9PdvyKdmOZ5wymUsNuGPrK1WQemb1FV3lXaYDB4h2N3PKrsIimt +E1uMHNwUjEfsdQ3R+JOCTX0LbY4rX931mkj6mCRrTa+F9+lN4Xs12RAn2iwHYVkP +8QcPuszjhLV4PtjoVC2O8VbR/v/QLVjy78YfNp+HjhE0jjp+UXbnF9EwC1DCfPjN +ULsMpntZr8nU76xNl2t/XKEl9tH9pgjmmQ42b63UCCo8sb9hghwzsiiBLrMYLRoZ +Oz1eBJGVKj8x94h+Bc5msRwaVpQjAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSTk01CDrezoQJu +enEjBhBS6FhYszAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAEnrpgcQWYMyQx9xsAkQ0ZLofNzsF/kQ1fb055P4jV2e +oN6xoHPJEAvklxXRPr8mmV+yFMqWGKpVZJtseMvyle1H/EeV9RLem/Y44nT1r8S7 +eQLUdcHemsmFEOirlf/WxtTFQSIbNxA2W/tfNI1x63eTTgH+w3vwC0+3i6ffY6zy +5fwwfpIBqm/YwxoJt7IgxV45IQGlM3k/BDUkw2pFF/RKADRdLegPkOSiPSBJnJML +Ret7rM+i5Oqg6sEjvUblfgM/sg/g62fLSiUlkl4re7M/2JaQx+D/eYQmPACrH+yo +/quSdGMr67r5sIfDoDMn/M1MFr2N8MQCdMHTT0Y/DiU1quDzh/tVjppjejsAYNcG +ysaJMnojwhGA14H53FXgGhgIyMYNaSBRCCLGId5PoTynafbD8gV+RRc2Tqa5/WuY +pQ4Ins1RcRI9ZV4JJMvogtPmLdEDZAWfQ5gaX7x9XI37Pkgoy3RZDo0IeOgT61Uj +ZRj3lcXXZBYlkD6tT3vGP4jsUfJa570pzIMOlkNsWHvSndj7IMFbUgNrx7Sb8wwX +TaLn43hII15pqGYjGwDLaBPUS7GtJkSck+RQ13n6ozH1mwIPoDF1SmQrdyUaF2C8 +kJvTuaZ7+tPywXpDnyNCIZl66aC1vHL6RqViH6VUfi1qpN05ZJcXUS52+ytkycx5 +-----END CERTIFICATE----- + + +NCU INTC KEYID B99E979AAE48774EA2EFCA9BF9AD5B04040DC10A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAQuxBOb6lBJcmQAAAAABCzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjUzOFoXDTI5MTIzMTE4MjUzOFowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtQjk5RTk3OUFBRTQ4Nzc0RUEyRUZDQTlCRjlBRDVCMDQwNDBE +QzEwQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJLpBUwCrqB9QBu7 +Yv8iHZlMmgOcMSZLgW8Wi8zNVcdiT3hl+s8D5oaLS/yuT5Wzk5RzOR1dIi19I0g0 +thPnS2h0EKtkad7pEh2u5/iUHf4g9C8cqnOWJUaXJmjZzvPNdYUWMMAOXRvFuSrf +HjVQZdjKttIJr4IP9G7c0R50JrW6ip0TiDv2rfqsfLOO0TEo+V27R9Cnj5qdWWKs +ZkZPDBNNic0A8K9cYkrJ3CxssbmATPLVh5CgBdH6A31iYlgXNZH2APk9WtMN91O+ +wjtM6O+oC2HwpUzYQObw8zG0Pb4dV9vY6q+k+5rdmX51mu5E05cT222PlmSGoBfq +NQ35hdUCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFIagI5wBK3aq5mNI3LLOkhN/3yLUMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAL8bK +n8Wabbx+B/L5ogl06DzEu3JSVDAZ2QRKecbCwPnIY4euZQ65KJ3GzTZQkDrxxIlx +umwfPgOn6l6yPDqr6aQQUbWXSrVUFWlOaClaQPVuhwqFK6bIhE2RJ13hrpMLBKr6 +mq0Mi3+63nnrF106/gWMgn7Er/sT4954QtJ9Z61o70rCrZOgI17yp1MXOz3jjkr0 +I5QtoqAAzgzlTegZTh7F6Ghx1zxcsBIiRep+CCyCJqMbeU19Rz16AsX3YOXnJccT +8uUSvc1OZv7kGrOe3XCP0nObymWeLfZL0avqKV+S5skmdYG1JKQ77I9/miFhgre9 +T2tBeD4NRta00aOo0AXXAqmjMW6umX14fjYx21ylRqLLX0K7TDtzxoWPMfgrGgDu +hH5IQB2i6iql3Dv+olZ88Urc26OKX4ifqSnXfUqDB2N0SH3K1c7K2lsHvUfwkxyA +WgsDEAnSNHq0HkmBbX4fMma5WqxX7hKvaa7GBUMZxLVmyvPjWvtJ9X6wXn8J7qii +a1ThX6Y05kBZTGVndy0ZxKoIRvgZQeMuP9iABVDj6Wm9CLOtey4FLfzXxHC4+tA/ +A/SjTwJUZ2sGO9QX4+yyJ7x1qPk9Ac+6mluu8N9uGttU7r3On1rDUOhotGklGU2v +nItRC8vU0o0ft8d1HZ4v/pYqjtpB+phhjRpJIno= +-----END CERTIFICATE----- + + +NCU INTC KEYID B99E979AAE48774EA2EFCA9BF9AD5B04040DC10A 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAnUxHNIhxsXScQAAAAACdTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAwNVoXDTI1MDMyMTIwMzAwNVowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtQjk5RTk3OUFBRTQ4Nzc0RUEyRUZDQTlCRjlBRDVCMDQwNDBE +QzEwQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALfAXMtJ2m5Gkr1v +RDW3frkgye3ABds8o1qKcTn+kqkL4wkb24BwLGrPZUnyOBESVlgVX7xhonJ/sHKa +7HBqdi/NYvbbhKJ9h3xr3cVTsRrUiDH4THvrr0nG1Iv/CZBAiaZRAROFQ7EBd7u8 +C1bWRthH3cd8XQWdONEGLlze8Gf478Jb4GgWSegno7xqJF/lItFMPvQRe14C47+o +ApZIAP6ET2/bRYRl5UK3t0MtCBWd9/ZekuBUpOjkczp6mAL7amoDiPcCDtheUsJj +RGLLcKFCdQA+Df56bLp93rRkLoRlPPglQhru/NpQZE5owz7l7tJiWJlH50w3AkpZ +VE1t/7roCKafNgk4DBw1asSDIk7+KhrqUijmIZFYKsZpfdHRQxzVbNyICukkN0aE +HCjPX1M8zy+gZi7GwFamTAQw6olyAyp3UoBEW9NlupqzbWG3HqYynVuVwI4ttdiA +t/X/c5A9kgqE0iukSw2wjs9xB4qREFo9yfD4kr+yjd25zRELPhKYRRBOqxuPedCr ++lBTEuTXilvvGLVe9+y0fwGxVT1yiBvWwi8FBoG9qJUyBzEa4FaEgpcbCk2FmM94 +4z3qKBBvnGCoLL8gM3ejPQIo97GwNdd/XtD3BdxLRd4mKnCY2He7oE7qwrzWXytM +xobCuR84kWarjW9Tf37w3kNHy2lXAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQgZg/WgfDgm7AW +sHcoqrC/pgXDZjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBADFnL1ecraifsEmStz0g4jwvTVxiacNdBB/rkuDj+TGp +Bz/yNK1wV2j0niH1oFy1CS4uOcRd/n1xbbwkXw2GyH52/DBOExq5Dcgulvy6N7S+ +RjDJa6YvikZASrL1ZwcuJc/Fc5Dm5LpiKHSYA3G+9H1Cp6GKptoJqsWEwp5P/jYV +Ji2jAPZpQ7khG9qXW6m0cpj76d7nNgQPpWoc4UGfpjmVc+Of4wFntqkModWxK5JN +MQbE5WA1uQba92pd/yAvMjjyAhchatEqNexTbEuudsBVtVZ1hxSccrAXnCZdZevq +lfuACMwlZRF0mCiqjnUaUeGJC6E0O+wpGwZTSviP/Eus/BdEQ74vxol+G8DVJj+1 +GihbJUkXUp1F040aiQ/KKGPmq/I806C00fqNv5Np+32npnW/2D9MMBRW6Sikxdng +LgxyAA/q+U714i62e4BTrqEv3MCR+NJMLZHKuDFoqeHe73gJRnOY9X9MV6VP/N9R +lGNtLWEBX0zKVXXCS94pUIXMyeULFU0qGVdXvyMXaCQSabRI7Otf8vH1fLpzUTEF +5JrEGreZC9cgMabflgR3SbThsGUNjIse5N1UGwtyPfAlA202GGj3xLWZD3mqWdcJ +FXuw6G7CZnkQ/VnhS5fAaZnphPGYIYuMw3MNR5xtKbtUV8NdwH1O7b45FABkq8qG +-----END CERTIFICATE----- + + +NCU INTC KEYID BB9805E319A78DBAEFA888B45615957205179181 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAATBsqIRUBYt+4gAAAAABMDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQwOVoXDTI5MTIzMTE4MjQwOVowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtQkI5ODA1RTMxOUE3OERCQUVGQTg4OEI0NTYxNTk1NzIwNTE3 +OTE4MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPIfQ/gq0ISlYby4 +622t6LpH+Zkpcn73+nvd8o7GOvgpUT2NPQaQNsiDns3q6nvbXeEen+d+3ucDbMFU +aO+7g+PsCMirV+hvvtIPA0lTQwQmTfkh6LvQ+ajo/mTLIBL1HYDnwMajJk6mtMtp +wgv+eVJclAXbxlW+xLyz+bED50vqPUxgzXhLzM21lbojreC5G044dxQbvxclcQ6W +OtWqiNzGUKUhYuimjx8NzJ1ozsxjA/VMdxn10+BP/6PE91sqGm0pX+wy2o3HduOc +0fmtxiEp07vynrKZDK0F5zWAjmlwVUgiGFbEFzEDVtt9XYcVYkJ6FqfLrtwvoMSG +8styAEECAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFG1DkNmPqM0INpIYM/HcweNWqcNFMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAYd+P +moVgXHLw72Zt9V0BtlpBQVfULI5bmEPH8JwpBg9tXKlfgGtyui9vmOP+LHzSp9Mo +67WZ4Yc+voWy+LD+TGg1zixBP/VIz4VmDbkbpUO+RN/viMhJhKeTjtahYAlgHmec +EnenxlqYxSsw7Fu4qclE0LTb9/09Hu5kHVHYxxVeOMEAzVp0MKuQzDwp75XDqoaN +xxCHxTOu1S0YulqQLKLS+mk5F0uHNpuwLV26dXn4cQiWRjhAotn9RlZVnM7htVdw +w2gTOU5IVUSkQTfjErPv3Rpy6TDlphz20F4tGXE2FJowmodGeuexCM0VkE2nxJuR +rmcOcSJOCV64ZchzahPGsFrt9gI4TTUt3LSzadQRD2g/4sufsaKknluJmZISBwah +xfPnIwCBBDfCc1LeD9qQ0IRm+2F3G0w3+N44ZB2QW6Hmr+1aibFpQ+9w012GHSRd +gYDzl83jwe46LmVKaMYRI6ymdmorMQNw5s1eNVZ+m1TkXwvLcVZpYrXcet1bu5AK +ehM6DnFsHdLFox6bDinpMCzBHBZvHPHk5J7w68oqSrBlQG14BY8hpvj/Qysutp+X +WflmI/Q3gva400878ZeM/CEvZJ01HfL9ixArhcBBHqEyyWRP7E6jlkZ9H0pVxZa1 +G+7F3cOOs0BOB/ZseWRuyeGg5TJfDVyJMLrWKJk= +-----END CERTIFICATE----- + + +NCU INTC KEYID CEFE333390733C6727C7880DFE429AFEB557A892 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAATEdABsmHshNmgAAAAABMTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQxMFoXDTI5MTIzMTE4MjQxMFowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtQ0VGRTMzMzM5MDczM0M2NzI3Qzc4ODBERkU0MjlBRkVCNTU3 +QTg5MjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJeYp9SL/9/8Kbkh +CL/H6Egs5OsXj8y8JNWrwCefthA/olkiFRL1heqSoMBvtCq0AxiKjTb5EuSBdqNj +/1hC+gHllqRJX7TWJRVtB7lSsadEvnzFcUbdHwHiYfVhkz3X+dw3/vhNAJUH8RnJ +z3Rfu4DUs3CxivjRxUKpvaJd1Y3I92cwfLerVWzeVl6rQpMtRAU5/y54V/m6H4r+ +9oJ9Ce8yvnsA2H5BiWUzHwpUSIfNLlpEK5TC6Jvql+d8DyxfQLT90MStZVnccGK3 +ssqmsomxoA6/CH0yqE0N6OSJPIiUjGwzoyZgzDUNHjpUI5W1ipoIBXU2OSZJS7S8 +pZ7UtUcCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFNtCGgS8Z/Phu9V+ffPUmii42p93MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAkfvM +TYu+FU2dxZFzBu2LEEpmddcHaw73Pbo5T7k6drtoLkN6JNtdDgODAdprTY5Ev01X +LSsqQ1fPWF6+6hCYbM8DH8Osr+7CPE+lpWcO6dA+GXzBUlOD/5xl2hoa79zG2/AR +UHpX+Inl6XKHFebjqCwsFM7LRUcejk25bkkYZ9MbZHjXfIvXz5vT+t2WjO8xb4fL +R7fkOob31EEHU0GznrFgTDEFxRQ8eLmqrtnFagiuWCBCRXEPDto932nZu2W+H60l +g0j5BMTpE4i7XomeyXAUJkS66k3SRYMc3cAzhe+70Qj1fWXMtpGFFDrp+XHiYz9K +ozTIcvcumxNC1g5ovKe8H+eT8FQ7RYiLm8hCB5UhkSD9NWOLis3mEpBQZLLcbRDl +hdhjQwtGiu2Fl5r4uVTzCi28KPynXeSGNGdleEunZBovTTdPYfsrzf7IGqgN0pdA +nOaKVGmzHoACRJmX2TkzKE8rELQ3Z99xqnnJ5NhOWQOKxciMhINi6ZDrH7d048mO +3WD0pSLl550kOkPMaXaXHQp11cuP8WqrnBxTN/G2XnVvl6s29QFSJo2DXU0fKjUP +caTpaxEfeF56DOyavGDnQjBFvc8thqxf42xPz42QAU3uClp7orgAaF8lXzJ1bMwZ +wXEh/P0AOGfBeFJB/PHVD8fHqUdfGyBQNsajL0U= +-----END CERTIFICATE----- + + +NCU INTC KEYID D73CFE5A9E0180801181A1444DE36EFBF88BA16E +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAXLwMMtkh5fiOAAAAAABcjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDkwNjE5MTQ0MFoXDTI5MTIzMTE5MTQ0MFowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtRDczQ0ZFNUE5RTAxODA4MDExODFBMTQ0NERFMzZFRkJGODhC +QTE2RTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJQLD7W/nqygJ3HG +tT2pepdTfnsg/cRqtXM2oor5zy/DVjSXqfcS22URWBU91uiZj9AKyU0Fphhf7EO/ +GXk5Zm2AFRJDN6KvPPZeBNauW6o/vRbKQaUAXfSVfdOUzG+kMyGiOkaFsrgy+kQ+ +ke+2UhPDoLiye2t2G3fYEaXtI150M5fFdNMM6rYYD3xTqKebr34dg8ZzUznHKOS0 +MbfVxhK0oBuMkVip7xr5hUly2tZM0ovqT6j+JAc1u8V8VykEKeX3UqCM5tAjbskO +PkngO8JMeDhLOaR6GSGHj4QI1UoPe6vRPWNbZ63sQLpZcqaOd+s6dY8VJSjklXIC +BiJxUBMCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFHOclvrsyWMhihPNC/TTTjW6CD+4MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAa5VH +6WmfP+FTpUQij6Bh/6/ogFWIUxpD513fFL7Wk1JCeQ3cLCFV7/hqIcFoCKoiTvC/ +Ig/lugnPbAaRQptlU7ZA76pDQ6p32U+XPgsYU38+W6FDNmgJRT2Y3JlGdG/gCDDW +XRcMbjSL7flhYKnyn9lN0t8MKQ7l4UE7iyCr+3N4fAlEWdxpix93+0v824VqLg9q +suXE8ab1SjyxUBPy/ozJKovQGjShkcw9sDGcYWuzRTyHEbcB/j2guRWf22V8GuUC +gAfwp0JZSnb5hlC4fO7F5M8Fui7iXP6jtiWpSoIWbB/frHzndtkM6EGw3NUQOs+L +guQLCcKUpR709w7CnvmHE9AtMAB3ZAygmS/s/oAEf09fd2yiSzRc+fzUPxbYeWcP +EbPx8YCag+sx/ZfhCDXsi4m4tY7nyv61oVWu9m1vwl3akl8ZeiSPvFwXjk3a6OOZ +zE69lIFcPE6H9r2QXWYBkc1NbquJ110fHcUBImh8lpJifJ4iY9jvomes31B0vNva +btOwubqK6xCk8jfbD72xFSWNO/33UsXDTExLiyYnGe1TNr6G3+PX0WD0NIceI58M +Q6xbM5VXEV1dyLsOKXnTvTLsQmd9hdE49ORUmYV9fHUcQenHXBS9kJbTPOA+5Hp0 +rzpdp8olv8HD6Sf4P++ry4IPcia+/AMoJNddY3Q= +-----END CERTIFICATE----- + + +NCU INTC KEYID D73CFE5A9E0180801181A1444DE36EFBF88BA16E 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAna2JTbUaMfmOAAAAAACdjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAwNloXDTI1MDMyMTIwMzAwNlowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtRDczQ0ZFNUE5RTAxODA4MDExODFBMTQ0NERFMzZFRkJGODhC +QTE2RTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJPfjldq2YQNA5xn +0qy4haIcKujDbnoNvxil5lebOXRgBIvxg49YIez/dl7e9fhRd4pTsUr3F+cDFPZf +SYksChFOBGMzhKr3rCoe2oxm+JgjI0o4hNfpM9oh/sJ6M485LuiddJUtv39L4hMh +tNOVOD3Z0MNZmmEMuNjvpwlnfb/1zxqdy8z2lFJJ/Q2hwgDeLKBH6yy80eufu4Lh +Z7Xh2MPmN+c1ABTkBjv+2FwIKylpmsvYyDUIlYuqK7wMx+1oF7DzTsGo9su2l0yw +KOkYkSb82NUMFs4xZ3lisCwv4XzcBu2FMXwkraEd4Oxm15++MfkLrG8i+PpBQh22 +0nqHwO1ED2AxFilJgZ6DbL9dnuUVz5KpeAhyP0kB3kwVp3JR674gahAljiZASmSm +xsEiB6PcVcxZ5S57DMpoJPFhjhxi6ywG5ilQIP2ozIoqiF+sWfIeWcjQMODW0TDG ++K+gLvJAU49QHMgqp1qgvyPmPzvrUIzOlWDaSY+dxuPBy4ycGZPxthbiRQ1Ea+ro +jc7HDa86EZRsJylLPUDtvsO0ai8ehcGek4HWT0JhrEWGYQI4GrkDVlZB5sLP+/wK +kb9wH5z4TudviTnFCcmZhNNtbUMx0GjnnbKDPWXv9t32JHhK/GV2o0umk4JqVJbo +JwQjvanCpm6JNAd1ntG8YnkTCinNAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBS6gn0vRBrLjYG3 +cz89WTCcTtZL5TAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAHNlkd9mowLEn4xWPt7OQ6xy9ExSfASNRNsjfJfvwqPF +aOxx6/MG8R1qAfFerU+2gNZ+kA4ds6QdfZEtD72idjFTWEZwehEDvODVfjIYBRtp +vxDNiueEdiye/DQRsJhrdp+xRLo+ln2ZWoJ7kAIvXDgRZT7qc/TifDdKCROle1O/ +ozG+7FPpm3Mfl8S1XARzIfcwiD73g8felns7aSHC0iZ7OcK3AES3lBcGXmoLoEE6 +CMCBieS0SASqAaboIOb6c0RxHfkcCBF/rhnZm6QMr5NZJFIa/JngwXOEzhU+Q/2C +QiFbdrH3uXmwJBG6uatO1FoUm5TPE2WQntxXOJH58sn3orcmQuKKglPBOiTPUNCj +y3jlkc7fNHJEKlVU70G04WDH3BD/OAaL9UONhfJDnSp+J8F7+p+bY9T2a2lZIvkj +rxF3Wp65IDC3NovCk6rw7zosKHuk6NqB5iSrL+hQUVq5OtrAMLrZuMn1U1B+ykNv +5JxKyqO+ukqNZtT8p0hl79HjLRrkEOxn8Ggc50pZglQLIcVVs6Rds9l7uFHlLcET +PIufvMmeeECd4TbYSJIQHzynB+rn6+dgag48naGeQZ4UDysg/GDsLURCDBeh25zB +U2WeEox4EEvNSCRMNaWJjBXD5GJnYL9WuAdRcJL3uXu4VZKmkXe0Ikiv+kOJ6E8z +-----END CERTIFICATE----- + + +NCU INTC KEYID F99F207DFC8797BFF90D641D25FD5A45F76310B8 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAG7ciKpx0AvpcwAAAAAAbjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MTIxMDIyMTg0NFoXDTI5MTIzMTIyMTg0NFowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtRjk5RjIwN0RGQzg3OTdCRkY5MEQ2NDFEMjVGRDVBNDVGNzYz +MTBCODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxB/aFgRVKFjwUu +ELEwZ0jE5aHaydRVd9T4+KQCNkFEXw1CAs2cU03gdfz9209EiRAMJc4Hd3DWI5Ru +z9uSD8+CvZULvH7Er7GaoPq8kBG+d2TJtbHITGvX14++zuvzUAyXW6ho5vuAIO9Y +INWYaRdljAxUO2TgvxGZdy+bZsf5t7gm+cZj9DnGx+r2Al3i61zgDhyV9cix0ahn +zWEkoS75UvXIb6SWo+L0O5W/gNuWrAkOfu4BMXzNndDRWCLqwbNWV/iz02HUci6o +GLWpr01VFLGiH8vQL5CGmH7ubYMLTQ3+ADBWn+dy6Ef5ASCY0ZKJibOE3BpjThBG +sY2F230CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFPahi3c37UZuXLU0WJYyLj5Ok6w1MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEANQMF +hp2iXr0Xi7nGjL5dclOP5qa0d4xp738dih3Fu4YV6fzX9c1wY6EWTBoiTEUff4LG +P0B0gC++TFYy9zDAYOovoVYwq/iCW518DTQgIZFBtrwgrersWliRwN2+YYt78bEw +8e34X2wOOsPac5v7aGU+H+dbA3LSlmVW+p3gxUXm/0VWfBcQOsG30PSqF76p/P/E +lWGjCmHC7m3jYRxvQbm7YGeftCgeaaCwvc9+sSKzGqx9PqWCOzk3IT1TuB89+5Dw +vrNq7l2GFVAEj/lQ7sZJ08bpjo4qzj3VS5TiOhCL5Tw4lecyqATsNXstTdVL9VUh +NZdK1XhvXGvfeJFh4lEN/X9a4HjB4clAqMKV95JcuXUEpNNqPr0CdMqdLm2yA90o +lVM1OOWe31EZupBhNhut4HuKiPF3vb0ak9Q3Asf+bv/LtuzxGAun1cCzfpFhEc1X +cqqekOh+GjqZGaJj3j7yvLgPvpPW6ovyLhSANkgTGnQBucmc8VzaWESVCJgebMpj +QEmn8rAqKWakmyyzo4DLeJ7c26C80xtxhaOanJJVAU1hf5/zt8bOTGKi2LLxi7v7 +GhPQnL802iOtm+WaK1Tq3EPTAccVoOWKxLGqQs+xx5vuU9gKN2R/rIe0jZwIro0r +aMwOqCC9vl3yNcqVhRAyoOWPSY9A6GF/Znj1LQk= +-----END CERTIFICATE----- + + +NCU INTC KEYID F99F207DFC8797BFF90D641D25FD5A45F76310B8 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAndwfDVyRwdeXQAAAAACdzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAwNloXDTI1MDMyMTIwMzAwNlowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtRjk5RjIwN0RGQzg3OTdCRkY5MEQ2NDFEMjVGRDVBNDVGNzYz +MTBCODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMZn+BtLRnwdovRB +h8nF18hXaHvPyWkQxKjixtkGbkti0P7lCJlssywrzNyooEOsA1lUbC56jEVWamBi +WtNhVdIoYEPLPhKj/o+KjMdHLLDxxv6r7368Y37ubiY6Tz38+5lcKFG3vV3FCyey +nIomQ8cbKGsu3j9snHOHR8hTNFAkGKVU817OaXrFO3AB27zURO99oBfFnhT6IjqD +j98Qeu5l1SQL8A9HIgknvmJCKEMzv3S5TFKkzHQOXsrWxta4YYecgmJGXTG8tHTk +fevj28R4CRAuuldolercdTJ0XR/Q7G7ylPeXl6mx5bKtpfxPQCcxJbtEl9O3zBWu +oR0iiycG0dCiNQYvyeliprIWCB4NLxqfVuHcnhswsu/RtwXWaRX8O1Lnt8PRbEme +pctzFAR/CuNXcabEHHJ572Mb/W6INtwDcCq5EtwPnT/4aZEr3Z/NUm4K+FbNIkdv +vbZxUorU49aziBIu1LP19pbvirKACPnFvTUerp1mwIkbvJ1HDwI9QuqaRLqa8kpN +O1dy7VsoRJdf/TvN/RwkFPH5WbHVnBu8++hh9FnA1lYerMQ60GVxltwUYTAPH5ex +EAcPZh+RiBPHCRPO4f4Tq9+wqEfJhf9TsMoHzrVs6gGx7r2Jnt6/OP4ePBhhXrhO +6pUKcRk30BPnjdTu0yRy++Lz8QuHAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQBWj93xiOoarhe +2I6ZTUZEg9zN0zAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFInt7KNPgYXY9JE+aCsPEf5sFkjzO4RA+dkUntnm2nH +XTmNhYhUpL1s2ol4IuBgQCB1WOn25Z+acIHP8OVeZnWStS2Wc0E+jtOr4aPZXJwa +g0k8qc/rGPgSHYCbxHi9VGA/3Ft9BUF4K8fqxtP+sUkAKqpOqhEpUXlMzAlRGoi/ +yWgyN4ed3DfADPlhDC5TGHHGA5B1uzdhv4hvX4JHNg+rW4OUS2ya4C/4KrrpSNB6 +5CBRp5TMfk+XfoQs7IqI39hZLl4sOI4699TGmVt5YmOM1zFSs4qwB6wL7jJJy4Ef +w7w4NqGX4TpVHElWALwUi8V2mQ1kqqIUdrluKCC6XKkbLJm8E1+1Rw01UTI7pJTi +biNT9tZ/w3zPSuYsZfu4gWdgMhkO6IdORh7TiW03IO/iFxFNA0ZWNUsJaPChA/Y0 +oTODrCVwfKAjseZNqj0xaukvnPOZXvAqSSf+p/GsR+YLJkd2NedLdBdtbKuESQPT +KjHRDr+w1pNtZU/etZK59JfhPed2fYZd6yPCou/H7xAdmVSNt/Nznr1eInvR2bT8 +oDuLGqgqRRQByycPeZbbAK2XVpT2iYfG6pjVOEvlrb8ctPbVsYi+BlW6/NYjlxpA +anSWL/XtPlULxiEoYzzKrdxZwjr9w3x50tB+8W235TtG6cyfkVmQJ0T5Df4QDXFK +-----END CERTIFICATE----- + + +NCU INTC KeyId 0FA7B495048126120E12731606776F3D68A037C0 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAD8S5pSJztECMwAAAAAAPzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTExNloXDTMwMDIxODIxMTExNlowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS2V5SWQtMEZBN0I0OTUwNDgxMjYxMjBFMTI3MzE2MDY3NzZGM0Q2OEEw +MzdDMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPSjnDK7Zu5auISe +NRjmtu8nujXm9kGwV6zaoxQTJVDmQeFDyPz+EQOoh577KdSdXKh0eq7jUrQ0WkqW +f7EBDPoDl+5n2ejsSCrBEk5OsigtL6pQnHo6pspGOHvrFsih4ruP5xfLK0WUj7yw +IwATlEMFeiOYu4RwygBZ0ZdvSMGXRgsUjHCTNv+Z5eZJdiF7oe6kj1yrfq3jDSTK +peBkr0sGON9QzE5CgSVJNNyGPrT49PFfvwSExezWsXGewfcKnqMBCjNJ6Lg0kaZA +Ce+A4PdF/M1nHZY5DQgN/Jjm/2qgDtDVFsOS9wHiEUOb30tm9cV6ZGuAs+gj3xom +OkFAW6cCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFK+PYnsQkh19FFkltqAv0oJGc1lHMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEARjm8 +nN0MYcakDeAGDO40jbNm2F9SINVEKjSGhihir8i3IHaJbgfWUtqPaNQOZg27ae2C +8ohaJ034EnQh6y/rFnqZSi7+LXFN/QxuSvPkjYO+tVHUsJ3jhZB8ABWk3CWKMF3U +N++zfBWxH8QUg/T4SV/9pBLGEwme7Lc47JvEcq578VhMhHIQ83FLKejXc4hl/C8l +TxFK5nBdJQ6sDMyAs19guaTCr8aUHPCHR0bLorPUfstysEphAb24Y7Sb2NLHe7Gf +prCtamkprJYpVE/xnm3yQAq2+AfXa6reXgvb77egV2r8hIztNty4Ai4Mgzetcijh +7vJJTOcrogXkFlBM9GEvwzv1LpKfJwcxp92J4Nda50rEiCsZ+WrzTTsRfiUmMnL+ +yjW06FpJwUXcd2GKsAzKKsYo0uF1oyQ9QWWAMU3DjnhDH7mc01RHARhVGo/lJeTv +1pucfSSZJEjtOJY410+S1HU/WV2pJy+qbaio6WwtJ1A5zmOlgzalTmKdvAZ1bNen +4IVOre4NCsPjJazc8Jf5E+82cNQie7ThzXF5xLFmwDA+hQfO9WXDicPfsIogPD/L +me+MHFYNjG/tbhghJDefGnxVURtcfrrqRYEfMG4kyIIAqYAIn+UY5Riiki9D7XZe +3lO4Cecw6u3oI3/emAii7q53k/cYhiOoeouAzVA= +-----END CERTIFICATE----- + + +NCU INTC KeyId 14092B5F7814EC9B713E9A9B90A4C519DF08E688 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAEj+j7POBE6W9AAAAAAASDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyMVoXDTMwMDIxODIxMTEyMVowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS2V5SWQtMTQwOTJCNUY3ODE0RUM5QjcxM0U5QTlCOTBBNEM1MTlERjA4 +RTY4ODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKqQ8LurxYzB7Chs +78i0caPu5Gj7rOS+Kh4Ozpz0CRgjqAN7wiYrmqbk26MTDWW/dox6Jbqc1KWnrG9G +NiyM9ayxALCpy42l1evbi24G5yZAJpFlsBqN/+mf0YqeSQ/9ZDJqC8lri8Y9Fwoj +S/a4qkXnCOg28Cmg1Pp6xz2RbFfwZ6TaZdRJHBNTANu/A4Ybxrjw2EUm9SzHOZ3Y +fujcFuqbRebHI/40MJTmlqM2XAf+jFzie7B+VUWuoHqkqDAGYVsPInckkIxGWVio +4zEnzyxNR+73aoXZu5xA1Yx2ov+5Tgqp/huPcN3/x4BT2Jgo0XPYFpMrVJutuv5Z +ZwEgP60CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFDoZmoCDKXYVZdmni2DSSwdaLyWiMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAfyVe +OyEReI/fQ1jetIPfj6UyKWYa5FhvTJK75X2905+xe9Lwk7dccSER16hxixzEyAZ0 +slaoq557xPdMVyGcuNvlfDr1HXdEpJqhOk/4hsJAfI6VewX7hTrmWdP2mFkj6V2Y +XaheLuk0PE0hqO0HBgANcX4fbDGgLuN2j12B1lXuj1M3mPg2Ny0zbpr54jWEdS5Q +AV4mz9XG8MugUvePKQrxvZTo73MnKvp+WjzdyCIi96FC3NKByPK918F1TsM1pTrt +1ibBGImzl+eU8itO3tPtrbfIHGZermGQhZE3J4+0PvKn4KTUMDEX5MPwFlJ59gmW +U2oldzJlflJikQuIeSpoRL1st+R7FDd7o1If2bBkqE/AkOD+qiO2olux/HRWpDsh +EkT2Jsw/zwnuoi/IOGHfJ/vwWu9/BWcGcKAPv0/zoGW6bu1FWpWMNcD1wmXqaJDv +VuT9K6YAqmMQh/qQHYR47buG2BIbS67iTNL1jEH8o6fceQkwUvOsSkQ+80yUew62 +vtOVNg/Zyi/omSLhHTUvxOrMOcgZpikqs7DZ2b+ciptli3VG0MX/WGk4TIkM0coJ +YqMuV7geB6ozLpADBvHTfGgb+T9pBH4REHkAIHmOltL5u2VrY8RR3Tb1ql5sqfTp +4trtQxcnpwRQ2V725EO/vDD9UPdWHZ3hgAxFARk= +-----END CERTIFICATE----- + + +NCU INTC KeyId 145126D0FDB53E99907D6FC6FF1B90455B9E324A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAE6UNHOT/ez2VwAAAAAATjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyNFoXDTMwMDIxODIxMTEyNFowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS2V5SWQtMTQ1MTI2RDBGREI1M0U5OTkwN0Q2RkM2RkYxQjkwNDU1QjlF +MzI0QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM8eUcrNMrR64+aY +MNVcqQAb2Hl7xG30kJhGvycexQP8vd5KGASknG3hKxcHLNZJeXOK4w6FMtdxuZ6G +8OJVPUc6PmnzvqtJQhidoW7XkmYmeo/IvHZcS1QNq3QK7JJ/1lZE08IOqJ1LAngm +2/hUGNDqYnQCsJ+btreolq703IsKnbCzOtTxjhL+EB6zUWs1UwlXjngp0Tb36LL2 +EUjX8wd5Bgtdgvbfnymgax1zS0n28zrnAAvb0wKAYvaxnmefVznKOeJAMeZ2YqbL +Ov30UPpP4n27Nch+y5ayeFHBjNFuQxhb8ReejLP3dy6fqdGyKnA5ddE3Ffeb8R5e +eak9c9cCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFGlTxvGRz0Do4M0b2Cvrshb/HW0uMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAn4E7 +lLtZXhLjNMqp/jRrw86s8UWVmSlg/NBb2GSLn1dBrv5/TgJTZQayHXd5zg+Yg5yQ +/YhME7HnS7Y5Q5LRAFDW3+wOdK5GbBY+dc9qD4E/aa9dmSOuwjiAA8Ez6nAdH7on ++x/UkTQh44UevIyf92nJogLl5HDLLD+rgXn1sNUxP9Ep3DWN0gdrH+9sDIw2lQ8s +Ng8l3o55x3hGGcNp4PHTqK4a3wIQHsZzNU0dAofES8fPiV6DXzPaaFPIeM19lJaA +swmgWrRJkQcIhhPiqkSQ6dUDJW9Rb+YDvKGhLMX8a20aQE7eae13IBntFglFjAtT +7VitTd68SBsAcU4+Rt3nkhnOwOnjMH4PcfRCFeax0Mw1dttovHVVtOf0plZALF12 +uBAy+GXaO8scEdUvVpRT+M/rUkNEFbvl/x84j1j1+nZwQK8Nd5/XTAvglvPJsQL9 +DkJd9HtysrSClNlflR5sRsBZh/K/fpPC0i71Q32ysgIAYymJPOR2sedU6a88Mx4G +EuGEUF1saKmLK4YZAAlcfZ6Uy1/W7CifLEjILBQpopi4gEI3Rq8AioF+AjyDVCwH +rRYAhqxEXopkh0+90nGJWFYlvN8hNp7jerrJM9VfFyTSmwjchzEQWrWS2aSaOCoP +enae6sb5QP9SpIFDwAD+rYyS5rCSQTO+k2aXWj4= +-----END CERTIFICATE----- + + +NCU INTC KeyId 4994C129F1A548D488586F22A2DF8603739B3BD3 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAEV15H+k+1K02wAAAAAARTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTExOVoXDTMwMDIxODIxMTExOVowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS2V5SWQtNDk5NEMxMjlGMUE1NDhENDg4NTg2RjIyQTJERjg2MDM3MzlC +M0JEMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJtnDiAmVf7HUNSJ +tGxA6W06MJY8OELuyDCARV5yVuHCFLzwHm3VQ307CIrdo0v28wlGk/zLmsisRJmV +GOOjDEzLeUNnoI5vi+BSkDoUBY4+IW2SDS9H7IycI9E4YYGgmOzQaY/HJdDphcYH +4nGetfF07iJ+jJx56vsKxvfVqDQCEGUARTWsGcMuP6bHkOkKzXKeDM0c6ROJ5dhu +t3Aqy6Xu6uaWNlvbToUPzimp7OG6zY9eCFfK2bwcC/yf45UhoSACGlOhHFxK18FA +ixDq+54VcBytrP82CWt3MDpg97JoEFJTYb0HtEmfMFD8kPDDUyVYBy3cJ9SoLv9g +agWm8RsCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFNDbgr5lXh8vqVks8BBJ774J/AzXMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAJ5nE +b4GngVmrom3JCvfubPqr58hQl0tppQS9aaJPXhvXt9Hpy8aBDk9KAUSDbXkTCYa0 +/TTmOxmjspdKDYdw4DjGV+ngp32PD22DHskckMQ2ycKY5yhbAwVT9QkMTVAXRlNE +4tTcQ/1hYhA8X9xa0g+ujpawyiLnGmHpBvHWo4p0GssoKuYvu/fJvGV65Qk+5Ge6 +KesGoDFFB+PT+tXy/+lXovQMk2wyGZOweuS126fDphUWfkyUtHynbqrkA0SvaB2m +vtYsRFKcLYmDmcVVxq9VeV/ZhQdwCT0l6gw7ZElO8f/0LuEMzPr1CCKKaEVgJZWA +8JJhojKUhHFj2gwCbzMviLfKZtDLAbPj41j/N2yRojkr1gRR+BE+R9mk+9r7eXUc +0dCm0VC4tMu3hPwnxtfEGWxP3rylSXWv+7MQqOrEmLQnmmsH23FtZ3zY1uz7Hc22 +ob5H9YEGNifAyeKzhfYPQWehF3pW142uPrpFmuy4dMw36IDamzy6jT3MbxE9K5E4 +Tfe2p6scgcaxu04nJtfQVeO5wy9+UQhv5YAp7Rvb1MPuakMGNRvzb5BjeVO0bnX9 +NELmqePKP5CExyV+OeCR//0OgYeyAKyyZ9VXn6wLGB1SG5JLXKtRmQqVwqXSeFN3 +p0Eg7EBQdZEOPXhRoejbPhr7uNB1If1HGKHHTYc= +-----END CERTIFICATE----- + + +NCU INTC KeyId 72750C52CA3E250E701DED65CC69204494A8573A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAEsJtaK/IloASgAAAAAASzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyMloXDTMwMDIxODIxMTEyMlowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS2V5SWQtNzI3NTBDNTJDQTNFMjUwRTcwMURFRDY1Q0M2OTIwNDQ5NEE4 +NTczQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANkI6qrMDZto6eVu +sfsrzslIts+wEu6kt8ALi62mKbQYyp3L7KHzCWh0MupmouMm1an6MDU1P1j0lUlb +3uovU246Zg0U4XfNjqiYOwxapAvNaDCblytpimpxe0QoMaspQsFSkabHs1UTbl7R +ZHKqm0Wh5+rDjiHDe0dbCwGEPLRh7F78ivr/6sgVbpmHfYdpVwWbkgwE+VfvRlzl +W1yGBHVM/yKV3oJIdb1f3CjVHp5AxmC0XLwYrT9jNf77/n/A3bm0N9NHsGgm+nCs +qIpDHhSd9WJninwO0rfgfUt4Gf6u8WreeMMNcJgzNPU2G1LucyH4iEEV94DJV+tq +w3tchQsCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFLQF/BHsVuMQ6UPSfeKisokhOodBMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAEyQg +9jtwWROJ7IBqaH6tCyYRJNIRnHTD8jarV8KJUNYW3q0PvhTvo4f76PfQIOF+ur4r +L2wB/cjU84+0mnwhFpV7UyDVmAlN5ykkBkyvLiPoS+w5S+hlXtODswwwhinfYV8z +/5G5rn1Nza1OZQrvoa4j9KicdUZUjNzabXCyMpVOC7qrCQ3cHx5hMVD+auiYFLNc +A6CgaLbOpzhUfXknBVbt8cjocQXmVHSEAN9hGwtyIFHoJcWyHWA6MyrFzrYSbbCE +szb92jaPEYKF24v1QIWqT3gruVS47XXGzU7hKHljmB5TU7Gkdf9iUVhVJnieTitT +P0r9WudI9eJ/sUM2WLMX8n40pAtrW6/dpETGcVyVRs+05kVgXM/5BVe69memppEL +iE2iBU7c46ZRVLtGXBdTpYDfYW7h17pcVTBQB0p5MFsR2h9inSemOEmAWdqsqCXu +9Oa74P/C5Px/kOVqmLPaE3Oh8wu3dQSXVYp2H4GrJEEw940YOKFwVxH/Rwu/dmgE +T5AKEXedS7NFzB99SoXqOUiCztpRqYtagvPdD0fiednAeArZBvO4gutmhlWrdSqH +kqghnw1V0ArlCwk1Bsqz1Tog9dowmtShgvV2xW08Al0pLNSbG2ao3BbbHCLqlbZm +U06fzmAtoX4DoEYctEPSR1j+GxOwz0ZISeHjoAw= +-----END CERTIFICATE----- + + +NCU INTC KeyId 8E1AD84693D5D89B1472CD8F999076EDC4115400 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAEJCEHQTpbvoEAAAAAAAQjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTExOFoXDTMwMDIxODIxMTExOFowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS2V5SWQtOEUxQUQ4NDY5M0Q1RDg5QjE0NzJDRDhGOTk5MDc2RURDNDEx +NTQwMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKfp2HP4MLRJ6bmm +fgCK3Pxezy/WcKp1QRvJD5OKVz07cIsBklO5/TwbAwXaRFe5/EfDHG5FuhcQ8NUB +VbZQ6mh8cbwLXvU2mEuxKrjn85Ar67I3g/wOLOW0HgeWn3JwYyrpvPDac2+Dczcs +365fMcveSbT1eHg2dK2zuEPA+kIFnD8rilITc8chVJUtlRaP1BgAX3otEI00u54C +uQXNZLR61lwwgV4/DuRmWvqFjgpYf1UtcUUqEO1wTufj4TxjFgnkvPAxZxyE9w02 +AU6lxE2P9eaUrRYdIFJ5XCLM3I/pOuoK7UUp6zqWEArWK1QELy5y3RTZP3F3EaX7 +XN9MKuECAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFFElu+d7/VHmSdjfOrHk8vAnfIh3MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEATYaF +UC7GMPGiPZrxWR6DJihaIOg+0R6xCQu9stIidUhLFwMATsprggXnT6nQx+O16OqB +Rr3QZvIge/HMNXJY9aFpEYYLzrNGsARDB+xBhgAg2iK8qJvpl0n2o+bd3oqSdtXO +2PkGzPPYGUeAFMPg42wMEzoMHxDMTFQLpKu/yfVlrn13uS1VTCUXS0Meuwx1rYSL +2CZsbUv5E4Nw8fTguweOs4SGp8R1n7Rehn9aACYIt1Nr3PZXGzkQC4x2hMjjW1DF +u7B2Xt/xZl0FzFOOFaxhGMBGogv0pmcnq9T0nNbmkVi8dvkRabpWRAtPjl07UFRw +WLNlBmpYKJbSEnPk4qey1MoDW/EwirhxOot2kgVPskbLqC4ClKjhl3iZ4qMRixBj +TPABaeWOcsRymtSw6booe8hkn6FbdW+3gXGdNDQyKxqeWRgr6YsAlcvzXshjxiNx +MX/9ozJ2mcbjxwuKMjDCevDLayX5utnQmZvjgyaGB1DfMFvCAtiePE4fylgonkPm +w0gjEQpC2v+JI3iBYEychw1hXPDXS+1iWbynGOI29bBDWTQOckqN/7jDyLVyFPOC +8f9ANKIZYY4hg9SeY93dGgSVcKE/H0ygju2cpWrw6hUx7xQ4J1G2G/EtqBtw/Ef7 +K16L/IjN6LDXzTiH9C3zCePBqKbBIHrArLmEZRs= +-----END CERTIFICATE----- + + +NCU INTC KeyId BF9C5C6FBF80CDCE74ABCD0E0E6004EA022A6606 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAFFAZMbW1AltBAAAAAAAUTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyNloXDTMwMDIxODIxMTEyNlowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS2V5SWQtQkY5QzVDNkZCRjgwQ0RDRTc0QUJDRDBFMEU2MDA0RUEwMjJB +NjYwNjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALL20ryeezk+xJ3x +07lf672PE2f0hpoUoPmo2DQhVJRRpuCVvDJhddhnrwa91o0coP3rRG18MkcN0E9Q +dAbgI7heiOkelP0YUe9+jtK04dEjbrW/3xoCoK80f138LxITy/HE1hE5CWjVIBgu +WSkCUQgZdcR5YVbpUljpnIv2jVaZxqsPElJLcko4XcQnEqYG23qF5e+1Jo8y2sk/ +7fjpowT+QDGVLUUIpRP1YLB7sohQi4JMEOxGtitf+DJ3WXhMLsT0+SJ8gJ+e3yxR +RhUot+f8xVzgbkMvRl8I3+vFzAw9Z4Q16IucI6JX3U2yOw8Fa166znuL1bceSPTl ++09QhukCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFF+0/V3bWqLAFnngeVv82clbTn5QMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAk4nN +F0gYDJHGFPgFrrBtDGn9q9hO0XKB+hp24L0XjL45KlnLxS45Kd9Op7xfxAJ4+jtK +ve+qYaDAdx7ecrNNq+TyGUCS3JgZP4JhsOgXCKoqM6ynA8O6BZyxg38CrvNatJYL +eeTxWy7I0qdU8fwyS9i749AToQOMBTMR9dpKK/Dff2IdypwJv1jlXPLATJYLMkCQ +P0TEDo/4eMiMkYxEiw2kZCdxrVFcSX33vNz0DEZ6ndeenJmdMsRjW7YdNdkiC4tz +9b4LCZvXK9mnYSirtZSO6Yw4ztDE1Xrh0248APN9JSRLsT4xrkajep+sYrPuF1jb +69Yuzcxr7UbZa6ZuzU0SMFqWyDJqYY9vYxxr3K96xLxZTvY4SWOHNCRG7/znlGtM +mkuGieNOwogzw6A+5sujcvP87S9Nxuw4zPGZfWme6uj2K275Gysa9ac4OT1t5QZZ +u395hHQi1wMBdHfJoFPNcVZgKEyKJ7JMIhRk9PngSkHFY+giTvjqlqt4Lq+Zz/G3 +Gocq46o5pMJTT7VPIO3mbbDWqrCoMaZ2xJy9X4wA4Gw/HTCL09S0WwUSbULXjBC4 +MJ7TsMH7tpoWRv+6qS4LCME+vCuQ0cTi9h9mKa0hjq9uTJHQ9MPxArfDmTdPSVh9 +IPRsvvIsb1nSGRalG2EiaDSTm6nX0SXo98vf0ec= +-----END CERTIFICATE----- + + +NCU INTL KeyId 145126D0FDB53E99907D6FC6FF1B90455B9E324A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAADxtBSPo83gNHAAAAAAAPDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDEyODIxNTgxM1oXDTMwMDEyODIxNTgxM1owQjFAMD4GA1UEAxM3TkNV +LUlOVEwtS2V5SWQtMTQ1MTI2RDBGREI1M0U5OTkwN0Q2RkM2RkYxQjkwNDU1QjlF +MzI0QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN+IytHl8oMgHHaC +IlwC4NXGx77T2SuRvUN4D1oaelY6C1NDxOERUOug/ybGxanrOlXpp2vQa5cqy/Rw +Nh2bxvlWDYOADx/LwDeyZalmu5f8MzSzU1sKD8g0VV5uGy5ASH2FnJekVrNqltif +NbBPJzjXiAq/p+sFtwoDcdBumq5Zdh/zkwyBpUyLSmX/+fobDepo1/eIPc5dRsdB +YbKMDAjNdDFs5eFoyyDcB2mKTTrqv9+mlc2Neqe8oPeiWW/mN0R1O6aAmtRDWRki +UBbg0APWYMEqrzU1lvAZ9cSQNxCm7sFm2x/ZX95EsKDQUxraGlLLt7agr028W8uz +Ji5XduUCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFCN9VL7n7ZcsEvnASwEnwTV+JElVMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAXSjM +HwLx3BUkaEWH//kA9WLGrC9ZGxhgzGczjdRqKHVgW9VE9legTN/2DbqyABva1Jl+ +i8PfOBZqTRxOWZJ6PQgbiZsrfj4qK/HRSwhNyH6/cv+i7CATMB4hg9YMQOnXov9e +b9L2cjkqpOYDx9iq/4/Ee7cvyhUXx2VA7tNzj9iqPVIkOD5wbdkXNyZMU9rfkkSR +uTTmAbRYfGbnUdUKCuE8ZZZkdlG5HMxOjitlsg8Xf5KZFrBKHhqdefg7+UryVPK8 +BhoqTCO0JJedtB99PjNXsH9/22IYntdBPZU6gRs7kGmbPI7l8atKn4ICdMi5pIkf +2XwOOQEerL1rHAaRmR9byaFeK6BbEf4X0Hewrw4dEsmDiKxv2E2Q07DzpG9o/Wpc +lrKcKplF/0Sm2jhoFm5hXTVRKERLXOrUvKqxsldLezCxcTcfuf+6i63/k008Nxge +Feywt02Hv+3HvfL4AVIQ3NIbWTTKuwvsLYzUD96Uw1qDt5eKWIINeCwMT9BO1SWO +xt202+URuNatMQrqEZjLX0mLhKJckIm6ZAzrJUTUaur67k5tMHi4pItCG39QpH60 +w7mvbBntOeZEu7+blbg7q7V75/Vq7GVQd/MgkhmFurvojOFcco+ti4xhg7l45HrR +PaZmFLmOkKT7EeYLCsD8roK9O7fRVVPBHuogAZI= +-----END CERTIFICATE----- + + +NCU NTC KEYID 08300F43A8F4B8C8E624A4F7060CF59E745015E7 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAG+OKCOooKgoowAAAAAAbzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MTIxMDIyMTg0NVoXDTI5MTIzMTIyMTg0NVowQTE/MD0GA1UEAxM2TkNV +LU5UQy1LRVlJRC0wODMwMEY0M0E4RjRCOEM4RTYyNEE0RjcwNjBDRjU5RTc0NTAx +NUU3MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs3vREQbW6nU5yBLs +CdvBXqJCLmkUYUt2PzQUg9a2euT/2CDBCVNCM5InsvkR3shmgGP00EBDuKRS/MgH +hseQN7VOeZpI4OJkl4hd6PwyKOEwbLBhK58/hOl8+SY1YZspWQxVM1aWfRTC6iLa +t1DFUnnnCkMF4jz17UlW6UXKsa+6acUFaNR3HMMXnggl7wOCB3eS0DxqTwYBczdz +xrburUiXOBsWeA6LkuH6OgQeLepUcBprBhRzkDaOkyXaIWs+BmVZeavNcW+myMcq +qq6eLgqTzGzdYnqTva92Z09aeOkrAlpgEmnTsCtHW4e7PnhemplbNhQmQb82n4cm ++tfLgQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUR+ISF/V1q+8emRuQIi+8N9Ju9FEwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBvdu94 +tnJrt1H2Tb2hq++elacdMWPDd0nNfDEB3Cu5S+8erE3QkBI/7SiViYeGLjy7BmBy +eDjWVx/ud+vmjeIbKR+0MmULQATp8pd3hwtzS8mTbtvnsQgsZAgsSgYn/m11oxEG +EIkRsrV6swEHxlHUeghKgxKnRCF5ubtRWn1925FmRxrS3meATaD8IsM4glSZzb5+ +VgRZ4SK1RLFId0gQ5qjsumilFPViMc1FRMykLlLmNoDchw29aLCXmxJ15NeQ8D8U +eUoAaRJWe8riLCw+y2dGnesQgUueVw5teBcVrXFi8+lckqZiqx7GW9xn3XQ5t5Kb +qcgLtaKHMpqcoYns3WkTlKYaUmSkEtfbfGBdjQZHywNkFiwJxkxcNOFRzWj8HbuN +DKq57qeAS7d3nwy0hg4JH5lnLbzHyZRwRxsOsEFSLk+slt2qPKnRzAz72TcFofKf +TYAsHg49g2sgep8Hg3XApcyBBqYQvwICvVYu1WwyLnRHL6tpf4Cvlvp8I7uDrx8H +GZVqAVFonmwWyBG8GDNLTw9Ij9/+AgO0Pc5IX2D2a5ZTTUysoj4Q8YnqSJmHJKzB +ewVPlfZMsZxCGP4Ut7nh+ldbR0h7omOsuBh8cfUG9SXUV3vFF6WGmdlU7JWZBhoP +CVeQqmOMuluhL9KwGIdAjqd9MbgbqBOIkQuX0A== +-----END CERTIFICATE----- + + +NCU NTC KEYID 08300F43A8F4B8C8E624A4F7060CF59E745015E7 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAnxYDSvxsZdj1gAAAAACfDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAxMFoXDTI1MDMyMTIwMzAxMFowQTE/MD0GA1UEAxM2TkNV +LU5UQy1LRVlJRC0wODMwMEY0M0E4RjRCOEM4RTYyNEE0RjcwNjBDRjU5RTc0NTAx +NUU3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxMbh7pe2YOAGWFtG +R6CB8QQW8SG+ZOM51sF3GoUMZAdkW/OIXOzWwnpGNyvSAICTS+zVZfhuNSObnons +OrHS7w5ftQZ9S65z6WT9yqDX4WYIOFbWgezt/Y48GLN7ePrV6gEGHERE4kYWEWcP +cNxV4YFpsanKyXQN7kuEvAmFA5dcyTRCD8ywVoBMRwelohbgZhP63So6HW6OVHFx +4zrs5BTja8PJgCvT6AkGrhcfqepKdAdo4w9GIb5G6tKvBtBOTck7moX9uO23uMDX +eLqZzabEpnPkv519lhMn/9YN2Z1VooRjYI0j0lcTp7GpTdavQnxAJAUuLIDsH96M +nijuJEiqXTuRq+WJZHgPJdIMeffIuFmUriMY3EaTfMaPyST6sZECDcrOf0fMbOy2 +aZ0setEFeopS2SfD/a+7XwyeKChBQOARXd3iggxRRwVInTjM9gw3F4dOWOrpH0MC +XX/LL9W/FPg0BSvtHkdhl/c5nyByXRdFdzK7PrWKAjKVCvPGabdMzUiV0i8PzF1o +ewu/un0HSVZmQCgYn9sVgkbCK9/aLV3VxJLPIP0YwJUcDRx64/cN/7x7/vi+T+Pd +NzZLfjnsICqBdTq/0I/iKplV3Gm/T0oWfFk8nJhlESxbeLvjvVd6CgKX4hf+Dduq +Q0H2BxwdFXMuIf8qShLWawnP9RECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHZhRYUiVNBWCaP2 +37szWgXpGs6FMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAFmZ/8XQ5UjdGhZE3EJ6xzFo4aniVm1w2CfEQTVKeZf2K +T38C5+AMEuD0Ol3YoHecNrsVb2RXS0vGqwloZLSQfvrDTJcfChrkMUJIY9uSNT84 +sh5Urv9qmLwD3ybsH1vi8BsLEfaSKV/Mflwaib0V4NeO3JsNMMc4v4wf/xvVyw/D +Y6rXcLV+ypK3wSv8GXmYHm/VkuqtOdtselmT4zf+i9fEt3Wqa/2b3T37F1Qe3kEL +5ONDHqd1hhVlvr1w/hpwqBJHcpaFaTfl4COa+W3d28iHZ2OzVxpLOf3ov6ZCCYSG +Ww8IcrJt59wDCJLMibDndt7ClbqLJ1yZcHieRqVlMwAimYs2s/UoO/OfjR6oGnC+ +zQKPmfp9/ZCuIOpzgV20kPF/0bTYKPsRDoE8HSzXs+nQ/wvUjB5jOxx0Ba3Dfa8I +6ThBEE8iB0t9tanaa3bKHQJ1Umf6czAcYRfwYr3+0RPcYH7j/ZjjEBV9sfN1qwzm +3s59XDqtYZ9BG3lfLq/WQPElCqe0X2Iz+iyBZCbQm4VLLqRQnguTRtqVmxEE6N1d +p30gkxOLkjWJPcWCGvYOwImwANRYGwTWkJbIAoS45fvzpHEudKa8E14gFgguaA86 +V6ryF9IVJP4y1S7u/IJhOzZatBHGso5XHh2cKm6B++TViH/M76kEAg5pAm/zQUg= +-----END CERTIFICATE----- + + +NCU NTC KEYID 1591D4B6EAF98D0104864B6903A48DD0026077D3 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAQDiBsSROVGXhwAAAAABADANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDIwMTE3NDAyNFoXDTI5MTIzMTE3NDAyNFowQTE/MD0GA1UEAxM2TkNV +LU5UQy1LRVlJRC0xNTkxRDRCNkVBRjk4RDAxMDQ4NjRCNjkwM0E0OEREMDAyNjA3 +N0QzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9IwUMSiQUbrQR0NL +kKR+9RB8zfHYdlmDB0XN/m8qrNHKRJ//lBOR+mwU/h3MFRZF6X3ZZwka1DtwBdzL +FV8lVu33bc15stjSd6B22HRRKQ3sIns5AYQxg0eX2PtWCJuIhxdM/jDjP2hq9Yvx ++ibt1IO9UZwj83NGxXc7Gk2UvCs9lcFSp6U8zzl5fGFCKYcxIKH0qbPrzjlyVyZT +KwGGSTeoMMEdsZiq+m/xIcrehYuHg+FAVaPLLTblS1h5cu80+ruFUm5Xzl61YjVU +9tAV/Y4joAsJ5QP3VPocFhr5YVsBVYBiBcQtr5JFdJXZWWEgYcFLdAFUk8nJERS7 ++5xLuQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUwhKpW876VvjAwW+xW90DNEezeqMwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAKc9z1 +UUBAaybIVnK8yL1N1iGJFFFFw/PpkxW76hgQhUcCxNFQskfahfFzkBD05odVC1DK +yk2PyOle0G86FCmZiJa14MtKNsiu66nVqk2hr8iIcu+cYEsgb446yIGd1NblQKA1 +C/28F2KHm8YRgcFtRSkWEMuDiVMa0HDU8aI6ZHO04Naj86nXeULJSZsA0pQwNJ04 ++QJP3MFQzxQ7md6D+pCx+LVA+WUdGxT1ofaO5NFxq0XjubnZwRjQazy/m93dKWp1 +9tbBzTUKImgUKLYGcdmVWXAxUrkxHN2FbZGOYWfmE2TGQXS2Z+g4YAQo1PleyOav +3HNB8ti7u5HpI3t9a73xuECy2gFcZQ24DJuBaQe4mU5I/hPiAa+822nPPL6w8m1e +egxhHf7ziRW/hW8s1cvAZZ5Jpev96zL/zRv34MsRWhKwLbu2oOCSEYYh8D8DbQZj +msxlUYR/q1cP8JKiIo6NNJ85g7sjTZgXxeanA9wZwqwJB+P98VdVslC17PmVu0RH +OqRtxrht7OFT7Z10ecz0tj9ODXrv5nmBktmbgHRirRMl84wp7+PJhTXdHbxZv+Oo +L4HP6FxyDbHxLB7QmR4+VoEZN0vsybb1A8KEj2pkNY/tmxHH6k87euM99bB8FHrW +9FNrXCGL1p6+PYtiky52a5YQZGT8Hz+ZnxobTg== +-----END CERTIFICATE----- + + +NCU NTC KEYID 9FBB79AA0F526278BED150929A7171E96A35BEF7 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAnheUdXpduruTgAAAAACeDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAwN1oXDTI1MDMyMTIwMzAwN1owQTE/MD0GA1UEAxM2TkNV +LU5UQy1LRVlJRC05RkJCNzlBQTBGNTI2Mjc4QkVEMTUwOTI5QTcxNzFFOTZBMzVC +RUY3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2M9jF8tBt3Mvg00W +jmSyZHxV+k3y8+oJ/CFh8qLFLNU8nEQZWE2x70dv8fvSBFK1RErUcExRXHBRiRmU +T0kl9shluI+5uyB7WNlCwfw8cnuB358AIBrvQoMlnegNdPOqSM7iOlX00ZxYML3Q +CZpP1M3T5Ge0BRCY9WsQ+cP0eyVinUX/+uf2jaHZSfp0YnI1WMCOtO039f5CxJPo +Y1SNrMBb07mH3x8ks7sZIQQj39tV/mAPYPcppqqAIPUyU4tPm4iRjSgk0rxO75Xx +aXRLXAHKd5hxSy6BZXtntjiZ6SLsFRjFsmros8cyfRwQ+oXXUZHvrXOYb62fXGkW +lvQW7vJdQtD/10MowXeiCoLqtHR50zMIqB1qN2kYztGAKtmrWPWP0+2bHQ6xSuax +OHYoEBbnCEiG/RmgY8izA7Fx/Z9HJn/HijxMDYXKi4s9+i0D+lvdJTuLRnZJGqyI +v4UZOD2L9Yx6pgy8NTi3CwqwJ7bGEiGO3bbg5xorzgZffmbSf8MH8AGT+mqAw5TM +DU/wjj20qxAPI9DNsDlgOvKIRJihrIrN3GvO5b/mlgzlBOwvuSoyA2EyHynbTi9w +3gQlF2/nHl5A3rlVOUGYhb+NFYnAhtxtfK5MpDINBlmCStlyz6CavH3ALR3WlITk +jHpiUb2HveFzadPDlyG951aICNcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFg6GnRmveZMu5g+ +CAAnOW2E+hncMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAdgMa9yh6d62viFpr2U/Qi3/BcN47JS84xPRFfFTIMaV8 +r1/vK1h91ktDTPnjDpHzw9SAEo5JP5s1UptDRWZ9PDF42hId6HBUK0J7+ZLjfY7d +o472aHNBHUzJ1oFzlOPtyJZaNvoQuwmUNQRzNWx08JhHqJ+ZvqWmg2/7uJ01o+Ck +1nDzK7SsOky5HYrNRghpFhA15lquGOxEcto8WFt4XFyLsFVA1UtRIm5G1/xjvDQ4 +Xy9CefvH6jqRC3j2Jtzxvvo9zCo3/J3UHZ94cTjmfj4TBFsOK1tBt1uZYBj3VCxs +0YAyPQKebfGRfIXpSsZ0GpE/Ldy3qEETAdS4njJpNNLoGoOZcDIbErJsgNeOyPyd +kuq4Qa0aEfUeCae6Iwy6MEQlmwqyEXiQr6oKIPyd/eXQXMg7QSXg3ZT2TV/yz/XY +70mAH048hnPUDkcoySbaTO0A+G/V4jtuKMPLLgOvMKzC/EooMV+5mbrO1jEDh1Wj +8cGd5srxrgf2LU4s5rJsYsMxEuVcC/dizOgCkWfBjvOlz23ooOGKVjv+zwUhXYi8 +sEbC9rX5DaNzDHHes+yXfgIlpFviH77ehIa8d9PwbbDaV5lBFNWaQsOBQiRFyxgN +3drw+6BWf3sAB9D9O0EgKG+2wNuCRYtqz1ebbf7KKaBWBEZZRDXpw/Vim9g0LSI= +-----END CERTIFICATE----- + + +NCU NTC KEYID A0D737290E16CF2AE2BEE7100CF56B2F04C5F043 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAQzejnI3diMv1QAAAAABDDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjUzOVoXDTI5MTIzMTE4MjUzOVowQTE/MD0GA1UEAxM2TkNV +LU5UQy1LRVlJRC1BMEQ3MzcyOTBFMTZDRjJBRTJCRUU3MTAwQ0Y1NkIyRjA0QzVG +MDQzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAttEtrR6v32u8zXJj +/lNvjcTR1F6H8rsG+czTRyGwH1vrL0mV10HWEkNHUZdrSmdFBpQDfJNBwbDjXsND +YjQaDUe0pnCVdgsQ/tiyFSt3hl6P5CLDx6kKN3Djf5cs/ZxDODJWZkbIPhg5SEqZ +X/LqGDfx4znfie9OshdCtWf4sKzgJtwrc5QGlIeH+5MsijbEiKWFqD7g+e31XVHf ++5VgBKhsPdbwDDhGkXUPuDnXvSSc9nMNsFTUCW7CHZeFTaqt4B1x9Iw2adC5Q8z2 +QHqo+G1huFFsZ3xxQpEUp8Mcfo+fbLS8ngk8/0P+HaVhphgpWSXnzYN6jUhDxddH +LqEbVQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUrlZRz+ScmB8Nyt+/GUH2+aPGZ6IwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA88Tqq +sxeKdQRK7HWr6eXcERv1YJ3sBUaOwXbpufT/XjU/dPSCe/tmXPUrt4tjEByYNSzr +SihPx9EzNtlpJkcrn1zFOn3IaVuijPEmFAoSDL+Mr+evUiLnTVWQihEw8nuIVQL8 +ZlPuDncY+UqdiWwkblicxSArWKY9vWRUgZYnhGCIRZrvLwjeAIGAf+q1gGQkOUTO +iC6X+gwv+OjcvjqtSZA34Fxe3/HFXZDH+YgE6L3HdQCIKsa3lrPYmDQx+xPOTlAu +7sjnW1cDhyVQjultjEK8vVAUYp+ebDla4MSBykd2B9OcuSEH7cz3YB2vGG8aSOfR +xqjKvZQdCnUfQHHXYDKEQrL8uS8FdtHmKe5uzLJHUNHofcrAcbwPdlOjljXUz7Vn +fFVAkuVKNFT/9IziyAfwdzXWllE1k779d1mlJ49/IxU1Wf+qTaZ5VEOUtxJYs2sv +3IQLZbqQIJ+hxEgN9RF8cfyTWWIh0PAWJu8ttZ2PawtcLTHrlQmsK2ElCHh+QIM2 +KiS0uyqAI4WCVmxBv5HnVYgW4qSLCmdfcphSnDFFS5eWZHk3K48gjDvGwIiu9eFe +Aln2QYFVXH7R3KDarWmREI+H0I8B/1OF6CTerZ9oNfaHKjqSCNmlJzj8eP4k+AxZ +kKCI5Zgwfy4FCu7J7yzUs9UKsFYc4n69pTtAHw== +-----END CERTIFICATE----- + + +NCU NTC KEYID A0D737290E16CF2AE2BEE7100CF56B2F04C5F043 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAn2hFZyGekxCzgAAAAACfTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAxMVoXDTI1MDMyMTIwMzAxMVowQTE/MD0GA1UEAxM2TkNV +LU5UQy1LRVlJRC1BMEQ3MzcyOTBFMTZDRjJBRTJCRUU3MTAwQ0Y1NkIyRjA0QzVG +MDQzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoK58OPQBp1AGhi8/ +SFjPAxnwZrvU9tGThp9QFawftVQT7/EKkjizXhgZc2TMnS/y9HIkdH92wOl3SvVJ +Cz16yuCD3vWD5uXanXrU9GZ3D/YYziyazlpy35EbU/tV96518UXouy3Yj7+ogo77 +ZD2pvh3wltESkY+Ao0dieDFzkNi7TN9jZBTv5VkWfBNTZo20CTq1DYpwLP4/xqVz +OmLdE9FaWa7WXmpPhcj+1UH8tG8YN5ujfn9BLWylM7aUV6FjB8cTf4NJLDqcMMrA ++MoD5GeofgyoycB4jwzgBe9og6q7/78MAcg1hEeiR+rvWmZ+KniUqO9FR374ioAv +wZ4giFZjOXrgUXf9r+9RiHstaiqheqCBrqnBuaqrs7dq5ZsGwit6tAZTnaMD+p2P +L72QXHJkk1mZskVuVkkT08AGY3BSczhEdpQ+9N4xqqHrlVm4iewXpme5B07Lkl3q +u/qq9gpJlYxU0R5bQSCqa7t8kKOj6aJw6PxQxpixOo9JmqvjVjdfLXiCtva4U+4a +xT/xP0+0bXDq70s79SHNTg3/pVJknAivW77g7iXMJlzJKsj0Js0zvo3XNvAjaBkS +EF7RpDb5ysUtcRB3fh0dixT4ufEOi1pTvUmxMmK/NUNgzlYWVDOF3cd9limKCx/I +zA6gqHKFbs23/sMg1GrL6FiJprkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNSiLlwHhlB11nr6 +TX78abvbAKZmMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEALsWzyIojvugrcIH1culbqoL+o93M3UsbTGzEznGuSBiO +X2C44NFhpSIJ4RZeFRDBRYX6nTgqs9PpZSf9KCTBQqgzyX0L4xA5oZzZBiW1DTUz +Ag3PUDiBL94o6QynZicT8r2U18xK2saRKuhN/+rN3eCHuLoi0dpH43x6J/t7bVFC +yYlztaE5Cwmojyg1n9MtfnUbOODZe80j1bK2ny4TyxvJsko6RdOSnovHflqYuvhQ +0tOLFVnngEcO39Z0xxvawY75mJOn2dQq/rHftJ52S+fA3BH99CK/A/nBNcmwRhqO +PmJN7JHffPEijhb9XwGpTLQGlz3PJ/NcKqWDQjY3F3qHC+sSnD5x+g46aX8rI3Ju +/l4M3Pe5I0WBWFWncFAKJxwQyVuJfMoi/t8fvm0pKiqUwPb0E/LTBIuKd572Nsin +RINx+ni4sHNnvB59TM6toYX6SUWUtyd//6VmPIoXN6WBWsy70aT7+YaWU9n9lzuX +yzraa4vPZleaPLmsXNsWZwMTDmKD4u0oLXN/3V6/z7YyI4BM8C4XItChieHy+AP5 +yFdeDAltPrwRhOkGpsyH/Dy2eFW79hpvYPIQLWE+rkk/utO6S+dnKtZdqmRFni3P +IfGMeUcMpuwDT/hDnTVvcgPiUDSxGUx2ihijLGUd4OqN8mXDX2VMx9QmItTq40Y= +-----END CERTIFICATE----- + + +NCU NTC NAMEID 3E6C3B35EF144B0A76CDCFA4080B8B7BCA3CC8EE +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAQ2Jgj9/2xmiiAAAAAABDTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjUzOVoXDTI5MTIzMTE4MjUzOVowQjFAMD4GA1UEAxM3TkNV +LU5UQy1OQU1FSUQtM0U2QzNCMzVFRjE0NEIwQTc2Q0RDRkE0MDgwQjhCN0JDQTND +QzhFRTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMM8p52GsQsXt5Wd +fz0dIosflZeppXfbG1wNHimHoaAELye4PHASFbZU6B44GLsjZ5XGx9uzQvfd1yNd +5GcQatIHq7uwEQk7aA8DpjuZDIAOQ5q1+N9tpAQDep4vaDyLt34lb9l27LYyQJEm +cSoDARDwaCrMseUJBjZa4jfaKD8wn+NAxD9g3VrxuS0j70ewcbWMAq7YzFuR5/K+ +PWhI23LmRcHI4sBIfjOm08N6LcE1M3a38RGYp/TcZewiFUzaT5pkrqZY2E6cInan +8J4tcrykNpTvIfRGC6YTAukDYHOUiZynD32aOIv64gFpLASEul7B7pwRKbQlB+tP +mKzloD8CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFFgp3Cn2JV86ic+dJr9LOB0sJ3L4MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAHexu +onUQrWWb0fI99fnezGZI//ENg3x9TTjbzhUQzaA9SijtapTlnrUrDsVMUBEJlVTf +8zK7/E/EP6os7ndp1H2PokLW3O5WQA5cSFgW0WPdSadBkYoM6ujjZrJSBgsEzR3i +WMwGL8LBCv7uWupEX7LcIUk1ZWpUhNwT7MFAdF4Bt1FVcAzxSyUaQlZR5/Ji6Myw +HsMuUjm35jYBppMiTTlQ6nIxV6f/fFrZn7kAdrpQ5IqjWLkO9JJ7n1iw06AksZRB +ZRIeCS3iS84DTNSD7JMqomY8DmK58drSgZgDVB5u73kO6uFXgTXcwHAutziGTEDk +CiDlRRDJD8rFmiZUeg/Y6kz8P7wlAtX/QEEWPTEc0CifOnIF5XYRMPvWMAiP+Z23 +kedtIrGn7jYxZpzzUKtA65PmQzKI1dQ69zmOUqk/63EH12uVmIE0r8nabIE4YKwG +2CmrUbHOWbbHWK2797pb7Dggo2ef0lRTKXlHK6MsFRO75l1B+wgAqlV8TC6SqFNH +ssWHrX0tVo1uBEX7n5RHjIyOEPcf8OuB5pXc+vO86QIm+BsB7N7GrQ716bD2CCpM +t+3HER1NDqpQdyPfbAJkzznZSJKEM9d7bcWZXIQrjkiJ8SnDg6BAQWwP/VTUAB8k +n25W4+iHFky2CVlDPBeVIzj5XQUplxm/uBMnGAs= +-----END CERTIFICATE----- + + +NCU NTC NAMEID 3E6C3B35EF144B0A76CDCFA4080B8B7BCA3CC8EE 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAn7YRX13AriphQAAAAACfjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAxMloXDTI1MDMyMTIwMzAxMlowQjFAMD4GA1UEAxM3TkNV +LU5UQy1OQU1FSUQtM0U2QzNCMzVFRjE0NEIwQTc2Q0RDRkE0MDgwQjhCN0JDQTND +QzhFRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKVnX+EKnSDsiSPo +SYe3dKEO7fL9jz/ojOG6FbevR2+DyaFvIbRC9xR7bvKtQ0p2/n7b5uI65ksOZJY1 +WTAejNmn1mn5MyYUjuYxLpTw5ooYYwVW+Bni11gFDOILftvPDUJB+dt4zB1fhkzD +CuV4tqrN4YwWlnE7RWXIAsJYcmnAkcS0RUivUtyra1nt2fD94iNqI6P8kRDpYAHd +bNpWrJIYhh8rJa78ygbuhMYz2HYb4+TpRVu29EMXlgTu56861i24ruAos9aCONuu +oK7ud/uDNZk0mXUhwQ9O8LX3lCwczdMih1jMDwtVp/oFiW0QYswqFcO1LSAH5W5d +t8A0GWpk19RDM527IIIjNiNrtxGQOUsWLk1LWztw5lBNsCUKi+OMcnAJpbARJ3dS +zMiXRbf3E/vFd36xHG9J43jfB9m5HZpiIQNGdo1m9ofy2BcLu8ku3JQU4QwBR69e +R6v5XdRmcKjP21xJuA4BAJVs+9cEB+fpoDH6uF6UASJqqVCPyv50QpJ0jFkuRqE3 +jYrgScoXxDGaoq7sFLCKQ10TvFnLTiYCN8b54sDaOX9dI7BOuq+maxfi7MAgfyRC +8aruVMKePvYWqUI7VXYfo469MYEo5+48DZP9AOnVGh3OvxBDqAtt2Kou29WSlgpq +DnJ/4gJ9T8BAVHfv296uWCQl/YerAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTBrrV7Hgac5bS4 +JK0JLjbjy5d2BDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBACAvxcjLolPAdBa2FaezyJiRq8WU7IpeOZy7ofSjtFfQ +JABGdrNdfXGN4qVjpvnIYYH4pYbdZMeJ8p0J5q4ZgKYFQioiktjOQK1ncR6ZZrNu +ZNYpel54EE+331olEdSvfBfBpYSL6EEcKxBEVdfkgk/8ELeW/AlXPrpRQix85LiQ +7YjboukyxFgW9zNNzclDPJ/C6v52FKpm/8XOM1Kh4BnthbggCxnYq4JxwfvFirUE +fSplFMSe6BZjcbJrA4UZm658ZPjkFEAyZ0Jb8DqSqMdcItq/yuBKvqafEWnTKWQf +x2e9zWWp/b8LT24ps1NhyKHpI6sDz7v/0GBzG76KfUp1WuSdOFefw6TeaHlkMaFK +xDCndZkW03rybJ3vXqDz+hHq+J1bKbGES4ZJakERhUZb+CUHtZAj8Nt3FD+HuBLt +I0aDJmWFyac15jHaHSHXUf7FaQiRyjSamgLxE4M1sfKxFlyu0gg+qanB3EXfUIST +rzpSwEZNempu7yV8cM7gtR21i+fqv8CJ4qv9XDC1Z/p0wn/G6SfnMbhypA6KRqAN +ZyOC2Evv6Do6ESe1r5NHid7S2x2xG1g0As347SBLA+L86+1vkQ6pxgOvYnQjdij5 +EcZXsl0bYgV+q9PUIw2Fw2DzohZ2w4rHSH0KL/nT0Z4z6guu5laFOsz863nWXE3r +-----END CERTIFICATE----- + + +NCU NTC NAMEID 770E974ACAF0DB9AE67E7B6F5D410F9ACE2FAD65 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAHD5T/srsObALgAAAAAAcDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MTIxMDIyMTg0NVoXDTI5MTIzMTIyMTg0NVowQjFAMD4GA1UEAxM3TkNV +LU5UQy1OQU1FSUQtNzcwRTk3NEFDQUYwREI5QUU2N0U3QjZGNUQ0MTBGOUFDRTJG +QUQ2NTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWvGmkdupOBx9EN +8ome4UZATQoAB/53g0cwXx/rRntCbbd2rOFmjijFJSfgnScbrXTK7IPXL6LF6SZt +aMIZgUKT7UAKmgORXZVE40x69g8AhgnvhH7xRmFHeXAshi/kFiZ3xXIHT1QlpPSi +2Y8RcmixqI4Q1J8Va2Vz8cDONPjrNvct5DiXlfDDO+o/T6JhG8d+vSp6zP+/GEBT +Bx/wmSql2qWFpy46PEOXqE00HaWSgQe2KbKHgULooVySArhs/HQHAteZRt+YiryL +BPNIInpypMGY3XPEC7X9ynjUPYyTVpVrHOfFIOYeR+RhxY/Tpgz6Ap+xSZoSlTXE +4WOgBrsCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFNv/zI54f+WaA7PxRWAPdc2iKpaAMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAIoYf +mRD7mbeUMKy6DReWUo1w39s6h2YbYAXp8/K3oAtlb0oGiHINemewXVO3jKKLnuSz +B0QJrRVxMV8UF8D5KAFhfzNaxNh3+GWal7r6RdB0EI5IYjHDlfYUNxiBeftZCKFX +M0ukeBLHzeroEZZZVSLRpnun0xG9S8306wP+hh3ZobHNl8uORlIol+qr0TrWP0wn +UckrpEON8BWxVMC86njrDcf71euZRjHEFbTCbShU9gy7XHD2BiwCRmdDs+B4feQp +Wjw8XxfjCiNlTuJcbpYr4AZZhm0EWHwPBAXcS/b//ML1aJmjfWduQvRXcGDnVdj/ +3Iavzme1voimP7rwVlEr6BidbCtQ+CEmeybkTvrjc+yv370WKQwBHnrh8UNNRGrA +PuTggbWTe4WzKm+aI8c9GCOmsu3lkQSOXpbmwtKXtUVvn8mNYpvFa0TRLoGSLhQ8 +4S4Y2B25vv5eWXtXq1zQhJDQHVnj4cOkGtJlpHlMFSuzR1S/CWzzQLOikAdEPCIM +iIrX5Pg4FQdQkgJe4YVnROLQAJ9rFTemeYFNfMLnUT/e7AoDsMm9J8gA+M79LDTO +bX8uAXbGe/ZvVIZyqjnBG5C5G728H/o5bcoVwkRJCYBvPb6oLrakoQuk/a1Ty84J +rM5kxhjfqVOnfJKtTaOYKvZ4setXKe/3CbcwzxM= +-----END CERTIFICATE----- + + +NCU NTC NAMEID 770E974ACAF0DB9AE67E7B6F5D410F9ACE2FAD65 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAoANGNTRMSszWwAAAAACgDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAxM1oXDTI1MDMyMTIwMzAxM1owQjFAMD4GA1UEAxM3TkNV +LU5UQy1OQU1FSUQtNzcwRTk3NEFDQUYwREI5QUU2N0U3QjZGNUQ0MTBGOUFDRTJG +QUQ2NTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDWRoCL+KepHrMh +Nu07/1/3OgrTtWFlMB1WGowHM7lKDZZgBzks1eiKulPx9MEwImOEEzFA7e4ssxle +Lcsx9pdym+GKBLxEst3rG/fAkLmAmLI6TVNAzFUr2vs6ZOA2Svp+ldKB/r6tpQC/ +XQqAVd81RRBAW8JwgRjR3O1CaobcmyTuQ0+g1GgcWaPrp+IX/whMrw5ZIMfZkjtG +mZFcoF/8W5hLto/mp4xuvFUk4SiGSH0cmUJboA3MHZaRzPWtrScE3Ql8PBu0umsx +HM3iKEU4/W20L63gisz5c44zlnfPw9TZxA2wWInheQAh5SIAJhaNNC3g6i78Vwmj +J25exi1zAJc2orFYmarYlKd5dvkGXYavup9TBnJ7skAl34IKv/21ArvVXzlPXdTG +hcUaKSIt91/PKZecbYZy2btXN4IRtPJY6boWwmiTZwalKyaU2vxnKX56UQ2fqaFY +jgqJ1FnAawx83kE7nkDlrVAqX7SXmXZGKByqxUgQTu4Hbq/OwGdFQmEuDbM1sG60 +z+PSHH2T/3kNH6hhn7S6Iy1T/ZE/lkSAzmNQN0JAw5g77YLYRQ/QQsFYRg0psY7b +tT5dn6IfNHt7YRwM1DphFfcHQn8hEYuJMIpKGrdlQ44lzHd5IYoQV9Ea4COmCh9i +FuUmzgBEzyJZhUr636rjOCGTiEMfAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBS4Y3leWpyTbZu4 +BJUTSV4baP0ZdTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAB30NY3bputsqtmK5AT8cp3jabGfrASB8u0GNmvDF76C +W/NULy5kyIUIGV/Me8pF6UJjmk6BKikackj9O0Rv++/NyAb9r3UFRt80Zu2KHKtU +AjhfDbN66TxPL6/Z194Yk0Wxld3T7iammSqE+yLI4Cg4X1uTJySha/s8YZ+W+F1n +kDEQHzFZR54coVdKac9Rq9AG2asFhp9XR3MJbH54oYLRr/BahCUw9JN7j/NqCGBx +HvCcwkya9fOpEm1YxyM+q9pqoapO0p4AlPU4INOfFGkcIw6GWd5m9MaOUGHvV9ta +17Ma/iX1sugeDSrnu+FWXRsySG4/SXG3R/KsxtFRCMu154eDaj1VrNWBy713RBks +b7XyEzrU2sf07xE9V/fxMzYWt9zm/QVewT4KmUREV7Q6SwJkr8MxN1Wv5/YI0dKU +9c1rECwzWsocGK6RyJgxBRlSuv+6ul4IQpqYyYNjkrF43K3oVcX1wAt2x7G1hvAV +ifAFpXNOM/z1I578bP1rQLmfzlEtgxxt7QdxMc+DOuuJzmo9mMiN2mRD+EBhvNpJ +SV0fX9xJ10WR0DDOIHyGX9usjhtcZDsrhTzu9CCvupWxIhyKkMz+yRiSIPJlHt7D +TGPglvhSxqiHpPqlRl6Z+eWXonx5Fa2Dwy5+h+yWnRxU40wj8wIEeqQJ/guH67zz +-----END CERTIFICATE----- + + +NCU NTC NAMEID BCD3C503D39E51B0C50489E9228E984A7E63E303 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAQ4cTR5sK8yOZQAAAAABDjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjU0MFoXDTI5MTIzMTE4MjU0MFowQjFAMD4GA1UEAxM3TkNV +LU5UQy1OQU1FSUQtQkNEM0M1MDNEMzlFNTFCMEM1MDQ4OUU5MjI4RTk4NEE3RTYz +RTMwMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJkAdtJF9LH3DWlx +/jVy1x17xz8kWnONKIRE9xNj32whoyRZogVM7zhWV1vUdWSJ981aZn8XuSPDND2h +j9kxxvgOTzi2tBT7Zk+qz53XX/5i5ld6N+2BfPRI1b6Wbrt9g5qOzLJ9aEqPS4Tu +AfuVwmGdWKpRBrsxlYgsI+X+eC7mlIwKDjhQkr0pJY/meWs1sPJyOGQ2gu1wT5jj +AEOIZJfUxzujO4PJw9BctIvt9Xxactf3bc7cqPaQWGAJQFwBWwi13rlel0LMBa76 +Hz178r7zpsjEcWf6xv29VdxEBOEq0SopU2IA5QvvbEbh2Eubl1My4wmIIvDt5lPd +ODzSsDsCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFE7QFS30dZPuwU6txPLc32VplX4lMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAGT5Q +uGxD8K5NFcV2KsUO/p/WoBLTXaDWPuXQGcYFSHtWdvfdrv1cj03sg43+vhz1U+a5 +z/H3QQeqaMx2tX6DM/I7mHrDuo4+Bo6cAshV+ik9zWdiB3mDTmX9Ot6TfGtAInWE +qVM/5MsApZJNifeAZP6wg4ka0RvMLTvqe/ZVXVW+eEWXt07PgcBr1go4XlRMQ5Jd +9D5FUSkVtVmYB5Czz86yTSZkW6J+QeYLKVh+NG+MQlla4YxVqp6oTJd7J0pSKS3E +2wXrs1jRtrzIzctWdfQGKT2eugTvXuY8OOr11r5QI4CzEF4PT0mpDV++gYIAjWbx +HMhn/J4rQx6a0R+N+f8mzaGgcpuk35VGxiE4u8PD7SimLqZoq4MQ/UIyKZOBFJX/ +wAitwD8wt+p1ML62CWROitrminipkW64j/krgm1Eo+XdRVGkC/juVsUU4O7BhMuj +s7gXspXYEjwGoLnbkmGPaIoAPMgV985TlVITmMluF33bzIefJ+NCiGEFxaczo1PK +qfKsmKU162d5997K3byld9c/wth3Q3HTM5z0Olr7z7HZuEptbtT/dUD3SLiB/8co +b7vRs7H6v+Q/gc2YwBJdEdNp8jHtSQh61aL27k4jd+3zj4paRdnr48cPHa1x4wja +NvDU3qqeEMHXdU25lovHyrqpAy2iZ8UALCapAUI= +-----END CERTIFICATE----- + + +NCU NTC NAMEID BCD3C503D39E51B0C50489E9228E984A7E63E303 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAoHC2EVAZRmS0wAAAAACgTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAxNFoXDTI1MDMyMTIwMzAxNFowQjFAMD4GA1UEAxM3TkNV +LU5UQy1OQU1FSUQtQkNEM0M1MDNEMzlFNTFCMEM1MDQ4OUU5MjI4RTk4NEE3RTYz +RTMwMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANbSN5W7QMa8j97k +yqwklAsAbn/304+VmMl2vOIZP5MoLYBfCGBgH8QMJGt/Di6lUh3ht9CiTOoVh54v +l6PUvt6SoinAYeTkzD3nsUnkF4WQdWNLoVSZoIvpeowNc1wPwsztnAvLohKAupGL +bwkOzmWgGAyWd9GOmgp74/F4JFnK34UdAp7iMoRTRJCmggSyR/hMqVIHrlCtuuod +sX28QNWfPZugcSEANtVNvfODpzuHDzPTocI/xcGFBPrwckqYA482Qwnfh0tK1g2i +liGXY3pzyQnQWqMl3rVJHmW9rUT8D1YAxD7m4AGuwd+Qx2h0cIgQo3TZgVKJC7x5 +p++OlvzWRdAxSunMMXhG1I62eBsXGh6WKASHKzsAJX/zpzSWwgXcJcqpeXLZacF1 +WJauNnOiPS2OREY26vWuq6C05W/J6NGW+enbNxGbOd42JbXap+hDC7W8Wd+NkoKv +M9ThvtB/kHHASI0YcJjoXTmJ10Z8v0iPikEafLxdM3OLsopkmeYckZawJXs0M25E +bh69ymreFzsxZaNNQeremS4Sy92I5CW9ELo9/CbHPtxwaa+vYaPa20gaU+J8s+OP +VcQpKZYhPn7aEB6gzno60uQygZEzVTLoTucekDH7FbvkEW3rKBv0FKudVd26wXWv +GFuBzwYxkmf/y/83ePvWOg33ZWx3AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTK01ITNJ5k0WXX +PENdgPqioNE2TjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBACU65owdn7yjWx4b2q63sQkUmxdGna/tZQ4CwYO/BZRX ++816Jg05WFI/7z40xqE8WzVDrzpFuh3d3UpFwssKiq7K8P3SaC0FLMIhk4dYGDNp +GzDMxge1KyB/IY+34bMTqJLUjbUfxl4/OoAaLwO2MEj1TBIJmwnWFU4ssGw/rC2d +2ObcK90KCf/NRsUQr7GHyt1FmvttdpMzq8NYxRKmfu5Z45PSdnfRsx+rLAeqKQXb +KE0cqLmHF2tKLTJNg+THiPj6uoTCOlNLa6BYCeF9b3GXHOGFAMlYQr3Amni4TDlO +/gGzHpP7Kcy9sELoMrj5lckk1/YIXWY9X2x7uXxlPQzj1eLZTZZ/3t2yr5i24FWW +QB7ozAtEOJRFoeufigTr1lYupqe73xJtr/SoOFtTmSlBJvSEa8yLGXLPyRmn1eCZ +emx5xL1NTXN4gwi1MODfT2WFb+JQuhx/c45aZamIwTLJkEn5C3+J/E/8/9Lk1TDt +1PdKGm/MT9KCn0m2dQQeHjFG68DEjXvTzLPIWiOnbu/PD0LzNATzhT/ewfak66IV +cBSdVvcmIZYwGLYqXlTICu0XnQtIh1fktK7mcoSE1Gj24hA8Jw4B8FPZrBkOBd5R +0KssTt96pdx4/F97TEsnkaB21Eww/DhMwrNYGiTZsh2pCq9ZSJQ6P9vcvx3njCHH +-----END CERTIFICATE----- + + +NCU NTC NAMEID D659BCF0AFFF2284AE8AC274C6D91215AED2B62F +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAQ8Bpa5smr9xOAAAAAABDzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjU0MFoXDTI5MTIzMTE4MjU0MFowQjFAMD4GA1UEAxM3TkNV +LU5UQy1OQU1FSUQtRDY1OUJDRjBBRkZGMjI4NEFFOEFDMjc0QzZEOTEyMTVBRUQy +QjYyRjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL/kTC8JZSfSFQOZ +pulbf0RJbD3QthTTairuVo3G904mNM+Bg9wMcOGIUomEJokNYV0k5psKMo3YhqdM +QmFgbxmzd/H0p5ofC9/hV0sCm0yMVpWht7ppSuXiE5+PD6PSji6Y0Tdt+5R5zH4h +H4lObmsSKHE6W6E/+X4mzYNb7oTbmM//7/tw653H6r2T6rqw5gsNCL+/HvjVGDpz +XXQG+ecjS/JhFWZGc1FS+LhHPeq+GfDqsf2O/dMPa2knk7klckBz9ss8oJZ00MLH +CAkIzcq/CMPnRVDC7uWN9M+qCvEalSneA2QPtfDgpvc+mX6Ymvms59BBYbJI0+FI +g7yVvI8CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFDCzd7yl4dt1GUp3bHRUc/sbP6d1MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAg7+E +/ffMcvc8zP6O95MAi+0WMT0Gwf0gSW9/30yUhXu4bJJYVJzC3r2LfpPRBXaTSfa0 +hKGh9vxYQA3tZiVKkg8Rmi+58iXEpdprhiwUcRlSOaBLKPu+wo2x34juE48/+PGj ++cAzjWv2UZa4ONQOwrCTlXkK2frGMhe4VhUUFsV7BXB3BnJ9PvVqikgYiOB1sEeK +Bda/S2gC+l2KD/AKMjRBkiQ6TPMu0uupiLObBtJeK8wbh0W4G0LNVZAaPEbR+Yef +5H5ReVzAisFregPCoCwsJPIUQYB7LsK+/bRShQkF8ZU1YBLTrRKhFGsaGMHMUiP0 +QDV9JfbMLyPnzwUboBvgmOl4EyAbK6qq/Em/DXezY39avc/Hat+xth8o0bdPfghD +UZH1CrVbithsEIOS1u9qkgDT6om/S2BWWMrIYmk4klfrJUWZZDLwLuBcMCn0SeFK +3IrOjSOlMneQRF+FEKWb0OdPSb/y0z8lHFLQB8f0kGvZZqA+IC8IS6eah66QhAy+ +O2BebkvLPfeihOrl8fQc0Fyb8NuunJ8e3igEr3TbMotmrpmVGoivqlZp+BQ/ZtJC +dUDCIDW+/Bc7gS6+F6zFXfMdMHYwDDBm/eakv8YHE8uk01+YKfhBT601OCuCKxy4 +Xoh1ETe7Cn03u1C6jttheUMA92bRUzJ3yEcoj8s= +-----END CERTIFICATE----- + + +NCU NTC NAMEID D659BCF0AFFF2284AE8AC274C6D91215AED2B62F 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAoKBOXvkmWgB9AAAAAACgjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAxNVoXDTI1MDMyMTIwMzAxNVowQjFAMD4GA1UEAxM3TkNV +LU5UQy1OQU1FSUQtRDY1OUJDRjBBRkZGMjI4NEFFOEFDMjc0QzZEOTEyMTVBRUQy +QjYyRjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPkln6tHTGYwW0K9 +myVALhgV2e4vo6lCh1DcStH2aU8siAyQCW/bDTSMY4Z+Ri/HRvtXEMNsIFjqC1mC +iPB0ixj5Y2PgPw7A3kYffTnIeedQtoy2/2XOvbIU+tId37KRshgw9t1yIlzWe4JG +9c+MEQsQjSTNh9ssFMcMAnj5PnNi63iI+rsmw5m8TZkd78D4kZPNfiXQoN+dTkLF +twQC/0J62L3f7kufRe1NbjfvipipviiVk5P7UPlZ8mSgfUSXN2TLSGaw/JlcBSb6 +GQe7Euj6WWGfxoktX1S2aZAZXNDL6NmgHJ1rKro/uDq82lKw82uNmwDNmBISttQQ +VsSporJxQEww4E+5oMRuDcHJ4b1SlkfH1xTrr4TfjNhhboZwYtbkRsTDX9oVSvsJ +1LqrNITqfFcwXpUQBJAPd+138xrFB6SnZLNTFYA0xtlvzn9jZE9cvcLKaL2oe8UI +fcWWxa/IrSqNl71CuSDDZWIDPcN8aVUR6/2/2crlAtQ9NRNj/jKXtyYJBadZD9HD +4saHKVreaYqNp2cmhmYggJwxCGTIYn93LV14E9qzfURpPuB7GiRzxL9v9NY5N8CJ +MpezaZkpDyTUYuTuZ7cJFxDuGRl/fvG9rN5zSXFbO5TNfoASaB1qpMYz/U6hLnY3 +ENe+8H+CWIRkcL7naa6H+1qur+Y9AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBThJJaX9TZKRYoP +SvSL40b3yRmimTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFS/6LC5CB4UlA82DJRsJ290EoO8QzuOyM8OYYP6c7dn +kjJH/J700rGuyHtWNUCJSdrTUvv9wToJ18wDnUG4wc94xyOhCv5HXZSa9VgnV3iN +EWvC3GT+NFJLoc1jbGbGakiaTmP52tUdEl1yoAO26XyU2fsZ5IzhKynfcexrWX17 +R1Yc9h6NnBE+PS/GnNLUMVLyIPY5EmXg6b8wqa4xApZfY1P5WnXr3yF9J3SXsB1X +e9a+DiCL0oprB7/FjDsPRNj7PPjXUDenubr9qlH4GcXct2KjdFbifUQ78kn1nzDL +sUvv5r5BAAd89DqVBC04sjJ04HcAOI9qW8aNW77ng6WPr/wMenmeFkXZ66+Anbbu +DwZTn/r80D/YvYIiZPxORepFfV4XDXHZPMCHFL8BYN/aFhpGDsnVXrLhPRqshi5V +NjE1BWXuhYRwPJ0wkMO4CBv/Ybd2Cu8HgGLMJd2/47eQb+k0icG9EuaddgC33sAz +n24wiZI1SJEHFcHrDcSOOKMKDKo3o/VPMuYCu7zDXDrv94+GTCHKApHyXmeyyfVQ +nTkvHGL5X45gd520cgJ6I5FKsxV12yS1jQmYwpBZL2mfmK53RleQSbUAyR4zTALH +R/J7dIquxwjvhyZTm2xJMHT/fbG3K2r+EIb98Kta9pynDLK0sYdnqqHOEqcx8hRz +-----END CERTIFICATE----- + + +NCU NTC NameId 91EBBB7C51FA7F78AA3D44D3425B1D5D23975CAF +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAU48RDja7yUgAAAAAAABTjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDcxMDIwMTEyM1oXDTI5MTIzMTIwMTEyM1owQjFAMD4GA1UEAxM3TkNV +LU5UQy1OQU1FSUQtOTFFQkJCN0M1MUZBN0Y3OEFBM0Q0NEQzNDI1QjFENUQyMzk3 +NUNBRjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKD7ErORTdbJrgVV +IwH9h0Hh4XaHmeq4K/jA8rVifb7QyP9R8mRyxRv5o2/AV8/nglvws7+lP/cE3yKo +KZgDeo1GMfZguHhoQOJsKzKUFRIcxUAAYi0yXlMl193N9bv79GdMN5ekMqkFW7GQ +qmr5wjQp51joMdhcOl7mYCy5bnFk7iGgtwODmxf+ZqfHhvC7JksI9oGygZoGxcEP +M/zb3zNq/NK+VMrq2lvJBBqcYU3atmYp2Ip5yec2H0oqfcIl3WEmeI4OkdJQPlTE +sSCbkBrEpv42jn/pWVDFM10hlbMhIVm2XNYMQoaD8f89gpL5D04cpnc98cncnALT +jvGHSLUCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFNxWmY2/Q6DiQRpOgPjTU4QrUuJ0MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAGlEP +xX2gZjBAVDnJmwRFKdcUIp8ZdxbCKLeNAgG6eArFKfqg+YjjzR+EDRqKTIvkBQvg +1ySjRsC9WEMiuJReoaLIbkFaW5cQ8oZKBmoQYnySU44xzsXVD8pfVDknoLvAGTUA +LYGvGUPVrJROVSYOc2nh6ZDMkqLw4gMvIJLnv2nprgsXYlfdgJyo//+ZLb9nwObS +dKuVLY7bWsgwdHMe7TDDdtLZ2tgaQylInyHNZXIPdFgE03OPDgr4g0t1p4VR5MlA +oQzgsppvNYUfcAvQsga+ldkx93T9D9e59ldc2r8o9NowZ6bS53/xE6k565l7S7zl +BkSCUk/bF/R/1WJK4/7YtkfbpUDoR8c373jA9tMaZFgshlzbEQBXUh9tQ2PjG7fg ++57EUBMOxCvijQVsr77sXA4sHntS0w3DkOa4gPhOcwteb785q/1+66PETpYV6/5r +tdNNTwrlaA4UO8GXk4eBkSSqkeCyhtluXycwJSRYcyBwmMlKYPEB5EFetS20tPXh +a/hZTbRCtbpNkutg0nMk6m/rtIqdPzrY49dClrXUmTtfh6N7Mn8OZ84moneSq3y8 +WFUSyjldShIUFPPu5rrjrhbw6J2lJCvmaNh/P+BPVE8HmonefhU+JkEmM0tAjoSt +XTSPr4sD20OKoAWju0n5r5wT7Et0FAlGyDdFpUg= +-----END CERTIFICATE----- + + +NCU NTC NameId 91EBBB7C51FA7F78AA3D44D3425B1D5D23975CAF 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAn8723KGhUY9tgAAAAACfzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAxM1oXDTI1MDMyMTIwMzAxM1owQjFAMD4GA1UEAxM3TkNV +LU5UQy1OQU1FSUQtOTFFQkJCN0M1MUZBN0Y3OEFBM0Q0NEQzNDI1QjFENUQyMzk3 +NUNBRjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJNPYxMV71LoCXmE +eFQf4sfeJQIJQydCPRoFQRPLBu7LdyFZeBpIiAmlwPykv97Mj8YsYIAakHJGKJV1 +FNiAIuJ6H9f2ww8pdhpIIwlYrP1P92l3X1HXLl2Vlx8VIyKE9Y+VgTJcV/le8JdB +KH+sAhd2ut7Nhz1l05rxRE/pxh387L/mNWFsJOeDaJ7ECdIwD0VPFws+lSYdMgWi +mgV6HbDbge7mtGHA76VT/1dnSHNnhB8SkOHXYys1f5aGJPcsBNZAG/VdKN9IsO9G +vkRVNWm0XT+EjxWgm5N6XlNSeG4d8UcM1Gst0hNi2WS3ZF/TXVcN8mk3mzfn0JB0 +zi/jkzs+2n+HkhTp+R3k1vCazo1WqVZeycu7O54Y88LLVw+A4FOibaSDUTFvR+5o +3uNYO17dmSyw3Rf7BjqN/NKYLuK3TN//RyqeRPja2sPLqauxqHERvymYPEffgrp+ +b5LWbX/l1vfBDPOkVD0CFA9xeikL72QA4KxJkmT39E3kxDKJwILG1ZniWTpUzNQH +/YbTGXJNTE6W8y9rfaVhf+Ip5CsD8ZDMsjfqoDlESdCX+ywFgOfUttgSzhHpdwLa +ZCqXZDDqxfMWl/pzBVQn3H6f8U2tmd0dl5IXnsrMi2syvg5C4ZWFbWA15+0Ml331 +4ZetJn2mtIZ36DKO6m69ahruxFMRAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBR+xciOo3ZpreWG +hyISkCxoSlAg+zAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAIWSTfq8/L0xrkgp8ZCuD6DGWxRMga33Ma6FPhEhp0Hh +r5I9lqCZQJM919EmsY4YGYoNKlZ7M65XBUY06NvtLrPtQuJJXt2xEDqJAuTRKgco +kcPZIWO0L8rh7no/yXmXO3w6RH8eAiHOm+eQ1ELv41MOT8gR4WvNmsCHoU7lDlR2 +U+tkFEjMHNg+gzJbmdbBVtnvKE2d0YlOyhwsrqvsVMCu+B/zk1v9078E68DoXSh2 +KWzcvDytfzv7gV2r/1IXlfG2t/7RUUdtkrjYML0KlXE8vOIWZnFMV1pw+2hQYFLY +PHyvBybdfjEcdI0tWvgYtCkfVsCe+0dWi4VhadA2K88DXagGCzS5FfLyrv4smjIk +t7uvutMPS9R6MsaKMC9NzsQ5lnKWUfmEm6tDsx2sb3Zq0H6Epch7ox8ORK63ZdbM +eDETMKnZ8R/DL54ABc3S5mJkftBK/3StVDVqo1ks2nndnjWc5OP+x1ZGixu9KPMI +AMDYP5angOjL8KLoaKRdH9MkF+xCgzNv2Xo0CJUUSnrGMWbk4gu25ol01ry5tToL +bA98piH/kEEnAn/XiSoEMmvQhj9DRmMynnP/E1bqOWnI4ZaBypF3rcnW/A7yrYUq +j+tuxhVhrsLOtNQ4k1Ccou1MZt6AQxgJK8NpbTvDABVeluWK5womkEMqySQE1g0y +-----END CERTIFICATE----- + + +NCU Ntz keyid 022cbeed5d77060f2833e9d5376ba8bc308cd9ba +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAs0ODXDoF1cLtgAAAAACzTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIxN1oXDTI1MDUyMjIwMzIxN1owQTE/MD0GA1UEAxM2TkNV +LU5UWi1LRVlJRC0wMjJDQkVFRDVENzcwNjBGMjgzM0U5RDUzNzZCQThCQzMwOENE +OUJBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqERb96FkKKCAweVJ +CuXHWBGD58/JlKRjoDGwO7Ll4ff0tWIJ+ioA+w3eZGrC79LYyKOsVuAVRnQR1TIg +f+FMjd5zzQnxjeTtEDJmlCc1T/WDyr3QenJQLhecjt12SxScTMgAelnTPD2OyLdE +5RhxHDu+yXuoWgu4dJ+DhbEmOW8G1ktKLj+Ji0z5glutP8+qgzatK75DHq7jj9Wy +0Pq8JAaygMhpZCgfxluTpew1AOrovOdDJIddbXT8G52pLhkWFY20sc/WKOGybTng +L+m9y2BhnPB8ZKt6IwdijY9Gur/KlDPGfUjV4wsTPzq4aU1769Lccam4cOQceMCG +LO/h8QFNqt3Cg8Mkz/Dr4/hBfpNGC9RQ7Go4D4EfKboNxv3r85bRUrQX/NmY0uff +4vcu6nHf0lnG40ClEubtF5AkMBZVBuUgP/CPExcm0GPCJFSnoUhkTket0DkJA8mr +t9rCv/27qCqeUenoEpIJ7b5F0cZ0VlFyBsdNXfcr8SLUbIxxahNGDhsKB7UQj8RY +BP0vVlK9hqk44YoahoSpxAU7Q87TlYIwjurypvhsomavCcue8sHbtyeLsibUqtYy +Mtnh9nMrL6MQ2eDWH8RVi8Bu29eQ5ENXLLLKcuFp1XfWkysAVx2Ahde2LkIlgGeA +TDDhPzuFOmCgHMg7y7TmAlPGpm8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCiBghoor3Nr8rRz +seCZN7G7Dq0zMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAHWZAEt8Ix0IGcBsbwhRyul00PrzASZz+XN+q4JIicXYp +Xfb84CEisuEFrlGsWivZBMtuESnDAVNcOFjloMNa4CeDPIhR21HyiUrrjeKvgt/8 +pUe0+7mm6J+Qw6CDUmdobxhIFEqYNj06KCpYzRQ+CIvFBGeaFoto7VhQovMcuVoF +KioUgdD8H2E4MLzoh30YnONQ20Y8xQhWLBoUFRBIqjR3Wd3RX5UIlzwo1U/CGGOv +eoRz/1koL0pxS6uRC7btIACeGXvgSQ4UnLQFC2GHlarA6wLa6LyUwt42sbQIpi1d +bu21da3Mwa5LOpHeMz0UlwkaM35WEVi5wItuAHvolmI5vIJHPtrjx+4IAHY8TiIG +fq8iqt8l5hIrbnn95bt1pIZ/D/W+3BLkmxzdvg9TV4cChp8Dia4ETBZZ7Q1lmJC1 +4/TTlAwsFMMfRcp94VuZZe7o0Cy23Vs5X1HNJ7urMxQdj2wQvvIc8PbV1ZlwF7pm +j8HdaJmgXYwz3AucILbOqS36rZQz72c0cODFajSLso3Hn2SP/6jFwpU2bgED+owM +5tZsidzWXMQRKBjt+csxKh+X7IaiHErD2594Ok6Nf+W5h9rtCU3c+HWX8zWbhKV6 +/dsBNDsvszO/dEpmy+4EQx6cpqdXs6T/sS3z6bBa3H1kaIdMHNCkRve9Z3JMLGA= +-----END CERTIFICATE----- + + +NCU Ntz keyid 03d1cde438ea3db34d943181c1cd517d688062ef +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAsw8/v+2L2r8LAAAAAACzDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIxNloXDTI1MDUyMjIwMzIxNlowQTE/MD0GA1UEAxM2TkNV +LU5UWi1LRVlJRC0wM0QxQ0RFNDM4RUEzREIzNEQ5NDMxODFDMUNENTE3RDY4ODA2 +MkVGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmC5cXdSjxj8+qhnv +mfZ840yThIyJ7HRQPWS4NcnilxSZdqNxrgMOj5HmDcq3qZRlG80b6Cy39HnPRakP +q7RiUgmE0K6Hj5uh94UZXyQbl4aITWZfxXCwo/zTTPO60+gqDrBU7O+LTkjdXuua +U4KlA4bT0X62D4hWgiLCAA5RJWnCxTX2dMGQjJ07+dkNI9VEdPhdSh2VqsVo0dI+ +X5PtbTcdD0pHa3KNmmKEYTprhpEc6YCkTpg78yjaFYmOtNZDvZ8m6kvZyTkaiScA +kSgN+59OCpemDHuZHGUXVfeRuy+M50/OZcU/Sg1GwIERly3l0uYXObA4JAC083z7 +bxpwh2Y73H7v7BFmBNCrvwoQytekQMwvvhNqSxQii/U4yv7SPZgs+oo/fmWRa3WI +jHggTUFlis2nhnAUSH5XbPvGgFlFatOzrjbNjxmKZ1n3676cQkQ63qf6RkJuF08M +6p66tYVolGs37AnZTRVnUm9xXhXMTUx05OySW8FEbFGLym93ZUKVx86re9ueQ6/y +5HILgtgSfUpNPsgji/O4ZrjZ5p0p2XdHc9A0oop/zeT0gulU9eWCKUlMDwhn8quv +d2h7YcsZOyW3gpWXfE7vJIKL+5LfdvF8y3GWrgXj8HzvnJsUg6dpH770vtN2oY/N +lNM5KJrLvY8nnfsbUBDFrN9Af5cCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFADWUoQ9kUju2F5H +p9VeDFeJTlKmMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAnJZAoy6SKEn8eUyL7dwG3Kuj255/Xo2MS6mbQI4WnTrP +ofuecThVMhbR51MY/pbi/6LLywyd8zA65fOmUHn1DAcV2MERyO0lwY1f2ri7Tsv6 +tC6UAW37dWadC8te0/nYQw0vQ8DVc8pYPgGNIgViYuw/1Fn+ZGEOM1BIBWSXF8JA +Fz/4PiYzZ17Cur7zqLQk7Sp+5MzF1AqD7dFD9GgWrQa4ecCw8skw+uTR8xPYhcgO +QK4biDtZRKCwZy7cE2x9Kr0YPXECbmIVZI76+wFnT9m9woluEJKis2eLPFpiw9MQ +OE7NViVnd09z0lk1cLCOx336o1VKDi2hjsFbEWoqEp40OMIlKOORSFVluVSBO7I5 +4ELuCMSB6bu/bCSsvh23A7fewbhd1B7rscbXpZeW7SfiTxHUHC82bjn+Fd8uqA6t +F2aYbOnQgZdpB38aXeYrhuMZ9mWIyY43Boe5mPpEGP2BmbFR02+Z/RR6jf7Ku4+f +E/+cvWaN2HvHYNVzvVZ/0RzGKwn8yRadKqP3vzf0nEN94vsvKDaJxsxLbG55D4r+ +5jxkF5vyfbGhre6zMjJcQ11AOFzfq3xc1VHZasVs7JHnmCsIz6GlqVfl4+PDV3/q +eTLxUvgX0/LHHv9v4+Ha4lbmgaizTMQOmTjMm4RxiRjhhpJu9/XFTLu/nCt0qE0= +-----END CERTIFICATE----- + + +NCU Ntz keyid ebb2f4e312e6529c4ed0cdb68228580ae5203d45 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAs4nlgaQXkAouQAAAAACzjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIxOFoXDTI1MDUyMjIwMzIxOFowQTE/MD0GA1UEAxM2TkNV +LU5UWi1LRVlJRC1FQkIyRjRFMzEyRTY1MjlDNEVEMENEQjY4MjI4NTgwQUU1MjAz +RDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnAKMyBqxM8krItuN +0LyBLUZaF2hfkuWoJ5Ql5NcRZjB8KswaPpIrXzdE8Ball32d27xURFTPk/N9FjL1 +8VRnvC9o7In1bobbu/g3aBWLIQSmqLVIC7HZ6hwzsiYgKrEBM712cJibE+FDWqmO +xhnx1NP3Y7tklri8LJcdVoWALjPbSAaYAkCgG+EHzNc/GWInfYipuBoWH0MTbgbo +CTnQhNlB3Mk830GZVGRIQ9gifm1Fj7gIz+yLZYR1vIaIrv/P1uoCltjTFVx99w5p ++9D6g7z5s0wmm4Fwt3V66rApA6oyDzAnzagtqPQ/PVuwMCYNHX5xm4kkBxrYcXqg +rxmhf0CqbyNLrnsPQnKKR+w+jjxWJcGVNuH453laZX0vsm1RQCn8sw0QTFY0xT2R +rERsYqIAe2qQELIBmUGlRI1+s6B8CXd1ZJQzdJ8+SKVoI5WVJ+AsK49e61ud66TY +GTqmSVzWnTKgsCe0l87QNBfTZ4dL2FPCYWre7M4fKQJUrGEqo5mvokg6MjE/uGCu +FZIa+zo/mzOBphmtGr9pH1xCdE55hHj8HtRQQsdnyko320e6vyfjtFpj3moZvQwE +bX4KUHpqW6GmzV690SZzSD5HUMmfv2u2/RV3wbzhuUNAC9Ga975727NBaIz1quXx +jvuZ2s9ljqVxSBDEuA7LT7Zi8JUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKiK9ZDhkYL9KqCQ +yrcdzeVRMbsTMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAFKv9+79fu38BSlescAcd+KiLQC0LXS8o39BuXnzKopMz +tGvKhRnwMZYVV5anvEQYmdrGzhkOETC2EuX3YGNy63ONc7M054BGvvGU6TzvT4Vp +TJLKyuhIdgZSrnEOM9hKvEUa2PKImd2VIg13b8mWZVJyZwvVlCzx23jQiHq043Us +vrgsde0UpmQnD41stCdyHlUSmJz2kUIf5eslmeDecwGmvlFWA8VlYy0uWLB+WyuO +DgDjCNUsdnR2rrah8UwvQPvmOT+6S3UGUXEOmUFKnuIKPLn6L04EjXhwQ5x5k46v +BHpNbxLzaLxz/86Hd9ZSr2aK664ok33njiJOE0PS7Fu93VKtnRifKWIHXp3QY6YO +9NnHF09w88Ops0uGawpWOA5Yg6/D2OPtpOuBDNuBcSk5kV818oN5ddTJTQZBPZni +73yP0ul+Hf0iCZQwE+mr62I/lPqP5qnncn4LBgRA5YXBF64c5CIOqnBG0L2F8TGz +glUDw62FQsxQ7OBqP0qXM1IM/LO0Wr2I61EpsOZpdrz+knBPmldqqkqCqGGSVASO +VMHu1fdWb+DXd/8OpiuG9e50kCsVmObzpiEYRCHXEXSvFskZYADjknsxrelQnxK9 +OKlszf58gYDrF6cvqQ8dtfWidMDPisLYdTzsX2+GgmSKoOxhunxGg5iDTvnSL/I= +-----END CERTIFICATE----- + + +NCU QCOM KeyId 79100C2EA35C4FC14BDE159B56326FB731D1D512 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAGeszGWXcuHxJwAAAAAAZzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDYxNjIwNTgxMloXDTI5MTIzMTIwNTgxMlowQjFAMD4GA1UEAxM3TkNV +LVFDT00tS2V5SWQtNzkxMDBDMkVBMzVDNEZDMTRCREUxNTlCNTYzMjZGQjczMUQx +RDUxMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOvx/D9shcI+lcy6 +7Gf8NYVB+hJE7SfuU2O0RiWmfsOUTX1FsgNWqz+pxlNld9/6iDcQdM3s4cndq35y +Sm8cLjwhYZUgs8/4wJ9GDaIEuIlJM6QcCdC0q4VXJZOsXu7Res2U8s5uygVFA6+p +gpPo649cmiMJvVD2/G31bG0ddJZEoshfd+8uGUzgnf1Abm+WVdLN+UFlWUhRW1Qa +ywK1KbsvgzqH5ArX0blGW+/1J9NLNnERnSBwmHwIDGyxXumuDFtZ6BxxVxJlMGzJ +by0pOSr3s3b775nTTBigZ/HjMOC+ofecVCHs08oRn9Yv0jDcigRw2/5ZxKl5RNEv +eVMGWb8CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFARlutcftqqDpf9HPc5M+J+jkVIyMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAOMVR +RKo8PSVwtl+QjjAIQD8MwGTzk/35t8tSeOaU/qipe8rBUrOdduhEgphXRlbXBNjc +szMVMJqwrDz2JfhqifRGuOflfFSyQZyZzW7CTrEv1eaCS7MS8Ev7DedNVao/cOyJ +9dwDx0T6K3kXdUDju+TcvQa/IHTQ1v/BKdzSmwUPoD3nx6QqNvLxopw7MV6ykRQW +2niUQtdij5AIxsGApFbw9ffUnOO9mrv2veimrcGcjDXk2QDF2WYIfg0BKlifvmkq +bmREva8B6zrX7KnWgFrNh20805JRVYfSNwAiwzaWyMMmNlR9od70NkRaw9EpeWJv +U8tcWTf4OeUqX6IEYFBdmB+zbEg8Nf8V+bN6x/4XSwp5u9T3e70Y5RFa3ZjlAtxW +DE1jJdUVGeBlOf0WHeZ7ZQ2CvlLjE/t/ZzndgNWj3p22cFE+OE54SEO1Wc0Dcxp/ +FHAKEnFXyt6G6Kzd/PnAvxcHozgadekQP8/7cCjmnxBE/2Ak7msb6kINGOzOFoEn +CCFL7HeF/oZgU9xC3dqQ7Sxd83lN6SDq7fWNHAYq1L2Sq9eIBKGV28XwWJ/ZqTcC +zdYR7KZUAn4MYIwaeZdCO84ehVCi22hcrr5JkgGN2y+wxIVFoQHKU0kxN1l/PXrn +/AX6WMJZ2FWOFiZU7LTvykbGBoZ4n7oXOnfJQdk= +-----END CERTIFICATE----- + + +NCU STM KEYID 08CBB05CA4510B2A73299184EDDC9CCE42911211 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAuPOTkfU1tMgSQAAAAAC4zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzM1oXDTI1MDYxODE5MTYzM1owQTE/MD0GA1UEAxM2TkNV +LVNUTS1LRVlJRC0wOENCQjA1Q0E0NTEwQjJBNzMyOTkxODRFRERDOUNDRTQyOTEx +MjExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtAV9g7TDzfzep4bh +X49BFfnJKhxRMMaZ//V4h9Y8888Sxtv+oEYkhIbTNrLrl/BXolcjWNFrw6sHIL6w +xS9MEjgsaDKRSEdmYR/925awHuXvTEDltOIju3TnUSsDRjY+N8N1993MOP9w8yoE +kzvPorA7LARiY+wBQ5n7qPORQBbNjO9F+Gl7m/GWSbxrbOoZu5FK4LGgoV6GVaRa +RJR8JI1nl5ymlAqLTXALdaoohJ3y7vGava7fFbchMm6zxgLHJ9mhZp57TmT2X8AT +H23WUFaszMWawZAJ8j3lpLql31uZXawmliDZxrf6fg9GrEz71uPlQsXYyxoC0/Jm +563LgIsbyOXPIRGx3lf6lyFQwm2PIX+ic1WT1EDLhRZHLaNAcPtIgiYuvOr8VGR4 +oke6PnIpJH3S+4qfrPAbxhjkCWYVKx961PZbEKsD+Pi8MjcsOiMRHodm0qTw1HGp +og4hALgrCgsc5/RsOMyt0LnuWpxoQG89HXyGiMHp2dbcqCxEYe9sldsS1o1/1wBv +QRnfeOOUG1tQn41edRH7GyxhfPSrepHxEPV0PMLf0I8rd4+mDeMj78z5Hy//MFDx +LGWmMnM8ucOoQ7Tpfv2y7Hk6vIBHMYYJ5LL05zMwjXo/SMhG91eEBU8x65c09AhV +XfqLmtfuWyMQS9rzYS3SXlkPopsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAD0Rx2dHFNm9uoF +zhGudu9JIzCfMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAhExEq/hk3niqfQkTlfumRWuONMFTmkFznz7CHHJjf5os +Yh0AVsiuhS3+c48JjAzv2hZUrZ9z9fLgBkMqpW+7eEs98Sq7lh+plz3C/JlYSnJg +mG6YwhaWiWZGvLBsXK3V0pi9Op9OXDh3oxJbw7uR6xYsTiI10zOdVx509gahbKxt +xQTlbHggUQ3e6rQ031QFgDSaeSzx2uGG3JiPoqYkFcpQ4C6/eLoKsSmGwZwY04HS +MKAxxXodwwjS0SWSIQnZKYYcA7IKydKHR9iNxV72FUYJdx9YmmYSie7sqYO5IV3c +mDLkEPTSZ6xxUiqIsOImxPjWD4/n5R9i2wuqKOH4MuUrWbDsM402plAzAd0BY1eV +vZY6SWqrIQSMQW1Nj/Ni9qlhIpYa9RqbJM76ydDFnxSiGUgbqOtLMyv54CQG1zjg +K82w6EJ5gVIaQs7awxQ+1XCV4F42ICDeBC0ETPyVkLnLQmBk5tcmmf6kqEpZi8EV +BjevwgKIP0Un6RJvZv9wKJmaavOs5h1tmez4cDcq0JKvo3IssOQddc+BfFFEakPQ +7m7QO5wvvsXaGoJJFgIetd2MG0lR6TmXg0nPepzoGfSY4NDNlUpTCw8+AeQZdBe5 +YzwuvLi1Y3xuy21VwILKRfpbnlirGOtwczyIx9BsetNkrDt80ULjdQRi3OKblTA= +-----END CERTIFICATE----- + + +NCU STM KEYID 1ADB994AB58BE57A0CC9B900E7851E1A43C08660 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAARCCxa+8dw8FRgAAAAABEDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjU0MVoXDTI5MTIzMTE4MjU0MVowQTE/MD0GA1UEAxM2TkNV +LVNUTS1LRVlJRC0xQURCOTk0QUI1OEJFNTdBMENDOUI5MDBFNzg1MUUxQTQzQzA4 +NjYwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvD/+RcOOs0mhy+Rt +pNqF2rETLDO7MEEwxWKV5H1/eC3iZGQr8zXk3NEy+CmV59Q3rwwa7MlJtwKxCkjA +gaWQ1MtnxiyPDO2saZVKgBYvkJPq+fPDZxgTVAxIiOUElm3KyPRqJ1REtJWVvvj3 +40FgOlPs8JNioaO6n7FfPin4sF8utVSC8ek4WCTB2/p8NvqiJJMwDt4lCzjJ04Up +qwjT72FcYIZwoaF+DOxgWnABX4mGbS+o2t/2HtDUUE4f6wrYOBbPqyqnaN5Uyopt +GuI8doCypFHg17PowipaifR1gZNjTU3BsXfN5J7h06Znb0AJ939ttaAB+dKYtDK1 +UHz79wIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUm2JdAHEKONCoWh9AM2ULqAbVnW0wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAqO1ko +kuj7CbuShgq1VZf95iqT64OlNsQPnvkC1usCDOvvFR1+hOJ716J0qJBDx9HltNVN +QE8mkQUOzKFLgpu87kMOlapAv65DmG+yePnQpbGp4q4UsdG1YbW/DeRCXvmEKaAZ +Y8wlsemr8ffdTCKxe66IeZ8O5tELgWbw71asIyn6NXWcfxmlY8qZtALHNAsv2y1e +k19iaowgmmAnBH2LdHr5YNvHIB2/v7dG0s32wo/qIMAdt2sNilw2k74Lq4tm8s0+ +9V+YSw9250QpO9QSixcBLvspctptEa+gnW4WUf3JnoVPcePEsUe8ct3O6WKc6fub +mBa3leurvA0wyhG3tGHxqVnu34nKI1DNlT5rO+gimGzdKLYnbdU3PLH9NYZDg18+ +xHgonmWcPDSLNWzbP++JpIkpcgan9/ZTggf+93AbQMw8X6cy4v7pyv6Esy1lq1fb +W/c647SdE0diR5/LtUUInxbcw7uQBdwaPKQ0cmK+BNnsxlbWKZOmruFA6X3kYCLh +krv+ITi5YFQGTVXTrV4YfdfiV02tPLgrCAzasOwmM/YJdHTKVO96ksReg7VHivCb +RwhRTaeR6i/FaNwqOhRSSJzhwobmB3tQrap9cuLoTgKWuv3IQtTsGYoS5JCJhoeL +ek4wydzXJkuDuhS90kHBzUjB6FfJfXdiIi2QHw== +-----END CERTIFICATE----- + + +NCU STM KEYID 1ADB994AB58BE57A0CC9B900E7851E1A43C08660 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAoOhrhRmGH+3pgAAAAACgzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAxNloXDTI1MDMyMTIwMzAxNlowQTE/MD0GA1UEAxM2TkNV +LVNUTS1LRVlJRC0xQURCOTk0QUI1OEJFNTdBMENDOUI5MDBFNzg1MUUxQTQzQzA4 +NjYwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz6hEM1LygD1Jcf9h +ErwcAQxtP5GrTd4hiC1ZLyo12EG3XjhbEsIRjuSgWFhNUr3qdAkTARVzQ/XfVspr +i8+QUPU6l8wmUNSsF00C+wTDdQerewF+4MhD+8g58Q+Be0peTb6WDIuG9UTBHRKy +lMo+k6h+ZjGOedWUWhTQ4C9cyrO900ShP8GnTo6kExuoEBHbtYEbauf9k/GHhKDi +W356HGCJ7uq1mijjqBhEUVJ/qeu9uqFQd8dv31JqgPoXtdi87LF4+FTrEcErfgW1 +qmq+M4ujENILucOzD9Kab/KeUXOoEjISChN2phvBBcwu1EwefgDJrzOSr5xgYcE0 +4jI0Lvj0b4XeZQJClB8rX6c5peTnpPLnZWU8pI9VAcoy5V9/k49hovKghuhpsydP +udl6aUn6QCOY23/5Wxb2Ke+w1fLJy43BhEiRcSi0kh9ouYp3ecSjCe1y1WxRguWW +JFoA0tfHTQ32aG177qQGfmEPtVW9aMdSvjN1AICMcwx3SYz3SVmfg98yaLPkv89Z +zfVRswJ97/RMv3p2H6zY9YAgIamj5bV65U9kld7oMdEwzpoEc+mLLMu7zPJJbFmx +N64QPFUm9hBgatZGAPhy76mS7R3vct6KpQyJd2fI2obaAMdRExIHhGHM0l6pRiRD +JSWTILEy8KGPVqRMXXoanFanXKECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEh0NqalB29FEkHd +8osmQu7DgJE3MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAOEGfTAHps7wzySb/iWORBkWr66iL1xcHIsolzJqJfpIE +RLc2BvaHiRSrGv4BSG4Jj7VDl7SDpWgbhyOihaou+3bnpxShDhj7dK6hFN0uQBu0 +J0Xj4dqiZjcIHfsDujvyaYCqwQrBVZ3lOo8FSCNVEnei4R+vDrmBwmLGg5PNpXWD +FdEJdH6+/Rv01lSm/+VDeEADgqbziLFfpmoS2arp6qUJWpdwQLYoFmyeAd1fXFoX +8IGp+2qCfcE/R81Mo2gnIJ7HSKwKQ4lVK1IsB7QLHf6bgb9BDGE74rceKB0h5TH+ +NA2kQNyJMOdLv9yFFrMOopH83t5CFmctp+76G3VQgMaACDOt1mNXY0ScG6HbWItg +ZOrRW9XDy3nHYVSmyLGwSokO0ZdOeC/DhrpARKa2zlJkOjaupiGHnluskJVUEJso +yGRMq//zEtriwMQiPcXCKdjBrU3X0KojTg/zCMKXYhym8WB7dj3Qn3sJCF/1zbjP +MEog1L74QJ+RIwaPN2rnzrzh/qcBvZk1Adpow/7XQDyTtZUPuIttdkLYjG8bdS7C +fipndkRTiVewmRcXlU9EtJe/VfUSGSQdiSPrHpKJsEP4gsoRIoSjfGhXXz//JZyH +GjzO8g5XCL1B3bqgTOXDwjRhVcUxLUzZLB4Fh1dUvh422eWUKSSM+Su5RXgRyBs= +-----END CERTIFICATE----- + + +NCU STM KEYID 662D8F1CECDFF147A8B6F0EA296AF7F24CADF9CF +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAuWFA6XBdDE2bQAAAAAC5TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzNFoXDTI1MDYxODE5MTYzNFowQTE/MD0GA1UEAxM2TkNV +LVNUTS1LRVlJRC02NjJEOEYxQ0VDREZGMTQ3QThCNkYwRUEyOTZBRjdGMjRDQURG +OUNGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuEm7silR9WXAYkea +D8pHQ3g67RuDfGa4KMZwgq72z0ba+cm0PN3fkjTif98WnjB0ari2v99GyGXhuYE3 +gv7qobLf1yA8mlda2mJOKCb4Ii2Ggg24d229QAfpZqY9JO9myHaV4Gq20vec6G/N ++8IFo/4/Whh7wiM4GOjR3c347E+CoNaoyk/MrkhkXmJXHYVf1VypjsYVf5v0mRhj +CPfMyWFddNyVhkoS+Qj8lxk3mT3jG27hCuRvAldjLY0T2aCYoCpelqNYwsR2xicH +/tWsv7Co7pMYinmIRYY/lNKrQwGSNWNXSRQR9ZpE9S6FzmjNIlSgXYDqY6JBnYj0 +mMlcv1Xbues3NgALOsq5pOSwf7iJ5/F0BUiMqigD3fypTwqOtFGJclLO9Y8yA/jf +LUJIo5sMhFR6/bIxcFDN5bctpXpxvrAxUqwjSys3VjrrvXhQLfwwKnnvKTF51aRR +//5msmoHYfOoG8ZBFioZhAoPy6fgsdklw2dUzDmH/iygjfjOjKIpdoenKYpHJDPf +/Sv2N+NhXw9x1LCbVm/R6RDe4jlY3Cw5p4niflfaazECK/57hh9USpeom8NAVkyH +JW5PAwBIk6HcteOlGEKX2TqBWdbjvwZbykZc9j5+yO/87nnF6JWYGd2T2ZV92mkX +V9wzGnLuWtBNkhyIxDlRiX+0QSUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFA/xDSw8g5cVcTJs +5E6NDpcZCf3GMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAiARSAvYq5L6tT7ZHFu1HBHGhIEItrqHLTy4rKumYpLoz +AYeOrcb94DznA7m2gV6+PqmekIW9c1/aGxxOM4LhUzNxtdv+zlaOEYs4u1Ed0vXg +Cc8K4mf3QYwzyY4nksh1wXXFzeFcECzmLVvR/LzVH3B9dEX81OnmQyx/f45YjMsy +44juVDlU2sqKXYRan+SNpDRC29GDeSQpr3q/L550FzRcP0W+0H65vFxM134+TxiI +k+U0WSVfytxuDPxUxtVRzAdtTtJaFEiZb9v0XuDgzUriuHY2dXECw37lZ4ccR7Ua +MpTfK11/Iarf+ngJ65smKpZSEolPwq3K0o/HLZ7EndkyMAW4KNzk2/891ssu47+Y +ayUw8us5Lp10N7Hy2rkNW0vVuxSS0Dc958Ch8B/y1yu5kzjVIuaTUXK1W3QmF/oq +aOm7n95hOk3S4bong535efgjbHp3pU3ne04RIl0bqrFfCHtulR6/ycVJir70KRl+ +SxXVuLU8sJKXm2fdbnX1rCD7mePSrwwLrQQznEdhHHJUtmjBGaV7I9Z6n+zIwWTz +TUxL65wysig2QWx3FnxQPCk2jxwZOwbnwAnh0kr/hMtCh77kxeVp9DDj2yDou0AO +DCp3UjoPMWtxFFzLfS0DbIq5SEuYUQ2JIUKZANGIafsn3yEXYS4n9hyvFj5VNdw= +-----END CERTIFICATE----- + + +NCU STM KEYID 6B2780800A941CB47EFBCABDD8D1F01D529BF36C +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAuJ/ZYtypitM3QAAAAAC4jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzMloXDTI1MDYxODE5MTYzMlowQTE/MD0GA1UEAxM2TkNV +LVNUTS1LRVlJRC02QjI3ODA4MDBBOTQxQ0I0N0VGQkNBQkREOEQxRjAxRDUyOUJG +MzZDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsawDFWi/0qPpJzCH +dHwVwe2gZolll2Zd02jabZGdyD1JkXGJhXc+DdJrcSUwADKqOEjJptG2vARPWB0n +lz5hSXdHc4OcDy8LUxoiIG0wUysMBUW653YD0s8Q3Axj97F2AanSOSuQ7MuUXpIh +OjII42SxVVNWRWHb4owgt6YC88oNitkoINlSZmvnzlu9m3y0m7NClEdmwMgP+i4a +G5QnwoHX65j+CtNkzI4JnxY9ynFpTVcFCTyDQh4couwBF10E8fn8ScmC8El7m9Ki +dJBaWPMHSPv4YSVUHNO26y7CALybho8004Pv2xzfuOTvHKEuainEpj4WMTSNxcXW +teOqLWvP+RxeOwJwRbaBA89ZCeLPwG3gdCyDtNGcOLIUK7rh/LmfakbC9WHydMON +BVEGXwFlBr14df4SnE+DeZ1GEuqEWIl6k30XkkYTv17y+kwC3tOnb1bD66zKY9wA +d3Adb+GbesFumWfmOB6ikc6G2m3iqOTrkZuudQh6bMkiFLAmlYKgEHNrYvNSMu04 +JkCHaNq7rr9kwnvVSb+X795EQWg5Cz0MKcX78HQKSToNlVqNwdbMQSjh1qrPz/3M +R9NnEe3/bk9CdvCXlHDFR6xu4w6JUf3CRp/Z0QfXG6vKJBnIQZ3YVw56lR8uRTYt +wNbnn5LrjcYlAKhpUWhcTkIbPCMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPlDIyBEyaVan00r +ly2w5kJiI5aXMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAgaiArybMN+tIplAiOLku40NymENP7Zhg0JPzmtdMQXye +NcsKPJOhcMFI9AnxEGy5yjoWlX4FYEDkolLGWqo8VRKH812J4b9KOzjOzk0Q975/ +YTFT9dwv0e/j4EwkRdUjNZ+0KqkZpTqHLiBRStGEez7BvpegP6QoN5prEo5CTgva +IRwH5BqSk2D7zB58KkEYOJ9ERPqE4BPb7qh2+0E6oOYP4Z7WJVOTB643KHbJE+7F +/gArVgvnhn9We5sgIScSz8iy6CMWS3p3OKluBzhoTHLJ2Ju3flEScMFvU1wUJHRZ +8boNy53Fw4sRU7tYRnSlrLyq0dgd4BZYpKF5kkUgkTVzFNvlO7pXiqVvtHt8ufB0 +1LRqg5eaHkSuvZ+mRyA7o4PsbLDv4ShxFJ9vnTT54hG5iI06Y97onUlbifRhlbqR +1GtdXD0DiS7XUpazhmTX8z3EdeXPojlMEiQsvLLBGs1B3nzXlqxn5mjM6SK0HJgl +jsDPy/LCBiqnVN3cVJ64+2kwTQYUsvPuOB9YxcGOv0PM+DhBcaq5Kid2ObnAtRhg +VWGHAyNnNoQNVbHoXQbq+MxxDP19egwgW91YzMKdfEWR5Vwj3RnmSlGtcaPU2AQC +9rB8LrS04FC5g8EQaXH71nCOC+6IO+IcsYonjaPX9KOg3mmfQE9yYqdSYQCUj80= +-----END CERTIFICATE----- + + +NCU STM KEYID 9DA5C72CA00BE14B85B3E535C8B07C83E85BDFF6 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAuQsUTCeIQe9AAAAAAAC5DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzNFoXDTI1MDYxODE5MTYzNFowQTE/MD0GA1UEAxM2TkNV +LVNUTS1LRVlJRC05REE1QzcyQ0EwMEJFMTRCODVCM0U1MzVDOEIwN0M4M0U4NUJE +RkY2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA31g4sJEbAWaYrU2l +kH6Pa7+xRDvr3JP7JsQFGRSV5ok9tolxJ160QyNuWIq0c42NRswOGtGKbI/Kgqy0 +oaYd+Qs/29YURiiu2EzEhDTKDpcoPNkhZys0artLyKSy27NjIYs1OREjik2QyCRN +ZnR/XRDgT2bi7Oj5mwMSt/i6Rk7UnVkRCcJaVbcuMBPw/XVCMjCWjOp26GGwlEI2 +ZTz3coXQbaQ++V/+jA/blCQ+2t6bCVd1Gzy5ZF+WpE5mPkVVztcqdi/yLE3txqdF +suRsSrW6yrS8w0sm5HsJDsLfAuCObgL4FneZi5M9t3u6BstSOKzrPydsEHIgCd68 +eeH3xljq/A/xZnQ0cmi/ftsBy9MTJ0q5bvEOWw9agBdfR3Rheu5w9sBeIf+1JUEI +KGOiY15uBp09jIboIr8WwjzxWKfDrBPhdP92Zsmrr/UX2k2NW6kN8FxK8yiUQ8zb +9iUvPqh73KpFyyiZ71c0/LUGGhHgjDgxXQ0ycpto7R3ZdZ48nbAjD0ETBLfOLChD +tKQLO9rr5SoAIac6r+I/4fHin4WGmv+xi35zHy9yPAbh7XL6NUL7P7hnsPNxpbys +cTWRE5gVnSPXT6MXQu0YnbsPgWbjvjKDKuycuH1PxA1v5aGfzEXYvzIWaSohjEnX +k3QxXo65G2/HNw4SxfCQjESDt8kCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNPD6lqYVaWPQ9SV +v3MLK+ZsyrR2MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEACUuV4Bp8b2rL1Ekzu8eQEZBd8UUuiDcBubHYNRjcEXjw +stHz8t1AQze/3eVhRnFdcnzuITlu1ZJCa3IK7NZrws8DeKugWxOSHweATH2t5v6M +ioiR3S/725QFjZr7RCZDVH+FXkj8vVxGmU9NqH1kO56JO0gmk/nzuPs2C7SyevbZ +XrB+2BT16BIxGLVVthUcDeSV59U9/AoE/D794Ln4AJe+5//4GqWLpWU96sNntXH6 +W1PuB6ZtUxbLEy0tjWashEBIIDl5htncxt3CM8JhnGbApACob+BItbkUH9g8cUWp +Cc38t8ZhgnBF5XJ4PBo26vOXrIDCntiL4XncU31mJg9JKK6IK2DdIVn2mR9nYsP/ +qZkUHw5ms3ifgLn/roYRq0nLiVWaMkS5gaZRnvpMtkCOi1jrAS0UIhuGNyTGzFBY +k0EUSBTMJpTSLkzHcUnzYueNijaxGSD9cv0MDweA1lLpB2raeusv4J1KHwseh5VT +FSEkZ5gNWuNJl4XUNqrW8is0qe8sH2Hr7T3bcx3D77gcMwYGIQKMI8V5Gwc/ygpy +LmpBaeJrN6U2Qhe5101zojduaAwlMmIfuF2nu66iYQzwM5MZ9NcD07e7VUVAlYHK +UzBfNT53eoW03+CZltBUTP3S/ew0Aaegj+aVdC1dv7MI8utg1sEcbRIg27YsKaA= +-----END CERTIFICATE----- + + +NCU STM KEYID BD963E9AD574AAD94FAD6CBF416DD85B4A559942 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAubIolwyT7ZT1QAAAAAC5jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzNVoXDTI1MDYxODE5MTYzNVowQTE/MD0GA1UEAxM2TkNV +LVNUTS1LRVlJRC1CRDk2M0U5QUQ1NzRBQUQ5NEZBRDZDQkY0MTZERDg1QjRBNTU5 +OTQyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAluuYcYaM+pb++9TP +6mzEniemOPipO2F73qpK2wYLXBM3uRILolRjKXzrCxvYAfYqZ8SAaY/mIa0HBQaI +UTwQu6F3BK2PO8jjYeJ/1HAdP55Uh/0p0ds0Bp5sS57ukNpjlB1r2ggCrynd6ayj +AO3SpjDX8OUOaTyFO/N4PZw1y0TAmzOIzCxjfQrACMs0vdvAkKJ4UveDsrsRq8rU +IYeqDMCPJDnCPzHxvP/vLMVV8i9hvaHhMyw5wiCuyQtrkaPcsAzor/Os1y2I9wsN +pAxiKH70uo8TgyTHNObAY4v+StIyWm2Jkx7RWOcTzV+pFGOBmIbavM2CLviRq7y8 +o90BdZh0akNMGCfgc6Ay+BlUGasRasC/7p0+fPkCUcr9eVxZAmM/PFB/E4iHsIMr +3IaPSyBEch2JjuhHaxH2ymY5GBvh5WYdSHCZqez6M+efTn7ohjj039xZhcr946hw +lWuhM7FekhD0wJCAB2pngCG9/8rYfp4TswF2vc8c/p2VNUwMuAi9Nrj6spFnnlE1 +SIVXRmB+P8jFofDlKRykxoS9ES2Tyq/7+IeSAcZBNwx1M4T/AQ5uU9mkZ7Q7Do7K +4UCr0evt9sGuF4r3n7jzm/aruPHlff1Nuxt8+I5v6Jv2p3FepVzL0XqXhH7gRb65 +D3dhn3R1ObYVQlrGkPvEOifZzDsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMA8MDFO8hv7WfFS +YbXM93B/pEYPMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAA4PEgMwelUTaHr9c64aFyp9mreaAYmBt6eOzrIlMMyxu +FLsCNjp+nUdhUR7Slo1dEuB/KVhRQIsK6D12+acRRkPijH8orTpH/jDnnIgJy1wy +TCNKdzIaqyGDjIzPVXVRMqCzhV4laizTApuvoT2GdRkznabF+77OJJEZLRsBaj1V +UOZO+KziNt301J+698gr9DFTFkAHjQxoqQB8UtKPdwmL15/+ZxoM5dvEckCeq4r4 +fGTqlHOZd0t6Xi7YNg+mKFxEC/5zbyYDwOSD1xPv4kKPq/elNXnIeS95AuNBb7z0 +095EcFKZCSGs5K+bNQQAJ7hEQHMzpOvou9oWg/sEoo3Bss/QXPQKIEN3buYWn7Zm +vcuSwf8o0DjvyV1cyAEWZyi0JtxPHZ456UBsyHi8albRmqFfSyVBeidHtnkwUlww +yRNn3k6NovlFDnEKaIeZr5zX/DD1v/+pP9dqVm1LQQKLANdvM3xLKNoaxIYq3hpp +Ys74h9vIZjpcmyDB15DAg9Mefe+cfvj2qN/Q8IVc49N+2uCg2sc9sE5u4mNBQq0P +g3Wa0WPAjfNxKC+BUGdgErmMFSrUfdD8qyovhUK8/T1fUqHEPVNi6CysS785erfb +anrt1EOdtrM0+VwYxqixNSlV5yfYAHU2BQ61fi0OVTuJ9sdd9crhgs2d+YYKuvc= +-----END CERTIFICATE----- + + +NCU STM KEYID CF23E59526E446C3FE4F13EB686F624D705305F2 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAARHh5MqhrVrbtAAAAAABETANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjU0MloXDTI5MTIzMTE4MjU0MlowQTE/MD0GA1UEAxM2TkNV +LVNUTS1LRVlJRC1DRjIzRTU5NTI2RTQ0NkMzRkU0RjEzRUI2ODZGNjI0RDcwNTMw +NUYyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7kudFfo5X9GuWChi +PoBtC31Jcc7jaKjsYb+ZIOcIa2RNBItOUsZ2vVr3+xmbYVyg4mrnF7ZdXj6p12LJ +x8wFG/ZcjzPpbKZugysD6/ZiD71uIto52c+nmh0dKYqc7J9O3QM5NEY6OuG1z5Gi +LxYg6lmwz9upRS5pO4TnDWJA5kbbTrxRYa0Zyff606Rz3uJF2w+sTJuByi+HBJU0 +VKZbgGyAcxa+cpq1WKWq73tOCcPbznXWlEIZvkAJbjLI2EVeaSdq4H8RskX5nJQM +UaxwWBL6rR0HICt+qHYJR0pcSrqUmpCpmSMcDFA1+C8/XEPY0wUog7946YiRe/YP +B6I61wIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUNgeqqIe7TO9P5oQRTUxS+6JIP0MwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBxpGnG +WF83fjuABSoi2d+TzGIH5Mrd5tT7mSUf09ZVfy3crnB1l/vWCZpMS+UeZbAkfKB+ +El56qBaFBGY0BgNOwKSsLUOrWID729a52VX5PyzZQh4u48qbQbeiStR9A3PstedQ +67Jwv5U5ptZGM7+N8clWJ9z0AGEgkQCn5R2MPtB+REfBaENnvYepBc6DO72Fc9Iz +SyItdsjMPwxGrVSMCZvWid5KsTK9oMf0U3wq2ZCxCcXey4E8iNsyPf91Zq3IQXog +ot0hv4vKpt14Sa+toCPL8WnQ0BK4InXqhA4UAkdEk17N84DbdDDqUtcuOa891Mav +z1cOSc4iXMEC6TQ7CDcs6q58oObQ7kC44HeHhWBzax5XmaHfWbIglNKiPSxHwyvN +d2pbF6gkhgqaOG8nw8fEty3rtHy6orquFLx22Ty1YGgei8G56+snUiP8J7xgwycH +ouS0HNYaZHk/x0SUnbsufwab9I+mnu8QCt15ZMQp+t9WKT5oGocwokSp21KxqM4i +k6ssaiuImfgri8d5wOCz7L4IzP441thnB78+Q66SPSLlP4k+k7OlkrBY89jN+AHk +Enurwm4lZRd3IiLhBpzYKAo4yuCf0BR7sp3R8jrc6YKyXl3ugJFu6J7i1xKImlXQ +nd0AWxnwNU+cPx0tG/cEKEUHj/8C72cPRLdp/Q== +-----END CERTIFICATE----- + + +NCU STM KEYID CF23E59526E446C3FE4F13EB686F624D705305F2 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAoSlssUL0Ws5dwAAAAAChDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAxN1oXDTI1MDMyMTIwMzAxN1owQTE/MD0GA1UEAxM2TkNV +LVNUTS1LRVlJRC1DRjIzRTU5NTI2RTQ0NkMzRkU0RjEzRUI2ODZGNjI0RDcwNTMw +NUYyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5PWFbvS9NMpe7WsY +l11K8lQNEKS/jfm82cdNcXoP/N6dNlkLjyAX1xEEu3MMGVbkxLOJ6BzhUlWb5zh+ +SThkrpSV6DKPYPOaD3xBWmthk+C9+T+R+nrcQc6vsqZxo6UrncXMaTK26h821Dxb +YP6Ggq5pnOp6lRCX/D9vjHg4WQXq5z4o8lrsWt0T3yTSVo/HgVELjrI5bJrVPGGU +8yX0mZRpYwCPDLS2RnYIGpzpVSdYhVZv6Or4DOGEPQqwQZgaod9Pllx58nQVTDHN +7iWr+off78z0/oUjI+H3UfLEdbqgO+uTqcoiUGhtdEVITuegGIuyR2XRGMGkzxTs +lcdXiXvzYy3Bt8igmgmmT+C3wQko6OmM6v4nHjmrt2toIgVWRN6Ccm+kyKw7j/3m +7zMjC2ZrDazvXM41iuWWEZBeKSJNlTYfuGxxuLDWHWUP/kfz88j1pUVhL90I/z9k +wZTSIu3SOkRvJw7pWchvbf8DCAVtLQchKTkfzUW3nyBPFEyND0QZnTzTOwNxhibX +Qy+QuQitt1AqmbGVT1TTGZRQzLbOVoMfnH2g5NXuzl+Lf9NAY87lyWfIQc7Cy8ce +7HL1RLUO0S5KGVfwQR8be2JKjsCGH4PeaJD4Nt7OC5rZPTMxFXvepoxsMXruKOVR +E89K2EMZgqhIEZztnb9oSBk7XpcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJAdawE61UwnOd5t +xMKK3YeACwqoMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAh9WoDcM6FDuWeRLFPk0DtW8OsEF7Kuo7G3JVt6JUqagZ +C0QlvtFobjTnng4ESsSr3PS5NSfYabU8mPKpakLXAoUmAg+OrJTq//yWG+g63yb7 +cz6dgtZ0Hp4Iwu2UbTUIMG1lGqriscwLPPnqKMQI5hZBgly0blxoqXqICZdpXFz5 +dH8Esaig7csUjLf3j3h1se1IfaTzUO07hAEAkw2eRLxDhs6NGHxGPswQLXVhGUXD +d7dJSK5ITGOe82tQWQwp+FouKpLQo+Pa6jhsVVgALrliWZwUgU5KnHUh5X7Rqppu +DEVxn3lrbAxWATcMWSEjDmyq1w6kD8Xy3mxm+JKQvxpmTzYIB6Li9aP+uLHGIytj +UIG/4TYYdICPjpW6HW9a4QXSat8HqHhOl/Wsw4aLllJXCIjNheGc5Hy5AHTyt/dA +bZBmRwvdi5/eiIlZHbOBYXi+6D8/bf3i3AJOkPAsYLEOY2KGoXaf6VmNsEDWfqqF +Jld9ggS16+mOD4nlDe4szaTke5NuvahTi1gwAPfAemoONbETC6wH2PSWWm+cB6hM +uQkA6PXk8EunpSdJeOKJikazJ5+Rkwp2BL/yObK782jrMjxMzak9J/TLh8Qc5IKv +M61RMptdzP4u+csnrLBtuQZ1AUIgdEy6ANIqBtt8jgQ18RquOmazVDfXc7HEw1A= +-----END CERTIFICATE----- + + +NCU STM KEYID FB17D70D734870E919C4E8E603975E664E0E43DE +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAudirr4J7m+zRQAAAAAC5zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzNloXDTI1MDYxODE5MTYzNlowQTE/MD0GA1UEAxM2TkNV +LVNUTS1LRVlJRC1GQjE3RDcwRDczNDg3MEU5MTlDNEU4RTYwMzk3NUU2NjRFMEU0 +M0RFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7opxbz7RjQBihWTQ +HzLSqIK1MN4LMS+lI5TKEBwjXk+QieqL4uRwZ6b9XOKlVPCK22HskseCu+f3v5ZA +M1fb4jnzotbblUh+XmVDXojpJKG1Tp+elqpxat3wgNBFo9eBkWGLiiFt3ZC8T0d8 +vxYBOHH8hgvIScTBbqdG3Q9vSCKVTMQMC14CBdVqQ17r2FuOvphHrNBkfGvE9TI8 +RehdFTqPyzN1GSI69ed9CqMO1mOfpHvq1mkJei9CVnOOBobwCgyViT2P/odzdZ0b +E+Mr7k+s3yteqGb2snUQt/SzCDnoWvFet6OAtjXfT8/jNEbdUaRfMv+wh9+hVa07 +ceQZ3HrIwpBSsj3G7UZqnOja4LulgCnJvDCjWwlVoQzapEq8oSwp8XJt20bI3WHk +fL0+V48iCCISwZluvy8lODTjmtbneqK81oHCdVLw6OjofRK7jTJyVp+DuIW20o7K +G8qf84cqDdcOJE7HFm2RmCNi/umVHhm4ULYYhhJD/hkYW5eWLWuTEAiFwIf8HA3H +UnXL2SxP3p8YZOdno7hs3t696M2QH6Bl6qu77zHPgGNFfzr6nNihcxCtQVBihRsf +5aAF2Q9t+g1ff7gDH0cZjwZl6KEzVcOjCLmvUI5sihEjOzWjLCDeBbGFWDKoMkQO +kES8jPc31wkL8F0d3Bm4Qi6wcAMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGxjwg9jW16Bo6HD +mqaOZqiHlwQiMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEASDN4MQXOSZ3fdwjIRYLE/KsMjB9TqnpeIpeUCKTFTvUH +nH/q9BH5XYtqOMX4Xhb/N6qwYONpDK8N5UG7YkKaqIEZ18Snzeo/2RnK4sdp0Dt7 +W8YFw8wNPMjUEwp8vXgelnbJGNPnQ7vsL6S86xIEpPyza/tBdrGR2lkLBUOUPHTc +kZwUGZa35fTNNYBFLMSEtfh3NpHyQl6u8yJf/oywhumI7r9VKgzLoQY1z9j4szzp +VZDe7e8Aen26A17pA4NYTzPfsm2vPDyYdlp5/Hz1CJ7onxn3W9hAJawxes1URR1i +mQXW9bOc8+CmsxO6eJL8T/TNWbomTu6xDUOx3eXDHIktFANPqe3i8iJny1Fanp4r +3KMlB8Wr74W2t7bMJo9vhx7egMgeIHL6oE+hhCqQGNecLR1DqRVrosouTA0cp3jL +PectRA1LqadffETGS7KWIhAj4YvtEhon0VkxeFYRCh9eOU2Tl8Qw+2BT4DGnLGpy +2WXOBkpzwPFzq2iACbaaBAwOtEGScuThVjwlWscrwhwwaV2lbYoveWWQEZVt8SsR +nyyKc17CtO2y4QTjH9tZEAJmNkQzZnn5qi96PGC0FVVAA01V58occrfWvejUGyyI +bD6MqH7G+aFepvjtWHarYaAJK2RLVhr5TunM0h9Z3C64sfWY0atNu4dIUNjLwaQ= +-----END CERTIFICATE----- + + +NCU STM KeyId 0056A610D53D1B3B6DBD14094B2DCE7E1F756ED0 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAADNF32F2v5IcTQAAAAAAMzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTE1M1oXDTI5MTIxOTE4NTE1M1owQTE/MD0GA1UEAxM2TkNV +LVNUTS1LZXlJZC0wMDU2QTYxMEQ1M0QxQjNCNkRCRDE0MDk0QjJEQ0U3RTFGNzU2 +RUQwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7RpZ6ZyvUKlAjkV3 +Uf9ORAhpETHsQ23YpaOwLUf2SMNMPjRKj+10RHZj1u7pAB5RdzFbfVtPHYlAoE+7 +DIgAawbhO/XRsiwPsljAev5tzLN9jxmxeE2Y3bdyhlK0fuKwHIl0tH2i6Rsmawgd +/CsvHz+ErJr4fLitWsfGpmJ6ZXsU6UDI6bmNVp3+DukWpGwRoQrJ2yh9dkbzmmku +oZOThLM5zm3aWLBJqNus+QUqvj/8Xm2C0uzwicRJFA4N52Vn9A6r/9o0yGnuMWhk +LbhWRSckzTw0ATtnY/5ajPwxojcAHEASRxuJnPrvHqbmxSqpYV/ZBEjV6iJS52RN +IBhHuwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUBjM1HEcTnbFGaxkIk2nvX8xShIIwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAAgS3q +v+kvDHe86uLuD+mN5SKv1C6rbvAp39C8pylhd4FXqxofYhq7OXGslk8Z3abLFvQk +nr/4kLh/6/snfoqZzghYX2Zye3diJYXI1EWgIdlHkSYUBaA7PpbAhXsGMLfvP52f +DNxLzFMdCqyiei5UFpPdommnwOuD6A6M0DJuY+kPu2W6AzMW5t6vZejorUf5TZne +KDoMyOtV5qow9vitd+GvopDlav7S74NyuvoGL5fWMN1Uq+CooJ2if9T/z7ALvzPx ++3CeZwFtUzaXrW10mTf7HKIlyR2duyTaGshZ18PIz+urq+xJwwDu0WX5VPsSCebc +CHeKXJhcLPu64Ql+QwJTepDaFPSUbaypGyxrgLx2tFM93znotK0HXdDsyhZEr9I7 +/TWVcdwP7khbNolV6nzmStXVlcXhJQ8F1KZXF8uH/eaDGwPsgREnUcig+xY5GJz/ +Msz301pMZKkgRWDoSeg52Su5s8C3kh4PpX9CDI9l30A4zN9SH1Xbusrpg1rzsl0V +zTxAGQ/b0R4WKeHjrBq36/r+ww+LRK30KiZnswLeaEc0BzS49epbyocPrQPDtKHr +tPPE6wEW9aewKJ7/TJc+AnWzApUSrujLfrsTBcR6C6QzBmius5IzXQG3HSWQHkOW +YPCjccjW/UThYHdRc157bNab3dZiWUjMRN+V/g== +-----END CERTIFICATE----- + + +NCU STM KeyId 571f806b47cce79bfa35947ced88b8d1005ae09e +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAADbqd8i4juySEgAAAAAANjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTIxMVoXDTI5MTIxOTE4NTIxMVowQTE/MD0GA1UEAxM2TkNV +LVNUTS1LZXlJZC01NzFmODA2YjQ3Y2NlNzliZmEzNTk0N2NlZDg4YjhkMTAwNWFl +MDllMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtUc9QrIge1pr91RJ +A3GmVcUTxsmIBLoMtlQqeSkldiAGTQulvxrRBsYW4On1/KvTObryNrpJzIUm9FZS +EndQNKzpBm+lJ0q0BEWCjtfqFGGDH8E322tTVkoMPHSqng+9isrvFAx3g1brNDWq +sWgg8M/zTZHNk6D0JOTbniwNhT1VAlaqIzxIRxJOnkZjMND592VcvQlosmFto0Wx +gontNDp0bhO5kTsf709lV7zgf/F1eNVXH3FcFKROsXSmmkDK58VXz7tQU4S/H/1H +Vc9pXR/RM9GsYIZJ2KQjTDOLp1ueFMClQvgf0UVJKbGqoAg8HZ3+AavV+Sbg8LhD +J3iqSwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUL5w0I0frKOTO/4bvyc2FryqO1p8wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBUd3S8 +EfXvSHSeTsRlO5SJhtTvBHKtgM3soOfgv9JM9QCVv/3+NvWQgFeiKEAtsFXwfy3n ++JCkU72kfgqwUV53AcjygwOVaWt+ttqXvES/V4PFJDCBELj6eGmk3iu1sx+FKjN8 +djO5A2GftVvvQaCMS3DdxwEuCdzJKsFwuT4ugFxQfx8a6OhYLaheJa8fR8hsVBZ9 +CRWfgUEpuJJP51Htrt6TRmGjLqBbs0x6wWG42/RC3xVTMKzarR73xi2aRieXfeqK +jvVFm6WVYqYoAVPEt7nIzcsoFd4idCBrwS2M+T4A8NF/Fot/QY0u1rPfYXa+CgTi +YeP1UiRe2DVW1SkpAEcKwfQiVnzaXb1DMbdqQr9Rn66MCgzp6T+wdUu0PztXd4E8 +xb0Q8W5Z8TYhD7EyfEtrPpqyZzkGtT1LK/IAyNxiNFGUY5eEIWdH80BNz7szabwO +XbMB7yENyJcnce9PLEh2tBYjsjUt2Rk5LBLxAVYAHfhCvCe4guMC0b/ZzyV6LyWq +ICAZhqSh9FzET00EOtSQnAGAa7Xrdn0xyzHvqGVJyI5wdfhQsyNawD+HeJ0mCW0Q +cMCiUP5VvxK4TPAOWYweJofxoxgL6XzcIcVrzMDyglcbwDSIBqUBaN7oi3edWUAC +yQGAFYV9M1edyM/x04qtJjEvqCsBvgRCVQf2Ig== +-----END CERTIFICATE----- + + +NCU STM KeyId F3C91574A6E773FF13BF0C6BAD7A7B65CF1C7820 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAADmLLDdqvg+eXwAAAAAAOTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTIyOFoXDTI5MTIxOTE4NTIyOFowQTE/MD0GA1UEAxM2TkNV +LVNUTS1LZXlJZC1GM0M5MTU3NEE2RTc3M0ZGMTNCRjBDNkJBRDdBN0I2NUNGMUM3 +ODIwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwkxNXtvoXKacz4CY +UqQWmjjaZtDjSUERttzjh8tn0j+t7W2KCYnBM8I/pli8bq5/7rDa2HcamsQxzbKC +liGSID4XqKPxAhe9hGRLReu3QrZndnjeGuu/Uxq3qhbI7lX9YoRbdU0fqm+Gb6cH +HzmKJosjjmncDShb/pwD1MFPK/oURA4oxq6aGGIPDOsnnU9kxU4p7PIWBiiuweCK ++lKZee6NuVDRVprMcrPMEhQ+UpkovELVKEWssM5Fvt+JM/Fdg7VKAGrkQO54sndC +AM0qrqrfQF4Dy1N97OUvUWZ/pELT92XraUGiiAqXrBXko0uukJFbZrAIPlw3zhJN +SQizNwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUCgjUHgw46Ud2QCBf9XwoWaGT++IwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBPX1/f +58J9RfGM9NFajbH+emsfB2WnhTypibUdFNCdonVqC7PnbOl8sayFc9sVvMk2ikj/ +LEgbpLH9RPRu0FDqb5ltlKzqefEW3bzHPot3BW703+ntrLvgyGFU7Tpy0nfoLqXy +YdmKEZvtYM0aF1EIRGdblTkexzidH1rV3kk0fvS5KrGrCDrtRWa+ydyx5p/gXp9v ++S6Q7s5SGpLvly7PREksFe+R8sN63abgn2xRMqLi7o8CJ5BaHgJcQGf0xjePdKzJ +4sbL/z5irUQPNPvsDk+A37MR6/evKsICsOuwi3MVb1NDtLyC/zTJkv4o1tmAeUZI +4RjB3FXfLAIKXGQXqMhsPtjtTxiGaR/mi8J02I11e6MOdLXqlUIVggh9o+cfUvd1 +LVWULKGLElkVL7VeSRAZEg3f2Sua/oQh+p01Au7RxrN8u8dxLoQiux9sA0HiPRQO +R1YFRj0Z6SZJjj2g5LWjNz5FUAgZl8vu7WS4FPrKMVOqO9LbuANdjwYCAleIaewD +H0pFc7t0hJ66y5BBakcmUKucRTO5yjeYWxUzdCVhqrofHZscgmlr/1az/7aSDpyK +w9/PnEtUSgCEq3I4Z8hKgYPxZIvkPUejzrUYgo6albkkp0tB8vIhLrmuk7ThL9wm +j24s6T4rKagFATcnRfIKmMbKroxaTo/GdMPDLw== +-----END CERTIFICATE----- + + +NCU WEC NameId 19BCC8BF66E8EB3575C1E83ADB8D4E1612B56B0F +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAFStmYspu5DnXwAAAAAAVDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyN1oXDTMwMDIxODIxMTEyN1owQjFAMD4GA1UEAxM3TkNV +LVdFQy1OYW1lSWQtMTlCQ0M4QkY2NkU4RUIzNTc1QzFFODNBREI4RDRFMTYxMkI1 +NkIwRjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALz8iOFxFOzvJZy9 +Zh4J+YTvYswQJQPq1jLjq88rFomujZRi++ZboCi/hHmjyJLra5FwPhVleHOzoAGz +E9Kll92bNn8j2EJqEVcQL/G+56ZagO5Pm6o1sllGZElmi0rofLZHFl2PflxFM3dq +OSGpxOv7Qj8HLaoujpDcgWZ4NozrxtzvRhgym1qg8iPVbgMa5FNXWDYLjqdQi4eA +50+BHndm7/yRxi+ImTh8hgcJpAQTSz8o2fIrZgx0py2FopqKuXqUGme/mMowltWj +PT2NTfZdkMjZtFoZM8A/Tq+IOntf+nJPCKgcZtSSw6stOqDqCU23B/wfQhgju7rx +w0IoGj0CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFHsT8EXEc3v88ZYpcZjAjTPk5j0qMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAYh5C +WCRrCmy7J1xLAqcBkPKJb9EfxypjOCkWagObZ+zTshitGEfDc8iVPkDhYypNbuWj +fldlDM8JLVt7wUf6O9M4IAZpsL6jQmmep02cyEfURH5O/AQpopdWA9az5A0oaY4y +5UkMCw8oQd3LKznyDxZhFfIKLj6s5/7/koQ1auKQCBhSp+EuR4GKp5d+ut4tsWKE +Vb5FcJZWud0kmWQXqAJj4pC/ZHnbnrVk1ZRtX4gr9xSbVsv1lYV887hHv6pL2LRH +me2uR3t7dh/P3hEj5LAfStpiiWCGKC6X/rUlxzvGXXDqq/YoglMLvCLOSEr0g77W ++hzDtW6z9GYR29YV3GHGkQd2OEaAoCMi7OK2OmTky0dQWDZ4zNwXvFMm+7nYTVd6 +ezgpuJzmxq+2JTnKx4xlWXXS6c3gGMzYD5+treTJcS8sET2T+Y3v3WFwjZnSJmcG +H0W7eMdyA5gSnb0f1WbKw6hecfYMJTBllROWwxSk7P/TxMcrjRiVAOxjtENy/Y7J +ikDcNddpvS79+8PO6VobSrpHQpwhZfrv4H5601fZNBwYbLDpGnB0DeNweEQZI9dv +oOEg0Qoo00btDEAYO8lCMdnaizzo2nsTt7TXYvZmzkRLtqbUUjlG8nEMHikLdmix +o9PVQlHVjmcwtKXJVp82F+BVfJsVoxW6jJoJTUQ= +-----END CERTIFICATE----- + + +NCU amd keyid 8a0578cf56146fea399af903fb5b0ac36eb2786a +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAtgc6/n27fdGUwAAAAAC2DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDgyMDE3NTE1OVoXDTI1MDgyMDE3NTE1OVowQTE/MD0GA1UEAxM2TkNV +LUFNRC1LRVlJRC04QTA1NzhDRjU2MTQ2RkVBMzk5QUY5MDNGQjVCMEFDMzZFQjI3 +ODZBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0C64sknHcTVUL18o +rfAg9BHKGV2tnv+dS36CR15g6Vz9ih/austomQHvJ0jI9cXGSo7Wgnbc/kheHtb6 +13X+MI4Potf8Du9TIxRM7xNpe9s4QdcYrBxzOgx/GogD6EpyFPwMY+G18l3IsOPC +bT3BJufvQd+mZc6qlRyjLHKNNBFlev0hex1geieCO6JoiCD7Sn4yJr731py+VR6V +40OcIqIYNutispwAYUFAb5sOlNjD0rfYGiLSH6d/tzSmox9Lm9YeiSXSyumsPKra +3VK2YWfZ6dR1AL2/6JUOTyJ9F60EFMKVXlalteZ/OV3dEF+f14oP1qGXYWiGUp4W +PzgT3fF4YcumLcYXLgA1YEZV/TixJj1PBt360nSDaNGRNgpbhouy9KuBBwSMpgTV +qtBR8nwovSG9kwqXbrl2M1nNLVK/JgMJoijPxSIPq3AQYqLDZBkoq8anuVxzbvqq +1G6rEAW/KASL07gPGLWnNgBXTpCTSySdTn/wxTqw2PnrGJE25cg7NnwnHEpQuKop +DQgJhLucy9IslUG+tKTcrDA2f7llB/ubHDq8R0nTC0CqAKySRMs22A3Q+GP+cbaX +Y6Iu9PTjx4WbGcFb0aBnUF/7QQyhqen7c548lD2j7FceGPdtIGN7UrDQisMgsrP1 +ekjPqvF9dirctZBQImd0r+qJVekCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFAbUMZJZUUpy4KZ +ca28JgwoLrNlMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEADz9I6fa+sW+I/fEPG4lNqZvlU7zU+itGdC8KBS1fO2fz +z2KWTfg2jMbUdsa/0JIaKHyr8EVreAcGL72L6KEGcp0uDrG3Y2w/bPUJ4FWhtB6N +/O2m62jr4QSx2XdWgDFxPzVhGKRqKzmJOkJBi51ovHfovToxon6sQ6JUfQRKNnuV +IE9bKbYnn5zooRwu7PfeXwlxN50aKXjz8cbMvPxLQUQCQ4pYsogMoVz5dif8gyPK +FMJpY6edapJIzz/gfd8oD9zEOYI0M4OcAHjC/QTvWwkLOjIWrW192XtVpbS/V7Bh +uhYujG/gjGJC7uicf74DJuT2FtDZCDzC7n066erHOuI63o9QcW0xTTQqD4x62R56 +dowlHz6J/AX64wr24U7mt0Tl2EiVH479cwYcHLIsG2k19Q+R9V4HoYnHqS5gnzvp +DCcdj3jVbC6ke+wYiscXYxYbHiipxHAZtfRfUByl/SnyjmJjKfLNXeMeunzsKhcm +B7LfXlifx3GeavRcvDf4JVqmJOFwcxIqUsRypZWkmIVDJaV6TChOzcBRLFDuFKwH +CKSNGXGq2u2PD77yX7xYqjrRDKtRiBTkf3x7pUF5HZLVEpGtBWNWmPUv52sC0xV6 +YKQwFC2hfqOz7rT9Qso0RGTOJBIeaF6TbRm6yrd+J+2k3TAXL1FgoORc7Z241RQ= +-----END CERTIFICATE----- + + +NCU amd keyid 90e007e175574201a7a8dac93b323114a887e1e8 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAtlVbEUtyFB4jAAAAAAC2TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDgyMDE3NTIwMFoXDTI1MDgyMDE3NTIwMFowQTE/MD0GA1UEAxM2TkNV +LUFNRC1LRVlJRC05MEUwMDdFMTc1NTc0MjAxQTdBOERBQzkzQjMyMzExNEE4ODdF +MUU4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAosGzKCXtIm3DVz4z +H75N+p7JNoNJEi9hu1/i2VjjJDsMPr+bRXswr1d1aYZja4KaWH+3iq71Fi4uthpi +Y+nm7PSkcO808heNYgvjOPXX6aeDx6L019SI8VidLKdKXcUGcXI1z90WJbvmvREp +jdCutj+qLEBzanTujNERiSDvC/74K8IpktCvsOPruATIU2f6+sWAPHeoNZq/Zw/E +SA39Aw0gv0UFi322DkPAEmFIhyo27rC1PQoLKKrZfQfqFmx486m4EZTsCB3V7GBi +Alq8DKj2Mtcb6eZC6r0BKbCTxwyAfh8cf88i+labsmlCEjd+XUF5Co1cHcN6c/ZK +bVt1CY0cGAMeeLNuYbNErcqwQPnlI5SeD0llIyTQEBQP1kzeGP3LSJ8WL2rl0nrL +uMtGaVC0m+OXX2yqjcD43OaxDpS7Hp39xu66S7zDp68CoXp78t6v5XbP/J/4A3/6 +9AOAEN8RG678c4Cp7xfuMNYiiLmJ6N3CBGKM/ktKltcPzq15DLws2Fbvu8ayMpc/ +9D25Ec/WiBP6HHYuEPfKQqwXhc4waRHi95I+TYuivVruY0UXfmGMYn0csOehAnZ7 +T8iUi1Wd+kGdaW1VzPnf7HIVPWo6CW5G17wzPLqo8rVE88ueqvG+LmB08uzbRcJg +TwldpwxQYHvOFh9plD3FOIsBBU0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFP/hRQL6KXZ5Swe3 +xaxDNx6ybb3WMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAfMUA3RtJSpk7zynDCZRQCr1g2TvHbX0LN7unQHePPLXu +g/hGCYiCmLk0QKZtn9Mg2hayqdfCvcN1EIBWCDAV2SXdbwSjZiPHHgrDdP9uNg03 +VFS7na8NHfY74MwZjV7wTQAfncDnT0chtksO6n6+kdGnVPrF4HybMl7PebauehBH +4ZSWZ8Lg6m0/28fcLIvbF1bafko4i+YqGVBJTQ2coYRmlM0bKhJZiVXoIN2YoYRA +jeuLc7GZ+u30nfMrqXbL0RjRJpielrZzh/cGOB6X/saHdMbkN1mPaMccBrCowLH8 +fY/5MqNSNXBIxE8uXkrW2x5yo6EeJtEH/tSIMoQLxmZ6BrgKRQK1u5TIrE/XnHyE +K1+bYRMZTV59TBhj1vWB6oy4Qr1zZTJ7wCpXV2GJbNoAp5UBdcTORPU8v7eydQgi +TfPhbMQb/nKDQev0Z6Vz2ljJaq1KY4ktVkjQzh2io3Bfo43vHym9F68wOgULO/7K +0l4Qhsddj3eka04QGVUDF1NVe4DNxOklaAFkI3G4daTwUNcyP3fOGl84U0MBY+vG +ftnoFV+KPKSgR1pDivw7H6rZPpc7EK6he5Sl4gCjrwuiuOKO6uT+6snc9xMF5/KD +0Ae5FmHhR2R3JTLsTbLi0VWdh5B7uLOD1BO6jvDZ2u398f/OSgBHlXZ9UaI+QMY= +-----END CERTIFICATE----- + + +NCU ifx keyid 0d9969519b979d32ee4b803165664e9cc86f9d0d +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZAiwzO0EGFr1AAAAAABkDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIwNzIxMTcxMloXDTI0MTIwNzIxMTcxMlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0wRDk5Njk1MTlCOTc5RDMyRUU0QjgwMzE2NTY2NEU5Q0M4NkY5 +RDBEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAovb318JJMJKAPtnu +a1P03kXdh5vTiNWMoA79SX63m+mo5MrpJ2xuqcU9MHGp1LiCm0echC8TdqBhxXhF +YL8+CC58CC5oErjZpOBkgaO1ufjJaWBQnxPAd+8xr6c/vZASITjxJSV7Y1g0gXHZ +koO2GlSlpEjtNi1YedJcHNLdhpiKaxJzfSFK8W7LHnFsnIqzCyLdx3rdZbTP4bNZ +2E7qA5snWeQsfSENZi5XTUN+Ep6zCRwY21EpOjhuXIrNW6M+DTSP60iHqDShYxtp +vVSaC31IrlWACmjSDKPUT7I2yxSAQkI1/9eLUsn9GqkjP2GzJzz8pngEjnNAxyO2 +gclNtK+xS4DrPFtPG47tkSuPdlvxjWskFTiWGDIGi1xxHI/Y+8jy9d364avq6ycq +yBWS/3D2UW/s4p9bgjLtJMs3flF1KLdo/ahdHrFXAl0P5s3/xxDRI9Iox63aWncJ +eTXYDEvE5oGRGXcR+C1aWGHHlKT6bCmnaI90jZHXkfcOqOs5k3J+aWHnxzcznzxw +3eVvvpdkgOv9Rt7j4Kw1MTk7zWQXHHLJL1uxCYqlx/7lIS0uP6mNW5GY1voJXDFS +c5U3dDyfhJX9FlIMW1HdPwfcEZdsyFN6Jk7bX9yS7WHcXF+OC2RrhpE2q2f+1mKs +PJifn3XBGvInfA5Tr+VMrM2uuzsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNjs2XGTx9VAnsQ2 +GmJzi5DZVvO+MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAMD9jflNQGzOr7qcR3fo68HafsIzjcemP3yj158lEDVQr +KgQD2cBNgwi1RhYiEAVKpF6G8omVcsOjt8sf2QpxeS4Ij51yoSCEYRnOA8sjd6Ci +E10cM9L5qoBcPXlgctOFajoR2KEKE9C+mOjN17OzNjj6XiRP8ptAlX8mX/1TDs6N +/aqRrze05WdHx0xV1SmQc8vPLwhlyFg1d+PbXkemzkPyIi5oXLIb6rb+0k4Br/s6 +XuUrQvjv1Hq6HBem+yM3SaMToebcGos1zmnDlmgpqZ76iCf734V5DexvudkzrKxK +qLlIiX0f18LPNdtznEu9UmbNKbYhM9Ae/718+kYvbHfU0wGJ2dqTCF1dhuQ0gnxO +Y9RKiwGuH3+2Evx6saYVg7HimLCC0rH4jyQJDeoW5ec4ZYi4SnoaM5t7uo/tH3wj +S1SnzW4S5teM7QVOlzJZNudSEOB1igbapyixBMGR43OBA/J1EoMJwBjDNNQp2Jb4 +/u2nZ6BUmwRJJyo9Wkuvr9OZaxv9OClsVveUZzFhsCqyaGL0MC+yxzthSpG2gs3Y +GoWNYGKpwTLD3KzIDNFIl9SJn+dPgdfVb21ZL8MAEZO3bevkEc4ZbXrzLvhpAwwh +/BdXNSSXn2jc7Lyg1MZ4TCZ/1rNQq4D/a34XOXXBKlQbsq+RICEjVlxHMJPSm9k= +-----END CERTIFICATE----- + + +NCU ifx keyid 18b1af70b93f991972f362556a9a3fbf4bb24e0d +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAaPFuOy2OT7EmgAAAAABozANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkyMloXDTI0MTIyMDIxNDkyMlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0xOEIxQUY3MEI5M0Y5OTE5NzJGMzYyNTU2QTlBM0ZCRjRCQjI0 +RTBEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0u4Iuwn+AbQ+55z +I85V3WMTwBjRmNbq9KiHTxJQZrC/HV7aKKo1qEG1ElhQRMMb45FI+4Xl+Rbu7EWX +jkW735UbQX9ltO5Zj4m47jNU92zIh6tGVjOXiL1xKlxrjeEa2EpIQUa1ALJIcXmK +xxJzv9EisRfTauuCR9td5sS40xfzC/supDBv4VtVNLaDlwyG9GOXae9XsSQRQyXx +XRzt78NIHGdwCB8/0vNewl+xwLW/H4dqOGBIv5pOIqtMUThT+hEffsB94MT/rZkh +NMmjDRZdj170kYeMppcmqZyYd5z/aEfXy3RxUqfvkVeKmaO62XaSm49lNwnscMtn +hQJBmr9gnUOvgIppxhOHyQ5teyfl8U1Qmdw+3GRdItsDkovxzTwkPuOVX+/q0mkW +mNxbUJW4CyaLivaSzL8lw1s/lHaz6TWKKYqYbOF88hKyq0dyQ5IPcZM3Ll4L4Z1a +hRgkWVblEXC9gwIRgrC1KBjhTS/rfOvnDKLP7XosVC6VCV5CMD8RkrMWR+rqSUNY ++XzZ6voYzebXGrVis/pRBZ2wc14iiGi4lcWFSzYMW37sJYSV3BWFpb93DuJtJOq9 +yTPFG7WIBRsXYaxHBYTSQzzSEprkYXdWYdWWrwx1r2BGwt0NiaV/DatrWVeTrpIN +b4I9gHHE0rVvqZR4fbU74gtuL+cCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHpbiYVgjZA6Z0DF +HhXYieUiRTeaMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAcnmn7fc6yfO7tWxEOI/9bsVAACNe9l4BPQX6SCJqsyyW +i8nNnO6W8VNrQIEYBqM6CAvlE/P9HDUrnspR7s/uPlBK1GnNLMQ4BLcbEVlTHk8p +29C5u0MsNypoxTH2DuyyM4K/Zqqz9uBfsNkSGEVkQ4LPqtmV5Xkw+a+HrE5E9OmG +uX8puW+590i1C+3azDAdi0UjBiD6V/ArcLArCU4bix6eQJyJsACeQwN4sa0AiPNR +sRRSq24A4Ez0kwms/jceAxyrKeb9QU0bYlE2AkNlYv1+NV9+vOtKsj/cyMRmr1od +CmA0fG9rJRNKHf3pDYOSGeHrmX6ZUGA1tE/TZozlDZFyzt7F1iVqfYVZ26WWf9XR +fwUlPrxbVhVuGHGumWDJLjS/eFteHLnebtIdQHoyJ1C8kpbFDmWIJK2qllzVkYUK +DKOmrsTo4j83TMZcT++3jUeZfKUD4gJ0aH3ALkXwmsCJk20eMSKbtkz5Ebg8C7Vl +tk7Gh5WQggyZstVLOSRcYgWOY2fgTLK1mnQ0M5lVMYWdSLJGmQz5ii0nwCUTUt6Q +jwfWB+Dn5ev6t3DeuBP/PS8BZFAP7uLYmpwDuIA8iHcuZdbJNTiei09Gx8Yiv9Mi +GWAG4lH4qbd50ZJ+SIR3mYqBglBMojFrj2MsSvEnhUQ4Uvh915um7HZdnTiRq58= +-----END CERTIFICATE----- + + +NCU ifx keyid 263b744d85412bae6e13e94a53c235185ba4eeec 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAfbKD6Tu+yy59QAAAAAB9jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAzN1oXDTI1MDIwNjIxMzAzN1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0yNjNCNzQ0RDg1NDEyQkFFNkUxM0U5NEE1M0MyMzUxODVCQTRF +RUVDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1U72dto4YWE0nEza +omkNXUrx8bnmq3CImPpM83U40bGibs3lSsZb4HNv0gzmTECv2ctxQ8d4kvXbvqkr +VAuoIuYyiurBgoRUvZcza0iATei8Z+7mIVYUtjNAQeulZHXKlB3vPdZqL591oljT +9CuOPY2rNYarc7U70tUkbUok0ikOSmobJ1X0mFSfl3Fxi3a/dwe2u2DFxMaqrg0f +JF78n9/aEmljoDCMex60DiaEWMQjAYR1pHdy3ngeHTZDejQUzrM/9iCnJpX1j7Th +sozW+YBdOU/xcttRWLnUz7rQLO8sGAEJxLbp1Zz8bcVdoCXzwCzZYCSZbwjcxUdz +tUK4a2Ns1/Q6a7n08SXqq19eZeUBZOx1E3GOXB6/mlw6h6SHjxQ3wRirZvwt46Zj +vBTa3jNRvC0k7C8V0lv8sxyOqkFQwlM1V5PaCL2OTrhbq5GBxW6pa8x803sgBpj6 +PzRBHXLyGOy1By2I3SNGoOFUOEZ9Ub5H+bUTkqcCwOdIkKUF/VhXvsTkC5ccv96+ +SarhAw/SW9yBUSTo9EXblCuVBf2+P8u9rZReitUwW0Mk+Atll84ME2N03fnXMg1w +wYz2VF995C/erKYW+vAmi5SDhrRCvgLRYbc2YO+fCjh+6I7Mhdi1DFGdNBFZGRDL +W6j0OpMXF70Lh+V5ovnmYgPALccCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPpu38S/uRS1CPQ5 +Pa3UjZLbOZCYMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAUa5wgjWZ/+WM0jadLHW5MgpVs46Nbv0dsipR89NMNsxi +wToO5EcB6OdkWXxo8xRVip6YN7kPtjonryrfRosBL0Bh0p9glZF8+Fm3pEPoAs7A +OQ7JkPCWq8kZ3Zp3uiCmqpH8cyxY0HU2bA73DwVZ7vbI69/ScU3CK0Hgp++92ZQb +dZbm1JR/OgOXs7WqLxumTyTSL08/DoofPincB9WuUtanxTL4/Byux0Y5ZATpQh43 +390+CSytLFKeV/MwmoDjGnBFaiOxY2HTp/rIwMpVQRxVvHTIrYTpa+XkbW9CFXXW +RNWBP5whbmNgf+bsmPxr4uHh/VmtTkeJgW79Zfl/1K2myJkbYoiXbpxbmNAkcBFp +ZKNidr13ARdBzQ79VgzfqFwXqmJKuAPqs2QgOrKRC9D71s1xlfeSAuFOHzrVxk8q +9c4LlGR/dpIBxPPzVPJtaFUOrAZoazDX2OhTy2ui6ifQUSiK41K7DhM1yRStxFh8 +UYEyhHeYAruuf0CWlle7jWR4X3Gv5wtWtbR4tjbeuPh6jGqD80gOSpEiAL0wl2um +0VVOFFgD6oza8T/vQ2p2b7JkQ/izWuJbSUaqxEUw2E8cmu3FN9XdIqT7Ee80VFv0 +cO/ZE6PdJYhnaKDbmcPSz60M/38WKQ/If0o/UDNlSS66wSi4fmnQOYWnGIg2rOs= +-----END CERTIFICATE----- + + +NCU ifx keyid 29fe69630e853a4cd3575f84392a9bed2d7e8ca2 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAfMxvZgZaII34AAAAAAB8zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAzNFoXDTI1MDIwNjIxMzAzNFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0yOUZFNjk2MzBFODUzQTRDRDM1NzVGODQzOTJBOUJFRDJEN0U4 +Q0EyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA15yGmoeTP30fCK4A +XqCRbt4I/kbpvoowjFEDPiTxuKzG0Ke4hvKxkyDgefGGyeW2B/cmCMBvzjz1bfdo +IBdeJH13r93TAkMK8IVaA9NM6sLHNW+2M5ZosGZdSFwjAF9H9NEF6dgZgW4tT38u +kYcz2RbenzYvSK/EMTDLFJKMsaePcgYiJuQTTKcuL18IneSDZ5dOB8tgenpZrzED +hpqCXUQBtfpEvorAI2LSJAyLYY7h9zIMbznksI2ZMJwpxMO/XpNKbWerYeXxYrpF +65qUn+iMdsgKQMsZsng6fv7DrcbxBqv7SOVTIpbr3vq5Iln3npo5sC0axiLJ5Plh +tN2mbE7Eh6wpsV6emDvnQ2UZwJPisRMY95x8Vn5MkyzckwOM0vKaauP7AzuRT/8W +Yn8QzZgHyO9uCKrhruQ5QaYEI4d5RQk6KYX386nIo0Jw8C3owUt4dTY/et05j5ZZ +AD0qHj2GsglbI/uxF33RIQwV2GlI8iI2PLSW2m2lxZK+1s+PzUaTLC7KVuErbYj6 +5p1a11MIYqhyE6mo1IEC2OQWnzMhZqQZEG3Q/pAFB5wGz45jR9OEE5TZC4m8xj7w +IKDL2rhEvnD/YHGa1YOV/f9wDVI6ksvbMvIHk493DSP3epmcAPlxXIYEb3VaQjkD +GK2gzitcmZa2AhMu23CFRqLNukkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDfDI1nsX7eKPuAA +60cK4AQ6MA2bMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAa5GBvM/WLAly0pfDgFyXi/RE5IJvoihtScvxf/kmbJOg +qdDg0Wz29ZkltVn58vWUO/RLNnXUAn1ToxUaiujMFaLc0z0+5oCLlHgVqI0QMDmU +w35vMEdB0lszA5KrzBXWNEMnullW0qP6eHQZEiMUBYeuUGbbjtFmCgJ1wLOn8dbF +W51CoGV2NhGUeOpMIuEKr6Nk+bpQQeK77j4TK2K7NN13SMISi8DpndBL5NA6L6Is +PXnOus7Eia+96mdv6ZFV/SCL0XvYATMwDyIhQcCZKpyN9tlAU0Lf1rgxdSDjnz/8 +SGNnu6F+PL+UNtIjvMScFvfRUFTm3gGsMBSAKKnPqlDf3MS/DK2J2Wc2YieUfxfv +PTsi2vrEaA6XY/cub69oc7o5jolK49aTxZL1F8G8SQv08ieWgv97C8gQ+ESCd7FY +D3PNo/QsnBXH/hJ5aqKJVkOYnebdZPFPI02VYMLVXoTukEIolTOWuXoEwD8VuiKZ +iLa0ogfAznjDS8QrWFHlNtkJ7UgS3wzSFn89/+rVI0sLdRntQqgH1AMILPq2xZmp +ESUFmF0TOU8KgVQQdWzJxuh/oJ/Y5TczfVbmoebfUODTxtlDGMqDquWwr64fieK6 +nHMfd77ifuyWIE6hAZSOIEgG8V2P+PN88BeYvFGHNuEQ2gSUdoThxykGC6jUwe4= +-----END CERTIFICATE----- + + +NCU ifx keyid 2a77a0e342cbc6c72ee3fafc3b0a7bcea7c9ce4e +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAaBzNlNpRzzL6QAAAAABoDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkyMFoXDTI0MTIyMDIxNDkyMFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0yQTc3QTBFMzQyQ0JDNkM3MkVFM0ZBRkMzQjBBN0JDRUE3QzlD +RTRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4700ljyZ4aG5T+LX +38bQkpNzrX3WHcazukuXRsBtwBYEHRb2h0Gk/k2KgS1TYyoOIo2xgoOs+hNYbVzR +9wCzy4M2eeBbT2eAZi4VBxFZF0JQ5z7KCNp4e6ob1cFccYzWVOWOayMf3nd8BplA +h4YkqPLPYHF/CK/qYFrklBQW0JY54TxPaqvidWkGJN9YzWB05G9hI96Ygv9EHwq3 +FKd8P46daWQP0gQnIO9P6MtQ0ngxEo7CkXNPlTS4Q0T4zQGUPSNZ2p2B0x+bUH9e +il+LP1xUeOQMf9FtkzXVG377WV47SsG3JE8H7+yEwgx6i1pwtRq+2pQJOa+Ffx65 +CbqMERNh/9IZbU6/chjNS5OjzbzytddgPCW1oP9VAkQHUfsvL1VA8KkijGk1DUBP +3Sq42Z1d5VxHyIl9LaUP8XDpnilkBqry2us4h2sWL/EdNP848zrc0cPUVUBpsGkV +2AvEVFzuH4nmEEUJGES0F+XT1JOf+G1MQbSD9w0lAVmNrdYwYrhCKaO1e3jRoerR +H8wlr7X0XWlyCVe8Mv1NJCjd6IjXJPwdqlHe5BcmdPA7FLkwKEj87w0LNzaoHrg7 +ZFcpuV8TXfw9lND3c3SZpRH1QwEJQz2JcmZ1bSlfCNpCX9KC8ZzJP+HwA3ovGeiQ +IjDu+8bPQKj4xZ6PhCsX9UHgAa0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAtZtpddPVeKspOQ +WvSCE3s10wAJMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAHbwuS4n2JO8a4Pr13Uz0Y9sWIRvb99whcbHJpntMX58A +T/SGk0mPfiYfLJh1vqCL3X1zhXtzgwYrKzEF6S0m89gWses/BotOWfXOybak0u/E +OifO0PzlDEIrTPiwGirmIigeSeF+1gZ1Psilom3Ljy7IdHCjya0xOb3I6iwdg2rW +SIIyxgvs0BXrw0hWJFwevqGYXdbFbwSAytBhgLS6iabAK8tYN0jM0ZwvqkcJOF0z +O1VJ1nvBrOC0ZoPT5zyWVro+WnCmJIPW9xTj0v4J285yRQgE+jp6S5gEdquTIKpw +ARuOIxZwQ8sgmLBU8ylHbqNnmmWughqAvrdUxnDemPZaX/YJNIqBislSbXYDXl9C +yZYqgeF4yc95pvNNWDrawYB5XLCQbtNBm8RBiOcnee55AdVBQCFBMUEWd3rc0sF+ +oJy32W4WFfDWZiql6+gQkPg0v1wEo8n8sFeFMKclydIL1mg5XZ17IxHh7rxX6Qj8 +ZqOrAn0GH9N1+bFn1kRHt7eaFz6T+e+/nv4KPr+5fm+ee84yY0EEJLQCH5Zph7vA +TrWu6ASN/rlmFfwl+sgvPLMIDAFlhLSd8FkMdBsNq5lE7rh3fKvstbeMeE20eXYq +KePW+wk/Xkrx74EM9dEzi/3qHmOZt+xHZ7a9ogv22bg/qLfIi46kzhHBEIJ+oUQ= +-----END CERTIFICATE----- + + +NCU ifx keyid 2f572bbadec4d18e0d91ff4375fb468c61b8c7af +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAaEdKvySpIZKXQAAAAABoTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkyMVoXDTI0MTIyMDIxNDkyMVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0yRjU3MkJCQURFQzREMThFMEQ5MUZGNDM3NUZCNDY4QzYxQjhD +N0FGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2MXrp/RIDvNFRHri +3P0+Q0waDra1AI5/QNJet9igeJnSY7Xi+zhCwv+Dg/D+4G6CrGMF2f/wWfUNnUPR +wlCOoD104sN3UHnwELDnGyL6V7ATVHB9q6MR4+edHp6WRvcN7vxbMw0nMhW+xeMO +a5YoitA1072FGH+rjeDaq/B08XnHq/rcMVKmElH42SWwriLizpcJjTcHRR5/HDDL +/IafIRxS4/gn51m2Z/SH3J3kyLAunCGuKTC0zKHskl2RYNxEJrCD5vgcG0p3XEOF +W5k1zJniXWT2u9QsnC8Q7bTunAkjluR0Wpc2T3NXJ9rJZRZ99TI5sWSmxUwEIk4g +HqMheSFPMSRdGWp3ysvS4GmSZuykpnkO0hJrO0YXBJ9AZRTZlb1jJ/xk5oC9WtKy +FANdQDnpGmJMwTzGwNFCi0P2ni9+vCUIq4azLZBBeBLeK4EWevrjvy7bP0/NjNPg +HXDQOWBZajY0HCTBJATJ3YdTZb5CKrcWkYdknNIchkZcuYqcnyk0OU1b/aBTnaad +wRMV/GPTPOfzRw09I5fUIRUOu6aFZHnC7owfkPEwTBF/N8qG9LOQkLPLadyCgMMF +6W89cwxotkTBg7R9I4zQSj1yNFFy3aB36A2/teRpN8nMb0Hcyf8kb0CpedZcubrw +RTeCebaOvqhhYeqiFv32rtLQAe0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMi0nJtzJ4FXhImu +3hyqVEwr5GlBMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAIaOnBmK1DYMdj8UQHo67IeFwcnFZ/a73Pk48hgtu8XEO +FsPrCcegBz53Kutb8wn1MQVed2lIURK6ckcj1zdCQ+3qybM2DaD/avcujfzGw1E1 +F0kFro5eIqMdssW70ZjBsinfBIsCLVMQ21ZzIHtABustbFQnqTo4Gfd/TuvkGQiT +EBKHOBaJP2ikOK7iQ4HayC89kdN84m8KSNAha+yZj9Mv0YoE7TiCCQh87qvZboX0 +o0E3URnv8iODljZxxm14FScUU9t2XXkhVLg2jBI0sdCUolVTl0t5YOvKv1f52tAB +5as+2JlOhQJD2avsefX9UkEhr2p/Owejj5i+SU/NYSdmbRlbtCLI1wj8MvOsEO6s +6US2brXq5L3MqPfW0C45AsQQRkAtt99yhY0m3cm+HBnWb3uvPxPBRJkHPEIKot7A +GsvNtXEzZIqCyIQ/sZ8fZZoVJE62B+OlADWKVI0VJ4KsInUpgI0vRLBj2l9xTFgP +RBk0yjWPsisKiAgTfJUEU09LJStEZvgYr2MBHvpdSyR9FNLoDMjy8BpRnn0yvFbQ +54eJatOC0SxvWcgC4I4SrRof969DU78ZtBsTp0onkh/YMnodzCaEvrD+9WlBK8Ck +5a0k3GzLySUH2VW8Qmsmnp1eX7JA2TV2PQmj02tG75NyHPmI3vPXV40B19zCMZo= +-----END CERTIFICATE----- + + +NCU ifx keyid 347c93cabded6168c61fdc8740a7353e46751616 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAaR4vSB+2Rda8gAAAAABpDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkyM1oXDTI0MTIyMDIxNDkyM1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0zNDdDOTNDQUJERUQ2MTY4QzYxRkRDODc0MEE3MzUzRTQ2NzUx +NjE2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA45ULxri2B6MLO+1s +qJn1WtiOuj1DDkfAjdZGZqhchDzFwG1lgSAEDQFrIMZArrGj2T6MwuqY/nz8cCW0 +nj1Rq1stDTySDFoQx6cU+ViTuQBneb7Cx08jF9Y0emTxYimrbFU6Z+cXEEl1dgQ7 +yB3Fv2RhDZfz0MjBvEc3oT92B1sp6a2+ALM1Qj7BMbglGdAuJK0BTtiE8Navkzzd +h3o5Wk91mUhTn1SpNHH4QwLk685i0prrN0prSYSYZPQMye9jnyzK6o3ndQWkZm1e +fRM7YlaVH99QRA9Af8pBZGRJRVzYZPXETk69IEMBAO7/MQFB8lr+nh4ZKkIGwXsu +NISrtfsN7isKhi7ITHRhnmkvNf/IsYfPDzZ/DKoSzUGZrlLUlsfhw95JFc8Tmo/L +2hiW+h9mg0jS4N/OFuVWl9uOdoaX5WfJEkSJ4sE0gP2GaORWdoEYqcboQzLJ6yDM +D2utuMQd32x7zx7JQtPlHnkwu49CAI8v+m/SlINgyJ+adyGRawpHaUFRtpMU27Wn +0bu9gA1KiHkJ3aLKZj2x33aJzVGRyVaUedRLEp4EGyK3x/uPZPFvNoRtFOmRnRDl +v49EDnQ0Ra9GJabz2F684pad9+HyItsdqUgpI6Lw5T198YgrnXAdoAZCZqTXUPQP +u4+OgMh+xbnlHwxUi6PMl5grWKsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOPCezgyV9Y7cig6 +4tct2pmaiH/pMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAMi/gZScbOZMD0FSuHKoEpiEFXbgwatc1b6nchzhrCQcA +hlQgbrLnG3MI90Fz77RSO5hs2pZF/CSz3BKZYOOu/48cQfH8SwM8pHyvor8mhYlW +lm8fKjaz+0vNh4H4mmN74LWH+dBXVRSuYlmjBIUomf5ieU1szHr5OHwXE38eCEau +RTpRchcWjpGKbSakcW0HknYJCIk8jAj8siTpFQP6gTK6JpjhS3Y5KJBvqKnMsPMn +Y7Sr8tGUcpC/wZYpJEL9HXVJc6oFj0BilJyXOBZ4PFiFNml4sdatnTBL49+WtBfb +Dm1uR7H67WjqUfSJNwasyataFkdloMWJM6PaWP0gahD+OuRZ8Q66XlBbqJroDwC3 +EUg9WyZpWx4ch8UK2H3ephkf3Cp/SAm3lkNj/H69/xku84zw/3O8WlM/C7KctpMS +GaNJqb6eMkzydymIJpG1B0ihUt36dWxlYFZxlKAgEvzoG7yf2siWKkwrSd4g0Kyv +11xTMrNdlO2d3fjzDCsrcs7cbsu1EWfVk5IlVWcwZi9UoXveZ20HbWopspC9x0j6 +6qi/JZMxfvXZT3nzEtdTnkxuKv8hs1/zvsQyrUukwawXN3Hhu+N2wNoeCLIVWd89 +Fppt/54B/TSB1YItSZ73dPUp4kahvjggPr0arQX5bGNr8ytKqXLiqIcg6oSj6Tc= +-----END CERTIFICATE----- + + +NCU ifx keyid 37ae346baa54c513cff0290bb321a22a34a4a8c4 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAYXSVhiSoZasRwAAAAABhTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MDkyMDIwMDk1OFoXDTI0MDkyMDIwMDk1OFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0zN0FFMzQ2QkFBNTRDNTEzQ0ZGMDI5MEJCMzIxQTIyQTM0QTRB +OEM0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp3A2WODP4Lq6L8F3 +N16pT7Q9j/rNW94/hWxXkN5ldxA96DFAneXaBf5RCPdks4fT7danLcO/i7Lc8LXf +uE/tYZ75Em5YFPrO33tXB8HcRJlmoLOO0NQ4GfAV5HQfrR0EJpdUO/7/ijg0bjpn +r65OpHXV6op7i/W7kcwg7rRZP2dLV2vFCE/v7lUQ0R1WyRDYy68Rx5spiI5AxqXH +spZqia2707SiWu3COK2MGEvLowxGqYvyAMzTGyCvbezvWzznkyYpn6+g7wHrRw2J +fwAbS3JEr0thk2Kc75TLLxqnoXBNw+G5H/TY9zNWqSM7j1IZHefQyDdqrXLUABmE +HfCqCU3dQ0WWBCVBSSCV4rqASOgH1lVnfnU3UlMRTZ4EUpFjszhygUob1nodR0eJ +wIJ6ss4DxpngwO2FGuxyvTqEnhIGd41fm4M3YJ9MOquAfHRHmo8SGxbiE85puH2v +7Nj/dGXEFD5wb2V4pAX7OVBlcGGlnrJBhAzRWBU4rxccKCx+cE6USTD0mD4qMdK9 +RmBvD1b+KjKrCN9Qz95mzrBqk/esg1t7Pw3YUD0fPSVJzkxy88H1yAaOzvmZXEJs +5wfiVtJZlRQxdalhwP1rk89+NNDy8I1baLtWig3+v1lXvUXxrjql9RB7C9x5R6Nd +ZbbYXTX9kg/bs6sERPdaa7cUQrcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJzxZiC1DJZ0i1Qw +/Eow07Ae7fDgMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAnJxKephjyrbKv7WarTXNuV3yK8AOiSg9aIDaS86chJGX +7D4dQAzdwvVZmVNy9uAwBVRD55RXNGRf9hSqzAMsbuutXQtGjoOBaSh0xWwcDV2X +b/rF8gj8VBXWEemuGZpr9N1lSVXjM6NRPf6/oyMT1Bhzwk5DvcEJ5kWH2WUpYfrc +NMLllq707JEX6lWZvkD5nFFPsBPuQ+lfcLafq6U7uA2DWONuk5vqdww8X9fBw2xf +OgGhqP2IhYxgIxoem9G1SS/IbD7X8qg2k8hUWMxC1sysm5ZyXT/w4x1/CEbgsd8g +15Z7ISMuMRhsHvvVPnC1sp0mOPBKTT02Pb3Ia9PUEEJUko6Mr1hhJ1FUF2uH8bTg +d2w2/qeTfYAmCwEgAildVJUoCUtvT2/RetHft8bSJz2ydRiogs5IBqIuMcbQGOlJ +2aZxl28/2n1n63rrTHrPsSUaexQMXCsRqF+O6qOfxFsE7+IZDK5+6vDwdHq7xi4S +MM1o/jhe6rvvdg4QfFy+eNDoe1VQSwveXqEWCNXlKUDqkDVOH4DoCcPbRS+hyXda +WjPCJYBMmd36NXV0GJhatHQ/M+XScSdxGNVPMzcYrVI6lSKwSwrdxdQ4xZJd3faH +oXi55ml+YCI7uljRz0s1CxATs7fPHCw/P8gSU8dk+Uk4la6G3tQlB66ggT7HhFA= +-----END CERTIFICATE----- + + +NCU ifx keyid 37ae346baa54c513cff0290bb321a22a34a4a8c4 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAkreM5bPd3V3LgAAAAACSjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkyOFoXDTI1MDMyMTIwMjkyOFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC0zN0FFMzQ2QkFBNTRDNTEzQ0ZGMDI5MEJCMzIxQTIyQTM0QTRB +OEM0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAslVWYnkGudNtbSKy +50GB/+5m4ZJKZJltoqGaLFD+FWPMdkqnnbbbkakHmUmOWwAkDyEe+9/dUhaKJAyY +5B6ku5PKpCXgVZVM3HSU/FIznAhv/O+LxNxWVdASVI+nrs2T5kRZRB7bix12s47T +mGIGI2KtGywyJzW8wvBgCOWBuASYxmYQwUq+5jHwfAhiTX9xeWMiRcGk+iyDxs2d +1sLBQExVWBwmUEnQ6GFgijISYFCk2XKvINgu+dFt3QwuWj+nQx9owlrnWW4e7Ajc +FN3bbpo+gIICatUKKcK/UNT76hgh+nnb3jXVwt6oarX+aTvOwUZLgWeAe/9Rg85j +PBJoyo3oFuD1KjuaD7gOpfAYsQb0ivnZ02l9xEQPzo2Xhwko0EESsjsFh+FoF+Vb +hOtTQQMP3tZswxYo2OZQdktVYJ/rqvklDLl7pYlfO8ySEGwEiGrFr82WcXjVpkx8 +ZiB+5iFjJGJwOJtg8Ff9V5/jgaJBmwO53sNW/LB88S4fviRod1SSgh22bOdKgcBR +KB8rwm1a00F1jGEjYCNZRdv9Se7BhPDNnJaiS0oGFB1M3IPH5S3YHNs5JcxAhyma +K5ySiDZiw3Sm7O6rmd5G2yg2tZABC6O8fXxm4YtAXYzO8P07rd8rJup8cjt0vuMA +ng7rerD+v3dQtdGT56KX/fKwsLMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFA2iXy5zU0abaoS7 +8bfMjv6EbLbBMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAZMZIamP6pwJAAb2YRY6FEda0NY1xidKgZoDPb3SuTYOw +dv8A4O+t7EWop+iRx9KdOcAa5gkVupglbuDhSBZQ1x8hvuWN+4r/gWg77TDtOdh5 +3o09/JxO/2a5xa8z3T/IzpJE/ZKeIKM2EkTvCm075ZX2cy5QCVEpJkWgF4FdozVk +9+pNDTE4n8Hp5nW3iDBlanYQ7TIfQV5aglJ8HEiDdwafascNZt7GpgAT9ADqQj58 +dXYNp0RAYaRZHIECi2+JpoY5+xg2dyPnciCREK/5Q9TUiW4HDqhiGnJz09+MSHmV +5+pKfgoRYsqx1zl3CxcGQ7EKzEgKr1L8MxErPN6Pxuozl6XPD2aefUkwUBplHuLZ +bKy3VZFcktoWa+eu94TqXFqMFpO0WBN4QICEh6KHEQt8intTEPnuAaofW2jv2sue +ZMKKr8HGC1TGrCGHrKjD0smYNj8zjx/V4Wz+zDeLJNreUHIib+TpSebcHBtBWD92 +YEDbCyd5niTeG+Ssq7bO6XLUSipemB3bI8GWlcNIXMtYE3v3oDwRjzO1ViLdgFTM +N2cQVt62MgAlCb7kYMQz6RqF1uKm1RTaBs8hFURzgBYZbAvq+Z29sX1D/RxLDGAu +7RrTQg2/6OU1/mumv9cYQB0wDDshrQ96tbFqPDpPO4z9wMCJvCsS3eZ5auMqkgk= +-----END CERTIFICATE----- + + +NCU ifx keyid 40b8682b8d18450a2b06849d9b5cd96f4cddf4be 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAfURImtVOAjr7QAAAAAB9TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAzNloXDTI1MDIwNjIxMzAzNlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC00MEI4NjgyQjhEMTg0NTBBMkIwNjg0OUQ5QjVDRDk2RjRDRERG +NEJFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsdhIcdy5JpkYygdh +C1fzaeq7RnNCrFdCx/za6kDxq9bYZ4+xEIwwPDzuCAGiHUpN5x5ZtFGTT7TyF65b +QVyBCxrmAp0Qlt9f5LkfjB2kaCtvziMXsxUwQHbhopIVXvmTFlHQrpPGhEaYPHPu +DWxpMUFtlUD+jQpP15uIxsGGklBMRVmp5D2DTFEtn5Wk7m5+d2WtoSOeGidjnAjR +UdP/MziYp2rP1q08/TkQCcFFFqy8FonGLKPK1O2FCMwmL+8IBeY+M/QYpF4ku4SA +ee/b1cGhC3ji3XzamBvhWCBgVXpaln4uyKjlYVVtXV2OiIwS+XFII7weseHmtq4D +3dqF0b/9yH0m2zuKmLTFHTauHRUap/m3P+RCpP1hW9/58WZjk6B3YlfvWml/mh+O +4zbNz2DNpgpqEJpT3x4s12W4mZbTrTIVVXwuDUHPVOEuNSSErfhp5ppbRevb+OLQ +Mr/lSPk2EyrnuyVI7H/uhkZUo9WbAHQA3QJT7BOyX+bVt4Bk5UDo232hXkg7vJEH +hhegUXmxLiTLcjLCgU79Qfp2MlImQLbrLrLROQwKtVNVaNz0DrYO+VDhARfWcAN9 +cSnpLqS05wqTtL3bwznca7qLb9hSMkY+u3mDC7j/xpaD/dayIpvuKFrUfZbsNxnc +KKzEi0/Qd6aFrPko2n+9La4CcDUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHTM+OQNreEdZGls +WQNjBMXls43JMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAKZ3SPY7IuXiP0HVjthngLdS9WSUu1lwOHiqyfbuujQ/U +nVwnzxb70XKIyum0wlh0hJ0wa51eoWNMKhBlIvrzBcF1BfISWWgmlceTrgfnfVg1 +2XZGGF68j5TYc0PDx8quonhvcPCbxB/peCis0hdHUJ+8TKW9in72aSKAlQnZAtyD +w9Mu7LnZRr8HYg7KL2FfCg2W56/cOjsI6cylajAxlemV9zYKn8pr90qh3ZiuQKjK +3VOeNqIbwJ8WltPgtCUcAZfmxRBHttt/O/YN/oYColNpxOOb3mbJJ74V2xkR49FH +lMUhhI9ljVQ+wzjeEoXCKI6RT1E9c2VOm0IMifPYIDDMo+6bEvyCCgZsr9z4ms6T +/+UP6pDCCUZZU5jyxH/mJ2h+NClUsO12GtYMZ4P+//5NM0PzryCVESabNSesBDMj +EPMCYyb8GfxXDcmn1KPLzU6wH5l2PavK11NR41s06nATKFVi1SaF9BXZUeBHNdeb +EFykOb9MKKbcBn9DtWSc+oCE9MnGKzreZoQFSG/Oa5rskD2nL1YsXu0/7BHlyBqQ +nKJefzi9E5rnlKTKeN8SYHSHQICUXmYOs3m8O8xngeRaPUfPKgPW3ongTCAFXbPE +7MVaN/Ttg0gPRRvkJEABQvNVEnjG3wA978yfsqqI+fdspbqFW3F1clqTJ9TvabE= +-----END CERTIFICATE----- + + +NCU ifx keyid 46f26f96330691e561b72f7a63dce3a0517039fb +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZILimNEnRi3DQAAAAABkjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIwNzIxMTcxNFoXDTI0MTIwNzIxMTcxNFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC00NkYyNkY5NjMzMDY5MUU1NjFCNzJGN0E2M0RDRTNBMDUxNzAz +OUZCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAumC5DOsN0yDpnMm+ +kDpwgFbxSVlWe9vtBrRS8oSL5Od9SPrXB1ytARj2rzwU/61QoCemaGN92lGqCmmj +yrP/mQAFwT4jrRvsA09M3X2ZNn+VzOSEgItp9sC62cNM9Z4m7mnz0VLIftJBDYUe +FJyuH5yT+ciTxdFwus6/ROUQ0HSB3OlhC7wAGIbXdOHDTXs7q/Jvpt1cSG9i7lgM +e1BDa+kMmJYtOKYjRrhRIr6YsR+477INPQebHEthcPLqpBP3UdJRxXp+WiUjjO5V ++5gckpXK7dfE7gX3TqZimPqhqHZUEBDby8mtcisoy3m/SIQqh9QYtANeAp97N0iR +7o4fdavqN2giV7SsIXSJLsZJjpF0w2X7skq5jfVboKsul8Xd2jG4wz4cpWI7GZx6 +uOApDppvB3rY+h+WGRZLIWXu+VLC9zIcoktZTavPhO+YTouMBeMvs909+KyEE/yt +fqUK5j9YOVunYvq6JvjYbh71jUZxvLCDODhm8ShtLxKNb7oS7lu/1rLIpRJvx3d6 +OLivSnZlgxv0uS/YVxUvxLjC51hn8ERxobicyH48bBMnw+fD3Etx5NqERFmqKhr5 +OY073oczWoUmIO2b/Z61cyYSjw2T2byKSLoYaj1Di4zUfQfsLWtSXr2d4hWb4gSx +lHRHV5dIqmp3niFpb0h0ZBh/GkcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFL4geF51UemUpXWU +yCkWtI3d6vDCMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAljO/miWmaM4Qvy/URLWyzH6YMillDfhmjAG/77hFWYgr +D/dDwdKiWZblv/8g+2cnO/xi5K0d0DaAltfBMs+E7krR43JYxDnWdW8CHQNCr4+q +pDeB1YuIU3XB4wDhpqUVAMkj7YuhDx+7DaoqIW+25eaaUssmy2OFc9hPyXp3xB88 +3jgYCHRCqmO4P3bBhrVWrTD29oFMw8beVnLCqnJO+qfZXgREdQWzn8+/rylUkte7 +6KeGHV4pSQ0NPMYIj9UeGoRsbaMP6QvIW2UugIL9qbOClmGMjwCkvKViOWzycdXl +JTCwozYu5nEmVndZjDUtIbsFL6EDO/nbgYtt/am23ysEMOFbqGG0iTZ/I6IsCA3O +jjypLI7WCZDH6KLSHvTLu4NDoK9WWXzYuM29RITVY2awuZLpbGjFczuov847ZUjk +EjOR2FVw8fx1CExEht90wO0dipK7OMktfwpcE0SQmKurqeD1SIWcpcAmDflRF+w0 +EVTLEH16hxRVwarklgYxXntbMqpj8yKTj/rE5PK/991lGU71ACn8CQb5bZs0AHNg +6Kg8N7PvGTX8ae+SsD/XO9ofip/fsdo9+Y4IPu8tB6m8Ayx06BA+/gyM1bAECGGi +03WPGpRVhbsWRknZf/c0F1Z1k2f3xjSpdXcqbMw1OV0HlO5xo8rF9wtFgPrh5sI= +-----END CERTIFICATE----- + + +NCU ifx keyid 5c2920742179bc704db1d8c54c34ca94405617ca 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAfEbgc2APojrBwAAAAAB8TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAzM1oXDTI1MDIwNjIxMzAzM1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC01QzI5MjA3NDIxNzlCQzcwNERCMUQ4QzU0QzM0Q0E5NDQwNTYx +N0NBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5w2QBmImh2cLWHaq +nehf+IRlE6QdaXTHfuveUiPve3s7qvO8xp1GZVHgXDrHthngTk1NgMZIgANvBUNK +mx4zKGo0vF8m7o9RpmwcaFTYMtK1qxHTi5BxKY7KqMt61m6KUFJlZo8l9UTzAHoH +Ijyn556x1pGYAa6SyyaUzVvfL7go21XYsLi3Bkw68IDUba45Cd2fZqC53zd5tPz+ +zSV0+LbpsoPEKuqvSzbiQmGKWaDq074MPxu3c/3sX83/2fxvZyTLCkaDWaXb1Vo2 +T4EabC4u9WBZUCcbLUclw8g4Ka4vFKaDJJRYmidz+Wf//gBraAXSvmhcZ3yUemZZ +4aO8nuGNow5LCwjhFDLqosuJ504llagrgVBLROsRhuIwNXpwVIzbN4afoayyD1N0 +p7mIK2/p2rK7cH6zZ6JvFrOQ3jTQwGloPCnkPCfmqcfmWpLdOWYjNMku321WfZLY +S4BCexAVtYb3OMinuHdbqGuVjvmqKxP8pnP9Vc2yz9DpLNXlRzza3wowu3vEYaZY +iRmhAGVq7Y5Y8WlLHv82Q9+/RNBxwXK8rPdc1vM12xtLLG8uruWOEI5sVHAeNN2T +3DoG0NjU8xABHWfl9NuIX9GTaRTVdSfyrsUk82vuAg0Ms6UYjhKaoL612e4pU6kl +oiTu+DEe2a5vrj+cyHTnoZS0L0kCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFF7buRqoYLuSeldZ +VSNjcbz3G4UuMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAibJ+VgZza7M/EMrP3AdDsaEFIK0pgGobYyUP5jO4C80R +0o7NMJ5S+Z+S4mePrNzbHWC4zAXrQ4ydwCPyTe2lg3i3yfQDhB6mfuokrsQuzS0B +as5xVWPDzN2JNB4jJVC+Pt3iE9uKOXdf5snbDxixXeS0qDFZZ8iPs+wjQpJlowBd +f/1CQZ1qjMCAvSw73YN199UOS4xk/PothLrTLJ0FoNp6TS+Tdun7ujWnuUVjiaqK +MiyUxY8eyd4eHVwBXzjyOctCZibIOKSARA0bDat6RjTWAcTsAlQ133r+aLlyQvqg +nJUgY/tZKwAc0Y8a+sEPpEROIVTedE9OG+XmOGn75rve7TUL5FhogcOO3Cgl81k7 +OcPegvYXXG3aHfpLY63ylcOld2eu42jwAEG0V7CJR8h6s7TOjApGkSB532nMH6t6 +bLXB/opXcdBo9RDHUSYyChlfYA6on2G2o75BwAl9HvgsffHw0P7qeOoZ5/ssz2al +fTnXr2BfEMIXYyCEosEzDvIW8ytz4zKccgjikJzKcagzOrNWBZl9KvHzXSp5oPLH +WY4WLWGPqWgx4/r6aPBHz9ps2F3x4tJoB9nP/YF8PwedLdvIBITRnat5b6vH6OQ5 +9Rwu6SSwj/fhcKQFwHU7vmHBRsaX7jWtfFAnaDJNA7Mw7OInNcOys7R0n8gbtUc= +-----END CERTIFICATE----- + + +NCU ifx keyid 5d0815951f5f60638a69e7252f3ec4becd7554b2 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZF8TrMaFhE1XgAAAAABkTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIwNzIxMTcxM1oXDTI0MTIwNzIxMTcxM1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC01RDA4MTU5NTFGNUY2MDYzOEE2OUU3MjUyRjNFQzRCRUNENzU1 +NEIyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAt34Q7TaV+emAL0mc +z7kFIUKl8bQV1bJ7s/qF3dcdS/ijRrLPEC5i6Ltv0L4LHNDqsH+Ed0GfRx5rWGfZ +jAnafF7dlQ6yivWVnb7sWcXIIfolBxcWOvt9s036HaJQobMMLExTjjAhEyjkd5xw +ixZYzpY1QZbkS0QjL1KWQhPjrE7KQg6nvBR/oAbe7vyc/cYl3MicSUg33OGrlK3m +lyE9yF2YL4b+gtNp3zaz+LFYupLurW7yI1XAsYg+SNJHNDLqETWsbF7sdWJiUyDU +fxEufScm5qpBixU5GwNRygjrhBu6z2o8gnOQsUfxtBhQLpwI6RGWm0jX7Dlo4Wlb +X2dHueubGHRgxftTTjnoP5p/3fGsImZLdlfx/u27uC6nx1uGliMuIyvue9flgYuI +uFsL/tvE0R0kTGB+2ZKDjJ6m2hSm0yvNPq1lskuUrRPFklZxeR9bJNtX3ekZptty +QudkYvuJoo08EsQRhX5RJ8oYMZ6mQJ7/1HWXNem/+QsYn06tGZE4NJwMtMow+uXD +zkXkgtpy7PGfB9bQvlBpAx4o5I73JDBpRztuyD8aixsgQzuXmtZ/iPGy6vtkpo1w +SsrY/fcF+RBE13Uy0Ne9P0CwFe0xc9ii5BfZF2CTDce0Zd+mExzHZ/sBAt4PkDWB +ulOCqnDGZyMgYFahQBOa5vMDM+ECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPYm8ihg4JMPGxSR +Joc9YvNERILSMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAnA5D2OEYA6yKi3C4/Wvk3Ea4gwS13HDsRSEML12nRWYk +Q/IlC6mgCT9lHU2XFQq9IQPimNBXneX09b1xLDo4Pjiuk77Rl82PcC3oO1goucry +4JBEXx9ZzDOpLE3eph+h0xFLge/91AyAMPEy0nuNON6Vo/PtIwC1QQSfAU7ljXxD +Kfq3SHi0TID/jZ1wxuC2b2rw4iAxhcTdNIXYMC16PnnZN7FNL7qdUVfZ9ymNrm94 +BxBuWV5/3cRaadhNP9sw2CbJIQVaO7bDPWsfYCCQf4HOH3zIdBNOo/i8VMzExpmE +v74kKH0b2h1PEYvvxXxZ30/6lZ/StHMRfhJl4ds+TQKuNOpvTbUyd4p+73LWNMcY +JflJVhCwH0zUVC3T+0VjAjA0qwyLL/qUk874zz2sspwFAYLDJLoj4n/EqhgHa3qZ +Nm6vQbqXLb1upyGFqwwBtLm0xI4bs7dzfs2FNQvVQbahd4yL0KYOUI/P7oxNULSY +DhA+7uwko/25dpCTv4IXMr22GrNXEkF0/rAKZHbHq4ku0VKwSO3kTDb80Dyc98mT +Hz1BDoMUqFjcjaiwC8bCZUEIKYPCzIv0/X7zqBCY6yuKhJm8+/KAPk3+scau8QD6 +N9ke7mHYdC1O9D/Hx/yF55MIczR/Bx20CX35FcL+kMZlU5Opde+TXLDrCpiesZU= +-----END CERTIFICATE----- + + +NCU ifx keyid 69146ac3cfb3665c7ae78101cca5c14255ca2bc8 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAfi1t0klvplC1QAAAAAB+DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAzOFoXDTI1MDIwNjIxMzAzOFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC02OTE0NkFDM0NGQjM2NjVDN0FFNzgxMDFDQ0E1QzE0MjU1Q0Ey +QkM4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAv27xC+OhQesZJXoZ +rEaf0QZs5sk3Q5v0qMH7tju3qPUJXs3S6VZLrJ/Y9mFp0wPo1k6g1TWSJ5OzNklS +V9K8QhnJSDQ/XLjsBJ8DWXFQQy1A7xtdo4Wk8iWzybupJ8wTmHmdQ0SQHFeXldsu +lA3nEMNzVr7nDKwYzio9bcbHpeWyjVXjmb5Va+8Poqqjx+Fw/pT/YEYMASPBWoSe +45L5tcMbjlX9KelHe0wVXvwzT+miBbX3+9hSLcWC7Vx1nSy2V13th3QAgSIXAMM0 +LnMvr49MzHQ9G9Pmf5t5MZIkVrq67UB5PDladKwSFp67smaNLOFCv35lHrt2w5Aa +kbsG778AVCgYHXG2vlY8vKOIJh8HeQmmrtxoE/45jeciIF1Tvy2rVxDi+lsRKdv9 +quY82B3wFPeF2a7AOSuCzKve1hA6cVst1p06Go5Yehkzgx4HVeYAgh0shY/2D473 +7Gpw0Y0NqLbKEXrGfv8wVfAd7T4A4gqhqmRWLcSPcsWAWbB0aQ7n0plViTrSfs3H +E5XvZBwtJQqYZWBNndaSolSswxgdcCacEyoI29/1xvUJ+iY86+S7YtA4YghQbWOb +aqIzzR2HQMvxod1xckb+qCdVJhEiqP/qaM+Cla2sJiGVeQ8VgyeuUgJQ1fD5K7PA +ztxf8rkPdCSLccVG5DCghdrY/U8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFD2BBmWuBGNpFiHJ +/riZ9tr5aGXsMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAIyOZyocD1SLNrTUeRlKU+/gq1TM04ZADeBpyhNSGp88b +gRMJ6nX7GxVndmx2lrj7c0S7R/pwhzzVQgNvthJ1rwauh3LKVxlVx2L9NrjDWL6a +wdsCydc5qDgFR5J8OeuQwe/lHYe3xvmUvGLyWvhCywZ1UT3vE5+Ed6wbGBeNlbV2 +YbhhUCRxAD81gJ8ETtXenLzEp2I+4cTsJsnam2LdZTwkGOm/vdAaVA8Jjfa9eGxY +14/kACBLdAXRIMnP4DCxOG1THfudx9BfnEBIOGSDm87Pjk4UEQoZPMEzgUjIlhwP +KlrUfsIG7bsjwzdoF2zQ/VPEBot/Xy9VQyAeSYTWnOA77qcAFO+sLWQk2wb3hlGD +4JnjVeSKJWGcC6e5HqyC5Bb+KXzYEhJTwF1QT10LziLCIVHr/2skEN0CzYGeHDVF +6oe18mt3heTs6rCIU9BMss2LqigoQIjd9qavUNQKMTZRInNSRxe590DJ64O47Hiq ++nNFoK4mCsCjL7BGvMuIWFsXHAgqzu+q9PeF4cPCqDKwms4BbCW3xWtHM1dzyCQB +eS0ZTkW9+VhX7jjNvZgMlgKblkVJpJKDTTaB87PlmQvuvyQ7RUfxzK23YYAqI6EI +UprY0LyNGVgx9ZlBB6qf/I5hJMIbjf+PLWbfTV3ZnAVGvcrNmoDf9HplxgBt7KI= +-----END CERTIFICATE----- + + +NCU ifx keyid 7cb4b78e688614be4421c5858f15b96d5eab51ee +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAaINbH8COolecwAAAAABojANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkyMloXDTI0MTIyMDIxNDkyMlowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC03Q0I0Qjc4RTY4ODYxNEJFNDQyMUM1ODU4RjE1Qjk2RDVFQUI1 +MUVFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAu7h3RX/rsvj9UQbN +lt3VieMtf6JqZIaObA8ntkGAkBbwgrd9rdJZgcG3uwCm+TKFQ3Sdrroaqo6BN4fJ +l5Sug2cRISNKiWBoABAfTF8o258/lSyBU5h3jO7/UzrgZFxzExbhhWovLh2PDLXI +sdeiLBq96TC6gC36GW+vY3bB+F8ZXYskAxhv1VXb093oRnmZYohXLv3sDu1sng4e +XfW6yJeUz044UIrtBm6la3hih4MWN+hD3jbkoWn9pwqbLRnurM9asI4SJKjWoIjU +2HEtJEqUhCyewIfZdWBvsJNpMuQk2hRztNk4ffedwXzDF24omZgJguCy8DC41XXW +YdxKR4VLBnFbJj0vV5kcvnZaaqfol5oNr9fW//4du+hlJXTOnYoT0nuRJoaz21SN +PWSTdhui5473YLyV4EpGf44JfF8gl/klN0DiMudkyvKKiGhFt6GiRiPBIju4Wu+3 +iA2yMxhbKGhq9owU4f5U45ln68sry9qC1MYBuQmcVdeJB9bLiUBrqaTbQ0ckLqVo +lSEauf2Zcn3oNs6r4p4CYOlXYXNiIKYhm7Gr/pOVBxMtU+nc2rdmNQNMCVzf8FGl +D9O0kqBmquy2xv88ubsxiodBwbvepif2TJGHQduFMylh+wcle+uP6H6d5fuK7IiN +fg7LrNVGuh3DjUh29WuBmws8J/sCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPyws8Ll/6Tjvn/2 +qK477mGY0d1uMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEABezkoiFYkObjLLaKfykjdhgU1HKMgunaxk1GZY64kD96 +uALgMZzydetDSPHhJPCBOjNLkto4FHN9qOQJHLTQ2cGfClmP4vo9mCBJy8gourwz +P+WgdBuEknYazBVHdS58G1/WsHDolzvryksh13YRnLvafNymGv2Wy0b7PebWYNpl +uN0QCiNbt1Sgw/I4s8FrVTZ5/Gc/KWmwIaPIrQ5zjFS1qjOKqrzkHsmQZpdmIDA9 +xrTmf158JdiUNTogwv+8xoJeo4JBstKR7ZKG4debMIIirP99SZRGFng7cAAuDJjt +u7PWNJDh4IUi22SP5CjhvHbOwcBm0uR69eb/hs05H7eEM0dh7lKAGXtRljcvu9+x +yqA0b0VV/Jk3Kmkpa9/3kZ6U2envPuEBRkVws9wPg1qGzZEq+AMujfhY2lXF9qmI +Odo22CO0ywMt0d+5yi6sBJazCFOJ6s7cxR9HOjpT4JzPR61/n6930WshZAkDuCNB +utqPNxqAi9XFSdsezd7BFnN/Br6aj8cTL1PDU7VLmNy5OzY912tdCCgN7Eyyqv1+ +uRlAB5fmO7E5fQlvpTYqRieOCYvpnWEiDsMotINe73VvUGDKM17+qUYgvYkysm2Q +EIdQRdyPdV8WcOSYeHm9UKHaj4FDHjBCen/Voi9pLH6nvYLmCwnxNSOP6EmMT0Y= +-----END CERTIFICATE----- + + +NCU ifx keyid 8343bac2129d78299c4b513cc3de61037bfcc955 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAaUp9C8wcOlKngAAAAABpTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkyNFoXDTI0MTIyMDIxNDkyNFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC04MzQzQkFDMjEyOUQ3ODI5OUM0QjUxM0NDM0RFNjEwMzdCRkND +OTU1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsZVe88753AUM4cRf +KGZs7C6t/vo/AHXJaWDjtTOh9k5PD4B6PywkmlVWfpEsJVZtyeHmD9lMtuiYvn6J +ATPPXiI1pmD00Sog6idBHyEHX/8gYVtSmxbQA4P2G3i6g6MlDEkMol1e7LwHSqfA +7z773cYroiw/pzHzgghVNxjR4bW7Y6dUYgUKJv1KTv0Rm2tlI5zULKylDIRvrtQ6 +QZGp5ZhpMMBNFFqObv6NdAmGW8/PWEQl999ZLs8pXJTAlDlB21485mAa3R0hpm3h +R0UCqVXt2EtTViKYv2ZRTfMWiyP/F0iqk+qLkby87ZqJgVYXLCYAa+vjz8np28Mu +GxG3iXgSIvSvVE923Ekg0r1MuUWyFURvqeA+KXGNSnupPD+Yq/FxJa/UkIcNEUG1 +HgOtr7ZR6sQjyRpTWCdTR3LEjY84mPKbpGheuvrhg4un+WJOQi31P08J4OK+PaxM +OB/wKqVE5NK27u45P0XJ/riVAV6bZKITDKj5QlQpwBTIjex0m5vu2JofH7A+zsPY +roX6jvghA6kGRAz2yYiFX7ehCGPR6AiUn7q00FKNskEf7SSrcXxIdXiCKqVjgE6Y +WUL2o0vDqGJZGcsFYhOn+gz1vf+8jEDMYPTR9jnQ2ARts10NFCctF/DQiwJPlNHq +AhspZZbPo+BYUu1965mAlHsQgl0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFF7s6x8dB5PdMiNl +nixgjsEPD2qeMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEADL+ilY9+8002dJ7cLDYV2yf/Ql/6HXh5/03wNxlusBM0 +56PNImTT57jxYzqU+rVQveijkTGWrr/GGjrcDfVHzx9haZDyoeRRdKDOH5UUOM/6 +9KNBZgeyeUuLNR3Uq6XYWD0NJvaaODuRlmPOQ1akTAZhog7IeUJMw0rZUhZqA3yT +i4j9XjR6tj2iEbdhbmNXKWtuFkA3XmsiZzKZObSlad5ypapzOJdfv2e+TZObsmY7 +RvzrmBUvU5BP+0DENy2+H7lVxFBwIFLJ+ty0GolBTLwFGg4nfrbeNwxKKTV97/Ux +Hau53uZcOY3YTY+DbjC8VlQoc8Ob68G03btaErChAggbxML4ZZaIor3PuQIKc1iy +V6w5zqSE/weSMxzIL9DTJnnOCPZfy3SGmZ+KR3MULcCgXZw/j/2x74jwn3dAHY5b +uLl47TtkO/EeYtLmF+j3xDBiMitrG/u1iiEKE3oyzc2jNdQ7XC8bInJA2ftpYPcM +DHE9Pib1CQnB5KJBf4JgxGU37DegCIimh1C9cd4kL3p5kkysxtZk+jL1MxuuOqWm +Vj3thxRFeXsMjDb3yzoaqDxYuIa2UuT6+ruygf/x2BwUhZr5Ter4LalOdLhaJIaD +ziGkINcB0ms+vPuWxjANKzgAPCeQ+IWUyPD50UqLgQ7PCqA/Bu5DR20vwdc4Rm8= +-----END CERTIFICATE----- + + +NCU ifx keyid 9c7df5a91c3d49bbe7378d4aba12ff8e78a2d75c +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAYSnW3VLBWa63gAAAAABhDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MDkyMDIwMDk1N1oXDTI0MDkyMDIwMDk1N1owQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC05QzdERjVBOTFDM0Q0OUJCRTczNzhENEFCQTEyRkY4RTc4QTJE +NzVDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmdv8mISEof9Ba2IZ +xycotwOXtORcy6CwID67sNeg1/6NRoFuq1Z7Ti8ciZKvJygGGwTn8wDB/Bsh0i9X +WtUtH1lZxz/P6/dSoHhYIvM8cEwRPmwSCOxczS111oqDq48QIIXSDB1wbwP2xlI0 +99OMnx5ia05iIA5QT5jV3aBOrNSqW2T5KyVgcs7J/AViJoDfrusg+0/MOEXBpEhw +Y4NltgvLMYTAUg/jvn1tIzBPOQhygiCiGkH0oQ7QwOsmG4q/+qry+kD0iJ1pCw2s +ix4xxRdH9APrBGXWSrD6yd3hKo0oOf6zvHUHebrfjxUH+qcEs6rz06iB1/zQk5Nq +Ut/uInvbiYitlUZ1nuMRmysLMgvNWcyvnzN0/R7iZl+1Q7rf5QzFiTvrZwdkHMtQ +6Q9V1qrRDk5DutXosgXqUUxWG1f6PaHj+4XRIJRqpdQtAYK6TDNrMNZMMS9Q5sON ++dg+2MRRZt+6W2nVGqJNRoIZiYkA5F2B+zHXQY4DVt5CdBbYXPxIhppRYMoFuWcG +4Gv1x2uBSDuueW19DJTnx9x+yN673bBUfiKyItWxuMLtClIlCCmCgFDz9kWvfDaZ +0kdJhYmlt58wnP7oJScdMBIDXJcFyuqqvQX06r0agF/mgUdsb4KlAye07pLxkgVI +AsR+PrNs1j60giPRJVG4WTICwdkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFI1BUp2LiT1AKVLX +SH8lHfxlYyHqMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAEN6UhqgyUO22Pxg0qN7j0jnwh5zcII/8QwyeSjnRujDk +8PWyE7k2tq5h2d5aB36HvuYBS4OexWU1PzdKp+Vd3zbNOyazEEmhLqABbP/0lgG5 +An2mp+2DWGZdyFprxLMG8TNIjBeNcZd404m5AaVRc2BhVOaIW2URkuxwy8t/ASuB +F1BAQ/3VEy161xNfQrcD889Bzh/IDiITeAKDpSiYuDHeaE+smnpf6U/B31FLNiqR +sq2exD+U79Tq0NVPqi0R4fxbbrRH6vYEQAQHMZypxGvmlCF6N6PczARg5i/+XUjz +DTvh7CjQfRSZGjf+OZg4oz8uNNzZcb6M+7pYY8QoXS5ngFkeJOb7AKAn6ppzdcx1 +eeKaCswtj1/IYIjjel4EDHD5YqpbOfJmvw/Ywas+CiGp4HitGMW2WKsuGmatLJJM +TwX2yXDINjvt1525Vsmgwkf7pwA7MiXc01FsbmYD6VemXEkrB4roJm5CWdd0SMoF +mJ0wfqXhJPB9NIPXx7SCaxJpg4B00s0Ky7nzIj4uMNihIwlH7pqtx/fmdXhVFwRo +00KhZ8/IuN3vD5+djSRHZFPpIJAM/xIdoa4bMfY5KmzaVaSsENoZOb+haHl3RUvf +CHSw+nuvQLHCyghsT4ANF4cB3zpN4Siflq3cpkfBx0h1WFPUfQ2zwqqqT6IhuuI= +-----END CERTIFICATE----- + + +NCU ifx keyid 9c7df5a91c3d49bbe7378d4aba12ff8e78a2d75c 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAklQ+rhJgQedegAAAAACSTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMjkyOFoXDTI1MDMyMTIwMjkyOFowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC05QzdERjVBOTFDM0Q0OUJCRTczNzhENEFCQTEyRkY4RTc4QTJE +NzVDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuFcxIh5MQGn3YKPc +KmrPuhfiwp9ZZdlRdxFKvO4nKjluwvod3I67/1XUMMwV3qdYI76WOghlfHc0cnlO +jDUNzo2UbInQYa+EthS5lS5g2UotMSPHZFhI8LWbaEmJ8WgmAYPAGuE5ikhk9w21 +zDlzbNPTr+8NzpXg3noL8kNJX2aG/oeD5auTDyv8zyJVrQdEmQDN9JtWMRZ48wN5 +450fMzeMXrLcNQjaQ89X+/SOIB1p3sKFisy8LcvvPP3pIGHm3n5nIN4WFpOQEPBB +DcPzjCihZLruWBraubZZbkCpFn4DbE1733SDOjWYLfZA3z7nO+Y/lfwK5v7oHGds +47DDaP05ZI8lN3aNx0K37p0PUoYbgz7ocRXG1HlotvzpDPLTA0icmm19QxS4lNPO +aVC1VlzLqqg/NYF4Xx31wfUUIF3cNtnow6REp7oRyIM7C1BgBjJxYp4FCCcsmwDl +CxuqiBG8pzCNPbDhrz6H3qEo3QnuNDNl9Vhvp+rku8WSSZVbLZvannvn0BNo5QeP +JuCLtpVWDprNj2ecPByM2P60iDC9LWrypAlsgQFuLT48MwTSexRjMJ8+5WZmtDDm +nesb6yVv+36qzy7vTaqFmt/gJUXNmhEj2Ek38MxburRQHwFXuC8zucwn8pt9LSCV +kCKP8yHQf/HW+eMmVy933s6N+1ECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOUEJAlAz+cSmpmt +I2hYWxILKaU+MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAWcuLUGXNf/A0+Gus0pkRw3ZYacKO6eQPdDdj0lsYWhKi +NgLxEsCsDu7KhDYtSjlNPH6kKGv1Fdg0y2ubp9Kd5IKaMmANrf+jk6i2fKoB5Eld +jXKAUxqJbenprwUDj6NXV5sipQOxfoIFeZqc+kbcb3lKKCpCZHojJIyArodwkICk +yvLxh6QQ8ZF8LfVP9er0iXUp7KHoPz7t16RyQGpGPxxjKLaD7GeMGvdHlZtmw+I3 +5gnFGH8kULg4YrtXK6FcT29q9dcZnspGqN+qMDa5W3OpIK9UrGEonT1OPDNXMGbS +s28admAO7azz1atqMQ8ZcQdXmG6YUCBGgBahpk5Mh005aulH5usGziNiwc//Vo/u +5Tfw+mF8xzrFx54StItHmb7uctHArIo54ByK52hxWGTMMWYWROvvhlSbuzBCQsvL +tUfV0CLPrvFhSuPTOBIhhlTC8Dk9f/2mlx4rDTOBuTa5cILKZzKw1BhZM5WhVcG+ +k1IQkm+auwYvy2Df+Pq2qB99xBg+OUFlcT1pXxO+i2uiMmP8pasjwI8Qy+Hr6wig +prceUUtlX5dLDmCrx0wVYufPmJmEx4Stq13NFO3oTzuBaeBrHfFQEaocUibc+s9u +xnVQDjXLW85Yx/702X0PduY5jDje8dsf/CPNKvKo1DzO/j5VAI6ycseZZHYYwME= +-----END CERTIFICATE----- + + +NCU ifx keyid a26ceeac95fa33673219d0c2a77637102fb53ff2 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAabSvtnbtqsCOAAAAAABpjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkyNVoXDTI0MTIyMDIxNDkyNVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1BMjZDRUVBQzk1RkEzMzY3MzIxOUQwQzJBNzc2MzcxMDJGQjUz +RkYyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsxRFoSZDxlWw0LJa +A5ZMW/0ZqevWiBpWHvHoPGVC+imFKzWR4VBBQYrE++O3ZjVJkS54z0bVHc0JOcdY +acEj6YYJByJWNiL/xFZQ+a7V+/Q1a7LOFYcCOvzM6rtaPCOFTZOShpztn/j57jI4 +yZ60uGAJiBz7MK+ORWpkq+2yWanQYHVAUqEFyXv1OqW9hZeb/z5gOZ39Om86ai0q +ahCJKXkmILYnk76i3UFwK49BuJj9rZdA3J+f872DSpS7GxT5MmMv0dczwZjpnIyM +b0cuns2UPC0fpo8tnJxxAT4P/1A8PQNzBHaQtLDmHAL0bMQmWxaEvgweiNdzxc3Y +3RC4RryZ/SRJo6A9ibZLWRYcNCQFtutH0TMHQRVsX7/9CH1LnftwICpax0Kot2/l +f/3SF6BmocBlD24RrSNWZ1MqxMalK/6jRFzagRR88qiU/vhRoBs4cl5vsZADtCEW +3/g6YAfJ2LSNM9Vr7yiyZkQ1IB4dPOXdIMjTBdv9l+swEjsuFCAMIvXN5QG2uzeu +ihdk8fl+xzy3mIsP+6w6jfj3l+zOXXftjJU83fjYKrK9LDwilfBh8Vr6WKkzcbCu +IoH104oFs+tuDqMDCjZre0n71yGMOc1NBjnOc6cMTv94pEHyvMChoKCdY2QrReIw +wQHYIW02ggFBxeVhRZRoiMqtKKECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGYbJZwej6B6vX2X +fsm/PyGzuSE/MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAM6tOfJBfi9u04IsQ3QO09DWOR57/BmO7+7koIW0LT7h1 +7sRPGDa/xGXUkeXhEhHo1rP5bbkr5/t1UkitBR6jqISuI57WKSIcuiPOvFtfuh3J +I2yqa1yTH9jyRuxbxqD64zsAg3WLKkc7PfKrcQRnp8K9Jn0aWFn3CQXs+Um3ewns +V36PkA7BO2yo/FrMHqb9pmNp8z1BkRk8/4aQl6FPx0OMCtPGBhJY1F60F/a7LkGK +EL4EEXrozUkpYxO3fVsk7y5AC8aFR4P7v9Gzssld/DWgZq1pLp6kXZmx4V4OqOn3 +I6vlWv8soGoB7xuaH4axaonIcSfBBB8YH6kTi8p8NUFnCuyCHR31rW7JTIoBv1h6 +ldKtb9kg7aecAXnR6C3L5MIeUYTPuJBs+s3rnfWkv0JxtvKP6XCqfh5AovsPwWvl +oKjrey2Lgcob8du5FjBlaMwMzpCZlUVq+Nqil6EwctJCs9fLPZlEPuN4DZTf6gnm +/5BYFV3k3LOnS1KbgGUi2YkYdasLhthVw74RuNQlvxWy/wa5NDxbvd413bhlDCH9 +l4SDGLN4RwV+ihWYANPQ3FvAc7YzxTVsQFtU+/WRCUPTHc6HtFNnVGFcXplhIVu8 +y5R3DdkFksBQG/k30qhc7Bc2A1Edp+kLxnLKFXPc3+tBnADL4veGHTU9mb1mkcA= +-----END CERTIFICATE----- + + +NCU ifx keyid c2ef641c329cb0a9f2eae04bfb10c99b89c34614 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAfm/v4xgdMUBbgAAAAAB+TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAzOVoXDTI1MDIwNjIxMzAzOVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1DMkVGNjQxQzMyOUNCMEE5RjJFQUUwNEJGQjEwQzk5Qjg5QzM0 +NjE0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2SiJyoJZOAwuofvb +XJmsrqht2QBHEVbgm4O26dGnyJ/C1rvsEd2kfc2qFBOwYBD10OU7volt8LpyQW1s +ElvGwvC+kACn+NBIQKNIMLipWyZZyXFe/EVo5XLvWrZhuJtH1ACgDAkgoZGFrYxL +4OmeCdEcwMUzYsl5nykzxBZWwrI8TbgG7EbWWdG/MOd42W0psEayxW0vCF7x11CO +TFXcOjD3n+cviMp/V9VAi6tIHgbBsxcINgqZiksB1h3pFarjJcS+JEePYPZRQkho ++QcC+1R1G9UUs5jUW8tMjAxoH58/DkSg8Bx5ECGIPiWU3GhorlCegqRuhGKicWCb +yirsJmtFSiiPbxGoz/FRzIQKRcL7WTeZyquLpcKK2e1BqeT96D+SKmnpYwH8XTVL +0nmJDP6gKlqVn6/Ilzftek9SNsILHA3gt9WZYCvIQqy0gatdEFwSuc519lpB2xMU +8t/8CMixTvJTkTmSqXb5jY8WlqYP4f0zM+z/CGEdy6KBCBhKIKpOQGDVu1E1n1c8 +tgjZ1sCM3GyKrBSafJjqfvpEyAnE30HJ1CkJDBkEAx83u2YDwHqGRIqBOqJJCkoO +vnyngg6sS8Q2zXPXvb8fNNlj2iZUkO0nODvt0WZ4hFHSHL1I49Nrq2z+RbyFL1Bk +A07gr0xUt8JaHCkmV8g51e9BaH8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJayZvkwcTtN+Ut1 +SFaPNMNOpH3IMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAfHvWlRgcM/jvApqUnlBQROjwmj1Ggb5Iwq5JGeeQOSTj +pkakExWh6OB3JWQGfiNjKoIrNGX78VURYiHBz3j3fofQZdpQlPb1svkeg93+6t8B +KLRq/GvMufCpypSHA5KrF5M3qvSm+XXXbLWF3cZFtzs3StEYP3RZ/kPRo4dCrAD2 +bdv29aZmcsjVjWmogyO3XIlvKo2vtU7BMsJQ/X2GgMr+dFai9btlIEY38tyaEPOR +avIAfwPQO+F/oIqMFJ6IzMRxop5zAuPPv3cnl//SfJFnuqLgyuzSTwIQwlG14qSB +7SfiHA7XqB3y6g98RHgyh99ocKJ+0kt+BuF15YQrqbrzeNXISrA4lFKAzM5SuJXl +KKktIX7WE72GpmwMgQRpeu3dlTWnTjY64CCw8XgIaMOXgBkYJO2YM2h639Z1A4aq +n9Y8iKNC6V7PsXDBvk2p9OANcqGf/CwTLDZ+hLcg+HufyYng7e3DCJnE0WQLClcI +8P6BbkylcVbN/kJbfj2w0H14r4WIlExZAvipFj18YkhsoB+qlUtlHKyh2N8lff26 +Ho62eDbxvsM79LcFBj3kn0A3rxR39Z73F8NO8GSxpXkxkjHqzdPjBGKQysMyAKaM +UPRZdeWYJtmXgaLRbszWHNFbTqc8AEP2nXKuses5eNi9Z2UmSd8YJSdZESjeajc= +-----END CERTIFICATE----- + + +NCU ifx keyid ce77153b6e110ca4ae2971a09851ef499326202a +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAac2kP2yiGEFCwAAAAABpzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkyNVoXDTI0MTIyMDIxNDkyNVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1DRTc3MTUzQjZFMTEwQ0E0QUUyOTcxQTA5ODUxRUY0OTkzMjYy +MDJBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6Lh11ARCKHnKBrlM +pcVPZmlFUSuR5S3ef+drR17CicsdQPK3+WQCiMKtMI60vW17bWRfl0L8Ut3suxxR +fmBMNc2YJmCOPAeHuO+3QJmPyWmaJz81JUEI/HsONPVAQPANOo3ex5MuIPmdklFu +qQ7A8OmxViJC40kh8GgrVq843yQbnEgPa37IUu/6yMhuG3aVLhHAyKuugA9MyhrY +EPQQ5Mdc+s/F722d9/JcyIYIu8JBo1S7x1C8P//vy71bNiq/KD4/LuWVOA57vqIj +l44W/tciNUbuZCxIIghX/rYlFUPMJr5HeOPeuLRWfrPZI6nXkniU0PApst5wpXAS +Jjo/07LIPT2999s7vCQoaut1IJ4Fi66pVkbqbs1s6c9Ocx5g/I7OiZzZWK7ixygp +CT0MAm0tz3RezUD8EvThTpypfMJ1DlGPNQ4upbI7urjgC6/NmhvZmb0TAsyhvl3H +KwAEAn6ujFyNgY6mz0CrkiXTf6JTE/tBC/hKUUO+mr57y1il4z5VMhdSj2X/Vmfh +n40j5jW+3DbaZ+cRD0mdtuq8/WihQDuZoOWnOrvLRvdMlMHZ4blM73qdRn6QvvSi +hwwrLD6pY9lKDG/mQ0U0O3Gk+FkK2NEBxRyGRUyoL1Tw5nqlxIH2A4AngdrFcG9e +G9W+FqCTwMUtpZJygjPaRhUgyKMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHd4yC2BwvtWKpTF +RpUI86Ed1kT4MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAPNA5xCLNB3pJ4b8yY4XwVqL6XVlFbPJDu/1GJF0uQeWn +6f+dXkiOSuq4g+R0243Ehd2ye31PWYOdgFfAZwiNfzL4ebWrEAZeVWwAPDe6Es80 +SeE7eA8VApF7ZApy0ohetEtPuajajDVgGB8If7HtdEvfiBVETV30QJKsuccdj1h1 +9nWo+OWwOCbWMaDF9U21bwAiv4xAW8scFwkomTQszQq5hMt7je/1jRgG4sGXtSDQ +ofr35T+vd7IpuQMalD7Vl0juG3uyVvtkcE9azq3s9MnDNx3MmmEXN293Lqt7D74M +xOMY0wQ344bYdok5OTYU6R1jZwSuo4qqlpRp8AP1TpEGls56vzL4aX0gcglI9f2d +QwzGea1O95jiINfEMsWFJ7hWLRjDfVJ2w2b9d1bNzr4eYkdq37AEvAa/NW+aCNBS +33TrgcvrDhrNo9470lQNbJIq3b3aRtN/SgxSJlyrfSI53uBKv9DrBw0H8bqkl3ps +U7boBdsVa+xQJ+SXPbBJlW36VpBlp55BpwxW8oqQT5s81CarDrOlaNAz7gsosKC1 +/dplsLePh4IEJ1kdoI33Tbj26N7WxNUW/RhofABDEpN4K2vSry2+0n05XC07ceIX +h2HyodvyuHBxlwx1XtfiTUK8410/cKqPCeT0dicTlQt2OJzpB3RWNIFcgvi+v9U= +-----END CERTIFICATE----- + + +NCU ifx keyid d8a3f556085a68c8aa5d5fe079bcc6e9c6d37764 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAftrS1/q8wvU8wAAAAAB+zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzA0MVoXDTI1MDIwNjIxMzA0MVowQTE/MD0GA1UEAxM2TkNV +LUlGWC1LRVlJRC1EOEEzRjU1NjA4NUE2OEM4QUE1RDVGRTA3OUJDQzZFOUM2RDM3 +NzY0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApavI2Kejp6LIUTdt +IwNl6ruIi+dRHuzgpixIbhi27R0tbXJzkyK6/TlgOB632qwaAW50jetcxz4JBNRu +4GDYmZ9JRPoErmDl1DaCDIpk/+pA5LAl2skRGrzitV2HJz+rommVGpMXhP1HXTfN +wRkL5GaSUJQT8gA9eUC6NIErSRKvK2kWBdnJitP1ip4JTp+QRogtoehq73CoGYtd +EwppH4+yvimWhe7IkgV0J0P2aOUbe+t8bDFc+8QaeiQUYHp7JsD7tGrusAFJjPWS +sSMlNAAsnbWrbH9u/5cdiWmSLPEomNwYjhDuuVBeo3ToLSWcQPPkTcZOxuyvHTDa +AiwD7eWe8qMJNti0PmZ25d0sPUe44KSgEs6xUd3cYPdtl0XgwLft1lSi+nzZFHzA +q9I/EgQRG2jPWHXNacKnBvbZNQAUzXNLrK/dyTK7Fv0uuBH3NYXYL0E31dkCg9s1 +F2ynbHm/tu+dJkeBr7C/9gdtHzc6bZ7y2K1diceZcnBUYt2LTDN6ZXH8DXaBZOQZ +kLT3WpUBspp1uRZsmpL5JV2nL7ifWHhisKS92w4fBWXO3UROT52RZN5xMDqLj6t6 +RQ2vDO64cQCslOo3mNNf6Q6SmeZs9RC2/VOjsbHZCxpy1T7M6ZwjN3tLBvqVjZJy +aQ20M+weyzWyJwoedvZ/BmaY4kECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMBYZyW5Gic4ziZL +FaTtfS2dwOXJMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAX+Z6vuypja0Uv5BrO1+2Ai2gPCUSyotK/smOiNOCfelq +fBfxcxl6KnME3V8UQJa6TyHUzHxvJ9Wh/SbwuyQ/CO+8y38vYmPrXtbt+0GpIBlJ +sk13Bji8/xDRHeW7xFop5t+7b1TwZGf6gOdB2EIhVhuTChNHnFQtvP+m+HhLgbVd +IPo+KBXpvGBm3LODgaI1h3qMhCldSc9s3OabqD/Rg6GePQrRgE/qf6EGeT3MYpj0 +tfs/kpeTQPOlmislZQsPnB0Ne+OgP4KRd/8GohSUcrod7YOfW3a+crB2zfYlF3aX +ByQTxyXw3WhbSOVd26XMWarxOimDqgs5DVSU8lHmFbz+zfK6QYziwFCgGnzcmg9n +DYoXz3/PtcN+k/9Kx1CwceGk/Zv4QJdHBPr21+ty6E7IRBxrGaRc3hKmmqBVGGDZ +En0en/Ivo1KCnWBrAbpJYtfbRdJcb2yscgCYxelMgHuAZKiXwmr6YZo8ZH3qs/8Y +AIolKHvKC14d1ZyjC+7v8FxJdfVHBLd52REcdd92LOgIA0uXwlivxFkKUnW/vSZG +bZrnjwTIcMe685rP+ch5JH9TDP91eC8B36NTSMqIhuYDZk4C2juVAVDf0+yYEugL +LOWtDF5kFU6wVMpF7GUw+4WC3HJonshjOE1W50fB0T9OJWmeubm1DF50Sl+WMn4= +-----END CERTIFICATE----- + + +NCU intc keyid 17a00575d05e58e3881210bb98b1045bb4c30639 +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAZNS7c281AOuoQAAAAABkzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIwNzIxMTcxNVoXDTI0MTIwNzIxMTcxNVowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtMTdBMDA1NzVEMDVFNThFMzg4MTIxMEJCOThCMTA0NUJCNEMz +MDYzOTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMEw2Toz5lLSv4eq +mavnL/KqmAUlUK5HdJD9FzUCZwtPHKHPsRVSoGc92o5xe/t5Em8RSOOPTWKdJYPL +c9DbTjWELjTGRUsTCVaBuUb/wFcpv50JlfDuLtXrQYVveNEjlBuqUw55kDvRFwKl +/np6A2aD3//XUTdBfV5T+lQxJV2as7VHF5dAhgXotGwYg8UoWxdJchG5eItkz0Tj +1PLsoyVIj+FmBXjpr4irYmsLcoO9BvbukuEmhqMDPpk45kqVheg7WtLguqzGlqxI +4Ga17gD1FxIazO5hfaIovR35Qb7rYSn6T6WWwFCxbfc9xopKmPOOZLKmu9pdFpBW +U985+YDIyaWASIdSHShLo3JcNti0lj4NX9w65mnb8kxwqK1kBaNw77eOhnEJnxWg +zLq586xOOCYMgSjwBJFg4aGhL8yS6xagiH9m5SmeFVxXAW3XQFLifpLT8kJkvI2x +3E1A75hrdUn6u0w8nMr/Yh93tcmh7yXBtP1vqCTFzV0rZtnxkDW0vnII2XlhoJzp +C3YroLA6VlbPAcOgZSocCST6yrLIegwrr05oTxpmOnaHlKj3b9BvNWGBYV010Ri3 +B8vqvqVbNpbBcwT0IEh6wb/utR3U7/HyjvXfmu6GPmasv5AB/biFQzV+81JET1Bn +lpL4RUBHDQMRy5VCUgg7FHcDrhW1AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRPjByQb95mjtNq +9dpfqRMFi2pyEjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAJzM8QmH2HZoWxNLfDx5OS+talvDSVXSSGIiDejLKsT/ +8O2yxtGVMT3ziwYM4uefFRbR1dugxhsOihZa2smNdz3kdguis/fsNd3INvieXmK+ +MTvBZcqYZLgZP5YznB30dLrMVJMTefKjk3TkV8xF2SWZ4TrbF22bSMI/9ECycigP +16PihUUvgKwJPhjgnZwvAVdAYtp5xtfSIBztKArDIUmtGmNdWrtYXdMhgaVtrEld +A/cpHcyUg2OQ4wysvukf28DDlxLX3FtH4xIvf9qzx0bWVJidB/bXox6yNF9by9j/ +Kbmpg+kGMPekjsJ22I9cv1YaLR0vbWdpaEYInVW409waUkinIJT0IXvlfecRj4QJ +ci0wGcnvyJP4toNuWPponWi+bj5TfCN7SVyLGpCVpzKCpHKyB82kYbyT8WspgkU5 +s5R+nLYcxS9TUGi3d1nRsE7Cgvlzo2MqzBOtfscjT4LBc19rCf1VksBsozeKBusg +0N2HvY137iJCjaZEeOCeJt3iMt7C4Xyr/nxRnPne6DFUTaz34e7O8Ve0MdFMonM3 +WTWdzwMMozcouEOqVBRIwVcUUouMP2e6OBhCUoRtKFr+NRMGsnSrG+4RRdKAKB67 +Ou/vgoEA7yE2na9W+5Ym+VI+ynOHLOE2MCF63kNrKPggxCwdUTIFJYa7kUVrXONp +-----END CERTIFICATE----- + + +NCU intc keyid 9aaf591ee263caae10f57ba04fa8d1dd6613f9eb +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAsoOaSR/G2xtvQAAAAACyjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIxNVoXDTI1MDUyMjIwMzIxNVowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtOUFBRjU5MUVFMjYzQ0FBRTEwRjU3QkEwNEZBOEQxREQ2NjEz +RjlFQjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAI4PpcXH4osb+/ng +JCipM2b+Rin5iSYiY4TUPL1gT9s9RxDBw/tMy11ydJUL3Pc5D9XZWm/i3EbmOqiQ +Pp3Lf4ou0qk2sVAO0ILmIuYeiG2eBorjHKVYBcVObvnGfSwrN50XXnWFDy//H1cI +dFCrpzlVleHxIlQ+lh/HxYJVccfxblTwDPxfWNqPQEiSILzouh8A8qXSwvsLLymz +nl7gr8dpICaD5JbY7hO9oZh8QGO6chKvllXHvfSW5Yqb/ykMkTUA6Bdb+HPNcfOT +CybC4CeUywHjYr41vWXyK6OomXma4dEgvg5Oquu603qXjOp0CuLSBN3bzgbdxZ+O +waa62/ZfDu6xyQVpxSbsaELh7bIlaWfm8O3kjdSG9MridPRAK/rFSMCvZAeHXgkj +kcEPCK99kpk8d+T8Sfdij82lqJ1lq/VFlTpuikB8We3x7U7GKdabch5Q0ECBg/+p +avjnHdZ+R24bZve1dNJUD5OmQAAQPPP01C1zbRUof4jRMhAVPM0QKwiLu0k5s+ld +WU6EamhmK9+LtRPwLaUpsOlXNNOPRdZZ05mbIoPrW0s72M/ZrhJX12q4BjREe5Zn +CXKCIWeuKuMd+bol+FwzpgT3zlbwhIcF/iwOC7+7qgy42SzjKWA3+Pp0V+dVUXUP +5tX2Ue0NsS9merEdodaEKCT7CTffAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTD/9xE6mXyrxpK +WaRMFDsP/nVeezAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAACGdKjYYsXo5EBYGbcXOELBtRjbHHZkjed0fk/s6+cD +O7bV+3xMJcgDVIQRV0VwDj9FYZ3ERzpx1KdRzR9VxGpOIOGHxQj41QUL6phZ0gzd +O5okuoFxH8FhK/DdnB971ccJ5qYtTh3RKr6j/5mwVudlrqsaXr4h1G8Vp/LsBAij +azVSYDZMWFPWB35VArwaCboYDmH0UTzC7Rn7nZ7pxM4R0yxffovZmdjUt8pn4Hmj +t5rODtpPcceTjaaVblsdp6TEHPtzyvDJxH4gof6kYCFFCoYoqUAWx9Y34mi/fgwm +4uO2+ytwegPoWmnxjVItwndeBTYToq3+o24aTNZIXCicksUGt5pnpdYhQC9FYg0p +RiMU7DRr4ZvM61tjA6/CWtDrIj4q8HBZ1FwRclhevoh6NknJgOC4Mgy4vs+WAnZV +K/wfNLnn91cxASTSXhmOZWjBQ25e3nmLDKdeNooYolaglza+Cy/QJPHTAAG6PNH1 +efCJRHdqul9H1ZBW+Vek/6ooYRDwcDo2h9hsoLmy4WK/1bvdJ1hzTaTSAIFidL8v +GqOdEqsWjqu8SeyI3misrTEGDHEm3md6wNRCMNCW3m17bRS4/tkByiSYRA3sRpA1 +Gshdl7WLLQqDgzPWDQRsBmrzhCzvFwb5iIUE30uouLWis/In7GvcImVH/M4jXazH +-----END CERTIFICATE----- + + +NCU intc keyid b066d9697f5d3a07b425c10f587cceecf16ffe58 +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAvFK60eUOU4jJAAAAAAC8TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDkxMDE5MjAwOFoXDTI2MDkxMDE5MjAwOFowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtQjA2NkQ5Njk3RjVEM0EwN0I0MjVDMTBGNTg3Q0NFRUNGMTZG +RkU1ODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOknXXdIU1200/zG +oG5Gbgr3SkhgJ/M5M9Ey9jbJEPIj7JdGBuUoikJzzyujYKghAT4XA3h7UfDHJlG3 +CvnjXyZMJ/aLRRQKGlqFK9w0e2XmgRCbTRBCNm6FierglArPnm2LE3Scs7R0PeCC +06sm4JLOxZcOJMVGYpzkiaku454H/cgMa99w6l3J73idwtuEZJFQPSYBmfyyZzbP +5o67DyWIvDv+OhJWICPLOvMu9pUtmhIArKDVf6wzjVCk93mQWwcywJd5B8wrqk9m +Hzk3em72le35jR5U+a+bhsCsUGUqGOEVw7+aXys+eoXbst5YSY9Q87/bJ/9DurWV +xmJXF+oT1CtZI/JF0yYAdHs3RVsENaMiUCtTp8eEFOgR6OlRl/9F5lSApJQIAuS/ +ZQyFLn5Z+ZCsMSGof7ctrCMwMm1FQXIJSgfmOM5qtAFPGkly9q7t4R4j59jCNLjy +fQB7bVoBwFSLxsrrOVv0rKXpvjet1qKQLb9fK4DyAKBk4Ep9Gzt9abbhXwUMJf4j +lvPDvobctb/0ukPGNoTvf57P9vW5DPvzUVW1+niuDGQHB5L/QZ+6khlqWhYLB0nz +rJuzjgzr17h+YKmWBAUFgwGj0pXAedkg+VaW12O8i27k5zpBGDwS/rxJ8ltzBeW/ +kM7x11kdDFGqaqPJDS/8AuGYc8ENAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSbjTZVc/S0t+Bn +Jnb0f7JLPDoNuTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFF2QkX2g21pBG5G+uJsMJ8gNFw5iGRJO3jjf++Xvme5 +Erb8+/dc4dLiZb6WhssfQSZavnkBans1VY2KimmP833uV+9Pm7yY9G9L+CQcN3yX +4VZ1woao3YbryAAl8ymEx3YZszcpTqSNy3cGI1t1Me/cLwmqB/R5+Np1FESjrF81 +p770u/+kN7sOygr4d+d9sawNuqSzL9touJsN5WyuTvuCEuAy1s9vPMTXM93Gg0AU +NF1IdgcCe+dTx7kkSMTmm06A/jIVAl4pJ/CWN/uWYiMBMACDkEhjvBS7gfZRSQMR +voqeBdPCuMJZKSC+cGFgKjZQTAkC3MsH+zpccNk2xTKgZbXWBx8zdZpYTzFz6SvT +AXZbUo71n5MJDP08oqnOjCFZbn5rdFFrYFGSpXY2CMuuZswqOEHLPB17cB9FJiXw +So2px1m0zIagiiN9THG326xzK6R0UOXBMY4sUZaJuO3H6wrQKX0Mq7SCLQFi5uQn +W2CCkTLyzoZrFtp4ltq2Ux/I+in9MRAj2FZYpaQUkvIMJhxw4J4GuUVMawhtjZAD +8wbFyCoMA03n+CclmZRsgnRQL7sxm3SkNBvCMHCRTKNsybYvlE3AsdRXiQlx1qwS +M1RLWyJGAcWALy09/bicAjyV+Efo4GKGXl8Vw5CKz4EsfOZWudqTHDtJ4q9gX7Ay +-----END CERTIFICATE----- + + +NCU intc keyid e7083f22152a7492ec59b0c4243437648b15dbb7 +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAsvOeg5zkrxIlQAAAAACyzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIxNloXDTI1MDUyMjIwMzIxNlowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtRTcwODNGMjIxNTJBNzQ5MkVDNTlCMEM0MjQzNDM3NjQ4QjE1 +REJCNzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM6SNxJZoDYkR0EM +xp2UjPlFl8+hsUrbdju0va/0kJD2Dev+4VYX/fNqa12fWALwoanBQ0Hly17GOa8P +RYkHRjI73X66W37B1QvQIEl1OTZnELnjwnZZlRIv8fDi036/p0JbYYQyWjvPWPjR ++T0r90tB1jE+JpqlbGSa7WD27X87nXGn5AmB8211UPNdvOrZiF1NYkPAE04BpFyM +jWh4Nhr8n+/h/skY455BYq3kO/Oa8Ph7WExZwQHDHAqW9wFCndI+uDiU2lZnIQaB +Xbd4bV1yXZqibXdAoeSMj1VcEiojexCXFZKQytI3FIMSLOnHsMwIglz4zl2a4lP2 +kOFYlqwVmRJSPbvMGzSplQUdz6EUAQCZPXQTwOp2KiQKXUICBAqAs3D3GR+YBpET +FftvLrndNHV4fjCkeRqeZVT5Qw680bUddSY7tUfScs6P0l9gwJELvVoneIp+ZWFf +64S4DiBBFLQLDG6zHqBfq6Mzq3upZry021bx9/c/Zy/5Bg9p8b0L4Lk/SWP32tt6 +1syQx5PZKfFKznJnCfqXCz0NXh66iPWguyqNZg8ZcYztKpivvMbbS9s1SwGFL6yf +3gfbNJuhInITq9mxmERc+h6GQ6CVPT7D4PSagVV0jPMxaGb+0e5J1tdrJw1qrbCj +MueMg+8pzf0ff35CUcOpoXs09ErFAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRDxcNTZHs+q20k +XuqaOxp82KbRHTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAIUvAC//a6hTcoCfCxLkHH/OFrZ8eThK9GNGhudbFSwh +5wkrCcu8XLQQBN2qwihuqHoWcJ/tCCyAY0Hcir6ASCIXH6zK6QkJoT3EG3csJw5+ +FcU6+QBax1wgfXi0ndhrbhAC15w7bqztZJ3e1bbt0qboRbklEFJRKalEXlntXM4W +JAH/8WMMUbYLG2hd9hXmnGXHRboAAioQXJzvTcBGcozZpIgrx1VQU2Q4AQbylgON +z8d/XbX8bYW1tsRh1HdEbI/B9HNnTWDNNANXhwaYZ3VvJG/OSNR5Nh0KQtCkI4Ud +fNzgCilrQUR1UUXIN5PWz5AI8n9dblTkixZdGaWGthdGqFe2+ooUWChUJY46sDlm +09d+jABeZveG2z+WDbzof+fzV2ZRJT3Gl9urTqmJIo7GjGxoCuxudkrUinZzsIvl +rQnFbl7VdNlfLriTePyJ2mb6U8bPiIiu+ekHgoCo8WVKhmxFJLlqKio+fMq5BB8/ ++Gnw3qu74ljyIAIctC/SgDX2EO1VMDJ4UmCttLa66cqxTSA+uMCuGtOAenR7UZHV +PbkWsq+56ZOMU1y4tm62UHfKY9d3yXzNRy0hqkVRNi9/Wm4QfjvmWWPdnMPO9Cm2 +zPP29SE1WpitsRoaf0OYECrQXdMtR3lcJsmOUQIclBf0AAmFcXxyLn5r0LCv8Z5F +-----END CERTIFICATE----- + + +NCU intc keyid f307ba33347c283a1e0c1508ad02f5c8ca06f45e +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAvOx0ljlALzsbAAAAAAC8zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDkxMDE5MjAxMFoXDTI2MDkxMDE5MjAxMFowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtRjMwN0JBMzMzNDdDMjgzQTFFMEMxNTA4QUQwMkY1QzhDQTA2 +RjQ1RTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAImZrCMjSIF7+Wid +qAmzEz8QjXw5k4WbaYY7cM6TDtVbs3Q1r8qStCuvZmkl1XYKP8msMTUNs+tn11DP +3E7f1sSd3UgOseNN+he74Kq1ZYzBiZ2sXFRHGJzj7UU5/aCXaXqICXZQhU3zY+Ee +GpcMSyZ2/If+l9I7KdDbTLPb7bTpNE/N2HGl4rsxavV5QETnlxzm0TyVl/UGichG +/M+0Lsi2uwCyyaCBwriPdMMa4rIv3zM4penjwhhU1b+eWeAMMKBEOW34uQE+kLTg +UqWUOgOffB5sqy4VsYA1j4BHj+RSf1jKXj/hwo0y916vhzb2+s3Igmk6ayG9aERg +UcBz81T0okUO//zkdG2WqYXf2iUWhz4CgrW7Flxfq3gVPDPWfNd6B4ejlmJmt2pB +qAgRFmfbChV+1d7HOigAQFoqD3J7EF/A63aH4JSwax+hloLPtMtSTDd1D3gQNVkx +jrk7JiQtJQPfmUClPSPeaAYs5sj4kEmD1mRKv4w6t8nCwDH8y3R7MqKSJOHjcrXJ +EusrYhnQDzig6kMG2l6LMI9EGB0PrPBxbr86Gt0g5jUHt9ksXK3p35aUi1XilJKt +gY8PHlDFYHUxonmivibFUAyWD0hKxNuReByJrjJePfVbWsuhvyT99eYcoXvxHey1 +HH9Z5JVelOUL/Sbqtu3Ww+Tf03MpAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQz4uvz8pIofked +hWFlTeTMe2JNpDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFgAE7lpraSk6EQpQyIE8iHuiBF0fGDGlmf5C2iYx89E +TypXTqLnxiL9Uwss95Y2NQZk9cV5rR7ixpqkm2YS3OWgmc2IMp/vINzcdU6OxPuc +vwnaX2d0O+DvdEDGGJtJCthx4yNhbIpJFSyl7WT8oN3LNYfwng0pQJlkg2lR9Umg +m9g0AC3EFrfpB26/NHF5cZjlB7b+tkJ5Xs9PjxnuKnoNtDKZq8uUWQ6KqxDQfnxv +pBCyj0k8qYj0UM/MgZkk7k4W/QzXt/gBvunhHhydYnWAJ8+UMXIBE1todjkP+203 +YayWW5h/ksXSAagUdVPxt1iq1XxrzttiN6th/dyl7sH21JIrvxURxgO2iv3OjUeV +2NzhXAUtRqtBrE3cCIMUeosHJ1T24LGIDkM0C9L2M3flKaiS3eiPizQH9qsmBAYP +6dyTZ4YAZ3f6cy/cGPPc5zFiYfGxdCN0hY5UbsuyPr1YssHL1/nmHY0K3Eevm7MP +I50w/uTDIzqhUTwXmN32TiU5G/tRNKDqf9XQ3mZKW+RcmZYEbhE/tarJKJS4zVly +6vpL8BQ2bQBS7OPUen3LSb11dmoHo/NSF8PYI29VCkiVQhD1U/XpSqF8fkuTDdsg +rhTevUwX4ucYOGCYwEwwqPmYXxXBzu/gkasIHByScv+vG1xzWKJQor9RzxXjmSLr +-----END CERTIFICATE----- + + +NCU intc keyid f6dcae3808326f10a46a62d55fe0a9cbe841a3d4 +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAvINj/JmFc/ApQAAAAAC8jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDkxMDE5MjAwOVoXDTI2MDkxMDE5MjAwOVowQjFAMD4GA1UEAxM3TkNV +LUlOVEMtS0VZSUQtRjZEQ0FFMzgwODMyNkYxMEE0NkE2MkQ1NUZFMEE5Q0JFODQx +QTNENDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL2TtemylWlcHYg0 +16Z1fI/fIp5zQ1GIE67upKa6p1a5Vl6+XweWBlgnIQ13K2slyHVxhU47Em6uI8cy +hct7dwgEuQyp8qcp/qPuRjmK0DzZ/0F28JGPff/dZrU9B2A2xCprnsTQnMCboRWk +PsTleWs0+ro8y/5DKp/Xu8mEXcCqT0r3ymM5vezyP/2aLKnQiD4cU1cPWhBIOgAh +mQdA/gimaweJ5syfo6hGTPlQ+EPirT3xmCxK//KishCgrLxMHOyrICqSPpDB8Fqe +uc2mgRbwWVvuqq0IIlglxx5Bv6FzAnNgh54zblT5we0W2KFA2WTFWuTloK7WHgO7 +js+O/ogRbe2/2IdQEIwz4xev4N33Y9Y47CwG0aHbSlytSKDXf+p2cjaWMbQXGSRr +mm53HlZbrfkh+sJkV5Ge3X9KJ/VXnF8jgJSp3ZOzBEN41nVCMKLYXScdVX82pTsH +S5fKwJcGx/NlufVg13McnyK3kJTafp5dh8ndaY2JfEdm4Axs3dWjmsiW8Gw7NQrD +4qKfLeRHjeN3TJKGwAZB6KaB6bY/0I0B6kSIe3gqG3wIE+QwgsCsBFSleAxWw/yX +6FBDsP2UhJkXYbCtdGpgsCu4mvkN+E6lJZxtmUV7N6f3nO60cxiQCI6tfwAD1MNW +G1dN3ryv14edKFC+DCMg1ScvbpvdAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTgnJrLrkMlcnhN +ts65mKBaArawHDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAEYPAXzQZIW5jHsWifuZrNiWYXS+MHqWm6YfTMcpyUE5 +e+yKFPvmG15as+6C4g8u2TcRc+Fizz1+QnqkWQW86iQJj18IgdxfEjojUqBcu95c +N7rJSK8pnXmR1tTuFkBZA2jJ4KLvcl8gqLu4zOx3hgeiCXE3A64Yzvjm0+hBf+6g +m/LMaIzzKRxqXLZ/r2peE37IrgfDRCKRy740w/kBQVIauZFwMcyHV02RV82yEdyh +idOez8XzBxC3A5kmulrIEys1VQi98jnosR0fgXuksRVHg+HclP/9o/NTbbeNzYcJ +tpndRK9qN0iRazr7rC6/W9B5rFACq8mKI0lRj+/Qs5ThCzA0cH6bqHRGlPemdD/0 +jOlz2X9c7h/qdHmKEyeVpFbmZmcb+nTc7HBuBi4umd/qJie1wgMMPTzVxU+VWs// +5KPrZQNX/0wUGPOghV/yP9HSFGDFWYqjcd2mRt7704d1PrL0D8w+BjOrKYP/08SO +fn9Ub0wpIYW4Ox/uKL3zFiTfVYXmZ7l60/iN6dyfDcl8QY6RtVdMX/aAceeeaJfW +8u5IOyy3wJvO0PAgOMa7ifT5Hgr7ENHJNTdSMh+n7lzAcaPJ1vQ0Q0rXnrFmjpRj +f+VYrRKfS0d5hulXStqyDHggcbvA0KYDkdkid6W17E/SyBT4rCitptn5PNPH/6A0 +-----END CERTIFICATE----- + + +NCU ntc keyid 1591d4b6eaf98d0104864b6903a48dd0026077d3 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAnsiaANte6FPQAAAAAACezANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAxMFoXDTI1MDMyMTIwMzAxMFowQTE/MD0GA1UEAxM2TkNV +LU5UQy1LRVlJRC0xNTkxRDRCNkVBRjk4RDAxMDQ4NjRCNjkwM0E0OEREMDAyNjA3 +N0QzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApUfcE1xKR3VvrWXQ +x0ovHecLlslbtUkvD/a4/pwXTJXO863qAKMeCZOXNv1f88E5l1B2dvxa+XCrVxQi +FfADhYmswGrQgi/gzTrb/0ook/cAdDn9xP6saezi5yS61eR8xQvH8Qt7xAjx3wv/ +EzosDDpHQQQ32blPFpZQ5kMn2thNouLZR/fCoALwILkQIzxnHKRUMYkIVnbP4mqu +loHBWZvGmNzf6n2f+1dd7VygPRvpnm+opJlVLC5qep4ejZgxTQX0vNmTo/xiLZJz +AawO6RSlGtC0pySNGnsGN2Sd0w30w+qPwcCalo78irILUvz7MqZt9clGxkUOo6Cm +h9tEVGgdgJG0hZNdJ7SeDiD6NvCrMbbfWwJSK4BJoRqkmhxMBXzUWGOVsPuyOfyf +4ymf/bV5ICdpqT4eewhYnaa914UWi5WJwWEz353QMJ1P0++JEOsJY3v+TfvhiGzb +u87uuyfL1M4m5r0QhGFscM2+vf5jTo0v9SuWcj2Aq3GOS92A8hRkkbfSoI6jrW4H +wODrSdHRn3+CfrqSSYucvx50aVeNcA+yAe2k+fhyJLP8mBvJOJ6+zKV/Kas1UyJF +VHyafMc23bKLWexnQcI3ELpONRVqQhYDeuKmkz/ADeiT49qiPuvIb9POK2uqY+AI +JR6yaqyjaCW8Fxz6Wt8oQoQR6h0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFJ2xeiSBrD/Jdtm +1pOdWpBVzRVaMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAV1JF8LS0rPzPFcRMwrmA5kStFmKWzgG6rfH1AaPAOHkN +tWqGPSfFGET2qQOs2WhPE74gOjmVN6STboaJdO5DqPY5wNwD8IUpnmbkEcqWgNUK +4w1e9H2ohsEyL0bz3ESvo6O6zOgEphvFiZJaWPWdMB7s5ZgKzgr+FsCYvCFbb/0h +hx4hpuT2V9/bg30lF8yyJOamwtKC48aGsQrLS03XZKOMUl/Un34GWjAMYIWq7Dzy +YMczO3RMFr3yQhr3vEc/M1Gok9+CJsByWV3nEF9DkRuMJPbQfLYcccydAMCp7tcA +sW9yuusy70pMvgeevT8oUBqSDrBL5/TOiC9pah24MUmweO+V5v9+C2zL7MUhqfko +X83ZPDsR/7KghslZ/nCDNXYlU9KrH2kM49DRI3b8B5q7c2s2GZ5oreyFR08OToPo +369hIzLGwG+dbd0E4afahQmwn9DXSsEBW8R9cJkPRZ831ocaqinD9i/SnTsnjNYC +ROMJX7GHkD3KQboLR11MpedKL+WIPk0936NG0YRYOBv7z4QFw2C5qc8qorCPooib +Hmt+MKdvkrDsw8bWFxQfR0MV/1ZqBj3mGMdul9wJzaWDLgBiFJYrI7HVDoHWGevL +Pr+MbIGp/8xYm4BtFz68z9MJzuatwZjN9WjSEbeJNLH4629AWAG/s7Q2+dsTLg8= +-----END CERTIFICATE----- + + +NCU ntc keyid 23f4e22ad3be374a449772954aa283aed752572e +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAXwzOozrTGve0wAAAAABfDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MDgwMjE3NTE1N1oXDTI0MDgwMjE3NTE1N1owQTE/MD0GA1UEAxM2TkNV +LU5UQy1LRVlJRC0yM0Y0RTIyQUQzQkUzNzRBNDQ5NzcyOTU0QUEyODNBRUQ3NTI1 +NzJFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3ygjddAxaHBE/7iL +W/cv6mzAEL+9M1w4FP2i3at3W74mJhNRtmrqaMyNtWOCvu2woUVXKwDLT9dC86gR +GtigHKQLWyrX0+Ci95XDwqPAtwjcN++XwsVIvnGMEPbwAgNWtku/NQrPAr9cjcgB +TBy9jGMhbTzA7y6SpVTe4DMap/FVco5L5er6AAsNG0jIgUR627YH4IH+T62YgxF3 +UueDjULpJR6QUvZOyJDqZf/jiclnskHkK+Elu/7OfFDRmYTFdahAREapqEDdwAQf +UXbbMqtx/hSYtRTDUaLY8Qaj4NWHQeRwgZz7idtg0pbFIcM9nmtGbcepePeWUVdV +osS6pZi/tpwqN/RGfbWhduPiTXaL6ujjABB11eE4m/3UK6sT9Ef3F0v+XPeDFaUo +wsqBOlqCjmP/7LZaL82GK7Z72U3GyBNDrcHzSyhzdQ8TQ01O4LVbbEoqXAdrlrLl +KOKen0A3jMTIAbxW9SPSOqtSZ2zkTRYkjMIXQHAfC50u7iJLsUWbjJ0ccrTGrost +k+U31s/nnUza7l4Wrz52Nwcuq6oCfZT5SHQgbTO/+NFNmWOZB5Zew1JIQa9pIACM +0OY4lgfKbkwYVBPgWWTI9GxWBDePRrjwelACibI6NI+BLFT58rXH1t/XUCquFFgo +a83XliAG9xt3KbdPZJNoSLc7m2UCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFB438qbuQ+Ou07m/ +zNY/+bYBdNp1MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEARcIL6Yc+k/ammX6gbDiYCeDagBtcJvIwXLCdb2BrxIQR +Vpf4M0dOR57lY/iKdsLbF6sCH1jP3IyClCADRvthkksrKHoIFwzNILqNN2RyDnWH +yxCeFWUq4XuhHFMN/y2LMxA5cvefanjBjaQoofIUwIpnor7FLLu6VG3+zNjy80Nl +8JwvazZGSfDnTyaUfyB/aIbsjkpXmMAYyQQPOD55fXqACMkXf4v/PrIriKl0s2c6 +EEpRpNmMgeiK7ZWzn/EX1fJpUujk7lN8UsgLTonZ8vEuwtxoXSJHLDlyn++/zOhG +89/aTz70fV+NnLbOjCHK75cqc5C6rtXxyXdtJFDDsjlu1q0uD2Id6EZisZqP4EgC +y22lJZioVGaK3+1coXDAyPeYedeWcAoJHnCQ7meyBaJxCYkRJ8XT60X9IVTwxGZp +0S8XYuqStG4DmfnKcVHmcuATQ5cvek/AEjPrnw0dJy/pFb85DjNVqdHySHSXHDRg +sEQi84f81xM0/wAQzQuz3mddf5xJLOmidIzkTOSSTsRIu/6Vn4TxA/61P0NzsE4q +LBWuZR5Gi47cYge9OjsghMSflYUYSIsrXFoOqYUQikqmY96C9tTBr+OFR4Q7dKYD +Q3FHuUanb7tXSgKLbLcmG7FN6PSTIuZ+zupZpAUSeVH/fOzBb4V6tbINQfFA0UE= +-----END CERTIFICATE----- + + +NCU ntc keyid 23f4e22ad3be374a449772954aa283aed752572e 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAnnlFJ7wmrw+OAAAAAACeTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAwOFoXDTI1MDMyMTIwMzAwOFowQTE/MD0GA1UEAxM2TkNV +LU5UQy1LRVlJRC0yM0Y0RTIyQUQzQkUzNzRBNDQ5NzcyOTU0QUEyODNBRUQ3NTI1 +NzJFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAti+/VAervFImvywo +SynOJmo6CMtxuvG/e2oZzV09+Dut1iBCjcxKIrLVMt6XKFYFMOaIRFo8B9R7Oisz +FK7h/MXYTpD7vdEqnAg3gq4jnnbKO0LKEakg1AnJomAfBkMwmFxY8fR6rSbIKkPB +5x10CAAWJk9PT6+wZA3GdmFZ+hkNPgQUeU1MvwmdZ055PVdw3ye1NFADx35iL7GJ +XAPP3IoQ+7GzWUSZCh6ZMkfYmefVwyYwU03ykxrgxtK8bDz9zd7le1yum03ogLa7 +XNHiCIlAsoGDdOtdSW6BAbnKwlPPmYdLEgRj2PTzN5sYEDrzM59Wadi+UXnj1JWz +cMvH7olTS/1t8wqeN3wHBO4ilfpwP8yzBBHgVD1YGJ21GCRurE/BK5XDRDUEFKCc +LxuErDmSblpAc9cx7tG89lA7TMyQwfN+Kvd6LHFB6Y9d7BffDVwBsmyj/TPjoIiM +bSXlRlidlM4t6X55XDF+2miakv9lTTOz1HMQm0SYuUiuBu0mG+TxmP3WelQs/6+w +GpsW5Opqf9Co3mCPYXwrA8jLPqL5NvEo3G0XMfb+rAc9vtS0QWs7UAov2pkJqJ6+ +79Xy+pvyP9u8Z0EBGAcJc33l8inY/m21NgdNePlvLrnyguhN2dXBlPTlTBePpH9I +ToD6o4qq0ctbSURoGw6UqKd9Z/0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCqsCqBO4ozM0gyc +gv86nEXZ4dOiMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEATWNpL29ZHbief3/J6GPMm/CLivAjkSM7Ntn0moGWIGgi +wfEbFgAchjMmIUK7zdLplC/yA5bDXtvhCpAhTq7WN1wpg9VY3lOOe5iZG4FkpelZ +JBQ1ViO28oqZD7Q6TUCrXIyU9XiE8caegckQpzBTjx0YSjdQpclNVbuWMAujq3Bf +4hPUP7CrSSHr54DTeBrkmihmL5sqhSPoBXj2TxZdCiTxTX/DSTdI4Po5IGveFjJb +fPXtB56UQhKYoKxhCzTepdvW4TWdcNqDneufzyEvDm9SYbBC7TmS3SD/g1zvOSFW +kIya/GnZ1gVcIRH4+OGGU8sevpA5lIC+2pngRrVpfhDdo0B1vEOCdxNAWQEiHvy7 +MyOPXbyy+QrzMl3xc22EYhyIvwuqeLHB6miiqQXqPySYK4XjfoV5hAS6kbo73hA7 +B93evq6Q6PgynTFnIHX7VZLofPDGNFntbBrdFqmoIlm+bdU6POEOX7YH7K9Z/Nbn +lN2U8Yl1VR5JJRs8ZGK3FOKxj+5T5XdNkUR+IeKkKY5Z03rXXjw7V1T4uQrjTDVr +cpcXtnrsqaPHcDLA3QSKZuuO/DFclm5OtmJik6y7tGz/e0UPeQEUI9bOWBNdJmas +SZBnuUgNuQ6qSnCENj6OZuw2zmGg+fqbu+hgvH0qRFnpa7Hbhu525fERxcccxco= +-----END CERTIFICATE----- + + +NCU ntc keyid 882f047b87121cf9885f31160bc7bb5586af471b +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAX1JKv944bzo2gAAAAABfTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MDgwMjE3NTE1OFoXDTI0MDgwMjE3NTE1OFowQTE/MD0GA1UEAxM2TkNV +LU5UQy1LRVlJRC04ODJGMDQ3Qjg3MTIxQ0Y5ODg1RjMxMTYwQkM3QkI1NTg2QUY0 +NzFCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuM0LK/D3ASVFKq1d +/UIP4tRX9jYGMiDxwRTTFziig5EQ2yX1/PLjdREawTLRM3PRsvYfSj3X1Q+Mk2N7 +bp7U4S/KQ3SEaCRImnnrgSRoozn1Y2NS5p2cf8W1vWazkJQKiqjURhlsHJ2DNBN7 +MvkNCmlLBmuRknfgCai+Hq0aMWe76TF0ZWPV4mKWSHoFthN+vVbjXIjvCdaI4nxq +EE5Upif5blyS25L3nI9FmmFlcoScxRW1eWgeEDObB42zi47/SPBKM6V5mMw1gIA8 +EGJpu8G1PC4rUebJIyUotPp3A0yx53cRydHoqeLXebVKQk36o4DNbs4ZAvKdxIVN +D8WqnOX6tltHOghurwmQRfJOOd6DSWH8RN86CvuInLZMucuoAlxzK7jwYFB7Kt/5 +4bVkUcXAgCHQdFvgPrxBMOlCr5htQ+G9VxUjzLTTCnpMcJmCjrqJmXwdg/8rsJ1n +wvgtknin+Vavo9S78G4V4NroRj+lsDNKVjpaSsvzbqj3prNDv815DNreiUHz6Bj1 +cKizBEVq7CHobmP7n5LmygbJWmCgrrJklIZqiITemfdF3i+kBaH78x11UNgCDZff +143RFRCE3LhSDNpH6kWnGovnZA/DpS2ur9uFbF35sgum01sFOydPbbAgV1BtTY/n +fM6L1wLqJWDVyfcwDlWLCVnb6WUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNrSKW4F8cDdD5o+ +dTc9ZBlypYGqMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAjeo6sZgNku1XfjnrP9Pfy7keC0HmaXneKjw+EFM1n8qe +i9MF7dBZf5lvXYNRfjWTlE14eMv9O3NRAJ6/rBzV3vvFdQcY8ASp0RetHyr5Ufej +vvqUQZQMjbsTUmRPAs5XnTBmby9u8cnZizBnn5JdY1Mtb8EFtJrFG7xHA4/wvnT4 +NTzNFRjmUc5tezEDdTnYb0IFtiObu9nts6nbapdJww0dArevrq2RviCQO8zl9oqH +eDrZ/o1S3UtRdzQNu94FpAD3LhcbihKU3ijCXi0sWBD0uBmtGFAmYrYm6KqpT1QJ +DZpfSGPhKO2ShXx0/jevLVX8n4p6qvM4yr9EvCqHu6EAXCjOxocv8hioNUre5pcx +RfZ4mvHRPXw/q1EiVbaomWzyQ7VxX5byjhnVsz56faLj8CMNvWzYFbIM2n34fnLI +Kb97HM4DMJQ7LTWhX7WTDXUmXCJ0UMdR8W+CDC94CR+/C5i8gMsOQ+FDUeGaVxn3 +q2tCvvGL2iC7QZoI0u0aVSOlDTuvEcGs7geRw18nmsg66zuS2aAl/Hfn6l2n+Qun +WOnCKZbJ6LINphCUKZMJKpKk2Ih5FQc5Qb5rBmKOCGC2EiVTTedBbVv6v+RLIkDo +tWeQyMkgJN1vg6epEJ6y8MNQ8qYwfv84DR4UWP2UH6zAWOixAuY3T0QpbGgijaM= +-----END CERTIFICATE----- + + +NCU ntc keyid 882f047b87121cf9885f31160bc7bb5586af471b 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAnqgoLPKG0oibQAAAAACejANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAwOVoXDTI1MDMyMTIwMzAwOVowQTE/MD0GA1UEAxM2TkNV +LU5UQy1LRVlJRC04ODJGMDQ3Qjg3MTIxQ0Y5ODg1RjMxMTYwQkM3QkI1NTg2QUY0 +NzFCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2qg4Z/E65efvtiFB +prnaJUBG6jFow/Q7sCg/d+o0+7jDjL2nPpPnQEBzgjnOjDP4zCDAUiTFj8RIh3Sk +IimGxwyqGeA1oRyoWcyFZjewwZWCG2+/k8+geAbv+0I4OpqiQZgLGpETNZOu4Ew4 +6oek2KncqNVBcsFDohllev8vCqroOxgr81+Nmh4D/Wr9Mr4nd9f0xQYq5WERbjLy +YAzlVMKB902Frqp0nk5Q9eR6PUeAIVGRDnYuaaYs/tHTLPlGUZ1lMhZvWZEAGMYZ +xyjglQonYmc5XqWyXKTsYJMMEJo0Z3AOhxmrUm9Ff/jfa1kPZOeeJbFxT5WD2cEY +P9LtR8PNIVkMM+5RSTNvYHww8yQ6K4dgeLX3nAURtMchrvDFPHikvPBIYOJXKH15 +wy0mRelNxj3ZqqDi306eQj9vBUYPGHQFRMFynCXJmCCG0lJMlLb17P3BT93yr1cT +XllXoj0f26KxSBI53CnLgZu7lhgocGPG0MzA+QSYgH/5a2VhiUEo7vEexcUY30s+ +iK0lGVQXONpWPxNiQlhNRYol2Nfj1WMf6r/YLgpMoZiRJVGKfB7eLAoUMrcpPnE5 +pHxAFEHyOUpgucZ86kkivBg2KhVXfpWYJTxYfSRmotTn/s6UrTHytnqAYo9VxG3I +g05GdBMIwnL3A9P7prWvn8Vc4jcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFK+3+5NPnRNnVK9c +iGjjWS6Z+uq3MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEALycPGerAVuJ2q584iwZIP/lVi9VFNPKTo8D8nM3C56M+ +BpVcLbEeFEvZ5KDTAMhfA5WwiU1ug87umGFTBqSEEt1+lRldrF/JNihVw59JoF6n +cVqoXASgHsE0amFnGWskJF8g+CbylpaiVDf5qDkMCVnvip9T4QWjlTeTHro/baFg +R/fjOr6W9oAlo9yQ6YPyWHe8Y//tMTV+p280qHXVGR/Alj0urR8tiEdQfFRVv3As +bAIcA1KsjsdKexMYW8Mz6kLUfbw1Xk5yfHCI7u7Y3Ku0znCITelVLihgvil4STmI +rB8TrWliQ/k2xwwxTKH17JXaHp/OS/TE0Yt4KjUvRN6tkSTVtBAlAFh5xK2kfp35 +zpnslB0NiR1YZ7kcatoTR3ER72tFBthTiAlM4VNx8Z0S11o1MLxn8raJNYwZWKUQ +TOaarrItImqaebqM2XSfAEf8L7g2MUi/rsuTDGcYbMFbt/K5dUHoRfZXNWC/MOjH +fEwAcQr7C5L/SUd8gbpanqOgxbiFXcn7ucMHTgIlGxHH1hwXLxfu8cdnsGz8Ngez +4tEUQQgkXWwzCQPDNihglAxS8buvLR1185wYNKQiHBVXUjc59/EJ8BgaDjww4xZH +lN9KLLVjomxKecyYt8PrgfGJqBBOxb1kXX2zHS1gTNJATGv9wnQ3sTFKK/eUCDo= +-----END CERTIFICATE----- + + +NTC TPM EK Root CA 01 +===================== +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIGAK3jXfbVMA0GCSqGSIb3DQEBBQUAMFIxUDAcBgNVBAMT +FU5UQyBUUE0gRUsgUm9vdCBDQSAwMTAlBgNVBAoTHk51dm90b24gVGVjaG5vbG9n +eSBDb3Jwb3JhdGlvbjAJBgNVBAYTAlRXMB4XDTEyMDcxMTE2MjkzMFoXDTMyMDcx +MTE2MjkzMFowUjFQMBwGA1UEAxMVTlRDIFRQTSBFSyBSb290IENBIDAxMCUGA1UE +ChMeTnV2b3RvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uMAkGA1UEBhMCVFcwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDoNqxhtD4yUtXhqKQGGZemoKJy +uj1RnWvmNgzItLeejNU8B6fOnpMQyoS4K72tMhhFRK2jV9RYzyJMSjEwyX0ASTO1 +2yMti2UJQS60d36eGwk8WLgrFnnITlemshi01h9t1MOmay3TO1LLH/3/VDKJ+jbd +cbfIO2bBquN8r3/ojYUaNSPj6pK1mmsMoJXF4dGRSEwb/4ozBIw5dugm1MEq4Zj3 +GZ0YPg5wyLRugQbt7DkUOX4FGuK5p/C0u5zX8u33EGTrDrRz3ye3zO+aAY1xXF/m +qwEqgxX5M8f0/DXTTO/CfeIksuPeOzujFtXfi5Cy64eeIZ0nAUG3jbtnGjoFAgMB +AAGjJjAkMA4GA1UdDwEB/wQEAwICBDASBgNVHRMBAf8ECDAGAQH/AgEAMA0GCSqG +SIb3DQEBBQUAA4IBAQBBQznOPJAsD4Yvyt/hXtVJSgBX/+rRfoaqbdt3UMbUPJYi +pUoTUgaTx02DVRwommO+hLx7CS++1F2zorWC8qQyvNbg7iffQbbjWitt8NPE6kCr +q0Y5g7M/LkQDd5N3cFfC15uFJOtlj+A2DGzir8dlXU/0qNq9dBFbi+y+Y3rAT+wK +fktmN82UT861wTUzDvnXO+v7H5DYXjUU8kejPW6q+GgsccIbVTOdHNNWbMrcD9yf +oS91nMZ/+/n7IfFWXNN82qERsrvOFCDsbIzUOR30N0IP++oqGfwAbKFfCOCFUz6j +jpXUdJlh22tp12UMsreibmi5bsWYBgybwSbRgvzE +-----END CERTIFICATE----- + + +NTC TPM EK Root CA 02 +===================== +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIGAPadBmPZMA0GCSqGSIb3DQEBBQUAMFIxUDAcBgNVBAMT +FU5UQyBUUE0gRUsgUm9vdCBDQSAwMjAlBgNVBAoTHk51dm90b24gVGVjaG5vbG9n +eSBDb3Jwb3JhdGlvbjAJBgNVBAYTAlRXMB4XDTEyMDcxMTE2MzMyNFoXDTMyMDcx +MTE2MzMyNFowUjFQMBwGA1UEAxMVTlRDIFRQTSBFSyBSb290IENBIDAyMCUGA1UE +ChMeTnV2b3RvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uMAkGA1UEBhMCVFcwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSagWxaANT1YA2YUSN7sq7yzOT +1ymbIM+WijhE5AGcLwLFoJ9fmaQrYL6fAW2EW/Q3yu97Q9Ysr8yYZ2XCCfxfseEr +Vs80an8Nk6LkTDz8+0Hm0Cct0klvNUAZEIvWpmgHZMvGijXyOcp4z494d8B28Ynb +I7x0JMXZZQQKQi+WfuHtntF+2osYScweocipPrGeONLKU9sngWZ2vnnvw1SBneTa +irxq0Q0SD6Bx9jtxvdf87euk8JzfPhX8jp8GEeAjmLwGR+tnOQrDmczGNmp7YYNN +R+Q7NZVoYWHw5jaoZnNxbouWUXZZxFqDsB/ndCKWtsIzRYPuWcqrFcmUN4SVAgMB +AAGjJjAkMA4GA1UdDwEB/wQEAwICBDASBgNVHRMBAf8ECDAGAQH/AgEAMA0GCSqG +SIb3DQEBBQUAA4IBAQAIkdDSErzPLPYrVthw4lKjW4tRYelUicMPEHKjQeVUAAS5 +y9XTzB4DWISDAFsgtQjqHJj0xCG+vpY0Rmn2FCO/0YpP+YBQkdbJOsiyXCdFy9e4 +gGjQ24gw1B+rr84+pkI51y952NYBdoQDeb7diPe+24U94f//DYt/JQ8cJua4alr3 +2Pohhh5TxCXXfU2EHt67KyqBSxCSy9m4OkCOGLHL2X5nQIdXVj178mw6DSAwyhwR +n3uJo5MvUEoQTFZJKGSXfab619mIgzEr+YHsIQToqf44VfDMDdM+MFiXQ3a5fLii +hEKQ9DhBPtpHAbhFA4jhCiG9HA8FdEplJ+M4uxNz +-----END CERTIFICATE----- + + +NTC TPM EK Root CA ARSUF 01 +=========================== +-----BEGIN CERTIFICATE----- +MIIDWTCCAkGgAwIBAgIJAMklAEG4bgQ6MA0GCSqGSIb3DQEBBQUAMFgxVjAiBgNV +BAMTG05UQyBUUE0gRUsgUm9vdCBDQSBBUlNVRiAwMTAlBgNVBAoTHk51dm90b24g +VGVjaG5vbG9neSBDb3Jwb3JhdGlvbjAJBgNVBAYTAlRXMB4XDTE0MDQwMTE4MzQz +OFoXDTM0MDMyODE4MzQzOFowWDFWMCIGA1UEAxMbTlRDIFRQTSBFSyBSb290IENB +IEFSU1VGIDAxMCUGA1UEChMeTnV2b3RvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9u +MAkGA1UEBhMCVFcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDCxcfP +yaNsGhaR28qqisqkrb4Z2OPul7BRNlIEYP8jSFORygyfp4j7bKRyVTTONCUbPq+J +/a4yRcdbEs8dzvzXypQbVUjuC4sOKjPiWLfOhj1Z1yvOn19Xe3Ei4UzMKJm+xpb1 +BYR4YfrnuVzL4do/B/lCr2AYs4Fmtn1uzXBp1St8TRJz9HTW1yKJ2ZOqTgW3DX80 +6DP//3kIatTuLCZ6Zsdl6fsgMPxJGwrI35ThKBtaUMT93abb/KB/dugvoIgtEi9D +GEC2C0UWsvJEfu0Qi8zoxtYvd9Y2tRlMxMhK75uShXHxRcG+WOGEnm6uVpGphLKg +qxAl1tuFcb94vi7dAgMBAAGjJjAkMA4GA1UdDwEB/wQEAwICBDASBgNVHRMBAf8E +CDAGAQH/AgEAMA0GCSqGSIb3DQEBBQUAA4IBAQB7epeKy2Sa+9huMzK4PnIpjiaX +QrxPx+E8BVGw6VuQqTcTPQRvPhNpc4VF/6/7MA9qb6vDxWEf40tqNi8e/RPNlRFY +Dh4tQ1Hhl69NrZVYZeXl1cU/ometoAAbz79ugq78iFndJ5rHMQ85GRwtW9i/q0p1 +VjJ8dLYJ7aRBDTP3hndc35GmZg3q1UX93WD6mM5KuE+mOdv7MXKMtYSrV+dE/iGM +ASrratJf57P6N8BpegPQaSb6UnElwBpwhRxzW7N9qgjQWIqrxe97CfJk41RvtnKu +SePqlm1PtWkygt9bYaInLZYkcknXTD/7BtzAyyS25HtG/YTvuMtKItCp7Z4n +-----END CERTIFICATE----- + + +Nuvoton TPM Root CA 1013 +======================== +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIISN0JfIK6vE0wDQYJKoZIhvcNAQEFBQAwVTFTMB8GA1UE +AxMYTnV2b3RvbiBUUE0gUm9vdCBDQSAxMDEzMCUGA1UEChMeTnV2b3RvbiBUZWNo +bm9sb2d5IENvcnBvcmF0aW9uMAkGA1UEBhMCVFcwHhcNMTUwNTExMDg0MzI1WhcN +MzUwNTA3MDg0MzI1WjBVMVMwHwYDVQQDExhOdXZvdG9uIFRQTSBSb290IENBIDEw +MTMwJQYDVQQKEx5OdXZvdG9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24wCQYDVQQG +EwJUVzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALDAta6EZBlhF1MC +Z9GeMXqw8puwZEDI3qR/rwGhEUj2oqhFY/K9zUk2YQCkC6X5lrr/lbWfvZtUGMFC +P4VQlt+bGPTOladGg6zJ/7a6yCd9MqkZbw92niDNhWcXsiB7SRyHYdr/He8tNOoD +mVdNFXxknP8QH3soBPahxckqtrhhk+24Iran04jOAc0959VnP8H0Jyg4BjehIQjj +BGGK+bJWZXHYRFlDj4dRW+epChdOqTpWOulf5GOvwNm3sv4ojU2fJ8cA5TznX81z ++Se6hmw/RF8rUGjf1uiKbsxnbIf3An01mZYgD98FXEHAWAW92vAJUuEQJVBlTest +1YmsaT0CAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8C +AQAwHwYDVR0jBBgwFoAUoNc3KQ4WzyrivucQDPVrLwTF8EMwHQYDVR0OBBYEFKDX +NykOFs8q4r7nEAz1ay8ExfBDMA0GCSqGSIb3DQEBBQUAA4IBAQCOXMzQYz3vr9tg +SiFr6qha2+Jay+EK0iLjSKvNzcTv5yaO8I6pb7tdocvze8394PtM42d2OTOM99lJ +bZogquaJ6fLHMwzO7UEGndtm6YMp6APXk4ecRqUDLqofIWL6PQUVwSEYlAC6RM9k +n4MJqckIxsc6iC38lsjyn4ut8o/E3fIo8UzYDl2P+KK1VkjDcmmgNf6seHmBsOYC +vOc4xYpq0yWuZFfxeyC4wC4mOAKLZX2yLMYrYBmnDd60nc0hgI1/TKb1H/Ew2P7R +UxEDMGe8e3A9YR4M/09FLn8cTTjq7hflRlcqiarpPo6+9Z3dqzmqTQxvVQ/DIVqE +3r3WOnnr +-----END CERTIFICATE----- + + +Nuvoton TPM Root CA 1014 +======================== +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIIbXSeZ/22esUwDQYJKoZIhvcNAQEFBQAwVTFTMB8GA1UE +AxMYTnV2b3RvbiBUUE0gUm9vdCBDQSAxMDE0MCUGA1UEChMeTnV2b3RvbiBUZWNo +bm9sb2d5IENvcnBvcmF0aW9uMAkGA1UEBhMCVFcwHhcNMTcwODIxMTEwMzM2WhcN +MzcwODE3MTEwMzM2WjBVMVMwHwYDVQQDExhOdXZvdG9uIFRQTSBSb290IENBIDEw +MTQwJQYDVQQKEx5OdXZvdG9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24wCQYDVQQG +EwJUVzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMd3U7eh2gF2h7LE +b6GZTP/TtWq3cK8QMFuGI6PrwXjwGm1JfG6vF+1u/z4tJbc8znK8Kc/XTZ1yqoZW +sz7dXP20eltU0fuB7qwa2yJOqbl6hZ6nAD+eOuteSUQ8AnEuFH2XqqN++pj9DJXS +zDpvHqP1J6PnpNi6gxVas6PBFrRZuYGOxJwG2miyObHK1/kKrkuE7/yh+ju1j0Rw +9DXhvmEelrztPOkm4TkLxkTQSL7jj+EWimpmGP8Wo+B/2FdVpJZdoFUa2v5GldK8 +VBdkacDaSqQ0iX1tP2oI93Jyx1xu9JDqjThrtu+FFIlHFJLw2N91fSCmsJukUiCI +9PPakQUCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8C +AQAwHwYDVR0jBBgwFoAUqdlH8/mBcu623MXtYJoA3nwGnLAwHQYDVR0OBBYEFKnZ +R/P5gXLuttzF7WCaAN58BpywMA0GCSqGSIb3DQEBBQUAA4IBAQBCVMox72wTII5D +fjznST8qr61I6ctKouW401l/x5EA2gBctsx5gl3tuq9EArM2TuA9F+leyJ8r/Tdu +do8TgM4iCVl+FthXlrkPVemd1le63v0Emaxd/8Vca9ZZbrLlC6WNiUj/nGyYThPK +3XIHQN0+OoNdXQM5IxUYylgiA3udzcLCS0oL8uWhpa5YX2ad2UB3xKiz3maI7sXF +Dk5ds45MimR0p/dd+4y2tnAB1f/neR9/CqE58GQcFDY10mpNUa3rBqcUnHcJCfvb +i5TX/clYY/wsVDPwjA5u3k7KSOip7FR33EfIPubE/nMeVqDTiZt+RBJ81xskBO0+ +x7bKAs+x +-----END CERTIFICATE----- + + +Nuvoton TPM Root CA 1110 +======================== +-----BEGIN CERTIFICATE----- +MIICBjCCAaygAwIBAgIIEDiqn2SaqGMwCgYIKoZIzj0EAwIwVTFTMB8GA1UEAxMY +TnV2b3RvbiBUUE0gUm9vdCBDQSAxMTEwMCUGA1UEChMeTnV2b3RvbiBUZWNobm9s +b2d5IENvcnBvcmF0aW9uMAkGA1UEBhMCVFcwHhcNMTUwNTExMDg0MzMzWhcNMzUw +NTA3MDg0MzMzWjBVMVMwHwYDVQQDExhOdXZvdG9uIFRQTSBSb290IENBIDExMTAw +JQYDVQQKEx5OdXZvdG9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24wCQYDVQQGEwJU +VzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDVkEOpuyhuviaDH6xQj3faaV2Z4 +FvXSdwUkTiB1JjPDgv1PU0SFYtEE1W9VmI1GcOn5FAUi2/QM36DPhmPTd+qjZjBk +MA4GA1UdDwEB/wQEAwICBDASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQV +kdS26vmNAQSGS2kDpI3QAmB30zAfBgNVHSMEGDAWgBQVkdS26vmNAQSGS2kDpI3Q +AmB30zAKBggqhkjOPQQDAgNIADBFAiEAlfxysfHDcxYDed5dmRbvHPKHLEEq9Y9P +wAxoKqH7Q5kCIGfsxiLr2j9nJ9jELwXz0/VWN9PhUNdM3qmsx2JEne6p +-----END CERTIFICATE----- + + +Nuvoton TPM Root CA 1111 +======================== +-----BEGIN CERTIFICATE----- +MIICBzCCAa2gAwIBAgIJAN/u3L0l8osZMAoGCCqGSM49BAMCMFUxUzAfBgNVBAMT +GE51dm90b24gVFBNIFJvb3QgQ0EgMTExMTAlBgNVBAoTHk51dm90b24gVGVjaG5v +bG9neSBDb3Jwb3JhdGlvbjAJBgNVBAYTAlRXMB4XDTE3MDgyMTAzMzI1M1oXDTM3 +MDgxNzAzMzI1M1owVTFTMB8GA1UEAxMYTnV2b3RvbiBUUE0gUm9vdCBDQSAxMTEx +MCUGA1UEChMeTnV2b3RvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uMAkGA1UEBhMC +VFcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATRcgnHcQk99FFMQ+9UVVFzf64J +1jnhxpGAdZEHRleZfkfTYGHsdr3L9FLdGVUb+BA2cim30ovuPDZOGOUKPraLo2Yw +ZDAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU +iC8Ee4cSHPmIXzEWC8e7VYavRxswHwYDVR0jBBgwFoAUiC8Ee4cSHPmIXzEWC8e7 +VYavRxswCgYIKoZIzj0EAwIDSAAwRQIhANrKhBfLXyHCznBRtWRBmTbfYJR9mCl1 +2N/xZkcohRZIAiBDufnmhZWCbX4pibbzAOgcxjsc5+qmpAovxW9ipWJEsA== +-----END CERTIFICATE----- + + +Nuvoton TPM Root CA 2010 +======================== +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIIWAnP9p2CIZcwDQYJKoZIhvcNAQEFBQAwVTFTMB8GA1UE +AxMYTnV2b3RvbiBUUE0gUm9vdCBDQSAyMDEwMCUGA1UEChMeTnV2b3RvbiBUZWNo +bm9sb2d5IENvcnBvcmF0aW9uMAkGA1UEBhMCVFcwHhcNMTUwNDIzMDY1OTE5WhcN +MzUwNDE5MDY1OTE5WjBVMVMwHwYDVQQDExhOdXZvdG9uIFRQTSBSb290IENBIDIw +MTAwJQYDVQQKEx5OdXZvdG9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24wCQYDVQQG +EwJUVzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKcE9saVURE582ny +dHsZO7+3xmdMFbOPCdplBda/EJg9cg7n6bZ79Qv7hyymN5qE23SOPNFvm8SAdmCJ +ybmTnk1y+SyiDw5gUpckbXsRYAetTwqtdfBkF4TkFoRJDIraQC8miTdYqXMXfWTo +bhHXf/oV953laOCO/SRlqXzAWzm5d8PwixUBLZTnvcgxM+pXwv6JY6wgXpv55fY1 +D3M1hyiNALib+rg0LwazalU0DOryAAIqFzMgkR2IaefkAmpmQ1xpfMJsK+BMixcI +XUCzSGGKKdkc3WUDye/vsyXYQ5zoYuLt3xb7BEZxes31lqbs1gniNz4oD5ptmrS4 +8V7Rz/kCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8C +AQAwHwYDVR0jBBgwFoAUCDAPQ6j0uMjmJKT3Bgz1nnRQFecwHQYDVR0OBBYEFAgw +D0Oo9LjI5iSk9wYM9Z50UBXnMA0GCSqGSIb3DQEBBQUAA4IBAQAE0pMnjz5o3QUd +S3lLQn3+vXkS2xc1EmPxcVFxjPbrJDtnNRMWwglC8zo70VgWu/+ulwzy783zJSiT +nkWPeuszqp3xOtCPWDE4D2sxVbWH3pvel2tgZJv0KJsJH93QE53WbHUwSn2JjHNH +UJiBpq0genUxGD+zBI3NGDGB1iti66aJfCdjn8C0G0gTmQ8jFpZ6AsX1GSvPYeU6 +EqN9ynIEYUVcRKwoHQaSmqDd7HVp97fwD+mkOfFYByLVUqC09rNFW81Va4Ze2gw2 +HiKz/SVSA5mA/91wfEZSZ6azOgDZNQlbgBo27mZFJ5mR7iJbWgtD+vO4+wRZK8Bc +8yWxV8ri +-----END CERTIFICATE----- + + +Nuvoton TPM Root CA 2011 +======================== +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIIGCgneR7Ow/EwDQYJKoZIhvcNAQEFBQAwVTFTMB8GA1UE +AxMYTnV2b3RvbiBUUE0gUm9vdCBDQSAyMDExMCUGA1UEChMeTnV2b3RvbiBUZWNo +bm9sb2d5IENvcnBvcmF0aW9uMAkGA1UEBhMCVFcwHhcNMTcwOTExMDcxMDEyWhcN +MzcwOTA3MDcxMDEyWjBVMVMwHwYDVQQDExhOdXZvdG9uIFRQTSBSb290IENBIDIw +MTEwJQYDVQQKEx5OdXZvdG9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24wCQYDVQQG +EwJUVzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAfy7Iu3eTXYdXe +WWc8ZPHb1ekofnHWY4Y6QD+z256j2rXTGmk5bA1Y6nCsYtBqUV4B2gfPAaZXunMD +k3KDEBaI8Fkd7BTXbWHrfgxZstGHlWzVqi1r2Jj31MdDMz0NRovWXJwgG5N9tgs5 +KEeQ0Kk2ock1Vdn/jIqx3xY9vBMZm97N11m/WtZ5U2NyxbfqIIloIhxuvoPZRzx8 +c6MmI77MtM2ylm+2nbXf1DtbEKXQYuGnvM3Ib9K5f2+PTjNi/nWGAcCgLo89BNSB +LdG9GxK1hO9QXYcCkAWsEWUD+8DM1v+zAl2cnrtj4iu48sU5i6hVO0CTtCP0yOkf +VdVfNVsCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8C +AQAwHwYDVR0jBBgwFoAUpSy2R+CQm9ouf32RP2LYixOJ4sYwHQYDVR0OBBYEFKUs +tkfgkJvaLn99kT9i2IsTieLGMA0GCSqGSIb3DQEBBQUAA4IBAQAUwrhniUs4CLgb +UIFPslx3aly8M2P8Vn0GR+EcE0GklFa26WOT+YZxacUP3rMGteZGCtbFggYcM94n +pog7FBnnDR1ySHbHOY0kWBO75ePVBmytqpPeZX8E5202sRgagnojl59bPj1tqhlH +vwj6Xj6/XAFZDo0Or2GhCC5NzRbXmc6wB0zIjTlhPwVXQ+ikKBqdt3/HKCB4i3Sv +7Dxyy/N4aPg/s6MJxgmUjtGxRyjU6RVgrzqVN/0Csv8L75g2SvzgXnqrqcpk82XT +CnJgflpaCfV2SC5MGWHEjmj1tghC133JcEMQlsodWRm+0x7E/fsHvJNj4A0nh9K3 +H3TryFJ7 +-----END CERTIFICATE----- + + +Nuvoton TPM Root CA 2110 +======================== +-----BEGIN CERTIFICATE----- +MIICBjCCAaygAwIBAgIIP5MvnZk8FrswCgYIKoZIzj0EAwIwVTFTMB8GA1UEAxMY +TnV2b3RvbiBUUE0gUm9vdCBDQSAyMTEwMCUGA1UEChMeTnV2b3RvbiBUZWNobm9s +b2d5IENvcnBvcmF0aW9uMAkGA1UEBhMCVFcwHhcNMTUxMDE5MDQzMjAwWhcNMzUx +MDE1MDQzMjAwWjBVMVMwHwYDVQQDExhOdXZvdG9uIFRQTSBSb290IENBIDIxMTAw +JQYDVQQKEx5OdXZvdG9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24wCQYDVQQGEwJU +VzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPv9uK2BNm8/nmIyNsc2/aKHV0WR +ptzge3jKAIgUMosQIokl4LE3iopXWD3Hruxjf9vkLMDJrTeK3hWh2ySS4ySjZjBk +MA4GA1UdDwEB/wQEAwICBDASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSf +u3mqD1JieL7RUJKacXHpajW+9zAfBgNVHSMEGDAWgBSfu3mqD1JieL7RUJKacXHp +ajW+9zAKBggqhkjOPQQDAgNIADBFAiEA/jiywhOKpiMOUnTfDmXsXfDFokhKVNTX +B6Xtqm7J8L4CICjT3/Y+rrSnf8zrBXqWeHDh8Wi41+w2ppq6Ev9orZFI +-----END CERTIFICATE----- + + +Nuvoton TPM Root CA 2111 +======================== +-----BEGIN CERTIFICATE----- +MIICBzCCAa2gAwIBAgIJAOCIUWvKMfuGMAoGCCqGSM49BAMCMFUxUzAfBgNVBAMT +GE51dm90b24gVFBNIFJvb3QgQ0EgMjExMTAlBgNVBAoTHk51dm90b24gVGVjaG5v +bG9neSBDb3Jwb3JhdGlvbjAJBgNVBAYTAlRXMB4XDTE3MDkxMTA3MDk0OVoXDTM3 +MDkwNzA3MDk0OVowVTFTMB8GA1UEAxMYTnV2b3RvbiBUUE0gUm9vdCBDQSAyMTEx +MCUGA1UEChMeTnV2b3RvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uMAkGA1UEBhMC +VFcwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATanNywPkE/RICBZ4VjwCymLDts +B7Unv52Oj0HyEsAfc7+vjOl2DP8JbrcozY05s7GFfQqR3vhv4ZdkJMalgOr2o2Yw +ZDAOBgNVHQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU +I/TiKtO+N0pEl3KVSqKDrtdSVy4wHwYDVR0jBBgwFoAUI/TiKtO+N0pEl3KVSqKD +rtdSVy4wCgYIKoZIzj0EAwIDSAAwRQIgXgXs2eVt2U4sCoRf1GLoUTf2ZzYTSsyg +6I5w6hPTLigCIQDLLFlXK1xw1a1D1/idVhdd3a8gkE0FnTJO890WwiQbpg== +-----END CERTIFICATE----- + + +OnDie CA CSME Intermediate +========================== +-----BEGIN CERTIFICATE----- +MIIDKTCCAq2gAwIBAgIUeI0CCd0CciUjODd+qV89nfrBECswDAYIKoZIzj0EAwMF +ADCBiTELMAkGA1UEBgwCVVMxCzAJBgNVBAgMAkNBMRQwEgYDVQQHDAtTYW50YSBD +bGFyYTEaMBgGA1UECgwRSW50ZWwgQ29ycG9yYXRpb24xIzAhBgNVBAsMGk9uRGll +IENBIFJvb3QgQ2VydCBTaWduaW5nMRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMB4X +DTE5MDQwNDAwMDAwMFoXDTQ5MTIzMTIzNTk1OVowQDEmMCQGA1UECwwdT25EaWUg +Q0EgQ1NNRSBJbnRlcm1lZGlhdGUgQ0ExFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20w +djAQBgcqhkjOPQIBBgUrgQQAIgNiAASdEvDZh7DUNurof39JO07VstXEbEgkiJlg +bo74ubTnOQ3nksRHrjyZ4ForFmlSm+ym2gO8mW7UiZibclU7yK75Jd9IZQc0pSpK +nCfMc4DgzgRRIpKjo3/Kmu25FDRIgvWjggEaMIIBFjBoBggrBgEFBQcBAQRcMFow +WAYIKwYBBQUHMAKGTGh0dHBzOi8vdHNjaS5pbnRlbC5jb20vY29udGVudC9PbkRp +ZUNBL2NlcnRzL09uRGllX0NBX1Jvb3RDQV9DZXJ0aWZpY2F0ZS5jZXIwHwYDVR0j +BBgwFoAUtFjJ9uQIQKPyWMg5eG6ujgqNnDgwDwYDVR0TAQH/BAUwAwEB/zBJBgNV +HR8EQjBAMD6gPKA6hjhodHRwczovL3RzY2kuaW50ZWwuY29tL2NvbnRlbnQvT25E +aWVDQS9jcmxzL09uRGllX0NBLmNybDAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FGGaCniWiAPMYZCopT+QbXV8n2lqMAwGCCqGSM49BAMDBQADaAAwZQIwfPb2+J5l +1ltD0qQyEMBPsXzFMokpR53QcvvBpRwvl6o5PGVj7bpNyelLh3EDmPEDAjEA2mQz +xUQUTd4WV77Zjfgajq37jpTzARWPEKFi1kE8iT+6qjBf7vw+3BLLEQpixRPC +-----END CERTIFICATE----- + + +OnDie CA RootCA Certificate +=========================== +-----BEGIN CERTIFICATE----- +MIICujCCAj6gAwIBAgIUPLLiHTrwySRtWxR4lxKLlu7MJ7wwDAYIKoZIzj0EAwMF +ADCBiTELMAkGA1UEBgwCVVMxCzAJBgNVBAgMAkNBMRQwEgYDVQQHDAtTYW50YSBD +bGFyYTEaMBgGA1UECgwRSW50ZWwgQ29ycG9yYXRpb24xIzAhBgNVBAsMGk9uRGll +IENBIFJvb3QgQ2VydCBTaWduaW5nMRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMB4X +DTE5MDQwMzAwMDAwMFoXDTQ5MTIzMTIzNTk1OVowgYkxCzAJBgNVBAYMAlVTMQsw +CQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xhcmExGjAYBgNVBAoMEUludGVs +IENvcnBvcmF0aW9uMSMwIQYDVQQLDBpPbkRpZSBDQSBSb290IENlcnQgU2lnbmlu +ZzEWMBQGA1UEAwwNd3d3LmludGVsLmNvbTB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BK8SfB2UflvXZqb5Kc3+lokrABHWazvNER2axPURP64HILkXChPB0OEX5hLB7Okw +7Dy6oFqB5tQVDupgfvUX/SgYBEaDdG5rCVFrGAis6HX5TA2ewQmj14r2ncHBgnpp +B6NjMGEwHwYDVR0jBBgwFoAUtFjJ9uQIQKPyWMg5eG6ujgqNnDgwDwYDVR0TAQH/ +BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLRYyfbkCECj8ljIOXhu +ro4KjZw4MAwGCCqGSM49BAMDBQADaAAwZQIxAP9B4lFF86uvpHmkcp61cWaU565a +yE3p7ezu9haLE/lPLh5hFQfmTi1nm/sG3JEXMQIwNpKfHoDmUTrUyezhhfv3GG+1 +CqBXstmCYH40buj9jKW3pHWc71s9arEmPWli7I8U +-----END CERTIFICATE----- + + +SPT H LP EPID Prod RK 0 +======================= +-----BEGIN CERTIFICATE----- +MIIDyDCCA22gAwIBAgIUFP7csB8Kaz+6qYApa/U5ePODHGYwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTUw +MjE4MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBnjELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xODA2BgNVBAsML1RQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIFNQVC1I +LUxQX0VQSURfUHJvZF9SS18wMRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAE1JAV56CfSDOIh7r0dg/PHIUVNiElzflhDHwp +EX/NByiWbhyA4UNW576N8yZT3c7QrBb6wb+XAIwVh7S7H5tNmKOCAZwwggGYMB8G +A1UdIwQYMBaAFOhSBcJP2NLVpSFHFrbODHtbuncPMB0GA1UdDgQWBBTO/jMzkHM8 +ZyfHiA3+Qpr+tVeokjASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIB +BjATBgNVHSUBAf8ECTAHBgVngQUIATBwBgNVHSABAf8EZjBkMGIGCiqGSIb4TQEF +AgEwVDBSBggrBgEFBQcCARZGaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250 +ZW50L0NSTC9la2NlcnQvRUtjZXJ0UG9saWN5U3RhdGVtZW50LnBkZjBcBggrBgEF +BQcBAQRQME4wTAYIKwYBBQUHMAKGQGh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20v +Y29udGVudC9DUkwvZWtjZXJ0L0VLUm9vdFB1YmxpY0tleS5jZXIwTQYDVR0fBEYw +RDBCoECgPoY8aHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NSTC9l +a2NlcnQvRUtfUGxhdGZvcm0uY3JsMAoGCCqGSM49BAMCA0kAMEYCIQDaThaLirbr +/xm1JSSFHfKhHmsbJ7x0yDZjv2zm5Dm3FgIhAJ7P/RtCFiLR4Rc71RTiuFnPtzDP +2KKswXlh07upS5hg +-----END CERTIFICATE----- + + +SPT H LP EPID Test RK 0 +======================= +-----BEGIN CERTIFICATE----- +MIIDyDCCA22gAwIBAgIUUCX7DviKiMOZ0Qnrtpwh4iAaz6MwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTUw +MjE4MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBnjELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xODA2BgNVBAsML1RQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIFNQVC1I +LUxQX0VQSURfVGVzdF9SS18wMRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAEvwtQKK4xqt7P9BVqV97KxMCrl0d77BFxHFoh +nHQcvyrMn5Ii6LI8m5PituUNHoDC9YAEFwThPJYCBatQEwPEYKOCAZwwggGYMB8G +A1UdIwQYMBaAFOhSBcJP2NLVpSFHFrbODHtbuncPMB0GA1UdDgQWBBQwuG8JTaar +1SNxBD8r92aMeD8OZjASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIB +BjATBgNVHSUBAf8ECTAHBgVngQUIATBwBgNVHSABAf8EZjBkMGIGCiqGSIb4TQEF +AgEwVDBSBggrBgEFBQcCARZGaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250 +ZW50L0NSTC9la2NlcnQvRUtjZXJ0UG9saWN5U3RhdGVtZW50LnBkZjBcBggrBgEF +BQcBAQRQME4wTAYIKwYBBQUHMAKGQGh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20v +Y29udGVudC9DUkwvZWtjZXJ0L0VLUm9vdFB1YmxpY0tleS5jZXIwTQYDVR0fBEYw +RDBCoECgPoY8aHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NSTC9l +a2NlcnQvRUtfUGxhdGZvcm0uY3JsMAoGCCqGSM49BAMCA0kAMEYCIQDpDmkAlkaf +597+LAf0CZPQkd3wA32XR6hkATDh6sLyLAIhALQN4SDXyUkruniwUV6a13LIzTGr +UyrT6NhX7IyMGv3z +-----END CERTIFICATE----- + + +SPTEPIDPROD EK Platform Public Key +================================== +-----BEGIN CERTIFICATE----- +MIIDvjCCA2OgAwIBAgIUMTamuKIQ7vWud4lXF0aARJoRkSUwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTQw +NjE2MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBlDELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xLjAsBgNVBAsMJVRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIFNQVF9F +UElEX1BST0QxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAATTGg8fSsqZoV/9ZPsWLey7Dj+uzbwM36xKquRhobztKGqdWLdf +XBXhAzqgYPVNgqKEUfM8gG22RMFYQtL1rQvKo4IBnDCCAZgwHwYDVR0jBBgwFoAU +6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYEFL+cXG+/gM3OdKvNDg5gBOoC +KmYGMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMBMGA1UdJQEB +/wQJMAcGBWeBBQgBMHAGA1UdIAEB/wRmMGQwYgYKKoZIhvhNAQUCATBUMFIGCCsG +AQUFBwIBFkZodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2Vr +Y2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMFwGCCsGAQUFBwEBBFAwTjBM +BggrBgEFBQcwAoZAaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NS +TC9la2NlcnQvRUtSb290UHVibGljS2V5LmNlcjBNBgNVHR8ERjBEMEKgQKA+hjxo +dHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9FS19Q +bGF0Zm9ybS5jcmwwCgYIKoZIzj0EAwIDSQAwRgIhAPfXbrD4/G5IddlFUBtZjXcr +VjEwAFAZewDQvRHW+Rz7AiEAyie0OxbA5hMBVLqCl4lugbPguMlyOTDWagHRox8S +SyI= +-----END CERTIFICATE----- + + +SPTHEPIDPROD EK Platform Public Key +=================================== +-----BEGIN CERTIFICATE----- +MIIDvjCCA2SgAwIBAgIUbOv9CbWie5MIiWFjQaGYw+NfG50wCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTUw +MzI0MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBlTELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xLzAtBgNVBAsMJlRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIFNQVEhf +RVBJRF9QUk9EMRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMFkwEwYHKoZIzj0CAQYI +KoZIzj0DAQcDQgAEryzECW6qpKxLE8m3YQwVO+oiea9EkzNEVxDAA/IOaq+u1MMY +W1POaBQFO17J57eFLmTfC3pCtaBnB9mWsjFhzqOCAZwwggGYMB8GA1UdIwQYMBaA +FOhSBcJP2NLVpSFHFrbODHtbuncPMB0GA1UdDgQWBBRec8iao+kCsnK58HQffYcw +4+xySjASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjATBgNVHSUB +Af8ECTAHBgVngQUIATBwBgNVHSABAf8EZjBkMGIGCiqGSIb4TQEFAgEwVDBSBggr +BgEFBQcCARZGaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NSTC9l +a2NlcnQvRUtjZXJ0UG9saWN5U3RhdGVtZW50LnBkZjBcBggrBgEFBQcBAQRQME4w +TAYIKwYBBQUHMAKGQGh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20vY29udGVudC9D +UkwvZWtjZXJ0L0VLUm9vdFB1YmxpY0tleS5jZXIwTQYDVR0fBEYwRDBCoECgPoY8 +aHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50L0NSTC9la2NlcnQvRUtf +UGxhdGZvcm0uY3JsMAoGCCqGSM49BAMCA0gAMEUCIEwoRGZXyGrOi5c5XQ0sogO0 +7nKarDdxCHJjJmfB2j98AiEAzEpP1ysDBAD6k97Y0XVrqn4srCNv6132mRKeSw16 +wMk= +-----END CERTIFICATE----- + + +SPTHLPEPIDProd EK Platform Public Key +===================================== +-----BEGIN CERTIFICATE----- +MIIDwzCCA2igAwIBAgIUEPCEDNlZEY6a2+ti1pgBuZBmXiEwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTUw +MjE4MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBmTELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xMzAxBgNVBAsMKlRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIFNQVC1I +LUxQX0VQSURfUHJvZDEWMBQGA1UEAwwNd3d3LmludGVsLmNvbTBZMBMGByqGSM49 +AgEGCCqGSM49AwEHA0IABPKQW92/W43VEjmMP2CfqMyWb+3qfmR7FQPeAF2kM5Lz +CD3s+Bar8Vh0Z+YDP5SIlCPv4AckQRukjvcxJnsT89KjggGcMIIBmDAfBgNVHSME +GDAWgBToUgXCT9jS1aUhRxa2zgx7W7p3DzAdBgNVHQ4EFgQU+Z8gffyHl7/5DWQd +Jf1aRfdjELgwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwEwYD +VR0lAQH/BAkwBwYFZ4EFCAEwcAYDVR0gAQH/BGYwZDBiBgoqhkiG+E0BBQIBMFQw +UgYIKwYBBQUHAgEWRmh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20vY29udGVudC9D +UkwvZWtjZXJ0L0VLY2VydFBvbGljeVN0YXRlbWVudC5wZGYwXAYIKwYBBQUHAQEE +UDBOMEwGCCsGAQUFBzAChkBodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRl +bnQvQ1JML2VrY2VydC9FS1Jvb3RQdWJsaWNLZXkuY2VyME0GA1UdHwRGMEQwQqBA +oD6GPGh0dHA6Ly91cGdyYWRlcy5pbnRlbC5jb20vY29udGVudC9DUkwvZWtjZXJ0 +L0VLX1BsYXRmb3JtLmNybDAKBggqhkjOPQQDAgNJADBGAiEAoDkoa6IYGLI99v4C +ja5mbFdeiw783S/P0U5wflvr2/wCIQCFdAQhn0LDK1trPGCt1zciFWLQCHiIKyt+ +0xSFcMbXdA== +-----END CERTIFICATE----- + + +SPTH EPID PROD RK 0 +=================== +-----BEGIN CERTIFICATE----- +MIIDwzCCA2mgAwIBAgIUPdcvRbMBVbwWCKuQoJwS9aTtkrswCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTUw +MzI0MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBmjELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xNDAyBgNVBAsMK1RQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIFNQVEhf +RVBJRF9QUk9EX1JLXzAxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wWTATBgcqhkjO +PQIBBggqhkjOPQMBBwNCAAQXORWWgKwKiHzCFfa8JKb47/d79T2tJ07M/wlclzOD +G77q/BzxepyDZ22iXy+4jtEZURBPwIbRJxrXIoC/P/jGo4IBnDCCAZgwHwYDVR0j +BBgwFoAU6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYEFGyp32KhquI+D+t8 +P1645h7KwXy3MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMBMG +A1UdJQEB/wQJMAcGBWeBBQgBMHAGA1UdIAEB/wRmMGQwYgYKKoZIhvhNAQUCATBU +MFIGCCsGAQUFBwIBFkZodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQv +Q1JML2VrY2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMFwGCCsGAQUFBwEB +BFAwTjBMBggrBgEFBQcwAoZAaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250 +ZW50L0NSTC9la2NlcnQvRUtSb290UHVibGljS2V5LmNlcjBNBgNVHR8ERjBEMEKg +QKA+hjxodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2Vy +dC9FS19QbGF0Zm9ybS5jcmwwCgYIKoZIzj0EAwIDSAAwRQIgJozm5qfSmA+JPqR4 +JWrd1X7PslGTSx2Hq6U/jUniJVsCIQDMGNpPslwp5O+/tpaCBXQSPPtW5agKmEPU +q5DsfzpKpg== +-----END CERTIFICATE----- + + +ST TPM Root Certificate +======================= +-----BEGIN CERTIFICATE----- +MIIEDDCCAvSgAwIBAgILBAAAAAABIsFs834wDQYJKoZIhvcNAQELBQAwgYcxOzA5 +BgNVBAsTMkdsb2JhbFNpZ24gVHJ1c3RlZCBDb21wdXRpbmcgQ2VydGlmaWNhdGUg +QXV0aG9yaXR5MRMwEQYDVQQKEwpHbG9iYWxTaWduMTMwMQYDVQQDEypHbG9iYWxT +aWduIFRydXN0ZWQgUGxhdGZvcm0gTW9kdWxlIFJvb3QgQ0EwHhcNMDkwNzI4MTIw +MDAwWhcNMzkxMjMxMjM1OTU5WjBKMQswCQYDVQQGEwJDSDEeMBwGA1UEChMVU1RN +aWNyb2VsZWN0cm9uaWNzIE5WMRswGQYDVQQDExJTVE0gVFBNIEVLIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDxBLG5wcB9J0MsiJMreoWQ +l21bBN12SSGZPJ3HoPjzcrzAz6SPy+TrFmZ6eUVspsFL/23wdPprqTUtDHi+C2pw +k/3dF3/Rb2t/yHgiPlbCshYpi5f/rJ7nzbQ1ca2LzX3saBe53VfNQQV0zd5uM0DT +SrmAKU1RIAj2WlZFWXoN4NWTyRtqT5suPHa2y8FlCWMZKlS0FiY4pfM20b5YQ+EL +4zqb9zN53u/TdYZegrfSlc30Nl9G13Mgi+8rtPFKwsxx05EBbhVroH7aKVI1djsf +E1MVrUzw62PHik3xlzznXML8OjY//xKeiCWcsApuGCaIAf7TsTRi2l8DNB3rCr1X +AgMBAAGjgbQwgbEwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQIMAYBAf8CAQEw +HQYDVR0OBBYEFG/mxWwHt2yLCoGSg1zLQR72jtEnMEsGA1UdIAREMEIwQAYJKwYB +BAGgMgFaMDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuZ2xvYmFsc2lnbi5uZXQv +cmVwb3NpdG9yeS8wHwYDVR0jBBgwFoAUHiNj8IW19iVO7RrAUL5lfMfUFXowDQYJ +KoZIhvcNAQELBQADggEBAFrKpwFmRh7BGdpPZWc1Y6wIbdTAF6T+q1KwDJcyAjgJ +qThFp3xTAt3tvyVrCRf7T/YARYE24DNa0iFaXsIXeQASDYHJjAZ6LQTslYBeRYLb +C9v8ZE2ocKSCiC8ALYlJWk39Wob0H1Lk6l2zcUo3oKczGiAcRrlmwV496wvGyted +2RBcLZro7yhOOGr9KMabV14fNl0lG+31J1nWI2hgTqh53GXg1QH2YpggD3b7UbVm +c6GZaX37N3z15XfQafuAfHt10kYCNdePzC9tOwirHIsO8lrxoNlzOSxX8SqQGbBI ++kWoe5+SY3gdOGGDQKIdw3W1poMN8bQ5x7XFcgVMwVU= +-----END CERTIFICATE----- + + +STM TPM ECC Intermediate CA 02 +============================== +-----BEGIN CERTIFICATE----- +MIICZTCCAeygAwIBAgIEQAAAAjAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJDSDEe +MBwGA1UECgwVU1RNaWNyb2VsZWN0cm9uaWNzIE5WMR8wHQYDVQQDDBZTVE0gVFBN +IEVDQyBSb290IENBIDAxMB4XDTE4MTEyMjAwMDAwMFoXDTM4MTEyMjAwMDAwMFow +VjELMAkGA1UEBhMCQ0gxHjAcBgNVBAoMFVNUTWljcm9lbGVjdHJvbmljcyBOVjEn +MCUGA1UEAwweU1RNIFRQTSBFQ0MgSW50ZXJtZWRpYXRlIENBIDAyMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAE08t33aGM5M5aeBmzcn5H3HS31CGBJ2bbJ6fvJJ0i +VCfZrN9sesL0D+NGfwtEklk7mgT/2vfW2dO9OqsyukSw2aOBrzCBrDAdBgNVHQ4E +FgQUZi2PHOzf8UeotvDqKWr38kyt+c8wHwYDVR0jBBgwFoAUIJJWPAtDqAVyUwMp +BxwH4OvsAwQwRQYDVR0gAQH/BDswOTA3BgRVHSAAMC8wLQYIKwYBBQUHAgEWIWh0 +dHA6Ly93d3cuc3QuY29tL1RQTS9yZXBvc2l0b3J5LzAPBgNVHQ8BAf8EBQMDAQQC +MBIGA1UdEwEB/wQIMAYBAf8CAQAwCgYIKoZIzj0EAwMDZwAwZAIwJl4q6QuGhqQD +pvP1gBBu8OhbQAXL8Rwhg1FWs8BvC4VYt6Tqe9xLqjbtbgR8UOyvAjAhzSbC+r8A +2Wx1aOwAIqs1tmBXpofqcOXYeCSXKajOv5Jlzk6sDnEH2omN+ydt924= +-----END CERTIFICATE----- + + +STM TPM ECC Intermediate CA 03 +============================== +-----BEGIN CERTIFICATE----- +MIICZjCCAeygAwIBAgIEQAAAAzAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJDSDEe +MBwGA1UECgwVU1RNaWNyb2VsZWN0cm9uaWNzIE5WMR8wHQYDVQQDDBZTVE0gVFBN +IEVDQyBSb290IENBIDAxMB4XDTE4MTEyMjAwMDAwMFoXDTM4MTEyMjAwMDAwMFow +VjELMAkGA1UEBhMCQ0gxHjAcBgNVBAoMFVNUTWljcm9lbGVjdHJvbmljcyBOVjEn +MCUGA1UEAwweU1RNIFRQTSBFQ0MgSW50ZXJtZWRpYXRlIENBIDAzMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEGaDrMY8uYdq3UGpf8Oi8yP4/JoFE1aHFeLdkqrQ9 +BPCMy4xEGttVycLMj5NH47v3tX3F9iXTJXsswarJMJ+bmaOBrzCBrDAdBgNVHQ4E +FgQUnaXHLKAL4UuFs+U1yLB8g+hb3/YwHwYDVR0jBBgwFoAUIJJWPAtDqAVyUwMp +BxwH4OvsAwQwRQYDVR0gAQH/BDswOTA3BgRVHSAAMC8wLQYIKwYBBQUHAgEWIWh0 +dHA6Ly93d3cuc3QuY29tL1RQTS9yZXBvc2l0b3J5LzAPBgNVHQ8BAf8EBQMDAQQC +MBIGA1UdEwEB/wQIMAYBAf8CAQAwCgYIKoZIzj0EAwMDaAAwZQIxAN5oKo73+O2R +gF10eCDioHgwLilEaXTqnzOxuFwrCd81r+R4gyDhtcMQUT5aaobJAgIwJg5ZU6J6 +W4dgPvUrPgJ6iMhRc2fQlJNP+DQbbsFP+1CSJmPP1zMPlBnQPUGN53pE +-----END CERTIFICATE----- + + +STM TPM ECC Root CA 01 +====================== +-----BEGIN CERTIFICATE----- +MIICyDCCAk+gAwIBAgIORyzLp/OdsAvb9r+66LowCgYIKoZIzj0EAwMwgYsxOzA5 +BgNVBAsTMkdsb2JhbFNpZ24gVHJ1c3RlZCBDb21wdXRpbmcgQ2VydGlmaWNhdGUg +QXV0aG9yaXR5MRMwEQYDVQQKEwpHbG9iYWxTaWduMTcwNQYDVQQDEy5HbG9iYWxT +aWduIFRydXN0ZWQgUGxhdGZvcm0gTW9kdWxlIEVDQyBSb290IENBMB4XDTE1MTAy +ODAwMDAwMFoXDTM4MDExOTAzMTQwN1owTjELMAkGA1UEBhMCQ0gxHjAcBgNVBAoT +FVNUTWljcm9lbGVjdHJvbmljcyBOVjEfMB0GA1UEAxMWU1RNIFRQTSBFQ0MgUm9v +dCBDQSAwMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABG7/OLXMiprQQHwNnkpT6aqG +zOGLcbbAgUtyjlXOZtuv0GB0ttJ6fwMwgFtt8RKlko8Bwn89/BoZOUcI4ne8ddRS +oqE6StnU3I13qqjalToq3Rnz61Omn6NErK1pxUe3j6OBtTCBsjAOBgNVHQ8BAf8E +BAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBATAdBgNVHQ4EFgQUIJJWPAtDqAVyUwMp +BxwH4OvsAwQwHwYDVR0jBBgwFoAUYT78EZkKf7CpW5CgJl4pYUe3MAMwTAYDVR0g +BEUwQzBBBgkrBgEEAaAyAVowNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93d3cuZ2xv +YmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wCgYIKoZIzj0EAwMDZwAwZAIwWnuUAzwy +vHUhHehymKTZ2QcPUwHX0LdcVTac4ohyEL3zcuv/dM0BN62kFxHgBOhWAjAIxt9i +50yAxy0Z/MeV2NTXqKpLwdhWNuzOSFZnzRKsh9MxY3zj8nebDNlHTDGSMR0= +-----END CERTIFICATE----- + + +STM TPM ECC384 Intermediate CA 01 +================================= +-----BEGIN CERTIFICATE----- +MIIChTCCAgygAwIBAgIEQQAAATAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJDSDEe +MBwGA1UECgwVU1RNaWNyb2VsZWN0cm9uaWNzIE5WMR8wHQYDVQQDDBZTVE0gVFBN +IEVDQyBSb290IENBIDAxMB4XDTE4MTEyMjAwMDAwMFoXDTM4MTEyMjAwMDAwMFow +WTELMAkGA1UEBhMCQ0gxHjAcBgNVBAoMFVNUTWljcm9lbGVjdHJvbmljcyBOVjEq +MCgGA1UEAwwhU1RNIFRQTSBFQ0MzODQgSW50ZXJtZWRpYXRlIENBIDAxMHYwEAYH +KoZIzj0CAQYFK4EEACIDYgAEwrRg/UAuBFX5QylytlcZuQqHKE1JtKGhns7bwVML +cUakESdGmUwt3dSdi5aNe4X1bJ96JRjEYpUUjFomYEEqb3anra0XFAfkxloy2Z8G +TTDlfkP8AkRF522SyO3d38Xjo4GvMIGsMB0GA1UdDgQWBBS9lj6a1XSq2U+tbL9B +bdhbSlWZQjAfBgNVHSMEGDAWgBQgklY8C0OoBXJTAykHHAfg6+wDBDBFBgNVHSAB +Af8EOzA5MDcGBFUdIAAwLzAtBggrBgEFBQcCARYhaHR0cDovL3d3dy5zdC5jb20v +VFBNL3JlcG9zaXRvcnkvMA8GA1UdDwEB/wQFAwMBBAIwEgYDVR0TAQH/BAgwBgEB +/wIBADAKBggqhkjOPQQDAwNnADBkAjAQC/zt1Mgvx2+ovDgwtDNh4r8aATdQIh/8 +BnR3oH8gkK52eYDYCKbZkIX1H0Qh1t4CMBrGGcLBYSMf8QF7pFL3/aIDSBPi6ifZ +O0G2mVkmSFxkGJGg2UNAyJXH7WhK/JC5Gg== +-----END CERTIFICATE----- + + +STM TPM ECC384 Intermediate CA 02 +================================= +-----BEGIN CERTIFICATE----- +MIIChjCCAgygAwIBAgIEQQAAAjAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJDSDEe +MBwGA1UECgwVU1RNaWNyb2VsZWN0cm9uaWNzIE5WMR8wHQYDVQQDDBZTVE0gVFBN +IEVDQyBSb290IENBIDAxMB4XDTE4MTEyMjAwMDAwMFoXDTM4MTEyMjAwMDAwMFow +WTELMAkGA1UEBhMCQ0gxHjAcBgNVBAoMFVNUTWljcm9lbGVjdHJvbmljcyBOVjEq +MCgGA1UEAwwhU1RNIFRQTSBFQ0MzODQgSW50ZXJtZWRpYXRlIENBIDAyMHYwEAYH +KoZIzj0CAQYFK4EEACIDYgAECJl5UbEyzDbspvQS0gBHL8zTAS62iU9e5wzw96uv +lIXhtTQ7btcU9gIRNf9SfI5ekiwprUbNRf+cqe7fyK/nUN5+s0YEpvUMtDh15L/k +8z4fow8ELCLS2CpEwzmN4xIso4GvMIGsMB0GA1UdDgQWBBQIy7BcpFELKnMpkYTt +3JzOQpESETAfBgNVHSMEGDAWgBQgklY8C0OoBXJTAykHHAfg6+wDBDBFBgNVHSAB +Af8EOzA5MDcGBFUdIAAwLzAtBggrBgEFBQcCARYhaHR0cDovL3d3dy5zdC5jb20v +VFBNL3JlcG9zaXRvcnkvMA8GA1UdDwEB/wQFAwMBBAIwEgYDVR0TAQH/BAgwBgEB +/wIBADAKBggqhkjOPQQDAwNoADBlAjEAvU96UbV6BpxaFXyKo2HTZWWDhtPB9/Yz +x+K/lzFGETy75ublxEQyzyQWi9oXXz/9AjA6YYTiblNw+JpBEIievODeiY6+QCAI +KFz0g/sKyquqhYN1JnSaOau2hn6JmzUQXKs= +-----END CERTIFICATE----- + + +STM TPM EK Intermediate CA 06 +============================= +-----BEGIN CERTIFICATE----- +MIIDzDCCArSgAwIBAgIEQAAABzANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQGEwJD +SDEeMBwGA1UEChMVU1RNaWNyb2VsZWN0cm9uaWNzIE5WMRswGQYDVQQDExJTVE0g +VFBNIEVLIFJvb3QgQ0EwHhcNMTgxMDMxMDAwMDAwWhcNMzgwMTAxMDAwMDAwWjBV +MQswCQYDVQQGEwJDSDEeMBwGA1UEChMVU1RNaWNyb2VsZWN0cm9uaWNzIE5WMSYw +JAYDVQQDEx1TVE0gVFBNIEVLIEludGVybWVkaWF0ZSBDQSAwNjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAOvIjXBLbVBfIC7SFjcz4hm6R0IyuRJpJ45n +pYytlAHmoVosoT3isl52T4UB4T1r1b8y7Y+vW3Ed0sZO+m/pHtUc5h9050ynGedt +0uvuNZ1cVnX2h/XTcdKIawqEBVXRZQ5OJMp/aDlUwsUeBT+SlhAagNhmyNw2tC2a +b5d7qr8FU03Ds6io892aSD23z51yLAix121uUHIPmHByaZRnaKctTbu7ulwINlrd +cB953Z0WVQhil5yjZs14yd4yAnA3Z1ZW+mrOkr8ehVsUbvrUxyfhMInMrETIxR4R +9X5cTIVia2SVTtfqrb6XMC1/T7K1PH90QXtlt3WILMMNJhLDy+kCAwEAAaOBrjCB +qzAdBgNVHQ4EFgQU+xfXDXNIcOkZxOjmA5deZk4OQ94wHwYDVR0jBBgwFoAUb+bF +bAe3bIsKgZKDXMtBHvaO0ScwRQYDVR0gAQH/BDswOTA3BgRVHSAAMC8wLQYIKwYB +BQUHAgEWIWh0dHA6Ly93d3cuc3QuY29tL1RQTS9yZXBvc2l0b3J5LzAOBgNVHQ8B +Af8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADANBgkqhkiG9w0BAQsFAAOCAQEA +OiwipeVJ4yK/hBF6KgfcCUltlqmoPoHyffzfpPjNBeYqmdaRqxJdbY9FaSrcbJBA +hKRHfWYPCB03TnWstmfadgzbC/8mITx56Cb2EXpvYhrAu8G7a54h0sIhEloK/FAx +Zdgg3Y2tnPhihQ80xdqtaZRoXqjiqKq1p7IHwtQZiFCCCD1jny8qfZLCOYx50/mJ +QXk8WvzPl0xsAOhp5Id6OAeq/6dmwjUBpZBzhwmbnt5kX7OKnuoVr3H+8X1Zycz8 +lq3znYqMaPWDTIQm6gnm//ahb9bBN0GL57fT6RuNy6jH7SRZYZ4zZRtAHyPogA/b +gbBsXr0NrHh671Y1j4cOYA== +-----END CERTIFICATE----- + + +STM TPM EK Intermediate CA 07 +============================= +-----BEGIN CERTIFICATE----- +MIIDzDCCArSgAwIBAgIEQAAACDANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQGEwJD +SDEeMBwGA1UEChMVU1RNaWNyb2VsZWN0cm9uaWNzIE5WMRswGQYDVQQDExJTVE0g +VFBNIEVLIFJvb3QgQ0EwHhcNMTgxMTA1MDAwMDAwWhcNMzgwMTAxMDAwMDAwWjBV +MQswCQYDVQQGEwJDSDEeMBwGA1UEChMVU1RNaWNyb2VsZWN0cm9uaWNzIE5WMSYw +JAYDVQQDEx1TVE0gVFBNIEVLIEludGVybWVkaWF0ZSBDQSAwNzCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAKkiz7ifFip5eIDyKCNBVLtxSXFeuHBcLbcW +25qml0ueAHhPRO91qL8G3Psay6sk47QiipVCM0Jn/IGb5IDOtmtZVWOIKdbSPBhH +cbb1hBkGMaRJ8vVP4ccxp1z0zHITQItKgE1O//pcLs5F3GUKcFVBTIfISr7iy4lI +CRp8tN5Cg8CWR0Vx4Dqpc4C/w5KG6i0MGacBE8N9eNYYn/MDohCG/u0pP6pJoiQH +eekg7xY7PAebIDeFUPwmwBDJLl0OW5kowTwFeY2XyC1tC0V8qjCajsU+gR3cw+lA +CUyxM73w5MMzw1sw/O6oMs0oK1vGni0PoJdSeyy2jIM/wzKaWAECAwEAAaOBrjCB +qzAdBgNVHQ4EFgQUayeAgAqUHLR++8q92NHwHVKb82wwHwYDVR0jBBgwFoAUb+bF +bAe3bIsKgZKDXMtBHvaO0ScwRQYDVR0gAQH/BDswOTA3BgRVHSAAMC8wLQYIKwYB +BQUHAgEWIWh0dHA6Ly93d3cuc3QuY29tL1RQTS9yZXBvc2l0b3J5LzAOBgNVHQ8B +Af8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADANBgkqhkiG9w0BAQsFAAOCAQEA +jaVrmwy2kAa3w3lSFxxZqryZxRKahsb3PW1iZdeTS4Evm49Q4DxtIBC1+xzkxWqn +3drhbWIs425xtSXalqhK/4mJyZP1R/9MX+hr5MwJK3XPsbR2QiB/tm6dslnk1i52 +qaCquKBjoInhLONVedpN+LkKdsyY9PMJFY7fUTvaxQTsw3c0oovcRDgJwyvFrPL/ +7p/GH+CxPB78AjNx6PyTjF11pkek/xgC6WFZXnsy07BP66OVpBXQ3kGVCTZyxsCp +5KgkfBTpo4efaL1NIdGlCYG1yzvly+L38xzc4ZQl2F8jRNgkgJE7QLWo0spZfb+0 +QLgOwf7kYnVR0b4XH70nLg== +-----END CERTIFICATE----- + + +TGL PROD 00002004 OnDie CA +========================== +-----BEGIN CERTIFICATE----- +MIIC8DCCAnWgAwIBAgIUUary8YM8QP8LxFpbwX9fOtWZ2b4wCgYIKoZIzj0EAwMw +QDEmMCQGA1UECwwdT25EaWUgQ0EgQ1NNRSBJbnRlcm1lZGlhdGUgQ0ExFjAUBgNV +BAMMDXd3dy5pbnRlbC5jb20wHhcNMTkwNTAxMDAwMDAwWhcNNDkxMjMxMjM1OTU5 +WjBIMS4wLAYDVQQLDCVPbiBEaWUgQ1NNRSBQX1RHTCAwMDAwMjAwNCBJc3N1aW5n +IENBMRYwFAYDVQQDDA13d3cuaW50ZWwuY29tMHYwEAYHKoZIzj0CAQYFK4EEACID +YgAEvYVPp74Y8NgLj5VZ78ufL4Htrj1/6cPGGeMHVF0eceyleVCyGL8Dt7XlFwIQ +oV4EigEymBuzHiMtf2A5+S40X1ThScIGLJxz4R+ep5ahmFjwE+1GRNtmr0OYROZB +3al1o4IBJjCCASIwHQYDVR0OBBYEFLBm2Wl/XToHtCXBD1h8zuzxb/5YMB8GA1Ud +IwQYMBaAFGGaCniWiAPMYZCopT+QbXV8n2lqMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMGcGCCsGAQUFBwEBBFswWTBXBggrBgEFBQcwAoZLaHR0cHM6 +Ly90c2NpLmludGVsLmNvbS9jb250ZW50L09uRGllQ0EvY2VydHMvT25EaWVfQ0Ff +Q1NNRV9JbnRlcm1lZGlhdGUuY2VyMFYGA1UdHwRPME0wS6BJoEeGRWh0dHBzOi8v +dHNjaS5pbnRlbC5jb20vY29udGVudC9PbkRpZUNBL2NybHMvT25EaWVfQ0FfQ1NN +RV9Qcm9kdWN0LmNybDAKBggqhkjOPQQDAwNpADBmAjEAoqd5lTIhSdDd9PCRltWG +rkKoWL9WtTTumjsyTUlVArNShDbcMzUem0kuF3LgVC/mAjEA9uq3U1NM3hXI8X7G +97EtbtE6PwmHNhe6iE8Yr09JspaLlQBATP4q/XwNbtNrhD54 +-----END CERTIFICATE----- + + +WPTLPEPIDProd EK Platform Public Key +==================================== +-----BEGIN CERTIFICATE----- +MIIDwDCCA2agAwIBAgIUC5Hmqvoik8flKVPI59DmCgzxcxIwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYMAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xh +cmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMSEwHwYDVQQLDBhUUE0gRUsg +cm9vdCBjZXJ0IHNpZ25pbmcxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wHhcNMTQw +NzI5MDAwMDAwWhcNNDkxMjMxMjM1OTU5WjCBlzELMAkGA1UEBgwCVVMxCzAJBgNV +BAgMAkNBMRQwEgYDVQQHDAtTYW50YSBDbGFyYTEaMBgGA1UECgwRSW50ZWwgQ29y +cG9yYXRpb24xMTAvBgNVBAsMKFRQTSBFSyBpbnRlcm1lZGlhdGUgZm9yIFdQVF9M +UF9FUElEX1Byb2QxFjAUBgNVBAMMDXd3dy5pbnRlbC5jb20wWTATBgcqhkjOPQIB +BggqhkjOPQMBBwNCAARnlS667lqURSpg9pF+DERiHooaLBNLhcDmX78UENUaJbli +hshX290QqSCDn/i2kc+aK/Dfe4srFl1s41gG8fNIo4IBnDCCAZgwHwYDVR0jBBgw +FoAU6FIFwk/Y0tWlIUcWts4Me1u6dw8wHQYDVR0OBBYEFBRRJtD9tT6ZkH1vxv8b +kEVbnjJKMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMBMGA1Ud +JQEB/wQJMAcGBWeBBQgBMHAGA1UdIAEB/wRmMGQwYgYKKoZIhvhNAQUCATBUMFIG +CCsGAQUFBwIBFkZodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JM +L2VrY2VydC9FS2NlcnRQb2xpY3lTdGF0ZW1lbnQucGRmMFwGCCsGAQUFBwEBBFAw +TjBMBggrBgEFBQcwAoZAaHR0cDovL3VwZ3JhZGVzLmludGVsLmNvbS9jb250ZW50 +L0NSTC9la2NlcnQvRUtSb290UHVibGljS2V5LmNlcjBNBgNVHR8ERjBEMEKgQKA+ +hjxodHRwOi8vdXBncmFkZXMuaW50ZWwuY29tL2NvbnRlbnQvQ1JML2VrY2VydC9F +S19QbGF0Zm9ybS5jcmwwCgYIKoZIzj0EAwIDSAAwRQIhAMpVy2h+suyYidBvlcW+ ++/BS8K3XIf7/o2MJqcTjaTBIAiBAJUlHfrQIUEVegRqtLggI7w8TZ4yHhJQodKef +2DL6jA== +-----END CERTIFICATE----- + + +WUS AMD KEYID 578C545F796951421221A4A578ACDB5F682F89C8 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAq8eoyzKCHHYjwAAAAACrzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTczOVoXDTI1MDUwODE3NTczOVowQTE/MD0GA1UEAxM2V1VT +LUFNRC1LRVlJRC01NzhDNTQ1Rjc5Njk1MTQyMTIyMUE0QTU3OEFDREI1RjY4MkY4 +OUM4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuB+qU+JHINdzN3pp +T5CvL74PPXQY7J90jmFOQtqef0yQz+esViWqrYpGhysO+gbhJt2xkSGQZowoWsAr +Or99GX9QCmWNNmISOphBvMpb7oDu5DFzta9bMZrdvIIlkSPF4ObF+Sa7soBSkJij +p1eBwHghORUL06wOKTwwH9vQKQzMwpmLyUF8J2o77OTLXH5Is1RwsGQVeXgL4/u6 +PUzLscqdjJ/TNp2WNKu5PxPnhKjunWwpBn/s6w3GG8IpiXKovfwboEgIjYMG5url +8f4ybBV79w68ycnwKrKZvDkqMC/JKrAYC+k06pyOC/iMb0jy//oU4CXRLCMOf+iX +YH+/Q45pPuGZoQWfg5OL+sRgkc84Ju7F20DHbdZfDzffV2tffFCeYhWLHEzuiEHL +UNCWr6tJRS8NowuF4zhVRP9QECSKK4XdzrWFGqHENyRa/2WYGFKqcPAC1wDkldoI +UZ0lxpvoq4MWZ7dh8st0DNWrM46ycs/iRKMFA26+eyqJRObTL4NFnJyLD7l4Pz+M +p1jw0ETLx8tWeVzep47Z4GFbmHbwuyycCc+xOlz/AIn0jsYsZHOCkR+q8JpaWPHs +eUdQIDuXUgCxx8s3OsgqYjSOIdzIN43POm/zAvXEzVazvH4tq32Pq0+4CE525AwA +5L7Wg2CCw+AKgg3EySeR3q51+6UCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFJ+doSdJBnh5Hxa +rCr2RgJBACGqMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEALKxyT/6xd4bP121UojOKMZELg2PZwJdd5XrwalZsFIeh +Y7q2qmr6QWYb+8DD+mpBSr2WPmxTqFeHhTEI//b6f0FgwbOyP0YakZzJI8lKKq5c +VtY5Bl8DuZd5kkZRrfg0paUSJURcH8MaTowrvWAgM8EI+Y2ALhDXzbOiAG+Gg3SE +fsWOXixDU72fFnApk+6xKZfZ51HBsYMpNl1Dn+em1GUlcHi69K0kByAXq+R5VYzT +9TQrLxRmPYfvbLO7+A7bDpXMMzXoIzYUd51dTPueEKLERfX+rKGOPLXYHb4+hQ5g +sUHqDFFD/HTsattFPgLxxb6ZUJ6dxPjY6g4rZ5YgrkNRuHLqw2Eu2QTHBz81XJWG +dmkHmA8H8ZLbOG8EmPKe+3TZnZUPjI9VQ30C4bOyI1Ob75HVA8IHcZYqO6X5Rp+9 +V9vliymSna/SV3og/XOKfuUvtyL7zu3NE6D9jv8nAmzp30esHcCqZeU1sFNYfcBQ +ndqRXCEYeBX9i8GAjld4ucJ4daCuXtqRRpHoDn7vy1rxp3qdM78ej+aJtvq2BodY +eZfDJ0f4gkUUHFQCK2nUzJNaeQYH4h31oXYiWDO5m36Tz4ZRtVS/1TGZuo0hZn6+ +J7ban2z6vJjPwTg0dZWV2xeKy3EhIobl7Mn6KqdTAEFud+EcQfwXv4QCMzpi4+4= +-----END CERTIFICATE----- + + +WUS AMD KEYID CBB3F726E72C37BF7E9C6CFAA6EF06F88FD1FC4C +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAWoR1wl3bZo2zQAAAAABajANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDgzMDIxMjgwMVoXDTI5MTIzMTIxMjgwMVowQTE/MD0GA1UEAxM2V1VT +LUFNRC1LRVlJRC1DQkIzRjcyNkU3MkMzN0JGN0U5QzZDRkFBNkVGMDZGODhGRDFG +QzRDMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx592WnuZH0dj5TVq +kpmmybRPfb1BrsoPCEas39kRB3G1dudaMCoEMICP5OqZL1njmHFBcT6Ig5WZCzgf +5iPYCm8kUODTR6JYjztVQ45bTAlZZLzuhGCaIuFWyUmKT/R/Xq25j/24Qp6AAJr8 +QABkjAJCWKUKS/CUu/4TcyKLvHXH+cn5O5oJXYE5EfkiWpPjFySpsVfL/r+EtvkS +Vaj1t1a7I8zoZ/7+OWcBgRpbwEHHE8uXMCCURZmzj24KKKlGIPaxpEidRIfv6nN3 +nJJ+msIifWgQCyfK4YTZDKRTNpXRfLnhXhzKDjh8QvWAwNhVVwFZxgoc9J8M63aJ +rp3XzQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUeXZCiC59MXA6+Orqph7mHcMdfIIwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAWPykE +sMmHrRPqxcc7fXN4008rTGi1jZZSiCNbDOS7Aomung9kxaqBjY4/AgqNs42j7Brw +fBemIlLW3L7Sk7/0t3+VvHWvUhSndm6+MqoFn1AMWYfgJV8vXe6zJSLnrUuQP5j8 +qvDpEKrN9JE003mE8ZdmjTOOFuAuEFDjJaWrXKRH7phYQJE9jYtciWg0jXwy547H +UTh4QI5Ak4OBuaIpBO96WhFK6XVIGiopT1QMa6f1zV38bxsrV2k+LlfubVjju9t6 +mQ1qLI35xZc80HbyDEdjzeVcEnHQI+WwaeZDVfBDEFTA9pi4F1DcCFo5Aexx9lbU +DLcqxtpQx1nESSiDEca8GdOTU4MpHxq9qgN9mlIOxlpkO2pehCFPDrxRr4h+Ue33 +R9IC+vGZd2b44yj0frebDyxGsSCkmpEIdetBPd2Um4O+GPO74WbwJULZXOO3eJMj +/dnQO+i0IScqbVHoVdLFG/04wVurMUeVH6k+OAdnY59wF8zC2+qRokidpQlQI5Pz +vQa2s2k4fx+2hWDP9hsWNz7uKqoSmoWAOJF1ZoSryLs5klUNSEQOsGKdHLOmZU4Z +3K+lz4P1K5X4+pLAZHiPUGOF4sbocae8VZKPbuVsFqAYz+1CAosKgZnUxjGindI5 +coPU6OPCuZjh8tUusRLHtc9Vwn0XnGY1bmEdOA== +-----END CERTIFICATE----- + + +WUS AMD KEYID CBB3F726E72C37BF7E9C6CFAA6EF06F88FD1FC4C 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAoW+Y3z4wm7YjAAAAAAChTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAxN1oXDTI1MDMyMTIwMzAxN1owQTE/MD0GA1UEAxM2V1VT +LUFNRC1LRVlJRC1DQkIzRjcyNkU3MkMzN0JGN0U5QzZDRkFBNkVGMDZGODhGRDFG +QzRDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzWa06N4sIcTQ8ICu +wU2yxLVpz+CuS2vgRoMauNMIMEYi5pz82MAniOnux0jGua4Nmd5d6UFk0ZTSUEqO +bl96gXCH1BMkfXhu6Qp9T1g7FcNF6M8suSPVL7y8TwntKr53/jpXDps67b/5GJPb +TghrzMdqoouQjC6PiLvTUHUJnm2W5zELiU+1L+mnKluxTDZE73BsWWetuUTPF+lh +9j4ppolskuqYxXcbr9ln/dYRnUD8hox0010XwAWm3yPd8WZfU+DfQ8V5BrZJiqIO +mHuG3eKIsvzdtYpSWVU/iQvAa0ddX6Puxp/1ajuQoDrVm1iZW54qXPi/2Jkuc3HS +pxpMtAmJVT5mtDkVhk1+kJdYVoWX2Sy+9CYIYnTjqdRI+YtAAFTxh6XEF2vBO4Nu +QTg7OaiQpqFG6vgvL5tYfQZDb7arHdzzHAHLD6/mopHEUDGOYVQ6yRwWdnsaQID3 +56X90R1ahqDP37v4AgjcCzuyLox3o/XKU81p4yITKnU1ZTBaH2Syzh9l2YKf2oqZ +Ne+VulYflW/fOS5+jOeaSAsiDscHZB2eHsnSCBnTy1LnuG/Kn/ljuFLZV7cEBAff +1MPtVxalw+dhbh7qwD5fgoD8dovMwXGK46AwcuWPPtLGIwRCBA+DXpbERuPuDHhr +dLLZhLPpMXatuG0XsZOpHBaTSocCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDO5mzXnw8RZPHn/ +pxBQFcaC8YxPMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAVJxckOs/tneXgknkCwY6NMlftDah3UsMcmXVnWdxhKK+ +OPygqh5IvWJdB7A9vEXBsYEVGMbflxH/LnQ/LwEgv9hMtaOvJm9wCS7S3mDXrVZ6 +m7PD6qGMbqe+4DiHj9LUaMdDvcis1xAIr/7+Bz8tXsd40Z1q+AHsaKOg2KeqLq86 +xwsjV6YgIv4WfaBfxJbmmnyP/qSb7oF4Zj/TUzGkfUAv6JoN3siC+gAvD1QrInWP +RyQDXZKw4HC9UQ9vXQxvqG5t9vmOlnXraDGRFnZSDuc10ehuwGJirsrE/LjYzdoY +eicYDgzE7Mx+brJXV3eSPSfJFbpXfPy4+nxhHTBOLaTqtLHolh/YyXgdwOmBgo8a +KNUrKqzn8ab9VNEJBB6uB298moh9Z98nEbJyDZAPXWy3CCRvhw/VVoNRsdb/N7AP +5+WlkNa0dZi4CxcBnc7HKgfnR5M9qDUdnVsXH49YfcLczCT2JCMKjIWoLK01ndsi +Lj210n38vfPpVhJoZZN9Oc6jfkc/bTOFC3HU+dzIS6oFHlBoEZ+bNiSIYlEZm09y +e6bxiLDRjatSQZxOzgPEg8aO0H5GbgpqDhvUqR3ZHLnIcKT5BmuZS4YBcdYD9YTA +U5DBp9ATN4VLmBA9qk6OLwAXQqHO/Ar4YFvwhPmfC4uF2uAE49aXpBzJxVvYyrQ= +-----END CERTIFICATE----- + + +WUS AMD KeyId 578C545F796951421221A4A578ACDB5F682F89C8 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAFhvt3lr9LiMZAAAAAAAWDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEzNFoXDTMwMDIxODIxMTEzNFowQTE/MD0GA1UEAxM2V1VT +LUFNRC1LZXlJZC01NzhDNTQ1Rjc5Njk1MTQyMTIyMUE0QTU3OEFDREI1RjY4MkY4 +OUM4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnrkwepb3eCTJj8Md +6qB3kBAroPXdrlxPD5b5S5jlaLjEND9TjMkSjRQUy8044GT25p3Jkz41MZdMHraw +dZMkw0gFUVxY6escXqWtCvx9bA/YOLkpAB8D5ktxiZuWJPCfBTpoJe1pkJjTduLH +9zQ1IC0WXb1irjkqsBlj1gUT62TS2rC0okkLDsSTsXnBWX5tfLeZ6fV8EnvsvGd7 +0bO42HiSGbGbtXgDF6JOQ7LxAPvzjKxgbYwsPL46pnGdbjlVs3bbj0MKLmQpfXat +ID/Kn5NfKldNMD+job4+Vi439PUz5UBe9ixndl+2o3nbMlM+49CIrNog4qhBn1Pw +JSviGQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUCwYOtF2dr/s/aR3ZFWEFIc2lQ9AwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA6+PdY +Nt3We5x21qyfDPP+jnEKRoLlMspiNz5VrK1WQVAaxUDDKbQe974EqcmL6mS6iQGa +utu1aekB9W/GA4m2EUrLPGToUzxdiB8XP7pV6l94RuklSH2uaGdlwU4/wW3ImTLU +0o/R+FpqGqzHLTOhWPN+eyHOsHhijOCCB36sO8Hj9cjhHmR+fl1YxQMK4lVNbsy4 +MdxX7Ca2AdoaFoROV02g7GcV2zx0SSpsCSV6bKbaBWGryrFxjyj1rb7R8gJ9FcyE +3i9SrsKrwC8tOB6knSqJhGgojiI+/wljBTZkhwgNT3jc0zT5bf5RgkT/015XfgxW +bZnmtgRKFggyVKKzsiL0sNka7ekiCKo1nVGETJfojp5uLjZHXXMaQcsEZY0qalpf +5z5b86qZUjxI61aLhoLK5nNZUIzC55keYLYmxtKx0yMprBvpT/qKcGFMWCotzTe3 +Z2r2AK1eH8qTryIqvgCVwPKArV2tvAN38487p74yuRC8RlOPwSbHrLOUZNopppGG +oeiqC9igClx6QsfI6731/b1B5rIHBKqmiM2+WHJ0i2MVAu9NFcHSYxO34ZUUt1gN +d7i1ZLLEhetzTVm213BFy0pTb5IrrI294WdDbLP6dagQxi1Qmx2leTPW/96CXZ2c +Dsn8ZppF/IJByQXbpnP8qkNNAYgyN/QGqDanEw== +-----END CERTIFICATE----- + + +WUS ATML KEYID 16B341E381CD5C3E799AC838CA17F1F7F3F7431E 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAodxKt3mMhCfOQAAAAAChzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAxOVoXDTI1MDMyMTIwMzAxOVowQjFAMD4GA1UEAxM3V1VT +LUFUTUwtS0VZSUQtMTZCMzQxRTM4MUNENUMzRTc5OUFDODM4Q0ExN0YxRjdGM0Y3 +NDMxRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOsz6janSLT0BbKC +CbvEtAfpKfgtawcvujouIv/jpO+L6k37FqNw+o1X9cRcV+pPZU6N5KCiRYbVmaRQ +HB7t8TD08T8O1BCSJsghJx8KzKIf4DxQIMO8a0ZDF9urIb3cQAXmtTddzTFZPDxh +feUalj7zyVD4t6lkQZQhyBB3tKUPGSEbLSH1TwTgJg7DZOnKv6/pohXEDFZxpZJe +1Ggc00PhAlzj9uda2suq2lnbU3MJbuQJcRs8ifFOot3ER/iNNwoS7hFA4FDihDn+ +UnsFcN2lR5eIFF7A20ovfGiXRvrUGNjCcHKpms/fe63czHmtEXog2yW63tQuZwTh +nNShkl9ZtTbpDhBkaOwU7jEbyL1m4xI/ucT0rgRGQ5DctE8ZotUVSBw0SxsskMRn +DLgSUoRIxeoJ/I+xgotVG7qW4dbfUoJheDq2pp6aZ1q4On40f0x7K04RiYKsZTIC +VNV3ejNaH9nzo6ABJo//bZ89zMK36+fjfF5tFsFQQCC79oNWzlwzQpGrfrrfmSGL +pkbakvrdxXcujnuL/BkF+3rCJxekm3BqzkpugMRJf9jrB+tjC3AXQnExAGgHiFiJ +svLLNv2Y9G6wBDnJwV2kuAzfXcktN9AG4jHnDLQcl3aAO7EkEZQUeT+hs+MFFRaI +Yk4NZdl4mKzTtAPbSbThFfjJPCixAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT6OoKh/+iHbcSm +BAoiBbpdFPnUrTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAGdx2zyBqdf7N8E9PsSpBddFYGE+d43wPXw6aSWiNDaC +aXyaxprZ2c8+byXjCJRKdaICtj3MFXmeUtyL3ZM9VIuyMYC8r1hvFTFyFRWOdSTd +ayqhkrQuOCD+W3AMx+5VsHfTlrsTa7jQnEFXGgg14cd/QBvyssMihaW/1kyMubZ9 +Nd7M4xf/XzMdUXEq1r6P/rPf1PzX3dgtG5nYXrURaUjC/fov8JKKKqAcgEN190Hs ++BMWUzPc+fRst3Grihie/L99ZfYq4TEEKbL2IlhSlvdyxVniQv0SIrOYtLHthKmw +pEykzQDLb81bvhFmQKOxLOiU37K5xCPJewJQvZhhaBfBte4aMb8T5kX66NglVf/4 +i1ZFf+QCu4YcAOfPQNclfkUUkMPMGRksEdGSEhRW15vM9MUbPmEJ1JUELmFNYu9b +myRrvf9T0m/R5ajVEnWzSFbVCRww1SMbsktPqBsET4kTg7oiqyrsS8KLTb8zgeMV +gJQd6EVJ7q59vc7IvD7Nce2zLU9SPL/AfW6tPqaGyW9puAz63nELPsA8JiFhM+/W +gXXLJfP9hNranFnCciFW0h4UwgRxLvBXPB5/XY5c3nzLr80HoXohS5VoIJmMac7n +MuyHg+KJQUcCDDn0TBCNwKrVJMu3Br63o1pswHTY9oAtd9cHUTjRZgxZ6VBh78WC +-----END CERTIFICATE----- + + +WUS ATML KEYID 277631D059FA7A9553FB59DFD6E85BC122300FF0 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAoxY9n4u8kANxQAAAAACjDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAyM1oXDTI1MDMyMTIwMzAyM1owQjFAMD4GA1UEAxM3V1VT +LUFUTUwtS0VZSUQtMjc3NjMxRDA1OUZBN0E5NTUzRkI1OURGRDZFODVCQzEyMjMw +MEZGMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUFVlxnd6vI/STK +PvRLHD4/tMyKMTp+1x7sw6fQxVwoAqAULiUX5JBt/sdkVhP/LAvenJ72loXFrg3u +xU36WxVDV5ZK46+pnkcoFGQgTlONhgFKRa9NC7mZJDbPyuEvR+bC6hFn4lVm7h9n +V5Px+RHgwsJ9CCuW4jU6GchCktLI4sqUlqhdkyCJJpopo1De+zQ6URccDnVY9IWb +HyGPuOW+c95esc22UhiBgH//WRvgUK8frtBaNvsik3PGRTg7cY4nXB+erEOosdkD +No1uzEHo0cPTsOa06RAdXTgyXj2/7SmE68qWGr13Vboo0FwIBmbxzVD0ECKlDFVK +YT0Am/gGnlZl9lylKR5KbpWoyw9S+rFWmcKvgSqt5YgcMY0mPuB6vFe8WdKoNppQ +DR3mFyCJ6hszwhPIcIU3OZNww/g7MaxSxGRYWYAv4mHA8HX/wvDAGUHwxrrXM4y0 +rXKOFdIr27Wgb9YbwlOxam4KZO+FA1HUG2zzMjxJXAhhWIrOSVLuzQjZX8nOS+Yy +2Vb5VYf790hp/Ahsedr4wC206ADBJem23WZOkHs1draQNh48u8ErSN/lrBhBMpy2 +eVn0rTzJisG1NvMVEsuR2CjERzB92AruFKu3SunWfQkljBVUTulS10cUvyYn3H4k +PjWrN61wRenrQuXlvFu0/Uj9W6vTAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSu/4h+92tqxORt +hj18bPzC/0HK5TAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAJBt0/rwAfq/lOI3NpxlTbPS4G38pJGn3RYnq2DwmILS +qaXYfVXRRtDS5kZdv2/pV2GBuHQE0GiGdMbs43SDwgaEpyaJLULdYGWke8IDJZKR +a8Gl8ACIyEC83ZcO5SeFZHPecaPizX9PXnHZmFMMdYQeYNMWkkozky+Em4Mm7olG +IXr2l9PwW1VimlV8vLgvE3tDLDYfvPkmITX6mZy+2HYqR/KpgH4P1lX5pzy0VoZQ +HG5Ti0QOrwjxFBWgr4NiK+g68JeW1OukRiDPKfUfHE59o8qilGwOxz0ZTsREfEdu +PYcMWP+QZIwVv7OqyRfza4iRavoRWa2Bq57VXZ0mdbvK8WGHdga2nVutBVnR2Y1C +gtO3eE0bLEvkGJ9/uaem0Jr3xJ0Pty5rQ+dUuYiJDevACLE5vs3fWTvKjdZXVLCH +csK+jGJ6zrYm7v9Ffl0PgdfEjf5GNjHTSbPgYfVSJHcIo8Bs7BgBFA/XQMARFrm/ +qKyiiBGob4oHmALS2Q7ztOMoOw9SfP/c+fM/OiZdcosvs2avURfxa9NzmvdKQkdH +y+FwywkPb7qen5xDTAGXDQOLXzd1ueihjvnYMzsVLYlJPhMjqfyDHVYam8/6XpoU +xu944pNLDo66exmr+4u6UXL+q1ASLAom9VypFz7AW93Qmxi7lwWJvlM/YVkTdP5D +-----END CERTIFICATE----- + + +WUS ATML KEYID 2D605CD882B2BD716CCE71C90BC774D3D5BCB1D4 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAoYLkkqnG8joiAAAAAAChjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAxOFoXDTI1MDMyMTIwMzAxOFowQjFAMD4GA1UEAxM3V1VT +LUFUTUwtS0VZSUQtMkQ2MDVDRDg4MkIyQkQ3MTZDQ0U3MUM5MEJDNzc0RDNENUJD +QjFENDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALoEUVY0Ts/k4R6z +FMMd+1/mKK6s7eBBXqTo3oJZKiwIhCC7aOvvX61mkapTnffEacHBPzgWWTwLBq6G +pS5WQQLbmHL5i/UNVCbY29jXMAnLTTWBCHelnwps0hoCWxhQhqhUZvuI5a6rtByS +z+IKdVjMgvdxGAuOJN4IJZtm4tsPjaHW95v9hD0TMQyRTq3Qt2OfnT5BlkQYkD60 +lIZetHNnWVLZYa2DTdycBPgx+YSRmD9BwzdepH2nMSvHLKifmWLSRZHukmUN6eeI +QI7Gdx6Ca8UTbKpdyur6MudxTDMYHGdid7tcCj5jYZDbqlHSCQY5njmgaVli7ir4 +KbBMOeYcWZSSZgq73n7xmlVJHoibzi7Fo3fA63TRIV/Chs3dcgNjCmTS8nia6Ie1 +v99CLlENkE/OnEUUBMWqcnw9DiiJ9TEyNyN26Rc4ft3a/Ed1sf/RQdJCfUbTfbdU +Ijuj4b7mK0vwYza+w1dIroErLLD2o663Qn9mCoqch7JYVdIE4bEKigUrgBvYIC9f +Vw7fxqDo+ICJGodqXUQAFuKGelyEXqd4M5yhjOE2F+YDpHw946xWXDVB/azqwK/b +7qNM94g59CSuVGQi0ibxUX8RItAYdEyIygtht5lWmpe6zIkK6dfCWCYF1UNbS3yH +fFeYdEVzVN+WLodfmqP8A5oV6BUjAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTT00BpubpvFhJP +9zHOT5tK8E42bDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBADjBp6f3EwzvEdpGJaGApKcc9qHj+45psldyNEKAwZtq +9xaJ6BXWXgSDFe5R28dyq3xPBLEYxilyXOOVXM8rTCFcOgUXFSET6ItFVLM6KW1/ +aMdASdPXQupKkoiKyMyKAPPAeOPS7+tAIQXcJOGhJHcpGPG98LGN1deUqrrCVVQA +ChOvXFlqYU3992mI1RV3UWkurU5lLpXyPCliNgm8CJbTi5l/nhtFEhivKFvzEjhR +bOBCyrWGMzASb9qkGLSYaxYXQrIqmCAh9mAa/UjprAlJA/CyKIyr18o7m9epFGpD +K4sixUomh30lvJAqBmcYbKblKHqMKVINGk+thZE2M6n1IGrPiAtfIfHEE3vm+zlg +ujwlv+RQgQXbj4F4EPm0BIjwLIgkVCvInOoeWqD+K3Xs76y648Vc73xlV+B6jpps +fgMDO9nW85zYT4Ql1Zr9K9s9aajm0aGMjPYIR5BKIFrJSCyVmdHUmpKSwMfY3SJI +OCfZsb131/pISgfqv8+pVUB3GiOb/FF0PMfxk/lD+d2qwZAlCL5LaHtPiNwRfO4m +QulU4+TmRhc0atLcx9qVS3tsTaEhgMTeSJLIUAm6US+Dg2dUqVHgCWKAfQp7QF53 +s/KAxtkApYf8lPIYGB62QHXut5XwKahxAyO/EPCTmVKgmhRngqI7mfqr6hzyQbBj +-----END CERTIFICATE----- + + +WUS ATML KEYID 35AEE736C9B4D2861309E7815C0FA4CE40D865F6 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAogeasmxkeWYwwAAAAACiDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAyMFoXDTI1MDMyMTIwMzAyMFowQjFAMD4GA1UEAxM3V1VT +LUFUTUwtS0VZSUQtMzVBRUU3MzZDOUI0RDI4NjEzMDlFNzgxNUMwRkE0Q0U0MEQ4 +NjVGNjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKQPobowXfeo2eOB +MD4gaqNrbamUX2+85jPQfId3c7IzEoREYS/KO7hAavPwBrV8Lior6yeUKSqBKmUm +2JQgnabNb3s6kKooZJwJaiyg5s2dzZemJgFDOQpjO5lj9Gef1IyvYfU4zPRwQYqj +Gb8oyBLEtS3QMVno/bXHi/zB0X2FP9kyEPPCrfo5sfwEYSPzeOQ83ZVKi81KRKAn +L3IbuGigLXF51DTyDuDIbNXmsgzv5TTNPzBxCUuW5VUlboMx0biIkDchMBW1D0Bw +w2l5W+zncGSnfACc6esYhfXLC3bapDj13vOSgfo3lJxgKfP53R9HF11BrDazNiE7 +XNFSENy9SPj2YQNAkidpJ9HYRxF1wZh0Tj4khB2Oi409lPMZ6E2FBeUXfP25IH+D +5mmfJM9+tQ65ukyJA+kKGLJCcoChXIhGAD+LzCEz/mD0rpADw5d5YpmEqxvGJXYt +aO5JuIPjoJx3BDnbkT1k+610bT/i6glLgErSLh1beWismNMb5XlkVKVrWLBskcW/ +P3pQ5DQaN1Yf0YRIib+DpbuwBNpqn8f4A/CdittmKXjaxPbgapzOE3yaMkqCBFkZ +l6/gLh8g/cXGWGISB5gCdPS/tongHU84FdbireyPhgyRscX3t16/w4cCeqoOb3HI +x9mElu562o2LiH65EszYiLQAVTYBAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTvlrMMl0L5GPq6 +5Cllds+UO2SftzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAG9bweIqRkz0pZS8o4sGkIzroQrWAIeIG1js5Gt7n5XV +xL5aIj2i0OzsJTqO2M9yZWEhyEznDCQupSrZZCql8vMQ9ogW3RYRxO9QQhjjlE7E +F2i/3iZYiDxWyXCIvthEsoZTdL2KwOoMe3kng7MX3abWKJh1ebIrIJ5AwKEvRAmw +HChfGrATt5cfFoqsDdCRwQ70/VfySDYX1cJCQQd7qcz6qi19/2C4kM/8mpVKvPGr +HbjxMg5UVENk2Tw2Mi7h7UPtXFujFXKIzH/f7G2Iw+jrrEebgsMdF4ZNm2N4MArG +GiXTFf8nvvGwW5cWHFNElu2qp2Grr4O+WvdpXi3uIV2ihSXZxDoMbJ/ue14ASOw/ +uQ60rTxxj85TjISs1lsBdx/EqtVf8HLyhSNCcr6g9KEAHNAvkCNyR+a41ziyOka9 +cG6HIGSbrzNlHAh4sJ/uonctu82YP+MSN5JZjq+fhdZSCXIhVSGh4taqN9HAuBf2 +wYmgPRns7rifqAoV9Mgzge8skODzxY302cAj9xoYZ03lAW51+RmGWBsyrOyG8Gk9 +BYgtWvq7HLxRhmdYCd3SBcmYScVQ179dp7UskF93b6bvAjXrQU17MRA7/IdBtqHK +Oqu06GsSEHp2jLsjsMMhnlS8L8GZsKPFhTdF214xTVzZcG8TevhHsIOIxCHXLfLM +-----END CERTIFICATE----- + + +WUS ATML KEYID 4666DE766204E74DD29BB4FDC58523A1403D6A32 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAotkfvyMG4yUwwAAAAACizANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAyMloXDTI1MDMyMTIwMzAyMlowQjFAMD4GA1UEAxM3V1VT +LUFUTUwtS0VZSUQtNDY2NkRFNzY2MjA0RTc0REQyOUJCNEZEQzU4NTIzQTE0MDNE +NkEzMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALxyuHZBjrrUWKME +ppue4AdbJgTrlLYIZ0vwu14pKHywNKIGbRhSPWZ4T7D0/98P1c1i15xjFP3ULQXE +PPEqzaOE+CiOw+vUZA3vlGpu/zGQsrUSrSqOts8SXR3RqeIVgFMF2wUrtnvqT7FY +0zypwnxHYuVeHdC6w1Tu2gvduC0djJxqpZm+rf9/pkoxRPoxB1LgPJ350Qi/RsKd +rE06mBO/lKyuowjIvTWb/ih1BPsqVEBW38qN/iNwL9UGeXB2XaF15o362kp3YCr1 +6RLH+cBgRz43EoODJT8nI9BJ4Ko/YlhJ4vbT+PRUnzsy8uv0j8hWcpVlBZsb6vdf +srbJCR9Vv6vr/B1dOIhRaO0NLmB++hZ5HIpEAIaczoQ7zEeMP9d1YEcjqZZHOsxp +S4va6Z4ox7EfHkkrfeL36FFnv5n8W4ulpA3gFXix0I3McDXtGHwSCbyZzIYAwmOR +BCCOptRDdSZIQsOu1i+9T4c/sEvygDcCB33Ep9bLNwgPw+HBywc7jGMubNeYVoNp +EbZ4PpHczZWbAyWmGZM4CFATs+U9U3E6IaS2bx2sPNzvRZV7FVoNCL7gzWxYTkjR +jx4UuAJepcNmB6MEeO1bfOM0aTAClAN3T4vffPx/wKEXPyjv5ueFBqOoafozmdDs +VvxBK9vstz3pP2bkg+XM8ECZ6OMvAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQ0bYcg8ivbHFNK +XgZbR52Kq8CmZjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAEsLFKoR1tFRHRHEKVFfq7+ad3SdFQVxGWmuqvJIy5IV +r5HlWWxXSMDzWtultmmPUBqHi+CHcWI7gXMEBfo/Wrp+6cI9WyvXSc2EPKOUxtsX +259F4ZvUKsRAyCX6gwcrROP3aqFVHELOzsGEPCVW1LzuF9xuWMbO9DuCMrMD+ou1 +vgyOsDmPNu5T3nT2clMjkrq771uvJM9UWu1pgK9ED7lH6GP9MXC9FmaAJEpslnI+ +RNjhfNympJLxLSDL64b89esSMdFmwqHp/AlmcvSIeQs0eg2sbziOKjZDvX8NCKW5 +JrfSHgWm8Uu+Yg5yNgVcbIOQgmZmmc6QjDqGdx3CymwnCsCz47Cb04QBYC3doe2j +BzWMvu+QstcPMse6+3uZmPSUYz2FYP1qrEHRjiBCcygYaohsaOUn29UoKjKuDXso +haSV5Pc//RvwoSlTTuYczgauUOtq9clKmaQ7wWQDc2bVGl6ThE4pO4Hysc3ZBQKH +eVQo8HQfjd3k+CCLiDvUQ3pam+lRZlzRzCU6UVsgid+IQ1ugF8SC1aQJE6+BYoxM +RASeKA+e0VmcRTo/1PHwnJdlFFonmtM1wcFXwskLUiMXyREzwU3hdLCKYJtdlJcr +d32cdmua/Y78QEcYaZb6YXrLZK4E80vANmT7Szwc1d0JeH0wyROH5nCmo74Ie4hF +-----END CERTIFICATE----- + + +WUS ATML KEYID 55F4DA39CA65B6681F2B7711BC3EF208A8679D1E 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAol/Ff3Fg+0KqAAAAAACiTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAyMFoXDTI1MDMyMTIwMzAyMFowQjFAMD4GA1UEAxM3V1VT +LUFUTUwtS0VZSUQtNTVGNERBMzlDQTY1QjY2ODFGMkI3NzExQkMzRUYyMDhBODY3 +OUQxRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANbh4cK2jnxL+Twu +Z95Q2RI8rfiOprbcE6dEd0nmcA6D4SFehy7A7iJ0Cty65c+7uRVMo4nghBMu1Qsj +9uNnge//Zc2yKCuDDnREJ+gYZNRz9D2FkO5vgK2w9CHFt95KlO03cd9KNP4nz/A3 +rNF2J/eDARwVeJh3iv/08iRGV67Z0fGGdOkExZ6BQBda5W26L6YL7v6hSJiewYoP +fMBVv5JPjvR4nRqMhwmHQu+UaGbPvtjzJgQsD+8u+ugViMMn5kUTQgeDhv33935X ++0KXIBWxj8wpbyJwmWIc60agHaDnG6WhjWFUOrmp03xN/dvhi/EhMtLn5MfvDiW3 +km5/elE+G2r1mdKIhpcVC5UL5hSSTWJk8qlSAQUkCFeapehAP70HevaeT/ehQNUc +Z20HVv+yi0DU6NUMud1ojIwwQaGAJGZNVl5IYkDgONTcD8UpVsmrbgVuiKw+l8FJ +KdqG7DI4u7B/L46tc5vVVL2nlVKjpoH18iEyL5p8cHhX6miiG42sbRjXN7MZfqTH +3Ny70WGtbT5xvc+abf4RuYIqcPNaLrQ2+breUGo7CuPE55TbDHxPj39EFiuhVlmD +UaD0gUEQE5SPbFSibYdO6GNzPHdBF5vqkxHM/JfnM92Iua2DxYMPzdjZO6p5XEO4 +AXTa2e4LLnL5nNlxbzQOmsrjnvblAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRtyfLx/XqfnIJm +BNAdy4c2ZUdzVzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFZQZdeqMvJFM0ny2C5n7aazugnNzCqdSeozZNS+wyV9 +v91RzzuG1CKWbIB06Fg9ISL8qYJfqaafr7yf6paV2B1AokuycOgCQxBwzthjiPVm +yzMpCblaaxmj+DduMIfLJw8VTfS8ze6MrFENpaJeVQi05qxr3vQyqMsgfes4B1n9 +uikfR0CMIXAxEede6aKhwlQhfp26XggSkZjzE00NO+yKTZEK+znGU6U00vXfR5im +LQubNQrutjyXiY8+2XIoT7YzzCLDwuaUqKj8s+QM2Mf5YDOcO2R583Wzn/UB1wNn +fCzT5Nl9giqVcV5smFvlyihFLvOjFMiuLtmkOS/SEOcHteQ/eplPMnHHN8ppwfP8 +aO5ONAD/Ui4wae/skc/fYIPBXo2jwShgeCc/uhweHgtVQ4VeOtlstv/3JizhstOY +L/i0HErVJ3zC8RbDi9H/3rlprOFnkKA1IMBoCdMWmC+1JYBCrSujl32KBPhEl3pf +L7ULO+I+MtNe94dx7m/g8w39YDab2Z8vGlkXOysQrzbW+iLCWB2fnTw68kxHZPHA +ZHRjQppN5w3bmNgJuOoksnu2Sgrm+VeJE1PvmxRKbZnHHpfC8cYxg+jYC2fCQQ/f +dA/MMIgMgLEMFpp4E3HohRGsP1eqcdOvITcwEl/EvFpGBwaFg3Az0FYu9HznVFSB +-----END CERTIFICATE----- + + +WUS ATML KEYID 81B5D99CBFAC98C5D61A8EBF26A86A086BFA3ECE 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAorfGyBQRKMn+gAAAAACijANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAyMVoXDTI1MDMyMTIwMzAyMVowQjFAMD4GA1UEAxM3V1VT +LUFUTUwtS0VZSUQtODFCNUQ5OUNCRkFDOThDNUQ2MUE4RUJGMjZBODZBMDg2QkZB +M0VDRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANgp8NtumO0K/XRx +JC+5H/Udi8zSK4ey4igKMEBkivr5pk+bwtd3YM1yObqFV49gXpST92e54LAt1eKn +KNQN9QONqYC2/WxtIRynHbOolSV8+aaSMyuwGveaU1/rqeh09XRbWSDj5Kz0q5Fx +jgMyGRhRe2c/R3KhMWUk8jtLJA/pLe9B/CRcj7qsIc9OKFTQb+zM0q610JbwyBJV +OSTU4t/smm4lxFPAenGBpci80xZRbgHhVa7Xsvoe8zTSN3rzJlaWju1ZEKibgxco +z1/syq5t7QtXCej9LV+Xbv2dgc0qzOFjVR3I29N8ipEEvkgP1I53wnv9k2jddbA+ +C5RkpTn0Ay8EO/p6cY91jBJLbpEXwX+6HGvj5Iz+id+NwwdP4XiE732bvoZO1xn7 +XkkL9gcS17Kh5HH0TvJzJLEPJLmRJ226s1qaaWLVjBUezpuROLJvuBrpN4YDebHO +6kKWKs+Qz7nIwzDTagUartmWGr0t61Aa5JyrkFQMd+lMGhCp1TCYZYMErawlvdOf +vNjISqHapGdvnzct4khrAcldLgns/lrP/Gc79Dp01Km8EoZI1COZyNLGw12xh/Sb +HObvW1fWIbH+LtoBNFVQe2Jwtcc3j/of+cuh5ORL+R3E4PwPD4DbORF8/xsR31o8 +XSCx3/kFhDroNqPL/g3ssz3LJUwhAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTPfWRILAif8qTe +1xEBA2ebQrIzSDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBACQ7SoIgQCFFh8Qux2oF8LLTr5H6siMJHJNYLUH6zcR3 +3NB5TLtfTjTRHRPsQavhcTYztv1sRO+jfg5BvFY59DSwzyTLhcOsmypCVDuLxG6f +zRZBYRJYEk8rFcj9KSj0BK9bRYXT+qSg38JLwMvueo1TEF2xH2PXlmh/RMYfXqKJ +4e9J+LSgdlqRkVt9T3Q06YCAdtxJ//iWaeDhfqL+1dMS5AJLZGZCBtk9vlwewvbf +CqtQvUUFNnACgi5y+CDPh80zUpingwSSPYp4FE827gucggkpwn/ZhZn7ncspq/xm +ZkEFNVp+uZbwUruY9IXp4qKTEFX2KAUBISkY692SMoyipI2Euuopv8WfycFSdTAh +cHyP+O2zm5/JUiMKj+pvoMDCaa0OmYGZ0ce/m7IkBcRTwLqGxcePSFjz5RI8Tqhs +eN/brmlqaWUqQpOrS/uCHQp5ErTKUm1L5sg1JneTXlD5ypA8K6e9LzRNpdyZFQzR +bnLaezj+qFcepBBHj72UHLO0/EhmW/IBav2K/luZB3vF+4q8VttGwL0ZCc/TXKGM +xea9kOfI8LEw1CntAqkVTz7J1O0LKX9HqrKFQl0t1tFXKAPeNcdaq0tn+O7tjx+A +8QwhUnG+81Wdn4d+cHF/VKzV6ktHVCW9l68L5SiMVxLoCEEcXvO4wdlAZsqa4yHm +-----END CERTIFICATE----- + + +WUS ATML KEYID A0854BD197F8212FACBA38991BFDDBF5D13CE9CE 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAo1SmGCPedUQfwAAAAACjTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAyNFoXDTI1MDMyMTIwMzAyNFowQjFAMD4GA1UEAxM3V1VT +LUFUTUwtS0VZSUQtQTA4NTRCRDE5N0Y4MjEyRkFDQkEzODk5MUJGRERCRjVEMTND +RTlDRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOlGW0GvwDdl6gBo +sPybkwt2QW1ilce13JRggcWhbLv6PfLO8WjtU0xosoP/CU61cU203UZV72SI/wCM +A64riXWKs5AaUOnDxs5xc9oPx7GWJvkPxeHbP4fYJaueQnH1Wq17jOOgxbZvE3Wj +g+WalrgpN28iK9iGlnz3UE7La0F1d+uSP/qBRoMY7LpKIWpTU3etnrrXCDKxb0Ly +RNA4yFG9ypS6A7RMJUFQJDd3NcZJYo1xOMXMB3ggls1zakU9Mv+7dXGMzNTyoVJ4 +AJ8F2X3tllV52JqHQtn8k3rCfxMlVUg9evLjiFJtR/SsCbwOu/IDKkhdh7jbRp9C +KYC3w9ZHMY3siNua2Oq+GIhJmJnB9tae4xOUt9RdO2kIzeD09K6ig3fxhxycMpJd +tf9PE6PX2VwA09kk8RFvYOg5Jhkfev1HOHK2u2Y6Cs+K09rs944frf0La38VP/mY +n8uRRoOOrzKw82UPHYqUUdmv9gWeTOt3wRzzK4Mp5yAroGQgoZ+rR1HtYgdGvxYQ +WH0afW8Vvlq8gXywSWxY3x7FCeIqQm9bTJzyJtbRaSBf9NfpLfPJ3OhxRk0X9aC+ +BI38ICFD+WHLgS3+CftG9ECvhZGUC0aE0Tc0aieaOYCKzcRl9khzBu/q2Xr5+wiZ +1WSmGdxijIwcGExH5bCUnQ7Fs7A1AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSphAaGUDwSFbwi +a9cMy7YCDTWnADAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAEIku41mxmXrWsxzc6/r/DGUm8zE3Stuui2PH/VG4yni +pTACnVGo1+G0Pg4SAoYfYLYXmPAuTiWDHpW96ewKLmxapJ+2qWtqUb4HT1wvlFdG +iSFi+ocUABimQEStuX4mWsQYhFcgdzcbyIhVu4Nq+AhxgMHYtQMquZ3XnG/tmOez +KwMBvNpiHVGArgPRWyf9dZs6USDrSuOnju9xAHixOEcSN27VRcQsOatUOKXB+DMO +PCmdJWxm7IZXWZI3WqBhU2ErhSSdwyJOL5/oQn3R+am0HNjNcQPKzgTWC9+yZ/TH +jH7Kb7WTVlfW1x2XbSoUEasOcNtm0oxUl+z+s7m3lJei25qPuHrg/gIUyRosrs3c +6UuR+Zz5UULthLuJ8OPhIrfHWPZ9GmLDjzYA1+YIp+glwtfOlT43MltHj9uedjU2 +ou6catJjiMNa96j68x6o4bZUrYqfmPCjEVddB8helferiIcJwX0qW9cObsmo0OCT +ELWc5Lfb9EKnFdfNswkb0gFzRKvTPZWlkQIQgi6bx/YJO9B7dKfJ8X+nIk28Ao0R +6DG/U8a4DeoUvlTc910C5MZoCKjoM7r0jV4qs83tHUs3R64Y+cKUHEr/iOtINt8v +97eCpkRQYDIPbB385YNi8+k6Z/qWYJH92+DeeToMISImB0HmICXmte20/fRp0hJj +-----END CERTIFICATE----- + + +WUS ATML KEYID CD3401AC6E1C6F93DDD869D46A518311B3747895 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAo4N3ccOfQdvywAAAAACjjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAyNFoXDTI1MDMyMTIwMzAyNFowQjFAMD4GA1UEAxM3V1VT +LUFUTUwtS0VZSUQtQ0QzNDAxQUM2RTFDNkY5M0RERDg2OUQ0NkE1MTgzMTFCMzc0 +Nzg5NTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOQnMcKeVyjUSEKR +qXGRFaNjZhztvM3MfiqaLcymNbkI0swBDMOc/JNHKr2qNvp8VGOjdh++HEwCFBtE +kU5WT8IGQLVwMIVcqvjv5OMe3oPzy53K3tv8dE8shBcBZSc9ccPzLYzYo5T+LUJb +19Dh2IOOe2DNvJyLLFxxBJX013A0TQEnit31RrSUWI2PgCr3EFbXJB5Y0DpOC1xD +yI94GKnYDCXeBYZCTmJ+UgbGnj1ciFSSk8ZDhB3M5bvQnez6VaYFxlLmHIqPsYhr +HrTOAJTDrh6SszU0JliM90wHY3knpsjjDpp/qCk61pHZCgQauBwiqF0JsDgALEqS +sxF4hdK1f4J4+UAOUg4Yw5Z+Nq8Ua/fGnevhPJ+t2QCHeIQDMO4clBdCsGG02kaE +HVxwN80rQolPACUFQl/Zx3/fPDhxQPtNBXRs1/Ph1U5MBka+71NN7Hl8XnhI0E/U +k1roH12tPm7AmlKdU5241P0+UQFA1ZAB/j0EG2ajS0AKwKE/r13mZbbVN1OlZyn3 +nknaYGuIhroECNbcT5EjbarQdC/iAoarngwnGhE7OLsL9LTvD9obdRJRrDPxVvZN +AayrU66FuyqA9pl2kz07+0Nb1AHGdzqhzbvXcROetXxn+pJyguIu2eoFOYCd8RUw +OgBBJKB1HuShE6GP0IPcuc7PZbUvAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRIGGF1AwHJHDCq +Dqm39h/9bG80UDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAJJTTrsaFT4dOb7hWjTyiatdBsJ2zZuSXG8SpbTrcMeW +5vLnEarHFBMmLiSCD6/EuztvjWq+Xyc99o2+dlSWasf/Da8D9twj/5OeJ4pQBW48 +c0Z9e8DBrqafEtkY4q6pERdpxfuOtRPGnfvxOhNqagVOeoIXH8iyaEVzK6fh7V7P +s7CBVjJDJtp17xp98tW/AvyigAP0i2JHK4pA3Y8OT43lT6VroazMCmiQTahI9ZLl +ZWX4igDBuwVAGUltCvP79p7nboihudCwz9g27yBCvas67Pjze28pbpECkdV/tzpl +hHWcEEEcNfYde/UgucGsbkMbEAgiyqid5Stjg02wemodO1wZAE8cHuhemnq7bGXH +l9hfEbTTbJgIl95BJAj1/CZCPZCjf9HihLE0tBpD9iYnwW83YrBn7FZmuAviMdro +0leY/9GoV+kR8yhqtTD2yskakrI/IRluUB4qzGACz/N3kzGrzjEnkHHvRvZfz4ts +5xjD/PivoNL5Au6IJjYAjmOilYhbLCj41wFRohP0VsU+kXUtShWjpHA+wU+PEbwo +1BI2f/G5wQhHl3prTn1lImWRFvp7tpFBJoVH9boYAEaB4IQ14RXQEd2/s9BgomTM +xlQWojP5MjHc2YGiRwi2nL2jujBq8c2kLOhwjwUcWKZLMsOiktOCAljwNhMNR15B +-----END CERTIFICATE----- + + +WUS ATML KEYID D6F56ECFCF7EDDB7FD87ED01E127EE009A463BC9 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAo+uAnVEeOc9VQAAAAACjzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAyNVoXDTI1MDMyMTIwMzAyNVowQjFAMD4GA1UEAxM3V1VT +LUFUTUwtS0VZSUQtRDZGNTZFQ0ZDRjdFRERCN0ZEODdFRDAxRTEyN0VFMDA5QTQ2 +M0JDOTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMLvm+cPeALAyzjg +ZOFcoQLxPfwGDBTznCn83UuHBj/19Ams6ZVdJuNJtgmplC0d9pN3fdpmHmMCHkFd +NU401EIxaHVZSlY1Kd4tqyIP3zuwiSfmovMuA/EE6l2Irhh0GWa3bpMkjrp0RA0+ +9z5s9l1dTi0Zab1dU/qvPBeiprvA9DrL2T6oswAF+Jy7BNMfPOTFl+BObMbYvCud +KStcEXzAjg75Iy0N1CuUyt6//l6Th++DEt7vF1tEUgcqZoT38yFQkwOP53sBeToa +Gmo9bwF1OD9r6wTx6fvSAoMxezGgw3+s+Rjwi31AlK+8Hh4xhxXEX8yZ0LLmM4Ry +hTvEeJH1apk5ew68M+v5CmCNj2udVRuCWx2wLYobD4s3jj8DDTZhB4F0mtikWkvT +3v62FXqStYfA4X95s+4CvsjLojJ1cRgFvici8531CstDei8UkpYs5mWK6J36XDJP +cqKswSsfUs7ooRnvntvwoggbsb0IkxbJSz484WBH2M3p2H0bBCI3ls0c9eeOmdFx +Hq8TKrZ1unEe6Lv0sgeIdShFikfRWnwltrg/B/g1xJ4NfwVqeE5I4sxAJlztBye/ +ymu/cdWkIKKWAXyyeLqJxsdCrWrSUzg5d9R+XIQKTXvcU5ewt9T4VBH7eziDDekf +h2iaq8XmqhcsLzjNuH79gWZ2YTiVAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQGKS2Qqo7SH/rw +fz1RvFA099hGZzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAHEKT9H8eeP9J+V58IsgxITgbR1++8ZnZzcWlvRsFDTc +hgG8GRIn5G+ZwzZt8O8IKTTcaWUTwA6GYHrP8IjcjA+09UOaAdsaEAyzfQcHj6YR +AyXWcnbMrnJta6QdjJY1eXy1e41c2BImf7kRjlxMbicg94gIbficO/Z08mb/DZLn +tWt05s769lAnjM/NnSZ22srqgErh93l/2yJBhRq4v864dGuDeKsKz9ext7xf+Q3Y +TpEck6E8VYxFr3feH50oYmZfHcT4Atdm/l8W2Ky+TqsCL39dDQcX5N88slw9JKzD +6ZfUn8zhX5+VD/u3JhCgWqujQwfSJO5TMXU5Kd9OQ5TWlu6GWHRwUihH+ci4CbX3 +oy4NyWkefzVowWRBNz0SlLwnud63KyNXculyE3DhLMZC/RJJvkr3b/MlVLG/fLZp +K7HoOmkLNokLk1sDHaRjP4EZdMagsBsvo8rwqPglNAfuHG3KGOhbkHTnJ91EsDpg +K28165FFe6RkWAGqMAdcdVuQ1IB6o9LTc0vlAmsFJoYm5Eh18POllZ7nTxY9swEg +NrbTj5d+iyi8uxi5od/T2+BNxlpHKkRE26Pf1Tk9Z+7+GPUt6d9LU4YpAOHXffZ9 +Q0I2ukgaZR/x100FeI1M9NauNj9tGlH0oDFrWv0szTZrKRFCgU0rX+j7swC13T19 +-----END CERTIFICATE----- + + +WUS ATML KEYID E0028D87CE6C67A8751CC4B5D74F57622E75E42A 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAApDDk5z1cJDLZAAAAAACkDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAyNloXDTI1MDMyMTIwMzAyNlowQjFAMD4GA1UEAxM3V1VT +LUFUTUwtS0VZSUQtRTAwMjhEODdDRTZDNjdBODc1MUNDNEI1RDc0RjU3NjIyRTc1 +RTQyQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANXQYDoJrkAqJ5pi +Kuj1QmEM8MhYB3PYV9B+gG5bQ1PvRp8MBHxoFFIQmHksn32rNmIVatpe1wsehD7G +3EUkaO91DY4q6vl5BCLHYRvdK5o8wdcY04Wmh/91/gaAzAFp2uTvOjmWBFgNRZ5f +7LEoiW4Yrc+fHqpSgxxkGvhhgrQ6g2m04XJ2g2MkIaBnKvyHgYkLLKIHMX4/yOz4 +TQnNEttrRDNLjmL1co+PiJYT5S7dPoMhmQ9QPoiAd1AlSNh3bMPB7j31VHoFGGQA +W2ybpDM+DUv+m7UNjmOvhZinbtL30/u6hh+YP9Y9c09mATUyau036n5tF35IEwtu +3qE/tHHK/9ldR0ITBsoY2k0gIlv5WZ/05lV9CQ2jDS9HY1yDJ2zDwF6hVpy8mpaO +quY9nlLK6wlbK+d/rtia/K/ih2YyU+WKv1Rn5UezK3wN69e9Ps/kgW7uvlAF43ND +ZnBJO6LYvgSSy2zCP2wx+gRjeIC0W8C68hzOhXGBI5TYVZ+vXPqNd6ad6vzLGhkg +BvS5cZcF+vUyOwSjOj8KRB+27xJTiAW5IUGXyL5BntieCuBcp1kSLQMob8WN5c/R +ZZfJ2+n5hKPAC2O67dYJmVtcNzuqgPeZq8aC8b93rxfHAIPGKradoVHvYOzBAHtC +CRLSo1JVmR/anEEBFs1CM3K45VMBAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTerRIFywE27YuO +6Y3E4HTjRJIhpTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFlmSY/AyP5oGUb1WcVL4eMVfuSJui6z6NCC+5vGR0rj +0JjmE4MoxaSA8jUmdwbBUq/9esun/kCo2XTOlBCCuYX1E5LPCBxQZIm5mQH37l7M +0n108VX21nW1tAkmZsXiia7VqVnvB+4yQuQgBEYkbTn/otezS2DajuF/Q4n8qG1D +20o5XUXSoHTEDBCZ3R6mSn1Ol95KCFjv/FrWtOQ04pSxEsFUYxj1Yu5l6GafdcAK +pt2QresZEPOdjtjT9Oi6/VulyDSKTcmzXQt6lmldEyI2swmGD2tGx3iMrAYFost5 +MGw9QQFY3N+LZYLENzCtEOHpjIrt6xO7zQARekVxvrFvdV01XOTMHLo33ZUELpaB +mQbSVk7PEDKlIMyIMXBRZewj0a2jiHzNVJQfFVTgG35WbdBSEg742NcGQ8OgHOma +A3/2y068ZeglSeO53LdtagNxKr1JUfJm2QCXUzSuBKdUPVKPtMlGxgdc+wf1c0GZ +PwIZcY6hnBcVEt3ScUeEHRmPbP5g4DoaXX4Ya67rKpKye3aDdHlD09XZ0L06rs6Z +/Xudc5kij9hu8HIlmjV5sN9/Wm8Zn0KePiWM4v/1opqtaEzbUjJSiTOIIIJceZ+G +lEADAHj+ZshBevP28HMiu6F5ejTIWLWlxW/6DVwJo3JS8BmAXBIzEX0louBBdvW0 +-----END CERTIFICATE----- + + +WUS ATML KEYID F761A3A1F408F1090797B87127C2A2397C0ACA24 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAApFyLNrOQDYSMAAAAAACkTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAyN1oXDTI1MDMyMTIwMzAyN1owQjFAMD4GA1UEAxM3V1VT +LUFUTUwtS0VZSUQtRjc2MUEzQTFGNDA4RjEwOTA3OTdCODcxMjdDMkEyMzk3QzBB +Q0EyNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANcTh6JTPU8nPL8P ++Lz14vGWnmKLjhfGHN1JKpPxhSLuxSqJs/7hlNX1IkE4wOBZZ2uTLYo7QzLGtQ/E +xKovOmlJv5vzlM8xH2NFYNwE3WTKv0qTG9OXVkRn/MTMjjejjcitkQH4D7cY2ela +KhfjcfNgBgzkNgQAIgcqndCxc/vUFQxhTcI54UbNC25V1/xVS+G+SqtjNLnsy7WS +TS1Uo/7waDIoEJpPncUQSaCwT7KATwWAC7zs+6T6748f34RDJ0SXDWi03xN4hDTs +5AmpGH++0uwnEpENPwpfUCtSmR8w74YP1NzwGifNpEnSTtCoYE5p3cCobrSmsTfs +/0y7GgF7gLghcWsmFjRS11Rn5vw6slyfjmFTKoj/N1hMEjjimoa0B15xzPGlAdtB +meS17pVcMUvv9LyrJ209UR9BUxBOVW1eyWC67NvK7aAEmcVH1weoEE4NZLVoJVMO +Z7VsM4CrlDXQDkds0FvPv0vYZ/FoQFb+pamZD2saFX/0cyTZPeuyhwLK3rAhdZv8 +JhqEDG4XRYcKnN3NqZBC3/XeICwG593boFGcwcBj0IgorgYSU48BEYMmgJ6f8tFU +hPDPioG+hXMJUPoteLcc/Wb+WlAGifk8e6xcrz/QSEdc2PVOMJEv+x+/oTdjonfl +bXSlkBIg7iIBuQo+/YoR6YZNnAoTAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBS3bkqfC9q6c4/J +OJyMVxu3bXDvjzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAHisXdmjaOE2YLVjRoFkOrHzSgo727h/dgENo41ucpF0 +dLszpQiJpRVfueIkpsst6t1wi67qWlhg0z7SO5xOzJyTxRwCpAaQZsxhqzQ5vN9j +qAPk0R2JYTyJLHeNhc1GwF7FoNpScXjO1ikFWL5FwPdNpyJcJrJ4LRZVdCvHQzS6 +pMlyigYgVsqgKtOGYzUj9PHvFFi5VPa+OFss3F1TULCkGSYghDm7ccVTm21sJd/4 +9JO73Ch60d9tcsvFXaF+Fj6YUBHpPIyNpEYy7IPV6raEM6+wGQ9R7SMUxk0GKrsQ +1quyCed3kCf3L8w4m5FvAZqd00l48y442d3d+9/0zIZlhxT9rpvsHcHCVH99NYaH +3v0AoVpt97D5WI55Pei6ftJzZfBWaKvmew1Lco73lWxnTRCRXAZuGteZHtWbtAC+ +WjewBkKRL02AG0LimSwtgT2pQ9Rs0UX8yI89flpof7ifXw8oJ30mqMID4pKtVjnq +SqkxcA5DjMNoV95+vOetzRYtyQy+S8ijtttf7AZY5ciw7/whzlFIrKpTCCfKX6IY +u7hSASYRi3/BDDfAaXmcZ36hmToDHMPHTlkEEXZyE13bi0zURKeUeUD3D3B4uovc +fx205kBEHH5KtBzy6Pl15UTuqmU/kop90oSAarftndDeCHkYzZufa13p+vGJGNZw +-----END CERTIFICATE----- + + +WUS IFX KEYID 090CAAE1858A3C3A3B6D4DF8978916FB205FCA90 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAATNF/S27VYs1XQAAAAABMzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQxMVoXDTI5MTIzMTE4MjQxMVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0wOTBDQUFFMTg1OEEzQzNBM0I2RDRERjg5Nzg5MTZGQjIwNUZD +QTkwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqKSUbLAku4U2duYw +zFB6jQ4L48J+eYrv36N7GtOOXaJn15RxBr4vdsLoU7T35JMT/pXIFP+SMrxRGjEc +kDP0vmZ5jc09fNivW+KjfT5eXbftOc8ect4Ge2yXWCYJ/SSSfe3veYd9vmBbcahW +r14urrnYi/WnXgYDj0FPXX98B8ZhhI3ek7FJGSLJktNhhz9R9wMh2SgigdkKOXJf +P2E+ofE0Khx6kmxHi0aR0/H+nJg4peRC9FHpGhNOz/GHMPmDfTETPov2ZRYyqVRH +acWLR78qiHiKYwiZYQow/mCpzpnDr6IaNgAMPrgHzztcMa5UroRoR0qcT+auxmTG +WDYZnwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUu4OfyPECLHkWcmFBQOv6O/AiJl8wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQABlK8f +lglB327cavGLFgskRRCxhMy9VM5afOhpZnXKO6nQv2WSnjkorXaXX77labG6nd1t +su+vIOHF4AfGoaohF1h1mE61qxoltgOKmHuex1EVgFkgHjrNl31xPZtQBbAQ0fwI +WRJUT+cJjWzy122Q1Fv59je3oY5V8jg7sTaRIHwJEtvMCzGDzyIAf1jDxoilyPdh +kJ5SezyTVCYdxur8d6ELNn1ON0DZMclG2KPVzN/St7k7NXCVruFr4ti6U0ddKbX3 +G14MIAqM5qQPnoYmkY6BZOWFMBO8FRzhvk0WnYyoimbaNTyRLGt/FrSj7kFndACb +uGvdL28i3bw6ELK8u3k8MJ42n6SUqEXcw0US6sPJNQG/X9X1dKGlIN7wsa2NxSzk +2JUmDfXmZv0oRpIxJxDM3L6oocvIqKZDyU4ookRuqZy/qT9VktYGbtku3hr0Vtu6 +kcEkuDsFdMjtpaenTWKwyEJQ0o4WLNr5LLcfnPkqFRQivpb3der2iaNjulS3MeoG +u70nYKzJhOlSkM5gqmvguEUizafNPrmdrUmTAqq90HkDHnHkEoFFTqKTWV/6iTIM +yZSi/io3HIMfD4bIANjOVgOj7GjBwo9hlWDibXlo8cam4V/oeApoCgYpZfW+9tXZ +I5Vnq8dKTfIqaQWocZKxjGXWE9dTTVcAQmtsAQ== +-----END CERTIFICATE----- + + +WUS IFX KEYID 11227AB228983289AD2E7EE6841321901EF592F6 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAATTnuW8tuPQodgAAAAABNDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQxMVoXDTI5MTIzMTE4MjQxMVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0xMTIyN0FCMjI4OTgzMjg5QUQyRTdFRTY4NDEzMjE5MDFFRjU5 +MkY2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtvaRKgLkWNdalUbz +rzaVjzQWmYfpMxZUO98zE7MUvw8A3A7WTWHzDhrllf85M+ebhqKGVU9NLCOpOmLp ++9d1Tj4Zm/sx6fEZhsfpDLJaj757ZN3rq+FWLpR62EygQn7aT10hHU4V/3hikLlg +yceNQC6oDb6v3+NN8bxNCQqy5ZhBDhRRfxMqUmdmXZS+BmhdIdYrVkinJT0ziMpL ++sC2AyQcRjTmlvjsDPo0Q27c8jSYQheGym7uTmNhyeY7rJlzCUUIImjnvgSI/PvJ +PFLuEg98uAX90tzdQ9Dmvv3fvlcjVoaK59HNBYtje4yb6PI68ZJ2tklF/oE1uq5/ +B+shVwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUvFmfP/5SQowXo/ZvdCQpROFh9DYwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAw1qvE +PT89tMy48PxrjZ6WMnWcu7Ohw2Mvxm2+T6mkh8RH3NMnteH2jCVnRpBoKFARVT6j +XAFycJ5MZpXiDNrbiYUqz87b1BW+Ae6QzRSmXeLlzWQM9TTwC+8zQdHPfIAmyKC7 +l4ZZQ1L5rWOy/EMfF1GFysnIlrn1im8pigCfPfgxAIIefGRcxK17pdDXjlKRGmlr +cXei1A94l17PvHx+Cz1kuRk2LGldoDrYwhhl1iGMkaCVwGLB2UXuUCWA8uG9/Yyh +U4QsxH9V9dPbiTl6HKePuWTX5sNyFtFT+NwQFIraq8xiSYcUEwyVw6TBeJojwphF +EhT4lXGdmgiIcC+j2F9dtkn8WVHGI4iazKQ4NzaklzHg8IMKNbuCDYKQ9H1R2qs+ +C8uL7Q/QeTDOYgG6rTsMk5aENJ6/R4DeF9ABvLs0sVOap6qt3x5CcyF+1bD5h71K +pX96ogNx8dLAEvrMpXkn9VjGF1HFQxZM5MwqHFsm1faTG8MikQNphOmnYGrZBKQE +janXf8iV36567cZrcOM9UrM8iF9QmolFdJe4QcsSslDnQKN3KDgZkQm92q7M6XF4 +7SRichAZh+gWuuQc+62eDHkPu979/p6WAG5fkI9dxMKXqT6VHxOKVgIPfk8Cg1ZJ +kSI7ZF5KT/FnOWx+86fPF3+cb3zjvc0IBF2TwA== +-----END CERTIFICATE----- + + +WUS IFX KEYID 11227AB228983289AD2E7EE6841321901EF592F6 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAgrXM7SPVw648QAAAAACCjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMwNloXDTI1MDIxNDIxNDMwNlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0xMTIyN0FCMjI4OTgzMjg5QUQyRTdFRTY4NDEzMjE5MDFFRjU5 +MkY2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5nYqiIPTt7jeAzHR +rd0cCJ6RCKkiNbIAZqC7iWtmGSIUGMtXz04TBVou8yZlebsCwlXc32Xe51++tmrx +rcgocbbl/BnXVdHHVB0CtpaSHo7pkSqsPkdhDga8FqFXOCXBY6B9mZxDekFd67vO +7KnrFfKNzW1kfWD5iVj/Dv0/jFSvS5ug87P65KkKoggIGlqX839lBFrjFf0HfyCB +Tj5Ic6kfZjnpR1VRzVLBwc10VXW3z+lpPqnHuio0VOop5mZxnMmLeMrANmr6k8MU +jwQQRvpIDgM0rIkORyVJwwpM3xOViEQzE8mTwoLznPAnLoLuZPQsvHCfCJtpAXwv +jA44F3Br0FDYhl1bgz/zj4Tud3FUKguFrDPtAn0xG/dGU3bcyi7MmSdBMr3aRWJE +sE1ZuwGGz3dqFgROMfnCt4qao7eCQVi9zTZP+24AvhvSTd2UNaE3ExnpzPhob427 +cJQj/C1l8070fxIawh3L9vGuzwlgU69pz/o4YbwEB2oIeJ72BAFOx64ZrJdgs/60 +OAf2H8hh3bgZPWzm+h6PYYbgKy0pNzF/9eeDBpuV6OVMHNOW1J3EtFzHtE1MaMAp +FlKRh1TMsI/UXbpFWnSodO+4K6UgGbqFVwvkXFosKO8Kd3Xau7SucMhQtn3ud/6e +rKoonVgkuiir/A5w9PWQRLlZnpMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGCL6D2KZCi1qr65 +vBLN3qSgPstpMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAKJrjkD5gO06XkMl1yoLwUPMP5dgZrHBkBYVY5uDKDzNx +kSzSUIoHl6XhXnT4Y+DPfxpwa2hQz09G1t6/9N3COuPRwdysRwxN+Yo1sKnfcSdU +uJghXviUYxo43ZAm6cRdvIi7aeTceNbmzR2eM3LcWkPB1Tr1fw0ahWGlodTfAQzU +g5xEmNZekVxfWGW7fgOjtxGgzoHSqH0Y8dIp3lSzZwMuGc7wW31lr7Cd+gEIdRE2 +KnrN3l+heJYMaBxmAi64by2GbfBg0vhe0Z75DCU790zkOhQjTJ9ZPFNaqy9nNeOB +IyfAqPQ48DYnTbecapwOEatnJ1ul0B0t0gcBaVM+gvvywDbhUG3STeT87ettCeSP +nM2yfDnBTpIc7oifUXAju38qc3er1/Lrbw0o9Q8TltwPROFlBkbDKmViwvJa2OOg +AC4rfU5eiTjueLf/L0dn32LhUurpe7FWdV0RmrAHTmYlCT7YtzKUpu9rtalbF/Ys +Cz+2MUIhX1+FPmXATPewy9C2M11W0O/psHxxz6GWNLM2REYIGFcxnU/rfvV7Dv8S +SgDYBF9QJhLXuIlZxaelxZUf1LWVoIbQQ1hQU/YEjB7zvAKVyowBnip4C+L4hVlr +qjPZ2K8urmeWX+tSvvpI1FS+yUX1j/+jfAC3whXEP9ryW7/lZH4lqzbdzGE1O4k= +-----END CERTIFICATE----- + + +WUS IFX KEYID 128462F2A0D16CDE1946F1000544B055BC113D10 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAdDj4+ItYDLScQAAAAAB0DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkyM1oXDTI1MDEzMDE5MDkyM1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0xMjg0NjJGMkEwRDE2Q0RFMTk0NkYxMDAwNTQ0QjA1NUJDMTEz +RDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnFh6sqBHMGYfldBX +vZy7w2R717Kslp6JxY/WZ9uSrOQ50ktiCbfPVF1pey0k9ENsGvIn+KC9e8p2ZVZl +Rgb+SH1zpt3XjYOzM5PeaY9gQj827UDh0fTE5k0NW/+4YaY7cipp7Z8lGd8WWsqb +emQLMbPYy5qe8MMbhis8YyUjgivk0ELFOflrqEGNCbjeePwoSyByqTEqQtRujKHc +gphpj3Tgtcb27T3uMobsM3r8ty9MmdJQoUqZwqsG/y7e0XDjeBUYFjPFIsrjb6nL +CeatL8nm7r339j+W/VYbx574fXNgozA2MVr8Wbqz+y/+8iVKsCfspaWrGv7kg5g8 +ykpXfbBDNNvRVytEBdFMgwS+2XHsgQCAGBubyYkPdQ34TD9hkAABMzZ+x8sJ6SNK +Ldg8L3bW9d4KnWGdHXzgoFe5urQOpRtIe1yUZ5mQpJ8n4MuUmNzgQZxc6L78eIC1 +MhvmEv76XGTky0p6/0HN2Ej8vlMnmw0xU0ssuLiKxsxOAr/hTEQNdslfGw8Iq/yx +YWt+GYhkdTSZcbWe4eh2KCmTlsZ8/FRLYWtRQgVVXWM1MFb8bZHwXbdKEJoNLBt7 +WPLZX+EVfvYAnxFZ88b+kxNJbRyS0IQ1MjOjSGyCyptxv79B4BSU8gpqXeYxB926 +5/wr7asqM77JToVcb62dF7FJc1MCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAcT7nbjzwcsUF3M +dK848DpOM1aVMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAEr1D7CyRL9GO0DywRqzemvTQYXQ6S+FRXvM7se6TT8HX +T9l/vmc9FTolob6ThjrCh5HV56iNvqv1MTVboHFIgiGj60AiMW+M77laUz7daCEJ +GOU0P87qbifJnobTlScAu5MA153cxHJSAovJYuyAKDrKdpWWJTuCesmwSKPvA2lD +b0yVUrlk48TYPCxxar/AcNeVj6jIpKDccAZfZWPrLVBMVAUYxVAg+zdsvmRKW2+e +T2fQEwxRHDEu0pUm0KI/E0F0fIk3pZKUbNUbjm297bHmMPwgm9+kqcCVUU4rU7co +Qcj8gTZIA1xNnSf55Gp3PRbE+SFh/VEmZscL4nlzz3Imo7TWbq54NL+R9iYmAbsY +x3EJhbvoC6jn0eM44evCupxaSQ249pijZGNlqqHNcA74w984ajQsAXq6q/ja7OSw ++7jn/zKPuTz+hRx6BoUxGgqhWwaQQu56sJZCOgiubdqNF9FT3mtN9tJ6X3PLqYet +haGa4dxRL2eyi+P2Mxdt7zTzjBqltcNIhK8I3ShuGKzSizJ0lFQPVhsvhpsrVL6q +Xa9bDB9u9+tclEosUFzO2MbQomiB2koAkcT8/tvrayLBUFmZPCfYGVtOh3R7czmO +YZGr4nTXWPs1vtJhdGS6cjAUlFxI9EXtuVA1EPsr0Tw7JMgDuHRCWogu2SiKuLE= +-----END CERTIFICATE----- + + +WUS IFX KEYID 1BD645FC1F90827C283E6CB526859FFAB0E0C62B 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAgFgCuIp1GmvqwAAAAACATANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDI1OVoXDTI1MDIxNDIxNDI1OVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0xQkQ2NDVGQzFGOTA4MjdDMjgzRTZDQjUyNjg1OUZGQUIwRTBD +NjJCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1pER8UtpMQbC4YdR +bw3BO4XnrV+YyKBrFlJaUmyoJoMnuGZNOSHv/Fujke7XmYBZI0JKJleOlHalRB6T +4ATq430CPXrYs557BDgPPdyPk+7xZjdnqLtm7ACEQR2uw70rjpPI95wpAkCotqDi +ApuLyOSLe46p4zwUymL6alDGPnDjIfbHjFHENYFYNhIwOp7SRi7uT2OZULdzmc7p +k8f6ZR/gTdHqU1d2h8OFC90HRSE0d7SdoHKOPmAA3NcCfPsyOsIJRiivbf9zUic0 +6ukltKh2X34jNZm57egXWa9mFmc3OqBR+REFBPhTHzP3xA2xB9vQrfuDD20mNb5R +IzHCG7TyRh+GcmaB9aXX6pk47WtbCSIhljGCaFyVvXxqBQI7W/Uw4X3YULlH/8MO +8uwB4BS/cpN9bAoBYmD+brSOb1X+q2kXzfz5cNJtHzlpbb24fA1U+sLr++v2diPS +wFzNnW7Tt+4URjQWpWdo0QzsxkJz5QIWZ8oj/qlDyfc379iU2jxAPDxpXcr3T/qZ +Ds6o78/pbSdNgHQS3VhWbpWyzwDuq7O6bW+hB2W+f2rii5LaszE5I9uFQWgc/GT/ +aD35K/Ya/4Zs7l/2BwER448jhl23VBoLDtg4IFPD8DUjaaOA/Ws8F/vN/W9sCcg0 +o/kXczCAmBCoCy2Ve3WvTveWgJsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJd0SIxawE+122Lc +sDN6MWsCNLRKMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAXCaGsenhayxzJ/ehPdqCMvTSA8UXkBKwDXOi8Vr7WZSo +FoEZ0JFldL6OpDqoEkhz+E8fEEDO/bzvf+80IXf0X1CM86xFkQAJg4jivmGdNfjx +O2nIJaLs/JDiaWRZNvLFI6MVxvbfgFy018Jsn1FeTd9t1zaJ7hxOCd0N8MXoq9VI +j2RwVcka8qGUve+8HcXKpVuODCConi9kpnh/4CDaDW7JHuN/mZMtaZVl5O3ffDqD +G+NgZiSnpcvqtNU13tqgOafKlH+/4gY/4tBgQXA9cJ3jcrIEqV/vv10JlF3754nC +X5mB3xbx7Y4qAdTm4H2TLPqtFvM5kN5Ip5JN3WJWA96V+lvtclUA640zEtyqW9cn +ZvRn8q2jcTa7GClKvbu9rXetSVpxTftpHjLNnMxUf9bnEmPXbzp1gBTjLAuRBA61 +M0dGSStqrQzPQRu0tMgpDhOVb0+tjPHnuAKm+UfN9DHE5s4te/CMbnhjD12RVqkj +EUhAjvNoRD61HYS81nKjwjCZmiy6oecmOtwUAH9FBlyYRnGJM4G4qaeeDEztquEf +ZmQNQP6tNkFw8Gb77hm4i1A2e1UBh45ZFXAFQRO6ycs1BE6886hH3BNlWNRvd3Q0 +cxqYiLoH7vEZJdWVArmka8koenJ/O5BNAKlm/r5QMto5GM0ad1L/UA3ncCenTaQ= +-----END CERTIFICATE----- + + +WUS IFX KEYID 1DDE0F406D122C3E5A4F861F94876C9E1ACDD37E 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAcowKngQkgopygAAAAAByjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkxOFoXDTI1MDEzMDE5MDkxOFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0xRERFMEY0MDZEMTIyQzNFNUE0Rjg2MUY5NDg3NkM5RTFBQ0RE +MzdFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4A1m90/9Yd6EEZjo +EiYjxalXanwQ8MguyP+PxQ2uC1kFt5oXjLG2zAU5jxUNrLY+zZgtceaHamYuIRMK +5td+Xf1u+gu4ObFhGmNvXgEN9hNV4qTxm1cBo+wsxJ1EuWNmDc3xDX4itFr7ZpNR +2NSg/YwUH1D7X5s9k8r0TDMSQgYi7cOOI93pwmdh8J7InC+Gu3GyDjzPAfaxnW8C +w42RW+wjzZSUnfZFgx/09HfhDOAC9GdkKVHiDwqVI31G9ZNHleEIt9jClHqG0uVR +gEjRAiZamU0SWYKSDN8DgWSuOqeMyvjB1N/a5firnqeFc/SwIQ+u/L4lPQshRdrx +RstQ8XgiSRzig0BHNBvry7cWzQeeemhv4kCg7FAAEfyWchg7FIF9KuAcTXm1Qyd1 +xwAfKWaSN0xr41GasbkCs7O7y/cvpDycAFVwxBOXQNjj5dskZ9tBcTu3VSzpIMto +pWZ0vXoMpZEyKpSXJkIknNrsbYtJ5MO7iNU98h56Ov839IpkqeEqpclgT/IEBmPA +zMr08hgjhUXUMF7caD4ixj2MkwGZ/FxkDuS5xiPFBIVYUbDAnx+S+6hgdyUBFBdn ++boNq2oS/yrQRK3Grb4H0FA5ekOwr75+1MtFqktZFSKv5Pj18bQkcrl/H9HpcRoz +hP/dIBSAbE9OXKLavnsSAfEAZH8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOvInI90m62QZcA/ +dZQEj28FlSRuMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAdFlJi1BieXnsZzbO4qPMlQ1AhqlsacmmGnprESTNuI09 +hsN5HeEu4Jfb1T3iZEap2lRfaWFeRmPpHm4Y2BQa6tKVj8ef+nmLtBep9PojqlmS +7PhjxRjoKgSiNI3s17c1ODLhdkOKVUwHrg5UKNiw+rfbsjRQdsSbU/SQ8I7fRHK9 +Uj0wIFb9XSc/RLdGnfgl/EjqL8GXbBdyZ+u+MMKVw+aUyOsMcf5kdd6q/Qx4GACE +Mc6/u6Cno0XCaUzSk7mrdRGnKD6SFYI3N6DwdF3Z4jn6a+yECXAcweW9v6a52hwM +XPLP1b7QLsvfQ6zcY5Bq83mT7q9RtO1f+EdvTI5m9DgGVh472MojTNpXWM/yB1TM +P1VwRHRLnDh/LuARIVqtoN+9WdWnOJH+TRsWcKHzsL4rHu0l921U33vnDgUvCYrD +hJSIIvPjHbMGb5JU+7uOKDutPuoa30BMWum2xOaNV1IaOJgDSnTBKZWwc+JUWjeR +sDouIxrMCFagK7v3pksvaqiaI0WKoydSKU2Li+bf9oV5iToMAKTjPmDad46980Dp +yeLdVaAv7pvdoXw2xDdof0B0xSBqzxiavNoCuowfA3u4iqZFEMWAlaXj+gZswlY5 +9eS9gfRXx7Svr8C/G6in7LysIvModjSCZg6U2130f9huPnQ5XIQaeka1K2js3PA= +-----END CERTIFICATE----- + + +WUS IFX KEYID 1FCDFB8ECE408675D963E5E5108D55C984DD797A 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAApIOLjr2m9g7jgAAAAACkjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAyN1oXDTI1MDMyMTIwMzAyN1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0xRkNERkI4RUNFNDA4Njc1RDk2M0U1RTUxMDhENTVDOTg0REQ3 +OTdBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArxE0hDsXu0S0wIqM +HYkp/Ua5pI9viugmGD6QwCJ6mjImb+963Bht4QhEHMDXUHsEsedlzDWYcOXUUt1M +TPqbvTS2wvdMuKZa2vTHryxikkZpsGBU3O8WvqzCzw4Vei1Ju74U5uM3YA61bVfF +dMAGKmtPpVaJx+sCdGWZh8tqmr9W97yYATKWBeODwjZRL29oMsvDBNlONYPj2TEP +jHvTgVZ0ExuUTYHKWeVaXCsc1A7g1mgTdKYa6T/Fx5Dm7oyIVQ/yjuTnBFkF/wr8 +5FVOlN4HqmO9hv//iCP9jDDVX1F3tzVPVwthogDspUGjhRZ88G8G79TTtJi5ZvzG +uMyQlZxYJV9uIH/P1yAMJAPY1LKQduhpWKDU+anB/DQt3AQZ8ug9qSe+xqyOPKAt +uRqVEc+xJK+vockjEBig7g4XPvhKIPUa9RPEpBRdXS00mDLKFgBsbf5fDkxTpBhj +37D8V9rgD4gYH1+re5I9dTlQ9sW4YN5f0KrYSb+p69cPYoFiu0gXeBrXFhfr1je3 +Fax/tR9cH1bKDOoxvI9OUG4mJUaTRX+FDGP5k19K2NJ5r5dOGRPDzRuDOVJC8WYG +rDJuJjcL79+smirGd7IaaGEXKIvBhzmVDeH2lE4qeFynMwrz7mNhFhdAM1BRps9Q +QVI2/0kwQa4ckJoDvBxGQ41SM9ECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCOIHx+GGv6n9C9c +vkADRQExHGinMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAbYqDhBonyfTaMFW66j16VDZvFqF6Rx1MkUAO1Bpm5ucG +n10QK7Zi+uIGpOp9PqmRlMJTc5mmS/CD7Hkm8R4bkiwrZGlQhUJZN8MTSHJ5cW7T +sXWwE6v6kQIzypapSJOt1pgfNBfqvbLYu4e2bEk6uk9FAzE+3GN/XVotcYVIVant +455oQnwqq3aeaoB62vQpXEBepkRVZsbOUpzSTtnBSuHlGvav4icOcADmymlSq0NF +csc+kR71bwDQD+xMXFBfjcR0nGAUIFBA3cGqKbLbRiSV1HSE58cKmI7WGChJUUhF +VzhCcDsfvukLF/p+KDAH2msLrkAOFd0zEtZmZkMtDL2p2YbCM3v2t9+7hh8/KH3f +viXXN5ahYIlwEOEB9T75OIHDdco4n5k7RU9tTnPJT9yGhyAjIJKe9xLBI4BrQlXT +fukmveitBKLzXuin1yMdYbwr1EDDxJgIM5lfzwjYRj42rpkwwu6M2+89/+nXNkhg +TNR+sDbGZR7a9v4AJfpuDOJMiV1VJNjt+ga6Tnxr3TSnOiAeYPdHYkANXbcAbCAR +O/QPBG2G+BSj58YlWsA/gFi5fJ5gxbq/mG5+q1t524Lh7OK81ImoI0hT9Kyr2DlH +W9ck5vRYqxvXEvjVDXUh5SaYBWUxH5uoswUR8dXNcfGb+rSz6sk+9sMgQEk8x6k= +-----END CERTIFICATE----- + + +WUS IFX KEYID 22BF9BF4978F4F45A4E9DBF729D8A08ADCA0A82C 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAc0h4J6wda8bcAAAAAABzTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkyMFoXDTI1MDEzMDE5MDkyMFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0yMkJGOUJGNDk3OEY0RjQ1QTRFOURCRjcyOUQ4QTA4QURDQTBB +ODJDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnea2PJuAcZS8idVa +wRrzYa9Vc5+6C5G/VGOk5+AbuDxUcI93gARRtNzSGgYnVX7ShDleSggs/QkNkZko +kPMrMl/S3WpFTu/BzYz0uOIqu6CTrrE3Fh2NIVrrc4BqdMbLqAxNfJeqAaluFVGS +YN4/whxqkeEKJAZQ3nJM7MDQ05GwDb8Qk8b3oJOVD9O2JnwoZx5XuNpRx9Snr/ho +yZxWJzdLv7WPQokltud5bLDhN5Q2vi9t0sTNGaCGHNCW6f3ossoz3bkg6ZZzoT/r +5H4DGVlzbfZUAja6b0QEXVNiMFqc8DzbxCu42IpaiTlwzrwc4/O+Y7qecfp04uz4 +/4vWQFWDSFn263kDeUh7d6lAe/gJW2huV2xb3dhGHpZeWndJOyprCkEArlAxolb+ +dnEsMLE1SaVLXpAMf7/piE1g/ItL7Zn/vmqvrYo3VUrcVBUsl8I/lqOxiuWTA8Aw +jUxjLpKN8AyxhuNXQtZ+U20pyVN8PLYPf2JBgK2MifSEgENztEMsPcExmXdr24xG +Bdqz7BcIfttulIqQTYBNgTdWfjNn767E5ZKhxciaGUrtq5mj2TShyYh1MqL8tgJN +nrXb8pfNK/4J/TZnMo0IxvQrIWPu8yhRNVw7x3FCCPU0GvIzMDcHVJ055Wl1UjB8 +KqVQoByhXkxg4AV8RsQ+Wh5tRp0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGCPmbkQ1gR2SShs +LL81clBcj7/zMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAJYxq+i0pajnGan2MLOWsr/rAi9IwPEckFaXigFJFCLFi +8tC57qT8xH/5SmYizFsmB01FSnpwqVH5XC2g3HMDOp+c42r3uOy7JWsuLGyX7NWS +gJ6ojQ6Qrp/Uqv0NXlWKTkNLS5fwrwHajzkDZTZy87urQgxyFiCBZ//oyz643vp3 +uFdGcb4lduA2ICVlUuVNaHVz0z4rUU6zyuTi8S2d/ySZiZXaVjHmhoTQQ/99muLP +tkC+0EdXh5bU6BtApjA0teitpNhcAtQhbZBZcpWZtqNHKLERRGeh6gt5r0GKmHno +3dDwYQtJ64A8DvNojDVdrvY6jC9lJpK90oiS1TFKFkymv4xRmU8LqdpManUdOkMO +to179FbcwSxwFvPkd0WkAFdA/X4MKc/Xq7b3xG11bqrE52KCu3VWUaNuPZV0j3QB +QkmF3Kr0s2JgO3I3S38XEkS8EoQXyCEbSxdFCgWuDvG/Vp9kqbEak7D3YosyiKji +Dxi5E9+1wxeIqdhTnSvXXwN75Vr5cltZtTeGMct1D5nll1U/FDP4XaMuqYwx/adF +YNSCBnr4aC0C/S6/jW9UDEksrgnOgCih8sH+a20RALDBZ4B4GsGr1orwPds1o/zy +xD/ePQx51tP+S8pnILLpVbvTlbMZ6m+kGPvfls4LfvA4kLB88YoRZO1m6hWUtik= +-----END CERTIFICATE----- + + +WUS IFX KEYID 265CF32470FC4D93C7022FA34AB4C8087948454B +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAWZoxlAjxhDQHAAAAAABZjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDgxMTIwMjUzMloXDTI5MTIzMTIwMjUzMlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0yNjVDRjMyNDcwRkM0RDkzQzcwMjJGQTM0QUI0QzgwODc5NDg0 +NTRCMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzTrLgwWtehz4hmB/ +c3U0y/OqF+ToWshxq8eeaugvjTKXTEcESyNTuE/1dtY3Gu+IKZQ9a1TgDXTMR8MP +kOlR92OawbvKJKBCH49pxGXNsEmW5AyA1oor/OCI0hme0Hgvwdd9q6hajmT1wBLV +jLpP4u9D8tuRX8bqYhh23A4ZzoQ41p6hTCNH+7GMyd3jhWXB9Q/QccMFcWVRMbPz +W6HJY4IprW2rag+/CYmG4gqbv3grhcoin39wFAGTBEl6Npv9ZmS1fhWCMyYf18XH +ZsFDwt5+vC77s6ljj5vZSMDo8N93MFk4ET9uQ31VwuxIVTWt/TezrYzFbTzGxwWw +5UH5KwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUNjCypWk7Xitu1eKevIgvKic5dxgwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCcTlIr +Gj3mQkL9N8DKUAmzTW+BpT8WftbIOhtR6WiBhmJM9wrOTBLKyDkmeSUFmNXmD6MM +JBA6vp/JW+kOQ8m/8JC5/+WfgftPAeXxMEA8tJPIuPLZ6574osg6YwEd2ScRGbqS +SUuKYBs4p6x8GcQsxIlnjCeHJTIKy8Gw7qXJH78yqk0XGIpih8ZkyBIYjawbUAzF +/TrpTU/hnl0a1UTA+RcBZj5b6NY9kPQYwe1vyramMXSMWmdB1wK4tELHSONLQXLe +C+5sFP3CONrNVjmXzLQKpupW3geiaYBJGuZMv+ORjTetjwgvkWE6wR2v7VOXTjvr +LdcDtmU31CfQrnah7iVPD/QZSGcgdqglnCDQAR55a3NXtxpFghrRCmbCziP4O84c +X/9DiH+yF2xPlXwSyODQtvzZgOvr4RNiUlzBtocmXoQ8Nd74FsR91mnT4Usl+23T +PfKTzGmyyf1/77jNP40nllsk3NdGZs525yEi9ou2lYztIVkhBFq5voxZXp+qLXjR +FlEov/yT5QBTlcVwN8qWDdvmnNEt3BMzH8XOusZIxyXuUnmxM6D9dl7CyTRH0Mn/ +UmKw1tiFzjhTRPMGMhr0ymVbcH5Q5TjircPg46wU5hv8k8a5RXW9uheHBNoHvwIG +KM3bt3agSyGB3kF31kGlF4OQ89VOTQxIkwfBjQ== +-----END CERTIFICATE----- + + +WUS IFX KEYID 265CF32470FC4D93C7022FA34AB4C8087948454B 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAgj5h3O0djZF0AAAAAACCDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMwNVoXDTI1MDIxNDIxNDMwNVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0yNjVDRjMyNDcwRkM0RDkzQzcwMjJGQTM0QUI0QzgwODc5NDg0 +NTRCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1GDPxa2D7KtXxIkr +GPDtkUQj4z2ZfGDwNPaBMdBiUPkAGBfMLZMWGnokp0j0tEyBMmTCCYFHdBjJK/2e +Ij1KHge2LYmRXybMG6+l6h/CgktjR9JSAS52a9u4s1UwiPsFXokaC6spz0JN4iz8 +wCuh/dA7DSlmLb3pBve4V4AS/cu2OUfmmPPw2pBGfntzRVQ9wwHQN164YoxxaJKw +hxdl5X7ENoQF7WRYpQnXihTiBelWKMTDFceJLb4OodvewACVpCNTaNi/DlEz1IBE +p4AWD0Pae1HTgiaBJHWYnPOF+xQUeBUbsxaFH/gpNPKFkmgDsx0w0tSH76ga2aOr +FQGWGN68z2mKvm63US9m6Cux76QtzQH1z06+U62SLphhHB6sWi3p+Cq9liHzOrRj +gCiDcbjcSZwgTYzm8vJ2ZL8zq1MWlUlMIxmsNJGd3OHJV94ZdvIZivRxcWYNxoaI +sqwbDlmNfK6rU3jtfcj8qStbTXXDBP5JEyZ08UKDkZHrogAfZT1VJMafqSEbu2/I +TkSiWzA4p0PXkoZE+Q9E2ayC4733qkuWYeSBiNAm1a0+B6hw7hO6z3Ws8pP40qIH +1vpDXOTlMN+LEZvowIoc+IdZOgm8Iiwo73C5M1smJETWmHFNHC9PHfVO6eHOupE+ +jVPUexx5DAjW3sLBKg+1iph9fl8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIMzn8xgPX0jhVub +9bnuSueoA3x6MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAbwL7RMamL9hvXexsTl2wCDwm75fDD0ViVS936Ds5Cnst +aQUoDFZuQZzFQ8C+8ckKu13au9YUVFcH82z9htzl4sEZwVK/SLfC2z5e60te5D/k +0k/6pvOJKytB/rIPvI+D46iRVdp/Lu7w8YyVmph54e2s4qjfNW/5f2+7M3M+tgMT +BCUTSdZc54XisaQ/17KK5V0ZUg19Cy1cGon5OGspWeCmxnqSrujj2duJV0JsfVcL +JklwWdD97Hq8THfNq+WFbnXs+WB/TAli8oawfOCet036C+suzrTUvRFcrpPzvOOR ++8HgwGyvjb+ASPCYjdYgRREPqd3kLiMg1TTi7ytMnKna+xga8qnsdp4ZUh7TEjmC +Vr6F8G3r/GUgpKno9gIEWEBc2pp6wTzDYwHTbYTvaZwWS7nWMPOXvPuivuECvV3Z +G1/aKIfn/Z8ZrFAS9iWsX4A7S2d1lwxOvbRMVfLzWJchGNxI7UQ+H1RRZuXUCujG +kwFfLEBc8Y1uvMDXVcSMmlSLPjVhkpb9SJQk+am4sw1fHDjHk5dF7Juukj705wQh +Ce+PR4Zdzb6BWHTqX5Z9xYr68xb1zOiTbAQgN/C+R4Ru2+O5KRS5h0RdSS/268Cc +r+0nbjjtzwAk0+IB5IF8mouxc7jvGths5jz/cqwE1u+yLP0rUDeDac+6smGAW5o= +-----END CERTIFICATE----- + + +WUS IFX KEYID 2A4A698325A1B220464EF009B01892268B25F84F 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAf0SVwqERLtIBQAAAAAB/TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzA0M1oXDTI1MDIwNjIxMzA0M1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0yQTRBNjk4MzI1QTFCMjIwNDY0RUYwMDlCMDE4OTIyNjhCMjVG +ODRGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoeBzFw+nc9MIUXfr +t9870E4YZGtFnYquR+W3nKHEp1zMbaz6Pku4zodzxR1nnZSTniZUr+NTUfONbumb +97cFjmMHXzfbTXFWUSqX+zP2LAxGUBKuGZLIq/FhcTSeHjhUBQQt5ndfPf1bDDVI +hhpe0qid55Wpm7qf8BjmCVNTk8sK01VYvnUSolLwvaiGRz/1naT6KtPOHmOBtbA2 +lkNp74tGgbkLjjrY7sy/V04LTYYdoy/tSkyqq3fFlH7ZoL9qMXC3o0hwc+XgBVm0 +Sny3la5UvUPhb9TKYYTCa7rko1IXTcV+LkLJ/djal443zyHUDgl6o0a6QaZz1HhV +O469ErmClcdK/rInqnnUpBeGzoNExzc62tlRYxQDXw3zBE0rCGnH+7mqao660iDs +oUHvDHTVn9Lavv41Nas4i8WZWGu21+Vf5FSUlcIdQRHooRYk3MnGvAav53vE9TRV +b9NXs4xBqrc+el55Qbh9CEwRz40O9+Cx4ji8NFW5dEXNg62mInRvev/w5pxP6Vun +Md8HBhf6dKHJ9kQoRBlNDx5WOh/o79UBaq2q9+CMiY24qxp9asrLzgcIKfTV1WTd +oVnx3C0+lCndrz9GE0el0xFjHfEXVyFXkNr1Iw7JMeZbCY3nAiqMNeG6WLQ1tLlm +eksecTyBdJ9PZVkppVWYySkm7MUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGSbUgIygx09nMcD +Py+PGDOEqNVzMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEADIePek7RUcMqizjuVHuo8Pim6hnAi7SK0LWYkIv29S27 +Pja/HyrIl3nQsKT4HueMoHpdX7GJab779FTPXc3WXvZ/8QgQsOUMF1XxXQ6mnToo +cki+wDxW9nPF1nsFbIgrFCRWsZwh0f94wWnWMtyiA9OuMFJqa3ilkMwNBcSwVuqx +qiERn07AFYAIycsSRGJRH18JqEb6cFqc4jhTqCmNiNoLSZtOXkStnFVmhpAprMjH +AmKYaTsj6ssGpdUxXiY6f4a6YwHNooVJkLyjzubScgfv/rmTWzCmMxBvnqJ2ZlF4 ++CvJG+Icdj+tq+RRPmFrbV8HzamM/2tAVPS01BhaqS7Y/cpJbBfRrnb13WpcApR5 +0jjGLQY6fHSU7OqTuq68e8ucQeKv5ZjXv1gxtbEvzTzdScDkpVM4tPkJrBzwg+An +ubAoSNaysZt3KbALlPYdET7MFBDsG4Sg96X1z3AKG1sebDDfm1jLZFmclPR7Wuww +PdUQzEkhORsBbK8nFU5Dqgt14kd9Eb1eJSvp9h23bfd+To/ftvXnDUzDSCDmfZ8R +mcbBql4grb2a8xRD3SP1Ss2vv/9/RIxzRrklt+IPnHI1w91wHEN/bZo4eix92YEN +/f5T9s1woSzzB7CSzdx1pTVtaG1pBRKkfxMl4TSumuq8HcZefKI/M9LzOlya9Xk= +-----END CERTIFICATE----- + + +WUS IFX KEYID 2AD70EB90962C541A55E2D15B85BFAD286154F0D 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAActRidZxXMU5EQAAAAAByzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkxOVoXDTI1MDEzMDE5MDkxOVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0yQUQ3MEVCOTA5NjJDNTQxQTU1RTJEMTVCODVCRkFEMjg2MTU0 +RjBEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6Ck9qZ+E3PpfGl3r +PsxiVOH9+UUukSbryND2ONPQNqw4xP4Pm//3qvVJzO9Ku4llqIGkzpYsMcpvE0Xb +WlBQo65mEJvSAdLiAH1KO/HchiDoj31skLpu6YByrd9bmMuX8Zq9fG4uekp6Lm7G +P66mBsF/NH1VhNiuDrugvcTeDB4b0aYE6fbszX6nALMtHiZvdsqBdmkJz8TVrObW +gLoDnzjBn2YCcri2pANgrIHmGFTUg7dM3hQzsRtjACPu0KQQxsn9qT1ZA1rDnk4y +4uXnx+MpyOh1WKzVGpyNpL7sr+9PlmZFJHmg7znqHH7OpGMTYKuLiU3KCXGqgM1c +VhOdVX/r3FAmTCQqyqy80W/Aodcg5uHGu3MHqMlXD0IIPh1kyKlSA/XHHgxvWh0k +4PRyc+ls4MT1cae/BLGJnFtZ9FGA/CgPZG744dUfQejdXSRZ/Ovp/Fmmb5XHfK7d +9lHQMfchVmtBNeJqE5rdL4Tzq9Hrd5WYcfy4PK1PKx2+fRKWEsAe8DLmtWEJmFTn +u2MGq/wtCx4+B+uJCCVx5xGmmnN2AerxCbjuCPt7/ewbBHAsTHeBIxTgJvlUP01L +ycdDhfWQhCMt6nfN0YhU4sIUvRsDIANprVxGTxm9m1WysHcyO8b56BGQ5Fc60MFk +PduANHx9Y9vOtefSYIccjcCsa+cCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEP2AapT1D/FQsyt +jc+ecj3KwTA5MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAmUVundAK9xi0Xzt9eVkYrRDv5vOJznCkR3V7CTaQ3lmC +D/pKgrYYjXsiOicJJ8xzQ+VaEGjNDO/Iv3UmVphYCxDLFuDlxb+tXkotA1ZhWGKg +9kKQNwdUaMov2tGP8SPvODPFnL3C6Hq8AkxDmX2WiGZso5IDLpDOuA2+CUhkOAzc +6jwbmeTLTi3qCnhwOqqu620yRtIP6mNjsGe3EzScJ6EoHy2N6hCc4XzcAQuhzg9M +0f+h46JZ4BLPg3ufNSBmn87DPtnEc4VM/6dv6BEaidKSD7My1gcQClxX269zhWNZ +7kEN3HTfUBlKire+urkg6ktxzjhM871qgUQfOyJGeVaxuMlG9TxtVqH9RVk/W/8d +jYoF+2KoXcTw2hHDiq6mCDEW+numVsfQjWvQrzjjuIg7hMJNUVgzL9WonWs3M9UC +tHWHzi6ovzZc63y4DoyOZ4lvmGzqW+vLBImmpus7aOvOrZVgdfDCttW6ALm3gSxR +NY9P4Kw+fiSAQREMaPo3JipB5IXLETK5YhW4BTNNfCec/GGRmA1tcNMOL4QWJLnR +s3LYf7Lm2mQ7t4P9K+wRcg3I0MGy3KtPyJ1Q4gFenX5k8i16cLOrvgntj91CddLp +xTBRg0LBMfEEROZDsub14mhpFQjq0IAsZ7EaZS9PekO+iRHXmmRvC9YTG85dzds= +-----END CERTIFICATE----- + + +WUS IFX KEYID 3735DDC8E300B817AEBE03503A92EDDFDF1AC71A 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAc/X65qJOXsUZAAAAAABzzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkyMloXDTI1MDEzMDE5MDkyMlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0zNzM1RERDOEUzMDBCODE3QUVCRTAzNTAzQTkyRURERkRGMUFD +NzFBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA20CJ8D7BvcMUsCjM +RxFmlzXh/kEm9upKVkfbmD15K4b3E/tXqQ152HZ2Iw4mALen7bhHZa1obgAdZ8Aj +6z0hxAdUmtM2bB0qXI26D2gmCO50tuWi0QRXKs9e2zFYW+/us3E0FP3yQaSj1zA4 +3qBiKMKgWQmbgOZQ/9JtVMOOVOV2VJke81ufnNDfM4U730OjZmp6gzLKqxCNIMPy +JHP2SvIrFMyqMg5A3F8iWxlew6NTT5io9ahh61NyEN41oaCdzhqKWOS0ApZkD7QJ +VQJvetaGKemxc32WIF7q7hOa2itKz3DT4rQP3XRymMG+ovP3o9A4Rq/3YWYIONN7 +BDxZdGCUoJBKT6P5Om59Mt6Jp/4h4taeslUgPyLrTnVGvk4kcDscYiCcQroeQqrd +hJ5MAMy23PCGtkTBEUsHXpIMK7CPAjvFMtbJXglTH9wcvtBl+05KDVDjAyvSlZep +YpOYw0xEUKMpkWRha2rIV/6AAspm0LqE/Wv428gZjmN7zUwPCQAKU/rMSw2uNew+ +9Bh4bieshi7FFG4oTw8hVb5dRHQb9kQbCgm5vDki89EjwdB0mA/KpEdJ2RWjk0m5 +d2Ppp/O2KWNN/uN1iMYD5ucgOSffy3ifdy/BShOzSSaJ6qM1vFm9F1dG0POOB+ti +AtCEMgEeFf8MwPGEAc2OoooiIdMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFO5u7eHUNBfhlSMk +WGLP/uVWieo6MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAIwRY0NSEd9J6bakM3ze4uSh4CvK71fAX3dmb+evO/uV1 +MZGmuT23LsWqpqcih3KjMlEB6mJgwWubAsfrb2MFdu18BcDqkolQanLvCJqtwFyc +y6H/bA+0tIgNl3+ndMGJZawwEs7HD7VnPVtcdWDaK88G+qxzchesEOOxx/7H2UZf +XrJ4NNZazAc3vuMRkopJ2o93WOqIaIcFefTR0pz9WD3lllgejuhyGG6SFAROiOGM +9lNI1Ac+RS+8NINKRohgQWfVwcDsA6IJayet8wqYSUgpoBSnNYZ1h7u16VKRd6Ym +fmPvdI4OgiCeYtQz9o00D/Lg2Qc/3S0qZLL8kXFUsDBsBbarB0zBzhILhpD0qKE9 +U5bsX6TQDrxjwty4lQt8SSem5YsRcWa3Jxm8/zT+Rtf7yfzV1jfNd0i7ZHbjVPRe +Fq5/Q7GGIcTCQekPeY62nSPe5Z5ASIH1BEoAY8v7KRX3mKTjpvhqtLX8RaDXJi9A +2iGekxO9eIs3EKUkx1J+s2G9BBVKmDBRp1kHoZXpS1gxpCLd3WeIQK049n+gwlf5 +/YpX3AWx/8Ss6tmcEpJJEisYPXgI1kuYE1Ll8P4H5KzWfUmvVOSkx7keTo5mu4dj +xewkt5OLMcB2+MFJdjrUHARzxjPEXwB2JWAvJuWVw/M5RNEqiHn8XxxNrDMwT7A= +-----END CERTIFICATE----- + + +WUS IFX KEYID 3893CDBDD873C4233315E1B13BA96A0D23CC10C7 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAArLwE15y9VH0jwAAAAACsjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0MVoXDTI1MDUwODE3NTc0MVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0zODkzQ0RCREQ4NzNDNDIzMzMxNUUxQjEzQkE5NkEwRDIzQ0Mx +MEM3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkqZCbFkG1KJNQXeu +bdlfHXPGIu7+toojSBs6pf4T/bbYTvDyVHdZ46H0bOpKI3C951CoANI8J+vrX7Bk +LYvF/aleDd9JpQM+jc2kfhGx7skhArJNKui+JzF/IfJPHIlKPp+pJEgbiZOd0PcJ +ge7XmX4L00Suvu7bi3MH4JTH4D90ww7+v0qx9pHKgxgR0CNU+A6OqT8jhY7ucPoT +/s7x2ubukAgySssEKdPCypFG4wpTe4AiYa06jpaia/9FDRGyVr5GGrKDHhrxAI29 +XklbnElP8cQUrwCQ9cQHb97Ah4jczp4bbKnVWrG+mVYJpv/HCFUJ1tOjmUgvX+tu +5fzO5+4IrDQallIg0xQJysmGP4Y4/ngqJTh6kV7Ly+ALQcsA9XpcGiEXa+LlxePN +0go8gj6OCCFQOhIEWPaAUCYIAP+L4GjoEWCbfttNc5ydI4hQs4jabiONlUCU2hwg +KsTiK9lpGZKDQmUG40IXZqQYy48SAjrZypVWiCXMIpCJKCHUDB8FlFd5/09WZhJN +7ZEU0GLaan/KX4q19G7+rze2GsLAnztHkMI57kJrtuDe+RIOT7vNuamNkxLbKYhy +7A8UkVOKZ9Rb1hbX/RabfemLA4YtZKbEdymZgGZxJRJasVFwQOPuBkeqOYm6RpdL +ASuIC5UdUI1kObihUF+M1Trl+BkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHliwvdgPbkvVXzD +EYjEU+zjf4scMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAcAkW7/NMilgQX1uMiJ70TTzMmcmb6I7j+MwlKAXP7p03 +D8hGQHMeK+3J+lVowTxURt89+7saV6TScDdS65JohmD7qqz0tdZEqt5sD2HuY7gF +upLWZudhLtE6+hAp3bGe3sFmdt+QyHGJYNgVUspESasEqZURCckJMcvigBpspluC +X4MsOHpcUCTPQUNjB0OsFf0WVPOz1PtIOp/v5ppKd6SdRJLKxzOcyZ5+2n/60ja/ +fSAb1rBKaNLkE3YJUIAS7Ex6FhsuAPaFvPs8bw1NfpJE44PXDsJq/yy/SgCx/go/ +VDa86JTF9NJjhWQoxDG/sA0XUGnR72B4FSz40BpUW+aC/Cydq09Fb9PdKOCnT1G3 +7d4APumORxp9XuObLxL9/9Eshgy+LLIeKUkv8m5CGuG67MwztTVLnA+Yj4XyN6pN +j49KXE/JhrI1M8ePs1KeD7JKdeXNA/txyEy1ZWB5hlc5AyQ0aPsuoSLcTT895m5B +24YOBj7mlhKJlN1ISBgQZf2lGyroKB7Q0bBgtgUf/TyzJmBtcH01LL6Ex/4FiYY0 +hBxyxoSaD5HzU48Tm58pldrZyWuWo5AdRhzNa8sQbEOoX3sPj+5FZ9BuDwdTRBC8 +5UmREwnZtPTmgU2BmambAKjkiMaepIyKO9G1BZr5SaUdr/GIZJ1A7rxmRjCHIpg= +-----END CERTIFICATE----- + + +WUS IFX KEYID 3FE3E3E0383ECB899118188F4E2B9644DBD39A3C 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAgLM/GoP4o+Z+gAAAAACAjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMwMFoXDTI1MDIxNDIxNDMwMFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0zRkUzRTNFMDM4M0VDQjg5OTExODE4OEY0RTJCOTY0NERCRDM5 +QTNDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApOBiJQMedM3g905q +xlO/VzkyLF9k8mB5wBY3Fm1x8cqlfqA/OPmzWdz28ff180ArGHShMOw2gpyoPToA +gqpFZvyZYHzE9Kb4zgtEq5oQEUGblyZC1naEx5nI92a9WjDoapF5MOc2OjC+SC1u +d4ATO8Z1D/7sZroD19OgIcTON+NN/IEPZocBXq2+xaiWxdoGdwNJ/jCrWXm/cpAX +BQR87lEnZmcaFAwySbzQnX6Nmrhqcvlp9BxmzsCi1E8Cj1qjtUF1QEPTtHHxcKEK +nLJ8qN43y/4PTNVWNmCQnptxGXzuoQZIwE0SOTkzi0Ry/D+Axto41DSq83l5Ob8i +VDpxSijjGgHxh8HokInm2ul5is3fGN8unBnQ49LiIHaP2gdlWVmjT/seJluB+S/R +GS8qknEgM20B5Kil6ofpO7Ld21WJM8fH0O+vxkH4KuW3NX61RzeZg94SDX2VgfMj +TZ4oIyvKLhjIHlI/3j/Dc7/zREiwc0tgCxBzlZJ5y3cmNXNL4orNtacRNITF6ViO +BHs2pv2MD16IDjFp1d4Xi/+u9dFnZBfANo7GiUCQ+atoUSuUfy62mHaDn6p6zUal +QIPcvXiLoSsPG5K97A1PfnU+r2LFdvmojQY0/l74MlWEDNpEsR4RwgyMMHtyJ8Kh +ZyeS09dm/e1X7A0oxGrS7ju9QBkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGbpkqRSdSR1i6FF +GFlOeu3xZMWiMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAh58XpakQtOLlnrV6c8loSyxCAO9en1caarfNv7QC4iP6 +dv28sWbvhRvZhd+iABvKLZ9rUsLBOWa+LZMI++bbFP5R2V3Atx/Pg1UKABT52WO/ +IJHATtnjEoEmNWBN8LhsE9RYRkmN9sIfD7El7nek6l6n2M15FoOqNnz0c5a4WW8K +c0f8GRvwQEXiZT77Cuh47AMf7jifw+HRca0SeK7U980VtMMyefmzmFclAU28e/a9 +GfwoSuDpekLztq9qcm0TsN3oPPmHCkRyFcADuWGZSdFQyggI+8y3XkN9K8+MDrtm +ax2ro21ynB4vrJFZawkFNGGP34kckt4Pfyu+g30A8Bj4IoVaE/l7zseQcUHQc+8y +l2651YZblgONyQegikZXiOeoHHe6Sf9H1q2VG+/yT4MJrNSY2Os7w9om4EJOq7Pa +bgsNag5gJmhqRGa8dCgjfUHAbf10YmB2UMuYTyOHFJIZ9rEZq9z1iBJ3nocbdNDP +yRhMOUCfunsLwdPN+DcH0+6yyLzcN00TrDkLHcT4ML1A/VTEcUPXFEdxja4DRPJa +zaAk88FIOsxoQn+zvCZb1qMTPfdYNumqGlrkzLprW7mIR0K0Ny3in3X54qQLcpbn +J/cXDO2fVifKVcn+r0+ISbl+HQ/WfnrYHG2AqLH9JUEUdCNNauanNzSWKI6mOiU= +-----END CERTIFICATE----- + + +WUS IFX KEYID 43325AF5500406548930CDA9A67DC78067B97801 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAArTzbr82xHxZHwAAAAACtDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0M1oXDTI1MDUwODE3NTc0M1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC00MzMyNUFGNTUwMDQwNjU0ODkzMENEQTlBNjdEQzc4MDY3Qjk3 +ODAxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyETelvc2dOIGOIFt +js3o2qNYD1rMTAs/PTDBJasGQYiD5BwbetlTc790L67TbQCIDCZbuxBD4ekrWTdu +7rGrVkwN4tEuIKRuDW9dBgYY6yR8CM0GUkP3prBxk79uspUjDUAs/Fpd0BcPgEzY +XLli1IJHRMcwzmeV2UXsZ8P8BiDOY47LIQ06ByrnP2unnYkxaCpzLYU0nYb/Cq4c +eis1FMi2QlsQeBqHQHcXlAEjhAdTYlhKY9GbMQyciHJpkyECTPkPOFY543otRD09 +w7JUwue/fOyweTIH6BISzsKoKFFsJEp4UOcT+DhzIuATSiGybLWRF2XRU7Y3R4/6 +8iwG9CNjY87TMQMojnh1/ZfMlnrGaVT9OpfzDQ20Q3UfNcnEVYOz/uxJHOKPQxyV +Vdpud1ufU+1+f6xz/+nMl/Vx9yBbB8AIKkx5baaRp/QBH+cDvD5YzdXVVOGm4KRj +1pZa6p5X14U1Xuiv3SAD2CPf2m3bJRMMHNISaLUKJbkLMaC2RI6/X5jie/0HtGSF +ybmiZCphRMkbSSwy79GKEE2PlnjNdYl3as46588awg8swOZJYuQBOYwBgoElVB8i +AGpAasQNFwT6zXebTeaxf3qob/n0N+sh9os7uNRObN5/cI38Zi8fo8W0p9ZlnawZ +nsD9FmccnN+mQ4vzCaTWgAfZ2z8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLNwEcUn+/oPjhW6 +Yn70peCWy13OMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAjtZb7DLXmvk3hJD0DgrjiDB4j0UgZYLcBrIiUlHGRyI/ +JV15RQQbXW58KfR1gZ5uzdFJBhk6/ur55zRUmeM9q7ByKG+FxntBc1tyDTP69jB8 +DlByi9CiSugOCJpuLYWzQB+pK2MREG7oMS4lEvYkAMc3JN1jIT3a8AA8iT97Q5DX +Q4z8NU/zq+05xXOALTlDFJ/DGImGBRvUcL8/4AoUvrZQN8LP57/Df82gqWtGbSzw +BaMiV6oJRy8YF32Ki68dz3hFx2HWFEl5QlBXqxizmgfM7rH8X2p/xTrLqiVjKhfF +kUZPUuTg9PAjfe4/MBwLyCH/NaCvafQBIrCqtxY2KHSvuV1mt2DiqS2bNGqZWI4q +qA1M8rGMfcR2uVmnMnrsuIj90DXppBZIIFZOvt21Bn0ZwCzynD4kv01r9cUHiMBS +mg+FQhKjDZI2tMVhZ5sqqlPZiZGEyPlsq9ZyJEChq+/0vQg83UD84uJw/nrdIPHY +MohqnIMOaBsWNPUCJEBeYMwl2fvmMd0YdIvz/vmKqNN1Y1IGNVhW8GrlmOUn+xiK +wKjeR/04dVCZg64GEsp9MtroBwvsZRSsswt+3azi9tqJ+EjOTTauRoYaco0rIZ8e +ov+z9AaLxecbGuqM5oZxnqEHOd6KxOzri0OJAmYkaB2rvo+JQbn72UlVvVZplng= +-----END CERTIFICATE----- + + +WUS IFX KEYID 4AC90CEE68D4B5729DE4357D2C475884F409B7A6 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAf4gzVF0MihSDgAAAAAB/jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzA0M1oXDTI1MDIwNjIxMzA0M1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC00QUM5MENFRTY4RDRCNTcyOURFNDM1N0QyQzQ3NTg4NEY0MDlC +N0E2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7pB4ZIY7sazgHHBA +CcODC1R4jHG7iJ+nNg1U3cMB7VNU01vQ4LS3UeVZhGLqU0FE4zgppoXmc0xhR2Yp +2epFIhPSu95cs3rqsfdR8f51lI7NbGJZr8RUNNgofeeY/PBkd2TC0HFTc605Kbxz +PTiyOZK3Ol1/Gj37y7oaZ498Ii6NYbpd9MpJtam9ilb8GprtW3uGqRlEEg8H0k+d +lUr5uEHWt9fgqy8PL2A0nKDVApxvCssjHCQOPaqVev0itMA3pMY4KIdJ+mpjItC+ +JGXxptTrjO1U4wjGO0RZdkP4T6AqyuInaGSWDV4Ho+JI+1WEj2/ncfCCWh86SKTi +ogfqv7w2Ef6UtavoE+irNjvgiwnlOjWQ4Ey21jMo8PdTcw+Le49dF1ckNaskwnlB +xxBOudJe5zk9a5Zo3snUkdImXzmzjNEPKN/L/JIQSJemZW8Iq4Cve7UOQ01vsxnO +m2Nr8vm0WBtzzlN9zjHTo5cnbt43cx30tpr/INEQiXQgPhqpKrCHzBPowWVVj0rV +zxfpizdFxkKAjngOyu5MoB9AMMzLARoIdtgwtH7Q2FiieyktSQJHYTEA8A3qpczH +ny32UlVwQsBUvkcKochPz+9S7oCKcoXZkEdrMFVSegFJUrM1NG06EEXL6qB3PGBM +KoRjRddb/EGCUfQx23UdENU4oL0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOn9KtI9Wbr2pFwX +bvGxd+XcqbdXMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAgbUZBi1wh76z/znLGDU8AMcJ14IGvNxwkr5yoZ1OloV4 +P0Lv360yjwLdBmplxfz8x+H9X6bhw0utdT7atUNTWQ64UO2BzcasOXj2QVv3LJxl +JCmI849hExT6j/KDnPlliZNIt9WbMSXw3P5YpPBOwm5LQtaa9uVnGVatFxORLEdO +DcmIRKBE1L6i4nD4VWPzvAs+d/I3UQEWTOr4w8hHnhfYPjcxvynV0P3pCFX3hcVA +DKDrSc1eLI/Ms3aWk6bIylGp+bnHBWCiQVZDgyzWKu8Nf4iAe+8VNlKxH6qLzXBY +O0m0IuQWHF1zjYgmTWMjNMMuaYmKOH0LKBgDfPj7WZOYn+AvqVrjm459fAj89J7o +mVgVOeVgk/aUddMIusb6TqpFWe/HG1Dlw3PTLh0lpCpikSB+3DHALxb3bcxnxhZ6 +nLg+S7P4SSettkMVwBzH4XRj1jrlXkZTceEGlbbLVl2N9mhW7mulzBLp18GYD3pr +69Oj/usB6oTK7kXHx4ieRZI3C8JgyVXQBVcVSO/YxaexSTul4yM9y17cbb5u7yvW +THMbeldoqEPjCVgej6oBvnW6xIeXYwBLz319hReIfIuYltX0UsAo6ZHqXvp1BBeb +LLerGiMnSu2SFicZBFsi2f5z8vhOEmhr3G6BR5+fJ/P04YiTZWX5XC43amD+oGM= +-----END CERTIFICATE----- + + +WUS IFX KEYID 4C4B4D648908E45BFE5A10D36387A688AEC1CF78 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAArAo6ZC6iKjs+AAAAAACsDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0MFoXDTI1MDUwODE3NTc0MFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC00QzRCNEQ2NDg5MDhFNDVCRkU1QTEwRDM2Mzg3QTY4OEFFQzFD +Rjc4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArosURtwJ9MmRDEdg +JO0iFiXbvPg/2a1pXaBVnF5vgAgbZIJtv3IYrfaQdxgEdILe06LTMOl6LejheKuv +miF92QRYIcsAfWHl2BJLimfTlPBpmrX3XG4eJ8y155xlWayPgchsWWu4CkBzm5bN +Yi1jl5uSOV7mm9yfvPZcq5hKDaBzkG2mPz0ZVz/VacbOfHqDUh8afBAcmnFmMbvA +OPlOfwM4MqV70EjfPug0OI+q8etwPQ1S2ATnu0Jrg9ZoqDW2onyhHhv8hZUvBfOD +l2FiBRR85sLMNKGyKLgqOenjGhalBJUoum7NDoljsYka8lJKoF7EgSVE49J7RypT +06gDFjVWHPyY6Rt33etxg3aOimkyoseK+uoGVpFh8Jt6O6jy11qdiE2abSnZvm+b +LmzY3x3w2hbgSUiRnIzFYnNI1FypFMUi/FFbTT8AqDv/LpZ48vAMPTBoMI5B2hBq +cx7dw1YqpQHeFBQL+BizrmpErkspuz30vuRp/6uRPiw2I6GYcr2hFIIXaEm01Plq +IOaubEV59SjlYILolltD50oRuJQ6IZTEaAPPuRau5Fl6QmTxOLlDmKJQrEjT2ryi +j+WiAi152Z/RdZ/WsEDWToXb5+fwZMk+WyjuoxqqMR4Yi+deufEERrKnzH6MEkKK +YJGkOx4d6q/2Iloj+BxQUGCIvxECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIroRz4vofd6ulsI +4jdGgr5TR5uIMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAEVcNJb8s5Jsrq9gWfD16u6i5tAouDueqb3oCjY1VBt2R +iKAOzEVHJAoi0BoRVqAQBRgsf45ky9X3+alScI0PnU8inzCASc7mGhlRGuvEcps/ +HlT4xBA+ip8SEfvRuS8PcIFgWLyMwe7FetbaCgP8syo+992DkCYUx7oBxjW/HqIs +v2JfeDndnMy3oXZsqPSjv/mI431hx96Sh8QNMFqFc0kS+aE8tEPgF2eCw5Sf1G74 +mEH7XBNxTtczgQtlmkfzPkB/e8IaaEuWtlZ8b/Y/dtILsgUGrTbYFBhVSehI6uTy +ZJuMqHvvfB4S56wgLJosR6sMXjUpYVu4JC+S7j2Fn+pOplBjjg6TCRs4rf1TSPut +tEiK5usKO7ooH1BQpGVJXUloX/MSyFjvu3LMGxDr1ftojCEWRGDyL98c5AQNKNJf +TL0vLJZ5J7Q69HwBFJnnX5ut2dN0AFIJozi5JIIDHhUNOJuyvJPstpK4bEDx9lEz +InW9icCh8rFgSBLSbdDoWzDsQSE49/ZON4b+SAdRTkPn8q9jur6+zsXl1gaJ3Oy3 +eJ26WkIqZR6NN7U9UQtXMCt8FBDE2eeh9Cfle09IZQRskfmY8T6oTHy+qzBi4szc +dHF6m4fm5/7uyDu7u3Itoo8qj3ohvqUiqbpgyt0S6qLMA002JhRL4mkyInHSJbI= +-----END CERTIFICATE----- + + +WUS IFX KEYID 6DED70AB841AE9C22A03647FC8D1482188D3DAE3 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAcxMDZTDiBstWwAAAAABzDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkyMFoXDTI1MDEzMDE5MDkyMFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC02REVENzBBQjg0MUFFOUMyMkEwMzY0N0ZDOEQxNDgyMTg4RDNE +QUUzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArlyX0+HfTL8JOwdo +eZT6R+5f1OZWwWd8EQiGQvt0IEQwNmOQ1WbVWvNhtzJ3EayCkYnLpWMX7XYR8pg5 +S2emBW1AWapza/+GLTTmPPYVyOi7+guvYwm7sD47J4Oe32qM7fqY58BCSpfbOY8P +feVOtfpkridInxX9qIM7ImMgHRfzk9cXcRkYhgluDlZ+ogm72dQBr7NrSVjFhFRh +lEjq9fw5QA1FBxviM5Mjl/dhP+viH3fEK83rZMxcLUnppz77YvPWLVfZQE0LyOPh +iGrDVaO0stwh4mDawMZs3xRg2oixGbEJP+j+XIBkJ8wVBqLSHXbJabT439owHMly +c5lMjd210NOq9a/sjBoPa/kexAodl7hc05VPUuKdaa1yBxFBsQEmAmIGK4OgGiSc +nSh0QpBMmh/7guWmW0082HID80NZBCJMr2WEGK9eo1hs/H3C2cv2/7fRp7MPzuwJ +tZR7OuHfSsALXVRGSnr82lKSomKgaSUFwSazqMqYmPy9UO1anzpFivBLKW1IeZYK +RBFfVa8DaeVITnEICiYwBpnqKm19hLpBDdPMc2/FWVSppFJRFHU6JoVOwFiY6/Rj +lk11RVJ78AzwRztnz/wJQqHETtZAfAjPkwdr/H2N84idoWQn9Ah+by+UwMNbVZgz +ZbCRDcXKTTct5sE8t51zxNT9/K0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLLCn6D2HRDJQqE0 +tRt17xuZnZtjMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAgsvj1XarodikSEFIpq4mAiyMJ0YhfKBClrYZPUeSO+zc ++SSA4Wem4K4KqD0Aual1q55123r1w80goNjiUUFl+N+dfZiFSOEpJN97dL4fDfH1 +wnYXW5BUl3rY95r7sZmT6vMxobF5aNO+JL13VvBO79pAjaTK3ofal5HxpRHGlsbL +88CS3075KjPsFdgcJRZlkHkB7bfge6kgc/GvTtC10I7k/8ynCfyhfQcHGoAENT4p +b1QG4cQ/WmQsUa42aoGjj6OQZ/XAqdFNrEA/bp9UtFTIEd6KZao7qhTHfnc0HdzO +lsUAgaBZSE6YXZij8zLegdH90BpTxcgW4tk2kJTRdEdGsqhbY9sBlvJAroKamZbx +YG3DIzVfUJ8aLl2EE2SIze0FWhDZejrfXKmT3JoZ5SxmgFxHS/xCbqJAIwHYT4lf +3tgt94HJLHWKwr2VA8ghaPMxbuipF94AXHZQyi/E5yH8Wsp9VbuaLk3SlnxbN/4B +j4nsHsn1iKvrBURKbX6MiUaK44N2lDNJkLMeB/nyOZw0yji4p8a8pHsyHgR3J5Cb +IrS1FZ242RgDp4tAQtFWyh+AHr2J5YhlHpveS+oiPgzN5qujkEtkqb0oY+i79CpK +gd7lIfGFqsn0ULq8wjD/3fu0JYZK7oF7rmPX59kJJqLG2HW9BfKOR/sh1+0uxIc= +-----END CERTIFICATE----- + + +WUS IFX KEYID 73ABB81A0225456337F02B25BD39E658B90F00FF 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAgZkNyosE3c5mAAAAAACBjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMwM1oXDTI1MDIxNDIxNDMwM1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC03M0FCQjgxQTAyMjU0NTYzMzdGMDJCMjVCRDM5RTY1OEI5MEYw +MEZGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6Cmw9UPQW6taeZWF +xrnm7d7AHY0jAGwvtOLkXlcuI4VkenffF3JTUeHadWQmELSwURFUPcfPVlO/AC3i +hpW9sXvgCSLQA4BMcPT8k8En+MKwXGsF371QfaLaAqyGWAmUjnc6lxEp/gTfosTU +Y+jU7iBb6PwJ4YXpMkUgVXTZJ0dufNLNj8qf14NSQtSb44QuvAFlVRuc29zj/zBB +fBz6OonIZ17WJN7MMV4KzxfI8Fh93hVyilk+tsUJEY7M8GCD37Z+BM0MCUQ6xy0x +cvuo/0GnZBqGJ9mjBvyL2lYW3IbMXBEgYA4U0OXdlnW0OmZ+8hbPmh3dvuxP2w1i +1lGVF6g6b4ZWhVP11pyxGr3Emz1LM7hSlCzs+ImT8nWXz0UHl4/oI7A2lZCMQ58e +gcIs6w6PhPNaMCUSMi/YlsNCIip48DI6ogLOnpfm5WFxspfHLE5N3IbKocI08gwl +mXOJ4xj0xKIlPUznIdpJhHrgsgABKk6rTKSNHQ2nKbSUxvRfkOIuyjURiVylVM9X +Mn4Gr9w1BZIB2A5AoOlI9/lblGWv8DQtBMiAm0YLHhKcVH69yaK8X2k9zkP+jV3q +xneLeQt9i635gLpq0GVNgsMdVLLHFpmTlFp8j3WF4IyJsbcjLI6YDWsYBpVBNQ/w +h/PPVh9/+x+fruyt1CpfZQKzJbECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFK/KsViEiAzM63df +NrtyhqTk2K6wMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAfXUcbLabcU7a1fz17hl0Py3c8csIMp/jJk+U1ay3Vquw +ubLMyAEabVGmlw6xqSW8daI/vdXa1c7RnfXSniHEG6XAikrGgiAaOlZnmBzHtpNr +sULyZbvuXOpN5qD1bbOXlFqP59gn+xHO6WBDVx3oBl5h8fQ/5Zvy4GmgHice3XJD ++LfSEkWTdXiTZBJCsvVJigQiRMRU6AU3GFeyyqza4EcjxJx+t7FHx3QYvPTyV4lt +t1K8Q7IWaaUlOS7LKXBjRZ9VspRPmnR0ncAOcPVfxkXbSB06VoEq39xKjzahw96N +9/GAXxgcwhTamYFwW6WxN8sgieFn60vvllo+XnIXupgOZvqOcdQWoW08UAQ9Yzn/ +T1fEC2cE81MjRBiy5MuRgtEQKjNtLoNMorpEuO3flaKOEwgw+TZypsMDWIOUeOYp +1vqpVp9EfRFnCNMyHnjjrPYz9VEvv4R2dDKcuMtPUU92HtFl/NII9P0W9A+Kntr4 +wVHcfJMrdQ5cwk3dTwIhJvyy7bw6l9USRLpIKLHpV9pXO++g+RX0T+oBCOD94Lmc +qB37SQHxN9QbLE2rF+GZKFy78bfwKIlsN+RPCPpTie3kXI+KAe53TgU4Emsixt1U +5MfOQ7S2S9EcCuOAjwr5qem6e6Y1OgWI+v0TBwa2K93dsWqt/I5MwTKYagVy2AM= +-----END CERTIFICATE----- + + +WUS IFX KEYID 7568FF26F37D11268567B6864EC72A08C818891E 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAArPRmWadTa9J4AAAAAACszANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0MloXDTI1MDUwODE3NTc0MlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC03NTY4RkYyNkYzN0QxMTI2ODU2N0I2ODY0RUM3MkEwOEM4MTg4 +OTFFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA79wCST2/s30yqhLj +jeYfylkSjR/dHzLADqTS1Uvr0jzG83wR8BqNve3xYcI/IgeIKw4Y9Bk4UY8X+wtB +Dk02SmbsPoxRg3aDwWvZ4WwtwDoBUySpswH9R0kF5whP700fMzrbB7Rvq4V2iGAH +1W88dZrEoepIZi5wLBYB5ndj8vurM+rFxKKVIhxKqxUJkgftPVdBZFxGkt0u7xnk +NwDrYqoMh0WW6xnzTaz2t7zJSC1xgFvs9LbnPGbl6hIAFB/Y38MLfw9f8Z4f3T5U +sRuAmTzWrDFlaOmI5ZmQSdTRvA+clTPSsCkpmMh/GWuwzfbeyc4y0LTu+sgfTwQi ++AggZ212LItgf7QSAS9nuFjFws+yvACNGbO+yNtAiM0HNDTDTfdaXRXcCQc29/Fc +N9+AIx/gxzNt+UrqXxqdvwCD4ckB4iLRnlQrNw0sbPHZ9OUGgWpqmRoGukk3OLHG ++ofZiFEAZ0Bmpl+Ufw3k3uwvpNAMGkpHIPtqsLdbbJNdNN8BajfqNHbiQezBUdEq +ZzKqhiN75pnBmEzNhx4Ks6hGPRdGLG1z73ixFfTo9Xk8OLe1u9jYxZ+xvdpcyvnQ +9EiwP2LKYPXBqStokBB+5tWZVIRj/4n1qfdB11RfGwXoEzeZux1iyJYssbQn3PbG +htzC046yH0lBmYZWku657A4rmS0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFI6wwEgvDxPclfwk +XXXdb+gJaqHiMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAmzKNynPb8Uj3BYK98/W5+8oi2O4iwJaOs0e83TnZsclj +tzSzmm0ewX+M1PJpvqzkcg4IhSSVO1WsJR34hMxUdCzUzLdRA8St5WfvBcNTgXvI +LuOK7BlVYtcEU3Hklc2NYJ4aeHBbdvgwJ+SP7ce6wLd/v/xJPqHknueRvs437Xdo +WjDer1tavY/hJKZ0iXtP35GG/icGhOA1IP711IRIcgBXnI1QG9rBTqz0n91PVVfi +PFF1Z80KCgQZILqogUX4QAiuqrUMFpBbR3attkXCdAFG9D/JZ64E9eHixm3fdJ4f +dL20ljHrLbHBB8NqUmC0UscG6Ax9A+Qw8hWA3/thSMsQDBSq7jzzWClLnE6jgSgr +dCN4DaHwHSx6AqJZM7CQs1bPtu9aB2KQjqIJ47UPMGZtccLUg6+lhe7HU7rWbBGZ +tRZpOOuc/C79siuIBRHd5eCui7X7FtrwMoDN2pPBm9CLO5HuRTJcBauILNtYkxC4 +1u11GCPDGwXaBZF4O2QoZ8PWbNbKTWrHK99Txb92Pf5GEofdl7pY9uUsNk3ussEe +GviCxGXKRdJzpd5g4B0Kzg5gIzJXHb72TQjGrK/+IVUA6EAnc/ZJ05Bb9saUzWlu +00R0AYJDMKFyc+KeQhpadPQkw2cBzgrqRTC4NQ+vY8t683QldbdGViT6DRRQjf4= +-----END CERTIFICATE----- + + +WUS IFX KEYID 88B3C13F6105D104229F5AC0EB499564ACD473BD 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAArH1HOHaDm5DswAAAAACsTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0MFoXDTI1MDUwODE3NTc0MFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC04OEIzQzEzRjYxMDVEMTA0MjI5RjVBQzBFQjQ5OTU2NEFDRDQ3 +M0JEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAi+iQyR8D6uzfZlrV +rNV1g8nQS24WbjAtjSAigXk+jaArho/PT44luOISw8WM1QzTVplgCM8Cck8WnWU4 +rGRuR+eP4mosLwjJtMmhquRZCVqWFUj06NOwPA2yHBxh6sW2wGysYBVRyS/refkX +UiThQ7L6v4BbptYRM7C2TCvqG+4WgsVlNr8oU0sjl2WN4OLRcZ568hQrEqibkmoi +/2vljCjRq2t4Tp4CYE3+57STKGryo1OqNHOJbPRSQ4HFYNOuGwqql2qd2YojCD1W +p0mAA5kpogv+58jpmJGG4O4Zq8S6zVPhCJAeJa6kLeQJdQRcTaA9EkT9C8JXYAhz +cIdO67lLi85K/y5VH6hKwpXTmVqARRMidcmrCPZcRi061PFyqCoj20L0WNXrobLQ +Of5nIEs6WVrtfIeGupQx+nwlrTdh0qui/sTzLO+aaVA9VimLJMPNO3AgYt4NOYjY +5pAzNSLv7CNcaiMh/M4dN9gtaZF8kGudaPoEw6hOKBHlxd5o3sGX8n5B9yq94qpX +fLxsVg3hsE48QU4RI2wcgQuYw9nhFy/d8SkGTi0aPeUN1xSwxk7zIS71dsi7Oem/ +kxJS5ZP3Qo9ph1OX1IRzAhZJ07+DXRCgnRo6SZi/dp2aL7jd7ey0Q3boneLUowBI +O+YSbjYRHTLGAvoBRK/SnNgEn0cCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJvLVDJtcN2O2AI3 +BzAUH+VLI8kBMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAViVprHifyNY6ecRwMPyWbcQ47fYR8vXAZvyLC5gnqPZR +pBW3ct7bBLmSzUL4+MaYYr6ny8+olSuFZLbedHJJhLgiZ/Z4lasztzHBkkS00Wc5 +bOzvL/IPWBpF44I3qFy7umagbiAGTJkVSTPj4PNDugHPuvGp0WOmbfWcmPhb2FJI +1D7ABsxs+aWXmHjaVLya4cDRr4U3L1yb9sVhLGKXqdgalUIrKIgZom+tBmiOuQCK ++NAVQUq7a0BUeb6Wwiei1PLLEjZrJ1NiSwMuVu8moToStKztGUUvPMiLlH+w3xGP +hnMy+jRsdqrv+qK1h0/jJvX1ddkrpBJuyEm+ZEi5sdSCiGFAkwtgxR1RsESAePG0 +FzneJezECjvRnju3t9CTKX6BAWsZn43LrcQXXCm6qTt/qJVRr2tmcYl8KZgnp4Or +sCAo2ZydTGt2ngCJi7UAtOFU0Cpvr2Oo3sLzR8sFvcqPKEKIMcs5NiAzRfWJEqEU ++prH47OEMFpFDYC9PyunAr1hMja37aJU7+027vs+L59PBd/Lu0Kek22F1Le3Q4lb +OA8ZgO9zCDSqEFq7u5wq3y4h4UkvRke20oZYOtQ+pn3FVeORlA26cgQiX+24sjT4 +2ta6VJBUkRtzoKECNu+OAAvFpnm16h64sPJIIlYR6y4JrEXf8OtzRujzEEA0a6c= +-----END CERTIFICATE----- + + +WUS IFX KEYID 8E1F3B1E129D4ADED7631F5B4A2B75828AF28128 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAgDQJJ49EKvGHAAAAAACADANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzA0NVoXDTI1MDIwNjIxMzA0NVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC04RTFGM0IxRTEyOUQ0QURFRDc2MzFGNUI0QTJCNzU4MjhBRjI4 +MTI4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsVW6i039QUX2z4H6 +Vx5f0jlqjq99qqMLSE9+ZAFaVI6zyG+27jig0/6ViDSHdxmz5OmiApFUtPIN7poy +Mg5XAG2NqzqMIRoBM1iyqlq5JSoLBsP/0jZJVYqlF2peytTftWW3U1GoXgYZ8Plz +rKLZ8rPqUlLTvTUPUlpemPMnd4+tyy0hyKy/JxFww+jI6SCeRpTV1asgbJesHNJ0 +OChZE4nawKyH5dFSQlNkg8kXb375Vqp4UD6gXR9KR9D5zpDz2uKUIhph+ErqNbqF +XLOL3Cz9lfcvwUHBiGsS6migi7MZ4IVjSaSWx1aFbLPFWvcN4p+LeCUw+AG6ilb8 +xbr/EpDihU15ukQp45MKaI20efz0YL76KjDhplDdQeSnWeBvqsYhwilBQnPC0alx +6dE4KA6Jn2+m7YduirCP/ms7y0mIw5xdErcYDCYym/Cp304fSxZU7gUjMbPsR0lr +MB/QfnMlBOBz3vAKoRD2O/mPz6qM4kYosnoqj78PUANw7MQEl6HtGUBOhIRkr9d/ +hIhS7CKXMt6yo+UIsz7c2SW7ZIVuGQE+dNpSszrllk+4rUf7L3ISWDd63gZm3Y7d +wuChca410LKmDPbhmzu/HN4GazaJiz0Cb5TalyVvr+Ew9yc+PnenpB3yzH3g8iSL +z+FS72b4PK5uhjzn6q+MPtFVAU0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBoaGBMe9TKnQ5Sn +GbBhFYpPkHUKMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAZKhIeDyKGUqCnPbArhPXIsopjCyMwLeNS1XH8URsYi7j +WnG30dndkizqXisOEd8ABC060KZonE8mZpcI/Oje8BzwVkXBfVffiNIsL3WUqdt4 +llX9H8r3ecM4q5iuY8o00EfRW320u7+fHmLSK8u2u6BuNFfirPI3vu/qaIZujxgr +z8mVA/5N7dVV0RoAjbnZZYL0gc7PeaEGZe3ph4wzRfqhFQDLAi7BUl0nJW++aLop +9bwuSO+GY3i8sY6VeYu/u4OFdvbDqFaQD2vSUggjmQn+oFJVAe8UKRTKb/hefbcT +VcpbFqUTDYR1I5xbRyih4qfGFuuMKr2xnKF0i0dQnQoR6F7yrGvdEPqDIYdBUj/n +reZNiVSurNNUEqITPGzmvpINeMDpWKNy4qPqG+h8QDmDR4EqC7FLsEO9hj5SBEo3 +G0nq6IQoUHm53ATOIT9bSWScTr4ajNV7ayk8UhXg4WtoY2dbu4o+tt0cKlZcXXq4 +TnFobxK8dp2a6hRk6w2ubmAviySLBmw67w6vR4SeQzc6Jk7zDDVxDzMA3aj6QFRZ +L+hwwwBP5QO8H7hMchT3jFB5BulpSrOeM1EsULssJ13gF4qnjwtUep5OtFGYcRQ+ +O0wFGRrwZKO6AjqoQt1vt/QfI45DyJzbwEfYeUVUz3OhGEjzIb1ILASMn/HbvXA= +-----END CERTIFICATE----- + + +WUS IFX KEYID 9532153BAA9D74482D275B1A3E475309D3CFE507 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAgxaA/sByaJXEwAAAAACDDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMwOFoXDTI1MDIxNDIxNDMwOFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC05NTMyMTUzQkFBOUQ3NDQ4MkQyNzVCMUEzRTQ3NTMwOUQzQ0ZF +NTA3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8wBdunigATtczpNY +vX/CggBEl6oxUhiJu7oL1FhFMJCDwwKQ+vShQ6XA9B0BH9CCS5nrPhg1ALL4Pr3z +7fz++HoWJjAWvJmeGg+BEem4flwPXJUY66Q6O6fF6xW21KuZHd/vvpYFpC1xlrs9 +w7JmEOdDbsXpZS2ZWUvuGFriVMRH6TdXZoP/nWuBeRUMerLYp4n32GSGgsxgjpxF +GdVVbMUfxSP2DBaqjQqguFcADfZ9NVYwYz8hON8TerbgxkMBkUDndObChq4jxnXM +qsku/R149bK2uddhXNUpufzXSS8nzb3IoVcgM5vhU2p1WjpFBZRCj1nLkySl32SF +AaPZ3CTZuLO5LEFnptit5HU5SFXWMoLazuImWrefBUSroD3OrKEb+GEDkomE58Oe +zdqbnwMo0iyNNNaFKGbc0UndFPzwIv30/h+STCBvAoLuTGeqPul4JjaJi75NGZAh +rdO1QYv1R5+svU2SfQ6YU26Nh5AzJEkBaGVRlNoilriMmr/t1d+mcrPmCqs6lGQh +ivpiq3HG/YSg9ppSCsgCs95xCCXCCrSrH2JkH+q7qeh0A68iSE3K2nFOO8J415W/ +Q9gruEfC++B4p8SxlWMLgA0uuaMRhzV2PEXdAJnMWBoN+LmlyEkIiwRMYuR4zBhW +Tc4rDjKXtEXzLXebzSxG5jyvEFcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOvjNi4HfqPioiX3 +Zk4gAE/va3BUMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAYykQ59HCQ+QHun4VzI5nQdjLuTXKAJmqmv+TFehJEMQu +zCaLxyrDY6HWuA6gG+eeiN8e56kHK4nSu681PLVy7B6cxPczrJU7skesZXBTqhp3 +jONQH0uDAHsw2O99yYHabSsl3SPvm0D0K6KjOqR6w5pUd9K9HGWyLq5Wz9qBRsbA +YVqT0GBosG00yWBz5oY/y5lPH51YKsAsrMuPC/c4Jmjx0YXH8cnQXm16IMRUuK8e +I3x2kxSlHHKuzvSSYAbq1zIr19n2MXC26nbtl3m1QlOkX8CftZEkEz7k/HCDJHrg +vc7R+AAiTLLR26RRXqiAviJx+B0UdHdVipr6JbQfLkzaaXW19J8Ezyyyci+lJAfs +m1bBYYvuFWak2ohBrAzUcqoBegTbcRTxQPBZgHRFsRmH0qfzlIodb0AfgchD486W +jUWSeOOHrzOD94w1ccr3APZ3u1F5s++WV3/Ef8URXW3nj2twlbCx0HFL31ECYjER +0rpr+xZfrIxxuEUkepJ9qFHVtXdAIYfm1T/qHNqA0qej2NsFXu/1jW9Tq2+6Keh7 +G3ZawojQ9/TBfKQ/9CSG8VtRDP88qvQmCmkzLn9KRe4G0t0Wg73LYdXFY3gtClgt +2AnTpkWz78AmeupidgvLxRrN2AmPFyjavwCHXeSf07JAea0wvWajaQ+ANSdV7AA= +-----END CERTIFICATE----- + + +WUS IFX KEYID 97E5D1CD8B0497C04B4655A869C8F30EFA89388D 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAApU+zGYCx30WBQAAAAAClTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAzMFoXDTI1MDMyMTIwMzAzMFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC05N0U1RDFDRDhCMDQ5N0MwNEI0NjU1QTg2OUM4RjMwRUZBODkz +ODhEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnHUPtM6tH3UczzAG +CnX57WQveEQpPi5u1mmPbs0Ug7XmUeTnq5WUN2UrwqmGjOavmsOAhttUSi42aG7l +pVYYSRkrhdFCkustj2kEb3FTVvoy/OXrmkF+HkqD4Bpk7OxDF/BkVpdrUI0mjk5S +y0IfLR67NMqAomtZrlmZSxgFIULSzIH/AcN1mtWIlN8K111SxE5bmI0qHvz0aRm6 +7q8Dp9EOSeOWh6D9C1xGQeNYtBjOtgX31xN1tTSGYLM34PwCKuIG4O1y/nVslahJ +P3G+PISW/cgulS20MPE84jbQZMUJ/od0BoMeubWy15Zf4MlpKSZh6Z8/sDChQz7G +4nz9s2l8uuCek/9xG4dOlh1xhVwDxytORoMCg8cgKcssVCaw5/JFTsVOpVi516ay +8FMPjfFrmAFEHu7ObHa/3e7Yc2PB3lVyQGMmwS3Vt1mk6BtVuLn/IntdLlDedfy9 +5K3rfQaN2pqURXmSApvEv+J7+bhHuVyAJFPNNDZ5dadNS8MIRWawha2EiwBKJOGg +BxOjxtVlJ9eexoWF/3R45HnBsY4WTZbffaOmYRvp/xD24lX/G+YRfc5qJVpzD+nR +B01Y38humCJSVlUcHrvQqD2L3Ens5nOpUJYfw1OgQb8LkwgtGU30A0AlcegOTE01 +8WENeZx2IFL1NOu1Fn4bnJq0MI0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHumUJURyjmBAJs6 +wRWAmm/CCnHfMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAUgnSbbj9dJjtKhplJFxYcCWX0I6GOY0y4MwMnJ4C+hBT +zG6L6rqEzYGYB6nk1xsuS0A8Eklq1mcc4/dMnQACWF6uc7HotDmVZrudi/1zgSGA +UQBH7pUrkYcBlmjkjhKKnJMc4nSixHXsUH/pSLUThjig+qC442inlIUi16Khfr79 +dwBNkT+SM9SeoppJZufcg4STroQ4S8n8MYSau7jqLDDe7LO0Acov+OxzuNeADzAM +F6uxYZf+He2ImfnMdbsV1Hh6XKlHcry67XhL1Kv+2XAxWg31up29z7mhi4SN5AmI +krHE0VzxRDHH7aZLc8PTRj7LfNh93jUC1w/0vo2R43QPOH8GY/txsUF01j+T4Z8m +uUewXuBlPcYkbYv4tq1FHRBDpenRmKTN4HnccyetWHM7N2Da1C1DfeyHbSCJweKn +ct1sRLj3QELysNAO0s2vMQmz54Sgb209szWdn1bz1zHyrAvxdq/At9AkjH447/1H +ujwx4pRdAcKIjg2u2z4mRVN9cjCIf2y5qIF50Gbe9hck/OLU9AsgjgZenadoTS74 +NjY9R2RvmFJHDHShlP32LOTwzpy3akGiH8z78lDZffxymQCOOtrakm3KI3I/Fi6K +LywZdzwYBT7eS88D5lGuqwNs8QB+Ze6GuLurQTdZGLCLV84z//b9Fjea4EbwoEE= +-----END CERTIFICATE----- + + +WUS IFX KEYID 9A643BC48007E0824798430036B658419B70C077 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAWVGze+1030CQQAAAAABZTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDgxMTIwMjUzMVoXDTI5MTIzMTIwMjUzMVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC05QTY0M0JDNDgwMDdFMDgyNDc5ODQzMDAzNkI2NTg0MTlCNzBD +MDc3MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvk+Cyrq4sTunbuBr +spmHqqzvR0MW5QSDSQhiYpQasO4S6nTjUxL7wcls/gLXDfQL+dORDh1bWalj9OD7 +6hQsoMYI8gyF1MoxJ5iRAAFO6HApz0JhZsBXMU7byzVMoFlEFPsyARTr07H/hmH3 +oMjfiaKWSIgvZYJJ2Z+JBkSHUTQ/vM7vitEnKVskHKyQPO/3jbdeOwmcePk+GGjc +cR/0LDMeMYUu6jhdTapIiMxFWOqYDO71+y4P7hUoW8Bip8W7RGhzt36ceviiOFo2 +yOEUv3PSp2Ay1psr4LTUbIGVi47bTrav/jsSQbRGcDqVX4BBPtH9eyrcumBWta5H +38oR1wIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUb+RtkLNrbO16Wtyb0OCejYii7rUwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCYQOAg +E1wSduviMuBX+ezsRTszZVZ0oJ6ML6BuCpW9Vj1H7qbW6Par5RwGPCqoDoS/EAPD +HRFthVA/2RmyKKI+PVMbzxsKFHBsxvJhZGkt0mujc5SNtWpyrEDUUHJ1m6/I/jJM +vRtI3TvsvXXJPz1StlBy9r6rsZM6hRJ8x1srKzIGokXY+h16fWfAenIGGT8iF1px +SQoujgotz8pFFZd/dygTBwLC1H5+Une8yvHxgSqEwH9eIUtRDE/T/1ILK1S/+N00 +yODB9ugiwIIFWHRLlAv0mUSKDWHLcmi5BqzEcnMtjqb6o/QgdfNrT4SVBpNC9kJr +ooZm0+we71UH1Gmdj1vN+d5T1FavxgGpaxZfgHTY4YTwgiNd9C7bQ7YiVqHpSwQT +x0CEKEBHLk88W/qTOlaaxEwK/fkdh0VdfrhHVcJVE7o8hEzAKryeFFwU0FGLgAeE +2nTyCNp84sHuvxWxFaXDHEgFMNm3eICfJV/dgEjmp93qM5/vdT08hIizn2ihNwRW +580GrjDYmqbwjySf4078Uwd4P9tqqOvKbFx5GCkt/Hcybd6m79agNOK96vdpwCsB +gm3TGjO0YRbtwBJmIu8LaoScZqFcTHvO+lxbytDBsnf2Zi41TJ2qZ6f33S9jns4U +k9zDYeNKKdGMa+nm00cvaBcotaAw9esklhFfMg== +-----END CERTIFICATE----- + + +WUS IFX KEYID 9A643BC48007E0824798430036B658419B70C077 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAgUzuKFE0tQiwQAAAAACBTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMwM1oXDTI1MDIxNDIxNDMwM1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC05QTY0M0JDNDgwMDdFMDgyNDc5ODQzMDAzNkI2NTg0MTlCNzBD +MDc3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlpczXfHhe1K2SPcb +cIBNtNsOGf2JbWNp5uPbASzvY8o6xTvjp57ULiwZcuAH7qHb5pnYDz9bGPKvRr6d +cLLoESm7fUpN0NapkQXnruDzj/TRTSqJehNP47QMTGvWmVMTXaatdpQ0myqQDW6i +CuyutrgjJIu/r4RGGY8YS9jPkjlChBLHNpkXttis1R63CGMThCIqgMNRsLqjvs0F +hD82m5iNRz2XjvcUjDLiTpzzemFDhpkF0HpGmEcMI4FqUzb4rerAr5SmTSaq57fF +gMdzD6Mc+yW0KnoRcMSJfL2iENlI4WILvE5LDWt4VY15qf2e/NcWsUW+IkxVtZXU +RtjgnHxBYav37DKqwV6tYM/QY8sMuJbBZRShKGRTSwM3rDq7er3Ilk6fNqolMzb3 ++ZNt9UROiDTudrscccvynSAEn6x8mUG1JA+XFNucdUNrhqNdURF2/8sP1QgzcKcX +f5I3rGCD9v6pSLXqMP3FEzlZ2nmoles15WK8OhIbAcuOua3Vwt58+TtNdfdwPPgR +UyuIYia4AXRB59dN4YngOOf489R+ifYiDRmmHhXYExiEqOO3LHDWhC/Wd7dCEaRN +kQC+NR2K7BKTCFdtof//wtp+8JGi2hMQhjkxtuMfGt8RHDVr4cK4RMg825vBlrFz +GoucNybBz6s7Q+ci7QiSAKeGTP0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDLFHVOwqmSVg2rd +HDYruWPogTlfMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAkyZzmWNPqgFPHprWh7ZDXSsPvd9d91WOzJV06/CvgRbS +uU2FikTE/xK4NRMNcis0kQSTSIN5g/IKKPozm3FBtUWU4C+n16QJ2PXMB8xPhUf1 +3PXb/81wiCViFLl5DEI/r6WSG1tUFXB9SfArS4L2g72yz8Z7Atxy4rElEWDlw17P +UnxAK8kbXVA570AcgEcjn5Z9ldAu1vW9JiGZt1XSxoPGPN3I9qHf9rYEAmscpPPt +dddhW0zQ0t1G6EMSuYNr6yMBPT2olHWc2msLQd0iwIgnSAFoDvTvIkITk0q5BaKG +sb4urv9dJ5i+9vB6/qD6moruw7ryUggPzqIATmtYOtPtEzxZYnap/JKEWug/GkIS +j1rmR9RhogtURhn+etIYlGY/FIPRUsJvJsaDmJ96pIKb3gHLa7OmlCJD/9lpGM4W +UAih8EnSS62aF08rgjzDY2mVBLjL/yfAUhdasbrUfYH3gZtfnA6Rm8uIeudkUGpl +3eU+9mlzwPiQuCJMiWiuHFTberozZoD1WdQsr0TpcApoYLWPcbbk1Sc+73QOx2qb +m2PizEQNDKbQpz9WUw1anmsQXZWKUw396bQVXsI6Td7vm8yQ1k5SA/MgaUuiqACA +OEWY0QJKwPXIzE0RUv9mzqOzIq3+BNPM7YkyCm0YiI/nvhfBxpeOI0AP4Vz4phE= +-----END CERTIFICATE----- + + +WUS IFX KEYID A0C9DEC08FD39A8B59C46BCBE87FD9948C55F970 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAArWyqsdzaWD9fgAAAAACtTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0M1oXDTI1MDUwODE3NTc0M1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1BMEM5REVDMDhGRDM5QThCNTlDNDZCQ0JFODdGRDk5NDhDNTVG +OTcwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkbh/MkYFevQ8uJXk +IgXusXrEfGBOrXkER4woi573XGfpvtl0S4OA+zXL7NeC5nI9MhlDckrS72A0cyel +kbo0Ugsu3Xht0HmiASLvQuKFg3pqzz5wqv/gULHIr9SYVeP1wyipEmyX3Y9v7Ded +16atBR1otqncXHAKo30gX2WCIBMwyQI2ueW3ZeON10iI3Ln28a34AYqWUNTelyZh +FAYNBBuwP4PCV2xyhPFJ23lsVybSAxNai6vwfy5JpBu2Xooup/zaZrRGiUXpDTKQ +SDRHXL5VvM25rFiP+Rih2E0G7WlcZguFRajFBA8eMbZSzOrH1ydz5yoYadJ2e1aq +rCZDU4LGH6xuUUn0whkPTZKo+S3Xn+w0XZXWef6edFsfPAEH5LT/yBTdyDB0wQ6p +S1cwKYwoyCH884GN4XH9QQ4okeH+rEW5FOdKHNlXL/EfcLiUYl4kMzcgaTvOBau/ +QZ0Pi3HXF9CoOisTFMEDHNSLnVhsIxa4e1OrjFNh5+vjade1kf1x9rV5aNGYRTDp +JhZJS/WMabE6pklttmR2b6T6ua7RRpnKYfF2BU5JDOcOi+DLRIB1fXKE9r6xPu53 +1+wf06nYYo6YC05XKUBy59p3gLxwUIQOqdlh+XU4c0/Ki0urkUaOyLRTuvxoAy8b +ov3TBtOEx8+AYUous+J0ix6+OEECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFG9yZom4n18nl3x9 ++MI2803ELQU0MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEACNuyvENPxZSOyWP5UTT56ZJmtvGGzqeXo3mjD6xvRdOA +Xx7kschODYdiHvTk/eF2NRxhFOvHLKVmNO9IOiL9vDxJX0lBmx6QGMk2gsU6eOKT +IfPh3xWp7saVJlEngVk/LogIjk0z7LLOTCDBml1CkSBwUiYHxtmXZaIZ1f8HgpfY +Upo49EVs+oOgyc8n5UNbqKLfWrlvAa9sT3Cs3F0zKT9lfjRgOW3Us/8dH6+1WDOj +0Ad0MmfYchWTrw8aiBfv68sTuF3k5JkTmkutR5xTv1qUzYFUpFAg95f+HWbX2B8B +GM19Akn8q0klqD1IT1elux7jFG9gl4IwsDICdTy+/IytU6ruBzU70T3Gy4yWpJAp +JQ/WgG6+MHWO4gYYdTXBbVaM38c95jho2VLGibdcjnIevIASDjRHXVwnGkNjxZ0Y +bJ1L9vkMZTB544kEHimw7LQ7tDpm9b/dD7/zWFtxhsJYCNk+e02S/iIWjfBY9Vgb +rz1wxtbifExVuJvTZxsAHtWrdKLvAQ6L6Bq2WDpm0cs3nNPgopDwb410vZ/XRrt9 +xRdKB26VeMll+CJ4TyZFxTZVrXVocUUtwLtJEuz/Ar6+AFvyI/UZxKsd9c1Wn+l5 +/3CdFjsOBKJBJyMxlJtU3JG3+aV+2RVJ+7IuOXEr7bBiVSrXGEyjG5lg8715EoY= +-----END CERTIFICATE----- + + +WUS IFX KEYID A4384BEE3966533539CD0A736D1DD2C213538DBE 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAdLGyRkIDqfucQAAAAAB0jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkyNFoXDTI1MDEzMDE5MDkyNFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1BNDM4NEJFRTM5NjY1MzM1MzlDRDBBNzM2RDFERDJDMjEzNTM4 +REJFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAslobcq3K5cXIkuCe +n383TFiCoawBbIhU0x2m2JCRnirzwT28yKqZpxLZM+JlCg1nyeLlfb3eemDsdGkj +RXXjBT0TlDHmJUSc19oIAv9N0MXB0njzc3a/E6MY8cK9PmLdu6FVyuzlj5/XNJo8 +z/ZtLrReaqIsTFDOC/X7Ukid+8+JHXRwoUj5Z+BX2s5M3jRx117CPmWeOWJ9C/fv +mcwAQ0pLmI1An67/w2w3Duw7rhL1caslPKaIn1uNmy+jieqbAYjnPLfmzJT63HS3 +dmm5WBe1wYCyPSlE1FWy57oDS101+IUN8OfS+l5vbIFTflrhcn3M+T0FtOlP+bEz +82+tqmvBkDk3W1L6dSoAGCSLTxgtgGVCYODJOumiXvLGCbvw9xtdmUZBqBnbmmha +wA9jBiOBLFQH4o9l6pERNIOlCbzmEu2cZMrYAN752hDLRNDy8BM5CFaCcfO9dvaD +FneGUZ7IgGo/VKNxh931wjgNQYwg5VV9KA6iiRcgG/wLIp4dcwBfqhzS6Rr9prE3 +UQgdON62tlCOb2r0YBMeapOpDusowP4ICMufM31rZeEK/RQXiu5GADBeTrO2Q+1B +D0eOX0TLe0FNdnHEqKKiW/evl5+garEH0uK2mmUEjWgmy+0v3KdHGUSx2cYMGJwT +Cj/5KqK5jGxbzAFVP8wY5sXwBmECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPsKmtOLG1uU7vpv +Jrn9ctMa/3DbMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAVhXlTc9gbD7nt19QZt5Y1OAcLxDaNni0qaH8SUcI3xkT +VyiMe/l7McfCRmA9D4ZHGHXKka7fvEnWu4GBVkq6N3KjhWMmXgsDsGSUzmAw/rde +n/2NwybSX2E4RB7qxP1goj1pjw4g6pUBOh9ZBZ2hj8fjozL9SFNErupFW884gtPV +Nf5cacl202S77c+RxydZRnH5HgSkc46pyxteC/g/Kz9P1dmKLQ6Fd12d18O84AGJ +wzzGHG7535t7pFvh+GUf6X6UeYGP7arBeGgO11tWxxrXHz4w14+V4kJa0RhzfUe7 ++cJcwruvu+N0IxfX63N8fSQofLen+q9uc612GS44p4fK0AaB5wRnQaIONh7xFQX/ +XmkbTZkkugoH2A6IjKCNYt5ZNwNPSXK1uXtvmPZ+HR0uo4VxknfTgtWZTDVLJkGe +EpRxrqqRe79P5VE1pJRZABz9Kej77N4BkaDiy5ggbizQYqSALbpyVLUoJ4eYGJ3G +7jPCeoKhiMY5BPvW7SaIMV2AUrBBkYt6l4iks+q/2tckekkGfpZdy9fdqCJL1z9S +cwvA8m29SbsQ2yTao1BLqNIYRbnvvuMPCO373lVtOfebzYNYoMaD+BNm+ywelxn4 +iYMNOJf27eUxpJaXVRRNoSDlQpQCsyz6KoTCkTG6dxFdU0mpt6QM4qIipX+nha0= +-----END CERTIFICATE----- + + +WUS IFX KEYID A4D18726364EA2E3B278464CDC7FAD968E015D4B 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAdGeUnEuju3eNQAAAAAB0TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkyM1oXDTI1MDEzMDE5MDkyM1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1BNEQxODcyNjM2NEVBMkUzQjI3ODQ2NENEQzdGQUQ5NjhFMDE1 +RDRCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArqbvdVSS3Q3AthXZ ++0lRR6Nb9w4vVByVVSuAAzfZK91Z8Q3Kdpk2uZPTMgVkqUouM2Uxf7GnGOD6DwiW +uYw0uu3NSZifpwEmvzHkhP+rUAbEGEAk7EYVGg9KazXXcXnHuCgvFiYh4ASzcYiN +Exrt/ZublH1tdvd76+9GRZqq4MQErjUJ19NMSOz+kvuQmCfADJkeUX0I5yMEbLzv +ovS5rYnnvM7vChfDxw2n0PZIl9+wORpRjrQVOTqQDKaqLamc0iUbOihCkfzPEbx8 +JS/ENDG4AeIYOczRuwVZQ8hSTvusrAi5GFVd7LC0Lp866X76LHRW4GHLu7u6TK10 +JTwkTJ6OZI5InLwICxyPibqAfkuG2AXjczklhbd5TfpeH5aojQ8r0dR9Xdx7L4DO +mn8iHaPfxF3yGiVCBvpUGkvYIx2oghNqVXHqY8SAuDlIrCrM73MpkODSLqJBwtDD +8K4RNvRVVsZjF66WeEbMqcrX306Ovt1On1xo6l7vvXbi+CuclV0gL7RvghasAoqH +vMM37w9Nry2RqBTkOQe6K3K1u++V1EXzQgVESSMjmjZOGs7uASEb6LDtKBUTON8Y +Iqk3v6gjNompYuVfnC9uYiL/F6qm04UgJnIVSxLrB91AeOESFbDKYyCQ2dt8jhNE +/wXgV/34Iq4TxpWrGqwcVB2V0d0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKcKYuhZUQNCDhuO +zVyX4JAMA52iMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAUdxbqfDQdOTwosBcRanprnJEuTFYldWP5zybgDpdlPKX +SUGO1hL/ZpQItc1k3XhN+R5Q8fIHQ/L8EsyvDG39ZhwQeWXAF5JBUNRIlrQFv29D +k5FNSdwMzFvvIQAXiPNGsy4PCf2BHCJuSjzZH/1Kxv+B7HJ2YPrSXzGRj83y+ZOU +jE/40g0SZrGhp+RQtU8DjgfxQiOtsu8S+5D+R0egcPLmHS4LLMasrEAJ0Y6UGuv6 +eJdX/G9uErzq2P9xcyz6Ros2/BGiF0O62lpexZX+rtH4Bf9AhUs0h85kCmyxJn93 +1vH71G0hMtdrLsMfCGzjb3WvTsZ7wcP14mQ9Dsfg40XztPu5sYiJaF/S6WBDiX5S +3QqIzFP+OQhpYTI49hmEOPo1tnR2uk8Dd7n1q/ddy6gmye2kt8VtXfLqnB+EqT1z +YBBMsqkRL0AybU0llDFJZrExhHcma9yca2fxSWZ15R6HICoSc+MG9DbL0wzRUaCI +hr9LMd0iMk56Y7/7pFlbYOY3ILvH6TSZ7B6xEerwJqpGDl+Acmn/6KKLIlfzb766 +jUvUhtjgibx8WWZby8gu8oGrSAarshElETpKdpL6DQ+jQDvHei7ddC72DpObJAG5 +9crAXDZNwsAA8CwOQgZ8fFunx8+2Y0/YhhorXNqnqzUmRHYyRqwdbOqtd7WwAWo= +-----END CERTIFICATE----- + + +WUS IFX KEYID B02981157B6D7CC3210016380B898950524350E6 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAdRvUSXziP+ZiAAAAAAB1DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkyNloXDTI1MDEzMDE5MDkyNlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1CMDI5ODExNTdCNkQ3Q0MzMjEwMDE2MzgwQjg5ODk1MDUyNDM1 +MEU2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3gYtLMsAtbCLa2XA +wZw41tecYiSZ4Oy+2knuuT71Ls9Tn9G+vbGngaH4N25gunYXbKuB3/aNKNjZv6hC +2G/P0ED26OR4yQIunznLaUpX8ymMYvV0wVdHvXdtOOZhNYSkIRBx4knCQmmDcRYv +p/bJluwZf3Cw93Qw2Uc8Zz911TL2nOVBfgePlH4YmQGNqV2/gm1bl8JwhzFZfV3C +hG2x5dhpHvzJ+RHJ+F4DH/yGwPdbObuEHZZzkHVHshr6pdWVk+WIsLkcZgYCqGXX +b5JLFxyyK3KLBSo2MkY05mFzT+I9CeEKHB1X20YZSxfL0nvHsk6Pr7MborvqgaAm +vlew4W1lllz3OrWaf6OV+robgkJKve5LHquW+jeyqfcnV3vJ0zPa7tZ3xBvDpSsw +2eElOlym6j0y2ehyHoLPGpbzub+i78o0StcZjtR3181gXU3XX2YyR/rjqIhMvnka +aRseCku6KhikPKpOR6u7pUt9/5sjTqBMvMAF8rt9adFzrh7g+C/K5pdssoonMaty +7oD+klD9VRV9rtHL3d3Rm/4OTZH5ZmKzbjhtlcw6lku07asN2bsFmIxPT5dMpAqv +Br9MHI12jYcSReMfPNichHxJzhHmpSlr55BapcRVDgNvOWhayoJahA97uiOQAQHO +rHajt1Ivqd58eKROhX1MtwZoN10CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMDoY1HPu0FyPLoo +1h0nWKQJSBTOMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEASTKi90CBVl7AJqrIDZQO++929jq5KZi9w1bOYOWA/nn2 +5Z02px+zviAEp4nOemrN5LlrcsE+XOQGoi8HK/Rjb6MbYekpFeN62FGZPZ6T/Rx/ +DdP5vHbTXlUwbV4Ynq6pF4kQEV9201QcxWh4lXqY8AnanO25ARcPCeHQxOxdE5yM +s0uPakJf0MeoeFvTzYtVFGJac21qPG3z12s32njlOH8FtUfDzVryD74GNaAO0kLl +IrovAHfZW2NIPcY8funryW0OK68QPLM0GOG0ZDLXldj+mvFBURptiRRkUhridr08 +AobGvmApjaTMmamSxUEPYyv2sibEWfIr9JW+HOthYV8ecIMi7NTRsIdqBfFAsadD +pht2By/g1GLWRbaUtG5Todwu37u9CUofTsFix7zrgMc1xY1yl0RcR8dbgWDZkxEe +35QjLDnLVGpdROAhPZtfzWFcFUya46tcu6LR7rBfkuCg6v1hBMwQlIlHVjiSglkS +2CsuKkJfYRkHeQiTvtW4Alv0lronjfS4iukOJaY/ODZgJS8Aw4vNmeKHnyK+F9cP +HFAsimXr49FHypIzfK56sSLid8F2B173EiAu7wsfyHVjm0smdwKuqS+JH8MNB6yG +WL1IS4DwfaxnS+yDNPJNj92UwZ27rNMN42BwGT8rTPMucDHizaYzs/sKAWiEaag= +-----END CERTIFICATE----- + + +WUS IFX KEYID B080359B59AA938800A4AEBFD10CC70CF01B1B37 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAdN6vMKhMdeMLQAAAAAB0zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkyNVoXDTI1MDEzMDE5MDkyNVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1CMDgwMzU5QjU5QUE5Mzg4MDBBNEFFQkZEMTBDQzcwQ0YwMUIx +QjM3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAx3S2WNoqz1o506KT +f7hvn0qPPQO4qCakEU1AbsBtUwxtqhSjKwwtA1kqP92Ck5fne2xxMqnTsI/jc4Um +pg0M/1x94quYMWvlHLKBzBSLUPXT+ZxEiJeTH3EeVyTNxVEhYv/TdDZyLHN1FEDD +qlhJspVUibuHQOx+sw9gGy9VLm9uY8eF/GBuQIciMYaxiSQovyCNwRqNNj08+qSk +VVl8meeWbhlkDkuTK48HZVHxUrqOes+73/42HGXOhXDzV9BOYBH0+Ptp2yHZUCNs +XuQn+rOz7Hm7I69nn/fivtyt9zmtgFeIK/kHHRdQ/Lo7NaSwOKWfNAcSgOu5c+Hx ++y+j2H9YtLAPcreFmfRdgwu1PFBRxZ2gciwEGifJdyMEVb3KJpYJZnKICGCROwdr +r5JB5fXuFGzRjI9sZWrTkQCHbvlW1T1fD+krb1MeM0NqtW1MzMsWVZNXMLT9OS5d +dur6f9OjENY1BXyDeGAx6+ZySnXRhPt9aqViJFS27UGNpJgJEO4PfTZZB2ial8hr +Ppe24stI/5VM4VHX7KiAK7/M7a5d4yG9qf+NnVZNQKzGQ6DIS/FuSJ+zvGLJ0H5o +c/Dh4D9CU4alh5HOewmpcnxCBxcplb6XsH4oESj27cJocCqPq1skchd6eL4W2EZg +3zw7DBykzYwmN7yy1Q5OLRhzQRMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKsbLPauCJpzq2SV +sTCUK4RbgJKMMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAlnFX7Jv/u3tmFuOzcx25Z0m+mu4ubmOlv4du566gZ/QK +u/S06OwEIRS/bN801w1kdA0UwveDTCLyOPYm6aRzhUCIknY0nEEVM4TKk7Eb7aeB +3kXhwy9AMP/s9buTuwbQ19RCquiSp6OZN63lj3zyZyDSPE1cPlxsbXNOTikjFNlD +qDMV1SCAeE4nwcFzCjpsGYxOTScj2L3lr7jM/3rMQEHygwdCW0SQdqzGf3wp/FJZ +Lbm5qFa46YUADYn8eiyHJ/KRYa4M6ctrF+kWB4Z4Uy5hl03uwDo/dfkyesRtONL/ +qsI1ibls43Ic6EUwzUhFKhASIBIg7SctpqxXk9a5jBI1LXBVXCFWHhOmz32NWRcH +AoHEwugSgN1fpOhX+cFF4+uyjZXE7oNzAV6nlMsVI9a/yKy1iOOcE+r6kuBEoRQN +7voTbJ6bj/mAR611K7i3eHeREF0ISHuZ8X8MII5tYeYN5r6AFgXS0/0X3sy5c4Wt +55fyJusJlDFVHh+yX6JtZBjTLobmFEGlbvDvieoULQBoO4C7yI9v+oXoqEuZ7goT +9FHTwe0SDaCBiZ0rW1BAQwF8w7fV7k4ywpQTMWBwxSehhfP5cjoe3lKGzpo5H2ET +bqFtNKm/hGWw9P+aI4wg+PfZBdEc9x3aXOqG+xFmU7LUtRsApULQKKau3CuW6nY= +-----END CERTIFICATE----- + + +WUS IFX KEYID B2D3CC08144C50808C289D119627479BFFC0E4A3 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAg2IIdqEDOdluwAAAAACDTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMwOVoXDTI1MDIxNDIxNDMwOVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1CMkQzQ0MwODE0NEM1MDgwOEMyODlEMTE5NjI3NDc5QkZGQzBF +NEEzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtitO09ruCAm1YyMY +8fv51PwptdPyU9VK+d3gvicV7FXqBCtp5xGs0pMwU78HDn+G6ieN5ZgcpNfVulB0 +7nfbf/QHgdu7sfHBwJ5jJRb/12T/JpET5h3lsKNBIG7gkcGyDKgzXaYKcYUwovnG +UCXRKQE08RXzupn7uaf7gSZ/xxbtW0oVyst9UQ3yFWM3BzDWUTNeVownYFBZRJIU +7FwvLRgZHw3RvoRvobU/0OnUIy6UY8NHbRZJUpuCVTp45B0xYkvH95C+HYLH0K71 +CkfME8uSpz2rsB+gtaLMLn8oouhohWoGAHBha6KJe0iRzbIYslMFbGAHoFKK0bJH +qsuKJS6OkjimaDjUK4P0fFeja7tyALEuBVL+iJ4XyO/y7SKP43vGPSQVi9d+MPd8 +xfPbHKa5keEM9uq/wegev7jAdJWA70stY/0yNdrUwPlwawcRL8wRd5zBe9k/oYrR +z8ZsPmzhvCIyxYmTc1gpneonyNA5MSZXPhKlhg0YRITj6K38O6jMVc79QzI+MLPP +bLpTc2TcyxiRzgY5G/fVrFFhcnJqRgfgzJoGD4dEwB/DU9hCcahxxXUbmaolhly8 +BpqqXf1QfbSGQMqGhAyU1fMqCb/8B1qqPufpGwmyoufNwK7v75JTEP2hAP5//FLE +GSuc7AqDzORl99YEyGv9tjxgRY8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFN1l41RXZklPD5we +x8I6YcjieCYdMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAgkzTO1wBmvjS6XvsxemRQhoXWA501xySjtCn92LEhh/j +RHSWCC8vdhm8qB5Wl+F41nJHCZUEARCTuAJNMTTmDkYrSIz83+ICwhUAHZkaQcD+ +INg9cJfvPNpb0EkVUXtoiMLh9vIiF78kedxCgEEi2kJy5frF+ZHBjTyRetd+ZcT/ +4+2OXvEPZcO1lBRpU8h+0qCKW40iFioyAUel5PnguJelDAokYkPAThN1+arO4W13 +cwCdXbtvz1I4/9I0lRwxtXN4Hmg7JNSw+VETJ+cB6kD5xjzmAGY+et03maalrJ40 +TNx37mdhlVLdXrSRSnRvOXZ0BhFT04OL1ObzoXK/M3AMlCkndi5H/i+GzsAayoqY +Mj41EHtc7y1EkXTbM7aVA+kgub7u11uXoDqisyukc4Urr0rPhq28TAuU/eCS03ut +a7OvCzuAACDJJFSr6NqI/cEv3t0mrZ/qOM0js3IZtbcjZRrk0DllY0Xt/HUikzxu +5UkF8M6mgLBx/0cYslJM9KYKfkEvQd2SupioF9Ikk1vlYRin3y6VPvmxXAmhIX8t +AAOwenfsjSAcCSZ9duDgELBAb5x9OBrkN/z5FWphNghrJLIaQqLNTnteM15ob4TN +TeU3hO4OQRJn2UYMFxdOraeBaA7gyXEC2+Qtt4IQZK1LkDdk7SKamWDkgqUMWQY= +-----END CERTIFICATE----- + + +WUS IFX KEYID BBCF7CC184213166DAB5BE53A87014DDD348D8CC 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAArY4ysA0coPEzAAAAAACtjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0NFoXDTI1MDUwODE3NTc0NFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1CQkNGN0NDMTg0MjEzMTY2REFCNUJFNTNBODcwMTREREQzNDhE +OENDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAto/LSZc9L/AJuSm6 +3GlcwOfu3BakVy0Hf9zKIlf1VpbmKP+5ATiUgyVJTr4nv4WQ9I+a8HSn1v3nPf8s +ka8RYkkCs1wi8hFSAt+h8jTJP1qr9VtiTh7LbvrIXy+o/eF0gBpe0plmWfVUsw1d +cecPZksHoj/9EG1QKAD1phXvHRjt02bqRkVcflftrvqpxJqK/AURpKe7Yf9Vtude +1oeNofXnBIDBBfkkR2s1EGEtd/nYz3m+Kga4JbHwIXGUYbx18zNcm2cN19q99ROj +8CMFHRdbowftNTLpzsVLhIyr/CJ/VV9f/EkqVUeEu3/ibrUQBxeKduDjscnwc3JF +SHtTgpES8EUqt8eOEIbss6frbybUoi0lDluA3C3K2GTQSGsiLgtXsVtfBP+ANy2I +brI/KsAZ2ddk8JjsFg2uUMJv6uiNr+3iswdTuEThKvvORRIeV+PPPNoH9iG8d8dh +ybSSsZFxccXY0OJWoKRvnG1mxptxxI54dZQWzJ75CKRCohBxpaBoYMYHrJ6SHw9a +zfY4fN+apF8Jg/hZbN4j2iS+EfuzrYL0WuxSAb8lgG5jgARitX6kf8eAGvaI/Y3d +4gifxiAORXajjOQgIHtBCZR0wk76myelOjvliobhs8cwphItjGDOoPF9vPYNCx47 +XizJLNgQx+XdO+OMXsAe4KaBIHsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHnKN0advTLXnNv1 +khRyY8yaAIBlMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAJyZudRQRox/rEg12w0XV9zMd1Sszy406CFXwi3OGORP5 +ppPypEa/1I20kgPk3Zevx15kC2bhL4wvTjNkndJZOU7O6eVXD8uymS9nP+oSPV5r +9GQO2rYOgdMjyCA7MIMJKF256q7J6EnYVRQOb0Lfyc/wrwmEQCGEy9cCm7GezVCc +L2Xl9X/Int0M5blJtebzSPtga7dbwi+KmnGntnW4Cich+APKuPltw8o2IID0YeQA +3tjV3Nk2y7ibX3pVQVFFqm951ZdYS4kttkiaGNO5Dq4uv58v1jLpoHArzgA1986m +vbdqKwl1WrfsJRUMZ5Jwb3raf79vB/59LZn6A/kzM0zcykTZc4METUBTmbK7gBqP +6PU21IhgL+LjmbxYvlvihX1E/4m1KPNh92Gbx0VU0fT4TxNCXdOgl6AhipRzpEmW +mZ8jE3/4Qm2TvMZdFgPXZPC6eQzJGiKtiOvcyjZSXFBAX7kBlspGXzilSQkL0cFs +Shjmd68HMDtqb3NC4xUvhkjhKBcmhwtaaASJ4LkGGj6LKu9wk/iweR+sPIe0oj49 +EjZANkLut/z0JffsMASRl8B+sTNGIAPm8Vz0ah41B/Z7RgSxytMkdKHMuy+TIsGg +BxY3sGLClv9hfRNvjl9bksmfKAITnsTHbpihI7x0nvFz6VTUKmd35RtRvjpITWA= +-----END CERTIFICATE----- + + +WUS IFX KEYID BD6C69C0759EAA95DD6D156EA64170C4B9B36C78 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAg6IT3PDTRSL+QAAAAACDjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMwOVoXDTI1MDIxNDIxNDMwOVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1CRDZDNjlDMDc1OUVBQTk1REQ2RDE1NkVBNjQxNzBDNEI5QjM2 +Qzc4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAy9CWR1CEnQx0zTtN +R77zcOykxHJBnr641Q9zpDB8VfpY1Mey0LHBZq7rqdVw1Y6kVH9N9zExoRp5pWMo +TcUQpnEO9fU/px9YV4QREEmdWItt366WFuofr+7epbKzNC+KrAizAvIzptQM+Mz5 +xCN3f50qkJA9DlmlC+JgFHs6BnTjjC9hKio4JWAQHaxY9FrX325JK6YtHL5ewDE6 +2e09L2XV5MQRglYGtssCR9uWFVCTFHJJVw4xb3plrllk6MEwWIT4ojlk3GGxfsgT +sP7gvf7FWMMUpLLtLJ52fmL5PhE/zDT/YTl130heigfkTPP3aOI9R8Dsa6qibMSZ +MxuBv3x5w93VoB7EhgZ79KKWRRny0jXgW80D7ius+q3Iezw0qaBpKlBmuMIf6dm2 +uQeDHOTKh1dCbPSIh8p8YZVvGeP3prZtspR8J8dGH1tazZMY3BS9myad229szuUM +sAIZprfFY6MczmiNueMkdz5T1uLr66u07u+UY7+NvFOm/9+l6KyhfkGJNYWkAiJI +jS+/zGl+MokjuINApbnzYvaEPGkiwJ8nY67i7k7MhQqVMkZCFuTWbN2VDytvXgL0 +c2Or/3pBH0IpPXyWkIPiYBtsAc5C9VhJclUtUfvD1MY342re5MAmi030OlVfuWbb +yO541LGwNYAjf0jUoTU6bbirf8UCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFI9JhC96ySm62Ebr +7f6TJ3OaJrBQMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAJGnpR7HYt4B8Weedudtq8sE6Mp9nZG/pn/bTAYz89Izt +GJ4vEqr/kvBtdCYYIkrgPJdCbNIwiLvFmfUgW9VMxwSYpkiibXkz8PRjTHftrOc+ +ceCrwWE0hY6nINpyqRa/SVX99n+PWZADi5UGt8vZdHbQFnWjZ7YtBdEd6ZlziuBX +Qkx21d0C+PQEp9tniOOn+L3mNEWrV+D/cVMRoZk4fPp1Z9LtwLYRyLG7izl1NxER +vnok/XQel2pHW/3oxi/CidId7Gx+QaB6Nx+cR9xOXlDy5nSzlKEesuvb3XCU67sR +ts1M1bn1/eIDizGg857aqWDbi5NaHVFJt3X4DveEuILl4Iny4AHSBEm5Ky76c23m +89HVDZDmbCSl7j7uqFHN1yyG9Sl2gCiWL8wwyv62eR3vrQg2D3KjjkvRef1nK9u5 +SDchetlGKVy2GZzx/elCwGVYyp2LTKfd/yuaGCwYgXya6p/eYFB9FZoKwpXlRuwj +LMg7V+JlPwVkAr7a9uiid8V5lKLUh+EzovgexFSqlSB+HG4zq+CDxCkkn7POLYT4 +sPCgVqgjwErOV8ByChNQ9qnmuNL7dEDWuBoVBo3hopGDF2S/9n+QrNP7McBsVCvs +GVoAaGYgkvQoHZry24FGboJpnGsvkWvYwBw54M5e+S0UadPIEYheHA0DpLUBK+Y= +-----END CERTIFICATE----- + + +WUS IFX KEYID C0044E3B23F43B2854BB76AD4FDD79BC62986C55 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAd7eZifmvDioLAAAAAAB3jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAxOFoXDTI1MDIwNjIxMzAxOFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1DMDA0NEUzQjIzRjQzQjI4NTRCQjc2QUQ0RkRENzlCQzYyOTg2 +QzU1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxD2t0Ax3JpHOTgIE +BDK4m0qU5kD3IDRmlXWwcIjwqZIjjrQHXF8kBg0djFyvxgcRJ1p5fclXbazzrrOl +M15LpAlxupbDmuz3H82bTWGp1QQJzBnYuMBPj5yI5c8ihShCPuuqbNvAD4seH2yf +8rDDFSU2ePhoL+W8aFZdahOTYTz7O86CK4YfsvIE3wDhYk8JG24lWiiQ18CSFTvp +ft8y77sLIhPNJOhUXwh1b4YH2R8tjcTlhxgVgZ8Cow4OBDLAVQS33i+CKsyyvQDK +1WzjsIp7Blp8Frw5TEUbbTIuaX5hX+ZKbARCEYeccQsebbwYW+gF/0HEmcTrCT/2 +02HZQpjvVw73qz6gejdP1yGsSiw0XGDkEAfeAwLxkZzZVBNj5lf1+ZJTBuc7vlYi +d2ZYNSsN8SVNjfinSewYnNIjRawwMnjkxNcscLgGf/768qIwqBOPOCVYLPjDOma4 +kulEFfWlHoK5sAgy02KsF6TIEFLwiwhxFniqEO860G+kW9l2uhUTIwG5Idj5VAHh +8wzsYMhlzC2uOVjNqmitWG7SCsezySlVjqtXwyWJ8sQwEAC3cuoUM+f35JYDjs8b +8n+za4px3b6OE3s5Y9EOuflzxv33KtZPR5vFozMCUK5rAoqcawvsppTOXrf8OWlu ++rra2FYHiAZhpxnH3QGTHgFpmm8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFK+/r4F4yqGgcdoC +LP2iHVfvkVQOMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAULuTajIfYMKit/v2Atz63Y9OQYlwr4L6zjY/2GwhvZvI +5DpgtC7h13N0t2IQ/cxcZVDswEyDFJYviz43DX4TqK0jAopSbA1+TFeeBS/PS6A6 +KH/1R5tEDekLT3f2aNbbqW2DChuBQ0P+9Euqa3LPWZ970/N9AgJnL+ImSZfI1PXS +X35lkJK9nRCTJ9iCKzBNB6144uFYUA6cbzvP+gKfJMfRqf/Vbmfmq3jxJFgiPLQF +ZjdWTYN/bh7ru5Yu2P1Aj5Ftg3iiravzNasDLa7il4l869rleEQPhdPp0MXEbaPG +MinS5ihWLnNQhsPRIJp/fBjsH9WVyMwhxGwDyzZZrHEWOtXkYqmbJ7C4ey9buqlq +rCHkA1KdY2xJmcDeYWr3dez3eSAhPTzYNZoN8JqzEbTTFrwsIveLaTi7AzLkT8Tq +PDEByQ0A55IcXgb+iMoDSa7Y2pfq5nqK2yMK8UAARjkQBVlN3Gm6pEnYHuZWUkdp +O8zUPes0DSZFSmBN/pJ4e1lioGK5BTrtjWpFwvK8Zn2DEaVmXCiUTNrto/i87K+n +qEMyT3Okhm317m+Ou6G907M8t1yT+liUFsxsOwzrS6AcEEmOW+ClVjh7/dM6GSWI +AOuEqU6GDYZOux6zWxgo9JJXx0Fu6qPdpMs1N8ODzp9aVeywVP+/YHkyXfj8TMY= +-----END CERTIFICATE----- + + +WUS IFX KEYID C6CB2A4DB7294BE911724F5041310B4C42F89BB2 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAArcL7JkxSOV6eAAAAAACtzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0NVoXDTI1MDUwODE3NTc0NVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1DNkNCMkE0REI3Mjk0QkU5MTE3MjRGNTA0MTMxMEI0QzQyRjg5 +QkIyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0MdUcR2KUcVN1UPa +xKtzq+z/LyBxCQ+u8kzr0gLNmt28LWxdGzcNJuHq6iH6K46T7kCQ/33D4iwe8fVE +9Utdg5SWYRx+fe5wKG0B5v0RMfJ0+huNG1Dvqs0r8YCr1veT+vxNpqYDk/6HLMyE +wTGrUk43A3Qzipfoe2meOL4uIDkadLWI6UOqsiC6NO1NvbWmqZMUqPd6A6OK89OG +7w8XhhBN4gxfRLeaNdLlNn8leJg00n//lflU8Ovw+H9GdWuKGU3oO8tHlnXgLZYK +V5eN8r07Z2qNJrCoWXr1d6ElpHtLvxb903clX+Lu8vcMc9au+cFF4dXJyq8Odi1y +CYT4gqt1EfL3i6EPy8gopRe6lGM780rQA4cisKth72l2U10NdE96fEVaOfIqsR9r +uTWx4AxcccA8yAKBovgOXfvvkNtzAPrCxD+ZILDPE0SJ1AhPpXVkqWuySs90VNQL +1QTKdI32NSYEnYqPqi4/ciOSeRJzBccBxK4UBfmtW+wWHmD1PyQuseDanRHN9agP +VWe6qYWxpj0qxmTH9WFSb24Od+DTt5DN0Eedal68HHlvXkcyoJVN1VrS9q1VnYBk +XdKzWZxLdeFDM73oOkcpd1R8s/ute0lu0IYeZzZe3zpu9edk/mByWTZdyNlCE5Q7 +h06Z/RzUIt9o+QLxEbQvP+hKvXcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGzdsqqTCDArFJhM +5yHRE7ttmHA7MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAZMoelhvre2c2jVvY2mWQxym3SN6teqenpZhjVQTGxhpj +WIbczvwN5OpQHpV6iyewtcp3vJk4YCrJOvsPOVtGApKHQoTq+kLn/Kem2bbqCGHw +TVSVo8d0aBlMQiZRwoNg/9nhzJ6FqGVKujXgnsK9ZEAfxfEEkTNatMOIsmN89DfZ +VaLLXVX4QBtwf40wN2wj7YvcrkRaeru2fCSxNass5MlWpvRKArwC2w6Qc2rWvJQT +yqq8X5TCLf8ycqpXw/O0veOjCmik+WilzW2ETkUu8YFuMEzY5qfTJSVtc3aPCDl9 +G6X1R1U7dxLzXMM0eDjnC52/MAtxA4WkFryh2JP7TvmMifS8tgRJO1dbxLWG/GM7 +RY8fV8ZMTx+wDc2s1Wwzk1N9wE5LJ576mC5E0mkmhF2cyrmeyd5fmguthn0S5N6G +buYKugcl+jO2PFgTQrN1a/8XAg/mSkWptg5qIkEc/OK6QkkoTEG4jJAIwA5/fC5+ +BMEK6oSMGqAoi2foIMse+0e3qp/1h+0uJzyVP3lR/6f5TuJ3vXXlCIJJplKJ3BrV +Pm9tABDFln8UANPBbRo63yAVRusxobl8LBtGJbRbRiPi35254QphwqTYezl+yVug +6RwhlK6gctwdycKaznqrrxOOrNloVawjwl+pMY3mUq3i3F5WTg9atfE4IDMCl2Q= +-----END CERTIFICATE----- + + +WUS IFX KEYID C7EE1D9CF6A291A06E4F5B88CEB25CAEE12F827B 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAg9s9AL5ZDXlYAAAAAACDzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMxMFoXDTI1MDIxNDIxNDMxMFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1DN0VFMUQ5Q0Y2QTI5MUEwNkU0RjVCODhDRUIyNUNBRUUxMkY4 +MjdCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3FVFCfWdKwNE65tC +yLhtlUuUqX7kumxSSiP3L+dU/HnKESnzUglRge5fWZOMriEBzClRJG0AyU44yAHK +QwzPRKb5Dyqcs7Keg0i52jVAb8BX4AqjSfnpsZX9kHzsS8Nfywn114F4TwlnDQVA +8n/1Mj2CPghrYPQZ33jUDV8SiGCln2SWS+3du9qTnEbD9RmmikUhGB5KzSWpJq2i +ZaCk+xoPQKHEYfuc04OVJNZnYeDG8J+eqOw2Pp0aEDF+ZbHwH6mVGsbuNIt14+mr +xEifmBp9jVSGls06x+oZgaM3ER9Sp+ketbvnrHxw5XVCFDIk4bxc8FAdJP/wyzPJ +NnvtGTrYJTmP+UGFwpv/2FvxHuxevFhvsE/jeg/a7m9T25JyLJGqoYddtPUK+FV8 +x6+QIbsRxh1NvpQERluCewtH+wMcXRqYGNBkDmyPRKV87yn7dtfvOSKMxiZx9ant +boKq4WeksGOBENLgdwDvREMprp3ZMZYrnrvj+uiU5XR8gb/caAeUWdYIVGrATxR4 +QKAATOaAuqVTxVU6VUfEb8+MW08D0uV7FAsopgvLQnSWM7kDfrWZyMsvcs9XDsja +zLaMD7OiC9J5h+iawJPSuphHJs53+UsO23gpsggh041UTkIgxjx6mPZ8W4ZkHA10 +0E8wQG91iyERBifpPBgwsI3GTY8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNx2W08dF3tdMOMW +xeNi5E87DwXgMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAhGx9rFEocX0FOIO5ysnELGD9QBPq3rNQURx9ObOHnjUI +cwVf+4agrI9JaTl6SZvlD6V2TCOtw4IaY9gZ3X2svtcCNJXfKbkOVDTXiWdhqsJS +NYKiYOHi3ZJtakj1JvTG0vXPcsMyq0GFVaStvrfuxVkAh0CATB56lSU0aS/sA7zH +stJi2pGMoJayTOzux8BGiBzngocR+shLPs03D6VHIYH4asKvvSgnmncOH0aqIi7k +0Wd8tkc1gCvujM7BMXl9ZlDNUmDt2MXAiNtaoauvvAOT6AfD4IaMDf6nDktolP4h +vWXqig/GItiIrAbHDAJHRBRFjLp9qMLHN2YARzlwXxwOy6q6T+kELwXc6yuBOsUe +AOcMK+s8BCVlcwVi7a44j5GJ7y7HKLA04WM2i2a2BqVDZ74gbcFbhCfEPFhRBnqN +vyD11J0qhkWCm3w+SHaYtmgD7ZmF8lVd4xAE+raAQTpRqLqgWmw2sKPmsCdWtGKv +rQn50xKyf3F96BqK0EEob+Ry8/yBCVOj8yD+ion6GF/ewJWWwz3hWY8LmgEO7k9Q +OURd67MirnC4dfTEZEk+Xmp1CezT9/tlr+SX410Af3X8eANrylCC+RQCtUVoOX1F +WnERyLw+9wx2NpuV5HZboyLT0XyH3S8ZTjW/64aOgQXVCT/ZqU6oXVb2qhLce5I= +-----END CERTIFICATE----- + + +WUS IFX KEYID C88C75FB06270BF7EA1244FB9C25DFD209B7ABCD 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAhAEpiM5MIX4nwAAAAACEDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMxMVoXDTI1MDIxNDIxNDMxMVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1DODhDNzVGQjA2MjcwQkY3RUExMjQ0RkI5QzI1REZEMjA5QjdB +QkNEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAoYy8EPkqmo7E2BOC +IyqW6WIRzv00G51luZV1idXjcYnHN3f5w2DSYBbMNJJI45ckFz97wQpQmuXmGJs2 +8UE8HZ2sCH/fDinRyZSdmnE2cSunBAH/LBiRpHSzIqaIv895j2D98TPoIVx7wj6K +EYehMOTjLrJAES6aacGrWw4bieAgBzebejSySIbQDmtIoGA/TbxRqQcCp/7Emjmj +rYgT+ERlCj3Off8Qm6YWJjeLtcHMQ5/SewwK3yjCS9sWg/Ew3hV5bLeQyI/Rm3hJ +HhUuK6/B2T6ykju4huOSe97QSSgfTGcb1Ga8XZSZ5efk0L374+9Sg69e4VVBoQgn +EOjpH3YzHYWHyzeE6ZrBmSVABspgJnsLfORtKY1fqXXjxCK4ILF6K3S6RwTGl7ES +E70PxsbiXxKkl0TwiAUj4UJt5h2CheogU+S8gHhyTLGlPoIUSgFVMuvMs6uJmWKW ++g4bkW1X9sqW2YuDfmTsTfeaTK/bv6xKiTTDnO5WsJ1gnGABRNagXKZzEZ4V8v68 +DRhkG/kPeDoSjpcpIHW3foIQNpTDoa3Is25gy7EziqgeoJ9Xhi53Lofre0/a6IfT +YUCfwISBIJGAU9GaVfGfrRZ2EKWhwkiSSkyqrIBp3bRUVRg8eCEPuacD/imVu1XZ +P9PlG47atC3JsQv0AD2RlOsfWJcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBbHRZFWw7fy7Fxg +/+OVN04qGoL6MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAEYvTjPVmSCJEhJub5fKBMRCPga55HhV9US1dxhKTjhGD +5MqkpC3SSMJjv1GnAoyhgj3l47WDoj+61qGp/dPZL0gA1FwHQX87am6fUZAt984T +t8RdFvjZtNX9o39YqwUfmPIZWgtmuY64gV/hAnbCkzm1IlvoSv+MsGnNgsmAlety +lg1yZznMWcXEAScui2gQ6qae7LbNVhICJdtr4w6VkrNnGZUdEGuAXBJKsZv7ZYvj +an3uCQDc54w6C1O2yE255P+RTe2WGg4dp3vrgFjWv790WQQk9jC8dDl6K90yvLSP +l7fPwMJuKo5YqbrPEsTiXs8gmhUl/0PXmYf0cQwpQYC6aSkgrdgzbeX5408u81Yb +9fNcYt5gPDB5t3xOi7Ybw99esS4Qhj4PXPEGrrYy3zw71pK7Qem6VS6OiYuBc4sf +hIBl02r5ho9ieVuL5Wdp0kVHTyH9lx7Qh+oY8q00LGwi0LOaax3qprncuo3Uh28s +ex+6sj9E5TtVqpSOsiIURM73FRuFnSamZaWeSKLknQkz1H4qhoxErHtbYNJLYkea +C9c7eR3b6ayARapFTixggti6kJiYeR4W+7yn4CH5OyXMaWNNHyTDhXboxSlUkvJL +4246sRzFzBz8qdQqp4FNaTLTOFwj/G+rxdUFP5J271ZeqWeWABxSud2VvABuMoA= +-----END CERTIFICATE----- + + +WUS IFX KEYID CA6970458673493A8AE1994EF1E29238F27F4518 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAArgE8jCCus0c7AAAAAACuDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0NloXDTI1MDUwODE3NTc0NlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1DQTY5NzA0NTg2NzM0OTNBOEFFMTk5NEVGMUUyOTIzOEYyN0Y0 +NTE4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAhDnE4FaTwyQgvyxu +9pynDWTWbXJN7tgquqk3UrcFWkKJQ/2NQLkCQF4edz3STCV5hJYPPYq23XSQBpqw +uEQPeQeCKtAI5KXhzB7DPhIXhaV4k1m+ij8nzZl5tafWfTGNhkaBNySz8nFSUCVd ++UAVBRQLyCJoA/yxFbZB0B/Z/MTqaatygBXXAPF6CVsr09jDO9VUuDE+2rIKLd72 +BRa3X7/5RHtDDH+xeKhjgu4zrdQiLGz3EplQONpsaQd92U9lNdRPbNUoJHCMGgVR +AsJnaniqPrTv6I+Aqfc4nToTVIMR0Gt2AaN6LWlhJVqbhDtzE5lgtzlUMaU5Bjtw +TiJxyOZ5O3ed527F2LPetSGqL2mJSnRgMI38OssYAFAo631YMP0QCSTJgz7m54D/ +wRMzTgU+HTQ3wNcwPvY6o6ibwAx208aBYB/m2kak/SBvZVwAk+OO2nizZdOAMm2o +1W1pSehI9myY4XblqsW6Lh9cLvEZ3p9D9TI0BHJy9Po5fCjO3Te5e7GC2yWkzDu4 +Zgy3j9zX2K82jfG+6FPx+2BRfh6zyh9KS9nCYCfLmdMuw9vc4+VnRDCXzo6JfXL8 +JmIa7BbnDgDhcNGoOahZS474bB/WExHI+Y/EymJjNwIT8I+XPtMyLRWCP8ttDgXQ +5q8R2z86UbiEH4uJpL9DeFXpBdECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOHkPlIeo/lJ1UIz +TJTrBOXc+DlOMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAS/T1u1TNZhkRHFLPPVokuvdrHabEBSLC7nckQmjvR0NT +IfhaD9iLzPhhNrpiamLHEIHFuzVVHTMboqu7FcOlisv85T/INUE6tnIs0rxXJ+An +6QELBMIbos/wBElqE+t0dqkSoao62Uq1Dri+l1lcNd57N8XHa9QMZRCTxk0K+y7u +TR2j2fiCew5pFlsyqZgrpun+Iv8G2AeVWeY9+7Dju8hHkaCz5UNrZA0t3UJKhAxc +9cFvGLkMEkotuDOrJYpxL4IPy3YeNn2QPY95hFfy5HVjENEsVjcN7vfvI9gCgNnC +hrcwzDspZ/AA6mlYIbr0mGiaGv6IG1R1xUG7BslbCj2l01gGCgXdh7bqGjczEuyZ +VwCBhxmdNaBE4VvQd5UTYBmOIFZAXWE6QL0ZJ8J3yQo4/tA7VdNoxNmyo+bDN7/l +4PlNKmXxkiO9ths+ogqM8tC04pt376Z47DhUUSZOX7xvjJQOhOimqV294tJXkLXf +pYzDAj9CqFRmLbhlnMKnwkHAGK9oMUxTEYzU7BooMNaWMRDFX6OhlFhiIB7D1QHF +Pg56OVnrWi7lIWeEr6/RMvXbYPxbct8gagilVU1V6N4TxKhzwR4KhN2gu4xCDrxk +ge2tGDvU0B0gAnxoIOOBOvUcEw3OmHU8SgvhqsDZNsukAoV0fAU8DKwfYBaptBo= +-----END CERTIFICATE----- + + +WUS IFX KEYID DA206EF5DA6CF79CAE93C5E472FFE9480172CC8E +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAWfX+pYAxsbQigAAAAABZzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDgxMTIwMjUzMloXDTI5MTIzMTIwMjUzMlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1EQTIwNkVGNURBNkNGNzlDQUU5M0M1RTQ3MkZGRTk0ODAxNzJD +QzhFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqx8Bk6a4lAy+SWX9 +93XiQhHjqnGvLuu9/PGqp3MFj5UFpR0jqIP6k9lkTZpIN/4ZCOO9+eGx29NjGX5w +fACcd/kSITGcTaeDsVFz2GQqtreKw4Uqxeiaf9bMDPHEwCA8jRaspxQr6C0kDYkE +fNpY8eT2pKYsd7cRUZNSQBOfkhlBdB4OB5TfX2jqUoPkQF8Vmrozpn/a2i04kYaR +qTfIGQqnvWIrtUdh3mmii4947t59iLK1HvNmZPrLxDt+CweuQwFjdBPVovPerMlW +RDD+LSVR6BSsjM11SdWuTgkOxl47votVB5MhMLuxm/rEisZs2Ok+zbCg67YuJum6 +6zresQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUNCnhmdvD47QUw2J5lJYTHcgRHNowHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQANbi++ +pVU7FFpqKM7BwAjrdpzRoSfSbMXKTAZ784XF6i95oTQk9xb1rS+SyPMzmuTWZIZs +hTbs6VaAHBmAtsKKnUthauGbPXsl4lbvCtw9TF3ZMmYOG3bHbWG1WNohblGXnBa9 +4KCIJbwS3vm89E6gK9C6WgyJ4OzflaiSWGJCyiR7pf6+s9ylOTun6pBZ7pUVWIfN +xouzYvBPpbAPoc0CPQl5zPOdNeGuAJBfByzIXL9fu8IrPfHLb4C4TI9oBfVnrc6Z +YTO0WD5rdIh2hc0TagPA0W2OQhMLG4u072nRx0lXylLA32FC49plRDY284PJsYxj +ayL/hgr10+5whkw0FWhbaRFaT6iC10b0r+JKItP+euD8lEoyYNJUuCCFlj9Tm/zy +mr7X8GKOHqXcDztkb8Obj58iXB7fDVzjQ5n9QZ2a6iK2zNJ0yNysw6jkV/qtbhZ3 +xsD/X/yZjWuANnO/rrqhhPVBu/ZJXfTVfeGotBCJL2t89VtZt5q++KBI4mfbrB9K +JKUC7yEpr80KblXItOzkRkmvSxG4AeEnwwQIASffmnP9m5cQgE9PuRbBos/40BZf +12SD12T9Trr3QZz+qJ70JaYU+iQLWW3JJHXobIP4V0dIqq0+OZ0k9LkgFLEiKOzg +gKrerxXbuiFa7wlkXORIudGDxhfRrodeQWMjyw== +-----END CERTIFICATE----- + + +WUS IFX KEYID DA206EF5DA6CF79CAE93C5E472FFE9480172CC8E 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAApa44sZliWIOvgAAAAACljANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAzMVoXDTI1MDMyMTIwMzAzMVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1EQTIwNkVGNURBNkNGNzlDQUU5M0M1RTQ3MkZGRTk0ODAxNzJD +QzhFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAo7guDhrfMHVE0rPz +Gno3CfW/Lj9u6b/bNflWXVumQX319sNQW1Mxbr9k+2NYQHw2D8Z+Su4/b4QQF+09 +8vWBPaPV8+mJx9sOlhfEf+Twww2J27kuIu5tWYbnHgsaEhffQS8eCv6047r5YKTP +MyFE0989giRry1xf3yHe0HoUGKBqPMa743pdhRqnXeMJ7CLDBVy57u+LT9QaBvdS +N7fJRk+iFBc348yvElae9RB1OhDlHERrPiSr3U0oCUwpPBQ3UUSCY5xujgI362NU +MoHJNGsRl0cvRc1bxBb54WJ9BZnGg0eaRq4USUt/yVeDQlxIkjGCC+pFI1HyIqGN +GIEPHfjtoMGC0/Y2mHuK7dbNCiqEALw152f9Bozko3zD09eQREFoXnjgQcGvjRIt +jC4UeUQYqrxGrMvz6sx4DNu1iylIZ25LtgGfiOnMTOCHEYWWqEp2NAQuTMeppNuF +ZrEXjpyOHcUaWHv5WKbggaxf20JLrImipTW81872zVXHouEwZBPxOKRXhTnY47Cz +ibiaOYrvCoOYffozLAmWkjK1srEcp+nW9jmDQR4RiQO37zW4rTwJlpTq/J+cv7bs +1wcZ5IEX0dVr92O79oGls6zhSgazFXeb9JaGPwlELuTlKMek/LleBapK/FyQ+Mpd +5c1ajnquLAUlTsspPlXG9mES4SUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDoMWWFMLIeGs8xJ +nEgmdW7iQbQfMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAe8IeSYXF1pdyZ8NrCTjO6WvxhyBhY41lmDJBB//oDDqK +ySc4ojmGdxoXA3O8vkElv1hFQLiJEhZ24HQhXnrTvaZMo7Pa8ZQTclOk3rSQUu8g +6f70nK03FJ9qIOPTZdK0ej/1CX5TARxL2NVqPxKEBXDF24c+JMuBV4/vhoCSFgf7 +K4i8oH26fC5DpDVOnrSX3C3tMm6TvV/TMTRchZvWMkYyaHEjUgQvcl++Mj1759+L +v1NEYB5shqfxZ6P0ZDNmXs5TX0gb+1TsVzcgc7D2SoMp0Rtg6oKpdFa4sG/01pja +dtylrvwjaPaqyEy9GJ7fzfIAsi+ViZMH6nOlzsZv7QQPm0V/AcNLwiyFEwX7H9fr +/mMFZzWVIa2Z3lX1WyxTGEWMBU5NbVJE77piVK7zBPkiG+4J6st+C8JHpTeKd7Jz +PGmu3eYIrpE1hxT7bNEPYtxkcESpnx4OfpXwCE8IF26j1Hxpz8Gg3EDGQCw7AfsP +PEpIl5BDQ78gRD9DS4/WDOT/fAQ1QuVqFXjAmu50Xa0KGr4W1gI08Ee4NJ72YsUu +aQjP/9yAh5WoFCIjMIMMRC5vjEv5wlTDpV3T0Oo1HfISIqm+iGcpB8MuaIFbn1cR +O07d2w32npbTcx3tJvBSMlOyb0ZJUDIqySFSrakd+4IjMgQV5c5WyRF3DBxj/h0= +-----END CERTIFICATE----- + + +WUS IFX KEYID DF5D6DAB5102DF18A1F77113F4983C62CBAF7385 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAeAbaTKL3CVxDAAAAAAB4DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAxOVoXDTI1MDIwNjIxMzAxOVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1ERjVENkRBQjUxMDJERjE4QTFGNzcxMTNGNDk4M0M2MkNCQUY3 +Mzg1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqINsErjNGuU3jdph +i4Zs4gpso7b+uxipdxj4i1p+tfKJafMuB63qin8avyCz0LxEG3Vmgyzmr+JfxFo7 +ZW7zi3LlcJpZWCWnoEumMmnWmrJ+uA6oEhxtZtr8UoGhsd0p3qLRjcxbfL/EaHFa +MDXGdFumrETl8AgVVdYtCUJ3txRkcYq5GKss0vUJuzhaevQgtI6OUd9zC2ra8KAc +QUL+3kKsQOsHFtZsy9hCKm7ILGVoBOxsoJCXNqyNEYx5DnnN+uvOGeSXTX6/ccxb +POCW5STf11uC9JaqDWFhwhYN0f0Ilv37JEC/Hkt4yCH6TpS12GUlLuXd51yG2o05 +zb/JvH2qkLCx+QzZghRkvQbCUkDRUXWsV5jtKp+dIHjItytl9cz1S0r+ItS1Spnx +wOkHs6RCAuX0VvEuRXPzjG6+B8Lpym+dI+fO15BaMAXZvy0XgfjtxN7W0x055Nf3 +uS5OJ0OwCWTtxYhTwIipVHl/I9dZE+OSPzwHvBQSzj5ta6Q58NBPR5T041aNfxR0 +LYiFHSfM+QYiTEOgqx9l12dZLbY+JX2w5GXC479SHjgkt/CFZ6XQCucO4SwpxzKJ +m0swA7F3kBnLoXZhy+h20Kms/ObG+9q8YsxMSKR2m+xK7Vz4WMt8SDiKTHWSu9Ee +yr73E2aRQ+mgUpiPNnqWE15zgJcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFL9NsW6ntiLz69bN +vEV3ZO4F0iHCMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAS+xQ1bxJhHUvlYFWgzckn41mvZgEIdU3QomZA6K+lY1m +CRPZL05BKnAdKfY9a95m8mXNcSt1ldZ7zY0x9ya63WcMpeh7BsF8evDrKWAeKJOx +90ORhjI0IiHVuHvyMy81ZptCwXriIq0HowkyTwqc0wfT3Gf0iSvdval9Xc8/5iOl +3ZEG/PkojWsboGkxBglVi5gSP+c3QalbacsWO74MNdD8Aue5I+NF7eppOZO/Qceg +tFSlcXGpvfHPYdROw+ULkxHQX5P2zmKRGxB5Uk55c3Ei0h/av2cfACwny1Rjtxaa +zXbAKDkmczozV9X7WZrcrkZFJInMagDlrISv2Jf9Bpab9CNdlNCd+aS+BWW/vUBy +hmEJP6uf6ZGiI2K2XrQX+oSRT05qQBYBJtUzb9JUGih3if6Ch6cIf/Avdr+n4SRX +IYcs5AlEUkbePQ4rLBMZ4cZ4wUn8MpIitb0HgxxTA2HS/p4UR/5HQQguD3QmZkuW +ezhSt5Q9iMuw7af4CwKu8fTLzKXVMrd4Qj+lq3ouHIKegKjePllCmopnDAC6v/vC +wGGSTr87HvPyVrnIe3zVPPOtdktc0+NJ9jcKgy5nJ/kdoJHTrdHzf0mtpu+98X9+ +TCECRoVMG8R+CSrCNellTQSHISt67Fv9kAmCB6kvoESKSBZUVDnu7fsqjFNgxMo= +-----END CERTIFICATE----- + + +WUS IFX KEYID E9061797E8E5E8C68F935EE5E976BC8FA17D7523 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAATjPyvMjJn3+rQAAAAABODANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQxM1oXDTI5MTIzMTE4MjQxM1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1FOTA2MTc5N0U4RTVFOEM2OEY5MzVFRTVFOTc2QkM4RkExN0Q3 +NTIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvRjX7ip41yVuQ492 +MCYvbojdoRuyJdgrAJ53SfhYSkvNm5Vsf0sYkYVoofwsUTUp6JGr6d6wfIzEjrAj +k4rd1LCx8xYYhEz6p2oniX1wf5hOqNyWIi8WKewqRug/NcfevWI7/8krLP2KDZqY +swuFVI6FEqnO4EIIbcF+RW8lHCXBU+Y1EBYvl053FU+sLJD8bKX2bNVSmyTVPH6y +irKFrevV6XwkDsFwFFhVu4J3WID6tXdKEHAa4CK+RWnErK64/AvDsoJkxSXjTKqN +mixBkD9OwKK2AOsFlKj6QY6KkvyQ2ZWun/V/mN8HGbQ4g41T6lYOJ3PiOXJ+i5YU +no2I5QIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUx1CEYkl5oQsZb1PGKzSvwYdfQtgwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBOQBkr +SaqpJRuvsUf4EODvIEck52runPmFC9304/2oAvYzL+5tnwJIeMofvFSEvdKgSoqx +Bho2y8Gw+oObwxKWoOOj2chs4AKVzZC39v+CKkly8BIXFjRKg+hHukfP50cdxnF5 +lJ/q55S8gI9RvPtBcLl3T9vH2iFKfhjsjP8JJlerz7y8P7z5vwkoyTRAxWTzvpOj +J00aRUC24stzfPcasczAUCwHXlL/3sbDL2cH/97mi6YErP8c6k4tOv+XDB1yWBvN +TGDel6lQpoyxtEG8hWxhydFfMbUAUO8fyQULu8jNixY+W5r2RFhcaFQ0TQAuFrd8 +UCaVUWF+z26fqKEcNAML6Qcp8L3lP7ws+3MQfe7NKZpMrCJeCOyr+aoDxvevutym +rpYNp5XdelKjbRr4I+0RzKfhkBjQbdckSTbiitS9VU7qv0oh3PNw1yznX/FFI8/H +hn+xDg2JOCnRXnSJJLxcl09Fiu/52rjGSLGUhWPYpxQZWPC4LNEWDVwmeimfkED+ +fZd7Y0CRRZ8ch/yFGV2fMIaXEbEuCM2PQmHRfF7HWL5RIVfp9tXvBqf6LiG7cvj/ +tzhw9LN/8y667LsYoQUomdiig4Z8PHXEyqCes7bp/z3UuoC5rjIfeFlee0hl+TBh +myKz8T+9CfbU7A6k42uWe4zntrdF276rMPk04A== +-----END CERTIFICATE----- + + +WUS IFX KEYID EC3F8D4CC12ABE88A019064E8A62B7018FA2E359 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAArlFm/LCiyMQVwAAAAACuTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0NloXDTI1MDUwODE3NTc0NlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1FQzNGOEQ0Q0MxMkFCRTg4QTAxOTA2NEU4QTYyQjcwMThGQTJF +MzU5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7NCOJjMU9t67IB4B +ZazbGK3vaJ+nzDfqOIw6VbOJm8ZZV6NPOtZZpgwbPD6aUcbgum5MnWNoCREI4vIK +fm+aSdroOzSm5kOK8T1RV+j6wks3G8hN/gP0RTWJy0/klKsJTlmUZDrNzQTp7oWe +X0EEHm1u41g+uHdeVZwZRwG3XbMy407sFbGk0WO8wGUTCBtBVJbvt26gVORB+Ry+ +bF6OHL9/RY+DltL2wNubIuwgUrkuBWOZKnFvdrw+OY5+b7H/C2JiW5VDEjljoU19 +pvNW9IO396RdKhFIDfbDOloSq5kfeIwljkdOZ9t+/E1wFnKtEXJ93N85nNRqMTCG +2TE1W9ms/eWcND/MRhWEibyiFDLwddY2h5DfUF//DwLHEfazqyBFOhUvDojh97F1 +gqIbNZYZahm09/pXJHy5hav00//dIEZq184hFhhQiEjWef2ytMvy5rNXTGeIN6E4 +7n4tI0B+rL9clqKrtUFQJtG2d43LItJI6d40XAPVDHimvdBLR/lH4z1Lovy97jV0 ++plwpWYalYaW8D5XR2lp5opKvfJAW7FylOdNap8JN6zMfKJkHYp8NofOdxgspetN +zz7+LATeORJQaSZaINfXTdpCeoQ29G1xC1UeizWNLBYarO5A5iAYXBPqH4e1gcVP +puC4XxPsuu0yGXuaga8MLGXHMTkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBR/jr7vFxwVMrJS +y7qm7QYCAHYPMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAkGuwf9sbe12JuhOLvUbjD1U07L6VdjK93HyWXK4xynko +BmAYthTW/4SMzF/3WVNJRKWR4eAB/9HFzzZ+SaGo32fAuzWhtreJFONN+K8eGMUv +8/MryPlUSppZ7w0uRc4vIi4JmDKgYrkpxRvN+FrPNZsl5Il0avE1McM/Ay25Y8Ja +k+LmDXCxpIKPBPY5SOMPPkPWPbiwZvNaDHvQN9/2C/N6uYHU1r5gRuu9z/ndKbYm +X86ymgz0AOATqEMfTnFA0JYq3lQpm2JKLbQVwq2f7d8A69TRQugKwpBgT8MEwP+z +82Cp0DUJkNJv6XzarD62fcCKEcszYxe/vxOpeKoG5xs1e+zz0/Cx9BKyVlSMoRZp +BEqINARc4ftLDDgdqTRy0DKiyo5I7Yng5O7tOzh1ix6zgOH1+FtRsz6yIDW5JCCt +/Pap3kd6xDUgfi4rJL1/YpSeVEERPUJeg4LgWKbmQbrDa+VCBNNQb/Omm5dOWkve +qTC74HHw1yzzMpiEW49x5ktADY35p7tQKC7hMm8vIlAb01JPFpwAPu7jNzhBQzto +Ri55E300CIp0JLzP5ioiFYB4h2JYMqMDL6WzXTGBJ7Vl0K2CrdCgAJVwzK6W3JBN +XMb8f8bukNGAyUgc4MWZaDgYsdzE6jLNQKuoe3uXlSY66gCKvWHOSIeBaa72Ex0= +-----END CERTIFICATE----- + + +WUS IFX KEYID EFFEEC5E01610082C0E311CBD07A3204408B32B8 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAApfF/HpOa/zVnAAAAAAClzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAzMVoXDTI1MDMyMTIwMzAzMVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1FRkZFRUM1RTAxNjEwMDgyQzBFMzExQ0JEMDdBMzIwNDQwOEIz +MkI4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA+ULWeL93NulGynsh +ll9NgFgDEk7clILDD5QFj+U6qrbIPOn9S3b8MgSP0rrNp4kWkCM9hdG5t5kXzPgC +ocpHYu/ehH66xsoxGHwQiosPNu6gpG2fnHIcYKsQOZKaeRwGUEUGPkmdmIOayoM5 +fOK3JUkEtaL9oxXkCY5qxsx/URNEgJ4CUuSu/6n9BDa5d/HfWB+I9/VDS/7MASwp +6g/7+cG/5TS9im+lvBuG6NTyXIs8/rdBKk1Rl57jp1MpUWqhag2Lz7bwT1sjrULb +iBIWp5jOPFvLU/nXAQIXyEZau0S9LuwUXoqRFz4P4Dwh3KzdCZrGvMauUUNmGQMg ++u3Nws/rAISSn6aU/07HQ9olT/vjEX0IBdGNZ8r382VA52rnIrAMzerLF60ztf1T +nwu0tlL6Dcy8/NJe3ioi9N/R6zRIasCUHJQWpj38USytcAgyIvG2QdH11Mpc+7MW ++NjL3LJTvgYR6MGOiSJSs8muhm32I+YP+tnYIKSrQGUeAPVJ+Zll4taZRBMlqDif +ihYrUk8pFWK093vsINh04871515HwuZ8zOdjAz10uyHp7zRwO0mxrsO6jMJL2XIT +Zdwz5ib6piQHjcp2MKm3g2JfbvxK1Wj9gWlAfx83bm9O2dowJsz78cVxIdqhlWhc +nFeEhqpwqkA9zNVZ6rH8qaOr+x8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKIzsaXciAuCn0NR +rJ2w+4RtGOfXMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAa4Hk/PHrBiu7nKGNaS07/0yuJV8HWMwiKyFnSFaayGg8 +P2LFRsVyOduQlzMFTvcxY/0QP2W8vX8IXdA4dt5f5yPEiD7tjjEvFAvGEa5CTZDM +6U/jrmX8kDvGdMHLHSmxoORXAPGSITGGunRZczIkyJAPHqlKGyNkj8pwZVh2bKeM +PsANH+Oa8WAL+YKq0D8qbz3PvuMIIA1U+vb/U3nyuxGUzS4jCGk3Ff8NJHBtk377 +UulWZW1DQXmVnuj5XdXbk+goTxT2APOrmXGFLumqlmxsApM0XpryIdhqbpjffmFv +CFjY60RFggWutcyHNh3jZjN1gYUcKbwbvy6tcdJN0SgEUhO3Di92NgO5P+hf3v7y +IogBVbm02IUKbbTWSLvkX+omwUMTknVFCjZcDzpSZk5RHNk+YQfuavMpjMHbSeqr +qvawnkSNSRbjQK8wqaIoKsGUUgr2VFLrQKYDuUBbZOEqpexl/L8p/AdzgvLjAv6x +ohVHov/ypVDRsM7jcrW4x9AVXq014ZeQypMfZdScn2fZRfxrt6wONN27wmWAbCgs +RrkUEDzGJsUE6DirULQvpLsp2Gyj0xiVW3fH11q3MCwQO46dNeM3Y+FCCHHzk8uX +nCqisMro/tj++OKBOz+DpVz8q7brB9RdVF8QFxN2dwN0mNF3WQ/sRDjgjvlIEok= +-----END CERTIFICATE----- + + +WUS IFX KEYID F53E4F475E0D3C6E2B3E56E3AE8ABB953122617F 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAdXH9SQXmwoJLAAAAAAB1TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkyNloXDTI1MDEzMDE5MDkyNlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1GNTNFNEY0NzVFMEQzQzZFMkIzRTU2RTNBRThBQkI5NTMxMjI2 +MTdGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtVB8/pfTLgvw2nf0 +JlA6huDfJGHbwYXPHVlnvIaM8kL/u9U7gh7HJy+unRBwWkYe2OpAM0YVS7MxKsX7 +ZB/IwYsnesX13YJ3ZNe4zuFYXIgZlGbzITJDE2vEQefHOEzoWQQCC3S9Y3D28Mr2 +6lvW3VIOImNcd3jJM0WOpuNShzHpByu2Lyd4i0MX7P19h/UgEmgPHp3BjX4rBAdA +p92e9yx5GgcgxYrtfc2btNxElsiPAc4GBGgwLnnDHgc2ncfP7cvk5L8np4LO/SoQ +qM8OZffzNwkkYGPVuMtQEIxbTkY1ISN/Mfbj5f76FVoyZmnzgtUfcNGUWK0o7R2s +li6S8xM0HDPlveJYciw0WAfz5RMGpHIbTxwp4xtAVSbRel9NIR9PcAW5SFsJJnfM +qARELIljSxA/gnaxUCbaW+kzLgTxYisXrBuZTEqSrXwdQ3oz/QN005DB3cSH2g8a +rsoA87IkFevRqxgEmLR8pw2uIhzf4Ag8qEtHhV1d/fQjSWGHErd2iIB6kDeo/DOZ +2nDkV4z2Qz+eIJ2VM5gIr9/II8F07pZJ8RogcygW7M/pk7BBnPxsaCZn723pIWRX +cqvKkeqBaTxLbcVhiRiP4P0LZe9XUSm60xzVK6qVPrmUWq4axmGwhjdfxIieSjCw +9qnEVcIw8FyKkLD8dgbin7b2k28CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOl2HpMzKHf8ml0d +56Lqj1dqMQlDMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAUpD/z1bFHvy6lkvFz/4mOt6NTshfOZALhII53Y69u+8g +7ojmJxPDcQ9Ln8qDXSb4FduM0HBV3hA/s3bVMeG1NEMkv6Nv+HvzNjKysqIxpQ8m +wRi5vGVPRfLlBTIQJvhmU4kf9KLp6FRNtS2J6cu38XsvwvFX9OPDBhD8lC27l0l7 +XNGZJPKmDW6KyKHn8z/fx+PrwxSx39Uj0awQ0tNcV0FC/fIY4E+zGl/3zwqXQhVZ +Vc/5XO9stVOWnyMbaQFGz/939qzCBYVSx1HgKwlGxBUu1xzb3apCgkqkOeu5w2nG +ihwGl54qKq8bR9+EoVg88SfjlVyuQ2nEIV1kYfWAtAw9ieZd49DbSGws0Hzx1Qah +vmr0hKvPYND4g65sfXjBLYNyp2uTzD4hvJaxGfmmXqeUbFYD5ORqYqTIxaJcbUL2 +WwEwW4ESrTwRwaDiqlJqH/D8aBrOxPCU6gpeWIaahUx9ou8TyUrlK+NUDq1kr5YA +GjFlxkmj2wjWDy22wVmRHF9riEaZ5qcH5mSVmRbH1OmJJiXUsHoxcPpgyyBSdUH6 +BwiCr4ICpeOxMu/Xl/vp2gx4zhvpi5MckYUDfKU8gqwzKa5wAGQsCfy4Z21OgGsY +qVagT01hGgA6vm8EPYh4WFaT/ILMGxL4msBe1ByOpY5xXmb+LEfed2fRPXyCgPE= +-----END CERTIFICATE----- + + +WUS IFX KEYID F65C289B3D93B78F978AC8D017B7947DA93637A5 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAApgfDaU7zYnaBgAAAAACmDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAzMloXDTI1MDMyMTIwMzAzMlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1GNjVDMjg5QjNEOTNCNzhGOTc4QUM4RDAxN0I3OTQ3REE5MzYz +N0E1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxU57r+Hk2J0ma4wn +3KFS9Qmvm/ifCQaMCLmrKldbag9iPjbDyblmnYg527IgabilyEfnPgp3XVEhYv3Z +1MXdDZ+h+RYFTv1qBayG/Ax0dImR8EDCcJr7YanSwp2hH1FVxf5GMYSxDAkxe4MC +bf5lOSHuB1ZNoWVudYk6jEedz+FXhK15cXFZrwgBfp4zpZ5CO75dbfP7TTD5FZKY +yy0sZpQGpU6Fv1BF7vk9SCLHKDwVpWts6hHb+L5aIWVJiwH62FIO6GoPPRYUfMLA +teGmcJkGNj2W7SXQU/ZSbqvI0KWVCuVdMfDYpXYWD89R7nAaOtfdcbqu/r1YfgZG +LtcHyl75MV2+Oojovz9RuuAwWJ3EFGxmOPyFMRd2Nslhjx7fdTIvdKjXczOr3upW +gf7Q05WRnVK1m/QsjyyaEqGi6JQjPi2OnEMx7CTjobEf6la5Vlzti13V3AX1ZS+q +aWN4jP6g9eED/b03i/G7oZX3CbEw6/3JBrpiAf7pwA6TT2QpLqLXlba9ghkF5JXy +XUBXonR+U+kdkTIu9mn/q2J7CA7x8fsDf80Ad+1YWBq57V0waGF/lws8/cv5iD5E +rxRy76G3htgaztkrA7tIhFaVvgnk/6DqHYvPe5Ai0LWawosNO+Ev8ak2vYU6ZNKQ +Iy2ST7DHAtJZJsXTzuuj+pJsY3MCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFItKu2AJFVXgxqu+ +EzHa+7xdB6irMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAKsO19JJ+i5F5ZyUA78KOGkx3qDlYRw5OkYXUMUoOxtmZ +Ze6NJuTVi78eMqPDk69zzpO84qXV/ZqAbzBXzvMXs2sucq1dbHXQLWwz7eA5eBoa +d4HlFsSfVnT9VgMp/W8YndWDhNvrptuGnTcIoet5C+RzApBBjYeozhjSs/Is+Ael +uDnLKVyKkLMRprcBcka7/7pmjzTpWAkVKqLnZEREo/SfZzMLpTKlFzmV1mcVvHoX +g4qvVHwf+WvtJDxybxu9nELyiAZFrmjgRBqt3wegbc0No7cGObmXudL5lggiHyCf +LNIBq0HSli/Gg/iRLjY4BVfVm4Dv1cVEpR6uGVeh41xnTH5sGREXYPjfuKsKRHNz +juUmoxCe/dbnFOggHQwatnbdoiVWxydIQpez0Xh6Qi5rF5aj3EJSpONd93lDMU5k +T6AdKWePnMdY8ieGhMDnyPqRBow/Ne9p1VodnRVmqc6dOV152YMkAX5pelvSxGeT +6aYiqWfO/CWqD2zw6N1Zg/qFWE/YNuJH/vZyAxxldYcT4M1xIqMi5KC3mUWNG6Ya +hQcujhD7D7ixkN+FlN/V1lmddBhorz8gLN9op8oGQef6KWU0R7z583kdMgoZH9HV +/OyXzmsaUDma6yIZX0tLllCRgpmJ5JsmCV1rJfV1ZIWF5h2C4zMSWhGHPGEyBf8= +-----END CERTIFICATE----- + + +WUS IFX KeyId 2583CADE368F69C80F58D34A48B2DE653DFEAF98 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAABDhEsnJLGH3ZwAAAAAAEDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDgzMloXDTI5MTIxOTE4NDgzMlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC0yNTgzQ0FERTM2OEY2OUM4MEY1OEQzNEE0OEIyREU2NTNERkVB +Rjk4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzEfLF3DU/KYZa9MO +NrUntFdixXGJucz3A21LNGPdd2vvPzo9ESJuSGCvXOj/7Mf9/MApv99cpO5dOoKX +3pO/PdDF6C7c/XHwNJZdZpDkqM3Xh5QzaJ4VUu0gFccKoqgIqrJ7cPlk4Wy+PMSA +011lnSpFGnAg/+7NUGc17OEK/cxTRGJGcEeW4gKwtV5lqIq7oShbHEkXvmP4qmCd +cZRhCSpqDDf8uNmffkSyx6DAiHhIaY6kjaPBcLBKFAfTxLXxD0rGB41Vjzf8vZSV +923sp0VPzavSYK4x8s9h5Es8vAewL8UNEA02bCEi78dYeTu7afTTCmCzM2XHb3w9 +5PBhIwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUrp3+IwvV7CKiqZGleMyWrX6ygTMwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA7nleX +g80cBVXmKV5sQiU8iaIGnsfVZARJtNsM2ZULapu8VqX7HhTIys5yutAWqGZMDgdA +/HtzTlU5qLTcbGorWyMAQLh9+txWfOT37teiGiXtSHY5x+7td4CUc871Ei/T/s13 +FJjWCCTnTs7YeKdXyycDjQSSVh71D51IccNF8IsJn5Tb7wgUGH0DykvB1M4xd1W+ +Wt5ywq6atAcwb5wSdAXtwgBfxHvR+KOE8zvb7LxcKO79w10TyFDtwT5IiKr0y6Ua +UejxIWNSCYqjYhwq+0o2d9z3NtZ/2AsqsUkpu6dqdBkUBoYyTX19b3ZNJvAi2lU/ +Ltx+c1LRmHzzlRfBP2BCM4p/tuzPMq8G/BIEOOMuXleH3GQO+se7dNiRfgQfHyEb +vQcjSE3TP6Jff3M/Llv0yf1ZWx+Syvjbgq//ezR5F0MwY9j6YMgD65A/GzK5Y96v +spkFzmy9M4d4ETEWJJ4JO+dzUZ2Y+VGF6aLC3EQOtg+7PPpab18lTThXbwUZnIMQ +ME3olQAy+fTmnSd0K/SkoA1AkT4TJ9OQxUrwd66YV0f2xdVTroQJAdEmwcWMW8KJ +L+I57XwMervbhI2g58qp2RUb4PXC7Yuy8Lv0k0Re7fYCK/MHfISgCcRxNk9PRMzY +KyTRLTo7ji2E2s6Dmaa8nmZZqODqawLZtdjVxg== +-----END CERTIFICATE----- + + +WUS IFX KeyId 2583CADE368F69C80F58D34A48B2DE653DFEAF98 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAgmA98pPfw8b1wAAAAACCTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMwNloXDTI1MDIxNDIxNDMwNlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0yNTgzQ0FERTM2OEY2OUM4MEY1OEQzNEE0OEIyREU2NTNERkVB +Rjk4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvjk1dmLadrAxZDYE +q7mIV1+9e5ifjGeIc1DEae9FVHZ6xwZmqLUjZcu/vYeCPFrXDKxfoTCgvhIwhHaY +VDf9S1Aa+zglJWhWFqw7Mee/AY8r67evkPoOjeWIoHN/j5IqBflZD++xCZsddBe0 +So+/BQw5J5GhIVBdtRlWYDWHvvpK5cGja3GIk7x8LWphWcnpaf20K0eSM4gRAk7x +FG1ag6Z36k+0DV0/Rd8sSA723CUZ4M10iUVx9UIbAa+U44c9oQgNvmUqmNKe7X22 +jgzmrRSQPK+b3oJ09ZyDM4YoqCYGrITot9TvA3GuUuuKAsLJ9Iy/SG+aIdyUv50e +4ehUhBuWi94XtbywROswrp/WIh6ZU8xOoltHIBg/M8K9QK0LNcFDrZAOPx1x2fjT +dzgmjBNFB7/oQc+NcrcKNB5hUjL6ummY2W7TwzYz7e2+/pVjS9NrE/aBMXp3sn6U +FEmxaQsGOj5B1DVOZ1IY2EVWjbKWJ0Z4xVzsRBoZxHO4dA9kZLKAltFbbzrk/FYy +ENDusO6Y4/m6W8KmMSY1Gd0ZNb8A8OT+LXcvLB3is/sdYE9huPVDcfZjshS/1j9n +p8END1HUakGxv9GDT4mfY8BsZUAag/y/RMsEWhJQktuEX+Gl/v80qbdC3bHGzniJ +AS2ekWhesIhkZVBMSYbC2v5IYEECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFH9s7nRQNm0LMnGG +Yph5D6+swV9gMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAkRE/gn78pAnPRLS3ZOd2vf326rVrUspBthyvmkvGCoSK +niQQwiNWVqwMBSZ9UxmCF+Pid1xOgsu8t/SjktAtljPwSG8rDh5+sw5jz9T/0Lgt +4ED9UfK5plUSDRXcFdm0DYiz4JMomoI3gSjNS+0BFeqLivK7fHIZvTlvCKtVoqXJ +aRo5MG03UWTfGKPzxtqH1PuBVCrt/VPCGiZOs7XcdJhBPZKqe+QGTpmUC4g9N6Ec +PMA1LaZ6cLHsHUgseMHaT/I9uZBdsZr3YtDUBBo40MMyIixIg1ZysGdD9e4IXpMB +iwqiMdWV83wj7+kka0W5yYC0yZWLlrdQ1cXdcDDQr6PbF3AR4ICtdnG1+L9513ma +Cbh9d8ZHX5Yv9B4PgTDTKaAuACoQ3ltTp2lU+8aRrn8T4o0l+qSHCMNxOOkK51to +6cpWTf/KHLZ1vlwWVUhdpIPW2YCHVTzXDSsSfeJy8wgb5j4WNMTK9ZtniOgwgEvz +1oB6Fv105/FezH+PvlxlK/l5z7Q8GASdivsKDJIfUJl0moZXpZeWSzKo7FqzZrao +t9dfpeEVyVIqYc3cxxVycjULOMli0Kiejp0Fh2EQ3moB1w/rmXlJ8j20tULGBYyO +qdYs3AqmrjdlKcNg5FiQkcVpmoDMJ0LY88hWwE4BAZWKCr7bk69f6Yb8smMId2Q= +-----END CERTIFICATE----- + + +WUS IFX KeyId 32C6E576663FEE80D64CDD7B18E5603863B3BC8A 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAdhxVFlCD5By3gAAAAAB2DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAxM1oXDTI1MDIwNjIxMzAxM1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0zMkM2RTU3NjY2M0ZFRTgwRDY0Q0REN0IxOEU1NjAzODYzQjNC +QzhBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzNMkfqm04vbzETyf +tGIHNBi6pJ7cA90a8h3bYwED6aJrt55+nIvxO6+b1qoYqvqNkrCdzePej/zYMmdY +tLDg6zFRWppKY9WnCw3pVyROmrcU1yuLs7qoW0NvqAkredtIOlru9ibe8+1IVM2Y +en9B9EUbWMOBygGiuX1KV9h5o/9FA29gAOCJqneJcvV1UntdJ4GHbKg0IGKK7po2 +NIp1wQ08e3ky9nnmo9Y2/jmESona0/T61766YtBDlfyY0BZT4TOat8bfqeYapGa/ +UePR1+h6J10ZWwBXR2KVOXcCCem/HbD7tBWzu/NLEu+j28nW4Uyk21QDI4pLKr3q +OtcKwmhGNAXTTxUQU4h6kvs+0daGY9ne/O5K4K4739Pev6drodiMMwYJ93R/QtKu +hzT4L6IAL9qJDp663lsUjemFpnZAfPjiiXphhjIkeok3dDwmj5fE03kpB3gp0D4J +NKcpRNXqetft3bzc2r7bmG3dik3JPPCIdTFvTeGBaOaGdPO15fXI9m5IEZAk7qvc +QUPj+k0+oETByeK3aCOqBiDFfhmV/INSv6ac5/6Z6Vc+4UFkIxM3cBo1xNaS0ptM +YZ+NO0BLcv0rFInY42UtSlJBWImYvRbKZfABnakeMPy82oXtFmANTH9anyNUTRS1 +ZD/a7GoOkB1Nfpc/7jHh1WHSf+ECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEGgZwmz5Wnou1j0 +7/n7/zMzgnq/MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAjOFD0cmgto0ga2Kg2DwqcfPk6onPiChDZ1d199r6pwk2 +LJicLkTQr2+XMKggJUo9u1Mi2qQShhJlqUBI2QNmuKWDSNXuJQmyyeiu5HB6dHk/ +0rprlRtxWmXV6buyj28yIlTwx97AKGVwewBm0WsUB17deb7MyTNY/OCFHrVbI2zU +KXDl73xOloQSKmLCJ518xsh0djZggxa5iNyGw2tHTpU8ENpgTsFougfR0HIxJbwo +DURfcyrpI0HLKPwBcdEIpuBbSfe+FEsVC+RF7ILGbvY3Sy6cFKjShI0efE6/yudF +59wjsCRJRR51X6cnV8K8u2SqGSWhCWwjZ8WKE08ymoZpxyjXcFNlkkOX8O7UJkNn +MuASbOu93RVZwSMdkwxFtkVeJI55+79P2TI4xz5/1qPb1673HBP7QRnSw9k1VKgH +WMoR4vMDhqY3E9fF4XVJQdLLh3Xd4IHbKQldKs6pUTSXIC5dSu5APOmY8fxGqHkY +lPjyElHlqy5YO4OLeBnVKUBFTII8+W8L8YCt4MaHRgeZCHEUwofLN+ZjSVHcBGDn +6wBIrPJpYMc1k1fjaCQEU72yf2ggl242eWN95J6VjyCiRd7BeJLzDe/sN8acdGpl +w79tCyNsSdsNBarErGacbOQfDK6tX3kGAzCMGBc6O+DGKgqpHA6+3eKnS+wwydY= +-----END CERTIFICATE----- + + +WUS IFX KeyId 3893cdbdd873c4233315e1b13ba96a0d23cc10c7 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAABOrQrTw3ZU7qwAAAAAAEzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDg0OVoXDTI5MTIxOTE4NDg0OVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC0zODkzY2RiZGQ4NzNjNDIzMzMxNWUxYjEzYmE5NmEwZDIzY2Mx +MGM3MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuNRXAOs/CDrzfpS9 +Z44MRJ4U+KIYJByy/5DLG19DqJqq5neqeFbya8spw8qCWsOn6BBlB0EDiU9MliiW +B6sNieICHx1bHi+KAVdv+M3wLu1tGW0pttliMnwn5scxHYpJm4IFxalbTw51SKdo +E4UztI/uH6YBB0Kqctgw3ug69B5gNKQ6OeeVYlA/EFxum0ifiS8tkIQrROkVuA4a +rbGlpkynUJjj8Cxzp8I1y6TMcpVBHP8DtXGHix7YLrga0LflYpDdHhFdYJvyxCC6 +Csvy9DNevkfTFfmxUnT25lzfxAnFMRN5IuqmrxtWFTNEjNUewuhjdebEzlVARtuY +kY+IaQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUtQ1HS5Jgmc4Pow7fLumbeDDcFZkwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdXbUE +DH95XoIEBcYQqq1mQlKkJDsJ+MQaUpT/f7ZL/nAAgAbQh0UQFjvWHvmgz08AqMjd +KeTcIgyTGgXFAKoG1YGEPX9sJEg1D3dHjvCBlZcYuw/p+vW+GPQu75Ac7athQu8/ +EDMDYmZ8U25KK6QdN5bQ8zqB9i5+Jt2fFwCOu5JEr8Y1D4PVSKncp3vRC7kiGt4M +2YQ8aTJypn1ZykZlMKQY+rX17GPJRsn9d1DGbwDvLrUbKHQLQTS3WV5FGZe5xXuX +TUNrYTj51Pq6YdEWQgYV8pRaD7kzZ25QY/shqxcT7kXtAIaf4yrlKFRsAlopSU6V +acRPnPuJVP8OmxNYmEe6pGRGOKLto3MI5XRI97fvSrh97OeFsBg43cc8anRj7ybO +oUqAsI/k3Y2kyNess/5lpBx13hp7qtCCNzBMLAdXjZhClvvhOuFImFLTn7nCw2n6 +HhA1Jo5RuoaW1UQuA62+7EXDyh4byTiOrfmiY4hr2JrCEHwsX7C/Ek+FwlQ0kG16 +zYl6QJ8AdQ4DEDxeUGQjubJUwpaK685ZXiM5ktzmsxPtM/O8UPt7FriMsyeqhnUt +TcpAeYvwKpqqdoxaMZGy+39RoNSoYU9v7V6CHiDBNnZ9XwFjWhu6fZ8NBqufPmqe +FszIjK64IAyBMtSp6vGdrVI0HnGe29klwZ68IQ== +-----END CERTIFICATE----- + + +WUS IFX KeyId 43325af5500406548930cda9a67dc78067b97801 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAABn3PUr2sZ1GMgAAAAAAGTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDkyNFoXDTI5MTIxOTE4NDkyNFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC00MzMyNWFmNTUwMDQwNjU0ODkzMGNkYTlhNjdkYzc4MDY3Yjk3 +ODAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlxaejhskzaAyG1ac +QnmIiEv2plmHQWnUJw86xUuU63QIoEJxchfmysKx5OFIIxuYdXd9Uq2rWdOn96oJ +RHFebAwpldCtqltYG3YB19lOYO9gDBTcw1TQ0NxsOJ8cXGVK14h7r0L679NuDJEn +2Zf2avfh/IiwIMLv+694t/hacRcEKee2PVAbC7AncGCtKHNEAlsmAG72SXgWHCLp +NH9/6/gIzLCTYUJOzFIS30bckoujALz9FjFWCCDgTB40/0RSfD6uDxHXZS71BpWg +27OyiawD2WSOiVTBPJxHpOolJB7QxIY+5tNjbO4vRAx2ULA4H92s1JBcKP+OhnbV +Mi0phwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUg69Wfqexsd3Uwr4hQdwzzkr/MAowHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAZRvyw +HPV/iJH06uZoWtTIsEVGebnYes/3kFssFLuK1kW+/lrlYuUOj0yv6T4m5LNPnu5i +BRySc2D0UPwE6WI/WsQvg4Fx6yzSVANax2E1HrngQ+6b+Tw+D43O8FQNhdkdGuly +1zF7RGJBPSo1bHREaAKXRArM11JSuMct36ENkW4C3JT+j84tQHrv/vf6JbpR6RDB +J/LkaN1Lo4QqTQRZoTKCh7M8d7pX3Hk1sVdtMHNJC4uzzNMTTcJRONzI7Ww6OJQA +X2sMlUmPCGKAocIAmtrKIaDVBzhh8/ykldkKYp1pwKH+/prLmA/D67B0iynRgSiA +KdsTLjcilI/0XPq2XhSQck3PkQqOprMkgmwc7D6up1uGyX1WjHXWgC1jeYSv4gkr +ELPY9NjCsnpi7r6R/+0Atap1zxi4LjjaVKt2hoedZlf/pMYvnJK4yITHzmdaAYwH +Pq229H5FVZHiGSHryYEoohPQrKf+ZLssgeKCAgWsDXBBuYcCsWFq/3XUMovKn8Xs +lVKCeiKvIAurHPbzAEAaO58hOUxbp5vydF1qkydzn7+0Qz/ebMTEkKooZgrLzCxQ +L9w2PDuzt/u+nB3CaSt2m9VBp55QI84xQrf8emt6nwZkEoq+oZA/CkUxAoG6B27V +rWAg8YGmF8MFBatXsR0u6MT4KCKAPfjBMM0/Uw== +-----END CERTIFICATE----- + + +WUS IFX KeyId 4A769EB5D93C833A5500F1F281324EEF03FBEB3D +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAFyLHi0dwmWobQAAAAAAXDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDYxNjIwNTgwNloXDTI5MTIzMTIwNTgwNlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC00QTc2OUVCNUQ5M0M4MzNBNTUwMEYxRjI4MTMyNEVFRjAzRkJF +QjNEMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAidErXNniZipyQv+V +6lA6prWEV/2zm8qTT6qK3Dmx0VcDY6vL/9reUZoiXiDutVHHra9q/wEnY1F1HDZj +NO/ITvjA9ypKJ8901PQsMDgy+uuXj3AEq88ozSxvC+EpK+KYlOQi13l/RexXY8Bh +DLJHhtVXYPdCTWwaUU3EPMoQum6s4Q6P6NkEcNjE4psL6fw6UI7fLJaiiooiDr5R +UCuhofHnCIXzDzFu561thQxgLqRfzD3KAXdfyE8BwdnZBAfc9k0UJB3Il8D1VT4k +7cy+t45Ml3Z/2YRw+TkEWwqQY/3lsvtNYSvlBz8fvZT9whMrUJtaxE3vwy9Ix5hV +fSIvTwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUCI0VDFX0eGMJkqXNWfTrsxFEqZIwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQACXHyv +JSmi/XHlzQKxbuozgmtCRlDXAOcorJ4csds6IgBS4f24XWmnqPR6Q6rFcqK3LorV +WREe30Jw98i8JDd7z7XVVRQfeCZSQsVpzM+B4a/wzqKZ7uAm8QZCs1VsUMfW2ke7 +LNFghh1k2B4+63UAYfP+suPRmClEyAB+rDKA34v9BjNZy3tXoxJHdRqvAU+vlQHs +Wad2vmof7V1KG8qghHSHe9psiiGvsQzhTPGloRnG3sPNXc2mf4I3v9QAg11tOZPs +UqE6H5o0z4md6LrRlo5hnQbFJHwX9NCEewAs+IFbm2FiClucV5INxr3KDx5QXDry +JWeDi7P4UsEC3AxYT7NEBAT4OVFvc0aVDanPe+qnyeCjOyfyhbzImHCUKR5Q9Nlm +MaBM7aXcvMS/jpUTJHE0mfzRjxHV41srtqRzXuZUeYU12H+DWCK8ymjqpaNrgtf+ ++kzZ5cREFCbMUy7Kx47vaf6ViwpYiUYdTtkaXfkkmamXUxTnbVzGD6YyUU3rhVdn +YEMOxPkifYSd8YRcI2Ow+8sk/0fEtzJMFUWKJ9l+Lix2avHL5WMFFUcfX89wjlJT +VltpRt//fzILpkQFnSjNDgX/fqFrC8ii8lxdAJjPiuAMY/vtzH88oA7eVrx/gxAF +LpW/c6sqzaVQEg8j1mYoHDfIloY3ToSupbu7oQ== +-----END CERTIFICATE----- + + +WUS IFX KeyId 4A769EB5D93C833A5500F1F281324EEF03FBEB3D 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAgNSc2NLA/2JugAAAAACAzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMwMVoXDTI1MDIxNDIxNDMwMVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC00QTc2OUVCNUQ5M0M4MzNBNTUwMEYxRjI4MTMyNEVFRjAzRkJF +QjNEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAndCdIl8zvvBlIVMI +oTNkBVBl9WPcN0rq80OpFnVxAuawLWCjnUHFBfLbWjFJIyuc0bqo4GZ0uJ39xIqQ +MG5wfN7u4vObbiVyFpQ4Zf1Q5rrooZQupmhNFQbymlr8z4pkL6AGbIEDZzojsGgY +LrJKTWJwkVEmGGsacN0meaoZ5xKkvuRrTU+NgnxBx6f+TXDNEdXUTaC/o5THRDhY +fY3ua6N2DE72KJ6hQWhM1INNzp9p2p3LzDp8ImeOPQdV+WbsqFPNStvamram+Y5f +d6CxBoZWxCGE74t7ziL6x+bUAIuyeJVPdX1lzkMwQGyKTmGnr0pf7mqx1pKNBYzi +Y6GefJQ+XOh1HZVDCCLfOVg+TJfY5hW3V+zyveZ6iXsB4frfpg2t2oaV7Q+O/Wgq +MtPKrPR64S3+xHnQphf/507HNfDgkxicam/ZuHE/pcjXXXf2nf3yqa4AE2l2hvqC +SWi+cdzPJ7AOD2Bpfab4wV/ipnFyi34YpQ/jcl9nAmTaa/2NnRCvuHTlSreyX4AD +osxtHCB0QnRV4IMarwjmgIIYCe//KEyk8azSPUrVMjgbe5mZV9V8uDMNb9SHIShX +7gsGwwmbrix3KIN95U9kyno4XVARD15JHI2jv6QiW5XwCNkqWM/99MU5tZQUg0bP +n6AzraWn1cDfkEX8HUR/PpXxYqsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIN1pkERi1W0SngW +zMzQ5E+76cVxMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAU5y7vsKLQM3vtc4TYa797vhckrX945Jxpb3+hPLi4WyO +rVK4zj45bHXGpWs2ahy/utqFRzNTMvdsol94S6n69x1V2EnkkdKpeEssg+Xa2LkX +mrDh6TL01KfB/Z1nIPDmw8V2DCJOGj6JpKqCgI09pmo4e7vNX9KOrSsx4VCVN5XG +uEyhkirYiY5EdfgVEfeH4CaSmZIdaYiANBZk2QkN46z+azLhhqLkUb0cyh+Qn63y +34onY+2OyEEfAFUSJ43QPpUWqLl5ix039j5is8IYsRvx14Mc2qvy5X98zi1a3pFZ +XDpMKepIh4zc5ieFnYW9aZVOesYs4ZoNS4FbxM+2CtngK+68lj4bW2GZTlaHWVxQ +aC3Sw1EYzCRYx+QVBrGWT21M9PAjKN64YJ8vCwMrSXtCMNFUb8gTzxz74HivHZHY +sUh8TLEaLArDArs/LUBNWOeaEXddlOHzgVcfz8WpX5iVB08ZFLca9y16HPihWFgl +f4QwfxDnvVUZ3ywYFJxJXzJrxTJWsr6z03khKhVcixfQOHJTNuQidmwgWythVhuF +gny3kS7UJQhmwE/ZynEAy0VowcUI4YlasdY1pLtPkRUOTXKvZBwDc6YMStxZtAkP +v5SK07YAFtYC1QMkIDPG8tICMt5g89FTBUwVor2w0kTYYnAuzz4XCJl6Cf4MYaQ= +-----END CERTIFICATE----- + + +WUS IFX KeyId 4c4b4d648908e45bfe5a10d36387a688aec1cf78 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAAWwzFi6ViL9aAAAAAAABTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDcyOVoXDTI5MTIxOTE4NDcyOVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC00YzRiNGQ2NDg5MDhlNDViZmU1YTEwZDM2Mzg3YTY4OGFlYzFj +Zjc4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0C6SPbP7sjwhIBtN +aF9zkbZnrP8k7XWIfR8ojbLLJXeuZ6e3CDxxaCpqWmlAvN16s7X2P+iFggSC9rzf +c0gDipd442n3nfDf4+rJ/dLJCKwsSFokyD37qG7sLd6/4yQez/Z06njSX7nOmy4S +FKxcBXQqGy7t5f/bHtbReebsajZqjUR9MQ9DOoV9BcpjurVOo0NLnsBWdHbaKqVn +fNSd8eVGkp/nK7LioldhfQ2UJL9Prkvl7uqiXYdkx70W/zFKzrZIgB7mfC3uX56f +/WcQvBYChC2CCl6k4OOkBi+cgYsmChl8fDuHAuO7NOz7EdGSNI3HNMVY9Yhp9SMR +j0TawQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUDrOnn97743cxy326QK70LXBoVE0wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBxgcSW +7wzqY3j/0h65DkRfxkK6EauZM8JQpo2XhUc/TbQ34sL9HT6Gjy5yXeg77awIpb0b +JjRlqJoM4gO1jZzN9228ICQnoJ4Qk6Pi0z7iUCBDhONmi0St2mwHjEzu0wBid9l1 +3GSRk7puLeaoPT49fTDg5PJliu/eT6nx1JjusnxZn9peYXR8lu9aJ0A32v+1nIRr +kqwIZJNzx7UQob6OPSeI8jmYKK6+//MDMp+r73qEPxbY0JyEww5zMaq5PNlCtdfK +muyHBEfTytyAxdXbu1CBVVYGrm27fK/r2w205vICXJY+G0C4aESbLOpA7+8IjxLO +i/kxJFGIlN0BzXchRicmeRuV39ze0s+F7xP4v9nug7mU0WCejSxRpKnDBKXxIg9C +ts36mQADxROxtmXnkT/BbHsmTjy4J5mnHVwnp3RLq1yqpXr0M7trsfn8P+LredVw +7R0+9c9UNC8yXASe9/nGKXRJt2afAALE/y/0PxETDuWn8Y8j6b1BOaUPt+kyYQHx +mvlErrppNYPG5jXzQo9pfBHP7gs1vtq623VAL9n9G2G+pbQ7RsOeJft779dx6KD1 +QiJqIRHQLV+R+hnaBl1ooLT8muLX3yMUhrxY5c3oc39r+hgoI5TOjKq84scff75R +8blCF8JRoWEvcsrPc4TDZVSJF8MGRzxvWe89Ow== +-----END CERTIFICATE----- + + +WUS IFX KeyId 65957CAE12EF1B1A875D951A9425B1BC1D2B3BD3 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAGJFe5CWYPmlKwAAAAAAYjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDYxNjIwNTgwOVoXDTI5MTIzMTIwNTgwOVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC02NTk1N0NBRTEyRUYxQjFBODc1RDk1MUE5NDI1QjFCQzFEMkIz +QkQzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnegAMv33taoZa02F +vVtqd6LpFxJC2W79pEfxwphaAcY3Ata7016UZ6SJMzD12izQx9bu+eK6azdWbwOo +2DwTijRdlFRBNrBdVl6CFY0KLFsE7EKuG1/Vj5RoBPRn46wCWngEMhJCWHa4CJnJ +zb58mZ75QjZKysqgTzU5mMx3X+LYWstbnEa1jUlZvfRE83Tu88batmpKhzwosnm9 +uaChaiBwCJtHsOU91N7p0o6XNiuVT00kNhCoqaXKFvo0x7SqJPtcJLN4MuYhA6jq +wdzh9Kt2trt6lxHROTiOsFoE9JpUcAvOx3bYR7FImaxJAnEH4bDorjFI2UlxBB6L +2AJscQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQURNbs4dngM1Mn0QSxMyUDW6tusXwwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBo3Eyg +/b6tAYBC9hkSFdagcuecnJX+K4TFgSn00C6WKpy+1cypjG+pooZPTVZ8Nibc+Xyb +3ra6nppNEKUsvwmJ/izdKD+WdogpV2R9Vrr1GzHsRH+NETe2RjsCCZHuMVWU/jXh +dfSlO4513hyqSgzxIcQc3BiH6P2P2aOKGdfdJe8TP7prm3+c8BBl8WTtJpxbdW9+ +jS+RprQ/ZqDKc/u+hqP4tdBMSsFLTqTjac4lHJBVPPKD6uV62ef9L3sXEGzTVZEj +dTPePTlve7+5crZR1sG48l24UshRjKQfxMNjX0tmBIZa1AiFMpYFZ5hVA8YszIx4 +ado/KNqUzFgVBWy9BnPy7EUlf62okPzt9dCAJJekSXVqu8symGDGjfZaryNcFx68 +WNmZPfjTllPkrtfTIEjGcMzA/ib3xu7zgBNr/HYdzIOJAG/p1BqX1Aw3vdjieQ80 +df8Xg3qhKGKqGxbm0t69b/3g4H8oRrKS5hVit2U+zn50sMiN1zAC2M9zAyZqMox7 +10ub71Us5Q1KQyEvHfneSqF62Tlj0zTSmR+i/h13h1T845ACtpfE9RYOVFVUEKyp +aoBi9sV8c0ZRO/0uoGNNMxednvL8LQrYZHQsS8niYli+He4jmq0C//z71yLbWnvq +64wUSpJTEa9IcCPzufuHJpiBMWKWfq+Y9mVX+Q== +-----END CERTIFICATE----- + + +WUS IFX KeyId 65957CAE12EF1B1A875D951A9425B1BC1D2B3BD3 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAgsJmaw+x+CuqQAAAAACCzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMwN1oXDTI1MDIxNDIxNDMwN1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC02NTk1N0NBRTEyRUYxQjFBODc1RDk1MUE5NDI1QjFCQzFEMkIz +QkQzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzA7AzgyLkvgpX19l +GvpRRZqxl8W87bDANTJl+mUxBypYq91u/CtsNe4e2jk4m18Qae9l0DEaukdydaOu +rjq/+A8i5Ho1UyfHHWdTYuUGdw0aVLXTvmva16uVb9fxX8Ywfrk6xMI7rQFjtS6I +iFfuHKaK+EzstZzvrfUWeVnidOcew8Wgu2aH6S2xgN8Qg9J5YPq/NN/WTiabavVH +ojnRmt+g4U7pqFDe3tLpZE5KyZa3JBvopdElbo6AXzZfwZQC3woVEPpVgoysjCOA +TIk/iYqrZqCAxCSimxTawgi0X1nf7YAiTieq2lmvvt0Sw1w4CmFSDyar/N/Fn9wP +BRY+e0CWSqNgyUcfYnOoR9YxToH6M/Q9N18Cd1+e6aruwnq9+00M+1K32Djs8wRw +9q1K0wjoIp1RkmNilWv2gK+p0JHr+R+1kB+WhRHqPZ+qlaLRSPqoODDxXRRBgNBM +7ZhurIRWWjFAjg5HHLYhs3Y6HU/VkEguCbHWEaZpEFhwk+BtKY4zJTwyT4Q3SUXn +jV2W/PepuX97XGPMwzvCV0/HTSn9ktyw1Wju9RjLvaxFg7vaKmcRkxdYZpRr+8PM +0mJpdLclhcHjR3+mwqRYEsGwtZcYnWZ/519gA0uo4MRRn/SS1IN6BeW/JUl4F/cN +O25aHI2Ju6ZgxLf6NgfzuQgG6EkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKBuj7lqPM05Ip9H +/vNwGM2L7ODiMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAYlVEV3NqWyah9AGkEXZHTol3LtdeEkmedwrEFJVqpZd8 +LDO4gbIdynXNQnRRXnw63lZ/0/xK54aDfWwSqvXeJ0Lu+RWp+VMETdeTSEIvQlgR +7BZRp32nsmKdjvg+JrjFvx8AXBbAyaA91iNLjCqyYBRP598K6LI+xZBYqdULy88M +26aN7WRFqCid7Ax70tMTUKSZFdUj0VroY9aaDMo/Hb7bEPnGymkhJQTvwaTH3YKp +QGFJNyjV1zS27xrNAQDS/aZLhQYuK6f2fJUn+snFmXefmRQTT59VmvcRCO7JTu3u +tcOLVq7Dco18X9Dd0f0Itpk+YAvdT8Xf6n2qRRWaFrTtnsAyFLIAvg/Ql8dnt3Xg +T8fIoJJN23Rp7AHBqxYGdLDy26Fu7hZVHU+k7TYF4DxuYwrQ9nAFWrhsA+YMw8jc ++saNtpiGd6Vp7wvggAmat8DCd8DA3mGYLO6gKrTV0i0VA01MjK+P7xKYqbOTeOW7 +YrkWY4gKSFi2GsdrP61Gxh6oyYGXlLCVEehv9Ci2W8ZUv8JKtH90l4O4/sNU/uRg +gWae0IOVhMBYncRHfPLQb6nQ8U0843ZADVd6OUlcDrUWuEjLSEtj3dMJe0IUR0TD +uEMdYaqlXpkG1+/O6OF/TvV0UONwLmHSv5t+RISZ39X+TjqxPkn+WEYqxAO6g7Q= +-----END CERTIFICATE----- + + +WUS IFX KeyId 7026D09ED935DCDC44D84D7DA75CCF0ABC1FDE0A 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAdsDNJP2IOnIcwAAAAAB2zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAxNVoXDTI1MDIwNjIxMzAxNVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC03MDI2RDA5RUQ5MzVEQ0RDNDREODREN0RBNzVDQ0YwQUJDMUZE +RTBBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp/mUjkypo7HWm0hK +c9pM3WSJshiT19SJN6d6DIifUt9vnf37P86oexjb9Q0n+nWUDalcEK87lGElve3M +/oF4cK+hsmY08ohYsTd6sjIuA5poAOXU7SNxAYdt+XBJRanBJv4O7nTXS1vMdNV4 +NyZ43zXpZkEiQs6D6MIYQ8m2YMZcawkLReOguO/JV8lm8prIkzBWKPGPDZIk97nF +ZitMUw2oz2vKKM51OWh+xfR4MLqzq8qmbai6ShjFG+NIQGkxrN4v2PL3i8oOkKpk +3PLaSxqgIYBVOPbcC3UVC4s90/NEciacCsHSeBWPHZEGxS/nCelaz+FoVyAOKVVq +Vr2iquYfKm8kPksapLjJ4wgzDms8Y1HXge37R1M60JAD7OWFrtgvzQ1Y7TWP6Fuu +jUAtu2tOJ5wKY4+DFwzSvOe4SUPd8BrObFDYzZLp9o2BmykpUI6Dz8S5MZYjiWcv +E/EoS2lRxR1MvonupgHuMEaBdEFXFln8MEHjh5NrfvZzw/cnYjaIwLWDLLO2PuCU +ER17siUwN06wj+O7VTj8WdB+PmfkhwXMxjAThjBZdZ1bniW4g1/qksKLlK0knXGl +1UfNtq+5TRsUydw0LDkm2x1uaJS6OIaBuJKfdI4D3OvSkfz5NFKoOX+B/q6sKY4P +iTrVMZznn1EDPcq2Enn5xDUuhT0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKMY7zXC4mTD2KfE +oLbJkVNXqcxAMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAczYhVeBqsRaG1mBoIJuVkJDd2tCpcU0HLruBKUZzp9U6 +RrIl99WREoXytZaOXAvBAq1kpyJEd1VIU5rr5IYNiYWP9nsaZO0kzlyj32Y8Crl+ +s79Bog4/F4h3Wooc6xvmx0OixAChAq2KVA6UrKwBbUAf/MRbJKq6RU2I5nbv4FEd +fVs7Tqn+4oojVZq3HJcIT/+U7aeAS5JVzr1094fO87e81pdRXAYjXyyz7G8aYl/w +sL3WNuYnsA878ERGIinvlheK6f91iSLMmQlacoIMgCYzI/y6a/10ZjmMadc1imIA +Z3U0UAQCt9Ur/dGFGfUokK7sd0SpEaIq7kx/ZPsf4s0tC+ocYh+IBuvZemzyQ8iy +C42SU2Wn8KjTzlSYzhRFDhmT23iKfK/NuTzcAZs4AcAWpS/F7NRQiDaBviAwxsYl +w0HlmWb9G5LgdLceepVgHfWgVUlFVw4JHhO56XhUmzy27piyhNSWYVQOa8GakQso +P9IBnvoAWKa5dXz0/EIJP2XYIcR4ElknTAX9RmjmnHb7fB4VsoT6t8yJNFcU0rNa +GwW33piOClEyjyZBDmRz2WgVZmr8iA4IOXJGpMqACSWoR06deLysDutK/M9GfZid +2YChNTohPou1mXtShbbgR/k3zWUrctifsR0l8TJ3wzaaHuXT8O8rGO7zvpjy0Ws= +-----END CERTIFICATE----- + + +WUS IFX KeyId 7568FF26F37D11268567B6864EC72A08C818891E +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAABZctoa4wkIJYwAAAAAAFjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDkwN1oXDTI5MTIxOTE4NDkwN1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC03NTY4RkYyNkYzN0QxMTI2ODU2N0I2ODY0RUM3MkEwOEM4MTg4 +OTFFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArfxrjBqUQRsBceAA +PUpNKoq5upOSTq5Va5+VVAMPszFMjKi7vL0qFzqof8r3hyLcx0dF0CbXmbZv/X7z +TjqiJa/Vk1yACbgx9wV6sFky15ZbnyufekrT9nX+m4No2A81Kq4Jv1ugD07ZM35B +ds3XbIc/Z4q7nPB2ghCV/zBcJRk5/jhmMQIUtK3m5o8i2mDoJTxJFckl+YItci/+ +bTnihlWC/1VX1x4FeqTvYHHNpVemKlsO5P+gz2zSqWy0gZ6onO9+6sl46Vv7MUfY +x1VJ06JdggO9gJXR9IkwXEzYER4Qyk5rb9LgtEsTGKvRpCH/u/8LAJNWNIXE02Xl +7C9svQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUqk7E7oN534rsWY0pRvrf2/y1QrwwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAPRWIa +tWO2ldWZmVbwclSW+HJ0lnsZo3u3+1kwf2PxXUnHisLkaECIFrH7wq/KlgV9aC0l +3sQ7HSjZFjxmuLSEOWG8J0EyKeOE6WkJMhtHvt/iCz4E84+I/Nt2bcnCcxrDWY4j +L+yddouwO7aAJljgEtrS5RIejdi7OCzFN/8PrAAqbclrBKdN3W3Rcmho6PD+kYcK +pExwvfhxxE806v7gcbhD5j7O6lfi8WNkXZCJkwOab6ASAuTg9VbUmVEzrlHhk/VU +ACiOv4CQuJaZYYkPgalVDTTK8NDdzToUfp8P0VD+Z0IWxkkEvmz9FKPjfKmihQ14 +XPGsh65Pi7TsEbeOv8iVJZQe1qd4ApapjYJF+24UXNa9TF3xFzMUOJTIIBk5APfd +tX4gwV7TGzHhqCGQOJMzNG+NRPn4UhzIH4bQ+yu6w1k4FByrXbz4cVG2seV4AiV+ +wj/j9m0xMuahVbWP1Buh4CLD8dBJ78gmoH0oqVg0BRwAxdCVrQ92dXYfBaYYPl30 +CymZiPZgTA8jKGAzWcfblfu3OISgM4Fup/9Qe7PlSJ27Ab8OpaNf6GLk3S3K5skp +TW3z8bPc5S0qyV/MwGAjrPRePcYH8yguhFrqmIRdRwWEwS986E4NMH9fTbBl9m2K +Chcjw7KXbTXl/4gxn0h1ihG7hge0vISwNlkJrw== +-----END CERTIFICATE----- + + +WUS IFX KeyId 76FA7DF0C07733DC8CE24E8EFF196D27788668DA +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAVdNqSj2Hb5njwAAAAABVzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDcyNTIwNDU1N1oXDTI5MTIzMTIwNDU1N1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC03NkZBN0RGMEMwNzczM0RDOENFMjRFOEVGRjE5NkQyNzc4ODY2 +OERBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAskYYmhvzU8zEq89l +SlxEtAh+jkc7+2Diyx3S9J1lRLOFRHD7QS3HuryZcKiNYe0UWhssAoYqTV6URFJw +W8jgAgLaZgQhEpq/KZZqNHMg7oe50K9WfhQRVKzWnafR8CEPfyjghk1vHUV7H62l +qIF75144A8BovQ28xgiUY5XID5AQ6FAttnoU4Lv66DDUHqYf9B5pHh4cS78K1q13 +e2QWlRk93ofJVmuAsQ1zMm1ppG+c5co8yi4uC0KXbg0JSbVxiirPJ0lxKFxEesYK +C2EpV2v1eP7NhAA2RDTucVw3WDW5xmGLy8bzltFAqRV5UcdYRZS2wOQgRHKK2ok7 +oPHRlwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU5eIt+tHaEkSGnVHDTaeg8qgm7rEwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAFjC2A +C6LHhZM53xC10amMxfNoi7ZzbDi7lw+isLpOwEYFlyTnrkfHeTE5OniK7kc6OzZb +lDCSueuih5cnudTJsTYdqGccvtkA0hjsQwgI5FZnjq81MwGC37lSceKp1klx0PnL +T3uPrcpZSl0ZqKFoUJJBBU5tgtrVsPlHhP9qjsduirC361gv2R0czIx7vyN1ZxWE +OQrb35Glh+igDkKcSgk5OBiyhBvA79dFUAztvlVeMeD4SsX1/lHiRC/ehBUkJHTa +01zXbMBNr8qoo3n9Oy9OGDnvdFs+vza1/MCKKytJ4IvsuEp//+Mk6yhT9uta8gpm +19ugAB/ZKV8lLcF+TMCPxqOZS3fpxIjeVjk8GQzVo7JnoS0yA3PaBu+i9/e3+xLp ++r1dp0ZuxNJAZGlNoDCoGY7VZPtdfDm11qUP7oZyhqQEiL9XGRZtnOUvnUccIGz2 +h/N30e7P6PSqhccTIO371yZ+3YBqtU8HH0K6YxDJiN97KmgC2OGqTW7SbZuRKRjM +t9anmqMha+Zo+8/iCSyjXHL4o2pjU1XqFdevL5L1G2yQuFdkulINY2eQiq9Muo1U +HIa/HLVyWJqME29D0HFtfZqsHrQC53aQDepxAe46l4PqabaW8heJgS853ABjxJrh +UeWr88ftMwGHswprR4maceznQpR6opirLX+zsg== +-----END CERTIFICATE----- + + +WUS IFX KeyId 76FA7DF0C07733DC8CE24E8EFF196D27788668DA 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAc7reOhAq9oclwAAAAABzjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkyMVoXDTI1MDEzMDE5MDkyMVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC03NkZBN0RGMEMwNzczM0RDOENFMjRFOEVGRjE5NkQyNzc4ODY2 +OERBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3otYn5y0iPoQ0MaF +nBAjznh/7zISIuQpdqp4ypDNUPjn8m5Ghocylpfec/kes7Mopvk7WWhkN6ZBgr2m +JFQCIRUqtN3/PoVK5/h/bn572K6uV3kV5Wo9nJhPvqUlRgb16vLp1TnW10a+LQ8F +ioN/6bjrCEi/7rWy3DbjHboGLrPXpEiuq5vCJN2bL6f/KSCuGlhRkKILiYg/6YvG +z3gRKL4L1PM05aYNvjOkv2M7zqkJp8Nbf6vgPeJt+GWWHUJI6ZYvSlZoP+7X6UPu +UNFYYpYBxuJTgSTBxhBS5ztTS3E0rkC9pEfVb2J+zJL1Eu4UwUCyjypkb4CDNode +1WTXcZ42OOCsOGvGerTi5jqPUJgAFmTE5wL/+X1tYiHb9RAJDr0PrchpF9ceamon +LCEH5F73sDlq0UKOWuFdYIsQjogL45ZopPoYKi94pyQlhJ/IvfStCUTReCoMtOgY +7FeIgOZU7SLT81w0CsGlQb6VUp6xdbr7v3aMaI23Rodgwu2SgbC0Ohmimgnk/+Zg +IHQH36rN42CgoxmfpFaxpva63i/XzJnR2XQM8maP2A0hYl1Q0kSuhF+zrrrI16eR +jLbyo1gVuHZVG4zgO0LXG9PCNDzzBi2QAkOV2OnuKyshcd1/Gk2a1DJJ9VoKLgeA +fHackgI/Z8m6DDwOpw/R+0ZrOfsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJzIJ5db9V0PB7rM +AuyzZgCuGYlPMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAQZWy9yalqbB3CRyRxNOWRxU50D7E58z1LubIxh5HAHgv +6JF3S6r55OnJHW+y08Y1DhNZanquoxKEOhGL9Ak43iPuTW4c40RZBdsmHB2y6Wvt +xS27ggZfNBbUabO0EJ0gfJQgOVrrixlv5cDE+PaPra7LFK1dVapWV9nG+/IDrhOD +xr7j6NLDIvaIoRow64NyekGJqP3h9aOCK1obMeva6pA5wK4O2nTqIFH68S+crn5K +5199PglZ0g5TXnC0tEPiMTIY84lSPc7WiZdiEJihmgbmHpO6CFlTsPwS7tXJfqGk +9czKpVeaFFj1zEGLumV6+YEwFAc5Ne3GQkyws7291rFrv2J469OsLeQGrIvFgzuz +EjTnarQFJDHDjsojWqKQJ41QSY5avuGKLean+VP6wtiXBSfVJvgkQIHYDeI2wCzY +XO87OsaDZbSATuvQMph20VXb/+qaP/JRalKmHjXz6j8R5nBenmN6kz09Fh8/KnHW ++/OcxQ78aInn+N0Xi1nbCXgEUY5qRK4NpjM0Mf6SQqukzbr9XpSY2M4SL/bfLUag +bLDHJ+vn0rhnsEsXQHokgp+V7Igjwhg5c41nxSr2yRpx10QaGhjT6Drm8bidPCe1 +HsVW6gvxlzlNUNFoqgnW8md6n/1A0LztdMsKBa0SOLbZui/o73CM0LHzP24EoxA= +-----END CERTIFICATE----- + + +WUS IFX KeyId 78A409C457DE6926F6DF42C6114EB7E56A9B56E7 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAApms7XS1+D7AgAAAAAACjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDc1N1oXDTI5MTIxOTE4NDc1N1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC03OEE0MDlDNDU3REU2OTI2RjZERjQyQzYxMTRFQjdFNTZBOUI1 +NkU3MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxL5Rkm6tdsBLkCLx +sbeC97I6HyyONJ0Ls2ZaUQLPc8vDvi4hoRDlSxwKX7lRl8EHeQV7nRctYp6oMBkK +O3auASgW/CUqZJkf87Q0Nqi+xvXOzhk5MVJPffoknJiUOezdit82tMH8sRbbdBON +U3LuWC8FaPYHTfgFIre7Z82Om3Rc6gVka+QEAzUNRH+GZtHITHaVznNdmX0P8R7h +hdN+EXl8LzvXzN/OtwNysqJQ2lAywfYjQU+2IQ1SOMSFjZED2D9NJbm+BYFEBPTC +/v0GPXAYrMvaMhg8JJ5nwMnKtPbT3Yo3VbXcKAJSnQ+t7iHLel1dLF8BSuc6AlQ5 +X0WsiQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU7XQXmAQCo5VFEXkxhpY2NOT2DPswHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBFpnP2 +lIhI5O7IYtTlFVc8RMFfjiwCwQVXnIpMUgMdSFLxErU0h7/mZoVTIQ/WH4fajAUn +uzSw8RXdv1PtbCg1kDnq0qIuJjg6XYln/6xLPUwYgQtveVtSKNbjar/Bl7Fhijnn +jG+1FkSE9FGQW2AoysnlqbdtEBGj5DbP0wHnyQoqpZF0cNcc3/yw6feCsI4WjbqQ +YxFsweMKm0uN1O2WIg0ZIdgQc3/ixAjQulaKlohLfSIyE8LvMUB/9VyjIgslORM2 +uVGT40jB1DCK6DHKScIBwlHiTl6TPP17fs1UI6mS3HzXxQNko5I7SATnL9qj42mp +q8EsD+z5mMRReCy+8mejdfUvZdYa0Xq68dU+MsxFdi2lJ9E4m2Q8cBIB8jSlh+0b +8tfWiwofd6Y9nE04bAQJjDxv9qhGvKOuYdLw9v2pOzUtBRNZO3k8LJHIow1joipW +jirNxfNMB1eXlVKryoV6g5zySYIJIHdBdh9q/J3JKUMJgOL+k7RoYSkm93E2xgma +A/togw/a2Be8wDolIvw1kf6883geSwgzIKce/mun7E9DDCw4/8cKe4Da8u71CK17 +jSEgabU/mXkTtRkxXB8I1j/Y0K/iAM4jdLjJBZQko0OCJCzS+rHgDf0nhbNDd6BL +4V2X8cJHVzUtmorrDbI7fF/+tnG+oWs0jLhrHQ== +-----END CERTIFICATE----- + + +WUS IFX KeyId 78A409C457DE6926F6DF42C6114EB7E56A9B56E7 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAgdgUDLLstOfIgAAAAACBzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMwNFoXDTI1MDIxNDIxNDMwNFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC03OEE0MDlDNDU3REU2OTI2RjZERjQyQzYxMTRFQjdFNTZBOUI1 +NkU3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvStsLJ2nR50vuNCv +y2bII73bb5gYN7/sj9osAoCU0vno8ZsaHHTzv9BsvoKS83EBIFIqkV9jG7HQxbKE +4T2liCeHsItUFYITJwsebLAe7B17ahxKIn9PKR6Y2mSUoynAKq4TKwhqzxx+ZnQn +dm5IxqrYqfWr23dxHGIFDDTkQNtnKjf9Sl2GmLa2Iah9b+26QsCNVcXsIR60RVJ3 +naxzoNltkgGxZgUGHuH5VXjw/GnDH8UCgYVtx8Bo9Js1dxxKQDW3mcV91EcSlGNa +TO4ZKBveXb7ttOmfYrKScIA4WpYpbIVfVs5Ik0dWRvsRkOFmQpUN/UYziHAEoy08 +SeKzwfI/hmEqy4vPCJfB1s8iqCtuM+auqKgp+lrHNAOzCayxQ9eTH/4MYkYjhVEj +z+3WmMLhejMChiFx5+FILxqhfoUpZ/0XCGbRHi3MVsYm3NJ1cm9Bgmv975MFgy9l +VjG7PPNZpLhADCT07Klh2iGt3n8KQOsGyNoi0xPp3nT69OL7X7aBNaz3iRQPliU+ +zyTKKW4lXOGmfgi0orEEcSsmdXll8gFoVT6EQ7W472v/1YcgDVNfolXJZL6jHYPt +MiaxVMXeWT3VC5bt1s2uizVxH6UhXNruRzG/odd0z3CLYYcZN6AhNshqqU9FLxsa +FhlRb0ZkXO563RtFmuObYhz3Xq8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGiUpGoR/1JZeoXo +z2Xn1q5aA+UiMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEADDWWlxaBB5lSHNNo+fzMklmRXupMiCywU8hW/iVrh/pg +0hrNPnziBTbrjtzAhq8sqWWOphzZERtdKbpvhPAlHpep1WEuRLyQJ3zUyoceAaNa ++U1ttS8AKnTZi9V2kMtzCGAEbYCl0bQDhZAA5FKky2JA3fEpNUFkD0rZdhhf0ZOJ +7aIXYPV1dus0q81Dg7tmd5k034+kgnjU9QR0geb77FrLPdos7V3ZobUk+/QcUbTP +NhnhFSDJyNWOA+rJxgvyV8y3+VuLeAfkf+OX/TUspKTU4ostV12hwpbBnfx3shcG +chKZbKZdul/Dvs/JNato9xd0pq/kShD1H0e8Uw9Nr5sfzMaeqXB2Y4X9Q26X1fi/ +K4AC2DvxAkgQzs6GSRgKzbiGtlD6/ZR9i5PRRukShrwL3RIBB6J/oKwmjqjAPupy +8KtbD6vQf3uXGJdFveWEhHtazPSe4yP6DHEjAAr0fX0SCgk8nb17TpHcqlb/riWr +k1bSH2ugEfvoG4mT8r6wJTXcjmcC/uHHTKn5C0CKSgkMp/VVtd7gmLQKJFFxtBFI +tTmSTbTksdeIVlWhOFx4O7nMp34nGKVpE8StCFspO63NpzNDLM8zrEBoVZRFX1Bk +sw3OyfujHbV1WpqAOhx2+X5XYnxeAHJDxQW7Z8I1ZkyKMhQysMxxaWJAgscwHaA= +-----END CERTIFICATE----- + + +WUS IFX KeyId 88b3c13f6105d104229f5ac0eb499564acd473bd +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAA25YcW+pk3XEAAAAAAADTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDgxNVoXDTI5MTIxOTE4NDgxNVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC04OGIzYzEzZjYxMDVkMTA0MjI5ZjVhYzBlYjQ5OTU2NGFjZDQ3 +M2JkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv/tmw0wpVatoRyq7 +bvQnpdk00154PhUQMwpLY3QHprs2dIDWgaVFYPYKI0HM3kzQ59306cR+TCfs+78K +uvfq4IpzcAUBy3tZ7MkrUdLJn5w1pOJmxkhQ9i/20y36HrRaurv2VG6yxs4L4MH4 +e9/jdns+cD5PbMaj+0Zzu0uOhaQ1/QAddkY0T3QaWbB68EIU9QB+wk1L8zZkOJjm +rcZL4inZc2CkyVr0SWgOB6X9r5AupzM+0WmHbvD14iFP4sQnzndASZloOhgKHImO +mjcBXSnh8rVfNGYrLlEwyE/ydJ3qWeR/dlIA0Nh3TPCWxYXt6dSsozSewAWq3vGE +HAYpjwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUSBFeOpvubk3fuCVidXXNVACyJtswHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQArn9MU +C5KcKpFMbj2AEPgPzl9Zlhl9nMANdknFyxOEgesvPQQa6afvZmekmU9UiPCJ1Q8A +18bpBM5ckm243bHD6NwuSTdaGXtLAkC0wv5CPmoFe/Z1ybjs/YjfhONFmw6R+TMF +bMM6R96Tcqo+cyZkdroRYtHfKPbQox75exSP3rtNyRL0FRKSVRFmUMEzflgvuHVz +moNzO2aDLyQXTJZPbmzYo97GAYob0Kslo42+JQ3+bOEmBzPJNGMHEAIz6eDmHM9t +v+WokpocrKqMTlcg4c4u7CZ7utbBEMCRw4D7V/PXWMZPxBO+OGYYXidyqfn7dT5W +YJTGSKSUW7p6i3taLS4KkYVx50DFJ86k9Rb6lKDW+Fa8v88Tpw3ar7pZgBqICQV1 +je5yfzuxpsrAmPb/vayC0sNXmaUn+i/f9OP2zzTwk9Q059wVftevg+bcb4EdKsjN +H4Dv57p4abFkQ6p1rYIWIV9F6IVeZwP79WsrETygGGWzV1K+FYPBiStjO1QZ1kgK +fefnNwSYqZuFJmVgvoImMtCldYxw0ZSmclUs2AVijwuZki/BI3mvqEZdCAyctfiI +D7BiDCUempKmMcMlGN/qsaMbLmLDvpcTXw3vm5sTuRSZr3bfZa2rffVvWnQ9cgsX +8JhJW6rSyZOAtL2k6mInhS4MelDTdxStVpP0bQ== +-----END CERTIFICATE----- + + +WUS IFX KeyId 8FFD47880E239A3A3A20DE13EDF101E882A9D21D +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAAcfcFcWZs/i7wAAAAAABzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDc0MFoXDTI5MTIxOTE4NDc0MFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC04RkZENDc4ODBFMjM5QTNBM0EyMERFMTNFREYxMDFFODgyQTlE +MjFEMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA18yEupj6TqdCAmnz +m8SMSfuB8EBisPO1OwzaqnJszd36n4Doexf1lKnwFcvVaVClm3TdcsgYGqigpcrE +mjqmCWOUi11IPbbvNtYoEsrYr5Fv9USWXGif2NjdAFam17YV/JSgEYF9Fi6uPbm+ +Y20s7MGM6oF0ZXBnx9WkkQ4Pey5/LR0oaJr8ZYHDqmG+Cp2YTNAH8ehcBKQfgqSP +lnOFxtHeJSNw2JxQh1AHxXwx2q1T8GoJ1ZytBHQmnaEx5/Zfc61xjgfnOu6C07/p +Y7aJ28lq6OKuDMLeceS5EU1K5MQhx6L1/NrK3aBtSzUfCQ/47P4yodfsWjNcN49g +tJMrqwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUIlmqYbhV46JAfPI5V6AkiQqKhSQwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCDpuor +jpJagQoqZ+GpRhzYEesmuGUTQ5skmCqRmmIDSa6fURqOBXGLt7vA6tcvu0u+0huC +A2ixE+tmQGn2bY9ZEQK4ag6RyhQvoKKmZL+PFFtBZ6LZgweiFgXAMkbqUbUQxtBJ +A/M+jJRQdHKpYMICJik97kPmTf4vFCShxkhRNw42T14oz6fVICsf+NQ2DrwX5YEs +1X8w8brwsJbqe6bkgS9mSp+/w7edOOps09xlz8PLErkXNuPTURJQAJx0uupIi5Al +RJARNUJKELWilh+nSCZdUYwPTL+Qjhl1/89Ka283YE2nJVzdV5305p/6inkaQb3K +8AcU3FNyVzdEbr4iKgXfSG7wo/XdkjIndUTzPiuJIGrwgwGK4MZIwhkAFR4/BS8R +rBdFFIWtvkA4KYz2P0XYBwN07ajK5pik9jBc1aLkkZx+7BRHXuK8M75y633bBEZ2 +PV3n5vsdWyQ4z89GTy6OH1N5nrafeVgrw+SvDlbq8CkRg7Tkgft+JLNv2uRFaC2q +DH14t7fT1WqPwRieyg0+DkOD7x822+vihxT7tk8zsXLeuG//yR00PA2hxk5ogr6j +dKnuXxoWVSphMdux6++GDWAVU8AEpbPRh5dyldtYca5J3ghFSjPpRG7SWKTKhr/M +ebaiwm0tjAIV2IVNxWItnQ5LQAS3aqccgGWdYA== +-----END CERTIFICATE----- + + +WUS IFX KeyId 8FFD47880E239A3A3A20DE13EDF101E882A9D21D 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAgRWLmBrIpOUGAAAAAACBDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIxNDIxNDMwMloXDTI1MDIxNDIxNDMwMlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC04RkZENDc4ODBFMjM5QTNBM0EyMERFMTNFREYxMDFFODgyQTlE +MjFEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwLyuwksd0zEd/Ma9 +EZLtL9YctS3ac6fAY+Ik7ewBBKgzMYbBgdgewUo18eIQh1MNfcemIUrMMMMpMrrH +XI1/PXsJBxBoPXbMfoYsmlHjmbRYaq++Q7e5sKnrvykpxEQ8PHZV+TwewjLvNaVH +dhO/B16bdH4QJq4Rpj8qC6meBeCBv5kwGtaVywZtFDOYFJGT/CzQ5aUREH2/VjuW +54U5gHm1JH9kwX+NV1UlpUVxrVegCZigo011PxIgPz5ynzXGbTC1/Yd9hGw3zg6x +H6SlGmNFs5yZq9pGHZTosCLC2I6v8sH9sBbKEkFN1EjF9jKUT9GbgyrTQr+daFVn +25+8MAVJxYZ12v38PZicHfevdR2PtfXy7F+gGRrCQE1LfhapejfH9qjFVEcWesFD +pcJXOk4pgHx9AHOYz1H9gzdf9MFaBjQ0SRREUC1czyQZj+HlpwtplIDafXfIzi3e +NKuuhWZ9xhre4sURIrGPQ5w2nOzo2s3ohNewUQas04NmNizBUUSXMC+XSzgYhumC +fhMw2y//OgEEB6V8P2LQXZUTgivfOD0KhazaMYPfIvaRZWl9UfD/p76u0lC1v2qS +J5gDCZf2ASmq32GAnIEqbF6LsgUHfVLBl4ne5aNM4GC+kHNjiw9dNYKFi3dQzevq +b4EXuuS6EGtan7yk/50FrPNZuFcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNKJF/kjPhRxwWRh +l4iS0EtVWBbqMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEALM0CBUtljGW2OkkwsD8ydqNXw8RxM7cqHOfyxs3DnWXC +XN1SdLcXHbng/vdk5Gpez1tppGX2Y9kRxRJguEZRXz0WmBB2AkrJ5KH3XC+JuEyb +bPl0ujXaMx/l1zjEWiqQKL2o9XMB1KaALQVPet359bvl7Gg1Q0Ccb5eP84rfYi/Z +EGw8dhaCaEG6kZvkw6qyFT2ZRUa1T0I/HQZ8bO4d+LeeU/4o+pXYS0FUsTHzrfyF +tWc2cbgzKCWKLlBEcpWp7ef0kUIo0OWeo8xcZeyBL/WPZeBGu7lpSFIbmWg1VbgL +NdvkYhS8lllP1kIdejN8hvPr629GxqBsgSHnOtzzWi8Dl+ZwwYBmZfg43j1oRiOY +lLMpZO6bdO4hE9iyEV4P1zRTLAOIJTZO6CNRPMCXRps/e/NU2voDl9dnGbGYxGz3 +ArM+2CK2r39oPxZhnTrqO+fDsqr5ronAWCoHNPC/AueAk6vmum7MqXHvSIVVPbmX +cZ6SCHRtwaTmay3cfs+bm+Zy/sbIeXOBZWpgcaZGGLbUGkTpAV3IK3hyTvvb6FSy +hk3Rvh95oRT5KFwvh275Kg4f+Y2+Bt6Ev4JYo37lXGhkkM+PtTIQ1sr03tjaa00l +/yojM+PI4wb9x3Q3BAwJhoDXuKGRHWJkv65612hzFL/v2SA4M1nnhS8D1zsFy2c= +-----END CERTIFICATE----- + + +WUS IFX KeyId A0C9DEC08FD39A8B59C46BCBE87FD9948C55F970 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAABxkJbAyGxCRyQAAAAAAHDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDk0MVoXDTI5MTIxOTE4NDk0MVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC1BMEM5REVDMDhGRDM5QThCNTlDNDZCQ0JFODdGRDk5NDhDNTVG +OTcwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5ZKJNjUqFYO06+Yx +qx0YCv8qclWZSO9vYuyqxoCNuBD8uRdlt048FuVUt09uMbdU5V/FwIOZ5tAFMNAt +fwP0b9CcwhI/gmhLa4AQ69eYNPnTdin7SvkVfGEAU8vCnxboWxbpmCDwUSkgiSon +85ed8N5o7JJHowO5LgjWUm2C7l6brzreGfg6aC7hbBYx+/Q64Pkzom3icrdG1an4 +qDe4m7pZKmH0g3VYVhRNsoVSfxG2dBcwO+bNar+5lcc1z8HMQKgrZ3VD1NGwsDBW +8aKy71DdDQ+vtDNQR5CDURRgBmlVQ1iVRSBlFjeLn8T1XyWRV54oonm3rvqggexA +KCD1SwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU0MQiyLS2iTRffiSMdWYn7Emyvc0wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBgRXbv +Qy74QgzfwwMuuieacJGuck+9dToNB9BeB5rtBJj+NcSTLne/77Iq32NpiO77WE4N +A0IRPtQKQxvyOO5uOl/co1r7RFnhIob4jtAp4jPI6+VR6ohEQe+AQeBWX5sb3D2v +TRSA8xaFfHB/HM6qFxZ6b4GVwsy/HJPLLKTob92Cx+9FxJwosgtGh3T4yfAUAbvq +7aLMNFcOuywjEKRAZKihupxm23DAnC9UoxuajAjh/ig5ati4Ft92ve6gXBtsLUr1 +a2wzG7b0kX+9AZZ0VA5q9wpkhDMubpGLipp+WaJBHfIB5EuOZpdnYaC+2/iUDkOV +B4rwdzPA2BdYNRdTaELw8GDA9o5tDn9K7mUs3OJSuny4YhhQsioYQYYTtH41v6Nb +QlXdjve8qYGWMKLFzD17evMUQJ33ZQWnKU+Bz4hDpzMrM8U3opx6zNL8uNteKtDS +xUyEyIRszmLfs3flHimFneJWJmzc5YtYf+/NeOH/pD5Ko4Qrp+myNGVryh9tWxYC +/6mMXIQ+3fsXgmBz5ycjSOA8ViCKjLtO7yBkDsgGwjG/OMNWqrmSNAdjRL+pjljQ +uHd8Zmgrsnd9OsBuQUd6BY7MHmqy+D0TlKhk8j3IoaEIpbxs7n3xKnr4c/X9BhYz +/Na/amc/2hdIkd/Jai3QXjx92xkD0o+BvxmztA== +-----END CERTIFICATE----- + + +WUS IFX KeyId CA6970458673493A8AE1994EF1E29238F27F4518 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAACtrONyXv+k3jAAAAAAAKzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTEwN1oXDTI5MTIxOTE4NTEwN1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC1DQTY5NzA0NTg2NzM0OTNBOEFFMTk5NEVGMUUyOTIzOEYyN0Y0 +NTE4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg7Yda/TA8w6mfYMG +KhaqnrHHfVOMybACKefxM5L2tCU5sftix9ziUjaw5qbvdy+bAGo9gWGBmTOXkqwX +SZ6foXQEhDAo99JzDjOaN3Tnw2YW5Vqz0oBjH0anDqP/UgvrAlkYH5MggRMrh3SY +VcUeV73eBXFRZuknHShZj++2JoG+i79ovo+4GlnnvpNrJqyt78OomfL6Png1lsvf +WMptmLB6jB+Aw53odQJvVv+XnYij4ard1Oij1OaNBNcgg8fnc6N/ZFuw/FGRSKNR +pXadB9J0ZBu6n21QhQLBMnx5lzg5Fw9BkpIyy5DVYYNRrpXXUpMwykGyMCGgRYlm +x3YPTQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUJlGhcIpq3S+m0SHmtRykMoforiAwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBhTd5Y +5xoJvvgXtL+wRoei5OjM3CVjazMyCndaLCDZQjiP0gCUdPTf7Ti+lWzn1Vw2CCUG +HrZiQ8AflOAcgqAJwZxxk/n/tys0A/iOImwXQm19lmHXUDcK24/9RtbA7ka2gIi3 +fCYx71hZzssF5Po0r6/vFNIR9A09u80MSOJJEND9lg4zPSFkHH3hTAtZZGlR11Jb +UXIYopoT+mpHkOTNxheL1R7855/tEZ213piIRzEmD+labKLbZkq/m7biD9GiyfYM +mJcXCoB2U/yjlu+7RZxu541Dg8GfP9jtOHZ4raa0271K6K+9+4a8LhZwqEN0+joW +pwLh1K04i2zRtYJGY3WcEoKiMdshaKdtTRUm8TgM5CbRT5KvHoVao9Yok7h36aub +L0soPTQ5R1nyAv+RMCVEk964mLgzIK8WALIIuM+cRWI1lXRYWyQiHTbU8C5gaMwA +STa7X2ebenMZFNoPa3wpwRs9Bd9TAaZFis4mx0R/WdFOGhz/LcE4OaiSVelTqEFY +5IOJ+YXLgiGHuzsR64+rrhhPcDUY+gxwlOTTiVK0T3lhEpaGBxJ3lj0B0l43M8ph +y9C+bkZv7aRvdmzEONKBTPDTqjFyz/A0MlGAXVKzw3Lik4RA86EgrUotxnsNjeVc ++uceKOG4QLegpCtMB0cPTz4VBH+QWX44K3gTQQ== +-----END CERTIFICATE----- + + +WUS IFX KeyId EC3F8D4CC12ABE88A019064E8A62B7018FA2E359 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAADFg9P/ebMRWPQAAAAAAMTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTE0MloXDTI5MTIxOTE4NTE0MlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC1FQzNGOEQ0Q0MxMkFCRTg4QTAxOTA2NEU4QTYyQjcwMThGQTJF +MzU5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3YzZznBirZCdwEp6 +AXgJVpzp0P+pqFsgPEkalg5SPqR5/OjSTGmge2GAqZ632S39aidQYoQYXe28qwBP +p0+Rt0vXqoAskDutHvRCCjpqiG2zVzkhY/V+mH/kjNgzwHEi7tpOykqe9NHynkt2 +7BcwSestNws244M3/uQC0s94JBAZ6jckXsc0C34AUV6QfiHD/lFEsU3GXEWbD1fs +6QKW970STpYstw7leMSbYmtfIjUTZEVn2t/jGjSAeX291yZw5SrxIdu6clpkhmyJ +gcqK7p91pX4zz4D0sGAF1NyCwQfbIyfTbp6vUamqj7RFPlPb4ACoCkV9RjkCXXUI +DcKgEQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUC2az3EYa3oI+ZX9L067AYZZbccEwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQB/SrGb +ZnTSGfZb5F6ZJ2OX6TvJNejHe3A7a1SuHZrELGK0xUdmyC/s0fiMJDjWu94SlqAR +wC4tihFhaA5peeQ6a6VU/bih8VauwmfNzLH7V4Nr8LjV/FhInkeEfN6OgOZxAefT +JVo/fEx6/3eDhywjk6jAWBI8UotPlL2eEgtMBwH9gOZ+gAYyrSitCGx6WkOqlJTe +cwcUDrrzaftHrGpfTjunuMzuMMi7n83z0GWvuUVyPfc1EXx5Xs52B+/LSYPiQpzp +cDAhmvUBuIh4XpkrSU3iX7eESSeMlZkAQ2Wmvr18m7JkHyhGe0i+ArRa//Olj6FO +cb+UWpjALdMi8tnI1J3bxOhharNF0KT7nrl9425qzhtZhSERMq4O+jVERLY9P3NS +sp5w0j8c9ixPQLjgLDGPqIQvUjOQOzv0tOmodLMX6N9fIyF9rcC2mmA5HErSyOIL +Lh1bRSWDQgG3+YwmuJvvTiJCPzEMlOf8BcNMPBTWXSnnvo1HFm8pIletG8X76cJw +M2lLfZTFkmiYQCs4TWj1tX2Wqjd4YKHHJ9+AT8fnDEAn0aVLgfPQ91lLjIH38HWz +f4KTNCdfssmQMw+I4jACzyAPcvhyibaSlxTsETjsC0DLu1YEG9i5aieLk0j/SKW6 +RfttsNPhYRhQpE4X7kmvaTcxKL0+rIeN892ngg== +-----END CERTIFICATE----- + + +WUS IFX KeyId a75598b8026fa544affcbc4b9106c12f96d3f0b8 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAB+XSBPvc5xF0gAAAAAAHzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NDk1OFoXDTI5MTIxOTE4NDk1OFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC1hNzU1OThiODAyNmZhNTQ0YWZmY2JjNGI5MTA2YzEyZjk2ZDNm +MGI4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApxke+BIc07LbS2LI +NNKyduLDluSFs/VQUgz0PAUKeZwhwBF3H9Xn3/oL3+ET3Cqbc1W190sVgXakjRW6 +QDl6n0Szmbx6U+9qCZeh3xL5O5XMMEjjbWoD/ukuN2oINTvFCBeKAIqQG6yKEX7s +oG8fSQ9P7kkkVFYsbO6G+0isVRk94nLkvUz/tYk9VB92lVo3BnGChbIljMra7E4l +dIWOOS2H4kxm4kpgED03Thb/Fvpx+mHx+w+RbaypssLdAkWwWTCkC2eeMYO09R5f +qp8IFYI/mC3u7RrH/qGnbh19e3L14FEheWM0Gmy74oSSftIFioWqsdO00atBw3ok +ueBiqQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUjOJLahJ3xNR+M5MLLfaCWsNhwhwwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQB7QORL +JsqTCIzfk8ArgDfORjVnUrdXmUjJYDMTE0pBycuHX+G92bBYYf+8jFbXcd5vSME1 +dXduCa4275HYbg1Aj/SQ0lcCVizhCHjzonSmv3mACjf+7PkTEMm0WtR2TMezcrsx +dcUpLhnbktxq02+bw/3Q4E2m5a6DGy5Ap6900KVc4Sly21ZdAjdCwqxzZBEQ+Nnr +2raj0QY4GBfgUk1pqqlmWA+c9oxtzuLmGLfbJx0dJjZaODT0usQawYwBl3xyeEh1 +3wkUiUsjNkp/ujJ7tyUFbbSfzvgeOf77QRV+O4S8Y8ATvc3OjdyL2Egci8E1TMUc +KnXb5hMweQDy2Eylt7XpfPexl+3ZBfbkxSwXR4ttoyj82zPTh87O1H8x0x81qjPK +Cf8TvL/Mi2Cz+Zjf5bM1LylW8E1HBsM7K05ySvCRbOTNP15lw9b4gl9vPb22MXuU +MmSHTTw1oTHzNDcpF03NLkCEcWC+96mtVZ/2EtFv8+r3ioRpxCYCSGnVHXjb+Xpv +OjdAzr8oGlCaW3VUzcUgidQ57qAn/+/2YVAcKQrcg+0wp6p/kRCBmEz9r0kWDLtg +/pDWIPQDj3Ls77VWkldcPzYSthaB3Jn67Lm0FS7oBy631BK8mGvSIEK1lNkxutCE +P4vDcUqQBFG+8WoYbOSUv9nigvPGDJ742xJRQA== +-----END CERTIFICATE----- + + +WUS IFX KeyId a75598b8026fa544affcbc4b9106c12f96d3f0b8 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAs8rjeLWzhTvxQAAAAACzzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIxOVoXDTI1MDUyMjIwMzIxOVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1BNzU1OThCODAyNkZBNTQ0QUZGQ0JDNEI5MTA2QzEyRjk2RDNG +MEI4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnyo3mfRyMs4E6z3y +YaYAejfWPC+LzpyJ0PPjwNtBG3E/rLXNNJGDq72E11ao6LxqqxCR+1AJw0Hlw+Fx +maZAzgFF18jIuGKp2blgeowiMa0zyCyaQgQ5gOlRbGV57Vf220uvRqdsUkWfQ6G0 +LVse9fm8Jr+b0XJ5uMpBlKuSPaGC95Mdz/SEG7COoOeDYDai7/U5qOrA/ib+xU2m +W1E+zrTvCHtYizfuGGl3ZPhGK4cFhIeiM3i4FTb4VLX3i2yQ6U1AP/e2KaDY3H0l +1wQCoCz6cPvircdh7XQxgIlvLSyH+jzlDSHFfG0pR8pd3WrGTBqRJaZ4jGInvbaB +stV9nLQZi+lRYf6nBzxUtD2QAvX0xQqpltGt68K7V7XxLKyQSeP+Lu0yPE3gS0sG +FDcXmVcLe2T3X2LWkAiWkoF2zSltVe6mJk5Vhx+pCbgBYzoxkkonulEeWTpuZC0P +Ri+sB9f9/o6st+b+8s2WgMQxgDAYfdXYdsZGqM1Kp46Q7mzgmAKKCc8k9wmD1v+B +pGux4gKP+VBkxC3cxhCXhr4aVDOz9QFlbfqrHRkCUYmFsZJH/oRkTr6svt+U8qAM +3OCGhlhXX2acdLPCZO+h3C+jR6qOAidW7+WtLFwKb1nzaNI+iklUY/X1Opm7mCF/ +MlKzxUGWB7wmrEv/IKt1NUQ1AE8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMpu5+U7G90z9PiZ +VqS3jV3JDYKBMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAmHzvQrEVYSl5jUK42MdcSyzOu7Egl9e5IoeugXfauUN8 +U2ltK0ny3o1iiPKUQ95iP8u0JCXbJ5TwLw41HPrBxwPacVUVcw6QhkUP+p7jDi+M +9WSIAL4Va6qxF+q08XzYt2vpENQ1lpQ3RduJbMZqoyIUffJU9txrVmfM4mwpBTEV +HY8Cgd8ke8/06S9K2mlMxhZXBZLdLvd60/XS9W+R/PpyFDSzLHivOPZMNvtqDard +kMWC0ITd1e9Izqa83aHRVpN9QkHrWnoKUljPmSm5vgDpqTNhkcqExaciC8L7vWKH +k5d3B6LT86GlAriBAMYxK6rVI4hCHR7TK40S7dNeRiL9XLfZ3omOFYYhW7PRRonz +hmnxupuJ0LEwUuQIQYStwqnaFu0BorHiotI4YBj8AloYhfQLinn43yJYBQpCCk0l +ViSRpe1mNlq0+4OSYSNUWonlwBHY2f8oIogl/PY7fAk1OZogPBcfhjwpm8W6WMEW +oDKuzBHqSQRtlikNUv1n0qaq1BCa1B+WmiMTCb//wz8/KaKspTGTdmcHI6ltcCjN +qqaK1xK/PdwA94Wk4mtjM/r7UhWJ71xUlahzh4O2XAmZ6c0NdRnz7DFnY0pMoswQ +72TSY2h1rG3zy8KaMCN7XkWr+NpR4gtS3VZLzrGZwYPj1d47/xq3Msutkh0K/FY= +-----END CERTIFICATE----- + + +WUS IFX KeyId bbcf7cc184213166dab5be53a87014ddd348d8cc +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAACK2MhWzyrHNGQAAAAAAIjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTAxNloXDTI5MTIxOTE4NTAxNlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC1iYmNmN2NjMTg0MjEzMTY2ZGFiNWJlNTNhODcwMTRkZGQzNDhk +OGNjMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqYj+z0XrPNb1HhOC +y+B9ZAB2za2hWISp/blr3+kEHhKz0JwzkCzlDIQVhMVZ65fhrwFjZducrYvFNw3E +KU3U6YAMtD8JAKDKa/dRumm7TOfrIKlh0l8M3B4avHnoLLBBTQBIUbpi/i/0okLk +I8BOLqlgbSZPa00eMydmXZ9GtU/46Jkn+5Zjle7R3ADkB/uQe9lkguFaPZSjNuGU +883gZ/NsZbWIOZLHEVdw5fKkHtNbXhbvqdaHqFpM6TfGL8rQlsfGZzDlgvKkiMPB +Sngm5vLbOD/hOqNw3Z9fIXWsRXKr3btN99hXrxlZY8M2+O5Tgs5CnW/GJG1r59bX +vsCeJQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUbYVn9tCsBhr6agO67Nxypojm524wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA+sb4z +xeIVab8B4ci/5drOLXDA6K1auBaI3YAvo73r0uelzDPoiZUpdojHNnRx3zGUJSJe +RlDRCaxihqQm6oeNktukur9h60qdWlUTYvDb+pA0u3/tFstXnGhDwVYE+y2i2oeP +WHOBxcYaJUi2s1TLXBTyv1rJ6CkOXpswcEok4fYtx6wtVuLg0z8HkE8PMd0B2vCf +hUAQoAxnHRVzml7u7olhh1Qm8tKvvi3tetYypcobZ5IX0uliaCdIQP4ASLkIwIQs +r4UqpWeZAEN5gtmMAgXGUIG1XL6ghXvSTIuoExQFz5sWBHbbZCIkJ3LwbGZPJl4R +tFr5kp+dwQ2O65PJbP2g3JiYDB+bumRu1L68PKxUx8IQ5HpJx0YlON16w/GUYKhP +YwdeAg7YHI6c+8cqb/onfPjuFPSRyd8Yj7gRMisI8vH3Xa4a1AnIiHukVnbY4xvF +P9IjRvsSlgvaEfmproFZvt6j+4uNmX+FOxbP55VhGGncr9pmpJ3aQtsFa01P2ZWx +PiOPbo+i39ctXYyC7HrSZrhpFGAxjxJoMX3sfJ7epa4ZuwaADU3mVTqMRr5ZLdOE +qE+NKeVJZJyiRkn/YhfHOkA3jj3BXKCOEI+YDDnOdELhfwHAvmO35BC44h5LrBDH +PiHCXSLqxm6D2Y62NzgQTKOxIuEdmuEDbUIofA== +-----END CERTIFICATE----- + + +WUS IFX KeyId c6cb2a4db7294be911724f5041310b4c42f89bb2 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAACjXQkLrGuYYKgAAAAAAKDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTA1MFoXDTI5MTIxOTE4NTA1MFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC1jNmNiMmE0ZGI3Mjk0YmU5MTE3MjRmNTA0MTMxMGI0YzQyZjg5 +YmIyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwiFxJQVpxavnGbbl +euUu+fJac+y9O8MLyMF7nv269wT56mYKPQqBgUkOHQxk90An/10iwcjVREzL9KVz +rdcUhejhwiLiN2+gEu5ewPOoarF0N+vUH9Ng9tT30k2cZnu7XU2VINVp7h88Aisi +ynZesnIxHzEcAys4y3MZ+ou15XI9WYIzOsQEMBllXr8mvihCzEpm9qhKLvI56sHy +/OGCjLUFWgsLALBrypWUqeb0M01OvLpG9lsOhw54YbDJj37/Q95x1j6oIWtHH5qQ +R140rt9BP+BhXzoyGvh2aOx1DfWIlAoIxTz2DJNpscva0veM4GnGYVk3dwcyLG3F +50cZ2wIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUrSkbs/J/u7NGXsJTgGfPBvo6QsowHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCVY1T1 +epk13jcyTm19ZiKOpPFXTv0EBcWpMEVp7fmlX1apIMAvyuCG2EohDhIeOWOce+jU +nHa/9KEWtaaL/vyZAXubk+gZXHdGjswVYJ7T8KCdqC0X/bKIzRf9HKsoX82PuO02 +iqPwNhlokiUIyLhPPGGoJmmagSqU2cr9AjdDJ7XGACztnTtWM0u/FkjEZm3V9Loh +7PBc9tD2cr6cR2Jpt9lvAa3/20IVn/wCtQJvs+tqKrXPQlqgjGKatUIxdc7Z1/KM +t5IhMzfuEkbuMUqPRx1OfuqgPR0BU35SOFpbH3LhOy452aq6a1ozEvtVnxK2N9d8 +aVsviaSq8UP4ByCNHfcLfAFalIeNAnC1vOPrP4zgNlduRkWwjaLc98xRkU7TDBcI +gWroDbz9WpDWvpNml8xqqkbduqDq0bcsbkn1jMUvMn14Ab24I1zK39vF8IZOVxGV +5P6XiYE2QXKgw5UbDd2nwIZpq97O/w9RFnwFGKPKjtTv7t75uztC6vGDvgh1W2gy +O1+3nI3IRa8OZfvs+6tTNe9J/64ZcxbqXAFsMxyIYa0jBEChW5HPy6FDWkFDkG9u +MLW09lyMQ479gxZxPYdHN35jpCpG5L8yuxPrBwI+0UdH/wclEh0zEUHI0sta0TP2 +ZXyCL8SHqDciNI1sL4Fm3QyckMoibrBban7/kw== +-----END CERTIFICATE----- + + +WUS IFX KeyId e82669cd9f2098270297499eaeb8dfa7e68b3422 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAC6UNJUmcnSwOgAAAAAALjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTEyNVoXDTI5MTIxOTE4NTEyNVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LZXlJZC1lODI2NjljZDlmMjA5ODI3MDI5NzQ5OWVhZWI4ZGZhN2U2OGIz +NDIyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzk3PQTkOgnVBS82y +yAe5/yOf9OjlfW4MzIgoj/PkFbLxUoiI9GUj3/0wX1RxjzhR09KtYZSsGSxRaxik +jIF8pJUONEnYufvwCQoydlT2xM7Y9jF6MXewS1NQC3/WEsD13KyLgFDtyLxXDfYe +DnrhANU2w8+hodyqNWAKM+Wd5ukTDDVGhjeqoWQH1TLyjbRBm2RYSlHbggHNchYt +MsrokaGmZxZeDwFSqNt3xcJ1KGOmkEG48pQppGS0cM+gMvN7HmSCPRuHg2GzoEyK +Wx2V9aI5VVYsCgPZotixkQbZ4+GLRHI1utO65ODcY2il9wcwzKqD84DJqfc15zTa +iEagqQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUkXNTgvEYTKm77o5gPiWn0tTKFTkwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA1a3sz +nGK+aNH3ey+QDl+4x4+Ead4ocTYJG5PecvdeDIVp9CjfIbzvZ/Li7fEY8LQ1tUYH ++837rjVklXgyWRvblHqrXcNn2WCaOle2V4QEBXTlHucrJxESA37iFf59CNMl0HUJ +ZV3vAuaz7r6JrDcSGrdx9uOtTsz1CuZJWe8aPNK1y7vo29nHUyhiUpmSEoyovsQF +FtOEnubdZomJaBhX1gvScEFocAySFX4CEvGeV1uwYNWYm3aSENEqyIMVUNH7zb2s +REDBDgXpwyEqQ9w6SVk9lAxnxVnql7nMzlD0pasNVRQLGf7CsvmixgqnS0UWSO+k +cTafXUOvCVyOTOLRgNUreHNmEanj0NqDmvcKNcmeTHeQqpyzLS76HLbiWPI7PFB1 +/82ymDqN6/v024bJy3azN//tBU2ferpC80TW/2m5iaf/4L9D168E/1aUNAYm7KhE +Tz429kzl229Wp4k70ODb01p0EXrSxo50ozGrDUo852lGdhdnQYcsrO63HMuhJGzh +dRv/U8s+IW3gtzn2LNvzsMmJ8evSAkNRWLFA272jizxS8vwEfCC7frNbmcV9Qk9m +XL9/EUr+ZgP/NnQvvXFE5w1j3ELG2yyQjZs1ushMnoWmhcvhmRfxY1pqBllor7VO +e4PSRkyp2bYQgei1asEI6keMmecGpCEXH6i5aw== +-----END CERTIFICATE----- + + +WUS IFX KeyId e82669cd9f2098270297499eaeb8dfa7e68b3422 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAtC6GqZQir7T5QAAAAAC0DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIyMFoXDTI1MDUyMjIwMzIyMFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1FODI2NjlDRDlGMjA5ODI3MDI5NzQ5OUVBRUI4REZBN0U2OEIz +NDIyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8NpXenoGEveQII1e +PPAOBRw6RNi/iuLMJHJ5N16nXaB5igtyjgvIIf16MefzIHIioY1wGBTmP/TV0Bxk +rRyiXvPtFtGy0M5+5N9chg3wLsO+vXAlbIlZn8ZId9vXTSzQ1O4suajI3ty5ZnMl +ErkGLuvB7atb7VWE6P6xmHn4KA6thRsVugHsx/lJ3bGIuoC3rjNaXB5jzbIQxzI0 +smr4NuknLkJZmgL9rLHmW9VHDN5R9tqbCc/m52vr6fq4C5zqYK3W+yFoNy29l/Zo +gXgWrsZYkI+NxYpv0/GVgPjHkm+2xJEGuG9i1AoSvK2r6G0bqY5pcXvKknPZqPGe +W9mCVBLgCECiXGIEsbqdMlgtGNP5Zp3I56oEkn9q37WhiHDrywStP0Ya3PxPDUri +lstpwXD1cKc6ZIee+LQ8KdDPptp+MgMeGSA5/XPDEf8dEFv4KPkeOcre8GzoZepG +oNkTraH/+Fl0EQo8l2dVhLHRKs9E869X4apnG7NUnnO8lhXOGbg5OQYsv1lpgyry +hiMnGY2qTkwOZVXljvmyDdlhkirx3j/iY0Xneg0/MtsidA2QvRtkXF+0WnQtL2UQ +/dSc0DyknHNkZBn2nXW/gHfT2TkiYOTFEKpdmn4ct17UE4XHkIwt4vDsYa0JD/Ij +k7m5PrVNTGF5R6iHN0afyQDeW28CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBzzIQgmSDEE0GaT +R9528N61+VuBMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAIP6J+/gWJqd2eoD8hvIgEEEqAT3iqrDkNR1iNeiOn1Fe +F2hDwBeHvznEXpuMCvUTuW1p6QakRFeChJ0nBt/ZzIuOdOyUD1RaPjBM926tQCqK +WP1MqSyjeuDUuowjPd6VHVeithfTQNfsFHpML8yXYlkG19z9R9nBDwzR13MIonyg +V+bmweHeF6jobOzu6/PWEmmOxRr3TuruyNu27HkabUxco9k4OJU/gM/lhgsn4Xmh +vxeGtes5kO3EusyGWzZXgTa4OKuZwtzp5BnIHtnRUEdFKjacX7L3A8t/5SeB95sO +wuosr6PJYcvi7XQ7frKl31KrtliVBfi3W8YVqhlK35vhW7MUqetV+TIascKtXqUC +7OwmuJeMPMCL1mh0PwjktuUD9KFTd0FZlZjzrdMu2YqcyT6lyAwgiIdtQvrmSp2t +sRw3ezbVLLzMP8Og/oA6Eb81HQbSa/uXiIBup4KqhjvD4O4i5N50lghZtutGt8Aw +NB/pX4ev7dS1aq6/VycvioLa48AITVA2I9vCkSYKPqvj1ILty2nw7WjEAmS/ZjEQ +PZCBxfaLyBaGzXrUHT6EJo/JmVn2UtNmIWGzPGw9kbUHE18P8mciBIfQw+R5XfIx +8alBctFRqsLIVzejWqVDOXWw8MyaZ/qWpOza6LsS+zXdMfUX7DPKDUS8Wb8lXg4= +-----END CERTIFICATE----- + + +WUS INTC KEYID 0FA7B495048126120E12731606776F3D68A037C0 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAArpb1T2VeRX6YgAAAAACujANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0N1oXDTI1MDUwODE3NTc0N1owQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtMEZBN0I0OTUwNDgxMjYxMjBFMTI3MzE2MDY3NzZGM0Q2OEEw +MzdDMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL5Fcy+GUE2/zKVu +UJvTmFVQtWkDU0RSf1yuSjE7BBmDcPndb8lsUiCSEy2B3KOmdvtIWhibhPgNQ/rS +GYS3KiJcDn2v8xtuYrS9enVQI4V6kU7bOVym0QPo42wtFvJ/ibX2K1PpVcfrKlt0 +YFSHWfFXzg2hdK6HRY2yWY7ukodbVfSm3g6nepWdf8+y9TmeVpVjpBMg7CxzNN3h +lHIwhL0ijVYwYt9ZxxrCwi9FanHA8IZs/AyLx8cbMSfvPyF1hlOT1lm+3sh78Ein +qk8V9EKTP4zikOcScFkz7j9t1pu2ZdGPiB5yFtfynkw2mUH7zCaYxFWhnFamzBd5 +PRTBT0Xm1s1g8c1ggI0ZM03gf7HFCejejwnzo9gZVLnPjXO18ck3IlzZbIIALapv +9qqL1RzcZDAF5n7oGRelzSTbrmzesAQAW8w5aMDYnuUV6D2IZn3Q13+LYXzphj0m +YgpeDA1ytLIPu0ijJ5L+7yXCbVlVvFhbldP/zhcKQMedbByeM+Q/qYB0jDftmMNU +D398lA7W9sVe22SOEdf/s4r+nOwEioHt00GwugYYVSoM67itEueH5Sa/Xyv8DHiS +3NIPx9t61gf9J4oSm2aac2GOMHA80Mw/w5+q64fM4xHgx0T7yWsljkSFtXWemStK +rgxxR08EbwOVj12Dncsg4Hb/UNrzAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRc9VK5mzqFzsaU +GFxL5ha9/PHzbDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAGCuto3JHBivdf4V+E8zzBQY3w4Xn+nfg0Ddx2rL0oXr +sAFOi0ZVqo/RVBpVwGcP3cCfYZzx5+AM9BTnkBjTAk+5qXAOIa3yhBfPvihwg/Pq +N1PRdzKOrVe77ZJEVozR1vepPsNPj6eMcT0qrIBHzGx+QsAKVqFvTewnQRRHPWQe +1SQJqrSn/e52qvo+JvJiH6C9lhlmNzz46nfErILVk/eBVv1o4wQlareKq2X5iQtT +9UVn+6IHH1Hcw+v0GlJMDQ0nCzx3XqSs5g1+gjQZ/Be1y5oWMsSJb6Zy+DnsbVJL +F/SFQCB2yJ7faTi+deD0lmJ8hxSUEuNeqiiBgoIBnjMdKjcCneh2k59hgMi7Xh2w +DzdpNLGgq55ukHz9TdF5XoRsV2Ip0iFr52Shcv5GxVAeITOPgJBUJRd/GZ72kfa/ +v1sD/bpReKI6xbd83lHcpbjZnco0M/Kj0pm4ovYPrLEyxCPGxRVPFujt8MMnjJzM +zlPX0o/kQpTok8seMpSwyPB8AxBKZAfkdGXcTIe8E7xQrt4jMyq6xz2DRSR71w6d +5Sberk+FXBPx6rjSuH3wM5wzymmOUmEtyK0Jxr29zEGOmE1LuIgZLpY325g1I9eL +ATtmS+7HxmfS9cNPVc4TXlXsld7juoEtnKAVcEuupv+jgW8CQXIvG+aFwgQCJWes +-----END CERTIFICATE----- + + +WUS INTC KEYID 14092B5F7814EC9B713E9A9B90A4C519DF08E688 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAr1AeAxXSEKo7QAAAAACvTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0OVoXDTI1MDUwODE3NTc0OVowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtMTQwOTJCNUY3ODE0RUM5QjcxM0U5QTlCOTBBNEM1MTlERjA4 +RTY4ODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANHBl3U7n/QOgtUp +8h3gGndFtWj4qdHflE2Ki/3Ba6Zcd32Gah7WsIBTaFZP3Es6+43L1byfZlqr9cM5 +s5XtQnB3y4Z93SThfLWx1rsP0Dugx2zlFQbSHqIyVFRBRzh1w9JPxvd7GkyrU5V+ +jTZLEgKDF0q1Y5YWUufXXUJmlBMnYepSW1MHwl/udxeiqwqz5BazNGm2jXSG571b +n6LQsoEqUn5PsXvoMOJAxzy/bx2iuETaeEhB/29Vr3BopUUz9yygisKThK+BoYJ7 +32YC/UXbyXHQa6pLxFzd3LaLLtxT6Ue53jkuoRcKpHYZX9gnFADcOlAezYyAjrIB ++pfau1GSwWTyG17yzmPVviXK1fCOJMt7a2777MB8D5KaEy0gXDLm3ivfugxy48Hq +Bst0nXnyvfp1FPUnoeq0ZKUZmD4nYtUD+Lfj0W5fUIDaNi8DJdey9WW9ZU7x3PoD +gaJhHEHr6YGf2pyORqX+bXmoBbzhbob3FwJUWqTGkapm3i8NxIl5DT43Fq6SS4vh +5PWlxMxd5KZ0KZAdrO0VyjnXCNCTSagwXcKnJUIwUocmKbEFk/hiTlVatiHKceYX +/W6N6x+Hu5CuQsQ5zotPHcOHaArDUAK1v2m44YAVmFNRC/Wngj+hsVhqZfXtQL05 +M2SVdKh03We9nDt6prD7KwWp+AODAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTzOi4oqf3rC0Bt +5SbNyRI2I+NuizAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAJQtEx3AQiB4j27vJV+RNCv+JyrjzDUjAdfuj2BxTHpO +Zw3HEnM9ggQd+6Lz7bVIlU3WCp20dSu1+jab+HAKaxLtrBXR34MzUbLS4G7TiZrA +NywMJGlFOIFURA9CaJ7UKkh2SGNDbBW12kz7AL0oYmRUg66+X6tJgifUccArVDlq +/4Q+cIMuZl4oDo3xMgboPVtNgiipce0pMc2gCSn3uTSE/qopZJMdtOJ5WnmcagEw +mD97AlUdnDm2ddugh/96zEBsQ3ddghoEu+i/3T1jPiLthRy//sFvkskw70DCjKgD +GZy0eesukatST1oGAks1jmIOrfcqjY6Z6mj9tHfptnHNQ15wTlisBF4JU12AmWuM +k969I+fKCsaKuMuIqeiO9YqB3Ypz8ACXdd4zdSfVJlfAcnsGrlluGm4lygV8mIMg +hrh6Vgfzr593ZTxoQK9HWjA3HgfpZAAqtF4qFIB6YwcnrrSXeePziMb140/xqKzw +9KYV8ulQvKoBeSOZIPCtYJGY1oDVu9WgBYqoX5RLQsXJ1woTChk1JKbuUpiHvW8V +Ue5dL8sTsPZRjsfUCY6s/BKrvT3O3X0IePluurA8K/Hdx/0qB/m/kpHIlXx3QgtQ +MaKjiC69TluuDRuAhS+38BT7b/BEnrx38/j72FU3M4RsZE7CXkBzLRrIVDyIEK0f +-----END CERTIFICATE----- + + +WUS INTC KEYID 145126D0FDB53E99907D6FC6FF1B90455B9E324A 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAr66oaC08ToXuAAAAAACvjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc1MFoXDTI1MDUwODE3NTc1MFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtMTQ1MTI2RDBGREI1M0U5OTkwN0Q2RkM2RkYxQjkwNDU1QjlF +MzI0QTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALJAT/ZEHuYKannM +1/LyQBGkZe3kHATSTRHHPO0VW79v124JVSkBm4hZUv3QVlyvU4j4P+854S0E1X9f +sgbIZQWAv9+u56o45cfngaEHmGl0LuJGT5n8aUSovz2kxbVeNnlUPRjZrMJHhCQZ +PDiUDz/tgsKxYbTsO2gzYHNo3zsuojBfQzqE72qw1XSOTF+CvKBIf/UVVbK9Efbn +TcyBtX3BI0F5XRmLchv9KvsubnqGiwtbaP+WQMAMvI8X4g2a7VkPIs/wPMTJflmP +M7Ili5JO6Kkw8jd9qGOtaQAnKnoQvYssYBRMx+xNcE4l2mcgI0D4GNoQU/OnPNak +6kJ+wLrIyU6dHxwb8Qxye0MmGsDqxwVLaxeQZXAB21vjwuTEbYCBomb35UoF7EQW +P5xSEaUxZcnusip1GaK/7WbVvfOh4ZxZkuoI/mCRr6g3HSvJ9lvVISgkw3D+Si98 +GwB0JFlLALT3kcZWBcD9dCbaSnd2cKA34j+L6lp65u46gi+8EItSfm+l0DoHUF5U +PrjDFUY0ncdsstJPDloIqEGm1FML2bYZ0AitFSMDD9GsqqTyQSg3nfOveLYTcOfF +zJuNwY+ZBltBCzPIXYE+YlvtpqkYhaFitCg6DnS+WKVwImBnPheFMIa9vDpoEEjY +CJVmtQ7o6uJ0ko6bBlJqblZ5pcPtAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSUYrU3dLWDHQj+ +MrCwnl3CqmMKZDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAGILAo4v5UT3ei02S2SUCmkDZgv12qFyZb9BTHIMi2GH +fCkenZdJaQ1IFpp0w7uRU4FkRnZwco/v4zJ5moaGXbVlI0kVtectOfJE3RRmp0g2 +dZ8Dt0M5eKOJ0gWxN21PifUxovx3mGxn2gbs9xupSqPelBVHtPK9Ici9pR9A3jnK +ZwVMeX2TtHAe+pkNRfXjCYl6ZE65vG7A3zo3kKG4Pod1H3CpT5Zt0on74VO+O4vP +ASzwtkggebLntMCcBIAwz+4x+Qdhf69oyDhUJwdGOGP3HGLwOT134NXHc22gk2dH +etkpKERJv5MZKaC6sOPX7ip+74dWxZqg/Q9UhsbPEkq5+4kIHntNy5lrO15m23py +XA1xO/Og4CpC3W3wTpdRcztJkapvRMbqZp5vd1RtQJ1izGiZYRl2bmykwMq20XHM +r5/G+1DoyJwy2agqZ4ixkrLygEHhzDpT8+QTUD11fc4RYRpcyyfcyKJ3fR+6uOvC +LnQQiPauppA2VtJ45u9NZ4Rjl1aMOkUEDbAXbmRyEdP4Uc/iuh9x03zh5d+VBRgC +Gr/kDf39tXt6Aj2rDZY5crSdnaXza36ieiczR7U13sERoO6yRzqK/SylavWvHG/7 +V0+f+Qdi6w0L7U/4B/XZY2RNg+XeJxNnjUOQG5RqxiQk26WyaovPngmMcDDA8HsB +-----END CERTIFICATE----- + + +WUS INTC KEYID 14B8E7137FA99526C4717DFA881B24936BBC6BD0 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAXSEhd0W1xnzywAAAAABdDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDkwNjE5MTQ0MVoXDTI5MTIzMTE5MTQ0MVowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtMTRCOEU3MTM3RkE5OTUyNkM0NzE3REZBODgxQjI0OTM2QkJD +NkJEMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKjEDS+oev/GapP5 +pcLcKlgR+Hf/Y/WjvHAWCuOjGT7Cr7skHrvXVUi38XGaUMhh7Clf8uGtPYlGmQCX +jeKXLADlRsQ0HX57b6AWAoxvIxG/fUUpSpLxJ3dtI725cxVC6eYlVXwvRdu/EchC +JFPA96od6DKFde4XNBhPUTxW850apDcHybcB0KuHpCiIi+sstlALs5P6v5NK9HV5 +TmJBtlHUvJDDF+vQwybdc8BzsmKrCfsXtsazxj5Q4unM7NKnDdkYA4W6upfujj8F +HYNTDltL0XW8WU2tmqI+kuS8Hm2UzMuI88voWSuI4bBrf9rveUFu8B2EQhz0yhCO +9XGBxt8CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFOFNxPF1oRiA+127UTF4a1ODgcrzMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAMuZo +6rnF8bFEP/pbqAFbmCaoRHWiUgHYb+mXuZxB+PMm+AmjGq2V4pgE/X+bnIa5ndCj +lsXTH0EOiKRRaVgM2xgMjUXheIHVyk2CdwccXIUb4Ng4e6AkppUsfcm2rrbUXfyx +1RCR47EtJLY3XWN/gMWha6j2N4nSPI3sFfxnxPcKMZn8+9U7S+ax+8FmXw6XT+L2 +aw2aSvGLAij13aX7QCN7fOotRQX4SLWpgeprJnV2712AXiPDUJsgL9xNnnNMa1Xc +Hp7RJD73WRqOuw4DDaFa4ZLyyX5+hlp+kuK6Cxb8ps3YiqFzKfkB8ULhzuYg4b+m +Kj7rZi+LDRrane4JzS+yLV+kFzC+wYLCk707aYhovMQ+ogZAKRq99UduKUi/8n2u +KnsmJmWlndFkfP+Ai3qYpUP1kAwlJIkEknfVVAAUrDvo6HLeljzbobevIvCu+BBw +E7UyCxL8V1aONlSgnUg0gZD/QvyrT8kkl6+t+ptCarzgyGSqjMwEAqeUzhMLZMSB +HAqV5YsBM3ueyEbyg5O/NhL/8L/dl4lWG9CH3TeTGKKnw0YnHudsUMRC4ts3FnLW +/XwwkiJ5Mka/1fZO0nV9QF41M0babwMXpq1M5Op9uNLfSvFb923eSPF2i0KgGZtX +fC4Xhj/6n+8/oz2CFB0Jg30til36CeV6kicIw6o= +-----END CERTIFICATE----- + + +WUS INTC KEYID 14B8E7137FA99526C4717DFA881B24936BBC6BD0 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAApz5IEHR8QWoIQAAAAACnDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAzNVoXDTI1MDMyMTIwMzAzNVowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtMTRCOEU3MTM3RkE5OTUyNkM0NzE3REZBODgxQjI0OTM2QkJD +NkJEMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL2xUBzPgEydjI9t +87XlS/k3xunV9GHFfYpX6N02oIgWhvZYHUfiBd8eVNoT16tq1H3Hqqezvt2/GzD3 +kS5cRDOniififGx9sy9Q2wPOrj3BhIkBrkxQUKnPYdvt8kWZPpR3iU4iDCCZxb8F +31XzszkA76ouGU8F0rmxB01SU6TMahbn/r6UnImVRPdnhwXdVaNPC6n4tpc1c31A +5GJ3BegHghfXc3oDHbhmbqPxvnpK2VYisGLPlk/DCzy53hsSiJ2HksulP2xYd8PX +tA+olRjASU/eW2PDXCcCf+Z67auw+YoRDbV6oMDja+OSozTIpEatcjLapUe6KlWo +2/ZJwUtBIvAEQUw/cAGJajo7R2CIBOkoYvpGboW+TpWV7x89IIYgyvX5nMXRHOgd +AHQcvZolAJyocKbE/6A3ZP7yoLyzDbw4tHj6chYjiIiffCK6/Jl0g86cMaelpXcW +QpBzjqqfQvN2v09XQ6U7a6P/l7AUVof6Tq7+h6zo7FJ3wFOygcsJ7ARF9Foam1uU +mEAcfQj8kCiDHapn58pWqIFcqaLRxHzO34Srfg7zM4vJgeg8YFVhkPtBgL69fCP+ +w/S+P4QjKxODMovSnoKZqp8NvQnJKPur5LI4vhTl2kKP2/D5/p+rSHvUEokrc1/J +VH7XQRflZ/zBgB76qnUwvk4d1YHVAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRFtQb7666hM0Pn +X7l9JJOclRoUnzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAAa90m2MMiV9eeRLj17+T5LJKhIXB8mt0Yq5fYzmF8o7 +7+OG8kEhCSyesRRMl6g+Gc7mVfV5PKohqAN1Cld5bQuErrnV58BxSqgjCy+l2OHi +7h201PZ7moS4m+B/Y/9yBhgYzAcCGC/5eqrOJXEZfyom3LjRYuUsRVcRW+QK3YXN +oFi+2hKG2xbsZh/WpzKu5Cowv+5LpM95asyiuWsf5iKQdwb89TntRTVo4+ud4k5L +Fz1EaCsJAWI4PUrBADTAP22ya7kON6Uob6shzVl6DvDJcT35ymsyI0XJgvMEVJsc +evDlTKkQcuNy0FaBGbKc5mxOYqfthgkw83S5+a3mdPVO0hHI/uvwp68H+5VSbDiQ +FWaGpu+NKMukfs+es7vqClQ0Xsqc+t3IzUfkoQYoBEaMDeJ+fr8PSjKO6kKRcz0Z +L6b/UBOkGYKVGCrIUUbokRkMjjit+FoxG+IMKQ7AUhG/eq4y+gwcLRUWqOT4H3Hb +uP62i4UWzR5FdlvWKMTuBsuwd6rQLtds/mTOA00w5YwI2633gRYpUD5vhG6DAPM3 +MymbiACsFfU9m5hB2fjC/+F6iRmdNBUdwZCRsSZ2YDeMWPC9ufUlZrKDdbwKiEsc +SK5+LStM84pyCvjoh7APDnggK8J5QJztxcvhj7a4x2+Bm2eIJP2fFfT2b2eYBLcA +-----END CERTIFICATE----- + + +WUS INTC KEYID 2CFCF43B16C8BFC78249CC971EE57324D639F079 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAUkdcMx5CRz9nQAAAAABSTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDYyMTIwMDQ0NFoXDTI5MTIzMTIwMDQ0NFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtMkNGQ0Y0M0IxNkM4QkZDNzgyNDlDQzk3MUVFNTczMjRENjM5 +RjA3OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9B4PyruNjom2Cf +sI/xotUPebWjg/bB9M8aCoJyvrmGNgRM7lxlM/xar3t4RlWLBuyDbCqJU/jCoWKI +EgId2RefcPnIB3aGnYj78m76C+YZuMhs7DrELW6NXrVG0lnCSBf+56QDvy7RbikS +vDCQBHZzaDyNzc53Th0YSLXq2xmoTqzzUeaHT30KAJBJr9wwKMe6yOcIZe+46U/g +esMiooU9dip71v53COtW+H84y3a4CiQ4nByabFVJ/5FOFAyT8UMNtKPE5376XM/w +hEL6wb0f0bMZnDZvGLhCcgMNOasXKfhgZOtK5gx4suVw8hB7FPvuVo+OwTFMbwzc +I8PhZ70CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFHM1g7MX5m07zP4nhojjuwGbzgg7MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAXdLs +ZPtU348+oGNdMNvenKW4sQbc0QznFWXhCVRc7VdTsYficiEJHGm/1OZL4c5jevf5 +BBGKh9fNIyPCCTNoXC8bpumjd150IZsq2R1Zei17WFPD6O6fx0s1pWxNf3YEP296 +OUL+ILWO48USUmlNjmIIST2iG4gZj/Wet1DlMr0jWg82v69v0NDybJRjrvCMlSeL +Ptf6v2BvnfAVDIy6MJOumKeQnpp7Y1Lg3wI5V5TKpaEdqT+ZZXOdxLkZz3bNJGAF +cudI0AXvCme4fGDg607JBUdSTBC97M+aOLTwQKLvNViDORy+quEDHkrLqjf3GJv5 +sxIZ0Di5O69cY82Y2hIFuTdAVtkX4jl4jBgHUA5RRy3PD16rAXS8rGsRTpyd4n3o +R5rdN1BLCPo3+SwOzswXeJ45Ge+J2EW91ZlbAzXwd9QYU4w2WPV9eIHEltFwAAx3 +PETPXb7T8I3QDKDAQp8bpm2Pz3QBhEFg5s+R109wmdrHWHlUichts953XJC/vhnv +9ZKv+LocxkZhUFjEqU7S3xeCwls5V06ZpImQ+8DiLrk20+eJVpAja/jaCDrO7tj1 +XoB2EDM1LQrUVxNYhaqmzpcjk9CmxNvxji0vsmnW0b7nwbwkU63NiPHjBvBiVl8i +w0r1b4ohn1A4Qv/L8o5DOb6Zz4O7GfmwWjWXvds= +-----END CERTIFICATE----- + + +WUS INTC KEYID 2CFCF43B16C8BFC78249CC971EE57324D639F079 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAApkPY/7dC5JzLwAAAAACmTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAzM1oXDTI1MDMyMTIwMzAzM1owQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtMkNGQ0Y0M0IxNkM4QkZDNzgyNDlDQzk3MUVFNTczMjRENjM5 +RjA3OTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMSL4UnRzbH4HRYe +OkzX+rAHPH7pKGhe+q9G6Ny8s7AB8a5LwePIKTwDQa4sgxOGogjd8G15ZrmNdryL +Kc3VTx2nl4unwmFavxhSbD/UkBZzsVqe2p5STUemvNVjONSPvk/jvthgVEESc21t +7QXp+dAVkThwBiT8IVGG7r4+3uhWbm8qkmQx901zOFjL2eRehlhhuKbhrUnaI4Eb +O3e300CqYzqygxWpTHYyLFsLWGZA4XrJKGFMnWPDCYVmuw6nAG2f/fkHCT55ilQl +c4iHbRBJgG5PPBwju1wXNTcZZs1mcSVjOpvqhkcHI1lYsu+RqxSfa+0cro/j6v6R +v1t9eAmqnzGOMIicpIrSl8DSt8RAi3E2rrWgfRl2BpMeMLs2BTkURZ87tKn0V2Xk +1+y+dmt8uoWwpsAj4y4d6bKbyuBESm1aZIjVtYVF1FgSoQdkOyUQWZqmfOxrUmB4 +D/WHg2xwzZQiPeg6u5IlVNKPAwsRHcNlrRWVohI/MPA1dCHEWhSte4O1Ag2cQfQv +KaQk4QYxncgfiICieHx/PeFpuTypcy7Tt53Z8E/6kKJj0mRNzh1s3US9eK4RMD6o +7zAIAJwqVkE18SHADP/CkWqNomgb19HoDnGYeRzbx9wlZqf4bvtafqXcGlehay2W +6wZx4yvk+ln+GhJuYfcxoZ+kca0PAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRj2JxPqFdccipe +TGdWNO9f+7SNVjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBACunhdG2fbbCWuTVo4O1918azjF3Gt6ty47LXr3h7eHV +0QKdYmTtMTs88fW80HVnjin41+CpQQg9HqPlB3KhUgkiY4emU4TMX+jkFHOpCaOY +FgM9Tir33NDb9ytL9iIx/0ZEO43VQXKgiifeWoVUWxXdhcH9J4hlfatkHna+PzJx +9hrn2Gtlyxu3i6sN4k1tKAadaCDXyypzyRLonxyP3SubM90N7ml7OE7YIzkW0Xiq +93qylI+Q8N/Cw3oMACOapDK4OzPL8Yw7uOIRKioAAYUYJp81/w1Ct8L+IgeXHzrQ +oJX9CkUcDteKEzJ2sjHXa11jldn+OtRpOF/98PbOtCbJgBqOLxsZebpiTYdP+f7M +WQHTtLRSgoSrJgc1Up+0//BFkv9n6QNNAkOQVuhbn5+XEBmsamDJG8PyXVvESbXZ ++e5GGJvmCvb+QhtMCSRwwzuwogG4mq/RXHlUhZp3U0fghTKkPybbcyF91eZqf7BS +1oixHSPpyKQcFjTlQGJEWKn7Jff1xqhj3F0OxjFcs1GoekwrlbhKQUnwekGY5BKw +DYeMYKbdVw+iYddfbT1mPNDkRIHJUHXMs9/Sj64ZGIui1twFaobfjneciFOQ+v5u +fNuIVdlM88VXH7vHOuiMm1kybhTJtQdMbp+JLUZ1m8GxMOYud4ep94poFHQHBmZC +-----END CERTIFICATE----- + + +WUS INTC KEYID 2D3CECFE6594829719D6556B600541E749FC635B +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAATqZKIykYjrfYQAAAAABOjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQxNFoXDTI5MTIzMTE4MjQxNFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtMkQzQ0VDRkU2NTk0ODI5NzE5RDY1NTZCNjAwNTQxRTc0OUZD +NjM1QjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKvCNcpLvRxWrCAN +7QfNWVpKBFz1gT2q2fkEb3LslIoYhdoy1dPMeouLPIizGOz4vJVrWaBe9CggWIZU +GFdX6parAAvaISz6ACV4yec1Q47fD+Yd2L64qk9w4uNOUxMPkqIOHJHsLoUHrWqQ +nO37bIIflZyx2WZEjyGRv78qOVC0qzB6eYaiBoG134pF8wKU+Kn5GYqFdglwJzdY +VH8YEE37bUzaXZGml0dBUNgiqXlSxuetOLH2Nmh4a088hb7cg9hCe/Xm3GumTfXr +vbmy6lCfunjCmhEmM6QhzqK8D4L8ALRw9h4iNmofYwfgse8l0Avv47gMc+1YRM6P +HlRnLf0CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFGfGoAZCrzBdTlj8Q8Y4JK641+MOMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAayOg +K+g7KH5WCH95jy4JOsJAgszhazEe6dZXfr9nR2A84neo04DtL4eXMAW632RnSHJ+ +PTJH4IeGdn+Jhg7RosOXTpsQRaNnfwK2XPpoxyVhK3nQONtZ4E0FXpQl5JIWEcys +U7KY6h9PGYHcXVu4z5TUAiqY/gmKLPJisfOmuyDEuJCwn7457mTLjgb5SAoF3/sV +AIyS8KOGnTyOdTD5/Y67dH5HPozlK/f7S2abOkmryQa6hiLBndsV/ZK6EXQ+LaxU +7cpOFEN9X8pqdPnhNsXf7NkSZZ1YtuuQ4jGGop02dFTLO1e4+0ivnRS3JtDeEeiy +W9x43+O0149fm7a9ZW3EEviJzKgUNoMQskvyhw0+5lICiR8vC0WFtpXxA6aKthPQ +6fZ1snHmkU09YZEkns1gjXEAEJmjJ210BreHB2bkYmhkIzfe33DpQ9TKgg/0ZlBe +wIei1sok/4KFdXwsH2lda+6rzKgtuv2UpjdOH6EWABzwffef/g1YjEXDzHknAgon +5jQgdsH/99vme8XmjZPZ6+oGLS01SYNfvzNdi7HSoyE4tZb/0NsG/HCDeYJq+VyE +sAvUuueHLDQ83nsG05DVLOpbBbY8+1fDHuHlw8J+PhBo5RfcbMD0r+PA5knU6+jF +JXGra+74gdKIxQoNTmFsoqemZi9GIHfqYTzGeWI= +-----END CERTIFICATE----- + + +WUS INTC KEYID 30B86F094DA6ABD52371043F2BF7668C783F0E66 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAXU7IfkgoLDXWAAAAAABdTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDkwNjE5MTQ0MloXDTI5MTIzMTE5MTQ0MlowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtMzBCODZGMDk0REE2QUJENTIzNzEwNDNGMkJGNzY2OEM3ODNG +MEU2NjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN3j+8qfmxVx+cmt +6ZWaud58xyv/bq7ON4YfbJSkK2HR9M4PKbD2NahdSaPbOKPPRmwNLaiBMkfwASWS +QDMwZUmFUcdb0p6avcCSAuAZgPAJoVJDndDmlwgXQosCAQPZbkQ5mfSBWmsqjWK+ +jvlJhWmZGSNtIrBX5x3Ujz3RQeG0HZY0OBiyqv/dGTRBChPbv6N9FcqlvYzzO21P +NV+5onI7Mqb7T+mWTL9cEk7IUTUaQZAg1Isvh8IsBoJHI9PAS7THbT7ExgZWkttp +OweovXW7yeGMjvSydrOzKlYUGz67pOiZfdbqCwzeYz/Ei8XhC1y0nXMNgNWZC1Rr +ZpDySzECAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFDjreI1C0M76EO56Q4vhlJ9ZOW8PMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAL2tt +wQhvfdBBF1RYuvJL355E1phegTMQZx6JNNhENFMpvtfGKxD3ejmmW07o2L+bubuS +Una/VG5klD73/5XZz3IkNbQ7JS3vbFViCxy78KlKaMrZB2KddT/VkYX5SAckyfDK +gWUOuLeDAD2GbsEPskcDW/crNJgcBVU0gGbRICnVISBUsrDG9wL5buR2kL46rF/g +bBRpHzf3uALRa7go14u99jSK3ovMFaV4OM7CFADLBi0IOb6pctC6w7QfieF7zExy +X9KjdEP//iOgoQPOXFb35NL1XxAkBqGJbQtCJWxfMp3FGUEBO0bZYW5l/Z2H4vcg +Uhmos/EnSBWlWhOfEOvb1+PI6PWGEj/oww8DM+58QnZ/CR/l+bSMZSzn9RZSZBJD +zR6alfiPzFNEE+B2b4TwHcrOFPa9ahHVvk9dsQysnvvLWyW+ArUkWYsiHD0LE5vz +9vj2vtpu0viQuypi8JUYRjZWQjSaObbxXDYae1xW8jWcPg8zwnhG7NzjnzvQoMD2 +M9ZEIGlm8LyRYAxYlY8lHI9oakIeqUiDBLKEmUFqWsiigYNb/0Mmr2JiyHW83G16 +8JyqdPxYLvbhzoDUrpgNc2hthbnLf7eq7yOVTMWrAeNFHkU4L/UN/LniJMKSQFHs +T8mqmXgZVRcDGw63hGH9xGcuHqtqX6Nr5gfx9Yg= +-----END CERTIFICATE----- + + +WUS INTC KEYID 30B86F094DA6ABD52371043F2BF7668C783F0E66 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAp2aPGNpl1vhqQAAAAACnTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAzNloXDTI1MDMyMTIwMzAzNlowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtMzBCODZGMDk0REE2QUJENTIzNzEwNDNGMkJGNzY2OEM3ODNG +MEU2NjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKe88Ll3ryxfNyPU +7YdSlYniLxcaYHiiMb3JUDsPW1W1durCXe7A7doV6QuDxYelSMU3BMYgNRjw5xpq +aWhl2z4JS3TCsYuKz/l7Uts7SVwI3bKYD/Oy+qYbfnMFKtc7EIgpCISIAR//eCYJ +g1D8V+IXkYrULcWkWtMC0ZQ31+/PVyf9njOMO7zj4+yPw2NHwqUoWqe1riKezMiI +Jf0J2G3DfWvzb0XMGXeeQpfa2bN8ZpxF+W0GrecSa0Bh7fHCs6K1hBcIRqU+aifF +axqcngvCI6t8l7x4GYH8cvOiGLSJ4ybWniPpB/+Cx/e690wKgrcwAPWcB0St09Oa +yWxo7MoVtyFI0bYiOZqTrulf699Le3sxpmr0dLw0JBbWicq279luYUqoc8+E+llu +a8Wc+wiYP3RU1UyTPFkb9yEyIzop7wKM2nN/zKIWFRQ8VBJvMmwwZUUaMLdhA9nf +f3fdj++9mNj7rr6NCaxGmXiGBfKj6LM8aVO5vAUCn1eEwILK+JwoVjRGq96DQT23 +IAlLR/qjO5c2IFvjrllVsYAc4IrKc6PdPo9ISDr4zenJ+cFKRp3uLRbQGLw7c9XX +35ONb3gop09HgeoTqm4aNe2BU4RbHnq8iGf6wGH7aKC0NkO1doQRVFslSpK6itRv +rmrHCKqLYsApsopXaCiERW10yuN1AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT+AjivtaIeFihw ++53bwRetmydBBzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAEXriEUJBuS8qZyO97h8NFdlrZORLztraA8uW4ybDSeY +VdBp6aiZvVdSLekTITdvHXpNMoASgWEYpoaDvP7JOKFG7dSbn/A1YBKbmtm/D+2i +tB0AKiDG4ppD5DZ/M4U4fGiv8lf6ayUrKuPbA2mzq0CPmKhRlbJ1RmeaCYV9Ct/2 +aI+kVlOxBAmj5cKLdCSsziAQJ/X5Xg6KSYpoBS6x0ig/D8ArdnPcw3cEcRbOtCmr +HvRLdVlSiESaNa8x4yJocdN4tS5rFHW5FxsPJ4EOrhwkHRf4UdX8LKafgGaRUzr7 +wMLL3VQyBbTTTcmhyoo/+HDLOvYgPyhsEALRLYznIcyfCVbsmpS3q/Tc0uGxIwN6 +L4ljXWLrdSLOw01J5IRLH1fdFL3T4e8qDz+s7e7Osj7jHjqnpJbIagMzAVFbip9G +FUvdfXJtRENqU0pT+1qbq3EZDb9dwA0cakvyetkkyH87ksXM+fK6DtAmDk6jEqgO +z7Jlc1/bmnfr5RTMaSQlBTFEG+3if6eSRxbNbl+RPuSc9pojHLUhTlCGUlNbROZN +nftLx0HgTAlHXggO4cV5CT2pAMdlS/zfZI8w4N3jurNCo4ah7qKNnfp1l7mMQkBd +HmEFJPglVMhWKzPjekmNROXJ77dGq0HJ5w5h0Rd5ztv0++tDrWpWzB61bMxyD3yy +-----END CERTIFICATE----- + + +WUS INTC KEYID 31734D6F8AEA913A0A31180B785CC0630894CC7B +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAARJ5yKqbF5lP1wAAAAABEjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjU0MloXDTI5MTIzMTE4MjU0MlowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtMzE3MzRENkY4QUVBOTEzQTBBMzExODBCNzg1Q0MwNjMwODk0 +Q0M3QjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANuoFUYBb36jAGcb +/Wp2ZVSwCoeTharV+Iuy+jUcj5gRBIa9lzN2aX8EPvPIUFIoBpxFUg/no5VlWQMP +FXqOE/I79uVBuwaY1ClkJjlxRvuyxxw4UQHo8x/aQlqn00lmXos6e5TcL2qhOHze +hrM5dVytht7URop4UPVj8VbNni2siecXqGYAfhFqppqZxJAFyIKLSBe0oSYjsJ3k +pWCVXfHeJEbCxeD2We4X4n2ZKqk7yQ1+Ev+4dbKb9X88R2UCY34LdXxaBjZGfroi +bECY40NhyLwvyosWWwtYv2j8toJ0xaKK7Z65ChCEH6EUZXtk3yCQ64Vjr42YUJpN +ICNK6EMCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFPPyLlyai+3HDEGLEN1Gi8arzLHnMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAVyUS +6LYV2e/N+0QIzW3qHGAgYQ0Sstz/9iSR63GFFc8e9WscN/2bm+cGsRcqlmlOlhHY +k72CPXhtstCqHYKLCBdRTDZQLtjbHFPnmXSXhN/dy5fqQXZHzsr0H2Vn5GIpgVFd +UO/LbLy2ompJ2iabNHM3NP4wfNV+6kX5XLA+7zbF49I/IUTb6Lk5/D4/Avn8Al/Y +m9sfPh/qmrMic8QPPQpdruUAfRg1VRyCZKysfJGKoNj42cYH26uTZmUisELFMA4K +XZIrBH1dab2KNliAkCESSrDDkn7eJ9uzjMLUr8wnNH8zD2I9hkrGVf7xo1/UDEyK +krM1PWO4BBgTgyLE3mSSon0xXY3JPEl/eLQ9Xm66UQb9SFmwwsn4SW3e//NV8Wpl +5Jn3mQYgy8RmBdI/xKhs2QpNvsRsE7WCNtA/jf8wY94DWgXY37CkY5K7kOPttLW4 +CPZ5AfnASqE0eql9d8fLCQyXK+l+1qzvB3PTIHXYxqVSXANcCyfWdJlESayGMZv4 +H0r7lDwAv2yjBYAy2xwWJwtgHWu15q23bZ855upHpzdkvUSm5Q/Pg+QWUFlpQJgV +uBs9FMAOOYmDWWGXheH3EH7iC6KXGDCwxvLWVUEaF9GJKWdzDETwp1bs9dFAeZGb +smeZ2ByZv2GA4DqqBSSyj6uIEDODqzXcE0amFLk= +-----END CERTIFICATE----- + + +WUS INTC KEYID 31734D6F8AEA913A0A31180B785CC0630894CC7B 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAp5dvaxa1oYgYQAAAAACnjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAzN1oXDTI1MDMyMTIwMzAzN1owQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtMzE3MzRENkY4QUVBOTEzQTBBMzExODBCNzg1Q0MwNjMwODk0 +Q0M3QjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ9+ci5WhVpgl9hZ +bpe0JLnr60rZJnmoceG/8X1Xdjf5dJ17ih2QB8QizsHF58+PY0bntHGDWj5OcnFO +1ZFLAJmS89ylt2/8YxQHXFtaK4EIYhGBAXKhxtNSILYJdxtamXX4ErQiX1wiVY0v +DqeEDn7DW7lGoqQjG+K0LSRWyfLe6PeLdaZUbSmf9/TwEfcc9mO09KiaQHUBx6jh +fMgFgVoy0LmN67LDXHdoDGVdLoA6zgxf2nkPV20OiimKcgGzDmewja9UdzwM3yIa +JyjJi1tUrYNCLoMSiJ8D9hYD1yW9Us3WHQTuyeTYBx6W9iidtcYkw7j4HmGT8ih2 +copIYntIIwHFMoH9M+K90At6HIekHsNy56hmJevpmFiRmPcJTb0bpjIXAB4+F/Ay +TzQtmCSTdVByI+u3JI65cKfEWYKUNSlNBF0xiRTUngFzXZD9CsaCoUsOkwLPHn/1 +KTSFMoHq1+kafEzz6mS+TQBo8GGt3J3ulgURH+z3TXla7hNOelBU0cTqFrmxyTmh +RYoVqo5msDJbSq8t4hI26jluuHNr+3OLEYeVcXvpXe+Yq4lu8Shp8j8DBIqrBtDu +bB1i/02mQUpwK8YvFybBy1wndlcnusaOpm/TeYOYFAivrJBsJwYhfthFuo2yOPW2 +iE8hp+fLOX2yarDQykGljrRSuoBbAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTQnL6JQJFsuLOS +U4tQuF79MeVf3TAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAINak/tA3idy4lNGvWyf5R7loOtiGtHPn4lj6+pY75PS +oZEZEuQbqLaJeEUzcdteWFrCOdW4umhrEokX0WWh0VYMsE1OD1tfF9ec9nHgfOYs +th8Mxhs1OgNKlxhfAkJtI3lIYrGuTyJJw/ffbiq1UWjNDzWm/X6SdAUB4N0WTOpT +2cn0Xy2lhcJIiZrSmOJd2cloC0eGRqcmVXJOVW4yTN+Wj7GWkn5O2uS0s070dTUC +3/h3AN0Jyc3jQLGmaO17Cv8XAaE5yEqMqzqqvQCcAlR8+68rl2IfzKG0wM42R4QL +Y1D0pqWRRtZW8L1dXJ8HQ96jnMGDC+P1za+5AWgtdIDxPigM5BxRkZsblMCNKn8e +G7u3i8ANEgb9nRceg1KJ9sHO5OZiw8I8F7fKufh/DMxbbdai0WS+Z1rAfgtcGc0d +bJVvrfL9UGwKS2WN81Ui2A905wPipCM/O9icbKus41tqTvzbsHzCmIF1SqxHDUAB +fVkzMN3PxKuWqFvSi9Gz3k3IOqwS8n3FHDFkZjBX0Y/6QfIizo4tFJCuPDDTgjQb +bGQrJ48XXeI+64VMtyKlrQIGjsj1ywL1HpiNNIzzlboSIfhZYEwsIcWkErCXfJ7l +f8LlDC5RNQFNVWnwxYJq3N3b26frEL6Bze+P/1Qem3ZXGxhc87HQyXGSBu2javux +-----END CERTIFICATE----- + + +WUS INTC KEYID 4994C129F1A548D488586F22A2DF8603739B3BD3 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAryICO5kiwyrKgAAAAACvDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0OFoXDTI1MDUwODE3NTc0OFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtNDk5NEMxMjlGMUE1NDhENDg4NTg2RjIyQTJERjg2MDM3MzlC +M0JEMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvQrN1BMJUqxO+N +oW5218T2QCDY4MKoz/68sR0SjHOpO9XyjHFcdCYr5xTwN75ulsAyS8PRGxlZy3bV +IzDCQuwQHpY6Oqkh8zNhX4noOq/5RUJbcOqT7qAKjA2FA3PN8g2JUHKqDORAebg8 +xUCFKE3jIqic9Bq0po/OXy/nu/10WUWMy57OYroAupFrGcattDf2nOcHk5AZyVy2 +ms/s8ymm3bIVGGYh2y/gjU3w7vNH6hpiIAbtqr4WqHM2M4q6lE7k4irG5SXhqdPa +0zq32oaL7GuK0q8GKpRbCMag9xTMlKS4O3T7hTncT8hwzq+lnJWvBdFs4uxhg+tb +2sxFlHozfAYm572ILCEdhHBkbLUr1V7O0vbckagwrOyk7O506iflgiqLolMo+xwH +Zw0/kOGTaWh73sFATJ9hseRAx4fLh43rFghzXx0LZlNz3wH4y1N8/yH+PDWAj8nJ +sdXEM1xCqOuTo0/uLwpy27y7qxSqDil301AOmxZw/hQXXh+uFtBjzf54V5oj9TM7 +X+QO48Zv9LuNhLtMpzTofIYWGgaf4jB33U/P/9yTWguz3x6xqhguI7Px0iUFzBk6 +T5n85H2FSKAcwNHGptjnQsYVz039eRphiStrG2vhbTRA2YVl4O6XS1j0qcpVydqq +lGBUphk7gzdpni/fngsbZfJIPuW7AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSoWVle1ESHqqbU +zUHty1eHH8u/9DAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAAsc4/+mWpQfa5mbrRkAoXr23+Vm1uPl1ewboZBrc8Gw +xgn26cPn/mWf2Tk9RsIgkl6yccJYr7Z0rv586ocspTaBJCnA5V4+/Pn7qrAM+0Ay +8ttiIRe4R4Nug7aCPSbWKb707Y9Pz2Bg0BtVVDd8yTXoD1uyxg72FDStrdYqQy+t +wm0oM7ylWwGbWShTOvXBlKarBst5vMvkC/ZyF3AzXRQeUJb68i4GoUbdGJ6kh+gY +3WzZpJ4NommiIo7hZNl9ar4vs1YUkJAENXTV7kzmOBOA6T8+bburhVyRY7wVCvFP +VUnbpieHPRbC+HuCAERE1RnfTW7IfTrTb7cP0T6O5u1bceFh++Z3SiPFx4bTUKZN +LhhPNBI5TWtVFLa/ly+zjJk4smUBiObGGdAz2NSy/yY97GL0DG6wxJATvuGBWYE1 +josjyk/wR9YxaMTp9CPQW5RsGxUNIQTscJAVoSOSRVGy+Qwrmk9eQcSltxeC+MO1 +N491MxWbBIz//ON7AYnVSbdPXLmo1zcGArpzLPaU6auLqlFhezTx6t9TnMcsrZOb +PepQN25NkGb3CrwQwfl89ViTSsHZncbX9MkKL/ygqnwGOvh5Aq5kLoRixBCIFUfc +G3kMr00NRG28VuKiJXpmIhY9JZ9jIJD/xtiDT0224vsIcKJ21AEV2UYhuyixxyuZ +-----END CERTIFICATE----- + + +WUS INTC KEYID 51C73CBCDFC990AA677417CD5F78BA37D4A8D731 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAATuLBKPhDK7HGAAAAAABOzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQxNVoXDTI5MTIzMTE4MjQxNVowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtNTFDNzNDQkNERkM5OTBBQTY3NzQxN0NENUY3OEJBMzdENEE4 +RDczMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOJI/+y7zIr31w+v +hzVZQawZpORTC9FFqYlYq6c4ek/lbbfRSQVp45KEUmi8i2ucbTYT3XdC81CkwHHP +ocLJN8MQuSmZDg+Ux7aeCZTjz9SQutubiPgKr2By41689nmJB/QDrA1H6u6zB8Ys +4dwnk9l5+A/qxAiEb5efyS03eZRNgSNe8TPvg52r0fcRtqN9uXCM3C/t/UpB+/AB +of1/rkYuBbLMyIG5KrhbCUqkedpMcCCsqKooCKu54vVzLGbeB5CTJVX5VTPh+/kj +suSfKOr6U5BTKf763SOTbMeCI7alSpTI6kIHXE7FLfRaVMURhOQwKozDqlYm9JDT +KYJnfnECAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFMHAGxhr4FHQA1h8OdWtXBpY35qlMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAa7zi +aaPaCl27GlVoC0yehSOhHft7cQVBi7PSSa84t+bXYLVeU7gG/v8dGzzRqRA+h+MR ++UebElTQTb3/EMXtjkSs+5UNl7dlyfgLL8+YGEd49pjP15UUbRYL/Z++Gw9J4vzm +cEGfvi7etZP5amKdA30qCY8KJ5vX8s1I+rLhu8B985nBVdAKgkxoB0ElXl2CGFkA +t8VqQrFhB7eC45siDwjGJtX0lKE0bFBkcVQx63niIlTbNePgWvA7i8L+3Ws5eh3L +y4lkq89w0yVerrXZ6/q3LIigT4jvwYaHElZjh94Lg5GzAKhKNzE4FOPKzS69Rtlz +4AXuoDvyvN0dZJxPXYfTcMDLRdsAwMcOAxQSl5aAovBEQYJPiCBkgLwF2Ln+ZlKz +4HQ4MMTXVPlumciZnNnMiMs8RTjSjvzB6x1rR/S1HCpSrDZf+0AkOkVggbNDW80L +VpgaaR1FjzRCZA4BafNp8tmydvWcC75hfUbZENs0k021nR5BtgZ8etuuqY83NMrb +rmsdjcWbU7ybo4k8aG/HEnHpyZY/ylgQNVOZH69Ti/t66hhX2SyDagRoW792wQGD +hWrpjQAwN0wc/6BUsFGBeJZrGy+nM22/MEfOWTVqsqQDdJ4+irkS7Zrgl7MUszba +KUrXXFzZo9wzHK+yMaAO1u+bIYMdl/IYe/yAmo4= +-----END CERTIFICATE----- + + +WUS INTC KEYID 51C73CBCDFC990AA677417CD5F78BA37D4A8D731 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAdYFqCkLiWszXQAAAAAB1jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDEzMDE5MDkyN1oXDTI1MDEzMDE5MDkyN1owQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtNTFDNzNDQkNERkM5OTBBQTY3NzQxN0NENUY3OEJBMzdENEE4 +RDczMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ99YIL31Lc9qe2x +OMzToofqHMQSq5lHD/LpyOwJ7IhUsBCB6l8XxWsYCDCvXNRCjbVvH6eUEwAxpvZe +xSQKvE4OG/c5BuAbN5E2Il5r6Caro3bW6ljSVfq2yGmtBvuIOTKbh7hLZGGPmuqR +ggnfcBA/EB+1XMd1v5jz2QlY+cv33X7lrWhpCRWaDLEWSl2FEN43XQuKxDj5u/Xu ++1WbsHKwxXjc18nuUaCdB1pXdcJ4QjDIkJKF9Mo0GZf8KxSRrEJJeymQpjQUZ6VP +IbRjKfwKbKz0SOs/yA8Yoy24cVGKU8bsw6mDB8A0wkXQ2UdOcGXjDDhibfmbQcVR +zWu0fP2pZjeX/1NILBafRS6VqB33pJIkgZ2LfSbtwl6nFUgLPgoRXA1znmKBJyzu +XS6CUck72BDOqeJ0LW35oU8XBQPnhu3WeoRPwS6YZpzOXSb6hateu98hYbIsF0H5 +7rZWk7Tu7EP72fZnNHqjvFoxh+hJq3Is3wpXj8ENaOZebE606qA1uTNbqy+ufeYx +GHUX2yoBMdh+yodZ42tIRMxfZpaeLuL8i5MDlG+i+tTZFB4XdfDZMp+H64WoFI6H +hHvSc0n89wYUK9SUJyhWbKdGXWEFlenHCvp9zsXBLWAPN/8LLZNqOPZCo3suhK/h +lXFMjsLu76CKzRu4f6Jc+IBBbGxhAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRi4ilYb6cWyhCL +t6i99BVTf0kG5jAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBADBUegG+FDKCMcv9ZOHV+lXOGY4Hi+Go+Xb/3RinYNLi +BNiOMw+RDyTRpbxahzK6/GHxYGp9XiJ44Aw4m27ikLxZk1ioCMcPpfclw6EeUya6 +WY1dqSPUkrQVGLHOPk0mEirvyNHKs9LpC/I2KBVTMsT6j/5+GVhEJdHnOS5r508p +0dT8M4LJfINSVwmYT8L5FsNeVGQL1ZQ5z0gSjY8nnVFgI9ueT4DKPbtVGrDNQr0S +XqDGWZr/hJaYsxiOvDKIGYnuyHq1JOYYhwmElDXoo5eZWBeNEmJPBZZTU/cTA3cf +pupXZ2rT+5tSAtDleNi1J7emtghmVHFCAt5Y094JSLvsk8rzVQr6tJIWHDhyIOFM +Iy/WACeJD+LtUPyWAxNYRRZ7kcYAkTYc7BNDJ4yTdgxi7YKzMzqOXnbhohCkUriG +FIrwmT69KzUrawrkxyIApZYyvjjoOuFIGi3JaLzxvgYvljiqLwpml/qneKaFZACs +lJib4shszSJmPVdbfefzi0oqWdRghICwF5/Q9xD6+RLywckuC8aJaUHRkgDs2Fjp +Aw8SBEVZu2bUvd+KsJElCAXD+CBbfyilZm96POEdiDVRb15mae5+/62MI8wiRHKC +2hafMNmuNSxJEmg0bdWtdLv7JHY7FXp6mrQnRJVPDMZzddPgtEjVQduKQcbLDmah +-----END CERTIFICATE----- + + +WUS INTC KEYID 5E73C89AA3E902B272B9F0741F7D8730E3EC724A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAHGDr4uci09rcwAAAAAAcTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MTIxMDIyMTg0NloXDTI5MTIzMTIyMTg0NlowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtNUU3M0M4OUFBM0U5MDJCMjcyQjlGMDc0MUY3RDg3MzBFM0VD +NzI0QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL8ULdiyxMhW9Pcy +4pWXVg03nuKvx+RfAxjDp2ERoOB/SPy/6NeE2NlRImZ19wUc/kRh9XW2v905hxPr +7s9hW3xffDPEHRKy2VAzSc4G7cWYOnFucGIwk3Dd4u5ALVQskNOuxQdj2u2DXMp7 +8H+rQZHaIFsSXOJIVrnYD48RmGU/tMBnC+RxNrhCz6cPUmhlaLraGmScZUxgbaU+ +7TXSPvxWi8UqdY293mNKeUgbvzcYY8KWGh5CUEFZE864nZkh4mOajERRcBk7pd2T +4RewYO/EyEpiHx4Zwuce/ezgc26OzWmPzf0fQLVGXFtD71QcolF5LHZvPHus0QCw +8vrkv7cCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFIP1IURw1OVv3HzPKlbaiNTdx/DKMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAMqMo ++Fm303nvVKgnW81BKc8OlO6GsF8jAMbmvHSjF3/pSDSUYajIbB/+TDoMWcuA8IHr +pdPsMNvfvkyi5bV7V+eaYJxouF8AlXPmOj/Gh/O04FwjJPkUvO/4Z3QBa0QdIKqk +s1U7wyrauBwQE17PFB46/IaC9pXken7e62UTFgyddZWWAn54s/dTVVXoUwHg0RSN +dGBe9IobOPSBPORD0UjMgae+jVjQZVnak+vtmR7zsQV6EBbg9NRe18bfxwJwg8W9 +3HHtlNaoSP8Qp0ByEj0HCud79Z/mK6gEHelGF9VY5dE/QBPfssyFfKkn3P9ZsVIA +zBNJW7mCtsp/FjMWLKxOtbqZXuU4rbPUkTdXtrWLNbHo8NZvzU3cheGuIjSF1Xll +SDBWREUMphQo0WH9t6nI+E4eHp306ZB5qLm7Mqg7sgZeGjc+FluXCkhr8N+Rpxcq +eu9/eKbNJxpFfr3Woq/t/9IKdCOi1APKA8EGFcsZwJ2FvjR2f8qP16ZxoL7hTz16 ++RtmnUM7K6ybKjnDAEVDUcW2vFaXB0Si097ypMmSZDBshM4AKNHfoHcaJevQN/WD +UNnIEvrTeAtFwB8aH6XA98fBVsbT9JpaQ5xlit+zfv9aMYLxmBQYBHSgf52TSkpA +aFDrVsQAMEkfn5s8m+qK92A+PIs3xl7WwxXiyuM= +-----END CERTIFICATE----- + + +WUS INTC KEYID 5E73C89AA3E902B272B9F0741F7D8730E3EC724A 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAApq/YfQw/yu/KwAAAAACmjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAzNFoXDTI1MDMyMTIwMzAzNFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtNUU3M0M4OUFBM0U5MDJCMjcyQjlGMDc0MUY3RDg3MzBFM0VD +NzI0QTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALaMT1pQzDdBrovA +ETialTs337U/0iWLapHSILLgsxi5BV/lo05FIm1tJ8AgwxFU9xcBWimf9dJrYbhv +RKgMzG0jPC6AiUlv/NCBz8em+OMbRhCc3g/r/whuFKI7IgHa2oGEoDDZvXQQvd4o +xg3jmbpHKKseYOJB9P0uAgm3jgtGoRkOcuf1Mtj3DP1RaR9rnbeL0HdzpGbrQG5g +CWehT9VGfD/m8C67iS6J3Kh3UOT9/PpRyOPUrcRW8djaUB2ENhOStNXPj8jEMvHa +B7RwtCYyt7b4YGeWCDrYGTB26/OCFTOz8P+RJQNKjNUF66CB3/4quV7Bmw3fQTen +J88OF7GifkGmaAbTiZFysen31OWOp4uRkWPY9mRASNpC0OPJ7rwbN7nNufndZ26r +5w/ocjOx+KGoWUY2sUZsJezEo2jA/a4BFxoAtiOAL5r8tgyjOfhbyew0f9Cxjzwi +9Xmxw1NdjrjBeRM/xoPjJZzQ3W9JJ8AsOE7tmaaPH2zvs0AM7PsOOMn7ElKsjfS3 +KzX2NdVtv4O7L6v8E3XX5u+/t1Ke04vgzhbNfWFqyvauQZsbetPataGt0KO3Gckq +cEthTAHxtvWiX44ubYuAEdiGsTc1vdEB7ae8VsucjzH0GC/AG8OS7PrF0LSUymsz +dl8ZgFD469QLfi/NVQxkCaxShBGzAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRy/fsN4QqWuuPh +x1vT1K5t6IVy5jAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAAUceVLtzQiiXb/mPZ+tTlAHn4WUBqoMcE3tEUQCLURD +2fGqKMvb/uBPI3NqCFYWdj9J5RDS6sU3ra6ZeEsc6WVzUQaQDa38pRyUgMTfEy6P +HjAVVqlNf43sHjbDUEpjeorPmKFRAsNbyOjXIy4XBQB9YaZnJC9gnInq7Se2DwpK +boRq+43M2EjLAhR46T5t4GYFwP1XE0wOnDYOKRmI8jDk1Tpd9AJeXxhW3R7wavZP +KeuMjrPpkch/ultgm/NjYBSI5lPn0hT/+csqq7p5OhSVZ4zbxR4vzM3q44LnOOu+ +L+5zwKEPHpVNZhuc73wOA+dtANL1UtRTlxeQ4lYSbNUnbQXuh5wGaotn1RCaxZYV +KP8wCt//McHgmwX2SIfFbhExCZAPv6cMRe3OSY8thcygEUMXt0iMVj4GNWaZp9/6 +xWPNhjc0fx7u9LHNqHbNdm6UX8VZs+S5PpmifeZd16u45xJQxresy7ksnzAVaG33 +3LPCgxeQAABadoJCTPZRAhn1Kr/+vABWSAjDeldbJt+n9SDBLXLHBobYDZp+JuU9 +fwVm3b6PreaVPMOe5Jeo1UNFonFjzB/zeJ7svJh/NuH8VdbHYMDfK/FlMVSL48+Y +UFvE9fXg1G0AXLocsyEtJe13eMSavM590ZB+d84m8q22OIdEDxMjaqWnCUnCzJ+0 +-----END CERTIFICATE----- + + +WUS INTC KEYID 6CA9DF62A1AAE23E0FEB7C3F5EB8E61ECAC17CB7 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAXOgvBwDha3DXQAAAAABczANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDkwNjE5MTQ0MVoXDTI5MTIzMTE5MTQ0MVowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtNkNBOURGNjJBMUFBRTIzRTBGRUI3QzNGNUVCOEU2MUVDQUMx +N0NCNzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK9+TRTHOLz8ng28 +fzN/jnv3/NOvIS/S1TyVWSPkEezK1NuDdVXaOeBYn264zM+sTtghdQpLtzvaoGaS +uGanL09BrU3fY9hT/3ZLnCK+SIq3qAGSIxAFNfo6FEftS8Zsq/To3IqKIQtx81xe +kXl7OQR2PZiIH7s7xTI4EUhb7qnmTSEPcQ91LsVLNA42ppGMgworaxShIf+Q2G6L +N71+NRyAK0XhV+MoWe2/qxMnm7rpEZyrbQMdOGbHgTAYfwiJtBUPSAX3DVJb3dox +dct/ZwurPJzg5jDwpnHEqQfPI3KcVvD1U/D3vmOXeysdFZSQdwY7iETCeOkiMcc2 +YkvdC8sCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFJefuh4GRwIf0jLJsPlRuEGGJyVaMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAi7e6 +mhSj8Ae51nxL01PTrhgdBdFN52WJJBxEVxFSOEDRIczFyNfKx/HTQ+JIVhboTTbP +ZnOgHQ8NhCqDQTVqoi3wHMxOItVX+eC435RP/5WjuHoOe5bBqxEk1QjwKwCcysER +0BcNL7wIzrAPL8O7XDNb+XBBUGlz4sinJ/rgfhi+gdM+9NzlaBjBb0ssPtyquOH2 +TvxUtIyHr/dAB9/wLgeQqme3k3yflR3445q9fPmcoNGftlhJxAIs34jUw7LZXY0w +IBj7iuYR5iKVVEdD5+MiHlSETW0RhNG5wORy08OWjGT9R4sAXu0i+d2O+/I0Dg1w +fvuN/7uZ9cHaOe4kbTxGKBinWQhElSVe8Bdx7TE+7fVE43e4IZsSTwsoL5LutBs2 +pvTamb3neOcSUGTy3133dRsfPWiHyUEpXfCgBa1CR88eNOHHD3RHmxjjvulgLyOf +Y85oSnzv9kv3Pdke6uM7LUx5nzbgdlg+yNgFZeDcUKYA2XG82r9nmCLFyrqBEXXr +7iPv/1/HewXjBrigqseIwXLgI97Bq62rh2jVExRvTFrrs/mJLsHuoR8qtdcR44al +R0LeG376XZoZNNR5gWt/Wf9M+YOcr3gRc/GoHvylspY7XcLUGEYyodKOwarC48mB +8UtPAu+cW9wBpCKFT05Cs8k5sQgX/gmjuJDL0no= +-----END CERTIFICATE----- + + +WUS INTC KEYID 6CA9DF62A1AAE23E0FEB7C3F5EB8E61ECAC17CB7 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAApupEa63+F3QdwAAAAACmzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAzNFoXDTI1MDMyMTIwMzAzNFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtNkNBOURGNjJBMUFBRTIzRTBGRUI3QzNGNUVCOEU2MUVDQUMx +N0NCNzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKumCfy+6JV64hqa +lvSNaiXHzJVr6h6muk6ccs74N1FOTfWFWifWHIGznw/QfQrIPFWMDMz/LrjSjzr1 +jy3UHgcL90lkhqiax/j2QGpljfdPKXmhlvDW7B09mUtgbS5lm68uFENscmKKTDK5 +SO4slg5dTfM9ABpQ3OQKgeMCMezI2wknfZIyNn68IlcWqEWOAOLyrNusJgvI4PyS +5xgYN5LdWtyVKuTzqu0HoLhsk+HcAvgggfbSshOScN519MpcyxTcxu4v6jlo5WQX +UJkN+UIAF9cD/++zX34JPebnfDqFYhdxwPhJKicp2/MM2PIA8ErofV52cmKNIcK1 +FYT1KNf2bpz6zFZxCD55zURdE8knJp9H+YFaYfcyA09Tgrivt+Fk1hw+MmTVJaTb +1Jdd1yMz/qfmZJUCrZqxTlzqW1gkXrNn0SMUiCSgzgUUW/JfmTmSAmK1RqH68Gfn +xZGuAiGiOaJvW7/0AIdsbRvqq5K3SjhCeMQGK19b+UvbfqdfiL9hkL7bKeB8mdQh +UQLdp3FnKU5ZU5P1u8b401ZplWKTHOWReyNHJQ2ofxuKw5MMB4KtyGpd9We3F1S5 +ZWGWDDNE4auNqtVFbqaOUkR500t4w04V5GECYs7KJQozJ02orbfRAc87Du0wF1yG +TptrbJUBD9vHj+HZxy7qC3meAqAxAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQlZrOu9iP1cTJ3 +P21KlkN0/fM66DAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBABWbu6NPzrbRiMbdUWwSNNfbmMrr1iao0/NCRtkZOnU0 +xXVkE9G0yddPeumalVfo5Su/ZWXGHD6fiS8DvuV/y9K7VQsKe36Tvy/DS0b9w3uk +oCkmGqt+0pbyeDNEilpiEradLtgrPmLNytGOpONVz8xsp5uKp4ve6fdYKXEvvBCS +4OS/BI9+52sLu9b4qkL7f58e/p8vbR5W6ulbes04ej6bHyRk5dma4LbnZxlqjDyy +hgpZnwOanqRyXYNq5dlyjPImg2+ZD0nU7VBCCj47WKRwXsYQBeMbPw92j+ZAqhRp +q3BxRyDp4bLxACCnNSEtruOyotBi+8uDw2GVUGkTysXUgVTc8WCYxOzGLLsMNZtd +xLyoyj5ydlAvTerDWpT+UfyeNSKyyYUTWvFVVWh1K1hLKVOZ/mZ/UR2jcyiQZq2v +GgTfN2DtPBJiVrUZVpuUtdUWBwAaQtTyYA20VNJM6GCBT7Vpr2soLCrl0XkMBQfO +esVIK/7YN2u5YsBin72l0SmLUkp3Bo1/EdXK/NZOomZOWXMYzOT5Wd0LVkZ02eM8 +dA9TXd28Hete5xVdX6ekYe4UX+BA41b+91eE+CEde/dO72UPesRLcyI3hiQsPVM7 +8Mgvpah62eZlOcOAeoaR1bf8XwOrK9RiqPcLnkovcC4E8oIhN+tlF2Vm08jRToS+ +-----END CERTIFICATE----- + + +WUS INTC KEYID 8E1AD84693D5D89B1472CD8F999076EDC4115400 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAArs3JB+f385O/QAAAAACuzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc0OFoXDTI1MDUwODE3NTc0OFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtOEUxQUQ4NDY5M0Q1RDg5QjE0NzJDRDhGOTk5MDc2RURDNDEx +NTQwMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM8CdlT7mLDwK4lN +8OOt1M0cxR3gnkce9jBBXWL+QEw+w7E7mZDkRhEk0QthiJIy8ze+wEGjosSdf1pN +qiSMwNwvRgZgCRBUFkIEFNr0pUHFr/V4ka4bu/LCvmoqUumEVEA1XbiUIDFbonqe +hB/gmUPWiXC/HTMxKjWm3B0CV+Csm+IJw+oPd3Q9iSjDYm3hX+tTd8b1Yz+iQ7Ht +ZVuqcHEYb0FTGVa2JjnG1Ny7484cpvY7H8+xtxWNnGWxh4/6LNQYg/cx/qUgcnUC +muVWFYugoTY9iNFJRTPs/epZEFbLG9kKQvZBtB6IWI5+F/aq95dZn/+usFeGiejQ +yurCi4+JKB8Rh/7+wtlRJMVy4FfyiPDrNsNCloF3MAk7fdzcKe+b+QlbevB8CANF +YyeBXHROpHFOpRsBlgczwtHetHra2IUzJ5zclV8eixU5zd1GeMbm4vG81XkF/4A3 +PuMMJ3Q9cYrobQ1lvFt48Lu73fcBeTWuB+kxk+WHGo1TN1h2y9ccEuQbkADDuOYs +0Doma+ULvdg4ertOWQr9CYdJrWXwvbZ4ecYdcxr8P9BX+HUVfrLzrHJpIL1YNbJg +PnIgObN+eFjs3EEoCTW5MsyJRoI2+QppdyF0OZYZrWInx8jAm313y2/MDLNco+ra +wikdR/4wDf/M7Lr+dr4JxDCZaQ8XAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT3yYAIuGDPjRwU +efQ0Ree5j1DYVzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAH4UCHuiAp/aH4LRzWhgJ42sXnJyKKFhQScf8b33ft1u +wD3EZooH1dZf4Ma38pDlHOEbO7wvgqVEfsMxuhFPoJsOPaVf/J8W1hggty3hKOH6 +6dP7+mhWbARItsVxzDYIIduh/X/r5aqn7ogtt6JEfJScWmgcDgT0qhQT6GrrRdCy +Qiou9NGXQaSGGImbRxntgz+OTAbMaKydRZ9rM/d46Z32MpsITcO9GVBIdBe0uSYk +TJZA1c5ZxMrzUNr7K1ckkwpFzgRPCm5+xVSrc1IbTbiks90lO+08JzWIcKd73jay +mmrhB/kvyHggdLL6zIbGeU01DMOB3m5503zSGDhAW5MkRu8n9G1eyqKF0Gi4ejFE +fyJBx1LvIO1e9iDO6owoz1kbLrxourh6iAyG9PZg7DDszzp0nkpPExMex2tr1GYa +LLtSemTVwO+r+3lnn7bcxVsQ7OoTMTMKfa4wMvuCbo/HgGsF4enjP/ZjIakbxNiQ +nIF45DoFCM5WGviaLHWWd6JnyCqnLEYpWoQfebFVv9jvnyYdGoImMj3HcOXPtVO+ +hHXSKuakXStr+h2OiTwiv5kl2wTKnf2bMEpho64XgpoF/ZzArdu5i56q7m1jhjVX +Thm1jIF3rHT+ZSY2lJyVswHbkFy8BSZP2tZ2udqZ8iU9E6NybCpJnBxCUlKS5TCl +-----END CERTIFICATE----- + + +WUS INTC KEYID B99E979AAE48774EA2EFCA9BF9AD5B04040DC10A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAARM+4rGnIRSuSQAAAAABEzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjU0M1oXDTI5MTIzMTE4MjU0M1owQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtQjk5RTk3OUFBRTQ4Nzc0RUEyRUZDQTlCRjlBRDVCMDQwNDBE +QzEwQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALmRrYAPkSqDA4p4 +BxxS6+fZMajZEWVfp6TMM7MB56lXi1IG/Cm3pBllBooGCj3a9TZag0U7uF8la0/0 +fi6R5LbV86rJxMYQyQYITy/UBi1eJjL/fnvmjE2bnEYf85FLTpiKg3IkhhzbeYwN +DMm8nLOfMSETcOLriu8akGxBvXmmlA27sLJEaMHMxnXi1kIb1v6V0IslOFg2lzkw +k/wOfXcHw+WWd25P54dVBa8sJKE1rXOuYRgIedLzINAphrR+wRn6YaZlOjzT44Wi +pk8Zbim2hp6RBM7o0BY7qcPGOUpd5trWSzieQSaFGaaDq+eyzm3g/My3EQJkoo8d +3f1v3mECAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFLvuwPBpTv9hdJT4kth8iGphe3xbMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAekq+ +jA4CxpR+7Q4XRHElYgqA95rOdAWNLWcLzos6RKQGVTSGzc6KCF5dgDrV2J4H+onQ +0dHdyUt3K/NwZ+XEK/wmJmtXOkurUGC3fmZrlqdA9QCD/X9pt1WjJkjQx4yuK2qg +oXodgIlfc3x/tG++Uj5MVxtIUJXcsKrmXd8wm9x9423DBICuFmWCO+lbIL9/tm8K +qzdS9krDswzJpKva4L4t1k+Uwgs5+uZFsuSdKl4/1yAjyz+YRrutmcmDoTSlaxMA +yXlOJ7OCkjHwxQAxwk53BNaxoEc6ckThaM0OFkpE2kTL2dnIM8vZKRGpdLxNePqN +/++HTeuELyZOPQXi7EoZBiqXIWtTf8RYKddNSu4Il1sKRvWpQZgHeqgLHzf8+Hs+ +zszFld1gSiMmAI2ZdcHbv3NCePhlhcNdqShooIEtVkYHq4wdwsHh7JZOuT8K7Xox +EPt+PQKPlNCnBUkaqNuB6+1w8BWcps6L2CgWzA+HPgeMfFU7EBAXfsQoEhx+txRe +GvwDN2UEzyo8qwEaxR5AS+NLr1HdXJ96cQBDSXwqmBdxFYmZRZqEr17kGBPlJCfa +nvp5jSfJJTrKqCsdM35i229qtWynDoO3bxHLse3Fqkq4CqDwYuvXDwJ1UEQzXWcO +1WNyFnY3s3KrTsu6abO3KGTCTbuxaFnk5nVTsXg= +-----END CERTIFICATE----- + + +WUS INTC KEYID B99E979AAE48774EA2EFCA9BF9AD5B04040DC10A 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAp9BoY1x36LqJQAAAAACnzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAzN1oXDTI1MDMyMTIwMzAzN1owQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtQjk5RTk3OUFBRTQ4Nzc0RUEyRUZDQTlCRjlBRDVCMDQwNDBE +QzEwQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALREgOyXL8V6FFaz +JsPeKX4s1pu26/6Zz6Luq+6HoxwEIU7thly9JD+eIma0gNylhihSaOOXtFWhWZus +e/QDGK4kp+LoLWn01gZ00JmmIqaBLLh+Sd6DaRNYBqld2uJJ6PDwfKF6wlZsjQCi +WXuqlpsLkfNGnxSEF5nrVBYXktIhdwnl0mUGuEPuO5xJiYh6bhhyTXT3Z6JSVh0w +zgj09kOqLV6QeL7MG8kw09XaH52n/far9AxXU1+eO6UMMjgs8GdqmF7vCJjJOuwz +3IDMcdcWRSXJ3duKZeosaPAixhynkXrUrl4I2JZ8tlrpADsYoQQQBvbjCIOnlhM0 ++XxjrX04zBiooK5ESfdAaRNnMKanzhcWPN8ZMhL01GTTEr2fiPlbn1VnBBg5gA7E +1vypu59yG9sMyDNx/M6tmVJmPJRpqu9q0QUNHdbfPKds5DKSEK3Rf+WvNh6SgdHS +eX1cVsWeciFOperzJaG7HlPudNujMJMT4BOSQpAdHtyuve6VxDLcnSopzh+58doz +iM10xtVLZJUVUbuleM/RhGBsbH0y8EtTYMgjJM4+/hPOvhN6hTBGgS2HrLIFFouK +WfO8BOtQqohzwrtPCVSQH9ssPFHmR+QR/4+9yoeeMs+ucvryXZhpMBtjV74XhcAq +KkMGY8EpJn2rJY5XWR353Rorrn8ZAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTGFZ0tNRDCx3Bj +q5xIzufUMmtjIjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFCMEtF4rCKXIDj/AlTqPU6Or5welcnWmUZrxyIL6qha +BCcv/6JWY01bytpv8p+YeJ5YBKoFTpIKu2zwFwWMM8E71Gsik5gR+TMj3nNFvSfI +wP+V6nNJVSlgkym8qgEYYWo74N56U2znwDcP/AJL9UP+fepYnTE6+rjSFw69uxJv +MJBL5PTtIa+Ur7o0fQ2C6WgNVpHJ9dNmViHmnR6wlAZAYxqKGLvcSPN8DWnwOu17 +8Pk8Sv7bmztYfBpJ/RIlNayV97Yc936JSCVeg/EB/TKseo0K5xOJcYU5iRcQDDD2 +f82ajvEsRu4kze/M9tqehb/MuR/mLwpxun0xmfa1AYPL0W12KueTa+8DFjKqjpF1 +DWWN7Zoio2OpN5s+eRYBrs/530suZ5y+s8hw+MVBtQ70kjYmFzGkMVvEf2eH2Bym +JkfY0WWqCQFQimGfIBhdQ8WGUvSYzi1k8ewJ5fOMgXlG5w/bGkVlzVLLeW9CCspS +51zPUi8AjCyfqBVSNv8M7ThmEC/U+1yaNOPF8MPwPphEFW2QPmoFPiNnYlPUuWz2 +hGPCgKsrnMw04lH0C76+zQxjGLL1H0e8Fd/8B8idK3E9Wc/d6N4SYzG7nCxcCiGf +656kVCqBwbwud3RClzofRX4DcUGuP1uIhFhmhTni6A/fKOLpsl2ZH3wU0d1ydkUu +-----END CERTIFICATE----- + + +WUS INTC KEYID BB9805E319A78DBAEFA888B45615957205179181 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAATx4ctNIlcHsCwAAAAABPDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQxNVoXDTI5MTIzMTE4MjQxNVowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtQkI5ODA1RTMxOUE3OERCQUVGQTg4OEI0NTYxNTk1NzIwNTE3 +OTE4MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN7fQDk7tGyYLhGy +uKRYSGqvgkxPj2rzgiRiVPmMSUyQRsDN5nNwHH1fehzLDry89PMxadxmrnPSpiVz +TS/ZMhPf1VFJDGj5brO4KCMRKHodOuOpsvq5WN9T/ZIgE/GGNMILceklT2NLAipF +x0ec6K8bQXKXXnzg/lHThbk/Fh4YHzB7Q5d55jyrNymXoZfwoHtKccUyjTlzO+yM +cgxh4SIVeyxaJfBBoWSLq4+prEt5VEqwFsUkqNUuSCStsFt5dXHBp6PkhaAyfhun +sp16gqA0DmP/KbGkDK9OCYRXhFTKnb+H6MamkMvyZ8w8wIors9FOJrPIrCESfbM6 +MuI58UECAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFNizVAtEA07OUyNH6CJNjmaEBh8FMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAaovt +4YFOtawegJwTx5IfVL03HX38XT/lcK0NaeYM7djF0tiJD/qwObJ7vyqru0MGVOcE +Oo3XJzDzWCFXUDnnaGbR1lIFbAPsz5rzRnl+yjcRRrSfBm1GHqKaNyluJ5l3WArr +hm6sB2TsK7o1YCydzwQzBgvtAq7azuObto+IVm+x5599G+kOkgA+e/ydA+cgPxkB +9JNvKeZ+I0qmNAKSoAD9s9NFsRojYTLIA64yyXlxg5z/Y1GeDznuBoo+vouwSSER +Ezq4dm9hgwhvcxUfZMkVeo7btUxt0BgBVwLsf0KG/cjjma0Low7Qkr2spYRybngM +vIaaUP9SDW0x8jwQ8nGqXBB9G/PRqGOeXf7OYwSn+JpZ0bcqpbVJid4SXdUrtumL +e/Kn9DzYJdXCdyZXIRYwbV1jVCbjwzVHy7DgU3OuXpiBknijvZ9pbodJ3fN4P+j2 +J7GlneTu0Qv0o9tk7NXT3SbRRyUmcBEDwXkKDC1o1Zxx5n5u7X9is+SkYo8eIAaY +jeljbF9cteUqApcLtpwVCSROJ4NGznVWGm/I3kdAqzBPFmNJL0u0eS/MGDtIkdi6 +XB+gDFkdhXxDFqm0SNWOq3jFwIZLQz0S50A3MOrXaHJLBRqgTniUaIw1vAp2WFdz ++Xxs8lNDXZBrxjHmz4JDjduCjgy/N4CeEQ6shsE= +-----END CERTIFICATE----- + + +WUS INTC KEYID BF9C5C6FBF80CDCE74ABCD0E0E6004EA022A6606 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAr/a6VHqNOV5jgAAAAACvzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc1MVoXDTI1MDUwODE3NTc1MVowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtQkY5QzVDNkZCRjgwQ0RDRTc0QUJDRDBFMEU2MDA0RUEwMjJB +NjYwNjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALgu0WW1agwLU8B0 +uHKEogOygUwUwpczncbov09Lf6x9CW4iYVZOkwN77b6LkpFq7nfPIV2d+BtyybDq +zMZkIwc6sIziEQ62M7RLkd5z9hu8ZiA9aUQEAWBZsCEE+kmh+gR8PhumXSyfbL9W +9URV1jzKer9yMHM7ivZhBBj/7TgoZ3oUc2XwJJEcT1LqmMjDjnZnAsx9bZnMfBky +549cavYtbVUWcNbTHrmvCgdzGxYQeS+IDGSJNLZ6ZqO3Ywn09LkZxxMeJoeciHTQ +xWnz1hQJdQCC/fvfZ0cUShy+M2Fwj3AsRNNHYIPel064m8h4C4MgwWLKY0coIPNb +7JP9XiLcAD+fqoT5570ggmdFxe32RtgJGvJT5JNkWnkiZPhulcmRoFJZmT5ED3Gf +vfTmIuarN6OssDxA63ywjTauksa2kpRB+YhoEcgwfbLSnrO7V3SPUd/GFXdM7m5K +YLFbEBsp75EvTd2FJXF7xFhQCAHAn4OaRBHC1ti3rDo7ZSdwaigBSojk/bSA1tMb +JOWk402nSJxy8gcaYr1jJo3ME6fTZQdgRBAUokuetxdbGF+/8apWa7Rt8qDzmV53 +Ip3gunevchVcjHm7e7WKpH0PykIE7y/UIygx47Npx9qMTuJ5jNad3Ap03EpMSeW7 +QkXRDW2Q8Gup+KNjNT2QJqtO/s5BAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQOaHsFUbopknMf +10sDsavKgB6fNTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAGJblZdCuzlk/HoV8CZZYhfAwaokDL6Omks7L6jcwBIe +V0nT/EfhwVHxURqDylt9WQjPeqeg43+Drcfggnj2A8QlSYUU1Jj88sQId5k8CkZV +8QPM7FuvEbwgGsUfyTSj37IbEYDYM4stYjvcFAmGzi7JJtxlqx0srVZksg4CEAPl +chiA5NsMDH/9YlAoQhT/MK5lbfMykfrhmt1CeG8cRotsg+hLJj8byM97yJ5gmz/L +dqVxemBg3JYRuRxpFGaD3fpgUVYazkqndqkwabX11lvlxvb+5vW0arAclz4cUapU +sL7gnBgzipbQwALPrhDb7EhxME9pkmXkZ4+bf24XwByA4PUn+1dDAA028/bzBjJ+ +rr5WfjZHacywHJH9BDWJyJm5jZgkZq1fBu8bsOSMhC3D6S+Dy/KLvSuQYicb+Ct4 +jIZQv3BI9NU7hIRIHp/RVH4tzjUscoW9zr+Y8j2MO1gpyZx8gfYNO/xop0J6c+65 +X9O2UZM0ZTjCJIJKeHeKfNub1nRyXg+p2BmZVyLaaxLssCfDjUjL/Ww2F/IlIC7I +61AP4CbrrtcJroG07dtltJ+84FhtK1jew4AVWD+0AFBIHrvds+krpXZ/kjMwuwld +uHYsaihEFIN+8i9SJBbl6O1ZLYSqfVZre3S5/G9Lys4NY93+xlc1VUVmbCYKmL72 +-----END CERTIFICATE----- + + +WUS INTC KEYID CEFE333390733C6727C7880DFE429AFEB557A892 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAT2emAXlYdpJaQAAAAABPTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDUwNDE4MjQxNloXDTI5MTIzMTE4MjQxNlowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtQ0VGRTMzMzM5MDczM0M2NzI3Qzc4ODBERkU0MjlBRkVCNTU3 +QTg5MjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN/4ib4kg9tMs3bD +Wc9Z5vP1MgnmXSBpilPNq8z8FjyodSMOpbtT/6tuHlBLZ6SnZcUegWnoOqdh9SLP +i63aZV5fbt3TZyQl0z7u6UY92nxUD78ZK+zwMpdDUWz1UAI/kmwTKrOlXJWjHw6+ +1LUSGq1iP3Z7akgGU+RbcLfiV/0dcqUlHGt1ZAOh/nt5vlDRzrZvyYd+im0xPweR +5oO0KuuNsGmlntW/JTm4kGzL/D44OttxEcgr3+W0NOqeHoKAo4bi6o3tZWMloEeD +gIaDpT5mPCYVxjLI1GGBjF1d0sFNIM9828dtBSnF4kvfTvUFqbs4dk3YaYWtS/Qc +4AbVoM0CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFM4Fauw/uKOviEalaYLE1GCybaT6MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAK5n2 +9TN38i31S+y264Q53nR21GORhAeQos7DRT1fDqnKX0ZuMAg9yrH0ll2jSqSBUbJ4 +hUCPrcc/jt97oCbdyKbr+9QcV60jWbtktCnUpM4b4wnbrUe2vJSgsCh8ar3sdFP2 +9fwUXdKWh3md/J/aYaOocx29IkKp/oXqLH5eslIAEgsmGGyCxhnfLUa+gTJMcoBf +4YKE5mOmoMNQztcSD/kHSRrIa9uDgLp9mJYLGZDYtXPrhP70d/0rIBhWLk71i4Cf ++D9Z2YnBpFpViHis63yDzU1Qpilf/uCJxJAQsq6eNAS4SuPRu4CJjXDqOqcawVIr +a7FU4A6r0o7QiemH2U6h3Lxoj4U/dXnFx5ldb1xPyIxjGQhly3iN+BJVS0Nwp+wC +c/6OT0p8GHwckAXsbikXnN6XiTakganRXjdn8qEYHpZxjOCDrUCGa2jui0VkOb3c +a+ygCSdbk02FlAFYJ0vVC90O3Ddec2wBkiRAwOgTHK2egKbD5ieHWwo6+fdOQLaO +HGu9HVV4UAOR76qkB1EFDkJaYV8D/0L8gjRYn4Glr3/wHBx1L9M/GXLaMdr1dGHP +wBSY+sJTbIrqQ1UDB8bRvTPpx8zs7kvSIjxAOuSbHBuI8xhC313SmNc8Q43qlGli +2jv8wk69Cj+dHVt+SSN+oRc+CrybHlVO523aOa0= +-----END CERTIFICATE----- + + +WUS INTC KEYID D73CFE5A9E0180801181A1444DE36EFBF88BA16E +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAXbbG/sWLKGbtQAAAAABdjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDkwNjE5MTQ0MloXDTI5MTIzMTE5MTQ0MlowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtRDczQ0ZFNUE5RTAxODA4MDExODFBMTQ0NERFMzZFRkJGODhC +QTE2RTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIuUl57sBiC6xo+l +fMhc5xEyHUOv/FX/FgCoSAV9PjKiP3BDO20MEJnQultsUIxycXA1g6uBF7zqKoI6 +NTsfSRiS+AgYX12x0bEsc+iVSc+U/ffHL6qRxEbvbWg+ORIdHAQfOvT/MOiNZNbZ +DyPzPlcIOPkqrfH0qKxT8uvNCdZsi4cgK3bzDV/yJyCIWgaDUmajyADsBKDApNLx +EW01sp0v4sFqbTpyGB8bMnxrKBPNxWvCIxiy6KuO2A+kTYt4YvC0LkZreiIpU8Z7 +YHLZvAwOwfbVRkNNhwSOd3Nfewkk4H7KHklRtVIHKY54EGYNOaYiLjQ4sRzUyDjN +TtLdGIECAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFDUKTFSMFi+OIaEKYMCs4F6SKqEEMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEALotk +nKShoJxy091ll1MnBoA494q+buuu0JqJy5Bc+bLmqbeld0UJbXr3EmP8d8MN2FrZ +1Wq3eyyoirQIH8a50+53ENi1eSPmPTfoIsUiiNBUarH0JJbWg/lg/hWQExUCeKpA +UkMSfpcrlALcI6wqLRUZtXqVoUpwhOAwIkXLTSADK6nmVWNtZFwFEfr+8nLgBGuY +AiwCctWng/L8wvB40p3P4maoo2RQRWrC/6BwFKJe3IRuH05fnP2c/lvVTLn1QJPG +a+i0JBLB0pxwslemdREO9om4aupF4ia2jTmJwcWm60e0+JJaeBcLhxnSpt/55In6 +OnVxVQnUTYVnl/g/FIDgUWlr7wfYW+bicwjWCNbU9ejCJ/7yPqXSol4axYz46rXD +2DHAfr+7EwQ7ADq6nAOioLKdoAK8hrJcNHKVjNSBNaLkvGfQz5DQP47GwB48FYun +oLYWpxaSrwTx4nRtDoNlAxVOBgpap2b6cQardGBSQ+DZ0pFl0oKthP+NHzj5tvmu +ehejuT6qcQQ1vGVfPC5yYmQARq8GKwpJ2f1yl85iwZ36qoHyUeIRNP9npLF/oeer +khq19DPj/50/+5hTG53u7cP516kpt9ifW07dSQ7lQqvHM981YDqhH7QQQVsffbSv +2PKBt9yxW7UnaudenjN4WYncGsBPBBVCak8jlnM= +-----END CERTIFICATE----- + + +WUS INTC KEYID D73CFE5A9E0180801181A1444DE36EFBF88BA16E 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAqAE8+EkLRmvewAAAAACoDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAzOFoXDTI1MDMyMTIwMzAzOFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtRDczQ0ZFNUE5RTAxODA4MDExODFBMTQ0NERFMzZFRkJGODhC +QTE2RTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAN8UPKsM7Wcu/eMk +6NfNoji/9VlTv85uFcnvUVVOQNgjtpmRsD+RBUmi+YrLzr05Zj+TdMbytZjEgYw+ +7g0a8vqFuMo+YYDMGd8/E+MUBzpPsyKHxiiZ4+PdJIgeSo3NcsrEZcHdHPDSihEK +O0tN78oZnE/qrrWEfg3oyaSPCZMzCPxYdWgp8BCBR/qrSq2Tyzz7h24/nhNhkpgC +n1aN/JHZUCpdyXr6hyW4P2EJc6t5lcOlfugQv+GAyeXtqSx0/r24iTUq3r4KbMfX +e1ZMV/m8YPOji8fKqBKpH0BhU0GVRzI8b/zBx9z3G5ohESdjWaJfGhWinVHVhQyH +liC8hC+ALp4W9vz1nW+u6xpY55yNJnwR1epwXt+VQjrs62Griy1cJ4tgwKHEqf4I +OMtSsUB43QDH+SFrQRd7yAqb+EFWncQUglEv4OGw5gPW+M4N2UNBLNud+UN63jyK +AjD7riScUs1fw7IPAOT5fURqDreI6TYjACt/dw6GqM7ofF3sHsNAHAYCTOu31TXw +LAkuuAuaWj2O7Kj1Jy3WRwvIin12CwzVmIF3AynCd6HhNZRRjrPBTstSvn6p9tMe +zf9YWW6iWtAdQhfTHRh7MHGPaCrKzAw4LIncScsUIZKdv77ia7SZTntOv0Tgz2RX +TnJIwwe/gkXAHzA2iQnJZ0aL+7njAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTt0VJsrtAO5mNU +qdnpyQFK9KjLhjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBACwrttIWlaKC5MqxH7MkemI4zCcEZNJIBgPZMjNBfbjn +J359YhDMXQuklz13KhioKamRzaWXjP9jRN+3v/elLO3iLZGfxBAmuAIowfzI+Q2D +SOAv+7HU/ltEpJ6f5IWUEWDMnZasP1KZwNRem8t7YCYMx+arjtx8IBe6tX04taSa +mrkDA6IUr7uhm2XFQf9KYzcrSUrKRaapsBrEfbRABF+7HG/+HTYge0iqgYOVeoM7 +IWI4MWaOuEU9WxSChzUNoCVWSzbiqsOP+0WJNfu9n5wQe0zBprLN6ZJkp9mxx6Jy +cLw9hvCR6taNgyPOL2tYqhDarQVRdNzf4UX8ypxGcbFWPG/MKM4fcpoFhKZd+7Zq +tFy5m4gv0GOYZilQO/0LDeSC4iVuXE6bk+Tm+VabSS5Cg6wSwDNOv00DcWaUkPGE +BG/FSRTcF1RCGKbxVpXCkcKlVmA1ri1lQW/DhHhJAIH8IH8v49DleApbwGukHMZe +9bi5Q+Z6Y3/7Q7nTq2DLaGzVREdVyt82+4jAcAkBTl2O6TnZj66JnOVS/w64v/m1 +21BqkFh7VkSsASXO7eJIkd2A2PbYGYooa5i3bdBwf3FemZTd53SNf6iAsG22aXkw +lXhlW3y3uSiDLn/8f6T67reUnkNPQjdWxu36CPKTosACR20jIRpt1+TswDAhBQJc +-----END CERTIFICATE----- + + +WUS INTC KEYID F99F207DFC8797BFF90D641D25FD5A45F76310B8 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAHI6rc2vKUdAMQAAAAAAcjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MTIxMDIyMTg0NloXDTI5MTIzMTIyMTg0NlowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtRjk5RjIwN0RGQzg3OTdCRkY5MEQ2NDFEMjVGRDVBNDVGNzYz +MTBCODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM+btW84yTFfPr8W ++udj8JPW6DzjFjW1WojiNdKggkUz83xK4kB9qKHQRdsMJZORz85JzNC7MoIwKbm/ +q2U9YIqIVvN7czpuXmwEa7wDcoeE8QhB3Dy33U0nIp562eo87v7Sc+mgw+vwDlIB +DDbe8H8Zk1PwqmNB5u8V/NkbxLz96HvZlBxHuHxNriq1bSPtpXct6+wTNM3flivc +hWmRXV57pgrTbSBhwdyibZUS7RHTfA0FYxeIipULO1ZwdT1hDYj5HUa+nIVyxYx9 +5fkszEjvvbaURyVn3o6LOeTZ/MHNMFkupmN7JnoJAlnPji4l01nMBRq118SLHZEt +xgC3z/UCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFEDLeES9tG0GN3+NoJCbxRGlML6kMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAVhtE +pohccMyg00XGd5DqVW0ehYYLWnbSMbLciUeJ6THjA5cteU/uoQ+4aWeD3PDxCWbA +/yV9gWeCiSx0/0+myOYCZm6yNmV83IoyxvfH9mdK4lfWnHKPYD84P+eajxHyqRO+ +RRMrBRztT56J7HYQKDjeDhbwDqo5Xks/76ViN9bPSMJzWRBMET7Cdw6ImxqquVKp +vIwjI5keyhBhNyEyVMv6GfpbqQL2NRz27UB3eh6y/UWr5B3u/7dxx0p+skC5ka8e +ndmqM7MVzsU570ib+jL03/0dEDWAuP7ymU17K0ZmKqIMO/FUOdjHMsSTEKXDN1m4 +2HgS8U5rgRMOSGeum4BFeV8RQUXZ9IqVrfWi5lQbrwp0LYFQK02Y458o1R4OHAlm +uc7MtSVXiNdrkpQdSAjfIGgzmI7RpM90E4RlTsm2o1QhaGtq1IM0+h+t5ihiI7kk +DsWTpbzM5TYO6e9dDGT0XXV9Bk/YtsNjEjysRY0bpJKohMJN39UzeGW1pl276yZT +EtYUJ9M+o0pSN8LQTYTGGyoNMY969pzqFrvkcIVg51DcZbIQ9N2n4wH0GsyObUkt +y8hPgZJwVKXfcj/VyAFl/DbSvUNVwOEagZCiivcqKR+VEugmXR3NmHOVgBVZeH6H +34ZTNqWeXwdV9o9Cq7ki3fjGtVmFYJMwUFI1SEU= +-----END CERTIFICATE----- + + +WUS INTC KEYID F99F207DFC8797BFF90D641D25FD5A45F76310B8 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAqF2yTJf5Vh81AAAAAACoTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAzOVoXDTI1MDMyMTIwMzAzOVowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtRjk5RjIwN0RGQzg3OTdCRkY5MEQ2NDFEMjVGRDVBNDVGNzYz +MTBCODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALVoorCMOhCUcPHD +NQLyI/TsFosDHF8RRWRqC2imJeZGmOFZRmsxXbGPazrr0K8vflpBxJ1YvvrJsbkw +si9BQB+GymT2FZBvx5x7ivgAmpDPNcvU1JbDz8OdZmHaYpCu2F4/lpHJk89YFw6k +XRA1Zq1d9zQy5Glr733T0y16EoAYZMX5ytvB8acd9o/5u6Z84pyW0EOBUlHa61WE +jAgH8e9oy7X+xgWRXZzFTAtCDr2uG/JhsqavByn3KFGovxhYXqf6ljSyLZMT+HqF +NrY7sliPKbS1kgbkQ9Md96E6wCWJv/GMffQcglwyHc+Ufp/GBOTCUcUVJ60vWTTU +xERXcGN2KWg8JFlSKHLzh2ASRsP/0HLlQoixElFPeLARrduSzTdgx+zHHxTPTsH+ +R5TYZAJffVWqbZyYGu+z9VJGmJBOngVMj07Q4FE8YR9VBAOW0BdrteWGS5PlMpJ+ +NpcB2hV1eLRvntTLE9VdXpt3mU4UiumbWWeQ/kCZoxlun/d3BM5uO5jwEfI6h0fa +OrbYBiMnmyGYR4rvDGPIYlKg698LQUQwDFX9os/0oopNv2SVlVYz+qxkUyetrXsS +dSIx8JtTm28k848LV26TGIQlLyLL1JCKyjB4CbwkqRv7Ll/x02zE1jQ37peS0vxj +hUmQOw63FPscNMGOhtjEBk2Cg019AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTqGU5sT8GXDEhq +Unzc8vxHpVoMNDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAF+NUPuaQfUpB2XKxdIssKUvuUHIa0q9yY7OqiHr6+ut +OXdoQjHB12nlzqSm3h/kyuG2peGWpLY7H6VsOelOzzAPOMaek47KRIvOH3YMUh4E +8uDF1EgXN8ZKNIuXIosCBvr3Kojo57pRLPXL5OPFQIexVrSXM2gmW5l7zJxGL41I +2AElGk1gyLSouqqeHVAkV3n8AhOHY2liL05E30vtiSzkNxni4TvoJKt4/3wHU/l1 +JXsNFYFC7x7LVqQ3S8p7vVH6OEpuq7ZZ2jYsBntBCf7HJ+ZUFxfYco+LKMBjL6G8 +q/OHP9EJR+PLPZ22ldOgLnnF4IN5dQ3wg6lUzFzzvDquWY0oOBLdQWZ27pJUq748 +txSR/tYkcuQYruAN4uPmJdWADoWfSH7sEgCcxAiJnqFAKDOvnXOlDHQ4+T/bDzMZ +epYreRY6ljuaSEIgA01dElDtm4kYC8EdrGgr7RU8QN/vGP7JncFqmKzMONOKlKo4 +ReNftYY52ruMXgBGz79nkYEqwirmLcSldrQ7ahYv38MEK/irFLJPmqRRYLsLq+iQ +SWIvz5WbgcdmTxHFUD6m+1pWwFuHhF0Q2voOBCvPUvZ5KYmxrPwdTJS8ZxwuJoJE +viqXd1mzstIl7YhP2z1XDCZxq8BcT3agMt24d8iAhgGZjujRc8Nw2nacisfzGbAx +-----END CERTIFICATE----- + + +WUS INTC KeyId 0FA7B495048126120E12731606776F3D68A037C0 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAEBsVjWzjeg5WgAAAAAAQDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTExN1oXDTMwMDIxODIxMTExN1owQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS2V5SWQtMEZBN0I0OTUwNDgxMjYxMjBFMTI3MzE2MDY3NzZGM0Q2OEEw +MzdDMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL/wu3jdehpb3w5Y +S1LA9ziNf7jzbdBHlW4HMAFgDqifj5AZJmcw5vu9xPiKnf/ZscBqcxGIGkJ6B2Nk +LmOoqOpQiMzFSAun5ZkSNCqhN3zqYdQJeqLm5jKuc1SqPLfnD6uTsAdERrLQ8oG1 +IG6l3dGKXKltQ2Ru5A8N6Nf5ORkcjxTb01q0aU5BxzophSlICF5+nMV2lvzPLDHU +3xbdlgmVXYfaQjI5HogrJjKfXJSBN9+7d+oxANwm/CKU88nWAV0JYLfO8KOx70PY +Pc2WPGZBK9VnQNuUX//4mH+qS20I0B7Wx/aT1G4U+ckWM3gSQHhV81a6DkQgWWJ6 +LKsGJDcCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFMS09hIX8eHk2+58/piEHcj48wyzMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAThk0 +LOScc4+g4I2suFrHZgjsIh/8OIllxPpLGLkNgHKP7zCdmxLHB64UwbwEd+3udGoe +5jBCFcIfUAq33aUjorefvCWPXLbH6axr34LhbSv+A3ZOqKHVPIlwM0l7Jk+sqE3P +2Kg2petbhjWkW2I8PH4GTFK/8DVVE5PBc/Ia2VQ53QsBs+hd629z7SMQn4tfYG+C +qmZKb37Pa4L5sWST0HIHZF/YwWLluIVcUCrF7G2I7UlVSeqrEJit4ZyY0CcepfYX +m1pYr46CrErx2gvM7yuXyKV8pEo39aiBRkn1xNWxiz4NEe06KtOEXKjrMG26U6A/ +EXSrtFkqevTAtKBVYLdlmWQ78dZOiJwR3Fydk8m40gUoQ3fIotqYPtZZ5fVo4d55 +EhS8kgNwnGIgF4yvrHW6ZkkPrvZ4C0+ApWrV4n4/Em0vqgw1uamouT/jSZ8QMNhS +n15lGoLCPWbC7h/Eh3bVb3/qn6IznmWv4Pqur/hkMxD0LRKQGhyqR5KRsxAfAyhz +FGtWHMF068UNowJvzr7D5+nDTztIytO1myVKk2iAhjAtNt+mfjJMEJ+WGJpmy6OB +p38OeIq4VIpj8mCbc5HoYpbHhcBO3LRLbjY7YYCHxj8+VfBSHqwOu3vy1fBNpbDe +ZUtJYSVstYct2xxDPRGookSF/Xt5LrF9KMA9F6A= +-----END CERTIFICATE----- + + +WUS INTC KeyId 14092B5F7814EC9B713E9A9B90A4C519DF08E688 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAEm873xCCwJAswAAAAAASTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyMVoXDTMwMDIxODIxMTEyMVowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS2V5SWQtMTQwOTJCNUY3ODE0RUM5QjcxM0U5QTlCOTBBNEM1MTlERjA4 +RTY4ODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJP6BXfDzXlTMG5t +FOUhZ9/SdXyV5tFb7ByeaO4tiEmLnCRKsl6cUvVul/BiMWG4QGK7KYLgcJgOY9NI +b1SigYyT1L71sKe27kjFyhAd/X2MmXKleuJ9DurPE9DgXgHcGShsIjiIQUDHYEVd +ruYbOG6xJkKEwBIzureK2lnh5mFJ8gSkjS+cX5UzyzhstBRtm30ZitVr5F82uqcA ++IOlxI40QRljS7UPojCmsIDoVElfVnhZAGu92h1LqaP2LeSJOtrNt0NAS7LlZ2SD +TBGYYQUUFU87kal+FQACybz40QtTQ1P5DYzyrZYz0Vnc1iEbss4j9cpq8P4yilEK +oWsHLQMCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFDw2rJQwB4ubmX90pT+JNPez6KRVMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAaliI +b+yk3Vl5fddTUUcMIdcDDpqnkRzeFJvklr1g0Gy7IsdXfskPbwpnUQwCJkMn66KY +waNVWWYBJmrdUe7zNkGvMJAi5uFmqh98B2Za0jLdinOuEg8egzZfRNX0bufjTMEq +7vk/jeaVHMeHTYWGyt2w4/OcJkP53/RMsj8wwe3b7dnHoq4GeA/hgTSvHiUuJqlk +Ir/I9Zxdm3AwwL6oiwhDQIA0JHCyI3r0wKQi2QGZ6RrmyE8xrlr4T4++xh/M3J1b +lH6YsPSMYr/wHtC41djYLJav0y7tUketGsdcybcXtcnMvqrfgyhuxXiTJo20M5YO +KRzyCZIZStrjVF8AmrI2dBCJQ9Rw+mhHYab5qBodBQ+hS8tXq2Cwjgr0i684zz+e +KT5RxpMfrnCKGd75P5E37MX65gtAAW584Pv/ykkA/wOd4KnPQjjRTJET2zrDx7kl +UbZfVmsoL/K70fZrVWTQ/+288l7ChKA2t723wcldAhsgWbsdUec3CPFo0LpLTdBc +1CnqktPK4b2sC5hro6pGD/tvUbg/+koo2pK76+XUT2xKuT6yYLdMjfKtJbg1w/Hw +bpOkqOQpAmRI8hvTu6bpKfx2ZWBY95gwrYkwuNM7pVBXhKCxFiDsRsyO+2QyBooP +aGvzTjG6I/AFhTCWXAiiGlryFr9RhfGgb6jclho= +-----END CERTIFICATE----- + + +WUS INTC KeyId 145126D0FDB53E99907D6FC6FF1B90455B9E324A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAE9p3ugYF2MjtAAAAAAATzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyNFoXDTMwMDIxODIxMTEyNFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS2V5SWQtMTQ1MTI2RDBGREI1M0U5OTkwN0Q2RkM2RkYxQjkwNDU1QjlF +MzI0QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIvQuLUF3h5ifal7 +1Amz6xbhKOUCptAyRVFoi5gdMu5CTrLknsSBfPug5ty+4f+HoXhKQknaA3RQaf7/ +GtZwGhmuM3q0eR4Xo50ij9dIHqIeC70PvGH9i7DSwFyW6kyW+tONmAkkHN7x+bFN +BEZj3/2PcKIodd7xHmtNNwwgwPD26HIcYSdaa+HYT9G2mcPZD/+dFeJtJMBBGki4 +RoCCDw7JIuVAp1Z5NLSbFO6qhfrOMeGSMXWvq1Q3mzMo7GYOTkK8nyoVL885ZJbX +5bIRr6TZkPCQFB3x2XqlrSnOkkkofeQKw/HCfaB307jmzwIdIPUEDE9g2572Yeqq +m4PGuo8CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFM0o5ktE7G8TfoI6OMOtyDz1wZwyMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAClUp +Bd6fMymAf9byc1Dx0pWEjNAXnw2W8jiMJ2dk/A1Hb+talB0qYAvYqa5MWp/gN/u6 +Y9WBV6BxPn0NnxM5qfvP4UDEhgRu+jiOPqXxABtdJAO1uvzxwtbnz3W6CmrAJUNW +21ZicxTXhF/ZQZuhlPauw7xzIas7jrByxpmWPgRuKkEVs+afnOmihRCqFaWyTNO2 +ywAVA/Hf8w0nmhjMKw724MX9yzv5c1eMi3HZoOJnXjMe9pwYFocePqD0gI2P3AWC +ROXkzhhryMh1wd4OhBmRuZ545PbPjF1YepnrAS8ljQqfYRpNg0xGm8oZQAxGUQ3L +/9Ydh3iqizIsUHKKWWbKYsfNDPn3cU3G6VuF63Y1I9N8xE/Umd3pGwyb7KJQ4MsB +9/tH+QdX9PU5fpvQWL408sgr7ilWmVnG7Ib50ALqz5+dEbXVogXaeCRnJHHHkybj +8wNfkKRQbJh96sfLPFF8CR77x6n25MQtXAvDW0i0qSMb9xh0DxAXl4S9yaHXiDdT +/KYLL6T6RPJTDRW1z66iLq7bAKM+hPZXgw7UVhmtppvfmP7//HOMx1iKHFEe1KuO +nKndeWvYAth7S3BFevYWs312a9CeGaCf/lr5uTsvtMIXR9DjnCXEvICYBxoig4v6 +wSmrq8xePj7bV6NskdU4EW0BZe0Ig+sYuIKkfWw= +-----END CERTIFICATE----- + + +WUS INTC KeyId 4994C129F1A548D488586F22A2DF8603739B3BD3 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAEa+7uVcLLbb4AAAAAAARjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyMFoXDTMwMDIxODIxMTEyMFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS2V5SWQtNDk5NEMxMjlGMUE1NDhENDg4NTg2RjIyQTJERjg2MDM3MzlC +M0JEMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALjModlMSxcR94Mi +TOTUo69hNuaC9IJIipQ34Dn9WKrzuCCapg9h61QyXeEt9ZLIZqpapxFzn/pX+iHa +OX5xdi/iCOPMgTBWlCj96BDJzsFhSszZA6gxdDDo7dnZ3UoVyWAo5Bmoo5oEuXWS +NYe5c7O7JaHXV+Qa2DMC8sgwvCbwlEwjbm6L4tJvXE4iM7FOdm/B87iTq6kdtO87 +kx9RIrlMAHfZ9rXvdS5CnIzh10PTatqZGFjP/vg/0j9KPdvDOU3qjlwzMr2Bq4Qd +zbdmncfyHNaNptMAouYPvZtCl0+SoHZY+ZufW2XynGmKVIVw9HpYBJ+JUHtQYZR1 +3Nkw/y8CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFN4irIBFrvXdHjZPwXbIL5QsA5pCMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAllLi +TJ1hN9mJ4rLB/eHz0t1s3r36Hvh9SL4dfImOv6wvC8hzTvBTVvnwdtvqk7a2AB5Y +zDAJyxQdVdls2Thq3shWToMPABvGpniZU6zvwoJIyE6hEmvvCVh9d+Ve21kqItFT +B93asAsVAnvBC8GWRZ1J8m7Z/5KHqm+RjGeKrkI06WjJ6t3MiEv39b0qavO7Rx5K +G+QAJdGlzJGHW86iwPUI+0SnpT76QDK8b6I87k8pxhD+ObhoCzt54L4vmFSEw/ib +e0+vLwnK8jM+IaL6llKYTg9tQr3kPrDcmeEpbS8L2lhVWG96fLnb+ZQ8v0sNWyzy +Y3Us5Ne9GpNMPFQDJuq3/B2ANkGxQ34q0aeZetXBxrlDOOuOaFtW9QpYmJZgKR9p +598KmdG6v5TJJsgg5Rlkf00C/dyVyC8uiHVJ4S5J+lPHOFqMT7a6ngigKWijPQdq +UeLEOHChhxNgt5HpCL6QGTDmxQglb0q0ommJ1YrK7A2lH3VwUZdXsmqfvPN7S1ss +6XQHlj4Tz13mqcHUYp3LfGcnU1CcJJgz0p1kYZyYpapRQOF6+WB5cDFFs5VhmDYV +3m1A0JsffSZZJbF21hmxCLxOyH3IaAy3/AgZpeWNw01i/IWdfVzr9M0w6Hy2Ff/X +Ww/4Y4ZvovwiXPNB42pBahdTRuW4+6Li3IS/F1E= +-----END CERTIFICATE----- + + +WUS INTC KeyId 72750C52CA3E250E701DED65CC69204494A8573A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAEytAlg/NuYqcwAAAAAATDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyM1oXDTMwMDIxODIxMTEyM1owQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS2V5SWQtNzI3NTBDNTJDQTNFMjUwRTcwMURFRDY1Q0M2OTIwNDQ5NEE4 +NTczQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKqcyG6wuFelnE1i +RZYpgMRt3D7P7+mt44EfkIh3DehWtYMqECaUhlAlIZ1cGJj9cAAKWxyo9WoRtWKo +rNyUlVwoEh6ad1EA4dDOy/UFi1RJQJLvOmvZYfuAoXfkZ2MhzoSmGT1INmzEF7cN +U1abIHqswPBHn06lMoak9UAg7pyE+HNDyqaTlVxAbjTrsl4jE3MqJAjee89iIpdb +Fxlon7prSVlvBmFjFn3pFfqC34ktxlIsaf/IJWrVIqI/M9Z3u755LJuIcg4+6WYh +vggabMcsj+E7WbVVDun2DnznQUqjyfkCXfpKKK7fXqkcI5OqtnDZicJqpNKs6u97 +WpytRfUCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFO5LjEXHl/o/IAsbiUq//BBJlOX5MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAZn6Q +vw2mG6tRZHfj3Lwchr9wtTWtfrPzs2wBKX0w3/qRb2eoOf4HuffZlL5iqNsrLxdh +U3RxPSX9oaJ9btbx1Hf9AErWI/aAxdOgZUx5lnODGsetgxEGyn+J7PaYS3aMu4w9 +ch3fENiF/Na5fv1C3QCihCHBuB1X8PjQ6qRP2gFI1AD3fImsogYVBrYNzSYIk6ta +EX7L5iqGz0ZipOqizsS9RppXKGXunsSpGY9Au62wTHDSK2qs/Z8KjOTOdp9mS6Or +YYXU+vBY9I0bjT1I5AwjjN8v5k3FknSWnsaviDnJ1hWh6e27muZF8eEIsrzltdzQ +gJ93osb1VH1SGsRPf/gNPWXq0mEpTkMchLUEu4G8thVTg/Av2+lu1630icIBi0Dn +u5j/kxGCZkgS2eYXBtwLMqZ3Rb9pAwQixN01rxsVMie0JDHECwdR2eSukl1skNZC +O2Kq136ly/ziHjtORMNbB/yUMMu5aczQuZVLCVG1dAaNihefKzjU7BiH3shw6nAe +zv3saE2sTDTx2tkdDInU9jmd+7Rj4z9slJl8ANk+OjL2VEDPEj+VG1VEf8CiRj+C +salOpKQznvLtgMKC9LXyt60yggQQxTT35ugcxKurqUZEKW1imO3VqKmnS8vC2gr6 +wgy2BXA+6exJWUNBf85yoJKd7ki9XhXsk9pL9tA= +-----END CERTIFICATE----- + + +WUS INTC KeyId 8E1AD84693D5D89B1472CD8F999076EDC4115400 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAEP0c4k58+C70AAAAAAAQzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTExOFoXDTMwMDIxODIxMTExOFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS2V5SWQtOEUxQUQ4NDY5M0Q1RDg5QjE0NzJDRDhGOTk5MDc2RURDNDEx +NTQwMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIXYM2ra5uoGaLck +NUGvJF4fq/BxJWByTv1KS8Rkq1CNoM+Yh7/ZEckj2vRvtmh0+gZd9r7a49Li8HtO +ryvfTjszUIqOnvgTIkrhQTPSnin/sdkEc8dK1x8NKg2BMY7MtYZ+cUFcYA5dkFGg +IKrmVVN9bMhvaHG+i8dYTzTKhgWObWNttZZDeIhWDOuPs9ZfsF5UowWtfPsUf9OG +lzJcWQMk6WEfza27qtgkDWA1AtH8kMlBNKGH+EygHfszuN8VzzC7HzcGdVSqRSw7 +wKCVB3RblwCqShl/li8VR5isFDAhE+dSUEcA0xiB9CYK3zQWxPW4WEwBl3+8pQSc +CCJK/gkCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFDFp/P0Oj6ztQ8zcVsmyDHKAGjXUMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAS05i +lFqfv0FVIUMJkbPc7bgFtBSDIQGDLEtwpTIF/2ZYDmLzMogmkE1UnECih6NZNc3e +bRLgaQNgKcybGOGYS8o+lj/Xn2H261ANdr7HhBF1cDeVZvD8mJtvvFh/BDiNXpmA +j3ohZtPFzF4342HYOsWjJt0wF/gE2EtUe6+Xwpj3MA30+5RVItUJkxbLmEHAhWcR +SKnAsfRiPjnpUswOag4b9mR4uBpeNtLdiELGYEXCqmED+Jz55djuDnlh3NX2V0fI +6gRz35lSGbUpdKsnLt796IkMTb414dvo21WBA43L+hU7YFe5e6jEVx1gYE9jIW4A ++o9CXzUHDhs+ZwOXru/ymjoSTFdre7+BoWqQ4MZTtBhOL1+YJNIWb/HpIg/hEbCf +mmz0qgFazEPQ/g9rYnzQeuVq4nzlFXG2Jm3Lh5IModQ+rOgrX67e2c07k/yxSjn3 +JsnD5kCzBwbWgyqCodXnxJ03NRGRLCBi2wQnKVukS8XgiP6B6Y8zyhcZXfKhQBkc +MLc+2CV7bg8aAQOLZwmRIQlfw5zlC40zGhuXU265MsJVWYY3u6P0lLhvozaIYQ3+ +3xGd5pJ4dbUUBlS+hW4U/12b/kqdrVYsNqWpUiqxM1GQ3pihzJtzzz3c1SFI1mOE +Uhmwe/154XNZhpoRqij8inv1rG3HLwMwYRaVv6E= +-----END CERTIFICATE----- + + +WUS INTC KeyId BF9C5C6FBF80CDCE74ABCD0E0E6004EA022A6606 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAFINp4XIjRjD7wAAAAAAUjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyNloXDTMwMDIxODIxMTEyNlowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS2V5SWQtQkY5QzVDNkZCRjgwQ0RDRTc0QUJDRDBFMEU2MDA0RUEwMjJB +NjYwNjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKhIIGVTpSn4BHZc +nuW08Y/nFUynz52rHWbXoJLQeXvDU6/5OK/xu1+G1qhJz9gY5TvaR/vbe7lVY736 +qoegbEfisctMIK3Eg+l9yJ+HEKd1JMjvf4PN77HQvFTzCfCGEOuN4+zkDBcbyNfV +5IMAazijTZ8jarsJeUWkagDce8mRcVvjDMabaK0gU0kgEeIrjZB8vZHH23Tz3XQh +aTHKcrKJ3FpNgtnpw633LAty/EEmkRUPOyNMzhVogiMaeXZacXtfNuMRAtgTiEZT +iekl+/mxAADHx89DPTcA/V+l7seDErPLgG2bvdH8/VEk9CDcPGVVwZYwn27EaiOW +vxsZmaMCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFC5nsd/bt1MgvQ5L+YlVICab8lynMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAQrLr +Z2WG+OysOT0eKPUXeEhp546T8IP1nGEailSX+W40X7MpGoCAQEt4fzwM+Iw+bd57 +3NrqJfxZhIAvgwQG4RDmBLyL/jMLCIEFdnjl2oc5o895TfkPcrti3F6IOKNkqGN5 +Va+G3RaANiJOkwWLIL/ZYaxlqbFGEkjsJGgOGFi1Dhxpcf0DWgo35/YaKR3o22nl +hZ+poBmJXK8kHxy+cKMlZk1ZZCVQdRUS2hLLjCL51uCHQ7K++wD+O/DgsWClKg0T +TLAgfT3QTrGJ019AcsoMiJyQ0w6Edge7KuziWnDSKA86GcBF7fIbVCaWNlJ14F+O +xRMdBGqi4hy4xW4CEiaGSxxuP1qv4o+Hf/5CNLLpiMV8B72EPH9Ms9tn6WApJD2D +k22Bqsc96x6YgzGqUB0MXcaR2oN34iySFcM1vPwtB1K+hkTUp8b4vMn2Vue99XZE +/RmCGB6mrOlVfzQTUlCHbNUH5g1WFbzXW4Hvawx7XuSm3r1sMBMxP2F55jTIQCon +3SjixcMPl4CZoofvUnuKE1W5tfe/RF2AC2jc32WglxtYeFhutvjE8PXLSIfm38qH +ZyHsaz8M80TM1VDNBZ0mUjtx9fps8teMoPt/aFtLPXw6AN55yhi6Ch3o97ChCRfN +k+r/3twrGsILd4yjkvlD3dH+Wwso0kO/8yj2X+M= +-----END CERTIFICATE----- + + +WUS INTL KeyId 145126D0FDB53E99907D6FC6FF1B90455B9E324A +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAD1AR+TuXYYsqQAAAAAAPTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDEyODIxNTgxOVoXDTMwMDEyODIxNTgxOVowQjFAMD4GA1UEAxM3V1VT +LUlOVEwtS2V5SWQtMTQ1MTI2RDBGREI1M0U5OTkwN0Q2RkM2RkYxQjkwNDU1QjlF +MzI0QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKjSo35PnDxs4igb +Msit6+B2v94Kbn0TwHJTATxniESNojE3soO/Shs6q2DciQnHdrkajXWaxAcogsJ9 +C0wgO+2jv692F+KvGZtJYd0yvRP9weaWr+x7l7hJKQme73c9MPiwqlXu07lgB6pE +klQEiQA42TLG3Aipg8fVfW5KYbT0eqyDUc9ytMukSZGCmmQibpTp7uQ3JHedZvy1 +SCPf3PHhgcmHoDA4ihn6FN0v4I7pDz7PbCU59J0mN+CHEvvPO3oiZyREyBeMMzSH +8jEbbXcRX1PBKQHOq4xUH1h/RfaiJ3c4e1dy5uQx8h1yBugmOntR7Y/CZp/DDr5D +n1mS/YsCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFL9QowtPk/KEZtn6Lex8Pp7GDzZ5MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAM+nb +29hJADmbFWGN8eyfuRoHfvoqpYxsaY4i/cGy5OFv3BxKWsuPRNkZEPgAymuIdFqm +PE2McI6ywZ4ZHmpcKmd5ysgdJxj1zZhVb26S9eWvvwHgagiiOB/TPa6M+6eDVQ34 +xYPzChTPxj2bb+wCwBZOEr7yl792g1hj/z1jWj1IJd4eaiXDoN1vQmV0LxYEjr0w +wsqd/AFRfdZe6zzOnm/2udSNP32myyLsGgjdLDU0d0ufZOmxkF74rxUTkeAg7f/S +q7NRm5bblmtuM1Js+uCWjnt80+VW19uQWXPFuVLDXCOlF0JarkDHn7OsXbxQuvpZ +IXEv56jiR+gJQiSbJM58OZcA0fLoK1kGjjNsWd8DUcqD2xZSOH5RIjZksL2YXgKk +r74oQmGWGriyRe1eiVFnmcvZnoGjaYp0VE7gqLo+r1pAR0efxprQcmzQt6ILzcp4 +DJrYu0yVRD8zSSW9OVwAOqm7IzqHG5ZPGm/7EFQYC973UgQGT5n00p7UBxwjg9Ng +x/db0locxHOBmKrCVxWJuw93srwbwdO38rAeIrEgmQZgkNNCYQ/CGdVkdgQ2MmMl +OyJJuShhWsJmMSnG26vbYQpOiI6f7fpHLvderdjygm0CS8WP9CUQhVsOuMZ6T9Nw +Qx6tq6bOGbptNW8H5ijUI5CMwBtiRX3yElBX+JI= +-----END CERTIFICATE----- + + +WUS NTC KEYID 08300F43A8F4B8C8E624A4F7060CF59E745015E7 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAHOwC18hf3NnWQAAAAAAczANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MTIxMDIyMTg0N1oXDTI5MTIzMTIyMTg0N1owQTE/MD0GA1UEAxM2V1VT +LU5UQy1LRVlJRC0wODMwMEY0M0E4RjRCOEM4RTYyNEE0RjcwNjBDRjU5RTc0NTAx +NUU3MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlKBeUzusCgd9dC5c +ZMjvbR9U/dhIL+SHiVWoHvZYUUjQZRi11tHlEtNcp2Ne7UnW5M3LiKHRKZo1xVnc +7P4neVF0ildA14A1RInWNetl9w27Yzm45OduUakpbIy3TbrfuXmyxq3m0u9R5mZt +JegUMh5L1HLABhZX1yNn8fmNbzTcQWaU51OuB/f+gKPmzLtw2qby74eDBMGAzZR9 +ATmKRp86SpKyrqBRO0W1W/D5Ss+hVwHVCfW7QLmuRgcyfS05IMA8hs9GEmqTea9+ +2bDI9Ee+GqZ2BevKJpgOpAb0zjlL9lNJ9EKiLYhntq6ajPcollMnl36fCFEmuaOi +oG8t4QIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUct2ObycjcltEDyNi74IUQi2x+K4wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCbZKfl +Li4rLZ92EUCrOKMWkKsDFBlzYFB1sNMk1rdGLF4F2K2dUAAi+309//4AHZ8+EzQX +/UWaNIMK8qRNcxaV1cLEQJuGeB8fnuqo7NYcXGjSdObu9UhoZEoM3i7c+7K3Y8I+ +2g8d6dNQo9YmyPpxSk5dVrqkWt77D6IbLKMJGbjS3jGHAIo8+ePsErSQ2mxJAUnK +4prKne+OTHyoVxkxkG/Psu7MJhqgzWhM1O/RBHdr9G0NCjgY9Eqvp0/2kF2XLjJV +GsYqnCSUPCqh86FLahBdrmYLk+II+yJ+TII77NOjDM5ug34uBzca5sZHrdwdB7t6 +HyaW3hWWsT1dhrAMgWkw1GkGvwIMOQc0yddp7P+ipvDJWIdQRpbkX0zfnz7Kijao +DGgZSfh6iJha1znbzYNKnOAcQBn2oMSO3rV5ZTZrcSlIUMVS43oR/98ht6o3TkTQ +vVwtCXkT+2ivrdFn3K3WwxFdivIXR4cBhd2jD8WV1rB1eGNV4BFACQV8K7hW08/K +MsyNCuvNR4zS0i+MGK1uJ1H7gQQ/yAaLRgd395PB5ka5y+pJxPAGv4ShJaBaZtze +owe4BQC9tVjYlpJPhZvbLJTLxYgdyFBEkLPhFDLRpgvfEfTzIglhaRnMjB8PEjCb +5JRKkP3XtE6xoonpxSBdt5QyBwAZT2yL/ho6Bw== +-----END CERTIFICATE----- + + +WUS NTC KEYID 08300F43A8F4B8C8E624A4F7060CF59E745015E7 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAqbpq3yqn50O4AAAAAACpjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzA0M1oXDTI1MDMyMTIwMzA0M1owQTE/MD0GA1UEAxM2V1VT +LU5UQy1LRVlJRC0wODMwMEY0M0E4RjRCOEM4RTYyNEE0RjcwNjBDRjU5RTc0NTAx +NUU3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtPXnHS1+/HKS6Osj +bua1xBClWLubk9mQMd8nU3uhvonxkQyGl185IcrmD0Qr7Vd192Toly6oSb4kn/cN +DLDf2extIZ8Z3BpTdKqgM3Rs8nWDU/xCcCH9K9xuP/Mag1pkelgtpxcyH6wiIYOy +aLM3iFPVhQTeu4NlX0uQ04i36wt5GjLrffRhOzzEYSPvDKFBBfGyzbUY4TPqU8gk +AeFzu2IMvcxZ9qrNF89dzwmR2l8hLC1kbk2B9F8CcVbLhiCTxzoOkXNtFq9T3PWf +kvq+M1Tktkz8qVkvp+aLMJZuePdFf2k3M89GJuDdQvw/Oe0G7noOyWfw4SJ/4pyi +g1TDUp8sxfV2+5cs2hOtFaMDvdTD0UdBxNkFpKTOtKEvNJaqv/xsiPeN5f9dWF6Q +iNYIJF9VeTQRzHwc2uWJdaSbmXfD2D2VS+zjT2lYkbl4plmlP1EaNlqXr/lJ/DRS +oOxxjXAfVxOZfgXuAASoNzQ3JMamg0mRkdVukg5BE3wrsh7ZgHJ1AxvOz5fYKGaW +UYILM1cczNFAzMG3Emve65p9p//2u/mMoWdWahwjCv8B/yeCojrPTC1+oUcczcfU +VEWQSNtY8+D1YI0mT9sXwFKvLtO62ITCzl/4pBO1hSSG7QjwV4DoYl3CNu8x4L2f +6btewoIko+3ncBVg/fcTCUUUiH0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGhxDq/mo+94CQsI +tNo1QZLxGugXMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEADOeloR3PqgYtm6q9KPqH4I3WNXUu03TfAo3USDAth2t7 +b1FOvyhAFMVaUCjOmZGa/bl/PKoaF1rKKynQ760N0UYWSjZrJUH6q2ifmsNp3DMK +Qhf6kjOMpNMbakdGtLxF8BLZwWOGeLEhwEGFzoUnnfcMm7KAOFsYX8rAH8u5Uk8Y ++ZWX7DbRkUzovcOzJacyrWPudgxZyrVggRbdy9jznLTZQtvY7A6FHOxOvf8Dr1mN +D3xgxRtdcVhVZVC+KoOcMYLOS+tpuOSi743AdGAU9ddDy7ILQ8O/cIE1MQHEcyLY +qsoQ6b/EsAJnCrOOj7dFQtNP4+BLjEKya5/C6QD+3DBJKiAvaZ9uP4/eff2u6NPQ ++5awdJuYwE3YM6AwbUEE/TctnAEpv5qYUMG6WExixKi5WHugHgIzRPlZJYiCbvMl +BtPya9PgTLbYvlomec4D7mkeewBjyKqgWJUxqE6S2+L2G+Rs0pzaulIfg5o+cya+ +8Ti+JG4YAglBE+qqAm1+4d3mXgrqSzZI56RprTeM6V6Tq6r83kQXuN9uXwLEV9tL +njIfxPTWF3Xb6JDNxGg2UFFOkXOI7DRJMmrrWAfqdPXGTurEVqN2X5dWNngqKCMb +qYGc0tryvDx0cCu3sYv8o7+f3Y2AUpKzVXp58fQJ5OcA8rARiupSOfiqDAg1ONg= +-----END CERTIFICATE----- + + +WUS NTC KEYID 1591D4B6EAF98D0104864B6903A48DD0026077D3 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAAQG7zzf9AZzfcgAAAAABATANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDIwMTE3NDAyNVoXDTI5MTIzMTE3NDAyNVowQTE/MD0GA1UEAxM2V1VT +LU5UQy1LRVlJRC0xNTkxRDRCNkVBRjk4RDAxMDQ4NjRCNjkwM0E0OEREMDAyNjA3 +N0QzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAztZRPn8OqYcQNgF3 +voNFUIcX5OlJFq3S6Y03yhA3e7orwZqOe6P9cV/sE/8VQssHihdpapcbhJpgFm2W +bGJF5xmCjNnqSI5kXVpJQk5Ts7D3Xhqum3TvgTbhSf23zc3AvA0koHxJ56JdxHTP +1xXu8QbTSelvrBsXeTcz1HukMY87At9UlV30zK2nzqcyBA6ftTscVIdy4kKWB45W +MSqYf8TnDjR6Rm6El1LlxPNKjTQth+/SEqux2xvVGPuje9x7ffUKtDQbFK5J0Gn3 +quD4bZDcE/0qgBAOJVPpC07nhs1d4kQWWUQsCBvsZZEMZGidGp5vEXWM69++rV25 +xweNdQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUX5h5yE1fgiLNfEp1KGPBMuEILQUwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQA71n1n +xAKG0b8Z3qDh1kJm5oqqBcx2dDvqtXwnEIFKupBOk8mv7eZLTLtr4HqTo/JR4o3r +9uV941cLGhq7jAT/u0FiBZet97U23OiiXy/cwnfVr15457hRuE0UskKLt/e82ZdW +/NHZhfsD/GT2rsG0PSaIyMonLo+mFP+Yhcte4uaM7LvC+SfZ/CuKq65b1gme+doK +8AuYHlg5c/bj2QUfwPRSCPIBHe9nq2Yo/5DSR1RX2Q413g7RM1rHfhgAGGeYt46B ++q0ugmCGJZ74ldEfx2QDty39AJGyImRnJPbAAFjKNHU4aIxsPEe3BhprFRowkQaO +n9HVatCh5sloONanx+oPbq94yteee03ejUqLsdiB0b9r515kK5kH1DTSQ6TfAMWD +arLLkXJ1fOyZ6q/9Vgmk7AlXpRCdtfT/G9nl48bCVmt3OI2Ls+uQ2YKZ03HpPFV/ +y7/yHSq2hz0lSYC11NuwbXDFGfx2bUevauL3Y+ZsN1JgXwQi0Ce/wOmGxnRHjra1 +YDpnU2GM6LO1YOA3b6p23LQMviqal6QZ4sITQ+ef/e2Vx5k9/zaqKss/UUBXXXjI +gdZb6JhoMQG318+quNDBmFxH5aJR+TPVgIBLoG+nT1H2my3Z1svrfm6mu903uSon +LD1F3PelOb5d4DOFXDAFrV8ih8x0PgrnEfod8A== +-----END CERTIFICATE----- + + +WUS NTC KEYID 9FBB79AA0F526278BED150929A7171E96A35BEF7 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAqIId7OgxICXjQAAAAACojANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzA0MFoXDTI1MDMyMTIwMzA0MFowQTE/MD0GA1UEAxM2V1VT +LU5UQy1LRVlJRC05RkJCNzlBQTBGNTI2Mjc4QkVEMTUwOTI5QTcxNzFFOTZBMzVC +RUY3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6Fv994941miJHRp/ +Xo9OEKmz1D3PFoGjZYpf5Nlavj5Jsear4xUVE/Y/iJO3IhAjfatExEiv/f8EsSLk +feQJSjqVYOtpl57SYF7WRsKdng4V5GNFtQnEPCs3PuH62rXfSyDOgb9sK2Jkh3dB +FgUaBLQ/a4bNuaIGLn22dkgURlJpubw96mTMACB1KqsoUdElYDNiduDTMX1nSMU+ +dU9K4LJ6Ud5bNKhI4T8taaFnhZsbjrUre/YtthIVt/Y7NtKslQGa84PA38LfUklT +OFwZ1gzrzX+GTDfxNuwEONACOY1aKhOqkoyU7hcrQagJf7KwdUMFZgwxcrYtg1zX +ClmJCC15IZ6aS1fZ91H2FH+zDbLFBc3OxeMGL919ddQ67x9TBfhsumtObMOlMtWf +AhmZJ19hf8bBszz1Wtgfqu5FVHo3x7wT4mYWG0gG93/sy5peNuN49LZDklAtNQeo +v0FZliWNe2tpjjh8EQlJZiIFgAAfsiroz209bYokRNU1HwUeEgN/WC96iVscbTlS +P2velfFgmKUxBbtZCw524gmT9NT5IW2mjpIgZ8w2hV64sBO0YU2xNnKBXlVFpoS1 +2bmd+sp3ba+QJRYIMUBjIc2YPDSkqtUwyNLTNSIoC/eogDnhohnCnkyOViTtOe+D +AFEIgbNAMMzv7+Qi4C7qaUafL2sCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjSjRvBeQ3MLf8k +uD2pAEijA9QIMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAFxsvE3q/Nw4YCYiC25DqJlvbZtUz7D2oIJDNwUvd7VL2 +02adXEs993sc8l1tm5HVVZm/vDgLZ8jvfcQuYe3e5NCv7Q2AqZ7xBPFZJYN5Kg4n +EmwAJcp0ukwtBNGKZv2E28Xsf9ZI+4L8nmf8lchWHvni1BfTylLMZgR+W78qZ6Wu +weWr+Ybcz93CffFN4Gfk0KbiCZnxaFUaNu5O5cqUZDQ2HX4IPcH1qk4C0jl6Dx+w +5RO9hnn2cLVuYIRRoqUE9hxKQShoXzZ/ImtsIb40IYevvQ08SubVtA8Uq/UJhMSX +rcnSIbzaMLza1D52e5/oJCyX04Us7YORW+Xa9gHwL4m04mhcW8Mvhf/ntW359RSX +OKy5pLLjedfFvXdBcGDz6sCtqdK4AFxtGc7n6up/QOfhtTU3Kr1bcy4SsLqKosb5 +DuSEzbGo8aogZgd7JVXOVBv4IKPukCd69cfwl6DVfiB3Ncz82WpQ8YRzccF+agcE +XhnzDRjKMPb2TZfX1ZT6jvzBfTp7tXz7Smg+9LRM+v+epu3xAJN2NHo6VqbhKlvy +ci3wnHv19eHp1A/CbXd2XB5ZIsd/ibh9IAkaIhqj0qXnT2tfMtNv+JnZNRLSMUfX +6doat1cvyWF3EPC2HCxvGSQ/XBr1bo1spuamvr9YxpRtEtnD6DPCOWKB42pkD6g= +-----END CERTIFICATE----- + + +WUS NTC KEYID A0D737290E16CF2AE2BEE7100CF56B2F04C5F043 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAARTmshTif8GQCAAAAAABFDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjU0M1oXDTI5MTIzMTE4MjU0M1owQTE/MD0GA1UEAxM2V1VT +LU5UQy1LRVlJRC1BMEQ3MzcyOTBFMTZDRjJBRTJCRUU3MTAwQ0Y1NkIyRjA0QzVG +MDQzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsgS8VZY9xB5eoAQc +ubPGu3bKm6Nz3jnuxfSYsV8ved/+sjQZieXL9qqS3NM7i4ATag+Px8Jplt4Xl9+0 +ueW2GROQYxuzSIFtMDai7sjJkEKvBgQtpm96DxXK65UMGeUpjjez2avhLdO7rxac +U2ABnb45zA7+To60mgxZTWKlxM4eYnidzHUiUNXFw5xCFFdNRe9keqHEt2wTBVrI +IDkM/OjZhg7/nbg48eQL7FJl9kWLt3P9HhLh0hsn403QpRX/PiX46ZRM1ul7s0Z4 +3GUWYo7M3szRUwWmrWgJNIfLwNHZor59z9DkeWMaMr9MpLxhtpeimq3nSBAKszbC +RPaHKwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU5Q203r56AhOup7cF3kIF/ZFMLzEwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBAXKUF +dNOC/jOKjPPkDqiiaK8OHKq1KWfUOaxLlNe6DX4qnubFDniBc4kjylGeB+ggIVXe +Y81xakzWvja0AiB4p7nqdnhK05v5c+IcvzQdz70tj+Nl1SKXTJXA1L7Btlpi43tl +v6+3XQHNh+29Cg+o9YeZAIjSeP83iAWqkj0gi2HngL3h2WWSi4JQJ9k2XgUlpnAw +/AJXnwpc68JKq+erec7RSYeljGPW1omldLIQBMxiFEnrB2cH5EDhckAYUS0iT1zr +/BIcDFr7fKN8cEDWUnRgx/uPcEi0h+JFy7pdpBIdd46yT6brMSQ01zJj1a/GYgbX +Qy96o8gpC+/o9HPdfpgHwtmZ5RJGEhW4wuPyBjbMWtPPcDKgspArrddPhMey5DQI +OvBJ3YnESql0M0FeM4090QPS1XoNnL2u81ULxSzVUPEq+JwzbeICcwg0t18TAGQs +R9m3zew6JujJukkvVdxkNRaPguqye7Z1NR1H62REObjVFAmE1sCnNX0aU9DY57HX +329TjZsI+SY+A8tF4JhgyMxbXdUIu/0vLNvwKVJ8mkpXuRiEtiYDSSxc6YbAt/wB +ke9eDBidOF0VaVJUje2nAcuf31AGF9c6v47/kdAecLr7I9ZhM8XL9Z+7HbCTT9Kx +fo72FV68TOgZg8rAqA0sHbvTponqP1+n3flUUw== +-----END CERTIFICATE----- + + +WUS NTC KEYID A0D737290E16CF2AE2BEE7100CF56B2F04C5F043 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAqcqvb1L783JQgAAAAACpzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzA0NFoXDTI1MDMyMTIwMzA0NFowQTE/MD0GA1UEAxM2V1VT +LU5UQy1LRVlJRC1BMEQ3MzcyOTBFMTZDRjJBRTJCRUU3MTAwQ0Y1NkIyRjA0QzVG +MDQzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0WVGsn5oLAmOt5/E +nfpzpA7qYkgutzAYogiyDyuZZsaQe0ySeBVlqzcFFt6IF9e470T8V7k+1hChS9IG +Z+NKYBFONDABaULvIvftrt1Fm/ObXTMuqzw7tvFp3bPLZ+4/3Pffk4IMd0W0Phaj +fiG+L/EdP0RstUZDWq8tOGqdpaTNvhs6XUglUH5nLltEKgwoxm/2roC7FdU1j29B +3xax6bmG64PvOVI1FZjju8Qa8Y1m7duuZ50KFCKJV22wrsXMLoF5QWbJpEpxG3lA +q8pAwjLFDj9M5fR+EuMEXGX8hT66/Q3ME/2amYlzKmDq5x9aN7svu55WwyrUF1Qq +kh+pPfVs8l1vpDNxwhhmMWpmujr2fQZnf12hWyKsko01BO/hQoOG1ECcdBtBlpsF +pfplxo5ToDkOeaW7tLWSLf9fIlo2TwM1Psqmt8qs4OgswbFNt3pBdH7+ed34xGkD +aJFHJg50wqKLnAeu+CXYeLtTuhcoQR24jvO/ryM/zzZaYfduHSg4DSU0vcPzClh0 +fI8PCumgMwmhZegES/aaHTDJ+eGnxBVtr3/A6nJ5PYNZZZDGc/Tsfv0yeRy4zQh0 +DeCm5Hvpd+zHrjPaximzm/Zh/O6BcP5NhBzjx+/9o4s8Ahns3FAB65VC/tCmsHH4 +5ZMfuaxvQvpk9kXFSd6/fvtgTp8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFL52IYH6R3jUjX/M +vxhEvcYMFKYnMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEADRo1dsbzntBXRfOjZjr7BeBf/AeBCEJeyFMHTIeQl87v +K0dHlpmTvPrPWf5xM4ofPQfbWkODXC//NDEzdnfr84wLz4GNCTrHeakbo4wd2apl +zR0PK1PhZaYyb3gtS61C2wzmplyqk7nr5qoztywf2rzE6AfCnmFx/kEN4zQ1Y7TX +v2le0H3V/rZPf8RG0zM6U5S2cqcXY0zNZ5s2mp6I+HvNkpbzxmXDz2oa5NXRQGLL +uxS5mHS6zCfFuWXkkwUTxy9PYiqNF/luu8KcbfmyFE7hwhwzFvLtBwxD0uf23dib +vO0Ikmh2W73e8ItPkkOqYWNRj9ffHIrbWGDjI3JvnLlbD8+sv159u3ZHbqy7cGAe +gfklRNuVX0MMNMT+stGewhT6v2YHo27oAjbbMedWQd7GT6/KyyScK2WC216erHfn +lETA/74Szc+zJ2wX7BWUa/3A/aDUu4K9Zfip+71JOzyStzg9H2pf2OyhRjxYt3Tf +nnR7KBTcAeD5dFK7/FO+GQMrkQ97xeakF+++AQ8z2rjFQAJw1kixsjeyWZWdtJkW +AFCNjDbOyZs8fF9ijxPPIx/Ffb5v3Dde8uTUOewnQuYch8vWsxH9sMARpICJvV72 +qVbO/pFbUuEC1QFu7edo2lX8Zf4ArM0smwEfZlT4lAdgsKd2PFSKwcKMd1YFfUs= +-----END CERTIFICATE----- + + +WUS NTC NAMEID 3E6C3B35EF144B0A76CDCFA4080B8B7BCA3CC8EE +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAARVLShwugTmq8wAAAAABFTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjU0NFoXDTI5MTIzMTE4MjU0NFowQjFAMD4GA1UEAxM3V1VT +LU5UQy1OQU1FSUQtM0U2QzNCMzVFRjE0NEIwQTc2Q0RDRkE0MDgwQjhCN0JDQTND +QzhFRTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ8U9UcRO8+DcmIS +WE6ecjKHG85oT9mA7gSzjKshajRNCTVkPH3qwnkLv61kdoS0wOE5+m4mGg9VDaqc +hBNNjy/1YaXfBBtRLgxqKcQv2sR9byOIDcsMX2M7xM/zXkbQRm32bgX+SQV94XtR +Q+PE7Wsc5V3hvBNUu7LkuAlD5BwfXXGok9GXOabcRLJIT1w51bNfr6uzGtIEBFll +W6wXHWHuWIwSvAtL29z+zdh2nn1Y8eubQJ3rQtijCakECwZ8x1NC/s1bVGugv/yY +rtixKSz85+nYc2fL0fGFAPM7n3eOh/x48c10l90CuX1VJN7ikiH5XA1IX6vF5bnA +EFfN1S8CAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFKONrEbPgLHaBVxf/V6y/evnyZ8mMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAEY7t +YpyvIVWmxfITJvf/uL4tLa7MXl+QT/TRZfWlzAQxF10dntb5Plejd92WG8BMsXY7 +KsQihebcsEHTiCKs1shhxtxD+tFO9guANlJSAayjW6fCzM6KgUZERlB7XE7eGPqC +uuQelcnJ/xIEZA1aPudJ5GN+dYYlYoF8bFua1G3XWVIljDtrpmT87pMfJAXRJWX9 +ay1ANQHuYdygQuuBXXVso1adx9c+swlfdZo6oXD6nDzfrfPMPXjsxOYU/BfnBvEB +oXgpi2zd7sR8jLUa6gAcEHlqDeI1SSb8tJBUsW+nbZCkc/Q/mLOnKFKLuxm4BQk5 +AX5vgGLXClEEgmYe+ug41ptpY58u1NnA/iJHpkKRNaHlkPVJgtwVV/Hub+vV300N +zdSR18oZmV8UhcCP44qXak1w0n018A1tCPv645hFmrt23El9BGk50YyTiuDt1AHO +VuAWQf+xUpN9a3bBf0rqIZDcIsnC94GuOhZU7PfaN2bQn/wuot09WregwMCSl8I0 +LlrlwlNWu2vImXZyKw0IdR74IWHbNKxs/ttPNfl32UwcdghM2QAZniwJfy+EoCM3 +CIXptwRHElBTSu/hiOe5YbLCN8bTQFEiAosQiA+QRGBnndeKdUy7SxXQDd6asLcE +9KvLF8ArUN4rjAOKnKS9iV6aCYERCF0fwGygtTU= +-----END CERTIFICATE----- + + +WUS NTC NAMEID 3E6C3B35EF144B0A76CDCFA4080B8B7BCA3CC8EE 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAqg2peTRE/1nWwAAAAACqDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzA0NFoXDTI1MDMyMTIwMzA0NFowQjFAMD4GA1UEAxM3V1VT +LU5UQy1OQU1FSUQtM0U2QzNCMzVFRjE0NEIwQTc2Q0RDRkE0MDgwQjhCN0JDQTND +QzhFRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKvS6GMfg36/FPbN +K/aveERBAVeGGAhCgHeNmuVfcopzEWS7iSW9ZF6YBsx1tVz4Ni3eKdMcV04ElVwL +hZZiM9rHuayfM2oV88yI3fwK/wqwvil+tn3+8CqQ8skecK17+MLhouqDDPB1RDAi +CrkmWGZWlXOQOXf0BeiMwZuAFCNUeE/fX19t3qhsiSfsRA2Fw94YJPjYeM0LHaCM +Q6IN9oSDKzuPR+n/quttXmeEqOh7L5RbVOywBWOxR0zkdr1XsEaFShRAYP7qgyQy +TlmjlXCpZxCSS5VYct9101b916T4wtdP787JTIH7P3AEbxJ+Bl7bCX4IfnG/DblB +zy9kxlaCJ24H6oVxuWjJr3r2fWS6fMQhbkmRJ+p0cxd6wXVEE0bjinXhDnVTbnWm +NubdbKhKVYfTrxFSaj4R+5VKef0/AjZktuaUvOuIIO8eVFO0Dc/7uF3TxJcw1PjR +WlZ1PoWX45lEhbAxcvlWAX4XqlFeH/yuoIGXXOw48RCHSKV+wp7ShWsG3kYE0d5E +0K3YQoliMY2wAnHsXNrEn1bamG3k3basAqo4iejujZHyWOvNlHokF879ZNJ1EnuU +YrgFIiG5ibcZWvd+9m39ZqlMZvLTe1EFRLIJGdT7YFY4bUbIpcMOtmRKg5PhiJw+ +BCycbJ/zI/fcaZIuTN42Z1JNA/3/AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSuelNLFzEn22K6 +Xk/TRjjD3NKjGzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBADax6mYe77CTY2ONoMh3/74totb687fEz0RgeFsAJoHH +PNhRTXlXhROQeMNqoJ+XMdLHfR/Hq2DYc89wPoUAZ0c6u981sFfX7r87Xd0F6yoG +VeATR8+cbk65LX7fFibxouX1ZSmtBvXrqhV8+2xb6XVXrUl6DrLNJ56V6I2ofJv8 +77a11pAh/skSjNO/RnocD2wLR3QIYBO6/BKcqtT8TnwgzDmmCxvdY0C/oEZr+TOL +qxvRcegLve8Tv4UW2zsJbss+fT6x7cdbdLCwm4HUAttSj1RgCxonYXiLKma1WYj6 +IY6auPeAOe4M8RciYN+YCKWvtVzCfyp4TOnao5Djvvtx5UC0+qTbNkbaphmAui0F +YYgKrjYeMFNCj6ZrSwY0hY7qH/m3JkqVavnM1fFq8RhF+P/fYs7ZMHtm58G1km98 +XH3mPEq5YapPYSKm0YYYutJw4pKzb+lNIQp2ESHSjGB9bHeJqyTdwKxL7b5CnEoo +418ISqOz/nEN7U5vjmw1Kfl7akQa6D3T5NJ/1Pj2zxgyEtDyFN42fC10fWx/8e0l +6NFnpA0pQrH82U81RUvAIAYruVdoFC1TcdTYRh4tLyQnpeHlrwLSn6XQGonhHELt +jDpKS4xxnZrb5pynqID5B2BCFuCukTBzZnoIuTjOLqZJPLXQ3IOvYsTaFYDw8nvz +-----END CERTIFICATE----- + + +WUS NTC NAMEID 770E974ACAF0DB9AE67E7B6F5D410F9ACE2FAD65 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAqoR49IEqgkRegAAAAACqjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzA0NloXDTI1MDMyMTIwMzA0NlowQjFAMD4GA1UEAxM3V1VT +LU5UQy1OQU1FSUQtNzcwRTk3NEFDQUYwREI5QUU2N0U3QjZGNUQ0MTBGOUFDRTJG +QUQ2NTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALxRFMZtWzKyramk +WwNCDfo6YI5+ykdsYFon8rcJxmfZ0QI3WiakPT1giqfAUj0untZBdVOmvI4iohVA +Aamngdl1L/NZBPwrx/tK6AgD6TRoFtIje6h/yeIKTE62Qd+o2YHHKwOE8zaY+hWG +O78GRXE0FafMuWHKEcqFM9ePhv/IPa7tKbkmYaDNIdtrJauARbyPwEot/hgmgtR0 +cCbeKwmyL9mmeSKLPyCWoBaAu/OqlaEdU76SYrnbtUIVIqzZIzNrPsGcd3Cmio0u +2jv7uQN61PnBKdobKWigsy8YNBGITpYPNPWDvLa3hxadGp5sSSzgPTTI9j4fAnoV +YOs3btZbl2C+is5tTT2XxPTHZOC+EHsqp1HW/XJJg9WdYA9q5y4Y4iJbJVWW4k8h +gQmwxTm7FW0ztKeeEpIcAxz8bn7m/seUE+FFRNYPz7in+9WoygT/jlQcLhYQ77Dy +CZr/VD1180DlkVRlqFFSYTVktGHbmtj5/WQiKWHZOD/zFQKgkKkBOWKEoe50K2aI +IFJJlqQ0rzlrImRn6QEiqXNpJvdPvwOw2rHjhMu0fCr5v8kAKeqdqWR6s0Dgmqin +jQgy8nelfaBzUPkE/ewzfmm+xA+Yww3jDchYAJErmAE1SImxcSTWbnpd9TfVibiZ +5xoIp1YTfO2AOgQdmYJ7bYzIdxoLAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBR//G9sunAiJyd7 +TEpycyjU1JuetTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBABLzu3YmNbm7BdsyWudv7u41Xg4Oa+CDtbB6EafBgYkY +diO9e8SOGfzPjlTWJQim8zJ+tpAd/gs2D4rs9Ioi1KkiYB8xBwx0s+Y0HShcK5+r +ReBBvAFAmDa5QO4gkKj6pzIkwKXWeQRWbhEYoBwH/s4E1q1h57iXKaYFkmexGYnD +RTkJtv5mHMtUa2IcxE00wuRXznUE5wYcQHSrWqEMUp2+oczmEs/hBvUTcKNIXrbI +EpglPpdJghyPly5VPbao6zzHqyYirlvlrevaiilavJ/BUGK5b318DxeZpqxIXs+q ++GTlYV+kp+NdHLeOJ7RT88M1HyhTIPT90tJXfIW0mo+sXEisSfDn29iVKdXNDxPi +zhSqqvyo6Nx2zXtQXX3zusWAgOHqYLej0AobjwhTm5LAH9/9LbLpImB7V25CLpVb +NhuKrTyIyrH2PlzLMTlY88VOzG939+j0J+a7OwdJ1OFAsnNA3dOwuola4zheR+iQ +oyUVLU5FC5ibl0zJV24B8rkgx3lEzMMdGUHQf3+XtpAA5UVRSsQ/+66RlyLTVQei +Bq+vCWUt1yp7M11sF4MJhcmg1HVWImcfa5KYQPpPLvddgssuQnNKF3/HISxVQIZc +w1uhtCRo8FCYH8SkoC/FV41k/kUfGTL3XjzXwcrZjA/7eZQz39aAaaSTfN4dWk/N +-----END CERTIFICATE----- + + +WUS NTC NAMEID BCD3C503D39E51B0C50489E9228E984A7E63E303 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAARZ1k3gJ9hkpWgAAAAABFjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjU0NFoXDTI5MTIzMTE4MjU0NFowQjFAMD4GA1UEAxM3V1VT +LU5UQy1OQU1FSUQtQkNEM0M1MDNEMzlFNTFCMEM1MDQ4OUU5MjI4RTk4NEE3RTYz +RTMwMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOovWaLwZRrLZLXe +nyNRDZoxnXx3juHQ0xgtCj0iftjEaOHEWPnIYj6kNOCrDyfKGuMUr0lJdMsfhbAQ +fOIvDfDPvFfxj5s5uIE5nuaZqAvLFNaG6EMrTkWYs4mjPNuB4ToOMaVS+F4Ki7wl +78T9KjqdBRppHg5tAWxT8toiJ5mnzJ1fE0gyAjaSmQWfjBIHqm2cKPsT1eMp66IL +tsR5ahq8QeIUdkxi/SaX0vwZtnbh6tbVqO73IQvUMK/RMmbS2tS8TRJxF0sPbBVD +qt1th9v5VR4Ccn1qwOQ7kW5JjueeByznclaWDORJuEXvOBPpz1IfhX9gFDalXaK/ +DU//pWcCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFMo41EAS7Xfkv1uSx3/m5Tx1PhI7MB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEARDGr +lwk42rFUK2W6ORlU738lf6gdiAGHFrsCh749lpmHWcYPNY64sKrpSf/BnZwerSTZ +A6imOZYuUIVFriTNyCUNYZwJNVLiou4kAV+ObhGQXDPoHCIeLdgIf5/FPhN72qzO +UR32amvfgTU2kR0u6FNNVSFP9nedji/+Lc8P+cxG23K8//KaPscGsaVR4AW8061/ +rAIprd3yfNJeLSg3trJEZfPlRjo+9vQxMhSOejE44eW/1LAKRp8eSRDEaOEQZQwy +XE064LtsMfWHVGWCSUmr4wFl2vvN6V3oxDZ9UNbQ+6yNxdp2+aGg51fLKVqIqeb8 +4+QlKpT8uh+W3TrqgbIFAVuII/0ZLsxh+j7SX8sau8mBw2cUhcVk5KJa5awaZbI8 +5cKU3smPyFgMWdqgfwXr/ko4THzxAgOTCydUuAmIN/O0xVsqwmVW2QScJP513Hp0 +yH1Uetr+WmSDby6b03aUCA6ED8nwKi0Zj1rcXafkkBhx3OnRE7I0ZamlCZKHkNX4 +Ik+Q5IqCI8LmC5LXs+Y9QBvT4EOZ0j75IWVJ+1ZW2rfcxM+C/F0Nkqz60E3IsLNE +xjNp4JlCs+nr009/eaN9AZwi75kVzAtxjHa1T1QPbO6w3Jv3Qza0+1w5bKYcppHB +HpuUJ/5f/DOCrwr26hc7ZyO6TT1vtkICXh7Xz54= +-----END CERTIFICATE----- + + +WUS NTC NAMEID BCD3C503D39E51B0C50489E9228E984A7E63E303 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAqumARufqzn2KgAAAAACqzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzA0N1oXDTI1MDMyMTIwMzA0N1owQjFAMD4GA1UEAxM3V1VT +LU5UQy1OQU1FSUQtQkNEM0M1MDNEMzlFNTFCMEM1MDQ4OUU5MjI4RTk4NEE3RTYz +RTMwMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOMMiRFrFeQetRKJ +FepuTAmuhZIUECn1+lELYwPBnr5ZsV5VdtW4v7C64d43nJVyETCO+mxTcj65WYR/ +PP14A55DebKK3EkkQUjxktpaKmaHv9Z4QzMwK0IaFwje4eWBxc2mZCLIL8PMDajB +vneHGVE1r7qF3LoAei9kgSLzXvQcgPj00p9h7yDlm8edOovCfQXxvP/Jp7iz82Tr +rEw4OS/F8SFHuWzZTaFfpgeOCFkCjMXfS6oX6kGy4q9NyRY+cxYAYxVxP0gqv+ow +MRWsiNlSnewqvYl1Nk6jqgBb6vd4j2r7RT4WHm+2/0aytxvHfFryabRs0qFwXKGt +uodNiWlqnavHi48F7TYBbEitHUtvhR1hnO0oUdaSQKpaq404QM13+e9Tex3aflX/ +H6gINRDOyGbNPlL8SoxjKMU357l2RacV0ahBw4CW2ofRT0u5tPMoEfZiL2W8jmJj +8+ajNnxpdK3WrSG6Kl2bE/cgCaA6m8jqi8Jvua3cnjhdkBsEs3Y6AUluv65n30tk +6Nvc3rZN0m5RSkzdcrJQFpxYTObBD46qqFqQgOn4C1mPHxwkjhrtniBubwRiPOeA +9rYxBHFpNzzA4YYdy2Bh3V/JNnx/l5gR80IyFJGuzNq3VPsW6ubKDNcKDzaw1pG9 +JfCnb/DkwvV2aSJ2czMcvXpuxITZAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBS6+IBf26Yip1EZ +O1iOATxHR5nyCzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAHT+tUgt23XcN7A9z8NODhzE7hFd+cuG745TVlPtiR2q +z+0dAAyI8xoPyhEp1/6x/qdSyMEM61m3NKxJEHNQk5Zi72gVVRmIkAFQ5oQE+IjT +1kpuEIOOANtVRlKPggFBlYyIuncp8+AFX3HlERfyj3uSSZbYRmRjtq7kgcGSXaA3 +Rr0B9AsgFEdCYHINkgQY3zqLdo70pfarXRj3EpOUMQ1jaXqiJup8Vp4AxaEqaCOf +2gRYJFnnGfVgnZEPowBzGIYiplajE0RYjp8tHgjfA6hqDBUveA4f3TUz4i7MP4o5 +dY35G+vlueAnt5CYQWOli4ScHMQfxoH+vmhcELwyNG5G6u0wIZtH+7qTC29uTs2o +f1W+WSNb68J6qppiV5vMQagzKw+7Oyi2lmnEGmLYgzN673Bzo6fT7HzyNoqQPhXb +8IStTFkmNMX1bJ5DH781W4Gq6+BvKhAINfZXAh8VzWh2cndH3kEKa5Dp86fT4R0a +u8CaJ8WQ0QGxwv6K5SbsDB3SELL5faT6Os5HCgcEqTNrA42v8hSHsri+P0Sh6Bv7 +SU80TY+1tTdCUrSaTtczThdI4zsZYuzOslPro2mW1qU8x1CSJZwcndQ03di6JDCm +nbiX6WgU+Pycy9OC4su6JF25smRNrVsRIJIJTUf2nf+0554UhLdmfPTqaNPSEuob +-----END CERTIFICATE----- + + +WUS NTC NAMEID D659BCF0AFFF2284AE8AC274C6D91215AED2B62F +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAARdycqRXgx04YAAAAAABFzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjU0NVoXDTI5MTIzMTE4MjU0NVowQjFAMD4GA1UEAxM3V1VT +LU5UQy1OQU1FSUQtRDY1OUJDRjBBRkZGMjI4NEFFOEFDMjc0QzZEOTEyMTVBRUQy +QjYyRjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKTNoHIDegLfJApZ +cUH/7kMpwZZtSDZOQHrw38RmiD2bbh6YbJrL3NTmy3w0CxEwBtBej2r4b88vss51 +XsDNXhAYcV4IYnm4GsfT8xlfF/H61ZO761hdSuUNGuE2N6/KpTc77oNm9/nsY7kX +Wf1HFl+7nrM0dvuqapVbMxCdOwVUFY2TqRFyVplO9v7NnU3M2h6+gchC9objFJN7 +X1S0LMJBl0+Gb4nzk4/2nfDI1zafV+H3jnVs0WbsQ/uGZnXP/qCNUTGIz2tAUEbu +K2y2O7vqE4+JXTuQd7RnnsLLw/AvhShvp8B+xY0cgfgwNnzVP4x1Ln/OpadA7Q3x +y2mAvSECAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFNmQ9KX434ctNyBgf7b5KZJw3y8iMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAiJdf +EXAPxVUES+v4xB5AQVNL3+9e7RT4uwb/YcaFUrfY4mAFvBI2QlozaQRzAV+hglhC +wM98oxMWvxESuvuBg3rfkC8bR4hQwFidWjqXRhTRXJkLy7Nz8RTPjjNEy+7J5mJD +lbJV2yMoWilDD/nc6HNpVT1zIlBBPAi0De8ifkhQnwbKFD0H4mJPX/evu7/XdvoK +zSmRu9hN35U0DavVh/w8WdyCJ/4dwriCOEYHtsES4ml5dxbM2CPNtn08HXTSU/re +7bqeCkZiAnbiMJPwKZ2fS9DF1byByeuiuw1cWA1WZyWoGE0IrvdLfYshFB2xBsoP +lTSHGP6J+Flu6mM3FP2lHClsICFD2JyasFz2YCc3FIFC6hCbUAr1kyr/Hk0wVakp +TF+lHB2U2FKHWtGuV4wFvZn5qQePkJy6MDU8sn6/e20jvjthbb869pQ3jacK8E61 +dwvVnm3JbxC/rrFuc67dh+t0Z6X6w6WJ6RwT8/d+JF/gakO2jp4CuMWwimBRfr6w +BZ0AOd1f7vXlWOLQ0im0DlkxkdL0VAcVdf0qzEi0svbKgGPyqj+YjfnHDZw9nUA5 +N6jKkuI86Ah2D9Ot/UUDuqnYn6kToK8htYgCqGb43Y3WI0FPS36oxyKb3F5SazLu +euWg21bVR6hCAf+us2sQ1fBCS1jC1emRT2mhsss= +-----END CERTIFICATE----- + + +WUS NTC NAMEID D659BCF0AFFF2284AE8AC274C6D91215AED2B62F 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAqzHBccmTweoLgAAAAACrDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzA0OFoXDTI1MDMyMTIwMzA0OFowQjFAMD4GA1UEAxM3V1VT +LU5UQy1OQU1FSUQtRDY1OUJDRjBBRkZGMjI4NEFFOEFDMjc0QzZEOTEyMTVBRUQy +QjYyRjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALn3ILfyT4Ch+Roh +u6QjznSj1yLRZMEca8vUCs03xAHph2LB85o1UTJiRBkqW2Bd7PX7bjoniqc4FmG9 +/akc6G9EjQTquC5QRE0Qzco2vZBWLYi0ymH8VPOveEi5h7BnD/4u31VCTqfIQ/vx +dwuchdftYEzC5Z1CjbBjgLOcMzK6uPZhkKjbLeGJv2gppPNJUU68b1OJzoS1PnSm +iWlIb8OTvU0I+ghbp/ylleeZBWMql1FuVC6wQfCEycwselvK61CUWjahD3CXweMe +M7UOftGN69ANK4E4EUIp0xR+fqdh24+b6i3CBT/RV2AhmWARD2HT5DR4zpiQXHDq +qsqhUYA6sK0wyXhkZd5OmnNKCf+Ya6ZZW3ecfR4wLvJLdOcYws8VikB5iF9pVVyL +Znl4Gf0mkJEgLGKQLppo9Mma79SdOatlG7psLMO63E884pK5y4bxDb9PMaBgFToU +tLzLxcD55KCquxCvx8a5UD/JcJtVBgQlAyyXbmqn2UcBriA2u0G6PKZ4um9nWmJh +N9ZHpAz9yWbuJeZ0psluXKuq2mMX85D+FTqt3mbvlMieW2nKK64P+aIHpnLOEqVL +k2h65ECDqguZAWxhvhjIOBpOXDjWvhsbC9V2y8Y+p3PiNFfFytwamaLAHm5aDocx +LT3F0s5m2KVJ/wAkrVBMDsqauf1fAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRN0plCjSE/PkiQ +Rw8VSPLstft/aTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAIqa9zJlKAlKSMQ+hQY/e5hdmx3tLL3cFFlMmkHIQYmm +h/PpwJ7KnXI4LvP34QJRNYLKzhu2dA/HHP4aradafzXFwPgePwzHGmXiOvnW9cIs +iLllyRsVsOnGmxo2LzsbJAVQ/ermOykoc+wj0rY0UBu6NVmCj1/JHvhl4Mq7HEIe +pA4kQ/jf1/mXhuChHLv6STjz3TgQDp5vOjVh4iEdIWZ3e9T3w5IBflLCD5/nn3lL +J6+eJe/hbHAwJJSu68oA74uZS/dpR4vB4/kKZYYYy1ViUjRRwDwZbaUmloFcb6pn +aSzd9gUgFi4Q5EeAYUuWKHc/TqoYWnHlXejDes2Zo95ygUfpJBdcY2zoM9YTDWxC +0p4by6BFDGk2+fBt/YnoiltNC6tgXxML3ngJd8mePO7QepiA0DiSFSlao3Cc7gtL +jWPkquI0DA5iPl2VI7Xah2y/WKZFYXrlLb0DH2D4zZSfDU+rqTBjX3X4Th3HqIK3 +D2EL9obr/CxuqnXLmEVwBlOuEMmwQlEAbllhe0b9BMdfQbMpNRCvGk9vE4jlGxjk +LWv8BUYeRlliIWqbQRHthxMlPsrlZRjq/5XmRhBx5hWwSRulcQPFurHNVSidpDcU +62nzKvMZSEoJ9Ujq0V0XjrgApXBeVMnGEOoI8/BYUkvbP2/ls8RVkqi3cgFJlcUv +-----END CERTIFICATE----- + + +WUS NTC NameId 770E974ACAF0DB9AE67E7B6F5D410F9ACE2FAD65 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAHQMVhrfQirAqQAAAAAAdDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MTIxMDIyMTg0N1oXDTI5MTIzMTIyMTg0N1owQjFAMD4GA1UEAxM3V1VT +LU5UQy1OQU1FSUQtNzcwRTk3NEFDQUYwREI5QUU2N0U3QjZGNUQ0MTBGOUFDRTJG +QUQ2NTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALlMyx1CGlMpkDVq +VJiuKvBxT7off/0+8J9AFVB+QgnENCSdH9hRSfBebtwJceNMKAuNMo67HOV0Y0Fo +mE7EStFZNRzlbTK33i2jz9gGmDDE3IvsLzvfh9J3FmzRcg9geAocR1aUljpb06xT +5Y2AxGCvLX/boHx0QCwEp8+U48IsKC+ZD/liScTsF5DIHJktcR/+yBLhjUaQMilL +ui8pTjfsT6ED1WLyXDJCcTmTl6EkDASrdxhcWIPqqNqHAg4+mvEePSQ7qnmFzEKl +aJn9cKfV2+pgNGzHmANJ0zc/ayBdT2TW7Qo6KdwaQxZOUVyxBE7GTMbKgaKC4Nd+ +dn/o39UCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFNXo1qbjCoF+9OMCntVRnSj6+uZpMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEASQwb +3GeZq7XrPAZ9LO/tYin9AYVPQP6eIpDSysX7N3rv5ssM7muvup1VwSV8z74NWCtp +DYvefMWMtnLCS6bHPq+wqZI8HTuaw+T7aJSEgU4dRQSu3wdw+TaNwfo+0rO+WFvp +mBWRE47CIJBW3lJcqZSXB8KX8/ZjPoDBTC2bwHmAzIo9+jfARn+0246T73OGQoS8 +OXPe9Qjhpvqq9xwXaWdjlsVu24I6B0gjG/ZuMlaXiASYE181ByCh6gpBBPDV8crF +5ab9rn1qfZ9uzVkkLeWR1MxV+lBY8knkRHLNSFr0VsVfxg29/ZKnV90L4Hm6e+KT +nETSDFs5KxVP3rtB2Tx/myJIJxbuBOxNbv+VkxZnqlSXiDP4gAtA0+lsVMxm6rfZ +vL9ieupAhIeuFzmviceMV+utf01HOv47pL/tteNRoV5ycV108//49crjbNc9psoj +ICsNJWVCX0hPo0y6J37fy3zcVMBpsZp2BcDlOcEurmBsu3uf+RomAmUgJWsatLeK +jLzhFSsbGN+hxRZLX6/Z0YQIhmeYgWDPkTfBWI+tD3OdwvJdyrsGPe7HPFvGHd4w +4OFXqDiZ47Mk8yUkjx4KXOk88PWnf8J1i4fta4yHjaGjZ7PTIqa0iFZqCNzxeROe +rCMN+nluNOW4WPYkUoTogcMeAid/VVOevG1g/ug= +-----END CERTIFICATE----- + + +WUS NTC NameId 91EBBB7C51FA7F78AA3D44D3425B1D5D23975CAF +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAU+jYlrTAJ9KvgAAAAABTzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDcxMDIwMTEyNFoXDTI5MTIzMTIwMTEyNFowQjFAMD4GA1UEAxM3V1VT +LU5UQy1OQU1FSUQtOTFFQkJCN0M1MUZBN0Y3OEFBM0Q0NEQzNDI1QjFENUQyMzk3 +NUNBRjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKuyyKGVxf58bZRg +iUfalyZgj/mwgY2+4LBQUAVJ8aJmelU32AKQEMrdwXb+3yBvM9STtmIwj3IWpFmW +EbR5TSSeQ+PjcmRS4MMDXnweja075+ZHAfiEYY6AUmuKuRH+plomCWBUHpVMhWDj +vaUzV1bST/RhYK9hLGJcRXD3qvkj6Gd3kjYlUHmoRVKtZvUxHO9+a88gwpAqIaSy +nT9dDQQ+pYkRIp4cycXxxG3UFyscA0VlzSF+qenh6Ij6kDF/3E9ptg4UIGkfBE93 +m/kci2KczdegwRmJ0v6ExMpNYeOz7r9JhAlaSaefB31wqimfjuS2LNlXzKC/+w1K +cY3mOkUCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFA26rbhnijlJUpWimMXOPyOhddsSMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAZLd2 +C07p9zCZzboo6u5PBMh+SuACjy42+6aRup/R+9KCVaMczZiYqMwc8mzZqHZ5jbPg +eJ63CARIYwTmvO0KXg5LfGshAFZ61c6PaYVtRxXggwy7yDQbkTeYlg3Zy8v/WKJP +xMpIFY6HE7YBwAvweSdIvVNllvZ06qwC2+xrlirud4IIUSssU/LUlXevnu6KF4+Q +6kbqV/GKJt9GMN2D7OoRirFfQMJRdIXtzNgC78fU1oq3AJBc6RoVzm9gccs6rvM9 +mQRKqnEeEiiZiktoIuiWJSxYsjO5tQCemQ+Uiyl5GLFp0AcM+dzhNBRsB1Z+N8rW +vYqObDWE/21HFv5E2i7J2BUtCxMcAYGDAmph5l/4s7yJv3AYZrrwWJP+Nl6JKchx +5CgbBiOufhRqYx23cde9WLnHzpjWo+lIM8wqVL1+rGbiG8d8W63HMT7jYAWnQnNZ +qsdgt4q/uzdmNmFToQE9vrfpE+MxWKVubgHaXqhJV+4AceWFdfvLfZzZd9BgUf2O +L4wSZ+hRHqMusK1V/6u8TH8/UBYmmGAZnQvoB63zW2JYVKA0n9C20Xf6cuOTSDdA +tTAwzXYhFziOwtz9H3ybMQBI34n4l2uDWa5+32VuFk6/I5DPDPazYVfBLARw3w9W +JutiNkp0NcCDOqcJhIP2lgeufNN3f3udiH2yDu4= +-----END CERTIFICATE----- + + +WUS NTC NameId 91EBBB7C51FA7F78AA3D44D3425B1D5D23975CAF 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAqmfXm9l1E0MCwAAAAACqTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzA0NVoXDTI1MDMyMTIwMzA0NVowQjFAMD4GA1UEAxM3V1VT +LU5UQy1OQU1FSUQtOTFFQkJCN0M1MUZBN0Y3OEFBM0Q0NEQzNDI1QjFENUQyMzk3 +NUNBRjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK/gG2izfHM+ilJe +JV4mODMSb5TQ7bGtFYkICg+7B7dNx6yhMmRMootPrpbdL7aozRVHqmIuCMXNj/Hv +OpBOtkP7o7ffKN3jtbIl08BAqjl1HM2Q64VikWdDey5vtE498bky8uVXtzM8xzs8 +Y0l58lAwsUzYHlVuPRqYNGjtNbNrGu4JPWLkykGQy/ZqBRNS6aXMQeKwGOoTcJeP +xurApxeAe/GgM5sASbJSyk33q70ZZ8BvLee51vnDWCA+W+W8Zwi9zD/muzFpyKrn +z3IYmdxgOa4M57ZSXuGrlix+Pg4Si4tfEH3FDg/Gmp+n8tztbMsxssjqh0s1GBT0 +qJA28juQiJI9otxCVAXMoUnuGl1kbEE+42JL8VHl2zhA7IqDftT8qKCLZcpEAFMn +DCkEVNi056kCh+DEkiOm6WVZXRrbd2mLQrBCRIXGUWUN/hDG6IM5KmemYrcggtby +LUfwa5NBnhP0WYTyzMf/x9M9ptJHw44m2r2FFIExIeBIZf/VAipou9xQ54DkWoSC +i5oC/Ti1F9RyuRDnXhdSONy8uBpbuVHQQCFeSpaA1I+fBYRTvQTMD+xENeXH2ECj +lal7R1d2+DTDwF2EBhSvK2fIpBTCpYGudQ9RkNRbYvB0XCxm+ErIklcJmN3a1bWo +tc0JIcIkiSRhTJh7wpbRfRdS6PsNAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQ0GZzu4YJP7iyz +gyAMf/T4sxBvezAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFNL70Re3JCaFftJFuK95ngGZYBlz2+9jffagX3unhdS +frdjj+Fb9kyMxvE1E69kBZ+RbxojxLR8HcT+vOialWze9J1o5iS76O3pCPX9+fK+ +XNYI4/e/PRLx8XGijaOc4qWnW33oNMKu+ur1EI6zGWmsPeTBn+9pwCG6OFuOF1lo +YEzG9ZledDpnQNVZ4DAsu7kL0lfzZXVUJfV1zi0WNQ9gwj5gfmQWmCNcyL0xqB0a +yNSKxRPiye9VvY8ZeW0sao3X99umaFxaWkEk5r+eZkOoHk+Pb0IX0PLbELPpbg9z +bjnfZs6YaL2uTgRHi3n6ha81qBFfigWjEuukNjbSpQ+hqOZ4ogtq8W/PcjoWTdAT +LMhXxhIYf9pMYr3F1hVGsaTu5UnZIZIhnBAwTc15/6FsIpQ3D4KA53HvdKhHx2h4 +SWj4MXlUepxe9fFHn1QYLy0QtHGUjY0IYkz8lZBAmkt/2lPhUys7YU6AkvxOHL+0 +Z0OdYDISPSm7RSla1+d16sJCAF2Iu/RN9+T4btpy+3BYb4ePXYWXnb/aFpeQKRHu +uBk+PjpyLr3ciYO7xufwcUMkzrWveE5Uy8JLuKW0zw6MpwkYqWm+DK3SHihqmSU5 +0v0eh9StZi6PGS+O51TLbP0pZPPFe6EpVflUsnf/4pXQciiD4Nztv5x1TPJgDn5W +-----END CERTIFICATE----- + + +WUS Ntz keyid 022cbeed5d77060f2833e9d5376ba8bc308cd9ba +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAtSARQhbVHURTAAAAAAC1DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIyM1oXDTI1MDUyMjIwMzIyM1owQTE/MD0GA1UEAxM2V1VT +LU5UWi1LRVlJRC0wMjJDQkVFRDVENzcwNjBGMjgzM0U5RDUzNzZCQThCQzMwOENE +OUJBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArvWKbkjy1Rz+fjyO +2KragJAv7+5PVdBhqe9EboQF8UuwXbOLX7cEMMOhooLVlCHaW21j+eFUYRphYSK8 +/L8Qs4Fs8+VF1UY9M2DagP5vN7Xay/46iYVinbD5v2SxhMW9JIDjQ1GmQgUAMVxi +PME95WGc1sJSiTI5TjyOEbi5b2N635eU18VCtMvLSXn8IcucoB1hJUA7PuTifjAk +1B7T2r7wIZ6x4unrWI6+7AXayLeHn8oA/5z94kImkTCj5PNMokP0eYbO1LskC7PP +NRVP/8zsyLWfRkBEH53QTvurwS/oljJ0x7WJ13WbpBgmCb5grIqYxCQ1uRpcUYJZ +TC5AfkfpJlCRP7EpjNxfX3rmYtxwwO6f9uctxo5h+s1UNnsrDX9gfPZqCH068Rnm +bQinK5x50lvnTEv7qWmL/AR2kryLrnIisnbC0SsSxqLUOGweoZXkfCiz2Loydym8 +CIQT3uW3E4+nPIa5gHCxpHWIg4d0oGzqPExPh2udFbbIO2hzLr/c9+tMyfTnwymu +XopsC10v7Va5N2yBk0w5azjVSr1be/5sl7ur/hFNcD5RgDupFSRRzOSqoAOhAfUF +jz7u3cNmseanl6QfOeugRKyFafUrm8uZ6/XWRwwbxKu2CzZmSV0g3gWbe4Z3I8mi +NH0hTeTBMfY9hiOWRtgvfdb9CPUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFD5yRuyWnQU1Vktv +6cmVDEqhfhpjMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAiI7Dh87VdoebsA3XOBC6wGCFmX4K4kezHZQS3pDgAoJj +SV8ad2WXP7rbKJysVpJmFZC2i4Vof543qxSwu9AHkab2PIdGVmFtLRtdEQV5dvXH +PXNqqstUjK8CP51JRY0fSvQUlNO4nnyR+tX9pRU/ATI8MWrgH6WwyWURvH9KO7vh +Rr8ypP7tZg4l0HJguhClTgL7N7S09GCF4ZgDUDRHI+qJn6D+q9PMBiC/A4Yz3e7Z +SO5BHXf5lM7YGQ/y4gFqpb33xFLrbuDCw/YmNeuReugbla6EKhte/XBFaoivdbnv +6QT4UHhOr8lhRn581kWCq5drBpATqMJRZ+kbuCziQ/4GArVDKaAhuhAtBInO7qzx +08tlIlmlRhEod5pVzx9qBudBOOpUYyb9zY1ICRF3s9z6x/hhf/Agl0ppqjWib/Pz +ZF6sLwXBYHb+tij7ztZScEV/uQ6q51GPD7U3GM1oFLGgQX2zPfZeYFK7YxTLQ4+z +K4M43IhodzbwI0LUS2Gi6dhm0Nl2+OOembLqohz/O8ALLICjrSpCPG0R22wpb32n +u2Vc29I/RgdZKG6kx/RilwtogGG7vlGUvczAU8RptwLli4LLmASADPkRoEfh05yx +s424hiV5nnZeEWjjVxbrDSjWLn1t8G5h9ecuftTAxmBp+n2uBtZAc4ne1h+rQj0= +-----END CERTIFICATE----- + + +WUS Ntz keyid 03d1cde438ea3db34d943181c1cd517d688062ef +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAtMzccUWdElmFwAAAAAC0zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIyMloXDTI1MDUyMjIwMzIyMlowQTE/MD0GA1UEAxM2V1VT +LU5UWi1LRVlJRC0wM0QxQ0RFNDM4RUEzREIzNEQ5NDMxODFDMUNENTE3RDY4ODA2 +MkVGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqgU55dr40st3eeq4 +sgK1LpjBLu3i+DeMm6aa1NJHUNIVz8uuA4FuBinsQ8TAkjz1IOEVuJT0DvomXU4A +1um+IKDXcjMSflt1GnjCaaJdGle+lT0Z4ixk33hV3r4BoNQrPRzjPvSIHjBUlT9f +P+CcgwNfg1VYhUphV37+9xNclRODtPsIFdwozQ67hLIq7Spi062I+a05Jrf1F20o +w0k212MKN1LQQncEYDfsRzir9dnWrRYt7lt0FdSExeQCSIVkKKXhnqCPEL6s+R6h +HKyzsk/WbUsdL6D4tl+MW9nJiN2k3vAa3DgkEQAvZsH71CFR7WOFDrdEdGdVbAgv +G4fdCBwJmaKSnFIzK8lZGyJZv0AXwUlJjeugFnugDI/crUdBHkqUv9YwKY9CcM0u +zZjzefQRIb9OOxT65Rt8a0O2aa30BbCzJoL7JY2XuN4GWm6AKuMrLPB0gFOxUQTR +9Tk4KXBb4wljXATd44nSC8QFfwjR72xsGKM388cmwCgMYjrQR+IzYK5UkDL6T1hS +kA2efYY57Eha+0Rt3GfVvD1t1AZlCC0+S460SBo6C/IzWJEDjNQsYGhMC2q8LcYf +UqwhXncODKw2ExTwtJKw+5Zt4HOngs4aQ7d9GzmLV7athJ7fKFfpgFaW+s8gkWAo +G05dFI/PCAtLl7tIcYN+/pvARbkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCi2vk3YGnR9Gu+C +krqHQataLMiuMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAP0Yst7WKVtYFU8GRxWnKMKiAmuBJBSDoOT93gCVt5Jxf +pZVkxQ0q0s5ugnxqEnzVtE4Op+3ENaRWp1mJfM70aQpTAieAxsne8LyHtDUu5fw2 +KFN5g1GeROVEy/PSSZ0oT3SLu4YJTRtAZJ/0Lsqo3ID+ZCe1r+TxKu72ZasEJuDV +p/YG96vwKNzhNb6PJ6Dm7lyEx7kgmrfU3NcuKTxhlLcEmKcxQdIuhGu60SZpw1KW +UOZ6z7+xzsAX/TW/C6lyBK+8DfKQ99V+80QFwHXsM9cerkdMz+1AaGv6vUpXNOxt +y2MtBfcf61TwRsi6yWGAFjfQl+LrlUtzU+hhRW4NCj64efcPuiuLj8AlQ4AKOBvq +MNqZISAZYFwOOYtbt/JLuWt1+ww9B+df8qZgbBrRCNL0FqpCbUDrMFRo7W/7OiKD +sT9IcSd9xvTxIB9arrQgBaSi34VyVsSYCX+Zdd8JSAFsMHABCg9UVdVMbs5Uu8/W +xUi6CXw6sqIQ4NhgeLHDV96Z6m6AnBk59rd4yj43hjFP2kVYOk5fv0Xpiam+Ma3m +MKGuRpFjpPHweabtwMc4gGNjlDgaS+3sMlZYFNimce9rFv26UCkPISArAIfUGR+Y +RIFm5jYHzTbkuvgpiOP5zO6cQkrXRkvLdv5IJUsqCcs9+j85Hbx0JUiYWwru4bg= +-----END CERTIFICATE----- + + +WUS Ntz keyid ebb2f4e312e6529c4ed0cdb68228580ae5203d45 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAtWqvz7tmSD/ggAAAAAC1TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIyM1oXDTI1MDUyMjIwMzIyM1owQTE/MD0GA1UEAxM2V1VT +LU5UWi1LRVlJRC1FQkIyRjRFMzEyRTY1MjlDNEVEMENEQjY4MjI4NTgwQUU1MjAz +RDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3sGBNsDe1jbO/9Iy +8XHZ+VbOEGa4BBzuCr+fg4tfsiQ2qeDiqM3bCF48ppSIAkPnBH+KgOphD+DvIJMs +0Ys83gNAD1FSPATuUnrK8allFSop/VSLHzCrOUNtZ0FQLqkbJOoqbT2/ykMyPM3M +7Z8OPrgdWp8Z1nlqknFTummbzNCTqymf8VDwR6daAON6DLvJBhdw1CrWNq+edOir +XEzVZV0R+BYzeHHInneaW2Rfyztnp9vdl60hhZ/uHC9teFM8aJY/OwVOE83pM039 +FSK8vuI9ecBEQEVATnagXLYC5IoAdhAQHoNMQjxHoSjRpcTGKJuiv8rY2USqzDX7 +6zu2JPKfqr1TL9pSCuqWMoPI61pLVci17GoAven7nyvkdElkt0c9vS9ehxuoMBaF +D35ndSbWilINAlVBxxKRvxXuTHLJu9l4W/x3qWbxFEFzCbwuKwCW0GBJNLwrKGub +SALKYHs2qnJf0cYAmUoFba0bvWqKsieIh0CIJXw5ea17MJAhIjU91Dm8uNEA2qN2 +TLBu0wxxI955OOTco73wwlYPM50ASb07lfX+oZLc8DsDAiA5HEXD6l5lOQYKwfoe +bWokXT4OL9Pr3sR5vtkD7KQmTa1d6RvRMzLFE0DF2SxgeLww3rqQR3CTbYufyHMN +N35+y08cf1xReS+/LsaDlIeG6GMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKlsrKUa4u3f1XH1 +IjokGoUQib4lMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAl4WDZWnsWJDfXra2tXLkLbZfSgPAPzry3AxBG9bYMq7Z +HpI4oxHmTBYIIVBSz9Gd3AzJWy1rcr5DYaHxAHOGiYtK8d4RuLlQi0QNhW+pCIcM +db7xhb+OniEPXZQEkx/DEa05NsSKAd/kiVnJCNaPOq48+4JSK+coM3XMd7Ip125N +gNynlPJfTUtc3JVyADrOS4NLd8q0/yoZAt7LxpAO6nofKl7Ib2rowVRUFVoRBiK2 +tyL+LWPD2xS/es0sSGw8CgX3iXkac6pJVR3hsCfgE/qY0wJvNZFcEYnfaVIbivwP +h0Kj1CmsM0Ol6gdDruceq9gewv/VymPV1vlrFJH3RYLWmDk5kZrHE/FvvX8GrAkJ +7WsQSZPR18rej14jerhcxjbT0HFHU0vqNONdN3UL1rBxp4CnaBv6ENOsRr2WIQoG +R4q5uDTIaZuKXhljXFfaOza8Ai6jPqrgzR4wqf3KzKX4dDuHA66qq8h3hRX72u01 +JiMr3ww/LiAarMeDrks01T2USx4ahZ7m8gfs85sG34voVSx2XsQ9ibYk89otK4i9 +LL3akTkUEcWVjVRKS2jE1+/YBtDvYqMCQItrCpt80TCbHuFjcnY6SZERoQNGGy42 +P8nfrLgFFQILAlNR4UbDoSTzTjjJhUZnTDJ2pCCcAGR6NlDoPNIiBySeIkeoiLM= +-----END CERTIFICATE----- + + +WUS QCOM KEYID 79100C2EA35C4FC14BDE159B56326FB731D1D512 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAsCzvtkSfoCpEwAAAAACwDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc1MVoXDTI1MDUwODE3NTc1MVowQjFAMD4GA1UEAxM3V1VT +LVFDT00tS0VZSUQtNzkxMDBDMkVBMzVDNEZDMTRCREUxNTlCNTYzMjZGQjczMUQx +RDUxMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJOt+cKqDFZNxEkF +yEAE7DV+YLB6RDGAO+mG1Ed3puDRkiMl0kK5uIOW2pDyIgHy2qK8axPCeQFSfQsl +g0qpQVVOqhKer6QffpvAYR28XSjMA+c2zMyH+PmXpdVp6fk+wUbwXhPGW+kgH5s3 +56enT03hXelCZB5zQjlJnGoIKkZ4ebbgBQn6ybe5A/Aw9euT7v+STf8jqPSbPE6Z +qJanmkIWbzlSEpIcf11/vwZPR33jgzBc3x2yJqLiZGX4o6gNo5zybOvjt3s1Katn +MRCV/N5W9eFGN05hAldQFFVzB11IUxzZg04DydF/bIBYuIVl62lJy/OqRuDtL4IC +z4L35j+/ABTYRkXPHpOdnHcy/wrRqGqeNMXPENtBYJbtJ57EWwA8siR6XD0U+YZw +X1U8TUts2MxDnt7nudAIVIawJ74SkB6EFvK3P/jKI0GXJqPpRksYryPddDgLAWwL +fDYUB8x/SgYWwoES0KIWq1ulq4syi1lhCuUhf5eUfUTHTl3mDsDT4M0/R4uuOxiK +dMy60pDCIJM0MRKDqMY8T2kSAUMm5QG+Bw9en1L9PQPd3Ko4iMIVEoOIxqtp1yVf +smsNvzMy0Fx19ut4eMHvQI37XAg5n/dxsiEDUCk0XcVf5v3UNEGeT/NU4lqMMPVu +RoQyjJail0WI44YUa0QnbY1fao+HAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQxgHd+Ib7xVqPe +7RacVwPSra6g8DAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAEF0yflwO9TWPnWGLntUp/R4Cmv5/W6ga11rXPqGF7Gb +izqw+sEDfl9Dcd99TydgWWOHJPWxCcBPlUppH4fQDLe+kvllv5EZuj1xTuIlpJnF +mKoWqwIs7fcSHAca8kAVOD4GGaR7buZWFwfJNPGgGtW/+5kuCVhRrT8lYihGDJ/z +5nhW8KgRhzrBGmUmaqfcqwLLnSPpkyXkJVVqTLO+5GlPgy1niiBlwH2KXndLX/vF +uXUwZ+rSCM+qzep0RJ/gb+oGy6ZCC/hZR45nR/gA0e6Fq9Yh4ZqHy/ZmQV3BWyod +h7kASnwDChmgz4HeOilJdLcuVumrOOO/czgW40nbx5yMYWhkFt1W/zrdtGBzWSW0 +Nxh4SrhG60mtvk/ifdVwwiinztUhxuXhzKZ4+ODtKzFh53XAl9/yJf6oLufjzVgJ +C8wLy81U9bmOBYwq+70NUwdiWDtVrPIUeODVxQx6c67EFhmt5hwv9sJeAh1emkPC +B5AOBr6R8M+CgG/AwFQK2+6S8Spi3iTF3jZ8hpB6yxSYG9e+A70INvQg0YWqFrzS +gvM482CFWP00Bs2g4UkURwJ7saqKz+LL4BD6X9r9pwlctmbFrgr0yVzfKbPtFmM5 +wRP3WbWg9ereULkFKtHxatfNyQEcIpY6pcMVhVw0LPfkKWVPDJvThkFbnSkSYEco +-----END CERTIFICATE----- + + +WUS QCOM KeyId 79100C2EA35C4FC14BDE159B56326FB731D1D512 +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAGhNciIJL7QHyQAAAAAAaDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDYxNjIwNTgxMloXDTI5MTIzMTIwNTgxMlowQjFAMD4GA1UEAxM3V1VT +LVFDT00tS2V5SWQtNzkxMDBDMkVBMzVDNEZDMTRCREUxNTlCNTYzMjZGQjczMUQx +RDUxMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALbcdGVIUiqxCxtG +q0aG8MIi7Zzss8oo0ownGv8S/NCkc7DMxI6WevHJi2KdYvDv2TosX+LYxB0DznhE +vrdeG2lwLjqeQ7l4EM9iJ0AmEXL5o1DPsYnj16qPO48+zRySsFeWFKg6viQErdqn +wbo++WX6FDCsjGSs1PMKE5T5pzjk32ahfatzwEu/seQBwUEG4fo+Vtckl7qHOL9V +9Au9GYDwuZTP8V8Hc9ZzZA7b0vfPpMnE9dZzJMK3qM72egxhOZA47zLO+Sbwj6yC +SsWMyqp3XoEYI0UdMq88DHWKMfK8lW7PPeN4ebb61777Ep1xEwAbBWXdvbAx2mgz +yOU4VQMCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFMWivlRNXbYK77yzvYFWA6lPPiYfMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAQkuP +VO//FCn4P98nFHkUYT1Uz9q75Gb3iaczsxQydmKSRnAsKMa/ne29f8Kmakxe277x +EdXuLkp8k9n4JVRK5d10d5Csq99dKHOaPGebquaRbP6DNsryfI/OasXnZZ8DL9fQ +BAthBzeumgvkxql52R/AaNDvso1TN1rvp0GoEp7eN0rdqcR4fs0Bl/gqpR2fQp5G +8gmX/zVJSR+Qzyff5xehGRfnfdJJDfllihT7XyE2XqnG9U5EH2kUH14921UFTJPi +JnFXV6mKToiFxaCG5SPx1cZ1D/7cLTTLuWrDYU/U9Lu/Zcdn8YBw+P4lodfKcECV +NrUT+y1JiE6qms+ClTcby+u+yOB6sdomu+5iPVoWrRoOs8//yN3AoilttNEFA86B +kJGiKTByAs/5AjgHXX6h9Cse6dTPR5SsvdIjMnzvOtkQtG47ADZNEGD1fkvt5xxp ++1sQwLrFG7z9PI1IQng66NIyPyFoXy8tFBOUmvUKkvRY7zAaOoj5ZQxx4ZYxJRw7 +Db6Y1op6gny/TL0P3UafOQTPA0Xwi0ywd/o3uXUORARf5tJakBiso/ixuo5NDfrz +m/YdjPrgFO6EhWl5lXWIByhNMRzsoz4vht/lHbOw4WWrnNt8bFKIFkrr/JYzdAiB +Rj9/0zBa+DnRHnGPEEcKS6lQTjU4okfxiiidiAY= +-----END CERTIFICATE----- + + +WUS STM KEYID 0056A610D53D1B3B6DBD14094B2DCE7E1F756ED0 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAsFZN/Zwt1iAXQAAAAACwTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc1MloXDTI1MDUwODE3NTc1MlowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LRVlJRC0wMDU2QTYxMEQ1M0QxQjNCNkRCRDE0MDk0QjJEQ0U3RTFGNzU2 +RUQwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAumJx54bXZnWfgP2+ +kb6JtvD9Q6h8fdTcxlKBZSX1lywXvKFuJ1igV8SMkXyYtJH85evT2R/XqaSpMWxj +sQLGBSYO96LA2iQM4pax/j2ExIw4yQWbL9QKTUWVzAiHnoqHwegVnFeeK4eMoeVv +nc/yH//3eA9sgqGVE2OxKcMMSo19lG8K3UhcttaOAWhnI4ZUw1Rt6LaZMAQXPBhw +oYAf5raBkyr9hYTBEdrU1YgUx+42262EDApHI7kw7Z3ckHZqXeikZ7g3tv5oxi1O +QBWlSSHErHCmHlw60GyjH2oYlfKfFA/1oUvrJeybSnRLE1pjSh3Gjnno3CDQ5pjv +fucITZswzIdUSUXaSdTZDrjFbpGt54yQBLuhyeRs8rKvIGVNS7e+SrDSgmMaxM2R +oN9F8CmZeuhuMH+ejA+8snh7q6G0x8VCdqEidPECTrAoXKKqHnXeimOFieWs3aZt +P4wsI3Zf09PQpj+7RNyZ+hmzTTlTjy40rTH4ce4ruzUuaY00VVSmY2VyLdaKtf0D +s+nkkPC8axTIamUVM52eMvnCHCNKnHo5thXMvbKf9OTzm2bTlXrFyhjKhOVpTdy2 +oE1DxDqZwVrWlJqG1Jjt0TTNmrw29TZljCvv1sU5dNugn8Jq0HBZVS++1PsXaabk +dWgFmRBLRap5uvp9XmH8kbwhPpUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFKl6jnnVt/MreOqH +Q/DXwVCM6S6hMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAS/VA3cHmmeJTqMhEtbnyYWGPYTTnUKOJPFq71URJIDql +/WRXYiHx4EO6Pm0HfGy+kQyZ2hXPWls4ll4p4scXr5mJVwt+jeohW/dDYwJjf84I +eOzEJbgORs9JNnVYpDD2WrnqpCjkxZY5lGyfEG7482OrRgsESyrLWj8m/LNGMsBV +9VpTN1wiAwVVjiIx82htF0uVElqS6g8EcwsD5p0EvJo8MGEQThoQ0Rgl2Y3k3hj1 +HAGb/iKv9gccxwlqGu1/tllvmt7iCsb/HHyLu+e3KRkRkTs9sUPeb8Veg8WxPyNE +fcLYs7InquS+5ng8eZHyT2JQysjxGmiH1Wih/Tu1rIgZtEnCxkAOOQcGb65NicCP +l0DvCTt1ktw3cRd+6RPy4sqJKUxqjcGUwRkmBm83Hcrur0u+pgcB7fZtRgxr+LPv +j5rQ5N/ayW57v8IBYsXIlE81mROyJRj0rHEqfJOAoRv+wO8XxxanGw3QTZDuEa+m +9j7Cw/PQHLcNfAsDktFIyNx++dBRjcJKZ003Ok0nF8zicbqqIewuNeh4ec+ERzj2 +UhtZzo3heiuVzMaeMSEg/r1CA+rscUJty/rB3DGVkTVAEEoRw/31If94XGPt7/B8 +bndHGM9gFQA2aJVYPdgbaJialex+EMx+kc2nNyNV31cCRN8PWtm9MY42w2iZ/Y4= +-----END CERTIFICATE----- + + +WUS STM KEYID 08CBB05CA4510B2A73299184EDDC9CCE42911211 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAulsMU/TfKdqtQAAAAAC6TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzN1oXDTI1MDYxODE5MTYzN1owQTE/MD0GA1UEAxM2V1VT +LVNUTS1LRVlJRC0wOENCQjA1Q0E0NTEwQjJBNzMyOTkxODRFRERDOUNDRTQyOTEx +MjExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuLBz+bhARUWN8Twd +MkKVwsxn9xY0Wu+Cn3e41gH5iepqVdKmWSfskSriY3FRScr8ZzNUOZSkYdXxNE1P +m2sDPuW4dwJGEDj7YhZ65IN2vW518lUZGoD/D4Sb9oxW+R6ezb8986OTKJsv0461 +i14chTalONWm554yU8U1GgxzodXmHU0mw8JES5/7vjs9zX2bZZsgAixNq7KBBcly +OhQgIyqtC/5MKRTFVWbPne/kPXmWblqMNnfayVC4iJxNq9a33EVsYjH2lN7cOqQP +b4FqEht1LU+dhzN0c7oLeP85i8sUbzP6+NEb+QH1KlwexrJOKszRNz3sMVJeSWcF +g3ocp7VMiP/vDJnxJJNo67rAwuCCQssZ911rG0cJMtIIWr+gXiXpNa9ThYeWq3Qu +KfFJveC9sDm+SSfers7bWI4uXJjFFMi4bjd2ZurG4WMV3EzLL4yHMUnlz2xiyOLm +cm+BZ/VGWCRwbuazSwnmB4toTtdMgSE44gEV1CSgTJj+KE2CIXQdWgEbFieImqdf +dlM9lXbhElaa/u0dyAVrdv14x+HhHG06RAZsPASxk01IZ8pAsWav2RJK/XMZs30v +mOTUaiFxoSr6HniENluydI3ateeXeJtTqjTcxK/nLais/qpfslSQ/ujzCwXhIKw1 +2ArfMf63xm+VfmNY2zf0zGfRMc0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJj7WOa+gThFzZVh +2YRgKtlJmRIDMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEATaeXHINPuZgAMm4WIhcabU3HpgSeQ2mezoC3Bn74mQCM +23ZFa7xbFMjy568YO8DbR8i4gqfc5j4bZQVf0oQdNoIpBMtIL1cfISycsntyRfhD +3MQErBzUm8STnB5/XVIO1/JLaFndOCZIPGXkeLZQIBd+P4GlC6khbcHUZfOjrqDD +7jBwoFTVEh0bu25CHukuszgB0iZD+ei22oIrb7phCsd3QY6KOvH8SuAH3zAZHMHe +u/U5z2j5lccOi1DGnAXf4m7DMn3zMqmXjFV8s1F4xtK1Y9pugUVye/yzdXWFTncL +6swzptzBkZ9JjxYi8gzq4IONZWA1+A+7DPYzadbaMeCw8wvMMiE1+McwmkvY0cHB +JSzsmfdzjxTz0q+4JKVDuhpzSYA60TCtpz5jLZou5kwuituHoJp8yAAiHH3mbJvs +P4s60eiOZDCBgHiXbTk4eXn/Vv4eIS3b66NmOjqe46d6IDO1ta4FJHyHl0fFrh4d +o71A4wBGKFw/7hvJuY28BtZ0sg627t19spCfzznDzV2Uxrw1QV8hoJK49NO8xMTF +r9nj1uOtwyHi5mCFe0p/LTEtorriNLaM9XvhI96JAy8Akm24fen8GYuB8a6ZuEdx +RImUnFy4wlYaWhXsG48jMZI2A32UUfO6Bxi94qU9Kc5s0AeCRmqJNoEnRnpOzVs= +-----END CERTIFICATE----- + + +WUS STM KEYID 1ADB994AB58BE57A0CC9B900E7851E1A43C08660 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAARi/WYYX9w9H3AAAAAABGDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjU0NVoXDTI5MTIzMTE4MjU0NVowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LRVlJRC0xQURCOTk0QUI1OEJFNTdBMENDOUI5MDBFNzg1MUUxQTQzQzA4 +NjYwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoeWER7lQDnvuVkQ +QPRbsLyFAnoU0c4iO6HVInGADKiTADA0lVausZbwE0YlTjEoXJQ1q/8I8YCd+cM6 +Q5VvGESUCqzhVD84tN1piYaso9FY9kssHXrwYBc634m0sbVr/szIyRphZgb0EVcx +D0G6Y8MkTeszIdfqlnrxKoBCTOhrYYIKCDqOXjnqu0A4v0/FZ47U3VMPxjDx+WPp +XHGRXJlvYBQB51PLz1b1KmBY0ElLnlQN9EjFrP2izP0L5vREpRQ70sy7aWpwEprQ +4lXTAHT9YDbOVrqFZNk/HvwfbO2gcOtuw4GIGbafHFmotAlcZPkXeC0jU6Ul8iCK +S2TtTwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUBL70VQYsgnXtwh9uK8g7wmX8NPswHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBHyco4 +KJg4ck5EYr6AoYhCR4R4sq2SqGlsIyVqZThFe07VBf4Gggl9lVraBotjMDmJeaTX +JYqer29jplsrVaJmzwYT2MH5SKihY/JTbi2uv5ixbzjc+HykWxKC70f2Zgw40Xw5 +6Uz6LE19YWwuJFMBvTaQGNdmz8UN8cA5HTFpHXIjf7hgOLYHYcaztU3wx04X+yEJ +GY4hyRPCur13KeXHR5KfKO/SAOUSYztDRuFwHqXac+N0yjKbA7pr6rGdvq3MwogH +0MzWsD/Xu+tFEpEQhgMf9gt9z88mEXXx5y5mR4rVu/MhJh9qIiEVF4LDLAD6ybjW +Zi5Je2rC8XNavyphFJU+Svp8/jshukCZi6BbcNzsx2zQglmpTfnzLknwg1DyBI7V +wR2TDerA2X7ENaVk83H1MPzQp37pBhKk73fVHMPQ2HVAvONbmi1s6v9pl2hSmJ7l +v0NhoNX2ZuFf2kElclMDYvIc+puIfiIufFfk3FPxOi2yRzE6EV3Ir8nuifhAkej3 +1CcRQ0hFTuDed7cYyDTWNlKYpEUK+PWj73tfRAGwe8tDT7p2i6MV/GJ5SewczRVD +Wl1WVPN8vePEz9ca35IGglmcLVzE1oW8nhFHZl0jhDZCqfsKtpwUpECCoeDeViT1 +/wdMmpRVrSMoKAiNMR/MF8E89ioLTX55udNXLw== +-----END CERTIFICATE----- + + +WUS STM KEYID 1ADB994AB58BE57A0CC9B900E7851E1A43C08660 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAq2CSU6YCyQ30QAAAAACrTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzA0OFoXDTI1MDMyMTIwMzA0OFowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LRVlJRC0xQURCOTk0QUI1OEJFNTdBMENDOUI5MDBFNzg1MUUxQTQzQzA4 +NjYwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1vaV8OpKPK1OLroM +8sd7zyHQAIzZIkFvgaq49Kw/vYBzfoMV5JmVdOJdrR53Z2/xUjiHAfMTMVylzxO0 +sFVc5wdqkUwONlsjhOWU5jchPF5C2Mh4ZONhxdu9ag0a5H3FyNjTe0csDNDx06/K ++OV2PI0XrCiinxhfdknHOZGicHULjqLCpytfCdHpbgeT9gLSg1cZqlR34FLlZ8WY +b6rIzDxHH18gWHw1xxWWzv64GZhxu3KC79R00MZAPUBIXvD1DF/o2lywHJN4kk9Z +13AI27fIk+2u6UhoTGopx3qg9shPKeQld4SL0qZ7NWr5FkaEkQaPVnlp+kQUed6h +oZTma8jPlrUifVeIMyiVEpySczivThKhBkZxDDccPt9S/HR3OlbixzELWDQmmuRn +Uh+QUOpz0ggk0Osbg8gAgbBfXvfvo5ZSxQFDMaB1g/OHKAmaxS/dBH3L9K1GfzqC +pXG+CIlViFtd6rKqsre4CB6kMwLe0BGoVRTdWrwJLI5d1CaK83xzLiv2P6iFQiq6 +OKPOLLI0+izbtTKBB1N1e1ld5t5nPCq7BON0LBlpblT2e1cPuL9l/RbKNMKEz+2Z +54g4N+QFbKb7f2Wcj8DcjtSJlSlWwTrmmAaHOFR7/YoLzFCm5FjCd0laeb9/dzak +9o9SG17PKFNnHr4vR9I628aClN8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFP7Sm4WTA1yYWhpy +qCR2eUHVgwlOMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAaOHpySO1cNyzWA7H5WSxNg0TTb3jvHODscF9rcxKwQ19 +WAC/G5TTWUKJcWzzbIEOUItocM60Rm2+tenk/HRRxb8GHo20nIoQ0oX4U6clpnQX +ctH0qVkSZX3UB8zHteeY/rsgEsloUHzU+jt5C3lZ92nZ5ZH0/0bWf0US4kUpmqZY +Y/6kd27+7M5JOHTIZ2tbRYGby1RqWYJ5eeibqUAKCzmP6+cDf3MHIXJYqK6OZI/D +dxgh3KGGjX1NnEEjS+kGrwe6yibUYSE0/Nb96x+1wBrY+RkEplVMJu2w7TNc7mmJ +XFZx0aP9jY62KjJ9s+SwcrfvHB2CrcqRTmiPvw1ZU2N+8UmWi4m0CGxxqqinzX6l +Th/gDtr5sntfKSiu50+9vDdfRNrHoRMh49GH5D+MzIHlKAACheNd1GcDUQlLyk9w +SO8tDLRb81wuxRxoxytamPkeUZ9uOAxH9E3PS/SpK5WoNaW4WUCaKhdtRg0rcV7Z +O9pifZ9jTYwUCw79ayde1K1NUvb8CVO8JEQCaiBm8hAj3fZr4yD43+iUsKI2bQcF +z4xPMSnTnWs4V5N7cjm5IT3LO1KlQmuql85bJkeMxOa1TX5odgg6FzYUYMtspy2j +ZS4QipkHrb7CKqoZjkm3ENG5h7p4+JnBw1bhkJOCeORU0RZyp4vupUJhDY1QSf0= +-----END CERTIFICATE----- + + +WUS STM KEYID 571F806B47CCE79BFA35947CED88B8D1005AE09E 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAsIPPpW1HNEcogAAAAACwjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc1M1oXDTI1MDUwODE3NTc1M1owQTE/MD0GA1UEAxM2V1VT +LVNUTS1LRVlJRC01NzFGODA2QjQ3Q0NFNzlCRkEzNTk0N0NFRDg4QjhEMTAwNUFF +MDlFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAppGGrqUvb/7DrRVH +2royulbnme9q+u4rnIWtfaQ9ILSAnAt1JsiTSDGDSzKM5VWhx4gndBZbodD/ky4w +Zcw3pP4iANwUF/1EOSjUMTAzzEla9yPBz6BVrBbAWJfWgMtN0TUY1XWoGZ0FINQU +JcNCK8M/v+/t7BQ9wNkN/kdaVAvPuiDasPSF3oCg8Blz0sOjyMB72urjt1qte6me +qBuiO722Un4BJfXE5kKLU/4Rmz2UOmp4WBSPbptla8vj6CPkEnbBFG76w3miYJs0 +H9R6JwZrrGzDAobkxKK5IgVvzmSO7/yvRdaXiDL0V+SkUAl2nvoq70oWRtVhzyTZ +Zki6FnPVUI2O0Jzuk9CCwwBLlNBaBFasDKXUUmQ2K2nv0hQiePhi08c+j6v6WoBA +PrlS6EJj2sJszerw69UCxsNGlDioYJRjXukeDYj/2ky5EVOy2IzHTGZrNM4jQOuI +5pGv7MvC+cYKVU2LknY+nAoPGNEHPcfeLCptc1NTAP6HQpkhcC3Kqnqz1ao6Jm3/ +5hAKZJoOhQAANoN8f5Uqk4885pDgFf3lT3Aa3aP5Q8m4xqUX3GHm3H+fSlLcgscs +Yv/Tn6fUfuAuZKHX1lXl2Mj1pee58cxafDLmZD9pfl2dmhg6IWc5EarKVlAC256K +0HO79jhzHdi71PotM4B8+7UR348CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEYucdj3HlEx1XLb +azoOvy9rsascMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAAO/oIoi/Uw3keK9+qIpLhUoou2dZL+a6LkZTNy05nq9n +7NFKV7MskL4egANytF3H63kHweYIkwumS4v9A5/nAlZNzGx0LMj19jotMMVA4Iwv +PRK2JPQBdxLeBfUN869zpHTx3QrcNkoNosnkQ+EADsfv92o1Z8BYXtVURO35uo07 +XC+b/e1pwMQ+rayDcqMmga2boiar9TpLVJ/Z48lUSSx4z33HIWYdqthekHhI3XkG +OXcmeaGwN9bpFYs7EzVKx4j3grSMQ8AYunbQlToSVatXudSTmLKIcQ/YY6BSUO1v +oHUjcoiknv1nHA085MogE+xiafIIWnDhI2Slt5DP5V5FpJ4Y5L/uaPHPW2D36JGs +d9EcHOlpKLq+AmrxPcYLqEdaLA1jD5HGGWAnkS+i+coT0k7MP5vHuaKffOBVmzCZ +dK76kDO+xCGEa9cmogfzYOvdNtu8SM9J95O6OvRTbj1767SqF42BI0ODn628pDdA +K2ofSJ0p2sHYZWqM9y7E5DvfjIPe9WlTJ6Y1AYCXXE9IEebk6IyTBn4fR7j2nIz8 +iW1EtWaXZO4EPpBK1V2KLrDAQsNMrTv0+DaZ1qnHD8VcuL/LzRalkWjxyaaW31YS +hgbNMkvP/twJb9xX1f14sZpfMm0O4AcBy0cfQpGU86cw1tY7nHzYGdixu7SXulA= +-----END CERTIFICATE----- + + +WUS STM KEYID 662D8F1CECDFF147A8B6F0EA296AF7F24CADF9CF +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAutGUmt0zNN4MAAAAAAC6zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzOVoXDTI1MDYxODE5MTYzOVowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LRVlJRC02NjJEOEYxQ0VDREZGMTQ3QThCNkYwRUEyOTZBRjdGMjRDQURG +OUNGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvSMIhqkAhlPbj0tS +V0CiIrMdgCEepjh2DXdOnSbUnTDk/2axsI+jE6+ASDgXvquGd/TWz33QjrB2y5IJ +FabveTA6Z47wd/02G+gdbE27UxkwlsAksaBvh1KhflNC2SZthCIRX9fWjkNmIdpR +Vmyt8+t2X5Hl9jbWKBnW2NIAmh4aP0k1AmtNzty7r7LutWn/M+f0LtUh7CwVgWWt +FYVNZxoxxU6js7hNqv6INMgt9nPPd7lVEfENDJvrSNZA6XAWe1otD1rbTYmUdpXu +b7v1H6w/jO0g+ZYkmp692KkKNK2pc/WxnVwiqc1+l41jhwX+xvd5TaSA1wOpvs8s +sxifmW/9nMHbMxezfT8ZenxwrQ6rJvzusRbk93kqCCUJ0PaL5adBwOWWr9n9fwTs +fggLnaJHL/bfgzJYhjv7/sPmpknzV2+JK7hmEWEu+dP7kRK8r1VMB7zBpMC4VPK0 +B9VNWjwC6HHB1W4KuUDjMwZyEKL1TmFCNPAaUkwjj6qiYh0gfWQIRqEcu82gtvmw +5yJRMILPWdMbtnSMB54EU0aqAaGBP6Kmc021ssxEBrAL5hvlnaVQ10HIexHBRm5Z +JhnzhLaKrVAKjq6TNYLQE7Ygtc3n50nBAcp9+bT3UHVdCvPosqR+j+uqNkHt72oX +8fT+yb2epcmVaSaOhLejwoVjqfMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBk1oREJilPGKAr9 +Kf0JVDJjCTjBMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAWMw/5SpK87wr4VtNljcPvUApW8IqVleCly6434O8i4Ib +JruXwI/BXFw3YZrFnKjNwrWMaz/jlHBKlq+mRhUWA+FpBDS7B4uf+yYvJzMVGFM/ +czMYDujMGhifV8r5izcMeZ/l3YLFN6va/ZBwC9OlMzJnBKWKvJrmgERGXsZsgQK5 +ZnQX6nQS/ntGlu0inin5KoGbDwR+ne5HKVjWsBEQs55QkJ3VqiwAfIj1nUYn3MI4 +bJGhx4zMbTH++Dmt73I/kg2NHqBPYjOR2W9aD2WLKnEcVx5hBzKFpQ3AZ5HHUbf3 +aUfEYmOsi2ai/RF+ca9Ks4I6eUDYpPyr7qZvGPK32sgJa8hZ7R+FreC2nyzOy191 +16BviTBnUo7f4qdQhK3oBfOrxAPBY3ZnK+8dBn4u0sfT5F9NlMVbtz03ZYeO/Lk7 +YrFSXUQg0u3NnDjiTNn3levbZuX5DZqPpqnDY7C2fXqQL2EV/Na+f3ZJ2KDt2OJ9 +MrOQ/AgCZO7mucewm66Pt8o9Zaipe+QuO+HImFdLCUUSBM5IIerHqXYE08yEqMcJ +rUO3W5+Xx5xPQba7D5enH7QsyiMTWKhzevT5hccrsPADTqzQjcMxsyGJN1a4g+Ki +Xe+ZNP/m++A1v9aRsaHQ4tTSYhNdPKgiL5sT3ckDZjHaxycgjPNtsRjB5SkjyZY= +-----END CERTIFICATE----- + + +WUS STM KEYID 6B2780800A941CB47EFBCABDD8D1F01D529BF36C +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAuiDJihP1jBJ8QAAAAAC6DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzNloXDTI1MDYxODE5MTYzNlowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LRVlJRC02QjI3ODA4MDBBOTQxQ0I0N0VGQkNBQkREOEQxRjAxRDUyOUJG +MzZDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsmitZOCwAcLHXjD1 +NGoIN/qqqNfAIJ8jfyKnBcX+4Q8O/7NZVfSwEAaisKCDBRuBO0GWZ7PrxdcGWmN9 +WViJYHu8L+cTZddFUxPBdCIOCrlR5nlFanokcwsDwUirAZBuTnpCVFIYZEFuFX07 +BYEylaDBx8cMyu0605qF3CR69dZUpNc//nykzSlMGnXOWM1aHpBkWhpRFwaY5znu +J6/PxoLTcRGBxXyeo1S4rv6+oCQY9CO4/AwDpPrkYF2Oen1CUTRRFKx6B+rF2yUt +rswvdIEj+YA0jxFxJT1R/hU5vsACQ2vuezh+YdSHCbHflXraOICoZiPQpJzmY/r6 +HQ66W31vQ4ZG+AcMSbYjUIjpHG3pj6pt9vEUZabeIbEUMT+IEtL5+fClWqStJXU3 +AlftKwCsSQV8q91KLGcyDjmVtoybPKJ7wLEyg3Fy/9aEyCwwFy7uIqZV0rzvg3X6 +hqJIHgAMvZ+xM6RYyL4hIq5zR6xr0F5G8LeZ+BZKwDDEKEhBNXg+pQXgRpaXN2Up +Qisn+OdoKzT3o+Fe1blYUWoLevEy+TH85z0cfnF273uLTHxkBWhzV6sE/yLFrjQL +X2CqM+hdq0kOMrTxNEdol987ItQ4ISaTWlcqQZ5UXTfVNtYdHd962RvpurlPmb60 +rz9i/vzZv5ro9pjcXHwf8z9n/GcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGqJVs+EEMHLAIBk +pQdXuMJvkJnvMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEASAPR5gKdyquo4H3UWbg2XmUJTOMXsFIzrgNNI9yz61Ce +qNcHqnPUpNI0wXONzre1iZum1+QAMxYiEbNp20GAN6A4mv2yPQKFETJkrEOIqhH+ +v5AMFjyF+ZoGSrrOm3PsD9iwnwmGtsgTr+NtHRGjcEyzSnpv2kAqZkVnIYKP6wzR +hfGHyLwdYCwWXg8yCuGUVkkJWspRXORWnk4n2ycL5E5nXE/R+BZEdGIv6lpDK6t/ +lgpRkGASJgoQeHmwXGdWMcEVUmRAtorjYv5LPFUOxKqEBtw4BbMlvLn7RIMBJCOA +W1QwIx1j0fbrdSv1BmHtYXSG43ppqkJcLwEyMEAFmYkBQugcGLLJFWpLPiVtneSI +VzgvIpBt4I3Nd27JCh/WBNS1APlyCiITPWYg0Nhohagtvfo16WjOGumIoymHwSG1 +CsOY65oE2+1W/1kA+f0imm9sNQC6dKTNW6D3w3a08DtAxG4YcXQZflcl/QtYiiKa +IBOnOdIKQOKBMLQWk+VBrq8tm/S0aft4x6mXOJvYpj4Sm0uqc5UBagRWq2Nlw15f +iCLePr8r8DZIBIS5syJown6cgjger0WI07ZItNs3Tgch95PDsZysAJMO9IStdYUJ +I2ud5we+H8hKXCITIal0771CYaysGzO06Lyhkixn8ilAGz3lsF+7bNvdXvjvOwA= +-----END CERTIFICATE----- + + +WUS STM KEYID 9DA5C72CA00BE14B85B3E535C8B07C83E85BDFF6 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAuqUyMm7RxJSNgAAAAAC6jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzOFoXDTI1MDYxODE5MTYzOFowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LRVlJRC05REE1QzcyQ0EwMEJFMTRCODVCM0U1MzVDOEIwN0M4M0U4NUJE +RkY2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqcVcYC+q/cZdHBoG +u2p4vKHY8+kzE5iinOzghxh/oFqm3hWKe2dKkRk00jH7P++71kR22hOjieal22Tr +pEBpmNO88Ids3+YWVioqQXRv23daK5C6nM+CNE7y0O7dcjx25WDCdEi3G/sEgStb +SFqOoUhN7Bp89eDYYWEeq1g52zfT02LHqiIwhj3/QWIyxx87uzYm4DKmu/EK3azD +ENXNJr8qi9tKoNlrRhp1BZ5vscIhNCUmfj1n+4mSuoJgWVc2AGRb0DpNpy5TEUJr +xpG53pk9en1IEl4w8SXMHPmpzyKobYgq39CLaKAvk2hd9WuUONJQAqQEYmanjP8q ++EsP4eYA0m6PYXWL5vq5737RRLDKKxNmAPn0BmolwjRUUIseK46RAC42DDBcAnxD +rtwZZDjy8vTavjy0sdZA4TQZIC+Vw/qgmumbPKIFyD+kit/DL76lewdKRMO+pUcF +0veGwEpzIRZjGOJELuHCqzLXT6r1gKmV7sATtwkg9w9dazMcYCxRVdlVQLUJQg5W +1r3Hw1CKeOCROSwCiez+x77Ffbyvhknjm7Rp/RJkEfIaieoCMzt714ETNrcj87Ne +Dp+zEPl3gb5ozmmdDuFTItRtLnyeElN13Ced++fe4tey0KQzBzjysSdetVmw6uTr +rcbi2/b1zZkx5ikvA023u/1fZzcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJLJwv+KLEPLh7P7 +y25kaahVzKYRMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEADB7JCMFd6KRKBCvn1vxPds6kzGuNjtJip0I74ybk8w3i +E/+n+o7syLsIw6kVVEtonnJ6SWjbf3dUesC9OoYZo49H8YPfY441j9Zow/VQtg6z +GNuQ4uAd0Y/4l6S1qnqGFBWBraVCmcVpiIrZQ4MJ9JaY8dG/uFveHjeCLPtzvzVz +SIbkaCyZWeZQwGgFx8L4QyPaajr9340mmHgwH1My+3nLew14f3Dx8oEnh3KMtdBi +a4YMzvFhUkctLfpmsS7YqhCniirgZ/i27g3eNqb0ZS4N7qDIzr1vJ7SBJntxYBCY +QGc/sRqs5+z5pWbZERgK2AtwsI6vursXX2M63l4OS/jk0nyOfIycGAugkT/wW49j +Y6cIAivDCOaiTn4ddEJ2DZLej5oW7mgPXX1QpR9cG6ivx6BisaFZGwvJdqbWXHYt +nVLNNEYcHEgCJdLo+2Ei9BZ5CTGmXZLftHqMTNjaKYsgOK2KJ8CaNRTpFXEN3pSF +eCEO8McDqDHfaLUnmguUq4VpvNmae2oNf1ZPpA7NwtmnLf4GYN1y8sR0LZ7+UXXl +SFLRjm/uizutcwTkfiRln4O7++/fThfu4ZDbBjxwjApftn+1eaosR/w1hro/fIq4 +ManXm5G0Nf1ysuB+Hw4jeAZqDPJ+FGS4+vn5FyrRDuLT+3yVKDytYE7lwaBYTLo= +-----END CERTIFICATE----- + + +WUS STM KEYID BD963E9AD574AAD94FAD6CBF416DD85B4A559942 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAux+yJiEhbskPwAAAAAC7DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTYzOVoXDTI1MDYxODE5MTYzOVowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LRVlJRC1CRDk2M0U5QUQ1NzRBQUQ5NEZBRDZDQkY0MTZERDg1QjRBNTU5 +OTQyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwh1IHfwo5oq0mrDy +fKQ5ZQjWMBruBXzH/HftMn9KH7q2pm68u4q/twj1jrH60zfaOWV3OyJQZyzfVYIN +4EEqTzCNDuJsu8IJmoCS+U4kOJ1NvH/8yu86y73v5i6TBWaOSFPPsEfjeAdDBI7n +hyKEMEwxMyh07h0m7jO35odqgdrPm2O+MtvczpW9pewm0L0h4GxSK3Me8CCAVr3J +S3eJ4+ZUz6Pt0AsgzlaYV4CH0AQn4R+b7sBswoeP+MuU8EhMF3cJAVMrs46BxwW5 +1xeEy29Bd0p5inadR0h+p7PndoXxSX5T4/8vYCLGLFo/pGI/ziujGtFOzupL2Dnp +tQ95AraZZa1jrDDbRtd+kh9AQ6K9Pe7QM4zCVxqoJmXFrKZ7dX9UMT9JYqipM/wc +bcNVsatC7W9BT072quq3rqFLvaS+eQKIOUtERnogy84RHss8D4bdOklAmrp1eQ4S +5hqFn6nM95hEe5zf84nt8AuiassD0KCZlVmDHb2t3QbzEs6SyBZkK2fuwf7+xfBl +6b8lllgPMs0WohV6wOlVE0tfN8FSsrMWpAmmK2JMVDJjLSAyUHsIIBxw2iE4P1e2 +h32sKshF/Pm+EJ+x3P7DL49VvW71CB3WIPFdwd9sBt5Zw51W8ISYRYOpwYLdBvor +FxsN2Ph7IW1zodzChc7tnHC9lCsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFP/wVuehw9swRQ7h ++F6p/uE7UhLlMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEALtt9U/UCEZSZapeRdaam7OTC+18IwocXB8exfIy+r2hz +zwIuj+3c7KWkSiufgWTGYHTl2xkBdJo94QYJQMzDtWLL4xJF/HWrpPD890Sx+qzp +F5Sd9zNVPdByLZrlffI9WvVCzT+SZOdZrJeoqK6NYDs5cfnsp0S/hvcdR5ctL/53 +CtNbdgyuwRERakTpWwOaU0iy3o7mecFzreLmFL74xD4YaHap4eTtLL774/H5mmED +sUKMdM8uzpVYvicIMZOkYfwYCqQLxaYujUvfcats5qGor1vyCma5uzizZLhnzW2x +Chj/3zwoarErDKIrbmRkc6skxeoS9bq5dbst6wGXZxWtFFtxTqgloZPGkyD0A15C +NStKlFHggDKWBtPxw5rETu8K4lokPRH/DZsiDaZi55iHN38ZniBNP4+rSmqyDhRL +9Cr8848l6lofzqAoz2zop4Ti76ypygXkS0VIVpnPTpuUUppGj18S/4QyZsnCbAvH ++oyft7OmPh+tQxrFJOC367i4GheByObTihGC5em/947eLajH1zHP/ObFTpCWoNBs +MxW4aeuvPd4C9Mpcu3Zy0yGgl6oghESB9GfwzJPgf0yoqbXJfCYMf5Da3H9IU85j +1pTb1oIEVltB4yFkFFhFvBXEJD5FejUAg3+8NcSXtmFTbmdkpUBDRE6CjimKHIg= +-----END CERTIFICATE----- + + +WUS STM KEYID CF23E59526E446C3FE4F13EB686F624D705305F2 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAARka8K0IXBQwEAAAAAABGTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE3MDMwMTE4MjU0NloXDTI5MTIzMTE4MjU0NlowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LRVlJRC1DRjIzRTU5NTI2RTQ0NkMzRkU0RjEzRUI2ODZGNjI0RDcwNTMw +NUYyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxYXNZCp+ZqsAPyHP +dBJY2v8M513hDjq0+MI5pN8+06dCmx3rSM8RGVpSBiAj1GBOgNJgMqglqoFts/xZ +LtdvJJqSw553RaypbuKUDT8kQTuLWR8VIA9x4UKeAmDOML15K1hICEh9L78IWRpz +Ze4T1x6GzPPrszQx6z+cLira+KoYQjTMsrxU9eqK/i/RhDy8Q6FHOH+A4v669k5i +9LdXTvqgJFL7VzL3UZthpti3ljmu8bcnWkqJr11c/rFLtWqtLlPfXSy7C0nf/i43 +vbHEW9h+2aBQfmBaKNHO5Rqf+aVtHsuOudi/YwN23M34c0ajgy1V1LYFQ5M5qSks +VTRI7QIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUKx/Q2FPU/8mRzeZcBagk6RyWyU0wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBIvRVU +FYOhI+ASo1tkOO3hb7dCDG+Z/oTpK5Qb+Royxyt20wJzINobjdRPPqCxA/k5vrwO +TxfhgI9pXazSA5cZvZaS55uIU4ISJe4/aAcnd0evhGw2okAKkS6yJJE9cBEj+Ovz +MVGZaffrSo39UpC45TTsvy03kevSGsMqsbFdEVjtQDIh76lWAQ0Julav3ssJN6wl +AsGhaNKw5Y3nn0F+ePyisTSmp+jwYj6g27W7VcmuO+Usddr63AkSwWKsAOThSgzu +lgtkQ0+FmaEOvEzwkoFuI6d5be+RNi6W7l/LEHadBS6olQGbmwg/iO/m6LEtJTan +RdPBVcu0Df/aqnkLKOw8g4I5HfHhYXZnbtGK/qMjptK6QF54kZ7VSXlCJz0SCWZQ +KS6t7WrGZqel2V02o6Y2h1J2jHxmgt1vGXzxZNq1knBfXb19yN2wgubEjYQQ92/1 +hlZ7apwHMv3ssCsMJWINcThdn7gO/LZ7jz5gezjwTRYmfLQUwWJEJLRgVEgeEe8a +ysAUkiDpYNotFoASZWoqGx5s+UQBqUDole9oi5G7CYvvuJ9+IBgybTWjacDzNDvu +2s5etVeUStw5s5AFm/4DoUgly159gEOXnUlbc0IfcIAMAg8dw1nbvXp+JNyqmOg6 +agA6mpuDGNdYarfCzE0OBlgRhrIwpYSFvbFsXg== +-----END CERTIFICATE----- + + +WUS STM KEYID CF23E59526E446C3FE4F13EB686F624D705305F2 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAq6sxbDP+xJiswAAAAACrjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzA0OVoXDTI1MDMyMTIwMzA0OVowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LRVlJRC1DRjIzRTU5NTI2RTQ0NkMzRkU0RjEzRUI2ODZGNjI0RDcwNTMw +NUYyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAiHdkQsiTekcene4z ++nFw38P9MGUsCGA13wOX/W6P0HBht1yjJnix95FeiK/d2YyQv8CqZCGxJjPnfWI0 +EhR//gxdrRO+LCUeDERIBVd2uVsfLoaxnDa4Q1wkUVNYuSQ/y4bvwWl5qggUNx0U +QKwscqxQL9TsjVYFTcYDQoEvUNHiserbIxId6ozDxlx355BP7B6S2MgtdlJwEvPH +p42MIZGy9I0MvSywp3RyaT6Mqu5Nzuwd2fsysJoHSn6ukNNuglMoUqh+2Zbc7zuY +k1wWqdTQ6l9jBrS1HBQ1DIPMvSRhS/0YV6yzoffw7YDHrJe3xJryJHPfHIzj6Foo +2pU2Gf8qo2bnFiHdfylFuGg5ng5P9b5PvpsCaaq8NOjnFBUwsbsBQpGEgHHnri7a +AUExk8r3ml8SdbAFY+s/gH5mg8kv25vw5Mny8oZxX83NvGrPBahiLCUdt3Pex5Aw +jgKH0m+HzFKWy1fkMr/JSFWYS/JxdTHlkmTagRLA1OeIkEzNmoETauWXEnVWZr0A +Mbf3uNKiLKWUlss7rsERom1rPPns6hxXypnGcHQVAOB4xSSHO4ANCjLdOBfKWwTq +DtTbNji6IeF6JZCyrQ6xC8ApLpqFBafoa7reTDDCdpiX9W9VGABkjnedb4IEnPBp +P+Wa4tCjrU72PBvZejKdh5U9gH0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOUSzvn1Jv3qOW3C +0iYJDQXHBAItMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAkgpH5sTQ85E7gXTqrVc/1nXrQxKj701dkyfInYX/pT/L +fmLgG7r4yN8gUns1d3L59HieHTYYloehMF3gKjfDPaW55IXKhv54vdBTfR+sltuT +/WzmGAzGJPcooyc50BgWRCG7M0USs2h6YbtUXCUj6IR7ktDWwyC+oeBJr8iOje61 +ZqxWPgZLPkrpW9iSX5xl8lPgUoZ9t4C4LviCAgTnzA8mH+wqZfekv3CX+ZwLuxNH +jy4uArwzZHER4qxyo1q4OryI+5gkQOFmkEKq5PxQzHqq2gufqd60W7B1Mb1xwQPe +jM9XlNA/WBGUwg4frY2SIipctP+rzMF0ShwHabuT+YerUaC51wkc9vUGqcfUmU1O +dPJA9knd6YNDL5mtOIhM62DNPDRbZWd70w+V40om2kBM3LceIsjuy7zJ+SqzX/WZ +heYNJH/QcA78cG34by9t+Qb5/1dgeFZX9LYaJmApawEGe26gfbRPyReTDzyIWLL2 +ddlQMGBDmMIhqg+bTOFfGfgf3wIOQJQYzXamYsRuOimc699bA/9azYfadckHysNO +BKL7afPasMj8vHgGww9IihoEkryg6AL0SkiacKGzel1bj18QjLyCMHdrKpQrWI4x +2GwkvsflRHoqd5JfZFnJEzE3v5UYNOZWZD1sgRSWNNta4M4Bynw5xvlol5kBpqk= +-----END CERTIFICATE----- + + +WUS STM KEYID F3C91574A6E773FF13BF0C6BAD7A7B65CF1C7820 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAsMuQXMP3UzkbwAAAAACwzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc1NFoXDTI1MDUwODE3NTc1NFowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LRVlJRC1GM0M5MTU3NEE2RTc3M0ZGMTNCRjBDNkJBRDdBN0I2NUNGMUM3 +ODIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAt4xfKC2XfmKljrKM +UGkjZQ0wu2bK/Xydbm+4zDjJhB3qGuthv0uBPtzLGDo3LiJy+wkCNmEgMkqcHrVa +G5x2hFT1nBvX+XDE5a7GaeNSZTwk0G9oIH27aT3icozRpohHzKZuACf4r6EJru3D +K63mufjUX3qw0KrFTm1YCOVHdy0BtSRaWQIQ3H0yBzFqEjJFllIY1csb12Ar95Qo +/DoRGKIa0wOXoicePdzm9eDzdH1nkrh0yLRcErwoCoMS4Yrxs7Tq7Vdh9WUxocLN +2WnenRojdfj1zVzFcwJQvXzO38CSjrpTHoJ7uSpPLhBT7h+Lm6IDiQ11QvouFKHm +1sGj2urZbHmdbDRzSyIf65swKsQCiZJ/XiVgrLRa7mwrYXKR3q9t0MbgpC1ZKX9h +daMYI2KsZh+Rsfh1k2Z8Hr203BfaeG4Y2jHIifMiHJOAJ5GZwVV50tEK6tKQe61i +wY0xqcaEKZiDDsuiqPRgp1FxfxbF3h6mkfPDH0R/oopzWs+V8xaqMIysrMbKO0l/ +Cm9DZOsap0k5MJ0kMzgCtqt016WRPaW4hpFpPY0+a9q0PMQKFF8gL1W3nwx5rksV +ZluC1knTP5qOy2Jj95rDKB2qiK9nCKWtbOOEGp/1onO6VX1+ZCG8ROYUCIqYtVfv +zlQLbE5jqh1LIbw0Diuewl2pWR8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFA0Fr0rC7XQarDYC +IKE3OoCXLlbqMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAmlR45TP3NEeua6X1YitO+QnyKjhZXHMITR4d7436qVu2 +q/Nj713VYKx/2rjpdUtZDTeThw/PVxljnIUAb5fr7GQuZ5tpZLkxQqa9VKLzrxYH +3+YUGhO1giz/lY5y4fhOgHK+oMukYoaEO/0TR35YJymBerzZ5zwZoYfFmxsMlnnL +F6L3RJFZ0c+ZzlUJCa+DEdP9O0viOvrIOlYkpkmTR/CMm+hpFYOvvBePBeXtHUqN +m3mXmB+S0URFGa5eGV0uw8r8s0E/+j6eCjdWB4fCW9vztZJZkAfgSqXrp+D0we4m +oZ1vyxZxE4pjmkBEd8ow0mMQf+sDLeKB/xTRTsRMd6PqiqvKoKnd+qKQn63Wdard +sVAyEMVtaAZ8z0CUZqGFmIMdixxMXBWnsNaerZrFNNszCciE2cPIENOZpk0xYZ64 +FgEBTH0KoTX/DOCTr1jmngrG6hqcrSPUPyPIUSBmyIFQQyD+Cij2sOJQmbdqryM0 +xU3qVMr/43y5KTSLSG5UkQacbU5HaUMFKZGg7mFgMpczL3FHeXMCEAs3+wW93/I4 +TD+uv93cX2RbXDjwBpxKNozOGwcW17FAOb6X12a7eS3aOdPmLWIyVnCPDOfgg7Sz +dPa1RT21UmCa8lQ4/U31CxDEbmHaNwvfp87j/kP0Tz815l/L8HOP08I1oPrnZ1o= +-----END CERTIFICATE----- + + +WUS STM KEYID FB17D70D734870E919C4E8E603975E664E0E43DE +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAu2TzUTMDo8H0QAAAAAC7TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDYxODE5MTY0MFoXDTI1MDYxODE5MTY0MFowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LRVlJRC1GQjE3RDcwRDczNDg3MEU5MTlDNEU4RTYwMzk3NUU2NjRFMEU0 +M0RFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnrdUHAmcvmGW+yvd +lxrLYH1abPL613a6XSRq1lsfAGNxTJ8FSxPamcs3F1AkGlXvM2nmzMWqmd6Z07wX +aYeFr/LP1dDjpc/JkhlN+o4R6FEWG/gGV0W9YuTCXAO2j/r1hNjS2S9t+xYhh2Mr +P2Z9vXGi6hhh3YEp8njRxI3jg9gHqmyODvlQmykSmJVuRf7wIvo7Q4lnNqXPgDOB +oc/4Xu5P0mI9SaLhTpjrMpXp4rusaUZ5nDPY1o2Bzn8Q/9a3knqhPUF1SP5mbFP7 +f3bQN+zDlezSGjnHk76WD+v0n+pYu49WeT5/OlLQLQK4Qf2PcLKLXlvhPVqvMBvI +kTF51QuZMr7TBgueWQhAA3uF9dlVBeYB+fid45ac6Zv7dvhF5waS7TVfRFcYi7Wc +w0QjaCDob8D3Q76NTFtenXfvtX4jVoQIonBx6rrot6P1meCZNcxSRsGOGznBJnqM +HVqi35gYZtsaqnF5kT8qacEIwZ/V1kLqQWpuZFUCaPsaBqnHjbBtOnI+FuqI91UH +jQ7LQ4s/my8DJ/OKAsc/wM0xj3kseD+IC8XdFhZ7tnZY+n/WdIfTj54DyoOxf4MJ +NprJOLC6YS9Gteqb4ePxVOlfPruTiUZGzewdjRKjrKwWJyG7OlovD1D+gz6ZEUOS +eWpgFBXhadRCojaXDqWvjYXf5DcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAY2IVV+0GjDphA3 +3oXEgVh6yNNPMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEASmRkpBymgqmh8tSXJNGm3oYVnhGUyrmD/837bN7vl7Ww +4N5StOjPsM/bdidBDE+Z9Ctik7Z7TUr7ipwVVR61YDtOYWdJiJnUYznYlU6vduhk +GNqBcnrtMBhtEW4Db9hCOdJPQhJEPPMDWF4637H+M7VTEpY+HHwYSwALeEUFrAJe +ENLjOjns8wAZJAa38Q8krtQnfNukbgdHNESaOjF4hULmT22G22K/b9/WWnLkmppA +6ATPr/tNHIaP9xoYu0tIo+QTLiOfnyjxlrzU9De4D61jYU1lf9pzSKzNodojHKCS +FJgg3Ghxht1z8Xg/RbZ36wMBxRPOgK2WoiQ5hJqEI2NSI7F3kWQ4IdcveGQV47IY +kmnHi/+pFKzeuAzTG+tL3zcUjAUhdnMxbIkDsbB0W3ueD4ucDqH4TODgxNGOSKn1 +ro2b/pa78aHqCWfON2JUTJ7Ls4rlHIflqv3cBIeXZ+P3QLQkEVh/8mKpJs+PsEkM +xPkmkicMDnjO9tRSWYcoVgvlloxINGcgdaGTG4a0QppRMWCtQjUyJzqkdayzqQ7B +E3S0C8CngjNWye5t4J6cjAcyIw3qXWvnnorKAmCnoIp9ATd9n02r2FiatCJVHDuW +8dgRp6cWY2+gE+fSFGs1oKEFZ4jfFj3wECD6NaEMCDo9ykcPWPp2DIkmUkCNYMo= +-----END CERTIFICATE----- + + +WUS STM KeyId 0056A610D53D1B3B6DBD14094B2DCE7E1F756ED0 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAADT4N/+t5rWmmwAAAAAANDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTE1OVoXDTI5MTIxOTE4NTE1OVowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LZXlJZC0wMDU2QTYxMEQ1M0QxQjNCNkRCRDE0MDk0QjJEQ0U3RTFGNzU2 +RUQwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsweeMq1lkFAdiHEl +nAqmyiiJaUAqpWdcX9UEELJSaCqQjFW4/+ubexFS1g34qXiHO8Eo0fItj6DMOVrH +BnRgcSOMkYGSF+f9Pzl2ikISg8AdGr33br3b0p4VlZl0XuZutjv8OA4PMEMAI3Cg +ms7t9DtRcJ3jS1/Mvd4fLd2dYuZdiEJJ8WD3uEcJpTuN5RLTt7n8ybgWT/SZMWtD +T/+V+ZvE1fBeC3XqyGDP9voxDdzqpsdnPG2Pi3ZrqaovEbMW2vIquMhgAvbo4hDg +aZZpSZBFyE4HmlPkukjWKRj32aLCZvKv853DGfSKSQbgHdAdJASklTW+7EJH4a63 +je8hvQIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUiAYnc9aAgMh6dKgKRAR3JeBn6C4wHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCH3QAT +udWtMoO0l+zUNAxe3winb8jKOeKX6vxEgDWqr7J4kNNdgKYn6LwH89xik14F6tGD +hX2wFzQYH/idkAJUqs5ekAWmm7WDLcvrrcT1qTtF6orPkxbkyjT1ioUppZRA+6na +jMdU4OdEHcjgjpfa1bl8+wtwjEAT7LBEYJcOuoz3kf1wl1a8+Tf/vCVr7LsFjsUT +1GNKPRngPnY13k+TKSTFq724VzFJ/g0P6FBhoaX1aeFTz1z/5lIPCsA8spPRNLXI +rzKl7E+dA2O1J/iVbeEV9siqq36YgiSi2BonpOUu/Bz8fe7QiYyC15HXx2GDhd8p +qz00ourynOYBt+Cs0six7BHQPvJ8gcoK8pIBW0e43tk7zXRH80mDfmGFYxXWHKjx +AfvmsZ2Dd81QcoTNzZx7B6wGzd/Qgvv0kXtBleWrU/wgiXgRnyERc477BFFW1NSN +A8uebIsN+ZaDCNoFP/Ozhq/AVh8lV+2cJCALnFZFguT2rG2X0tBT6P76dRX5Ih/W +KhSuHGOW3DNCgWtKFzxbKUSf0Of1H8jvQQI/R3t9A/0c96UDYcaWcMB2xmo67Z5x +ughZN8SsEzoP+dFmRKAip8gQ6mipQ3pRhzY+PmwmDrv4OFPaoGDbYQsl1zcsOktx +wb+LyuKaBz7LH3o58sEEAKZWAfBIa5up+6Z+yQ== +-----END CERTIFICATE----- + + +WUS STM KeyId 571f806b47cce79bfa35947ced88b8d1005ae09e +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAADdSUBbPMO/3cgAAAAAANzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTIxNloXDTI5MTIxOTE4NTIxNlowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LZXlJZC01NzFmODA2YjQ3Y2NlNzliZmEzNTk0N2NlZDg4YjhkMTAwNWFl +MDllMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnzByY6FfN9JwL8Am +BmHPyw7ZI3/kTPKJex0HgY4S6da0/KUWk+ErYJD304ULtCLn6nLerMnnnToCOZ68 +S+zbGV58wwHQi09IWuFe4CRj0w+6QntXjoMN0vo8DZZ7E183hkTCXNt0SJUE5Y74 +efwEtSbxY6TiyG0/WksbEafdtcDD2ysRcGqUgY9wBxeMFlsCRQNksB9ZI0bXoG0n +HwXwoxYk/eH5oBqpfHIEg7PgT9lcwqg419NlUuusUYhK+V7+oACxrlmalhID4jeK +j7hOo0JlCGlHX47MfJmWjDeKQiQAOsSdenHaKYo7CKfVvbZ1QeTbFB86KplIiPr/ +WlvadwIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQUBb6c7K0ZT3MdaPmk8DM5bq+N9nQwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBTHQL7 +Q4MdojYupIFzqCKiN2U9dy1MkncMy3RozygBCPPOudsz30GdRCxI1cLqDI56nAva +4BnnGZYK1DXdhAjP5tujqK21u2Jm8uT+zi/bjOKfBtl26XfoJQdi1W9mDrmmlIhl +S6VGuRMsDCqW7iBh0p3cQ/ZmBSLnvnxPafYZVVQU47s6UyEqZowmITh74eFUUlUH +WAxWDNPja9SUlI+04j5/WUpoIedBxIS26FqzeFdBtV23xTyOss4miIa10eMNgaMS +5XcNZFrAoF1A95BeYum5MHQENE5uXhRiSp8CdAdGlR/THFfm/Podp7ggwg6ENLFt +F/i43oVN4Bd6xrXpc5vriciRU2npVwAWhM3J59BzXAIlOf2hV94AH86exJ4oEul4 +VNkfv6rktIsTX2f97JCtN8+7xSkTB8tuV5osi9+gtLSxt95Ysj2hndWp+jYRGF71 +0eNa86rnSVpt6r3vE4hM28+WxlRUeNOpkgZQkX4mKvO1mC2i1P9+5IgB/xz4vWjU +czj72Bfa9AD+JkX1MDfuMNUoK/bAdSZOqA0hQ5QIUewVSc4UYuDxxASxeUHHbwnW +TjIWVoB8X6MttWgCity+xUFvCKpRI+CrIrMFjNUrwZKEtrj1k1ZUsS+iCkqOVU84 +K3yofsEciF3PCbArPLaJokm19G8xTIbgaP6hXA== +-----END CERTIFICATE----- + + +WUS STM KeyId F3C91574A6E773FF13BF0C6BAD7A7B65CF1C7820 +====================================================== +-----BEGIN CERTIFICATE----- +MIIF6DCCA9CgAwIBAgITMwAAADqk45XRCFCodwAAAAAAOjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE0MTIxOTE4NTIzNFoXDTI5MTIxOTE4NTIzNFowQTE/MD0GA1UEAxM2V1VT +LVNUTS1LZXlJZC1GM0M5MTU3NEE2RTc3M0ZGMTNCRjBDNkJBRDdBN0I2NUNGMUM3 +ODIwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuLz3tl4ITAjHvQZK +IRYSat1T0RO/2/G7Qvt/YfxSfYSgMwdX/HUFDjURmm4eBMToLlPFXKdhciXAHzk0 +yCJudRzfTZNRmK4UmdCabeN0HQwP7fY3EWrCS3IYBKvwCZSV6u9Z7c2s24g337N0 +aS1z1wVuig9AV162fV2fEfPVk9b0+iXakJNTwnGku2GPArxPicMYLCkLGwQSJk7m +GT3NxupqZba5vLDWrHszO1+fT3a+RpPbq1O7WbQkmG3vULHEEID7MKpcuQo8prlF +Whbrdfm0GE860UXXaZuYP4k55lzBDvDshW2eIDQEGqD1hwz40k8PLaoJEsDArvJO +yo+c5QIDAQABo4IBizCCAYcwCwYDVR0PBAQDAgGGMBsGA1UdJQQUMBIGCSsGAQQB +gjcVJAYFZ4EFCAMwFgYDVR0gBA8wDTALBgkrBgEEAYI3FR8wEgYDVR0TAQH/BAgw +BgEB/wIBADAdBgNVHQ4EFgQU6Aj1HfkzRkkpHwgmsYAxr9IDZLAwHwYDVR0jBBgw +FoAUeowKzi9IYhfilNGuVcFS7HF0pFYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVFBNJTIw +Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcmwwfQYIKwYB +BQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v +cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0 +ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAuKjji +/9Dx7EhWQsiOrC5UgFLUlkaP4zsdeo3nQpbePFEBEaIGisw2AJIUlGHh6Ev5oOnS +7fu322dG2owzydh1RXNbP2h+RoPO4A+VVr7bz+a7HURmfFJUM4xyFMAVrKQa1/eZ +Zjb4Xul7gkH7lfgqsQkki5hpCkiDlkD/IJvxqDemcMfvXh1ofqGkEZeE6BYkbgFo +SppfvbR15lLRahLGWxijHyXMMs077yz0b78CKhJuQa0uPFBIt8Mj2WZrCyBEqogO +l78S6eTeR3m8z2pONkoLxf0pVMDJO8RUanDxIdGSRKXMOxbl8UvLYvoyH+xyFnh3 +uoHRD+5ni4PcLxA51DyAg1Qb82ooUm/rfLBoHibsUBBAQTvpD7GpqzO9BKuiyYac +ScI4B8zSGK/AKQAGMJBkXQcoFiiBVi0WwHHyDSD2aYYprWDuubcIGKsYXOdYgbZp +RRi+zLzKRzWgQ/wqikkPtHM8FQSpNo8u30FCQvFhgpyKcE1h9856S+PPKnuw/TBK +hGNqquBuP6+Kqjyh/ApbfJxqXxaPp/F5zWEdj1ekYfyn53W3iaed9TJ/ZfIeZLll +mcaJkKLqm/n0khWuFvRF9b24YqPd5nxOMFuM30g4SnShQvQwxy3WZJlPO6TOemHh +W7FUerzGCG9UEjlAXLOqp1cDUjsWdozOZriS2Q== +-----END CERTIFICATE----- + + +WUS WEC NAMEID 19BCC8BF66E8EB3575C1E83ADB8D4E1612B56B0F 2 +========================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAsTNZAJHUzamSAAAAAACxDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUwODE3NTc1NFoXDTI1MDUwODE3NTc1NFowQjFAMD4GA1UEAxM3V1VT +LVdFQy1OQU1FSUQtMTlCQ0M4QkY2NkU4RUIzNTc1QzFFODNBREI4RDRFMTYxMkI1 +NkIwRjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJmHxCacuTkIv2UI +aaOU+ZMKMbuTmTbGEhH77KGkU+3ChjjtNqpx2DHux/1bcLGPE+pafQg1HARUeoLT +hzfAeqzU4jEVSJJuTnU3RjZIXskHpmgiw1mTmn5OnFPl9Orwip7BOJ1nsFS1uXTU +9BUmFn0fiXoq0eMqk4nILi+rq4FSsTanMj+VmqcpcfNnrovDCRhS/4NlO5kcWizs +Az8jdCh1NbpcIq9ILr9hUvd+zFwM2+SQgir7MBYT2m1Ffa+rEVVlhub35z0BS0eW +Ng1yjz5ktJff3e/7WLFdihm1HfUFV+HjMNfemXRQ90VrZyYfg/PRcwcu0v8xhkNw +gn1z87HFrDxdC07vCIzj2tOplT8r3WkSdGP5W2euUVJ3pS7M16Gh0/keHkTTHbbG +1MRSABMGZH/lwfYKQOkEgoqY+WHJlGwZZ4nihBqP56h1UFgpcgoiHGnO8se/tLF6 +7fLtrLygHJdtUe6UpURQiFWvN55C16TkrwIIwsAwYhyaMLRY07Bsj+vccvjRHM24 +LbVmj8Lq3d33nEcCKjUxpOMdTfI7WUgkDATF1xHl93aCkfPqAoPfzWmnFcg8xK0h +zRxdRXx1XjLPZ412HUnHDB8rWpFEO8UIgLgZ784fi20ngAoGJ9Rt5QlOuLXGX834 +KpAUKmjl9F9bI1xpPYFoBBsMBlZLAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRTW6EdZb53eOlh +P3FnxdAH3/LQYzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAHkC2gPC6n9yqXmrDB/HRxWJ9krLGJZKY8AEuodKKgWB +1DTGO9laZK28P0JEQST3mDrtcJTyrSgcXQu5kevUALXdHPHLeOb9BwqiviXaRLMY +n+TcmCROvvMJsza+Kqv7wUbKZcTpWWiIv8THhNXWk9vsCL3JOZWLGyZL9QJQoVoF +mug78gUqepW73K4Mo1r37rEOvptZE3s1pVlwKmedoYyHg0rLrsj9J29z+U+LGl8/ +QIfaGsL/WngBvrugblxwBQzv/cS+sgNIUxFf+N05SOovYDfGDwG7iS7ci9k3hmuw +bW9Sl9bM0cHl1odCNMp2MRbq13ctyL1GVdetDRcLPOU7s/Iy1CSd95zqHlU+Rz9n +vDrbkPTuhQpKoKNhHMPACyJ6AGkvi65+zW+YJ2i0Wbw9c/YXTkgLr9tMV5v2Rk8v +d6DWmDzQ6X6p/nqBAI4lImEfAwnxWJ1IU++lR5ZP9pK5Te4FK78DZ2/23CcLCxBn +YiPLhoIyioMRuntoszDJUopfAugV/ftKU3orxCnV/Sp7uOHfkGyoQRwdTZ0nJFQE +rNuGsMH6iCneDwr5UtSQ1APZbc3oleevAV2mE+QSQMUGzzKCsGT0ixe646c78VgR +OubTjPd705Ncy/f61dpEsH5sN1wxKUJgBnuqDrmuhK8s4p271r+73w4lzwV+FX/Z +-----END CERTIFICATE----- + + +WUS WEC NameId 19BCC8BF66E8EB3575C1E83ADB8D4E1612B56B0F +======================================================= +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgITMwAAAFWFaQ6MtCvR5gAAAAAAVTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE1MDIxODIxMTEyOFoXDTMwMDIxODIxMTEyOFowQjFAMD4GA1UEAxM3V1VT +LVdFQy1OYW1lSWQtMTlCQ0M4QkY2NkU4RUIzNTc1QzFFODNBREI4RDRFMTYxMkI1 +NkIwRjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKBoaevSwACw6z7w +onOQzBUqLLaDewXCXW0W8/82mbbZQ3XGJXp7yARlYs5bKrDrJx6SLPRAPRxSRRt/ +X9VrnrYY+lolToGclUki/HTzU7YURCQ4jSLyhg/uTvg4TCiaWIwNs0wLie1r+zBM +VvIy+bX+qvrx023R4Uoa8Hf+8GQARrRFXqwsfG6A6kqe6w4mV0651KDYGQORbtzn +sYOHxBlPOr4qfJFVV+7dl6tr9tbGgkwTJdhZaebltTSaEQqdOUMpzPcQQfvPh9Me +EHLCFj9CI1sMSoKT7yxk66UNTVxSnqeCVboKLkgP4qCNNiLeB7c3XQPzL+tCWBq6 +C7Vp1VkCAwEAAaOCAYswggGHMAsGA1UdDwQEAwIBhjAbBgNVHSUEFDASBgkrBgEE +AYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYBBAGCNxUfMBIGA1UdEwEB/wQI +MAYBAf8CAQAwHQYDVR0OBBYEFPpXWEIYVOkdSAbJwVO/prFRh21MMB8GA1UdIwQY +MBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRQTSUy +MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMTQuY3JsMH0GCCsG +AQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNh +dGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkqhkiG9w0BAQsFAAOCAgEANvze +2s9QwiM8xO1V/l/ngvwI1wmDIjKa5KEHkTxb7sBjozYHrqC14NySiuwrXissOTmU +Ag46h4GAfG+LwxuCTo3uhn88CTYkeXnvf+xqMUilChPw2MMpwYLf7QeDybwKwRbi +dr63aMzZSIgHUAeTrbIiziZQle73PmVAbH7EBnmrMn8jvgl7tbvnsOqlEQutnN64 +GN9jfGYEw30eDr/wk0uUochScaald3vYQEub1jW7ApJfWEaAPIVTQUJ90vy+4IDS +2tAmYQJrJy2JrqNvVfmGtvSoUKIndBLu8pXgCgKMsB6x3qz+ZI1O1Rw0W94tjvsH +kXEv4zTJMfIAz2piT3H9KZqegRhfOIpemM7iAN9qS0aU9Vz/PuHFk0DBjGnXajG+ +n6LfIV1Q8qmSzOc+j3hYbesEXiJzq2t9IQAofMttJMo6PrbIpwXapR/hx6XAirpH +uqtY86aluU4XN1vAIKY9710m190VhLBenOBC8GuAVDSR+FZFpz+VmByWG0LaPi4v +ebKHVnJpbEUE0ZqTN9PVWi5uR0N81uxQkHiUTEFvx1dOdIBITLj9s/xVvnZ6Epmk +bcrRafowgZV2mFAxhQAFJGo1rpgMdTBZ811BoPyns7C2BoFim0nykdXbuuwLzxfP +KfL2zJeQaYKQNK1ooxPrKq4X1fhoBAlL26cVj5M= +-----END CERTIFICATE----- + + +WUS amd keyid 8a0578cf56146fea399af903fb5b0ac36eb2786a +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAtrQ//uVpuGg9gAAAAAC2jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDgyMDE3NTIwMFoXDTI1MDgyMDE3NTIwMFowQTE/MD0GA1UEAxM2V1VT +LUFNRC1LRVlJRC04QTA1NzhDRjU2MTQ2RkVBMzk5QUY5MDNGQjVCMEFDMzZFQjI3 +ODZBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApJARGA5iYy3n+/KS +unR7i/l3wywjewn6qAmJn6S6EqUg1dooc9nykfqApLPE/jgeXbC8IYrbXX6y68Os +XLNTig8SPdje585qOg3UT3+OFtgFXJvFmk6Zh63fSTcHNwzjVnzQWZSfW9Nr03vp +wjHLTalW2wGzEA9/Zlxu0tqRGIG1ZyT0x+dlIvdLwYjs8uv6G4OTDMo93/OCPCtc +BAQvnX38v8KGpcKVXRRyeAdv/38lmKhv8Np04Zg6mvAcimPm5lYa4xVOztCTeUlz +A7Go5Wo7YtlGwr+4LsE+Bs3BoxgQcFbHkyAJYNng0P9UG2kGK1ylTrGXBjSCLQew +0HKkLxR0KMbjLdGZDL+3HaxGphAfFRbz0OnuUeplwsgT7is3nbdLplL7txerJvoT +WCyb/EVm36gKeaIa8iPGHFggntjx47ppHHlkFQNMmDnUwfdW/srhcHOC3iVrTmbs +qd0Ks+S+skHAYc7DGsu1kroIfxyE6DDx6FGbjEfKh7uYqKPY4vnvs4ISwBXX2a+p +JSPPLnuNd6Qs05vCqP6Op1VN7609de/qfdpUUQXvuZTmm/u7VP/dSiR+K9NJMa08 +clyV7ZFEjDoEGTCVyDqsXGpxBG6YPnOt04SANJcSPiL0w24VqmM+5CTCHTOTj7mG +ep7jpVkE0TYv6YNBT1YwD75Wqx0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEUn/X94128dzQ1+ +Yc3mtKhWnV9AMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEABO05pPtCLJ3z1utgioAiEJe/e+yS/mr5BgBiI50lgdjf +1HZVZcCX8cs6z8BajbjEtoKYo+SoGrhM26q3McTQKXdOlZPQZBKKB38MC00Ijuw+ +L6WT7WI9WM+IafTXpL2rQh6+zWIku/UW4c7Wjl5gxxSF1+rfHisGUKkTYul1BVJ+ +VNXK7W3sz1wRU4Gr7Xqdtfz5p+5GImGITqN6ooCORnSCbCAKUc9vnJWRdQ3tl81n +T3cko9qApy0oO1BUzzlR93a5/hHax8khlw+aICL97nmXUgxvoHNyOPByVqR7UkL4 +us7u9QBo2FUMmWFknZ7qhSGB+voP5y4IHAaKx9wmLQ5gxW80/DUuFglOWSyZG42z +cABsLJXtsSWl5jK3J0sypuoyfQP2jBHgxfzLgX1wgQraEe/qvXOEx3wGYbf/R1N8 +7oPKUYJcwAUd+binqqjqkz6fjpMGtcE4sygMhMo86JQxXinzkKRgdmo3AkwCYHTz +n7GnwphxYp3lNhL7fXuqP1Mc1YMwtUeuu6sHP6c0HfE0xqLFaGhwqwQLfvz8eT8O +F7TUDFCZ+9pOCkIKBD1XT9PkwLKKQbV7C5xQN4qF9rEcHpEjTIIhOF9daU4pWUUn +wUv2/7IVAp3I+CXUwTK0Y6ueoObUleO7uvtjZ8Oer8LrC4VWmyibRttMcLHxPc4= +-----END CERTIFICATE----- + + +WUS amd keyid 90e007e175574201a7a8dac93b323114a887e1e8 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAtv4c0UL6+4w1AAAAAAC2zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDgyMDE3NTIwMVoXDTI1MDgyMDE3NTIwMVowQTE/MD0GA1UEAxM2V1VT +LUFNRC1LRVlJRC05MEUwMDdFMTc1NTc0MjAxQTdBOERBQzkzQjMyMzExNEE4ODdF +MUU4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAw+4F1e5UYcaeGD5z +eyMTLwthHfTJUNBO5BCZD/uPVwfIBw3vAWqNatlLOUYFnI9iROfAItBoETGmg5R6 +ab8onNsVTlmts74g0ehGW/yNWBQ7lMuxmclpxmS3EKbwpVC8KrQFF0qknCiVicmE +4W5srYEZa3DmvZsXg5zqkFr14Vuh7r3z6FX2mEgVulI3DdqrxOf+PmMLVAj3RLbR +6tfYF4bjYBsDsrRXUwgQTldYYK7uBDEbIeTzdzPfcoq7ORJYvF9XoFz2VFqCZJ0I +FsegpNn1QrA068sNnHylMctDVKfHS2V3SW0m/EB6ozy7y0iJrwRtYo4O8fqSgJ2I +DIMlEr+6158okp7Q7y4yxSdwcuUcy2DxxXsdAoAsQJTjpl45Urxly3eo0KTcDs94 +j7VO1llBPUHgwgZEAxsq4w1u0HJ0nh9o5WVDOW47xMxVkbW5MJ7y4nv5ZCVl7j5J +DUCxIvJW3UsG/uSiYNlDIHL3U4xx1CFmzpP84tiT2w5HBp/C0FHE8E05mnGsEF8Z +X/29Sa8yTpFWCWlOJV4wXR69ZX8zVKaf/PVr8YvPPxC5x0sZ9ENxjf4shoGIbio1 +YaOBhzfgW7lpz4l6/eV9DA6WEFAKL4AhScGLwLBjGi876ZYIxFpR6Z5WM1w0s10R +zG6WDaQ09abYrDjyvFhg2Zg6UrsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCPanc2Rh+Af35Zl +LlnpvYSSY33CMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAFujhUBf+LSkI0gICgzeb/OVEpRHrfXe+H8OVCk4ZtQ+a +P11H2REXtPEmNs25CvgXYY4xyWCvmhOieRbneRnY/qTgr4Ph8shAxz6ClTsh52yZ +rzU7om3M271hLA0oaH9cias74K6iljYfe150lGMhBSk8dQ7JeU6alCC2fcBSZyKM +0sGl7Zk3Ayl3zB9VsGI+GXIGpWtK0/rnPG3bX1LA+t/Z/NoF9MzSDjcRASov68rH +bcNNlh9W9Opcbfa4mkWevT+k2oCI4RfS8QO7RZ/C9vefi+nxwvSWkqh+9yk3wgSa +IQO+3h2sobb17/i6ZZ6Fkk1bFp6FziXgsjl2A+CR3X3LnXG6BQ865hsxPoJqcDPo +HUKnyeBefuik4R0lbnQXDjjHp8YN1jy6oOg9dVpOWspz1PW9neG8Nlk2tEMeSp3f +BNwqL8oecYxGdmzlopyblBf6lxzGi0/O9Y8CYDvkFpAvo1hyNrvYxOAZVjH3mnfA +o5hAFCALdyUuYchr5IazDhXoQO8mDD23cdcpo3huu2vfBFLfG43TiCOpznPC4upH ++9HMqRVX+5ucD0x23pCNl16yrk7dRnSuTMT4pL9oTg9zXXI7JicwN+7xbDMoDzZl +ppf/xYHYC3hnPYF6h6mzSY6G1kORRjWRIf/xAHa2zdVoMlMlN88EHRMQKFtk+fg= +-----END CERTIFICATE----- + + +WUS ifx keyid 0d9969519b979d32ee4b803165664e9cc86f9d0d +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZRz6jY/vbsZQgAAAAABlDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIwNzIxMTcxNVoXDTI0MTIwNzIxMTcxNVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0wRDk5Njk1MTlCOTc5RDMyRUU0QjgwMzE2NTY2NEU5Q0M4NkY5 +RDBEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1MwPa4gpzcqyR9kF +JYvYD1KrkdGrmfCBv2dZ402NLppFLKwB62Bh9KZMisMNMs4j0FrFCrYNARink3tc +En5XozNbFM7xveQWhCJ+oedWMEbOrPoFvfTMRMpjy9twtSuOfYnGxBG7OIj+2gzk +WO8gMH4zBzOPcgicsThlK2fvK+nPAgEkljDNiXQ08AvN+uM5i9j7vPjRqZ2ybklE +FIJ/PFZh0iBF5QWOvpvSmujkvP5f97kaeAAowYGyo2DUJXDI4Sjgf932kWi2NHFj +V4X8I0172F03aLwf+Ckgb7ner1feNoz1JXVmtQwGiI7qMh+Wjpe7Raf+jUsZCBw7 +99u5UqMAcK8D1zKmpYUoM8I7ZudFRF9JaugFx9yIaUnOL9e3YfuKLLFbwaSd60Ch +2FY5YGokokfy7kGPpXgbqPwN6cgp9y2U45bTvw454npVs+cF2Oc8VQSb99de0r3v +wgNtmHhTztxaeyIeCUfqobKAS5Z6IKWGQ45Vnd7CoBwRx3HveD91Z+gwKeAe/qWR +sl12Lb4s8f0bavtHqVU+Xlfe5K8CIrn5u5TSRi+6cs0b5NnKwYdNLr0oMx08rtsS +z4DpNPNw4t1MDqeozJW0PwSjY1eMNROMVazaSBP3sYEZXm3eeCL8AOgYwxRaiZbC +fTPHqoQD9nJY+ByJAGEgLflzsl0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCgyqjA87As0ueot +xDAsG1mpiZOoMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAMFWEu3XMXkUKdFwrOGPWp7zw3mt2yyRP4wpkGhgi42ty +IKAoHuqP3Q4uNl43kxiBKlJtnKKPY+M4hsjKIsul++TtkHurueYmcVsNsbuy3gKD +XysT504CmlzA1GZmVbXJo9mGSqb+gureTUuRA4v9Xo3QW0GcB3sJU2XmVSRrOI57 +vV1vnuLnHNA0+Aafy6DS9S1fuQAm4aWm2xXd7iLWoPcvaSmI/XJmRn3aLktP5i+G +4KRhmacPFCzIWrgRjtgfY7eWuhMgBXOTPjMBvJrHpfnSxgFMsUZq6HqpfgYM+CTu +wI1gPp9Mo8o87dZpf4vURUx00qpWQeSRAaScJe5FiVf0IUoHmXCGFIWQ+xN7G0uV +WR/siK8GiFb1HUEZBD5f8bQS0n35rBjke2t6iiaPgMPcu4QyNRzCfMvHbSa9ZigT +e/79HRMwwIdp5jli2crHIbIY3sRXmMYZ1xbhZzT9FUgDDyAlil3VbekDDRExB1iZ +5pCpcBvnglqaanpdK/guXjrJWnQ1ZYO51AWgyZYi9tAg4LYD0Hjs5bl5JBZI4UJF +Hj/T7lspHb1zHVuVcY4lSimHrFi8/yRpINPQ1BskyAsYKtUjujTlB1TjD0YWI32t +yMi/Lp7VpA+yhwlPUfgjPGjp5Fzi3YpUnjHugdNLAP6d4ozBr49u1cbPZlv/ayc= +-----END CERTIFICATE----- + + +WUS ifx keyid 18b1af70b93f991972f362556a9a3fbf4bb24e0d +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAaszvxPl+DetsQAAAAABqzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkyOFoXDTI0MTIyMDIxNDkyOFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0xOEIxQUY3MEI5M0Y5OTE5NzJGMzYyNTU2QTlBM0ZCRjRCQjI0 +RTBEMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0BYDuZ9U7ppih+Wk +QoaQLKElf0ipdG2v34WT0z057YPeqgbMv7mcrLcsivrKDYl8xH6Lf7USzrR4gUOO +tAxWHjSHXMK6R2CIJtU8keuJZ5FWEG2DSNU2nWBDPlIQUW+/d2/486uKchRacqZK +q9mn5v4wumkJTTYcG9K2fmgB2vz8fpsfHPYGxRzSfQ+0dc/172SlIRc4CyUhzTT0 +zxlVszq5AjIMMZ1lp26kc/mf7FlrJfGtKy1REEMSn+iboUqVMhGbP6GffgzuZAa9 +t9DDdsWdcw+118LmzdUFFawafzKONH/t2kWDouJyxlkGst6VU2Zeq8AOATap3ewB +Dsxeg360VNUzoT00ElNU24y5DmNeIrKrhZvk8Y36mueqMGcJywh0jgbdQE44SBGK +vLE7fYHWGBUvI3x2/bhvglgSidQf5QpTJtU8a2Cfb8QWRXIdIlVDxIBTqBjziFxs +jq+2RXqO6DZE+SYhLvfzrWa7NAF3P/z/GFHyKOxsO1O/+sNi+VnZJKWpNuq5T4at +OGl8nE8xrOTkbd5hMnQ+ZKWUB1Gs3SPLImx2u3izr0FTF7GCYd1m5CNwwwVSuaoq +UZI+j6tC6il+NgaB0laCHEUvej77I26FTXJM5ZzEUc3KbOW5K7LUiT1tF0qhmgLg +hCaf9EIkvAiMBfbPbU3a0t+UQ8MCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLlTYpYPZ1AWBHly +n1RXqOXcj7zDMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAJlNYbrdiig+fB35bVqUujnuZzgXQbjLJYs/OfkAvSU03 +jOyIfSVhC+8Q+gcnSOuZkfXAU6ZgtuyhHGuBVrDqLZ7rjJEDMbIv0cqQmNY7il9V +hqGfpm3iBc8Ny0JxuV3UartLJhcs+OZHLJ2q6COK3TqMkWR1udDP65reUTSS+AVW +MnjPNv6JZj/HFrH6niYPk8WOmbyYwM9oPCvUAYttmkPxL27zAHHUy/ck3P4f6gUg +cysEvHqtSAN6hI0pzEFrpxvdUJmRuN1UYjD+xQrRccYgel2XVeMFRdfwxG9imadD +r8v+QYrWOnpGL/qSuSytfbXqq3TdR7w3v70ZtITfSYstKO9sLCews9LNMrAixPbc +s+FzGcmLeo2IEivIKImw+IAsvDqc7zwQ6VAQseyzB/JjbMUugWSUI8/FfxRkIYHs +6Cv65443CnbwKwEARV4npt8froaBpnxHdzryXu2KEcFruCZnKPAU8qi2BrbHrXcN +WbG4tjGS6Ud9x+7CaHm4J/HUXqlg2GC0ShKawiz5W76moS9oP6AA+cRKKLAbGqYt +h/iYjCCXwlgQPf0TSJGnCBOkadWdTLl4bSkyXPT/8HUWZ6zy4I0sdx/7gQE506ss +x61mmjHXrUgi78akAc0Dj02TRmj5gflaJaxPNLZnZSlmaMddfdS96nK812NQHV8= +-----END CERTIFICATE----- + + +WUS ifx keyid 263b744d85412bae6e13e94a53c235185ba4eeec 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAdqY7eEpfLZyEgAAAAAB2jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAxNFoXDTI1MDIwNjIxMzAxNFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0yNjNCNzQ0RDg1NDEyQkFFNkUxM0U5NEE1M0MyMzUxODVCQTRF +RUVDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwbhN32zc/FBVxFKi +HX4LlDyhQ7KFTkoTKMcq687Nxt344gcsO5mrlqBKLli9pjlG97DDA4QTQqcmb3pE +Gj0ehswvNAxq1I07LSu1VRUSiOlXB0cgQT21pthQZu329elZ0uNNiKXV0Ml6jBO2 +khKoH+Web70ImIWyl4pOOhVDipyGUvuqKS+7FOZJ/AnkfZGBLQdg2TL/SjAj/NLj +tNXmgtnvxD7rBaLM0u+DQGCwAVUzZtufKg/vxFwhZz9KbHGyCBAkpw1/+bPGr0eA +IKDMfckLV69rvNbixBnqcYMRL0v562gboogbw1Dj1l8jiaGJF5EDaYuppSxUG+ag +HgtU71sBYaAFRdRcZzbHy/yreXe5wF1R5hCwCeZyjxdV3wXZHhQ7+qa8naE+cLgI +0yKgZ/hDqGkBNGGXtsIvcy4RUuVAijtgC+fWJKOwuPp0cDZNhTvUSBAxWdmSkrmr +j20T3xWSaOT7D1f//9hYT3v1FWSpjg2FM0PNOdIoVxqfnDZAI3NXy7m22DYDSNws +jYuuZ+4uNoGAG6qrj0yc02KkqDRf5R2BBPvWJ7sgCngfpr4VRtPLjIRgJgyqaQhb +8lS7NVv2MY3l+TL9Y1BInDBWr5hHzRM4w3hfJzVR3cywsvFNSBlEViNaCyj56hQe +oglQnKlADqBKAnCAlIVCQo8hgx8CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAz0UHbPy4dsbXvd +NOHadm2YB+WjMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEATwq+bOJyMhNjI9/xy/c9+gWn1pG3cafxt4Y4OlHt0JYh +Zbg1SMki0JeC9mVFyDX6Br0xYhq2N6Pvx0ziIc602UeSH5MCFCEkXwEKL6oxtvAJ +xNUUDv65QETCAs9Cn1QOZbWn9iS+7P9R3iVkdhJy6OLm1UOiL82io1EXNpHpFuUB +S7NKYpdWV67bSdZ4nSBLeltRvUn6eZbVf3Ll5G7/0iK64lc9YyRMryXdB/KKUVI9 +9+bepygd/nM2P43cBhT+KqQ7OwMiI3U4fBOvNjdqnsB2U1hlha0h7VCE1044iD/d +/5RPQx1i+26bpgYNhp2gokRrxg76QwJLHL/vCvKXg9wYAHhLamQfzEx9sH4ew3AN +hbheWEEYoqTK9yFzJ4XGY46msu5Qp7P3SCoBjGXh1sJW2vqzu1rTLEJH+pTL5LoU +eoRPc0W8aGVppsa4aV8Jqr/EL5rj/r7Ykpr8ANMve6Dx3pKyye25/i9QWUAOkYjJ +4RBSipTGVNuO1ryYVB2lL1tbK54wx92gjNmMXbJT2/2FlQm4VwTEAYSky1iro3pN +DMoSG2EolhmNrYLdcBbAdk4qxBP7ylqqAFTFWvyXMWv52Xt/J43pCOH3f0HPJTRE +h0UHJwj2DkQIqtGgXiT91FmopLsG67sBm543C2c5G+vXf17Hg+jsufYe6sKKY74= +-----END CERTIFICATE----- + + +WUS ifx keyid 29fe69630e853a4cd3575f84392a9bed2d7e8ca2 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAdemC13uHIuwcAAAAAAB1zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAxMloXDTI1MDIwNjIxMzAxMlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0yOUZFNjk2MzBFODUzQTRDRDM1NzVGODQzOTJBOUJFRDJEN0U4 +Q0EyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtW/i2zNnBxfNE0O+ +/XExT9UnfzCW8JVJQP/EH0dsbMbNh1ptD5MC45Qyw0/l48frpYhh7G/yE0xuzUFX +KNip/nqupQmSQ0you4yWm31rOjHl70S/1JmIrpGxLfy6RlrlF1CkQMtPUAmckNJQ +dWeqxHIfoOYdr8s+IAyASNi5iDJejMhBeGwUjeOVb/9Cw/JPPJ/vueXC0CZGsWa2 +ZGU3BJkrxHcEBQwDjBwQmZSUSxRrvds3EqlsWOYhpNp8YYUwei6UVX/MpB1RBVTS +C50ssLD/bHguw/aZSWsG/cHuWvCanGO53teL8qMVtDiRKkuRCs4Yqy2oJyWbojta +smEEv7f+8SctOxDbRj02m07UaJmpcLxbOeRgDGptKFFUBNXhBQJiy8pkHC0Pz/gC +WogLO5ADGRV80STwqaNgRtkYJTN8q0KlndkS78gLUT1/jnA67PbejZwj1C775x3J +JT9qFlMixuiGiL0sni1TXiWBoQRdOalr5ySC//+W2iokinWqsATgg9ew8ZS6249l +FlH73jswbrsE3g9vsjJCsRMoiXp6MiDo4x/VSspKl9T1bwEDP3uLWL4W3/yhL9Ot +TzOKd2FHC55c/07nJiJdZg08nzBE/LITtuXGtcTBIdrhiKrSCMtqckVLgZL0Sl7r +mdEKIPmQGemTZ+2p9NlMH2XWFpMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFf7VAY/cIHe1XXV +CpDvV2tl7IIUMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAKLzz8ysfP7tx+8hdOQ1pWEy3rMFgiWipK9skdLU5W/8j +9lvBQpi+K/F/A0kGrAsKq82+qVgSn92ZCVKMsg21HJpRD9+WWc+QgdgCzWeGuAhg +CvaFbJojHln+ObELlMrsjIkjc+sOuw7Wlh464rax0CWiPTUAOIMHamPcwvP010K9 +1dWIk2NVkUywlN263RG693clCjmwCf6yQ+rSXFt/toTTMbNW3R92ve7TF6ortoJB +2Mcpipyj1hGz6N2C5M227pZm0He2qfabffIZJIcLe96z6xvgabJee82nVciQ4GUw ++TpMJO7k0PX85Q6zwpUbpT4/+3AiE+xs+s3h3n8ACpdFr/qhuiL33gMjuF8v7EGj +kMygi5QqMkgyyWFJQD/Cys6za/kCumg3xZMFbU4oWmnybGPqkfKsv4/YaTsgfmP9 +KXWjCV1IgzI7jB6DrI+yG1HDbpqVvV8wBrRO/Qy9h8hqsHmHoBTKCUTwyQn/xBHq +0Ckc2FRsKb1WBcYbimgH+LtAixSFIcjYIkAnAPhYB4BNh8U5pCCct9vCEhRYnfvY +j7ATSNzhdE6J5q1Q+46N9Zd3QYvqXvKyfyAvsLANkP+RSsl6H2iZMDz1l+4p6cPu +tO0aFZVDPx5c0e9g54j54BRvv18sEXPjts6GWIJbuADLhUFxD3sHtVPor7/Iayg= +-----END CERTIFICATE----- + + +WUS ifx keyid 2a77a0e342cbc6c72ee3fafc3b0a7bcea7c9ce4e +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAajAHkvt3mJs9QAAAAABqDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkyNloXDTI0MTIyMDIxNDkyNlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0yQTc3QTBFMzQyQ0JDNkM3MkVFM0ZBRkMzQjBBN0JDRUE3QzlD +RTRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqHUrjBc7uCry7Gvv +Eh78A3th0WvIamCsMgksDR85Rcvhukwpr5KQ/ihrB7UiRRDeahoRWXliUSyv4Gwa +8gCCoUVrM97JczbdRPFYb6SNp8x18EIxMNNt+j3ZkhZcJkE1qlU93guJ9+PgsIkh +dLidLdh7oUXW1lGlRqIG++fFzs7kMLxsZjwzwex/CoBi0G/T1YFoThh19L5x8gw7 +X03mgl8VS6FqQo7HdIQsffZKhJ+NZdYYfFPvv5/JfvoOMxdwqnmi21usfMgy3yhz +v9OYoZs7nUn4N+GVX78ckOGIyZK42d2WrEmSDdg7uMbxweKRSVNPhEFp11IdCewq +uKoL+LoSVIBYPW9Ihpcqwz/D3z7dHQyh0CHioLvrw1M0MJeJcVCGw9lBNutzcCrj +1EF43DMwp6blste1C8tTqfh14+8S6YH6BZJMOHVevHVMeyhezqgFuEmeI+N0S0UD +vXzBa0a0fehBjvSUyQXHulr+BEyIb70ugEsqJ5tu2KtIKq5hfX+o+nzIS9R5yBjX +7Yw/NTIAhzfwjJDRog3TbUZc6nufMFWA9HRG+FGz3uGXvN1IqsB+H+PIM0a5V3hD +QdFbXAHZsVxc3OLWnUhoh+f9nK/v4IDJcBcnZtJ35om7o/rc13HtQtQEUihzDF1F +/5IBDvtZqGjXoE5Z0bVXtDb8CxcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAUjzqqzBC3R+aUM +FPyihNYXbqigMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAMtnNApxEuP8mzbcON9kDEX4roj+sHV9rFpbeYL1bvfAY +7f8mKXWFtu6ZekbFEspqES2wCnFb05VpxFOStHei25jA3NCSSVS+czDwDYLtbP75 +KF1zYafpUICZBph+lQupB1gCgw4JKS3ogTGhgqqtUej/ntTF8BrZQEmpvdoLk6Pw +EKPEh5D7pLOVn/GCVda1eBfBK7sOpW5uqoTeBrZp9cF5G2iWzm3VOKRz0Ee4jwbi +Xk+tyNPFruKdoGKcXiFBWu7QhLSveHwyFw6902NjCbRsTLSZ2zTF39JAuukpQBuF +J8w0GY0cDl54dEZZCF05NsW/xgu43V6roXNHtU95wkN2TKKsP0Ihx6F7BVYbHG5t +hfBVG2i8vqu9F3ItBipsW9QfYQon5XZqxc9u/NmrEUNf/U9I5FHtYK4ywDj4sPH0 +5igHdeYPl+pcg8+dqGXcYer7wM9s/ue2kfn8eSM+Wx/abZooBKBNkZMXrZ6mjyQB +I1SS0DEU+b5sfX7z+hwdNdVolZAeGRBmBxe7ZGYr7qgnoAhi6aOYuPSfE1h8ko08 +XwoffiEH9d9eYr96qJ/GfLmY3+fPjZSCYtRnpkySEIHqwXXBQnnoGBhdYBCtiefo +FGTuXZcD9oQA1qeK78+AYe+sZo0c0Xra0yJDaFpoxOtpQbD4Xxbt1NNHbUx0Pqw= +-----END CERTIFICATE----- + + +WUS ifx keyid 2f572bbadec4d18e0d91ff4375fb468c61b8c7af +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAak3xz6qdbcqGAAAAAABqTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkyN1oXDTI0MTIyMDIxNDkyN1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0yRjU3MkJCQURFQzREMThFMEQ5MUZGNDM3NUZCNDY4QzYxQjhD +N0FGMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqGljqXVEsanEDcOk +k/jPMbOMosBjFfemyzq8790BZWW/1lxmgjYNcdAxvN3Kh01/ViiGJQ+tBQUpvC6A +RDqPikr9ztUvogYnxVWiHOn3aVHD+44zAwTArnRyUKuP8fR9jgBU2Y/CpjPQ3BR2 +K1AZDWEuD3Ge93FjntFkepnsiQsQXMw+7yyhFiGeOXTNNsY8gX/6D5/YEEGMHzz/ +doNQu4Aiq6XxVeor+wvY3AXtoU/cMIndmoOtQ8XJ3dw10w+uLm+nrdfaq6mHl7U7 +/fwjjEDlrh3MboComNCTT4eVmu7aFCav6GLzf/4E3jbAJVAnD7ph73hQw1cy0Wwm +NN4xkItywsJeAZEnFkP9z3kPCtAnV6Qqz4AddU7FH2uuA6wg7CsUGf6MnS1IuxiQ +tLfep8Q4evoUN4roWg++179asJb+e5deyXOUKoYwai6PL6TEt4RSQqVo4p42KB1a +fExVI2vUhvspidOejDRwW952WqEYMVAJKdH2q1VJdWoX4l58KWC/wkbtn3U17n/j +jQsFAaFe9wLE2RfwesvFOAtYwy3O3uz9XfujizX/bZ7nLxWytdu/avqFW24JXUZz +K+KZo0ebJec7TQQgEYkBBnCIugydAYEZ4gHheuLn5fSNnUNZlylQrQBXqnw/Kj07 +FIv+ZU58Z6d2YC1cv4B43p7HZHkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJS9Vi6co8beOX2b +PVOUX8oMBjknMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAOFHhKl9U7rkHVZ3+mhCg4TaPkE6Wso1850P7S9I6La0j +5EGp1jI3mH+oYwNRaoCb7Oms4aTVEGLXpcLPOfrj6UI9lVK2dC0r/Wp6OLeZRxAB +rrvuFuNq5z35hzYFTPnVJwAMgfpXxs4nt7O8MV+rr1ypR0/V9FOFF8WRt4hf6PzA +cg4bVfKpmwYkgYJQWaL5I+yIz7/RpFX0v7YnlTLrNVN93DOjMCN82PKH+NDnHxPu +M9PIt66S8e500v6beVsz3N/DLc2PB0lhI8Hk67GqvfCW57KOtPRnTcvxTcnSxbml +gJHCE+3wkpLmeQqQF/loK9uh9VGms01r23BsKv083IC1OLke5j4oNrKDc7sHJZGl +I+jbNIgIuCtvgqA4olmleg9REFxxhrzasutqGu6tjGGzVTVhFjdxhMwheevin3Pg +ehcYtIKeoV6bHUkbIpZZyhNmnGsy6ROsz/jFeKVoxJjAm6GVe7AaW98Q+4KnGQmx +uQ9IJkzYgzzWilmrXof9PW09OpsEHyr7pOe0hVrMZQg5A+STvrrVpq0YjmWreJ+L +Q8BvRcVrN0G+Pn/7ONit3yGBZzg1Au3z8UF8nrbZWBUiRo7yO/yz0x9GUuzKAcj5 +O4bP8ijcxR/vRjqLa2Q4pHkFbzu7RveBYlAeE0uGublQsFzcZyWOJu0q+cJvZ3c= +-----END CERTIFICATE----- + + +WUS ifx keyid 347c93cabded6168c61fdc8740a7353e46751616 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAax7fM2S0IMmaAAAAAABrDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkyOVoXDTI0MTIyMDIxNDkyOVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0zNDdDOTNDQUJERUQ2MTY4QzYxRkRDODc0MEE3MzUzRTQ2NzUx +NjE2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3/b7+GvRi8g1PFvR +Gouwj0xGJWOjGiL61D6t5NpfmhBuq+B2b+hzTMXLJSHtTTKcasnqqEPHSB2n8iC9 +SIvN+RSo1EmgNhcEggwgIMGM0aoJ1g0MuIVOsi+IJ+zB7aOorg4cQsJhZhZHfYTl +wdVRziqxlMiOmInTIFk612iOBzqtJ9+SXCTX66xX0bxf3OFJbdSdZ8W/hB6b2ZM0 +ank7c97/lZtIqD6GX0oXJoUdvJcsMFDtgqh5UVN7dkF4r4CfZXywmBhms/e1IKfS +644/Lww58JbVRNQRRPbp6SRjd7dK82zno6tLSIreas6pf8GTE1D+/SrfvQkSQZ7s +dWNIOCNCffZV6RGxcTLAyZL6bFgonNY1g/05L2sWJVOAC5Stn7Fp88LUsi24+9FS +tVV8eSFUcGudTpr4vgHVuLG6XC3X88cTqnzuRVnRUkmFQ1Q3CteexqZdhtxds3D3 +wCbNUnG5S11YSpmeSzZSiy1N99PtAebaTv0kbx462Z/EmiKh3YA5zOfKpxOpdbQI +AfksQkwyykdKYzOB2guTbnGifBx0lPenH6pxDoi9UgqhFESfELBEyM/mbbZtHCNr +BjEwzIMnPH36QZ72pj0c9OQBjwNmolgIispAAuNFso3QPslEFnUgt1QLyK/KsL2/ +wLM2M5TYQeHMB2HnC/o0aG2tprcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFNHiq7bCF5EQbI0U +e9ods8o/u8IrMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAlUOGaNUwI22a2YIxS6kQrDkrds2SL7kGyAnefQ1X6DSg ++/8X0mTmok6vFBO7VBlThdRcoEXMm8WoG3VO596D+lPBqzoKSx8B14CssvKLkBaw +fvcnbIDZDJYJNhdQzFaL3G067klShhP9UHNmla7njdkeuhosZPiQmvc4Ran8qVn2 +PlDjOdbBl00I0wSUeLhh+/lwoPJdxoaX+TgRyg6nshc4TPt2yH1ztyS/Ufv0l4Na +E955nQf+hetWARzfKksESqyP3xPZOmdtKfxtsVfWCPgKMa6q0A5dn79J1Qztvlct +rYF0oE9rK8NHmIEHA4NukRtJhQ80IVzW66BXzqgu+CMQAfaq0+oYlfsIkY6a8f+W +Bv31M209HCmhAiPdA64Ieqj/nQ2JX1BT4ov/CdIHZx1do8ObITYY4xJV1iVJoAx7 +iq6a8x3J1hCowvzLsRGuhCz1XTmvNz8+mxxjm1whwX6HLqjoIspBZG8LI7HyNlbP +aLB8/YE+yFEWXuSlinAC9zgj3NwPFcMO+eYFqAY6ApZ8etuQC5hriywmSPQRNwt5 +KBKKhkwztPoljtYFCkXvKo/hP76q9vqCMN8T2LJswtrc9jLlzMgl/3DGfVfOqojd +SVnkvRz8Qc+83j8avqEtt7SjbO7Gl8XYy3RXEtNhyLQWbL7D3CWxMhh8fhqN7HY= +-----END CERTIFICATE----- + + +WUS ifx keyid 37ae346baa54c513cff0290bb321a22a34a4a8c4 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAYmQElxp8taimAAAAAABiTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MDkyMDIwMTAwMVoXDTI0MDkyMDIwMTAwMVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0zN0FFMzQ2QkFBNTRDNTEzQ0ZGMDI5MEJCMzIxQTIyQTM0QTRB +OEM0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwTxPMntcEUD8AaD7 +YPjEKJg6uRXAx5rqJIrLavEXUd+A3JHoYUU+YB3pm3Y8iuuTyVSoy0jcslCfZbAH +ynIaCwurqYAbjpCIbwVoN1A0vXL5CRO2YqEVxcvjzjvBpJcgX7+niqzNURKBfLho +yhscrHacreDEjLYI/G/wGw4Xm/ltRyL0AuvxXOnY8AxqyHQm5u0bRUoUEhg6iah5 +YT8tm+W/IT0Fwgw3x7ae1sfgUjlzAix+2y9URcCyA52arm2dFCu0VO3rS8bOX6la +CLF6qG+C75pXh2gzFXTcBH6IWBTHZCAwtUHgeXuwfBaaHDATRor1JZYiYCPOx2Nf +suk3nDIQYmUEh0cXpcMjpS/SuVeh0sczy782hbPQexN/AlxsjzD8ADIK4Ha4eOZE +yS8aH/1loUp9LtkH81NW5A0txBC3rJrcTljH2nd9OGTexal2pzDq/Rum2/11ki+R +hLGi7UjGRAZNtHB4VCrILzb03EIPbwSuXLAg64G7lxQtvI1wOFk+JpFazG/l5jNp +/TkKMa0yJuW+55zWRdUGLphbIxhGRQUtnD3mypvoENIdsNlqiqzblJuMFSMGc29h +aGwD4CVy39DGqKSto27Cc8qZrcFV4BC/ZTgsIsk2dSTMU22e9I/Iy2eYa228bfJW +5Dd384n6wrDtvrVq7nMAbE6nehMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJT1oo+vcCmXEvi6 +Ehtk7TU1XA/QMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAHp8IhLskAHBnE81dXUpaiJeQk3BBu9AqsNaHZjfv0zKq +fuNYCFDGEbCaCkE4y1e2K9TUh4tAzEVQREaac8F+FyKRRi+wWNhzaMMMGx8Bdd6B +T/ji4obv5emvU+NBbAS3B/3jlxoq07zmQdaifb/1BFwgR8UQvGDRP+jJfXe47EmC +82U4Ju2eCyZGxVs9VBPTVBC8KjVZEgfbmJ8As9jOclzDDJEwEO5jj0Nsv8LoQntf +c6ntwGc4G6Cs+A+xuxsfZV7287JkYs5ZyRQpOEzYacqM9yuWnMpSfSHbUT3BJZ9K +2I+1lhOqJuNOKk4kdc9oeLKKy/E04Zj4xx1S1sdANnOdjNcJTT667yleBHCSd2Oj +cU4l4GpiUI1XBccN4jBLLDj1RCTA5jCuS8Fla69JJ+arCR1YwPkIlkNhQC2dpI9u +FFTTyhoWCHnBiPSKAPGx2ufu0VX7ntYRpGldnpJL0pEsx37/8QQ2yNN89HBtA8wy +ZQSXUgWGVg+fAh71QSHv1t2w3VRVyxuaCDbnDIajQlsIqp2mGmSy3omUqGv6/fmc +f8uuQDmQzFc5hCjjNEUDm/2+yOvXBWEVqzVHoMQ9WsJuaqwe116Xtpeco0t5nqzj +n2bj7ib6KoC5p9Ld82Ol3LPhmmR6N1DsSNA06KXy+4zMOuE9gJ34lOi3yWLZSJY= +-----END CERTIFICATE----- + + +WUS ifx keyid 37ae346baa54c513cff0290bb321a22a34a4a8c4 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAApQFdaVGqlv9jQAAAAAClDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAyOVoXDTI1MDMyMTIwMzAyOVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC0zN0FFMzQ2QkFBNTRDNTEzQ0ZGMDI5MEJCMzIxQTIyQTM0QTRB +OEM0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuDwdAFTtGvOq9j0Y +Y6D96afPKUJSTenji768wGoSCEoUmJVrtufupm3f5Iy5rsQyPBsKXqXvCznNMvmG +lk8kCKBcC5swWKDn/MnbIpNIZMhzbyILg6RfH2CUq05M5E6+sOkbAJbXVyHODq4F +dDZmQjoM2eAMp+bcyydwRitTK2CXKEGYHp/F2YKKWoDRjgn9ZZ7HXZ0Za0h8Tcet +ty18R0bom7jzSI75x/nlH+zQn8J1TCJtF6Hr2nCzOxtUQjRXjXXviFZwhtm90elM +wb767SGKlDT8PIR36Qj/ijpMS7ytgrBgfOoachm3ifog0/mR1QgyidfP4KZg2fIM +2LC8te+NrWMTlVOh6kiMNBXcAqIPygFx1slUw0VZsR09ASvvM/DGN3nZbog7QwEN +6gg4hvGVJcLdYCml8q2FDi+iXYvUp9csyfOGBcOyEh6HbhqypGRORbhKT6ieK/LO +7ocNs2soCx5h2IRShzooz/PF4FSQ2a3m837akGsUoQi2Qdm6f6FdqpkWYN0/CHRU +bygiaCeGIAN79L0Ndyj7S/dk3p6D0OYtT4E7YIEeH+aZWEJw3RMnsqsqAnTncmsB +YBmjX4jBSLx35pZDeOulsLT94REOnxaODUEZHd5PSkN09nnQG1TteahOeqIvNpku +o2a/ge8cpHUb96WDOkv9HQTPw00CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMjKHPwxAvDUPTyE +Hsf5WboXbIYnMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAF3KO7AIiyQMRygVft0z4z5eHwizqPrsXiwukq7TjXN2D +FM4zjrX3gKJOBKoFHSfCMl0dGf4aKQHRuRrvLyIhL3c2CHxJw8BhnxHLCewIaWy9 +ATLs5n9cQB+p7im3DU3uavZa0Knjdzf5wimlY2r1kGWuzzsVyR9nmyR1+1pU5fVL +L3WaGhsKVwalQ+HiOIx209JKGstP1Qkgzczr5mjutcHza6NZR1tLRivHIn0JuI7d +16OlJiQJgoqdj5kQNk/p1wSEPaJzUmaxJZCAZ32WVMP31xr8CHZo94lZcU3yTfta +5WZR5vYihUE0gFIkG7t6+4qsD5sN3ZQp9ZsMJbDn5/3cP4YtDcw3xn/vvjBEXvnp +4DLw7yTbc6pmIWrPuWEXnTNWbIju0sYbiGrKHcuAhYvZpqnkpnezZLDYrzbYoN6p +zfedlvtmhGfBwxT6I7TwiYB7K2+eYkXL3IVT9VfThDu8D6FA54tk0OY8jLmJSSRX +sDhqdpsgIJkYssBsL/wU8r1abHZ7OL+QoN8G+lACpmQ+mgCuMe7aAgU5AGGQ1A16 +6wC2wdG14bc5GK/suzRee6Bshf/l1ew5CfQ0397spIvCZyPMJ7B1Djp/SaYIJJn3 +PLYtePeJYYB3sDs3Kc0GWcL8a5sArG8bS/D+aDSrBQjuLQH2V+bDpk+IP6pUCXg= +-----END CERTIFICATE----- + + +WUS ifx keyid 40b8682b8d18450a2b06849d9b5cd96f4cddf4be 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAdk0LCjvHqtWBwAAAAAB2TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAxNFoXDTI1MDIwNjIxMzAxNFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC00MEI4NjgyQjhEMTg0NTBBMkIwNjg0OUQ5QjVDRDk2RjRDRERG +NEJFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxYDb7aM9Ea4FpsrJ +3vnp2dfIzfKa7nFsEfp8QlYt72mvXxoYFqK3eKZLE/9YFh0XyNBxF/x9PDEKauKY +pRhLdzPqqKUO+F3g6iS3NAiixemzNdccnXnoc2WjK5BP3N2H/0g8nFLJVrHz9aT0 +AV4ekE8d5uDqe4HR8c5/tcbTHpzX5mHbtkTUq8kYNFma4OLaJMN2BpRpUb2t2GuI +OCkoFtL/YTWc4A+DuvPM24p/MS87AsiNPfQI7M6Psl1bevzwOA+ZY6h5YdUoGQiO +KK1q4Mwvldey8tM02mhj2mzqFs79E/vRchxtOucAPEtH0sgmLhWydoX5RC59kvbW +BUdSb0/zgNqdNtKv57/nX0pCbTdfPujuOCZ3HGk8VYcNbPNsbfyTHQNXvK9Rt7BS +XfGcnNzI6AIxuPr61rFV9gZBoUgbZNoSo2nrFy6YFz25b5YjQr/yuyqTM4Plz3+h +nPs7fBw4p+JmYDD/XrTL+NFhp1Z6NXcf81HSqK+HTBgfdzlNr/hCsdlNPjjj7U8E +dAOjuQQaWpNoOH8nzvy71/srFVCcTScIisrXXIju9NkgTHeHWrJ4nCQvmaPl1dLO +nfTEuB35sh4XE3PiykoZJEnoe0cUyoh527wjHqWW+XqXtFb2JItzwU7M5xF7C16p +H9ctMEG77GYVVIZaQsBFi66DW2ECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFD/nAkidvIBblwOI +ik6zxcXbt5ytMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEACw0fmqVeBbZicLgVBRDX6WyHc+90nIveTO9yUd+nYCcp +1N42FR1mt+P10fEiTmbsrNP27ohbkzQOtcJj07c9X2HGhKV/UckmCtDUaMYFP7SY +5lUFiyo08c71VJGZ3U78IzkExMEhfNC9rQbPjjOH6R+saRt/id713/BlSLFymahK +AujEy009PwuetUJG2p6JE7JlhfzhKPNFvVVQ2MAUY4oksbRd2XGJe2niuopxzsMb +oCIEoyjVYYUV0oDW64wOoB0jVKpt3EcrXhgCUSXZndXtcfnR8iQsIvrx2TvfHrq8 +4hC4knSLaZEnv1oc/jhEZqRK0l0dusYHyAbfGmuH5N5xx5BNDfSlNqCKTg3Mrraj +Kb34Va0kBDyUxZ/R2qp/vXJCn3RlWWsGS/vamD0muxozNUoXGNtLlKXfJMcB2D8s +VQSUpTCcyJPz4HbLtEQyVayXiR3KfDLxhRP5KpRfAs8DEQCGdhMUwmtyvAgVSkxs +JOeWnV8H8o+gTyG/cJk+7fUaDVcI/tDKEo2RARjNav732VWVaJjVd21qWEWgITic +CL5xDhzFw7zAShc0M+2BN11bXhXpLmtpC7E8uEHEqD0dp6iMAkZrZh8L3vjr6mcX +wXUAQOe1zvrFH9Vzv/HdQMQyHjkZKot8SN3PrzEVV4sIb49/xy6N4fyKrgrU9Mw= +-----END CERTIFICATE----- + + +WUS ifx keyid 46f26f96330691e561b72f7a63dce3a0517039fb +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZYnJUMYl5WHZgAAAAABljANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIwNzIxMTcxN1oXDTI0MTIwNzIxMTcxN1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC00NkYyNkY5NjMzMDY5MUU1NjFCNzJGN0E2M0RDRTNBMDUxNzAz +OUZCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0zfnG3M9zNZZj+iZ +Qf8hBe73G17J3x6d10KXt1TRsdWOeLZdyRcxzUcKp7+D39cIcfG4LLmLdRmz+Y7c +KRQpmd1wdubrgVVPIhlF4xLmxgaBMj5ywXZcOyV5PSxxKN6IkJk57jTLhptM79xh +1AFBlhvbVzQ2xE1bGTEjNOInXDlB/AA/jylqs60Fa5W4R/uzTi8coBXAmIjZeZu5 +hRizvnN0HHQFIPGrB61d4J/tXaglH/9kQCcx8dNW68TqX1mXz55rlRLWEWwun1zw +I3b+W1Bz5tge1HKbKALxbfleZW4vhSJwCXWRLD5Hk6zNX36r6QGf0FVbOBHpNPtL +MXhVtlFL4j7SzjWvPc/eyvJRrBjJwXuP/ZRkSu23hEcWFMweHX+o/00kp9Z1Wf23 +T8aEaQ/MBo9HO2ye1pqaDkHs92MRPmnhBKJi/3kef5FdUhKfMURmZaTjNmK2+FeM +qi3lcyGAYiOQgr0gQV8kx9Dg/k9Z8twVD3t8bIOW52uOjfdz8gG893S8whLFEpjL +w2Ke9Rzvbn8tAQTTVw2CxmHxu274Ta0yZhgNUO2j7GDRZc7f7sMJaQtfpY5QLVnN +cTY0BSX7D1s6U4MwFRQ1+c3G9hYKtznqCUMu2jTKpK0TAoVp9qYBeSZQ0zx+o7Jd +v0pE++kcbDcwlvHCEiCIZng15dcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGyNYLqrM3pjVORr +2Vz2BNJpD066MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAHRgbWKPNSaxEjNk3YtDMpBbiTBBj9vvTTMPfb+ZrluWa +bzzIpIAaoux1wNCDtImUWShyGMnFAa/KQVwGxxyb89W/mYgKiX7K14AXiTEuUKN1 +s7b+0TSCPm4dv/qd+6hQeARVkhji3CGkjbu9UoNcA45lYlbizhHTqMDh5Z1yR/nB +kRLgntszb4EfZNDvnjZspRyv1rnpo8m1pDfc2uxh/wueEQX6JImyO3eWDo/JIxyX +xgfbjMM3f/a8iQfTV8w4qJHLZ1WLy5KRtBInIDLCHhIzY/cIvo1xmX0Z85T9YraB +zraiahvNLc8AMqmKfAnRoRzT8KIVgVy9Oq8Ashl8f+iSuy4A0jbpNobJPjlm9oB6 +vPetlqyWjiqQLOYEmoLZOv5FSguzfCrztSXgriKEd0AACLb9ra3J4XhQ6duz9yb/ +jY0ccwC7fDv9mq+RNTP7xdtj1JzR5vD02jLi4xd6y8DBHJpEOkQ8UOQ/hTQzAbQR +NJvhhixEpC/1qMWq87tu+J/uYABSak58UZWJxi98AVN5yjEHymFFtQtTRpwUm39o +V3n3h2Utg6eAMSBe15QZZYYp5Ry6beUAMBvNGkNzurPdOKM5BcymfQi/Yy5LwiaJ +dgUwiAFv/77+3rmvop1i4q+7uozjOs7RDF9mMdDQLKImvutGyUFAs4zXfZOhGCM= +-----END CERTIFICATE----- + + +WUS ifx keyid 5c2920742179bc704db1d8c54c34ca94405617ca 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAf8GjlzzjVi2cgAAAAAB/zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzA0NFoXDTI1MDIwNjIxMzA0NFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC01QzI5MjA3NDIxNzlCQzcwNERCMUQ4QzU0QzM0Q0E5NDQwNTYx +N0NBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3Qa8rooeFvZSMtZ5 +eKDqzVX1yjlYMW1g8EfzIpa43uTXwIZFBCacq9UTRSa+KUqoqEH9a3Hm9SHOALwH +QAYaRicyFQwiJIgZeXRpJvDzUCRdMgsiFUMndBWo7aTQPCDuLoPYGMGR9djfktBB +N+pTYMBLPQB9WHeOvL7rdjvC1FAdQl1YSs7D+P2WE/JZVybyKiOZYpZqpGydLwkn +Ca4SptJkLFCKFSaGABW/4GWxUHXPkH4V/FxyfWPFUNMZNJJDIARe9wBJzoEOPPX0 +lXWgtinTN5P/pPDB9yBTMnjHpv8eTy7V36glbXS6S47aBhd9a2jcKRAGubhBYAtZ +39IPANIAAw2h7lgxep7u/5+TJ1yqVOc4zCGKHn2ej7wMdn75aDFI4HK2oRRmUXBk +c7t1CnI+rqDWDypdo66VpKT0B18SzGnbiEt5yw2zLhVY5bOyIxL1ST1ZQWshScJz +r+v7MZuynrxDs9ouLtmsZA70A8Di8lglBfOxwYnDF3MG80/ZmucpSu8l6xsxpOGe +f+N/8FqBDc5B6Mj5LGbrW55GUGAisOf09nRShq6YPgW8lUKHGJSfSesFUYCcPbxR +STo17Et9xc/iwP07rsV84ervIQGESI3KH7fJcVAHID9o6F5RfMzoiiqauoi8EXYc +sr9oezVpRYtLaxV+mgfgjXU5utsCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAfR6msVZZZoJwmC +WTNZYndHXSFJMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEABUpJjBksxlV3YSXEiTjqNJVf8PoNhwS6SxvZydYBFKtX +hLtk8mE+Xp6Fd5A04v+p+yfTmii32WXObSfRh2W6Mz6x+5vpzBXHb/F0UHG8W6ff +b34olqtkMJonscKtCOQTG/kfMCdP/9qNhiBKXol9ucSNr43LdfOZgT2jAssW9Ff0 +l5totV8pMnzCppWJyaJ/FfnNShUhZOW7eLronsStW5JpDufMhxE5/YpebVoV++qw +jygTIRSGMYg2cAx1J8GBJSUMyio26rZlArP5IRy/oe39vZMPN/IgQnGklkLKhS+i +hi8I/hFfvaG/tSDIR1muCqgfRR1qcNi7lvC3j+ASWFw3g/JJn//OvPf9qIBPBTOR +WNvc0H0/k/GJLRp37qWbPd2eCRNL2fXqBbaPkZXD/4aqlASojM8ixFTtblbH3JSF +4lbgw+4TKWr6I4+Sx6hPq8RIWmMWVC5zeNOsxThEpLeolulKkrdUjUEYueyzoBTO +OehmUaQ+cJJxtYMpX0f0D/H17dBc1vGy/obWv2pV1oxhxFPoqXDIRWF8MjqnnbO6 +guDYZMrejiBMIVaigUCqgiGv1rihfk9h5jRjyrIpiC9eB+BZgE2IlRE9tBKBIUJh +fQ4CjxHA63Vxugj0JMNdeybl7Draq+7WiX0IjxZIaJrRgwwJY0SkosFK9WLe+CA= +-----END CERTIFICATE----- + + +WUS ifx keyid 5d0815951f5f60638a69e7252f3ec4becd7554b2 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAZVkB0Zv+61gHAAAAAABlTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIwNzIxMTcxNloXDTI0MTIwNzIxMTcxNlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC01RDA4MTU5NTFGNUY2MDYzOEE2OUU3MjUyRjNFQzRCRUNENzU1 +NEIyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAty1wEisbErwlRkgb +qo1uvbDhcYiEG6DBw6ATBO2qg4gOaJVmvfZPtTvH81xqsYcWYQOq1T6CFAzrCYGE +7y5G0vPRGu9s9B7Hb8DbPjdhDZtE1dvtp0T9NfRs93oq6MM4LIinm2wQUyHnGtia +xtjt6x72DBTnLF+Rh8f4H20C/9CpWG2MaQ+z9brrypmllvYppceJF8tunIbmRF9Q +VZypxGCPRzZc3AJcGjFmSBqgp8J571aED4Q9skGcLk2ZH6J84M1x2zV9jlTMXNZY +Vxr0ak1W1CQinKcxPGX/UH82bpmRdTanlEYLjbfRqrK6dcV6IRGaMz2mFjW6B9j8 +GF9OxmPd4vp6oQqdZ5+90n8wJm/CW3vNULTUTd+HP1RprHTNShuYmXQCJ+VmlPUh +9YgMQ0sc2zD/UxzU0xE6GFbTYl0im5bI/EggHYUTuXsHgu3yojJ8AGR4JjsgrsVj +nINLXWzPbHEdN7ODq+ylt/6nkbxHVBfMq4K/xmA7tpr4dmLWZNR5vO7O0BqZrtIr ++kCI25SXuo/iJcXkYZA0VTLO1l4Js2Xv8ZWNgA1TleSAx12gwCLhlqtmm/a2OjSu +gHj5XOrbegB6ublS48Kbhu5pfiszND+FeMfBuOs+o+a4j9Iv5FiMLzUHR3Qz08bn +iMiOUikQEI69SXdQ/Ra/6tW75vMCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAj5UjjY3EkNPlwh +2dOijru0ICVqMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAZYNWmvDteLg1SZeUXpwcUaokFiUpK8Y26S07aTGgD7zW +AThcf/eH/p7ZcpJ8JkLhgW4m6IZaz8GKJfNvNxSN0O0/UNJpSGAuznEJ4iOTsQUQ +kEaucxlZnORc/cTSdsO/Lal1mfij0GXn9JAuJgm0ZVRaGZtUhWanHWUppdOn/VFF +NO5b6buTxAk7zajL64UdEuihkQXLowNl9JFM8La6TOPq79knlwIJoTvFr0FmjDer +TPBFF0h7Bn6/bQxxptMI9BtW3ft8dSE+iqsGYRFjeHpuPfrzJpMMHFKjJmHry/DS +5y4HRGMlFG9VtEH/jxAnWu/ierFmF1sLAQcLuvml0wpJAfoHFTjZaDDAil9MMgEN +Cc07+Yi+9yI1tyX7G7v0dyZWgBS1BCK+lNBt6nw4xFZGt3NLeQ79eDc7FeSDKTl2 +gYIvi75Ucs2mrqxmcV9A2AnQwfx6qIK7pRcrFhR8vkC2/S3lDHwGKAUkVArEbds4 +PeJx5D9H171rXVqZVGk7GdVsCkCoYJVouC/FtbK9qmtlTVxcO78VoJA2IGgbn23F +acprfxjXBSvCTKIy208GEHE4NlZTNXq0N+l17yifpNlFzEBqGAIr/Z1707gjSF1R +SG+YYwCJdHTwH7e16sWpkqAFz5DKPW21ErSGicLzHEXxpIO0PPjrjJOUaUzHXB4= +-----END CERTIFICATE----- + + +WUS ifx keyid 69146ac3cfb3665c7ae78101cca5c14255ca2bc8 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAdxPDlWhHLFDgAAAAAAB3DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAxNloXDTI1MDIwNjIxMzAxNlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC02OTE0NkFDM0NGQjM2NjVDN0FFNzgxMDFDQ0E1QzE0MjU1Q0Ey +QkM4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApILp5bP1Ss9+0sTn +tF8w7dzQX7yLQEnaTLr6GROohyjh/G9odNqZaZl5N3LzlnayDY7YqPmkPECue29l +J7GIe4nF9MteDLDNRM1pnOZ0jEIcwCuUe9H49wjbbWW1/NM+BGJRYiiWOZIWp4mH +tfrscGTQl+5lFphJh/wqA/6LyYt0QgwGXWToVDIjm8RvHLUoC03FhpAWEI0wh4gf +H5nTJL7rIRZjc0N1vuaNy6CGK8ysFyXU+3SFdZMVE8DmnNjM8eNaKuo709haXe/B +h9ChTJtPM13b6lF+pYXciJvw0hPB9nlrZWLBvbSe7PqhHOYrDwLo/U3HNGzMztG9 +L3PXtwWRqF6QsyRXQz9sJYLO+uOheC/+W4VHViKJTUtPmBOMgflXJgk/N6VK56cO +MqQVZVzsxeh9FBJ3TCqrOFa64uC73aj09/PgzsLKPrZ0b/zrYjHjWxTwKfNVfJFB ++hmJ/OcPDmRCrPXBOWyKpNqnABQogeC9MVsqM0HXFyECb/Os0uZPbcN9hj/uDoeR +N3uFIMr3ygm8GvLvocUagahhjvK8/BPBySZZKm+D9QrB8Bv16XSf6rhAz+h9+1B2 +iPKAJM1kHDIuwSgfM915bxLXuuHfyEOXbGiTDhGJNXddCfQ75iBj7OsqB2qowlrs +yBhJJ0gymMfzNUKQnpE/w028ObECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCuCYfx3hwnfcaML +qSXKVCkRExahMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAh1Mz8dU/dOWb//4i/+Zw8bVT5IcaCW0l4SZGQkLNgY/B +OvVxRnmcXjlxH9M9iC/FnJ9cT/KV4vmYCzt+S9ki7gcrVJVVNDQzMDwoWXQZEW/h +sYpW5yDB6YKHEhCeoCv3RCvPfAKEf4uqA6obBY4WFxQ9nnHEe/iudRypUJqb6w3T +a8kSgl+2qq8G8VDgZmJMZ9YX9VOL/OsQlHfN9ZVC+vfHHYjvAHcFlyzFJ1elvU7L +Tf5XjgJyoROMJo/twZONWR8AON9uCdqfOlUbAyVhnmeNNUg9DqP1+eSicjjNZ9fK +UVaTnvaSDRQW98w1cxokAMADbAAePt81R2Yq9Dc1oWbTxulVdqc4XYSwgPPGzoBI +dvj6cV1Ho6/6Ce/epb3eeiJA+vBYJ5lXLwggqg+8UH7ZJ5Qn+2UZ4MSx//6xMfiL +1eqK+tEgUb9mvL/qHyer6R/t2AJVREY28qd+wbGX4Q7ve7Ccfs+PG0gZ3wDIar6N +Rm324/wVEpNM2UYE6HwZOtZJsz/yU2ZaGQw0mBAIyF9M2pHDAG2Bf5V7Zac9WOIM +EHGlRP3XuHIhyIeePt+rR+s+vfQ7IpDAof+NUC23aKGDH539zUn/5RxDF8L1Ucpc +KGjTJueWqHqZINc61cgQrAZAaxlhvtSpAaAoZGNAtJ/xiaFDAzmvSNpJEQgVSNs= +-----END CERTIFICATE----- + + +WUS ifx keyid 7cb4b78e688614be4421c5858f15b96d5eab51ee +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAarmUbMT0T133AAAAAABqjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkyOFoXDTI0MTIyMDIxNDkyOFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC03Q0I0Qjc4RTY4ODYxNEJFNDQyMUM1ODU4RjE1Qjk2RDVFQUI1 +MUVFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAonRYVxz+UyHHVq6Y +mluUFoPtDLooWJJnDZhdoDQkwcSkLuG7Zw+Kopjwh9e4+CL8O6gcY6rfT11+qTlq +8D0d7jTuPOF/YxqzKJm7Q2ZLx/nDcJhVvMDlGfpeWzo4u3aXTw9DRKWG0T++U1wq +luIXnY7LGKSI+Q1o0dN5uwfz7CTSU5gDokGy9N9YR98B06hoMIMjPu2Wc9WbFeSg +DMA9UWDUCEYHio9JZXVKsu1c5PTvgycAKBVm318WoVYengQkOXvALyNU083cqc/Z +QfZcMbjtI4wEoPV4CkmYohJyqUZPEmVnb2rCXGRYyfZyke5mQGT+hknitQWPtyUT +SYHVtfsFjJjBQEuVeIfvReztZGvV/YbywNHRqSEbvAqTNbEpS6AElHynuiDLPCT+ +e7BF3dOQ/zmjhCla+aOcI8dQuP+bfJU5k/IMSRFVY8pjO5Fxc4MP4l2L4k/SYATx +GRljTNUbd8o3/AOUK4Xokhqp+LPNqjtcna6N5i4BQ0/RrL0CGjOr5NEaUmZXY788 ++lbZzLHPaGzk5H9rM4F2YLdnwSeBUn2IkHmS/DLpZ4sjelv/paYIYE2H7CGP59Hi +37SpjjRsQwnnGkt5vSu9SI6UJmENgzuIrNB62EPavDN6zZbie/yKhBG9Kf55Vjfa +0GoR7HS2Fsyq4Z5CSVPl+EY7wt0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFGAdAsQlLBCzJ4Zc +DfzTKYL2E6DmMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAFtAo+A5mabAiKrLpXDyum8VphuqbnA54TCl6m/qi9+zu +axfkV96tHxSha2RXPOilBi/VQdDhc3sJd1ohTe7Oqsq50uRbOvgjfImWBhaIu/Ko +MyddSLck7RaUKF5U7CMpGGbTgiM0tmUV16+sxb6QVuvsa5jb7f35NMSXS1EbEP9H +p1TC02qvQMSQcWZokx8YKfGO54tMu/00lCj8sc6+80MEVcmmAk01cHuwOuhjNL9X +pjUBgBiPVUJOW4BQ2hC8++wZtXtxYjYk2fWnWh5/4VXhtcH7HolKV+JXV3vFFPCl +wLD2s3eRBmqCDzpCjCYmjIV6xUtcBOvhvwsAvotaotiI99PS9WhwfjVYSRf+biJi +Yyzwbv21E0FEGwCREkXC0kghNE9yBFRavOv4Xw4cchsrqo+bKLxEsOmk6CLLfAUZ +9jdgv5xmEi2ylmty8v5wGT54lGdtcM+gCzww83dEGLRHSW/G5pD3B7fVTtRC21QV +8lOpivlLvySrajMMkbDigU7BDotHDhHcGUeoQmxI7xchbqKqzdHwjX6uVf0EBPif +lVtZihTE5HgTWzcBn1kQYgp7XulkFu4NZw5GsbGI9GlbVmEZudFMTJPGaM8VoJms +APm8PT6e1VQ6R5tLmrzc5D9t5vkv19xSNCHqX0Msk9C2eOqIeYYBdbSHvS7R600= +-----END CERTIFICATE----- + + +WUS ifx keyid 8343bac2129d78299c4b513cc3de61037bfcc955 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAa2yHy7hFYJYcAAAAAABrTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkzMFoXDTI0MTIyMDIxNDkzMFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC04MzQzQkFDMjEyOUQ3ODI5OUM0QjUxM0NDM0RFNjEwMzdCRkND +OTU1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA14CVTP8cV3+bj9bV +yPo0P3zkTRMdPgwRkr8rCOwYzj/0AAAPOi5KEV+xF8NnBSj0XXrE4S+iS/TcqEg4 +TgfhxyJC4Tu/vsiVPtErRH45X5g7WW7mMG+/yrkoUto7tUhVXRDuae35wV+E810m +c+46fROKFIgncZGYG1ZCU4SSiazVhMDzdkVWtuSWc3MJag98rTwx5fvZ3JNuHik4 +5RudBiABDrjR8nvrmTQg+EWlhJ8R5jjdQ6zJzP+YfYJse0oPHKBPDLkQLkhqXoz+ +l+t3LpScBuD7VuU1ZojEsNg8Y2rypkUWEN1e27FPV3rq9DMmjm1GK9YIhUGqdOf8 +omnxxitA0k5dSLGStafmJBml82FHXeDm6u/RT1UZPxr15Qa1dsgTGdg2RMVo7goq +t/VS9rtcOHoCkh62e2lVOL7ZU/RFmVGta+udRrvGoYsXsUviWvoy71AZyawjn5WA +aGS+8/dGVsloKf9zWnfmi07veoNgtPSCsbcpTHlBRqfbu8ZBkFL0zu6RWnzu3JNX +ng1bR2d3S/9vBf8QlYE2jOIZmJ7slV8kSiF8YhCytWWVcjhbkYAGLMCXP57cHspV +EcZ9WfDdT/B6bxgj5lK8GJKWgOzXUVXB3vDxzCiVR3UE0p1ZHIp6iDKvii8VLvtz +nponXmbQOjBothW0IScYWwN422cCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHoanpKR+BrmjQIr +DGirLc5RcQaKMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAVFAVt9e7APcg4u1gdTv4P1eXsFaqypM5GSI6GgdgKnjQ +4r48747UGovvo0BUg3deAMAK6Djy7zL8S8XUkW9fz9FypCm4yp6Amy10oRVZL0IU +yLMY8Poyr2n6Q7W6eGaAj1tS+RIBLoHjg2WGQePuWcyMRCb20cTNdxgxWgTYopVd +bGiaoUGJDReBbOFSDy79h07K8ZpBDo9ZXZF8pCJslWQhuXXvSlczxSyRRx/duUBI +08LLxqoSaU/YVBZQ+EbY1lheNc8F2LQYdLI2SrlqAcbjtiE34cg7+bqX58/Q6FsS +H9ro4Qlllc3DQBpMqSiy342IF2lbKscQQlEuYuC9j9N6dX4EsnCg/AmxDch79EYI +Q4LdLtyyNBJM02bVwMX9CdRlkXnOmcdEiEdlUnxmXIIKqP3Esm1aZGfAxeP+hO47 +A5/0aNtSls/LqIqaSw6HhHLdUJINGtXRMS94EAC9MQOvGe0fzg/J+5YpwUP4H6Nk +N1TTSvYlhaAXbmAeSIt8INxvDefNfUJAd5zjrHeiQy5Do230xprzvqsw9j/4KsOc +5WMMrURfqSWoIn+4XclX9d2NBn3qbK0Vyr7kKA5HboJfFQ1gSKNzDzs/FTAX0hgB +iEq+DsG/3YDe4XZm0TlYgVsNG7npPLIiUVyUeJ7G5Bu9A+D1Q/cACdWtC6eVDTs= +-----END CERTIFICATE----- + + +WUS ifx keyid 9c7df5a91c3d49bbe7378d4aba12ff8e78a2d75c +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAYgbUmU85y4p0AAAAAABiDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MDkyMDIwMTAwMFoXDTI0MDkyMDIwMTAwMFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC05QzdERjVBOTFDM0Q0OUJCRTczNzhENEFCQTEyRkY4RTc4QTJE +NzVDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAw0/NkfzOlDuX/mbB +jqrQObX+GPf1uETSqhdyHinLKCn9BwNse2xTwck0IUg05lKv2DQ/XV7V6oQLr++e +VXt6pzkTNeDPmu4l++LIWkBWaYLWe+DczafCCF+8ebN74HhWbP/fEMDH92Z2yQkq +zy/98mKdpGwVrRmOt9NAj8bAipvLwfi4fuWJlyxVxtI6F0uOooZcNxIW64aKFJdZ +EWc3BfvTpUU25/X/bBA3nAvxIZLWNx2zN8Yl66tFKyvZdnL3go3zSJfMbk1VG7zC +j/7xVqb+Nf1dd2jQVoP/PTMILGHNKS2sORAzpIPM6hrJh9bDNDU4+kB0KYF9EvQ2 +aVYoPkfRCApaLLnQCiUFUHWSxwI/fN/WHYR8InW9NWatUqFPYFWk+ug714pGz/G1 +4WTQSsOCBZobwldQysBuT19zp5zJFLMyF6SeO5PWY8HjFBgoFTR6NqEIC9wVYW5t +O/08o9JHJmTUghyfDtWWjp8Dy/8v6un0CFqK3kDxd8OiC6WTtzeIxzjlF7NVoP0+ +uHhitkgAvfmOrhXJuWIoQT4EA+INWpeuL6EuRra2K+8UNVBxjYsB54+qSbUrADn7 +Kal9MKGtxF5k/rmQtL+zwZCK/NLumBk9iG0qFYlTheYJEdE6BQbtpyuga/hqR6Xp +gD+h2NBeyMxCsURN5f4ImcAUSZkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCgkxje7vFJRCj0f +C4DNxw8l+dFmMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAdOnRSzkDdI7JkuRYkkmOsFvgz+1/R1BQO6Xk8m5jDHNt +yof/bOlM72X8Ru7XBWqA9HdeY1BNLio6+ncU6avCH8auajl6/mxwq6reC3lUkfmw +kZh5PCI6g7pEsD7NPfK1eNMh1oZaMAs4k5lSJQpcH0m/qiVdK7eY+Zel1oGP9jcm +LxgMtcCiGTX/pH1TNzgtrjrgnpk+t1RhJVszdYXja/gozJeHfe8HdXOCZKaLTeP+ +611g9/3y1LbSyEdd/mCoD1e1vEDXc0Qpl++BCGTBRKSVfJODQHUQo9a1IQmeEPJt +tk13gw3LvZhagiAsaG5Pbuoy1lhV/0sKQpz5uyAsZFoYp+S8xNAz01XBtdYChozd +ItMxzLRPjJRDJHmQcJqVtLwO2fZu9aI36WMg0dMhFsEq6sqPSj2eCwfvLYC3MMiP +WGb/vLwJFvG0iyeBKz5kUGmuhUpu1QavLwpPQrfiUKq7IUW+qjIpqp/UpMpNOccF +gVhRRO12oY0/oEmXjb4luNSqXD7uqxdybqJD+165Z5V3mgkufutF0FDcC+gjjMyD +4pg+Tm/APOJSEEdhKPbdJa4NmkDmTDkaNY4JffjoR0UsSE1DMzEEXAD99Y/jiG2G +2vjETbgQ/sBaZgbxxor+qrxX98iP4BEck+Xyndej5wMywXEJCcpcSE9q9UVJhu0= +-----END CERTIFICATE----- + + +WUS ifx keyid 9c7df5a91c3d49bbe7378d4aba12ff8e78a2d75c 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAApMQX2BVlgZCegAAAAACkzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzAyOFoXDTI1MDMyMTIwMzAyOFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC05QzdERjVBOTFDM0Q0OUJCRTczNzhENEFCQTEyRkY4RTc4QTJE +NzVDMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmpgzwkKgmeInDv4v +UQ/tW7/uPmMrxT5Ao3Zu/ftXFMWR86R78TE05H4Pd/7HWBR50FWkRvUrf7H8OcAK +fcNRq4B/xZjCjJpyGt4O10bQ7KC/HrhQbJHoHVB6aZWZWx9jfLm/m/pExoat7E2M +jL7f9HaMn5dRJEcs/Y5VciEqGuQw1E04Su9lIBcrpoHTWq9cTVaJ0XpEwlCBHscX +BRDqPY4eAYPZWwaGZrCSNTZnngm59Mrylpq2tn5DlQJWGvFqlcFa0zIGyVsCPdYo +OYGibPV6tKYHO1bPEDpfjUcn4fS9OFbQsJrmtgmEka2BbdAigd3rYOsr8JhWCAO3 +KIzoNrnLSC+yeEpp91PWFg6lyPrmXC0L+sqMLxB++3uNT5MOx39HBS+kEfw2UirO +FAriT5TKg4waHObh/7iMRlqR7zCL7awPyaoMEby7j5xhRLTD6MGPD8THkkZJAkYh +W4xdJqzYsb+aicklslIXieV15XznbEiRf5mMeON/pDBDYUIHUIsXvK/PInI0AgXe +RtEPwwaxpS7RJxDJrhepyBDq875k7cpKjUG0WnniqP6ayYhogyIi7Id6RTIS4ktn +XNPhVQ4dhdZ7mvsQiiT8FBepAXib5ywtqmQrVwdvYwWZ17BuXiS0CW8A4Zw3UCkL +8egwbQqHqeytt/249No4gTwLhXECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMVZCka4z42Sls4Q +b0SaeYGwKbsPMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAQYdgCAWxg0CT6lTpPcaZ9o6FAv2a0nyRz8xQUBM4Bfqj +OVD5gV4BGo33OR0OrDRzE3IXtrMwvMteELHz4Nnq9vOJ+4Fxs7o2Bpse3WfarWH/ +hpOJ96qw5LBM+rRZUxg0lSUKwQ1JNNvKj6Lp5xUMCGQW9GzPQnhprJnXZ3ikz3zp +fMjQj7dIQrZvE66tat/rlLJ8z+mdzHUNTdmEoqrsymzAxQnPV+0dUUSyqbC6XM/q +1x1XYUy/r+o80kNk6/ogC740w9Irz35CiyCbMO5X0h+YAlneMBg+3kN1/H9dz54i +PQDpdRtAf2uoBKzk7qYW2H8VbdIeWpCqSns1Z/TODoIl/DKRfn2yiKIWtDX1vxJw +Izq/qeWfuG+9F0dbZ7rcbWt5vqsQ1dAXbsQ7/gJEGFRml4lfZH+MI9+HyNfsKAmj +z3DPtceKqR8cqbFEaFhIZvKnRnNESUqLlo1G5c0gYodc/TfuoX1FuwmiIfZNTDoh +mat+g6TwAKVE5vmzsMwLJbxHP6HM4kqd3+I0C9jrkh0FnjQvqikeJA5RH/gnKpH7 +jTwD6nE1+Oy/9tzYuPTiWporDYxxQbnad2FSV45vccOkIQuffSWAz43WawtqCyCL +RhO323d9TjIDbOp1ZIHuVX/iRGyC4/RBKO+CeSJ6FPnfPxHq3wFo4ujDbi39/Xw= +-----END CERTIFICATE----- + + +WUS ifx keyid a26ceeac95fa33673219d0c2a77637102fb53ff2 +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAa7FWkGss8GVSQAAAAABrjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkzMVoXDTI0MTIyMDIxNDkzMVowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1BMjZDRUVBQzk1RkEzMzY3MzIxOUQwQzJBNzc2MzcxMDJGQjUz +RkYyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjjlp/WYBqspIvuv9 +5rl7MHnDl3hrq4YKHuKYNOiGWS40yyT7HrXsVhBBrArPO6KNjWdRNtuikUk52F3k +VpmF+TLIQ9IuseEIHeY+clcb2q4Wn73TaplVTrHEjo+c9Wk4wEgbw8v+IYbU5d9n +pRYTMM9j9pupbOwBBWTIJHL3Qx1rMgHS/3d32pUBFGq7dKp0YZKKysUDLfvLMkIh +f/o8STbF3xGL/GsOlaviYwRXk72uBXYMZiE105dDGz5ciSpjI2bYneJ4XxNwZnH5 +a7HMe4FS0YMzBMqQLXqj8z7bNLIX7YO7ToAu3x8wqNzVZuV8ND+nWqSWOZtgznzV +jFhFivbDcIBywRVV0PupS/iNRXcsaEWsHSrKiYxCN3YApDMqicf1Saw4bwlqfbOw +CTo6JTrhEiyK9T5OYq4Qwy1lnjZcfUWtP7MsgVOGHKmXBPnq6lL2s3YKeu03GyXB +RPxggW7QeHvY0XkUHIr8gCqQ5LykhVN+8T88hVlw38+m8+0UNyQsK86Kc3Tro48C +vKqrxS7ZQS5KwcX+yMg3HH6DwSLAzoHx6d/tsY4B6RQ039DtTBpfwzSygOoTbD1w +8QsTNI6M7kN9WveUg1cydWEkA0YQ02T7+y23rDRpwVGUJa+EEcT/zPDoSROjFZxJ +BuSugPtJtDiZmKS6v1kNraqFeUECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFN8paFTF2IK05NAG +DdVpQvwmEvSvMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAVPaxxPs8UdSEHgznGp2Ic9GjMoGP6SDx5YEvlQ2TyaqQ +ruwMbpdQbSEe1bLDTQW+dzaCJedOBtVs3TPKzuCxgCffUR34NN7hCA6zaQvnsTFb +/fbxZiaSGvDWVEtNd/VcgiDJi/Bt+PiMTv4CPq2z2L0xubzGcJ3MMF0qacwxc3H5 +a1SGTCCfFUSo3TnINRTXLN/s1kR6SCSyLYEuOAc3iAgggxDNfAgfFa6eJoXeKxnI +v7C0zAZZzfK/ptQ/Y5kPZre61f2yvwzyvVw8YS5KT42/mAWsfE63Xsexvru/jjJ5 +VUWLkqvve0g6k5ur5XGmEnA3jyKterX/TIBnNBCB/WltesYPavH6kAIX2/FtT4VB +2+8fanwsszX2MMeMWmPgVVmeNZf8fl66D6KnASYvwPQhIS0vLMjG6KSZcnlTObvB +doWqNp84Ui5S0P0EZIq/DsEJpg2qLBSkJAECGM7jmZz1v/p9FxwWO+L+Dk0NpSp4 +tQ5q8M8Ppuv0adhGtr3W1Q7Kk2pSzq3BdFvgpyxTL7zK099QLbimMHX4QCRexuRI +UhS6QAtjhCwp6o1PNQTD9722MhYE+rue+3xjC0GEyRUwFeaF94mVSQrwSnOWTcWg +XafiWGleJJC0sbTjJzwUzryB0MHioCk6lzkBa0CasFJdqdaKIHXg116tKmegUQE= +-----END CERTIFICATE----- + + +WUS ifx keyid c2ef641c329cb0a9f2eae04bfb10c99b89c34614 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAd2qWsxsYTgE6AAAAAAB3TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAxN1oXDTI1MDIwNjIxMzAxN1owQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1DMkVGNjQxQzMyOUNCMEE5RjJFQUUwNEJGQjEwQzk5Qjg5QzM0 +NjE0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvX85Y8UW69H7Nuqk +ld3DATJqrWvyNzDXHDPSr1cOCBUFBWFYWcBI2IADOVrL3/OOW7X9FD5TDys2Sm34 +SPBRWSDN0TxmBpX8PyaJyuRvYpcfovs65TFF82DGxEbH2Z4eYIJnBEYHJAD6K5i7 +A7uTkfJuSWP2j9/NjJvKePMr/G/QJXi8mtExaTzxIk7K4ikvz/ewNg1T58lPYVTS +WpLP3WyG5gnN6lj0NJahL1IwUQq20+GqJuUXbwUAS+567WS1iYAbzko16qPPw99l +o1wwIA3+dmatlTtJhuV9+N83Fi5VoqciBnY24dfRw6pZWTvp2s9eGji7eFnmrxGP +mX32MAu5PU6IVb3NIYhO6H9NTPyu2DPCdojk46oCIJ3EkBKFRqb5FZXNMrbpsov/ +vow7PpQdvXhHjw32LUWdIEZNdXfXtieiviSHQavNOUxY/Nw8ER4t5M2hSSxcMAun +CkrYGMkq4NTbikIaCwwA3K7eE/qbpQizNFZmLgBKhoOt8dr9f2Cu0D9AFdWMbiTD +BGpA0Mt3pMKV0//xdj+Yh4iNgsZSw5gVAXKlbHrjLp61Yxm7DaciRJnmuEgDSNMx +AUBJPFUyTAh5FPrpJ1BT+jS0sYODho0PzWDvmyadAI6lJPpcEWy16gwZByc9lcli +upky4OhFG+LA2WvjzmyOMXY8oqcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFT4gSKrbP4T70Rx +3KJJqEEWW7bOMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAjwggZZ0txbQncz55DK00MGvU+VpQvkKVz49zIy0F2h6U +0D7ACHkKVM/7e8b2tuWb5fnD5tH5/Nv3ECR1e2FLV0MWlZAD2Kek82xkcacL27mt +1OtW6wUrx/SO5Bg0ZrjJxjHfBmyrhpY1W7skKlqG9oRgZPa9e9+1ewFCOZpLKESE +wKn8ccN40wdPSygNn09Uk4O+UDz9QoNm7vu8zBWWYQbv/c+Aqb9nBKuqk7tyhjsj +t9I3pL61kCj0BUssQslHCjlvg1KWp0gtJ+ZUrGG996gnUZ3oVXb8+SMbQ/4hk1a9 +E2j02tJoNmX6ydGbHV3qyi8j3kaPXlqr1WISk80xiZItHsxT4U1dNUV72kEVGD0q +jSMJ030ufNwoLsMr+Ts4MU+scpm0EWyv2y9zOrEgAScKOc5lB/WrhNHM3wlNwAVF +VvicLch1tZfClkgZRL4tzddelOXdFhzpIB2M62u4f73XOhUS4YCIozRF1ryqcf7Y +VaSjJ//QMQ3TPiPd3ABFv/CcRfKtEj3ODGs++rPK15wOPKjqFvtd2FCAEAZBHKIt +o9yysYZJV8V+yMiEd1dPn29zgseJxllhHCDItqT5Zyd3DiKN4CfIY8O/FnyT+Zmu +HJ89bquErnE9uttpHa7/vFzhMQ1/y/Fmg8Q5ESh+1pobBW86odDa+TF4PlacCO0= +-----END CERTIFICATE----- + + +WUS ifx keyid ce77153b6e110ca4ae2971a09851ef499326202a +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAa+miGTNZLNKAgAAAAABrzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIyMDIxNDkzMloXDTI0MTIyMDIxNDkzMlowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1DRTc3MTUzQjZFMTEwQ0E0QUUyOTcxQTA5ODUxRUY0OTkzMjYy +MDJBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2wElgLck0QMIgkNK +PSjXEl/lIxzyagTgNXo9xlVJLOTUb/o6/kYH/Titq7786Ae2hhXL2Ct/0kf+uvSQ +RXNX7vvw5hvRtqjfz36Z4f8k1hE5RgsihkovYx4U2jkPB0GxKnCaGQ2d5xKJplAR +JmyLvVA6MkhI2zpRIKONDm5nGZXlqfiRADymWnDC8I2hPJFmmRYvFQzvdXKObsuN +pv7uuV2GLamMJ/nCqZJFO2fe2KMAluvXbr3ICZ14LAnW2zWDXlCg0Gs6rM3aOVGe +Aa0O/zB+1uEv9BrEy2iSL8qEBEe1P84hiot3/TjFs5A+7L4gNCDqv0nqlzXPCKKk +oj9DRJtR+1T/n95ttqFw6hG5aDaU2QsYhlNjCNre+oBTSMKIMqnUgnkzGyIHBDe9 +BXZmMZ+xkIf7N757FLNTpUWdRFVNP4iMj1d4CPJAcmlx3+ZwDxvG0CHIgM+NUx5+ +JgFBHNXvXdAa56NoVQcb7EElZW91V4RAWgywgNzijzL1G92zi1Acejg+Ks2Du6UD +6o70jGmz7Ijl8rqForo2LqUgL1MldNn+1toHu78YEYnYoybalPXNESAE/Z+5TrCm +7FTQv7UYrBeYBcGcef6C6y9g3vBpm58y7IlEYqUFzNws/pYG4KuCdKlBN281kghQ +crDsgP0Mle5b3emEBXjkG2I4tfcCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHLBdk/BX56JU3sG +efGUgzf7CVJhMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAif6Ygv+MwbGLUlh/3CxWlf/si4WTKm/+l2BHYXAdN9w6 +wT4UUrPr/dmtxJSgpgJLNVuHNtRSy7EYv8wbzMYNzRkc7zx55rO/9n8/2ynYqnPd +emjfF5e7TWyPJzKFODdrbY5CuMWPxUcfQbLrfggZkjdnmvImeQEP3FXbweeS3tlz +06Pa7DVj7TT9X4I5OMYAa4EZ1avn/GtUG1F6MYbNbvvqCQ3vDVtfYjgvV38PWZ7q +wS+kHe5psL0Cxu5DOqNcAoXhI8LKb8eiQxZDfttAYXbAWiDNKTN8Vmut4rbAPQho +D8iHsJXrInW93IxDyaLM+cSszHG/v/C1ZSUBJB+5OVYz9bhWQKx+O8UIL+Z0RQq0 +hyflrX+pKtT7FrfnldsSEkUAuhiagwQ2Dt6uUKAiT20wnT5YS8hSS9N/CvhJSrca +gbbbhiYiIG2ZvpiF2+JaxAzioWXnFyU2bYhyZeFZ/Graw8pZi7TxtMzWvUfL+vFe +ggGdzIiHrLyu2BoOpwIniXUBQq8wO20tDqE4VRfg6fcdNecOw4W+K9JOvp1Awz37 +ec/EiFqiwBkk2Gw+1reFTDPH01S1XNeVanOztTh2T5yP1vO/zEhwbDAf78jyLlst +m+Mc3CIsIkHSmZ/aeBoH3JahKjh4EbpC67s+SpC4WqQ3mE5YRjHIhx14v8E7fUU= +-----END CERTIFICATE----- + + +WUS ifx keyid d8a3f556085a68c8aa5d5fe079bcc6e9c6d37764 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAd9aEQaxas2igQAAAAAB3zANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDIwNjIxMzAxOFoXDTI1MDIwNjIxMzAxOFowQTE/MD0GA1UEAxM2V1VT +LUlGWC1LRVlJRC1EOEEzRjU1NjA4NUE2OEM4QUE1RDVGRTA3OUJDQzZFOUM2RDM3 +NzY0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtaBGAu9dz6DHALyY +T7TK27NSl1sexfL1c26uN7V5KWZrOVLdOEWRm2FC2Noh1r7edR/dAXa88Vtfrduz +1niMk9ep8JwLyKlF6MYvwXL3gCZ4+b2GK1aF109Ds81G0u/3yE/xDa55fuaCjCdv +x7On2/dMgeA7aBuaFf3lsHVOOthtDR1Yl/t6Z0VnBM4f708+nqUZ+3ptoaM0KRy6 +F0LC+9p9vVD7fqpHkNtd5YKdzOZKfC2xPwq9/AvZhCHIsmrIyo7LYwkrve5VJM17 +8NDPuda4UfqLI0kexElFh0EFC6yojkuxW92sflZG6QuE62YgZNSCgz2OaGWEaOix +cXOx4Vxbm/vsR03tjM4kV0MTuG70MUu7DQ1lKCcUNddDGCqsGVWfAcvrflNeHMtE +gNN2kreDXz4k6xz0f+fBZthCJdq6m7zxKfgSnfQa1v/pWxHiX287PN6jiVVoQWbx +F9YZn9YipiGm0FSd2qLZLuj3I8aIAx6AaZ/UVFI4Y7WxJ5D5jYSnvj7feekHY1f1 +0aveaLytt2/2coN+WzuIHiGdHspLNH2ocPMZVnlf6XsOsr+kFOC/3Rrz5h1n+16z +6u1EXOd/MmN22QYZZzWScW+z6KtMfpzMuikenRBab8kXTwW3NEJm/2lwLOQPpXjY +s3alId+fAZpmZNT0Cj5gv3Ap5ecCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOYDYX/V0PxCL3jq +hAuFm5qqR4KTMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEACGw/HF+6Tja0hNhxeLNWbVQPb7CN2qXJehHrstqEM5iN +bk9wdso/2QxGWA4ELW3DGoHkB53qlUWJTDR5W04UzVrLYjqVUcTLEojg+Z31OSeQ +fKeEo7zUTF8h9aEs7awSE5pMJiyewv33w8Yh2Qf1FoC0r6gWRTvKgHDkVV7nNDgu +GvLLSDFYZuE3CLTQMVwyGauGXMVsmqnqVV6yRocIaRU0Tw3tVgnQvnNPs+a4ICT3 +hoJmm+50/ZHCD3uQnQ7JBDMF2qX+sEaCmaCaSwAE9wRm1ojPFsqi/WBZUu/nq4pU +kJuOHUS9AwYbYwkoe+UUBWhtr3jWJ9Bz1CDI5YdIsO9uKs+Qso9luqyo78c2Lp1R +RTo5uEuqBHQJ5TrmScHfbejOzboS4dmB5pW56S2/t/X423ts01rfXJ1he6ZY6ypc +OIrXMpo9cGGNKz1Kccc8tLUWQj88zAYI9cae1BRBlUZ7l8v/IC4kWB/HuD7ctv/E +deOg3O9yz8wjrhfU9STuSuPvjRj854ji8Yz++mJ+VueRzwUKBQRR3ujJ4yyYcvn5 +nqTEYFB66nUyirDNp9weKdZkut383VL4vYrg79L5qPu39CnRmAlUsckZZhamOASK +9eGsbnZbRG3kHxbN99uYORWxBumuh2O/wCda5xvBqYHLxyPDjNeCdf62K8w7RJg= +-----END CERTIFICATE----- + + +WUS intc keyid 17a00575d05e58e3881210bb98b1045bb4c30639 +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAZektHucHY3E8wAAAAABlzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MTIwNzIxMTcxOFoXDTI0MTIwNzIxMTcxOFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtMTdBMDA1NzVEMDVFNThFMzg4MTIxMEJCOThCMTA0NUJCNEMz +MDYzOTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAO442urRzVXMRCMm +CHHX/YegHjNbj0AH6P81JC8MKqqWPF8nK7vEeThBoR5ukVc0FHRoq+aYn+JbKs92 +Hl7RH0I7TGFkH5NaGk5IG0X2Y5q0r0kyjFb/OhOZUH2QRh4kWV0R7uKAnbAn5T7R +NDJENdHxa8RLtgMaIg7XgD7WxIogeTzHjEOySeIFDO/UOBFrJR9CQEyVZybNi/X2 +Rrz3YKkE6qgzdy1cloFwByajsoe/2hoTSvUzKAJszI8STBS/cyiWeV+Q9Z8yl0ib +RKblM1ovdsKQW6YQHxyMnii4+j2IZ9JuBrTKkX3BNcQ4pvy4xfNVhdfPBZAhsQtz +5AGlk1JFUGfhzalxzyxWsiL9tGelxhwpjcP3dIGQOYC8Me5erlmAnfL0Ey6+7WrE +3JmVW5uvF9GDGmGE8RMU9PIQqd/uYPnwinrJgkbsqsobL32ORigdD3NOAK2JleoN +yzeN/3rL7ubo/bDRDfkDK7bdP59exNsl5OMTSbIMIYKs18wkPAY1w7rrfIOqllRi +3fojR7OuAp8V7qwoYXSQPfEdTTk1FhsLOIm6Mrxs+IeVBiQuo8zrxb/aUMyp6pVM +7n3frm++dC9dqAi+H7AkvXLIOwafTCsFrCyuqkmFqmkRTSzlYw3u6jbPldnUNhdS +m/MeIhCFSsNXq1Zwv/oiOQvRVWtrAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTggfneSleE1/ua +sl7VdCG6+n5MhjAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAGv8d/JdPw99lm616KyIbYr7pz0ADackzoc31o2oaEOA +rz3kfjBuGCjQ5k9wyFdz3T2NsVGqzCkdGgOynMp69jBTmB94uoiwg/XiIh3//VFW +ILCScy3NoK57V4jqHAGn1h8z6QXX0rSC+cBQ6iwvwYW2Ve3v90xTJAOws41MqTtg +6YZvH1f6YCL/4zVPawAgzzMn7nY6hfHp/5ZcxVg+evbV9KaZQtdSF8hUm7hP5Jyv +cWXaMM5+qQ274h8R23xGXVKMqzbIuCVJk2YZYtdrq/kMB73Lo2efJGQdpy6WBzRw +uKg0D1WcJRKOlq7kI0D2nDT+WQ1ALjbwn150B8pN2xeT77FCxtCcgTEYTyQy9x1s +8vkjS6L08OsRSsPWT1lZXk7sD7lxCpFr0HB9gVM85XGGoqxCNU1PQaxLtXBZ4zOo +gshF8zLsufXgFDrEiFv2iDQLFvb2F2m5h+fB4iyuKfrbCR99njMjbvhhuMFkI2Ub +7axASNjsiK1akCkO1iRamo9FYOdSknGB/cAZigtC3Q+chbNl9q2TA1bxmRl72UBw +Ya37675qvXm1JDpf1oW/d9rFMkIgFVn7thoBXEvY0GyUopIqNh/KdY/Q9Uey598w +Osr3IyauF86c66DVrh5ZBmnQ8A3Z5XRVFyMSicI/YIaesZwZIQsAFUlxipfgfQ/L +-----END CERTIFICATE----- + + +WUS intc keyid 9aaf591ee263caae10f57ba04fa8d1dd6613f9eb +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAtEyyPhjddm+rQAAAAAC0TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIyMFoXDTI1MDUyMjIwMzIyMFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtOUFBRjU5MUVFMjYzQ0FBRTEwRjU3QkEwNEZBOEQxREQ2NjEz +RjlFQjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM2hCV5XQSRBs2gr +AIfvZN4SoOV5rniJkU9haKyJ99pgiaq7fUa4uCO9g19K8GG+3uwrqay74Yt/4mkY +HBlT82ys5lYXw7Kp4t4C4TCbI3twtx6NIH03oboIpdjuLQGgs0A3YpeYplysMMes +KD50QS+4hryUoybIYv36UCWmYBXNm5zcMKzoVNgRNsmu//8EQ9+jVQSEm57drnyb +/62yfz0cROBnN0dUwNbd9bQ8a+eorokM+P3RmXqFPT7ht3nHeQCd1b+vq8Y2LT+T +LBcJjYcCGFkCPaiPf3fjgBRriLTMJ5F2xQ0sypBmgRmQklEqjyhC206ZGG2HL8em +dXpB5KnlJBoShxdIsJSlhRRgmV19pv+Linnym19CRH6DqC5wnI4bYueTnfNdvkl4 +9ex6soOg0f3Y+xEyXdx6GS+Ks68yHnWR0s3K7Ti0UfybegyJWh7nAUsdQSoKN7G0 +Pefs19Ouqhs0PV1x5U2VBAgJQ7dvjZRQAat3uU8mHPchGXyzcIIzZ8IQJO4vFrNt +yKK+ubRejL1EUsXNhEKrDWvx2eGWOKVt3uKmYUiZgQdCyxR+fZ6tzfQsekHwtCpo +mjfXTXWp8IoWv0hhtNYxJzgCUMl2+qFbHWgN3ujSqvWfj3cmTLT6H8MtjSVfQLqq +pjkpN/W6feQIxYaMkL+6lmReuJkbAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQPwjDtzRoTAZjD +kAo1lVLSViuqqzAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFkqH8WT6pOt2nI+rU+300C/mBtV8QACEDD73ZparX3K +Hop87Xq7pM9CB9g/h7YYTq6BZQgZFmZC7ehQFgzywt+HXfP4bzeciqUby7ZyUqxL +j2WrLdw7bE5Im2UIJ35MaNOM0sjgOADOPOwwS8m9rbQ3VvmzBB3hfOnc9o6Gs1pj +WdC8tJD/cYZkywu3oXzSCKP6DJEXvjpQMfue1BuHVSzxpw/9/UPiZXA1ZdBZwx2J +grci2/V19p/fEYSMxKDsxhg91K8i+1+vJ066s5XCDL/nqYRyOjzRzVTQIkN39OhT +a4m8ywmt1orULaMGh1Xcy7VC1FVEoqKlToYT8IeTqg8lEbVS9wuJr5sIuZqHSbyM +BEhERGqKz2OTp+UH4zbYW1clohRFVg4rOk+3S2jRucsQPJFxP07vZ3o5skJgO1Ft +6kEO7hExKUplG77TWZy7K/801om1nOH4t/LhdIF2fULJaoLDEleL0FfKTIxOYKoz +pWaCMriZyoGM7zaLYhY6Ae2cuEj/rUUhsJTHu91Y3KslahHJIGVb+PbIcF+uCXJp +AQwKrprjlUnVmwoUMBEzkW9PaoBzy0AW5VJykn4x6qfvaX1xvIqT8bUmAXfbCn4p +DwZ+/AfpEFE376eRnmkJwBXg8uuyVS+OIHoHK+HBMPmBTO9VwDRS4CmpN+ITgdMg +-----END CERTIFICATE----- + + +WUS intc keyid b066d9697f5d3a07b425c10f587cceecf16ffe58 +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAvQEJEtM3MseegAAAAAC9DANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDkxMDE5MjAxMFoXDTI2MDkxMDE5MjAxMFowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtQjA2NkQ5Njk3RjVEM0EwN0I0MjVDMTBGNTg3Q0NFRUNGMTZG +RkU1ODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJCCnZEeRgB1XIl2 +biEr4ffjqSRZE2UJd4IE2fVTqZwbMO4k3Xzwi6elX2EkaogqfLhDgWVfD55rU3OX +c+rmY1dWnFsOZ69GEEQ8qYdMPVGM8uk+Ggl1fsuEUmLuFgRokPnbCpsjO0WITwE9 +VJhmhNVjV00uxPmqdKL85Y1h2z1gw5xBfsvzvGrfv6CRPVEjsKq2M3SNC9QV+axO +YAqsAVTMo7qcECrU8TPsbyMOKlNdQEp64rc7EqrJEsKP+H5Xe4hGyTN5gJSfdv0D +XA7JdW9PshcJJmwEYYVY46C60LGT7p43DZqmvWJKG2Cp4eyMW+5E/n195n/v1mb3 +WwjLkDXsw4dQB0NdKVtz5OxOlRnDHXryHmcTi2cTmx/NduXhy3qONWHKcUJMDkZN +R1D3MjsiJaAdcEY2kuJZCmUvg8Pc2r3OVnrY4sQSkda5mbyx6KZ5omyTgeRT9rcw +uhKqaPdD6aG/j+VGEsvNfdD/Zz2RjbVi2330GpXYcGARKRzAEh6uKtRgghzWmKpc +Ezigj9pjZuMewKDcKgii4ohzJ+abD25wKOVgTfLbMWOdEuoXKe6Xxv5S1h+AaWoQ +ip57RZwj1fUCkN652QniIVuh4Ga9eClTERPyci4pyuy1DPYhTm3CjoGxD7PoL8WS +rw+EdTMAmDfd15EVW3rNjMSNkMvfAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBS4QGhrdYLLmVc/ +qN3xqBtCdyCGHDAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAFnSXkiK2GNproHmi5TYmrnYXER6SIJiJhbwfpeSuW5J +r/KNimMLZa8EUzLmb4qjlj5LqcxDGFGSfvqx4M1CKPubyT7kNEJJJvG6cLYABAbt +/Moia/bPJkk6mgmIBFfN60pbRGHxspO7qU9vuFgV5Wqn8Kkv+JIMU0ZVWet+7oVv +i+33hmAvDtEmaQvNTmavq8zBSqzNX/wtBCogo+fDYhgfpIUfo1X7cWHrF4oTNS6R +7ZzCGAMinz1JMCpTwzHnHIP4Bt5S2k/n0qQFC9wZE9srO45QE/bzekiPM59ifywm +H0704VDmdvFluelIslI9gLK8mqXQWyCcqGBZhVkmx6l/4ZSaUBd8Oeu+HojLA/UB +trDbas6iIoftY/JmH5VtOR59WMqOXKFFkHMLRNhuRU19ZeqOdkGwpycpB63ijwvn +LC8MkOVzCu6TGRA/XRoLDujTF9adSt/qNNTF9VHeoXkEQP2P+L92dl7sShoIDrdR +mslS+MKJ472UWCu65Jthk29KXYxAZ4PU8aU4LrdbgH4EC1KEa1sqCM2Z3uo3rzZQ +/SehebXuzP1sX4NmL01K7HMNIK101AkwsPcFinuRy28RpoDa1lstCuC4NdtkM9O1 +lO5Ai5P/xC1qEF23u40PUNhJEDDrOfYUGpObtENqIX5HWvJWfLRFnOJfgZ2hRQ4t +-----END CERTIFICATE----- + + +WUS intc keyid e7083f22152a7492ec59b0c4243437648b15dbb7 +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAtJlMfxfe3kISgAAAAAC0jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDUyMjIwMzIyMVoXDTI1MDUyMjIwMzIyMVowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtRTcwODNGMjIxNTJBNzQ5MkVDNTlCMEM0MjQzNDM3NjQ4QjE1 +REJCNzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANsHFapiqDMZD3nY +6Jevf1zAWMI+hV4w0CmSZEb+S73hBTplWkg6uv75G7P/x4AFle8/uOlLPOqLlKKK +nNNVPAnbS+WfspyUFMSsCF/ZOEaP4YBtdQjuoQxrN7X5qmY6C/ZOgt8VmVgkza5P +ymaxZDPPDKEP9LatDVkUzXutiY1YsUGc6xMq/oa4I3JL7I6nXGWxVN7slSziYHAh +BTpef5PK235k6AIE+oEbpdmlrEj5UT41SfFIyC8el+Vy2obmuulsziyzyUCbZqBQ +9yHa3ACCUMqIaDvVin8cEMXA6jcxVI+oYug6Nx77735GuC2we2aQwlaRvOFvxZLp +hIb/3h17EqakM0NMxFgIVxvvmnmrNIBylN3Uhh6FbvCviWssrl0NR0NNFnV8KCsd +Isy8w0ALl6wAh0UCitEKuG+fThczYQpMv4KmKPBF2Kq1dloXDK3f9bT5I2pGXpUQ +HmkAs8TSRNlTso6vfdZ5g5jTJvWNJGUA2H5IgAWs59+ZHZVMlzbGUBIMyo1Po+KC +lGhEXmBA5Y77qWob/ebAGLibMH2lq9I9eREa/WTpQxcT7uInO45XaU0cxcthNNKs +POyg5aX3HoClpzPdvizE9iC3y5ydjrvndcg4D/jLrUAZJLwmS+VP+qrDR4/AG/yi +S38lPvAeeUQD80WX3oonZBYHHd53AgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQkq0MpY1b/6VBs +qtCa/7QpVGd1nTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAJ24mLPy6pE9mVLnL+VQqlPNxohciCr7OeLFudlqpVQo +oX2Tv5TISYM+jXIckTgqUnLkTP330fdt38ov+K/ZCnw6OymkaqKgDXfojhcNqAmC +N2fX4j8LhOPhidqxOy2WlNkdXs0SF8c/iR70jsJoXxluotuKbciZ2b8gZquyST0R +5hn8k2ea59/XO0rzIeZ9fozCDmDuBZcejtFync48TkMUDlwjDLXkBtGBkmE9ZVLL +3jr1Mu8Nt0gal7eHs3IxPO6n+kC33MF7PxgkWmzqOrs+nStyj2WLNqTkiCCFhEBa +ePZqptfMejk8k5HJGtqVg9OE0r2HFRQOxkES5BDXwG74L6nw9plEksjjz2tXEKDj +u9JrL1aNMLgy035exLjWgRa+xiJ9hTgnsAoM9zkJM21dHMnHwGL37YD9lEHyLX+I +gO/r/WtKoiJScaDqmdow9EmGTqvUqBcE+z3wiT0WIcglea1JidVIWAnoeCQApybX +17ihBUYgUycvIc6QpmHqrlkEutPc3pQx7ThbIkaq2Sx4VkDWGWw1H/TPnQ4hSEM6 +DlWJBdvdWWoH4yXpF3HZvCBtOyXabnfpIPPX4G+trrpch4xaLxwpDST1VkJ9xRSO +qoQ2uoIrZWG1fcjEtSh3P+zxDJzFjl0GGJ2zHV9G/N7bvngbho/SV3cETzZoL8Yi +-----END CERTIFICATE----- + + +WUS intc keyid f307ba33347c283a1e0c1508ad02f5c8ca06f45e +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAvbLTMRnyH+O+gAAAAAC9jANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDkxMDE5MjAxMloXDTI2MDkxMDE5MjAxMlowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtRjMwN0JBMzMzNDdDMjgzQTFFMEMxNTA4QUQwMkY1QzhDQTA2 +RjQ1RTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOnkRB7FnwcwH2j7 +WhQAhOWg00Ki/Vjs59YnkKFBEMYbvTcpkIaQ4WdHJh4rBHEPVorVi6c1Ikg3oVUZ +e3t5D08g1Hr3mNZaGUmrbF4OnsDFuWcIQIDgL1umnC6xhIzozjMVEz89sPky462X +cBEkEx9Q+Q8lSzpyop5sRokCQyjuLLP+DTKm4UzoNMzMK16W2r9PL3HP0B3uhXUH +CsUZBF0O7RndTIDA9XuSZlLJPQry2Jo4cDOXjUK/cMmPQtY2jaaCXGJ3b0a8HBxE +a2YaF1XrvKcdChFu0AYa07BZ5yi9l/032P1C4YND++8NCNFO57smOeNF7oWq0IiW +iHAGB4jaQHDPGlmQ0gxUBWF9XKD1t98fVPbkXQs//IZfi05FWkSCwfmYhsl2879E +hc7KHasCVdAaD6vW9TjgbvJfpPGI+XYahvNto/+zX1RfIQmgvDnT6gtBuLxsN8SF +jhSe/Laq7fQwL6MKJ8wULyyUK7y+414bWWsvm/vQ9nHwT3ImX2PxH3DqRIMS5ctG +AtCXU93k9VkG9F3YN+QuVLrdSbYIYGWx6PC/acze90vjFvNakm17egzO5IcAGCL1 +ePxC94lJMtEK937eqHqzMfabBnP0QIJ8ivRhsBKj10F0zEpbq1+awXvEQw0eIWIe +BO0h8ardQYzvXLyrKDi4fDfCux0TAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQVJamGsfiscuFf +i2b2vklj+9RHJTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAD8LYHoqLLYgIblCIfQYvMiSY6kInAX63ZQqHRMc49QI +UjISd1NfckI2CAU1prdJXjUUsuWlXh0ifW/5AKYbqQ0hBQOlzDygIfFUQyiZrb2A +gM+199K2GnYIE5xTSIlt0aqHz8tXMuSR8DLF46eXN1SVsHT3kxSLoFaMWwH/KXlK +j0unRP0Hx3I3sDOEnTNJyYSWsnZUApW5Boq5DaFc5dNzTQpPlLkziO08LLmt/msc +26GjBzVeLkcMDyTeN+Uj9DqpkE1+RIiYF+sngQ+3YcP3gCnW5vmvsA+LEYk4lDZv +CIwmvdZdjahXwZ3GJvsVPesnxNF3fON19po2gLe5o+Efq6pflU9QBsSPP3yAJCa9 +Oj00HxiAdpwPVRYXcD9Kc9ERH2WJdeg47s9q0D/bKB5FAWRiS5dIo9OKZkuh0whq +bwSNxfUe01usmr0pKFN18zesLP5OJOMab556cXhUti9Db0L1kTXgzHuqy857p3zh +kKUs73vTndD1vqRUq5cye3HS+2xsNwkqy/35Tg9GOku8UWlMbztKMWdpvOREnKOb +FQjyuz8Ee1DjLIWf9BWwKCg3LUU6Oof1/jxasXF5+P8++WqIFyVFPRzzqbdRPlQJ +FM3PwskbLdEOeFi8vZ0DzqOyTwQHfEUs2LQcJ242Ow2gSfBFuhr5R2WgGgzQJRdj +-----END CERTIFICATE----- + + +WUS intc keyid f6dcae3808326f10a46a62d55fe0a9cbe841a3d4 +======================================================= +-----BEGIN CERTIFICATE----- +MIIG7DCCBNSgAwIBAgITMwAAAvXkoDYBk8S1xwAAAAAC9TANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTIwMDkxMDE5MjAxMVoXDTI2MDkxMDE5MjAxMVowQjFAMD4GA1UEAxM3V1VT +LUlOVEMtS0VZSUQtRjZEQ0FFMzgwODMyNkYxMEE0NkE2MkQ1NUZFMEE5Q0JFODQx +QTNENDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKikCph2pBy6EaXU +5G44VceO3cXOYVPufbKGtGjlvQxo1au5i7fNStGglt1YtzDEUD1nD2CsgDBDi5zv +CM2JfMczcavTYvI/zJUjR0lMjP9tq2PNkUJXp+wM0gDgkDvSOsAZJcWaRTeG3Im2 +tmAijRO0tkxuw3mPcwRL4gMckxf9CNS6q9BFPfIjlfCqBA/IAKklSuj1kKfsUh/r +vqlb/nX5Poy6ZSWnOFFZUTWm2+5XKU6TO1sPRtWiLtNXfib79mgvSExNmhA0ATIx +eiyIZ4Q9cZIJN0uRqVGHJ9Td+APVnWAzibUgQfSBLcL9oX9bbtaoB7PX3nTgerlk +TZ51G5iU5l9J7bfwRvv6jrJ2VXMH/tRIiVkydGhokFD2h8ZAP2dfXHJT+myQN8ww +S4vX8ySLJdpx2diI3LdqTN36qEGI5SQLXaGtft9nQ5cjhjsAteAVPz199bACLEIn +QNbrIcqVrmU+OGthCmUVoS6c83uF2GgrrqyHoCIGU0+jjWCG5sDTpwghTNipayQ+ +hwVinH/iOncbcLqFaM10T/5Y+rexwW2az3QrhLU9ojJf5vySkMq61ikvIvj7ZlWj +7fUMQnLo3n270B6m1nBih/qbfSTOl1K1MLfGehKeN2cR5g8yEPNR9qRs+Xe6EojJ +30QNmbmjRnxj/IZyH/i1AIWFeKOFAgMBAAGjggGOMIIBijAOBgNVHQ8BAf8EBAMC +AoQwGwYDVR0lBBQwEgYJKwYBBAGCNxUkBgVngQUIAzAWBgNVHSAEDzANMAsGCSsG +AQQBgjcVHzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT1WnmarvtzSxvf +PzBp9xPQDWJOuTAfBgNVHSMEGDAWgBR6jArOL0hiF+KU0a5VwVLscXSkVjBwBgNV +HR8EaTBnMGWgY6Bhhl9odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2Ny +bC9NaWNyb3NvZnQlMjBUUE0lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3Jp +dHklMjAyMDE0LmNybDB9BggrBgEFBQcBAQRxMG8wbQYIKwYBBQUHMAKGYWh0dHA6 +Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVFBN +JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAxNC5jcnQwDQYJ +KoZIhvcNAQELBQADggIBAIOEYzu5vgJbnKPeHA98njIE67R6f09yDyWlbClBKk0k +ekfVfBCe0sU85ujmR7QuMJfX39to4SSvV9581tfEMNlVGWy0V0Ct3nZZp10yRSEQ +yfrV+kAVdLK4v3cPlpfZB8JyvLmR9TKxZDah3OpVHG6QS4nCmNwIlZHwTHSs31Qz +0R5/5rsbZWE/21PMNuqsrYRBDY9OSwuEDg5Agvj5doGI+f/EdrXq7nbjquKiNo7W +XV27zWilk7YI51tDFAUcM/cP757u9o02hDQrIGqvb0O+oFBpesTd8cgYt/K4u8xN +V7XGnwo8DTOaEx5QkaScAwTnT36rHDw/7W3kfBOj6Kdt4Yws6kbZL2T5cHUxaKGj +Klu4rb5YX2wYBc7QnV2WTuuV5h3wGIyWGvuic9rZ7YkEXvP4UxBFpT/dHCmBK01W +LWPGFh51k8k+VG8YKpaD7CRPAv5DEqbyjUAKHip6LrqiiwhFMYJdAdvni+jXCLfR +zJ+CNZjBuvE4WfIc20rdSgsTeFgFOlTgJe4nvD5/Uq32cj4R0OcXekmtbmV4MEzE +NLV0a6Su9ZK10qGt/lEcxkifD2sp0nGT0XG2JK5LbnJsXZnS+yRnbr6AbjI0Dg7n +1EAOqevdqdcZroO1J2GxD7Rd8hOhL3xD/c/ElIwVLkg2sEzRJGrmx2EBzmIBfdJC +-----END CERTIFICATE----- + + +WUS ntc keyid 1591d4b6eaf98d0104864b6903a48dd0026077d3 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAqUCVrttiIsXhgAAAAACpTANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzA0MloXDTI1MDMyMTIwMzA0MlowQTE/MD0GA1UEAxM2V1VT +LU5UQy1LRVlJRC0xNTkxRDRCNkVBRjk4RDAxMDQ4NjRCNjkwM0E0OEREMDAyNjA3 +N0QzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkpUIa6U7K8e2TlBw +jMy+3DQkyDMgtB1AmYUgwVCb3v3LhX5LQmk8w8gfa9ANc5K2LBhygZGXI7qzycjx +flZiJYyCOMkPIS2a+Q91ToXAipae3/8uo+kPsrPP/ODKKCshUCaT6w0ytnnXn2+n +MFRTWgHypoUdTurYBAuzyXDNbkZPIul8npuN6FUWOyTqBZldNETsqxb0NdHxzRhy +McPkQRotcC52DTDt5mKwMwlGsYVDPVSg/1UKRwNgEbeeKkvXi7sbBsRrWEIWoQyQ +tKo7zqX17LzFyC1BsrM7sdz3ahu2Z4VhikYwhVicO/ohleQggVf0JIRI2Hfb5P67 +WokK3E19qrSWdIt/W7hTvkCk3yQcbG1/v0xFLK6Sl1SK8yOee/1a7dViQ/6pYxhg +eZ+hbd755BHO9CFBAq+eGJffdFvSpPnUvGS+Q4DDbEmXmZva+FQgSef5N6FfzfOa +no2hzVKPqmMfULQ+OP5lcpMuovlshIuhdadqqECNQmN75jxfL29FPT+g+w1855x0 +voLC95aFMz4yXpgCHz2KLZtT8xhHygNi47D0V2RB6uHAGro1DjXti6vXSGp+Xs/L +oJOcnVmbwwnNwm92pfZiRe7VuNuygLBDFuRd1L7MIcFWxbFWprgWWoau6JZdBODi +Zm4hJ9fcQjoWFcegc/NnC32bKwECAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPAb53K+HaMKrz2l +1iucfJQUIgH9MB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAibqeCkMxc00T2BrxC3S5UksXJ/zcVz3k+hnGgBZkqfvc +T2QJ6RK42o/vQlQYCLgZI5RVcCtip6ldjNaHE5oaiZS9joqB/i0At9BSFyPVd2Pn +2JTPOMzYC+zCjIlICw8LeArNq7qPTSJnp+3uIWkpHsUc2Y2lrrS7/pLeeJanmeOi +txPgLb5ZCzhtJxYOUhhIOYQwOtoftxFtcHknG8vwPVMSUjMd80qHRjtRhSk6ZdC4 +LlJwdedLzoor7xeU3KvzDj4S+Lq8ajoo1EZaPVKv3IyDPmnYw7PmIhD7BusJvf5K +rPgmzad+XCrLezLveaQ4uELgxvJFAFF8M7iL/KbrLXEhmrQTYEVqKx8NpVFgsTnd +nlEfKJ8I6zqTjdWg6Qg95gJdiuh30qnRrmXtqSpZKe7VwBZrc/J4x7lr/dihNQMK +5owabJH8aw9U/PY0i4JpIoqX9g4H+6PkFhPtxwn6OfQqxKfv6zUWxI6KyoUbENQh +9e9CO0rWn5hMd/USobvOBMp+QKN3ylXCkHDunCsoJ0I7TMRCIsLKSUTc5aqM1BIV +eNIMKD/sM4IjgsPBvbQYMHIgGu5P+1u3MLlUwXBydtMVcLhElg6DiFvdE7CIDjkI +VhRa0AKZh/Q/39d98meBE1br7xbktt//fmKfwOaBj9gpKtpiaK/BrTt33Rq9iUE= +-----END CERTIFICATE----- + + +WUS ntc keyid 23f4e22ad3be374a449772954aa283aed752572e +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAX4YVGRHvR3DRwAAAAABfjANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MDgwMjE3NTE1OFoXDTI0MDgwMjE3NTE1OFowQTE/MD0GA1UEAxM2V1VT +LU5UQy1LRVlJRC0yM0Y0RTIyQUQzQkUzNzRBNDQ5NzcyOTU0QUEyODNBRUQ3NTI1 +NzJFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4Sp58SfgGeSuQ0sT +uTWZ86mXZ36+g5LxTkRecRr2a6UDvqICbnEJPoVdP6o6q9Eq7HC/02vScvgQzUrw +UOaA8giXlfgXDzNwY16wgu9S1AqUrzVIJZ2OCPxEmZItpObXI/kulR512YRa1IZg +rSKo3tNhi3YeL93bi4fQR1RRBDrro1SoBRiURgU03v+nLlfFzxGpTfYCo5eee45Y +DLaToowlQWoblwtW33Nb3VHU1LHL28nHJyuxtteKjJYdzve7w8jnp4sPfVgrwVIV +XUZ7a7MccmSNdLgmDpgmjt7YSgYsvXy9UBrFQtEkFX4ZssOSrQG0D6QU1xoY+G67 +9cCtXIdwFKciF5ixAXBYzz7j/En4b898DVQAfJl85fT6bOT0CiobLuaKJMBXjHG3 +d5AwD3Slai3JPZfnAsNuuM3tzNx28fbR6N0P0UHNb12EAw31S3KBm9BsAqSFwS+b +fo9x3X/8H1wak8eWAdWPgkzwxgQQ8UnXjtSdGPp+ZTLN0uddawsOPuZ/4iEsnLv3 +rCQ4oI1r9SBzHnrdX8zJHJpD0XC+2QD3bbPYQG/FgYyyrb4hYfngryarSNtzyPz+ +pvlXAoSZmV7E5AkdrQMjZyHCC7huAok/WjZeDkSlWMizvGaaTXO/xERynhFhA/H4 +y5dq7fJFGNMUxRTXCaLZCfXc6lUCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLlLJkl9oh1EDzeR +gQSm41zBUKZzMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAM15objzvKTW25Rtv8Uy1wbRp0s7pviyq14a2X64NHk6X +5Z0VjnP4DP4ftaoWngN7IJ+jQLp3yQNIvF5/orB2T6iHXL+j+J+jXfOr1TCHd78k +Nd6aVzIrzKZCp30ddDYabDBZLGqXg8A8SFmGwwryw4RTjXoS7XfjbPlk8zR5h8Qo +KmA6fCxiI87Rv9DuewY5vhbhzttaV3+SEee3ejuharxT1rDTsh1MOgR8LP3tNyS4 +XlDpjQMRmE/iot9Bi00MSqWR4+AFhgELduRGaS/1eiQtFYMvOGpalhdZTqvPBn2t +rwXudbrNN7yBzR8DymlJ41pAOLCrqBHEB2DxfLJaBKi5UJpK5TvTo4GfMUOnvxzA +nV1ThddE80wD9D4xxA+YAT90pmkWAyuxaKyJthnUAGvxLXk9P59AZL9Wx47QVNka +imr7zKn5v/UPD6nd0Uecm+yAX4b6zHPl+EqwnisfKjBKU0Qsr7eBKG7Vaa/er8Oq +eQjFTbmtqGkXaspYBEsd8a6PyTgt9vBalHvVwvC2czxQ61SPNpIMEBu23V52f/NK +4blkXTnP9Le/fv5GS/url5VVpFMwG28LpESAfz3taZPHB4LLcV5KMi9EDysdcY0K +LlCoWMmjoa9BSPXSBGx+AFvfo79zUy0u1f9kI6hnM1SuSCuA29KwkBP5tsnFNns= +-----END CERTIFICATE----- + + +WUS ntc keyid 23f4e22ad3be374a449772954aa283aed752572e 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAqOqTbgw1e4kAgAAAAACozANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzA0MVoXDTI1MDMyMTIwMzA0MVowQTE/MD0GA1UEAxM2V1VT +LU5UQy1LRVlJRC0yM0Y0RTIyQUQzQkUzNzRBNDQ5NzcyOTU0QUEyODNBRUQ3NTI1 +NzJFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAx9KuJleK2B11eAYD ++kL7UriodV9L8T5nPBtAY6YysLnvfgzjgdQ6JGGi0pFk+YowalosFTfJsjD6eY+m +3SEFtFCGdmKaKoXqtha2V8y3HcAoqF7GzdHC8l5wbPvJVyl04TJbRZ67uGRaqISE +JaGzpRUwbWynj95MWPUZY3AslevLYRqbAxUv+BECmRZTbd/pEDIKlfVDO/iAeCwa +plklGeINC6v/fLvZKR3Ee2H3LKNWrXV/qxiwxCDA9AgKAgzLcIY3J9TUBUC9vyFt +ZHCjf7FfOOzcGQOI5mMI3r/3SQq0oXFXQBZosBCio93mLUVVCwuvupYIlhn9ICjt +qsh4Z5sHZkKsNGtG1hkJ2XCVksP8KwJk5s2EoMOiDmRbdWFaIoHusivxv4n8adF8 +QdAXQ4zI89ji4RSmqbdgJ0Cu80yGId+LgIm8CMiEBUkKmUCufz+5+iHhgCF3Ir+5 +3lnJqOxjpvfl0YZre4i1Hsx0ROmrTu/f/LFafWb5KOXhZTXjKaYZmHpuganiO3Bt +tV0zDtAEzXK5HfyJBV0DYBULe8Ir4UMSXdhjXf2hURhEE8MLG/QqaaDhfv709CfP +Dl85ci6VuKXPlZyt6Y2i0wbnwdji+oZY5JvQMSHZCBgOhtuggah/EBMBabcHCP6z +5SCVR+IjNnPrfv+f3fGNEtfB0Z0CAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEob6uyJsTFJm9/I +eeB77MrH9KLdMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAKVn58AXi01je06E1D1bdtw92AxsL3HWNgvwDlmArU426 +rVAsNx84wojFicRTs7QpMTtLM579eN5ug7MpODop5I7segZaytjREc0MdI3BPHHy +ScDXC2+jEnIhRna9E3TfAybE/KD9ry6bl4gaLCftvopz2l0I+boOG9Dl7WlgHTNd +MVSQK/ccgD7DzRB+yY1vnGQLdWuYOz7/spx1i/xM/YpFfI9vl6+KZ1sfG0iHNL4t +6vnqiI/OISTys6lGMH49/cQaCw7tLCHwqRlwOWvyC9k6gXMAWCdkhG603UtInAbQ +eFLZQwkhnvhHqR+hw/yMLKjaTVp3hrwqzQkjHuLwFCVpxYwhj0NX4uIn1Xh22iqQ +0dwKU9mxNVPTZpwen5ER/KbjoI7eMCHLM/ZWKubApQDSeWm01+SBLvzjz9VTSQrs +CPdtvg9VV3Xrdn9+pOcJgFIpkdHu9K5vyQWFjEYaeO6il1je8hZKFTYfXGuOEnj2 +R1ecZCmGCKFIdro+kowSJibFos6TIzjuX8kvYmjaayPW4fnKr2eDa2YWBFXXuTef +TG/vMDE6a4B5r//KTv/fq0U8DN9bLEwd3nIxMQAxVq/nPkmrTSrX7CL9v900dBJy +FK55aJYdITi/T9R18bzF/2aYu7Jje9NdV126RqL40j1oUYkuM9vYldVYY7UBrU0= +-----END CERTIFICATE----- + + +WUS ntc keyid 882f047b87121cf9885f31160bc7bb5586af471b +====================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAX/aoQ40ah+CNgAAAAABfzANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE4MDgwMjE3NTE1OVoXDTI0MDgwMjE3NTE1OVowQTE/MD0GA1UEAxM2V1VT +LU5UQy1LRVlJRC04ODJGMDQ3Qjg3MTIxQ0Y5ODg1RjMxMTYwQkM3QkI1NTg2QUY0 +NzFCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqv8CKR+xDTi9tAgN +3wLbPfAipEybhXp+vqNKYlSNWwAE+O9iybajvYygapbzGudRgWqI6ntU4LbIadAv +9HpNwTFHIycmKemJHWQf2fmK4ylNxgnV/t0yJsgGlp3ZeWmjjPvij7E+03YlSJzD +e/xoYsuKFpS8Rp0p4l3EebMmsp1ryCDQtKNF/40Wu4ZzQOZURlq70M2dorxDDbKe +jLx2HkTkr759Hkc/hD77GmNhdSVpSwuVi6hJ9PwdZSsVtXVqDAX6a7oDvjL2CUqW +LhEmAaAdGVraqH5pRkAzQPJq04/Ad06de/HXety8YPI+wy8loDmwgfpbdkTyKMrJ +/Va5DLyIh5f0wmLu05sWNwRjNApNZmWJC8/xVidMy5q4EutfdCKGCjChvoMhvYF1 +7T91f5ia+4YIw8BL1AqR77Nspb8fQdTmznLV/YZEHrii1NUg6K4ok9Fp3WLltJU/ +7KzZIEKMgez9SYHeGyjSHlAM0EfC0u5ItRkP5OwYlhe7roklGPNek7xle/QVVeTn +gpfWH0rlB7nEGXk9kszFTmsBJhryzXrxxbf4se9nukrVCV/gul6vvQOx8LJdnFzd +kUNHzqSv9cDvmNkEzY+HcOiRBQoBBGc8MabUCXIqHcryk0fBNP/c4YIt7vS40jqX +p/X1AtPyl6A5tWTkDO0odac4XJkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLuQhxlfpQMV3JfW +SrFZkRJC3Q2sMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAYvEwS/3xa2Hf10bUNyxD3XQiwAJAbns01jIUMEaGFNAE +juwOWZov1OoEj049KNqeO32qbgSVGI9bWtfbxwb67Qv6PWdF0EZZUc0DzBXY2suH +BoQ+WujN4mjtvgaRgcYqAKhgU9yb9YPw9kYvfyoMBdgNsfepVdfTaLvEe900Tjvb +bYx6OEu6egiP5b0gqhcVaigppbBP0+odrNO3f/c7Q5AO+SENqQvhpSeV+WiNVedk +ZDAu+JNSZNbUBUUatewsyKyjRNFlzXtRvOmsctXHzrmqXJba5xv82+D6r6RhivGt +XLjb72UV4bJK6F41PR142G5FBEomj0yi/AFF3vowKEf5dciUturVn5G2MDbMlTPU +f9349qbaZepxyHYa4hgGYRnuKK4lYK5FLvDtYvun7mkG9JWZqiblG9dA8ZKyMWGs +iLBP84EplePhzdfAR/RlZKPXe7JEiHffPzexCMB0X/3BnyXxrMKZiFzIXzQ3jBZN +34I3hQl4ohJMsWX/3FbgrGjJVwOb3ZV6Wk+5VA2iXMnflbOHSnzKBSMYR5uZOdG6 +XJQY++KrJTkyHihAVinu03Ir42BvQ0+2VFTSr6V22hDcW9YQQy8N1b9LVLW+0kqO ++5+QPkJZBB2181kLJnHPcHD6GX5tEwq/CK6UKzb25H7eROZan2kV9yLOXWkQfWo= +-----END CERTIFICATE----- + + +WUS ntc keyid 882f047b87121cf9885f31160bc7bb5586af471b 2 +======================================================== +-----BEGIN CERTIFICATE----- +MIIG6zCCBNOgAwIBAgITMwAAAqQPWUBJNgeAvAAAAAACpDANBgkqhkiG9w0BAQsF +ADCBjDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UE +AxMtTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0 +MB4XDTE5MDMyMTIwMzA0MVoXDTI1MDMyMTIwMzA0MVowQTE/MD0GA1UEAxM2V1VT +LU5UQy1LRVlJRC04ODJGMDQ3Qjg3MTIxQ0Y5ODg1RjMxMTYwQkM3QkI1NTg2QUY0 +NzFCMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0i3kXSJd/0UylWdt +4gh+M/VvYecYVvH28We/c83CLe42EeTbgLLC0PigIS262oV/B+bwDz/HN/rAlQxI +A2XclywMJRH3MFTXblZzIOfdVYJGThS6fFmaJiXJU/4BMzOXMgLMP3u9PXvnVW4i +ZRSdl4RXk8N1CIMlg1udinG2s9pH3+EH2UMKQ+OaSU93OSkZsa0NlxLW/pRcZDnr +61rxa2JuIV9QZaAJfeIw3uBJL3+ocghLzGZLA1Haq09eKjwI/8qyi87ITVzxq3cS +0/nMXp3KC8QppcjMkSrtKlvOaanJ6G18DkDqiM2bstUxFifxSbY0NYn7NMiS4zhR +9WLRW9PrhiNpl8buol8WmAIlWyDB6q88NNEaTL3e9wraZfRLanhJy37sA7uAQ/Hh +TAusyzN2FXZqH6P7a4TaozyCk1UGHHvCZKvUQCSx52+QOq8xOQnSebhz98208+Vz +l4dDYS1HZmnlpZEzaZgHAGvF/PFkBk1p9JTWq7TNPzOWI/NpfaDuohTPiUl/Iv4X +i2bMbscDZjBU/Wz9Vp8Y8VqKgJLm2lpf8esLcuSP+C/cyvo6Iu8m2He52bwHfJ6q +O7w+//iflF3DxUlP+oc+gMlDz5Ynm+Zvxz9iPQuHjfJYHU5PU6mTR6ADd4kY+/NW +tzWHQW1+ZJsnhJp3M7x6aMidgdkCAwEAAaOCAY4wggGKMA4GA1UdDwEB/wQEAwIC +hDAbBgNVHSUEFDASBgkrBgEEAYI3FSQGBWeBBQgDMBYGA1UdIAQPMA0wCwYJKwYB +BAGCNxUfMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFzkix20sAidsDbw +XVqsXI+yNrejMB8GA1UdIwQYMBaAFHqMCs4vSGIX4pTRrlXBUuxxdKRWMHAGA1Ud +HwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +L01pY3Jvc29mdCUyMFRQTSUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0 +eSUyMDIwMTQuY3JsMH0GCCsGAQUFBwEBBHEwbzBtBggrBgEFBQcwAoZhaHR0cDov +L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUUE0l +MjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDE0LmNydDANBgkq +hkiG9w0BAQsFAAOCAgEAG06E9kKeAZpTHL6JAKfxPUJo045KBPVyCpV5U8Fn+oL5 +SXcaumjWGaBYUc2UfTH9bySrENmurQGzZFAfrdwdnXjJ+dKFbOZL1sLqlt0WyEzH +LKARWCjN4gedGH5746M8qLVaGYHNRt7bK9v2OHCl9sgT1NRzSoQd/3RlIfhscgA+ +7Lcca5Fvt8QmnEXYO3iTH3NFaTnS1ieWYUnKAmkw0o4ZD37zYY0Da3R6zLtqFubu +iko7x/52XGftM7Np4RKFH0B6O37oOcw4iH9zrBRVjTgUBWQ2Mi4YnDxzmVbDxi9A +4GkSlJWgl+QRge2r1B+ZKQQ+6nqlLhzDbgLFZJJ2EjYFmVBVG4kziV/wHyEFzC0R +xsaD+CtOWG83dm+y0hzvLE1PxjUy7Tus/X0G4I2JLrti5zIxr1K5v7a/gO7xemT0 +72iIYW3SBebZ8DwYPlg5tSsO/C9eY8vgIb3mxrDLg/9K9c6DvT7P3iv3BCjrwGdJ +ocU8ymxk1NAeMScz5Masy0+SXUA9tBW7hO3MVZrrldquKdFVe29tRuPUJFNrmFME +oLUhgPJsORSTRXZt+hoOqdVEcKpE0emRF5Pj6dhhAq1M1lF2MZ3oN02IUxRF7LY/ +PV7SzFtOkoHcq/RjsbulQfAwB1NzIF3WmiYxICQIyJcVeT8/U5puPkKEUU/uwn8= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/_test/rootCertificates/solo.pem b/restricted/WebAuthn/_test/rootCertificates/solo.pem new file mode 100644 index 0000000..c7a3740 --- /dev/null +++ b/restricted/WebAuthn/_test/rootCertificates/solo.pem @@ -0,0 +1,41 @@ +Solokeys FIDO2/U2F Device Attestation CA +======================================== + Data: + Version: 1 (0x0) + Serial Number: 14143382635911888524 (0xc44763928ff4be8c) + Signature Algorithm: ecdsa-with-SHA256 + + Issuer: + emailAddress = hello@solokeys.com + commonName = solokeys.com + organizationalUnitName = Root CA + organizationName = Solo Keys + stateOrProvinceName = Maryland + countryName = US + + Validity + Not Before: Nov 11 12:51:42 2018 GMT + Not After : Oct 29 12:51:42 2068 GMT + + Subject: + emailAddress = hello@solokeys.com + commonName = solokeys.com + organizationalUnitName = Root CA + organizationName = Solo Keys + stateOrProvinceName = Maryland + countryName = US + + +-----BEGIN CERTIFICATE----- +MIIB9DCCAZoCCQDER2OSj/S+jDAKBggqhkjOPQQDAjCBgDELMAkGA1UEBhMCVVMx +ETAPBgNVBAgMCE1hcnlsYW5kMRIwEAYDVQQKDAlTb2xvIEtleXMxEDAOBgNVBAsM +B1Jvb3QgQ0ExFTATBgNVBAMMDHNvbG9rZXlzLmNvbTEhMB8GCSqGSIb3DQEJARYS +aGVsbG9Ac29sb2tleXMuY29tMCAXDTE4MTExMTEyNTE0MloYDzIwNjgxMDI5MTI1 +MTQyWjCBgDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1hcnlsYW5kMRIwEAYDVQQK +DAlTb2xvIEtleXMxEDAOBgNVBAsMB1Jvb3QgQ0ExFTATBgNVBAMMDHNvbG9rZXlz +LmNvbTEhMB8GCSqGSIb3DQEJARYSaGVsbG9Ac29sb2tleXMuY29tMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEWHAN0CCJVZdMs0oktZ5m93uxmB1iyq8ELRLtqVFL +SOiHQEab56qRTB/QzrpGAY++Y2mw+vRuQMNhBiU0KzwjBjAKBggqhkjOPQQDAgNI +ADBFAiEAz9SlrAXIlEu87vra54rICPs+4b0qhp3PdzcTg7rvnP0CIGjxzlteQQx+ +jQGd7rwSZuE5RWUPVygYhUstQO9zNUOs +-----END CERTIFICATE----- \ No newline at end of file diff --git a/restricted/WebAuthn/_test/rootCertificates/solokey_f1.pem b/restricted/WebAuthn/_test/rootCertificates/solokey_f1.pem new file mode 100644 index 0000000..adefabf --- /dev/null +++ b/restricted/WebAuthn/_test/rootCertificates/solokey_f1.pem @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIID6TCCAdGgAwIBAgIUUAjLh3ownidqbj5fboDmufVXiecwDQYJKoZIhvcNAQEL +BQAwMjERMA8GA1UECgwIU29sb0tleXMxCzAJBgNVBAYTAkNIMRAwDgYDVQQDDAdS +b290IFIxMCAXDTIxMDUyODA4MjQxMloYDzIwNzEwNTE2MDgyNDEyWjAtMREwDwYD +VQQKDAhTb2xvS2V5czELMAkGA1UEBhMCQ0gxCzAJBgNVBAMMAkYxMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEPCcSladE9kbZ0XI7jmtceNSHVrC1Rx0d3U8aMvKS +CJimYSe7c0Jy7CZpw7TU6N6chNx6Q1jaZ/B3ZjPLGZBOMqOBxDCBwTAdBgNVHQ4E +FgQUQWu2S++iGQ3kYl/9KQSWuYIptPgwHwYDVR0jBBgwFoAUVOPVaecSkRBulbOE +QMfZOr8x1dcwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwMgYI +KwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAChhZodHRwOi8vaS5zMnBraS5uZXQvcjEv +MCcGA1UdHwQgMB4wHKAaoBiGFmh0dHA6Ly9jLnMycGtpLm5ldC9yMS8wDQYJKoZI +hvcNAQELBQADggIBACVIymBmQwWwIUKnffptCJPeAn4m+Vy7ntr6KeS6aM7NI3cb +xzRq5tHOugtjFJsBSGynbF0/Kc+VnGR2lCFuVKeuusFsAhk4F13jaOTPSTWTXK6k +2TdoqZ6wIqmQ7bAZVYqcE21ZkM/Bo5Ej+PZacGjlGaEHwjL5CU2scnZeqS8d1ago +MCIfvRlYd2vkbPjqQx0t5jzEKZ7hF4y77kh0JArYpgpp0Sq4P96pPDwIZCvVGmGi +jhNOie0UnF6trfTD1AAXtlPqYPK9gNpXlN2IhsIpNMf7YA9R1zjVvnfYnFS6Tr73 +0UzBct6jC9JompqvAo9NIe6cu/Qkc/KUL4JDt9iJWB8RN2aAnVCYQ+xT4evVFQCV +F/1pbeSvFfPqCfazkSPIiff7n9Tmk1Wwe3VmkuU7HUmAkYaLazs7DLY/Cp0/1V1K +pURMyawlUtv2J4PQqvOnMGUYupxp2l3DjdzHMx8RE+caCM2PxzPsUucLVHdOkBW2 +h6U5PIWJuZtbiabwFmQXahqSNkRO6kXRvedowqaHNZiIFi4VKqPHrJrEhNhncfJ/ +jwAAThoo5yyEgh3a+THoZKOFfZhzFJA9MVMwqQB00iSsF5HKC+MFUkHpKaV2DVjS +mPXOYy4biL8XkOqQeJUuB5sQ/2LYxaaXj1dBrnR3cklHp2KKacWYdnLdEe8I +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/_test/rootCertificates/solokey_r1.pem b/restricted/WebAuthn/_test/rootCertificates/solokey_r1.pem new file mode 100644 index 0000000..02ef39e --- /dev/null +++ b/restricted/WebAuthn/_test/rootCertificates/solokey_r1.pem @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgIUR9xt5vBCCwFTaFGS3VFH0v49lmUwDQYJKoZIhvcNAQEL +BQAwMjERMA8GA1UECgwIU29sb0tleXMxCzAJBgNVBAYTAkNIMRAwDgYDVQQDDAdS +b290IFIxMCAXDTIxMDUyMTIyMTA1M1oYDzIwNzEwNTA5MjIxMDUzWjAyMREwDwYD +VQQKDAhTb2xvS2V5czELMAkGA1UEBhMCQ0gxEDAOBgNVBAMMB1Jvb3QgUjEwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCBybLOEMbhPyBEaHeqXJQUfRgd +xZHFtum2oXknCineXh8NXBL8PJLJEYi4Clv/QQGj+VPGPOcF1nwMX5BsmTYsLPMo +Rt7npI/xaPYdW/ByIvQQNqH3NTQjt8j4Wz0XWHL/VuqNFGZAdI4GN00NifKH1FCy +wOgwyKHl74XmMJLzzigFoo8m5ZPD+uw7ZRt1Q28jFTJiB2qyMX1rn2wHZLnHHhgs +wp0uApnQw5CGmhK3pkW8U9Gr3JH6K0q6NwZ4Pp1DPJFbl4J9cPFP2o25sOsf+jjX +4Ko2J97qndoRxHFWjh6HLvbq6/RyySbVGBsBeep92QXidf/3Vgc+6xkgTmlWL+5W +6mj7F8zhPAz8l8m3HEv/pVdsJikwrR2FAllw4T2nBYXhdJ4lPdH9HYZrbmyGVOcD +1M/hQ2d/7X0H1K40KV1li1nYJHxkfcDKHeI5RcAaLE+n6ctLS5KqyJ0MXmmga6I7 +rd5cTfQqjYQm/YbfShK6ZsmsGC/KJGmFbx9kqsMbcg7a2qF1RT0WPFJd2F1glaon +tsqPwFDi5mR7M46tjLAWJx2Wu5mbACedRoxKPMe8l+b1CQ7k+temvxNK0IvM38St +z9UiVpl0VwACNpJ2MobM+XJNQNCbMbBt0n6wPmftqI5taoFxPTNM6t1F2utsjbdn +M1/WUKOh5lhheBMDWQIDAQABo2MwYTAdBgNVHQ4EFgQUVOPVaecSkRBulbOEQMfZ +Or8x1dcwHwYDVR0jBBgwFoAUVOPVaecSkRBulbOEQMfZOr8x1dcwDwYDVR0TAQH/ +BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAEh5VMjC +YnWzJK8Rolmsbmpa7LQiS+WKk2ihYZRLUYlzET5+MDmue+n4sBuuuXPLaQsdnTSO +xqmVts8bneacEckr0y8j5/2o5/5UPjAchXXK6PwHqnajk2kzCIH2tWTyhpKcxF1i +fQo9RGA6igOjes8vMmKCFQg3A88wiAtrafgf/I3fVSHJOSeU29nqmVNHGU4tQFu0 +Frx/d3y5elo5rZpld71DwRA83qLUgJ3liancoSb/icR8igGyLxCcxmKU5fFItiG9 +4x+egnblyYfuhLbXU0k8LXJVMdDImZHEyI80EHOSpV3wZR5LyfiXu3fygxtOm6tL +fi1khkJIfIPMyV1Y4B7y6zOlHbneF1F8P4pTjHTYFHKhNm1wWffrqgLDYdtLAXSV +tyDM0zjtoRSHRYWsuwbeWdwoWHQeLkPzMtmFkHrPi0i3iv4GaianTnE1k1lX8Xf4 +HbWBHXoVJCoAwycJJqX2SPZwFlWGp8IMGLUNzjFtLP+D7pdUSBgkDqz6FumZQGx/ +KLHugnolEb8ZiOZKbaPOjc9EmXFjA42y4vXAip6ZZ2FfuWDqkPaU1WfM95cE0hf5 +BSbfxSSQ2V3z4sywzkfQxr7q2mYzJ9C2NhLYXMrc98L9uEd0O7dO0eEF+44gc5O7 +Bc7NuTA9//IG8nJb0MvD76TxHPlZuVnMdMb6 +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/_test/rootCertificates/yubico.pem b/restricted/WebAuthn/_test/rootCertificates/yubico.pem new file mode 100644 index 0000000..e1338a8 --- /dev/null +++ b/restricted/WebAuthn/_test/rootCertificates/yubico.pem @@ -0,0 +1,42 @@ +Yubico U2F Device Attestation CA +================================ + +Last Update: 2014-09-01 + +Yubico manufacturer U2F devices that contains device attestation +certificates signed by a set of Yubico CAs. This file contains the CA +certificates that Relying Parties (RP) need to configure their +software with to be able to verify U2F device certificates. + +This file has been signed with OpenPGP and you should verify the +signature and the authenticity of the public key before trusting the +content. The signature is located next to the file: + + https://developers.yubico.com/u2f/yubico-u2f-ca-certs.txt + https://developers.yubico.com/u2f/yubico-u2f-ca-certs.txt.sig + +We will update this file from time to time when we publish more CA +certificates. + +Name: Yubico U2F Root CA Serial 457200631 +Issued: 2014-08-01 + +-----BEGIN CERTIFICATE----- +MIIDHjCCAgagAwIBAgIEG0BT9zANBgkqhkiG9w0BAQsFADAuMSwwKgYDVQQDEyNZ +dWJpY28gVTJGIFJvb3QgQ0EgU2VyaWFsIDQ1NzIwMDYzMTAgFw0xNDA4MDEwMDAw +MDBaGA8yMDUwMDkwNDAwMDAwMFowLjEsMCoGA1UEAxMjWXViaWNvIFUyRiBSb290 +IENBIFNlcmlhbCA0NTcyMDA2MzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC/jwYuhBVlqaiYWEMsrWFisgJ+PtM91eSrpI4TK7U53mwCIawSDHy8vUmk +5N2KAj9abvT9NP5SMS1hQi3usxoYGonXQgfO6ZXyUA9a+KAkqdFnBnlyugSeCOep +8EdZFfsaRFtMjkwz5Gcz2Py4vIYvCdMHPtwaz0bVuzneueIEz6TnQjE63Rdt2zbw +nebwTG5ZybeWSwbzy+BJ34ZHcUhPAY89yJQXuE0IzMZFcEBbPNRbWECRKgjq//qT +9nmDOFVlSRCt2wiqPSzluwn+v+suQEBsUjTGMEd25tKXXTkNW21wIWbxeSyUoTXw +LvGS6xlwQSgNpk2qXYwf8iXg7VWZAgMBAAGjQjBAMB0GA1UdDgQWBBQgIvz0bNGJ +hjgpToksyKpP9xv9oDAPBgNVHRMECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAN +BgkqhkiG9w0BAQsFAAOCAQEAjvjuOMDSa+JXFCLyBKsycXtBVZsJ4Ue3LbaEsPY4 +MYN/hIQ5ZM5p7EjfcnMG4CtYkNsfNHc0AhBLdq45rnT87q/6O3vUEtNMafbhU6kt +hX7Y+9XFN9NpmYxr+ekVY5xOxi8h9JDIgoMP4VB1uS0aunL1IGqrNooL9mmFnL2k +LVVee6/VR6C5+KSTCMCWppMuJIZII2v9o4dkoZ8Y7QRjQlLfYzd3qGtKbw7xaF1U +sG/5xUb/Btwb2X2g4InpiB/yt/3CpQXpiWX/K4mBvUKiGn05ZsqeY1gx4g0xLBqc +U9psmyPzK+Vsgw2jeRQ5JlKDyqE0hebfC1tvFu0CCrJFcw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/_test/server.php b/restricted/WebAuthn/_test/server.php new file mode 100644 index 0000000..d65f516 --- /dev/null +++ b/restricted/WebAuthn/_test/server.php @@ -0,0 +1,370 @@ + getCreateArgs + * | + * navigator.credentials.create <-------------' + * | + * '-------------------------> processCreate + * | + * alert ok or fail <----------------' + * + * ------------------------------------------------------------ + * + * VALIDATION + * + * window.fetch ------------------> getGetArgs + * | + * navigator.credentials.get <----------------' + * | + * '-------------------------> processGet + * | + * alert ok or fail <----------------' + * + * ------------------------------------------------------------ + */ + +require_once '../src/WebAuthn.php'; +try { + session_start(); + + // read get argument and post body + $fn = filter_input(INPUT_GET, 'fn'); + $requireResidentKey = !!filter_input(INPUT_GET, 'requireResidentKey'); + $userVerification = filter_input(INPUT_GET, 'userVerification', FILTER_SANITIZE_SPECIAL_CHARS); + + $userId = filter_input(INPUT_GET, 'userId', FILTER_SANITIZE_SPECIAL_CHARS); + $userName = filter_input(INPUT_GET, 'userName', FILTER_SANITIZE_SPECIAL_CHARS); + $userDisplayName = filter_input(INPUT_GET, 'userDisplayName', FILTER_SANITIZE_SPECIAL_CHARS); + + $userId = $userId ? preg_replace('/[^0-9a-f]/i', '', $userId): ""; + $userName = $userName ? preg_replace('/[^0-9a-z]/i', '', $userName): ""; + $userDisplayName = $userDisplayName ? preg_replace('/[^0-9a-z öüäéèàÖÜÄÉÈÀÂÊÎÔÛâêîôû]/i', '', $userDisplayName): ""; + + $post = trim(file_get_contents('php://input')); + if ($post) { + $post = json_decode($post, null, 512, JSON_THROW_ON_ERROR); + } + + if ($fn !== 'getStoredDataHtml') { + + // Formats + $formats = []; + if (filter_input(INPUT_GET, 'fmt_android-key')) { + $formats[] = 'android-key'; + } + if (filter_input(INPUT_GET, 'fmt_android-safetynet')) { + $formats[] = 'android-safetynet'; + } + if (filter_input(INPUT_GET, 'fmt_apple')) { + $formats[] = 'apple'; + } + if (filter_input(INPUT_GET, 'fmt_fido-u2f')) { + $formats[] = 'fido-u2f'; + } + if (filter_input(INPUT_GET, 'fmt_none')) { + $formats[] = 'none'; + } + if (filter_input(INPUT_GET, 'fmt_packed')) { + $formats[] = 'packed'; + } + if (filter_input(INPUT_GET, 'fmt_tpm')) { + $formats[] = 'tpm'; + } + + $rpId = 'localhost'; + if (filter_input(INPUT_GET, 'rpId')) { + $rpId = filter_input(INPUT_GET, 'rpId', FILTER_VALIDATE_DOMAIN); + if ($rpId === false) { + throw new Exception('invalid relying party ID'); + } + } + + // types selected on front end + $typeUsb = !!filter_input(INPUT_GET, 'type_usb'); + $typeNfc = !!filter_input(INPUT_GET, 'type_nfc'); + $typeBle = !!filter_input(INPUT_GET, 'type_ble'); + $typeInt = !!filter_input(INPUT_GET, 'type_int'); + $typeHyb = !!filter_input(INPUT_GET, 'type_hybrid'); + + // cross-platform: true, if type internal is not allowed + // false, if only internal is allowed + // null, if internal and cross-platform is allowed + $crossPlatformAttachment = null; + if (($typeUsb || $typeNfc || $typeBle || $typeHyb) && !$typeInt) { + $crossPlatformAttachment = true; + + } else if (!$typeUsb && !$typeNfc && !$typeBle && !$typeHyb && $typeInt) { + $crossPlatformAttachment = false; + } + + + // new Instance of the server library. + // make sure that $rpId is the domain name. + $WebAuthn = new lbuchs\WebAuthn\WebAuthn('WebAuthn Library', $rpId, $formats); + + // add root certificates to validate new registrations + if (filter_input(INPUT_GET, 'solo')) { + $WebAuthn->addRootCertificates('rootCertificates/solo.pem'); + $WebAuthn->addRootCertificates('rootCertificates/solokey_f1.pem'); + $WebAuthn->addRootCertificates('rootCertificates/solokey_r1.pem'); + } + if (filter_input(INPUT_GET, 'apple')) { + $WebAuthn->addRootCertificates('rootCertificates/apple.pem'); + } + if (filter_input(INPUT_GET, 'yubico')) { + $WebAuthn->addRootCertificates('rootCertificates/yubico.pem'); + } + if (filter_input(INPUT_GET, 'hypersecu')) { + $WebAuthn->addRootCertificates('rootCertificates/hypersecu.pem'); + } + if (filter_input(INPUT_GET, 'google')) { + $WebAuthn->addRootCertificates('rootCertificates/globalSign.pem'); + $WebAuthn->addRootCertificates('rootCertificates/googleHardware.pem'); + } + if (filter_input(INPUT_GET, 'microsoft')) { + $WebAuthn->addRootCertificates('rootCertificates/microsoftTpmCollection.pem'); + } + if (filter_input(INPUT_GET, 'mds')) { + $WebAuthn->addRootCertificates('rootCertificates/mds'); + } + + } + + // ------------------------------------ + // request for create arguments + // ------------------------------------ + + if ($fn === 'getCreateArgs') { + $createArgs = $WebAuthn->getCreateArgs(\hex2bin($userId), $userName, $userDisplayName, 60*4, $requireResidentKey, $userVerification, $crossPlatformAttachment); + + header('Content-Type: application/json'); + print(json_encode($createArgs)); + + // save challange to session. you have to deliver it to processGet later. + $_SESSION['challenge'] = $WebAuthn->getChallenge(); + + + + // ------------------------------------ + // request for get arguments + // ------------------------------------ + + } else if ($fn === 'getGetArgs') { + $ids = []; + + if ($requireResidentKey) { + if (!isset($_SESSION['registrations']) || !is_array($_SESSION['registrations']) || count($_SESSION['registrations']) === 0) { + throw new Exception('we do not have any registrations in session to check the registration'); + } + + } else { + // load registrations from session stored there by processCreate. + // normaly you have to load the credential Id's for a username + // from the database. + if (isset($_SESSION['registrations']) && is_array($_SESSION['registrations'])) { + foreach ($_SESSION['registrations'] as $reg) { + if ($reg->userId === $userId) { + $ids[] = $reg->credentialId; + } + } + } + + if (count($ids) === 0) { + throw new Exception('no registrations in session for userId ' . $userId); + } + } + + $getArgs = $WebAuthn->getGetArgs($ids, 60*4, $typeUsb, $typeNfc, $typeBle, $typeHyb, $typeInt, $userVerification); + + header('Content-Type: application/json'); + print(json_encode($getArgs)); + + // save challange to session. you have to deliver it to processGet later. + $_SESSION['challenge'] = $WebAuthn->getChallenge(); + + + + // ------------------------------------ + // process create + // ------------------------------------ + + } else if ($fn === 'processCreate') { + $clientDataJSON = base64_decode($post->clientDataJSON); + $attestationObject = base64_decode($post->attestationObject); + $challenge = $_SESSION['challenge']; + + // processCreate returns data to be stored for future logins. + // in this example we store it in the php session. + // Normaly you have to store the data in a database connected + // with the user name. + $data = $WebAuthn->processCreate($clientDataJSON, $attestationObject, $challenge, $userVerification === 'required', true, false); + + // add user infos + $data->userId = $userId; + $data->userName = $userName; + $data->userDisplayName = $userDisplayName; + + if (!isset($_SESSION['registrations']) || !array_key_exists('registrations', $_SESSION) || !is_array($_SESSION['registrations'])) { + $_SESSION['registrations'] = []; + } + $_SESSION['registrations'][] = $data; + + $msg = 'registration success.'; + if ($data->rootValid === false) { + $msg = 'registration ok, but certificate does not match any of the selected root ca.'; + } + + $return = new stdClass(); + $return->success = true; + $return->msg = $msg; + + header('Content-Type: application/json'); + print(json_encode($return)); + + + + // ------------------------------------ + // proccess get + // ------------------------------------ + + } else if ($fn === 'processGet') { + $clientDataJSON = base64_decode($post->clientDataJSON); + $authenticatorData = base64_decode($post->authenticatorData); + $signature = base64_decode($post->signature); + $userHandle = base64_decode($post->userHandle); + $id = base64_decode($post->id); + $challenge = $_SESSION['challenge'] ?? ''; + $credentialPublicKey = null; + + // looking up correspondending public key of the credential id + // you should also validate that only ids of the given user name + // are taken for the login. + if (isset($_SESSION['registrations']) && is_array($_SESSION['registrations'])) { + foreach ($_SESSION['registrations'] as $reg) { + if ($reg->credentialId === $id) { + $credentialPublicKey = $reg->credentialPublicKey; + break; + } + } + } + + if ($credentialPublicKey === null) { + throw new Exception('Public Key for credential ID not found!'); + } + + // if we have resident key, we have to verify that the userHandle is the provided userId at registration + if ($requireResidentKey && $userHandle !== hex2bin($reg->userId)) { + throw new \Exception('userId doesnt match (is ' . bin2hex($userHandle) . ' but expect ' . $reg->userId . ')'); + } + + // process the get request. throws WebAuthnException if it fails + $WebAuthn->processGet($clientDataJSON, $authenticatorData, $signature, $credentialPublicKey, $challenge, null, $userVerification === 'required'); + + $return = new stdClass(); + $return->success = true; + + header('Content-Type: application/json'); + print(json_encode($return)); + + // ------------------------------------ + // proccess clear registrations + // ------------------------------------ + + } else if ($fn === 'clearRegistrations') { + $_SESSION['registrations'] = null; + $_SESSION['challenge'] = null; + + $return = new stdClass(); + $return->success = true; + $return->msg = 'all registrations deleted'; + + header('Content-Type: application/json'); + print(json_encode($return)); + + // ------------------------------------ + // display stored data as HTML + // ------------------------------------ + + } else if ($fn === 'getStoredDataHtml') { + $html = '' . "\n"; + $html .= ''; + $html .= ''; + if (isset($_SESSION['registrations']) && is_array($_SESSION['registrations'])) { + $html .= '

There are ' . count($_SESSION['registrations']) . ' registrations in this session:

'; + foreach ($_SESSION['registrations'] as $reg) { + $html .= ''; + foreach ($reg as $key => $value) { + + if (is_bool($value)) { + $value = $value ? 'yes' : 'no'; + + } else if (is_null($value)) { + $value = 'null'; + + } else if (is_object($value)) { + $value = chunk_split(strval($value), 64); + + } else if (is_string($value) && strlen($value) > 0 && htmlspecialchars($value, ENT_QUOTES) === '') { + $value = chunk_split(bin2hex($value), 64); + } + $html .= ''; + } + $html .= '
' . htmlspecialchars($key) . '' . nl2br(htmlspecialchars($value)) . '
'; + } + } else { + $html .= '

There are no registrations in this session.

'; + } + $html .= ''; + + header('Content-Type: text/html'); + print $html; + + // ------------------------------------ + // get root certs from FIDO Alliance Metadata Service + // ------------------------------------ + + } else if ($fn === 'queryFidoMetaDataService') { + + $mdsFolder = 'rootCertificates/mds'; + $success = false; + $msg = null; + + // fetch only 1x / 24h + $lastFetch = \is_file($mdsFolder . '/lastMdsFetch.txt') ? \strtotime(\file_get_contents($mdsFolder . '/lastMdsFetch.txt')) : 0; + if ($lastFetch + (3600*48) < \time()) { + $cnt = $WebAuthn->queryFidoMetaDataService($mdsFolder); + $success = true; + \file_put_contents($mdsFolder . '/lastMdsFetch.txt', date('r')); + $msg = 'successfully queried FIDO Alliance Metadata Service - ' . $cnt . ' certificates downloaded.'; + + } else { + $msg = 'Fail: last fetch was at ' . date('r', $lastFetch) . ' - fetch only 1x every 48h'; + } + + $return = new stdClass(); + $return->success = $success; + $return->msg = $msg; + + header('Content-Type: application/json'); + print(json_encode($return)); + } + +} catch (Throwable $ex) { + $return = new stdClass(); + $return->success = false; + $return->msg = $ex->getMessage(); + + header('Content-Type: application/json'); + print(json_encode($return)); +} diff --git a/restricted/WebAuthn/composer.json b/restricted/WebAuthn/composer.json new file mode 100644 index 0000000..1cf258e --- /dev/null +++ b/restricted/WebAuthn/composer.json @@ -0,0 +1,23 @@ +{ + "name": "lbuchs/webauthn", + "description": "A simple PHP WebAuthn (FIDO2) server library", + "keywords": [ + "webauthn", "authentication" + ], + "homepage": "https://github.com/lbuchs/webauthn", + "license": "MIT", + "authors": [ + { + "name": "Lukas Buchs", + "role": "Developer" + } + ], + "require": { + "php" : ">=8.0.0" + }, + "autoload": { + "psr-4": { + "lbuchs\\WebAuthn\\": "src" + } + } +} diff --git a/restricted/WebAuthn/rootCertificates/mds/acs_fido_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/acs_fido_authenticator.pem new file mode 100644 index 0000000..06b3e7d --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/acs_fido_authenticator.pem @@ -0,0 +1,18 @@ +ACS FIDO Authenticator +---------------------- + +-----BEGIN CERTIFICATE----- +MIICQTCCAeegAwIBAgIUF/0wTPP6FEqxpsibJiLFtDj4qhwwCgYIKoZIzj0EAwIw +dTELMAkGA1UEBhMCSEsxEjAQBgNVBAgMCUhvbmcgS29uZzESMBAGA1UEBwwJSG9u +ZyBLb25nMSMwIQYDVQQKDBpBZHZhbmNlZCBDYXJkIFN5c3RlbXMgTHRkLjEZMBcG +A1UEAwwQQUNTIEZJRE8gUm9vdCBDQTAgFw0yMjA1MzAwOTIzMzVaGA8yMDUyMDUy +MjA5MjMzNVowdTELMAkGA1UEBhMCSEsxEjAQBgNVBAgMCUhvbmcgS29uZzESMBAG +A1UEBwwJSG9uZyBLb25nMSMwIQYDVQQKDBpBZHZhbmNlZCBDYXJkIFN5c3RlbXMg +THRkLjEZMBcGA1UEAwwQQUNTIEZJRE8gUm9vdCBDQTBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABBwYgKVwjCV6+lv7gnpFERzU2uND8gdEkPCNcs/vFDs2sK42Juxn +hFnIgMB2DyU0IrXILjf/2XT0YSTd1sPiTSajUzBRMB0GA1UdDgQWBBTnQarpdSt4 +sid7VjfNILIHrb2PoDAfBgNVHSMEGDAWgBTnQarpdSt4sid7VjfNILIHrb2PoDAP +BgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMCA0gAMEUCIQDcoXJ3rzNMA/fZkh08 +PoFrMx43GYMhZMfLPw/3MfJpGAIgectKwmJYM9J8SX8x/aQV4iGvKWoBfr1XPTAM +XOhVEYE= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/acs_fido_authenticator_card.pem b/restricted/WebAuthn/rootCertificates/mds/acs_fido_authenticator_card.pem new file mode 100644 index 0000000..e0fc52e --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/acs_fido_authenticator_card.pem @@ -0,0 +1,18 @@ +ACS FIDO Authenticator Card +--------------------------- + +-----BEGIN CERTIFICATE----- +MIICQTCCAeegAwIBAgIUF/0wTPP6FEqxpsibJiLFtDj4qhwwCgYIKoZIzj0EAwIw +dTELMAkGA1UEBhMCSEsxEjAQBgNVBAgMCUhvbmcgS29uZzESMBAGA1UEBwwJSG9u +ZyBLb25nMSMwIQYDVQQKDBpBZHZhbmNlZCBDYXJkIFN5c3RlbXMgTHRkLjEZMBcG +A1UEAwwQQUNTIEZJRE8gUm9vdCBDQTAgFw0yMjA1MzAwOTIzMzVaGA8yMDUyMDUy +MjA5MjMzNVowdTELMAkGA1UEBhMCSEsxEjAQBgNVBAgMCUhvbmcgS29uZzESMBAG +A1UEBwwJSG9uZyBLb25nMSMwIQYDVQQKDBpBZHZhbmNlZCBDYXJkIFN5c3RlbXMg +THRkLjEZMBcGA1UEAwwQQUNTIEZJRE8gUm9vdCBDQTBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABBwYgKVwjCV6+lv7gnpFERzU2uND8gdEkPCNcs/vFDs2sK42Juxn +hFnIgMB2DyU0IrXILjf/2XT0YSTd1sPiTSajUzBRMB0GA1UdDgQWBBTnQarpdSt4 +sid7VjfNILIHrb2PoDAfBgNVHSMEGDAWgBTnQarpdSt4sid7VjfNILIHrb2PoDAP +BgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMCA0gAMEUCIQDcoXJ3rzNMA/fZkh08 +PoFrMx43GYMhZMfLPw/3MfJpGAIgectKwmJYM9J8SX8x/aQV4iGvKWoBfr1XPTAM +XOhVEYE= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/acs_fido_authenticator_nfc.pem b/restricted/WebAuthn/rootCertificates/mds/acs_fido_authenticator_nfc.pem new file mode 100644 index 0000000..f090080 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/acs_fido_authenticator_nfc.pem @@ -0,0 +1,19 @@ +ACS FIDO Authenticator NFC +-------------------------- + +-----BEGIN CERTIFICATE----- +MIICfzCCAiWgAwIBAgIFEIZAB3MwCgYIKoZIzj0EAwIwdTELMAkGA1UEBhMCSEsx +EjAQBgNVBAgMCUhvbmcgS29uZzESMBAGA1UEBwwJSG9uZyBLb25nMSMwIQYDVQQK +DBpBZHZhbmNlZCBDYXJkIFN5c3RlbXMgTHRkLjEZMBcGA1UEAwwQQUNTIEZJRE8g +Um9vdCBDQTAeFw0yNDEwMDMwNjQ2MzZaFw0zNDEwMDMwNjQ2MzZaMIGCMQswCQYD +VQQGEwJISzEjMCEGA1UECgwaQWR2YW5jZWQgQ2FyZCBTeXN0ZW1zIEx0ZC4xIjAg +BgNVBAsMGUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xKjAoBgNVBAMMIUFDUyBB +RkQwMyBBdHRlc3RhdGlvbiBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABGseNayIOV4mfqT3QSoL4xWCaGLciKA0oAciih1uHjT6oWCM7x/AQcHj +bBhdGne52Jqi99Ye3aqkq+LkdvP/M/WjgZMwgZAwCQYDVR0TBAIwADALBgNVHQ8E +BAMCBsAwEwYLKwYBBAGC5RwCAQEEBAMCBDAwIQYLKwYBBAGC5RwBAQQEEgQQyJ5q +OGwAVCZapcnL9I8DgjAdBgNVHQ4EFgQUG6zB4SX9RFX0SvNyAHzTvKZhGSUwHwYD +VR0jBBgwFoAU50Gq6XUreLIne1Y3zSCyB629j6AwCgYIKoZIzj0EAwIDSAAwRQIh +AIm78GC7xl0VIvQjh7E4+AIH0Pw424oduUUgdwWonG40AiAx1X6XmXBr5b1jmpCY +cvLMfdH9ObP3EklIXU9FHgLosA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/allthenticator_android_app_roaming_ble_fido2_allthenticator_for_windows_mac_linux_and_allthenticate_door_readers.pem b/restricted/WebAuthn/rootCertificates/mds/allthenticator_android_app_roaming_ble_fido2_allthenticator_for_windows_mac_linux_and_allthenticate_door_readers.pem new file mode 100644 index 0000000..1323c09 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/allthenticator_android_app_roaming_ble_fido2_allthenticator_for_windows_mac_linux_and_allthenticate_door_readers.pem @@ -0,0 +1,20 @@ +Allthenticator Android App: roaming BLE FIDO2 Allthenticator for Windows, Mac, Linux, and Allthenticate door readers +-------------------------------------------------------------------------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICqDCCAk6gAwIBAgIUGFCc6rhe4EiRa/OSqPNwuoR2jkQwCgYIKoZIzj0EAwIw +gaoxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3Rv +bjEWMBQGA1UECgwNQWxsdGhlbnRpY2F0ZTEiMCAGA1UECwwZQXV0aGVudGljYXRv +ciBBdHRlc3RhdGlvbjEWMBQGA1UEAwwNQWxsdGhlbnRpY2F0ZTElMCMGCSqGSIb3 +DQEJARYWaGVscEBhbGx0aGVudGljYXRlLmNvbTAeFw0yNDAzMTQxNTUyNTJaFw0z +NDAzMTIxNTUyNTJaMIGqMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO +BgNVBAcMB0hvdXN0b24xFjAUBgNVBAoMDUFsbHRoZW50aWNhdGUxIjAgBgNVBAsM +GUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xFjAUBgNVBAMMDUFsbHRoZW50aWNh +dGUxJTAjBgkqhkiG9w0BCQEWFmhlbHBAYWxsdGhlbnRpY2F0ZS5jb20wWTATBgcq +hkjOPQIBBggqhkjOPQMBBwNCAAS2IAC5t3iERq5xpsEAyqPzjTb+ekx++5Z4Vu6Y +rm7SFftzc5BdUVi7qnJpZotId2GfFjad0ZjkIf8T5R5htdVLo1AwTjAdBgNVHQ4E +FgQUAy5QOmItkBx+RgFn4EflQVYfn1EwHwYDVR0jBBgwFoAUAy5QOmItkBx+RgFn +4EflQVYfn1EwDAYDVR0TAQH/BAIwADAKBggqhkjOPQQDAgNIADBFAiEAwsJai8gk +A18gw+aLmTKww0OJNydgN4ozeKe957rRm60CIEgwALnBQkr1AFITibJJ+TDPP2yL +5no6HdTEACA7mHwH +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/allthenticator_ios_app_roaming_ble_fido2_allthenticator_for_windows_mac_linux_and_allthenticate_door_readers.pem b/restricted/WebAuthn/rootCertificates/mds/allthenticator_ios_app_roaming_ble_fido2_allthenticator_for_windows_mac_linux_and_allthenticate_door_readers.pem new file mode 100644 index 0000000..99ffd04 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/allthenticator_ios_app_roaming_ble_fido2_allthenticator_for_windows_mac_linux_and_allthenticate_door_readers.pem @@ -0,0 +1,20 @@ +Allthenticator iOS App: roaming BLE FIDO2 Allthenticator for Windows, Mac, Linux, and Allthenticate door readers +---------------------------------------------------------------------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICqDCCAk6gAwIBAgIUGFCc6rhe4EiRa/OSqPNwuoR2jkQwCgYIKoZIzj0EAwIw +gaoxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3Rv +bjEWMBQGA1UECgwNQWxsdGhlbnRpY2F0ZTEiMCAGA1UECwwZQXV0aGVudGljYXRv +ciBBdHRlc3RhdGlvbjEWMBQGA1UEAwwNQWxsdGhlbnRpY2F0ZTElMCMGCSqGSIb3 +DQEJARYWaGVscEBhbGx0aGVudGljYXRlLmNvbTAeFw0yNDAzMTQxNTUyNTJaFw0z +NDAzMTIxNTUyNTJaMIGqMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO +BgNVBAcMB0hvdXN0b24xFjAUBgNVBAoMDUFsbHRoZW50aWNhdGUxIjAgBgNVBAsM +GUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xFjAUBgNVBAMMDUFsbHRoZW50aWNh +dGUxJTAjBgkqhkiG9w0BCQEWFmhlbHBAYWxsdGhlbnRpY2F0ZS5jb20wWTATBgcq +hkjOPQIBBggqhkjOPQMBBwNCAAS2IAC5t3iERq5xpsEAyqPzjTb+ekx++5Z4Vu6Y +rm7SFftzc5BdUVi7qnJpZotId2GfFjad0ZjkIf8T5R5htdVLo1AwTjAdBgNVHQ4E +FgQUAy5QOmItkBx+RgFn4EflQVYfn1EwHwYDVR0jBBgwFoAUAy5QOmItkBx+RgFn +4EflQVYfn1EwDAYDVR0TAQH/BAIwADAKBggqhkjOPQQDAgNIADBFAiEAwsJai8gk +A18gw+aLmTKww0OJNydgN4ozeKe957rRm60CIEgwALnBQkr1AFITibJJ+TDPP2yL +5no6HdTEACA7mHwH +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/android_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/android_authenticator.pem new file mode 100644 index 0000000..631fbe1 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/android_authenticator.pem @@ -0,0 +1,943 @@ +Android Authenticator +--------------------- + +-----BEGIN CERTIFICATE----- +MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2A +DDL24CejQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFuk +fCPAlaUs3L6JbyO5o91lAFJekazInXJ0glMLfalAvWhgxeG4VDvBNhcl2MG9AjEA +njWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOaKaqW04MjyaR7YbPMAuhd +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG +A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh +bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE +ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS +b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5 +7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS +J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y +HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP +t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz +FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY +XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/ +MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw +hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js +MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA +A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj +Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx +XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o +omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc +A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW +WL1WMRJOEcgh4LMRkWXbtKaIOM5V +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y +YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua +kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL +QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp +6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG +yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i +QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO +tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu +QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ +Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u +olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48 +x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD +QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB +CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97 +nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt +43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P +T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4 +gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR +TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw +DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr +hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg +06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF +PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls +YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv +b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl +cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA +n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc +biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp +EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA +bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu +YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB +AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW +BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI +QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I +0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni +lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9 +B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv +ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo +IhNzbM8m9Yop5w== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg +MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh +bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx +MjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET +MBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI +xutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k +ZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD +aNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw +LnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw +1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX +k7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2 +SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h +bguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n +WUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY +rZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce +MgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu +bAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN +nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt +Ixg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61 +55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj +vUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf +cDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz +oHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp +nOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs +pA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v +JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R +8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4 +5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl +MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp +U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw +NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE +ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp +ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3 +DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf +8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN ++lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0 +X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa +K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA +1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G +A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR +zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0 +YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD +bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w +DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3 +L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D +eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp +VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY +WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB +gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV +BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw +MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl +YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P +RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3 +UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI +2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8 +Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp ++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+ +DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O +nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW +/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g +PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u +QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY +SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv +IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4 +zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd +BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB +ZQ== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 +MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL +v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 +eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq +tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd +C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa +zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB +mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH +V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n +bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG +3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs +J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO +291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS +ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd +AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk +MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH +bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX +DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD +QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ +FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F +uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX +kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs +ewv4n4Q= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB +hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV +BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5 +MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT +EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR +6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X +pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC +9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV +/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf +Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z ++pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w +qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah +SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC +u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf +Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq +crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E +FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB +/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl +wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM +4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV +2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna +FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ +CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK +boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke +jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL +S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb +QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl +0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB +NVOFBkpdn627G190 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk +MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH +bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX +DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD +QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu +MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc +8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke +hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI +KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg +515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO +xwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl +eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT +JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx +MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT +Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg +VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo +I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng +o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G +A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB +zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW +RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50 +cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs +IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz +dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy +NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu +dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt +dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0 +aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T +RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN +cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW +wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1 +U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0 +jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN +BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/ +jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v +1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R +nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH +VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/l +xKvRHYqjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0 +CMRw3J5QdCHojXohw0+WbhXRIjVhLfoIN+4Zba3bssx9BzT1YBkstTTZbyACMANx +sbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11xzPKwTdb+mciUqXWi4w== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw +CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu +ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg +RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu +Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf +Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q +RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD +AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY +JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv +6pZjamVFkpUBtA== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv +b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl +cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c +JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP +mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+ +wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4 +VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/ +AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB +AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun +pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC +dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf +fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm +NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx +H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBH +MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM +QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy +MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl +cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3Kg +GjSY6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9Bu +XvAuMC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOd +re7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXu +PuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1 +mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K +8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqj +x5RWIr9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsR +nTKaG73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0 +kzCqgc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9Ok +twIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBALZp +8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT +vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiT +z9D2PGcDFWEJ+YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiA +pJiS4wGWAqoC7o87xdFtCjMwc3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvb +pxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3DaWsYDQvTtN6LwG1BUSw7YhN4ZKJmB +R64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5rn/WkhLx3+WuXrD5R +RaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56GtmwfuNmsk +0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC +5AwiWVIQ7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiF +izoHCBy69Y9Vmhh1fuXsgWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLn +yOd/xCxgXS/Dr55FBcOEArf9LAhST4Ldo/DUhgkC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG +A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3 +d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu +dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq +RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy +MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD +VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0 +L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g +Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi +A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt +ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH +Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O +BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC +R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX +hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIJAOj6GWMU0voYMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV +BAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTYwNTI2MTYyODUyWhcNMjYwNTI0MTYy +ODUyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS +Sxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7 +tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj +nar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq +C4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ +oVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O +JtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg +sTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi +igHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M +RPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E +aDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um +AGMCAwEAAaOBpjCBozAdBgNVHQ4EFgQUNmHhAHyIBQlRi0RsR/8aTMnqTxIwHwYD +VR0jBBgwFoAUNmHhAHyIBQlRi0RsR/8aTMnqTxIwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAYYwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cHM6Ly9hbmRyb2lk +Lmdvb2dsZWFwaXMuY29tL2F0dGVzdGF0aW9uL2NybC8wDQYJKoZIhvcNAQELBQAD +ggIBACDIw41L3KlXG0aMiS//cqrG+EShHUGo8HNsw30W1kJtjn6UBwRM6jnmiwfB +Pb8VA91chb2vssAtX2zbTvqBJ9+LBPGCdw/E53Rbf86qhxKaiAHOjpvAy5Y3m00m +qC0w/Zwvju1twb4vhLaJ5NkUJYsUS7rmJKHHBnETLi8GFqiEsqTWpG/6ibYCv7rY +DBJDcR9W62BW9jfIoBQcxUCUJouMPH25lLNcDc1ssqvC2v7iUgI9LeoM1sNovqPm +QUiG9rHli1vXxzCyaMTjwftkJLkf6724DFhuKug2jITV0QkXvaJWF4nUaHOTNA4u +JU9WDvZLI1j83A+/xnAJUucIv/zGJ1AMH2boHqF8CY16LpsYgBt6tKxxWH00XcyD +CdW2KlBCeqbQPcsFmWyWugxdcekhYsAWyoSf818NUsZdBWBaR/OukXrNLfkQ79Iy +ZohZbvabO/X+MVT3rriAoKc8oE2Uws6DF+60PV7/WIPjNvXySdqspImSN78mflxD +qwLqRBYkA3I75qppLGG9rp7UCdRjxMl8ZDBld+7yvHVgt1cVzJx9xnyGCC23Uaic +MDSXYrB4I4WHXPGjxhZuCuPBLTdOLU8YRvMYdEvYebWHMpvwGCF6bAx3JBpIeOQ1 +wDB5y0USicV3YgYGmi+NZfhA4URSh77Yd6uuJOJENRaNVTzk +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ +RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD +VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX +DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y +ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy +VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr +mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr +IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK +mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu +XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy +dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye +jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1 +BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3 +DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92 +9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx +jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0 +Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz +ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS +R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB +iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl +cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV +BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw +MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV +BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK +AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B +3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY +tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/ +Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2 +VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT +79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6 +c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT +Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l +c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee +UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE +Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd +BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G +A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF +Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO +VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3 +ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs +8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR +iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze +Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ +XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/ +qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB +VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB +L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG +jjxDah2nGN59PRbxYvnKkKj9 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT +EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp +ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz +NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH +EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE +AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD +E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH +/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy +DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh +GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR +tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA +AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX +WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu +9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr +gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo +2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI +4uJEvlz36hz1 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb +MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow +GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj +YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL +MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE +BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM +GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua +BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe +3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4 +YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR +rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm +ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU +oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v +QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t +b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF +AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q +GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2 +G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi +l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3 +smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT +HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs +ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw +MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj +aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp +Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg +nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1 +HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N +Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN +dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0 +HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G +CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU +sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3 +4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg +8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1 +mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL +MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE +BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT +IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw +MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy +ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N +T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR +FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J +cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW +BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm +fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv +GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j +ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL +MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 +LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug +RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm ++9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW +PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM +xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB +Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3 +hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg +EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA +FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec +nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z +eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF +hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 +Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep ++OkuE6N36B9K +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw +CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu +ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe +Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw +EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x +IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF +K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG +fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO +Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd +BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx +AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/ +oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8 +sycX +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg +RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu +Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y +ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If +xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV +ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO +DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ +jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/ +CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi +EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM +fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY +uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK +chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t +9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2 +SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd ++SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc +fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa +sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N +cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N +0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie +4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI +r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1 +/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm +gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBH +MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM +QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy +MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl +cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vX +mX7wCl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7 +zUjwTcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0P +fyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtc +vfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4 +Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUsp +zBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOO +Rc92wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYW +k70paDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+ +DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgF +lQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBADiW +Cu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1 +d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6Z +XPYfcX3v73svfuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZR +gyFmxhE+885H7pwoHyXa/6xmld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3 +d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9bgsiG1eGZbYwE8na6SfZu6W0eX6Dv +J4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq4BjFbkerQUIpm/Zg +DdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWErtXvM ++SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyy +F62ARPBopY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9 +SQ98POyDGCBDTtWTurQ0sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdws +E3PYJ/HQcu51OyLemGhmW/HGY0dVHLqlCFF1pkgl +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz +dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG +A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U +cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf +qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ +JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ ++jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS +s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5 +HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7 +70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG +V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S +qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S +5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia +C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX +OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE +FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2 +KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B +8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ +MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc +0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ +u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF +u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH +YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8 +GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO +RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e +KeC2uAloGRwYQw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT +MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i +YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg +R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9 +9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq +fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv +iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU +1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+ +bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW +MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA +ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l +uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn +Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS +tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF +PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un +hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV +5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP +Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr +ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL +MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1 +yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr +VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/ +nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG +XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj +vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt +Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g +N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC +nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG +A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv +b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw +MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i +YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT +aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ +jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp +xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp +1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG +snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ +U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8 +9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E +BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B +AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz +yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE +38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP +AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad +DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME +HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0 +Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW +KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw +NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw +NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy +ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV +BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo +Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4 +4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9 +KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI +rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi +94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB +sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi +gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo +kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE +vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t +O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua +AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP +9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/ +eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m +0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh +MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE +YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3 +MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo +ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg +MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN +ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA +PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w +wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi +EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY +avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+ +YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE +sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h +/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5 +IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD +ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy +OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P +TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER +dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf +ReYNnyicsbkqWletNw+vHX/bvZ8= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 +MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 +RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT +gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm +KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd +QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ +XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o +LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU +RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp +jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK +6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX +mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs +Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH +WD9f +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML +RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp +bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5 +IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3 +MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3 +LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp +YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG +A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq +K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe +sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX +MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT +XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/ +HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH +4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub +j1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo +U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf +zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b +u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+ +bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er +fF6adulZkMV8gzURZVE= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC +VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ +cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ +BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt +VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D +0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9 +ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G +A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs +aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I +flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH +MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI +2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx +1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ +q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz +tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ +vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV +5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY +1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4 +NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG +Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91 +8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe +pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/arculus_fido2_u2f_key_card.pem b/restricted/WebAuthn/rootCertificates/mds/arculus_fido2_u2f_key_card.pem new file mode 100644 index 0000000..b87d70d --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/arculus_fido2_u2f_key_card.pem @@ -0,0 +1,40 @@ +Arculus FIDO2/U2F Key Card +-------------------------- + +-----BEGIN CERTIFICATE----- +MIIC+jCCAqCgAwIBAgIUTXJy28lpQVlhIp7ETBi+U4bcaD8wCgYIKoZIzj0EAwIw +gYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApOZXcgSmVyc2V5MREwDwYDVQQHDAhT +b21lcnNldDEUMBIGA1UECgwLQ29tcG9TZWN1cmUxEDAOBgNVBAsMB0FyY3VsdXMx +ITAfBgNVBAMMGENvbXBvU2VjdXJlLUZJRE8tQ0EtUm9vdDAgFw0yMzA0MTgxNTQ1 +NTBaGA8yMDUzMDQxMDE1NDU1MFowgYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApO +ZXcgSmVyc2V5MREwDwYDVQQHDAhTb21lcnNldDEUMBIGA1UECgwLQ29tcG9TZWN1 +cmUxEDAOBgNVBAsMB0FyY3VsdXMxITAfBgNVBAMMGENvbXBvU2VjdXJlLUZJRE8t +Q0EtUm9vdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCgG7r6VA/h+BynUnyDZ +MD0VZkYW6RGnph0w25gQDWMoqAaiUaFG5MClkhakIBpLF+6xJBhO1gs+7C1k/juV +uv2jgfMwgfAwHQYDVR0OBBYEFJz1gFtTTBNfffDKvdjpUEyp70ztMIHABgNVHSME +gbgwgbWAFJz1gFtTTBNfffDKvdjpUEyp70ztoYGGpIGDMIGAMQswCQYDVQQGEwJV +UzETMBEGA1UECAwKTmV3IEplcnNleTERMA8GA1UEBwwIU29tZXJzZXQxFDASBgNV +BAoMC0NvbXBvU2VjdXJlMRAwDgYDVQQLDAdBcmN1bHVzMSEwHwYDVQQDDBhDb21w +b1NlY3VyZS1GSURPLUNBLVJvb3SCFE1yctvJaUFZYSKexEwYvlOG3Gg/MAwGA1Ud +EwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIgcgXGMDP2rfh4ETY9EJLwuXo1S9Ui +qtEmPhq9/diS0nACIQDoyLZosx8rRAF1vpRXcsVQDDSHoEs/PbmF3Er/mJ0x6w== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIC5DCCAoqgAwIBAgIJAJ1mgX+TKiH7MAoGCCqGSM49BAMCMIGAMQswCQYDVQQG +EwJVUzETMBEGA1UECAwKTmV3IEplcnNleTERMA8GA1UEBwwIU29tZXJzZXQxFDAS +BgNVBAoMC0NvbXBvU2VjdXJlMRAwDgYDVQQLDAdBcmN1bHVzMSEwHwYDVQQDDBhD +b21wb1NlY3VyZS1GSURPLUNBLVJvb3QwIBcNMjMwMTEzMTc1NTMwWhgPMjA1MzAx +MDUxNzU1MzBaMIGAMQswCQYDVQQGEwJVUzETMBEGA1UECAwKTmV3IEplcnNleTER +MA8GA1UEBwwIU29tZXJzZXQxFDASBgNVBAoMC0NvbXBvU2VjdXJlMRAwDgYDVQQL +DAdBcmN1bHVzMSEwHwYDVQQDDBhDb21wb1NlY3VyZS1GSURPLUNBLVJvb3QwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAR3NlslpEpX/BiZ9RpWE+qrm2IRMLi3bksd +aHSpA8+ozUaFavT4L0pPSLBhnTRF15CaTHJMcEUGugr/xoGTdLNpo4HoMIHlMB0G +A1UdDgQWBBR4z78sTmaiwHBw0fzV66W6fl/9WDCBtQYDVR0jBIGtMIGqgBR4z78s +TmaiwHBw0fzV66W6fl/9WKGBhqSBgzCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgM +Ck5ldyBKZXJzZXkxETAPBgNVBAcMCFNvbWVyc2V0MRQwEgYDVQQKDAtDb21wb1Nl +Y3VyZTEQMA4GA1UECwwHQXJjdWx1czEhMB8GA1UEAwwYQ29tcG9TZWN1cmUtRklE +Ty1DQS1Sb290ggkAnWaBf5MqIfswDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQDAgNI +ADBFAiBpeKFNvzFvn+zY8cQdmFGrtl01Jxyllavlqxutc2xtRgIhAO01eFsUvTDd +kTeHm9eAvwLP5vXNIrU3MOxjwaIltaOY +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/arculus_fido2_u2f_key_card_p71.pem b/restricted/WebAuthn/rootCertificates/mds/arculus_fido2_u2f_key_card_p71.pem new file mode 100644 index 0000000..3677db9 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/arculus_fido2_u2f_key_card_p71.pem @@ -0,0 +1,21 @@ +Arculus FIDO2/U2F Key Card [P71] +-------------------------------- + +-----BEGIN CERTIFICATE----- +MIIC+jCCAqCgAwIBAgIUTXJy28lpQVlhIp7ETBi+U4bcaD8wCgYIKoZIzj0EAwIw +gYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApOZXcgSmVyc2V5MREwDwYDVQQHDAhT +b21lcnNldDEUMBIGA1UECgwLQ29tcG9TZWN1cmUxEDAOBgNVBAsMB0FyY3VsdXMx +ITAfBgNVBAMMGENvbXBvU2VjdXJlLUZJRE8tQ0EtUm9vdDAgFw0yMzA0MTgxNTQ1 +NTBaGA8yMDUzMDQxMDE1NDU1MFowgYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApO +ZXcgSmVyc2V5MREwDwYDVQQHDAhTb21lcnNldDEUMBIGA1UECgwLQ29tcG9TZWN1 +cmUxEDAOBgNVBAsMB0FyY3VsdXMxITAfBgNVBAMMGENvbXBvU2VjdXJlLUZJRE8t +Q0EtUm9vdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCgG7r6VA/h+BynUnyDZ +MD0VZkYW6RGnph0w25gQDWMoqAaiUaFG5MClkhakIBpLF+6xJBhO1gs+7C1k/juV +uv2jgfMwgfAwHQYDVR0OBBYEFJz1gFtTTBNfffDKvdjpUEyp70ztMIHABgNVHSME +gbgwgbWAFJz1gFtTTBNfffDKvdjpUEyp70ztoYGGpIGDMIGAMQswCQYDVQQGEwJV +UzETMBEGA1UECAwKTmV3IEplcnNleTERMA8GA1UEBwwIU29tZXJzZXQxFDASBgNV +BAoMC0NvbXBvU2VjdXJlMRAwDgYDVQQLDAdBcmN1bHVzMSEwHwYDVQQDDBhDb21w +b1NlY3VyZS1GSURPLUNBLVJvb3SCFE1yctvJaUFZYSKexEwYvlOG3Gg/MAwGA1Ud +EwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIgcgXGMDP2rfh4ETY9EJLwuXo1S9Ui +qtEmPhq9/diS0nACIQDoyLZosx8rRAF1vpRXcsVQDDSHoEs/PbmF3Er/mJ0x6w== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/arculus_fido_2_1_key_card.pem b/restricted/WebAuthn/rootCertificates/mds/arculus_fido_2_1_key_card.pem new file mode 100644 index 0000000..c2fa4b7 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/arculus_fido_2_1_key_card.pem @@ -0,0 +1,21 @@ +Arculus FIDO 2.1 Key Card +------------------------- + +-----BEGIN CERTIFICATE----- +MIIC5DCCAoqgAwIBAgIJAJ1mgX+TKiH7MAoGCCqGSM49BAMCMIGAMQswCQYDVQQG +EwJVUzETMBEGA1UECAwKTmV3IEplcnNleTERMA8GA1UEBwwIU29tZXJzZXQxFDAS +BgNVBAoMC0NvbXBvU2VjdXJlMRAwDgYDVQQLDAdBcmN1bHVzMSEwHwYDVQQDDBhD +b21wb1NlY3VyZS1GSURPLUNBLVJvb3QwIBcNMjMwMTEzMTc1NTMwWhgPMjA1MzAx +MDUxNzU1MzBaMIGAMQswCQYDVQQGEwJVUzETMBEGA1UECAwKTmV3IEplcnNleTER +MA8GA1UEBwwIU29tZXJzZXQxFDASBgNVBAoMC0NvbXBvU2VjdXJlMRAwDgYDVQQL +DAdBcmN1bHVzMSEwHwYDVQQDDBhDb21wb1NlY3VyZS1GSURPLUNBLVJvb3QwWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAR3NlslpEpX/BiZ9RpWE+qrm2IRMLi3bksd +aHSpA8+ozUaFavT4L0pPSLBhnTRF15CaTHJMcEUGugr/xoGTdLNpo4HoMIHlMB0G +A1UdDgQWBBR4z78sTmaiwHBw0fzV66W6fl/9WDCBtQYDVR0jBIGtMIGqgBR4z78s +TmaiwHBw0fzV66W6fl/9WKGBhqSBgzCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgM +Ck5ldyBKZXJzZXkxETAPBgNVBAcMCFNvbWVyc2V0MRQwEgYDVQQKDAtDb21wb1Nl +Y3VyZTEQMA4GA1UECwwHQXJjdWx1czEhMB8GA1UEAwwYQ29tcG9TZWN1cmUtRklE +Ty1DQS1Sb290ggkAnWaBf5MqIfswDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQDAgNI +ADBFAiBpeKFNvzFvn+zY8cQdmFGrtl01Jxyllavlqxutc2xtRgIhAO01eFsUvTDd +kTeHm9eAvwLP5vXNIrU3MOxjwaIltaOY +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/arculus_fido_2_1_key_card_p71.pem b/restricted/WebAuthn/rootCertificates/mds/arculus_fido_2_1_key_card_p71.pem new file mode 100644 index 0000000..55a8650 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/arculus_fido_2_1_key_card_p71.pem @@ -0,0 +1,21 @@ +Arculus FIDO 2.1 Key Card [P71] +------------------------------- + +-----BEGIN CERTIFICATE----- +MIIC+jCCAqCgAwIBAgIUTXJy28lpQVlhIp7ETBi+U4bcaD8wCgYIKoZIzj0EAwIw +gYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApOZXcgSmVyc2V5MREwDwYDVQQHDAhT +b21lcnNldDEUMBIGA1UECgwLQ29tcG9TZWN1cmUxEDAOBgNVBAsMB0FyY3VsdXMx +ITAfBgNVBAMMGENvbXBvU2VjdXJlLUZJRE8tQ0EtUm9vdDAgFw0yMzA0MTgxNTQ1 +NTBaGA8yMDUzMDQxMDE1NDU1MFowgYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApO +ZXcgSmVyc2V5MREwDwYDVQQHDAhTb21lcnNldDEUMBIGA1UECgwLQ29tcG9TZWN1 +cmUxEDAOBgNVBAsMB0FyY3VsdXMxITAfBgNVBAMMGENvbXBvU2VjdXJlLUZJRE8t +Q0EtUm9vdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCgG7r6VA/h+BynUnyDZ +MD0VZkYW6RGnph0w25gQDWMoqAaiUaFG5MClkhakIBpLF+6xJBhO1gs+7C1k/juV +uv2jgfMwgfAwHQYDVR0OBBYEFJz1gFtTTBNfffDKvdjpUEyp70ztMIHABgNVHSME +gbgwgbWAFJz1gFtTTBNfffDKvdjpUEyp70ztoYGGpIGDMIGAMQswCQYDVQQGEwJV +UzETMBEGA1UECAwKTmV3IEplcnNleTERMA8GA1UEBwwIU29tZXJzZXQxFDASBgNV +BAoMC0NvbXBvU2VjdXJlMRAwDgYDVQQLDAdBcmN1bHVzMSEwHwYDVQQDDBhDb21w +b1NlY3VyZS1GSURPLUNBLVJvb3SCFE1yctvJaUFZYSKexEwYvlOG3Gg/MAwGA1Ud +EwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIgcgXGMDP2rfh4ETY9EJLwuXo1S9Ui +qtEmPhq9/diS0nACIQDoyLZosx8rRAF1vpRXcsVQDDSHoEs/PbmF3Er/mJ0x6w== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/atkey_card_ctap2_0.pem b/restricted/WebAuthn/rootCertificates/mds/atkey_card_ctap2_0.pem new file mode 100644 index 0000000..87203fa --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/atkey_card_ctap2_0.pem @@ -0,0 +1,15 @@ +ATKey.Card CTAP2.0 +------------------ + +-----BEGIN CERTIFICATE----- +MIIBzDCCAXGgAwIBAgIBATAKBggqhkjOPQQDAjBiMQswCQYDVQQGEwJTRTESMBAG +A1UECgwJQVRLZXlDQTAwMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0 +aW9uMRswGQYDVQQDExJBdXRoZW50cmVuZCBDQSAwMDAwIBcNMTYwMjI2MDgxMTA2 +WhgPMjA1MDAyMjUwODExMDZaMGIxCzAJBgNVBAYTAlNFMRIwEAYDVQQKDAlBVEtl +eUNBMDAxIjAgBgNVBAsMGUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xGzAZBgNV +BAMTEkF1dGhlbnRyZW5kIENBIDAwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BAJcWqeCxga9KJbFO2TZdjcgrtZAgfi8TXKu+v5lcR5ceb5GJYxyoCjhueESL3dd +mMIkpGyhsEEtfFUyBwsyFVCjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwCgYIKoZI +zj0EAwIDSQAwRgIhAL4TbP00sENbTEXGoagM6Hkl2XIDrxgKbHwow/9GibYTAiEA +udIm7EGqfya8QygKcbkQfqrwefYnBvZKI0xwn/kKWx4= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/atkey_card_nfc.pem b/restricted/WebAuthn/rootCertificates/mds/atkey_card_nfc.pem new file mode 100644 index 0000000..8e1569d --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/atkey_card_nfc.pem @@ -0,0 +1,13 @@ +ATKey.Card NFC +-------------- + +-----BEGIN CERTIFICATE----- +MIIBbTCCARSgAwIBAgIBATAKBggqhkjOPQQDAjAtMSswKQYDVQQDDCJBdXRoZW50 +cmVuZCBBVEtleSBSb290IENBIDIwMjIwOTA4MCAXDTIyMDkwODA4Mzg1N1oYDzIw +NjIwODI5MDgzODU3WjAtMSswKQYDVQQDDCJBdXRoZW50cmVuZCBBVEtleSBSb290 +IENBIDIwMjIwOTA4MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/N+v/Pbx64tD +vMMiSkcjwP5M8D2IUfrGl0HnzoHMJGUwb+R48MezWi1J3ZBXeOpSHfjrgxFfo3ir +LeLVwIK7C6MjMCEwDwYDVR0TBAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwCgYI +KoZIzj0EAwIDRwAwRAIgWqn3eN+y0V933MGj3fQrdrUXs8VmUprEs7C0NV98DTIC +IEYC++9dO4cjaURuW4bdtOzIq0P4cTWd7pScBajLN3dx +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/atkey_hello_typec.pem b/restricted/WebAuthn/rootCertificates/mds/atkey_hello_typec.pem new file mode 100644 index 0000000..ba3ece3 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/atkey_hello_typec.pem @@ -0,0 +1,12 @@ +ATKey.Hello TypeC +----------------- + +-----BEGIN CERTIFICATE----- +MIIBSTCB76ADAgECAhDyFMXqOf/nEYeDgG5vbmljMAoGCCqGSM49BAMCMCgxJjAk +BgNVBAMTHUVnaXNUZWMgRmluZ2VycHJpbnQgVTJGIFZEIENBMB4XDTE4MDEyMzAw +MDAwMFoXDTIzMDEyMzA1NTk1OVowJTEjMCEGA1UEAxMaRWdpc1RlYyBGaW5nZXJw +cmludCBVMkYgVkQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASj6/E9C4cTFsEH +vOJGEVvkDgHRwJWQr4uCtVcbKsFUKm9luL6aRR52FRGTIdzbjUMk1ieDyRHu7KKW +RNF14M+NMAoGCCqGSM49BAMCA0kAMEYCIQCQhjolqZveADb0w7vds8+1pFy3WBUi +JsDLvkWD6uP/qQIhAKKHu4LaiZDqtRTq9/aFK4L4oSpaQVG7hzvZcVP2YWyJ +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/atkey_pro_ctap2_0.pem b/restricted/WebAuthn/rootCertificates/mds/atkey_pro_ctap2_0.pem new file mode 100644 index 0000000..e5c4608 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/atkey_pro_ctap2_0.pem @@ -0,0 +1,15 @@ +ATKey.Pro CTAP2.0 +----------------- + +-----BEGIN CERTIFICATE----- +MIIBzDCCAXGgAwIBAgIBATAKBggqhkjOPQQDAjBiMQswCQYDVQQGEwJTRTESMBAG +A1UECgwJQVRLZXlDQTAwMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0 +aW9uMRswGQYDVQQDExJBdXRoZW50cmVuZCBDQSAwMDAwIBcNMTYwMjI2MDgxMTA2 +WhgPMjA1MDAyMjUwODExMDZaMGIxCzAJBgNVBAYTAlNFMRIwEAYDVQQKDAlBVEtl +eUNBMDAxIjAgBgNVBAsMGUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xGzAZBgNV +BAMTEkF1dGhlbnRyZW5kIENBIDAwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BAJcWqeCxga9KJbFO2TZdjcgrtZAgfi8TXKu+v5lcR5ceb5GJYxyoCjhueESL3dd +mMIkpGyhsEEtfFUyBwsyFVCjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwCgYIKoZI +zj0EAwIDSQAwRgIhAL4TbP00sENbTEXGoagM6Hkl2XIDrxgKbHwow/9GibYTAiEA +udIm7EGqfya8QygKcbkQfqrwefYnBvZKI0xwn/kKWx4= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/atkey_pro_ctap2_1.pem b/restricted/WebAuthn/rootCertificates/mds/atkey_pro_ctap2_1.pem new file mode 100644 index 0000000..48febaa --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/atkey_pro_ctap2_1.pem @@ -0,0 +1,15 @@ +ATKey.Pro CTAP2.1 +----------------- + +-----BEGIN CERTIFICATE----- +MIIBzDCCAXGgAwIBAgIBATAKBggqhkjOPQQDAjBiMQswCQYDVQQGEwJTRTESMBAG +A1UECgwJQVRLZXlDQTAwMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0 +aW9uMRswGQYDVQQDExJBdXRoZW50cmVuZCBDQSAwMDAwIBcNMTYwMjI2MDgxMTA2 +WhgPMjA1MDAyMjUwODExMDZaMGIxCzAJBgNVBAYTAlNFMRIwEAYDVQQKDAlBVEtl +eUNBMDAxIjAgBgNVBAsMGUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xGzAZBgNV +BAMTEkF1dGhlbnRyZW5kIENBIDAwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA +BAJcWqeCxga9KJbFO2TZdjcgrtZAgfi8TXKu+v5lcR5ceb5GJYxyoCjhueESL3dd +mMIkpGyhsEEtfFUyBwsyFVCjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwCgYIKoZI +zj0EAwIDSQAwRgIhAL4TbP00sENbTEXGoagM6Hkl2XIDrxgKbHwow/9GibYTAiEA +udIm7EGqfya8QygKcbkQfqrwefYnBvZKI0xwn/kKWx4= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/atkey_pros.pem b/restricted/WebAuthn/rootCertificates/mds/atkey_pros.pem new file mode 100644 index 0000000..e8a116a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/atkey_pros.pem @@ -0,0 +1,13 @@ +ATKey.ProS +---------- + +-----BEGIN CERTIFICATE----- +MIIBbTCCARSgAwIBAgIBATAKBggqhkjOPQQDAjAtMSswKQYDVQQDDCJBdXRoZW50 +cmVuZCBBVEtleSBSb290IENBIDIwMjIwOTA4MCAXDTIyMDkwODA4Mzg1N1oYDzIw +NjIwODI5MDgzODU3WjAtMSswKQYDVQQDDCJBdXRoZW50cmVuZCBBVEtleSBSb290 +IENBIDIwMjIwOTA4MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/N+v/Pbx64tD +vMMiSkcjwP5M8D2IUfrGl0HnzoHMJGUwb+R48MezWi1J3ZBXeOpSHfjrgxFfo3ir +LeLVwIK7C6MjMCEwDwYDVR0TBAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwCgYI +KoZIzj0EAwIDRwAwRAIgWqn3eN+y0V933MGj3fQrdrUXs8VmUprEs7C0NV98DTIC +IEYC++9dO4cjaURuW4bdtOzIq0P4cTWd7pScBajLN3dx +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/atlkey_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/atlkey_authenticator.pem new file mode 100644 index 0000000..71fea65 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/atlkey_authenticator.pem @@ -0,0 +1,14 @@ +ATLKey Authenticator +-------------------- + +-----BEGIN CERTIFICATE----- +MIIBnTCCAUSgAwIBAgIUeCtNNwTi+UmLgnuS00DCjxZ0aFQwCgYIKoZIzj0EAwIw +PTEaMBgGA1UEAwwRQXRsYW5jdWJlIEZJRE8gQ0ExEjAQBgNVBAoMCUF0bGFuY3Vi +ZTELMAkGA1UEBhMCVFcwIBcNMjUwNjE5MTUxOTIzWhgPMjEyNDA1MjcxNTE5MjNa +MD0xGjAYBgNVBAMMEUF0bGFuY3ViZSBGSURPIENBMRIwEAYDVQQKDAlBdGxhbmN1 +YmUxCzAJBgNVBAYTAlRXMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEERKz3/zP +n9Pn7zZGPyacSbjY0CALdPHPHED2w3Wc+mU+K7poYWzvjuI9M3Pya9iJrJ00ltDA +0/VZW28lra+w4aMgMB4wDwYDVR0TBAgwBgEB/wIBADALBgNVHQ8EBAMCAQYwCgYI +KoZIzj0EAwIDRwAwRAIgLZvGZGlepxiFBbU8WdknXucloW6sHNo0YKDMC7cQuG4C +ID/q7aLWkprtHyZJEasve1Pk796Qa1GohXOXHXMDCRXu +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/atos_cardos_fido2.pem b/restricted/WebAuthn/rootCertificates/mds/atos_cardos_fido2.pem new file mode 100644 index 0000000..0f09285 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/atos_cardos_fido2.pem @@ -0,0 +1,27 @@ +Atos CardOS FIDO2 +----------------- + +-----BEGIN CERTIFICATE----- +MIIBnTCCAUOgAwIBAgIJAKIFntEOQ1tXMAoGCCqGSM49BAMCMFQxCzAJBgNVBAYT +AkdFMQ0wCwYDVQQKDARBdG9zMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVz +dGF0aW9uMRIwEAYDVQQDDAlBdG9zIHJvb3QwHhcNMjIwMzA4MTEyMDI5WhcNMzcw +MzA0MTEyMDI5WjBUMQswCQYDVQQGEwJHRTENMAsGA1UECgwEQXRvczEiMCAGA1UE +CwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjESMBAGA1UEAwwJQXRvcyByb290 +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEj28UDEcSqGRUT1PMDasmj2Gd6BsT +TS0M1O2W9dM0YEY9hrDgD/AswRVcRbxnyt3xdCP0KhIiegNIRwUcVEJvezAKBggq +hkjOPQQDAgNIADBFAiEA61mCCoCnDxCkVBXDmhjmG01ibdRWV63j5ScSjBFnIkcC +IEAd1Wwb1iUyKBfjpxk/R/t0OsptPOIF87uShy3lXvbH +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBsjCCAVigAwIBAgIJAKIFntEOQ1tXMAoGCCqGSM49BAMCMFQxCzAJBgNVBAYT +AkdFMQ0wCwYDVQQKDARBdG9zMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVz +dGF0aW9uMRIwEAYDVQQDDAlBdG9zIHJvb3QwHhcNMjAwOTA5MDYxNDU4WhcNMzAw +OTA3MDYxNDU4WjBUMQswCQYDVQQGEwJHRTENMAsGA1UECgwEQXRvczEiMCAGA1UE +CwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjESMBAGA1UEAwwJQXRvcyByb290 +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEpKR0f6Vdq0PYXxH7JVMkGxNoM4Xo +HFuQ+e7qf+04P4J2GGS9vXFLVQZ5coFnRPfCflDCLkzafM3QEdcYCVoyPKMTMBEw +DwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNIADBFAiEAzXpow3/4yOXNbALo +dMv5KIornn5wRRI36YQpv3Wbh00CIEy14Sy7LrlgJSZTG0Md5wjQbyoVTfU/2oZy +p9EnplDL +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/authenton1_ctap2_1.pem b/restricted/WebAuthn/rootCertificates/mds/authenton1_ctap2_1.pem new file mode 100644 index 0000000..415878a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/authenton1_ctap2_1.pem @@ -0,0 +1,57 @@ +authenton1 - CTAP2.1 +-------------------- + +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 +MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 +RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT +gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm +KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd +QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ +XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o +LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU +RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp +jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK +6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX +mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs +Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH +WD9f +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIFhDCCBGygAwIBAgIMbUI9+zyEQUTD+dnCMA0GCSqGSIb3DQEBCwUAMFsxCzAJ +BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH +bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwMB4XDTIzMDEy +NDE1MDEwM1oXDTI2MDEyNDE1MDEwM1owgbYxCzAJBgNVBAYTAkRFMQ8wDQYDVQQI +EwZCYXllcm4xETAPBgNVBAcTCEFzY2hoZWltMSowKAYDVQQKEyFBSVhlY3V0aXZl +LmNvbSAoQXhlbCBWb25kZXJoYWdlbikxEjAQBgNVBAsTCWF1dGhlbnRvbjETMBEG +A1UEAxMKQUlYZWN1dGl2ZTEuMCwGCSqGSIb3DQEJARYfQVhFTC5WT05ERVJIQUdF +TkBBSVhFQ1VUSVZFLkNPTTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AKf/4GzGAUmJH4R9mCvcJ+CgTUgP1DNr8dN2kDvSA9xuIMb1NZJXQgxSOOAYqIBz +FNcjkNVl80Y3drm4tPJSl3kfWWM26xYLFsvl1BcqtrPrssyxIBtX5kTe2p+M9Rlc +ZQcEj5CbYpASpuSTByzoOuf+VSfOUVqDzCDH4CqsECyvyLKrJw9kjN4B6lFXyzmr +IWqRmGWKx4cso/wxYIUNcOV+p6I84Y2z1nFIWEhcA6dgrJQnDpD5IGEJdSxTn8t2 +ZnANp4JEAp8j5w3tbU89RKi3yPAuwsxi3XcloFAtGxw2wk7nJyizq98tO5lwfgHN +/YnglYwU4UFnOBzP5MuzPrECAwEAAaOCAeowggHmMA4GA1UdDwEB/wQEAwIFoDCB +owYIKwYBBQUHAQEEgZYwgZMwTgYIKwYBBQUHMAKGQmh0dHA6Ly9zZWN1cmUuZ2xv +YmFsc2lnbi5jb20vY2FjZXJ0L2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwLmNy +dDBBBggrBgEFBQcwAYY1aHR0cDovL29jc3AuZ2xvYmFsc2lnbi5jb20vZ3NnY2Ny +M3BlcnNvbmFsc2lnbjJjYTIwMjAwTQYDVR0gBEYwRDBCBgorBgEEAaAyASgKMDQw +MgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRv +cnkvMAkGA1UdEwQCMAAwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5nbG9i +YWxzaWduLmNvbS9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcmwwKgYDVR0R +BCMwIYEfQVhFTC5WT05ERVJIQUdFTkBBSVhFQ1VUSVZFLkNPTTAdBgNVHSUEFjAU +BggrBgEFBQcDAgYIKwYBBQUHAwQwHwYDVR0jBBgwFoAUljPR5lgXWzR1ioFWZNW+ +SN6hj88wHQYDVR0OBBYEFC57LN3RW38dexQhxfHW/WWt7cCQMA0GCSqGSIb3DQEB +CwUAA4IBAQCvvPim7joF0G4vOepSFbCRgtCwRAyen9fHzDS27WnsTbG9Uoq+ziGr +cD+U5EnH6UrmF1BqxXL1CjqEPrn5YQtZSs3pfvonXkFChtiYYOgK4gIqJtCVBaX3 +H4DHkI1V7Bh7b4vjZAD8cJLxiJf6AvI4e11D9K5tpZ7YZQE5Mw49VDtQ8A7pkjO6 +wXjHFXXgY1lPw+LRQuU3m9KGAM3C4ge0otpW0XyKDxqsKWOxmMX7IjhXFDpKYopm +mLPcTz70ONtbE2NHyIa3UujhcjbcrpoNkmaFiLk2pqKRZIoHkZaFMd9waQ9f1lS2 +wwVQxtH+vNV9N3K+HnL3nB/CU2E0btJH +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/authenton1_ctap_2_1.pem b/restricted/WebAuthn/rootCertificates/mds/authenton1_ctap_2_1.pem new file mode 100644 index 0000000..38dfa90 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/authenton1_ctap_2_1.pem @@ -0,0 +1,57 @@ +authenton1 - CTAP 2.1 +--------------------- + +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 +MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 +RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT +gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm +KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd +QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ +XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o +LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU +RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp +jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK +6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX +mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs +Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH +WD9f +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIFhDCCBGygAwIBAgIMbUI9+zyEQUTD+dnCMA0GCSqGSIb3DQEBCwUAMFsxCzAJ +BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH +bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwMB4XDTIzMDEy +NDE1MDEwM1oXDTI2MDEyNDE1MDEwM1owgbYxCzAJBgNVBAYTAkRFMQ8wDQYDVQQI +EwZCYXllcm4xETAPBgNVBAcTCEFzY2hoZWltMSowKAYDVQQKEyFBSVhlY3V0aXZl +LmNvbSAoQXhlbCBWb25kZXJoYWdlbikxEjAQBgNVBAsTCWF1dGhlbnRvbjETMBEG +A1UEAxMKQUlYZWN1dGl2ZTEuMCwGCSqGSIb3DQEJARYfQVhFTC5WT05ERVJIQUdF +TkBBSVhFQ1VUSVZFLkNPTTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AKf/4GzGAUmJH4R9mCvcJ+CgTUgP1DNr8dN2kDvSA9xuIMb1NZJXQgxSOOAYqIBz +FNcjkNVl80Y3drm4tPJSl3kfWWM26xYLFsvl1BcqtrPrssyxIBtX5kTe2p+M9Rlc +ZQcEj5CbYpASpuSTByzoOuf+VSfOUVqDzCDH4CqsECyvyLKrJw9kjN4B6lFXyzmr +IWqRmGWKx4cso/wxYIUNcOV+p6I84Y2z1nFIWEhcA6dgrJQnDpD5IGEJdSxTn8t2 +ZnANp4JEAp8j5w3tbU89RKi3yPAuwsxi3XcloFAtGxw2wk7nJyizq98tO5lwfgHN +/YnglYwU4UFnOBzP5MuzPrECAwEAAaOCAeowggHmMA4GA1UdDwEB/wQEAwIFoDCB +owYIKwYBBQUHAQEEgZYwgZMwTgYIKwYBBQUHMAKGQmh0dHA6Ly9zZWN1cmUuZ2xv +YmFsc2lnbi5jb20vY2FjZXJ0L2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwLmNy +dDBBBggrBgEFBQcwAYY1aHR0cDovL29jc3AuZ2xvYmFsc2lnbi5jb20vZ3NnY2Ny +M3BlcnNvbmFsc2lnbjJjYTIwMjAwTQYDVR0gBEYwRDBCBgorBgEEAaAyASgKMDQw +MgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRv +cnkvMAkGA1UdEwQCMAAwSQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5nbG9i +YWxzaWduLmNvbS9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcmwwKgYDVR0R +BCMwIYEfQVhFTC5WT05ERVJIQUdFTkBBSVhFQ1VUSVZFLkNPTTAdBgNVHSUEFjAU +BggrBgEFBQcDAgYIKwYBBQUHAwQwHwYDVR0jBBgwFoAUljPR5lgXWzR1ioFWZNW+ +SN6hj88wHQYDVR0OBBYEFC57LN3RW38dexQhxfHW/WWt7cCQMA0GCSqGSIb3DQEB +CwUAA4IBAQCvvPim7joF0G4vOepSFbCRgtCwRAyen9fHzDS27WnsTbG9Uoq+ziGr +cD+U5EnH6UrmF1BqxXL1CjqEPrn5YQtZSs3pfvonXkFChtiYYOgK4gIqJtCVBaX3 +H4DHkI1V7Bh7b4vjZAD8cJLxiJf6AvI4e11D9K5tpZ7YZQE5Mw49VDtQ8A7pkjO6 +wXjHFXXgY1lPw+LRQuU3m9KGAM3C4ge0otpW0XyKDxqsKWOxmMX7IjhXFDpKYopm +mLPcTz70ONtbE2NHyIa3UujhcjbcrpoNkmaFiLk2pqKRZIoHkZaFMd9waQ9f1lS2 +wwVQxtH+vNV9N3K+HnL3nB/CU2E0btJH +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/bluink_key_u2f_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/bluink_key_u2f_authenticator.pem new file mode 100644 index 0000000..eed3d63 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/bluink_key_u2f_authenticator.pem @@ -0,0 +1,21 @@ +Bluink Key U2F Authenticator +---------------------------- + +-----BEGIN CERTIFICATE----- +MIICzTCCAnOgAwIBAgIJAM+a12VznCtGMAkGByqGSM49BAEwezELMAkGA1UEBhMC +Q0ExEDAOBgNVBAgTB09udGFyaW8xDzANBgNVBAcTBk90dGF3YTETMBEGA1UEChMK +Qmx1aW5rIEx0ZDETMBEGA1UEAxMKQmx1aW5rIEtleTEfMB0GCSqGSIb3DQEJARYQ +bGhhbWlkQGJsdWluay5jYTAeFw0xNzA1MTExNDQ3NTdaFw0yMDA1MTAxNDQ3NTda +MHsxCzAJBgNVBAYTAkNBMRAwDgYDVQQIEwdPbnRhcmlvMQ8wDQYDVQQHEwZPdHRh +d2ExEzARBgNVBAoTCkJsdWluayBMdGQxEzARBgNVBAMTCkJsdWluayBLZXkxHzAd +BgkqhkiG9w0BCQEWEGxoYW1pZEBibHVpbmsuY2EwWTATBgcqhkjOPQIBBggqhkjO +PQMBBwNCAATmBAICSLbnRAfmagb7GLsDJQkHPS4s26D8rNwigtG9hUc/nC6dx1Mz +27fahnxkmu7q5TDwsZr7ZZ6PgAsWUZvYo4HgMIHdMB0GA1UdDgQWBBT/+UDTV5vE +QEBVdHs2cNQ6HpfQVDCBrQYDVR0jBIGlMIGigBT/+UDTV5vEQEBVdHs2cNQ6HpfQ +VKF/pH0wezELMAkGA1UEBhMCQ0ExEDAOBgNVBAgTB09udGFyaW8xDzANBgNVBAcT +Bk90dGF3YTETMBEGA1UEChMKQmx1aW5rIEx0ZDETMBEGA1UEAxMKQmx1aW5rIEtl +eTEfMB0GCSqGSIb3DQEJARYQbGhhbWlkQGJsdWluay5jYYIJAM+a12VznCtGMAwG +A1UdEwQFMAMBAf8wCQYHKoZIzj0EAQNJADBGAiEA5gf41zQJChcDZfEpj0xSpbgv +XUyLph2StREzEKd3RxkCIQC6iSmjKCK+OvpAdwn1UkoLN43nvY7DtATVDc4PkW04 +vw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/cardos_fido2_token.pem b/restricted/WebAuthn/rootCertificates/mds/cardos_fido2_token.pem new file mode 100644 index 0000000..ec2b0ad --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/cardos_fido2_token.pem @@ -0,0 +1,14 @@ +CardOS FIDO2 Token +------------------ + +-----BEGIN CERTIFICATE----- +MIIBmzCCAUGgAwIBAgIJAKIFntEOQ1tXMAoGCCqGSM49BAMCMFMxCzAJBgNVBAYT +AkRFMQ8wDQYDVQQKDAZDYXJkT1MxIjAgBgNVBAsMGUF1dGhlbnRpY2F0b3IgQXR0 +ZXN0YXRpb24xDzANBgNVBAMMBkNhcmRPUzAeFw0yNDA2MDQwOTQwNTdaFw0zOTA2 +MDEwOTQwNTdaMFMxCzAJBgNVBAYTAkRFMQ8wDQYDVQQKDAZDYXJkT1MxIjAgBgNV +BAsMGUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xDzANBgNVBAMMBkNhcmRPUzBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABOs5+63X5miRnDVqnEIUKd4+KzJ+ATN/ +VxWiBgNmAOOEo1AMVnxBAIf4/ahj5CypuDiLFAcCSvLALT4LmIQivX8wCgYIKoZI +zj0EAwIDSAAwRQIgHMT5ymII55Urh+J5h0vK0Gp8LVlrT7BRV7PjIoe3D14CIQDf +CXgMAGNpGfo75WOWqKq8vWIyLm0u/cUluvdrL7cZSw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/chipwon_clife_key.pem b/restricted/WebAuthn/rootCertificates/mds/chipwon_clife_key.pem new file mode 100644 index 0000000..61a4d2b --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/chipwon_clife_key.pem @@ -0,0 +1,15 @@ +Chipwon Clife Key +----------------- + +-----BEGIN CERTIFICATE----- +MIIBzjCCAXWgAwIBAgIUEV2uY0V01jqbXPEjMfYzCe+5VBwwCgYIKoZIzj0EAwIw +IDEeMBwGA1UEAwwVQ2hpcHdvbiBGSURPMiBDQSAwMDAxMCAXDTIzMDMwNzAzMTgw +NFoYDzIwNzMwMjIyMDMxODA0WjAgMR4wHAYDVQQDDBVDaGlwd29uIEZJRE8yIENB +IDAwMDEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAScI1TjULOUOLOSvJI8iX7j +lj/sa1giOdBEq20W6wkXnzxQJ6Kg1Nuohse+iIS40qMCyy3ApaZxwNR+/28VGmPw +o4GKMIGHMB0GA1UdDgQWBBQz89JQXTxbyjSlS35msPH7ayiGezBFBgNVHSMEPjA8 +oSSkIjAgMR4wHAYDVQQDDBVDaGlwd29uIEZJRE8yIENBIDAwMDGCFBFdrmNFdNY6 +m1zxIzH2MwnvuVQcMA8GA1UdEwQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMAoG +CCqGSM49BAMCA0cAMEQCIDwh8SAsItQKaKta1kt2bv2prvF5UtWAkTV0eg8kLfLK +AiAgex9xpKGCLPei+8TuEkxyKQC9F67t96HVvQPE+uUfBQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/chunghwa_telecom_fido2_smart_card_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/chunghwa_telecom_fido2_smart_card_authenticator.pem new file mode 100644 index 0000000..848bce7 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/chunghwa_telecom_fido2_smart_card_authenticator.pem @@ -0,0 +1,17 @@ +Chunghwa Telecom FIDO2 Smart Card Authenticator +----------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICNzCCAb6gAwIBAgIUXxwEkUH4+hB1lU8FJNpBgzO52WowCgYIKoZIzj0EAwMw +UjELMAkGA1UEBhMCVFcxGTAXBgNVBAoMEENodW5naHdhIFRlbGVjb20xKDAmBgNV +BAMMH0NIVCBGSURPMiBBdXRoZW50aWNhdG9yIFJPT1QgQ0EwIBcNMjMwNDE1MTA1 +MDM0WhgPMjA1MDA4MzExMDUwMzRaMFIxCzAJBgNVBAYTAlRXMRkwFwYDVQQKDBBD +aHVuZ2h3YSBUZWxlY29tMSgwJgYDVQQDDB9DSFQgRklETzIgQXV0aGVudGljYXRv +ciBST09UIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEcuOnckzUpHs30BfAqEjn +aTh7QIbbsh6IO9mioXT26Tq58OT+UrQmjMZWOvTb5KMeH7AuMnP0vtuRi7NwybjF +pLZ0z+NVQWLli+y6MrQ+LAXskLubldyjLmlrrEb3bnV4o1MwUTAdBgNVHQ4EFgQU +i1hFgvrw9yi+dvE2TiAVnhc0JUowHwYDVR0jBBgwFoAUi1hFgvrw9yi+dvE2TiAV +nhc0JUowDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNnADBkAjAWBopaL4jx +oYbvC5zcjJO/JEt72ViQaom1pKzmPmKiflfti9IIn3rz1jitP3zynC4CMHZNt1wM +JtNbFR5RIZfvEtE7m4o+8gdjrZjIYq+OjAYb5FG5MMWPJf/eYFGTIoWTFg== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/crayonic_keyvault_k1_usb_nfc_ble_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/crayonic_keyvault_k1_usb_nfc_ble_fido2_authenticator.pem new file mode 100644 index 0000000..fbf0066 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/crayonic_keyvault_k1_usb_nfc_ble_fido2_authenticator.pem @@ -0,0 +1,16 @@ +Crayonic KeyVault K1 (USB-NFC-BLE FIDO2 Authenticator) +------------------------------------------------------ + +-----BEGIN CERTIFICATE----- +MIIB9DCCAZsCFFiPk5r64pgWhAQjii07mvSEF1/uMAoGCCqGSM49BAMCMHwxCzAJ +BgNVBAYTAk5MMREwDwYDVQQKDAhDcmF5b25pYzEiMCAGA1UECwwZQXV0aGVudGlj +YXRvciBBdHRlc3RhdGlvbjEVMBMGA1UEAwwMY3JheW9uaWMuY29tMR8wHQYJKoZI +hvcNAQkBFhBpbmZvQGNyYXlvbmljLmlvMCAXDTIxMTAxMTE1MDk0MFoYDzIwNzEw +OTI5MTUwOTQwWjB8MQswCQYDVQQGEwJOTDERMA8GA1UECgwIQ3JheW9uaWMxIjAg +BgNVBAsMGUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xFTATBgNVBAMMDGNyYXlv +bmljLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0BjcmF5b25pYy5pbzBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABFiiJHHhiKAMqD44crdeOc8VOXn4mhSQzeVdjbXx +hNombdzc4Wj681xFm4PQ3oshaq8oKqhxahdEubWtS9AmDoowCgYIKoZIzj0EAwID +RwAwRAIgZ6N03aCmLH4gujAZo5MZkex6VvNNRBhTW0V7+YYYuxgCIAG5q0CRIFwZ +ofpPAOPlB55HCvJyVjhI2LsDrju88dnt +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/cryptnox_fido2.pem b/restricted/WebAuthn/rootCertificates/mds/cryptnox_fido2.pem new file mode 100644 index 0000000..d9c4393 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/cryptnox_fido2.pem @@ -0,0 +1,34 @@ +Cryptnox FIDO2 +-------------- + +-----BEGIN CERTIFICATE----- +MIICQTCCAaKgAwIBAgIGAIFDUXQrMAoGCCqGSM49BAMDME8xCzAJBgNVBAYTAkNI +MQ8wDQYDVQQIEwZHRU5FVkExFDASBgNVBAoTC0NSWVBUTk9YIFNBMRkwFwYDVQQD +ExBDUllQVE5PWCBST09UIENBMB4XDTIwMDYxNDAwMDAwMFoXDTQ5MTIyOTIzNTk1 +OVowVzELMAkGA1UEBhMCQ0gxDzANBgNVBAgTBkdFTkVWQTEUMBIGA1UEChMLQ1JZ +UFROT1ggU0ExITAfBgNVBAMTGENSWVBUTk9YIElOVEVSTUVESUFURSBDQTB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABGhcikuRYgNkak0pO8XgPWwG9RZXLQeqQEvKHfCn +37gaR5U9rhp4W8JTbfU9t8CFgD0DxNXEJE9KGNnLAtL708hCHeo6S5oeznGDFn9J +80bO7bdSDYHS5bzkEKPLNuamWKNFMEMwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV +HQ4EFgQUdrEtUyWaMtpVAQ7JGqQp3jzNShcwDgYDVR0PAQH/BAQDAgEGMAoGCCqG +SM49BAMDA4GMADCBiAJCAbWa/xcKx7KCcoUsp8SVZnWSxD8n91TqCJKajs7kJBz2 +DzvZZtPxKsMY38lH/8MYTC3wlRwdZc5s61EhlbdnOguBAkIBFmJLsOPyMQWUxmWl +2zuAS7ctqU03U74C3UUHSKDH3WSJH+y3i/XsCs/FM+Dk/3FjOgQTxioaqIc3hrwh +PlmorNo= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICWTCCAbqgAwIBAgIGAIFDUXQpMAoGCCqGSM49BAMEME8xCzAJBgNVBAYTAkNI +MQ8wDQYDVQQIEwZHRU5FVkExFDASBgNVBAoTC0NSWVBUTk9YIFNBMRkwFwYDVQQD +ExBDUllQVE5PWCBST09UIENBMB4XDTIwMDYxNDAwMDAwMFoXDTQ5MTIzMDIzNTk1 +OVowTzELMAkGA1UEBhMCQ0gxDzANBgNVBAgTBkdFTkVWQTEUMBIGA1UEChMLQ1JZ +UFROT1ggU0ExGTAXBgNVBAMTEENSWVBUTk9YIFJPT1QgQ0EwgZswEAYHKoZIzj0C +AQYFK4EEACMDgYYABAEJtmrMYc48nPSp0RRmEwT2U5aq0D1b3URLpmJP277ImEXK +EbjVQA8P3UyTdZinELTQ5g6E+lnN3GhUWif2/VmSbQDnu9f+ebyIZfBabosKK3SQ +Vv4KmuP9pb0f7P2vMPAUFJNZvKeH1DPtaZkFybMKZsg8CJEs7A9KW3RI/8QDpN1n +J6M/MD0wDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUUnfLODDaku1o8CSuwWfWylj4 +OvAwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMEA4GMADCBiAJCAKd8DeNhbPey +fh7UD3M9lPp5a77M1LmC2M2o7zRiHlePt+Xcr/I/xGK124gEuHjbOfyanre63EMT +uVW8ts5kR906AkIBgSIhJoENkMVFbeMRUDnDtbv+gKi+htqORGysid5sg2VvCX9Q +fnUqBKtZVUBeQVPk3E5GUEamLk4jljdvlDGSXpU= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/cryptnox_fido2_1.pem b/restricted/WebAuthn/rootCertificates/mds/cryptnox_fido2_1.pem new file mode 100644 index 0000000..f80e5a6 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/cryptnox_fido2_1.pem @@ -0,0 +1,18 @@ +Cryptnox FIDO2.1 +---------------- + +-----BEGIN CERTIFICATE----- +MIICQTCCAaKgAwIBAgIGAIFDUXQrMAoGCCqGSM49BAMDME8xCzAJBgNVBAYTAkNI +MQ8wDQYDVQQIEwZHRU5FVkExFDASBgNVBAoTC0NSWVBUTk9YIFNBMRkwFwYDVQQD +ExBDUllQVE5PWCBST09UIENBMB4XDTIwMDYxNDAwMDAwMFoXDTQ5MTIyOTIzNTk1 +OVowVzELMAkGA1UEBhMCQ0gxDzANBgNVBAgTBkdFTkVWQTEUMBIGA1UEChMLQ1JZ +UFROT1ggU0ExITAfBgNVBAMTGENSWVBUTk9YIElOVEVSTUVESUFURSBDQTB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABGhcikuRYgNkak0pO8XgPWwG9RZXLQeqQEvKHfCn +37gaR5U9rhp4W8JTbfU9t8CFgD0DxNXEJE9KGNnLAtL708hCHeo6S5oeznGDFn9J +80bO7bdSDYHS5bzkEKPLNuamWKNFMEMwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV +HQ4EFgQUdrEtUyWaMtpVAQ7JGqQp3jzNShcwDgYDVR0PAQH/BAQDAgEGMAoGCCqG +SM49BAMDA4GMADCBiAJCAbWa/xcKx7KCcoUsp8SVZnWSxD8n91TqCJKajs7kJBz2 +DzvZZtPxKsMY38lH/8MYTC3wlRwdZc5s61EhlbdnOguBAkIBFmJLsOPyMQWUxmWl +2zuAS7ctqU03U74C3UUHSKDH3WSJH+y3i/XsCs/FM+Dk/3FjOgQTxioaqIc3hrwh +PlmorNo= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/dapple_authenticator_from_dapple_security_inc.pem b/restricted/WebAuthn/rootCertificates/mds/dapple_authenticator_from_dapple_security_inc.pem new file mode 100644 index 0000000..65031fb --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/dapple_authenticator_from_dapple_security_inc.pem @@ -0,0 +1,21 @@ +Dapple Authenticator from Dapple Security Inc. +---------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIC9TCCApugAwIBAgIUX1QZKPzuXlwqUDPXKImrpb9U+icwCgYIKoZIzj0EAwIw +fzELMAkGA1UEBhMCVVMxETAPBgNVBAgMCENvbG9yYWRvMRMwEQYDVQQHDApDZW50 +ZW5uaWFsMR0wGwYDVQQKDBREYXBwbGUgU2VjdXJpdHkgSW5jLjEQMA4GA1UECwwH +Um9vdCBDQTEXMBUGA1UEAwwORGFwcGxlIFJvb3QgQ0EwHhcNMjQwNjI3MjI0MTAy +WhcNMzQwNjI1MjI0MTAyWjB/MQswCQYDVQQGEwJVUzERMA8GA1UECAwIQ29sb3Jh +ZG8xEzARBgNVBAcMCkNlbnRlbm5pYWwxHTAbBgNVBAoMFERhcHBsZSBTZWN1cml0 +eSBJbmMuMRAwDgYDVQQLDAdSb290IENBMRcwFQYDVQQDDA5EYXBwbGUgUm9vdCBD +QTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDJb2KIQQEo8dQieNB/DZOOJHM+0 +5j0Vvb1EYxWX7GuWolN2J1Z5aC0hwGbwM+s91vLmRCbsmk+GF5d9kLcxKkSjgfQw +gfEwHQYDVR0OBBYEFJ8bRuF6zIXYozyKokAfeRIEtUcTMIG+BgNVHSMEgbYwgbOA +FJ8bRuF6zIXYozyKokAfeRIEtUcToYGEpIGBMH8xCzAJBgNVBAYTAlVTMREwDwYD +VQQIDAhDb2xvcmFkbzETMBEGA1UEBwwKQ2VudGVubmlhbDEdMBsGA1UECgwURGFw +cGxlIFNlY3VyaXR5IEluYy4xEDAOBgNVBAsMB1Jvb3QgQ0ExFzAVBgNVBAMMDkRh +cHBsZSBSb290IENBghRfVBko/O5eXCpQM9coiaulv1T6JzAPBgNVHRMBAf8EBTAD +AQH/MAoGCCqGSM49BAMCA0gAMEUCID7ln9ZgL9uvMp0/lKtK+r2R9ip3OmyAgPfb +mPdSrlVGAiEA3yE6Zkg45oYG7N+gRuN599V3vGG3Wz9JVBfmRRKkPUs= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/deepnet_safekey_classic_fp.pem b/restricted/WebAuthn/rootCertificates/mds/deepnet_safekey_classic_fp.pem new file mode 100644 index 0000000..3a72213 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/deepnet_safekey_classic_fp.pem @@ -0,0 +1,20 @@ +Deepnet SafeKey/Classic (FP) +---------------------------- + +-----BEGIN CERTIFICATE----- +MIICnTCCAkSgAwIBAgIIcaDauTR6AI4wCgYIKoZIzj0EAwIwgaoxKjAoBgkqhkiG +9w0BCQEWG3N1cHBvcnRAZGVlcG5ldHNlY3VyaXR5LmNvbTENMAsGA1UECwwERklE +TzEZMBcGA1UECgwQRGVlcG5ldCBTZWN1cml0eTEQMA4GA1UEBwwHRW5nbGlzaDEQ +MA4GA1UECAwHRW5nbGFuZDEhMB8GA1UEAwwYZmlkby5kZWVwbmV0c2VjdXJpdHku +Y29tMQswCQYDVQQGEwJVSzAgFw0yNDAyMjcxMjE1NTVaGA8yMDc0MDIyNzEyMTU1 +NVowgaoxKjAoBgkqhkiG9w0BCQEWG3N1cHBvcnRAZGVlcG5ldHNlY3VyaXR5LmNv +bTENMAsGA1UECwwERklETzEZMBcGA1UECgwQRGVlcG5ldCBTZWN1cml0eTEQMA4G +A1UEBwwHRW5nbGlzaDEQMA4GA1UECAwHRW5nbGFuZDEhMB8GA1UEAwwYZmlkby5k +ZWVwbmV0c2VjdXJpdHkuY29tMQswCQYDVQQGEwJVSzBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABKjXbN2q0MkVslo6SzI8g79dw20/3++QRlrQhM3huppZ5i5ElSFi +ywzWhpig81Aq0SIu2KmlTYpt86mLL+dAZ5GjUDBOMB0GA1UdDgQWBBS0GCwNMi6v +WaJlBry+gOnhYsrtoDAfBgNVHSMEGDAWgBS0GCwNMi6vWaJlBry+gOnhYsrtoDAM +BgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0cAMEQCIGZcmqmChXi1hL9dZ2Xr6NKO +3hyfNBl75Z2Mixs9XTq/AiB77595vGu0Qq9H9AC7bUXp4Pm3SLHuk+kBY5nvwMTn +yA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/deepnet_safekey_classic_nfc.pem b/restricted/WebAuthn/rootCertificates/mds/deepnet_safekey_classic_nfc.pem new file mode 100644 index 0000000..92df15d --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/deepnet_safekey_classic_nfc.pem @@ -0,0 +1,20 @@ +Deepnet SafeKey/Classic (NFC) +----------------------------- + +-----BEGIN CERTIFICATE----- +MIICnTCCAkSgAwIBAgIIcaDauTR6AI4wCgYIKoZIzj0EAwIwgaoxKjAoBgkqhkiG +9w0BCQEWG3N1cHBvcnRAZGVlcG5ldHNlY3VyaXR5LmNvbTENMAsGA1UECwwERklE +TzEZMBcGA1UECgwQRGVlcG5ldCBTZWN1cml0eTEQMA4GA1UEBwwHRW5nbGlzaDEQ +MA4GA1UECAwHRW5nbGFuZDEhMB8GA1UEAwwYZmlkby5kZWVwbmV0c2VjdXJpdHku +Y29tMQswCQYDVQQGEwJVSzAgFw0yNDAyMjcxMjE1NTVaGA8yMDc0MDIyNzEyMTU1 +NVowgaoxKjAoBgkqhkiG9w0BCQEWG3N1cHBvcnRAZGVlcG5ldHNlY3VyaXR5LmNv +bTENMAsGA1UECwwERklETzEZMBcGA1UECgwQRGVlcG5ldCBTZWN1cml0eTEQMA4G +A1UEBwwHRW5nbGlzaDEQMA4GA1UECAwHRW5nbGFuZDEhMB8GA1UEAwwYZmlkby5k +ZWVwbmV0c2VjdXJpdHkuY29tMQswCQYDVQQGEwJVSzBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABKjXbN2q0MkVslo6SzI8g79dw20/3++QRlrQhM3huppZ5i5ElSFi +ywzWhpig81Aq0SIu2KmlTYpt86mLL+dAZ5GjUDBOMB0GA1UdDgQWBBS0GCwNMi6v +WaJlBry+gOnhYsrtoDAfBgNVHSMEGDAWgBS0GCwNMi6vWaJlBry+gOnhYsrtoDAM +BgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0cAMEQCIGZcmqmChXi1hL9dZ2Xr6NKO +3hyfNBl75Z2Mixs9XTq/AiB77595vGu0Qq9H9AC7bUXp4Pm3SLHuk+kBY5nvwMTn +yA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/deepnet_safekey_classic_usb.pem b/restricted/WebAuthn/rootCertificates/mds/deepnet_safekey_classic_usb.pem new file mode 100644 index 0000000..2d5ca17 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/deepnet_safekey_classic_usb.pem @@ -0,0 +1,20 @@ +Deepnet SafeKey/Classic (USB) +----------------------------- + +-----BEGIN CERTIFICATE----- +MIICnTCCAkSgAwIBAgIIcaDauTR6AI4wCgYIKoZIzj0EAwIwgaoxKjAoBgkqhkiG +9w0BCQEWG3N1cHBvcnRAZGVlcG5ldHNlY3VyaXR5LmNvbTENMAsGA1UECwwERklE +TzEZMBcGA1UECgwQRGVlcG5ldCBTZWN1cml0eTEQMA4GA1UEBwwHRW5nbGlzaDEQ +MA4GA1UECAwHRW5nbGFuZDEhMB8GA1UEAwwYZmlkby5kZWVwbmV0c2VjdXJpdHku +Y29tMQswCQYDVQQGEwJVSzAgFw0yNDAyMjcxMjE1NTVaGA8yMDc0MDIyNzEyMTU1 +NVowgaoxKjAoBgkqhkiG9w0BCQEWG3N1cHBvcnRAZGVlcG5ldHNlY3VyaXR5LmNv +bTENMAsGA1UECwwERklETzEZMBcGA1UECgwQRGVlcG5ldCBTZWN1cml0eTEQMA4G +A1UEBwwHRW5nbGlzaDEQMA4GA1UECAwHRW5nbGFuZDEhMB8GA1UEAwwYZmlkby5k +ZWVwbmV0c2VjdXJpdHkuY29tMQswCQYDVQQGEwJVSzBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABKjXbN2q0MkVslo6SzI8g79dw20/3++QRlrQhM3huppZ5i5ElSFi +ywzWhpig81Aq0SIu2KmlTYpt86mLL+dAZ5GjUDBOMB0GA1UdDgQWBBS0GCwNMi6v +WaJlBry+gOnhYsrtoDAfBgNVHSMEGDAWgBS0GCwNMi6vWaJlBry+gOnhYsrtoDAM +BgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0cAMEQCIGZcmqmChXi1hL9dZ2Xr6NKO +3hyfNBl75Z2Mixs9XTq/AiB77595vGu0Qq9H9AC7bUXp4Pm3SLHuk+kBY5nvwMTn +yA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/egis_u2f_ble_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/egis_u2f_ble_authenticator.pem new file mode 100644 index 0000000..d5aea2b --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/egis_u2f_ble_authenticator.pem @@ -0,0 +1,13 @@ +Egis U2F BLE Authenticator +-------------------------- + +-----BEGIN CERTIFICATE----- +MIIBbDCCARGgAwIBAgIBATAKBggqhkjOPQQDAjAdMRswGQYDVQQDExJFZ2lzdGVj +IENBIGZvciBVMkYwHhcNMTYwMjI2MDgxMTA2WhcNMTkwMjI1MDgxMTA2WjAdMRsw +GQYDVQQDExJFZ2lzdGVjIENBIGZvciBVMkYwWTATBgcqhkjOPQIBBggqhkjOPQMB +BwNCAARP3AE6Vs5tFBCIMexmdXiRFc8QcyTrc6nl1fEoBKwMdBMtjf/vzPjrrAit +k5Q2OjO9YNy26Ci4TMIYIwr8YBQoo0IwQDAdBgNVHQ4EFgQUyImr0BYnuY0vfBzZ +1dFtLQJi9pYwHwYDVR0jBBgwFoAUMuriP/C1iFg4vqBG15k4vHhOs3gwCgYIKoZI +zj0EAwIDSQAwRgIhAJQMO6n6PI9EPYx6MjusIFo7GPB1Y8Ypz+UBmUj6CUl2AiEA +h0E2mpaTVTRp1paWUlHvnYGBu3S04Hrd37OR0lXoXR0= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/egomet_fido2_authenticator_for_android.pem b/restricted/WebAuthn/rootCertificates/mds/egomet_fido2_authenticator_for_android.pem new file mode 100644 index 0000000..3c0dbcd --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/egomet_fido2_authenticator_for_android.pem @@ -0,0 +1,19 @@ +Egomet FIDO2 Authenticator for Android +-------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICmzCCAkGgAwIBAgIJAKBEwSd0OFXMMAoGCCqGSM49BAMCMIGhMQswCQYDVQQG +EwJJVDEOMAwGA1UECAwFSVRBTFkxDTALBgNVBAcMBFJPTUUxFDASBgNVBAoMC01v +dmVuZGEgU1BBMSYwJAYDVQQDDB1NT1ZFTkRBIEZJRE8gUm9vdCBDZXJ0aWZpY2F0 +ZTEnMCUGCSqGSIb3DQEJARYYcGlldHJvLmRpdHRhQG1vdmVuZGEuY29tMQwwCgYD +VQQLDANSJkQwHhcNMjAwMTE2MDk1NjIyWhcNNDAwMTExMDk1NjIyWjCBoTELMAkG +A1UEBhMCSVQxDjAMBgNVBAgMBUlUQUxZMQ0wCwYDVQQHDARST01FMRQwEgYDVQQK +DAtNb3ZlbmRhIFNQQTEmMCQGA1UEAwwdTU9WRU5EQSBGSURPIFJvb3QgQ2VydGlm +aWNhdGUxJzAlBgkqhkiG9w0BCQEWGHBpZXRyby5kaXR0YUBtb3ZlbmRhLmNvbTEM +MAoGA1UECwwDUiZEMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECWep8WbAvOJ3 +lTBzi87f/CoY5X0HT03Ib2O1ZYj3ffNBjgTqWsOb6MIR4w7Km5kVXD58dGyh95yw +IDDRLQgc4KNgMF4wHQYDVR0OBBYEFOYNPxJUmM8vqeqM4pd0Sfu3M9NNMB8GA1Ud +IwQYMBaAFOYNPxJUmM8vqeqM4pd0Sfu3M9NNMA8GA1UdEwEB/wQFMAMBAf8wCwYD +VR0PBAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIAlqgNfxzAPmID4sQwoOat4NCdLf +gZfT+jSKmXvYvDTuAiEA++lScAgEAD1Mec1Qhoge4yasp0F2fMYcNyxoK9roGUY= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ellipticsecure_mirkey_usb_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/ellipticsecure_mirkey_usb_authenticator.pem new file mode 100644 index 0000000..e6cbf29 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ellipticsecure_mirkey_usb_authenticator.pem @@ -0,0 +1,18 @@ +ellipticSecure MIRkey USB Authenticator +--------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICYTCCAeegAwIBAgIBATAKBggqhkjOPQQDAjBpMSQwIgYDVQQDDBtlbGxpcHRp +Y1NlY3VyZSBGSURPIFJvb3QgQ0ExGzAZBgNVBAsMEmVsbGlwdGljc2VjdXJlLmNv +bTEXMBUGA1UECgwOZWxsaXB0aWNTZWN1cmUxCzAJBgNVBAYTAlVTMB4XDTE5MDQw +NjEzMzEyNFoXDTM0MDQwNjEzMzEyNFowaTEkMCIGA1UEAwwbZWxsaXB0aWNTZWN1 +cmUgRklETyBSb290IENBMRswGQYDVQQLDBJlbGxpcHRpY3NlY3VyZS5jb20xFzAV +BgNVBAoMDmVsbGlwdGljU2VjdXJlMQswCQYDVQQGEwJVUzB2MBAGByqGSM49AgEG +BSuBBAAiA2IABIcioLldLnxvSp//GaJ0sq7hM92PQ4zW7CPlZlUm2syippwb/WXP +wPROTdmQf2GDbg5UAA2IYpNZppUeq1vgnWvLmuJ7+u+KWBK23dz1S6SYOPtk5vHf +GompC7IKi8MujKNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +HQYDVR0OBBYEFCFR6t9+i/f6D9meogOLYpUlbqazMB8GA1UdIwQYMBaAFCFR6t9+ +i/f6D9meogOLYpUlbqazMAoGCCqGSM49BAMCA2gAMGUCMQD2KZdzs66h1kCEGqmF +Vr0Ue3jaN/BwffYuX4Km+YTDiU7jKEZdxzjArwFSmtiAIzACMENeLKDaAbOFIviq +Y5Kt2cXQkWzTgr134VlA8hUBPGE6KHg6giJaHgPZLSY6AFWH2A== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ensurity_auth_biopro.pem b/restricted/WebAuthn/rootCertificates/mds/ensurity_auth_biopro.pem new file mode 100644 index 0000000..98604a5 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ensurity_auth_biopro.pem @@ -0,0 +1,22 @@ +Ensurity AUTH BioPro +-------------------- + +-----BEGIN CERTIFICATE----- +MIIDCTCCAfGgAwIBAgIJALKKj0sKTXDlMA0GCSqGSIb3DQEBCwUAMCExHzAdBgNV +BAMMFkVuc3VyaXR5IFRoaW5DIFJvb3QgQ0EwIBcNMTgwNzIzMTMzNzIxWhgPMjA2 +ODA3MTAxMzM3MjFaMCExHzAdBgNVBAMMFkVuc3VyaXR5IFRoaW5DIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEiZh4tIcAUPfUkCmXbNwW +DIFvWxxGPhJq//Fs3uPBA4JQUXiAHWUof0mNxfU39yfK39/2yXgOJ5QoZGzpQEGS +w5Snoy0+61oeI+0IXkAaMvfVvtmNoO2OJO5+ADtlDu6rgJuV6IpLLR5SKXOU1zOP +HYrAPsYxv3ULg26W63zMTqpCNCg4pzwZRyXjcLrUeCzF4Xcf+p/G42ZdGzBeZc4z ++yccOMxBx4wsGcPg1HFyzXl3Jmtyg7zUDEqbjeH8Nsy9+kT31mVXocigB3hG7wct +iIn6A5lPGMPJoI84RZdrB3es9QlHZWSnvdJGeaLnO5Xq4mIhufbY4s1Uq/pvGsAP +AgMBAAGjQjBAMB0GA1UdDgQWBBSOEn+VFhI/ZGUTSUehEyOlxxFxLzASBgNVHRMB +Af8ECDAGAQH/AgEAMAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAraDo +8umrejXNYQ6BRBn4XsDehDlij3LANM7J7timaNMfoxadwyS1nvA8e7cO7OAw3iel +YjO6oiSpzUsu6eH2loZ0LK0fkoiaZZnHKb/46o6o9947i8tuAOyoVrGPw9c29VoI +QkE3Qj/0PJZmU0YubilRUNx6ldK25a0o/q8lk7BL32NjWdTzKDJPgdKmrwl1m3K2 +eGmv2ZIgAP4pWUmg0DF4XS/JankFibRZhs6Kg0V02E9PcbGyXIo+hxU9QsjjgIPt +FiF8+VvQbPTVeM1Zc0CxPm1Xx22ki3IePpaDigzS0Kfxk5RnFtqY/ZOyVtam/oAP +9tq/MTjEQu1flrppRQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ensurity_auth_biopro_desktop.pem b/restricted/WebAuthn/rootCertificates/mds/ensurity_auth_biopro_desktop.pem new file mode 100644 index 0000000..709fc82 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ensurity_auth_biopro_desktop.pem @@ -0,0 +1,22 @@ +Ensurity AUTH BioPro Desktop +---------------------------- + +-----BEGIN CERTIFICATE----- +MIIDCTCCAfGgAwIBAgIJALKKj0sKTXDlMA0GCSqGSIb3DQEBCwUAMCExHzAdBgNV +BAMMFkVuc3VyaXR5IFRoaW5DIFJvb3QgQ0EwIBcNMTgwNzIzMTMzNzIxWhgPMjA2 +ODA3MTAxMzM3MjFaMCExHzAdBgNVBAMMFkVuc3VyaXR5IFRoaW5DIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEiZh4tIcAUPfUkCmXbNwW +DIFvWxxGPhJq//Fs3uPBA4JQUXiAHWUof0mNxfU39yfK39/2yXgOJ5QoZGzpQEGS +w5Snoy0+61oeI+0IXkAaMvfVvtmNoO2OJO5+ADtlDu6rgJuV6IpLLR5SKXOU1zOP +HYrAPsYxv3ULg26W63zMTqpCNCg4pzwZRyXjcLrUeCzF4Xcf+p/G42ZdGzBeZc4z ++yccOMxBx4wsGcPg1HFyzXl3Jmtyg7zUDEqbjeH8Nsy9+kT31mVXocigB3hG7wct +iIn6A5lPGMPJoI84RZdrB3es9QlHZWSnvdJGeaLnO5Xq4mIhufbY4s1Uq/pvGsAP +AgMBAAGjQjBAMB0GA1UdDgQWBBSOEn+VFhI/ZGUTSUehEyOlxxFxLzASBgNVHRMB +Af8ECDAGAQH/AgEAMAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAraDo +8umrejXNYQ6BRBn4XsDehDlij3LANM7J7timaNMfoxadwyS1nvA8e7cO7OAw3iel +YjO6oiSpzUsu6eH2loZ0LK0fkoiaZZnHKb/46o6o9947i8tuAOyoVrGPw9c29VoI +QkE3Qj/0PJZmU0YubilRUNx6ldK25a0o/q8lk7BL32NjWdTzKDJPgdKmrwl1m3K2 +eGmv2ZIgAP4pWUmg0DF4XS/JankFibRZhs6Kg0V02E9PcbGyXIo+hxU9QsjjgIPt +FiF8+VvQbPTVeM1Zc0CxPm1Xx22ki3IePpaDigzS0Kfxk5RnFtqY/ZOyVtam/oAP +9tq/MTjEQu1flrppRQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ensurity_auth_touchpro.pem b/restricted/WebAuthn/rootCertificates/mds/ensurity_auth_touchpro.pem new file mode 100644 index 0000000..0ac9bc7 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ensurity_auth_touchpro.pem @@ -0,0 +1,22 @@ +Ensurity AUTH TouchPro +---------------------- + +-----BEGIN CERTIFICATE----- +MIIDCTCCAfGgAwIBAgIJALKKj0sKTXDlMA0GCSqGSIb3DQEBCwUAMCExHzAdBgNV +BAMMFkVuc3VyaXR5IFRoaW5DIFJvb3QgQ0EwIBcNMTgwNzIzMTMzNzIxWhgPMjA2 +ODA3MTAxMzM3MjFaMCExHzAdBgNVBAMMFkVuc3VyaXR5IFRoaW5DIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEiZh4tIcAUPfUkCmXbNwW +DIFvWxxGPhJq//Fs3uPBA4JQUXiAHWUof0mNxfU39yfK39/2yXgOJ5QoZGzpQEGS +w5Snoy0+61oeI+0IXkAaMvfVvtmNoO2OJO5+ADtlDu6rgJuV6IpLLR5SKXOU1zOP +HYrAPsYxv3ULg26W63zMTqpCNCg4pzwZRyXjcLrUeCzF4Xcf+p/G42ZdGzBeZc4z ++yccOMxBx4wsGcPg1HFyzXl3Jmtyg7zUDEqbjeH8Nsy9+kT31mVXocigB3hG7wct +iIn6A5lPGMPJoI84RZdrB3es9QlHZWSnvdJGeaLnO5Xq4mIhufbY4s1Uq/pvGsAP +AgMBAAGjQjBAMB0GA1UdDgQWBBSOEn+VFhI/ZGUTSUehEyOlxxFxLzASBgNVHRMB +Af8ECDAGAQH/AgEAMAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAraDo +8umrejXNYQ6BRBn4XsDehDlij3LANM7J7timaNMfoxadwyS1nvA8e7cO7OAw3iel +YjO6oiSpzUsu6eH2loZ0LK0fkoiaZZnHKb/46o6o9947i8tuAOyoVrGPw9c29VoI +QkE3Qj/0PJZmU0YubilRUNx6ldK25a0o/q8lk7BL32NjWdTzKDJPgdKmrwl1m3K2 +eGmv2ZIgAP4pWUmg0DF4XS/JankFibRZhs6Kg0V02E9PcbGyXIo+hxU9QsjjgIPt +FiF8+VvQbPTVeM1Zc0CxPm1Xx22ki3IePpaDigzS0Kfxk5RnFtqY/ZOyVtam/oAP +9tq/MTjEQu1flrppRQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ensurity_thinc.pem b/restricted/WebAuthn/rootCertificates/mds/ensurity_thinc.pem new file mode 100644 index 0000000..50dc460 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ensurity_thinc.pem @@ -0,0 +1,22 @@ +Ensurity ThinC +-------------- + +-----BEGIN CERTIFICATE----- +MIIDCTCCAfGgAwIBAgIJALKKj0sKTXDlMA0GCSqGSIb3DQEBCwUAMCExHzAdBgNV +BAMMFkVuc3VyaXR5IFRoaW5DIFJvb3QgQ0EwIBcNMTgwNzIzMTMzNzIxWhgPMjA2 +ODA3MTAxMzM3MjFaMCExHzAdBgNVBAMMFkVuc3VyaXR5IFRoaW5DIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEiZh4tIcAUPfUkCmXbNwW +DIFvWxxGPhJq//Fs3uPBA4JQUXiAHWUof0mNxfU39yfK39/2yXgOJ5QoZGzpQEGS +w5Snoy0+61oeI+0IXkAaMvfVvtmNoO2OJO5+ADtlDu6rgJuV6IpLLR5SKXOU1zOP +HYrAPsYxv3ULg26W63zMTqpCNCg4pzwZRyXjcLrUeCzF4Xcf+p/G42ZdGzBeZc4z ++yccOMxBx4wsGcPg1HFyzXl3Jmtyg7zUDEqbjeH8Nsy9+kT31mVXocigB3hG7wct +iIn6A5lPGMPJoI84RZdrB3es9QlHZWSnvdJGeaLnO5Xq4mIhufbY4s1Uq/pvGsAP +AgMBAAGjQjBAMB0GA1UdDgQWBBSOEn+VFhI/ZGUTSUehEyOlxxFxLzASBgNVHRMB +Af8ECDAGAQH/AgEAMAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAraDo +8umrejXNYQ6BRBn4XsDehDlij3LANM7J7timaNMfoxadwyS1nvA8e7cO7OAw3iel +YjO6oiSpzUsu6eH2loZ0LK0fkoiaZZnHKb/46o6o9947i8tuAOyoVrGPw9c29VoI +QkE3Qj/0PJZmU0YubilRUNx6ldK25a0o/q8lk7BL32NjWdTzKDJPgdKmrwl1m3K2 +eGmv2ZIgAP4pWUmg0DF4XS/JankFibRZhs6Kg0V02E9PcbGyXIo+hxU9QsjjgIPt +FiF8+VvQbPTVeM1Zc0CxPm1Xx22ki3IePpaDigzS0Kfxk5RnFtqY/ZOyVtam/oAP +9tq/MTjEQu1flrppRQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ess_smart_card_inc_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/ess_smart_card_inc_authenticator.pem new file mode 100644 index 0000000..1f1ed12 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ess_smart_card_inc_authenticator.pem @@ -0,0 +1,276 @@ +ESS Smart Card Inc. Authenticator +--------------------------------- + +-----BEGIN CERTIFICATE----- +MIISMDCCEBigAwIBAgIWAKoAAAAAAAAAAAAAAAAAAAAAAAAAADANBgkqhkiG9w0B +AQsFADCCAjUxEzARBgsrBgEEAYI3PAIBAwwCQ0ExGDAWBgsrBgEEAYI3PAIBAgwH +UXXDqWJlYzEbMBkGCysGAQQBgjc8AgEBDApUZXJyZWJvbm5lMTEwLwYDVQQPDChT +w6ljdXJpdMOpIEluZm9ybWF0aXF1ZSAvIEN5YmVyIFNlY3VyaXR5MTswOQYDVQQF +DDJORVEgMTE3MzQ4ODY0NSAvIENOIDEwNjQ3NzMtMCAvIEJOIDc2NzM0OTY4MVJD +MDAwMTEqMCgGCSqGSIb3DQEJARYbaW5mb2NhQHNtYXJ0Y2FyZHNlY3VyaXR5LmNh +MRowGAYDVQQXDBErMSAoNDUwKSA5NjQtNDUxMTEaMBgGA1UEFAwRKzEgKDQ1MCkg +OTY0LTc3NzYxEDAOBgNVBBEMB0o2VyAwQTIxCzAJBgNVBAYTAkNBMRAwDgYDVQQI +DAdRdcOpYmVjMRMwEQYDVQQHDApUZXJyZWJvbm5lMRowGAYDVQQJDBExMTc5IGRl +IGwnZXhwcmVzczEyMDAGA1UECwwpQXV0b3JpdMOpIGRlIFBvbGl0aXF1ZSAvIFBv +bGljeSBBdXRob3JpdHkxNTAzBgNVBAoMLFNTRSBDYXJ0ZSDDoCBQdWNlIEluYy4g +LyBFU1MgU21hcnQgQ2FyZCBJbmMuMUYwRAYDVQQDDD1TQ1AgQXV0b3JpdMOpIGRl +IFBvbGl0aXF1ZSAvIFNDUyBDZXJ0aWZpY2F0ZSBQb2xpY3kgQXV0aG9yaXR5MB4X +DTE4MDUzMDE1MzE1N1oXDTM4MDUzMDE1MzE1N1owggImMRMwEQYLKwYBBAGCNzwC +AQMMAkNBMRgwFgYLKwYBBAGCNzwCAQIMB1F1w6liZWMxGzAZBgsrBgEEAYI3PAIB +AQwKVGVycmVib25uZTExMC8GA1UEDwwoU8OpY3VyaXTDqSBJbmZvcm1hdGlxdWUg +LyBDeWJlciBTZWN1cml0eTE7MDkGA1UEBQwyTkVRIDExNzM0ODg2NDUgLyBDTiAx +MDY0NzczLTAgLyBCTiA3NjczNDk2ODFSQzAwMDExKjAoBgkqhkiG9w0BCQEWG2lu +Zm9jYUBzbWFydGNhcmRzZWN1cml0eS5jYTEaMBgGA1UEFwwRKzEgKDQ1MCkgOTY0 +LTQ1MTExGjAYBgNVBBQMESsxICg0NTApIDk2NC03Nzc2MRAwDgYDVQQRDAdKNlcg +MEEyMQswCQYDVQQGEwJDQTEQMA4GA1UECAwHUXXDqWJlYzETMBEGA1UEBwwKVGVy +cmVib25uZTEaMBgGA1UECQwRMTE3OSBkZSBsJ2V4cHJlc3MxMTAvBgNVBAsMKFZh +bGlkYXRpb24gw4l0ZW5kdSAvIEV4dGVuZGVkIFZhbGlkYXRpb24xNTAzBgNVBAoM +LFNTRSBDYXJ0ZSDDoCBQdWNlIEluYy4gLyBFU1MgU21hcnQgQ2FyZCBJbmMuMTgw +NgYDVQQDDC9TQ1AgVmFsaWRhdGlvbiBFdGVuZHUgLyBTQ1MgRXh0ZW5kZWQgVmFs +aWRhdGlvbjCCAiAwDQYJKoZIhvcNAQEBBQADggINADCCAggCggIBALSCYvHxa6hw +aCisSpqzS9eYdcZ8hzWrz+L7UVWmpv2FN7iy28E5wVfqrD9y2Y/l9LkQwoSJe2x2 +oCIUp6k3PKhH4OZxhB2X568luIxPg68UKvAeYszfhFWm2EFSeh31v8sqo9WeBzb0 +Reszm86RjJLFcCCkaaVUV8pDFC0+1dGClKbQXr/djA4VvItXNzvOUnMi5U1lUHl4 +E/FiZpce8p7o7DbNx4wiEo8lkO45JFLbfIo7Rt+l8a04IV+sMIkbeYMPW8qtLLRh +iX56smpTwkfJTlidT9DGZoXnYCnQL2WwsWBssdiibyJJQX/fTIbG764VjjfK7eo8 +AJIsgGJoKKf1p+J/dEyZXQLfKkVj6bE+gGg6QA7kZRzIFnG+NR5JsYqqJ2SP29yR +S/EPqqPcakFcOyh6wt/prEGkcGKdB7TX16V9jaDYdvZr/5HQmbRVtaY8YbHAAkEu +w5AE8xVlr/vvdxzB8sJ41caPkL0Jq2XXI49vyEew61hWVSZgWPiyTkY7Xz4372en +O1+R6OfpIN8ymtUzN0P9lfV20mRhIVQE59d6ubgSfOLL7yASky6Cu/diQQaAuluj +QGY8voDPyrOkKmk+72oy+Yriq7iKUstZrgp//22h8Ioa8GaXN4L5+7OhcL+SxccP +lm+iITYBkn0MTGU8GPzeTvTMaJTTjWWjAgElo4IJQTCCCT0wHQYDVR0OBBYEFMpZ +PXVGNQyjPWzMWTtfvzbPIG5xMB8GA1UdIwQYMBaAFNpyPmiDNAdqAZHSpa8+HE2i +4f5OMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgHGMIICmAYDVR0lBIICjzCC +AosGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwQGCisGAQQBgjcKAwQGCisG +AQQBgjdDAQEGCisGAQQBgjdDAQIGCSsGAQQBgjdQAQYIKwYBBQUHAwMGCisGAQQB +gjc9AQEGCisGAQQBgjcKAw0GCisGAQQBgjcUAgEGCCsGAQUFBwMHBggrBgEFBQcD +BgYIKwYBBQUIAgIGBysGAQUCAwUGBysGAQUCAwQGCSsGAQQBgjcVEwYKKwYBBAGC +NwoDDAYIKwYBBQUHAwkGB2B8hvdoAgQGB2B8hvdoAgUGB2B8hvdoAgcGB2B8hvdo +AggGB2B8hvdoAgkGB2B8hvdoAgoGB2B8hvdoAgsGB2B8hvdoAgwGB2B8hvdoAg0G +B2B8hvdoAg4GB2B8hvdoAg8GB2B8hvdoAhAGB2B8hvdoAhEGB2B8hvdoAhIGB2B8 +hvdoAhMGB2B8hvdoAhQGB2B8hvdoAhUGB2B8hvdoAhYGB2B8hvdoAhcGB2B8hvdo +AhgGB2B8hvdoAhkGB2B8hvdoAhoGB2B8hvdoBQEGCGB8hvdoBQEBBghgfIb3aAUB +AgYIYHyG92gFAQMGCGB8hvdoBQEEBghgfIb3aAUBBQYIYHyG92gFAQYGCGB8hvdo +BQEHBghgfIb3aAUBCAYIYHyG92gFAQkGCGB8hvdoBQEKBghgfIb3aAUBCwYIYHyG +92gFAQwGCGB8hvdoBQENBghgfIb3aAUBDgYIYHyG92gFAQ8GCGB8hvdoBQEQBghg +fIb3aAUBEQYIYHyG92gFARIGCGB8hvdoBQETBghgfIb3aAUBFAYIYHyG92gFARUG +CGB8hvdoBQEWBghgfIb3aAUBFwYIYHyG92gFARgwOgYDVR0fBDMwMTAvoC2gK4Yp +aHR0cDovL2NhLnNtYXJ0Y2FyZHNlY3VyaXR5LmNhL3BvbHNjcy5jcmwwdQYIKwYB +BQUHAQEEaTBnMCwGCCsGAQUFBzABhiBodHRwOi8vb2NzcC5zbWFydGNhcmRzZWN1 +cml0eS5jYTA3BggrBgEFBQcwAoYraHR0cDovL2NhLnNtYXJ0Y2FyZHNlY3VyaXR5 +LmNhL1BvbFNjc0NhLmNydDAqBgNVHREEIzAhhh9odHRwOi8vZXYuc21hcnRjYXJk +c2VjdXJpdHkuY2EvMIIFYAYDVR0gBIIFVzCCBVMwQgYHYHyG92gBAzA3MDUGCCsG +AQUFBwIBFilodHRwczovL2NhLnNtYXJ0Y2FyZHNlY3VyaXR5LmNhL2Nwcy9zY3Nl +djAKBghgfIb3aAEDATALBglgfIb3aAEDAQEwCwYJYHyG92gBAwECMAsGCWB8hvdo +AQMBAzALBglgfIb3aAEDAQQwCwYJYHyG92gBAwEFMAsGCWB8hvdoAQMBBjALBglg +fIb3aAEDAQcwCwYJYHyG92gBAwEIMAsGCWB8hvdoAQMBCTALBglgfIb3aAEDAQow +CwYJYHyG92gBAwELMAsGCWB8hvdoAQMBDDALBglgfIb3aAEDAQ0wCwYJYHyG92gB +AwEOMAsGCWB8hvdoAQMBDzALBglgfIb3aAEDARAwCwYJYHyG92gBAwERMAsGCWB8 +hvdoAQMBEjAKBghgfIb3aAEDAjALBglgfIb3aAEDAgEwCwYJYHyG92gBAwICMAsG +CWB8hvdoAQMCAzALBglgfIb3aAEDAgQwCwYJYHyG92gBAwIFMAsGCWB8hvdoAQMC +BjALBglgfIb3aAEDAgcwCwYJYHyG92gBAwIIMAsGCWB8hvdoAQMCCTALBglgfIb3 +aAEDAgowCwYJYHyG92gBAwILMAsGCWB8hvdoAQMCDDALBglgfIb3aAEDAg0wCQYH +YHyG92gBBTAKBghgfIb3aAEFATAKBghgfIb3aAEFAjAKBghgfIb3aAEFAzAKBghg +fIb3aAEFBDAKBghgfIb3aAEFBTAKBghgfIb3aAEFBjAKBghgfIb3aAEFBzAKBghg +fIb3aAEFCDAKBghgfIb3aAEFCTAKBghgfIb3aAEFCjAKBghgfIb3aAEFCzAKBghg +fIb3aAEFDDAKBghgfIb3aAEFDTAKBghgfIb3aAEFDjAKBghgfIb3aAEFDzAKBghg +fIb3aAEFEDAKBghgfIb3aAEFETAKBghgfIb3aAEFEjAKBghgfIb3aAEFEzAKBghg +fIb3aAEFFDAKBghgfIb3aAEFFTAKBghgfIb3aAEFFjAKBghgfIb3aAEFFzAKBghg +fIb3aAEFGDAKBghgfIb3aAEFGTAKBghgfIb3aAEFGjAKBghgfIb3aAEFGzAKBghg +fIb3aAEFHDAKBghgfIb3aAEFHTAKBghgfIb3aAEFHjAJBgdgfIb3aAECMAoGCGB8 +hvdoAQIBMAoGCGB8hvdoAQICMAoGCGB8hvdoAQIDMAoGCGB8hvdoAQIEMAoGCGB8 +hvdoAQIFMAoGCGB8hvdoAQIGMAoGCGB8hvdoAQIHMAoGCGB8hvdoAQIIMAoGCGB8 +hvdoAQIJMAoGCGB8hvdoAQIKMAoGCGB8hvdoAQILMAoGCGB8hvdoAQIMMAoGCGB8 +hvdoAQINMAoGCGB8hvdoAQIOMAoGCGB8hvdoAQIPMAoGCGB8hvdoAQIQMAoGCGB8 +hvdoAQIRMAoGCGB8hvdoAQISMAoGCGB8hvdoAQITMAoGCGB8hvdoAQIUMAoGCGB8 +hvdoAQIVMAoGCGB8hvdoAQIWMAoGCGB8hvdoAQIXMAoGCGB8hvdoAQIYMAoGCGB8 +hvdoAQIZMAoGCGB8hvdoAQIaMAoGCGB8hvdoAQIbMAoGCGB8hvdoAQIcMAoGCGB8 +hvdoAQIdMAoGCGB8hvdoAQIeMAoGCGB8hvdoAQIfMAoGCGB8hvdoAQIgMAoGCGB8 +hvdoAQIhMAoGCGB8hvdoAQIiMAoGCGB8hvdoAQIjMAcGBWeBDAEBMAcGBWeBDAEC +MAgGBmeBDAECATAIBgZngQwBAgIwCAYGZ4EMAQIDMAcGBWeBDAEDMAcGBWeBDAEf +MA0GCSqGSIb3DQEBCwUAA4ICAQCB6H86IyV7kTGdZh/nui8wwGcDXTUTrAsucO3r +0Cknu4r1pzaKNKmy63Ev3Pvg0vPEwfmNAAQVdSbgGtN0L+FZZKBKAdDVa0IvKiR/ +99mtvrIsjRXmYuGgRTimSeas3hnGi87kGNi3xYQU+lzZTHYkG16Au4tVa2fc55Kq +XO2QB6J5UVOB5k37jpfLVtH05XIrY6ik6S8N6So0RoNdRfiHnvFIIWvoGkxPOMqJ +Psvdlp+/+sQvece8+7PKC+WACB2/bPZGL3BtQJlhPb5gmt5HyJ6h4a1ya2+bVfvH +jM6R6khYhvIaNfmckPy7vKC9J6lMEqdD79Wddfv9jRbkrcI5lvzPDBXWWU1wYh2B +yfy5AMutX8/isHdtbJCbV0QjOrYWgY0pakj90dRT5Au3u+oArm1fewiAnu7O9HWh +xZdjL5pZen9+rEw88c6qCCd6bjR3+Vpsau+DlYxcerEO26eZoPSQN/JfM6s6AXkL +OGLvLqjzfc/9o16wVbQLVoaw37lWqk+ynywQkq8NdyOCet7xbl9KLs8x6z30ulru +9zJGS+myGMrKDtfmCtoz/iwNdJuasNGTi+l8wVp88nmF8GYA8LUwtmOKka5VqK8Y +ZKzo1voF+rD8GMQatNIN8vx8J0cfNTUmhvCD+uxeVmcKvHpq3COptU6pU7ubleDn +yLfD9w== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIVrjCCE5agAwIBAgIWAMoAAAAAAAAAAAAAAAAAAAAAAAAAATANBgkqhkiG9w0B +AQsFADCCAjAxOzA5BgNVBAUMMk5FUSAxMTczNDg4NjQ1IC8gQ04gMTA2NDc3My0w +IC8gQk4gNzY3MzQ5NjgxUkMwMDAxMRMwEQYLKwYBBAGCNzwCAQMMAkNBMRgwFgYL +KwYBBAGCNzwCAQIMB1F1w6liZWMxGzAZBgsrBgEEAYI3PAIBAQwKVGVycmVib25u +ZTExMC8GA1UEDwwoU8OpY3VyaXTDqSBJbmZvcm1hdGlxdWUgLyBDeWJlciBTZWN1 +cml0eTEqMCgGCSqGSIb3DQEJARYbaW5mb2NhQHNtYXJ0Y2FyZHNlY3VyaXR5LmNh +MRowGAYDVQQXDBErMSAoNDUwKSA5NjQtNDUxMTEaMBgGA1UEFAwRKzEgKDQ1MCkg +OTY0LTc3NzYxEDAOBgNVBBEMB0o2VyAwQTIxCzAJBgNVBAYTAkNBMRAwDgYDVQQI +DAdRdcOpYmVjMRMwEQYDVQQHDApUZXJyZWJvbm5lMRowGAYDVQQJDBExMTc5IGRl +IGwnZXhwcmVzczErMCkGA1UECwwiQXV0aG9yaXTDqSBSYWNpbmUgLyBSb290IEF1 +dGhvcml0eTE1MDMGA1UECgwsU1NFIENhcnRlIMOgIFB1Y2UgSW5jLiAvIEVTUyBT +bWFydCBDYXJkIEluYy4xSDBGBgNVBAMMP1NlY3VyaXTDqSBDYXJ0ZSDDoCBQdWNl +IChTQ1ApIEFDIC8gU21hcnQgQ2FyZCBTZWN1cml0eSAoU0NTKSBDQTAeFw0xODA1 +MzAxNTE5MDRaFw00ODA1MjgxNTE5MDRaMIICNTETMBEGCysGAQQBgjc8AgEDDAJD +QTEYMBYGCysGAQQBgjc8AgECDAdRdcOpYmVjMRswGQYLKwYBBAGCNzwCAQEMClRl +cnJlYm9ubmUxMTAvBgNVBA8MKFPDqWN1cml0w6kgSW5mb3JtYXRpcXVlIC8gQ3li +ZXIgU2VjdXJpdHkxOzA5BgNVBAUMMk5FUSAxMTczNDg4NjQ1IC8gQ04gMTA2NDc3 +My0wIC8gQk4gNzY3MzQ5NjgxUkMwMDAxMSowKAYJKoZIhvcNAQkBFhtpbmZvY2FA +c21hcnRjYXJkc2VjdXJpdHkuY2ExGjAYBgNVBBcMESsxICg0NTApIDk2NC00NTEx +MRowGAYDVQQUDBErMSAoNDUwKSA5NjQtNzc3NjEQMA4GA1UEEQwHSjZXIDBBMjEL +MAkGA1UEBhMCQ0ExEDAOBgNVBAgMB1F1w6liZWMxEzARBgNVBAcMClRlcnJlYm9u +bmUxGjAYBgNVBAkMETExNzkgZGUgbCdleHByZXNzMTIwMAYDVQQLDClBdXRvcml0 +w6kgZGUgUG9saXRpcXVlIC8gUG9saWN5IEF1dGhvcml0eTE1MDMGA1UECgwsU1NF +IENhcnRlIMOgIFB1Y2UgSW5jLiAvIEVTUyBTbWFydCBDYXJkIEluYy4xRjBEBgNV +BAMMPVNDUCBBdXRvcml0w6kgZGUgUG9saXRpcXVlIC8gU0NTIENlcnRpZmljYXRl +IFBvbGljeSBBdXRob3JpdHkwggIgMA0GCSqGSIb3DQEBAQUAA4ICDQAwggIIAoIC +AQDa2AypUsDm6zvgKsoOrru4WeAnOXShwI1T0TiQZsvJ90uwV5MDWcaMf0DZyl2O +KiN+LmzPICbXw4TCrJphJXndyPF09E3H1QC2pGN71BNpxoDeBqkX1YIW4PHhY9qh +jRKgplbJTKcHfQA1CjVTzX5raAmnLAJ8iuo7HV7ZbplFg7V3cWOJbc3p5FFixeSI +5xACLsJQIAitNP30Fhpx4bxxCY9o1ZQO/HU33z7ZbCu1Qw0iaXYIr0VWGu5eCzsg +zl56bwDuPP7Nf18mJEaV039eWu49SjdX6hYkQFT+wQBYUxOPUo8h7xxXGZbwMnTM +UyQwW6uybUB8GwtjMIVoDT9Y688SH3fd7qDoYuuThw9DcHFjhZHhnmF0zRjQo/FZ +as07mkQ9XIdRjWtWPdqSFWsdj8+bSqd6loHZlsVPpxyCRWLegaWDi6+KSrxguQXg +x3ip85bTdyCICObWa88C8CqGqsUBTnjmyG91FFeFh4eDg2CJXznVdsHSfeKUVGF9 +HFWn3x5QoD2+NeVFgHqjOmPIyxBJL5Vt8AVQ0vod923PxaymOlUUkrBhlJXE/V3T +wDKe6N88yjGUftFc7gDvhu8iJkAUD5idTTtcVxr1E0TgdbPaqj3OLsh6WHfZ6ud2 +Kb1vqhsQV6X6QxflduW63ygFnbhtwDdLlQsKDDrWB42PxwIBJaOCDLUwggyxMB0G +A1UdDgQWBBTacj5ogzQHagGR0qWvPhxNouH+TjAfBgNVHSMEGDAWgBQkYGoHcyRV +dTs2+nRZk1XJsgAmOjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjA5 +BgNVHR8EMjAwMC6gLKAqhihodHRwOi8vY2Euc21hcnRjYXJkc2VjdXJpdHkuY2Ev +Y2FzY3MuY3JsMHIGCCsGAQUFBwEBBGYwZDAsBggrBgEFBQcwAYYgaHR0cDovL29j +c3Auc21hcnRjYXJkc2VjdXJpdHkuY2EwNAYIKwYBBQUHMAKGKGh0dHA6Ly9jYS5z +bWFydGNhcmRzZWN1cml0eS5jYS9jYXNjcy5jcnQwKgYDVR0RBCMwIYYfaHR0cDov +L2NhLnNtYXJ0Y2FyZHNlY3VyaXR5LmNhLzCCC3EGA1UdIASCC2gwggtkMDsGBmB8 +hvdoATAxMC8GCCsGAQUFBwIBFiNodHRwczovL2NhLnNtYXJ0Y2FyZHNlY3VyaXR5 +LmNhL2NwczAIBgZgfIb3aAIwCAYGYHyG92gDMAgGBmB8hvdoBDAIBgZgfIb3aAUw +CAYGYHyG92gGMAgGBmB8hvdoBzAIBgZgfIb3aAgwCAYGYHyG92gJMAgGBmB8hvdo +CjAIBgZgfIb3aAswCAYGYHyG92gMMAgGBmB8hvdoDTAIBgZgfIb3aA4wCAYGYHyG +92gPMAgGBmB8hvdoEDAJBgdgfIb3aAEJMAkGB2B8hvdoAQowCQYHYHyG92gBCzAJ +BgdgfIb3aAEMMAkGB2B8hvdoAQ0wCQYHYHyG92gBDjAJBgdgfIb3aAEPMAkGB2B8 +hvdoARAwCQYHYHyG92gBETAJBgdgfIb3aAESMAkGB2B8hvdoAQEwCgYIYHyG92gB +AQEwCgYIYHyG92gBAQIwCgYIYHyG92gBAQMwCgYIYHyG92gBAQQwCgYIYHyG92gB +AQUwCgYIYHyG92gBAQYwCgYIYHyG92gBAQcwCgYIYHyG92gBAQgwCgYIYHyG92gB +AQkwCgYIYHyG92gBAQowCgYIYHyG92gBAQswCgYIYHyG92gBAQwwCgYIYHyG92gB +AQ0wCgYIYHyG92gBAQ4wCgYIYHyG92gBAQ8wCgYIYHyG92gBARAwCgYIYHyG92gB +AREwCgYIYHyG92gBARIwCgYIYHyG92gBARMwCgYIYHyG92gBARQwCgYIYHyG92gB +ARUwCgYIYHyG92gBARYwCQYHYHyG92gBBTAKBghgfIb3aAEFATAKBghgfIb3aAEF +AjAKBghgfIb3aAEFAzAKBghgfIb3aAEFBDAKBghgfIb3aAEFBTAKBghgfIb3aAEF +BjAKBghgfIb3aAEFBzAKBghgfIb3aAEFCDAKBghgfIb3aAEFCTAKBghgfIb3aAEF +CjAKBghgfIb3aAEFCzAKBghgfIb3aAEFDDAKBghgfIb3aAEFDTAKBghgfIb3aAEF +DjAKBghgfIb3aAEFDzAKBghgfIb3aAEFEDAKBghgfIb3aAEFETAKBghgfIb3aAEF +EjAKBghgfIb3aAEFEzAKBghgfIb3aAEFFDAKBghgfIb3aAEFFTAKBghgfIb3aAEF +FjAKBghgfIb3aAEFFzAKBghgfIb3aAEFGDAKBghgfIb3aAEFGTAKBghgfIb3aAEF +GjAKBghgfIb3aAEFGzAKBghgfIb3aAEFHDAKBghgfIb3aAEFHTAKBghgfIb3aAEF +HjAJBgdgfIb3aAECMAoGCGB8hvdoAQIBMAoGCGB8hvdoAQICMAoGCGB8hvdoAQID +MAoGCGB8hvdoAQIEMAoGCGB8hvdoAQIFMAoGCGB8hvdoAQIGMAoGCGB8hvdoAQIH +MAoGCGB8hvdoAQIIMAoGCGB8hvdoAQIJMAoGCGB8hvdoAQIKMAoGCGB8hvdoAQIL +MAoGCGB8hvdoAQIMMAoGCGB8hvdoAQINMAoGCGB8hvdoAQIOMAoGCGB8hvdoAQIP +MAoGCGB8hvdoAQIQMAoGCGB8hvdoAQIRMAoGCGB8hvdoAQISMAoGCGB8hvdoAQIT +MAoGCGB8hvdoAQIUMAoGCGB8hvdoAQIVMAoGCGB8hvdoAQIWMAoGCGB8hvdoAQIX +MAoGCGB8hvdoAQIYMAoGCGB8hvdoAQIZMAoGCGB8hvdoAQIaMAoGCGB8hvdoAQIb +MAoGCGB8hvdoAQIcMAoGCGB8hvdoAQIdMAoGCGB8hvdoAQIeMAoGCGB8hvdoAQIf +MAoGCGB8hvdoAQIgMAoGCGB8hvdoAQIhMAoGCGB8hvdoAQIiMAoGCGB8hvdoAQIj +MAkGB2B8hvdoAQMwCgYIYHyG92gBAwEwCwYJYHyG92gBAwEBMAsGCWB8hvdoAQMB +AjALBglgfIb3aAEDAQMwCwYJYHyG92gBAwEEMAsGCWB8hvdoAQMBBTALBglgfIb3 +aAEDAQYwCwYJYHyG92gBAwEHMAsGCWB8hvdoAQMBCDALBglgfIb3aAEDAQkwCwYJ +YHyG92gBAwEKMAsGCWB8hvdoAQMBCzALBglgfIb3aAEDAQwwCwYJYHyG92gBAwEN +MAsGCWB8hvdoAQMBDjALBglgfIb3aAEDAQ8wCwYJYHyG92gBAwEQMAsGCWB8hvdo +AQMBETALBglgfIb3aAEDARIwCgYIYHyG92gBAwIwCwYJYHyG92gBAwIBMAsGCWB8 +hvdoAQMCAjALBglgfIb3aAEDAgMwCwYJYHyG92gBAwIEMAsGCWB8hvdoAQMCBTAL +BglgfIb3aAEDAgYwCwYJYHyG92gBAwIHMAsGCWB8hvdoAQMCCDALBglgfIb3aAED +AgkwCwYJYHyG92gBAwIKMAsGCWB8hvdoAQMCCzALBglgfIb3aAEDAgwwCwYJYHyG +92gBAwINMAkGB2B8hvdoAQQwCgYIYHyG92gBBAEwCwYJYHyG92gBBAEBMAsGCWB8 +hvdoAQQBAjALBglgfIb3aAEEAQMwCwYJYHyG92gBBAEEMAsGCWB8hvdoAQQBBTAL +BglgfIb3aAEEAQYwCwYJYHyG92gBBAEHMAsGCWB8hvdoAQQBCDALBglgfIb3aAEE +AQkwCwYJYHyG92gBBAEKMAsGCWB8hvdoAQQBCzALBglgfIb3aAEEAQwwCwYJYHyG +92gBBAENMAsGCWB8hvdoAQQBDjALBglgfIb3aAEEAQ8wCwYJYHyG92gBBAEQMAsG +CWB8hvdoAQQBETALBglgfIb3aAEEARIwCwYJYHyG92gBBAETMAoGCGB8hvdoAQQC +MAsGCWB8hvdoAQQCATALBglgfIb3aAEEAgIwCwYJYHyG92gBBAIDMAsGCWB8hvdo +AQQCBDALBglgfIb3aAEEAgUwCwYJYHyG92gBBAIGMAsGCWB8hvdoAQQCBzALBglg +fIb3aAEEAggwCwYJYHyG92gBBAIJMAsGCWB8hvdoAQQCCjALBglgfIb3aAEEAgsw +CwYJYHyG92gBBAIMMAsGCWB8hvdoAQQCDTALBglgfIb3aAEEAg4wCgYIYHyG92gB +BAMwCwYJYHyG92gBBAMBMAsGCWB8hvdoAQQDAjALBglgfIb3aAEEAwMwCwYJYHyG +92gBBAMEMAsGCWB8hvdoAQQDBTALBglgfIb3aAEEAwYwCwYJYHyG92gBBAMHMAsG +CWB8hvdoAQQDCDALBglgfIb3aAEEAwkwCwYJYHyG92gBBAMKMAsGCWB8hvdoAQQD +CzALBglgfIb3aAEEAwwwCwYJYHyG92gBBAMNMAkGB2B8hvdoAQYwCgYIYHyG92gB +BgEwCgYIYHyG92gBBgIwCgYIYHyG92gBBgMwCgYIYHyG92gBBgQwCgYIYHyG92gB +BgUwCgYIYHyG92gBBgYwCgYIYHyG92gBBgcwCQYHYHyG92gBBzAKBghgfIb3aAEH +ATAKBghgfIb3aAEHAjAKBghgfIb3aAEHAzAKBghgfIb3aAEHBDAKBghgfIb3aAEH +BTAKBghgfIb3aAEHBjAKBghgfIb3aAEHBzAKBghgfIb3aAEHCDAKBghgfIb3aAEH +CTAKBghgfIb3aAEHCjAJBgdgfIb3aAEIMAoGCGB8hvdoAQgBMAoGCGB8hvdoAQgC +MAoGCGB8hvdoAQgDMAoGCGB8hvdoAQgEMAoGCGB8hvdoAQgFMAoGCGB8hvdoAQgG +MAoGCGB8hvdoAQgHMAoGCGB8hvdoAQgIMAoGCGB8hvdoAQgJMAoGCGB8hvdoAQgK +MAoGCGB8hvdoAQgLMAcGBWeBDAEBMAcGBWeBDAECMAgGBmeBDAECATAIBgZngQwB +AgIwCAYGZ4EMAQIDMAcGBWeBDAEDMAcGBWeBDAEfMA0GCSqGSIb3DQEBCwUAA4IC +AQBY/7APNH1a2Jfplw1gjIEQ/Lc4XI5pDs02POzpVkCV6nZJZd5XXFboeCzadpZp +SPW/ReeLrRG8kfGUZHWKc8UCUk+XcV9WvK54EfD9yxtaUYheD+tbbPMG+v+xo1yP +HOQPT8U/Q1exJad61RzOpYGBb+vyyl49F2gqE6K6OUs5itPXYbvbbbVD24pbtGFn +UegriKhQfaCmhLczczO0MrUuIB3ZfpzuHYqt/OYmytYcisQXvO6uqHEMmkOTJCWT +k5t/DAxqyw9Gp7TkWWgh6G4pvScTkk1YSdt1pO75tZNxY5kinWmC8xTB2kMoFjcX +0SwiEt4vMcHS25Ku8zgn/FIItFhBS+kH/aLuXwb+v+2T3sfY2EeRAsx1PyfxsFB3 +EGHaFsyN8Tw/mdV50Ilzl5WQQ2s+TxO5M8Qz6GYepH0Tsdn8nrquchBr3K8X5Ntc +/uFcGrIm/Ttemk3uN8reGUe7Gg4cfh74ihLIrkwJZGM8yRv5ZwuihP2t7vGXQzVL +Gi1AAs8DFTSIRtQekqv1lnDeeW23wfkU6+vHVCghRK5quyXPhwoHjylBZBANZxAm +2eZHU6MxazA3NBRmiz4i1Bu9xTGUyYYnsUBXEbW92/HYtFxd7uipiPXj9AKmV4Cn +INVwEqLjks1Vdxf+7L4D+FMWOMNMAi4Wmk3mHTNZmV2NAg== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIJgzCCB2ugAwIBAgIWAMoAAAAAAAAAAAAAAAAAAAAAAAAAADANBgkqhkiG9w0B +AQsFADCCAjAxOzA5BgNVBAUMMk5FUSAxMTczNDg4NjQ1IC8gQ04gMTA2NDc3My0w +IC8gQk4gNzY3MzQ5NjgxUkMwMDAxMRMwEQYLKwYBBAGCNzwCAQMMAkNBMRgwFgYL +KwYBBAGCNzwCAQIMB1F1w6liZWMxGzAZBgsrBgEEAYI3PAIBAQwKVGVycmVib25u +ZTExMC8GA1UEDwwoU8OpY3VyaXTDqSBJbmZvcm1hdGlxdWUgLyBDeWJlciBTZWN1 +cml0eTEqMCgGCSqGSIb3DQEJARYbaW5mb2NhQHNtYXJ0Y2FyZHNlY3VyaXR5LmNh +MRowGAYDVQQXDBErMSAoNDUwKSA5NjQtNDUxMTEaMBgGA1UEFAwRKzEgKDQ1MCkg +OTY0LTc3NzYxEDAOBgNVBBEMB0o2VyAwQTIxCzAJBgNVBAYTAkNBMRAwDgYDVQQI +DAdRdcOpYmVjMRMwEQYDVQQHDApUZXJyZWJvbm5lMRowGAYDVQQJDBExMTc5IGRl +IGwnZXhwcmVzczErMCkGA1UECwwiQXV0aG9yaXTDqSBSYWNpbmUgLyBSb290IEF1 +dGhvcml0eTE1MDMGA1UECgwsU1NFIENhcnRlIMOgIFB1Y2UgSW5jLiAvIEVTUyBT +bWFydCBDYXJkIEluYy4xSDBGBgNVBAMMP1NlY3VyaXTDqSBDYXJ0ZSDDoCBQdWNl +IChTQ1ApIEFDIC8gU21hcnQgQ2FyZCBTZWN1cml0eSAoU0NTKSBDQTAeFw0xODA1 +MzAxNTE1MzBaFw00ODA1MzAxNTE1MzBaMIICMDE7MDkGA1UEBQwyTkVRIDExNzM0 +ODg2NDUgLyBDTiAxMDY0NzczLTAgLyBCTiA3NjczNDk2ODFSQzAwMDExEzARBgsr +BgEEAYI3PAIBAwwCQ0ExGDAWBgsrBgEEAYI3PAIBAgwHUXXDqWJlYzEbMBkGCysG +AQQBgjc8AgEBDApUZXJyZWJvbm5lMTEwLwYDVQQPDChTw6ljdXJpdMOpIEluZm9y +bWF0aXF1ZSAvIEN5YmVyIFNlY3VyaXR5MSowKAYJKoZIhvcNAQkBFhtpbmZvY2FA +c21hcnRjYXJkc2VjdXJpdHkuY2ExGjAYBgNVBBcMESsxICg0NTApIDk2NC00NTEx +MRowGAYDVQQUDBErMSAoNDUwKSA5NjQtNzc3NjEQMA4GA1UEEQwHSjZXIDBBMjEL +MAkGA1UEBhMCQ0ExEDAOBgNVBAgMB1F1w6liZWMxEzARBgNVBAcMClRlcnJlYm9u +bmUxGjAYBgNVBAkMETExNzkgZGUgbCdleHByZXNzMSswKQYDVQQLDCJBdXRob3Jp +dMOpIFJhY2luZSAvIFJvb3QgQXV0aG9yaXR5MTUwMwYDVQQKDCxTU0UgQ2FydGUg +w6AgUHVjZSBJbmMuIC8gRVNTIFNtYXJ0IENhcmQgSW5jLjFIMEYGA1UEAww/U2Vj +dXJpdMOpIENhcnRlIMOgIFB1Y2UgKFNDUCkgQUMgLyBTbWFydCBDYXJkIFNlY3Vy +aXR5IChTQ1MpIENBMIICIDANBgkqhkiG9w0BAQEFAAOCAg0AMIICCAKCAgEAujaC +TEi0kGZ1ms85eeUhugRpRtyk0CAzbxrXODaUSMN7QhGEcNVR8bPycaJuPSEwYYrx +DBRKIHzytuD+E/pHJUkn33uydbYHIauRvYJWmPaQVTKdnrv88JK0SdSFYFZoLhdv +k7WM/3LsSsAh6YiZSsX/fzOrgMjyPUawd1JkMrRhAT2D4dL8AUSfpvoqK4iOeFbq +8zczVyIakWhIQqwqP/+P6ib/sxiapohsDuiCdpQ7B7MTyzOH3kKpoGZm9Tr6DWYt +u8zANpo8zQ2ZLu045lNBQfUSz5SEwaDyYWQRShDUrlhzbxeAlb5609Cp8F8Q6MuJ +NC/42jQoCj0BAKQPz1rqdVTfcJsYVzatzyotprMaGMFzPFelRbJ+CK8DSLTMWT+B +HGWD8BpT7FePi6iHVbnqw08F90XPE3Wrhqtln8l3iXH65Coo4v9EVy4F+riNFKuk +zETDqeX0wjMuHLQKWKam1GzoZfPUBgsr37d7nlzmjtEcYEY3472ZIiMOxWT9oHPu +GWHLFheGXw1+5qwN0SukW0/9XuYG0fPfYntsMs8xlL/SsEfBDWimDc4Er8Urv047 +aZy7kCAlwsmYhxXAur+Tpo34ws97Udk99e3Ik5N0bxzMgrKDRMY4xIJJhHNF5VWP +gQwzkCbquDXD7IyQ5xrlFApSIOlfgQTOePnk1ocCASWjgZAwgY0wHQYDVR0OBBYE +FCRgagdzJFV1Ozb6dFmTVcmyACY6MB8GA1UdIwQYMBaAFCRgagdzJFV1Ozb6dFmT +VcmyACY6MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMCoGA1UdEQQj +MCGGH2h0dHA6Ly9jYS5zbWFydGNhcmRzZWN1cml0eS5jYS8wDQYJKoZIhvcNAQEL +BQADggIBAKN3G99r5eJkUWKD1Jc9ayzZFpIxCshNbVGIfNe0ZiwCB9KtRiO+EjEu +nJlUOfjnXMZOD18ku4p6U5e0JCSVHxPH76p13sWFbxcYiwutcaOwsOKHIlf281an +ItwZbGOeSZ9oyTbrSKBSPX9Jjhsq0byPtQ5TRVwn2hCReeI2RBbs/5KDRHKMJ3Cs +wIZYWryBzZzGvGPldQtMUe2NPiTXv2y86CYewwhiMQRO3i/kZsjfeWIkqJYTzjA9 +FDHDErSyce8e/1sXgDabqpEo6zrxd5HgQGB8FImVa7KtLIIqlQE9AX4WxAyNudyv +h+Ol335Ma4QP6kcjX1uF8wi+Q7+N9wAoW4B6POiP6tWbZEP90MJE59JJgPcZ17z3 +e70LXsJOqZAQHjOVeS97Drdyqa0m7aW1CO+pLAMdN/ThlMbKCEjjOIl+RBOAfuY8 +x4DzFPh1c9QM9mrjo7KsSjYBbK5jUXnXoQUQIPwSQEr+mTTcAxKGpgWPuFQcj3g0 +mLjxKjUtjrmCT/S36hZDlQ/wF+r3aS+hKk7nR9sVjRYBG1n79RgAeHpA45iVar4a +yFJaEP8O++VRiAUN+Y7mqrA+jz97k6bGilrE2FlW/2PYTeggt/0WTmYmJuENAmGy +jAN5EyrPR+ILeqXlLpLa7tYbY2DFMtd5Um9NyI1imFENovV5+lbD +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/etoken_fusion_fips.pem b/restricted/WebAuthn/rootCertificates/mds/etoken_fusion_fips.pem new file mode 100644 index 0000000..e942b33 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/etoken_fusion_fips.pem @@ -0,0 +1,43 @@ +eToken Fusion FIPS +------------------ + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIJAICUTvkgtj5CMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAkZSMQwwCgYDVQQKDANESVMxCzAJBgNVBAsMAkNTMScwJQYDVQQDDB5HZW1h +bHRvIE11bHRpQXBwIEZJRE8gU3ViY2EgQ0EwHhcNMjAwNzA3MTQzNzE4WhcNMzAw +NzA1MTQzNzE4WjBRMQswCQYDVQQGEwJGUjEMMAoGA1UECgwDRElTMQswCQYDVQQL +DAJDUzEnMCUGA1UEAwweR2VtYWx0byBNdWx0aUFwcCBGSURPIFN1YmNhIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAKOeqC5/p0D1isCYKQJlVUO +rB6I7DLocunE/Rm8duGTbyxQht3CbFVTv3N2Lp2fbjxlI+3sOSGk33FTYkTqxcdJ +IrJ7SskBcUSNrfKOaQT/6KQcP4Cm7V+655Tq+TWxyxWQhDygt15qoP7MuK6bT9Sw +pCjpfKhaMSmyQaMoUcRAbLqdzBCac0hzB+Ze+gqJlnWV9UaSI2rFsVuH4ZE0cRO+ +MOpaLgM/s248nGGHp22ewSQfbnPaBbb8iqyAP+cu52GLsUpKRJebE+R6+PMQ9JCd +WeQZR3DkfSidkv3mcb4jq1iIta+MqKhRnwrfXh911KWLnYAl9ENChLX0c6Sj1QID +AQABo1AwTjAdBgNVHQ4EFgQUWLvhRBUPn8uLIf68+gv/NZIwGSIwHwYDVR0jBBgw +FoAUWLvhRBUPn8uLIf68+gv/NZIwGSIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAFLrDhaegeKHxYjH3EP3vUBKhnzM206ASxgeYCO2Ec9pOlYJaeqFE ++sUamUV/pwjDlqNaSgFgy7TweYkvOmMn4qScsHqvJ3zGOAiafwah1vUHfClXR8+a +xO2iGOUF0JKrZ9YYjbAa5/4HClv7jFPOdMWTOQyngoiHAs3jkuYjpCLFlB4VOi3d +1wjA1pnTdBKkAb7t8nTvw+/XbFvcQa73VH7sjvoBqD3fdMfRcuVq4qUZtZT6cGag +THD61Ttqh9oMCZXcDbR1PGZnNbqycsWPDIK0npmK3/3lfV8c+Zsry6e170mfJMZp +7O8m6CSz6/VLK+yDJd7841wpmeKTf6InZA== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIC6TCCAdGgAwIBAgIJAJbTyru1X/IPMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV +BAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBDQTAeFw0xODA2MTIxNDQ1NTBaFw0y +ODA2MDkxNDQ1NTBaMCMxITAfBgNVBAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBD +QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVjKHWpbD7TSlMxocjT +l6nIf7x32PmsQ9zGuLGGqA0UQZoIq3XLzL6LYUvJ5A5g0uyFGllHEfGAKrEaCQ8F +VvPS/Uh0FyfzWhRAziTSijjMIIVjjjUv9m9vFmcXScgHig7Odz8858V0krNH99qG +m3wjgaOerTWmt+jXCUfn01IkTPwxG2HlgEd45jNLSV7Vool+Ke8E2ki4lEkTeHzb +oulR5GUbp3nMi7E47VMQa3bNwnzWBbsaBSSQhLk3m5HaKhhxa6wJDK47NiMCkCkd +IHuWSQLVAfm85UAONtEOPwi0OuK3qbe8yKOFGf0KhB5MMeAym7MV/M4W0a49ogPD +9pMCAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI +hvcNAQELBQADggEBAJWz5xLMk5WNYbAb6yOxECBoZ2WeB/ql4VJ3O/3/tNsxOYnz +LeWo540zQh9rAmaxz7eumBlskMq4yGPSNXB9ycWGHgkcCeSzN2wv8CIzDBs2oBZj +TNk65LBZDssTOBtMW/+uTFHQfbuO3ISLhI0DXfREi9NDM3jfk11xHcsfh2RMV+Qd +NfwVaZZrCq+ouG+Evkv7Kqq+oyu0VFM/tz68TGl6ylhPFR1qh9wttpVjAOOCEQCL +qP2dP28lwYByCqHQqVHwbujv/LZjZnKW3LYndZixPPSRCJssDDwJvh/f6nTxg9ZE ++/JcYre5CaI8nzVHaSOCjNJ7FzULG64JiWOvQ50= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/etoken_fusion_nfc_fips.pem b/restricted/WebAuthn/rootCertificates/mds/etoken_fusion_nfc_fips.pem new file mode 100644 index 0000000..1c2ae87 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/etoken_fusion_nfc_fips.pem @@ -0,0 +1,43 @@ +eToken Fusion NFC FIPS +---------------------- + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIJAICUTvkgtj5CMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAkZSMQwwCgYDVQQKDANESVMxCzAJBgNVBAsMAkNTMScwJQYDVQQDDB5HZW1h +bHRvIE11bHRpQXBwIEZJRE8gU3ViY2EgQ0EwHhcNMjAwNzA3MTQzNzE4WhcNMzAw +NzA1MTQzNzE4WjBRMQswCQYDVQQGEwJGUjEMMAoGA1UECgwDRElTMQswCQYDVQQL +DAJDUzEnMCUGA1UEAwweR2VtYWx0byBNdWx0aUFwcCBGSURPIFN1YmNhIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAKOeqC5/p0D1isCYKQJlVUO +rB6I7DLocunE/Rm8duGTbyxQht3CbFVTv3N2Lp2fbjxlI+3sOSGk33FTYkTqxcdJ +IrJ7SskBcUSNrfKOaQT/6KQcP4Cm7V+655Tq+TWxyxWQhDygt15qoP7MuK6bT9Sw +pCjpfKhaMSmyQaMoUcRAbLqdzBCac0hzB+Ze+gqJlnWV9UaSI2rFsVuH4ZE0cRO+ +MOpaLgM/s248nGGHp22ewSQfbnPaBbb8iqyAP+cu52GLsUpKRJebE+R6+PMQ9JCd +WeQZR3DkfSidkv3mcb4jq1iIta+MqKhRnwrfXh911KWLnYAl9ENChLX0c6Sj1QID +AQABo1AwTjAdBgNVHQ4EFgQUWLvhRBUPn8uLIf68+gv/NZIwGSIwHwYDVR0jBBgw +FoAUWLvhRBUPn8uLIf68+gv/NZIwGSIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAFLrDhaegeKHxYjH3EP3vUBKhnzM206ASxgeYCO2Ec9pOlYJaeqFE ++sUamUV/pwjDlqNaSgFgy7TweYkvOmMn4qScsHqvJ3zGOAiafwah1vUHfClXR8+a +xO2iGOUF0JKrZ9YYjbAa5/4HClv7jFPOdMWTOQyngoiHAs3jkuYjpCLFlB4VOi3d +1wjA1pnTdBKkAb7t8nTvw+/XbFvcQa73VH7sjvoBqD3fdMfRcuVq4qUZtZT6cGag +THD61Ttqh9oMCZXcDbR1PGZnNbqycsWPDIK0npmK3/3lfV8c+Zsry6e170mfJMZp +7O8m6CSz6/VLK+yDJd7841wpmeKTf6InZA== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIC6TCCAdGgAwIBAgIJAJbTyru1X/IPMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV +BAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBDQTAeFw0xODA2MTIxNDQ1NTBaFw0y +ODA2MDkxNDQ1NTBaMCMxITAfBgNVBAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBD +QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVjKHWpbD7TSlMxocjT +l6nIf7x32PmsQ9zGuLGGqA0UQZoIq3XLzL6LYUvJ5A5g0uyFGllHEfGAKrEaCQ8F +VvPS/Uh0FyfzWhRAziTSijjMIIVjjjUv9m9vFmcXScgHig7Odz8858V0krNH99qG +m3wjgaOerTWmt+jXCUfn01IkTPwxG2HlgEd45jNLSV7Vool+Ke8E2ki4lEkTeHzb +oulR5GUbp3nMi7E47VMQa3bNwnzWBbsaBSSQhLk3m5HaKhhxa6wJDK47NiMCkCkd +IHuWSQLVAfm85UAONtEOPwi0OuK3qbe8yKOFGf0KhB5MMeAym7MV/M4W0a49ogPD +9pMCAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI +hvcNAQELBQADggEBAJWz5xLMk5WNYbAb6yOxECBoZ2WeB/ql4VJ3O/3/tNsxOYnz +LeWo540zQh9rAmaxz7eumBlskMq4yGPSNXB9ycWGHgkcCeSzN2wv8CIzDBs2oBZj +TNk65LBZDssTOBtMW/+uTFHQfbuO3ISLhI0DXfREi9NDM3jfk11xHcsfh2RMV+Qd +NfwVaZZrCq+ouG+Evkv7Kqq+oyu0VFM/tz68TGl6ylhPFR1qh9wttpVjAOOCEQCL +qP2dP28lwYByCqHQqVHwbujv/LZjZnKW3LYndZixPPSRCJssDDwJvh/f6nTxg9ZE ++/JcYre5CaI8nzVHaSOCjNJ7FzULG64JiWOvQ50= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/etoken_fusion_nfc_piv.pem b/restricted/WebAuthn/rootCertificates/mds/etoken_fusion_nfc_piv.pem new file mode 100644 index 0000000..c97ee2c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/etoken_fusion_nfc_piv.pem @@ -0,0 +1,43 @@ +eToken Fusion NFC PIV +--------------------- + +-----BEGIN CERTIFICATE----- +MIIC6TCCAdGgAwIBAgIJAJbTyru1X/IPMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV +BAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBDQTAeFw0xODA2MTIxNDQ1NTBaFw0y +ODA2MDkxNDQ1NTBaMCMxITAfBgNVBAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBD +QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVjKHWpbD7TSlMxocjT +l6nIf7x32PmsQ9zGuLGGqA0UQZoIq3XLzL6LYUvJ5A5g0uyFGllHEfGAKrEaCQ8F +VvPS/Uh0FyfzWhRAziTSijjMIIVjjjUv9m9vFmcXScgHig7Odz8858V0krNH99qG +m3wjgaOerTWmt+jXCUfn01IkTPwxG2HlgEd45jNLSV7Vool+Ke8E2ki4lEkTeHzb +oulR5GUbp3nMi7E47VMQa3bNwnzWBbsaBSSQhLk3m5HaKhhxa6wJDK47NiMCkCkd +IHuWSQLVAfm85UAONtEOPwi0OuK3qbe8yKOFGf0KhB5MMeAym7MV/M4W0a49ogPD +9pMCAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI +hvcNAQELBQADggEBAJWz5xLMk5WNYbAb6yOxECBoZ2WeB/ql4VJ3O/3/tNsxOYnz +LeWo540zQh9rAmaxz7eumBlskMq4yGPSNXB9ycWGHgkcCeSzN2wv8CIzDBs2oBZj +TNk65LBZDssTOBtMW/+uTFHQfbuO3ISLhI0DXfREi9NDM3jfk11xHcsfh2RMV+Qd +NfwVaZZrCq+ouG+Evkv7Kqq+oyu0VFM/tz68TGl6ylhPFR1qh9wttpVjAOOCEQCL +qP2dP28lwYByCqHQqVHwbujv/LZjZnKW3LYndZixPPSRCJssDDwJvh/f6nTxg9ZE ++/JcYre5CaI8nzVHaSOCjNJ7FzULG64JiWOvQ50= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIJAICUTvkgtj5CMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAkZSMQwwCgYDVQQKDANESVMxCzAJBgNVBAsMAkNTMScwJQYDVQQDDB5HZW1h +bHRvIE11bHRpQXBwIEZJRE8gU3ViY2EgQ0EwHhcNMjAwNzA3MTQzNzE4WhcNMzAw +NzA1MTQzNzE4WjBRMQswCQYDVQQGEwJGUjEMMAoGA1UECgwDRElTMQswCQYDVQQL +DAJDUzEnMCUGA1UEAwweR2VtYWx0byBNdWx0aUFwcCBGSURPIFN1YmNhIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAKOeqC5/p0D1isCYKQJlVUO +rB6I7DLocunE/Rm8duGTbyxQht3CbFVTv3N2Lp2fbjxlI+3sOSGk33FTYkTqxcdJ +IrJ7SskBcUSNrfKOaQT/6KQcP4Cm7V+655Tq+TWxyxWQhDygt15qoP7MuK6bT9Sw +pCjpfKhaMSmyQaMoUcRAbLqdzBCac0hzB+Ze+gqJlnWV9UaSI2rFsVuH4ZE0cRO+ +MOpaLgM/s248nGGHp22ewSQfbnPaBbb8iqyAP+cu52GLsUpKRJebE+R6+PMQ9JCd +WeQZR3DkfSidkv3mcb4jq1iIta+MqKhRnwrfXh911KWLnYAl9ENChLX0c6Sj1QID +AQABo1AwTjAdBgNVHQ4EFgQUWLvhRBUPn8uLIf68+gv/NZIwGSIwHwYDVR0jBBgw +FoAUWLvhRBUPn8uLIf68+gv/NZIwGSIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAFLrDhaegeKHxYjH3EP3vUBKhnzM206ASxgeYCO2Ec9pOlYJaeqFE ++sUamUV/pwjDlqNaSgFgy7TweYkvOmMn4qScsHqvJ3zGOAiafwah1vUHfClXR8+a +xO2iGOUF0JKrZ9YYjbAa5/4HClv7jFPOdMWTOQyngoiHAs3jkuYjpCLFlB4VOi3d +1wjA1pnTdBKkAb7t8nTvw+/XbFvcQa73VH7sjvoBqD3fdMfRcuVq4qUZtZT6cGag +THD61Ttqh9oMCZXcDbR1PGZnNbqycsWPDIK0npmK3/3lfV8c+Zsry6e170mfJMZp +7O8m6CSz6/VLK+yDJd7841wpmeKTf6InZA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/etoken_fusion_nfc_piv_enterprise.pem b/restricted/WebAuthn/rootCertificates/mds/etoken_fusion_nfc_piv_enterprise.pem new file mode 100644 index 0000000..cdc1af5 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/etoken_fusion_nfc_piv_enterprise.pem @@ -0,0 +1,43 @@ +eToken Fusion NFC PIV Enterprise +-------------------------------- + +-----BEGIN CERTIFICATE----- +MIIC6TCCAdGgAwIBAgIJAJbTyru1X/IPMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV +BAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBDQTAeFw0xODA2MTIxNDQ1NTBaFw0y +ODA2MDkxNDQ1NTBaMCMxITAfBgNVBAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBD +QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVjKHWpbD7TSlMxocjT +l6nIf7x32PmsQ9zGuLGGqA0UQZoIq3XLzL6LYUvJ5A5g0uyFGllHEfGAKrEaCQ8F +VvPS/Uh0FyfzWhRAziTSijjMIIVjjjUv9m9vFmcXScgHig7Odz8858V0krNH99qG +m3wjgaOerTWmt+jXCUfn01IkTPwxG2HlgEd45jNLSV7Vool+Ke8E2ki4lEkTeHzb +oulR5GUbp3nMi7E47VMQa3bNwnzWBbsaBSSQhLk3m5HaKhhxa6wJDK47NiMCkCkd +IHuWSQLVAfm85UAONtEOPwi0OuK3qbe8yKOFGf0KhB5MMeAym7MV/M4W0a49ogPD +9pMCAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI +hvcNAQELBQADggEBAJWz5xLMk5WNYbAb6yOxECBoZ2WeB/ql4VJ3O/3/tNsxOYnz +LeWo540zQh9rAmaxz7eumBlskMq4yGPSNXB9ycWGHgkcCeSzN2wv8CIzDBs2oBZj +TNk65LBZDssTOBtMW/+uTFHQfbuO3ISLhI0DXfREi9NDM3jfk11xHcsfh2RMV+Qd +NfwVaZZrCq+ouG+Evkv7Kqq+oyu0VFM/tz68TGl6ylhPFR1qh9wttpVjAOOCEQCL +qP2dP28lwYByCqHQqVHwbujv/LZjZnKW3LYndZixPPSRCJssDDwJvh/f6nTxg9ZE ++/JcYre5CaI8nzVHaSOCjNJ7FzULG64JiWOvQ50= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIJAICUTvkgtj5CMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAkZSMQwwCgYDVQQKDANESVMxCzAJBgNVBAsMAkNTMScwJQYDVQQDDB5HZW1h +bHRvIE11bHRpQXBwIEZJRE8gU3ViY2EgQ0EwHhcNMjAwNzA3MTQzNzE4WhcNMzAw +NzA1MTQzNzE4WjBRMQswCQYDVQQGEwJGUjEMMAoGA1UECgwDRElTMQswCQYDVQQL +DAJDUzEnMCUGA1UEAwweR2VtYWx0byBNdWx0aUFwcCBGSURPIFN1YmNhIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAKOeqC5/p0D1isCYKQJlVUO +rB6I7DLocunE/Rm8duGTbyxQht3CbFVTv3N2Lp2fbjxlI+3sOSGk33FTYkTqxcdJ +IrJ7SskBcUSNrfKOaQT/6KQcP4Cm7V+655Tq+TWxyxWQhDygt15qoP7MuK6bT9Sw +pCjpfKhaMSmyQaMoUcRAbLqdzBCac0hzB+Ze+gqJlnWV9UaSI2rFsVuH4ZE0cRO+ +MOpaLgM/s248nGGHp22ewSQfbnPaBbb8iqyAP+cu52GLsUpKRJebE+R6+PMQ9JCd +WeQZR3DkfSidkv3mcb4jq1iIta+MqKhRnwrfXh911KWLnYAl9ENChLX0c6Sj1QID +AQABo1AwTjAdBgNVHQ4EFgQUWLvhRBUPn8uLIf68+gv/NZIwGSIwHwYDVR0jBBgw +FoAUWLvhRBUPn8uLIf68+gv/NZIwGSIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAFLrDhaegeKHxYjH3EP3vUBKhnzM206ASxgeYCO2Ec9pOlYJaeqFE ++sUamUV/pwjDlqNaSgFgy7TweYkvOmMn4qScsHqvJ3zGOAiafwah1vUHfClXR8+a +xO2iGOUF0JKrZ9YYjbAa5/4HClv7jFPOdMWTOQyngoiHAs3jkuYjpCLFlB4VOi3d +1wjA1pnTdBKkAb7t8nTvw+/XbFvcQa73VH7sjvoBqD3fdMfRcuVq4qUZtZT6cGag +THD61Ttqh9oMCZXcDbR1PGZnNbqycsWPDIK0npmK3/3lfV8c+Zsry6e170mfJMZp +7O8m6CSz6/VLK+yDJd7841wpmeKTf6InZA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ewbm_efa310_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/ewbm_efa310_fido2_authenticator.pem new file mode 100644 index 0000000..14a1a9d --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ewbm_efa310_fido2_authenticator.pem @@ -0,0 +1,37 @@ +eWBM eFA310 FIDO2 Authenticator +------------------------------- + +-----BEGIN CERTIFICATE----- +MIICpTCCAkqgAwIBAgIBATAKBggqhkjOPQQDAjCBrzELMAkGA1UEBhMCS1IxETAP +BgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5nbmFtLUd1MRcwFQYDVQQKDA5l +V0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlv +bjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYO +aW5mb0BlLXdibS5jb20wHhcNMTgwNzAyMDUzMTM5WhcNMjMwNzAxMDUzMTM5WjCB +rzELMAkGA1UEBhMCS1IxETAPBgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5n +bmFtLUd1MRcwFQYDVQQKDA5lV0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVu +dGljYXRvciBBdHRlc3RhdGlvbjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0 +ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAAQIfqHisi0oO/eyOqSaDrr9itG2IymBkHnSDGQIIYmT+vqA8AgO +81momc2Ld5PGpEN6muE54wPHQjvc/yCih8u2o1UwUzASBgNVHRMBAf8ECDAGAQH/ +AgEAMB0GA1UdDgQWBBS3J/fxiAv22irdBs98SODhF7kU/jALBgNVHQ8EBAMCAQYw +EQYJYIZIAYb4QgEBBAQDAgAHMAoGCCqGSM49BAMCA0kAMEYCIQDc41LFK4LJCBU2 +VVKIz7Z6sxPhUEkh8nLSLK6IXdkP5wIhAIeKVOZchaVO5aF7fbdXoSrcyy1YYeUe +PLojcKI9fX84 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICgjCCAiigAwIBAgIBATAKBggqhkjOPQQDAjCBnTELMAkGA1UEBhMCS1IxDjAM +BgNVBAgMBVNlb3VsMRAwDgYDVQQHDAdHYW5nbmFtMRcwFQYDVQQKDA5lV0JNIENv +LiwgTHRkLjEZMBcGA1UECwwQQ2VydGlmaWNhdGUgVW5pdDEZMBcGA1UEAwwQZVdC +TSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wIBcN +MjMwNzExMDM0NjE0WhgPMjA3MzA2MjgwMzQ2MTRaMIGdMQswCQYDVQQGEwJLUjEO +MAwGA1UECAwFU2VvdWwxEDAOBgNVBAcMB0dhbmduYW0xFzAVBgNVBAoMDmVXQk0g +Q28uLCBMdGQuMRkwFwYDVQQLDBBDZXJ0aWZpY2F0ZSBVbml0MRkwFwYDVQQDDBBl +V0JNIENlcnRpZmljYXRlMR0wGwYJKoZIhvcNAQkBFg5pbmZvQGUtd2JtLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABAh+oeKyLSg797I6pJoOuv2K0bYjKYGQ +edIMZAghiZP6+oDwCA7zWaiZzYt3k8akQ3qa4TnjA8dCO9z/IKKHy7ajVTBTMBIG +A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLcn9/GIC/baKt0Gz3xI4OEXuRT+ +MAsGA1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAAcwCgYIKoZIzj0EAwIDSAAw +RQIhANVnJde//tBLq8MDDi+SAd6UdYIZSng4PMqmyNrvZj64AiAX0xSzAhFaCCp/ +uhpVgnlF+XBgrwAIsotZGTB6rkB31A== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ewbm_efa320_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/ewbm_efa320_fido2_authenticator.pem new file mode 100644 index 0000000..e3e524c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ewbm_efa320_fido2_authenticator.pem @@ -0,0 +1,37 @@ +eWBM eFA320 FIDO2 Authenticator +------------------------------- + +-----BEGIN CERTIFICATE----- +MIICpTCCAkqgAwIBAgIBATAKBggqhkjOPQQDAjCBrzELMAkGA1UEBhMCS1IxETAP +BgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5nbmFtLUd1MRcwFQYDVQQKDA5l +V0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlv +bjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYO +aW5mb0BlLXdibS5jb20wHhcNMTgwNzAyMDUzMTM5WhcNMjMwNzAxMDUzMTM5WjCB +rzELMAkGA1UEBhMCS1IxETAPBgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5n +bmFtLUd1MRcwFQYDVQQKDA5lV0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVu +dGljYXRvciBBdHRlc3RhdGlvbjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0 +ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAAQIfqHisi0oO/eyOqSaDrr9itG2IymBkHnSDGQIIYmT+vqA8AgO +81momc2Ld5PGpEN6muE54wPHQjvc/yCih8u2o1UwUzASBgNVHRMBAf8ECDAGAQH/ +AgEAMB0GA1UdDgQWBBS3J/fxiAv22irdBs98SODhF7kU/jALBgNVHQ8EBAMCAQYw +EQYJYIZIAYb4QgEBBAQDAgAHMAoGCCqGSM49BAMCA0kAMEYCIQDc41LFK4LJCBU2 +VVKIz7Z6sxPhUEkh8nLSLK6IXdkP5wIhAIeKVOZchaVO5aF7fbdXoSrcyy1YYeUe +PLojcKI9fX84 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICgjCCAiigAwIBAgIBATAKBggqhkjOPQQDAjCBnTELMAkGA1UEBhMCS1IxDjAM +BgNVBAgMBVNlb3VsMRAwDgYDVQQHDAdHYW5nbmFtMRcwFQYDVQQKDA5lV0JNIENv +LiwgTHRkLjEZMBcGA1UECwwQQ2VydGlmaWNhdGUgVW5pdDEZMBcGA1UEAwwQZVdC +TSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wIBcN +MjMwNzExMDM0NjE0WhgPMjA3MzA2MjgwMzQ2MTRaMIGdMQswCQYDVQQGEwJLUjEO +MAwGA1UECAwFU2VvdWwxEDAOBgNVBAcMB0dhbmduYW0xFzAVBgNVBAoMDmVXQk0g +Q28uLCBMdGQuMRkwFwYDVQQLDBBDZXJ0aWZpY2F0ZSBVbml0MRkwFwYDVQQDDBBl +V0JNIENlcnRpZmljYXRlMR0wGwYJKoZIhvcNAQkBFg5pbmZvQGUtd2JtLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABAh+oeKyLSg797I6pJoOuv2K0bYjKYGQ +edIMZAghiZP6+oDwCA7zWaiZzYt3k8akQ3qa4TnjA8dCO9z/IKKHy7ajVTBTMBIG +A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLcn9/GIC/baKt0Gz3xI4OEXuRT+ +MAsGA1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAAcwCgYIKoZIzj0EAwIDSAAw +RQIhANVnJde//tBLq8MDDi+SAd6UdYIZSng4PMqmyNrvZj64AiAX0xSzAhFaCCp/ +uhpVgnlF+XBgrwAIsotZGTB6rkB31A== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ewbm_efa500_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/ewbm_efa500_fido2_authenticator.pem new file mode 100644 index 0000000..bfd6c20 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ewbm_efa500_fido2_authenticator.pem @@ -0,0 +1,37 @@ +eWBM eFA500 FIDO2 Authenticator +------------------------------- + +-----BEGIN CERTIFICATE----- +MIICpTCCAkqgAwIBAgIBATAKBggqhkjOPQQDAjCBrzELMAkGA1UEBhMCS1IxETAP +BgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5nbmFtLUd1MRcwFQYDVQQKDA5l +V0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlv +bjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYO +aW5mb0BlLXdibS5jb20wHhcNMTgwNzAyMDUzMTM5WhcNMjMwNzAxMDUzMTM5WjCB +rzELMAkGA1UEBhMCS1IxETAPBgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5n +bmFtLUd1MRcwFQYDVQQKDA5lV0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVu +dGljYXRvciBBdHRlc3RhdGlvbjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0 +ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAAQIfqHisi0oO/eyOqSaDrr9itG2IymBkHnSDGQIIYmT+vqA8AgO +81momc2Ld5PGpEN6muE54wPHQjvc/yCih8u2o1UwUzASBgNVHRMBAf8ECDAGAQH/ +AgEAMB0GA1UdDgQWBBS3J/fxiAv22irdBs98SODhF7kU/jALBgNVHQ8EBAMCAQYw +EQYJYIZIAYb4QgEBBAQDAgAHMAoGCCqGSM49BAMCA0kAMEYCIQDc41LFK4LJCBU2 +VVKIz7Z6sxPhUEkh8nLSLK6IXdkP5wIhAIeKVOZchaVO5aF7fbdXoSrcyy1YYeUe +PLojcKI9fX84 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICgjCCAiigAwIBAgIBATAKBggqhkjOPQQDAjCBnTELMAkGA1UEBhMCS1IxDjAM +BgNVBAgMBVNlb3VsMRAwDgYDVQQHDAdHYW5nbmFtMRcwFQYDVQQKDA5lV0JNIENv +LiwgTHRkLjEZMBcGA1UECwwQQ2VydGlmaWNhdGUgVW5pdDEZMBcGA1UEAwwQZVdC +TSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wIBcN +MjMwNzExMDM0NjE0WhgPMjA3MzA2MjgwMzQ2MTRaMIGdMQswCQYDVQQGEwJLUjEO +MAwGA1UECAwFU2VvdWwxEDAOBgNVBAcMB0dhbmduYW0xFzAVBgNVBAoMDmVXQk0g +Q28uLCBMdGQuMRkwFwYDVQQLDBBDZXJ0aWZpY2F0ZSBVbml0MRkwFwYDVQQDDBBl +V0JNIENlcnRpZmljYXRlMR0wGwYJKoZIhvcNAQkBFg5pbmZvQGUtd2JtLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABAh+oeKyLSg797I6pJoOuv2K0bYjKYGQ +edIMZAghiZP6+oDwCA7zWaiZzYt3k8akQ3qa4TnjA8dCO9z/IKKHy7ajVTBTMBIG +A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLcn9/GIC/baKt0Gz3xI4OEXuRT+ +MAsGA1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAAcwCgYIKoZIzj0EAwIDSAAw +RQIhANVnJde//tBLq8MDDi+SAd6UdYIZSng4PMqmyNrvZj64AiAX0xSzAhFaCCp/ +uhpVgnlF+XBgrwAIsotZGTB6rkB31A== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ewbm_efpa_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/ewbm_efpa_fido2_authenticator.pem new file mode 100644 index 0000000..2fb29d8 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ewbm_efpa_fido2_authenticator.pem @@ -0,0 +1,37 @@ +eWBM eFPA FIDO2 Authenticator +----------------------------- + +-----BEGIN CERTIFICATE----- +MIICpTCCAkqgAwIBAgIBATAKBggqhkjOPQQDAjCBrzELMAkGA1UEBhMCS1IxETAP +BgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5nbmFtLUd1MRcwFQYDVQQKDA5l +V0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlv +bjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYO +aW5mb0BlLXdibS5jb20wHhcNMTgwNzAyMDUzMTM5WhcNMjMwNzAxMDUzMTM5WjCB +rzELMAkGA1UEBhMCS1IxETAPBgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5n +bmFtLUd1MRcwFQYDVQQKDA5lV0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVu +dGljYXRvciBBdHRlc3RhdGlvbjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0 +ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAAQIfqHisi0oO/eyOqSaDrr9itG2IymBkHnSDGQIIYmT+vqA8AgO +81momc2Ld5PGpEN6muE54wPHQjvc/yCih8u2o1UwUzASBgNVHRMBAf8ECDAGAQH/ +AgEAMB0GA1UdDgQWBBS3J/fxiAv22irdBs98SODhF7kU/jALBgNVHQ8EBAMCAQYw +EQYJYIZIAYb4QgEBBAQDAgAHMAoGCCqGSM49BAMCA0kAMEYCIQDc41LFK4LJCBU2 +VVKIz7Z6sxPhUEkh8nLSLK6IXdkP5wIhAIeKVOZchaVO5aF7fbdXoSrcyy1YYeUe +PLojcKI9fX84 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICgjCCAiigAwIBAgIBATAKBggqhkjOPQQDAjCBnTELMAkGA1UEBhMCS1IxDjAM +BgNVBAgMBVNlb3VsMRAwDgYDVQQHDAdHYW5nbmFtMRcwFQYDVQQKDA5lV0JNIENv +LiwgTHRkLjEZMBcGA1UECwwQQ2VydGlmaWNhdGUgVW5pdDEZMBcGA1UEAwwQZVdC +TSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wIBcN +MjMwNzExMDM0NjE0WhgPMjA3MzA2MjgwMzQ2MTRaMIGdMQswCQYDVQQGEwJLUjEO +MAwGA1UECAwFU2VvdWwxEDAOBgNVBAcMB0dhbmduYW0xFzAVBgNVBAoMDmVXQk0g +Q28uLCBMdGQuMRkwFwYDVQQLDBBDZXJ0aWZpY2F0ZSBVbml0MRkwFwYDVQQDDBBl +V0JNIENlcnRpZmljYXRlMR0wGwYJKoZIhvcNAQkBFg5pbmZvQGUtd2JtLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABAh+oeKyLSg797I6pJoOuv2K0bYjKYGQ +edIMZAghiZP6+oDwCA7zWaiZzYt3k8akQ3qa4TnjA8dCO9z/IKKHy7ajVTBTMBIG +A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLcn9/GIC/baKt0Gz3xI4OEXuRT+ +MAsGA1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAAcwCgYIKoZIzj0EAwIDSAAw +RQIhANVnJde//tBLq8MDDi+SAd6UdYIZSng4PMqmyNrvZj64AiAX0xSzAhFaCCp/ +uhpVgnlF+XBgrwAIsotZGTB6rkB31A== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_fingerprint_key.pem b/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_fingerprint_key.pem new file mode 100644 index 0000000..a58254c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_fingerprint_key.pem @@ -0,0 +1,18 @@ +Excelsecu eSecu FIDO2 Fingerprint Key +------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICSDCCAe2gAwIBAgIJAM9RzYu4EIIlMAoGCCqGSM49BAMCMH8xCzAJBgNVBAYT +AkNOMSwwKgYDVQQKDCNFeGNlbHNlY3UgRGF0YSBUZWNobm9sb2d5IENvLiwgTHRk +LjEeMBwGA1UECwwVRXhjZWxzZWN1IEZpZG8gU2VydmVyMSIwIAYDVQQDDBlFeGNl +bHNlY3UgRmlkbyBSb290IENBIDAyMCAXDTE5MTAyMzA5NTA0M1oYDzIwNTkxMDEz +MDk1MDQzWjB/MQswCQYDVQQGEwJDTjEsMCoGA1UECgwjRXhjZWxzZWN1IERhdGEg +VGVjaG5vbG9neSBDby4sIEx0ZC4xHjAcBgNVBAsMFUV4Y2Vsc2VjdSBGaWRvIFNl +cnZlcjEiMCAGA1UEAwwZRXhjZWxzZWN1IEZpZG8gUm9vdCBDQSAwMjBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABHlq2jUQMalHj/BReQefGiz4EvYJyFLWPz4RfhJG +Kqql+8n96hT1m5gXoTvoLrjSU7X0cBeoTsghyh22+yrs4+SjUDBOMB0GA1UdDgQW +BBQ+8SGW2BXbqb2dcAOiWJOU+GCsPjAfBgNVHSMEGDAWgBQ+8SGW2BXbqb2dcAOi +WJOU+GCsPjAMBgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0kAMEYCIQDq8xIW0ZK5 +yz3EAzmux88LCTYO157fTfyOiOzC2ADyawIhAO1PWYleFgH/3muD8cBAMr11fEKd +F/AaC16ftxaezNXH +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_fingerprint_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_fingerprint_security_key.pem new file mode 100644 index 0000000..3b72c90 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_fingerprint_security_key.pem @@ -0,0 +1,18 @@ +Excelsecu eSecu FIDO2 Fingerprint Security Key +---------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICSDCCAe2gAwIBAgIJAM9RzYu4EIIlMAoGCCqGSM49BAMCMH8xCzAJBgNVBAYT +AkNOMSwwKgYDVQQKDCNFeGNlbHNlY3UgRGF0YSBUZWNobm9sb2d5IENvLiwgTHRk +LjEeMBwGA1UECwwVRXhjZWxzZWN1IEZpZG8gU2VydmVyMSIwIAYDVQQDDBlFeGNl +bHNlY3UgRmlkbyBSb290IENBIDAyMCAXDTE5MTAyMzA5NTA0M1oYDzIwNTkxMDEz +MDk1MDQzWjB/MQswCQYDVQQGEwJDTjEsMCoGA1UECgwjRXhjZWxzZWN1IERhdGEg +VGVjaG5vbG9neSBDby4sIEx0ZC4xHjAcBgNVBAsMFUV4Y2Vsc2VjdSBGaWRvIFNl +cnZlcjEiMCAGA1UEAwwZRXhjZWxzZWN1IEZpZG8gUm9vdCBDQSAwMjBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABHlq2jUQMalHj/BReQefGiz4EvYJyFLWPz4RfhJG +Kqql+8n96hT1m5gXoTvoLrjSU7X0cBeoTsghyh22+yrs4+SjUDBOMB0GA1UdDgQW +BBQ+8SGW2BXbqb2dcAOiWJOU+GCsPjAfBgNVHSMEGDAWgBQ+8SGW2BXbqb2dcAOi +WJOU+GCsPjAMBgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0kAMEYCIQDq8xIW0ZK5 +yz3EAzmux88LCTYO157fTfyOiOzC2ADyawIhAO1PWYleFgH/3muD8cBAMr11fEKd +F/AaC16ftxaezNXH +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_nfc_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_nfc_security_key.pem new file mode 100644 index 0000000..5a3c0aa --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_nfc_security_key.pem @@ -0,0 +1,18 @@ +Excelsecu eSecu FIDO2 NFC Security Key +-------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICSDCCAe2gAwIBAgIJAM9RzYu4EIIlMAoGCCqGSM49BAMCMH8xCzAJBgNVBAYT +AkNOMSwwKgYDVQQKDCNFeGNlbHNlY3UgRGF0YSBUZWNobm9sb2d5IENvLiwgTHRk +LjEeMBwGA1UECwwVRXhjZWxzZWN1IEZpZG8gU2VydmVyMSIwIAYDVQQDDBlFeGNl +bHNlY3UgRmlkbyBSb290IENBIDAyMCAXDTE5MTAyMzA5NTA0M1oYDzIwNTkxMDEz +MDk1MDQzWjB/MQswCQYDVQQGEwJDTjEsMCoGA1UECgwjRXhjZWxzZWN1IERhdGEg +VGVjaG5vbG9neSBDby4sIEx0ZC4xHjAcBgNVBAsMFUV4Y2Vsc2VjdSBGaWRvIFNl +cnZlcjEiMCAGA1UEAwwZRXhjZWxzZWN1IEZpZG8gUm9vdCBDQSAwMjBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABHlq2jUQMalHj/BReQefGiz4EvYJyFLWPz4RfhJG +Kqql+8n96hT1m5gXoTvoLrjSU7X0cBeoTsghyh22+yrs4+SjUDBOMB0GA1UdDgQW +BBQ+8SGW2BXbqb2dcAOiWJOU+GCsPjAfBgNVHSMEGDAWgBQ+8SGW2BXbqb2dcAOi +WJOU+GCsPjAMBgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0kAMEYCIQDq8xIW0ZK5 +yz3EAzmux88LCTYO157fTfyOiOzC2ADyawIhAO1PWYleFgH/3muD8cBAMr11fEKd +F/AaC16ftxaezNXH +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_pro_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_pro_security_key.pem new file mode 100644 index 0000000..7e37807 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_pro_security_key.pem @@ -0,0 +1,18 @@ +Excelsecu eSecu FIDO2 PRO Security Key +-------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICSDCCAe2gAwIBAgIJAM9RzYu4EIIlMAoGCCqGSM49BAMCMH8xCzAJBgNVBAYT +AkNOMSwwKgYDVQQKDCNFeGNlbHNlY3UgRGF0YSBUZWNobm9sb2d5IENvLiwgTHRk +LjEeMBwGA1UECwwVRXhjZWxzZWN1IEZpZG8gU2VydmVyMSIwIAYDVQQDDBlFeGNl +bHNlY3UgRmlkbyBSb290IENBIDAyMCAXDTE5MTAyMzA5NTA0M1oYDzIwNTkxMDEz +MDk1MDQzWjB/MQswCQYDVQQGEwJDTjEsMCoGA1UECgwjRXhjZWxzZWN1IERhdGEg +VGVjaG5vbG9neSBDby4sIEx0ZC4xHjAcBgNVBAsMFUV4Y2Vsc2VjdSBGaWRvIFNl +cnZlcjEiMCAGA1UEAwwZRXhjZWxzZWN1IEZpZG8gUm9vdCBDQSAwMjBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABHlq2jUQMalHj/BReQefGiz4EvYJyFLWPz4RfhJG +Kqql+8n96hT1m5gXoTvoLrjSU7X0cBeoTsghyh22+yrs4+SjUDBOMB0GA1UdDgQW +BBQ+8SGW2BXbqb2dcAOiWJOU+GCsPjAfBgNVHSMEGDAWgBQ+8SGW2BXbqb2dcAOi +WJOU+GCsPjAMBgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0kAMEYCIQDq8xIW0ZK5 +yz3EAzmux88LCTYO157fTfyOiOzC2ADyawIhAO1PWYleFgH/3muD8cBAMr11fEKd +F/AaC16ftxaezNXH +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_security_key.pem new file mode 100644 index 0000000..91fc9ec --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido2_security_key.pem @@ -0,0 +1,18 @@ +Excelsecu eSecu FIDO2 Security Key +---------------------------------- + +-----BEGIN CERTIFICATE----- +MIICVjCCAf2gAwIBAgIJANoM39ZY75ZpMAoGCCqGSM49BAMCMIGGMQswCQYDVQQG +EwJDTjEzMDEGA1UECgwqU2hlbnpoZW4gRXhjZWxzZWN1IERhdGEgVGVjaG5vbG9n +eSBDby4gTHRkMR4wHAYDVQQLDBVFeGNlbHNlY3UgRmlkbyBTZXJ2ZXIxIjAgBgNV +BAMMGUV4Y2Vsc2VjdSBGaWRvIFJvb3QgQ0EgMDEwIBcNMTkwMTI5MDIwODMyWhgP +MjA1OTAxMTkwMjA4MzJaMIGGMQswCQYDVQQGEwJDTjEzMDEGA1UECgwqU2hlbnpo +ZW4gRXhjZWxzZWN1IERhdGEgVGVjaG5vbG9neSBDby4gTHRkMR4wHAYDVQQLDBVF +eGNlbHNlY3UgRmlkbyBTZXJ2ZXIxIjAgBgNVBAMMGUV4Y2Vsc2VjdSBGaWRvIFJv +b3QgQ0EgMDEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATV+rOFE2MvCxKnJ2qE +Ml1xV+1IBFhWVzFPe/7ASjVIEcV9ppK0i+iT8CqQJccxBpz5dOTes6AsapCm9a3y +eB8Do1AwTjAdBgNVHQ4EFgQU9IKvvpbgxs/6SoifXenFNDtI7CMwHwYDVR0jBBgw +FoAU9IKvvpbgxs/6SoifXenFNDtI7CMwDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD +AgNHADBEAiBH09rluD+Ruj6ty7jYhArYmznEopVk/+kxdzfRqQx1JQIgSoMXkPc9 +kflvmwDRdQq+XN1bjH84dAF9rjoyMlEkN5w= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido_security_key.pem new file mode 100644 index 0000000..29ef777 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/excelsecu_esecu_fido_security_key.pem @@ -0,0 +1,19 @@ +Excelsecu eSecu FIDO Security Key +--------------------------------- + +-----BEGIN CERTIFICATE----- +MIICkjCCAjmgAwIBAgIJALliKvqGHwOxMAoGCCqGSM49BAMCMIGlMQswCQYDVQQG +EwJDTjESMBAGA1UECAwJR3Vhbmdkb25nMREwDwYDVQQHDAhTaGVuemhlbjEzMDEG +A1UECgwqU2hlbnpoZW4gRXhjZWxzZWN1IERhdGEgVGVjaG5vbG9neSBDby4gTHRk +MR4wHAYDVQQLDBVFeGNlbHNlY3UgRmlkbyBTZXJ2ZXIxGjAYBgNVBAMMEUV4Y2Vs +c2VjdSBGaWRvIENBMB4XDTE3MDMwMjA5MTUxMFoXDTI3MDIyODA5MTUxMFowgaUx +CzAJBgNVBAYTAkNOMRIwEAYDVQQIDAlHdWFuZ2RvbmcxETAPBgNVBAcMCFNoZW56 +aGVuMTMwMQYDVQQKDCpTaGVuemhlbiBFeGNlbHNlY3UgRGF0YSBUZWNobm9sb2d5 +IENvLiBMdGQxHjAcBgNVBAsMFUV4Y2Vsc2VjdSBGaWRvIFNlcnZlcjEaMBgGA1UE +AwwRRXhjZWxzZWN1IEZpZG8gQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATm +n91EIYVf5DT0p9ipc3MobfwKarnP9dM8crMSZNPXyYv0H738uKjBnnlCrq33ITDw +CODSlUaDw50Injnu5yPCo1AwTjAdBgNVHQ4EFgQUrIkvD6zLiDucdhNnAqlmrInN +n5swHwYDVR0jBBgwFoAUrIkvD6zLiDucdhNnAqlmrInNn5swDAYDVR0TBAUwAwEB +/zAKBggqhkjOPQQDAgNHADBEAiADdZBSy59F3dzc+EvU9JCv3eHJw+AivBXU8H46 +e6ep9AIgUt9/Ag/vTAjIkKtIJs/zbHafDcJmrnyU/ZP115Oben0= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_allinone_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_allinone_fido2_authenticator.pem new file mode 100644 index 0000000..e1f6c2f --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_allinone_fido2_authenticator.pem @@ -0,0 +1,98 @@ +Feitian AllinOne FIDO2 Authenticator +------------------------------------ + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQGBUrQbdDrm20FZnDsX2CBTAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIDHSb2mbNDAUNXvpPU0oWKeNye0fQ2l9 +D01AR2+sLZdhAiEAo3wz684IFMVsCCRmuJqxH6FQRESNqezuo1E+KkGxWuM= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICXzCCAcGgAwIBAgIQZlrgX7hufvlliU/zGXhixDAKBggqhkjOPQQDBDBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZFSVRJQU4gRklETyBSb290IENBMCAXDTI1MDEwMTAwMDAwMFoYDzIxMjQx +MjMxMjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZFSVRJQU4gRklETyBSb290IENBMIGbMBAGByqG +SM49AgEGBSuBBAAjA4GGAAQAM3K4RlbgKxBsfCjGUQtSK61JCaoM+ZlXBa8SxOHw +AIqbHa1+i7Eo23RGxrfBx8eUBDeEwSLY6yNhMsYMcnhzX8ABea2GAy5Ayd/0o0yT +Xt4NKOgRVktuW7fbAKpOobAerDk7rNOFj5KIafcXym4xAfDpXEPILiqXFpyyRrRM +k/MDayOjQjBAMB0GA1UdDgQWBBSTvGa4M5EerC5XgdIx1gst0nnezzAPBgNVHRMB +Af8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDBAOBiwAwgYcCQgFe +RCXIxI4lhsJs76K+ZVFWh3bTmcrYE4y36Xda89LG1WjcxmKv1AQuqFN3PQloxRjf +xfhFOqLkq5kGwHR2Sasc8AJBSeUNSjsGUtOObL6E9l1Zf9wk7RSWxHtlsH0GjSrF +0Cb2GWI02VKLWWPweXZSInZpwlNzrCBENpcDm14/OyUPWUg= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQFZ97ws2JGPEoa5NI+p8z1jAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIQC3sT1lBjGeF+xKTpzV1KYU2ckahTd4 +mLJyzYOhaHv4igIgD2JYkfyH5Q4Bpo8rroO0It7oYjF2kgy/eSZ3U9Glaqw= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2TCCAX6gAwIBAgIQFQNKW+7zbg/7d+lTyrIWwDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0kAMEYCIQCB0NFQSN0z4lWz/yc36ewrTCzttK/q +FvlaPOKh+T1o6wIhAP0oKKA+cicsDy3Y3n+VlP8eB3PBzMkhvW/9ISXCw+VB +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX+gAwIBAgIRAMs8YXVBoBNuXUjqfCoX7y4wCgYIKoZIzj0EAwIwSzEL +MAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVjaG5vbG9naWVzMR0wGwYD +VQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDAgFw0yMzAxMDEwMDAwMDBaGA8yMDUy +MTIzMTIzNTk1OVowSzELMAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVj +aG5vbG9naWVzMR0wGwYDVQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABD2LHHAQqYbdR1WZluertM30rWhorYavWmMVa4nd +X9PZwuREpLQ4m1nElqQKMnRE8/4C+Rqwiav+mpI4kxd5e5ujQjBAMB0GA1UdDgQW +BBS3ZZjyGlhZ99N1vLoTPXVUa4ZEYDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAoD+R6kolIWaNJz4hz03D3ges3GbMB +jAWpkOUg9ayFgwIgbEw7AYSyk68OvxgXezgndTRTEuSWT+fdRnLaBNsaTw0= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICWzCCAb2gAwIBAgIQCp16Ddg/PMH42DNlwp7NujAKBggqhkjOPQQDAzBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZFSVRJQU4gRklETyBSb290IENBMCAXDTI1MDEwMTAwMDAwMFoYDzIxMDAx +MjMxMjM1OTU5WjBJMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxGzAZBgNVBAMMEkZFSVRJQU4gRklETyBDQSAwNjB2MBAGByqGSM49 +AgEGBSuBBAAiA2IABA7a+dmMNMIOEodscRq9wvbhc2U9rXAd0CCKJ+wgJKpzcvSG +4L7oe7g03yIMRf8pnPrN3dAGE7Nf3aT9QQzxzv9fAYUKtYFjRwcYFEtVfiHG5Qp4 +W0Q28yu0JF+JsCmKU6NmMGQwHQYDVR0OBBYEFAeLKS9juH2fssAqHmqAEdsGvpoy +MB8GA1UdIwQYMBaAFJO8ZrgzkR6sLleB0jHWCy3Sed7PMBIGA1UdEwEB/wQIMAYB +Af8CAQAwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA4GLADCBhwJCAQq6Mj3H +iY7PV2wvD6VortW/lpofG9ckfHfoBzGe+fe6Cya1xY5O/PaVxvb8qvCCb0qxOTN+ +cIC4iHulfXlf/FNyAkFnLht+0AMxF/KloiV9m8pfNC9ySYdTJyNU/545oBKTRbFa +/Ve5SX77l6tOTO/6wmhDTp/bh6NVdW4IhL4kPI6woA== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURP +IDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNV +BAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqV +OxztTJVN19vtdqcL7tKQeol2nnM2/yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVh +eO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAf +BgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAMBgNVHRMEBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB+QBBaVGsdHy +0s5RMxlkzpSX/zSyTZmUpQIgB2wJ6nZRM8oX/nA43Rh6SJovM2XwCCH//+LirBAb +B0M= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_authenticator.pem new file mode 100644 index 0000000..6e1ed74 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_authenticator.pem @@ -0,0 +1,40 @@ +Feitian BioPass FIDO2 Authenticator +----------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQGBUrQbdDrm20FZnDsX2CBTAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIDHSb2mbNDAUNXvpPU0oWKeNye0fQ2l9 +D01AR2+sLZdhAiEAo3wz684IFMVsCCRmuJqxH6FQRESNqezuo1E+KkGxWuM= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURP +IDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNV +BAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqV +OxztTJVN19vtdqcL7tKQeol2nnM2/yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVh +eO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAf +BgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAMBgNVHRMEBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB+QBBaVGsdHy +0s5RMxlkzpSX/zSyTZmUpQIgB2wJ6nZRM8oX/nA43Rh6SJovM2XwCCH//+LirBAb +B0M= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQFZ97ws2JGPEoa5NI+p8z1jAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIQC3sT1lBjGeF+xKTpzV1KYU2ckahTd4 +mLJyzYOhaHv4igIgD2JYkfyH5Q4Bpo8rroO0It7oYjF2kgy/eSZ3U9Glaqw= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_plus_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_plus_authenticator.pem new file mode 100644 index 0000000..25d670c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_plus_authenticator.pem @@ -0,0 +1,41 @@ +Feitian BioPass FIDO2 Plus Authenticator +---------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB2TCCAX6gAwIBAgIQFQNKW+7zbg/7d+lTyrIWwDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0kAMEYCIQCB0NFQSN0z4lWz/yc36ewrTCzttK/q +FvlaPOKh+T1o6wIhAP0oKKA+cicsDy3Y3n+VlP8eB3PBzMkhvW/9ISXCw+VB +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX+gAwIBAgIRAMs8YXVBoBNuXUjqfCoX7y4wCgYIKoZIzj0EAwIwSzEL +MAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVjaG5vbG9naWVzMR0wGwYD +VQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDAgFw0yMzAxMDEwMDAwMDBaGA8yMDUy +MTIzMTIzNTk1OVowSzELMAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVj +aG5vbG9naWVzMR0wGwYDVQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABD2LHHAQqYbdR1WZluertM30rWhorYavWmMVa4nd +X9PZwuREpLQ4m1nElqQKMnRE8/4C+Rqwiav+mpI4kxd5e5ujQjBAMB0GA1UdDgQW +BBS3ZZjyGlhZ99N1vLoTPXVUa4ZEYDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAoD+R6kolIWaNJz4hz03D3ges3GbMB +jAWpkOUg9ayFgwIgbEw7AYSyk68OvxgXezgndTRTEuSWT+fdRnLaBNsaTw0= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQBTmk3ZwilFXjsZywHDnMgDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIByRz4OAlRZ9Hz9KV7g2QNtC0C8JxH/x +LJY8FZEmtJ3sAiEAsreT0+eNkNcUjI9h5OPCoH6NmsOkgvEABJZrF07ADkY= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_plus_enterprise_profile.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_plus_enterprise_profile.pem new file mode 100644 index 0000000..585b3fb --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_plus_enterprise_profile.pem @@ -0,0 +1,41 @@ +Feitian BioPass FIDO2 Plus (Enterprise Profile) +----------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQBTmk3ZwilFXjsZywHDnMgDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIByRz4OAlRZ9Hz9KV7g2QNtC0C8JxH/x +LJY8FZEmtJ3sAiEAsreT0+eNkNcUjI9h5OPCoH6NmsOkgvEABJZrF07ADkY= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX+gAwIBAgIRAMs8YXVBoBNuXUjqfCoX7y4wCgYIKoZIzj0EAwIwSzEL +MAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVjaG5vbG9naWVzMR0wGwYD +VQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDAgFw0yMzAxMDEwMDAwMDBaGA8yMDUy +MTIzMTIzNTk1OVowSzELMAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVj +aG5vbG9naWVzMR0wGwYDVQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABD2LHHAQqYbdR1WZluertM30rWhorYavWmMVa4nd +X9PZwuREpLQ4m1nElqQKMnRE8/4C+Rqwiav+mpI4kxd5e5ujQjBAMB0GA1UdDgQW +BBS3ZZjyGlhZ99N1vLoTPXVUa4ZEYDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAoD+R6kolIWaNJz4hz03D3ges3GbMB +jAWpkOUg9ayFgwIgbEw7AYSyk68OvxgXezgndTRTEuSWT+fdRnLaBNsaTw0= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2TCCAX6gAwIBAgIQFQNKW+7zbg/7d+lTyrIWwDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0kAMEYCIQCB0NFQSN0z4lWz/yc36ewrTCzttK/q +FvlaPOKh+T1o6wIhAP0oKKA+cicsDy3Y3n+VlP8eB3PBzMkhvW/9ISXCw+VB +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_pro_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_pro_authenticator.pem new file mode 100644 index 0000000..70699d9 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_pro_authenticator.pem @@ -0,0 +1,41 @@ +Feitian BioPass FIDO2 Pro Authenticator +--------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQBTmk3ZwilFXjsZywHDnMgDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIByRz4OAlRZ9Hz9KV7g2QNtC0C8JxH/x +LJY8FZEmtJ3sAiEAsreT0+eNkNcUjI9h5OPCoH6NmsOkgvEABJZrF07ADkY= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2TCCAX6gAwIBAgIQFQNKW+7zbg/7d+lTyrIWwDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0kAMEYCIQCB0NFQSN0z4lWz/yc36ewrTCzttK/q +FvlaPOKh+T1o6wIhAP0oKKA+cicsDy3Y3n+VlP8eB3PBzMkhvW/9ISXCw+VB +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX+gAwIBAgIRAMs8YXVBoBNuXUjqfCoX7y4wCgYIKoZIzj0EAwIwSzEL +MAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVjaG5vbG9naWVzMR0wGwYD +VQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDAgFw0yMzAxMDEwMDAwMDBaGA8yMDUy +MTIzMTIzNTk1OVowSzELMAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVj +aG5vbG9naWVzMR0wGwYDVQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABD2LHHAQqYbdR1WZluertM30rWhorYavWmMVa4nd +X9PZwuREpLQ4m1nElqQKMnRE8/4C+Rqwiav+mpI4kxd5e5ujQjBAMB0GA1UdDgQW +BBS3ZZjyGlhZ99N1vLoTPXVUa4ZEYDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAoD+R6kolIWaNJz4hz03D3ges3GbMB +jAWpkOUg9ayFgwIgbEw7AYSyk68OvxgXezgndTRTEuSWT+fdRnLaBNsaTw0= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_pro_enterprise_profile.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_pro_enterprise_profile.pem new file mode 100644 index 0000000..1793aa9 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido2_pro_enterprise_profile.pem @@ -0,0 +1,41 @@ +Feitian BioPass FIDO2 Pro (Enterprise Profile) +---------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB2TCCAX6gAwIBAgIQFQNKW+7zbg/7d+lTyrIWwDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0kAMEYCIQCB0NFQSN0z4lWz/yc36ewrTCzttK/q +FvlaPOKh+T1o6wIhAP0oKKA+cicsDy3Y3n+VlP8eB3PBzMkhvW/9ISXCw+VB +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQBTmk3ZwilFXjsZywHDnMgDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIByRz4OAlRZ9Hz9KV7g2QNtC0C8JxH/x +LJY8FZEmtJ3sAiEAsreT0+eNkNcUjI9h5OPCoH6NmsOkgvEABJZrF07ADkY= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX+gAwIBAgIRAMs8YXVBoBNuXUjqfCoX7y4wCgYIKoZIzj0EAwIwSzEL +MAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVjaG5vbG9naWVzMR0wGwYD +VQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDAgFw0yMzAxMDEwMDAwMDBaGA8yMDUy +MTIzMTIzNTk1OVowSzELMAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVj +aG5vbG9naWVzMR0wGwYDVQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABD2LHHAQqYbdR1WZluertM30rWhorYavWmMVa4nd +X9PZwuREpLQ4m1nElqQKMnRE8/4C+Rqwiav+mpI4kxd5e5ujQjBAMB0GA1UdDgQW +BBS3ZZjyGlhZ99N1vLoTPXVUa4ZEYDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAoD+R6kolIWaNJz4hz03D3ges3GbMB +jAWpkOUg9ayFgwIgbEw7AYSyk68OvxgXezgndTRTEuSWT+fdRnLaBNsaTw0= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido_security_key.pem new file mode 100644 index 0000000..090ca22 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_biopass_fido_security_key.pem @@ -0,0 +1,14 @@ +Feitian BioPass FIDO Security Key +--------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURP +IDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNV +BAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqV +OxztTJVN19vtdqcL7tKQeol2nnM2/yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVh +eO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAf +BgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAMBgNVHRMEBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB+QBBaVGsdHy +0s5RMxlkzpSX/zSyTZmUpQIgB2wJ6nZRM8oX/nA43Rh6SJovM2XwCCH//+LirBAb +B0M= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido2_authenticator.pem new file mode 100644 index 0000000..1f22bd6 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido2_authenticator.pem @@ -0,0 +1,40 @@ +Feitian ePass FIDO2 Authenticator +--------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQGBUrQbdDrm20FZnDsX2CBTAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIDHSb2mbNDAUNXvpPU0oWKeNye0fQ2l9 +D01AR2+sLZdhAiEAo3wz684IFMVsCCRmuJqxH6FQRESNqezuo1E+KkGxWuM= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQFZ97ws2JGPEoa5NI+p8z1jAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIQC3sT1lBjGeF+xKTpzV1KYU2ckahTd4 +mLJyzYOhaHv4igIgD2JYkfyH5Q4Bpo8rroO0It7oYjF2kgy/eSZ3U9Glaqw= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURP +IDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNV +BAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqV +OxztTJVN19vtdqcL7tKQeol2nnM2/yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVh +eO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAf +BgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAMBgNVHRMEBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB+QBBaVGsdHy +0s5RMxlkzpSX/zSyTZmUpQIgB2wJ6nZRM8oX/nA43Rh6SJovM2XwCCH//+LirBAb +B0M= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido2_nfc_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido2_nfc_authenticator.pem new file mode 100644 index 0000000..679d5db --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido2_nfc_authenticator.pem @@ -0,0 +1,40 @@ +Feitian ePass FIDO2-NFC Authenticator +------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQGBUrQbdDrm20FZnDsX2CBTAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIDHSb2mbNDAUNXvpPU0oWKeNye0fQ2l9 +D01AR2+sLZdhAiEAo3wz684IFMVsCCRmuJqxH6FQRESNqezuo1E+KkGxWuM= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURP +IDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNV +BAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqV +OxztTJVN19vtdqcL7tKQeol2nnM2/yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVh +eO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAf +BgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAMBgNVHRMEBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB+QBBaVGsdHy +0s5RMxlkzpSX/zSyTZmUpQIgB2wJ6nZRM8oX/nA43Rh6SJovM2XwCCH//+LirBAb +B0M= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQFZ97ws2JGPEoa5NI+p8z1jAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIQC3sT1lBjGeF+xKTpzV1KYU2ckahTd4 +mLJyzYOhaHv4igIgD2JYkfyH5Q4Bpo8rroO0It7oYjF2kgy/eSZ3U9Glaqw= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido2_nfc_plus_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido2_nfc_plus_authenticator.pem new file mode 100644 index 0000000..ca26304 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido2_nfc_plus_authenticator.pem @@ -0,0 +1,40 @@ +Feitian ePass FIDO2-NFC Plus Authenticator +------------------------------------------ + +-----BEGIN CERTIFICATE----- +MIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURP +IDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNV +BAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqV +OxztTJVN19vtdqcL7tKQeol2nnM2/yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVh +eO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAf +BgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAMBgNVHRMEBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB+QBBaVGsdHy +0s5RMxlkzpSX/zSyTZmUpQIgB2wJ6nZRM8oX/nA43Rh6SJovM2XwCCH//+LirBAb +B0M= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQFZ97ws2JGPEoa5NI+p8z1jAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIQC3sT1lBjGeF+xKTpzV1KYU2ckahTd4 +mLJyzYOhaHv4igIgD2JYkfyH5Q4Bpo8rroO0It7oYjF2kgy/eSZ3U9Glaqw= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQGBUrQbdDrm20FZnDsX2CBTAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIDHSb2mbNDAUNXvpPU0oWKeNye0fQ2l9 +D01AR2+sLZdhAiEAo3wz684IFMVsCCRmuJqxH6FQRESNqezuo1E+KkGxWuM= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido2_nfc_series_ctap2_1_ctap2_0_u2f.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido2_nfc_series_ctap2_1_ctap2_0_u2f.pem new file mode 100644 index 0000000..0a4a008 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido2_nfc_series_ctap2_1_ctap2_0_u2f.pem @@ -0,0 +1,41 @@ +Feitian ePass FIDO2-NFC Series (CTAP2.1, CTAP2.0, U2F) +------------------------------------------------------ + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX+gAwIBAgIRAMs8YXVBoBNuXUjqfCoX7y4wCgYIKoZIzj0EAwIwSzEL +MAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVjaG5vbG9naWVzMR0wGwYD +VQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDAgFw0yMzAxMDEwMDAwMDBaGA8yMDUy +MTIzMTIzNTk1OVowSzELMAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVj +aG5vbG9naWVzMR0wGwYDVQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABD2LHHAQqYbdR1WZluertM30rWhorYavWmMVa4nd +X9PZwuREpLQ4m1nElqQKMnRE8/4C+Rqwiav+mpI4kxd5e5ujQjBAMB0GA1UdDgQW +BBS3ZZjyGlhZ99N1vLoTPXVUa4ZEYDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAoD+R6kolIWaNJz4hz03D3ges3GbMB +jAWpkOUg9ayFgwIgbEw7AYSyk68OvxgXezgndTRTEuSWT+fdRnLaBNsaTw0= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2TCCAX6gAwIBAgIQFQNKW+7zbg/7d+lTyrIWwDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0kAMEYCIQCB0NFQSN0z4lWz/yc36ewrTCzttK/q +FvlaPOKh+T1o6wIhAP0oKKA+cicsDy3Y3n+VlP8eB3PBzMkhvW/9ISXCw+VB +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQBTmk3ZwilFXjsZywHDnMgDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIByRz4OAlRZ9Hz9KV7g2QNtC0C8JxH/x +LJY8FZEmtJ3sAiEAsreT0+eNkNcUjI9h5OPCoH6NmsOkgvEABJZrF07ADkY= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_authenticator_ctap2_1_ctap2_0_u2f.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_authenticator_ctap2_1_ctap2_0_u2f.pem new file mode 100644 index 0000000..a30bd13 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_authenticator_ctap2_1_ctap2_0_u2f.pem @@ -0,0 +1,41 @@ +Feitian ePass FIDO Authenticator (CTAP2.1, CTAP2.0, U2F) +-------------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB2TCCAX6gAwIBAgIQFQNKW+7zbg/7d+lTyrIWwDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0kAMEYCIQCB0NFQSN0z4lWz/yc36ewrTCzttK/q +FvlaPOKh+T1o6wIhAP0oKKA+cicsDy3Y3n+VlP8eB3PBzMkhvW/9ISXCw+VB +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQBTmk3ZwilFXjsZywHDnMgDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIByRz4OAlRZ9Hz9KV7g2QNtC0C8JxH/x +LJY8FZEmtJ3sAiEAsreT0+eNkNcUjI9h5OPCoH6NmsOkgvEABJZrF07ADkY= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX+gAwIBAgIRAMs8YXVBoBNuXUjqfCoX7y4wCgYIKoZIzj0EAwIwSzEL +MAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVjaG5vbG9naWVzMR0wGwYD +VQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDAgFw0yMzAxMDEwMDAwMDBaGA8yMDUy +MTIzMTIzNTk1OVowSzELMAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVj +aG5vbG9naWVzMR0wGwYDVQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABD2LHHAQqYbdR1WZluertM30rWhorYavWmMVa4nd +X9PZwuREpLQ4m1nElqQKMnRE8/4C+Rqwiav+mpI4kxd5e5ujQjBAMB0GA1UdDgQW +BBS3ZZjyGlhZ99N1vLoTPXVUa4ZEYDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAoD+R6kolIWaNJz4hz03D3ges3GbMB +jAWpkOUg9ayFgwIgbEw7AYSyk68OvxgXezgndTRTEuSWT+fdRnLaBNsaTw0= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_nfc_ctap2_1_ctap2_0_u2f.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_nfc_ctap2_1_ctap2_0_u2f.pem new file mode 100644 index 0000000..7b569ae --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_nfc_ctap2_1_ctap2_0_u2f.pem @@ -0,0 +1,47 @@ +Feitian ePass FIDO-NFC(CTAP2.1, CTAP2.0, U2F) +--------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICXDCCAb2gAwIBAgIQGgHtUVunmiOu21qJLyxioDAKBggqhkjOPQQDAzBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZFSVRJQU4gRklETyBSb290IENBMCAXDTI1MDEwMTAwMDAwMFoYDzIxMDAx +MjMxMjM1OTU5WjBJMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxGzAZBgNVBAMMEkZFSVRJQU4gRklETyBDQSAwMjB2MBAGByqGSM49 +AgEGBSuBBAAiA2IABG0OZ69KtZqwmDohBSGKot0fYRjFrEqY34VZprPAWqWjIEQh +zfuA54fFGQi4GrAcLT7Sft0bLebn+qaA5aLtQcIGJP6v9NSI/+AMJSu7/z0HXUYT +JIrqVpFjRy+MywvisKNmMGQwHQYDVR0OBBYEFCjAzgTmgPdfCzUEFtuUi6NVy3BI +MB8GA1UdIwQYMBaAFJO8ZrgzkR6sLleB0jHWCy3Sed7PMBIGA1UdEwEB/wQIMAYB +Af8CAQAwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA4GMADCBiAJCAXCYCGMW +HV2q6wvG2pleGesIcPfUwj6k1czgr+nHcnMwaLdqAD0/+pfMErJpHjLaChhRdzqM +mcDTsISjjkk8bSdzAkIB2ASq9dvNLmdVI6JaPx/YmABuzwHt8tCiFzNn+589bF+B +C9ztP3x3zM4egCwPK8v06S7bMphPDzu2BrOXP6YSkGQ= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2TCCAX6gAwIBAgIQFQNKW+7zbg/7d+lTyrIWwDAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTIyMDYwODAwMDAwMFoYDzIwNTIw +NjA3MjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0kAMEYCIQCB0NFQSN0z4lWz/yc36ewrTCzttK/q +FvlaPOKh+T1o6wIhAP0oKKA+cicsDy3Y3n+VlP8eB3PBzMkhvW/9ISXCw+VB +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICXzCCAcGgAwIBAgIQZlrgX7hufvlliU/zGXhixDAKBggqhkjOPQQDBDBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZFSVRJQU4gRklETyBSb290IENBMCAXDTI1MDEwMTAwMDAwMFoYDzIxMjQx +MjMxMjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZFSVRJQU4gRklETyBSb290IENBMIGbMBAGByqG +SM49AgEGBSuBBAAjA4GGAAQAM3K4RlbgKxBsfCjGUQtSK61JCaoM+ZlXBa8SxOHw +AIqbHa1+i7Eo23RGxrfBx8eUBDeEwSLY6yNhMsYMcnhzX8ABea2GAy5Ayd/0o0yT +Xt4NKOgRVktuW7fbAKpOobAerDk7rNOFj5KIafcXym4xAfDpXEPILiqXFpyyRrRM +k/MDayOjQjBAMB0GA1UdDgQWBBSTvGa4M5EerC5XgdIx1gst0nnezzAPBgNVHRMB +Af8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDBAOBiwAwgYcCQgFe +RCXIxI4lhsJs76K+ZVFWh3bTmcrYE4y36Xda89LG1WjcxmKv1AQuqFN3PQloxRjf +xfhFOqLkq5kGwHR2Sasc8AJBSeUNSjsGUtOObL6E9l1Zf9wk7RSWxHtlsH0GjSrF +0Cb2GWI02VKLWWPweXZSInZpwlNzrCBENpcDm14/OyUPWUg= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_nfc_enterprise_profile_ctap2_1_ctap2_0_u2f.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_nfc_enterprise_profile_ctap2_1_ctap2_0_u2f.pem new file mode 100644 index 0000000..cd52fe0 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_nfc_enterprise_profile_ctap2_1_ctap2_0_u2f.pem @@ -0,0 +1,47 @@ +Feitian ePass FIDO-NFC (Enterprise Profile) (CTAP2.1, CTAP2.0, U2F) +------------------------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICXzCCAcGgAwIBAgIQYz/WquPGwjhx9kZGw8AztTAKBggqhkjOPQQDBDBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZFSVRJQU4gRklETyBFQSBSb290MCAXDTI1MDEwMTAwMDAwMFoYDzIxMjQx +MjMxMjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZFSVRJQU4gRklETyBFQSBSb290MIGbMBAGByqG +SM49AgEGBSuBBAAjA4GGAAQAwm/HbN+icnGllPk+jE6WaC4PPgEwTiFtv1HMNVIP +m4LN2I48135T/e08eOym1Cyw7oLuACzj9hpHZ71/+RSGpzIBorebtFOS4h+MxMpE +yKR1SZb1e8gAT1KOmmrodwEhhPRiCga69yonZrK7xLgXOja6t+qGcIGpOZKpaPzG +dTdST1WjQjBAMB0GA1UdDgQWBBTgRW8yfjPdVoWWue+K3Bs+XvaUBDAPBgNVHRMB +Af8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDBAOBiwAwgYcCQgEk +uc2+EnwH2pCwhDOXzZJR/W6ClQ4rNxqKzN5/TNMahKOUgmAD1/Webjd1yXjHbgvt +odfNmfmWNnMvQ9d13oSojQJBE0BE8bFTgWbKdU1KkjWHPFvlxKydDgftLR5LrhTe +FVIfqKGSfqz8uggqEydPay8uWM5eGy7G7RQye5ryTJ6WxIA= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX+gAwIBAgIRAMs8YXVBoBNuXUjqfCoX7y4wCgYIKoZIzj0EAwIwSzEL +MAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVjaG5vbG9naWVzMR0wGwYD +VQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDAgFw0yMzAxMDEwMDAwMDBaGA8yMDUy +MTIzMTIzNTk1OVowSzELMAkGA1UEBhMCVVMxHTAbBgNVBAoMFEZlaXRpYW4gVGVj +aG5vbG9naWVzMR0wGwYDVQQDDBRGZWl0aWFuIEZJRE8gRUEgUm9vdDBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABD2LHHAQqYbdR1WZluertM30rWhorYavWmMVa4nd +X9PZwuREpLQ4m1nElqQKMnRE8/4C+Rqwiav+mpI4kxd5e5ujQjBAMB0GA1UdDgQW +BBS3ZZjyGlhZ99N1vLoTPXVUa4ZEYDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAoD+R6kolIWaNJz4hz03D3ges3GbMB +jAWpkOUg9ayFgwIgbEw7AYSyk68OvxgXezgndTRTEuSWT+fdRnLaBNsaTw0= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICWTCCAbugAwIBAgIQKa7u5u13vYmO6A6+k2chhTAKBggqhkjOPQQDAzBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZFSVRJQU4gRklETyBFQSBSb290MCAXDTI1MDEwMTAwMDAwMFoYDzIxMDAx +MjMxMjM1OTU5WjBHMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxGTAXBgNVBAMMEEZFSVRJQU4gRUEgQ0EgMDIwdjAQBgcqhkjOPQIB +BgUrgQQAIgNiAAS/dY9WUiVhoR6A7qGecjHeSuu9HwjHdEt/iOGcPPdSyhlwajDV +F68t9wMN8/5vlIaeKO0rRnFQnmGmmuUouerP2oPJwK+TuLfwDAarqbIHjWRsFuOy +b9z5fckfMfz2QEijZjBkMB0GA1UdDgQWBBSdR5BF7JygJOAF/KB+LlyBMQUBIjAf +BgNVHSMEGDAWgBTgRW8yfjPdVoWWue+K3Bs+XvaUBDASBgNVHRMBAf8ECDAGAQH/ +AgEAMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwOBiwAwgYcCQgHBtwZDhaMN +Xywzb4hvQx7LNaQW6KxxDO35X0/Bo/Or0GhGuoKiKGn+2pPe4LuSKDH5w6n68Ek8 +3Gq54uH6HuB59gJBV6Mu2oZfNmTG0I8z4nr0OlGnjO3YF46TiFUnx0XDbOqisoCr +7TtFVlIXhminPw5T449yqhfpuEBpRqVndw59CUs= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_nfc_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_nfc_security_key.pem new file mode 100644 index 0000000..e37dd50 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_nfc_security_key.pem @@ -0,0 +1,14 @@ +Feitian ePass FIDO-NFC Security Key +----------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURP +IDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNV +BAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqV +OxztTJVN19vtdqcL7tKQeol2nnM2/yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVh +eO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAf +BgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAMBgNVHRMEBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB+QBBaVGsdHy +0s5RMxlkzpSX/zSyTZmUpQIgB2wJ6nZRM8oX/nA43Rh6SJovM2XwCCH//+LirBAb +B0M= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_security_key.pem new file mode 100644 index 0000000..1fd2313 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_epass_fido_security_key.pem @@ -0,0 +1,14 @@ +Feitian ePass FIDO Security Key +------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURP +IDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNV +BAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqV +OxztTJVN19vtdqcL7tKQeol2nnM2/yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVh +eO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAf +BgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAMBgNVHRMEBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB+QBBaVGsdHy +0s5RMxlkzpSX/zSyTZmUpQIgB2wJ6nZRM8oX/nA43Rh6SJovM2XwCCH//+LirBAb +B0M= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_fido_smart_card.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_fido_smart_card.pem new file mode 100644 index 0000000..cd50d6f --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_fido_smart_card.pem @@ -0,0 +1,40 @@ +Feitian FIDO Smart Card +----------------------- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQGBUrQbdDrm20FZnDsX2CBTAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIDHSb2mbNDAUNXvpPU0oWKeNye0fQ2l9 +D01AR2+sLZdhAiEAo3wz684IFMVsCCRmuJqxH6FQRESNqezuo1E+KkGxWuM= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURP +IDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNV +BAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqV +OxztTJVN19vtdqcL7tKQeol2nnM2/yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVh +eO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAf +BgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAMBgNVHRMEBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB+QBBaVGsdHy +0s5RMxlkzpSX/zSyTZmUpQIgB2wJ6nZRM8oX/nA43Rh6SJovM2XwCCH//+LirBAb +B0M= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQFZ97ws2JGPEoa5NI+p8z1jAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIQC3sT1lBjGeF+xKTpzV1KYU2ckahTd4 +mLJyzYOhaHv4igIgD2JYkfyH5Q4Bpo8rroO0It7oYjF2kgy/eSZ3U9Glaqw= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_iepass_fido_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_iepass_fido_authenticator.pem new file mode 100644 index 0000000..bbf70f1 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_iepass_fido_authenticator.pem @@ -0,0 +1,40 @@ +Feitian iePass FIDO Authenticator +--------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURP +IDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNV +BAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqV +OxztTJVN19vtdqcL7tKQeol2nnM2/yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVh +eO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAf +BgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAMBgNVHRMEBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB+QBBaVGsdHy +0s5RMxlkzpSX/zSyTZmUpQIgB2wJ6nZRM8oX/nA43Rh6SJovM2XwCCH//+LirBAb +B0M= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQFZ97ws2JGPEoa5NI+p8z1jAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIQC3sT1lBjGeF+xKTpzV1KYU2ckahTd4 +mLJyzYOhaHv4igIgD2JYkfyH5Q4Bpo8rroO0It7oYjF2kgy/eSZ3U9Glaqw= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQGBUrQbdDrm20FZnDsX2CBTAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIDHSb2mbNDAUNXvpPU0oWKeNye0fQ2l9 +D01AR2+sLZdhAiEAo3wz684IFMVsCCRmuJqxH6FQRESNqezuo1E+KkGxWuM= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/feitian_multipass_fido_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/feitian_multipass_fido_security_key.pem new file mode 100644 index 0000000..ac43751 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/feitian_multipass_fido_security_key.pem @@ -0,0 +1,14 @@ +Feitian MultiPass FIDO Security Key +----------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURP +IDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNV +BAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqV +OxztTJVN19vtdqcL7tKQeol2nnM2/yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVh +eO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAf +BgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAMBgNVHRMEBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB+QBBaVGsdHy +0s5RMxlkzpSX/zSyTZmUpQIgB2wJ6nZRM8oX/nA43Rh6SJovM2XwCCH//+LirBAb +B0M= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/fido_alliance_truu_sample_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/fido_alliance_truu_sample_fido2_authenticator.pem new file mode 100644 index 0000000..a8109ec --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/fido_alliance_truu_sample_fido2_authenticator.pem @@ -0,0 +1,40 @@ +FIDO Alliance TruU Sample FIDO2 Authenticator +--------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICSzCCAfKgAwIBAgIUW3XK8yywbAWliglixIF63dvqYy8wCgYIKoZIzj0EAwIw +fDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCENvbG9yYWRvMQ8wDQYDVQQHDAZEZW52 +ZXIxEzARBgNVBAoMClRydVUsIEluYy4xIjAgBgNVBAsMGUF1dGhlbnRpY2F0b3Ig +QXR0ZXN0YXRpb24xEDAOBgNVBAMMB3RydXUuYWkwIBcNMjMxMTAzMjAzNjUxWhgP +MjA1MzEwMjYyMDM2NTFaMHwxCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhDb2xvcmFk +bzEPMA0GA1UEBwwGRGVudmVyMRMwEQYDVQQKDApUcnVVLCBJbmMuMSIwIAYDVQQL +DBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMRAwDgYDVQQDDAd0cnV1LmFpMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAENAvbtccMr7j/SRWmqIEZTRWNJyj6msYr +5lGeAgdSGyC9O0356RIecuaViOqz0DxgS1f/5KPbZp1t0yD2fVRX96NQME4wHQYD +VR0OBBYEFA5tL10g88t2qXlPlhISI2dIzlaVMB8GA1UdIwQYMBaAFA5tL10g88t2 +qXlPlhISI2dIzlaVMAwGA1UdEwEB/wQCMAAwCgYIKoZIzj0EAwIDRwAwRAIgXfuv +jsp+4v5iGOqngUgOg1hmbgFPFMgIjyWxCKqw/d8CIFimLNXLDIwA+oIbP1yOfqE8 +xk6q7/4LWOVYkRALoBC2 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 +MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 +RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT +gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm +KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd +QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ +XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o +LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU +RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp +jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK +6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX +mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs +Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH +WD9f +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/fido_keypass_s3.pem b/restricted/WebAuthn/rootCertificates/mds/fido_keypass_s3.pem new file mode 100644 index 0000000..a8b8768 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/fido_keypass_s3.pem @@ -0,0 +1,18 @@ +FIDO KeyPass S3 +--------------- + +-----BEGIN CERTIFICATE----- +MIICUTCCAfegAwIBAgIJANr5AJZzAkqAMAoGCCqGSM49BAMCMIGEMQswCQYDVQQG +EwJWTjELMAkGA1UECAwCTlMxDzANBgNVBAcMBkhhIE5vaTEQMA4GA1UECgwHTUtH +cm91cDEPMA0GA1UECwwGUm9vdENBMRIwEAYDVQQDDAltay5jb20udm4xIDAeBgkq +hkiG9w0BCQEWEXN1cHBvcnRAbWsuY29tLnZuMB4XDTIwMDUyMDA4MDIxM1oXDTMw +MDUxODA4MDIxM1owgYQxCzAJBgNVBAYTAlZOMQswCQYDVQQIDAJOUzEPMA0GA1UE +BwwGSGEgTm9pMRAwDgYDVQQKDAdNS0dyb3VwMQ8wDQYDVQQLDAZSb290Q0ExEjAQ +BgNVBAMMCW1rLmNvbS52bjEgMB4GCSqGSIb3DQEJARYRc3VwcG9ydEBtay5jb20u +dm4wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARxSlO51jaacrUQnz0OKmxJ60w+ +bBQIPnymEb2n1emgAAihfpyaeJHT0rUoDBOxMyFx5ge2Sencl7qE3lpGQpgOo1Aw +TjAdBgNVHQ4EFgQUWpFYQNL/yVph2dirn7c8TYJI6gAwHwYDVR0jBBgwFoAUWpFY +QNL/yVph2dirn7c8TYJI6gAwDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQDAgNIADBF +AiAhS0dx4tO2+bO/inHvw23oQB3KvLIj8nZcmrplSF+LqQIhAOlVOVXfmB0hRI6q +TR6ZO4OMeq20HkWQ1bbLNL02eyMo +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/foongtone_fido_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/foongtone_fido_authenticator.pem new file mode 100644 index 0000000..e7f59b5 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/foongtone_fido_authenticator.pem @@ -0,0 +1,16 @@ +Foongtone FIDO Authenticator +---------------------------- + +-----BEGIN CERTIFICATE----- +MIICAjCCAaegAwIBAgIUUv+y+fjLJYO39KdNRM4MB43MCJcwCgYIKoZIzj0EAwIw +dTELMAkGA1UEBhMCVFcxJjAkBgNVBAoMHUZvb25ndG9uZSBUZWNobm9sb2d5IENv +LixMdGQuMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMRowGAYD +VQQDDBFGb29uZ3RvbmUgRklETyBDQTAgFw0yNDEwMDQwMTIyMTBaGA8yMDc0MDky +MjAxMjIxMFowdTELMAkGA1UEBhMCVFcxJjAkBgNVBAoMHUZvb25ndG9uZSBUZWNo +bm9sb2d5IENvLixMdGQuMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0 +aW9uMRowGAYDVQQDDBFGb29uZ3RvbmUgRklETyBDQTBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABBssYkuMGt0H6uucEFf0v9KYCsRY3ki0VurBpHPFUZkjxj9JhqQO +K6HPiVat7LG81jCNDWNAdovs2WsDVy+UQYCjEzARMA8GA1UdEwQIMAYBAf8CAQAw +CgYIKoZIzj0EAwIDSQAwRgIhAPFbIWg753lPjWrF66PXmGsKyGzJw7D9Pi+l3rg8 +slKZAiEAuOKaiefCvbbuWDG9Xs/jJE352HadoTeCwVxJsIZKo7I= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ft_jcos_fido_fingerprint_card.pem b/restricted/WebAuthn/rootCertificates/mds/ft_jcos_fido_fingerprint_card.pem new file mode 100644 index 0000000..31588b8 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ft_jcos_fido_fingerprint_card.pem @@ -0,0 +1,40 @@ +FT-JCOS FIDO Fingerprint Card +----------------------------- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQFZ97ws2JGPEoa5NI+p8z1jAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJDTjEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEnfAKbjvMX1Ey1b6k+WQQdNVMt9JgGWyJ3PvM4BSK +5XqTfo++0oAj/4tnwyIL0HFBR9St+ktjqSXDfjiXAurs86NCMEAwHQYDVR0OBBYE +FNGhmE2Bf8O5a/YHZ71QEv6QRfFUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIQC3sT1lBjGeF+xKTpzV1KYU2ckahTd4 +mLJyzYOhaHv4igIgD2JYkfyH5Q4Bpo8rroO0It7oYjF2kgy/eSZ3U9Glaqw= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB2DCCAX6gAwIBAgIQGBUrQbdDrm20FZnDsX2CBTAKBggqhkjOPQQDAjBLMQsw +CQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNobm9sb2dpZXMxHTAbBgNV +BAMMFEZlaXRpYW4gRklETyBSb290IENBMCAXDTE4MDQwMTAwMDAwMFoYDzIwNDgw +MzMxMjM1OTU5WjBLMQswCQYDVQQGEwJVUzEdMBsGA1UECgwURmVpdGlhbiBUZWNo +bm9sb2dpZXMxHTAbBgNVBAMMFEZlaXRpYW4gRklETyBSb290IENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEsFYEEhiJuqqnMgQjSiivBjV7DGCTf4XBBH/B7uvZ +sKxXShF0L8uDISWUvcExixRs6gB3oldSrjox6L8T94NOzqNCMEAwHQYDVR0OBBYE +FEu9hyYRrRyJzwRYvnDSCIxrFiO3MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIDHSb2mbNDAUNXvpPU0oWKeNye0fQ2l9 +D01AR2+sLZdhAiEAo3wz684IFMVsCCRmuJqxH6FQRESNqezuo1E+KkGxWuM= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBfjCCASWgAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDDAxGVCBGSURP +IDAyMDAwIBcNMTYwNTAxMDAwMDAwWhgPMjA1MDA1MDEwMDAwMDBaMBcxFTATBgNV +BAMMDEZUIEZJRE8gMDIwMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNBmrRqV +OxztTJVN19vtdqcL7tKQeol2nnM2/yYgvksZnr50SKbVgIEkzHQVOu80LVEE3lVh +eO1HjggxAlT6o4WjYDBeMB0GA1UdDgQWBBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAf +BgNVHSMEGDAWgBRJFWQt1bvG3jM6XgmV/IcjNtO/CzAMBgNVHRMEBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAgNHADBEAiAwfPqgIWIUB+QBBaVGsdHy +0s5RMxlkzpSX/zSyTZmUpQIgB2wJ6nZRM8oX/nA43Rh6SJovM2XwCCH//+LirBAb +B0M= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_biopromptkeystoreandroid.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_biopromptkeystoreandroid.pem new file mode 100644 index 0000000..5205fa5 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_biopromptkeystoreandroid.pem @@ -0,0 +1,14 @@ +G+D BioPromptKeystoreAndroid +---------------------------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_emvfido_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_emvfido_authenticator.pem new file mode 100644 index 0000000..3016892 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_emvfido_authenticator.pem @@ -0,0 +1,17 @@ +G+D EMVFIDO AUTHENTICATOR +------------------------- + +-----BEGIN CERTIFICATE----- +MIICDTCCAbSgAwIBAgIEWbe/rjAKBggqhkjOPQQDAjCBjjELMAkGA1UEBhMCREUx +EDAOBgNVBAgMB0JhdmFyaWExDzANBgNVBAcMBk11bmljaDEaMBgGA1UECgwRR2ll +c2Vja2UrRGV2cmllbnQxJDAiBgNVBAsMG01vYmlsZSBTZWN1cml0eSBJbm5vdmF0 +aW9uczEaMBgGA1UEAwwRRklETy1Ub2tlbnNlcnZlcjEwHhcNMTcwOTEyMTEwOTE1 +WhcNMjcwOTEyMTEwOTE1WjCBjjELMAkGA1UEBhMCREUxEDAOBgNVBAgMB0JhdmFy +aWExDzANBgNVBAcMBk11bmljaDEaMBgGA1UECgwRR2llc2Vja2UrRGV2cmllbnQx +JDAiBgNVBAsMG01vYmlsZSBTZWN1cml0eSBJbm5vdmF0aW9uczEaMBgGA1UEAwwR +RklETy1Ub2tlbnNlcnZlcjEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR3/jIC +ILnxti2B+W5rkFVZE0lxUpCnncsMyEW2CewZ0WBHgUdVac40Ro+Shabdt52ZT/nt +5whs0C47QHBKvVzTMAoGCCqGSM49BAMCA0cAMEQCIDDquLuJGraEoVKjjlYrPPgC +pT65LC9QEjlBNLTw18JIAiAJcosa+q5evil79XiC/9qt/PObL2o/jiR+RytWLPdZ +Sw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_faceidkeychainios.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_faceidkeychainios.pem new file mode 100644 index 0000000..92243f8 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_faceidkeychainios.pem @@ -0,0 +1,14 @@ +G+D FaceIDKeychainiOS +--------------------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_facekeychainios.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_facekeychainios.pem new file mode 100644 index 0000000..f4d182f --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_facekeychainios.pem @@ -0,0 +1,14 @@ +G+D FaceKeychainiOS +------------------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_facekeystoreandroid.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_facekeystoreandroid.pem new file mode 100644 index 0000000..83c470f --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_facekeystoreandroid.pem @@ -0,0 +1,14 @@ +G+D FaceKeystoreAndroid +----------------------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_facevoicekeychainios.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_facevoicekeychainios.pem new file mode 100644 index 0000000..f076bd1 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_facevoicekeychainios.pem @@ -0,0 +1,14 @@ +G+D FaceVoiceKeychainiOS +------------------------ + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_facevoicekeystoreandroid.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_facevoicekeystoreandroid.pem new file mode 100644 index 0000000..13efbfe --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_facevoicekeystoreandroid.pem @@ -0,0 +1,14 @@ +G+D FaceVoiceKeystoreAndroid +---------------------------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_fingerprintkeychainios.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_fingerprintkeychainios.pem new file mode 100644 index 0000000..d5eec82 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_fingerprintkeychainios.pem @@ -0,0 +1,14 @@ +G+D FingerprintKeychainiOS +-------------------------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_fingerprintkeystoreandroidm.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_fingerprintkeystoreandroidm.pem new file mode 100644 index 0000000..391a97c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_fingerprintkeystoreandroidm.pem @@ -0,0 +1,14 @@ +G+D FingerprintKeystoreAndroidM +------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_motpkeychainios.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_motpkeychainios.pem new file mode 100644 index 0000000..7264a2a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_motpkeychainios.pem @@ -0,0 +1,14 @@ +G+D mOTPKeychainiOS +------------------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_motpkeystoreandroid.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_motpkeystoreandroid.pem new file mode 100644 index 0000000..dd321d7 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_motpkeystoreandroid.pem @@ -0,0 +1,14 @@ +G+D mOTPKeystoreAndroid +----------------------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_pinkeychainios.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_pinkeychainios.pem new file mode 100644 index 0000000..97dbd7a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_pinkeychainios.pem @@ -0,0 +1,14 @@ +G+D PinKeychainiOS +------------------ + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_pinkeystoreandroid.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_pinkeystoreandroid.pem new file mode 100644 index 0000000..05e2df1 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_pinkeystoreandroid.pem @@ -0,0 +1,14 @@ +G+D PinKeystoreAndroid +---------------------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_sbakeychainios.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_sbakeychainios.pem new file mode 100644 index 0000000..a081ac6 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_sbakeychainios.pem @@ -0,0 +1,14 @@ +G+D SBAKeychainiOS +------------------ + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_sbakeystoreandroid.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_sbakeystoreandroid.pem new file mode 100644 index 0000000..a25e412 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_sbakeystoreandroid.pem @@ -0,0 +1,14 @@ +G+D SBAKeystoreAndroid +---------------------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_userchoicekeystoreandroid.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_userchoicekeystoreandroid.pem new file mode 100644 index 0000000..89fcdd5 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_userchoicekeystoreandroid.pem @@ -0,0 +1,14 @@ +G+D UserChoiceKeystoreAndroid +----------------------------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_voicekeychainios.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_voicekeychainios.pem new file mode 100644 index 0000000..8fc2b33 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_voicekeychainios.pem @@ -0,0 +1,14 @@ +G+D VoiceKeychainiOS +-------------------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/g_d_voicekeystoreandroid.pem b/restricted/WebAuthn/rootCertificates/mds/g_d_voicekeystoreandroid.pem new file mode 100644 index 0000000..e0849ae --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/g_d_voicekeystoreandroid.pem @@ -0,0 +1,14 @@ +G+D VoiceKeystoreAndroid +------------------------ + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT0CBGQdPR0wCgYIKoZIzj0EAwIwVjELMAkGA1UEBhMCSU4xCzAJBgNV +BAgMAk1IMQ0wCwYDVQQHDARQVU5FMQswCQYDVQQKDAJHRDELMAkGA1UECwwCRFMx +ETAPBgNVBAMMCEFVVEhST09UMB4XDTIzMDMyNDA2MDMwOVoXDTQzMDMyNDA2MDMw +OVowVjELMAkGA1UEBhMCSU4xCzAJBgNVBAgMAk1IMQ0wCwYDVQQHDARQVU5FMQsw +CQYDVQQKDAJHRDELMAkGA1UECwwCRFMxETAPBgNVBAMMCEFVVEhST09UMFkwEwYH +KoZIzj0CAQYIKoZIzj0DAQcDQgAESIpI/dKYCDYhzwD2wSfYAOb/nNaiPcWF21vx +Zk/TgD0OJtcD+OPm64nwZdFWSEYSW7iOqnpmJyde8mgr/tnAizAKBggqhkjOPQQD +AgNJADBGAiEA3bvhazQFPwmyXlxK/xCXfh7g1X1EobLC3L+2GORxp7gCIQCfNETX +/m2BebRLXI4LMP1EQGPXFDf7Ok74U7xbiM4VkA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/gemalto_multiapp_fido_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/gemalto_multiapp_fido_authenticator.pem new file mode 100644 index 0000000..bc353ce --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/gemalto_multiapp_fido_authenticator.pem @@ -0,0 +1,27 @@ +Gemalto MultiApp FIDO Authenticator +----------------------------------- + +-----BEGIN CERTIFICATE----- +MIIECTCCAvGgAwIBAgIMR3MEC+UtMnHSFSytMA0GCSqGSIb3DQEBCwUAMGoxCzAJ +BgNVBAYTAkZSMQ4wDAYDVQQHDAVUb3VyczEQMA4GA1UECgwHR2VtYWx0bzE5MDcG +A1UEAwwwR2VtYWx0byBCdXNpbmVzcyBTb2x1dGlvbnMgQ2VydGlmaWNhdGUgQXV0 +aG9yaXR5MB4XDTE5MDUwMjE0MzU1M1oXDTI5MDUwMTE0MzY1M1owTjELMAkGA1UE +BhMCRlIxEzARBgNVBAoMCkdlbWFsdG8gU0ExDDAKBgNVBAsMA0RJUzEcMBoGA1UE +AwwTd3d3LnRoYWxlc2dyb3VwLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAK1q3MIB0ekGBbKwZ0FWKMFom1ehsAyEL1UfGXe18ZTyhyVg+Vchy/iH +9o3sq0fPCkuDy29iAPjyWWOQTf7qdS1ETq8iRpKNSxxplJkVGnSzLzK+xCDx5M4d +aHJLp88W2JO8HL0Wci8JroNm3Uz7YR+z4UU0apzObdd2lRwEE0mp1TDFJ0jxT+xa +hlzZAldf92//sWddoYRrTodc/jdefEX9bmgwHNTt3zHBJoP88yoQ12nUKHes3N2/ +qQx3HjA2+ySFfmdYAqerDej52orvA1V/Qpd87PV9DBNI0t9tB01t+6PbuPojfeqS +lNBm1kTqKyU9OKmVw8BwQEXQKmT+t0sCAwEAAaOByjCBxzASBgNVHRMBAf8ECDAG +AQH/AgEAMB0GA1UdDgQWBBQvMq30QjeHLOzWmDi53KEOg86GjDAfBgNVHSMEGDAW +gBR3VfWnLWVDUohSlYrzg23yYaA2bjAOBgNVHQ8BAf8EBAMCAQYwYQYDVR0fBFow +WDBWoFSgUoZQaHR0cDovL2NybC1icGtpLmdlbWFsdG8uY29tL0NSTC9HZW1hbHRv +QnVzaW5lc3NTb2x1dGlvbnNDZXJ0aWZpY2F0ZUF1dGhvcml0eS5jcmwwDQYJKoZI +hvcNAQELBQADggEBAHckIlQopNiBCD6mMSiEg07taoZZNVPLKASv54ZqXofxhIdo +qlqts/W5NYJ6T+/Fwhn7mSebCKnwuUhaqByVkVt7kheBIw/F6aPaAdU8YIcuL8bk +vGPvt5oQmU99buUV1pTbrEedU1RYlWLe4Etn6LSiEyKKpsDoBQBHWsJEjgVqHKFe +RkQ/WgFmGc1+wxRyKAGFothrtraw1rerK3p+BNy0GRtfMN7tOnTn2giOvtOtebMB +CYzyeRl/9XALfUC8Mw+Ooxvc51OE7lhe2yjuO3xF3SjE0ax+cWAjGQHhuIuVdfX8 +CVu/R5SG52zA9Oo4yug+cjKieAAEu2OPH+imIyM= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/goldkey_security_token.pem b/restricted/WebAuthn/rootCertificates/mds/goldkey_security_token.pem new file mode 100644 index 0000000..5e49963 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/goldkey_security_token.pem @@ -0,0 +1,15 @@ +GoldKey Security Token +---------------------- + +-----BEGIN CERTIFICATE----- +MIIBvTCCAWOgAwIBAgICEAAwCgYIKoZIzj0EAwIwXzELMAkGA1UEBhMCVVMxHDAa +BgNVBAoME0dvbGRLZXkgQ29ycG9yYXRpb24xIjAgBgNVBAsMGUF1dGhlbnRpY2F0 +b3IgQXR0ZXN0YXRpb24xDjAMBgNVBAMMBUZJRE8yMCAXDTI1MDIxMTIxMDI0MFoY +DzIwNzMwMTMwMjEwMjQwWjBfMQswCQYDVQQGEwJVUzEcMBoGA1UECgwTR29sZEtl +eSBDb3Jwb3JhdGlvbjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlv +bjEOMAwGA1UEAwwFRklETzIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS6nTtI +IuaUxvXzp0IBkeIzkmQyKUZ6yqvWFkrQdB7HEgJn664Mswc6r4WSL6Dr73doLKER +CThfwScy+QGXfd7how0wCzAJBgNVHRMEAjAAMAoGCCqGSM49BAMCA0gAMEUCIC+0 +BMz+MeAE7vP/v1n8A3NsTLPLSF+BxcjIMlUx73jTAiEAo9me3zXNhjepO4G1uvwI +Ei8j3Rch7JVxDgzNKcCNdao= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/google_titan_security_key_v2.pem b/restricted/WebAuthn/rootCertificates/mds/google_titan_security_key_v2.pem new file mode 100644 index 0000000..1fb49ac --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/google_titan_security_key_v2.pem @@ -0,0 +1,32 @@ +Google Titan Security Key v2 +---------------------------- + +-----BEGIN CERTIFICATE----- +MIICIjCCAcigAwIBAgIBAjAKBggqhkjOPQQDAjBkMQswCQYDVQQGEwJVUzEPMA0G +A1UECgwGR29vZ2xlMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9u +MSAwHgYDVQQDDBdUaXRhbiBTZWN1cml0eSBLZXkgUm9vdDAgFw0yMTEyMDExNTI2 +MzFaGA8yMTIxMTIwMjE1MjYzMVowZzELMAkGA1UEBhMCVVMxDzANBgNVBAoMBkdv +b2dsZTEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjEjMCEGA1UE +AwwaVGl0YW4gU2VjdXJpdHkgS2V5IFNpZ25pbmcwWTATBgcqhkjOPQIBBggqhkjO +PQMBBwNCAARGSX/0WmoStYfhmlzSPB4SARhmTBpPi0o3yYygS4smn/4OFdGNJdsP +xkub62pOlWe0I6cJSh9W3EAHA2ZPO+S+o2YwZDAOBgNVHQ8BAf8EBAMCAQYwEgYD +VR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQURTqQYOsPJ897X40vav+XoW+S6sgw +HwYDVR0jBBgwFoAU2d6JrFCoEZAe/LUpIMybltDsMh0wCgYIKoZIzj0EAwIDSAAw +RQIgSr3N14HdtCfj7QZ0R7kWg6I317QENb8q+fbNko6nK4oCIQD5Jh14grDc6F7g +Hib9QTv8sUs6w8gF1JYKMK+LDOYPYg== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICMjCCAdmgAwIBAgIBATAKBggqhkjOPQQDAjBkMQswCQYDVQQGEwJVUzEPMA0G +A1UECgwGR29vZ2xlMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9u +MSAwHgYDVQQDDBdUaXRhbiBTZWN1cml0eSBLZXkgUm9vdDAgFw0yMTEyMDExNTIz +NTFaGA8yMTIxMTIwMjE1MjM1MVowZDELMAkGA1UEBhMCVVMxDzANBgNVBAoMBkdv +b2dsZTEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjEgMB4GA1UE +AwwXVGl0YW4gU2VjdXJpdHkgS2V5IFJvb3QwWTATBgcqhkjOPQIBBggqhkjOPQMB +BwNCAARqmNWzcDNH63o8TzodB2jk9b49VPsfIvXpdhaWxfLayo4LBbDrXyxF3JR1 +P6W6ZsqWCEYrX0oYIxAog3hCE4ydo3oweDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU2d6JrFCoEZAe/LUpIMybltDsMh0wHwYDVR0j +BBgwFoAU2d6JrFCoEZAe/LUpIMybltDsMh0wFQYLKwYBBAGC5RwCAQEEBgQEAwIA +ADAKBggqhkjOPQQDAgNHADBEAiANIQ48/nMp2KfYNiovcyxWXJLiul4Sv+zcRJez +rd/WWAIgVucQ531fqzY7ODoK+dIDykRudvlW/yBqza/AdS0Sq6Q= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/gotrust_idem_card_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/gotrust_idem_card_fido2_authenticator.pem new file mode 100644 index 0000000..3a5aba0 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/gotrust_idem_card_fido2_authenticator.pem @@ -0,0 +1,27 @@ +GoTrust Idem Card FIDO2 Authenticator +------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBqDCCAU+gAwIBAgIBATAKBggqhkjOPQQDAjA7MSAwHgYDVQQDDBdHb1RydXN0 +IEZJRE8yIFJvb3QgQ0EgMjEXMBUGA1UECgwOR29UcnVzdElEIEluYy4wIBcNMjEw +MzAyMDYyMzE3WhgPMjA1MTAyMjMwNjIzMTdaMDsxIDAeBgNVBAMMF0dvVHJ1c3Qg +RklETzIgUm9vdCBDQSAyMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5jLjBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABA76ZyG3e+DZoW/KvM36XJAJ6BL9kXMNjEv4qGID +5lA8Z8uReM1YfMio5nEHLU2SZLQ3qXRRvxGN4I+H5+6fVw2jQjBAMA8GA1UdEwQI +MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRs+UkmM5xUk6/z5QNt +WB26i4w77DAKBggqhkjOPQQDAgNHADBEAiBA+IX5F/87W/emZkiJTHqriLFZOa79 +7zsE/0KP7AU5QgIgB64xFqPSBC4Ki1UrrNX9V2thb+45RbtSVmi66WV+glE= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBzjCCAXOgAwIBAgIJAMhV/vQYu4KAMAoGCCqGSM49BAMCMDsxIDAeBgNVBAMM +F0dvVHJ1c3QgRklETzIgUm9vdCBDQSAyMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5j +LjAeFw0xOTEyMDQwNzAzMDFaFw00OTExMjYwNzAzMDFaMDsxIDAeBgNVBAMMF0dv +VHJ1c3QgRklETzIgUm9vdCBDQSAyMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5jLjBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABJHgK9fNqNEWIYTsZ/gNi17zpErK7FC1 +Yo+FzqRVMYGUJgAJ9vg31iTCJ1VYxbAKMQblLGkVn/dfP73geTKed9OjYDBeMAwG +A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRgLXWdWer1kSGp +pgPliZi1HsYPhDAfBgNVHSMEGDAWgBRgLXWdWer1kSGppgPliZi1HsYPhDAKBggq +hkjOPQQDAgNJADBGAiEAujrKWZw+S0TfG1bJJcsqmGu5WLbB2EgorD2hA2q6BoIC +IQCiyxnvAn6Mi+DdRnw3SQGQZoLKFKwHr4XGNIO5pAHAHA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/gotrust_idem_card_u2f_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/gotrust_idem_card_u2f_authenticator.pem new file mode 100644 index 0000000..28430e7 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/gotrust_idem_card_u2f_authenticator.pem @@ -0,0 +1,27 @@ +GoTrust Idem Card U2F Authenticator +----------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBzjCCAXOgAwIBAgIJAMhV/vQYu4KAMAoGCCqGSM49BAMCMDsxIDAeBgNVBAMM +F0dvVHJ1c3QgRklETzIgUm9vdCBDQSAyMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5j +LjAeFw0xOTEyMDQwNzAzMDFaFw00OTExMjYwNzAzMDFaMDsxIDAeBgNVBAMMF0dv +VHJ1c3QgRklETzIgUm9vdCBDQSAyMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5jLjBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABJHgK9fNqNEWIYTsZ/gNi17zpErK7FC1 +Yo+FzqRVMYGUJgAJ9vg31iTCJ1VYxbAKMQblLGkVn/dfP73geTKed9OjYDBeMAwG +A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRgLXWdWer1kSGp +pgPliZi1HsYPhDAfBgNVHSMEGDAWgBRgLXWdWer1kSGppgPliZi1HsYPhDAKBggq +hkjOPQQDAgNJADBGAiEAujrKWZw+S0TfG1bJJcsqmGu5WLbB2EgorD2hA2q6BoIC +IQCiyxnvAn6Mi+DdRnw3SQGQZoLKFKwHr4XGNIO5pAHAHA== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBqDCCAU+gAwIBAgIBATAKBggqhkjOPQQDAjA7MSAwHgYDVQQDDBdHb1RydXN0 +IEZJRE8yIFJvb3QgQ0EgMjEXMBUGA1UECgwOR29UcnVzdElEIEluYy4wIBcNMjEw +MzAyMDYyMzE3WhgPMjA1MTAyMjMwNjIzMTdaMDsxIDAeBgNVBAMMF0dvVHJ1c3Qg +RklETzIgUm9vdCBDQSAyMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5jLjBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABA76ZyG3e+DZoW/KvM36XJAJ6BL9kXMNjEv4qGID +5lA8Z8uReM1YfMio5nEHLU2SZLQ3qXRRvxGN4I+H5+6fVw2jQjBAMA8GA1UdEwQI +MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRs+UkmM5xUk6/z5QNt +WB26i4w77DAKBggqhkjOPQQDAgNHADBEAiBA+IX5F/87W/emZkiJTHqriLFZOa79 +7zsE/0KP7AU5QgIgB64xFqPSBC4Ki1UrrNX9V2thb+45RbtSVmi66WV+glE= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/gotrust_idem_key_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/gotrust_idem_key_fido2_authenticator.pem new file mode 100644 index 0000000..058ad34 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/gotrust_idem_key_fido2_authenticator.pem @@ -0,0 +1,40 @@ +GoTrust Idem Key FIDO2 Authenticator +------------------------------------ + +-----BEGIN CERTIFICATE----- +MIIBqTCCAU+gAwIBAgIBATAKBggqhkjOPQQDAjA7MSAwHgYDVQQDDBdHb1RydXN0 +IEZJRE8yIFJvb3QgQ0EgMTEXMBUGA1UECgwOR29UcnVzdElEIEluYy4wIBcNMjEw +MzAyMDYxODQ4WhgPMjA1MTAyMjMwNjE4NDhaMDsxIDAeBgNVBAMMF0dvVHJ1c3Qg +RklETzIgUm9vdCBDQSAxMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5jLjBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABIzkMdtNZt0ZOzO+u1f2EKZRSnfhvywbhonBF9NS +Pq2WG7nuRi/yvZ8lDjwp5darQ6OdZg+HqbSSeXJXw7UpclSjQjBAMA8GA1UdEwQI +MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRjWxTo1Eq33ZrxfLDW +ssddbD/vZTAKBggqhkjOPQQDAgNIADBFAiB+E09GzmcYlM95qT/afnPU9q6XJmxO +SKWARO5+kgUnWgIhAIa9n5p40tcGfmeF6/WvYojANuykQqhVk8Wnfg15S69r +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBzTCCAXOgAwIBAgIJALS3SibGDXTPMAoGCCqGSM49BAMCMDsxIDAeBgNVBAMM +F0dvVHJ1c3QgRklETzIgUm9vdCBDQSAxMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5j +LjAeFw0xOTEyMDQwNjU5NDBaFw00OTExMjYwNjU5NDBaMDsxIDAeBgNVBAMMF0dv +VHJ1c3QgRklETzIgUm9vdCBDQSAxMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5jLjBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABA5mjYsjowAI0jnpi//CJ3KnzhGbTUms +tNWqN78ioG1CTK9gPgPl9UiFOJO/v+FfFK+Pxv10c604dvlIDAbKw+ijYDBeMAwG +A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSgWtY0nEcmPmGD +LuCwceKeJPScozAfBgNVHSMEGDAWgBSgWtY0nEcmPmGDLuCwceKeJPScozAKBggq +hkjOPQQDAgNIADBFAiAxoVs6qj7DX2xixCjjcDUdxBTJmSTLb0f1rRGwrABzTQIh +APt0P32qzAeepF4//tgzxqNoKkWDcaPPSXrg+xzrlVHw +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBzzCCAXagAwIBAgICASAwCgYIKoZIzj0EAwIwOzEgMB4GA1UEAwwXR29UcnVz +dCBGSURPMiBSb290IENBIDExFzAVBgNVBAoMDkdvVHJ1c3RJRCBJbmMuMCIYDzIw +MTkxMjA0MDY1OTQwWhgPMjA1MTA0MDcwMzA1MDBaMDsxIDAeBgNVBAMMF0dvVHJ1 +c3QgRklETzIgUm9vdCBDQSAxMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5jLjBZMBMG +ByqGSM49AgEGCCqGSM49AwEHA0IABA5mjYsjowAI0jnpi//CJ3KnzhGbTUmstNWq +N78ioG1CTK9gPgPl9UiFOJO/v+FfFK+Pxv10c604dvlIDAbKw+ijZjBkMBIGA1Ud +EwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSgWtY0nEcm +PmGDLuCwceKeJPScozAfBgNVHSMEGDAWgBSgWtY0nEcmPmGDLuCwceKeJPScozAK +BggqhkjOPQQDAgNHADBEAiAkrLM5V3DnD0XcVUFW+NMFcBZCO1FxyYz4VkPH3A7K +GQIgHayTfU88oIEiMNax13tgZaohhMAXEMjqTyItbcTT8Qc= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/gotrust_idem_key_u2f_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/gotrust_idem_key_u2f_authenticator.pem new file mode 100644 index 0000000..2a40190 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/gotrust_idem_key_u2f_authenticator.pem @@ -0,0 +1,40 @@ +GoTrust Idem Key U2F Authenticator +---------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBqTCCAU+gAwIBAgIBATAKBggqhkjOPQQDAjA7MSAwHgYDVQQDDBdHb1RydXN0 +IEZJRE8yIFJvb3QgQ0EgMTEXMBUGA1UECgwOR29UcnVzdElEIEluYy4wIBcNMjEw +MzAyMDYxODQ4WhgPMjA1MTAyMjMwNjE4NDhaMDsxIDAeBgNVBAMMF0dvVHJ1c3Qg +RklETzIgUm9vdCBDQSAxMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5jLjBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABIzkMdtNZt0ZOzO+u1f2EKZRSnfhvywbhonBF9NS +Pq2WG7nuRi/yvZ8lDjwp5darQ6OdZg+HqbSSeXJXw7UpclSjQjBAMA8GA1UdEwQI +MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRjWxTo1Eq33ZrxfLDW +ssddbD/vZTAKBggqhkjOPQQDAgNIADBFAiB+E09GzmcYlM95qT/afnPU9q6XJmxO +SKWARO5+kgUnWgIhAIa9n5p40tcGfmeF6/WvYojANuykQqhVk8Wnfg15S69r +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBzzCCAXagAwIBAgICASAwCgYIKoZIzj0EAwIwOzEgMB4GA1UEAwwXR29UcnVz +dCBGSURPMiBSb290IENBIDExFzAVBgNVBAoMDkdvVHJ1c3RJRCBJbmMuMCIYDzIw +MTkxMjA0MDY1OTQwWhgPMjA1MTA0MDcwMzA1MDBaMDsxIDAeBgNVBAMMF0dvVHJ1 +c3QgRklETzIgUm9vdCBDQSAxMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5jLjBZMBMG +ByqGSM49AgEGCCqGSM49AwEHA0IABA5mjYsjowAI0jnpi//CJ3KnzhGbTUmstNWq +N78ioG1CTK9gPgPl9UiFOJO/v+FfFK+Pxv10c604dvlIDAbKw+ijZjBkMBIGA1Ud +EwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSgWtY0nEcm +PmGDLuCwceKeJPScozAfBgNVHSMEGDAWgBSgWtY0nEcmPmGDLuCwceKeJPScozAK +BggqhkjOPQQDAgNHADBEAiAkrLM5V3DnD0XcVUFW+NMFcBZCO1FxyYz4VkPH3A7K +GQIgHayTfU88oIEiMNax13tgZaohhMAXEMjqTyItbcTT8Qc= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBzTCCAXOgAwIBAgIJALS3SibGDXTPMAoGCCqGSM49BAMCMDsxIDAeBgNVBAMM +F0dvVHJ1c3QgRklETzIgUm9vdCBDQSAxMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5j +LjAeFw0xOTEyMDQwNjU5NDBaFw00OTExMjYwNjU5NDBaMDsxIDAeBgNVBAMMF0dv +VHJ1c3QgRklETzIgUm9vdCBDQSAxMRcwFQYDVQQKDA5Hb1RydXN0SUQgSW5jLjBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABA5mjYsjowAI0jnpi//CJ3KnzhGbTUms +tNWqN78ioG1CTK9gPgPl9UiFOJO/v+FfFK+Pxv10c604dvlIDAbKw+ijYDBeMAwG +A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSgWtY0nEcmPmGD +LuCwceKeJPScozAfBgNVHSMEGDAWgBSgWtY0nEcmPmGDLuCwceKeJPScozAKBggq +hkjOPQQDAgNIADBFAiAxoVs6qj7DX2xixCjjcDUdxBTJmSTLb0f1rRGwrABzTQIh +APt0P32qzAeepF4//tgzxqNoKkWDcaPPSXrg+xzrlVHw +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/gstag_oak_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/gstag_oak_fido2_authenticator.pem new file mode 100644 index 0000000..14500f2 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/gstag_oak_fido2_authenticator.pem @@ -0,0 +1,19 @@ +GSTAG OAK FIDO2 Authenticator +----------------------------- + +-----BEGIN CERTIFICATE----- +MIICijCCAXKgAwIBAgIUSs2hV6BT1SYF88v6pZCiN+styj8wDQYJKoZIhvcNAQEL +BQAwIzEhMB8GA1UEAwwYR1NUQUcgVTJGIFJvb3QgQ0EgMjQwODAyMCAXDTI0MDgw +MjEzMjEwNVoYDzIwNTAwNDI4MTMyMTA1WjBVMQswCQYDVQQGEwJGUjEOMAwGA1UE +CgwFR1NUQUcxIjAgBgNVBAsMGUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xEjAQ +BgNVBAMMCU9BSyBGSURPMjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBXEGRPt +xGPY2XXaq4sIGh7jKubdV6m8+MT4CkIKfbvNWr44zuNIDbPImg4jr+0JxADzygpH +iyfx9c/NGpC7pO+jTTBLMAkGA1UdEwQCMAAwHQYDVR0OBBYEFH+45pi/IkkHyxnw +QL40cthCrFTjMB8GA1UdIwQYMBaAFPb+WPjZapIUD9lCX8o9HePx3d1sMA0GCSqG +SIb3DQEBCwUAA4IBAQAxwihOaZ03oY4nh4O1ub8wbO7VagJT7g5au1ZaHpPx/Z2n +XpMD6wbdZm9UqSbh9oaBA1c6hhICtN2EmU3URGrCThSRxKbtoAZOm8RijItM1lIl +3NIMKkhf0QvEoHTfXSIRMcwZ2UzgUjDIMz+6k7/mjjh/n3qnUimtbp//jGLyzYkK +RWV2lf7IK7tkFQsHEmI4JqJ1wKZyyAF8AbiY77rRO+AZgFci2PZn+Gr9/3JX+ycn +RemHxBBGGawSvAXnIE+UYy91HADGuFvB9Xgt6DNCPwiuoYkN9cu5juVarouYMYhk +JPLo0pYPgpl3L6PlyKjvbKu/Zxh67k4urVA+UZ8Z +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_4000.pem b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_4000.pem new file mode 100644 index 0000000..8660b61 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_4000.pem @@ -0,0 +1,21 @@ +HID Crescendo 4000 +------------------ + +-----BEGIN CERTIFICATE----- +MIIC/DCCAqGgAwIBAgIUYvCa/tQtMAHX75qVP9QiVnkV/a8wCgYIKoZIzj0EAwIw +azELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1 +dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xIzAhBgNVBAMMGkZJRE8gQXR0ZXN0YXRp +b24gUm9vdCBDQSAyMB4XDTI0MDUwMjE5MTMyMFoXDTQ5MDUwMjE5MTMyMFowZjEL +MAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1dGhl +bnRpY2F0b3IgQXR0ZXN0YXRpb24xHjAcBgNVBAMMFUZJRE8gQXR0ZXN0YXRpb24g +Q0EgNjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLR0sSaCUiQzX0YvNbsxjZPq +2oRKk1pfOelDL6AsLuZvYkkPKwlyRz8lNPrSmaVeV3gRypJl9bDf4dtmv0Mn5Yyj +ggEmMIIBIjAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNV +HSMEGDAWgBS76Dpl93vB2h5FDLvyMMvUByj3izAdBgNVHQ4EFgQUkczOMCw7hPn4 +0zZshCaasGQKvWMwRAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC5oeWRyYW50 +aWQuY29tL0ZJRE9BdHRlc3RhdGlvblJvb3RDQTIuY3JsMHYGCCsGAQUFBwEBBGow +aDA/BggrBgEFBQcwAoYzaHR0cDovL2NybC5oeWRyYW50aWQuY29tL0ZJRE9BdHRl +c3RhdGlvblJvb3RDQTIucDdjMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC5oeWRy +YW50aWQuY29tMAoGCCqGSM49BAMCA0kAMEYCIQDaEcFIm7l7bpvtQQvXvdEY/+G4 +GHYTdrnBCYf9jmOsowIhAJIyFrTMb5NIzAI//WDOsYrlkDPpfUPLixZ0a+oeCmRP +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_4000_fido.pem b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_4000_fido.pem new file mode 100644 index 0000000..57d5cea --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_4000_fido.pem @@ -0,0 +1,22 @@ +HID Crescendo 4000 FIDO +----------------------- + +-----BEGIN CERTIFICATE----- +MIIC/zCCAqSgAwIBAgIUTRlWYMKcBnPE61H9F0Q7PwPY+HYwCgYIKoZIzj0EAwIw +azELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1 +dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xIzAhBgNVBAMMGkZJRE8gQXR0ZXN0YXRp +b24gUm9vdCBDQSAyMCAXDTI1MDUxMzE2NTcwMVoYDzIwNTAwNTEzMTY1NzAxWjBn +MQswCQYDVQQGEwJVUzETMBEGA1UECgwKSElEIEdsb2JhbDEiMCAGA1UECwwZQXV0 +aGVudGljYXRvciBBdHRlc3RhdGlvbjEfMB0GA1UEAwwWRklETyBBdHRlc3RhdGlv +biBDQSAxMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMyD1LoMt6p6z1Xe/Eqa +PeEBMphdZHCyDiGfNQmUrROzIoDXPyyTEnYZS7iGsFDJ5EkAKg0I2lk2UU1KR7Lc +l3CjggEmMIIBIjAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAf +BgNVHSMEGDAWgBS76Dpl93vB2h5FDLvyMMvUByj3izAdBgNVHQ4EFgQUlvqE1DAL +DTW25gFhHU/gMlr6J1EwRAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC5oeWRy +YW50aWQuY29tL0ZJRE9BdHRlc3RhdGlvblJvb3RDQTIuY3JsMHYGCCsGAQUFBwEB +BGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NybC5oeWRyYW50aWQuY29tL0ZJRE9B +dHRlc3RhdGlvblJvb3RDQTIucDdjMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC5o +eWRyYW50aWQuY29tMAoGCCqGSM49BAMCA0kAMEYCIQCEyn00g7uPZc4mp02dLnok +alykMNoMabFrW/njo5ejuAIhALqi9VxvDvRvzytnjOjslmv0Iz5Rs8eg1LS/9jkq +sWPn +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_4000_fips.pem b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_4000_fips.pem new file mode 100644 index 0000000..51ac61e --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_4000_fips.pem @@ -0,0 +1,21 @@ +HID Crescendo 4000 FIPS +----------------------- + +-----BEGIN CERTIFICATE----- +MIIC+zCCAqGgAwIBAgIUH3hdmkpe0jJT+qaJXxb4RQ8SnDowCgYIKoZIzj0EAwIw +azELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1 +dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xIzAhBgNVBAMMGkZJRE8gQXR0ZXN0YXRp +b24gUm9vdCBDQSAyMB4XDTI0MDUwMjE5MTQ1MVoXDTQ5MDUwMjE5MTQ1MVowZjEL +MAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1dGhl +bnRpY2F0b3IgQXR0ZXN0YXRpb24xHjAcBgNVBAMMFUZJRE8gQXR0ZXN0YXRpb24g +Q0EgNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABFWABKJhPocYTubfezosakhI +Zy3fkkjercxgwf1608apC9b2+oc7lETX07fdOip6iES/ymdux0nGnL1GkNNP9bSj +ggEmMIIBIjAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNV +HSMEGDAWgBS76Dpl93vB2h5FDLvyMMvUByj3izAdBgNVHQ4EFgQUx6KUkl96yrfY +l4B0oEikNcwOqbswRAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC5oeWRyYW50 +aWQuY29tL0ZJRE9BdHRlc3RhdGlvblJvb3RDQTIuY3JsMHYGCCsGAQUFBwEBBGow +aDA/BggrBgEFBQcwAoYzaHR0cDovL2NybC5oeWRyYW50aWQuY29tL0ZJRE9BdHRl +c3RhdGlvblJvb3RDQTIucDdjMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC5oeWRy +YW50aWQuY29tMAoGCCqGSM49BAMCA0gAMEUCIE4AgWM85sibY4aPGFPB+7I9LIa1 +0t5N/fTSaOPZo/zqAiEArESuic0ol2nNKF7T+DLDyU8Cm9VRRsUpPF9VGhGaR3k= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_c2300.pem b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_c2300.pem new file mode 100644 index 0000000..0916a34 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_c2300.pem @@ -0,0 +1,22 @@ +HID Crescendo C2300 +------------------- + +-----BEGIN CERTIFICATE----- +MIIDCTCCAq+gAwIBAgIQQAFqUNSe5SWAILs8H2DS1DAKBggqhkjOPQQDAjBrMQsw +CQYDVQQGEwJVUzETMBEGA1UEChMKSElEIEdsb2JhbDEiMCAGA1UECxMZQXV0aGVu +dGljYXRvciBBdHRlc3RhdGlvbjEjMCEGA1UEAxMaRklETyBBdHRlc3RhdGlvbiBS +b290IENBIDEwHhcNMTkwNDI0MTkzMTEyWhcNNDQwNDI3MTkzMTEyWjBmMQswCQYD +VQQGEwJVUzETMBEGA1UEChMKSElEIEdsb2JhbDEiMCAGA1UECxMZQXV0aGVudGlj +YXRvciBBdHRlc3RhdGlvbjEeMBwGA1UEAxMVRklETyBBdHRlc3RhdGlvbiBDQSAx +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGhSML7cupCxTBCzsrcipwgPoz3dv +T3rBn1zakDzBg6Uc3HdGKJrVbrD+yXF6Y4ZqksUU7rbRivqOOzKxcJvPFqOCATgw +ggE0MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMIGEBggrBgEF +BQcBAQR4MHYwLgYIKwYBBQUHMAGGImh0dHA6Ly9oaWQuZmlkby5vY3NwLmlkZW50 +cnVzdC5jb20wRAYIKwYBBQUHMAKGOGh0dHA6Ly92YWxpZGF0aW9uLmlkZW50cnVz +dC5jb20vcm9vdHMvSElERklET1Jvb3RjYTEucDdjMB8GA1UdIwQYMBaAFB2m3iwW +SYHvWTHbJiHAyKDp+CSjMEcGA1UdHwRAMD4wPKA6oDiGNmh0dHA6Ly92YWxpZGF0 +aW9uLmlkZW50cnVzdC5jb20vY3JsL0hJREZJRE9Sb290Y2ExLmNybDAdBgNVHQ4E +FgQU38bQANW9dyVBkWl59BlNLD09e/QwCgYIKoZIzj0EAwIDSAAwRQIhAIUq7zvp +edfZRHtGrvJJz82R99D+Sr7bV7yrHDfBs8v6AiBaIW50j8WGVR1XHXaImNKllmRy +Nlk9klX8gTknOEtD8g== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_c3000.pem b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_c3000.pem new file mode 100644 index 0000000..603db38 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_c3000.pem @@ -0,0 +1,21 @@ +HID Crescendo C3000 +------------------- + +-----BEGIN CERTIFICATE----- +MIIC+zCCAqGgAwIBAgIUdHkZqoj6239E/8FQb+IJSuHCaFUwCgYIKoZIzj0EAwIw +azELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1 +dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xIzAhBgNVBAMMGkZJRE8gQXR0ZXN0YXRp +b24gUm9vdCBDQSAyMB4XDTIyMTEwNDIxMDkzNFoXDTQ3MTEwNDIxMDkzNFowZjEL +MAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1dGhl +bnRpY2F0b3IgQXR0ZXN0YXRpb24xHjAcBgNVBAMMFUZJRE8gQXR0ZXN0YXRpb24g +Q0EgNDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJlU/tx+AQkDersw3pJ2TCrs +rioVWg/p3I185883RPRo3yudd98jVnNtp7DiGF7sJzAjZ2i2Xb3vPUYH+u90fLmj +ggEmMIIBIjAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNV +HSMEGDAWgBS76Dpl93vB2h5FDLvyMMvUByj3izAdBgNVHQ4EFgQUDL+zpfrLud3q +pjVT+o9c5C0DX5UwRAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC5oeWRyYW50 +aWQuY29tL0ZJRE9BdHRlc3RhdGlvblJvb3RDQTIuY3JsMHYGCCsGAQUFBwEBBGow +aDA/BggrBgEFBQcwAoYzaHR0cDovL2NybC5oeWRyYW50aWQuY29tL0ZJRE9BdHRl +c3RhdGlvblJvb3RDQTIucDdjMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC5oeWRy +YW50aWQuY29tMAoGCCqGSM49BAMCA0gAMEUCIBuW9ZrNrhNIxQsdyEgNCxnJlyrY +GBu61K2xA+zAopyOAiEApwS3XRePQAVVGnTDaE2l9fzOHv0P2DPTA85392VDbjs= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_enabled.pem b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_enabled.pem new file mode 100644 index 0000000..870e534 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_enabled.pem @@ -0,0 +1,21 @@ +HID Crescendo Enabled +--------------------- + +-----BEGIN CERTIFICATE----- +MIIC+jCCAqGgAwIBAgIUB9f6weV4LZjnM5PBAWEvjQwqq+0wCgYIKoZIzj0EAwIw +azELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1 +dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xIzAhBgNVBAMMGkZJRE8gQXR0ZXN0YXRp +b24gUm9vdCBDQSAyMB4XDTIyMDIxNTIxMzMwN1oXDTQ3MDIxNTIxMzMwN1owZjEL +MAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1dGhl +bnRpY2F0b3IgQXR0ZXN0YXRpb24xHjAcBgNVBAMMFUZJRE8gQXR0ZXN0YXRpb24g +Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGKt5kvJMJoAMgbcyZ1mMgPw +V/q5VZXV0bX3WDeBYct5/dRTxWhg3bQ2zJmTmb2/RWtN/coVa3IVjNHIYmnWrjOj +ggEmMIIBIjAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNV +HSMEGDAWgBS76Dpl93vB2h5FDLvyMMvUByj3izAdBgNVHQ4EFgQU18dtSwaYea8Q +oLsKx8hPiSNZV/wwRAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC5oeWRyYW50 +aWQuY29tL0ZJRE9BdHRlc3RhdGlvblJvb3RDQTIuY3JsMHYGCCsGAQUFBwEBBGow +aDA/BggrBgEFBQcwAoYzaHR0cDovL2NybC5oeWRyYW50aWQuY29tL0ZJRE9BdHRl +c3RhdGlvblJvb3RDQTIucDdjMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC5oeWRy +YW50aWQuY29tMAoGCCqGSM49BAMCA0cAMEQCIFqCQUgOYGQ1SOEx0IWfiAlsOKM/ +JQ2XQ+Ci5tijnQRTAiBhNa0E8jWssbAf+lGnAQNAe3ne6Xs3ExZsiDGYwhEUpA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_fusion.pem b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_fusion.pem new file mode 100644 index 0000000..dabce1a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_fusion.pem @@ -0,0 +1,22 @@ +HID Crescendo Fusion +-------------------- + +-----BEGIN CERTIFICATE----- +MIIC/jCCAqSgAwIBAgIUIP+VQuq/1RvsYoHluBAhEYPvgTgwCgYIKoZIzj0EAwIw +azELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1 +dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xIzAhBgNVBAMMGkZJRE8gQXR0ZXN0YXRp +b24gUm9vdCBDQSAyMCAXDTI1MDIxMTE2MDAwMloYDzIwNTAwMjExMTYwMDAyWjBn +MQswCQYDVQQGEwJVUzETMBEGA1UECgwKSElEIEdsb2JhbDEiMCAGA1UECwwZQXV0 +aGVudGljYXRvciBBdHRlc3RhdGlvbjEfMB0GA1UEAwwWRklETyBBdHRlc3RhdGlv +biBDQSAxMDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGtLZ1A63DxLfM+O7X7u +RbiJ2KiHaTpOxxro1LfN1K78bfIgmj4Glabe+0A7COwfxToorpNdk++t1H202kcv +/S+jggEmMIIBIjAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAf +BgNVHSMEGDAWgBS76Dpl93vB2h5FDLvyMMvUByj3izAdBgNVHQ4EFgQUS7eOYo4v +sklOvhhe4NqbkgdbmjMwRAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC5oeWRy +YW50aWQuY29tL0ZJRE9BdHRlc3RhdGlvblJvb3RDQTIuY3JsMHYGCCsGAQUFBwEB +BGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NybC5oeWRyYW50aWQuY29tL0ZJRE9B +dHRlc3RhdGlvblJvb3RDQTIucDdjMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC5o +eWRyYW50aWQuY29tMAoGCCqGSM49BAMCA0gAMEUCIEOttb49eGANGgrmjgzMymvJ +pC4u8FHSG0WH6oDZeY2LAiEAtYIT1x5n51V72/q1wjp32ztBUZnVJ8Gl3zjTDYRw +3y0= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_key.pem b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_key.pem new file mode 100644 index 0000000..949bb5b --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_key.pem @@ -0,0 +1,22 @@ +HID Crescendo Key +----------------- + +-----BEGIN CERTIFICATE----- +MIIDCDCCAq+gAwIBAgIQQAFqUNTHZ8kBN8u/bCk+xDAKBggqhkjOPQQDAjBrMQsw +CQYDVQQGEwJVUzETMBEGA1UEChMKSElEIEdsb2JhbDEiMCAGA1UECxMZQXV0aGVu +dGljYXRvciBBdHRlc3RhdGlvbjEjMCEGA1UEAxMaRklETyBBdHRlc3RhdGlvbiBS +b290IENBIDEwHhcNMTkwNDI0MTkzMTIzWhcNNDQwNDI3MTkzMTIzWjBmMQswCQYD +VQQGEwJVUzETMBEGA1UEChMKSElEIEdsb2JhbDEiMCAGA1UECxMZQXV0aGVudGlj +YXRvciBBdHRlc3RhdGlvbjEeMBwGA1UEAxMVRklETyBBdHRlc3RhdGlvbiBDQSAy +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE4nK9ctzk6GEGFNQBcrnBBmWU+dCn +uHQAARrB2Eyc8MbsljkSFhZtfz/Rw6SuVIDk5VakDzrKBAOJ9v0Rvg/406OCATgw +ggE0MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMIGEBggrBgEF +BQcBAQR4MHYwLgYIKwYBBQUHMAGGImh0dHA6Ly9oaWQuZmlkby5vY3NwLmlkZW50 +cnVzdC5jb20wRAYIKwYBBQUHMAKGOGh0dHA6Ly92YWxpZGF0aW9uLmlkZW50cnVz +dC5jb20vcm9vdHMvSElERklET1Jvb3RjYTEucDdjMB8GA1UdIwQYMBaAFB2m3iwW +SYHvWTHbJiHAyKDp+CSjMEcGA1UdHwRAMD4wPKA6oDiGNmh0dHA6Ly92YWxpZGF0 +aW9uLmlkZW50cnVzdC5jb20vY3JsL0hJREZJRE9Sb290Y2ExLmNybDAdBgNVHQ4E +FgQUDLCbuLslcclrOZIz57Fu0imSMQ8wCgYIKoZIzj0EAwIDRwAwRAIgDCW5Irbj +EI/y35lPjx9a+/sF4lPSoZdBHgFgTWC+8VICIEqs2SPzUHgHVh65Ajl1oIUmhh0C +2lyR/Zdk7O3u1TIK +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_key_v2.pem b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_key_v2.pem new file mode 100644 index 0000000..37a693e --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_key_v2.pem @@ -0,0 +1,21 @@ +HID Crescendo Key V2 +-------------------- + +-----BEGIN CERTIFICATE----- +MIIC+zCCAqGgAwIBAgIUILwG56eXLK+mKWp46HoXOY+b6M0wCgYIKoZIzj0EAwIw +azELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1 +dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xIzAhBgNVBAMMGkZJRE8gQXR0ZXN0YXRp +b24gUm9vdCBDQSAyMB4XDTIyMTEwNDIxMTAyN1oXDTQ3MTEwNDIxMTAyN1owZjEL +MAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1dGhl +bnRpY2F0b3IgQXR0ZXN0YXRpb24xHjAcBgNVBAMMFUZJRE8gQXR0ZXN0YXRpb24g +Q0EgNTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCHnKPsjKNdAs0SCNgsWlS4D +cobk7A7lkzQDkMkaLnLe6ibW8r+7k3rn8IUSo+5xMMLtIEJ/svJMgBZWxUoDxsWj +ggEmMIIBIjAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNV +HSMEGDAWgBS76Dpl93vB2h5FDLvyMMvUByj3izAdBgNVHQ4EFgQUDDODDZdTiPWr +WnjDiMwsZgyoezwwRAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC5oeWRyYW50 +aWQuY29tL0ZJRE9BdHRlc3RhdGlvblJvb3RDQTIuY3JsMHYGCCsGAQUFBwEBBGow +aDA/BggrBgEFBQcwAoYzaHR0cDovL2NybC5oeWRyYW50aWQuY29tL0ZJRE9BdHRl +c3RhdGlvblJvb3RDQTIucDdjMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC5oeWRy +YW50aWQuY29tMAoGCCqGSM49BAMCA0gAMEUCIB24Le2zt7Z/W/P9zE9NfqzgPZjB +IpKk1quqgbZY66/FAiEAtsRY5bxaN9MDKGaefaTS6zgMVbxUlEpDn49C6VSWgmE= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_key_v3.pem b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_key_v3.pem new file mode 100644 index 0000000..b7797d8 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hid_crescendo_key_v3.pem @@ -0,0 +1,21 @@ +HID Crescendo Key V3 +-------------------- + +-----BEGIN CERTIFICATE----- +MIIC+jCCAqGgAwIBAgIUdhEg5Y/X2KZ5vowT+vf1lZdJgbcwCgYIKoZIzj0EAwIw +azELMAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1 +dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xIzAhBgNVBAMMGkZJRE8gQXR0ZXN0YXRp +b24gUm9vdCBDQSAyMB4XDTI0MTAzMDE4MTU0N1oXDTQ5MTAzMDE4MTU0N1owZjEL +MAkGA1UEBhMCVVMxEzARBgNVBAoMCkhJRCBHbG9iYWwxIjAgBgNVBAsMGUF1dGhl +bnRpY2F0b3IgQXR0ZXN0YXRpb24xHjAcBgNVBAMMFUZJRE8gQXR0ZXN0YXRpb24g +Q0EgODBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOvF2eIjmg/vdg2SM7hVZzLj +OMIeVomYVdrRaVogpuTLC7KOwHuuBmX4mS7j+P6YePWoU7syIWRU8FwAaAPNy6qj +ggEmMIIBIjAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNV +HSMEGDAWgBS76Dpl93vB2h5FDLvyMMvUByj3izAdBgNVHQ4EFgQUfuTDhukAU7Jp +npw4qcZcvOXMMSowRAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC5oeWRyYW50 +aWQuY29tL0ZJRE9BdHRlc3RhdGlvblJvb3RDQTIuY3JsMHYGCCsGAQUFBwEBBGow +aDA/BggrBgEFBQcwAoYzaHR0cDovL2NybC5oeWRyYW50aWQuY29tL0ZJRE9BdHRl +c3RhdGlvblJvb3RDQTIucDdjMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC5oeWRy +YW50aWQuY29tMAoGCCqGSM49BAMCA0cAMEQCIF3NY898/6zaOApZotkx8M8L9/9b +981a6iYmwitqzgGEAiBMvjT5zjaM+UefpPrG/flxUxjWyLVhRdaWoYxUruriRg== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hideez_key_3_fido2.pem b/restricted/WebAuthn/rootCertificates/mds/hideez_key_3_fido2.pem new file mode 100644 index 0000000..74601c9 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hideez_key_3_fido2.pem @@ -0,0 +1,38 @@ +Hideez Key 3 FIDO2 +------------------ + +-----BEGIN CERTIFICATE----- +MIICsTCCAligAwIBAgIRAP+W3QtnwMyXafuQoNaXcqUwCgYIKoZIzj0EAwIwgacx +CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJERTEOMAwGA1UEBwwFRG92ZXIxGjAYBgNV +BAoMEUhpZGVleiBHcm91cCBJbmMuMSUwIwYDVQQLDBxIaWRlZXogQ2VydGlmaWNh +dGUgQXV0aG9yaXR5MRcwFQYDVQQDDA5IaWRlZXogUm9vdCBDQTEfMB0GCSqGSIb3 +DQEJARYQbGVnYWxAaGlkZWV6LmNvbTAeFw0xOTExMjcxNDA4MDNaFw0zOTExMjcx +NDA4MDNaMIGnMQswCQYDVQQGEwJVUzELMAkGA1UECAwCREUxDjAMBgNVBAcMBURv +dmVyMRowGAYDVQQKDBFIaWRlZXogR3JvdXAgSW5jLjElMCMGA1UECwwcSGlkZWV6 +IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOSGlkZWV6IFJvb3QgQ0Ex +HzAdBgkqhkiG9w0BCQEWEGxlZ2FsQGhpZGVlei5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAATuth/3ccVlI/hGyJ7zSNaqhCLDyKM9JuZNjcTsnDAYyRDOpzYE +WiLqs3jdfVKd3Vgv8/j+foDMSMpI+mwjOz/po2MwYTAdBgNVHQ4EFgQUpqItxYpM +tatok12RjAieyDUhapowHwYDVR0jBBgwFoAUpqItxYpMtatok12RjAieyDUhapow +DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwIDRwAw +RAIgN4gM+9u3NBLMkdEW1PaDG9OlZZiUb6vhCMMNi45q06sCIB8A8Kl8tRV/GkJY +PS+ruy0nLS3V+tCFzTIEiBAYk7iA +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICrTCCAlSgAwIBAgIRALhd94/4312Imzkiem9kUvgwCgYIKoZIzj0EAwIwgacx +CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJERTEOMAwGA1UEBwwFRG92ZXIxGjAYBgNV +BAoMEUhpZGVleiBHcm91cCBJbmMuMSUwIwYDVQQLDBxIaWRlZXogQ2VydGlmaWNh +dGUgQXV0aG9yaXR5MRcwFQYDVQQDDA5IaWRlZXogUm9vdCBDQTEfMB0GCSqGSIb3 +DQEJARYQbGVnYWxAaGlkZWV6LmNvbTAeFw0xOTExMjcxNDEwMTRaFw0yOTExMjYx +NDEwMTRaMIGgMQswCQYDVQQGEwJVUzELMAkGA1UECAwCREUxGjAYBgNVBAoMEUhp +ZGVleiBHcm91cCBJbmMuMSUwIwYDVQQLDBxIaWRlZXogQ2VydGlmaWNhdGUgQXV0 +aG9yaXR5MSAwHgYDVQQDDBdIaWRlZXogS2V5IEZJRE8gUm9vdCBDQTEfMB0GCSqG +SIb3DQEJARYQbGVnYWxAaGlkZWV6LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEH +A0IABCBLyj/m3RDzY3IFd3Msyg4exmkLGMhC6aGH+Umzl01bbTmo6IQcOaoq+raI +FwGvi3swICIPCqUKKmGohrSUoKujZjBkMB0GA1UdDgQWBBQK8YV9zYaXEag63/NB +khyuAQ3vPDAfBgNVHSMEGDAWgBSmoi3Fiky1q2iTXZGMCJ7INSFqmjASBgNVHRMB +Af8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAKBggqhkjOPQQDAgNHADBEAiAn +N8zdtwFpD0O1hZV0zYSvhSxi8n80B7hl2I7wJGUoywIgPqGuUovka9z+KzvUsf+G +NdS5Ybnx65OzyqxCNTxKjVQ= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hideez_key_3_u2f.pem b/restricted/WebAuthn/rootCertificates/mds/hideez_key_3_u2f.pem new file mode 100644 index 0000000..ebc3ff6 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hideez_key_3_u2f.pem @@ -0,0 +1,38 @@ +Hideez Key 3 U2F +---------------- + +-----BEGIN CERTIFICATE----- +MIICrTCCAlSgAwIBAgIRALhd94/4312Imzkiem9kUvgwCgYIKoZIzj0EAwIwgacx +CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJERTEOMAwGA1UEBwwFRG92ZXIxGjAYBgNV +BAoMEUhpZGVleiBHcm91cCBJbmMuMSUwIwYDVQQLDBxIaWRlZXogQ2VydGlmaWNh +dGUgQXV0aG9yaXR5MRcwFQYDVQQDDA5IaWRlZXogUm9vdCBDQTEfMB0GCSqGSIb3 +DQEJARYQbGVnYWxAaGlkZWV6LmNvbTAeFw0xOTExMjcxNDEwMTRaFw0yOTExMjYx +NDEwMTRaMIGgMQswCQYDVQQGEwJVUzELMAkGA1UECAwCREUxGjAYBgNVBAoMEUhp +ZGVleiBHcm91cCBJbmMuMSUwIwYDVQQLDBxIaWRlZXogQ2VydGlmaWNhdGUgQXV0 +aG9yaXR5MSAwHgYDVQQDDBdIaWRlZXogS2V5IEZJRE8gUm9vdCBDQTEfMB0GCSqG +SIb3DQEJARYQbGVnYWxAaGlkZWV6LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEH +A0IABCBLyj/m3RDzY3IFd3Msyg4exmkLGMhC6aGH+Umzl01bbTmo6IQcOaoq+raI +FwGvi3swICIPCqUKKmGohrSUoKujZjBkMB0GA1UdDgQWBBQK8YV9zYaXEag63/NB +khyuAQ3vPDAfBgNVHSMEGDAWgBSmoi3Fiky1q2iTXZGMCJ7INSFqmjASBgNVHRMB +Af8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAKBggqhkjOPQQDAgNHADBEAiAn +N8zdtwFpD0O1hZV0zYSvhSxi8n80B7hl2I7wJGUoywIgPqGuUovka9z+KzvUsf+G +NdS5Ybnx65OzyqxCNTxKjVQ= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICsTCCAligAwIBAgIRAP+W3QtnwMyXafuQoNaXcqUwCgYIKoZIzj0EAwIwgacx +CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJERTEOMAwGA1UEBwwFRG92ZXIxGjAYBgNV +BAoMEUhpZGVleiBHcm91cCBJbmMuMSUwIwYDVQQLDBxIaWRlZXogQ2VydGlmaWNh +dGUgQXV0aG9yaXR5MRcwFQYDVQQDDA5IaWRlZXogUm9vdCBDQTEfMB0GCSqGSIb3 +DQEJARYQbGVnYWxAaGlkZWV6LmNvbTAeFw0xOTExMjcxNDA4MDNaFw0zOTExMjcx +NDA4MDNaMIGnMQswCQYDVQQGEwJVUzELMAkGA1UECAwCREUxDjAMBgNVBAcMBURv +dmVyMRowGAYDVQQKDBFIaWRlZXogR3JvdXAgSW5jLjElMCMGA1UECwwcSGlkZWV6 +IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOSGlkZWV6IFJvb3QgQ0Ex +HzAdBgkqhkiG9w0BCQEWEGxlZ2FsQGhpZGVlei5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAATuth/3ccVlI/hGyJ7zSNaqhCLDyKM9JuZNjcTsnDAYyRDOpzYE +WiLqs3jdfVKd3Vgv8/j+foDMSMpI+mwjOz/po2MwYTAdBgNVHQ4EFgQUpqItxYpM +tatok12RjAieyDUhapowHwYDVR0jBBgwFoAUpqItxYpMtatok12RjAieyDUhapow +DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwIDRwAw +RAIgN4gM+9u3NBLMkdEW1PaDG9OlZZiUb6vhCMMNi45q06sCIB8A8Kl8tRV/GkJY +PS+ruy0nLS3V+tCFzTIEiBAYk7iA +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hideez_key_4_fido2_sdk.pem b/restricted/WebAuthn/rootCertificates/mds/hideez_key_4_fido2_sdk.pem new file mode 100644 index 0000000..1ada57d --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hideez_key_4_fido2_sdk.pem @@ -0,0 +1,33 @@ +Hideez Key 4 FIDO2 SDK +---------------------- + +-----BEGIN CERTIFICATE----- +MIICZDCCAgugAwIBAgIUIylbSEAE15zSEvwF0r8GwUd/5oEwCgYIKoZIzj0EAwIw +gYcxFzAVBgNVBAMMDkhpZGVleiBSb290IENBMR8wHQYJKoZIhvcNAQkBFhBsZWdh +bEBoaWRlZXouY29tMRowGAYDVQQKDBFIaWRlZXogR3JvdXAgSW5jLjEiMCAGA1UE +CwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjELMAkGA1UEBhMCVVMwHhcNMjEw +ODE2MTcyMzE4WhcNNDkwMTAxMTcyMzE4WjCBhzEXMBUGA1UEAwwOSGlkZWV6IFJv +b3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGxlZ2FsQGhpZGVlei5jb20xGjAYBgNVBAoM +EUhpZGVleiBHcm91cCBJbmMuMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVz +dGF0aW9uMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAql +mAMAz4h5IwfVZwSb4jAi5ot85FE0buuCKs4mfud21qso5rpuKH43sKqbrNFQStx5 +RSC9bmBqdS2lycl35lajUzBRMB0GA1UdDgQWBBRWIiRVWayZBnH5BlTnQDiGyQ6O +LTAfBgNVHSMEGDAWgBRWIiRVWayZBnH5BlTnQDiGyQ6OLTAPBgNVHRMBAf8EBTAD +AQH/MAoGCCqGSM49BAMCA0cAMEQCIEZXh76XFhLxJIT8FsIoQHTwfHCE8sUsKyPr +cLv/3toMAiB+pjY9bI6nKT6qFuqgRn+bXBAdMeg/2vX8wG4aBtoMAA== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICMjCCAdmgAwIBAgIBAjAKBggqhkjOPQQDAjCBhzEXMBUGA1UEAwwOSGlkZWV6 +IFJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGxlZ2FsQGhpZGVlei5jb20xGjAYBgNV +BAoMEUhpZGVleiBHcm91cCBJbmMuMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0 +dGVzdGF0aW9uMQswCQYDVQQGEwJVUzAeFw0yMTA4MTYxNzI0MDVaFw00OTAxMDEx +NzI0MDVaMIGMMRwwGgYDVQQDDBNIaWRlZXogRklETyBSb290IENBMR8wHQYJKoZI +hvcNAQkBFhBsZWdhbEBoaWRlZXouY29tMRowGAYDVQQKDBFIaWRlZXogR3JvdXAg +SW5jLjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjELMAkGA1UE +BhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS0AcT/hRFUblFcIp6bh4P2 +ZSq1ajiUaghec9udSFGIoUZ40Y3IEPltk2TxbwM/RpWmCFrZsAdfyx21rvYdpL8R +oy8wLTAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBTlZ8Dv3qAKeKc1C2OiNvHzGqg1 +JTAKBggqhkjOPQQDAgNHADBEAiAHptsx+6Gqv6nba+bT9fW7n8xsfH8RhIK8VYFP +KEsBZAIgQhOSDxkDkcy9nbPT4x0EmDD9UsL501tkSscfWa0aLbw= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hideez_key_4_u2f_sdk.pem b/restricted/WebAuthn/rootCertificates/mds/hideez_key_4_u2f_sdk.pem new file mode 100644 index 0000000..f53867f --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hideez_key_4_u2f_sdk.pem @@ -0,0 +1,33 @@ +Hideez Key 4 U2F SDK +-------------------- + +-----BEGIN CERTIFICATE----- +MIICMjCCAdmgAwIBAgIBAjAKBggqhkjOPQQDAjCBhzEXMBUGA1UEAwwOSGlkZWV6 +IFJvb3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGxlZ2FsQGhpZGVlei5jb20xGjAYBgNV +BAoMEUhpZGVleiBHcm91cCBJbmMuMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0 +dGVzdGF0aW9uMQswCQYDVQQGEwJVUzAeFw0yMTA4MTYxNzI0MDVaFw00OTAxMDEx +NzI0MDVaMIGMMRwwGgYDVQQDDBNIaWRlZXogRklETyBSb290IENBMR8wHQYJKoZI +hvcNAQkBFhBsZWdhbEBoaWRlZXouY29tMRowGAYDVQQKDBFIaWRlZXogR3JvdXAg +SW5jLjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjELMAkGA1UE +BhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS0AcT/hRFUblFcIp6bh4P2 +ZSq1ajiUaghec9udSFGIoUZ40Y3IEPltk2TxbwM/RpWmCFrZsAdfyx21rvYdpL8R +oy8wLTAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBTlZ8Dv3qAKeKc1C2OiNvHzGqg1 +JTAKBggqhkjOPQQDAgNHADBEAiAHptsx+6Gqv6nba+bT9fW7n8xsfH8RhIK8VYFP +KEsBZAIgQhOSDxkDkcy9nbPT4x0EmDD9UsL501tkSscfWa0aLbw= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICZDCCAgugAwIBAgIUIylbSEAE15zSEvwF0r8GwUd/5oEwCgYIKoZIzj0EAwIw +gYcxFzAVBgNVBAMMDkhpZGVleiBSb290IENBMR8wHQYJKoZIhvcNAQkBFhBsZWdh +bEBoaWRlZXouY29tMRowGAYDVQQKDBFIaWRlZXogR3JvdXAgSW5jLjEiMCAGA1UE +CwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjELMAkGA1UEBhMCVVMwHhcNMjEw +ODE2MTcyMzE4WhcNNDkwMTAxMTcyMzE4WjCBhzEXMBUGA1UEAwwOSGlkZWV6IFJv +b3QgQ0ExHzAdBgkqhkiG9w0BCQEWEGxlZ2FsQGhpZGVlei5jb20xGjAYBgNVBAoM +EUhpZGVleiBHcm91cCBJbmMuMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVz +dGF0aW9uMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAql +mAMAz4h5IwfVZwSb4jAi5ot85FE0buuCKs4mfud21qso5rpuKH43sKqbrNFQStx5 +RSC9bmBqdS2lycl35lajUzBRMB0GA1UdDgQWBBRWIiRVWayZBnH5BlTnQDiGyQ6O +LTAfBgNVHSMEGDAWgBRWIiRVWayZBnH5BlTnQDiGyQ6OLTAPBgNVHRMBAf8EBTAD +AQH/MAoGCCqGSM49BAMCA0cAMEQCIEZXh76XFhLxJIT8FsIoQHTwfHCE8sUsKyPr +cLv/3toMAiB+pjY9bI6nKT6qFuqgRn+bXBAdMeg/2vX8wG4aBtoMAA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hyper_fido_bio_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/hyper_fido_bio_security_key.pem new file mode 100644 index 0000000..b4f64e3 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hyper_fido_bio_security_key.pem @@ -0,0 +1,15 @@ +Hyper FIDO Bio Security Key +--------------------------- + +-----BEGIN CERTIFICATE----- +MIIBxzCCAWygAwIBAgICEAswCgYIKoZIzj0EAwIwOjELMAkGA1UEBhMCQ0ExEjAQ +BgNVBAoMCUhZUEVSU0VDVTEXMBUGA1UEAwwOSFlQRVJGSURPIDAyMDAwIBcNMTgw +MTAxMDAwMDAwWhgPMjA0NzEyMzEyMzU5NTlaMDoxCzAJBgNVBAYTAkNBMRIwEAYD +VQQKDAlIWVBFUlNFQ1UxFzAVBgNVBAMMDkhZUEVSRklETyAwMjAwMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAErKUI1G0S7a6IOLlmHipLlBuxTYjsEESQvzQh3dB7 +dvxxWWm7kWL91rq6S7ayZG0gZPR+zYqdFzwAYDcG4+aX66NgMF4wHQYDVR0OBBYE +FLZYcfMMwkQAGbt3ryzZFPFypmsIMB8GA1UdIwQYMBaAFLZYcfMMwkQAGbt3ryzZ +FPFypmsIMAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMC +A0kAMEYCIQCG2/ppMGt7pkcRie5YIohS3uDPIrmiRcTjqDclKVWg0gIhANcPNDZH +E2/zZ+uB5ThG9OZus+xSb4knkrbAyXKX2zm/ +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hyper_fido_pro.pem b/restricted/WebAuthn/rootCertificates/mds/hyper_fido_pro.pem new file mode 100644 index 0000000..2661ca5 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hyper_fido_pro.pem @@ -0,0 +1,15 @@ +Hyper FIDO Pro +-------------- + +-----BEGIN CERTIFICATE----- +MIIBxzCCAWygAwIBAgICEAswCgYIKoZIzj0EAwIwOjELMAkGA1UEBhMCQ0ExEjAQ +BgNVBAoMCUhZUEVSU0VDVTEXMBUGA1UEAwwOSFlQRVJGSURPIDAyMDAwIBcNMTgw +MTAxMDAwMDAwWhgPMjA0NzEyMzEyMzU5NTlaMDoxCzAJBgNVBAYTAkNBMRIwEAYD +VQQKDAlIWVBFUlNFQ1UxFzAVBgNVBAMMDkhZUEVSRklETyAwMjAwMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAErKUI1G0S7a6IOLlmHipLlBuxTYjsEESQvzQh3dB7 +dvxxWWm7kWL91rq6S7ayZG0gZPR+zYqdFzwAYDcG4+aX66NgMF4wHQYDVR0OBBYE +FLZYcfMMwkQAGbt3ryzZFPFypmsIMB8GA1UdIwQYMBaAFLZYcfMMwkQAGbt3ryzZ +FPFypmsIMAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMC +A0kAMEYCIQCG2/ppMGt7pkcRie5YIohS3uDPIrmiRcTjqDclKVWg0gIhANcPNDZH +E2/zZ+uB5ThG9OZus+xSb4knkrbAyXKX2zm/ +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hyper_fido_pro_ctap2_1_ctap2_0_u2f.pem b/restricted/WebAuthn/rootCertificates/mds/hyper_fido_pro_ctap2_1_ctap2_0_u2f.pem new file mode 100644 index 0000000..f51a6ac --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hyper_fido_pro_ctap2_1_ctap2_0_u2f.pem @@ -0,0 +1,34 @@ +Hyper FIDO Pro (CTAP2.1, CTAP2.0, U2F) +-------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICRDCCAaWgAwIBAgIQctEOT2WXeCkDdz/sY7UpVjAKBggqhkjOPQQDBDA9MQsw +CQYDVQQGEwJDQTESMBAGA1UECgwJSFlQRVJTRUNVMRowGAYDVQQDDBFIeXBlcnNl +Y3UgUm9vdCBDQTAgFw0yNTAxMDEwMDAwMDBaGA8yMTI0MTIzMTIzNTk1OVowPTEL +MAkGA1UEBhMCQ0ExEjAQBgNVBAoMCUhZUEVSU0VDVTEaMBgGA1UEAwwRSHlwZXJz +ZWN1IFJvb3QgQ0EwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYABAFFrPb8KDLAw4Hs +YLU5cwevoPS0J6Qao8Hbx2o11+rYvsxAwrV3P/O2MtkuA4bDkmYSA0YL5A+J2Yo4 +v/d1/QP2UQF1dqPFkmU27VZhC4PXCdcX+FMduub/4/LEwVaOMwPTUAg98SRwcBjS +zuMWBlxe2G0WQFndN2tn2Y2sZubX7yQIH6NCMEAwHQYDVR0OBBYEFOJhafOVZq69 +tzBNa52TT6BcsN1aMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoG +CCqGSM49BAMEA4GMADCBiAJCAcq4WvVqOlMpbU4e76SyecZUrKyOSGoTqtHJlrGW +55AlHzX0YVhmVNtYjCq+/ITbdjKfb/4RK+1KnqnlSKvZar7vAkIBQjzcaVioA0o0 +VoyoyaNkBh08SJ2v/phhZu196UhRfqK6Pp9/1Y4uDSaTghOQv0HDk1kuJORswCel +mMfIQTc1EQE= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICQDCCAaGgAwIBAgIQAcb5ZcAyOJl1x/89gYkmezAKBggqhkjOPQQDAzA9MQsw +CQYDVQQGEwJDQTESMBAGA1UECgwJSFlQRVJTRUNVMRowGAYDVQQDDBFIeXBlcnNl +Y3UgUm9vdCBDQTAgFw0yNTAxMDEwMDAwMDBaGA8yMTAwMTIzMTIzNTk1OVowOzEL +MAkGA1UEBhMCQ0ExEjAQBgNVBAoMCUhZUEVSU0VDVTEYMBYGA1UEAwwPSHlwZXJz +ZWN1IENBIDAyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzrVme2W1p1aq4o/ELbF2 +s+JaT6tQ2ZoMG0PcH79wdJwOrQeA2EPCewu+emSsgfbUYUIrL0WhGCP7RzfsVhfB +Qld7LZeUhTPiO12zuP8k9QqvLccnbjym1zzR3InvXEMYo2YwZDAdBgNVHQ4EFgQU +liV0Zqi3ajkxDDe8pzs7ODLDWjIwHwYDVR0jBBgwFoAU4mFp85Vmrr23ME1rnZNP +oFyw3VowEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZI +zj0EAwMDgYwAMIGIAkIA0AQJHu/HxJ4wVDB7vu1zsuGdOEYiC7tJ52szym1GxXRn +O+DYtya9ygwrEZ+8Lo0CYm8zwAV+BM2nhgXov1OIbmYCQgEp76CFw48vadmzcVnp +4m1fbLApHTuuO/zDMPTKWaz0gudraF0eaedFvLx7CpX+H/gVJAJWjUFUNUMgqkdU +l0MokA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hyper_fido_pro_nfc.pem b/restricted/WebAuthn/rootCertificates/mds/hyper_fido_pro_nfc.pem new file mode 100644 index 0000000..fe4eee6 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hyper_fido_pro_nfc.pem @@ -0,0 +1,34 @@ +Hyper FIDO Pro NFC +------------------ + +-----BEGIN CERTIFICATE----- +MIICRDCCAaWgAwIBAgIQctEOT2WXeCkDdz/sY7UpVjAKBggqhkjOPQQDBDA9MQsw +CQYDVQQGEwJDQTESMBAGA1UECgwJSFlQRVJTRUNVMRowGAYDVQQDDBFIeXBlcnNl +Y3UgUm9vdCBDQTAgFw0yNTAxMDEwMDAwMDBaGA8yMTI0MTIzMTIzNTk1OVowPTEL +MAkGA1UEBhMCQ0ExEjAQBgNVBAoMCUhZUEVSU0VDVTEaMBgGA1UEAwwRSHlwZXJz +ZWN1IFJvb3QgQ0EwgZswEAYHKoZIzj0CAQYFK4EEACMDgYYABAFFrPb8KDLAw4Hs +YLU5cwevoPS0J6Qao8Hbx2o11+rYvsxAwrV3P/O2MtkuA4bDkmYSA0YL5A+J2Yo4 +v/d1/QP2UQF1dqPFkmU27VZhC4PXCdcX+FMduub/4/LEwVaOMwPTUAg98SRwcBjS +zuMWBlxe2G0WQFndN2tn2Y2sZubX7yQIH6NCMEAwHQYDVR0OBBYEFOJhafOVZq69 +tzBNa52TT6BcsN1aMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoG +CCqGSM49BAMEA4GMADCBiAJCAcq4WvVqOlMpbU4e76SyecZUrKyOSGoTqtHJlrGW +55AlHzX0YVhmVNtYjCq+/ITbdjKfb/4RK+1KnqnlSKvZar7vAkIBQjzcaVioA0o0 +VoyoyaNkBh08SJ2v/phhZu196UhRfqK6Pp9/1Y4uDSaTghOQv0HDk1kuJORswCel +mMfIQTc1EQE= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICQDCCAaGgAwIBAgIQAcb5ZcAyOJl1x/89gYkmezAKBggqhkjOPQQDAzA9MQsw +CQYDVQQGEwJDQTESMBAGA1UECgwJSFlQRVJTRUNVMRowGAYDVQQDDBFIeXBlcnNl +Y3UgUm9vdCBDQTAgFw0yNTAxMDEwMDAwMDBaGA8yMTAwMTIzMTIzNTk1OVowOzEL +MAkGA1UEBhMCQ0ExEjAQBgNVBAoMCUhZUEVSU0VDVTEYMBYGA1UEAwwPSHlwZXJz +ZWN1IENBIDAyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzrVme2W1p1aq4o/ELbF2 +s+JaT6tQ2ZoMG0PcH79wdJwOrQeA2EPCewu+emSsgfbUYUIrL0WhGCP7RzfsVhfB +Qld7LZeUhTPiO12zuP8k9QqvLccnbjym1zzR3InvXEMYo2YwZDAdBgNVHQ4EFgQU +liV0Zqi3ajkxDDe8pzs7ODLDWjIwHwYDVR0jBBgwFoAU4mFp85Vmrr23ME1rnZNP +oFyw3VowEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZI +zj0EAwMDgYwAMIGIAkIA0AQJHu/HxJ4wVDB7vu1zsuGdOEYiC7tJ52szym1GxXRn +O+DYtya9ygwrEZ+8Lo0CYm8zwAV+BM2nhgXov1OIbmYCQgEp76CFw48vadmzcVnp +4m1fbLApHTuuO/zDMPTKWaz0gudraF0eaedFvLx7CpX+H/gVJAJWjUFUNUMgqkdU +l0MokA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hyper_fido_u2f_mini_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/hyper_fido_u2f_mini_security_key.pem new file mode 100644 index 0000000..bb64456 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hyper_fido_u2f_mini_security_key.pem @@ -0,0 +1,15 @@ +Hyper FIDO U2F Mini Security Key +-------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBxzCCAWygAwIBAgICEAswCgYIKoZIzj0EAwIwOjELMAkGA1UEBhMCQ0ExEjAQ +BgNVBAoMCUhZUEVSU0VDVTEXMBUGA1UEAwwOSFlQRVJGSURPIDAyMDAwIBcNMTgw +MTAxMDAwMDAwWhgPMjA0NzEyMzEyMzU5NTlaMDoxCzAJBgNVBAYTAkNBMRIwEAYD +VQQKDAlIWVBFUlNFQ1UxFzAVBgNVBAMMDkhZUEVSRklETyAwMjAwMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAErKUI1G0S7a6IOLlmHipLlBuxTYjsEESQvzQh3dB7 +dvxxWWm7kWL91rq6S7ayZG0gZPR+zYqdFzwAYDcG4+aX66NgMF4wHQYDVR0OBBYE +FLZYcfMMwkQAGbt3ryzZFPFypmsIMB8GA1UdIwQYMBaAFLZYcfMMwkQAGbt3ryzZ +FPFypmsIMAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMC +A0kAMEYCIQCG2/ppMGt7pkcRie5YIohS3uDPIrmiRcTjqDclKVWg0gIhANcPNDZH +E2/zZ+uB5ThG9OZus+xSb4knkrbAyXKX2zm/ +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hyperfido_u2f_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/hyperfido_u2f_security_key.pem new file mode 100644 index 0000000..ad5af6d --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hyperfido_u2f_security_key.pem @@ -0,0 +1,15 @@ +HyperFIDO U2F Security Key +-------------------------- + +-----BEGIN CERTIFICATE----- +MIIBxzCCAWygAwIBAgICEAswCgYIKoZIzj0EAwIwOjELMAkGA1UEBhMCQ0ExEjAQ +BgNVBAoMCUhZUEVSU0VDVTEXMBUGA1UEAwwOSFlQRVJGSURPIDAyMDAwIBcNMTgw +MTAxMDAwMDAwWhgPMjA0NzEyMzEyMzU5NTlaMDoxCzAJBgNVBAYTAkNBMRIwEAYD +VQQKDAlIWVBFUlNFQ1UxFzAVBgNVBAMMDkhZUEVSRklETyAwMjAwMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAErKUI1G0S7a6IOLlmHipLlBuxTYjsEESQvzQh3dB7 +dvxxWWm7kWL91rq6S7ayZG0gZPR+zYqdFzwAYDcG4+aX66NgMF4wHQYDVR0OBBYE +FLZYcfMMwkQAGbt3ryzZFPFypmsIMB8GA1UdIwQYMBaAFLZYcfMMwkQAGbt3ryzZ +FPFypmsIMAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMC +A0kAMEYCIQCG2/ppMGt7pkcRie5YIohS3uDPIrmiRcTjqDclKVWg0gIhANcPNDZH +E2/zZ+uB5ThG9OZus+xSb4knkrbAyXKX2zm/ +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/hypr_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/hypr_fido2_authenticator.pem new file mode 100644 index 0000000..a0efa5a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/hypr_fido2_authenticator.pem @@ -0,0 +1,16 @@ +HYPR FIDO2 Authenticator +------------------------ + +-----BEGIN CERTIFICATE----- +MIICAzCCAagCCQCG3Ur4zqY93jAKBggqhkjOPQQDAjCBhzELMAkGA1UEBhMCVVMx +CzAJBgNVBAgMAk5ZMREwDwYDVQQHDAhOZXcgWW9yazESMBAGA1UECgwJSFlQUiBD +b3JwMRAwDgYDVQQLDAdSb290IENBMREwDwYDVQQDDAhoeXByLmNvbTEfMB0GCSqG +SIb3DQEJARYQc3VwcG9ydEBoeXByLmNvbTAgFw0yMjA5MTMwMjA4MjZaGA8yMDcy +MDgzMTAyMDgyNlowgYcxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTERMA8GA1UE +BwwITmV3IFlvcmsxEjAQBgNVBAoMCUhZUFIgQ29ycDEQMA4GA1UECwwHUm9vdCBD +QTERMA8GA1UEAwwIaHlwci5jb20xHzAdBgkqhkiG9w0BCQEWEHN1cHBvcnRAaHlw +ci5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQsEQOg/B53rKIFJn4nUfPN +VPqzDZVLhWifKlqSYXVg1Z688mObA6Cnl+PJUw2727EmIE2YHAwBBfPwPy+92NES +MAoGCCqGSM49BAMCA0kAMEYCIQCWTlylSyEyhoTBsg7UVZ3anZ3y9ZmBOtddh2fn +S70abQIhAJFQszgQ94FLVPPukl7/jn7gtbmso3EqMdWOVeEo9K0R +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/id_one_card.pem b/restricted/WebAuthn/rootCertificates/mds/id_one_card.pem new file mode 100644 index 0000000..d68a719 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/id_one_card.pem @@ -0,0 +1,40 @@ +ID-One Card +----------- + +-----BEGIN CERTIFICATE----- +MIIC3jCCAj+gAwIBAgIGAOq0AAACMAoGCCqGSM49BAMEMIGRMQswCQYDVQQGEwJV +UzELMAkGA1UECAwCVkExDzANBgNVBAcMBlJlc3RvbjEtMCsGA1UECgwkSURFTUlB +IElkZW50aXR5IGFuZCBTZWN1cml0eSBVU0EgTExDMTUwMwYDVQQDDCxJREVNSUEg +SWRlbnRpdHkgYW5kIFNlY3VyaXR5IFVTQSBMTEMgUm9vdCBDQTAgFw0yNDA5MTgy +MjAwMDBaGA8yMDY0MDkxOTIxNTk1OVowgZExCzAJBgNVBAYTAlVTMQswCQYDVQQI +DAJWQTEPMA0GA1UEBwwGUmVzdG9uMS0wKwYDVQQKDCRJREVNSUEgSWRlbnRpdHkg +YW5kIFNlY3VyaXR5IFVTQSBMTEMxNTAzBgNVBAMMLElERU1JQSBJZGVudGl0eSBh +bmQgU2VjdXJpdHkgVVNBIExMQyBSb290IENBMIGbMBAGByqGSM49AgEGBSuBBAAj +A4GGAAQAlcTYsCV2LxuwK8Q5PK+03/wSAPSpQZR6k12P2pqfB1p7M3JUfUwvemit +ohKJY2EepPLadIiwz2gVarPB6MFc/H4BRmv5ycUYhWwJyPiRfqFJQrcnOr2QmGUm +7n/GZhQKVz5ur8L7NOpnonvxcuhceujee1xHpIU+WryCo2hpNfXoYiKjPDA6MB0G +A1UdDgQWBBQ7VjlL3agSTXvVAFyKb4GIEcp0wzALBgNVHQ8EBAMCAP8wDAYDVR0T +BAUwAwEB/zAKBggqhkjOPQQDBAOBjAAwgYgCQgE+fbbJFcXiFgQZbZr3xQdUWSng +g1hNrkHFHh5Q6REHXHEXayx+Imf00iPoNpAE6c9mCSTVeWBsGOqDS4B36RVQoQJC +AbXwMD+l1F/LsxRBe4+0MHhwr20v6hkm+s2KOVUr2n+IAz2cghCClLOTdXXvQGl4 +653XX3vwX9VpgyRSUT1thiex +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIC2zCCAj2gAwIBAgIE6rQAATAKBggqhkjOPQQDBDCBkTELMAkGA1UEBhMCVVMx +CzAJBgNVBAgMAlZBMQ8wDQYDVQQHDAZSZXN0b24xLTArBgNVBAoMJElERU1JQSBJ +ZGVudGl0eSBhbmQgU2VjdXJpdHkgVVNBIExMQzE1MDMGA1UEAwwsSURFTUlBIElk +ZW50aXR5IGFuZCBTZWN1cml0eSBVU0EgTExDIFJvb3QgQ0EwIBcNMjQwNzI0MjE1 +OTU5WhgPMjA2NDA3MjQyMTU5NTlaMIGRMQswCQYDVQQGEwJVUzELMAkGA1UECAwC +VkExDzANBgNVBAcMBlJlc3RvbjEtMCsGA1UECgwkSURFTUlBIElkZW50aXR5IGFu +ZCBTZWN1cml0eSBVU0EgTExDMTUwMwYDVQQDDCxJREVNSUEgSWRlbnRpdHkgYW5k +IFNlY3VyaXR5IFVTQSBMTEMgUm9vdCBDQTCBmzAQBgcqhkjOPQIBBgUrgQQAIwOB +hgAEAJXE2LAldi8bsCvEOTyvtN/8EgD0qUGUepNdj9qanwdaezNyVH1ML3poraIS +iWNhHqTy2nSIsM9oFWqzwejBXPx+AUZr+cnFGIVsCcj4kX6hSUK3Jzq9kJhlJu5/ +xmYUClc+bq/C+zTqZ6J78XLoXHro3ntcR6SFPlq8gqNoaTX16GIiozwwOjAdBgNV +HQ4EFgQUO1Y5S92oEk171QBcim+BiBHKdMMwCwYDVR0PBAQDAgD/MAwGA1UdEwQF +MAMBAf8wCgYIKoZIzj0EAwQDgYsAMIGHAkEGMw8cXBIzpmBaXLq1bFsLiuA8tVcF +IOxj3o2a03e9srskCmLZ0p2MYqMgT1IpVTaTUrjSgHingRffsYPf+mncqAJCAIl2 +WrtgxVQMAWwd+e/XCR+UZ5kpmPhpG5jdefhnKHNhH20cWmna/K66Iy8X6pq6YS5n +NQgWhK3tBPf57CUtkDJn +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/id_one_key.pem b/restricted/WebAuthn/rootCertificates/mds/id_one_key.pem new file mode 100644 index 0000000..bbe5075 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/id_one_key.pem @@ -0,0 +1,21 @@ +ID-One Key +---------- + +-----BEGIN CERTIFICATE----- +MIIC3jCCAj+gAwIBAgIGAOq0AAACMAoGCCqGSM49BAMEMIGRMQswCQYDVQQGEwJV +UzELMAkGA1UECAwCVkExDzANBgNVBAcMBlJlc3RvbjEtMCsGA1UECgwkSURFTUlB +IElkZW50aXR5IGFuZCBTZWN1cml0eSBVU0EgTExDMTUwMwYDVQQDDCxJREVNSUEg +SWRlbnRpdHkgYW5kIFNlY3VyaXR5IFVTQSBMTEMgUm9vdCBDQTAgFw0yNDA5MTgy +MjAwMDBaGA8yMDY0MDkxOTIxNTk1OVowgZExCzAJBgNVBAYTAlVTMQswCQYDVQQI +DAJWQTEPMA0GA1UEBwwGUmVzdG9uMS0wKwYDVQQKDCRJREVNSUEgSWRlbnRpdHkg +YW5kIFNlY3VyaXR5IFVTQSBMTEMxNTAzBgNVBAMMLElERU1JQSBJZGVudGl0eSBh +bmQgU2VjdXJpdHkgVVNBIExMQyBSb290IENBMIGbMBAGByqGSM49AgEGBSuBBAAj +A4GGAAQAlcTYsCV2LxuwK8Q5PK+03/wSAPSpQZR6k12P2pqfB1p7M3JUfUwvemit +ohKJY2EepPLadIiwz2gVarPB6MFc/H4BRmv5ycUYhWwJyPiRfqFJQrcnOr2QmGUm +7n/GZhQKVz5ur8L7NOpnonvxcuhceujee1xHpIU+WryCo2hpNfXoYiKjPDA6MB0G +A1UdDgQWBBQ7VjlL3agSTXvVAFyKb4GIEcp0wzALBgNVHQ8EBAMCAP8wDAYDVR0T +BAUwAwEB/zAKBggqhkjOPQQDBAOBjAAwgYgCQgE+fbbJFcXiFgQZbZr3xQdUWSng +g1hNrkHFHh5Q6REHXHEXayx+Imf00iPoNpAE6c9mCSTVeWBsGOqDS4B36RVQoQJC +AbXwMD+l1F/LsxRBe4+0MHhwr20v6hkm+s2KOVUr2n+IAz2cghCClLOTdXXvQGl4 +653XX3vwX9VpgyRSUT1thiex +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/id_one_key_usb_a.pem b/restricted/WebAuthn/rootCertificates/mds/id_one_key_usb_a.pem new file mode 100644 index 0000000..8c523ed --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/id_one_key_usb_a.pem @@ -0,0 +1,21 @@ +ID-One Key (USB A) +------------------ + +-----BEGIN CERTIFICATE----- +MIIC3jCCAj+gAwIBAgIGAOq0AAACMAoGCCqGSM49BAMEMIGRMQswCQYDVQQGEwJV +UzELMAkGA1UECAwCVkExDzANBgNVBAcMBlJlc3RvbjEtMCsGA1UECgwkSURFTUlB +IElkZW50aXR5IGFuZCBTZWN1cml0eSBVU0EgTExDMTUwMwYDVQQDDCxJREVNSUEg +SWRlbnRpdHkgYW5kIFNlY3VyaXR5IFVTQSBMTEMgUm9vdCBDQTAgFw0yNDA5MTgy +MjAwMDBaGA8yMDY0MDkxOTIxNTk1OVowgZExCzAJBgNVBAYTAlVTMQswCQYDVQQI +DAJWQTEPMA0GA1UEBwwGUmVzdG9uMS0wKwYDVQQKDCRJREVNSUEgSWRlbnRpdHkg +YW5kIFNlY3VyaXR5IFVTQSBMTEMxNTAzBgNVBAMMLElERU1JQSBJZGVudGl0eSBh +bmQgU2VjdXJpdHkgVVNBIExMQyBSb290IENBMIGbMBAGByqGSM49AgEGBSuBBAAj +A4GGAAQAlcTYsCV2LxuwK8Q5PK+03/wSAPSpQZR6k12P2pqfB1p7M3JUfUwvemit +ohKJY2EepPLadIiwz2gVarPB6MFc/H4BRmv5ycUYhWwJyPiRfqFJQrcnOr2QmGUm +7n/GZhQKVz5ur8L7NOpnonvxcuhceujee1xHpIU+WryCo2hpNfXoYiKjPDA6MB0G +A1UdDgQWBBQ7VjlL3agSTXvVAFyKb4GIEcp0wzALBgNVHQ8EBAMCAP8wDAYDVR0T +BAUwAwEB/zAKBggqhkjOPQQDBAOBjAAwgYgCQgE+fbbJFcXiFgQZbZr3xQdUWSng +g1hNrkHFHh5Q6REHXHEXayx+Imf00iPoNpAE6c9mCSTVeWBsGOqDS4B36RVQoQJC +AbXwMD+l1F/LsxRBe4+0MHhwr20v6hkm+s2KOVUr2n+IAz2cghCClLOTdXXvQGl4 +653XX3vwX9VpgyRSUT1thiex +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/id_one_key_usb_c.pem b/restricted/WebAuthn/rootCertificates/mds/id_one_key_usb_c.pem new file mode 100644 index 0000000..265e6d2 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/id_one_key_usb_c.pem @@ -0,0 +1,21 @@ +ID-One Key (USB C) +------------------ + +-----BEGIN CERTIFICATE----- +MIIC3jCCAj+gAwIBAgIGAOq0AAACMAoGCCqGSM49BAMEMIGRMQswCQYDVQQGEwJV +UzELMAkGA1UECAwCVkExDzANBgNVBAcMBlJlc3RvbjEtMCsGA1UECgwkSURFTUlB +IElkZW50aXR5IGFuZCBTZWN1cml0eSBVU0EgTExDMTUwMwYDVQQDDCxJREVNSUEg +SWRlbnRpdHkgYW5kIFNlY3VyaXR5IFVTQSBMTEMgUm9vdCBDQTAgFw0yNDA5MTgy +MjAwMDBaGA8yMDY0MDkxOTIxNTk1OVowgZExCzAJBgNVBAYTAlVTMQswCQYDVQQI +DAJWQTEPMA0GA1UEBwwGUmVzdG9uMS0wKwYDVQQKDCRJREVNSUEgSWRlbnRpdHkg +YW5kIFNlY3VyaXR5IFVTQSBMTEMxNTAzBgNVBAMMLElERU1JQSBJZGVudGl0eSBh +bmQgU2VjdXJpdHkgVVNBIExMQyBSb290IENBMIGbMBAGByqGSM49AgEGBSuBBAAj +A4GGAAQAlcTYsCV2LxuwK8Q5PK+03/wSAPSpQZR6k12P2pqfB1p7M3JUfUwvemit +ohKJY2EepPLadIiwz2gVarPB6MFc/H4BRmv5ycUYhWwJyPiRfqFJQrcnOr2QmGUm +7n/GZhQKVz5ur8L7NOpnonvxcuhceujee1xHpIU+WryCo2hpNfXoYiKjPDA6MB0G +A1UdDgQWBBQ7VjlL3agSTXvVAFyKb4GIEcp0wzALBgNVHQ8EBAMCAP8wDAYDVR0T +BAUwAwEB/zAKBggqhkjOPQQDBAOBjAAwgYgCQgE+fbbJFcXiFgQZbZr3xQdUWSng +g1hNrkHFHh5Q6REHXHEXayx+Imf00iPoNpAE6c9mCSTVeWBsGOqDS4B36RVQoQJC +AbXwMD+l1F/LsxRBe4+0MHhwr20v6hkm+s2KOVUr2n+IAz2cghCClLOTdXXvQGl4 +653XX3vwX9VpgyRSUT1thiex +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/idcore_3121_fido.pem b/restricted/WebAuthn/rootCertificates/mds/idcore_3121_fido.pem new file mode 100644 index 0000000..15d9f74 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/idcore_3121_fido.pem @@ -0,0 +1,43 @@ +IDCore 3121 Fido +---------------- + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIJAICUTvkgtj5CMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAkZSMQwwCgYDVQQKDANESVMxCzAJBgNVBAsMAkNTMScwJQYDVQQDDB5HZW1h +bHRvIE11bHRpQXBwIEZJRE8gU3ViY2EgQ0EwHhcNMjAwNzA3MTQzNzE4WhcNMzAw +NzA1MTQzNzE4WjBRMQswCQYDVQQGEwJGUjEMMAoGA1UECgwDRElTMQswCQYDVQQL +DAJDUzEnMCUGA1UEAwweR2VtYWx0byBNdWx0aUFwcCBGSURPIFN1YmNhIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAKOeqC5/p0D1isCYKQJlVUO +rB6I7DLocunE/Rm8duGTbyxQht3CbFVTv3N2Lp2fbjxlI+3sOSGk33FTYkTqxcdJ +IrJ7SskBcUSNrfKOaQT/6KQcP4Cm7V+655Tq+TWxyxWQhDygt15qoP7MuK6bT9Sw +pCjpfKhaMSmyQaMoUcRAbLqdzBCac0hzB+Ze+gqJlnWV9UaSI2rFsVuH4ZE0cRO+ +MOpaLgM/s248nGGHp22ewSQfbnPaBbb8iqyAP+cu52GLsUpKRJebE+R6+PMQ9JCd +WeQZR3DkfSidkv3mcb4jq1iIta+MqKhRnwrfXh911KWLnYAl9ENChLX0c6Sj1QID +AQABo1AwTjAdBgNVHQ4EFgQUWLvhRBUPn8uLIf68+gv/NZIwGSIwHwYDVR0jBBgw +FoAUWLvhRBUPn8uLIf68+gv/NZIwGSIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAFLrDhaegeKHxYjH3EP3vUBKhnzM206ASxgeYCO2Ec9pOlYJaeqFE ++sUamUV/pwjDlqNaSgFgy7TweYkvOmMn4qScsHqvJ3zGOAiafwah1vUHfClXR8+a +xO2iGOUF0JKrZ9YYjbAa5/4HClv7jFPOdMWTOQyngoiHAs3jkuYjpCLFlB4VOi3d +1wjA1pnTdBKkAb7t8nTvw+/XbFvcQa73VH7sjvoBqD3fdMfRcuVq4qUZtZT6cGag +THD61Ttqh9oMCZXcDbR1PGZnNbqycsWPDIK0npmK3/3lfV8c+Zsry6e170mfJMZp +7O8m6CSz6/VLK+yDJd7841wpmeKTf6InZA== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIC6TCCAdGgAwIBAgIJAJbTyru1X/IPMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV +BAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBDQTAeFw0xODA2MTIxNDQ1NTBaFw0y +ODA2MDkxNDQ1NTBaMCMxITAfBgNVBAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBD +QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVjKHWpbD7TSlMxocjT +l6nIf7x32PmsQ9zGuLGGqA0UQZoIq3XLzL6LYUvJ5A5g0uyFGllHEfGAKrEaCQ8F +VvPS/Uh0FyfzWhRAziTSijjMIIVjjjUv9m9vFmcXScgHig7Odz8858V0krNH99qG +m3wjgaOerTWmt+jXCUfn01IkTPwxG2HlgEd45jNLSV7Vool+Ke8E2ki4lEkTeHzb +oulR5GUbp3nMi7E47VMQa3bNwnzWBbsaBSSQhLk3m5HaKhhxa6wJDK47NiMCkCkd +IHuWSQLVAfm85UAONtEOPwi0OuK3qbe8yKOFGf0KhB5MMeAym7MV/M4W0a49ogPD +9pMCAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI +hvcNAQELBQADggEBAJWz5xLMk5WNYbAb6yOxECBoZ2WeB/ql4VJ3O/3/tNsxOYnz +LeWo540zQh9rAmaxz7eumBlskMq4yGPSNXB9ycWGHgkcCeSzN2wv8CIzDBs2oBZj +TNk65LBZDssTOBtMW/+uTFHQfbuO3ISLhI0DXfREi9NDM3jfk11xHcsfh2RMV+Qd +NfwVaZZrCq+ouG+Evkv7Kqq+oyu0VFM/tz68TGl6ylhPFR1qh9wttpVjAOOCEQCL +qP2dP28lwYByCqHQqVHwbujv/LZjZnKW3LYndZixPPSRCJssDDwJvh/f6nTxg9ZE ++/JcYre5CaI8nzVHaSOCjNJ7FzULG64JiWOvQ50= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ideem_zsm_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/ideem_zsm_fido2_authenticator.pem new file mode 100644 index 0000000..087baaa --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ideem_zsm_fido2_authenticator.pem @@ -0,0 +1,18 @@ +Ideem ZSM FIDO2 Authenticator +----------------------------- + +-----BEGIN CERTIFICATE----- +MIICXjCCAgWgAwIBAgIUOqJuQbGX1odgIyCXzP0oPMd9x+MwCgYIKoZIzj0EAwIw +STElMCMGA1UEAwwcSWRlZW0gRklETzIgQXR0ZXN0YXRpb24gUm9vdDETMBEGA1UE +CgwKSWRlZW0gSW5jLjELMAkGA1UEBhMCVVMwHhcNMjUwNDIyMTkwODIzWhcNMzUw +NDIwMTkwODIzWjBJMSUwIwYDVQQDDBxJZGVlbSBGSURPMiBBdHRlc3RhdGlvbiBS +b290MRMwEQYDVQQKDApJZGVlbSBJbmMuMQswCQYDVQQGEwJVUzBZMBMGByqGSM49 +AgEGCCqGSM49AwEHA0IABCJSPtefmHcUbnnN/swd9ckK6FJBP5BJyM1d21TnABoS +qt0616l1+qPYnx3FOnQEiPlPui5Mj5UNQMU1+KFBT3yjgcowgccwDwYDVR0TAQH/ +BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFN1cNfycYh4i4306i82c +o/bHa3wjMIGEBgNVHSMEfTB7gBTdXDX8nGIeIuN9OovNnKP2x2t8I6FNpEswSTEl +MCMGA1UEAwwcSWRlZW0gRklETzIgQXR0ZXN0YXRpb24gUm9vdDETMBEGA1UECgwK +SWRlZW0gSW5jLjELMAkGA1UEBhMCVVOCFDqibkGxl9aHYCMgl8z9KDzHfcfjMAoG +CCqGSM49BAMCA0cAMEQCICLNmjxuEJ25FDgM6GjYBXXUd3c0r22M5JPq63EKRMum +AiBO/pBmEe6yIncXZ1ly0/jOlxmnW6l7NJkfU+oXwORzLg== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/idemia_id_one_card.pem b/restricted/WebAuthn/rootCertificates/mds/idemia_id_one_card.pem new file mode 100644 index 0000000..c3d767a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/idemia_id_one_card.pem @@ -0,0 +1,18 @@ +IDEMIA ID-ONE Card +------------------ + +-----BEGIN CERTIFICATE----- +MIICUzCCAfmgAwIBAgIJAL1f/vu2XWuRMAoGCCqGSM49BAMCMIGEMQswCQYDVQQG +EwJVUzERMA8GA1UECAwIVmlyZ2luaWExDzANBgNVBAcMBlJlc3RvbjEPMA0GA1UE +CgwGSURFTUlBMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMRww +GgYDVQQDDBNJREVNSUEgRklETyBSb290IENBMCAXDTIzMDkxNDA1MzgwM1oYDzIw +NTMwOTA2MDUzODAzWjCBhDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCFZpcmdpbmlh +MQ8wDQYDVQQHDAZSZXN0b24xDzANBgNVBAoMBklERU1JQTEiMCAGA1UECwwZQXV0 +aGVudGljYXRvciBBdHRlc3RhdGlvbjEcMBoGA1UEAwwTSURFTUlBIEZJRE8gUm9v +dCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHbT+RpkAo9EcL+OelCj8hih +nfFUKDOpNssdrHwse+quFYV0HL9jwQXO355mkI4dhp3TsnbMJ0AJ9jr6o7BoCEmj +UDBOMB0GA1UdDgQWBBQns6ahxs//gpba7XDZBNsgDG0lEDAfBgNVHSMEGDAWgBQn +s6ahxs//gpba7XDZBNsgDG0lEDAMBgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0gA +MEUCIQDbVMQqWznzb0eEYWQaQIn0dlYDoWQAbUI46b9jsC1uFgIgd+xE0rufW/7n +jKc1qksi3UhMojcFZC+3cLTRhWgKxjU= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/idemia_solvo_fly_80_r1_fido_card_draft.pem b/restricted/WebAuthn/rootCertificates/mds/idemia_solvo_fly_80_r1_fido_card_draft.pem new file mode 100644 index 0000000..979a33a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/idemia_solvo_fly_80_r1_fido_card_draft.pem @@ -0,0 +1,21 @@ +IDEMIA SOLVO Fly 80 R1 FIDO Card Draft +-------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIC3TCCAj6gAwIBAgIFAP1MDHswCgYIKoZIzj0EAwQwgZExCzAJBgNVBAYTAlVT +MQswCQYDVQQIDAJWQTEPMA0GA1UEBwwGUmVzdG9uMS0wKwYDVQQKDCRJREVNSUEg +SWRlbnRpdHkgYW5kIFNlY3VyaXR5IFVTQSBMTEMxNTAzBgNVBAMMLElERU1JQSBJ +ZGVudGl0eSBhbmQgU2VjdXJpdHkgVVNBIExMQyBSb290IENBMCAXDTI0MDcyNDA0 +NDczMloYDzIwNjQwNzI0MDQ0NzMyWjCBkTELMAkGA1UEBhMCVVMxCzAJBgNVBAgM +AlZBMQ8wDQYDVQQHDAZSZXN0b24xLTArBgNVBAoMJElERU1JQSBJZGVudGl0eSBh +bmQgU2VjdXJpdHkgVVNBIExMQzE1MDMGA1UEAwwsSURFTUlBIElkZW50aXR5IGFu +ZCBTZWN1cml0eSBVU0EgTExDIFJvb3QgQ0EwgZswEAYHKoZIzj0CAQYFK4EEACMD +gYYABABN542fuOiBcay4uhlwQQS5IjpE/DN4RnIU9zL0HWfTCdrjPTKq217Qt1AC +CgOaozsjlpxO0YzMnMkwjL2xvPybUADHl8K0WamGG3/nMuF8xE5PqgjncUZwrIEj +0+81Rt+u23SIbafofVUfP6nC/1ZLvu3S9917NhTk7LX0WKr4J2STy6M8MDowDAYD +VR0TBAUwAwEB/zALBgNVHQ8EBAMCAfYwHQYDVR0OBBYEFJFuJsF3ddpjvvn9IMHU +oLT17sR2MAoGCCqGSM49BAMEA4GMADCBiAJCASJ25MUSxp7OAz1tqIeTEItzf5wa +g8exr1Ra8UikkvFBGjmbapB01gwDJaXed6nP0geeNg/DICtUiSgBralK9JQjAkIA +q+uX0/CSjR0OgADir/tL2BgXXgM/Ko1XSKxwfNHRJ0dOCeF6txIr8vDPeccZlp52 +wdtmToJhn+zhSvU2jbO3asQ= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/idemia_solvo_fly_80_r3_fido_card_c.pem b/restricted/WebAuthn/rootCertificates/mds/idemia_solvo_fly_80_r3_fido_card_c.pem new file mode 100644 index 0000000..104d19c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/idemia_solvo_fly_80_r3_fido_card_c.pem @@ -0,0 +1,20 @@ +IDEMIA SOLVO Fly 80 R3 FIDO Card c +---------------------------------- + +-----BEGIN CERTIFICATE----- +MIICxDCCAiWgAwIBAgIGAOrAAAABMAoGCCqGSM49BAMEMIGEMQswCQYDVQQGEwJG +UjEMMAoGA1UECAwDSURGMRMwEQYDVQQHDApDb3VyYmV2b2llMSMwIQYDVQQKDBpJ +REVNSUEgU2VjdXJlIFRyYW5zYWN0aW9uczEtMCsGA1UEAwwkSURFTUlBIFNlY3Vy +ZSBUcmFuc2FjdGlvbnMgLSBSb290IENBMCAXDTI1MDgyODIyMDAwMFoYDzIwNjUw +ODI5MjE1OTU5WjCBhDELMAkGA1UEBhMCRlIxDDAKBgNVBAgMA0lERjETMBEGA1UE +BwwKQ291cmJldm9pZTEjMCEGA1UECgwaSURFTUlBIFNlY3VyZSBUcmFuc2FjdGlv +bnMxLTArBgNVBAMMJElERU1JQSBTZWN1cmUgVHJhbnNhY3Rpb25zIC0gUm9vdCBD +QTCBmzAQBgcqhkjOPQIBBgUrgQQAIwOBhgAEACe8jdSnVTKtzkgsCKJFuipWL9uU +izsRr6/iTCe+DKrn02SnpsPHZyo4WZ58pUu66T6kvfB8aGA5i7eqUJSghQtGAEbf +ldSzGIbtWvXPhAjEReyfSn3bxoEBRfpt1xh2l1GJWtgEq6YI9SqkCIXWBp1R3x6i +abE9HW3OYFQIDrmJUuE0ozwwOjAdBgNVHQ4EFgQUz+odERwVEKM4Vf+sPUPCpzVe +yS4wCwYDVR0PBAQDAgD/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwQDgYwAMIGI +AkIBO/lejjtpfar0ql03ShGfMPOPDTxHEZdUrPSiwdI8koIkqtXgB/qbo8Rv+OCB ++0veBssi6JP9rHIhesfXeRC5DcICQgGycjoruKw1C8s4X3jldWKBR+DUc8TW0ixE +gJ1WSrm6J3ulSww6cF51zefB0OAhvF/hA4J87nz3xucFL1KbqjIcnQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/idemia_solvo_fly_80_r3_fido_card_e.pem b/restricted/WebAuthn/rootCertificates/mds/idemia_solvo_fly_80_r3_fido_card_e.pem new file mode 100644 index 0000000..6bdbbf3 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/idemia_solvo_fly_80_r3_fido_card_e.pem @@ -0,0 +1,20 @@ +IDEMIA SOLVO Fly 80 R3 FIDO Card e +---------------------------------- + +-----BEGIN CERTIFICATE----- +MIICxDCCAiWgAwIBAgIGAOrAAAABMAoGCCqGSM49BAMEMIGEMQswCQYDVQQGEwJG +UjEMMAoGA1UECAwDSURGMRMwEQYDVQQHDApDb3VyYmV2b2llMSMwIQYDVQQKDBpJ +REVNSUEgU2VjdXJlIFRyYW5zYWN0aW9uczEtMCsGA1UEAwwkSURFTUlBIFNlY3Vy +ZSBUcmFuc2FjdGlvbnMgLSBSb290IENBMCAXDTI1MDgyODIyMDAwMFoYDzIwNjUw +ODI5MjE1OTU5WjCBhDELMAkGA1UEBhMCRlIxDDAKBgNVBAgMA0lERjETMBEGA1UE +BwwKQ291cmJldm9pZTEjMCEGA1UECgwaSURFTUlBIFNlY3VyZSBUcmFuc2FjdGlv +bnMxLTArBgNVBAMMJElERU1JQSBTZWN1cmUgVHJhbnNhY3Rpb25zIC0gUm9vdCBD +QTCBmzAQBgcqhkjOPQIBBgUrgQQAIwOBhgAEACe8jdSnVTKtzkgsCKJFuipWL9uU +izsRr6/iTCe+DKrn02SnpsPHZyo4WZ58pUu66T6kvfB8aGA5i7eqUJSghQtGAEbf +ldSzGIbtWvXPhAjEReyfSn3bxoEBRfpt1xh2l1GJWtgEq6YI9SqkCIXWBp1R3x6i +abE9HW3OYFQIDrmJUuE0ozwwOjAdBgNVHQ4EFgQUz+odERwVEKM4Vf+sPUPCpzVe +yS4wCwYDVR0PBAQDAgD/MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwQDgYwAMIGI +AkIBO/lejjtpfar0ql03ShGfMPOPDTxHEZdUrPSiwdI8koIkqtXgB/qbo8Rv+OCB ++0veBssi6JP9rHIhesfXeRC5DcICQgGycjoruKw1C8s4X3jldWKBR+DUc8TW0ixE +gJ1WSrm6J3ulSww6cF51zefB0OAhvF/hA4J87nz3xucFL1KbqjIcnQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/idex_ctap2_1_biometric_no_pin.pem b/restricted/WebAuthn/rootCertificates/mds/idex_ctap2_1_biometric_no_pin.pem new file mode 100644 index 0000000..100c728 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/idex_ctap2_1_biometric_no_pin.pem @@ -0,0 +1,15 @@ +IDEX CTAP2.1 Biometric, No pin +------------------------------ + +-----BEGIN CERTIFICATE----- +MIIBvjCCAWOgAwIBAgIIDa1ETmFPraEwCgYIKoZIzj0EAwIwSzELMAkGA1UEBhMC +Tk8xHDAaBgNVBAoTE0lERVggQmlvbWV0cmljcyBBU0ExHjAcBgNVBAMTFUlERVgt +RklETy1Sb290LUNBIEVDQzAgFw0yNTA4MjgwMDAwMDBaGA8yMDU1MDgyNzIzNTk1 +OVowSzELMAkGA1UEBhMCTk8xHDAaBgNVBAoTE0lERVggQmlvbWV0cmljcyBBU0Ex +HjAcBgNVBAMTFUlERVgtRklETy1Sb290LUNBIEVDQzBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABEn+YFRPVzf/F22NSkg+KqQvlha1X4GoAuktn89wZnEoSESAfYnX +VBUVQCTtsc8QTdg8nA9YJaOuUGCfZrh+PiejLzAtMAwGA1UdEwQFMAMBAf8wHQYD +VR0OBBYEFNO3/LGjonxXrlWFad8p4ce9Z8qwMAoGCCqGSM49BAMCA0kAMEYCIQDP +5fP4AP99S8tw73zTrIlWewm700MdGCKAi7CEZ8oe2wIhAK6U+bNY18LmeGXPAjR+ +qoGHpZVn+sKPP5+pQg5Zosit +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/idmelon_android_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/idmelon_android_authenticator.pem new file mode 100644 index 0000000..41a5fa2 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/idmelon_android_authenticator.pem @@ -0,0 +1,15 @@ +IDmelon Android Authenticator +----------------------------- + +-----BEGIN CERTIFICATE----- +MIIByzCCAXGgAwIBAgIJANmMNK6jVpuuMAoGCCqGSM49BAMCMEExJDAiBgNVBAoM +G1ZhbmNvc3lzIERhdGEgU2VjdXJpdHkgSW5jLjEZMBcGA1UEAwwQVmFuY29zeXMg +Um9vdCBDQTAgFw0yMjEyMTQxODQxMDlaGA8yMDcyMTIwMTE4NDEwOVowQTEkMCIG +A1UECgwbVmFuY29zeXMgRGF0YSBTZWN1cml0eSBJbmMuMRkwFwYDVQQDDBBWYW5j +b3N5cyBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEalYgEopnKScA +m+d9f1XpGB3zbkZCD3hZEKuxTclpBYlj4ypNRg0gMSa7geBgd6nck50YaVhdy75u +Ic2wbWX8t6NQME4wHQYDVR0OBBYEFOxyf0cDs8Yl+VnWSZ1uYJAKkFeVMB8GA1Ud +IwQYMBaAFOxyf0cDs8Yl+VnWSZ1uYJAKkFeVMAwGA1UdEwQFMAMBAf8wCgYIKoZI +zj0EAwIDSAAwRQIhAO2XuiRDXxy/UkWhsuZQYNUXeOj08AeTWADAqXvcA30hAiBi +2cdGd61PNwHDTYjXPenPcD8S0rFTDncNWfs3E/WDXA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/idmelon_ios_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/idmelon_ios_authenticator.pem new file mode 100644 index 0000000..4dff921 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/idmelon_ios_authenticator.pem @@ -0,0 +1,15 @@ +IDmelon iOS Authenticator +------------------------- + +-----BEGIN CERTIFICATE----- +MIIByzCCAXGgAwIBAgIJANmMNK6jVpuuMAoGCCqGSM49BAMCMEExJDAiBgNVBAoM +G1ZhbmNvc3lzIERhdGEgU2VjdXJpdHkgSW5jLjEZMBcGA1UEAwwQVmFuY29zeXMg +Um9vdCBDQTAgFw0yMjEyMTQxODQxMDlaGA8yMDcyMTIwMTE4NDEwOVowQTEkMCIG +A1UECgwbVmFuY29zeXMgRGF0YSBTZWN1cml0eSBJbmMuMRkwFwYDVQQDDBBWYW5j +b3N5cyBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEalYgEopnKScA +m+d9f1XpGB3zbkZCD3hZEKuxTclpBYlj4ypNRg0gMSa7geBgd6nck50YaVhdy75u +Ic2wbWX8t6NQME4wHQYDVR0OBBYEFOxyf0cDs8Yl+VnWSZ1uYJAKkFeVMB8GA1Ud +IwQYMBaAFOxyf0cDs8Yl+VnWSZ1uYJAKkFeVMAwGA1UdEwQFMAMBAf8wCgYIKoZI +zj0EAwIDSAAwRQIhAO2XuiRDXxy/UkWhsuZQYNUXeOj08AeTWADAqXvcA30hAiBi +2cdGd61PNwHDTYjXPenPcD8S0rFTDncNWfs3E/WDXA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/idprime_3930_fido.pem b/restricted/WebAuthn/rootCertificates/mds/idprime_3930_fido.pem new file mode 100644 index 0000000..56e8b1a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/idprime_3930_fido.pem @@ -0,0 +1,43 @@ +IDPrime 3930 FIDO +----------------- + +-----BEGIN CERTIFICATE----- +MIIC6TCCAdGgAwIBAgIJAJbTyru1X/IPMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV +BAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBDQTAeFw0xODA2MTIxNDQ1NTBaFw0y +ODA2MDkxNDQ1NTBaMCMxITAfBgNVBAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBD +QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVjKHWpbD7TSlMxocjT +l6nIf7x32PmsQ9zGuLGGqA0UQZoIq3XLzL6LYUvJ5A5g0uyFGllHEfGAKrEaCQ8F +VvPS/Uh0FyfzWhRAziTSijjMIIVjjjUv9m9vFmcXScgHig7Odz8858V0krNH99qG +m3wjgaOerTWmt+jXCUfn01IkTPwxG2HlgEd45jNLSV7Vool+Ke8E2ki4lEkTeHzb +oulR5GUbp3nMi7E47VMQa3bNwnzWBbsaBSSQhLk3m5HaKhhxa6wJDK47NiMCkCkd +IHuWSQLVAfm85UAONtEOPwi0OuK3qbe8yKOFGf0KhB5MMeAym7MV/M4W0a49ogPD +9pMCAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI +hvcNAQELBQADggEBAJWz5xLMk5WNYbAb6yOxECBoZ2WeB/ql4VJ3O/3/tNsxOYnz +LeWo540zQh9rAmaxz7eumBlskMq4yGPSNXB9ycWGHgkcCeSzN2wv8CIzDBs2oBZj +TNk65LBZDssTOBtMW/+uTFHQfbuO3ISLhI0DXfREi9NDM3jfk11xHcsfh2RMV+Qd +NfwVaZZrCq+ouG+Evkv7Kqq+oyu0VFM/tz68TGl6ylhPFR1qh9wttpVjAOOCEQCL +qP2dP28lwYByCqHQqVHwbujv/LZjZnKW3LYndZixPPSRCJssDDwJvh/f6nTxg9ZE ++/JcYre5CaI8nzVHaSOCjNJ7FzULG64JiWOvQ50= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIJAICUTvkgtj5CMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAkZSMQwwCgYDVQQKDANESVMxCzAJBgNVBAsMAkNTMScwJQYDVQQDDB5HZW1h +bHRvIE11bHRpQXBwIEZJRE8gU3ViY2EgQ0EwHhcNMjAwNzA3MTQzNzE4WhcNMzAw +NzA1MTQzNzE4WjBRMQswCQYDVQQGEwJGUjEMMAoGA1UECgwDRElTMQswCQYDVQQL +DAJDUzEnMCUGA1UEAwweR2VtYWx0byBNdWx0aUFwcCBGSURPIFN1YmNhIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAKOeqC5/p0D1isCYKQJlVUO +rB6I7DLocunE/Rm8duGTbyxQht3CbFVTv3N2Lp2fbjxlI+3sOSGk33FTYkTqxcdJ +IrJ7SskBcUSNrfKOaQT/6KQcP4Cm7V+655Tq+TWxyxWQhDygt15qoP7MuK6bT9Sw +pCjpfKhaMSmyQaMoUcRAbLqdzBCac0hzB+Ze+gqJlnWV9UaSI2rFsVuH4ZE0cRO+ +MOpaLgM/s248nGGHp22ewSQfbnPaBbb8iqyAP+cu52GLsUpKRJebE+R6+PMQ9JCd +WeQZR3DkfSidkv3mcb4jq1iIta+MqKhRnwrfXh911KWLnYAl9ENChLX0c6Sj1QID +AQABo1AwTjAdBgNVHQ4EFgQUWLvhRBUPn8uLIf68+gv/NZIwGSIwHwYDVR0jBBgw +FoAUWLvhRBUPn8uLIf68+gv/NZIwGSIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAFLrDhaegeKHxYjH3EP3vUBKhnzM206ASxgeYCO2Ec9pOlYJaeqFE ++sUamUV/pwjDlqNaSgFgy7TweYkvOmMn4qScsHqvJ3zGOAiafwah1vUHfClXR8+a +xO2iGOUF0JKrZ9YYjbAa5/4HClv7jFPOdMWTOQyngoiHAs3jkuYjpCLFlB4VOi3d +1wjA1pnTdBKkAb7t8nTvw+/XbFvcQa73VH7sjvoBqD3fdMfRcuVq4qUZtZT6cGag +THD61Ttqh9oMCZXcDbR1PGZnNbqycsWPDIK0npmK3/3lfV8c+Zsry6e170mfJMZp +7O8m6CSz6/VLK+yDJd7841wpmeKTf6InZA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/idprime_3940_fido.pem b/restricted/WebAuthn/rootCertificates/mds/idprime_3940_fido.pem new file mode 100644 index 0000000..995c509 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/idprime_3940_fido.pem @@ -0,0 +1,43 @@ +IDPrime 3940 FIDO +----------------- + +-----BEGIN CERTIFICATE----- +MIIC6TCCAdGgAwIBAgIJAJbTyru1X/IPMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV +BAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBDQTAeFw0xODA2MTIxNDQ1NTBaFw0y +ODA2MDkxNDQ1NTBaMCMxITAfBgNVBAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBD +QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVjKHWpbD7TSlMxocjT +l6nIf7x32PmsQ9zGuLGGqA0UQZoIq3XLzL6LYUvJ5A5g0uyFGllHEfGAKrEaCQ8F +VvPS/Uh0FyfzWhRAziTSijjMIIVjjjUv9m9vFmcXScgHig7Odz8858V0krNH99qG +m3wjgaOerTWmt+jXCUfn01IkTPwxG2HlgEd45jNLSV7Vool+Ke8E2ki4lEkTeHzb +oulR5GUbp3nMi7E47VMQa3bNwnzWBbsaBSSQhLk3m5HaKhhxa6wJDK47NiMCkCkd +IHuWSQLVAfm85UAONtEOPwi0OuK3qbe8yKOFGf0KhB5MMeAym7MV/M4W0a49ogPD +9pMCAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI +hvcNAQELBQADggEBAJWz5xLMk5WNYbAb6yOxECBoZ2WeB/ql4VJ3O/3/tNsxOYnz +LeWo540zQh9rAmaxz7eumBlskMq4yGPSNXB9ycWGHgkcCeSzN2wv8CIzDBs2oBZj +TNk65LBZDssTOBtMW/+uTFHQfbuO3ISLhI0DXfREi9NDM3jfk11xHcsfh2RMV+Qd +NfwVaZZrCq+ouG+Evkv7Kqq+oyu0VFM/tz68TGl6ylhPFR1qh9wttpVjAOOCEQCL +qP2dP28lwYByCqHQqVHwbujv/LZjZnKW3LYndZixPPSRCJssDDwJvh/f6nTxg9ZE ++/JcYre5CaI8nzVHaSOCjNJ7FzULG64JiWOvQ50= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIJAICUTvkgtj5CMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAkZSMQwwCgYDVQQKDANESVMxCzAJBgNVBAsMAkNTMScwJQYDVQQDDB5HZW1h +bHRvIE11bHRpQXBwIEZJRE8gU3ViY2EgQ0EwHhcNMjAwNzA3MTQzNzE4WhcNMzAw +NzA1MTQzNzE4WjBRMQswCQYDVQQGEwJGUjEMMAoGA1UECgwDRElTMQswCQYDVQQL +DAJDUzEnMCUGA1UEAwweR2VtYWx0byBNdWx0aUFwcCBGSURPIFN1YmNhIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAKOeqC5/p0D1isCYKQJlVUO +rB6I7DLocunE/Rm8duGTbyxQht3CbFVTv3N2Lp2fbjxlI+3sOSGk33FTYkTqxcdJ +IrJ7SskBcUSNrfKOaQT/6KQcP4Cm7V+655Tq+TWxyxWQhDygt15qoP7MuK6bT9Sw +pCjpfKhaMSmyQaMoUcRAbLqdzBCac0hzB+Ze+gqJlnWV9UaSI2rFsVuH4ZE0cRO+ +MOpaLgM/s248nGGHp22ewSQfbnPaBbb8iqyAP+cu52GLsUpKRJebE+R6+PMQ9JCd +WeQZR3DkfSidkv3mcb4jq1iIta+MqKhRnwrfXh911KWLnYAl9ENChLX0c6Sj1QID +AQABo1AwTjAdBgNVHQ4EFgQUWLvhRBUPn8uLIf68+gv/NZIwGSIwHwYDVR0jBBgw +FoAUWLvhRBUPn8uLIf68+gv/NZIwGSIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAFLrDhaegeKHxYjH3EP3vUBKhnzM206ASxgeYCO2Ec9pOlYJaeqFE ++sUamUV/pwjDlqNaSgFgy7TweYkvOmMn4qScsHqvJ3zGOAiafwah1vUHfClXR8+a +xO2iGOUF0JKrZ9YYjbAa5/4HClv7jFPOdMWTOQyngoiHAs3jkuYjpCLFlB4VOi3d +1wjA1pnTdBKkAb7t8nTvw+/XbFvcQa73VH7sjvoBqD3fdMfRcuVq4qUZtZT6cGag +THD61Ttqh9oMCZXcDbR1PGZnNbqycsWPDIK0npmK3/3lfV8c+Zsry6e170mfJMZp +7O8m6CSz6/VLK+yDJd7841wpmeKTf6InZA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/idprime_931_fido.pem b/restricted/WebAuthn/rootCertificates/mds/idprime_931_fido.pem new file mode 100644 index 0000000..e4994f8 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/idprime_931_fido.pem @@ -0,0 +1,43 @@ +IDPrime 931 Fido +---------------- + +-----BEGIN CERTIFICATE----- +MIIC6TCCAdGgAwIBAgIJAJbTyru1X/IPMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV +BAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBDQTAeFw0xODA2MTIxNDQ1NTBaFw0y +ODA2MDkxNDQ1NTBaMCMxITAfBgNVBAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBD +QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVjKHWpbD7TSlMxocjT +l6nIf7x32PmsQ9zGuLGGqA0UQZoIq3XLzL6LYUvJ5A5g0uyFGllHEfGAKrEaCQ8F +VvPS/Uh0FyfzWhRAziTSijjMIIVjjjUv9m9vFmcXScgHig7Odz8858V0krNH99qG +m3wjgaOerTWmt+jXCUfn01IkTPwxG2HlgEd45jNLSV7Vool+Ke8E2ki4lEkTeHzb +oulR5GUbp3nMi7E47VMQa3bNwnzWBbsaBSSQhLk3m5HaKhhxa6wJDK47NiMCkCkd +IHuWSQLVAfm85UAONtEOPwi0OuK3qbe8yKOFGf0KhB5MMeAym7MV/M4W0a49ogPD +9pMCAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI +hvcNAQELBQADggEBAJWz5xLMk5WNYbAb6yOxECBoZ2WeB/ql4VJ3O/3/tNsxOYnz +LeWo540zQh9rAmaxz7eumBlskMq4yGPSNXB9ycWGHgkcCeSzN2wv8CIzDBs2oBZj +TNk65LBZDssTOBtMW/+uTFHQfbuO3ISLhI0DXfREi9NDM3jfk11xHcsfh2RMV+Qd +NfwVaZZrCq+ouG+Evkv7Kqq+oyu0VFM/tz68TGl6ylhPFR1qh9wttpVjAOOCEQCL +qP2dP28lwYByCqHQqVHwbujv/LZjZnKW3LYndZixPPSRCJssDDwJvh/f6nTxg9ZE ++/JcYre5CaI8nzVHaSOCjNJ7FzULG64JiWOvQ50= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIJAICUTvkgtj5CMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAkZSMQwwCgYDVQQKDANESVMxCzAJBgNVBAsMAkNTMScwJQYDVQQDDB5HZW1h +bHRvIE11bHRpQXBwIEZJRE8gU3ViY2EgQ0EwHhcNMjAwNzA3MTQzNzE4WhcNMzAw +NzA1MTQzNzE4WjBRMQswCQYDVQQGEwJGUjEMMAoGA1UECgwDRElTMQswCQYDVQQL +DAJDUzEnMCUGA1UEAwweR2VtYWx0byBNdWx0aUFwcCBGSURPIFN1YmNhIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAKOeqC5/p0D1isCYKQJlVUO +rB6I7DLocunE/Rm8duGTbyxQht3CbFVTv3N2Lp2fbjxlI+3sOSGk33FTYkTqxcdJ +IrJ7SskBcUSNrfKOaQT/6KQcP4Cm7V+655Tq+TWxyxWQhDygt15qoP7MuK6bT9Sw +pCjpfKhaMSmyQaMoUcRAbLqdzBCac0hzB+Ze+gqJlnWV9UaSI2rFsVuH4ZE0cRO+ +MOpaLgM/s248nGGHp22ewSQfbnPaBbb8iqyAP+cu52GLsUpKRJebE+R6+PMQ9JCd +WeQZR3DkfSidkv3mcb4jq1iIta+MqKhRnwrfXh911KWLnYAl9ENChLX0c6Sj1QID +AQABo1AwTjAdBgNVHQ4EFgQUWLvhRBUPn8uLIf68+gv/NZIwGSIwHwYDVR0jBBgw +FoAUWLvhRBUPn8uLIf68+gv/NZIwGSIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAFLrDhaegeKHxYjH3EP3vUBKhnzM206ASxgeYCO2Ec9pOlYJaeqFE ++sUamUV/pwjDlqNaSgFgy7TweYkvOmMn4qScsHqvJ3zGOAiafwah1vUHfClXR8+a +xO2iGOUF0JKrZ9YYjbAa5/4HClv7jFPOdMWTOQyngoiHAs3jkuYjpCLFlB4VOi3d +1wjA1pnTdBKkAb7t8nTvw+/XbFvcQa73VH7sjvoBqD3fdMfRcuVq4qUZtZT6cGag +THD61Ttqh9oMCZXcDbR1PGZnNbqycsWPDIK0npmK3/3lfV8c+Zsry6e170mfJMZp +7O8m6CSz6/VLK+yDJd7841wpmeKTf6InZA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/idprime_941_fido.pem b/restricted/WebAuthn/rootCertificates/mds/idprime_941_fido.pem new file mode 100644 index 0000000..2e85c21 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/idprime_941_fido.pem @@ -0,0 +1,43 @@ +IDPrime 941 Fido +---------------- + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIJAICUTvkgtj5CMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAkZSMQwwCgYDVQQKDANESVMxCzAJBgNVBAsMAkNTMScwJQYDVQQDDB5HZW1h +bHRvIE11bHRpQXBwIEZJRE8gU3ViY2EgQ0EwHhcNMjAwNzA3MTQzNzE4WhcNMzAw +NzA1MTQzNzE4WjBRMQswCQYDVQQGEwJGUjEMMAoGA1UECgwDRElTMQswCQYDVQQL +DAJDUzEnMCUGA1UEAwweR2VtYWx0byBNdWx0aUFwcCBGSURPIFN1YmNhIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAKOeqC5/p0D1isCYKQJlVUO +rB6I7DLocunE/Rm8duGTbyxQht3CbFVTv3N2Lp2fbjxlI+3sOSGk33FTYkTqxcdJ +IrJ7SskBcUSNrfKOaQT/6KQcP4Cm7V+655Tq+TWxyxWQhDygt15qoP7MuK6bT9Sw +pCjpfKhaMSmyQaMoUcRAbLqdzBCac0hzB+Ze+gqJlnWV9UaSI2rFsVuH4ZE0cRO+ +MOpaLgM/s248nGGHp22ewSQfbnPaBbb8iqyAP+cu52GLsUpKRJebE+R6+PMQ9JCd +WeQZR3DkfSidkv3mcb4jq1iIta+MqKhRnwrfXh911KWLnYAl9ENChLX0c6Sj1QID +AQABo1AwTjAdBgNVHQ4EFgQUWLvhRBUPn8uLIf68+gv/NZIwGSIwHwYDVR0jBBgw +FoAUWLvhRBUPn8uLIf68+gv/NZIwGSIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAFLrDhaegeKHxYjH3EP3vUBKhnzM206ASxgeYCO2Ec9pOlYJaeqFE ++sUamUV/pwjDlqNaSgFgy7TweYkvOmMn4qScsHqvJ3zGOAiafwah1vUHfClXR8+a +xO2iGOUF0JKrZ9YYjbAa5/4HClv7jFPOdMWTOQyngoiHAs3jkuYjpCLFlB4VOi3d +1wjA1pnTdBKkAb7t8nTvw+/XbFvcQa73VH7sjvoBqD3fdMfRcuVq4qUZtZT6cGag +THD61Ttqh9oMCZXcDbR1PGZnNbqycsWPDIK0npmK3/3lfV8c+Zsry6e170mfJMZp +7O8m6CSz6/VLK+yDJd7841wpmeKTf6InZA== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIC6TCCAdGgAwIBAgIJAJbTyru1X/IPMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV +BAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBDQTAeFw0xODA2MTIxNDQ1NTBaFw0y +ODA2MDkxNDQ1NTBaMCMxITAfBgNVBAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBD +QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVjKHWpbD7TSlMxocjT +l6nIf7x32PmsQ9zGuLGGqA0UQZoIq3XLzL6LYUvJ5A5g0uyFGllHEfGAKrEaCQ8F +VvPS/Uh0FyfzWhRAziTSijjMIIVjjjUv9m9vFmcXScgHig7Odz8858V0krNH99qG +m3wjgaOerTWmt+jXCUfn01IkTPwxG2HlgEd45jNLSV7Vool+Ke8E2ki4lEkTeHzb +oulR5GUbp3nMi7E47VMQa3bNwnzWBbsaBSSQhLk3m5HaKhhxa6wJDK47NiMCkCkd +IHuWSQLVAfm85UAONtEOPwi0OuK3qbe8yKOFGf0KhB5MMeAym7MV/M4W0a49ogPD +9pMCAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI +hvcNAQELBQADggEBAJWz5xLMk5WNYbAb6yOxECBoZ2WeB/ql4VJ3O/3/tNsxOYnz +LeWo540zQh9rAmaxz7eumBlskMq4yGPSNXB9ycWGHgkcCeSzN2wv8CIzDBs2oBZj +TNk65LBZDssTOBtMW/+uTFHQfbuO3ISLhI0DXfREi9NDM3jfk11xHcsfh2RMV+Qd +NfwVaZZrCq+ouG+Evkv7Kqq+oyu0VFM/tz68TGl6ylhPFR1qh9wttpVjAOOCEQCL +qP2dP28lwYByCqHQqVHwbujv/LZjZnKW3LYndZixPPSRCJssDDwJvh/f6nTxg9ZE ++/JcYre5CaI8nzVHaSOCjNJ7FzULG64JiWOvQ50= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/iist_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/iist_fido2_authenticator.pem new file mode 100644 index 0000000..388134e --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/iist_fido2_authenticator.pem @@ -0,0 +1,18 @@ +IIST FIDO2 Authenticator +------------------------ + +-----BEGIN CERTIFICATE----- +MIICPjCCAeSgAwIBAgIUTOyZJzkHGgxxuI6MQl1PVr8rzwwwCgYIKoZIzj0EAwIw +djELMAkGA1UEBhMCVFcxEDAOBgNVBAgMB0hTSU5DSFUxDTALBgNVBAoMBElJU1Qx +FTATBgNVBAsMDElJU1QgUm9vdCBDQTENMAsGA1UEAwwESUlTVDEgMB4GCSqGSIb3 +DQEJARYRc2FsZXNAaWlzdC5jb20udHcwHhcNMjQxMDA4MDc1MDQyWhcNMzQxMDA2 +MDc1MDQyWjB2MQswCQYDVQQGEwJUVzEQMA4GA1UECAwHSFNJTkNIVTENMAsGA1UE +CgwESUlTVDEVMBMGA1UECwwMSUlTVCBSb290IENBMQ0wCwYDVQQDDARJSVNUMSAw +HgYJKoZIhvcNAQkBFhFzYWxlc0BpaXN0LmNvbS50dzBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABEP5TJjpc3zFKOC2pVmtFNiLsse14+LfRg3u5Ww3zKkPdS4udRwG +bWS2yfAaaNmlCxOFgeCA/tgUe6fxvzN20rajUDBOMB0GA1UdDgQWBBT7fnIusIct +RQlxWS6XgcYPmlY9WzAfBgNVHSMEGDAWgBT7fnIusIctRQlxWS6XgcYPmlY9WzAM +BgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0gAMEUCIQDLHOemcopF5a9NhLU5uxAh +W9y+j26+MjjdbRrcfmwBnQIgWsn3VN+9/PCSEJMLP4rnB14pZUKlxSXXTMqEP7PX +h9M= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/improveid_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/improveid_authenticator.pem new file mode 100644 index 0000000..33877d2 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/improveid_authenticator.pem @@ -0,0 +1,19 @@ +ImproveID Authenticator +----------------------- + +-----BEGIN CERTIFICATE----- +MIICbTCCAhOgAwIBAgIJAKM9Fqk0+X9/MAoGCCqGSM49BAMCMIGRMQswCQYDVQQG +EwJVUzERMA8GA1UECAwIVmlyZ2luaWExEDAOBgNVBAcMB0FzaGJ1cm4xGDAWBgNV +BAoMD0ltcHJvdmVJRCwgSW5jLjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRl +c3RhdGlvbjEfMB0GA1UEAwwWSW1wcm92ZUlEIEZJRE8gUm9vdCBDQTAgFw0yMjEy +MDEwOTI5NThaGA8yMDUyMTEyMzA5Mjk1OFowgZExCzAJBgNVBAYTAlVTMREwDwYD +VQQIDAhWaXJnaW5pYTEQMA4GA1UEBwwHQXNoYnVybjEYMBYGA1UECgwPSW1wcm92 +ZUlELCBJbmMuMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMR8w +HQYDVQQDDBZJbXByb3ZlSUQgRklETyBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEfX0sFykivCG95Pi5jWWg0Msa0xoXqG5R+6XohkPSOWqmcJW+CkC4 +DWOAADzDDYZuhx0s1B/Uk2BoVi9mRIqagqNQME4wHQYDVR0OBBYEFMJpKh3XcfRN +iXVWf6PnudZi2Ms3MB8GA1UdIwQYMBaAFMJpKh3XcfRNiXVWf6PnudZi2Ms3MAwG +A1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIgM90YV0TT39V7BDxnfFKJbjU/ +HvEnJskcFgWV9/tKrfkCIQDfCCTfCzwYRWJpXruN8wRf4DY1Ea64gjjI9j5llhIP +tw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/key_id_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/key_id_fido2_authenticator.pem new file mode 100644 index 0000000..0d29b91 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/key_id_fido2_authenticator.pem @@ -0,0 +1,15 @@ +KEY-ID FIDO2 Authenticator +-------------------------- + +-----BEGIN CERTIFICATE----- +MIIBvjCCAWOgAwIBAgIRALGpmWYIZxWro4fLPUEs/gIwCgYIKoZIzj0EAwIwPTEL +MAkGA1UEBhMCR0IxFzAVBgNVBAoMDkRvdCBPcmlnaW4gTHRkMRUwEwYDVQQDDAxG +SURPIFJvb3QgQ0EwIBcNMTkxMDE3MDAwMDAwWhgPMjA0OTEwMTYyMzU5NTlaMD0x +CzAJBgNVBAYTAkdCMRcwFQYDVQQKDA5Eb3QgT3JpZ2luIEx0ZDEVMBMGA1UEAwwM +RklETyBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETtixJEesyIi9 +m9uMLgamB2TGe4/Zw63XXyXRDQ4CI9uexLlkcWA+R+SP9J/5onHKmOKHxsESlGj4 +7athLcNeH6NCMEAwHQYDVR0OBBYEFLsJv0bY9ruPC0V7OfwPkOIw05ZOMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMCA0kAMEYCIQDn +YRgmGA+FSxKFNUOyP8Lv1faAriI6ZwoqeGGoubv4KwIhANMq6UTh0CzJD6TUxFNf +y/8hgcCaOu5swFNb+3xtJvXK +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/keyvault_secp256r1_fido2_ctap2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/keyvault_secp256r1_fido2_ctap2_authenticator.pem new file mode 100644 index 0000000..7137fac --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/keyvault_secp256r1_fido2_ctap2_authenticator.pem @@ -0,0 +1,16 @@ +KeyVault Secp256R1 FIDO2 CTAP2 Authenticator +-------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB6jCCAZACCQDIRPO3R7VtLDAKBggqhkjOPQQDAjB8MQswCQYDVQQGEwJTSzER +MA8GA1UECgwIQ3JheW9uaWMxIjAgBgNVBAsMGUF1dGhlbnRpY2F0b3IgQXR0ZXN0 +YXRpb24xFTATBgNVBAMMDGNyYXlvbmljLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5m +b0BjcmF5b25pYy5pbzAgFw0yMDA2MTAxMTQyMjhaGA8yMDcwMDUyOTExNDIyOFow +fDELMAkGA1UEBhMCU0sxETAPBgNVBAoMCENyYXlvbmljMSIwIAYDVQQLDBlBdXRo +ZW50aWNhdG9yIEF0dGVzdGF0aW9uMRUwEwYDVQQDDAxjcmF5b25pYy5jb20xHzAd +BgkqhkiG9w0BCQEWEGluZm9AY3JheW9uaWMuaW8wWTATBgcqhkjOPQIBBggqhkjO +PQMBBwNCAASUw4Rt6163HRuXeBqxd7PHcf5g9CmS0hcjk3jGPkrA6UzLSKya6n6y +O2Z1EbsTXtU1RgAcQ8U635nPr4y/fLGwMAoGCCqGSM49BAMCA0gAMEUCIQCqaIO/ +1cdKqeg3B/qwAPGogCXUiofs46O44vSFnPWFmgIgD2En+qILz06TzPNn00JOgmgI +jLcVBy5GSo2s3tYmyJA= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/keyxentic_fido2_secp256r1_fido2_ctap2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/keyxentic_fido2_secp256r1_fido2_ctap2_authenticator.pem new file mode 100644 index 0000000..d1d1ea6 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/keyxentic_fido2_secp256r1_fido2_ctap2_authenticator.pem @@ -0,0 +1,13 @@ +KeyXentic FIDO2 Secp256R1 FIDO2 CTAP2 Authenticator +--------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBaDCCAQ+gAwIBAgIUJUr5TBL+R/rFfzTfGq8tDdawAwkwCgYIKoZIzj0EAwIw +ITEfMB0GA1UEAwwWS2V5WGVudGljIEZJRE8gUm9vdCBDQTAgFw0yMDA3MjgwOTQ0 +NTJaGA8yMDcwMDcxNjA5NDQ1MlowITEfMB0GA1UEAwwWS2V5WGVudGljIEZJRE8g +Um9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMKI2kG+jmA7HaWopPdn +vhBwRcbqg+mJRSaOhSqdBfI00scIx39yehs4NCIEdzlOgCEtwHGhTFzIFAXahgSh +UpejIzAhMBIGA1UdEwEB/wQIMAYBAf8CAQAwCwYDVR0PBAQDAgIEMAoGCCqGSM49 +BAMCA0cAMEQCIHM9W9onCHCIyilwBVkV+RU1DsTJNibfxa6V/HJFPeQUAiB69qO/ +w9bxebq+Zd6BtkSXjT3HKfNeXYP7P9b/wMzpjQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/konai_secp256r1_conformance_testing_u2f_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/konai_secp256r1_conformance_testing_u2f_authenticator.pem new file mode 100644 index 0000000..d63987f --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/konai_secp256r1_conformance_testing_u2f_authenticator.pem @@ -0,0 +1,14 @@ +KONAI Secp256R1 Conformance Testing U2F Authenticator +----------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBkzCCATigAwIBAgIBATAKBggqhkjOPQQDAjBAMQswCQYDVQQGEwJLUjENMAsG +A1UEChMES29uYTEQMA4GA1UECxMHUHJpdmF0ZTEQMA4GA1UEAxMHS29uYUVDQzAe +Fw0xNjA1MTkwMzU2MDBaFw0yNjA1MTkwMzU2MDBaMEAxCzAJBgNVBAYTAktSMQ0w +CwYDVQQKEwRLb25hMRAwDgYDVQQLEwdQcml2YXRlMRAwDgYDVQQDEwdLb25hRUND +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEeMUeE+pdqSPj/orXUxm/j5c+Ds+6 +QyeYl/sVxL3DnGqHzNxPWtjdLYOO9MsfAB3pASqYbJXK//bFV2LP5QKJnqMjMCEw +DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwIDSQAw +RgIhAM5FKBXX2GrIKffRWi7NavpoU59GirJiVxXEBerKP2btAiEA6IcBRCOKC0eI +Cb9jyKbwaQp2d4c+m6t/b3DrYc/BsIA= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/konai_secp256r1_fido2_conformance_testing_ctap2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/konai_secp256r1_fido2_conformance_testing_ctap2_authenticator.pem new file mode 100644 index 0000000..d488d8c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/konai_secp256r1_fido2_conformance_testing_ctap2_authenticator.pem @@ -0,0 +1,17 @@ +KONAI Secp256R1 FIDO2 Conformance Testing CTAP2 Authenticator +------------------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICJDCCAcmgAwIBAgIBATAMBggqhkjOPQQDAgUAMHExCzAJBgNVBAYTAktSMQ0w +CwYDVQQKEwRLb25hMSIwIAYDVQQLExlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9u +MS8wLQYDVQQDEyZGSURPMi4wIEF1dGhlbnRpY2F0b3IgUm9vdCBDZXJ0aWZpY2F0 +ZTAeFw0wMTAxMDEwMDAwMDBaFw0zMDEyMzEyMzU5NTlaMHExCzAJBgNVBAYTAktS +MQ0wCwYDVQQKEwRLb25hMSIwIAYDVQQLExlBdXRoZW50aWNhdG9yIEF0dGVzdGF0 +aW9uMS8wLQYDVQQDEyZGSURPMi4wIEF1dGhlbnRpY2F0b3IgUm9vdCBDZXJ0aWZp +Y2F0ZTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJu5EC4ja6mLvtPW2uDuvxUd +1HvDzpuNhTXEzRHtB4of3B1wdvacqvK+dDsjwp+8RBhu0tzWx+1U4OJaLPc28V+j +UDBOMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFN7iLY1DAOdocWlSp9jmr/flHP1y +MB8GA1UdIwQYMBaAFN7iLY1DAOdocWlSp9jmr/flHP1yMAwGCCqGSM49BAMCBQAD +RwAwRAIgF/tDqxtXcKHBAq/NBZD2NLPzE60U5skdjEYffpGrN2YCIG+xIr95ip74 +/mbiFkRnzi/ipk+QuuYC/aFQe9pCAjnc +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/kx701_smarttoken_fido.pem b/restricted/WebAuthn/rootCertificates/mds/kx701_smarttoken_fido.pem new file mode 100644 index 0000000..b5b0463 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/kx701_smarttoken_fido.pem @@ -0,0 +1,13 @@ +KX701 SmartToken FIDO +--------------------- + +-----BEGIN CERTIFICATE----- +MIIBaDCCAQ+gAwIBAgIUJUr5TBL+R/rFfzTfGq8tDdawAwkwCgYIKoZIzj0EAwIw +ITEfMB0GA1UEAwwWS2V5WGVudGljIEZJRE8gUm9vdCBDQTAgFw0yMDA3MjgwOTQ0 +NTJaGA8yMDcwMDcxNjA5NDQ1MlowITEfMB0GA1UEAwwWS2V5WGVudGljIEZJRE8g +Um9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMKI2kG+jmA7HaWopPdn +vhBwRcbqg+mJRSaOhSqdBfI00scIx39yehs4NCIEdzlOgCEtwHGhTFzIFAXahgSh +UpejIzAhMBIGA1UdEwEB/wQIMAYBAf8CAQAwCwYDVR0PBAQDAgIEMAoGCCqGSM49 +BAMCA0cAMEQCIHM9W9onCHCIyilwBVkV+RU1DsTJNibfxa6V/HJFPeQUAiB69qO/ +w9bxebq+Zd6BtkSXjT3HKfNeXYP7P9b/wMzpjQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/lastMdsFetch.txt b/restricted/WebAuthn/rootCertificates/mds/lastMdsFetch.txt new file mode 100644 index 0000000..fd3571a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/lastMdsFetch.txt @@ -0,0 +1 @@ +Wed, 29 Oct 2025 20:08:18 +0100 \ No newline at end of file diff --git a/restricted/WebAuthn/rootCertificates/mds/ledger_flex_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/ledger_flex_fido2_authenticator.pem new file mode 100644 index 0000000..c8493c1 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ledger_flex_fido2_authenticator.pem @@ -0,0 +1,14 @@ +Ledger Flex FIDO2 Authenticator +------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBgTCCAScCFFM1QCDXg122F9cvWFVmqeGX3tQWMAoGCCqGSM49BAMCMEMxCzAJ +BgNVBAYTAkZSMQ8wDQYDVQQKDAZMZWRnZXIxIzAhBgNVBAMMGkxlZGdlciBGSURP +IEF0dGVzdGF0aW9uIENBMB4XDTI0MDUzMDE0MTk0MFoXDTM0MDUyODE0MTk0MFow +QzELMAkGA1UEBhMCRlIxDzANBgNVBAoMBkxlZGdlcjEjMCEGA1UEAwwaTGVkZ2Vy +IEZJRE8gQXR0ZXN0YXRpb24gQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATK +7nXyH4pgN3TMwCWSoMDRe4EV8Jl3XzuhicZ/2gvh+zz3WmW0OZ/EcRYEA8F26cee +uMcd21WQRRKWpjWD+JWiMAoGCCqGSM49BAMCA0gAMEUCIQD8J+0/b8PeYjFRQYkU +Rcqhax27olw1jY/pbskhBuRp4AIgOAHb6n+7fNffyoxpeCq3VZ7B1jN3wqmPNfna +eAjdoXs= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ledger_nano_s_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/ledger_nano_s_fido2_authenticator.pem new file mode 100644 index 0000000..94647bc --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ledger_nano_s_fido2_authenticator.pem @@ -0,0 +1,26 @@ +Ledger Nano S FIDO2 Authenticator +--------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBgTCCAScCFBlo0s5QYFdXbfusRdQeoLX6QenlMAoGCCqGSM49BAMCMEMxCzAJ +BgNVBAYTAkZSMQ8wDQYDVQQKDAZMZWRnZXIxIzAhBgNVBAMMGkxlZGdlciBGSURP +IEF0dGVzdGF0aW9uIENBMB4XDTIzMDIyMzEwMzMwOFoXDTMzMDIyMDEwMzMwOFow +QzELMAkGA1UEBhMCRlIxDzANBgNVBAoMBkxlZGdlcjEjMCEGA1UEAwwaTGVkZ2Vy +IEZJRE8gQXR0ZXN0YXRpb24gQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATK +7nXyH4pgN3TMwCWSoMDRe4EV8Jl3XzuhicZ/2gvh+zz3WmW0OZ/EcRYEA8F26cee +uMcd21WQRRKWpjWD+JWiMAoGCCqGSM49BAMCA0gAMEUCIQCwcsHuL8ZFL3FNyU/D +OQn3bmx08lnn0O5RktLbOnoPHQIgOEi6ImAZ181q8RJiL0hbw7ZquuniRq6fjWjG +oBu1Moo= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBgTCCAScCFFM1QCDXg122F9cvWFVmqeGX3tQWMAoGCCqGSM49BAMCMEMxCzAJ +BgNVBAYTAkZSMQ8wDQYDVQQKDAZMZWRnZXIxIzAhBgNVBAMMGkxlZGdlciBGSURP +IEF0dGVzdGF0aW9uIENBMB4XDTI0MDUzMDE0MTk0MFoXDTM0MDUyODE0MTk0MFow +QzELMAkGA1UEBhMCRlIxDzANBgNVBAoMBkxlZGdlcjEjMCEGA1UEAwwaTGVkZ2Vy +IEZJRE8gQXR0ZXN0YXRpb24gQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATK +7nXyH4pgN3TMwCWSoMDRe4EV8Jl3XzuhicZ/2gvh+zz3WmW0OZ/EcRYEA8F26cee +uMcd21WQRRKWpjWD+JWiMAoGCCqGSM49BAMCA0gAMEUCIQD8J+0/b8PeYjFRQYkU +Rcqhax27olw1jY/pbskhBuRp4AIgOAHb6n+7fNffyoxpeCq3VZ7B1jN3wqmPNfna +eAjdoXs= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ledger_nano_s_plus_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/ledger_nano_s_plus_fido2_authenticator.pem new file mode 100644 index 0000000..c2a698f --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ledger_nano_s_plus_fido2_authenticator.pem @@ -0,0 +1,26 @@ +Ledger Nano S Plus FIDO2 Authenticator +-------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBgTCCAScCFFM1QCDXg122F9cvWFVmqeGX3tQWMAoGCCqGSM49BAMCMEMxCzAJ +BgNVBAYTAkZSMQ8wDQYDVQQKDAZMZWRnZXIxIzAhBgNVBAMMGkxlZGdlciBGSURP +IEF0dGVzdGF0aW9uIENBMB4XDTI0MDUzMDE0MTk0MFoXDTM0MDUyODE0MTk0MFow +QzELMAkGA1UEBhMCRlIxDzANBgNVBAoMBkxlZGdlcjEjMCEGA1UEAwwaTGVkZ2Vy +IEZJRE8gQXR0ZXN0YXRpb24gQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATK +7nXyH4pgN3TMwCWSoMDRe4EV8Jl3XzuhicZ/2gvh+zz3WmW0OZ/EcRYEA8F26cee +uMcd21WQRRKWpjWD+JWiMAoGCCqGSM49BAMCA0gAMEUCIQD8J+0/b8PeYjFRQYkU +Rcqhax27olw1jY/pbskhBuRp4AIgOAHb6n+7fNffyoxpeCq3VZ7B1jN3wqmPNfna +eAjdoXs= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBgTCCAScCFBlo0s5QYFdXbfusRdQeoLX6QenlMAoGCCqGSM49BAMCMEMxCzAJ +BgNVBAYTAkZSMQ8wDQYDVQQKDAZMZWRnZXIxIzAhBgNVBAMMGkxlZGdlciBGSURP +IEF0dGVzdGF0aW9uIENBMB4XDTIzMDIyMzEwMzMwOFoXDTMzMDIyMDEwMzMwOFow +QzELMAkGA1UEBhMCRlIxDzANBgNVBAoMBkxlZGdlcjEjMCEGA1UEAwwaTGVkZ2Vy +IEZJRE8gQXR0ZXN0YXRpb24gQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATK +7nXyH4pgN3TMwCWSoMDRe4EV8Jl3XzuhicZ/2gvh+zz3WmW0OZ/EcRYEA8F26cee +uMcd21WQRRKWpjWD+JWiMAoGCCqGSM49BAMCA0gAMEUCIQCwcsHuL8ZFL3FNyU/D +OQn3bmx08lnn0O5RktLbOnoPHQIgOEi6ImAZ181q8RJiL0hbw7ZquuniRq6fjWjG +oBu1Moo= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ledger_nano_x_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/ledger_nano_x_fido2_authenticator.pem new file mode 100644 index 0000000..422721f --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ledger_nano_x_fido2_authenticator.pem @@ -0,0 +1,26 @@ +Ledger Nano X FIDO2 Authenticator +--------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBgTCCAScCFFM1QCDXg122F9cvWFVmqeGX3tQWMAoGCCqGSM49BAMCMEMxCzAJ +BgNVBAYTAkZSMQ8wDQYDVQQKDAZMZWRnZXIxIzAhBgNVBAMMGkxlZGdlciBGSURP +IEF0dGVzdGF0aW9uIENBMB4XDTI0MDUzMDE0MTk0MFoXDTM0MDUyODE0MTk0MFow +QzELMAkGA1UEBhMCRlIxDzANBgNVBAoMBkxlZGdlcjEjMCEGA1UEAwwaTGVkZ2Vy +IEZJRE8gQXR0ZXN0YXRpb24gQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATK +7nXyH4pgN3TMwCWSoMDRe4EV8Jl3XzuhicZ/2gvh+zz3WmW0OZ/EcRYEA8F26cee +uMcd21WQRRKWpjWD+JWiMAoGCCqGSM49BAMCA0gAMEUCIQD8J+0/b8PeYjFRQYkU +Rcqhax27olw1jY/pbskhBuRp4AIgOAHb6n+7fNffyoxpeCq3VZ7B1jN3wqmPNfna +eAjdoXs= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIBgTCCAScCFBlo0s5QYFdXbfusRdQeoLX6QenlMAoGCCqGSM49BAMCMEMxCzAJ +BgNVBAYTAkZSMQ8wDQYDVQQKDAZMZWRnZXIxIzAhBgNVBAMMGkxlZGdlciBGSURP +IEF0dGVzdGF0aW9uIENBMB4XDTIzMDIyMzEwMzMwOFoXDTMzMDIyMDEwMzMwOFow +QzELMAkGA1UEBhMCRlIxDzANBgNVBAoMBkxlZGdlcjEjMCEGA1UEAwwaTGVkZ2Vy +IEZJRE8gQXR0ZXN0YXRpb24gQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATK +7nXyH4pgN3TMwCWSoMDRe4EV8Jl3XzuhicZ/2gvh+zz3WmW0OZ/EcRYEA8F26cee +uMcd21WQRRKWpjWD+JWiMAoGCCqGSM49BAMCA0gAMEUCIQCwcsHuL8ZFL3FNyU/D +OQn3bmx08lnn0O5RktLbOnoPHQIgOEi6ImAZ181q8RJiL0hbw7ZquuniRq6fjWjG +oBu1Moo= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ledger_stax_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/ledger_stax_fido2_authenticator.pem new file mode 100644 index 0000000..f863b4d --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ledger_stax_fido2_authenticator.pem @@ -0,0 +1,14 @@ +Ledger Stax FIDO2 Authenticator +------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBgTCCAScCFFM1QCDXg122F9cvWFVmqeGX3tQWMAoGCCqGSM49BAMCMEMxCzAJ +BgNVBAYTAkZSMQ8wDQYDVQQKDAZMZWRnZXIxIzAhBgNVBAMMGkxlZGdlciBGSURP +IEF0dGVzdGF0aW9uIENBMB4XDTI0MDUzMDE0MTk0MFoXDTM0MDUyODE0MTk0MFow +QzELMAkGA1UEBhMCRlIxDzANBgNVBAoMBkxlZGdlcjEjMCEGA1UEAwwaTGVkZ2Vy +IEZJRE8gQXR0ZXN0YXRpb24gQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATK +7nXyH4pgN3TMwCWSoMDRe4EV8Jl3XzuhicZ/2gvh+zz3WmW0OZ/EcRYEA8F26cee +uMcd21WQRRKWpjWD+JWiMAoGCCqGSM49BAMCA0gAMEUCIQD8J+0/b8PeYjFRQYkU +Rcqhax27olw1jY/pbskhBuRp4AIgOAHb6n+7fNffyoxpeCq3VZ7B1jN3wqmPNfna +eAjdoXs= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/mettlesemi_vishwaas_eagle_authenticator_using_fido2.pem b/restricted/WebAuthn/rootCertificates/mds/mettlesemi_vishwaas_eagle_authenticator_using_fido2.pem new file mode 100644 index 0000000..c80e0d6 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/mettlesemi_vishwaas_eagle_authenticator_using_fido2.pem @@ -0,0 +1,19 @@ +Mettlesemi Vishwaas Eagle Authenticator using FIDO2 +--------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIChTCCAiqgAwIBAgIUWG5zfhaJRgQZXJKvhQT6DdASWZYwCgYIKoZIzj0EAwIw +gaExMDAuBgNVBAMMJ01ldHRsZXNlbWkgVmlzaHdhYXMgRWFnbGUgQXV0aGVudGlj +YXRvcjE8MDoGA1UECgwzTWV0dGxlc2VtaSBTeXN0ZW1zIGFuZCBUZWNobm9sb2dp +ZXMgUHJpdmF0ZSBMaW1pdGVkMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVz +dGF0aW9uMQswCQYDVQQGEwJJTjAgFw0yNTA2MjAwNjUyMzlaGA8yMDU1MDYxMzA2 +NTIzOVowgaExMDAuBgNVBAMMJ01ldHRsZXNlbWkgVmlzaHdhYXMgRWFnbGUgQXV0 +aGVudGljYXRvcjE8MDoGA1UECgwzTWV0dGxlc2VtaSBTeXN0ZW1zIGFuZCBUZWNo +bm9sb2dpZXMgUHJpdmF0ZSBMaW1pdGVkMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9y +IEF0dGVzdGF0aW9uMQswCQYDVQQGEwJJTjBZMBMGByqGSM49AgEGCCqGSM49AwEH +A0IABKAMq4GQ1tFttsIS+E9BXncg7vD7kptDzGoSU/LpQzqzrAI54n5a9cg61L0b +pAfo8VPuIOYJK9NlAVTGGZirNkWjPDA6MAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQD +AgEGMB0GA1UdDgQWBBTJbZXS8mgKWHuyWAtmPUAQNb2kQDAKBggqhkjOPQQDAgNJ +ADBGAiEAqwFePygxdVmFmLW+mHlju1Fprkp8B3FDc+welltTQVICIQDJZ0t464vr +hXrazcA8SNrhGra1Yq+vBXy+BhNMCPXiMg== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/mettlesemi_vishwaas_hawk_authenticator_using_fido2.pem b/restricted/WebAuthn/rootCertificates/mds/mettlesemi_vishwaas_hawk_authenticator_using_fido2.pem new file mode 100644 index 0000000..cf791d0 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/mettlesemi_vishwaas_hawk_authenticator_using_fido2.pem @@ -0,0 +1,19 @@ +Mettlesemi Vishwaas Hawk Authenticator using FIDO2 +-------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICgTCCAiigAwIBAgIUJ9KE8sUe/augQK5nZfKAuoYuvkYwCgYIKoZIzj0EAwIw +gaAxLzAtBgNVBAMMJk1ldHRsZXNlbWkgVmlzaHdhYXMgSGF3ayBBdXRoZW50aWNh +dG9yMTwwOgYDVQQKDDNNZXR0bGVzZW1pIFN5c3RlbXMgYW5kIFRlY2hub2xvZ2ll +cyBQcml2YXRlIExpbWl0ZWQxIjAgBgNVBAsMGUF1dGhlbnRpY2F0b3IgQXR0ZXN0 +YXRpb24xCzAJBgNVBAYTAklOMCAXDTI1MDYyMDExMzAwOVoYDzIwNTUwNjEzMTEz +MDA5WjCBoDEvMC0GA1UEAwwmTWV0dGxlc2VtaSBWaXNod2FhcyBIYXdrIEF1dGhl +bnRpY2F0b3IxPDA6BgNVBAoMM01ldHRsZXNlbWkgU3lzdGVtcyBhbmQgVGVjaG5v +bG9naWVzIFByaXZhdGUgTGltaXRlZDEiMCAGA1UECwwZQXV0aGVudGljYXRvciBB +dHRlc3RhdGlvbjELMAkGA1UEBhMCSU4wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNC +AAS1XIZMXWGKdFPwt68THKBcXjV2avXn7uJMCIBle58P7iN35TldE0rYRS4QPPiz +oRunEXH6XEN2uNyAkwo1Xs4HozwwOjAMBgNVHRMEBTADAQH/MAsGA1UdDwQEAwIB +BjAdBgNVHQ4EFgQUBjOkXoioDGyP6kNI3eHXRQo8x7owCgYIKoZIzj0EAwIDRwAw +RAIgfd8XmRbHWgWkW3GkOBge+dkID1u1L4hzZFGTYSsjtOMCIA080Oh4iXqGEhhK +3htEoWK/fSr4MPehIMG3/bj2gKo+ +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/mk_keypass_s1.pem b/restricted/WebAuthn/rootCertificates/mds/mk_keypass_s1.pem new file mode 100644 index 0000000..307c4d2 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/mk_keypass_s1.pem @@ -0,0 +1,16 @@ +MK Keypass S1 +------------- + +-----BEGIN CERTIFICATE----- +MIIB+zCCAaKgAwIBAgIJAI9gin1AD3+DMAoGCCqGSM49BAMCMFkxCzAJBgNVBAYT +AlZOMRMwEQYDVQQIDApOb3J0aCBTaWRlMQ4wDAYDVQQHDAVIYU5vaTERMA8GA1UE +CgwITUsgR3JvdXAxEjAQBgNVBAMMCW1rLmNvbS52bjAeFw0xODEyMjQwMzEwNTFa +Fw0yODEyMjEwMzEwNTFaMFkxCzAJBgNVBAYTAlZOMRMwEQYDVQQIDApOb3J0aCBT +aWRlMQ4wDAYDVQQHDAVIYU5vaTERMA8GA1UECgwITUsgR3JvdXAxEjAQBgNVBAMM +CW1rLmNvbS52bjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABO1rwi3NkmWzd0OG +J5OOcaMRqwV8ZDiXTC5uQxU2uPhIR5CxUU7B71dnsgLij5nkaZEa9hkf2Jz6f/ih +3+HxDEmjUzBRMB0GA1UdDgQWBBRVbSfziyMbs9gYv8G2FfJg9rCPIDAfBgNVHSME +GDAWgBRVbSfziyMbs9gYv8G2FfJg9rCPIDAPBgNVHRMBAf8EBTADAQH/MAoGCCqG +SM49BAMCA0cAMEQCIBEPema/jtaO1/1qeWM6SrrJtGBlcnGCJdk3tFeZNzCtAiAz +CiNWBbrQ2KlKsw+7Qq/x1AbzUvw+SyWlPnJ0mUrDOw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/neowave_badgeo_fido2.pem b/restricted/WebAuthn/rootCertificates/mds/neowave_badgeo_fido2.pem new file mode 100644 index 0000000..420472c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/neowave_badgeo_fido2.pem @@ -0,0 +1,43 @@ +NEOWAVE Badgeo FIDO2 +-------------------- + +-----BEGIN CERTIFICATE----- +MIICHTCCAcKgAwIBAgICddUwCgYIKoZIzj0EAwIwezELMAkGA1UEBhMCRlIxEzAR +BgNVBAoTCkNlcnRFdXJvcGUxFzAVBgNVBAsTDjAwMDIgNDM0MjAyMTgwMSQwIgYD +VQQDExtDZXJ0RXVyb3BlIEVsbGlwdGljIFJvb3QgQ0ExGDAWBgNVBGETD05UUkZS +LTQzNDIwMjE4MDAeFw0xODAxMjIyMzAwMDBaFw0yODAxMjIyMzAwMDBaMHsxCzAJ +BgNVBAYTAkZSMRMwEQYDVQQKEwpDZXJ0RXVyb3BlMRcwFQYDVQQLEw4wMDAyIDQz +NDIwMjE4MDEkMCIGA1UEAxMbQ2VydEV1cm9wZSBFbGxpcHRpYyBSb290IENBMRgw +FgYDVQRhEw9OVFJGUi00MzQyMDIxODAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNC +AATz2jNaKOK/MKdW2fme1tq6GREuPuuKW9HgWYgMRrjvZUTOqLANJ3Md5Hqv1EN1 +zMd4lWtyfzRla7rv5ARBoOoTozYwNDAPBgNVHRMBAf8EBTADAQH/MBEGA1UdDgQK +BAhNnTW0a4E8ujAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwIDSQAwRgIhAMrh +b8SmfNLeLNgaAVmQ6AOMiLNLVHX0kFUO80CnT38EAiEAzNAgv4dH+HDhZSgZWJia +Pu/nfZTeuGy4MydPMq5urs4= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEODCCA92gAwIBAgIDAInBMAoGCCqGSM49BAMCMHsxCzAJBgNVBAYTAkZSMRMw +EQYDVQQKEwpDZXJ0RXVyb3BlMRcwFQYDVQQLEw4wMDAyIDQzNDIwMjE4MDEkMCIG +A1UEAxMbQ2VydEV1cm9wZSBFbGxpcHRpYyBSb290IENBMRgwFgYDVQRhEw9OVFJG +Ui00MzQyMDIxODAwHhcNMTgwMjIyMjMwMDAwWhcNMjgwMTIxMjMwMDAwWjB0MQsw +CQYDVQQGEwJGUjETMBEGA1UEChMKQ2VydEV1cm9wZTEXMBUGA1UECxMOMDAwMiA0 +MzQyMDIxODAxHTAbBgNVBAMTFENlcnRFdXJvcGUgSWRlY3lzIENBMRgwFgYDVQRh +Ew9OVFJGUi00MzQyMDIxODAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASLVL+1 +STJvaERO5WCR+jGcAxLvmPBDiZY1NgFFIhpX6OAZApQYmt6xSh74SwM+mjgnsSEc +c4A2Uf139FgZ4rpYo4ICVTCCAlEwEwYDVR0jBAwwCoAITZ01tGuBPLowSgYIKwYB +BQUHAQEEPjA8MDoGCCsGAQUFBzAChi5odHRwOi8vd3d3LmNlcnRldXJvcGUuZnIv +cmVmZXJlbmNlL2VjX3Jvb3QuY3J0MFMGA1UdIARMMEowSAYJKoF6AWkpAQEAMDsw +OQYIKwYBBQUHAgEWLWh0dHBzOi8vd3d3LmNlcnRldXJvcGUuZnIvY2hhaW5lLWRl +LWNvbmZpYW5jZTCCAWAGA1UdHwSCAVcwggFTMD+gPaA7hjlodHRwOi8vd3d3LmNl +cnRldXJvcGUuZnIvcmVmZXJlbmNlL2NlcnRldXJvcGVfZWNfcm9vdC5jcmwwgYag +gYOggYCGfmxkYXA6Ly9sY3IxLmNlcnRldXJvcGUuZnIvY249Q2VydEV1cm9wZSUy +MEVsbGlwdGljJTIwUm9vdCUyMENBLG91PTAwMDIlMjA0MzQyMDIxODAsbz1DZXJ0 +RXVyb3BlLGM9RlI/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDCBhqCBg6CBgIZ+ +bGRhcDovL2xjcjIuY2VydGV1cm9wZS5mci9jbj1DZXJ0RXVyb3BlJTIwRWxsaXB0 +aWMlMjBSb290JTIwQ0Esb3U9MDAwMiUyMDQzNDIwMjE4MCxvPUNlcnRFdXJvcGUs +Yz1GUj9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0MBEGA1UdDgQKBAhDaQbhTFtj +cjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAKBggqhkjOPQQD +AgNJADBGAiEAoEepHMC5X9jBKaGphcKjidhiN+Znz7v3S3hc31/AunsCIQDKqogK +2SZOXZcvvHCB6UQSaA0nLn4RUwy1guDivbZbwg== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/neowave_badgeo_fido2_ctap_1_2.pem b/restricted/WebAuthn/rootCertificates/mds/neowave_badgeo_fido2_ctap_1_2.pem new file mode 100644 index 0000000..27d38ce --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/neowave_badgeo_fido2_ctap_1_2.pem @@ -0,0 +1,53 @@ +NEOWAVE Badgeo FIDO2 (CTAP 1.2) +------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB3jCCAYWgAwIBAgIUKyUDGrhRQbU3rmll+re1tYbRs94wCgYIKoZIzj0EAwIw +PDELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGzAZBgNVBAMMElNlYWxT +USBJT1QgUk9PVCBHQTAgFw0yNDA4MDkxMTA0MTRaGA8yMDY0MDczMDExMDQxM1ow +PDELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGzAZBgNVBAMMElNlYWxT +USBJT1QgUk9PVCBHQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABFyY6ONDluhn +j383MRw5JfwgMkJrnW0+ItlOTh42nDLtfZkrzRDFh9KFDaOF+21Z2m9KSNqr1MKk +qjOiRz2s4NijYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUxTsfTKe5 +JtH9tIUpP3R1ydOWzIkwHQYDVR0OBBYEFMU7H0ynuSbR/bSFKT90dcnTlsyJMA4G +A1UdDwEB/wQEAwIBhjAKBggqhkjOPQQDAgNHADBEAiBRJDH40iy8a7LNgZfLUduw +8bLDzkT9i0oIvVjeVeLkUgIgW5r3B84x6t8coLCJLoFLipZ75n+N+3m99zFLdRlv +IdM= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDIjCCAsegAwIBAgIUPr11vmA5jr/+1DYVnbDulLC256IwCgYIKoZIzj0EAwIw +OjELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGTAXBgNVBAMMEFNlYWxT +USBJT1QgSUNBIDEwHhcNMjQxMDIxMTMzNzI0WhcNMzQxMDE5MTMzNzIzWjCByjEL +MAkGA1UEBhMCRlIxDTALBgNVBAgMBFBBQ0ExETAPBgNVBAcMCEdhcmRhbm5lMRAw +DgYDVQQKDAdORU9XQVZFMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0 +aW9uMUAwPgYDVQQDDDdORU9XQVZFIEJhZGdlbyBGSURPMiAtIEZJRE8gVTJGIEF0 +dGVzdGF0aW9uIENlcnRpZmljYXRlMSEwHwYJKoZIhvcNAQkBFhJjb250YWN0QG5l +b3dhdmUuZnIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATQR8kc3bXlZvreCXOS +9cA2h+TVCTlvAzHITYFSi6whAftXx00Gs6CKFaFbaLUhtkoOiNE1B7F8Adj3j0zG +450mo4IBGDCCARQwCQYDVR0TBAIwADAfBgNVHSMEGDAWgBSoMaOK9llZyMLkswZ8 +OXx18xzF7DBLBggrBgEFBQcBAQQ/MD0wOwYIKwYBBQUHMAKGL2h0dHA6Ly9wdWJs +aWMud2lzZWtleS5jb20vY3J0L3NlYWxzcWlvdGljYTEuY2VyMBMGA1UdJQQMMAoG +CCsGAQUFBwMCMEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6Ly9wdWJsaWMud2lzZWtl +eS5jb20vY3JsL3NlYWxzcWlvdGljYTEuY3JsMB0GA1UdDgQWBBTMBhIqAMKH9p5n +bsoOApJxP1zbOzAOBgNVHQ8BAf8EBAMCB4AwEwYLKwYBBAGC5RwCAQEEBAMCAAMw +CgYIKoZIzj0EAwIDSQAwRgIhAPObFsl3UamTKwU8RRlsfHJAFGN2yo85ZN8x8KCS +zH7OAiEAvLaiScxOeMgXYIfRYfVtcZ/mkK/2K/q8bZhE9wqTFgg= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICdDCCAhmgAwIBAgIURpQLWQrmGDSMGg/o7x7x/7oUiZUwCgYIKoZIzj0EAwIw +PDELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGzAZBgNVBAMMElNlYWxT +USBJT1QgUk9PVCBHQTAeFw0yNDA4MDkxMTEwMTdaFw00OTA4MDMxMTEwMTZaMDox +CzAJBgNVBAYTAkNIMRAwDgYDVQQKDAdXSVNlS2V5MRkwFwYDVQQDDBBTZWFsU1Eg +SU9UIElDQSAxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEB34bE9yPfQRcEoI0 +YFB8ec0CSE0ujmGeCRFddBBBUJJ+63ZruVuorwPcopd1NVQZHfTVh3dV4Jp7V7mS +rH6hvqOB+jCB9zASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFMU7H0yn +uSbR/bSFKT90dcnTlsyJME0GCCsGAQUFBwEBBEEwPzA9BggrBgEFBQcwAoYxaHR0 +cDovL3B1YmxpYy53aXNla2V5LmNvbS9jcnQvc2VhbHNxaW90cm9vdGdhLmNlcjBC +BgNVHR8EOzA5MDegNaAzhjFodHRwOi8vcHVibGljLndpc2VrZXkuY29tL2NybC9z +ZWFsc3Fpb3Ryb290Z2EuY3JsMB0GA1UdDgQWBBSoMaOK9llZyMLkswZ8OXx18xzF +7DAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwIDSQAwRgIhALsB6zBbUVXuyj0n +2DMwHd8Fx1mzP0pR3n9SHxP2afS8AiEAzzawbyzY/oi8h1B14n9hqB3nzBeTnk6j +H5TxY6eSSik= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/neowave_badgeo_fido2_ctap_2_1.pem b/restricted/WebAuthn/rootCertificates/mds/neowave_badgeo_fido2_ctap_2_1.pem new file mode 100644 index 0000000..54dcadf --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/neowave_badgeo_fido2_ctap_2_1.pem @@ -0,0 +1,54 @@ +NEOWAVE Badgeo FIDO2 (CTAP 2.1) +------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDLTCCAtKgAwIBAgIUPF6MCbbigzJfaxDO4e1h7jpLchQwCgYIKoZIzj0EAwIw +OjELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGTAXBgNVBAMMEFNlYWxT +USBJT1QgSUNBIDEwHhcNMjQxMDIxMTMzNjM2WhcNMzQxMDE5MTMzNjM1WjCBxzEL +MAkGA1UEBhMCRlIxDTALBgNVBAgMBFBBQ0ExETAPBgNVBAcMCEdhcmRhbm5lMRAw +DgYDVQQKDAdORU9XQVZFMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0 +aW9uMT0wOwYDVQQDDDRORU9XQVZFIEJhZGdlbyBGSURPMiAtIEZJRE8yIEF0dGVz +dGF0aW9uIENlcnRpZmljYXRlMSEwHwYJKoZIhvcNAQkBFhJjb250YWN0QG5lb3dh +dmUuZnIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4OVct4UWaAtzfcPGadyfO +FlnCplasPAED47JyjfQcGA7s/Vq5/eEwpmkUgIiPU8KHtJjF3jJe2LAa3Uz4k/Pc +o4IBJjCCASIwCQYDVR0TBAIwADAfBgNVHSMEGDAWgBSoMaOK9llZyMLkswZ8OXx1 +8xzF7DBLBggrBgEFBQcBAQQ/MD0wOwYIKwYBBQUHMAKGL2h0dHA6Ly9wdWJsaWMu +d2lzZWtleS5jb20vY3J0L3NlYWxzcWlvdGljYTEuY2VyMBMGA1UdJQQMMAoGCCsG +AQUFBwMCMEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6Ly9wdWJsaWMud2lzZWtleS5j +b20vY3JsL3NlYWxzcWlvdGljYTEuY3JsMB0GA1UdDgQWBBQ5TpG6KC1KRafl367X +yy9Q6G7X0zAOBgNVHQ8BAf8EBAMCB4AwIQYLKwYBBAGC5RwBAQQEEgQQjZIn/7Q0 +QP+drTcgc5FMJTAKBggqhkjOPQQDAgNJADBGAiEAuzM51WOvth3xcRv0DcQexxLm +LRa4R7NhP5IeJxMayvACIQDA0nczAaUQ3b+06mW1UxRhV/CojSwqm9ySWO81I48d +Fw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICdDCCAhmgAwIBAgIURpQLWQrmGDSMGg/o7x7x/7oUiZUwCgYIKoZIzj0EAwIw +PDELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGzAZBgNVBAMMElNlYWxT +USBJT1QgUk9PVCBHQTAeFw0yNDA4MDkxMTEwMTdaFw00OTA4MDMxMTEwMTZaMDox +CzAJBgNVBAYTAkNIMRAwDgYDVQQKDAdXSVNlS2V5MRkwFwYDVQQDDBBTZWFsU1Eg +SU9UIElDQSAxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEB34bE9yPfQRcEoI0 +YFB8ec0CSE0ujmGeCRFddBBBUJJ+63ZruVuorwPcopd1NVQZHfTVh3dV4Jp7V7mS +rH6hvqOB+jCB9zASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFMU7H0yn +uSbR/bSFKT90dcnTlsyJME0GCCsGAQUFBwEBBEEwPzA9BggrBgEFBQcwAoYxaHR0 +cDovL3B1YmxpYy53aXNla2V5LmNvbS9jcnQvc2VhbHNxaW90cm9vdGdhLmNlcjBC +BgNVHR8EOzA5MDegNaAzhjFodHRwOi8vcHVibGljLndpc2VrZXkuY29tL2NybC9z +ZWFsc3Fpb3Ryb290Z2EuY3JsMB0GA1UdDgQWBBSoMaOK9llZyMLkswZ8OXx18xzF +7DAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwIDSQAwRgIhALsB6zBbUVXuyj0n +2DMwHd8Fx1mzP0pR3n9SHxP2afS8AiEAzzawbyzY/oi8h1B14n9hqB3nzBeTnk6j +H5TxY6eSSik= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB3jCCAYWgAwIBAgIUKyUDGrhRQbU3rmll+re1tYbRs94wCgYIKoZIzj0EAwIw +PDELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGzAZBgNVBAMMElNlYWxT +USBJT1QgUk9PVCBHQTAgFw0yNDA4MDkxMTA0MTRaGA8yMDY0MDczMDExMDQxM1ow +PDELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGzAZBgNVBAMMElNlYWxT +USBJT1QgUk9PVCBHQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABFyY6ONDluhn +j383MRw5JfwgMkJrnW0+ItlOTh42nDLtfZkrzRDFh9KFDaOF+21Z2m9KSNqr1MKk +qjOiRz2s4NijYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUxTsfTKe5 +JtH9tIUpP3R1ydOWzIkwHQYDVR0OBBYEFMU7H0ynuSbR/bSFKT90dcnTlsyJMA4G +A1UdDwEB/wQEAwIBhjAKBggqhkjOPQQDAgNHADBEAiBRJDH40iy8a7LNgZfLUduw +8bLDzkT9i0oIvVjeVeLkUgIgW5r3B84x6t8coLCJLoFLipZ75n+N+3m99zFLdRlv +IdM= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/neowave_winkeo_fido2.pem b/restricted/WebAuthn/rootCertificates/mds/neowave_winkeo_fido2.pem new file mode 100644 index 0000000..d4d2b74 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/neowave_winkeo_fido2.pem @@ -0,0 +1,53 @@ +NEOWAVE Winkeo FIDO2 +-------------------- + +-----BEGIN CERTIFICATE----- +MIIDITCCAsegAwIBAgIUab0SAiC2Y7saeUC1s8ibcECXZ/4wCgYIKoZIzj0EAwIw +OjELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGTAXBgNVBAMMEFNlYWxT +USBJT1QgSUNBIDEwHhcNMjQxMDIxMTMzOTE0WhcNMzQxMDE5MTMzOTEzWjCByjEL +MAkGA1UEBhMCRlIxDTALBgNVBAgMBFBBQ0ExETAPBgNVBAcMCEdhcmRhbm5lMRAw +DgYDVQQKDAdORU9XQVZFMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0 +aW9uMUAwPgYDVQQDDDdORU9XQVZFIEJhZGdlbyBGSURPMiAtIEZJRE8gVTJGIEF0 +dGVzdGF0aW9uIENlcnRpZmljYXRlMSEwHwYJKoZIhvcNAQkBFhJjb250YWN0QG5l +b3dhdmUuZnIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARPS6HZybQh3IrrZDQE +BZhtgd1oPI6rkg32Dtxn1Y8SfbXJlam1kanCXtscZofjYKiKTqJL+GYpirX4jmdX +ucAvo4IBGDCCARQwCQYDVR0TBAIwADAfBgNVHSMEGDAWgBSoMaOK9llZyMLkswZ8 +OXx18xzF7DBLBggrBgEFBQcBAQQ/MD0wOwYIKwYBBQUHMAKGL2h0dHA6Ly9wdWJs +aWMud2lzZWtleS5jb20vY3J0L3NlYWxzcWlvdGljYTEuY2VyMBMGA1UdJQQMMAoG +CCsGAQUFBwMCMEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6Ly9wdWJsaWMud2lzZWtl +eS5jb20vY3JsL3NlYWxzcWlvdGljYTEuY3JsMB0GA1UdDgQWBBTYAxkRrgkjZPYO +8h4yimpFrR2NCTAOBgNVHQ8BAf8EBAMCB4AwEwYLKwYBBAGC5RwCAQEEBAMCAAMw +CgYIKoZIzj0EAwIDSAAwRQIgT/9mM7ILaVMBrIrHhohMEW6dD71L07TgPCHLLht8 +ue8CIQDBypDYC5l3WCjSaQQu5aIFk7fB3Ertg3xEnE5uVZS6GA== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB3jCCAYWgAwIBAgIUKyUDGrhRQbU3rmll+re1tYbRs94wCgYIKoZIzj0EAwIw +PDELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGzAZBgNVBAMMElNlYWxT +USBJT1QgUk9PVCBHQTAgFw0yNDA4MDkxMTA0MTRaGA8yMDY0MDczMDExMDQxM1ow +PDELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGzAZBgNVBAMMElNlYWxT +USBJT1QgUk9PVCBHQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABFyY6ONDluhn +j383MRw5JfwgMkJrnW0+ItlOTh42nDLtfZkrzRDFh9KFDaOF+21Z2m9KSNqr1MKk +qjOiRz2s4NijYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUxTsfTKe5 +JtH9tIUpP3R1ydOWzIkwHQYDVR0OBBYEFMU7H0ynuSbR/bSFKT90dcnTlsyJMA4G +A1UdDwEB/wQEAwIBhjAKBggqhkjOPQQDAgNHADBEAiBRJDH40iy8a7LNgZfLUduw +8bLDzkT9i0oIvVjeVeLkUgIgW5r3B84x6t8coLCJLoFLipZ75n+N+3m99zFLdRlv +IdM= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICdDCCAhmgAwIBAgIURpQLWQrmGDSMGg/o7x7x/7oUiZUwCgYIKoZIzj0EAwIw +PDELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGzAZBgNVBAMMElNlYWxT +USBJT1QgUk9PVCBHQTAeFw0yNDA4MDkxMTEwMTdaFw00OTA4MDMxMTEwMTZaMDox +CzAJBgNVBAYTAkNIMRAwDgYDVQQKDAdXSVNlS2V5MRkwFwYDVQQDDBBTZWFsU1Eg +SU9UIElDQSAxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEB34bE9yPfQRcEoI0 +YFB8ec0CSE0ujmGeCRFddBBBUJJ+63ZruVuorwPcopd1NVQZHfTVh3dV4Jp7V7mS +rH6hvqOB+jCB9zASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFMU7H0yn +uSbR/bSFKT90dcnTlsyJME0GCCsGAQUFBwEBBEEwPzA9BggrBgEFBQcwAoYxaHR0 +cDovL3B1YmxpYy53aXNla2V5LmNvbS9jcnQvc2VhbHNxaW90cm9vdGdhLmNlcjBC +BgNVHR8EOzA5MDegNaAzhjFodHRwOi8vcHVibGljLndpc2VrZXkuY29tL2NybC9z +ZWFsc3Fpb3Ryb290Z2EuY3JsMB0GA1UdDgQWBBSoMaOK9llZyMLkswZ8OXx18xzF +7DAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwIDSQAwRgIhALsB6zBbUVXuyj0n +2DMwHd8Fx1mzP0pR3n9SHxP2afS8AiEAzzawbyzY/oi8h1B14n9hqB3nzBeTnk6j +H5TxY6eSSik= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/neowave_winkeo_v2_0.pem b/restricted/WebAuthn/rootCertificates/mds/neowave_winkeo_v2_0.pem new file mode 100644 index 0000000..4d680dc --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/neowave_winkeo_v2_0.pem @@ -0,0 +1,53 @@ +NEOWAVE WINKEO V2.0 +------------------- + +-----BEGIN CERTIFICATE----- +MIICdDCCAhmgAwIBAgIURpQLWQrmGDSMGg/o7x7x/7oUiZUwCgYIKoZIzj0EAwIw +PDELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGzAZBgNVBAMMElNlYWxT +USBJT1QgUk9PVCBHQTAeFw0yNDA4MDkxMTEwMTdaFw00OTA4MDMxMTEwMTZaMDox +CzAJBgNVBAYTAkNIMRAwDgYDVQQKDAdXSVNlS2V5MRkwFwYDVQQDDBBTZWFsU1Eg +SU9UIElDQSAxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEB34bE9yPfQRcEoI0 +YFB8ec0CSE0ujmGeCRFddBBBUJJ+63ZruVuorwPcopd1NVQZHfTVh3dV4Jp7V7mS +rH6hvqOB+jCB9zASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFMU7H0yn +uSbR/bSFKT90dcnTlsyJME0GCCsGAQUFBwEBBEEwPzA9BggrBgEFBQcwAoYxaHR0 +cDovL3B1YmxpYy53aXNla2V5LmNvbS9jcnQvc2VhbHNxaW90cm9vdGdhLmNlcjBC +BgNVHR8EOzA5MDegNaAzhjFodHRwOi8vcHVibGljLndpc2VrZXkuY29tL2NybC9z +ZWFsc3Fpb3Ryb290Z2EuY3JsMB0GA1UdDgQWBBSoMaOK9llZyMLkswZ8OXx18xzF +7DAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwIDSQAwRgIhALsB6zBbUVXuyj0n +2DMwHd8Fx1mzP0pR3n9SHxP2afS8AiEAzzawbyzY/oi8h1B14n9hqB3nzBeTnk6j +H5TxY6eSSik= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDKzCCAtKgAwIBAgIULQxGEw5aJ6uR66UDGzLuLGqeh1AwCgYIKoZIzj0EAwIw +OjELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGTAXBgNVBAMMEFNlYWxT +USBJT1QgSUNBIDEwHhcNMjQxMDIxMTMzODIwWhcNMzQxMDE5MTMzODE5WjCBxzEL +MAkGA1UEBhMCRlIxDTALBgNVBAgMBFBBQ0ExETAPBgNVBAcMCEdhcmRhbm5lMRAw +DgYDVQQKDAdORU9XQVZFMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0 +aW9uMT0wOwYDVQQDDDRORU9XQVZFIEJhZGdlbyBGSURPMiAtIEZJRE8yIEF0dGVz +dGF0aW9uIENlcnRpZmljYXRlMSEwHwYJKoZIhvcNAQkBFhJjb250YWN0QG5lb3dh +dmUuZnIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARYzkhg2Fo6sAW5kgIlT8XS +TEBAHU43NjrkX6+y2hBD22XlqtRex9d0HwTz8KbL+qoVRqp4K92hw04qqQkslXXg +o4IBJjCCASIwCQYDVR0TBAIwADAfBgNVHSMEGDAWgBSoMaOK9llZyMLkswZ8OXx1 +8xzF7DBLBggrBgEFBQcBAQQ/MD0wOwYIKwYBBQUHMAKGL2h0dHA6Ly9wdWJsaWMu +d2lzZWtleS5jb20vY3J0L3NlYWxzcWlvdGljYTEuY2VyMBMGA1UdJQQMMAoGCCsG +AQUFBwMCMEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6Ly9wdWJsaWMud2lzZWtleS5j +b20vY3JsL3NlYWxzcWlvdGljYTEuY3JsMB0GA1UdDgQWBBSbsg9Jw8VTKLELdXsr +YQpYoOVCTDAOBgNVHQ8BAf8EBAMCB4AwIQYLKwYBBAGC5RwBAQQEEgQQHaFARqgI +S9apYrh+zaWZMjAKBggqhkjOPQQDAgNHADBEAiA6KdqmovFuFDNVAPYiO6m51GO7 +Xu7ISED1jv55/SGkcwIgTxK3QPZwpLJUYhb6HB//nbeo0murS6U7ChKE+JiZgZk= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB3jCCAYWgAwIBAgIUKyUDGrhRQbU3rmll+re1tYbRs94wCgYIKoZIzj0EAwIw +PDELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGzAZBgNVBAMMElNlYWxT +USBJT1QgUk9PVCBHQTAgFw0yNDA4MDkxMTA0MTRaGA8yMDY0MDczMDExMDQxM1ow +PDELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxGzAZBgNVBAMMElNlYWxT +USBJT1QgUk9PVCBHQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABFyY6ONDluhn +j383MRw5JfwgMkJrnW0+ItlOTh42nDLtfZkrzRDFh9KFDaOF+21Z2m9KSNqr1MKk +qjOiRz2s4NijYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUxTsfTKe5 +JtH9tIUpP3R1ydOWzIkwHQYDVR0OBBYEFMU7H0ynuSbR/bSFKT90dcnTlsyJMA4G +A1UdDwEB/wQEAwIBhjAKBggqhkjOPQQDAgNHADBEAiBRJDH40iy8a7LNgZfLUduw +8bLDzkT9i0oIvVjeVeLkUgIgW5r3B84x6t8coLCJLoFLipZ75n+N+3m99zFLdRlv +IdM= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/nitrokey_3_am.pem b/restricted/WebAuthn/rootCertificates/mds/nitrokey_3_am.pem new file mode 100644 index 0000000..ad7c7c5 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/nitrokey_3_am.pem @@ -0,0 +1,24 @@ +Nitrokey 3 AM +------------- + +-----BEGIN CERTIFICATE----- +MIIDiTCCAXGgAwIBAgIDCKZCMA0GCSqGSIb3DQEBCwUAMDYxCzAJBgNVBAYTAkRF +MRYwFAYDVQQKDA1OaXRyb2tleSBHbWJIMQ8wDQYDVQQDDAZSb290IDMwIBcNMjIw +ODA0MDg0NzE0WhgPMjA3MjA3MjIwODQ3MTRaMDkxCzAJBgNVBAYTAkRFMRYwFAYD +VQQKDA1OaXRyb2tleSBHbWJIMRIwEAYDVQQDDAlGSURPIENBIDQwWTATBgcqhkjO +PQIBBggqhkjOPQMBBwNCAASJxZfLXUwxQSNsrHglKG97ByH2xrqimupb81xDlxmd +TJk2dOcilO1EA6gknJTyyYVZfiu6Dst6xRe1aaOpW27Ro2YwZDAdBgNVHQ4EFgQU +8kmvlkPQUJYJRE/XQYOhxfROzOUwHwYDVR0jBBgwFoAU06TUnmnmGan09KNXFXL0 +4S1QhjcwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI +hvcNAQELBQADggIBAGc8GidZS11i+WzohDk0Gc/yqy8xLS4i9r/QIcs7pN7ZAjFn +qNJWn2jhjS/XUnUOkNicnR6VIooa5qBxLTfE3n4/1OgnsYuUK0JiNwIfW1O8+zW4 +VxwiVNB6npzDg84YcFRt1Zo07v02nfo7qTZIRBHW+WRj05vToYTpW3ANuS7ciiNI +TDtg9A51LPzjbBWWXua0RFJCL9qxELeU6eNMcCf+c/8eitDTlefjIfgwy/Hpt6RS +U7ylkrPlo85s2wVGAhFX114OKfloSv0q21PuErWgNBZ11Camv2kUxAmO3wIV8Sjc +HI9LC4r9ysCY49EUOyuMROPilXu3xMLCmXHJSiGXvGpciTykbFhfqQaZ5la/40Xt +H/R6ViBAZ1FHaZm0RVKirZTv5x8S8AjuhoZOHETDaw5vHpAQrQJCOTi8n4QAteMc +mKnAPaYWPqu1cfZ4nr188tIhqmBdBM7S4a9GEA468Wj8AH1Ca9tTiBKkIEm0Cg7t +JdZnw7baLr9syzAqbOsvWtPlj1h7q44v3uNjerImRPDDi+MKeRSlzHa/0kjmtlBY +qkQcDnLthyMnbZQ7U/jWFg5BtVOAlNhCTM4QVHCISH+N8lJ6WsYkUsmcsvPThCba +LZfBxeh87PDJ1rJHzVsFlEYnYOa0yTi8Pha2s25bgmQ6C/F0lFrC7YXphhDG +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/nxp_semiconductros_fido2_conformance_testing_ctap2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/nxp_semiconductros_fido2_conformance_testing_ctap2_authenticator.pem new file mode 100644 index 0000000..702cc8c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/nxp_semiconductros_fido2_conformance_testing_ctap2_authenticator.pem @@ -0,0 +1,16 @@ +NXP Semiconductros FIDO2 Conformance Testing CTAP2 Authenticator +---------------------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB7zCCAZWgAwIBAgIUb+Vu/33cv2XuvucZqAmzOUutggkwCgYIKoZIzj0EAwIw +TTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5YUCBTZW1pY29uZHVjdG9yczEOMAwG +A1UECwwFQ0EgQUExETAPBgNVBAMMCENBIEZJRE8yMB4XDTE5MDYyNzA4MzMyNloX +DTM5MDYyMjA4MzMyNlowTTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5YUCBTZW1p +Y29uZHVjdG9yczEOMAwGA1UECwwFQ0EgQUExETAPBgNVBAMMCENBIEZJRE8yMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEHAXMZLb3CeMwOxg/VcUzwHx1wkuTA4EK +otoihs6OQeTSclKXoXcYrj6X8PBT8VVqHul3+nBKjDiBI+Yxr+qf+qNTMFEwHQYD +VR0OBBYEFEMuLqeBcxiGNgLzSmxNDBgBUfnJMB8GA1UdIwQYMBaAFEMuLqeBcxiG +NgLzSmxNDBgBUfnJMA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIh +AJnlwYJpiXXZIYlmve/njqxEWh+KdUsY9b9XIfKslwyIAiAHTdhsUVF4Opipx80I +j+UxDRStlmegUAEnLrmka3V8xQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/nymi_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/nymi_fido2_authenticator.pem new file mode 100644 index 0000000..b40a1f6 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/nymi_fido2_authenticator.pem @@ -0,0 +1,15 @@ +Nymi FIDO2 Authenticator +------------------------ + +-----BEGIN CERTIFICATE----- +MIIBsjCCAVmgAwIBAgIIR6lgwksfjygwCgYIKoZIzj0EAwIwLTErMCkGA1UEAwwi +TnltaSBGSURPIEF0dGVzdGF0aW9uIFJvb3QgQ0EgR29sZDAeFw0yMDA2MjYxNjIz +NTJaFw0zNTA2MjMxNjIzNTJaMC0xKzApBgNVBAMMIk55bWkgRklETyBBdHRlc3Rh +dGlvbiBSb290IENBIEdvbGQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQZVyzY +Lsvbvmg4bmRNyZjrVXzzzUfUeYiWYZiR3vACavX4j/Vx3jY/wvmdSc5baCmVQh+r +N0Q+++LGwUj1kFico2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHmq +8KC578jV43CJxTxxBKYbo1iMMB0GA1UdDgQWBBR5qvCgue/I1eNwicU8cQSmG6NY +jDAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwIDRwAwRAIgKh1HcgL7oxpdWnnc +k9uCWF6C6b2tsbGPjSHu31G48WMCIHuEstSHGkMlFTH367ptmfC6wixmaCdwT8CV +/ijrOTMI +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/octatco_ezfinger2_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/octatco_ezfinger2_fido2_authenticator.pem new file mode 100644 index 0000000..41242c3 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/octatco_ezfinger2_fido2_authenticator.pem @@ -0,0 +1,25 @@ +OCTATCO EzFinger2 FIDO2 AUTHENTICATOR +------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDtDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJLUjEZ +MBcGA1UECgwQT0NUQVRDTyBDTy4sIExURDEiMCAGA1UECwwZQXV0aGVudGljYXRv +ciBBdHRlc3RhdGlvbjEkMCIGA1UEAwwbT0NUQVRDTyBSb290IENBIENlcnRpZmlj +YXRlMB4XDTIwMDIxMTA0MjYwM1oXDTI2MDIwOTA0MjYwM1owcjELMAkGA1UEBhMC +S1IxGTAXBgNVBAoMEE9DVEFUQ08gQ08uLCBMVEQxIjAgBgNVBAsMGUF1dGhlbnRp +Y2F0b3IgQXR0ZXN0YXRpb24xJDAiBgNVBAMMG09DVEFUQ08gUm9vdCBDQSBDZXJ0 +aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALZYa+9YZLJn +4FWckDnY/ERoCuO3TBta0W3f8R9SY5d5sBk2QiupciI/l7fwPrH3FDkeVPXejMe+ +kT0VoJJe+N9EMWer0/5PXIP97nruYcr0DxbhZpesQEeU8BeIUunpNNnEJpoxoJTw +oDmu83ZKk4m8g0/PfpJwDhmPCAqm79sFtP8g7lC9qms5TD/6PNz+2aewKXTQAR1o +pfhnWDUsIZtuUfERhlGwxU7X+h3oQ2kSGw5holfKSb0g3pwGTcTVNvfUMXH7CaiT +q/K7T/jdACD+9aNjtcd3PyQerA8Sa2N28rvkN8YfKoDPg5gA378ONDV3BhrhtY8U +iDkBcTsXAQECAwEAAaNVMFMwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU +OCmK310Gu3q9DfX/bvdpsf4GI8UwCwYDVR0PBAQDAgH2MBEGCWCGSAGG+EIBAQQE +AwIABzANBgkqhkiG9w0BAQsFAAOCAQEAnDTcZneK/h0Qb8sFxgFS8Fa5djQnSJQU +MFZ/kzOsPh1DVFDF4nDG/HlU+d7KaNhaQ7XLt7xAjhzEyTyHaMH76gH08r33NdVZ +/4sMh9GILU6bSmJYOtdVi3zB3p69bnYZHJVqvJKX5lEsSpn/opKYlvto2n0/4s4a +wJh+q+BkyVSPTRMX6Lfbn6IRu4cbeS0W13tsQ5SbpAo9NH2FATzVMMKSGEdiQnfY +ygdWvuDCLUtQF1wGmGSYsEPFTV6PG1VP5HS4fhrBNburi38NIUocfkpfmOIy+hHZ +gfvpZzork1GvF3PZRItJnTTv5Ujq0qD8rnr81qwvGlTCJIBtEUmNwQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/octatco_ezfinger2_u2f_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/octatco_ezfinger2_u2f_authenticator.pem new file mode 100644 index 0000000..d95f564 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/octatco_ezfinger2_u2f_authenticator.pem @@ -0,0 +1,25 @@ +OCTATCO EzFinger2 U2F AUTHENTICATOR +----------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDtDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJLUjEZ +MBcGA1UECgwQT0NUQVRDTyBDTy4sIExURDEiMCAGA1UECwwZQXV0aGVudGljYXRv +ciBBdHRlc3RhdGlvbjEkMCIGA1UEAwwbT0NUQVRDTyBSb290IENBIENlcnRpZmlj +YXRlMB4XDTIwMDIxMTA0MjYwM1oXDTI2MDIwOTA0MjYwM1owcjELMAkGA1UEBhMC +S1IxGTAXBgNVBAoMEE9DVEFUQ08gQ08uLCBMVEQxIjAgBgNVBAsMGUF1dGhlbnRp +Y2F0b3IgQXR0ZXN0YXRpb24xJDAiBgNVBAMMG09DVEFUQ08gUm9vdCBDQSBDZXJ0 +aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALZYa+9YZLJn +4FWckDnY/ERoCuO3TBta0W3f8R9SY5d5sBk2QiupciI/l7fwPrH3FDkeVPXejMe+ +kT0VoJJe+N9EMWer0/5PXIP97nruYcr0DxbhZpesQEeU8BeIUunpNNnEJpoxoJTw +oDmu83ZKk4m8g0/PfpJwDhmPCAqm79sFtP8g7lC9qms5TD/6PNz+2aewKXTQAR1o +pfhnWDUsIZtuUfERhlGwxU7X+h3oQ2kSGw5holfKSb0g3pwGTcTVNvfUMXH7CaiT +q/K7T/jdACD+9aNjtcd3PyQerA8Sa2N28rvkN8YfKoDPg5gA378ONDV3BhrhtY8U +iDkBcTsXAQECAwEAAaNVMFMwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU +OCmK310Gu3q9DfX/bvdpsf4GI8UwCwYDVR0PBAQDAgH2MBEGCWCGSAGG+EIBAQQE +AwIABzANBgkqhkiG9w0BAQsFAAOCAQEAnDTcZneK/h0Qb8sFxgFS8Fa5djQnSJQU +MFZ/kzOsPh1DVFDF4nDG/HlU+d7KaNhaQ7XLt7xAjhzEyTyHaMH76gH08r33NdVZ +/4sMh9GILU6bSmJYOtdVi3zB3p69bnYZHJVqvJKX5lEsSpn/opKYlvto2n0/4s4a +wJh+q+BkyVSPTRMX6Lfbn6IRu4cbeS0W13tsQ5SbpAo9NH2FATzVMMKSGEdiQnfY +ygdWvuDCLUtQF1wGmGSYsEPFTV6PG1VP5HS4fhrBNburi38NIUocfkpfmOIy+hHZ +gfvpZzork1GvF3PZRItJnTTv5Ujq0qD8rnr81qwvGlTCJIBtEUmNwQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/octatco_ezquant_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/octatco_ezquant_fido2_authenticator.pem new file mode 100644 index 0000000..1ec0607 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/octatco_ezquant_fido2_authenticator.pem @@ -0,0 +1,25 @@ +OCTATCO EzQuant FIDO2 AUTHENTICATOR +----------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDtDCCApygAwIBAgIBATANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJLUjEZ +MBcGA1UECgwQT0NUQVRDTyBDTy4sIExURDEiMCAGA1UECwwZQXV0aGVudGljYXRv +ciBBdHRlc3RhdGlvbjEkMCIGA1UEAwwbT0NUQVRDTyBSb290IENBIENlcnRpZmlj +YXRlMB4XDTIwMDIxMTA0MjYwM1oXDTI2MDIwOTA0MjYwM1owcjELMAkGA1UEBhMC +S1IxGTAXBgNVBAoMEE9DVEFUQ08gQ08uLCBMVEQxIjAgBgNVBAsMGUF1dGhlbnRp +Y2F0b3IgQXR0ZXN0YXRpb24xJDAiBgNVBAMMG09DVEFUQ08gUm9vdCBDQSBDZXJ0 +aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALZYa+9YZLJn +4FWckDnY/ERoCuO3TBta0W3f8R9SY5d5sBk2QiupciI/l7fwPrH3FDkeVPXejMe+ +kT0VoJJe+N9EMWer0/5PXIP97nruYcr0DxbhZpesQEeU8BeIUunpNNnEJpoxoJTw +oDmu83ZKk4m8g0/PfpJwDhmPCAqm79sFtP8g7lC9qms5TD/6PNz+2aewKXTQAR1o +pfhnWDUsIZtuUfERhlGwxU7X+h3oQ2kSGw5holfKSb0g3pwGTcTVNvfUMXH7CaiT +q/K7T/jdACD+9aNjtcd3PyQerA8Sa2N28rvkN8YfKoDPg5gA378ONDV3BhrhtY8U +iDkBcTsXAQECAwEAAaNVMFMwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU +OCmK310Gu3q9DfX/bvdpsf4GI8UwCwYDVR0PBAQDAgH2MBEGCWCGSAGG+EIBAQQE +AwIABzANBgkqhkiG9w0BAQsFAAOCAQEAnDTcZneK/h0Qb8sFxgFS8Fa5djQnSJQU +MFZ/kzOsPh1DVFDF4nDG/HlU+d7KaNhaQ7XLt7xAjhzEyTyHaMH76gH08r33NdVZ +/4sMh9GILU6bSmJYOtdVi3zB3p69bnYZHJVqvJKX5lEsSpn/opKYlvto2n0/4s4a +wJh+q+BkyVSPTRMX6Lfbn6IRu4cbeS0W13tsQ5SbpAo9NH2FATzVMMKSGEdiQnfY +ygdWvuDCLUtQF1wGmGSYsEPFTV6PG1VP5HS4fhrBNburi38NIUocfkpfmOIy+hHZ +gfvpZzork1GvF3PZRItJnTTv5Ujq0qD8rnr81qwvGlTCJIBtEUmNwQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/onekey_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/onekey_fido2_authenticator.pem new file mode 100644 index 0000000..3860289 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/onekey_fido2_authenticator.pem @@ -0,0 +1,19 @@ +OneKey FIDO2 Authenticator +-------------------------- + +-----BEGIN CERTIFICATE----- +MIICmDCCAj6gAwIBAgIIUO3rVZw+YIwwCgYIKoZIzj0EAwIwgZcxCzAJBgNVBAYT +AkNOMRAwDgYDVQQIEwdCRUlKSU5HMRAwDgYDVQQHEwdIQUlESUFOMR8wHQYDVQQK +ExZPTkVLRVkgR0xPQkFMIENPLiwgTFREMQ8wDQYDVQQLEwZPTkVLRVkxFDASBgNV +BAMTC09ORUtFWSBST09UMRwwGgYJKoZIhvcNAQkBFg1kZXZAb25la2V5LnNvMB4X +DTIzMTEwNzAzNTEwMFoXDTMzMTEwNzAzNTEwMFowgZcxCzAJBgNVBAYTAkNOMRAw +DgYDVQQIEwdCRUlKSU5HMRAwDgYDVQQHEwdIQUlESUFOMR8wHQYDVQQKExZPTkVL +RVkgR0xPQkFMIENPLiwgTFREMQ8wDQYDVQQLEwZPTkVLRVkxFDASBgNVBAMTC09O +RUtFWSBST09UMRwwGgYJKoZIhvcNAQkBFg1kZXZAb25la2V5LnNvMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEA9vMLJQDmnzfTfCEE33YE+NR6hZrxyz9TFoEk6Uo +9xS7xu8xNge5/MnTg3EXwfdJiMQUdXHHt3cWAEGM9qbsJKNyMHAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUZcufSzWAmVAJttArVQrbGgVF/ukwCwYDVR0PBAQD +AgEGMBEGCWCGSAGG+EIBAQQEAwIABzAeBglghkgBhvhCAQ0EERYPeGNhIGNlcnRp +ZmljYXRlMAoGCCqGSM49BAMCA0gAMEUCIQCDFBXMKEWPdwFcyZsDC7ueQSKB5Blr +gyM6KjWDWRv6JAIgH8WIJNhZqVfc1LYiI+ITHY/Pl9C5BoAVUov7vNpwGO0= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/onekey_fido2_bluetooth_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/onekey_fido2_bluetooth_authenticator.pem new file mode 100644 index 0000000..4051a7a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/onekey_fido2_bluetooth_authenticator.pem @@ -0,0 +1,19 @@ +OneKey FIDO2 Bluetooth Authenticator +------------------------------------ + +-----BEGIN CERTIFICATE----- +MIICmDCCAj6gAwIBAgIIUO3rVZw+YIwwCgYIKoZIzj0EAwIwgZcxCzAJBgNVBAYT +AkNOMRAwDgYDVQQIEwdCRUlKSU5HMRAwDgYDVQQHEwdIQUlESUFOMR8wHQYDVQQK +ExZPTkVLRVkgR0xPQkFMIENPLiwgTFREMQ8wDQYDVQQLEwZPTkVLRVkxFDASBgNV +BAMTC09ORUtFWSBST09UMRwwGgYJKoZIhvcNAQkBFg1kZXZAb25la2V5LnNvMB4X +DTIzMTEwNzAzNTEwMFoXDTMzMTEwNzAzNTEwMFowgZcxCzAJBgNVBAYTAkNOMRAw +DgYDVQQIEwdCRUlKSU5HMRAwDgYDVQQHEwdIQUlESUFOMR8wHQYDVQQKExZPTkVL +RVkgR0xPQkFMIENPLiwgTFREMQ8wDQYDVQQLEwZPTkVLRVkxFDASBgNVBAMTC09O +RUtFWSBST09UMRwwGgYJKoZIhvcNAQkBFg1kZXZAb25la2V5LnNvMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEA9vMLJQDmnzfTfCEE33YE+NR6hZrxyz9TFoEk6Uo +9xS7xu8xNge5/MnTg3EXwfdJiMQUdXHHt3cWAEGM9qbsJKNyMHAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUZcufSzWAmVAJttArVQrbGgVF/ukwCwYDVR0PBAQD +AgEGMBEGCWCGSAGG+EIBAQQEAwIABzAeBglghkgBhvhCAQ0EERYPeGNhIGNlcnRp +ZmljYXRlMAoGCCqGSM49BAMCA0gAMEUCIQCDFBXMKEWPdwFcyZsDC7ueQSKB5Blr +gyM6KjWDWRv6JAIgH8WIJNhZqVfc1LYiI+ITHY/Pl9C5BoAVUov7vNpwGO0= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/onekey_u2f_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/onekey_u2f_authenticator.pem new file mode 100644 index 0000000..e78da31 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/onekey_u2f_authenticator.pem @@ -0,0 +1,19 @@ +OneKey U2F Authenticator +------------------------ + +-----BEGIN CERTIFICATE----- +MIICmDCCAj6gAwIBAgIIUO3rVZw+YIwwCgYIKoZIzj0EAwIwgZcxCzAJBgNVBAYT +AkNOMRAwDgYDVQQIEwdCRUlKSU5HMRAwDgYDVQQHEwdIQUlESUFOMR8wHQYDVQQK +ExZPTkVLRVkgR0xPQkFMIENPLiwgTFREMQ8wDQYDVQQLEwZPTkVLRVkxFDASBgNV +BAMTC09ORUtFWSBST09UMRwwGgYJKoZIhvcNAQkBFg1kZXZAb25la2V5LnNvMB4X +DTIzMTEwNzAzNTEwMFoXDTMzMTEwNzAzNTEwMFowgZcxCzAJBgNVBAYTAkNOMRAw +DgYDVQQIEwdCRUlKSU5HMRAwDgYDVQQHEwdIQUlESUFOMR8wHQYDVQQKExZPTkVL +RVkgR0xPQkFMIENPLiwgTFREMQ8wDQYDVQQLEwZPTkVLRVkxFDASBgNVBAMTC09O +RUtFWSBST09UMRwwGgYJKoZIhvcNAQkBFg1kZXZAb25la2V5LnNvMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEA9vMLJQDmnzfTfCEE33YE+NR6hZrxyz9TFoEk6Uo +9xS7xu8xNge5/MnTg3EXwfdJiMQUdXHHt3cWAEGM9qbsJKNyMHAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUZcufSzWAmVAJttArVQrbGgVF/ukwCwYDVR0PBAQD +AgEGMBEGCWCGSAGG+EIBAQQEAwIABzAeBglghkgBhvhCAQ0EERYPeGNhIGNlcnRp +ZmljYXRlMAoGCCqGSM49BAMCA0gAMEUCIQCDFBXMKEWPdwFcyZsDC7ueQSKB5Blr +gyM6KjWDWRv6JAIgH8WIJNhZqVfc1LYiI+ITHY/Pl9C5BoAVUov7vNpwGO0= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx1_bio.pem b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx1_bio.pem new file mode 100644 index 0000000..63110ec --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx1_bio.pem @@ -0,0 +1,17 @@ +OneSpan DIGIPASS FX1 BIO +------------------------ + +-----BEGIN CERTIFICATE----- +MIICDjCCAbSgAwIBAgIEeIcbCTAKBggqhkjOPQQDAjBlMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjEgMB4GA1UEAxMXT25lU3BhbiBESUdJUEFTUyBGWDEgQ0EwIBcNMjMwODA0 +MTIzNTI2WhgPMjA1MzA4MDQxMjM1MjZaMGUxCzAJBgNVBAYTAlVTMRAwDgYDVQQK +EwdPbmVTcGFuMSIwIAYDVQQLExlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMSAw +HgYDVQQDExdPbmVTcGFuIERJR0lQQVNTIEZYMSBDQTBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABGDgvW7cmNuTjz7ukEB4cLCPNw+2e5NSxshnSKLuilrMdMK6JAZV +mInsB5ol7fOa6a1sw57gh13Ntu0dhWromDmjUDBOMB0GA1UdDgQWBBTnm8N8/JvC +eNQcV7Eu2UO1XU4TEjAfBgNVHSMEGDAWgBTnm8N8/JvCeNQcV7Eu2UO1XU4TEjAM +BgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0gAMEUCIQDDIFZnlTHkoBUA4BuLN/AB +77B3290KkMazewuZCw7sTwIgNt9qWgq1NH6r7hPGPkpHrC2dU3m67Eu/Z9JL1QXb +eo0= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx1_c.pem b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx1_c.pem new file mode 100644 index 0000000..f89451b --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx1_c.pem @@ -0,0 +1,17 @@ +OneSpan DIGIPASS FX1-C +---------------------- + +-----BEGIN CERTIFICATE----- +MIICEzCCAbigAwIBAgIEATUBFTAKBggqhkjOPQQDAjBnMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjEiMCAGA1UEAxMZT25lU3BhbiBESUdJUEFTUyBGWDEtQyBDQTAgFw0yNTA5 +MDExMjM0MTFaGA8yMDU1MDkwMjEyMzQxMVowZzELMAkGA1UEBhMCVVMxEDAOBgNV +BAoTB09uZVNwYW4xIjAgBgNVBAsTGUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24x +IjAgBgNVBAMTGU9uZVNwYW4gRElHSVBBU1MgRlgxLUMgQ0EwWTATBgcqhkjOPQIB +BggqhkjOPQMBBwNCAATvMsDTOjODViMT+Ccqo5EO8Lqcz+1q62jYynisULUd6/Yy +MM9b23M5SGofJtBrtMu07wz8AFoDEXGnHFX9ZLl9o1AwTjAdBgNVHQ4EFgQUuFlP +4cGSgRbiE6pmA9RdXYqyy7IwHwYDVR0jBBgwFoAUuFlP4cGSgRbiE6pmA9RdXYqy +y7IwDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQDAgNJADBGAiEAghxzzgqVUcndO+da +9TMyeVgjYB+IvBgVwW8/5+RodAsCIQCifu/c/3E+mppceDAOaF6dU+0KCaEORAKY +FQ3rkZApIA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx1a.pem b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx1a.pem new file mode 100644 index 0000000..d5b8469 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx1a.pem @@ -0,0 +1,17 @@ +OneSpan DIGIPASS FX1a +--------------------- + +-----BEGIN CERTIFICATE----- +MIICEDCCAbagAwIBAgIEeKSWsTAKBggqhkjOPQQDAjBmMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjEhMB8GA1UEAxMYT25lU3BhbiBESUdJUEFTUyBGWDFhIENBMCAXDTI0MDUy +NDA4MzY1OFoYDzIwNTQwNTI1MDgzNjU4WjBmMQswCQYDVQQGEwJVUzEQMA4GA1UE +ChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjEh +MB8GA1UEAxMYT25lU3BhbiBESUdJUEFTUyBGWDFhIENBMFkwEwYHKoZIzj0CAQYI +KoZIzj0DAQcDQgAECE7jzTGkM5xT+zu+iiqkMsFYi7gx2X0UxdtaFbxXkPR+msGI +HMiQDe2hWsnunWOGTEC3tDT90nArF8CeFWe2W6NQME4wHQYDVR0OBBYEFEi4gzFj +rRlvrNjkQwk2XY6S14CIMB8GA1UdIwQYMBaAFEi4gzFjrRlvrNjkQwk2XY6S14CI +MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIhAK6Y1gyBmj1K/V5MKDPp +46zipCIlt/XW0xnSpsIQvqxkAiB9w8NjboZsSZneg3J6pwg+9g2lZta7HzZjle+L +Km5QxQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx2_a.pem b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx2_a.pem new file mode 100644 index 0000000..374dca3 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx2_a.pem @@ -0,0 +1,32 @@ +OneSpan DIGIPASS FX2-A +---------------------- + +-----BEGIN CERTIFICATE----- +MIICETCCAbigAwIBAgIEATUBFTAKBggqhkjOPQQDAjBnMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjEiMCAGA1UEAxMZT25lU3BhbiBESUdJUEFTUyBGWDItQSBDQTAgFw0yNTA5 +MDExMjQzNDFaGA8yMDU1MDkwMjEyNDM0MVowZzELMAkGA1UEBhMCVVMxEDAOBgNV +BAoTB09uZVNwYW4xIjAgBgNVBAsTGUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24x +IjAgBgNVBAMTGU9uZVNwYW4gRElHSVBBU1MgRlgyLUEgQ0EwWTATBgcqhkjOPQIB +BggqhkjOPQMBBwNCAATrmyvKCEkw5DdLBYeiNKl5RbcN2dXZyCUdFH8MjznHXZ1+ +v5smgIyrmS9m906BJRqu0bDWg9I70oJQW5Jxfkg3o1AwTjAdBgNVHQ4EFgQUxXzu +J1tSpBbkKlCm5nVe8m/cSocwHwYDVR0jBBgwFoAUxXzuJ1tSpBbkKlCm5nVe8m/c +SocwDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQDAgNHADBEAiA+cOEzdlwxs/PLrTji +7+uMr27cuCLCVYFqMntLCd0WYQIgWf/LvODWlO4D9P+W1eC+5BXmH631tGed4CB5 +3nI99BY= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICGzCCAcKgAwIBAgIEATT+ETAKBggqhkjOPQQDAjBsMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjEnMCUGA1UEAxMeT25lU3BhbiBESUdJUEFTUyBGWDJGSVBTIEwyIENBMCAX +DTI1MDEyOTE0NTQwM1oYDzIwNTUwMTMwMTQ1NDAzWjBsMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjEnMCUGA1UEAxMeT25lU3BhbiBESUdJUEFTUyBGWDJGSVBTIEwyIENBMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGn+Qx18Dp8ZePY/T5hh6jPfyCLf+4D5v +wVWMIzHHr7jQy7Yss5xc6Ys+nLDZenPV3JOAVbpxZ68/5ifyrvOEDqNQME4wHQYD +VR0OBBYEFLc/Q7L4p5getGHP6h9R1L7T5QHKMB8GA1UdIwQYMBaAFLc/Q7L4p5ge +tGHP6h9R1L7T5QHKMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDRwAwRAIgR8Zx +N5ZvBV1KyedhHdYoWvzZHJ2NczrmN4Y4Qa1sTiQCICK0v1GPNywEIf6D22+WnLf9 +3/XLDXXzRnBI31hX6Dtd +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx7.pem b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx7.pem new file mode 100644 index 0000000..75accd5 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx7.pem @@ -0,0 +1,17 @@ +OneSpan DIGIPASS FX7 +-------------------- + +-----BEGIN CERTIFICATE----- +MIICDTCCAbSgAwIBAgIEeKRKhTAKBggqhkjOPQQDAjBlMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjEgMB4GA1UEAxMXT25lU3BhbiBESUdJUEFTUyBGWDcgQ0EwIBcNMjQwMzI5 +MTEzNjU5WhgPMjA1NDAzMzAxMTM2NTlaMGUxCzAJBgNVBAYTAlVTMRAwDgYDVQQK +EwdPbmVTcGFuMSIwIAYDVQQLExlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMSAw +HgYDVQQDExdPbmVTcGFuIERJR0lQQVNTIEZYNyBDQTBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABMOTaYdNPlWUVvU6O6h9EybODkNA0Ym/1MbGuOxL2SzzOtaUsXdN +zekuHJnKV5XkB7o1MxfbcKzU86eN5Y4yxX+jUDBOMB0GA1UdDgQWBBS+MFzPKSFt +efEHH8d+jojdHWpg7zAfBgNVHSMEGDAWgBS+MFzPKSFtefEHH8d+jojdHWpg7zAM +BgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0cAMEQCIEMrqAcwLuAaKSU405ByLDg+ +utZ+9hXuuXHy2EJ0PW32AiBpi+mVSdupZ90yaC8nDr5pTOPVUYnay7jLSbch80Wq +lw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx7_b.pem b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx7_b.pem new file mode 100644 index 0000000..ee1bc44 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx7_b.pem @@ -0,0 +1,32 @@ +OneSpan DIGIPASS FX7-B +---------------------- + +-----BEGIN CERTIFICATE----- +MIICHTCCAcKgAwIBAgIEATT+ETAKBggqhkjOPQQDAjBsMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjEnMCUGA1UEAxMeT25lU3BhbiBESUdJUEFTUyBGWDdGSVBTIEwyIENBMCAX +DTI1MDEyOTE0NTgwM1oYDzIwNTUwMTMwMTQ1ODAzWjBsMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjEnMCUGA1UEAxMeT25lU3BhbiBESUdJUEFTUyBGWDdGSVBTIEwyIENBMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7VeFbl0FwBWnHK9raK2drWQAaAxd73yK +tw5pJx35EjSZ3hfOmfJ/ybwkbu8ezFi+RNUA0GcPCkHkgLic3mSFWaNQME4wHQYD +VR0OBBYEFCj7nWSOxfOOOwpudQeH4IVFpl8bMB8GA1UdIwQYMBaAFCj7nWSOxfOO +OwpudQeH4IVFpl8bMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSQAwRgIhAOO6 +MSjZVUfOY28SVJUdgYV2bqYA6Dy+8BBkGjP8am7BAiEAmk6AuXFah1XX7GMZmeT4 +dsKw1okazv9xWGMj+9nFR4U= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICEjCCAbigAwIBAgIEATUBFTAKBggqhkjOPQQDAjBnMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjEiMCAGA1UEAxMZT25lU3BhbiBESUdJUEFTUyBGWDctQiBDQTAgFw0yNTA5 +MDExMjUzNTdaGA8yMDU1MDkwMjEyNTM1N1owZzELMAkGA1UEBhMCVVMxEDAOBgNV +BAoTB09uZVNwYW4xIjAgBgNVBAsTGUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24x +IjAgBgNVBAMTGU9uZVNwYW4gRElHSVBBU1MgRlg3LUIgQ0EwWTATBgcqhkjOPQIB +BggqhkjOPQMBBwNCAARgnymwcaLlZJVt6gVLRsW4SOpkInD7wQxwWRL2LP2Vct6F +ZR5Xlg4mmH694niw4pRNAbDJUScMJwuOKIs0/q7Wo1AwTjAdBgNVHQ4EFgQU555x +5RnQy3ccBp6Q94UntBCuwPEwHwYDVR0jBBgwFoAU555x5RnQy3ccBp6Q94UntBCu +wPEwDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQDAgNIADBFAiEAg01p++itfM1TfNHs +yKVJETcA7LuWiS+j39f2ukFo+8gCIHTu3l6cBiBqSd/o+6730Rpya+YzOuN2fv4V +mZDYf95r +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx7_c.pem b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx7_c.pem new file mode 100644 index 0000000..c01b20c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/onespan_digipass_fx7_c.pem @@ -0,0 +1,17 @@ +OneSpan DIGIPASS FX7-C +---------------------- + +-----BEGIN CERTIFICATE----- +MIICEjCCAbigAwIBAgIEATUAATAKBggqhkjOPQQDAjBnMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjEiMCAGA1UEAxMZT25lU3BhbiBESUdJUEFTUyBGWDctQyBDQTAgFw0yNTA2 +MjUwNzMzMjVaGA8yMDU1MDYyNjA3MzMyNVowZzELMAkGA1UEBhMCVVMxEDAOBgNV +BAoTB09uZVNwYW4xIjAgBgNVBAsTGUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24x +IjAgBgNVBAMTGU9uZVNwYW4gRElHSVBBU1MgRlg3LUMgQ0EwWTATBgcqhkjOPQIB +BggqhkjOPQMBBwNCAAQdlJtaubAs3ZXaVFEs94s9GPLI6Zig25BYtdatJvy3sn3R +PnseL37MRwcjIC9QbPmUut7Tp8u5psH5phCa9UJSo1AwTjAdBgNVHQ4EFgQUjSbd +Npmp9tdETGE28gwgZa5+lbUwHwYDVR0jBBgwFoAUjSbdNpmp9tdETGE28gwgZa5+ +lbUwDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQDAgNIADBFAiEA5jrrT8h+OiM055n0 +KTSdwwXddx65vwynLr4fenEqTQoCIExsILgxOF/7vvhHA9kMC+uT02A6Nu9X2EdO +t3sq2jHe +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/onespan_fido_touch.pem b/restricted/WebAuthn/rootCertificates/mds/onespan_fido_touch.pem new file mode 100644 index 0000000..f270d04 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/onespan_fido_touch.pem @@ -0,0 +1,47 @@ +OneSpan FIDO Touch +------------------ + +-----BEGIN CERTIFICATE----- +MIIB1zCCAXygAwIBAgIEeCoOuTAKBggqhkjOPQQDAjBqMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjElMCMGA1UEAxMcT25lU3BhbiBEaWdpcGFzcyA3ODUgRklETyBDQTAeFw0x +ODA4MDExMDQwMDhaFw00ODA4MDExMDQwMDhaMGoxCzAJBgNVBAYTAlVTMRAwDgYD +VQQKEwdPbmVTcGFuMSIwIAYDVQQLExlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9u +MSUwIwYDVQQDExxPbmVTcGFuIERpZ2lwYXNzIDc4NSBGSURPIENBMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAE7pgEv+7pBW3vafi3AGGJRcUwfLrLbvbfoo0ZZs4Y +/18dxPPsr97yP8qGPeVVxA5cqtvDZ0e0UqRYNrxYJtr+SKMQMA4wDAYDVR0TBAUw +AwEB/zAKBggqhkjOPQQDAgNJADBGAiEAgOqPpSm+j+Nl6mqji6a9ibtyS6WNqWxg +Q3NI//nq/XsCIQDo1uHgj76YTfjJPQHtGOcos2C3upUfSMiZKQgpclr3gg== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIB5TCCAYqgAwIBAgIEeCoOuTAKBggqhkjOPQQDAjBsMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHT25lU3BhbjEiMCAGA1UECxMZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjEnMCUGA1UEAxMeT25lU3BhbiBEaWdpcGFzcyBGSURPIFRvdWNoIENBMB4X +DTE5MDQyOTA5MTg1OVoXDTQ0MDQyOTA5MTg1OVoweTELMAkGA1UEBhMCVVMxEDAO +BgNVBAoTB09uZVNwYW4xIjAgBgNVBAsTGUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRp +b24xNDAyBgNVBAMTK09uZVNwYW4gRGlnaXBhc3MgRklETyBUb3VjaCBBdHRlc3Rh +dGlvbiBLZXkwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQff1lHI1B3VEjzgn+L +LgaBjDb54eIJWw/j3zTXaT3unEIXpGQjmB1K9R8Ka/10gb4u2BsoYXlrLfxG7m8z +NUFlow0wCzAJBgNVHRMEAjAAMAoGCCqGSM49BAMCA0kAMEYCIQDvqQIW/++ulAmY +TNvi5bYgddL5wFA3255VDK/2g1XQOQIhAOo4DxqyS24RnRnOd7XWivwOLdJBmBBq +O2I6s4Oyim0c +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICuTCCAl+gAwIBAgIJAKq5cjZYxI4AMAoGCCqGSM49BAMCMIG4MQswCQYDVQQG +EwJCRTEQMA4GA1UECAwHQnJhYmFudDEYMBYGA1UEBwwPU3Ryb21iZWVrLUJldmVy +MRwwGgYDVQQKDBNWQVNDTyBEYXRhIFNlY3VyaXR5MSIwIAYDVQQLDBlBdXRoZW50 +aWNhdG9yIEF0dGVzdGF0aW9uMR0wGwYDVQQDDBRWQVNDTyBEUDc4NUZJRE8gUk9P +VDEcMBoGCSqGSIb3DQEJARYNam92QHZhc2NvLmNvbTAeFw0xODA0MTExMjQ1MDRa +Fw0yODA0MDgxMjQ1MDRaMIG4MQswCQYDVQQGEwJCRTEQMA4GA1UECAwHQnJhYmFu +dDEYMBYGA1UEBwwPU3Ryb21iZWVrLUJldmVyMRwwGgYDVQQKDBNWQVNDTyBEYXRh +IFNlY3VyaXR5MSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMR0w +GwYDVQQDDBRWQVNDTyBEUDc4NUZJRE8gUk9PVDEcMBoGCSqGSIb3DQEJARYNam92 +QHZhc2NvLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLDcYiuC92LRiyqa +GA1MRIH73mgOpbgwvoxsr+nPBj+438uIBOMn9p4iT3jKfcBaDPs44+gg2tfYlqFo +d7rNFsGjUDBOMB0GA1UdDgQWBBSejT9/k8LNFh+V4s5g4SbE0O38UTAfBgNVHSME +GDAWgBSejT9/k8LNFh+V4s5g4SbE0O38UTAMBgNVHRMEBTADAQH/MAoGCCqGSM49 +BAMCA0gAMEUCIQDUMVXd4XSA1br+6n1w2Qk9TcX5ouZDVcaHsFDDmx1ztQIgMtG3 +oABh6bGVzaLN80HtkycWAGUVSt7kDdQYIjNzTCQ= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/onlykey_secp256r1_fido2_ctap2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/onlykey_secp256r1_fido2_ctap2_authenticator.pem new file mode 100644 index 0000000..1523083 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/onlykey_secp256r1_fido2_ctap2_authenticator.pem @@ -0,0 +1,21 @@ +OnlyKey Secp256R1 FIDO2 CTAP2 Authenticator +------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIC2TCCAoCgAwIBAgIBATAKBggqhkjOPQQDAjB7MQswCQYDVQQGEwJVUzEXMBUG +A1UECAwOTm9ydGggQ2Fyb2xpbmExFDASBgNVBAoMC0NyeXB0b1RydXN0MRAwDgYD +VQQLDAdSb290IENBMQ8wDQYDVQQDDAZjcnAudG8xGjAYBgkqhkiG9w0BCQEWC2lu +Zm9AY3JwLnRvMCAXDTIyMDIyMTIwMTEzMVoYDzIwNzIwMjA5MjAxMTMxWjCBjTEL +MAkGA1UEBhMCVVMxFzAVBgNVBAgMDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKDAtD +cnlwdG9UcnVzdDEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjEP +MA0GA1UEAwwGY3JwLnRvMRowGAYJKoZIhvcNAQkBFgtpbmZvQGNycC50bzBZMBMG +ByqGSM49AgEGCCqGSM49AwEHA0IABPDHBga7d6uNgaUjE15QhxvgyeTtUh3uTGJC +Xh1M/5p5/N/c3EFjog0GoON0fMZpIZj6OD70WC1IXOpVQ4fbftajgd8wgdwwHQYD +VR0OBBYEFMFt2wPA3pdXQPaW2UgXveEly7SkMIGiBgNVHSMEgZowgZehf6R9MHsx +CzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEUMBIGA1UECgwL +Q3J5cHRvVHJ1c3QxEDAOBgNVBAsMB1Jvb3QgQ0ExDzANBgNVBAMMBmNycC50bzEa +MBgGCSqGSIb3DQEJARYLaW5mb0BjcnAudG+CFFN6O7xnIKb7483pqiqguAT6VpQM +MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgTwMAoGCCqGSM49BAMCA0cAMEQCIFw8nmLE +6ybMEafOchgmXpcH4NIsdwWlDufredL+B+CiAiBHWsy77w09eC/sEjoVcGkmwRcZ +kTtmrYoNzguijYMVtQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/opensk_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/opensk_authenticator.pem new file mode 100644 index 0000000..b0cde92 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/opensk_authenticator.pem @@ -0,0 +1,11 @@ +OpenSK authenticator +-------------------- + +-----BEGIN CERTIFICATE----- +MIIBGDCBwAIJAM8A3ehdpiFuMAoGCCqGSM49BAMCMBQxEjAQBgNVBAMMCU9wZW5T +SyBDQTAgFw0yMDA5MTQxMjEyNDBaGA8yMDgwMDkxNDEyMTI0MFowFDESMBAGA1UE +AwwJT3BlblNLIENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEs/54X/I8ydmZ +gFVEJ4yKnlA4uIJramAQcc3do2xDzRGcxDTzttIbdk4XX2rz6aZETeXt7E8+7HML +I4khuJpUXjAKBggqhkjOPQQDAgNHADBEAiAhnTLXit4GJNHqh8h1DHNb90V5OW5v +RmOl6lvE/cPz9QIgb3d3huE3Yh0yQ/HQuIo6dHM+F/4teazhJZF15gYLwCc= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/pone_biometrics_offpad_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/pone_biometrics_offpad_authenticator.pem new file mode 100644 index 0000000..9b3ebdb --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/pone_biometrics_offpad_authenticator.pem @@ -0,0 +1,15 @@ +Pone Biometrics OFFPAD Authenticator +------------------------------------ + +-----BEGIN CERTIFICATE----- +MIIBwTCCAWegAwIBAgIUM9zX0yKQj8xgVlz2ktA0glSPqqQwCgYIKoZIzj0EAwIw +NjEYMBYGA1UEAwwPUG9uZSBCaW9tZXRyaWNzMQswCQYDVQQGEwJOTzENMAsGA1UE +BwwET3NsbzAeFw0yMjExMTcxNTE4MDVaFw0zMjExMTQxNTE4MDVaMDYxGDAWBgNV +BAMMD1BvbmUgQmlvbWV0cmljczELMAkGA1UEBhMCTk8xDTALBgNVBAcMBE9zbG8w +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARROTL0ejNeX9WwjEYPhjmNuYz936Bm +aD0KEVX0KjlhrKT55CjOzsfT0HRi7t2uCMGJJpo5GhIwsC1cgl+nPWiBo1MwUTAd +BgNVHQ4EFgQUuLAOneOorndDm+s/TXhuapmWwIIwHwYDVR0jBBgwFoAUuLAOneOo +rndDm+s/TXhuapmWwIIwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNIADBF +AiBOL3PkonxR3Yi5q1QKBZPPsZ0BIT1XWQZqI6h5mp5KdAIhAPXDqExgrR15/q+5 +itV86aiUkZvTU8p+gQT6GlvQD0Uo +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/precision_innait_key_fido_2_level_2_certified.pem b/restricted/WebAuthn/rootCertificates/mds/precision_innait_key_fido_2_level_2_certified.pem new file mode 100644 index 0000000..f8fe2c0 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/precision_innait_key_fido_2_level_2_certified.pem @@ -0,0 +1,24 @@ +Precision InnaIT Key FIDO 2 Level 2 certified +--------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDgzCCAmugAwIBAgIQaYjnxOuk47BGc+Eih27bmjANBgkqhkiG9w0BAQsFADBH +MRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJUHJlY2lzaW9u +MRUwEwYDVQQDEwxQcmVjaXNpb24tQ0EwIBcNMTkwODEzMTIzMDU3WhgPMjExOTA4 +MTMxMjQwNTdaMEcxEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZ +FglQcmVjaXNpb24xFTATBgNVBAMTDFByZWNpc2lvbi1DQTCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAOs5avRxbtRNzbQDpvWgCMFCWERAF7JS9bUm1HJM +zbg1P39UTJt4MrUGza143OW+T2CtLa6YwuOsvEfoVARnCf5QHuuSsC2SS1gng12G +CObGBasIBHC21R9HVsI0W4uxf5kcGNh8YyStplxXPcKxig2trMD1U4izm4LeNuFS +qcXf1xk/jrIoggnvMIVUYK0WM3pR91lebnihsXnR8GtWjAFdpQHAOUY94RjN9q8n +xGuMuNcf+2EZ0VLeV3tG3iQZxJyl3x9dZCwK70WXj3GtKdpR/FSucriDRLqbUFWu +MgKAXifk4okjzk5fd5OFnezPil7h0jY3q+HKKlHjM9b47wUCAwEAAaNpMGcwEwYJ +KwYBBAGCNxQCBAYeBABDAEEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFP2rjw3cLpwUzhZ2ltPtv+cvdCOgMBAGCSsGAQQBgjcVAQQD +AgEAMA0GCSqGSIb3DQEBCwUAA4IBAQCVuXneg526BcPQjBavX9P60g0JIJKaJ0CR +oPUG83IlM5qlyKQOrmG4fp/PHnhPD/mA7O4cXLVuxDB+2W+gnhLDiVEJpcjypB1G +XiV5hqfc0XpmHT48Ca9Ditn1EeVeB1t8rWCK18Xo6x5xXMT9oTUDpP410nVC2wfV +Q21IXA6bkzgQMiK7BCJggWJ8HokgPhmPb4R/pPNwLuClvRxppn20ZcJqpYQHeI02 +r0LKhwce+kZpjJD+hUnyro262RKrOf9+3y8zrFYC10cbsLUmUJs5pJxygj4fVGbk +B9jvsG1xTu62ko8qUX5mXJNtz3dRPCEcGx4y2rom6ushAPtqr1Ik +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/redsys_u2f_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/redsys_u2f_authenticator.pem new file mode 100644 index 0000000..99d8671 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/redsys_u2f_authenticator.pem @@ -0,0 +1,22 @@ +Redsys U2F Authenticator +------------------------ + +-----BEGIN CERTIFICATE----- +MIIDAjCCAqigAwIBAgIJAMEVspeEsGiKMAoGCCqGSM49BAMCMIHbMQswCQYDVQQG +EwJFUzEcMBoGA1UECAwTQ29tdW5pZGFkIGRlIE1hZHJpZDEPMA0GA1UEBwwGTWFk +cmlkMS0wKwYDVQQKDCRSZWRzeXMgU2VydmljaW9zIGRlIFByb2Nlc2FtaWVudG8g +U0wxIzAhBgNVBAsMGlNvbHVjaW9uZXMgQ2hpcCB5IFRhcmpldGFzMQ8wDQYDVQQD +DAZSZWRzeXMxODA2BgkqhkiG9w0BCQEWKXVzdWdlbi5Tb2x1Y2lvbmVzQ0hJUHlk +ZUVtaXNpb25AcmVkc3lzLmVzMB4XDTE4MTAxMTA4MDY1M1oXDTIzMTAxMDA4MDY1 +M1owgdsxCzAJBgNVBAYTAkVTMRwwGgYDVQQIDBNDb211bmlkYWQgZGUgTWFkcmlk +MQ8wDQYDVQQHDAZNYWRyaWQxLTArBgNVBAoMJFJlZHN5cyBTZXJ2aWNpb3MgZGUg +UHJvY2VzYW1pZW50byBTTDEjMCEGA1UECwwaU29sdWNpb25lcyBDaGlwIHkgVGFy +amV0YXMxDzANBgNVBAMMBlJlZHN5czE4MDYGCSqGSIb3DQEJARYpdXN1Z2VuLlNv +bHVjaW9uZXNDSElQeWRlRW1pc2lvbkByZWRzeXMuZXMwWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAAQgGumSd5bd9pwLs32XWSNbHFCQdGgkCBLuSHJneXQcEKCBWRC2 +yM0Ma/jeyvWS8ZThEhNoTuoG0HKDGwC/pfCEo1MwUTAdBgNVHQ4EFgQUPCK1l/MO +hontJGD53+mbdRAykvYwHwYDVR0jBBgwFoAUPCK1l/MOhontJGD53+mbdRAykvYw +DwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNIADBFAiBZeD9j6oUKMZ0kW0mD +CnHqKplZbWeTSxGzvSRf9Jsf8wIhAMf8d10ylzIYulfiu0Ont5sIW5/REme0VwPx +9ObhLATz +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/rsa_authenticator_4_for_android.pem b/restricted/WebAuthn/rootCertificates/mds/rsa_authenticator_4_for_android.pem new file mode 100644 index 0000000..1c0f53e --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/rsa_authenticator_4_for_android.pem @@ -0,0 +1,19 @@ +RSA Authenticator 4 for Android +------------------------------- + +-----BEGIN CERTIFICATE----- +MIICcDCCAhOgAwIBAgIETe12WTAMBggqhkjOPQQDAgUAMIGYMQswCQYDVQQGEwJV +UzELMAkGA1UECBMCTUExEzARBgNVBAcTCkJ1cmxpbmd0b24xGTAXBgNVBAoTEFJT +QSBTZWN1cml0eSBMTEMxEzARBgNVBAsTCk9wZXJhdGlvbnMxNzA1BgNVBAMTLlJT +QSBTb2Z0d2FyZS1CYXNlZCBGSURPIEF1dGhlbnRpY2F0b3JzIFJvb3QgQ0EwIBcN +MjQwNDMwMTgxODMwWhgPMjA1NDA0MzAxODE4MzBaMIGYMQswCQYDVQQGEwJVUzEL +MAkGA1UECBMCTUExEzARBgNVBAcTCkJ1cmxpbmd0b24xGTAXBgNVBAoTEFJTQSBT +ZWN1cml0eSBMTEMxEzARBgNVBAsTCk9wZXJhdGlvbnMxNzA1BgNVBAMTLlJTQSBT +b2Z0d2FyZS1CYXNlZCBGSURPIEF1dGhlbnRpY2F0b3JzIFJvb3QgQ0EwWTATBgcq +hkjOPQIBBggqhkjOPQMBBwNCAAQnMvYhfe67eO10Sw/mzhq8yDM5eqnJhyzPEQ1B +dvcbGGaL1u2hgrb8oNnLwZls/kih4lmyFaKLJ4zu4PbsJpgIo0UwQzASBgNVHRMB +Af8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtIMTSCNzIiQK +X3zYdZo+4YHpKHEwDAYIKoZIzj0EAwIFAANJADBGAiEAz55v7FiamXxFtq6fwyho +qLj+ptC5TmlXEtP5FfPbOp8CIQCL1K4Rt9l2oWt4VkPjIT603foFGHVkuRzruUAm +702E3w== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/rsa_authenticator_4_for_ios.pem b/restricted/WebAuthn/rootCertificates/mds/rsa_authenticator_4_for_ios.pem new file mode 100644 index 0000000..8f4a564 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/rsa_authenticator_4_for_ios.pem @@ -0,0 +1,19 @@ +RSA Authenticator 4 for iOS +--------------------------- + +-----BEGIN CERTIFICATE----- +MIICcDCCAhOgAwIBAgIETe12WTAMBggqhkjOPQQDAgUAMIGYMQswCQYDVQQGEwJV +UzELMAkGA1UECBMCTUExEzARBgNVBAcTCkJ1cmxpbmd0b24xGTAXBgNVBAoTEFJT +QSBTZWN1cml0eSBMTEMxEzARBgNVBAsTCk9wZXJhdGlvbnMxNzA1BgNVBAMTLlJT +QSBTb2Z0d2FyZS1CYXNlZCBGSURPIEF1dGhlbnRpY2F0b3JzIFJvb3QgQ0EwIBcN +MjQwNDMwMTgxODMwWhgPMjA1NDA0MzAxODE4MzBaMIGYMQswCQYDVQQGEwJVUzEL +MAkGA1UECBMCTUExEzARBgNVBAcTCkJ1cmxpbmd0b24xGTAXBgNVBAoTEFJTQSBT +ZWN1cml0eSBMTEMxEzARBgNVBAsTCk9wZXJhdGlvbnMxNzA1BgNVBAMTLlJTQSBT +b2Z0d2FyZS1CYXNlZCBGSURPIEF1dGhlbnRpY2F0b3JzIFJvb3QgQ0EwWTATBgcq +hkjOPQIBBggqhkjOPQMBBwNCAAQnMvYhfe67eO10Sw/mzhq8yDM5eqnJhyzPEQ1B +dvcbGGaL1u2hgrb8oNnLwZls/kih4lmyFaKLJ4zu4PbsJpgIo0UwQzASBgNVHRMB +Af8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtIMTSCNzIiQK +X3zYdZo+4YHpKHEwDAYIKoZIzj0EAwIFAANJADBGAiEAz55v7FiamXxFtq6fwyho +qLj+ptC5TmlXEtP5FfPbOp8CIQCL1K4Rt9l2oWt4VkPjIT603foFGHVkuRzruUAm +702E3w== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/rsa_ds100.pem b/restricted/WebAuthn/rootCertificates/mds/rsa_ds100.pem new file mode 100644 index 0000000..b6da406 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/rsa_ds100.pem @@ -0,0 +1,17 @@ +RSA DS100 +--------- + +-----BEGIN CERTIFICATE----- +MIICLDCCAc+gAwIBAgIEZP/gNzAMBggqhkjOPQQDAgUAMHcxCzAJBgNVBAYTAlVT +MQswCQYDVQQIEwJNQTEQMA4GA1UEBxMHQmVkZm9yZDEZMBcGA1UEChMQUlNBIFNl +Y3VyaXR5IExMQzETMBEGA1UECxMKT3BlcmF0aW9uczEZMBcGA1UEAxMQUlNBIEZJ +RE8gQ0EgUm9vdDAgFw0yMjA1MTEwMDE3MTdaGA8yMDUyMDUxMDAwMTcxN1owdzEL +MAkGA1UEBhMCVVMxCzAJBgNVBAgTAk1BMRAwDgYDVQQHEwdCZWRmb3JkMRkwFwYD +VQQKExBSU0EgU2VjdXJpdHkgTExDMRMwEQYDVQQLEwpPcGVyYXRpb25zMRkwFwYD +VQQDExBSU0EgRklETyBDQSBSb290MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +Lf2h68GzSEWEop22RLvKC1wNAtUItmv4Tf2OxIpB1XQe9JP2nRPCmkzzfQUYnOk9 +J9PgvjEi64buUKPrqd03MaNFMEMwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8B +Af8EBAMCAQYwHQYDVR0OBBYEFLhRo4uE2mnJ/VtGfB+ON0rAQzQZMAwGCCqGSM49 +BAMCBQADSQAwRgIhAL719K0lS6jdolliI8h4lyI8tgFFjv4NPg1ddIF+bHmSAiEA +0ti1aP0ScprmBoLaGPxduThf7MwmiQbTm27NgahRvKg= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/safenet_etoken_fido.pem b/restricted/WebAuthn/rootCertificates/mds/safenet_etoken_fido.pem new file mode 100644 index 0000000..4bf3efa --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/safenet_etoken_fido.pem @@ -0,0 +1,43 @@ +Safenet eToken FIDO +------------------- + +-----BEGIN CERTIFICATE----- +MIIC6TCCAdGgAwIBAgIJAJbTyru1X/IPMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV +BAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBDQTAeFw0xODA2MTIxNDQ1NTBaFw0y +ODA2MDkxNDQ1NTBaMCMxITAfBgNVBAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBD +QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVjKHWpbD7TSlMxocjT +l6nIf7x32PmsQ9zGuLGGqA0UQZoIq3XLzL6LYUvJ5A5g0uyFGllHEfGAKrEaCQ8F +VvPS/Uh0FyfzWhRAziTSijjMIIVjjjUv9m9vFmcXScgHig7Odz8858V0krNH99qG +m3wjgaOerTWmt+jXCUfn01IkTPwxG2HlgEd45jNLSV7Vool+Ke8E2ki4lEkTeHzb +oulR5GUbp3nMi7E47VMQa3bNwnzWBbsaBSSQhLk3m5HaKhhxa6wJDK47NiMCkCkd +IHuWSQLVAfm85UAONtEOPwi0OuK3qbe8yKOFGf0KhB5MMeAym7MV/M4W0a49ogPD +9pMCAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI +hvcNAQELBQADggEBAJWz5xLMk5WNYbAb6yOxECBoZ2WeB/ql4VJ3O/3/tNsxOYnz +LeWo540zQh9rAmaxz7eumBlskMq4yGPSNXB9ycWGHgkcCeSzN2wv8CIzDBs2oBZj +TNk65LBZDssTOBtMW/+uTFHQfbuO3ISLhI0DXfREi9NDM3jfk11xHcsfh2RMV+Qd +NfwVaZZrCq+ouG+Evkv7Kqq+oyu0VFM/tz68TGl6ylhPFR1qh9wttpVjAOOCEQCL +qP2dP28lwYByCqHQqVHwbujv/LZjZnKW3LYndZixPPSRCJssDDwJvh/f6nTxg9ZE ++/JcYre5CaI8nzVHaSOCjNJ7FzULG64JiWOvQ50= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIJAICUTvkgtj5CMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAkZSMQwwCgYDVQQKDANESVMxCzAJBgNVBAsMAkNTMScwJQYDVQQDDB5HZW1h +bHRvIE11bHRpQXBwIEZJRE8gU3ViY2EgQ0EwHhcNMjAwNzA3MTQzNzE4WhcNMzAw +NzA1MTQzNzE4WjBRMQswCQYDVQQGEwJGUjEMMAoGA1UECgwDRElTMQswCQYDVQQL +DAJDUzEnMCUGA1UEAwweR2VtYWx0byBNdWx0aUFwcCBGSURPIFN1YmNhIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAKOeqC5/p0D1isCYKQJlVUO +rB6I7DLocunE/Rm8duGTbyxQht3CbFVTv3N2Lp2fbjxlI+3sOSGk33FTYkTqxcdJ +IrJ7SskBcUSNrfKOaQT/6KQcP4Cm7V+655Tq+TWxyxWQhDygt15qoP7MuK6bT9Sw +pCjpfKhaMSmyQaMoUcRAbLqdzBCac0hzB+Ze+gqJlnWV9UaSI2rFsVuH4ZE0cRO+ +MOpaLgM/s248nGGHp22ewSQfbnPaBbb8iqyAP+cu52GLsUpKRJebE+R6+PMQ9JCd +WeQZR3DkfSidkv3mcb4jq1iIta+MqKhRnwrfXh911KWLnYAl9ENChLX0c6Sj1QID +AQABo1AwTjAdBgNVHQ4EFgQUWLvhRBUPn8uLIf68+gv/NZIwGSIwHwYDVR0jBBgw +FoAUWLvhRBUPn8uLIf68+gv/NZIwGSIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAFLrDhaegeKHxYjH3EP3vUBKhnzM206ASxgeYCO2Ec9pOlYJaeqFE ++sUamUV/pwjDlqNaSgFgy7TweYkvOmMn4qScsHqvJ3zGOAiafwah1vUHfClXR8+a +xO2iGOUF0JKrZ9YYjbAa5/4HClv7jFPOdMWTOQyngoiHAs3jkuYjpCLFlB4VOi3d +1wjA1pnTdBKkAb7t8nTvw+/XbFvcQa73VH7sjvoBqD3fdMfRcuVq4qUZtZT6cGag +THD61Ttqh9oMCZXcDbR1PGZnNbqycsWPDIK0npmK3/3lfV8c+Zsry6e170mfJMZp +7O8m6CSz6/VLK+yDJd7841wpmeKTf6InZA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/safenet_etoken_fusion.pem b/restricted/WebAuthn/rootCertificates/mds/safenet_etoken_fusion.pem new file mode 100644 index 0000000..ca560af --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/safenet_etoken_fusion.pem @@ -0,0 +1,43 @@ +SafeNet eToken Fusion +--------------------- + +-----BEGIN CERTIFICATE----- +MIIC6TCCAdGgAwIBAgIJAJbTyru1X/IPMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV +BAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBDQTAeFw0xODA2MTIxNDQ1NTBaFw0y +ODA2MDkxNDQ1NTBaMCMxITAfBgNVBAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBD +QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVjKHWpbD7TSlMxocjT +l6nIf7x32PmsQ9zGuLGGqA0UQZoIq3XLzL6LYUvJ5A5g0uyFGllHEfGAKrEaCQ8F +VvPS/Uh0FyfzWhRAziTSijjMIIVjjjUv9m9vFmcXScgHig7Odz8858V0krNH99qG +m3wjgaOerTWmt+jXCUfn01IkTPwxG2HlgEd45jNLSV7Vool+Ke8E2ki4lEkTeHzb +oulR5GUbp3nMi7E47VMQa3bNwnzWBbsaBSSQhLk3m5HaKhhxa6wJDK47NiMCkCkd +IHuWSQLVAfm85UAONtEOPwi0OuK3qbe8yKOFGf0KhB5MMeAym7MV/M4W0a49ogPD +9pMCAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI +hvcNAQELBQADggEBAJWz5xLMk5WNYbAb6yOxECBoZ2WeB/ql4VJ3O/3/tNsxOYnz +LeWo540zQh9rAmaxz7eumBlskMq4yGPSNXB9ycWGHgkcCeSzN2wv8CIzDBs2oBZj +TNk65LBZDssTOBtMW/+uTFHQfbuO3ISLhI0DXfREi9NDM3jfk11xHcsfh2RMV+Qd +NfwVaZZrCq+ouG+Evkv7Kqq+oyu0VFM/tz68TGl6ylhPFR1qh9wttpVjAOOCEQCL +qP2dP28lwYByCqHQqVHwbujv/LZjZnKW3LYndZixPPSRCJssDDwJvh/f6nTxg9ZE ++/JcYre5CaI8nzVHaSOCjNJ7FzULG64JiWOvQ50= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIJAICUTvkgtj5CMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAkZSMQwwCgYDVQQKDANESVMxCzAJBgNVBAsMAkNTMScwJQYDVQQDDB5HZW1h +bHRvIE11bHRpQXBwIEZJRE8gU3ViY2EgQ0EwHhcNMjAwNzA3MTQzNzE4WhcNMzAw +NzA1MTQzNzE4WjBRMQswCQYDVQQGEwJGUjEMMAoGA1UECgwDRElTMQswCQYDVQQL +DAJDUzEnMCUGA1UEAwweR2VtYWx0byBNdWx0aUFwcCBGSURPIFN1YmNhIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAKOeqC5/p0D1isCYKQJlVUO +rB6I7DLocunE/Rm8duGTbyxQht3CbFVTv3N2Lp2fbjxlI+3sOSGk33FTYkTqxcdJ +IrJ7SskBcUSNrfKOaQT/6KQcP4Cm7V+655Tq+TWxyxWQhDygt15qoP7MuK6bT9Sw +pCjpfKhaMSmyQaMoUcRAbLqdzBCac0hzB+Ze+gqJlnWV9UaSI2rFsVuH4ZE0cRO+ +MOpaLgM/s248nGGHp22ewSQfbnPaBbb8iqyAP+cu52GLsUpKRJebE+R6+PMQ9JCd +WeQZR3DkfSidkv3mcb4jq1iIta+MqKhRnwrfXh911KWLnYAl9ENChLX0c6Sj1QID +AQABo1AwTjAdBgNVHQ4EFgQUWLvhRBUPn8uLIf68+gv/NZIwGSIwHwYDVR0jBBgw +FoAUWLvhRBUPn8uLIf68+gv/NZIwGSIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAFLrDhaegeKHxYjH3EP3vUBKhnzM206ASxgeYCO2Ec9pOlYJaeqFE ++sUamUV/pwjDlqNaSgFgy7TweYkvOmMn4qScsHqvJ3zGOAiafwah1vUHfClXR8+a +xO2iGOUF0JKrZ9YYjbAa5/4HClv7jFPOdMWTOQyngoiHAs3jkuYjpCLFlB4VOi3d +1wjA1pnTdBKkAb7t8nTvw+/XbFvcQa73VH7sjvoBqD3fdMfRcuVq4qUZtZT6cGag +THD61Ttqh9oMCZXcDbR1PGZnNbqycsWPDIK0npmK3/3lfV8c+Zsry6e170mfJMZp +7O8m6CSz6/VLK+yDJd7841wpmeKTf6InZA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/safenet_etoken_fusion_cc.pem b/restricted/WebAuthn/rootCertificates/mds/safenet_etoken_fusion_cc.pem new file mode 100644 index 0000000..0f0306c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/safenet_etoken_fusion_cc.pem @@ -0,0 +1,43 @@ +SafeNet eToken Fusion CC +------------------------ + +-----BEGIN CERTIFICATE----- +MIIC6TCCAdGgAwIBAgIJAJbTyru1X/IPMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV +BAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBDQTAeFw0xODA2MTIxNDQ1NTBaFw0y +ODA2MDkxNDQ1NTBaMCMxITAfBgNVBAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBD +QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVjKHWpbD7TSlMxocjT +l6nIf7x32PmsQ9zGuLGGqA0UQZoIq3XLzL6LYUvJ5A5g0uyFGllHEfGAKrEaCQ8F +VvPS/Uh0FyfzWhRAziTSijjMIIVjjjUv9m9vFmcXScgHig7Odz8858V0krNH99qG +m3wjgaOerTWmt+jXCUfn01IkTPwxG2HlgEd45jNLSV7Vool+Ke8E2ki4lEkTeHzb +oulR5GUbp3nMi7E47VMQa3bNwnzWBbsaBSSQhLk3m5HaKhhxa6wJDK47NiMCkCkd +IHuWSQLVAfm85UAONtEOPwi0OuK3qbe8yKOFGf0KhB5MMeAym7MV/M4W0a49ogPD +9pMCAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI +hvcNAQELBQADggEBAJWz5xLMk5WNYbAb6yOxECBoZ2WeB/ql4VJ3O/3/tNsxOYnz +LeWo540zQh9rAmaxz7eumBlskMq4yGPSNXB9ycWGHgkcCeSzN2wv8CIzDBs2oBZj +TNk65LBZDssTOBtMW/+uTFHQfbuO3ISLhI0DXfREi9NDM3jfk11xHcsfh2RMV+Qd +NfwVaZZrCq+ouG+Evkv7Kqq+oyu0VFM/tz68TGl6ylhPFR1qh9wttpVjAOOCEQCL +qP2dP28lwYByCqHQqVHwbujv/LZjZnKW3LYndZixPPSRCJssDDwJvh/f6nTxg9ZE ++/JcYre5CaI8nzVHaSOCjNJ7FzULG64JiWOvQ50= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIJAICUTvkgtj5CMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAkZSMQwwCgYDVQQKDANESVMxCzAJBgNVBAsMAkNTMScwJQYDVQQDDB5HZW1h +bHRvIE11bHRpQXBwIEZJRE8gU3ViY2EgQ0EwHhcNMjAwNzA3MTQzNzE4WhcNMzAw +NzA1MTQzNzE4WjBRMQswCQYDVQQGEwJGUjEMMAoGA1UECgwDRElTMQswCQYDVQQL +DAJDUzEnMCUGA1UEAwweR2VtYWx0byBNdWx0aUFwcCBGSURPIFN1YmNhIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAKOeqC5/p0D1isCYKQJlVUO +rB6I7DLocunE/Rm8duGTbyxQht3CbFVTv3N2Lp2fbjxlI+3sOSGk33FTYkTqxcdJ +IrJ7SskBcUSNrfKOaQT/6KQcP4Cm7V+655Tq+TWxyxWQhDygt15qoP7MuK6bT9Sw +pCjpfKhaMSmyQaMoUcRAbLqdzBCac0hzB+Ze+gqJlnWV9UaSI2rFsVuH4ZE0cRO+ +MOpaLgM/s248nGGHp22ewSQfbnPaBbb8iqyAP+cu52GLsUpKRJebE+R6+PMQ9JCd +WeQZR3DkfSidkv3mcb4jq1iIta+MqKhRnwrfXh911KWLnYAl9ENChLX0c6Sj1QID +AQABo1AwTjAdBgNVHQ4EFgQUWLvhRBUPn8uLIf68+gv/NZIwGSIwHwYDVR0jBBgw +FoAUWLvhRBUPn8uLIf68+gv/NZIwGSIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAFLrDhaegeKHxYjH3EP3vUBKhnzM206ASxgeYCO2Ec9pOlYJaeqFE ++sUamUV/pwjDlqNaSgFgy7TweYkvOmMn4qScsHqvJ3zGOAiafwah1vUHfClXR8+a +xO2iGOUF0JKrZ9YYjbAa5/4HClv7jFPOdMWTOQyngoiHAs3jkuYjpCLFlB4VOi3d +1wjA1pnTdBKkAb7t8nTvw+/XbFvcQa73VH7sjvoBqD3fdMfRcuVq4qUZtZT6cGag +THD61Ttqh9oMCZXcDbR1PGZnNbqycsWPDIK0npmK3/3lfV8c+Zsry6e170mfJMZp +7O8m6CSz6/VLK+yDJd7841wpmeKTf6InZA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/samsung_pass.pem b/restricted/WebAuthn/rootCertificates/mds/samsung_pass.pem new file mode 100644 index 0000000..2a6561e --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/samsung_pass.pem @@ -0,0 +1,20 @@ +Samsung Pass +------------ + +-----BEGIN CERTIFICATE----- +MIICpjCCAkqgAwIBAgIBAzAMBggqhkjOPQQDAgUAMIGmMR8wHQYDVQQDExZTYW1z +dW5nIEVsZWN0cm9uaWNzIENBMRwwGgYDVQQKExNTYW1zdW5nIEVsZWN0cm9uaWNz +MRcwFQYDVQQLEw5TYW1zdW5nIE1vYmlsZTETMBEGA1UEBxMKU3V3b24gY2l0eTEL +MAkGA1UEBhMCS1IxKjAoBgoJkiaJk/IsZAEBDBpTYW1zdW5nRGV2aWNlUm9vdENB +S2V5X0VDQzAgFw0yMzA5MTIwMDI5NDRaGA8yMDY5MTIzMTE0NTk1OVowgaYxHzAd +BgNVBAMTFlNhbXN1bmcgRWxlY3Ryb25pY3MgQ0ExHDAaBgNVBAoTE1NhbXN1bmcg +RWxlY3Ryb25pY3MxFzAVBgNVBAsTDlNhbXN1bmcgTW9iaWxlMRMwEQYDVQQHEwpT +dXdvbiBjaXR5MQswCQYDVQQGEwJLUjEqMCgGCgmSJomT8ixkAQEMGlNhbXN1bmdE +ZXZpY2VSb290Q0FLZXlfRUNDMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7m2u +3Z1xXVKfJWNyNE3HL2M0NZMOoADIZLls59nRtCHtvR1mgU2yZNtOcYPO56u5Dirg +7mkS7SRMxeZ6sXee3KNjMGEwHwYDVR0jBBgwFoAUsplza7dnMSyTdHipJKk3PGOQ +RkEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLKZ +c2u3ZzEsk3R4qSSpNzxjkEZBMAwGCCqGSM49BAMCBQADSAAwRQIgNMzoF73DkSZb +1FX2qNvGOdf7y8ZYKQNsWrh2NlwqQj8CIQDdO6i+ke5e5K+kEpXl9OXu28Wuul+Z +y4Jg4mFTKCLSUA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/security_key_by_yubico.pem b/restricted/WebAuthn/rootCertificates/mds/security_key_by_yubico.pem new file mode 100644 index 0000000..5e2af91 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/security_key_by_yubico.pem @@ -0,0 +1,22 @@ +Security Key by Yubico +---------------------- + +-----BEGIN CERTIFICATE----- +MIIDHjCCAgagAwIBAgIEG0BT9zANBgkqhkiG9w0BAQsFADAuMSwwKgYDVQQDEyNZ +dWJpY28gVTJGIFJvb3QgQ0EgU2VyaWFsIDQ1NzIwMDYzMTAgFw0xNDA4MDEwMDAw +MDBaGA8yMDUwMDkwNDAwMDAwMFowLjEsMCoGA1UEAxMjWXViaWNvIFUyRiBSb290 +IENBIFNlcmlhbCA0NTcyMDA2MzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC/jwYuhBVlqaiYWEMsrWFisgJ+PtM91eSrpI4TK7U53mwCIawSDHy8vUmk +5N2KAj9abvT9NP5SMS1hQi3usxoYGonXQgfO6ZXyUA9a+KAkqdFnBnlyugSeCOep +8EdZFfsaRFtMjkwz5Gcz2Py4vIYvCdMHPtwaz0bVuzneueIEz6TnQjE63Rdt2zbw +nebwTG5ZybeWSwbzy+BJ34ZHcUhPAY89yJQXuE0IzMZFcEBbPNRbWECRKgjq//qT +9nmDOFVlSRCt2wiqPSzluwn+v+suQEBsUjTGMEd25tKXXTkNW21wIWbxeSyUoTXw +LvGS6xlwQSgNpk2qXYwf8iXg7VWZAgMBAAGjQjBAMB0GA1UdDgQWBBQgIvz0bNGJ +hjgpToksyKpP9xv9oDAPBgNVHRMECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAN +BgkqhkiG9w0BAQsFAAOCAQEAjvjuOMDSa+JXFCLyBKsycXtBVZsJ4Ue3LbaEsPY4 +MYN/hIQ5ZM5p7EjfcnMG4CtYkNsfNHc0AhBLdq45rnT87q/6O3vUEtNMafbhU6kt +hX7Y+9XFN9NpmYxr+ekVY5xOxi8h9JDIgoMP4VB1uS0aunL1IGqrNooL9mmFnL2k +LVVee6/VR6C5+KSTCMCWppMuJIZII2v9o4dkoZ8Y7QRjQlLfYzd3qGtKbw7xaF1U +sG/5xUb/Btwb2X2g4InpiB/yt/3CpQXpiWX/K4mBvUKiGn05ZsqeY1gx4g0xLBqc +U9psmyPzK+Vsgw2jeRQ5JlKDyqE0hebfC1tvFu0CCrJFcw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/security_key_by_yubico_with_nfc.pem b/restricted/WebAuthn/rootCertificates/mds/security_key_by_yubico_with_nfc.pem new file mode 100644 index 0000000..63eeee8 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/security_key_by_yubico_with_nfc.pem @@ -0,0 +1,22 @@ +Security Key by Yubico with NFC +------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDHjCCAgagAwIBAgIEG0BT9zANBgkqhkiG9w0BAQsFADAuMSwwKgYDVQQDEyNZ +dWJpY28gVTJGIFJvb3QgQ0EgU2VyaWFsIDQ1NzIwMDYzMTAgFw0xNDA4MDEwMDAw +MDBaGA8yMDUwMDkwNDAwMDAwMFowLjEsMCoGA1UEAxMjWXViaWNvIFUyRiBSb290 +IENBIFNlcmlhbCA0NTcyMDA2MzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC/jwYuhBVlqaiYWEMsrWFisgJ+PtM91eSrpI4TK7U53mwCIawSDHy8vUmk +5N2KAj9abvT9NP5SMS1hQi3usxoYGonXQgfO6ZXyUA9a+KAkqdFnBnlyugSeCOep +8EdZFfsaRFtMjkwz5Gcz2Py4vIYvCdMHPtwaz0bVuzneueIEz6TnQjE63Rdt2zbw +nebwTG5ZybeWSwbzy+BJ34ZHcUhPAY89yJQXuE0IzMZFcEBbPNRbWECRKgjq//qT +9nmDOFVlSRCt2wiqPSzluwn+v+suQEBsUjTGMEd25tKXXTkNW21wIWbxeSyUoTXw +LvGS6xlwQSgNpk2qXYwf8iXg7VWZAgMBAAGjQjBAMB0GA1UdDgQWBBQgIvz0bNGJ +hjgpToksyKpP9xv9oDAPBgNVHRMECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAN +BgkqhkiG9w0BAQsFAAOCAQEAjvjuOMDSa+JXFCLyBKsycXtBVZsJ4Ue3LbaEsPY4 +MYN/hIQ5ZM5p7EjfcnMG4CtYkNsfNHc0AhBLdq45rnT87q/6O3vUEtNMafbhU6kt +hX7Y+9XFN9NpmYxr+ekVY5xOxi8h9JDIgoMP4VB1uS0aunL1IGqrNooL9mmFnL2k +LVVee6/VR6C5+KSTCMCWppMuJIZII2v9o4dkoZ8Y7QRjQlLfYzd3qGtKbw7xaF1U +sG/5xUb/Btwb2X2g4InpiB/yt/3CpQXpiWX/K4mBvUKiGn05ZsqeY1gx4g0xLBqc +U9psmyPzK+Vsgw2jeRQ5JlKDyqE0hebfC1tvFu0CCrJFcw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico.pem b/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico.pem new file mode 100644 index 0000000..fd723ce --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico.pem @@ -0,0 +1,107 @@ +Security Key NFC by Yubico +-------------------------- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico_enterprise_edition.pem b/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico_enterprise_edition.pem new file mode 100644 index 0000000..98e03e8 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico_enterprise_edition.pem @@ -0,0 +1,22 @@ +Security Key NFC by Yubico - Enterprise Edition +----------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDHjCCAgagAwIBAgIEG0BT9zANBgkqhkiG9w0BAQsFADAuMSwwKgYDVQQDEyNZ +dWJpY28gVTJGIFJvb3QgQ0EgU2VyaWFsIDQ1NzIwMDYzMTAgFw0xNDA4MDEwMDAw +MDBaGA8yMDUwMDkwNDAwMDAwMFowLjEsMCoGA1UEAxMjWXViaWNvIFUyRiBSb290 +IENBIFNlcmlhbCA0NTcyMDA2MzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC/jwYuhBVlqaiYWEMsrWFisgJ+PtM91eSrpI4TK7U53mwCIawSDHy8vUmk +5N2KAj9abvT9NP5SMS1hQi3usxoYGonXQgfO6ZXyUA9a+KAkqdFnBnlyugSeCOep +8EdZFfsaRFtMjkwz5Gcz2Py4vIYvCdMHPtwaz0bVuzneueIEz6TnQjE63Rdt2zbw +nebwTG5ZybeWSwbzy+BJ34ZHcUhPAY89yJQXuE0IzMZFcEBbPNRbWECRKgjq//qT +9nmDOFVlSRCt2wiqPSzluwn+v+suQEBsUjTGMEd25tKXXTkNW21wIWbxeSyUoTXw +LvGS6xlwQSgNpk2qXYwf8iXg7VWZAgMBAAGjQjBAMB0GA1UdDgQWBBQgIvz0bNGJ +hjgpToksyKpP9xv9oDAPBgNVHRMECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAN +BgkqhkiG9w0BAQsFAAOCAQEAjvjuOMDSa+JXFCLyBKsycXtBVZsJ4Ue3LbaEsPY4 +MYN/hIQ5ZM5p7EjfcnMG4CtYkNsfNHc0AhBLdq45rnT87q/6O3vUEtNMafbhU6kt +hX7Y+9XFN9NpmYxr+ekVY5xOxi8h9JDIgoMP4VB1uS0aunL1IGqrNooL9mmFnL2k +LVVee6/VR6C5+KSTCMCWppMuJIZII2v9o4dkoZ8Y7QRjQlLfYzd3qGtKbw7xaF1U +sG/5xUb/Btwb2X2g4InpiB/yt/3CpQXpiWX/K4mBvUKiGn05ZsqeY1gx4g0xLBqc +U9psmyPzK+Vsgw2jeRQ5JlKDyqE0hebfC1tvFu0CCrJFcw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico_enterprise_edition_enterprise_profile.pem b/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico_enterprise_edition_enterprise_profile.pem new file mode 100644 index 0000000..ec6ac5c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico_enterprise_edition_enterprise_profile.pem @@ -0,0 +1,107 @@ +Security Key NFC by Yubico - Enterprise Edition (Enterprise Profile) +-------------------------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico_enterprise_edition_preview.pem b/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico_enterprise_edition_preview.pem new file mode 100644 index 0000000..bf7d393 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico_enterprise_edition_preview.pem @@ -0,0 +1,22 @@ +Security Key NFC by Yubico - Enterprise Edition Preview +------------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDKjCCAhKgAwIBAgIUef+VvHkcTQnED++wJM/IxzSULk0wDQYJKoZIhvcNAQEL +BQAwJjEkMCIGA1UEAwwbWXViaWNvIDIwMjMgRklETyBQcmV2aWV3IENBMB4XDTIz +MDkyNTExMzI0MVoXDTI0MTIzMTExMzI0MVowJjEkMCIGA1UEAwwbWXViaWNvIDIw +MjMgRklETyBQcmV2aWV3IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAouFMTOKaE0YtexOoisSxp+Ebi5IA4esEScx16lzQdqV6/eZ82KtJeNXEuNkB +VZDpc32gStuxLBH8mgsoHBFai2DkjfBn5qbwR/c5+snlwZvjgVA0hzKw9CwAeAwR +D5krWt88/CVyCkMcgLSGwZs/rj7F/Ls3Ebg7MqLbbQJ9CozbbLdJUYIHcPpSZPto +MrZb4Gvni6iVS9UvCKgpqc6LGRmoYGG4ZR3lGJ/XQZfu+GeJW67iimMj/yoXOwxu +cxivZHFk6cQSgwuwioeNm4wvk83LhSuWctf2kAyQcZ7kUnpNee+d4MgrmGU4XMFL +iTgutaB+e9V8d5JTkUOHiLztkQIDAQABo1AwTjAdBgNVHQ4EFgQUM5SB5bHrV+jp +IOMdJl7u7bcnTY8wHwYDVR0jBBgwFoAUM5SB5bHrV+jpIOMdJl7u7bcnTY8wDAYD +VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEACowR3KTLfidJyQFNqEFfUrfZ +9aa9egpOQtNRJdLStJ6xu2WfLwvG4ojGJlBKNnfa5DIcyQYf/8qJ4eliAVeNXuYm +eMmgNgZZyuY6G1yWCD2V3sD6Z4uj3SbaDOHj3gHvszgQhrhT1h/puHQkn6+hYKAp +77kM7Ic6AZ/RFbjpmLLk2D0sE1lzT/02i+Bh7M8smaiDZ9++JGzxeSun8W1HleZU +m2qKGmRa4XPdryT7x6KGUGnU4a3bpUmVeY9rQ/sfMd5ZToo+3unFWDzoVV2vNu8+ ++VLC9zo40FaKQLr9VAJDJ4yLENR7KrmV8L0cCXKJGZWAWtG5RGTmHIhd+nB41g== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico_preview.pem b/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico_preview.pem new file mode 100644 index 0000000..1bbecd0 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/security_key_nfc_by_yubico_preview.pem @@ -0,0 +1,22 @@ +Security Key NFC by Yubico Preview +---------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDKjCCAhKgAwIBAgIUef+VvHkcTQnED++wJM/IxzSULk0wDQYJKoZIhvcNAQEL +BQAwJjEkMCIGA1UEAwwbWXViaWNvIDIwMjMgRklETyBQcmV2aWV3IENBMB4XDTIz +MDkyNTExMzI0MVoXDTI0MTIzMTExMzI0MVowJjEkMCIGA1UEAwwbWXViaWNvIDIw +MjMgRklETyBQcmV2aWV3IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAouFMTOKaE0YtexOoisSxp+Ebi5IA4esEScx16lzQdqV6/eZ82KtJeNXEuNkB +VZDpc32gStuxLBH8mgsoHBFai2DkjfBn5qbwR/c5+snlwZvjgVA0hzKw9CwAeAwR +D5krWt88/CVyCkMcgLSGwZs/rj7F/Ls3Ebg7MqLbbQJ9CozbbLdJUYIHcPpSZPto +MrZb4Gvni6iVS9UvCKgpqc6LGRmoYGG4ZR3lGJ/XQZfu+GeJW67iimMj/yoXOwxu +cxivZHFk6cQSgwuwioeNm4wvk83LhSuWctf2kAyQcZ7kUnpNee+d4MgrmGU4XMFL +iTgutaB+e9V8d5JTkUOHiLztkQIDAQABo1AwTjAdBgNVHQ4EFgQUM5SB5bHrV+jp +IOMdJl7u7bcnTY8wHwYDVR0jBBgwFoAUM5SB5bHrV+jpIOMdJl7u7bcnTY8wDAYD +VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEACowR3KTLfidJyQFNqEFfUrfZ +9aa9egpOQtNRJdLStJ6xu2WfLwvG4ojGJlBKNnfa5DIcyQYf/8qJ4eliAVeNXuYm +eMmgNgZZyuY6G1yWCD2V3sD6Z4uj3SbaDOHj3gHvszgQhrhT1h/puHQkn6+hYKAp +77kM7Ic6AZ/RFbjpmLLk2D0sE1lzT/02i+Bh7M8smaiDZ9++JGzxeSun8W1HleZU +m2qKGmRa4XPdryT7x6KGUGnU4a3bpUmVeY9rQ/sfMd5ZToo+3unFWDzoVV2vNu8+ ++VLC9zo40FaKQLr9VAJDJ4yLENR7KrmV8L0cCXKJGZWAWtG5RGTmHIhd+nB41g== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/sentry_enterprises_ctap2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/sentry_enterprises_ctap2_authenticator.pem new file mode 100644 index 0000000..ad32034 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/sentry_enterprises_ctap2_authenticator.pem @@ -0,0 +1,37 @@ +Sentry Enterprises CTAP2 Authenticator +-------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIF9DCCA9wCCQDSbPePv7zGqjANBgkqhkiG9w0BAQsFADCBuzEUMBIGA1UEAwwL +U0VOVFJZIFJPT1QxLTArBgkqhkiG9w0BCQEWHm1iZW5uZXR0QHNlbnRyeWVudGVy +cHJpc2VzLmNvbTEfMB0GA1UECgwWU2VudHJ5IEVudGVycHJpc2VzIE9SRzEiMCAG +A1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjELMAkGA1UEBhMCVVMxCzAJ +BgNVBAgMAlBBMRUwEwYDVQQHDAxXZXN0IENoZXN0ZXIwHhcNMjIwMzE2MTc1MDMx +WhcNNDkwODAxMTc1MDMxWjCBuzEUMBIGA1UEAwwLU0VOVFJZIFJPT1QxLTArBgkq +hkiG9w0BCQEWHm1iZW5uZXR0QHNlbnRyeWVudGVycHJpc2VzLmNvbTEfMB0GA1UE +CgwWU2VudHJ5IEVudGVycHJpc2VzIE9SRzEiMCAGA1UECwwZQXV0aGVudGljYXRv +ciBBdHRlc3RhdGlvbjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlBBMRUwEwYDVQQH +DAxXZXN0IENoZXN0ZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCl +Y5pttA2RB68mFI49R/rlSEXO5UMuGNcjuhb1tVYoO8VLfnjoXS3EM+JhX7y0WlzU +T82/BdQNikma5h6rjT56gn7vZ7wYv4dXKvYuwkdVn+anNBcaERYxyBEFWWgqLZ7q +VnXIaYKvzpKr5pIRSFaQaK3zuzm0qC5jTLEitsc5NiMhme7jOUHrDfL3TrOdtJzW +R0dqjFQkt28Nps83qyuvzbAoNBarY3aHzH3ehf8dg7kfFsHvmavIpSm5nj2WJEi3 +K+76rhjhHLAnTnntO+p861lXUB9ZD2xGqsQmslpKMRHVLwvBVhIrJS9tJYLS9fda +t5iAIhkCFVTNqtAJEAc+QtZqylJYvcv+VrD3lYMII4jn03gPPzdk8t1jPLdw0H4k +7kApLe3X3MI1IOxdms2MmNrvNbE8qxfgQy3MvHmTmVUwfg7i7fzOI8rGHsxldn5Z +EFdrgG+oxi94qLLZcVp8nvw3YBInpUvPJQ8QVUeVVpwQkjhY/e81Xcid2wghApgm +5hBJ8TfYn8dgD01vbN3jXMTNnL+urO6QG3bTGgGG74Bg76TgJnOTdYFYYQbi9yqa +IF2P5GgGU+0RZ01QU25jnTEFNQqnUF0tZE2JHANn+trknE7L1GyE9quplMkam4ht +mSuT1sjQ8hAkbug08dBb+fQf8FP8iokDb+Oa+h3boQIDAQABMA0GCSqGSIb3DQEB +CwUAA4ICAQCNxzIe1T4WXhn0FlsbZgSe/uEd5HtRP4WaVsuE0e30WrUVNzUahTyj +9TUTJUCS7f4mpNDwnNmdtoMeYJn+G1/l0KBiJWC20sch0pyqeVhado2O8W4WOc/i +WGrdFnf1jpuwySlm1H6i4d+/fJ2W0lK3CaP0YF3xSGUrSRJg9aZHohpN79SYFsmj +34x8W+CkFmTYQo6a6RNS+qjTCaDXPHcw4EG0YfjhdURMi6R7krvxdumbPRuBRsoN +86dXKpYuuKDcS/SZQxca9wE3EgxRlCwFdPrc2egtr5CbnTZmHgBp49xa0lilc2EH +QYymGLk2SXmvsKTLxru/lgVz8MvyxjMdvaUKVFakIjDN/lVAWZTZ3mE4DM+2oLBG +UB7fqWIE9EV5RCK7o8H19+QhU8vsP142Z+KA+pEFHEuWZ2oU7xj5QSK1PyoSX3Nx +w1JB/lO+CPIZrddCLCpgWfX4ZT463xtnZ1CiGyMCUOi3KOiGNs2SSBjSYIOdpivo +OFGA3aUMomHGZappgotRKeemKHfdLrTBFWHvQqByeMW1kNnEqD53FrS1+a/pnecJ +hLeoWnOso4ooStkLhAleuQV+j2XBmxJnpZ21w347hUMdyP9f8XcFe6f9y2VkHzRC +eiY7HteuQ93YxW88c4EirXjhF+Wed2dn410m5XdfBMPfa668Rau+qg== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/shalo_auth.pem b/restricted/WebAuthn/rootCertificates/mds/shalo_auth.pem new file mode 100644 index 0000000..fc3e08c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/shalo_auth.pem @@ -0,0 +1,14 @@ +SHALO AUTH +---------- + +-----BEGIN CERTIFICATE----- +MIIBmDCCAT6gAwIBAgIUBIgfXpd5wkMqxhKWthXj5rp4wz8wCgYIKoZIzj0EAwIw +KTEnMCUGA1UEAwweQVhFTEwgVTJGIENBIFNlcmlhbCAxNDIyNDU0MTc1MB4XDTIw +MDIwMzA0NTgwNloXDTQ3MDYyMTA0NTgwNlowKTEnMCUGA1UEAwweQVhFTEwgVTJG +IENBIFNlcmlhbCAxNDIyNDU0MTc1MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +escMJJ8DOEm36duSzeym+EHMe73FOoMJShv1jmPr4P3KomdUAy+13r/enywL6D0a +41H6foRSVu0BI8WnsxxDcaNEMEIwDAYDVR0TBAUwAwEB/zATBgNVHSUEDDAKBggr +BgEFBQcDAzAdBgNVHQ4EFgQU2Re4Iu2I/+KXuwH6EMJk3qrM/WAwCgYIKoZIzj0E +AwIDSAAwRQIhAPRCqrDsIAMoF9bSRNJ9jieSzEDSUMQk//4kTGLb3GeFAiBdg55M +Qu4rS7TPqDUYhlKRPx8uxzxABc0QF4eC8+ErDQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/si0x_fido_cl_wrist_v1_0.pem b/restricted/WebAuthn/rootCertificates/mds/si0x_fido_cl_wrist_v1_0.pem new file mode 100644 index 0000000..35b0724 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/si0x_fido_cl_wrist_v1_0.pem @@ -0,0 +1,15 @@ +SI0X FIDO CL WRIST v1.0 +----------------------- + +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgIBATAKBggqhkjOPQQDAjBKMQswCQYDVQQGEwJERTEhMB8G +A1UECgwYRytEIE1vYmlsZSBTZWN1cml0eSBHbWJIMRgwFgYDVQQDDA9GSURPIFJv +b3QgQ0EgMDEwHhcNMjAxMTEyMDAwMDAwWhcNNDAxMTEyMDAwMDAwWjBKMQswCQYD +VQQGEwJERTEhMB8GA1UECgwYRytEIE1vYmlsZSBTZWN1cml0eSBHbWJIMRgwFgYD +VQQDDA9GSURPIFJvb3QgQ0EgMDEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQw +6cy+znMyQ6ptd4Jjqvma4e8Re+Zppb90GqKvsRBnF8WmM5yZWIOKjQgj/8+3j9av +W+SyAa/1MaywQD6B0g9aozIwMDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSs +epWuuxmD0o8j1Y278bLTGCZNvjAKBggqhkjOPQQDAgNJADBGAiEAu33Sp0E7BEdH +ozEGAClNsa0yPB6sEDoQ7W4kiy0DZ14CIQCJLDTJDAnWxo31zzvrWuINtBqy044+ +GgFP6+wlqG66Nw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/smartdisplayer_bobeepass_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/smartdisplayer_bobeepass_fido2_authenticator.pem new file mode 100644 index 0000000..5cffff8 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/smartdisplayer_bobeepass_fido2_authenticator.pem @@ -0,0 +1,15 @@ +SmartDisplayer BobeePass FIDO2 Authenticator +-------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIBvjCCAWOgAwIBAgIUPWJXf2V7FAtc875dE4jPabi5YBQwCgYIKoZIzj0EAwIw +RTELMAkGA1UEBhMCVFcxIjAgBgNVBAoMGVNtYXJ0RGlzcGxheWVyIFRlY2hub2xv +Z3kxEjAQBgNVBAMMCUJvYmVlUGFzczAgFw0yMjAyMTQwODM3MzZaGA8yMDUyMDIw +NzA4MzczNlowRTELMAkGA1UEBhMCVFcxIjAgBgNVBAoMGVNtYXJ0RGlzcGxheWVy +IFRlY2hub2xvZ3kxEjAQBgNVBAMMCUJvYmVlUGFzczBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABKHVqbBBDU0VXJUWVHy7S6ovywZTx8labBzmB54gFg68IryP5phC +MUPIIvHmYF5V+laoDUw247qI63cfeGjWux6jLzAtMAwGA1UdEwQFMAMBAf8wHQYD +VR0OBBYEFMKDRmYjmVbusPXHmFnYglFQ5vWpMAoGCCqGSM49BAMCA0kAMEYCIQCs +QDJvB5Fca4ryPOVZ+MBAIZzow+OV7T/wBJ9906HZZAIhAMVbSwd2jNoHl3SRyhrc +fQJqDo50vtKF+Jhg05vHmOp2 +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/solid_webkey.pem b/restricted/WebAuthn/rootCertificates/mds/solid_webkey.pem new file mode 100644 index 0000000..5547b9e --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/solid_webkey.pem @@ -0,0 +1,45 @@ +SOLID webKey +------------ + +-----BEGIN CERTIFICATE----- +MIIHbDCCBVSgAwIBAgIIYON6b/aoGY8wDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNV +BAYTAlpBMTIwMAYDVQQKDClMQVcgVHJ1c3RlZCBUaGlyZCBQYXJ0eSBTZXJ2aWNl +cyBQVFkgTHRkLjEpMCcGA1UECwwgTEFXdHJ1c3QgVHJ1c3QgU2VydmljZXMgUHJv +dmlkZXIxITAfBgNVBAMMGExBV3RydXN0IFByaXZhdGUgUm9vdCBDQTAeFw0xODEw +MTkxMjE5MDVaFw0yODEwMTYxMjE5MDVaMIGRMQswCQYDVQQGEwJaQTEyMDAGA1UE +CgwpTEFXIFRydXN0ZWQgVGhpcmQgUGFydHkgU2VydmljZXMgUFRZIEx0ZC4xKTAn +BgNVBAsMIExBV3RydXN0IFRydXN0IFNlcnZpY2VzIFByb3ZpZGVyMSMwIQYDVQQD +DBpMQVd0cnVzdCBQcml2YXRlIEF1dGggQ0EwMTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAMXId27IVDtPruWUpnOZyrx9VPCxXQqO7sePmPkKyCDm+fhP +ZIpWpi245+9VRshu1KntY3WXNi0/wa1xVYlhkz3TWuwF0aJKhycTXFPg1pF0dGx2 +wchawHH4tP38Sl+2/8d3nzsHgCZHO31DYFHmQ2oUXgS6KSULABW0TJ7SghpgJYhs +ScxI1bJWH02qoVPJ5yJoDA77Porc4pxOLltRaA+w76+YkEzEoe7+0lGh9FZpTMAB +TziW1ZP/TyIDw8D8yPN+nc0QGjBk4QEqKUbStaI/0a7U+tLJQIHzoneHL1gJ2Xj9 +hk33uf64AfybYrltSrOGCqbltimGPCcpYr1pbVkXLl9JoTSmnU3mSyPeiMuVp1TF +k7Ro/PDscagEb+ue7sauE5hfIX2FCoXPrWISRBgCUKPNA6hRxXDtGBjJ1XokBsEe +bdDHwok7l+crI2ncyEMI1MA445PWDRkt4pT4Q5Aerfsc5/w8HFvcNrV0XT2CncMu +9pFKUEYEtc2VR7po3TZGM6a1JbCOkMG/6340/6s2SBBksMQoUVI96RSi1adma/Ah +enBFZWYSZHijduEaPJ1l5xPYLmFNrvarPLG7ywJ1X7EFSRKWAsnbTIVV3vEhaj3i +H/amL7DUXmOlK3YBEsPC3x1LD0Y+NPs963UYD9BLMHJjGMQ30DpdgMBg8mdbAgMB +AAGjggHGMIIBwjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFIDoUHnm3daj +92RhVv1HrOKvCdFuMDYGCCsGAQUFBwEBBCowKDAmBggrBgEFBQcwAYYaaHR0cDov +L29jc3AubGF3dHJ1c3QuY28uemEwSAYDVR0gBEEwPzA9BgpghkgBhvpsCgIBMC8w +LQYIKwYBBQUHAgEWIWh0dHBzOi8vbGF3dHJ1c3QuY28uemEvcmVwb3NpdG9yeTCB +3AYDVR0fBIHUMIHRMIHOoDSgMoYwaHR0cDovL2NybC5sYXd0cnVzdC5jby56YS9M +VF9Qcml2YXRlX1Jvb3RfQ0EuY3JsooGVpIGSMIGPMSEwHwYDVQQDDBhMQVd0cnVz +dCBQcml2YXRlIFJvb3QgQ0ExMjAwBgNVBAoMKUxBVyBUcnVzdGVkIFRoaXJkIFBh +cnR5IFNlcnZpY2VzIFBUWSBMdGQuMSkwJwYDVQQLDCBMQVd0cnVzdCBUcnVzdCBT +ZXJ2aWNlcyBQcm92aWRlcjELMAkGA1UEBhMCWkEwHQYDVR0OBBYEFMQl6gOgc4V3 +4YsppVsTsofTHwzWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEA +uCgBwGLNn+DqabWTY/dPx8fqTJ8De9tg4yvyMoTTw8OYE0OiGqBoDKE4wOacYJwb ++sp8oabb4VU55FXjp3mMFu6snsmKw8OJzZzWMlpB8/ykAa9xBKBpd9AJQQfKuCDr +nRgCJGz5jcMh13zoj4cs9xjyAeTF81QXms5rCyGBnbKb99DWcftG+4nULdVA43ZH +1YMhZ8LGxtUf1e6Xea1tC/GoN0lSNeURGuMKlt0+91AhDmxoawHiVboZ/EuG1OKD +3s4Jz8MNSYAPcFssg28XJB99vLZsVzszBl8F2fMKgVOiL7/CQxF/Qnuo1pqY3jl5 +yOyPg7g6ppIF+EqGpPsDMXBc8Np8DBbRJ/HdbRGC6OXyVqpyYyI3Mb0PWMww5Hc5 +j36JYhsaImkvb+n5/SgI/yax8oOLEV/og+pWf9xeNjKx7O4/4IaUB48ThSg92OeQ +HBnrLDVTxChySEL9BmaUmGP7BL7nYmTk1+oRGgTdMM1ologhSjc9Kzp2WAZAoTsD +IgUUdwxOlIqkc0mIARtIxCGS3qgZxNSrbzpKZ2psu3fBxSDlOoF3xhx3Rpa5yjfr +UEo4CgsCsUCtx85kwQ8sbvgtLLNUemmCrlMoPWH9a/SxBAzN4iZFKS2kD7sFqxlX +k172+SHFAwR1uIRtbA340EgKW/0OF9WKoL0kQzDKMoU= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/solo_secp256r1_fido2_ctap2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/solo_secp256r1_fido2_ctap2_authenticator.pem new file mode 100644 index 0000000..5cdadcf --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/solo_secp256r1_fido2_ctap2_authenticator.pem @@ -0,0 +1,16 @@ +Solo Secp256R1 FIDO2 CTAP2 Authenticator +---------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB9DCCAZoCCQDER2OSj/S+jDAKBggqhkjOPQQDAjCBgDELMAkGA1UEBhMCVVMx +ETAPBgNVBAgMCE1hcnlsYW5kMRIwEAYDVQQKDAlTb2xvIEtleXMxEDAOBgNVBAsM +B1Jvb3QgQ0ExFTATBgNVBAMMDHNvbG9rZXlzLmNvbTEhMB8GCSqGSIb3DQEJARYS +aGVsbG9Ac29sb2tleXMuY29tMCAXDTE4MTExMTEyNTE0MloYDzIwNjgxMDI5MTI1 +MTQyWjCBgDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1hcnlsYW5kMRIwEAYDVQQK +DAlTb2xvIEtleXMxEDAOBgNVBAsMB1Jvb3QgQ0ExFTATBgNVBAMMDHNvbG9rZXlz +LmNvbTEhMB8GCSqGSIb3DQEJARYSaGVsbG9Ac29sb2tleXMuY29tMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEWHAN0CCJVZdMs0oktZ5m93uxmB1iyq8ELRLtqVFL +SOiHQEab56qRTB/QzrpGAY++Y2mw+vRuQMNhBiU0KzwjBjAKBggqhkjOPQQDAgNI +ADBFAiEAz9SlrAXIlEu87vra54rICPs+4b0qhp3PdzcTg7rvnP0CIGjxzlteQQx+ +jQGd7rwSZuE5RWUPVygYhUstQO9zNUOs +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/solo_tap_secp256r1_fido2_ctap2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/solo_tap_secp256r1_fido2_ctap2_authenticator.pem new file mode 100644 index 0000000..937c63b --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/solo_tap_secp256r1_fido2_ctap2_authenticator.pem @@ -0,0 +1,16 @@ +Solo Tap Secp256R1 FIDO2 CTAP2 Authenticator +-------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB9DCCAZoCCQDER2OSj/S+jDAKBggqhkjOPQQDAjCBgDELMAkGA1UEBhMCVVMx +ETAPBgNVBAgMCE1hcnlsYW5kMRIwEAYDVQQKDAlTb2xvIEtleXMxEDAOBgNVBAsM +B1Jvb3QgQ0ExFTATBgNVBAMMDHNvbG9rZXlzLmNvbTEhMB8GCSqGSIb3DQEJARYS +aGVsbG9Ac29sb2tleXMuY29tMCAXDTE4MTExMTEyNTE0MloYDzIwNjgxMDI5MTI1 +MTQyWjCBgDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1hcnlsYW5kMRIwEAYDVQQK +DAlTb2xvIEtleXMxEDAOBgNVBAsMB1Jvb3QgQ0ExFTATBgNVBAMMDHNvbG9rZXlz +LmNvbTEhMB8GCSqGSIb3DQEJARYSaGVsbG9Ac29sb2tleXMuY29tMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEWHAN0CCJVZdMs0oktZ5m93uxmB1iyq8ELRLtqVFL +SOiHQEab56qRTB/QzrpGAY++Y2mw+vRuQMNhBiU0KzwjBjAKBggqhkjOPQQDAgNI +ADBFAiEAz9SlrAXIlEu87vra54rICPs+4b0qhp3PdzcTg7rvnP0CIGjxzlteQQx+ +jQGd7rwSZuE5RWUPVygYhUstQO9zNUOs +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/somu_secp256r1_fido2_ctap2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/somu_secp256r1_fido2_ctap2_authenticator.pem new file mode 100644 index 0000000..ae70b07 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/somu_secp256r1_fido2_ctap2_authenticator.pem @@ -0,0 +1,16 @@ +Somu Secp256R1 FIDO2 CTAP2 Authenticator +---------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIB9DCCAZoCCQDER2OSj/S+jDAKBggqhkjOPQQDAjCBgDELMAkGA1UEBhMCVVMx +ETAPBgNVBAgMCE1hcnlsYW5kMRIwEAYDVQQKDAlTb2xvIEtleXMxEDAOBgNVBAsM +B1Jvb3QgQ0ExFTATBgNVBAMMDHNvbG9rZXlzLmNvbTEhMB8GCSqGSIb3DQEJARYS +aGVsbG9Ac29sb2tleXMuY29tMCAXDTE4MTExMTEyNTE0MloYDzIwNjgxMDI5MTI1 +MTQyWjCBgDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1hcnlsYW5kMRIwEAYDVQQK +DAlTb2xvIEtleXMxEDAOBgNVBAsMB1Jvb3QgQ0ExFTATBgNVBAMMDHNvbG9rZXlz +LmNvbTEhMB8GCSqGSIb3DQEJARYSaGVsbG9Ac29sb2tleXMuY29tMFkwEwYHKoZI +zj0CAQYIKoZIzj0DAQcDQgAEWHAN0CCJVZdMs0oktZ5m93uxmB1iyq8ELRLtqVFL +SOiHQEab56qRTB/QzrpGAY++Y2mw+vRuQMNhBiU0KzwjBjAKBggqhkjOPQQDAgNI +ADBFAiEAz9SlrAXIlEu87vra54rICPs+4b0qhp3PdzcTg7rvnP0CIGjxzlteQQx+ +jQGd7rwSZuE5RWUPVygYhUstQO9zNUOs +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/starsign_fido_card.pem b/restricted/WebAuthn/rootCertificates/mds/starsign_fido_card.pem new file mode 100644 index 0000000..53189aa --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/starsign_fido_card.pem @@ -0,0 +1,15 @@ +StarSign FIDO Card +------------------ + +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgIBATAKBggqhkjOPQQDAjBKMQswCQYDVQQGEwJERTEhMB8G +A1UECgwYRytEIE1vYmlsZSBTZWN1cml0eSBHbWJIMRgwFgYDVQQDDA9GSURPIFJv +b3QgQ0EgMDEwHhcNMjAxMTEyMDAwMDAwWhcNNDAxMTEyMDAwMDAwWjBKMQswCQYD +VQQGEwJERTEhMB8GA1UECgwYRytEIE1vYmlsZSBTZWN1cml0eSBHbWJIMRgwFgYD +VQQDDA9GSURPIFJvb3QgQ0EgMDEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQw +6cy+znMyQ6ptd4Jjqvma4e8Re+Zppb90GqKvsRBnF8WmM5yZWIOKjQgj/8+3j9av +W+SyAa/1MaywQD6B0g9aozIwMDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSs +epWuuxmD0o8j1Y278bLTGCZNvjAKBggqhkjOPQQDAgNJADBGAiEAu33Sp0E7BEdH +ozEGAClNsa0yPB6sEDoQ7W4kiy0DZ14CIQCJLDTJDAnWxo31zzvrWuINtBqy044+ +GgFP6+wlqG66Nw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/starsign_key_fob.pem b/restricted/WebAuthn/rootCertificates/mds/starsign_key_fob.pem new file mode 100644 index 0000000..9cd5160 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/starsign_key_fob.pem @@ -0,0 +1,15 @@ +StarSign Key Fob +---------------- + +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgIBATAKBggqhkjOPQQDAjBKMQswCQYDVQQGEwJERTEhMB8G +A1UECgwYRytEIE1vYmlsZSBTZWN1cml0eSBHbWJIMRgwFgYDVQQDDA9GSURPIFJv +b3QgQ0EgMDEwHhcNMjAxMTEyMDAwMDAwWhcNNDAxMTEyMDAwMDAwWjBKMQswCQYD +VQQGEwJERTEhMB8GA1UECgwYRytEIE1vYmlsZSBTZWN1cml0eSBHbWJIMRgwFgYD +VQQDDA9GSURPIFJvb3QgQ0EgMDEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQw +6cy+znMyQ6ptd4Jjqvma4e8Re+Zppb90GqKvsRBnF8WmM5yZWIOKjQgj/8+3j9av +W+SyAa/1MaywQD6B0g9aozIwMDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSs +epWuuxmD0o8j1Y278bLTGCZNvjAKBggqhkjOPQQDAgNJADBGAiEAu33Sp0E7BEdH +ozEGAClNsa0yPB6sEDoQ7W4kiy0DZ14CIQCJLDTJDAnWxo31zzvrWuINtBqy044+ +GgFP6+wlqG66Nw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_2.pem b/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_2.pem new file mode 100644 index 0000000..05ea2b6 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_2.pem @@ -0,0 +1,19 @@ +Swissbit iShield Key 2 +---------------------- + +-----BEGIN CERTIFICATE----- +MIICiTCCAg6gAwIBAgIUOkmU35IicXoVPjfvwpG7MN6tHPUwCgYIKoZIzj0EAwMw +QzELMAkGA1UEBhMCREUxFDASBgNVBAoMC1N3aXNzYml0IEFHMR4wHAYDVQQDDBVT +d2lzc2JpdCBGSURPIFJvb3QgQ0EwIBcNMjExMDA3MDkzMDQyWhgPMjA1MTEwMDcw +OTMwNDJaMEMxCzAJBgNVBAYTAkRFMRQwEgYDVQQKDAtTd2lzc2JpdCBBRzEeMBwG +A1UEAwwVU3dpc3NiaXQgRklETyBSb290IENBMHYwEAYHKoZIzj0CAQYFK4EEACID +YgAEtgOC7IKxipMJ7bVPTT83Oe90xzHPCebxyCtg/WrsTrRaSnYigmJCB8/jqBN4 +OQG2dZ5jcNsL6SwHosYDRJc+O1zk9i5GEZWf3Ir992A6duMsp51lq4fAga/UzTN9 +/Ebzo4HAMIG9MB0GA1UdDgQWBBTfxzg8GGzYAidKL63uhSiraXJIKDB+BgNVHSME +dzB1gBTfxzg8GGzYAidKL63uhSiraXJIKKFHpEUwQzELMAkGA1UEBhMCREUxFDAS +BgNVBAoMC1N3aXNzYml0IEFHMR4wHAYDVQQDDBVTd2lzc2JpdCBGSURPIFJvb3Qg +Q0GCFDpJlN+SInF6FT4378KRuzDerRz1MAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMDA2kAMGYCMQDsv4K6NfJvfvzd0OygwJ/ABiLtgtJW +hXTeUlltdqa4WsOM9tvx636v5FIvZRkK1XoCMQCdoPQ+a4fDBEiNuj0Ws33uUQhG +rpsePDGfVXn4kEpbTIBeOdVAx//TrMC/SVb+bsg= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_2_enterprise.pem b/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_2_enterprise.pem new file mode 100644 index 0000000..c7ac863 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_2_enterprise.pem @@ -0,0 +1,19 @@ +Swissbit iShield Key 2 Enterprise +--------------------------------- + +-----BEGIN CERTIFICATE----- +MIICiTCCAg6gAwIBAgIUOkmU35IicXoVPjfvwpG7MN6tHPUwCgYIKoZIzj0EAwMw +QzELMAkGA1UEBhMCREUxFDASBgNVBAoMC1N3aXNzYml0IEFHMR4wHAYDVQQDDBVT +d2lzc2JpdCBGSURPIFJvb3QgQ0EwIBcNMjExMDA3MDkzMDQyWhgPMjA1MTEwMDcw +OTMwNDJaMEMxCzAJBgNVBAYTAkRFMRQwEgYDVQQKDAtTd2lzc2JpdCBBRzEeMBwG +A1UEAwwVU3dpc3NiaXQgRklETyBSb290IENBMHYwEAYHKoZIzj0CAQYFK4EEACID +YgAEtgOC7IKxipMJ7bVPTT83Oe90xzHPCebxyCtg/WrsTrRaSnYigmJCB8/jqBN4 +OQG2dZ5jcNsL6SwHosYDRJc+O1zk9i5GEZWf3Ir992A6duMsp51lq4fAga/UzTN9 +/Ebzo4HAMIG9MB0GA1UdDgQWBBTfxzg8GGzYAidKL63uhSiraXJIKDB+BgNVHSME +dzB1gBTfxzg8GGzYAidKL63uhSiraXJIKKFHpEUwQzELMAkGA1UEBhMCREUxFDAS +BgNVBAoMC1N3aXNzYml0IEFHMR4wHAYDVQQDDBVTd2lzc2JpdCBGSURPIFJvb3Qg +Q0GCFDpJlN+SInF6FT4378KRuzDerRz1MAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMDA2kAMGYCMQDsv4K6NfJvfvzd0OygwJ/ABiLtgtJW +hXTeUlltdqa4WsOM9tvx636v5FIvZRkK1XoCMQCdoPQ+a4fDBEiNuj0Ws33uUQhG +rpsePDGfVXn4kEpbTIBeOdVAx//TrMC/SVb+bsg= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_2_fips.pem b/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_2_fips.pem new file mode 100644 index 0000000..8a3320b --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_2_fips.pem @@ -0,0 +1,19 @@ +Swissbit iShield Key 2 FIPS +--------------------------- + +-----BEGIN CERTIFICATE----- +MIICiTCCAg6gAwIBAgIUOkmU35IicXoVPjfvwpG7MN6tHPUwCgYIKoZIzj0EAwMw +QzELMAkGA1UEBhMCREUxFDASBgNVBAoMC1N3aXNzYml0IEFHMR4wHAYDVQQDDBVT +d2lzc2JpdCBGSURPIFJvb3QgQ0EwIBcNMjExMDA3MDkzMDQyWhgPMjA1MTEwMDcw +OTMwNDJaMEMxCzAJBgNVBAYTAkRFMRQwEgYDVQQKDAtTd2lzc2JpdCBBRzEeMBwG +A1UEAwwVU3dpc3NiaXQgRklETyBSb290IENBMHYwEAYHKoZIzj0CAQYFK4EEACID +YgAEtgOC7IKxipMJ7bVPTT83Oe90xzHPCebxyCtg/WrsTrRaSnYigmJCB8/jqBN4 +OQG2dZ5jcNsL6SwHosYDRJc+O1zk9i5GEZWf3Ir992A6duMsp51lq4fAga/UzTN9 +/Ebzo4HAMIG9MB0GA1UdDgQWBBTfxzg8GGzYAidKL63uhSiraXJIKDB+BgNVHSME +dzB1gBTfxzg8GGzYAidKL63uhSiraXJIKKFHpEUwQzELMAkGA1UEBhMCREUxFDAS +BgNVBAoMC1N3aXNzYml0IEFHMR4wHAYDVQQDDBVTd2lzc2JpdCBGSURPIFJvb3Qg +Q0GCFDpJlN+SInF6FT4378KRuzDerRz1MAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMDA2kAMGYCMQDsv4K6NfJvfvzd0OygwJ/ABiLtgtJW +hXTeUlltdqa4WsOM9tvx636v5FIvZRkK1XoCMQCdoPQ+a4fDBEiNuj0Ws33uUQhG +rpsePDGfVXn4kEpbTIBeOdVAx//TrMC/SVb+bsg= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_2_fips_enterprise.pem b/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_2_fips_enterprise.pem new file mode 100644 index 0000000..28514e4 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_2_fips_enterprise.pem @@ -0,0 +1,19 @@ +Swissbit iShield Key 2 FIPS Enterprise +-------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICiTCCAg6gAwIBAgIUOkmU35IicXoVPjfvwpG7MN6tHPUwCgYIKoZIzj0EAwMw +QzELMAkGA1UEBhMCREUxFDASBgNVBAoMC1N3aXNzYml0IEFHMR4wHAYDVQQDDBVT +d2lzc2JpdCBGSURPIFJvb3QgQ0EwIBcNMjExMDA3MDkzMDQyWhgPMjA1MTEwMDcw +OTMwNDJaMEMxCzAJBgNVBAYTAkRFMRQwEgYDVQQKDAtTd2lzc2JpdCBBRzEeMBwG +A1UEAwwVU3dpc3NiaXQgRklETyBSb290IENBMHYwEAYHKoZIzj0CAQYFK4EEACID +YgAEtgOC7IKxipMJ7bVPTT83Oe90xzHPCebxyCtg/WrsTrRaSnYigmJCB8/jqBN4 +OQG2dZ5jcNsL6SwHosYDRJc+O1zk9i5GEZWf3Ir992A6duMsp51lq4fAga/UzTN9 +/Ebzo4HAMIG9MB0GA1UdDgQWBBTfxzg8GGzYAidKL63uhSiraXJIKDB+BgNVHSME +dzB1gBTfxzg8GGzYAidKL63uhSiraXJIKKFHpEUwQzELMAkGA1UEBhMCREUxFDAS +BgNVBAoMC1N3aXNzYml0IEFHMR4wHAYDVQQDDBVTd2lzc2JpdCBGSURPIFJvb3Qg +Q0GCFDpJlN+SInF6FT4378KRuzDerRz1MAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMDA2kAMGYCMQDsv4K6NfJvfvzd0OygwJ/ABiLtgtJW +hXTeUlltdqa4WsOM9tvx636v5FIvZRkK1XoCMQCdoPQ+a4fDBEiNuj0Ws33uUQhG +rpsePDGfVXn4kEpbTIBeOdVAx//TrMC/SVb+bsg= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_fido2.pem b/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_fido2.pem new file mode 100644 index 0000000..72ec45d --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_fido2.pem @@ -0,0 +1,19 @@ +Swissbit iShield Key FIDO2 +-------------------------- + +-----BEGIN CERTIFICATE----- +MIICiTCCAg6gAwIBAgIUOkmU35IicXoVPjfvwpG7MN6tHPUwCgYIKoZIzj0EAwMw +QzELMAkGA1UEBhMCREUxFDASBgNVBAoMC1N3aXNzYml0IEFHMR4wHAYDVQQDDBVT +d2lzc2JpdCBGSURPIFJvb3QgQ0EwIBcNMjExMDA3MDkzMDQyWhgPMjA1MTEwMDcw +OTMwNDJaMEMxCzAJBgNVBAYTAkRFMRQwEgYDVQQKDAtTd2lzc2JpdCBBRzEeMBwG +A1UEAwwVU3dpc3NiaXQgRklETyBSb290IENBMHYwEAYHKoZIzj0CAQYFK4EEACID +YgAEtgOC7IKxipMJ7bVPTT83Oe90xzHPCebxyCtg/WrsTrRaSnYigmJCB8/jqBN4 +OQG2dZ5jcNsL6SwHosYDRJc+O1zk9i5GEZWf3Ir992A6duMsp51lq4fAga/UzTN9 +/Ebzo4HAMIG9MB0GA1UdDgQWBBTfxzg8GGzYAidKL63uhSiraXJIKDB+BgNVHSME +dzB1gBTfxzg8GGzYAidKL63uhSiraXJIKKFHpEUwQzELMAkGA1UEBhMCREUxFDAS +BgNVBAoMC1N3aXNzYml0IEFHMR4wHAYDVQQDDBVTd2lzc2JpdCBGSURPIFJvb3Qg +Q0GCFDpJlN+SInF6FT4378KRuzDerRz1MAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMDA2kAMGYCMQDsv4K6NfJvfvzd0OygwJ/ABiLtgtJW +hXTeUlltdqa4WsOM9tvx636v5FIvZRkK1XoCMQCdoPQ+a4fDBEiNuj0Ws33uUQhG +rpsePDGfVXn4kEpbTIBeOdVAx//TrMC/SVb+bsg= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_pro.pem b/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_pro.pem new file mode 100644 index 0000000..2c5e110 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/swissbit_ishield_key_pro.pem @@ -0,0 +1,19 @@ +Swissbit iShield Key Pro +------------------------ + +-----BEGIN CERTIFICATE----- +MIICiTCCAg6gAwIBAgIUOkmU35IicXoVPjfvwpG7MN6tHPUwCgYIKoZIzj0EAwMw +QzELMAkGA1UEBhMCREUxFDASBgNVBAoMC1N3aXNzYml0IEFHMR4wHAYDVQQDDBVT +d2lzc2JpdCBGSURPIFJvb3QgQ0EwIBcNMjExMDA3MDkzMDQyWhgPMjA1MTEwMDcw +OTMwNDJaMEMxCzAJBgNVBAYTAkRFMRQwEgYDVQQKDAtTd2lzc2JpdCBBRzEeMBwG +A1UEAwwVU3dpc3NiaXQgRklETyBSb290IENBMHYwEAYHKoZIzj0CAQYFK4EEACID +YgAEtgOC7IKxipMJ7bVPTT83Oe90xzHPCebxyCtg/WrsTrRaSnYigmJCB8/jqBN4 +OQG2dZ5jcNsL6SwHosYDRJc+O1zk9i5GEZWf3Ir992A6duMsp51lq4fAga/UzTN9 +/Ebzo4HAMIG9MB0GA1UdDgQWBBTfxzg8GGzYAidKL63uhSiraXJIKDB+BgNVHSME +dzB1gBTfxzg8GGzYAidKL63uhSiraXJIKKFHpEUwQzELMAkGA1UEBhMCREUxFDAS +BgNVBAoMC1N3aXNzYml0IEFHMR4wHAYDVQQDDBVTd2lzc2JpdCBGSURPIFJvb3Qg +Q0GCFDpJlN+SInF6FT4378KRuzDerRz1MAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMAoGCCqGSM49BAMDA2kAMGYCMQDsv4K6NfJvfvzd0OygwJ/ABiLtgtJW +hXTeUlltdqa4WsOM9tvx636v5FIvZRkK1XoCMQCdoPQ+a4fDBEiNuj0Ws33uUQhG +rpsePDGfVXn4kEpbTIBeOdVAx//TrMC/SVb+bsg= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/t_shield_trustsec_fido2_bio_and_client_pin_version.pem b/restricted/WebAuthn/rootCertificates/mds/t_shield_trustsec_fido2_bio_and_client_pin_version.pem new file mode 100644 index 0000000..d69c819 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/t_shield_trustsec_fido2_bio_and_client_pin_version.pem @@ -0,0 +1,18 @@ +T-Shield TrustSec FIDO2 Bio and client PIN version +-------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICWDCCAf+gAwIBAgIUZkohGU6A+F2BKbG59WJydaPNo1cwCgYIKoZIzj0EAwIw +gYAxCzAJBgNVBAYTAkVHMQ4wDAYDVQQIDAVDYWlybzERMA8GA1UECgwIVHJ1c3Rz +ZWMxEDAOBgNVBAsMB1Jvb3QgQ0ExFTATBgNVBAMMDHRydXN0c2VjLm5ldDElMCMG +CSqGSIb3DQEJARYWbS5naGF0dGFzQHRydXN0c2VjLm5ldDAgFw0yNDA5MDkwNzQ3 +MTZaGA8yMDc0MDgyODA3NDcxNlowgYAxCzAJBgNVBAYTAkVHMQ4wDAYDVQQIDAVD +YWlybzERMA8GA1UECgwIVHJ1c3RzZWMxEDAOBgNVBAsMB1Jvb3QgQ0ExFTATBgNV +BAMMDHRydXN0c2VjLm5ldDElMCMGCSqGSIb3DQEJARYWbS5naGF0dGFzQHRydXN0 +c2VjLm5ldDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGQ4OxxTIAmQbrzh98C6 +2oyk7HwNAFmP3cDq8omHEuQby3mTqW6qkDOYsAf1JYCsMD+AAm/xc8U0BcjivsdB +88WjUzBRMB0GA1UdDgQWBBR5b8dujN2hi1t2YPojlTVJTGKtejAfBgNVHSMEGDAW +gBR5b8dujN2hi1t2YPojlTVJTGKtejAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 +BAMCA0cAMEQCIH/URBvm2ae2c3R9YqN70dDIp2C/n4x5awNpey4rSsYmAiBkQ7T6 +cw+dZyeZwDalKS18TbAJ3Qgwczo/mGaLj/NyrA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/t_shield_trustsec_u2f.pem b/restricted/WebAuthn/rootCertificates/mds/t_shield_trustsec_u2f.pem new file mode 100644 index 0000000..3e92e85 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/t_shield_trustsec_u2f.pem @@ -0,0 +1,18 @@ +T-Shield TrustSEC u2f +--------------------- + +-----BEGIN CERTIFICATE----- +MIICWDCCAf+gAwIBAgIUZkohGU6A+F2BKbG59WJydaPNo1cwCgYIKoZIzj0EAwIw +gYAxCzAJBgNVBAYTAkVHMQ4wDAYDVQQIDAVDYWlybzERMA8GA1UECgwIVHJ1c3Rz +ZWMxEDAOBgNVBAsMB1Jvb3QgQ0ExFTATBgNVBAMMDHRydXN0c2VjLm5ldDElMCMG +CSqGSIb3DQEJARYWbS5naGF0dGFzQHRydXN0c2VjLm5ldDAgFw0yNDA5MDkwNzQ3 +MTZaGA8yMDc0MDgyODA3NDcxNlowgYAxCzAJBgNVBAYTAkVHMQ4wDAYDVQQIDAVD +YWlybzERMA8GA1UECgwIVHJ1c3RzZWMxEDAOBgNVBAsMB1Jvb3QgQ0ExFTATBgNV +BAMMDHRydXN0c2VjLm5ldDElMCMGCSqGSIb3DQEJARYWbS5naGF0dGFzQHRydXN0 +c2VjLm5ldDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGQ4OxxTIAmQbrzh98C6 +2oyk7HwNAFmP3cDq8omHEuQby3mTqW6qkDOYsAf1JYCsMD+AAm/xc8U0BcjivsdB +88WjUzBRMB0GA1UdDgQWBBR5b8dujN2hi1t2YPojlTVJTGKtejAfBgNVHSMEGDAW +gBR5b8dujN2hi1t2YPojlTVJTGKtejAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 +BAMCA0cAMEQCIH/URBvm2ae2c3R9YqN70dDIp2C/n4x5awNpey4rSsYmAiBkQ7T6 +cw+dZyeZwDalKS18TbAJ3Qgwczo/mGaLj/NyrA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/taglio_ctap2_1_cs.pem b/restricted/WebAuthn/rootCertificates/mds/taglio_ctap2_1_cs.pem new file mode 100644 index 0000000..22956ee --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/taglio_ctap2_1_cs.pem @@ -0,0 +1,17 @@ +Taglio CTAP2.1 CS +----------------- + +-----BEGIN CERTIFICATE----- +MIICDzCCAbagAwIBAgIINL7c76Dm0+8wCgYIKoZIzj0EAwIwRDELMAkGA1UEBhMC +VVMxEzARBgNVBAoTClRhZ2xpbyBMTEMxIDAeBgNVBAMTF1RhZ2xpbyBGSURPIFJv +b3QgQ0EgRUNDMCAXDTI0MDYyODAwMDAwMFoYDzIwNTQwNjI3MjM1OTU5WjBEMQsw +CQYDVQQGEwJVUzETMBEGA1UEChMKVGFnbGlvIExMQzEgMB4GA1UEAxMXVGFnbGlv +IEZJRE8gUm9vdCBDQSBFQ0MwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS41U88 +g8iuH8Tmo/f4hfAvyu59eL8gBKhbbYSFeIjrIhmrZnqYu2akoQbG+GpSMkxXkTUd +rlr7Kqs/moTNkDmVo4GPMIGMMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFAwHdYhR +/U/TI6FO9ZMbmnrUImwyMF0GA1UdIwRWMFShSKRGMEQxCzAJBgNVBAYTAlVTMRMw +EQYDVQQKEwpUYWdsaW8gTExDMSAwHgYDVQQDExdUYWdsaW8gRklETyBSb290IENB +IEVDQ4IINL7c76Dm0+8wCgYIKoZIzj0EAwIDRwAwRAIgClJC2iZFhVs3pp6mkCR2 +ZXQnZUL8KEDHdf5YZurmv+0CIH4EuuDRA4VXChtzIvngljHWjgI1vRE7GJjap77x +oZxF +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/taglio_ctap2_1_ep.pem b/restricted/WebAuthn/rootCertificates/mds/taglio_ctap2_1_ep.pem new file mode 100644 index 0000000..1616097 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/taglio_ctap2_1_ep.pem @@ -0,0 +1,17 @@ +Taglio CTAP2.1 EP +----------------- + +-----BEGIN CERTIFICATE----- +MIICDzCCAbagAwIBAgIINL7c76Dm0+8wCgYIKoZIzj0EAwIwRDELMAkGA1UEBhMC +VVMxEzARBgNVBAoTClRhZ2xpbyBMTEMxIDAeBgNVBAMTF1RhZ2xpbyBGSURPIFJv +b3QgQ0EgRUNDMCAXDTI0MDYyODAwMDAwMFoYDzIwNTQwNjI3MjM1OTU5WjBEMQsw +CQYDVQQGEwJVUzETMBEGA1UEChMKVGFnbGlvIExMQzEgMB4GA1UEAxMXVGFnbGlv +IEZJRE8gUm9vdCBDQSBFQ0MwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS41U88 +g8iuH8Tmo/f4hfAvyu59eL8gBKhbbYSFeIjrIhmrZnqYu2akoQbG+GpSMkxXkTUd +rlr7Kqs/moTNkDmVo4GPMIGMMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFAwHdYhR +/U/TI6FO9ZMbmnrUImwyMF0GA1UdIwRWMFShSKRGMEQxCzAJBgNVBAYTAlVTMRMw +EQYDVQQKEwpUYWdsaW8gTExDMSAwHgYDVQQDExdUYWdsaW8gRklETyBSb290IENB +IEVDQ4IINL7c76Dm0+8wCgYIKoZIzj0EAwIDRwAwRAIgClJC2iZFhVs3pp6mkCR2 +ZXQnZUL8KEDHdf5YZurmv+0CIH4EuuDRA4VXChtzIvngljHWjgI1vRE7GJjap77x +oZxF +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/test_dummy_record.pem b/restricted/WebAuthn/rootCertificates/mds/test_dummy_record.pem new file mode 100644 index 0000000..d646f74 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/test_dummy_record.pem @@ -0,0 +1,17 @@ +TEST (DUMMY RECORD) +------------------- + +-----BEGIN CERTIFICATE----- +MIICLDCCAdICCQCv1vlqKeW5ejAKBggqhkjOPQQDAjCBnDELMAkGA1UEBhMCQ0gx +DzANBgNVBAgMBkdlbmV2YTEQMA4GA1UEBwwHVmVyc29peDEPMA0GA1UECgwGVE9L +RU4yMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMRMwEQYDVQQD +DAp0b2tlbjIuY29tMSAwHgYJKoZIhvcNAQkBFhFvZmZpY2VAdG9rZW4yLmNvbTAg +Fw0xOTA1MTQwNjU0MjFaGA8yMDcyMDUyMDA2NTQyMVowgZwxCzAJBgNVBAYTAkNI +MQ8wDQYDVQQIDAZHZW5ldmExEDAOBgNVBAcMB1ZlcnNvaXgxDzANBgNVBAoMBlRP +S0VOMjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjETMBEGA1UE +AwwKdG9rZW4yLmNvbTEgMB4GCSqGSIb3DQEJARYRb2ZmaWNlQHRva2VuMi5jb20w +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATjbSZd61/7Haoxyoxl3yh6tjk3tL6A +SCCum/2ndq86DQLt+DU6MV6f4/++upAPbTZU6jWnvILovtnsRgCWwUYRMAoGCCqG +SM49BAMCA0gAMEUCIEiNfNpALZIH8n1VyXpFyLIzDeZEZOCRiKh44uniaBZPAiEA +odanOlPUECjGHEf+E4dTKkyClpLi4JdEJkVHQpIXEJA= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/thales_idprime_fido_bio.pem b/restricted/WebAuthn/rootCertificates/mds/thales_idprime_fido_bio.pem new file mode 100644 index 0000000..e3ab775 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/thales_idprime_fido_bio.pem @@ -0,0 +1,43 @@ +Thales IDPrime FIDO Bio +----------------------- + +-----BEGIN CERTIFICATE----- +MIIC6TCCAdGgAwIBAgIJAJbTyru1X/IPMA0GCSqGSIb3DQEBCwUAMCMxITAfBgNV +BAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBDQTAeFw0xODA2MTIxNDQ1NTBaFw0y +ODA2MDkxNDQ1NTBaMCMxITAfBgNVBAMMGEdlbWFsdG8gTXVsdGlBcHAgRklETyBD +QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVjKHWpbD7TSlMxocjT +l6nIf7x32PmsQ9zGuLGGqA0UQZoIq3XLzL6LYUvJ5A5g0uyFGllHEfGAKrEaCQ8F +VvPS/Uh0FyfzWhRAziTSijjMIIVjjjUv9m9vFmcXScgHig7Odz8858V0krNH99qG +m3wjgaOerTWmt+jXCUfn01IkTPwxG2HlgEd45jNLSV7Vool+Ke8E2ki4lEkTeHzb +oulR5GUbp3nMi7E47VMQa3bNwnzWBbsaBSSQhLk3m5HaKhhxa6wJDK47NiMCkCkd +IHuWSQLVAfm85UAONtEOPwi0OuK3qbe8yKOFGf0KhB5MMeAym7MV/M4W0a49ogPD +9pMCAwEAAaMgMB4wDAYDVR0TBAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI +hvcNAQELBQADggEBAJWz5xLMk5WNYbAb6yOxECBoZ2WeB/ql4VJ3O/3/tNsxOYnz +LeWo540zQh9rAmaxz7eumBlskMq4yGPSNXB9ycWGHgkcCeSzN2wv8CIzDBs2oBZj +TNk65LBZDssTOBtMW/+uTFHQfbuO3ISLhI0DXfREi9NDM3jfk11xHcsfh2RMV+Qd +NfwVaZZrCq+ouG+Evkv7Kqq+oyu0VFM/tz68TGl6ylhPFR1qh9wttpVjAOOCEQCL +qP2dP28lwYByCqHQqVHwbujv/LZjZnKW3LYndZixPPSRCJssDDwJvh/f6nTxg9ZE ++/JcYre5CaI8nzVHaSOCjNJ7FzULG64JiWOvQ50= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgIJAICUTvkgtj5CMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV +BAYTAkZSMQwwCgYDVQQKDANESVMxCzAJBgNVBAsMAkNTMScwJQYDVQQDDB5HZW1h +bHRvIE11bHRpQXBwIEZJRE8gU3ViY2EgQ0EwHhcNMjAwNzA3MTQzNzE4WhcNMzAw +NzA1MTQzNzE4WjBRMQswCQYDVQQGEwJGUjEMMAoGA1UECgwDRElTMQswCQYDVQQL +DAJDUzEnMCUGA1UEAwweR2VtYWx0byBNdWx0aUFwcCBGSURPIFN1YmNhIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAKOeqC5/p0D1isCYKQJlVUO +rB6I7DLocunE/Rm8duGTbyxQht3CbFVTv3N2Lp2fbjxlI+3sOSGk33FTYkTqxcdJ +IrJ7SskBcUSNrfKOaQT/6KQcP4Cm7V+655Tq+TWxyxWQhDygt15qoP7MuK6bT9Sw +pCjpfKhaMSmyQaMoUcRAbLqdzBCac0hzB+Ze+gqJlnWV9UaSI2rFsVuH4ZE0cRO+ +MOpaLgM/s248nGGHp22ewSQfbnPaBbb8iqyAP+cu52GLsUpKRJebE+R6+PMQ9JCd +WeQZR3DkfSidkv3mcb4jq1iIta+MqKhRnwrfXh911KWLnYAl9ENChLX0c6Sj1QID +AQABo1AwTjAdBgNVHQ4EFgQUWLvhRBUPn8uLIf68+gv/NZIwGSIwHwYDVR0jBBgw +FoAUWLvhRBUPn8uLIf68+gv/NZIwGSIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAFLrDhaegeKHxYjH3EP3vUBKhnzM206ASxgeYCO2Ec9pOlYJaeqFE ++sUamUV/pwjDlqNaSgFgy7TweYkvOmMn4qScsHqvJ3zGOAiafwah1vUHfClXR8+a +xO2iGOUF0JKrZ9YYjbAa5/4HClv7jFPOdMWTOQyngoiHAs3jkuYjpCLFlB4VOi3d +1wjA1pnTdBKkAb7t8nTvw+/XbFvcQa73VH7sjvoBqD3fdMfRcuVq4qUZtZT6cGag +THD61Ttqh9oMCZXcDbR1PGZnNbqycsWPDIK0npmK3/3lfV8c+Zsry6e170mfJMZp +7O8m6CSz6/VLK+yDJd7841wpmeKTf6InZA== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/token2_fido2_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/token2_fido2_security_key.pem new file mode 100644 index 0000000..6a57527 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/token2_fido2_security_key.pem @@ -0,0 +1,17 @@ +TOKEN2 FIDO2 Security Key +------------------------- + +-----BEGIN CERTIFICATE----- +MIICLDCCAdICCQCv1vlqKeW5ejAKBggqhkjOPQQDAjCBnDELMAkGA1UEBhMCQ0gx +DzANBgNVBAgMBkdlbmV2YTEQMA4GA1UEBwwHVmVyc29peDEPMA0GA1UECgwGVE9L +RU4yMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMRMwEQYDVQQD +DAp0b2tlbjIuY29tMSAwHgYJKoZIhvcNAQkBFhFvZmZpY2VAdG9rZW4yLmNvbTAg +Fw0xOTA1MTQwNjU0MjFaGA8yMDcyMDUyMDA2NTQyMVowgZwxCzAJBgNVBAYTAkNI +MQ8wDQYDVQQIDAZHZW5ldmExEDAOBgNVBAcMB1ZlcnNvaXgxDzANBgNVBAoMBlRP +S0VOMjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjETMBEGA1UE +AwwKdG9rZW4yLmNvbTEgMB4GCSqGSIb3DQEJARYRb2ZmaWNlQHRva2VuMi5jb20w +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATjbSZd61/7Haoxyoxl3yh6tjk3tL6A +SCCum/2ndq86DQLt+DU6MV6f4/++upAPbTZU6jWnvILovtnsRgCWwUYRMAoGCCqG +SM49BAMCA0gAMEUCIEiNfNpALZIH8n1VyXpFyLIzDeZEZOCRiKh44uniaBZPAiEA +odanOlPUECjGHEf+E4dTKkyClpLi4JdEJkVHQpIXEJA= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/token2_pin_plus_security_key_series.pem b/restricted/WebAuthn/rootCertificates/mds/token2_pin_plus_security_key_series.pem new file mode 100644 index 0000000..9a3a004 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/token2_pin_plus_security_key_series.pem @@ -0,0 +1,17 @@ +TOKEN2 PIN Plus Security Key Series +------------------------------------ + +-----BEGIN CERTIFICATE----- +MIICLDCCAdICCQCv1vlqKeW5ejAKBggqhkjOPQQDAjCBnDELMAkGA1UEBhMCQ0gx +DzANBgNVBAgMBkdlbmV2YTEQMA4GA1UEBwwHVmVyc29peDEPMA0GA1UECgwGVE9L +RU4yMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMRMwEQYDVQQD +DAp0b2tlbjIuY29tMSAwHgYJKoZIhvcNAQkBFhFvZmZpY2VAdG9rZW4yLmNvbTAg +Fw0xOTA1MTQwNjU0MjFaGA8yMDcyMDUyMDA2NTQyMVowgZwxCzAJBgNVBAYTAkNI +MQ8wDQYDVQQIDAZHZW5ldmExEDAOBgNVBAcMB1ZlcnNvaXgxDzANBgNVBAoMBlRP +S0VOMjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjETMBEGA1UE +AwwKdG9rZW4yLmNvbTEgMB4GCSqGSIb3DQEJARYRb2ZmaWNlQHRva2VuMi5jb20w +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATjbSZd61/7Haoxyoxl3yh6tjk3tL6A +SCCum/2ndq86DQLt+DU6MV6f4/++upAPbTZU6jWnvILovtnsRgCWwUYRMAoGCCqG +SM49BAMCA0gAMEUCIEiNfNpALZIH8n1VyXpFyLIzDeZEZOCRiKh44uniaBZPAiEA +odanOlPUECjGHEf+E4dTKkyClpLi4JdEJkVHQpIXEJA= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/token_ring_3_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/token_ring_3_fido2_authenticator.pem new file mode 100644 index 0000000..33b6f23 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/token_ring_3_fido2_authenticator.pem @@ -0,0 +1,17 @@ +Token Ring 3 FIDO2 Authenticator +-------------------------------- + +-----BEGIN CERTIFICATE----- +MIICOzCCAeGgAwIBAgIUIU3zmvBXg1yJJg1Np/Dx8Tt3Eg8wCgYIKoZIzj0EAwIw +dzELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMRYwFAYDVQQKDA1Ub2tl +bml6ZSBJbmMuMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMRkw +FwYDVQQDDBBUb2tlbiBSaW5nIENBIDAwMCAXDTI0MDgzMDAzMDM1OVoYDzIwNTgw +ODIyMDMwMzU5WjBzMQswCQYDVQQGEwJVUzERMA8GA1UECAwITmV3IFlvcmsxFjAU +BgNVBAoMDVRva2VuaXplIEluYy4xIjAgBgNVBAsMGUF1dGhlbnRpY2F0b3IgQXR0 +ZXN0YXRpb24xFTATBgNVBAMMDFRva2VuIFJpbmcgMzBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABJYHb0XB4mOSB8dHL7zN6ADMqF69W09f5xmXo8MJvAIEECI1ZVeR +pe0PEGjYvIhcBCz1NiqTM+sFh4kNBkO6X7yjTTBLMAkGA1UdEwQCMAAwHQYDVR0O +BBYEFDj2wYoYJdAcgrbEZj1CgSJxvTvXMB8GA1UdIwQYMBaAFOgaeqy9+KATwksx +4pZgQspv6JXCMAoGCCqGSM49BAMCA0gAMEUCICbmKgP3870VTGfcjjSPVUk9iWYZ +0nPogTyllA62Kcz2AiEArpjUeKXlFCUTzDP0FzzbRVVz+L/j/Ge3ok8/WUkGTiI= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/token_ring_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/token_ring_fido2_authenticator.pem new file mode 100644 index 0000000..67de9d4 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/token_ring_fido2_authenticator.pem @@ -0,0 +1,16 @@ +Token Ring FIDO2 Authenticator +------------------------------ + +-----BEGIN CERTIFICATE----- +MIIB/DCCAaGgAwIBAgIUEL/WkZfnxDw9s85XzUSJgycJjrQwCgYIKoZIzj0EAwIw +cTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMRYwFAYDVQQKDA1Ub2tl +bml6ZSBJbmMuMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMRMw +EQYDVQQDDApUb2tlbiBSaW5nMB4XDTIxMDYyMTE2MTczNFoXDTMxMDYxOTE2MTcz +NFowezELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMRYwFAYDVQQKDA1U +b2tlbml6ZSBJbmMuMSIwIAYDVQQLDBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9u +MR0wGwYDVQQDDBRUb2tlbjEgQXV0aGVudGljYXRvcjBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABLcwU5AdnQaYblLiW4XswD8s6zeQ+nEAvKKjxy32PK1CWUxvv5RA +gQ6wUQJJYVU4RcqVfdrGFqI9dIAuv1nec3yjDTALMAkGA1UdEwQCMAAwCgYIKoZI +zj0EAwIDSQAwRgIhALt+Hz3l+gfZGEAm/ee5Mgp2IBCw+UYLSg7r2LXRC9SkAiEA +1zjzej6tz9soS0oz2Vs4D6AtzoXY2HWZBgYt8G1KniE= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/toothpic_passkey_provider.pem b/restricted/WebAuthn/rootCertificates/mds/toothpic_passkey_provider.pem new file mode 100644 index 0000000..4d24b4a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/toothpic_passkey_provider.pem @@ -0,0 +1,17 @@ +ToothPic Passkey Provider +------------------------- + +-----BEGIN CERTIFICATE----- +MIICEjCCAbigAwIBAgIRAIQRsv3DiL9P1af9oJ2ynjYwCgYIKoZIzj0EAwIwbzEL +MAkGA1UEBhMCSVQxGDAWBgNVBAoMD1Rvb3RoUGljIHMuci5sLjEiMCAGA1UECwwZ +QXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjEiMCAGA1UEAwwZVG9vdGhQaWMgUGFz +c2tleSBQcm92aWRlcjAgFw0yNTA4MDUxMDAwMzBaGA8yMDU1MDgwNTEwMDAzMFow +bzELMAkGA1UEBhMCSVQxGDAWBgNVBAoMD1Rvb3RoUGljIHMuci5sLjEiMCAGA1UE +CwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjEiMCAGA1UEAwwZVG9vdGhQaWMg +UGFzc2tleSBQcm92aWRlcjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLKUVqRQ +ipvTMwgzu+rPHaoncoztcm2uxbeB09IrbJb38DSULU6UtKB63/FrPkgfVJkWRlYl +M7CkNbgyeiJ3nNyjMzAxMAwGA1UdEwEB/wQCMAAwIQYLKwYBBAGC5RwBAQQEEgQQ +zEX2TlKiRRuDGk7dgCKiAjAKBggqhkjOPQQDAgNIADBFAiEA9TWqeBO4aEMoqU6o +kvXbNmwpzjLBKx52GvVnm6EBmzwCICWJvv1oJ4zwKGpnSsw8J7/ibD+iWWFFcYSP +PmV+zhLb +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/trustkey_g310_u2f_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/trustkey_g310_u2f_authenticator.pem new file mode 100644 index 0000000..2b36e22 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/trustkey_g310_u2f_authenticator.pem @@ -0,0 +1,37 @@ +TrustKey G310 U2F Authenticator +------------------------------- + +-----BEGIN CERTIFICATE----- +MIICgjCCAiigAwIBAgIBATAKBggqhkjOPQQDAjCBnTELMAkGA1UEBhMCS1IxDjAM +BgNVBAgMBVNlb3VsMRAwDgYDVQQHDAdHYW5nbmFtMRcwFQYDVQQKDA5lV0JNIENv +LiwgTHRkLjEZMBcGA1UECwwQQ2VydGlmaWNhdGUgVW5pdDEZMBcGA1UEAwwQZVdC +TSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wIBcN +MjMwNzExMDM0NjE0WhgPMjA3MzA2MjgwMzQ2MTRaMIGdMQswCQYDVQQGEwJLUjEO +MAwGA1UECAwFU2VvdWwxEDAOBgNVBAcMB0dhbmduYW0xFzAVBgNVBAoMDmVXQk0g +Q28uLCBMdGQuMRkwFwYDVQQLDBBDZXJ0aWZpY2F0ZSBVbml0MRkwFwYDVQQDDBBl +V0JNIENlcnRpZmljYXRlMR0wGwYJKoZIhvcNAQkBFg5pbmZvQGUtd2JtLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABAh+oeKyLSg797I6pJoOuv2K0bYjKYGQ +edIMZAghiZP6+oDwCA7zWaiZzYt3k8akQ3qa4TnjA8dCO9z/IKKHy7ajVTBTMBIG +A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLcn9/GIC/baKt0Gz3xI4OEXuRT+ +MAsGA1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAAcwCgYIKoZIzj0EAwIDSAAw +RQIhANVnJde//tBLq8MDDi+SAd6UdYIZSng4PMqmyNrvZj64AiAX0xSzAhFaCCp/ +uhpVgnlF+XBgrwAIsotZGTB6rkB31A== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICpTCCAkqgAwIBAgIBATAKBggqhkjOPQQDAjCBrzELMAkGA1UEBhMCS1IxETAP +BgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5nbmFtLUd1MRcwFQYDVQQKDA5l +V0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlv +bjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYO +aW5mb0BlLXdibS5jb20wHhcNMTgwNzAyMDUzMTM5WhcNMjMwNzAxMDUzMTM5WjCB +rzELMAkGA1UEBhMCS1IxETAPBgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5n +bmFtLUd1MRcwFQYDVQQKDA5lV0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVu +dGljYXRvciBBdHRlc3RhdGlvbjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0 +ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAAQIfqHisi0oO/eyOqSaDrr9itG2IymBkHnSDGQIIYmT+vqA8AgO +81momc2Ld5PGpEN6muE54wPHQjvc/yCih8u2o1UwUzASBgNVHRMBAf8ECDAGAQH/ +AgEAMB0GA1UdDgQWBBS3J/fxiAv22irdBs98SODhF7kU/jALBgNVHQ8EBAMCAQYw +EQYJYIZIAYb4QgEBBAQDAgAHMAoGCCqGSM49BAMCA0kAMEYCIQDc41LFK4LJCBU2 +VVKIz7Z6sxPhUEkh8nLSLK6IXdkP5wIhAIeKVOZchaVO5aF7fbdXoSrcyy1YYeUe +PLojcKI9fX84 +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/trustkey_g320_u2f_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/trustkey_g320_u2f_authenticator.pem new file mode 100644 index 0000000..4a233ba --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/trustkey_g320_u2f_authenticator.pem @@ -0,0 +1,37 @@ +TrustKey G320 U2F Authenticator +------------------------------- + +-----BEGIN CERTIFICATE----- +MIICpTCCAkqgAwIBAgIBATAKBggqhkjOPQQDAjCBrzELMAkGA1UEBhMCS1IxETAP +BgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5nbmFtLUd1MRcwFQYDVQQKDA5l +V0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlv +bjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYO +aW5mb0BlLXdibS5jb20wHhcNMTgwNzAyMDUzMTM5WhcNMjMwNzAxMDUzMTM5WjCB +rzELMAkGA1UEBhMCS1IxETAPBgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5n +bmFtLUd1MRcwFQYDVQQKDA5lV0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVu +dGljYXRvciBBdHRlc3RhdGlvbjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0 +ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAAQIfqHisi0oO/eyOqSaDrr9itG2IymBkHnSDGQIIYmT+vqA8AgO +81momc2Ld5PGpEN6muE54wPHQjvc/yCih8u2o1UwUzASBgNVHRMBAf8ECDAGAQH/ +AgEAMB0GA1UdDgQWBBS3J/fxiAv22irdBs98SODhF7kU/jALBgNVHQ8EBAMCAQYw +EQYJYIZIAYb4QgEBBAQDAgAHMAoGCCqGSM49BAMCA0kAMEYCIQDc41LFK4LJCBU2 +VVKIz7Z6sxPhUEkh8nLSLK6IXdkP5wIhAIeKVOZchaVO5aF7fbdXoSrcyy1YYeUe +PLojcKI9fX84 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICgjCCAiigAwIBAgIBATAKBggqhkjOPQQDAjCBnTELMAkGA1UEBhMCS1IxDjAM +BgNVBAgMBVNlb3VsMRAwDgYDVQQHDAdHYW5nbmFtMRcwFQYDVQQKDA5lV0JNIENv +LiwgTHRkLjEZMBcGA1UECwwQQ2VydGlmaWNhdGUgVW5pdDEZMBcGA1UEAwwQZVdC +TSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wIBcN +MjMwNzExMDM0NjE0WhgPMjA3MzA2MjgwMzQ2MTRaMIGdMQswCQYDVQQGEwJLUjEO +MAwGA1UECAwFU2VvdWwxEDAOBgNVBAcMB0dhbmduYW0xFzAVBgNVBAoMDmVXQk0g +Q28uLCBMdGQuMRkwFwYDVQQLDBBDZXJ0aWZpY2F0ZSBVbml0MRkwFwYDVQQDDBBl +V0JNIENlcnRpZmljYXRlMR0wGwYJKoZIhvcNAQkBFg5pbmZvQGUtd2JtLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABAh+oeKyLSg797I6pJoOuv2K0bYjKYGQ +edIMZAghiZP6+oDwCA7zWaiZzYt3k8akQ3qa4TnjA8dCO9z/IKKHy7ajVTBTMBIG +A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLcn9/GIC/baKt0Gz3xI4OEXuRT+ +MAsGA1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAAcwCgYIKoZIzj0EAwIDSAAw +RQIhANVnJde//tBLq8MDDi+SAd6UdYIZSng4PMqmyNrvZj64AiAX0xSzAhFaCCp/ +uhpVgnlF+XBgrwAIsotZGTB6rkB31A== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/trustkey_t110_u2f_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/trustkey_t110_u2f_authenticator.pem new file mode 100644 index 0000000..d8b0251 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/trustkey_t110_u2f_authenticator.pem @@ -0,0 +1,37 @@ +TrustKey T110 U2F Authenticator +------------------------------- + +-----BEGIN CERTIFICATE----- +MIICpTCCAkqgAwIBAgIBATAKBggqhkjOPQQDAjCBrzELMAkGA1UEBhMCS1IxETAP +BgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5nbmFtLUd1MRcwFQYDVQQKDA5l +V0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlv +bjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYO +aW5mb0BlLXdibS5jb20wHhcNMTgwNzAyMDUzMTM5WhcNMjMwNzAxMDUzMTM5WjCB +rzELMAkGA1UEBhMCS1IxETAPBgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5n +bmFtLUd1MRcwFQYDVQQKDA5lV0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVu +dGljYXRvciBBdHRlc3RhdGlvbjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0 +ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAAQIfqHisi0oO/eyOqSaDrr9itG2IymBkHnSDGQIIYmT+vqA8AgO +81momc2Ld5PGpEN6muE54wPHQjvc/yCih8u2o1UwUzASBgNVHRMBAf8ECDAGAQH/ +AgEAMB0GA1UdDgQWBBS3J/fxiAv22irdBs98SODhF7kU/jALBgNVHQ8EBAMCAQYw +EQYJYIZIAYb4QgEBBAQDAgAHMAoGCCqGSM49BAMCA0kAMEYCIQDc41LFK4LJCBU2 +VVKIz7Z6sxPhUEkh8nLSLK6IXdkP5wIhAIeKVOZchaVO5aF7fbdXoSrcyy1YYeUe +PLojcKI9fX84 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICgjCCAiigAwIBAgIBATAKBggqhkjOPQQDAjCBnTELMAkGA1UEBhMCS1IxDjAM +BgNVBAgMBVNlb3VsMRAwDgYDVQQHDAdHYW5nbmFtMRcwFQYDVQQKDA5lV0JNIENv +LiwgTHRkLjEZMBcGA1UECwwQQ2VydGlmaWNhdGUgVW5pdDEZMBcGA1UEAwwQZVdC +TSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wIBcN +MjMwNzExMDM0NjE0WhgPMjA3MzA2MjgwMzQ2MTRaMIGdMQswCQYDVQQGEwJLUjEO +MAwGA1UECAwFU2VvdWwxEDAOBgNVBAcMB0dhbmduYW0xFzAVBgNVBAoMDmVXQk0g +Q28uLCBMdGQuMRkwFwYDVQQLDBBDZXJ0aWZpY2F0ZSBVbml0MRkwFwYDVQQDDBBl +V0JNIENlcnRpZmljYXRlMR0wGwYJKoZIhvcNAQkBFg5pbmZvQGUtd2JtLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABAh+oeKyLSg797I6pJoOuv2K0bYjKYGQ +edIMZAghiZP6+oDwCA7zWaiZzYt3k8akQ3qa4TnjA8dCO9z/IKKHy7ajVTBTMBIG +A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLcn9/GIC/baKt0Gz3xI4OEXuRT+ +MAsGA1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAAcwCgYIKoZIzj0EAwIDSAAw +RQIhANVnJde//tBLq8MDDi+SAd6UdYIZSng4PMqmyNrvZj64AiAX0xSzAhFaCCp/ +uhpVgnlF+XBgrwAIsotZGTB6rkB31A== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/trustkey_t120_u2f_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/trustkey_t120_u2f_authenticator.pem new file mode 100644 index 0000000..6702a03 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/trustkey_t120_u2f_authenticator.pem @@ -0,0 +1,37 @@ +TrustKey T120 U2F Authenticator +------------------------------- + +-----BEGIN CERTIFICATE----- +MIICpTCCAkqgAwIBAgIBATAKBggqhkjOPQQDAjCBrzELMAkGA1UEBhMCS1IxETAP +BgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5nbmFtLUd1MRcwFQYDVQQKDA5l +V0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlv +bjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYO +aW5mb0BlLXdibS5jb20wHhcNMTgwNzAyMDUzMTM5WhcNMjMwNzAxMDUzMTM5WjCB +rzELMAkGA1UEBhMCS1IxETAPBgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5n +bmFtLUd1MRcwFQYDVQQKDA5lV0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVu +dGljYXRvciBBdHRlc3RhdGlvbjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0 +ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAAQIfqHisi0oO/eyOqSaDrr9itG2IymBkHnSDGQIIYmT+vqA8AgO +81momc2Ld5PGpEN6muE54wPHQjvc/yCih8u2o1UwUzASBgNVHRMBAf8ECDAGAQH/ +AgEAMB0GA1UdDgQWBBS3J/fxiAv22irdBs98SODhF7kU/jALBgNVHQ8EBAMCAQYw +EQYJYIZIAYb4QgEBBAQDAgAHMAoGCCqGSM49BAMCA0kAMEYCIQDc41LFK4LJCBU2 +VVKIz7Z6sxPhUEkh8nLSLK6IXdkP5wIhAIeKVOZchaVO5aF7fbdXoSrcyy1YYeUe +PLojcKI9fX84 +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICgjCCAiigAwIBAgIBATAKBggqhkjOPQQDAjCBnTELMAkGA1UEBhMCS1IxDjAM +BgNVBAgMBVNlb3VsMRAwDgYDVQQHDAdHYW5nbmFtMRcwFQYDVQQKDA5lV0JNIENv +LiwgTHRkLjEZMBcGA1UECwwQQ2VydGlmaWNhdGUgVW5pdDEZMBcGA1UEAwwQZVdC +TSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wIBcN +MjMwNzExMDM0NjE0WhgPMjA3MzA2MjgwMzQ2MTRaMIGdMQswCQYDVQQGEwJLUjEO +MAwGA1UECAwFU2VvdWwxEDAOBgNVBAcMB0dhbmduYW0xFzAVBgNVBAoMDmVXQk0g +Q28uLCBMdGQuMRkwFwYDVQQLDBBDZXJ0aWZpY2F0ZSBVbml0MRkwFwYDVQQDDBBl +V0JNIENlcnRpZmljYXRlMR0wGwYJKoZIhvcNAQkBFg5pbmZvQGUtd2JtLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABAh+oeKyLSg797I6pJoOuv2K0bYjKYGQ +edIMZAghiZP6+oDwCA7zWaiZzYt3k8akQ3qa4TnjA8dCO9z/IKKHy7ajVTBTMBIG +A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLcn9/GIC/baKt0Gz3xI4OEXuRT+ +MAsGA1UdDwQEAwIBBjARBglghkgBhvhCAQEEBAMCAAcwCgYIKoZIzj0EAwIDSAAw +RQIhANVnJde//tBLq8MDDi+SAd6UdYIZSng4PMqmyNrvZj64AiAX0xSzAhFaCCp/ +uhpVgnlF+XBgrwAIsotZGTB6rkB31A== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/truu_windows_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/truu_windows_authenticator.pem new file mode 100644 index 0000000..24d2402 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/truu_windows_authenticator.pem @@ -0,0 +1,18 @@ +TruU Windows Authenticator +-------------------------- + +-----BEGIN CERTIFICATE----- +MIICSzCCAfKgAwIBAgIUW3XK8yywbAWliglixIF63dvqYy8wCgYIKoZIzj0EAwIw +fDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCENvbG9yYWRvMQ8wDQYDVQQHDAZEZW52 +ZXIxEzARBgNVBAoMClRydVUsIEluYy4xIjAgBgNVBAsMGUF1dGhlbnRpY2F0b3Ig +QXR0ZXN0YXRpb24xEDAOBgNVBAMMB3RydXUuYWkwIBcNMjMxMTAzMjAzNjUxWhgP +MjA1MzEwMjYyMDM2NTFaMHwxCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhDb2xvcmFk +bzEPMA0GA1UEBwwGRGVudmVyMRMwEQYDVQQKDApUcnVVLCBJbmMuMSIwIAYDVQQL +DBlBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMRAwDgYDVQQDDAd0cnV1LmFpMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAENAvbtccMr7j/SRWmqIEZTRWNJyj6msYr +5lGeAgdSGyC9O0356RIecuaViOqz0DxgS1f/5KPbZp1t0yD2fVRX96NQME4wHQYD +VR0OBBYEFA5tL10g88t2qXlPlhISI2dIzlaVMB8GA1UdIwQYMBaAFA5tL10g88t2 +qXlPlhISI2dIzlaVMAwGA1UdEwEB/wQCMAAwCgYIKoZIzj0EAwIDRwAwRAIgXfuv +jsp+4v5iGOqngUgOg1hmbgFPFMgIjyWxCKqw/d8CIFimLNXLDIwA+oIbP1yOfqE8 +xk6q7/4LWOVYkRALoBC2 +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/usb_nfc_passcode_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/usb_nfc_passcode_authenticator.pem new file mode 100644 index 0000000..e1c46bf --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/usb_nfc_passcode_authenticator.pem @@ -0,0 +1,16 @@ +USB/NFC Passcode Authenticator +------------------------------ + +-----BEGIN CERTIFICATE----- +MIICCTCCAa+gAwIBAgIJAPAzegcU6sVAMAoGCCqGSM49BAMCMHYxCzAJBgNVBAYT +AkRFMSEwHwYDVQQKExhJbmZpbmVvbiBUZWNobm9sb2dpZXMgQUcxKTAnBgNVBAsT +IENBIGZvciBBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMRkwFwYDVQQDExBJbmZp +bmVvbiBGSURPIENBMB4XDTE4MDQyNTEzMzUxM1oXDTIzMDMxMDEzMzUxM1owdjEL +MAkGA1UEBhMCREUxITAfBgNVBAoTGEluZmluZW9uIFRlY2hub2xvZ2llcyBBRzEp +MCcGA1UECxMgQ0EgZm9yIEF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xGTAXBgNV +BAMTEEluZmluZW9uIEZJRE8gQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASV +bD4o+QwltixToOZSFEptDxDa+cZOmny9rP8WyxtgcwH4yNIt37zwdj58oGUgjBCU +eD8TDN52AADa9KSVOcsjoyYwJDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB +/wQEAwICBDAKBggqhkjOPQQDAgNIADBFAiA1NhquJNP+Wr3Le29R9BcxdAEJd2YW +xHDy8ZEi9khjmAIhAKzRd9f5df4kQ9QAUNZrSlT/my7OIXiMx0wH8eMY42Ff +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/utrust_fido2_security_key.pem b/restricted/WebAuthn/rootCertificates/mds/utrust_fido2_security_key.pem new file mode 100644 index 0000000..da77724 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/utrust_fido2_security_key.pem @@ -0,0 +1,62 @@ +uTrust FIDO2 Security Key +------------------------- + +-----BEGIN CERTIFICATE----- +MIIDUjCCAjqgAwIBAgIGQ2FsYWlCMA0GCSqGSIb3DQEBCwUAMDUxMzAxBgNVBAMM +KklkZW50aXYgRklETyBSb290IENBIFNlcmlhbCA3NDA4NTcwOTIxMTk3MDAgFw0y +MDA0MjkwNTQxMjBaGA8yMDYwMDQxOTA1NDEyMFowNTEzMDEGA1UEAwwqSWRlbnRp +diBGSURPIFJvb3QgQ0EgU2VyaWFsIDc0MDg1NzA5MjExOTcwMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtGB+EOBp2Jd3v7VEAkZYUQuuO2/a51vtL/tv +GCJHTbQ+m8uf3gE6tWy8zDYoj0Zd++/EIjggdRrOD1dYH5l+y5ipRT3Jsm6ZU1NB +utT+X8Kr5K8Tx6EQ8S/ySxYvFoTJdsPPzt7YtZRxH8E7GMb7oO8wejKD2gBTrTES +s3d2FMYa4j/trE63+t+4NqckJW0teO6eOFmIaXQKPx/wuIX3ReE9ZoNCQOnNj3UZ +DNRZZXL1VETCrRogQcvj/cQcYFSwSeB23TkesNQxRKriEbeV+j8yqVE2TuzJIPz4 +J10u2OmmrRQOxw8CdENZMaj6Et/tY51aGlAHr6x9pR8qW3PhCQIDAQABo2YwZDAd +BgNVHQ4EFgQUGd+yN5GHsboYQ/X4tpxZ3+2jtqAwHwYDVR0jBBgwFoAUGd+yN5GH +sboYQ/X4tpxZ3+2jtqAwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggEBAEVT589xBI3ev6cHUL7qFHeCMO1S2MUht8wM +VP6GWPod1E1rykyyS6e+vBokOfZPTET7+2eF0QBNX/74G96V+qvl5nZHIRqIxZ0c +zw3e+a/4U/Yc36m+r2vgpjzPIn9GFL6s7tmwg1+bNyPyU6ypkEeV46Acf0bWe/IA +b85VQJZWdAGhHSJ1dUVb88l7OeqkQRnqe3m3c201JDNCd1w5/3LU+8fmmjOmatsG +ww4yRGw3cGDpWQ9h1VZpSuUdfm7Oh/ul7Pnfj9u05gIYaXBo9zXAz1sePLV7hkfb +S7ryPL0xDUe6FbIG267rNJih4eK6ykNPENGiRQew8w1ASdnLiKo= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICuDCCAaCgAwIBAgICEAQwDQYJKoZIhvcNAQELBQAwJzElMCMGA1UEAwwcSWRl +bnRpdiBGSURPIEludGVybWVkaWF0ZSBDQTAgFw0yMDA4MTQxNjM5NTRaGA8yMDUw +MDkwNjE2Mzk1NFowbzELMAkGA1UEBhMCVVMxFTATBgNVBAoMDElkZW50aXYgSW5j +LjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjElMCMGA1UEAwwc +dVRydXN0IEZJRE8yIFNlY3VyaXR5IEtleSBQMTBZMBMGByqGSM49AgEGCCqGSM49 +AwEHA0IABHXhplb8fu4LP9Xc0g5DVX1u26+q2VSpUDVH3N7Mv+pKFM8tOPg3xakf +BdXxe/CELICPeibQTuozT641iDlWssqjbzBtMB0GA1UdDgQWBBReuu4rcH7qesEE +lTjJdqpdepy6aTAJBgNVHRMEAjAAMBMGCysGAQQBguUcAgEBBAQDAgQwMB8GA1Ud +IwQYMBaAFLbe+tg12+l74m3BK/kGFhvK3BY/MAsGA1UdDwQEAwIF4DANBgkqhkiG +9w0BAQsFAAOCAQEAUxVP1PfAbNW25uvgpruxltggfPboYLcQabzFHsld2P3riipc +34LXLxmozBrjdw5G/pkTsUjsjymN8k455SwzyFgTYJx69DyKWxIijhcCHKt2kQyp +fmiad2gIG/wVWrCXgc1nILoIBDuLUyFfCH7ef3gLuiry6ro2RVq6GUKW83E/SUHd +lUTJkSqpW8E3GOvffHNFjWHb8a19oEZdfP3kCz65p6/2MSxxv2wTt8dQ5UldXAEB +XBPSTfsq5bb0NsqwnvBFkvAaKj+ueyQ/S9o5PQrIn7JhGipXrau438hmt0REQ67X +PFi46CpMS0T9sBPGySIoLMmnTcnHr0UotpsCxQ== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDQDCCAiigAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwNTEzMDEGA1UEAwwqSWRl +bnRpdiBGSURPIFJvb3QgQ0EgU2VyaWFsIDc0MDg1NzA5MjExOTcwMCAXDTIwMDQy +OTA2NTc0NFoYDzIwNTAwNDIyMDY1NzQ0WjAnMSUwIwYDVQQDDBxJZGVudGl2IEZJ +RE8gSW50ZXJtZWRpYXRlIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAuoAozUSmveNu2McsrLRiDc2vZ+ODcIzoWNF65zRUQ9UjFYW5dYXkaLYJRsIz +5sdigYycMiGgaoNFOlyR0wSRX0pZS9AWXWM7pRsZQP9TdwDhgntiFSdmeeaiKESY +OTh+YGlsdY4R0Zfv5N32FpwsH0vY2F/Kcr3JX6i5vKkzBSm1mgEIdflNAG9s/G09 +Mpnz0Me/1yIjJv9V9DEAWHJn6MYN+fbIBfovlCKYQXNTGxfAgyQ82gasBVWkuiUE +ztY2UbfgyA2pUZ86OIdinCqOpgl92bZh1jVxNFjepvyfWKmlAYYStu8jT5kevANQ +Fys4QO063lZB9Ost4AohNMshUQIDAQABo2YwZDAdBgNVHQ4EFgQUtt762DXb6Xvi +bcEr+QYWG8rcFj8wHwYDVR0jBBgwFoAUGd+yN5GHsboYQ/X4tpxZ3+2jtqAwEgYD +VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD +ggEBAFClmkDLe7F/CRmRu72iKKNqiLfYW08LD7TkQWoz53nIAjs88sMsbfrESjrA +PJc4gsbCFZTLc2Fx3z156fTwWEA+PDcYMFnrkaLTBIvXYYEdP50uRUwVxtwMq1Hu +DFN5OaXp9mC5fAPSPIO89SWUWbQ13L+nR4IqJ7O0hByKKcWK1zdTy8Tk5LadHMJ5 +eLFnHapZ+uRt7amVCuf8Fa3quYUAf4wQH22Yii0pvp1GVi4KpMXuwhLAivrQ24Au ++i+yhwHqVzghl9E8FJlo0YlK/brHJEs3GdKwHUAZAvKdPflkOCY8z/cSibdIDhow +OWtH6lGvQhxDzXB+AnkxMuTMQC8= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/valmido_pro_fido.pem b/restricted/WebAuthn/rootCertificates/mds/valmido_pro_fido.pem new file mode 100644 index 0000000..beb2f67 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/valmido_pro_fido.pem @@ -0,0 +1,32 @@ +VALMIDO PRO FIDO +---------------- + +-----BEGIN CERTIFICATE----- +MIICKDCCAc+gAwIBAgIUAU31W+Hze259XpGtfhqjs2SAKDYwCgYIKoZIzj0EAwIw +ajELMAkGA1UEBhMCRlIxEDAOBgNVBAoMB1ZBTE1JRE8xLzAtBgNVBAsMJlByb2Zp +ZG8gQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbiBSb290MRgwFgYDVQQDDA93d3cu +dmFsbWlkby5jb20wHhcNMjMwNjIyMTIxNTAzWhcNMjgxMjEyMTIxNTAzWjBqMQsw +CQYDVQQGEwJGUjEQMA4GA1UECgwHVkFMTUlETzEvMC0GA1UECwwmUHJvZmlkbyBB +dXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uIFJvb3QxGDAWBgNVBAMMD3d3dy52YWxt +aWRvLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABK7W0x/T0eJea6emC1RF +Sk7xbrWRUwDeCOB4UnDMqiYDObImR4Get1q5rXZairD3QuoW51HgPfR9qhwe1WEk +H2ajUzBRMB0GA1UdDgQWBBQ+H1GyysBrEicas2OLW5hiOQMSEzAfBgNVHSMEGDAW +gBQ+H1GyysBrEicas2OLW5hiOQMSEzAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 +BAMCA0cAMEQCIGGIwPHJqlWWqOvFLocf1Pd6WKbdvBIen2Ived5A61AwAiBCj2pe +/5cXqQbRj1tqpQdkmiiicpv8COsoanuYe2myDg== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICHzCCAcSgAwIBAgIUPTQaTG6eOwUU/MWvn+TJIHM3bHowCgYIKoZIzj0EAwIw +ajELMAkGA1UEBhMCRlIxEDAOBgNVBAoMB1ZBTE1JRE8xLzAtBgNVBAsMJlByb2Zp +ZG8gQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbiBSb290MRgwFgYDVQQDDA93d3cu +dmFsbWlkby5jb20wHhcNMjMwNjIyMTIxNTAzWhcNMjgxMjEyMTIxNTAzWjBlMQsw +CQYDVQQGEwJGUjEQMA4GA1UECgwHVkFMTUlETzEqMCgGA1UECwwhUHJvZmlkbyBB +dXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uMRgwFgYDVQQDDA93d3cudmFsbWlkby5j +b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmNmloSwLTDScJa4DwV7s2tX0B +8VWUYqZ+h6fgXXz24aPMirfGWV2pBjepRze3DY/eiFMznbeuHIZDDXY2ljsvo00w +SzAJBgNVHRMEAjAAMB0GA1UdDgQWBBTeMAc3aTgYzuWJ+mLaprxEFLXXPDAfBgNV +HSMEGDAWgBQ+H1GyysBrEicas2OLW5hiOQMSEzAKBggqhkjOPQQDAgNJADBGAiEA +/aHcuzm+EHjybLh1DYlfBZqzw7MySJ75ijoKTRHSOzACIQD6noVlWULD9xhaNS/z +UnJXHc90FjJgaa+NZAw9WRQcXg== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/veridium_android_sdk.pem b/restricted/WebAuthn/rootCertificates/mds/veridium_android_sdk.pem new file mode 100644 index 0000000..723af78 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/veridium_android_sdk.pem @@ -0,0 +1,17 @@ +Veridium Android SDK +-------------------- + +-----BEGIN CERTIFICATE----- +MIICGDCCAb6gAwIBAgIULuLJylvJqK8JEzzeaWTYocHaeuMwCgYIKoZIzj0EAwIw +fDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREwDwYDVQQHDAhOZXcg +WW9yazEVMBMGA1UECgwMVmVyaWRpdW0gTFREMRMwEQYDVQQLDApWZXJpZGl1bUlE +MRswGQYDVQQDDBJWZXJpZGl1bUlEIFJPT1QgQ0EwIBcNMjEwODEyMTIwNjM1WhgP +MjA1MTAzMDgxMjA2MzVaMIGHMQswCQYDVQQGEwJVUzERMA8GA1UECAwITmV3IFlv +cmsxETAPBgNVBAcMCE5ldyBZb3JrMRUwEwYDVQQKDAxWZXJpZGl1bSBMVEQxEzAR +BgNVBAsMClZlcmlkaXVtSUQxJjAkBgNVBAMMHVZlcmlkaXVtSUQgQXR0ZXN0YXRp +b24gSXNzdWVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFV7CT1Y50YUtDs5n +CfvpY38L7IKwHhh1ECEtzFGgJqMrWc9OCxERurbjlw1enyccr4YDPnDv+yvs6cI8 +YRZ3SqMQMA4wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQDAgNIADBFAiEAiJv3wHUq +yuJ0cAt929mqAaPzFhjhnaysqjNtxKpUzBcCIEQXR7s86O6BnBH30IWuWLxut/ts +hiaT6Eu0Nkh6Hd61 +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/veridium_ios_sdk.pem b/restricted/WebAuthn/rootCertificates/mds/veridium_ios_sdk.pem new file mode 100644 index 0000000..a300f28 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/veridium_ios_sdk.pem @@ -0,0 +1,17 @@ +Veridium iOS SDK +---------------- + +-----BEGIN CERTIFICATE----- +MIICGDCCAb6gAwIBAgIULuLJylvJqK8JEzzeaWTYocHaeuMwCgYIKoZIzj0EAwIw +fDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREwDwYDVQQHDAhOZXcg +WW9yazEVMBMGA1UECgwMVmVyaWRpdW0gTFREMRMwEQYDVQQLDApWZXJpZGl1bUlE +MRswGQYDVQQDDBJWZXJpZGl1bUlEIFJPT1QgQ0EwIBcNMjEwODEyMTIwNjM1WhgP +MjA1MTAzMDgxMjA2MzVaMIGHMQswCQYDVQQGEwJVUzERMA8GA1UECAwITmV3IFlv +cmsxETAPBgNVBAcMCE5ldyBZb3JrMRUwEwYDVQQKDAxWZXJpZGl1bSBMVEQxEzAR +BgNVBAsMClZlcmlkaXVtSUQxJjAkBgNVBAMMHVZlcmlkaXVtSUQgQXR0ZXN0YXRp +b24gSXNzdWVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFV7CT1Y50YUtDs5n +CfvpY38L7IKwHhh1ECEtzFGgJqMrWc9OCxERurbjlw1enyccr4YDPnDv+yvs6cI8 +YRZ3SqMQMA4wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQDAgNIADBFAiEAiJv3wHUq +yuJ0cAt929mqAaPzFhjhnaysqjNtxKpUzBcCIEQXR7s86O6BnBH30IWuWLxut/ts +hiaT6Eu0Nkh6Hd61 +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/veridiumid_passkey_android_sdk.pem b/restricted/WebAuthn/rootCertificates/mds/veridiumid_passkey_android_sdk.pem new file mode 100644 index 0000000..2d15e0e --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/veridiumid_passkey_android_sdk.pem @@ -0,0 +1,17 @@ +VeridiumID Passkey Android SDK +------------------------------ + +-----BEGIN CERTIFICATE----- +MIICGDCCAb6gAwIBAgIULuLJylvJqK8JEzzeaWTYocHaeuMwCgYIKoZIzj0EAwIw +fDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREwDwYDVQQHDAhOZXcg +WW9yazEVMBMGA1UECgwMVmVyaWRpdW0gTFREMRMwEQYDVQQLDApWZXJpZGl1bUlE +MRswGQYDVQQDDBJWZXJpZGl1bUlEIFJPT1QgQ0EwIBcNMjEwODEyMTIwNjM1WhgP +MjA1MTAzMDgxMjA2MzVaMIGHMQswCQYDVQQGEwJVUzERMA8GA1UECAwITmV3IFlv +cmsxETAPBgNVBAcMCE5ldyBZb3JrMRUwEwYDVQQKDAxWZXJpZGl1bSBMVEQxEzAR +BgNVBAsMClZlcmlkaXVtSUQxJjAkBgNVBAMMHVZlcmlkaXVtSUQgQXR0ZXN0YXRp +b24gSXNzdWVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFV7CT1Y50YUtDs5n +CfvpY38L7IKwHhh1ECEtzFGgJqMrWc9OCxERurbjlw1enyccr4YDPnDv+yvs6cI8 +YRZ3SqMQMA4wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQDAgNIADBFAiEAiJv3wHUq +yuJ0cAt929mqAaPzFhjhnaysqjNtxKpUzBcCIEQXR7s86O6BnBH30IWuWLxut/ts +hiaT6Eu0Nkh6Hd61 +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/veridiumid_passkey_ios_sdk.pem b/restricted/WebAuthn/rootCertificates/mds/veridiumid_passkey_ios_sdk.pem new file mode 100644 index 0000000..4436e87 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/veridiumid_passkey_ios_sdk.pem @@ -0,0 +1,17 @@ +VeridiumID Passkey iOS SDK +-------------------------- + +-----BEGIN CERTIFICATE----- +MIICGDCCAb6gAwIBAgIULuLJylvJqK8JEzzeaWTYocHaeuMwCgYIKoZIzj0EAwIw +fDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREwDwYDVQQHDAhOZXcg +WW9yazEVMBMGA1UECgwMVmVyaWRpdW0gTFREMRMwEQYDVQQLDApWZXJpZGl1bUlE +MRswGQYDVQQDDBJWZXJpZGl1bUlEIFJPT1QgQ0EwIBcNMjEwODEyMTIwNjM1WhgP +MjA1MTAzMDgxMjA2MzVaMIGHMQswCQYDVQQGEwJVUzERMA8GA1UECAwITmV3IFlv +cmsxETAPBgNVBAcMCE5ldyBZb3JrMRUwEwYDVQQKDAxWZXJpZGl1bSBMVEQxEzAR +BgNVBAsMClZlcmlkaXVtSUQxJjAkBgNVBAMMHVZlcmlkaXVtSUQgQXR0ZXN0YXRp +b24gSXNzdWVyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFV7CT1Y50YUtDs5n +CfvpY38L7IKwHhh1ECEtzFGgJqMrWc9OCxERurbjlw1enyccr4YDPnDv+yvs6cI8 +YRZ3SqMQMA4wDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQDAgNIADBFAiEAiJv3wHUq +yuJ0cAt929mqAaPzFhjhnaysqjNtxKpUzBcCIEQXR7s86O6BnBH30IWuWLxut/ts +hiaT6Eu0Nkh6Hd61 +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/verimark_dt_fingerprint_key.pem b/restricted/WebAuthn/rootCertificates/mds/verimark_dt_fingerprint_key.pem new file mode 100644 index 0000000..7c13050 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/verimark_dt_fingerprint_key.pem @@ -0,0 +1,19 @@ +VeriMark DT Fingerprint Key +--------------------------- + +-----BEGIN CERTIFICATE----- +MIICfDCCAiOgAwIBAgIJAP4fSRQpRp3qMAoGCCqGSM49BAMCMIGZMQswCQYDVQQG +EwJVUzELMAkGA1UECAwCQ0ExETAPBgNVBAcMCFNhbiBKb3NlMRgwFgYDVQQKDA9T +eW5hcHRpY3MsIEluYy4xDDAKBgNVBAsMA1BDRDEVMBMGA1UEAwwMU3luYXB0aWNz +IENBMSswKQYJKoZIhvcNAQkBFhxjZXJ0LWF1dGhvcml0eUBzeW5hcHRpY3MuY29t +MCAXDTIwMDYwODIzNTAwOVoYDzIwNTEwNjA4MjM1MDA5WjCBmTELMAkGA1UEBhMC +VVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhTYW4gSm9zZTEYMBYGA1UECgwPU3lu +YXB0aWNzLCBJbmMuMQwwCgYDVQQLDANQQ0QxFTATBgNVBAMMDFN5bmFwdGljcyBD +QTErMCkGCSqGSIb3DQEJARYcY2VydC1hdXRob3JpdHlAc3luYXB0aWNzLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABLPQm50DgB980rdIIp6HYNo+nfQeUhPs +m4s78NROeLMOheuKn8ZxPXDHD+SKqBHAnXNbtoQ8g4ch+qiS+sWvJuOjUDBOMB0G +A1UdDgQWBBRDnWo24C2PpESzVbJPz1ZFTebSJzAfBgNVHSMEGDAWgBRDnWo24C2P +pESzVbJPz1ZFTebSJzAMBgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0cAMEQCIESk +k76ktFnDBDySebJHtw3TcJIXTfNo5Ng4Aj88BI7RAiBtEb5oxui8SzsUZ6wcQQjn +5aB5nd2aNJBhZK+iFHHGxg== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/verimark_guard_fingerprint_key.pem b/restricted/WebAuthn/rootCertificates/mds/verimark_guard_fingerprint_key.pem new file mode 100644 index 0000000..a80c905 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/verimark_guard_fingerprint_key.pem @@ -0,0 +1,19 @@ +VeriMark Guard Fingerprint Key +------------------------------ + +-----BEGIN CERTIFICATE----- +MIICfDCCAiOgAwIBAgIJAP4fSRQpRp3qMAoGCCqGSM49BAMCMIGZMQswCQYDVQQG +EwJVUzELMAkGA1UECAwCQ0ExETAPBgNVBAcMCFNhbiBKb3NlMRgwFgYDVQQKDA9T +eW5hcHRpY3MsIEluYy4xDDAKBgNVBAsMA1BDRDEVMBMGA1UEAwwMU3luYXB0aWNz +IENBMSswKQYJKoZIhvcNAQkBFhxjZXJ0LWF1dGhvcml0eUBzeW5hcHRpY3MuY29t +MCAXDTIwMDYwODIzNTAwOVoYDzIwNTEwNjA4MjM1MDA5WjCBmTELMAkGA1UEBhMC +VVMxCzAJBgNVBAgMAkNBMREwDwYDVQQHDAhTYW4gSm9zZTEYMBYGA1UECgwPU3lu +YXB0aWNzLCBJbmMuMQwwCgYDVQQLDANQQ0QxFTATBgNVBAMMDFN5bmFwdGljcyBD +QTErMCkGCSqGSIb3DQEJARYcY2VydC1hdXRob3JpdHlAc3luYXB0aWNzLmNvbTBZ +MBMGByqGSM49AgEGCCqGSM49AwEHA0IABLPQm50DgB980rdIIp6HYNo+nfQeUhPs +m4s78NROeLMOheuKn8ZxPXDHD+SKqBHAnXNbtoQ8g4ch+qiS+sWvJuOjUDBOMB0G +A1UdDgQWBBRDnWo24C2PpESzVbJPz1ZFTebSJzAfBgNVHSMEGDAWgBRDnWo24C2P +pESzVbJPz1ZFTebSJzAMBgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0cAMEQCIESk +k76ktFnDBDySebJHtw3TcJIXTfNo5Ng4Aj88BI7RAiBtEb5oxui8SzsUZ6wcQQjn +5aB5nd2aNJBhZK+iFHHGxg== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/verocard_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/verocard_fido2_authenticator.pem new file mode 100644 index 0000000..b8dc365 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/verocard_fido2_authenticator.pem @@ -0,0 +1,16 @@ +VeroCard FIDO2 Authenticator +---------------------------- + +-----BEGIN CERTIFICATE----- +MIICAjCCAaigAwIBAgIUVeYuZNkYBlvDkCX5gaTTf/j0YDMwCgYIKoZIzj0EAwIw +TTEaMBgGA1UEAwwRVmVyb0d1YXJkIEZJRE8gQ0ExCzAJBgNVBAYTAkFVMSIwIAYD +VQQKDBlWZXJvR3VhcmQgU3lzdGVtcyBQdHkgTFREMB4XDTIyMDExOTAyMjU1MFoX +DTMyMDExNzAyMjU1MFowTTEaMBgGA1UEAwwRVmVyb0d1YXJkIEZJRE8gQ0ExCzAJ +BgNVBAYTAkFVMSIwIAYDVQQKDBlWZXJvR3VhcmQgU3lzdGVtcyBQdHkgTFREMFkw +EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQdcBwQZROys1G4QLKr52nTw0ZcCRxVTx +AtR1U2mamWodJ+86qo7bbKOp71SjOzFCIiJ2vNEQv1LHF2xKO7DxJaNmMGQwHQYD +VR0OBBYEFChU/r3vk+xiaGlY4QKASzRuHqSuMB8GA1UdIwQYMBaAFChU/r3vk+xi +aGlY4QKASzRuHqSuMA4GA1UdDwEB/wQEAwIB5jASBgNVHRMBAf8ECDAGAQH/AgEA +MAoGCCqGSM49BAMCA0gAMEUCIQCvhvHnlr1ynlP5f7Q21bOqRi3JdTe7asK1SZh5 +q3YMXQIgEbbuqxWPYp+txvb9Rki2PEhfsstl6vZ0HWEVqMTE9Xc= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/vincss_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/vincss_fido2_authenticator.pem new file mode 100644 index 0000000..323d0f0 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/vincss_fido2_authenticator.pem @@ -0,0 +1,36 @@ +VinCSS FIDO2 Authenticator +-------------------------- + +-----BEGIN CERTIFICATE----- +MIIB9TCCAZsCFDW44aglxZiY/J3DJFC4e5o74220MAoGCCqGSM49BAMCMHwxCzAJ +BgNVBAYTAlZOMRIwEAYDVQQIDAlIb0NoaU1pbmgxDzANBgNVBAoMBlZpbkNTUzEP +MA0GA1UECwwGUm9vdENBMRYwFAYDVQQDDA1jYS52aW5jc3MubmV0MR8wHQYJKoZI +hvcNAQkBFhBhZG1pbkB2aW5jc3MubmV0MCAXDTE5MTAyMzA0MTg1NFoYDzIwNjkx +MDEwMDQxODU0WjB8MQswCQYDVQQGEwJWTjESMBAGA1UECAwJSG9DaGlNaW5oMQ8w +DQYDVQQKDAZWaW5DU1MxDzANBgNVBAsMBlJvb3RDQTEWMBQGA1UEAwwNY2Eudmlu +Y3NzLm5ldDEfMB0GCSqGSIb3DQEJARYQYWRtaW5AdmluY3NzLm5ldDBZMBMGByqG +SM49AgEGCCqGSM49AwEHA0IABO0ZlRMqkOPRqHNa4Xj7oTvEKHLtjWexvuAC8WLl +K53TIGXc2JJ3GbEaVo10tFjnLHLXheKadZCj2HEz3NJSaUIwCgYIKoZIzj0EAwID +SAAwRQIhALHeqkcl8O7ky1iRXicVAC7x2zsU12vS3BOVyXCgedE3AiBlM++xnzOO +Es2m3sF8/Ztbw6UL/AMT1ZXt5fyqUhIuWw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDHDCCAsKgAwIBAgIBATAKBggqhkjOPQQDAjB8MQswCQYDVQQGEwJWTjESMBAG +A1UECAwJSG9DaGlNaW5oMQ8wDQYDVQQKDAZWaW5DU1MxDzANBgNVBAsMBlJvb3RD +QTEWMBQGA1UEAwwNY2EudmluY3NzLm5ldDEfMB0GCSqGSIb3DQEJARYQYWRtaW5A +dmluY3NzLm5ldDAgFw0yMzEwMjUyMzUxNTNaGA8yMDczMTAxMjIzNTE1M1owgZIx +CzAJBgNVBAYTAlZOMRIwEAYDVQQIDAlIb0NoaU1pbmgxDzANBgNVBAoMBlZpbkNT +UzEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjEZMBcGA1UEAwwQ +ZmlkbzIudmluY3NzLm5ldDEfMB0GCSqGSIb3DQEJARYQYWRtaW5AdmluY3NzLm5l +dDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDcllSkNyy2ebVJuUh7EDR4o+pfF +XtDRwCXun0L/2u1wV8QYopmrKvN2YmWU3xfEou9GYlg8FVSyiuI7XhsnVT2jggEa +MIIBFjAdBgNVHQ4EFgQUtTmt+HkgBmiKKtxn5Afr521TIsEwgaQGA1UdIwSBnDCB +maGBgKR+MHwxCzAJBgNVBAYTAlZOMRIwEAYDVQQIDAlIb0NoaU1pbmgxDzANBgNV +BAoMBlZpbkNTUzEPMA0GA1UECwwGUm9vdENBMRYwFAYDVQQDDA1jYS52aW5jc3Mu +bmV0MR8wHQYJKoZIhvcNAQkBFhBhZG1pbkB2aW5jc3MubmV0ghQ1uOGoJcWYmPyd +wyRQuHuaO+NttDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE8DATBgsrBgEEAYLlHAIB +AQQEAwIFIDAhBgsrBgEEAYLlHAEBBAQSBBBf24G4U/BJZ6iB9ewm/k0YMAoGCCqG +SM49BAMCA0gAMEUCIQDzR0ha1bt1YA91JmBVKxTqBN7gAhhUlBunRNOugiJ2hQIg +UmusQ0K6pzRn9zTgldNrywl6AUipPO8t1YzPwQlqJiM= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/vincss_fido2_fingerprint.pem b/restricted/WebAuthn/rootCertificates/mds/vincss_fido2_fingerprint.pem new file mode 100644 index 0000000..d3229f9 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/vincss_fido2_fingerprint.pem @@ -0,0 +1,22 @@ +VinCSS FIDO2 Fingerprint +------------------------ + +-----BEGIN CERTIFICATE----- +MIIDEjCCAregAwIBAgIBATAKBggqhkjOPQQDAjB8MQswCQYDVQQGEwJWTjESMBAG +A1UECAwJSG9DaGlNaW5oMQ8wDQYDVQQKDAZWaW5DU1MxDzANBgNVBAsMBlJvb3RD +QTEWMBQGA1UEAwwNY2EudmluY3NzLm5ldDEfMB0GCSqGSIb3DQEJARYQYWRtaW5A +dmluY3NzLm5ldDAgFw0yMzEwMjQwNzUyMzZaGA8yMDczMTAxMTA3NTIzNlowgZIx +CzAJBgNVBAYTAlZOMRIwEAYDVQQIDAlIb0NoaU1pbmgxDzANBgNVBAoMBlZpbkNT +UzEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjEZMBcGA1UEAwwQ +ZmlkbzIudmluY3NzLm5ldDEfMB0GCSqGSIb3DQEJARYQYWRtaW5AdmluY3NzLm5l +dDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDcllSkNyy2ebVJuUh7EDR4o+pfF +XtDRwCXun0L/2u1wV8QYopmrKvN2YmWU3xfEou9GYlg8FVSyiuI7XhsnVT2jggEP +MIIBCzAdBgNVHQ4EFgQUtTmt+HkgBmiKKtxn5Afr521TIsEwgZkGA1UdIwSBkTCB +jqGBgKR+MHwxCzAJBgNVBAYTAlZOMRIwEAYDVQQIDAlIb0NoaU1pbmgxDzANBgNV +BAoMBlZpbkNTUzEPMA0GA1UECwwGUm9vdENBMRYwFAYDVQQDDA1jYS52aW5jc3Mu +bmV0MR8wHQYJKoZIhvcNAQkBFhBhZG1pbkB2aW5jc3MubmV0ggkAsk6s332ZrP4w +CQYDVR0TBAIwADALBgNVHQ8EBAMCBPAwEwYLKwYBBAGC5RwCAQEEBAMCBHAwIQYL +KwYBBAGC5RwBAQQEEgQQkBJZP0PkRGGpetknd7VddDAKBggqhkjOPQQDAgNJADBG +AiEAyQ/9YCnFj7l0PLrmaDU0BhP9wMPD7jKEdvMe1zSr64ICIQCo5L/SIYASAOdk +Irm5DJIoxMJYKjMuaZMZY1R6rzJSaw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/vivokey_apex_fido2.pem b/restricted/WebAuthn/rootCertificates/mds/vivokey_apex_fido2.pem new file mode 100644 index 0000000..7e82aa4 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/vivokey_apex_fido2.pem @@ -0,0 +1,17 @@ +VivoKey Apex FIDO2 +------------------ + +-----BEGIN CERTIFICATE----- +MIICNzCCAb2gAwIBAgIUc8cREsY8k+tu/Al5afYEYR0nC5cwCgYIKoZIzj0EAwIw +aTELMAkGA1UEBhMCVVMxEDAOBgNVBAoMB1Zpdm9LZXkxIjAgBgNVBAsMGUF1dGhl +bnRpY2F0b3IgQXR0ZXN0YXRpb24xJDAiBgNVBAMMG1Zpdm9LZXkgQXR0ZXN0YXRp +b24gUm9vdCBDQTAeFw0yMjA4MTAxNzQwMDlaFw0zMjA4MDkxNzQwMDlaMGkxCzAJ +BgNVBAYTAlVTMRAwDgYDVQQKDAdWaXZvS2V5MSIwIAYDVQQLDBlBdXRoZW50aWNh +dG9yIEF0dGVzdGF0aW9uMSQwIgYDVQQDDBtWaXZvS2V5IEF0dGVzdGF0aW9uIFJv +b3QgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATkj04o5g5qd9Jb/om4bD4lxWwc +lpSkRmFs/lJNWRIkW+kot66/wRHu2Su/1BTJegSEjPN2U0V+r2qJ+xVcuXjozvSK +pts2ai31tButnqYXov2X4VM0G14GFIiHDjmqUqujJjAkMBIGA1UdEwEB/wQIMAYB +Af8CAQAwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMCA2gAMGUCME1TonqEZys7 +SwTMPcqi3v7iJ3hklznkZ3zzVwPIt260QOduTeyZZ/h2wDVDttfXmAIxAJTUGy/O +vSGetxW+gkCrx/QBSPkI0bTUEXnkw9l33TiGow6ULZ+50Q+96/cGhKbkpQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/vivokey_apex_u2f.pem b/restricted/WebAuthn/rootCertificates/mds/vivokey_apex_u2f.pem new file mode 100644 index 0000000..99c0966 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/vivokey_apex_u2f.pem @@ -0,0 +1,17 @@ +VivoKey Apex U2F +---------------- + +-----BEGIN CERTIFICATE----- +MIICNzCCAb2gAwIBAgIUc8cREsY8k+tu/Al5afYEYR0nC5cwCgYIKoZIzj0EAwIw +aTELMAkGA1UEBhMCVVMxEDAOBgNVBAoMB1Zpdm9LZXkxIjAgBgNVBAsMGUF1dGhl +bnRpY2F0b3IgQXR0ZXN0YXRpb24xJDAiBgNVBAMMG1Zpdm9LZXkgQXR0ZXN0YXRp +b24gUm9vdCBDQTAeFw0yMjA4MTAxNzQwMDlaFw0zMjA4MDkxNzQwMDlaMGkxCzAJ +BgNVBAYTAlVTMRAwDgYDVQQKDAdWaXZvS2V5MSIwIAYDVQQLDBlBdXRoZW50aWNh +dG9yIEF0dGVzdGF0aW9uMSQwIgYDVQQDDBtWaXZvS2V5IEF0dGVzdGF0aW9uIFJv +b3QgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATkj04o5g5qd9Jb/om4bD4lxWwc +lpSkRmFs/lJNWRIkW+kot66/wRHu2Su/1BTJegSEjPN2U0V+r2qJ+xVcuXjozvSK +pts2ai31tButnqYXov2X4VM0G14GFIiHDjmqUqujJjAkMBIGA1UdEwEB/wQIMAYB +Af8CAQAwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMCA2gAMGUCME1TonqEZys7 +SwTMPcqi3v7iJ3hklznkZ3zzVwPIt260QOduTeyZZ/h2wDVDttfXmAIxAJTUGy/O +vSGetxW+gkCrx/QBSPkI0bTUEXnkw9l33TiGow6ULZ+50Q+96/cGhKbkpQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/windows_hello_hardware_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/windows_hello_hardware_authenticator.pem new file mode 100644 index 0000000..1277ca4 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/windows_hello_hardware_authenticator.pem @@ -0,0 +1,37 @@ +Windows Hello Hardware Authenticator +------------------------------------ + +-----BEGIN CERTIFICATE----- +MIIF9TCCA92gAwIBAgIQXbYwTgy/J79JuMhpUB5dyzANBgkqhkiG9w0BAQsFADCB +jDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl +ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UEAxMt +TWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0MB4X +DTE0MTIxMDIxMzExOVoXDTM5MTIxMDIxMzkyOFowgYwxCzAJBgNVBAYTAlVTMRMw +EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN +aWNyb3NvZnQgQ29ycG9yYXRpb24xNjA0BgNVBAMTLU1pY3Jvc29mdCBUUE0gUm9v +dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxNDCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJ+n+bnKt/JHIRC/oI/xgkgsYdPzP0gpvduDA2GbRtth+L4W +UyoZKGBw7uz5bjjP8Aql4YExyjR3EZQ4LqnZChMpoCofbeDR4MjCE1TGwWghGpS0 +mM3GtWD9XiME4rE2K0VW3pdN0CLzkYbvZbs2wQTFfE62yNQiDjyHFWAZ4BQH4eWa +8wrDMUxIAneUCpU6zCwM+l6Qh4ohX063BHzXlTSTc1fDsiPaKuMMjWjK9vp5UHFP +a+dMAWr6OljQZPFIg3aZ4cUfzS9y+n77Hs1NXPBn6E4Db679z4DThIXyoKeZTv1a +aWOWl/exsDLGt2mTMTyykVV8uD1eRjYriFpmoRDwJKAEMOfaURarzp7hka9TOElG +yD2gOV4Fscr2MxAYCywLmOLzA4VDSYLuKAhPSp7yawET30AvY1HRfMwBxetSqWP2 ++yZRNYJlHpor5QTuRDgzR+Zej+aWx6rWNYx43kLthozeVJ3QCsD5iEI/OZlmWn5W +Yf7O8LB/1A7scrYv44FD8ck3Z+hxXpkklAsjJMsHZa9mBqh+VR1AicX4uZG8m16x +65ZU2uUpBa3rn8CTNmw17ZHOiuSWJtS9+PrZVA8ljgf4QgA1g6NPOEiLG2fn8Gm+ +r5Ak+9tqv72KDd2FPBJ7Xx4stYj/WjNPtEUhW4rcLK3ktLfcy6ea7Rocw5y5AgMB +AAGjUTBPMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR6 +jArOL0hiF+KU0a5VwVLscXSkVjAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0B +AQsFAAOCAgEAW4ioo1+J9VWC0UntSBXcXRm1ePTVamtsxVy/GpP4EmJd3Ub53JzN +BfYdgfUL51CppS3ZY6BoagB+DqoA2GbSL+7sFGHBl5ka6FNelrwsH6VVw4xV/8kl +IjmqOyfatPYsz0sUdZev+reeiGpKVoXrK6BDnUU27/mgPtem5YKWvHB/soofUrLK +zZV3WfGdx9zBr8V0xW6vO3CKaqkqU9y6EsQw34n7eJCbEVVQ8VdFd9iV1pmXwaBA +fBwkviPTKEP9Cm+zbFIOLr3V3CL9hJj+gkTUuXWlJJ6wVXEG5i4rIbLAV59UrW4L +onP+seqvWMJYUFxu/niF0R3fSGM+NU11DtBVkhRZt1u0kFhZqjDz1dWyfT/N7Hke +3WsDqUFsBi+8SEw90rWx2aUkLvKo83oU4Mx4na+2I3l9F2a2VNGk4K7l3a00g51m +iPiq0Da0jqw30PaLluTMTGY5+RnZVh50JD6nk+Ea3wRkU8aiYFnpIxfKBZ72whmY +Ya/egj9IKeqpR0vuLebbU0fJBf880K1jWD3Z5SFyJXo057Mv0OPw5mttytE585ZI +y5JsaRXlsOoWGRXE3kUT/MKR1UoAgR54c8Bsh+9Dq2wqIK9mRn15zvBDeyHG6+cz +urLopziOUeWokxZN1syrEdKlhFoPYavm6t+PzIcpdxZwHA+V3jLJPfI= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/windows_hello_vbs_hardware_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/windows_hello_vbs_hardware_authenticator.pem new file mode 100644 index 0000000..dd25295 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/windows_hello_vbs_hardware_authenticator.pem @@ -0,0 +1,37 @@ +Windows Hello VBS Hardware Authenticator +---------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIF9TCCA92gAwIBAgIQXbYwTgy/J79JuMhpUB5dyzANBgkqhkiG9w0BAQsFADCB +jDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl +ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE2MDQGA1UEAxMt +TWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0MB4X +DTE0MTIxMDIxMzExOVoXDTM5MTIxMDIxMzkyOFowgYwxCzAJBgNVBAYTAlVTMRMw +EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN +aWNyb3NvZnQgQ29ycG9yYXRpb24xNjA0BgNVBAMTLU1pY3Jvc29mdCBUUE0gUm9v +dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxNDCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJ+n+bnKt/JHIRC/oI/xgkgsYdPzP0gpvduDA2GbRtth+L4W +UyoZKGBw7uz5bjjP8Aql4YExyjR3EZQ4LqnZChMpoCofbeDR4MjCE1TGwWghGpS0 +mM3GtWD9XiME4rE2K0VW3pdN0CLzkYbvZbs2wQTFfE62yNQiDjyHFWAZ4BQH4eWa +8wrDMUxIAneUCpU6zCwM+l6Qh4ohX063BHzXlTSTc1fDsiPaKuMMjWjK9vp5UHFP +a+dMAWr6OljQZPFIg3aZ4cUfzS9y+n77Hs1NXPBn6E4Db679z4DThIXyoKeZTv1a +aWOWl/exsDLGt2mTMTyykVV8uD1eRjYriFpmoRDwJKAEMOfaURarzp7hka9TOElG +yD2gOV4Fscr2MxAYCywLmOLzA4VDSYLuKAhPSp7yawET30AvY1HRfMwBxetSqWP2 ++yZRNYJlHpor5QTuRDgzR+Zej+aWx6rWNYx43kLthozeVJ3QCsD5iEI/OZlmWn5W +Yf7O8LB/1A7scrYv44FD8ck3Z+hxXpkklAsjJMsHZa9mBqh+VR1AicX4uZG8m16x +65ZU2uUpBa3rn8CTNmw17ZHOiuSWJtS9+PrZVA8ljgf4QgA1g6NPOEiLG2fn8Gm+ +r5Ak+9tqv72KDd2FPBJ7Xx4stYj/WjNPtEUhW4rcLK3ktLfcy6ea7Rocw5y5AgMB +AAGjUTBPMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR6 +jArOL0hiF+KU0a5VwVLscXSkVjAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0B +AQsFAAOCAgEAW4ioo1+J9VWC0UntSBXcXRm1ePTVamtsxVy/GpP4EmJd3Ub53JzN +BfYdgfUL51CppS3ZY6BoagB+DqoA2GbSL+7sFGHBl5ka6FNelrwsH6VVw4xV/8kl +IjmqOyfatPYsz0sUdZev+reeiGpKVoXrK6BDnUU27/mgPtem5YKWvHB/soofUrLK +zZV3WfGdx9zBr8V0xW6vO3CKaqkqU9y6EsQw34n7eJCbEVVQ8VdFd9iV1pmXwaBA +fBwkviPTKEP9Cm+zbFIOLr3V3CL9hJj+gkTUuXWlJJ6wVXEG5i4rIbLAV59UrW4L +onP+seqvWMJYUFxu/niF0R3fSGM+NU11DtBVkhRZt1u0kFhZqjDz1dWyfT/N7Hke +3WsDqUFsBi+8SEw90rWx2aUkLvKo83oU4Mx4na+2I3l9F2a2VNGk4K7l3a00g51m +iPiq0Da0jqw30PaLluTMTGY5+RnZVh50JD6nk+Ea3wRkU8aiYFnpIxfKBZ72whmY +Ya/egj9IKeqpR0vuLebbU0fJBf880K1jWD3Z5SFyJXo057Mv0OPw5mttytE585ZI +y5JsaRXlsOoWGRXE3kUT/MKR1UoAgR54c8Bsh+9Dq2wqIK9mRn15zvBDeyHG6+cz +urLopziOUeWokxZN1syrEdKlhFoPYavm6t+PzIcpdxZwHA+V3jLJPfI= +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/winmagic_fido_eazy_phone.pem b/restricted/WebAuthn/rootCertificates/mds/winmagic_fido_eazy_phone.pem new file mode 100644 index 0000000..60f758c --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/winmagic_fido_eazy_phone.pem @@ -0,0 +1,31 @@ +WinMagic FIDO Eazy - Phone +-------------------------- + +-----BEGIN CERTIFICATE----- +MIIErTCCA5WgAwIBAgIQRTfcgo6xwIFGfmtzk1BSnTANBgkqhkiG9w0BAQsFADBE +MRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxGDAWBgoJkiaJk/IsZAEZFgh3aW5tYWdp +YzERMA8GA1UEAxMIV2lubWFnaWMwHhcNMDgxMTI0MTgzNDQ5WhcNMjgwNzEzMTcz +MjM3WjBEMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxGDAWBgoJkiaJk/IsZAEZFgh3 +aW5tYWdpYzERMA8GA1UEAxMIV2lubWFnaWMwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDQCkmQ/K8Dn39qSCW5tKLvvDLH3ClScgQrDg7+uY44jHlIY1/L +l6v2rpj7nlmVMlIzogd3yXjCFBvGr4ziGQ2Qc8UpkaU96EZxEtHwZStw6YQ0jdng +kSLPvOp8T8YiJpcvsVtQtiQ0OsTTuiO2Ei4LuLh7KR+8x4bARvzkBWstNBTqVSAZ +QYesqnl8H5Sfwb3Iou8LSiAsuOXyxt2ms911YrxWvh/KnOel3Od3h+K5dQYP53+f +PUzgz56TTj8R4Y6zRuzdkbnR6xWXdrK414iX9D6x5q8W2XJJpTMK7EnSXG0q7XF7 +p68jDKAnxAF8kfh3uinc2ulmVOZbTRzxF8B3AgMBAAGjggGZMIIBlTATBgkrBgEE +AYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUjMsTbY0wXQBR29bWHIvbFfUAFfUwggEGBgNVHR8Egf4wgfswgfiggfWg +gfKGgbVsZGFwOi8vL0NOPVdpbm1hZ2ljKDIpLENOPXBob2VuaXgsQ049Q0RQLENO +PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy +YXRpb24sREM9d2lubWFnaWMsREM9bG9jYWw/Y2VydGlmaWNhdGVSZXZvY2F0aW9u +TGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50hjhodHRw +Oi8vcGhvZW5peC53aW5tYWdpYy5sb2NhbC9DZXJ0RW5yb2xsL1dpbm1hZ2ljKDIp +LmNybDASBgkrBgEEAYI3FQEEBQIDAgADMCMGCSsGAQQBgjcVAgQWBBTfQQ5WrWMR +W78vkWh2niDT3V97rDANBgkqhkiG9w0BAQsFAAOCAQEAiLpLtnaE0AbIiSmmj4EL +RTRMGuedxd6ZTY2yUi1QNswaI2OFnh/NDWLWOgF36HOvDELXBYZM6+AsPiVHU72s +vlYj7Y5HzZvoUkM3dvbxr6U2BJ89JEETRIWqUlYOq47Be84OR2XvmniUuJrFOzsA +YctrZX2TFX3AbVPs4LSTNc0da0uq0CqoOSOICfzz1X7uf7Tw9O0KcKerFgzeUcmG +tKv5oK7RY9WkDxdi22Ry0GEb60tnav7qk9ja45WBjN10xuNpNslCalRnNYOGVtY1 +m4oy2g+1xd1b0vxg0xJsW4k2ovTdZQS5HCkme05M5Ly0SFSVG/RHxMs6Ix43CctC +IQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/winmagic_fido_eazy_software.pem b/restricted/WebAuthn/rootCertificates/mds/winmagic_fido_eazy_software.pem new file mode 100644 index 0000000..23babaf --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/winmagic_fido_eazy_software.pem @@ -0,0 +1,31 @@ +WinMagic FIDO Eazy - Software +----------------------------- + +-----BEGIN CERTIFICATE----- +MIIErTCCA5WgAwIBAgIQRTfcgo6xwIFGfmtzk1BSnTANBgkqhkiG9w0BAQsFADBE +MRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxGDAWBgoJkiaJk/IsZAEZFgh3aW5tYWdp +YzERMA8GA1UEAxMIV2lubWFnaWMwHhcNMDgxMTI0MTgzNDQ5WhcNMjgwNzEzMTcz +MjM3WjBEMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxGDAWBgoJkiaJk/IsZAEZFgh3 +aW5tYWdpYzERMA8GA1UEAxMIV2lubWFnaWMwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDQCkmQ/K8Dn39qSCW5tKLvvDLH3ClScgQrDg7+uY44jHlIY1/L +l6v2rpj7nlmVMlIzogd3yXjCFBvGr4ziGQ2Qc8UpkaU96EZxEtHwZStw6YQ0jdng +kSLPvOp8T8YiJpcvsVtQtiQ0OsTTuiO2Ei4LuLh7KR+8x4bARvzkBWstNBTqVSAZ +QYesqnl8H5Sfwb3Iou8LSiAsuOXyxt2ms911YrxWvh/KnOel3Od3h+K5dQYP53+f +PUzgz56TTj8R4Y6zRuzdkbnR6xWXdrK414iX9D6x5q8W2XJJpTMK7EnSXG0q7XF7 +p68jDKAnxAF8kfh3uinc2ulmVOZbTRzxF8B3AgMBAAGjggGZMIIBlTATBgkrBgEE +AYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUjMsTbY0wXQBR29bWHIvbFfUAFfUwggEGBgNVHR8Egf4wgfswgfiggfWg +gfKGgbVsZGFwOi8vL0NOPVdpbm1hZ2ljKDIpLENOPXBob2VuaXgsQ049Q0RQLENO +PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy +YXRpb24sREM9d2lubWFnaWMsREM9bG9jYWw/Y2VydGlmaWNhdGVSZXZvY2F0aW9u +TGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50hjhodHRw +Oi8vcGhvZW5peC53aW5tYWdpYy5sb2NhbC9DZXJ0RW5yb2xsL1dpbm1hZ2ljKDIp +LmNybDASBgkrBgEEAYI3FQEEBQIDAgADMCMGCSsGAQQBgjcVAgQWBBTfQQ5WrWMR +W78vkWh2niDT3V97rDANBgkqhkiG9w0BAQsFAAOCAQEAiLpLtnaE0AbIiSmmj4EL +RTRMGuedxd6ZTY2yUi1QNswaI2OFnh/NDWLWOgF36HOvDELXBYZM6+AsPiVHU72s +vlYj7Y5HzZvoUkM3dvbxr6U2BJ89JEETRIWqUlYOq47Be84OR2XvmniUuJrFOzsA +YctrZX2TFX3AbVPs4LSTNc0da0uq0CqoOSOICfzz1X7uf7Tw9O0KcKerFgzeUcmG +tKv5oK7RY9WkDxdi22Ry0GEb60tnav7qk9ja45WBjN10xuNpNslCalRnNYOGVtY1 +m4oy2g+1xd1b0vxg0xJsW4k2ovTdZQS5HCkme05M5Ly0SFSVG/RHxMs6Ix43CctC +IQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/winmagic_fido_eazy_tpm.pem b/restricted/WebAuthn/rootCertificates/mds/winmagic_fido_eazy_tpm.pem new file mode 100644 index 0000000..44d8757 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/winmagic_fido_eazy_tpm.pem @@ -0,0 +1,31 @@ +WinMagic FIDO Eazy - TPM +------------------------ + +-----BEGIN CERTIFICATE----- +MIIErTCCA5WgAwIBAgIQRTfcgo6xwIFGfmtzk1BSnTANBgkqhkiG9w0BAQsFADBE +MRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxGDAWBgoJkiaJk/IsZAEZFgh3aW5tYWdp +YzERMA8GA1UEAxMIV2lubWFnaWMwHhcNMDgxMTI0MTgzNDQ5WhcNMjgwNzEzMTcz +MjM3WjBEMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxGDAWBgoJkiaJk/IsZAEZFgh3 +aW5tYWdpYzERMA8GA1UEAxMIV2lubWFnaWMwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDQCkmQ/K8Dn39qSCW5tKLvvDLH3ClScgQrDg7+uY44jHlIY1/L +l6v2rpj7nlmVMlIzogd3yXjCFBvGr4ziGQ2Qc8UpkaU96EZxEtHwZStw6YQ0jdng +kSLPvOp8T8YiJpcvsVtQtiQ0OsTTuiO2Ei4LuLh7KR+8x4bARvzkBWstNBTqVSAZ +QYesqnl8H5Sfwb3Iou8LSiAsuOXyxt2ms911YrxWvh/KnOel3Od3h+K5dQYP53+f +PUzgz56TTj8R4Y6zRuzdkbnR6xWXdrK414iX9D6x5q8W2XJJpTMK7EnSXG0q7XF7 +p68jDKAnxAF8kfh3uinc2ulmVOZbTRzxF8B3AgMBAAGjggGZMIIBlTATBgkrBgEE +AYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUjMsTbY0wXQBR29bWHIvbFfUAFfUwggEGBgNVHR8Egf4wgfswgfiggfWg +gfKGgbVsZGFwOi8vL0NOPVdpbm1hZ2ljKDIpLENOPXBob2VuaXgsQ049Q0RQLENO +PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy +YXRpb24sREM9d2lubWFnaWMsREM9bG9jYWw/Y2VydGlmaWNhdGVSZXZvY2F0aW9u +TGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50hjhodHRw +Oi8vcGhvZW5peC53aW5tYWdpYy5sb2NhbC9DZXJ0RW5yb2xsL1dpbm1hZ2ljKDIp +LmNybDASBgkrBgEEAYI3FQEEBQIDAgADMCMGCSsGAQQBgjcVAgQWBBTfQQ5WrWMR +W78vkWh2niDT3V97rDANBgkqhkiG9w0BAQsFAAOCAQEAiLpLtnaE0AbIiSmmj4EL +RTRMGuedxd6ZTY2yUi1QNswaI2OFnh/NDWLWOgF36HOvDELXBYZM6+AsPiVHU72s +vlYj7Y5HzZvoUkM3dvbxr6U2BJ89JEETRIWqUlYOq47Be84OR2XvmniUuJrFOzsA +YctrZX2TFX3AbVPs4LSTNc0da0uq0CqoOSOICfzz1X7uf7Tw9O0KcKerFgzeUcmG +tKv5oK7RY9WkDxdi22Ry0GEb60tnav7qk9ja45WBjN10xuNpNslCalRnNYOGVtY1 +m4oy2g+1xd1b0vxg0xJsW4k2ovTdZQS5HCkme05M5Ly0SFSVG/RHxMs6Ix43CctC +IQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/wisecure_authtron_usb_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/wisecure_authtron_usb_fido2_authenticator.pem new file mode 100644 index 0000000..3341b00 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/wisecure_authtron_usb_fido2_authenticator.pem @@ -0,0 +1,58 @@ +WiSECURE AuthTron USB FIDO2 Authenticator +----------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDRjCCAu2gAwIBAgIUZPhSDtxI5lg2qgy+7IGDJhGqPOgwCgYIKoZIzj0EAwIw +gYcxCzAJBgNVBAYTAlRXMQ8wDQYDVQQIDAZUYWlwZWkxEjAQBgNVBAcMCVNvbWV3 +aGVyZTEWMBQGA1UECgwNV2lTRUNVUkUgSW5jLjEgMB4GCSqGSIb3DQEJARYRYWRt +aW5AZXhhbXBsZS5vcmcxGTAXBgNVBAMMEFdpU0VDVVJFIFJvb3QgQ0EwHhcNMjEw +MTI4MDgyNzIwWhcNMzEwMTI2MDgyNzIwWjCBhzELMAkGA1UEBhMCVFcxDzANBgNV +BAgMBlRhaXBlaTESMBAGA1UEBwwJU29tZXdoZXJlMRYwFAYDVQQKDA1XaVNFQ1VS +RSBJbmMuMSAwHgYJKoZIhvcNAQkBFhFhZG1pbkBleGFtcGxlLm9yZzEZMBcGA1UE +AwwQV2lTRUNVUkUgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBiW +vFaf/IhFMOWNqlweqr4GfO0mu/1B18J03OG+pSltRix9GjRojBya4LARyXMP8nw2 +Xh9PvwOBm9QedMC66XGjggEzMIIBLzAdBgNVHQ4EFgQUd+Yvj6I3Y8cKH3QRNLlC +8/Op97cwgccGA1UdIwSBvzCBvIAUd+Yvj6I3Y8cKH3QRNLlC8/Op97ehgY2kgYow +gYcxCzAJBgNVBAYTAlRXMQ8wDQYDVQQIDAZUYWlwZWkxEjAQBgNVBAcMCVNvbWV3 +aGVyZTEWMBQGA1UECgwNV2lTRUNVUkUgSW5jLjEgMB4GCSqGSIb3DQEJARYRYWRt +aW5AZXhhbXBsZS5vcmcxGTAXBgNVBAMMEFdpU0VDVVJFIFJvb3QgQ0GCFGT4Ug7c +SOZYNqoMvuyBgyYRqjzoMAwGA1UdEwEB/wQCMAAwNgYDVR0fBC8wLTAroCmgJ4Yl +aHR0cDovL3d3dy5leGFtcGxlLm9yZy9leGFtcGxlX2NhLmNybDAKBggqhkjOPQQD +AgNHADBEAiBf3p8LJ3PlfMsxTzWgjHaal6uzIo5tx3o+EUybdDY4ogIgV6nR1MUE +1wKz1uC7/kENg/FpJOetFaJePcgoneEwsKA= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIICMzCCAdmgAwIBAgIUbarV8PqC9Ink1dkoDXuO5zhP82gwCgYIKoZIzj0EAwIw +eDELMAkGA1UEBhMCVFcxKjAoBgNVBAoMIVdpU0VDVVJFIFRlY2hub2xvZ2llcyBD +b3Jwb3JhdGlvbjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjEZ +MBcGA1UEAwwQV2lTRUNVUkUgUm9vdCBDQTAgFw0yMjAzMjMwNDAyNTdaGA8yMDUy +MDMxNTA0MDI1N1oweDELMAkGA1UEBhMCVFcxKjAoBgNVBAoMIVdpU0VDVVJFIFRl +Y2hub2xvZ2llcyBDb3Jwb3JhdGlvbjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBB +dHRlc3RhdGlvbjEZMBcGA1UEAwwQV2lTRUNVUkUgUm9vdCBDQTBZMBMGByqGSM49 +AgEGCCqGSM49AwEHA0IABPNWLKAGOUfRpBOHEfjdLrWP6sHkFTEPOxUdOzu5+SVA +R4KqNotvwlt8ZTLFy6tCV/9Cq1fQEJcblpAG3M2v+pajPzA9MB0GA1UdDgQWBBRM +rpz/UoomExFISh6aKZQG27JbjjAMBgNVHRMEBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAKBggqhkjOPQQDAgNIADBFAiAeIHEirCVCuOya6h/raH4OZZbqu9434ZUGYBGQ +tgDTnQIhAOylA3z6KCwGLnbFBwiKDwjch0jEuzNgvdhLtyhnEmRJ +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDEjCCAregAwIBAgIULKLBSVwDq9it3p+0yvyCPk2FFLowCgYIKoZIzj0EAwIw +djELMAkGA1UEBhMCVFcxDzANBgNVBAgMBlRhaXBlaTEPMA0GA1UEBwwGVGFpd2Fu +MSowKAYDVQQKDCFXaVNFQ1VSRSBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24xGTAX +BgNVBAMMEFdpU0VDVVJFIFJvb3QgQ0EwIBcNMjEwNDA3MTExNjA0WhgPMjA3MTAz +MjYxMTE2MDRaMHYxCzAJBgNVBAYTAlRXMQ8wDQYDVQQIDAZUYWlwZWkxDzANBgNV +BAcMBlRhaXdhbjEqMCgGA1UECgwhV2lTRUNVUkUgVGVjaG5vbG9naWVzIENvcnBv +cmF0aW9uMRkwFwYDVQQDDBBXaVNFQ1VSRSBSb290IENBMFkwEwYHKoZIzj0CAQYI +KoZIzj0DAQcDQgAEEHUewPpWbxQrKB7zlImGtSF01mKHJQ2f4aiJvUUJtCgm+LMJ +HmBc0IMeFVM0HbNMspXucUQ93fcKjBy18vEAgqOCAR8wggEbMB0GA1UdDgQWBBTH +wzcJ3XoRc373Y7NXIsa2IepkezCBswYDVR0jBIGrMIGogBTHwzcJ3XoRc373Y7NX +Isa2Iepke6F6pHgwdjELMAkGA1UEBhMCVFcxDzANBgNVBAgMBlRhaXBlaTEPMA0G +A1UEBwwGVGFpd2FuMSowKAYDVQQKDCFXaVNFQ1VSRSBUZWNobm9sb2dpZXMgQ29y +cG9yYXRpb24xGTAXBgNVBAMMEFdpU0VDVVJFIFJvb3QgQ0GCFCyiwUlcA6vYrd6f +tMr8gj5NhRS6MAwGA1UdEwEB/wQCMAAwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDov +L3d3dy5leGFtcGxlLm9yZy9leGFtcGxlX2NhLmNybDAKBggqhkjOPQQDAgNJADBG +AiEAvxC+FrpGIHL7Wp9u5d5PtyEaOxSZMZeUNcc7vk23Ra8CIQDubOy5KCnkyVfH +r+OrPfN+8IsDjTi7rGSWWih9B2Y/ZQ== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/wisecure_blentity_fido2_authenticator.pem b/restricted/WebAuthn/rootCertificates/mds/wisecure_blentity_fido2_authenticator.pem new file mode 100644 index 0000000..ed574ca --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/wisecure_blentity_fido2_authenticator.pem @@ -0,0 +1,17 @@ +WiSECURE Blentity FIDO2 Authenticator +------------------------------------- + +-----BEGIN CERTIFICATE----- +MIICMzCCAdmgAwIBAgIUbarV8PqC9Ink1dkoDXuO5zhP82gwCgYIKoZIzj0EAwIw +eDELMAkGA1UEBhMCVFcxKjAoBgNVBAoMIVdpU0VDVVJFIFRlY2hub2xvZ2llcyBD +b3Jwb3JhdGlvbjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjEZ +MBcGA1UEAwwQV2lTRUNVUkUgUm9vdCBDQTAgFw0yMjAzMjMwNDAyNTdaGA8yMDUy +MDMxNTA0MDI1N1oweDELMAkGA1UEBhMCVFcxKjAoBgNVBAoMIVdpU0VDVVJFIFRl +Y2hub2xvZ2llcyBDb3Jwb3JhdGlvbjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBB +dHRlc3RhdGlvbjEZMBcGA1UEAwwQV2lTRUNVUkUgUm9vdCBDQTBZMBMGByqGSM49 +AgEGCCqGSM49AwEHA0IABPNWLKAGOUfRpBOHEfjdLrWP6sHkFTEPOxUdOzu5+SVA +R4KqNotvwlt8ZTLFy6tCV/9Cq1fQEJcblpAG3M2v+pajPzA9MB0GA1UdDgQWBBRM +rpz/UoomExFISh6aKZQG27JbjjAMBgNVHRMEBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAKBggqhkjOPQQDAgNIADBFAiAeIHEirCVCuOya6h/raH4OZZbqu9434ZUGYBGQ +tgDTnQIhAOylA3z6KCwGLnbFBwiKDwjch0jEuzNgvdhLtyhnEmRJ +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yk4_series_key_by_yubico.pem b/restricted/WebAuthn/rootCertificates/mds/yk4_series_key_by_yubico.pem new file mode 100644 index 0000000..8d195ac --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yk4_series_key_by_yubico.pem @@ -0,0 +1,22 @@ +YK4 Series Key by Yubico +------------------------ + +-----BEGIN CERTIFICATE----- +MIIDHjCCAgagAwIBAgIEG0BT9zANBgkqhkiG9w0BAQsFADAuMSwwKgYDVQQDEyNZ +dWJpY28gVTJGIFJvb3QgQ0EgU2VyaWFsIDQ1NzIwMDYzMTAgFw0xNDA4MDEwMDAw +MDBaGA8yMDUwMDkwNDAwMDAwMFowLjEsMCoGA1UEAxMjWXViaWNvIFUyRiBSb290 +IENBIFNlcmlhbCA0NTcyMDA2MzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC/jwYuhBVlqaiYWEMsrWFisgJ+PtM91eSrpI4TK7U53mwCIawSDHy8vUmk +5N2KAj9abvT9NP5SMS1hQi3usxoYGonXQgfO6ZXyUA9a+KAkqdFnBnlyugSeCOep +8EdZFfsaRFtMjkwz5Gcz2Py4vIYvCdMHPtwaz0bVuzneueIEz6TnQjE63Rdt2zbw +nebwTG5ZybeWSwbzy+BJ34ZHcUhPAY89yJQXuE0IzMZFcEBbPNRbWECRKgjq//qT +9nmDOFVlSRCt2wiqPSzluwn+v+suQEBsUjTGMEd25tKXXTkNW21wIWbxeSyUoTXw +LvGS6xlwQSgNpk2qXYwf8iXg7VWZAgMBAAGjQjBAMB0GA1UdDgQWBBQgIvz0bNGJ +hjgpToksyKpP9xv9oDAPBgNVHRMECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAN +BgkqhkiG9w0BAQsFAAOCAQEAjvjuOMDSa+JXFCLyBKsycXtBVZsJ4Ue3LbaEsPY4 +MYN/hIQ5ZM5p7EjfcnMG4CtYkNsfNHc0AhBLdq45rnT87q/6O3vUEtNMafbhU6kt +hX7Y+9XFN9NpmYxr+ekVY5xOxi8h9JDIgoMP4VB1uS0aunL1IGqrNooL9mmFnL2k +LVVee6/VR6C5+KSTCMCWppMuJIZII2v9o4dkoZ8Y7QRjQlLfYzd3qGtKbw7xaF1U +sG/5xUb/Btwb2X2g4InpiB/yt/3CpQXpiWX/K4mBvUKiGn05ZsqeY1gx4g0xLBqc +U9psmyPzK+Vsgw2jeRQ5JlKDyqE0hebfC1tvFu0CCrJFcw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_ccn_series_with_nfc.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_ccn_series_with_nfc.pem new file mode 100644 index 0000000..c80f83d --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_ccn_series_with_nfc.pem @@ -0,0 +1,107 @@ +YubiKey 5 CCN Series with NFC +----------------------------- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_ccn_series_with_nfc_enterprise_profile.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_ccn_series_with_nfc_enterprise_profile.pem new file mode 100644 index 0000000..97eee91 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_ccn_series_with_nfc_enterprise_profile.pem @@ -0,0 +1,107 @@ +YubiKey 5 CCN Series with NFC (Enterprise Profile) +-------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series.pem new file mode 100644 index 0000000..4d94dbf --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series.pem @@ -0,0 +1,107 @@ +YubiKey 5 FIPS Series +--------------------- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_enterprise_profile.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_enterprise_profile.pem new file mode 100644 index 0000000..3da1e39 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_enterprise_profile.pem @@ -0,0 +1,107 @@ +YubiKey 5 FIPS Series (Enterprise Profile) +------------------------------------------ + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_rc_preview.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_rc_preview.pem new file mode 100644 index 0000000..9e42bd6 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_rc_preview.pem @@ -0,0 +1,23 @@ +YubiKey 5 FIPS Series (RC Preview) +---------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDMzCCAhugAwIBAgIUSOEjTf//yqRfPW7Qq8qtIyCrAg8wDQYJKoZIhvcNAQEL +BQAwLzEtMCsGA1UEAwwkWXViaWNvIEZJRE8gUm9vdCBDQSBTZXJpYWwgNDUwMjAz +NTU2MCAXDTI0MDUwMTAwMDAwMFoYDzIwNjAwNDMwMDAwMDAwWjAvMS0wKwYDVQQD +DCRZdWJpY28gRklETyBSb290IENBIFNlcmlhbCA0NTAyMDM1NTYwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdvl27w2gu1fPXeEFbIdqx0BalvVDVWrQP +J7HqviuEtZHlxSLxSFtcXpTolvLvof8f4tMerQTkVGzcmYzm1EBT4IJuMmoEqfkE +EhWpsADMFrjZkqlZY9EqxQzLoVEEonE5oGxSdVCxCcLIackpyR/CCXvj1Bt/hTgE +9hTlF4pRqxMkx3plF7y8dDZlRHWs7vbnhmBCGeI0ZPEQ6nl2mCg2r74adF2u6K9r +rLfhBC3QLE8EPrgqUsI+hkuq2tK4M2SMOp8uUVVkqUeu3h0kr3WVI0W02pkgrOgi +FKLFNkSrbYhdjMBDj5izmqfc9xJRKoDX612qd8ZGVHpT5AYFX+1hAgMBAAGjRTBD +MB0GA1UdDgQWBBTZyU5DiQ/a2UEgE7qBK0zhIsRNRjASBgNVHRMBAf8ECDAGAQH/ +AgEAMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAXvnB4SLuUJfY +MSVGAhssL/SmWli3FSccgxydvKlACcidIIWKQqa3q/QSUEQzC9DgEfMgr7iC1BkT +ZbILboV6UZ5knNsvjEZWuMeogJ8tgZs1hVvKwZizwJ+mEcmsjhIrBYuoL1T6yrOJ +vKFg1jv+Cy4ZwA9Bpk/V3UOir1VyK8dCtyHu6vfosotAdYx8FAuR243gRTMV6Jx8 +Jdig2JDIAQMlzVeDpSUHX/K2HXRHxHwfgjbgUjjBu/72r8OfehyhzHXI3K8CFFdf +lO+8nEOJK3y8F1ivgS5uN/8SmcYw/STQYwhrxPuwz3nP8baMum4BB2nnYmpB60sX +3bl5k8QUSw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_lightning.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_lightning.pem new file mode 100644 index 0000000..c6e66e6 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_lightning.pem @@ -0,0 +1,107 @@ +YubiKey 5 FIPS Series with Lightning +------------------------------------ + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_lightning_enterprise_profile.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_lightning_enterprise_profile.pem new file mode 100644 index 0000000..ba59035 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_lightning_enterprise_profile.pem @@ -0,0 +1,107 @@ +YubiKey 5 FIPS Series with Lightning (Enterprise Profile) +--------------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_lightning_preview.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_lightning_preview.pem new file mode 100644 index 0000000..75253de --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_lightning_preview.pem @@ -0,0 +1,22 @@ +YubiKey 5 FIPS Series with Lightning Preview +-------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDKjCCAhKgAwIBAgIUef+VvHkcTQnED++wJM/IxzSULk0wDQYJKoZIhvcNAQEL +BQAwJjEkMCIGA1UEAwwbWXViaWNvIDIwMjMgRklETyBQcmV2aWV3IENBMB4XDTIz +MDkyNTExMzI0MVoXDTI0MTIzMTExMzI0MVowJjEkMCIGA1UEAwwbWXViaWNvIDIw +MjMgRklETyBQcmV2aWV3IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAouFMTOKaE0YtexOoisSxp+Ebi5IA4esEScx16lzQdqV6/eZ82KtJeNXEuNkB +VZDpc32gStuxLBH8mgsoHBFai2DkjfBn5qbwR/c5+snlwZvjgVA0hzKw9CwAeAwR +D5krWt88/CVyCkMcgLSGwZs/rj7F/Ls3Ebg7MqLbbQJ9CozbbLdJUYIHcPpSZPto +MrZb4Gvni6iVS9UvCKgpqc6LGRmoYGG4ZR3lGJ/XQZfu+GeJW67iimMj/yoXOwxu +cxivZHFk6cQSgwuwioeNm4wvk83LhSuWctf2kAyQcZ7kUnpNee+d4MgrmGU4XMFL +iTgutaB+e9V8d5JTkUOHiLztkQIDAQABo1AwTjAdBgNVHQ4EFgQUM5SB5bHrV+jp +IOMdJl7u7bcnTY8wHwYDVR0jBBgwFoAUM5SB5bHrV+jpIOMdJl7u7bcnTY8wDAYD +VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEACowR3KTLfidJyQFNqEFfUrfZ +9aa9egpOQtNRJdLStJ6xu2WfLwvG4ojGJlBKNnfa5DIcyQYf/8qJ4eliAVeNXuYm +eMmgNgZZyuY6G1yWCD2V3sD6Z4uj3SbaDOHj3gHvszgQhrhT1h/puHQkn6+hYKAp +77kM7Ic6AZ/RFbjpmLLk2D0sE1lzT/02i+Bh7M8smaiDZ9++JGzxeSun8W1HleZU +m2qKGmRa4XPdryT7x6KGUGnU4a3bpUmVeY9rQ/sfMd5ZToo+3unFWDzoVV2vNu8+ ++VLC9zo40FaKQLr9VAJDJ4yLENR7KrmV8L0cCXKJGZWAWtG5RGTmHIhd+nB41g== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_lightning_rc_preview.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_lightning_rc_preview.pem new file mode 100644 index 0000000..c36e43d --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_lightning_rc_preview.pem @@ -0,0 +1,23 @@ +YubiKey 5 FIPS Series with Lightning (RC Preview) +------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDMzCCAhugAwIBAgIUSOEjTf//yqRfPW7Qq8qtIyCrAg8wDQYJKoZIhvcNAQEL +BQAwLzEtMCsGA1UEAwwkWXViaWNvIEZJRE8gUm9vdCBDQSBTZXJpYWwgNDUwMjAz +NTU2MCAXDTI0MDUwMTAwMDAwMFoYDzIwNjAwNDMwMDAwMDAwWjAvMS0wKwYDVQQD +DCRZdWJpY28gRklETyBSb290IENBIFNlcmlhbCA0NTAyMDM1NTYwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdvl27w2gu1fPXeEFbIdqx0BalvVDVWrQP +J7HqviuEtZHlxSLxSFtcXpTolvLvof8f4tMerQTkVGzcmYzm1EBT4IJuMmoEqfkE +EhWpsADMFrjZkqlZY9EqxQzLoVEEonE5oGxSdVCxCcLIackpyR/CCXvj1Bt/hTgE +9hTlF4pRqxMkx3plF7y8dDZlRHWs7vbnhmBCGeI0ZPEQ6nl2mCg2r74adF2u6K9r +rLfhBC3QLE8EPrgqUsI+hkuq2tK4M2SMOp8uUVVkqUeu3h0kr3WVI0W02pkgrOgi +FKLFNkSrbYhdjMBDj5izmqfc9xJRKoDX612qd8ZGVHpT5AYFX+1hAgMBAAGjRTBD +MB0GA1UdDgQWBBTZyU5DiQ/a2UEgE7qBK0zhIsRNRjASBgNVHRMBAf8ECDAGAQH/ +AgEAMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAXvnB4SLuUJfY +MSVGAhssL/SmWli3FSccgxydvKlACcidIIWKQqa3q/QSUEQzC9DgEfMgr7iC1BkT +ZbILboV6UZ5knNsvjEZWuMeogJ8tgZs1hVvKwZizwJ+mEcmsjhIrBYuoL1T6yrOJ +vKFg1jv+Cy4ZwA9Bpk/V3UOir1VyK8dCtyHu6vfosotAdYx8FAuR243gRTMV6Jx8 +Jdig2JDIAQMlzVeDpSUHX/K2HXRHxHwfgjbgUjjBu/72r8OfehyhzHXI3K8CFFdf +lO+8nEOJK3y8F1ivgS5uN/8SmcYw/STQYwhrxPuwz3nP8baMum4BB2nnYmpB60sX +3bl5k8QUSw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_nfc.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_nfc.pem new file mode 100644 index 0000000..619e2a2 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_nfc.pem @@ -0,0 +1,22 @@ +YubiKey 5 FIPS Series with NFC +------------------------------ + +-----BEGIN CERTIFICATE----- +MIIDHjCCAgagAwIBAgIEG0BT9zANBgkqhkiG9w0BAQsFADAuMSwwKgYDVQQDEyNZ +dWJpY28gVTJGIFJvb3QgQ0EgU2VyaWFsIDQ1NzIwMDYzMTAgFw0xNDA4MDEwMDAw +MDBaGA8yMDUwMDkwNDAwMDAwMFowLjEsMCoGA1UEAxMjWXViaWNvIFUyRiBSb290 +IENBIFNlcmlhbCA0NTcyMDA2MzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC/jwYuhBVlqaiYWEMsrWFisgJ+PtM91eSrpI4TK7U53mwCIawSDHy8vUmk +5N2KAj9abvT9NP5SMS1hQi3usxoYGonXQgfO6ZXyUA9a+KAkqdFnBnlyugSeCOep +8EdZFfsaRFtMjkwz5Gcz2Py4vIYvCdMHPtwaz0bVuzneueIEz6TnQjE63Rdt2zbw +nebwTG5ZybeWSwbzy+BJ34ZHcUhPAY89yJQXuE0IzMZFcEBbPNRbWECRKgjq//qT +9nmDOFVlSRCt2wiqPSzluwn+v+suQEBsUjTGMEd25tKXXTkNW21wIWbxeSyUoTXw +LvGS6xlwQSgNpk2qXYwf8iXg7VWZAgMBAAGjQjBAMB0GA1UdDgQWBBQgIvz0bNGJ +hjgpToksyKpP9xv9oDAPBgNVHRMECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAN +BgkqhkiG9w0BAQsFAAOCAQEAjvjuOMDSa+JXFCLyBKsycXtBVZsJ4Ue3LbaEsPY4 +MYN/hIQ5ZM5p7EjfcnMG4CtYkNsfNHc0AhBLdq45rnT87q/6O3vUEtNMafbhU6kt +hX7Y+9XFN9NpmYxr+ekVY5xOxi8h9JDIgoMP4VB1uS0aunL1IGqrNooL9mmFnL2k +LVVee6/VR6C5+KSTCMCWppMuJIZII2v9o4dkoZ8Y7QRjQlLfYzd3qGtKbw7xaF1U +sG/5xUb/Btwb2X2g4InpiB/yt/3CpQXpiWX/K4mBvUKiGn05ZsqeY1gx4g0xLBqc +U9psmyPzK+Vsgw2jeRQ5JlKDyqE0hebfC1tvFu0CCrJFcw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_nfc_enterprise_profile.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_nfc_enterprise_profile.pem new file mode 100644 index 0000000..6e46234 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_nfc_enterprise_profile.pem @@ -0,0 +1,107 @@ +YubiKey 5 FIPS Series with NFC (Enterprise Profile) +--------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_nfc_preview.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_nfc_preview.pem new file mode 100644 index 0000000..d7bf2b4 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_nfc_preview.pem @@ -0,0 +1,22 @@ +YubiKey 5 FIPS Series with NFC Preview +-------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDKjCCAhKgAwIBAgIUef+VvHkcTQnED++wJM/IxzSULk0wDQYJKoZIhvcNAQEL +BQAwJjEkMCIGA1UEAwwbWXViaWNvIDIwMjMgRklETyBQcmV2aWV3IENBMB4XDTIz +MDkyNTExMzI0MVoXDTI0MTIzMTExMzI0MVowJjEkMCIGA1UEAwwbWXViaWNvIDIw +MjMgRklETyBQcmV2aWV3IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAouFMTOKaE0YtexOoisSxp+Ebi5IA4esEScx16lzQdqV6/eZ82KtJeNXEuNkB +VZDpc32gStuxLBH8mgsoHBFai2DkjfBn5qbwR/c5+snlwZvjgVA0hzKw9CwAeAwR +D5krWt88/CVyCkMcgLSGwZs/rj7F/Ls3Ebg7MqLbbQJ9CozbbLdJUYIHcPpSZPto +MrZb4Gvni6iVS9UvCKgpqc6LGRmoYGG4ZR3lGJ/XQZfu+GeJW67iimMj/yoXOwxu +cxivZHFk6cQSgwuwioeNm4wvk83LhSuWctf2kAyQcZ7kUnpNee+d4MgrmGU4XMFL +iTgutaB+e9V8d5JTkUOHiLztkQIDAQABo1AwTjAdBgNVHQ4EFgQUM5SB5bHrV+jp +IOMdJl7u7bcnTY8wHwYDVR0jBBgwFoAUM5SB5bHrV+jpIOMdJl7u7bcnTY8wDAYD +VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEACowR3KTLfidJyQFNqEFfUrfZ +9aa9egpOQtNRJdLStJ6xu2WfLwvG4ojGJlBKNnfa5DIcyQYf/8qJ4eliAVeNXuYm +eMmgNgZZyuY6G1yWCD2V3sD6Z4uj3SbaDOHj3gHvszgQhrhT1h/puHQkn6+hYKAp +77kM7Ic6AZ/RFbjpmLLk2D0sE1lzT/02i+Bh7M8smaiDZ9++JGzxeSun8W1HleZU +m2qKGmRa4XPdryT7x6KGUGnU4a3bpUmVeY9rQ/sfMd5ZToo+3unFWDzoVV2vNu8+ ++VLC9zo40FaKQLr9VAJDJ4yLENR7KrmV8L0cCXKJGZWAWtG5RGTmHIhd+nB41g== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_nfc_rc_preview.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_nfc_rc_preview.pem new file mode 100644 index 0000000..9485859 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_fips_series_with_nfc_rc_preview.pem @@ -0,0 +1,23 @@ +YubiKey 5 FIPS Series with NFC (RC Preview) +------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDMzCCAhugAwIBAgIUSOEjTf//yqRfPW7Qq8qtIyCrAg8wDQYJKoZIhvcNAQEL +BQAwLzEtMCsGA1UEAwwkWXViaWNvIEZJRE8gUm9vdCBDQSBTZXJpYWwgNDUwMjAz +NTU2MCAXDTI0MDUwMTAwMDAwMFoYDzIwNjAwNDMwMDAwMDAwWjAvMS0wKwYDVQQD +DCRZdWJpY28gRklETyBSb290IENBIFNlcmlhbCA0NTAyMDM1NTYwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdvl27w2gu1fPXeEFbIdqx0BalvVDVWrQP +J7HqviuEtZHlxSLxSFtcXpTolvLvof8f4tMerQTkVGzcmYzm1EBT4IJuMmoEqfkE +EhWpsADMFrjZkqlZY9EqxQzLoVEEonE5oGxSdVCxCcLIackpyR/CCXvj1Bt/hTgE +9hTlF4pRqxMkx3plF7y8dDZlRHWs7vbnhmBCGeI0ZPEQ6nl2mCg2r74adF2u6K9r +rLfhBC3QLE8EPrgqUsI+hkuq2tK4M2SMOp8uUVVkqUeu3h0kr3WVI0W02pkgrOgi +FKLFNkSrbYhdjMBDj5izmqfc9xJRKoDX612qd8ZGVHpT5AYFX+1hAgMBAAGjRTBD +MB0GA1UdDgQWBBTZyU5DiQ/a2UEgE7qBK0zhIsRNRjASBgNVHRMBAf8ECDAGAQH/ +AgEAMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAXvnB4SLuUJfY +MSVGAhssL/SmWli3FSccgxydvKlACcidIIWKQqa3q/QSUEQzC9DgEfMgr7iC1BkT +ZbILboV6UZ5knNsvjEZWuMeogJ8tgZs1hVvKwZizwJ+mEcmsjhIrBYuoL1T6yrOJ +vKFg1jv+Cy4ZwA9Bpk/V3UOir1VyK8dCtyHu6vfosotAdYx8FAuR243gRTMV6Jx8 +Jdig2JDIAQMlzVeDpSUHX/K2HXRHxHwfgjbgUjjBu/72r8OfehyhzHXI3K8CFFdf +lO+8nEOJK3y8F1ivgS5uN/8SmcYw/STQYwhrxPuwz3nP8baMum4BB2nnYmpB60sX +3bl5k8QUSw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series.pem new file mode 100644 index 0000000..eb58b23 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series.pem @@ -0,0 +1,107 @@ +YubiKey 5 Series +---------------- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_enterprise_profile.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_enterprise_profile.pem new file mode 100644 index 0000000..8e79a4b --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_enterprise_profile.pem @@ -0,0 +1,23 @@ +YubiKey 5 Series (Enterprise Profile) +------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDMzCCAhugAwIBAgIUSOEjTf//yqRfPW7Qq8qtIyCrAg8wDQYJKoZIhvcNAQEL +BQAwLzEtMCsGA1UEAwwkWXViaWNvIEZJRE8gUm9vdCBDQSBTZXJpYWwgNDUwMjAz +NTU2MCAXDTI0MDUwMTAwMDAwMFoYDzIwNjAwNDMwMDAwMDAwWjAvMS0wKwYDVQQD +DCRZdWJpY28gRklETyBSb290IENBIFNlcmlhbCA0NTAyMDM1NTYwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdvl27w2gu1fPXeEFbIdqx0BalvVDVWrQP +J7HqviuEtZHlxSLxSFtcXpTolvLvof8f4tMerQTkVGzcmYzm1EBT4IJuMmoEqfkE +EhWpsADMFrjZkqlZY9EqxQzLoVEEonE5oGxSdVCxCcLIackpyR/CCXvj1Bt/hTgE +9hTlF4pRqxMkx3plF7y8dDZlRHWs7vbnhmBCGeI0ZPEQ6nl2mCg2r74adF2u6K9r +rLfhBC3QLE8EPrgqUsI+hkuq2tK4M2SMOp8uUVVkqUeu3h0kr3WVI0W02pkgrOgi +FKLFNkSrbYhdjMBDj5izmqfc9xJRKoDX612qd8ZGVHpT5AYFX+1hAgMBAAGjRTBD +MB0GA1UdDgQWBBTZyU5DiQ/a2UEgE7qBK0zhIsRNRjASBgNVHRMBAf8ECDAGAQH/ +AgEAMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAXvnB4SLuUJfY +MSVGAhssL/SmWli3FSccgxydvKlACcidIIWKQqa3q/QSUEQzC9DgEfMgr7iC1BkT +ZbILboV6UZ5knNsvjEZWuMeogJ8tgZs1hVvKwZizwJ+mEcmsjhIrBYuoL1T6yrOJ +vKFg1jv+Cy4ZwA9Bpk/V3UOir1VyK8dCtyHu6vfosotAdYx8FAuR243gRTMV6Jx8 +Jdig2JDIAQMlzVeDpSUHX/K2HXRHxHwfgjbgUjjBu/72r8OfehyhzHXI3K8CFFdf +lO+8nEOJK3y8F1ivgS5uN/8SmcYw/STQYwhrxPuwz3nP8baMum4BB2nnYmpB60sX +3bl5k8QUSw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_lightning.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_lightning.pem new file mode 100644 index 0000000..b52160f --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_lightning.pem @@ -0,0 +1,107 @@ +YubiKey 5 Series with Lightning +------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_lightning_enterprise_profile.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_lightning_enterprise_profile.pem new file mode 100644 index 0000000..fdf1240 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_lightning_enterprise_profile.pem @@ -0,0 +1,107 @@ +YubiKey 5 Series with Lightning (Enterprise Profile) +---------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_lightning_preview.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_lightning_preview.pem new file mode 100644 index 0000000..58e67bd --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_lightning_preview.pem @@ -0,0 +1,22 @@ +YubiKey 5 Series with Lightning Preview +--------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDKjCCAhKgAwIBAgIUef+VvHkcTQnED++wJM/IxzSULk0wDQYJKoZIhvcNAQEL +BQAwJjEkMCIGA1UEAwwbWXViaWNvIDIwMjMgRklETyBQcmV2aWV3IENBMB4XDTIz +MDkyNTExMzI0MVoXDTI0MTIzMTExMzI0MVowJjEkMCIGA1UEAwwbWXViaWNvIDIw +MjMgRklETyBQcmV2aWV3IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAouFMTOKaE0YtexOoisSxp+Ebi5IA4esEScx16lzQdqV6/eZ82KtJeNXEuNkB +VZDpc32gStuxLBH8mgsoHBFai2DkjfBn5qbwR/c5+snlwZvjgVA0hzKw9CwAeAwR +D5krWt88/CVyCkMcgLSGwZs/rj7F/Ls3Ebg7MqLbbQJ9CozbbLdJUYIHcPpSZPto +MrZb4Gvni6iVS9UvCKgpqc6LGRmoYGG4ZR3lGJ/XQZfu+GeJW67iimMj/yoXOwxu +cxivZHFk6cQSgwuwioeNm4wvk83LhSuWctf2kAyQcZ7kUnpNee+d4MgrmGU4XMFL +iTgutaB+e9V8d5JTkUOHiLztkQIDAQABo1AwTjAdBgNVHQ4EFgQUM5SB5bHrV+jp +IOMdJl7u7bcnTY8wHwYDVR0jBBgwFoAUM5SB5bHrV+jpIOMdJl7u7bcnTY8wDAYD +VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEACowR3KTLfidJyQFNqEFfUrfZ +9aa9egpOQtNRJdLStJ6xu2WfLwvG4ojGJlBKNnfa5DIcyQYf/8qJ4eliAVeNXuYm +eMmgNgZZyuY6G1yWCD2V3sD6Z4uj3SbaDOHj3gHvszgQhrhT1h/puHQkn6+hYKAp +77kM7Ic6AZ/RFbjpmLLk2D0sE1lzT/02i+Bh7M8smaiDZ9++JGzxeSun8W1HleZU +m2qKGmRa4XPdryT7x6KGUGnU4a3bpUmVeY9rQ/sfMd5ZToo+3unFWDzoVV2vNu8+ ++VLC9zo40FaKQLr9VAJDJ4yLENR7KrmV8L0cCXKJGZWAWtG5RGTmHIhd+nB41g== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc.pem new file mode 100644 index 0000000..0f8e6bb --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc.pem @@ -0,0 +1,107 @@ +YubiKey 5 Series with NFC +------------------------- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_enhanced_pin.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_enhanced_pin.pem new file mode 100644 index 0000000..84257ba --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_enhanced_pin.pem @@ -0,0 +1,107 @@ +YubiKey 5 Series with NFC - Enhanced PIN +---------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_enhanced_pin_enterprise_profile.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_enhanced_pin_enterprise_profile.pem new file mode 100644 index 0000000..eda89cb --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_enhanced_pin_enterprise_profile.pem @@ -0,0 +1,107 @@ +YubiKey 5 Series with NFC - Enhanced PIN (Enterprise Profile) +------------------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_enterprise_profile.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_enterprise_profile.pem new file mode 100644 index 0000000..f23d58d --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_enterprise_profile.pem @@ -0,0 +1,107 @@ +YubiKey 5 Series with NFC (Enterprise Profile) +---------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_kvzr57.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_kvzr57.pem new file mode 100644 index 0000000..20e50e9 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_kvzr57.pem @@ -0,0 +1,107 @@ +YubiKey 5 Series with NFC KVZR57 +-------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_preview.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_preview.pem new file mode 100644 index 0000000..4de992e --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_5_series_with_nfc_preview.pem @@ -0,0 +1,42 @@ +YubiKey 5 Series with NFC Preview +--------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDHzCCAgegAwIBAgIJANpqD52TOTusMA0GCSqGSIb3DQEBCwUAMCYxJDAiBgNV +BAMMG1l1YmljbyBGSURPIFByZXZpZXcgQ0EgMjAyMDAeFw0yMDA4MzExODE3MTFa +Fw0yMTEyMzExODE3MTFaMCYxJDAiBgNVBAMMG1l1YmljbyBGSURPIFByZXZpZXcg +Q0EgMjAyMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOGBLtBmUPJQ +ACQWVEeBxezRgZdqGMP6eTrPty8yvM9xA+j/X4g2lRNMF9a0jw3BjkWSsoWJjYTu +zevGMg2rb9M5qqd/OD498OAk6UEtMybr162CO2wB8Sn2nzfzUdbwZT4dxl251lfX +5JsZVTyJduhlJzbKGetL3JMmCApetSO0xccGSIV9GUoJm78KlQO6smSDAkRFxJ8P +g8bE449qiIqP/K10uReu66UCWdaoXCKqRd5ikbU+6igJFHZz94UBPrsglcY0Fq03 +nrBBvrpEzGnisB/43E9Itjr9ULV4PQQmiuWMcIPmFP1jTNgKKnXZsxe114B/zB3U +xhIB29rRopECAwEAAaNQME4wHQYDVR0OBBYEFALvouKDUnhjGxURR+M1K1mMiBt7 +MB8GA1UdIwQYMBaAFALvouKDUnhjGxURR+M1K1mMiBt7MAwGA1UdEwQFMAMBAf8w +DQYJKoZIhvcNAQELBQADggEBAEO48A+c+1Eac7ZYJvBs3jA40qVhEKeEy2i+JiAf +wuGzcfMUk/4oCZ5V5WDLzGhaScbMLEoVMqxHFUFXI1kU9PNVonygwY0xVs3mNqlC +JM+LZ2QtxGqCrDGxMPAluvsFhr1mMaHk7eCzkJAhhpvUaG9F07jmo5U7HfFyQr0w +QxSiUg5nmjXFgkcui2pMfOeKBddBy7Oc6uheCRyPzOKdYekgbZPrNZ/2OnhJqQ/6 +Sq9Khz6h99AmUpMYUiua0mzFoSnFkyERL0S4h/bbZlSEeCiJCxFEDBZB4ZgOsORL +2DHLjkTnePgs9bjVp3lVelIplqi+K6O+MmMlYFrOOewa5a4= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDKjCCAhKgAwIBAgIUef+VvHkcTQnED++wJM/IxzSULk0wDQYJKoZIhvcNAQEL +BQAwJjEkMCIGA1UEAwwbWXViaWNvIDIwMjMgRklETyBQcmV2aWV3IENBMB4XDTIz +MDkyNTExMzI0MVoXDTI0MTIzMTExMzI0MVowJjEkMCIGA1UEAwwbWXViaWNvIDIw +MjMgRklETyBQcmV2aWV3IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAouFMTOKaE0YtexOoisSxp+Ebi5IA4esEScx16lzQdqV6/eZ82KtJeNXEuNkB +VZDpc32gStuxLBH8mgsoHBFai2DkjfBn5qbwR/c5+snlwZvjgVA0hzKw9CwAeAwR +D5krWt88/CVyCkMcgLSGwZs/rj7F/Ls3Ebg7MqLbbQJ9CozbbLdJUYIHcPpSZPto +MrZb4Gvni6iVS9UvCKgpqc6LGRmoYGG4ZR3lGJ/XQZfu+GeJW67iimMj/yoXOwxu +cxivZHFk6cQSgwuwioeNm4wvk83LhSuWctf2kAyQcZ7kUnpNee+d4MgrmGU4XMFL +iTgutaB+e9V8d5JTkUOHiLztkQIDAQABo1AwTjAdBgNVHQ4EFgQUM5SB5bHrV+jp +IOMdJl7u7bcnTY8wHwYDVR0jBBgwFoAUM5SB5bHrV+jpIOMdJl7u7bcnTY8wDAYD +VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEACowR3KTLfidJyQFNqEFfUrfZ +9aa9egpOQtNRJdLStJ6xu2WfLwvG4ojGJlBKNnfa5DIcyQYf/8qJ4eliAVeNXuYm +eMmgNgZZyuY6G1yWCD2V3sD6Z4uj3SbaDOHj3gHvszgQhrhT1h/puHQkn6+hYKAp +77kM7Ic6AZ/RFbjpmLLk2D0sE1lzT/02i+Bh7M8smaiDZ9++JGzxeSun8W1HleZU +m2qKGmRa4XPdryT7x6KGUGnU4a3bpUmVeY9rQ/sfMd5ZToo+3unFWDzoVV2vNu8+ ++VLC9zo40FaKQLr9VAJDJ4yLENR7KrmV8L0cCXKJGZWAWtG5RGTmHIhd+nB41g== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_fido_edition.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_fido_edition.pem new file mode 100644 index 0000000..45dcaa7 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_fido_edition.pem @@ -0,0 +1,107 @@ +YubiKey Bio Series - FIDO Edition +--------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUDqERw+4RnGSggxgUewJFEPDRZ3YwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBCIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDI7XnH+ZvDwMCQU8M8ZeV5qscublvVYaaRt3Ybaxn9godLx5sw +H0lXrdgjh5h7FpVgCgYYX7E4bl1vbzULemrMWT8N3WMGUe8QAJbBeioV7W/E+hTZ +P/0SKJVa3ewKBo6ULeMnfQZDrVORAk8wTLq2v5Llj5vMj7JtOotKa9J7nHS8kLmz +XXSaj0SwEPh5OAZUTNV4zs1bvoTAQQWrL4/J9QuKt6WCFE5nUNiRQcEbVF8mlqK2 +bx2z6okVltyDVLCxYbpUTELvY1usR3DTGPUoIClOm4crpwnDRLVHvjYePGBB//pE +yzxA/gcScxjwaH1ZUw9bnSbHyurKqbTa1KvjAgMBAAGjZjBkMB0GA1UdDgQWBBTq +t0KQngx7ZHrbVHwDunxOn9ihYTAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAqQaCWMxTGqVVX7Sk7kkJmUueTSYKuU6+KBBSgwIRnlw9K7He +1IpxZ0hdwpPNikKjmcyFgFPzhImwHJgxxuT90Pw3vYOdcJJNktDg35PXOfzSn15c +FAx1RO0mPTmIb8dXiEWOpzoXvdwXDM41ZaCDYMT7w4IQtMyvE7xUBZq2bjtAnq/N +DUA7be4H8H3ipC+/+NKlUrcUh+j48K67WI0u1m6FeQueBA7n06j825rqDqsaLs9T +b7KAHAw8PmrWaNPG2kjKerxPEfecivlFawp2RWZvxrVtn3TV2SBxyCJCkXsND05d +CErVHSJIs+BdtTVNY9AwtyPmnyb0v4mSTzvWdw== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUR38mq26Sf2szVV2BdG6WEN7kuWUwDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBC +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEIgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANY0Wb9oPoRoKoQyWPaJpz11vrWTg6zTtmNj2VoKRnyvKGRq +pzb83w5l6YA96UYkYBDQP0ilO2DPe6wWqVR5zDfRzdcH8bh+L7dGGvae6hRTZhkF +kCpXDs4HccknrDf8FClJ7He39Jf42/G1Qm2zz9WWmrPXtgiK/x05GjsQfGuDG1zf +5QTUUie8lwymK3TfdOvNeeJAAPe2pn7ItfRb+rVrNWiDzlRn2vNnZ2wPo4wH/WJ6 +dhXZG+rMWT+a6Bocg1UfIw6kdunG4bTpZzsvacFYyR0mpf+DeOnpSWAmywJWHvTl +f2YXxFyeXcTACdQlcMNGJ2VhZQ48xtP5/RBP/8kCAwEAAaNmMGQwHQYDVR0OBBYE +FChy42okiqcTS1iqa/HRWjkBn4H/MB8GA1UdIwQYMBaAFOq3QpCeDHtkettUfAO6 +fE6f2KFhMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQAn+RHIPbtMEDNdT1g8H/RitAkUdLgAt1tWGWnlj9knbv4/ +4GlX7C9p45efPO9/aZL6OV1XRKBi6KmtBW5K7nuYEnMx/5BqBSbLT7rhduC49TBe +Mb9PHdXsTlSVNYefr1dGidr4j0xVBQLb1rknDAbdWDzKfvnayKO8Frwe7Hx843MG +/rJ+c0XruUvbfVTCHLiIWhM7oNDhL8xob6xUo9KLKcSL+ItYsO3/9Wb8Q9GjsqL4 +FXsDcG1SaYh7KpfuMmOixqzJZO2nIicPYRg1I2SuiUfYO70tmdHcbl+kSQmSYt7r +q4viILg2Gx3j9rITuWTjbaUaSSQxgOmMSHuyzMAC +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDPjCCAiagAwIBAgIUXzeiEDJEOTt14F5n0o6Zf/bBwiUwDQYJKoZIhvcNAQEN +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowJDEiMCAGA1UEAwwZWXViaWNvIEF0 +dGVzdGF0aW9uIFJvb3QgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AMZ6/TxM8rIT+EaoPvG81ontMOo/2mQ2RBwJHS0QZcxVaNXvl12LUhBZ5LmiBScI +Zd1Rnx1od585h+/dhK7hEm7JAALkKKts1fO53KGNLZujz5h3wGncr4hyKF0G74b/ +U3K9hE5mGND6zqYchCRAHfrYMYRDF4YL0X4D5nGdxvppAy6nkEmtWmMnwO3i0TAu +csrbE485HvGM4r0VpgVdJpvgQjiTJCTIq+D35hwtT8QDIv+nGvpcyi5wcIfCkzyC +imJukhYy6KoqNMKQEdpNiSOvWyDMTMt1bwCvEzpw91u+msUt4rj0efnO9s0ZOwdw +MRDnH4xgUl5ZLwrrPkfC1/0CAwEAAaNmMGQwHQYDVR0OBBYEFNLu71oijTptXCOX +PfKF1SbxJXuSMB8GA1UdIwQYMBaAFNLu71oijTptXCOXPfKF1SbxJXuSMBIGA1Ud +EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4IB +AQC3IW/sgB9pZ8apJNjxuGoX+FkILks0wMNrdXL/coUvsrhzsvl6mePMrbGJByJ1 +XnquB5sgcRENFxdQFma3mio8Upf1owM1ZreXrJ0mADG2BplqbJnxiyYa+R11reIF +TWeIhMNcZKsDZrFAyPuFjCWSQvJmNWe9mFRYFgNhXJKkXIb5H1XgEDlwiedYRM7V +olBNlld6pRFKlX8ust6OTMOeADl2xNF0m1LThSdeuXvDyC1g9+ILfz3S6OIYgc3i +roRcFD354g7rKfu67qFAw9gC4yi0xBTPrY95rh4/HqaUYCA/L8ldRk6H7Xk35D+W +Vpmq2Sh/xT5HiFuhf4wJb0bK +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIUTnbbGIR2NHvzqIKFAeQwG1XBis0wDQYJKoZIhvcNAQEL +BQAwLjEsMCoGA1UEAwwjWXViaWNvIEF0dGVzdGF0aW9uIEludGVybWVkaWF0ZSBB +IDEwIBcNMjQxMjAxMDAwMDAwWhgPOTk5OTEyMzEyMzU5NTlaMCYxJDAiBgNVBAMM +G1l1YmljbyBGSURPIEF0dGVzdGF0aW9uIEEgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAOsXj3k04Ban4TYdtZKqD/OPJxyDyaPmCBUFUiaZIgTteZnj +3X25DhgpZZXsC4D0ydIcrlA6wNUInORL/L9zBbTEIMAVMGo6g7UKAmb2MF6AHbnh +YJd9eikupVNWShHNYNc4GBdO1YN6AfUqvJhHbe3V4SNMPmBREKJPVz7ThwgmggTe +8Ws2K0/wsqv2wSE7pbCBsUZhIX51bZM3pqDwJPTmRFEvt0/6tG5eO8F3j14OXqfE +hmjn1VvxKDYQOLZAxCwwgC0P4CdfWv3y8PSR8I354hO1Y+GzNjvIqX38NKLywuIY +HFerOxNlxEMBvFhYBuRuYAkkgUaPqN6UBhsILrsCAwEAAaNmMGQwHQYDVR0OBBYE +FCCoRHhiyNnbnXRWIL6ZBXoBX9YTMB8GA1UdIwQYMBaAFCAoUCEbpFpb6FPLnZ3F +5PxsL3ofMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4IBAQCQFafJI1/5Wg9CEEimE1RP54RgQwTNTOOQsLACTe+rItlF +QzC9ZDhrV828yX7jzy+AAsp3izK7T1th2dl7m+tu0sw2Pa/olc02nt6PyIw348ga +HzhI1+0KE45qxvFDeL2lMxbPfCYvyEEaYzjiQELU5951pXGWyKMa/4fLtO+ZKOXh +MuVeq4rXDPI54W6JHOiAaiKdiw+5e3c2kt/jFIQtM6vMXg9LNFzdjETNt20VX9Qe +vRpFZfucMG9wCaQDoFlPzpTMJKhPev/imJmZYhKfr0lLcemtqjIxLAoqZdOYfHBg +6+vAcdPI/iauGpUAv7X+UKNmDwjZ2BaH4sLwhB2m +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUUcmMXzRIFOgGTK0Tb3gEuZYZkBIwDQYJKoZIhvcNAQEL +BQAwJDEiMCAGA1UEAwwZWXViaWNvIEF0dGVzdGF0aW9uIFJvb3QgMTAgFw0yNDEy +MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowLjEsMCoGA1UEAwwjWXViaWNvIEF0 +dGVzdGF0aW9uIEludGVybWVkaWF0ZSBBIDEwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDm555bWY9WW+tOY0rIWHldh+aNanoCZCFh7Gk3YZrQmPUw0hkS +G6qYHQtP+fZyS33VErvg+BQqnmumgNhfxFrkwEZELeidBcC8C4Ag4nqqiPWpzsvI +17NcxYlInLNLFcZY/+gOiN6ZOTihO5/vBZMbj9riaAcqliYmNGJPgTcMGaEAyMzE +MNy2nm6Ep+pjP5aF6gi21t/UQFsuJ1j2Rj/ynM/SdRt+ecal5OYotxHkFbL9vvv2 +A2Ov5ITZClw4bOS9npypQimOZ5QAYytmYaQpWl/pMYz6zSj8RqkVDNEJGqNfTKA2 +ivLYwX6lSttMPapg0J84l9X0voVN/FpS4VCVAgMBAAGjZjBkMB0GA1UdDgQWBBQg +KFAhG6RaW+hTy52dxeT8bC96HzAfBgNVHSMEGDAWgBTS7u9aIo06bVwjlz3yhdUm +8SV7kjASBgNVHRMBAf8ECDAGAQH/AgECMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQsFAAOCAQEAYMzgLrJLIr0OovQnAZrRIGuabiHSUKSmbLRWpRkWeAtsChDE +HpXcJ/bgDNKYWoHqQ8xRUjB4CyepYevc3YlrG8o7zHxpfVcaoL5SeuJkzHxKn4bT +aSp9+Mvwamnp64kZMiNbFLknfP9kYKoRHkMWheRJ1UsP1z4ScmkCeILfsMs6vqov +qjWClFsJpBcsluYHWF7bBJ1n4Rwg+ATEopY4IgGv6Zvwc+A9r+AT2hqpoSkYoAl+ +ANYwgslOf9sJe0V+TA9YY/UlaBmPPTd0//r9wvcePWZkPjKoAC/zUNhfDbh4LV8G +Hs3lyX2XomL/LNc8JYzyIaDEhGQveoPhh/tr1g== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_fido_edition_enterprise_profile.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_fido_edition_enterprise_profile.pem new file mode 100644 index 0000000..753e93a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_fido_edition_enterprise_profile.pem @@ -0,0 +1,23 @@ +YubiKey Bio Series - FIDO Edition (Enterprise Profile) +------------------------------------------------------ + +-----BEGIN CERTIFICATE----- +MIIDMzCCAhugAwIBAgIUSOEjTf//yqRfPW7Qq8qtIyCrAg8wDQYJKoZIhvcNAQEL +BQAwLzEtMCsGA1UEAwwkWXViaWNvIEZJRE8gUm9vdCBDQSBTZXJpYWwgNDUwMjAz +NTU2MCAXDTI0MDUwMTAwMDAwMFoYDzIwNjAwNDMwMDAwMDAwWjAvMS0wKwYDVQQD +DCRZdWJpY28gRklETyBSb290IENBIFNlcmlhbCA0NTAyMDM1NTYwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdvl27w2gu1fPXeEFbIdqx0BalvVDVWrQP +J7HqviuEtZHlxSLxSFtcXpTolvLvof8f4tMerQTkVGzcmYzm1EBT4IJuMmoEqfkE +EhWpsADMFrjZkqlZY9EqxQzLoVEEonE5oGxSdVCxCcLIackpyR/CCXvj1Bt/hTgE +9hTlF4pRqxMkx3plF7y8dDZlRHWs7vbnhmBCGeI0ZPEQ6nl2mCg2r74adF2u6K9r +rLfhBC3QLE8EPrgqUsI+hkuq2tK4M2SMOp8uUVVkqUeu3h0kr3WVI0W02pkgrOgi +FKLFNkSrbYhdjMBDj5izmqfc9xJRKoDX612qd8ZGVHpT5AYFX+1hAgMBAAGjRTBD +MB0GA1UdDgQWBBTZyU5DiQ/a2UEgE7qBK0zhIsRNRjASBgNVHRMBAf8ECDAGAQH/ +AgEAMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAXvnB4SLuUJfY +MSVGAhssL/SmWli3FSccgxydvKlACcidIIWKQqa3q/QSUEQzC9DgEfMgr7iC1BkT +ZbILboV6UZ5knNsvjEZWuMeogJ8tgZs1hVvKwZizwJ+mEcmsjhIrBYuoL1T6yrOJ +vKFg1jv+Cy4ZwA9Bpk/V3UOir1VyK8dCtyHu6vfosotAdYx8FAuR243gRTMV6Jx8 +Jdig2JDIAQMlzVeDpSUHX/K2HXRHxHwfgjbgUjjBu/72r8OfehyhzHXI3K8CFFdf +lO+8nEOJK3y8F1ivgS5uN/8SmcYw/STQYwhrxPuwz3nP8baMum4BB2nnYmpB60sX +3bl5k8QUSw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_multi_protocol_edition.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_multi_protocol_edition.pem new file mode 100644 index 0000000..5db0dc3 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_multi_protocol_edition.pem @@ -0,0 +1,23 @@ +YubiKey Bio Series - Multi-protocol Edition +------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDMzCCAhugAwIBAgIUSOEjTf//yqRfPW7Qq8qtIyCrAg8wDQYJKoZIhvcNAQEL +BQAwLzEtMCsGA1UEAwwkWXViaWNvIEZJRE8gUm9vdCBDQSBTZXJpYWwgNDUwMjAz +NTU2MCAXDTI0MDUwMTAwMDAwMFoYDzIwNjAwNDMwMDAwMDAwWjAvMS0wKwYDVQQD +DCRZdWJpY28gRklETyBSb290IENBIFNlcmlhbCA0NTAyMDM1NTYwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdvl27w2gu1fPXeEFbIdqx0BalvVDVWrQP +J7HqviuEtZHlxSLxSFtcXpTolvLvof8f4tMerQTkVGzcmYzm1EBT4IJuMmoEqfkE +EhWpsADMFrjZkqlZY9EqxQzLoVEEonE5oGxSdVCxCcLIackpyR/CCXvj1Bt/hTgE +9hTlF4pRqxMkx3plF7y8dDZlRHWs7vbnhmBCGeI0ZPEQ6nl2mCg2r74adF2u6K9r +rLfhBC3QLE8EPrgqUsI+hkuq2tK4M2SMOp8uUVVkqUeu3h0kr3WVI0W02pkgrOgi +FKLFNkSrbYhdjMBDj5izmqfc9xJRKoDX612qd8ZGVHpT5AYFX+1hAgMBAAGjRTBD +MB0GA1UdDgQWBBTZyU5DiQ/a2UEgE7qBK0zhIsRNRjASBgNVHRMBAf8ECDAGAQH/ +AgEAMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAXvnB4SLuUJfY +MSVGAhssL/SmWli3FSccgxydvKlACcidIIWKQqa3q/QSUEQzC9DgEfMgr7iC1BkT +ZbILboV6UZ5knNsvjEZWuMeogJ8tgZs1hVvKwZizwJ+mEcmsjhIrBYuoL1T6yrOJ +vKFg1jv+Cy4ZwA9Bpk/V3UOir1VyK8dCtyHu6vfosotAdYx8FAuR243gRTMV6Jx8 +Jdig2JDIAQMlzVeDpSUHX/K2HXRHxHwfgjbgUjjBu/72r8OfehyhzHXI3K8CFFdf +lO+8nEOJK3y8F1ivgS5uN/8SmcYw/STQYwhrxPuwz3nP8baMum4BB2nnYmpB60sX +3bl5k8QUSw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_multi_protocol_edition_1vdjsn.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_multi_protocol_edition_1vdjsn.pem new file mode 100644 index 0000000..67d6c19 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_multi_protocol_edition_1vdjsn.pem @@ -0,0 +1,23 @@ +YubiKey Bio Series - Multi-protocol Edition 1VDJSN +-------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDMzCCAhugAwIBAgIUSOEjTf//yqRfPW7Qq8qtIyCrAg8wDQYJKoZIhvcNAQEL +BQAwLzEtMCsGA1UEAwwkWXViaWNvIEZJRE8gUm9vdCBDQSBTZXJpYWwgNDUwMjAz +NTU2MCAXDTI0MDUwMTAwMDAwMFoYDzIwNjAwNDMwMDAwMDAwWjAvMS0wKwYDVQQD +DCRZdWJpY28gRklETyBSb290IENBIFNlcmlhbCA0NTAyMDM1NTYwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdvl27w2gu1fPXeEFbIdqx0BalvVDVWrQP +J7HqviuEtZHlxSLxSFtcXpTolvLvof8f4tMerQTkVGzcmYzm1EBT4IJuMmoEqfkE +EhWpsADMFrjZkqlZY9EqxQzLoVEEonE5oGxSdVCxCcLIackpyR/CCXvj1Bt/hTgE +9hTlF4pRqxMkx3plF7y8dDZlRHWs7vbnhmBCGeI0ZPEQ6nl2mCg2r74adF2u6K9r +rLfhBC3QLE8EPrgqUsI+hkuq2tK4M2SMOp8uUVVkqUeu3h0kr3WVI0W02pkgrOgi +FKLFNkSrbYhdjMBDj5izmqfc9xJRKoDX612qd8ZGVHpT5AYFX+1hAgMBAAGjRTBD +MB0GA1UdDgQWBBTZyU5DiQ/a2UEgE7qBK0zhIsRNRjASBgNVHRMBAf8ECDAGAQH/ +AgEAMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAXvnB4SLuUJfY +MSVGAhssL/SmWli3FSccgxydvKlACcidIIWKQqa3q/QSUEQzC9DgEfMgr7iC1BkT +ZbILboV6UZ5knNsvjEZWuMeogJ8tgZs1hVvKwZizwJ+mEcmsjhIrBYuoL1T6yrOJ +vKFg1jv+Cy4ZwA9Bpk/V3UOir1VyK8dCtyHu6vfosotAdYx8FAuR243gRTMV6Jx8 +Jdig2JDIAQMlzVeDpSUHX/K2HXRHxHwfgjbgUjjBu/72r8OfehyhzHXI3K8CFFdf +lO+8nEOJK3y8F1ivgS5uN/8SmcYw/STQYwhrxPuwz3nP8baMum4BB2nnYmpB60sX +3bl5k8QUSw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_multi_protocol_edition_enterprise_profile.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_multi_protocol_edition_enterprise_profile.pem new file mode 100644 index 0000000..37b6a9a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_bio_series_multi_protocol_edition_enterprise_profile.pem @@ -0,0 +1,23 @@ +YubiKey Bio Series - Multi-protocol Edition (Enterprise Profile) +---------------------------------------------------------------- + +-----BEGIN CERTIFICATE----- +MIIDMzCCAhugAwIBAgIUSOEjTf//yqRfPW7Qq8qtIyCrAg8wDQYJKoZIhvcNAQEL +BQAwLzEtMCsGA1UEAwwkWXViaWNvIEZJRE8gUm9vdCBDQSBTZXJpYWwgNDUwMjAz +NTU2MCAXDTI0MDUwMTAwMDAwMFoYDzIwNjAwNDMwMDAwMDAwWjAvMS0wKwYDVQQD +DCRZdWJpY28gRklETyBSb290IENBIFNlcmlhbCA0NTAyMDM1NTYwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdvl27w2gu1fPXeEFbIdqx0BalvVDVWrQP +J7HqviuEtZHlxSLxSFtcXpTolvLvof8f4tMerQTkVGzcmYzm1EBT4IJuMmoEqfkE +EhWpsADMFrjZkqlZY9EqxQzLoVEEonE5oGxSdVCxCcLIackpyR/CCXvj1Bt/hTgE +9hTlF4pRqxMkx3plF7y8dDZlRHWs7vbnhmBCGeI0ZPEQ6nl2mCg2r74adF2u6K9r +rLfhBC3QLE8EPrgqUsI+hkuq2tK4M2SMOp8uUVVkqUeu3h0kr3WVI0W02pkgrOgi +FKLFNkSrbYhdjMBDj5izmqfc9xJRKoDX612qd8ZGVHpT5AYFX+1hAgMBAAGjRTBD +MB0GA1UdDgQWBBTZyU5DiQ/a2UEgE7qBK0zhIsRNRjASBgNVHRMBAf8ECDAGAQH/ +AgEAMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAXvnB4SLuUJfY +MSVGAhssL/SmWli3FSccgxydvKlACcidIIWKQqa3q/QSUEQzC9DgEfMgr7iC1BkT +ZbILboV6UZ5knNsvjEZWuMeogJ8tgZs1hVvKwZizwJ+mEcmsjhIrBYuoL1T6yrOJ +vKFg1jv+Cy4ZwA9Bpk/V3UOir1VyK8dCtyHu6vfosotAdYx8FAuR243gRTMV6Jx8 +Jdig2JDIAQMlzVeDpSUHX/K2HXRHxHwfgjbgUjjBu/72r8OfehyhzHXI3K8CFFdf +lO+8nEOJK3y8F1ivgS5uN/8SmcYw/STQYwhrxPuwz3nP8baMum4BB2nnYmpB60sX +3bl5k8QUSw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_edge.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_edge.pem new file mode 100644 index 0000000..82c7a9a --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_edge.pem @@ -0,0 +1,22 @@ +Yubikey Edge +------------ + +-----BEGIN CERTIFICATE----- +MIIDHjCCAgagAwIBAgIEG0BT9zANBgkqhkiG9w0BAQsFADAuMSwwKgYDVQQDEyNZ +dWJpY28gVTJGIFJvb3QgQ0EgU2VyaWFsIDQ1NzIwMDYzMTAgFw0xNDA4MDEwMDAw +MDBaGA8yMDUwMDkwNDAwMDAwMFowLjEsMCoGA1UEAxMjWXViaWNvIFUyRiBSb290 +IENBIFNlcmlhbCA0NTcyMDA2MzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC/jwYuhBVlqaiYWEMsrWFisgJ+PtM91eSrpI4TK7U53mwCIawSDHy8vUmk +5N2KAj9abvT9NP5SMS1hQi3usxoYGonXQgfO6ZXyUA9a+KAkqdFnBnlyugSeCOep +8EdZFfsaRFtMjkwz5Gcz2Py4vIYvCdMHPtwaz0bVuzneueIEz6TnQjE63Rdt2zbw +nebwTG5ZybeWSwbzy+BJ34ZHcUhPAY89yJQXuE0IzMZFcEBbPNRbWECRKgjq//qT +9nmDOFVlSRCt2wiqPSzluwn+v+suQEBsUjTGMEd25tKXXTkNW21wIWbxeSyUoTXw +LvGS6xlwQSgNpk2qXYwf8iXg7VWZAgMBAAGjQjBAMB0GA1UdDgQWBBQgIvz0bNGJ +hjgpToksyKpP9xv9oDAPBgNVHRMECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAN +BgkqhkiG9w0BAQsFAAOCAQEAjvjuOMDSa+JXFCLyBKsycXtBVZsJ4Ue3LbaEsPY4 +MYN/hIQ5ZM5p7EjfcnMG4CtYkNsfNHc0AhBLdq45rnT87q/6O3vUEtNMafbhU6kt +hX7Y+9XFN9NpmYxr+ekVY5xOxi8h9JDIgoMP4VB1uS0aunL1IGqrNooL9mmFnL2k +LVVee6/VR6C5+KSTCMCWppMuJIZII2v9o4dkoZ8Y7QRjQlLfYzd3qGtKbw7xaF1U +sG/5xUb/Btwb2X2g4InpiB/yt/3CpQXpiWX/K4mBvUKiGn05ZsqeY1gx4g0xLBqc +U9psmyPzK+Vsgw2jeRQ5JlKDyqE0hebfC1tvFu0CCrJFcw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/yubikey_neo.pem b/restricted/WebAuthn/rootCertificates/mds/yubikey_neo.pem new file mode 100644 index 0000000..8d82295 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/yubikey_neo.pem @@ -0,0 +1,22 @@ +YubiKey NEO +----------- + +-----BEGIN CERTIFICATE----- +MIIDHjCCAgagAwIBAgIEG0BT9zANBgkqhkiG9w0BAQsFADAuMSwwKgYDVQQDEyNZ +dWJpY28gVTJGIFJvb3QgQ0EgU2VyaWFsIDQ1NzIwMDYzMTAgFw0xNDA4MDEwMDAw +MDBaGA8yMDUwMDkwNDAwMDAwMFowLjEsMCoGA1UEAxMjWXViaWNvIFUyRiBSb290 +IENBIFNlcmlhbCA0NTcyMDA2MzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC/jwYuhBVlqaiYWEMsrWFisgJ+PtM91eSrpI4TK7U53mwCIawSDHy8vUmk +5N2KAj9abvT9NP5SMS1hQi3usxoYGonXQgfO6ZXyUA9a+KAkqdFnBnlyugSeCOep +8EdZFfsaRFtMjkwz5Gcz2Py4vIYvCdMHPtwaz0bVuzneueIEz6TnQjE63Rdt2zbw +nebwTG5ZybeWSwbzy+BJ34ZHcUhPAY89yJQXuE0IzMZFcEBbPNRbWECRKgjq//qT +9nmDOFVlSRCt2wiqPSzluwn+v+suQEBsUjTGMEd25tKXXTkNW21wIWbxeSyUoTXw +LvGS6xlwQSgNpk2qXYwf8iXg7VWZAgMBAAGjQjBAMB0GA1UdDgQWBBQgIvz0bNGJ +hjgpToksyKpP9xv9oDAPBgNVHRMECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAN +BgkqhkiG9w0BAQsFAAOCAQEAjvjuOMDSa+JXFCLyBKsycXtBVZsJ4Ue3LbaEsPY4 +MYN/hIQ5ZM5p7EjfcnMG4CtYkNsfNHc0AhBLdq45rnT87q/6O3vUEtNMafbhU6kt +hX7Y+9XFN9NpmYxr+ekVY5xOxi8h9JDIgoMP4VB1uS0aunL1IGqrNooL9mmFnL2k +LVVee6/VR6C5+KSTCMCWppMuJIZII2v9o4dkoZ8Y7QRjQlLfYzd3qGtKbw7xaF1U +sG/5xUb/Btwb2X2g4InpiB/yt/3CpQXpiWX/K4mBvUKiGn05ZsqeY1gx4g0xLBqc +U9psmyPzK+Vsgw2jeRQ5JlKDyqE0hebfC1tvFu0CCrJFcw== +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/rootCertificates/mds/ztpass_smartauth.pem b/restricted/WebAuthn/rootCertificates/mds/ztpass_smartauth.pem new file mode 100644 index 0000000..12037b4 --- /dev/null +++ b/restricted/WebAuthn/rootCertificates/mds/ztpass_smartauth.pem @@ -0,0 +1,18 @@ +ZTPass SmartAuth +---------------- + +-----BEGIN CERTIFICATE----- +MIICVzCCAf2gAwIBAgIJAJMc8W1IOSNhMAoGCCqGSM49BAMCMIGGMQswCQYDVQQG +EwJVUzERMA8GA1UECAwIVmlyZ2luaWExEDAOBgNVBAcMB0FzaGJ1cm4xFTATBgNV +BAoMDFpUUGFzcywgSW5jLjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3Rh +dGlvbjEXMBUGA1UEAwwOWlRQYXNzIFJvb3QgQ0EwIBcNMjMwOTE0MTA1NTA2WhgP +MjA1MzA5MDYxMDU1MDZaMIGGMQswCQYDVQQGEwJVUzERMA8GA1UECAwIVmlyZ2lu +aWExEDAOBgNVBAcMB0FzaGJ1cm4xFTATBgNVBAoMDFpUUGFzcywgSW5jLjEiMCAG +A1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlvbjEXMBUGA1UEAwwOWlRQYXNz +IFJvb3QgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJ+61LJf960/0Czvjd +S1MuekN/3/N5DXx8Q+NLt6oh9NdODATTyjRCC80enC6ryRQrP1jEeATtmKJqPTJp +AGZzo1AwTjAdBgNVHQ4EFgQUlQ68CjzRky2xcBL/c47zp6jQ+LMwHwYDVR0jBBgw +FoAUlQ68CjzRky2xcBL/c47zp6jQ+LMwDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQD +AgNIADBFAiBbHaAy9U6FRLnJulHP76dF7VisK7HC0SpKDvrV9LtjUAIhALZKsI5M +XRy2C2f91XaIhfOwMBeJ5PLhWRkcdybW0r6M +-----END CERTIFICATE----- diff --git a/restricted/WebAuthn/src/Attestation/AttestationObject.php b/restricted/WebAuthn/src/Attestation/AttestationObject.php new file mode 100644 index 0000000..65151ea --- /dev/null +++ b/restricted/WebAuthn/src/Attestation/AttestationObject.php @@ -0,0 +1,179 @@ +_authenticatorData = new AuthenticatorData($enc['authData']->getBinaryString()); + $this->_attestationFormatName = $enc['fmt']; + + // Format ok? + if (!in_array($this->_attestationFormatName, $allowedFormats)) { + throw new WebAuthnException('invalid atttestation format: ' . $this->_attestationFormatName, WebAuthnException::INVALID_DATA); + } + + + switch ($this->_attestationFormatName) { + case 'android-key': $this->_attestationFormat = new Format\AndroidKey($enc, $this->_authenticatorData); break; + case 'android-safetynet': $this->_attestationFormat = new Format\AndroidSafetyNet($enc, $this->_authenticatorData); break; + case 'apple': $this->_attestationFormat = new Format\Apple($enc, $this->_authenticatorData); break; + case 'fido-u2f': $this->_attestationFormat = new Format\U2f($enc, $this->_authenticatorData); break; + case 'none': $this->_attestationFormat = new Format\None($enc, $this->_authenticatorData); break; + case 'packed': $this->_attestationFormat = new Format\Packed($enc, $this->_authenticatorData); break; + case 'tpm': $this->_attestationFormat = new Format\Tpm($enc, $this->_authenticatorData); break; + default: throw new WebAuthnException('invalid attestation format: ' . $enc['fmt'], WebAuthnException::INVALID_DATA); + } + } + + /** + * returns the attestation format name + * @return string + */ + public function getAttestationFormatName() { + return $this->_attestationFormatName; + } + + /** + * returns the attestation format class + * @return Format\FormatBase + */ + public function getAttestationFormat() { + return $this->_attestationFormat; + } + + /** + * returns the attestation public key in PEM format + * @return AuthenticatorData + */ + public function getAuthenticatorData() { + return $this->_authenticatorData; + } + + /** + * returns the certificate chain as PEM + * @return string|null + */ + public function getCertificateChain() { + return $this->_attestationFormat->getCertificateChain(); + } + + /** + * return the certificate issuer as string + * @return string + */ + public function getCertificateIssuer() { + $pem = $this->getCertificatePem(); + $issuer = ''; + if ($pem) { + $certInfo = \openssl_x509_parse($pem); + if (\is_array($certInfo) && \array_key_exists('issuer', $certInfo) && \is_array($certInfo['issuer'])) { + + $cn = $certInfo['issuer']['CN'] ?? ''; + $o = $certInfo['issuer']['O'] ?? ''; + $ou = $certInfo['issuer']['OU'] ?? ''; + + if ($cn) { + $issuer .= $cn; + } + if ($issuer && ($o || $ou)) { + $issuer .= ' (' . trim($o . ' ' . $ou) . ')'; + } else { + $issuer .= trim($o . ' ' . $ou); + } + } + } + + return $issuer; + } + + /** + * return the certificate subject as string + * @return string + */ + public function getCertificateSubject() { + $pem = $this->getCertificatePem(); + $subject = ''; + if ($pem) { + $certInfo = \openssl_x509_parse($pem); + if (\is_array($certInfo) && \array_key_exists('subject', $certInfo) && \is_array($certInfo['subject'])) { + + $cn = $certInfo['subject']['CN'] ?? ''; + $o = $certInfo['subject']['O'] ?? ''; + $ou = $certInfo['subject']['OU'] ?? ''; + + if ($cn) { + $subject .= $cn; + } + if ($subject && ($o || $ou)) { + $subject .= ' (' . trim($o . ' ' . $ou) . ')'; + } else { + $subject .= trim($o . ' ' . $ou); + } + } + } + + return $subject; + } + + /** + * returns the key certificate in PEM format + * @return string + */ + public function getCertificatePem() { + return $this->_attestationFormat->getCertificatePem(); + } + + /** + * checks validity of the signature + * @param string $clientDataHash + * @return bool + * @throws WebAuthnException + */ + public function validateAttestation($clientDataHash) { + return $this->_attestationFormat->validateAttestation($clientDataHash); + } + + /** + * validates the certificate against root certificates + * @param array $rootCas + * @return boolean + * @throws WebAuthnException + */ + public function validateRootCertificate($rootCas) { + return $this->_attestationFormat->validateRootCertificate($rootCas); + } + + /** + * checks if the RpId-Hash is valid + * @param string$rpIdHash + * @return bool + */ + public function validateRpIdHash($rpIdHash) { + return $rpIdHash === $this->_authenticatorData->getRpIdHash(); + } +} diff --git a/restricted/WebAuthn/src/Attestation/AuthenticatorData.php b/restricted/WebAuthn/src/Attestation/AuthenticatorData.php new file mode 100644 index 0000000..83462b1 --- /dev/null +++ b/restricted/WebAuthn/src/Attestation/AuthenticatorData.php @@ -0,0 +1,501 @@ +_binary = $binary; + + // Read infos from binary + // https://www.w3.org/TR/webauthn/#sec-authenticator-data + + // RP ID + $this->_rpIdHash = \substr($binary, 0, 32); + + // flags (1 byte) + $flags = \unpack('Cflags', \substr($binary, 32, 1))['flags']; + $this->_flags = $this->_readFlags($flags); + + // signature counter: 32-bit unsigned big-endian integer. + $this->_signCount = \unpack('Nsigncount', \substr($binary, 33, 4))['signcount']; + + $offset = 37; + // https://www.w3.org/TR/webauthn/#sec-attested-credential-data + if ($this->_flags->attestedDataIncluded) { + $this->_attestedCredentialData = $this->_readAttestData($binary, $offset); + } + + if ($this->_flags->extensionDataIncluded) { + $this->_readExtensionData(\substr($binary, $offset)); + } + } + + /** + * Authenticator Attestation Globally Unique Identifier, a unique number + * that identifies the model of the authenticator (not the specific instance + * of the authenticator) + * The aaguid may be 0 if the user is using a old u2f device and/or if + * the browser is using the fido-u2f format. + * @return string + * @throws WebAuthnException + */ + public function getAAGUID() { + if (!($this->_attestedCredentialData instanceof \stdClass)) { + throw new WebAuthnException('credential data not included in authenticator data', WebAuthnException::INVALID_DATA); + } + return $this->_attestedCredentialData->aaguid; + } + + /** + * returns the authenticatorData as binary + * @return string + */ + public function getBinary() { + return $this->_binary; + } + + /** + * returns the credentialId + * @return string + * @throws WebAuthnException + */ + public function getCredentialId() { + if (!($this->_attestedCredentialData instanceof \stdClass)) { + throw new WebAuthnException('credential id not included in authenticator data', WebAuthnException::INVALID_DATA); + } + return $this->_attestedCredentialData->credentialId; + } + + /** + * returns the public key in PEM format + * @return string + */ + public function getPublicKeyPem() { + if (!($this->_attestedCredentialData instanceof \stdClass) || !isset($this->_attestedCredentialData->credentialPublicKey)) { + throw new WebAuthnException('credential data not included in authenticator data', WebAuthnException::INVALID_DATA); + } + + $der = null; + switch ($this->_attestedCredentialData->credentialPublicKey->kty ?? null) { + case self::$_EC2_TYPE: $der = $this->_getEc2Der(); break; + case self::$_RSA_TYPE: $der = $this->_getRsaDer(); break; + case self::$_OKP_TYPE: $der = $this->_getOkpDer(); break; + default: throw new WebAuthnException('invalid key type', WebAuthnException::INVALID_DATA); + } + + $pem = '-----BEGIN PUBLIC KEY-----' . "\n"; + $pem .= \chunk_split(\base64_encode($der), 64, "\n"); + $pem .= '-----END PUBLIC KEY-----' . "\n"; + return $pem; + } + + /** + * returns the public key in U2F format + * @return string + * @throws WebAuthnException + */ + public function getPublicKeyU2F() { + if (!($this->_attestedCredentialData instanceof \stdClass) || !isset($this->_attestedCredentialData->credentialPublicKey)) { + throw new WebAuthnException('credential data not included in authenticator data', WebAuthnException::INVALID_DATA); + } + if (($this->_attestedCredentialData->credentialPublicKey->kty ?? null) !== self::$_EC2_TYPE) { + throw new WebAuthnException('signature algorithm not ES256', WebAuthnException::INVALID_PUBLIC_KEY); + } + return "\x04" . // ECC uncompressed + $this->_attestedCredentialData->credentialPublicKey->x . + $this->_attestedCredentialData->credentialPublicKey->y; + } + + /** + * returns the SHA256 hash of the relying party id (=hostname) + * @return string + */ + public function getRpIdHash() { + return $this->_rpIdHash; + } + + /** + * returns the sign counter + * @return int + */ + public function getSignCount() { + return $this->_signCount; + } + + /** + * returns true if the user is present + * @return boolean + */ + public function getUserPresent() { + return $this->_flags->userPresent; + } + + /** + * returns true if the user is verified + * @return boolean + */ + public function getUserVerified() { + return $this->_flags->userVerified; + } + + /** + * returns true if the backup is eligible + * @return boolean + */ + public function getIsBackupEligible() + { + return $this->_flags->isBackupEligible; + } + + /** + * returns true if the current credential is backed up + * @return boolean + */ + public function getIsBackup() + { + return $this->_flags->isBackup; + } + + // ----------------------------------------------- + // PRIVATE + // ----------------------------------------------- + + /** + * Returns DER encoded EC2 key + * @return string + */ + private function _getEc2Der() { + return $this->_der_sequence( + $this->_der_sequence( + $this->_der_oid("\x2A\x86\x48\xCE\x3D\x02\x01") . // OID 1.2.840.10045.2.1 ecPublicKey + $this->_der_oid("\x2A\x86\x48\xCE\x3D\x03\x01\x07") // 1.2.840.10045.3.1.7 prime256v1 + ) . + $this->_der_bitString($this->getPublicKeyU2F()) + ); + } + + /** + * Returns DER encoded EdDSA key + * @return string + */ + private function _getOkpDer() { + return $this->_der_sequence( + $this->_der_sequence( + $this->_der_oid("\x2B\x65\x70") // OID 1.3.101.112 curveEd25519 (EdDSA 25519 signature algorithm) + ) . + $this->_der_bitString($this->_attestedCredentialData->credentialPublicKey->x) + ); + } + + /** + * Returns DER encoded RSA key + * @return string + */ + private function _getRsaDer() { + return $this->_der_sequence( + $this->_der_sequence( + $this->_der_oid("\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01") . // OID 1.2.840.113549.1.1.1 rsaEncryption + $this->_der_nullValue() + ) . + $this->_der_bitString( + $this->_der_sequence( + $this->_der_unsignedInteger($this->_attestedCredentialData->credentialPublicKey->n) . + $this->_der_unsignedInteger($this->_attestedCredentialData->credentialPublicKey->e) + ) + ) + ); + } + + /** + * reads the flags from flag byte + * @param string $binFlag + * @return \stdClass + */ + private function _readFlags($binFlag) { + $flags = new \stdClass(); + + $flags->bit_0 = !!($binFlag & 1); + $flags->bit_1 = !!($binFlag & 2); + $flags->bit_2 = !!($binFlag & 4); + $flags->bit_3 = !!($binFlag & 8); + $flags->bit_4 = !!($binFlag & 16); + $flags->bit_5 = !!($binFlag & 32); + $flags->bit_6 = !!($binFlag & 64); + $flags->bit_7 = !!($binFlag & 128); + + // named flags + $flags->userPresent = $flags->bit_0; + $flags->userVerified = $flags->bit_2; + $flags->isBackupEligible = $flags->bit_3; + $flags->isBackup = $flags->bit_4; + $flags->attestedDataIncluded = $flags->bit_6; + $flags->extensionDataIncluded = $flags->bit_7; + return $flags; + } + + /** + * read attested data + * @param string $binary + * @param int $endOffset + * @return \stdClass + * @throws WebAuthnException + */ + private function _readAttestData($binary, &$endOffset) { + $attestedCData = new \stdClass(); + if (\strlen($binary) <= 55) { + throw new WebAuthnException('Attested data should be present but is missing', WebAuthnException::INVALID_DATA); + } + + // The AAGUID of the authenticator + $attestedCData->aaguid = \substr($binary, 37, 16); + + //Byte length L of Credential ID, 16-bit unsigned big-endian integer. + $length = \unpack('nlength', \substr($binary, 53, 2))['length']; + $attestedCData->credentialId = \substr($binary, 55, $length); + + // set end offset + $endOffset = 55 + $length; + + // extract public key + $attestedCData->credentialPublicKey = $this->_readCredentialPublicKey($binary, 55 + $length, $endOffset); + + return $attestedCData; + } + + /** + * reads COSE key-encoded elliptic curve public key in EC2 format + * @param string $binary + * @param int $endOffset + * @return \stdClass + * @throws WebAuthnException + */ + private function _readCredentialPublicKey($binary, $offset, &$endOffset) { + $enc = CborDecoder::decodeInPlace($binary, $offset, $endOffset); + + // COSE key-encoded elliptic curve public key in EC2 format + $credPKey = new \stdClass(); + $credPKey->kty = $enc[self::$_COSE_KTY]; + $credPKey->alg = $enc[self::$_COSE_ALG]; + + switch ($credPKey->alg) { + case self::$_EC2_ES256: $this->_readCredentialPublicKeyES256($credPKey, $enc); break; + case self::$_RSA_RS256: $this->_readCredentialPublicKeyRS256($credPKey, $enc); break; + case self::$_OKP_EDDSA: $this->_readCredentialPublicKeyEDDSA($credPKey, $enc); break; + } + + return $credPKey; + } + + /** + * extract EDDSA informations from cose + * @param \stdClass $credPKey + * @param \stdClass $enc + * @throws WebAuthnException + */ + private function _readCredentialPublicKeyEDDSA(&$credPKey, $enc) { + $credPKey->crv = $enc[self::$_COSE_CRV]; + $credPKey->x = $enc[self::$_COSE_X] instanceof ByteBuffer ? $enc[self::$_COSE_X]->getBinaryString() : null; + unset ($enc); + + // Validation + if ($credPKey->kty !== self::$_OKP_TYPE) { + throw new WebAuthnException('public key not in OKP format', WebAuthnException::INVALID_PUBLIC_KEY); + } + + if ($credPKey->alg !== self::$_OKP_EDDSA) { + throw new WebAuthnException('signature algorithm not EdDSA', WebAuthnException::INVALID_PUBLIC_KEY); + } + + if ($credPKey->crv !== self::$_OKP_ED25519) { + throw new WebAuthnException('curve not Ed25519', WebAuthnException::INVALID_PUBLIC_KEY); + } + + if (\strlen($credPKey->x) !== 32) { + throw new WebAuthnException('Invalid X-coordinate', WebAuthnException::INVALID_PUBLIC_KEY); + } + } + + /** + * extract ES256 informations from cose + * @param \stdClass $credPKey + * @param \stdClass $enc + * @throws WebAuthnException + */ + private function _readCredentialPublicKeyES256(&$credPKey, $enc) { + $credPKey->crv = $enc[self::$_COSE_CRV]; + $credPKey->x = $enc[self::$_COSE_X] instanceof ByteBuffer ? $enc[self::$_COSE_X]->getBinaryString() : null; + $credPKey->y = $enc[self::$_COSE_Y] instanceof ByteBuffer ? $enc[self::$_COSE_Y]->getBinaryString() : null; + unset ($enc); + + // Validation + if ($credPKey->kty !== self::$_EC2_TYPE) { + throw new WebAuthnException('public key not in EC2 format', WebAuthnException::INVALID_PUBLIC_KEY); + } + + if ($credPKey->alg !== self::$_EC2_ES256) { + throw new WebAuthnException('signature algorithm not ES256', WebAuthnException::INVALID_PUBLIC_KEY); + } + + if ($credPKey->crv !== self::$_EC2_P256) { + throw new WebAuthnException('curve not P-256', WebAuthnException::INVALID_PUBLIC_KEY); + } + + if (\strlen($credPKey->x) !== 32) { + throw new WebAuthnException('Invalid X-coordinate', WebAuthnException::INVALID_PUBLIC_KEY); + } + + if (\strlen($credPKey->y) !== 32) { + throw new WebAuthnException('Invalid Y-coordinate', WebAuthnException::INVALID_PUBLIC_KEY); + } + } + + /** + * extract RS256 informations from COSE + * @param \stdClass $credPKey + * @param \stdClass $enc + * @throws WebAuthnException + */ + private function _readCredentialPublicKeyRS256(&$credPKey, $enc) { + $credPKey->n = $enc[self::$_COSE_N] instanceof ByteBuffer ? $enc[self::$_COSE_N]->getBinaryString() : null; + $credPKey->e = $enc[self::$_COSE_E] instanceof ByteBuffer ? $enc[self::$_COSE_E]->getBinaryString() : null; + unset ($enc); + + // Validation + if ($credPKey->kty !== self::$_RSA_TYPE) { + throw new WebAuthnException('public key not in RSA format', WebAuthnException::INVALID_PUBLIC_KEY); + } + + if ($credPKey->alg !== self::$_RSA_RS256) { + throw new WebAuthnException('signature algorithm not ES256', WebAuthnException::INVALID_PUBLIC_KEY); + } + + if (\strlen($credPKey->n) !== 256) { + throw new WebAuthnException('Invalid RSA modulus', WebAuthnException::INVALID_PUBLIC_KEY); + } + + if (\strlen($credPKey->e) !== 3) { + throw new WebAuthnException('Invalid RSA public exponent', WebAuthnException::INVALID_PUBLIC_KEY); + } + + } + + /** + * reads cbor encoded extension data. + * @param string $binary + * @return array + * @throws WebAuthnException + */ + private function _readExtensionData($binary) { + $ext = CborDecoder::decode($binary); + if (!\is_array($ext)) { + throw new WebAuthnException('invalid extension data', WebAuthnException::INVALID_DATA); + } + + return $ext; + } + + + // --------------- + // DER functions + // --------------- + + private function _der_length($len) { + if ($len < 128) { + return \chr($len); + } + $lenBytes = ''; + while ($len > 0) { + $lenBytes = \chr($len % 256) . $lenBytes; + $len = \intdiv($len, 256); + } + return \chr(0x80 | \strlen($lenBytes)) . $lenBytes; + } + + private function _der_sequence($contents) { + return "\x30" . $this->_der_length(\strlen($contents)) . $contents; + } + + private function _der_oid($encoded) { + return "\x06" . $this->_der_length(\strlen($encoded)) . $encoded; + } + + private function _der_bitString($bytes) { + return "\x03" . $this->_der_length(\strlen($bytes) + 1) . "\x00" . $bytes; + } + + private function _der_nullValue() { + return "\x05\x00"; + } + + private function _der_unsignedInteger($bytes) { + $len = \strlen($bytes); + + // Remove leading zero bytes + for ($i = 0; $i < ($len - 1); $i++) { + if (\ord($bytes[$i]) !== 0) { + break; + } + } + if ($i !== 0) { + $bytes = \substr($bytes, $i); + } + + // If most significant bit is set, prefix with another zero to prevent it being seen as negative number + if ((\ord($bytes[0]) & 0x80) !== 0) { + $bytes = "\x00" . $bytes; + } + + return "\x02" . $this->_der_length(\strlen($bytes)) . $bytes; + } +} diff --git a/restricted/WebAuthn/src/Attestation/Format/AndroidKey.php b/restricted/WebAuthn/src/Attestation/Format/AndroidKey.php new file mode 100644 index 0000000..4581272 --- /dev/null +++ b/restricted/WebAuthn/src/Attestation/Format/AndroidKey.php @@ -0,0 +1,96 @@ +_attestationObject['attStmt']; + + if (!\array_key_exists('alg', $attStmt) || $this->_getCoseAlgorithm($attStmt['alg']) === null) { + throw new WebAuthnException('unsupported alg: ' . $attStmt['alg'], WebAuthnException::INVALID_DATA); + } + + if (!\array_key_exists('sig', $attStmt) || !\is_object($attStmt['sig']) || !($attStmt['sig'] instanceof ByteBuffer)) { + throw new WebAuthnException('no signature found', WebAuthnException::INVALID_DATA); + } + + if (!\array_key_exists('x5c', $attStmt) || !\is_array($attStmt['x5c']) || \count($attStmt['x5c']) < 1) { + throw new WebAuthnException('invalid x5c certificate', WebAuthnException::INVALID_DATA); + } + + if (!\is_object($attStmt['x5c'][0]) || !($attStmt['x5c'][0] instanceof ByteBuffer)) { + throw new WebAuthnException('invalid x5c certificate', WebAuthnException::INVALID_DATA); + } + + $this->_alg = $attStmt['alg']; + $this->_signature = $attStmt['sig']->getBinaryString(); + $this->_x5c = $attStmt['x5c'][0]->getBinaryString(); + + if (count($attStmt['x5c']) > 1) { + for ($i=1; $i_x5c_chain[] = $attStmt['x5c'][$i]->getBinaryString(); + } + unset ($i); + } + } + + + /* + * returns the key certificate in PEM format + * @return string + */ + public function getCertificatePem() { + return $this->_createCertificatePem($this->_x5c); + } + + /** + * @param string $clientDataHash + */ + public function validateAttestation($clientDataHash) { + $publicKey = \openssl_pkey_get_public($this->getCertificatePem()); + + if ($publicKey === false) { + throw new WebAuthnException('invalid public key: ' . \openssl_error_string(), WebAuthnException::INVALID_PUBLIC_KEY); + } + + // Verify that sig is a valid signature over the concatenation of authenticatorData and clientDataHash + // using the attestation public key in attestnCert with the algorithm specified in alg. + $dataToVerify = $this->_authenticatorData->getBinary(); + $dataToVerify .= $clientDataHash; + + $coseAlgorithm = $this->_getCoseAlgorithm($this->_alg); + + // check certificate + return \openssl_verify($dataToVerify, $this->_signature, $publicKey, $coseAlgorithm->openssl) === 1; + } + + /** + * validates the certificate against root certificates + * @param array $rootCas + * @return boolean + * @throws WebAuthnException + */ + public function validateRootCertificate($rootCas) { + $chainC = $this->_createX5cChainFile(); + if ($chainC) { + $rootCas[] = $chainC; + } + + $v = \openssl_x509_checkpurpose($this->getCertificatePem(), -1, $rootCas); + if ($v === -1) { + throw new WebAuthnException('error on validating root certificate: ' . \openssl_error_string(), WebAuthnException::CERTIFICATE_NOT_TRUSTED); + } + return $v; + } +} + diff --git a/restricted/WebAuthn/src/Attestation/Format/AndroidSafetyNet.php b/restricted/WebAuthn/src/Attestation/Format/AndroidSafetyNet.php new file mode 100644 index 0000000..ba0db52 --- /dev/null +++ b/restricted/WebAuthn/src/Attestation/Format/AndroidSafetyNet.php @@ -0,0 +1,152 @@ +_attestationObject['attStmt']; + + if (!\array_key_exists('ver', $attStmt) || !$attStmt['ver']) { + throw new WebAuthnException('invalid Android Safety Net Format', WebAuthnException::INVALID_DATA); + } + + if (!\array_key_exists('response', $attStmt) || !($attStmt['response'] instanceof ByteBuffer)) { + throw new WebAuthnException('invalid Android Safety Net Format', WebAuthnException::INVALID_DATA); + } + + $response = $attStmt['response']->getBinaryString(); + + // Response is a JWS [RFC7515] object in Compact Serialization. + // JWSs have three segments separated by two period ('.') characters + $parts = \explode('.', $response); + unset ($response); + if (\count($parts) !== 3) { + throw new WebAuthnException('invalid JWS data', WebAuthnException::INVALID_DATA); + } + + $header = $this->_base64url_decode($parts[0]); + $payload = $this->_base64url_decode($parts[1]); + $this->_signature = $this->_base64url_decode($parts[2]); + $this->_signedValue = $parts[0] . '.' . $parts[1]; + unset ($parts); + + $header = \json_decode($header); + $payload = \json_decode($payload); + + if (!($header instanceof \stdClass)) { + throw new WebAuthnException('invalid JWS header', WebAuthnException::INVALID_DATA); + } + if (!($payload instanceof \stdClass)) { + throw new WebAuthnException('invalid JWS payload', WebAuthnException::INVALID_DATA); + } + + if (!isset($header->x5c) || !is_array($header->x5c) || count($header->x5c) === 0) { + throw new WebAuthnException('No X.509 signature in JWS Header', WebAuthnException::INVALID_DATA); + } + + // algorithm + if (!\in_array($header->alg, array('RS256', 'ES256'))) { + throw new WebAuthnException('invalid JWS algorithm ' . $header->alg, WebAuthnException::INVALID_DATA); + } + + $this->_x5c = \base64_decode($header->x5c[0]); + $this->_payload = $payload; + + if (count($header->x5c) > 1) { + for ($i=1; $ix5c); $i++) { + $this->_x5c_chain[] = \base64_decode($header->x5c[$i]); + } + unset ($i); + } + } + + /** + * ctsProfileMatch: A stricter verdict of device integrity. + * If the value of ctsProfileMatch is true, then the profile of the device running your app matches + * the profile of a device that has passed Android compatibility testing and + * has been approved as a Google-certified Android device. + * @return bool + */ + public function ctsProfileMatch() { + return isset($this->_payload->ctsProfileMatch) ? !!$this->_payload->ctsProfileMatch : false; + } + + + /* + * returns the key certificate in PEM format + * @return string + */ + public function getCertificatePem() { + return $this->_createCertificatePem($this->_x5c); + } + + /** + * @param string $clientDataHash + */ + public function validateAttestation($clientDataHash) { + $publicKey = \openssl_pkey_get_public($this->getCertificatePem()); + + // Verify that the nonce in the response is identical to the Base64 encoding + // of the SHA-256 hash of the concatenation of authenticatorData and clientDataHash. + if (empty($this->_payload->nonce) || $this->_payload->nonce !== \base64_encode(\hash('SHA256', $this->_authenticatorData->getBinary() . $clientDataHash, true))) { + throw new WebAuthnException('invalid nonce in JWS payload', WebAuthnException::INVALID_DATA); + } + + // Verify that attestationCert is issued to the hostname "attest.android.com" + $certInfo = \openssl_x509_parse($this->getCertificatePem()); + if (!\is_array($certInfo) || ($certInfo['subject']['CN'] ?? '') !== 'attest.android.com') { + throw new WebAuthnException('invalid certificate CN in JWS (' . ($certInfo['subject']['CN'] ?? '-'). ')', WebAuthnException::INVALID_DATA); + } + + // Verify that the basicIntegrity attribute in the payload of response is true. + if (empty($this->_payload->basicIntegrity)) { + throw new WebAuthnException('invalid basicIntegrity in payload', WebAuthnException::INVALID_DATA); + } + + // check certificate + return \openssl_verify($this->_signedValue, $this->_signature, $publicKey, OPENSSL_ALGO_SHA256) === 1; + } + + + /** + * validates the certificate against root certificates + * @param array $rootCas + * @return boolean + * @throws WebAuthnException + */ + public function validateRootCertificate($rootCas) { + $chainC = $this->_createX5cChainFile(); + if ($chainC) { + $rootCas[] = $chainC; + } + + $v = \openssl_x509_checkpurpose($this->getCertificatePem(), -1, $rootCas); + if ($v === -1) { + throw new WebAuthnException('error on validating root certificate: ' . \openssl_error_string(), WebAuthnException::CERTIFICATE_NOT_TRUSTED); + } + return $v; + } + + + /** + * decode base64 url + * @param string $data + * @return string + */ + private function _base64url_decode($data) { + return \base64_decode(\strtr($data, '-_', '+/') . \str_repeat('=', 3 - (3 + \strlen($data)) % 4)); + } +} + diff --git a/restricted/WebAuthn/src/Attestation/Format/Apple.php b/restricted/WebAuthn/src/Attestation/Format/Apple.php new file mode 100644 index 0000000..e4f38e0 --- /dev/null +++ b/restricted/WebAuthn/src/Attestation/Format/Apple.php @@ -0,0 +1,139 @@ +_attestationObject['attStmt']; + + + // certificate for validation + if (\array_key_exists('x5c', $attStmt) && \is_array($attStmt['x5c']) && \count($attStmt['x5c']) > 0) { + + // The attestation certificate attestnCert MUST be the first element in the array + $attestnCert = array_shift($attStmt['x5c']); + + if (!($attestnCert instanceof ByteBuffer)) { + throw new WebAuthnException('invalid x5c certificate', WebAuthnException::INVALID_DATA); + } + + $this->_x5c = $attestnCert->getBinaryString(); + + // certificate chain + foreach ($attStmt['x5c'] as $chain) { + if ($chain instanceof ByteBuffer) { + $this->_x5c_chain[] = $chain->getBinaryString(); + } + } + } else { + throw new WebAuthnException('invalid Apple attestation statement: missing x5c', WebAuthnException::INVALID_DATA); + } + } + + + /* + * returns the key certificate in PEM format + * @return string|null + */ + public function getCertificatePem() { + return $this->_createCertificatePem($this->_x5c); + } + + /** + * @param string $clientDataHash + */ + public function validateAttestation($clientDataHash) { + return $this->_validateOverX5c($clientDataHash); + } + + /** + * validates the certificate against root certificates + * @param array $rootCas + * @return boolean + * @throws WebAuthnException + */ + public function validateRootCertificate($rootCas) { + $chainC = $this->_createX5cChainFile(); + if ($chainC) { + $rootCas[] = $chainC; + } + + $v = \openssl_x509_checkpurpose($this->getCertificatePem(), -1, $rootCas); + if ($v === -1) { + throw new WebAuthnException('error on validating root certificate: ' . \openssl_error_string(), WebAuthnException::CERTIFICATE_NOT_TRUSTED); + } + return $v; + } + + /** + * validate if x5c is present + * @param string $clientDataHash + * @return bool + * @throws WebAuthnException + */ + protected function _validateOverX5c($clientDataHash) { + $publicKey = \openssl_pkey_get_public($this->getCertificatePem()); + + if ($publicKey === false) { + throw new WebAuthnException('invalid public key: ' . \openssl_error_string(), WebAuthnException::INVALID_PUBLIC_KEY); + } + + // Concatenate authenticatorData and clientDataHash to form nonceToHash. + $nonceToHash = $this->_authenticatorData->getBinary(); + $nonceToHash .= $clientDataHash; + + // Perform SHA-256 hash of nonceToHash to produce nonce + $nonce = hash('SHA256', $nonceToHash, true); + + $credCert = openssl_x509_read($this->getCertificatePem()); + if ($credCert === false) { + throw new WebAuthnException('invalid x5c certificate: ' . \openssl_error_string(), WebAuthnException::INVALID_DATA); + } + + $keyData = openssl_pkey_get_details(openssl_pkey_get_public($credCert)); + $key = is_array($keyData) && array_key_exists('key', $keyData) ? $keyData['key'] : null; + + + // Verify that nonce equals the value of the extension with OID ( 1.2.840.113635.100.8.2 ) in credCert. + $parsedCredCert = openssl_x509_parse($credCert); + $nonceExtension = $parsedCredCert['extensions']['1.2.840.113635.100.8.2'] ?? ''; + + // nonce padded by ASN.1 string: 30 24 A1 22 04 20 + // 30 — type tag indicating sequence + // 24 — 36 byte following + // A1 — Enumerated [1] + // 22 — 34 byte following + // 04 — type tag indicating octet string + // 20 — 32 byte following + + $asn1Padding = "\x30\x24\xA1\x22\x04\x20"; + if (substr($nonceExtension, 0, strlen($asn1Padding)) === $asn1Padding) { + $nonceExtension = substr($nonceExtension, strlen($asn1Padding)); + } + + if ($nonceExtension !== $nonce) { + throw new WebAuthnException('nonce doesn\'t equal the value of the extension with OID 1.2.840.113635.100.8.2', WebAuthnException::INVALID_DATA); + } + + // Verify that the credential public key equals the Subject Public Key of credCert. + $authKeyData = openssl_pkey_get_details(openssl_pkey_get_public($this->_authenticatorData->getPublicKeyPem())); + $authKey = is_array($authKeyData) && array_key_exists('key', $authKeyData) ? $authKeyData['key'] : null; + + if ($key === null || $key !== $authKey) { + throw new WebAuthnException('credential public key doesn\'t equal the Subject Public Key of credCert', WebAuthnException::INVALID_DATA); + } + + return true; + } + +} + diff --git a/restricted/WebAuthn/src/Attestation/Format/FormatBase.php b/restricted/WebAuthn/src/Attestation/Format/FormatBase.php new file mode 100644 index 0000000..92f1010 --- /dev/null +++ b/restricted/WebAuthn/src/Attestation/Format/FormatBase.php @@ -0,0 +1,193 @@ +_attestationObject = $AttestionObject; + $this->_authenticatorData = $authenticatorData; + } + + /** + * + */ + public function __destruct() { + // delete X.509 chain certificate file after use + if ($this->_x5c_tempFile && \is_file($this->_x5c_tempFile)) { + \unlink($this->_x5c_tempFile); + } + } + + /** + * returns the certificate chain in PEM format + * @return string|null + */ + public function getCertificateChain() { + if ($this->_x5c_tempFile && \is_file($this->_x5c_tempFile)) { + return \file_get_contents($this->_x5c_tempFile); + } + return null; + } + + /** + * returns the key X.509 certificate in PEM format + * @return string + */ + public function getCertificatePem() { + // need to be overwritten + return null; + } + + /** + * checks validity of the signature + * @param string $clientDataHash + * @return bool + * @throws WebAuthnException + */ + public function validateAttestation($clientDataHash) { + // need to be overwritten + return false; + } + + /** + * validates the certificate against root certificates + * @param array $rootCas + * @return boolean + * @throws WebAuthnException + */ + public function validateRootCertificate($rootCas) { + // need to be overwritten + return false; + } + + + /** + * create a PEM encoded certificate with X.509 binary data + * @param string $x5c + * @return string + */ + protected function _createCertificatePem($x5c) { + $pem = '-----BEGIN CERTIFICATE-----' . "\n"; + $pem .= \chunk_split(\base64_encode($x5c), 64, "\n"); + $pem .= '-----END CERTIFICATE-----' . "\n"; + return $pem; + } + + /** + * creates a PEM encoded chain file + * @return string|null + */ + protected function _createX5cChainFile() { + $content = ''; + if (\is_array($this->_x5c_chain) && \count($this->_x5c_chain) > 0) { + foreach ($this->_x5c_chain as $x5c) { + $certInfo = \openssl_x509_parse($this->_createCertificatePem($x5c)); + + // check if certificate is self signed + if (\is_array($certInfo) && \is_array($certInfo['issuer']) && \is_array($certInfo['subject'])) { + $selfSigned = false; + + $subjectKeyIdentifier = $certInfo['extensions']['subjectKeyIdentifier'] ?? null; + $authorityKeyIdentifier = $certInfo['extensions']['authorityKeyIdentifier'] ?? null; + + if ($authorityKeyIdentifier && substr($authorityKeyIdentifier, 0, 6) === 'keyid:') { + $authorityKeyIdentifier = substr($authorityKeyIdentifier, 6); + } + if ($subjectKeyIdentifier && substr($subjectKeyIdentifier, 0, 6) === 'keyid:') { + $subjectKeyIdentifier = substr($subjectKeyIdentifier, 6); + } + + if (($subjectKeyIdentifier && !$authorityKeyIdentifier) || ($authorityKeyIdentifier && $authorityKeyIdentifier === $subjectKeyIdentifier)) { + $selfSigned = true; + } + + if (!$selfSigned) { + $content .= "\n" . $this->_createCertificatePem($x5c) . "\n"; + } + } + } + } + + if ($content) { + $this->_x5c_tempFile = \tempnam(\sys_get_temp_dir(), 'x5c_'); + if (\file_put_contents($this->_x5c_tempFile, $content) !== false) { + return $this->_x5c_tempFile; + } + } + + return null; + } + + + /** + * returns the name and openssl key for provided cose number. + * @param int $coseNumber + * @return \stdClass|null + */ + protected function _getCoseAlgorithm($coseNumber) { + // https://www.iana.org/assignments/cose/cose.xhtml#algorithms + $coseAlgorithms = array( + array( + 'hash' => 'SHA1', + 'openssl' => OPENSSL_ALGO_SHA1, + 'cose' => array( + -65535 // RS1 + )), + + array( + 'hash' => 'SHA256', + 'openssl' => OPENSSL_ALGO_SHA256, + 'cose' => array( + -257, // RS256 + -37, // PS256 + -7, // ES256 + 5 // HMAC256 + )), + + array( + 'hash' => 'SHA384', + 'openssl' => OPENSSL_ALGO_SHA384, + 'cose' => array( + -258, // RS384 + -38, // PS384 + -35, // ES384 + 6 // HMAC384 + )), + + array( + 'hash' => 'SHA512', + 'openssl' => OPENSSL_ALGO_SHA512, + 'cose' => array( + -259, // RS512 + -39, // PS512 + -36, // ES512 + 7 // HMAC512 + )) + ); + + foreach ($coseAlgorithms as $coseAlgorithm) { + if (\in_array($coseNumber, $coseAlgorithm['cose'], true)) { + $return = new \stdClass(); + $return->hash = $coseAlgorithm['hash']; + $return->openssl = $coseAlgorithm['openssl']; + return $return; + } + } + + return null; + } +} diff --git a/restricted/WebAuthn/src/Attestation/Format/None.php b/restricted/WebAuthn/src/Attestation/Format/None.php new file mode 100644 index 0000000..ba95e40 --- /dev/null +++ b/restricted/WebAuthn/src/Attestation/Format/None.php @@ -0,0 +1,41 @@ +_attestationObject['attStmt']; + + if (!\array_key_exists('alg', $attStmt) || $this->_getCoseAlgorithm($attStmt['alg']) === null) { + throw new WebAuthnException('unsupported alg: ' . $attStmt['alg'], WebAuthnException::INVALID_DATA); + } + + if (!\array_key_exists('sig', $attStmt) || !\is_object($attStmt['sig']) || !($attStmt['sig'] instanceof ByteBuffer)) { + throw new WebAuthnException('no signature found', WebAuthnException::INVALID_DATA); + } + + $this->_alg = $attStmt['alg']; + $this->_signature = $attStmt['sig']->getBinaryString(); + + // certificate for validation + if (\array_key_exists('x5c', $attStmt) && \is_array($attStmt['x5c']) && \count($attStmt['x5c']) > 0) { + + // The attestation certificate attestnCert MUST be the first element in the array + $attestnCert = array_shift($attStmt['x5c']); + + if (!($attestnCert instanceof ByteBuffer)) { + throw new WebAuthnException('invalid x5c certificate', WebAuthnException::INVALID_DATA); + } + + $this->_x5c = $attestnCert->getBinaryString(); + + // certificate chain + foreach ($attStmt['x5c'] as $chain) { + if ($chain instanceof ByteBuffer) { + $this->_x5c_chain[] = $chain->getBinaryString(); + } + } + } + } + + + /* + * returns the key certificate in PEM format + * @return string|null + */ + public function getCertificatePem() { + if (!$this->_x5c) { + return null; + } + return $this->_createCertificatePem($this->_x5c); + } + + /** + * @param string $clientDataHash + */ + public function validateAttestation($clientDataHash) { + if ($this->_x5c) { + return $this->_validateOverX5c($clientDataHash); + } else { + return $this->_validateSelfAttestation($clientDataHash); + } + } + + /** + * validates the certificate against root certificates + * @param array $rootCas + * @return boolean + * @throws WebAuthnException + */ + public function validateRootCertificate($rootCas) { + if (!$this->_x5c) { + return false; + } + + $chainC = $this->_createX5cChainFile(); + if ($chainC) { + $rootCas[] = $chainC; + } + + $v = \openssl_x509_checkpurpose($this->getCertificatePem(), -1, $rootCas); + if ($v === -1) { + throw new WebAuthnException('error on validating root certificate: ' . \openssl_error_string(), WebAuthnException::CERTIFICATE_NOT_TRUSTED); + } + return $v; + } + + /** + * validate if x5c is present + * @param string $clientDataHash + * @return bool + * @throws WebAuthnException + */ + protected function _validateOverX5c($clientDataHash) { + $publicKey = \openssl_pkey_get_public($this->getCertificatePem()); + + if ($publicKey === false) { + throw new WebAuthnException('invalid public key: ' . \openssl_error_string(), WebAuthnException::INVALID_PUBLIC_KEY); + } + + // Verify that sig is a valid signature over the concatenation of authenticatorData and clientDataHash + // using the attestation public key in attestnCert with the algorithm specified in alg. + $dataToVerify = $this->_authenticatorData->getBinary(); + $dataToVerify .= $clientDataHash; + + $coseAlgorithm = $this->_getCoseAlgorithm($this->_alg); + + // check certificate + return \openssl_verify($dataToVerify, $this->_signature, $publicKey, $coseAlgorithm->openssl) === 1; + } + + /** + * validate if self attestation is in use + * @param string $clientDataHash + * @return bool + */ + protected function _validateSelfAttestation($clientDataHash) { + // Verify that sig is a valid signature over the concatenation of authenticatorData and clientDataHash + // using the credential public key with alg. + $dataToVerify = $this->_authenticatorData->getBinary(); + $dataToVerify .= $clientDataHash; + + $publicKey = $this->_authenticatorData->getPublicKeyPem(); + + // check certificate + return \openssl_verify($dataToVerify, $this->_signature, $publicKey, OPENSSL_ALGO_SHA256) === 1; + } +} + diff --git a/restricted/WebAuthn/src/Attestation/Format/Tpm.php b/restricted/WebAuthn/src/Attestation/Format/Tpm.php new file mode 100644 index 0000000..338cd45 --- /dev/null +++ b/restricted/WebAuthn/src/Attestation/Format/Tpm.php @@ -0,0 +1,180 @@ +_attestationObject['attStmt']; + + if (!\array_key_exists('ver', $attStmt) || $attStmt['ver'] !== '2.0') { + throw new WebAuthnException('invalid tpm version: ' . $attStmt['ver'], WebAuthnException::INVALID_DATA); + } + + if (!\array_key_exists('alg', $attStmt) || $this->_getCoseAlgorithm($attStmt['alg']) === null) { + throw new WebAuthnException('unsupported alg: ' . $attStmt['alg'], WebAuthnException::INVALID_DATA); + } + + if (!\array_key_exists('sig', $attStmt) || !\is_object($attStmt['sig']) || !($attStmt['sig'] instanceof ByteBuffer)) { + throw new WebAuthnException('signature not found', WebAuthnException::INVALID_DATA); + } + + if (!\array_key_exists('certInfo', $attStmt) || !\is_object($attStmt['certInfo']) || !($attStmt['certInfo'] instanceof ByteBuffer)) { + throw new WebAuthnException('certInfo not found', WebAuthnException::INVALID_DATA); + } + + if (!\array_key_exists('pubArea', $attStmt) || !\is_object($attStmt['pubArea']) || !($attStmt['pubArea'] instanceof ByteBuffer)) { + throw new WebAuthnException('pubArea not found', WebAuthnException::INVALID_DATA); + } + + $this->_alg = $attStmt['alg']; + $this->_signature = $attStmt['sig']->getBinaryString(); + $this->_certInfo = $attStmt['certInfo']; + $this->_pubArea = $attStmt['pubArea']; + + // certificate for validation + if (\array_key_exists('x5c', $attStmt) && \is_array($attStmt['x5c']) && \count($attStmt['x5c']) > 0) { + + // The attestation certificate attestnCert MUST be the first element in the array + $attestnCert = array_shift($attStmt['x5c']); + + if (!($attestnCert instanceof ByteBuffer)) { + throw new WebAuthnException('invalid x5c certificate', WebAuthnException::INVALID_DATA); + } + + $this->_x5c = $attestnCert->getBinaryString(); + + // certificate chain + foreach ($attStmt['x5c'] as $chain) { + if ($chain instanceof ByteBuffer) { + $this->_x5c_chain[] = $chain->getBinaryString(); + } + } + + } else { + throw new WebAuthnException('no x5c certificate found', WebAuthnException::INVALID_DATA); + } + } + + + /* + * returns the key certificate in PEM format + * @return string|null + */ + public function getCertificatePem() { + if (!$this->_x5c) { + return null; + } + return $this->_createCertificatePem($this->_x5c); + } + + /** + * @param string $clientDataHash + */ + public function validateAttestation($clientDataHash) { + return $this->_validateOverX5c($clientDataHash); + } + + /** + * validates the certificate against root certificates + * @param array $rootCas + * @return boolean + * @throws WebAuthnException + */ + public function validateRootCertificate($rootCas) { + if (!$this->_x5c) { + return false; + } + + $chainC = $this->_createX5cChainFile(); + if ($chainC) { + $rootCas[] = $chainC; + } + + $v = \openssl_x509_checkpurpose($this->getCertificatePem(), -1, $rootCas); + if ($v === -1) { + throw new WebAuthnException('error on validating root certificate: ' . \openssl_error_string(), WebAuthnException::CERTIFICATE_NOT_TRUSTED); + } + return $v; + } + + /** + * validate if x5c is present + * @param string $clientDataHash + * @return bool + * @throws WebAuthnException + */ + protected function _validateOverX5c($clientDataHash) { + $publicKey = \openssl_pkey_get_public($this->getCertificatePem()); + + if ($publicKey === false) { + throw new WebAuthnException('invalid public key: ' . \openssl_error_string(), WebAuthnException::INVALID_PUBLIC_KEY); + } + + // Concatenate authenticatorData and clientDataHash to form attToBeSigned. + $attToBeSigned = $this->_authenticatorData->getBinary(); + $attToBeSigned .= $clientDataHash; + + // Validate that certInfo is valid: + + // Verify that magic is set to TPM_GENERATED_VALUE. + if ($this->_certInfo->getBytes(0, 4) !== $this->_TPM_GENERATED_VALUE) { + throw new WebAuthnException('tpm magic not TPM_GENERATED_VALUE', WebAuthnException::INVALID_DATA); + } + + // Verify that type is set to TPM_ST_ATTEST_CERTIFY. + if ($this->_certInfo->getBytes(4, 2) !== $this->_TPM_ST_ATTEST_CERTIFY) { + throw new WebAuthnException('tpm type not TPM_ST_ATTEST_CERTIFY', WebAuthnException::INVALID_DATA); + } + + $offset = 6; + $qualifiedSigner = $this->_tpmReadLengthPrefixed($this->_certInfo, $offset); + $extraData = $this->_tpmReadLengthPrefixed($this->_certInfo, $offset); + $coseAlg = $this->_getCoseAlgorithm($this->_alg); + + // Verify that extraData is set to the hash of attToBeSigned using the hash algorithm employed in "alg". + if ($extraData->getBinaryString() !== \hash($coseAlg->hash, $attToBeSigned, true)) { + throw new WebAuthnException('certInfo:extraData not hash of attToBeSigned', WebAuthnException::INVALID_DATA); + } + + // Verify the sig is a valid signature over certInfo using the attestation + // public key in aikCert with the algorithm specified in alg. + return \openssl_verify($this->_certInfo->getBinaryString(), $this->_signature, $publicKey, $coseAlg->openssl) === 1; + } + + + /** + * returns next part of ByteBuffer + * @param ByteBuffer $buffer + * @param int $offset + * @return ByteBuffer + */ + protected function _tpmReadLengthPrefixed(ByteBuffer $buffer, &$offset) { + $len = $buffer->getUint16Val($offset); + $data = $buffer->getBytes($offset + 2, $len); + $offset += (2 + $len); + + return new ByteBuffer($data); + } + +} + diff --git a/restricted/WebAuthn/src/Attestation/Format/U2f.php b/restricted/WebAuthn/src/Attestation/Format/U2f.php new file mode 100644 index 0000000..2b51ba8 --- /dev/null +++ b/restricted/WebAuthn/src/Attestation/Format/U2f.php @@ -0,0 +1,93 @@ +_attestationObject['attStmt']; + + if (\array_key_exists('alg', $attStmt) && $attStmt['alg'] !== $this->_alg) { + throw new WebAuthnException('u2f only accepts algorithm -7 ("ES256"), but got ' . $attStmt['alg'], WebAuthnException::INVALID_DATA); + } + + if (!\array_key_exists('sig', $attStmt) || !\is_object($attStmt['sig']) || !($attStmt['sig'] instanceof ByteBuffer)) { + throw new WebAuthnException('no signature found', WebAuthnException::INVALID_DATA); + } + + if (!\array_key_exists('x5c', $attStmt) || !\is_array($attStmt['x5c']) || \count($attStmt['x5c']) !== 1) { + throw new WebAuthnException('invalid x5c certificate', WebAuthnException::INVALID_DATA); + } + + if (!\is_object($attStmt['x5c'][0]) || !($attStmt['x5c'][0] instanceof ByteBuffer)) { + throw new WebAuthnException('invalid x5c certificate', WebAuthnException::INVALID_DATA); + } + + $this->_signature = $attStmt['sig']->getBinaryString(); + $this->_x5c = $attStmt['x5c'][0]->getBinaryString(); + } + + + /* + * returns the key certificate in PEM format + * @return string + */ + public function getCertificatePem() { + $pem = '-----BEGIN CERTIFICATE-----' . "\n"; + $pem .= \chunk_split(\base64_encode($this->_x5c), 64, "\n"); + $pem .= '-----END CERTIFICATE-----' . "\n"; + return $pem; + } + + /** + * @param string $clientDataHash + */ + public function validateAttestation($clientDataHash) { + $publicKey = \openssl_pkey_get_public($this->getCertificatePem()); + + if ($publicKey === false) { + throw new WebAuthnException('invalid public key: ' . \openssl_error_string(), WebAuthnException::INVALID_PUBLIC_KEY); + } + + // Let verificationData be the concatenation of (0x00 || rpIdHash || clientDataHash || credentialId || publicKeyU2F) + $dataToVerify = "\x00"; + $dataToVerify .= $this->_authenticatorData->getRpIdHash(); + $dataToVerify .= $clientDataHash; + $dataToVerify .= $this->_authenticatorData->getCredentialId(); + $dataToVerify .= $this->_authenticatorData->getPublicKeyU2F(); + + $coseAlgorithm = $this->_getCoseAlgorithm($this->_alg); + + // check certificate + return \openssl_verify($dataToVerify, $this->_signature, $publicKey, $coseAlgorithm->openssl) === 1; + } + + /** + * validates the certificate against root certificates + * @param array $rootCas + * @return boolean + * @throws WebAuthnException + */ + public function validateRootCertificate($rootCas) { + $chainC = $this->_createX5cChainFile(); + if ($chainC) { + $rootCas[] = $chainC; + } + + $v = \openssl_x509_checkpurpose($this->getCertificatePem(), -1, $rootCas); + if ($v === -1) { + throw new WebAuthnException('error on validating root certificate: ' . \openssl_error_string(), WebAuthnException::CERTIFICATE_NOT_TRUSTED); + } + return $v; + } +} diff --git a/restricted/WebAuthn/src/Binary/ByteBuffer.php b/restricted/WebAuthn/src/Binary/ByteBuffer.php new file mode 100644 index 0000000..861ed60 --- /dev/null +++ b/restricted/WebAuthn/src/Binary/ByteBuffer.php @@ -0,0 +1,300 @@ +_data = (string)$binaryData; + $this->_length = \strlen($binaryData); + } + + + // ----------------------- + // PUBLIC STATIC + // ----------------------- + + /** + * create a ByteBuffer from a base64 url encoded string + * @param string $base64url + * @return ByteBuffer + */ + public static function fromBase64Url($base64url): ByteBuffer { + $bin = self::_base64url_decode($base64url); + if ($bin === false) { + throw new WebAuthnException('ByteBuffer: Invalid base64 url string', WebAuthnException::BYTEBUFFER); + } + return new ByteBuffer($bin); + } + + /** + * create a ByteBuffer from a base64 url encoded string + * @param string $hex + * @return ByteBuffer + */ + public static function fromHex($hex): ByteBuffer { + $bin = \hex2bin($hex); + if ($bin === false) { + throw new WebAuthnException('ByteBuffer: Invalid hex string', WebAuthnException::BYTEBUFFER); + } + return new ByteBuffer($bin); + } + + /** + * create a random ByteBuffer + * @param string $length + * @return ByteBuffer + */ + public static function randomBuffer($length): ByteBuffer { + if (\function_exists('random_bytes')) { // >PHP 7.0 + return new ByteBuffer(\random_bytes($length)); + + } else if (\function_exists('openssl_random_pseudo_bytes')) { + return new ByteBuffer(\openssl_random_pseudo_bytes($length)); + + } else { + throw new WebAuthnException('ByteBuffer: cannot generate random bytes', WebAuthnException::BYTEBUFFER); + } + } + + // ----------------------- + // PUBLIC + // ----------------------- + + public function getBytes($offset, $length): string { + if ($offset < 0 || $length < 0 || ($offset + $length > $this->_length)) { + throw new WebAuthnException('ByteBuffer: Invalid offset or length', WebAuthnException::BYTEBUFFER); + } + return \substr($this->_data, $offset, $length); + } + + public function getByteVal($offset): int { + if ($offset < 0 || $offset >= $this->_length) { + throw new WebAuthnException('ByteBuffer: Invalid offset', WebAuthnException::BYTEBUFFER); + } + return \ord(\substr($this->_data, $offset, 1)); + } + + public function getJson($jsonFlags=0) { + $data = \json_decode($this->getBinaryString(), null, 512, $jsonFlags); + if (\json_last_error() !== JSON_ERROR_NONE) { + throw new WebAuthnException(\json_last_error_msg(), WebAuthnException::BYTEBUFFER); + } + return $data; + } + + public function getLength(): int { + return $this->_length; + } + + public function getUint16Val($offset) { + if ($offset < 0 || ($offset + 2) > $this->_length) { + throw new WebAuthnException('ByteBuffer: Invalid offset', WebAuthnException::BYTEBUFFER); + } + return unpack('n', $this->_data, $offset)[1]; + } + + public function getUint32Val($offset) { + if ($offset < 0 || ($offset + 4) > $this->_length) { + throw new WebAuthnException('ByteBuffer: Invalid offset', WebAuthnException::BYTEBUFFER); + } + $val = unpack('N', $this->_data, $offset)[1]; + + // Signed integer overflow causes signed negative numbers + if ($val < 0) { + throw new WebAuthnException('ByteBuffer: Value out of integer range.', WebAuthnException::BYTEBUFFER); + } + return $val; + } + + public function getUint64Val($offset) { + if (PHP_INT_SIZE < 8) { + throw new WebAuthnException('ByteBuffer: 64-bit values not supported by this system', WebAuthnException::BYTEBUFFER); + } + if ($offset < 0 || ($offset + 8) > $this->_length) { + throw new WebAuthnException('ByteBuffer: Invalid offset', WebAuthnException::BYTEBUFFER); + } + $val = unpack('J', $this->_data, $offset)[1]; + + // Signed integer overflow causes signed negative numbers + if ($val < 0) { + throw new WebAuthnException('ByteBuffer: Value out of integer range.', WebAuthnException::BYTEBUFFER); + } + + return $val; + } + + public function getHalfFloatVal($offset) { + //FROM spec pseudo decode_half(unsigned char *halfp) + $half = $this->getUint16Val($offset); + + $exp = ($half >> 10) & 0x1f; + $mant = $half & 0x3ff; + + if ($exp === 0) { + $val = $mant * (2 ** -24); + } elseif ($exp !== 31) { + $val = ($mant + 1024) * (2 ** ($exp - 25)); + } else { + $val = ($mant === 0) ? INF : NAN; + } + + return ($half & 0x8000) ? -$val : $val; + } + + public function getFloatVal($offset) { + if ($offset < 0 || ($offset + 4) > $this->_length) { + throw new WebAuthnException('ByteBuffer: Invalid offset', WebAuthnException::BYTEBUFFER); + } + return unpack('G', $this->_data, $offset)[1]; + } + + public function getDoubleVal($offset) { + if ($offset < 0 || ($offset + 8) > $this->_length) { + throw new WebAuthnException('ByteBuffer: Invalid offset', WebAuthnException::BYTEBUFFER); + } + return unpack('E', $this->_data, $offset)[1]; + } + + /** + * @return string + */ + public function getBinaryString(): string { + return $this->_data; + } + + /** + * @param string|ByteBuffer $buffer + * @return bool + */ + public function equals($buffer): bool { + if (is_object($buffer) && $buffer instanceof ByteBuffer) { + return $buffer->getBinaryString() === $this->getBinaryString(); + + } else if (is_string($buffer)) { + return $buffer === $this->getBinaryString(); + } + + return false; + } + + /** + * @return string + */ + public function getHex(): string { + return \bin2hex($this->_data); + } + + /** + * @return bool + */ + public function isEmpty(): bool { + return $this->_length === 0; + } + + + /** + * jsonSerialize interface + * return binary data in RFC 1342-Like serialized string + * @return string + */ + public function jsonSerialize(): string { + if (ByteBuffer::$useBase64UrlEncoding) { + return self::_base64url_encode($this->_data); + + } else { + return '=?BINARY?B?' . \base64_encode($this->_data) . '?='; + } + } + + /** + * Serializable-Interface + * @return string + */ + public function serialize(): string { + return \serialize($this->_data); + } + + /** + * Serializable-Interface + * @param string $serialized + */ + public function unserialize($serialized) { + $this->_data = \unserialize($serialized); + $this->_length = \strlen($this->_data); + } + + /** + * (PHP 8 deprecates Serializable-Interface) + * @return array + */ + public function __serialize(): array { + return [ + 'data' => \serialize($this->_data) + ]; + } + + /** + * object to string + * @return string + */ + public function __toString(): string { + return $this->getHex(); + } + + /** + * (PHP 8 deprecates Serializable-Interface) + * @param array $data + * @return void + */ + public function __unserialize($data) { + if ($data && isset($data['data'])) { + $this->_data = \unserialize($data['data']); + $this->_length = \strlen($this->_data); + } + } + + // ----------------------- + // PROTECTED STATIC + // ----------------------- + + /** + * base64 url decoding + * @param string $data + * @return string + */ + protected static function _base64url_decode($data): string { + return \base64_decode(\strtr($data, '-_', '+/') . \str_repeat('=', 3 - (3 + \strlen($data)) % 4)); + } + + /** + * base64 url encoding + * @param string $data + * @return string + */ + protected static function _base64url_encode($data): string { + return \rtrim(\strtr(\base64_encode($data), '+/', '-_'), '='); + } +} diff --git a/restricted/WebAuthn/src/CBOR/CborDecoder.php b/restricted/WebAuthn/src/CBOR/CborDecoder.php new file mode 100644 index 0000000..e6b5427 --- /dev/null +++ b/restricted/WebAuthn/src/CBOR/CborDecoder.php @@ -0,0 +1,220 @@ +getLength()) { + throw new WebAuthnException('Unused bytes after data item.', WebAuthnException::CBOR); + } + return $result; + } + + /** + * @param ByteBuffer|string $bufOrBin + * @param int $startOffset + * @param int|null $endOffset + * @return mixed + */ + public static function decodeInPlace($bufOrBin, $startOffset, &$endOffset = null) { + $buf = $bufOrBin instanceof ByteBuffer ? $bufOrBin : new ByteBuffer($bufOrBin); + + $offset = $startOffset; + $data = self::_parseItem($buf, $offset); + $endOffset = $offset; + return $data; + } + + // --------------------- + // protected + // --------------------- + + /** + * @param ByteBuffer $buf + * @param int $offset + * @return mixed + */ + protected static function _parseItem(ByteBuffer $buf, &$offset) { + $first = $buf->getByteVal($offset++); + $type = $first >> 5; + $val = $first & 0b11111; + + if ($type === self::CBOR_MAJOR_FLOAT_SIMPLE) { + return self::_parseFloatSimple($val, $buf, $offset); + } + + $val = self::_parseExtraLength($val, $buf, $offset); + + return self::_parseItemData($type, $val, $buf, $offset); + } + + protected static function _parseFloatSimple($val, ByteBuffer $buf, &$offset) { + switch ($val) { + case 24: + $val = $buf->getByteVal($offset); + $offset++; + return self::_parseSimple($val); + + case 25: + $floatValue = $buf->getHalfFloatVal($offset); + $offset += 2; + return $floatValue; + + case 26: + $floatValue = $buf->getFloatVal($offset); + $offset += 4; + return $floatValue; + + case 27: + $floatValue = $buf->getDoubleVal($offset); + $offset += 8; + return $floatValue; + + case 28: + case 29: + case 30: + throw new WebAuthnException('Reserved value used.', WebAuthnException::CBOR); + + case 31: + throw new WebAuthnException('Indefinite length is not supported.', WebAuthnException::CBOR); + } + + return self::_parseSimple($val); + } + + /** + * @param int $val + * @return mixed + * @throws WebAuthnException + */ + protected static function _parseSimple($val) { + if ($val === 20) { + return false; + } + if ($val === 21) { + return true; + } + if ($val === 22) { + return null; + } + throw new WebAuthnException(sprintf('Unsupported simple value %d.', $val), WebAuthnException::CBOR); + } + + protected static function _parseExtraLength($val, ByteBuffer $buf, &$offset) { + switch ($val) { + case 24: + $val = $buf->getByteVal($offset); + $offset++; + break; + + case 25: + $val = $buf->getUint16Val($offset); + $offset += 2; + break; + + case 26: + $val = $buf->getUint32Val($offset); + $offset += 4; + break; + + case 27: + $val = $buf->getUint64Val($offset); + $offset += 8; + break; + + case 28: + case 29: + case 30: + throw new WebAuthnException('Reserved value used.', WebAuthnException::CBOR); + + case 31: + throw new WebAuthnException('Indefinite length is not supported.', WebAuthnException::CBOR); + } + + return $val; + } + + protected static function _parseItemData($type, $val, ByteBuffer $buf, &$offset) { + switch ($type) { + case self::CBOR_MAJOR_UNSIGNED_INT: // uint + return $val; + + case self::CBOR_MAJOR_NEGATIVE_INT: + return -1 - $val; + + case self::CBOR_MAJOR_BYTE_STRING: + $data = $buf->getBytes($offset, $val); + $offset += $val; + return new ByteBuffer($data); // bytes + + case self::CBOR_MAJOR_TEXT_STRING: + $data = $buf->getBytes($offset, $val); + $offset += $val; + return $data; // UTF-8 + + case self::CBOR_MAJOR_ARRAY: + return self::_parseArray($buf, $offset, $val); + + case self::CBOR_MAJOR_MAP: + return self::_parseMap($buf, $offset, $val); + + case self::CBOR_MAJOR_TAG: + return self::_parseItem($buf, $offset); // 1 embedded data item + } + + // This should never be reached + throw new WebAuthnException(sprintf('Unknown major type %d.', $type), WebAuthnException::CBOR); + } + + protected static function _parseMap(ByteBuffer $buf, &$offset, $count) { + $map = array(); + + for ($i = 0; $i < $count; $i++) { + $mapKey = self::_parseItem($buf, $offset); + $mapVal = self::_parseItem($buf, $offset); + + if (!\is_int($mapKey) && !\is_string($mapKey)) { + throw new WebAuthnException('Can only use strings or integers as map keys', WebAuthnException::CBOR); + } + + $map[$mapKey] = $mapVal; // todo dup + } + return $map; + } + + protected static function _parseArray(ByteBuffer $buf, &$offset, $count) { + $arr = array(); + for ($i = 0; $i < $count; $i++) { + $arr[] = self::_parseItem($buf, $offset); + } + + return $arr; + } +} diff --git a/restricted/WebAuthn/src/WebAuthn.php b/restricted/WebAuthn/src/WebAuthn.php new file mode 100644 index 0000000..fee6d92 --- /dev/null +++ b/restricted/WebAuthn/src/WebAuthn.php @@ -0,0 +1,714 @@ +_rpName = $rpName; + $this->_rpId = $rpId; + $this->_rpIdHash = \hash('sha256', $rpId, true); + ByteBuffer::$useBase64UrlEncoding = !!$useBase64UrlEncoding; + $supportedFormats = array('android-key', 'android-safetynet', 'apple', 'fido-u2f', 'none', 'packed', 'tpm'); + + if (!\function_exists('\openssl_open')) { + throw new WebAuthnException('OpenSSL-Module not installed'); + } + + if (!\in_array('SHA256', \array_map('\strtoupper', \openssl_get_md_methods()))) { + throw new WebAuthnException('SHA256 not supported by this openssl installation.'); + } + + // default: all format + if (!is_array($allowedFormats)) { + $allowedFormats = $supportedFormats; + } + $this->_formats = $allowedFormats; + + // validate formats + $invalidFormats = \array_diff($this->_formats, $supportedFormats); + if (!$this->_formats || $invalidFormats) { + throw new WebAuthnException('invalid formats on construct: ' . implode(', ', $invalidFormats)); + } + } + + /** + * add a root certificate to verify new registrations + * @param string $path file path of / directory with root certificates + * @param array|null $certFileExtensions if adding a direction, all files with provided extension are added. default: pem, crt, cer, der + */ + public function addRootCertificates($path, $certFileExtensions=null) { + if (!\is_array($this->_caFiles)) { + $this->_caFiles = []; + } + if ($certFileExtensions === null) { + $certFileExtensions = array('pem', 'crt', 'cer', 'der'); + } + $path = \rtrim(\trim($path), '\\/'); + if (\is_dir($path)) { + foreach (\scandir($path) as $ca) { + if (\is_file($path . DIRECTORY_SEPARATOR . $ca) && \in_array(\strtolower(\pathinfo($ca, PATHINFO_EXTENSION)), $certFileExtensions)) { + $this->addRootCertificates($path . DIRECTORY_SEPARATOR . $ca); + } + } + } else if (\is_file($path) && !\in_array(\realpath($path), $this->_caFiles)) { + $this->_caFiles[] = \realpath($path); + } + } + + /** + * add key hashes for android verification + * @param array $hashes + * @return void + */ + public function addAndroidKeyHashes($hashes) { + if (!\is_array($this->_androidKeyHashes)) { + $this->_androidKeyHashes = []; + } + + foreach ($hashes as $hash) { + if (is_string($hash)) { + $this->_androidKeyHashes[] = $hash; + } + } + } + + /** + * Returns the generated challenge to save for later validation + * @return ByteBuffer + */ + public function getChallenge() { + return $this->_challenge; + } + + /** + * generates the object for a key registration + * provide this data to navigator.credentials.create + * @param string $userId + * @param string $userName + * @param string $userDisplayName + * @param int $timeout timeout in seconds + * @param bool|string $requireResidentKey 'required', if the key should be stored by the authentication device + * Valid values: + * true = required + * false = preferred + * string 'required' 'preferred' 'discouraged' + * @param bool|string $requireUserVerification indicates that you require user verification and will fail the operation + * if the response does not have the UV flag set. + * Valid values: + * true = required + * false = preferred + * string 'required' 'preferred' 'discouraged' + * @param bool|null $crossPlatformAttachment true for cross-platform devices (eg. fido usb), + * false for platform devices (eg. windows hello, android safetynet), + * null for both + * @param array $excludeCredentialIds a array of ids, which are already registered, to prevent re-registration + * @return \stdClass + */ + public function getCreateArgs($userId, $userName, $userDisplayName, $timeout=20, $requireResidentKey=false, $requireUserVerification=false, $crossPlatformAttachment=null, $excludeCredentialIds=[]) { + + $args = new \stdClass(); + $args->publicKey = new \stdClass(); + + // relying party + $args->publicKey->rp = new \stdClass(); + $args->publicKey->rp->name = $this->_rpName; + $args->publicKey->rp->id = $this->_rpId; + + $args->publicKey->authenticatorSelection = new \stdClass(); + $args->publicKey->authenticatorSelection->userVerification = 'preferred'; + + // validate User Verification Requirement + if (\is_bool($requireUserVerification)) { + $args->publicKey->authenticatorSelection->userVerification = $requireUserVerification ? 'required' : 'preferred'; + + } else if (\is_string($requireUserVerification) && \in_array(\strtolower($requireUserVerification), ['required', 'preferred', 'discouraged'])) { + $args->publicKey->authenticatorSelection->userVerification = \strtolower($requireUserVerification); + } + + // validate Resident Key Requirement + if (\is_bool($requireResidentKey) && $requireResidentKey) { + $args->publicKey->authenticatorSelection->requireResidentKey = true; + $args->publicKey->authenticatorSelection->residentKey = 'required'; + + } else if (\is_string($requireResidentKey) && \in_array(\strtolower($requireResidentKey), ['required', 'preferred', 'discouraged'])) { + $requireResidentKey = \strtolower($requireResidentKey); + $args->publicKey->authenticatorSelection->residentKey = $requireResidentKey; + $args->publicKey->authenticatorSelection->requireResidentKey = $requireResidentKey === 'required'; + } + + // filte authenticators attached with the specified authenticator attachment modality + if (\is_bool($crossPlatformAttachment)) { + $args->publicKey->authenticatorSelection->authenticatorAttachment = $crossPlatformAttachment ? 'cross-platform' : 'platform'; + } + + // user + $args->publicKey->user = new \stdClass(); + $args->publicKey->user->id = new ByteBuffer($userId); // binary + $args->publicKey->user->name = $userName; + $args->publicKey->user->displayName = $userDisplayName; + + // supported algorithms + $args->publicKey->pubKeyCredParams = []; + + if (function_exists('sodium_crypto_sign_verify_detached') || \in_array('ed25519', \openssl_get_curve_names(), true)) { + $tmp = new \stdClass(); + $tmp->type = 'public-key'; + $tmp->alg = -8; // EdDSA + $args->publicKey->pubKeyCredParams[] = $tmp; + unset ($tmp); + } + + if (\in_array('prime256v1', \openssl_get_curve_names(), true)) { + $tmp = new \stdClass(); + $tmp->type = 'public-key'; + $tmp->alg = -7; // ES256 + $args->publicKey->pubKeyCredParams[] = $tmp; + unset ($tmp); + } + + $tmp = new \stdClass(); + $tmp->type = 'public-key'; + $tmp->alg = -257; // RS256 + $args->publicKey->pubKeyCredParams[] = $tmp; + unset ($tmp); + + // if there are root certificates added, we need direct attestation to validate + // against the root certificate. If there are no root-certificates added, + // anonymization ca are also accepted, because we can't validate the root anyway. + $attestation = 'indirect'; + if (\is_array($this->_caFiles)) { + $attestation = 'direct'; + } + + $args->publicKey->attestation = \count($this->_formats) === 1 && \in_array('none', $this->_formats) ? 'none' : $attestation; + $args->publicKey->extensions = new \stdClass(); + $args->publicKey->extensions->exts = true; + $args->publicKey->timeout = $timeout * 1000; // microseconds + $args->publicKey->challenge = $this->_createChallenge(); // binary + + //prevent re-registration by specifying existing credentials + $args->publicKey->excludeCredentials = []; + + if (is_array($excludeCredentialIds)) { + foreach ($excludeCredentialIds as $id) { + $tmp = new \stdClass(); + $tmp->id = $id instanceof ByteBuffer ? $id : new ByteBuffer($id); // binary + $tmp->type = 'public-key'; + $tmp->transports = array('usb', 'nfc', 'ble', 'hybrid', 'internal'); + $args->publicKey->excludeCredentials[] = $tmp; + unset ($tmp); + } + } + + return $args; + } + + /** + * generates the object for key validation + * Provide this data to navigator.credentials.get + * @param array $credentialIds binary + * @param int $timeout timeout in seconds + * @param bool $allowUsb allow removable USB + * @param bool $allowNfc allow Near Field Communication (NFC) + * @param bool $allowBle allow Bluetooth + * @param bool $allowHybrid allow a combination of (often separate) data-transport and proximity mechanisms. + * @param bool $allowInternal allow client device-specific transport. These authenticators are not removable from the client device. + * @param bool|string $requireUserVerification indicates that you require user verification and will fail the operation + * if the response does not have the UV flag set. + * Valid values: + * true = required + * false = preferred + * string 'required' 'preferred' 'discouraged' + * @return \stdClass + */ + public function getGetArgs($credentialIds=[], $timeout=20, $allowUsb=true, $allowNfc=true, $allowBle=true, $allowHybrid=true, $allowInternal=true, $requireUserVerification=false) { + + // validate User Verification Requirement + if (\is_bool($requireUserVerification)) { + $requireUserVerification = $requireUserVerification ? 'required' : 'preferred'; + } else if (\is_string($requireUserVerification) && \in_array(\strtolower($requireUserVerification), ['required', 'preferred', 'discouraged'])) { + $requireUserVerification = \strtolower($requireUserVerification); + } else { + $requireUserVerification = 'preferred'; + } + + $args = new \stdClass(); + $args->publicKey = new \stdClass(); + $args->publicKey->timeout = $timeout * 1000; // microseconds + $args->publicKey->challenge = $this->_createChallenge(); // binary + $args->publicKey->userVerification = $requireUserVerification; + $args->publicKey->rpId = $this->_rpId; + + if (\is_array($credentialIds) && \count($credentialIds) > 0) { + $args->publicKey->allowCredentials = []; + + foreach ($credentialIds as $id) { + $tmp = new \stdClass(); + $tmp->id = $id instanceof ByteBuffer ? $id : new ByteBuffer($id); // binary + $tmp->transports = []; + + if ($allowUsb) { + $tmp->transports[] = 'usb'; + } + if ($allowNfc) { + $tmp->transports[] = 'nfc'; + } + if ($allowBle) { + $tmp->transports[] = 'ble'; + } + if ($allowHybrid) { + $tmp->transports[] = 'hybrid'; + } + if ($allowInternal) { + $tmp->transports[] = 'internal'; + } + + $tmp->type = 'public-key'; + $args->publicKey->allowCredentials[] = $tmp; + unset ($tmp); + } + } + + return $args; + } + + /** + * returns the new signature counter value. + * returns null if there is no counter + * @return ?int + */ + public function getSignatureCounter() { + return \is_int($this->_signatureCounter) ? $this->_signatureCounter : null; + } + + /** + * process a create request and returns data to save for future logins + * @param string $clientDataJSON binary from browser + * @param string $attestationObject binary from browser + * @param string|ByteBuffer $challenge binary used challange + * @param bool $requireUserVerification true, if the device must verify user (e.g. by biometric data or pin) + * @param bool $requireUserPresent false, if the device must NOT check user presence (e.g. by pressing a button) + * @param bool $failIfRootMismatch false, if there should be no error thrown if root certificate doesn't match + * @param bool $requireCtsProfileMatch false, if you don't want to check if the device is approved as a Google-certified Android device. + * @return \stdClass + * @throws WebAuthnException + */ + public function processCreate($clientDataJSON, $attestationObject, $challenge, $requireUserVerification=false, $requireUserPresent=true, $failIfRootMismatch=true, $requireCtsProfileMatch=true) { + $clientDataHash = \hash('sha256', $clientDataJSON, true); + $clientData = \json_decode($clientDataJSON); + $challenge = $challenge instanceof ByteBuffer ? $challenge : new ByteBuffer($challenge); + + // security: https://www.w3.org/TR/webauthn/#registering-a-new-credential + + // 2. Let C, the client data claimed as collected during the credential creation, + // be the result of running an implementation-specific JSON parser on JSONtext. + if (!\is_object($clientData)) { + throw new WebAuthnException('invalid client data', WebAuthnException::INVALID_DATA); + } + + // 3. Verify that the value of C.type is webauthn.create. + if (!\property_exists($clientData, 'type') || $clientData->type !== 'webauthn.create') { + throw new WebAuthnException('invalid type', WebAuthnException::INVALID_TYPE); + } + + // 4. Verify that the value of C.challenge matches the challenge that was sent to the authenticator in the create() call. + if (!\property_exists($clientData, 'challenge') || ByteBuffer::fromBase64Url($clientData->challenge)->getBinaryString() !== $challenge->getBinaryString()) { + throw new WebAuthnException('invalid challenge', WebAuthnException::INVALID_CHALLENGE); + } + + // 5. Verify that the value of C.origin matches the Relying Party's origin. + if (!\property_exists($clientData, 'origin') || !$this->_checkOrigin($clientData->origin)) { + throw new WebAuthnException('invalid origin', WebAuthnException::INVALID_ORIGIN); + } + + // Attestation + $attestationObject = new Attestation\AttestationObject($attestationObject, $this->_formats); + + // 9. Verify that the RP ID hash in authData is indeed the SHA-256 hash of the RP ID expected by the RP. + if (!$attestationObject->validateRpIdHash($this->_rpIdHash)) { + throw new WebAuthnException('invalid rpId hash', WebAuthnException::INVALID_RELYING_PARTY); + } + + // 14. Verify that attStmt is a correct attestation statement, conveying a valid attestation signature + if (!$attestationObject->validateAttestation($clientDataHash)) { + throw new WebAuthnException('invalid certificate signature', WebAuthnException::INVALID_SIGNATURE); + } + + // Android-SafetyNet: if required, check for Compatibility Testing Suite (CTS). + if ($requireCtsProfileMatch && $attestationObject->getAttestationFormat() instanceof Attestation\Format\AndroidSafetyNet) { + if (!$attestationObject->getAttestationFormat()->ctsProfileMatch()) { + throw new WebAuthnException('invalid ctsProfileMatch: device is not approved as a Google-certified Android device.', WebAuthnException::ANDROID_NOT_TRUSTED); + } + } + + // 15. If validation is successful, obtain a list of acceptable trust anchors + $rootValid = is_array($this->_caFiles) ? $attestationObject->validateRootCertificate($this->_caFiles) : null; + if ($failIfRootMismatch && is_array($this->_caFiles) && !$rootValid) { + throw new WebAuthnException('invalid root certificate', WebAuthnException::CERTIFICATE_NOT_TRUSTED); + } + + // 10. Verify that the User Present bit of the flags in authData is set. + $userPresent = $attestationObject->getAuthenticatorData()->getUserPresent(); + if ($requireUserPresent && !$userPresent) { + throw new WebAuthnException('user not present during authentication', WebAuthnException::USER_PRESENT); + } + + // 11. If user verification is required for this registration, verify that the User Verified bit of the flags in authData is set. + $userVerified = $attestationObject->getAuthenticatorData()->getUserVerified(); + if ($requireUserVerification && !$userVerified) { + throw new WebAuthnException('user not verified during authentication', WebAuthnException::USER_VERIFICATED); + } + + $signCount = $attestationObject->getAuthenticatorData()->getSignCount(); + if ($signCount > 0) { + $this->_signatureCounter = $signCount; + } + + // prepare data to store for future logins + $data = new \stdClass(); + $data->rpId = $this->_rpId; + $data->attestationFormat = $attestationObject->getAttestationFormatName(); + $data->credentialId = $attestationObject->getAuthenticatorData()->getCredentialId(); + $data->credentialPublicKey = $attestationObject->getAuthenticatorData()->getPublicKeyPem(); + $data->certificateChain = $attestationObject->getCertificateChain(); + $data->certificate = $attestationObject->getCertificatePem(); + $data->certificateIssuer = $attestationObject->getCertificateIssuer(); + $data->certificateSubject = $attestationObject->getCertificateSubject(); + $data->signatureCounter = $this->_signatureCounter; + $data->AAGUID = $attestationObject->getAuthenticatorData()->getAAGUID(); + $data->rootValid = $rootValid; + $data->userPresent = $userPresent; + $data->userVerified = $userVerified; + $data->isBackupEligible = $attestationObject->getAuthenticatorData()->getIsBackupEligible(); + $data->isBackedUp = $attestationObject->getAuthenticatorData()->getIsBackup(); + return $data; + } + + + /** + * process a get request + * @param string $clientDataJSON binary from browser + * @param string $authenticatorData binary from browser + * @param string $signature binary from browser + * @param string $credentialPublicKey string PEM-formated public key from used credentialId + * @param string|ByteBuffer $challenge binary from used challange + * @param int $prevSignatureCnt signature count value of the last login + * @param bool $requireUserVerification true, if the device must verify user (e.g. by biometric data or pin) + * @param bool $requireUserPresent true, if the device must check user presence (e.g. by pressing a button) + * @return boolean true if get is successful + * @throws WebAuthnException + */ + public function processGet($clientDataJSON, $authenticatorData, $signature, $credentialPublicKey, $challenge, $prevSignatureCnt=null, $requireUserVerification=false, $requireUserPresent=true) { + $authenticatorObj = new Attestation\AuthenticatorData($authenticatorData); + $clientDataHash = \hash('sha256', $clientDataJSON, true); + $clientData = \json_decode($clientDataJSON); + $challenge = $challenge instanceof ByteBuffer ? $challenge : new ByteBuffer($challenge); + + // https://www.w3.org/TR/webauthn/#verifying-assertion + + // 1. If the allowCredentials option was given when this authentication ceremony was initiated, + // verify that credential.id identifies one of the public key credentials that were listed in allowCredentials. + // -> TO BE VERIFIED BY IMPLEMENTATION + + // 2. If credential.response.userHandle is present, verify that the user identified + // by this value is the owner of the public key credential identified by credential.id. + // -> TO BE VERIFIED BY IMPLEMENTATION + + // 3. Using credential’s id attribute (or the corresponding rawId, if base64url encoding is + // inappropriate for your use case), look up the corresponding credential public key. + // -> TO BE LOOKED UP BY IMPLEMENTATION + + // 5. Let JSONtext be the result of running UTF-8 decode on the value of cData. + if (!\is_object($clientData)) { + throw new WebAuthnException('invalid client data', WebAuthnException::INVALID_DATA); + } + + // 7. Verify that the value of C.type is the string webauthn.get. + if (!\property_exists($clientData, 'type') || $clientData->type !== 'webauthn.get') { + throw new WebAuthnException('invalid type', WebAuthnException::INVALID_TYPE); + } + + // 8. Verify that the value of C.challenge matches the challenge that was sent to the + // authenticator in the PublicKeyCredentialRequestOptions passed to the get() call. + if (!\property_exists($clientData, 'challenge') || ByteBuffer::fromBase64Url($clientData->challenge)->getBinaryString() !== $challenge->getBinaryString()) { + throw new WebAuthnException('invalid challenge', WebAuthnException::INVALID_CHALLENGE); + } + + // 9. Verify that the value of C.origin matches the Relying Party's origin. + if (!\property_exists($clientData, 'origin') || !$this->_checkOrigin($clientData->origin)) { + throw new WebAuthnException('invalid origin', WebAuthnException::INVALID_ORIGIN); + } + + // 11. Verify that the rpIdHash in authData is the SHA-256 hash of the RP ID expected by the Relying Party. + if ($authenticatorObj->getRpIdHash() !== $this->_rpIdHash) { + throw new WebAuthnException('invalid rpId hash', WebAuthnException::INVALID_RELYING_PARTY); + } + + // 12. Verify that the User Present bit of the flags in authData is set + if ($requireUserPresent && !$authenticatorObj->getUserPresent()) { + throw new WebAuthnException('user not present during authentication', WebAuthnException::USER_PRESENT); + } + + // 13. If user verification is required for this assertion, verify that the User Verified bit of the flags in authData is set. + if ($requireUserVerification && !$authenticatorObj->getUserVerified()) { + throw new WebAuthnException('user not verificated during authentication', WebAuthnException::USER_VERIFICATED); + } + + // 14. Verify the values of the client extension outputs + // (extensions not implemented) + + // 16. Using the credential public key looked up in step 3, verify that sig is a valid signature + // over the binary concatenation of authData and hash. + $dataToVerify = ''; + $dataToVerify .= $authenticatorData; + $dataToVerify .= $clientDataHash; + + if (!$this->_verifySignature($dataToVerify, $signature, $credentialPublicKey)) { + throw new WebAuthnException('invalid signature', WebAuthnException::INVALID_SIGNATURE); + } + + $signatureCounter = $authenticatorObj->getSignCount(); + if ($signatureCounter !== 0) { + $this->_signatureCounter = $signatureCounter; + } + + // 17. If either of the signature counter value authData.signCount or + // previous signature count is nonzero, and if authData.signCount + // less than or equal to previous signature count, it's a signal + // that the authenticator may be cloned + if ($prevSignatureCnt !== null) { + if ($signatureCounter !== 0 || $prevSignatureCnt !== 0) { + if ($prevSignatureCnt >= $signatureCounter) { + throw new WebAuthnException('signature counter not valid', WebAuthnException::SIGNATURE_COUNTER); + } + } + } + + return true; + } + + /** + * Downloads root certificates from FIDO Alliance Metadata Service (MDS) to a specific folder + * https://fidoalliance.org/metadata/ + * @param string $certFolder Folder path to save the certificates in PEM format. + * @param bool $deleteCerts delete certificates in the target folder before adding the new ones. + * @return int number of cetificates + * @throws WebAuthnException + */ + public function queryFidoMetaDataService($certFolder, $deleteCerts=true) { + $url = 'https://mds.fidoalliance.org/'; + $raw = null; + if (\function_exists('curl_init')) { + $ch = \curl_init($url); + \curl_setopt($ch, CURLOPT_HEADER, false); + \curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + \curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); + \curl_setopt($ch, CURLOPT_USERAGENT, 'github.com/lbuchs/WebAuthn - A simple PHP WebAuthn server library'); + $raw = \curl_exec($ch); + \curl_close($ch); + } else { + $raw = \file_get_contents($url); + } + $certFolder = \rtrim(\realpath($certFolder), '\\/'); + + if (!is_dir($certFolder)) { + throw new WebAuthnException('Invalid folder path for query FIDO Alliance Metadata Service'); + } + + if (!\is_string($raw)) { + throw new WebAuthnException('Unable to query FIDO Alliance Metadata Service'); + } + + $jwt = \explode('.', $raw); + if (\count($jwt) !== 3) { + throw new WebAuthnException('Invalid JWT from FIDO Alliance Metadata Service'); + } + + if ($deleteCerts) { + foreach (\scandir($certFolder) as $ca) { + if (\substr($ca, -4) === '.pem') { + if (\unlink($certFolder . DIRECTORY_SEPARATOR . $ca) === false) { + throw new WebAuthnException('Cannot delete certs in folder for FIDO Alliance Metadata Service'); + } + } + } + } + + list($header, $payload, $hash) = $jwt; + $payload = Binary\ByteBuffer::fromBase64Url($payload)->getJson(); + + $count = 0; + if (\is_object($payload) && \property_exists($payload, 'entries') && \is_array($payload->entries)) { + foreach ($payload->entries as $entry) { + if (\is_object($entry) && \property_exists($entry, 'metadataStatement') && \is_object($entry->metadataStatement)) { + $description = $entry->metadataStatement->description ?? null; + $attestationRootCertificates = $entry->metadataStatement->attestationRootCertificates ?? null; + + if ($description && $attestationRootCertificates) { + + // create filename + $certFilename = \preg_replace('/[^a-z0-9]/i', '_', $description); + $certFilename = \trim(\preg_replace('/\_{2,}/i', '_', $certFilename),'_') . '.pem'; + $certFilename = \strtolower($certFilename); + + // add certificate + $certContent = $description . "\n"; + $certContent .= \str_repeat('-', \mb_strlen($description)) . "\n"; + + foreach ($attestationRootCertificates as $attestationRootCertificate) { + $attestationRootCertificate = \str_replace(["\n", "\r", ' '], '', \trim($attestationRootCertificate)); + $count++; + $certContent .= "\n-----BEGIN CERTIFICATE-----\n"; + $certContent .= \chunk_split($attestationRootCertificate, 64, "\n"); + $certContent .= "-----END CERTIFICATE-----\n"; + } + + if (\file_put_contents($certFolder . DIRECTORY_SEPARATOR . $certFilename, $certContent) === false) { + throw new WebAuthnException('unable to save certificate from FIDO Alliance Metadata Service'); + } + } + } + } + } + + return $count; + } + + // ----------------------------------------------- + // PRIVATE + // ----------------------------------------------- + + /** + * checks if the origin matchs the RP ID + * @param string $origin + * @return boolean + * @throws WebAuthnException + */ + private function _checkOrigin($origin) { + if (str_starts_with($origin, 'android:apk-key-hash:')) { + return $this->_checkAndroidKeyHashes($origin); + } + + // https://www.w3.org/TR/webauthn/#rp-id + + // The origin's scheme must be https + if ($this->_rpId !== 'localhost' && \parse_url($origin, PHP_URL_SCHEME) !== 'https') { + return false; + } + + // extract host from origin + $host = \parse_url($origin, PHP_URL_HOST); + $host = \trim($host, '.'); + + // The RP ID must be equal to the origin's effective domain, or a registrable + // domain suffix of the origin's effective domain. + return \preg_match('/' . \preg_quote($this->_rpId) . '$/i', $host) === 1; + } + + /** + * checks if the origin value contains a known android key hash + * @param string $origin + * @return boolean + */ + private function _checkAndroidKeyHashes($origin) { + $parts = explode('android:apk-key-hash:', $origin); + if (count($parts) !== 2) { + return false; + } + return in_array($parts[1], $this->_androidKeyHashes, true); + } + + /** + * generates a new challange + * @param int $length + * @return string + * @throws WebAuthnException + */ + private function _createChallenge($length = 32) { + if (!$this->_challenge) { + $this->_challenge = ByteBuffer::randomBuffer($length); + } + return $this->_challenge; + } + + /** + * check if the signature is valid. + * @param string $dataToVerify + * @param string $signature + * @param string $credentialPublicKey PEM format + * @return bool + */ + private function _verifySignature($dataToVerify, $signature, $credentialPublicKey) { + + // Use Sodium to verify EdDSA 25519 as its not yet supported by openssl + if (\function_exists('sodium_crypto_sign_verify_detached') && !\in_array('ed25519', \openssl_get_curve_names(), true)) { + $pkParts = []; + if (\preg_match('/BEGIN PUBLIC KEY\-+(?:\s|\n|\r)+([^\-]+)(?:\s|\n|\r)*\-+END PUBLIC KEY/i', $credentialPublicKey, $pkParts)) { + $rawPk = \base64_decode($pkParts[1]); + + // 30 = der sequence + // 2a = length 42 byte + // 30 = der sequence + // 05 = lenght 5 byte + // 06 = der OID + // 03 = OID length 3 byte + // 2b 65 70 = OID 1.3.101.112 curveEd25519 (EdDSA 25519 signature algorithm) + // 03 = der bit string + // 21 = length 33 byte + // 00 = null padding + // [...] = 32 byte x-curve + $okpPrefix = "\x30\x2a\x30\x05\x06\x03\x2b\x65\x70\x03\x21\x00"; + + if ($rawPk && \strlen($rawPk) === 44 && \substr($rawPk,0, \strlen($okpPrefix)) === $okpPrefix) { + $publicKeyXCurve = \substr($rawPk, \strlen($okpPrefix)); + + return \sodium_crypto_sign_verify_detached($signature, $dataToVerify, $publicKeyXCurve); + } + } + } + + // verify with openSSL + $publicKey = \openssl_pkey_get_public($credentialPublicKey); + if ($publicKey === false) { + throw new WebAuthnException('public key invalid', WebAuthnException::INVALID_PUBLIC_KEY); + } + + return \openssl_verify($dataToVerify, $signature, $publicKey, OPENSSL_ALGO_SHA256) === 1; + } +} diff --git a/restricted/WebAuthn/src/WebAuthnException.php b/restricted/WebAuthn/src/WebAuthnException.php new file mode 100644 index 0000000..f27eeec --- /dev/null +++ b/restricted/WebAuthn/src/WebAuthnException.php @@ -0,0 +1,28 @@ + bool: + value = self.config.get(section, key, fallback=str(fallback)).strip().lower() + return value in ('true', '1', 'yes', 'on') + + def _get_int(self, section: str, key: str, fallback: int = 0) -> int: + try: + return self.config.getint(section, key, fallback=fallback) + except ValueError: + return fallback + + def _get_list(self, section: str, key: str) -> List[str]: + value = self.config.get(section, key, fallback='').strip() + if not value: + return [] + return [item.strip() for item in value.split(',') if item.strip()] + + # Database + @property + def db_host(self) -> str: + return self.config.get('database', 'host').strip() + + @property + def db_port(self) -> int: + return self._get_int('database', 'port', 3306) + + @property + def db_name(self) -> str: + return self.config.get('database', 'database').strip() + + @property + def db_user(self) -> str: + return self.config.get('database', 'user').strip() + + @property + def db_password(self) -> str: + return self.config.get('database', 'password').strip() + + # Tahoma + @property + def tahoma_enable(self) -> bool: + if not self.config.has_section('tahoma'): + return False + return self._get_bool('tahoma', 'enable', False) + + @property + def tahoma_ip(self) -> str: + if not self.config.has_section('tahoma'): + return '' + return self.config.get('tahoma', 'ip', fallback='').strip() + + @property + def tahoma_token(self) -> str: + if not self.config.has_section('tahoma'): + return '' + return self.config.get('tahoma', 'token', fallback='').strip() + + @property + def tahoma_timeout(self) -> int: + if not self.config.has_section('tahoma'): + return 10 + return self._get_int('tahoma', 'timeout', 10) + + # WLED + @property + def wled_enable(self) -> bool: + if not self.config.has_section('wled'): + return False + return self._get_bool('wled', 'enable', False) + + @property + def wled_discovery_timeout(self) -> int: + if not self.config.has_section('wled'): + return 5 + return self._get_int('wled', 'discovery_timeout', 5) + + @property + def wled_manual_ips(self) -> List[str]: + if not self.config.has_section('wled'): + return [] + return self._get_list('wled', 'manual_ips') + + @property + def wled_timeout(self) -> int: + if not self.config.has_section('wled'): + return 2 + return self._get_int('wled', 'timeout', 2) + + # MQTT + @property + def mqtt_enable(self) -> bool: + if not self.config.has_section('mqtt'): + return False + return self._get_bool('mqtt', 'enable', False) + + @property + def mqtt_broker(self) -> str: + if not self.config.has_section('mqtt'): + return 'localhost' + return self.config.get('mqtt', 'broker', fallback='localhost').strip() + + @property + def mqtt_port(self) -> int: + if not self.config.has_section('mqtt'): + return 1883 + return self._get_int('mqtt', 'port', 1883) + + @property + def mqtt_username(self) -> Optional[str]: + if not self.config.has_section('mqtt'): + return None + value = self.config.get('mqtt', 'username', fallback='').strip() + return value if value else None + + @property + def mqtt_password(self) -> Optional[str]: + if not self.config.has_section('mqtt'): + return None + value = self.config.get('mqtt', 'password', fallback='').strip() + return value if value else None + + @property + def mqtt_discovery_prefix(self) -> str: + if not self.config.has_section('mqtt'): + return 'homeassistant' + return self.config.get('mqtt', 'discovery_prefix', fallback='homeassistant').strip() + + @property + def mqtt_discovery_timeout(self) -> int: + if not self.config.has_section('mqtt'): + return 10 + return self._get_int('mqtt', 'discovery_timeout', 10) + + # Shelly + @property + def shelly_enable(self) -> bool: + if not self.config.has_section('shelly'): + return False + return self._get_bool('shelly', 'enable', False) + + @property + def shelly_network_range(self) -> str: + if not self.config.has_section('shelly'): + return '192.168.1' + return self.config.get('shelly', 'network_range', fallback='192.168.1').strip() + + @property + def shelly_start_ip(self) -> int: + if not self.config.has_section('shelly'): + return 1 + return self._get_int('shelly', 'start_ip', 1) + + @property + def shelly_end_ip(self) -> int: + if not self.config.has_section('shelly'): + return 254 + return self._get_int('shelly', 'end_ip', 254) + + # Options + @property + def clear_tables(self) -> bool: + return self._get_bool('options', 'clear_tables', True) + + @property + def log_level(self) -> str: + level = self.config.get('options', 'log_level', fallback='INFO').strip().upper() + valid_levels = ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'] + return level if level in valid_levels else 'INFO' + + @property + def log_file(self) -> Optional[str]: + value = self.config.get('options', 'log_file', fallback='').strip() + return value if value else None + + +# ============================================================================ +# DATABASE MANAGER (Zentral im Hauptscript) +# ============================================================================ + +class DatabaseManager: + """Zentrale Datenbank-Verwaltung - ALLE DB-Operationen hier""" + + def __init__(self, host: str, database: str, user: str, password: str, port: int = 3306): + self.host = host + self.database = database + self.user = user + self.password = password + self.port = port + self.connection = None + + def connect(self) -> bool: + """Stellt Verbindung zur Datenbank her""" + try: + self.connection = pymysql.connect( + host=self.host, + database=self.database, + user=self.user, + password=self.password, + port=self.port, + charset='utf8mb4' + ) + logger.info("✓ Erfolgreich mit MySQL-Datenbank verbunden") + return True + except Error as e: + logger.error(f"✗ Datenbankverbindung fehlgeschlagen: {e}") + return False + + def disconnect(self): + """Schließt Datenbankverbindung""" + if self.connection: + self.connection.close() + logger.info("Datenbankverbindung geschlossen") + + def clear_tables(self): + """Löscht alle Einträge aus allen Tabellen""" + try: + cursor = self.connection.cursor() + cursor.execute("SET FOREIGN_KEY_CHECKS=0") + + cursor.execute("DELETE FROM command_parameters") + cursor.execute("DELETE FROM actor_commands") + cursor.execute("DELETE FROM actor_states") + cursor.execute("DELETE FROM actors") + cursor.execute("DELETE FROM sensor_states") + cursor.execute("DELETE FROM sensors") + + cursor.execute("SET FOREIGN_KEY_CHECKS=1") + + self.connection.commit() + logger.info("✓ Alle Tabellen geleert") + cursor.close() + except Error as e: + logger.error(f"✗ Fehler beim Leeren der Tabellen: {e}") + self.connection.rollback() + + def insert_actor(self, device_type: str, name: str, url: str, + commands: list, states: list) -> bool: + """ + Fügt einen Aktor in die Datenbank ein + + Args: + device_type: Typ des Geräts + name: Name des Geräts + url: Eindeutige URL/ID + commands: Liste von Command-Dicts + states: Liste von State-Dicts + """ + try: + cursor = self.connection.cursor() + + # Actor einfügen + query = """ + INSERT INTO actors (type, name, parameters, url) + VALUES (%s, %s, NULL, %s) + """ + cursor.execute(query, (device_type, name, url)) + actor_id = cursor.lastrowid + + # Commands einfügen + for cmd in commands: + command_name = cmd.get('command', '') + + cmd_query = """ + INSERT INTO actor_commands (actor_id, command_name) + VALUES (%s, %s) + """ + cursor.execute(cmd_query, (actor_id, command_name)) + command_id = cursor.lastrowid + + # Parameter einfügen + for param in cmd.get('parameters', []): + param_query = """ + INSERT INTO command_parameters + (command_id, parameter_name, parameter_type, min_value, max_value, possible_values, url) + VALUES (%s, %s, %s, %s, %s, %s, %s) + """ + param_name = param.get('name', '') + param_type = param.get('type', '') + min_val = param.get('min') + max_val = param.get('max') + possible_vals = json.dumps(param.get('values')) if 'values' in param else None + param_url = param.get('url') + + cursor.execute(param_query, + (command_id, param_name, param_type, min_val, max_val, possible_vals, param_url)) + + # States einfügen + for state in states: + state_query = """ + INSERT INTO actor_states + (actor_id, state_name, state_type, current_value, unit, url) + VALUES (%s, %s, %s, %s, %s, %s) + """ + state_name = state.get('name', '') + state_type = state.get('type', 0) + current_value = str(state.get('current_value', '')) if 'current_value' in state else None + unit = state.get('unit') + state_url = state.get('url') + + cursor.execute(state_query, (actor_id, state_name, state_type, current_value, unit, state_url)) + + self.connection.commit() + cursor.close() + return True + + except Error as e: + logger.error(f"✗ Fehler beim Einfügen des Aktors {name}: {e}") + self.connection.rollback() + return False + + def insert_sensor(self, device_type: str, name: str, url: str, states: list) -> bool: + """ + Fügt einen Sensor in die Datenbank ein + + Args: + device_type: Typ des Sensors + name: Name des Sensors + url: Eindeutige URL/ID + states: Liste von State-Dicts + """ + try: + cursor = self.connection.cursor() + + # Sensor einfügen + query = """ + INSERT INTO sensors (type, name, parameters, url) + VALUES (%s, %s, NULL, %s) + """ + cursor.execute(query, (device_type, name, url)) + sensor_id = cursor.lastrowid + + # States einfügen + for state in states: + state_query = """ + INSERT INTO sensor_states + (sensor_id, state_name, state_type, current_value, unit, url) + VALUES (%s, %s, %s, %s, %s, %s) + """ + state_name = state.get('name', '') + state_type = state.get('type', 0) + current_value = str(state.get('current_value', '')) if 'current_value' in state else None + unit = state.get('unit') + state_url = state.get('url') + + cursor.execute(state_query, (sensor_id, state_name, state_type, current_value, unit, state_url)) + + self.connection.commit() + cursor.close() + return True + + except Error as e: + logger.error(f"✗ Fehler beim Einfügen des Sensors {name}: {e}") + self.connection.rollback() + return False + + +# ============================================================================ +# MAIN FUNCTION +# ============================================================================ + +def main(): + """Hauptfunktion - orchestriert alle Module mit einheitlicher Schnittstelle""" + + # Konfiguration laden + try: + config = Config('config.ini') + logger.info("✓ Konfiguration erfolgreich geladen") + except FileNotFoundError as e: + print(f"FEHLER: {e}") + return + except Exception as e: + print(f"FEHLER: {e}") + return + + # Logging anpassen + log_level = getattr(logging, config.log_level) + logger.setLevel(log_level) + + if config.log_file: + file_handler = logging.FileHandler(config.log_file, encoding='utf-8') + file_handler.setLevel(log_level) + file_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')) + logger.addHandler(file_handler) + logger.info(f"Logging in Datei: {config.log_file}") + + # Datenbank initialisieren + logger.info("Verbinde mit MySQL-Datenbank...") + db = DatabaseManager( + config.db_host, + config.db_name, + config.db_user, + config.db_password, + config.db_port + ) + + if not db.connect(): + logger.error("Datenbankverbindung fehlgeschlagen. Abbruch.") + return + + try: + # Tabellen leeren + if config.clear_tables: + db.clear_tables() + + total_actors = 0 + total_sensors = 0 + + # Module initialisieren + modules = [ + TahomaModule(config), + WLEDModule(config), + MQTTModule(config), + ShellyModule(config) + ] + + # Jedes Modul durchlaufen + for module in modules: + if not module.is_enabled(): + logger.info(f"Modul {module.get_name()} ist deaktiviert") + continue + + try: + # Discovery durchführen (einheitliche Schnittstelle!) + actors, sensors = module.discover() + + # Actors in DB speichern + for actor in actors: + if db.insert_actor( + actor['type'], + actor['name'], + actor['url'], + actor.get('commands', []), + actor.get('states', []) + ): + total_actors += 1 + logger.info(f" ✓ Actor: {actor['name']} ({actor['type']})") + + # Sensors in DB speichern + for sensor in sensors: + if db.insert_sensor( + sensor['type'], + sensor['name'], + sensor['url'], + sensor.get('states', []) + ): + total_sensors += 1 + logger.info(f" ✓ Sensor: {sensor['name']} ({sensor['type']})") + + except Exception as e: + logger.error(f"✗ Fehler bei Modul {module.get_name()}: {e}") + import traceback + traceback.print_exc() + + # Zusammenfassung + logger.info("\n" + "=" * 60) + logger.info("ZUSAMMENFASSUNG") + logger.info("=" * 60) + logger.info(f"Aktoren gespeichert: {total_actors}") + logger.info(f"Sensoren gespeichert: {total_sensors}") + logger.info("=" * 60) + + logger.info("\n✓ Import erfolgreich abgeschlossen!") + + except Exception as e: + logger.error(f"✗ Fehler: {e}") + import traceback + traceback.print_exc() + + finally: + db.disconnect() + + +if __name__ == "__main__": + main() diff --git a/restricted/deviceDiscovery/modules/base_module.py b/restricted/deviceDiscovery/modules/base_module.py new file mode 100644 index 0000000..b177630 --- /dev/null +++ b/restricted/deviceDiscovery/modules/base_module.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python3 +""" +Base Module Interface +Definiert die einheitliche Schnittstelle für alle Gerätemodule +""" + +from abc import ABC, abstractmethod +from typing import List, Dict, Tuple +import logging + +logger = logging.getLogger(__name__) + + +class BaseModule(ABC): + """ + Abstrakte Basisklasse für alle Gerätemodule + + Jedes Modul muss nur discover() implementieren und gibt + eine Liste von (actors, sensors) zurück. + Die Datenbank-Logik bleibt im Hauptscript. + """ + + def __init__(self, config): + """ + Initialisiert das Modul + + Args: + config: Config-Objekt mit allen Einstellungen + """ + self.config = config + self.module_name = self.__class__.__name__.replace('Module', '') + + @abstractmethod + def discover(self) -> Tuple[List[Dict], List[Dict]]: + """ + Führt Device Discovery durch + + Returns: + Tuple (actors, sensors) mit Listen von Dicts: + + Actor Dict Format: + { + 'type': str, # z.B. 'RollerShutter' + 'name': str, # z.B. 'Wohnzimmer Rollo' + 'url': str, # Eindeutige ID/URL + 'commands': [ # Liste von Commands + { + 'command': str, + 'parameters': [ + { + 'name': str, + 'type': str, + 'min': float (optional), + 'max': float (optional), + 'values': list (optional) + } + ] + } + ], + 'states': [ # Liste von States + { + 'name': str, + 'type': int/str, + 'current_value': any, + 'unit': str (optional) + } + ] + } + + Sensor Dict Format: + { + 'type': str, # z.B. 'TemperatureSensor' + 'name': str, # z.B. 'Außentemperatur' + 'url': str, # Eindeutige ID/URL + 'states': [ # Liste von States + { + 'name': str, + 'type': int/str, + 'current_value': any, + 'unit': str (optional) + } + ] + } + """ + pass + + def is_enabled(self) -> bool: + """Prüft ob Modul aktiviert ist""" + return True # Override in Subklassen falls nötig + + def get_name(self) -> str: + """Gibt Modulname zurück""" + return self.module_name diff --git a/restricted/deviceDiscovery/modules/mqtt_module.py b/restricted/deviceDiscovery/modules/mqtt_module.py new file mode 100644 index 0000000..b0a1a52 --- /dev/null +++ b/restricted/deviceDiscovery/modules/mqtt_module.py @@ -0,0 +1,675 @@ +#!/usr/bin/env python3 +""" +MQTT/Home Assistant Discovery Integration +Erweitert das Tahoma Script um MQTT-Geräte via Home Assistant Discovery +""" + +import paho.mqtt.client as mqtt +import json +import time +from typing import Dict, List, Optional +import logging + +logger = logging.getLogger(__name__) + + +class HomeAssistantDiscovery: + """Klasse für Home Assistant MQTT Discovery""" + + # Bekannte Discovery-Komponenten + COMPONENTS = [ + 'binary_sensor', 'sensor', 'switch', 'light', 'cover', + 'climate', 'fan', 'lock', 'camera', 'vacuum', 'alarm_control_panel', + 'device_tracker', 'number', 'select', 'button', 'text' + ] + + def __init__(self, broker: str, port: int = 1883, username: str = None, + password: str = None, discovery_prefix: str = 'homeassistant'): + """ + Initialisiert Home Assistant Discovery + + Args: + broker: MQTT Broker IP/Hostname + port: MQTT Port (Standard: 1883) + username: MQTT Benutzername (optional) + password: MQTT Passwort (optional) + discovery_prefix: Discovery Prefix (Standard: 'homeassistant') + """ + self.broker = broker + self.port = port + self.username = username + self.password = password + self.discovery_prefix = discovery_prefix + self.client = None + self.discovered_devices = {} + + def connect(self) -> bool: + """ + Verbindet mit dem MQTT Broker + + Returns: + True bei Erfolg, False bei Fehler + """ + try: + self.client = mqtt.Client() + + if self.username and self.password: + self.client.username_pw_set(self.username, self.password) + + self.client.on_connect = self._on_connect + self.client.on_message = self._on_message + + self.client.connect(self.broker, self.port, 60) + logger.info(f"Verbunden mit MQTT Broker {self.broker}:{self.port}") + return True + + except Exception as e: + logger.error(f"MQTT Verbindungsfehler: {e}") + return False + + def _on_connect(self, client, userdata, flags, rc): + """Callback wenn Verbindung hergestellt wurde""" + if rc == 0: + logger.info("MQTT Verbindung erfolgreich") + # Alle Discovery Topics abonnieren mit Wildcard für object_id + for component in self.COMPONENTS: + # Unterstützt beide Topic-Formate: + # homeassistant/component/node_id/config (4 Teile) + # homeassistant/component/node_id/object_id/config (5 Teile) + topic = f"{self.discovery_prefix}/{component}/+/+/config" + client.subscribe(topic) + logger.debug(f"Abonniert: {topic}") + # Zusätzlich auch das kürzere Format abonnieren + topic_short = f"{self.discovery_prefix}/{component}/+/config" + client.subscribe(topic_short) + logger.debug(f"Abonniert: {topic_short}") + else: + logger.error(f"MQTT Verbindung fehlgeschlagen, Code: {rc}") + + def _on_message(self, client, userdata, msg): + """Callback wenn Nachricht empfangen wurde""" + try: + # Topic analysieren - unterstützt beide Formate: + # homeassistant/component/node_id/config (4 Teile) + # homeassistant/component/node_id/object_id/config (5 Teile) + topic_parts = msg.topic.split('/') + + if topic_parts[-1] != 'config': + return # Kein Config-Topic + + if len(topic_parts) == 4: + # Format: homeassistant/component/node_id/config + component = topic_parts[1] + node_id = topic_parts[2] + object_id = None + elif len(topic_parts) == 5: + # Format: homeassistant/component/node_id/object_id/config + component = topic_parts[1] + node_id = topic_parts[2] + object_id = topic_parts[3] + else: + logger.debug(f"Unbekanntes Topic-Format: {msg.topic}") + return + + # Payload parsen + if msg.payload: + config = json.loads(msg.payload.decode('utf-8')) + + # Eindeutigen Key erstellen + if object_id: + device_key = f"{component}_{node_id}_{object_id}" + else: + device_key = f"{component}_{node_id}" + + # Gerät speichern + self.discovered_devices[device_key] = { + 'component': component, + 'node_id': node_id, + 'object_id': object_id, + 'config': config, + 'topic': msg.topic + } + + device_name = config.get('device', config.get('dev',{'name': node_id})).get('name',node_id) + logger.debug(f"Gerät gefunden: {device_name} ({component}) - {msg.topic}") + + except Exception as e: + logger.error(f"Fehler beim Verarbeiten der MQTT-Nachricht von {msg.topic}: {e}") + + def discover_devices(self, timeout: int = 10) -> Dict: + """ + Sucht nach Home Assistant Discovery Geräten + + Args: + timeout: Timeout in Sekunden + + Returns: + Dictionary mit gefundenen Geräten + """ + logger.info(f"Starte Home Assistant Discovery (Timeout: {timeout}s)...") + logger.info(f"Lausche auf {self.discovery_prefix}/+/+/+/config und {self.discovery_prefix}/+/+/config") + + self.discovered_devices = {} + + # MQTT Loop starten + self.client.loop_start() + + # Warten auf Nachrichten - mit Fortschrittsanzeige + for i in range(timeout): + time.sleep(1) + if (i + 1) % 5 == 0 or i == timeout - 1: + logger.info(f"Discovery läuft... {len(self.discovered_devices)} Geräte gefunden ({i+1}/{timeout}s)") + + # Loop stoppen + self.client.loop_stop() + + logger.info(f"✓ {len(self.discovered_devices)} MQTT-Geräte gefunden") + + # Debug: Zeige einige gefundene Topics + if self.discovered_devices: + logger.debug("Gefundene Geräte (Auswahl):") + for i, (key, device) in enumerate(list(self.discovered_devices.items())[:5]): + logger.debug(f" - {device['config'].get('name', key)} ({device['component']}) via {device['topic']}") + if len(self.discovered_devices) > 5: + logger.debug(f" ... und {len(self.discovered_devices) - 5} weitere") + + return self.discovered_devices + + def disconnect(self): + """Trennt die MQTT-Verbindung""" + if self.client: + self.client.disconnect() + logger.info("MQTT-Verbindung getrennt") + + +class MQTTDeviceConverter: + """Konvertiert MQTT Discovery Entities in Datenbank-Format, gruppiert nach Gerät""" + + # Mapping von HA Komponenten zu Actor/Sensor + ACTOR_COMPONENTS = ['switch', 'light', 'cover', 'fan', 'lock', 'climate', + 'vacuum', 'alarm_control_panel', ' ', 'number', 'select'] + SENSOR_COMPONENTS = ['binary_sensor', 'sensor', 'device_tracker'] + + @staticmethod + def group_entities_by_device(discovered_devices: Dict) -> Dict[str, List]: + """ + Gruppiert Discovery-Entities nach Gerät (node_id) + + Args: + discovered_devices: Dictionary mit allen gefundenen Entities + + Returns: + Dictionary: {device_id: [entity1, entity2, ...]} + """ + devices = {} + + for entity_key, entity in discovered_devices.items(): + # Device Identifier aus Config extrahieren + config = entity.get('config', {}) + device_info = config.get('device') or config.get('dev') or {} + # Node ID als Geräte-Identifier verwenden + node_id = entity.get('node_id', 'unknown') + + # Zusätzlich Device Identifiers prüfen falls vorhanden + if device_info and 'identifiers' in device_info: + identifiers = device_info['identifiers'] + if isinstance(identifiers, list) and identifiers: + node_id = identifiers[0] + + if node_id not in devices: + devices[node_id] = { + 'entities': [], + 'device_info': device_info, + 'node_id': node_id + } + + devices[node_id]['entities'].append(entity) + + return devices + + @staticmethod + def is_actor_entity(component: str) -> bool: + """Prüft ob Entity-Komponente ein Aktor ist""" + if(component == "climate"): + logger.info("Climate device gefunden"); + return component in MQTTDeviceConverter.ACTOR_COMPONENTS + + @staticmethod + def is_sensor_entity(component: str) -> bool: + """Prüft ob Entity-Komponente ein Sensor ist""" + return component in MQTTDeviceConverter.SENSOR_COMPONENTS + + @staticmethod + def convert_device_to_actors_and_sensors(device_id: str, device_data: Dict) -> tuple: + """ + Konvertiert ein Gerät mit allen seinen Entities in Actor/Sensor-Format + + Args: + device_id: Geräte-ID (node_id) + device_data: Device-Daten mit Entities-Liste + + Returns: + Tuple (actor_dict or None, sensor_dict or None) + """ + entities = device_data['entities'] + device_info = device_data.get('device_info') + # Gerätename vom ersten Entity oder aus device_info + device_name = device_info.get('name', device_id) + if not device_name or device_name == device_id: + # Fallback: Name vom ersten Entity + if entities: + device_name = entities[0]['config'].get('name', device_id) + + # Device URL + device_url = f"mqtt://{device_id}" + + # Entities nach Actor/Sensor trennen + actor_entities = [e for e in entities if MQTTDeviceConverter.is_actor_entity(e['component'])] + sensor_entities = [e for e in entities if MQTTDeviceConverter.is_sensor_entity(e['component'])] + + actor_result = None + sensor_result = None + + # Actor erstellen falls Actor-Entities vorhanden + if actor_entities: + commands = [] + states = [] + + for entity in actor_entities: + component = entity['component'] + object_id = entity.get('object_id', 'unknown') + config = entity['config'] + + # Command aus der Entity erstellen + command_entry = MQTTDeviceConverter._entity_to_command(component, object_id, config) + if command_entry: + commands.append(command_entry) + + # States aus der Entity extrahieren + entity_states = MQTTDeviceConverter._entity_to_states(component, object_id, config) + states.extend(entity_states) + + if commands: # Nur Actor erstellen wenn Commands vorhanden + actor_result = { + 'name': device_name, + 'type': f"mqtt_device", # Allgemeiner Typ für Multi-Entity-Geräte + 'url': device_url, + 'commands': commands, + 'states': states + } + + # Sensor erstellen falls Sensor-Entities vorhanden + if sensor_entities: + states = [] + + for entity in sensor_entities: + component = entity['component'] + object_id = entity.get('object_id', 'unknown') + config = entity['config'] + + # States aus der Entity extrahieren + entity_states = MQTTDeviceConverter._entity_to_states(component, object_id, config) + states.extend(entity_states) + + if states: # Nur Sensor erstellen wenn States vorhanden + sensor_result = { + 'name': device_name, + 'type': f"mqtt_device", + 'url': device_url, + 'states': states + } + + return actor_result, sensor_result + + @staticmethod + def _entity_to_command(component: str, object_id: str, config: Dict) -> Optional[Dict]: + """ + Konvertiert eine MQTT Entity in ein Command + + Args: + component: Entity-Typ (number, button, switch, etc.) + object_id: Object ID (z.B. set_max_ampere_limit) + config: Entity-Konfiguration + + Returns: + Command-Dictionary oder None + """ + # Command Topic - verschiedene mögliche Feldnamen + command_topic = config.get('command_topic') or config.get('cmd_t') or config.get('temperature_command_topic') + + if not command_topic: + return None + + # Command-Name aus object_id ableiten + command_name = object_id.replace('_', ' ').title().replace(' ', '') + # Oder aus dem Namen + entity_name = config.get('name', object_id) + + command_entry = { + 'command': command_name, + 'parameters': [] + } + + # Parameter basierend auf Component-Typ + if component == 'number': + # Number hat einen Wert-Parameter + param = { + 'name': 'value', + 'type': 'number', + 'url': command_topic + } + + # Min/Max aus Config + if 'min' in config: + param['min'] = config['min'] + if 'max' in config: + param['max'] = config['max'] + + # Unit hinzufügen - verschiedene mögliche Feldnamen + unit = ( + config.get('unit_of_measurement') or + config.get('unit_of_meas') or + config.get('unit') or + config.get('u') + ) + if unit: + param['unit'] = unit + + command_entry['parameters'].append(param) + + elif component == 'select': + # Select hat Optionen + param = { + 'name': 'option', + 'type': 'string', + 'url': command_topic + } + + options = config.get('options') or config.get('ops') + if options: + param['values'] = options + + command_entry['parameters'].append(param) + + elif component in ['switch', 'light']: + # Switch/Light haben on/off + param = { + 'name': 'state', + 'type': 'string', + 'url': command_topic, + 'values': [ + config.get('payload_on', config.get('pl_on', 'ON')), + config.get('payload_off', config.get('pl_off', 'OFF')) + ] + } + command_entry['parameters'].append(param) + + # Brightness für Light + brightness_cmd_topic = ( + config.get('brightness_command_topic') or + config.get('bri_cmd_t') + ) + if component == 'light' and brightness_cmd_topic: + command_entry['parameters'].append({ + 'name': 'brightness', + 'type': 'integer', + 'min': 0, + 'max': 255, + 'url': brightness_cmd_topic + }) + + elif component == 'cover': + # Cover hat position + set_pos_topic = ( + config.get('set_position_topic') or + config.get('pos_cmd_t') + ) + if set_pos_topic: + param = { + 'name': 'position', + 'type': 'integer', + 'min': 0, + 'max': 100, + 'url': set_pos_topic + } + command_entry['parameters'].append(param) + else: + # Nur open/close/stop + param = { + 'name': 'action', + 'type': 'string', + 'url': command_topic, + 'values': ['OPEN', 'CLOSE', 'STOP'] + } + command_entry['parameters'].append(param) + + elif component == 'button': + # Button hat normalerweise keinen Parameter, nur das Topic + param = { + 'name': 'press', + 'type': 'trigger', + 'url': command_topic + } + command_entry['parameters'].append(param) + + elif component == 'climate': + # Climate hat Temperatur-Setpoint + temp_cmd_topic = ( + config.get('temperature_command_topic') or + config.get('temp_cmd_t') + ) + if temp_cmd_topic: + param = { + 'name': 'temperature', + 'type': 'number', + 'url': temp_cmd_topic + } + + if 'min_temp' in config: + param['min'] = config['min_temp'] + if 'max_temp' in config: + param['max'] = config['max_temp'] + + command_entry['parameters'].append(param) + mode_cmd_topic = ( + config.get('mode_command_topic') or + config.get('mode_cmd_t') + ) + if mode_cmd_topic: + param = { + 'name': 'mode', + 'type': 'string', + 'url': mode_cmd_topic, + 'values': config.get('modes', []) + } + command_entry['parameters'].append(param) + else: + # Generischer Command mit dem Topic + param = { + 'name': 'value', + 'type': 'string', + 'url': command_topic + } + command_entry['parameters'].append(param) + + return command_entry + + @staticmethod + def _entity_to_states(component: str, object_id: str, config: Dict) -> List[Dict]: + """ + Extrahiert States aus einer MQTT Entity + + Args: + component: Entity-Typ + object_id: Object ID + config: Entity-Konfiguration + + Returns: + Liste von State-Dictionaries + """ + states = [] + + # State Topic - verschiedene mögliche Feldnamen prüfen + state_topic = ( + config.get('state_topic') or + config.get('stat_t') or # Abkürzung + config.get('~') and config.get('stat_t') # Mit Base Topic + ) + + # Bei number/select: oft kein separates state_topic, dann command_topic verwenden + if not state_topic and component in ['number', 'select', 'button']: + # Bei diesen Komponenten kann der State über command_topic abgefragt werden + # oder es gibt ein explizites state_topic + state_topic = config.get('command_topic') or config.get('cmd_t') + + if state_topic: + state_entry = { + 'name': object_id, + 'type': 'string', + 'url': state_topic + } + + # Unit hinzufügen - verschiedene mögliche Feldnamen + unit = ( + config.get('unit_of_measurement') or + config.get('unit_of_meas') or + config.get('unit') or + config.get('u') # Weitere Abkürzung + ) + if unit: + state_entry['unit'] = unit + + # Device Class als zusätzliche Info + if 'device_class' in config: + state_entry['device_class'] = config['device_class'] + elif 'dev_cla' in config: + state_entry['device_class'] = config['dev_cla'] + + # Typ anpassen basierend auf Component + if component == 'number': + state_entry['type'] = 'number' + elif component == 'binary_sensor': + state_entry['type'] = 'boolean' + elif component == 'sensor': + # Bei Sensor den Typ aus value_template ableiten oder number annehmen + state_entry['type'] = 'number' # Default für Sensoren + + states.append(state_entry) + + # Zusätzliche State Topics (z.B. brightness bei Light) + if component == 'light': + brightness_topic = ( + config.get('brightness_state_topic') or + config.get('bri_stat_t') + ) + if brightness_topic: + states.append({ + 'name': f"{object_id}_brightness", + 'type': 'integer', + 'url': brightness_topic + }) + + if component == 'cover': + position_topic = ( + config.get('position_topic') or + config.get('pos_t') + ) + if position_topic: + states.append({ + 'name': f"{object_id}_position", + 'type': 'integer', + 'url': position_topic + }) + + if component == 'climate': + current_temp_topic = ( + config.get('current_temperature_topic') or + config.get('curr_temp_t') + ) + if current_temp_topic: + states.append({ + 'name': f"{object_id}_current_temp", + 'type': 'number', + 'unit': '°C', + 'url': current_temp_topic + }) + + return states + + +# ============================================================================ +# MODULE WRAPPER +# ============================================================================ + +from modules.base_module import BaseModule + + +class MQTTModule(BaseModule): + """ + MQTT Modul - Implementiert BaseModule Interface + Gibt Actors/Sensors zurück, KEINE DB-Operationen + """ + + def is_enabled(self) -> bool: + """Prüft ob MQTT aktiviert ist""" + return self.config.mqtt_enable + + def discover(self): + """ + Führt MQTT Discovery durch + + Returns: + Tuple (actors, sensors) + """ + logger.info("\n" + "=" * 60) + logger.info("MQTT/HOME ASSISTANT DISCOVERY") + logger.info("=" * 60) + + actors = [] + sensors = [] + + try: + mqtt_discovery = HomeAssistantDiscovery( + broker=self.config.mqtt_broker, + port=self.config.mqtt_port, + username=self.config.mqtt_username, + password=self.config.mqtt_password, + discovery_prefix=self.config.mqtt_discovery_prefix + ) + + if mqtt_discovery.connect(): + mqtt_entities = mqtt_discovery.discover_devices( + timeout=self.config.mqtt_discovery_timeout + ) + + mqtt_devices = MQTTDeviceConverter.group_entities_by_device(mqtt_entities) + + if not mqtt_devices: + logger.info("Keine MQTT-Geräte gefunden") + else: + logger.info(f"{len(mqtt_devices)} MQTT-Geräte gefunden (aus {len(mqtt_entities)} Entities)") + + for device_id, device_data in mqtt_devices.items(): + try: + actor_data, sensor_data = MQTTDeviceConverter.convert_device_to_actors_and_sensors( + device_id, device_data + ) + + if actor_data: + actors.append(actor_data) + + if sensor_data: + sensors.append(sensor_data) + + except Exception as e: + logger.error(f"✗ Fehler beim Verarbeiten von MQTT-Gerät {device_id}: {e}") + + mqtt_discovery.disconnect() + else: + logger.error("MQTT-Verbindung fehlgeschlagen") + + except Exception as e: + logger.error(f"✗ MQTT Discovery Fehler: {e}") + + logger.info(f"MQTT: {len(actors)} Aktoren, {len(sensors)} Sensoren gefunden") + return actors, sensors \ No newline at end of file diff --git a/restricted/deviceDiscovery/modules/shelly_module.py b/restricted/deviceDiscovery/modules/shelly_module.py new file mode 100644 index 0000000..45f73b8 --- /dev/null +++ b/restricted/deviceDiscovery/modules/shelly_module.py @@ -0,0 +1,456 @@ + + + +#!/usr/bin/env python3 +""" +Shelly Module +Enthält NUR Shelly-spezifische Geräte-Discovery Logik +KEINE Datenbank-Operationen! +""" + +import json +import requests +import socket +import logging +from typing import List, Dict, Optional, Tuple +from modules.base_module import BaseModule + +# Logging konfigurieren +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(levelname)s - %(message)s' +) +logger = logging.getLogger(__name__) + +class ShellyDiscovery: + """Klasse zum Entdecken von Shelly-Geräten im Netzwerk""" + + SHELLY_MDNS_SERVICE = "_http._tcp.local." + COMMON_PORTS = [80] + + def __init__(self, network_range: str = "192.168.1"): + self.network_range = network_range + self.devices = [] + + def scan_network(self, start_ip: int = 2, end_ip: int = 254, timeout: float = 0.3) -> List[str]: + """ + Scannt das Netzwerk nach aktiven Hosts + + Args: + start_ip: Start IP (letztes Oktett) + end_ip: End IP (letztes Oktett) + timeout: Timeout für Socket-Verbindung + + Returns: + Liste von erreichbaren IP-Adressen + """ + active_hosts = [] + logger.info(f"Scanne Netzwerk {self.network_range}.{start_ip}-{end_ip}...") + + for i in range(start_ip, end_ip + 1): + ip = f"{self.network_range}.{i}" + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(timeout) + + try: + result = sock.connect_ex((ip, 80)) + if result == 0: + active_hosts.append(ip) + logger.debug(f"Host gefunden: {ip}") + except: + pass + finally: + sock.close() + + logger.info(f"{len(active_hosts)} aktive Hosts gefunden") + return active_hosts + + def is_shelly_device(self, ip: str) -> Optional[Dict]: + """ + Prüft ob ein Host ein Shelly-Gerät ist + + Args: + ip: IP-Adresse des Hosts + + Returns: + Device Info Dict wenn Shelly, sonst None + """ + logger.info(f"Suche Shelly Getät unter: {ip}") + try: + # Versuche Gen2 API (neuere Shelly-Geräte) + response = requests.get( + f"http://{ip}/rpc/Shelly.GetDeviceInfo", + timeout=2 + ) + if response.status_code == 200: + data = response.json() + logger.info(f"Shelly Gen2 Gerät gefunden: {ip} - {data.get('name', 'Unknown')}") + return { + 'ip': ip, + 'generation': 2, + 'info': data + } + except: + pass + + try: + # Versuche Gen1 API (ältere Shelly-Geräte) + response = requests.get( + f"http://{ip}/shelly", + timeout=2 + ) + if response.status_code == 200: + data = response.json() + if 'type' in data and (data['type'].startswith('SHELLY') or data['type'].startswith('SHSW')): + logger.info(f"Shelly Gen1 Gerät gefunden: {ip} - {data.get('type', 'Unknown')}") + return { + 'ip': ip, + 'generation': 1, + 'info': data + } + except: + pass + + return None + + def get_device_status(self, device: Dict) -> Optional[Dict]: + """ + Holt den Status eines Shelly-Geräts + + Args: + device: Device Info Dictionary + + Returns: + Status Dictionary oder None + """ + ip = device['ip'] + + try: + if device['generation'] == 2: + # Gen2 Status + response = requests.get( + f"http://{ip}/rpc/Shelly.GetStatus", + timeout=2 + ) + if response.status_code == 200: + return response.json() + else: + # Gen1 Status + response = requests.get( + f"http://{ip}/status", + timeout=2 + ) + if response.status_code == 200: + return response.json() + except Exception as e: + logger.error(f"Fehler beim Abrufen des Status von {ip}: {e}") + + return None + + def discover_devices(self, start_ip: int = 1, end_ip: int = 254) -> List[Dict]: + """ + Entdeckt alle Shelly-Geräte im Netzwerk + + Returns: + Liste von Shelly-Geräten mit Status + """ + active_hosts = self.scan_network(start_ip, end_ip) + + for ip in active_hosts: + device = self.is_shelly_device(ip) + if device: + status = self.get_device_status(device) + device['status'] = status + self.devices.append(device) + + logger.info(f"Insgesamt {len(self.devices)} Shelly-Geräte entdeckt") + return self.devices + + + +# ============================================================================ +# MODULE WRAPPER +# ============================================================================ + +class ShellyModule(BaseModule): + """ + Shelly Modul - Implementiert BaseModule Interface + Gibt Actors/Sensors zurück, KEINE DB-Operationen + """ + + def is_enabled(self) -> bool: + """Prüft ob Shelly aktiviert ist""" + return self.config.shelly_enable + + def discover(self) -> Tuple[List[Dict], List[Dict]]: + """ + Führt Shelly Discovery durch + + Returns: + Tuple (actors, sensors) + """ + logger.info("\n" + "=" * 60) + logger.info("SHELLY-GERÄTE WERDEN GESUCHT") + logger.info("=" * 60) + + actors = [] + sensors = [] + + try: + discovery = ShellyDiscovery(network_range=self.config.shelly_network_range) + devices = discovery.discover_devices( + start_ip=self.config.shelly_start_ip, + end_ip=self.config.shelly_end_ip + ) + + if not devices: + logger.info("Keine Shelly-Geräte gefunden") + return actors, sensors + + logger.info(f"{len(devices)} Shelly-Geräte gefunden") + + # Verarbeite jedes Gerät + for device in devices: + if device['generation'] == 2: + device_actors, device_sensors = self._parse_gen2_device(device) + else: + device_actors, device_sensors = self._parse_gen1_device(device) + + actors.extend(device_actors) + sensors.extend(device_sensors) + + except Exception as e: + logger.error(f"✗ Shelly Discovery Fehler: {e}") + + logger.info(f"Shelly: {len(actors)} Aktoren, {len(sensors)} Sensoren gefunden") + return actors, sensors + + def _parse_gen2_device(self, device: Dict) -> Tuple[List[Dict], List[Dict]]: + """Parst Gen2 Shelly-Gerät""" + actors = [] + sensors = [] + + info = device.get('info', {}) + status = device.get('status', {}) + ip = device['ip'] + + device_name = info.get('name', f"Shelly_{info.get('id', ip)}") + device_model = info.get('model', 'Unknown') + + # Switches als Aktoren + switch_count = sum(1 for key in status.keys() if key.startswith('switch:')) + for i in range(switch_count): + switch_data = status.get(f'switch:{i}', {}) + + actors.append({ + 'type': f'ShellySwitch_{device_model}'.replace(' ', '_'), + 'name': f"{device_name}_Switch_{i}", + 'url': f"http://{ip}/rpc/Switch.Set?id={i}", + 'commands': [ + {'command': 'turn_on', 'parameters': []}, + {'command': 'turn_off', 'parameters': []}, + {'command': 'toggle', 'parameters': []} + ], + 'states': [ + { + 'name': 'output', + 'type': 'boolean', + 'current_value': switch_data.get('output', False) + } + ] + }) + + # Temperatursensoren + temp_count = sum(1 for key in status.keys() if key.startswith('temperature:')) + for i in range(temp_count): + temp_data = status.get(f'temperature:{i}', {}) + + sensors.append({ + 'type': 'ShellyTemperatureSensor', + 'name': f"{device_name}_Temp_{i}", + 'url': f"http://{ip}/rpc/Temperature.GetStatus?id={i}", + 'states': [ + { + 'name': 'temperature', + 'type': 'number', + 'current_value': temp_data.get('tC'), + 'unit': '°C' + } + ] + }) + # Energy-Meter + em_count = sum(1 for key in status.keys() if key.startswith('em:')) + for i in range(em_count): + em_data = status.get(f'em:{i}', {}) + sensors.append({ + 'type': 'ShellyEnergyMeter', + 'name': f"{device_name}_EM_{i}", + 'url': f"http://{ip}/rpc/em.GetStatus?id={i}", + 'states': [] + }) + if(em_data.get('a_voltage') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Spannung Phase A', + 'type': 'number', + 'url': 'a_voltage', + 'current_value': em_data.get('a_voltage'), + 'unit': 'V'}) + if(em_data.get('b_voltage') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Spannung Phase B', + 'type': 'number', + 'url': 'b_voltage', + 'current_value': em_data.get('b_voltage'), + 'unit': 'V'}) + if(em_data.get('c_voltage') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Spannung Phase C', + 'type': 'number', + 'url': 'c_voltage', + 'current_value': em_data.get('c_voltage'), + 'unit': 'V'}) + if(em_data.get('a_current') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Strom Phase A', + 'type': 'number', + 'url': 'a_current', + 'current_value': em_data.get('a_current'), + 'unit': 'A'}) + if(em_data.get('b_current') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Strom Phase B', + 'type': 'number', + 'url': 'b_current', + 'current_value': em_data.get('b_current'), + 'unit': 'A'}) + if(em_data.get('c_current') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Strom Phase C', + 'type': 'number', + 'url': 'c_current', + 'current_value': em_data.get('c_current'), + 'unit': 'A'}) + if(em_data.get('a_act_power') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Wirkleistung Phase A', + 'type': 'number', + 'url': 'a_act_power', + 'current_value': em_data.get('a_act_power'), + 'unit': 'W'}) + if(em_data.get('b_act_power') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Wirkleistung Phase B', + 'type': 'number', + 'url': 'b_act_power', + 'current_value': em_data.get('b_act_power'), + 'unit': 'W'}) + if(em_data.get('c_act_power') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Wirkleistung Phase C', + 'type': 'number', + 'url': 'c_act_power', + 'current_value': em_data.get('c_act_power'), + 'unit': 'W'}) + if(em_data.get('a_aprt_power') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Scheinleistung Phase A', + 'type': 'number', + 'url': 'a_aprt_power', + 'current_value': em_data.get('a_aprt_power'), + 'unit': 'VA'}) + if(em_data.get('b_aprt_power') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Scheinleistung Phase B', + 'type': 'number', + 'url': 'b_aprt_power', + 'current_value': em_data.get('b_aprt_power'), + 'unit': 'VA'}) + if(em_data.get('c_aprt_power') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Scheinleistung Phase C', + 'type': 'number', + 'url': 'c_aprt_power', + 'current_value': em_data.get('c_aprt_power'), + 'unit': 'VA'}) + if(em_data.get('a_freq') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Frequenz Phase A', + 'type': 'number', + 'url': 'a_freq', + 'current_value': em_data.get('a_freq'), + 'unit': 'Hz'}) + if(em_data.get('b_freq') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Frequenz Phase B', + 'type': 'number', + 'url': 'b_freq', + 'current_value': em_data.get('b_freq'), + 'unit': 'Hz'}) + if(em_data.get('c_freq') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Frequenz Phase C', + 'type': 'number', + 'url': 'c_freq', + 'current_value': em_data.get('c_freq'), + 'unit': 'Hz'}) + if(em_data.get('total_act_power') is not None): + sensors[len(sensors)-1]['states'].append({ + 'name': 'Wirkleistung gesamt', + 'type': 'number', + 'url': 'total_act_power', + 'current_value': em_data.get('total_act_power'), + 'unit': 'W'}) + + return actors, sensors + + def _parse_gen1_device(self, device: Dict) -> Tuple[List[Dict], List[Dict]]: + """Parst Gen1 Shelly-Gerät""" + actors = [] + sensors = [] + + info = device.get('info', {}) + status = device.get('status', {}) + ip = device['ip'] + + device_name = info.get('name', f"Shelly_{info.get('type', ip)}") + device_type = info.get('type', 'Unknown') + + # Relays als Aktoren + relays = status.get('relays', []) + for i, relay in enumerate(relays): + actors.append({ + 'type': f'ShellyRelay_{device_type}'.replace(' ', '_'), + 'name': f"{device_name}_Relay_{i}", + 'url': f"http://{ip}/relay/{i}", + 'commands': [ + {'command': 'turn_on', 'parameters': []}, + {'command': 'turn_off', 'parameters': []}, + {'command': 'toggle', 'parameters': []} + ], + 'states': [ + { + 'name': 'ison', + 'type': 'boolean', + 'current_value': relay.get('ison', False) + } + ] + }) + + # Temperatursensoren + temp_data = status.get('tmp', {}) + if temp_data and 'tC' in temp_data: + sensors.append({ + 'type': 'ShellyTemperatureSensor', + 'name': f"{device_name}_Temp", + 'url': f"http://{ip}/status", + 'states': [ + { + 'name': 'temperature', + 'type': 'number', + 'current_value': temp_data.get('tC'), + 'unit': '°C' + } + ] + }) + + return actors, sensors \ No newline at end of file diff --git a/restricted/deviceDiscovery/modules/tahoma_module.py b/restricted/deviceDiscovery/modules/tahoma_module.py new file mode 100644 index 0000000..e60341c --- /dev/null +++ b/restricted/deviceDiscovery/modules/tahoma_module.py @@ -0,0 +1,310 @@ +#!/usr/bin/env python3 +""" +Tahoma Module +Enthält NUR Tahoma-spezifische Geräte-Discovery Logik +KEINE Datenbank-Operationen! +""" + +import requests +import urllib3 +import re +import logging +from typing import List, Dict, Optional, Tuple +from modules.base_module import BaseModule + +# SSL-Warnungen deaktivieren +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + +logger = logging.getLogger(__name__) + + +class TahomaAPI: + """Original TahomaAPI Klasse - unverändert""" + + def __init__(self, gateway_ip: str, api_token: str): + self.base_url = f"https://{gateway_ip}:8443/enduser-mobile-web/1/enduserAPI" + self.headers = { + "Authorization": f"Bearer {api_token}", + "Content-Type": "application/json" + } + + def get_setup(self) -> Optional[Dict]: + try: + url = f"{self.base_url}/setup" + response = requests.get(url, headers=self.headers, verify=False, timeout=10) + response.raise_for_status() + return response.json() + except requests.exceptions.RequestException as e: + logger.error(f"Fehler beim Abrufen der Setup-Daten: {e}") + return None + + def get_devices(self) -> List[Dict]: + setup = self.get_setup() + if not setup: + return [] + devices = setup.get('devices', []) + logger.info(f"{len(devices)} Tahoma-Geräte gefunden") + return devices + + +class DeviceClassifier: + """Original DeviceClassifier - unverändert""" + + ACTOR_TYPES = { + 'RollerShutter', 'ExteriorScreen', 'Awning', 'Blind', + 'GarageDoor', 'Window', 'Light', 'OnOff', 'DimmableLight', + 'HeatingSystem', 'Valve', 'Switch', 'Door', 'Curtain', + 'VenetianBlind', 'PergolaScreen' + } + + SENSOR_TYPES = { + 'TemperatureSensor', 'LightSensor', 'HumiditySensor', + 'ContactSensor', 'OccupancySensor', 'SmokeSensor', + 'WaterDetectionSensor', 'WindowHandle', 'MotionSensor', + 'SunSensor', 'WindSensor', 'RainSensor', 'ConsumptionSensor' + } + + # Tahoma Commands mit Parametern + TAHOMA_COMMANDS = { + "setClosure": [{"name": "position", "type": "integer", "min": 0, "max": 100}], + "setClosureAndOrientation": [ + {"name": "position", "type": "integer", "min": 0, "max": 100}, + {"name": "neigung", "type": "integer", "min": 0, "max": 100} + ], + "setOrientation": [{"name": "neigung", "type": "integer", "min": 0, "max": 100}], + "up": [], "down": [], "my": [], "stop": [], "refresh": [], "wink":[], + "setMyPosition": [{"name": "position", "type": "integer", "min": 0, "max": 100}], + "on": [], "off": [], "toggle": [], + "setIntensity": [{"name": "helligkeit", "type": "integer", "min": 0, "max": 100}], + "setColor": [ + {"name": "farbton", "type": "integer", "min": 0, "max": 360}, + {"name": "sättigung", "type": "integer", "min": 0, "max": 100} + ], + "setColorTemperature": [{"name": "farbtemperatur", "type": "integer", "min": 2000, "max": 6500}], + "setTargetTemperature": [{"name": "temperatur", "type": "float", "min": 5.0, "max": 30.0}], + "setMode": [{"name": "betriebsart", "type": "string"}], + "pulse": [{"name": "impuls_dauer", "type": "integer", "min": 1, "max": 3600}], + "setLevel": [{"name": "ausgangs_level", "type": "integer", "min": 0, "max": 100}], + "trigger": [], + } + + @classmethod + def is_actor(cls, device: Dict) -> bool: + """Prüft ob Gerät ein Aktor ist""" + device_type = device.get('controllableName', device.get('uiClass', '')) + + if device_type in cls.ACTOR_TYPES: + return True + + commands = device.get('definition', {}).get('commands', []) + if commands: + command_names = [cmd.get('commandName', '') for cmd in commands] + actor_commands = {'open', 'close', 'on', 'off', 'up', 'down', 'setPosition', 'dim'} + if any(cmd in actor_commands for cmd in command_names): + return True + + return False + + @classmethod + def is_sensor(cls, device: Dict) -> bool: + """Prüft ob Gerät ein Sensor ist""" + device_type = device.get('controllableName', device.get('uiClass', '')) + + if device_type in cls.SENSOR_TYPES: + return True + + states = device.get('states', []) + commands = device.get('definition', {}).get('commands', []) + + if states and len(states) > 0 and len(commands) <= 1: + return True + + return False + + @classmethod + def extract_actor_data(cls, device: Dict) -> tuple: + """Extrahiert Commands und States aus Aktor""" + commands = [] + states = [] + + cmd_definitions = device.get('definition', {}).get('commands', []) + + for cmd in cmd_definitions: + command_name = cmd.get('commandName', '') + cmd_params = cls.TAHOMA_COMMANDS.get(command_name, "Not in List") + if(cmd_params != "Not in List"): #only append command, if it is on of the listed commands, to prevent flooding the DB with bullshit. + command_entry = { + 'command': command_name, + 'parameters': [] + } + + for cmd_param in cmd_params: + param_detail = {'name': cmd_param.get('name', '')} + + if 'type' in cmd_param: + param_detail['type'] = cmd_param['type'] + if 'min' in cmd_param: + param_detail['min'] = cmd_param['min'] + if 'max' in cmd_param: + param_detail['max'] = cmd_param['max'] + if 'values' in cmd_param: + param_detail['values'] = cmd_param['values'] + + if param_detail['name']: + command_entry['parameters'].append(param_detail) + + commands.append(command_entry) + + # States extrahieren + state_definitions = device.get('states', []) + for state in state_definitions: + state_name = state.get('name', '') + if state_name: + state_entry = { + 'name': state_name, + 'type': state.get('type', 0) + } + if 'value' in state: + state_entry['current_value'] = state['value'] + states.append(state_entry) + + return commands, states + + @classmethod + def extract_sensor_data(cls, device: Dict) -> list: + """Extrahiert States aus Sensor""" + states = [] + + state_definitions = device.get('states', []) + for state in state_definitions: + state_name = state.get('name', '') + if state_name: + state_entry = { + 'name': state_name, + 'type': state.get('type', 0) + } + if 'value' in state: + state_entry['current_value'] = state['value'] + states.append(state_entry) + + return states + + +class TahomaModule(BaseModule): + """ + Tahoma Modul - Implementiert BaseModule Interface + Gibt nur Actors/Sensors zurück, KEINE DB-Operationen + """ + + def is_enabled(self) -> bool: + """Prüft ob Tahoma aktiviert ist""" + return (self.config.tahoma_enable and + self.config.tahoma_ip and + self.config.tahoma_token) + + def discover(self) -> Tuple[List[Dict], List[Dict]]: + """ + Führt Tahoma Discovery durch + + Returns: + Tuple (actors, sensors) - Listen von Dicts im vereinheitlichten Format + """ + logger.info("\n" + "=" * 60) + logger.info("TAHOMA-GERÄTE WERDEN ABGERUFEN") + logger.info("=" * 60) + + actors = [] + sensors = [] + + # TahomaAPI initialisieren + tahoma = TahomaAPI(self.config.tahoma_ip, self.config.tahoma_token) + devices = tahoma.get_devices() + + if not devices: + logger.warning("Keine Tahoma-Geräte gefunden") + return actors, sensors + + # Geräte gruppieren (Original-Logik) + device_groups = {} + standalone_devices = [] + + for device in devices: + device_url = device.get('deviceURL', '') + match = re.match(r'(.+)#(\d+)$', device_url) + + if match: + base_url = match.group(1) + if base_url not in device_groups: + device_groups[base_url] = [] + device_groups[base_url].append(device) + else: + standalone_devices.append(device) + + # Gruppierte Geräte verarbeiten + for base_url, group_devices in device_groups.items(): + main_device = None + for dev in group_devices: + if dev.get('deviceURL', '').endswith('#1'): + main_device = dev + break + + if not main_device and group_devices: + main_device = group_devices[0] + + main_name = main_device.get('label', 'Unbekannt') if main_device else 'Unbekannt' + + for device in group_devices: + actor, sensor = self._process_device(device, main_name) + if actor: + actors.append(actor) + if sensor: + sensors.append(sensor) + + # Standalone Geräte verarbeiten + for device in standalone_devices: + device_name = device.get('label', 'Unbekannt') + actor, sensor = self._process_device(device, device_name) + if actor: + actors.append(actor) + if sensor: + sensors.append(sensor) + + logger.info(f"Tahoma: {len(actors)} Aktoren, {len(sensors)} Sensoren gefunden") + return actors, sensors + + def _process_device(self, device: Dict, device_name: str) -> Tuple[Optional[Dict], Optional[Dict]]: + """ + Verarbeitet ein einzelnes Gerät + + Returns: + Tuple (actor_dict or None, sensor_dict or None) + """ + device_url = device.get('deviceURL', '') + device_type = device.get('controllableName', device.get('uiClass', 'Unknown')) + + is_actor = DeviceClassifier.is_actor(device) + is_sensor = DeviceClassifier.is_sensor(device) + + actor = None + sensor = None + + if is_actor: + commands, states = DeviceClassifier.extract_actor_data(device) + actor = { + 'type': device_type, + 'name': device_name, + 'url': device_url, + 'commands': commands, + 'states': states + } + + elif is_sensor: + states = DeviceClassifier.extract_sensor_data(device) + sensor = { + 'type': device_type, + 'name': device_name, + 'url': device_url, + 'states': states + } + + return actor, sensor diff --git a/restricted/deviceDiscovery/modules/wled_module.py b/restricted/deviceDiscovery/modules/wled_module.py new file mode 100644 index 0000000..82ec4e3 --- /dev/null +++ b/restricted/deviceDiscovery/modules/wled_module.py @@ -0,0 +1,313 @@ +#!/usr/bin/env python3 +""" +WLED Module +Enthält NUR WLED-spezifische Geräte-Discovery Logik +KEINE Datenbank-Operationen! +""" + +import requests +import socket +import concurrent.futures +import logging +from typing import List, Dict, Optional, Tuple +from modules.base_module import BaseModule + +logger = logging.getLogger(__name__) + + +class WLEDDiscovery: + """Original WLEDDiscovery Klasse - unverändert""" + + @staticmethod + def discover_devices(timeout: int = 5) -> List[str]: + """Sucht nach WLED-Geräten via mDNS""" + try: + from zeroconf import ServiceBrowser, ServiceListener, Zeroconf + import time + + class WLEDListener(ServiceListener): + def __init__(self): + self.devices = [] + + def add_service(self, zc, type_, name): + info = zc.get_service_info(type_, name) + if info: + addresses = [socket.inet_ntoa(addr) for addr in info.addresses] + for addr in addresses: + if addr not in self.devices: + self.devices.append(addr) + logger.info(f"WLED-Gerät gefunden: {name} ({addr})") + + def remove_service(self, zc, type_, name): + pass + + def update_service(self, zc, type_, name): + pass + + zeroconf = Zeroconf() + listener = WLEDListener() + browser = ServiceBrowser(zeroconf, "_http._tcp.local.", listener) + + logger.info(f"Suche nach WLED-Geräten (Timeout: {timeout}s)...") + time.sleep(timeout) + + zeroconf.close() + + # Nur WLED-Geräte filtern + wled_devices = [] + for ip in listener.devices: + if WLEDDiscovery.is_wled_device(ip): + wled_devices.append(ip) + + logger.info(f"{len(wled_devices)} WLED-Geräte gefunden") + return wled_devices + + except ImportError: + logger.warning("zeroconf nicht installiert. Verwende Netzwerk-Scan...") + return WLEDDiscovery.scan_network() + except Exception as e: + logger.error(f"Fehler bei WLED-Discovery: {e}") + return [] + + @staticmethod + def scan_network(network: str = None, max_threads: int = 50) -> List[str]: + """Scannt das Netzwerk nach WLED-Geräten""" + if network is None: + try: + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + s.connect(("8.8.8.8", 80)) + local_ip = s.getsockname()[0] + s.close() + network_prefix = '.'.join(local_ip.split('.')[:-1]) + except: + logger.warning("Konnte lokale IP nicht ermitteln, verwende 192.168.1.x") + network_prefix = "192.168.1" + else: + network_prefix = '.'.join(network.split('.')[:3]) + + logger.info(f"Scanne Netzwerk {network_prefix}.0/24 nach WLED-Geräten...") + + def check_ip(ip): + if WLEDDiscovery.is_wled_device(ip): + return ip + return None + + wled_devices = [] + with concurrent.futures.ThreadPoolExecutor(max_workers=max_threads) as executor: + futures = [executor.submit(check_ip, f"{network_prefix}.{i}") + for i in range(1, 255)] + + for future in concurrent.futures.as_completed(futures): + result = future.result() + if result: + wled_devices.append(result) + logger.info(f"WLED-Gerät gefunden: {result}") + + return wled_devices + + @staticmethod + def is_wled_device(ip: str, timeout: float = 1.0) -> bool: + """Prüft ob IP ein WLED-Gerät ist""" + try: + response = requests.get( + f"http://{ip}/json/info", + timeout=timeout, + headers={'User-Agent': 'DeviceDiscovery/1.0'} + ) + if response.status_code == 200: + data = response.json() + return 'ver' in data or 'name' in data + except: + pass + return False + + +class WLEDAPI: + """Original WLEDAPI Klasse - unverändert""" + + def __init__(self, ip: str): + self.ip = ip + self.base_url = f"http://{ip}" + + def get_info(self) -> Optional[Dict]: + try: + response = requests.get(f"{self.base_url}/json/info", timeout=2) + response.raise_for_status() + return response.json() + except Exception as e: + logger.error(f"Fehler beim Abrufen der WLED-Info von {self.ip}: {e}") + return None + + def get_presets(self) -> Optional[List]: + try: + response = requests.get(f"{self.base_url}/presets.json", timeout=2) + response.raise_for_status() + presets_data = response.json() + preset_list = [] + if isinstance(presets_data, dict): + for preset_id, preset_data in presets_data.items(): + preset_name = preset_data.get('n', f'Preset {preset_id}') + preset_list.append({int(preset_id): preset_name}) + return preset_list + except Exception as e: + logger.error(f"Fehler beim Abrufen der WLED-Presets von {self.ip}: {e}") + return None + + def get_effects(self) -> Optional[List]: + try: + response = requests.get(f"{self.base_url}/json/eff", timeout=2) + response.raise_for_status() + eff_data = response.json() + eff_list = [] + for eff_id, eff_name in enumerate(eff_data): + if not eff_name: + eff_name = f"Effect {eff_id}" + eff_list.append({int(eff_id): eff_name}) + return eff_list + except Exception as e: + logger.error(f"Fehler beim Abrufen der WLED-Effects von {self.ip}: {e}") + return None + + def get_state(self) -> Optional[Dict]: + try: + response = requests.get(f"{self.base_url}/json/state", timeout=2) + response.raise_for_status() + return response.json() + except Exception as e: + logger.error(f"Fehler beim Abrufen des WLED-State von {self.ip}: {e}") + return None + + def get_device_data(self) -> Optional[Dict]: + """Erstellt Geräte-Dict im vereinheitlichten Format""" + info = self.get_info() + state = self.get_state() + + if not info: + return None + + name = info.get('name', f"WLED {self.ip}") + preset_values = self.get_presets() + eff_values = self.get_effects() + + commands = [ + {'command': 'on', 'parameters': []}, + {'command': 'off', 'parameters': []}, + { + 'command': 'setBrightness', + 'parameters': [ + {'name': 'brightness', 'type': 'integer', 'min': 0, 'max': 255} + ] + }, + { + 'command': 'setColor', + 'parameters': [ + {'name': 'red', 'type': 'integer', 'min': 0, 'max': 255}, + {'name': 'green', 'type': 'integer', 'min': 0, 'max': 255}, + {'name': 'blue', 'type': 'integer', 'min': 0, 'max': 255} + ] + }, + { + 'command': 'setEffect', + 'parameters': [ + {'name': 'effect', 'type': 'integer', 'min': 0, 'max': 255, 'values': eff_values} + ] + }, + { + 'command': 'setPreset', + 'parameters': [ + {'name': 'preset', 'type': 'integer', 'min': 1, 'max': 250, 'values': preset_values} + ] + } + ] + + states = [] + if state: + states.append({ + 'name': 'power', + 'type': 'boolean', + 'current_value': state.get('on', False) + }) + states.append({ + 'name': 'brightness', + 'type': 'integer', + 'current_value': state.get('bri', 0) + }) + + segments = state.get('seg', []) + if segments and len(segments) > 0: + colors = segments[0].get('col', [[0,0,0]]) + if colors and len(colors) > 0: + states.append({ + 'name': 'color_rgb', + 'type': 'array', + 'current_value': colors[0] + }) + + return { + 'type': 'WLED', + 'name': name, + 'url': f"wled://{self.ip}", + 'commands': commands, + 'states': states + } + + +class WLEDModule(BaseModule): + """ + WLED Modul - Implementiert BaseModule Interface + Gibt nur Actors zurück, KEINE DB-Operationen + """ + + def is_enabled(self) -> bool: + """Prüft ob WLED aktiviert ist""" + return self.config.wled_enable + + def discover(self) -> Tuple[List[Dict], List[Dict]]: + """ + Führt WLED Discovery durch + + Returns: + Tuple (actors, sensors) - WLED sind immer Actors + """ + logger.info("\n" + "=" * 60) + logger.info("WLED-GERÄTE WERDEN GESUCHT") + logger.info("=" * 60) + + actors = [] + sensors = [] + + # Discovery + wled_ips = WLEDDiscovery.discover_devices(timeout=self.config.wled_discovery_timeout) + + # Manuelle IPs hinzufügen + if self.config.wled_manual_ips: + logger.info(f"Füge {len(self.config.wled_manual_ips)} manuelle WLED-IPs hinzu...") + for manual_ip in self.config.wled_manual_ips: + if manual_ip not in wled_ips: + if WLEDDiscovery.is_wled_device(manual_ip): + wled_ips.append(manual_ip) + logger.info(f"✓ Manuelles WLED-Gerät: {manual_ip}") + else: + logger.warning(f"⚠ {manual_ip} ist kein WLED-Gerät") + + if not wled_ips: + logger.info("Keine WLED-Geräte gefunden") + return actors, sensors + + logger.info(f"{len(wled_ips)} WLED-Geräte gefunden") + + # Gerätedaten abrufen + for ip in wled_ips: + try: + wled = WLEDAPI(ip) + device_data = wled.get_device_data() + + if device_data: + actors.append(device_data) + else: + logger.warning(f"⚠ Konnte keine Daten von WLED {ip} abrufen") + except Exception as e: + logger.error(f"✗ Fehler beim Verarbeiten von WLED {ip}: {e}") + + logger.info(f"WLED: {len(actors)} Aktoren gefunden") + return actors, sensors diff --git a/restricted/footer.html b/restricted/footer.html new file mode 100644 index 0000000..3465160 --- /dev/null +++ b/restricted/footer.html @@ -0,0 +1,173 @@ + +
+ +
Free simple code
+ + + + No © 2025  by + m0 + + All rights don't care. + +
+ + + +
+
+
Offcanvas with backdrop
+ +
+
+

.....

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/restricted/header.php b/restricted/header.php new file mode 100644 index 0000000..999ce63 --- /dev/null +++ b/restricted/header.php @@ -0,0 +1,184 @@ + + + + + + + + Smarthome control + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/restricted/heat.html b/restricted/heat.html new file mode 100644 index 0000000..89e8374 --- /dev/null +++ b/restricted/heat.html @@ -0,0 +1,163 @@ + +
+ +
+ +
+ +
+
+

Heizung

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

Heater

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

Temperaturen

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

Wasserverbrauch

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

Temp.

+
+
+

--

°C +
+
+
+ +
+
+
+

Feuchte

+
+
+

--

%rF +
+
+
+ +
+
+
+

Wind

+
+
+
+

--

km/h +
+
+
+ +
+
+
+

Böen

+
+
+
+

--

km/h +
+
+
+ +
+
+
+

Druck

+
+
+

--

hPa +
+
+
+ +
+ +
+ +
+ +
+ \ No newline at end of file diff --git a/restricted/history.html b/restricted/history.html new file mode 100644 index 0000000..8222710 --- /dev/null +++ b/restricted/history.html @@ -0,0 +1,246 @@ + +
+ +
+ +
+ +
+
+

Vergangenheit

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

Power consumption

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

Power production

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

Power consumption

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

Power production

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

Power consumption

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

Power production

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

Statistik dieses Jahr

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

Statistik letztes Jahr

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

Statistik vorletztes Jahr

+
+ +
+
+
+ +
+
+ +
+ +
+ +
+ +
+ \ No newline at end of file diff --git a/restricted/history/getTahomaDevices.py b/restricted/history/getTahomaDevices.py new file mode 100644 index 0000000..00c1475 --- /dev/null +++ b/restricted/history/getTahomaDevices.py @@ -0,0 +1,1573 @@ +#!/usr/bin/env python3 +""" +Somfy Tahoma Local API to MySQL Database Script +Liest alle Aktoren und Sensoren aus der Tahoma Box und speichert sie in MySQL +""" + +import requests +import pymysql +from pymysql import Error +import json +import logging +from typing import List, Dict, Optional +import urllib3 +import socket +import configparser +import os +from mqtt_discovery import HomeAssistantDiscovery, MQTTDeviceConverter + +# SSL-Warnungen deaktivieren (Tahoma verwendet selbst-signierte Zertifikate) +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + + +class Config: + """Lädt und verwaltet die Konfiguration aus config.ini""" + + def __init__(self, config_file: str = 'config.ini'): + """ + Lädt die Konfiguration + + Args: + config_file: Name der Konfigurationsdatei (wird im Script-Verzeichnis gesucht) + """ + # Verzeichnis des Scripts ermitteln + script_dir = os.path.dirname(os.path.abspath(__file__)) + config_path = os.path.join(script_dir, config_file) + + if not os.path.exists(config_path): + raise FileNotFoundError( + f"Konfigurationsdatei '{config_file}' nicht gefunden!\n" + f"Erwartet in: {script_dir}\n" + f"Bitte erstellen Sie die Datei anhand der Vorlage config.ini.example" + ) + + self.config = configparser.ConfigParser() + self.config.read(config_path, encoding='utf-8') + + logger.info(f"Konfiguration geladen von: {config_path}") + + # Konfiguration validieren + self._validate() + + def _validate(self): + """Validiert die Konfiguration""" + required_sections = ['tahoma', 'database', 'wled', 'options'] + for section in required_sections: + if not self.config.has_section(section): + raise ValueError(f"Erforderliche Sektion '[{section}]' fehlt in config.ini") + + def _get_bool(self, section: str, key: str, fallback: bool = False) -> bool: + """Hilfsmethode zum Lesen von Boolean-Werten""" + value = self.config.get(section, key, fallback=str(fallback)).strip().lower() + return value in ('true', '1', 'yes', 'on') + + def _get_int(self, section: str, key: str, fallback: int = 0) -> int: + """Hilfsmethode zum Lesen von Integer-Werten""" + try: + return self.config.getint(section, key, fallback=fallback) + except ValueError: + return fallback + + def _get_list(self, section: str, key: str) -> List[str]: + """Hilfsmethode zum Lesen von Listen (komma-getrennt)""" + value = self.config.get(section, key, fallback='').strip() + if not value: + return [] + return [item.strip() for item in value.split(',') if item.strip()] + + # Tahoma Konfiguration + @property + def tahoma_ip(self) -> str: + return self.config.get('tahoma', 'ip').strip() + + @property + def tahoma_token(self) -> str: + return self.config.get('tahoma', 'token').strip() + + @property + def tahoma_timeout(self) -> int: + if self.config.has_section('advanced'): + return self._get_int('advanced', 'tahoma_timeout', 10) + return 10 + + # Datenbank Konfiguration + @property + def db_host(self) -> str: + return self.config.get('database', 'host').strip() + + @property + def db_port(self) -> int: + return self._get_int('database', 'port', 3306) + + @property + def db_name(self) -> str: + return self.config.get('database', 'database').strip() + + @property + def db_user(self) -> str: + return self.config.get('database', 'user').strip() + + @property + def db_password(self) -> str: + return self.config.get('database', 'password').strip() + + # WLED Konfiguration + @property + def wled_enable(self) -> bool: + return self._get_bool('wled', 'enable', True) + + @property + def wled_discovery_timeout(self) -> int: + return self._get_int('wled', 'discovery_timeout', 5) + + @property + def wled_manual_ips(self) -> List[str]: + return self._get_list('wled', 'manual_ips') + + @property + def wled_scan_network(self) -> Optional[str]: + value = self.config.get('wled', 'scan_network', fallback='').strip() + return value if value else None + + @property + def wled_timeout(self) -> int: + if self.config.has_section('advanced'): + return self._get_int('advanced', 'wled_timeout', 2) + return 2 + # MQTT Konfiguration + @property + def mqtt_enable(self) -> bool: + if not self.config.has_section('mqtt'): + return False + return self._get_bool('mqtt', 'enable', False) + + @property + def mqtt_broker(self) -> str: + if not self.config.has_section('mqtt'): + return 'localhost' + return self.config.get('mqtt', 'broker', fallback='localhost').strip() + + @property + def mqtt_port(self) -> int: + if not self.config.has_section('mqtt'): + return 1883 + return self._get_int('mqtt', 'port', 1883) + + @property + def mqtt_username(self) -> Optional[str]: + if not self.config.has_section('mqtt'): + return None + value = self.config.get('mqtt', 'username', fallback='').strip() + return value if value else None + + @property + def mqtt_password(self) -> Optional[str]: + if not self.config.has_section('mqtt'): + return None + value = self.config.get('mqtt', 'password', fallback='').strip() + return value if value else None + + @property + def mqtt_discovery_prefix(self) -> str: + if not self.config.has_section('mqtt'): + return 'homeassistant' + return self.config.get('mqtt', 'discovery_prefix', fallback='homeassistant').strip() + + @property + def mqtt_discovery_timeout(self) -> int: + if not self.config.has_section('mqtt'): + return 10 + return self._get_int('mqtt', 'discovery_timeout', 10) + # Optionen + @property + def clear_tables(self) -> bool: + return self._get_bool('options', 'clear_tables', True) + + @property + def log_level(self) -> str: + level = self.config.get('options', 'log_level', fallback='INFO').strip().upper() + valid_levels = ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'] + return level if level in valid_levels else 'INFO' + + @property + def log_file(self) -> Optional[str]: + value = self.config.get('options', 'log_file', fallback='').strip() + return value if value else None + + # Advanced + @property + def scan_threads(self) -> int: + if self.config.has_section('advanced'): + return self._get_int('advanced', 'scan_threads', 50) + return 50 + + +# Konfiguration laden (global, wird in main() initialisiert) +config = None + +# Logging konfigurieren (wird nach Config-Laden angepasst) +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(levelname)s - %(message)s' +) +logger = logging.getLogger(__name__) + + +class TahomaAPI: + """Klasse für die Kommunikation mit der Tahoma Local API""" + + def __init__(self, gateway_ip: str, api_token: str): + """ + Initialisiert die Tahoma API Verbindung + + Args: + gateway_ip: IP-Adresse der Tahoma Box + api_token: API Token (Bearer Token) + """ + self.base_url = f"https://{gateway_ip}:8443/enduser-mobile-web/1/enduserAPI" + self.headers = { + "Authorization": f"Bearer {api_token}", + "Content-Type": "application/json" + } + + def get_setup(self) -> Optional[Dict]: + """ + Ruft die komplette Setup-Konfiguration ab + + Returns: + Dictionary mit allen Geräten oder None bei Fehler + """ + try: + url = f"{self.base_url}/setup" + response = requests.get(url, headers=self.headers, verify=False, timeout=10) + response.raise_for_status() + return response.json() + except requests.exceptions.RequestException as e: + logger.error(f"Fehler beim Abrufen der Setup-Daten: {e}") + return None + + def get_devices(self) -> List[Dict]: + """ + Extrahiert alle Geräte aus dem Setup + + Returns: + Liste aller Geräte + """ + setup = self.get_setup() + if not setup: + return [] + + devices = setup.get('devices', []) + logger.info(f"{len(devices)} Geräte gefunden") + return devices + + def get_device_definition(self, device_url: str) -> Optional[Dict]: + """ + Ruft die detaillierte Definition eines Geräts ab + + Args: + device_url: URL des Geräts + + Returns: + Dictionary mit Gerätedefinition oder None bei Fehler + """ + try: + # Device URL encodieren + from urllib.parse import quote + encoded_url = quote(device_url, safe='') + url = f"{self.base_url}/setup/devices/{encoded_url}" + response = requests.get(url, headers=self.headers, verify=False, timeout=10) + response.raise_for_status() + return response.json() + except requests.exceptions.RequestException as e: + logger.debug(f"Fehler beim Abrufen der Device-Definition für {device_url}: {e}") + return None + + def get_device_states(self, device_url: str) -> List[Dict]: + """ + Ruft die aktuellen States eines Geräts ab + + Args: + device_url: URL des Geräts + + Returns: + Liste der States + """ + try: + from urllib.parse import quote + encoded_url = quote(device_url, safe='') + url = f"{self.base_url}/setup/devices/{encoded_url}/states" + response = requests.get(url, headers=self.headers, verify=False, timeout=10) + response.raise_for_status() + return response.json() + except requests.exceptions.RequestException as e: + logger.debug(f"Fehler beim Abrufen der Device-States für {device_url}: {e}") + return [] + + +class DatabaseManager: + """Klasse für die MySQL-Datenbankoperationen""" + + def __init__(self, host: str, database: str, user: str, password: str, port: int = 3306): + """ + Initialisiert die Datenbankverbindung + + Args: + host: MySQL Host + database: Datenbankname + user: Benutzername + password: Passwort + port: Port (Standard: 3306) + """ + self.host = host + self.database = database + self.user = user + self.password = password + self.port = port + self.connection = None + + def connect(self) -> bool: + """ + Stellt Verbindung zur Datenbank her + + Returns: + True bei Erfolg, False bei Fehler + """ + try: + self.connection = pymysql.connect( + host=self.host, + database=self.database, + user=self.user, + password=self.password, + port=self.port, + charset='utf8mb4' + ) + logger.info("Erfolgreich mit MariaDB/MySQL-Datenbank verbunden") + return True + except Error as e: + logger.error(f"Fehler bei der Datenbankverbindung: {e}") + return False + + def disconnect(self): + """Schließt die Datenbankverbindung""" + if self.connection: + self.connection.close() + logger.info("Datenbankverbindung geschlossen") + + def clear_tables(self): + """Löscht alle Einträge aus allen Tabellen""" + try: + cursor = self.connection.cursor() + # Foreign Key Constraints temporär deaktivieren + cursor.execute("SET FOREIGN_KEY_CHECKS=0") + + # Alle Tabellen leeren + cursor.execute("DELETE FROM command_parameters") + cursor.execute("DELETE FROM actor_commands") + cursor.execute("DELETE FROM actor_states") + cursor.execute("DELETE FROM actors") + + cursor.execute("DELETE FROM sensor_states") + cursor.execute("DELETE FROM sensors") + + # Foreign Key Constraints wieder aktivieren + cursor.execute("SET FOREIGN_KEY_CHECKS=1") + + self.connection.commit() + logger.info("Alle Tabellen geleert") + cursor.close() + except Error as e: + logger.error(f"Fehler beim Leeren der Tabellen: {e}") + self.connection.rollback() + + def insert_actor(self, device_type: str, name: str, url: str, + commands: list, states: list) -> bool: + """ + Fügt einen Aktor mit Commands und States in die Datenbank ein + (AKTUALISIERT für MQTT URL-Support) + """ + try: + cursor = self.connection.cursor() + + # 1. Aktor einfügen + query = """ + INSERT INTO actors (type, name, parameters, url) + VALUES (%s, %s, NULL, %s) + """ + cursor.execute(query, (device_type, name, url)) + actor_id = cursor.lastrowid + + # 2. Commands einfügen + for cmd in commands: + command_name = cmd.get('command', '') + + cmd_query = """ + INSERT INTO actor_commands (actor_id, command_name) + VALUES (%s, %s) + """ + cursor.execute(cmd_query, (actor_id, command_name)) + command_id = cursor.lastrowid + + # Parameter mit URL einfügen + cmd_params = cmd.get('parameters', []) + for param in cmd_params: + param_query = """ + INSERT INTO command_parameters + (command_id, parameter_name, parameter_type, min_value, max_value, possible_values, url) + VALUES (%s, %s, %s, %s, %s, %s, %s) + """ + param_name = param.get('name', '') + param_type = param.get('type', '') + min_val = param.get('min') + max_val = param.get('max') + possible_vals = json.dumps(param.get('values')) if 'values' in param else None + param_url = param.get('url') # NEU: MQTT Topic + + cursor.execute(param_query, + (command_id, param_name, param_type, min_val, max_val, possible_vals, param_url)) + + # 3. States mit URL einfügen + for state in states: + state_query = """ + INSERT INTO actor_states + (actor_id, state_name, state_type, current_value, unit, url) + VALUES (%s, %s, %s, %s, %s, %s) + """ + state_name = state.get('name', '') + state_type = state.get('type', 0) + current_value = str(state.get('current_value', '')) if 'current_value' in state else None + unit = state.get('unit') + state_url = state.get('url') # NEU: MQTT Topic + + cursor.execute(state_query, (actor_id, state_name, state_type, current_value, unit, state_url)) + + self.connection.commit() + cursor.close() + return True + + except Error as e: + logger.error(f"Fehler beim Einfügen des Aktors {name}: {e}") + self.connection.rollback() + return False + + def insert_sensor(self, device_type: str, name: str, url: str, + states: list) -> bool: + """ + Fügt einen Sensor mit States in die Datenbank ein + (AKTUALISIERT für MQTT URL-Support) + """ + try: + cursor = self.connection.cursor() + + # 1. Sensor einfügen + query = """ + INSERT INTO sensors (type, name, parameters, url) + VALUES (%s, %s, NULL, %s) + """ + cursor.execute(query, (device_type, name, url)) + sensor_id = cursor.lastrowid + + # 2. States mit URL einfügen + for state in states: + state_query = """ + INSERT INTO sensor_states + (sensor_id, state_name, state_type, current_value, unit, url) + VALUES (%s, %s, %s, %s, %s, %s) + """ + state_name = state.get('name', '') + state_type = state.get('type', 0) + current_value = str(state.get('current_value', '')) if 'current_value' in state else None + unit = state.get('unit') + state_url = state.get('url') # NEU: MQTT Topic + + cursor.execute(state_query, (sensor_id, state_name, state_type, current_value, unit, state_url)) + + self.connection.commit() + cursor.close() + return True + + except Error as e: + logger.error(f"Fehler beim Einfügen des Sensors {name}: {e}") + self.connection.rollback() + return False + + +class WLEDDiscovery: + """Klasse für die automatische WLED-Geräteerkennung im Netzwerk""" + + @staticmethod + def discover_devices(timeout: int = 5) -> List[str]: + """ + Sucht nach WLED-Geräten im lokalen Netzwerk mittels mDNS + + Args: + timeout: Timeout in Sekunden für die Suche + + Returns: + Liste mit IP-Adressen gefundener WLED-Geräte + """ + try: + from zeroconf import ServiceBrowser, ServiceListener, Zeroconf + import time + + class WLEDListener(ServiceListener): + def __init__(self): + self.devices = [] + + def add_service(self, zc, type_, name): + info = zc.get_service_info(type_, name) + if info: + # IP-Adresse extrahieren + addresses = [socket.inet_ntoa(addr) for addr in info.addresses] + for addr in addresses: + if addr not in self.devices: + self.devices.append(addr) + logger.info(f"WLED-Gerät gefunden: {name} ({addr})") + + def remove_service(self, zc, type_, name): + pass + + def update_service(self, zc, type_, name): + pass + + zeroconf = Zeroconf() + listener = WLEDListener() + browser = ServiceBrowser(zeroconf, "_http._tcp.local.", listener) + + logger.info(f"Suche nach WLED-Geräten (Timeout: {timeout}s)...") + time.sleep(timeout) + + zeroconf.close() + + # Filtern: Nur WLED-Geräte + wled_devices = [] + for ip in listener.devices: + if WLEDDiscovery.is_wled_device(ip): + wled_devices.append(ip) + + logger.info(f"{len(wled_devices)} WLED-Geräte gefunden") + return wled_devices + + except ImportError: + logger.warning("zeroconf-Bibliothek nicht installiert. Verwende Netzwerk-Scan...") + return WLEDDiscovery.scan_network() + except Exception as e: + logger.error(f"Fehler bei WLED-Discovery: {e}") + return [] + + @staticmethod + def scan_network(network: str = None, max_threads: int = 50) -> List[str]: + """ + Scannt das Netzwerk nach WLED-Geräten (Fallback-Methode) + + Args: + network: Netzwerk im Format "192.168.1.0/24" (None = automatisch) + max_threads: Maximale Anzahl paralleler Threads + + Returns: + Liste mit IP-Adressen gefundener WLED-Geräte + """ + import socket + import concurrent.futures + + if network is None: + # Eigene IP ermitteln und Netzwerk ableiten + try: + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + s.connect(("8.8.8.8", 80)) + local_ip = s.getsockname()[0] + s.close() + # Netzwerk ableiten (angenommen /24) + network_prefix = '.'.join(local_ip.split('.')[:-1]) + except: + logger.warning("Konnte lokale IP nicht ermitteln, verwende 192.168.1.x") + network_prefix = "192.168.1" + else: + network_prefix = '.'.join(network.split('.')[:3]) + + logger.info(f"Scanne Netzwerk {network_prefix}.0/24 nach WLED-Geräten...") + + def check_ip(ip): + if WLEDDiscovery.is_wled_device(ip): + return ip + return None + + wled_devices = [] + with concurrent.futures.ThreadPoolExecutor(max_workers=max_threads) as executor: + futures = [executor.submit(check_ip, f"{network_prefix}.{i}") + for i in range(1, 255)] + + for future in concurrent.futures.as_completed(futures): + result = future.result() + if result: + wled_devices.append(result) + logger.info(f"WLED-Gerät gefunden: {result}") + + return wled_devices + + @staticmethod + def is_wled_device(ip: str, timeout: float = 1.0) -> bool: + """ + Prüft ob eine IP-Adresse ein WLED-Gerät ist + + Args: + ip: IP-Adresse + timeout: Timeout für die Anfrage + + Returns: + True wenn WLED-Gerät, False sonst + """ + try: + response = requests.get( + f"http://{ip}/json/info", + timeout=timeout, + headers={'User-Agent': 'TahomaSync/1.0'} + ) + if response.status_code == 200: + data = response.json() + # WLED antwortet mit spezifischen Feldern + return 'ver' in data or 'name' in data + except: + pass + return False + + +class WLEDAPI: + """Klasse für die Kommunikation mit WLED-Geräten""" + + def __init__(self, ip: str): + """ + Initialisiert die WLED-API Verbindung + + Args: + ip: IP-Adresse des WLED-Geräts + """ + self.ip = ip + self.base_url = f"http://{ip}" + + def get_info(self) -> Optional[Dict]: + """ + Ruft Geräteinformationen ab + + Returns: + Dictionary mit Geräteinformationen oder None + """ + try: + response = requests.get(f"{self.base_url}/json/info", timeout=2) + response.raise_for_status() + return response.json() + except Exception as e: + logger.error(f"Fehler beim Abrufen der WLED-Info von {self.ip}: {e}") + return None + + def get_presets(self) -> Optional[Dict]: + """ + Ruft die Presets ab + + Returns: + Dictionary mit Presets oder None + """ + try: + response = requests.get(f"{self.base_url}/presets.json", timeout=2) + response.raise_for_status() + presets_data = response.json() + # Nur die relevanten Daten extrahieren + preset_list = [] + if isinstance(presets_data, dict): + for preset_id, preset_data in presets_data.items(): + preset_name = preset_data.get('n', f'Preset {preset_id}') + preset_list.append({ + int(preset_id): preset_name + }) + + return preset_list + except Exception as e: + logger.error(f"Fehler beim Abrufen der WLED-Presets von {self.ip}: {e}") + return None + + def get_effects(self) -> Optional[Dict]: + """ + Ruft die Effects ab + + Returns: + Dictionary mit effects oder None + """ + try: + response = requests.get(f"{self.base_url}/json/eff", timeout=2) + response.raise_for_status() + eff_data = response.json() + # Nur die relevanten Daten extrahieren + eff_list = [] + for eff_id, eff_data in enumerate(eff_data): + if(eff_data): + eff_name = eff_data + else: + eff_name = "Effect "+eff_id + eff_list.append({ + int(eff_id): eff_name + }) + + return eff_list + except Exception as e: + logger.error(f"Fehler beim Abrufen der WLED-Effects von {self.ip}: {e}") + return None + + def get_state(self) -> Optional[Dict]: + """ + Ruft aktuellen Zustand ab + + Returns: + Dictionary mit aktuellem Zustand oder None + """ + try: + response = requests.get(f"{self.base_url}/json/state", timeout=2) + response.raise_for_status() + return response.json() + except Exception as e: + logger.error(f"Fehler beim Abrufen des WLED-State von {self.ip}: {e}") + return None + + def get_device_data(self) -> Optional[Dict]: + """ + Erstellt ein Geräte-Dictionary im Tahoma-ähnlichen Format + + Returns: + Dictionary mit Gerätedaten + """ + info = self.get_info() + state = self.get_state() + + if not info: + return None + + # Name des Geräts + name = info.get('name', f"WLED {self.ip}") + preset_values = self.get_presets() + eff_values = self.get_effects() + # Commands für WLED erstellen + commands = [ + { + 'command': 'on', + 'parameters': [] + }, + { + 'command': 'off', + 'parameters': [] + }, + { + 'command': 'setBrightness', + 'parameters': [ + { + 'name': 'brightness', + 'type': 'integer', + 'min': 0, + 'max': 255 + } + ] + }, + { + 'command': 'setColor', + 'parameters': [ + { + 'name': 'red', + 'type': 'integer', + 'min': 0, + 'max': 255 + }, + { + 'name': 'green', + 'type': 'integer', + 'min': 0, + 'max': 255 + }, + { + 'name': 'blue', + 'type': 'integer', + 'min': 0, + 'max': 255 + } + ] + }, + { + 'command': 'setEffect', + 'parameters': [ + { + 'name': 'effect', + 'type': 'integer', + 'min': 0, + 'max': 255, + 'values':eff_values + } + ] + }, + { + 'command': 'setPreset', + 'parameters': [ + { + 'name': 'preset', + 'type': 'integer', + 'min': 1, + 'max': 250, + 'values': preset_values + } + ] + } + ] + + # States erstellen + states = [] + if state: + states.append({ + 'name': 'power', + 'type': 'boolean', + 'current_value': state.get('on', False) + }) + states.append({ + 'name': 'brightness', + 'type': 'integer', + 'current_value': state.get('bri', 0) + }) + + # Farbe (erstes Segment) + segments = state.get('seg', []) + if segments and len(segments) > 0: + seg = segments[0] + colors = seg.get('col', [[0,0,0]]) + if colors and len(colors) > 0: + rgb = colors[0] + states.append({ + 'name': 'color_rgb', + 'type': 'array', + 'current_value': rgb + }) + + return { + 'name': name, + 'type': 'WLED', + 'url': f"wled://{self.ip}", + 'commands': commands, + 'states': states, + 'info': { + 'version': info.get('ver', 'unknown'), + 'ip': self.ip, + 'mac': info.get('mac', 'unknown') + } + } + + +class DeviceClassifier: + """Klassifiziert Geräte als Aktoren oder Sensoren""" + + # Bekannte Aktor-Typen (können erweitert werden) + ACTOR_TYPES = { + 'RollerShutter', 'ExteriorScreen', 'Awning', 'Blind', + 'GarageDoor', 'Window', 'Light', 'OnOff', 'DimmableLight', + 'HeatingSystem', 'Valve', 'Switch', 'Door', 'Curtain', + 'VenetianBlind', 'PergolaScreen' + } + + # Bekannte Sensor-Typen (können erweitert werden) + SENSOR_TYPES = { + 'TemperatureSensor', 'LightSensor', 'HumiditySensor', + 'ContactSensor', 'OccupancySensor', 'SmokeSensor', + 'WaterDetectionSensor', 'WindowHandle', 'MotionSensor', + 'SunSensor', 'WindSensor', 'RainSensor', 'ConsumptionSensor' + } + + # Bekannte Kommandos (können erweitert werden) + TAHOMA_COMMANDS = { + # ---------- Jalousien & Rollos ---------- + "setClosure": [ + { + "name": "position", + "type": "integer", + "min": 0, + "max": 100, + "unit": "%", + "description": "0 % = offen, 100 % = zu" + } + ], + "setClosureAndOrientation": [ + { + "name": "position", + "type": "integer", + "min": 0, + "max": 100, + "unit": "%", + "description": "0 % = offen, 100 % = zu" + }, + { + "name": "neigung", + "type": "integer", + "min": 0, + "max": 100, + "unit": "%", + "description": "0 % = offen, 100 % = zu (Neigungswinkel bei Lamellen)" + }, + ], + "setOrientation": [ + { + "name": "neigung", + "type": "integer", + "min": 0, + "max": 100, + "unit": "%", + "description": "0 % = offen, 100 % = zu (Nur Neigungswinkel)" + } + ], + "up": [], # öffnet vollständig → kein Parameter + "down": [], # schließt vollständig → kein Parameter + "my": [], # fährt zur „Meine‑Position“ + "setMyPosition": [ + { + "name": "position", + "type": "integer", + "min": 0, + "max": 100, + "unit": "%", + "description": "Speichert die aktuelle bzw. angegebene Position (0 % = offen, 100 % = zu)" + } + ], + "stop": [], # sofort anhalten + "refresh": [], # Status neu abfragen + + # ---------- Licht / Schalter ---------- + "on": [], + "off": [], + "toggle": [], + "setIntensity": [ + { + "name": "helligkeit", + "type": "integer", + "min": 0, + "max": 100, + "unit": "%", + "description": "Helligkeit des Lichts" + } + ], + "setColor": [ + { + "name": "farbton", + "type": "integer", + "min": 0, + "max": 360, + "unit": "°", + "description": "Farbton (0‑360°)" + }, + { + "name": "sättigung", + "type": "integer", + "min": 0, + "max": 100, + "unit": "%", + "description": "Sättigung des Farbtons" + }, + ], + "setColorTemperature": [ + { + "name": "farbtemperatur", + "type": "integer", + "min": 2000, + "max": 6500, + "unit": "K", + "description": "Farbtemperatur in Kelvin" + } + ], + "setTransition": [ + { + "name": "dauer", + "type": "integer", + "min": 0, + "max": 3600, + "unit": "s", + "description": "Übergangszeit für nachfolgende Befehle" + } + ], + + # ---------- Thermostat ---------- + "setTargetTemperature": [ + { + "name": "temperatur", + "type": "float", + "min": 5.0, + "max": 30.0, + "unit": "°C", + "description": "Soll‑Temperatur" + } + ], + "setMode": [ + { + "name": "betriebsart", + "type": "string", + "enum": ["off", "heating", "cooling", "auto"], + "unit": None, + "description": "Betriebsmodus des Thermostats" + } + ], + "setBoost": [ + { + "name": "boost_dauer", + "type": "integer", + "min": 1, + "max": 180, + "unit": "min", + "description": "Kurz‑Boost‑Dauer" + } + ], + + # ---------- Schalt‑ / Szenen‑Geräte ---------- + "pulse": [ + { + "name": "impuls_dauer", + "type": "integer", + "min": 1, + "max": 3600, + "unit": "s", + "description": "Kurzimpuls‑Dauer" + } + ], + "setLevel": [ + { + "name": "ausgangs_level", + "type": "integer", + "min": 0, + "max": 100, + "unit": "%", + "description": "Ausgangs‑Level (dimmbare Relais)" + } + ], + "trigger": [], # Szene ausführen → kein Parameter + + # ---------- Meta‑Befehle (für alle Geräte) ---------- + "configureReporting": [ + { + "name": "intervall", + "type": "integer", + "min": 30, + "max": 86400, + "unit": "s", + "description": "Meldeintervall für das Gerät" + } + ], + "setBatteryThreshold": [ + { + "name": "warnschwelle", + "type": "integer", + "min": 0, + "max": 100, + "unit": "%", + "description": "Batteriewarnschwelle" + } + ], + } + + + + @classmethod + def is_actor(cls, device: Dict) -> bool: + """ + Prüft, ob ein Gerät ein Aktor ist + + Args: + device: Geräte-Dictionary + + Returns: + True wenn Aktor, False sonst + """ + device_type = device.get('definition', '').get('uiClass', '') + + # Prüfung nach bekannten Typen + if device_type in cls.ACTOR_TYPES: + return True + + # Prüfung nach Commandos (Aktoren haben typischerweise Commands) + commands = device.get('definition', {}).get('commands', []) + if commands and len(commands) > 0: + # Wenn Commands wie open, close, on, off existieren + command_names = [cmd.get('commandName', '') for cmd in commands] + actor_commands = {'open', 'close', 'on', 'off', 'up', 'down', 'setPosition', 'dim'} + if any(cmd in actor_commands for cmd in command_names): + return True + + return False + + @classmethod + def is_sensor(cls, device: Dict) -> bool: + """ + Prüft, ob ein Gerät ein Sensor ist + + Args: + device: Geräte-Dictionary + + Returns: + True wenn Sensor, False sonst + """ + device_type = device.get('definition', '').get('uiClass', '') + controllable_name = device.get('controllableName', '') + + # Prüfung nach bekannten Typen + if device_type in cls.SENSOR_TYPES: + return True + if controllable_name in cls.SENSOR_TYPES: + return True + else: + return False + # Prüfung nach States (Sensoren haben typischerweise nur States, keine Commands) + states = device.get('states', []) + commands = device.get('definition', {}).get('commands', []) + + # Sensor hat States aber keine oder nur wenige Commands + if states and len(states) > 0 and len(commands) <= 1: + return True + + return False + + @classmethod + def extract_actor_data(cls, device: Dict) -> tuple: + """ + Extrahiert Commands und States aus einem Aktor + + Args: + device: Geräte-Dictionary von der Tahoma API + + Returns: + Tuple (commands_list, states_list) + """ + commands = [] + states = [] + + # Commands aus der Definition extrahieren + cmd_definitions = device.get('definition', {}).get('commands', []) + + for cmd in cmd_definitions: + command_name = cmd.get('commandName', '') + + command_entry = { + 'command': command_name, + 'parameters': [] + } + + # HINWEIS: Tahoma API liefert oft keine detaillierten Parameter-Infos + # Daher werden Commands erstmal ohne Parameter-Details gespeichert + #cmd_params = cmd.get('parameters', []) + cmd_params = cls.TAHOMA_COMMANDS.get(command_name,[]) + + for cmd_param in cmd_params: + param_detail = { + 'name': cmd_param.get('name', '') + } + + # Datentyp (falls vorhanden) + param_type = cmd_param.get('type') + if param_type: + param_detail['type'] = param_type + + # Min/Max Werte (meist nicht in Tahoma API vorhanden) + if 'min' in cmd_param: + param_detail['min'] = cmd_param['min'] + if 'max' in cmd_param: + param_detail['max'] = cmd_param['max'] + + # Mögliche Werte (enum) (meist nicht vorhanden) + if 'values' in cmd_param: + param_detail['values'] = cmd_param['values'] + if 'unit' in cmd_param: + param_detail['unit'] = cmd_param['unit'] + if 'description' in cmd_param: + param_detail['description'] = cmd_param['description'] + # Nur hinzufügen wenn Name vorhanden + if param_detail['name']: + command_entry['parameters'].append(param_detail) + + commands.append(command_entry) + + # States extrahieren + state_definitions = device.get('states', []) + for state in state_definitions: + state_name = state.get('name', '') + if state_name: + state_entry = { + 'name': state_name, + 'type': state.get('type', 0) + } + if 'value' in state: + state_entry['current_value'] = state['value'] + states.append(state_entry) + + return commands, states + + @classmethod + def extract_sensor_data(cls, device: Dict) -> list: + """ + Extrahiert States aus einem Sensor + + Args: + device: Geräte-Dictionary von der Tahoma API + + Returns: + Liste der States + """ + states = [] + + # States extrahieren + state_definitions = device.get('states', []) + for state in state_definitions: + state_name = state.get('name', '') + if state_name: + state_entry = { + 'name': state_name, + 'type': state.get('type', 0) + } + + # Aktueller Wert falls vorhanden + if 'value' in state: + state_entry['current_value'] = state['value'] + + states.append(state_entry) + + return states + + +def process_devices(tahoma: TahomaAPI, db: DatabaseManager, + enable_wled: bool = True, wled_timeout: int = 5, + enable_mqtt: bool = True, # NEU + clear_before_insert: bool = True): + """ + Verarbeitet alle Geräte und speichert sie in der Datenbank + + Args: + tahoma: TahomaAPI Instanz + db: DatabaseManager Instanz + enable_wled: WLED-Geräte suchen und hinzufügen + wled_timeout: Timeout für WLED-Discovery in Sekunden + clear_before_insert: Tabellen vor dem Einfügen leeren (Standard: True) + """ + # Optional: Tabellen leeren + if clear_before_insert: + db.clear_tables() + + actor_count = 0 + sensor_count = 0 + unknown_count = 0 + + # ========== TAHOMA-GERÄTE VERARBEITEN ========== + logger.info("=" * 60) + logger.info("TAHOMA-GERÄTE WERDEN ABGERUFEN") + logger.info("=" * 60) + + devices = tahoma.get_devices() + + if not devices: + logger.warning("Keine Tahoma-Geräte gefunden") + else: + # Gruppierte Geräte identifizieren (#1, #2, etc.) + device_groups = {} # {base_url: [devices]} + standalone_devices = [] + + for device in devices: + device_url = device.get('deviceURL', '') + + # Prüfen ob URL mit #1, #2, etc. endet + import re + match = re.match(r'(.+)#(\d+)$', device_url) + + if match: + base_url = match.group(1) + if base_url not in device_groups: + device_groups[base_url] = [] + device_groups[base_url].append(device) + else: + standalone_devices.append(device) + + # Gruppierte Geräte verarbeiten + for base_url, group_devices in device_groups.items(): + # Hauptgerät finden (ohne #-Endung oder mit #1) + main_device = None + sub_devices = [] + + for dev in group_devices: + url = dev.get('deviceURL', '') + if url.endswith('#1'): + main_device = dev + else: + sub_devices.append(dev) + + # Falls kein #1, nehme das erste Gerät als Hauptgerät + if not main_device and group_devices: + main_device = group_devices[0] + sub_devices = group_devices[1:] + + # Name vom Hauptgerät für alle übernehmen + main_name = main_device.get('label', 'Unbekannt') if main_device else 'Unbekannt' + + # Alle Geräte der Gruppe verarbeiten mit gemeinsamem Namen + for device in group_devices: + device_url = device.get('deviceURL', '') + # controllableName als Typ verwenden + device_type = device.get('controllableName', device.get('uiClass', 'Unknown')) + + # Gerät klassifizieren + is_actor = DeviceClassifier.is_actor(device) + is_sensor = DeviceClassifier.is_sensor(device) + + if is_actor: + commands, states = DeviceClassifier.extract_actor_data(device) + if db.insert_actor(device_type, main_name, device_url, commands, states): + actor_count += 1 + logger.info(f"✓ Aktor [Gruppe]: {main_name} ({device_type}) - " + f"{len(commands)} Commands, {len(states)} States") + + elif is_sensor: + states = DeviceClassifier.extract_sensor_data(device) + if db.insert_sensor(device_type, main_name, device_url, states): + sensor_count += 1 + logger.info(f"✓ Sensor [Gruppe]: {main_name} ({device_type}) - " + f"{len(states)} States") + else: + unknown_count += 1 + logger.warning(f"⚠ Unbekannt [Gruppe]: {main_name} ({device_type}-{device_url})") + + # Standalone-Geräte verarbeiten + for device in standalone_devices: + device_url = device.get('deviceURL', '') + device_name = device.get('label', 'Unbekannt') + # controllableName als Typ verwenden + device_type = device.get('controllableName', device.get('uiClass', 'Unknown')) + + # Gerät klassifizieren + is_actor = DeviceClassifier.is_actor(device) + is_sensor = DeviceClassifier.is_sensor(device) + + if is_actor: + # Daten extrahieren + commands, states = DeviceClassifier.extract_actor_data(device) + + # In Datenbank speichern + if db.insert_actor(device_type, device_name, device_url, commands, states): + actor_count += 1 + logger.info(f"✓ Aktor: {device_name} ({device_type}) - " + f"{len(commands)} Commands, {len(states)} States") + + elif is_sensor: + # Daten extrahieren + states = DeviceClassifier.extract_sensor_data(device) + + # In Datenbank speichern + if db.insert_sensor(device_type, device_name, device_url, states): + sensor_count += 1 + logger.info(f"✓ Sensor: {device_name} ({device_type}) - " + f"{len(states)} States") + + else: + unknown_count += 1 + logger.warning(f"⚠ Unbekannt: {device_name} ({device_type})") + + # ========== WLED-GERÄTE SUCHEN UND VERARBEITEN ========== + if enable_wled: + logger.info("\n" + "=" * 60) + logger.info("WLED-GERÄTE WERDEN GESUCHT") + logger.info("=" * 60) + + wled_ips = WLEDDiscovery.discover_devices(timeout=wled_timeout) + + # Manuelle IPs aus Config hinzufügen + if config and config.wled_manual_ips: + logger.info(f"Füge {len(config.wled_manual_ips)} manuelle WLED-IPs hinzu...") + for manual_ip in config.wled_manual_ips: + if manual_ip not in wled_ips: + if WLEDDiscovery.is_wled_device(manual_ip): + wled_ips.append(manual_ip) + logger.info(f"✓ Manuelles WLED-Gerät: {manual_ip}") + else: + logger.warning(f"⚠ {manual_ip} ist kein WLED-Gerät") + + if not wled_ips: + logger.info("Keine WLED-Geräte gefunden") + else: + logger.info(f"\n{len(wled_ips)} WLED-Geräte gefunden, füge sie hinzu...") + + for ip in wled_ips: + try: + wled = WLEDAPI(ip) + device_data = wled.get_device_data() + + if device_data: + name = device_data['name'] + device_type = device_data['type'] + url = device_data['url'] + commands = device_data['commands'] + states = device_data['states'] + + # WLED immer als Aktor hinzufügen + if db.insert_actor(device_type, name, url, commands, states): + actor_count += 1 + logger.info(f"✓ WLED: {name} ({ip}) - " + f"{len(commands)} Commands, {len(states)} States") + else: + logger.warning(f"⚠ Konnte keine Daten von WLED {ip} abrufen") + + except Exception as e: + logger.error(f"✗ Fehler beim Verarbeiten von WLED {ip}: {e}") + # ========== MQTT-GERÄTE SUCHEN UND VERARBEITEN ========== + # ========== MQTT-GERÄTE SUCHEN UND VERARBEITEN ========== + if enable_mqtt: + logger.info("\n" + "=" * 60) + logger.info("MQTT/HOME ASSISTANT DISCOVERY") + logger.info("=" * 60) + + try: + # MQTT Discovery initialisieren + mqtt_discovery = HomeAssistantDiscovery( + broker=config.mqtt_broker, + port=config.mqtt_port, + username=config.mqtt_username, + password=config.mqtt_password, + discovery_prefix=config.mqtt_discovery_prefix + ) + + # Verbinden + if mqtt_discovery.connect(): + # Discovery durchführen + mqtt_entities = mqtt_discovery.discover_devices( + timeout=config.mqtt_discovery_timeout + ) + + # Entities nach Geräten gruppieren + mqtt_devices = MQTTDeviceConverter.group_entities_by_device(mqtt_entities) + + # Geräte verarbeiten + if not mqtt_devices: + logger.info("Keine MQTT-Geräte gefunden") + else: + logger.info(f"\n{len(mqtt_devices)} MQTT-Geräte gefunden (aus {len(mqtt_entities)} Entities)") + + for device_id, device_data in mqtt_devices.items(): + try: + # Gerät in Actor/Sensor konvertieren + actor_data, sensor_data = MQTTDeviceConverter.convert_device_to_actors_and_sensors( + device_id, device_data + ) + + # Actor speichern falls vorhanden + if actor_data: + if db.insert_actor( + actor_data['type'], + actor_data['name'], + actor_data['url'], + actor_data['commands'], + actor_data['states'] + ): + actor_count += 1 + logger.info(f"✓ MQTT Actor: {actor_data['name']} - " + f"{len(actor_data['commands'])} Commands, " + f"{len(actor_data['states'])} States") + + # Sensor speichern falls vorhanden + if sensor_data: + if db.insert_sensor( + sensor_data['type'], + sensor_data['name'], + sensor_data['url'], + sensor_data['states'] + ): + sensor_count += 1 + logger.info(f"✓ MQTT Sensor: {sensor_data['name']} - " + f"{len(sensor_data['states'])} States") + + except Exception as e: + logger.error(f"✗ Fehler beim Verarbeiten von MQTT-Gerät {device_id}: {e}") + import traceback + traceback.print_exc() + + # Verbindung trennen + mqtt_discovery.disconnect() + else: + logger.error("MQTT-Verbindung fehlgeschlagen") + + except Exception as e: + logger.error(f"✗ MQTT Discovery Fehler: {e}") + import traceback + traceback.print_exc() + + + # ========== ZUSAMMENFASSUNG ========== + logger.info("\n" + "=" * 60) + logger.info("ZUSAMMENFASSUNG") + logger.info("=" * 60) + logger.info(f"Aktoren gespeichert: {actor_count}") + logger.info(f"Sensoren gespeichert: {sensor_count}") + logger.info(f"Unbekannte Geräte: {unknown_count}") + logger.info("=" * 60) + + +def main(): + """Hauptfunktion""" + global config + + # Konfigurationsdatei laden + try: + config = Config('config.ini') + logger.info("Konfiguration erfolgreich geladen") + except FileNotFoundError as e: + print(f"FEHLER: {e}") + print("\nBitte erstellen Sie eine config.ini Datei mit Ihren Einstellungen.") + print("Siehe config.ini Vorlage für Details.") + return + except Exception as e: + print(f"FEHLER beim Laden der Konfiguration: {e}") + return + + # Logging-Level anpassen + log_level = getattr(logging, config.log_level) + logger.setLevel(log_level) + + # Optional: Log-Datei einrichten + if config.log_file: + file_handler = logging.FileHandler(config.log_file, encoding='utf-8') + file_handler.setLevel(log_level) + file_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')) + logger.addHandler(file_handler) + logger.info(f"Logging in Datei: {config.log_file}") + + # Tahoma API initialisieren + logger.info("Verbinde mit Tahoma Box...") + tahoma = TahomaAPI(config.tahoma_ip, config.tahoma_token) + + # Datenbank initialisieren + logger.info("Verbinde mit MySQL-Datenbank...") + db = DatabaseManager( + config.db_host, + config.db_name, + config.db_user, + config.db_password, + config.db_port + ) + + if not db.connect(): + logger.error("Datenbankverbindung fehlgeschlagen. Abbruch.") + return + + try: + # Geräte verarbeiten und in Datenbank speichern + process_devices( + tahoma, + db, + enable_wled=config.wled_enable, + wled_timeout=config.wled_discovery_timeout, + enable_mqtt=config.mqtt_enable, # NEU + clear_before_insert=config.clear_tables + ) + logger.info("\n✓ Import erfolgreich abgeschlossen!") + + except Exception as e: + logger.error(f"✗ Fehler während der Verarbeitung: {e}") + import traceback + traceback.print_exc() + + finally: + # Datenbankverbindung schließen + db.disconnect() + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/restricted/history/mqtt_discovery.py b/restricted/history/mqtt_discovery.py new file mode 100644 index 0000000..dcf33ce --- /dev/null +++ b/restricted/history/mqtt_discovery.py @@ -0,0 +1,596 @@ +#!/usr/bin/env python3 +""" +MQTT/Home Assistant Discovery Integration +Erweitert das Tahoma Script um MQTT-Geräte via Home Assistant Discovery +""" + +import paho.mqtt.client as mqtt +import json +import time +from typing import Dict, List, Optional +import logging + +logger = logging.getLogger(__name__) + + +class HomeAssistantDiscovery: + """Klasse für Home Assistant MQTT Discovery""" + + # Bekannte Discovery-Komponenten + COMPONENTS = [ + 'binary_sensor', 'sensor', 'switch', 'light', 'cover', + 'climate', 'fan', 'lock', 'camera', 'vacuum', 'alarm_control_panel', + 'device_tracker', 'number', 'select', 'button', 'text' + ] + + def __init__(self, broker: str, port: int = 1883, username: str = None, + password: str = None, discovery_prefix: str = 'homeassistant'): + """ + Initialisiert Home Assistant Discovery + + Args: + broker: MQTT Broker IP/Hostname + port: MQTT Port (Standard: 1883) + username: MQTT Benutzername (optional) + password: MQTT Passwort (optional) + discovery_prefix: Discovery Prefix (Standard: 'homeassistant') + """ + self.broker = broker + self.port = port + self.username = username + self.password = password + self.discovery_prefix = discovery_prefix + self.client = None + self.discovered_devices = {} + + def connect(self) -> bool: + """ + Verbindet mit dem MQTT Broker + + Returns: + True bei Erfolg, False bei Fehler + """ + try: + self.client = mqtt.Client() + + if self.username and self.password: + self.client.username_pw_set(self.username, self.password) + + self.client.on_connect = self._on_connect + self.client.on_message = self._on_message + + self.client.connect(self.broker, self.port, 60) + logger.info(f"Verbunden mit MQTT Broker {self.broker}:{self.port}") + return True + + except Exception as e: + logger.error(f"MQTT Verbindungsfehler: {e}") + return False + + def _on_connect(self, client, userdata, flags, rc): + """Callback wenn Verbindung hergestellt wurde""" + if rc == 0: + logger.info("MQTT Verbindung erfolgreich") + # Alle Discovery Topics abonnieren mit Wildcard für object_id + for component in self.COMPONENTS: + # Unterstützt beide Topic-Formate: + # homeassistant/component/node_id/config (4 Teile) + # homeassistant/component/node_id/object_id/config (5 Teile) + topic = f"{self.discovery_prefix}/{component}/+/+/config" + client.subscribe(topic) + logger.debug(f"Abonniert: {topic}") + # Zusätzlich auch das kürzere Format abonnieren + topic_short = f"{self.discovery_prefix}/{component}/+/config" + client.subscribe(topic_short) + logger.debug(f"Abonniert: {topic_short}") + else: + logger.error(f"MQTT Verbindung fehlgeschlagen, Code: {rc}") + + def _on_message(self, client, userdata, msg): + """Callback wenn Nachricht empfangen wurde""" + try: + # Topic analysieren - unterstützt beide Formate: + # homeassistant/component/node_id/config (4 Teile) + # homeassistant/component/node_id/object_id/config (5 Teile) + topic_parts = msg.topic.split('/') + + if topic_parts[-1] != 'config': + return # Kein Config-Topic + + if len(topic_parts) == 4: + # Format: homeassistant/component/node_id/config + component = topic_parts[1] + node_id = topic_parts[2] + object_id = None + elif len(topic_parts) == 5: + # Format: homeassistant/component/node_id/object_id/config + component = topic_parts[1] + node_id = topic_parts[2] + object_id = topic_parts[3] + else: + logger.debug(f"Unbekanntes Topic-Format: {msg.topic}") + return + + # Payload parsen + if msg.payload: + config = json.loads(msg.payload.decode('utf-8')) + + # Eindeutigen Key erstellen + if object_id: + device_key = f"{component}_{node_id}_{object_id}" + else: + device_key = f"{component}_{node_id}" + + # Gerät speichern + self.discovered_devices[device_key] = { + 'component': component, + 'node_id': node_id, + 'object_id': object_id, + 'config': config, + 'topic': msg.topic + } + + device_name = config.get('name', config.get('unique_id', object_id or node_id)) + logger.debug(f"Gerät gefunden: {device_name} ({component}) - {msg.topic}") + + except Exception as e: + logger.error(f"Fehler beim Verarbeiten der MQTT-Nachricht von {msg.topic}: {e}") + + def discover_devices(self, timeout: int = 10) -> Dict: + """ + Sucht nach Home Assistant Discovery Geräten + + Args: + timeout: Timeout in Sekunden + + Returns: + Dictionary mit gefundenen Geräten + """ + logger.info(f"Starte Home Assistant Discovery (Timeout: {timeout}s)...") + logger.info(f"Lausche auf {self.discovery_prefix}/+/+/+/config und {self.discovery_prefix}/+/+/config") + + self.discovered_devices = {} + + # MQTT Loop starten + self.client.loop_start() + + # Warten auf Nachrichten - mit Fortschrittsanzeige + for i in range(timeout): + time.sleep(1) + if (i + 1) % 5 == 0 or i == timeout - 1: + logger.info(f"Discovery läuft... {len(self.discovered_devices)} Geräte gefunden ({i+1}/{timeout}s)") + + # Loop stoppen + self.client.loop_stop() + + logger.info(f"✓ {len(self.discovered_devices)} MQTT-Geräte gefunden") + + # Debug: Zeige einige gefundene Topics + if self.discovered_devices: + logger.debug("Gefundene Geräte (Auswahl):") + for i, (key, device) in enumerate(list(self.discovered_devices.items())[:5]): + logger.debug(f" - {device['config'].get('name', key)} ({device['component']}) via {device['topic']}") + if len(self.discovered_devices) > 5: + logger.debug(f" ... und {len(self.discovered_devices) - 5} weitere") + + return self.discovered_devices + + def disconnect(self): + """Trennt die MQTT-Verbindung""" + if self.client: + self.client.disconnect() + logger.info("MQTT-Verbindung getrennt") + + +class MQTTDeviceConverter: + """Konvertiert MQTT Discovery Entities in Datenbank-Format, gruppiert nach Gerät""" + + # Mapping von HA Komponenten zu Actor/Sensor + ACTOR_COMPONENTS = ['switch', 'light', 'cover', 'fan', 'lock', 'climate', + 'vacuum', 'alarm_control_panel', ' ', 'number', 'select'] + SENSOR_COMPONENTS = ['binary_sensor', 'sensor', 'device_tracker'] + + @staticmethod + def group_entities_by_device(discovered_devices: Dict) -> Dict[str, List]: + """ + Gruppiert Discovery-Entities nach Gerät (node_id) + + Args: + discovered_devices: Dictionary mit allen gefundenen Entities + + Returns: + Dictionary: {device_id: [entity1, entity2, ...]} + """ + devices = {} + + for entity_key, entity in discovered_devices.items(): + # Device Identifier aus Config extrahieren + config = entity.get('config', {}) + device_info = config.get('device') or config.get('dev') or {} + # Node ID als Geräte-Identifier verwenden + node_id = entity.get('node_id', 'unknown') + + # Zusätzlich Device Identifiers prüfen falls vorhanden + if device_info and 'identifiers' in device_info: + identifiers = device_info['identifiers'] + if isinstance(identifiers, list) and identifiers: + node_id = identifiers[0] + + if node_id not in devices: + devices[node_id] = { + 'entities': [], + 'device_info': device_info, + 'node_id': node_id + } + + devices[node_id]['entities'].append(entity) + + return devices + + @staticmethod + def is_actor_entity(component: str) -> bool: + """Prüft ob Entity-Komponente ein Aktor ist""" + if(component == "climate"): + logger.info("Climate device gefunden"); + return component in MQTTDeviceConverter.ACTOR_COMPONENTS + + @staticmethod + def is_sensor_entity(component: str) -> bool: + """Prüft ob Entity-Komponente ein Sensor ist""" + return component in MQTTDeviceConverter.SENSOR_COMPONENTS + + @staticmethod + def convert_device_to_actors_and_sensors(device_id: str, device_data: Dict) -> tuple: + """ + Konvertiert ein Gerät mit allen seinen Entities in Actor/Sensor-Format + + Args: + device_id: Geräte-ID (node_id) + device_data: Device-Daten mit Entities-Liste + + Returns: + Tuple (actor_dict or None, sensor_dict or None) + """ + entities = device_data['entities'] + device_info = device_data.get('device_info') + # Gerätename vom ersten Entity oder aus device_info + device_name = device_info.get('name', device_id) + if not device_name or device_name == device_id: + # Fallback: Name vom ersten Entity + if entities: + device_name = entities[0]['config'].get('name', device_id) + + # Device URL + device_url = f"mqtt://{device_id}" + + # Entities nach Actor/Sensor trennen + actor_entities = [e for e in entities if MQTTDeviceConverter.is_actor_entity(e['component'])] + sensor_entities = [e for e in entities if MQTTDeviceConverter.is_sensor_entity(e['component'])] + + actor_result = None + sensor_result = None + + # Actor erstellen falls Actor-Entities vorhanden + if actor_entities: + commands = [] + states = [] + + for entity in actor_entities: + component = entity['component'] + object_id = entity.get('object_id', 'unknown') + config = entity['config'] + + # Command aus der Entity erstellen + command_entry = MQTTDeviceConverter._entity_to_command(component, object_id, config) + if command_entry: + commands.append(command_entry) + + # States aus der Entity extrahieren + entity_states = MQTTDeviceConverter._entity_to_states(component, object_id, config) + states.extend(entity_states) + + if commands: # Nur Actor erstellen wenn Commands vorhanden + actor_result = { + 'name': device_name, + 'type': f"mqtt_device", # Allgemeiner Typ für Multi-Entity-Geräte + 'url': device_url, + 'commands': commands, + 'states': states + } + + # Sensor erstellen falls Sensor-Entities vorhanden + if sensor_entities: + states = [] + + for entity in sensor_entities: + component = entity['component'] + object_id = entity.get('object_id', 'unknown') + config = entity['config'] + + # States aus der Entity extrahieren + entity_states = MQTTDeviceConverter._entity_to_states(component, object_id, config) + states.extend(entity_states) + + if states: # Nur Sensor erstellen wenn States vorhanden + sensor_result = { + 'name': device_name, + 'type': f"mqtt_device", + 'url': device_url, + 'states': states + } + + return actor_result, sensor_result + + @staticmethod + def _entity_to_command(component: str, object_id: str, config: Dict) -> Optional[Dict]: + """ + Konvertiert eine MQTT Entity in ein Command + + Args: + component: Entity-Typ (number, button, switch, etc.) + object_id: Object ID (z.B. set_max_ampere_limit) + config: Entity-Konfiguration + + Returns: + Command-Dictionary oder None + """ + # Command Topic - verschiedene mögliche Feldnamen + command_topic = config.get('command_topic') or config.get('cmd_t') or config.get('temperature_command_topic') + + if not command_topic: + return None + + # Command-Name aus object_id ableiten + command_name = object_id.replace('_', ' ').title().replace(' ', '') + # Oder aus dem Namen + entity_name = config.get('name', object_id) + + command_entry = { + 'command': command_name, + 'parameters': [] + } + + # Parameter basierend auf Component-Typ + if component == 'number': + # Number hat einen Wert-Parameter + param = { + 'name': 'value', + 'type': 'number', + 'url': command_topic + } + + # Min/Max aus Config + if 'min' in config: + param['min'] = config['min'] + if 'max' in config: + param['max'] = config['max'] + + # Unit hinzufügen - verschiedene mögliche Feldnamen + unit = ( + config.get('unit_of_measurement') or + config.get('unit_of_meas') or + config.get('unit') or + config.get('u') + ) + if unit: + param['unit'] = unit + + command_entry['parameters'].append(param) + + elif component == 'select': + # Select hat Optionen + param = { + 'name': 'option', + 'type': 'string', + 'url': command_topic + } + + options = config.get('options') or config.get('ops') + if options: + param['values'] = options + + command_entry['parameters'].append(param) + + elif component in ['switch', 'light']: + # Switch/Light haben on/off + param = { + 'name': 'state', + 'type': 'string', + 'url': command_topic, + 'values': [ + config.get('payload_on', config.get('pl_on', 'ON')), + config.get('payload_off', config.get('pl_off', 'OFF')) + ] + } + command_entry['parameters'].append(param) + + # Brightness für Light + brightness_cmd_topic = ( + config.get('brightness_command_topic') or + config.get('bri_cmd_t') + ) + if component == 'light' and brightness_cmd_topic: + command_entry['parameters'].append({ + 'name': 'brightness', + 'type': 'integer', + 'min': 0, + 'max': 255, + 'url': brightness_cmd_topic + }) + + elif component == 'cover': + # Cover hat position + set_pos_topic = ( + config.get('set_position_topic') or + config.get('pos_cmd_t') + ) + if set_pos_topic: + param = { + 'name': 'position', + 'type': 'integer', + 'min': 0, + 'max': 100, + 'url': set_pos_topic + } + command_entry['parameters'].append(param) + else: + # Nur open/close/stop + param = { + 'name': 'action', + 'type': 'string', + 'url': command_topic, + 'values': ['OPEN', 'CLOSE', 'STOP'] + } + command_entry['parameters'].append(param) + + elif component == 'button': + # Button hat normalerweise keinen Parameter, nur das Topic + param = { + 'name': 'press', + 'type': 'trigger', + 'url': command_topic + } + command_entry['parameters'].append(param) + + elif component == 'climate': + # Climate hat Temperatur-Setpoint + temp_cmd_topic = ( + config.get('temperature_command_topic') or + config.get('temp_cmd_t') + ) + if temp_cmd_topic: + param = { + 'name': 'temperature', + 'type': 'number', + 'url': temp_cmd_topic + } + + if 'min_temp' in config: + param['min'] = config['min_temp'] + if 'max_temp' in config: + param['max'] = config['max_temp'] + + command_entry['parameters'].append(param) + mode_cmd_topic = ( + config.get('mode_command_topic') or + config.get('mode_cmd_t') + ) + if mode_cmd_topic: + param = { + 'name': 'mode', + 'type': 'string', + 'url': temp_cmd_topic, + 'values': config.get('modes', []) + } + else: + # Generischer Command mit dem Topic + param = { + 'name': 'value', + 'type': 'string', + 'url': command_topic + } + command_entry['parameters'].append(param) + + return command_entry + + @staticmethod + def _entity_to_states(component: str, object_id: str, config: Dict) -> List[Dict]: + """ + Extrahiert States aus einer MQTT Entity + + Args: + component: Entity-Typ + object_id: Object ID + config: Entity-Konfiguration + + Returns: + Liste von State-Dictionaries + """ + states = [] + + # State Topic - verschiedene mögliche Feldnamen prüfen + state_topic = ( + config.get('state_topic') or + config.get('stat_t') or # Abkürzung + config.get('~') and config.get('stat_t') # Mit Base Topic + ) + + # Bei number/select: oft kein separates state_topic, dann command_topic verwenden + if not state_topic and component in ['number', 'select', 'button']: + # Bei diesen Komponenten kann der State über command_topic abgefragt werden + # oder es gibt ein explizites state_topic + state_topic = config.get('command_topic') or config.get('cmd_t') + + if state_topic: + state_entry = { + 'name': object_id, + 'type': 'string', + 'url': state_topic + } + + # Unit hinzufügen - verschiedene mögliche Feldnamen + unit = ( + config.get('unit_of_measurement') or + config.get('unit_of_meas') or + config.get('unit') or + config.get('u') # Weitere Abkürzung + ) + if unit: + state_entry['unit'] = unit + + # Device Class als zusätzliche Info + if 'device_class' in config: + state_entry['device_class'] = config['device_class'] + elif 'dev_cla' in config: + state_entry['device_class'] = config['dev_cla'] + + # Typ anpassen basierend auf Component + if component == 'number': + state_entry['type'] = 'number' + elif component == 'binary_sensor': + state_entry['type'] = 'boolean' + elif component == 'sensor': + # Bei Sensor den Typ aus value_template ableiten oder number annehmen + state_entry['type'] = 'number' # Default für Sensoren + + states.append(state_entry) + + # Zusätzliche State Topics (z.B. brightness bei Light) + if component == 'light': + brightness_topic = ( + config.get('brightness_state_topic') or + config.get('bri_stat_t') + ) + if brightness_topic: + states.append({ + 'name': f"{object_id}_brightness", + 'type': 'integer', + 'url': brightness_topic + }) + + if component == 'cover': + position_topic = ( + config.get('position_topic') or + config.get('pos_t') + ) + if position_topic: + states.append({ + 'name': f"{object_id}_position", + 'type': 'integer', + 'url': position_topic + }) + + if component == 'climate': + current_temp_topic = ( + config.get('current_temperature_topic') or + config.get('curr_temp_t') + ) + if current_temp_topic: + states.append({ + 'name': f"{object_id}_current_temp", + 'type': 'number', + 'unit': '°C', + 'url': current_temp_topic + }) + + return states \ No newline at end of file diff --git a/restricted/history/shelly_discovery.py b/restricted/history/shelly_discovery.py new file mode 100644 index 0000000..af3596e --- /dev/null +++ b/restricted/history/shelly_discovery.py @@ -0,0 +1,756 @@ +#!/usr/bin/env python3 +""" +Shelly Device Discovery Script +Findet alle Shelly-Geräte im lokalen Netzwerk und speichert Sensoren und Aktoren +in der Datenbank gemäß dem EnergyFlow Schema. +""" + +import json +import requests +import socket +import mysql.connector +from mysql.connector import Error +from typing import List, Dict, Optional +import argparse +import logging +from datetime import datetime + +# Logging konfigurieren +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(levelname)s - %(message)s' +) +logger = logging.getLogger(__name__) + + +class ShellyDiscovery: + """Klasse zum Entdecken von Shelly-Geräten im Netzwerk""" + + SHELLY_MDNS_SERVICE = "_http._tcp.local." + COMMON_PORTS = [80] + + def __init__(self, network_range: str = "192.168.1"): + self.network_range = network_range + self.devices = [] + + def scan_network(self, start_ip: int = 1, end_ip: int = 254, timeout: float = 0.5) -> List[str]: + """ + Scannt das Netzwerk nach aktiven Hosts + + Args: + start_ip: Start IP (letztes Oktett) + end_ip: End IP (letztes Oktett) + timeout: Timeout für Socket-Verbindung + + Returns: + Liste von erreichbaren IP-Adressen + """ + active_hosts = [] + logger.info(f"Scanne Netzwerk {self.network_range}.{start_ip}-{end_ip}...") + + for i in range(start_ip, end_ip + 1): + ip = f"{self.network_range}.{i}" + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(timeout) + + try: + result = sock.connect_ex((ip, 80)) + if result == 0: + active_hosts.append(ip) + logger.debug(f"Host gefunden: {ip}") + except: + pass + finally: + sock.close() + + logger.info(f"{len(active_hosts)} aktive Hosts gefunden") + return active_hosts + + def is_shelly_device(self, ip: str) -> Optional[Dict]: + """ + Prüft ob ein Host ein Shelly-Gerät ist + + Args: + ip: IP-Adresse des Hosts + + Returns: + Device Info Dict wenn Shelly, sonst None + """ + try: + # Versuche Gen2 API (neuere Shelly-Geräte) + response = requests.get( + f"http://{ip}/rpc/Shelly.GetDeviceInfo", + timeout=2 + ) + if response.status_code == 200: + data = response.json() + logger.info(f"Shelly Gen2 Gerät gefunden: {ip} - {data.get('name', 'Unknown')}") + return { + 'ip': ip, + 'generation': 2, + 'info': data + } + except: + pass + + try: + # Versuche Gen1 API (ältere Shelly-Geräte) + response = requests.get( + f"http://{ip}/shelly", + timeout=2 + ) + if response.status_code == 200: + data = response.json() + if 'type' in data and data['type'].startswith('SHELLY'): + logger.info(f"Shelly Gen1 Gerät gefunden: {ip} - {data.get('type', 'Unknown')}") + return { + 'ip': ip, + 'generation': 1, + 'info': data + } + except: + pass + + return None + + def get_device_status(self, device: Dict) -> Optional[Dict]: + """ + Holt den Status eines Shelly-Geräts + + Args: + device: Device Info Dictionary + + Returns: + Status Dictionary oder None + """ + ip = device['ip'] + + try: + if device['generation'] == 2: + # Gen2 Status + response = requests.get( + f"http://{ip}/rpc/Shelly.GetStatus", + timeout=2 + ) + if response.status_code == 200: + return response.json() + else: + # Gen1 Status + response = requests.get( + f"http://{ip}/status", + timeout=2 + ) + if response.status_code == 200: + return response.json() + except Exception as e: + logger.error(f"Fehler beim Abrufen des Status von {ip}: {e}") + + return None + + def discover_devices(self, start_ip: int = 1, end_ip: int = 254) -> List[Dict]: + """ + Entdeckt alle Shelly-Geräte im Netzwerk + + Returns: + Liste von Shelly-Geräten mit Status + """ + active_hosts = self.scan_network(start_ip, end_ip) + + for ip in active_hosts: + device = self.is_shelly_device(ip) + if device: + status = self.get_device_status(device) + device['status'] = status + self.devices.append(device) + + logger.info(f"Insgesamt {len(self.devices)} Shelly-Geräte entdeckt") + return self.devices + + +class ShellyDatabaseWriter: + """Klasse zum Schreiben der Shelly-Daten in die Datenbank""" + + def __init__(self, host: str, user: str, password: str, database: str): + self.host = host + self.user = user + self.password = password + self.database = database + self.connection = None + + def connect(self): + """Stellt Verbindung zur Datenbank her""" + try: + self.connection = mysql.connector.connect( + host=self.host, + user=self.user, + password=self.password, + database=self.database, + charset='utf8mb4', + collation='utf8mb4_bin' + ) + logger.info("Datenbankverbindung hergestellt") + except Error as e: + logger.error(f"Fehler bei Datenbankverbindung: {e}") + raise + + def disconnect(self): + """Schließt Datenbankverbindung""" + if self.connection and self.connection.is_connected(): + self.connection.close() + logger.info("Datenbankverbindung geschlossen") + + def parse_gen2_device(self, device: Dict) -> tuple: + """ + Parst Gen2 Shelly-Gerät und extrahiert Aktoren/Sensoren + + Returns: + (actors, sensors) Tuple mit Listen + """ + actors = [] + sensors = [] + + info = device.get('info', {}) + status = device.get('status', {}) + ip = device['ip'] + + device_name = info.get('name', f"Shelly_{info.get('id', ip)}") + device_model = info.get('model', 'Unknown') + + # Switches als Aktoren + if 'switch:0' in status or 'switch' in status: + switch_count = 0 + for key in status.keys(): + if key.startswith('switch:'): + switch_count += 1 + + for i in range(switch_count): + switch_data = status.get(f'switch:{i}', {}) + actors.append({ + 'type': f'ShellySwitch_{device_model}', + 'name': f"{device_name}_Switch_{i}", + 'url': f"http://{ip}/rpc/Switch.Set?id={i}", + 'parameters': json.dumps({ + 'device_id': info.get('id'), + 'switch_id': i, + 'model': device_model, + 'generation': 2 + }), + 'commands': [ + {'command_name': 'turn_on', 'params': []}, + {'command_name': 'turn_off', 'params': []}, + {'command_name': 'toggle', 'params': []} + ], + 'states': [ + { + 'state_name': 'output', + 'current_value': str(switch_data.get('output', False)), + 'unit': None + } + ] + }) + + # Cover/Roller als Aktoren + if 'cover:0' in status: + cover_count = 0 + for key in status.keys(): + if key.startswith('cover:'): + cover_count += 1 + + for i in range(cover_count): + cover_data = status.get(f'cover:{i}', {}) + actors.append({ + 'type': f'ShellyCover_{device_model}', + 'name': f"{device_name}_Cover_{i}", + 'url': f"http://{ip}/rpc/Cover.GoToPosition?id={i}", + 'parameters': json.dumps({ + 'device_id': info.get('id'), + 'cover_id': i, + 'model': device_model, + 'generation': 2 + }), + 'commands': [ + {'command_name': 'open', 'params': []}, + {'command_name': 'close', 'params': []}, + {'command_name': 'stop', 'params': []}, + {'command_name': 'set_position', 'params': [ + { + 'parameter_name': 'position', + 'parameter_type': 'integer', + 'min_value': 0, + 'max_value': 100 + } + ]} + ], + 'states': [ + { + 'state_name': 'current_pos', + 'current_value': str(cover_data.get('current_pos', 0)), + 'unit': '%' + }, + { + 'state_name': 'state', + 'current_value': cover_data.get('state', 'unknown'), + 'unit': None + } + ] + }) + + # Temperatur-Sensoren + for key in status.keys(): + if key.startswith('temperature:'): + temp_id = key.split(':')[1] + temp_data = status[key] + sensors.append({ + 'type': 'ShellyTemperatureSensor', + 'name': f"{device_name}_Temperature_{temp_id}", + 'url': f"http://{ip}/rpc/Temperature.GetStatus?id={temp_id}", + 'parameters': json.dumps({ + 'device_id': info.get('id'), + 'sensor_id': temp_id, + 'model': device_model + }), + 'states': [ + { + 'state_name': 'temperature', + 'current_value': str(temp_data.get('tC', 0)), + 'unit': '°C' + } + ] + }) + + # Humidity-Sensoren + for key in status.keys(): + if key.startswith('humidity:'): + hum_id = key.split(':')[1] + hum_data = status[key] + sensors.append({ + 'type': 'ShellyHumiditySensor', + 'name': f"{device_name}_Humidity_{hum_id}", + 'url': f"http://{ip}/rpc/Humidity.GetStatus?id={hum_id}", + 'parameters': json.dumps({ + 'device_id': info.get('id'), + 'sensor_id': hum_id, + 'model': device_model + }), + 'states': [ + { + 'state_name': 'humidity', + 'current_value': str(hum_data.get('rh', 0)), + 'unit': '%' + } + ] + }) + + # Energie-Sensoren (Power Meter) + for i in range(10): # Max 10 switches/covers prüfen + switch_key = f'switch:{i}' + if switch_key in status: + switch_data = status[switch_key] + if 'apower' in switch_data: # Aktuelle Leistung + sensors.append({ + 'type': 'ShellyPowerMeter', + 'name': f"{device_name}_Power_{i}", + 'url': f"http://{ip}/rpc/Switch.GetStatus?id={i}", + 'parameters': json.dumps({ + 'device_id': info.get('id'), + 'switch_id': i, + 'model': device_model + }), + 'states': [ + { + 'state_name': 'active_power', + 'current_value': str(switch_data.get('apower', 0)), + 'unit': 'W' + }, + { + 'state_name': 'voltage', + 'current_value': str(switch_data.get('voltage', 0)), + 'unit': 'V' + }, + { + 'state_name': 'current', + 'current_value': str(switch_data.get('current', 0)), + 'unit': 'A' + } + ] + }) + + return actors, sensors + + def parse_gen1_device(self, device: Dict) -> tuple: + """ + Parst Gen1 Shelly-Gerät und extrahiert Aktoren/Sensoren + + Returns: + (actors, sensors) Tuple mit Listen + """ + actors = [] + sensors = [] + + info = device.get('info', {}) + status = device.get('status', {}) + ip = device['ip'] + + device_type = info.get('type', 'Unknown') + device_name = info.get('name', f"Shelly_{device_type}_{ip}") + + # Relays als Aktoren + if 'relays' in status: + for i, relay in enumerate(status['relays']): + actors.append({ + 'type': f'ShellyRelay_{device_type}', + 'name': f"{device_name}_Relay_{i}", + 'url': f"http://{ip}/relay/{i}", + 'parameters': json.dumps({ + 'device_type': device_type, + 'relay_id': i, + 'generation': 1 + }), + 'commands': [ + {'command_name': 'turn_on', 'params': []}, + {'command_name': 'turn_off', 'params': []}, + {'command_name': 'toggle', 'params': []} + ], + 'states': [ + { + 'state_name': 'ison', + 'current_value': str(relay.get('ison', False)), + 'unit': None + } + ] + }) + + # Rollers als Aktoren + if 'rollers' in status: + for i, roller in enumerate(status['rollers']): + actors.append({ + 'type': f'ShellyRoller_{device_type}', + 'name': f"{device_name}_Roller_{i}", + 'url': f"http://{ip}/roller/{i}", + 'parameters': json.dumps({ + 'device_type': device_type, + 'roller_id': i, + 'generation': 1 + }), + 'commands': [ + {'command_name': 'open', 'params': []}, + {'command_name': 'close', 'params': []}, + {'command_name': 'stop', 'params': []}, + {'command_name': 'go_to_position', 'params': [ + { + 'parameter_name': 'position', + 'parameter_type': 'integer', + 'min_value': 0, + 'max_value': 100 + } + ]} + ], + 'states': [ + { + 'state_name': 'current_pos', + 'current_value': str(roller.get('current_pos', 0)), + 'unit': '%' + }, + { + 'state_name': 'state', + 'current_value': roller.get('state', 'stop'), + 'unit': None + } + ] + }) + + # Temperatur-Sensoren + if 'tmp' in status: + temp_data = status['tmp'] + if 'tC' in temp_data: + sensors.append({ + 'type': 'ShellyTemperatureSensor', + 'name': f"{device_name}_Temperature", + 'url': f"http://{ip}/status", + 'parameters': json.dumps({ + 'device_type': device_type, + 'generation': 1 + }), + 'states': [ + { + 'state_name': 'temperature', + 'current_value': str(temp_data.get('tC', 0)), + 'unit': '°C' + } + ] + }) + + # Energie-Sensoren (Meters) + if 'meters' in status: + for i, meter in enumerate(status['meters']): + sensors.append({ + 'type': 'ShellyPowerMeter', + 'name': f"{device_name}_Power_{i}", + 'url': f"http://{ip}/status", + 'parameters': json.dumps({ + 'device_type': device_type, + 'meter_id': i, + 'generation': 1 + }), + 'states': [ + { + 'state_name': 'power', + 'current_value': str(meter.get('power', 0)), + 'unit': 'W' + }, + { + 'state_name': 'total', + 'current_value': str(meter.get('total', 0)), + 'unit': 'Wh' + } + ] + }) + + return actors, sensors + + def insert_actor(self, actor: Dict) -> Optional[int]: + """ + Fügt einen Aktor in die Datenbank ein + + Returns: + Actor ID oder None bei Fehler + """ + try: + cursor = self.connection.cursor() + + # Prüfe ob Aktor bereits existiert + cursor.execute( + "SELECT id FROM actors WHERE url = %s", + (actor['url'],) + ) + result = cursor.fetchone() + + if result: + actor_id = result[0] + # Update bestehender Aktor + cursor.execute( + """UPDATE actors + SET type = %s, name = %s, parameters = %s + WHERE id = %s""", + (actor['type'], actor['name'], actor['parameters'], actor_id) + ) + logger.info(f"Aktor aktualisiert: {actor['name']}") + else: + # Neuer Aktor + cursor.execute( + """INSERT INTO actors (type, name, parameters, url) + VALUES (%s, %s, %s, %s)""", + (actor['type'], actor['name'], actor['parameters'], actor['url']) + ) + actor_id = cursor.lastrowid + logger.info(f"Neuer Aktor eingefügt: {actor['name']}") + + # Commands einfügen + for command in actor.get('commands', []): + cursor.execute( + """INSERT INTO actor_commands (actor_id, command_name) + VALUES (%s, %s) + ON DUPLICATE KEY UPDATE command_name = command_name""", + (actor_id, command['command_name']) + ) + command_id = cursor.lastrowid + + # Command Parameters einfügen + for param in command.get('params', []): + cursor.execute( + """INSERT INTO command_parameters + (command_id, parameter_name, parameter_type, min_value, max_value) + VALUES (%s, %s, %s, %s, %s)""", + (command_id, param['parameter_name'], param['parameter_type'], + param.get('min_value'), param.get('max_value')) + ) + + # States einfügen + for state in actor.get('states', []): + cursor.execute( + """INSERT INTO actor_states + (actor_id, state_name, current_value, unit) + VALUES (%s, %s, %s, %s) + ON DUPLICATE KEY UPDATE + current_value = VALUES(current_value), + last_updated = CURRENT_TIMESTAMP""", + (actor_id, state['state_name'], state['current_value'], state['unit']) + ) + + self.connection.commit() + cursor.close() + return actor_id + + except Error as e: + logger.error(f"Fehler beim Einfügen des Aktors: {e}") + self.connection.rollback() + return None + + def insert_sensor(self, sensor: Dict) -> Optional[int]: + """ + Fügt einen Sensor in die Datenbank ein + + Returns: + Sensor ID oder None bei Fehler + """ + try: + cursor = self.connection.cursor() + + # Prüfe ob Sensor bereits existiert + cursor.execute( + "SELECT id FROM sensors WHERE url = %s", + (sensor['url'],) + ) + result = cursor.fetchone() + + if result: + sensor_id = result[0] + # Update bestehender Sensor + cursor.execute( + """UPDATE sensors + SET type = %s, name = %s, parameters = %s + WHERE id = %s""", + (sensor['type'], sensor['name'], sensor['parameters'], sensor_id) + ) + logger.info(f"Sensor aktualisiert: {sensor['name']}") + else: + # Neuer Sensor + cursor.execute( + """INSERT INTO sensors (type, name, parameters, url) + VALUES (%s, %s, %s, %s)""", + (sensor['type'], sensor['name'], sensor['parameters'], sensor['url']) + ) + sensor_id = cursor.lastrowid + logger.info(f"Neuer Sensor eingefügt: {sensor['name']}") + + # States einfügen + for state in sensor.get('states', []): + cursor.execute( + """INSERT INTO sensor_states + (sensor_id, state_name, current_value, unit) + VALUES (%s, %s, %s, %s) + ON DUPLICATE KEY UPDATE + current_value = VALUES(current_value), + last_updated = CURRENT_TIMESTAMP""", + (sensor_id, state['state_name'], state['current_value'], state['unit']) + ) + + self.connection.commit() + cursor.close() + return sensor_id + + except Error as e: + logger.error(f"Fehler beim Einfügen des Sensors: {e}") + self.connection.rollback() + return None + + def process_devices(self, devices: List[Dict]): + """ + Verarbeitet alle entdeckten Geräte und schreibt sie in die DB + """ + total_actors = 0 + total_sensors = 0 + + for device in devices: + logger.info(f"Verarbeite Gerät: {device['ip']}") + + if device['generation'] == 2: + actors, sensors = self.parse_gen2_device(device) + else: + actors, sensors = self.parse_gen1_device(device) + + # Aktoren einfügen + for actor in actors: + if self.insert_actor(actor): + total_actors += 1 + + # Sensoren einfügen + for sensor in sensors: + if self.insert_sensor(sensor): + total_sensors += 1 + + logger.info(f"Verarbeitung abgeschlossen: {total_actors} Aktoren, {total_sensors} Sensoren") + + +def main(): + """Hauptfunktion""" + parser = argparse.ArgumentParser( + description='Findet Shelly-Geräte im Netzwerk und schreibt sie in die Datenbank' + ) + parser.add_argument( + '--network', + default='192.168.1', + help='Netzwerk-Präfix (Standard: 192.168.1)' + ) + parser.add_argument( + '--start-ip', + type=int, + default=1, + help='Start IP (letztes Oktett, Standard: 1)' + ) + parser.add_argument( + '--end-ip', + type=int, + default=254, + help='End IP (letztes Oktett, Standard: 254)' + ) + parser.add_argument( + '--db-host', + default='localhost', + help='Datenbank Host (Standard: localhost)' + ) + parser.add_argument( + '--db-user', + required=True, + help='Datenbank Benutzer' + ) + parser.add_argument( + '--db-password', + required=True, + help='Datenbank Passwort' + ) + parser.add_argument( + '--db-name', + default='EnergyFlow', + help='Datenbank Name (Standard: EnergyFlow)' + ) + parser.add_argument( + '--debug', + action='store_true', + help='Debug-Modus aktivieren' + ) + + args = parser.parse_args() + + if args.debug: + logger.setLevel(logging.DEBUG) + + # Discovery + logger.info("Starte Shelly Device Discovery...") + discovery = ShellyDiscovery(network_range=args.network) + devices = discovery.discover_devices(start_ip=args.start_ip, end_ip=args.end_ip) + + if not devices: + logger.warning("Keine Shelly-Geräte gefunden!") + return + + # Datenbank-Schreibvorgang + logger.info("Schreibe Geräte in Datenbank...") + db_writer = ShellyDatabaseWriter( + host=args.db_host, + user=args.db_user, + password=args.db_password, + database=args.db_name + ) + + try: + db_writer.connect() + db_writer.process_devices(devices) + finally: + db_writer.disconnect() + + logger.info("Fertig!") + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/restricted/home.php b/restricted/home.php new file mode 100644 index 0000000..8180a8a --- /dev/null +++ b/restricted/home.php @@ -0,0 +1,347 @@ + +
+ +
+ +
+ +
+
+

Home

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

Home

+
+ +
+
+
+
+ + + + + + + + + + + + + + + + > + + + + + + > + + + + + + + > + + + + + + + + + + OG + + + + + EG + + + + + UG + + > + + + + + + ---- hPa + --,- °C + -- %rF + + + + + + + + ---- hPa + --,- °C + -- %rF + + + + + + + + ---- hPa + --,- °C + -- %rF + + + + + + + + ---- hPa + --,- °C + -- %rF + + + + + + + + ---- hPa + --,- °C + -- %rF + + + + > + + + + + + ---- hPa + --,- °C + -- %rF + + + + + + + + ---- hPa + --,- °C + -- %rF + + + + + + + + ---- hPa + --,- °C + -- %rF + + + + + + + + ---- hPa + --,- °C + -- %rF + + + + + + + + ---- hPa + --,- °C + -- %rF + + + + > + + + + + + ---- hPa + --,- °C + -- %rF + + + + + + + + ---- hPa + --,- °C + -- %rF + + + + + + + + ---- hPa + --,- °C + -- %rF + + + + + +
+
+
+ +
+
+
+
+

Automatismen

+
+ +
+ +
+
+ +
+
" id="actions-OG" role="tabpanel" aria-labelledby="actions-OG-tab"> + + + + + + + + + + + + +
NameAktivAuslöserZeitfensterAktionWochentage
Kinder zuUhrzeit: 16:30n/aRollo "Magdalena Tür" schließen
Rollo "Magdalena Fenster" schließen
+
+
+
+
+
+
+
+
+
+
+
+ + + +
+
+ +
+
" id="actions-EG" role="tabpanel" aria-labelledby="actions-EG-tab"> + + Mauris tincidunt mi at erat gravida, eget tristique urna bibendum. Mauris pharetra purus ut ligula tempor, et vulputate metus facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas sollicitudin, nisi a luctus interdum, nisl ligula placerat mi, quis posuere purus ligula eu lectus. Donec nunc tellus, elementum sit amet ultricies at, posuere nec nunc. Nunc euismod pellentesque diam. +
+
" id="actions-UG" role="tabpanel" aria-labelledby="actions-UG-tab"> + Morbi turpis dolor, vulputate vitae felis non, tincidunt congue mauris. Phasellus volutpat augue id mi placerat mollis. Vivamus faucibus eu massa eget condimentum. Fusce nec hendrerit sem, ac tristique nulla. Integer vestibulum orci odio. Cras nec augue ipsum. Suspendisse ut velit condimentum, mattis urna a, malesuada nunc. Curabitur eleifend facilisis velit finibus tristique. Nam vulputate, eros non luctus efficitur, ipsum odio volutpat massa, sit amet sollicitudin est libero sed ipsum. Nulla lacinia, ex vitae gravida fermentum, lectus ipsum gravida arcu, id fermentum metus arcu vel metus. Curabitur eget sem eu risus tincidunt eleifend ac ornare magna. +
+
+
+
+
+ +
+ + +
+ +
+ +
+ + + document.addEventListener('readystatechange', function () { + if (event.target.readyState === 'complete') {"; + switch($_GET["floor"]){ + case "EG": + echo "switchFloor('EG');"; + break; + case "OG": + break; + case "UG": + echo "switchFloor('UG');"; + break; + } + echo "} + });"; +} +?> \ No newline at end of file diff --git a/restricted/mysql.php b/restricted/mysql.php new file mode 100644 index 0000000..14bba87 --- /dev/null +++ b/restricted/mysql.php @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/restricted/solar.html b/restricted/solar.html new file mode 100644 index 0000000..a1e3774 --- /dev/null +++ b/restricted/solar.html @@ -0,0 +1,250 @@ + + + +
+ +
+ +
+ +
+
+

Solar

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

Realtime

+
+ +
+
+
+ %%INSERTSVG%% +
+
+ +
+ +
+
+
+

Statistik dieses Jahr

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

Forecast

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

Forecast

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

Power consumption

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

Power production

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

Temp.

+
+
+

--

°C +
+
+
+ +
+
+
+

Feuchte

+
+
+

--

%rF +
+
+
+ +
+
+
+

Wind

+
+
+
+

--

km/h +
+
+
+ +
+
+
+

Böen

+
+
+
+

--

km/h +
+
+
+ +
+
+
+

Druck

+
+
+

--

hPa +
+
+
+ +
+ +
+ +
+ +
+ \ No newline at end of file diff --git a/restricted/tahoma_EG.php b/restricted/tahoma_EG.php new file mode 100644 index 0000000..6116121 --- /dev/null +++ b/restricted/tahoma_EG.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/restricted/tahoma_devices.json b/restricted/tahoma_devices.json new file mode 100644 index 0000000..cfb6698 --- /dev/null +++ b/restricted/tahoma_devices.json @@ -0,0 +1 @@ +[{"name":"K\u00fcche Fenster","id":"io:\/\/2040-3358-7811\/332906"},{"name":"K\u00fcche T\u00fcr","id":"io:\/\/2040-3358-7811\/332898"},{"name":"Wozi Fensterfront","id":"io:\/\/2040-3358-7811\/332812"},{"name":"Wozi Terrassent\u00fcr","id":"io:\/\/2040-3358-7811\/332649"},{"name":"Bad Rechts","id":"io:\/\/2040-3358-7811\/330508"},{"name":"Bad Links","id":"io:\/\/2040-3358-7811\/330634"},{"name":"Magdalena Fenster","id":"io:\/\/2040-3358-7811\/332695"},{"name":"Magdalena T\u00fcr","id":"io:\/\/2040-3358-7811\/332291"},{"name":"Schlafzimmer T\u00fcr","id":"io:\/\/2040-3358-7811\/330504"},{"name":"Wozi Schiebet\u00fcr","id":"io:\/\/2040-3358-7811\/332806"},{"name":"Florian T\u00fcr","id":"io:\/\/2040-3358-7811\/3859164"}] \ No newline at end of file diff --git a/restricted/tahoma_devices_classic.json b/restricted/tahoma_devices_classic.json new file mode 100644 index 0000000..1107074 --- /dev/null +++ b/restricted/tahoma_devices_classic.json @@ -0,0 +1 @@ +[{"name":"K\u00fcche T\u00fcre","id":"io:\/\/1215-2900-8489\/4860861"},{"name":"u_Wozi Schiebet\u00fcr","id":"io:\/\/1215-2900-8489\/332806"},{"name":"K\u00fcche Fenster gro\u00df","id":"io:\/\/1215-2900-8489\/12250152"},{"name":"u_K\u00fcche Fenster","id":"io:\/\/1215-2900-8489\/332898"},{"name":"u_K\u00fcche T\u00fcr","id":"io:\/\/1215-2900-8489\/332906"},{"name":"K\u00fcchen T\u00fcre","id":"io:\/\/1215-2900-8489\/10236312"},{"name":"Wohnzimmer Links","id":"io:\/\/1215-2900-8489\/10656452"},{"name":"u_Florian T\u00fcr","id":"io:\/\/1215-2900-8489\/332662"},{"name":"u_Magdalena T\u00fcr","id":"io:\/\/1215-2900-8489\/332291"},{"name":"u_Bad Rechts","id":"io:\/\/1215-2900-8489\/330508"},{"name":"TerrasseLinks","id":"io:\/\/1215-2900-8489\/5930007"},{"name":"Kinderzimmer","id":"io:\/\/1215-2900-8489\/14452811"},{"name":"K\u00fcche Fenster","id":"io:\/\/1215-2900-8489\/817067"},{"name":"Bad T\u00fcre","id":"io:\/\/1215-2900-8489\/16024062"},{"name":"Kinderzimmer","id":"io:\/\/1215-2900-8489\/15667355"},{"name":"TerrasseRechts","id":"io:\/\/1215-2900-8489\/10632998"},{"name":"K\u00fcchenfenster gr","id":"io:\/\/1215-2900-8489\/3245041"},{"name":"Leinwand","id":"io:\/\/1215-2900-8489\/4290619"},{"name":"u_Schlafzimmer T\u00fcr","id":"io:\/\/1215-2900-8489\/330504"},{"name":"Wohnzimmer Rechts","id":"io:\/\/1215-2900-8489\/6652408"},{"name":"u_Wozi Fensterfront","id":"io:\/\/1215-2900-8489\/332812"},{"name":"u_Magdalena Fenster","id":"io:\/\/1215-2900-8489\/332695"},{"name":"Schalfzimmer","id":"io:\/\/1215-2900-8489\/331541"},{"name":"u_Wozi Terrassent\u00fcr","id":"io:\/\/1215-2900-8489\/332649"},{"name":"Bad links","id":"io:\/\/1215-2900-8489\/332783"},{"name":"B\u00fcro","id":"io:\/\/1215-2900-8489\/332850"},{"name":"Wohnzimmer T\u00fcre","id":"io:\/\/1215-2900-8489\/14531428"},{"name":"u_Bad Links","id":"io:\/\/1215-2900-8489\/330634"}] \ No newline at end of file diff --git a/tahoma_to_mysql.py b/tahoma_to_mysql.py deleted file mode 100644 index ceea07d..0000000 --- a/tahoma_to_mysql.py +++ /dev/null @@ -1,598 +0,0 @@ -#!/usr/bin/env python3 -""" -Somfy Tahoma Local API to MySQL Database Script -Liest alle Aktoren und Sensoren aus der Tahoma Box und speichert sie in MySQL -""" - -import requests -import pymysql -from pymysql import Error -import json -import logging -from typing import List, Dict, Optional -import urllib3 - -# SSL-Warnungen deaktivieren (Tahoma verwendet selbst-signierte Zertifikate) -urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) - -# Logging konfigurieren -logging.basicConfig( - level=logging.INFO, - format='%(asctime)s - %(levelname)s - %(message)s' -) -logger = logging.getLogger(__name__) - - -class TahomaAPI: - """Klasse für die Kommunikation mit der Tahoma Local API""" - - def __init__(self, gateway_ip: str, api_token: str): - """ - Initialisiert die Tahoma API Verbindung - - Args: - gateway_ip: IP-Adresse der Tahoma Box - api_token: API Token (Bearer Token) - """ - self.base_url = f"https://{gateway_ip}:8443/enduser-mobile-web/1/enduserAPI" - self.headers = { - "Authorization": f"Bearer {api_token}", - "Content-Type": "application/json" - } - - def get_setup(self) -> Optional[Dict]: - """ - Ruft die komplette Setup-Konfiguration ab - - Returns: - Dictionary mit allen Geräten oder None bei Fehler - """ - try: - url = f"{self.base_url}/setup" - response = requests.get(url, headers=self.headers, verify=False, timeout=10) - response.raise_for_status() - return response.json() - except requests.exceptions.RequestException as e: - logger.error(f"Fehler beim Abrufen der Setup-Daten: {e}") - return None - - def get_devices(self) -> List[Dict]: - """ - Extrahiert alle Geräte aus dem Setup - - Returns: - Liste aller Geräte - """ - setup = self.get_setup() - if not setup: - return [] - - devices = setup.get('devices', []) - logger.info(f"{len(devices)} Geräte gefunden") - return devices - - def get_device_definition(self, device_url: str) -> Optional[Dict]: - """ - Ruft die detaillierte Definition eines Geräts ab - - Args: - device_url: URL des Geräts - - Returns: - Dictionary mit Gerätedefinition oder None bei Fehler - """ - try: - # Device URL encodieren - from urllib.parse import quote - encoded_url = quote(device_url, safe='') - url = f"{self.base_url}/setup/devices/{encoded_url}" - response = requests.get(url, headers=self.headers, verify=False, timeout=10) - response.raise_for_status() - return response.json() - except requests.exceptions.RequestException as e: - logger.debug(f"Fehler beim Abrufen der Device-Definition für {device_url}: {e}") - return None - - def get_device_states(self, device_url: str) -> List[Dict]: - """ - Ruft die aktuellen States eines Geräts ab - - Args: - device_url: URL des Geräts - - Returns: - Liste der States - """ - try: - from urllib.parse import quote - encoded_url = quote(device_url, safe='') - url = f"{self.base_url}/setup/devices/{encoded_url}/states" - response = requests.get(url, headers=self.headers, verify=False, timeout=10) - response.raise_for_status() - return response.json() - except requests.exceptions.RequestException as e: - logger.debug(f"Fehler beim Abrufen der Device-States für {device_url}: {e}") - return [] - - -class DatabaseManager: - """Klasse für die MySQL-Datenbankoperationen""" - - def __init__(self, host: str, database: str, user: str, password: str, port: int = 3306): - """ - Initialisiert die Datenbankverbindung - - Args: - host: MySQL Host - database: Datenbankname - user: Benutzername - password: Passwort - port: Port (Standard: 3306) - """ - self.host = host - self.database = database - self.user = user - self.password = password - self.port = port - self.connection = None - - def connect(self) -> bool: - """ - Stellt Verbindung zur Datenbank her - - Returns: - True bei Erfolg, False bei Fehler - """ - try: - self.connection = pymysql.connect( - host=self.host, - database=self.database, - user=self.user, - password=self.password, - port=self.port, - charset='utf8mb4' - ) - logger.info("Erfolgreich mit MariaDB/MySQL-Datenbank verbunden") - return True - except Error as e: - logger.error(f"Fehler bei der Datenbankverbindung: {e}") - return False - - def disconnect(self): - """Schließt die Datenbankverbindung""" - if self.connection: - self.connection.close() - logger.info("Datenbankverbindung geschlossen") - - def clear_tables(self): - """Löscht alle Einträge aus allen Tabellen""" - try: - cursor = self.connection.cursor() - # Foreign Key Constraints temporär deaktivieren - cursor.execute("SET FOREIGN_KEY_CHECKS=0") - - # Alle Tabellen leeren - cursor.execute("DELETE FROM command_parameters") - cursor.execute("DELETE FROM actor_commands") - cursor.execute("DELETE FROM actor_states") - cursor.execute("DELETE FROM actors") - - cursor.execute("DELETE FROM sensor_states") - cursor.execute("DELETE FROM sensors") - - # Foreign Key Constraints wieder aktivieren - cursor.execute("SET FOREIGN_KEY_CHECKS=1") - - self.connection.commit() - logger.info("Alle Tabellen geleert") - cursor.close() - except Error as e: - logger.error(f"Fehler beim Leeren der Tabellen: {e}") - self.connection.rollback() - - def insert_actor(self, device_type: str, name: str, url: str, - commands: list, states: list) -> bool: - """ - Fügt einen Aktor mit Commands und States in die Datenbank ein - - Args: - device_type: Gerätetyp (z.B. RollerShutter) - name: Gerätename - url: URL zum Gerät - commands: Liste der Commands mit Parametern - states: Liste der States - - Returns: - True bei Erfolg, False bei Fehler - """ - try: - cursor = self.connection.cursor() - - # 1. Aktor einfügen - query = """ - INSERT INTO actors (type, name, parameters, url) - VALUES (%s, %s, NULL, %s) - """ - cursor.execute(query, (device_type, name, url)) - actor_id = cursor.lastrowid - - # 2. Commands einfügen - for cmd in commands: - command_name = cmd.get('command', '') - - # Command einfügen - cmd_query = """ - INSERT INTO actor_commands (actor_id, command_name) - VALUES (%s, %s) - """ - cursor.execute(cmd_query, (actor_id, command_name)) - command_id = cursor.lastrowid - - # Parameter des Commands einfügen - cmd_params = cmd.get('parameters', []) - for param in cmd_params: - param_query = """ - INSERT INTO command_parameters - (command_id, parameter_name, parameter_type, min_value, max_value, possible_values) - VALUES (%s, %s, %s, %s, %s, %s) - """ - param_name = param.get('name', '') - param_type = param.get('type', '') - min_val = param.get('min') - max_val = param.get('max') - possible_vals = json.dumps(param.get('values')) if 'values' in param else None - - cursor.execute(param_query, - (command_id, param_name, param_type, min_val, max_val, possible_vals)) - - # 3. States einfügen - for state in states: - state_query = """ - INSERT INTO actor_states - (actor_id, state_name, state_type, current_value) - VALUES (%s, %s, %s, %s) - """ - state_name = state.get('name', '') - state_type = state.get('type', 0) - current_value = str(state.get('current_value', '')) if 'current_value' in state else None - - cursor.execute(state_query, (actor_id, state_name, state_type, current_value)) - - self.connection.commit() - cursor.close() - return True - - except Error as e: - logger.error(f"Fehler beim Einfügen des Aktors {name}: {e}") - self.connection.rollback() - return False - - def insert_sensor(self, device_type: str, name: str, url: str, - states: list) -> bool: - """ - Fügt einen Sensor mit States in die Datenbank ein - - Args: - device_type: Gerätetyp (z.B. TemperatureSensor) - name: Gerätename - url: URL zum Gerät - states: Liste der States - - Returns: - True bei Erfolg, False bei Fehler - """ - try: - cursor = self.connection.cursor() - - # 1. Sensor einfügen - query = """ - INSERT INTO sensors (type, name, parameters, url) - VALUES (%s, %s, NULL, %s) - """ - cursor.execute(query, (device_type, name, url)) - sensor_id = cursor.lastrowid - - # 2. States einfügen - for state in states: - state_query = """ - INSERT INTO sensor_states - (sensor_id, state_name, state_type, current_value) - VALUES (%s, %s, %s, %s) - """ - state_name = state.get('name', '') - state_type = state.get('type', 0) - current_value = str(state.get('current_value', '')) if 'current_value' in state else None - - cursor.execute(state_query, (sensor_id, state_name, state_type, current_value)) - - self.connection.commit() - cursor.close() - return True - - except Error as e: - logger.error(f"Fehler beim Einfügen des Sensors {name}: {e}") - self.connection.rollback() - return False - - -class DeviceClassifier: - """Klassifiziert Geräte als Aktoren oder Sensoren""" - - # Bekannte Aktor-Typen (können erweitert werden) - ACTOR_TYPES = { - 'RollerShutter', 'ExteriorScreen', 'Awning', 'Blind', - 'GarageDoor', 'Window', 'Light', 'OnOff', 'DimmableLight', - 'HeatingSystem', 'Valve', 'Switch', 'Door', 'Curtain', - 'VenetianBlind', 'PergolaScreen' - } - - # Bekannte Sensor-Typen (können erweitert werden) - SENSOR_TYPES = { - 'TemperatureSensor', 'LightSensor', 'HumiditySensor', - 'ContactSensor', 'OccupancySensor', 'SmokeSensor', - 'WaterDetectionSensor', 'WindowHandle', 'MotionSensor', - 'SunSensor', 'WindSensor', 'RainSensor', 'ConsumptionSensor' - } - - @classmethod - def is_actor(cls, device: Dict) -> bool: - """ - Prüft, ob ein Gerät ein Aktor ist - - Args: - device: Geräte-Dictionary - - Returns: - True wenn Aktor, False sonst - """ - device_type = device.get('uiClass', '') - - # Prüfung nach bekannten Typen - if device_type in cls.ACTOR_TYPES: - return True - - # Prüfung nach Commandos (Aktoren haben typischerweise Commands) - commands = device.get('definition', {}).get('commands', []) - if commands and len(commands) > 0: - # Wenn Commands wie open, close, on, off existieren - command_names = [cmd.get('commandName', '') for cmd in commands] - actor_commands = {'open', 'close', 'on', 'off', 'up', 'down', 'setPosition', 'dim'} - if any(cmd in actor_commands for cmd in command_names): - return True - - return False - - @classmethod - def is_sensor(cls, device: Dict) -> bool: - """ - Prüft, ob ein Gerät ein Sensor ist - - Args: - device: Geräte-Dictionary - - Returns: - True wenn Sensor, False sonst - """ - device_type = device.get('uiClass', '') - - # Prüfung nach bekannten Typen - if device_type in cls.SENSOR_TYPES: - return True - - # Prüfung nach States (Sensoren haben typischerweise nur States, keine Commands) - states = device.get('states', []) - commands = device.get('definition', {}).get('commands', []) - - # Sensor hat States aber keine oder nur wenige Commands - if states and len(states) > 0 and len(commands) <= 1: - return True - - return False - - -def extract_actor_data(device: Dict) -> tuple: - """ - Extrahiert Commands und States aus einem Aktor - - Args: - device: Geräte-Dictionary von der Tahoma API - - Returns: - Tuple (commands_list, states_list) - """ - commands = [] - states = [] - - # Commands aus der Definition extrahieren - cmd_definitions = device.get('definition', {}).get('commands', []) - - for cmd in cmd_definitions: - command_name = cmd.get('commandName', '') - - command_entry = { - 'command': command_name, - 'parameters': [] - } - - # Alle Parameter des Commands durchgehen - cmd_params = cmd.get('parameters', []) - for cmd_param in cmd_params: - param_detail = { - 'name': cmd_param.get('name', 'value') - } - - # Datentyp - param_type = cmd_param.get('type') - if param_type: - param_detail['type'] = param_type - - # Min/Max Werte für numerische Parameter - if 'min' in cmd_param: - param_detail['min'] = cmd_param['min'] - if 'max' in cmd_param: - param_detail['max'] = cmd_param['max'] - - # Mögliche Werte (enum) - if 'values' in cmd_param: - param_detail['values'] = cmd_param['values'] - - command_entry['parameters'].append(param_detail) - - commands.append(command_entry) - - # States extrahieren - state_definitions = device.get('states', []) - for state in state_definitions: - state_name = state.get('name', '') - if state_name: - state_entry = { - 'name': state_name, - 'type': state.get('type', 0) - } - if 'value' in state: - state_entry['current_value'] = state['value'] - states.append(state_entry) - - return commands, states - - -def extract_sensor_data(device: Dict) -> list: - """ - Extrahiert States aus einem Sensor - - Args: - device: Geräte-Dictionary von der Tahoma API - - Returns: - Liste der States - """ - states = [] - - # States extrahieren - state_definitions = device.get('states', []) - for state in state_definitions: - state_name = state.get('name', '') - if state_name: - state_entry = { - 'name': state_name, - 'type': state.get('type', 0) - } - - # Aktueller Wert falls vorhanden - if 'value' in state: - state_entry['current_value'] = state['value'] - - states.append(state_entry) - - return states - - -def process_devices(tahoma: TahomaAPI, db: DatabaseManager, clear_before_insert: bool = True): - """ - Verarbeitet alle Geräte und speichert sie in der Datenbank - - Args: - tahoma: TahomaAPI Instanz - db: DatabaseManager Instanz - clear_before_insert: Tabellen vor dem Einfügen leeren (Standard: True) - """ - # Geräte von der API abrufen - devices = tahoma.get_devices() - - if not devices: - logger.warning("Keine Geräte gefunden") - return - - # Optional: Tabellen leeren - if clear_before_insert: - db.clear_tables() - - actor_count = 0 - sensor_count = 0 - unknown_count = 0 - - for device in devices: - device_url = device.get('deviceURL', '') - device_name = device.get('label', 'Unbekannt') - device_type = device.get('uiClass', 'Unknown') - - # Gerät klassifizieren - is_actor = DeviceClassifier.is_actor(device) - is_sensor = DeviceClassifier.is_sensor(device) - - if is_actor: - # Daten extrahieren - commands, states = extract_actor_data(device) - - # In Datenbank speichern - if db.insert_actor(device_type, device_name, device_url, commands, states): - actor_count += 1 - logger.info(f"Aktor hinzugefügt: {device_name} ({device_type}) - " - f"{len(commands)} Commands, {len(states)} States") - - elif is_sensor: - # Daten extrahieren - states = extract_sensor_data(device) - - # In Datenbank speichern - if db.insert_sensor(device_type, device_name, device_url, states): - sensor_count += 1 - logger.info(f"Sensor hinzugefügt: {device_name} ({device_type}) - " - f"{len(states)} States") - - else: - unknown_count += 1 - logger.warning(f"Unbekanntes Gerät: {device_name} ({device_type})") - - logger.info(f"\nZusammenfassung:") - logger.info(f"Aktoren gespeichert: {actor_count}") - logger.info(f"Sensoren gespeichert: {sensor_count}") - logger.info(f"Unbekannte Geräte: {unknown_count}") - - -def main(): - """Hauptfunktion""" - - # ===== KONFIGURATION ===== - # Tahoma Box Einstellungen - TAHOMA_IP = "192.168.1.XXX" # IP-Adresse Ihrer Tahoma Box - TAHOMA_TOKEN = "YOUR_API_TOKEN_HERE" # Ihr API Token - - # MySQL Datenbank Einstellungen - DB_HOST = "localhost" - DB_NAME = "EnergyFlow" - DB_USER = "your_username" - DB_PASSWORD = "your_password" - DB_PORT = 3306 - - # Optionen - CLEAR_TABLES = True # Tabellen vor dem Import leeren - # ========================= - - # Tahoma API initialisieren - logger.info("Verbinde mit Tahoma Box...") - tahoma = TahomaAPI(TAHOMA_IP, TAHOMA_TOKEN) - - # Datenbank initialisieren - logger.info("Verbinde mit MySQL-Datenbank...") - db = DatabaseManager(DB_HOST, DB_NAME, DB_USER, DB_PASSWORD, DB_PORT) - - if not db.connect(): - logger.error("Datenbankverbindung fehlgeschlagen. Abbruch.") - return - - try: - # Geräte verarbeiten und in Datenbank speichern - process_devices(tahoma, db, clear_before_insert=CLEAR_TABLES) - logger.info("Import erfolgreich abgeschlossen!") - - except Exception as e: - logger.error(f"Fehler während der Verarbeitung: {e}") - - finally: - # Datenbankverbindung schließen - db.disconnect() - - -if __name__ == "__main__": - main()