diff --git a/pr-preview/pr-238/404.html b/pr-preview/pr-238/404.html new file mode 100644 index 0000000000..6294e96133 --- /dev/null +++ b/pr-preview/pr-238/404.html @@ -0,0 +1 @@ +Programmieren mit Java
Zum Hauptinhalt springen

Seite nicht gefunden

Wir konnten nicht finden, wonach Sie gesucht haben.

Bitte kontaktieren Sie den Besitzer der Seite, die Sie mit der ursprünglichen URL verlinkt hat, und teilen Sie ihm mit, dass der Link nicht mehr funktioniert.

\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/daniel/index.html b/pr-preview/pr-238/additional-material/daniel/index.html new file mode 100644 index 0000000000..b6d4d37fff --- /dev/null +++ b/pr-preview/pr-238/additional-material/daniel/index.html @@ -0,0 +1 @@ +Daniel | Programmieren mit Java
Zum Hauptinhalt springen
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/daniel/java1/exam-results/index.html b/pr-preview/pr-238/additional-material/daniel/java1/exam-results/index.html new file mode 100644 index 0000000000..60eb48965a --- /dev/null +++ b/pr-preview/pr-238/additional-material/daniel/java1/exam-results/index.html @@ -0,0 +1,10 @@ +Klausurergebnisse | Programmieren mit Java
Zum Hauptinhalt springen

Klausurergebnisse

    +
  • Punkteschnitt: 65 von 100
  • +
  • Durchfallquote: 22%
  • +
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/daniel/java1/index.html b/pr-preview/pr-238/additional-material/daniel/java1/index.html new file mode 100644 index 0000000000..32845318fd --- /dev/null +++ b/pr-preview/pr-238/additional-material/daniel/java1/index.html @@ -0,0 +1 @@ +Programmierung 1 | Programmieren mit Java
Zum Hauptinhalt springen
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/daniel/java1/sample-exam/index.html b/pr-preview/pr-238/additional-material/daniel/java1/sample-exam/index.html new file mode 100644 index 0000000000..7a6591de44 --- /dev/null +++ b/pr-preview/pr-238/additional-material/daniel/java1/sample-exam/index.html @@ -0,0 +1,124 @@ +Musterklausur | Programmieren mit Java
Zum Hauptinhalt springen

Musterklausur

Hinweise zur Klausur

+
    +
  • Die in dieser Klausur verwendeten Personenbezeichnungen beziehen sich – sofern +nicht anders kenntlich gemacht – auf alle Geschlechter
  • +
  • Pakete und Klassenimporte müssen nicht angegeben werden
  • +
  • Es kann davon ausgegangen werden, dass sämtliche Klassen entsprechende +Implementierungen der Object-Methoden besitzen
  • +
  • Der Stereotyp enumeration impliziert, dass die Aufzählung einen passenden +Konstruktor sowie gegebenenfalls passende Getter für alle Attribute besitzt
  • +
  • So nicht anders angegeben sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie in der Vorlesung gezeigt implementiert werden
  • +
  • Die Konsolenausgaben-Methoden der Klasse PrintStream dürfen sinnvoll gekürzt +geschrieben werden (zum Beispiel syso("Hello World") statt +System.out.println("Hello World"))
  • +
  • Methoden- und Attributsbezeichner dürfen sinnvoll gekürzt geschrieben werden +(zum Beispiel getLWMCP() statt getLectureWithMostCreditPoints())
  • +
+

Aufgabe 1 (26 Punkte)

+
    +
  • Erstelle die Klasse Class anhand des abgebildeten Klassendiagramms (18 +Punkte)
  • +
  • Erstelle die ausführbare Klasse ExamTask01 wie folgt (8 Punkte): Erstelle +einen Kurs mit 2 Studierenden und 2 Vorlesungen und gib anschließend den Kurs +sowie die Vorlesung mit den meisten Creditpoints auf der Konsole aus
  • +
+

Klassendiagramm

+ +

Hinweise zur Klasse Class

+
    +
  • Der Konstruktor soll alle Attribute initialisieren (2,5 Punkte)
  • +
  • Die Methode void addStudent(student Student) soll der Studierendenliste +(students) den eingehenden Studierenden hinzufügen (1 Punkt)
  • +
  • Die Methode void addLecture(lecture Lecture) soll der Vorlesungsliste +(lectures) die eingehende Vorlesung hinzufügen (1 Punkt)
  • +
  • Die Methode Lecture getLectureWithMostCreditPoints() soll die Vorlesung mit +den meisten Creditpoints zurückgeben (5 Punkte)
  • +
  • Die Methode String toString() soll den Kurs in der Form Class +[description=[Beschreibung des Kurses], courseOfStudies=[Beschreibung des +Studiengangs], lectures=[Vorlesungen], students=[Studierende]] +zurückgeben (2 Punkte)
  • +
+

Musterlösung

+
Class.java
public class Class { // 0,5

private final String description; // 0,5
private final CourseOfStudies courseOfStudies; // 0,5
private final List<Lecture> lectures; // 0,5
private final List<Student> students; // 0,5

public Class(String description, CourseOfStudies courseOfStudies) { // 0,5
this.description = description; // 0,5
this.courseOfStudies = courseOfStudies; // 0,5
lectures = new ArrayList<>(); // 0,5
students = new ArrayList<>(); // 0,5
} // 2,5

public String description() { // 0,5
return description; // 0,5
} // 1

public CourseOfStudies courseOfStudies() { // 0,5
return courseOfStudies; // 0,5
} // 1

public List<Lecture> lectures() { // 0,5
return lectures; // 0,5
} // 1

public List<Student> students() { // 0,5
return students; // 0,5
} // 1

public void addLecture(Lecture lecture) { // 0,5
lectures.add(lecture); // 0,5
} // 1

public void addStudent(Student student) { // 0,5
students.add(student); // 0,5
} // 1

public Lecture getLectureWithMostCreditPoints() { // 0,5
Lecture lecture = null; // 0,5
int mostCreditPoints = 0; // 0,5
for (Lecture l : lectures) { // 1
if (l.creditPoints() > mostCreditPoints) { // 1
lecture = l; // 0,5
mostCreditPoints = l.creditPoints(); // 0,5
}
}
return lecture; // 0,5
} // 5

public String toString() { // 0,5
return "Class [description=" + description + ", courseOfStudies=" + courseOfStudies.description()
+ ", lectures=" + lectures + ", students=" + students + "]"; // 1,5
} // 2

}
+
ExamTask01.java
public class ExamTask01 { // 0,5

public static void main(String[] args) { // 0,5

Class wwibe224 = new Class("WWIBE224", CourseOfStudies.WI); // 1
wwibe224.addStudent(new Student("8271625", "Hans Maier")); // 1
wwibe224.addStudent(new Student("9102934", "Peter Müller")); // 1
wwibe224.addLecture(new Lecture("Mathe", 5)); // 1
wwibe224.addLecture(new Lecture("Programmierung", 10)); // 1

System.out.println(wwibe224); // 1
System.out.println("Vorlesung mit den meisten ECTS-Punkten: "
+ wwibe224.getLectureWithMostCreditPoints()); // 1

} // 7,5

} // 8
+

Aufgabe 2 (24 Punkte)

+

Erstelle die Klasse ExamTask02 anhand des abgebildeten Klassendiagramms sowie +anhand der abgebildeten Aktivitätsdiagramme.

+

Klassendiagramm

+ +

Aktivitätsdiagramm zur Methode void main(args: String[])

+ +

Aktivitätsdiagramm zur Methode void textToPin(text: String)

+ +

Aktivitätsdiagramm zur Methode boolean checkPinLength()

+ +

Aktivitätsdiagramm zur Methode boolean checkPinValue()

+ +

Beispielhafte Konsolenausgabe

+
Bitte PIN eingeben: 387
Länge der PIN ist ungültig
Bitte PIN eingeben: 3871
Zahlenwert der PIN ist ungültig
Bitte PIN eingeben: 3872
PIN ist gültig
+

Musterlösung

+
ExamTask02.java
public class ExamTask02 { // 0,5

private static int[] pin; // 0,5

public static void main(String[] args) { // 0,5
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in); // 1

System.out.print("Bitte PIN eingeben: "); // 0,5
String text = sc.next(); // 1
textToPin(text); // 0,5
if (!checkPinLength()) { // 1
System.out.println("Länge der PIN ist ungültig"); // 0,5
} else if (!checkPinValue()) { // 1
System.out.println("Zahlenwert der PIN ist ungültig"); // 0,5
} else { // 0,5
System.out.println("PIN ist gültig"); // 0,5
}
} // 7,5

private static boolean checkPinLength() { // 0,5
int length = pin.length; // 0,5
if (length < 4 || length > 8) { // 1
return false; // 0,5
}
return true; // 0,5
} // 3

private static boolean checkPinValue() { // 0,5
int length = pin.length; // 0,5
int total = 0; // 0,5
int i = 0; // 0,5
while (i < length) { // 1
int value = pin[i]; // 0,5
total += value; // 0,5
i++; // 0,5
}
if (total % 2 != 0) { // 1
return false; // 0,5
}
return true; // 0,5
} // 6,5

private static void textToPin(String text) { // 0,5
int length = text.length(); // 0,5
pin = new int[length]; // 1
int i = 0; // 0,5
while (i < length) { // 1
char c = text.charAt(i); // 1
pin[i] = Integer.valueOf(c); // 1
i++; // 0,5
}
} // 6

} // 24
+

Aufgabe 3 (29 Punkte)

+
    +
  • Erstelle die Klasse Player (9 Punkte) anhand des abgebildeten +Klassendiagramms
  • +
  • Erstelle die ausführbare Klasse ExamTask03 wie folgt (20 Punkte): +
      +
    • Zu Beginn des Spiels sollen die Spieler ihre Namen eingeben können
    • +
    • Zu Beginn einer jeder Runde soll der aktuelle Punktestand ausgegeben werden
    • +
    • Anschließend sollen beide Spieler ihre Würfel werfen
    • +
    • Der Spieler mit dem niedrigeren Wurfwert soll einen Lebenspunkt verlieren, +bei Gleichstand soll keiner der Spieler einen Lebenspunkt verlieren
    • +
    • Das Spiel soll Enden, sobald ein Spieler keine Lebenspunkte mehr besitzt
    • +
    • Am Ende soll der Gewinner des Spiels ausgegeben werden
    • +
    +
  • +
+

Klassendiagramm

+ +

Hinweise zur Klasse Player

+
    +
  • Der Konstruktor soll den Namen (name) mit dem eingehenden Namen belegen, die +Lebenspunkte des Spielers (healthPoints) auf den Wert 10 setzen sowie den +Würfel (dice) initialisieren (2 Punkte)
  • +
  • Die Methode int rollTheDice() soll den Würfel des Spielers werfen und den +Würfelwert zurückgeben (2 Punkte)
  • +
  • Die Methode void reduceHealthPoints() soll die Lebenspunkte des Spielers +(healthPoints) um 1 reduzieren (1 Punkt)
  • +
+

Beispielhafte Konsolenausgabe

+
Spieler 1, gib bitte Deinen Namen ein: Hans
Spieler 2, gib bitte Deinen Namen ein: Peter

Hans hat 10 Lebenspunkte
Peter hat 10 Lebenspunkte
Hans würfelt eine 6
Peter würfelt eine 6

Hans hat 4 Lebenspunkte
Peter hat 1 Lebenspunkte
Hans würfelt eine 5
Peter würfelt eine 1
Peter verliert einen Punkt

Hans gewinnt
+

Musterlösung

+
Player.java
public class Player { // 0,5

private final String name; // 0,5
private int healthPoints; // 0,5
private final Dice dice; // 0,5

public Player(String name) { // 0,5
this.name = name; // 0,5
healthPoints = 10; // 0,5
dice = new Dice(); // 0,5
} // 2

public String name() { // 0,5
return name; // 0,5
} // 1

public int getHealthPoints() { // 0,5
return healthPoints; // 0,5
} // 1

public int rollTheDice() { // 0,5
dice.rollTheDice(); // 0,5
return dice.getValue(); // 1
} // 2

public void reduceHealthPoints() { // 0,5
healthPoints--; // 0,5
} // 1

} // 9
+
ExamTask04.java
public class ExamTask03 { // 0,5

private static Player player1; // 0,5
private static Player player2; // 0,5
private static Scanner scanner; // 0,5

public static void main(String[] args) { // 0,5

scanner = new Scanner(System.in); // 1

System.out.print("Spieler 1, gib bitte Deinen Namen ein: "); // 0,5
String name1 = scanner.nextLine(); // 1
player1 = new Player(name1); // 0,5

System.out.print("Spieler 2, gib bitte Deinen Namen ein: "); // 0,5
String name2 = scanner.nextLine(); // 1
player2 = new Player(name2); // 0,5

System.out.println();

while (player1.getHealthPoints() > 0 && player2.getHealthPoints() > 0) { // 1
System.out.println(player1.name() + " hat " + player1.getHealthPoints() + " Lebenspunkte"); // 1
System.out.println(player2.name() + " hat " + player2.getHealthPoints() + " Lebenspunkte"); // 1
int value1 = player1.rollTheDice(); // 1
System.out.println(player1.name() + " würfelt eine " + value1); // 0,5
int value2 = player2.rollTheDice(); // 1
System.out.println(player2.name() + " würfelt eine " + value2); // 0,5
if (value1 > value2) { // 1
player2.reduceHealthPoints(); // 0,5
System.out.println(player2.name() + " verliert einen Punkt"); // 0,5
} else if (value2 > value1) { // 1
player1.reduceHealthPoints(); // 0,5
System.out.println(player1.name() + " verliert einen Punkt"); // 0,5
}
System.out.println();
}

if (player1.getHealthPoints() > player2.getHealthPoints()) { // 1
System.out.println(player1.name() + " gewinnt"); // 0,5
} else { // 0,5
System.out.println(player2.name() + " gewinnt"); // 0,5
}

} // 18

} // 20
+

Aufgabe 4 (23 Punkte)

+

Erstelle die Klassen StuffedCookie (9 Punkte), CookieJar (8 Punkte) und +IngredientsReader (6 Punkte) anhand des abgebildeten Klassendiagramms.

+

Klassendiagramm

+ +

Hinweise zur Klasse StuffedCookie

+
    +
  • Der Konstruktor soll alle Attribute initialisieren (2 Punkte)
  • +
  • Die Methode List<Ingredient> getIngredients() soll alle Zutaten zurückgeben. +Doppelte Zutaten sollen dabei nur einmal zurückgegeben werden (5,5 Punkte)
  • +
+

Hinweise zur Klasse CookieJar

+
    +
  • Der Konstruktor soll alle Attribute initialisieren (1 Punkt)
  • +
  • Die Methode void addCookie(cookie Cookie) soll der Plätzchenbox ein +Plätzchen hinzufügen (1 Punkt)
  • +
  • Die Methode StuffedCookie getStuffedCookie() soll ein gefülltes Plätzchen +zurückgeben und aus der Plätzchenbox entfernen. Für den Fall, dass kein +gefülltes Plätzchen vorhanden ist, soll der Wert null zurückgegeben werden +(5 Punkte)
  • +
+

Hinweis zur Klasse IngredientsReader

+

Die statische Methode List<Ingredient> readIngredients() soll alle Zutaten der +eingehenden Zutatendatei lesen und zurückgeben (5,5 Punkte).

+

Beispielhafter Aufbau der Zutatendatei

+
Mehl
Zucker
...
+

Musterlösung

+
StuffedCookie.java
public class StuffedCookie extends Cookie { // 1

private final Recipe jam; // 0,5

public StuffedCookie(String name, Recipe dough, Recipe jam) { // 0,5
super(name, dough); // 1
this.jam = jam; // 0,5
} // 2

public List<Ingredient> getIngredients() { // 0,5
List<Ingredient> ingredients = super.getIngredients(); // 1
for (Ingredient i : jam.ingredients()) { // 1,5
if (ingredients.contains(i)) { // 1
continue; // 0,5
}
ingredients.add(i); // 0,5
}
return ingredients; // 0,5
} // 5,5

} // 9
+
CookieJar.java
public class CookieJar { // 0,5

private final List<Cookie> cookies; // 0,5

public CookieJar() { // 0,5
cookies = new ArrayList<>(); // 0,5
} // 1

public void addCookie(Cookie cookie) { // 0,5
cookies.add(cookie); // 0,5
} // 1

public StuffedCookie getStuffedCookie() { // 0,5
StuffedCookie stuffedCookie; // 0,5
for (Cookie c : cookies) { // 1
if (c instanceof StuffedCookie s) { // 1
cookies.remove(s); // 1
stuffedCookie = s; // 0,5
}
}
return stuffedCookie; // 0,5
} // 5

} // 8
+
IngredientsReader.java
public class IngredientsReader { // 0,5

public static List<Ingredient> readIngredients(File file) throws FileNotFoundException { // 0,5
Scanner sc = new Scanner(file); // 1
List<Ingredient> ingredients = new ArrayList<>(); // 0,5

while (sc.hasNextLine()) { // 1
String line = sc.nextLine(); // 0,5
Ingredient i = new Ingredient(line); // 0,5
ingredients.add(i); // 0,5
}

sc.close(); // 0,5
return ingredients; // 0,5
} // 5,5

} // 6
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/daniel/java1/wwibe224/index.html b/pr-preview/pr-238/additional-material/daniel/java1/wwibe224/index.html new file mode 100644 index 0000000000..426b45b5ed --- /dev/null +++ b/pr-preview/pr-238/additional-material/daniel/java1/wwibe224/index.html @@ -0,0 +1,84 @@ +WWIBE224 | Programmieren mit Java
Zum Hauptinhalt springen

WWIBE224

+ +

Kill Team

+

Im Rahmen der Vorlesungswiederholung soll Schritt für Schritt eine abgespeckte +Variante des Tabletop-Spiels +Warhammer 40,000 Kill Team +entwickelt werden. Bei diesem Strategiespiel für zwei Spieler kämpfen zwei +sogenannten Kill Teams mit dem Ziel gegeneinander, entsprechende Missionsziele +zu erfüllen bzw. das gegnerische Team auszulöschen.

+

Version 1 (Vorlesung 1 bis 3)

+

Erstelle eine ausführbare Klasse wie folgt:

+
    +
  • es sollen Datenobjekte für alle Eigenschaften des abgebildeten ER-Modells für +2 Spieler, 2 Kämpfer (je einer pro Spieler) und 8 W6-Würfel (je 4 pro Spieler) +deklariert werden
  • +
  • es soll möglich sein, den Datenobjekten für die Eigenschaften der Spieler und +Kämpfer Werte über die Konsole zuzuweisen
  • +
  • es soll genau eine Runde umgesetzt werden
  • +
+

ER-Modell

+ +

LP = Lebenspunkte

+

Ablauf einer Runde

+

Zu Beginn der Runde greift zunächst der Kämpfer des ersten Spielers den Kämpfer +des zweiten Spielers mit einem einfachen Angriff an. Anschließend greift der +Kämpfer des zweiten Spielers den Kämpfer des ersten Spielers mit einem einfachen +Angriff an.

+

Ablauf eines einfachen Angriffs und Ermittlung des Schadens

+

Der angreifende Spieler würfelt mit 4 W6-Würfeln, der verteidigende Spieler +würfelt mit 3 W6-Würfeln. Anschließend wird der Schaden berechnet und dem +verteidigenden Spieler Lebenspunkte in Höhe des Schadens abgezogen. Der Schaden +berechnet sich dabei gemäß der Formel Anzahl Treffer - Anzahl Blocks. Die +Anzahl Treffer ergibt sich aus der Summe der Wurfwerte des angreifenden +Spielers, die Anzahl Blocks aus der Summe der Wurfwerte des verteidigenden +Spielers. Die Problematiken, dass ein verteidigender Spieler bei einem Angriff +"geheilt" wird (Anzahl Treffer < Anzahl Blocks) und dass ein "toter" Spieler +angreift (Schaden beim ersten Angriff >= LP), sollen aktuell noch ignoriert +werden.

+

Beispielhafte Konsolenausgabe

+
Spieler 1, Name: Hans
Spieler 1, Kämpfer 1, Name: Gregor
Spieler 1, Kämpfer 1, LP: 8

Spieler 2, Name: Peter
Spieler 2, Kämpfer 1, Name: Bonekraka
Spieler 2, Kämpfer 1, LP: 10

*-------*
* Zug 1 *
*-------*
Kämpfer von Hans: Gregor (8 LP)
Kämpfer von Peter: Bonekraka (10 LP)

Gregor greift Bonekraka an.
Gregor würfelt 2, 2, 3 und 6.
Gregor erzielt 13 Treffer.
Bonekraka würfelt 1, 4 und 5.
Bonekraka erzielt 10 Blocks.
Bonekraka erleidet 3 Schaden und hat noch 7 LP.

*-------*
* Zug 2 *
*-------*
Kämpfer von Hans: Gregor (8 LP)
Kämpfer von Peter: Bonekraka (7 LP)

Bonekraka greift Gregor an.
Bonekraka würfelt 1, 1, 3 und 5.
Bonekraka erzielt 10 Treffer.
Gregor würfelt 2, 4 und 5.
Gregor erzielt 11 Blocks.
Gregor erleidet -1 Schaden und hat noch 9 LP.
+

Version 2 (Vorlesung 4 und 5)

+

Passe die ausführbare Klasse wie folgt an:

+
    +
  • es sollen zusätzliche Datenobjekte für alle zusätzlichen Eigenschaften des +abgebildeten ER-Modells für 2 Spieler, 2 Kämpfer (je einer pro Spieler), 2 +Waffen (je eine pro Kämpfer) und 10 W6-Würfel (je 5 pro Spieler) deklariert +werden
  • +
  • es soll möglich sein, den neuen Datenobjekten Werte über die Konsole +zuzuweisen (alternativ können den Datenobjekten auch statisch Werte zugewiesen +werden)
  • +
  • es sollen mehrere Runden umgesetzt werden
  • +
  • das Spiel soll enden, sobald die Lebenspunkte eines der beiden Kämpfer auf 0 +oder unter 0 gesunken sind
  • +
+

ER-Modell

+ +

LP = Lebenspunkte, VW = Verteidigungswert, RW = Rüstungswurf, AW = Attackenwert, +BF_KG = Ballistische Fertigkeit / Kampfgeschick, SW = Schadenswert

+

Ablauf einer Runde

+

Zu Beginn einer jeden Runde greift zunächst der Kämpfer des ersten Spielers den +Kämpfer des zweiten Spielers mit einem erweiterten einfachen Angriff an. Sollte +der Kämpfer des zweiten Spielers diesen Angriff überleben, greift dieser +anschließend den Kämpfer des ersten Spielers mit einem erweiterten einfachen +Angriff an.

+

Ablauf eines erweiterten einfachen Angriffs und Ermittlung des Schadens

+

Der angreifende Spieler würfelt mit der Anzahl AW seiner Waffe, der +verteidigende Spieler würfelt mit der Anzahl VW. Anschließend wird der Schaden +berechnet und dem verteidigenden Spieler Lebenspunkte in Höhe des Schadens +abgezogen. Der Schaden berechnet sich dabei gemäß der Formel (Anzahl Treffer - +Anzahl Blocks) x SW. Die Anzahl Treffer ergibt sich aus der Summe der Wurfwerte +des angreifenden Spielers >= BF_KG, die Anzahl Blocks aus der Summe der +Wurfwerte des verteidigenden Spielers >= RW.

+

Beispielhafte Konsolenausgabe

+
Spieler 1, Name eingeben: Hans
Spieler 1, Kämpfer 1, Name eingeben: Gregor
Spieler 1, Kämpfer 1, LP eingeben: 8
Spieler 1, Kämpfer 1, VW eingeben: 3
Spieler 1, Kämpfer 1, RW eingeben: 5
Spieler 1, Kämpfer 1, Waffe 1, Name eingeben: Boltpistole
Spieler 1, Kämpfer 1, Waffe 1, AW eingeben: 4
Spieler 1, Kämpfer 1, Waffe 1, BF_KG eingeben: 3
Spieler 1, Kämpfer 1, Waffe 1, SW eingeben: 2

Spieler 2, Name eingeben: Peter
Spieler 2, Kämpfer 1, Name eingeben: Bonekraka
Spieler 2, Kämpfer 1, LP eingeben: 10
Spieler 2, Kämpfer 1, VW eingeben: 3
Spieler 2, Kämpfer 1, RW eingeben: 5
Spieler 2, Kämpfer 1, Waffe 1, Name eingeben: Spalta
Spieler 2, Kämpfer 1, Waffe 1, AW eingeben: 4
Spieler 2, Kämpfer 1, Waffe 1, BF_KG eingeben: 4
Spieler 2, Kämpfer 1, Waffe 1, SW eingeben: 3

*----------------*
* Runde 1, Zug 1 *
*----------------*
Kämpfer von Hans: Gregor (8 LP)
Kämpfer von Peter: Bonekraka (10 LP)

Gregor greift Bonekraka mit Boltpistole an.
Gregor würfelt 6, 4, 3 und 2.
Gregor erzielt 3 Treffer.
Bonekraka würfelt 4, 1 und 5.
Bonekraka erzielt 1 Blocks.
Bonekraka erleidet 4 Schaden und hat noch 6 LP.

*----------------*
* Runde 1, Zug 2 *
*----------------*
Kämpfer von Hans: Gregor (8 LP)
Kämpfer von Peter: Bonekraka (6 LP)

Bonekraka greift Gregor mit Spalta an.
Bonekraka würfelt 2, 4, 3 und 2.
Bonekraka erzielt 1 Treffer.
Gregor würfelt 3, 5 und 5.
Gregor erzielt 2 Blocks.
Gregor erleidet 0 Schaden und hat noch 8 LP.

*----------------*
* Runde 2, Zug 1 *
*----------------*
Kämpfer von Hans: Gregor (8 LP)
Kämpfer von Peter: Bonekraka (6 LP)

Gregor greift Bonekraka mit Boltpistole an.
Gregor würfelt 1, 5, 5 und 3.
Gregor erzielt 3 Treffer.
Bonekraka würfelt 5, 4 und 2.
Bonekraka erzielt 1 Blocks.
Bonekraka erleidet 4 Schaden und hat noch 2 LP.

*----------------*
* Runde 2, Zug 2 *
*----------------*
Kämpfer von Hans: Gregor (8 LP)
Kämpfer von Peter: Bonekraka (2 LP)

Bonekraka greift Gregor mit Spalta an.
Bonekraka würfelt 6, 4, 6 und 1.
Bonekraka erzielt 3 Treffer.
Gregor würfelt 4, 2 und 4.
Gregor erzielt 0 Blocks.
Gregor erleidet 9 Schaden und stirbt.
+

Version 3 (Vorlesung 5 und 6)

+

Überführe den bisherigen imperativen Programmentwurf in einen objektorientierten +Programmentwurf. Erweitere zudem den objektorientierten Programmentwurf so, dass +zu Beginn einer jeden Runde per "Münzwurf" darüber entschieden wird, welcher +Spieler den ersten Angriff in der jeweiligen Runde ausführen darf.

\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/daniel/java2/exam-results/index.html b/pr-preview/pr-238/additional-material/daniel/java2/exam-results/index.html new file mode 100644 index 0000000000..944a1834f2 --- /dev/null +++ b/pr-preview/pr-238/additional-material/daniel/java2/exam-results/index.html @@ -0,0 +1,10 @@ +Klausurergebnisse | Programmieren mit Java
Zum Hauptinhalt springen

Klausurergebnisse

    +
  • Punkteschnitt: 36 von 50
  • +
  • Durchfallquote: 22%
  • +
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/daniel/java2/index.html b/pr-preview/pr-238/additional-material/daniel/java2/index.html new file mode 100644 index 0000000000..b29b72ac56 --- /dev/null +++ b/pr-preview/pr-238/additional-material/daniel/java2/index.html @@ -0,0 +1 @@ +Programmierung 2 | Programmieren mit Java
Zum Hauptinhalt springen
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/daniel/java2/sample-exam/index.html b/pr-preview/pr-238/additional-material/daniel/java2/sample-exam/index.html new file mode 100644 index 0000000000..471e9f9d38 --- /dev/null +++ b/pr-preview/pr-238/additional-material/daniel/java2/sample-exam/index.html @@ -0,0 +1,97 @@ +Klausur | Programmieren mit Java
Zum Hauptinhalt springen

Klausur

Hinweise zur Klausur

+
    +
  • Die in dieser Klausur verwendeten Personenbezeichnungen beziehen sich – sofern +nicht anders kenntlich gemacht – auf alle Geschlechter
  • +
  • Pakete und Klassenimporte müssen nicht angegeben werden
  • +
  • Es kann davon ausgegangen werden, dass sämtliche Klassen entsprechende +Implementierungen der Object-Methoden besitzen
  • +
  • Der Stereotyp enumeration impliziert, dass die Aufzählung einen passenden +Konstruktor sowie gegebenenfalls passende Getter für alle Attribute besitzt
  • +
  • Der Stereotyp record impliziert, dass die Datenklasse einen passenden +Konstruktor, Getter zu allen Attributen sowie entsprechende Implementierungen +der Object-Methoden besitzt
  • +
  • So nicht anders angegeben sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie in der Vorlesung gezeigt implementiert werden
  • +
  • Annotationen der Lombok-Bibliothek dürfen verwendet werden
  • +
  • Die Konsolenausgaben-Methoden der Klasse PrintStream dürfen sinnvoll gekürzt +geschrieben werden (zum Beispiel syso("Hello World") statt +System.out.println("Hello World"))
  • +
  • Methoden- und Attributsbezeichner dürfen sinnvoll gekürzt geschrieben werden +(zum Beispiel getLWMCP() statt getLectureWithMostCreditPoints())
  • +
+

Aufgabe 1 (16 Punkte)

+

Erstelle die Klasse SuperLeague<T extends SuperHuman> anhand des abgebildeten +Klassendiagrams.

+

Klassendiagramm

+ +

Hinweise zur Klasse SuperLeague

+
    +
  • Die Schlüssel-Werte-Paare des Assoziativspeichers beinhalten als Schlüssel die +Übermenschen der Liga sowie als Wert deren Verfügbarkeit
  • +
  • Die Methode Optional<T> getMostPowerfulSuperHuman() soll den stärksten +Übermenschen der Liga zurückgeben
  • +
  • Die Methode void addSuperHuman(t: T) soll der Liga den eingehenden +Übermenschen als verfügbares Mitglied hinzufügen. Für den Fall, dass das +Universum des eingehenden Übermenschen nicht dem Universum der Liga +entspricht, soll die Ausnahme WrongUniverseException ausgelöst werden
  • +
  • Die Methode List<T> getAllAvailableSuperHumans() soll alle verfügbaren +Übermenschen der Liga zurückgeben
  • +
  • Die Methode void sendSuperHumanOnMission(t: T) soll die Verfügbarkeit des +eingehenden Übermenschen auf nicht verfügbar setzen
  • +
+

Musterlösung

+
SuperLeage.java
/* Option A */
public record SuperLeague<T extends SuperHuman>
(String name, Universe universe, Map<T, Boolean> members) { // 1
/* Option A */

/* Option B */
@Data // 0,5
public class SuperLeague<T extends SuperHuman> { // 0,125
private final String name; // 0,125
private final Universe universe; // 0,125
private final Map<T, Boolean> members; // 0,125
/* Option B */

/* Option C */
public class SuperLeague<T extends SuperHuman> { // 0,125
private final String name; // 0,125
private final Universe universe; // 0,125
private final Map<T, Boolean> members; // 0,125
public SuperLeague(String name, Universe universe, Map<T, Boolean> members) {
this.name = name;
this.universe = universe;
this.members = members;
} // 0,125
public String getName() { return name; } // 0,125
public Universe getUniverse() { return universe; } // 0,125
public Map<T, Boolean> getMembers() { return members; } // 0,125
/* Option C */

public Optional<T> getMostPowerfulSuperHuman() { // 0,5
T mostPowerfulSuperHuman = null; // 0,5
int power = 0; // 0,5
for (T t : members.keySet()) { // 1
if (t.power() > power) { // 0,5
power = t.power(); // 0,5
mostPowerfulSuperHuman = t; // 0,5
}
}
return Optional.ofNullable(mostPowerfulSuperHuman); // 1
} // 5

public void addSuperHuman(T t) throws WrongUniverseException { // 1
if (!t.universe().equals(universe)) { // 1
throw new WrongUniverseException(); // 1
}

members.put(t, true); // 1
} // 4

public List<T> getAllAvailableSuperHumans() { // 0,5
List<T> allAvailableSuperHumans = new ArrayList<>(); // 0,5
for (Entry<T, Boolean> entry : members.entrySet()) { // 1
if (entry.getValue().equals(true)) { // 1
allAvailableSuperHumans.add(entry.getKey()); // 1
}
}
return allAvailableSuperHumans; // 0,5
} // 4,5

public void sendSuperHumanOnMission(T t) { // 0,5
members.put(t, false); // 1
} // 1,5

} // 16
+

Aufgabe 2 (14 Punkte)

+

Erstelle die JUnit-5-Testklasse SuperLeagueTest anhand des abgebildeten +Klassendiagramms.

+

Klassendiagramm

+ +

Hinweise zur Klasse SuperLeagueTest

+
    +
  • Die Lebenszyklus-Methode void setUp() soll den Superhelden Superman (Name: +Superman, Universum: DC, Stärke: 10), den Superhelden Iron Man (Name: Iron +Man, Universum: MARVEL, Stärke: 7), den Superhelden Spider-Man (Name: +Spider-Man, Universum: MARVEL, Stärke: 8) sowie die Superheldenliga Avengers +(Name: Avengers, Universum: MARVEL) erstellen und den entsprechenden +Attributen zuweisen und die Superhelden Iron Man sowie Spider-Man der +Superheldenliga Avengers als verfügbare Superhelden hinzufügen
  • +
  • Die Testmethode void testAddSuperHuman() soll prüfen, ob beim Aufruf der +Methode void addSuperHuman(t: T) mit dem Superhelden Superman die Ausnahme +WrongUniverseException ausgelöst wird
  • +
  • Die Testmethode void testGetAllAvailableSuperHumans() soll den Superheld +Spider-Man auf eine Mission schicken und prüfen, ob beim Aufruf der Methode +List<T> getAllAvailableSuperHumans() eine Liste der Größe 1 zurückgegeben +wird
  • +
  • Die Testmethode void testGetMostPowerfulSuperHuman() soll prüfen, ob beim +Aufruf der Methode Optional<T> getMostPowerfulSuperHuman() der Superheld +Spider-Man als Optional zurückgegeben wird
  • +
+

Musterlösung

+
SuperLeagueTest.java
public class SuperLeagueTest { // 0,5

private SuperLeague<Hero> avengers; // 0,25
private Hero superman; // 0,25
private Hero ironman; // 0,25
private Hero spiderman; // 0,25

@BeforeEach // 0,25
void setUp() { throws WrongUniverseException { // 0,25 +0,5 (bei Option A)
superman = new Hero("Superman", Universe.DC, 10); // 1
ironman = new Hero("Iron Man", Universe.MARVEL, 7); // 1
spiderman = new Hero("Spider-Man", Universe.MARVEL, 8); // 1
avengers = new SuperLeague<>("Avengers", Universe.MARVEL, new HashMap<>()); // 1

/* Option A */
avengers.addSuperHuman(ironman); // 1
avengers.addSuperHuman(spiderman); // 1
/* Option A */

/* Option B */
avengers.members().put(ironman, true); // 1
avengers.members().put(spiderman, true); // 1
/* Option B */
} // 6,5

@Test // 0,25
void testAddSuperHuman() { // 0,25
assertThrows(WrongUniverseException.class, () -> avengers.addSuperHuman(superman)); // 1,5
} // 2

@Test // 0,25
void testGetAllAvailableSuperHumans() { // 0,25
avengers.sendSuperHumanOnMission(spiderman); // 0,5
List<Hero> heroes = avengers.getAllAvailableSuperHumans(); // 0,5
assertEquals(1, heroes.size()); // 1
} // 2,5

@Test // 0,25
void testGetMostPowerfulSuperHuman() { // 0,25
/* Option A */
assertEquals(spiderman, avengers.getMostPowerfulSuperHuman().get()); // 1
/* Option A */

/* Option B */
assertEquals(Optional.of(spiderman), avengers.getMostPowerfulSuperHuman()); // 1
/* Option B */
} // 1,5

} // 14
+

Aufgabe 3 (22 Punkte)

+

Erstelle die Klasse SingleQueries anhand des abgebildeten Klassendiagramms.

+

Klassendiagramm

+ +

Hinweise zur Klasse SingleQueries

+
    +
  • Die Methode void printAllSinglesWithMoreThan25MillionSalesPerCountry() soll +alle Singles, die sich mehr als 25 Millionen mal verkauft haben, gruppiert +nach dem Land in der Form Artist.country: [Single, Single,...] ausgeben
  • +
  • Die Methode void printAverageBirthYearOfAllDeceasedArtists() soll das +durchschnittliche Geburtsjahr aller verstorbenen Künstler bzw. aller +verstorbenen Künstlerinnen ausgeben. Für den Fall, dass es keinen verstorbenen +Künstler bzw. keine verstorbene Künstlerin gibt, soll der Wert -1 ausgegeben +werden
  • +
  • Die Methode boolean isAnySingleFromChinaWithMoreThan10MillionSales() soll +zurückgeben, ob es eine Single eines Künstlers bzw. einer Künstlerin aus China +gibt, welches sich mehr als 10 Millionen Mal verkauft hat
  • +
  • Die Methode List<String> getTop3SinglesOfThisCenturyBySalesInMillions() soll +die 3 am häufigsten verkauften Singles des jetzigen Jahrtausends sortiert nach +der Anzahl Verkäufe in Millionen in der Form Single.name: Artist.name, +Single.salesInMillions Millionen zurückgeben
  • +
  • Die Methode List<Single> getAllSinglesFromEdSheeran() soll alle Singles des +Künstlers Ed Sheeran (Land: Großbritannien, Geburtstag: 17.02.1991, Status: +lebendig) zurückgeben
  • +
+

Musterlösung

+
SingleQueries
public record SingleQueries(List<Single> singles) { // 1

public void printAllSinglesWithMoreThan25MillionSalesPerCountry() { // 0,5
Map<Country, List<Single>> allSinglesWithMoreThan25MillionSalesPerCountry; // 0,25
allSinglesWithMoreThan25MillionSalesPerCountry = singles.stream() // 0,5
.filter(s -> s.salesInMillions() > 25) // 0,5
.collect(Collectors.groupingBy(s -> s.artist().country())); // 1

allSinglesWithMoreThan25MillionSalesPerCountry
.forEach((c, sl) -> System.out.println(c + ": " + sl)); // 1,25
} // 4

public void printAverageBirthYearOfAllDeceasedArtists() { // 0,5
OptionalDouble averageBirthYearOfAllDeceasedArtists; // 0,25
averageBirthYearOfAllDeceasedArtists = singles.stream() // 0,5
.map(Single::artist) // 0,5
.distinct() // 0,5
.filter(a -> !a.isAlive()) // 0,5
.mapToInt(a -> a.birthdate().getYear()) // 1
.average(); // 0,5

averageBirthYearOfAllDeceasedArtists
.ifPresentOrElse(System.out::println, () -> System.out.println(-1)); // 1,25
} // 5,5

public boolean isAnySingleFromChinaWithMoreThan10MillionSales() { // 0,5
boolean isAnySingleFromChinaWithMoreThan10MillionSales; // 0,25
isAnySingleFromChinaWithMoreThan10MillionSales = singles.stream() // 0,5
.filter(s -> s.salesInMillions() > 10) // 0,5
.anyMatch(s -> s.artist().country().equals(Country.CHN)); // 1
return isAnySingleFromChinaWithMoreThan10MillionSales; // 0,25
} // 3

public List<String> getTop3SinglesOfThisCenturyBySalesInMillions() { // 0,5
List<String> top3SinglesOfThisCenturyBySalesInMillions; // 0,25
top3SinglesOfThisCenturyBySalesInMillions = singles.stream() // 0,5
.filter(s -> s.publishingYear().compareTo("2000") >= 0) // 1
.sorted((s1, s2) -> Integer.valueOf(s2.salesInMillions()).compareTo(s1.salesInMillions())) // 1
.map(s -> s.name() + ": " + s.artist().name() + ", " + s.salesInMillions() + " Millionen") // 1
.limit(3) // 0,5
.toList(); // 0,5
return top3SinglesOfThisCenturyBySalesInMillions; // 0,25
} // 5

public List<Single> getAllSinglesFromEdSheeran() { // 0,5
List<Single> allSinglesFromEdSheeran; // 0,25
Artist sheeran = new Artist("Ed Sheeran", Country.GBR, LocalDate.of(1991, 2, 17), true); // 1
allSinglesFromEdSheeran = singles.stream() // 0,5
.filter(s -> s.artist().equals(sheeran)) // 0,5
.toList(); // 0,5
return allSinglesFromEdSheeran; // 0,25
} // 3,5

} // 22
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/steffen/demos/index.html b/pr-preview/pr-238/additional-material/steffen/demos/index.html new file mode 100644 index 0000000000..6c6aa56b57 --- /dev/null +++ b/pr-preview/pr-238/additional-material/steffen/demos/index.html @@ -0,0 +1,4 @@ +Demos | Programmieren mit Java
Zum Hauptinhalt springen

Demos

+

Die Endergebnisse der Demos findet ihr in folgendem Branch

+
git switch demos/steffen
+

Der Branch befindet sich im jappuccini/java-exercises Repository.

\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/steffen/index.html b/pr-preview/pr-238/additional-material/steffen/index.html new file mode 100644 index 0000000000..6743060f5a --- /dev/null +++ b/pr-preview/pr-238/additional-material/steffen/index.html @@ -0,0 +1 @@ +Steffen | Programmieren mit Java
Zum Hauptinhalt springen
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/2023/index.html b/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/2023/index.html new file mode 100644 index 0000000000..cfc315f1cc --- /dev/null +++ b/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/2023/index.html @@ -0,0 +1,156 @@ +2023 | Programmieren mit Java
Zum Hauptinhalt springen

2023

Aufgabe 1

+
public class ExamTask01 {
public static void a() {
String s = "Programmierung";
char c = s.charAt(s.length() - 3);
int x = 0b1010010;
double d = 0.9;
int y = 2 * (int) d;
System.out.println("c: " + c);
System.out.println("x: " + x);
System.out.println("y: " + y);
}
}
+

Welche Konsolenausgabe erzeugt die Methode a der Klasse ExamTask01?

+

Aufgabe 2

+
public class ExamTask02 {
public static void b() {
String[] values = {"RO", "ER"};
boolean x = true;
int i = 3, j = 5, k = 4;
int index = ++i % 2 == 0 ? 0 : 1;
j -= x || ++k == 5 ? 5 : 0;
System.out.println(values[1] + values[index] + "R " + i + "" + j + "" + k);
}
}
+

Welche Konsolenausgabe erzeugt die Methode b der Klasse ExamTask02?

+

Aufgabe 3

+

Erstelle die Klassen Present (9 Punkte), GiftBag (7 Punkte) und +ExamTask02 (4 Punkte) anhand des abgebildeten Klassendiagramms.

+ +

Hinweise zur Klasse ExamTask02

+
    +
  • Erzeuge einen Geschenkesack (GiftBag) mit zwei unterschiedlichen Geschenken +(Present) für ein und dieselbe Person (Person).
  • +
  • Gib anschließend das teuerste Geschenk des Geschenkesacks auf der Konsole aus
  • +
+

Beispielhafte Konsolenausgabe: +Present[description=PS5, price=499.0, sender=Hans, recipient=Lisa]

+

Hinweise zur Klasse Present

+
    +
  • Der Konstruktor soll alle Attribute initialisieren
  • +
  • Die Methode toString soll alle Attribute in nachfolgender Form +zurückgeben. +Present [description=[Beschreibung], price=[Preis], sender=[Name des Senders], recipient=[Name des Empfängers]]
  • +
+

Hinweise zur Klasse GiftBag

+
    +
  • Der Konstruktor soll alle Attribute initialisieren
  • +
  • Die Methode addPresent soll dem Geschenkesack (Giftbag) das eingehende +Geschenk (Present) hinzufügen.
  • +
  • Die Methode getMostExpensivePresent soll das teuerste Geschenk +zurückgeben.
  • +
+

Aufgabe 4

+

Erstelle die Klassen Circle (6 Punkte) und ShapeReader (14 Punkte) +anhand des abgebildeten Klassendiagramms.

+ +

Hinweise zur Klasse Circle

+
    +
  • Der Konstruktor soll alle Attribute initialisieren
  • +
  • Die Methode getArea soll den Flächeninhalt eines Kreises (πr²) zurückgeben
  • +
  • Die Methode getCircumference soll den Umfang eines Kreises (2πr) +zurückgeben
  • +
  • Die Methode toString soll alle Attribute in nachfolgender Form +zurückgeben. Circle [r=[Wert von r]]
  • +
+

Hinweise zur Klasse ShapeReader

+
    +
  • +

    Der Konstruktor soll für jedes Element des eingehenden Arrays ein Objekt der +Klasse Circle oder Rectangle erzeugen und der Formenliste (shapes) hinzugefügt +werden.

    +

    Die Elemente des eingehenden Arrays haben folgende Struktur:

    +
    Circle;2
    Rectangle;1;4
    Circle;1
    Circle;6
    Rectangle;2;2
    +
  • +
  • +

    Die Methode getCircles soll alle Kreise (Circle) der Formenliste (shapes) +als Liste zurückgeben.

    +
  • +
  • +

    Die Methode getShape soll den spezifischen Konstruktor getShape(minArea: +double) aufrufen und alle Formen (Shape) zurückgeben.

    +
  • +
  • +

    Die Methode getShape(minArea: double) soll alle Formen mit einem +Flächeninhalt der größer oder gleich dem eingehenden Flächeninhalt (minArea) +ist als Liste zurückgeben.

    +
  • +
+

Aufgabe 5

+ +

Hinweise zur Methode split

+

Die Methode split soll ein Array vom Typ int so verarbeiten, dass ein neues +Array erstellt wird, was alle Elemente des eingehenden Arrays bis zum +angegebenen Index enthält. Das neu erstellte Array soll anschließend +zurückgegeben werden.

+

Verwende keine ArrayList!

+

Bsp.: Der Parameter numbers enthält die Elemente 10, 8, 3, 22 & 1 der Parameter +index ist gleich 2. Zurückgegeben werden soll ein neues Array, das die Elemente +10, 8 & 3 enthält.

+

Hinweise zur Methode main

+

In der Methode main soll ein Arrays erstellt werden, dass die Ganzzahlen 10, 8, +3, 22 & 1 enthält. Erstelle mithilfe der Methode split ein neues Array, dass die +ersten drei Elemente des ersten Arrays enthalten soll. Gib mithilfe einer +For-Schleife alle Elemente des neu erstellten Arrays aus.

+

Aufgabe 6

+ +

Hinweise zur Klasse OverflowException

+
    +
  • Der Konstruktor soll alle Attribute initialisieren.
  • +
  • Die Methode getHigherThanCapacity soll die zu viel hinzugefügte +Flüssigkeit zurückgeben.
  • +
+

Hinweise zur Klasse Barrel

+
    +
  • Der Konstruktor soll alle Attribute initialisieren. Das Fass ist Anfangs immer +leer.
  • +
  • Die Methode addFluid soll die OverflowException auslösen, wenn die Summe +der eingehenden Flüssigkeit und der im Fass befindenden Flüssigkeit die +Kapazität überschreitet. Übergebe der Ausnahme den Wert, um wieviel die +maximale Kapazität überschritten wurde. Wenn die maximale Kapazität nicht +überschritten wird, soll die eingehende Flüssigkeit dem Fass hinzugefügt +werden
  • +
+

Hinweise zur Klasse ExamTask06

+

Erstelle ein neues Fass, das die maximale Kapazität von 100 hat. Versuche +anschließend das Fass auf 101 zu füllen und fange die Ausnahme ab. Gib in der +Konsole aus, um wieviel die maximale Kapazität überschritten wurde.

+

Bsp. Konsolenausgabe: Es wäre um 1 zu viel befüllt worden.

+

Aufgabe 7

+ +

Hinweise zur Klasse EnergySource

+
    +
  • Erstelle die zwei Konstanten Batterie und Steckdose für die Arten einer +Energiequelle.
  • +
  • Der Konstruktor soll alle Attribute initialisieren.
  • +
  • Die Methode getType soll den Typ der Energiequelle zurückgeben.
  • +
  • Die Methode canBeUsedEverywhere soll true zurückgeben, wenn die +Energiequelle eine Batterie ist.
  • +
+

Hinweise zur Klasse Phone

+
    +
  • Der Konstruktor soll alle Attribute initialisieren.
  • +
+

Hinweise zur Klasse CablePhone

+
    +
  • Der Konstruktor soll alle Attribute initialisieren.
  • +
  • Die Methode readyForUse soll true zurückgeben, wenn das Kabeltelefon +eingesteckt und eingeschalten ist.
  • +
+

Hinweise zur Klasse SmartPhone

+
    +
  • Die minimale Energie soll 200 betragen.
  • +
  • Der Konstruktor soll alle Attribute initialisieren.
  • +
  • Die Methode readyForUse soll true zurückgeben, wenn die Energie des +Smartphones die minimal erforderliche Energie überschreitet.
  • +
+

Hinweise zur Klasse ExamTask04

+

Erzeuge ein Kabeltelefon mit Akku und eines, dass an die Steckdose angeschlossen +ist. Erzeuge ein leeres Smartphone und eines das halb voll ist. Speichere alle +erzeugten Fahrzeuge in einer ArrayList. Ermittle mithilfe einer Schleife die +Anzahl der betriebsbereiten Telefone. Gib die Anzahl in der Konsole aus.

+

Aufgabe 8

+ +

Hinweise zur Klasse CarVendor

+
    +
  • Der Konstruktor soll alle Attribute initialisieren.
  • +
  • Die Methode sortByConstructionYear soll die Autos absteigend nach Baujahr +sortieren.
  • +
  • Die Methode print soll das Baujahr aller Autos in der Konsole ausgeben.
  • +
+

Hinweise zur Klasse ConstructionYearComparator

+
    +
  • Der ConstructionYearComparator soll das Comparator Interface implementieren +und Autos absteigend nach Baujahr sortieren.
  • +
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/2024/index.html b/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/2024/index.html new file mode 100644 index 0000000000..ce838e7a11 --- /dev/null +++ b/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/2024/index.html @@ -0,0 +1,135 @@ +2024 | Programmieren mit Java
Zum Hauptinhalt springen

2024

Aufgabe 1

+

Erstelle die Klassen EngineType (6 Punkte), Vehicle (4 Punkte), Car +(3 Punkte), Truck (4 Punkte) und ExamTask01 (7 Punkte) anhand des +abgebildeten Klassendiagramms.

+ +

Hinweise zur Klasse EngineType

+
    +
  • Erstelle die vier Konstanten Elektro, Wasserstoff, Diesel und Benzin für die +Arten eines Motors.
  • +
  • Der Konstruktor soll alle Attribute initialisieren.
  • +
  • Die Methode getType soll den Typ der Motorart zurückgeben.
  • +
  • Die Methode canBeSustainable soll true zurückgeben, wenn es ein Elektro- +oder Wasserstoffmotor ist.
  • +
+

Hinweise zur Klasse Vehicle

+
    +
  • Der Konstruktor soll engineType initialisieren und das erstellte Vehicle der +ArrayList allVehicles hinzufügen.
  • +
  • Die Methode getAllVehicles soll die Liste der erstellten Fahrzeuge +zurückgeben.
  • +
+

Hinweise zur Klasse Car

+
    +
  • Der Konstruktor soll alle Attribute initialisieren.
  • +
  • Die Methode readyForUse soll true zurückgeben, wenn der Tank nicht leer +ist.
  • +
+

Hinweise zur Klasse Truck

+
    +
  • Der Konstruktor soll alle Attribute initialisieren.
  • +
  • Die Methode readyForUse soll true zurückgeben, wenn das Gewicht des Trucks +das maximal erlaubte Gewicht nicht überschreitet.
  • +
+

Hinweise zur Klasse ExamTask04

+

Erzeuge ein Elektroauto mit leerem Akku und ein Benzinauto mit einem Tanklevel +von 50. Erzeuge ein Dieseltruck mit einem Gewicht von 6000 und ein +Wasserstofftruck der 1500 wiegt.

+

Überprüfe alle erzeugten Fahrzeuge mithilfe einer Schleife und ermittle die +Anzahl der betriebsbereiten Autos. Gib die Anzahl in der Konsole aus.

+

Lösungen

+

EngineType

+
public enum EngineType {
ELECTRO('E'),
HYDROGEN('H'),
DIESEL('D'),
PETROL('P');

private char type;

EngineType(char type) {
this.type = type;
}

public char getType() {
return type;
}

public boolean canBeSustainable() {
return this == EngineType.ELECTRO || this == EngineType.HYDROGEN;
}
}
+

Vehicle

+
public abstract class Vehicle {
private final static ArrayList<Vehicle> allVehicles = new ArrayList<>();
protected final EngineType engineType;

Vehicle(EngineType engineType) {
this.engineType = engineType;
Vehicle.allVehicles.add(this);
}

public abstract boolean readyForUse();

public static ArrayList<Vehicle> getAllVehicles() {
return Vehicle.allVehicles;
}
}
+

Car

+
public class Car extends Vehicle {
private int fuelLevel;

public Car(EngineType engineType, int fuelLevel) {
super(engineType);
this.fuelLevel = fuelLevel;
}

public boolean readyForUse() {
return fuelLevel > 0;
}
}
+

Truck

+
public class Truck extends Vehicle {
private final static int MAXIMUM_ALLOWED_WEIGHT = 7500;
private int weight;

public Truck(EngineType engineType, int weight) {
super(engineType);
this.weight = weight;
}

public boolean readyForUse() {
return weight <= Truck.MAXIMUM_ALLOWED_WEIGHT;
}
}
+

ExamTask01

+
public class ExamTask01 {
public static void main(String[] args) {
new Car(EngineType.ELECTRO, 0);
new Car(EngineType.PETROL, 50);
new Truck(EngineType.DIESEL, 6000);
new Truck(EngineType.HYDROGEN, 1500);

int readyVehicles = 0;
for (Vehicle vehicle : Vehicle.getAllVehicles()) {
if (vehicle instanceof Car && vehicle.readyForUse()) {
readyVehicles++;
}
}

System.out.println(readyVehicles);
}
}
+

Aufgabe 2

+

Erstelle die Klassen Human (8 Punkte), Company (6.5 Punkte), +SalaryComparator (2.5 Punkte), ExamTask02 (4 Punkte) anhand des +abgebildeten Klassendiagramms.

+ +

Hinweise zur Klasse Human

+
    +
  • +

    Der Konstruktor soll alle Attribute initialisieren.

    +
  • +
  • +

    Die Methode compareTo soll die natürliche Ordnung der Klasse Human +definieren. Hierbei sollen die Menschen aufsteigend nach ihrem Alter sortiert +werden. Sind zwei Menschen gleich alt, sollen die Menschen absteigend nach dem +Gehalt sortiert werden.

    +
  • +
  • +

    Die Methode toString soll die Werte eines Objektes als String zurückgeben.

    +

    Bsp: "Human [Fullname=Steffen Merk] [age=28] [salary=1000]"

    +
  • +
+

Hinweise zur Klasse SalaryComparator

+
    +
  • Der SalaryComparator soll das Comparator Interface implementieren und Menschen +absteigend nach Gehalt sortieren.
  • +
+

Hinweise zur Klasse Company

+
    +
  • +

    Der Konstruktor soll alle Attribute initialisieren.

    +
  • +
  • +

    Die Methode addEmployee soll den eingehenden Menschen der Mitarbeiterliste +hinzufügen.

    +
  • +
  • +

    Die Methode sortDefault soll die Mitarbeiterliste der natürlichen Ordnung +nach sortieren.

    +
  • +
  • +

    Die Methode sortBySalary soll die Mitarbeiterliste absteigend nach Gehalt +sortieren.

    +
  • +
  • +

    Die Methode printAllEmployees soll jeden Mitarbeiter in der Konsole +ausgeben.

    +
  • +
+

Hinweise zur Klasse ExamTask02

+

Erzeuge eine Firma und füge dieser 2 Mitarbeiter hinzu. Der erste Mitarbeiter +heißt Steffen Merk, ist 24 Jahre alt und hat ein Gehalt von 1000. Die zweite +Mitarbeiterin heißt Marianna, ist 28 Jahre alt und hat ein Gehalt von 2000.

+

Sortiere die Mitarbeiter zuerst nach dem Gehalt und anschließend nach der +natürlichen Ordnung. Gebe nach jeder Sortierung alle Mitarbeiter der Firma aus.

+

Lösungen

+

Human

+
public class Human implements Comparable<Human> {
public final String firstName;
public final String lastName;
public final int age;
public final int salary;

public Human(String firstName, String lastName, int age, int salary) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.salary = salary;
}

public int compareTo(Human other) {
if (age > other.age) {
return 1;
} else if (age < other.age) {
return -1;
} else {
if (salary > other.salary) {
return -1;
} else if (salary < other.salary) {
return 1;
} else {
return 0;
}
}
}

public String toString() {
return "Human [Fullname=" + firstName + " " + lastName + "] [age=" + age + "] [salary=" + salary + "]";
}
}
+

SalaryComparator

+
public class SalaryComparator implements Comparator<Human> {
public int compare(Human h1, Human h2) {
if (h1.salary > h2.salary) {
return -1;
} else if (h1.salary < h2.salary) {
return 1;
} else {
return 0;
}
}
}
+

Company

+
public class Company {
private final ArrayList<Human> employees;

public Company() {
employees = new ArrayList<>();
}

public void addEmployee(Human human) {
employees.add(human);
}

public void sortDefault() {
Collections.sort(employees);
}

public void sortSortBySalary() {
Collections.sort(employees, new SalaryComparator());
}

public void printAllEmployees() {
for (Human employee : employees) {
System.out.println(employee.toString());
}
}
}
+

ExamTask02

+
public class ExamTask02 {
public static void main(String[] args) {
Company c = new Company();
c.addEmployee(new Human("Steffen", "Merk", 24, 1000));
c.addEmployee(new Human("Marianna", "Maglio", 28, 2000));

c.sortSortBySalary();
c.printAllEmployees();
c.sortDefault();
c.printAllEmployees();
}
}
+

Aufgabe 3 (Probeklausur Moodle)

+ +

Rentable

+
public interface Rentable { // 0.5
public void rent(Person person) throws NotRentableException, TooLowBudgetException; // 1.5
}
+

NotRentableException

+
public class NotRentableException extends Exception { // 0.5
public NotRentableException() { // 0.5
super(); // 0.5
}
}
+

TooLowBudgetException

+
public class TooLowBudgetException extends Exception { // 0.5
final double missingMoney; // 0.25

public TooLowBudgetException(double missingMoney) { // 0.5
super(); // 0.5
this.missingMoney = missingMoney; // 0.25
}
}
+

Flat

+
public class Flat implements Rentable { // 0.5

public double fee; // 0.25
private Person renter; // 0.25

public Flat(double fee) { // 0.5
this.fee = fee; // 0.25
this.renter = null; // 0.25
}

public boolean isFree() { // 0.5
return renter == null; // 0.5
}

public boolean isRentable() { // 0.5
return fee > 0; // 0.5
}

public void rent(Person person) throws NotRentableException, TooLowBudgetException { // 1.0
if (!isRentable() || !isFree()) { // 0.5
throw new NotRentableException(); // 0.5
} else if (fee > person.budget) { // 0.5
throw new TooLowBudgetException(fee - person.budget); // 0.5
} else {
this.renter = person; // 0.5
}
}
}
+

House

+
public class House implements Rentable, Comparable<House> { // 1.0
private final int number; // 0.25
public final double fee; // 0.25
private Person renter; // 0.25
public final ArrayList<Flat> flats; // 0.25

public House(int number, int numberOfFlats) { // 0.5
this(number, numberOfFlats, 0); // 0.5
}

public House(int number, int numberOfFlats, double fee) { // 0.5
this.number = number; // 0.25
this.fee = fee; // 0.25
this.flats = new ArrayList<>(); // 0.25
this.renter = null; // 0.25
double flatFee = 500; // 0.25
for (int i = 0; i < number; i++) { // 0.5
this.flats.add(new Flat(flatFee)); // 0.5
flatFee += 100; // 0.25
}
}

public int getNumber() { // 0.5
return number; // 0.5
}

public boolean isRentable() { // 0.5
return fee > 0 && renter == null; // 0.5
}

public void rent(Person person) throws NotRentableException, TooLowBudgetException { // 1.0
if (!isRentable()) { // 0.5
throw new NotRentableException(); // 1
} else if (fee > person.budget) { // 0.5
throw new TooLowBudgetException(fee - person.budget); // 1
} else {
this.renter = person; // 0.5
}
}

public int compareTo(House o) { // 0.5
if (number > o.getNumber()) { // 0.5
return 1; // 0.25
} else {
return -1; // 0.25
}
}
}
+

HouseFeeComparator

+
public class HouseFeeComparator implements Comparator<House> { // 0.5

public int compare(House h1, House h2) { // 0.5
if (h1.fee > h2.fee) { // 0.5
return 1; // 0.25
} else if (h1.fee < h2.fee) { // 0.5
return -1; // 0.25
} else {
return 0; // 0.25
}
}
}
+

Street

+
public class Street { // 0.5
public final ArrayList<House> houses; // 0.25

public Street(int numberOfHouses) { // 0.5
this.houses = new ArrayList<>(); // 0.25
for (int i = 0; i < numberOfHouses; i++) { // 0.5
int houseNumber = i + 1; // 0.25
if (houseNumber % 2 == 0) { // 0.5
this.houses.add(new House(houseNumber, 5)); // 0.5
} else {
this.houses.add(new House(houseNumber, 0, 2000)); // 0.5
}
}
}

public void rentHouse(Person person) { // 0.5
for (House house : houses) { // 0.5
try { // 0.25
house.rent(person); // 0.5
break; // 0.25
} catch (Exception e) { // 0.5
if (e instanceof TooLowBudgetException l) { // 0.5
System.out.println("Es wird " + l.missingMoney + " mehr Geld gebraucht"); // 0.5
}
if (e instanceof NotRentableException) { // 0.5
System.out.println(
"Die Hausnummer " + house.getNumber() + " kann nicht gemietet werden."); // 0.5
}
}
}
}

public boolean rentFlat(Person person) { // 0.5
for (House house : houses) { // 0.5
for (int i = 0; i < house.flats.size(); i++) { // 0.5
Flat flat = house.flats.get(i); // 0.5
try { // 0.25
flat.rent(person); // 0.5
return true; // 0.5
} catch (TooLowBudgetException e) { // 0.5
System.out.println("Zu wenig Geld für Wohnung. Gebühr: " + flat.fee); // 0.5
} catch (NotRentableException e) { // 0.5
System.out.println("Wohnung " + (i + 1) + " nicht Mietbar."); // 0.5
}
}
}
return false; // 0.5
}

public void sortByFee() { // 0.5
Collections.sort(this.houses, new HouseFeeComparator()); // 0.5
}

public void sort() { // 0.5
Collections.sort(this.houses); // 0.5
}
}
+

ExamTask01

+
public class ExamTask01 { // 0.5
public static void main(String[] args) { // 0.5
Street s = new Street(20); // 0.5
s.sortByFee(); // 0.5
Flat cheapestFlat = null; // 0.25
for (House h : s.houses) { // 0.5
for (Flat flat : h.flats) { // 0.5
if (cheapestFlat == null) { // 0.5
cheapestFlat = flat; // 0.25
} else if (flat.fee < cheapestFlat.fee) { // 0.5
cheapestFlat = flat; // 0.25
}
}
}
System.out.println(cheapestFlat.fee); // 0.5
}
}
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/index.html b/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/index.html new file mode 100644 index 0000000000..068409f744 --- /dev/null +++ b/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/index.html @@ -0,0 +1 @@ +Klausurvorbereitung | Programmieren mit Java
Zum Hauptinhalt springen
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/steffen/java-1/index.html b/pr-preview/pr-238/additional-material/steffen/java-1/index.html new file mode 100644 index 0000000000..d267b15711 --- /dev/null +++ b/pr-preview/pr-238/additional-material/steffen/java-1/index.html @@ -0,0 +1 @@ +Java 1 | Programmieren mit Java
Zum Hauptinhalt springen
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/steffen/java-1/slides/index.html b/pr-preview/pr-238/additional-material/steffen/java-1/slides/index.html new file mode 100644 index 0000000000..098f4a0edf --- /dev/null +++ b/pr-preview/pr-238/additional-material/steffen/java-1/slides/index.html @@ -0,0 +1,18 @@ +Folien | Programmieren mit Java
Zum Hauptinhalt springen
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/2023/index.html b/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/2023/index.html new file mode 100644 index 0000000000..542f39b7eb --- /dev/null +++ b/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/2023/index.html @@ -0,0 +1,75 @@ +2023 | Programmieren mit Java
Zum Hauptinhalt springen

2023

Cheatsheet Java II

+

Altklausuren Java II

+
    +
  1. Altklausuren 2022 Q3 - Klausur Java 2 Aufgabe 3
  2. +
+
public class PlanetQueries {

public static ArrayList<Planet> planets = Planet.getPlantes();

public static void a() {
PlanetQueries.planets.stream()
.filter(p -> p.moons() > 5)
.forEach(p -> {
System.out.println(p.name() + ": " + p.moons());
});
}

public static OptionalDouble b() {
return PlanetQueries.planets.stream()
.filter(p -> p.type() == Type.GAS_PLANET)
.mapToDouble(p -> p.diameter())
.average();
}

public static List<Planet> c() {
return PlanetQueries.planets.stream()
.sorted((p1, p2) -> Double.compare(p2.mass(), p1.mass()))
.toList();
}

public static boolean d() {
return PlanetQueries.planets.stream()
.allMatch(p -> p.moons() > 0);
}

public static void e() {
Map<Type, List<Planet>> planetsMap = PlanetQueries.planets.stream()
.collect(Collectors.groupingBy(p -> p.type()));
planetsMap.entrySet()
.stream()
.forEach(entry -> {
System.out.println(entry.getKey() + ":" + entry.getValue());
});
}
}
+
    +
  1. Altklausuren 2022 Q3 - Probeklausur Java 2 Klausur Aufgabe 3
  2. +
  3. Altklausuren 2023 Q1 - Wiederholklausur 2 Java 2 Klausur Aufgabe 3
  4. +
  5. Altklausuren 2023 Q1 - Wiederholklausur Java 2 Klausur Aufgabe 3
  6. +
+

Aufgabe Optionals

+

Klassendiagramm

+ +

Hinweise zu den Konstruktoren

+

Die Konstruktoren sollen alle Attribute initialisieren.

+

Hinweise zur Methode toString

+

Die Methode toString soll die Attribute brand, model und addition zurückgeben. +Die Attribute sollen durch eine Leertaste getrennt sein. Falls addition keinen +Wert besitz, soll dieser ignoriert werden.

+

Erstelle eine ausführbare Klasse in der ein Auto mit der Marke "Mercedes", dem +Modell "CLA45" und dem Zusatz "AMG" initialisiert wird. Gib das Auto in der +Konsole aus. Entferne den Zusatz von dem Auto und gebe das Auto erneut in der +Konsole aus.

+
public class Car {
public String name;
public String brand;
public Optional<String> addition;

public Car(String name, String brand) {
this.name = name;
this.brand = brand;
this.addition = Optional.empty();
}

public Car(String name, String brand, String addition) {
this.name = name;
this.brand = brand;
this.addition = Optional.ofNullable(addition);
}

public String toString() {
if (addition.isPresent()) {
return brand + " " + name + addition.get();
} else {
return brand + " " + name;
}
}
}
+
public class Main {
public static void main(String[] args) {
Car benz = new Car("CLA45", "Mercedes", "AMG");
System.out.println(benz.toString());
benz.addition = Optional.empty();
System.out.println(benz.toString());
}
}
+

Aufgabe Lambdafunktionen

+

Klassendiagramm

+ +

Hinweise zur Klasse Helper

+

Im Klassendiagramm sind keine Rückgabetypen für die statischen Attribute +angegeben. Gib für jedes Attribut den geeigneten Typ an.

+
    +
  • Das Attribut isNewBorn soll eine Lambdafunktion enthalten die ermittelt, +ob ein Tier jünger als 1 Jahr alt ist.
  • +
  • Das Attribut toOutput soll eine Lambdafunktion enthalten, die ein Tier in +folgenden String konvertiert: "firstName lastName ist size Zentimeter groß."
  • +
  • Die Methode isHigherThan soll eine Lambdafunktion zurückgeben, die +abhängig vom Parameter size überprüft, ob ein Tier größer als die angegebene +Größe ist.
  • +
+

Hinweise zur Klasse Data

+
    +
  • Die Methode getAnimals soll einen Stream von einem einzelnen Tier mit den +Werten deiner Wahl zurückgeben.
  • +
+

Hinweise zur Klasse Task2
Verwende für die nachfolgende Abfolge die +Methoden der Klassen Data und Helper. Erzeuge einen Stream von Tieren und +filtere jene heraus, die Größer als 50 Zentimeter sind. Gib anschließend den +vollen Namen und die Größe der Tiere in der Konsole aus.

+
public record Animal(String firstName, String lastName, int age, int size) {}
+
public class Data {
public static Stream<Animal> getAnimals() {
return Stream.of(new Animal("Steffen", "Merk", 28, 170));
}
}
+
public class Helper {
public static Predicate<Animal> isNewBorn = animal -> animal.age() < 1;
public static Function<Animal, String> toOutput = animal -> animal.firstName()
+ " " + animal.lastName() + " ist " + animal.size() + " Zentimeter groß";

public static Predicate<Animal> isHigherThan(int size) {
return animal -> animal.size() > size;
}
}
+
public class Task2 {
public static void main(String[] args) {
Data.getAnimals()
.filter(Helper.isHigherThan(50))
.map(Helper.toOutput)
.forEach(System.out::println);
}
}
+

Aufgabe Streams

+

Klassendiagramm

+ +
public class PhoneStore {
private ArrayList<Phone> phones;

public PhoneStore(ArrayList<Phone> phones) {
this.phones = phones;
}

public List<Phone> q1() {
return phones.stream()
.filter(p -> p.brand() == Brand.HUAWEI)
.filter(p -> p.cameras() > 3)
.sorted((p1, p2) -> Integer.compare(p2.cpuPower(), p1.cpuPower()))
.limit(3)
.sorted((p1, p2) -> Double.compare(p2.price(), p1.price()))
.toList();
}

public OptionalDouble q2() {
return phones.stream()
.filter(p -> p.batterySize() > 2500)
.mapToInt(p -> p.cameras())
.average();
}

public List<Phone> q3(double maxPrice) {
return phones.stream()
.filter(p -> p.price() <= maxPrice)
.filter(p -> p.connectionType().isModern())
.filter(p -> p.cpuPower() < 2400)
.sorted((p1, p2) -> Double.compare(p1.price(), p2.price()))
.toList();
}

public Map<String, Phone> q4() {
return phones.stream()
.collect(Collectors.toMap(
p -> p.brand().name() + p.connectionType().name(),
p -> p));
}

public Map<ConnectionType, List<Phone>> q5() {
return phones.stream()
.collect(Collectors.groupingBy(p -> p.connectionType()));
}

}
+

Hinweise zur Klasse PhoneStore

+
    +
  • Der Konstruktor soll alle Attribute initialisieren.
  • +
  • Die Methode q1 soll die drei Leistungsstärksten (CPU Power) Smart Phones +der Marke Huawei, absteigend nach dem Preis zurückgeben, welche mehr als 3 +Kameras haben.
  • +
  • Die Methode q2 soll die durchschnittliche Kameraanzahl aller Smart Phones +zurückgeben, die einen Akku von 2500 oder mehr haben.
  • +
  • Die Methode q3 soll die Smart Phones aufsteigend nach Preis zurückgeben, +die den maxPrice nicht überschreiten, einen modernen Anschlusstyp haben +und weniger als 2400 Leistung (CPU Power) haben.
  • +
  • Die Methode q4 soll eine Map zurückgeben. Der Schlüssel soll aus dem +Markennamen und dem Anschlusstyp zusammengesetzt werden. Als Wert soll das +Auto zurückgegeben werden.
  • +
  • Die Methode q5 soll eine Map zurückgeben, welche alle Smart Phones nach +Anschlusstyp gruppiert.
  • +
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/2024/index.html b/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/2024/index.html new file mode 100644 index 0000000000..c9b6bfa827 --- /dev/null +++ b/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/2024/index.html @@ -0,0 +1,112 @@ +2024 | Programmieren mit Java
Zum Hauptinhalt springen

2024

Für die Klausur am PC mit IDE gibt es kein Cheatsheet mehr.

+

Aufgabe 1 - Optional

+

Klassendiagramm

+ +

Hinweise zur Klasse Car

+
    +
  • +

    Die Konstruktoren sollen alle Attribute initialisieren. Verwende die korrekten +Methoden der Optional Klasse, sodass kein Fehler ausgelöst wird, falls eine +Null Referenz für addition übergeben wird.

    +
  • +
  • +

    Die Methode print soll das Objekt auf der Konsole ausgeben. Ist eine +addition vorhanden soll diese berücksichtigt werden, andernfalls soll nur die +Marke und der Name ausgegeben werden.

    +

    Beispiel:

    +
    BMW 320i
    Mercedes-Benz G63 AMG
    +
  • +
+

Erstelle eine ausführbare Klasse in der ein Auto mit der Marke "BMW", dem Modell +"440i" und dem Zusatz "M" initialisiert wird. Gib das Auto in der Konsole aus. +Entferne den Zusatz von dem Auto und gebe das Auto erneut in der Konsole aus.

+

Lösung

+
public class Car {
public String make;
public String model;
public Optional<String> addition;

public Car(String make, String model) {
this.make = make;
this.model = model;
this.addition = Optional.empty();
}

public Car(String make, String model, String addition) {
this.make = make;
this.model = model;
this.addition = Optional.ofNullable(addition);
}

public void print() {
if (addition.isPresent()) {
System.out.println(make + " " + model + " " + addition.get());
} else {
System.out.println(make + " " + model);
}
}
}

public class ExamTask01 {
public static void main(String[] args) {
Car beamer = new Car("BMW", "440i", "M");
beamer.print();
beamer.addition = Optional.empty();
beamer.print();
}
}
+

Aufgabe 2 - Lambdafunktionen

+

Klassendiagramm

+ +

Im Klassendiagramm sind nicht alle Datentypen angegeben. Verwende für alle +fehlenden Datentypen eine adequates funktionales Interface.

+
    +
  • +

    Das Attribut canItRunCrysis soll eine Lambdafunktion enthalten die +ermittelt, ob ein Computer mindestens 4 Kerne und 16 GB RAM hat, damit das +Spiel Crysis ausgeführt werden kann.

    +
  • +
  • +

    Das Attribut doubleRam soll eine Lambdafunktion enthalten, die ein +bestehenden Computer in einen verbesserten Computer umwandelt. Bei der +Umwandlung soll der RAM verdoppelt werden.

    +
  • +
  • +

    Die Methode hasMinimumGhzSum soll eine Lambdafunktion zurückgeben, welche +ermittelt, ob die Gigaherzsumme dem Parameter entspricht. Die Gigaherzsumme +ist das Produkt von CPU Kernen und Gigaherz je Kern.

    +
  • +
  • +

    Die Methode getComputers soll einen Stream von einem einzelnen Computer +mit frei gewählten Werten zurückgeben.

    +
  • +
+

Hinweise zur Klasse ExamTask02

+

Verwende für die nachfolgende Abfolge die Methoden der Klasse Computer.

+

Erzeuge einen Stream von Computern und verdopple den RAM. Verwende einen Filter, +sodass nur Computer übrig bleiben, welche Crysis ausführen können und mindestens +eine Gigaherzsumme von 12 haben.

+

Lösung

+
public record Computer(int cpuCores, double ghzPerCore, int ram) {

public static Predicate<Computer> canItRunCrysis = computer -> computer.cpuCores() >= 4
&& computer.ram() >= 16;

public static Function<Computer, Computer> doubleRam = computer -> new Computer(computer.cpuCores(),
computer.ghzPerCore(), computer.ram() * 2);

public static Predicate<Computer> hasMinimumGhzSum(int ghzSum) {
return c -> c.cpuCores() * c.ghzPerCore() >= ghzSum;
}

public static Stream<Computer> getComputers() {
return Stream.of(new Computer(0, 0, 0));
}

}

public class Task02 {
public static void main(String[] args) {
Computer.getComputers()
.map(Computer.doubleRam)
.filter(Computer.canItRunCrysis)
.filter(Computer.hasMinimumGhzSum(12));
}
}
+

Aufgabe 3 - Streams

+

Klassendiagramm

+ +

Hinweise zur Klasse Professor

+

Jeder Professor kann durch einen Namen, das Alter und eine Liste von +Vorlesungen, welche er hält beschrieben werden.

+

Hinweise zur Klasse Student

+

Jeder Student kann durch einen Namen, das Alter und seine Noten beschrieben +werden. Der Schlüssel entspricht dem Kurs und der Wert der Map der Note die er +in diesem Kurs erreicht hat.

+

Hinweise zur Klasse University

+

Die Universität enthält Professoren (professors) und Studenten (students). +Benutze die Java Stream API, um die Anforderungen des Rektors zu erfüllen.

+
    +
  • +

    q1 Der Rektor möchte wissen, was für eine Durchschnittsnote seine +Studenten haben.

    +

    Die Methode soll die Durchschnittsnote je Student ermitteln.

    +
  • +
  • +

    q2 Der Rektor ist in People & Culture Laune und will seinen 3 ältesten +Mathe-Professoren die Big Bang Theory Blu Ray Sammlung schenken.

    +

    Die Methode soll die drei ältesten Mathe-Professoren ermitteln und für jeden +Professor folgenden Gruß auf der Konsole ausgeben:

    +
    6138 Minuten Bazinga Spaß an dich Steffen.
    +

    Ein Professor gilt als Mathe-Professor, sofern er eine Vorlesung in "Math" +gibt.

    +
  • +
  • +

    q3 Der Rektor leidet unter Kontrollwahn. Er will wissen wie viele +Professoren nur zwei oder weniger Vorlesungen halten und nach Alter +gruppieren. Er glaubt, dass Boomer Professoren wenig machen.

    +

    Die Methode soll ermittlen, wieviele Professoren wenig Vorlesungen halten und +diese nach Alter gruppieren.

    +
  • +
  • +

    q4 Der Rektor leidet immer noch unter Kontrollwahn und möchte eine +abhänging vom Parameter professorName für jeden Professor herausfinden, welche +Studenten seine Vorlesung besucht haben.

    +

    Die Methode soll eine Liste von Listen zurückgeben. Zuerst sollen jene +Professoren ermittelt werden, die dem Parameter professorName entsprechen. +Anschließend soll für jeden Professor eine Liste von Studenten ermittelt +werden, welche seine Vorlesung besucht haben.

    +
  • +
  • +

    q5 Der Rektor leidet nun zusätzlich unter Größenwahn und will seine +Universität in eine Elite Universität umwandeln. Alle Studenten, die eine Note +von 1,5 oder schlechter haben sollen exmatrikuliert werden.

    +

    Die Methode soll alle Studenten ermitteln, welche in irgendeinem Kurs eine +Note von 1,5 oder schlechter haben und deren Namen in Kleinbuchstaben +zurückgeben. Die Liste soll keine doppelten Werte enthalten.

    +
  • +
+

Lösung

+
public record University(List<Professor> professors, List<Student> students) {
public List<Double> q1Long() {
return students().stream()
.map(student -> {
List<Double> grades = student.grades().values().stream().toList();
var averageGrade = grades.stream().mapToDouble(Double::valueOf).average();
if (averageGrade.isPresent()) {
return averageGrade.getAsDouble();
} else {
return 0.0;
}
})
.toList();
}

public List<Double> q1Short() {
return students().stream()
.map(student -> student.grades().values().stream()
.mapToDouble(grade -> grade).average().orElse(0))
.toList();
}

public void q2() {
professors().stream()
.filter(p -> p.courses().stream().anyMatch(c -> c.equalsIgnoreCase("Math")))
.sorted((p1, p2) -> Integer.compare(p2.age(), p1.age()))
.limit(3)
.forEach(p -> System.out.println("6138 Minuten Bazinga Spaß an dich " + p.name() + "."));
}

public Map<Integer, List<Professor>> q3() {
return professors.stream()
.filter(p -> p.courses().size() <= 2)
.collect(Collectors.groupingBy(p -> p.age()));
}

public List<List<Student>> q4(String professorName) {
return professors.stream()
.filter(professor -> professor.name().equals(professorName))
.map(professor -> students.stream()
.filter(student -> student.grades().keySet().stream()
.anyMatch(studentCourses -> professor.courses().stream()
.anyMatch(professorCourses -> studentCourses.equals(professorCourses))))
.toList())
.toList();
}

public List<String> q5() {
return students.stream()
.filter(s -> s.grades().values().stream().anyMatch(grade -> grade >= 1.5))
.map(s -> s.name().toLowerCase())
.distinct().toList();
}

}

public record Professor(String name, int age, List<String> courses) {}

public record Student(String name, int age, Map<String, Double> grades) {}
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/index.html b/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/index.html new file mode 100644 index 0000000000..d454ef6160 --- /dev/null +++ b/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/index.html @@ -0,0 +1 @@ +Klausurvorbereitung | Programmieren mit Java
Zum Hauptinhalt springen
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/steffen/java-2/index.html b/pr-preview/pr-238/additional-material/steffen/java-2/index.html new file mode 100644 index 0000000000..e655a17868 --- /dev/null +++ b/pr-preview/pr-238/additional-material/steffen/java-2/index.html @@ -0,0 +1 @@ +Java 2 | Programmieren mit Java
Zum Hauptinhalt springen
\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/steffen/java-2/project-report/index.html b/pr-preview/pr-238/additional-material/steffen/java-2/project-report/index.html new file mode 100644 index 0000000000..71e79a8ecb --- /dev/null +++ b/pr-preview/pr-238/additional-material/steffen/java-2/project-report/index.html @@ -0,0 +1,58 @@ +Projektbericht | Programmieren mit Java
Zum Hauptinhalt springen

Inhalte

+

Der Projektbericht ist eine fünfseitige Ausarbeitung zu einem Problem, welche +vom Dozenten gestellt wird. Diese besteht aus vier Teilen:

+
    +
  • Einleitung
  • +
  • Vorstellung Sortieralgorithmen und Auswahl
  • +
  • Implementierung der Lösung
  • +
  • Schluss
  • +
+

Problemstellung

+

Die konkrete Problemstellung ist als Kommentar in eurer Abgabe vom +30.04.2024 in Moodle hinterlegt. Sie lässt sich in zwei Teilprobleme +unterteilen. Zuerst müssen Daten aggregiert und anschließend sortiert werden.

+

Für die Implementierung der Aggregation soll die Aggregator Klasse implementiert +werden. Diese soll die Datensätze in eine aggregierte Liste umwandeln. Für die +Sortierung der aggregierten Daten soll die Sorter Klasse implementiert werden. +Die Klasse Row soll alle relevanten Attribute eines Datensatzes +enthalten, welche für die Aggregation benötigt werden. Die Klasse +AggregatedRow soll alle Attribute enthalten, welche eine aggregierte Zeile +eines Datensatzes enthält.

+

Für die Implementierung der Sortierung ist ein Sortieralgorithmus auszuwählen, +welcher in der Vorlesung behandelt wurde. Für die Auswahl gelten nachfolgende +Anforderungen. Die Anzahl der aggregierten Zeilen wird mindestens eine Milliarde +Einträge enthalten. Der ausgewählte Algorithmus soll theoretisch in der Lage +sein, die Sortierung parallel zu verarbeiten.

+

Klassendiagramm

+ +

Hinweis zum Klassendiagramm

+

Die Klassen AggregatedRow und Row enthalten nur beispielhafte Attribute. +Die Attribute müssen abhängig von der Problemstellung definiert werden.

+

Anforderungen an die Implementierung

+

Die Klassen Row und AggregatedRow sollen nur public Attribute enthalten. +Getter und Setter sollen nicht implementiert werden.

+

Die Klassen Aggregator und Sorter können mehrere private Methoden +enthalten, um den Code übersichtlicher zu gestalten.

+

Für die Implementierung, dürfen keine externen Frameworks oder Bibliotheken +verwendet werden.

+

Für die Implementierung darf die Stream API von Java nicht verwendet werden.

+

Für die Implementierung darf keine Sort API von Java verwendet werden, z.B. +Collections.sort.

+

Inhalte des Projektberichts

+

Einleitung

+

Die Einleitung soll die eigene Problemstellung und die vom Dozenten gestellte +Problemstellung enthalten.

+

Vorstellung Sortieralgorithmen

+

Im zweiten Teil sollen die in der Vorlesung behandelten Sortieralgorithmen in +eigenen Worten vorgestellt und verglichen werden. Anschließend soll ein +Sortieralgorithmus ausgewählt werden, welcher für die nachfolgende +Implementierung verwendet wird. Die Auswahlentscheidung soll begründet werden.

+

Implementierung Lösung

+

Im dritten Teil soll die Lösung für die individuelle Problemstellung +implementiert werden. Es sind vier Klassen entsprechend dem oben angegebenen +Klassendiagramm zu implementieren. Der Quellcode in der Dokumentation soll keine +imports und package Definitionen enthalten. Kommentare sind nur sparsam zu +verwenden, falls erklärt wird, warum etwas gemacht wurde.

+

Schluss

+

Der Schluss soll prägnant das Problem, die Vorgehensweise mit +Zwischenergebnissen und das Ergebnis zusammenfassen.

\ No newline at end of file diff --git a/pr-preview/pr-238/additional-material/steffen/java-2/slides/index.html b/pr-preview/pr-238/additional-material/steffen/java-2/slides/index.html new file mode 100644 index 0000000000..2a32e92a82 --- /dev/null +++ b/pr-preview/pr-238/additional-material/steffen/java-2/slides/index.html @@ -0,0 +1,15 @@ +Folien | Programmieren mit Java
Zum Hauptinhalt springen
\ No newline at end of file diff --git a/pr-preview/pr-238/assets/css/styles.e10883d9.css b/pr-preview/pr-238/assets/css/styles.e10883d9.css new file mode 100644 index 0000000000..0e0e3e72bd --- /dev/null +++ b/pr-preview/pr-238/assets/css/styles.e10883d9.css @@ -0,0 +1 @@ +:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:.2s;--ifm-transition-slow:.4s;--ifm-transition-timing-default:cubic-bezier(.08,.52,.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:.1rem;--ifm-code-padding-vertical:.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:.875rem;--ifm-h6-font-size:.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:.8rem;--ifm-breadcrumb-padding-vertical:.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url("data:image/svg+xml;utf8,");--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-color:var(--ifm-font-color-base-inverse);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:.5rem;--ifm-toc-padding-horizontal:.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:.75rem;--ifm-menu-link-padding-vertical:.375rem;--ifm-menu-link-sublist-icon:url("data:image/svg+xml;utf8,");--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:.75rem;--ifm-navbar-item-padding-vertical:.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url("data:image/svg+xml;utf8,");--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base)var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{word-wrap:break-word;margin:0}iframe{color-scheme:normal;border:0}.container{max-width:var(--ifm-container-width);padding:0 var(--ifm-spacing-horizontal);width:100%;margin:0 auto}.container--fluid{max-width:inherit}.row{margin:0 calc(var(--ifm-spacing-horizontal)*-1);flex-wrap:wrap;display:flex}.row--no-gutters{margin-left:0;margin-right:0}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;max-width:var(--ifm-col-width);padding:0 var(--ifm-spacing-horizontal);flex:1 0;width:100%;margin-left:0}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:calc(1/12*100%)}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:calc(2/12*100%)}.col--offset-2{margin-left:16.6667%}.col--3{--ifm-col-width:calc(3/12*100%)}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:calc(4/12*100%)}.col--offset-4{margin-left:33.3333%}.col--5{--ifm-col-width:calc(5/12*100%)}.col--offset-5{margin-left:41.6667%}.col--6{--ifm-col-width:calc(6/12*100%)}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:calc(7/12*100%)}.col--offset-7{margin-left:58.3333%}.col--8{--ifm-col-width:calc(8/12*100%)}.col--offset-8{margin-left:66.6667%}.col--9{--ifm-col-width:calc(9/12*100%)}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:calc(10/12*100%)}.col--offset-10{margin-left:83.3333%}.col--11{--ifm-col-width:calc(11/12*100%)}.col--offset-11{margin-left:91.6667%}.col--12{--ifm-col-width:calc(12/12*100%)}.col--offset-12{margin-left:100%}.margin--none{margin:0!important}.margin-top--none{margin-top:0!important}.margin-left--none{margin-left:0!important}.margin-bottom--none{margin-bottom:0!important}.margin-right--none{margin-right:0!important}.margin-vert--none{margin-top:0!important;margin-bottom:0!important}.margin-horiz--none{margin-left:0!important;margin-right:0!important}.margin--xs{margin:.25rem!important}.margin-top--xs{margin-top:.25rem!important}.margin-left--xs{margin-left:.25rem!important}.margin-bottom--xs{margin-bottom:.25rem!important}.margin-right--xs{margin-right:.25rem!important}.margin-vert--xs{margin-top:.25rem!important;margin-bottom:.25rem!important}.margin-horiz--xs{margin-left:.25rem!important;margin-right:.25rem!important}.margin--sm{margin:.5rem!important}.margin-top--sm{margin-top:.5rem!important}.margin-left--sm{margin-left:.5rem!important}.margin-bottom--sm{margin-bottom:.5rem!important}.margin-right--sm{margin-right:.5rem!important}.margin-vert--sm{margin-top:.5rem!important;margin-bottom:.5rem!important}.margin-horiz--sm{margin-left:.5rem!important;margin-right:.5rem!important}.margin--md{margin:1rem!important}.margin-top--md{margin-top:1rem!important}.margin-left--md{margin-left:1rem!important}.margin-bottom--md{margin-bottom:1rem!important}.margin-right--md{margin-right:1rem!important}.margin-vert--md{margin-top:1rem!important;margin-bottom:1rem!important}.margin-horiz--md{margin-left:1rem!important;margin-right:1rem!important}.margin--lg{margin:2rem!important}.margin-top--lg{margin-top:2rem!important}.margin-left--lg{margin-left:2rem!important}.margin-bottom--lg{margin-bottom:2rem!important}.margin-right--lg{margin-right:2rem!important}.margin-vert--lg{margin-top:2rem!important;margin-bottom:2rem!important}.margin-horiz--lg{margin-left:2rem!important;margin-right:2rem!important}.margin--xl{margin:5rem!important}.margin-top--xl{margin-top:5rem!important}.margin-left--xl{margin-left:5rem!important}.margin-bottom--xl{margin-bottom:5rem!important}.margin-right--xl{margin-right:5rem!important}.margin-vert--xl{margin-top:5rem!important;margin-bottom:5rem!important}.margin-horiz--xl{margin-left:5rem!important;margin-right:5rem!important}.padding--none{padding:0!important}.padding-top--none{padding-top:0!important}.padding-left--none{padding-left:0!important}.padding-bottom--none{padding-bottom:0!important}.padding-right--none{padding-right:0!important}.padding-vert--none{padding-top:0!important;padding-bottom:0!important}.padding-horiz--none{padding-left:0!important;padding-right:0!important}.padding--xs{padding:.25rem!important}.padding-top--xs{padding-top:.25rem!important}.padding-left--xs{padding-left:.25rem!important}.padding-bottom--xs{padding-bottom:.25rem!important}.padding-right--xs{padding-right:.25rem!important}.padding-vert--xs{padding-top:.25rem!important;padding-bottom:.25rem!important}.padding-horiz--xs{padding-left:.25rem!important;padding-right:.25rem!important}.padding--sm{padding:.5rem!important}.padding-top--sm{padding-top:.5rem!important}.padding-left--sm{padding-left:.5rem!important}.padding-bottom--sm{padding-bottom:.5rem!important}.padding-right--sm{padding-right:.5rem!important}.padding-vert--sm{padding-top:.5rem!important;padding-bottom:.5rem!important}.padding-horiz--sm{padding-left:.5rem!important;padding-right:.5rem!important}.padding--md{padding:1rem!important}.padding-top--md{padding-top:1rem!important}.padding-left--md{padding-left:1rem!important}.padding-bottom--md{padding-bottom:1rem!important}.padding-right--md{padding-right:1rem!important}.padding-vert--md{padding-top:1rem!important;padding-bottom:1rem!important}.padding-horiz--md{padding-left:1rem!important;padding-right:1rem!important}.padding--lg{padding:2rem!important}.padding-top--lg{padding-top:2rem!important}.padding-left--lg{padding-left:2rem!important}.padding-bottom--lg{padding-bottom:2rem!important}.padding-right--lg{padding-right:2rem!important}.padding-vert--lg{padding-top:2rem!important;padding-bottom:2rem!important}.padding-horiz--lg{padding-left:2rem!important;padding-right:2rem!important}.padding--xl{padding:5rem!important}.padding-top--xl{padding-top:5rem!important}.padding-left--xl{padding-left:5rem!important}.padding-bottom--xl{padding-bottom:5rem!important}.padding-right--xl{padding-right:5rem!important}.padding-vert--xl{padding-top:5rem!important;padding-bottom:5rem!important}.padding-horiz--xl{padding-left:5rem!important;padding-right:5rem!important}code{background-color:var(--ifm-code-background);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical)var(--ifm-code-padding-horizontal);vertical-align:middle;border:.1rem solid rgba(0,0,0,.1)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height)var(--ifm-font-family-monospace);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-pre-padding);overflow:auto}pre code{font-size:100%;line-height:inherit;background-color:transparent;border:none;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);border-radius:.2rem;padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top)0 var(--ifm-heading-margin-bottom)0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:before{content:"";display:table}.markdown:after{clear:both;content:"";display:table}.markdown>:last-child{margin-bottom:0!important}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>pre,.markdown>ul,.markdown>p{margin-bottom:var(--ifm-leading)}.markdown li{word-wrap:break-word}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ul,ol{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ul ul,ul ol,ol ol,ol ul{margin:0}ul ul ol,ul ol ol,ol ul ol,ol ol ol{list-style-type:lower-alpha}table{border-collapse:collapse;margin-bottom:var(--ifm-spacing-vertical);display:block;overflow:auto}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead{background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width)solid var(--ifm-table-border-color)}table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table th,table td{border:var(--ifm-table-border-width)solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default)}a:hover{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width)solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-blockquote-padding-vertical)var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical)0;border:0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text--break{word-wrap:break-word!important;word-break:break-word!important}.text--no-decoration,.text--no-decoration:hover{-webkit-text-decoration:none;text-decoration:none}.clean-btn{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.clean-list{padding-left:0;list-style:none}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width)solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);color:var(--ifm-alert-foreground-color);padding:var(--ifm-alert-padding-vertical)var(--ifm-alert-padding-horizontal)}.alert__heading{font:bold var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase;align-items:center;margin-bottom:.5rem;display:flex}.alert__icon{margin-right:.4em;display:inline-flex}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{color:var(--ifm-alert-foreground-color);margin:calc(var(--ifm-alert-padding-vertical)*-1)calc(var(--ifm-alert-padding-horizontal)*-1)0 0;opacity:.75}.alert .close:hover,.alert .close:focus{opacity:1}.alert a{-webkit-text-decoration-color:var(--ifm-alert-border-color);text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{height:var(--ifm-avatar-photo-size);width:var(--ifm-avatar-photo-size);border-radius:50%;display:block;overflow:hidden}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{text-align:var(--ifm-avatar-intro-alignment);flex-direction:column;flex:1;justify-content:center;display:flex}.avatar__name{font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:.5rem;flex-direction:column;align-items:center}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width)solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);padding:var(--ifm-badge-padding-vertical)var(--ifm-badge-padding-horizontal);line-height:1;display:inline-block}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);--ifm-badge-border-color:var(--ifm-badge-background-color);color:var(--ifm-color-black)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger);--ifm-badge-border-color:var(--ifm-badge-background-color)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item{display:inline-block}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator)center;content:" ";filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));display:inline-block}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);color:var(--ifm-font-color-base);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier))calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-property:background,color;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);display:inline-block}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width)solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);color:var(--ifm-button-color);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier))calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;transition-property:color,background,border-color;transition-duration:var(--ifm-button-transition-duration);transition-timing-function:var(--ifm-transition-timing-default);line-height:1.5;display:inline-block}.button:hover{color:var(--ifm-button-color);-webkit-text-decoration:none;text-decoration:none}.button--outline{--ifm-button-background-color:transparent;--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--outline:hover,.button--outline:active,.button--outline.button--active{--ifm-button-color:var(--ifm-font-color-base-inverse)}.button--link{--ifm-button-background-color:transparent;--ifm-button-border-color:transparent;color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration)}.button--link:hover,.button--link:active,.button--link.button--active{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{width:100%;display:block}.button.button--secondary{color:var(--ifm-color-gray-900)}.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary:active,.button--primary.button--active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary:active,.button--secondary.button--active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success:active,.button--success.button--active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info:active,.button--info.button--active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning:active,.button--warning.button--active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger:active,.button--danger.button--active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{gap:var(--ifm-button-group-spacing);display:inline-flex}.button-group>.button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.button-group>.button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.button-group--block{justify-content:stretch;display:flex}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);flex-direction:column;display:flex;overflow:hidden}.card--full-height{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__header,.card__body,.card__footer{padding:var(--ifm-card-vertical-spacing)var(--ifm-card-horizontal-spacing)}.card__header:not(:last-child),.card__body:not(:last-child),.card__footer:not(:last-child){padding-bottom:0}.card__header>:last-child,.card__body>:last-child,.card__footer>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{padding:var(--ifm-toc-padding-vertical)0;margin-bottom:0;font-size:.8rem}.table-of-contents,.table-of-contents ul{padding-left:var(--ifm-toc-padding-horizontal);list-style:none}.table-of-contents li{margin:var(--ifm-toc-padding-vertical)var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link:hover,.table-of-contents__link:hover code,.table-of-contents__link--active,.table-of-contents__link--active code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default);padding:1rem;line-height:1}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{font-weight:var(--ifm-dropdown-font-weight);vertical-align:top;display:inline-flex;position:relative}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;visibility:visible;transform:translateY(-1px)}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);opacity:0;pointer-events:none;min-width:10rem;max-height:80vh;left:0;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);visibility:hidden;z-index:var(--ifm-z-index-dropdown);transition-property:opacity,transform,visibility;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);padding:.5rem;list-style:none;position:absolute;overflow-y:auto;transform:translateY(-.625rem)}.dropdown__link{color:var(--ifm-dropdown-link-color);white-space:nowrap;border-radius:.25rem;margin-top:.2rem;padding:.25rem .5rem;font-size:.875rem;display:block}.dropdown__link:hover,.dropdown__link--active{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);-webkit-text-decoration:none;text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{content:"";border:.4em solid transparent;border-top-color:currentColor;border-bottom:0 solid;margin-left:.3em;display:inline-block;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical)var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{max-width:var(--ifm-footer-logo-max-width);margin-top:1rem}.footer__title{color:var(--ifm-footer-title-color);font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.footer__item{margin-top:0}.footer__items{margin-bottom:0}[type=checkbox]{padding:0}.hero{background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);align-items:center;padding:4rem 2rem;display:flex}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu{font-weight:var(--ifm-font-weight-semibold);overflow-x:hidden}.menu__list{margin:0;padding-left:0;list-style:none}.menu__list .menu__list{padding-left:var(--ifm-menu-link-padding-horizontal);flex:0 0 100%;margin-top:.25rem}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.menu__list-item--collapsed .menu__link--sublist:after,.menu__list-item--collapsed .menu__caret:before{transform:rotate(90deg)}.menu__list-item-collapsible{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;flex-wrap:wrap;display:flex;position:relative}.menu__list-item-collapsible:hover,.menu__list-item-collapsible--active{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link:hover,.menu__list-item-collapsible .menu__link--active{background:0 0!important}.menu__link,.menu__caret{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;align-items:center;display:flex}.menu__link:hover,.menu__caret:hover{background:var(--ifm-menu-color-background-hover)}.menu__link{color:var(--ifm-menu-color);padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default);-webkit-text-decoration:none;text-decoration:none}.menu__link--sublist-caret:after{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;min-width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;margin-left:auto;transform:rotate(180deg)}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu__caret:before{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;transform:rotate(180deg)}html[data-theme=dark],.navbar--dark{--ifm-menu-link-sublist-icon-filter:invert(100%)sepia(94%)saturate(17%)hue-rotate(223deg)brightness(104%)contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);display:flex}.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{z-index:var(--ifm-z-index-fixed);position:sticky;top:0}.navbar__inner{flex-wrap:wrap;justify-content:space-between;width:100%;display:flex}.navbar__brand{color:var(--ifm-navbar-link-color);align-items:center;min-width:0;margin-right:1rem;display:flex}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar__title{flex:auto}.navbar__toggle{margin-right:.5rem;display:none}.navbar__logo{flex:none;height:2rem;margin-right:.5rem}.navbar__logo img{height:100%}.navbar__items{flex:1;align-items:center;min-width:0;display:flex}.navbar__items--center{flex:none}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:none;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{padding:var(--ifm-navbar-item-padding-vertical)var(--ifm-navbar-item-padding-horizontal);display:inline-block}.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link{color:var(--ifm-navbar-link-color);font-weight:var(--ifm-font-weight-semibold)}.navbar__link:hover,.navbar__link--active{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:rgba(255,255,255,.1);--ifm-navbar-search-input-placeholder-color:rgba(255,255,255,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-menu-color-background-active:rgba(255,255,255,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color)var(--ifm-navbar-search-input-icon)no-repeat .75rem center/1rem 1rem;color:var(--ifm-navbar-search-input-color);cursor:text;border:none;border-radius:2rem;width:12.5rem;height:2rem;padding:0 .5rem 0 2.25rem;font-size:1rem;display:inline-block}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);opacity:0;visibility:hidden;width:var(--ifm-navbar-sidebar-width);transition-property:opacity,visibility,transform;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;transform:translate(-100%)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar--show .navbar-sidebar{transform:translate(0,0)}.navbar-sidebar__backdrop{opacity:0;visibility:hidden;transition-property:opacity,visibility;transition-duration:var(--ifm-transition-fast);background-color:rgba(0,0,0,.6);transition-timing-function:ease-in-out;position:fixed;inset:0}.navbar-sidebar__brand{box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);flex:1;align-items:center;display:flex}.navbar-sidebar__items{height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast)ease-in-out;display:flex;transform:translateZ(0)}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{width:calc(var(--ifm-navbar-sidebar-width));flex-shrink:0;padding:.5rem}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);text-align:left;width:calc(100% + 1rem);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;top:-.5rem}.navbar-sidebar__close{margin-left:auto;display:flex}.pagination{column-gap:var(--ifm-pagination-page-spacing);font-size:var(--ifm-pagination-font-size);padding-left:0;display:flex}.pagination--sm{--ifm-pagination-font-size:.8rem;--ifm-pagination-padding-horizontal:.8rem;--ifm-pagination-padding-vertical:.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{background:var(--ifm-pagination-item-active-background);color:var(--ifm-pagination-color-active)}.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);padding:var(--ifm-pagination-padding-vertical)var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:inline-block}.pagination__link:hover{-webkit-text-decoration:none;text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr);display:grid}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:block}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);-webkit-text-decoration:none;text-decoration:none}.pagination-nav__link--next{text-align:right;grid-column:2/3}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills{gap:var(--ifm-pills-spacing);padding-left:0;display:flex}.pills__item{cursor:pointer;font-weight:var(--ifm-font-weight-bold);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.5rem;padding:.25rem 1rem;display:inline-block}.pills__item--active{background:var(--ifm-pills-color-background-active);color:var(--ifm-pills-color-active)}.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{text-align:center;flex-grow:1}.tabs{color:var(--ifm-tabs-color);font-weight:var(--ifm-font-weight-bold);margin-bottom:0;padding-left:0;display:flex;overflow-x:auto}.tabs__item{border-radius:var(--ifm-global-radius);cursor:pointer;padding:var(--ifm-tabs-padding-vertical)var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-bottom:3px solid transparent;display:inline-flex}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);color:var(--ifm-tabs-color-active);border-bottom-right-radius:0;border-bottom-left-radius:0}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:rgba(255,255,255,.05);--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%)sepia(11%)saturate(0%)hue-rotate(149deg)brightness(99%)contrast(95%);--ifm-code-background:rgba(255,255,255,.1);--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:rgba(255,255,255,.07);--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.footer__link-separator{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{width:max-content;display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__item{display:none}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0s;--ifm-transition-slow:0s}}@media print{.table-of-contents,.footer,.menu,.navbar,.pagination-nav{display:none}.tabs{page-break-inside:avoid}}:root{--docusaurus-progress-bar-color:var(--ifm-color-primary)}#nprogress{pointer-events:none}#nprogress .bar{background:var(--docusaurus-progress-bar-color);z-index:1031;width:100%;height:2px;position:fixed;top:0;left:0}#nprogress .peg{width:100px;height:100%;box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);opacity:1;position:absolute;right:0;transform:rotate(3deg)translateY(-4px)}.reveal .r-stretch,.reveal .stretch{max-width:none;max-height:none}.reveal pre.r-stretch code,.reveal pre.stretch code{box-sizing:border-box;height:100%;max-height:100%}.reveal .r-fit-text{white-space:nowrap;display:inline-block}.reveal .r-stack{grid-template-rows:100%;display:grid}.reveal .r-stack>*{grid-area:1/1;margin:auto}.reveal .r-hstack,.reveal .r-vstack{display:flex}.reveal .r-hstack img,.reveal .r-hstack video,.reveal .r-vstack img,.reveal .r-vstack video{object-fit:contain;min-width:0;min-height:0}.reveal .r-vstack{flex-direction:column;justify-content:center;align-items:center}.reveal .r-hstack{flex-direction:row;justify-content:center;align-items:center}.reveal .items-stretch{align-items:stretch}.reveal .items-start{align-items:flex-start}.reveal .items-center{align-items:center}.reveal .items-end{align-items:flex-end}.reveal .justify-between{justify-content:space-between}.reveal .justify-around{justify-content:space-around}.reveal .justify-start{justify-content:flex-start}.reveal .justify-center{justify-content:center}.reveal .justify-end{justify-content:flex-end}html.reveal-full-page{width:100%;height:100vh;height:calc(var(--vh,1vh)*100);height:100svh;overflow:hidden}.reveal-viewport{color:#000;--r-controls-spacing:12px;background-color:#fff;height:100%;margin:0;line-height:1;position:relative;overflow:hidden}.reveal-viewport:fullscreen{width:100%!important;height:100%!important;top:0!important;left:0!important;transform:none!important}.reveal .fragment{transition:all .2s}.reveal .fragment:not(.custom){opacity:0;visibility:hidden;will-change:opacity}.reveal .fragment.visible{opacity:1;visibility:inherit}.reveal .fragment.disabled{transition:none}.reveal .fragment.grow{opacity:1;visibility:inherit}.reveal .fragment.grow.visible{transform:scale(1.3)}.reveal .fragment.shrink{opacity:1;visibility:inherit}.reveal .fragment.shrink.visible{transform:scale(.7)}.reveal .fragment.zoom-in{transform:scale(.1)}.reveal .fragment.zoom-in.visible{transform:none}.reveal .fragment.fade-out{opacity:1;visibility:inherit}.reveal .fragment.fade-out.visible{opacity:0;visibility:hidden}.reveal .fragment.semi-fade-out{opacity:1;visibility:inherit}.reveal .fragment.semi-fade-out.visible{opacity:.5;visibility:inherit}.reveal .fragment.strike{opacity:1;visibility:inherit}.reveal .fragment.strike.visible{-webkit-text-decoration:line-through;text-decoration:line-through}.reveal .fragment.fade-up{transform:translateY(40px)}.reveal .fragment.fade-up.visible{transform:translate(0)}.reveal .fragment.fade-down{transform:translateY(-40px)}.reveal .fragment.fade-down.visible{transform:translate(0)}.reveal .fragment.fade-right{transform:translate(-40px)}.reveal .fragment.fade-right.visible{transform:translate(0)}.reveal .fragment.fade-left{transform:translate(40px)}.reveal .fragment.fade-left.visible{transform:translate(0)}.reveal .fragment.current-visible,.reveal .fragment.fade-in-then-out{opacity:0;visibility:hidden}.reveal .fragment.current-visible.current-fragment,.reveal .fragment.fade-in-then-out.current-fragment{opacity:1;visibility:inherit}.reveal .fragment.fade-in-then-semi-out{opacity:0;visibility:hidden}.reveal .fragment.fade-in-then-semi-out.visible{opacity:.5;visibility:inherit}.reveal .fragment.fade-in-then-semi-out.current-fragment,.reveal .fragment.highlight-blue,.reveal .fragment.highlight-current-blue,.reveal .fragment.highlight-current-green,.reveal .fragment.highlight-current-red,.reveal .fragment.highlight-green,.reveal .fragment.highlight-red{opacity:1;visibility:inherit}.reveal .fragment.highlight-red.visible{color:#ff2c2d}.reveal .fragment.highlight-green.visible{color:#17ff2e}.reveal .fragment.highlight-blue.visible{color:#1b91ff}.reveal .fragment.highlight-current-red.current-fragment{color:#ff2c2d}.reveal .fragment.highlight-current-green.current-fragment{color:#17ff2e}.reveal .fragment.highlight-current-blue.current-fragment{color:#1b91ff}.reveal:after{content:"";font-style:italic}.reveal iframe{z-index:1}.reveal a{position:relative}@keyframes bounce-right{0%,10%,25%,40%,50%{transform:translate(0)}20%{transform:translate(10px)}30%{transform:translate(-5px)}}@keyframes bounce-left{0%,10%,25%,40%,50%{transform:translate(0)}20%{transform:translate(-10px)}30%{transform:translate(5px)}}@keyframes bounce-down{0%,10%,25%,40%,50%{transform:translateY(0)}20%{transform:translateY(10px)}30%{transform:translateY(-5px)}}.reveal .controls{top:auto;bottom:var(--r-controls-spacing);right:var(--r-controls-spacing);z-index:11;color:#000;pointer-events:none;font-size:10px;display:none;position:absolute;left:auto}.reveal .controls button{cursor:pointer;color:currentColor;z-index:2;pointer-events:auto;font-size:inherit;visibility:hidden;opacity:0;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;background-color:transparent;border:0;outline:0;padding:0;transition:color .2s,opacity .2s,transform .2s;position:absolute;transform:scale(.9999)}.reveal .controls .controls-arrow:after,.reveal .controls .controls-arrow:before{content:"";transform-origin:.2em;will-change:transform;background-color:currentColor;border-radius:.25em;width:2.6em;height:.5em;transition:all .15s,background-color .8s;position:absolute;top:0;left:0}.reveal .controls .controls-arrow{width:3.6em;height:3.6em;position:relative}.reveal .controls .controls-arrow:before{transform:translate(.5em)translateY(1.55em)rotate(45deg)}.reveal .controls .controls-arrow:after{transform:translate(.5em)translateY(1.55em)rotate(-45deg)}.reveal .controls .controls-arrow:hover:before{transform:translate(.5em)translateY(1.55em)rotate(40deg)}.reveal .controls .controls-arrow:hover:after{transform:translate(.5em)translateY(1.55em)rotate(-40deg)}.reveal .controls .controls-arrow:active:before{transform:translate(.5em)translateY(1.55em)rotate(36deg)}.reveal .controls .controls-arrow:active:after{transform:translate(.5em)translateY(1.55em)rotate(-36deg)}.reveal .controls .navigate-left{bottom:3.2em;right:6.4em;transform:translate(-10px)}.reveal .controls .navigate-left.highlight{animation:2s ease-out 50 both bounce-left}.reveal .controls .navigate-right{bottom:3.2em;right:0;transform:translate(10px)}.reveal .controls .navigate-right .controls-arrow{transform:rotate(180deg)}.reveal .controls .navigate-right.highlight{animation:2s ease-out 50 both bounce-right}.reveal .controls .navigate-up{bottom:6.4em;right:3.2em;transform:translateY(-10px)}.reveal .controls .navigate-up .controls-arrow{transform:rotate(90deg)}.reveal .controls .navigate-down{padding-bottom:1.4em;bottom:-1.4em;right:3.2em;transform:translateY(10px)}.reveal .controls .navigate-down .controls-arrow{transform:rotate(-90deg)}.reveal .controls .navigate-down.highlight{animation:2s ease-out 50 both bounce-down}.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled{opacity:.3}.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled:hover{opacity:1}.reveal .controls[data-controls-back-arrows=hidden] .navigate-up.enabled{opacity:0;visibility:hidden}.reveal .controls .enabled{visibility:visible;opacity:.9;cursor:pointer;transform:none}.reveal .controls .enabled.fragmented{opacity:.5}.reveal .controls .enabled.fragmented:hover,.reveal .controls .enabled:hover{opacity:1}.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled{opacity:.3}.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled:hover{opacity:1}.reveal:not(.rtl) .controls[data-controls-back-arrows=hidden] .navigate-left.enabled{opacity:0;visibility:hidden}.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled{opacity:.3}.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled:hover{opacity:1}.reveal.rtl .controls[data-controls-back-arrows=hidden] .navigate-right.enabled{opacity:0;visibility:hidden}.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-down,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-up{display:none}.reveal:not(.has-vertical-slides) .controls .navigate-left,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-left{bottom:1.4em;right:5.5em}.reveal:not(.has-vertical-slides) .controls .navigate-right,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-right{bottom:1.4em;right:.5em}.reveal:not(.has-horizontal-slides) .controls .navigate-up{bottom:5em;right:1.4em}.reveal:not(.has-horizontal-slides) .controls .navigate-down{bottom:.5em;right:1.4em}.reveal.has-dark-background .controls{color:#fff}.reveal.has-light-background .controls{color:#000}.reveal.no-hover .controls .controls-arrow:active:before,.reveal.no-hover .controls .controls-arrow:hover:before{transform:translate(.5em)translateY(1.55em)rotate(45deg)}.reveal.no-hover .controls .controls-arrow:active:after,.reveal.no-hover .controls .controls-arrow:hover:after{transform:translate(.5em)translateY(1.55em)rotate(-45deg)}@media screen and (min-width:500px){.reveal-viewport{--r-controls-spacing:.8em}.reveal .controls[data-controls-layout=edges]{inset:0}.reveal .controls[data-controls-layout=edges] .navigate-down,.reveal .controls[data-controls-layout=edges] .navigate-left,.reveal .controls[data-controls-layout=edges] .navigate-right,.reveal .controls[data-controls-layout=edges] .navigate-up{bottom:auto;right:auto}.reveal .controls[data-controls-layout=edges] .navigate-left{top:50%;left:var(--r-controls-spacing);margin-top:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-right{top:50%;right:var(--r-controls-spacing);margin-top:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-up{top:var(--r-controls-spacing);margin-left:-1.8em;left:50%}.reveal .controls[data-controls-layout=edges] .navigate-down{bottom:calc(var(--r-controls-spacing) - 1.4em + .3em);margin-left:-1.8em;left:50%}}.reveal .progress{z-index:10;color:#fff;background-color:rgba(0,0,0,.2);width:100%;height:3px;display:none;position:absolute;bottom:0;left:0}.reveal .progress:after{content:"";width:100%;height:10px;display:block;position:absolute;top:-10px}.reveal .progress span{transform-origin:0 0;background-color:currentColor;width:100%;height:100%;transition:transform .8s cubic-bezier(.26,.86,.44,.985);display:block;transform:scaleX(0)}.reveal .slide-number{z-index:31;color:#fff;background-color:rgba(0,0,0,.4);padding:5px;font-family:Helvetica,sans-serif;font-size:12px;line-height:1;display:block;position:absolute;bottom:8px;right:8px}.reveal .slide-number a{color:currentColor}.reveal .slide-number-delimiter{margin:0 3px}.reveal{touch-action:pinch-zoom;width:100%;height:100%;position:relative;overflow:hidden}.reveal.embedded{touch-action:pan-y}.reveal.embedded.is-vertical-slide{touch-action:none}.reveal .slides{pointer-events:none;z-index:1;text-align:center;perspective:600px;perspective-origin:50% 40%;width:100%;height:100%;margin:auto;position:absolute;inset:0;overflow:visible}.reveal .slides>section{perspective:600px}.reveal .slides>section,.reveal .slides>section>section{pointer-events:auto;z-index:10;transform-style:flat;width:100%;transition:transform-origin .8s cubic-bezier(.26,.86,.44,.985),transform .8s cubic-bezier(.26,.86,.44,.985),visibility .8s cubic-bezier(.26,.86,.44,.985),opacity .8s cubic-bezier(.26,.86,.44,.985);display:none;position:absolute}.reveal[data-transition-speed=fast] .slides section{transition-duration:.4s}.reveal[data-transition-speed=slow] .slides section{transition-duration:1.2s}.reveal .slides section[data-transition-speed=fast]{transition-duration:.4s}.reveal .slides section[data-transition-speed=slow]{transition-duration:1.2s}.reveal .slides>section.stack{pointer-events:none;height:100%;padding-top:0;padding-bottom:0}.reveal .slides>section.present,.reveal .slides>section>section.present{z-index:11;opacity:1;display:block}.reveal .slides>section:empty,.reveal .slides>section>section:empty,.reveal .slides>section>section[data-background-interactive],.reveal .slides>section[data-background-interactive]{pointer-events:none}.reveal.center,.reveal.center .slides,.reveal.center .slides section{min-height:0!important}.reveal .slides>section:not(.present),.reveal .slides>section>section:not(.present){pointer-events:none}.reveal.overview .slides>section,.reveal.overview .slides>section>section{pointer-events:auto}.reveal .slides>section.future,.reveal .slides>section.future>section,.reveal .slides>section.past,.reveal .slides>section.past>section,.reveal .slides>section>section.future,.reveal .slides>section>section.past{opacity:0}.reveal .slides>section[data-transition=slide].past,.reveal .slides>section[data-transition~=slide-out].past,.reveal.slide .slides>section:not([data-transition]).past{transform:translate(-150%)}.reveal .slides>section[data-transition=slide].future,.reveal .slides>section[data-transition~=slide-in].future,.reveal.slide .slides>section:not([data-transition]).future{transform:translate(150%)}.reveal .slides>section>section[data-transition=slide].past,.reveal .slides>section>section[data-transition~=slide-out].past,.reveal.slide .slides>section>section:not([data-transition]).past{transform:translateY(-150%)}.reveal .slides>section>section[data-transition=slide].future,.reveal .slides>section>section[data-transition~=slide-in].future,.reveal.slide .slides>section>section:not([data-transition]).future{transform:translateY(150%)}.reveal .slides>section[data-transition=linear].past,.reveal .slides>section[data-transition~=linear-out].past,.reveal.linear .slides>section:not([data-transition]).past{transform:translate(-150%)}.reveal .slides>section[data-transition=linear].future,.reveal .slides>section[data-transition~=linear-in].future,.reveal.linear .slides>section:not([data-transition]).future{transform:translate(150%)}.reveal .slides>section>section[data-transition=linear].past,.reveal .slides>section>section[data-transition~=linear-out].past,.reveal.linear .slides>section>section:not([data-transition]).past{transform:translateY(-150%)}.reveal .slides>section>section[data-transition=linear].future,.reveal .slides>section>section[data-transition~=linear-in].future,.reveal.linear .slides>section>section:not([data-transition]).future{transform:translateY(150%)}.reveal .slides section[data-transition=default].stack,.reveal.default .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=default].past,.reveal .slides>section[data-transition~=default-out].past,.reveal.default .slides>section:not([data-transition]).past{transform:translate(-100%)rotateY(-90deg)translate(-100%)}.reveal .slides>section[data-transition=default].future,.reveal .slides>section[data-transition~=default-in].future,.reveal.default .slides>section:not([data-transition]).future{transform:translate(100%)rotateY(90deg)translate(100%)}.reveal .slides>section>section[data-transition=default].past,.reveal .slides>section>section[data-transition~=default-out].past,.reveal.default .slides>section>section:not([data-transition]).past{transform:translateY(-300px)rotateX(70deg)translateY(-300px)}.reveal .slides>section>section[data-transition=default].future,.reveal .slides>section>section[data-transition~=default-in].future,.reveal.default .slides>section>section:not([data-transition]).future{transform:translateY(300px)rotateX(-70deg)translateY(300px)}.reveal .slides section[data-transition=convex].stack,.reveal.convex .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=convex].past,.reveal .slides>section[data-transition~=convex-out].past,.reveal.convex .slides>section:not([data-transition]).past{transform:translate(-100%)rotateY(-90deg)translate(-100%)}.reveal .slides>section[data-transition=convex].future,.reveal .slides>section[data-transition~=convex-in].future,.reveal.convex .slides>section:not([data-transition]).future{transform:translate(100%)rotateY(90deg)translate(100%)}.reveal .slides>section>section[data-transition=convex].past,.reveal .slides>section>section[data-transition~=convex-out].past,.reveal.convex .slides>section>section:not([data-transition]).past{transform:translateY(-300px)rotateX(70deg)translateY(-300px)}.reveal .slides>section>section[data-transition=convex].future,.reveal .slides>section>section[data-transition~=convex-in].future,.reveal.convex .slides>section>section:not([data-transition]).future{transform:translateY(300px)rotateX(-70deg)translateY(300px)}.reveal .slides section[data-transition=concave].stack,.reveal.concave .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=concave].past,.reveal .slides>section[data-transition~=concave-out].past,.reveal.concave .slides>section:not([data-transition]).past{transform:translate(-100%)rotateY(90deg)translate(-100%)}.reveal .slides>section[data-transition=concave].future,.reveal .slides>section[data-transition~=concave-in].future,.reveal.concave .slides>section:not([data-transition]).future{transform:translate(100%)rotateY(-90deg)translate(100%)}.reveal .slides>section>section[data-transition=concave].past,.reveal .slides>section>section[data-transition~=concave-out].past,.reveal.concave .slides>section>section:not([data-transition]).past{transform:translateY(-80%)rotateX(-70deg)translateY(-80%)}.reveal .slides>section>section[data-transition=concave].future,.reveal .slides>section>section[data-transition~=concave-in].future,.reveal.concave .slides>section>section:not([data-transition]).future{transform:translateY(80%)rotateX(70deg)translateY(80%)}.reveal .slides section[data-transition=zoom],.reveal.zoom .slides section:not([data-transition]){transition-timing-function:ease}.reveal .slides>section[data-transition=zoom].past,.reveal .slides>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section:not([data-transition]).past{visibility:hidden;transform:scale(16)}.reveal .slides>section[data-transition=zoom].future,.reveal .slides>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section:not([data-transition]).future{visibility:hidden;transform:scale(.2)}.reveal .slides>section>section[data-transition=zoom].past,.reveal .slides>section>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section>section:not([data-transition]).past{transform:scale(16)}.reveal .slides>section>section[data-transition=zoom].future,.reveal .slides>section>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section>section:not([data-transition]).future{transform:scale(.2)}.reveal.cube .slides{perspective:1300px}.reveal.cube .slides section{backface-visibility:hidden;box-sizing:border-box;min-height:700px;transform-style:preserve-3d;padding:30px}.reveal.center.cube .slides section{min-height:0}.reveal.cube .slides section:not(.stack):before{content:"";background:rgba(0,0,0,.1);border-radius:4px;width:100%;height:100%;display:block;position:absolute;top:0;left:0;transform:translateZ(-20px)}.reveal.cube .slides section:not(.stack):after{content:"";z-index:1;background:0 0;border-radius:4px;width:90%;height:30px;display:block;position:absolute;bottom:0;left:5%;transform:translateZ(-90px)rotateX(65deg);box-shadow:0 95px 25px rgba(0,0,0,.2)}.reveal.cube .slides>section.stack{background:0 0;padding:0}.reveal.cube .slides>section.past{transform-origin:100% 0;transform:translate(-100%)rotateY(-90deg)}.reveal.cube .slides>section.future{transform-origin:0 0;transform:translate(100%)rotateY(90deg)}.reveal.cube .slides>section>section.past{transform-origin:0 100%;transform:translateY(-100%)rotateX(90deg)}.reveal.cube .slides>section>section.future{transform-origin:0 0;transform:translateY(100%)rotateX(-90deg)}.reveal.page .slides{perspective-origin:0;perspective:3000px}.reveal.page .slides section{box-sizing:border-box;min-height:700px;transform-style:preserve-3d;padding:30px}.reveal.page .slides section.past{z-index:12}.reveal.page .slides section:not(.stack):before{content:"";background:rgba(0,0,0,.1);width:100%;height:100%;display:block;position:absolute;top:0;left:0;transform:translateZ(-20px)}.reveal.page .slides section:not(.stack):after{content:"";z-index:1;background:0 0;border-radius:4px;width:90%;height:30px;display:block;position:absolute;bottom:0;left:5%;-webkit-transform:translateZ(-90px)rotateX(65deg);box-shadow:0 95px 25px rgba(0,0,0,.2)}.reveal.page .slides>section.stack{background:0 0;padding:0}.reveal.page .slides>section.past{transform-origin:0 0;transform:translate(-40%)rotateY(-80deg)}.reveal.page .slides>section.future{transform-origin:100% 0;transform:translate(0,0)}.reveal.page .slides>section>section.past{transform-origin:0 0;transform:translateY(-40%)rotateX(80deg)}.reveal.page .slides>section>section.future{transform-origin:0 100%;transform:translate(0,0)}.reveal .slides section[data-transition=fade],.reveal.fade .slides section:not([data-transition]),.reveal.fade .slides>section>section:not([data-transition]){transition:opacity .5s;transform:none}.reveal.fade.overview .slides section,.reveal.fade.overview .slides>section>section{transition:none}.reveal .slides section[data-transition=none],.reveal.none .slides section:not([data-transition]){transition:none;transform:none}.reveal .pause-overlay{visibility:hidden;opacity:0;z-index:100;background:#000;width:100%;height:100%;transition:all 1s;position:absolute;top:0;left:0}.reveal .pause-overlay .resume-button{color:#ccc;cursor:pointer;background:0 0;border:2px solid #ccc;border-radius:2px;padding:6px 14px;font-size:16px;position:absolute;bottom:20px;right:20px}.reveal .pause-overlay .resume-button:hover{color:#fff;border-color:#fff}.reveal.paused .pause-overlay{visibility:visible;opacity:1}.reveal .no-transition,.reveal .no-transition *,.reveal .slides.disable-slide-transitions section{transition:none!important}.reveal .slides.disable-slide-transitions section{transform:none!important}.reveal .backgrounds{perspective:600px;width:100%;height:100%;position:absolute;top:0;left:0}.reveal .slide-background{opacity:0;visibility:hidden;background-color:transparent;width:100%;height:100%;transition:all .8s cubic-bezier(.26,.86,.44,.985);display:none;position:absolute;overflow:hidden}.reveal .slide-background-content{background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute}.reveal .slide-background.stack{display:block}.reveal .slide-background.present{opacity:1;visibility:visible;z-index:2}.print-pdf .reveal .slide-background{opacity:1!important;visibility:visible!important}.reveal .slide-background video{object-fit:cover;width:100%;max-width:none;height:100%;max-height:none;position:absolute;top:0;left:0}.reveal .slide-background[data-background-size=contain] video{object-fit:contain}.reveal>.backgrounds .slide-background[data-background-transition=none],.reveal[data-background-transition=none]>.backgrounds .slide-background:not([data-background-transition]){transition:none}.reveal>.backgrounds .slide-background[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background:not([data-background-transition]){opacity:1}.reveal>.backgrounds .slide-background.past[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background.past:not([data-background-transition]){transform:translate(-100%)}.reveal>.backgrounds .slide-background.future[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background.future:not([data-background-transition]){transform:translate(100%)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]){transform:translateY(-100%)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide],.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]){transform:translateY(100%)}.reveal>.backgrounds .slide-background.past[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background.past:not([data-background-transition]){opacity:0;transform:translate(-100%)rotateY(-90deg)translate(-100%)}.reveal>.backgrounds .slide-background.future[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background.future:not([data-background-transition]){opacity:0;transform:translate(100%)rotateY(90deg)translate(100%)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]){opacity:0;transform:translateY(-100%)rotateX(90deg)translateY(-100%)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex],.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]){opacity:0;transform:translateY(100%)rotateX(-90deg)translateY(100%)}.reveal>.backgrounds .slide-background.past[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background.past:not([data-background-transition]){opacity:0;transform:translate(-100%)rotateY(90deg)translate(-100%)}.reveal>.backgrounds .slide-background.future[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background.future:not([data-background-transition]){opacity:0;transform:translate(100%)rotateY(-90deg)translate(100%)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]){opacity:0;transform:translateY(-100%)rotateX(-90deg)translateY(-100%)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave],.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]){opacity:0;transform:translateY(100%)rotateX(90deg)translateY(100%)}.reveal>.backgrounds .slide-background[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background:not([data-background-transition]){transition-timing-function:ease}.reveal>.backgrounds .slide-background.past[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past:not([data-background-transition]){opacity:0;visibility:hidden;transform:scale(16)}.reveal>.backgrounds .slide-background.future[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future:not([data-background-transition]){opacity:0;visibility:hidden;transform:scale(.2)}.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]){opacity:0;visibility:hidden;transform:scale(16)}.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom],.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]){opacity:0;visibility:hidden;transform:scale(.2)}.reveal[data-transition-speed=fast]>.backgrounds .slide-background{transition-duration:.4s}.reveal[data-transition-speed=slow]>.backgrounds .slide-background{transition-duration:1.2s}.reveal [data-auto-animate-target^=unmatched]{will-change:opacity}.reveal section[data-auto-animate]:not(.stack):not([data-auto-animate=running]) [data-auto-animate-target^=unmatched]{opacity:0}.reveal.overview{perspective-origin:50%;perspective:700px}.reveal.overview .slides{-moz-transform-style:preserve-3d}.reveal.overview .slides section{cursor:pointer;box-sizing:border-box;height:100%;overflow:hidden;opacity:1!important;visibility:visible!important;top:0!important}.reveal.overview .slides section.present,.reveal.overview .slides section:hover{outline-offset:10px;outline:10px solid rgba(150,150,150,.4)}.reveal.overview .slides section .fragment{opacity:1;transition:none}.reveal.overview .slides section:after,.reveal.overview .slides section:before{display:none!important}.reveal.overview .slides>section.stack{background:0 0;outline:0;padding:0;overflow:visible;top:0!important}.reveal.overview .backgrounds{perspective:inherit;-moz-transform-style:preserve-3d}.reveal.overview .backgrounds .slide-background{opacity:1;visibility:visible;outline-offset:10px;outline:10px solid rgba(150,150,150,.1)}.reveal.overview .backgrounds .slide-background.stack{overflow:visible}.reveal.overview .slides section,.reveal.overview-deactivating .slides section,.reveal.overview .backgrounds .slide-background,.reveal.overview-deactivating .backgrounds .slide-background{transition:none}.reveal.rtl .slides,.reveal.rtl .slides h1,.reveal.rtl .slides h2,.reveal.rtl .slides h3,.reveal.rtl .slides h4,.reveal.rtl .slides h5,.reveal.rtl .slides h6{direction:rtl;font-family:sans-serif}.reveal.rtl code,.reveal.rtl pre{direction:ltr}.reveal.rtl ol,.reveal.rtl ul{text-align:right}.reveal.rtl .progress span{transform-origin:100% 0}.reveal.has-parallax-background .backgrounds{transition:all .8s}.reveal.has-parallax-background[data-transition-speed=fast] .backgrounds{transition-duration:.4s}.reveal.has-parallax-background[data-transition-speed=slow] .backgrounds{transition-duration:1.2s}.reveal>.overlay{z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:rgba(0,0,0,.95);width:100%;height:100%;transition:all .3s;position:absolute;top:0;left:0}.reveal>.overlay .spinner{z-index:10;visibility:visible;opacity:.6;background-image:url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);width:32px;height:32px;margin:-16px 0 0 -16px;transition:all .3s;display:block;position:absolute;top:50%;left:50%}.reveal>.overlay header{z-index:2;box-sizing:border-box;width:100%;padding:5px;position:absolute;top:0;left:0}.reveal>.overlay header a{float:right;opacity:.6;box-sizing:border-box;width:40px;height:40px;padding:0 10px;line-height:36px;display:inline-block}.reveal>.overlay header a:hover{opacity:1}.reveal>.overlay header a .icon{background-position:50%;background-repeat:no-repeat;background-size:100%;width:20px;height:20px;display:inline-block}.reveal>.overlay header a.close .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC)}.reveal>.overlay header a.external .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==)}.reveal>.overlay .viewport{display:flex;position:absolute;inset:50px 0 0}.reveal>.overlay.overlay-preview .viewport iframe{opacity:0;visibility:hidden;border:0;width:100%;max-width:100%;height:100%;max-height:100%;transition:all .3s}.reveal>.overlay.overlay-preview.loaded .viewport iframe{opacity:1;visibility:visible}.reveal>.overlay.overlay-preview.loaded .viewport-inner{z-index:-1;text-align:center;letter-spacing:normal;width:100%;position:absolute;top:45%;left:0}.reveal>.overlay.overlay-preview .x-frame-error{opacity:0;transition:opacity .3s .3s}.reveal>.overlay.overlay-preview.loaded .x-frame-error{opacity:1}.reveal>.overlay.overlay-preview.loaded .spinner{opacity:0;visibility:hidden;transform:scale(.2)}.reveal>.overlay.overlay-help .viewport{color:#fff;overflow:auto}.reveal>.overlay.overlay-help .viewport .viewport-inner{text-align:center;letter-spacing:normal;width:600px;margin:auto;padding:20px 20px 80px}.reveal>.overlay.overlay-help .viewport .viewport-inner .title{font-size:20px}.reveal>.overlay.overlay-help .viewport .viewport-inner table{border-collapse:collapse;border:1px solid #fff;font-size:16px}.reveal>.overlay.overlay-help .viewport .viewport-inner table td,.reveal>.overlay.overlay-help .viewport .viewport-inner table th{vertical-align:middle;border:1px solid #fff;width:200px;padding:14px}.reveal>.overlay.overlay-help .viewport .viewport-inner table th{padding-top:20px;padding-bottom:20px}.reveal .playback{z-index:30;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .4s;position:absolute;bottom:20px;left:15px}.reveal.overview .playback{opacity:0;visibility:hidden}.reveal .hljs{min-height:100%}.reveal .hljs table{margin:initial}.reveal .hljs-ln-code,.reveal .hljs-ln-numbers{border:0;padding:0}.reveal .hljs-ln-numbers{opacity:.6;text-align:right;vertical-align:top;padding-right:.75em}.reveal .hljs.has-highlights tr:not(.highlight-line){opacity:.4}.reveal .hljs.has-highlights.fragment{transition:all .2s}.reveal .hljs:not(:first-child).fragment{box-sizing:border-box;width:100%;position:absolute;top:0;left:0}.reveal pre[data-auto-animate-target]{overflow:hidden}.reveal pre[data-auto-animate-target] code{height:100%}.reveal .roll{vertical-align:top;perspective:400px;perspective-origin:50%;line-height:1.2;display:inline-block;overflow:hidden}.reveal .roll:hover{text-shadow:none;background:0 0}.reveal .roll span{pointer-events:none;transform-origin:50% 0;transform-style:preserve-3d;backface-visibility:hidden;padding:0 2px;transition:all .4s;display:block;position:relative}.reveal .roll:hover span{background:rgba(0,0,0,.5);transform:translateZ(-45px)rotateX(90deg)}.reveal .roll span:after{content:attr(data-title);backface-visibility:hidden;transform-origin:50% 0;padding:0 2px;display:block;position:absolute;top:0;left:0;transform:translateY(110%)rotateX(-90deg)}.reveal aside.notes{display:none}.reveal .speaker-notes{z-index:1;color:#222;box-sizing:border-box;text-align:left;-webkit-overflow-scrolling:touch;background-color:#f5f5f5;border:1px solid rgba(0,0,0,.05);width:33.3333%;height:100%;padding:14px 18px;font-family:Helvetica,sans-serif;font-size:18px;line-height:1.4;display:none;position:absolute;top:0;left:100%;overflow:auto}.reveal .speaker-notes .notes-placeholder{color:#ccc;font-style:italic}.reveal .speaker-notes:focus{outline:0}.reveal .speaker-notes:before{content:"Speaker notes";opacity:.5;margin-bottom:10px;display:block}.reveal.show-notes{max-width:75%;overflow:visible}.reveal.show-notes .speaker-notes{display:block}@media screen and (min-width:1600px){.reveal .speaker-notes{font-size:20px}}@media screen and (max-width:1024px){.reveal.show-notes{border-left:0;max-width:none;max-height:70vh;overflow:visible}.reveal.show-notes .speaker-notes{border:0;width:100%;height:30vh;top:100%;left:0}}@media screen and (max-width:600px){.reveal.show-notes{max-height:60vh}.reveal.show-notes .speaker-notes{height:40vh;top:100%}.reveal .speaker-notes{font-size:14px}}.reveal .jump-to-slide{z-index:30;-webkit-tap-highlight-color:transparent;font-size:32px;position:absolute;top:15px;left:15px}.reveal .jump-to-slide-input{font-size:inherit;color:currentColor;background:0 0;border:0;padding:8px}.reveal .jump-to-slide-input::placeholder{color:currentColor;opacity:.5}.reveal.has-dark-background .jump-to-slide-input{color:#fff}.reveal.has-light-background .jump-to-slide-input{color:#222}.reveal .jump-to-slide-input:focus{outline:0}.zoomed .reveal *,.zoomed .reveal :after,.zoomed .reveal :before{backface-visibility:visible!important}.zoomed .reveal .controls,.zoomed .reveal .progress{opacity:0}.zoomed .reveal .roll span{background:0 0}.zoomed .reveal .roll span:after,.reveal-viewport.loading-scroll-mode{visibility:hidden}.reveal-viewport.reveal-scroll{z-index:1;--r-scrollbar-width:7px;--r-scrollbar-trigger-size:5px;--r-controls-spacing:8px;margin:0 auto;overflow:hidden auto}@media screen and (max-width:500px){.reveal-viewport.reveal-scroll{--r-scrollbar-width:3px;--r-scrollbar-trigger-size:3px}}.reveal-viewport.reveal-scroll .backgrounds,.reveal-viewport.reveal-scroll .controls,.reveal-viewport.reveal-scroll .playback,.reveal-viewport.reveal-scroll .progress,.reveal-viewport.reveal-scroll .slide-number,.reveal-viewport.reveal-scroll .speaker-notes{display:none!important}.reveal-viewport.reveal-scroll .overlay,.reveal-viewport.reveal-scroll .pause-overlay{position:fixed}.reveal-viewport.reveal-scroll .reveal{touch-action:manipulation;overflow:visible}.reveal-viewport.reveal-scroll .slides{pointer-events:initial;perspective:none;perspective-origin:50%;margin:0;padding:0;display:block;position:static;top:auto;left:auto;overflow:visible;width:100%!important}.reveal-viewport.reveal-scroll .scroll-page{width:100%;height:calc(var(--page-height) + var(--page-scroll-padding));z-index:1;position:relative;overflow:visible}.reveal-viewport.reveal-scroll .scroll-page-sticky{height:var(--page-height);position:sticky;top:0}.reveal-viewport.reveal-scroll .scroll-page-content{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.reveal-viewport.reveal-scroll .scroll-page section{visibility:visible!important;width:var(--slide-width)!important;height:var(--slide-height)!important;opacity:1!important;transform:scale(var(--slide-scale))translate(-50%,-50%)!important;transform-style:flat!important;transform-origin:0 0!important;display:block!important;position:absolute!important;top:50%!important;left:50%!important}.reveal-viewport.reveal-scroll .slide-background{visibility:visible;opacity:1;touch-action:manipulation;width:100%;height:100%;position:absolute;top:0;left:0;z-index:auto!important;display:block!important}.reveal-viewport.reveal-scroll[data-scrollbar=auto]::-webkit-scrollbar{display:none}.reveal-viewport.reveal-scroll[data-scrollbar=true]::-webkit-scrollbar{display:none}.reveal-viewport.reveal-scroll[data-scrollbar=auto],.reveal-viewport.reveal-scroll[data-scrollbar=true]{scrollbar-width:none}.reveal-viewport.has-dark-background,.reveal.has-dark-background{--r-overlay-element-bg-color:240,240,240;--r-overlay-element-fg-color:0,0,0}.reveal-viewport.has-light-background,.reveal.has-light-background{--r-overlay-element-bg-color:0,0,0;--r-overlay-element-fg-color:240,240,240}.reveal-viewport.reveal-scroll .scrollbar{z-index:20;opacity:0;transition:all .3s;position:sticky;top:50%}.reveal-viewport.reveal-scroll .scrollbar.visible,.reveal-viewport.reveal-scroll .scrollbar:hover{opacity:1}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-inner{width:var(--r-scrollbar-width);height:calc(var(--viewport-height) - var(--r-controls-spacing)*2);right:var(--r-controls-spacing);border-radius:var(--r-scrollbar-width);z-index:10;position:absolute;top:0;transform:translateY(-50%)}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-playhead{width:var(--r-scrollbar-width);height:var(--r-scrollbar-width);border-radius:var(--r-scrollbar-width);background-color:rgba(var(--r-overlay-element-bg-color),1);z-index:11;transition:background-color .2s;position:absolute;top:0;left:0}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide{background-color:rgba(var(--r-overlay-element-bg-color),.2);width:100%;box-shadow:0 0 0 1px rgba(var(--r-overlay-element-fg-color),.1);border-radius:var(--r-scrollbar-width);transition:background-color .2s;position:absolute}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide:after{content:"";z-index:-1;background:0 0;width:200%;height:100%;position:absolute;top:0;left:-50%}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active,.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide:hover{background-color:rgba(var(--r-overlay-element-bg-color),.4)}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-trigger{width:100%;transition:background-color .2s;position:absolute}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active.has-triggers{background-color:rgba(var(--r-overlay-element-bg-color),.4);z-index:10}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger:after{content:"";width:var(--r-scrollbar-trigger-size);height:var(--r-scrollbar-trigger-size);background-color:rgba(var(--r-overlay-element-bg-color),1);opacity:.4;border-radius:20px;transition:transform .2s,opacity .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger.active:after,.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger.active~.scrollbar-trigger:after{opacity:1}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger~.scrollbar-trigger.active:after{transform:translate(calc(var(--r-scrollbar-width)*-2),0);background-color:rgba(var(--r-overlay-element-bg-color),1)}html.reveal-print *{-webkit-print-color-adjust:exact}html.reveal-print{width:100%;height:100%;overflow:visible}html.reveal-print body{border:0;padding:0;overflow:visible;float:none!important;margin:0 auto!important}html.reveal-print .nestedarrow,html.reveal-print .reveal .controls,html.reveal-print .reveal .playback,html.reveal-print .reveal .progress,html.reveal-print .reveal.overview,html.reveal-print .state-background{display:none!important}html.reveal-print .reveal pre code{overflow:hidden!important}html.reveal-print .reveal{width:auto!important;height:auto!important;overflow:hidden!important}html.reveal-print .reveal .slides{pointer-events:initial;perspective:none;perspective-origin:50%;display:block;position:static;top:auto;left:auto;overflow:visible;zoom:1!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important}html.reveal-print .reveal .slides .pdf-page{z-index:1;page-break-after:always;position:relative;overflow:hidden}html.reveal-print .reveal .slides .pdf-page:last-of-type{page-break-after:avoid}html.reveal-print .reveal .slides section{min-height:1px;visibility:visible!important;box-sizing:border-box!important;opacity:1!important;transform-style:flat!important;margin:0!important;padding:0!important;display:block!important;position:absolute!important;transform:none!important}html.reveal-print .reveal section.stack{page-break-after:avoid!important;height:auto!important;min-height:auto!important;margin:0!important;padding:0!important;position:relative!important}html.reveal-print .reveal img{box-shadow:none}html.reveal-print .reveal .backgrounds{display:none}html.reveal-print .reveal .slide-background{width:100%;height:100%;position:absolute;top:0;left:0;z-index:auto!important;display:block!important}html.reveal-print .reveal.show-notes{max-width:none;max-height:none}html.reveal-print .reveal .speaker-notes-pdf{z-index:100;width:100%;height:auto;max-height:none;display:block;inset:auto}html.reveal-print .reveal .speaker-notes-pdf[data-layout=separate-page]{color:inherit;page-break-after:always;background-color:transparent;border:0;padding:20px;position:relative}html.reveal-print .reveal .slide-number-pdf{visibility:visible;font-size:14px;display:block;position:absolute}html.reveal-print .aria-status{display:none}@media print{html:not(.print-pdf){width:auto;height:auto;overflow:visible}html:not(.print-pdf) body{margin:0;padding:0;overflow:visible}html:not(.print-pdf) .reveal{background:#fff;font-size:20pt}html:not(.print-pdf) .reveal .backgrounds,html:not(.print-pdf) .reveal .controls,html:not(.print-pdf) .reveal .progress,html:not(.print-pdf) .reveal .slide-number,html:not(.print-pdf) .reveal .state-background{display:none!important}html:not(.print-pdf) .reveal li,html:not(.print-pdf) .reveal p,html:not(.print-pdf) .reveal td{color:#000;font-size:20pt!important}html:not(.print-pdf) .reveal h1,html:not(.print-pdf) .reveal h2,html:not(.print-pdf) .reveal h3,html:not(.print-pdf) .reveal h4,html:not(.print-pdf) .reveal h5,html:not(.print-pdf) .reveal h6{text-align:left;letter-spacing:normal;height:auto;line-height:normal;color:#000!important}html:not(.print-pdf) .reveal h1{font-size:28pt!important}html:not(.print-pdf) .reveal h2{font-size:24pt!important}html:not(.print-pdf) .reveal h3{font-size:22pt!important}html:not(.print-pdf) .reveal h4{font-feature-settings:"smcp";font-variant:small-caps;font-size:22pt!important}html:not(.print-pdf) .reveal h5{font-size:21pt!important}html:not(.print-pdf) .reveal h6{font-style:italic;font-size:20pt!important}html:not(.print-pdf) .reveal a:link,html:not(.print-pdf) .reveal a:visited{font-weight:700;-webkit-text-decoration:underline;text-decoration:underline;color:#000!important}html:not(.print-pdf) .reveal div,html:not(.print-pdf) .reveal ol,html:not(.print-pdf) .reveal p,html:not(.print-pdf) .reveal ul{visibility:visible;width:auto;height:auto;margin:0;display:block;position:static;overflow:visible;text-align:left!important}html:not(.print-pdf) .reveal pre,html:not(.print-pdf) .reveal table{margin-left:0;margin-right:0}html:not(.print-pdf) .reveal pre code{padding:20px}html:not(.print-pdf) .reveal blockquote{margin:20px 0}html:not(.print-pdf) .reveal .slides{perspective:none;perspective-origin:50%;zoom:1!important;text-align:left!important;width:auto!important;height:auto!important;margin-top:0!important;margin-left:0!important;padding:0!important;display:block!important;position:static!important;top:0!important;left:0!important;overflow:visible!important;transform:none!important}html:not(.print-pdf) .reveal .slides section{visibility:visible!important;z-index:auto!important;opacity:1!important;page-break-after:always!important;transform-style:flat!important;width:auto!important;height:auto!important;margin-top:0!important;margin-left:0!important;padding:60px 20px!important;transition:none!important;display:block!important;position:static!important;top:0!important;left:0!important;overflow:visible!important;transform:none!important}html:not(.print-pdf) .reveal .slides section.stack{padding:0!important}html:not(.print-pdf) .reveal .slides section:last-of-type{page-break-after:avoid!important}html:not(.print-pdf) .reveal .slides section .fragment{opacity:1!important;visibility:visible!important;transform:none!important}html:not(.print-pdf) .reveal .r-fit-text{white-space:normal!important}html:not(.print-pdf) .reveal section img{box-shadow:none;background:#fff;border:1px solid #666;margin:15px 0;display:block}html:not(.print-pdf) .reveal section small{font-size:.8em}html:not(.print-pdf) .reveal .hljs{white-space:pre-wrap;word-wrap:break-word;word-break:break-word;max-height:100%;font-size:15pt}html:not(.print-pdf) .reveal .hljs .hljs-ln-numbers{white-space:nowrap}html:not(.print-pdf) .reveal .hljs td{font-size:inherit!important;color:inherit!important}}@font-face{font-family:Source Sans Pro;src:url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-regular-36443d248c8a75fde2a63bea32a21b21.eot);src:url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-regular-36443d248c8a75fde2a63bea32a21b21.eot?#iefix)format("embedded-opentype"),url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-regular-d16535500d9438afb40931462416cd34.woff)format("woff"),url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-regular-45c54810910de71280ab04b4c696126c.ttf)format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Source Sans Pro;src:url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-italic-97e79d3e28a440c77195d8e4d032d447.eot);src:url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-italic-97e79d3e28a440c77195d8e4d032d447.eot?#iefix)format("embedded-opentype"),url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-italic-983d97ca59e8e24e94c6ae9083408e68.woff)format("woff"),url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-italic-10a5cb40054505a4b3a9c7146c2e4d8b.ttf)format("truetype");font-weight:400;font-style:italic}@font-face{font-family:Source Sans Pro;src:url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-semibold-83db537e62224a77933877cf674b6322.eot);src:url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-semibold-83db537e62224a77933877cf674b6322.eot?#iefix)format("embedded-opentype"),url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-semibold-f11ba60ae1c65b37e61628cb13c29e14.woff)format("woff"),url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-semibold-6ebea875df77b49da05bbaaf85494fac.ttf)format("truetype");font-weight:600;font-style:normal}@font-face{font-family:Source Sans Pro;src:url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-semibolditalic-fb03c6601ab6f48952c4364edcae8167.eot);src:url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-semibolditalic-fb03c6601ab6f48952c4364edcae8167.eot?#iefix)format("embedded-opentype"),url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-semibolditalic-a43f56accdef4a0b01f0d88ad86cccf4.woff)format("woff"),url(/java-docs/pr-preview/pr-238/assets/fonts/source-sans-pro-semibolditalic-522a9ee9b3b2ecbdd3676f3bfb53187d.ttf)format("truetype");font-weight:600;font-style:italic}section.has-light-background,section.has-light-background h1,section.has-light-background h2,section.has-light-background h3,section.has-light-background h4,section.has-light-background h5,section.has-light-background h6{color:#222}:root{--r-background-color:#191919;--r-main-font:Source Sans Pro,Helvetica,sans-serif;--r-main-font-size:42px;--r-main-color:#fff;--r-block-margin:20px;--r-heading-margin:0 0 20px 0;--r-heading-font:Source Sans Pro,Helvetica,sans-serif;--r-heading-color:#fff;--r-heading-line-height:1.2;--r-heading-letter-spacing:normal;--r-heading-text-transform:uppercase;--r-heading-text-shadow:none;--r-heading-font-weight:600;--r-heading1-text-shadow:none;--r-heading1-size:2.5em;--r-heading2-size:1.6em;--r-heading3-size:1.3em;--r-heading4-size:1em;--r-code-font:monospace;--r-link-color:#42affa;--r-link-color-dark:#068de9;--r-link-color-hover:#8dcffc;--r-selection-background-color:rgba(66,175,250,.75);--r-selection-color:#fff;--r-overlay-element-bg-color:240,240,240;--r-overlay-element-fg-color:0,0,0}.reveal-viewport{background:#191919;background-color:var(--r-background-color)}.reveal{font-family:var(--r-main-font);font-size:var(--r-main-font-size);color:var(--r-main-color);font-weight:400}.reveal ::selection{color:var(--r-selection-color);background:var(--r-selection-background-color);text-shadow:none}.reveal ::selection{color:var(--r-selection-color);background:var(--r-selection-background-color);text-shadow:none}.reveal .slides section,.reveal .slides section>section{line-height:1.3;font-weight:inherit}.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6{margin:var(--r-heading-margin);color:var(--r-heading-color);font-family:var(--r-heading-font);font-weight:var(--r-heading-font-weight);line-height:var(--r-heading-line-height);letter-spacing:var(--r-heading-letter-spacing);text-transform:var(--r-heading-text-transform);text-shadow:var(--r-heading-text-shadow);word-wrap:break-word}.reveal h1{font-size:var(--r-heading1-size)}.reveal h2{font-size:var(--r-heading2-size)}.reveal h3{font-size:var(--r-heading3-size)}.reveal h4{font-size:var(--r-heading4-size)}.reveal h1{text-shadow:var(--r-heading1-text-shadow)}.reveal p{margin:var(--r-block-margin)0;line-height:1.3}.reveal h1:last-child,.reveal h2:last-child,.reveal h3:last-child,.reveal h4:last-child,.reveal h5:last-child,.reveal h6:last-child{margin-bottom:0}.reveal img,.reveal video,.reveal iframe{max-width:95%;max-height:95%}.reveal strong,.reveal b{font-weight:700}.reveal em{font-style:italic}.reveal ol,.reveal dl,.reveal ul{text-align:left;margin:0 0 0 1em;display:inline-block}.reveal ol{list-style-type:decimal}.reveal ul{list-style-type:disc}.reveal ul ul{list-style-type:square}.reveal ul ul ul{list-style-type:circle}.reveal ul ul,.reveal ul ol,.reveal ol ol,.reveal ol ul{margin-left:40px;display:block}.reveal dt{font-weight:700}.reveal dd{margin-left:40px}.reveal blockquote{width:70%;margin:var(--r-block-margin)auto;background:rgba(255,255,255,.05);padding:5px;font-style:italic;display:block;position:relative;box-shadow:0 0 2px rgba(0,0,0,.2)}.reveal blockquote p:first-child,.reveal blockquote p:last-child{display:inline-block}.reveal q{font-style:italic}.reveal pre{width:90%;margin:var(--r-block-margin)auto;text-align:left;font-size:.55em;font-family:var(--r-code-font);word-wrap:break-word;line-height:1.2em;display:block;position:relative;box-shadow:0 5px 15px rgba(0,0,0,.15)}.reveal code{font-family:var(--r-code-font);text-transform:none;tab-size:2}.reveal pre code{word-wrap:normal;max-height:400px;padding:5px;display:block;overflow:auto}.reveal .code-wrapper{white-space:normal}.reveal .code-wrapper code{white-space:pre}.reveal table{border-collapse:collapse;border-spacing:0;margin:auto}.reveal table th{font-weight:700}.reveal table th,.reveal table td{text-align:left;border-bottom:1px solid;padding:.2em .5em}.reveal table th[align=center]{text-align:center}.reveal table td[align=center]{text-align:center}.reveal table th[align=right]{text-align:right}.reveal table td[align=right]{text-align:right}.reveal sup{vertical-align:super;font-size:smaller}.reveal sub{vertical-align:sub;font-size:smaller}.reveal small{vertical-align:top;font-size:.6em;line-height:1.2em;display:inline-block}.reveal small *{vertical-align:top}.reveal img{margin:var(--r-block-margin)0}.reveal a{color:var(--r-link-color);-webkit-text-decoration:none;text-decoration:none;transition:color .15s}.reveal a:hover{color:var(--r-link-color-hover);text-shadow:none;border:none}.reveal .roll span:after{color:#fff;background:var(--r-link-color-dark)}.reveal .r-frame{border:4px solid var(--r-main-color);box-shadow:0 0 10px rgba(0,0,0,.15)}.reveal a .r-frame{transition:all .15s linear}.reveal a:hover .r-frame{border-color:var(--r-link-color);box-shadow:0 0 20px rgba(0,0,0,.55)}.reveal .controls{color:var(--r-link-color)}.reveal .progress{color:var(--r-link-color);background:rgba(0,0,0,.2)}@media print{.backgrounds{background-color:var(--r-background-color)}}.hljs{color:#ddd;background:#272822;padding:.5em;display:block;overflow-x:auto}.hljs-tag,.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-strong,.hljs-name{color:#f92672}.hljs-code{color:#66d9ef}.hljs-class .hljs-title{color:#fff}.hljs-attribute,.hljs-symbol,.hljs-regexp,.hljs-link{color:#bf79db}.hljs-string,.hljs-bullet,.hljs-subst,.hljs-title,.hljs-section,.hljs-emphasis,.hljs-type,.hljs-built_in,.hljs-builtin-name,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-addition,.hljs-variable,.hljs-template-tag,.hljs-template-variable{color:#a6e22e}.hljs-comment,.hljs-quote,.hljs-deletion,.hljs-meta{color:#75715e}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-doctag,.hljs-title,.hljs-section,.hljs-type,.hljs-selector-id{font-weight:700}:root{--docusaurus-highlighted-code-line-bg:rgba(0,0,0,.1)}[data-theme=dark]{--docusaurus-highlighted-code-line-bg:rgba(0,0,0,.3)}pre{padding:0}code>table{width:100%}.reveal table{display:table}.reveal table tr{border:0}.reveal table tbody tr:last-child th,.reveal table tbody tr:last-child td{border-bottom:1px solid #fff}.reveal code table tbody tr:last-child th,.reveal code table tbody tr:last-child td{border-bottom:none}[data-tooltip]:focus:before{content:attr(data-tooltip);text-align:center;position:fixed;top:0;left:0;right:0}[data-tooltip]:after{content:"?";text-align:center;cursor:pointer;border:1px solid gray;border-radius:64px;margin-left:1rem;padding-left:18px;padding-right:18px;font-size:42px}.reveal .foot-note{font-size:medium;position:fixed;bottom:10px;left:0;right:0}.reveal .font-medium{font-size:medium}body:not(.navigation-with-keyboard) :not(input):focus{outline:none}#__docusaurus-base-url-issue-banner-container{display:none}.skipToContent_fXgn{z-index:calc(var(--ifm-z-index-fixed) + 1);padding:calc(var(--ifm-global-spacing)/2)var(--ifm-global-spacing);color:var(--ifm-color-emphasis-900);background-color:var(--ifm-background-surface-color);position:fixed;top:1rem;left:100%}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{padding:0;line-height:0}.content_knG7{text-align:center;padding:5px 0;font-size:85%}.content_knG7 a{color:inherit;-webkit-text-decoration:underline;text-decoration:underline}:root{--docusaurus-announcement-bar-height:auto}.announcementBar_mb4j{height:var(--docusaurus-announcement-bar-height);background-color:var(--ifm-color-white);color:var(--ifm-color-black);border-bottom:1px solid var(--ifm-color-emphasis-100);align-items:center;display:flex}html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{flex:0 0 30px;align-self:stretch}.announcementBarContent_xLdY{flex:auto}@media print{.announcementBar_mb4j{display:none}}@media (min-width:997px){:root{--docusaurus-announcement-bar-height:30px}.announcementBarPlaceholder_vyr4,.announcementBarClose_gvF7{flex-basis:50px}}.toggle_vylO{width:2rem;height:2rem}.toggleButton_gllP{-webkit-tap-highlight-color:transparent;width:100%;height:100%;transition:background var(--ifm-transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}[data-theme=light] .darkToggleIcon_wfgR,[data-theme=dark] .lightToggleIcon_pyhR{display:none}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}.themedComponent_mlkZ{display:none}[data-theme=light] .themedComponent--light_NVdE,[data-theme=dark] .themedComponent--dark_xIcU,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.dropdownNavbarItemMobile_S0Fm{cursor:pointer}.iconLanguage_nlXk{vertical-align:text-bottom;margin-right:5px}.navbarSearchContainer_Bca1:empty{display:none}@media (max-width:996px){.navbarSearchContainer_Bca1{right:var(--ifm-navbar-padding-horizontal);position:absolute}}@media (min-width:997px){.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical)var(--ifm-navbar-item-padding-horizontal)}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast)ease}.navbarHidden_jGov{transform:translateY(calc(-100% - 2px))}@media (max-width:996px){.colorModeToggle_DEke{display:none}}.errorBoundaryError_a6uf{white-space:pre-wrap;color:red}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover{opacity:1}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none;padding-left:.5rem}.hash-link:before{content:"#"}.hash-link:focus,:hover>.hash-link{opacity:1}html,body{height:100%}.mainWrapper_z2l0{flex-direction:column;flex:1 0 auto;display:flex}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{flex-direction:column;min-height:100%;display:flex}.tabList__CuJ{margin-bottom:var(--ifm-leading)}.tabItem_LNqP{margin-top:0!important}.tabItem_Ymn6>:last-child{margin-bottom:0}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);transition:all var(--ifm-transition-fast)ease;transition-property:border,box-shadow;box-shadow:0 1.5px 3px rgba(0,0,0,.15)}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px rgba(0,0,0,.2)}.cardContainer_fWXF :last-child{margin-bottom:0}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}:root{--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);-webkit-text-decoration:none;text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);padding:.2rem .5rem .3rem;font-size:90%}.tagWithCount_h2kH{border-left:0;align-items:center;padding:0 .5rem 0 1rem;display:flex;position:relative}.tagWithCount_h2kH:before,.tagWithCount_h2kH:after{content:"";border:1px solid var(--docusaurus-tag-list-border);transition:inherit;position:absolute;top:50%}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;width:1.18rem;height:1.18rem;right:100%;transform:translate(50%,-50%)rotate(-45deg)}.tagWithCount_h2kH:after{border-radius:50%;width:.5rem;height:.5rem;left:0;transform:translateY(-50%)}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);color:var(--ifm-color-black);border-radius:var(--ifm-global-radius);margin-left:.3rem;padding:.1rem .4rem;font-size:.7rem;line-height:1.2}.tags_jXut{display:inline}.tag_QGVx{margin:0 .4rem .5rem 0;display:inline-block}.tag_Nnez{margin:.5rem .5rem 0 1rem;display:inline-block}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);width:3rem;height:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1);box-shadow:var(--ifm-global-shadow-lw);transition:all var(--ifm-transition-fast)var(--ifm-transition-timing-default);opacity:0;visibility:hidden;border-radius:50%;position:fixed;bottom:1.3rem;right:1.3rem;transform:scale(0)}.backToTopButton_sjWU:after{content:" ";-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;background-color:var(--ifm-color-emphasis-1000);width:100%;height:100%;display:inline-block}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}.backToTopButtonShow_xfvO{opacity:1;visibility:visible;transform:scale(1)}:root{--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:rgba(0,0,0,.1)}[data-theme=dark]:root{--docusaurus-collapse-button-bg:rgba(255,255,255,.05);--docusaurus-collapse-button-bg-hover:rgba(255,255,255,.1)}@media (min-width:997px){.collapseSidebarButton_PEFL{background-color:var(--docusaurus-collapse-button-bg);border:1px solid var(--ifm-toc-border-color);border-radius:0;height:40px;position:sticky;bottom:0;display:block!important}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:hover,.collapseSidebarButton_PEFL:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}}.collapseSidebarButton_PEFL{margin:0;display:none}.menuExternalLink_NmtK{align-items:center}@media (min-width:997px){.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{scrollbar-gutter:stable;padding:.5rem 0 .5rem .5rem}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width);flex-direction:column;display:flex}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{margin:0 var(--ifm-navbar-padding-horizontal);min-height:var(--ifm-navbar-height);max-height:var(--ifm-navbar-height);align-items:center;color:inherit!important;-webkit-text-decoration:none!important;text-decoration:none!important;display:flex!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}}.sidebarLogo_isFc{display:none}@media (min-width:997px){.expandButton_TmdG{width:100%;height:100%;transition:background-color var(--ifm-transition-fast)ease;background-color:var(--docusaurus-collapse-button-bg);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}.expandButton_TmdG:hover,.expandButton_TmdG:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}.expandButtonIcon_i1dp{transform:rotate(0)}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}}:root{--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.docSidebarContainer_YfHR{display:none}@media (min-width:997px){.docSidebarContainer_YfHR{width:var(--doc-sidebar-width);margin-top:calc(-1*var(--ifm-navbar-height));border-right:1px solid var(--ifm-toc-border-color);will-change:width;transition:width var(--ifm-transition-fast)ease;clip-path:inset(0);display:block}.docSidebarContainerHidden_DPk8{width:var(--doc-sidebar-hidden-width);cursor:pointer}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}}.docMainContainer_TBSr{width:100%;display:flex}@media (min-width:997px){.docMainContainer_TBSr{max-width:calc(100% - var(--doc-sidebar-width));flex-grow:1}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}.docRoot_UBD9{width:100%;display:flex}.docsWrapper_hBAB{flex:1 0 auto;display:flex}.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color);margin-bottom:var(--ifm-leading);box-shadow:var(--ifm-global-shadow-lw);border-radius:var(--ifm-code-border-radius)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);font-size:var(--ifm-code-font-size);padding:.75rem var(--ifm-pre-padding);border-top-left-radius:inherit;border-top-right-radius:inherit;font-weight:500}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockStandalone_MEMb{padding:0}.codeBlockLines_e6Vv{font:inherit;float:left;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{padding:var(--ifm-pre-padding)0;display:table}@media print{.codeBlockLines_e6Vv{white-space:pre-wrap}}.buttonGroup__atx{right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);column-gap:.2rem;display:flex;position:absolute}.buttonGroup__atx button{background:var(--prism-background-color);color:var(--prism-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);transition:opacity var(--ifm-transition-fast)ease-in-out;opacity:0;align-items:center;padding:.4rem;line-height:0;display:flex}.buttonGroup__atx button:hover{opacity:1!important}.buttonGroup__atx button:focus-visible{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);margin:0 calc(-1*var(--ifm-pre-padding));padding:0 var(--ifm-pre-padding);display:block}.codeLine_lJS_{counter-increment:line-count;display:table-row}.codeLineNumber_Tfdd{text-align:right;width:1%;padding:0 var(--ifm-pre-padding);background:var(--ifm-pre-background);overflow-wrap:normal;display:table-cell;position:sticky;left:0}.codeLineNumber_Tfdd:before{content:counter(line-count);opacity:.4}.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{width:1.125rem;height:1.125rem;position:relative}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;opacity:inherit;width:inherit;height:inherit;transition:all var(--ifm-transition-fast)ease;position:absolute;top:0;left:0}.copyButtonSuccessIcon_LjdS{opacity:0;color:#00d600;top:50%;left:50%;transform:translate(-50%,-50%)scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transition-delay:75ms;transform:translate(-50%,-50%)scale(1)}.wordWrapButtonIcon_Bwma{width:1.2rem;height:1.2rem}.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.details_lb9f{--docusaurus-details-summary-arrow-size:.38rem;--docusaurus-details-transition:transform .2s ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;list-style:none;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{content:"";border-width:var(--docusaurus-details-summary-arrow-size);border-style:solid;border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);transition:var(--docusaurus-details-transition);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2)50%;position:absolute;top:.45rem;left:0;transform:rotate(0)}.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before{transform:rotate(90deg)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child{margin-bottom:0}.iconEdit_Z9Sw{vertical-align:sub;margin-right:.3em}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast)ease;margin:0 0 var(--ifm-spacing-vertical);border:1px solid var(--ifm-alert-border-color)}.lastUpdated_JAkA{margin-top:.2rem;font-size:smaller;font-style:italic}@media (min-width:997px){.lastUpdated_JAkA{text-align:right}}.tocCollapsibleButton_TO0P{font-size:inherit;justify-content:space-between;align-items:center;width:100%;padding:.4rem .8rem;display:flex}.tocCollapsibleButton_TO0P:after{content:"";background:var(--ifm-menu-link-sublist-icon)50% 50%/2rem 2rem no-repeat;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast);transform:rotate(180deg)}.tocCollapsibleButtonExpanded_MG3E:after{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);padding:.2rem 0;font-size:15px}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.tocCollapsibleExpanded_sAul{transform:none}@media (min-width:997px){.tocMobile_ITEo{display:none}}@media print{.tocMobile_ITEo{display:none}}.containsTaskList_mC6p{list-style:none}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight)var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{vertical-align:middle;margin-right:.4em;display:inline-block}.admonitionIcon_Rf37 svg{width:1.6em;height:1.6em;fill:var(--ifm-alert-foreground-color);display:inline-block}.admonitionContent_BuS1>:last-child{margin-bottom:0}.tableOfContents_bqdL{max-height:calc(100vh - (var(--ifm-navbar-height) + 2rem));top:calc(var(--ifm-navbar-height) + 1rem);position:sticky;overflow-y:auto}@media (max-width:996px){.tableOfContents_bqdL{display:none}.docItemContainer_F8PC{padding:0 .3rem}}.container_lyt7,.container_lyt7>svg{max-width:100%}.breadcrumbHomeIcon_YNFT{vertical-align:top;width:1.1rem;height:1.1rem;position:relative;top:1px}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:.8;margin-bottom:.8rem}.docItemContainer_Djhp header+*,.docItemContainer_Djhp article>:first-child{margin-top:0}@media (min-width:997px){.docItemCol_VOVn{max-width:75%!important}}.mdxPageWrapper_j9I6{justify-content:center} \ No newline at end of file diff --git a/pr-preview/pr-238/assets/files/api-9020b57b859c4807636d5e0b7282b653.pdf b/pr-preview/pr-238/assets/files/api-9020b57b859c4807636d5e0b7282b653.pdf new file mode 100644 index 0000000000..3221a0a946 Binary files /dev/null and b/pr-preview/pr-238/assets/files/api-9020b57b859c4807636d5e0b7282b653.pdf differ diff --git a/pr-preview/pr-238/assets/files/exercises-koblenz-5125438b36e15ed612db6d300cc5935b.pdf b/pr-preview/pr-238/assets/files/exercises-koblenz-5125438b36e15ed612db6d300cc5935b.pdf new file mode 100644 index 0000000000..1bf8af230e Binary files /dev/null and b/pr-preview/pr-238/assets/files/exercises-koblenz-5125438b36e15ed612db6d300cc5935b.pdf differ diff --git a/pr-preview/pr-238/assets/files/exercises-ulm-cf2cc33b9ccdae3a1c0746c07fc951bd.pdf b/pr-preview/pr-238/assets/files/exercises-ulm-cf2cc33b9ccdae3a1c0746c07fc951bd.pdf new file mode 100644 index 0000000000..29394834b6 Binary files /dev/null and b/pr-preview/pr-238/assets/files/exercises-ulm-cf2cc33b9ccdae3a1c0746c07fc951bd.pdf differ diff --git a/pr-preview/pr-238/assets/files/java-2-exams-514558cb2954dd1789ad951794f14583.zip b/pr-preview/pr-238/assets/files/java-2-exams-514558cb2954dd1789ad951794f14583.zip new file mode 100644 index 0000000000..9d08ebb0b0 Binary files /dev/null and b/pr-preview/pr-238/assets/files/java-2-exams-514558cb2954dd1789ad951794f14583.zip differ diff --git a/pr-preview/pr-238/assets/files/java-cheat-sheet-1564904cc291264239f91a360bcde2f8.pdf b/pr-preview/pr-238/assets/files/java-cheat-sheet-1564904cc291264239f91a360bcde2f8.pdf new file mode 100644 index 0000000000..f22f0d99c7 Binary files /dev/null and b/pr-preview/pr-238/assets/files/java-cheat-sheet-1564904cc291264239f91a360bcde2f8.pdf differ diff --git a/pr-preview/pr-238/assets/files/klassendiagramm-fd9bf7fb6fc4ecfaf53625f75ef236d8.pdf b/pr-preview/pr-238/assets/files/klassendiagramm-fd9bf7fb6fc4ecfaf53625f75ef236d8.pdf new file mode 100644 index 0000000000..2dca4fed75 Binary files /dev/null and b/pr-preview/pr-238/assets/files/klassendiagramm-fd9bf7fb6fc4ecfaf53625f75ef236d8.pdf differ diff --git a/pr-preview/pr-238/assets/files/klausur-c3e0cc6ceea3210ad2c1cff448877f0a.pdf b/pr-preview/pr-238/assets/files/klausur-c3e0cc6ceea3210ad2c1cff448877f0a.pdf new file mode 100644 index 0000000000..afcc653b13 Binary files /dev/null and b/pr-preview/pr-238/assets/files/klausur-c3e0cc6ceea3210ad2c1cff448877f0a.pdf differ diff --git a/pr-preview/pr-238/assets/fonts/source-sans-pro-italic-10a5cb40054505a4b3a9c7146c2e4d8b.ttf b/pr-preview/pr-238/assets/fonts/source-sans-pro-italic-10a5cb40054505a4b3a9c7146c2e4d8b.ttf new file mode 100644 index 0000000000..f9ac13ffc6 Binary files /dev/null and b/pr-preview/pr-238/assets/fonts/source-sans-pro-italic-10a5cb40054505a4b3a9c7146c2e4d8b.ttf differ diff --git a/pr-preview/pr-238/assets/fonts/source-sans-pro-italic-97e79d3e28a440c77195d8e4d032d447.eot b/pr-preview/pr-238/assets/fonts/source-sans-pro-italic-97e79d3e28a440c77195d8e4d032d447.eot new file mode 100644 index 0000000000..32fe466bba Binary files /dev/null and b/pr-preview/pr-238/assets/fonts/source-sans-pro-italic-97e79d3e28a440c77195d8e4d032d447.eot differ diff --git a/pr-preview/pr-238/assets/fonts/source-sans-pro-italic-983d97ca59e8e24e94c6ae9083408e68.woff b/pr-preview/pr-238/assets/fonts/source-sans-pro-italic-983d97ca59e8e24e94c6ae9083408e68.woff new file mode 100644 index 0000000000..ceecbf17f3 Binary files /dev/null and b/pr-preview/pr-238/assets/fonts/source-sans-pro-italic-983d97ca59e8e24e94c6ae9083408e68.woff differ diff --git a/pr-preview/pr-238/assets/fonts/source-sans-pro-regular-36443d248c8a75fde2a63bea32a21b21.eot b/pr-preview/pr-238/assets/fonts/source-sans-pro-regular-36443d248c8a75fde2a63bea32a21b21.eot new file mode 100644 index 0000000000..4d29ddadd1 Binary files /dev/null and b/pr-preview/pr-238/assets/fonts/source-sans-pro-regular-36443d248c8a75fde2a63bea32a21b21.eot differ diff --git a/pr-preview/pr-238/assets/fonts/source-sans-pro-regular-45c54810910de71280ab04b4c696126c.ttf b/pr-preview/pr-238/assets/fonts/source-sans-pro-regular-45c54810910de71280ab04b4c696126c.ttf new file mode 100644 index 0000000000..00c833cdc9 Binary files /dev/null and b/pr-preview/pr-238/assets/fonts/source-sans-pro-regular-45c54810910de71280ab04b4c696126c.ttf differ diff --git a/pr-preview/pr-238/assets/fonts/source-sans-pro-regular-d16535500d9438afb40931462416cd34.woff b/pr-preview/pr-238/assets/fonts/source-sans-pro-regular-d16535500d9438afb40931462416cd34.woff new file mode 100644 index 0000000000..630754abf3 Binary files /dev/null and b/pr-preview/pr-238/assets/fonts/source-sans-pro-regular-d16535500d9438afb40931462416cd34.woff differ diff --git a/pr-preview/pr-238/assets/fonts/source-sans-pro-semibold-6ebea875df77b49da05bbaaf85494fac.ttf b/pr-preview/pr-238/assets/fonts/source-sans-pro-semibold-6ebea875df77b49da05bbaaf85494fac.ttf new file mode 100644 index 0000000000..6d0253da97 Binary files /dev/null and b/pr-preview/pr-238/assets/fonts/source-sans-pro-semibold-6ebea875df77b49da05bbaaf85494fac.ttf differ diff --git a/pr-preview/pr-238/assets/fonts/source-sans-pro-semibold-83db537e62224a77933877cf674b6322.eot b/pr-preview/pr-238/assets/fonts/source-sans-pro-semibold-83db537e62224a77933877cf674b6322.eot new file mode 100644 index 0000000000..1104e074f0 Binary files /dev/null and b/pr-preview/pr-238/assets/fonts/source-sans-pro-semibold-83db537e62224a77933877cf674b6322.eot differ diff --git a/pr-preview/pr-238/assets/fonts/source-sans-pro-semibold-f11ba60ae1c65b37e61628cb13c29e14.woff b/pr-preview/pr-238/assets/fonts/source-sans-pro-semibold-f11ba60ae1c65b37e61628cb13c29e14.woff new file mode 100644 index 0000000000..8888cf8d4f Binary files /dev/null and b/pr-preview/pr-238/assets/fonts/source-sans-pro-semibold-f11ba60ae1c65b37e61628cb13c29e14.woff differ diff --git a/pr-preview/pr-238/assets/fonts/source-sans-pro-semibolditalic-522a9ee9b3b2ecbdd3676f3bfb53187d.ttf b/pr-preview/pr-238/assets/fonts/source-sans-pro-semibolditalic-522a9ee9b3b2ecbdd3676f3bfb53187d.ttf new file mode 100644 index 0000000000..56442992a5 Binary files /dev/null and b/pr-preview/pr-238/assets/fonts/source-sans-pro-semibolditalic-522a9ee9b3b2ecbdd3676f3bfb53187d.ttf differ diff --git a/pr-preview/pr-238/assets/fonts/source-sans-pro-semibolditalic-a43f56accdef4a0b01f0d88ad86cccf4.woff b/pr-preview/pr-238/assets/fonts/source-sans-pro-semibolditalic-a43f56accdef4a0b01f0d88ad86cccf4.woff new file mode 100644 index 0000000000..7c2d3c74f1 Binary files /dev/null and b/pr-preview/pr-238/assets/fonts/source-sans-pro-semibolditalic-a43f56accdef4a0b01f0d88ad86cccf4.woff differ diff --git a/pr-preview/pr-238/assets/fonts/source-sans-pro-semibolditalic-fb03c6601ab6f48952c4364edcae8167.eot b/pr-preview/pr-238/assets/fonts/source-sans-pro-semibolditalic-fb03c6601ab6f48952c4364edcae8167.eot new file mode 100644 index 0000000000..cdf7334384 Binary files /dev/null and b/pr-preview/pr-238/assets/fonts/source-sans-pro-semibolditalic-fb03c6601ab6f48952c4364edcae8167.eot differ diff --git a/pr-preview/pr-238/assets/images/activity-diagram-example-e5b23e859f3d9726d968128b8bfaa144.png b/pr-preview/pr-238/assets/images/activity-diagram-example-e5b23e859f3d9726d968128b8bfaa144.png new file mode 100644 index 0000000000..0e7dfa3ef4 Binary files /dev/null and b/pr-preview/pr-238/assets/images/activity-diagram-example-e5b23e859f3d9726d968128b8bfaa144.png differ diff --git a/pr-preview/pr-238/assets/images/big-o-complexity-4503eb9ed207279ffce06d4edeebcd51.png b/pr-preview/pr-238/assets/images/big-o-complexity-4503eb9ed207279ffce06d4edeebcd51.png new file mode 100644 index 0000000000..ce062e4764 Binary files /dev/null and b/pr-preview/pr-238/assets/images/big-o-complexity-4503eb9ed207279ffce06d4edeebcd51.png differ diff --git a/pr-preview/pr-238/assets/images/class-diagram-example-72bfae0ca79b41c963cd69b7df1e766d.png b/pr-preview/pr-238/assets/images/class-diagram-example-72bfae0ca79b41c963cd69b7df1e766d.png new file mode 100644 index 0000000000..88d68045a5 Binary files /dev/null and b/pr-preview/pr-238/assets/images/class-diagram-example-72bfae0ca79b41c963cd69b7df1e766d.png differ diff --git a/pr-preview/pr-238/assets/images/example-tree-a5de5278072dd201e94bb92d7a5de8fc.png b/pr-preview/pr-238/assets/images/example-tree-a5de5278072dd201e94bb92d7a5de8fc.png new file mode 100644 index 0000000000..63226febc6 Binary files /dev/null and b/pr-preview/pr-238/assets/images/example-tree-a5de5278072dd201e94bb92d7a5de8fc.png differ diff --git a/pr-preview/pr-238/assets/images/scanner-error-d4042035bbf5c7d0388c24b5364c8b32.png b/pr-preview/pr-238/assets/images/scanner-error-d4042035bbf5c7d0388c24b5364c8b32.png new file mode 100644 index 0000000000..f12666c3f8 Binary files /dev/null and b/pr-preview/pr-238/assets/images/scanner-error-d4042035bbf5c7d0388c24b5364c8b32.png differ diff --git a/pr-preview/pr-238/assets/js/013a2dda.cb1bff3b.js b/pr-preview/pr-238/assets/js/013a2dda.cb1bff3b.js new file mode 100644 index 0000000000..63b25979a0 --- /dev/null +++ b/pr-preview/pr-238/assets/js/013a2dda.cb1bff3b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7479"],{17029:function(e){e.exports=JSON.parse('{"tag":{"label":"data-objects","permalink":"/java-docs/pr-preview/pr-238/tags/data-objects","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":2,"items":[{"id":"documentation/data-objects","title":"Datenobjekte","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/data-objects"},{"id":"exercises/data-objects/data-objects","title":"Datenobjekte","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/data-objects/"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/01c7cd1e.d2995d81.js b/pr-preview/pr-238/assets/js/01c7cd1e.d2995d81.js new file mode 100644 index 0000000000..3306ff3fc0 --- /dev/null +++ b/pr-preview/pr-238/assets/js/01c7cd1e.d2995d81.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1382"],{20882:function(e,a,r){r.r(a),r.d(a,{metadata:()=>t,contentTitle:()=>u,default:()=>p,assets:()=>o,toc:()=>c,frontMatter:()=>l});var t=JSON.parse('{"id":"exercises/java-api/java-api04","title":"JavaAPI04","description":"","source":"@site/docs/exercises/java-api/java-api04.mdx","sourceDirName":"exercises/java-api","slug":"/exercises/java-api/java-api04","permalink":"/java-docs/pr-preview/pr-238/exercises/java-api/java-api04","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/java-api/java-api04.mdx","tags":[],"version":"current","frontMatter":{"title":"JavaAPI04","description":""},"sidebar":"exercisesSidebar","previous":{"title":"JavaAPI03","permalink":"/java-docs/pr-preview/pr-238/exercises/java-api/java-api03"},"next":{"title":"Aufz\xe4hlungen (Enumerations)","permalink":"/java-docs/pr-preview/pr-238/exercises/enumerations/"}}'),n=r("85893"),i=r("50065"),s=r("39661");let l={title:"JavaAPI04",description:""},u=void 0,o={},c=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2},{value:"Hinweis",id:"hinweis",level:2}];function d(e){let a={code:"code",h2:"h2",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Erstelle eine ausf\xfchrbare Klasse, welche den vorzeichenfreien Dezimalwert einer\neingegebenen negativen short-Zahl (-1 bis -32.768) berechnet und ausgibt."}),"\n",(0,n.jsx)(a.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,n.jsx)(a.pre,{children:(0,n.jsx)(a.code,{className:"language-console",children:"Gib bitte einen Wert zwischen -1 und -32.768 ein: -2854\nErgebnis: Der vorzeichenfreie Dezimalwert betr\xe4gt 62682\n"})}),"\n",(0,n.jsx)(a.h2,{id:"hinweis",children:"Hinweis"}),"\n",(0,n.jsxs)(a.p,{children:["Die Klasse ",(0,n.jsx)(a.code,{children:"Short"})," stellt f\xfcr die R\xfcckgabe des vorzeichenfreien Dezimalwerts\neine passende Methode zur Verf\xfcgung."]}),"\n",(0,n.jsx)(s.Z,{pullRequest:"33",branchSuffix:"java-api/04"})]})}function p(e={}){let{wrapper:a}={...(0,i.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},5525:function(e,a,r){r.d(a,{Z:()=>s});var t=r("85893");r("67294");var n=r("67026");let i="tabItem_Ymn6";function s(e){let{children:a,hidden:r,className:s}=e;return(0,t.jsx)("div",{role:"tabpanel",className:(0,n.Z)(i,s),hidden:r,children:a})}},47902:function(e,a,r){r.d(a,{Z:()=>x});var t=r("85893"),n=r("67294"),i=r("67026"),s=r("69599"),l=r("16550"),u=r("32000"),o=r("4520"),c=r("38341"),d=r("76009");function p(e){return n.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||n.isValidElement(e)&&function(e){let{props:a}=e;return!!a&&"object"==typeof a&&"value"in a}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:a,tabValues:r}=e;return r.some(e=>e.value===a)}var v=r("7227");let f="tabList__CuJ",b="tabItem_LNqP";function m(e){let{className:a,block:r,selectedValue:n,selectValue:l,tabValues:u}=e,o=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),d=e=>{let a=e.currentTarget,r=u[o.indexOf(a)].value;r!==n&&(c(a),l(r))},p=e=>{let a=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let r=o.indexOf(e.currentTarget)+1;a=o[r]??o[0];break}case"ArrowLeft":{let r=o.indexOf(e.currentTarget)-1;a=o[r]??o[o.length-1]}}a?.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":r},a),children:u.map(e=>{let{value:a,label:r,attributes:s}=e;return(0,t.jsx)("li",{role:"tab",tabIndex:n===a?0:-1,"aria-selected":n===a,ref:e=>o.push(e),onKeyDown:p,onClick:d,...s,className:(0,i.Z)("tabs__item",b,s?.className,{"tabs__item--active":n===a}),children:r??a},a)})})}function j(e){let{lazy:a,children:r,selectedValue:s}=e,l=(Array.isArray(r)?r:[r]).filter(Boolean);if(a){let e=l.find(e=>e.props.value===s);return e?(0,n.cloneElement)(e,{className:(0,i.Z)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:l.map((e,a)=>(0,n.cloneElement)(e,{key:a,hidden:e.props.value!==s}))})}function g(e){let a=function(e){let{defaultValue:a,queryString:r=!1,groupId:t}=e,i=function(e){let{values:a,children:r}=e;return(0,n.useMemo)(()=>{let e=a??p(r).map(e=>{let{props:{value:a,label:r,attributes:t,default:n}}=e;return{value:a,label:r,attributes:t,default:n}});return!function(e){let a=(0,c.lx)(e,(e,a)=>e.value===a.value);if(a.length>0)throw Error(`Docusaurus error: Duplicate values "${a.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[a,r])}(e),[s,v]=(0,n.useState)(()=>(function(e){let{defaultValue:a,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(a){if(!h({value:a,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${a}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return a}let t=r.find(e=>e.default)??r[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:a,tabValues:i})),[f,b]=function(e){let{queryString:a=!1,groupId:r}=e,t=(0,l.k6)(),i=function(e){let{queryString:a=!1,groupId:r}=e;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:a,groupId:r}),s=(0,o._X)(i);return[s,(0,n.useCallback)(e=>{if(!i)return;let a=new URLSearchParams(t.location.search);a.set(i,e),t.replace({...t.location,search:a.toString()})},[i,t])]}({queryString:r,groupId:t}),[m,j]=function(e){var a;let{groupId:r}=e;let t=(a=r)?`docusaurus.tab.${a}`:null,[i,s]=(0,d.Nk)(t);return[i,(0,n.useCallback)(e=>{if(!!t)s.set(e)},[t,s])]}({groupId:t}),g=(()=>{let e=f??m;return h({value:e,tabValues:i})?e:null})();return(0,u.Z)(()=>{g&&v(g)},[g]),{selectedValue:s,selectValue:(0,n.useCallback)(e=>{if(!h({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);v(e),b(e),j(e)},[b,j,i]),tabValues:i}}(e);return(0,t.jsxs)("div",{className:(0,i.Z)("tabs-container",f),children:[(0,t.jsx)(m,{...a,...e}),(0,t.jsx)(j,{...a,...e})]})}function x(e){let a=(0,v.Z)();return(0,t.jsx)(g,{...e,children:p(e.children)},String(a))}},39661:function(e,a,r){r.d(a,{Z:function(){return u}});var t=r(85893);r(67294);var n=r(47902),i=r(5525),s=r(83012),l=r(45056);function u(e){let{pullRequest:a,branchSuffix:r}=e;return(0,t.jsxs)(n.Z,{children:[(0,t.jsxs)(i.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,t.jsx)(l.Z,{language:"console",children:`git switch exercises/${r}`}),(0,t.jsx)(s.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${r}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(i.Z,{value:"solution",label:"Solution",children:[(0,t.jsx)(l.Z,{language:"console",children:`git switch solutions/${r}`}),(0,t.jsx)(s.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${r}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(i.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,t.jsxs)(s.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${a}/files?diff=split`,children:["PR#",a]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/04e71d92.20efbbfc.js b/pr-preview/pr-238/assets/js/04e71d92.20efbbfc.js new file mode 100644 index 0000000000..707311dcba --- /dev/null +++ b/pr-preview/pr-238/assets/js/04e71d92.20efbbfc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["807"],{80800:function(e){e.exports=JSON.parse('{"tag":{"label":"inhertiance","permalink":"/java-docs/pr-preview/pr-238/tags/inhertiance","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":1,"items":[{"id":"documentation/inheritance","title":"Vererbung","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/inheritance"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/0501bf85.3b11d3be.js b/pr-preview/pr-238/assets/js/0501bf85.3b11d3be.js new file mode 100644 index 0000000000..ca6d2dc395 --- /dev/null +++ b/pr-preview/pr-238/assets/js/0501bf85.3b11d3be.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1876"],{41052:function(e,n,t){t.r(n),t.d(n,{metadata:()=>r,contentTitle:()=>l,default:()=>m,assets:()=>u,toc:()=>c,frontMatter:()=>o});var r=JSON.parse('{"id":"exercises/enumerations/enumerations","title":"Aufz\xe4hlungen (Enumerations)","description":"","source":"@site/docs/exercises/enumerations/enumerations.mdx","sourceDirName":"exercises/enumerations","slug":"/exercises/enumerations/","permalink":"/java-docs/pr-preview/pr-238/exercises/enumerations/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/enumerations/enumerations.mdx","tags":[{"inline":true,"label":"enumerations","permalink":"/java-docs/pr-preview/pr-238/tags/enumerations"}],"version":"current","sidebarPosition":100,"frontMatter":{"title":"Aufz\xe4hlungen (Enumerations)","description":"","sidebar_position":100,"tags":["enumerations"]},"sidebar":"exercisesSidebar","previous":{"title":"JavaAPI04","permalink":"/java-docs/pr-preview/pr-238/exercises/java-api/java-api04"},"next":{"title":"Enumerations01","permalink":"/java-docs/pr-preview/pr-238/exercises/enumerations/enumerations01"}}'),s=t("85893"),i=t("50065"),a=t("94301");let o={title:"Aufz\xe4hlungen (Enumerations)",description:"",sidebar_position:100,tags:["enumerations"]},l=void 0,u={},c=[{value:"\xdcbungsaufgaben",id:"\xfcbungsaufgaben",level:2},{value:"\xdcbungsaufgaben von tutego.de",id:"\xfcbungsaufgaben-von-tutegode",level:2}];function d(e){let n={a:"a",h2:"h2",li:"li",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"\xfcbungsaufgaben",children:"\xdcbungsaufgaben"}),"\n","\n",(0,s.jsx)(a.Z,{}),"\n",(0,s.jsx)(n.h2,{id:"\xfcbungsaufgaben-von-tutegode",children:"\xdcbungsaufgaben von tutego.de"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\xdcbungsaufgabe\n",(0,s.jsx)(n.a,{href:"https://tutego.de/javabuch/aufgaben/oop_classes.html#_radio_eine_am_fm_modulation_geben",children:"I-6-1.3.1"})]}),"\n",(0,s.jsxs)(n.li,{children:["\xdcbungsaufgabe\n",(0,s.jsx)(n.a,{href:"https://tutego.de/javabuch/aufgaben/oop_classes.html#_g%C3%BCltige_start_und_endfrequenz_bei_modulation_setzen",children:"I-6-1.3.2"})]}),"\n"]})]})}function m(e={}){let{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},94301:function(e,n,t){t.d(n,{Z:()=>b});var r=t("85893");t("67294");var s=t("67026"),i=t("69369"),a=t("83012"),o=t("43115"),l=t("63150"),u=t("96025"),c=t("34403");let d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function m(e){let{href:n,children:t}=e;return(0,r.jsx)(a.Z,{href:n,className:(0,s.Z)("card padding--lg",d.cardContainer),children:t})}function f(e){let{href:n,icon:t,title:i,description:a}=e;return(0,r.jsxs)(m,{href:n,children:[(0,r.jsxs)(c.Z,{as:"h2",className:(0,s.Z)("text--truncate",d.cardTitle),title:i,children:[t," ",i]}),a&&(0,r.jsx)("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:a,children:a})]})}function p(e){let{item:n}=e,t=(0,i.LM)(n),s=function(){let{selectMessage:e}=(0,o.c)();return n=>e(n,(0,u.I)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:n}))}();return t?(0,r.jsx)(f,{href:t,icon:"\uD83D\uDDC3\uFE0F",title:n.label,description:n.description??s(n.items.length)}):null}function h(e){let{item:n}=e,t=(0,l.Z)(n.href)?"\uD83D\uDCC4\uFE0F":"\uD83D\uDD17",s=(0,i.xz)(n.docId??void 0);return(0,r.jsx)(f,{href:n.href,icon:t,title:n.label,description:n.description??s?.description})}function g(e){let{item:n}=e;switch(n.type){case"link":return(0,r.jsx)(h,{item:n});case"category":return(0,r.jsx)(p,{item:n});default:throw Error(`unknown item type ${JSON.stringify(n)}`)}}function x(e){let{className:n}=e,t=(0,i.jA)();return(0,r.jsx)(b,{items:t.items,className:n})}function b(e){let{items:n,className:t}=e;if(!n)return(0,r.jsx)(x,{...e});let a=(0,i.MN)(n);return(0,r.jsx)("section",{className:(0,s.Z)("row",t),children:a.map((e,n)=>(0,r.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,r.jsx)(g,{item:e})},n))})}},43115:function(e,n,t){t.d(n,{c:function(){return l}});var r=t(67294),s=t(2933);let i=["zero","one","two","few","many","other"];function a(e){return i.filter(n=>e.includes(n))}let o={locale:"en",pluralForms:a(["one","other"]),select:e=>1===e?"one":"other"};function l(){let e=function(){let{i18n:{currentLocale:e}}=(0,s.Z)();return(0,r.useMemo)(()=>{try{return function(e){let n=new Intl.PluralRules(e);return{locale:e,pluralForms:a(n.resolvedOptions().pluralCategories),select:e=>n.select(e)}}(e)}catch(n){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${n.message} +`),o}},[e])}();return{selectMessage:(n,t)=>(function(e,n,t){let r=e.split("|");if(1===r.length)return r[0];r.length>t.pluralForms.length&&console.error(`For locale=${t.locale}, a maximum of ${t.pluralForms.length} plural forms are expected (${t.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);let s=t.select(n);return r[Math.min(t.pluralForms.indexOf(s),r.length-1)]})(t,n,e)}}},50065:function(e,n,t){t.d(n,{Z:function(){return o},a:function(){return a}});var r=t(67294);let s={},i=r.createContext(s);function a(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/059cf444.e6e03413.js b/pr-preview/pr-238/assets/js/059cf444.e6e03413.js new file mode 100644 index 0000000000..75a2db5735 --- /dev/null +++ b/pr-preview/pr-238/assets/js/059cf444.e6e03413.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4517"],{98582:function(e,n,s){s.d(n,{Z:function(){return r}});var a=s(85893),l=s(67294);function r(e){let{children:n,initSlides:s,width:r=null,height:i=null}=e;return(0,l.useEffect)(()=>{s()}),(0,a.jsx)("div",{className:"reveal reveal-viewport",style:{width:r??"100vw",height:i??"100vh"},children:(0,a.jsx)("div",{className:"slides",children:n})})}},57270:function(e,n,s){s.d(n,{O:function(){return a}});let a=()=>{let e=s(42199),n=s(87251),a=s(60977),l=s(12489);new(s(29197))({plugins:[e,n,a,l]}).initialize({hash:!0})}},63037:function(e,n,s){s.d(n,{K:function(){return l}});var a=s(85893);s(67294);let l=()=>(0,a.jsx)("p",{style:{fontSize:"8px",position:"absolute",bottom:0,right:0},children:"*NKR"})},88857:function(e,n,s){s.r(n),s.d(n,{default:function(){return c}});var a=s(85893),l=s(83012),r=s(98582),i=s(57270),t=s(63037);function c(){return(0,a.jsxs)(r.Z,{initSlides:i.O,children:[(0,a.jsx)("section",{children:(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Agenda"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"Generics"}),(0,a.jsx)("li",{className:"fragment",children:"Optional"}),(0,a.jsx)("li",{className:"fragment",children:"Record I"})]})]})}),(0,a.jsxs)("section",{children:[(0,a.jsx)("section",{children:(0,a.jsx)("h2",{children:"Generics"})}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Generische Typen"}),(0,a.jsx)("p",{className:"fragment",children:"In Java k\xf6nnen Klassen und Interfaces generisch sein."}),(0,a.jsx)("p",{className:"fragment",children:"Generisch hei\xdft, dass Funktionalit\xe4t unabh\xe4ngig von einem Typ implementiert werden k\xf6nnen."})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Beispiele Generische Klassen/Interfaces"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"ArrayList"}),(0,a.jsx)("li",{className:"fragment",children:"Comparator"}),(0,a.jsx)("li",{className:"fragment",children:"Comparable"})]}),(0,a.jsx)("p",{className:"fragment",children:"Alle Klassen stellen immer die gleiche Funktionalit\xe4t bereit, egal welchen Typ wir verwenden."})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Beispiele ArrayList"}),(0,a.jsx)("p",{className:"fragment",children:"Egal ob wir Objekte vom Typ Human, Dog, String oder Integer in einer ArrayList abspeichern, wir haben immer die gleichen Methoden zur verf\xfcgung."}),(0,a.jsx)("p",{className:"fragment",children:"add, remove, size etc."})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Beispiel Comparator"}),(0,a.jsx)("p",{className:"fragment",children:"Egal ob wir Comparator oder Comparable Klassen vom Typ Human, Dog, String oder Integer erstellen, wir haben immer die gleichen Methoden zur verf\xfcgung."}),(0,a.jsx)("p",{className:"fragment",children:"Collections.sort"})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Verwendung Generics I"}),(0,a.jsxs)("p",{className:"fragment",children:["Will man in seiner Anwendung eine Liste von Menschen abspeichern ist der ",(0,a.jsx)("b",{children:"spezifische"})," Typ bekannt."]}),(0,a.jsxs)("p",{className:"fragment",children:["Nach dem Klassennamen wird innerhalb von spitzen Klammern, der"," ",(0,a.jsx)("b",{children:"spezifische"})," Typ angegeben."]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Verwendung Generics II"}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{"data-line-numbers":"3|6",className:"java",dangerouslySetInnerHTML:{__html:"public class Main {\n public static void main(String[] args) {\n ArrayList<Human> humans = new ArrayList<>();\n }\n}\npublic class HumanComp implements Comparator<Human> {\n public int compare(Human h1, Human h2) {\n // implementation details\n }\n}\n"}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Implementierung Generics I"}),(0,a.jsx)("p",{className:"fragment",children:"Um eine generische Klasse zu erstellen, wird nach dem Klassennamen in spitzen Klammern der Typparameter angegeben."}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Team<T> {\n // implementierung der Klasse\n}\n"}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Typparameter I"}),(0,a.jsx)("pre",{children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Team<T> {\n // implementierung der Klasse\n}\n"}})}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Team<A> {\n // implementierung der Klasse\n}\n"}})}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Team<HANS> {\n // implementierung der Klasse\n}\n"}})}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Team<BLIBLABLUBB> {\n // implementierung der Klasse\n}\n"}})}),(0,a.jsx)("p",{className:"fragment",children:"Der Bezeichner des Typparameters kann frei gew\xe4hlt werden."})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Typparameter II"}),(0,a.jsx)("pre",{children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Team<T> {\n // implementierung der Klasse\n}\n"}})}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Team<T,U> {\n // implementierung der Klasse\n}\n"}})}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Team<T, U, V> {\n // implementierung der Klasse\n}\n"}})}),(0,a.jsx)("p",{className:"fragment",children:"Es k\xf6nnen mehrere Typparameter kommagetrennt angegeben werden."})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Verwenden von Typparameter I"}),(0,a.jsx)("pre",{children:(0,a.jsx)("code",{"data-line-numbers":"1-15|1|3,12",className:"java",dangerouslySetInnerHTML:{__html:"public class Team<T> {\n private String teamName;\n private ArrayList<T> teamMembers = new ArrayList<>();\n public Team(String teamName) {\n this.teamName = teamName;\n }\n \n public String getTeamName() {\n return this.teamName;\n }\n \n public void addMember(T member) {\n this.teamMembers.add(member);\n }\n}\n"}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Verwenden von Typargumenten"}),(0,a.jsx)("pre",{children:(0,a.jsx)("code",{"data-line-numbers":"1-10|3|4|6-7|8",className:"java",dangerouslySetInnerHTML:{__html:'public class Main {\n public static void main(String[] args) {\n Team<FootballPlayer> scf = new Team<>("SC Freiburg");\n Team<HockeyPlayer> wildwings = new Team<>("Wildwings");\n \n scf.addMember(new FootballPlayer("Steffen");\n scf.addMember(new HockeyPlayer("Mirco"); // fails\n wildwings.addMember(new HockeyPlayer("Mirco");\n }\n}\n'}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Unterschied Parameter und Argument"}),(0,a.jsx)("pre",{children:(0,a.jsx)("code",{"data-line-numbers":"1-8|2|6",className:"java",dangerouslySetInnerHTML:{__html:"public class Main {\n public static int add(int a, int b) { // Parameter\n return a + b;\n }\n public static void main(String[] args) {\n int result = Main.add(1, 2); // Argumente\n }\n}\n"}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Unterschied Typparameter und Typargument"}),(0,a.jsx)("pre",{children:(0,a.jsx)("code",{"data-line-numbers":"1-6|1|2|5",className:"java",dangerouslySetInnerHTML:{__html:"public class Team<T> { // Typparameter\n public ArrayList<T> members; // Typargument\n}\n//...\nTeam<Human> humanTeam = new Team<>();// Typargument\n//...\n"}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:(0,a.jsx)(l.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/generics",children:"Demo - Generics"})}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"spezifisches Football- und Hockeyteam"}),(0,a.jsx)("li",{className:"fragment",children:"Generische Team Klasse"}),(0,a.jsx)("li",{className:"fragment",children:"Problem: Spieler eines Teams ausgeben"})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Einschr\xe4nken von Typparametern I"}),(0,a.jsx)("p",{children:"Um noch mehr Funktionalit\xe4ten in eine generische Klasse auszulagern ist es notwendig den Typ einzuschr\xe4nken."})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Einschr\xe4nken von Typparametern II"}),(0,a.jsxs)("p",{children:["Mit ",(0,a.jsx)("b",{children:"extends"})," und ",(0,a.jsx)("b",{children:"super"})," k\xf6nnen die m\xf6glichen Typen eingeschr\xe4nkt werden."]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Einschr\xe4nken von Typparametern III"}),(0,a.jsx)("pre",{children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Team<T extends Player> {\n // Player und Subtypen von Player erlaubt\n}\n"}})}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Team<T super Player> {\n // Player und Supertypen von Player erlaubt \n}\n"}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Einschr\xe4nken von Typparametern IV"}),(0,a.jsx)("pre",{children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Player {}\npublic class BaseballPlayer extends Player {}\npublic class FootballPlayer extends Player {}\npublic class ExtremeFootballPlayer extends FootballPlayer {}\n"}})}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Team<T extends Player> {} //PBFE erlaubt\npublic class Team<T extends FootballPlayer> {} //FE erlaubt\npublic class Team<T super Player> {} // P erlaubt\npublic class Team<T super FootballPlayer> {} //PF erlaubt"}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:(0,a.jsx)(l.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/generics",children:"Demo - Generics"})}),(0,a.jsx)("span",{children:"Spieler eines Generischen Teams ausgeben "}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"Vererbung"}),(0,a.jsx)("li",{className:"fragment",children:"Interface"})]})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("section",{children:(0,a.jsx)("h2",{children:"Optional"})}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Optional - Klasse"}),(0,a.jsx)("p",{className:"fragment",children:"Mit Hilfe der Optional Klasse kann man NullPointerExceptions einfach behandeln."}),(0,a.jsx)("p",{className:"fragment",children:"Was sind NullPointerExceptions?"})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Null Pointer Exception I"}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n public String name;\n public Dog(String name) {\n this.name = name;\n }\n}\n"}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Null Pointer Exception II"}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'public class Main {\n public static void main(String[] args) {\n Dog doggo = new Dog(null);\n doggo.name.equals("Bello"); // funktioniert nicht\n }\n}\n'}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Optional als L\xf6sung"}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n public Optional<String> name;\n public Dog(String name) {\n this.name = Optional.ofNullable(name);\n }\n}\n"}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Optional - Wrapper um den echten Wert"}),(0,a.jsx)("p",{className:"fragment",children:"Die Optional Klasse verpackt den echten Wert hinter Methoden."}),(0,a.jsx)("p",{className:"fragment",children:"Mithilfe von Methoden kann \xfcberpr\xfcft werden, ob ein Wert Null ist oder nicht."})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Optional - Methoden I"}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java","data-line-numbers":"3-9|3|4|5|7|8",dangerouslySetInnerHTML:{__html:'public class Main {\n public static void main(String[] args) {\n Optional<String> name = Name.createName();\n if(name.isPresent()) {\n System.out.println(name.get());\n }\n if(name.isEmpty()) {\n System.out.println("No Name");\n }\n }\n}\n'}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Optional - Methoden II*"}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'public class Main {\n public static void main(String[] args) {\n Optional<String> name = Name.createName();\n name.ifPresent((value) -> System.out.println(value));\n name.ifPresentOrElse(\n (value) -> System.out.println(value),\n () -> System.out.println("No Name")\n );\n }\n}\n'}})}),(0,a.jsx)("div",{className:"fragment",children:(0,a.jsx)(t.K,{})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:(0,a.jsx)(l.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/optional",children:"Demo - Optional"})}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"Human Middlename"}),(0,a.jsx)("li",{className:"fragment",children:"University Search Student"})]})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("section",{children:(0,a.jsx)("h2",{children:"Record I"})}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Records"}),(0,a.jsx)("p",{className:"fragment",children:"Ein Record ist eine Datenklasse, deren Attribute nicht ver\xe4ndert werden k\xf6nnen."}),(0,a.jsx)("p",{className:"fragment",children:"Eine Datenklasse hat somit finale Attribute und Getter."})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Beispiel Record Dog"}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public record Dog(String name, int age) {}\n"}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Verwendung Record Dog"}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'public class Main {\n public static void main(String[] args) {\n Dog bello = new Dog("Bello", 12);\n String name = bello.name();\n int age = bello.age();\n }\n}\n'}})})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Rest of the Day"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:(0,a.jsx)(l.Z,{to:"https://jappuccini.github.io/java-docs/exercises/generics/",children:"Generics Aufgaben"})}),(0,a.jsx)("li",{className:"fragment",children:(0,a.jsx)(l.Z,{to:"https://jappuccini.github.io/java-docs/exercises/optionals/",children:"Optional Aufgaben"})})]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/05bd7ab0.c3257247.js b/pr-preview/pr-238/assets/js/05bd7ab0.c3257247.js new file mode 100644 index 0000000000..f70b18d322 --- /dev/null +++ b/pr-preview/pr-238/assets/js/05bd7ab0.c3257247.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3615"],{95042:function(e){e.exports=JSON.parse('{"tag":{"label":"cases","permalink":"/java-docs/pr-preview/pr-238/tags/cases","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":2,"items":[{"id":"documentation/cases","title":"Verzweigungen","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/cases"},{"id":"exercises/cases/cases","title":"Verzweigungen","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/06004260.819f9a95.js b/pr-preview/pr-238/assets/js/06004260.819f9a95.js new file mode 100644 index 0000000000..6c2158a65e --- /dev/null +++ b/pr-preview/pr-238/assets/js/06004260.819f9a95.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4159"],{64707:function(e,n,t){t.r(n),t.d(n,{metadata:()=>i,contentTitle:()=>a,default:()=>l,assets:()=>c,toc:()=>d,frontMatter:()=>s});var i=JSON.parse('{"id":"exercises/coding/coding","title":"Programmieren","description":"","source":"@site/docs/exercises/coding/coding.md","sourceDirName":"exercises/coding","slug":"/exercises/coding/","permalink":"/java-docs/pr-preview/pr-238/exercises/coding/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/coding/coding.md","tags":[{"inline":true,"label":"coding","permalink":"/java-docs/pr-preview/pr-238/tags/coding"}],"version":"current","sidebarPosition":10,"frontMatter":{"title":"Programmieren","description":"","sidebar_position":10,"tags":["coding"]},"sidebar":"exercisesSidebar","next":{"title":"Git","permalink":"/java-docs/pr-preview/pr-238/exercises/git/"}}'),r=t("85893"),o=t("50065");let s={title:"Programmieren",description:"",sidebar_position:10,tags:["coding"]},a=void 0,c={},d=[{value:"\xdcbungsaufgaben von tutego.de",id:"\xfcbungsaufgaben-von-tutegode",level:2}];function u(e){let n={a:"a",h2:"h2",li:"li",ul:"ul",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"\xfcbungsaufgaben-von-tutegode",children:"\xdcbungsaufgaben von tutego.de"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\xdcbungsaufgabe\n",(0,r.jsx)(n.a,{href:"https://tutego.de/javabuch/aufgaben/intro.html#_java_programme_portieren",children:"I-1-1.1.1"})]}),"\n"]})]})}function l(e={}){let{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},50065:function(e,n,t){t.d(n,{Z:function(){return a},a:function(){return s}});var i=t(67294);let r={},o=i.createContext(r);function s(e){let n=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/08e3dfdd.18b2e54e.js b/pr-preview/pr-238/assets/js/08e3dfdd.18b2e54e.js new file mode 100644 index 0000000000..4fb1f577f3 --- /dev/null +++ b/pr-preview/pr-238/assets/js/08e3dfdd.18b2e54e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1838"],{79962:function(a){a.exports=JSON.parse('{"tag":{"label":"lombok","permalink":"/java-docs/pr-preview/pr-238/tags/lombok","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":1,"items":[{"id":"documentation/lombok","title":"Lombok","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/lombok"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/0a30bb28.42aab7f8.js b/pr-preview/pr-238/assets/js/0a30bb28.42aab7f8.js new file mode 100644 index 0000000000..7a5551c2a4 --- /dev/null +++ b/pr-preview/pr-238/assets/js/0a30bb28.42aab7f8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4957"],{57712:function(a){a.exports=JSON.parse('{"tag":{"label":"data-types","permalink":"/java-docs/pr-preview/pr-238/tags/data-types","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":1,"items":[{"id":"documentation/data-types","title":"Datentypen","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/data-types"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/0a665869.bfe0c924.js b/pr-preview/pr-238/assets/js/0a665869.bfe0c924.js new file mode 100644 index 0000000000..3adadfaa84 --- /dev/null +++ b/pr-preview/pr-238/assets/js/0a665869.bfe0c924.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["9984"],{35890:function(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"documentationSidebar":[{"type":"link","label":"Einf\xfchrung","href":"/java-docs/pr-preview/pr-238/","docId":"documentation/introduction","unlisted":false},{"type":"link","label":"Programmieren","href":"/java-docs/pr-preview/pr-238/documentation/coding","docId":"documentation/coding","unlisted":false},{"type":"link","label":"Git","href":"/java-docs/pr-preview/pr-238/documentation/git","docId":"documentation/git","unlisted":false},{"type":"link","label":"Die Programmiersprache Java","href":"/java-docs/pr-preview/pr-238/documentation/java","docId":"documentation/java","unlisted":false},{"type":"link","label":"Softwaredesign","href":"/java-docs/pr-preview/pr-238/documentation/design","docId":"documentation/design","unlisted":false},{"type":"link","label":"Aufbau einer Java-Klasse","href":"/java-docs/pr-preview/pr-238/documentation/class-structure","docId":"documentation/class-structure","unlisted":false},{"type":"link","label":"Datentypen","href":"/java-docs/pr-preview/pr-238/documentation/data-types","docId":"documentation/data-types","unlisted":false},{"type":"link","label":"Datenobjekte","href":"/java-docs/pr-preview/pr-238/documentation/data-objects","docId":"documentation/data-objects","unlisted":false},{"type":"link","label":"Zeichenketten (Strings)","href":"/java-docs/pr-preview/pr-238/documentation/strings","docId":"documentation/strings","unlisted":false},{"type":"link","label":"Operatoren","href":"/java-docs/pr-preview/pr-238/documentation/operators","docId":"documentation/operators","unlisted":false},{"type":"link","label":"Mathematische Berechnungen","href":"/java-docs/pr-preview/pr-238/documentation/calculations","docId":"documentation/calculations","unlisted":false},{"type":"link","label":"Pseudozufallszahlen","href":"/java-docs/pr-preview/pr-238/documentation/pseudo-random-numbers","docId":"documentation/pseudo-random-numbers","unlisted":false},{"type":"link","label":"Konsolenanwendungen","href":"/java-docs/pr-preview/pr-238/documentation/console-applications","docId":"documentation/console-applications","unlisted":false},{"type":"link","label":"Verzweigungen","href":"/java-docs/pr-preview/pr-238/documentation/cases","docId":"documentation/cases","unlisted":false},{"type":"link","label":"Schleifen","href":"/java-docs/pr-preview/pr-238/documentation/loops","docId":"documentation/loops","unlisted":false},{"type":"link","label":"Felder (Arrays)","href":"/java-docs/pr-preview/pr-238/documentation/arrays","docId":"documentation/arrays","unlisted":false},{"type":"link","label":"Feldbasierte Listen (ArrayLists)","href":"/java-docs/pr-preview/pr-238/documentation/array-lists","docId":"documentation/array-lists","unlisted":false},{"type":"link","label":"Objektorientierte Programmierung","href":"/java-docs/pr-preview/pr-238/documentation/oo","docId":"documentation/oo","unlisted":false},{"type":"link","label":"Klassen","href":"/java-docs/pr-preview/pr-238/documentation/classes","docId":"documentation/classes","unlisted":false},{"type":"link","label":"Referenzen und Objekte","href":"/java-docs/pr-preview/pr-238/documentation/references-and-objects","docId":"documentation/references-and-objects","unlisted":false},{"type":"link","label":"Die Java API","href":"/java-docs/pr-preview/pr-238/documentation/java-api","docId":"documentation/java-api","unlisted":false},{"type":"link","label":"Wrapper-Klassen","href":"/java-docs/pr-preview/pr-238/documentation/wrappers","docId":"documentation/wrappers","unlisted":false},{"type":"link","label":"Datums- und Zeitangaben","href":"/java-docs/pr-preview/pr-238/documentation/dates-and-times","docId":"documentation/dates-and-times","unlisted":false},{"type":"link","label":"Dateien und Verzeichnisse","href":"/java-docs/pr-preview/pr-238/documentation/files","docId":"documentation/files","unlisted":false},{"type":"link","label":"Aufz\xe4hlungen (Enumerations)","href":"/java-docs/pr-preview/pr-238/documentation/enumerations","docId":"documentation/enumerations","unlisted":false},{"type":"link","label":"Klassendiagramme","href":"/java-docs/pr-preview/pr-238/documentation/class-diagrams","docId":"documentation/class-diagrams","unlisted":false},{"type":"link","label":"Aktivit\xe4tsdiagramme","href":"/java-docs/pr-preview/pr-238/documentation/activity-diagrams","docId":"documentation/activity-diagrams","unlisted":false},{"type":"link","label":"Vererbung","href":"/java-docs/pr-preview/pr-238/documentation/inheritance","docId":"documentation/inheritance","unlisted":false},{"type":"link","label":"(Dynamische) Polymorphie","href":"/java-docs/pr-preview/pr-238/documentation/polymorphy","docId":"documentation/polymorphy","unlisted":false},{"type":"link","label":"Die Mutter aller Klassen","href":"/java-docs/pr-preview/pr-238/documentation/object","docId":"documentation/object","unlisted":false},{"type":"link","label":"Abstrakte und finale Klassen und Methoden","href":"/java-docs/pr-preview/pr-238/documentation/abstract-and-final","docId":"documentation/abstract-and-final","unlisted":false},{"type":"link","label":"Schnittstellen (Interfaces)","href":"/java-docs/pr-preview/pr-238/documentation/interfaces","docId":"documentation/interfaces","unlisted":false},{"type":"link","label":"Listen","href":"/java-docs/pr-preview/pr-238/documentation/lists","docId":"documentation/lists","unlisted":false},{"type":"link","label":"Komparatoren","href":"/java-docs/pr-preview/pr-238/documentation/comparators","docId":"documentation/comparators","unlisted":false},{"type":"link","label":"Java Collections Framework","href":"/java-docs/pr-preview/pr-238/documentation/java-collections-framework","docId":"documentation/java-collections-framework","unlisted":false},{"type":"link","label":"Schl\xfcsseltransformationen (Hashing)","href":"/java-docs/pr-preview/pr-238/documentation/hashing","docId":"documentation/hashing","unlisted":false},{"type":"link","label":"B\xe4ume","href":"/java-docs/pr-preview/pr-238/documentation/trees","docId":"documentation/trees","unlisted":false},{"type":"link","label":"Ausnahmen (Exceptions)","href":"/java-docs/pr-preview/pr-238/documentation/exceptions","docId":"documentation/exceptions","unlisted":false},{"type":"link","label":"Datenklassen (Records)","href":"/java-docs/pr-preview/pr-238/documentation/records","docId":"documentation/records","unlisted":false},{"type":"link","label":"Maven","href":"/java-docs/pr-preview/pr-238/documentation/maven","docId":"documentation/maven","unlisted":false},{"type":"link","label":"Lombok","href":"/java-docs/pr-preview/pr-238/documentation/lombok","docId":"documentation/lombok","unlisted":false},{"type":"link","label":"Simple Logging Facade for Java (SLF4J)","href":"/java-docs/pr-preview/pr-238/documentation/slf4j","docId":"documentation/slf4j","unlisted":false},{"type":"link","label":"Innere Klassen (Inner Classes)","href":"/java-docs/pr-preview/pr-238/documentation/inner-classes","docId":"documentation/inner-classes","unlisted":false},{"type":"link","label":"Lambda-Ausdr\xfccke (Lambdas)","href":"/java-docs/pr-preview/pr-238/documentation/lambdas","docId":"documentation/lambdas","unlisted":false},{"type":"link","label":"Generische Programmierung","href":"/java-docs/pr-preview/pr-238/documentation/generics","docId":"documentation/generics","unlisted":false},{"type":"link","label":"Assoziativspeicher (Maps)","href":"/java-docs/pr-preview/pr-238/documentation/maps","docId":"documentation/maps","unlisted":false},{"type":"link","label":"Optionals","href":"/java-docs/pr-preview/pr-238/documentation/optionals","docId":"documentation/optionals","unlisted":false},{"type":"link","label":"Die Java Stream API","href":"/java-docs/pr-preview/pr-238/documentation/java-stream-api","docId":"documentation/java-stream-api","unlisted":false},{"type":"link","label":"Softwaretests","href":"/java-docs/pr-preview/pr-238/documentation/tests","docId":"documentation/tests","unlisted":false},{"type":"link","label":"Komponententests (Unit Tests)","href":"/java-docs/pr-preview/pr-238/documentation/unit-tests","docId":"documentation/unit-tests","unlisted":false},{"type":"link","label":"Datenstr\xf6me (IO-Streams)","href":"/java-docs/pr-preview/pr-238/documentation/io-streams","docId":"documentation/io-streams","unlisted":false},{"type":"link","label":"Algorithmen","href":"/java-docs/pr-preview/pr-238/documentation/algorithms","docId":"documentation/algorithms","unlisted":false},{"type":"link","label":"Grafische Benutzeroberfl\xe4chen","href":"/java-docs/pr-preview/pr-238/documentation/gui","docId":"documentation/gui","unlisted":false},{"type":"link","label":"JavaFX","href":"/java-docs/pr-preview/pr-238/documentation/javafx","docId":"documentation/javafx","unlisted":false}],"exercisesSidebar":[{"type":"link","label":"Programmieren","href":"/java-docs/pr-preview/pr-238/exercises/coding/","docId":"exercises/coding/coding","unlisted":false},{"type":"category","label":"Git","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Git01","href":"/java-docs/pr-preview/pr-238/exercises/git/git01","docId":"exercises/git/git01","unlisted":false},{"type":"link","label":"Git02","href":"/java-docs/pr-preview/pr-238/exercises/git/git02","docId":"exercises/git/git02","unlisted":false},{"type":"link","label":"Git03","href":"/java-docs/pr-preview/pr-238/exercises/git/git03","docId":"exercises/git/git03","unlisted":false},{"type":"link","label":"Git04","href":"/java-docs/pr-preview/pr-238/exercises/git/git04","docId":"exercises/git/git04","unlisted":false},{"type":"link","label":"Git05","href":"/java-docs/pr-preview/pr-238/exercises/git/git05","docId":"exercises/git/git05","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/git/"},{"type":"category","label":"Aufbau einer Java-Klasse","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ClassStructure01","href":"/java-docs/pr-preview/pr-238/exercises/class-structure/class-structure01","docId":"exercises/class-structure/class-structure01","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/class-structure/"},{"type":"category","label":"Datenobjekte","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"DataObjects01","href":"/java-docs/pr-preview/pr-238/exercises/data-objects/data-objects01","docId":"exercises/data-objects/data-objects01","unlisted":false},{"type":"link","label":"DataObjects02","href":"/java-docs/pr-preview/pr-238/exercises/data-objects/data-objects02","docId":"exercises/data-objects/data-objects02","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/data-objects/"},{"type":"category","label":"Operatoren","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Operators01","href":"/java-docs/pr-preview/pr-238/exercises/operators/operators01","docId":"exercises/operators/operators01","unlisted":false},{"type":"link","label":"Operators02","href":"/java-docs/pr-preview/pr-238/exercises/operators/operators02","docId":"exercises/operators/operators02","unlisted":false},{"type":"link","label":"Operators03","href":"/java-docs/pr-preview/pr-238/exercises/operators/operators03","docId":"exercises/operators/operators03","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/operators/"},{"type":"category","label":"Konsolenanwendungen","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ConsoleApplications01","href":"/java-docs/pr-preview/pr-238/exercises/console-applications/console-applications01","docId":"exercises/console-applications/console-applications01","unlisted":false},{"type":"link","label":"ConsoleApplications02","href":"/java-docs/pr-preview/pr-238/exercises/console-applications/console-applications02","docId":"exercises/console-applications/console-applications02","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/console-applications/"},{"type":"category","label":"Verzweigungen","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Cases01","href":"/java-docs/pr-preview/pr-238/exercises/cases/cases01","docId":"exercises/cases/cases01","unlisted":false},{"type":"link","label":"Cases02","href":"/java-docs/pr-preview/pr-238/exercises/cases/cases02","docId":"exercises/cases/cases02","unlisted":false},{"type":"link","label":"Cases03","href":"/java-docs/pr-preview/pr-238/exercises/cases/cases03","docId":"exercises/cases/cases03","unlisted":false},{"type":"link","label":"Cases04","href":"/java-docs/pr-preview/pr-238/exercises/cases/cases04","docId":"exercises/cases/cases04","unlisted":false},{"type":"link","label":"Cases05","href":"/java-docs/pr-preview/pr-238/exercises/cases/cases05","docId":"exercises/cases/cases05","unlisted":false},{"type":"link","label":"Cases06","href":"/java-docs/pr-preview/pr-238/exercises/cases/cases06","docId":"exercises/cases/cases06","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/cases/"},{"type":"category","label":"Schleifen","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Loops01","href":"/java-docs/pr-preview/pr-238/exercises/loops/loops01","docId":"exercises/loops/loops01","unlisted":false},{"type":"link","label":"Loops02","href":"/java-docs/pr-preview/pr-238/exercises/loops/loops02","docId":"exercises/loops/loops02","unlisted":false},{"type":"link","label":"Loops03","href":"/java-docs/pr-preview/pr-238/exercises/loops/loops03","docId":"exercises/loops/loops03","unlisted":false},{"type":"link","label":"Loops04","href":"/java-docs/pr-preview/pr-238/exercises/loops/loops04","docId":"exercises/loops/loops04","unlisted":false},{"type":"link","label":"Loops05","href":"/java-docs/pr-preview/pr-238/exercises/loops/loops05","docId":"exercises/loops/loops05","unlisted":false},{"type":"link","label":"Loops06","href":"/java-docs/pr-preview/pr-238/exercises/loops/loops06","docId":"exercises/loops/loops06","unlisted":false},{"type":"link","label":"Loops07","href":"/java-docs/pr-preview/pr-238/exercises/loops/loops07","docId":"exercises/loops/loops07","unlisted":false},{"type":"link","label":"Loops08","href":"/java-docs/pr-preview/pr-238/exercises/loops/loops08","docId":"exercises/loops/loops08","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/loops/"},{"type":"category","label":"Felder (Arrays)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Arrays01","href":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays01","docId":"exercises/arrays/arrays01","unlisted":false},{"type":"link","label":"Arrays02","href":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays02","docId":"exercises/arrays/arrays02","unlisted":false},{"type":"link","label":"Arrays03","href":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays03","docId":"exercises/arrays/arrays03","unlisted":false},{"type":"link","label":"Arrays04","href":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays04","docId":"exercises/arrays/arrays04","unlisted":false},{"type":"link","label":"Arrays05","href":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays05","docId":"exercises/arrays/arrays05","unlisted":false},{"type":"link","label":"Arrays06","href":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays06","docId":"exercises/arrays/arrays06","unlisted":false},{"type":"link","label":"Arrays07","href":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays07","docId":"exercises/arrays/arrays07","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/arrays/"},{"type":"category","label":"Objektorientierte Programmierung","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"OO01","href":"/java-docs/pr-preview/pr-238/exercises/oo/oo01","docId":"exercises/oo/oo01","unlisted":false},{"type":"link","label":"OO02","href":"/java-docs/pr-preview/pr-238/exercises/oo/oo02","docId":"exercises/oo/oo02","unlisted":false},{"type":"link","label":"OO03","href":"/java-docs/pr-preview/pr-238/exercises/oo/oo03","docId":"exercises/oo/oo03","unlisted":false},{"type":"link","label":"OO04","href":"/java-docs/pr-preview/pr-238/exercises/oo/oo04","docId":"exercises/oo/oo04","unlisted":false},{"type":"link","label":"OO05","href":"/java-docs/pr-preview/pr-238/exercises/oo/oo05","docId":"exercises/oo/oo05","unlisted":false},{"type":"link","label":"OO06","href":"/java-docs/pr-preview/pr-238/exercises/oo/oo06","docId":"exercises/oo/oo06","unlisted":false},{"type":"link","label":"OO07","href":"/java-docs/pr-preview/pr-238/exercises/oo/oo07","docId":"exercises/oo/oo07","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/oo/"},{"type":"category","label":"Die Java API","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"JavaAPI01","href":"/java-docs/pr-preview/pr-238/exercises/java-api/java-api01","docId":"exercises/java-api/java-api01","unlisted":false},{"type":"link","label":"JavaAPI02","href":"/java-docs/pr-preview/pr-238/exercises/java-api/java-api02","docId":"exercises/java-api/java-api02","unlisted":false},{"type":"link","label":"JavaAPI03","href":"/java-docs/pr-preview/pr-238/exercises/java-api/java-api03","docId":"exercises/java-api/java-api03","unlisted":false},{"type":"link","label":"JavaAPI04","href":"/java-docs/pr-preview/pr-238/exercises/java-api/java-api04","docId":"exercises/java-api/java-api04","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/java-api/"},{"type":"category","label":"Aufz\xe4hlungen (Enumerations)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Enumerations01","href":"/java-docs/pr-preview/pr-238/exercises/enumerations/enumerations01","docId":"exercises/enumerations/enumerations01","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/enumerations/"},{"type":"category","label":"Klassendiagramme","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ClassDiagrams01","href":"/java-docs/pr-preview/pr-238/exercises/class-diagrams/class-diagrams01","docId":"exercises/class-diagrams/class-diagrams01","unlisted":false},{"type":"link","label":"ClassDiagrams02","href":"/java-docs/pr-preview/pr-238/exercises/class-diagrams/class-diagrams02","docId":"exercises/class-diagrams/class-diagrams02","unlisted":false},{"type":"link","label":"ClassDiagrams03","href":"/java-docs/pr-preview/pr-238/exercises/class-diagrams/class-diagrams03","docId":"exercises/class-diagrams/class-diagrams03","unlisted":false},{"type":"link","label":"ClassDiagrams04","href":"/java-docs/pr-preview/pr-238/exercises/class-diagrams/class-diagrams04","docId":"exercises/class-diagrams/class-diagrams04","unlisted":false},{"type":"link","label":"ClassDiagrams05","href":"/java-docs/pr-preview/pr-238/exercises/class-diagrams/class-diagrams05","docId":"exercises/class-diagrams/class-diagrams05","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/class-diagrams/"},{"type":"category","label":"Aktivit\xe4tsdiagramme","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ActivityDiagrams01","href":"/java-docs/pr-preview/pr-238/exercises/activity-diagrams/activity-diagrams01","docId":"exercises/activity-diagrams/activity-diagrams01","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/activity-diagrams/"},{"type":"category","label":"Polymorphie","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Polymorphism01","href":"/java-docs/pr-preview/pr-238/exercises/polymorphy/polymorphy01","docId":"exercises/polymorphy/polymorphy01","unlisted":false},{"type":"link","label":"Polymorphism02","href":"/java-docs/pr-preview/pr-238/exercises/polymorphy/polymorphy02","docId":"exercises/polymorphy/polymorphy02","unlisted":false},{"type":"link","label":"Polymorphism03","href":"/java-docs/pr-preview/pr-238/exercises/polymorphy/polymorphy03","docId":"exercises/polymorphy/polymorphy03","unlisted":false},{"type":"link","label":"Polymorphism04","href":"/java-docs/pr-preview/pr-238/exercises/polymorphy/polymorphy04","docId":"exercises/polymorphy/polymorphy04","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/polymorphy/"},{"type":"category","label":"Abstrakte und finale Klassen und Methoden","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"AbstractAndFinal01","href":"/java-docs/pr-preview/pr-238/exercises/abstract-and-final/abstract-and-final01","docId":"exercises/abstract-and-final/abstract-and-final01","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/abstract-and-final/"},{"type":"category","label":"Schnittstellen (Interfaces)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Interfaces01","href":"/java-docs/pr-preview/pr-238/exercises/interfaces/interfaces01","docId":"exercises/interfaces/interfaces01","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/interfaces/"},{"type":"category","label":"Komparatoren","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Comparators01","href":"/java-docs/pr-preview/pr-238/exercises/comparators/comparators01","docId":"exercises/comparators/comparators01","unlisted":false},{"type":"link","label":"Comparators02","href":"/java-docs/pr-preview/pr-238/exercises/comparators/comparators02","docId":"exercises/comparators/comparators02","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/comparators/"},{"type":"category","label":"Schl\xfcsseltransformationen (Hashing)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Hashing01","href":"/java-docs/pr-preview/pr-238/exercises/hashing/hashing01","docId":"exercises/hashing/hashing01","unlisted":false},{"type":"link","label":"Hashing02","href":"/java-docs/pr-preview/pr-238/exercises/hashing/hashing02","docId":"exercises/hashing/hashing02","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/hashing/"},{"type":"category","label":"B\xe4ume","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Trees01","href":"/java-docs/pr-preview/pr-238/exercises/trees/trees01","docId":"exercises/trees/trees01","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/trees/"},{"type":"category","label":"Ausnahmen (Exceptions)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Exceptions01","href":"/java-docs/pr-preview/pr-238/exercises/exceptions/exceptions01","docId":"exercises/exceptions/exceptions01","unlisted":false},{"type":"link","label":"Exceptions02","href":"/java-docs/pr-preview/pr-238/exercises/exceptions/exceptions02","docId":"exercises/exceptions/exceptions02","unlisted":false},{"type":"link","label":"Exceptions03","href":"/java-docs/pr-preview/pr-238/exercises/exceptions/exceptions03","docId":"exercises/exceptions/exceptions03","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/exceptions/"},{"type":"category","label":"Innere Klassen (Inner Classes)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"InnerClasses01","href":"/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes01","docId":"exercises/inner-classes/inner-classes01","unlisted":false},{"type":"link","label":"InnerClasses02","href":"/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes02","docId":"exercises/inner-classes/inner-classes02","unlisted":false},{"type":"link","label":"InnerClasses03","href":"/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes03","docId":"exercises/inner-classes/inner-classes03","unlisted":false},{"type":"link","label":"InnerClasses04","href":"/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes04","docId":"exercises/inner-classes/inner-classes04","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/inner-classes/"},{"type":"category","label":"Lambda-Ausdr\xfccke (Lambdas)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Lambdas01","href":"/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas01","docId":"exercises/lambdas/lambdas01","unlisted":false},{"type":"link","label":"Lambdas02","href":"/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas02","docId":"exercises/lambdas/lambdas02","unlisted":false},{"type":"link","label":"Lambdas03","href":"/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas03","docId":"exercises/lambdas/lambdas03","unlisted":false},{"type":"link","label":"Lambdas04","href":"/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas04","docId":"exercises/lambdas/lambdas04","unlisted":false},{"type":"link","label":"Lambdas05","href":"/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas05","docId":"exercises/lambdas/lambdas05","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/lambdas/"},{"type":"category","label":"Generische Programmierung","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Generics01","href":"/java-docs/pr-preview/pr-238/exercises/generics/generics01","docId":"exercises/generics/generics01","unlisted":false},{"type":"link","label":"Generics02","href":"/java-docs/pr-preview/pr-238/exercises/generics/generics02","docId":"exercises/generics/generics02","unlisted":false},{"type":"link","label":"Generics03","href":"/java-docs/pr-preview/pr-238/exercises/generics/generics03","docId":"exercises/generics/generics03","unlisted":false},{"type":"link","label":"Generics04","href":"/java-docs/pr-preview/pr-238/exercises/generics/generics04","docId":"exercises/generics/generics04","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/generics/"},{"type":"category","label":"Assoziativspeicher (Maps)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Maps01","href":"/java-docs/pr-preview/pr-238/exercises/maps/maps01","docId":"exercises/maps/maps01","unlisted":false},{"type":"link","label":"Maps02","href":"/java-docs/pr-preview/pr-238/exercises/maps/maps02","docId":"exercises/maps/maps02","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/maps/"},{"type":"category","label":"Optionals","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Optionals01","href":"/java-docs/pr-preview/pr-238/exercises/optionals/optionals01","docId":"exercises/optionals/optionals01","unlisted":false},{"type":"link","label":"Optionals02","href":"/java-docs/pr-preview/pr-238/exercises/optionals/optionals02","docId":"exercises/optionals/optionals02","unlisted":false},{"type":"link","label":"Optionals03","href":"/java-docs/pr-preview/pr-238/exercises/optionals/optionals03","docId":"exercises/optionals/optionals03","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/optionals/"},{"type":"category","label":"Die Java Stream API","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"JavaStreamAPI01","href":"/java-docs/pr-preview/pr-238/exercises/java-stream-api/java-stream-api01","docId":"exercises/java-stream-api/java-stream-api01","unlisted":false},{"type":"link","label":"JavaStreamAPI02","href":"/java-docs/pr-preview/pr-238/exercises/java-stream-api/java-stream-api02","docId":"exercises/java-stream-api/java-stream-api02","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/java-stream-api/"},{"type":"category","label":"Komponententests (Unit-Tests)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"UnitTests01","href":"/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests01","docId":"exercises/unit-tests/unit-tests01","unlisted":false},{"type":"link","label":"UnitTests02","href":"/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests02","docId":"exercises/unit-tests/unit-tests02","unlisted":false},{"type":"link","label":"UnitTests03","href":"/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests03","docId":"exercises/unit-tests/unit-tests03","unlisted":false},{"type":"link","label":"UnitTests04","href":"/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests04","docId":"exercises/unit-tests/unit-tests04","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/unit-tests/"},{"type":"category","label":"Datenstr\xf6me (IO-Streams)","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"IOStreams01","href":"/java-docs/pr-preview/pr-238/exercises/io-streams/io-streams01","docId":"exercises/io-streams/io-streams01","unlisted":false},{"type":"link","label":"IOStreams02","href":"/java-docs/pr-preview/pr-238/exercises/io-streams/io-streams02","docId":"exercises/io-streams/io-streams02","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/io-streams/"},{"type":"category","label":"Algorithmen","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Algorithms01","href":"/java-docs/pr-preview/pr-238/exercises/algorithms/algorithms01","docId":"exercises/algorithms/algorithms01","unlisted":false},{"type":"link","label":"Algorithms02","href":"/java-docs/pr-preview/pr-238/exercises/algorithms/algorithms02","docId":"exercises/algorithms/algorithms02","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/algorithms/"},{"type":"category","label":"JavaFX","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"JavaFX01","href":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx01","docId":"exercises/javafx/javafx01","unlisted":false},{"type":"link","label":"JavaFX02","href":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx02","docId":"exercises/javafx/javafx02","unlisted":false},{"type":"link","label":"JavaFX03","href":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx03","docId":"exercises/javafx/javafx03","unlisted":false},{"type":"link","label":"JavaFX04","href":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx04","docId":"exercises/javafx/javafx04","unlisted":false},{"type":"link","label":"JavaFX05","href":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx05","docId":"exercises/javafx/javafx05","unlisted":false},{"type":"link","label":"JavaFX06","href":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx06","docId":"exercises/javafx/javafx06","unlisted":false},{"type":"link","label":"JavaFX07","href":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx07","docId":"exercises/javafx/javafx07","unlisted":false},{"type":"link","label":"JavaFX08","href":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx08","docId":"exercises/javafx/javafx08","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exercises/javafx/"}],"examExercisesSidebar":[{"type":"category","label":"Programmierung 1","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Klassendiagramme","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Kartenausteiler","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer","docId":"exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer","unlisted":false},{"type":"link","label":"Kassensystem","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cashier-system","docId":"exam-exercises/exam-exercises-java1/class-diagrams/cashier-system","unlisted":false},{"type":"link","label":"Weihnachtsbaum","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/christmas-tree","docId":"exam-exercises/exam-exercises-java1/class-diagrams/christmas-tree","unlisted":false},{"type":"link","label":"Pl\xe4tzchendose","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar","docId":"exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar","unlisted":false},{"type":"link","label":"Kreatur","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/creature","docId":"exam-exercises/exam-exercises-java1/class-diagrams/creature","unlisted":false},{"type":"link","label":"Fast Food","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/fast-food","docId":"exam-exercises/exam-exercises-java1/class-diagrams/fast-food","unlisted":false},{"type":"link","label":"Geschenkesack","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/gift-bag","docId":"exam-exercises/exam-exercises-java1/class-diagrams/gift-bag","unlisted":false},{"type":"link","label":"Tiefgarage","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/parking-garage","docId":"exam-exercises/exam-exercises-java1/class-diagrams/parking-garage","unlisted":false},{"type":"link","label":"Geometrische Form","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/shape","docId":"exam-exercises/exam-exercises-java1/class-diagrams/shape","unlisted":false},{"type":"link","label":"Kurs","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/student-course","docId":"exam-exercises/exam-exercises-java1/class-diagrams/student-course","unlisted":false},{"type":"link","label":"Zoo","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/zoo","docId":"exam-exercises/exam-exercises-java1/class-diagrams/zoo","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/"},{"type":"category","label":"Aktivit\xe4tsdiagramme","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Geldautomat","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/cash-machine","docId":"exam-exercises/exam-exercises-java1/activity-diagrams/cash-machine","unlisted":false},{"type":"link","label":"Rabattrechner","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/discount-calculator","docId":"exam-exercises/exam-exercises-java1/activity-diagrams/discount-calculator","unlisted":false},{"type":"link","label":"Insertionsort","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/insertion-sort","docId":"exam-exercises/exam-exercises-java1/activity-diagrams/insertion-sort","unlisted":false},{"type":"link","label":"Selectionsort","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/selection-sort","docId":"exam-exercises/exam-exercises-java1/activity-diagrams/selection-sort","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/"},{"type":"category","label":"W\xfcrfelspiele","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"W\xfcrfelspiel 1","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-01","docId":"exam-exercises/exam-exercises-java1/dice-games/dice-game-01","unlisted":false},{"type":"link","label":"W\xfcrfelspiel 2","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-02","docId":"exam-exercises/exam-exercises-java1/dice-games/dice-game-02","unlisted":false},{"type":"link","label":"W\xfcrfelspiel 3","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-03","docId":"exam-exercises/exam-exercises-java1/dice-games/dice-game-03","unlisted":false},{"type":"link","label":"W\xfcrfelspiel 4","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-04","docId":"exam-exercises/exam-exercises-java1/dice-games/dice-game-04","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/"}],"href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/"},{"type":"category","label":"Programmierung 2","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Klassendiagramme","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Tante-Emma-Laden","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/corner-shop","docId":"exam-exercises/exam-exercises-java2/class-diagrams/corner-shop","unlisted":false},{"type":"link","label":"W\xf6rterbuch","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/dictionary","docId":"exam-exercises/exam-exercises-java2/class-diagrams/dictionary","unlisted":false},{"type":"link","label":"Personalverwaltung","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/human-resources","docId":"exam-exercises/exam-exercises-java2/class-diagrams/human-resources","unlisted":false},{"type":"link","label":"Stellenangebot","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/job-offer","docId":"exam-exercises/exam-exercises-java2/class-diagrams/job-offer","unlisted":false},{"type":"link","label":"Lego-Baustein","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/lego-brick","docId":"exam-exercises/exam-exercises-java2/class-diagrams/lego-brick","unlisted":false},{"type":"link","label":"Bibliothek","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/library","docId":"exam-exercises/exam-exercises-java2/class-diagrams/library","unlisted":false},{"type":"link","label":"Kartenspieler","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/player","docId":"exam-exercises/exam-exercises-java2/class-diagrams/player","unlisted":false},{"type":"link","label":"Einkaufsportal","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal","docId":"exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal","unlisted":false},{"type":"link","label":"Raumstation","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/space-station","docId":"exam-exercises/exam-exercises-java2/class-diagrams/space-station","unlisted":false},{"type":"link","label":"Team","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/team","docId":"exam-exercises/exam-exercises-java2/class-diagrams/team","unlisted":false},{"type":"link","label":"Videosammlung","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/video-collection","docId":"exam-exercises/exam-exercises-java2/class-diagrams/video-collection","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/"},{"type":"category","label":"Abfragen","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"St\xe4dte","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/cities","docId":"exam-exercises/exam-exercises-java2/queries/cities","unlisted":false},{"type":"link","label":"Messdaten","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/measurement-data","docId":"exam-exercises/exam-exercises-java2/queries/measurement-data","unlisted":false},{"type":"link","label":"Smartphone-Shop","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/phone-store","docId":"exam-exercises/exam-exercises-java2/queries/phone-store","unlisted":false},{"type":"link","label":"Planeten","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/planets","docId":"exam-exercises/exam-exercises-java2/queries/planets","unlisted":false},{"type":"link","label":"Panzer","href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/tanks","docId":"exam-exercises/exam-exercises-java2/queries/tanks","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/"}],"href":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/"}],"additionalMaterialSidebar":[{"type":"category","label":"Daniel","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Programmierung 1","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Musterklausur","href":"/java-docs/pr-preview/pr-238/additional-material/daniel/java1/sample-exam","docId":"additional-material/daniel/java1/sample-exam","unlisted":false},{"type":"link","label":"Klausurergebnisse","href":"/java-docs/pr-preview/pr-238/additional-material/daniel/java1/exam-results","docId":"additional-material/daniel/java1/exam-results","unlisted":false},{"type":"link","label":"WWIBE224","href":"/java-docs/pr-preview/pr-238/additional-material/daniel/java1/wwibe224","docId":"additional-material/daniel/java1/wwibe224","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/additional-material/daniel/java1/"},{"type":"category","label":"Programmierung 2","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Klausur","href":"/java-docs/pr-preview/pr-238/additional-material/daniel/java2/sample-exam","docId":"additional-material/daniel/java2/sample-exam","unlisted":false},{"type":"link","label":"Klausurergebnisse","href":"/java-docs/pr-preview/pr-238/additional-material/daniel/java2/exam-results","docId":"additional-material/daniel/java2/exam-results","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/additional-material/daniel/java2/"}],"href":"/java-docs/pr-preview/pr-238/additional-material/daniel/"},{"type":"category","label":"Steffen","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Java 1","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Folien","href":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/slides","docId":"additional-material/steffen/java-1/slides","unlisted":false},{"type":"category","label":"Klausurvorbereitung","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"2024","href":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/2024","docId":"additional-material/steffen/java-1/exam-preparation/2024","unlisted":false},{"type":"link","label":"2023","href":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/2023","docId":"additional-material/steffen/java-1/exam-preparation/2023","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/"}],"href":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/"},{"type":"category","label":"Java 2","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Folien","href":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/slides","docId":"additional-material/steffen/java-2/slides","unlisted":false},{"type":"category","label":"Klausurvorbereitung","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"2023","href":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/2023","docId":"additional-material/steffen/java-2/exam-preparation/2023","unlisted":false},{"type":"link","label":"2024","href":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/2024","docId":"additional-material/steffen/java-2/exam-preparation/2024","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/"},{"type":"link","label":"Projektbericht","href":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/project-report","docId":"additional-material/steffen/java-2/project-report","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/"},{"type":"link","label":"Demos","href":"/java-docs/pr-preview/pr-238/additional-material/steffen/demos","docId":"additional-material/steffen/demos","unlisted":false}],"href":"/java-docs/pr-preview/pr-238/additional-material/steffen/"}]},"docs":{"additional-material/daniel/daniel":{"id":"additional-material/daniel/daniel","title":"Daniel","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/daniel/java1/exam-results":{"id":"additional-material/daniel/java1/exam-results","title":"Klausurergebnisse","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/daniel/java1/java1":{"id":"additional-material/daniel/java1/java1","title":"Programmierung 1","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/daniel/java1/sample-exam":{"id":"additional-material/daniel/java1/sample-exam","title":"Musterklausur","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/daniel/java1/wwibe224":{"id":"additional-material/daniel/java1/wwibe224","title":"WWIBE224","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/daniel/java2/exam-results":{"id":"additional-material/daniel/java2/exam-results","title":"Klausurergebnisse","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/daniel/java2/java2":{"id":"additional-material/daniel/java2/java2","title":"Programmierung 2","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/daniel/java2/sample-exam":{"id":"additional-material/daniel/java2/sample-exam","title":"Klausur","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/steffen/demos":{"id":"additional-material/steffen/demos","title":"Demos","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/steffen/index":{"id":"additional-material/steffen/index","title":"Steffen","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/steffen/java-1/exam-preparation/2023":{"id":"additional-material/steffen/java-1/exam-preparation/2023","title":"2023","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/steffen/java-1/exam-preparation/2024":{"id":"additional-material/steffen/java-1/exam-preparation/2024","title":"2024","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/steffen/java-1/exam-preparation/index":{"id":"additional-material/steffen/java-1/exam-preparation/index","title":"Klausurvorbereitung","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/steffen/java-1/index":{"id":"additional-material/steffen/java-1/index","title":"Java 1","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/steffen/java-1/slides":{"id":"additional-material/steffen/java-1/slides","title":"Folien","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/steffen/java-2/exam-preparation/2023":{"id":"additional-material/steffen/java-2/exam-preparation/2023","title":"2023","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/steffen/java-2/exam-preparation/2024":{"id":"additional-material/steffen/java-2/exam-preparation/2024","title":"2024","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/steffen/java-2/exam-preparation/index":{"id":"additional-material/steffen/java-2/exam-preparation/index","title":"Klausurvorbereitung","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/steffen/java-2/index":{"id":"additional-material/steffen/java-2/index","title":"Java 2","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/steffen/java-2/project-report":{"id":"additional-material/steffen/java-2/project-report","title":"Projektbericht","description":"","sidebar":"additionalMaterialSidebar"},"additional-material/steffen/java-2/slides":{"id":"additional-material/steffen/java-2/slides","title":"Folien","description":"","sidebar":"additionalMaterialSidebar"},"documentation/abstract-and-final":{"id":"documentation/abstract-and-final","title":"Abstrakte und finale Klassen und Methoden","description":"","sidebar":"documentationSidebar"},"documentation/activity-diagrams":{"id":"documentation/activity-diagrams","title":"Aktivit\xe4tsdiagramme","description":"","sidebar":"documentationSidebar"},"documentation/algorithms":{"id":"documentation/algorithms","title":"Algorithmen","description":"","sidebar":"documentationSidebar"},"documentation/array-lists":{"id":"documentation/array-lists","title":"Feldbasierte Listen (ArrayLists)","description":"","sidebar":"documentationSidebar"},"documentation/arrays":{"id":"documentation/arrays","title":"Felder (Arrays)","description":"","sidebar":"documentationSidebar"},"documentation/calculations":{"id":"documentation/calculations","title":"Mathematische Berechnungen","description":"","sidebar":"documentationSidebar"},"documentation/cases":{"id":"documentation/cases","title":"Verzweigungen","description":"","sidebar":"documentationSidebar"},"documentation/class-diagrams":{"id":"documentation/class-diagrams","title":"Klassendiagramme","description":"","sidebar":"documentationSidebar"},"documentation/class-structure":{"id":"documentation/class-structure","title":"Aufbau einer Java-Klasse","description":"","sidebar":"documentationSidebar"},"documentation/classes":{"id":"documentation/classes","title":"Klassen","description":"","sidebar":"documentationSidebar"},"documentation/coding":{"id":"documentation/coding","title":"Programmieren","description":"","sidebar":"documentationSidebar"},"documentation/comparators":{"id":"documentation/comparators","title":"Komparatoren","description":"","sidebar":"documentationSidebar"},"documentation/console-applications":{"id":"documentation/console-applications","title":"Konsolenanwendungen","description":"","sidebar":"documentationSidebar"},"documentation/data-objects":{"id":"documentation/data-objects","title":"Datenobjekte","description":"","sidebar":"documentationSidebar"},"documentation/data-types":{"id":"documentation/data-types","title":"Datentypen","description":"","sidebar":"documentationSidebar"},"documentation/dates-and-times":{"id":"documentation/dates-and-times","title":"Datums- und Zeitangaben","description":"","sidebar":"documentationSidebar"},"documentation/design":{"id":"documentation/design","title":"Softwaredesign","description":"","sidebar":"documentationSidebar"},"documentation/enumerations":{"id":"documentation/enumerations","title":"Aufz\xe4hlungen (Enumerations)","description":"","sidebar":"documentationSidebar"},"documentation/exceptions":{"id":"documentation/exceptions","title":"Ausnahmen (Exceptions)","description":"","sidebar":"documentationSidebar"},"documentation/files":{"id":"documentation/files","title":"Dateien und Verzeichnisse","description":"","sidebar":"documentationSidebar"},"documentation/generics":{"id":"documentation/generics","title":"Generische Programmierung","description":"","sidebar":"documentationSidebar"},"documentation/git":{"id":"documentation/git","title":"Git","description":"","sidebar":"documentationSidebar"},"documentation/gui":{"id":"documentation/gui","title":"Grafische Benutzeroberfl\xe4chen","description":"","sidebar":"documentationSidebar"},"documentation/hashing":{"id":"documentation/hashing","title":"Schl\xfcsseltransformationen (Hashing)","description":"","sidebar":"documentationSidebar"},"documentation/inheritance":{"id":"documentation/inheritance","title":"Vererbung","description":"","sidebar":"documentationSidebar"},"documentation/inner-classes":{"id":"documentation/inner-classes","title":"Innere Klassen (Inner Classes)","description":"","sidebar":"documentationSidebar"},"documentation/interfaces":{"id":"documentation/interfaces","title":"Schnittstellen (Interfaces)","description":"","sidebar":"documentationSidebar"},"documentation/introduction":{"id":"documentation/introduction","title":"Einf\xfchrung","description":"","sidebar":"documentationSidebar"},"documentation/io-streams":{"id":"documentation/io-streams","title":"Datenstr\xf6me (IO-Streams)","description":"","sidebar":"documentationSidebar"},"documentation/java":{"id":"documentation/java","title":"Die Programmiersprache Java","description":"","sidebar":"documentationSidebar"},"documentation/java-api":{"id":"documentation/java-api","title":"Die Java API","description":"","sidebar":"documentationSidebar"},"documentation/java-collections-framework":{"id":"documentation/java-collections-framework","title":"Java Collections Framework","description":"","sidebar":"documentationSidebar"},"documentation/java-stream-api":{"id":"documentation/java-stream-api","title":"Die Java Stream API","description":"","sidebar":"documentationSidebar"},"documentation/javafx":{"id":"documentation/javafx","title":"JavaFX","description":"","sidebar":"documentationSidebar"},"documentation/lambdas":{"id":"documentation/lambdas","title":"Lambda-Ausdr\xfccke (Lambdas)","description":"","sidebar":"documentationSidebar"},"documentation/lists":{"id":"documentation/lists","title":"Listen","description":"","sidebar":"documentationSidebar"},"documentation/lombok":{"id":"documentation/lombok","title":"Lombok","description":"","sidebar":"documentationSidebar"},"documentation/loops":{"id":"documentation/loops","title":"Schleifen","description":"","sidebar":"documentationSidebar"},"documentation/maps":{"id":"documentation/maps","title":"Assoziativspeicher (Maps)","description":"","sidebar":"documentationSidebar"},"documentation/maven":{"id":"documentation/maven","title":"Maven","description":"","sidebar":"documentationSidebar"},"documentation/object":{"id":"documentation/object","title":"Die Mutter aller Klassen","description":"","sidebar":"documentationSidebar"},"documentation/oo":{"id":"documentation/oo","title":"Objektorientierte Programmierung","description":"","sidebar":"documentationSidebar"},"documentation/operators":{"id":"documentation/operators","title":"Operatoren","description":"","sidebar":"documentationSidebar"},"documentation/optionals":{"id":"documentation/optionals","title":"Optionals","description":"","sidebar":"documentationSidebar"},"documentation/polymorphy":{"id":"documentation/polymorphy","title":"(Dynamische) Polymorphie","description":"","sidebar":"documentationSidebar"},"documentation/pseudo-random-numbers":{"id":"documentation/pseudo-random-numbers","title":"Pseudozufallszahlen","description":"","sidebar":"documentationSidebar"},"documentation/records":{"id":"documentation/records","title":"Datenklassen (Records)","description":"","sidebar":"documentationSidebar"},"documentation/references-and-objects":{"id":"documentation/references-and-objects","title":"Referenzen und Objekte","description":"","sidebar":"documentationSidebar"},"documentation/slf4j":{"id":"documentation/slf4j","title":"Simple Logging Facade for Java (SLF4J)","description":"","sidebar":"documentationSidebar"},"documentation/strings":{"id":"documentation/strings","title":"Zeichenketten (Strings)","description":"","sidebar":"documentationSidebar"},"documentation/tests":{"id":"documentation/tests","title":"Softwaretests","description":"","sidebar":"documentationSidebar"},"documentation/trees":{"id":"documentation/trees","title":"B\xe4ume","description":"","sidebar":"documentationSidebar"},"documentation/unit-tests":{"id":"documentation/unit-tests","title":"Komponententests (Unit Tests)","description":"","sidebar":"documentationSidebar"},"documentation/wrappers":{"id":"documentation/wrappers","title":"Wrapper-Klassen","description":"","sidebar":"documentationSidebar"},"exam-exercises/exam-exercises-java1/activity-diagrams/activity-diagrams":{"id":"exam-exercises/exam-exercises-java1/activity-diagrams/activity-diagrams","title":"Aktivit\xe4tsdiagramme","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/activity-diagrams/cash-machine":{"id":"exam-exercises/exam-exercises-java1/activity-diagrams/cash-machine","title":"Geldautomat","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/activity-diagrams/discount-calculator":{"id":"exam-exercises/exam-exercises-java1/activity-diagrams/discount-calculator","title":"Rabattrechner","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/activity-diagrams/insertion-sort":{"id":"exam-exercises/exam-exercises-java1/activity-diagrams/insertion-sort","title":"Insertionsort","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/activity-diagrams/selection-sort":{"id":"exam-exercises/exam-exercises-java1/activity-diagrams/selection-sort","title":"Selectionsort","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer":{"id":"exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer","title":"Kartenausteiler","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/class-diagrams/cashier-system":{"id":"exam-exercises/exam-exercises-java1/class-diagrams/cashier-system","title":"Kassensystem","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/class-diagrams/christmas-tree":{"id":"exam-exercises/exam-exercises-java1/class-diagrams/christmas-tree","title":"Weihnachtsbaum","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/class-diagrams/class-diagrams":{"id":"exam-exercises/exam-exercises-java1/class-diagrams/class-diagrams","title":"Klassendiagramme","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar":{"id":"exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar","title":"Pl\xe4tzchendose","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/class-diagrams/creature":{"id":"exam-exercises/exam-exercises-java1/class-diagrams/creature","title":"Kreatur","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/class-diagrams/fast-food":{"id":"exam-exercises/exam-exercises-java1/class-diagrams/fast-food","title":"Fast Food","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/class-diagrams/gift-bag":{"id":"exam-exercises/exam-exercises-java1/class-diagrams/gift-bag","title":"Geschenkesack","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/class-diagrams/parking-garage":{"id":"exam-exercises/exam-exercises-java1/class-diagrams/parking-garage","title":"Tiefgarage","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/class-diagrams/shape":{"id":"exam-exercises/exam-exercises-java1/class-diagrams/shape","title":"Geometrische Form","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/class-diagrams/student-course":{"id":"exam-exercises/exam-exercises-java1/class-diagrams/student-course","title":"Kurs","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/class-diagrams/zoo":{"id":"exam-exercises/exam-exercises-java1/class-diagrams/zoo","title":"Zoo","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/dice-games/dice-game-01":{"id":"exam-exercises/exam-exercises-java1/dice-games/dice-game-01","title":"W\xfcrfelspiel 1","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/dice-games/dice-game-02":{"id":"exam-exercises/exam-exercises-java1/dice-games/dice-game-02","title":"W\xfcrfelspiel 2","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/dice-games/dice-game-03":{"id":"exam-exercises/exam-exercises-java1/dice-games/dice-game-03","title":"W\xfcrfelspiel 3","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/dice-games/dice-game-04":{"id":"exam-exercises/exam-exercises-java1/dice-games/dice-game-04","title":"W\xfcrfelspiel 4","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/dice-games/dice-games":{"id":"exam-exercises/exam-exercises-java1/dice-games/dice-games","title":"W\xfcrfelspiele","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java1/exam-exercises-java1":{"id":"exam-exercises/exam-exercises-java1/exam-exercises-java1","title":"Programmierung 1","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/class-diagrams/class-diagrams":{"id":"exam-exercises/exam-exercises-java2/class-diagrams/class-diagrams","title":"Klassendiagramme","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/class-diagrams/corner-shop":{"id":"exam-exercises/exam-exercises-java2/class-diagrams/corner-shop","title":"Tante-Emma-Laden","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/class-diagrams/dictionary":{"id":"exam-exercises/exam-exercises-java2/class-diagrams/dictionary","title":"W\xf6rterbuch","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/class-diagrams/human-resources":{"id":"exam-exercises/exam-exercises-java2/class-diagrams/human-resources","title":"Personalverwaltung","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/class-diagrams/job-offer":{"id":"exam-exercises/exam-exercises-java2/class-diagrams/job-offer","title":"Stellenangebot","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/class-diagrams/lego-brick":{"id":"exam-exercises/exam-exercises-java2/class-diagrams/lego-brick","title":"Lego-Baustein","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/class-diagrams/library":{"id":"exam-exercises/exam-exercises-java2/class-diagrams/library","title":"Bibliothek","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/class-diagrams/player":{"id":"exam-exercises/exam-exercises-java2/class-diagrams/player","title":"Kartenspieler","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal":{"id":"exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal","title":"Einkaufsportal","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/class-diagrams/space-station":{"id":"exam-exercises/exam-exercises-java2/class-diagrams/space-station","title":"Raumstation","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/class-diagrams/team":{"id":"exam-exercises/exam-exercises-java2/class-diagrams/team","title":"Team","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/class-diagrams/video-collection":{"id":"exam-exercises/exam-exercises-java2/class-diagrams/video-collection","title":"Videosammlung","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/exam-exercises-java2":{"id":"exam-exercises/exam-exercises-java2/exam-exercises-java2","title":"Programmierung 2","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/queries/cities":{"id":"exam-exercises/exam-exercises-java2/queries/cities","title":"St\xe4dte","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/queries/measurement-data":{"id":"exam-exercises/exam-exercises-java2/queries/measurement-data","title":"Messdaten","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/queries/phone-store":{"id":"exam-exercises/exam-exercises-java2/queries/phone-store","title":"Smartphone-Shop","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/queries/planets":{"id":"exam-exercises/exam-exercises-java2/queries/planets","title":"Planeten","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/queries/queries":{"id":"exam-exercises/exam-exercises-java2/queries/queries","title":"Abfragen","description":"","sidebar":"examExercisesSidebar"},"exam-exercises/exam-exercises-java2/queries/tanks":{"id":"exam-exercises/exam-exercises-java2/queries/tanks","title":"Panzer","description":"","sidebar":"examExercisesSidebar"},"exercises/abstract-and-final/abstract-and-final":{"id":"exercises/abstract-and-final/abstract-and-final","title":"Abstrakte und finale Klassen und Methoden","description":"","sidebar":"exercisesSidebar"},"exercises/abstract-and-final/abstract-and-final01":{"id":"exercises/abstract-and-final/abstract-and-final01","title":"AbstractAndFinal01","description":"","sidebar":"exercisesSidebar"},"exercises/activity-diagrams/activity-diagrams":{"id":"exercises/activity-diagrams/activity-diagrams","title":"Aktivit\xe4tsdiagramme","description":"","sidebar":"exercisesSidebar"},"exercises/activity-diagrams/activity-diagrams01":{"id":"exercises/activity-diagrams/activity-diagrams01","title":"ActivityDiagrams01","description":"","sidebar":"exercisesSidebar"},"exercises/algorithms/algorithms":{"id":"exercises/algorithms/algorithms","title":"Algorithmen","description":"","sidebar":"exercisesSidebar"},"exercises/algorithms/algorithms01":{"id":"exercises/algorithms/algorithms01","title":"Algorithms01","description":"","sidebar":"exercisesSidebar"},"exercises/algorithms/algorithms02":{"id":"exercises/algorithms/algorithms02","title":"Algorithms02","description":"","sidebar":"exercisesSidebar"},"exercises/arrays/arrays":{"id":"exercises/arrays/arrays","title":"Felder (Arrays)","description":"","sidebar":"exercisesSidebar"},"exercises/arrays/arrays01":{"id":"exercises/arrays/arrays01","title":"Arrays01","description":"","sidebar":"exercisesSidebar"},"exercises/arrays/arrays02":{"id":"exercises/arrays/arrays02","title":"Arrays02","description":"","sidebar":"exercisesSidebar"},"exercises/arrays/arrays03":{"id":"exercises/arrays/arrays03","title":"Arrays03","description":"","sidebar":"exercisesSidebar"},"exercises/arrays/arrays04":{"id":"exercises/arrays/arrays04","title":"Arrays04","description":"","sidebar":"exercisesSidebar"},"exercises/arrays/arrays05":{"id":"exercises/arrays/arrays05","title":"Arrays05","description":"","sidebar":"exercisesSidebar"},"exercises/arrays/arrays06":{"id":"exercises/arrays/arrays06","title":"Arrays06","description":"","sidebar":"exercisesSidebar"},"exercises/arrays/arrays07":{"id":"exercises/arrays/arrays07","title":"Arrays07","description":"","sidebar":"exercisesSidebar"},"exercises/cases/cases":{"id":"exercises/cases/cases","title":"Verzweigungen","description":"","sidebar":"exercisesSidebar"},"exercises/cases/cases01":{"id":"exercises/cases/cases01","title":"Cases01","description":"","sidebar":"exercisesSidebar"},"exercises/cases/cases02":{"id":"exercises/cases/cases02","title":"Cases02","description":"","sidebar":"exercisesSidebar"},"exercises/cases/cases03":{"id":"exercises/cases/cases03","title":"Cases03","description":"","sidebar":"exercisesSidebar"},"exercises/cases/cases04":{"id":"exercises/cases/cases04","title":"Cases04","description":"","sidebar":"exercisesSidebar"},"exercises/cases/cases05":{"id":"exercises/cases/cases05","title":"Cases05","description":"","sidebar":"exercisesSidebar"},"exercises/cases/cases06":{"id":"exercises/cases/cases06","title":"Cases06","description":"","sidebar":"exercisesSidebar"},"exercises/class-diagrams/class-diagrams":{"id":"exercises/class-diagrams/class-diagrams","title":"Klassendiagramme","description":"","sidebar":"exercisesSidebar"},"exercises/class-diagrams/class-diagrams01":{"id":"exercises/class-diagrams/class-diagrams01","title":"ClassDiagrams01","description":"","sidebar":"exercisesSidebar"},"exercises/class-diagrams/class-diagrams02":{"id":"exercises/class-diagrams/class-diagrams02","title":"ClassDiagrams02","description":"","sidebar":"exercisesSidebar"},"exercises/class-diagrams/class-diagrams03":{"id":"exercises/class-diagrams/class-diagrams03","title":"ClassDiagrams03","description":"","sidebar":"exercisesSidebar"},"exercises/class-diagrams/class-diagrams04":{"id":"exercises/class-diagrams/class-diagrams04","title":"ClassDiagrams04","description":"","sidebar":"exercisesSidebar"},"exercises/class-diagrams/class-diagrams05":{"id":"exercises/class-diagrams/class-diagrams05","title":"ClassDiagrams05","description":"","sidebar":"exercisesSidebar"},"exercises/class-structure/class-structure":{"id":"exercises/class-structure/class-structure","title":"Aufbau einer Java-Klasse","description":"","sidebar":"exercisesSidebar"},"exercises/class-structure/class-structure01":{"id":"exercises/class-structure/class-structure01","title":"ClassStructure01","description":"","sidebar":"exercisesSidebar"},"exercises/coding/coding":{"id":"exercises/coding/coding","title":"Programmieren","description":"","sidebar":"exercisesSidebar"},"exercises/comparators/comparators":{"id":"exercises/comparators/comparators","title":"Komparatoren","description":"","sidebar":"exercisesSidebar"},"exercises/comparators/comparators01":{"id":"exercises/comparators/comparators01","title":"Comparators01","description":"","sidebar":"exercisesSidebar"},"exercises/comparators/comparators02":{"id":"exercises/comparators/comparators02","title":"Comparators02","description":"","sidebar":"exercisesSidebar"},"exercises/console-applications/console-applications":{"id":"exercises/console-applications/console-applications","title":"Konsolenanwendungen","description":"","sidebar":"exercisesSidebar"},"exercises/console-applications/console-applications01":{"id":"exercises/console-applications/console-applications01","title":"ConsoleApplications01","description":"","sidebar":"exercisesSidebar"},"exercises/console-applications/console-applications02":{"id":"exercises/console-applications/console-applications02","title":"ConsoleApplications02","description":"","sidebar":"exercisesSidebar"},"exercises/data-objects/data-objects":{"id":"exercises/data-objects/data-objects","title":"Datenobjekte","description":"","sidebar":"exercisesSidebar"},"exercises/data-objects/data-objects01":{"id":"exercises/data-objects/data-objects01","title":"DataObjects01","description":"","sidebar":"exercisesSidebar"},"exercises/data-objects/data-objects02":{"id":"exercises/data-objects/data-objects02","title":"DataObjects02","description":"","sidebar":"exercisesSidebar"},"exercises/enumerations/enumerations":{"id":"exercises/enumerations/enumerations","title":"Aufz\xe4hlungen (Enumerations)","description":"","sidebar":"exercisesSidebar"},"exercises/enumerations/enumerations01":{"id":"exercises/enumerations/enumerations01","title":"Enumerations01","description":"","sidebar":"exercisesSidebar"},"exercises/exceptions/exceptions":{"id":"exercises/exceptions/exceptions","title":"Ausnahmen (Exceptions)","description":"","sidebar":"exercisesSidebar"},"exercises/exceptions/exceptions01":{"id":"exercises/exceptions/exceptions01","title":"Exceptions01","description":"","sidebar":"exercisesSidebar"},"exercises/exceptions/exceptions02":{"id":"exercises/exceptions/exceptions02","title":"Exceptions02","description":"","sidebar":"exercisesSidebar"},"exercises/exceptions/exceptions03":{"id":"exercises/exceptions/exceptions03","title":"Exceptions03","description":"","sidebar":"exercisesSidebar"},"exercises/generics/generics":{"id":"exercises/generics/generics","title":"Generische Programmierung","description":"","sidebar":"exercisesSidebar"},"exercises/generics/generics01":{"id":"exercises/generics/generics01","title":"Generics01","description":"","sidebar":"exercisesSidebar"},"exercises/generics/generics02":{"id":"exercises/generics/generics02","title":"Generics02","description":"","sidebar":"exercisesSidebar"},"exercises/generics/generics03":{"id":"exercises/generics/generics03","title":"Generics03","description":"","sidebar":"exercisesSidebar"},"exercises/generics/generics04":{"id":"exercises/generics/generics04","title":"Generics04","description":"","sidebar":"exercisesSidebar"},"exercises/git/git":{"id":"exercises/git/git","title":"Git","description":"","sidebar":"exercisesSidebar"},"exercises/git/git01":{"id":"exercises/git/git01","title":"Git01","description":"","sidebar":"exercisesSidebar"},"exercises/git/git02":{"id":"exercises/git/git02","title":"Git02","description":"","sidebar":"exercisesSidebar"},"exercises/git/git03":{"id":"exercises/git/git03","title":"Git03","description":"","sidebar":"exercisesSidebar"},"exercises/git/git04":{"id":"exercises/git/git04","title":"Git04","description":"","sidebar":"exercisesSidebar"},"exercises/git/git05":{"id":"exercises/git/git05","title":"Git05","description":"","sidebar":"exercisesSidebar"},"exercises/hashing/hashing":{"id":"exercises/hashing/hashing","title":"Schl\xfcsseltransformationen (Hashing)","description":"","sidebar":"exercisesSidebar"},"exercises/hashing/hashing01":{"id":"exercises/hashing/hashing01","title":"Hashing01","description":"","sidebar":"exercisesSidebar"},"exercises/hashing/hashing02":{"id":"exercises/hashing/hashing02","title":"Hashing02","description":"","sidebar":"exercisesSidebar"},"exercises/inner-classes/inner-classes":{"id":"exercises/inner-classes/inner-classes","title":"Innere Klassen (Inner Classes)","description":"","sidebar":"exercisesSidebar"},"exercises/inner-classes/inner-classes01":{"id":"exercises/inner-classes/inner-classes01","title":"InnerClasses01","description":"","sidebar":"exercisesSidebar"},"exercises/inner-classes/inner-classes02":{"id":"exercises/inner-classes/inner-classes02","title":"InnerClasses02","description":"","sidebar":"exercisesSidebar"},"exercises/inner-classes/inner-classes03":{"id":"exercises/inner-classes/inner-classes03","title":"InnerClasses03","description":"","sidebar":"exercisesSidebar"},"exercises/inner-classes/inner-classes04":{"id":"exercises/inner-classes/inner-classes04","title":"InnerClasses04","description":"","sidebar":"exercisesSidebar"},"exercises/interfaces/interfaces":{"id":"exercises/interfaces/interfaces","title":"Schnittstellen (Interfaces)","description":"","sidebar":"exercisesSidebar"},"exercises/interfaces/interfaces01":{"id":"exercises/interfaces/interfaces01","title":"Interfaces01","description":"","sidebar":"exercisesSidebar"},"exercises/io-streams/io-streams":{"id":"exercises/io-streams/io-streams","title":"Datenstr\xf6me (IO-Streams)","description":"","sidebar":"exercisesSidebar"},"exercises/io-streams/io-streams01":{"id":"exercises/io-streams/io-streams01","title":"IOStreams01","description":"","sidebar":"exercisesSidebar"},"exercises/io-streams/io-streams02":{"id":"exercises/io-streams/io-streams02","title":"IOStreams02","description":"","sidebar":"exercisesSidebar"},"exercises/java-api/java-api":{"id":"exercises/java-api/java-api","title":"Die Java API","description":"","sidebar":"exercisesSidebar"},"exercises/java-api/java-api01":{"id":"exercises/java-api/java-api01","title":"JavaAPI01","description":"","sidebar":"exercisesSidebar"},"exercises/java-api/java-api02":{"id":"exercises/java-api/java-api02","title":"JavaAPI02","description":"","sidebar":"exercisesSidebar"},"exercises/java-api/java-api03":{"id":"exercises/java-api/java-api03","title":"JavaAPI03","description":"","sidebar":"exercisesSidebar"},"exercises/java-api/java-api04":{"id":"exercises/java-api/java-api04","title":"JavaAPI04","description":"","sidebar":"exercisesSidebar"},"exercises/java-stream-api/java-stream-api":{"id":"exercises/java-stream-api/java-stream-api","title":"Die Java Stream API","description":"","sidebar":"exercisesSidebar"},"exercises/java-stream-api/java-stream-api01":{"id":"exercises/java-stream-api/java-stream-api01","title":"JavaStreamAPI01","description":"","sidebar":"exercisesSidebar"},"exercises/java-stream-api/java-stream-api02":{"id":"exercises/java-stream-api/java-stream-api02","title":"JavaStreamAPI02","description":"","sidebar":"exercisesSidebar"},"exercises/javafx/javafx":{"id":"exercises/javafx/javafx","title":"JavaFX","description":"","sidebar":"exercisesSidebar"},"exercises/javafx/javafx01":{"id":"exercises/javafx/javafx01","title":"JavaFX01","description":"","sidebar":"exercisesSidebar"},"exercises/javafx/javafx02":{"id":"exercises/javafx/javafx02","title":"JavaFX02","description":"","sidebar":"exercisesSidebar"},"exercises/javafx/javafx03":{"id":"exercises/javafx/javafx03","title":"JavaFX03","description":"","sidebar":"exercisesSidebar"},"exercises/javafx/javafx04":{"id":"exercises/javafx/javafx04","title":"JavaFX04","description":"","sidebar":"exercisesSidebar"},"exercises/javafx/javafx05":{"id":"exercises/javafx/javafx05","title":"JavaFX05","description":"","sidebar":"exercisesSidebar"},"exercises/javafx/javafx06":{"id":"exercises/javafx/javafx06","title":"JavaFX06","description":"","sidebar":"exercisesSidebar"},"exercises/javafx/javafx07":{"id":"exercises/javafx/javafx07","title":"JavaFX07","description":"","sidebar":"exercisesSidebar"},"exercises/javafx/javafx08":{"id":"exercises/javafx/javafx08","title":"JavaFX08","description":"","sidebar":"exercisesSidebar"},"exercises/lambdas/lambdas":{"id":"exercises/lambdas/lambdas","title":"Lambda-Ausdr\xfccke (Lambdas)","description":"","sidebar":"exercisesSidebar"},"exercises/lambdas/lambdas01":{"id":"exercises/lambdas/lambdas01","title":"Lambdas01","description":"","sidebar":"exercisesSidebar"},"exercises/lambdas/lambdas02":{"id":"exercises/lambdas/lambdas02","title":"Lambdas02","description":"","sidebar":"exercisesSidebar"},"exercises/lambdas/lambdas03":{"id":"exercises/lambdas/lambdas03","title":"Lambdas03","description":"","sidebar":"exercisesSidebar"},"exercises/lambdas/lambdas04":{"id":"exercises/lambdas/lambdas04","title":"Lambdas04","description":"","sidebar":"exercisesSidebar"},"exercises/lambdas/lambdas05":{"id":"exercises/lambdas/lambdas05","title":"Lambdas05","description":"","sidebar":"exercisesSidebar"},"exercises/loops/loops":{"id":"exercises/loops/loops","title":"Schleifen","description":"","sidebar":"exercisesSidebar"},"exercises/loops/loops01":{"id":"exercises/loops/loops01","title":"Loops01","description":"","sidebar":"exercisesSidebar"},"exercises/loops/loops02":{"id":"exercises/loops/loops02","title":"Loops02","description":"","sidebar":"exercisesSidebar"},"exercises/loops/loops03":{"id":"exercises/loops/loops03","title":"Loops03","description":"","sidebar":"exercisesSidebar"},"exercises/loops/loops04":{"id":"exercises/loops/loops04","title":"Loops04","description":"","sidebar":"exercisesSidebar"},"exercises/loops/loops05":{"id":"exercises/loops/loops05","title":"Loops05","description":"","sidebar":"exercisesSidebar"},"exercises/loops/loops06":{"id":"exercises/loops/loops06","title":"Loops06","description":"","sidebar":"exercisesSidebar"},"exercises/loops/loops07":{"id":"exercises/loops/loops07","title":"Loops07","description":"","sidebar":"exercisesSidebar"},"exercises/loops/loops08":{"id":"exercises/loops/loops08","title":"Loops08","description":"","sidebar":"exercisesSidebar"},"exercises/maps/maps":{"id":"exercises/maps/maps","title":"Assoziativspeicher (Maps)","description":"","sidebar":"exercisesSidebar"},"exercises/maps/maps01":{"id":"exercises/maps/maps01","title":"Maps01","description":"","sidebar":"exercisesSidebar"},"exercises/maps/maps02":{"id":"exercises/maps/maps02","title":"Maps02","description":"","sidebar":"exercisesSidebar"},"exercises/oo/oo":{"id":"exercises/oo/oo","title":"Objektorientierte Programmierung","description":"","sidebar":"exercisesSidebar"},"exercises/oo/oo01":{"id":"exercises/oo/oo01","title":"OO01","description":"","sidebar":"exercisesSidebar"},"exercises/oo/oo02":{"id":"exercises/oo/oo02","title":"OO02","description":"","sidebar":"exercisesSidebar"},"exercises/oo/oo03":{"id":"exercises/oo/oo03","title":"OO03","description":"","sidebar":"exercisesSidebar"},"exercises/oo/oo04":{"id":"exercises/oo/oo04","title":"OO04","description":"","sidebar":"exercisesSidebar"},"exercises/oo/oo05":{"id":"exercises/oo/oo05","title":"OO05","description":"","sidebar":"exercisesSidebar"},"exercises/oo/oo06":{"id":"exercises/oo/oo06","title":"OO06","description":"","sidebar":"exercisesSidebar"},"exercises/oo/oo07":{"id":"exercises/oo/oo07","title":"OO07","description":"","sidebar":"exercisesSidebar"},"exercises/operators/operators":{"id":"exercises/operators/operators","title":"Operatoren","description":"","sidebar":"exercisesSidebar"},"exercises/operators/operators01":{"id":"exercises/operators/operators01","title":"Operators01","description":"","sidebar":"exercisesSidebar"},"exercises/operators/operators02":{"id":"exercises/operators/operators02","title":"Operators02","description":"","sidebar":"exercisesSidebar"},"exercises/operators/operators03":{"id":"exercises/operators/operators03","title":"Operators03","description":"","sidebar":"exercisesSidebar"},"exercises/optionals/optionals":{"id":"exercises/optionals/optionals","title":"Optionals","description":"","sidebar":"exercisesSidebar"},"exercises/optionals/optionals01":{"id":"exercises/optionals/optionals01","title":"Optionals01","description":"","sidebar":"exercisesSidebar"},"exercises/optionals/optionals02":{"id":"exercises/optionals/optionals02","title":"Optionals02","description":"","sidebar":"exercisesSidebar"},"exercises/optionals/optionals03":{"id":"exercises/optionals/optionals03","title":"Optionals03","description":"","sidebar":"exercisesSidebar"},"exercises/polymorphy/polymorphy":{"id":"exercises/polymorphy/polymorphy","title":"Polymorphie","description":"","sidebar":"exercisesSidebar"},"exercises/polymorphy/polymorphy01":{"id":"exercises/polymorphy/polymorphy01","title":"Polymorphism01","description":"","sidebar":"exercisesSidebar"},"exercises/polymorphy/polymorphy02":{"id":"exercises/polymorphy/polymorphy02","title":"Polymorphism02","description":"","sidebar":"exercisesSidebar"},"exercises/polymorphy/polymorphy03":{"id":"exercises/polymorphy/polymorphy03","title":"Polymorphism03","description":"","sidebar":"exercisesSidebar"},"exercises/polymorphy/polymorphy04":{"id":"exercises/polymorphy/polymorphy04","title":"Polymorphism04","description":"","sidebar":"exercisesSidebar"},"exercises/trees/trees":{"id":"exercises/trees/trees","title":"B\xe4ume","description":"","sidebar":"exercisesSidebar"},"exercises/trees/trees01":{"id":"exercises/trees/trees01","title":"Trees01","description":"","sidebar":"exercisesSidebar"},"exercises/unit-tests/unit-tests":{"id":"exercises/unit-tests/unit-tests","title":"Komponententests (Unit-Tests)","description":"","sidebar":"exercisesSidebar"},"exercises/unit-tests/unit-tests01":{"id":"exercises/unit-tests/unit-tests01","title":"UnitTests01","description":"","sidebar":"exercisesSidebar"},"exercises/unit-tests/unit-tests02":{"id":"exercises/unit-tests/unit-tests02","title":"UnitTests02","description":"","sidebar":"exercisesSidebar"},"exercises/unit-tests/unit-tests03":{"id":"exercises/unit-tests/unit-tests03","title":"UnitTests03","description":"","sidebar":"exercisesSidebar"},"exercises/unit-tests/unit-tests04":{"id":"exercises/unit-tests/unit-tests04","title":"UnitTests04","description":"","sidebar":"exercisesSidebar"}}}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/0bfbf8f4.2a6ceec8.js b/pr-preview/pr-238/assets/js/0bfbf8f4.2a6ceec8.js new file mode 100644 index 0000000000..fc9841f7e8 --- /dev/null +++ b/pr-preview/pr-238/assets/js/0bfbf8f4.2a6ceec8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["439"],{71403:function(e,r,t){t.r(r),t.d(r,{metadata:()=>s,contentTitle:()=>h,default:()=>o,assets:()=>x,toc:()=>j,frontMatter:()=>c});var s=JSON.parse('{"id":"exercises/algorithms/algorithms01","title":"Algorithms01","description":"","source":"@site/docs/exercises/algorithms/algorithms01.mdx","sourceDirName":"exercises/algorithms","slug":"/exercises/algorithms/algorithms01","permalink":"/java-docs/pr-preview/pr-238/exercises/algorithms/algorithms01","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/algorithms/algorithms01.mdx","tags":[],"version":"current","frontMatter":{"title":"Algorithms01","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Algorithmen","permalink":"/java-docs/pr-preview/pr-238/exercises/algorithms/"},"next":{"title":"Algorithms02","permalink":"/java-docs/pr-preview/pr-238/exercises/algorithms/algorithms02"}}'),d=t("85893"),n=t("50065"),l=t("47902"),i=t("5525");let c={title:"Algorithms01",description:""},h=void 0,x={},j=[];function a(e){let r={code:"code",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.a)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(r.p,{children:["Durchsuche die Zahlenfolge ",(0,d.jsx)(r.code,{children:"2, 2, 3, 4, 5, 5, 5, 6, 7, 8"})," nach dem Wert 6 unter\nVerwendung der Linearsuche, der Bin\xe4rsuche und der Interpolationssuche."]}),"\n",(0,d.jsxs)(l.Z,{children:[(0,d.jsx)(i.Z,{value:"a",label:"-",default:!0}),(0,d.jsx)(i.Z,{value:"b",label:"Linearsuche",children:(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"Index"}),(0,d.jsx)(r.th,{children:"1"}),(0,d.jsx)(r.th,{children:"2"}),(0,d.jsx)(r.th,{children:"3"}),(0,d.jsx)(r.th,{children:"4"}),(0,d.jsx)(r.th,{children:"5"}),(0,d.jsx)(r.th,{children:"6"}),(0,d.jsx)(r.th,{children:"7"}),(0,d.jsx)(r.th,{children:"8"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"0"}),(0,d.jsx)(r.td,{children:"[2]"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"1"}),(0,d.jsx)(r.td,{children:"2"}),(0,d.jsx)(r.td,{children:"[2]"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"2"}),(0,d.jsx)(r.td,{children:"3"}),(0,d.jsx)(r.td,{children:"3"}),(0,d.jsx)(r.td,{children:"[3]"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"3"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"3"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"3"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"3"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"3"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"3"}),(0,d.jsx)(r.td,{children:"4"}),(0,d.jsx)(r.td,{children:"4"}),(0,d.jsx)(r.td,{children:"4"}),(0,d.jsx)(r.td,{children:"[4]"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"4"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"4"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"4"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"4"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"4"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"[5]"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"5"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"5"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"5"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"[5]"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"5"})}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"5"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"[5]"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"5"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"7"}),(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"[6]"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"7"}),(0,d.jsx)(r.td,{children:"7"}),(0,d.jsx)(r.td,{children:"7"}),(0,d.jsx)(r.td,{children:"7"}),(0,d.jsx)(r.td,{children:"7"}),(0,d.jsx)(r.td,{children:"7"}),(0,d.jsx)(r.td,{children:"7"}),(0,d.jsx)(r.td,{children:"7"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"9"}),(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"8"})]})]})]})}),(0,d.jsxs)(i.Z,{value:"c",label:"Bin\xe4rsuche",children:[(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"Index"}),(0,d.jsx)(r.th,{children:"1"}),(0,d.jsx)(r.th,{children:"2"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"0"}),(0,d.jsx)(r.td,{children:"2"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"1"}),(0,d.jsx)(r.td,{children:"2"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"2"}),(0,d.jsx)(r.td,{children:"3"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"3"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"3"}),(0,d.jsx)(r.td,{children:"4"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"4"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"4"}),(0,d.jsx)(r.td,{children:"[5]"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"5"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"7"}),(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"[6]"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"7"}),(0,d.jsx)(r.td,{children:"7"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"9"}),(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"8"})]})]})]}),(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"Durchlauf"}),(0,d.jsx)(r.th,{children:"l"}),(0,d.jsx)(r.th,{children:"r"}),(0,d.jsx)(r.th,{children:"m"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"1"}),(0,d.jsx)(r.td,{children:"0"}),(0,d.jsx)(r.td,{children:"9"}),(0,d.jsx)(r.td,{children:"4"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"2"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"9"}),(0,d.jsx)(r.td,{children:"7"})]})]})]})]}),(0,d.jsxs)(i.Z,{value:"d",label:"Interpolationssuche",children:[(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"Index"}),(0,d.jsx)(r.th,{children:"1"}),(0,d.jsx)(r.th,{children:"2"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"0"}),(0,d.jsx)(r.td,{children:"2"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"1"}),(0,d.jsx)(r.td,{children:"2"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"2"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"2"}),(0,d.jsx)(r.td,{children:"3"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"3"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"3"}),(0,d.jsx)(r.td,{children:"4"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"4"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"4"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"5"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:"5"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"5"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"[5]"}),(0,d.jsx)(r.td,{children:(0,d.jsx)(r.strong,{children:"5"})})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"7"}),(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"[6]"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"7"}),(0,d.jsx)(r.td,{children:"7"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"9"}),(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"8"})]})]})]}),(0,d.jsxs)(r.table,{children:[(0,d.jsx)(r.thead,{children:(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.th,{children:"Durchlauf"}),(0,d.jsx)(r.th,{children:"s"}),(0,d.jsx)(r.th,{children:"l"}),(0,d.jsx)(r.th,{children:"r"}),(0,d.jsx)(r.th,{children:"d[l]"}),(0,d.jsx)(r.th,{children:"d[r]"}),(0,d.jsx)(r.th,{children:"t"})]})}),(0,d.jsxs)(r.tbody,{children:[(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"1"}),(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"0"}),(0,d.jsx)(r.td,{children:"9"}),(0,d.jsx)(r.td,{children:"2"}),(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"6"})]}),(0,d.jsxs)(r.tr,{children:[(0,d.jsx)(r.td,{children:"2"}),(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"7"}),(0,d.jsx)(r.td,{children:"9"}),(0,d.jsx)(r.td,{children:"6"}),(0,d.jsx)(r.td,{children:"8"}),(0,d.jsx)(r.td,{children:"7"})]})]})]})]})]})]})}function o(e={}){let{wrapper:r}={...(0,n.a)(),...e.components};return r?(0,d.jsx)(r,{...e,children:(0,d.jsx)(a,{...e})}):a(e)}},5525:function(e,r,t){t.d(r,{Z:()=>l});var s=t("85893");t("67294");var d=t("67026");let n="tabItem_Ymn6";function l(e){let{children:r,hidden:t,className:l}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,d.Z)(n,l),hidden:t,children:r})}},47902:function(e,r,t){t.d(r,{Z:()=>v});var s=t("85893"),d=t("67294"),n=t("67026"),l=t("69599"),i=t("16550"),c=t("32000"),h=t("4520"),x=t("38341"),j=t("76009");function a(e){return d.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||d.isValidElement(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function o(e){let{value:r,tabValues:t}=e;return t.some(e=>e.value===r)}var u=t("7227");let g="tabList__CuJ",f="tabItem_LNqP";function m(e){let{className:r,block:t,selectedValue:d,selectValue:i,tabValues:c}=e,h=[],{blockElementScrollPositionUntilNextRender:x}=(0,l.o5)(),j=e=>{let r=e.currentTarget,t=c[h.indexOf(r)].value;t!==d&&(x(r),i(t))},a=e=>{let r=null;switch(e.key){case"Enter":j(e);break;case"ArrowRight":{let t=h.indexOf(e.currentTarget)+1;r=h[t]??h[0];break}case"ArrowLeft":{let t=h.indexOf(e.currentTarget)-1;r=h[t]??h[h.length-1]}}r?.focus()};return(0,s.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":t},r),children:c.map(e=>{let{value:r,label:t,attributes:l}=e;return(0,s.jsx)("li",{role:"tab",tabIndex:d===r?0:-1,"aria-selected":d===r,ref:e=>h.push(e),onKeyDown:a,onClick:j,...l,className:(0,n.Z)("tabs__item",f,l?.className,{"tabs__item--active":d===r}),children:t??r},r)})})}function p(e){let{lazy:r,children:t,selectedValue:l}=e,i=(Array.isArray(t)?t:[t]).filter(Boolean);if(r){let e=i.find(e=>e.props.value===l);return e?(0,d.cloneElement)(e,{className:(0,n.Z)("margin-top--md",e.props.className)}):null}return(0,s.jsx)("div",{className:"margin-top--md",children:i.map((e,r)=>(0,d.cloneElement)(e,{key:r,hidden:e.props.value!==l}))})}function b(e){let r=function(e){let{defaultValue:r,queryString:t=!1,groupId:s}=e,n=function(e){let{values:r,children:t}=e;return(0,d.useMemo)(()=>{let e=r??a(t).map(e=>{let{props:{value:r,label:t,attributes:s,default:d}}=e;return{value:r,label:t,attributes:s,default:d}});return!function(e){let r=(0,x.lx)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[r,t])}(e),[l,u]=(0,d.useState)(()=>(function(e){let{defaultValue:r,tabValues:t}=e;if(0===t.length)throw Error("Docusaurus error: the component requires at least one children component");if(r){if(!o({value:r,tabValues:t}))throw Error(`Docusaurus error: The has a defaultValue "${r}" but none of its children has the corresponding value. Available values are: ${t.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return r}let s=t.find(e=>e.default)??t[0];if(!s)throw Error("Unexpected error: 0 tabValues");return s.value})({defaultValue:r,tabValues:n})),[g,f]=function(e){let{queryString:r=!1,groupId:t}=e,s=(0,i.k6)(),n=function(e){let{queryString:r=!1,groupId:t}=e;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!t)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:r,groupId:t}),l=(0,h._X)(n);return[l,(0,d.useCallback)(e=>{if(!n)return;let r=new URLSearchParams(s.location.search);r.set(n,e),s.replace({...s.location,search:r.toString()})},[n,s])]}({queryString:t,groupId:s}),[m,p]=function(e){var r;let{groupId:t}=e;let s=(r=t)?`docusaurus.tab.${r}`:null,[n,l]=(0,j.Nk)(s);return[n,(0,d.useCallback)(e=>{if(!!s)l.set(e)},[s,l])]}({groupId:s}),b=(()=>{let e=g??m;return o({value:e,tabValues:n})?e:null})();return(0,c.Z)(()=>{b&&u(b)},[b]),{selectedValue:l,selectValue:(0,d.useCallback)(e=>{if(!o({value:e,tabValues:n}))throw Error(`Can't select invalid tab value=${e}`);u(e),f(e),p(e)},[f,p,n]),tabValues:n}}(e);return(0,s.jsxs)("div",{className:(0,n.Z)("tabs-container",g),children:[(0,s.jsx)(m,{...r,...e}),(0,s.jsx)(p,{...r,...e})]})}function v(e){let r=(0,u.Z)();return(0,s.jsx)(b,{...e,children:a(e.children)},String(r))}},50065:function(e,r,t){t.d(r,{Z:function(){return i},a:function(){return l}});var s=t(67294);let d={},n=s.createContext(d);function l(e){let r=s.useContext(n);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:l(e.components),s.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/0da5da0e.3774ee62.js b/pr-preview/pr-238/assets/js/0da5da0e.3774ee62.js new file mode 100644 index 0000000000..dd5fc3d7b3 --- /dev/null +++ b/pr-preview/pr-238/assets/js/0da5da0e.3774ee62.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4839"],{17990:function(e){e.exports=JSON.parse('{"tag":{"label":"records","permalink":"/java-docs/pr-preview/pr-238/tags/records","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":16,"items":[{"id":"exam-exercises/exam-exercises-java2/class-diagrams/library","title":"Bibliothek","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/library"},{"id":"documentation/records","title":"Datenklassen (Records)","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/records"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal","title":"Einkaufsportal","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/player","title":"Kartenspieler","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/player"},{"id":"exam-exercises/exam-exercises-java2/queries/measurement-data","title":"Messdaten","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/measurement-data"},{"id":"exam-exercises/exam-exercises-java2/queries/tanks","title":"Panzer","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/tanks"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/human-resources","title":"Personalverwaltung","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/human-resources"},{"id":"exam-exercises/exam-exercises-java2/queries/planets","title":"Planeten","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/planets"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/space-station","title":"Raumstation","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/space-station"},{"id":"exam-exercises/exam-exercises-java2/queries/phone-store","title":"Smartphone-Shop","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/phone-store"},{"id":"exam-exercises/exam-exercises-java2/queries/cities","title":"St\xe4dte","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/cities"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/job-offer","title":"Stellenangebot","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/job-offer"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/corner-shop","title":"Tante-Emma-Laden","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/corner-shop"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/team","title":"Team","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/team"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/video-collection","title":"Videosammlung","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/video-collection"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/dictionary","title":"W\xf6rterbuch","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/dictionary"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/0dd85ce3.895a3d65.js b/pr-preview/pr-238/assets/js/0dd85ce3.895a3d65.js new file mode 100644 index 0000000000..3d020868a0 --- /dev/null +++ b/pr-preview/pr-238/assets/js/0dd85ce3.895a3d65.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3724"],{50011:function(e){e.exports=JSON.parse('{"tag":{"label":"inner-classes","permalink":"/java-docs/pr-preview/pr-238/tags/inner-classes","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":5,"items":[{"id":"exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal","title":"Einkaufsportal","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal"},{"id":"documentation/inner-classes","title":"Innere Klassen (Inner Classes)","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/inner-classes"},{"id":"exercises/inner-classes/inner-classes","title":"Innere Klassen (Inner Classes)","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/inner-classes/"},{"id":"documentation/lambdas","title":"Lambda-Ausdr\xfccke (Lambdas)","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/lambdas"},{"id":"exercises/lambdas/lambdas","title":"Lambda-Ausdr\xfccke (Lambdas)","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/lambdas/"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/0e1bb336.14c7e23a.js b/pr-preview/pr-238/assets/js/0e1bb336.14c7e23a.js new file mode 100644 index 0000000000..7eb3feea33 --- /dev/null +++ b/pr-preview/pr-238/assets/js/0e1bb336.14c7e23a.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2159"],{46606:function(e,t,n){n.r(t),n.d(t,{metadata:()=>r,contentTitle:()=>l,default:()=>p,assets:()=>c,toc:()=>u,frontMatter:()=>o});var r=JSON.parse('{"id":"exercises/unit-tests/unit-tests","title":"Komponententests (Unit-Tests)","description":"","source":"@site/docs/exercises/unit-tests/unit-tests.mdx","sourceDirName":"exercises/unit-tests","slug":"/exercises/unit-tests/","permalink":"/java-docs/pr-preview/pr-238/exercises/unit-tests/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/unit-tests/unit-tests.mdx","tags":[{"inline":true,"label":"unit-tests","permalink":"/java-docs/pr-preview/pr-238/tags/unit-tests"}],"version":"current","sidebarPosition":210,"frontMatter":{"title":"Komponententests (Unit-Tests)","description":"","sidebar_position":210,"tags":["unit-tests"]},"sidebar":"exercisesSidebar","previous":{"title":"JavaStreamAPI02","permalink":"/java-docs/pr-preview/pr-238/exercises/java-stream-api/java-stream-api02"},"next":{"title":"UnitTests01","permalink":"/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests01"}}'),s=n("85893"),i=n("50065"),a=n("94301");let o={title:"Komponententests (Unit-Tests)",description:"",sidebar_position:210,tags:["unit-tests"]},l=void 0,c={},u=[{value:"\xdcbungsaufgaben",id:"\xfcbungsaufgaben",level:2}];function d(e){let t={h2:"h2",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"\xfcbungsaufgaben",children:"\xdcbungsaufgaben"}),"\n","\n",(0,s.jsx)(a.Z,{})]})}function p(e={}){let{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},94301:function(e,t,n){n.d(t,{Z:()=>j});var r=n("85893");n("67294");var s=n("67026"),i=n("69369"),a=n("83012"),o=n("43115"),l=n("63150"),c=n("96025"),u=n("34403");let d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function p(e){let{href:t,children:n}=e;return(0,r.jsx)(a.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer),children:n})}function m(e){let{href:t,icon:n,title:i,description:a}=e;return(0,r.jsxs)(p,{href:t,children:[(0,r.jsxs)(u.Z,{as:"h2",className:(0,s.Z)("text--truncate",d.cardTitle),title:i,children:[n," ",i]}),a&&(0,r.jsx)("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:a,children:a})]})}function f(e){let{item:t}=e,n=(0,i.LM)(t),s=function(){let{selectMessage:e}=(0,o.c)();return t=>e(t,(0,c.I)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return n?(0,r.jsx)(m,{href:n,icon:"\uD83D\uDDC3\uFE0F",title:t.label,description:t.description??s(t.items.length)}):null}function h(e){let{item:t}=e,n=(0,l.Z)(t.href)?"\uD83D\uDCC4\uFE0F":"\uD83D\uDD17",s=(0,i.xz)(t.docId??void 0);return(0,r.jsx)(m,{href:t.href,icon:n,title:t.label,description:t.description??s?.description})}function x(e){let{item:t}=e;switch(t.type){case"link":return(0,r.jsx)(h,{item:t});case"category":return(0,r.jsx)(f,{item:t});default:throw Error(`unknown item type ${JSON.stringify(t)}`)}}function g(e){let{className:t}=e,n=(0,i.jA)();return(0,r.jsx)(j,{items:n.items,className:t})}function j(e){let{items:t,className:n}=e;if(!t)return(0,r.jsx)(g,{...e});let a=(0,i.MN)(t);return(0,r.jsx)("section",{className:(0,s.Z)("row",n),children:a.map((e,t)=>(0,r.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,r.jsx)(x,{item:e})},t))})}},43115:function(e,t,n){n.d(t,{c:function(){return l}});var r=n(67294),s=n(2933);let i=["zero","one","two","few","many","other"];function a(e){return i.filter(t=>e.includes(t))}let o={locale:"en",pluralForms:a(["one","other"]),select:e=>1===e?"one":"other"};function l(){let e=function(){let{i18n:{currentLocale:e}}=(0,s.Z)();return(0,r.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:a(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${t.message} +`),o}},[e])}();return{selectMessage:(t,n)=>(function(e,t,n){let r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);let s=n.select(t);return r[Math.min(n.pluralForms.indexOf(s),r.length-1)]})(n,t,e)}}},50065:function(e,t,n){n.d(t,{Z:function(){return o},a:function(){return a}});var r=n(67294);let s={},i=r.createContext(s);function a(e){let t=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/0e5748f5.8af69aec.js b/pr-preview/pr-238/assets/js/0e5748f5.8af69aec.js new file mode 100644 index 0000000000..315b39672e --- /dev/null +++ b/pr-preview/pr-238/assets/js/0e5748f5.8af69aec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8113"],{98582:function(e,n,s){s.d(n,{Z:function(){return l}});var i=s(85893),r=s(67294);function l(e){let{children:n,initSlides:s,width:l=null,height:a=null}=e;return(0,r.useEffect)(()=>{s()}),(0,i.jsx)("div",{className:"reveal reveal-viewport",style:{width:l??"100vw",height:a??"100vh"},children:(0,i.jsx)("div",{className:"slides",children:n})})}},57270:function(e,n,s){s.d(n,{O:function(){return i}});let i=()=>{let e=s(42199),n=s(87251),i=s(60977),r=s(12489);new(s(29197))({plugins:[e,n,i,r]}).initialize({hash:!0})}},63037:function(e,n,s){s.d(n,{K:function(){return r}});var i=s(85893);s(67294);let r=()=>(0,i.jsx)("p",{style:{fontSize:"8px",position:"absolute",bottom:0,right:0},children:"*NKR"})},75342:function(e,n,s){s.r(n),s.d(n,{default:function(){return c}});var i=s(85893),r=s(98582),l=s(57270),a=s(63037);function c(){return(0,i.jsxs)(r.Z,{initSlides:l.O,children:[(0,i.jsx)("section",{children:(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Agenda"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Wiederholung"}),(0,i.jsx)("li",{className:"fragment",children:"variable Argumentlisten"}),(0,i.jsx)("li",{className:"fragment",children:"Interface"}),(0,i.jsx)("li",{className:"fragment",children:"Komparator"}),(0,i.jsx)("li",{className:"fragment",children:"Zusammenfassung"})]})]})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Wiederholung"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"abstract Modifier"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"abstrakte Klassen"}),(0,i.jsx)("li",{className:"fragment",children:"abstrakte Methoden"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"final Modifier"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"finale Klassen"}),(0,i.jsx)("li",{className:"fragment",children:"finale Methoden"})]})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Interfaces"})}),(0,i.jsx)("section",{children:(0,i.jsx)("p",{children:"Wie kann man Dogs und Cats in einer Liste speichern?"})}),(0,i.jsx)("section",{children:(0,i.jsx)("p",{children:"Wie kann man Baby, Child und Adult in einer Liste speichern?"})}),(0,i.jsx)("section",{children:(0,i.jsx)("p",{children:"Wie kann man Dogs, Cats, Baby, Child und Adult in einer Liste speichern?"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("p",{children:"Limitierungen von abstrakten Klassen"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"komplexe Vererbungshierarchie"}),(0,i.jsx)("li",{className:"fragment",children:"keine Mehrfachvererbung"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Interfaces"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"definieren Methoden"}),(0,i.jsx)("li",{className:"fragment",children:"werden von Klassen implementiert"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Zweck von Interfaces"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Unabh\xe4ngig von Vererbung"}),(0,i.jsx)("li",{className:"fragment",children:"Verstecken von Implementierungsdetails"}),(0,i.jsx)("li",{className:"fragment",children:"Schnittstelle zwischen Ersteller und Verwender"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Ersteller des Warenkorbs"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Beschreibung anzeigen"}),(0,i.jsx)("li",{className:"fragment",children:"Einzelpreis ermitteln"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Realisierung des Warenkorbs"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Warenkorb Modul definiert Interface"}),(0,i.jsx)("li",{className:"fragment",children:"Artikel implementieren das Interface"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Demo Interface"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"ShoppingCart"}),(0,i.jsx)("li",{className:"fragment",children:"Dog und Cat implementieren Interface"}),(0,i.jsx)("li",{className:"fragment",children:"ToDo Liste"}),(0,i.jsx)("li",{className:"fragment",children:"Dog und Cat implementieren Interface"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"weitere Anwendungsgebiete*"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Dependency Injection"}),(0,i.jsx)("li",{className:"fragment",children:"Unit Tests"})]}),(0,i.jsx)("div",{children:(0,i.jsx)(a.K,{})})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Komparatoren"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Zweck von Komparatoren"}),(0,i.jsx)("p",{children:"Sortieren von Listen"})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Funktionsweise"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Vergleichen von zwei Objekten"}),(0,i.jsx)("li",{className:"fragment",children:"erstes Element davor einordnen: -1"}),(0,i.jsx)("li",{className:"fragment",children:"erstes Element dahinter einordnen: 1"}),(0,i.jsx)("li",{className:"fragment",children:"erstes Element gleich einordnen: 0"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Welche Interfaces gibt es?"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Comparable"}),(0,i.jsx)("li",{className:"fragment",children:"Comparator"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Comparable"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"definiert die Standardsortierung"}),(0,i.jsx)("li",{className:"fragment",children:"Implementierung in der Datenklasse"}),(0,i.jsx)("li",{className:"fragment",children:"Bsp. Human nach Alter sortieren"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Comparator"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"definiert eine Sortierung"}),(0,i.jsx)("li",{className:"fragment",children:"Implementierung in eigener Klasse"}),(0,i.jsx)("li",{className:"fragment",children:"Bsp. AgeComparator, NameComparator"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Wie sortiert man eine Liste?"}),(0,i.jsx)("pre",{className:"fragment",children:(0,i.jsx)("code",{className:"java","data-line-numbers":"2|3|4",dangerouslySetInnerHTML:{__html:"// ...\nArrayList<Human> humans = new ArrayList<>();\nCollections.sort(humans);\nCollections.sort(humans, new AgeComparator());\n// ..."}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Demo Komparatoren"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Human Comparable"}),(0,i.jsx)("li",{className:"fragment",children:"AgeComparator"})]})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Zusammenfassung"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"variable Argumentlisten"}),(0,i.jsx)("li",{className:"fragment",children:"Interfaces"}),(0,i.jsx)("li",{className:"fragment",children:"Komparatoren"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Rest of the day"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Interfaces 01"}),(0,i.jsx)("li",{className:"fragment",children:"Comparators 01 - 02"})]})]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/0ef44821.75081123.js b/pr-preview/pr-238/assets/js/0ef44821.75081123.js new file mode 100644 index 0000000000..a6b99161e2 --- /dev/null +++ b/pr-preview/pr-238/assets/js/0ef44821.75081123.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["5541"],{44310:function(e,r,t){t.r(r),t.d(r,{metadata:()=>a,contentTitle:()=>o,default:()=>p,assets:()=>u,toc:()=>c,frontMatter:()=>i});var a=JSON.parse('{"id":"exercises/arrays/arrays02","title":"Arrays02","description":"","source":"@site/docs/exercises/arrays/arrays02.mdx","sourceDirName":"exercises/arrays","slug":"/exercises/arrays/arrays02","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays02","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/arrays/arrays02.mdx","tags":[],"version":"current","frontMatter":{"title":"Arrays02","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Arrays01","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays01"},"next":{"title":"Arrays03","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays03"}}'),s=t("85893"),n=t("50065"),l=t("39661");let i={title:"Arrays02",description:""},o=void 0,u={},c=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2}];function d(e){let r={code:"code",h2:"h2",p:"p",pre:"pre",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.p,{children:"Erstelle eine ausf\xfchrbare Klasse zum Umdrehen von Feldern (d.h. das erste\nElement soll nach dem Umdrehen an letzter Position stehen, das letzte an erster\nPosition usw.)."}),"\n",(0,s.jsx)(r.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-console",children:"Eingabe: 4 8 2 6 9 1\nAusgabe: 1 9 6 2 8 4\n"})}),"\n",(0,s.jsx)(l.Z,{pullRequest:"19",branchSuffix:"arrays/02"})]})}function p(e={}){let{wrapper:r}={...(0,n.a)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},5525:function(e,r,t){t.d(r,{Z:()=>l});var a=t("85893");t("67294");var s=t("67026");let n="tabItem_Ymn6";function l(e){let{children:r,hidden:t,className:l}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,s.Z)(n,l),hidden:t,children:r})}},47902:function(e,r,t){t.d(r,{Z:()=>j});var a=t("85893"),s=t("67294"),n=t("67026"),l=t("69599"),i=t("16550"),o=t("32000"),u=t("4520"),c=t("38341"),d=t("76009");function p(e){return s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||s.isValidElement(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:r,tabValues:t}=e;return t.some(e=>e.value===r)}var f=t("7227");let m="tabList__CuJ",v="tabItem_LNqP";function b(e){let{className:r,block:t,selectedValue:s,selectValue:i,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),d=e=>{let r=e.currentTarget,t=o[u.indexOf(r)].value;t!==s&&(c(r),i(t))},p=e=>{let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=u.indexOf(e.currentTarget)+1;r=u[t]??u[0];break}case"ArrowLeft":{let t=u.indexOf(e.currentTarget)-1;r=u[t]??u[u.length-1]}}r?.focus()};return(0,a.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":t},r),children:o.map(e=>{let{value:r,label:t,attributes:l}=e;return(0,a.jsx)("li",{role:"tab",tabIndex:s===r?0:-1,"aria-selected":s===r,ref:e=>u.push(e),onKeyDown:p,onClick:d,...l,className:(0,n.Z)("tabs__item",v,l?.className,{"tabs__item--active":s===r}),children:t??r},r)})})}function x(e){let{lazy:r,children:t,selectedValue:l}=e,i=(Array.isArray(t)?t:[t]).filter(Boolean);if(r){let e=i.find(e=>e.props.value===l);return e?(0,s.cloneElement)(e,{className:(0,n.Z)("margin-top--md",e.props.className)}):null}return(0,a.jsx)("div",{className:"margin-top--md",children:i.map((e,r)=>(0,s.cloneElement)(e,{key:r,hidden:e.props.value!==l}))})}function g(e){let r=function(e){let{defaultValue:r,queryString:t=!1,groupId:a}=e,n=function(e){let{values:r,children:t}=e;return(0,s.useMemo)(()=>{let e=r??p(t).map(e=>{let{props:{value:r,label:t,attributes:a,default:s}}=e;return{value:r,label:t,attributes:a,default:s}});return!function(e){let r=(0,c.lx)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[r,t])}(e),[l,f]=(0,s.useState)(()=>(function(e){let{defaultValue:r,tabValues:t}=e;if(0===t.length)throw Error("Docusaurus error: the component requires at least one children component");if(r){if(!h({value:r,tabValues:t}))throw Error(`Docusaurus error: The has a defaultValue "${r}" but none of its children has the corresponding value. Available values are: ${t.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return r}let a=t.find(e=>e.default)??t[0];if(!a)throw Error("Unexpected error: 0 tabValues");return a.value})({defaultValue:r,tabValues:n})),[m,v]=function(e){let{queryString:r=!1,groupId:t}=e,a=(0,i.k6)(),n=function(e){let{queryString:r=!1,groupId:t}=e;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!t)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:r,groupId:t}),l=(0,u._X)(n);return[l,(0,s.useCallback)(e=>{if(!n)return;let r=new URLSearchParams(a.location.search);r.set(n,e),a.replace({...a.location,search:r.toString()})},[n,a])]}({queryString:t,groupId:a}),[b,x]=function(e){var r;let{groupId:t}=e;let a=(r=t)?`docusaurus.tab.${r}`:null,[n,l]=(0,d.Nk)(a);return[n,(0,s.useCallback)(e=>{if(!!a)l.set(e)},[a,l])]}({groupId:a}),g=(()=>{let e=m??b;return h({value:e,tabValues:n})?e:null})();return(0,o.Z)(()=>{g&&f(g)},[g]),{selectedValue:l,selectValue:(0,s.useCallback)(e=>{if(!h({value:e,tabValues:n}))throw Error(`Can't select invalid tab value=${e}`);f(e),v(e),x(e)},[v,x,n]),tabValues:n}}(e);return(0,a.jsxs)("div",{className:(0,n.Z)("tabs-container",m),children:[(0,a.jsx)(b,{...r,...e}),(0,a.jsx)(x,{...r,...e})]})}function j(e){let r=(0,f.Z)();return(0,a.jsx)(g,{...e,children:p(e.children)},String(r))}},39661:function(e,r,t){t.d(r,{Z:function(){return o}});var a=t(85893);t(67294);var s=t(47902),n=t(5525),l=t(83012),i=t(45056);function o(e){let{pullRequest:r,branchSuffix:t}=e;return(0,a.jsxs)(s.Z,{children:[(0,a.jsxs)(n.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,a.jsx)(i.Z,{language:"console",children:`git switch exercises/${t}`}),(0,a.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${t}/Exercise.java`,children:(0,a.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,a.jsxs)(n.Z,{value:"solution",label:"Solution",children:[(0,a.jsx)(i.Z,{language:"console",children:`git switch solutions/${t}`}),(0,a.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${t}/Exercise.java`,children:(0,a.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,a.jsxs)(n.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,a.jsxs)(l.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${r}/files?diff=split`,children:["PR#",r]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/10130def.3ed7b461.js b/pr-preview/pr-238/assets/js/10130def.3ed7b461.js new file mode 100644 index 0000000000..e2434eb0b1 --- /dev/null +++ b/pr-preview/pr-238/assets/js/10130def.3ed7b461.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["633"],{37053:function(e,r,n){n.r(r),n.d(r,{metadata:()=>t,contentTitle:()=>o,default:()=>h,assets:()=>c,toc:()=>u,frontMatter:()=>a});var t=JSON.parse('{"id":"exercises/oo/oo05","title":"OO05","description":"","source":"@site/docs/exercises/oo/oo05.mdx","sourceDirName":"exercises/oo","slug":"/exercises/oo/oo05","permalink":"/java-docs/pr-preview/pr-238/exercises/oo/oo05","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/oo/oo05.mdx","tags":[],"version":"current","frontMatter":{"title":"OO05","description":""},"sidebar":"exercisesSidebar","previous":{"title":"OO04","permalink":"/java-docs/pr-preview/pr-238/exercises/oo/oo04"},"next":{"title":"OO06","permalink":"/java-docs/pr-preview/pr-238/exercises/oo/oo06"}}'),s=n("85893"),l=n("50065"),i=n("39661");let a={title:"OO05",description:""},o=void 0,c={},u=[{value:"Methoden der Klasse DiceCup",id:"methoden-der-klasse-dicecup",level:2},{value:"Konsolenausgabe",id:"konsolenausgabe",level:2},{value:"Hinweis",id:"hinweis",level:2}];function d(e){let r={a:"a",code:"code",em:"em",h2:"h2",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Erstelle die Klasse ",(0,s.jsx)(r.code,{children:"DiceCup"})," mit Hilfe der abgebildeten Informationen"]}),"\n",(0,s.jsx)(r.li,{children:"Erstelle eine ausf\xfchrbare Klasse, welche einen W\xfcrfelbecher sowie 5 W\xfcrfel\nerzeugt. Es soll 5-mal mit dem W\xfcrfelbecher gew\xfcrfelt und f\xfcr jeden Wurf das\nErgebnis des Wurfes ausgegeben werden."}),"\n"]}),"\n",(0,s.jsxs)(r.h2,{id:"methoden-der-klasse-dicecup",children:["Methoden der Klasse ",(0,s.jsx)(r.em,{children:"DiceCup"})]}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Methode"}),(0,s.jsx)(r.th,{children:"R\xfcckgabewert"}),(0,s.jsx)(r.th,{children:"Sichtbarkeit"}),(0,s.jsx)(r.th,{children:"Beschreibung"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.em,{children:"rollTheDices(dices: Dice[])"})}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.em,{children:"void"})}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.em,{children:"public"})}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.em,{children:"W\xfcrfeln mit allen W\xfcrfeln sowie eine passende Konsolenausgabe"})})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.em,{children:"rollTheDices(dices: ArrayList)"})}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.em,{children:"void"})}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.em,{children:"public"})}),(0,s.jsx)(r.td,{children:(0,s.jsx)(r.em,{children:"W\xfcrfeln mit allen W\xfcrfeln sowie eine passende Konsolenausgabe"})})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-console",children:"ID - W\xfcrfelwert\nWurf 1\n1 - 5\n2 - 5\n3 - 2\n4 - 2\n5 - 4\nWurf 2\n1 - 1\n2 - 3\n3 - 1\n4 - 1\n5 - 4\n\u2026\n"})}),"\n",(0,s.jsx)(r.h2,{id:"hinweis",children:"Hinweis"}),"\n",(0,s.jsxs)(r.p,{children:["Verwende die Klasse ",(0,s.jsx)(r.code,{children:"Dice"})," aus \xdcbungsaufgabe ",(0,s.jsx)(r.a,{href:"oo03",children:"OO03"}),"."]}),"\n",(0,s.jsx)(i.Z,{pullRequest:"27",branchSuffix:"oo/05"})]})}function h(e={}){let{wrapper:r}={...(0,l.a)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},5525:function(e,r,n){n.d(r,{Z:()=>i});var t=n("85893");n("67294");var s=n("67026");let l="tabItem_Ymn6";function i(e){let{children:r,hidden:n,className:i}=e;return(0,t.jsx)("div",{role:"tabpanel",className:(0,s.Z)(l,i),hidden:n,children:r})}},47902:function(e,r,n){n.d(r,{Z:()=>g});var t=n("85893"),s=n("67294"),l=n("67026"),i=n("69599"),a=n("16550"),o=n("32000"),c=n("4520"),u=n("38341"),d=n("76009");function h(e){return s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||s.isValidElement(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function p(e){let{value:r,tabValues:n}=e;return n.some(e=>e.value===r)}var f=n("7227");let x="tabList__CuJ",b="tabItem_LNqP";function m(e){let{className:r,block:n,selectedValue:s,selectValue:a,tabValues:o}=e,c=[],{blockElementScrollPositionUntilNextRender:u}=(0,i.o5)(),d=e=>{let r=e.currentTarget,n=o[c.indexOf(r)].value;n!==s&&(u(r),a(n))},h=e=>{let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let n=c.indexOf(e.currentTarget)+1;r=c[n]??c[0];break}case"ArrowLeft":{let n=c.indexOf(e.currentTarget)-1;r=c[n]??c[c.length-1]}}r?.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":n},r),children:o.map(e=>{let{value:r,label:n,attributes:i}=e;return(0,t.jsx)("li",{role:"tab",tabIndex:s===r?0:-1,"aria-selected":s===r,ref:e=>c.push(e),onKeyDown:h,onClick:d,...i,className:(0,l.Z)("tabs__item",b,i?.className,{"tabs__item--active":s===r}),children:n??r},r)})})}function j(e){let{lazy:r,children:n,selectedValue:i}=e,a=(Array.isArray(n)?n:[n]).filter(Boolean);if(r){let e=a.find(e=>e.props.value===i);return e?(0,s.cloneElement)(e,{className:(0,l.Z)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:a.map((e,r)=>(0,s.cloneElement)(e,{key:r,hidden:e.props.value!==i}))})}function v(e){let r=function(e){let{defaultValue:r,queryString:n=!1,groupId:t}=e,l=function(e){let{values:r,children:n}=e;return(0,s.useMemo)(()=>{let e=r??h(n).map(e=>{let{props:{value:r,label:n,attributes:t,default:s}}=e;return{value:r,label:n,attributes:t,default:s}});return!function(e){let r=(0,u.lx)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[r,n])}(e),[i,f]=(0,s.useState)(()=>(function(e){let{defaultValue:r,tabValues:n}=e;if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(r){if(!p({value:r,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${r}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return r}let t=n.find(e=>e.default)??n[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:r,tabValues:l})),[x,b]=function(e){let{queryString:r=!1,groupId:n}=e,t=(0,a.k6)(),l=function(e){let{queryString:r=!1,groupId:n}=e;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:r,groupId:n}),i=(0,c._X)(l);return[i,(0,s.useCallback)(e=>{if(!l)return;let r=new URLSearchParams(t.location.search);r.set(l,e),t.replace({...t.location,search:r.toString()})},[l,t])]}({queryString:n,groupId:t}),[m,j]=function(e){var r;let{groupId:n}=e;let t=(r=n)?`docusaurus.tab.${r}`:null,[l,i]=(0,d.Nk)(t);return[l,(0,s.useCallback)(e=>{if(!!t)i.set(e)},[t,i])]}({groupId:t}),v=(()=>{let e=x??m;return p({value:e,tabValues:l})?e:null})();return(0,o.Z)(()=>{v&&f(v)},[v]),{selectedValue:i,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:l}))throw Error(`Can't select invalid tab value=${e}`);f(e),b(e),j(e)},[b,j,l]),tabValues:l}}(e);return(0,t.jsxs)("div",{className:(0,l.Z)("tabs-container",x),children:[(0,t.jsx)(m,{...r,...e}),(0,t.jsx)(j,{...r,...e})]})}function g(e){let r=(0,f.Z)();return(0,t.jsx)(v,{...e,children:h(e.children)},String(r))}},39661:function(e,r,n){n.d(r,{Z:function(){return o}});var t=n(85893);n(67294);var s=n(47902),l=n(5525),i=n(83012),a=n(45056);function o(e){let{pullRequest:r,branchSuffix:n}=e;return(0,t.jsxs)(s.Z,{children:[(0,t.jsxs)(l.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,t.jsx)(a.Z,{language:"console",children:`git switch exercises/${n}`}),(0,t.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${n}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(l.Z,{value:"solution",label:"Solution",children:[(0,t.jsx)(a.Z,{language:"console",children:`git switch solutions/${n}`}),(0,t.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${n}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(l.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,t.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${r}/files?diff=split`,children:["PR#",r]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1086c4e3.dbae6953.js b/pr-preview/pr-238/assets/js/1086c4e3.dbae6953.js new file mode 100644 index 0000000000..9532513654 --- /dev/null +++ b/pr-preview/pr-238/assets/js/1086c4e3.dbae6953.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8972"],{21906:function(e,n,t){t.r(n),t.d(n,{metadata:()=>s,contentTitle:()=>a,default:()=>u,assets:()=>d,toc:()=>l,frontMatter:()=>o});var s=JSON.parse('{"id":"documentation/tests","title":"Softwaretests","description":"","source":"@site/docs/documentation/tests.md","sourceDirName":"documentation","slug":"/documentation/tests","permalink":"/java-docs/pr-preview/pr-238/documentation/tests","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/tests.md","tags":[{"inline":true,"label":"tests","permalink":"/java-docs/pr-preview/pr-238/tags/tests"}],"version":"current","sidebarPosition":310,"frontMatter":{"title":"Softwaretests","description":"","sidebar_position":310,"tags":["tests"]},"sidebar":"documentationSidebar","previous":{"title":"Die Java Stream API","permalink":"/java-docs/pr-preview/pr-238/documentation/java-stream-api"},"next":{"title":"Komponententests (Unit Tests)","permalink":"/java-docs/pr-preview/pr-238/documentation/unit-tests"}}'),i=t("85893"),r=t("50065");let o={title:"Softwaretests",description:"",sidebar_position:310,tags:["tests"]},a=void 0,d={},l=[];function c(e){let n={admonition:"admonition",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Softwaretests sollen sicherstellen, dass bei der Entwicklung oder \xc4nderung einer\nSoftware der Quellcode in allen festgelegten Anwendungsf\xe4llen korrekt\nfunktioniert. Mit Hilfe von Softwaretests k\xf6nnen Softwareentwickler im Idealfall\nschon w\xe4hrend des Entwicklungsprozesses m\xf6gliche Fehler identifizieren und\nbeheben. Man unterscheidet dabei zwischen verschiedenen Testarten:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Akzeptanztests: Testen des gesamten Systems unter realit\xe4tsgetreuen\nBedingungen"}),"\n",(0,i.jsx)(n.li,{children:"Systemtests: Testen des gesamten Systems"}),"\n",(0,i.jsx)(n.li,{children:"Integrationstests: Testen mehrerer, voneinander abh\xe4ngiger Komponenten"}),"\n",(0,i.jsx)(n.li,{children:"Komponententests: Testen einzelner, abgeschlossener Softwarebausteine"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Komponententests (Unit Tests) sowie Integrationstests spielen vor allem bei\nagilen Vorgehensweisen wie z.B. der testgetriebenen Entwicklung (Test Driven\nDevelopment) eine gro\xdfe Rolle. Hierbei werden Anwendungen Schritt f\xfcr Schritt\n(also inkrementell) um neue Funktionen erweitert (z.B. nach der\nRed-Green-Refactor-Methode): Zuerst wird ein Test geschrieben, der zun\xe4chst\nfehlschl\xe4gt (Red), anschlie\xdfend wird genau soviel Produktivcode geschrieben,\ndamit der Test erfolgreich durchl\xe4uft (Green). Schlie\xdflich werden beim\nRefactoring Testcode und Produktivcode aufger\xe4umt (also vereinfacht und\nverbessert)."}),"\n",(0,i.jsx)(n.mermaid,{value:"flowchart LR\n Red --\x3e Green --\x3e Refactor --\x3e Red"}),"\n",(0,i.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,i.jsx)(n.p,{children:"Da durch die vorangestellten Tests eine kontinuierliche Designverbesserung\nstattfindet, wird die testgetriebene Entwicklung zu den Designstrategien\ngez\xe4hlt."})})]})}function u(e={}){let{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},50065:function(e,n,t){t.d(n,{Z:function(){return a},a:function(){return o}});var s=t(67294);let i={},r=s.createContext(i);function o(e){let n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/109e9612.82a6461b.js b/pr-preview/pr-238/assets/js/109e9612.82a6461b.js new file mode 100644 index 0000000000..782b6a5879 --- /dev/null +++ b/pr-preview/pr-238/assets/js/109e9612.82a6461b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7629"],{12689:function(e,s,n){n.r(s),n.d(s,{metadata:()=>t,contentTitle:()=>o,default:()=>m,assets:()=>c,toc:()=>l,frontMatter:()=>i});var t=JSON.parse('{"id":"exercises/io-streams/io-streams01","title":"IOStreams01","description":"","source":"@site/docs/exercises/io-streams/io-streams01.md","sourceDirName":"exercises/io-streams","slug":"/exercises/io-streams/io-streams01","permalink":"/java-docs/pr-preview/pr-238/exercises/io-streams/io-streams01","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/io-streams/io-streams01.md","tags":[],"version":"current","frontMatter":{"title":"IOStreams01","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Datenstr\xf6me (IO-Streams)","permalink":"/java-docs/pr-preview/pr-238/exercises/io-streams/"},"next":{"title":"IOStreams02","permalink":"/java-docs/pr-preview/pr-238/exercises/io-streams/io-streams02"}}'),r=n("85893"),a=n("50065");let i={title:"IOStreams01",description:""},o=void 0,c={},l=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Konsolenausgabe",id:"konsolenausgabe",level:2}];function d(e){let s={code:"code",h2:"h2",li:"li",mermaid:"mermaid",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Erstelle die Klasse ",(0,r.jsx)(s.code,{children:"Student"})," anhand des abgebildeten Klassendiagramms"]}),"\n",(0,r.jsxs)(s.li,{children:["Erstelle eine ausf\xfchrbare Klasse, welche entweder mehrere Objekte der Klasse\n",(0,r.jsx)(s.code,{children:"Student"})," erzeugt und diese zeichenbasiert in eine Datei schreibt oder diese\naus der Datei ausliest und ausgibt"]}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,r.jsx)(s.mermaid,{value:"classDiagram\n class Student {\n <>\n name: String\n age: int\n }"}),"\n",(0,r.jsx)(s.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-console",children:"Moechtest Du Lesen (1) oder Schreiben (2): 1\nStudent[name=Hans Maier, age=19\nStudent[name=Peter Mueller, age=23]\nStudent[name=Lisa Schmid, age=20]\n"})})]})}function m(e={}){let{wrapper:s}={...(0,a.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},50065:function(e,s,n){n.d(s,{Z:function(){return o},a:function(){return i}});var t=n(67294);let r={},a=t.createContext(r);function i(e){let s=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),t.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/12dfd35d.5a1c9164.js b/pr-preview/pr-238/assets/js/12dfd35d.5a1c9164.js new file mode 100644 index 0000000000..fd12c7a649 --- /dev/null +++ b/pr-preview/pr-238/assets/js/12dfd35d.5a1c9164.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2489"],{98582:function(e,s,n){n.d(s,{Z:function(){return l}});var a=n(85893),t=n(67294);function l(e){let{children:s,initSlides:n,width:l=null,height:i=null}=e;return(0,t.useEffect)(()=>{n()}),(0,a.jsx)("div",{className:"reveal reveal-viewport",style:{width:l??"100vw",height:i??"100vh"},children:(0,a.jsx)("div",{className:"slides",children:s})})}},57270:function(e,s,n){n.d(s,{O:function(){return a}});let a=()=>{let e=n(42199),s=n(87251),a=n(60977),t=n(12489);new(n(29197))({plugins:[e,s,a,t]}).initialize({hash:!0})}},30274:function(e,s,n){n.r(s),n.d(s,{default:function(){return r}});var a=n(85893),t=n(83012),l=n(98582),i=n(57270);function r(){return(0,a.jsxs)(l.Z,{initSlides:i.O,children:[(0,a.jsx)("section",{children:(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Agenda"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"Set"}),(0,a.jsx)("li",{className:"fragment",children:"Map"}),(0,a.jsx)("li",{className:"fragment",children:"Hashes"}),(0,a.jsx)("li",{className:"fragment",children:"Records"})]})]})}),(0,a.jsxs)("section",{children:[(0,a.jsx)("section",{children:(0,a.jsx)("h2",{children:"Set"})}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Konzept"}),(0,a.jsxs)("ul",{children:[(0,a.jsxs)("li",{className:"fragment",children:[(0,a.jsx)(t.Z,{to:"https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html",children:"Set"})," ","ist ein Interface"]}),(0,a.jsx)("li",{className:"fragment",children:"Realisiert eine Menge"}),(0,a.jsx)("li",{className:"fragment",children:"Vereinigung (Union)"}),(0,a.jsx)("li",{className:"fragment",children:"Durchschnitt (Intersection)"}),(0,a.jsx)("li",{className:"fragment",children:"Differenz (Difference)"})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsxs)("h2",{children:[(0,a.jsx)(t.Z,{to:"https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/HashSet.html",children:"HashSet"}),"- Klasse"]}),(0,a.jsx)("p",{className:"fragment",children:"implementiert das Set interface"}),(0,a.jsx)("p",{className:"fragment",children:"hat einen Typparameter"})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:(0,a.jsx)(t.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/hashcollection/hashset",children:"Demo - HashSet"})}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"Mengen erstellen (1-4) und (2,3,5)"}),(0,a.jsx)("li",{className:"fragment",children:"Vereinigung (Union)"}),(0,a.jsx)("li",{className:"fragment",children:"Durchschnitt (Intersection)"}),(0,a.jsx)("li",{className:"fragment",children:"Differenz (Difference)"})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Methoden eines Sets"}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{"data-line-numbers":"2-3|4-7|8|9-11",className:"java",dangerouslySetInnerHTML:{__html:"// ...\n Set<Integer> numbers = new HashSet<>();\n Set<Integer> otherNumbers = new HashSet<>();\n numbers.add(4545); // add entry\n numbers.remove(4545); // remove entry\n numbers.clear(); // remove all entries\n numbers.size(); // number of entries\n students.contains(4545); // entry exists\n students.addAll(otherNumbers); // union\n students.retainAll(otherNumbers); // intersection\n students.removeAll(otherNumbers); // difference\n// ...\n"}})})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("section",{children:(0,a.jsx)("h2",{children:"Map"})}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Konzept"}),(0,a.jsxs)("ul",{children:[(0,a.jsxs)("li",{className:"fragment",children:[(0,a.jsx)(t.Z,{to:"https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html",children:"Map"})," ","ist ein Interface"]}),(0,a.jsx)("li",{className:"fragment",children:"Realisiert ein Schl\xfcssel-Wert-Paar"}),(0,a.jsx)("li",{className:"fragment",children:"Keine doppelten Schl\xfcssel m\xf6glich"}),(0,a.jsx)("li",{className:"fragment",children:"Existiert ein Schl\xfcssel oder Wert"}),(0,a.jsx)("li",{className:"fragment",children:"Alle Schl\xfcssel, Werte oder Schl\xfcssel-Wert-Paare"})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Beispiele Schl\xfcssel-Wert-Paare"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"Studentendaten \u2192 MatrikelNummer, Student"}),(0,a.jsx)("li",{className:"fragment",children:"Produktinventar \u2192 Produkt, Anzahl"}),(0,a.jsx)("li",{className:"fragment",children:"StadtInfos \u2192 Stadtname, CityInfo"}),(0,a.jsx)("li",{className:"fragment",children:"Hauptst\xe4dte \u2192 Land, Hauptstadt"})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsxs)("h2",{children:[(0,a.jsx)(t.Z,{to:"https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/HashMap.html",children:"HashMap"}),"- Klasse"]}),(0,a.jsx)("p",{className:"fragment",children:"implementiert das Map interface"}),(0,a.jsx)("p",{className:"fragment",children:"hat zwei Typparameter"})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:(0,a.jsx)(t.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/hashcollection/hashmap/studentgrades",children:"Demo - HashMap"})}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"Map erstellen (Matrikelnummer/Note)"}),(0,a.jsx)("li",{className:"fragment",children:"Hinzuf\xfcgen und L\xf6schen von Noten"})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Methoden einer Map"}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{"data-line-numbers":"2-13|3|4-8|9-10|11-13",className:"java",dangerouslySetInnerHTML:{__html:'// ...\n Student steffen = new Student("Steffen");\n Map<Integer, Student> students = new HashMap<>();\n students.put(4545, steffen); // add entry\n students.get(4545); // get entry\n students.remove(4545); // remove entry\n students.clear(); // remove all entries\n students.size(); // number of entries\n students.containsKey(4545); // key exists\n students.containsValue(steffen); // value exists\n students.keySet(); // get all keys as Set\n students.values(); // get all values as Collection\n students.entrySet(); // get all entries as Set\n// ...\n'}})})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("section",{children:(0,a.jsx)("h2",{children:"Hashes"})}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:(0,a.jsx)(t.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/hashcollection/hashmap/dogowners/bug",children:"Demo - Hashmap Dog Inventory"})}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"ein Hund und deren Besitzer"}),(0,a.jsx)("li",{className:"fragment",children:"Besitzer des Hundes \xe4ndern"})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Was ist ein Hash(wert)?"}),(0,a.jsx)("ul",{children:(0,a.jsx)("li",{className:"fragment",children:"Ergebnis einer Hashfunktion"})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Was ist eine Hashfunktion?"}),(0,a.jsx)("p",{children:"Eine Hashfunktion bildet aus einer gro\xdfen Menge von Daten eine geringere Menge von Daten ab."})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Eigenschaften einer Hashfunktion"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"Einwegsfunktion"}),(0,a.jsx)("li",{className:"fragment",children:"Deterministisch"}),(0,a.jsx)("li",{className:"fragment",children:"Kollisionsbehaftet"})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Was sind Hashkollisionen?"}),(0,a.jsx)("p",{className:"fragment",children:"Eine Hashkollision tritt auf, wenn zwei unterschiedliche Eingabedaten denselben Hashwert erzeugen."})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Beispiel Hashfunktion"}),(0,a.jsxs)("table",{children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{children:"Name"}),(0,a.jsx)("th",{children:"Summe"}),(0,a.jsx)("th",{children:"Hash"})]})}),(0,a.jsxs)("tbody",{children:[(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:"fragment",children:"Steffen"}),(0,a.jsx)("td",{"data-tooltip":"S:83 t:116 e:101 f:102 f:102 e:101 n:110",tabIndex:0,className:"fragment",children:"715"}),(0,a.jsx)("td",{"data-tooltip":"715 % 4",tabIndex:0,className:"fragment",children:"3"})]}),(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:"fragment",children:"Mirco"}),(0,a.jsx)("td",{"data-tooltip":"M:77 i:105 r:114 c:99 o:111",tabIndex:0,className:"fragment",children:"506"}),(0,a.jsx)("td",{"data-tooltip":"506 % 4",tabIndex:0,className:"fragment",children:"2"})]}),(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:"fragment",children:"Marianna"}),(0,a.jsx)("td",{"data-tooltip":"M:77 a:97 r:114 i:105 a:97 n:110 n:110 a:97",tabIndex:0,className:"fragment",children:"807"}),(0,a.jsx)("td",{"data-tooltip":"807 % 4",tabIndex:0,className:"fragment",children:"3"})]})]})]}),(0,a.jsxs)("p",{children:[(0,a.jsx)("span",{className:"fragment",children:"Einwegfunktion, "}),(0,a.jsx)("span",{className:"fragment",children:"Deterministisch, "}),(0,a.jsx)("span",{className:"fragment",children:"Kollisionsbehaftet"})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Zusammenfassung Hash"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"Reduktion auf einen Wert"}),(0,a.jsx)("li",{className:"fragment",children:"Kollisionen"})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"funktionsweise der put-Methode einer HashMap"}),(0,a.jsxs)("ol",{children:[(0,a.jsx)("li",{className:"fragment",children:"Hashwert des Schl\xfcssels berechnen \u2192 Index"}),(0,a.jsx)("li",{className:"fragment",children:"falls kein Wert an diesem Index \u2192 Einf\xfcgen"}),(0,a.jsx)("li",{className:"fragment",children:"falls Wert an diesem Index \u2192 Werte vergleichen"}),(0,a.jsx)("li",{className:"fragment",children:"falls Werte gleich \u2192 Wert ersetzen"}),(0,a.jsxs)("li",{className:"fragment",children:["falls Werte ungleich \u2192"," ",(0,a.jsx)("span",{"data-tooltip":"Array vergr\xf6\xdfern, Schl\xfcssel neu berechnen, umsortieren",tabIndex:0,children:"Speicher vergr\xf6\xdfern"})]})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsxs)("h2",{children:["Die Klasse"," ",(0,a.jsx)(t.Z,{to:"https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html",children:"Object"})]}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",tabIndex:0,children:"hashCode"}),(0,a.jsx)("li",{"data-tooltip":"Referenzvergleich",tabIndex:0,className:"fragment",children:"equals"}),(0,a.jsx)("li",{"data-tooltip":"Gibt die Speicheradresse aus",tabIndex:0,className:"fragment",children:"toString"})]}),(0,a.jsx)("p",{className:"fragment",children:"HashSet und HashMap verwenden die Methoden hashCode und equals"})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:(0,a.jsx)(t.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/hashcollection/hashmap/dogowners/hashcodeandequals",children:"Demo - HashCode und Equals"})}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"hashCode \xfcberschreiben und loggen"}),(0,a.jsx)("li",{className:"fragment",children:"equals \xfcberschreiben und loggen"}),(0,a.jsx)("li",{className:"fragment",children:"alle F\xe4lle erzeugen"}),(0,a.jsx)("li",{className:"fragment",children:"hashCode implementieren"}),(0,a.jsx)("li",{className:"fragment",children:"equals implementieren"})]})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("section",{children:(0,a.jsx)("h2",{children:"Records"})}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Records"}),(0,a.jsx)("p",{className:"fragment",children:"Ein Record ist eine Datenklasse, deren Attribute nicht ver\xe4ndert werden k\xf6nnen."}),(0,a.jsx)("p",{className:"fragment",children:"Eine Datenklasse hat somit finale Attribute und Getter."})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Beispiel Datenklasse Dog I"}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n final String name;\n final int age;\n\n public Dog(String name, int age) {\n this.name = name;\n this.age = age;\n }\n\n public String getName() {\n return name;\n }\n// ...\n"}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Beispiel Datenklasse Dog II"}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"// ...\n public int getAge() {\n return age;\n }\n// weitere Methoden siehe Doku\n}\n"}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Beispiel Record Dog"}),(0,a.jsx)("pre",{className:"fragment",children:(0,a.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public record Dog(String name, int age) {}\n"}})})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Record"}),(0,a.jsx)("p",{className:"fragment",children:"Da ein Record von der Record-Klasse erbt, kann nicht von einer anderen Klasse geerbt werden."}),(0,a.jsx)("p",{className:"fragment",children:"Ein Record kann jedoch weitere Methoden haben und beliebig viele Schnittstellen implementieren."})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Record - Gratis Methoden"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"Konstruktor"}),(0,a.jsx)("li",{className:"fragment",children:"Getter"}),(0,a.jsx)("li",{className:"fragment",children:"Equals"}),(0,a.jsx)("li",{className:"fragment",children:"hashCode"}),(0,a.jsx)("li",{className:"fragment",children:"toString"})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:(0,a.jsx)(t.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/hashcollection/hashmap/dogowners/records",children:"Demo - Record vs Class"})}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"Cat Klasse \u2192 Cat Record"}),(0,a.jsx)("li",{className:"fragment",children:"equals"}),(0,a.jsx)("li",{className:"fragment",children:"toString"}),(0,a.jsx)("li",{className:"fragment",children:"height - weiteres Attribut"}),(0,a.jsx)("li",{className:"fragment",children:"isOld - weitere Methode "}),(0,a.jsx)("li",{className:"fragment",children:"HashMap - Cat Inventory"})]})]})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Rest of the Day"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{className:"fragment",children:"Generics"}),(0,a.jsx)("li",{className:"fragment",children:"Maps"}),(0,a.jsx)("li",{className:"fragment",children:"Records"})]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1351.40ffbb8f.js b/pr-preview/pr-238/assets/js/1351.40ffbb8f.js new file mode 100644 index 0000000000..6946c3f56d --- /dev/null +++ b/pr-preview/pr-238/assets/js/1351.40ffbb8f.js @@ -0,0 +1,29 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1351"],{18010:function(e,t,a){function i(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}a.d(t,{A:function(){return i}}),(0,a(74146).eW)(i,"populateCommonDb")},79198:function(e,t,a){a.d(t,{diagram:function(){return k}});var i=a(18010),l=a(68394),r=a(89356),n=a(74146),s=a(3194),c=a(27818),o=n.vZ.pie,p={sections:new Map,showData:!1,config:o},d=p.sections,u=p.showData,g=structuredClone(o),f=(0,n.eW)(()=>structuredClone(g),"getConfig"),h=(0,n.eW)(()=>{d=new Map,u=p.showData,(0,n.ZH)()},"clear"),x=(0,n.eW)(({label:e,value:t})=>{!d.has(e)&&(d.set(e,t),n.cM.debug(`added new section: ${e}, with value: ${t}`))},"addSection"),m=(0,n.eW)(()=>d,"getSections"),w=(0,n.eW)(e=>{u=e},"setShowData"),S=(0,n.eW)(()=>u,"getShowData"),T={getConfig:f,clear:h,setDiagramTitle:n.g2,getDiagramTitle:n.Kr,setAccTitle:n.GN,getAccTitle:n.eu,setAccDescription:n.U$,getAccDescription:n.Mx,addSection:x,getSections:m,setShowData:w,getShowData:S},$=(0,n.eW)((e,t)=>{(0,i.A)(e,t),t.setShowData(e.showData),e.sections.map(t.addSection)},"populateDb"),y={parse:(0,n.eW)(async e=>{let t=await (0,s.Qc)("pie",e);n.cM.debug(t),$(t,T)},"parse")},D=(0,n.eW)(e=>` + .pieCircle{ + stroke: ${e.pieStrokeColor}; + stroke-width : ${e.pieStrokeWidth}; + opacity : ${e.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${e.pieOuterStrokeColor}; + stroke-width: ${e.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${e.pieTitleTextSize}; + fill: ${e.pieTitleTextColor}; + font-family: ${e.fontFamily}; + } + .slice { + font-family: ${e.fontFamily}; + fill: ${e.pieSectionTextColor}; + font-size:${e.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${e.pieLegendTextColor}; + font-family: ${e.fontFamily}; + font-size: ${e.pieLegendTextSize}; + } +`,"getStyles"),C=(0,n.eW)(e=>{let t=[...e.entries()].map(e=>({label:e[0],value:e[1]})).sort((e,t)=>t.value-e.value);return(0,c.ve8)().value(e=>e.value)(t)},"createPieArcs"),W=(0,n.eW)((e,t,a,i)=>{n.cM.debug("rendering pie chart\n"+e);let s=i.db,o=(0,n.nV)(),p=(0,l.Rb)(s.getConfig(),o.pie),d=(0,r.P)(t),u=d.append("g");u.attr("transform","translate(225,225)");let{themeVariables:g}=o,[f]=(0,l.VG)(g.pieOuterStrokeWidth);f??=2;let h=p.textPosition,x=185,m=(0,c.Nb1)().innerRadius(0).outerRadius(x),w=(0,c.Nb1)().innerRadius(x*h).outerRadius(x*h);u.append("circle").attr("cx",0).attr("cy",0).attr("r",x+f/2).attr("class","pieOuterCircle");let S=s.getSections(),T=C(S),$=[g.pie1,g.pie2,g.pie3,g.pie4,g.pie5,g.pie6,g.pie7,g.pie8,g.pie9,g.pie10,g.pie11,g.pie12],y=(0,c.PKp)($);u.selectAll("mySlices").data(T).enter().append("path").attr("d",m).attr("fill",e=>y(e.data.label)).attr("class","pieCircle");let D=0;S.forEach(e=>{D+=e}),u.selectAll("mySlices").data(T).enter().append("text").text(e=>(e.data.value/D*100).toFixed(0)+"%").attr("transform",e=>"translate("+w.centroid(e)+")").style("text-anchor","middle").attr("class","slice"),u.append("text").text(s.getDiagramTitle()).attr("x",0).attr("y",-200).attr("class","pieTitleText");let W=u.selectAll(".legend").data(y.domain()).enter().append("g").attr("class","legend").attr("transform",(e,t)=>{let a=22,i=22*y.domain().length/2;return"translate(216,"+(t*a-i)+")"});W.append("rect").attr("width",18).attr("height",18).style("fill",y).style("stroke",y),W.data(T).append("text").attr("x",22).attr("y",14).text(e=>{let{label:t,value:a}=e.data;return s.getShowData()?`${t} [${a}]`:t});let k=512+Math.max(...W.selectAll("text").nodes().map(e=>e?.getBoundingClientRect().width??0));d.attr("viewBox",`0 0 ${k} 450`),(0,n.v2)(d,450,k,p.useMaxWidth)},"draw"),k={parser:y,db:T,renderer:{draw:W},styles:D}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/15406f94.9e042d92.js b/pr-preview/pr-238/assets/js/15406f94.9e042d92.js new file mode 100644 index 0000000000..1707823505 --- /dev/null +++ b/pr-preview/pr-238/assets/js/15406f94.9e042d92.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["6436"],{6632:function(a){a.exports=JSON.parse('{"tag":{"label":"maven","permalink":"/java-docs/pr-preview/pr-238/tags/maven","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":1,"items":[{"id":"documentation/maven","title":"Maven","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/maven"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/15cec10f.8b7361c3.js b/pr-preview/pr-238/assets/js/15cec10f.8b7361c3.js new file mode 100644 index 0000000000..7993fb4bde --- /dev/null +++ b/pr-preview/pr-238/assets/js/15cec10f.8b7361c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["401"],{27791:function(e,r,t){t.r(r),t.d(r,{metadata:()=>n,contentTitle:()=>o,default:()=>p,assets:()=>u,toc:()=>c,frontMatter:()=>l});var n=JSON.parse('{"id":"exercises/generics/generics02","title":"Generics02","description":"","source":"@site/docs/exercises/generics/generics02.mdx","sourceDirName":"exercises/generics","slug":"/exercises/generics/generics02","permalink":"/java-docs/pr-preview/pr-238/exercises/generics/generics02","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/generics/generics02.mdx","tags":[],"version":"current","frontMatter":{"title":"Generics02","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Generics01","permalink":"/java-docs/pr-preview/pr-238/exercises/generics/generics01"},"next":{"title":"Generics03","permalink":"/java-docs/pr-preview/pr-238/exercises/generics/generics03"}}'),s=t("85893"),a=t("50065"),i=t("39661");let l={title:"Generics02",description:""},o=void 0,u={},c=[{value:"Klassendiagramm",id:"klassendiagramm",level:2}];function d(e){let r={a:"a",code:"code",h2:"h2",li:"li",mermaid:"mermaid",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:["Passe die Klasse ",(0,s.jsx)(r.code,{children:"Crate"})," aus \xdcbungsaufgabe ",(0,s.jsx)(r.a,{href:"generics01",children:"Generics01"})," anhand des\nabgebildeten Klassendiagramms an"]}),"\n",(0,s.jsxs)(r.li,{children:["Passe die ausf\xfchrbare Klasse aus \xdcbungsaufgabe ",(0,s.jsx)(r.a,{href:"generics01",children:"Generics01"})," so an,\ndass sie fehlerfrei ausgef\xfchrt werden kann"]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,s.jsx)(r.mermaid,{value:"classDiagram\n Bottle <|-- BeerBottle : extends\n Bottle <|-- WineBottle : extends\n\n class Crate~T extends Bottle~ {\n -box1: T\n -box2: T\n -box3: T\n -box4: T\n -box5: T\n -box6: T\n +insertBottle(bottle: T, box: int) void\n +takeBottle(box: int) T\n }\n\n class Bottle {\n <>\n }\n\n class BeerBottle {\n +chugALug() void\n }\n\n class WineBottle {\n\n }"}),"\n",(0,s.jsx)(i.Z,{pullRequest:"53",branchSuffix:"generics/02"})]})}function p(e={}){let{wrapper:r}={...(0,a.a)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},5525:function(e,r,t){t.d(r,{Z:()=>i});var n=t("85893");t("67294");var s=t("67026");let a="tabItem_Ymn6";function i(e){let{children:r,hidden:t,className:i}=e;return(0,n.jsx)("div",{role:"tabpanel",className:(0,s.Z)(a,i),hidden:t,children:r})}},47902:function(e,r,t){t.d(r,{Z:()=>j});var n=t("85893"),s=t("67294"),a=t("67026"),i=t("69599"),l=t("16550"),o=t("32000"),u=t("4520"),c=t("38341"),d=t("76009");function p(e){return s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||s.isValidElement(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:r,tabValues:t}=e;return t.some(e=>e.value===r)}var f=t("7227");let m="tabList__CuJ",g="tabItem_LNqP";function b(e){let{className:r,block:t,selectedValue:s,selectValue:l,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.o5)(),d=e=>{let r=e.currentTarget,t=o[u.indexOf(r)].value;t!==s&&(c(r),l(t))},p=e=>{let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=u.indexOf(e.currentTarget)+1;r=u[t]??u[0];break}case"ArrowLeft":{let t=u.indexOf(e.currentTarget)-1;r=u[t]??u[u.length-1]}}r?.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},r),children:o.map(e=>{let{value:r,label:t,attributes:i}=e;return(0,n.jsx)("li",{role:"tab",tabIndex:s===r?0:-1,"aria-selected":s===r,ref:e=>u.push(e),onKeyDown:p,onClick:d,...i,className:(0,a.Z)("tabs__item",g,i?.className,{"tabs__item--active":s===r}),children:t??r},r)})})}function x(e){let{lazy:r,children:t,selectedValue:i}=e,l=(Array.isArray(t)?t:[t]).filter(Boolean);if(r){let e=l.find(e=>e.props.value===i);return e?(0,s.cloneElement)(e,{className:(0,a.Z)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:l.map((e,r)=>(0,s.cloneElement)(e,{key:r,hidden:e.props.value!==i}))})}function v(e){let r=function(e){let{defaultValue:r,queryString:t=!1,groupId:n}=e,a=function(e){let{values:r,children:t}=e;return(0,s.useMemo)(()=>{let e=r??p(t).map(e=>{let{props:{value:r,label:t,attributes:n,default:s}}=e;return{value:r,label:t,attributes:n,default:s}});return!function(e){let r=(0,c.lx)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[r,t])}(e),[i,f]=(0,s.useState)(()=>(function(e){let{defaultValue:r,tabValues:t}=e;if(0===t.length)throw Error("Docusaurus error: the component requires at least one children component");if(r){if(!h({value:r,tabValues:t}))throw Error(`Docusaurus error: The has a defaultValue "${r}" but none of its children has the corresponding value. Available values are: ${t.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return r}let n=t.find(e=>e.default)??t[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:r,tabValues:a})),[m,g]=function(e){let{queryString:r=!1,groupId:t}=e,n=(0,l.k6)(),a=function(e){let{queryString:r=!1,groupId:t}=e;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!t)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:r,groupId:t}),i=(0,u._X)(a);return[i,(0,s.useCallback)(e=>{if(!a)return;let r=new URLSearchParams(n.location.search);r.set(a,e),n.replace({...n.location,search:r.toString()})},[a,n])]}({queryString:t,groupId:n}),[b,x]=function(e){var r;let{groupId:t}=e;let n=(r=t)?`docusaurus.tab.${r}`:null,[a,i]=(0,d.Nk)(n);return[a,(0,s.useCallback)(e=>{if(!!n)i.set(e)},[n,i])]}({groupId:n}),v=(()=>{let e=m??b;return h({value:e,tabValues:a})?e:null})();return(0,o.Z)(()=>{v&&f(v)},[v]),{selectedValue:i,selectValue:(0,s.useCallback)(e=>{if(!h({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);f(e),g(e),x(e)},[g,x,a]),tabValues:a}}(e);return(0,n.jsxs)("div",{className:(0,a.Z)("tabs-container",m),children:[(0,n.jsx)(b,{...r,...e}),(0,n.jsx)(x,{...r,...e})]})}function j(e){let r=(0,f.Z)();return(0,n.jsx)(v,{...e,children:p(e.children)},String(r))}},39661:function(e,r,t){t.d(r,{Z:function(){return o}});var n=t(85893);t(67294);var s=t(47902),a=t(5525),i=t(83012),l=t(45056);function o(e){let{pullRequest:r,branchSuffix:t}=e;return(0,n.jsxs)(s.Z,{children:[(0,n.jsxs)(a.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,n.jsx)(l.Z,{language:"console",children:`git switch exercises/${t}`}),(0,n.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${t}/Exercise.java`,children:(0,n.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,n.jsxs)(a.Z,{value:"solution",label:"Solution",children:[(0,n.jsx)(l.Z,{language:"console",children:`git switch solutions/${t}`}),(0,n.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${t}/Exercise.java`,children:(0,n.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,n.jsxs)(a.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,n.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${r}/files?diff=split`,children:["PR#",r]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/161.598aa382.js b/pr-preview/pr-238/assets/js/161.598aa382.js new file mode 100644 index 0000000000..a0afcc962f --- /dev/null +++ b/pr-preview/pr-238/assets/js/161.598aa382.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["161"],{55845:function(e,c,a){a.d(c,{createArchitectureServices:function(){return r.i}});var r=a(94413);a(95318)}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1780.5dc3c9df.js b/pr-preview/pr-238/assets/js/1780.5dc3c9df.js new file mode 100644 index 0000000000..7f01a204a6 --- /dev/null +++ b/pr-preview/pr-238/assets/js/1780.5dc3c9df.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1780"],{65521:function(e,t,n){n.d(t,{Z:function(){return i}});var r=n(16124);let i=function(e){return(0,r.Z)(e,4)}},77656:function(e,t,n){n.r(t),n.d(t,{render:()=>D});var r=n("29660"),i=n("37971");n("9833"),n("30594");var a=n("82612");n("41200"),n("68394");var d=n("74146"),c=n("49235"),o=n("61925"),s=n("65521"),l=n("97345");function g(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:function(e){return l.Z(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),i={v:t};return!o.Z(n)&&(i.value=n),!o.Z(r)&&(i.parent=r),i})}(e),edges:function(e){return l.Z(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return!o.Z(t.name)&&(r.name=t.name),!o.Z(n)&&(r.value=n),r})}(e)};return!o.Z(e.graph())&&(t.value=s.Z(e.graph())),t}n("61135");var f=n("50043"),h=new Map,u=new Map,p=new Map,w=(0,d.eW)(()=>{u.clear(),p.clear(),h.clear()},"clear"),M=(0,d.eW)((e,t)=>{let n=u.get(t)||[];return d.cM.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),v=(0,d.eW)((e,t)=>{let n=u.get(t)||[];return d.cM.info("Descendants of ",t," is ",n),d.cM.info("Edge is ",e),e.v!==t&&e.w!==t&&(n?n.includes(e.v)||M(e.v,t)||M(e.w,t)||n.includes(e.w):(d.cM.debug("Tilt, ",t,",not in descendants"),!1))},"edgeInCluster"),y=(0,d.eW)((e,t,n,r)=>{d.cM.warn("Copying children of ",e,"root",r,"data",t.node(e),r);let i=t.children(e)||[];e!==r&&i.push(e),d.cM.warn("Copying (nodes) clusterId",e,"nodes",i),i.forEach(i=>{if(t.children(i).length>0)y(i,t,n,r);else{let a=t.node(i);d.cM.info("cp ",i," to ",r," with parent ",e),n.setNode(i,a),r!==t.parent(i)&&(d.cM.warn("Setting parent",i,t.parent(i)),n.setParent(i,t.parent(i))),e!==r&&i!==e?(d.cM.debug("Setting parent",i,e),n.setParent(i,e)):(d.cM.info("In copy ",e,"root",r,"data",t.node(e),r),d.cM.debug("Not Setting parent for node=",i,"cluster!==rootId",e!==r,"node!==clusterId",i!==e));let c=t.edges(i);d.cM.debug("Copying Edges",c),c.forEach(i=>{d.cM.info("Edge",i);let a=t.edge(i.v,i.w,i.name);d.cM.info("Edge data",a,r);try{v(i,r)?(d.cM.info("Copying as ",i.v,i.w,a,i.name),n.setEdge(i.v,i.w,a,i.name),d.cM.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):d.cM.info("Skipping copy of edge ",i.v,"--\x3e",i.w," rootId: ",r," clusterId:",e)}catch(e){d.cM.error(e)}})}d.cM.debug("Removing node",i),t.removeNode(i)})},"copy"),X=(0,d.eW)((e,t)=>{let n=t.children(e),r=[...n];for(let i of n)p.set(i,e),r=[...r,...X(i,t)];return r},"extractDescendants"),m=(0,d.eW)((e,t,n)=>{let r=e.edges().filter(e=>e.v===t||e.w===t),i=e.edges().filter(e=>e.v===n||e.w===n),a=r.map(e=>({v:e.v===t?n:e.v,w:e.w===t?t:e.w})),d=i.map(e=>({v:e.v,w:e.w}));return a.filter(e=>d.some(t=>e.v===t.v&&e.w===t.w))},"findCommonEdges"),b=(0,d.eW)((e,t,n)=>{let r;let i=t.children(e);if(d.cM.trace("Searching children of id ",e,i),i.length<1)return e;for(let e of i){let i=b(e,t,n),a=m(t,n,i);if(i){if(!(a.length>0))return i;r=i}}return r},"findNonClusterChild"),E=(0,d.eW)(e=>h.has(e)&&h.get(e).externalConnections?h.has(e)?h.get(e).id:e:e,"getAnchorId"),N=(0,d.eW)((e,t)=>{if(!e||t>10){d.cM.debug("Opting out, no graph ");return}d.cM.debug("Opting in, graph ");for(let t of(e.nodes().forEach(function(t){e.children(t).length>0&&(d.cM.warn("Cluster identified",t," Replacement id in edges: ",b(t,e,t)),u.set(t,X(t,e)),h.set(t,{id:b(t,e,t),clusterData:e.node(t)}))}),e.nodes().forEach(function(t){let n=e.children(t),r=e.edges();n.length>0?(d.cM.debug("Cluster identified",t,u),r.forEach(e=>{let n=M(e.v,t);n^M(e.w,t)&&(d.cM.warn("Edge: ",e," leaves cluster ",t),d.cM.warn("Descendants of XXX ",t,": ",u.get(t)),h.get(t).externalConnections=!0)})):d.cM.debug("Not a cluster ",t,u)}),h.keys())){let n=h.get(t).id,r=e.parent(n);r!==t&&h.has(r)&&!h.get(r).externalConnections&&(h.get(t).id=r)}e.edges().forEach(function(t){let n=e.edge(t);d.cM.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),d.cM.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e.edge(t)));let r=t.v,i=t.w;if(d.cM.warn("Fix XXX",h,"ids:",t.v,t.w,"Translating: ",h.get(t.v)," --- ",h.get(t.w)),h.get(t.v)||h.get(t.w)){if(d.cM.warn("Fixing and trying - removing XXX",t.v,t.w,t.name),r=E(t.v),i=E(t.w),e.removeEdge(t.v,t.w,t.name),r!==t.v){let i=e.parent(r);h.get(i).externalConnections=!0,n.fromCluster=t.v}if(i!==t.w){let r=e.parent(i);h.get(r).externalConnections=!0,n.toCluster=t.w}d.cM.warn("Fix Replacing with XXX",r,i,t.name),e.setEdge(r,i,n,t.name)}}),d.cM.warn("Adjusted Graph",g(e)),C(e,0),d.cM.trace(h)},"adjustClustersAndEdges"),C=(0,d.eW)((e,t)=>{if(d.cM.warn("extractor - ",t,g(e),e.children("D")),t>10){d.cM.error("Bailing out");return}let n=e.nodes(),r=!1;for(let t of n){let n=e.children(t);r=r||n.length>0}if(!r){d.cM.debug("Done, no node has children",e.nodes());return}for(let r of(d.cM.debug("Nodes = ",n,t),n))if(d.cM.debug("Extracting node",r,h,h.has(r)&&!h.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),h.has(r)){if(!h.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){d.cM.warn("Cluster without external connections, without a parent and with children",r,t);let n="TB"===e.graph().rankdir?"LR":"TB";h.get(r)?.clusterData?.dir&&(n=h.get(r).clusterData.dir,d.cM.warn("Fixing dir",h.get(r).clusterData.dir,n));let i=new f.k({multigraph:!0,compound:!0}).setGraph({rankdir:n,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});d.cM.warn("Old graph before copy",g(e)),y(r,e,i,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:h.get(r).clusterData,label:h.get(r).label,graph:i}),d.cM.warn("New graph after copy node: (",r,")",g(i)),d.cM.debug("Old graph after copy",g(e))}else d.cM.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!h.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),d.cM.debug(h)}else d.cM.debug("Not a cluster",r,t);for(let r of(n=e.nodes(),d.cM.warn("New list of nodes",n),n)){let n=e.node(r);d.cM.warn(" Now next level",r,n),n?.clusterNode&&C(n.graph,t+1)}},"extractor"),x=(0,d.eW)((e,t)=>{if(0===t.length)return[];let n=Object.assign([],t);return t.forEach(t=>{let r=e.children(t),i=x(e,r);n=[...n,...i]}),n},"sorter"),S=(0,d.eW)(e=>x(e,e.children()),"sortNodesByHierarchy"),I=(0,d.eW)(async(e,t,n,o,s,l)=>{d.cM.warn("Graph in recursive render:XAX",g(t),s);let f=t.graph().rankdir;d.cM.trace("Dir in recursive render - dir:",f);let u=e.insert("g").attr("class","root");t.nodes()?d.cM.info("Recursive render XXX",t.nodes()):d.cM.info("No nodes found for",t),t.edges().length>0&&d.cM.info("Recursive edges",t.edge(t.edges()[0]));let p=u.insert("g").attr("class","clusters"),w=u.insert("g").attr("class","edgePaths"),M=u.insert("g").attr("class","edgeLabels"),v=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(e){let r=t.node(e);if(void 0!==s){let n=JSON.parse(JSON.stringify(s.clusterData));d.cM.trace("Setting data for parent cluster XXX\n Node.id = ",e,"\n data=",n.height,"\nParent cluster",s.height),t.setNode(s.id,n),!t.parent(e)&&(d.cM.trace("Setting parent",e,s.id),t.setParent(e,s.id,n))}if(d.cM.info("(Insert) Node XXX"+e+": "+JSON.stringify(t.node(e))),r?.clusterNode){d.cM.info("Cluster identified XBX",e,r.width,t.node(e));let{ranksep:a,nodesep:c}=t.graph();r.graph.setGraph({...r.graph.graph(),ranksep:a+25,nodesep:c});let s=await I(v,r.graph,n,o,t.node(e),l),g=s.elem;(0,i.jr)(r,g),r.diff=s.diff||0,d.cM.info("New compound node after recursive render XAX",e,"width",r.width,"height",r.height),(0,i.Yn)(g,r)}else t.children(e).length>0?(d.cM.trace("Cluster - the non recursive path XBX",e,r.id,r,r.width,"Graph:",t),d.cM.trace(b(r.id,t)),h.set(r.id,{id:b(r.id,t),node:r})):(d.cM.trace("Node - the non recursive path XAX",e,v,t.node(e),f),await (0,i.Lf)(v,t.node(e),{config:l,dir:f}))}));let y=(0,d.eW)(async()=>{let e=t.edges().map(async function(e){let n=t.edge(e.v,e.w,e.name);d.cM.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),d.cM.info("Edge "+e.v+" -> "+e.w+": ",e," ",JSON.stringify(t.edge(e))),d.cM.info("Fix",h,"ids:",e.v,e.w,"Translating: ",h.get(e.v),h.get(e.w)),await (0,r.I_)(M,n)});await Promise.all(e)},"processEdges");await y(),d.cM.info("Graph before layout:",JSON.stringify(g(t))),d.cM.info("############################################# XXX"),d.cM.info("### Layout ### XXX"),d.cM.info("############################################# XXX"),(0,c.bK)(t),d.cM.info("Graph after layout:",JSON.stringify(g(t)));let X=0,{subGraphTitleTotalMargin:m}=(0,a.L)(l);return await Promise.all(S(t).map(async function(e){let n=t.node(e);if(d.cM.info("Position XBX => "+e+": ("+n.x,","+n.y,") width: ",n.width," height: ",n.height),n?.clusterNode)n.y+=m,d.cM.info("A tainted cluster node XBX1",e,n.id,n.width,n.height,n.x,n.y,t.parent(e)),h.get(n.id).node=n,(0,i.aH)(n);else if(t.children(e).length>0){d.cM.info("A pure cluster node XBX1",e,n.id,n.x,n.y,n.width,n.height,t.parent(e)),n.height+=m,t.node(n.parentId);let r=n?.padding/2||0,a=n?.labelBBox?.height||0;d.cM.debug("OffsetY",a-r||0,"labelHeight",a,"halfPadding",r),await (0,i.us)(p,n),h.get(n.id).node=n}else{let e=t.node(n.parentId);n.y+=m/2,d.cM.info("A regular node XBX1 - using the padding",n.id,"parent",n.parentId,n.width,n.height,n.x,n.y,"offsetY",n.offsetY,"parent",e,e?.offsetY,n),(0,i.aH)(n)}})),t.edges().forEach(function(e){let i=t.edge(e);d.cM.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(i),i),i.points.forEach(e=>e.y+=m/2);let a=t.node(e.v);var c=t.node(e.w);let s=(0,r.QP)(w,i,h,n,a,c,o);(0,r.Jj)(i,s)}),t.nodes().forEach(function(e){let n=t.node(e);d.cM.info(e,n.type,n.diff),n.isGroup&&(X=n.diff)}),d.cM.warn("Returning from recursive render XAX",u,X),{elem:u,diff:X}},"recursiveRender"),D=(0,d.eW)(async(e,t)=>{let n=new f.k({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.config?.flowchart?.nodeSpacing||e.nodeSpacing,ranksep:e.config?.rankSpacing||e.config?.flowchart?.rankSpacing||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),a=t.select("g");(0,r.DQ)(a,e.markers,e.type,e.diagramId),(0,i.gU)(),(0,r.ZH)(),(0,i.ZH)(),w(),e.nodes.forEach(e=>{n.setNode(e.id,{...e}),e.parentId&&n.setParent(e.id,e.parentId)}),d.cM.debug("Edges:",e.edges),e.edges.forEach(e=>{if(e.start===e.end){let t=e.start,r=t+"---"+t+"---1",i=t+"---"+t+"---2",a=n.node(t);n.setNode(r,{domId:r,id:r,parentId:a.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),n.setParent(r,a.parentId),n.setNode(i,{domId:i,id:i,parentId:a.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),n.setParent(i,a.parentId);let d=structuredClone(e),c=structuredClone(e),o=structuredClone(e);d.label="",d.arrowTypeEnd="none",d.id=t+"-cyclic-special-1",c.arrowTypeEnd="none",c.id=t+"-cyclic-special-mid",o.label="",a.isGroup&&(d.fromCluster=t,o.toCluster=t),o.id=t+"-cyclic-special-2",n.setEdge(t,r,d,t+"-cyclic-special-0"),n.setEdge(r,i,c,t+"-cyclic-special-1"),n.setEdge(i,t,o,t+"-cyceo});var s=n("85893"),a=n("67294"),l=n("14713"),i=n("85346");let o=a.createContext(null);function r(e){var t;let{children:n,content:l}=e;let i=(t=l,(0,a.useMemo)(()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,contentTitle:t.contentTitle,toc:t.toc}),[t]));return(0,s.jsx)(o.Provider,{value:i,children:n})}function c(){let e=(0,a.useContext)(o);if(null===e)throw new i.i6("DocProvider");return e}function d(){let{metadata:e,frontMatter:t,assets:n}=c();return(0,s.jsx)(l.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n("67026"),m=n("54704"),h=n("96025"),b=n("83012");function x(e){let{permalink:t,title:n,subLabel:a,isNext:l}=e;return(0,s.jsxs)(b.Z,{className:(0,u.Z)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[a&&(0,s.jsx)("div",{className:"pagination-nav__sublabel",children:a}),(0,s.jsx)("div",{className:"pagination-nav__label",children:n})]})}function v(e){let{previous:t,next:n}=e;return(0,s.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,h.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,s.jsx)(x,{...t,subLabel:(0,s.jsx)(h.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,s.jsx)(x,{...n,subLabel:(0,s.jsx)(h.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function p(){let{metadata:e}=c();return(0,s.jsx)(v,{previous:e.previous,next:e.next})}var j=n("2933"),g=n("98057"),f=n("84681"),_=n("93896"),C=n("68529");let N={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,s.jsx)(h.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,s.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,s.jsx)(h.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,s.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function Z(e){let t=N[e.versionMetadata.banner];return(0,s.jsx)(t,{...e})}function k(e){let{versionLabel:t,to:n,onClick:a}=e;return(0,s.jsx)(h.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,s.jsx)("b",{children:(0,s.jsx)(b.Z,{to:n,onClick:a,children:(0,s.jsx)(h.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function L(e){let t,{className:n,versionMetadata:a}=e,{siteConfig:{title:l}}=(0,j.Z)(),{pluginId:i}=(0,g.gA)({failfast:!0}),{savePreferredVersionName:o}=(0,_.J)(i),{latestDocSuggestion:r,latestVersionSuggestion:c}=(0,g.Jo)(i);let d=r??(t=c).docs.find(e=>e.id===t.mainDocId);return(0,s.jsxs)("div",{className:(0,u.Z)(n,f.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,s.jsx)("div",{children:(0,s.jsx)(Z,{siteTitle:l,versionMetadata:a})}),(0,s.jsx)("div",{className:"margin-top--md",children:(0,s.jsx)(k,{versionLabel:c.label,to:d.path,onClick:()=>o(c.name)})})]})}function T(e){let{className:t}=e,n=(0,C.E)();return n.banner?(0,s.jsx)(L,{className:t,versionMetadata:n}):null}function w(e){let{className:t}=e,n=(0,C.E)();return n.badge?(0,s.jsx)("span",{className:(0,u.Z)(t,f.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,s.jsx)(h.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}var I=n("48627");let B="tags_jXut",E="tag_QGVx";function M(e){let{tags:t}=e;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("b",{children:(0,s.jsx)(h.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,s.jsx)("ul",{className:(0,u.Z)(B,"padding--none","margin-left--sm"),children:t.map(e=>(0,s.jsx)("li",{className:E,children:(0,s.jsx)(I.Z,{...e})},e.permalink))})]})}var V=n("86594");function y(){let{metadata:e}=c(),{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:a,tags:l}=e,i=l.length>0,o=!!(t||n||a);return i||o?(0,s.jsxs)("footer",{className:(0,u.Z)(f.k.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,s.jsx)("div",{className:(0,u.Z)("row margin-top--sm",f.k.docs.docFooterTagsRow),children:(0,s.jsx)("div",{className:"col",children:(0,s.jsx)(M,{tags:l})})}),o&&(0,s.jsx)(V.Z,{className:(0,u.Z)("margin-top--sm",f.k.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:n,lastUpdatedBy:a})]}):null}var A=n("57455"),H=n("76365");let P={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function F(e){let{collapsed:t,...n}=e;return(0,s.jsx)("button",{type:"button",...n,className:(0,u.Z)("clean-btn",P.tocCollapsibleButton,!t&&P.tocCollapsibleButtonExpanded,n.className),children:(0,s.jsx)(h.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}let R={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function D(e){let{toc:t,className:n,minHeadingLevel:a,maxHeadingLevel:l}=e,{collapsed:i,toggleCollapsed:o}=(0,A.u)({initialState:!0});return(0,s.jsxs)("div",{className:(0,u.Z)(R.tocCollapsible,!i&&R.tocCollapsibleExpanded,n),children:[(0,s.jsx)(F,{collapsed:i,onClick:o}),(0,s.jsx)(A.z,{lazy:!0,className:R.tocCollapsibleContent,collapsed:i,children:(0,s.jsx)(H.Z,{toc:t,minHeadingLevel:a,maxHeadingLevel:l})})]})}let O="tocMobile_ITEo";function S(){let{toc:e,frontMatter:t}=c();return(0,s.jsx)(D,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.Z)(f.k.docs.docTocMobile,O)})}var z=n("1397");function U(){let{toc:e,frontMatter:t}=c();return(0,s.jsx)(z.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:f.k.docs.docTocDesktop})}var G=n("34403"),W=n("14722");function J(e){let{children:t}=e,n=function(){let{metadata:e,frontMatter:t,contentTitle:n}=c();return!t.hide_title&&void 0===n?e.title:null}();return(0,s.jsxs)("div",{className:(0,u.Z)(f.k.docs.docMarkdown,"markdown"),children:[n&&(0,s.jsx)("header",{children:(0,s.jsx)(G.Z,{as:"h1",children:n})}),(0,s.jsx)(W.Z,{children:t})]})}var Q=n("69369"),X=n("79246"),Y=n("4757");function $(e){return(0,s.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,s.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}let q="breadcrumbHomeIcon_YNFT";function K(){let e=(0,Y.ZP)("/");return(0,s.jsx)("li",{className:"breadcrumbs__item",children:(0,s.jsx)(b.Z,{"aria-label":(0,h.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,s.jsx)($,{className:q})})})}let ee="breadcrumbsContainer_Z_bl";function et(e){let{children:t,href:n,isLast:a}=e,l="breadcrumbs__link";return a?(0,s.jsx)("span",{className:l,itemProp:"name",children:t}):n?(0,s.jsx)(b.Z,{className:l,href:n,itemProp:"item",children:(0,s.jsx)("span",{itemProp:"name",children:t})}):(0,s.jsx)("span",{className:l,children:t})}function en(e){let{children:t,active:n,index:a,addMicrodata:l}=e;return(0,s.jsxs)("li",{...l&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,s.jsx)("meta",{itemProp:"position",content:String(a+1)})]})}function es(){let e=(0,Q.s1)(),t=(0,X.Ns)();return e?(0,s.jsx)("nav",{className:(0,u.Z)(f.k.docs.docBreadcrumbs,ee),"aria-label":(0,h.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,s.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,s.jsx)(K,{}),e.map((t,n)=>{let a=n===e.length-1,l="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,s.jsx)(en,{active:a,index:n,addMicrodata:!!l,children:(0,s.jsx)(et,{href:l,isLast:a,children:t.label})},n)})]})}):null}var ea=n("38813");let el={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function ei(e){let{children:t}=e,n=function(){let{frontMatter:e,toc:t}=c(),n=(0,m.i)(),a=e.hide_table_of_contents,l=!a&&t.length>0,i=l?(0,s.jsx)(S,{}):void 0;return{hidden:a,mobile:i,desktop:l&&("desktop"===n||"ssr"===n)?(0,s.jsx)(U,{}):void 0}}(),{metadata:a}=c();return(0,s.jsxs)("div",{className:"row",children:[(0,s.jsxs)("div",{className:(0,u.Z)("col",!n.hidden&&el.docItemCol),children:[(0,s.jsx)(ea.Z,{metadata:a}),(0,s.jsx)(T,{}),(0,s.jsxs)("div",{className:el.docItemContainer,children:[(0,s.jsxs)("article",{children:[(0,s.jsx)(es,{}),(0,s.jsx)(w,{}),n.mobile,(0,s.jsx)(J,{children:t}),(0,s.jsx)(y,{})]}),(0,s.jsx)(p,{})]})]}),n.desktop&&(0,s.jsx)("div",{className:"col col--3",children:n.desktop})]})}function eo(e){let t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,s.jsx)(r,{content:e.content,children:(0,s.jsxs)(l.FG,{className:t,children:[(0,s.jsx)(d,{}),(0,s.jsx)(ei,{children:(0,s.jsx)(n,{})})]})})}},48627:function(e,t,n){n.d(t,{Z:()=>o});var s=n("85893");n("67294");var a=n("67026"),l=n("83012");let i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function o(e){let{permalink:t,label:n,count:o,description:r}=e;return(0,s.jsxs)(l.Z,{href:t,title:r,className:(0,a.Z)(i.tag,o?i.tagWithCount:i.tagRegular),children:[n,o&&(0,s.jsx)("span",{children:o})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1824.0f9d2e7e.js b/pr-preview/pr-238/assets/js/1824.0f9d2e7e.js new file mode 100644 index 0000000000..9bd668bb27 --- /dev/null +++ b/pr-preview/pr-238/assets/js/1824.0f9d2e7e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1824"],{31764:function(e,c,a){a.d(c,{createPieServices:function(){return s.l}});var s=a(75243);a(95318)}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1953.aa38a405.js b/pr-preview/pr-238/assets/js/1953.aa38a405.js new file mode 100644 index 0000000000..e4ca70eea8 --- /dev/null +++ b/pr-preview/pr-238/assets/js/1953.aa38a405.js @@ -0,0 +1,85 @@ +(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1953"],{22851:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BLANK_URL=e.relativeFirstCharacters=e.whitespaceEscapeCharsRegex=e.urlSchemeRegex=e.ctrlCharactersRegex=e.htmlCtrlEntityRegex=e.htmlEntitiesRegex=e.invalidProtocolRegex=void 0,e.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,e.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,e.htmlCtrlEntityRegex=/&(newline|tab);/gi,e.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,e.urlSchemeRegex=/^.+(:|:)/gim,e.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g,e.relativeFirstCharacters=[".","/"],e.BLANK_URL="about:blank"},17967:function(t,e,r){"use strict";e.sanitizeUrl=void 0;var i=r(22851);function n(t){try{return decodeURIComponent(t)}catch(e){return t}}e.sanitizeUrl=function(t){if(!t)return i.BLANK_URL;var e,r=n(t.trim());do e=(r=n(r=r.replace(i.ctrlCharactersRegex,"").replace(i.htmlEntitiesRegex,function(t,e){return String.fromCharCode(e)}).replace(i.htmlCtrlEntityRegex,"").replace(i.ctrlCharactersRegex,"").replace(i.whitespaceEscapeCharsRegex,"").trim())).match(i.ctrlCharactersRegex)||r.match(i.htmlEntitiesRegex)||r.match(i.htmlCtrlEntityRegex)||r.match(i.whitespaceEscapeCharsRegex);while(e&&e.length>0);var a=r;if(!a)return i.BLANK_URL;if(c=a,i.relativeFirstCharacters.indexOf(c[0])>-1)return a;var o=a.trimStart(),s=o.match(i.urlSchemeRegex);if(!s)return a;var l=s[0].toLowerCase().trim();if(i.invalidProtocolRegex.test(l))return i.BLANK_URL;var h=o.replace(/\\/g,"/");if("mailto:"===l||l.includes("://"))return h;if("http:"===l||"https:"===l){if(u=h,!URL.canParse(u))return i.BLANK_URL;var c,u,d=new URL(h);return d.protocol=d.protocol.toLowerCase(),d.hostname=d.hostname.toLowerCase(),d.toString()}return h}},27484:function(t){var e,r;e=0,r=function(){"use strict";var t="millisecond",e="second",r="minute",i="hour",n="week",a="month",o="quarter",s="year",l="date",h="Invalid Date",c=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,u=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,d=function(t,e,r){var i=String(t);return!i||i.length>=e?t:""+Array(e+1-i.length).join(r)+t},f="en",p={};p[f]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],r=t%100;return"["+t+(e[(r-20)%10]||e[r]||"th")+"]"}};var g="$isDayjsObject",y=function(t){return t instanceof k||!(!t||!t[g])},m=function t(e,r,i){var n;if(!e)return f;if("string"==typeof e){var a=e.toLowerCase();p[a]&&(n=a),r&&(p[a]=r,n=a);var o=e.split("-");if(!n&&o.length>1)return t(o[0])}else{var s=e.name;p[s]=e,n=s}return!i&&n&&(f=n),n||!i&&f},x=function(t,e){if(y(t))return t.clone();var r="object"==typeof e?e:{};return r.date=t,r.args=arguments,new k(r)},b={s:d,z:function(t){var e=-t.utcOffset(),r=Math.abs(e);return(e<=0?"+":"-")+d(Math.floor(r/60),2,"0")+":"+d(r%60,2,"0")},m:function t(e,r){if(e.date()=1&&((null===(r=e.randomizer)||void 0===r?void 0:r.next())||Math.random())>.7&&(o=a),function(t,e,r,n=1){let a=Math.max(e,.1),o=t[0]&&t[0][0]&&"number"==typeof t[0][0]?[t]:t,s=[0,0];if(r)for(let t of o)i(t,s,r);let l=function(t,e,r){let i=[];for(let e of t){var n,a;let t=[...e];n=t[0],a=t[t.length-1],n[0]===a[0]&&n[1]===a[1]||t.push([t[0][0],t[0][1]]),t.length>2&&i.push(t)}let o=[];e=Math.max(e,.1);let s=[];for(let t of i)for(let e=0;et.ymine.ymin?1:t.xe.x?1:t.ymax===e.ymax?0:(t.ymax-e.ymax)/Math.abs(t.ymax-e.ymax)),!s.length)return o;let l=[],h=s[0].ymin,c=0;for(;l.length||s.length;){if(s.length){let t=-1;for(let e=0;eh);e++)t=e;s.splice(0,t+1).forEach(t=>{l.push({s:h,edge:t})})}if((l=l.filter(t=>!(t.edge.ymax<=h))).sort((t,e)=>t.edge.x===e.edge.x?0:(t.edge.x-e.edge.x)/Math.abs(t.edge.x-e.edge.x)),(1!==r||c%e==0)&&l.length>1)for(let t=0;t=l.length)break;let r=l[t].edge,i=l[e].edge;o.push([[Math.round(r.x),h],[Math.round(i.x),h]])}h+=r,l.forEach(t=>{t.edge.x=t.edge.x+r*t.edge.islope}),c++}return o}(o,a,n);if(r){for(let t of o)i(t,s,-r);!function(t,e,r){let n=[];t.forEach(t=>n.push(...t)),i(n,e,r)}(l,s,-r)}return l}(t,a,n,o||1)}class a{constructor(t){this.helper=t}fillPolygons(t,e){return this._fillPolygons(t,e)}_fillPolygons(t,e){let r=n(t,e);return{type:"fillSketch",ops:this.renderLines(r,e)}}renderLines(t,e){let r=[];for(let i of t)r.push(...this.helper.doubleLineOps(i[0][0],i[0][1],i[1][0],i[1][1],e));return r}}function o(t){let e=t[0],r=t[1];return Math.sqrt(Math.pow(e[0]-r[0],2)+Math.pow(e[1]-r[1],2))}class s extends a{fillPolygons(t,e){let r=e.hachureGap;r<0&&(r=4*e.strokeWidth);let i=n(t,Object.assign({},e,{hachureGap:r=Math.max(r,.1)})),a=Math.PI/180*e.hachureAngle,s=[],l=.5*r*Math.cos(a),h=.5*r*Math.sin(a);for(let[t,e]of i)o([t,e])&&s.push([[t[0]-l,t[1]+h],[...e]],[[t[0]+l,t[1]-h],[...e]]);return{type:"fillSketch",ops:this.renderLines(s,e)}}}class l extends a{fillPolygons(t,e){let r=this._fillPolygons(t,e),i=Object.assign({},e,{hachureAngle:e.hachureAngle+90}),n=this._fillPolygons(t,i);return r.ops=r.ops.concat(n.ops),r}}class h{constructor(t){this.helper=t}fillPolygons(t,e){let r=n(t,e=Object.assign({},e,{hachureAngle:0}));return this.dotsOnLines(r,e)}dotsOnLines(t,e){let r=[],i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.max(i,.1);let n=e.fillWeight;n<0&&(n=e.strokeWidth/2);let a=i/4;for(let s of t){let t=o(s),l=Math.ceil(t/i)-1,h=t-l*i,c=(s[0][0]+s[1][0])/2-i/4,u=Math.min(s[0][1],s[1][1]);for(let t=0;t{let a=o(t),s=Math.floor(a/(r+i)),l=(a+i-s*(r+i))/2,h=t[0],c=t[1];h[0]>c[0]&&(h=t[1],c=t[0]);let u=Math.atan((c[1]-h[1])/(c[0]-h[0]));for(let t=0;t{let n=Math.round(o(t)/(2*e)),a=t[0],s=t[1];a[0]>s[0]&&(a=t[1],s=t[0]);let l=Math.atan((s[1]-a[1])/(s[0]-a[0]));for(let t=0;ti%2?t+r:t+e);a.push({key:"C",data:t}),e=t[4],r=t[5];break}case"Q":a.push({key:"Q",data:[...s]}),e=s[2],r=s[3];break;case"q":{let t=s.map((t,i)=>i%2?t+r:t+e);a.push({key:"Q",data:t}),e=t[2],r=t[3];break}case"A":a.push({key:"A",data:[...s]}),e=s[5],r=s[6];break;case"a":e+=s[5],r+=s[6],a.push({key:"A",data:[s[0],s[1],s[2],s[3],s[4],e,r]});break;case"H":a.push({key:"H",data:[...s]}),e=s[0];break;case"h":e+=s[0],a.push({key:"H",data:[e]});break;case"V":a.push({key:"V",data:[...s]}),r=s[0];break;case"v":r+=s[0],a.push({key:"V",data:[r]});break;case"S":a.push({key:"S",data:[...s]}),e=s[2],r=s[3];break;case"s":{let t=s.map((t,i)=>i%2?t+r:t+e);a.push({key:"S",data:t}),e=t[2],r=t[3];break}case"T":a.push({key:"T",data:[...s]}),e=s[0],r=s[1];break;case"t":e+=s[0],r+=s[1],a.push({key:"T",data:[e,r]});break;case"Z":case"z":a.push({key:"Z",data:[]}),e=i,r=n}return a}function x(t){let e=[],r="",i=0,n=0,a=0,o=0,s=0,l=0;for(let{key:h,data:c}of t){switch(h){case"M":e.push({key:"M",data:[...c]}),[i,n]=c,[a,o]=c;break;case"C":e.push({key:"C",data:[...c]}),i=c[4],n=c[5],s=c[2],l=c[3];break;case"L":e.push({key:"L",data:[...c]}),[i,n]=c;break;case"H":i=c[0],e.push({key:"L",data:[i,n]});break;case"V":n=c[0],e.push({key:"L",data:[i,n]});break;case"S":{let t=0,a=0;"C"===r||"S"===r?(t=i+(i-s),a=n+(n-l)):(t=i,a=n),e.push({key:"C",data:[t,a,...c]}),s=c[0],l=c[1],i=c[2],n=c[3];break}case"T":{let[t,a]=c,o=0,h=0;"Q"===r||"T"===r?(o=i+(i-s),h=n+(n-l)):(o=i,h=n);let u=i+2*(o-i)/3,d=n+2*(h-n)/3,f=t+2*(o-t)/3,p=a+2*(h-a)/3;e.push({key:"C",data:[u,d,f,p,t,a]}),s=o,l=h,i=t,n=a;break}case"Q":{let[t,r,a,o]=c,h=i+2*(t-i)/3,u=n+2*(r-n)/3,d=a+2*(t-a)/3,f=o+2*(r-o)/3;e.push({key:"C",data:[h,u,d,f,a,o]}),s=t,l=r,i=a,n=o;break}case"A":{let t=Math.abs(c[0]),r=Math.abs(c[1]),a=c[2],o=c[3],s=c[4],l=c[5],h=c[6];0===t||0===r?(e.push({key:"C",data:[i,n,l,h,l,h]}),i=l,n=h):(i!==l||n!==h)&&((function t(e,r,i,n,a,o,s,l,h,c){let u=Math.PI*s/180,d=[],f=0,p=0,g=0,y=0;if(c)[f,p,g,y]=c;else{[e,r]=b(e,r,-u),[i,n]=b(i,n,-u);let t=(e-i)/2,s=(r-n)/2,c=t*t/(a*a)+s*s/(o*o);c>1&&(a*=c=Math.sqrt(c),o*=c);let d=a*a,m=o*o,x=(l===h?-1:1)*Math.sqrt(Math.abs((d*m-d*s*s-m*t*t)/(d*s*s+m*t*t)));g=x*a*s/o+(e+i)/2,y=-(x*o)*t/a+(r+n)/2,f=Math.asin(parseFloat(((r-y)/o).toFixed(9))),p=Math.asin(parseFloat(((n-y)/o).toFixed(9))),ep&&(f-=2*Math.PI),!h&&p>f&&(p-=2*Math.PI)}let m=p-f;if(Math.abs(m)>120*Math.PI/180){let e=p,r=i,l=n;d=t(i=g+a*Math.cos(p=h&&p>f?f+120*Math.PI/180*1:f+-(120*Math.PI/180*1)),n=y+o*Math.sin(p),r,l,a,o,s,0,h,[p,e,g,y])}m=p-f;let x=Math.cos(f),k=Math.cos(p),C=Math.tan(m/4),w=4/3*a*C,_=4/3*o*C,v=[e,r],T=[e+w*Math.sin(f),r-_*x],S=[i+w*Math.sin(p),n-_*k],M=[i,n];if(T[0]=2*v[0]-T[0],T[1]=2*v[1]-T[1],c)return[T,S,M].concat(d);{d=[T,S,M].concat(d);let t=[];for(let e=0;e2){let n=[];for(let e=0;e2*Math.PI&&(u=0,d=2*Math.PI);let f=Math.min(2*Math.PI/l.curveStepCount/2,(d-u)/2),p=I(f,t,e,h,c,u,d,1,l);if(!l.disableMultiStroke){let r=I(f,t,e,h,c,u,d,1.5,l);p.push(...r)}return o&&(s?p.push(...E(t,e,t+h*Math.cos(u),e+c*Math.sin(u),l),...E(t,e,t+h*Math.cos(d),e+c*Math.sin(d),l)):p.push({op:"lineTo",data:[t,e]},{op:"lineTo",data:[t+h*Math.cos(u),e+c*Math.sin(u)]})),{type:"path",ops:p}}function M(t,e){let r=x(m(y(t))),i=[],n=[0,0],a=[0,0];for(let{key:t,data:o}of r)switch(t){case"M":a=[o[0],o[1]],n=[o[0],o[1]];break;case"L":i.push(...E(a[0],a[1],o[0],o[1],e)),a=[o[0],o[1]];break;case"C":{let[t,r,n,s,l,h]=o;i.push(...function(t,e,r,i,n,a,o,s){let l=[],h=[s.maxRandomnessOffset||1,(s.maxRandomnessOffset||1)+.3],c=[0,0],u=s.disableMultiStroke?1:2,d=s.preserveVertices;for(let f=0;f2){r.push({op:"move",data:[i[0][0]+W(t,e),i[0][1]+W(t,e)]});for(let a=1;a500?.4:-.0016668*l+1.233334;let c=n.maxRandomnessOffset||0;c*c*100>s&&(c=l/10);let u=c/2,d=.2+.2*F(n),f=n.bowing*n.maxRandomnessOffset*(i-e)/200,p=n.bowing*n.maxRandomnessOffset*(t-r)/200;f=W(f,n,h),p=W(p,n,h);let g=[],y=()=>W(u,n,h),m=()=>W(c,n,h),x=n.preserveVertices;return a&&(o?g.push({op:"move",data:[t+(x?0:y()),e+(x?0:y())]}):g.push({op:"move",data:[t+(x?0:W(c,n,h)),e+(x?0:W(c,n,h))]})),o?g.push({op:"bcurveTo",data:[f+t+(r-t)*d+y(),p+e+(i-e)*d+y(),f+t+2*(r-t)*d+y(),p+e+2*(i-e)*d+y(),r+(x?0:y()),i+(x?0:y())]}):g.push({op:"bcurveTo",data:[f+t+(r-t)*d+m(),p+e+(i-e)*d+m(),f+t+2*(r-t)*d+m(),p+e+2*(i-e)*d+m(),r+(x?0:m()),i+(x?0:m())]}),g}function Z(t,e,r){if(!t.length)return[];let i=[];i.push([t[0][0]+W(e,r),t[0][1]+W(e,r)]),i.push([t[0][0]+W(e,r),t[0][1]+W(e,r)]);for(let n=1;n3){let a=[],o=1-r.curveTightness;n.push({op:"move",data:[t[1][0],t[1][1]]});for(let e=1;e+2l&&(l=e,h=i)}return Math.sqrt(l)>i?(q(t,e,h+1,i,a),q(t,h,r,i,a)):(a.length||a.push(o),a.push(s)),a}function H(t,e=.15,r){let i=[],n=(t.length-1)/3;for(let r=0;r1&&a.push(t):a.push(t),a.push(e[r+3])}else{let n=e[r+0],o=e[r+1],s=e[r+2],l=e[r+3],h=P(n,o,.5),c=P(o,s,.5),u=P(s,l,.5),d=P(h,c,.5),f=P(c,u,.5),p=P(d,f,.5);t([n,h,d,p],0,i,a),t([p,f,u,l],0,i,a)}return a}(t,3*r,e,i);return r&&r>0?q(i,0,i.length,r):i}let U="none";class Y{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(0x80000000*Math.random())}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,e,r){return{shape:t,sets:e||[],options:r||this.defaultOptions}}line(t,e,r,i,n){let a=this._o(n);return this._d("line",[C(t,e,r,i,a)],a)}rectangle(t,e,r,i,n){let a=this._o(n),o=[],s=function(t,e,r,i,n){return w([[t,e],[t+r,e],[t+r,e+i],[t,e+i]],!0,n)}(t,e,r,i,a);if(a.fill){let n=[[t,e],[t+r,e],[t+r,e+i],[t,e+i]];"solid"===a.fillStyle?o.push(B([n],a)):o.push(L([n],a))}return a.stroke!==U&&o.push(s),this._d("rectangle",o,a)}ellipse(t,e,r,i,n){let a=this._o(n),o=[],s=v(r,i,a),l=T(t,e,a,s);if(a.fill){if("solid"===a.fillStyle){let r=T(t,e,a,s).opset;r.type="fillPath",o.push(r)}else o.push(L([l.estimatedPoints],a))}return a.stroke!==U&&o.push(l.opset),this._d("ellipse",o,a)}circle(t,e,r,i){let n=this.ellipse(t,e,r,r,i);return n.shape="circle",n}linearPath(t,e){let r=this._o(e);return this._d("linearPath",[w(t,!1,r)],r)}arc(t,e,r,i,n,a,o=!1,s){let l=this._o(s),h=[],c=S(t,e,r,i,n,a,o,!0,l);if(o&&l.fill){if("solid"===l.fillStyle){let o=Object.assign({},l);o.disableMultiStroke=!0;let s=S(t,e,r,i,n,a,!0,!1,o);s.type="fillPath",h.push(s)}else h.push(function(t,e,r,i,n,a,o){let s=Math.abs(r/2),l=Math.abs(i/2);s+=W(.01*s,o),l+=W(.01*l,o);let h=n,c=a;for(;h<0;)h+=2*Math.PI,c+=2*Math.PI;c-h>2*Math.PI&&(h=0,c=2*Math.PI);let u=(c-h)/o.curveStepCount,d=[];for(let r=h;r<=c;r+=u)d.push([t+s*Math.cos(r),e+l*Math.sin(r)]);return d.push([t+s*Math.cos(c),e+l*Math.sin(c)]),d.push([t,e]),L([d],o)}(t,e,r,i,n,a,l))}return l.stroke!==U&&h.push(c),this._d("arc",h,l)}curve(t,e){let r=this._o(e),i=[],n=_(t,r);if(r.fill&&r.fill!==U){if("solid"===r.fillStyle){let e=_(t,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(e.ops)})}else{let e=[];if(t.length)for(let i of"number"==typeof t[0][0]?[t]:t)i.length<3?e.push(...i):3===i.length?e.push(...H(j([i[0],i[0],i[1],i[2]]),10,(1+r.roughness)/2)):e.push(...H(j(i),10,(1+r.roughness)/2));e.length&&i.push(L([e],r))}}return r.stroke!==U&&i.push(n),this._d("curve",i,r)}polygon(t,e){let r=this._o(e),i=[],n=w(t,!0,r);return r.fill&&("solid"===r.fillStyle?i.push(B([t],r)):i.push(L([t],r))),r.stroke!==U&&i.push(n),this._d("polygon",i,r)}path(t,e){let r=this._o(e),i=[];if(!t)return this._d("path",i,r);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let n=r.fill&&"transparent"!==r.fill&&r.fill!==U,a=r.stroke!==U,o=!!(r.simplification&&r.simplification<1),s=function(t,e,r){let i=x(m(y(t))),n=[],a=[],o=[0,0],s=[],l=()=>{s.length>=4&&a.push(...H(s,1)),s=[]},h=()=>{l(),a.length&&(n.push(a),a=[])};for(let{key:t,data:e}of i)switch(t){case"M":h(),o=[e[0],e[1]],a.push(o);break;case"L":l(),a.push([e[0],e[1]]);break;case"C":if(!s.length){let t=a.length?a[a.length-1]:o;s.push([t[0],t[1]])}s.push([e[0],e[1]]),s.push([e[2],e[3]]),s.push([e[4],e[5]]);break;case"Z":l(),a.push([o[0],o[1]])}if(h(),!r)return n;let c=[];for(let t of n){var u,d;let e=(u=t,d=r,q(u,0,u.length,d));e.length&&c.push(e)}return c}(t,1,o?4-4*(r.simplification||1):(1+r.roughness)/2),l=M(t,r);if(n){if("solid"===r.fillStyle){if(1===s.length){let e=M(t,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(e.ops)})}else i.push(B(s,r))}else i.push(L(s,r))}return a&&(o?s.forEach(t=>{i.push(w(t,!1,r))}):i.push(l)),this._d("path",i,r)}opsToPath(t,e){let r="";for(let i of t.ops){let t="number"==typeof e&&e>=0?i.data.map(t=>+t.toFixed(e)):i.data;switch(i.op){case"move":r+=`M${t[0]} ${t[1]} `;break;case"bcurveTo":r+=`C${t[0]} ${t[1]}, ${t[2]} ${t[3]}, ${t[4]} ${t[5]} `;break;case"lineTo":r+=`L${t[0]} ${t[1]} `}}return r.trim()}toPaths(t){let e=t.sets||[],r=t.options||this.defaultOptions,i=[];for(let t of e){let e=null;switch(t.type){case"path":e={d:this.opsToPath(t),stroke:r.stroke,strokeWidth:r.strokeWidth,fill:U};break;case"fillPath":e={d:this.opsToPath(t),stroke:U,strokeWidth:0,fill:r.fill||U};break;case"fillSketch":e=this.fillSketch(t,r)}e&&i.push(e)}return i}fillSketch(t,e){let r=e.fillWeight;return r<0&&(r=e.strokeWidth/2),{d:this.opsToPath(t),stroke:e.fill||U,strokeWidth:r,fill:U}}_mergedShape(t){return t.filter((t,e)=>0===e||"move"!==t.op)}}class V{constructor(t,e){this.canvas=t,this.ctx=this.canvas.getContext("2d"),this.gen=new Y(e)}draw(t){let e=t.sets||[],r=t.options||this.getDefaultOptions(),i=this.ctx,n=t.options.fixedDecimalPlaceDigits;for(let a of e)switch(a.type){case"path":i.save(),i.strokeStyle="none"===r.stroke?"transparent":r.stroke,i.lineWidth=r.strokeWidth,r.strokeLineDash&&i.setLineDash(r.strokeLineDash),r.strokeLineDashOffset&&(i.lineDashOffset=r.strokeLineDashOffset),this._drawToContext(i,a,n),i.restore();break;case"fillPath":{i.save(),i.fillStyle=r.fill||"";let e="curve"===t.shape||"polygon"===t.shape||"path"===t.shape?"evenodd":"nonzero";this._drawToContext(i,a,n,e),i.restore();break}case"fillSketch":this.fillSketch(i,a,r)}}fillSketch(t,e,r){let i=r.fillWeight;i<0&&(i=r.strokeWidth/2),t.save(),r.fillLineDash&&t.setLineDash(r.fillLineDash),r.fillLineDashOffset&&(t.lineDashOffset=r.fillLineDashOffset),t.strokeStyle=r.fill||"",t.lineWidth=i,this._drawToContext(t,e,r.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,e,r,i="nonzero"){for(let i of(t.beginPath(),e.ops)){let e="number"==typeof r&&r>=0?i.data.map(t=>+t.toFixed(r)):i.data;switch(i.op){case"move":t.moveTo(e[0],e[1]);break;case"bcurveTo":t.bezierCurveTo(e[0],e[1],e[2],e[3],e[4],e[5]);break;case"lineTo":t.lineTo(e[0],e[1])}}"fillPath"===e.type?t.fill(i):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,e,r,i,n){let a=this.gen.line(t,e,r,i,n);return this.draw(a),a}rectangle(t,e,r,i,n){let a=this.gen.rectangle(t,e,r,i,n);return this.draw(a),a}ellipse(t,e,r,i,n){let a=this.gen.ellipse(t,e,r,i,n);return this.draw(a),a}circle(t,e,r,i){let n=this.gen.circle(t,e,r,i);return this.draw(n),n}linearPath(t,e){let r=this.gen.linearPath(t,e);return this.draw(r),r}polygon(t,e){let r=this.gen.polygon(t,e);return this.draw(r),r}arc(t,e,r,i,n,a,o=!1,s){let l=this.gen.arc(t,e,r,i,n,a,o,s);return this.draw(l),l}curve(t,e){let r=this.gen.curve(t,e);return this.draw(r),r}path(t,e){let r=this.gen.path(t,e);return this.draw(r),r}}let G="http://www.w3.org/2000/svg";class X{constructor(t,e){this.svg=t,this.gen=new Y(e)}draw(t){let e=t.sets||[],r=t.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,n=i.createElementNS(G,"g"),a=t.options.fixedDecimalPlaceDigits;for(let o of e){let e=null;switch(o.type){case"path":(e=i.createElementNS(G,"path")).setAttribute("d",this.opsToPath(o,a)),e.setAttribute("stroke",r.stroke),e.setAttribute("stroke-width",r.strokeWidth+""),e.setAttribute("fill","none"),r.strokeLineDash&&e.setAttribute("stroke-dasharray",r.strokeLineDash.join(" ").trim()),r.strokeLineDashOffset&&e.setAttribute("stroke-dashoffset",`${r.strokeLineDashOffset}`);break;case"fillPath":(e=i.createElementNS(G,"path")).setAttribute("d",this.opsToPath(o,a)),e.setAttribute("stroke","none"),e.setAttribute("stroke-width","0"),e.setAttribute("fill",r.fill||""),"curve"!==t.shape&&"polygon"!==t.shape||e.setAttribute("fill-rule","evenodd");break;case"fillSketch":e=this.fillSketch(i,o,r)}e&&n.appendChild(e)}return n}fillSketch(t,e,r){let i=r.fillWeight;i<0&&(i=r.strokeWidth/2);let n=t.createElementNS(G,"path");return n.setAttribute("d",this.opsToPath(e,r.fixedDecimalPlaceDigits)),n.setAttribute("stroke",r.fill||""),n.setAttribute("stroke-width",i+""),n.setAttribute("fill","none"),r.fillLineDash&&n.setAttribute("stroke-dasharray",r.fillLineDash.join(" ").trim()),r.fillLineDashOffset&&n.setAttribute("stroke-dashoffset",`${r.fillLineDashOffset}`),n}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,e){return this.gen.opsToPath(t,e)}line(t,e,r,i,n){let a=this.gen.line(t,e,r,i,n);return this.draw(a)}rectangle(t,e,r,i,n){let a=this.gen.rectangle(t,e,r,i,n);return this.draw(a)}ellipse(t,e,r,i,n){let a=this.gen.ellipse(t,e,r,i,n);return this.draw(a)}circle(t,e,r,i){let n=this.gen.circle(t,e,r,i);return this.draw(n)}linearPath(t,e){let r=this.gen.linearPath(t,e);return this.draw(r)}polygon(t,e){let r=this.gen.polygon(t,e);return this.draw(r)}arc(t,e,r,i,n,a,o=!1,s){let l=this.gen.arc(t,e,r,i,n,a,o,s);return this.draw(l)}curve(t,e){let r=this.gen.curve(t,e);return this.draw(r)}path(t,e){let r=this.gen.path(t,e);return this.draw(r)}}var Q={canvas:(t,e)=>new V(t,e),svg:(t,e)=>new X(t,e),generator:t=>new Y(t),newSeed:()=>Y.newSeed()}},18464:function(t,e,r){"use strict";function i(t){for(var e=[],r=1;rv});var i=r("85893"),n=r("67294"),a=r("67026"),o=r("96025"),s=r("84681");let l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function h(t){let{type:e,className:r,children:n}=t;return(0,i.jsx)("div",{className:(0,a.Z)(s.k.common.admonition,s.k.common.admonitionType(e),l.admonition,r),children:n})}function c(t){let{icon:e,title:r}=t;return(0,i.jsxs)("div",{className:l.admonitionHeading,children:[(0,i.jsx)("span",{className:l.admonitionIcon,children:e}),r]})}function u(t){let{children:e}=t;return e?(0,i.jsx)("div",{className:l.admonitionContent,children:e}):null}function d(t){let{type:e,icon:r,title:n,children:a,className:o}=t;return(0,i.jsxs)(h,{type:e,className:o,children:[n||r?(0,i.jsx)(c,{title:n,icon:r}):null,(0,i.jsx)(u,{children:a})]})}let f={icon:(0,i.jsx)(function(t){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...t,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})},{}),title:(0,i.jsx)(o.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function p(t){return(0,i.jsx)(d,{...f,...t,className:(0,a.Z)("alert alert--secondary",t.className),children:t.children})}let g={icon:(0,i.jsx)(function(t){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...t,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})},{}),title:(0,i.jsx)(o.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function y(t){return(0,i.jsx)(d,{...g,...t,className:(0,a.Z)("alert alert--success",t.className),children:t.children})}let m={icon:(0,i.jsx)(function(t){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...t,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})},{}),title:(0,i.jsx)(o.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function x(t){return(0,i.jsx)(d,{...m,...t,className:(0,a.Z)("alert alert--info",t.className),children:t.children})}function b(t){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...t,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}let k={icon:(0,i.jsx)(b,{}),title:(0,i.jsx)(o.Z,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})},C={icon:(0,i.jsx)(function(t){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...t,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})},{}),title:(0,i.jsx)(o.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})},w={icon:(0,i.jsx)(b,{}),title:(0,i.jsx)(o.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})},_={note:p,tip:y,info:x,warning:function(t){return(0,i.jsx)(d,{...k,...t,className:(0,a.Z)("alert alert--warning",t.className),children:t.children})},danger:function(t){return(0,i.jsx)(d,{...C,...t,className:(0,a.Z)("alert alert--danger",t.className),children:t.children})},secondary:t=>(0,i.jsx)(p,{title:"secondary",...t}),important:t=>(0,i.jsx)(x,{title:"important",...t}),success:t=>(0,i.jsx)(y,{title:"success",...t}),caution:function(t){return(0,i.jsx)(d,{...w,...t,className:(0,a.Z)("alert alert--warning",t.className),children:t.children})}};function v(t){let e=function(t){let{mdxAdmonitionTitle:e,rest:r}=function(t){let e=n.Children.toArray(t),r=e.find(t=>n.isValidElement(t)&&"mdxAdmonitionTitle"===t.type),a=e.filter(t=>t!==r);return{mdxAdmonitionTitle:r?.props.children,rest:a.length>0?(0,i.jsx)(i.Fragment,{children:a}):null}}(t.children),a=t.title??e;return{...t,...a&&{title:a},children:r}}(t),r=function(t){let e=_[t];return e?e:(console.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),_.info)}(e.type);return(0,i.jsx)(r,{...e})}},15133:function(t,e,r){"use strict";r.d(e,{Z:function(){return h}});var i=r(85893);r(67294);var n=r(67026),a=r(30202),o=r(84681),s=r(75094);function l(t){let{className:e}=t;return(0,i.jsx)(s.Z,{type:"caution",title:(0,i.jsx)(a.cI,{}),className:(0,n.Z)(e,o.k.common.unlistedBanner),children:(0,i.jsx)(a.eU,{})})}function h(t){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.T$,{}),(0,i.jsx)(l,{...t})]})}},38813:function(t,e,r){"use strict";r.d(e,{Z:()=>c});var i=r("85893");r("67294");var n=r("67026"),a=r("30202"),o=r("84681"),s=r("75094");function l(t){let{className:e}=t;return(0,i.jsx)(s.Z,{type:"caution",title:(0,i.jsx)(a.ht,{}),className:(0,n.Z)(e,o.k.common.draftBanner),children:(0,i.jsx)(a.xo,{})})}var h=r("15133");function c(t){let{metadata:e}=t,{unlisted:r,frontMatter:n}=e;return(0,i.jsxs)(i.Fragment,{children:[(r||n.unlisted)&&(0,i.jsx)(h.Z,{}),n.draft&&(0,i.jsx)(l,{})]})}},86594:function(t,e,r){"use strict";r.d(e,{Z:()=>y});var i=r("85893");r("67294");var n=r("67026"),a=r("96025"),o=r("84681"),s=r("83012");let l="iconEdit_Z9Sw";function h(t){let{className:e,...r}=t;return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,n.Z)(l,e),"aria-hidden":"true",...r,children:(0,i.jsx)("g",{children:(0,i.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function c(t){let{editUrl:e}=t;return(0,i.jsxs)(s.Z,{to:e,className:o.k.common.editThisPage,children:[(0,i.jsx)(h,{}),(0,i.jsx)(a.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=r("2933");function d(t){let{lastUpdatedAt:e}=t,r=new Date(e),n=(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{i18n:{currentLocale:e}}=(0,u.Z)(),r=function(){let{i18n:{currentLocale:t,localeConfigs:e}}=(0,u.Z)();return e[t].calendar}();return new Intl.DateTimeFormat(e,{calendar:r,...t})})({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(r);return(0,i.jsx)(a.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,i.jsx)("b",{children:(0,i.jsx)("time",{dateTime:r.toISOString(),itemProp:"dateModified",children:n})})},children:" on {date}"})}function f(t){let{lastUpdatedBy:e}=t;return(0,i.jsx)(a.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,i.jsx)("b",{children:e})},children:" by {user}"})}function p(t){let{lastUpdatedAt:e,lastUpdatedBy:r}=t;return(0,i.jsxs)("span",{className:o.k.common.lastUpdated,children:[(0,i.jsx)(a.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,i.jsx)(d,{lastUpdatedAt:e}):"",byUser:r?(0,i.jsx)(f,{lastUpdatedBy:r}):""},children:"Last updated{atDate}{byUser}"}),!1]})}let g="lastUpdated_JAkA";function y(t){let{className:e,editUrl:r,lastUpdatedAt:a,lastUpdatedBy:o}=t;return(0,i.jsxs)("div",{className:(0,n.Z)("row",e),children:[(0,i.jsx)("div",{className:"col",children:r&&(0,i.jsx)(c,{editUrl:r})}),(0,i.jsx)("div",{className:(0,n.Z)("col",g),children:(a||o)&&(0,i.jsx)(p,{lastUpdatedAt:a,lastUpdatedBy:o})})]})}},14722:function(t,e,r){"use strict";r.d(e,{Z:()=>rE});var i=r("85893"),n=r("67294"),a=r("50065"),o=r("94819"),s=r("45056");function l(t){return(0,i.jsx)("code",{...t})}var h=r("83012"),c=r("67026"),u=r("41065"),d=r("7227"),f=r("57455");let p={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function g(t){return!!t&&("SUMMARY"===t.tagName||g(t.parentElement))}function y(t){let{summary:e,children:r,...a}=t;(0,u.Z)().collectAnchor(a.id);let o=(0,d.Z)(),s=(0,n.useRef)(null),{collapsed:l,setCollapsed:h}=(0,f.u)({initialState:!a.open}),[y,m]=(0,n.useState)(a.open),x=n.isValidElement(e)?e:(0,i.jsx)("summary",{children:e??"Details"});return(0,i.jsxs)("details",{...a,ref:s,open:y,"data-collapsed":l,className:(0,c.Z)(p.details,o&&p.isBrowser,a.className),onMouseDown:t=>{g(t.target)&&t.detail>1&&t.preventDefault()},onClick:t=>{t.stopPropagation();let e=t.target;if(!!(g(e)&&function t(e,r){return!!e&&(e===r||t(e.parentElement,r))}(e,s.current)))t.preventDefault(),l?(h(!1),m(!0)):h(!0)},children:[x,(0,i.jsx)(f.z,{lazy:!1,collapsed:l,disableSSRStyle:!0,onCollapseTransitionEnd:t=>{h(t),m(!t)},children:(0,i.jsx)("div",{className:p.collapsibleContent,children:r})})]})}let m="details_b_Ee";function x(t){let{...e}=t;return(0,i.jsx)(y,{...e,className:(0,c.Z)("alert alert--info",m,e.className)})}function b(t){let e=n.Children.toArray(t.children),r=e.find(t=>n.isValidElement(t)&&"summary"===t.type),a=(0,i.jsx)(i.Fragment,{children:e.filter(t=>t!==r)});return(0,i.jsx)(x,{...t,summary:r,children:a})}var k=r("34403");function C(t){return(0,i.jsx)(k.Z,{...t})}let w={containsTaskList:"containsTaskList_mC6p"},_="img_ev3q";var v=r("75094"),T=r("16893"),S=r("78720"),M=r("30140"),B=r("84239"),L=r("80397"),A=r("290");r("29660"),r("37971");var F=r("9833");r("30594"),r("82612"),r("41200");var $=r("68394"),W=r("36534"),E=r("89356"),D=r("74146"),Z=r("18464"),O=r("27818"),N="comm",I="rule",z="decl",j=Math.abs,R=String.fromCharCode;function P(t){return t.trim()}function q(t,e,r){return t.replace(e,r)}function H(t,e){return 0|t.charCodeAt(e)}function U(t,e,r){return t.slice(e,r)}function Y(t){return t.length}function V(t,e){return e.push(t),t}function G(t,e){for(var r="",i=0;i0?f[x]+" "+b:q(b,/&\f/g,f[x])).trim())l[m++]=k;return ti(t,e,r,0===n?I:s,l,h,c,u)}function tu(t,e,r,i,n){return ti(t,e,r,z,U(t,0,i),U(t,i+1,-1),i,n)}var td=r("75373"),tf=r("73217"),tp=(0,D.eW)(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),tg=(0,D.eW)(async()=>{let{diagram:t}=await r.e("2646").then(r.bind(r,89808));return{id:"c4",diagram:t}},"loader"),ty={id:"c4",detector:tp,loader:tg},tm="flowchart",tx=(0,D.eW)((t,e)=>e?.flowchart?.defaultRenderer!=="dagre-wrapper"&&e?.flowchart?.defaultRenderer!=="elk"&&/^\s*graph/.test(t),"detector"),tb=(0,D.eW)(async()=>{let{diagram:t}=await r.e("6659").then(r.bind(r,88373));return{id:tm,diagram:t}},"loader"),tk={id:tm,detector:tx,loader:tb},tC="flowchart-v2",tw=(0,D.eW)((t,e)=>e?.flowchart?.defaultRenderer!=="dagre-d3"&&(e?.flowchart?.defaultRenderer==="elk"&&(e.layout="elk"),!!/^\s*graph/.test(t)&&e?.flowchart?.defaultRenderer==="dagre-wrapper"||/^\s*flowchart/.test(t)),"detector"),t_=(0,D.eW)(async()=>{let{diagram:t}=await r.e("6659").then(r.bind(r,88373));return{id:tC,diagram:t}},"loader"),tv={id:tC,detector:tw,loader:t_},tT=(0,D.eW)(t=>/^\s*erDiagram/.test(t),"detector"),tS=(0,D.eW)(async()=>{let{diagram:t}=await Promise.all([r.e("5823"),r.e("3389"),r.e("9974")]).then(r.bind(r,6576));return{id:"er",diagram:t}},"loader"),tM={id:"er",detector:tT,loader:tS},tB="gitGraph",tL=(0,D.eW)(t=>/^\s*gitGraph/.test(t),"detector"),tA=(0,D.eW)(async()=>{let{diagram:t}=await Promise.all([r.e("5823"),r.e("3917"),r.e("3315")]).then(r.bind(r,17321));return{id:tB,diagram:t}},"loader"),tF={id:tB,detector:tL,loader:tA},t$="gantt",tW=(0,D.eW)(t=>/^\s*gantt/.test(t),"detector"),tE=(0,D.eW)(async()=>{let{diagram:t}=await r.e("8963").then(r.bind(r,98951));return{id:t$,diagram:t}},"loader"),tD={id:t$,detector:tW,loader:tE},tZ="info",tO=(0,D.eW)(t=>/^\s*info/.test(t),"detector"),tN=(0,D.eW)(async()=>{let{diagram:t}=await Promise.all([r.e("5823"),r.e("3917"),r.e("9790")]).then(r.bind(r,63994));return{id:tZ,diagram:t}},"loader"),tI={id:tZ,detector:tO,loader:tN},tz={id:"pie",detector:(0,D.eW)(t=>/^\s*pie/.test(t),"detector"),loader:(0,D.eW)(async()=>{let{diagram:t}=await Promise.all([r.e("5823"),r.e("3917"),r.e("1351")]).then(r.bind(r,79198));return{id:"pie",diagram:t}},"loader")},tj="quadrantChart",tR=(0,D.eW)(t=>/^\s*quadrantChart/.test(t),"detector"),tP=(0,D.eW)(async()=>{let{diagram:t}=await r.e("736").then(r.bind(r,22019));return{id:tj,diagram:t}},"loader"),tq={id:tj,detector:tR,loader:tP},tH="xychart",tU=(0,D.eW)(t=>/^\s*xychart-beta/.test(t),"detector"),tY=(0,D.eW)(async()=>{let{diagram:t}=await r.e("488").then(r.bind(r,62350));return{id:tH,diagram:t}},"loader"),tV={id:tH,detector:tU,loader:tY},tG="requirement",tX=(0,D.eW)(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),tQ=(0,D.eW)(async()=>{let{diagram:t}=await Promise.all([r.e("5823"),r.e("3389"),r.e("9083")]).then(r.bind(r,29763));return{id:tG,diagram:t}},"loader"),tK={id:tG,detector:tX,loader:tQ},tJ="sequence",t0=(0,D.eW)(t=>/^\s*sequenceDiagram/.test(t),"detector"),t1=(0,D.eW)(async()=>{let{diagram:t}=await r.e("4960").then(r.bind(r,19343));return{id:tJ,diagram:t}},"loader"),t2={id:tJ,detector:t0,loader:t1},t3="class",t5=(0,D.eW)((t,e)=>e?.class?.defaultRenderer!=="dagre-wrapper"&&/^\s*classDiagram/.test(t),"detector"),t4=(0,D.eW)(async()=>{let{diagram:t}=await Promise.all([r.e("8164"),r.e("3754")]).then(r.bind(r,84768));return{id:t3,diagram:t}},"loader"),t6={id:t3,detector:t5,loader:t4},t8="classDiagram",t9=(0,D.eW)((t,e)=>!!/^\s*classDiagram/.test(t)&&e?.class?.defaultRenderer==="dagre-wrapper"||/^\s*classDiagram-v2/.test(t),"detector"),t7=(0,D.eW)(async()=>{let{diagram:t}=await Promise.all([r.e("8164"),r.e("4343")]).then(r.bind(r,92399));return{id:t8,diagram:t}},"loader"),et={id:t8,detector:t9,loader:t7},ee="state",er=(0,D.eW)((t,e)=>e?.state?.defaultRenderer!=="dagre-wrapper"&&/^\s*stateDiagram/.test(t),"detector"),ei=(0,D.eW)(async()=>{let{diagram:t}=await Promise.all([r.e("5823"),r.e("3389"),r.e("2425"),r.e("7469")]).then(r.bind(r,47358));return{id:ee,diagram:t}},"loader"),en={id:ee,detector:er,loader:ei},ea="stateDiagram",eo=(0,D.eW)((t,e)=>!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&e?.state?.defaultRenderer==="dagre-wrapper")||!1,"detector"),es=(0,D.eW)(async()=>{let{diagram:t}=await Promise.all([r.e("2425"),r.e("2401")]).then(r.bind(r,44909));return{id:ea,diagram:t}},"loader"),el={id:ea,detector:eo,loader:es},eh="journey",ec=(0,D.eW)(t=>/^\s*journey/.test(t),"detector"),eu=(0,D.eW)(async()=>{let{diagram:t}=await r.e("9589").then(r.bind(r,97329));return{id:eh,diagram:t}},"loader"),ed={id:eh,detector:ec,loader:eu},ef={draw:(0,D.eW)((t,e,r)=>{D.cM.debug("rendering svg for syntax error\n");let i=(0,E.P)(e),n=i.append("g");i.attr("viewBox","0 0 2412 512"),(0,D.v2)(i,100,512,!0),n.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),n.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),n.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),n.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),n.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),n.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw")},ep={db:{},renderer:ef,parser:{parse:(0,D.eW)(()=>{},"parse")}},eg="flowchart-elk",ey=(0,D.eW)((t,e={})=>!!(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&e?.flowchart?.defaultRenderer==="elk")&&(e.layout="elk",!0),"detector"),em=(0,D.eW)(async()=>{let{diagram:t}=await r.e("6659").then(r.bind(r,88373));return{id:eg,diagram:t}},"loader"),ex={id:eg,detector:ey,loader:em},eb="timeline",ek=(0,D.eW)(t=>/^\s*timeline/.test(t),"detector"),eC=(0,D.eW)(async()=>{let{diagram:t}=await r.e("4600").then(r.bind(r,58314));return{id:eb,diagram:t}},"loader"),ew={id:eb,detector:ek,loader:eC},e_="mindmap",ev=(0,D.eW)(t=>/^\s*mindmap/.test(t),"detector"),eT=(0,D.eW)(async()=>{let{diagram:t}=await Promise.all([r.e("6211"),r.e("8733")]).then(r.bind(r,69972));return{id:e_,diagram:t}},"loader"),eS={id:e_,detector:ev,loader:eT},eM="kanban",eB=(0,D.eW)(t=>/^\s*kanban/.test(t),"detector"),eL=(0,D.eW)(async()=>{let{diagram:t}=await r.e("3544").then(r.bind(r,57275));return{id:eM,diagram:t}},"loader"),eA={id:eM,detector:eB,loader:eL},eF="sankey",e$=(0,D.eW)(t=>/^\s*sankey-beta/.test(t),"detector"),eW=(0,D.eW)(async()=>{let{diagram:t}=await r.e("2594").then(r.bind(r,96607));return{id:eF,diagram:t}},"loader"),eE={id:eF,detector:e$,loader:eW},eD="packet",eZ=(0,D.eW)(t=>/^\s*packet-beta/.test(t),"detector"),eO=(0,D.eW)(async()=>{let{diagram:t}=await Promise.all([r.e("5823"),r.e("3917"),r.e("2578")]).then(r.bind(r,78088));return{id:eD,diagram:t}},"loader"),eN={id:eD,detector:eZ,loader:eO},eI="block",ez=(0,D.eW)(t=>/^\s*block-beta/.test(t),"detector"),ej=(0,D.eW)(async()=>{let{diagram:t}=await Promise.all([r.e("5823"),r.e("3337")]).then(r.bind(r,34370));return{id:eI,diagram:t}},"loader"),eR={id:eI,detector:ez,loader:ej},eP="architecture",eq=(0,D.eW)(t=>/^\s*architecture/.test(t),"detector"),eH=(0,D.eW)(async()=>{let{diagram:t}=await Promise.all([r.e("5823"),r.e("3917"),r.e("6211"),r.e("362")]).then(r.bind(r,14804));return{id:eP,diagram:t}},"loader"),eU={id:eP,detector:eq,loader:eH},eY=!1,eV=(0,D.eW)(()=>{if(!eY)eY=!0,(0,D.Cq)("error",ep,t=>"error"===t.toLowerCase().trim()),(0,D.Cq)("---",{db:{clear:(0,D.eW)(()=>{},"clear")},styles:{},renderer:{draw:(0,D.eW)(()=>{},"draw")},parser:{parse:(0,D.eW)(()=>{throw Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:(0,D.eW)(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),(0,D.KO)(ty,eA,et,t6,tM,tD,tI,tz,tK,t2,ex,tv,tk,eS,ew,tF,el,en,ed,tq,eE,eN,tV,eR,eU)},"addDiagrams"),eG=(0,D.eW)(async()=>{D.cM.debug("Loading registered diagrams");let t=(await Promise.allSettled(Object.entries(D.Bf).map(async([t,{detector:e,loader:r}])=>{if(r)try{(0,D._7)(t)}catch{try{let{diagram:t,id:i}=await r();(0,D.Cq)(i,t,e)}catch(e){throw D.cM.error(`Failed to load external diagram with key ${t}. Removing from detectors.`),delete D.Bf[t],e}}}))).filter(t=>"rejected"===t.status);if(t.length>0){for(let e of(D.cM.error(`Failed to load ${t.length} external diagrams`),t))D.cM.error(e);throw Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams");function eX(t,e){t.attr("role","graphics-document document"),""!==e&&t.attr("aria-roledescription",e)}function eQ(t,e,r,i){if(void 0!==t.insert){if(r){let e=`chart-desc-${i}`;t.attr("aria-describedby",e),t.insert("desc",":first-child").attr("id",e).text(r)}if(e){let r=`chart-title-${i}`;t.attr("aria-labelledby",r),t.insert("title",":first-child").attr("id",r).text(e)}}}(0,D.eW)(eX,"setA11yDiagramInfo"),(0,D.eW)(eQ,"addSVGa11yTitleDescription");var eK=class t{constructor(t,e,r,i,n){this.type=t,this.text=e,this.db=r,this.parser=i,this.renderer=n}static{(0,D.eW)(this,"Diagram")}static async fromText(e,r={}){let i=(0,D.iE)(),n=(0,D.Vg)(e,i);e=(0,$.Vy)(e)+"\n";try{(0,D._7)(n)}catch{let t=(0,D.cq)(n);if(!t)throw new D.cj(`Diagram ${n} not found.`);let{id:e,diagram:r}=await t();(0,D.Cq)(e,r)}let{db:a,parser:o,renderer:s,init:l}=(0,D._7)(n);return o.parser&&(o.parser.yy=a),a.clear?.(),l?.(i),r.title&&a.setDiagramTitle?.(r.title),await o.parse(e),new t(n,e,a,o,s)}async render(t,e){await this.renderer.draw(this.text,t,e,this)}getParser(){return this.parser}getType(){return this.type}},eJ=[],e0=(0,D.eW)(()=>{eJ.forEach(t=>{t()}),eJ=[]},"attachFunctions"),e1=(0,D.eW)(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function e2(t){let e=t.match(D.M6);if(!e)return{text:t,metadata:{}};let r=(0,L.z)(e[1],{schema:L.A})??{};r="object"!=typeof r||Array.isArray(r)?{}:r;let i={};return r.displayMode&&(i.displayMode=r.displayMode.toString()),r.title&&(i.title=r.title.toString()),r.config&&(i.config=r.config),{text:t.slice(e[0].length),metadata:i}}(0,D.eW)(e2,"extractFrontMatter");var e3=(0,D.eW)(t=>t.replace(/\r\n?/g,"\n").replace(/<(\w+)([^>]*)>/g,(t,e,r)=>"<"+e+r.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),e5=(0,D.eW)(t=>{let{text:e,metadata:r}=e2(t),{displayMode:i,title:n,config:a={}}=r;return i&&(!a.gantt&&(a.gantt={}),a.gantt.displayMode=i),{title:n,config:a,text:e}},"processFrontmatter"),e4=(0,D.eW)(t=>{let e=$.w8.detectInit(t)??{},r=$.w8.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:t})=>"wrap"===t):r?.type==="wrap"&&(e.wrap=!0),{text:(0,$.tf)(t),directive:e}},"processDirectives");function e6(t){let e=e5(e3(t)),r=e4(e.text),i=(0,$.Rb)(e.config,r.directive);return{code:t=e1(r.text),title:e.title,config:i}}function e8(t){return btoa(Array.from(new TextEncoder().encode(t),t=>String.fromCodePoint(t)).join(""))}(0,D.eW)(e6,"preprocessDiagram"),(0,D.eW)(e8,"toBase64");var e9=["foreignobject"],e7=["dominant-baseline"];function rt(t){let e=e6(t);return(0,D.mc)(),(0,D.XV)(e.config??{}),e}async function re(t,e){eV();try{let{code:e,config:r}=rt(t);return{diagramType:(await rd(e)).type,config:r}}catch(t){if(e?.suppressErrors)return!1;throw t}}(0,D.eW)(rt,"processAndSetConfigs"),(0,D.eW)(re,"parse");var rr=(0,D.eW)((t,e,r=[])=>` +.${t} ${e} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),ri=(0,D.eW)((t,e=new Map)=>{let r="";if(void 0!==t.themeCSS&&(r+=` +${t.themeCSS}`),void 0!==t.fontFamily&&(r+=` +:root { --mermaid-font-family: ${t.fontFamily}}`),void 0!==t.altFontFamily&&(r+=` +:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),e instanceof Map){let i=t.htmlLabels??t.flowchart?.htmlLabels,n=i?["> *","span"]:["rect","polygon","ellipse","circle","path"];e.forEach(t=>{!(0,tf.Z)(t.styles)&&n.forEach(e=>{r+=rr(t.id,e,t.styles)}),!(0,tf.Z)(t.textStyles)&&(r+=rr(t.id,"tspan",(t?.textStyles||[]).map(t=>t.replace("color","fill"))))})}return r},"createCssStyles"),rn=(0,D.eW)((t,e,r,i)=>{var n,a,o;let s=ri(t,r),l=(0,D.Ee)(e,s,t.themeVariables);return G((o=function t(e,r,i,n,a,o,s,l,h){for(var c,u,d,f=0,p=0,g=s,y=0,m=0,x=0,b=1,k=1,C=1,w=0,_="",v=a,T=o,S=n,M=_;k;)switch(x=w,w=tn()){case 40:if(108!=x&&58==H(M,g-1)){;if(-1!=(c=M+=q(th(w),"&","&\f"),u="&\f",d=j(f?l[f-1]:0),c.indexOf("&\f",d)))C=-1;break}case 34:case 39:case 91:M+=th(w);break;case 9:case 10:case 13:case 32:M+=function(t){for(;te=ta();)if(te<33)tn();else break;return tl(t)>2||tl(te)>3?"":" "}(x);break;case 92:M+=function(t,e){for(var r,i;--e&&tn()&&!(te<48)&&!(te>102)&&(!(te>57)||!(te<65))&&(!(te>70)||!(te<97)););return r=t,i=tt+(e<6&&32==ta()&&32==tn()),U(tr,r,i)}(tt-1,7);continue;case 47:switch(ta()){case 42:case 47:V(function(t,e,r,i){return ti(t,e,r,N,R(te),U(t,2,-2),0,i)}(function(t,e){for(;tn();)if(t+te===57)break;else if(t+te===84&&47===ta())break;return"/*"+U(tr,e,tt-1)+"*"+R(47===t?t:tn())}(tn(),tt),r,i,h),h);break;default:M+="/"}break;case 123*b:l[f++]=Y(M)*C;case 125*b:case 59:case 0:switch(w){case 0:case 125:k=0;case 59+p:-1==C&&(M=q(M,/\f/g,"")),m>0&&Y(M)-g&&V(m>32?tu(M+";",n,i,g-1,h):tu(q(M," ","")+";",n,i,g-2,h),h);break;case 59:M+=";";default:if(V(S=tc(M,r,i,f,p,a,l,_,v=[],T=[],g,o),o),123===w){if(0===p)t(M,r,S,S,v,o,g,l,T);else switch(99===y&&110===H(M,3)?100:y){case 100:case 108:case 109:case 115:t(e,S,S,n&&V(tc(e,S,S,0,0,a,l,_,a,v=[],g,T),T),a,T,g,l,n?v:T);break;default:t(M,S,S,S,[""],T,0,l,T)}}}f=p=m=0,b=C=1,_=M="",g=s;break;case 58:g=1+Y(M),m=x;default:if(b<1){if(123==w)--b;else if(125==w&&0==b++&&125==(te=tt>0?H(tr,--tt):0,K--,10===te&&(K=1,Q--),te))continue}switch(M+=R(w),w*b){case 38:C=p>0?1:(M+="\f",-1);break;case 44:l[f++]=(Y(M)-1)*C,C=1;break;case 64:45===ta()&&(M+=th(tn())),y=ta(),p=g=Y(_=M+=function(t){for(;!tl(ta());)tn();return U(tr,t,tt)}(tt)),w++;break;case 45:45===x&&2==Y(M)&&(b=0)}}return o}("",null,null,null,[""],(a=n=`${i}{${l}}`,Q=K=1,J=Y(tr=a),tt=0,n=[]),0,[0],n),tr="",o),X)},"createUserStyles"),ra=(0,D.eW)((t="",e,r)=>{let i=t;return!r&&!e&&(i=i.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),i=(i=(0,$.SH)(i)).replace(/
/g,"
")},"cleanUpSvgCode"),ro=(0,D.eW)((t="",e)=>{let r=e?.viewBox?.baseVal?.height?e.viewBox.baseVal.height+"px":"100%",i=e8(`${t}`);return``},"putIntoIFrame"),rs=(0,D.eW)((t,e,r,i,n)=>{let a=t.append("div");a.attr("id",r),i&&a.attr("style",i);let o=a.append("svg").attr("id",e).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg");return n&&o.attr("xmlns:xlink",n),o.append("g"),t},"appendDivSvgG");function rl(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}(0,D.eW)(rl,"sandboxedIframe");var rh=(0,D.eW)((t,e,r,i)=>{t.getElementById(e)?.remove(),t.getElementById(r)?.remove(),t.getElementById(i)?.remove()},"removeExistingElements"),rc=(0,D.eW)(async function(t,e,r){let i,n;eV();let a=rt(e);e=a.code;let o=(0,D.iE)();D.cM.debug(o),e.length>(o?.maxTextSize??5e4)&&(e="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa");let s="#"+t,l="i"+t,h="#"+l,c="d"+t,u="#"+c,d=(0,D.eW)(()=>{let t=p?h:u,e=(0,O.Ys)(t).node();e&&"remove"in e&&e.remove()},"removeTempElements"),f=(0,O.Ys)("body"),p="sandbox"===o.securityLevel,g="loose"===o.securityLevel,y=o.fontFamily;if(void 0!==r){if(r&&(r.innerHTML=""),p){let t=rl((0,O.Ys)(r),l);(f=(0,O.Ys)(t.nodes()[0].contentDocument.body)).node().style.margin=0}else f=(0,O.Ys)(r);rs(f,t,c,`font-family: ${y}`,"http://www.w3.org/1999/xlink")}else{if(rh(document,t,c,l),p){let t=rl((0,O.Ys)("body"),l);(f=(0,O.Ys)(t.nodes()[0].contentDocument.body)).node().style.margin=0}else f=(0,O.Ys)("body");rs(f,t,c)}try{i=await eK.fromText(e,{title:a.title})}catch(t){if(o.suppressErrorRendering)throw d(),t;i=await eK.fromText("error"),n=t}let m=f.select(u).node(),x=i.type,b=m.firstChild,k=b.firstChild,C=rn(o,x,i.renderer.getClasses?.(e,i),s),w=document.createElement("style");w.innerHTML=C,b.insertBefore(w,k);try{await i.renderer.draw(e,t,W.i,i)}catch(r){throw o.suppressErrorRendering?d():ef.draw(e,t,W.i),r}let _=f.select(`${u} svg`),v=i.db.getAccTitle?.();rf(x,_,v,i.db.getAccDescription?.()),f.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");let T=f.select(u).node().innerHTML;if(D.cM.debug("config.arrowMarkerAbsolute",o.arrowMarkerAbsolute),T=ra(T,p,(0,D.ku)(o.arrowMarkerAbsolute)),p?T=ro(T,f.select(u+" svg").node()):!g&&(T=td.Z.sanitize(T,{ADD_TAGS:e9,ADD_ATTR:e7,HTML_INTEGRATION_POINTS:{foreignobject:!0}})),e0(),n)throw n;return d(),{diagramType:x,svg:T,bindFunctions:i.db.bindFunctions}},"render");function ru(t={}){let e=(0,D.Yc)({},t);e?.fontFamily&&!e.themeVariables?.fontFamily&&(!e.themeVariables&&(e.themeVariables={}),e.themeVariables.fontFamily=e.fontFamily),(0,D.dY)(e),e?.theme&&e.theme in D._j?e.themeVariables=D._j[e.theme].getThemeVariables(e.themeVariables):e&&(e.themeVariables=D._j.default.getThemeVariables(e.themeVariables));let r="object"==typeof e?(0,D.Yn)(e):(0,D.ZD)();(0,D.Ub)(r.logLevel),eV()}(0,D.eW)(ru,"initialize");var rd=(0,D.eW)((t,e={})=>{let{code:r}=e6(t);return eK.fromText(r,e)},"getDiagramFromText");function rf(t,e,r,i){eX(e,t),eQ(e,r,i,e.attr("id"))}(0,D.eW)(rf,"addA11yInfo");var rp=Object.freeze({render:rc,parse:re,getDiagramFromText:rd,initialize:ru,getConfig:D.iE,setConfig:D.v6,getSiteConfig:D.ZD,updateSiteConfig:D.Tb,reset:(0,D.eW)(()=>{(0,D.mc)()},"reset"),globalReset:(0,D.eW)(()=>{(0,D.mc)(D.u_)},"globalReset"),defaultConfig:D.u_});(0,D.Ub)((0,D.iE)().logLevel),(0,D.mc)((0,D.iE)());var rg=(0,D.eW)((t,e,r)=>{D.cM.warn(t),(0,$.bZ)(t)?(r&&r(t.str,t.hash),e.push({...t,message:t.str,error:t})):(r&&r(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},"handleError"),ry=(0,D.eW)(async function(t={querySelector:".mermaid"}){try{await rm(t)}catch(e){if((0,$.bZ)(e)&&D.cM.error(e.str),rB.parseError&&rB.parseError(e),!t.suppressErrors)throw D.cM.error("Use the suppressErrors option to suppress these errors"),e}},"run"),rm=(0,D.eW)(async function({postRenderCallback:t,querySelector:e,nodes:r}={querySelector:".mermaid"}){let i,n;let a=rp.getConfig();if(D.cM.debug(`${t?"":"No "}Callback function found`),r)i=r;else if(e)i=document.querySelectorAll(e);else throw Error("Nodes and querySelector are both undefined");D.cM.debug(`Found ${i.length} diagrams`),a?.startOnLoad!==void 0&&(D.cM.debug("Start On Load: "+a?.startOnLoad),rp.updateSiteConfig({startOnLoad:a?.startOnLoad}));let o=new $.w8.InitIDGenerator(a.deterministicIds,a.deterministicIDSeed),s=[];for(let e of Array.from(i)){if(D.cM.info("Rendering diagram: "+e.id),e.getAttribute("data-processed"))continue;e.setAttribute("data-processed","true");let r=`mermaid-${o.next()}`;n=e.innerHTML,n=(0,Z.Z)($.w8.entityDecode(n)).trim().replace(//gi,"
");let i=$.w8.detectInit(n);i&&D.cM.debug("Detected early reinit: ",i);try{let{svg:i,bindFunctions:a}=await rM(r,n,e);e.innerHTML=i,t&&await t(r),a&&a(e)}catch(t){rg(t,s,rB.parseError)}}if(s.length>0)throw s[0]},"runThrowsErrors"),rx=(0,D.eW)(function(t){rp.initialize(t)},"initialize"),rb=(0,D.eW)(async function(t,e,r){D.cM.warn("mermaid.init is deprecated. Please use run instead."),t&&rx(t);let i={postRenderCallback:r,querySelector:".mermaid"};"string"==typeof e?i.querySelector=e:e&&(e instanceof HTMLElement?i.nodes=[e]:i.nodes=e),await ry(i)},"init"),rk=(0,D.eW)(async(t,{lazyLoad:e=!0}={})=>{eV(),(0,D.KO)(...t),!1===e&&await eG()},"registerExternalDiagrams"),rC=(0,D.eW)(function(){if(rB.startOnLoad){let{startOnLoad:t}=rp.getConfig();t&&rB.run().catch(t=>D.cM.error("Mermaid failed to initialize",t))}},"contentLoaded");"undefined"!=typeof document&&window.addEventListener("load",rC,!1);var rw=(0,D.eW)(function(t){rB.parseError=t},"setParseErrorHandler"),r_=[],rv=!1,rT=(0,D.eW)(async()=>{if(!rv){for(rv=!0;r_.length>0;){let t=r_.shift();if(t)try{await t()}catch(t){D.cM.error("Error executing queue",t)}}rv=!1}},"executeQueue"),rS=(0,D.eW)(async(t,e)=>new Promise((r,i)=>{let n=(0,D.eW)(()=>new Promise((n,a)=>{rp.parse(t,e).then(t=>{n(t),r(t)},t=>{D.cM.error("Error parsing",t),rB.parseError?.(t),a(t),i(t)})}),"performCall");r_.push(n),rT().catch(i)}),"parse"),rM=(0,D.eW)((t,e,r)=>new Promise((i,n)=>{let a=(0,D.eW)(()=>new Promise((a,o)=>{rp.render(t,e,r).then(t=>{a(t),i(t)},t=>{D.cM.error("Error parsing",t),rB.parseError?.(t),o(t),n(t)})}),"performCall");r_.push(a),rT().catch(n)}),"render"),rB={startOnLoad:!0,mermaidAPI:rp,parse:rS,render:rM,init:rb,run:ry,registerExternalDiagrams:rk,registerLayoutLoaders:A.jM,initialize:rx,parseError:void 0,contentLoaded:rC,setParseErrorHandler:rw,detectType:D.Vg,registerIconPacks:F.ef};async function rL(t){let{id:e,text:r,config:i}=t;rB.mermaidAPI.initialize(i);try{return await rB.render(e,r)}catch(t){throw document.querySelector(`#d${e}`)?.remove(),t}}let rA="container_lyt7";function rF(t){let{renderResult:e}=t,r=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let t=r.current;e.bindFunctions?.(t)},[e]),(0,i.jsx)("div",{ref:r,className:`docusaurus-mermaid-container ${rA}`,dangerouslySetInnerHTML:{__html:e.svg}})}function r$(t){let{value:e}=t,r=function(t){let{text:e,config:r}=t,[i,a]=(0,n.useState)(null),o=(0,n.useRef)(`mermaid-svg-${Math.round(1e7*Math.random())}`).current,s=function(){let{colorMode:t}=(0,B.I)(),e=(0,M.L)().mermaid,r=e.theme[t],{options:i}=e;return(0,n.useMemo)(()=>({startOnLoad:!1,...i,theme:r}),[r,i])}(),l=r??s;return(0,n.useEffect)(()=>{rL({id:o,text:e,config:l}).then(a).catch(t=>{a(()=>{throw t})})},[o,e,l]),i}({text:e});return null===r?null:(0,i.jsx)(rF,{renderResult:r})}let rW={Head:o.Z,details:b,Details:b,code:function(t){var e;return void 0!==(e=t).children&&n.Children.toArray(e.children).every(t=>"string"==typeof t&&!t.includes("\n"))?(0,i.jsx)(l,{...t}):(0,i.jsx)(s.Z,{...t})},a:function(t){return(0,i.jsx)(h.Z,{...t})},pre:function(t){return(0,i.jsx)(i.Fragment,{children:t.children})},ul:function(t){return(0,i.jsx)("ul",{...t,className:function(t){if(void 0!==t)return(0,c.Z)(t,t?.includes("contains-task-list")&&w.containsTaskList)}(t.className)})},li:function(t){return(0,u.Z)().collectAnchor(t.id),(0,i.jsx)("li",{...t})},img:function(t){var e;return(0,i.jsx)("img",{decoding:"async",loading:"lazy",...t,className:(e=t.className,(0,c.Z)(e,_))})},h1:t=>(0,i.jsx)(C,{as:"h1",...t}),h2:t=>(0,i.jsx)(C,{as:"h2",...t}),h3:t=>(0,i.jsx)(C,{as:"h3",...t}),h4:t=>(0,i.jsx)(C,{as:"h4",...t}),h5:t=>(0,i.jsx)(C,{as:"h5",...t}),h6:t=>(0,i.jsx)(C,{as:"h6",...t}),admonition:v.Z,mermaid:function(t){return(0,i.jsx)(T.Z,{fallback:t=>(0,i.jsx)(S.Ac,{...t}),children:(0,i.jsx)(r$,{...t})})}};function rE(t){let{children:e}=t;return(0,i.jsx)(a.Z,{components:rW,children:e})}},1397:function(t,e,r){"use strict";r.d(e,{Z:()=>s});var i=r("85893");r("67294");var n=r("67026"),a=r("76365");let o="tableOfContents_bqdL";function s(t){let{className:e,...r}=t;return(0,i.jsx)("div",{className:(0,n.Z)(o,"thin-scrollbar",e),children:(0,i.jsx)(a.Z,{...r,linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})})}},76365:function(t,e,r){"use strict";r.d(e,{Z:()=>h});var i=r("85893"),n=r("67294"),a=r("30140");function o(t){let e=t.getBoundingClientRect();return e.top===e.bottom?o(t.parentNode):e}var s=r("83012");let l=n.memo(function t(e){let{toc:r,className:n,linkClassName:a,isChild:o}=e;return r.length?(0,i.jsx)("ul",{className:o?void 0:n,children:r.map(e=>(0,i.jsxs)("li",{children:[(0,i.jsx)(s.Z,{to:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,i.jsx)(t,{isChild:!0,toc:e.children,className:n,linkClassName:a})]},e.id))}):null});function h(t){let{toc:e,className:r="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:h,minHeadingLevel:c,maxHeadingLevel:u,...d}=t,f=(0,a.L)(),p=c??f.tableOfContents.minHeadingLevel,g=u??f.tableOfContents.maxHeadingLevel,y=function(t){let{toc:e,minHeadingLevel:r,maxHeadingLevel:i}=t;return(0,n.useMemo)(()=>(function t(e){let{toc:r,minHeadingLevel:i,maxHeadingLevel:n}=e;return r.flatMap(e=>{var r;let a=t({toc:e.children,minHeadingLevel:i,maxHeadingLevel:n});return(r=e).level>=i&&r.level<=n?[{...e,children:a}]:a})})({toc:function(t){let e=t.map(t=>({...t,parentIndex:-1,children:[]})),r=Array(7).fill(-1);e.forEach((t,e)=>{let i=r.slice(2,t.level);t.parentIndex=Math.max(...i),r[t.level]=e});let i=[];return e.forEach(t=>{let{parentIndex:r,...n}=t;r>=0?e[r].children.push(n):i.push(n)}),i}(e),minHeadingLevel:r,maxHeadingLevel:i}),[e,r,i])}({toc:e,minHeadingLevel:p,maxHeadingLevel:g});return!function(t){let e=(0,n.useRef)(void 0),r=function(){let t=(0,n.useRef)(0),{navbar:{hideOnScroll:e}}=(0,a.L)();return(0,n.useEffect)(()=>{t.current=e?0:document.querySelector(".navbar").clientHeight},[e]),t}();(0,n.useEffect)(()=>{if(!t)return()=>{};let{linkClassName:i,linkActiveClassName:n,minHeadingLevel:a,maxHeadingLevel:s}=t;function l(){var t;let l=(t=i,Array.from(document.getElementsByClassName(t))),h=function(t,e){let{anchorTopOffset:r}=e,i=t.find(t=>o(t).top>=r);if(i){var n;return(n=o(i)).top>0&&n.bottom{var e;return h&&h.id===decodeURIComponent((e=t).href.substring(e.href.indexOf("#")+1))});l.forEach(t=>{var r;r=t,t===c?(e.current&&e.current!==r&&e.current.classList.remove(n),r.classList.add(n),e.current=r):r.classList.remove(n)})}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}},[t,r])}((0,n.useMemo)(()=>{if(s&&h)return{linkClassName:s,linkActiveClassName:h,minHeadingLevel:p,maxHeadingLevel:g}},[s,h,p,g])),(0,i.jsx)(l,{toc:y,className:r,linkClassName:s,...d})}},30202:function(t,e,r){"use strict";r.d(e,{T$:function(){return l},cI:function(){return o},eU:function(){return s},ht:function(){return h},xo:function(){return c}});var i=r(85893);r(67294);var n=r(96025),a=r(94819);function o(){return(0,i.jsx)(n.Z,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function s(){return(0,i.jsx)(n.Z,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function l(){return(0,i.jsx)(a.Z,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function h(){return(0,i.jsx)(n.Z,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function c(){return(0,i.jsx)(n.Z,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}},27818:function(t,e,r){"use strict";function i(t,e){let r;if(void 0===e)for(let e of t)null!=e&&(r=e)&&(r=e);else{let i=-1;for(let n of t)null!=(n=e(n,++i,t))&&(r=n)&&(r=n)}return r}function n(t,e){let r;if(void 0===e)for(let e of t)null!=e&&(r>e||void 0===r&&e>=e)&&(r=e);else{let i=-1;for(let n of t)null!=(n=e(n,++i,t))&&(r>n||void 0===r&&n>=n)&&(r=n)}return r}function a(t){return t}function o(t){return"translate("+t+",0)"}function s(t){return"translate(0,"+t+")"}r.d(e,{S1K:()=>rN,Zyz:()=>rY,Igq:()=>rQ,YDX:()=>rG,EFj:()=>rX,ve8:()=>n3,dCK:()=>af,zgE:()=>ay,fGX:()=>ax,$0Z:()=>n8,Dts:()=>n7,WQY:()=>ae,qpX:()=>ai,Nb1:()=>nV,LLu:()=>u,F5q:()=>c,u93:()=>an,tFB:()=>ao,YY7:()=>ah,OvA:()=>au,$m7:()=>ak,c_6:()=>nQ,fxm:()=>aw,FdL:()=>aA,ak_:()=>aF,SxZ:()=>aE,eA_:()=>aZ,jsv:()=>aN,JHv:()=>eJ,jvg:()=>n0,Fp7:()=>i,VV$:()=>n,tiA:()=>function t(){var e,r,i=e4().unknown(void 0),n=i.domain,a=i.range,o=0,s=1,l=!1,h=0,c=0,u=.5;function d(){var t=n().length,i=sfunction t(){var e,r,i=rm();return i.copy=function(){return ry(i,t())},e0.apply(i,arguments),r=(e=i).domain,e.ticks=function(t){var e=r();return function(t,e,r){if(e=+e,t=+t,!((r=+r)>0))return[];if(t===e)return[t];let i=e=n))return[];let s=a-n+1,l=Array(s);if(i){if(o<0)for(let t=0;t0;){if((n=rt(l,h,t))===i)return a[o]=l,a[s]=h,r(a);if(n>0)l=Math.floor(l/n)*n,h=Math.ceil(h/n)*n;else if(n<0)l=Math.ceil(l*n)/n,h=Math.floor(h*n)/n;else break;i=n}return e},e},PKp:()=>e4,K2I:()=>nw,rr1:()=>rP,iJ:()=>aO,Xf:()=>nC,Ys:()=>n_,i$Z:()=>th,y2j:()=>rK,WQD:()=>rj,U8T:()=>rO,Z_i:()=>rI,Ox9:()=>rV,F0B:()=>r9,LqH:()=>rJ});function l(){return!this.__axis}function h(t,e){var r=[],i=null,n=null,h=6,c=6,u=3,d="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,f=1===t||4===t?-1:1,p=4===t||2===t?"x":"y",g=1===t||3===t?o:s;function y(o){var s=null==i?e.ticks?e.ticks.apply(e,r):e.domain():i,y=null==n?e.tickFormat?e.tickFormat.apply(e,r):a:n,m=Math.max(h,0)+u,x=e.range(),b=+x[0]+d,k=+x[x.length-1]+d,C=(e.bandwidth?function(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}:function(t){return e=>+t(e)})(e.copy(),d),w=o.selection?o.selection():o,_=w.selectAll(".domain").data([null]),v=w.selectAll(".tick").data(s,e).order(),T=v.exit(),S=v.enter().append("g").attr("class","tick"),M=v.select("line"),B=v.select("text");_=_.merge(_.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),v=v.merge(S),M=M.merge(S.append("line").attr("stroke","currentColor").attr(p+"2",f*h)),B=B.merge(S.append("text").attr("fill","currentColor").attr(p,f*m).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),o!==w&&(_=_.transition(o),v=v.transition(o),M=M.transition(o),B=B.transition(o),T=T.transition(o).attr("opacity",1e-6).attr("transform",function(t){return isFinite(t=C(t))?g(t+d):this.getAttribute("transform")}),S.attr("opacity",1e-6).attr("transform",function(t){var e=this.parentNode.__axis;return g((e&&isFinite(e=e(t))?e:C(t))+d)})),T.remove(),_.attr("d",4===t||2===t?c?"M"+f*c+","+b+"H"+d+"V"+k+"H"+f*c:"M"+d+","+b+"V"+k:c?"M"+b+","+f*c+"V"+d+"H"+k+"V"+f*c:"M"+b+","+d+"H"+k),v.attr("opacity",1).attr("transform",function(t){return g(C(t)+d)}),M.attr(p+"2",f*h),B.attr(p,f*m).text(y),w.filter(l).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),w.each(function(){this.__axis=C})}return y.scale=function(t){return arguments.length?(e=t,y):e},y.ticks=function(){return r=Array.from(arguments),y},y.tickArguments=function(t){return arguments.length?(r=null==t?[]:Array.from(t),y):r.slice()},y.tickValues=function(t){return arguments.length?(i=null==t?null:Array.from(t),y):i&&i.slice()},y.tickFormat=function(t){return arguments.length?(n=t,y):n},y.tickSize=function(t){return arguments.length?(h=c=+t,y):h},y.tickSizeInner=function(t){return arguments.length?(h=+t,y):h},y.tickSizeOuter=function(t){return arguments.length?(c=+t,y):c},y.tickPadding=function(t){return arguments.length?(u=+t,y):u},y.offset=function(t){return arguments.length?(d=+t,y):d},y}function c(t){return h(1,t)}function u(t){return h(3,t)}function d(){}function f(t){return null==t?d:function(){return this.querySelector(t)}}function p(){return[]}function g(t){return null==t?p:function(){return this.querySelectorAll(t)}}function y(t){return function(){return this.matches(t)}}function m(t){return function(e){return e.matches(t)}}var x=Array.prototype.find;function b(){return this.firstElementChild}var k=Array.prototype.filter;function C(){return Array.from(this.children)}function w(t){return Array(t.length)}function _(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}_.prototype={constructor:_,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function v(t,e,r,i,n,a){for(var o,s=0,l=e.length,h=a.length;se?1:t>=e?0:NaN}var B="http://www.w3.org/1999/xhtml";let L={svg:"http://www.w3.org/2000/svg",xhtml:B,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function A(t){var e=t+="",r=e.indexOf(":");return r>=0&&"xmlns"!==(e=t.slice(0,r))&&(t=t.slice(r+1)),L.hasOwnProperty(e)?{space:L[e],local:t}:t}function F(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function $(t,e){return t.style.getPropertyValue(e)||F(t).getComputedStyle(t,null).getPropertyValue(e)}function W(t){return t.trim().split(/^|\s+/)}function E(t){return t.classList||new D(t)}function D(t){this._node=t,this._names=W(t.getAttribute("class")||"")}function Z(t,e){for(var r=E(t),i=-1,n=e.length;++ithis._names.indexOf(t)&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function N(){this.textContent=""}function I(){this.innerHTML=""}function z(){this.nextSibling&&this.parentNode.appendChild(this)}function j(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function R(t){var e=A(t);return(e.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===B&&e.documentElement.namespaceURI===B?e.createElement(t):e.createElementNS(r,t)}})(e)}function P(){return null}function q(){var t=this.parentNode;t&&t.removeChild(this)}function H(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function U(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Y(t){return function(){var e=this.__on;if(e){for(var r,i=0,n=-1,a=e.length;i=C&&(C=k+1);!(b=y[C])&&++C=0;)(i=n[a])&&(o&&4^i.compareDocumentPosition(o)&&o.parentNode.insertBefore(i,o),o=i);return this},sort:function(t){function e(e,r){return e&&r?t(e.__data__,r.__data__):!e-!r}!t&&(t=M);for(var r=this._groups,i=r.length,n=Array(i),a=0;a1?this.each((null==e?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof e?function(t,e,r){return function(){var i=e.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,r)}}:function(t,e,r){return function(){this.style.setProperty(t,e,r)}})(t,e,null==r?"":r)):$(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?function(t){return function(){delete this[t]}}:"function"==typeof e?function(t,e){return function(){var r=e.apply(this,arguments);null==r?delete this[t]:this[t]=r}}:function(t,e){return function(){this[t]=e}})(t,e)):this.node()[t]},classed:function(t,e){var r=W(t+"");if(arguments.length<2){for(var i=E(this.node()),n=-1,a=r.length;++n=0&&(e=t.slice(r+1),t=t.slice(0,r)),{type:t,name:e}}),o=a.length;if(arguments.length<2){var s=this.node().__on;if(s){for(var l,h=0,c=s.length;h{}};function tt(){for(var t,e=0,r=arguments.length,i={};e=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!i.hasOwnProperty(t))throw Error("unknown type: "+t);return{type:t,name:e}})),s=-1,l=o.length;if(arguments.length<2){for(;++s0)for(var r,i,n=Array(r),a=0;a=0&&e._call.call(void 0,t),e=e._next;--tg}()}finally{tg=0,function(){for(var t,e,r=tf,i=1/0;r;)r._call?(i>r._time&&(i=r._time),t=r,r=r._next):(e=r._next,r._next=null,r=t?t._next=e:tf=e);tp=t,tL(i)}(),tb=0}}function tB(){var t=tC.now(),e=t-tx;e>1e3&&(tk-=e,tx=t)}function tL(t){!tg&&(ty&&(ty=clearTimeout(ty)),t-tb>24?(t<1/0&&(ty=setTimeout(tM,t-tC.now()-tk)),tm&&(tm=clearInterval(tm))):(!tm&&(tx=tC.now(),tm=setInterval(tB,1e3)),tg=1,tw(tM)))}function tA(t,e,r){var i=new tT;return e=null==e?0:+e,i.restart(r=>{i.stop(),t(r+e)},e,r),i}var tF=tt("start","end","cancel","interrupt"),t$=[];function tW(t,e,r,i,n,a){var o=t.__transition;if(o){if(r in o)return}else t.__transition={};(function(t,e,r){var i,n=t.__transition;n[e]=r,r.timer=tS(function(t){r.state=1,r.timer.restart(a,r.delay,r.time),r.delay<=t&&a(t-r.delay)},0,r.time);function a(l){var h,c,u,d;if(1!==r.state)return s();for(h in n)if((d=n[h]).name===r.name){if(3===d.state)return tA(a);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete n[h]):+h0)throw Error("too late; already scheduled");return r}function tD(t,e){var r=tZ(t,e);if(r.state>3)throw Error("too late; already running");return r}function tZ(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw Error("transition not found");return r}function tO(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}var tN=180/Math.PI,tI={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function tz(t,e,r,i,n,a){var o,s,l;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(l=t*r+e*i)&&(r-=t*l,i-=e*l),(s=Math.sqrt(r*r+i*i))&&(r/=s,i/=s,l/=s),t*i180?l+=360:l-s>180&&(s+=360),c.push({i:h.push(n(h)+"rotate(",null,i)-2,x:tO(s,l)})):l&&h.push(n(h)+"rotate("+l+i),u=a.skewX,d=o.skewX,f=g,p=y,u!==d?p.push({i:f.push(n(f)+"skewX(",null,i)-2,x:tO(u,d)}):d&&f.push(n(f)+"skewX("+d+i),!function(t,e,r,i,a,o){if(t!==r||e!==i){var s=a.push(n(a)+"scale(",null,",",null,")");o.push({i:s-4,x:tO(t,r)},{i:s-2,x:tO(e,i)})}else(1!==r||1!==i)&&a.push(n(a)+"scale("+r+","+i+")")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,g,y),a=o=null,function(t){for(var e,r=-1,i=y.length;++r>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?et(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?et(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=tJ.exec(t))?new ei(e[1],e[2],e[3],1):(e=t0.exec(t))?new ei(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=t1.exec(t))?et(e[1],e[2],e[3],e[4]):(e=t2.exec(t))?et(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=t3.exec(t))?eh(e[1],e[2]/100,e[3]/100,1):(e=t5.exec(t))?eh(e[1],e[2]/100,e[3]/100,e[4]):t4.hasOwnProperty(t)?t7(t4[t]):"transparent"===t?new ei(NaN,NaN,NaN,0):null}function t7(t){return new ei(t>>16&255,t>>8&255,255&t,1)}function et(t,e,r,i){return i<=0&&(t=e=r=NaN),new ei(t,e,r,i)}function ee(t){return(!(t instanceof tY)&&(t=t9(t)),t)?new ei((t=t.rgb()).r,t.g,t.b,t.opacity):new ei}function er(t,e,r,i){return 1==arguments.length?ee(t):new ei(t,e,r,null==i?1:i)}function ei(t,e,r,i){this.r=+t,this.g=+e,this.b=+r,this.opacity=+i}function en(){return`#${el(this.r)}${el(this.g)}${el(this.b)}`}tH(ei,er,tU(tY,{brighter(t){return t=null==t?tV:Math.pow(tV,t),new ei(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new ei(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ei(es(this.r),es(this.g),es(this.b),eo(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:en,formatHex:en,formatHex8:function(){return`#${el(this.r)}${el(this.g)}${el(this.b)}${el((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:ea,toString:ea}));function ea(){let t=eo(this.opacity);return`${1===t?"rgb(":"rgba("}${es(this.r)}, ${es(this.g)}, ${es(this.b)}${1===t?")":`, ${t})`}`}function eo(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function es(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function el(t){return((t=es(t))<16?"0":"")+t.toString(16)}function eh(t,e,r,i){return i<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new eu(t,e,r,i)}function ec(t){if(t instanceof eu)return new eu(t.h,t.s,t.l,t.opacity);if(!(t instanceof tY)&&(t=t9(t)),!t)return new eu;if(t instanceof eu)return t;var e=(t=t.rgb()).r/255,r=t.g/255,i=t.b/255,n=Math.min(e,r,i),a=Math.max(e,r,i),o=NaN,s=a-n,l=(a+n)/2;return s?(o=e===a?(r-i)/s+(r0&&l<1?0:o,new eu(o,s,l,t.opacity)}function eu(t,e,r,i){this.h=+t,this.s=+e,this.l=+r,this.opacity=+i}function ed(t){return(t=(t||0)%360)<0?t+360:t}function ef(t){return Math.max(0,Math.min(1,t||0))}function ep(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}function eg(t,e,r,i,n){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*r+(1+3*t+3*a-3*o)*i+o*n)/6}tH(eu,function(t,e,r,i){return 1==arguments.length?ec(t):new eu(t,e,r,null==i?1:i)},tU(tY,{brighter(t){return t=null==t?tV:Math.pow(tV,t),new eu(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new eu(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,i=r+(r<.5?r:1-r)*e,n=2*r-i;return new ei(ep(t>=240?t-240:t+120,n,i),ep(t,n,i),ep(t<120?t+240:t-120,n,i),this.opacity)},clamp(){return new eu(ed(this.h),ef(this.s),ef(this.l),eo(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=eo(this.opacity);return`${1===t?"hsl(":"hsla("}${ed(this.h)}, ${100*ef(this.s)}%, ${100*ef(this.l)}%${1===t?")":`, ${t})`}`}}));let ey=t=>()=>t;function em(t,e){return function(r){return t+r*e}}function ex(t,e){var r=e-t;return r?em(t,r):ey(isNaN(t)?e:t)}let eb=function t(e){var r,i=1==(r=+(r=e))?ex:function(t,e){var i,n,a;return e-t?(i=t,n=e,i=Math.pow(i,a=r),n=Math.pow(n,a)-i,a=1/a,function(t){return Math.pow(i+t*n,a)}):ey(isNaN(t)?e:t)};function n(t,e){var r=i((t=er(t)).r,(e=er(e)).r),n=i(t.g,e.g),a=i(t.b,e.b),o=ex(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=n(e),t.b=a(e),t.opacity=o(e),t+""}}return n.gamma=t,n}(1);function ek(t){return function(e){var r,i,n=e.length,a=Array(n),o=Array(n),s=Array(n);for(r=0;r=1?(r=1,e-1):Math.floor(r*e),n=t[i],a=t[i+1],o=i>0?t[i-1]:2*n-a,s=is&&(o=e.slice(s,o),h[l]?h[l]+=o:h[++l]=o),(n=n[0])===(a=a[0])?h[l]?h[l]+=a:h[++l]=a:(h[++l]=null,c.push({i:l,x:tO(n,a)})),s=ew.lastIndex;return s=0&&(t=t.slice(0,e)),!t||"start"===t})?tE:tD;return function(){var o=a(this,t),s=o.on;s!==i&&(n=(i=s).copy()).on(e,r),o.on=n}}(r,t,e))},attr:function(t,e){var r=A(t),i="transform"===r?tP:ev;return this.attrTween(t,"function"==typeof e?(r.local?function(t,e,r){var i,n,a;return function(){var o,s,l=r(this);return null==l?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local),o===(s=l+"")?null:o===i&&s===n?a:(n=s,a=e(i=o,l)))}}:function(t,e,r){var i,n,a;return function(){var o,s,l=r(this);return null==l?void this.removeAttribute(t):(o=this.getAttribute(t),o===(s=l+"")?null:o===i&&s===n?a:(n=s,a=e(i=o,l)))}})(r,i,tq(this,"attr."+t,e)):null==e?(r.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(r):(r.local?function(t,e,r){var i,n,a=r+"";return function(){var o=this.getAttributeNS(t.space,t.local);return o===a?null:o===i?n:n=e(i=o,r)}}:function(t,e,r){var i,n,a=r+"";return function(){var o=this.getAttribute(t);return o===a?null:o===i?n:n=e(i=o,r)}})(r,i,e))},attrTween:function(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw Error();var i=A(t);return this.tween(r,(i.local?function(t,e){var r,i;function n(){var n,a,o=e.apply(this,arguments);if(o!==i){;r=(i=o)&&(n=t,a=o,function(t){this.setAttributeNS(n.space,n.local,a.call(this,t))})}return r}return n._value=e,n}:function(t,e){var r,i;function n(){var n,a,o=e.apply(this,arguments);if(o!==i){;r=(i=o)&&(n=t,a=o,function(t){this.setAttribute(n,a.call(this,t))})}return r}return n._value=e,n})(i,e))},style:function(t,e,r){var i,n,a,o,s,l,h,c,u,d,f,p,g,y,m,x,b,k,C,w,_,v,T,S,M,B="transform"==(t+="")?tR:ev;return null==e?this.styleTween(t,(i=t,n=B,function(){var t=$(this,i),e=(this.style.removeProperty(i),$(this,i));return t===e?null:t===a&&e===o?s:s=n(a=t,o=e)})).on("end.style."+t,eS(t)):"function"==typeof e?this.styleTween(t,(l=t,h=B,c=tq(this,"style."+t,e),function(){var t=$(this,l),e=c(this),r=e+"";return null==e&&(this.style.removeProperty(l),r=e=$(this,l)),t===r?null:t===u&&r===d?f:(d=r,f=h(u=t,e))})).each((p=this._id,C="end."+(k="style."+(g=t)),function(){var t=tD(this,p),e=t.on,r=null==t.value[k]?b||(b=eS(g)):void 0;(e!==y||x!==r)&&(m=(y=e).copy()).on(C,x=r),t.on=m})):this.styleTween(t,(w=t,_=B,M=(v=e)+"",function(){var t=$(this,w);return t===M?null:t===T?S:S=_(T=t,v)}),r).on("end.style."+t,null)},styleTween:function(t,e,r){var i="style."+(t+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==e)return this.tween(i,null);if("function"!=typeof e)throw Error();return this.tween(i,function(t,e,r){var i,n;function a(){var a,o,s,l=e.apply(this,arguments);if(l!==n){;i=(n=l)&&(a=t,o=l,s=r,function(t){this.style.setProperty(a,o.call(this,t),s)})}return i}return a._value=e,a}(t,e,null==r?"":r))},text:function(t){var e,r;return this.tween("text","function"==typeof t?(e=tq(this,"text",t),function(){var t=e(this);this.textContent=null==t?"":t}):(r=null==t?"":t+"",function(){this.textContent=r}))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw Error();return this.tween(e,function(t){var e,r;function i(){var i,n=t.apply(this,arguments);if(n!==r){;e=(r=n)&&(i=n,function(t){this.textContent=i.call(this,t)})}return e}return i._value=t,i}(t))},remove:function(){var t;return this.on("end.remove",(t=this._id,function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}))},tween:function(t,e){var r=this._id;if(t+="",arguments.length<2){for(var i,n=tZ(this.node(),r).tween,a=0,o=n.length;a2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete a[n]}o&&delete t.__transition}}(this,t)})},K.prototype.transition=function(t){var e,r;t instanceof eB?(e=t._id,t=t._name):(e=++eM,(r=eF).time=t_(),t=null==t?null:t+"");for(var i=this._groups,n=i.length,a=0;aeR?Math.pow(t,1/3):t/ej+eI}function eU(t){return t>ez?t*t*t:ej*(t-eI)}function eY(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function eV(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}tH(eq,function(t,e,r,i){return 1==arguments.length?eP(t):new eq(t,e,r,null==i?1:i)},tU(tY,{brighter(t){return new eq(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker(t){return new eq(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return e=.96422*eU(e),t=1*eU(t),new ei(eY(3.1338561*e-1.6168667*t-.4906146*(r=.82521*eU(r))),eY(-.9787684*e+1.9161415*t+.033454*r),eY(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));function eG(t,e,r,i){return 1==arguments.length?function(t){if(t instanceof eX)return new eX(t.h,t.c,t.l,t.opacity);if(!(t instanceof eq)&&(t=eP(t)),0===t.a&&0===t.b)return new eX(NaN,0180||r<-180?r-360*Math.round(r/360):r):ey(isNaN(t)?e:t)});eK(ex);function e0(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}class e1 extends Map{constructor(t,e=e3){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(let[e,r]of t)this.set(e,r)}get(t){return super.get(e2(this,t))}has(t){return super.has(e2(this,t))}set(t,e){return super.set(function({_intern:t,_key:e},r){let i=e(r);return t.has(i)?t.get(i):(t.set(i,r),r)}(this,t),e)}delete(t){return super.delete(function({_intern:t,_key:e},r){let i=e(r);return t.has(i)&&(r=t.get(i),t.delete(i)),r}(this,t))}}function e2({_intern:t,_key:e},r){let i=e(r);return t.has(i)?t.get(i):r}function e3(t){return null!==t&&"object"==typeof t?t.valueOf():t}let e5=Symbol("implicit");function e4(){var t=new e1,e=[],r=[],i=e5;function n(n){let a=t.get(n);if(void 0===a){if(i!==e5)return i;t.set(n,a=e.push(n)-1)}return r[a%r.length]}return n.domain=function(r){if(!arguments.length)return e.slice();for(let i of(e=[],t=new e1,r))!t.has(i)&&t.set(i,e.push(i)-1);return n},n.range=function(t){return arguments.length?(r=Array.from(t),n):r.slice()},n.unknown=function(t){return arguments.length?(i=t,n):i},n.copy=function(){return e4(e,r).unknown(i)},e0.apply(n,arguments),n}let e6=Math.sqrt(50),e8=Math.sqrt(10),e9=Math.sqrt(2);function e7(t,e,r){let i,n,a;let o=(e-t)/Math.max(0,r),s=Math.floor(Math.log10(o)),l=o/Math.pow(10,s),h=l>=e6?10:l>=e8?5:l>=e9?2:1;return(s<0?(i=Math.round(t*(a=Math.pow(10,-s)/h)),n=Math.round(e*a),i/ae&&--n,a=-a):(i=Math.round(t/(a=Math.pow(10,s)*h)),n=Math.round(e/a),i*ae&&--n),ne?1:t>=e?0:NaN}function ri(t,e){return null==t||null==e?NaN:et?1:e>=t?0:NaN}function rn(t){let e,r,i;function n(t,i,a=0,o=t.length){if(a>>1;0>r(t[e],i)?a=e+1:o=e}while(arr(t(e),r),i=(e,r)=>t(e)-r):(e=t===rr||t===ri?t:ra,r=t,i=t),{left:n,center:function(t,e,r=0,a=t.length){let o=n(t,e,r,a-1);return o>r&&i(t[o-1],e)>-i(t[o],e)?o-1:o},right:function(t,i,n=0,a=t.length){if(n>>1;0>=r(t[e],i)?n=e+1:a=e}while(ne&&(r=t,t=e,e=r),h=function(r){return Math.max(t,Math.min(e,r))}}return i=l>2?rg:rp,n=a=null,u}function u(e){return null==e||isNaN(e=+e)?r:(n||(n=i(o.map(t),s,l)))(t(h(e)))}return u.invert=function(r){return h(e((a||(a=i(s,o.map(t),tO)))(r)))},u.domain=function(t){return arguments.length?(o=Array.from(t,rc),c()):o.slice()},u.range=function(t){return arguments.length?(s=Array.from(t),c()):s.slice()},u.rangeRound=function(t){return s=Array.from(t),l=rh,c()},u.clamp=function(t){return arguments.length?(h=!!t||rd,c()):h!==rd},u.interpolate=function(t){return arguments.length?(l=t,c()):l},u.unknown=function(t){return arguments.length?(r=t,u):r},function(r,i){return t=r,e=i,c()}})()(rd,rd)}var rx=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function rb(t){var e;if(!(e=rx.exec(t)))throw Error("invalid format: "+t);return new rk({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function rk(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}rb.prototype=rk.prototype,rk.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};function rC(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,i=t.slice(0,r);return[i.length>1?i[0]+i.slice(2):i,+t.slice(r+1)]}function rw(t){return(t=rC(Math.abs(t)))?t[1]:NaN}function r_(t,e){var r=rC(t,e);if(!r)return t+"";var i=r[0],n=r[1];return n<0?"0."+Array(-n).join("0")+i:i.length>n+1?i.slice(0,n+1)+"."+i.slice(n+1):i+Array(n-i.length+2).join("0")}let rv={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>r_(100*t,e),r:r_,s:function(t,e){var r=rC(t,e);if(!r)return t+"";var i=r[0],n=r[1],a=n-(tn=3*Math.max(-8,Math.min(8,Math.floor(n/3))))+1,o=i.length;return a===o?i:a>o?i+Array(a-o+1).join("0"):a>0?i.slice(0,a)+"."+i.slice(a):"0."+Array(1-a).join("0")+rC(t,Math.max(0,e+a-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function rT(t){return t}var rS=Array.prototype.map,rM=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];(function(t){to=(ta=function(t){var e,r,i,n=void 0===t.grouping||void 0===t.thousands?rT:(e=rS.call(t.grouping,Number),r=t.thousands+"",function(t,i){for(var n=t.length,a=[],o=0,s=e[0],l=0;n>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),a.push(t.substring(n-=s,n+s)),!((l+=s+1)>i));){;s=e[o=(o+1)%e.length]}return a.reverse().join(r)}),a=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",s=void 0===t.decimal?".":t.decimal+"",l=void 0===t.numerals?rT:(i=rS.call(t.numerals,String),function(t){return t.replace(/[0-9]/g,function(t){return i[+t]})}),h=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"\u2212":t.minus+"",u=void 0===t.nan?"NaN":t.nan+"";function d(t){var e=(t=rb(t)).fill,r=t.align,i=t.sign,d=t.symbol,f=t.zero,p=t.width,g=t.comma,y=t.precision,m=t.trim,x=t.type;"n"===x?(g=!0,x="g"):!rv[x]&&(void 0===y&&(y=12),m=!0,x="g"),(f||"0"===e&&"="===r)&&(f=!0,e="0",r="=");var b="$"===d?a:"#"===d&&/[boxX]/.test(x)?"0"+x.toLowerCase():"",k="$"===d?o:/[%p]/.test(x)?h:"",C=rv[x],w=/[defgprs%]/.test(x);function _(t){var a,o,h,d=b,_=k;if("c"===x)_=C(t)+_,t="";else{var v=(t=+t)<0||1/t<0;if(t=isNaN(t)?u:C(Math.abs(t),y),m&&(t=function(t){t:for(var e,r=t.length,i=1,n=-1;i0&&(n=0)}return n>0?t.slice(0,n)+t.slice(e+1):t}(t)),v&&0==+t&&"+"!==i&&(v=!1),d=(v?"("===i?i:c:"-"===i||"("===i?"":i)+d,_=("s"===x?rM[8+tn/3]:"")+_+(v&&"("===i?")":""),w){for(a=-1,o=t.length;++a(h=t.charCodeAt(a))||h>57){_=(46===h?s+t.slice(a+1):t.slice(a))+_,t=t.slice(0,a);break}}}g&&!f&&(t=n(t,1/0));var T=d.length+t.length+_.length,S=T>1)+d+t+_+S.slice(T);break;default:t=S+d+t+_}return l(t)}return y=void 0===y?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),_.toString=function(){return t+""},_}return{format:d,formatPrefix:function(t,e){var r=d(((t=rb(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(rw(e)/3))),n=Math.pow(10,-i),a=rM[8+i/3];return function(t){return r(n*t)+a}}}}(t)).format,ts=ta.formatPrefix})({thousands:",",grouping:[3],currency:["$",""]});let rB=6e4,rL=36e5,rA=864e5,rF=6048e5,r$=2592e6,rW=31536e6,rE=new Date,rD=new Date;function rZ(t,e,r,i){function n(e){return t(e=0==arguments.length?new Date:new Date(+e)),e}return n.floor=e=>(t(e=new Date(+e)),e),n.ceil=r=>(t(r=new Date(r-1)),e(r,1),t(r),r),n.round=t=>{let e=n(t),r=n.ceil(t);return t-e(e(t=new Date(+t),null==r?1:Math.floor(r)),t),n.range=(r,i,a)=>{let o;let s=[];if(r=n.ceil(r),a=null==a?1:Math.floor(a),!(r0))return s;do s.push(o=new Date(+r)),e(r,a),t(r);while(orZ(e=>{if(e>=e)for(;t(e),!r(e);)e.setTime(e-1)},(t,i)=>{if(t>=t){if(i<0)for(;++i<=0;)for(;e(t,-1),!r(t););else for(;--i>=0;)for(;e(t,1),!r(t););}}),r&&(n.count=(e,i)=>(rE.setTime(+e),rD.setTime(+i),t(rE),t(rD),Math.floor(r(rE,rD))),n.every=t=>isFinite(t=Math.floor(t))&&t>0?t>1?n.filter(i?e=>i(e)%t==0:e=>n.count(0,e)%t==0):n:null),n}let rO=rZ(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);rO.every=t=>isFinite(t=Math.floor(t))&&t>0?t>1?rZ(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):rO:null,rO.range;let rN=rZ(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+1e3*e)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds());rN.range;let rI=rZ(t=>{t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())},(t,e)=>{t.setTime(+t+e*rB)},(t,e)=>(e-t)/rB,t=>t.getMinutes());rI.range;let rz=rZ(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*rB)},(t,e)=>(e-t)/rB,t=>t.getUTCMinutes());rz.range;let rj=rZ(t=>{t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-t.getMinutes()*rB)},(t,e)=>{t.setTime(+t+e*rL)},(t,e)=>(e-t)/rL,t=>t.getHours());rj.range;let rR=rZ(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*rL)},(t,e)=>(e-t)/rL,t=>t.getUTCHours());rR.range;let rP=rZ(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*rB)/rA,t=>t.getDate()-1);rP.range;let rq=rZ(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/rA,t=>t.getUTCDate()-1);rq.range;let rH=rZ(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/rA,t=>Math.floor(t/rA));function rU(t){return rZ(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(t,e)=>{t.setDate(t.getDate()+7*e)},(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*rB)/rF)}rH.range;let rY=rU(0),rV=rU(1),rG=rU(2),rX=rU(3),rQ=rU(4),rK=rU(5),rJ=rU(6);function r0(t){return rZ(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+7*e)},(t,e)=>(e-t)/rF)}rY.range,rV.range,rG.range,rX.range,rQ.range,rK.range,rJ.range;let r1=r0(0),r2=r0(1),r3=r0(2),r5=r0(3),r4=r0(4),r6=r0(5),r8=r0(6);r1.range,r2.range,r3.range,r5.range,r4.range,r6.range,r8.range;let r9=rZ(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());r9.range;let r7=rZ(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());r7.range;let it=rZ(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());it.every=t=>isFinite(t=Math.floor(t))&&t>0?rZ(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)}):null,it.range;let ie=rZ(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());function ir(t,e,r,i,n,a){let o=[[rN,1,1e3],[rN,5,5e3],[rN,15,15e3],[rN,30,3e4],[a,1,rB],[a,5,5*rB],[a,15,15*rB],[a,30,30*rB],[n,1,rL],[n,3,3*rL],[n,6,6*rL],[n,12,12*rL],[i,1,rA],[i,2,2*rA],[r,1,rF],[e,1,r$],[e,3,3*r$],[t,1,rW]];function s(e,r,i){let n=Math.abs(r-e)/i,a=rn(([,,t])=>t).right(o,n);if(a===o.length)return t.every(re(e/rW,r/rW,i));if(0===a)return rO.every(Math.max(re(e,r,i),1));let[s,l]=o[n/o[a-1][2]isFinite(t=Math.floor(t))&&t>0?rZ(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)}):null,ie.range;let[ii,ia]=ir(ie,r7,r1,rH,rR,rz),[io,is]=ir(it,r9,rY,rP,rj,rI);function il(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function ih(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function ic(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}var iu={"-":"",_:" ",0:"0"},id=/^\s*\d+/,ip=/^%/,ig=/[\\^$*+?|[\]().{}]/g;function iy(t,e,r){var i=t<0?"-":"",n=(i?-t:t)+"",a=n.length;return i+(a[t.toLowerCase(),e]))}function ik(t,e,r){var i=id.exec(e.slice(r,r+1));return i?(t.w=+i[0],r+i[0].length):-1}function iC(t,e,r){var i=id.exec(e.slice(r,r+1));return i?(t.u=+i[0],r+i[0].length):-1}function iw(t,e,r){var i=id.exec(e.slice(r,r+2));return i?(t.U=+i[0],r+i[0].length):-1}function i_(t,e,r){var i=id.exec(e.slice(r,r+2));return i?(t.V=+i[0],r+i[0].length):-1}function iv(t,e,r){var i=id.exec(e.slice(r,r+2));return i?(t.W=+i[0],r+i[0].length):-1}function iT(t,e,r){var i=id.exec(e.slice(r,r+4));return i?(t.y=+i[0],r+i[0].length):-1}function iS(t,e,r){var i=id.exec(e.slice(r,r+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),r+i[0].length):-1}function iM(t,e,r){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),r+i[0].length):-1}function iB(t,e,r){var i=id.exec(e.slice(r,r+1));return i?(t.q=3*i[0]-3,r+i[0].length):-1}function iL(t,e,r){var i=id.exec(e.slice(r,r+2));return i?(t.m=i[0]-1,r+i[0].length):-1}function iA(t,e,r){var i=id.exec(e.slice(r,r+2));return i?(t.d=+i[0],r+i[0].length):-1}function iF(t,e,r){var i=id.exec(e.slice(r,r+3));return i?(t.m=0,t.d=+i[0],r+i[0].length):-1}function i$(t,e,r){var i=id.exec(e.slice(r,r+2));return i?(t.H=+i[0],r+i[0].length):-1}function iW(t,e,r){var i=id.exec(e.slice(r,r+2));return i?(t.M=+i[0],r+i[0].length):-1}function iE(t,e,r){var i=id.exec(e.slice(r,r+2));return i?(t.S=+i[0],r+i[0].length):-1}function iD(t,e,r){var i=id.exec(e.slice(r,r+3));return i?(t.L=+i[0],r+i[0].length):-1}function iZ(t,e,r){var i=id.exec(e.slice(r,r+6));return i?(t.L=Math.floor(i[0]/1e3),r+i[0].length):-1}function iO(t,e,r){var i=ip.exec(e.slice(r,r+1));return i?r+i[0].length:-1}function iN(t,e,r){var i=id.exec(e.slice(r));return i?(t.Q=+i[0],r+i[0].length):-1}function iI(t,e,r){var i=id.exec(e.slice(r));return i?(t.s=+i[0],r+i[0].length):-1}function iz(t,e){return iy(t.getDate(),e,2)}function ij(t,e){return iy(t.getHours(),e,2)}function iR(t,e){return iy(t.getHours()%12||12,e,2)}function iP(t,e){return iy(1+rP.count(it(t),t),e,3)}function iq(t,e){return iy(t.getMilliseconds(),e,3)}function iH(t,e){return iq(t,e)+"000"}function iU(t,e){return iy(t.getMonth()+1,e,2)}function iY(t,e){return iy(t.getMinutes(),e,2)}function iV(t,e){return iy(t.getSeconds(),e,2)}function iG(t){var e=t.getDay();return 0===e?7:e}function iX(t,e){return iy(rY.count(it(t)-1,t),e,2)}function iQ(t){var e=t.getDay();return e>=4||0===e?rQ(t):rQ.ceil(t)}function iK(t,e){return t=iQ(t),iy(rQ.count(it(t),t)+(4===it(t).getDay()),e,2)}function iJ(t){return t.getDay()}function i0(t,e){return iy(rV.count(it(t)-1,t),e,2)}function i1(t,e){return iy(t.getFullYear()%100,e,2)}function i2(t,e){return iy((t=iQ(t)).getFullYear()%100,e,2)}function i3(t,e){return iy(t.getFullYear()%1e4,e,4)}function i5(t,e){var r=t.getDay();return iy((t=r>=4||0===r?rQ(t):rQ.ceil(t)).getFullYear()%1e4,e,4)}function i4(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+iy(e/60|0,"0",2)+iy(e%60,"0",2)}function i6(t,e){return iy(t.getUTCDate(),e,2)}function i8(t,e){return iy(t.getUTCHours(),e,2)}function i9(t,e){return iy(t.getUTCHours()%12||12,e,2)}function i7(t,e){return iy(1+rq.count(ie(t),t),e,3)}function nt(t,e){return iy(t.getUTCMilliseconds(),e,3)}function ne(t,e){return nt(t,e)+"000"}function nr(t,e){return iy(t.getUTCMonth()+1,e,2)}function ni(t,e){return iy(t.getUTCMinutes(),e,2)}function nn(t,e){return iy(t.getUTCSeconds(),e,2)}function na(t){var e=t.getUTCDay();return 0===e?7:e}function no(t,e){return iy(r1.count(ie(t)-1,t),e,2)}function ns(t){var e=t.getUTCDay();return e>=4||0===e?r4(t):r4.ceil(t)}function nl(t,e){return t=ns(t),iy(r4.count(ie(t),t)+(4===ie(t).getUTCDay()),e,2)}function nh(t){return t.getUTCDay()}function nc(t,e){return iy(r2.count(ie(t)-1,t),e,2)}function nu(t,e){return iy(t.getUTCFullYear()%100,e,2)}function nd(t,e){return iy((t=ns(t)).getUTCFullYear()%100,e,2)}function nf(t,e){return iy(t.getUTCFullYear()%1e4,e,4)}function np(t,e){var r=t.getUTCDay();return iy((t=r>=4||0===r?r4(t):r4.ceil(t)).getUTCFullYear()%1e4,e,4)}function ng(){return"+0000"}function ny(){return"%"}function nm(t){return+t}function nx(t){return Math.floor(+t/1e3)}(function(t){th=(tl=function(t){var e=t.dateTime,r=t.date,i=t.time,n=t.periods,a=t.days,o=t.shortDays,s=t.months,l=t.shortMonths,h=ix(n),c=ib(n),u=ix(a),d=ib(a),f=ix(o),p=ib(o),g=ix(s),y=ib(s),m=ix(l),x=ib(l),b={a:function(t){return o[t.getDay()]},A:function(t){return a[t.getDay()]},b:function(t){return l[t.getMonth()]},B:function(t){return s[t.getMonth()]},c:null,d:iz,e:iz,f:iH,g:i2,G:i5,H:ij,I:iR,j:iP,L:iq,m:iU,M:iY,p:function(t){return n[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:nm,s:nx,S:iV,u:iG,U:iX,V:iK,w:iJ,W:i0,x:null,X:null,y:i1,Y:i3,Z:i4,"%":ny},k={a:function(t){return o[t.getUTCDay()]},A:function(t){return a[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:i6,e:i6,f:ne,g:nd,G:np,H:i8,I:i9,j:i7,L:nt,m:nr,M:ni,p:function(t){return n[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:nm,s:nx,S:nn,u:na,U:no,V:nl,w:nh,W:nc,x:null,X:null,y:nu,Y:nf,Z:ng,"%":ny},C={a:function(t,e,r){var i=f.exec(e.slice(r));return i?(t.w=p.get(i[0].toLowerCase()),r+i[0].length):-1},A:function(t,e,r){var i=u.exec(e.slice(r));return i?(t.w=d.get(i[0].toLowerCase()),r+i[0].length):-1},b:function(t,e,r){var i=m.exec(e.slice(r));return i?(t.m=x.get(i[0].toLowerCase()),r+i[0].length):-1},B:function(t,e,r){var i=g.exec(e.slice(r));return i?(t.m=y.get(i[0].toLowerCase()),r+i[0].length):-1},c:function(t,r,i){return v(t,e,r,i)},d:iA,e:iA,f:iZ,g:iS,G:iT,H:i$,I:i$,j:iF,L:iD,m:iL,M:iW,p:function(t,e,r){var i=h.exec(e.slice(r));return i?(t.p=c.get(i[0].toLowerCase()),r+i[0].length):-1},q:iB,Q:iN,s:iI,S:iE,u:iC,U:iw,V:i_,w:ik,W:iv,x:function(t,e,i){return v(t,r,e,i)},X:function(t,e,r){return v(t,i,e,r)},y:iS,Y:iT,Z:iM,"%":iO};function w(t,e){return function(r){var i,n,a,o=[],s=-1,l=0,h=t.length;for(!(r instanceof Date)&&(r=new Date(+r));++s53)return null;!("w"in a)&&(a.w=1),"Z"in a?(i=(n=(i=ih(ic(a.y,0,1))).getUTCDay())>4||0===n?r2.ceil(i):r2(i),i=rq.offset(i,(a.V-1)*7),a.y=i.getUTCFullYear(),a.m=i.getUTCMonth(),a.d=i.getUTCDate()+(a.w+6)%7):(i=(n=(i=il(ic(a.y,0,1))).getDay())>4||0===n?rV.ceil(i):rV(i),i=rP.offset(i,(a.V-1)*7),a.y=i.getFullYear(),a.m=i.getMonth(),a.d=i.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&(!("w"in a)&&(a.w="u"in a?a.u%7:"W"in a?1:0),n="Z"in a?ih(ic(a.y,0,1)).getUTCDay():il(ic(a.y,0,1)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(n+5)%7:a.w+7*a.U-(n+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,ih(a)):il(a)}}function v(t,e,r,i){for(var n,a,o=0,s=e.length,l=r.length;o=l)return -1;if(37===(n=e.charCodeAt(o++))){if(!(a=C[(n=e.charAt(o++))in iu?e.charAt(o++):n])||(i=a(t,r,i))<0)return -1}else if(n!=r.charCodeAt(i++))return -1}return i}return b.x=w(r,b),b.X=w(i,b),b.c=w(e,b),k.x=w(r,k),k.X=w(i,k),k.c=w(e,k),{format:function(t){var e=w(t+="",b);return e.toString=function(){return t},e},parse:function(t){var e=_(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=w(t+="",k);return e.toString=function(){return t},e},utcParse:function(t){var e=_(t+="",!0);return e.toString=function(){return t},e}}}(t)).format,tl.parse,tl.utcFormat,tl.utcParse})({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],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"]});function nb(t){return new Date(t)}function nk(t){return t instanceof Date?+t:+new Date(+t)}function nC(){return e0.apply((function t(e,r,i,n,a,o,s,l,h,c){var u=rm(),d=u.invert,f=u.domain,p=c(".%L"),g=c(":%S"),y=c("%I:%M"),m=c("%I %p"),x=c("%a %d"),b=c("%b %d"),k=c("%B"),C=c("%Y");function w(t){return(h(t)=1?nW:t<=-1?-nW:Math.asin(t)}let nZ=Math.PI,nO=2*nZ,nN=nO-1e-6;function nI(t){this._+=t[0];for(let e=1,r=t.length;e=0))throw Error(`invalid digits: ${t}`);if(e>15)return nI;let r=10**e;return function(t){this._+=t[0];for(let e=1,i=t.length;e1e-6){if(Math.abs(c*s-l*h)>1e-6&&n){let d=r-a,f=i-o,p=s*s+l*l,g=Math.sqrt(p),y=Math.sqrt(u),m=n*Math.tan((nZ-Math.acos((p+u-(d*d+f*f))/(2*g*y)))/2),x=m/y,b=m/g;Math.abs(x-1)>1e-6&&this._append`L${t+x*h},${e+x*c}`,this._append`A${n},${n},0,0,${+(c*d>h*f)},${this._x1=t+b*s},${this._y1=e+b*l}`}else this._append`L${this._x1=t},${this._y1=e}`}else;}arc(t,e,r,i,n,a){if(t=+t,e=+e,r=+r,a=!!a,r<0)throw Error(`negative radius: ${r}`);let o=r*Math.cos(i),s=r*Math.sin(i),l=t+o,h=e+s,c=1^a,u=a?i-n:n-i;null===this._x1?this._append`M${l},${h}`:(Math.abs(this._x1-l)>1e-6||Math.abs(this._y1-h)>1e-6)&&this._append`L${l},${h}`,r&&(u<0&&(u=u%nO+nO),u>nN?this._append`A${r},${r},0,1,${c},${t-o},${e-s}A${r},${r},0,1,${c},${this._x1=l},${this._y1=h}`:u>1e-6&&this._append`A${r},${r},0,${+(u>=nZ)},${c},${this._x1=t+r*Math.cos(n)},${this._y1=e+r*Math.sin(n)}`)}rect(t,e,r,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}}function nj(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(null==r)e=null;else{let t=Math.floor(r);if(!(t>=0))throw RangeError(`invalid digits: ${r}`);e=t}return t},()=>new nz(e)}function nR(t){return t.innerRadius}function nP(t){return t.outerRadius}function nq(t){return t.startAngle}function nH(t){return t.endAngle}function nU(t){return t&&t.padAngle}nz.prototype;function nY(t,e,r,i,n,a,o){var s=t-r,l=e-i,h=(o?a:-a)/nF(s*s+l*l),c=h*l,u=-h*s,d=t+c,f=e+u,p=r+c,g=i+u,y=(d+p)/2,m=(f+g)/2,x=p-d,b=g-f,k=x*x+b*b,C=n-a,w=d*g-p*f,_=(b<0?-1:1)*nF(nB(0,C*C*k-w*w)),v=(w*b-x*_)/k,T=(-w*x-b*_)/k,S=(w*b+x*_)/k,M=(-w*x+b*_)/k,B=v-y,L=T-m,A=S-y,F=M-m;return B*B+L*L>A*A+F*F&&(v=S,T=M),{cx:v,cy:T,x01:-c,y01:-u,x11:v*(n/C-1),y11:T*(n/C-1)}}function nV(){var t=nR,e=nP,r=nv(0),i=null,n=nq,a=nH,o=nU,s=null,l=nj(h);function h(){var h,c,u=+t.apply(this,arguments),d=+e.apply(this,arguments),f=n.apply(this,arguments)-nW,p=a.apply(this,arguments)-nW,g=nT(p-f),y=p>f;if(!s&&(s=h=l()),d1e-12){if(g>nE-1e-12)s.moveTo(d*nM(f),d*nA(f)),s.arc(0,0,d,f,p,!y),u>1e-12&&(s.moveTo(u*nM(p),u*nA(p)),s.arc(0,0,u,p,f,y));else{var m,x,b=f,k=p,C=f,w=p,_=g,v=g,T=o.apply(this,arguments)/2,S=T>1e-12&&(i?+i.apply(this,arguments):nF(u*u+d*d)),M=nL(nT(d-u)/2,+r.apply(this,arguments)),B=M,L=M;if(S>1e-12){var A=nD(S/u*nA(T)),F=nD(S/d*nA(T));(_-=2*A)>1e-12?(A*=y?1:-1,C+=A,w-=A):(_=0,C=w=(f+p)/2),(v-=2*F)>1e-12?(F*=y?1:-1,b+=F,k-=F):(v=0,b=k=(f+p)/2)}var $=d*nM(b),W=d*nA(b),E=u*nM(w),D=u*nA(w);if(M>1e-12){var Z,O=d*nM(k),N=d*nA(k),I=u*nM(C),z=u*nA(C);if(g1?0:j<-1?n$:Math.acos(j))/2),Y=nF(Z[0]*Z[0]+Z[1]*Z[1]);B=nL(M,(u-Y)/(U-1)),L=nL(M,(d-Y)/(U+1))}else B=L=0}}v>1e-12?L>1e-12?(m=nY(I,z,$,W,d,L,y),x=nY(O,N,E,D,d,L,y),s.moveTo(m.cx+m.x01,m.cy+m.y01),L1e-12&&_>1e-12?B>1e-12?(m=nY(E,D,O,N,u,-B,y),x=nY($,W,I,z,u,-B,y),s.lineTo(m.cx+m.x01,m.cy+m.y01),Bt?1:e>=t?0:NaN}function n2(t){return t}function n3(){var t=n2,e=n1,r=null,i=nv(0),n=nv(nE),a=nv(0);function o(o){var s,l,h,c,u,d=(o=nG(o)).length,f=0,p=Array(d),g=Array(d),y=+i.apply(this,arguments),m=Math.min(nE,Math.max(-nE,n.apply(this,arguments)-y)),x=Math.min(Math.abs(m)/d,a.apply(this,arguments)),b=x*(m<0?-1:1);for(s=0;s0&&(f+=u);for(null!=e?p.sort(function(t,r){return e(g[t],g[r])}):null!=r&&p.sort(function(t,e){return r(o[t],o[e])}),s=0,h=f?(m-d*b)/f:0;s0?u*h:0)+b,g[l]={data:o[l],index:s,value:u,startAngle:y,endAngle:c,padAngle:x};return g}return o.value=function(e){return arguments.length?(t="function"==typeof e?e:nv(+e),o):t},o.sortValues=function(t){return arguments.length?(e=t,r=null,o):e},o.sort=function(t){return arguments.length?(r=t,e=null,o):r},o.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:nv(+t),o):i},o.endAngle=function(t){return arguments.length?(n="function"==typeof t?t:nv(+t),o):n},o.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:nv(+t),o):a},o}function n5(){}function n4(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function n6(t){this._context=t}function n8(t){return new n6(t)}function n9(t){this._context=t}function n7(t){return new n9(t)}function at(t){this._context=t}function ae(t){return new at(t)}Array.prototype.slice,nX.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}},n6.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:n4(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:n4(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},n9.prototype={areaStart:n5,areaEnd:n5,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:n4(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},at.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,i):this._context.moveTo(r,i);break;case 3:this._point=4;default:n4(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};class ar{constructor(t,e){this._context=t,this._x=e}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,e,t,e):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+e)/2,t,this._y0,t,e)}this._x0=t,this._y0=e}}function ai(t){return new ar(t,!0)}function an(t){return new ar(t,!1)}function aa(t,e){this._basis=new n6(t),this._beta=e}aa.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,r=t.length-1;if(r>0){for(var i,n=t[0],a=e[0],o=t[r]-n,s=e[r]-a,l=-1;++l<=r;)i=l/r,this._basis.point(this._beta*t[l]+(1-this._beta)*(n+i*o),this._beta*e[l]+(1-this._beta)*(a+i*s))}this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};let ao=function t(e){function r(t){return 1===e?new n6(t):new aa(t,e)}return r.beta=function(e){return t(+e)},r}(.85);function as(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function al(t,e){this._context=t,this._k=(1-e)/6}al.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:as(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:as(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let ah=function t(e){function r(t){return new al(t,e)}return r.tension=function(e){return t(+e)},r}(0);function ac(t,e){this._context=t,this._k=(1-e)/6}ac.prototype={areaStart:n5,areaEnd:n5,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:as(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let au=function t(e){function r(t){return new ac(t,e)}return r.tension=function(e){return t(+e)},r}(0);function ad(t,e){this._context=t,this._k=(1-e)/6}ad.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:as(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let af=function t(e){function r(t){return new ad(t,e)}return r.tension=function(e){return t(+e)},r}(0);function ap(t,e,r){var i=t._x1,n=t._y1,a=t._x2,o=t._y2;if(t._l01_a>1e-12){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,n=(n*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>1e-12){var h=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,c=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*h+t._x1*t._l23_2a-e*t._l12_2a)/c,o=(o*h+t._y1*t._l23_2a-r*t._l12_2a)/c}t._context.bezierCurveTo(i,n,a,o,t._x2,t._y2)}function ag(t,e){this._context=t,this._alpha=e}ag.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:ap(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let ay=function t(e){function r(t){return e?new ag(t,e):new al(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function am(t,e){this._context=t,this._alpha=e}am.prototype={areaStart:n5,areaEnd:n5,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:ap(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let ax=function t(e){function r(t){return e?new am(t,e):new ac(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function ab(t,e){this._context=t,this._alpha=e}ab.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:ap(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};let ak=function t(e){function r(t){return e?new ab(t,e):new ad(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function aC(t){this._context=t}function aw(t){return new aC(t)}function a_(t){return t<0?-1:1}function av(t,e,r){var i=t._x1-t._x0,n=e-t._x1,a=(t._y1-t._y0)/(i||n<0&&-0),o=(r-t._y1)/(n||i<0&&-0),s=(a*n+o*i)/(i+n);return((a<0?-1:1)+(o<0?-1:1))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function aT(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function aS(t,e,r){var i=t._x0,n=t._y0,a=t._x1,o=t._y1,s=(a-i)/3;t._context.bezierCurveTo(i+s,n+s*e,a-s,o-s*r,a,o)}function aM(t){this._context=t}function aB(t){this._context=new aL(t)}function aL(t){this._context=t}function aA(t){return new aM(t)}function aF(t){return new aB(t)}function a$(t){this._context=t}function aW(t){var e,r,i=t.length-1,n=Array(i),a=Array(i),o=Array(i);for(n[0]=0,a[0]=2,o[0]=t[0]+2*t[1],e=1;e=0;--e)n[e]=(o[e]-n[e+1])/a[e];for(e=0,a[i-1]=(t[i]+n[i-1])/2;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}}this._x=t,this._y=e}},aI.prototype={constructor:aI,scale:function(t){return 1===t?this:new aI(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new aI(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var az=new aI(1,0,0);(function(t){for(;!t.__zoom;)if(!(t=t.parentNode))return az;return t.__zoom}).prototype=aI.prototype},75373:function(t,e,r){"use strict";r.d(e,{Z:function(){return J}});let{entries:i,setPrototypeOf:n,isFrozen:a,getPrototypeOf:o,getOwnPropertyDescriptor:s}=Object,{freeze:l,seal:h,create:c}=Object,{apply:u,construct:d}="undefined"!=typeof Reflect&&Reflect;!l&&(l=function(t){return t}),!h&&(h=function(t){return t}),!u&&(u=function(t,e,r){return t.apply(e,r)}),!d&&(d=function(t,e){return new t(...e)});let f=T(Array.prototype.forEach),p=T(Array.prototype.pop),g=T(Array.prototype.push),y=T(String.prototype.toLowerCase),m=T(String.prototype.toString),x=T(String.prototype.match),b=T(String.prototype.replace),k=T(String.prototype.indexOf),C=T(String.prototype.trim),w=T(Object.prototype.hasOwnProperty),_=T(RegExp.prototype.test),v=function(t){return function(){for(var e=arguments.length,r=Array(e),i=0;i1?r-1:0),n=1;n2&&void 0!==arguments[2]?arguments[2]:y;n&&n(t,null);let i=e.length;for(;i--;){let n=e[i];if("string"==typeof n){let t=r(n);t!==n&&(!a(e)&&(e[i]=t),n=t)}t[n]=!0}return t}function M(t){let e=c(null);for(let[r,n]of i(t))w(t,r)&&(Array.isArray(n)?e[r]=function(t){for(let e=0;e/gm),R=h(/\$\{[\w\W]*}/gm),P=h(/^data-[\-\w.\u00B7-\uFFFF]+$/),q=h(/^aria-[\-\w]+$/),H=h(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),U=h(/^(?:\w+script|data):/i),Y=h(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),V=h(/^html$/i);var G=Object.freeze({__proto__:null,ARIA_ATTR:q,ATTR_WHITESPACE:Y,CUSTOM_ELEMENT:h(/^[a-z][.\w]*(-[.\w]+)+$/i),DATA_ATTR:P,DOCTYPE_NAME:V,ERB_EXPR:j,IS_ALLOWED_URI:H,IS_SCRIPT_OR_DATA:U,MUSTACHE_EXPR:z,TMPLIT_EXPR:R});let X={element:1,text:3,progressingInstruction:7,comment:8,document:9},Q=function(t,e){if("object"!=typeof t||"function"!=typeof t.createPolicy)return null;let r=null,i="data-tt-policy-suffix";e&&e.hasAttribute(i)&&(r=e.getAttribute(i));let n="dompurify"+(r?"#"+r:"");try{return t.createPolicy(n,{createHTML:t=>t,createScriptURL:t=>t})}catch(t){return console.warn("TrustedTypes policy "+n+" could not be created."),null}},K=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};var J=function t(){let e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"undefined"==typeof window?null:window,n=e=>t(e);if(n.version="3.2.3",n.removed=[],!r||!r.document||r.document.nodeType!==X.document)return n.isSupported=!1,n;let{document:a}=r,o=a,s=o.currentScript,{DocumentFragment:h,HTMLTemplateElement:u,Node:d,Element:T,NodeFilter:z,NamedNodeMap:j=r.NamedNodeMap||r.MozNamedAttrMap,HTMLFormElement:R,DOMParser:P,trustedTypes:q}=r,U=T.prototype,Y=B(U,"cloneNode"),J=B(U,"remove"),tt=B(U,"nextSibling"),te=B(U,"childNodes"),tr=B(U,"parentNode");if("function"==typeof u){let t=a.createElement("template");t.content&&t.content.ownerDocument&&(a=t.content.ownerDocument)}let ti="",{implementation:tn,createNodeIterator:ta,createDocumentFragment:to,getElementsByTagName:ts}=a,{importNode:tl}=o,th=K();n.isSupported="function"==typeof i&&"function"==typeof tr&&tn&&void 0!==tn.createHTMLDocument;let{MUSTACHE_EXPR:tc,ERB_EXPR:tu,TMPLIT_EXPR:td,DATA_ATTR:tf,ARIA_ATTR:tp,IS_SCRIPT_OR_DATA:tg,ATTR_WHITESPACE:ty,CUSTOM_ELEMENT:tm}=G,{IS_ALLOWED_URI:tx}=G,tb=null,tk=S({},[...L,...A,...F,...W,...D]),tC=null,tw=S({},[...Z,...O,...N,...I]),t_=Object.seal(c(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),tv=null,tT=null,tS=!0,tM=!0,tB=!1,tL=!0,tA=!1,tF=!0,t$=!1,tW=!1,tE=!1,tD=!1,tZ=!1,tO=!1,tN=!0,tI=!1,tz=!0,tj=!1,tR={},tP=null,tq=S({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),tH=null,tU=S({},["audio","video","img","source","image","track"]),tY=null,tV=S({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),tG="http://www.w3.org/1998/Math/MathML",tX="http://www.w3.org/2000/svg",tQ="http://www.w3.org/1999/xhtml",tK=tQ,tJ=!1,t0=null,t1=S({},[tG,tX,tQ],m),t2=S({},["mi","mo","mn","ms","mtext"]),t3=S({},["annotation-xml"]),t5=S({},["title","style","font","a","script"]),t4=null,t6=["application/xhtml+xml","text/html"],t8=null,t9=null,t7=a.createElement("form"),et=function(t){return t instanceof RegExp||t instanceof Function},ee=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!t9||t9!==t){if((!t||"object"!=typeof t)&&(t={}),t=M(t),t8="application/xhtml+xml"===(t4=-1===t6.indexOf(t.PARSER_MEDIA_TYPE)?"text/html":t.PARSER_MEDIA_TYPE)?m:y,tb=w(t,"ALLOWED_TAGS")?S({},t.ALLOWED_TAGS,t8):tk,tC=w(t,"ALLOWED_ATTR")?S({},t.ALLOWED_ATTR,t8):tw,t0=w(t,"ALLOWED_NAMESPACES")?S({},t.ALLOWED_NAMESPACES,m):t1,tY=w(t,"ADD_URI_SAFE_ATTR")?S(M(tV),t.ADD_URI_SAFE_ATTR,t8):tV,tH=w(t,"ADD_DATA_URI_TAGS")?S(M(tU),t.ADD_DATA_URI_TAGS,t8):tU,tP=w(t,"FORBID_CONTENTS")?S({},t.FORBID_CONTENTS,t8):tq,tv=w(t,"FORBID_TAGS")?S({},t.FORBID_TAGS,t8):{},tT=w(t,"FORBID_ATTR")?S({},t.FORBID_ATTR,t8):{},tR=!!w(t,"USE_PROFILES")&&t.USE_PROFILES,tS=!1!==t.ALLOW_ARIA_ATTR,tM=!1!==t.ALLOW_DATA_ATTR,tB=t.ALLOW_UNKNOWN_PROTOCOLS||!1,tL=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,tA=t.SAFE_FOR_TEMPLATES||!1,tF=!1!==t.SAFE_FOR_XML,t$=t.WHOLE_DOCUMENT||!1,tD=t.RETURN_DOM||!1,tZ=t.RETURN_DOM_FRAGMENT||!1,tO=t.RETURN_TRUSTED_TYPE||!1,tE=t.FORCE_BODY||!1,tN=!1!==t.SANITIZE_DOM,tI=t.SANITIZE_NAMED_PROPS||!1,tz=!1!==t.KEEP_CONTENT,tj=t.IN_PLACE||!1,tx=t.ALLOWED_URI_REGEXP||H,tK=t.NAMESPACE||tQ,t2=t.MATHML_TEXT_INTEGRATION_POINTS||t2,t3=t.HTML_INTEGRATION_POINTS||t3,t_=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&et(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(t_.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&et(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(t_.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(t_.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),tA&&(tM=!1),tZ&&(tD=!0),tR&&(tb=S({},D),tC=[],!0===tR.html&&(S(tb,L),S(tC,Z)),!0===tR.svg&&(S(tb,A),S(tC,O),S(tC,I)),!0===tR.svgFilters&&(S(tb,F),S(tC,O),S(tC,I)),!0===tR.mathMl&&(S(tb,W),S(tC,N),S(tC,I))),t.ADD_TAGS&&(tb===tk&&(tb=M(tb)),S(tb,t.ADD_TAGS,t8)),t.ADD_ATTR&&(tC===tw&&(tC=M(tC)),S(tC,t.ADD_ATTR,t8)),t.ADD_URI_SAFE_ATTR&&S(tY,t.ADD_URI_SAFE_ATTR,t8),t.FORBID_CONTENTS&&(tP===tq&&(tP=M(tP)),S(tP,t.FORBID_CONTENTS,t8)),tz&&(tb["#text"]=!0),t$&&S(tb,["html","head","body"]),tb.table&&(S(tb,["tbody"]),delete tv.tbody),t.TRUSTED_TYPES_POLICY){if("function"!=typeof t.TRUSTED_TYPES_POLICY.createHTML)throw v('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof t.TRUSTED_TYPES_POLICY.createScriptURL)throw v('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');ti=(e=t.TRUSTED_TYPES_POLICY).createHTML("")}else void 0===e&&(e=Q(q,s)),null!==e&&"string"==typeof ti&&(ti=e.createHTML(""));l&&l(t),t9=t}},er=S({},[...A,...F,...$]),ei=S({},[...W,...E]),en=function(t){let e=tr(t);(!e||!e.tagName)&&(e={namespaceURI:tK,tagName:"template"});let r=y(t.tagName),i=y(e.tagName);if(!t0[t.namespaceURI])return!1;if(t.namespaceURI===tX)return e.namespaceURI===tQ?"svg"===r:e.namespaceURI===tG?"svg"===r&&("annotation-xml"===i||t2[i]):!!er[r];if(t.namespaceURI===tG)return e.namespaceURI===tQ?"math"===r:e.namespaceURI===tX?"math"===r&&t3[i]:!!ei[r];if(t.namespaceURI===tQ)return(e.namespaceURI!==tX||!!t3[i])&&(e.namespaceURI!==tG||!!t2[i])&&!ei[r]&&(t5[r]||!er[r]);return"application/xhtml+xml"===t4&&!!t0[t.namespaceURI]||!1},ea=function(t){g(n.removed,{element:t});try{tr(t).removeChild(t)}catch(e){J(t)}},eo=function(t,e){try{g(n.removed,{attribute:e.getAttributeNode(t),from:e})}catch(t){g(n.removed,{attribute:null,from:e})}if(e.removeAttribute(t),"is"===t){if(tD||tZ)try{ea(e)}catch(t){}else try{e.setAttribute(t,"")}catch(t){}}},es=function(t){let r=null,i=null;if(tE)t=""+t;else{let e=x(t,/^[\r\n\t ]+/);i=e&&e[0]}"application/xhtml+xml"===t4&&tK===tQ&&(t=''+t+"");let n=e?e.createHTML(t):t;if(tK===tQ)try{r=new P().parseFromString(n,t4)}catch(t){}if(!r||!r.documentElement){r=tn.createDocument(tK,"template",null);try{r.documentElement.innerHTML=tJ?ti:n}catch(t){}}let o=r.body||r.documentElement;return(t&&i&&o.insertBefore(a.createTextNode(i),o.childNodes[0]||null),tK===tQ)?ts.call(r,t$?"html":"body")[0]:t$?r.documentElement:o},el=function(t){return ta.call(t.ownerDocument||t,t,z.SHOW_ELEMENT|z.SHOW_COMMENT|z.SHOW_TEXT|z.SHOW_PROCESSING_INSTRUCTION|z.SHOW_CDATA_SECTION,null)},eh=function(t){return t instanceof R&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof j)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore||"function"!=typeof t.hasChildNodes)},ec=function(t){return"function"==typeof d&&t instanceof d};function eu(t,e,r){f(t,t=>{t.call(n,e,r,t9)})}let ed=function(t){let e=null;if(eu(th.beforeSanitizeElements,t,null),eh(t))return ea(t),!0;let r=t8(t.nodeName);if(eu(th.uponSanitizeElement,t,{tagName:r,allowedTags:tb}),t.hasChildNodes()&&!ec(t.firstElementChild)&&_(/<[/\w]/g,t.innerHTML)&&_(/<[/\w]/g,t.textContent)||t.nodeType===X.progressingInstruction||tF&&t.nodeType===X.comment&&_(/<[/\w]/g,t.data))return ea(t),!0;if(!tb[r]||tv[r]){if(!tv[r]&&ep(r)&&(t_.tagNameCheck instanceof RegExp&&_(t_.tagNameCheck,r)||t_.tagNameCheck instanceof Function&&t_.tagNameCheck(r)))return!1;if(tz&&!tP[r]){let e=tr(t)||t.parentNode,r=te(t)||t.childNodes;if(r&&e){let i=r.length;for(let n=i-1;n>=0;--n){let i=Y(r[n],!0);i.__removalCount=(t.__removalCount||0)+1,e.insertBefore(i,tt(t))}}}return ea(t),!0}return t instanceof T&&!en(t)||("noscript"===r||"noembed"===r||"noframes"===r)&&_(/<\/no(script|embed|frames)/i,t.innerHTML)?(ea(t),!0):(tA&&t.nodeType===X.text&&(e=t.textContent,f([tc,tu,td],t=>{e=b(e,t," ")}),t.textContent!==e&&(g(n.removed,{element:t.cloneNode()}),t.textContent=e)),eu(th.afterSanitizeElements,t,null),!1)},ef=function(t,e,r){if(tN&&("id"===e||"name"===e)&&(r in a||r in t7))return!1;if(tM&&!tT[e]&&_(tf,e));else if(tS&&_(tp,e));else if(!tC[e]||tT[e]){if(!(ep(t)&&(t_.tagNameCheck instanceof RegExp&&_(t_.tagNameCheck,t)||t_.tagNameCheck instanceof Function&&t_.tagNameCheck(t))&&(t_.attributeNameCheck instanceof RegExp&&_(t_.attributeNameCheck,e)||t_.attributeNameCheck instanceof Function&&t_.attributeNameCheck(e))||"is"===e&&t_.allowCustomizedBuiltInElements&&(t_.tagNameCheck instanceof RegExp&&_(t_.tagNameCheck,r)||t_.tagNameCheck instanceof Function&&t_.tagNameCheck(r))))return!1}else if(tY[e]);else if(_(tx,b(r,ty,"")));else if(("src"===e||"xlink:href"===e||"href"===e)&&"script"!==t&&0===k(r,"data:")&&tH[t]);else if(tB&&!_(tg,b(r,ty,"")));else if(r)return!1;return!0},ep=function(t){return"annotation-xml"!==t&&x(t,tm)},eg=function(t){eu(th.beforeSanitizeAttributes,t,null);let{attributes:r}=t;if(!r||eh(t))return;let i={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:tC,forceKeepAttr:void 0},a=r.length;for(;a--;){let{name:o,namespaceURI:s,value:l}=r[a],h=t8(o),c="value"===o?l:C(l);if(i.attrName=h,i.attrValue=c,i.keepAttr=!0,i.forceKeepAttr=void 0,eu(th.uponSanitizeAttribute,t,i),c=i.attrValue,tI&&("id"===h||"name"===h)&&(eo(o,t),c="user-content-"+c),tF&&_(/((--!?|])>)|<\/(style|title)/i,c)){eo(o,t);continue}if(i.forceKeepAttr)continue;if(eo(o,t),!i.keepAttr)continue;if(!tL&&_(/\/>/i,c)){eo(o,t);continue}tA&&f([tc,tu,td],t=>{c=b(c,t," ")});let u=t8(t.nodeName);if(!!ef(u,h,c)){if(e&&"object"==typeof q&&"function"==typeof q.getAttributeType){if(s);else switch(q.getAttributeType(u,h)){case"TrustedHTML":c=e.createHTML(c);break;case"TrustedScriptURL":c=e.createScriptURL(c)}}try{s?t.setAttributeNS(s,o,c):t.setAttribute(o,c),eh(t)?ea(t):p(n.removed)}catch(t){}}}eu(th.afterSanitizeAttributes,t,null)},ey=function t(e){let r=null,i=el(e);for(eu(th.beforeSanitizeShadowDOM,e,null);r=i.nextNode();)eu(th.uponSanitizeShadowNode,r,null),ed(r),eg(r),r.content instanceof h&&t(r.content);eu(th.afterSanitizeShadowDOM,e,null)};return n.sanitize=function(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=null,a=null,s=null,l=null;if((tJ=!t)&&(t="\x3c!--\x3e"),"string"!=typeof t&&!ec(t)){if("function"==typeof t.toString){if("string"!=typeof(t=t.toString()))throw v("dirty is not a string, aborting")}else throw v("toString is not a function")}if(!n.isSupported)return t;if(!tW&&ee(r),n.removed=[],"string"==typeof t&&(tj=!1),tj){if(t.nodeName){let e=t8(t.nodeName);if(!tb[e]||tv[e])throw v("root node is forbidden and cannot be sanitized in-place")}}else if(t instanceof d)(a=(i=es("\x3c!----\x3e")).ownerDocument.importNode(t,!0)).nodeType===X.element&&"BODY"===a.nodeName?i=a:"HTML"===a.nodeName?i=a:i.appendChild(a);else{if(!tD&&!tA&&!t$&&-1===t.indexOf("<"))return e&&tO?e.createHTML(t):t;if(!(i=es(t)))return tD?null:tO?ti:""}i&&tE&&ea(i.firstChild);let c=el(tj?t:i);for(;s=c.nextNode();)ed(s),eg(s),s.content instanceof h&&ey(s.content);if(tj)return t;if(tD){if(tZ)for(l=to.call(i.ownerDocument);i.firstChild;)l.appendChild(i.firstChild);else l=i;return(tC.shadowroot||tC.shadowrootmode)&&(l=tl.call(o,l,!0)),l}let u=t$?i.outerHTML:i.innerHTML;return t$&&tb["!doctype"]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&_(V,i.ownerDocument.doctype.name)&&(u="\n"+u),tA&&f([tc,tu,td],t=>{u=b(u,t," ")}),e&&tO?e.createHTML(u):u},n.setConfig=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ee(t),tW=!0},n.clearConfig=function(){t9=null,tW=!1},n.isValidAttribute=function(t,e,r){!t9&&ee({});let i=t8(t);return ef(i,t8(e),r)},n.addHook=function(t,e){if("function"==typeof e)g(th[t],e)},n.removeHook=function(t){return p(th[t])},n.removeHooks=function(t){th[t]=[]},n.removeAllHooks=function(){th=K()},n}()},90930:function(t,e,r){"use strict";r.d(e,{Z:()=>o});var i=r("53763"),n=r("75036");let a=class t{constructor(){this.type=n.w.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=n.w.ALL}is(t){return this.type===t}},o=new class t{constructor(t,e){this.color=e,this.changed=!1,this.data=t,this.type=new a}set(t,e){return this.color=e,this.changed=!1,this.data=t,this.type.type=n.w.ALL,this}_ensureHSL(){let t=this.data,{h:e,s:r,l:n}=t;void 0===e&&(t.h=i.Z.channel.rgb2hsl(t,"h")),void 0===r&&(t.s=i.Z.channel.rgb2hsl(t,"s")),void 0===n&&(t.l=i.Z.channel.rgb2hsl(t,"l"))}_ensureRGB(){let t=this.data,{r:e,g:r,b:n}=t;void 0===e&&(t.r=i.Z.channel.hsl2rgb(t,"r")),void 0===r&&(t.g=i.Z.channel.hsl2rgb(t,"g")),void 0===n&&(t.b=i.Z.channel.hsl2rgb(t,"b"))}get r(){let t=this.data,e=t.r;return this.type.is(n.w.HSL)||void 0===e?(this._ensureHSL(),i.Z.channel.hsl2rgb(t,"r")):e}get g(){let t=this.data,e=t.g;return this.type.is(n.w.HSL)||void 0===e?(this._ensureHSL(),i.Z.channel.hsl2rgb(t,"g")):e}get b(){let t=this.data,e=t.b;return this.type.is(n.w.HSL)||void 0===e?(this._ensureHSL(),i.Z.channel.hsl2rgb(t,"b")):e}get h(){let t=this.data,e=t.h;return this.type.is(n.w.RGB)||void 0===e?(this._ensureRGB(),i.Z.channel.rgb2hsl(t,"h")):e}get s(){let t=this.data,e=t.s;return this.type.is(n.w.RGB)||void 0===e?(this._ensureRGB(),i.Z.channel.rgb2hsl(t,"s")):e}get l(){let t=this.data,e=t.l;return this.type.is(n.w.RGB)||void 0===e?(this._ensureRGB(),i.Z.channel.rgb2hsl(t,"l")):e}get a(){return this.data.a}set r(t){this.type.set(n.w.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(n.w.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(n.w.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(n.w.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(n.w.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(n.w.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}}({r:0,g:0,b:0,a:0},"transparent")},26652:function(t,e,r){"use strict";r.d(e,{Z:()=>c});var i=r("90930"),n=r("75036");let a={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(35!==t.charCodeAt(0))return;let e=t.match(a.re);if(!e)return;let r=e[1],n=parseInt(r,16),o=r.length,s=o%4==0,l=o>4,h=l?1:17,c=l?8:4,u=s?0:-1,d=l?255:15;return i.Z.set({r:(n>>c*(u+3)&d)*h,g:(n>>c*(u+2)&d)*h,b:(n>>c*(u+1)&d)*h,a:s?(n&d)*h/255:1},t)},stringify:t=>{let{r:e,g:r,b:i,a}=t;return a<1?`#${n.Q[Math.round(e)]}${n.Q[Math.round(r)]}${n.Q[Math.round(i)]}${n.Q[Math.round(255*a)]}`:`#${n.Q[Math.round(e)]}${n.Q[Math.round(r)]}${n.Q[Math.round(i)]}`}};var o=r("53763");let s={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{let e=t.match(s.hueRe);if(e){let[,t,r]=e;switch(r){case"grad":return o.Z.channel.clamp.h(.9*parseFloat(t));case"rad":return o.Z.channel.clamp.h(180*parseFloat(t)/Math.PI);case"turn":return o.Z.channel.clamp.h(360*parseFloat(t))}}return o.Z.channel.clamp.h(parseFloat(t))},parse:t=>{let e=t.charCodeAt(0);if(104!==e&&72!==e)return;let r=t.match(s.re);if(!r)return;let[,n,a,l,h,c]=r;return i.Z.set({h:s._hue2deg(n),s:o.Z.channel.clamp.s(parseFloat(a)),l:o.Z.channel.clamp.l(parseFloat(l)),a:h?o.Z.channel.clamp.a(c?parseFloat(h)/100:parseFloat(h)):1},t)},stringify:t=>{let{h:e,s:r,l:i,a:n}=t;return n<1?`hsla(${o.Z.lang.round(e)}, ${o.Z.lang.round(r)}%, ${o.Z.lang.round(i)}%, ${n})`:`hsl(${o.Z.lang.round(e)}, ${o.Z.lang.round(r)}%, ${o.Z.lang.round(i)}%)`}},l={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();let e=l.colors[t];if(e)return a.parse(e)},stringify:t=>{let e=a.stringify(t);for(let t in l.colors)if(l.colors[t]===e)return t}},h={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{let e=t.charCodeAt(0);if(114!==e&&82!==e)return;let r=t.match(h.re);if(!r)return;let[,n,a,s,l,c,u,d,f]=r;return i.Z.set({r:o.Z.channel.clamp.r(a?2.55*parseFloat(n):parseFloat(n)),g:o.Z.channel.clamp.g(l?2.55*parseFloat(s):parseFloat(s)),b:o.Z.channel.clamp.b(u?2.55*parseFloat(c):parseFloat(c)),a:d?o.Z.channel.clamp.a(f?parseFloat(d)/100:parseFloat(d)):1},t)},stringify:t=>{let{r:e,g:r,b:i,a:n}=t;return n<1?`rgba(${o.Z.lang.round(e)}, ${o.Z.lang.round(r)}, ${o.Z.lang.round(i)}, ${o.Z.lang.round(n)})`:`rgb(${o.Z.lang.round(e)}, ${o.Z.lang.round(r)}, ${o.Z.lang.round(i)})`}},c={format:{keyword:l,hex:a,rgb:h,rgba:h,hsl:s,hsla:s},parse:t=>{if("string"!=typeof t)return t;let e=a.parse(t)||h.parse(t)||s.parse(t)||l.parse(t);if(e)return e;throw Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(n.w.HSL)||void 0===t.data.r?s.stringify(t):!(t.a<1)&&Number.isInteger(t.r)&&Number.isInteger(t.g)&&Number.isInteger(t.b)?a.stringify(t):h.stringify(t)}},75036:function(t,e,r){"use strict";r.d(e,{Q:function(){return n},w:function(){return a}});var i=r(53763);let n={};for(let t=0;t<=255;t++)n[t]=i.Z.unit.dec2hex(t);let a={ALL:0,RGB:1,HSL:2}},46859:function(t,e,r){"use strict";r.d(e,{Z:function(){return a}});var i=r(53763),n=r(26652);let a=(t,e,r)=>{let a=n.Z.parse(t),o=a[e],s=i.Z.channel.clamp[e](o+r);return o!==s&&(a[e]=s),n.Z.stringify(a)}},17826:function(t,e,r){"use strict";r.d(e,{Z:function(){return a}});var i=r(53763),n=r(26652);let a=(t,e)=>{let r=n.Z.parse(t);for(let t in e)r[t]=i.Z.channel.clamp[t](e[t]);return n.Z.stringify(r)}},35035:function(t,e,r){"use strict";r.d(e,{Z:function(){return n}});var i=r(46859);let n=(t,e)=>(0,i.Z)(t,"l",-e)},77845:function(t,e,r){"use strict";r.d(e,{Z:()=>s});var i=r("53763"),n=r("26652");let a=t=>{let{r:e,g:r,b:a}=n.Z.parse(t),o=.2126*i.Z.channel.toLinear(e)+.7152*i.Z.channel.toLinear(r)+.0722*i.Z.channel.toLinear(a);return i.Z.lang.round(o)},o=t=>a(t)>=.5,s=t=>!o(t)},86750:function(t,e,r){"use strict";r.d(e,{Z:function(){return n}});var i=r(46859);let n=(t,e)=>(0,i.Z)(t,"l",e)},13328:function(t,e,r){"use strict";r.d(e,{Z:function(){return s}});var i=r(53763),n=r(90930),a=r(26652),o=r(17826);let s=(t,e,r=0,s=1)=>{if("number"!=typeof t)return(0,o.Z)(t,{a:e});let l=n.Z.set({r:i.Z.channel.clamp.r(t),g:i.Z.channel.clamp.g(e),b:i.Z.channel.clamp.b(r),a:i.Z.channel.clamp.a(s)});return a.Z.stringify(l)}},53763:function(t,e,r){"use strict";r.d(e,{Z:()=>n});let i={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{let e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<1/6)?t+(e-t)*6*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t,hsl2rgb:({h:t,s:e,l:r},n)=>{if(!e)return 2.55*r;t/=360,e/=100;let a=(r/=100)<.5?r*(1+e):r+e-r*e,o=2*r-a;switch(n){case"r":return 255*i.hue2rgb(o,a,t+1/3);case"g":return 255*i.hue2rgb(o,a,t);case"b":return 255*i.hue2rgb(o,a,t-1/3)}},rgb2hsl:({r:t,g:e,b:r},i)=>{let n=Math.max(t/=255,e/=255,r/=255),a=Math.min(t,e,r),o=(n+a)/2;if("l"===i)return 100*o;if(n===a)return 0;let s=n-a;if("s"===i)return 100*(o>.5?s/(2-n-a):s/(n+a));switch(n){case t:return((e-r)/s+(ee>r?Math.min(e,Math.max(r,t)):Math.min(r,Math.max(e,t)),round:t=>Math.round(1e10*t)/1e10},unit:{dec2hex:t=>{let e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}}}},87390:function(t,e,r){"use strict";r.d(e,{Z:()=>s});var i=r("38487");let n=function(t,e){for(var r=t.length;r--;)if((0,i.Z)(t[r][0],e))return r;return -1};var a=Array.prototype.splice;function o(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e-1},o.prototype.set=function(t,e){var r=this.__data__,i=n(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this};let s=o},2321:function(t,e,r){"use strict";r.d(e,{Z:function(){return a}});var i=r(16161),n=r(52434);let a=(0,i.Z)(n.Z,"Map")},79401:function(t,e,r){"use strict";r.d(e,{Z:()=>d});var i=(0,r("16161").Z)(Object,"create"),n=Object.prototype.hasOwnProperty,a=Object.prototype.hasOwnProperty;function o(t){var e=-1,r=null==t?0:t.length;for(this.clear();++es});var i=r("87390"),n=r("2321"),a=r("79401");function o(t){var e=this.__data__=new i.Z(t);this.size=e.size}o.prototype.clear=function(){this.__data__=new i.Z,this.size=0},o.prototype.delete=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},o.prototype.get=function(t){return this.__data__.get(t)},o.prototype.has=function(t){return this.__data__.has(t)},o.prototype.set=function(t,e){var r=this.__data__;if(r instanceof i.Z){var o=r.__data__;if(!n.Z||o.length<199)return o.push([t,e]),this.size=++r.size,this;r=this.__data__=new a.Z(o)}return r.set(t,e),this.size=r.size,this};let s=o},3958:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});let i=r(52434).Z.Symbol},8530:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});let i=r(52434).Z.Uint8Array},12895:function(t,e,r){"use strict";r.d(e,{Z:()=>c});let i=function(t,e){for(var r=-1,i=Array(t);++rn});let n=function(t,e,r){for(var i=-1,n=Object(t),a=r(t),o=a.length;o--;){var s=a[++i];if(!1===e(n[s],s,n))break}return t}},65182:function(t,e,r){"use strict";r.d(e,{Z:()=>u});var i=r("3958"),n=Object.prototype,a=n.hasOwnProperty,o=n.toString,s=i.Z?i.Z.toStringTag:void 0;let l=function(t){var e=a.call(t,s),r=t[s];try{t[s]=void 0;var i=!0}catch(t){}var n=o.call(t);return i&&(e?t[s]=r:delete t[s]),n};var h=Object.prototype.toString,c=i.Z?i.Z.toStringTag:void 0;let u=function(t){var e;if(null==t)return void 0===t?"[object Undefined]":"[object Null]";return c&&c in Object(t)?l(t):(e=t,h.call(e))}},22769:function(t,e,r){"use strict";r.d(e,{Z:()=>o});var i=r("84342"),n=(0,r("14965").Z)(Object.keys,Object),a=Object.prototype.hasOwnProperty;let o=function(t){if(!(0,i.Z)(t))return n(t);var e=[];for(var r in Object(t))a.call(t,r)&&"constructor"!=r&&e.push(r);return e}},53148:function(t,e,r){"use strict";r.d(e,{Z:function(){return o}});var i=r(94675),n=r(89647),a=r(89186);let o=function(t,e){return(0,a.Z)((0,n.Z)(t,e,i.Z),t+"")}},44026:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});let i=function(t){return function(e){return t(e)}}},21914:function(t,e,r){"use strict";r.d(e,{Z:function(){return n}});var i=r(8530);let n=function(t){var e=new t.constructor(t.byteLength);return new i.Z(e).set(new i.Z(t)),e}},49307:function(t,e,r){"use strict";r.d(e,{Z:function(){return l}});var i=r(52434),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=n&&"object"==typeof module&&module&&!module.nodeType&&module,o=a&&a.exports===n?i.Z.Buffer:void 0,s=o?o.allocUnsafe:void 0;let l=function(t,e){if(e)return t.slice();var r=t.length,i=s?s(r):new t.constructor(r);return t.copy(i),i}},32025:function(t,e,r){"use strict";r.d(e,{Z:function(){return n}});var i=r(21914);let n=function(t,e){var r=e?(0,i.Z)(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}},76177:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});let i=function(t,e){var r=-1,i=t.length;for(e||(e=Array(i));++r1?r[a-1]:void 0,s=a>2?r[2]:void 0;for(o=t.length>3&&"function"==typeof o?(a--,o):void 0,s&&(0,n.Z)(r[0],r[1],s)&&(o=a<3?void 0:o,a=1),e=Object(e);++ig});var i,n=r("18782"),a=r("52434").Z["__core-js_shared__"];var o=(i=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||""))?"Symbol(src)_1."+i:"",s=r("58641"),l=r("71842"),h=/^\[object .+?Constructor\]$/,c=Object.prototype,u=Function.prototype.toString,d=c.hasOwnProperty,f=RegExp("^"+u.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");let p=function(t){var e;return!!(0,s.Z)(t)&&(e=t,!o||!(o in e))&&((0,n.Z)(t)?f:h).test((0,l.Z)(t))},g=function(t,e){var r,i,n=(r=t,i=e,null==r?void 0:r[i]);return p(n)?n:void 0}},53754:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});let i=(0,r(14965).Z)(Object.getPrototypeOf,Object)},23302:function(t,e,r){"use strict";r.d(e,{Z:()=>_});var i=r("16161"),n=r("52434"),a=(0,i.Z)(n.Z,"DataView"),o=r("2321"),s=(0,i.Z)(n.Z,"Promise"),l=r("88521"),h=(0,i.Z)(n.Z,"WeakMap"),c=r("65182"),u=r("71842"),d="[object Map]",f="[object Promise]",p="[object Set]",g="[object WeakMap]",y="[object DataView]",m=(0,u.Z)(a),x=(0,u.Z)(o.Z),b=(0,u.Z)(s),k=(0,u.Z)(l.Z),C=(0,u.Z)(h),w=c.Z;(a&&w(new a(new ArrayBuffer(1)))!=y||o.Z&&w(new o.Z)!=d||s&&w(s.resolve())!=f||l.Z&&w(new l.Z)!=p||h&&w(new h)!=g)&&(w=function(t){var e=(0,c.Z)(t),r="[object Object]"==e?t.constructor:void 0,i=r?(0,u.Z)(r):"";if(i)switch(i){case m:return y;case x:return d;case b:return f;case k:return p;case C:return g}return e});let _=w},62799:function(t,e,r){"use strict";r.d(e,{Z:()=>l});var i=r("58641"),n=Object.create,a=function(){function t(){}return function(e){if(!(0,i.Z)(e))return{};if(n)return n(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}(),o=r("53754"),s=r("84342");let l=function(t){return"function"!=typeof t.constructor||(0,s.Z)(t)?{}:a((0,o.Z)(t))}},92383:function(t,e,r){"use strict";r.d(e,{Z:function(){return n}});var i=/^(?:0|[1-9]\d*)$/;let n=function(t,e){var r=typeof t;return!!(e=null==e?0x1fffffffffffff:e)&&("number"==r||"symbol"!=r&&i.test(t))&&t>-1&&t%1==0&&ta});let i=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)};var n=Math.max;let a=function(t,e,r){return e=n(void 0===e?t.length-1:e,0),function(){for(var a=arguments,o=-1,s=n(a.length-e,0),l=Array(s);++ou});var i,n,a,o=r("96498"),s=r("33722"),l=r("94675"),h=s.Z?function(t,e){return(0,s.Z)(t,"toString",{configurable:!0,enumerable:!1,value:(0,o.Z)(e),writable:!0})}:l.Z,c=Date.now;let u=(i=h,n=0,a=0,function(){var t=c(),e=16-(t-a);if(a=t,e>0){if(++n>=800)return arguments[0]}else n=0;return i.apply(void 0,arguments)})},71842:function(t,e,r){"use strict";r.d(e,{Z:function(){return n}});var i=Function.prototype.toString;let n=function(t){if(null!=t){try{return i.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},96498:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});let i=function(t){return function(){return t}}},38487:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});let i=function(t,e){return t===e||t!=t&&e!=e}},94675:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});let i=function(t){return t}},45988:function(t,e,r){"use strict";r.d(e,{Z:()=>h});var i=r("65182"),n=r("75887");let a=function(t){return(0,n.Z)(t)&&"[object Arguments]"==(0,i.Z)(t)};var o=Object.prototype,s=o.hasOwnProperty,l=o.propertyIsEnumerable;let h=a(function(){return arguments}())?a:function(t){return(0,n.Z)(t)&&s.call(t,"callee")&&!l.call(t,"callee")}},31739:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});let i=Array.isArray},71581:function(t,e,r){"use strict";r.d(e,{Z:function(){return a}});var i=r(18782),n=r(49666);let a=function(t){return null!=t&&(0,n.Z)(t.length)&&!(0,i.Z)(t)}},61322:function(t,e,r){"use strict";r.d(e,{Z:function(){return a}});var i=r(71581),n=r(75887);let a=function(t){return(0,n.Z)(t)&&(0,i.Z)(t)}},25162:function(t,e,r){"use strict";r.d(e,{Z:()=>l});var i=r("52434"),n="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=n&&"object"==typeof module&&module&&!module.nodeType&&module,o=a&&a.exports===n?i.Z.Buffer:void 0,s=o?o.isBuffer:void 0;let l=s||function(){return!1}},73217:function(t,e,r){"use strict";r.d(e,{Z:function(){return d}});var i=r(22769),n=r(23302),a=r(45988),o=r(31739),s=r(71581),l=r(25162),h=r(84342),c=r(48366),u=Object.prototype.hasOwnProperty;let d=function(t){if(null==t)return!0;if((0,s.Z)(t)&&((0,o.Z)(t)||"string"==typeof t||"function"==typeof t.splice||(0,l.Z)(t)||(0,c.Z)(t)||(0,a.Z)(t)))return!t.length;var e=(0,n.Z)(t);if("[object Map]"==e||"[object Set]"==e)return!t.size;if((0,h.Z)(t))return!(0,i.Z)(t).length;for(var r in t)if(u.call(t,r))return!1;return!0}},18782:function(t,e,r){"use strict";r.d(e,{Z:function(){return a}});var i=r(65182),n=r(58641);let a=function(t){if(!(0,n.Z)(t))return!1;var e=(0,i.Z)(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},49666:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});let i=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=0x1fffffffffffff}},58641:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});let i=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},75887:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});let i=function(t){return null!=t&&"object"==typeof t}},48366:function(t,e,r){"use strict";r.d(e,{Z:()=>c});var i=r("65182"),n=r("49666"),a=r("75887"),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1;var s=r("44026"),l=r("74413"),h=l.Z&&l.Z.isTypedArray;let c=h?(0,s.Z)(h):function(t){return(0,a.Z)(t)&&(0,n.Z)(t.length)&&!!o[(0,i.Z)(t)]}},40038:function(t,e,r){"use strict";r.d(e,{Z:()=>c});var i=r("12895"),n=r("58641"),a=r("84342");let o=function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e};var s=Object.prototype.hasOwnProperty;let l=function(t){if(!(0,n.Z)(t))return o(t);var e=(0,a.Z)(t),r=[];for(var i in t)!("constructor"==i&&(e||!s.call(t,i)))&&r.push(i);return r};var h=r("71581");let c=function(t){return(0,h.Z)(t)?(0,i.Z)(t,!0):l(t)}},65269:function(t,e,r){"use strict";r.d(e,{Z:function(){return a}});var i=r(79401);function n(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw TypeError("Expected a function");var r=function(){var i=arguments,n=e?e.apply(this,i):i[0],a=r.cache;if(a.has(n))return a.get(n);var o=t.apply(this,i);return r.cache=a.set(n,o)||a,o};return r.cache=new(n.Cache||i.Z),r}n.Cache=i.Z;let a=n},41777:function(t,e,r){"use strict";r.d(e,{Z:()=>$});var i=r("11395"),n=r("49790"),a=r("38487");let o=function(t,e,r){(void 0!==r&&!(0,a.Z)(t[e],r)||void 0===r&&!(e in t))&&(0,n.Z)(t,e,r)};var s=r("45467"),l=r("49307"),h=r("32025"),c=r("76177"),u=r("62799"),d=r("45988"),f=r("31739"),p=r("61322"),g=r("25162"),y=r("18782"),m=r("58641"),x=r("65182"),b=r("53754"),k=r("75887"),C=Object.prototype,w=Function.prototype.toString,_=C.hasOwnProperty,v=w.call(Object);let T=function(t){if(!(0,k.Z)(t)||"[object Object]"!=(0,x.Z)(t))return!1;var e=(0,b.Z)(t);if(null===e)return!0;var r=_.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&w.call(r)==v};var S=r("48366");let M=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]};var B=r("29919"),L=r("40038");let A=function(t,e,r,i,n,a,s){var x=M(t,r),b=M(e,r),k=s.get(b);if(k){o(t,r,k);return}var C=a?a(x,b,r+"",t,e,s):void 0,w=void 0===C;if(w){var _,v=(0,f.Z)(b),A=!v&&(0,g.Z)(b),F=!v&&!A&&(0,S.Z)(b);if(C=b,v||A||F)(0,f.Z)(x)?C=x:(0,p.Z)(x)?C=(0,c.Z)(x):A?(w=!1,C=(0,l.Z)(b,!0)):F?(w=!1,C=(0,h.Z)(b,!0)):C=[];else if(T(b)||(0,d.Z)(b)){if(C=x,(0,d.Z)(x)){;_=x,C=(0,B.Z)(_,(0,L.Z)(_))}else(!(0,m.Z)(x)||(0,y.Z)(x))&&(C=(0,u.Z)(b))}else w=!1}w&&(s.set(b,C),n(C,b,i,a,s),s.delete(b)),o(t,r,C)},F=function t(e,r,n,a,l){if(e!==r)(0,s.Z)(r,function(s,h){if(l||(l=new i.Z),(0,m.Z)(s))A(e,r,h,n,t,a,l);else{var c=a?a(M(e,h),s,h+"",e,r,l):void 0;void 0===c&&(c=s),o(e,h,c)}},L.Z)},$=(0,r("92807").Z)(function(t,e,r){F(t,e,r)})},30594:function(t,e,r){"use strict";r.d(e,{o:function(){return s}});var i=r(74146),n={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:4};function a(t,e){if(void 0===t||void 0===e)return{angle:0,deltaX:0,deltaY:0};t=o(t),e=o(e);let[r,i]=[t.x,t.y],[n,a]=[e.x,e.y],s=n-r,l=a-i;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}(0,i.eW)(a,"calculateDeltaAndAngle");var o=(0,i.eW)(t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,"pointTransformer"),s=(0,i.eW)(t=>({x:(0,i.eW)(function(e,r,i){let s=0,l=o(i[0]).x=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(n,t.arrowTypeEnd)){let{angle:e,deltaX:r}=a(i[i.length-1],i[i.length-2]);s=n[t.arrowTypeEnd]*Math.cos(e)*(r>=0?1:-1)}let h=Math.abs(o(e).x-o(i[i.length-1]).x),c=Math.abs(o(e).y-o(i[i.length-1]).y),u=Math.abs(o(e).x-o(i[0]).x),d=Math.abs(o(e).y-o(i[0]).y),f=n[t.arrowTypeStart],p=n[t.arrowTypeEnd];if(h0&&c0&&d=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(n,t.arrowTypeEnd)){let{angle:e,deltaY:r}=a(i[i.length-1],i[i.length-2]);s=n[t.arrowTypeEnd]*Math.abs(Math.sin(e))*(r>=0?1:-1)}let h=Math.abs(o(e).y-o(i[i.length-1]).y),c=Math.abs(o(e).x-o(i[i.length-1]).x),u=Math.abs(o(e).y-o(i[0]).y),d=Math.abs(o(e).x-o(i[0]).x),f=n[t.arrowTypeStart],p=n[t.arrowTypeEnd];if(h0&&c0&&d{let e=t?.subGraphTitleMargin?.top??0,r=t?.subGraphTitleMargin?.bottom??0;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:e+r}},"getSubGraphTitleMargins")},29660:function(t,e,r){"use strict";r.d(e,{DQ:function(){return N},I_:function(){return x},Jj:function(){return k},QP:function(){return M},ZH:function(){return y}});var i=r(37971),n=r(30594),a=r(82612),o=r(41200),s=r(68394),l=r(74146),h=r(27818),c=r(74247),u=(0,l.eW)((t,e,r,i,n)=>{e.arrowTypeStart&&f(t,"start",e.arrowTypeStart,r,i,n),e.arrowTypeEnd&&f(t,"end",e.arrowTypeEnd,r,i,n)},"addEdgeMarkers"),d={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},f=(0,l.eW)((t,e,r,i,n,a)=>{let o=d[r];if(!o){l.cM.warn(`Unknown arrow type: ${r}`);return}t.attr(`marker-${e}`,`url(${i}#${n}_${a}-${o}${"start"===e?"Start":"End"})`)},"addEdgeMarker"),p=new Map,g=new Map,y=(0,l.eW)(()=>{p.clear(),g.clear()},"clear"),m=(0,l.eW)(t=>t?t.reduce((t,e)=>t+";"+e,""):"","getLabelStyles"),x=(0,l.eW)(async(t,e)=>{let r,n=(0,l.ku)((0,l.nV)().flowchart.htmlLabels),a=await (0,o.rw)(t,e.label,{style:m(e.labelStyle),useHtmlLabels:n,addSvgBackground:!0,isNode:!1});l.cM.info("abc82",e,e.labelType);let s=t.insert("g").attr("class","edgeLabel"),c=s.insert("g").attr("class","label");c.node().appendChild(a);let u=a.getBBox();if(n){let t=a.children[0],e=(0,h.Ys)(a);u=t.getBoundingClientRect(),e.attr("width",u.width),e.attr("height",u.height)}if(c.attr("transform","translate("+-u.width/2+", "+-u.height/2+")"),p.set(e.id,s),e.width=u.width,e.height=u.height,e.startLabelLeft){let n=await (0,i.XO)(e.startLabelLeft,m(e.labelStyle)),a=t.insert("g").attr("class","edgeTerminals"),o=a.insert("g").attr("class","inner");r=o.node().appendChild(n);let s=n.getBBox();o.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),!g.get(e.id)&&g.set(e.id,{}),g.get(e.id).startLeft=a,b(r,e.startLabelLeft)}if(e.startLabelRight){let n=await (0,i.XO)(e.startLabelRight,m(e.labelStyle)),a=t.insert("g").attr("class","edgeTerminals"),o=a.insert("g").attr("class","inner");r=a.node().appendChild(n),o.node().appendChild(n);let s=n.getBBox();o.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),!g.get(e.id)&&g.set(e.id,{}),g.get(e.id).startRight=a,b(r,e.startLabelRight)}if(e.endLabelLeft){let n=await (0,i.XO)(e.endLabelLeft,m(e.labelStyle)),a=t.insert("g").attr("class","edgeTerminals"),o=a.insert("g").attr("class","inner");r=o.node().appendChild(n);let s=n.getBBox();o.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),a.node().appendChild(n),!g.get(e.id)&&g.set(e.id,{}),g.get(e.id).endLeft=a,b(r,e.endLabelLeft)}if(e.endLabelRight){let n=await (0,i.XO)(e.endLabelRight,m(e.labelStyle)),a=t.insert("g").attr("class","edgeTerminals"),o=a.insert("g").attr("class","inner");r=o.node().appendChild(n);let s=n.getBBox();o.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),a.node().appendChild(n),!g.get(e.id)&&g.set(e.id,{}),g.get(e.id).endRight=a,b(r,e.endLabelRight)}return a},"insertEdgeLabel");function b(t,e){(0,l.nV)().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}(0,l.eW)(b,"setTerminalWidth");var k=(0,l.eW)((t,e)=>{l.cM.debug("Moving label abc88 ",t.id,t.label,p.get(t.id),e);let r=e.updatedPath?e.updatedPath:e.originalPath,i=(0,l.nV)(),{subGraphTitleTotalMargin:n}=(0,a.L)(i);if(t.label){let i=p.get(t.id),a=t.x,o=t.y;if(r){let i=s.w8.calcLabelPosition(r);l.cM.debug("Moving label "+t.label+" from (",a,",",o,") to (",i.x,",",i.y,") abc88"),e.updatedPath&&(a=i.x,o=i.y)}i.attr("transform",`translate(${a}, ${o+n/2})`)}if(t.startLabelLeft){let e=g.get(t.id).startLeft,i=t.x,n=t.y;if(r){let e=s.w8.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);i=e.x,n=e.y}e.attr("transform",`translate(${i}, ${n})`)}if(t.startLabelRight){let e=g.get(t.id).startRight,i=t.x,n=t.y;if(r){let e=s.w8.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);i=e.x,n=e.y}e.attr("transform",`translate(${i}, ${n})`)}if(t.endLabelLeft){let e=g.get(t.id).endLeft,i=t.x,n=t.y;if(r){let e=s.w8.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);i=e.x,n=e.y}e.attr("transform",`translate(${i}, ${n})`)}if(t.endLabelRight){let e=g.get(t.id).endRight,i=t.x,n=t.y;if(r){let e=s.w8.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);i=e.x,n=e.y}e.attr("transform",`translate(${i}, ${n})`)}},"positionEdgeLabel"),C=(0,l.eW)((t,e)=>{let r=t.x,i=t.y,n=Math.abs(e.x-r),a=Math.abs(e.y-i),o=t.width/2,s=t.height/2;return n>=o||a>=s},"outsideNode"),w=(0,l.eW)((t,e,r)=>{l.cM.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let i=t.x,n=t.y,a=Math.abs(i-r.x),o=t.width/2,s=r.xMath.abs(i-e.x)*h){let t=r.y{l.cM.warn("abc88 cutPathAtIntersect",t,e);let r=[],i=t[0],n=!1;return t.forEach(t=>{if(l.cM.info("abc88 checking point",t,e),C(e,t)||n)l.cM.warn("abc88 outside",t,i),i=t,!n&&r.push(t);else{let a=w(e,i,t);l.cM.debug("abc88 inside",t,i,a),l.cM.debug("abc88 intersection",a,e);let o=!1;r.forEach(t=>{o=o||t.x===a.x&&t.y===a.y}),r.some(t=>t.x===a.x&&t.y===a.y)?l.cM.warn("abc88 no intersect",a,r):r.push(a),n=!0}}),l.cM.debug("returning points",r),r},"cutPathAtIntersect");function v(t){let e=[],r=[];for(let i=1;i5&&Math.abs(a.y-n.y)>5?(e.push(a),r.push(i)):n.y===a.y&&a.x===o.x&&Math.abs(a.x-n.x)>5&&Math.abs(a.y-o.y)>5&&(e.push(a),r.push(i))}return{cornerPoints:e,cornerPointPositions:r}}(0,l.eW)(v,"extractCornerPoints");var T=(0,l.eW)(function(t,e,r){let i=e.x-t.x,n=e.y-t.y,a=r/Math.sqrt(i*i+n*n);return{x:e.x-a*i,y:e.y-a*n}},"findAdjacentPoint"),S=(0,l.eW)(function(t){let{cornerPointPositions:e}=v(t),r=[];for(let i=0;i10&&Math.abs(n.y-e.y)>=10){l.cM.debug("Corner point fixing",Math.abs(n.x-e.x),Math.abs(n.y-e.y));d=a.x===o.x?{x:h<0?o.x-5+u:o.x+5-u,y:c<0?o.y-u:o.y+u}:{x:h<0?o.x-u:o.x+u,y:c<0?o.y-5+u:o.y+5-u}}else l.cM.debug("Corner point skipping fixing",Math.abs(n.x-e.x),Math.abs(n.y-e.y));r.push(d,s)}else r.push(t[i]);return r},"fixCorners"),M=(0,l.eW)(function(t,e,r,i,a,o,s){let d,f;let{handDrawnSeed:p}=(0,l.nV)(),g=e.points,y=!1;o.intersect&&a.intersect&&((g=g.slice(1,e.points.length-1)).unshift(a.intersect(g[0])),l.cM.debug("Last point APA12",e.start,"--\x3e",e.end,g[g.length-1],o,o.intersect(g[g.length-1])),g.push(o.intersect(g[g.length-1]))),e.toCluster&&(l.cM.info("to cluster abc88",r.get(e.toCluster)),g=_(e.points,r.get(e.toCluster).node),y=!0),e.fromCluster&&(l.cM.debug("from cluster abc88",r.get(e.fromCluster),JSON.stringify(g,null,2)),g=_(g.reverse(),r.get(e.fromCluster).node).reverse(),y=!0);let m=g.filter(t=>!Number.isNaN(t.y));m=S(m);let x=h.$0Z;e.curve&&(x=e.curve);let{x:b,y:k}=(0,n.o)(e),C=(0,h.jvg)().x(b).y(k).curve(x);switch(e.thickness){case"normal":default:d="edge-thickness-normal";break;case"thick":d="edge-thickness-thick";break;case"invisible":d="edge-thickness-invisible"}switch(e.pattern){case"solid":default:d+=" edge-pattern-solid";break;case"dotted":d+=" edge-pattern-dotted";break;case"dashed":d+=" edge-pattern-dashed"}let w=C(m),v=Array.isArray(e.style)?e.style:[e.style];if("handDrawn"===e.look){let r=c.Z.svg(t);Object.assign([],m);let i=r.path(w,{roughness:.3,seed:p});d+=" transition";let n=(f=(0,h.Ys)(i).select("path").attr("id",e.id).attr("class"," "+d+(e.classes?" "+e.classes:"")).attr("style",v?v.reduce((t,e)=>t+";"+e,""):"")).attr("d");f.attr("d",n),t.node().appendChild(f.node())}else f=t.append("path").attr("d",w).attr("id",e.id).attr("class"," "+d+(e.classes?" "+e.classes:"")).attr("style",v?v.reduce((t,e)=>t+";"+e,""):"");let T="";((0,l.nV)().flowchart.arrowMarkerAbsolute||(0,l.nV)().state.arrowMarkerAbsolute)&&(T=(T=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(").replace(/\)/g,"\\)")),l.cM.info("arrowTypeStart",e.arrowTypeStart),l.cM.info("arrowTypeEnd",e.arrowTypeEnd),u(f,e,T,s,i);let M={};return y&&(M.updatedPath=g),M.originalPath=e.points,M},"insertEdge"),B=(0,l.eW)((t,e,r,i)=>{e.forEach(e=>{O[e](t,r,i)})},"insertMarkers"),L=(0,l.eW)((t,e,r)=>{l.cM.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),A=(0,l.eW)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),F=(0,l.eW)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),$=(0,l.eW)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),W=(0,l.eW)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),E=(0,l.eW)((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),D=(0,l.eW)((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),Z=(0,l.eW)((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),O={extension:L,composition:A,aggregation:F,dependency:$,lollipop:W,point:E,circle:D,cross:Z,barb:(0,l.eW)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb")},N=B},74146:function(t,e,r){"use strict";let i;r.d(e,{_7:()=>el,cq:()=>F,Kr:()=>t7,ZD:()=>tl,xN:()=>R,l0:()=>tz,Fy:()=>er,vZ:()=>Q,Vg:()=>B,XV:()=>td,Yc:()=>W,nH:()=>tj,ZH:()=>t3,cj:()=>S,r2:()=>x,eW:()=>m,LJ:()=>tK,Vw:()=>tx,cM:()=>k,UO:()=>tE,Cq:()=>es,Ee:()=>tQ,_j:()=>U,Tb:()=>ts,KO:()=>L,uT:()=>tR,mc:()=>tf,NM:()=>K,oO:()=>tv,uX:()=>ei,dY:()=>to,U$:()=>t6,GN:()=>t5,v6:()=>th,Y4:()=>ee,g2:()=>t9,Ub:()=>C,Yn:()=>ta,j7:()=>tY,Rw:()=>en,SY:()=>tP,v2:()=>tU,u_:()=>tt,Bf:()=>M,Zn:()=>v,ku:()=>tF,M6:()=>_,Mx:()=>t8,eu:()=>t4,iE:()=>tc,nV:()=>et});var n,a=r("27484"),o=r("26652"),s=r("17826");let l=(t,e)=>{let r=o.Z.parse(t),i={};for(let t in e)e[t]&&(i[t]=r[t]+e[t]);return(0,s.Z)(t,i)};var h=r("13328");let c=(t,e,r=50)=>{let{r:i,g:n,b:a,a:s}=o.Z.parse(t),{r:l,g:c,b:u,a:d}=o.Z.parse(e),f=r/100,p=2*f-1,g=s-d,y=((p*g==-1?p:(p+g)/(1+p*g))+1)/2,m=1-y;return(0,h.Z)(i*y+l*m,n*y+c*m,a*y+u*m,s*f+d*(1-f))},u=(t,e=100)=>{let r=o.Z.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,c(r,t,e)};var d=r("35035"),f=r("86750"),p=r("77845"),g=r("75373"),y=Object.defineProperty,m=(t,e)=>y(t,"name",{value:e,configurable:!0}),x=(t,e)=>{for(var r in e)y(t,r,{get:e[r],enumerable:!0})},b={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},k={trace:m((...t)=>{},"trace"),debug:m((...t)=>{},"debug"),info:m((...t)=>{},"info"),warn:m((...t)=>{},"warn"),error:m((...t)=>{},"error"),fatal:m((...t)=>{},"fatal")},C=m(function(t="fatal"){let e=b.fatal;"string"==typeof t?t.toLowerCase()in b&&(e=b[t]):"number"==typeof t&&(e=t),k.trace=()=>{},k.debug=()=>{},k.info=()=>{},k.warn=()=>{},k.error=()=>{},k.fatal=()=>{},e<=b.fatal&&(k.fatal=console.error?console.error.bind(console,w("FATAL"),"color: orange"):console.log.bind(console,"\x1b[35m",w("FATAL"))),e<=b.error&&(k.error=console.error?console.error.bind(console,w("ERROR"),"color: orange"):console.log.bind(console,"\x1b[31m",w("ERROR"))),e<=b.warn&&(k.warn=console.warn?console.warn.bind(console,w("WARN"),"color: orange"):console.log.bind(console,`\x1b[33m`,w("WARN"))),e<=b.info&&(k.info=console.info?console.info.bind(console,w("INFO"),"color: lightblue"):console.log.bind(console,"\x1b[34m",w("INFO"))),e<=b.debug&&(k.debug=console.debug?console.debug.bind(console,w("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",w("DEBUG"))),e<=b.trace&&(k.trace=console.debug?console.debug.bind(console,w("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",w("TRACE")))},"setLogLevel"),w=m(t=>{let e=a().format("ss.SSS");return`%c${e} : ${t} : `},"format"),_=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,v=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,T=/\s*%%.*\n/gm,S=class extends Error{static{m(this,"UnknownDiagramError")}constructor(t){super(t),this.name="UnknownDiagramError"}},M={},B=m(function(t,e){for(let[r,{detector:i}]of(t=t.replace(_,"").replace(v,"").replace(T,"\n"),Object.entries(M)))if(i(t,e))return r;throw new S(`No diagram type detected matching given configuration for text: ${t}`)},"detectType"),L=m((...t)=>{for(let{id:e,detector:r,loader:i}of t)A(e,r,i)},"registerLazyLoadedDiagrams"),A=m((t,e,r)=>{M[t]&&k.warn(`Detector with key ${t} already exists. Overwriting.`),M[t]={detector:e,loader:r},k.debug(`Detector with key ${t} added${r?" with loader":""}`)},"addDetector"),F=m(t=>M[t].loader,"getDiagramLoader"),$=m((t,e,{depth:r=2,clobber:i=!1}={})=>{let n={depth:r,clobber:i};if(Array.isArray(e)&&!Array.isArray(t))return e.forEach(e=>$(t,e,n)),t;if(Array.isArray(e)&&Array.isArray(t))return e.forEach(e=>{!t.includes(e)&&t.push(e)}),t;if(void 0===t||r<=0)return null!=t&&"object"==typeof t&&"object"==typeof e?Object.assign(t,e):e;return void 0!==e&&"object"==typeof t&&"object"==typeof e&&Object.keys(e).forEach(n=>{"object"==typeof e[n]&&(void 0===t[n]||"object"==typeof t[n])?(void 0===t[n]&&(t[n]=Array.isArray(e[n])?[]:{}),t[n]=$(t[n],e[n],{depth:r-1,clobber:i})):(i||"object"!=typeof t[n]&&"object"!=typeof e[n])&&(t[n]=e[n])}),t},"assignWithDepth"),W=$,E="#ffffff",D="#f2f2f2",Z=m((t,e)=>e?l(t,{s:-40,l:10}):l(t,{s:-40,l:-10}),"mkBorder"),O=class{static{m(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||l(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||l(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Z(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Z(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Z(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Z(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||u(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||u(this.tertiaryColor),this.lineColor=this.lineColor||u(this.background),this.arrowheadColor=this.arrowheadColor||u(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?(0,d.Z)(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||(0,d.Z)(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||u(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||(0,f.Z)(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||l(this.primaryColor,{h:30}),this.cScale4=this.cScale4||l(this.primaryColor,{h:60}),this.cScale5=this.cScale5||l(this.primaryColor,{h:90}),this.cScale6=this.cScale6||l(this.primaryColor,{h:120}),this.cScale7=this.cScale7||l(this.primaryColor,{h:150}),this.cScale8=this.cScale8||l(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||l(this.primaryColor,{h:270}),this.cScale10=this.cScale10||l(this.primaryColor,{h:300}),this.cScale11=this.cScale11||l(this.primaryColor,{h:330}),this.darkMode)for(let t=0;t{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}},N=m(t=>{let e=new O;return e.calculate(t),e},"getThemeVariables"),I=class{static{m(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=(0,f.Z)(this.primaryColor,16),this.tertiaryColor=l(this.primaryColor,{h:-160}),this.primaryBorderColor=u(this.background),this.secondaryBorderColor=Z(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Z(this.tertiaryColor,this.darkMode),this.primaryTextColor=u(this.primaryColor),this.secondaryTextColor=u(this.secondaryColor),this.tertiaryTextColor=u(this.tertiaryColor),this.lineColor=u(this.background),this.textColor=u(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=(0,f.Z)(u("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=(0,h.Z)(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=(0,d.Z)("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=(0,d.Z)(this.sectionBkgColor,10),this.taskBorderColor=(0,h.Z)(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=(0,h.Z)(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=(0,f.Z)(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=(0,f.Z)(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=(0,f.Z)(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=l(this.primaryColor,{h:64}),this.fillType3=l(this.secondaryColor,{h:64}),this.fillType4=l(this.primaryColor,{h:-64}),this.fillType5=l(this.secondaryColor,{h:-64}),this.fillType6=l(this.primaryColor,{h:128}),this.fillType7=l(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||l(this.primaryColor,{h:30}),this.cScale4=this.cScale4||l(this.primaryColor,{h:60}),this.cScale5=this.cScale5||l(this.primaryColor,{h:90}),this.cScale6=this.cScale6||l(this.primaryColor,{h:120}),this.cScale7=this.cScale7||l(this.primaryColor,{h:150}),this.cScale8=this.cScale8||l(this.primaryColor,{h:210}),this.cScale9=this.cScale9||l(this.primaryColor,{h:270}),this.cScale10=this.cScale10||l(this.primaryColor,{h:300}),this.cScale11=this.cScale11||l(this.primaryColor,{h:330});for(let t=0;t{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}},z=m(t=>{let e=new I;return e.calculate(t),e},"getThemeVariables"),j=class{static{m(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=l(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=l(this.primaryColor,{h:-160}),this.primaryBorderColor=Z(this.primaryColor,this.darkMode),this.secondaryBorderColor=Z(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Z(this.tertiaryColor,this.darkMode),this.primaryTextColor=u(this.primaryColor),this.secondaryTextColor=u(this.secondaryColor),this.tertiaryTextColor=u(this.tertiaryColor),this.lineColor=u(this.background),this.textColor=u(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=(0,h.Z)(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||l(this.primaryColor,{h:30}),this.cScale4=this.cScale4||l(this.primaryColor,{h:60}),this.cScale5=this.cScale5||l(this.primaryColor,{h:90}),this.cScale6=this.cScale6||l(this.primaryColor,{h:120}),this.cScale7=this.cScale7||l(this.primaryColor,{h:150}),this.cScale8=this.cScale8||l(this.primaryColor,{h:210}),this.cScale9=this.cScale9||l(this.primaryColor,{h:270}),this.cScale10=this.cScale10||l(this.primaryColor,{h:300}),this.cScale11=this.cScale11||l(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,d.Z)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,d.Z)(this.tertiaryColor,40);for(let t=0;t{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}},R=m(t=>{let e=new j;return e.calculate(t),e},"getThemeVariables"),P=class{static{m(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=(0,f.Z)("#cde498",10),this.primaryBorderColor=Z(this.primaryColor,this.darkMode),this.secondaryBorderColor=Z(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Z(this.tertiaryColor,this.darkMode),this.primaryTextColor=u(this.primaryColor),this.secondaryTextColor=u(this.secondaryColor),this.tertiaryTextColor=u(this.primaryColor),this.lineColor=u(this.background),this.textColor=u(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.actorBorder=(0,d.Z)(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||l(this.primaryColor,{h:30}),this.cScale4=this.cScale4||l(this.primaryColor,{h:60}),this.cScale5=this.cScale5||l(this.primaryColor,{h:90}),this.cScale6=this.cScale6||l(this.primaryColor,{h:120}),this.cScale7=this.cScale7||l(this.primaryColor,{h:150}),this.cScale8=this.cScale8||l(this.primaryColor,{h:210}),this.cScale9=this.cScale9||l(this.primaryColor,{h:270}),this.cScale10=this.cScale10||l(this.primaryColor,{h:300}),this.cScale11=this.cScale11||l(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,d.Z)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,d.Z)(this.tertiaryColor,40);for(let t=0;t{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}},q=m(t=>{let e=new P;return e.calculate(t),e},"getThemeVariables"),H=class{static{m(this,"Theme")}constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=(0,f.Z)(this.contrast,55),this.background="#ffffff",this.tertiaryColor=l(this.primaryColor,{h:-160}),this.primaryBorderColor=Z(this.primaryColor,this.darkMode),this.secondaryBorderColor=Z(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Z(this.tertiaryColor,this.darkMode),this.primaryTextColor=u(this.primaryColor),this.secondaryTextColor=u(this.secondaryColor),this.tertiaryTextColor=u(this.tertiaryColor),this.lineColor=u(this.background),this.textColor=u(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=(0,f.Z)(this.contrast,55),this.border2=this.contrast,this.actorBorder=(0,f.Z)(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let t=0;t{this[e]=t[e]}),this.updateColors(),e.forEach(e=>{this[e]=t[e]})}},U={base:{getThemeVariables:N},dark:{getThemeVariables:z},default:{getThemeVariables:R},forest:{getThemeVariables:q},neutral:{getThemeVariables:m(t=>{let e=new H;return e.calculate(t),e},"getThemeVariables")}},Y={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1,hideEmptyMembersBox:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},kanban:{useMaxWidth:!0,padding:8,sectionWidth:200,ticketBaseUrl:""},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1},V={...Y,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF"},themeCSS:void 0,themeVariables:U.default.getThemeVariables(),sequence:{...Y.sequence,messageFont:m(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:m(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:m(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},class:{hideEmptyMembersBox:!1},gantt:{...Y.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Y.c4,useWidth:void 0,personFont:m(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),external_personFont:m(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:m(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:m(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:m(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:m(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:m(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:m(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:m(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:m(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:m(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:m(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:m(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:m(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:m(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:m(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:m(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:m(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:m(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:m(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:m(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:m(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...Y.pie,useWidth:984},xyChart:{...Y.xyChart,useWidth:void 0},requirement:{...Y.requirement,useWidth:void 0},packet:{...Y.packet}},G=m((t,e="")=>Object.keys(t).reduce((r,i)=>Array.isArray(t[i])?r:"object"==typeof t[i]&&null!==t[i]?[...r,e+i,...G(t[i],"")]:[...r,e+i],[]),"keyify"),X=new Set(G(V,"")),Q=V,K=m(t=>{if(k.debug("sanitizeDirective called with",t),"object"==typeof t&&null!=t){if(Array.isArray(t)){t.forEach(t=>K(t));return}for(let e of Object.keys(t)){if(k.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!X.has(e)||null==t[e]){k.debug("sanitize deleting key: ",e),delete t[e];continue}if("object"==typeof t[e]){k.debug("sanitizing object",e),K(t[e]);continue}for(let r of["themeCSS","fontFamily","altFontFamily"])e.includes(r)&&(k.debug("sanitizing css option",e),t[e]=J(t[e]))}if(t.themeVariables)for(let e of Object.keys(t.themeVariables)){let r=t.themeVariables[e];r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}k.debug("After sanitization",t)}},"sanitizeDirective"),J=m(t=>{let e=0,r=0;for(let i of t){if(e{let r=W({},t),i={};for(let t of e)tu(t),i=W(i,t);if(r=W(r,i),i.theme&&i.theme in U){let t=W({},n),e=W(t.themeVariables||{},i.themeVariables);r.theme&&r.theme in U&&(r.themeVariables=U[r.theme].getThemeVariables(e))}return tm(ti=r),ti},"updateCurrentConfig"),ta=m(t=>(te=W({},tt),te=W(te,t),t.theme&&U[t.theme]&&(te.themeVariables=U[t.theme].getThemeVariables(t.themeVariables)),tn(te,tr),te),"setSiteConfig"),to=m(t=>{n=W({},t)},"saveConfigFromInitialize"),ts=m(t=>(te=W(te,t),tn(te,tr),te),"updateSiteConfig"),tl=m(()=>W({},te),"getSiteConfig"),th=m(t=>(tm(t),W(ti,t),tc()),"setConfig"),tc=m(()=>W({},ti),"getConfig"),tu=m(t=>{if(!!t)["secure",...te.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(k.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{"string"==typeof t[e]&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],"object"==typeof t[e]&&tu(t[e])})},"sanitize"),td=m(t=>{K(t),t.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables={...t.themeVariables,fontFamily:t.fontFamily}),tr.push(t),tn(te,tr)},"addDirective"),tf=m((t=te)=>{tn(t,tr=[])},"reset"),tp={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},tg={},ty=m(t=>{if(!tg[t])k.warn(tp[t]),tg[t]=!0},"issueWarning"),tm=m(t=>{if(!!t)(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&ty("LAZY_LOAD_DEPRECATED")},"checkConfig"),tx=//gi,tb=m(t=>t?tL(t).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows");var tk=(i=!1,()=>{!i&&(tC(),i=!0)});function tC(){let t="data-temp-href-target";g.Z.addHook("beforeSanitizeAttributes",e=>{e instanceof Element&&"A"===e.tagName&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")??"")}),g.Z.addHook("afterSanitizeAttributes",e=>{e instanceof Element&&"A"===e.tagName&&e.hasAttribute(t)&&(e.setAttribute("target",e.getAttribute(t)??""),e.removeAttribute(t),"_blank"===e.getAttribute("target")&&e.setAttribute("rel","noopener"))})}m(tC,"setupDompurifyHooks");var tw=m(t=>(tk(),g.Z.sanitize(t)),"removeScript"),t_=m((t,e)=>{if(e.flowchart?.htmlLabels!==!1){let r=e.securityLevel;"antiscript"===r||"strict"===r?t=tw(t):"loose"!==r&&(t=tB(t=(t=(t=tL(t)).replace(//g,">")).replace(/=/g,"=")))}return t},"sanitizeMore"),tv=m((t,e)=>t?t=e.dompurifyConfig?g.Z.sanitize(t_(t,e),e.dompurifyConfig).toString():g.Z.sanitize(t_(t,e),{FORBID_TAGS:["style"]}).toString():t,"sanitizeText"),tT=m((t,e)=>"string"==typeof t?tv(t,e):t.flat().map(t=>tv(t,e)),"sanitizeTextOrArray"),tS=m(t=>tx.test(t),"hasBreaks"),tM=m(t=>t.split(tx),"splitBreaks"),tB=m(t=>t.replace(/#br#/g,"
"),"placeholderToBreak"),tL=m(t=>t.replace(tx,"#br#"),"breakToPlaceholder"),tA=m(t=>{let e="";return t&&(e=(e=(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replaceAll(/\(/g,"\\(")).replaceAll(/\)/g,"\\)")),e},"getUrl"),tF=m(t=>!(!1===t||["false","null","0"].includes(String(t).trim().toLowerCase())),"evaluate"),t$=m(function(...t){return Math.max(...t.filter(t=>!isNaN(t)))},"getMax"),tW=m(function(...t){return Math.min(...t.filter(t=>!isNaN(t)))},"getMin"),tE=m(function(t){let e=t.split(/(,)/),r=[];for(let t=0;t0&&t+1Math.max(0,t.split(e).length-1),"countOccurrence"),tZ=m((t,e)=>{let r=tD(t,"~"),i=tD(e,"~");return 1===r&&1===i},"shouldCombineSets"),tO=m(t=>{let e=tD(t,"~"),r=!1;if(e<=1)return t;e%2!=0&&t.startsWith("~")&&(t=t.substring(1),r=!0);let i=[...t],n=i.indexOf("~"),a=i.lastIndexOf("~");for(;-1!==n&&-1!==a&&n!==a;)i[n]="<",i[a]=">",n=i.indexOf("~"),a=i.lastIndexOf("~");return r&&i.unshift("~"),i.join("")},"processSet"),tN=m(()=>void 0!==window.MathMLElement,"isMathMLSupported"),tI=/\$\$(.*)\$\$/g,tz=m(t=>(t.match(tI)?.length??0)>0,"hasKatex"),tj=m(async(t,e)=>{t=await tR(t,e);let r=document.createElement("div");r.innerHTML=t,r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0";let i=document.querySelector("body");i?.insertAdjacentElement("beforeend",r);let n={width:r.clientWidth,height:r.clientHeight};return r.remove(),n},"calculateMathMLDimensions"),tR=m(async(t,e)=>{if(!tz(t))return t;if(!(tN()||e.legacyMathML||e.forceLegacyMathML))return t.replace(tI,"MathML is unsupported in this environment.");let{default:i}=await r.e("5146").then(r.bind(r,63898)),n=e.forceLegacyMathML||!tN()&&e.legacyMathML?"htmlAndMathml":"mathml";return t.split(tx).map(t=>tz(t)?`
${t}
`:`
${t}
`).join("").replace(tI,(t,e)=>i.renderToString(e,{throwOnError:!0,displayMode:!0,output:n}).replace(/\n/g," ").replace(//g,""))},"renderKatex"),tP={getRows:tb,sanitizeText:tv,sanitizeTextOrArray:tT,hasBreaks:tS,splitBreaks:tM,lineBreakRegex:tx,removeScript:tw,getUrl:tA,evaluate:tF,getMax:t$,getMin:tW},tq=m(function(t,e){for(let r of e)t.attr(r[0],r[1])},"d3Attrs"),tH=m(function(t,e,r){let i=new Map;return r?(i.set("width","100%"),i.set("style",`max-width: ${e}px;`)):(i.set("height",t),i.set("width",e)),i},"calculateSvgSizeAttrs"),tU=m(function(t,e,r,i){tq(t,tH(e,r,i))},"configureSvgSize"),tY=m(function(t,e,r,i){let n=e.node().getBBox(),a=n.width,o=n.height;k.info(`SVG bounds: ${a}x${o}`,n);let s=0,l=0;k.info(`Graph bounds: ${s}x${l}`,t),s=a+2*r,l=o+2*r,k.info(`Calculated bounds: ${s}x${l}`),tU(e,l,s,i);let h=`${n.x-r} ${n.y-r} ${n.width+2*r} ${n.height+2*r}`;e.attr("viewBox",h)},"setupGraphViewbox"),tV={},tG=m((t,e,r)=>{let i="";return t in tV&&tV[t]?i=tV[t](r):k.warn(`No theme found for ${t}`),` & { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + fill: ${r.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${r.errorBkgColor}; + } + & .error-text { + fill: ${r.errorTextColor}; + stroke: ${r.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 1px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + & .edge-thickness-invisible { + stroke-width: 0; + fill: none; + } + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${r.lineColor}; + stroke: ${r.lineColor}; + } + & .marker.cross { + stroke: ${r.lineColor}; + } + + & svg { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + } + & p { + margin: 0 + } + + ${i} + + ${e} +`},"getStyles"),tX=m((t,e)=>{void 0!==e&&(tV[t]=e)},"addStylesForDiagram"),tQ=tG,tK={};x(tK,{clear:()=>t3,getAccDescription:()=>t8,getAccTitle:()=>t4,getDiagramTitle:()=>t7,setAccDescription:()=>t6,setAccTitle:()=>t5,setDiagramTitle:()=>t9});var tJ="",t0="",t1="",t2=m(t=>tv(t,tc()),"sanitizeText"),t3=m(()=>{tJ="",t1="",t0=""},"clear"),t5=m(t=>{tJ=t2(t).replace(/^\s+/g,"")},"setAccTitle"),t4=m(()=>tJ,"getAccTitle"),t6=m(t=>{t1=t2(t).replace(/\n\s+/g,"\n")},"setAccDescription"),t8=m(()=>t1,"getAccDescription"),t9=m(t=>{t0=t2(t)},"setDiagramTitle"),t7=m(()=>t0,"getDiagramTitle"),et=tc,ee=th,er=tt,ei=m(t=>tv(t,et()),"sanitizeText"),en=tY,ea=m(()=>tK,"getCommonDb"),eo={},es=m((t,e,r)=>{eo[t]&&k.warn(`Diagram with id ${t} already registered. Overwriting.`),eo[t]=e,r&&A(t,r),tX(t,e.styles),e.injectUtils?.(k,C,et,ei,en,ea(),()=>{})},"registerDiagram"),el=m(t=>{if(t in eo)return eo[t];throw new eh(t)},"getDiagram"),eh=class extends Error{static{m(this,"DiagramNotFoundError")}constructor(t){super(`Diagram ${t} not found.`)}}},41200:function(t,e,r){"use strict";r.d(e,{QA:()=>tL,rw:()=>tW,EY:()=>t$});var i=r("68394"),n=r("74146"),a=r("27818");function o(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let s=o();function l(t){s=t}let h=/[&<>"']/,c=RegExp(h.source,"g"),u=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,d=RegExp(u.source,"g"),f={"&":"&","<":"<",">":">",'"':""","'":"'"},p=t=>f[t];function g(t,e){if(e){if(h.test(t))return t.replace(c,p)}else if(u.test(t))return t.replace(d,p);return t}let y=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,m=/(^|[^\[])\^/g;function x(t,e){let r="string"==typeof t?t:t.source;e=e||"";let i={replace:(t,e)=>{let n="string"==typeof e?e:e.source;return n=n.replace(m,"$1"),r=r.replace(t,n),i},getRegex:()=>new RegExp(r,e)};return i}function b(t){try{t=encodeURI(t).replace(/%25/g,"%")}catch{return null}return t}let k={exec:()=>null};function C(t,e){let r=t.replace(/\|/g,(t,e,r)=>{let i=!1,n=e;for(;--n>=0&&"\\"===r[n];)i=!i;return i?"|":" |"}).split(/ \|/),i=0;if(!r[0].trim()&&r.shift(),r.length>0&&!r[r.length-1].trim()&&r.pop(),e){if(r.length>e)r.splice(e);else for(;r.length0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let t=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?t:w(t,"\n")}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let t=e[0],r=function(t,e){let r=t.match(/^(\s+)(?:```)/);if(null===r)return e;let i=r[1];return e.split("\n").map(t=>{let e=t.match(/^\s+/);if(null===e)return t;let[r]=e;return r.length>=i.length?t.slice(i.length):t}).join("\n")}(t,e[3]||"");return{type:"code",raw:t,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:r}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let t=e[2].trim();if(/#$/.test(t)){let e=w(t,"#");this.options.pedantic?t=e.trim():(!e||/ $/.test(e))&&(t=e.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:t,tokens:this.lexer.inline(t)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:w(e[0],"\n")}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let t=w(e[0],"\n").split("\n"),r="",i="",n=[];for(;t.length>0;){let e,a=!1,o=[];for(e=0;e/.test(t[e]))o.push(t[e]),a=!0;else if(a)break;else o.push(t[e]);t=t.slice(e);let s=o.join("\n"),l=s.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,"\n $1").replace(/^ {0,3}>[ \t]?/gm,"");r=r?`${r} +${s}`:s,i=i?`${i} +${l}`:l;let h=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(l,n,!0),this.lexer.state.top=h,0===t.length)break;let c=n[n.length-1];if(c?.type==="code")break;if(c?.type==="blockquote"){let e=c.raw+"\n"+t.join("\n"),a=this.blockquote(e);n[n.length-1]=a,r=r.substring(0,r.length-c.raw.length)+a.raw,i=i.substring(0,i.length-c.text.length)+a.text;break}else if(c?.type==="list"){let e=c.raw+"\n"+t.join("\n"),a=this.list(e);n[n.length-1]=a,r=r.substring(0,r.length-c.raw.length)+a.raw,i=i.substring(0,i.length-c.raw.length)+a.raw,t=e.substring(n[n.length-1].raw.length).split("\n");continue}}return{type:"blockquote",raw:r,tokens:n,text:i}}}list(t){let e=this.rules.block.list.exec(t);if(e){let r=e[1].trim(),i=r.length>1,n={type:"list",raw:"",ordered:i,start:i?+r.slice(0,-1):"",loose:!1,items:[]};r=i?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=i?r:"[*+-]");let a=RegExp(`^( {0,3}${r})((?:[ ][^\\n]*)?(?:\\n|$))`),o=!1;for(;t;){let r,i=!1,s="",l="";if(!(e=a.exec(t))||this.rules.block.hr.test(t))break;s=e[0],t=t.substring(s.length);let h=e[2].split("\n",1)[0].replace(/^\t+/,t=>" ".repeat(3*t.length)),c=t.split("\n",1)[0],u=!h.trim(),d=0;if(this.options.pedantic?(d=2,l=h.trimStart()):u?d=e[1].length+1:(d=(d=e[2].search(/[^ ]/))>4?1:d,l=h.slice(d),d+=e[1].length),u&&/^ *$/.test(c)&&(s+=c+"\n",t=t.substring(c.length+1),i=!0),!i){let e=RegExp(`^ {0,${Math.min(3,d-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),r=RegExp(`^ {0,${Math.min(3,d-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),i=RegExp(`^ {0,${Math.min(3,d-1)}}(?:\`\`\`|~~~)`),n=RegExp(`^ {0,${Math.min(3,d-1)}}#`);for(;t;){let a=t.split("\n",1)[0];if(c=a,this.options.pedantic&&(c=c.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),i.test(c)||n.test(c)||e.test(c)||r.test(t))break;if(c.search(/[^ ]/)>=d||!c.trim())l+="\n"+c.slice(d);else{if(u||h.search(/[^ ]/)>=4||i.test(h)||n.test(h)||r.test(h))break;l+="\n"+c}!u&&!c.trim()&&(u=!0),s+=a+"\n",t=t.substring(a.length+1),h=c.slice(d)}}!n.loose&&(o?n.loose=!0:/\n *\n *$/.test(s)&&(o=!0));let f=null;this.options.gfm&&(f=/^\[[ xX]\] /.exec(l))&&(r="[ ] "!==f[0],l=l.replace(/^\[[ xX]\] +/,"")),n.items.push({type:"list_item",raw:s,task:!!f,checked:r,loose:!1,text:l,tokens:[]}),n.raw+=s}n.items[n.items.length-1].raw=n.items[n.items.length-1].raw.trimEnd(),n.items[n.items.length-1].text=n.items[n.items.length-1].text.trimEnd(),n.raw=n.raw.trimEnd();for(let t=0;t"space"===t.type),r=e.length>0&&e.some(t=>/\n.*\n/.test(t.raw));n.loose=r}if(n.loose)for(let t=0;t$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:t,raw:e[0],href:r,title:i}}}table(t){let e=this.rules.block.table.exec(t);if(!e||!/[:|]/.test(e[2]))return;let r=C(e[1]),i=e[2].replace(/^\||\| *$/g,"").split("|"),n=e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split("\n"):[],a={type:"table",raw:e[0],header:[],align:[],rows:[]};if(r.length===i.length){for(let t of i)/^ *-+: *$/.test(t)?a.align.push("right"):/^ *:-+: *$/.test(t)?a.align.push("center"):/^ *:-+ *$/.test(t)?a.align.push("left"):a.align.push(null);for(let t=0;t({text:t,tokens:this.lexer.inline(t),header:!1,align:a.align[e]})));return a}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:"="===e[2].charAt(0)?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let t="\n"===e[1].charAt(e[1].length-1)?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:t,tokens:this.lexer.inline(t)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:g(e[1])}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&/^/i.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let t=e[2].trim();if(!this.options.pedantic&&/^$/.test(t))return;let e=w(t.slice(0,-1),"\\");if((t.length-e.length)%2==0)return}else{let t=function(t,e){if(-1===t.indexOf(")"))return -1;let r=0;for(let i=0;i-1){let r=(0===e[0].indexOf("!")?5:4)+e[1].length+t;e[2]=e[2].substring(0,t),e[0]=e[0].substring(0,r).trim(),e[3]=""}}let r=e[2],i="";if(this.options.pedantic){let t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);t&&(r=t[1],i=t[3])}else i=e[3]?e[3].slice(1,-1):"";return r=r.trim(),/^$/.test(t)?r.slice(1):r.slice(1,-1)),_(e,{href:r?r.replace(this.rules.inline.anyPunctuation,"$1"):r,title:i?i.replace(this.rules.inline.anyPunctuation,"$1"):i},e[0],this.lexer)}}reflink(t,e){let r;if((r=this.rules.inline.reflink.exec(t))||(r=this.rules.inline.nolink.exec(t))){let t=e[(r[2]||r[1]).replace(/\s+/g," ").toLowerCase()];if(!t){let t=r[0].charAt(0);return{type:"text",raw:t,text:t}}return _(r,t,r[0],this.lexer)}}emStrong(t,e,r=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!(!i||i[3]&&r.match(/[\p{L}\p{N}]/u))){if(!(i[1]||i[2])||!r||this.rules.inline.punctuation.exec(r)){let r=[...i[0]].length-1,n,a,o=r,s=0,l="*"===i[0][0]?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(l.lastIndex=0,e=e.slice(-1*t.length+r);null!=(i=l.exec(e));){if(!(n=i[1]||i[2]||i[3]||i[4]||i[5]||i[6]))continue;if(a=[...n].length,i[3]||i[4]){o+=a;continue}if((i[5]||i[6])&&r%3&&!((r+a)%3)){s+=a;continue}if((o-=a)>0)continue;a=Math.min(a,a+o+s);let e=[...i[0]][0].length,l=t.slice(0,r+i.index+e+a);if(Math.min(r,a)%2){let t=l.slice(1,-1);return{type:"em",raw:l,text:t,tokens:this.lexer.inlineTokens(t)}}let h=l.slice(2,-2);return{type:"strong",raw:l,text:h,tokens:this.lexer.inlineTokens(h)}}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let t=e[2].replace(/\n/g," "),r=/[^ ]/.test(t),i=/^ /.test(t)&&/ $/.test(t);return r&&i&&(t=t.substring(1,t.length-1)),t=g(t,!0),{type:"codespan",raw:e[0],text:t}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let t,r;return r="@"===e[2]?"mailto:"+(t=g(e[1])):t=g(e[1]),{type:"link",raw:e[0],text:t,href:r,tokens:[{type:"text",raw:t,text:t}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let t,r;if("@"===e[2])r="mailto:"+(t=g(e[0]));else{let i;do i=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(i!==e[0]);t=g(e[0]),r="www."===e[1]?"http://"+e[0]:e[0]}return{type:"link",raw:e[0],text:t,href:r,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let t;return t=this.lexer.state.inRawBlock?e[0]:g(e[0]),{type:"text",raw:e[0],text:t}}}}let T=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,S=/(?:[*+-]|\d{1,9}[.)])/,M=x(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,S).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),B=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,L=/(?!\s*\])(?:\\.|[^\[\]\\])+/,A=x(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",L).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),F=x(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,S).getRegex(),$="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",W=/|$))/,E=x("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",W).replace("tag",$).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),D=x(B).replace("hr",T).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",$).getRegex(),Z={blockquote:x(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",D).getRegex(),code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,def:A,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:T,html:E,lheading:M,list:F,newline:/^(?: *(?:\n|$))+/,paragraph:D,table:k,text:/^[^\n]+/},O=x("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",T).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",$).getRegex(),N={...Z,table:O,paragraph:x(B).replace("hr",T).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",O).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",$).getRegex()},I={...Z,html:x("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",W).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:k,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:x(B).replace("hr",T).replace("heading"," *#{1,6} *[^\n]").replace("lheading",M).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},z=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,j=/^( {2,}|\\)\n(?!\s*$)/,R="\\p{P}\\p{S}",P=x(/^((?![*_])[\spunctuation])/,"u").replace(/punctuation/g,R).getRegex(),q=x(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,R).getRegex(),H=x("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,R).getRegex(),U=x("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,R).getRegex(),Y=x(/\\([punct])/,"gu").replace(/punct/g,R).getRegex(),V=x(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),G=x(W).replace("(?:--\x3e|$)","--\x3e").getRegex(),X=x("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",G).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Q=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,K=x(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",Q).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),J=x(/^!?\[(label)\]\[(ref)\]/).replace("label",Q).replace("ref",L).getRegex(),tt=x(/^!?\[(ref)\](?:\[\])?/).replace("ref",L).getRegex(),te=x("reflink|nolink(?!\\()","g").replace("reflink",J).replace("nolink",tt).getRegex(),tr={_backpedal:k,anyPunctuation:Y,autolink:V,blockSkip:/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,br:j,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:k,emStrongLDelim:q,emStrongRDelimAst:H,emStrongRDelimUnd:U,escape:z,link:K,nolink:tt,punctuation:P,reflink:J,reflinkSearch:te,tag:X,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\e+" ".repeat(r.length));t;){if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(r=>!!(i=r.call({lexer:this},t,e))&&(t=t.substring(i.raw.length),e.push(i),!0)))){if(i=this.tokenizer.space(t)){t=t.substring(i.raw.length),1===i.raw.length&&e.length>0?e[e.length-1].raw+="\n":e.push(i);continue}if(i=this.tokenizer.code(t)){t=t.substring(i.raw.length),(n=e[e.length-1])&&("paragraph"===n.type||"text"===n.type)?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(i);continue}if((i=this.tokenizer.fences(t))||(i=this.tokenizer.heading(t))||(i=this.tokenizer.hr(t))||(i=this.tokenizer.blockquote(t))||(i=this.tokenizer.list(t))||(i=this.tokenizer.html(t))){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.def(t)){t=t.substring(i.raw.length),(n=e[e.length-1])&&("paragraph"===n.type||"text"===n.type)?(n.raw+="\n"+i.raw,n.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text):!this.tokens.links[i.tag]&&(this.tokens.links[i.tag]={href:i.href,title:i.title});continue}if((i=this.tokenizer.table(t))||(i=this.tokenizer.lheading(t))){t=t.substring(i.raw.length),e.push(i);continue}if(a=t,this.options.extensions&&this.options.extensions.startBlock){let e,r=1/0,i=t.slice(1);this.options.extensions.startBlock.forEach(t=>{"number"==typeof(e=t.call({lexer:this},i))&&e>=0&&(r=Math.min(r,e))}),r<1/0&&r>=0&&(a=t.substring(0,r+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){n=e[e.length-1],r&&n?.type==="paragraph"?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(i),r=a.length!==t.length,t=t.substring(i.raw.length);continue}if(i=this.tokenizer.text(t)){t=t.substring(i.raw.length),(n=e[e.length-1])&&"text"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(i);continue}if(t){let e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(e);break}throw Error(e)}}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let r,i,n,a,o,s;let l=t;if(this.tokens.links){let t=Object.keys(this.tokens.links);if(t.length>0)for(;null!=(a=this.tokenizer.rules.inline.reflinkSearch.exec(l));)t.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(a=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,a.index)+"["+"a".repeat(a[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(a=this.tokenizer.rules.inline.anyPunctuation.exec(l));)l=l.slice(0,a.index)+"++"+l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;){if(!o&&(s=""),o=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(i=>!!(r=i.call({lexer:this},t,e))&&(t=t.substring(r.raw.length),e.push(r),!0)))){if(r=this.tokenizer.escape(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.tag(t)){t=t.substring(r.raw.length),(i=e[e.length-1])&&"text"===r.type&&"text"===i.type?(i.raw+=r.raw,i.text+=r.text):e.push(r);continue}if(r=this.tokenizer.link(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(r.raw.length),(i=e[e.length-1])&&"text"===r.type&&"text"===i.type?(i.raw+=r.raw,i.text+=r.text):e.push(r);continue}if((r=this.tokenizer.emStrong(t,l,s))||(r=this.tokenizer.codespan(t))||(r=this.tokenizer.br(t))||(r=this.tokenizer.del(t))||(r=this.tokenizer.autolink(t))||!this.state.inLink&&(r=this.tokenizer.url(t))){t=t.substring(r.raw.length),e.push(r);continue}if(n=t,this.options.extensions&&this.options.extensions.startInline){let e,r=1/0,i=t.slice(1);this.options.extensions.startInline.forEach(t=>{"number"==typeof(e=t.call({lexer:this},i))&&e>=0&&(r=Math.min(r,e))}),r<1/0&&r>=0&&(n=t.substring(0,r+1))}if(r=this.tokenizer.inlineText(n)){t=t.substring(r.raw.length),"_"!==r.raw.slice(-1)&&(s=r.raw.slice(-1)),o=!0,(i=e[e.length-1])&&"text"===i.type?(i.raw+=r.raw,i.text+=r.text):e.push(r);continue}if(t){let e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(e);break}throw Error(e)}}}return e}}class th{options;parser;constructor(t){this.options=t||s}space(t){return""}code({text:t,lang:e,escaped:r}){let i=(e||"").match(/^\S*/)?.[0],n=t.replace(/\n$/,"")+"\n";return i?'
'+(r?n:g(n,!0))+"
\n":"
"+(r?n:g(n,!0))+"
\n"}blockquote({tokens:t}){let e=this.parser.parse(t);return`
+${e}
+`}html({text:t}){return t}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} +`}hr(t){return"
\n"}list(t){let e=t.ordered,r=t.start,i="";for(let e=0;e\n"+i+"\n"}listitem(t){let e="";if(t.task){let r=this.checkbox({checked:!!t.checked});t.loose?t.tokens.length>0&&"paragraph"===t.tokens[0].type?(t.tokens[0].text=r+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&"text"===t.tokens[0].tokens[0].type&&(t.tokens[0].tokens[0].text=r+" "+t.tokens[0].tokens[0].text)):t.tokens.unshift({type:"text",raw:r+" ",text:r+" "}):e+=r+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`
  • ${e}
  • +`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

    ${this.parser.parseInline(t)}

    +`}table(t){let e="",r="";for(let e=0;e${i}`),"\n\n"+e+"\n"+i+"
    \n"}tablerow({text:t}){return` +${t} +`}tablecell(t){let e=this.parser.parseInline(t.tokens),r=t.header?"th":"td";return(t.align?`<${r} align="${t.align}">`:`<${r}>`)+e+` +`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${t}`}br(t){return"
    "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:r}){let i=this.parser.parseInline(r),n=b(t);if(null===n)return i;let a='
    "}image({href:t,title:e,text:r}){let i=b(t);if(null===i)return r;t=i;let n=`${r}{let n=t[i].flat(1/0);r=r.concat(this.walkTokens(n,e))}):t.tokens&&(r=r.concat(this.walkTokens(t.tokens,e)))}}return r}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(t=>{let r={...t};if(r.async=this.defaults.async||r.async||!1,t.extensions&&(t.extensions.forEach(t=>{if(!t.name)throw Error("extension name required");if("renderer"in t){let r=e.renderers[t.name];r?e.renderers[t.name]=function(...e){let i=t.renderer.apply(this,e);return!1===i&&(i=r.apply(this,e)),i}:e.renderers[t.name]=t.renderer}if("tokenizer"in t){if(!t.level||"block"!==t.level&&"inline"!==t.level)throw Error("extension level must be 'block' or 'inline'");let r=e[t.level];r?r.unshift(t.tokenizer):e[t.level]=[t.tokenizer],t.start&&("block"===t.level?e.startBlock?e.startBlock.push(t.start):e.startBlock=[t.start]:"inline"===t.level&&(e.startInline?e.startInline.push(t.start):e.startInline=[t.start]))}"childTokens"in t&&t.childTokens&&(e.childTokens[t.name]=t.childTokens)}),r.extensions=e),t.renderer){let e=this.defaults.renderer||new th(this.defaults);for(let r in t.renderer){if(!(r in e))throw Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let i=t.renderer[r];!t.useNewRenderer&&(i=this.#e(i,r,e));let n=e[r];e[r]=(...t)=>{let r=i.apply(e,t);return!1===r&&(r=n.apply(e,t)),r||""}}r.renderer=e}if(t.tokenizer){let e=this.defaults.tokenizer||new v(this.defaults);for(let r in t.tokenizer){if(!(r in e))throw Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let i=t.tokenizer[r],n=e[r];e[r]=(...t)=>{let r=i.apply(e,t);return!1===r&&(r=n.apply(e,t)),r}}r.tokenizer=e}if(t.hooks){let e=this.defaults.hooks||new td;for(let r in t.hooks){if(!(r in e))throw Error(`hook '${r}' does not exist`);if("options"===r)continue;let i=t.hooks[r],n=e[r];td.passThroughHooks.has(r)?e[r]=t=>{if(this.defaults.async)return Promise.resolve(i.call(e,t)).then(t=>n.call(e,t));let r=i.call(e,t);return n.call(e,r)}:e[r]=(...t)=>{let r=i.apply(e,t);return!1===r&&(r=n.apply(e,t)),r}}r.hooks=e}if(t.walkTokens){let e=this.defaults.walkTokens,i=t.walkTokens;r.walkTokens=function(t){let r=[];return r.push(i.call(this,t)),e&&(r=r.concat(e.call(this,t))),r}}this.defaults={...this.defaults,...r}}),this}#e(t,e,r){switch(e){case"heading":return function(i){if(!i.type||i.type!==e)return t.apply(this,arguments);return t.call(this,r.parser.parseInline(i.tokens),i.depth,r.parser.parseInline(i.tokens,r.parser.textRenderer).replace(y,(t,e)=>"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):""))};case"code":return function(r){return r.type&&r.type===e?t.call(this,r.text,r.lang,!!r.escaped):t.apply(this,arguments)};case"table":return function(r){if(!r.type||r.type!==e)return t.apply(this,arguments);let i="",n="";for(let t=0;t0&&"paragraph"===e.tokens[0].type?(e.tokens[0].text=t+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&"text"===e.tokens[0].tokens[0].type&&(e.tokens[0].tokens[0].text=t+" "+e.tokens[0].tokens[0].text)):e.tokens.unshift({type:"text",text:t+" "}):s+=t+" "}s+=this.parser.parse(e.tokens,a),o+=this.listitem({type:"list_item",raw:s,text:s,task:n,checked:!!i,loose:a,tokens:e.tokens})}return t.call(this,o,i,n)};case"html":return function(r){return r.type&&r.type===e?t.call(this,r.text,r.block):t.apply(this,arguments)};case"paragraph":return function(r){return r.type&&r.type===e?t.call(this,this.parser.parseInline(r.tokens)):t.apply(this,arguments)};case"escape":case"text":return function(r){return r.type&&r.type===e?t.call(this,r.text):t.apply(this,arguments)};case"link":return function(r){return r.type&&r.type===e?t.call(this,r.href,r.title,this.parser.parseInline(r.tokens)):t.apply(this,arguments)};case"image":return function(r){return r.type&&r.type===e?t.call(this,r.href,r.title,r.text):t.apply(this,arguments)};case"strong":case"del":return function(r){return r.type&&r.type===e?t.call(this,this.parser.parseInline(r.tokens)):t.apply(this,arguments)};case"em":return function(r){return r.type&&r.type===e?t.call(this,this.parser.parseInline(r.tokens)):t.apply(this,arguments)};case"codespan":return function(r){return r.type&&r.type===e?t.call(this,r.text):t.apply(this,arguments)}}return t}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return tl.lex(t,e??this.defaults)}parser(t,e){return tu.parse(t,e??this.defaults)}#t(t,e){return(r,i)=>{let n={...i},a={...this.defaults,...n};!0===this.defaults.async&&!1===n.async&&(!a.silent&&console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),a.async=!0);let o=this.#r(!!a.silent,!!a.async);if(null==r)return o(Error("marked(): input parameter is undefined or null"));if("string"!=typeof r)return o(Error("marked(): input parameter is of type "+Object.prototype.toString.call(r)+", string expected"));if(a.hooks&&(a.hooks.options=a),a.async)return Promise.resolve(a.hooks?a.hooks.preprocess(r):r).then(e=>t(e,a)).then(t=>a.hooks?a.hooks.processAllTokens(t):t).then(t=>a.walkTokens?Promise.all(this.walkTokens(t,a.walkTokens)).then(()=>t):t).then(t=>e(t,a)).then(t=>a.hooks?a.hooks.postprocess(t):t).catch(o);try{a.hooks&&(r=a.hooks.preprocess(r));let i=t(r,a);a.hooks&&(i=a.hooks.processAllTokens(i)),a.walkTokens&&this.walkTokens(i,a.walkTokens);let n=e(i,a);return a.hooks&&(n=a.hooks.postprocess(n)),n}catch(t){return o(t)}}}#r(t,e){return r=>{if(r.message+="\nPlease report this to https://github.com/markedjs/marked.",t){let t="

    An error occurred:

    "+g(r.message+"",!0)+"
    ";return e?Promise.resolve(t):t}if(e)return Promise.reject(r);throw r}}}let tp=new tf;function tg(t,e){return tp.parse(t,e)}tg.options=tg.setOptions=function(t){return tp.setOptions(t),tg.defaults=tp.defaults,s=tg.defaults,tg},tg.getDefaults=o,tg.defaults=s,tg.use=function(...t){return tp.use(...t),tg.defaults=tp.defaults,s=tg.defaults,tg},tg.walkTokens=function(t,e){return tp.walkTokens(t,e)},tg.parseInline=tp.parseInline,tg.Parser=tu,tg.parser=tu.parse,tg.Renderer=th,tg.TextRenderer=tc,tg.Lexer=tl,tg.lexer=tl.lex,tg.Tokenizer=v,tg.Hooks=td,tg.parse=tg,tg.options,tg.setOptions,tg.use,tg.walkTokens,tg.parseInline,tu.parse,tl.lex;var ty=r("18464");function tm(t,{markdownAutoWrap:e}){let r=t.replace(//g,"\n").replace(/\n{2,}/g,"\n"),i=(0,ty.Z)(r);return!1===e?i.replace(/ /g," "):i}function tx(t,e={}){let r=tm(t,e),i=tg.lexer(r),a=[[]],o=0;function s(t,e="normal"){"text"===t.type?t.text.split("\n").forEach((t,r)=>{0!==r&&(o++,a.push([])),t.split(" ").forEach(t=>{(t=t.replace(/'/g,"'"))&&a[o].push({content:t,type:e})})}):"strong"===t.type||"em"===t.type?t.tokens.forEach(e=>{s(e,t.type)}):"html"===t.type&&a[o].push({content:t.text,type:"normal"})}return(0,n.eW)(s,"processNode"),i.forEach(t=>{"paragraph"===t.type?t.tokens?.forEach(t=>{s(t)}):"html"===t.type&&a[o].push({content:t.text,type:"normal"})}),a}function tb(t,{markdownAutoWrap:e}={}){let r=tg.lexer(t);function i(t){if("text"===t.type)return!1===e?t.text.replace(/\n */g,"
    ").replace(/ /g," "):t.text.replace(/\n */g,"
    ");if("strong"===t.type)return`${t.tokens?.map(i).join("")}`;if("em"===t.type)return`${t.tokens?.map(i).join("")}`;else if("paragraph"===t.type)return`

    ${t.tokens?.map(i).join("")}

    `;else if("space"===t.type)return"";else if("html"===t.type)return`${t.text}`;else if("escape"===t.type)return t.text;return`Unsupported markdown: ${t.type}`}return(0,n.eW)(i,"output"),r.map(i).join("")}function tk(t){return Intl.Segmenter?[...new Intl.Segmenter().segment(t)].map(t=>t.segment):[...t]}function tC(t,e){return tw(t,[],tk(e.content),e.type)}function tw(t,e,r,i){if(0===r.length)return[{content:e.join(""),type:i},{content:"",type:i}];let[n,...a]=r,o=[...e,n];return t([{content:o.join(""),type:i}])?tw(t,o,a,i):(0===e.length&&n&&(e.push(n),r.shift()),[{content:e.join(""),type:i},{content:r.join(""),type:i}])}function t_(t,e){if(t.some(({content:t})=>t.includes("\n")))throw Error("splitLineToFitWidth does not support newlines in the line");return tv(t,e)}function tv(t,e,r=[],i=[]){if(0===t.length)return i.length>0&&r.push(i),r.length>0?r:[];let n="";" "===t[0].content&&(n=" ",t.shift());let a=t.shift()??{content:" ",type:"normal"},o=[...i];if(""!==n&&o.push({content:n,type:"normal"}),o.push(a),e(o))return tv(t,e,r,o);if(i.length>0)r.push(i),t.unshift(a);else if(a.content){let[i,n]=tC(e,a);r.push([i]),n.content&&t.unshift(n)}return tv(t,e,r)}function tT(t,e){e&&t.attr("style",e)}async function tS(t,e,r,i,a=!1){let o=t.append("foreignObject");o.attr("width",`${10*r}px`),o.attr("height",`${10*r}px`);let s=o.append("xhtml:div"),l=e.label;e.label&&(0,n.l0)(e.label)&&(l=await (0,n.uT)(e.label.replace(n.SY.lineBreakRegex,"\n"),(0,n.nV)()));let h=e.isNode?"nodeLabel":"edgeLabel",c=s.append("span");c.html(l),tT(c,e.labelStyle),c.attr("class",`${h} ${i}`),tT(s,e.labelStyle),s.style("display","table-cell"),s.style("white-space","nowrap"),s.style("line-height","1.5"),s.style("max-width",r+"px"),s.style("text-align","center"),s.attr("xmlns","http://www.w3.org/1999/xhtml"),a&&s.attr("class","labelBkg");let u=s.node().getBoundingClientRect();return u.width===r&&(s.style("display","table"),s.style("white-space","break-spaces"),s.style("width",r+"px"),u=s.node().getBoundingClientRect()),o.node()}function tM(t,e,r){return t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*r-.1+"em").attr("dy",r+"em")}function tB(t,e,r){let i=t.append("text"),n=tM(i,1,e);tF(n,r);let a=n.node().getComputedTextLength();return i.remove(),a}function tL(t,e,r){let i=t.append("text"),n=tM(i,1,e);tF(n,[{content:r,type:"normal"}]);let a=n.node()?.getBoundingClientRect();return a&&i.remove(),a}function tA(t,e,r,i=!1){let a=e.append("g"),o=a.insert("rect").attr("class","background").attr("style","stroke: none"),s=a.append("text").attr("y","-10.1"),l=0;for(let e of r){let r=(0,n.eW)(e=>tB(a,1.1,e)<=t,"checkWidth");for(let t of r(e)?[e]:t_(e,r))tF(tM(s,l,1.1),t),l++}if(!i)return s.node();{let t=s.node().getBBox();return o.attr("x",t.x-2).attr("y",t.y-2).attr("width",t.width+4).attr("height",t.height+4),a.node()}}function tF(t,e){t.text(""),e.forEach((e,r)=>{let i=t.append("tspan").attr("font-style","em"===e.type?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight","strong"===e.type?"bold":"normal");0===r?i.text(e.content):i.text(" "+e.content)})}function t$(t){return t.replace(/fa[bklrs]?:fa-[\w-]+/g,t=>``)}(0,n.eW)(tm,"preprocessMarkdown"),(0,n.eW)(tx,"markdownToLines"),(0,n.eW)(tb,"markdownToHTML"),(0,n.eW)(tk,"splitTextToChars"),(0,n.eW)(tC,"splitWordToFitWidth"),(0,n.eW)(tw,"splitWordToFitWidthRecursion"),(0,n.eW)(t_,"splitLineToFitWidth"),(0,n.eW)(tv,"splitLineToFitWidthRecursion"),(0,n.eW)(tT,"applyStyle"),(0,n.eW)(tS,"addHtmlSpan"),(0,n.eW)(tM,"createTspan"),(0,n.eW)(tB,"computeWidthOfText"),(0,n.eW)(tL,"computeDimensionOfText"),(0,n.eW)(tA,"createFormattedText"),(0,n.eW)(tF,"updateTextContentAndStyles"),(0,n.eW)(t$,"replaceIconSubstring");var tW=(0,n.eW)(async(t,e="",{style:r="",isTitle:o=!1,classes:s="",useHtmlLabels:l=!0,isNode:h=!0,width:c=200,addSvgBackground:u=!1}={},d)=>{if(n.cM.debug("XYZ createText",e,r,o,s,l,h,"addSvgBackground: ",u),l){let a=tb(e,d),o=t$((0,i.SH)(a)),l=e.replace(/\\\\/g,"\\"),f={isNode:h,label:(0,n.l0)(e)?l:o,labelStyle:r.replace("fill:","color:")};return await tS(t,f,c,s,u)}{let i=tA(c,t,tx(e.replace(//g,"
    ").replace("
    ","
    "),d),!!e&&u);if(h){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));let t=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");(0,a.Ys)(i).attr("style",t)}else{let t=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");(0,a.Ys)(i).select("rect").attr("style",t.replace(/background:/g,"fill:"));let e=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");(0,a.Ys)(i).select("text").attr("style",e)}return i}},"createText")},68394:function(t,e,r){"use strict";r.d(e,{$m:function(){return h},Cq:function(){return Z},Ln:function(){return Y},MX:function(){return A},Ox:function(){return B},R7:function(){return V},Rb:function(){return P},SH:function(){return U},VG:function(){return R},Vy:function(){return H},X4:function(){return W},XD:function(){return D},bZ:function(){return z},be:function(){return S},le:function(){return y},tf:function(){return p},w8:function(){return q}});var i,n=r(74146),a=r(17967),o=r(27818),s=r(65269),l=r(41777),h="\u200B",c={curveBasis:o.$0Z,curveBasisClosed:o.Dts,curveBasisOpen:o.WQY,curveBumpX:o.qpX,curveBumpY:o.u93,curveBundle:o.tFB,curveCardinalClosed:o.OvA,curveCardinalOpen:o.dCK,curveCardinal:o.YY7,curveCatmullRomClosed:o.fGX,curveCatmullRomOpen:o.$m7,curveCatmullRom:o.zgE,curveLinear:o.c_6,curveLinearClosed:o.fxm,curveMonotoneX:o.FdL,curveMonotoneY:o.ak_,curveNatural:o.SxZ,curveStep:o.eA_,curveStepAfter:o.jsv,curveStepBefore:o.iJ},u=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,d=(0,n.eW)(function(t,e){let r=f(t,/(?:init\b)|(?:initialize\b)/),i={};if(Array.isArray(r)){let t=r.map(t=>t.args);(0,n.NM)(t),i=(0,n.Yc)(i,[...t])}else i=r.args;if(!i)return;let a=(0,n.Vg)(t,e),o="config";return void 0!==i[o]&&("flowchart-v2"===a&&(a="flowchart"),i[a]=i[o],delete i[o]),i},"detectInit"),f=(0,n.eW)(function(t,e=null){try{let r;let i=RegExp(`[%]{2}(?![{]${u.source})(?=[}][%]{2}).* +`,"ig");t=t.trim().replace(i,"").replace(/'/gm,'"'),n.cM.debug(`Detecting diagram directive${null!==e?" type:"+e:""} based on the text:${t}`);let a=[];for(;null!==(r=n.Zn.exec(t));)if(r.index===n.Zn.lastIndex&&n.Zn.lastIndex++,r&&!e||e&&r[1]?.match(e)||e&&r[2]?.match(e)){let t=r[1]?r[1]:r[2],e=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;a.push({type:t,args:e})}if(0===a.length)return{type:t,args:null};return 1===a.length?a[0]:a}catch(r){return n.cM.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},"detectDirective"),p=(0,n.eW)(function(t){return t.replace(n.Zn,"")},"removeDirectives"),g=(0,n.eW)(function(t,e){for(let[r,i]of e.entries())if(i.match(t))return r;return -1},"isSubstringInArray");function y(t,e){return t?c[`curve${t.charAt(0).toUpperCase()+t.slice(1)}`]??e:e}function m(t,e){let r=t.trim();return r?"loose"!==e.securityLevel?(0,a.sanitizeUrl)(r):r:void 0}(0,n.eW)(y,"interpolateToCurve"),(0,n.eW)(m,"formatUrl");var x=(0,n.eW)((t,...e)=>{let r=t.split("."),i=r.length-1,a=r[i],o=window;for(let e=0;e{r+=b(t,e),e=t}),_(t,r/2)}function C(t){return 1===t.length?t[0]:k(t)}(0,n.eW)(b,"distance"),(0,n.eW)(k,"traverseEdge"),(0,n.eW)(C,"calcLabelPosition");var w=(0,n.eW)((t,e=2)=>{let r=Math.pow(10,e);return Math.round(t*r)/r},"roundNumber"),_=(0,n.eW)((t,e)=>{let r;let i=e;for(let e of t){if(r){let t=b(e,r);if(t=1)return{x:e.x,y:e.y};if(n>0&&n<1)return{x:w((1-n)*r.x+n*e.x,5),y:w((1-n)*r.y+n*e.y,5)}}}r=e}throw Error("Could not find a suitable point for the given distance")},"calculatePoint"),v=(0,n.eW)((t,e,r)=>{n.cM.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let i=_(e,25),a=t?10:5,o=Math.atan2(e[0].y-i.y,e[0].x-i.x),s={x:0,y:0};return s.x=Math.sin(o)*a+(e[0].x+i.x)/2,s.y=-Math.cos(o)*a+(e[0].y+i.y)/2,s},"calcCardinalityPosition");function T(t,e,r){let i=structuredClone(r);n.cM.info("our points",i),"start_left"!==e&&"start_right"!==e&&i.reverse();let a=_(i,25+t),o=10+.5*t,s=Math.atan2(i[0].y-a.y,i[0].x-a.x),l={x:0,y:0};return"start_left"===e?(l.x=Math.sin(s+Math.PI)*o+(i[0].x+a.x)/2,l.y=-Math.cos(s+Math.PI)*o+(i[0].y+a.y)/2):"end_right"===e?(l.x=Math.sin(s-Math.PI)*o+(i[0].x+a.x)/2-5,l.y=-Math.cos(s-Math.PI)*o+(i[0].y+a.y)/2-5):"end_left"===e?(l.x=Math.sin(s)*o+(i[0].x+a.x)/2-5,l.y=-Math.cos(s)*o+(i[0].y+a.y)/2-5):(l.x=Math.sin(s)*o+(i[0].x+a.x)/2,l.y=-Math.cos(s)*o+(i[0].y+a.y)/2),l}function S(t){let e="",r="";for(let i of t)void 0!==i&&(i.startsWith("color:")||i.startsWith("text-align:")?r=r+i+";":e=e+i+";");return{style:e,labelStyle:r}}(0,n.eW)(T,"calcTerminalLabelPosition"),(0,n.eW)(S,"getStylesFromArray");var M=0,B=(0,n.eW)(()=>(M++,"id-"+Math.random().toString(36).substr(2,12)+"-"+M),"generateId");function L(t){let e="",r="0123456789abcdef",i=r.length;for(let n=0;nL(t.length),"random"),F=(0,n.eW)(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),$=(0,n.eW)(function(t,e){let r=e.text.replace(n.SY.lineBreakRegex," "),[,i]=R(e.fontSize),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.style("text-anchor",e.anchor),a.style("font-family",e.fontFamily),a.style("font-size",i),a.style("font-weight",e.fontWeight),a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class);let o=a.append("tspan");return o.attr("x",e.x+2*e.textMargin),o.attr("fill",e.fill),o.text(r),a},"drawSimpleText"),W=(0,s.Z)((t,e,r)=>{if(!t)return t;if(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
    "},r),n.SY.lineBreakRegex.test(t))return t;let i=t.split(" ").filter(Boolean),a=[],o="";return i.forEach((t,n)=>{let s=Z(`${t} `,r),l=Z(o,r);if(s>e){let{hyphenatedStrings:i,remainingWord:n}=E(t,e,"-",r);a.push(o,...i),o=n}else l+s>=e?(a.push(o),o=t):o=[o,t].filter(Boolean).join(" ");n+1===i.length&&a.push(o)}),a.filter(t=>""!==t).join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),E=(0,s.Z)((t,e,r="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);let n=[...t],a=[],o="";return n.forEach((t,s)=>{let l=`${o}${t}`;if(Z(l,i)>=e){let t=n.length===s+1,e=`${l}${r}`;a.push(t?l:e),o=""}else o=l}),{hyphenatedStrings:a,remainingWord:o}},(t,e,r="-",i)=>`${t}${e}${r}${i.fontSize}${i.fontWeight}${i.fontFamily}`);function D(t,e){return O(t,e).height}function Z(t,e){return O(t,e).width}(0,n.eW)(D,"calculateTextHeight"),(0,n.eW)(Z,"calculateTextWidth");var O=(0,s.Z)((t,e)=>{let{fontSize:r=12,fontFamily:i="Arial",fontWeight:a=400}=e;if(!t)return{width:0,height:0};let[,s]=R(r),l=t.split(n.SY.lineBreakRegex),c=[],u=(0,o.Ys)("body");if(!u.remove)return{width:0,height:0,lineHeight:0};let d=u.append("svg");for(let t of["sans-serif",i]){let e=0,r={width:0,height:0,lineHeight:0};for(let i of l){let n=F();n.text=i||h;let o=$(d,n).style("font-size",s).style("font-weight",a).style("font-family",t),l=(o._groups||o)[0][0].getBBox();if(0===l.width&&0===l.height)throw Error("svg element not in render tree");r.width=Math.round(Math.max(r.width,l.width)),e=Math.round(l.height),r.height+=e,r.lineHeight=Math.round(Math.max(r.lineHeight,e))}c.push(r)}d.remove();let f=isNaN(c[1].height)||isNaN(c[1].width)||isNaN(c[1].lineHeight)||c[0].height>c[1].height&&c[0].width>c[1].width&&c[0].lineHeight>c[1].lineHeight?0:1;return c[f]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),N=class{constructor(t=!1,e){this.count=0,this.count=e?e.length:0,this.next=t?()=>this.count++:()=>Date.now()}static{(0,n.eW)(this,"InitIDGenerator")}},I=(0,n.eW)(function(t){return i=i||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),i.innerHTML=t,unescape(i.textContent)},"entityDecode");function z(t){return"str"in t}(0,n.eW)(z,"isDetailedError");var j=(0,n.eW)((t,e,r,i)=>{if(!i)return;let n=t.node()?.getBBox();if(!!n)t.append("text").text(i).attr("text-anchor","middle").attr("x",n.x+n.width/2).attr("y",-r).attr("class",e)},"insertTitle"),R=(0,n.eW)(t=>{if("number"==typeof t)return[t,t+"px"];let e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},"parseFontSize");function P(t,e){return(0,l.Z)({},t,e)}(0,n.eW)(P,"cleanAndMerge");var q={assignWithDepth:n.Yc,wrapLabel:W,calculateTextHeight:D,calculateTextWidth:Z,calculateTextDimensions:O,cleanAndMerge:P,detectInit:d,detectDirective:f,isSubstringInArray:g,interpolateToCurve:y,calcLabelPosition:C,calcCardinalityPosition:v,calcTerminalLabelPosition:T,formatUrl:m,getStylesFromArray:S,generateId:B,random:A,runFunc:x,entityDecode:I,insertTitle:j,parseFontSize:R,InitIDGenerator:N},H=(0,n.eW)(function(t){let e=t;return e=(e=(e=e.replace(/style.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/classDef.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/#\w+;/g,function(t){let e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"\uFB02\xb0\xb0"+e+"\xb6\xdf":"\uFB02\xb0"+e+"\xb6\xdf"})},"encodeEntities"),U=(0,n.eW)(function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),Y=(0,n.eW)((t,e,{counter:r=0,prefix:i,suffix:n})=>`${i?`${i}_`:""}${t}_${e}_${r}${n?`_${n}`:""}`,"getEdgeId");function V(t){return t??null}(0,n.eW)(V,"handleUndefinedAttr")},37971:function(t,e,r){"use strict";r.d(e,{C1:function(){return c},Lf:function(){return el},XO:function(){return k},Yn:function(){return eh},ZH:function(){return D},aH:function(){return eu},dW:function(){return eo},gU:function(){return ec},jr:function(){return d},us:function(){return E}});var i=r(9833),n=r(82612),a=r(41200),o=r(68394),s=r(74146),l=r(27818),h=r(74247),c=(0,s.eW)(async(t,e,r)=>{let i,n;let h=e.useHtmlLabels||(0,s.ku)(s.nV()?.htmlLabels);i=r?r:"node default";let c=t.insert("g").attr("class",i).attr("id",e.domId||e.id),u=c.insert("g").attr("class","label").attr("style",(0,o.R7)(e.labelStyle));n=void 0===e.label?"":"string"==typeof e.label?e.label:e.label[0];let d=await (0,a.rw)(u,(0,s.oO)((0,o.SH)(n),(0,s.nV)()),{useHtmlLabels:h,width:e.width||s.nV().flowchart?.wrappingWidth,cssClasses:"markdown-node-label",style:e.labelStyle,addSvgBackground:!!e.icon||!!e.img}),f=d.getBBox(),p=(e?.padding??0)/2;if(h){let t=d.children[0],e=(0,l.Ys)(d),r=t.getElementsByTagName("img");if(r){let t=""===n.replace(/]*>/g,"").trim();await Promise.all([...r].map(e=>new Promise(r=>{function i(){if(e.style.display="flex",e.style.flexDirection="column",t){let t=(0,s.nV)().fontSize?(0,s.nV)().fontSize:window.getComputedStyle(document.body).fontSize,[r=s.vZ.fontSize]=(0,o.VG)(t),i=5*r+"px";e.style.minWidth=i,e.style.maxWidth=i}else e.style.width="100%";r(e)}(0,s.eW)(i,"setupImage"),setTimeout(()=>{e.complete&&i()}),e.addEventListener("error",i),e.addEventListener("load",i)})))}f=t.getBoundingClientRect(),e.attr("width",f.width),e.attr("height",f.height)}return h?u.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"):u.attr("transform","translate(0, "+-f.height/2+")"),e.centerLabel&&u.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),u.insert("rect",":first-child"),{shapeSvg:c,bbox:f,halfPadding:p,label:u}},"labelHelper"),u=(0,s.eW)(async(t,e,r)=>{let i=r.useHtmlLabels||(0,s.ku)(s.nV()?.flowchart?.htmlLabels),n=t.insert("g").attr("class","label").attr("style",r.labelStyle||""),h=await (0,a.rw)(n,(0,s.oO)((0,o.SH)(e),(0,s.nV)()),{useHtmlLabels:i,width:r.width||s.nV()?.flowchart?.wrappingWidth,style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img}),c=h.getBBox(),u=r.padding/2;if((0,s.ku)(s.nV()?.flowchart?.htmlLabels)){let t=h.children[0],e=(0,l.Ys)(h);c=t.getBoundingClientRect(),e.attr("width",c.width),e.attr("height",c.height)}return i?n.attr("transform","translate("+-c.width/2+", "+-c.height/2+")"):n.attr("transform","translate(0, "+-c.height/2+")"),r.centerLabel&&n.attr("transform","translate("+-c.width/2+", "+-c.height/2+")"),n.insert("rect",":first-child"),{shapeSvg:t,bbox:c,halfPadding:u,label:n}},"insertLabel"),d=(0,s.eW)((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds"),f=(0,s.eW)((t,e)=>("handDrawn"===t.look?"rough-node":"node")+" "+t.cssClasses+" "+(e||""),"getNodeClasses");function p(t){let e=t.map((t,e)=>`${0===e?"M":"L"}${t.x},${t.y}`);return e.push("Z"),e.join(" ")}function g(t,e,r,i,n,a){let o=[],s=r-t,l=2*Math.PI/(s/a),h=e+(i-e)/2;for(let e=0;e<=50;e++){let r=t+e/50*s,i=h+n*Math.sin(l*(r-t));o.push({x:r,y:i})}return o}function y(t,e,r,i,n,a){let o=[],s=n*Math.PI/180,l=a*Math.PI/180,h=(l-s)/(i-1);for(let n=0;n{var r,i,n=t.x,a=t.y,o=e.x-n,s=e.y-a,l=t.width/2,h=t.height/2;return Math.abs(s)*l>Math.abs(o)*h?(s<0&&(h=-h),r=0===s?0:h*o/s,i=h):(o<0&&(l=-l),r=l,i=0===o?0:l*s/o),{x:n+r,y:a+i}},"intersectRect");function x(t,e){e&&t.attr("style",e)}async function b(t){let e=(0,l.Ys)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),i=t.label;t.label&&(0,s.l0)(t.label)&&(i=await (0,s.uT)(t.label.replace(s.SY.lineBreakRegex,"\n"),(0,s.nV)()));let n=t.isNode?"nodeLabel":"edgeLabel";return r.html('"+i+""),x(r,t.labelStyle),r.style("display","inline-block"),r.style("padding-right","1px"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}(0,s.eW)(x,"applyStyle"),(0,s.eW)(b,"addHtmlLabel");var k=(0,s.eW)(async(t,e,r,i)=>{let n=t||"";if("object"==typeof n&&(n=n[0]),(0,s.ku)((0,s.nV)().flowchart.htmlLabels)){n=n.replace(/\\n|\n/g,"
    "),s.cM.info("vertexText"+n);let t={isNode:i,label:(0,o.SH)(n).replace(/fa[blrs]?:fa-[\w-]+/g,t=>``),labelStyle:e?e.replace("fill:","color:"):e};return await b(t)}{let t=document.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",e.replace("color:","fill:"));let i=[];for(let e of i="string"==typeof n?n.split(/\\n|\n|/gi):Array.isArray(n)?n:[]){let i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),i.setAttribute("dy","1em"),i.setAttribute("x","0"),r?i.setAttribute("class","title-row"):i.setAttribute("class","row"),i.textContent=e.trim(),t.appendChild(i)}return t}},"createLabel"),C=(0,s.eW)((t,e,r,i,n)=>["M",t+n,e,"H",t+r-n,"A",n,n,0,0,1,t+r,e+n,"V",e+i-n,"A",n,n,0,0,1,t+r-n,e+i,"H",t+n,"A",n,n,0,0,1,t,e+i-n,"V",e+n,"A",n,n,0,0,1,t+n,e,"Z"].join(" "),"createRoundedRectPathD"),w=(0,s.eW)(t=>{let{handDrawnSeed:e}=(0,s.nV)();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}},"solidStateFill"),_=(0,s.eW)(t=>{let e=v([...t.cssCompiledStyles||[],...t.cssStyles||[]]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),v=(0,s.eW)(t=>{let e=new Map;return t.forEach(t=>{let[r,i]=t.split(":");e.set(r.trim(),i?.trim())}),e},"styles2Map"),T=(0,s.eW)(t=>{let{stylesArray:e}=_(t),r=[],i=[],n=[],a=[];return e.forEach(t=>{let e=t[0];"color"===e||"font-size"===e||"font-family"===e||"font-weight"===e||"font-style"===e||"text-decoration"===e||"text-align"===e||"text-transform"===e||"line-height"===e||"letter-spacing"===e||"word-spacing"===e||"text-shadow"===e||"text-overflow"===e||"white-space"===e||"word-wrap"===e||"word-break"===e||"overflow-wrap"===e||"hyphens"===e?r.push(t.join(":")+" !important"):(i.push(t.join(":")+" !important"),e.includes("stroke")&&n.push(t.join(":")+" !important"),"fill"===e&&a.push(t.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:i.join(";"),stylesArray:e,borderStyles:n,backgroundStyles:a}},"styles2String"),S=(0,s.eW)((t,e)=>{let{themeVariables:r,handDrawnSeed:i}=(0,s.nV)(),{nodeBorder:n,mainBkg:a}=r,{stylesMap:o}=_(t);return Object.assign({roughness:.7,fill:o.get("fill")||a,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:o.get("stroke")||n,seed:i,strokeWidth:o.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0]},e)},"userNodeOverrides"),M=(0,s.eW)(async(t,e)=>{let r;s.cM.info("Creating subgraph rect for ",e.id,e);let i=(0,s.nV)(),{themeVariables:o,handDrawnSeed:c}=i,{clusterBkg:u,clusterBorder:d}=o,{labelStyles:f,nodeStyles:p,borderStyles:g,backgroundStyles:y}=T(e),x=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),b=(0,s.ku)(i.flowchart.htmlLabels),k=x.insert("g").attr("class","cluster-label "),w=await (0,a.rw)(k,e.label,{style:e.labelStyle,useHtmlLabels:b,isNode:!0}),_=w.getBBox();if((0,s.ku)(i.flowchart.htmlLabels)){let t=w.children[0],e=(0,l.Ys)(w);_=t.getBoundingClientRect(),e.attr("width",_.width),e.attr("height",_.height)}let v=e.width<=_.width+e.padding?_.width+e.padding:e.width;e.width<=_.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let M=e.height,B=e.x-v/2,L=e.y-M/2;if(s.cM.trace("Data ",e,JSON.stringify(e)),"handDrawn"===e.look){let t=h.Z.svg(x),i=S(e,{roughness:.7,fill:u,stroke:d,fillWeight:3,seed:c}),n=t.path(C(B,L,v,M,0),i);(r=x.insert(()=>(s.cM.debug("Rough node insert CXC",n),n),":first-child")).select("path:nth-child(2)").attr("style",g.join(";")),r.select("path").attr("style",y.join(";").replace("fill","stroke"))}else(r=x.insert("rect",":first-child")).attr("style",p).attr("rx",e.rx).attr("ry",e.ry).attr("x",B).attr("y",L).attr("width",v).attr("height",M);let{subGraphTitleTopMargin:A}=(0,n.L)(i);if(k.attr("transform",`translate(${e.x-_.width/2}, ${e.y-e.height/2+A})`),f){let t=k.select("span");t&&t.attr("style",f)}let F=r.node().getBBox();return e.offsetX=0,e.width=F.width,e.height=F.height,e.offsetY=_.height-e.padding/2,e.intersect=function(t){return m(e,t)},{cluster:x,labelBBox:_}},"rect"),B=(0,s.eW)((t,e)=>{let r=t.insert("g").attr("class","note-cluster").attr("id",e.id),i=r.insert("rect",":first-child"),n=0*e.padding,a=n/2;i.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-a).attr("y",e.y-e.height/2-a).attr("width",e.width+n).attr("height",e.height+n).attr("fill","none");let o=i.node().getBBox();return e.width=o.width,e.height=o.height,e.intersect=function(t){return m(e,t)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),L=(0,s.eW)(async(t,e)=>{let r;let i=(0,s.nV)(),{themeVariables:n,handDrawnSeed:a}=i,{altBackground:o,compositeBackground:c,compositeTitleBackground:u,nodeBorder:d}=n,f=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-id",e.id).attr("data-look",e.look),p=f.insert("g",":first-child"),g=f.insert("g").attr("class","cluster-label"),y=f.append("rect"),x=g.node().appendChild(await k(e.label,e.labelStyle,void 0,!0)),b=x.getBBox();if((0,s.ku)(i.flowchart.htmlLabels)){let t=x.children[0],e=(0,l.Ys)(x);b=t.getBoundingClientRect(),e.attr("width",b.width),e.attr("height",b.height)}let w=0*e.padding,_=(e.width<=b.width+e.padding?b.width+e.padding:e.width)+w;e.width<=b.width+e.padding?e.diff=(_-e.width)/2-e.padding:e.diff=-e.padding;let v=e.height+w,T=e.height+w-b.height-6,S=e.x-_/2,M=e.y-v/2;e.width=_;let B=e.y-e.height/2-w/2+b.height+2;if("handDrawn"===e.look){let t=e.cssClasses.includes("statediagram-cluster-alt"),i=h.Z.svg(f),n=e.rx||e.ry?i.path(C(S,M,_,v,10),{roughness:.7,fill:u,fillStyle:"solid",stroke:d,seed:a}):i.rectangle(S,M,_,v,{seed:a});r=f.insert(()=>n,":first-child");let s=i.rectangle(S,B,_,T,{fill:t?o:c,fillStyle:t?"hachure":"solid",stroke:d,seed:a});r=f.insert(()=>n,":first-child"),y=f.insert(()=>s)}else{r=p.insert("rect",":first-child");r.attr("class","outer").attr("x",S).attr("y",M).attr("width",_).attr("height",v).attr("data-look",e.look),y.attr("class","inner").attr("x",S).attr("y",B).attr("width",_).attr("height",T)}g.attr("transform",`translate(${e.x-b.width/2}, ${M+1-((0,s.ku)(i.flowchart.htmlLabels)?0:3)})`);let L=r.node().getBBox();return e.height=L.height,e.offsetX=0,e.offsetY=b.height-e.padding/2,e.labelBBox=b,e.intersect=function(t){return m(e,t)},{cluster:f,labelBBox:b}},"roundedWithTitle"),A=(0,s.eW)(async(t,e)=>{let r;s.cM.info("Creating subgraph rect for ",e.id,e);let i=(0,s.nV)(),{themeVariables:o,handDrawnSeed:c}=i,{clusterBkg:u,clusterBorder:d}=o,{labelStyles:f,nodeStyles:p,borderStyles:g,backgroundStyles:y}=T(e),x=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),b=(0,s.ku)(i.flowchart.htmlLabels),k=x.insert("g").attr("class","cluster-label "),w=await (0,a.rw)(k,e.label,{style:e.labelStyle,useHtmlLabels:b,isNode:!0,width:e.width}),_=w.getBBox();if((0,s.ku)(i.flowchart.htmlLabels)){let t=w.children[0],e=(0,l.Ys)(w);_=t.getBoundingClientRect(),e.attr("width",_.width),e.attr("height",_.height)}let v=e.width<=_.width+e.padding?_.width+e.padding:e.width;e.width<=_.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let M=e.height,B=e.x-v/2,L=e.y-M/2;if(s.cM.trace("Data ",e,JSON.stringify(e)),"handDrawn"===e.look){let t=h.Z.svg(x),i=S(e,{roughness:.7,fill:u,stroke:d,fillWeight:4,seed:c}),n=t.path(C(B,L,v,M,e.rx),i);(r=x.insert(()=>(s.cM.debug("Rough node insert CXC",n),n),":first-child")).select("path:nth-child(2)").attr("style",g.join(";")),r.select("path").attr("style",y.join(";").replace("fill","stroke"))}else(r=x.insert("rect",":first-child")).attr("style",p).attr("rx",e.rx).attr("ry",e.ry).attr("x",B).attr("y",L).attr("width",v).attr("height",M);let{subGraphTitleTopMargin:A}=(0,n.L)(i);if(k.attr("transform",`translate(${e.x-_.width/2}, ${e.y-e.height/2+A})`),f){let t=k.select("span");t&&t.attr("style",f)}let F=r.node().getBBox();return e.offsetX=0,e.width=F.width,e.height=F.height,e.offsetY=_.height-e.padding/2,e.intersect=function(t){return m(e,t)},{cluster:x,labelBBox:_}},"kanbanSection"),F=(0,s.eW)((t,e)=>{let r;let{themeVariables:i,handDrawnSeed:n}=(0,s.nV)(),{nodeBorder:a}=i,o=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-look",e.look),l=o.insert("g",":first-child"),c=0*e.padding,u=e.width+c;e.diff=-e.padding;let d=e.height+c,f=e.x-u/2,p=e.y-d/2;if(e.width=u,"handDrawn"===e.look){let t=h.Z.svg(o).rectangle(f,p,u,d,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:a,seed:n});r=o.insert(()=>t,":first-child")}else{r=l.insert("rect",":first-child");r.attr("class","divider").attr("x",f).attr("y",p).attr("width",u).attr("height",d).attr("data-look",e.look)}let g=r.node().getBBox();return e.height=g.height,e.offsetX=0,e.offsetY=0,e.intersect=function(t){return m(e,t)},{cluster:o,labelBBox:{}}},"divider"),$={rect:M,squareRect:M,roundedWithTitle:L,noteGroup:B,divider:F,kanbanSection:A},W=new Map,E=(0,s.eW)(async(t,e)=>{let r=e.shape||"rect",i=await $[r](t,e);return W.set(e.id,i),i},"insertCluster"),D=(0,s.eW)(()=>{W=new Map},"clear");function Z(t,e){return t.intersect(e)}(0,s.eW)(Z,"intersectNode");function O(t,e,r,i){var n=t.x,a=t.y,o=n-i.x,s=a-i.y,l=Math.sqrt(e*e*s*s+r*r*o*o),h=Math.abs(e*r*o/l);i.x0}(0,s.eW)(I,"intersectLine"),(0,s.eW)(z,"sameSign");function j(t,e,r){let i=t.x,n=t.y,a=[],o=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach(function(t){o=Math.min(o,t.x),s=Math.min(s,t.y)}):(o=Math.min(o,e.x),s=Math.min(s,e.y));let l=i-t.width/2-o,h=n-t.height/2-s;for(let i=0;i1&&a.sort(function(t,e){let i=t.x-r.x,n=t.y-r.y,a=Math.sqrt(i*i+n*n),o=e.x-r.x,s=e.y-r.y,l=Math.sqrt(o*o+s*s);return ap,":first-child");return g.attr("class","anchor").attr("style",(0,o.R7)(l)),d(e,g),e.intersect=function(t){return s.cM.info("Circle intersect",e,1,t),R.circle(e,1,t)},a}function q(t,e,r,i,n,a,o){let s=Math.atan2(i-e,r-t),l=Math.sqrt(((r-t)/2/n)**2+((i-e)/2/a)**2);if(l>1)throw Error("The given radii are too small to create an arc between the points.");let h=Math.sqrt(1-l**2),c=(t+r)/2+h*a*Math.sin(s)*(o?-1:1),u=(e+i)/2-h*n*Math.cos(s)*(o?-1:1),d=Math.atan2((e-u)/a,(t-c)/n),f=Math.atan2((i-u)/a,(r-c)/n)-d;o&&f<0&&(f+=2*Math.PI),!o&&f>0&&(f-=2*Math.PI);let p=[];for(let t=0;t<20;t++){let e=d+t/19*f,r=c+n*Math.cos(e),i=u+a*Math.sin(e);p.push({x:r,y:i})}return p}async function H(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a}=await c(t,e,f(e)),o=a.width+e.padding+20,s=a.height+e.padding,l=s/2,u=l/(2.5+s/50),{cssStyles:g}=e,y=[{x:o/2,y:-s/2},{x:-o/2,y:-s/2},...q(-o/2,-s/2,-o/2,s/2,u,l,!1),{x:o/2,y:s/2},...q(o/2,s/2,o/2,-s/2,u,l,!0)],m=h.Z.svg(n),x=S(e,{});"handDrawn"!==e.look&&(x.roughness=0,x.fillStyle="solid");let b=p(y),k=m.path(b,x),C=n.insert(()=>k,":first-child");return C.attr("class","basic label-container"),g&&"handDrawn"!==e.look&&C.selectAll("path").attr("style",g),i&&"handDrawn"!==e.look&&C.selectAll("path").attr("style",i),C.attr("transform",`translate(${u/2}, 0)`),d(e,C),e.intersect=function(t){return R.polygon(e,y,t)},n}function U(t,e,r,i){return t.insert("polygon",":first-child").attr("points",i.map(function(t){return t.x+","+t.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}async function Y(t,e){let r;let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await c(t,e,f(e)),s=o.height+e.padding,l=o.width+e.padding+12,u=-s,g=[{x:12,y:u},{x:l,y:u},{x:l,y:0},{x:0,y:0},{x:0,y:u+12},{x:12,y:u}],{cssStyles:y}=e;if("handDrawn"===e.look){let t=h.Z.svg(a),i=S(e,{}),n=p(g),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-l/2}, ${s/2})`),y&&r.attr("style",y)}else r=U(a,l,s,g);return n&&r.attr("style",n),d(e,r),e.intersect=function(t){return R.polygon(e,g,t)},a}function V(t,e){let{nodeStyles:r}=T(e);e.label="";let i=t.insert("g").attr("class",f(e)).attr("id",e.domId??e.id),{cssStyles:n}=e,a=Math.max(28,e.width??0),o=[{x:0,y:a/2},{x:a/2,y:0},{x:0,y:-a/2},{x:-a/2,y:0}],s=h.Z.svg(i),l=S(e,{});"handDrawn"!==e.look&&(l.roughness=0,l.fillStyle="solid");let c=p(o),u=s.path(c,l),d=i.insert(()=>u,":first-child");return n&&"handDrawn"!==e.look&&d.selectAll("path").attr("style",n),r&&"handDrawn"!==e.look&&d.selectAll("path").attr("style",r),e.width=28,e.height=28,e.intersect=function(t){return R.polygon(e,o,t)},i}async function G(t,e){let r;let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{shapeSvg:a,bbox:l,halfPadding:u}=await c(t,e,f(e)),p=l.width/2+u,{cssStyles:g}=e;if("handDrawn"===e.look){let t=h.Z.svg(a),i=S(e,{}),n=t.circle(0,0,2*p,i);(r=a.insert(()=>n,":first-child")).attr("class","basic label-container").attr("style",(0,o.R7)(g))}else r=a.insert("circle",":first-child").attr("class","basic label-container").attr("style",n).attr("r",p).attr("cx",0).attr("cy",0);return d(e,r),e.intersect=function(t){return s.cM.info("Circle intersect",e,p,t),R.circle(e,p,t)},a}function X(t){let e=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4),i=2*t,n={x:i/2*e,y:i/2*r},a={x:-(i/2)*e,y:i/2*r},o={x:-(i/2)*e,y:-(i/2)*r},s={x:i/2*e,y:-(i/2)*r};return`M ${a.x},${a.y} L ${s.x},${s.y} + M ${n.x},${n.y} L ${o.x},${o.y}`}function Q(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r,e.label="";let n=t.insert("g").attr("class",f(e)).attr("id",e.domId??e.id),a=Math.max(30,e?.width??0),{cssStyles:o}=e,l=h.Z.svg(n),c=S(e,{});"handDrawn"!==e.look&&(c.roughness=0,c.fillStyle="solid");let u=l.circle(0,0,2*a,c),p=X(a),g=l.path(p,c),y=n.insert(()=>u,":first-child");return y.insert(()=>g),o&&"handDrawn"!==e.look&&y.selectAll("path").attr("style",o),i&&"handDrawn"!==e.look&&y.selectAll("path").attr("style",i),d(e,y),e.intersect=function(t){return s.cM.info("crossedCircle intersect",e,{radius:a,point:t}),R.circle(e,a,t)},n}function K(t,e,r,i=100,n=0,a=180){let o=[],s=n*Math.PI/180,l=a*Math.PI/180,h=(l-s)/(i-1);for(let n=0;n_,":first-child").attr("stroke-opacity",0),v.insert(()=>C,":first-child"),v.attr("class","text"),g&&"handDrawn"!==e.look&&v.selectAll("path").attr("style",g),i&&"handDrawn"!==e.look&&v.selectAll("path").attr("style",i),v.attr("transform",`translate(${u}, 0)`),o.attr("transform",`translate(${-s/2+u-(a.x-(a.left??0))},${-l/2+(e.padding??0)/2-(a.y-(a.top??0))})`),d(e,v),e.intersect=function(t){return R.polygon(e,m,t)},n}function tt(t,e,r,i=100,n=0,a=180){let o=[],s=n*Math.PI/180,l=a*Math.PI/180,h=(l-s)/(i-1);for(let n=0;n_,":first-child").attr("stroke-opacity",0),v.insert(()=>C,":first-child"),v.attr("class","text"),g&&"handDrawn"!==e.look&&v.selectAll("path").attr("style",g),i&&"handDrawn"!==e.look&&v.selectAll("path").attr("style",i),v.attr("transform",`translate(${-u}, 0)`),o.attr("transform",`translate(${-s/2+(e.padding??0)/2-(a.x-(a.left??0))},${-l/2+(e.padding??0)/2-(a.y-(a.top??0))})`),d(e,v),e.intersect=function(t){return R.polygon(e,m,t)},n}function tr(t,e,r,i=100,n=0,a=180){let o=[],s=n*Math.PI/180,l=a*Math.PI/180,h=(l-s)/(i-1);for(let n=0;nB,":first-child").attr("stroke-opacity",0),L.insert(()=>w,":first-child"),L.insert(()=>v,":first-child"),L.attr("class","text"),g&&"handDrawn"!==e.look&&L.selectAll("path").attr("style",g),i&&"handDrawn"!==e.look&&L.selectAll("path").attr("style",i),L.attr("transform",`translate(${u-u/4}, 0)`),o.attr("transform",`translate(${-s/2+(e.padding??0)/2-(a.x-(a.left??0))},${-l/2+(e.padding??0)/2-(a.y-(a.top??0))})`),d(e,L),e.intersect=function(t){return R.polygon(e,x,t)},n}async function tn(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a}=await c(t,e,f(e)),o=Math.max(80,(a.width+(e.padding??0)*2)*1.25,e?.width??0),s=Math.max(20,a.height+(e.padding??0)*2,e?.height??0),l=s/2,{cssStyles:u}=e,g=h.Z.svg(n),m=S(e,{});"handDrawn"!==e.look&&(m.roughness=0,m.fillStyle="solid");let x=o-l,b=s/4,k=[{x:x,y:0},{x:b,y:0},{x:0,y:s/2},{x:b,y:s},{x:x,y:s},...y(-x,-s/2,l,50,270,90)],C=p(k),w=g.path(C,m),_=n.insert(()=>w,":first-child");return _.attr("class","basic label-container"),u&&"handDrawn"!==e.look&&_.selectChildren("path").attr("style",u),i&&"handDrawn"!==e.look&&_.selectChildren("path").attr("style",i),_.attr("transform",`translate(${-o/2}, ${-s/2})`),d(e,_),e.intersect=function(t){return R.polygon(e,k,t)},n}(0,s.eW)(P,"anchor"),(0,s.eW)(q,"generateArcPoints"),(0,s.eW)(H,"bowTieRect"),(0,s.eW)(U,"insertPolygonShape"),(0,s.eW)(Y,"card"),(0,s.eW)(V,"choice"),(0,s.eW)(G,"circle"),(0,s.eW)(X,"createLine"),(0,s.eW)(Q,"crossedCircle"),(0,s.eW)(K,"generateCirclePoints"),(0,s.eW)(J,"curlyBraceLeft"),(0,s.eW)(tt,"generateCirclePoints"),(0,s.eW)(te,"curlyBraceRight"),(0,s.eW)(tr,"generateCirclePoints"),(0,s.eW)(ti,"curlyBraces"),(0,s.eW)(tn,"curvedTrapezoid");var ta=(0,s.eW)((t,e,r,i,n,a)=>`M${t},${e+a} a${n},${a} 0,0,0 ${r},0 a${n},${a} 0,0,0 ${-r},0 l0,${i} a${n},${a} 0,0,0 ${r},0 l0,${-i}`,"createCylinderPathD"),to=(0,s.eW)((t,e,r,i,n,a)=>`M${t},${e+a} M${t+r},${e+a} a${n},${a} 0,0,0 ${-r},0 l0,${i} a${n},${a} 0,0,0 ${r},0 l0,${-i}`,"createOuterCylinderPathD"),ts=(0,s.eW)((t,e,r,i,n,a)=>`M${t-r/2},${-i/2} a${n},${a} 0,0,0 ${r},0`,"createInnerCylinderPathD");async function tl(t,e){let r;let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{shapeSvg:a,bbox:s,label:l}=await c(t,e,f(e)),u=Math.max(s.width+e.padding,e.width??0),p=u/2,g=p/(2.5+u/50),y=Math.max(s.height+g+e.padding,e.height??0),{cssStyles:m}=e;if("handDrawn"===e.look){let t=h.Z.svg(a),i=to(0,0,u,y,p,g),n=ts(0,g,u,y,p,g),o=t.path(i,S(e,{})),s=t.path(n,S(e,{fill:"none"}));r=a.insert(()=>s,":first-child"),(r=a.insert(()=>o,":first-child")).attr("class","basic label-container"),m&&r.attr("style",m)}else{let t=ta(0,0,u,y,p,g);r=a.insert("path",":first-child").attr("d",t).attr("class","basic label-container").attr("style",(0,o.R7)(m)).attr("style",n)}return r.attr("label-offset-y",g),r.attr("transform",`translate(${-u/2}, ${-(y/2+g)})`),d(e,r),l.attr("transform",`translate(${-(s.width/2)-(s.x-(s.left??0))}, ${-(s.height/2)+(e.padding??0)/1.5-(s.y-(s.top??0))})`),e.intersect=function(t){let r=R.rect(e,t),i=r.x-(e.x??0);if(0!=p&&(Math.abs(i)<(e.width??0)/2||Math.abs(i)==(e.width??0)/2&&Math.abs(r.y-(e.y??0))>(e.height??0)/2-g)){let n=g*g*(1-i*i/(p*p));n>0&&(n=Math.sqrt(n)),n=g-n,t.y-(e.y??0)>0&&(n=-n),r.y+=n}return r},a}async function th(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a,label:o}=await c(t,e,f(e)),s=a.width+e.padding,l=a.height+e.padding,u=.2*l,p=-s/2,g=-l/2-u/2,{cssStyles:y}=e,m=h.Z.svg(n),x=S(e,{});"handDrawn"!==e.look&&(x.roughness=0,x.fillStyle="solid");let b=m.polygon([{x:p,y:g+u},{x:-p,y:g+u},{x:-p,y:-g},{x:p,y:-g},{x:p,y:g},{x:-p,y:g},{x:-p,y:g+u}].map(t=>[t.x,t.y]),x),k=n.insert(()=>b,":first-child");return k.attr("class","basic label-container"),y&&"handDrawn"!==e.look&&k.selectAll("path").attr("style",y),i&&"handDrawn"!==e.look&&k.selectAll("path").attr("style",i),o.attr("transform",`translate(${p+(e.padding??0)/2-(a.x-(a.left??0))}, ${g+u+(e.padding??0)/2-(a.y-(a.top??0))})`),d(e,k),e.intersect=function(t){return R.rect(e,t)},n}async function tc(t,e){let r;let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{shapeSvg:a,bbox:l,halfPadding:u}=await c(t,e,f(e)),p=l.width/2+u+5,g=l.width/2+u,{cssStyles:y}=e;if("handDrawn"===e.look){let t=h.Z.svg(a),i=S(e,{roughness:.2,strokeWidth:2.5}),n=S(e,{roughness:.2,strokeWidth:1.5}),s=t.circle(0,0,2*p,i),l=t.circle(0,0,2*g,n);(r=a.insert("g",":first-child")).attr("class",(0,o.R7)(e.cssClasses)).attr("style",(0,o.R7)(y)),r.node()?.appendChild(s),r.node()?.appendChild(l)}else{let t=(r=a.insert("g",":first-child")).insert("circle",":first-child"),e=r.insert("circle");r.attr("class","basic label-container").attr("style",n),t.attr("class","outer-circle").attr("style",n).attr("r",p).attr("cx",0).attr("cy",0),e.attr("class","inner-circle").attr("style",n).attr("r",g).attr("cx",0).attr("cy",0)}return d(e,r),e.intersect=function(t){return s.cM.info("DoubleCircle intersect",e,p,t),R.circle(e,p,t)},a}function tu(t,e,{config:{themeVariables:r}}){let{labelStyles:i,nodeStyles:n}=T(e);e.label="",e.labelStyle=i;let a=t.insert("g").attr("class",f(e)).attr("id",e.domId??e.id),{cssStyles:o}=e,l=h.Z.svg(a),{nodeBorder:c}=r,u=S(e,{fillStyle:"solid"});"handDrawn"!==e.look&&(u.roughness=0);let p=l.circle(0,0,14,u),g=a.insert(()=>p,":first-child");return g.selectAll("path").attr("style",`fill: ${c} !important;`),o&&o.length>0&&"handDrawn"!==e.look&&g.selectAll("path").attr("style",o),n&&"handDrawn"!==e.look&&g.selectAll("path").attr("style",n),d(e,g),e.intersect=function(t){return s.cM.info("filledCircle intersect",e,{radius:7,point:t}),R.circle(e,7,t)},a}async function td(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a,label:o}=await c(t,e,f(e)),l=a.width+(e.padding??0),u=l+a.height,g=l+a.height,y=[{x:0,y:-u},{x:g,y:-u},{x:g/2,y:0}],{cssStyles:m}=e,x=h.Z.svg(n),b=S(e,{});"handDrawn"!==e.look&&(b.roughness=0,b.fillStyle="solid");let k=p(y),C=x.path(k,b),w=n.insert(()=>C,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`);return m&&"handDrawn"!==e.look&&w.selectChildren("path").attr("style",m),i&&"handDrawn"!==e.look&&w.selectChildren("path").attr("style",i),e.width=l,e.height=u,d(e,w),o.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${-u/2+(e.padding??0)/2+(a.y-(a.top??0))})`),e.intersect=function(t){return s.cM.info("Triangle intersect",e,y,t),R.polygon(e,y,t)},n}function tf(t,e,{dir:r,config:{state:i,themeVariables:n}}){let{nodeStyles:a}=T(e);e.label="";let o=t.insert("g").attr("class",f(e)).attr("id",e.domId??e.id),{cssStyles:s}=e,l=Math.max(70,e?.width??0),c=Math.max(10,e?.height??0);"LR"===r&&(l=Math.max(10,e?.width??0),c=Math.max(70,e?.height??0));let u=-1*l/2,p=-1*c/2,g=h.Z.svg(o),y=S(e,{stroke:n.lineColor,fill:n.lineColor});"handDrawn"!==e.look&&(y.roughness=0,y.fillStyle="solid");let m=g.rectangle(u,p,l,c,y),x=o.insert(()=>m,":first-child");s&&"handDrawn"!==e.look&&x.selectAll("path").attr("style",s),a&&"handDrawn"!==e.look&&x.selectAll("path").attr("style",a),d(e,x);let b=i?.padding??0;return e.width&&e.height&&(e.width+=b/2||0,e.height+=b/2||0),e.intersect=function(t){return R.rect(e,t)},o}async function tp(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a}=await c(t,e,f(e)),o=Math.max(80,a.width+(e.padding??0)*2,e?.width??0),l=Math.max(50,a.height+(e.padding??0)*2,e?.height??0),u=l/2,{cssStyles:g}=e,m=h.Z.svg(n),x=S(e,{});"handDrawn"!==e.look&&(x.roughness=0,x.fillStyle="solid");let b=[{x:-o/2,y:-l/2},{x:o/2-u,y:-l/2},...y(-o/2+u,0,u,50,90,270),{x:o/2-u,y:l/2},{x:-o/2,y:l/2}],k=p(b),C=m.path(k,x),w=n.insert(()=>C,":first-child");return w.attr("class","basic label-container"),g&&"handDrawn"!==e.look&&w.selectChildren("path").attr("style",g),i&&"handDrawn"!==e.look&&w.selectChildren("path").attr("style",i),d(e,w),e.intersect=function(t){return s.cM.info("Pill intersect",e,{radius:u,point:t}),R.polygon(e,b,t)},n}(0,s.eW)(tl,"cylinder"),(0,s.eW)(th,"dividedRectangle"),(0,s.eW)(tc,"doublecircle"),(0,s.eW)(tu,"filledCircle"),(0,s.eW)(td,"flippedTriangle"),(0,s.eW)(tf,"forkJoin"),(0,s.eW)(tp,"halfRoundedRectangle");var tg=(0,s.eW)((t,e,r,i,n)=>`M${t+n},${e} L${t+r-n},${e} L${t+r},${e-i/2} L${t+r-n},${e-i} L${t+n},${e-i} L${t},${e-i/2} Z`,"createHexagonPathD");async function ty(t,e){let r;let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await c(t,e,f(e)),s=o.height+e.padding,l=s/4,u=o.width+2*l+e.padding,p=[{x:l,y:0},{x:u-l,y:0},{x:u,y:-s/2},{x:u-l,y:-s},{x:l,y:-s},{x:0,y:-s/2}],{cssStyles:g}=e;if("handDrawn"===e.look){let t=h.Z.svg(a),i=S(e,{}),n=tg(0,0,u,s,l),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-u/2}, ${s/2})`),g&&r.attr("style",g)}else r=U(a,u,s,p);return n&&r.attr("style",n),e.width=u,e.height=s,d(e,r),e.intersect=function(t){return R.polygon(e,p,t)},a}async function tm(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.label="",e.labelStyle=r;let{shapeSvg:n}=await c(t,e,f(e)),a=Math.max(30,e?.width??0),o=Math.max(30,e?.height??0),{cssStyles:l}=e,u=h.Z.svg(n),g=S(e,{});"handDrawn"!==e.look&&(g.roughness=0,g.fillStyle="solid");let y=[{x:0,y:0},{x:a,y:0},{x:0,y:o},{x:a,y:o}],m=p(y),x=u.path(m,g),b=n.insert(()=>x,":first-child");return b.attr("class","basic label-container"),l&&"handDrawn"!==e.look&&b.selectChildren("path").attr("style",l),i&&"handDrawn"!==e.look&&b.selectChildren("path").attr("style",i),b.attr("transform",`translate(${-a/2}, ${-o/2})`),d(e,b),e.intersect=function(t){return s.cM.info("Pill intersect",e,{points:y}),R.polygon(e,y,t)},n}async function tx(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:a}=T(e);e.labelStyle=a;let o=e.assetHeight??48,l=Math.max(o,e.assetWidth??48),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:f,bbox:p,label:g}=await c(t,e,"icon-shape default"),y="t"===e.pos,{nodeBorder:m}=r,{stylesMap:x}=_(e),b=-l/2,k=-l/2,C=e.label?8:0,w=h.Z.svg(f),v=S(e,{stroke:"none",fill:"none"});"handDrawn"!==e.look&&(v.roughness=0,v.fillStyle="solid");let M=w.rectangle(b,k,l,l,v),B=Math.max(l,p.width),L=l+p.height+C,A=w.rectangle(-B/2,-L/2,B,L,{...v,fill:"transparent",stroke:"none"}),F=f.insert(()=>M,":first-child"),$=f.insert(()=>A);if(e.icon){let t=f.append("g");t.html(`${await (0,i.s4)(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let r=t.node().getBBox(),n=r.width,a=r.height,o=r.x,s=r.y;t.attr("transform",`translate(${-n/2-o},${y?p.height/2+C/2-a/2-s:-p.height/2-C/2-a/2-s})`),t.attr("style",`color: ${x.get("stroke")??m};`)}return g.attr("transform",`translate(${-p.width/2-(p.x-(p.left??0))},${y?-L/2:L/2-p.height})`),F.attr("transform",`translate(0,${y?p.height/2+C/2:-p.height/2-C/2})`),d(e,$),e.intersect=function(t){if(s.cM.info("iconSquare intersect",e,t),!e.label)return R.rect(e,t);let r=e.x??0,i=e.y??0,n=e.height??0,a=[];return a=y?[{x:r-p.width/2,y:i-n/2},{x:r+p.width/2,y:i-n/2},{x:r+p.width/2,y:i-n/2+p.height+C},{x:r+l/2,y:i-n/2+p.height+C},{x:r+l/2,y:i+n/2},{x:r-l/2,y:i+n/2},{x:r-l/2,y:i-n/2+p.height+C},{x:r-p.width/2,y:i-n/2+p.height+C}]:[{x:r-l/2,y:i-n/2},{x:r+l/2,y:i-n/2},{x:r+l/2,y:i-n/2+l},{x:r+p.width/2,y:i-n/2+l},{x:r+p.width/2/2,y:i+n/2},{x:r-p.width/2,y:i+n/2},{x:r-p.width/2,y:i-n/2+l},{x:r-l/2,y:i-n/2+l}],R.polygon(e,a,t)},f}async function tb(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:a}=T(e);e.labelStyle=a;let o=e.assetHeight??48,l=Math.max(o,e.assetWidth??48),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:f,bbox:p,label:g}=await c(t,e,"icon-shape default"),y=e.label?8:0,m="t"===e.pos,{nodeBorder:x,mainBkg:b}=r,{stylesMap:k}=_(e),C=h.Z.svg(f),w=S(e,{});"handDrawn"!==e.look&&(w.roughness=0,w.fillStyle="solid");let v=k.get("fill");w.stroke=v??b;let M=f.append("g");e.icon&&M.html(`${await (0,i.s4)(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let B=M.node().getBBox(),L=B.width,A=B.height,F=B.x,$=B.y,W=Math.max(L,A)*Math.SQRT2+40,E=C.circle(0,0,W,w),D=Math.max(W,p.width),Z=W+p.height+y,O=C.rectangle(-D/2,-Z/2,D,Z,{...w,fill:"transparent",stroke:"none"}),N=f.insert(()=>E,":first-child"),I=f.insert(()=>O);return M.attr("transform",`translate(${-L/2-F},${m?p.height/2+y/2-A/2-$:-p.height/2-y/2-A/2-$})`),M.attr("style",`color: ${k.get("stroke")??x};`),g.attr("transform",`translate(${-p.width/2-(p.x-(p.left??0))},${m?-Z/2:Z/2-p.height})`),N.attr("transform",`translate(0,${m?p.height/2+y/2:-p.height/2-y/2})`),d(e,I),e.intersect=function(t){return s.cM.info("iconSquare intersect",e,t),R.rect(e,t)},f}async function tk(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:a}=T(e);e.labelStyle=a;let o=e.assetHeight??48,l=Math.max(o,e.assetWidth??48),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:f,bbox:p,halfPadding:g,label:y}=await c(t,e,"icon-shape default"),m="t"===e.pos,x=l+2*g,b=l+2*g,{nodeBorder:k,mainBkg:w}=r,{stylesMap:v}=_(e),M=-b/2,B=e.label?8:0,L=h.Z.svg(f),A=S(e,{});"handDrawn"!==e.look&&(A.roughness=0,A.fillStyle="solid");let F=v.get("fill");A.stroke=F??w;let $=L.path(C(M,-x/2,b,x,5),A),W=Math.max(b,p.width),E=x+p.height+B,D=L.rectangle(-W/2,-E/2,W,E,{...A,fill:"transparent",stroke:"none"}),Z=f.insert(()=>$,":first-child").attr("class","icon-shape2"),O=f.insert(()=>D);if(e.icon){let t=f.append("g");t.html(`${await (0,i.s4)(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let r=t.node().getBBox(),n=r.width,a=r.height,o=r.x,s=r.y;t.attr("transform",`translate(${-n/2-o},${m?p.height/2+B/2-a/2-s:-p.height/2-B/2-a/2-s})`),t.attr("style",`color: ${v.get("stroke")??k};`)}return y.attr("transform",`translate(${-p.width/2-(p.x-(p.left??0))},${m?-E/2:E/2-p.height})`),Z.attr("transform",`translate(0,${m?p.height/2+B/2:-p.height/2-B/2})`),d(e,O),e.intersect=function(t){if(s.cM.info("iconSquare intersect",e,t),!e.label)return R.rect(e,t);let r=e.x??0,i=e.y??0,n=e.height??0,a=[];return a=m?[{x:r-p.width/2,y:i-n/2},{x:r+p.width/2,y:i-n/2},{x:r+p.width/2,y:i-n/2+p.height+B},{x:r+b/2,y:i-n/2+p.height+B},{x:r+b/2,y:i+n/2},{x:r-b/2,y:i+n/2},{x:r-b/2,y:i-n/2+p.height+B},{x:r-p.width/2,y:i-n/2+p.height+B}]:[{x:r-b/2,y:i-n/2},{x:r+b/2,y:i-n/2},{x:r+b/2,y:i-n/2+x},{x:r+p.width/2,y:i-n/2+x},{x:r+p.width/2/2,y:i+n/2},{x:r-p.width/2,y:i+n/2},{x:r-p.width/2,y:i-n/2+x},{x:r-b/2,y:i-n/2+x}],R.polygon(e,a,t)},f}async function tC(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:a}=T(e);e.labelStyle=a;let o=e.assetHeight??48,l=Math.max(o,e.assetWidth??48),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:f,bbox:p,halfPadding:g,label:y}=await c(t,e,"icon-shape default"),m="t"===e.pos,x=l+2*g,b=l+2*g,{nodeBorder:k,mainBkg:w}=r,{stylesMap:v}=_(e),M=-b/2,B=e.label?8:0,L=h.Z.svg(f),A=S(e,{});"handDrawn"!==e.look&&(A.roughness=0,A.fillStyle="solid");let F=v.get("fill");A.stroke=F??w;let $=L.path(C(M,-x/2,b,x,.1),A),W=Math.max(b,p.width),E=x+p.height+B,D=L.rectangle(-W/2,-E/2,W,E,{...A,fill:"transparent",stroke:"none"}),Z=f.insert(()=>$,":first-child"),O=f.insert(()=>D);if(e.icon){let t=f.append("g");t.html(`${await (0,i.s4)(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let r=t.node().getBBox(),n=r.width,a=r.height,o=r.x,s=r.y;t.attr("transform",`translate(${-n/2-o},${m?p.height/2+B/2-a/2-s:-p.height/2-B/2-a/2-s})`),t.attr("style",`color: ${v.get("stroke")??k};`)}return y.attr("transform",`translate(${-p.width/2-(p.x-(p.left??0))},${m?-E/2:E/2-p.height})`),Z.attr("transform",`translate(0,${m?p.height/2+B/2:-p.height/2-B/2})`),d(e,O),e.intersect=function(t){if(s.cM.info("iconSquare intersect",e,t),!e.label)return R.rect(e,t);let r=e.x??0,i=e.y??0,n=e.height??0,a=[];return a=m?[{x:r-p.width/2,y:i-n/2},{x:r+p.width/2,y:i-n/2},{x:r+p.width/2,y:i-n/2+p.height+B},{x:r+b/2,y:i-n/2+p.height+B},{x:r+b/2,y:i+n/2},{x:r-b/2,y:i+n/2},{x:r-b/2,y:i-n/2+p.height+B},{x:r-p.width/2,y:i-n/2+p.height+B}]:[{x:r-b/2,y:i-n/2},{x:r+b/2,y:i-n/2},{x:r+b/2,y:i-n/2+x},{x:r+p.width/2,y:i-n/2+x},{x:r+p.width/2/2,y:i+n/2},{x:r-p.width/2,y:i+n/2},{x:r-p.width/2,y:i-n/2+x},{x:r-b/2,y:i-n/2+x}],R.polygon(e,a,t)},f}async function tw(t,e,{config:{flowchart:r}}){let i=new Image;i.src=e?.img??"",await i.decode();let n=Number(i.naturalWidth.toString().replace("px","")),a=Number(i.naturalHeight.toString().replace("px",""));e.imageAspectRatio=n/a;let{labelStyles:o}=T(e);e.labelStyle=o;let l=r?.wrappingWidth;e.defaultWidth=r?.wrappingWidth;let u=Math.max(e.label?l??0:0,e?.assetWidth??n),f="on"===e.constraint&&e?.assetHeight?e.assetHeight*e.imageAspectRatio:u,p="on"===e.constraint?f/e.imageAspectRatio:e?.assetHeight??a;e.width=Math.max(f,l??0);let{shapeSvg:g,bbox:y,label:m}=await c(t,e,"image-shape default"),x="t"===e.pos,b=-f/2,k=e.label?8:0,C=h.Z.svg(g),w=S(e,{});"handDrawn"!==e.look&&(w.roughness=0,w.fillStyle="solid");let _=C.rectangle(b,-p/2,f,p,w),v=Math.max(f,y.width),M=p+y.height+k,B=C.rectangle(-v/2,-M/2,v,M,{...w,fill:"none",stroke:"none"}),L=g.insert(()=>_,":first-child"),A=g.insert(()=>B);if(e.img){let t=g.append("image");t.attr("href",e.img),t.attr("width",f),t.attr("height",p),t.attr("preserveAspectRatio","none"),t.attr("transform",`translate(${-f/2},${x?M/2-p:-M/2})`)}return m.attr("transform",`translate(${-y.width/2-(y.x-(y.left??0))},${x?-p/2-y.height/2-k/2:p/2-y.height/2+k/2})`),L.attr("transform",`translate(0,${x?y.height/2+k/2:-y.height/2-k/2})`),d(e,A),e.intersect=function(t){if(s.cM.info("iconSquare intersect",e,t),!e.label)return R.rect(e,t);let r=e.x??0,i=e.y??0,n=e.height??0,a=[];return a=x?[{x:r-y.width/2,y:i-n/2},{x:r+y.width/2,y:i-n/2},{x:r+y.width/2,y:i-n/2+y.height+k},{x:r+f/2,y:i-n/2+y.height+k},{x:r+f/2,y:i+n/2},{x:r-f/2,y:i+n/2},{x:r-f/2,y:i-n/2+y.height+k},{x:r-y.width/2,y:i-n/2+y.height+k}]:[{x:r-f/2,y:i-n/2},{x:r+f/2,y:i-n/2},{x:r+f/2,y:i-n/2+p},{x:r+y.width/2,y:i-n/2+p},{x:r+y.width/2/2,y:i+n/2},{x:r-y.width/2,y:i+n/2},{x:r-y.width/2,y:i-n/2+p},{x:r-f/2,y:i-n/2+p}],R.polygon(e,a,t)},g}async function t_(t,e){let r;let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await c(t,e,f(e)),s=Math.max(o.width+(e.padding??0)*2,e?.width??0),l=Math.max(o.height+(e.padding??0)*2,e?.height??0),u=[{x:0,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:-3*l/6,y:-l}],{cssStyles:g}=e;if("handDrawn"===e.look){let t=h.Z.svg(a),i=S(e,{}),n=p(u),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),g&&r.attr("style",g)}else r=U(a,s,l,u);return n&&r.attr("style",n),e.width=s,e.height=l,d(e,r),e.intersect=function(t){return R.polygon(e,u,t)},a}async function tv(t,e,r){let i;let{labelStyles:n,nodeStyles:a}=T(e);e.labelStyle=n;let{shapeSvg:s,bbox:l}=await c(t,e,f(e)),u=Math.max(l.width+2*r.labelPaddingX,e?.width||0),p=Math.max(l.height+2*r.labelPaddingY,e?.height||0),g=-u/2,y=-p/2,{rx:m,ry:x}=e,{cssStyles:b}=e;if(r?.rx&&r.ry&&(m=r.rx,x=r.ry),"handDrawn"===e.look){let t=h.Z.svg(s),r=S(e,{}),n=m||x?t.path(C(g,y,u,p,m||0),r):t.rectangle(g,y,u,p,r);(i=s.insert(()=>n,":first-child")).attr("class","basic label-container").attr("style",(0,o.R7)(b))}else(i=s.insert("rect",":first-child")).attr("class","basic label-container").attr("style",a).attr("rx",(0,o.R7)(m)).attr("ry",(0,o.R7)(x)).attr("x",g).attr("y",y).attr("width",u).attr("height",p);return d(e,i),e.intersect=function(t){return R.rect(e,t)},s}async function tT(t,e){let{shapeSvg:r,bbox:i,label:n}=await c(t,e,"label"),a=r.insert("rect",":first-child");return a.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),n.attr("transform",`translate(${-(i.width/2)-(i.x-(i.left??0))}, ${-(i.height/2)-(i.y-(i.top??0))})`),d(e,a),e.intersect=function(t){return R.rect(e,t)},r}async function tS(t,e){let r;let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await c(t,e,f(e)),s=Math.max(o.width+(e.padding??0),e?.width??0),l=Math.max(o.height+(e.padding??0),e?.height??0),u=[{x:0,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:-(3*l)/6,y:-l}],{cssStyles:g}=e;if("handDrawn"===e.look){let t=h.Z.svg(a),i=S(e,{}),n=p(u),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),g&&r.attr("style",g)}else r=U(a,s,l,u);return n&&r.attr("style",n),e.width=s,e.height=l,d(e,r),e.intersect=function(t){return R.polygon(e,u,t)},a}async function tM(t,e){let r;let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await c(t,e,f(e)),s=Math.max(o.width+(e.padding??0),e?.width??0),l=Math.max(o.height+(e.padding??0),e?.height??0),u=[{x:-3*l/6,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:0,y:-l}],{cssStyles:g}=e;if("handDrawn"===e.look){let t=h.Z.svg(a),i=S(e,{}),n=p(u),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),g&&r.attr("style",g)}else r=U(a,s,l,u);return n&&r.attr("style",n),e.width=s,e.height=l,d(e,r),e.intersect=function(t){return R.polygon(e,u,t)},a}function tB(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.label="",e.labelStyle=r;let n=t.insert("g").attr("class",f(e)).attr("id",e.domId??e.id),{cssStyles:a}=e,o=Math.max(35,e?.width??0),l=Math.max(35,e?.height??0),c=[{x:o,y:0},{x:0,y:l+3.5},{x:o-14,y:l+3.5},{x:0,y:2*l},{x:o,y:l-3.5},{x:14,y:l-3.5}],u=h.Z.svg(n),g=S(e,{});"handDrawn"!==e.look&&(g.roughness=0,g.fillStyle="solid");let y=p(c),m=u.path(y,g),x=n.insert(()=>m,":first-child");return a&&"handDrawn"!==e.look&&x.selectAll("path").attr("style",a),i&&"handDrawn"!==e.look&&x.selectAll("path").attr("style",i),x.attr("transform",`translate(-${o/2},${-l})`),d(e,x),e.intersect=function(t){return s.cM.info("lightningBolt intersect",e,t),R.polygon(e,c,t)},n}(0,s.eW)(ty,"hexagon"),(0,s.eW)(tm,"hourglass"),(0,s.eW)(tx,"icon"),(0,s.eW)(tb,"iconCircle"),(0,s.eW)(tk,"iconRounded"),(0,s.eW)(tC,"iconSquare"),(0,s.eW)(tw,"imageSquare"),(0,s.eW)(t_,"inv_trapezoid"),(0,s.eW)(tv,"drawRect"),(0,s.eW)(tT,"labelRect"),(0,s.eW)(tS,"lean_left"),(0,s.eW)(tM,"lean_right"),(0,s.eW)(tB,"lightningBolt");var tL=(0,s.eW)((t,e,r,i,n,a,o)=>`M${t},${e+a} a${n},${a} 0,0,0 ${r},0 a${n},${a} 0,0,0 ${-r},0 l0,${i} a${n},${a} 0,0,0 ${r},0 l0,${-i} M${t},${e+a+o} a${n},${a} 0,0,0 ${r},0`,"createCylinderPathD"),tA=(0,s.eW)((t,e,r,i,n,a,o)=>`M${t},${e+a} M${t+r},${e+a} a${n},${a} 0,0,0 ${-r},0 l0,${i} a${n},${a} 0,0,0 ${r},0 l0,${-i} M${t},${e+a+o} a${n},${a} 0,0,0 ${r},0`,"createOuterCylinderPathD"),tF=(0,s.eW)((t,e,r,i,n,a)=>`M${t-r/2},${-i/2} a${n},${a} 0,0,0 ${r},0`,"createInnerCylinderPathD");async function t$(t,e){let r;let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{shapeSvg:a,bbox:s,label:l}=await c(t,e,f(e)),u=Math.max(s.width+(e.padding??0),e.width??0),p=u/2,g=p/(2.5+u/50),y=Math.max(s.height+g+(e.padding??0),e.height??0),m=.1*y,{cssStyles:x}=e;if("handDrawn"===e.look){let t=h.Z.svg(a),i=tA(0,0,u,y,p,g,m),n=tF(0,g,u,y,p,g),o=S(e,{}),s=t.path(i,o),l=t.path(n,o);a.insert(()=>l,":first-child").attr("class","line"),(r=a.insert(()=>s,":first-child")).attr("class","basic label-container"),x&&r.attr("style",x)}else{let t=tL(0,0,u,y,p,g,m);r=a.insert("path",":first-child").attr("d",t).attr("class","basic label-container").attr("style",(0,o.R7)(x)).attr("style",n)}return r.attr("label-offset-y",g),r.attr("transform",`translate(${-u/2}, ${-(y/2+g)})`),d(e,r),l.attr("transform",`translate(${-(s.width/2)-(s.x-(s.left??0))}, ${-(s.height/2)+g-(s.y-(s.top??0))})`),e.intersect=function(t){let r=R.rect(e,t),i=r.x-(e.x??0);if(0!=p&&(Math.abs(i)<(e.width??0)/2||Math.abs(i)==(e.width??0)/2&&Math.abs(r.y-(e.y??0))>(e.height??0)/2-g)){let n=g*g*(1-i*i/(p*p));n>0&&(n=Math.sqrt(n)),n=g-n,t.y-(e.y??0)>0&&(n=-n),r.y+=n}return r},a}async function tW(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a,label:o}=await c(t,e,f(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=l/4,p=l+u,{cssStyles:y}=e,m=h.Z.svg(n),x=S(e,{});"handDrawn"!==e.look&&(x.roughness=0,x.fillStyle="solid");let b=[{x:-s/2-s/2*.1,y:-p/2},{x:-s/2-s/2*.1,y:p/2},...g(-s/2-s/2*.1,p/2,s/2+s/2*.1,p/2,u,.8),{x:s/2+s/2*.1,y:-p/2},{x:-s/2-s/2*.1,y:-p/2},{x:-s/2,y:-p/2},{x:-s/2,y:p/2*1.1},{x:-s/2,y:-p/2}],k=m.polygon(b.map(t=>[t.x,t.y]),x),C=n.insert(()=>k,":first-child");return C.attr("class","basic label-container"),y&&"handDrawn"!==e.look&&C.selectAll("path").attr("style",y),i&&"handDrawn"!==e.look&&C.selectAll("path").attr("style",i),C.attr("transform",`translate(0,${-u/2})`),o.attr("transform",`translate(${-s/2+(e.padding??0)+s/2*.1/2-(a.x-(a.left??0))},${-l/2+(e.padding??0)-u/2-(a.y-(a.top??0))})`),d(e,C),e.intersect=function(t){return R.polygon(e,b,t)},n}async function tE(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a,label:o}=await c(t,e,f(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=-s/2,g=-l/2,{cssStyles:y}=e,m=h.Z.svg(n),x=S(e,{}),b=[{x:u-5,y:g+5},{x:u-5,y:g+l+5},{x:u+s-5,y:g+l+5},{x:u+s-5,y:g+l},{x:u+s,y:g+l},{x:u+s,y:g+l-5},{x:u+s+5,y:g+l-5},{x:u+s+5,y:g-5},{x:u+5,y:g-5},{x:u+5,y:g},{x:u,y:g},{x:u,y:g+5}];"handDrawn"!==e.look&&(x.roughness=0,x.fillStyle="solid");let k=p(b),C=m.path(k,x),w=p([{x:u,y:g+5},{x:u+s-5,y:g+5},{x:u+s-5,y:g+l},{x:u+s,y:g+l},{x:u+s,y:g},{x:u,y:g}]),_=m.path(w,{...x,fill:"none"}),v=n.insert(()=>_,":first-child");return v.insert(()=>C,":first-child"),v.attr("class","basic label-container"),y&&"handDrawn"!==e.look&&v.selectAll("path").attr("style",y),i&&"handDrawn"!==e.look&&v.selectAll("path").attr("style",i),o.attr("transform",`translate(${-(a.width/2)-5-(a.x-(a.left??0))}, ${-(a.height/2)+5-(a.y-(a.top??0))})`),d(e,v),e.intersect=function(t){return R.polygon(e,b,t)},n}async function tD(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a,label:o}=await c(t,e,f(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=l/4,y=l+u,m=-s/2,x=-y/2,{cssStyles:b}=e,k=g(m-5,x+y+5,m+s-5,x+y+5,u,.8),C=k?.[k.length-1],w=[{x:m-5,y:x+5},{x:m-5,y:x+y+5},...k,{x:m+s-5,y:C.y-5},{x:m+s,y:C.y-5},{x:m+s,y:C.y-10},{x:m+s+5,y:C.y-10},{x:m+s+5,y:x-5},{x:m+5,y:x-5},{x:m+5,y:x},{x:m,y:x},{x:m,y:x+5}],_=[{x:m,y:x+5},{x:m+s-5,y:x+5},{x:m+s-5,y:C.y-5},{x:m+s,y:C.y-5},{x:m+s,y:x},{x:m,y:x}],v=h.Z.svg(n),M=S(e,{});"handDrawn"!==e.look&&(M.roughness=0,M.fillStyle="solid");let B=p(w),L=v.path(B,M),A=p(_),F=v.path(A,M),$=n.insert(()=>L,":first-child");return $.insert(()=>F),$.attr("class","basic label-container"),b&&"handDrawn"!==e.look&&$.selectAll("path").attr("style",b),i&&"handDrawn"!==e.look&&$.selectAll("path").attr("style",i),$.attr("transform",`translate(0,${-u/2})`),o.attr("transform",`translate(${-(a.width/2)-5-(a.x-(a.left??0))}, ${-(a.height/2)+5-u/2-(a.y-(a.top??0))})`),d(e,$),e.intersect=function(t){return R.polygon(e,w,t)},n}async function tZ(t,e,{config:{themeVariables:r}}){let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i,!(e.useHtmlLabels||s.iE().flowchart?.htmlLabels!==!1)&&(e.centerLabel=!0);let{shapeSvg:a,bbox:o}=await c(t,e,f(e)),l=Math.max(o.width+(e.padding??0)*2,e?.width??0),u=Math.max(o.height+(e.padding??0)*2,e?.height??0),{cssStyles:p}=e,g=h.Z.svg(a),y=S(e,{fill:r.noteBkgColor,stroke:r.noteBorderColor});"handDrawn"!==e.look&&(y.roughness=0,y.fillStyle="solid");let m=g.rectangle(-l/2,-u/2,l,u,y),x=a.insert(()=>m,":first-child");return x.attr("class","basic label-container"),p&&"handDrawn"!==e.look&&x.selectAll("path").attr("style",p),n&&"handDrawn"!==e.look&&x.selectAll("path").attr("style",n),d(e,x),e.intersect=function(t){return R.rect(e,t)},a}(0,s.eW)(t$,"linedCylinder"),(0,s.eW)(tW,"linedWaveEdgedRect"),(0,s.eW)(tE,"multiRect"),(0,s.eW)(tD,"multiWaveEdgedRectangle"),(0,s.eW)(tZ,"note");var tO=(0,s.eW)((t,e,r)=>`M${t+r/2},${e} L${t+r},${e-r/2} L${t+r/2},${e-r} L${t},${e-r/2} Z`,"createDecisionBoxPathD");async function tN(t,e){let r;let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await c(t,e,f(e)),l=o.width+e.padding,u=l+(o.height+e.padding),p=[{x:u/2,y:0},{x:u,y:-u/2},{x:u/2,y:-u},{x:0,y:-u/2}],{cssStyles:g}=e;if("handDrawn"===e.look){let t=h.Z.svg(a),i=S(e,{}),n=tO(0,0,u),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`),g&&r.attr("style",g)}else r=U(a,u,u,p);return n&&r.attr("style",n),d(e,r),e.intersect=function(t){return s.cM.debug("APA12 Intersect called SPLIT\npoint:",t,"\nnode:\n",e,"\nres:",R.polygon(e,p,t)),R.polygon(e,p,t)},a}async function tI(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a,label:o}=await c(t,e,f(e)),s=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),u=-s/2,g=-l/2,y=g/2,m=[{x:u+y,y:g},{x:u,y:0},{x:u+y,y:-g},{x:-u,y:-g},{x:-u,y:g}],{cssStyles:x}=e,b=h.Z.svg(n),k=S(e,{});"handDrawn"!==e.look&&(k.roughness=0,k.fillStyle="solid");let C=p(m),w=b.path(C,k),_=n.insert(()=>w,":first-child");return _.attr("class","basic label-container"),x&&"handDrawn"!==e.look&&_.selectAll("path").attr("style",x),i&&"handDrawn"!==e.look&&_.selectAll("path").attr("style",i),_.attr("transform",`translate(${-y/2},0)`),o.attr("transform",`translate(${-y/2-a.width/2-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),d(e,_),e.intersect=function(t){return R.polygon(e,m,t)},n}async function tz(t,e){let r,i,n;let{labelStyles:a,nodeStyles:o}=T(e);e.labelStyle=a,r=e.cssClasses?"node "+e.cssClasses:"node default";let c=t.insert("g").attr("class",r).attr("id",e.domId||e.id),u=c.insert("g"),f=c.insert("g").attr("class","label").attr("style",o),p=e.description,g=e.label,y=f.node().appendChild(await k(g,e.labelStyle,!0,!0)),m={width:0,height:0};if((0,s.ku)(s.nV()?.flowchart?.htmlLabels)){let t=y.children[0],e=(0,l.Ys)(y);m=t.getBoundingClientRect(),e.attr("width",m.width),e.attr("height",m.height)}s.cM.info("Text 2",p);let x=p||[],b=y.getBBox(),w=f.node().appendChild(await k(x.join?x.join("
    "):x,e.labelStyle,!0,!0)),_=w.children[0],v=(0,l.Ys)(w);m=_.getBoundingClientRect(),v.attr("width",m.width),v.attr("height",m.height);let M=(e.padding||0)/2;(0,l.Ys)(w).attr("transform","translate( "+(m.width>b.width?0:(b.width-m.width)/2)+", "+(b.height+M+5)+")"),(0,l.Ys)(y).attr("transform","translate( "+(m.width(s.cM.debug("Rough node insert CXC",a),o),":first-child"),i=c.insert(()=>(s.cM.debug("Rough node insert CXC",a),a),":first-child")}else i=u.insert("rect",":first-child"),n=u.insert("line"),i.attr("class","outer title-state").attr("style",o).attr("x",-m.width/2-M).attr("y",-m.height/2-M).attr("width",m.width+(e.padding||0)).attr("height",m.height+(e.padding||0)),n.attr("class","divider").attr("x1",-m.width/2-M).attr("x2",m.width/2+M).attr("y1",-m.height/2-M+b.height+M).attr("y2",-m.height/2-M+b.height+M);return d(e,i),e.intersect=function(t){return R.rect(e,t)},c}async function tj(t,e){let r={rx:5,ry:5,classes:"",labelPaddingX:1*(e?.padding||0),labelPaddingY:1*(e?.padding||0)};return tv(t,e,r)}async function tR(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a,label:s}=await c(t,e,f(e)),l=e?.padding??0,u=Math.max(a.width+(e.padding??0)*2,e?.width??0),p=Math.max(a.height+(e.padding??0)*2,e?.height??0),g=-a.width/2-l,y=-a.height/2-l,{cssStyles:m}=e,x=h.Z.svg(n),b=S(e,{});"handDrawn"!==e.look&&(b.roughness=0,b.fillStyle="solid");let k=x.polygon([{x:g,y},{x:g+u+8,y},{x:g+u+8,y:y+p},{x:g-8,y:y+p},{x:g-8,y},{x:g,y},{x:g,y:y+p}].map(t=>[t.x,t.y]),b),C=n.insert(()=>k,":first-child");return C.attr("class","basic label-container").attr("style",(0,o.R7)(m)),i&&"handDrawn"!==e.look&&C.selectAll("path").attr("style",i),m&&"handDrawn"!==e.look&&C.selectAll("path").attr("style",i),s.attr("transform",`translate(${-u/2+4+(e.padding??0)-(a.x-(a.left??0))},${-p/2+(e.padding??0)-(a.y-(a.top??0))})`),d(e,C),e.intersect=function(t){return R.rect(e,t)},n}async function tP(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a,label:o}=await c(t,e,f(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=-s/2,g=-l/2,{cssStyles:y}=e,m=h.Z.svg(n),x=S(e,{});"handDrawn"!==e.look&&(x.roughness=0,x.fillStyle="solid");let b=[{x:u,y:g},{x:u,y:g+l},{x:u+s,y:g+l},{x:u+s,y:g-l/2}],k=p(b),C=m.path(k,x),w=n.insert(()=>C,":first-child");return w.attr("class","basic label-container"),y&&"handDrawn"!==e.look&&w.selectChildren("path").attr("style",y),i&&"handDrawn"!==e.look&&w.selectChildren("path").attr("style",i),w.attr("transform",`translate(0, ${l/4})`),o.attr("transform",`translate(${-s/2+(e.padding??0)-(a.x-(a.left??0))}, ${-l/4+(e.padding??0)-(a.y-(a.top??0))})`),d(e,w),e.intersect=function(t){return R.polygon(e,b,t)},n}async function tq(t,e){let r={rx:0,ry:0,classes:"",labelPaddingX:2*(e?.padding||0),labelPaddingY:1*(e?.padding||0)};return tv(t,e,r)}async function tH(t,e){let r;let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{shapeSvg:a,bbox:s}=await c(t,e,f(e)),l=s.height+e.padding,u=s.width+l/4+e.padding,{cssStyles:p}=e;if("handDrawn"===e.look){let t=h.Z.svg(a),i=S(e,{}),n=C(-u/2,-l/2,u,l,l/2),s=t.path(n,i);(r=a.insert(()=>s,":first-child")).attr("class","basic label-container").attr("style",(0,o.R7)(p))}else(r=a.insert("rect",":first-child")).attr("class","basic label-container").attr("style",n).attr("rx",l/2).attr("ry",l/2).attr("x",-u/2).attr("y",-l/2).attr("width",u).attr("height",l);return d(e,r),e.intersect=function(t){return R.rect(e,t)},a}async function tU(t,e){return tv(t,e,{rx:5,ry:5,classes:"flowchart-node"})}function tY(t,e,{config:{themeVariables:r}}){let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{cssStyles:a}=e,{lineColor:o,stateBorder:s,nodeBorder:l}=r,c=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),u=h.Z.svg(c),f=S(e,{});"handDrawn"!==e.look&&(f.roughness=0,f.fillStyle="solid");let p=u.circle(0,0,14,{...f,stroke:o,strokeWidth:2}),g=s??l,y=u.circle(0,0,5,{...f,fill:g,stroke:g,strokeWidth:2,fillStyle:"solid"}),m=c.insert(()=>p,":first-child");return m.insert(()=>y),a&&m.selectAll("path").attr("style",a),n&&m.selectAll("path").attr("style",n),d(e,m),e.intersect=function(t){return R.circle(e,7,t)},c}function tV(t,e,{config:{themeVariables:r}}){let i;let{lineColor:n}=r,a=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);if("handDrawn"===e.look){let t=h.Z.svg(a).circle(0,0,14,w(n));(i=a.insert(()=>t)).attr("class","state-start").attr("r",7).attr("width",14).attr("height",14)}else(i=a.insert("circle",":first-child")).attr("class","state-start").attr("r",7).attr("width",14).attr("height",14);return d(e,i),e.intersect=function(t){return R.circle(e,7,t)},a}async function tG(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a}=await c(t,e,f(e)),s=(e?.padding||0)/2,l=a.width+e.padding,u=a.height+e.padding,p=-a.width/2-s,g=-a.height/2-s,y=[{x:0,y:0},{x:l,y:0},{x:l,y:-u},{x:0,y:-u},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-u},{x:-8,y:-u},{x:-8,y:0}];if("handDrawn"===e.look){let t=h.Z.svg(n),r=S(e,{}),i=t.rectangle(p-8,g,l+16,u,r),a=t.line(p,g,p,g+u,r),s=t.line(p+l,g,p+l,g+u,r);n.insert(()=>a,":first-child"),n.insert(()=>s,":first-child");let c=n.insert(()=>i,":first-child"),{cssStyles:f}=e;c.attr("class","basic label-container").attr("style",(0,o.R7)(f)),d(e,c)}else{let t=U(n,l,u,y);i&&t.attr("style",i),d(e,t)}return e.intersect=function(t){return R.polygon(e,y,t)},n}async function tX(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a}=await c(t,e,f(e)),o=Math.max(a.width+(e.padding??0)*2,e?.width??0),s=Math.max(a.height+(e.padding??0)*2,e?.height??0),l=-o/2,u=-s/2,g=.2*s,{cssStyles:y}=e,m=h.Z.svg(n),x=S(e,{}),b=[{x:l-g/2,y:u},{x:l+o+g/2,y:u},{x:l+o+g/2,y:u+s},{x:l-g/2,y:u+s}];"handDrawn"!==e.look&&(x.roughness=0,x.fillStyle="solid");let k=p(b),C=m.path(k,x),w=p([{x:l+o-g/2,y:u+s},{x:l+o+g/2,y:u+s},{x:l+o+g/2,y:u+s-.2*s}]),_=m.path(w,{...x,fillStyle:"solid"}),v=n.insert(()=>_,":first-child");return v.insert(()=>C,":first-child"),v.attr("class","basic label-container"),y&&"handDrawn"!==e.look&&v.selectAll("path").attr("style",y),i&&"handDrawn"!==e.look&&v.selectAll("path").attr("style",i),d(e,v),e.intersect=function(t){return R.polygon(e,b,t)},n}async function tQ(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a,label:o}=await c(t,e,f(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=l/4,y=.2*s,m=.2*l,x=l+u,{cssStyles:b}=e,k=h.Z.svg(n),C=S(e,{});"handDrawn"!==e.look&&(C.roughness=0,C.fillStyle="solid");let w=[{x:-s/2-s/2*.1,y:x/2},...g(-s/2-s/2*.1,x/2,s/2+s/2*.1,x/2,u,.8),{x:s/2+s/2*.1,y:-x/2},{x:-s/2-s/2*.1,y:-x/2}],_=-s/2+s/2*.1,v=-x/2-.4*m,M=[{x:_+s-y,y:(v+l)*1.4},{x:_+s,y:v+l-m},{x:_+s,y:(v+l)*.9},...g(_+s,(v+l)*1.3,_+s-y,(v+l)*1.5,-(.03*l),.5)],B=p(w),L=k.path(B,C),A=p(M),F=k.path(A,{...C,fillStyle:"solid"}),$=n.insert(()=>F,":first-child");return $.insert(()=>L,":first-child"),$.attr("class","basic label-container"),b&&"handDrawn"!==e.look&&$.selectAll("path").attr("style",b),i&&"handDrawn"!==e.look&&$.selectAll("path").attr("style",i),$.attr("transform",`translate(0,${-u/2})`),o.attr("transform",`translate(${-s/2+(e.padding??0)-(a.x-(a.left??0))},${-l/2+(e.padding??0)-u/2-(a.y-(a.top??0))})`),d(e,$),e.intersect=function(t){return R.polygon(e,w,t)},n}async function tK(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a}=await c(t,e,f(e)),o=Math.max(a.width+e.padding,e?.width||0),s=Math.max(a.height+e.padding,e?.height||0),l=n.insert("rect",":first-child");return l.attr("class","text").attr("style",i).attr("rx",0).attr("ry",0).attr("x",-o/2).attr("y",-s/2).attr("width",o).attr("height",s),d(e,l),e.intersect=function(t){return R.rect(e,t)},n}(0,s.eW)(tN,"question"),(0,s.eW)(tI,"rect_left_inv_arrow"),(0,s.eW)(tz,"rectWithTitle"),(0,s.eW)(tj,"roundedRect"),(0,s.eW)(tR,"shadedProcess"),(0,s.eW)(tP,"slopedRect"),(0,s.eW)(tq,"squareRect"),(0,s.eW)(tH,"stadium"),(0,s.eW)(tU,"state"),(0,s.eW)(tY,"stateEnd"),(0,s.eW)(tV,"stateStart"),(0,s.eW)(tG,"subroutine"),(0,s.eW)(tX,"taggedRect"),(0,s.eW)(tQ,"taggedWaveEdgedRectangle"),(0,s.eW)(tK,"text");var tJ=(0,s.eW)((t,e,r,i,n,a)=>`M${t},${e} + a${n},${a} 0,0,1 0,${-i} + l${r},0 + a${n},${a} 0,0,1 0,${i} + M${r},${-i} + a${n},${a} 0,0,0 0,${i} + l${-r},0`,"createCylinderPathD"),t0=(0,s.eW)((t,e,r,i,n,a)=>`M${t},${e} M${t+r},${e} a${n},${a} 0,0,0 0,${-i} l${-r},0 a${n},${a} 0,0,0 0,${i} l${r},0`,"createOuterCylinderPathD"),t1=(0,s.eW)((t,e,r,i,n,a)=>`M${t+r/2},${-i/2} a${n},${a} 0,0,0 0,${i}`,"createInnerCylinderPathD");async function t2(t,e){let r;let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{shapeSvg:a,bbox:s,label:l,halfPadding:u}=await c(t,e,f(e)),p="neo"===e.look?2*u:u,g=s.height+p,y=g/2,m=y/(2.5+g/50),x=s.width+m+p,{cssStyles:b}=e;if("handDrawn"===e.look){let t=h.Z.svg(a),i=t0(0,0,x,g,m,y),n=t1(0,0,x,g,m,y),o=t.path(i,S(e,{})),s=t.path(n,S(e,{fill:"none"}));r=a.insert(()=>s,":first-child"),(r=a.insert(()=>o,":first-child")).attr("class","basic label-container"),b&&r.attr("style",b)}else{let t=tJ(0,0,x,g,m,y);(r=a.insert("path",":first-child").attr("d",t).attr("class","basic label-container").attr("style",(0,o.R7)(b)).attr("style",n)).attr("class","basic label-container"),b&&r.selectAll("path").attr("style",b),n&&r.selectAll("path").attr("style",n)}return r.attr("label-offset-x",m),r.attr("transform",`translate(${-x/2}, ${g/2} )`),l.attr("transform",`translate(${-(s.width/2)-m-(s.x-(s.left??0))}, ${-(s.height/2)-(s.y-(s.top??0))})`),d(e,r),e.intersect=function(t){let r=R.rect(e,t),i=r.y-(e.y??0);if(0!=y&&(Math.abs(i)<(e.height??0)/2||Math.abs(i)==(e.height??0)/2&&Math.abs(r.x-(e.x??0))>(e.width??0)/2-m)){let n=m*m*(1-i*i/(y*y));0!=n&&(n=Math.sqrt(Math.abs(n))),n=m-n,t.x-(e.x??0)>0&&(n=-n),r.x+=n}return r},a}async function t3(t,e){let r;let{labelStyles:i,nodeStyles:n}=T(e);e.labelStyle=i;let{shapeSvg:a,bbox:o}=await c(t,e,f(e)),s=o.width+e.padding,l=o.height+e.padding,u=[{x:-3*l/6,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:0,y:-l}],{cssStyles:g}=e;if("handDrawn"===e.look){let t=h.Z.svg(a),i=S(e,{}),n=p(u),o=t.path(n,i);r=a.insert(()=>o,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),g&&r.attr("style",g)}else r=U(a,s,l,u);return n&&r.attr("style",n),e.width=s,e.height=l,d(e,r),e.intersect=function(t){return R.polygon(e,u,t)},a}async function t5(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a}=await c(t,e,f(e)),o=Math.max(60,a.width+(e.padding??0)*2,e?.width??0),s=Math.max(20,a.height+(e.padding??0)*2,e?.height??0),{cssStyles:l}=e,u=h.Z.svg(n),g=S(e,{});"handDrawn"!==e.look&&(g.roughness=0,g.fillStyle="solid");let y=[{x:-o/2*.8,y:-s/2},{x:o/2*.8,y:-s/2},{x:o/2,y:-s/2*.6},{x:o/2,y:s/2},{x:-o/2,y:s/2},{x:-o/2,y:-s/2*.6}],m=p(y),x=u.path(m,g),b=n.insert(()=>x,":first-child");return b.attr("class","basic label-container"),l&&"handDrawn"!==e.look&&b.selectChildren("path").attr("style",l),i&&"handDrawn"!==e.look&&b.selectChildren("path").attr("style",i),d(e,b),e.intersect=function(t){return R.polygon(e,y,t)},n}async function t4(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a,label:o}=await c(t,e,f(e)),l=(0,s.ku)(s.nV().flowchart?.htmlLabels),u=a.width+(e.padding??0),g=u+a.height,y=u+a.height,m=[{x:0,y:0},{x:y,y:0},{x:y/2,y:-g}],{cssStyles:x}=e,b=h.Z.svg(n),k=S(e,{});"handDrawn"!==e.look&&(k.roughness=0,k.fillStyle="solid");let C=p(m),w=b.path(C,k),_=n.insert(()=>w,":first-child").attr("transform",`translate(${-g/2}, ${g/2})`);return x&&"handDrawn"!==e.look&&_.selectChildren("path").attr("style",x),i&&"handDrawn"!==e.look&&_.selectChildren("path").attr("style",i),e.width=u,e.height=g,d(e,_),o.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${g/2-(a.height+(e.padding??0)/(l?2:1)-(a.y-(a.top??0)))})`),e.intersect=function(t){return s.cM.info("Triangle intersect",e,m,t),R.polygon(e,m,t)},n}async function t6(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a,label:o}=await c(t,e,f(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=l/8,y=l+u,{cssStyles:m}=e,x=70-s,b=x>0?x/2:0,k=h.Z.svg(n),C=S(e,{});"handDrawn"!==e.look&&(C.roughness=0,C.fillStyle="solid");let w=[{x:-s/2-b,y:y/2},...g(-s/2-b,y/2,s/2+b,y/2,u,.8),{x:s/2+b,y:-y/2},{x:-s/2-b,y:-y/2}],_=p(w),v=k.path(_,C),M=n.insert(()=>v,":first-child");return M.attr("class","basic label-container"),m&&"handDrawn"!==e.look&&M.selectAll("path").attr("style",m),i&&"handDrawn"!==e.look&&M.selectAll("path").attr("style",i),M.attr("transform",`translate(0,${-u/2})`),o.attr("transform",`translate(${-s/2+(e.padding??0)-(a.x-(a.left??0))},${-l/2+(e.padding??0)-u-(a.y-(a.top??0))})`),d(e,M),e.intersect=function(t){return R.polygon(e,w,t)},n}async function t8(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a}=await c(t,e,f(e)),o=Math.max(a.width+(e.padding??0)*2,e?.width??0),s=Math.max(a.height+(e.padding??0)*2,e?.height??0),l=o/s,u=o,y=s;u>y*l?y=u/l:u=y*l,u=Math.max(u,100);let m=Math.min(.2*(y=Math.max(y,50)),y/4),x=y+2*m,{cssStyles:b}=e,k=h.Z.svg(n),C=S(e,{});"handDrawn"!==e.look&&(C.roughness=0,C.fillStyle="solid");let w=[{x:-u/2,y:x/2},...g(-u/2,x/2,u/2,x/2,m,1),{x:u/2,y:-x/2},...g(u/2,-x/2,-u/2,-x/2,m,-1)],_=p(w),v=k.path(_,C),M=n.insert(()=>v,":first-child");return M.attr("class","basic label-container"),b&&"handDrawn"!==e.look&&M.selectAll("path").attr("style",b),i&&"handDrawn"!==e.look&&M.selectAll("path").attr("style",i),d(e,M),e.intersect=function(t){return R.polygon(e,w,t)},n}async function t9(t,e){let{labelStyles:r,nodeStyles:i}=T(e);e.labelStyle=r;let{shapeSvg:n,bbox:a,label:o}=await c(t,e,f(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=-s/2,p=-l/2,{cssStyles:g}=e,y=h.Z.svg(n),m=S(e,{}),x=[{x:u-5,y:p-5},{x:u-5,y:p+l},{x:u+s,y:p+l},{x:u+s,y:p-5}],b=`M${u-5},${p-5} L${u+s},${p-5} L${u+s},${p+l} L${u-5},${p+l} L${u-5},${p-5} + M${u-5},${p} L${u+s},${p} + M${u},${p-5} L${u},${p+l}`;"handDrawn"!==e.look&&(m.roughness=0,m.fillStyle="solid");let k=y.path(b,m),C=n.insert(()=>k,":first-child");return C.attr("transform",`translate(${2.5}, ${2.5})`),C.attr("class","basic label-container"),g&&"handDrawn"!==e.look&&C.selectAll("path").attr("style",g),i&&"handDrawn"!==e.look&&C.selectAll("path").attr("style",i),o.attr("transform",`translate(${-(a.width/2)+2.5-(a.x-(a.left??0))}, ${-(a.height/2)+2.5-(a.y-(a.top??0))})`),d(e,C),e.intersect=function(t){return R.polygon(e,x,t)},n}async function t7(t,e,r,i,n=r.class.padding??12){let a=i?0:3,o=t.insert("g").attr("class",f(e)).attr("id",e.domId||e.id),s=null,l=null,h=null,c=null,u=0,d=0,p=0;if(s=o.insert("g").attr("class","annotation-group text"),e.annotations.length>0){let t=e.annotations[0];await et(s,{text:`\xab${t}\xbb`},0),u=s.node().getBBox().height}l=o.insert("g").attr("class","label-group text"),await et(l,e,0,["font-weight: bolder"]);let g=l.node().getBBox();d=g.height,h=o.insert("g").attr("class","members-group text");let y=0;for(let t of e.members){let e=await et(h,t,y,[t.parseClassifier()]);y+=e+a}(p=h.node().getBBox().height)<=0&&(p=n/2),c=o.insert("g").attr("class","methods-group text");let m=0;for(let t of e.methods){let e=await et(c,t,m,[t.parseClassifier()]);m+=e+a}let x=o.node().getBBox();if(null!==s){let t=s.node().getBBox();s.attr("transform",`translate(${-t.width/2})`)}return l.attr("transform",`translate(${-g.width/2}, ${u})`),x=o.node().getBBox(),h.attr("transform",`translate(0, ${u+d+2*n})`),x=o.node().getBBox(),c.attr("transform",`translate(0, ${u+d+(p?p+4*n:2*n)})`),x=o.node().getBBox(),{shapeSvg:o,bbox:x}}async function et(t,e,r,i=[]){let n;let h=t.insert("g").attr("class","label").attr("style",i.join("; ")),c=(0,s.iE)(),u="useHtmlLabels"in e?e.useHtmlLabels:(0,s.ku)(c.htmlLabels)??!0,d="";d="text"in e?e.text:e.label,!u&&d.startsWith("\\")&&(d=d.substring(1)),(0,s.l0)(d)&&(u=!0);let f=await (0,a.rw)(h,(0,s.uX)((0,o.SH)(d)),{width:(0,o.Cq)(d,c)+50,classes:"markdown-node-label",useHtmlLabels:u},c),p=1;if(u){let t=f.children[0],e=(0,l.Ys)(f);p=t.innerHTML.split("
    ").length,t.innerHTML.includes("")&&(p+=t.innerHTML.split("").length-1);let r=t.getElementsByTagName("img");if(r){let t=""===d.replace(/]*>/g,"").trim();await Promise.all([...r].map(e=>new Promise(r=>{function i(){if(e.style.display="flex",e.style.flexDirection="column",t){let t=c.fontSize?.toString()??window.getComputedStyle(document.body).fontSize,r=5*parseInt(t,10)+"px";e.style.minWidth=r,e.style.maxWidth=r}else e.style.width="100%";r(e)}(0,s.eW)(i,"setupImage"),setTimeout(()=>{e.complete&&i()}),e.addEventListener("error",i),e.addEventListener("load",i)})))}n=t.getBoundingClientRect(),e.attr("width",n.width),e.attr("height",n.height)}else{i.includes("font-weight: bolder")&&(0,l.Ys)(f).selectAll("tspan").attr("font-weight",""),p=f.children.length;let t=f.children[0];(""===f.textContent||f.textContent.includes(">"))&&(t.textContent=d[0]+d.substring(1).replaceAll(">",">").replaceAll("<","<").trim()," "===d[1]&&(t.textContent=t.textContent[0]+" "+t.textContent.substring(1))),"undefined"===t.textContent&&(t.textContent=""),n=f.getBBox()}return h.attr("transform","translate(0,"+(-n.height/(2*p)+r)+")"),n.height}async function ee(t,e){let r=(0,s.nV)(),i=r.class.padding??12,n=e.useHtmlLabels??(0,s.ku)(r.htmlLabels)??!0;e.annotations=e.annotations??[],e.members=e.members??[],e.methods=e.methods??[];let{shapeSvg:a,bbox:o}=await t7(t,e,r,n,i),{labelStyles:c,nodeStyles:u}=T(e);e.labelStyle=c,e.cssStyles=e.styles||"";let f=e.styles?.join(";")||u||"";!e.cssStyles&&(e.cssStyles=f.replaceAll("!important","").split(";"));let p=0===e.members.length&&0===e.methods.length&&!r.class?.hideEmptyMembersBox,g=h.Z.svg(a),y=S(e,{});"handDrawn"!==e.look&&(y.roughness=0,y.fillStyle="solid");let m=o.width,x=o.height;0===e.members.length&&0===e.methods.length?x+=i:e.members.length>0&&0===e.methods.length&&(x+=2*i);let b=-m/2,k=-x/2,C=g.rectangle(b-i,k-i-(p?i:0===e.members.length&&0===e.methods.length?-i/2:0),m+2*i,x+2*i+(p?2*i:0===e.members.length&&0===e.methods.length?-i:0),y),w=a.insert(()=>C,":first-child");w.attr("class","basic label-container");let _=w.node().getBBox();a.selectAll(".text").each((t,r,o)=>{let s=(0,l.Ys)(o[r]),h=s.attr("transform"),c=0;if(h){let t=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(h);t&&(c=parseFloat(t[2]))}let u=c+k+i-(p?i:0===e.members.length&&0===e.methods.length?-i/2:0);!n&&(u-=4);let d=b;(s.attr("class").includes("label-group")||s.attr("class").includes("annotation-group"))&&(d=-s.node()?.getBBox().width/2||0,a.selectAll("text").each(function(t,e,r){"middle"===window.getComputedStyle(r[e]).textAnchor&&(d=0)})),s.attr("transform",`translate(${d}, ${u})`)});let v=a.select(".annotation-group").node().getBBox().height-(p?i/2:0)||0,M=a.select(".label-group").node().getBBox().height-(p?i/2:0)||0,B=a.select(".members-group").node().getBBox().height-(p?i/2:0)||0;if(e.members.length>0||e.methods.length>0||p){let t=g.line(_.x,v+M+k+i,_.x+_.width,v+M+k+i,y);a.insert(()=>t).attr("class","divider").attr("style",f)}if(p||e.members.length>0||e.methods.length>0){let t=g.line(_.x,v+M+B+k+2*i+i,_.x+_.width,v+M+B+k+i+2*i,y);a.insert(()=>t).attr("class","divider").attr("style",f)}if("handDrawn"!==e.look&&a.selectAll("path").attr("style",f),w.select(":nth-child(2)").attr("style",f),a.selectAll(".divider").select("path").attr("style",f),e.labelStyle?a.selectAll("span").attr("style",e.labelStyle):a.selectAll("span").attr("style",f),!n){let t=RegExp(/color\s*:\s*([^;]*)/),e=t.exec(f);if(e){let t=e[0].replace("color","fill");a.selectAll("tspan").attr("style",t)}else if(c){let e=t.exec(c);if(e){let t=e[0].replace("color","fill");a.selectAll("tspan").attr("style",t)}}}return d(e,w),e.intersect=function(t){return R.rect(e,t)},a}(0,s.eW)(t2,"tiltedCylinder"),(0,s.eW)(t3,"trapezoid"),(0,s.eW)(t5,"trapezoidalPentagon"),(0,s.eW)(t4,"triangle"),(0,s.eW)(t6,"waveEdgedRectangle"),(0,s.eW)(t8,"waveRectangle"),(0,s.eW)(t9,"windowPane"),(0,s.eW)(t7,"textHelper"),(0,s.eW)(et,"addText"),(0,s.eW)(ee,"classBox");var er=(0,s.eW)(t=>{switch(t){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}},"colorFromPriority");async function ei(t,e,{config:r}){let i,n,a,o;let{labelStyles:s,nodeStyles:l}=T(e);e.labelStyle=s||"";let p=e.width;e.width=(e.width??200)-10;let{shapeSvg:g,bbox:y,label:m}=await c(t,e,f(e)),x=e.padding||10,b="";"ticket"in e&&e.ticket&&r?.kanban?.ticketBaseUrl&&(b=r?.kanban?.ticketBaseUrl.replace("#TICKET#",e.ticket),i=g.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",b).attr("target","_blank"));let k={useHtmlLabels:e.useHtmlLabels,labelStyle:e.labelStyle||"",width:e.width,img:e.img,padding:e.padding||8,centerLabel:!1};i?{label:n,bbox:a}=await u(i,"ticket"in e&&e.ticket||"",k):{label:n,bbox:a}=await u(g,"ticket"in e&&e.ticket||"",k);let{label:w,bbox:_}=await u(g,"assigned"in e&&e.assigned||"",k);e.width=p;let v=e?.width||0,M=Math.max(a.height,_.height)/2,B=Math.max(y.height+20,e?.height||0)+M,L=-v/2,A=-B/2;m.attr("transform","translate("+(x-v/2)+", "+(-M-y.height/2)+")"),n.attr("transform","translate("+(x-v/2)+", "+(-M+y.height/2)+")"),w.attr("transform","translate("+(x+v/2-_.width-20)+", "+(-M+y.height/2)+")");let{rx:F,ry:$}=e,{cssStyles:W}=e;if("handDrawn"===e.look){let t=h.Z.svg(g),r=S(e,{}),i=F||$?t.path(C(L,A,v,B,F||0),r):t.rectangle(L,A,v,B,r);(o=g.insert(()=>i,":first-child")).attr("class","basic label-container").attr("style",W||null)}else{(o=g.insert("rect",":first-child")).attr("class","basic label-container __APA__").attr("style",l).attr("rx",F??5).attr("ry",$??5).attr("x",L).attr("y",A).attr("width",v).attr("height",B);let t="priority"in e&&e.priority;if(t){let e=g.append("line"),r=L+2,i=A+Math.floor((F??0)/2),n=A+B-Math.floor((F??0)/2);e.attr("x1",r).attr("y1",i).attr("x2",r).attr("y2",n).attr("stroke-width","4").attr("stroke",er(t))}}return d(e,o),e.height=B,e.intersect=function(t){return R.rect(e,t)},g}(0,s.eW)(ei,"kanbanItem");var en=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:tq},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:tj},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:tH},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:tG},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:tl},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:G},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:tN},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:ty},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:tM},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:tS},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:t3},{semanticName:"Manual Operation",name:"Trapezoid Base Top",shortName:"trap-t",description:"Represents a manual task",aliases:["manual","trapezoid-top","inv-trapezoid"],internalAliases:["inv_trapezoid"],handler:t_},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:tc},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:tK},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:Y},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:tR},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:tV},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:tY},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:tf},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:tm},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:J},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:te},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:ti},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:tB},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:t6},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:tp},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:t2},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:t$},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:tn},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:th},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:t4},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:t9},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:tu},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:t5},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:td},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:tP},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:tD},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:tE},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:H},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:Q},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:tQ},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:tX},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:t8},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:tI},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:tW}],ea=(0,s.eW)(()=>Object.fromEntries([...Object.entries({state:tU,choice:V,note:tZ,rectWithTitle:tz,labelRect:tT,iconSquare:tC,iconCircle:tb,icon:tx,iconRounded:tk,imageSquare:tw,anchor:P,kanbanItem:ei,classBox:ee}),...en.flatMap(t=>[t.shortName,..."aliases"in t?t.aliases:[],..."internalAliases"in t?t.internalAliases:[]].map(e=>[e,t.handler]))]),"generateShapeMap")();function eo(t){return t in ea}(0,s.eW)(eo,"isValidShape");var es=new Map;async function el(t,e,r){let i,n;"rect"===e.shape&&(e.rx&&e.ry?e.shape="roundedRect":e.shape="squareRect");let a=e.shape?ea[e.shape]:void 0;if(!a)throw Error(`No such shape: ${e.shape}. Please check your syntax.`);if(e.link){let o;"sandbox"===r.config.securityLevel?o="_top":e.linkTarget&&(o=e.linkTarget||"_blank"),i=t.insert("svg:a").attr("xlink:href",e.link).attr("target",o??null),n=await a(i,e,r)}else i=n=await a(t,e,r);return e.tooltip&&n.attr("title",e.tooltip),es.set(e.id,i),e.haveCallback&&i.attr("class",i.attr("class")+" clickable"),i}(0,s.eW)(el,"insertNode");var eh=(0,s.eW)((t,e)=>{es.set(e.id,t)},"setNodeElem"),ec=(0,s.eW)(()=>{es.clear()},"clear"),eu=(0,s.eW)(t=>{let e=es.get(t.id);s.cM.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r},"positionNode")},290:function(t,e,r){"use strict";r.d(e,{_b:function(){return u},jM:function(){return h},sY:function(){return c}});var i=r(29660),n=r(37971),a=r(68394),o=r(74146),s={common:o.SY,getConfig:o.iE,insertCluster:n.us,insertEdge:i.QP,insertEdgeLabel:i.I_,insertMarkers:i.DQ,insertNode:n.Lf,interpolateToCurve:a.le,labelHelper:n.C1,log:o.cM,positionEdgeLabel:i.Jj},l={},h=(0,o.eW)(t=>{for(let e of t)l[e.name]=e},"registerLayoutLoaders");(0,o.eW)(()=>{h([{name:"dagre",loader:(0,o.eW)(async()=>await Promise.all([r.e("5823"),r.e("3389"),r.e("1780")]).then(r.bind(r,77656)),"loader")}])},"registerDefaultLayoutLoaders")();var c=(0,o.eW)(async(t,e)=>{if(!(t.layoutAlgorithm in l))throw Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);let r=l[t.layoutAlgorithm];return(await r.loader()).render(t,e,s,{algorithm:r.algorithm})},"render"),u=(0,o.eW)((t="",{fallback:e="dagre"}={})=>{if(t in l)return t;if(e in l)return o.cM.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm")},89356:function(t,e,r){"use strict";r.d(e,{P:function(){return a}});var i=r(74146),n=r(27818),a=(0,i.eW)(t=>{let{securityLevel:e}=(0,i.nV)(),r=(0,n.Ys)("body");if("sandbox"===e){let e=(0,n.Ys)(`#i${t}`),i=e.node()?.contentDocument??document;r=(0,n.Ys)(i.body)}return r.select(`#${t}`)},"selectSvgElement")},36534:function(t,e,r){"use strict";r.d(e,{i:function(){return i}});var i="11.4.1"},9833:function(t,e,r){"use strict";r.d(e,{s4:()=>S,ef:()=>v,cN:()=>C});var i=r("74146");let n=/^[a-z0-9]+(-[a-z0-9]+)*$/,a=(t,e,r,i="")=>{let n=t.split(":");if("@"===t.slice(0,1)){if(n.length<2||n.length>3)return null;i=n.shift().slice(1)}if(n.length>3||!n.length)return null;if(n.length>1){let t=n.pop(),r=n.pop(),a={provider:n.length>0?n[0]:i,prefix:r,name:t};return e&&!o(a)?null:a}let a=n[0],s=a.split("-");if(s.length>1){let t={provider:i,prefix:s.shift(),name:s.join("-")};return e&&!o(t)?null:t}if(r&&""===i){let t={provider:i,prefix:"",name:a};return e&&!o(t,r)?null:t}return null},o=(t,e)=>!!t&&!!((""===t.provider||t.provider.match(n))&&(e&&""===t.prefix||t.prefix.match(n))&&t.name.match(n)),s=Object.freeze({left:0,top:0,width:16,height:16}),l=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),h=Object.freeze({...s,...l}),c=Object.freeze({...h,body:"",hidden:!1});function u(t,e){let r=function(t,e){let r={};!t.hFlip!=!e.hFlip&&(r.hFlip=!0),!t.vFlip!=!e.vFlip&&(r.vFlip=!0);let i=((t.rotate||0)+(e.rotate||0))%4;return i&&(r.rotate=i),r}(t,e);for(let i in c)i in l?i in t&&!(i in r)&&(r[i]=l[i]):i in e?r[i]=e[i]:i in t&&(r[i]=t[i]);return r}function d(t,e,r){let i=t.icons,n=t.aliases||Object.create(null),a={};function o(t){a=u(i[t]||n[t],a)}return o(e),r.forEach(o),u(t,a)}let f=Object.freeze({...Object.freeze({width:null,height:null}),...l}),p=/(-?[0-9.]*[0-9]+[0-9.]*)/g,g=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function y(t,e,r){if(1===e)return t;if(r=r||100,"number"==typeof t)return Math.ceil(t*e*r)/r;if("string"!=typeof t)return t;let i=t.split(p);if(null===i||!i.length)return t;let n=[],a=i.shift(),o=g.test(a);for(;;){if(o){let t=parseFloat(a);isNaN(t)?n.push(a):n.push(Math.ceil(t*e*r)/r)}else n.push(a);if(void 0===(a=i.shift()))return n.join("");o=!o}}let m=t=>"unset"===t||"undefined"===t||"none"===t,x=/\sid="(\S+)"/g,b="IconifyId"+Date.now().toString(16)+(0x1000000*Math.random()|0).toString(16),k=0;var C={body:'?',height:80,width:80},w=new Map,_=new Map,v=(0,i.eW)(t=>{for(let e of t){if(!e.name)throw Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(i.cM.debug("Registering icon pack:",e.name),"loader"in e)_.set(e.name,e.loader);else if("icons"in e)w.set(e.name,e.icons);else throw i.cM.error("Invalid icon loader:",e),Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),T=(0,i.eW)(async(t,e)=>{let r=a(t,!0,void 0!==e);if(!r)throw Error(`Invalid icon name: ${t}`);let n=r.prefix||e;if(!n)throw Error(`Icon name must contain a prefix: ${t}`);let o=w.get(n);if(!o){let t=_.get(n);if(!t)throw Error(`Icon set not found: ${r.prefix}`);try{o={...await t(),prefix:n},w.set(n,o)}catch(t){throw i.cM.error(t),Error(`Failed to load icon set: ${r.prefix}`)}}let s=function(t,e){if(t.icons[e])return d(t,e,[]);let r=function(t,e){let r=t.icons,i=t.aliases||Object.create(null),n=Object.create(null);return(e||Object.keys(r).concat(Object.keys(i))).forEach(function t(e){if(r[e])return n[e]=[];if(!(e in n)){n[e]=null;let r=i[e]&&i[e].parent,a=r&&t(r);a&&(n[e]=[r].concat(a))}return n[e]}),n}(t,[e])[e];return r?d(t,e,r):null}(o,r.name);if(!s)throw Error(`Icon not found: ${t}`);return s},"getRegisteredIconData"),S=(0,i.eW)(async(t,e)=>{let r;try{r=await T(t,e?.fallbackPrefix)}catch(t){i.cM.error(t),r=C}let n=function(t,e){let r,i;let n={...h,...t},a={...f,...e},o={left:n.left,top:n.top,width:n.width,height:n.height},s=n.body;[n,a].forEach(t=>{let e;let r=[],i=t.hFlip,n=t.vFlip,a=t.rotate;switch(i?n?a+=2:(r.push("translate("+(o.width+o.left).toString()+" "+(0-o.top).toString()+")"),r.push("scale(-1 1)"),o.top=o.left=0):n&&(r.push("translate("+(0-o.left).toString()+" "+(o.height+o.top).toString()+")"),r.push("scale(1 -1)"),o.top=o.left=0),a<0&&(a-=4*Math.floor(a/4)),a%=4){case 1:e=o.height/2+o.top,r.unshift("rotate(90 "+e.toString()+" "+e.toString()+")");break;case 2:r.unshift("rotate(180 "+(o.width/2+o.left).toString()+" "+(o.height/2+o.top).toString()+")");break;case 3:e=o.width/2+o.left,r.unshift("rotate(-90 "+e.toString()+" "+e.toString()+")")}a%2==1&&(o.left!==o.top&&(e=o.left,o.left=o.top,o.top=e),o.width!==o.height&&(e=o.width,o.width=o.height,o.height=e)),r.length&&(s=function(t,e,r){var i,n;let a=function(t,e="defs"){let r="",i=t.indexOf("<"+e);for(;i>=0;){let n=t.indexOf(">",i),a=t.indexOf("",a);if(-1===o)break;r+=t.slice(n+1,a).trim(),t=t.slice(0,i).trim()+t.slice(o+1)}return{defs:r,content:t}}(t);return i=a.defs,n=e+a.content+r,i?""+i+""+n:n}(s,'',""))});let l=a.width,c=a.height,u=o.width,d=o.height;null===l?r=y(i=null===c?"1em":"auto"===c?d:c,u/d):(r="auto"===l?u:l,i=null===c?y(r,d/u):"auto"===c?d:c);let p={},g=(t,e)=>{!m(e)&&(p[t]=e.toString())};g("width",r),g("height",i);let x=[o.left,o.top,u,d];return p.viewBox=x.join(" "),{attributes:p,viewBox:x,body:s}}(r,e);return function(t,e){let r=-1===t.indexOf("xlink:")?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let t in e)r+=" "+t+'="'+e[t]+'"';return'"+t+""}(function(t,e=b){let r;let i=[];for(;r=x.exec(t);)i.push(r[1]);if(!i.length)return t;let n="suffix"+(0x1000000*Math.random()|Date.now()).toString(16);return i.forEach(r=>{let i="function"==typeof e?e(r):e+(k++).toString(),a=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(RegExp('([#;"])('+a+')([")]|\\.[a-z])',"g"),"$1"+i+n+"$3")}),t=t.replace(RegExp(n,"g"),"")}(n.body),n.attributes)},"getIconSVG")},80397:function(t,e,r){"use strict";r.d(e,{A:function(){return ej},z:function(){return eR}});var i,n=r(74146);function a(t){return null==t}function o(t){return"object"==typeof t&&null!==t}function s(t){return Array.isArray(t)?t:a(t)?[]:[t]}function l(t,e){var r,i,n,a;if(e)for(r=0,i=(a=Object.keys(e)).length;rs&&(e=i-s+(a=" ... ").length),r-i>s&&(r=i+s-(o=" ...").length),{str:a+t.slice(e,r).replace(/\t/g,"\u2192")+o,pos:i-e+a.length}}function g(t,e){return u.repeat(" ",e-t.length)+t}function y(t,e){if(e=Object.create(e||null),!t.buffer)return null;!e.maxLength&&(e.maxLength=79),"number"!=typeof e.indent&&(e.indent=1),"number"!=typeof e.linesBefore&&(e.linesBefore=3),"number"!=typeof e.linesAfter&&(e.linesAfter=2);for(var r=/\r?\n|\r|\0/g,i=[0],n=[],a=-1;o=r.exec(t.buffer);)n.push(o.index),i.push(o.index+o[0].length),t.position<=o.index&&a<0&&(a=i.length-2);a<0&&(a=i.length-1);var o,s,l,h="",c=Math.min(t.line+e.linesAfter,n.length).toString().length,d=e.maxLength-(e.indent+c+3);for(s=1;s<=e.linesBefore&&!(a-s<0);s++)l=p(t.buffer,i[a-s],n[a-s],t.position-(i[a]-i[a-s]),d),h=u.repeat(" ",e.indent)+g((t.line-s+1).toString(),c)+" | "+l.str+"\n"+h;for(l=p(t.buffer,i[a],n[a],t.position,d),h+=u.repeat(" ",e.indent)+g((t.line+1).toString(),c)+" | "+l.str+"\n"+(u.repeat("-",e.indent+c+3+l.pos)+"^\n"),s=1;s<=e.linesAfter&&!(a+s>=n.length);s++)l=p(t.buffer,i[a+s],n[a+s],t.position-(i[a]-i[a+s]),d),h+=u.repeat(" ",e.indent)+g((t.line+s+1).toString(),c)+" | "+l.str+"\n";return h.replace(/\n$/,"")}(0,n.eW)(p,"getLine"),(0,n.eW)(g,"padStart"),(0,n.eW)(y,"makeSnippet");var m=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],x=["scalar","sequence","mapping"];function b(t){var e={};return null!==t&&Object.keys(t).forEach(function(r){t[r].forEach(function(t){e[String(t)]=r})}),e}function k(t,e){if(Object.keys(e=e||{}).forEach(function(e){if(-1===m.indexOf(e))throw new f('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=b(e.styleAliases||null),-1===x.indexOf(this.kind))throw new f('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}(0,n.eW)(b,"compileStyleAliases"),(0,n.eW)(k,"Type$1");function C(t,e){var r=[];return t[e].forEach(function(t){var e=r.length;r.forEach(function(r,i){r.tag===t.tag&&r.kind===t.kind&&r.multi===t.multi&&(e=i)}),r[e]=t}),r}function w(){var t,e,r={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function i(t){t.multi?(r.multi[t.kind].push(t),r.multi.fallback.push(t)):r[t.kind][t.tag]=r.fallback[t.tag]=t}for((0,n.eW)(i,"collectType"),t=0,e=arguments.length;t=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},"binary"),octal:(0,n.eW)(function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},"octal"),decimal:(0,n.eW)(function(t){return t.toString(10)},"decimal"),hexadecimal:(0,n.eW)(function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),z=RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function j(t){return!!(null!==t&&z.test(t)&&"_"!==t[t.length-1])||!1}function R(t){var e,r;return(r="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e)?1===r?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:r*parseFloat(e,10)}(0,n.eW)(j,"resolveYamlFloat"),(0,n.eW)(R,"constructYamlFloat");var P=/^[-+]?[0-9]+e/;function q(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(u.isNegativeZero(t))return"-0.0";return r=t.toString(10),P.test(r)?r.replace("e",".e"):r}function H(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||u.isNegativeZero(t))}(0,n.eW)(q,"representYamlFloat"),(0,n.eW)(H,"isFloat");var U=new k("tag:yaml.org,2002:float",{kind:"scalar",resolve:j,construct:R,predicate:H,represent:q,defaultStyle:"lowercase"}),Y=v.extend({implicit:[B,$,I,U]}),V=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),G=RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function X(t){return null!==t&&(null!==V.exec(t)||null!==G.exec(t)||!1)}function Q(t){var e,r,i,n,a,o,s,l,h,c=0,u=null;if(null===(e=V.exec(t))&&(e=G.exec(t)),null===e)throw Error("Date resolve error");if(r=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(r,i,n));if(a=+e[4],o=+e[5],s=+e[6],e[7]){for(c=e[7].slice(0,3);c.length<3;)c+="0";c=+c}return e[9]&&(l=+e[10],u=(60*l+ +(e[11]||0))*6e4,"-"===e[9]&&(u=-u)),h=new Date(Date.UTC(r,i,n,a,o,s,c)),u&&h.setTime(h.getTime()-u),h}function K(t){return t.toISOString()}(0,n.eW)(X,"resolveYamlTimestamp"),(0,n.eW)(Q,"constructYamlTimestamp"),(0,n.eW)(K,"representYamlTimestamp");var J=new k("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:X,construct:Q,instanceOf:Date,represent:K});function tt(t){return"<<"===t||null===t}(0,n.eW)(tt,"resolveYamlMerge");var te=new k("tag:yaml.org,2002:merge",{kind:"scalar",resolve:tt}),tr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";function ti(t){if(null===t)return!1;var e,r,i=0,n=t.length;for(r=0;r64)){if(e<0)return!1;i+=6}return i%8==0}function tn(t){var e,r,i=t.replace(/[\r\n=]/g,""),n=i.length,a=0,o=[];for(e=0;e>16&255),o.push(a>>8&255),o.push(255&a)),a=a<<6|tr.indexOf(i.charAt(e));return 0==(r=n%4*6)?(o.push(a>>16&255),o.push(a>>8&255),o.push(255&a)):18===r?(o.push(a>>10&255),o.push(a>>2&255)):12===r&&o.push(a>>4&255),new Uint8Array(o)}function ta(t){var e,r,i="",n=0,a=t.length;for(e=0;e>18&63],i+=tr[n>>12&63],i+=tr[n>>6&63],i+=tr[63&n]),n=(n<<8)+t[e];return 0==(r=a%3)?(i+=tr[n>>18&63],i+=tr[n>>12&63],i+=tr[n>>6&63],i+=tr[63&n]):2===r?(i+=tr[n>>10&63],i+=tr[n>>4&63],i+=tr[n<<2&63],i+=tr[64]):1===r&&(i+=tr[n>>2&63],i+=tr[n<<4&63],i+=tr[64],i+=tr[64]),i}function to(t){return"[object Uint8Array]"===Object.prototype.toString.call(t)}(0,n.eW)(ti,"resolveYamlBinary"),(0,n.eW)(tn,"constructYamlBinary"),(0,n.eW)(ta,"representYamlBinary"),(0,n.eW)(to,"isBinary");var ts=new k("tag:yaml.org,2002:binary",{kind:"scalar",resolve:ti,construct:tn,predicate:to,represent:ta}),tl=Object.prototype.hasOwnProperty,th=Object.prototype.toString;function tc(t){if(null===t)return!0;var e,r,i,n,a,o=[];for(e=0,r=t.length;e>10)+55296,(t-65536&1023)+56320)}(0,n.eW)(tB,"_class"),(0,n.eW)(tL,"is_EOL"),(0,n.eW)(tA,"is_WHITE_SPACE"),(0,n.eW)(tF,"is_WS_OR_EOL"),(0,n.eW)(t$,"is_FLOW_INDICATOR"),(0,n.eW)(tW,"fromHexCode"),(0,n.eW)(tE,"escapedHexLen"),(0,n.eW)(tD,"fromDecimalCode"),(0,n.eW)(tZ,"simpleEscapeSequence"),(0,n.eW)(tO,"charFromCodepoint");var tN=Array(256),tI=Array(256);for(i=0;i<256;i++)tN[i]=tZ(i)?1:0,tI[i]=tZ(i);function tz(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||tC,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function tj(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=y(r),new f(e,r)}function tR(t,e){throw tj(t,e)}function tP(t,e){t.onWarning&&t.onWarning.call(null,tj(t,e))}(0,n.eW)(tz,"State$1"),(0,n.eW)(tj,"generateError"),(0,n.eW)(tR,"throwError"),(0,n.eW)(tP,"throwWarning");var tq={YAML:(0,n.eW)(function(t,e,r){var i,n,a;null!==t.version&&tR(t,"duplication of %YAML directive"),1!==r.length&&tR(t,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&tR(t,"ill-formed argument of the YAML directive"),n=parseInt(i[1],10),a=parseInt(i[2],10),1!==n&&tR(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=a<2,1!==a&&2!==a&&tP(t,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:(0,n.eW)(function(t,e,r){var i,n;2!==r.length&&tR(t,"TAG directive accepts exactly two arguments"),i=r[0],n=r[1],!tS.test(i)&&tR(t,"ill-formed tag handle (first argument) of the TAG directive"),tw.call(t.tagMap,i)&&tR(t,'there is a previously declared suffix for "'+i+'" tag handle'),!tM.test(n)&&tR(t,"ill-formed tag prefix (second argument) of the TAG directive");try{n=decodeURIComponent(n)}catch(e){tR(t,"tag prefix is malformed: "+n)}t.tagMap[i]=n},"handleTagDirective")};function tH(t,e,r,i){var n,a,o,s;if(e1&&(t.result+=u.repeat("\n",e-1))}function tK(t,e,r){var i,n,a,o,s,l,h,c,u=t.kind,d=t.result;if(tF(c=t.input.charCodeAt(t.position))||t$(c)||35===c||38===c||42===c||33===c||124===c||62===c||39===c||34===c||37===c||64===c||96===c||(63===c||45===c)&&(tF(i=t.input.charCodeAt(t.position+1))||r&&t$(i)))return!1;for(t.kind="scalar",t.result="",n=a=t.position,o=!1;0!==c;){if(58===c){if(tF(i=t.input.charCodeAt(t.position+1))||r&&t$(i))break}else if(35===c){if(tF(t.input.charCodeAt(t.position-1)))break}else if(t.position===t.lineStart&&tX(t)||r&&t$(c))break;else if(tL(c)){if(s=t.line,l=t.lineStart,h=t.lineIndent,tG(t,!1,-1),t.lineIndent>=e){o=!0,c=t.input.charCodeAt(t.position);continue}t.position=a,t.line=s,t.lineStart=l,t.lineIndent=h;break}o&&(tH(t,n,a,!1),tQ(t,t.line-s),n=a=t.position,o=!1),!tA(c)&&(a=t.position+1),c=t.input.charCodeAt(++t.position)}return tH(t,n,a,!1),!!t.result||(t.kind=u,t.result=d,!1)}function tJ(t,e){var r,i,n;if(39!==(r=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,i=n=t.position;0!==(r=t.input.charCodeAt(t.position));)if(39===r){if(tH(t,i,t.position,!0),39!==(r=t.input.charCodeAt(++t.position)))return!0;i=t.position,t.position++,n=t.position}else tL(r)?(tH(t,i,n,!0),tQ(t,tG(t,!1,e)),i=n=t.position):t.position===t.lineStart&&tX(t)?tR(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);tR(t,"unexpected end of the stream within a single quoted scalar")}function t0(t,e){var r,i,n,a,o,s;if(34!==(s=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,r=i=t.position;0!==(s=t.input.charCodeAt(t.position));){if(34===s)return tH(t,r,t.position,!0),t.position++,!0;if(92===s){if(tH(t,r,t.position,!0),tL(s=t.input.charCodeAt(++t.position)))tG(t,!1,e);else if(s<256&&tN[s])t.result+=tI[s],t.position++;else if((o=tE(s))>0){for(n=o,a=0;n>0;n--)(o=tW(s=t.input.charCodeAt(++t.position)))>=0?a=(a<<4)+o:tR(t,"expected hexadecimal character");t.result+=tO(a),t.position++}else tR(t,"unknown escape sequence");r=i=t.position}else tL(s)?(tH(t,r,i,!0),tQ(t,tG(t,!1,e)),r=i=t.position):t.position===t.lineStart&&tX(t)?tR(t,"unexpected end of the document within a double quoted scalar"):(t.position++,i=t.position)}tR(t,"unexpected end of the stream within a double quoted scalar")}function t1(t,e){var r,i,n,a,o,s,l,h,c,u,d,f,p=!0,g=t.tag,y=t.anchor,m=Object.create(null);if(91===(f=t.input.charCodeAt(t.position)))o=93,h=!1,a=[];else{if(123!==f)return!1;o=125,h=!0,a={}}for(null!==t.anchor&&(t.anchorMap[t.anchor]=a),f=t.input.charCodeAt(++t.position);0!==f;){if(tG(t,!0,e),(f=t.input.charCodeAt(t.position))===o)return t.position++,t.tag=g,t.anchor=y,t.kind=h?"mapping":"sequence",t.result=a,!0;p?44===f&&tR(t,"expected the node content, but found ','"):tR(t,"missed comma between flow collection entries");u=c=d=null,s=l=!1,63===f&&tF(t.input.charCodeAt(t.position+1))&&(s=l=!0,t.position++,tG(t,!0,e)),r=t.line,i=t.lineStart,n=t.position,t9(t,e,1,!1,!0),u=t.tag,c=t.result,tG(t,!0,e),f=t.input.charCodeAt(t.position),(l||t.line===r)&&58===f&&(s=!0,f=t.input.charCodeAt(++t.position),tG(t,!0,e),t9(t,e,1,!1,!0),d=t.result),h?tY(t,a,m,u,c,d,r,i,n):s?a.push(tY(t,null,m,u,c,d,r,i,n)):a.push(c),tG(t,!0,e),44===(f=t.input.charCodeAt(t.position))?(p=!0,f=t.input.charCodeAt(++t.position)):p=!1}tR(t,"unexpected end of the stream within a flow collection")}function t2(t,e){var r,i,n,a,o=1,s=!1,l=!1,h=e,c=0,d=!1;if(124===(a=t.input.charCodeAt(t.position)))i=!1;else{if(62!==a)return!1;i=!0}for(t.kind="scalar",t.result="";0!==a;)if(43===(a=t.input.charCodeAt(++t.position))||45===a)1===o?o=43===a?3:2:tR(t,"repeat of a chomping mode identifier");else if((n=tD(a))>=0)0===n?tR(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?tR(t,"repeat of an indentation width identifier"):(h=e+n-1,l=!0);else break;if(tA(a)){do a=t.input.charCodeAt(++t.position);while(tA(a));if(35===a)do a=t.input.charCodeAt(++t.position);while(!tL(a)&&0!==a)}for(;0!==a;){for(tV(t),t.lineIndent=0,a=t.input.charCodeAt(t.position);(!l||t.lineIndenth&&(h=t.lineIndent),tL(a)){c++;continue}if(t.lineIndente)&&0!==i)tR(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(m&&(o=t.line,s=t.lineStart,l=t.position),t9(t,e,4,!0,n)&&(m?g=t.result:y=t.result),!m&&(tY(t,d,f,p,g,y,o,s,l),p=g=y=null),tG(t,!0,-1),h=t.input.charCodeAt(t.position)),(t.line===a||t.lineIndent>e)&&0!==h)tR(t,"bad indentation of a mapping entry");else if(t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),l=0,h=t.implicitTypes.length;l"),null!==t.result&&u.kind!==t.kind&&tR(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+u.kind+'", not "'+t.kind+'"'),u.resolve(t.result,t.tag)?(t.result=u.construct(t.result,t.tag),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):tR(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||y}function t7(t){var e,r,i,n,a=t.position,o=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);0!==(n=t.input.charCodeAt(t.position))&&(tG(t,!0,-1),n=t.input.charCodeAt(t.position),!(t.lineIndent>0)&&37===n);){;for(o=!0,n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!tF(n);)n=t.input.charCodeAt(++t.position);for(r=t.input.slice(e,t.position),i=[],r.length<1&&tR(t,"directive name must not be less than one character in length");0!==n;){for(;tA(n);)n=t.input.charCodeAt(++t.position);if(35===n){do n=t.input.charCodeAt(++t.position);while(0!==n&&!tL(n));break}if(tL(n))break;for(e=t.position;0!==n&&!tF(n);)n=t.input.charCodeAt(++t.position);i.push(t.input.slice(e,t.position))}0!==n&&tV(t),tw.call(tq,r)?tq[r](t,r,i):tP(t,'unknown document directive "'+r+'"')}if(tG(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,tG(t,!0,-1)):o&&tR(t,"directives end mark is expected"),t9(t,t.lineIndent-1,4,!1,!0),tG(t,!0,-1),t.checkLineBreaks&&tv.test(t.input.slice(a,t.position))&&tP(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&tX(t)){46===t.input.charCodeAt(t.position)&&(t.position+=3,tG(t,!0,-1));return}if(!!(t.position=55296&&i<=56319&&e+1=56320&&r<=57343?(i-55296)*1024+r-56320+65536:i}function e_(t){return/^\n* /.test(t)}(0,n.eW)(ed,"State"),(0,n.eW)(ef,"indentString"),(0,n.eW)(ep,"generateNextLine"),(0,n.eW)(eg,"testImplicitResolving"),(0,n.eW)(ey,"isWhitespace"),(0,n.eW)(em,"isPrintable"),(0,n.eW)(ex,"isNsCharOrWhitespace"),(0,n.eW)(eb,"isPlainSafe"),(0,n.eW)(ek,"isPlainSafeFirst"),(0,n.eW)(eC,"isPlainSafeLast"),(0,n.eW)(ew,"codePointAt"),(0,n.eW)(e_,"needIndentIndicator");function ev(t,e,r,i,n,a,o,s){var l,h=0,c=null,u=!1,d=!1,f=-1!==i,p=-1,g=ek(ew(t,0))&&eC(ew(t,t.length-1));if(e||o)for(l=0;l=65536?l+=2:l++){if(!em(h=ew(t,l)))return 5;g=g&&eb(h,c,s),c=h}else{for(l=0;l=65536?l+=2:l++){if(10===(h=ew(t,l)))u=!0,f&&(d=d||l-p-1>i&&" "!==t[p+1],p=l);else if(!em(h))return 5;g=g&&eb(h,c,s),c=h}d=d||f&&l-p-1>i&&" "!==t[p+1]}if(!u&&!d)return!g||o||n(t)?2===a?5:2:1;return r>9&&e_(t)?5:o?2===a?5:2:d?4:3}function eT(t,e,r,i,a){t.dump=function(){if(0===e.length)return 2===t.quotingType?'""':"''";if(!t.noCompatMode&&(-1!==el.indexOf(e)||eh.test(e)))return 2===t.quotingType?'"'+e+'"':"'"+e+"'";var o=t.indent*Math.max(1,r),s=-1===t.lineWidth?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-o),l=i||t.flowLevel>-1&&r>=t.flowLevel;function h(e){return eg(t,e)}switch((0,n.eW)(h,"testAmbiguity"),ev(e,l,t.indent,s,h,t.quotingType,t.forceQuotes&&!i,a)){case 1:return e;case 2:return"'"+e.replace(/'/g,"''")+"'";case 3:return"|"+eS(e,t.indent)+eM(ef(e,o));case 4:return">"+eS(e,t.indent)+eM(ef(eB(e,s),o));case 5:return'"'+eA(e)+'"';default:throw new f("impossible error: invalid scalar style")}}()}function eS(t,e){var r=e_(t)?String(e):"",i="\n"===t[t.length-1],n=i&&("\n"===t[t.length-2]||"\n"===t);return r+(n?"+":i?"":"-")+"\n"}function eM(t){return"\n"===t[t.length-1]?t.slice(0,-1):t}function eB(t,e){var r,i,n,a=/(\n+)([^\n]*)/g;for(var o=(r=-1!==(r=t.indexOf("\n"))?r:t.length,a.lastIndex=r,eL(t.slice(0,r),e)),s="\n"===t[0]||" "===t[0];n=a.exec(t);){var l=n[1],h=n[2];i=" "===h[0],o+=l+(s||i||""===h?"":"\n")+eL(h,e),s=i}return o}function eL(t,e){if(""===t||" "===t[0])return t;for(var r=/ [^ ]/g,i,n,a=0,o=0,s=0,l="";i=r.exec(t);)(s=i.index)-a>e&&(n=o>a?o:s,l+="\n"+t.slice(a,n),a=n+1),o=s;return l+="\n",t.length-a>e&&o>a?l+=t.slice(a,o)+"\n"+t.slice(o+1):l+=t.slice(a),l.slice(1)}function eA(t){for(var e,r="",i=0,n=0;n=65536?n+=2:n++)!(e=es[i=ew(t,n)])&&em(i)?(r+=t[n],i>=65536&&(r+=t[n+1])):r+=e||eu(i);return r}function eF(t,e,r){var i,n,a,o="",s=t.tag;for(i=0,n=r.length;i1024&&(s+="? "),s+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),!!eZ(t,e,o,!1,!1))s+=t.dump,l+=s}t.tag=h,t.dump="{"+l+"}"}function eE(t,e,r,i){var n,a,o,s,l,h,c="",u=t.tag,d=Object.keys(r);if(!0===t.sortKeys)d.sort();else if("function"==typeof t.sortKeys)d.sort(t.sortKeys);else if(t.sortKeys)throw new f("sortKeys must be a boolean or a function");for(n=0,a=d.length;n1024)&&(t.dump&&10===t.dump.charCodeAt(0)?h+="?":h+="? "),h+=t.dump,l&&(h+=ep(t,e)),!!eZ(t,e+1,s,!0,l))t.dump&&10===t.dump.charCodeAt(0)?h+=":":h+=": ",h+=t.dump,c+=h}t.tag=u,t.dump=c||"{}"}function eD(t,e,r){var i,n,a,o,s,l;for(a=0,o=(n=r?t.explicitTypes:t.implicitTypes).length;a tag resolver accepts not "'+l+'" style');t.dump=i}return!0}return!1}function eZ(t,e,r,i,n,a,o){t.tag=null,t.dump=r,!eD(t,r,!1)&&eD(t,r,!0);var s=ea.call(t.dump),l=i;i&&(i=t.flowLevel<0||t.flowLevel>e);var h,c,u,d="[object Object]"===s||"[object Array]"===s;if(d&&(u=-1!==(c=t.duplicates.indexOf(r))),(null!==t.tag&&"?"!==t.tag||u||2!==t.indent&&e>0)&&(n=!1),u&&t.usedDuplicates[c])t.dump="*ref_"+c;else{if(d&&u&&!t.usedDuplicates[c]&&(t.usedDuplicates[c]=!0),"[object Object]"===s)i&&0!==Object.keys(t.dump).length?(eE(t,e,t.dump,n),u&&(t.dump="&ref_"+c+t.dump)):(eW(t,e,t.dump),u&&(t.dump="&ref_"+c+" "+t.dump));else if("[object Array]"===s)i&&0!==t.dump.length?(t.noArrayIndent&&!o&&e>0?e$(t,e-1,t.dump,n):e$(t,e,t.dump,n),u&&(t.dump="&ref_"+c+t.dump)):(eF(t,e,t.dump),u&&(t.dump="&ref_"+c+" "+t.dump));else if("[object String]"===s)"?"!==t.tag&&eT(t,t.dump,e,a,l);else{if("[object Undefined]"===s)return!1;if(t.skipInvalid)return!1;throw new f("unacceptable kind of an object to dump "+s)}null!==t.tag&&"?"!==t.tag&&(h=encodeURI("!"===t.tag[0]?t.tag.slice(1):t.tag).replace(/!/g,"%21"),h="!"===t.tag[0]?"!"+h:"tag:yaml.org,2002:"===h.slice(0,18)?"!!"+h.slice(18):"!<"+h+">",t.dump=h+" "+t.dump)}return!0}function eO(t,e){var r,i,n=[],a=[];for(eN(t,n,a),r=0,i=a.length;rr,contentTitle:()=>o,default:()=>p,assets:()=>c,toc:()=>u,frontMatter:()=>l});var r=JSON.parse('{"id":"exercises/data-objects/data-objects01","title":"DataObjects01","description":"","source":"@site/docs/exercises/data-objects/data-objects01.mdx","sourceDirName":"exercises/data-objects","slug":"/exercises/data-objects/data-objects01","permalink":"/java-docs/pr-preview/pr-238/exercises/data-objects/data-objects01","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/data-objects/data-objects01.mdx","tags":[],"version":"current","frontMatter":{"title":"DataObjects01","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Datenobjekte","permalink":"/java-docs/pr-preview/pr-238/exercises/data-objects/"},"next":{"title":"DataObjects02","permalink":"/java-docs/pr-preview/pr-238/exercises/data-objects/data-objects02"}}'),n=a("85893"),s=a("50065"),i=a("39661");let l={title:"DataObjects01",description:""},o=void 0,c={},u=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2}];function d(e){let t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Erstelle eine ausf\xfchrbare Klasse, welche die drei Variablen ",(0,n.jsx)(t.code,{children:"name"})," (Datentyp\n",(0,n.jsx)(t.code,{children:"String"}),"), ",(0,n.jsx)(t.code,{children:"age"})," (Datentyp ",(0,n.jsx)(t.code,{children:"int"}),") und ",(0,n.jsx)(t.code,{children:"gender"})," (Datentyp ",(0,n.jsx)(t.code,{children:"char"}),") deklariert,\ninitialisiert und \xfcber die Konsole ausgibt."]}),"\n",(0,n.jsx)(t.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-console",children:"Name: Hans\nAlter: 25\nGeschlecht: m\n"})}),"\n",(0,n.jsx)(i.Z,{pullRequest:"3",branchSuffix:"data-objects/01"})]})}function p(e={}){let{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},5525:function(e,t,a){a.d(t,{Z:()=>i});var r=a("85893");a("67294");var n=a("67026");let s="tabItem_Ymn6";function i(e){let{children:t,hidden:a,className:i}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,n.Z)(s,i),hidden:a,children:t})}},47902:function(e,t,a){a.d(t,{Z:()=>g});var r=a("85893"),n=a("67294"),s=a("67026"),i=a("69599"),l=a("16550"),o=a("32000"),c=a("4520"),u=a("38341"),d=a("76009");function p(e){return n.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||n.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:t,tabValues:a}=e;return a.some(e=>e.value===t)}var b=a("7227");let f="tabList__CuJ",j="tabItem_LNqP";function m(e){let{className:t,block:a,selectedValue:n,selectValue:l,tabValues:o}=e,c=[],{blockElementScrollPositionUntilNextRender:u}=(0,i.o5)(),d=e=>{let t=e.currentTarget,a=o[c.indexOf(t)].value;a!==n&&(u(t),l(a))},p=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let a=c.indexOf(e.currentTarget)+1;t=c[a]??c[0];break}case"ArrowLeft":{let a=c.indexOf(e.currentTarget)-1;t=c[a]??c[c.length-1]}}t?.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":a},t),children:o.map(e=>{let{value:t,label:a,attributes:i}=e;return(0,r.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>c.push(e),onKeyDown:p,onClick:d,...i,className:(0,s.Z)("tabs__item",j,i?.className,{"tabs__item--active":n===t}),children:a??t},t)})})}function v(e){let{lazy:t,children:a,selectedValue:i}=e,l=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){let e=l.find(e=>e.props.value===i);return e?(0,n.cloneElement)(e,{className:(0,s.Z)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:l.map((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==i}))})}function x(e){let t=function(e){let{defaultValue:t,queryString:a=!1,groupId:r}=e,s=function(e){let{values:t,children:a}=e;return(0,n.useMemo)(()=>{let e=t??p(a).map(e=>{let{props:{value:t,label:a,attributes:r,default:n}}=e;return{value:t,label:a,attributes:r,default:n}});return!function(e){let t=(0,u.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[t,a])}(e),[i,b]=(0,n.useState)(()=>(function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:a}))throw Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let r=a.find(e=>e.default)??a[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:t,tabValues:s})),[f,j]=function(e){let{queryString:t=!1,groupId:a}=e,r=(0,l.k6)(),s=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a}),i=(0,c._X)(s);return[i,(0,n.useCallback)(e=>{if(!s)return;let t=new URLSearchParams(r.location.search);t.set(s,e),r.replace({...r.location,search:t.toString()})},[s,r])]}({queryString:a,groupId:r}),[m,v]=function(e){var t;let{groupId:a}=e;let r=(t=a)?`docusaurus.tab.${t}`:null,[s,i]=(0,d.Nk)(r);return[s,(0,n.useCallback)(e=>{if(!!r)i.set(e)},[r,i])]}({groupId:r}),x=(()=>{let e=f??m;return h({value:e,tabValues:s})?e:null})();return(0,o.Z)(()=>{x&&b(x)},[x]),{selectedValue:i,selectValue:(0,n.useCallback)(e=>{if(!h({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);b(e),j(e),v(e)},[j,v,s]),tabValues:s}}(e);return(0,r.jsxs)("div",{className:(0,s.Z)("tabs-container",f),children:[(0,r.jsx)(m,{...t,...e}),(0,r.jsx)(v,{...t,...e})]})}function g(e){let t=(0,b.Z)();return(0,r.jsx)(x,{...e,children:p(e.children)},String(t))}},39661:function(e,t,a){a.d(t,{Z:function(){return o}});var r=a(85893);a(67294);var n=a(47902),s=a(5525),i=a(83012),l=a(45056);function o(e){let{pullRequest:t,branchSuffix:a}=e;return(0,r.jsxs)(n.Z,{children:[(0,r.jsxs)(s.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,r.jsx)(l.Z,{language:"console",children:`git switch exercises/${a}`}),(0,r.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${a}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(s.Z,{value:"solution",label:"Solution",children:[(0,r.jsx)(l.Z,{language:"console",children:`git switch solutions/${a}`}),(0,r.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${a}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(s.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,r.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${t}/files?diff=split`,children:["PR#",t]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1b894b62.59587b39.js b/pr-preview/pr-238/assets/js/1b894b62.59587b39.js new file mode 100644 index 0000000000..d140102b45 --- /dev/null +++ b/pr-preview/pr-238/assets/js/1b894b62.59587b39.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8582"],{46024:function(e,n,i){i.r(n),i.d(n,{metadata:()=>s,contentTitle:()=>t,default:()=>m,assets:()=>c,toc:()=>d,frontMatter:()=>r});var s=JSON.parse('{"id":"exam-exercises/exam-exercises-java1/dice-games/dice-game-03","title":"W\xfcrfelspiel 3","description":"","source":"@site/docs/exam-exercises/exam-exercises-java1/dice-games/dice-game-03.md","sourceDirName":"exam-exercises/exam-exercises-java1/dice-games","slug":"/exam-exercises/exam-exercises-java1/dice-games/dice-game-03","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-03","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java1/dice-games/dice-game-03.md","tags":[{"inline":true,"label":"console-applications","permalink":"/java-docs/pr-preview/pr-238/tags/console-applications"},{"inline":true,"label":"oo","permalink":"/java-docs/pr-preview/pr-238/tags/oo"}],"version":"current","frontMatter":{"title":"W\xfcrfelspiel 3","description":"","tags":["console-applications","oo"]},"sidebar":"examExercisesSidebar","previous":{"title":"W\xfcrfelspiel 2","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-02"},"next":{"title":"W\xfcrfelspiel 4","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-04"}}'),l=i("85893"),a=i("50065");let r={title:"W\xfcrfelspiel 3",description:"",tags:["console-applications","oo"]},t=void 0,c={},d=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Allgemeine Hinweise",id:"allgemeine-hinweise",level:2},{value:"Hinweis zur Klasse Dice",id:"hinweis-zur-klasse-dice",level:2},{value:"Hinweis zur Klasse Player",id:"hinweis-zur-klasse-player",level:2},{value:"Spielablauf",id:"spielablauf",level:2},{value:"Beispielhafte Konsolenausgabe",id:"beispielhafte-konsolenausgabe",level:2}];function o(e){let n={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.p,{children:"Setze das abgebildete Klassendiagramm vollst\xe4ndig um. Orientiere Dich bei der\nKonsolenausgabe am abgebildeten Beispiel."}),"\n",(0,l.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,l.jsx)(n.mermaid,{value:"classDiagram\n MainClass o-- Player\n Player o-- Dice\n\n class MainClass {\n -player1: Player$\n -player2: Player$\n -scanner: Scanner$\n +main(args: String[]) void$\n }\n\n class Player {\n -name: String #123;final#125;\n -dice: Dice #123;final#125;\n -healthPoints: int\n +Player(name: String)\n +rollTheDice() int\n +reduceHealthPoints(points: int) void\n }\n\n class Dice {\n +rollTheDice() int\n }"}),"\n",(0,l.jsx)(n.h2,{id:"allgemeine-hinweise",children:"Allgemeine Hinweise"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Aus Gr\xfcnden der \xdcbersicht werden im Klassendiagramm keine Getter und\nObject-Methoden dargestellt"}),"\n",(0,l.jsx)(n.li,{children:"So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die\nObject-Methoden wie gewohnt implementiert werden"}),"\n"]}),"\n",(0,l.jsxs)(n.h2,{id:"hinweis-zur-klasse-dice",children:["Hinweis zur Klasse ",(0,l.jsx)(n.em,{children:"Dice"})]}),"\n",(0,l.jsxs)(n.p,{children:["Die Methode ",(0,l.jsx)(n.code,{children:"int rollTheDice()"})," soll mit einer gleichverteilten\nWahrscheinlichkeit einen Wert zwischen 1 und 6 zur\xfcckgeben."]}),"\n",(0,l.jsxs)(n.h2,{id:"hinweis-zur-klasse-player",children:["Hinweis zur Klasse ",(0,l.jsx)(n.em,{children:"Player"})]}),"\n",(0,l.jsx)(n.p,{children:"Der Konstruktor soll alle Attribute initialisieren und die Lebenspunkte auf den\nWert 10 setzen."}),"\n",(0,l.jsx)(n.h2,{id:"spielablauf",children:"Spielablauf"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:"Zu Beginn des Spiels sollen die Spieler ihre Namen eingeben k\xf6nnen"}),"\n",(0,l.jsx)(n.li,{children:"Beide Spieler sollen zu Beginn des Spiels 10 Lebenspunkte besitzen"}),"\n",(0,l.jsx)(n.li,{children:"Zu Beginn einer jeder Runde soll der aktuelle Punktestand ausgegeben werden"}),"\n",(0,l.jsx)(n.li,{children:"Anschlie\xdfend sollen beide Spieler ihre W\xfcrfel werfen"}),"\n",(0,l.jsx)(n.li,{children:"Der Spieler mit dem niedrigeren Wurfwert soll einen Lebenspunkt verlieren, bei\nGleichstand soll keiner der Spieler einen Lebenspunkt verlieren"}),"\n",(0,l.jsx)(n.li,{children:"Das Spiel soll Enden, sobald ein Spieler keine Lebenspunkte mehr besitzt"}),"\n",(0,l.jsx)(n.li,{children:"Am Ende soll der Gewinner des Spiels ausgegeben werden"}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"beispielhafte-konsolenausgabe",children:"Beispielhafte Konsolenausgabe"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-console",children:"Spieler 1, gib bitte Deinen Namen ein: Hans\nSpieler 2, gib bitte Deinen Namen ein: Peter\n\nHans hat 10 Lebenspunkte\nPeter hat 10 Lebenspunkte\nHans w\xfcrfelt eine 6\nPeter w\xfcrfelt eine 6\n...\nHans hat 4 Lebenspunkte\nPeter hat 1 Lebenspunkte\nHans w\xfcrfelt eine 5\nPeter w\xfcrfelt eine 1\nPeter verliert einen Punkt\n\nHans gewinnt\n"})})]})}function m(e={}){let{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(o,{...e})}):o(e)}},50065:function(e,n,i){i.d(n,{Z:function(){return t},a:function(){return r}});var s=i(67294);let l={},a=s.createContext(l);function r(e){let n=s.useContext(a);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1b91faeb.10b9c50d.js b/pr-preview/pr-238/assets/js/1b91faeb.10b9c50d.js new file mode 100644 index 0000000000..9ab50e0e46 --- /dev/null +++ b/pr-preview/pr-238/assets/js/1b91faeb.10b9c50d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2736"],{10125:function(e,n,s){s.r(n),s.d(n,{metadata:()=>t,contentTitle:()=>l,default:()=>u,assets:()=>d,toc:()=>a,frontMatter:()=>o});var t=JSON.parse('{"id":"exercises/unit-tests/unit-tests03","title":"UnitTests03","description":"","source":"@site/docs/exercises/unit-tests/unit-tests03.md","sourceDirName":"exercises/unit-tests","slug":"/exercises/unit-tests/unit-tests03","permalink":"/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests03","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/unit-tests/unit-tests03.md","tags":[],"version":"current","frontMatter":{"title":"UnitTests03","description":""},"sidebar":"exercisesSidebar","previous":{"title":"UnitTests02","permalink":"/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests02"},"next":{"title":"UnitTests04","permalink":"/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests04"}}'),i=s("85893"),r=s("50065");let o={title:"UnitTests03",description:""},l=void 0,d={},a=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Hinweise zur Klasse TelephoneBookTest",id:"hinweise-zur-klasse-telephonebooktest",level:2},{value:"Hinweis",id:"hinweis",level:2}];function c(e){let n={a:"a",code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Erstelle die JUnit5-Testklasse ",(0,i.jsx)(n.code,{children:"TelephoneBookTest"})," anhand des abgebildeten\nKlassendiagramms."]}),"\n",(0,i.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,i.jsx)(n.mermaid,{value:"classDiagram\n TelephoneBook o-- Person\n TelephoneBook o-- TelephoneNumber\n TelephoneBookTest o-- TelephoneBook\n\n class Person {\n <>\n name: String\n }\n\n class TelephoneNumber {\n <>\n value: String\n }\n\n class TelephoneBook {\n <>\n entries: Map~Person, TelephoneNumber~\n +addEntry(person: Person, telephoneNumber: TelephoneNumber) void\n +getTelephoneNumberByName(name: String) Optional~TelephoneNumber~\n }\n\n class TelephoneBookTest {\n <>\n -telephoneBook: TelephoneBook\n +setUp() void\n +testAddEntry() void\n +testGetTelephoneNumberByName1() void\n +testGetTelephoneNumberByName2() void\n }"}),"\n",(0,i.jsxs)(n.h2,{id:"hinweise-zur-klasse-telephonebooktest",children:["Hinweise zur Klasse ",(0,i.jsx)(n.em,{children:"TelephoneBookTest"})]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Die Lebenszyklus-Methode ",(0,i.jsx)(n.code,{children:"void setUp()"})," soll ein Telefonbuch samt\ndazugeh\xf6riger Eintr\xe4ge erzeugen"]}),"\n",(0,i.jsxs)(n.li,{children:["Die Testmethode ",(0,i.jsx)(n.code,{children:"void testAddEntry()"})," soll pr\xfcfen, ob nach dem Ausf\xfchren der\nMethode ",(0,i.jsx)(n.code,{children:"void addEntry(person: Person, telephoneNumber: TelephoneNumber)"})," mit\neiner Person, zu der es bereits einen Eintrag im Telefonbuch gibt, die\nTelefonnummer aktualisiert wurde"]}),"\n",(0,i.jsxs)(n.li,{children:["Die Testmethode ",(0,i.jsx)(n.code,{children:"void testGetTelephoneNumberByName1()"})," soll pr\xfcfen, ob beim\nAusf\xfchren der Methode\n",(0,i.jsx)(n.code,{children:"Optional getTelephoneNumberByName(name: String)"})," mit einem\nNamen, zu dem es eine entsprechende Person im Telefonbuch gibt, die\ndazugeh\xf6rige Telefonnummer als Optional zur\xfcckgegeben wird"]}),"\n",(0,i.jsxs)(n.li,{children:["Die Testmethode ",(0,i.jsx)(n.code,{children:"void testGetTelephoneNumberByName2()"})," soll pr\xfcfen, ob beim\nAusf\xfchren der Methode\n",(0,i.jsx)(n.code,{children:"Optional getTelephoneNumberByName(name: String)"})," mit einem\nNamen, zu dem es keine entsprechende Person im Telefonbuch gibt, ein leeres\nOptional zur\xfcckgegeben wird"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"hinweis",children:"Hinweis"}),"\n",(0,i.jsxs)(n.p,{children:["Verweden die Klasse ",(0,i.jsx)(n.code,{children:"TelephoneBook"})," aus \xdcbungsaufgabe\n",(0,i.jsx)(n.a,{href:"../optionals/optionals02",children:"Optionals02"}),"."]})]})}function u(e={}){let{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},50065:function(e,n,s){s.d(n,{Z:function(){return l},a:function(){return o}});var t=s(67294);let i={},r=t.createContext(i);function o(e){let n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1be23d26.25f6312e.js b/pr-preview/pr-238/assets/js/1be23d26.25f6312e.js new file mode 100644 index 0000000000..0ba41f7c18 --- /dev/null +++ b/pr-preview/pr-238/assets/js/1be23d26.25f6312e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2541"],{39298:function(e,n,s){s.r(n),s.d(n,{metadata:()=>i,contentTitle:()=>l,default:()=>d,assets:()=>o,toc:()=>m,frontMatter:()=>t});var i=JSON.parse('{"id":"exam-exercises/exam-exercises-java2/class-diagrams/team","title":"Team","description":"","source":"@site/docs/exam-exercises/exam-exercises-java2/class-diagrams/team.md","sourceDirName":"exam-exercises/exam-exercises-java2/class-diagrams","slug":"/exam-exercises/exam-exercises-java2/class-diagrams/team","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/team","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java2/class-diagrams/team.md","tags":[{"inline":true,"label":"inheritance","permalink":"/java-docs/pr-preview/pr-238/tags/inheritance"},{"inline":true,"label":"polymorphism","permalink":"/java-docs/pr-preview/pr-238/tags/polymorphism"},{"inline":true,"label":"interfaces","permalink":"/java-docs/pr-preview/pr-238/tags/interfaces"},{"inline":true,"label":"comparators","permalink":"/java-docs/pr-preview/pr-238/tags/comparators"},{"inline":true,"label":"exceptions","permalink":"/java-docs/pr-preview/pr-238/tags/exceptions"},{"inline":true,"label":"records","permalink":"/java-docs/pr-preview/pr-238/tags/records"},{"inline":true,"label":"generics","permalink":"/java-docs/pr-preview/pr-238/tags/generics"},{"inline":true,"label":"maps","permalink":"/java-docs/pr-preview/pr-238/tags/maps"},{"inline":true,"label":"optionals","permalink":"/java-docs/pr-preview/pr-238/tags/optionals"}],"version":"current","frontMatter":{"title":"Team","description":"","tags":["inheritance","polymorphism","interfaces","comparators","exceptions","records","generics","maps","optionals"]},"sidebar":"examExercisesSidebar","previous":{"title":"Raumstation","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/space-station"},"next":{"title":"Videosammlung","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/video-collection"}}'),a=s("85893"),r=s("50065");let t={title:"Team",description:"",tags:["inheritance","polymorphism","interfaces","comparators","exceptions","records","generics","maps","optionals"]},l=void 0,o={},m=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Allgemeine Hinweise",id:"allgemeine-hinweise",level:2},{value:"Hinweise zur Klasse Sportsman",id:"hinweise-zur-klasse-sportsman",level:2},{value:"Hinweise zur Klasse Team",id:"hinweise-zur-klasse-team",level:2}];function c(e){let n={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"Setze das abgebildete Klassendiagramm vollst\xe4ndig um. Erstelle zum Testen eine\nausf\xfchrbare Klasse und/oder eine Testklasse."}),"\n",(0,a.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,a.jsx)(n.mermaid,{value:"classDiagram\n Sportsman <|-- Footballer : extends\n Team~T extends Sportsman~ o-- Position\n Comparable~Sportsman~ <|.. Sportsman : implements\n\n class Footballer {\n -numberOfGoals: int\n -numberOfAssists: int\n +Footballer(name: String, numberOfGoals: int, numberOfAssists: int)\n +getScorerPoints() int\n }\n\n class Position {\n <>\n DEFENDER\n GOALKEEPER\n MIDFIELDER\n STRIKER\n }\n\n class Sportsman {\n <>\n -name: String #123;final#125;\n +Sportsman(name: String)\n +getScorerPoints() int #123;abstract#125;\n +compareTo(other: Sportsman) int\n }\n\n class Team~T extends Sportsman~ {\n <>\n name: String\n members: Map~T, Position~\n +addTeamMember(member: T, position: Position) void\n +getBestScorer() Optional~T~\n +getAllTeamMembersByPosition(position: Position) List~T~\n }\n\n class Comparable~Sportsman~ {\n <>\n +compareTo(o: Sportsman) int\n }"}),"\n",(0,a.jsx)(n.h2,{id:"allgemeine-hinweise",children:"Allgemeine Hinweise"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Aus Gr\xfcnden der \xdcbersicht werden im Klassendiagramm keine Getter und\nObject-Methoden dargestellt"}),"\n",(0,a.jsx)(n.li,{children:"So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die\nObject-Methoden wie gewohnt implementiert werden"}),"\n"]}),"\n",(0,a.jsxs)(n.h2,{id:"hinweise-zur-klasse-sportsman",children:["Hinweise zur Klasse ",(0,a.jsx)(n.em,{children:"Sportsman"})]}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Der Konstruktor soll alle Attribute initialisieren"}),"\n",(0,a.jsxs)(n.li,{children:["Die Methode ",(0,a.jsx)(n.code,{children:"int compareTo(other: Sportsman)"})," soll so implementiert werden,\ndass Sportler absteigend nach ihren Scorer-Punkten sortiert werden k\xf6nnen"]}),"\n"]}),"\n",(0,a.jsxs)(n.h2,{id:"hinweise-zur-klasse-team",children:["Hinweise zur Klasse ",(0,a.jsx)(n.em,{children:"Team"})]}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Der Assoziativspeicher ",(0,a.jsx)(n.code,{children:"members"})," beinhaltet als Schl\xfcssel alle Mitglieder der\nMannschaft sowie als Wert deren Position"]}),"\n",(0,a.jsxs)(n.li,{children:["Die Methode ",(0,a.jsx)(n.code,{children:"void addTeamMember(member: T, position: Position)"})," soll der\nMannschaft den eingehenden Sportler als Mitglied mit der eingehenden Position\nhinzuf\xfcgen. F\xfcr den Fall, dass der Sportler bereits Teil der Mannschaft ist,\nsoll die Ausnahme ",(0,a.jsx)(n.code,{children:"DuplicateKeyException"})," ausgel\xf6st werden"]}),"\n",(0,a.jsxs)(n.li,{children:["Die Methode ",(0,a.jsx)(n.code,{children:"Optional getBestScorer()"})," soll den Sportler mit den meisten\nScorer-Punkten als Optional zur\xfcckgeben"]}),"\n",(0,a.jsxs)(n.li,{children:["Die Methode ",(0,a.jsx)(n.code,{children:"List getAllTeamMembersByPosition(position: Position)"})," soll\nalle Sportler zur eingehenden Position als Liste zur\xfcckgeben"]}),"\n"]})]})}function d(e={}){let{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},50065:function(e,n,s){s.d(n,{Z:function(){return l},a:function(){return t}});var i=s(67294);let a={},r=i.createContext(a);function t(e){let n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:t(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1c3beb9b.42a72792.js b/pr-preview/pr-238/assets/js/1c3beb9b.42a72792.js new file mode 100644 index 0000000000..0569234b16 --- /dev/null +++ b/pr-preview/pr-238/assets/js/1c3beb9b.42a72792.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["9308"],{42959:function(e,n,t){t.r(n),t.d(n,{metadata:()=>a,contentTitle:()=>o,default:()=>h,assets:()=>c,toc:()=>u,frontMatter:()=>l});var a=JSON.parse('{"id":"exercises/abstract-and-final/abstract-and-final01","title":"AbstractAndFinal01","description":"","source":"@site/docs/exercises/abstract-and-final/abstract-and-final01.mdx","sourceDirName":"exercises/abstract-and-final","slug":"/exercises/abstract-and-final/abstract-and-final01","permalink":"/java-docs/pr-preview/pr-238/exercises/abstract-and-final/abstract-and-final01","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/abstract-and-final/abstract-and-final01.mdx","tags":[],"version":"current","frontMatter":{"title":"AbstractAndFinal01","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Abstrakte und finale Klassen und Methoden","permalink":"/java-docs/pr-preview/pr-238/exercises/abstract-and-final/"},"next":{"title":"Schnittstellen (Interfaces)","permalink":"/java-docs/pr-preview/pr-238/exercises/interfaces/"}}'),r=t("85893"),i=t("50065"),s=t("39661");let l={title:"AbstractAndFinal01",description:""},o=void 0,c={},u=[{value:"Klassendiagramm",id:"klassendiagramm",level:2}];function d(e){let n={a:"a",code:"code",h2:"h2",mermaid:"mermaid",p:"p",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["Passe die Klassen ",(0,r.jsx)(n.code,{children:"Vehicle"}),", ",(0,r.jsx)(n.code,{children:"Car"})," und ",(0,r.jsx)(n.code,{children:"Truck"})," aus \xdcbungsaufgabe\n",(0,r.jsx)(n.a,{href:"../polymorphy/polymorphy03",children:"Polymorphism03"})," anhand des abgebildeten\nKlassendiagramms an."]}),"\n",(0,r.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,r.jsx)(n.mermaid,{value:"classDiagram\n Vehicle <|-- Car: extends\n Vehicle <|-- Truck: extends\n Engine --o Vehicle\n Rental o-- Vehicle\n\n class Vehicle {\n <>\n -make: String\n -model: String\n -engine: Engine\n #speedInKmh: double\n -numberOfVehicles: int$\n +Vehicle(make String, model String, engine Engine)\n +getMake() String\n +getModel() String\n +getEngine() Engine\n +getSpeedInKmh() double\n +accelerate(valueInKmh: int) void #123;final#125;\n +brake(valueInKmh: int) void #123;final#125;\n +toString() String #123;abstract#125;\n +getNumberOfVehicles()$ int\n }\n\n class Engine {\n <>\n DIESEL = Diesel\n PETROL = Benzin\n GAS = Gas\n ELECTRO = Elektro\n -description: String #123;final#125;\n Engine(description: String)\n +getDescription() String\n }\n\n class Car {\n <>\n -seats: int #123;final#125;\n +Car(make: String, model: String, engine: Engine, seats: int)\n +getSeats() int\n +doATurboBoost() void\n +toString() String\n }\n\n class Truck {\n <>\n -cargo: int #123;final#125;\n -isTransformed boolean\n +Truck(make: String, model: String, engine: Engine, cargo: int)\n +getCargo() int\n +isTransformed() boolean\n +transform() void\n +toString() String\n }\n\n class Rental {\n -name: String #123;final#125;\n -vehicles: ArrayList~Vehicle~ #123;final#125;\n +Rental(name: String)\n +getName() String\n +getVehicles() ArrayList~Vehicle~\n +addVehicle(vehicle: Vehicle) void\n +addAllVehicles(vehicles: Vehicle...) void\n +transformAllTrucks() void\n +toString() String\n }"}),"\n",(0,r.jsx)(s.Z,{pullRequest:"45",branchSuffix:"abstract-and-final/01"})]})}function h(e={}){let{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},5525:function(e,n,t){t.d(n,{Z:()=>s});var a=t("85893");t("67294");var r=t("67026");let i="tabItem_Ymn6";function s(e){let{children:n,hidden:t,className:s}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,r.Z)(i,s),hidden:t,children:n})}},47902:function(e,n,t){t.d(n,{Z:()=>j});var a=t("85893"),r=t("67294"),i=t("67026"),s=t("69599"),l=t("16550"),o=t("32000"),c=t("4520"),u=t("38341"),d=t("76009");function h(e){return r.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||r.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function f(e){let{value:n,tabValues:t}=e;return t.some(e=>e.value===n)}var p=t("7227");let g="tabList__CuJ",m="tabItem_LNqP";function b(e){let{className:n,block:t,selectedValue:r,selectValue:l,tabValues:o}=e,c=[],{blockElementScrollPositionUntilNextRender:u}=(0,s.o5)(),d=e=>{let n=e.currentTarget,t=o[c.indexOf(n)].value;t!==r&&(u(n),l(t))},h=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{let t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1]}}n?.focus()};return(0,a.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n),children:o.map(e=>{let{value:n,label:t,attributes:s}=e;return(0,a.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>c.push(e),onKeyDown:h,onClick:d,...s,className:(0,i.Z)("tabs__item",m,s?.className,{"tabs__item--active":r===n}),children:t??n},n)})})}function v(e){let{lazy:n,children:t,selectedValue:s}=e,l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){let e=l.find(e=>e.props.value===s);return e?(0,r.cloneElement)(e,{className:(0,i.Z)("margin-top--md",e.props.className)}):null}return(0,a.jsx)("div",{className:"margin-top--md",children:l.map((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==s}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:a}=e,i=function(e){let{values:n,children:t}=e;return(0,r.useMemo)(()=>{let e=n??h(t).map(e=>{let{props:{value:n,label:t,attributes:a,default:r}}=e;return{value:n,label:t,attributes:a,default:r}});return!function(e){let n=(0,u.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,t])}(e),[s,p]=(0,r.useState)(()=>(function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw Error("Docusaurus error: the component requires at least one children component");if(n){if(!f({value:n,tabValues:t}))throw Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let a=t.find(e=>e.default)??t[0];if(!a)throw Error("Unexpected error: 0 tabValues");return a.value})({defaultValue:n,tabValues:i})),[g,m]=function(e){let{queryString:n=!1,groupId:t}=e,a=(0,l.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t}),s=(0,c._X)(i);return[s,(0,r.useCallback)(e=>{if(!i)return;let n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})},[i,a])]}({queryString:t,groupId:a}),[b,v]=function(e){var n;let{groupId:t}=e;let a=(n=t)?`docusaurus.tab.${n}`:null,[i,s]=(0,d.Nk)(a);return[i,(0,r.useCallback)(e=>{if(!!a)s.set(e)},[a,s])]}({groupId:a}),x=(()=>{let e=g??b;return f({value:e,tabValues:i})?e:null})();return(0,o.Z)(()=>{x&&p(x)},[x]),{selectedValue:s,selectValue:(0,r.useCallback)(e=>{if(!f({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);p(e),m(e),v(e)},[m,v,i]),tabValues:i}}(e);return(0,a.jsxs)("div",{className:(0,i.Z)("tabs-container",g),children:[(0,a.jsx)(b,{...n,...e}),(0,a.jsx)(v,{...n,...e})]})}function j(e){let n=(0,p.Z)();return(0,a.jsx)(x,{...e,children:h(e.children)},String(n))}},39661:function(e,n,t){t.d(n,{Z:function(){return o}});var a=t(85893);t(67294);var r=t(47902),i=t(5525),s=t(83012),l=t(45056);function o(e){let{pullRequest:n,branchSuffix:t}=e;return(0,a.jsxs)(r.Z,{children:[(0,a.jsxs)(i.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,a.jsx)(l.Z,{language:"console",children:`git switch exercises/${t}`}),(0,a.jsx)(s.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${t}/Exercise.java`,children:(0,a.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,a.jsxs)(i.Z,{value:"solution",label:"Solution",children:[(0,a.jsx)(l.Z,{language:"console",children:`git switch solutions/${t}`}),(0,a.jsx)(s.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${t}/Exercise.java`,children:(0,a.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,a.jsxs)(i.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,a.jsxs)(s.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${n}/files?diff=split`,children:["PR#",n]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1c7f3330.5b2c034f.js b/pr-preview/pr-238/assets/js/1c7f3330.5b2c034f.js new file mode 100644 index 0000000000..baed48db07 --- /dev/null +++ b/pr-preview/pr-238/assets/js/1c7f3330.5b2c034f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4526"],{1379:function(e,t,a){a.r(t),a.d(t,{metadata:()=>s,contentTitle:()=>d,default:()=>c,assets:()=>m,toc:()=>o,frontMatter:()=>r});var s=JSON.parse('{"id":"exam-exercises/exam-exercises-java1/activity-diagrams/insertion-sort","title":"Insertionsort","description":"","source":"@site/docs/exam-exercises/exam-exercises-java1/activity-diagrams/insertion-sort.md","sourceDirName":"exam-exercises/exam-exercises-java1/activity-diagrams","slug":"/exam-exercises/exam-exercises-java1/activity-diagrams/insertion-sort","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/insertion-sort","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java1/activity-diagrams/insertion-sort.md","tags":[{"inline":true,"label":"activity-diagrams","permalink":"/java-docs/pr-preview/pr-238/tags/activity-diagrams"}],"version":"current","frontMatter":{"title":"Insertionsort","description":"","tags":["activity-diagrams"]},"sidebar":"examExercisesSidebar","previous":{"title":"Rabattrechner","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/discount-calculator"},"next":{"title":"Selectionsort","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/selection-sort"}}'),i=a("85893"),n=a("50065");let r={title:"Insertionsort",description:"",tags:["activity-diagrams"]},d=void 0,m={},o=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Aktivit\xe4tsdiagramm zur Methode void main(args: String[])",id:"aktivit\xe4tsdiagramm-zur-methode-void-mainargs-string",level:2},{value:"Aktivit\xe4tsdiagramm zur Methode void sort()",id:"aktivit\xe4tsdiagramm-zur-methode-void-sort",level:2},{value:"Aktivit\xe4tsdiagramm zur Methode void print()",id:"aktivit\xe4tsdiagramm-zur-methode-void-print",level:2}];function l(e){let t={code:"code",em:"em",h2:"h2",mermaid:"mermaid",p:"p",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["Erstelle die ausf\xfchrbare Klasse ",(0,i.jsx)(t.code,{children:"InsertionSort"})," anhand des abgebildeten\nKlassendiagramms sowie anhand der abgebildeten Aktivit\xe4tsdiagramme."]}),"\n",(0,i.jsx)(t.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,i.jsx)(t.mermaid,{value:"classDiagram\n class InsertionSort {\n -counter: int$\n -data: int[]$\n +main(args: String[]) void$\n -sort() void$\n -print() void$\n }"}),"\n",(0,i.jsxs)(t.h2,{id:"aktivit\xe4tsdiagramm-zur-methode-void-mainargs-string",children:["Aktivit\xe4tsdiagramm zur Methode ",(0,i.jsx)(t.em,{children:"void main(args: String[])"})]}),"\n",(0,i.jsx)(t.mermaid,{value:'stateDiagram-v2\n state "[Feld] mit 1.000 Zufallszahlen zwischen 1 und 100 f\xfcllen" as state1\n state "Ausf\xfchren: [Sortieren]" as state2\n\n state "Insertionsort" as main {\n [*] --\x3e state1\n state1 --\x3e state2\n state2 --\x3e [*]\n }'}),"\n",(0,i.jsxs)(t.h2,{id:"aktivit\xe4tsdiagramm-zur-methode-void-sort",children:["Aktivit\xe4tsdiagramm zur Methode ",(0,i.jsx)(t.em,{children:"void sort()"})]}),"\n",(0,i.jsx)(t.mermaid,{value:'stateDiagram-v2\n state "[Tempor\xe4re Variable] = 0" as state1\n state "[Z\xe4hlvariable A] = 1" as state2\n state "[Z\xe4hler] inkrementieren" as state3\n state "[Z\xe4hlvariable B] = [Z\xe4hlvariable A]" as state4\n state "[Tempor\xe4re Variable] = Element [Z\xe4hlvariable B] von [Feld]" as state5\n state "Element [Z\xe4hlvariable B] von [Feld] = [Tempor\xe4re Variable]" as state6\n state "Ausf\xfchren: [Feld ausgeben]" as state7\n state "[Z\xe4hlvariable A] inkrementieren" as state8\n state "Element [Z\xe4hlvariable B] von [Feld] = Element [Z\xe4hlvariable B - 1] von [Feld]" as state9\n state "[Z\xe4hlvariable B] dekrementieren" as state10\n\n state if1 <>\n state if2 <>\n\n state "Sortieren" as sort {\n [*] --\x3e state1\n state1 --\x3e state2\n state2 --\x3e if1\n if1 --\x3e state3: [Z\xe4hlvariable A] < [L\xe4nge des Feldes]\n if1 --\x3e [*]: sonst\n state3 --\x3e state4\n state4 --\x3e state5\n state5 --\x3e if2\n if2 --\x3e state6: sonst\n if2 --\x3e state9: [Z\xe4hlvariable B] > 0 und Element [Z\xe4hlvariable B - 1] von [Feld] > [Tempor\xe4re Variable]\n state6 --\x3e state7\n state7 --\x3e state8\n state8 --\x3e if1\n state9 --\x3e state10\n state10 --\x3e if2\n }'}),"\n",(0,i.jsxs)(t.h2,{id:"aktivit\xe4tsdiagramm-zur-methode-void-print",children:["Aktivit\xe4tsdiagramm zur Methode ",(0,i.jsx)(t.em,{children:"void print()"})]}),"\n",(0,i.jsx)(t.mermaid,{value:'stateDiagram-v2\n state "Ausgabe: Durchlauf [Z\xe4hler]" as state1\n state "[Z\xe4hlvariable] = 0" as state2\n state "Ausgabe: Element [Z\xe4hlvariable] von [Feld]" as state3\n state "[Z\xe4hlvariable] inkrementieren" as state4\n\n state if1 <>\n\n state "Feld ausgeben" as print {\n [*] --\x3e state1\n state1 --\x3e state2\n state2 --\x3e if1\n if1 --\x3e state3: [Z\xe4hlvariable] < [L\xe4nge des Feldes]\n if1 --\x3e [*]: sonst\n state3 --\x3e state4\n state4 --\x3e if1\n }'})]})}function c(e={}){let{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},50065:function(e,t,a){a.d(t,{Z:function(){return d},a:function(){return r}});var s=a(67294);let i={},n=s.createContext(i);function r(e){let t=s.useContext(n);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1c800214.1d5ba04c.js b/pr-preview/pr-238/assets/js/1c800214.1d5ba04c.js new file mode 100644 index 0000000000..6346674667 --- /dev/null +++ b/pr-preview/pr-238/assets/js/1c800214.1d5ba04c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["9986"],{68210:function(e,n,i){i.r(n),i.d(n,{metadata:()=>l,contentTitle:()=>t,default:()=>u,assets:()=>o,toc:()=>d,frontMatter:()=>a});var l=JSON.parse('{"id":"exercises/javafx/javafx02","title":"JavaFX02","description":"","source":"@site/docs/exercises/javafx/javafx02.md","sourceDirName":"exercises/javafx","slug":"/exercises/javafx/javafx02","permalink":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx02","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/javafx/javafx02.md","tags":[],"version":"current","frontMatter":{"title":"JavaFX02","description":""},"sidebar":"exercisesSidebar","previous":{"title":"JavaFX01","permalink":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx01"},"next":{"title":"JavaFX03","permalink":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx03"}}'),s=i("85893"),r=i("50065");let a={title:"JavaFX02",description:""},t=void 0,o={},d=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Szenegraph",id:"szenegraph",level:2},{value:"Allgemeiner Hinweis",id:"allgemeiner-hinweis",level:2},{value:"Hinweise zur Klasse Dice",id:"hinweise-zur-klasse-dice",level:2},{value:"Hinweise zur Klasse Model",id:"hinweise-zur-klasse-model",level:2},{value:"Hinweise zur Klasse Controller",id:"hinweise-zur-klasse-controller",level:2}];function c(e){let n={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Erstelle eine JavaFX-Anwendung zum W\xfcrfeln anhand des abgebildeten\nKlassendiagramms sowie des abgebildeten Szenegraphs."}),"\n",(0,s.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,s.jsx)(n.mermaid,{value:"classDiagram\n Initializable <|.. Controller : implements\n Controller o-- Model\n Model o-- Dice\n\n class Dice {\n -value: int\n -image: Image\n +Dice()\n +rollTheDice() void\n +getValue() int\n +getImage() Image\n }\n\n class Model {\n -instance: Model$\n -dice: Dice\n -Model()\n +getInstance() Model$\n +rollTheDice() void\n +getDiceValue() int\n +getDiceImage() Image\n }\n\n class Controller {\n -diceImageView: ImageView #123;FXML#125;\n -model: Model\n +initialize(location: URL, resources: ResourceBundle) void\n +rollTheDice(actionEvent: ActionEvent) void #123;FXML#125;\n }\n\n class Initializable {\n <>\n +initialize(location: URL, resources: ResourceBundle) void\n }"}),"\n",(0,s.jsx)(n.h2,{id:"szenegraph",children:"Szenegraph"}),"\n",(0,s.jsx)(n.mermaid,{value:"flowchart LR\n vbox[VBox\\nfx:controller=Pfad.Controller]\n imageview[ImageView\\nfx:id=diceImageView]\n button[Button\\ntext=W\xfcrfeln\\nonAction=#rollTheDice]\n\n vbox --\x3e imageview\n vbox --\x3e button"}),"\n",(0,s.jsx)(n.h2,{id:"allgemeiner-hinweis",children:"Allgemeiner Hinweis"}),"\n",(0,s.jsxs)(n.p,{children:["Der Konstruktor ",(0,s.jsx)(n.code,{children:"Image(url: String)"})," der Klasse ",(0,s.jsx)(n.code,{children:"Image"})," erm\xf6glicht das Erzeugen\neines Grafik-Objektes."]}),"\n",(0,s.jsxs)(n.h2,{id:"hinweise-zur-klasse-dice",children:["Hinweise zur Klasse ",(0,s.jsx)(n.em,{children:"Dice"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Der Konstruktor soll den W\xfcrfel werfen"}),"\n",(0,s.jsxs)(n.li,{children:["Die Methode ",(0,s.jsx)(n.code,{children:"void rollTheDice()"})," soll den W\xfcrfelwert auf einen zuf\xe4lligen Wert\nzwischen 1 und 6 setzen und dem W\xfcrfelbild eine entsprechende Grafik zuweisen"]}),"\n"]}),"\n",(0,s.jsxs)(n.h2,{id:"hinweise-zur-klasse-model",children:["Hinweise zur Klasse ",(0,s.jsx)(n.em,{children:"Model"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Der Konstruktor soll den W\xfcrfel initialisieren"}),"\n",(0,s.jsxs)(n.li,{children:["Die Methode ",(0,s.jsx)(n.code,{children:"void rollTheDice()"})," soll den W\xfcrfel werfen"]}),"\n"]}),"\n",(0,s.jsxs)(n.h2,{id:"hinweise-zur-klasse-controller",children:["Hinweise zur Klasse ",(0,s.jsx)(n.em,{children:"Controller"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Die Methode ",(0,s.jsx)(n.code,{children:"void initialize(location: URL, resources: ResourceBundle)"})," soll\ndas Model initialisieren, den W\xfcrfel werfen und dem W\xfcrfelbilderrahmen ein\nentsprechendes W\xfcrfelbild zuweisen"]}),"\n",(0,s.jsxs)(n.li,{children:["Die Methode ",(0,s.jsx)(n.code,{children:"void rollTheDice(actionEvent: ActionEvent)"})," soll den W\xfcrfel\nwerfen und dem W\xfcrfelbilderrahmen ein entsprechendes W\xfcrfelbild zuweisen"]}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},50065:function(e,n,i){i.d(n,{Z:function(){return t},a:function(){return a}});var l=i(67294);let s={},r=l.createContext(s);function a(e){let n=l.useContext(r);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),l.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1d6d5ede.da555a79.js b/pr-preview/pr-238/assets/js/1d6d5ede.da555a79.js new file mode 100644 index 0000000000..84ae8f8030 --- /dev/null +++ b/pr-preview/pr-238/assets/js/1d6d5ede.da555a79.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["567"],{6753:function(e,t,r){r.r(t),r.d(t,{metadata:()=>n,contentTitle:()=>c,default:()=>p,assets:()=>l,toc:()=>u,frontMatter:()=>i});var n=JSON.parse('{"id":"exercises/comparators/comparators","title":"Komparatoren","description":"","source":"@site/docs/exercises/comparators/comparators.mdx","sourceDirName":"exercises/comparators","slug":"/exercises/comparators/","permalink":"/java-docs/pr-preview/pr-238/exercises/comparators/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/comparators/comparators.mdx","tags":[{"inline":true,"label":"comparators","permalink":"/java-docs/pr-preview/pr-238/tags/comparators"}],"version":"current","sidebarPosition":150,"frontMatter":{"title":"Komparatoren","description":"","sidebar_position":150,"tags":["comparators"]},"sidebar":"exercisesSidebar","previous":{"title":"Interfaces01","permalink":"/java-docs/pr-preview/pr-238/exercises/interfaces/interfaces01"},"next":{"title":"Comparators01","permalink":"/java-docs/pr-preview/pr-238/exercises/comparators/comparators01"}}'),a=r("85893"),s=r("50065"),o=r("94301");let i={title:"Komparatoren",description:"",sidebar_position:150,tags:["comparators"]},c=void 0,l={},u=[{value:"\xdcbungsaufgaben",id:"\xfcbungsaufgaben",level:2},{value:"\xdcbungsaufgaben von tutego.de",id:"\xfcbungsaufgaben-von-tutegode",level:2}];function d(e){let t={a:"a",h2:"h2",li:"li",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"\xfcbungsaufgaben",children:"\xdcbungsaufgaben"}),"\n","\n",(0,a.jsx)(o.Z,{}),"\n",(0,a.jsx)(t.h2,{id:"\xfcbungsaufgaben-von-tutegode",children:"\xdcbungsaufgaben von tutego.de"}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:["\xdcbungsaufgabe\n",(0,a.jsx)(t.a,{href:"https://tutego.de/javabuch/aufgaben/interface_enum_sealed_classes_record.html#_verbrauch_von_elektroger%C3%A4ten_vergleichen",children:"I-8-1.1.1"})]}),"\n",(0,a.jsxs)(t.li,{children:["\xdcbungsaufgabe\n",(0,a.jsx)(t.a,{href:"https://tutego.de/javabuch/aufgaben/interface_enum_sealed_classes_record.html#_elektroger%C3%A4te_mit_dem_h%C3%B6chsten_verbrauch_finden",children:"I-8-1.1.2"})]}),"\n",(0,a.jsxs)(t.li,{children:["\xdcbungsaufgabe\n",(0,a.jsx)(t.a,{href:"https://tutego.de/javabuch/aufgaben/interface_enum_sealed_classes_record.html#_schnittstelle_comparator_zum_sortieren_einsetzen",children:"I-8-1.1.3"})]}),"\n"]})]})}function p(e={}){let{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},94301:function(e,t,r){r.d(t,{Z:()=>b});var n=r("85893");r("67294");var a=r("67026"),s=r("69369"),o=r("83012"),i=r("43115"),c=r("63150"),l=r("96025"),u=r("34403");let d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function p(e){let{href:t,children:r}=e;return(0,n.jsx)(o.Z,{href:t,className:(0,a.Z)("card padding--lg",d.cardContainer),children:r})}function m(e){let{href:t,icon:r,title:s,description:o}=e;return(0,n.jsxs)(p,{href:t,children:[(0,n.jsxs)(u.Z,{as:"h2",className:(0,a.Z)("text--truncate",d.cardTitle),title:s,children:[r," ",s]}),o&&(0,n.jsx)("p",{className:(0,a.Z)("text--truncate",d.cardDescription),title:o,children:o})]})}function f(e){let{item:t}=e,r=(0,s.LM)(t),a=function(){let{selectMessage:e}=(0,i.c)();return t=>e(t,(0,l.I)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return r?(0,n.jsx)(m,{href:r,icon:"\uD83D\uDDC3\uFE0F",title:t.label,description:t.description??a(t.items.length)}):null}function h(e){let{item:t}=e,r=(0,c.Z)(t.href)?"\uD83D\uDCC4\uFE0F":"\uD83D\uDD17",a=(0,s.xz)(t.docId??void 0);return(0,n.jsx)(m,{href:t.href,icon:r,title:t.label,description:t.description??a?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return(0,n.jsx)(h,{item:t});case"category":return(0,n.jsx)(f,{item:t});default:throw Error(`unknown item type ${JSON.stringify(t)}`)}}function x(e){let{className:t}=e,r=(0,s.jA)();return(0,n.jsx)(b,{items:r.items,className:t})}function b(e){let{items:t,className:r}=e;if(!t)return(0,n.jsx)(x,{...e});let o=(0,s.MN)(t);return(0,n.jsx)("section",{className:(0,a.Z)("row",r),children:o.map((e,t)=>(0,n.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,n.jsx)(g,{item:e})},t))})}},43115:function(e,t,r){r.d(t,{c:function(){return c}});var n=r(67294),a=r(2933);let s=["zero","one","two","few","many","other"];function o(e){return s.filter(t=>e.includes(t))}let i={locale:"en",pluralForms:o(["one","other"]),select:e=>1===e?"one":"other"};function c(){let e=function(){let{i18n:{currentLocale:e}}=(0,a.Z)();return(0,n.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:o(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${t.message} +`),i}},[e])}();return{selectMessage:(t,r)=>(function(e,t,r){let n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);let a=r.select(t);return n[Math.min(r.pluralForms.indexOf(a),n.length-1)]})(r,t,e)}}},50065:function(e,t,r){r.d(t,{Z:function(){return i},a:function(){return o}});var n=r(67294);let a={},s=n.createContext(a);function o(e){let t=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1d87388b.3577ac9a.js b/pr-preview/pr-238/assets/js/1d87388b.3577ac9a.js new file mode 100644 index 0000000000..a8a7c42ff5 --- /dev/null +++ b/pr-preview/pr-238/assets/js/1d87388b.3577ac9a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["9414"],{8629:function(e,n,t){t.r(n),t.d(n,{metadata:()=>i,contentTitle:()=>l,default:()=>u,assets:()=>o,toc:()=>d,frontMatter:()=>r});var i=JSON.parse('{"id":"documentation/activity-diagrams","title":"Aktivit\xe4tsdiagramme","description":"","source":"@site/docs/documentation/activity-diagrams.md","sourceDirName":"documentation","slug":"/documentation/activity-diagrams","permalink":"/java-docs/pr-preview/pr-238/documentation/activity-diagrams","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/activity-diagrams.md","tags":[{"inline":true,"label":"uml","permalink":"/java-docs/pr-preview/pr-238/tags/uml"},{"inline":true,"label":"activity-diagrams","permalink":"/java-docs/pr-preview/pr-238/tags/activity-diagrams"}],"version":"current","sidebarPosition":165,"frontMatter":{"title":"Aktivit\xe4tsdiagramme","description":"","sidebar_position":165,"tags":["uml","activity-diagrams"]},"sidebar":"documentationSidebar","previous":{"title":"Klassendiagramme","permalink":"/java-docs/pr-preview/pr-238/documentation/class-diagrams"},"next":{"title":"Vererbung","permalink":"/java-docs/pr-preview/pr-238/documentation/inheritance"}}'),a=t("85893"),s=t("50065");let r={title:"Aktivit\xe4tsdiagramme",description:"",sidebar_position:165,tags:["uml","activity-diagrams"]},l=void 0,o={},d=[];function c(e){let n={li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"Aktivit\xe4tsdiagramme sind ein Diagrammtyp der UML und geh\xf6ren dort zum Bereich\nder Verhaltensdiagramme. Der Fokus von Aktivit\xe4tsdiagrammen liegt auf\nimperativen Verarbeitungsaspekten. Eine Aktivit\xe4t stellt einen gerichteten\nGraphen dar, der \xfcber Knoten (Aktionen, Datenknoten und Kontrollknoten) und\nKanten (Kontrollfl\xfcsse und Datenfl\xfcsse) verf\xfcgt:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Aktionen sind elementare Bausteine f\xfcr beliebiges, benutzerdefiniertes\nVerhalten"}),"\n",(0,a.jsxs)(n.li,{children:["Kontrollknoten steuern den Kontroll- und Datenfluss in einer Aktivit\xe4t:","\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Startknoten: legen den Beginn der Aktivit\xe4t fest"}),"\n",(0,a.jsx)(n.li,{children:"Endknoten: legen das Ende der Aktivit\xe4t fest"}),"\n",(0,a.jsx)(n.li,{children:"Ablaufendknoten: legen das Ende eines Ablaufes fest"}),"\n",(0,a.jsx)(n.li,{children:"Verzweigungsknoten: erm\xf6glichen die Verzweigung von Abl\xe4ufen"}),"\n",(0,a.jsx)(n.li,{children:"Zusammenf\xfchrungsknoten: erm\xf6glichen die Zusammenf\xfchrung von Abl\xe4ufen"}),"\n"]}),"\n"]}),"\n",(0,a.jsx)(n.li,{children:"Datenknoten sind Hilfsknoten, die als ein- oder ausgehende Parameter einer\nAktion verwendet werden k\xf6nnen"}),"\n",(0,a.jsx)(n.li,{children:"Kontroll- und Datenfl\xfcsse legen Abl\xe4ufe zwischen Vorg\xe4nger- und\nNachfolger-Knoten fest"}),"\n"]}),"\n",(0,a.jsx)(n.mermaid,{value:'stateDiagram-v2\n state "Ausgabe: Zahl 1 eingeben" as state1\n state "Eingabe: [Zahl 1]" as state2\n state "Ausgabe: Zahl 2 eingeben" as state3\n state "Eingabe: [Zahl 2]" as state4\n state "R\xfcckgabe: [Zahl 1] / [Zahl 2]" as state5\n\n state if <>\n\n state "Division zweier Zahlen" as main {\n [*] --\x3e state1\n state1 --\x3e state2\n state2 --\x3e state3\n state3 --\x3e state4\n state4 --\x3e if\n if --\x3e state3: [Zahl 2] = 0\n if --\x3e state5: sonst\n state5 --\x3e [*]\n }'})]})}function u(e={}){let{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},50065:function(e,n,t){t.d(n,{Z:function(){return l},a:function(){return r}});var i=t(67294);let a={},s=i.createContext(a);function r(e){let n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1dd85dc9.62e08ea1.js b/pr-preview/pr-238/assets/js/1dd85dc9.62e08ea1.js new file mode 100644 index 0000000000..fdba8fa5ac --- /dev/null +++ b/pr-preview/pr-238/assets/js/1dd85dc9.62e08ea1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7081"],{96790:function(e,n,r){r.r(n),r.d(n,{metadata:()=>s,contentTitle:()=>o,default:()=>p,assets:()=>u,toc:()=>c,frontMatter:()=>i});var s=JSON.parse('{"id":"exercises/maps/maps01","title":"Maps01","description":"","source":"@site/docs/exercises/maps/maps01.mdx","sourceDirName":"exercises/maps","slug":"/exercises/maps/maps01","permalink":"/java-docs/pr-preview/pr-238/exercises/maps/maps01","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/maps/maps01.mdx","tags":[],"version":"current","frontMatter":{"title":"Maps01","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Assoziativspeicher (Maps)","permalink":"/java-docs/pr-preview/pr-238/exercises/maps/"},"next":{"title":"Maps02","permalink":"/java-docs/pr-preview/pr-238/exercises/maps/maps02"}}'),t=r("85893"),a=r("50065"),l=r("39661");let i={title:"Maps01",description:""},o=void 0,u={},c=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Hinweise zur Klasse TelephoneBook",id:"hinweise-zur-klasse-telephonebook",level:2}];function d(e){let n={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",ul:"ul",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Erstelle die Klassen ",(0,t.jsx)(n.code,{children:"Person"}),", ",(0,t.jsx)(n.code,{children:"TelephoneNumber"})," und ",(0,t.jsx)(n.code,{children:"TelephoneBook"})," anhand\ndes abgebildeten Klassendiagramms"]}),"\n",(0,t.jsx)(n.li,{children:"Erstelle eine ausf\xfchrbare Klasse, welche ein Telefonbuch mit mehreren\nEintr\xe4gen erzeugt und zu eingegebenen Namen die dazugeh\xf6rigen Telefonnummern\nauf der Konsole ausgibt"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,t.jsx)(n.mermaid,{value:"classDiagram\n TelephoneBook o-- Person\n TelephoneBook o-- TelephoneNumber\n\n class Person {\n <>\n name: String\n }\n\n class TelephoneNumber {\n <>\n value: String\n }\n\n class TelephoneBook {\n <>\n entries: Map~Person, TelephoneNumber~\n +addEntry(person: Person, telephoneNumber: TelephoneNumber) void\n +getTelephoneNumberByName(name: String) TelephoneNumber\n }"}),"\n",(0,t.jsxs)(n.h2,{id:"hinweise-zur-klasse-telephonebook",children:["Hinweise zur Klasse ",(0,t.jsx)(n.em,{children:"TelephoneBook"})]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Die Methode ",(0,t.jsx)(n.code,{children:"void addEntry(person: Person, telephoneNumber: TelephoneNumber)"}),"\nsoll einen Eintrag im Telefonbuch anlegen"]}),"\n",(0,t.jsxs)(n.li,{children:["Die Methode ",(0,t.jsx)(n.code,{children:"TelephoneNumber getTelephoneNumberByName(name: String)"})," soll die\nTelefonnummer zum eingehenden Namen zur\xfcckgeben"]}),"\n"]}),"\n",(0,t.jsx)(l.Z,{pullRequest:"59",branchSuffix:"maps/01"})]})}function p(e={}){let{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},5525:function(e,n,r){r.d(n,{Z:()=>l});var s=r("85893");r("67294");var t=r("67026");let a="tabItem_Ymn6";function l(e){let{children:n,hidden:r,className:l}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,t.Z)(a,l),hidden:r,children:n})}},47902:function(e,n,r){r.d(n,{Z:()=>j});var s=r("85893"),t=r("67294"),a=r("67026"),l=r("69599"),i=r("16550"),o=r("32000"),u=r("4520"),c=r("38341"),d=r("76009");function p(e){return t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||t.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:n,tabValues:r}=e;return r.some(e=>e.value===n)}var m=r("7227");let f="tabList__CuJ",b="tabItem_LNqP";function v(e){let{className:n,block:r,selectedValue:t,selectValue:i,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),d=e=>{let n=e.currentTarget,r=o[u.indexOf(n)].value;r!==t&&(c(n),i(r))},p=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let r=u.indexOf(e.currentTarget)+1;n=u[r]??u[0];break}case"ArrowLeft":{let r=u.indexOf(e.currentTarget)-1;n=u[r]??u[u.length-1]}}n?.focus()};return(0,s.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":r},n),children:o.map(e=>{let{value:n,label:r,attributes:l}=e;return(0,s.jsx)("li",{role:"tab",tabIndex:t===n?0:-1,"aria-selected":t===n,ref:e=>u.push(e),onKeyDown:p,onClick:d,...l,className:(0,a.Z)("tabs__item",b,l?.className,{"tabs__item--active":t===n}),children:r??n},n)})})}function g(e){let{lazy:n,children:r,selectedValue:l}=e,i=(Array.isArray(r)?r:[r]).filter(Boolean);if(n){let e=i.find(e=>e.props.value===l);return e?(0,t.cloneElement)(e,{className:(0,a.Z)("margin-top--md",e.props.className)}):null}return(0,s.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==l}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:r=!1,groupId:s}=e,a=function(e){let{values:n,children:r}=e;return(0,t.useMemo)(()=>{let e=n??p(r).map(e=>{let{props:{value:n,label:r,attributes:s,default:t}}=e;return{value:n,label:r,attributes:s,default:t}});return!function(e){let n=(0,c.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,r])}(e),[l,m]=(0,t.useState)(()=>(function(e){let{defaultValue:n,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(n){if(!h({value:n,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let s=r.find(e=>e.default)??r[0];if(!s)throw Error("Unexpected error: 0 tabValues");return s.value})({defaultValue:n,tabValues:a})),[f,b]=function(e){let{queryString:n=!1,groupId:r}=e,s=(0,i.k6)(),a=function(e){let{queryString:n=!1,groupId:r}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:n,groupId:r}),l=(0,u._X)(a);return[l,(0,t.useCallback)(e=>{if(!a)return;let n=new URLSearchParams(s.location.search);n.set(a,e),s.replace({...s.location,search:n.toString()})},[a,s])]}({queryString:r,groupId:s}),[v,g]=function(e){var n;let{groupId:r}=e;let s=(n=r)?`docusaurus.tab.${n}`:null,[a,l]=(0,d.Nk)(s);return[a,(0,t.useCallback)(e=>{if(!!s)l.set(e)},[s,l])]}({groupId:s}),x=(()=>{let e=f??v;return h({value:e,tabValues:a})?e:null})();return(0,o.Z)(()=>{x&&m(x)},[x]),{selectedValue:l,selectValue:(0,t.useCallback)(e=>{if(!h({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);m(e),b(e),g(e)},[b,g,a]),tabValues:a}}(e);return(0,s.jsxs)("div",{className:(0,a.Z)("tabs-container",f),children:[(0,s.jsx)(v,{...n,...e}),(0,s.jsx)(g,{...n,...e})]})}function j(e){let n=(0,m.Z)();return(0,s.jsx)(x,{...e,children:p(e.children)},String(n))}},39661:function(e,n,r){r.d(n,{Z:function(){return o}});var s=r(85893);r(67294);var t=r(47902),a=r(5525),l=r(83012),i=r(45056);function o(e){let{pullRequest:n,branchSuffix:r}=e;return(0,s.jsxs)(t.Z,{children:[(0,s.jsxs)(a.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,s.jsx)(i.Z,{language:"console",children:`git switch exercises/${r}`}),(0,s.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${r}/Exercise.java`,children:(0,s.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,s.jsxs)(a.Z,{value:"solution",label:"Solution",children:[(0,s.jsx)(i.Z,{language:"console",children:`git switch solutions/${r}`}),(0,s.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${r}/Exercise.java`,children:(0,s.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,s.jsxs)(a.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,s.jsxs)(l.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${n}/files?diff=split`,children:["PR#",n]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1e2dcb22.c5179651.js b/pr-preview/pr-238/assets/js/1e2dcb22.c5179651.js new file mode 100644 index 0000000000..8e7ed7ad1a --- /dev/null +++ b/pr-preview/pr-238/assets/js/1e2dcb22.c5179651.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2546"],{64798:function(r,d,n){n.r(d),n.d(d,{metadata:()=>e,contentTitle:()=>h,default:()=>a,assets:()=>x,toc:()=>j,frontMatter:()=>c});var e=JSON.parse('{"id":"exercises/algorithms/algorithms02","title":"Algorithms02","description":"","source":"@site/docs/exercises/algorithms/algorithms02.mdx","sourceDirName":"exercises/algorithms","slug":"/exercises/algorithms/algorithms02","permalink":"/java-docs/pr-preview/pr-238/exercises/algorithms/algorithms02","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/algorithms/algorithms02.mdx","tags":[],"version":"current","frontMatter":{"title":"Algorithms02","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Algorithms01","permalink":"/java-docs/pr-preview/pr-238/exercises/algorithms/algorithms01"},"next":{"title":"JavaFX","permalink":"/java-docs/pr-preview/pr-238/exercises/javafx/"}}'),s=n("85893"),t=n("50065"),l=n("47902"),i=n("5525");let c={title:"Algorithms02",description:""},h=void 0,x={},j=[];function o(r){let d={code:"code",em:"em",mermaid:"mermaid",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.a)(),...r.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(d.p,{children:["Sortiere die Zahlenfolge ",(0,s.jsx)(d.code,{children:"46, 2, 46', 87, 13, 14, 62, 17, 80"})," unter Verwendung\ndes Bubblesort, des Insertionsort, des Selectionsort, des Quicksort, des\nMergesort und des Heapsorts."]}),"\n",(0,s.jsxs)(l.Z,{children:[(0,s.jsx)(i.Z,{value:"a",label:"-",default:!0}),(0,s.jsx)(i.Z,{value:"b",label:"Bubblesort",children:(0,s.jsxs)(d.table,{children:[(0,s.jsx)(d.thead,{children:(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.th,{children:"Index"}),(0,s.jsx)(d.th,{children:"0"}),(0,s.jsx)(d.th,{children:"1"}),(0,s.jsx)(d.th,{children:"2"}),(0,s.jsx)(d.th,{children:"3"}),(0,s.jsx)(d.th,{children:"4"}),(0,s.jsx)(d.th,{children:"5"}),(0,s.jsx)(d.th,{children:"6"}),(0,s.jsx)(d.th,{children:"7"}),(0,s.jsx)(d.th,{children:"8"}),(0,s.jsx)(d.th,{children:"9"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"0"}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"1"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"3"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"4"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"5"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"6"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"7"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"80"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"80"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"80"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"80"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"80"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"80"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"80"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"80"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"8"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})})]})]})]})}),(0,s.jsx)(i.Z,{value:"c",label:"Insertionsort",children:(0,s.jsxs)(d.table,{children:[(0,s.jsx)(d.thead,{children:(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.th,{children:"Index"}),(0,s.jsx)(d.th,{children:"0"}),(0,s.jsx)(d.th,{children:"1"}),(0,s.jsx)(d.th,{children:"2"}),(0,s.jsx)(d.th,{children:"3"}),(0,s.jsx)(d.th,{children:"4"}),(0,s.jsx)(d.th,{children:"5"}),(0,s.jsx)(d.th,{children:"6"}),(0,s.jsx)(d.th,{children:"7"}),(0,s.jsx)(d.th,{children:"8"}),(0,s.jsx)(d.th,{children:"9"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"0"}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"1"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"3"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"4"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"5"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"6"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"7"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"80"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"8"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})})]})]})]})}),(0,s.jsx)(i.Z,{value:"d",label:"Selectionsort",children:(0,s.jsxs)(d.table,{children:[(0,s.jsx)(d.thead,{children:(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.th,{children:"Index"}),(0,s.jsx)(d.th,{children:"0"}),(0,s.jsx)(d.th,{children:"1"}),(0,s.jsx)(d.th,{children:"2"}),(0,s.jsx)(d.th,{children:"3"}),(0,s.jsx)(d.th,{children:"4"}),(0,s.jsx)(d.th,{children:"5"}),(0,s.jsx)(d.th,{children:"6"}),(0,s.jsx)(d.th,{children:"7"}),(0,s.jsx)(d.th,{children:"8"}),(0,s.jsx)(d.th,{children:"9"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"0"}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"1"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"3"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"4"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"5"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"6"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"7"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"80"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"80"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"8"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})})]})]})]})}),(0,s.jsxs)(i.Z,{value:"e",label:"Quicksort",children:[(0,s.jsxs)(d.table,{children:[(0,s.jsx)(d.thead,{children:(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.th,{children:"Index"}),(0,s.jsx)(d.th,{children:"0"}),(0,s.jsx)(d.th,{children:"1"}),(0,s.jsx)(d.th,{children:"2"}),(0,s.jsx)(d.th,{children:"3"}),(0,s.jsx)(d.th,{children:"4"}),(0,s.jsx)(d.th,{children:"5"}),(0,s.jsx)(d.th,{children:"6"}),(0,s.jsx)(d.th,{children:"7"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"0"}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:"[13]"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"2"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"1"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"13"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.em,{children:"46'"})}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"14"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"3"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.em,{children:"87"})}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:"[17]"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"17"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"4"}),(0,s.jsx)(d.td,{children:"[13]"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.em,{children:"46"})}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46'"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"5"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.em,{children:"14"})}),(0,s.jsx)(d.td,{children:"[14]"}),(0,s.jsx)(d.td,{children:"[46']"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.em,{children:"46"})}),(0,s.jsx)(d.td,{children:"46"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"46"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"6"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.em,{children:"62"})}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.em,{children:"62"})}),(0,s.jsx)(d.td,{children:"[62]"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"62"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"7"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.em,{children:"17"})}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.em,{children:"87"})}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.em,{children:"87"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"80"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"8"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.em,{children:"80"})}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.em,{children:"80"})}),(0,s.jsx)(d.td,{children:"80"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.em,{children:"80"})}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.strong,{children:"87"})})]})]})]}),(0,s.jsxs)(d.table,{children:[(0,s.jsx)(d.thead,{children:(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.th,{children:"Durchlauf"}),(0,s.jsx)(d.th,{children:"l"}),(0,s.jsx)(d.th,{children:"r"}),(0,s.jsx)(d.th,{children:"m"}),(0,s.jsx)(d.th,{children:"d[m]"}),(0,s.jsx)(d.th,{children:"i"}),(0,s.jsx)(d.th,{children:"j"}),(0,s.jsx)(d.th,{children:"l-j"}),(0,s.jsx)(d.th,{children:"i-r"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"1"}),(0,s.jsx)(d.td,{children:"0"}),(0,s.jsx)(d.td,{children:"8"}),(0,s.jsx)(d.td,{children:"4"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"1"}),(0,s.jsx)(d.td,{children:"0-1"}),(0,s.jsx)(d.td,{children:"2-8"})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"0"}),(0,s.jsx)(d.td,{children:"1"}),(0,s.jsx)(d.td,{children:"0"}),(0,s.jsx)(d.td,{children:"13"}),(0,s.jsx)(d.td,{children:"1"}),(0,s.jsx)(d.td,{children:"0"}),(0,s.jsx)(d.td,{children:"0-0"}),(0,s.jsx)(d.td,{children:"1-1"})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"3"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"8"}),(0,s.jsx)(d.td,{children:"5"}),(0,s.jsx)(d.td,{children:"14"}),(0,s.jsx)(d.td,{children:"3"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"2-2"}),(0,s.jsx)(d.td,{children:"3-8"})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"4"}),(0,s.jsx)(d.td,{children:"3"}),(0,s.jsx)(d.td,{children:"8"}),(0,s.jsx)(d.td,{children:"5"}),(0,s.jsx)(d.td,{children:"46'"}),(0,s.jsx)(d.td,{children:"5"}),(0,s.jsx)(d.td,{children:"4"}),(0,s.jsx)(d.td,{children:"3-4"}),(0,s.jsx)(d.td,{children:"5-8"})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"5"}),(0,s.jsx)(d.td,{children:"3"}),(0,s.jsx)(d.td,{children:"4"}),(0,s.jsx)(d.td,{children:"3"}),(0,s.jsx)(d.td,{children:"17"}),(0,s.jsx)(d.td,{children:"4"}),(0,s.jsx)(d.td,{children:"2"}),(0,s.jsx)(d.td,{children:"3-2"}),(0,s.jsx)(d.td,{children:"4-4"})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"6"}),(0,s.jsx)(d.td,{children:"5"}),(0,s.jsx)(d.td,{children:"8"}),(0,s.jsx)(d.td,{children:"6"}),(0,s.jsx)(d.td,{children:"62"}),(0,s.jsx)(d.td,{children:"7"}),(0,s.jsx)(d.td,{children:"5"}),(0,s.jsx)(d.td,{children:"5-5"}),(0,s.jsx)(d.td,{children:"7-8"})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:"7"}),(0,s.jsx)(d.td,{children:"7"}),(0,s.jsx)(d.td,{children:"8"}),(0,s.jsx)(d.td,{children:"7"}),(0,s.jsx)(d.td,{children:"87"}),(0,s.jsx)(d.td,{children:"8"}),(0,s.jsx)(d.td,{children:"7"}),(0,s.jsx)(d.td,{children:"7-7"}),(0,s.jsx)(d.td,{children:"8-8"})]})]})]})]}),(0,s.jsx)(i.Z,{value:"f",label:"Mergesort",children:(0,s.jsx)(d.mermaid,{value:"flowchart\n split0 --\x3e split1\n split0 --\x3e split2\n split1 --\x3e split11\n split1 --\x3e split12\n split11 --\x3e split111\n split11 --\x3e split112\n split2 --\x3e split21\n split2 --\x3e split22\n\n split111 --\x3e merge1\n split112 --\x3e merge12\n merge1 --\x3e merge2\n merge12 --\x3e merge2\n merge2 --\x3e merge3\n split12 --\x3e merge0\n merge0 --\x3e merge3\n split21 --\x3e merge4\n split22 --\x3e merge5\n merge4 --\x3e merge6\n merge5 --\x3e merge6\n merge3 --\x3e merge7\n merge6 --\x3e merge7\n\n subgraph split\n split0(46, 2, 46', 87, 13, 14, 62, 17, 80)\n split1(46, 2, 46', 87, 13)\n split2(14, 62, 17, 80)\n split11(46, 2, 46')\n split111(46, 2)\n split112(46')\n split12(87, 13)\n split21(14, 62)\n split22(17, 80)\n end\n\n subgraph merge\n merge1(2, 46)\n merge12(46')\n merge2(2, 46, 46')\n merge0(13, 87)\n merge3(2, 13, 46, 46', 87)\n merge4(14, 62)\n merge5(17, 80)\n merge6(14, 17, 62, 80)\n merge7(2, 13, 14, 17, 46, 46', 62, 80, 87)\n end"})}),(0,s.jsxs)(i.Z,{value:"g",label:"Heapsort",children:[(0,s.jsx)(d.mermaid,{value:"flowchart TD\n 1(87)\n 2(80)\n 3(62)\n 4(46)\n 5(13)\n 6(14)\n 7(46')\n 8(17)\n 9(2)\n\n subgraph \"Build-Max-Heap\"\n array(2, 17, 46', 14, 13, 46, 62, 80, 87)\n 1 --\x3e 2\n 1 --\x3e 3\n 2 --\x3e 4\n 2 --\x3e 5\n 3 --\x3e 6\n 3 --\x3e 7\n 4 --\x3e 8\n 4 --\x3e 9\n end"}),(0,s.jsx)(d.mermaid,{value:"flowchart TD\n 1(80)\n 2(46)\n 3(62)\n 4(17)\n 5(13)\n 6(14)\n 7(46')\n 8(2)\n\n subgraph \"Heapify 1\"\n array(2, 46', 14, 13, 17, 62, 46, 80, 87)\n 1 --\x3e 2\n 1 --\x3e 3\n 2 --\x3e 4\n 2 --\x3e 5\n 3 --\x3e 6\n 3 --\x3e 7\n 4 --\x3e 8\n end"}),(0,s.jsx)(d.mermaid,{value:"flowchart TD\n 1(62)\n 2(46)\n 3(46')\n 4(17)\n 5(13)\n 6(14)\n 7(2)\n\n subgraph \"Heapify 2\"\n array(2, 14, 13, 17, 46', 46, 62, 80, 87)\n 1 --\x3e 2\n 1 --\x3e 3\n 2 --\x3e 4\n 2 --\x3e 5\n 3 --\x3e 6\n 3 --\x3e 7\n end"}),(0,s.jsx)(d.mermaid,{value:"flowchart TD\n 1(46)\n 2(17)\n 3(46')\n 4(2)\n 5(13)\n 6(14)\n\n subgraph \"Heapify 3\"\n array(14, 13, 2, 46', 17, 46, 62, 80, 87)\n 1 --\x3e 2\n 1 --\x3e 3\n 2 --\x3e 4\n 2 --\x3e 5\n 3 --\x3e 6\n end"}),(0,s.jsx)(d.mermaid,{value:"flowchart TD\n 1(46')\n 2(17)\n 3(14)\n 4(2)\n 5(13)\n\n subgraph \"Heapify 4\"\n array(13, 2, 14, 17, 46', 46, 62, 80, 87)\n 1 --\x3e 2\n 1 --\x3e 3\n 2 --\x3e 4\n 2 --\x3e 5\n end"}),(0,s.jsx)(d.mermaid,{value:'flowchart TD\n 1(17)\n 2(13)\n 3(14)\n 4(2)\n\n subgraph "Heapify 5"\n array(2, 14, 13, 17, 46\', 46, 62, 80, 87)\n 1 --\x3e 2\n 1 --\x3e 3\n 2 --\x3e 4\n end'}),(0,s.jsx)(d.mermaid,{value:'flowchart TD\n 1(14)\n 2(13)\n 3(2)\n\n subgraph "Heapify 6"\n array(2, 13, 14, 17, 46\', 46, 62, 80, 87)\n 1 --\x3e 2\n 1 --\x3e 3\n end'}),(0,s.jsx)(d.mermaid,{value:'flowchart TD\n 1(13)\n 2(2)\n\n subgraph "Heapify 7"\n array(2, 13, 14, 17, 46\', 46, 62, 80, 87)\n 1 --\x3e 2\n end'})]})]})]})}function a(r={}){let{wrapper:d}={...(0,t.a)(),...r.components};return d?(0,s.jsx)(d,{...r,children:(0,s.jsx)(o,{...r})}):o(r)}},5525:function(r,d,n){n.d(d,{Z:()=>l});var e=n("85893");n("67294");var s=n("67026");let t="tabItem_Ymn6";function l(r){let{children:d,hidden:n,className:l}=r;return(0,e.jsx)("div",{role:"tabpanel",className:(0,s.Z)(t,l),hidden:n,children:d})}},47902:function(r,d,n){n.d(d,{Z:()=>v});var e=n("85893"),s=n("67294"),t=n("67026"),l=n("69599"),i=n("16550"),c=n("32000"),h=n("4520"),x=n("38341"),j=n("76009");function o(r){return s.Children.toArray(r).filter(r=>"\n"!==r).map(r=>{if(!r||s.isValidElement(r)&&function(r){let{props:d}=r;return!!d&&"object"==typeof d&&"value"in d}(r))return r;throw Error(`Docusaurus error: Bad child <${"string"==typeof r.type?r.type:r.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function a(r){let{value:d,tabValues:n}=r;return n.some(r=>r.value===d)}var g=n("7227");let u="tabList__CuJ",m="tabItem_LNqP";function p(r){let{className:d,block:n,selectedValue:s,selectValue:i,tabValues:c}=r,h=[],{blockElementScrollPositionUntilNextRender:x}=(0,l.o5)(),j=r=>{let d=r.currentTarget,n=c[h.indexOf(d)].value;n!==s&&(x(d),i(n))},o=r=>{let d=null;switch(r.key){case"Enter":j(r);break;case"ArrowRight":{let n=h.indexOf(r.currentTarget)+1;d=h[n]??h[0];break}case"ArrowLeft":{let n=h.indexOf(r.currentTarget)-1;d=h[n]??h[h.length-1]}}d?.focus()};return(0,e.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,t.Z)("tabs",{"tabs--block":n},d),children:c.map(r=>{let{value:d,label:n,attributes:l}=r;return(0,e.jsx)("li",{role:"tab",tabIndex:s===d?0:-1,"aria-selected":s===d,ref:r=>h.push(r),onKeyDown:o,onClick:j,...l,className:(0,t.Z)("tabs__item",m,l?.className,{"tabs__item--active":s===d}),children:n??d},d)})})}function f(r){let{lazy:d,children:n,selectedValue:l}=r,i=(Array.isArray(n)?n:[n]).filter(Boolean);if(d){let r=i.find(r=>r.props.value===l);return r?(0,s.cloneElement)(r,{className:(0,t.Z)("margin-top--md",r.props.className)}):null}return(0,e.jsx)("div",{className:"margin-top--md",children:i.map((r,d)=>(0,s.cloneElement)(r,{key:d,hidden:r.props.value!==l}))})}function b(r){let d=function(r){let{defaultValue:d,queryString:n=!1,groupId:e}=r,t=function(r){let{values:d,children:n}=r;return(0,s.useMemo)(()=>{let r=d??o(n).map(r=>{let{props:{value:d,label:n,attributes:e,default:s}}=r;return{value:d,label:n,attributes:e,default:s}});return!function(r){let d=(0,x.lx)(r,(r,d)=>r.value===d.value);if(d.length>0)throw Error(`Docusaurus error: Duplicate values "${d.map(r=>r.value).join(", ")}" found in . Every value needs to be unique.`)}(r),r},[d,n])}(r),[l,g]=(0,s.useState)(()=>(function(r){let{defaultValue:d,tabValues:n}=r;if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(d){if(!a({value:d,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${d}" but none of its children has the corresponding value. Available values are: ${n.map(r=>r.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return d}let e=n.find(r=>r.default)??n[0];if(!e)throw Error("Unexpected error: 0 tabValues");return e.value})({defaultValue:d,tabValues:t})),[u,m]=function(r){let{queryString:d=!1,groupId:n}=r,e=(0,i.k6)(),t=function(r){let{queryString:d=!1,groupId:n}=r;if("string"==typeof d)return d;if(!1===d)return null;if(!0===d&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:d,groupId:n}),l=(0,h._X)(t);return[l,(0,s.useCallback)(r=>{if(!t)return;let d=new URLSearchParams(e.location.search);d.set(t,r),e.replace({...e.location,search:d.toString()})},[t,e])]}({queryString:n,groupId:e}),[p,f]=function(r){var d;let{groupId:n}=r;let e=(d=n)?`docusaurus.tab.${d}`:null,[t,l]=(0,j.Nk)(e);return[t,(0,s.useCallback)(r=>{if(!!e)l.set(r)},[e,l])]}({groupId:e}),b=(()=>{let r=u??p;return a({value:r,tabValues:t})?r:null})();return(0,c.Z)(()=>{b&&g(b)},[b]),{selectedValue:l,selectValue:(0,s.useCallback)(r=>{if(!a({value:r,tabValues:t}))throw Error(`Can't select invalid tab value=${r}`);g(r),m(r),f(r)},[m,f,t]),tabValues:t}}(r);return(0,e.jsxs)("div",{className:(0,t.Z)("tabs-container",u),children:[(0,e.jsx)(p,{...d,...r}),(0,e.jsx)(f,{...d,...r})]})}function v(r){let d=(0,g.Z)();return(0,e.jsx)(b,{...r,children:o(r.children)},String(d))}},50065:function(r,d,n){n.d(d,{Z:function(){return i},a:function(){return l}});var e=n(67294);let s={},t=e.createContext(s);function l(r){let d=e.useContext(t);return e.useMemo(function(){return"function"==typeof r?r(d):{...d,...r}},[d,r])}function i(r){let d;return d=r.disableParentContext?"function"==typeof r.components?r.components(s):r.components||s:l(r.components),e.createElement(t.Provider,{value:d},r.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/1f391b9e.19b77fa0.js b/pr-preview/pr-238/assets/js/1f391b9e.19b77fa0.js new file mode 100644 index 0000000000..edca80bad1 --- /dev/null +++ b/pr-preview/pr-238/assets/js/1f391b9e.19b77fa0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2493"],{8402:function(e,a,s){s.r(a),s.d(a,{default:()=>g});var l=s("85893");s("67294");var t=s("67026"),c=s("14713"),i=s("84681"),d=s("5836"),n=s("14722"),r=s("1397"),o=s("38813"),m=s("86594");let x="mdxPageWrapper_j9I6";function g(e){let{content:a}=e,{metadata:s,assets:g}=a,{title:j,editUrl:h,description:p,frontMatter:v,lastUpdatedBy:_,lastUpdatedAt:u}=s,{keywords:Z,wrapperClassName:k,hide_table_of_contents:f}=v,w=g.image??v.image,N=!!(h||u||_);return(0,l.jsx)(c.FG,{className:(0,t.Z)(k??i.k.wrapper.mdxPages,i.k.page.mdxPage),children:(0,l.jsxs)(d.Z,{children:[(0,l.jsx)(c.d,{title:j,description:p,keywords:Z,image:w}),(0,l.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,l.jsxs)("div",{className:(0,t.Z)("row",x),children:[(0,l.jsxs)("div",{className:(0,t.Z)("col",!f&&"col--8"),children:[(0,l.jsx)(o.Z,{metadata:s}),(0,l.jsx)("article",{children:(0,l.jsx)(n.Z,{children:(0,l.jsx)(a,{})})}),N&&(0,l.jsx)(m.Z,{className:(0,t.Z)("margin-top--sm",i.k.pages.pageFooterEditMetaRow),editUrl:h,lastUpdatedAt:u,lastUpdatedBy:_})]}),!f&&a.toc.length>0&&(0,l.jsx)("div",{className:"col col--2",children:(0,l.jsx)(r.Z,{toc:a.toc,minHeadingLevel:v.toc_min_heading_level,maxHeadingLevel:v.toc_max_heading_level})})]})})]})})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/203119e9.166de31d.js b/pr-preview/pr-238/assets/js/203119e9.166de31d.js new file mode 100644 index 0000000000..f8db6f217b --- /dev/null +++ b/pr-preview/pr-238/assets/js/203119e9.166de31d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3503"],{95763:function(e,t,n){n.r(t),n.d(t,{metadata:()=>o,contentTitle:()=>l,default:()=>u,assets:()=>d,toc:()=>c,frontMatter:()=>r});var o=JSON.parse('{"id":"exercises/unit-tests/unit-tests04","title":"UnitTests04","description":"","source":"@site/docs/exercises/unit-tests/unit-tests04.md","sourceDirName":"exercises/unit-tests","slug":"/exercises/unit-tests/unit-tests04","permalink":"/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests04","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/unit-tests/unit-tests04.md","tags":[],"version":"current","frontMatter":{"title":"UnitTests04","description":""},"sidebar":"exercisesSidebar","previous":{"title":"UnitTests03","permalink":"/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests03"},"next":{"title":"Datenstr\xf6me (IO-Streams)","permalink":"/java-docs/pr-preview/pr-238/exercises/io-streams/"}}'),i=n("85893"),s=n("50065");let r={title:"UnitTests04",description:""},l=void 0,d={},c=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Hinweise zur Klasse BookCollectionTest",id:"hinweise-zur-klasse-bookcollectiontest",level:2},{value:"Hinweis",id:"hinweis",level:2}];function a(e){let t={a:"a",code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["Erstelle die JUnit5-Testklasse ",(0,i.jsx)(t.code,{children:"BookCollectionTest"})," anhand des abgebildeten\nKlassendiagramms."]}),"\n",(0,i.jsx)(t.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,i.jsx)(t.mermaid,{value:"classDiagram\n BookCollection o-- Author\n BookCollection o-- Book\n BookCollectionTest o-- BookCollection\n\n class Author {\n <>\n name: String\n }\n\n class Book {\n <>\n title: String\n }\n\n class BookCollection {\n <>\n collection: Map~Author‚ List~Book~~\n +addAuthor(author: Author) void\n +addBook(author: Author, book: Book) void\n +getMostDiligentAuthor() Optional~Author~\n +getBookByTitle(title: String) Optional~Book~\n }\n\n class BookCollectionTest {\n <>\n -bookCollection: BookCollection\n -stephenKing: Author\n -georgeRRMartin: Author\n -it: Book\n -aGameOfThrones: Book\n -aClashOfKings: Book\n +setUp void\n +testAddAuthor() void\n +testAddBook() void\n +testGetMostDiligentAuthor1() void\n +testGetMostDiligentAuthor2() void\n +testGetBookByTitle() void\n }"}),"\n",(0,i.jsxs)(t.h2,{id:"hinweise-zur-klasse-bookcollectiontest",children:["Hinweise zur Klasse ",(0,i.jsx)(t.em,{children:"BookCollectionTest"})]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["Die Lebenszyklus-Methode ",(0,i.jsx)(t.code,{children:"void setUp()"})," soll den Attributen der Testklasse\npassende Werte zuweisen"]}),"\n",(0,i.jsxs)(t.li,{children:["Die Testmethode ",(0,i.jsx)(t.code,{children:"void testAddAuthor()"})," soll pr\xfcfen, ob beim Ausf\xfchren der\nMethode ",(0,i.jsx)(t.code,{children:"void addAuthor(author: Author)"})," mit einem Autoren, der bereits in der\nB\xfcchersammlung vorhanden ist, die Ausnahme ",(0,i.jsx)(t.code,{children:"DuplicateKeyException"})," ausgel\xf6st\nwird"]}),"\n",(0,i.jsxs)(t.li,{children:["Die Testmethode ",(0,i.jsx)(t.code,{children:"void testAddBook()"})," soll pr\xfcfen, ob nach dem Ausf\xfchren der\nMethode ",(0,i.jsx)(t.code,{children:"void addBook(author: Author, book: Book)"})," der entsprechende Eintrag\naktualisiert wurde"]}),"\n",(0,i.jsxs)(t.li,{children:["Die Testmethode ",(0,i.jsx)(t.code,{children:"void testGetMostDiligentAuthor1()"})," soll pr\xfcfen, ob beim\nAusf\xfchren der Methode ",(0,i.jsx)(t.code,{children:"Optional getMostDiligentAuthor()"})," auf eine\nbef\xfcllte B\xfcchersammlung der Autor mit den meisten B\xfcchern in der\nB\xfcchersammlung als Optional zur\xfcckgegeben wird"]}),"\n",(0,i.jsxs)(t.li,{children:["Die Testmethode ",(0,i.jsx)(t.code,{children:"void testGetMostDiligentAuthor2()"})," soll pr\xfcfen, ob beim\nAusf\xfchren der Methode ",(0,i.jsx)(t.code,{children:"Optional getMostDiligentAuthor()"})," auf eine\nleere B\xfcchersammlung ein leeres Optional zur\xfcckgegeben wird"]}),"\n",(0,i.jsxs)(t.li,{children:["Die Testmethode ",(0,i.jsx)(t.code,{children:"void testGetBookByTitle()"})," soll pr\xfcfen, ob beim Ausf\xfchren der\nMethode ",(0,i.jsx)(t.code,{children:"Optional getBookByTitle(title: String)"})," mit einem Buchtitel zu\neinem vorhandenen Buch das entsprechende Buch als Optional zur\xfcckgegeben wird\nund ob beim Ausf\xfchren der Methode\n",(0,i.jsx)(t.code,{children:"Optional getBookByTitle(title: String)"})," mit einem Buchtitel zu einem\nnicht vorhandenen Buch ein leeres Optional zur\xfcckgegeben wird"]}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"hinweis",children:"Hinweis"}),"\n",(0,i.jsxs)(t.p,{children:["Verweden die Klasse ",(0,i.jsx)(t.code,{children:"BookCollection"})," aus \xdcbungsaufgabe\n",(0,i.jsx)(t.a,{href:"../optionals/optionals01",children:"Optionals01"}),"."]})]})}function u(e={}){let{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return l},a:function(){return r}});var o=n(67294);let i={},s=o.createContext(i);function r(e){let t=o.useContext(s);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2094d486.7b15d307.js b/pr-preview/pr-238/assets/js/2094d486.7b15d307.js new file mode 100644 index 0000000000..73ac133a84 --- /dev/null +++ b/pr-preview/pr-238/assets/js/2094d486.7b15d307.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3633"],{98582:function(e,n,t){t.d(n,{Z:function(){return l}});var i=t(85893),r=t(67294);function l(e){let{children:n,initSlides:t,width:l=null,height:s=null}=e;return(0,r.useEffect)(()=>{t()}),(0,i.jsx)("div",{className:"reveal reveal-viewport",style:{width:l??"100vw",height:s??"100vh"},children:(0,i.jsx)("div",{className:"slides",children:n})})}},57270:function(e,n,t){t.d(n,{O:function(){return i}});let i=()=>{let e=t(42199),n=t(87251),i=t(60977),r=t(12489);new(t(29197))({plugins:[e,n,i,r]}).initialize({hash:!0})}},41271:function(e,n,t){t.r(n),t.d(n,{default:()=>x});var i,r,l=t("85893"),s=t("83012"),a=t("67294");function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var n=1;n{let{title:n,titleId:t,...l}=e;return a.createElement("svg",c({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"28.101ex",height:"6.509ex","aria-labelledby":t,style:{verticalAlign:"-2.671ex",marginLeft:"-.089ex"},viewBox:"-38.5 -1652.5 12098.8 2802.6"},l),void 0===n?a.createElement("title",{id:t},"{\\displaystyle p:=l+{\\frac {w-A[l]}{A[r]-A[l]}}\\cdot (r-l)}"):n?a.createElement("title",{id:t},n):null,i||(i=a.createElement("defs",{"aria-hidden":"true"},a.createElement("path",{id:"a",strokeWidth:1,d:"M23 287q1 3 2 8t5 22 10 31 15 33 20 30 26 22 33 9q75 0 96-64l10 9q62 55 118 55 65 0 102-47t37-114q0-108-76-199T249-10q-22 0-39 6-11 5-23 15t-19 17l-7 8q-1-1-22-87t-21-87q0-6 8-7t37-3h25q6-7 6-9t-3-18q-3-12-6-15t-13-4h-11q-9 0-34 1t-62 1q-70 0-89-2h-8q-7 7-7 11 2 27 13 35h20q34 1 39 12 3 6 61 239t61 247q1 5 1 14 0 41-25 41-22 0-37-28t-23-61-12-36q-2-2-16-2H29q-6 6-6 9m155-185q22-76 74-76 30 0 58 23t46 58q18 34 36 108t19 110v6q0 74-61 74-11 0-22-3t-22-9-20-13-17-15-15-15-11-14-8-10l-3-4q0-1-3-14t-11-44-14-52q-26-106-26-110"}),a.createElement("path",{id:"b",strokeWidth:1,d:"M78 370q0 24 17 42t43 18q24 0 42-16t19-43q0-25-17-43t-43-18-43 17-18 43m0-310q0 24 17 42t43 18q24 0 42-16t19-43q0-25-17-43T139 0 96 17 78 60"}),a.createElement("path",{id:"c",strokeWidth:1,d:"M56 347q0 13 14 20h637q15-8 15-20 0-11-14-19l-318-1H72q-16 5-16 20m0-194q0 15 16 20h636q14-10 14-20 0-13-15-20H70q-14 7-14 20"}),a.createElement("path",{id:"d",strokeWidth:1,d:"M117 59q0-33 25-33 37 0 63 105 6 20 10 21 2 1 10 1h16q3 0 5-2t2-7q-1-6-3-16t-11-38-20-47-31-37-46-17q-36 0-67 22T38 85q0 12 1 17l65 258q63 255 63 263 0 3-1 5t-4 4-5 2-8 1-8 1-9 1-10 0h-13q-3 0-8 1t-6 3-1 6q0 2 2 14 5 19 11 21t72 6q15 1 34 2t30 3 11 1q12 0 12-8 0-11-73-300T118 83v-8q0-6-1-10z"}),a.createElement("path",{id:"e",strokeWidth:1,d:"M56 237v13l14 20h299v150l1 150q10 13 19 13 13 0 20-15V270h298q15-8 15-20t-15-20H409V-68q-8-14-18-14h-4q-12 0-18 14v298H70q-14 7-14 20Z"}),a.createElement("path",{id:"f",strokeWidth:1,d:"M580 385q0 21 19 39t42 19q18 0 33-18t16-57q0-29-19-115-15-56-27-92t-35-81-55-68-72-23q-44 0-78 16t-49 43q-1-1-3-4-41-55-100-55-26 0-50 6t-47 19-37 39-14 63q0 54 34 146t35 117v14q0 3-4 7t-11 4h-4q-23 0-42-19t-30-41-17-42-8-22-16-2H27q-6 6-6 9 0 6 8 28t23 51 44 52 65 23q43 0 66-25t23-58q0-18-33-108t-33-139q0-46 21-65t53-20q43 0 76 61l5 9v32q0 6 1 8t1 7 1 9 3 13 3 17 6 24 8 32 11 43q29 114 33 123 13 27 43 27 19 0 26-10t8-19q0-13-29-128t-32-132q-2-11-2-35v-7q0-15 3-29t19-29 45-16q71 0 113 122 9 23 20 65t12 60q0 33-13 52t-26 32-13 28"}),a.createElement("path",{id:"g",strokeWidth:1,d:"M84 237v13l14 20h581q15-8 15-20t-15-20H98q-14 7-14 20Z"}),a.createElement("path",{id:"h",strokeWidth:1,d:"M208 74q0-24 46-28 18 0 18-11 0-1-2-13-3-14-6-18t-13-4h-12q-10 0-34 1t-64 1Q70 2 50 0h-8q-7 7-7 11 2 27 13 35h14q70 3 102 50 6 6 181 305t178 303q7 12 24 12h25q6-9 6-10l28-323q28-323 30-326 5-11 65-11 25 0 25-10 0-2-3-14-3-15-5-18t-14-4h-14q-11 0-39 1t-73 1q-94 0-123-2h-12q-6 6-6 9t2 18q4 13 6 16l4 3h20q54 3 64 17l-12 150H283l-34-58q-41-69-41-81m308 186q0 11-12 156t-14 146l-27-43q-16-27-63-107l-90-152 103-1q103 0 103 1"}),a.createElement("path",{id:"i",strokeWidth:1,d:"M118-250V750h137v-40h-97v-920h97v-40z"}),a.createElement("path",{id:"j",strokeWidth:1,d:"M22 710v40h137V-250H22v40h97v920z"}),a.createElement("path",{id:"k",strokeWidth:1,d:"M21 287q1 3 2 8t5 22 10 31 15 33 20 30 26 22 33 9q29 0 51-12t31-22 11-20q2-6 3-6t8 7q48 52 111 52h3q48 0 72-41 8-19 8-37 0-30-13-48t-26-23-25-4q-20 0-32 11t-12 29q0 48 56 64-22 13-36 13-56 0-103-74-10-16-15-33t-34-133Q156 25 151 16q-13-27-43-27-13 0-21 6T76 7t-2 10q0 13 40 172t40 177q0 39-26 39-21 0-36-28t-24-61-11-36q-2-2-16-2H27q-6 6-6 9"}),a.createElement("path",{id:"l",strokeWidth:1,d:"M78 250q0 24 17 42t43 18q24 0 42-16t19-43q0-25-17-43t-43-18-43 17-18 43"}),a.createElement("path",{id:"m",strokeWidth:1,d:"M94 250q0 69 10 131t23 107 37 88 38 67 42 52 33 34 25 21h17q14 0 14-9 0-3-17-21t-41-53-49-86-42-138-17-193 17-192 41-139 49-86 42-53 17-21q0-9-15-9h-16l-28 24q-94 85-137 212T94 250"}),a.createElement("path",{id:"n",strokeWidth:1,d:"m60 749 4 1h22l28-24q94-85 137-212t43-264q0-68-10-131T261 12t-37-88-38-67-41-51-32-33-23-19l-4-4H63q-3 0-5 3t-3 9q1 1 11 13Q221-64 221 250T66 725q-10 12-11 13 0 8 5 11"}))),r||(r=a.createElement("g",{fill:"currentColor",stroke:"currentColor",strokeWidth:0,"aria-hidden":"true",transform:"scale(1 -1)"},a.createElement("use",{xlinkHref:"#a"}),a.createElement("g",{transform:"translate(781)"},a.createElement("use",{xlinkHref:"#b"}),a.createElement("use",{xlinkHref:"#c",x:278})),a.createElement("use",{xlinkHref:"#d",x:2116}),a.createElement("use",{xlinkHref:"#e",x:2636}),a.createElement("path",{stroke:"none",d:"M3757 220h4707v60H3757z"}),a.createElement("g",{transform:"translate(4338 770)"},a.createElement("use",{xlinkHref:"#f"}),a.createElement("use",{xlinkHref:"#g",x:938}),a.createElement("use",{xlinkHref:"#h",x:1939}),a.createElement("use",{xlinkHref:"#i",x:2689}),a.createElement("use",{xlinkHref:"#d",x:2968}),a.createElement("use",{xlinkHref:"#j",x:3266})),a.createElement("g",{transform:"translate(3817 -771)"},a.createElement("use",{xlinkHref:"#h"}),a.createElement("use",{xlinkHref:"#i",x:750}),a.createElement("use",{xlinkHref:"#k",x:1029}),a.createElement("use",{xlinkHref:"#j",x:1480}),a.createElement("use",{xlinkHref:"#g",x:1981}),a.createElement("use",{xlinkHref:"#h",x:2981}),a.createElement("use",{xlinkHref:"#i",x:3732}),a.createElement("use",{xlinkHref:"#d",x:4010}),a.createElement("use",{xlinkHref:"#j",x:4309})),a.createElement("use",{xlinkHref:"#l",x:8807}),a.createElement("use",{xlinkHref:"#m",x:9308}),a.createElement("use",{xlinkHref:"#k",x:9697}),a.createElement("use",{xlinkHref:"#g",x:10371}),a.createElement("use",{xlinkHref:"#d",x:11372}),a.createElement("use",{xlinkHref:"#n",x:11670}))))};var d=t("98582"),m=t("57270");function x(){return(0,l.jsxs)(d.Z,{initSlides:m.O,children:[(0,l.jsxs)("section",{children:[(0,l.jsx)("section",{children:(0,l.jsx)("h2",{children:"Suchalgorithmen"})}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Agenda"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"Intro"}),(0,l.jsx)("li",{className:"fragment",children:"Lineare Suche"}),(0,l.jsx)("li",{className:"fragment",children:"Bin\xe4rsuche"}),(0,l.jsx)("li",{className:"fragment",children:"Interpolationssuche"}),(0,l.jsx)("li",{className:"fragment",children:"Two Chrystal Balls Problem"})]})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("section",{children:(0,l.jsx)("h2",{children:"Intro"})}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Was ist Suchen?"}),(0,l.jsx)("p",{className:"fragment",children:"Auffinden eines bestimmten Elements innerhalb einer Datensammlung"})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Begriffe"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{tabIndex:0,"data-tooltip":"Element das innerhalbe einer Datensammlung gesucht wird, z.B. Wert, Eintrag etc.",children:"Zielelement"}),(0,l.jsx)("li",{tabIndex:0,"data-tooltip":"Datensammlung welche durchsucht wird.",children:"Suchraum"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Anwendungen von Suchalgorithmen"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{tabIndex:0,"data-tooltip":"Google, Bing, etc.",children:"Suchmaschinen"}),(0,l.jsx)("li",{tabIndex:0,"data-tooltip":"PostgreSQL, MongoDb, etc.",children:"Datenbanksysteme"}),(0,l.jsx)("li",{tabIndex:0,"data-tooltip":"Amazon, Zalando, etc.",children:"E-Commerce"}),(0,l.jsx)("li",{tabIndex:0,"data-tooltip":"Bild- und Spracherkennung",children:"Musteranalyse"})]})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("section",{children:(0,l.jsx)("h2",{children:"Lineare Suche"})}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Funktionsweise"}),(0,l.jsx)("p",{children:"Die lineare Suche beginnt an einem Ende des Suchraumes und durchl\xe4uft jedes Element, bis das Zielelement gefunden wird."})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Theoretisches Konzept"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"Jedes Element kann mit dem Suchkriterium \xfcbereinstimmen und wird \xfcberpr\xfcft."}),(0,l.jsx)("li",{"data-tooltip":"oder das Element selbst \u2192 kommt drauf an",tabIndex:0,className:"fragment",children:"Wenn das Zielelement gefunden wurde, wird der Index des Zielelements zur\xfcckgegeben."}),(0,l.jsx)("li",{"data-tooltip":"oder null oder eine Exception \u2192 kommt drauf an",tabIndex:0,className:"fragment",children:"Wenn das Zielelement nicht gefunden wurde, wird -1 zur\xfcckgegeben."})]})]}),(0,l.jsx)("section",{children:(0,l.jsx)("h2",{children:(0,l.jsx)(s.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/dsa/search/LinearSearch.java",children:"Demo - Linear Search"})})}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Performance"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"Zeitkomplexit\xe4t: O(N)"}),(0,l.jsx)("li",{className:"fragment",children:"Speicherkomplexit\xe4t: O(1)"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Zusammenfassung"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"Kann unabh\xe4nging von Sortierung benutzt werden"}),(0,l.jsx)("li",{className:"fragment",children:"Kein weiterer Speicherbedarf"}),(0,l.jsx)("li",{className:"fragment",children:"Geeignet f\xfcr kleine Datenmengen"})]})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("section",{children:(0,l.jsx)("h2",{children:"Bin\xe4re Suche"})}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Funktionsweise"}),(0,l.jsx)("p",{className:"fragment",children:"Die bin\xe4re Suche setzt einen sortierten Suchraum voraus, was die Suche erheblich vereinfacht."}),(0,l.jsx)("p",{className:"fragment","data-tooltip":"Suchraum: { 1, 2, 3, 4, 5, 6 } Zielelement: 6, Element: 4",tabIndex:0,children:"Wird ein Element innerhalb des Suchraumes mit dem Zielelement verglichen, kann abgeleited werden, ob das Zielelement vor oder nach dem Element sein muss."})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Theoretisches Konzept"}),(0,l.jsxs)("ol",{children:[(0,l.jsx)("li",{className:"fragment",children:"Mitte des aktuellen Suchraumes finden"}),(0,l.jsx)("li",{className:"fragment",children:"Wenn Element in der Mitte dem Suchkriterium entspricht \u2192 index zur\xfcckgeben."}),(0,l.jsx)("li",{className:"fragment",children:"Wenn Element in der Mitte gr\xf6\xdfer als Suchkriterium \u2192 in erster H\xe4lfte weitersuchen"}),(0,l.jsx)("li",{className:"fragment",children:"Wenn Element in der Mitte kleiner als Suchkriterium \u2192 in zweiter H\xe4lfte weitersuchen"}),(0,l.jsxs)("li",{className:"fragment",children:["Wenn kein Element im Suchraum gefunden wurde \u2192 -1 zur\xfcckgeben"," "]})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Begriffe - Bin\xe4re Suche"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"high = index oberes Ende des Suchraumes"}),(0,l.jsx)("li",{className:"fragment",children:"low = index unteres Ende des Suchraumes"}),(0,l.jsx)("li",{className:"fragment",children:"middle = index Mitte des Suchraumes"}),(0,l.jsx)("li",{tabIndex:0,className:"fragment","data-tooltip":"Suchraum: { 1, 2, 3, 4, 5} high: 4 low: 0 middle: 2",children:"Beispiel"})]})]}),(0,l.jsx)("section",{children:(0,l.jsx)("h2",{children:(0,l.jsx)(s.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/dsa/search/BinarySearch.java",children:"Demo - Binary Search"})})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("section",{children:(0,l.jsx)("h2",{children:"Interpolations Suche"})}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Funktionsweise"}),(0,l.jsx)("p",{className:"fragment",children:"Die Interpolationsuche setzt einen sortierten Suchraum voraus, was die Suche erheblich vereinfacht."}),(0,l.jsx)("p",{className:"fragment","data-tooltip":"Beispiel Telefonbuch",tabIndex:0,children:"Sind Daten nicht gleich verteilt, kann mit der linearen Interpolation der Suchraum besser eingeschr\xe4nkt werden."})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Theoretisches Konzept"}),(0,l.jsxs)("ol",{children:[(0,l.jsx)("li",{className:"fragment",children:"Bessere Mitte des Suchraumes finden (lineare interpolation)"}),(0,l.jsx)("li",{className:"fragment",children:"Rest wie Bin\xe4re Suche"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Lineare Interpolation"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"Beispiel Interpolation"}),(0,l.jsx)("li",{"data-tooltip":"w = target; A[l] = value at low index; A[r] = value at high index; r = high; l = low; A = searchRoom",tabIndex:0,className:"fragment",children:(0,l.jsx)(h,{})}),(0,l.jsx)("li",{className:"fragment",children:(0,l.jsx)(s.Z,{href:"https://www.youtube.com/watch?v=KYiIGZYrb9M&list=PLLTAHuUj-zHi-ozmbFAl461N1eOUyjrlS",children:"Herleitung (Video)"})})]})]}),(0,l.jsx)("section",{children:(0,l.jsx)("h2",{children:(0,l.jsx)(s.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/dsa/search/BinarySearch.java",children:"Demo - Interpolation Search"})})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("section",{children:(0,l.jsx)("h2",{children:"Vergleich Suchalgorithmen"})}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Lineare Suche vs Bin\xe4re Suche"}),(0,l.jsxs)("table",{children:[(0,l.jsx)("thead",{children:(0,l.jsxs)("tr",{children:[(0,l.jsx)("th",{children:"Linear"}),(0,l.jsx)("th",{children:"Binary"}),(0,l.jsx)("th",{children:"Interpolation"})]})}),(0,l.jsxs)("tbody",{children:[(0,l.jsxs)("tr",{className:"fragment",children:[(0,l.jsx)("td",{children:"Sortierung irrelevant"}),(0,l.jsx)("td",{children:"Sortierung notwendig"}),(0,l.jsx)("td",{children:"Sortierung notwendig"})]}),(0,l.jsxs)("tr",{className:"fragment",children:[(0,l.jsx)("td",{children:"Zeit: O(N)"}),(0,l.jsx)("td",{children:"Zeit: O(log N)"}),(0,l.jsx)("td",{children:"Zeit: O(N)"})]})]})]}),(0,l.jsx)("p",{className:"fragment foot-note",children:" abh\xe4ngig von Anwendungsfall"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Rest of the day"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"Problem und Datensatz"}),(0,l.jsx)("li",{className:"fragment",children:"Search mit eigenem Problem (Optional)"})]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/20f03341.ca128a6e.js b/pr-preview/pr-238/assets/js/20f03341.ca128a6e.js new file mode 100644 index 0000000000..cc463e0a34 --- /dev/null +++ b/pr-preview/pr-238/assets/js/20f03341.ca128a6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["6967"],{33993:function(e,n,a){a.r(n),a.d(n,{metadata:()=>s,contentTitle:()=>l,default:()=>m,assets:()=>c,toc:()=>o,frontMatter:()=>t});var s=JSON.parse('{"id":"exam-exercises/exam-exercises-java2/queries/planets","title":"Planeten","description":"","source":"@site/docs/exam-exercises/exam-exercises-java2/queries/planets.md","sourceDirName":"exam-exercises/exam-exercises-java2/queries","slug":"/exam-exercises/exam-exercises-java2/queries/planets","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/planets","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java2/queries/planets.md","tags":[{"inline":true,"label":"records","permalink":"/java-docs/pr-preview/pr-238/tags/records"},{"inline":true,"label":"maps","permalink":"/java-docs/pr-preview/pr-238/tags/maps"},{"inline":true,"label":"optionals","permalink":"/java-docs/pr-preview/pr-238/tags/optionals"},{"inline":true,"label":"java-stream-api","permalink":"/java-docs/pr-preview/pr-238/tags/java-stream-api"}],"version":"current","frontMatter":{"title":"Planeten","description":"","tags":["records","maps","optionals","java-stream-api"]},"sidebar":"examExercisesSidebar","previous":{"title":"Smartphone-Shop","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/phone-store"},"next":{"title":"Panzer","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/tanks"}}'),r=a("85893"),i=a("50065");let t={title:"Planeten",description:"",tags:["records","maps","optionals","java-stream-api"]},l=void 0,c={},o=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Allgemeine Hinweise",id:"allgemeine-hinweise",level:2}];function d(e){let n={h2:"h2",li:"li",mermaid:"mermaid",ul:"ul",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Setze das abgebildete Klassendiagramm vollst\xe4ndig um"}),"\n",(0,r.jsxs)(n.li,{children:["Erstelle eine ausf\xfchrbare Klasse, welche mit Hilfe der Java Stream API\nfolgende Informationen auf der Konsole ausgibt:","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"alle Planeten mit mehr als 5 Monden"}),"\n",(0,r.jsx)(n.li,{children:"den durchschnittlichen Durchmesser aller Gasplaneten"}),"\n",(0,r.jsx)(n.li,{children:"alle Planeten absteigend sortiert nach der Masse"}),"\n",(0,r.jsx)(n.li,{children:"die Antwort auf die Frage, ob alle Planeten mindestens einen Mond besitzen"}),"\n",(0,r.jsx)(n.li,{children:"alle Planeten gruppiert nach ihrem Typ"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,r.jsx)(n.mermaid,{value:"classDiagram\n Planet o-- Type\n\n class Planet {\n <>\n name: String\n diameterInKm: double\n massInE24Kg: double\n moons: int\n type: Type\n }\n\n class Type {\n <>\n GAS_PLANET\n TERRESTRIAL_PLANET\n DWARF_PLANET\n }"}),"\n",(0,r.jsx)(n.h2,{id:"allgemeine-hinweise",children:"Allgemeine Hinweise"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Aus Gr\xfcnden der \xdcbersicht werden im Klassendiagramm keine Getter und\nObject-Methoden dargestellt"}),"\n",(0,r.jsx)(n.li,{children:"So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die\nObject-Methoden wie gewohnt implementiert werden"}),"\n"]})]})}function m(e={}){let{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},50065:function(e,n,a){a.d(n,{Z:function(){return l},a:function(){return t}});var s=a(67294);let r={},i=s.createContext(r);function t(e){let n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/213160c7.fca2bf0d.js b/pr-preview/pr-238/assets/js/213160c7.fca2bf0d.js new file mode 100644 index 0000000000..109ff852b8 --- /dev/null +++ b/pr-preview/pr-238/assets/js/213160c7.fca2bf0d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7228"],{16725:function(a){a.exports=JSON.parse('{"tag":{"label":"java","permalink":"/java-docs/pr-preview/pr-238/tags/java","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":1,"items":[{"id":"documentation/java","title":"Die Programmiersprache Java","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/java"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/21bd5631.ae688c14.js b/pr-preview/pr-238/assets/js/21bd5631.ae688c14.js new file mode 100644 index 0000000000..a76f85f97b --- /dev/null +++ b/pr-preview/pr-238/assets/js/21bd5631.ae688c14.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["5472"],{82763:function(e,i,n){n.r(i),n.d(i,{metadata:()=>s,contentTitle:()=>l,default:()=>u,assets:()=>d,toc:()=>o,frontMatter:()=>t});var s=JSON.parse('{"id":"exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar","title":"Pl\xe4tzchendose","description":"","source":"@site/docs/exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar.md","sourceDirName":"exam-exercises/exam-exercises-java1/class-diagrams","slug":"/exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar.md","tags":[{"inline":true,"label":"oo","permalink":"/java-docs/pr-preview/pr-238/tags/oo"},{"inline":true,"label":"enumerations","permalink":"/java-docs/pr-preview/pr-238/tags/enumerations"},{"inline":true,"label":"inheritance","permalink":"/java-docs/pr-preview/pr-238/tags/inheritance"},{"inline":true,"label":"polymorphism","permalink":"/java-docs/pr-preview/pr-238/tags/polymorphism"},{"inline":true,"label":"io-streams","permalink":"/java-docs/pr-preview/pr-238/tags/io-streams"}],"version":"current","frontMatter":{"title":"Pl\xe4tzchendose","description":"","tags":["oo","enumerations","inheritance","polymorphism","io-streams"]},"sidebar":"examExercisesSidebar","previous":{"title":"Weihnachtsbaum","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/christmas-tree"},"next":{"title":"Kreatur","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/creature"}}'),r=n("85893"),a=n("50065");let t={title:"Pl\xe4tzchendose",description:"",tags:["oo","enumerations","inheritance","polymorphism","io-streams"]},l=void 0,d={},o=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Allgemeine Hinweise",id:"allgemeine-hinweise",level:2},{value:"Hinweis zur Klasse Cookie",id:"hinweis-zur-klasse-cookie",level:2},{value:"Hinweis zur Klasse StuffedCookie",id:"hinweis-zur-klasse-stuffedcookie",level:2},{value:"Hinweis zur Klasse Recipe",id:"hinweis-zur-klasse-recipe",level:2},{value:"Hinweise zur Klasse CookieJar",id:"hinweise-zur-klasse-cookiejar",level:2},{value:"Hinweis zur Klasse IngredientsReader",id:"hinweis-zur-klasse-ingredientsreader",level:2},{value:"Beispielhafter Aufbau der Zutatendatei",id:"beispielhafter-aufbau-der-zutatendatei",level:2}];function c(e){let i={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.p,{children:"Setze das abgebildete Klassendiagramm vollst\xe4ndig um. Erstelle zum Testen eine\nausf\xfchrbare Klasse."}),"\n",(0,r.jsx)(i.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,r.jsx)(i.mermaid,{value:"classDiagram\n CookieJar o-- Cookie\n Cookie <|-- StuffedCookie : extends\n Cookie o-- Recipe\n StuffedCookie o-- Recipe\n Recipe o-- Ingredient\n\n class CookieJar {\n -cookies: List~Cookie~ #123;final#125;\n +CookieJar()\n +addCookie(cookie: Cookie) void\n +getStuffedCookie() StuffedCookie\n +getCookieByName(name: String) Cookie\n }\n\n class Cookie {\n -name: String #123;final#125;\n -dough: Recipe #123;final#125;\n +Cookie(name: String, dough: Recipe)\n +getIngredients() List~Ingredient~\n }\n\n class StuffedCookie {\n -jam: Recipe #123;final#125;\n +StuffedCookie(name: String, dough: Recipe, jam: Recipe)\n +getIngredients() List~Ingredient~\n }\n\n class Recipe {\n -name: String #123;final#125;\n -ingredients: List~Ingredient~ #123;final#125;\n +Recipe(name: String)\n +addIngredient(ingredient: Ingredient) void\n }\n\n class Ingredient {\n -name: String #123;final#125;\n +Ingredient(name: String)\n }\n\n class IngredientsReader {\n +readIngredients(file: File) List~Ingredient~\n }"}),"\n",(0,r.jsx)(i.h2,{id:"allgemeine-hinweise",children:"Allgemeine Hinweise"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsx)(i.li,{children:"Aus Gr\xfcnden der \xdcbersicht werden im Klassendiagramm keine Getter und\nObject-Methoden dargestellt"}),"\n",(0,r.jsx)(i.li,{children:"So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die\nObject-Methoden wie gewohnt implementiert werden"}),"\n",(0,r.jsx)(i.li,{}),"\n"]}),"\n",(0,r.jsxs)(i.h2,{id:"hinweis-zur-klasse-cookie",children:["Hinweis zur Klasse ",(0,r.jsx)(i.em,{children:"Cookie"})]}),"\n",(0,r.jsxs)(i.p,{children:["Die Methode ",(0,r.jsx)(i.code,{children:"List getIngredients()"})," soll alle Zutaten des Teigs\nzur\xfcckgeben."]}),"\n",(0,r.jsxs)(i.h2,{id:"hinweis-zur-klasse-stuffedcookie",children:["Hinweis zur Klasse ",(0,r.jsx)(i.em,{children:"StuffedCookie"})]}),"\n",(0,r.jsxs)(i.p,{children:["Die Methode ",(0,r.jsx)(i.code,{children:"List getIngredients()"})," soll alle Zutaten des Teigs\nsowie der F\xfcllung zur\xfcckgeben."]}),"\n",(0,r.jsxs)(i.h2,{id:"hinweis-zur-klasse-recipe",children:["Hinweis zur Klasse ",(0,r.jsx)(i.em,{children:"Recipe"})]}),"\n",(0,r.jsxs)(i.p,{children:["Die Methode ",(0,r.jsx)(i.code,{children:"void addIngredient(ingredient: Ingredient)"})," soll dem Rezept die\neingehende Zutat hinzuf\xfcgen."]}),"\n",(0,r.jsxs)(i.h2,{id:"hinweise-zur-klasse-cookiejar",children:["Hinweise zur Klasse ",(0,r.jsx)(i.em,{children:"CookieJar"})]}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:["Die Methode ",(0,r.jsx)(i.code,{children:"void addCookie(cookie: Cookie)"})," soll der Pl\xe4tzchendose das\neingehende Pl\xe4tzchen hinzuf\xfcgen"]}),"\n",(0,r.jsxs)(i.li,{children:["Die Methode ",(0,r.jsx)(i.code,{children:"StuffedCookie getStuffedCookie()"})," soll ein beliebiges gef\xfclltes\nPl\xe4tzchen der Pl\xe4tzchendose zur\xfcckgeben"]}),"\n",(0,r.jsxs)(i.li,{children:["Die Methode ",(0,r.jsx)(i.code,{children:"Cookie getCookieByName(name: String)"})," soll ein Pl\xe4tzchen der\nPl\xe4tzchendose zum eingehenden Namen zur\xfcckgeben"]}),"\n"]}),"\n",(0,r.jsxs)(i.h2,{id:"hinweis-zur-klasse-ingredientsreader",children:["Hinweis zur Klasse ",(0,r.jsx)(i.em,{children:"IngredientsReader"})]}),"\n",(0,r.jsxs)(i.p,{children:["Die Methode ",(0,r.jsx)(i.code,{children:"List readIngredients()"})," soll alle Zutaten der\neingehenden Datei auslesen und zur\xfcckgeben."]}),"\n",(0,r.jsx)(i.h2,{id:"beispielhafter-aufbau-der-zutatendatei",children:"Beispielhafter Aufbau der Zutatendatei"}),"\n",(0,r.jsx)(i.pre,{children:(0,r.jsx)(i.code,{children:"200g Butter\n300g Mehl\n1 Prise Salz\n100g gemahlene Mandeln\n150g Zucker\n1 Pck. Vanillezucker\n2 Eier\n"})})]})}function u(e={}){let{wrapper:i}={...(0,a.a)(),...e.components};return i?(0,r.jsx)(i,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},50065:function(e,i,n){n.d(i,{Z:function(){return l},a:function(){return t}});var s=n(67294);let r={},a=s.createContext(r);function t(e){let i=s.useContext(a);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),s.createElement(a.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/227cf134.240d2c1c.js b/pr-preview/pr-238/assets/js/227cf134.240d2c1c.js new file mode 100644 index 0000000000..1c5d6393eb --- /dev/null +++ b/pr-preview/pr-238/assets/js/227cf134.240d2c1c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3673"],{42900:function(e,t,r){r.r(t),r.d(t,{metadata:()=>s,contentTitle:()=>o,default:()=>p,assets:()=>u,toc:()=>c,frontMatter:()=>l});var s=JSON.parse('{"id":"exercises/cases/cases01","title":"Cases01","description":"","source":"@site/docs/exercises/cases/cases01.mdx","sourceDirName":"exercises/cases","slug":"/exercises/cases/cases01","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/cases01","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/cases/cases01.mdx","tags":[],"version":"current","frontMatter":{"title":"Cases01","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Verzweigungen","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/"},"next":{"title":"Cases02","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/cases02"}}'),a=r("85893"),n=r("50065"),i=r("39661");let l={title:"Cases01",description:""},o=void 0,u={},c=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2}];function d(e){let t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,n.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:"Erstelle eine ausf\xfchrbare Klasse, welche eine Ganzzahl von der Konsole einliest\nund auf der Konsole ausgibt, ob es sich um eine gerade oder ungerade Zahl\nhandelt."}),"\n",(0,a.jsx)(t.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-console",children:"Gib bitte eine ganze Zahl ein: 5\nErgebnis: Die eingegebene Zahl ist ungerade\n"})}),"\n",(0,a.jsx)(i.Z,{pullRequest:"7",branchSuffix:"cases/01"})]})}function p(e={}){let{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},5525:function(e,t,r){r.d(t,{Z:()=>i});var s=r("85893");r("67294");var a=r("67026");let n="tabItem_Ymn6";function i(e){let{children:t,hidden:r,className:i}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,a.Z)(n,i),hidden:r,children:t})}},47902:function(e,t,r){r.d(t,{Z:()=>j});var s=r("85893"),a=r("67294"),n=r("67026"),i=r("69599"),l=r("16550"),o=r("32000"),u=r("4520"),c=r("38341"),d=r("76009");function p(e){return a.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||a.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:t,tabValues:r}=e;return r.some(e=>e.value===t)}var f=r("7227");let b="tabList__CuJ",v="tabItem_LNqP";function m(e){let{className:t,block:r,selectedValue:a,selectValue:l,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.o5)(),d=e=>{let t=e.currentTarget,r=o[u.indexOf(t)].value;r!==a&&(c(t),l(r))},p=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let r=u.indexOf(e.currentTarget)+1;t=u[r]??u[0];break}case"ArrowLeft":{let r=u.indexOf(e.currentTarget)-1;t=u[r]??u[u.length-1]}}t?.focus()};return(0,s.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":r},t),children:o.map(e=>{let{value:t,label:r,attributes:i}=e;return(0,s.jsx)("li",{role:"tab",tabIndex:a===t?0:-1,"aria-selected":a===t,ref:e=>u.push(e),onKeyDown:p,onClick:d,...i,className:(0,n.Z)("tabs__item",v,i?.className,{"tabs__item--active":a===t}),children:r??t},t)})})}function g(e){let{lazy:t,children:r,selectedValue:i}=e,l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){let e=l.find(e=>e.props.value===i);return e?(0,a.cloneElement)(e,{className:(0,n.Z)("margin-top--md",e.props.className)}):null}return(0,s.jsx)("div",{className:"margin-top--md",children:l.map((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==i}))})}function x(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:s}=e,n=function(e){let{values:t,children:r}=e;return(0,a.useMemo)(()=>{let e=t??p(r).map(e=>{let{props:{value:t,label:r,attributes:s,default:a}}=e;return{value:t,label:r,attributes:s,default:a}});return!function(e){let t=(0,c.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[t,r])}(e),[i,f]=(0,a.useState)(()=>(function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let s=r.find(e=>e.default)??r[0];if(!s)throw Error("Unexpected error: 0 tabValues");return s.value})({defaultValue:t,tabValues:n})),[b,v]=function(e){let{queryString:t=!1,groupId:r}=e,s=(0,l.k6)(),n=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r}),i=(0,u._X)(n);return[i,(0,a.useCallback)(e=>{if(!n)return;let t=new URLSearchParams(s.location.search);t.set(n,e),s.replace({...s.location,search:t.toString()})},[n,s])]}({queryString:r,groupId:s}),[m,g]=function(e){var t;let{groupId:r}=e;let s=(t=r)?`docusaurus.tab.${t}`:null,[n,i]=(0,d.Nk)(s);return[n,(0,a.useCallback)(e=>{if(!!s)i.set(e)},[s,i])]}({groupId:s}),x=(()=>{let e=b??m;return h({value:e,tabValues:n})?e:null})();return(0,o.Z)(()=>{x&&f(x)},[x]),{selectedValue:i,selectValue:(0,a.useCallback)(e=>{if(!h({value:e,tabValues:n}))throw Error(`Can't select invalid tab value=${e}`);f(e),v(e),g(e)},[v,g,n]),tabValues:n}}(e);return(0,s.jsxs)("div",{className:(0,n.Z)("tabs-container",b),children:[(0,s.jsx)(m,{...t,...e}),(0,s.jsx)(g,{...t,...e})]})}function j(e){let t=(0,f.Z)();return(0,s.jsx)(x,{...e,children:p(e.children)},String(t))}},39661:function(e,t,r){r.d(t,{Z:function(){return o}});var s=r(85893);r(67294);var a=r(47902),n=r(5525),i=r(83012),l=r(45056);function o(e){let{pullRequest:t,branchSuffix:r}=e;return(0,s.jsxs)(a.Z,{children:[(0,s.jsxs)(n.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,s.jsx)(l.Z,{language:"console",children:`git switch exercises/${r}`}),(0,s.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${r}/Exercise.java`,children:(0,s.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,s.jsxs)(n.Z,{value:"solution",label:"Solution",children:[(0,s.jsx)(l.Z,{language:"console",children:`git switch solutions/${r}`}),(0,s.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${r}/Exercise.java`,children:(0,s.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,s.jsxs)(n.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,s.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${t}/files?diff=split`,children:["PR#",t]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/230eb522.2f8f2dc0.js b/pr-preview/pr-238/assets/js/230eb522.2f8f2dc0.js new file mode 100644 index 0000000000..cc3a7a1ce8 --- /dev/null +++ b/pr-preview/pr-238/assets/js/230eb522.2f8f2dc0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["9683"],{86605:function(e,r,a){a.r(r),a.d(r,{metadata:()=>t,contentTitle:()=>o,default:()=>p,assets:()=>u,toc:()=>c,frontMatter:()=>i});var t=JSON.parse('{"id":"exercises/arrays/arrays06","title":"Arrays06","description":"","source":"@site/docs/exercises/arrays/arrays06.mdx","sourceDirName":"exercises/arrays","slug":"/exercises/arrays/arrays06","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays06","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/arrays/arrays06.mdx","tags":[],"version":"current","frontMatter":{"title":"Arrays06","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Arrays05","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays05"},"next":{"title":"Arrays07","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays07"}}'),n=a("85893"),s=a("50065"),l=a("39661");let i={title:"Arrays06",description:""},o=void 0,u={},c=[{value:"Zahlenfeld",id:"zahlenfeld",level:2},{value:"Konsolenausgabe",id:"konsolenausgabe",level:2}];function d(e){let r={code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.p,{children:"Erstelle eine ausf\xfchrbare Klasse, welche ein gegebenes mehrdimensionales\nZahlenfeld analysiert. Es soll jeweils der kleinste sowie der gr\xf6\xdfte Wert einer\nReihe auf der Konsole ausgegeben werden."}),"\n",(0,n.jsx)(r.h2,{id:"zahlenfeld",children:"Zahlenfeld"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-java",children:"int[][] array = {\n { 5, 8, 2, 7 },\n { 9, 6, 10, 8 },\n { 10, 2, 7, 5 },\n { 1, 9, 5, 4 }\n};\n"})}),"\n",(0,n.jsx)(r.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-console",children:"MIN - MAX\n2 - 8\n6 - 10\n2 - 10\n1 - 9\n"})}),"\n",(0,n.jsx)(l.Z,{pullRequest:"75",branchSuffix:"arrays/06"})]})}function p(e={}){let{wrapper:r}={...(0,s.a)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},5525:function(e,r,a){a.d(r,{Z:()=>l});var t=a("85893");a("67294");var n=a("67026");let s="tabItem_Ymn6";function l(e){let{children:r,hidden:a,className:l}=e;return(0,t.jsx)("div",{role:"tabpanel",className:(0,n.Z)(s,l),hidden:a,children:r})}},47902:function(e,r,a){a.d(r,{Z:()=>j});var t=a("85893"),n=a("67294"),s=a("67026"),l=a("69599"),i=a("16550"),o=a("32000"),u=a("4520"),c=a("38341"),d=a("76009");function p(e){return n.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||n.isValidElement(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:r,tabValues:a}=e;return a.some(e=>e.value===r)}var f=a("7227");let v="tabList__CuJ",b="tabItem_LNqP";function m(e){let{className:r,block:a,selectedValue:n,selectValue:i,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),d=e=>{let r=e.currentTarget,a=o[u.indexOf(r)].value;a!==n&&(c(r),i(a))},p=e=>{let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let a=u.indexOf(e.currentTarget)+1;r=u[a]??u[0];break}case"ArrowLeft":{let a=u.indexOf(e.currentTarget)-1;r=u[a]??u[u.length-1]}}r?.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":a},r),children:o.map(e=>{let{value:r,label:a,attributes:l}=e;return(0,t.jsx)("li",{role:"tab",tabIndex:n===r?0:-1,"aria-selected":n===r,ref:e=>u.push(e),onKeyDown:p,onClick:d,...l,className:(0,s.Z)("tabs__item",b,l?.className,{"tabs__item--active":n===r}),children:a??r},r)})})}function x(e){let{lazy:r,children:a,selectedValue:l}=e,i=(Array.isArray(a)?a:[a]).filter(Boolean);if(r){let e=i.find(e=>e.props.value===l);return e?(0,n.cloneElement)(e,{className:(0,s.Z)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:i.map((e,r)=>(0,n.cloneElement)(e,{key:r,hidden:e.props.value!==l}))})}function g(e){let r=function(e){let{defaultValue:r,queryString:a=!1,groupId:t}=e,s=function(e){let{values:r,children:a}=e;return(0,n.useMemo)(()=>{let e=r??p(a).map(e=>{let{props:{value:r,label:a,attributes:t,default:n}}=e;return{value:r,label:a,attributes:t,default:n}});return!function(e){let r=(0,c.lx)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[r,a])}(e),[l,f]=(0,n.useState)(()=>(function(e){let{defaultValue:r,tabValues:a}=e;if(0===a.length)throw Error("Docusaurus error: the component requires at least one children component");if(r){if(!h({value:r,tabValues:a}))throw Error(`Docusaurus error: The has a defaultValue "${r}" but none of its children has the corresponding value. Available values are: ${a.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return r}let t=a.find(e=>e.default)??a[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:r,tabValues:s})),[v,b]=function(e){let{queryString:r=!1,groupId:a}=e,t=(0,i.k6)(),s=function(e){let{queryString:r=!1,groupId:a}=e;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!a)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:r,groupId:a}),l=(0,u._X)(s);return[l,(0,n.useCallback)(e=>{if(!s)return;let r=new URLSearchParams(t.location.search);r.set(s,e),t.replace({...t.location,search:r.toString()})},[s,t])]}({queryString:a,groupId:t}),[m,x]=function(e){var r;let{groupId:a}=e;let t=(r=a)?`docusaurus.tab.${r}`:null,[s,l]=(0,d.Nk)(t);return[s,(0,n.useCallback)(e=>{if(!!t)l.set(e)},[t,l])]}({groupId:t}),g=(()=>{let e=v??m;return h({value:e,tabValues:s})?e:null})();return(0,o.Z)(()=>{g&&f(g)},[g]),{selectedValue:l,selectValue:(0,n.useCallback)(e=>{if(!h({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);f(e),b(e),x(e)},[b,x,s]),tabValues:s}}(e);return(0,t.jsxs)("div",{className:(0,s.Z)("tabs-container",v),children:[(0,t.jsx)(m,{...r,...e}),(0,t.jsx)(x,{...r,...e})]})}function j(e){let r=(0,f.Z)();return(0,t.jsx)(g,{...e,children:p(e.children)},String(r))}},39661:function(e,r,a){a.d(r,{Z:function(){return o}});var t=a(85893);a(67294);var n=a(47902),s=a(5525),l=a(83012),i=a(45056);function o(e){let{pullRequest:r,branchSuffix:a}=e;return(0,t.jsxs)(n.Z,{children:[(0,t.jsxs)(s.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,t.jsx)(i.Z,{language:"console",children:`git switch exercises/${a}`}),(0,t.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${a}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(s.Z,{value:"solution",label:"Solution",children:[(0,t.jsx)(i.Z,{language:"console",children:`git switch solutions/${a}`}),(0,t.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${a}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(s.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,t.jsxs)(l.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${r}/files?diff=split`,children:["PR#",r]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/233c2989.26d3cf2b.js b/pr-preview/pr-238/assets/js/233c2989.26d3cf2b.js new file mode 100644 index 0000000000..4b01468f38 --- /dev/null +++ b/pr-preview/pr-238/assets/js/233c2989.26d3cf2b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["510"],{98582:function(e,n,s){s.d(n,{Z:function(){return l}});var i=s(85893),r=s(67294);function l(e){let{children:n,initSlides:s,width:l=null,height:a=null}=e;return(0,r.useEffect)(()=>{s()}),(0,i.jsx)("div",{className:"reveal reveal-viewport",style:{width:l??"100vw",height:a??"100vh"},children:(0,i.jsx)("div",{className:"slides",children:n})})}},57270:function(e,n,s){s.d(n,{O:function(){return i}});let i=()=>{let e=s(42199),n=s(87251),i=s(60977),r=s(12489);new(s(29197))({plugins:[e,n,i,r]}).initialize({hash:!0})}},48985:function(e,n,s){s.r(n),s.d(n,{default:function(){return a}});var i=s(85893),r=s(98582),l=s(57270);function a(){return(0,i.jsxs)(r.Z,{initSlides:l.O,children:[(0,i.jsx)("section",{children:(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Agenda"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Wiederholung"}),(0,i.jsx)("li",{className:"fragment",children:"Klausurbesprechung"}),(0,i.jsx)("li",{className:"fragment",children:"Fortgeschrittene Programmierung"})]})]})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Wiederholung"})}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Datentypen"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Primitive Datentypen"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"boolean"}),(0,i.jsxs)("li",{className:"fragment",children:["byte, short, ",(0,i.jsx)("b",{children:"int"}),", long"]}),(0,i.jsxs)("li",{className:"fragment",children:["float, ",(0,i.jsx)("b",{children:"double"})]}),(0,i.jsx)("li",{className:"fragment",children:"char"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Komplexe Datentypen"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"String"}),(0,i.jsx)("li",{className:"fragment",children:"jede Klasse"})]}),(0,i.jsx)("p",{className:"fragment",children:"Tipp: Primitive Datentypen haben keine Methoden"})]}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Methoden"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Calculator {\n\n public static int add(int x, int y) {\n return x + y;\n }\n\n}\n"}})}),(0,i.jsx)("span",{className:"fragment fade-in-then-out",children:"R\xfcckgabetyp"}),(0,i.jsx)("span",{className:"fragment fade-in-then-out",children:"Bezeichner"}),(0,i.jsx)("span",{className:"fragment fade-in-then-out",children:"Parameter"}),(0,i.jsx)("span",{className:"fragment fade-in-then-out",children:"Methodenrumpf"})]}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Operatoren"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Arithmetische Operatoren"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"//...\n public static void main(String[] args) {\n int a = 3;\n int b = 2;\n int addition = a + b; // 5;\n int subtraktion = a - b; // 1;\n int multiplikation = a * b; // 6;\n int division = a / b; // 1, nicht 1.5! Warum?;\n int restwert = a % b; // 1;\n }\n//...\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Arithmetische Operatoren II"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"//...\n public static void main(String[] args) {\n int a = 3;\n System.out.println(a++); // Log: 3, Wert: 4\n System.out.println(++a); // Log: 5, Wert: 5\n System.out.println(--a); // Log: 4, Wert: 4\n System.out.println(a--); // Log: 4, Wert: 3\n }\n//...\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Vergleichsoperatoren"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"//...\n public static void main(String[] args) {\n boolean result;\n result = 3 == 2; // false \n result = 3 != 2; // true \n result = 3 > 2; // true \n result = 2 >= 2; // true \n result = 2 < 2; // false \n result = 2 <= 2; // true \n }\n//...\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Logische Operatoren I - AND"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"//...\n public static void main(String[] args) {\n boolean t = true;\n boolean f = false;\n boolean result;\n\n result = t && f; // false \n result = t && t; // true \n result = f && t; // false \n result = f && f; // false \n }\n//...\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Logische Operatoren II - OR"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"//...\n public static void main(String[] args) {\n boolean t = true;\n boolean f = false;\n boolean result;\n\n result = f || t; // true \n result = t || f; // true \n result = f || f; // false \n result = t || t; // true \n }\n//...\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Logische Operatoren III - NOT"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"//...\n public static void main(String[] args) {\n boolean t = true;\n boolean f = false;\n boolean result;\n\n result = !f; // true \n result = !t; // false \n }\n//...\n"}})})]}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Kontrollstrukturen"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"if"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"//...\n public static void main(String[] args) {\n int age = 18;\n\n if(age >= 18) {\n // Ich krieg alles, was ich will\n } else if(age >= 16) {\n // Ich krieg Bier, Wein, Most <3 und Sekt \n } else {\n // Ich krieg Coca Zero\n } \n }\n//...\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"switch"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:" public static void greet(String gender) {\n switch(gender) {\n case 'm':\n case 'M':\n // falls man ein Mann ist\n break; \n case 'F':\n // falls man eine Frau ist\n break; \n default :\n // falls man divers ist\n break; \n }\n }\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"while-Schleife"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:" public static boolean exists(String brand) {\n String[] cars = { 'BMW', 'Audi', 'Benz' }; \n boolean found = false; \n int i = 0; \n while(!found && i < cars.length) {\n String car = cars[i];\n if(car.equals(brand)) {\n found = true;\n } else {\n i++;\n }\n }\n return found; \n }\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"do-while-Schleife"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:" public static boolean exists(String brand) {\n String[] cars = { 'BMW', 'Audi', 'Benz' }; \n boolean found = false; \n int i = 0; \n do {\n String car = cars[i];\n if(car.equals(brand)) {\n found = true;\n } else {\n i++;\n }\n }\n while(!found && i < cars.length)\n return found; \n }\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"for-Schleife"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:" public static boolean exists(String brand) {\n String[] cars = { 'BMW', 'Audi', 'Benz' } \n for (int i = 0; i < cars.length; i++) {\n String car = cars[i];\n if(car.equals(brand)) {\n return true;\n }\n }\n return false; \n }\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"for-each-Schleife"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:" public static boolean exists(String brand) {\n String[] cars = { 'BMW', 'Audi', 'Benz' } \n for (String car : cars) {\n if(car.equals(brand)) {\n return true;\n }\n }\n return false; \n }\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"break und continue"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"break beendet die komplette Schleife"}),(0,i.jsx)("li",{className:"fragment",children:"continue \xfcberspringt den restlichen Code"})]})]}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Arrays"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Array"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:" public static void example() {\n String[] cars = { 'BMW', 'Audi', 'Benz' };\n String car;\n car = cars[0]; // lesen aus dem Array\n cars[2] = 'Alfa'; // speichern in ein Array\n String[] twoCars = new String[2]; // Array ohne Inhalt\n int amountOfItems = twoCars.length;\n }\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"ArrayList"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:" public static void example() {\n ArrayList<String> cars = new ArrayList<>();\n cars.add('BMW');\n cars.add('Audi');\n cars.add('Benz');\n String car;\n car = cars.get(0); // lesen aus der Liste\n cars.set(2,'Alfa'); // speichern in der Liste\n int amountOfItems = cars.size();\n cars.remove(1); // l\xf6schen aus der Liste\n }\n"}})})]}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Klassen und Objekte"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Klassen"}),(0,i.jsx)("span",{className:"fragment",children:"Eine Klasse beschreibt gleichartige Objekte durch"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Attribute"}),(0,i.jsx)("li",{className:"fragment",children:"Methoden"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Beispiel Klasse"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Human {\n public String firstName;\n public String lastName;\n \n public String getFullName() {\n return firstName + lastName;\n }\n}"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Objekte"}),(0,i.jsx)("span",{className:"fragment",children:"Ein Objekt ist eine m\xf6gliche Auspr\xe4gung einer Klasse"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"konkreter Wert f\xfcr ein Attribut"}),(0,i.jsx)("li",{className:"fragment",children:"konkretes Verhalten einer Methode"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Beispiel Objekt"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:' Human steffen = new Human();\n steffen.firstName = "Steffen";\n steffen.lastName = "Merk";\n String fullName = steffen.getFullName();\n'}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Konstruktor"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"beschreibt die Initialisierung eines Objektes"}),(0,i.jsx)("li",{className:"fragment",children:"Konstruktoren k\xf6nnen \xdcberladen werden"})]})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Car {\n private String color;\n private char engineType;\n\n public Car(String color) {\n this.color = color;\n this.engineType = 'b';\n }\n\n public Car(String color, char engineType) {\n this.color = color;\n this.engineType = engineType;\n }\n}\n"}})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Konstruktor II"}),(0,i.jsx)("ul",{children:(0,i.jsx)("li",{className:"fragment",children:"Konstruktoren k\xf6nnen andere Konstruktoren verwenden"})})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java","data-line-numbers":"|5-7",dangerouslySetInnerHTML:{__html:"public class Car {\n private String color;\n private char engineType;\n\n public Car(String color) {\n this(color, 'b')\n }\n\n public Car(String color, char engineType) {\n this.color = color;\n this.engineType = engineType;\n }\n}\n"}})})}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Vererbung"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Vererbung"}),(0,i.jsxs)("p",{children:["Durch ",(0,i.jsx)("b",{children:"Generalisierung"})," werden gemeinsame Attribute und Methoden von mehreren Klassen in eine weitere Klasse ausgelagert."]})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n public String name;\n public Dog(String name) {\n this.name = name;\n }\n // more Dog specific methods\n}\npublic class Cat {\n public String name;\n public Cat(String name) {\n this.name = name;\n }\n // more Cat specific methods\n}\n"}})})}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Animal {\n public String name;\n public Animal(String name) {\n this.name = name;\n }\n}\n"}})})}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog extends Animal {\n public Dog(String name) {\n super(name);\n }\n}\n\npublic class Cat extends Animal {\n public Cat(String name) {\n super(name);\n }\n}\n"}})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Schl\xfcsselw\xf6rter zur Vererbung"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"extends"}),(0,i.jsx)("li",{className:"fragment",children:"super"})]})]}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Polymorphie"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Polymorphie"}),(0,i.jsx)("p",{className:"fragment",children:"Eine Referenzvariable, die vom Typ einer generalisierten Klasse ist, kann mehrere (poly) Formen annehmen (Unterklassen)."}),(0,i.jsx)("p",{className:"fragment",children:"Eine Referenzvariable vom Typ Animal kann eine Katze oder ein Hund sein."})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Upcast"}),(0,i.jsx)("p",{className:"fragment",children:"Der Referenzvariable einer Oberklasse wird eine Referenzvariable einer Unterklasse zugewiesen."}),(0,i.jsx)("pre",{className:"fragment",children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"Animal animal01 = new Cat();\nAnimal animal02 = new Dog();\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("p",{children:"Ist eine Referenzvariable vom Typ einer generalisierten Klasse, k\xf6nnen nur die Methoden der generalisierten Klasse verwendet werden."}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"Animal animal01 = new Dog();\nanimal01.name = 'Bello'; // funktioniert\nanimal01.bark(); // funktioniert nicht \n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Downcast"}),(0,i.jsx)("p",{className:"fragment",children:"Der Referenzvariable einer Oberklasse wird eine Referenzvariable einer Unterklasse zugewiesen."}),(0,i.jsx)("pre",{className:"fragment",children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"Animal animal01 = new Dog();\nDog dog01 = (Dog) animal01;\ndog01.bark(); // funktioniert\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"instanceof operator"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"Animal animal01 = new Dog();\nif (animal01 instanceof Dog) {\n // hundespezifischer Quellcode\n Dog bello = (Dog) animal01;\n bello.bark();\n}"}})})]}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Modifier"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Public Modifier - Klasse"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n //...\n}\n"}})}),(0,i.jsx)("p",{children:"Klasse kann \xfcberall im Projekt verwendet werden."})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Kein Modifier - Klasse"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"class Dog {\n //...\n}\n"}})}),(0,i.jsx)("p",{children:"Klasse kann nur im selben Paket verwendet werden."})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Abstract Modifier - Klasse"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public abstract class Dog {\n //...\n}\n"}})}),(0,i.jsx)("p",{children:"Ein Objekt dieser Klasse kann nicht instanziiert werden."})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Final Modifier - Klasse"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public final class Dog {\n //...\n}\n"}})}),(0,i.jsx)("p",{children:"Von dieser Klasse kann nicht geerbt werden."})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Public Modifier - Attribut"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n public String name;\n //...\n}\n"}})}),(0,i.jsx)("p",{children:"Das Attribut kann immer ge\xe4ndert werden."})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'Dog bello = new Dog();\nbello.name = "Steffen"; // funktioniert\n\npublic class MonsterDog extends Dog {\n //...\n public void setName(String name) {\n this.name = name; // funktioniert\n }\n //...\n}\n'}})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Private Modifier - Attribut"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n private String name;\n //...\n public void setName(String name) {\n this.name = name; // funktioniert\n }\n}\n"}})}),(0,i.jsx)("p",{children:"Das Attribut kann innerhalb der Klasse ge\xe4ndert werden."})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'Dog bello = new Dog();\nbello.name = "Steffen"; // funktioniert nicht\n\npublic class MonsterDog extends Dog {\n //...\n public void setName(String name) {\n this.name = name; // funktioniert nicht\n }\n //...\n}\n'}})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Protected Modifier - Attribut"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n protected String name;\n //...\n public void setName(String name) {\n this.name = name; // funktioniert\n }\n}\n"}})}),(0,i.jsx)("p",{children:"Das Attribut kann innerhalb der Klasse und von allen erbenden Klassen ge\xe4ndert werden."})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'Dog bello = new Dog();\nbello.name = "Steffen"; // funktioniert nicht\n\npublic class MonsterDog extends Dog {\n //...\n public void setName(String name) {\n this.name = name; // funktioniert\n }\n //...\n}\n'}})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Final Modifier - Attribut"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n public final String name;\n //...\n public Dog(String name) {\n this.name = name; // funktioniert\n }\n\n public void setName(String name) {\n this.name = name; // funktioniert nicht\n }\n}\n"}})}),(0,i.jsx)("p",{children:"Das Attribut kann nur im Konstruktor ge\xe4ndert werden."})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'Dog bello = new Dog("Marianna");\nbello.name = "Steffen"; // funktioniert nicht\n\npublic class MonsterDog extends Dog {\n //...\n public void setName(String name) {\n this.name = name; // funktioniert nicht\n }\n //...\n}\n'}})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Static Modifier - Attribut"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n public static boolean hasHat = false;\n //...\n}\n"}})}),(0,i.jsx)("p",{children:"Das Attribut geh\xf6rt zu der Klasse und nicht zu einem Objekt."})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"Dog bello = new Dog();\nbello.hasHat = true; // funktioniert nicht\nDog.hasHat = true; // funktioniert\n\npublic class MonsterDog extends Dog {\n //...\n public void setHat(boolean hasHat) {\n this.hasHat = hasHat; // funktioniert nicht\n Dog.hasHat = hasHat; // funktioniert\n }\n //...\n}\n"}})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Public Modifier - Methode"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n public void bark() {\n //...\n }\n //...\n}\n"}})}),(0,i.jsx)("p",{children:"Die Methode kann immer verwendet werden."})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"Dog bello = new Dog();\nbello.bark(); // funktioniert\n\npublic class MonsterDog extends Dog {\n //...\n public void attack() {\n this.bark(); // funktioniert\n }\n //...\n}\n"}})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Private Modifier - Methode"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n private void bark() {\n //...\n }\n //...\n}\n"}})}),(0,i.jsx)("p",{children:"Die Methode kann innerhalb der Klasse verwendet werden."})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"Dog bello = new Dog();\nbello.bark(); // funktioniert nicht\n\npublic class MonsterDog extends Dog {\n //...\n public void attack() {\n this.bark(); // funktioniert nicht\n }\n //...\n}\n"}})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Protected Modifier - Methode"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n protected void bark() {\n //...\n }\n //...\n}\n"}})}),(0,i.jsx)("p",{children:"Das Attribut kann innerhalb der Klasse und von allen erbenden Klassen verwendet werden."})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"Dog bello = new Dog();\nbello.bark(); // funktioniert nicht\n\npublic class MonsterDog extends Dog {\n //...\n public void attack() {\n this.bark(); // funktioniert\n }\n //...\n}\n"}})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Final Modifier - Methode"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n public final void bark() {\n //...\n }\n //...\n}\n"}})}),(0,i.jsx)("p",{children:"Die Methode kann nicht \xfcberschrieben werden."})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class MonsterDog extends Dog {\n //...\n public void bark() { // funktioniert nicht \n //...\n }\n //...\n}\n"}})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Static Modifier - Methode"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Dog {\n public static hasHat = true;\n public static isCool = true;\n public static boolean isCoolAndHasHat() {\n return Dog.isCool && Dog.hasHat;\n }\n //...\n}\n"}})}),(0,i.jsx)("p",{children:"Die Methode geh\xf6rt zu der Klasse und nicht zu einem Objekt. Es kann nur auf statische Attribute zugegriffen werden."})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"Dog bello = new Dog();\nbello.isCoolAndHasHat(); // funktioniert nicht\nDog.isCoolAndHasHat(); // funktioniert\n\npublic class MonsterDog extends Dog {\n //...\n public void attack() {\n this.isCoolAndHasHat(); // funktioniert nicht\n Dog.isCoolAndHasHat(); // funktioniert\n }\n //...\n}\n"}})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Abstract Modifier - Methode"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public abstract class Animal {\n //...\n public abstract void makeSound();\n}\n"}})}),(0,i.jsx)("p",{children:"Die Methode muss von der erbenden Klasse implementiert werden. Abstrakte Methoden k\xf6nnen nur in abstrakten Klassen definiert werden."})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class MonsterDog extends Dog {\n // funktioniert nicht, makeSound muss implementiert werden\n}\n"}})})}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Enumeration"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Enumeration"}),(0,i.jsx)("p",{children:"Eine Enumeration ist eine Klasse mit Attributen und Methoden. Sie definiert zus\xe4tzlich alle m\xf6glichen Auspr\xe4gungen dieser Klasse."})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Enumeration implementieren"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'public enum Gender {\n MALE("Mann"),\n FEMALE("Frau"),\n DIVERS("Divers");\n \n public final String text;\n \n Gender(String text) {\n this.text = text;\n }\n \n public boolean isBinary() {\n return this == Gender.MALE || this == Gender.FEMALE;\n }\n}\n'}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Enumeration als Typ verwenden"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Human {\n public final Gender gender;\n \n public Human(Gender gender) {\n this.gender = gender;\n }\n public doSomethingBinaryRelated() {\n if(this.gender.isBinary())\n //...\n }\n}\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Enumeration als Wert setzen"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"Human steffen = new Human(Gender.MALE);\n"}})})]}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Interfaces"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Interfaces"}),(0,i.jsx)("p",{children:"Definieren Methoden unabh\xe4ngig von der Vererbungshierarchie."}),(0,i.jsx)("p",{className:"fragment",children:"Dient als Schnittstelle zwischen Ersteller und Verwender einer Funktionalit\xe4t."})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Interface (Ersteller)"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{"data-line-numbers":"1-3|6|7,11",className:"java",dangerouslySetInnerHTML:{__html:"public interface Item {\n public String getName(); \n}\n\npublic class ShoppingList {\n ArrayList<Item> items = new ArrayList<>();\n public void add(Item item) {\n this.items.add(item);\n }\n public void print() {\n for(Item item : items) {\n System.out.println(item.getName();\n }\n }\n}\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Interface (Verwender) I"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{"data-line-numbers":"1|10-12",className:"java",dangerouslySetInnerHTML:{__html:'public class Human implements Item {\n public final String firstName;\n public final String lastName;\n \n public Human(String firstName, String lastName) {\n this.firstName = firstName;\n this.lastName = lastName;\n }\n \n public String getName() {\n return firstName + " " + lastName;\n }\n}\n'}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Interface (Verwender) II "}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'ShoppingList shoppingList = new ShoppingList();\nHuman steffen = new Human("Steffen", "Merk");\nshoppingList.add(steffen);\nshoppingList.print(); // "Steffen Merk"\n'}})})]}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Comparator"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Comparator"}),(0,i.jsx)("p",{className:"fragment",children:"Definiert wie eine Liste von Elementen sortiert wird."}),(0,i.jsx)("p",{className:"fragment",children:"Vergleicht immer zwei Elemente miteinander, bei dem angegeben wird, wo das erste Element im Vergleich zum zweiten Element positioniert wird (Zahlenstrahl)."})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Comparator implementieren"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class AgeAscComparator implements Comparator<Human> {\n \n public int compare(Human h1, Human h2) {\n if(h1.getAge() > h2.getAge()) {\n return 1;\n } else if (h1.getAge() < h2.getAge()) {\n return -1;\n } else {\n return 0;\n } \n }\n}\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Comparator verwenden"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"ArrayList<Human> developers = new ArrayList<>();\ndevelopers.add(new Human(28));\ndevelopers.add(new Human(24));\nCollections.sort(developers, new AgeAscComparator());\n"}})})]}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Exceptions"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Exceptions"}),(0,i.jsx)("p",{className:"fragment",children:"Sind Fehler, die w\xe4hrend der Ausf\xfchrung des Programms auftreten k\xf6nnen und dienen zur Kommunikation."}),(0,i.jsx)("p",{className:"fragment",children:"Fehler k\xf6nnen mitgeteilt (throws) und verarbeitet werden (catch)."})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Exception implementieren"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{"data-line-numbers":"1-9|1|6",className:"java",dangerouslySetInnerHTML:{__html:"public class TooYoungException extends Exception {\n \n public final int yearsTillAllowed;\n \n public TooYoungException(int yearsTillAllowed) {\n super();\n this.yearsTillAllowed = yearsTillAllowed;\n }\n}\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Exception ausl\xf6sen"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{"data-line-numbers":"1-9|4|6",className:"java",dangerouslySetInnerHTML:{__html:"public class ShoppingList {\n Human buyer;\n //...\n public addItem(Item item) throws TooYoungException {\n if(item.isAlcohol() && this.buyer.getAge() < 21) {\n throw new TooYoungException(21 - buyer.getAge());\n }\n }\n}\n"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Exception behandeln"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{"data-line-numbers":"1-13|5-7|7-9|9-11",className:"java",dangerouslySetInnerHTML:{__html:'public class Main {\n public static void main(String[] args) {\n ShoppingList sl = new ShoppingList();\n Beer corona = new Beer();\n try {\n sl.add(corona);\n } catch (TooYoungException e) {\n System.out.println("Du bist" + e.yearsTillAllowed + "zu jung");\n } finally {\n System.out.println("Einkauf beendet. (Immer)");\n }\n }\n}\n'}})})]}),(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Klassendiagramme (Doku)"})})]}),(0,i.jsx)("section",{children:(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Klausurbesprechung"})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Organisatorsiches"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Fortgeschrittene Programmierung"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Algorithmen und Datenstrukturen"}),(0,i.jsx)("li",{className:"fragment",children:"Generische Programmierung"}),(0,i.jsx)("li",{className:"fragment",children:"Funktionale Programmierung"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Pr\xfcfungsleistungen"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Projektbericht (50 Punkte)"}),(0,i.jsx)("li",{className:"fragment",children:"Klausur am PC (50 Punkte)"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Projektbericht - Termine"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"30.04.2024 - Problem und Daten in Moodle"}),(0,i.jsx)("li",{className:"fragment",children:"30.05.2025 - Abgabe Projektbericht (Moodle/Papier)"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Projektbericht - Problem"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"findet ein Problem (im Unternehmen)"}),(0,i.jsx)("li",{className:"fragment",children:"(er)findet dazu Daten"}),(0,i.jsx)("li",{className:"fragment",children:"mindestens eine Verkn\xfcpfung"}),(0,i.jsx)("li",{className:"fragment",children:"keine doppelten Themen (Selbstorganisiert)"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Projektbericht - Ergebnis am 30.04"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Problembeschreibung (Textdatei)"}),(0,i.jsx)("li",{className:"fragment",children:"Tabelle mit mindestens 20 Datens\xe4tzen (CSV-Datei)"}),(0,i.jsx)("li",{className:"fragment",children:"Hochladen in Moodle"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Projektbericht - Ergebnis am 31.05"}),(0,i.jsx)("ul",{children:(0,i.jsx)("li",{className:"fragment",children:"Erkl\xe4rung am 30.04"})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Klausur am PC"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Ablauf wie Test/Klausur"}),(0,i.jsx)("li",{className:"fragment",children:"VSCode anstatt Notepad++"}),(0,i.jsx)("li",{className:"fragment",children:"Keine Fragenbeschreibung in Moodle"})]})]})]}),(0,i.jsx)("section",{children:(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Rest of the day"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Wiederholung"}),(0,i.jsx)("li",{className:"fragment",children:"Entwicklungsumgebung einrichten"})]})]})})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/238cd375.7404fcd2.js b/pr-preview/pr-238/assets/js/238cd375.7404fcd2.js new file mode 100644 index 0000000000..aaa513b4d5 --- /dev/null +++ b/pr-preview/pr-238/assets/js/238cd375.7404fcd2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4764"],{66319:function(e,n,t){t.r(n),t.d(n,{metadata:()=>r,contentTitle:()=>c,default:()=>h,assets:()=>u,toc:()=>d,frontMatter:()=>o});var r=JSON.parse('{"id":"documentation/java-collections-framework","title":"Java Collections Framework","description":"","source":"@site/docs/documentation/java-collections-framework.mdx","sourceDirName":"documentation","slug":"/documentation/java-collections-framework","permalink":"/java-docs/pr-preview/pr-238/documentation/java-collections-framework","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/java-collections-framework.mdx","tags":[{"inline":true,"label":"collections","permalink":"/java-docs/pr-preview/pr-238/tags/collections"},{"inline":true,"label":"lists","permalink":"/java-docs/pr-preview/pr-238/tags/lists"},{"inline":true,"label":"sets","permalink":"/java-docs/pr-preview/pr-238/tags/sets"},{"inline":true,"label":"queues","permalink":"/java-docs/pr-preview/pr-238/tags/queues"}],"version":"current","sidebarPosition":224,"frontMatter":{"title":"Java Collections Framework","description":"","sidebar_position":224,"tags":["collections","lists","sets","queues"]},"sidebar":"documentationSidebar","previous":{"title":"Komparatoren","permalink":"/java-docs/pr-preview/pr-238/documentation/comparators"},"next":{"title":"Schl\xfcsseltransformationen (Hashing)","permalink":"/java-docs/pr-preview/pr-238/documentation/hashing"}}'),a=t("85893"),i=t("50065"),s=t("47902"),l=t("5525");let o={title:"Java Collections Framework",description:"",sidebar_position:224,tags:["collections","lists","sets","queues"]},c=void 0,u={},d=[{value:"Iteratoren",id:"iteratoren",level:2}];function m(e){let n={a:"a",code:"code",h2:"h2",mermaid:"mermaid",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.p,{children:["Collections sind Beh\xe4lter, die beliebig viele Objekte aufnehmen k\xf6nnen. Der\nBeh\xe4lter \xfcbernimmt dabei die Verantwortung f\xfcr die Elemente. Collections werden\nauch als (Daten-)Sammlungen bezeichnet. Alle Collections-Schnittstellen und\nKlassen befinden sich im Paket ",(0,a.jsx)(n.code,{children:"java.util"}),". Die Grundformen der Datensammlungen\nsind die Schnittstellen ",(0,a.jsx)(n.code,{children:"List"}),", ",(0,a.jsx)(n.code,{children:"Set"})," und ",(0,a.jsx)(n.code,{children:"Queue"}),". Zu allen\nSchnittstellen existieren konkrete Implementierungen sowie abstrakte Klassen,\ndie zum Erstellen eigener Collections-Klassen verwendet werden k\xf6nnen."]}),"\n",(0,a.jsxs)(s.Z,{children:[(0,a.jsxs)(l.Z,{value:"a",label:"Listen (Lists)",default:!0,children:[(0,a.jsx)(n.p,{children:"Unter einer Liste (List) versteht man eine geordnete Folge von Objekten. Listen\nk\xf6nnen doppelte Elemente enthalten. Der Zugriff auf die Elemente erfolgt \xfcber\nden Index oder sequentiell."}),(0,a.jsx)(n.mermaid,{value:"flowchart\n subgraph names\n name1(Lisa)\n name2(Peter)\n name3(Lisa)\n name4(Hans)\n end"}),(0,a.jsxs)(n.p,{children:["Konkrete Implementierungen der Schnittstelle ",(0,a.jsx)(n.code,{children:"List"})," stellen die Klassen\n",(0,a.jsx)(n.code,{children:"ArrayList"})," und ",(0,a.jsx)(n.code,{children:"LinkedList"})," (siehe auch\n",(0,a.jsx)(n.a,{href:"array-lists",children:"Feldbasierte Listen"})," und ",(0,a.jsx)(n.a,{href:"lists",children:"Listen"}),") dar."]})]}),(0,a.jsxs)(l.Z,{value:"b",label:"Mengen (Sets)",children:[(0,a.jsx)(n.p,{children:"Unter einer Menge (Set) versteht man eine Ansammlung von Elementen. Mengen\nk\xf6nnen keine doppelten Elemente beinhalten. Der Zugriff erfolgt \xfcber typische\nMengenoperationen."}),(0,a.jsx)(n.mermaid,{value:"flowchart LR\n subgraph names\n name1(Lisa)\n name2(Peter)\n name3(Hans)\n end"}),(0,a.jsxs)(n.p,{children:["Konkrete Implementierungen der Schnittstelle ",(0,a.jsx)(n.code,{children:"Set"})," stellen die Klassen\n",(0,a.jsx)(n.code,{children:"HashSet"})," und ",(0,a.jsx)(n.code,{children:"TreeSet"})," dar. Die Klasse ",(0,a.jsx)(n.code,{children:"HashSet"})," implementiert die\nMenge dabei in Form einer Hashtabelle, die Klasse ",(0,a.jsx)(n.code,{children:"TreeSet"})," in Form eines\nBin\xe4rbaumes."]})]}),(0,a.jsxs)(l.Z,{value:"c",label:"Warteschlangen (Queues)",children:[(0,a.jsx)(n.p,{children:"Unter einer Warteschlange (Queue) versteht man eine Folge von Objekten, bei der\ndas Anf\xfcgen und L\xf6schen von Objekten nach dem FIFO-Prinzip (First In First Out)\nfunktioniert. Bei einer Warteschlange kann ein neues Objekt immer nur am Ende\nangef\xfcgt werden und nur das Objekt, das am Anfang der Warteschlange steht,\ngel\xf6scht werden. Warteschlangen k\xf6nnen doppelte Elemente enthalten."}),(0,a.jsx)(n.mermaid,{value:"flowchart LR\n name1 --\x3e name2 --\x3e name3 --\x3e name4 --\x3e name5\n\n name1(Lisa)\n subgraph names\n direction LR\n name2(Peter)\n name3(Lisa)\n name4(Hans)\n end\n name5(Max)"}),(0,a.jsxs)(n.p,{children:["Konkrete Implementierungen der Schnittstelle ",(0,a.jsx)(n.code,{children:"Queue"})," stellen die Klassen\n",(0,a.jsx)(n.code,{children:"PriorityQueue"})," und ",(0,a.jsx)(n.code,{children:"LinkedList"})," dar. Die Klasse ",(0,a.jsx)(n.code,{children:"PriorityQueue"}),"\nimplementiert die Warteschlange als eine Vorrang-Warteschlange. Bei einer\nVorrang-Warteschlange werden die Elemente gem\xe4\xdf ihrer Wichtigkeit sortiert, das\nhei\xdft, sie funktioniert nicht nach dem FIFO-Prinzip."]})]})]}),"\n",(0,a.jsx)(n.h2,{id:"iteratoren",children:"Iteratoren"}),"\n",(0,a.jsxs)(n.p,{children:["Ein Iterator erlaubt den sequentiellen Zugriff auf die Elemente einer\nDatensammlung. Iteratoren werden durch die Schnittstelle ",(0,a.jsx)(n.code,{children:"Iterator"}),"\ndefiniert; diese bietet die Methoden ",(0,a.jsx)(n.code,{children:"boolean hasNext()"}),", ",(0,a.jsx)(n.code,{children:"E next()"})," und\n",(0,a.jsx)(n.code,{children:"void remove()"}),". Die von ",(0,a.jsx)(n.code,{children:"Iterator"})," abgeleitete Schnittstelle\n",(0,a.jsx)(n.code,{children:"ListIterator"})," bietet zus\xe4tzliche Methoden zum Ver\xe4ndern einer Liste."]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n\n List names = List.of("Hans", "Peter", "Lisa");\n\n Iterator iterator = names.iterator();\n while (iterator.hasNext()) {\n String name = iterator.next();\n System.out.println(name);\n }\n\n }\n\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"Auch die bereits bekannte for-each-Schleife basiert auf Iteratoren. Die\nausf\xfchrliche Schreibeweise mit Iteratoren wird auch als erweiterte for-Schleife\nbezeichnet. Beim Kompilieren werden for-each-Schleifen um Iteratoren erg\xe4nzt."}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n\n List names = List.of("Hans", "Peter", "Lisa");\n\n for (Iterator iterator = names.iterator(); iterator.hasNext();) {\n String name = iterator.next();\n System.out.println(name);\n }\n\n /* Kurzschreibweise */\n for (String name: names) {\n System.out.println(name);\n }\n\n }\n\n}\n'})})]})}function h(e={}){let{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(m,{...e})}):m(e)}},5525:function(e,n,t){t.d(n,{Z:()=>s});var r=t("85893");t("67294");var a=t("67026");let i="tabItem_Ymn6";function s(e){let{children:n,hidden:t,className:s}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,a.Z)(i,s),hidden:t,children:n})}},47902:function(e,n,t){t.d(n,{Z:()=>x});var r=t("85893"),a=t("67294"),i=t("67026"),s=t("69599"),l=t("16550"),o=t("32000"),c=t("4520"),u=t("38341"),d=t("76009");function m(e){return a.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||a.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:n,tabValues:t}=e;return t.some(e=>e.value===n)}var p=t("7227");let f="tabList__CuJ",b="tabItem_LNqP";function v(e){let{className:n,block:t,selectedValue:a,selectValue:l,tabValues:o}=e,c=[],{blockElementScrollPositionUntilNextRender:u}=(0,s.o5)(),d=e=>{let n=e.currentTarget,t=o[c.indexOf(n)].value;t!==a&&(u(n),l(t))},m=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{let t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1]}}n?.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n),children:o.map(e=>{let{value:n,label:t,attributes:s}=e;return(0,r.jsx)("li",{role:"tab",tabIndex:a===n?0:-1,"aria-selected":a===n,ref:e=>c.push(e),onKeyDown:m,onClick:d,...s,className:(0,i.Z)("tabs__item",b,s?.className,{"tabs__item--active":a===n}),children:t??n},n)})})}function g(e){let{lazy:n,children:t,selectedValue:s}=e,l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){let e=l.find(e=>e.props.value===s);return e?(0,a.cloneElement)(e,{className:(0,i.Z)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:l.map((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==s}))})}function j(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,i=function(e){let{values:n,children:t}=e;return(0,a.useMemo)(()=>{let e=n??m(t).map(e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}});return!function(e){let n=(0,u.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,t])}(e),[s,p]=(0,a.useState)(()=>(function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw Error("Docusaurus error: the component requires at least one children component");if(n){if(!h({value:n,tabValues:t}))throw Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let r=t.find(e=>e.default)??t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:i})),[f,b]=function(e){let{queryString:n=!1,groupId:t}=e,r=(0,l.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t}),s=(0,c._X)(i);return[s,(0,a.useCallback)(e=>{if(!i)return;let n=new URLSearchParams(r.location.search);n.set(i,e),r.replace({...r.location,search:n.toString()})},[i,r])]}({queryString:t,groupId:r}),[v,g]=function(e){var n;let{groupId:t}=e;let r=(n=t)?`docusaurus.tab.${n}`:null,[i,s]=(0,d.Nk)(r);return[i,(0,a.useCallback)(e=>{if(!!r)s.set(e)},[r,s])]}({groupId:r}),j=(()=>{let e=f??v;return h({value:e,tabValues:i})?e:null})();return(0,o.Z)(()=>{j&&p(j)},[j]),{selectedValue:s,selectValue:(0,a.useCallback)(e=>{if(!h({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);p(e),b(e),g(e)},[b,g,i]),tabValues:i}}(e);return(0,r.jsxs)("div",{className:(0,i.Z)("tabs-container",f),children:[(0,r.jsx)(v,{...n,...e}),(0,r.jsx)(g,{...n,...e})]})}function x(e){let n=(0,p.Z)();return(0,r.jsx)(j,{...e,children:m(e.children)},String(n))}},50065:function(e,n,t){t.d(n,{Z:function(){return l},a:function(){return s}});var r=t(67294);let a={},i=r.createContext(a);function s(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/238ef506.1ca22a04.js b/pr-preview/pr-238/assets/js/238ef506.1ca22a04.js new file mode 100644 index 0000000000..b15452d640 --- /dev/null +++ b/pr-preview/pr-238/assets/js/238ef506.1ca22a04.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7501"],{90956:function(e,n,a){a.r(n),a.d(n,{metadata:()=>r,contentTitle:()=>d,default:()=>c,assets:()=>o,toc:()=>l,frontMatter:()=>t});var r=JSON.parse('{"id":"documentation/lambdas","title":"Lambda-Ausdr\xfccke (Lambdas)","description":"","source":"@site/docs/documentation/lambdas.md","sourceDirName":"documentation","slug":"/documentation/lambdas","permalink":"/java-docs/pr-preview/pr-238/documentation/lambdas","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/lambdas.md","tags":[{"inline":true,"label":"inner-classes","permalink":"/java-docs/pr-preview/pr-238/tags/inner-classes"},{"inline":true,"label":"lambdas","permalink":"/java-docs/pr-preview/pr-238/tags/lambdas"}],"version":"current","sidebarPosition":265,"frontMatter":{"title":"Lambda-Ausdr\xfccke (Lambdas)","description":"","sidebar_position":265,"tags":["inner-classes","lambdas"]},"sidebar":"documentationSidebar","previous":{"title":"Innere Klassen (Inner Classes)","permalink":"/java-docs/pr-preview/pr-238/documentation/inner-classes"},"next":{"title":"Generische Programmierung","permalink":"/java-docs/pr-preview/pr-238/documentation/generics"}}'),s=a("85893"),i=a("50065");let t={title:"Lambda-Ausdr\xfccke (Lambdas)",description:"",sidebar_position:265,tags:["inner-classes","lambdas"]},d=void 0,o={},l=[{value:"Implementierung von Lambda-Ausdr\xfccken",id:"implementierung-von-lambda-ausdr\xfccken",level:2},{value:"Syntaxvarianten",id:"syntaxvarianten",level:2},{value:"Methodenreferenzen",id:"methodenreferenzen",level:2}];function m(e){let n={admonition:"admonition",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Lambda-Ausdr\xfccke sind anonyme Funktionen, die nur \xfcber ihre Referenz\nangesprochen werden k\xf6nnen."}),"\n",(0,s.jsx)(n.h2,{id:"implementierung-von-lambda-ausdr\xfccken",children:"Implementierung von Lambda-Ausdr\xfccken"}),"\n",(0,s.jsxs)(n.p,{children:["Die Methodenparameter sowie der Methodenk\xf6rper werden bei einem Lambda-Ausdruck\ngetrennt vom Pfeiloperator ",(0,s.jsx)(n.code,{children:"->"})," notiert."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n List names = new ArrayList<>();\n names.add("Hans");\n names.add("Peter");\n names.add("Lisa");\n\n Collections.sort(names, (n1, n2) -> n2.compareTo(n1));\n names.forEach(n -> System.out.println(n));\n }\n\n}\n'})}),"\n",(0,s.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,s.jsx)(n.p,{children:"Voraussetzung f\xfcr den Einsatz eines Lambda-Ausdrucks ist eine funktionale\nSchnittstelle, also eine Schnittstelle, die \xfcber genau eine Methode verf\xfcgt."})}),"\n",(0,s.jsx)(n.h2,{id:"syntaxvarianten",children:"Syntaxvarianten"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Bei keinem oder mehreren Methodenparametern m\xfcssen diese in runden Klammern\nangegeben werden, bei genau einem Methodenparameter k\xf6nnen die runden Klammern\nweggelassen werden"}),"\n",(0,s.jsx)(n.li,{children:"Besteht der Methodenk\xf6rper aus mehreren Anweisungen, m\xfcssen diese in\ngeschweiften Klammern angegeben werden, bei genau einer Anweisung k\xf6nnen die\ngeschweiften Klammern weggelassen werden"}),"\n",(0,s.jsxs)(n.li,{children:["Besteht der Methodenk\xf6rper aus genau einer Anweisung, kann das Semikolon am\nAnweisungsende weggelassen werden, ist die Anweisung eine return-Anweisung,\nkann auch das ",(0,s.jsx)(n.code,{children:"return"})," weggelassen werden"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"methodenreferenzen",children:"Methodenreferenzen"}),"\n",(0,s.jsx)(n.p,{children:"Lambda-Ausdr\xfccke, die nur aus dem Aufruf einer Methode bestehen, k\xf6nnen als\nMethodenreferenz dargestellt werden. Bei einer Methodenreferenz wird die Klasse\nbzw. die Referenz auf der linken Seite mit Hilfe zweier Doppelpunkte vom\nMethodennamen auf der recht Seite getrennt."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:"public class MainClass {\n\n public static void main(String[] args) {\n List numbers = new ArrayList<>();\n numbers.add(256);\n numbers.add(314);\n numbers.add(127);\n\n numbers.stream().map(n -> n.byteValue()).forEach(b -> System.out.println(b)); // Lambda-Ausdruck\n numbers.stream().map(Integer::byteValue).forEach(System.out::println); // Methodenreferenz\n }\n\n}\n"})})]})}function c(e={}){let{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}},50065:function(e,n,a){a.d(n,{Z:function(){return d},a:function(){return t}});var r=a(67294);let s={},i=r.createContext(s);function t(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/23a472b6.b10c518a.js b/pr-preview/pr-238/assets/js/23a472b6.b10c518a.js new file mode 100644 index 0000000000..5356e49a84 --- /dev/null +++ b/pr-preview/pr-238/assets/js/23a472b6.b10c518a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3055"],{95017:function(e,r,t){t.r(r),t.d(r,{metadata:()=>n,contentTitle:()=>o,default:()=>p,assets:()=>u,toc:()=>c,frontMatter:()=>l});var n=JSON.parse('{"id":"exercises/arrays/arrays01","title":"Arrays01","description":"","source":"@site/docs/exercises/arrays/arrays01.mdx","sourceDirName":"exercises/arrays","slug":"/exercises/arrays/arrays01","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays01","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/arrays/arrays01.mdx","tags":[],"version":"current","frontMatter":{"title":"Arrays01","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Felder (Arrays)","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/"},"next":{"title":"Arrays02","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays02"}}'),a=t("85893"),s=t("50065"),i=t("39661");let l={title:"Arrays01",description:""},o=void 0,u={},c=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2},{value:"Hinweis",id:"hinweis",level:2}];function d(e){let r={code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.p,{children:"Erstelle eine ausf\xfchrbare Klasse, welche alle Zweierpotenzen von 0 bis 15\nberechnet, in einem Feld speichert und anschlie\xdfend auf dem Bildschirm ausgibt."}),"\n",(0,a.jsx)(r.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-console",children:"Zweierpotenzen:\n1\n2\n4\n8\n16\n32\n64\n128\n...\n"})}),"\n",(0,a.jsx)(r.h2,{id:"hinweis",children:"Hinweis"}),"\n",(0,a.jsxs)(r.p,{children:["Die statische Methode ",(0,a.jsx)(r.code,{children:"double pow(a: double, b: double)"})," der Klasse ",(0,a.jsx)(r.code,{children:"Math"})," gibt\nden Potenzwert zur eingehenden Basis und dem eingehenden Exponenten zur\xfcck."]}),"\n",(0,a.jsx)(i.Z,{pullRequest:"18",branchSuffix:"arrays/01"})]})}function p(e={}){let{wrapper:r}={...(0,s.a)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},5525:function(e,r,t){t.d(r,{Z:()=>i});var n=t("85893");t("67294");var a=t("67026");let s="tabItem_Ymn6";function i(e){let{children:r,hidden:t,className:i}=e;return(0,n.jsx)("div",{role:"tabpanel",className:(0,a.Z)(s,i),hidden:t,children:r})}},47902:function(e,r,t){t.d(r,{Z:()=>j});var n=t("85893"),a=t("67294"),s=t("67026"),i=t("69599"),l=t("16550"),o=t("32000"),u=t("4520"),c=t("38341"),d=t("76009");function p(e){return a.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||a.isValidElement(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:r,tabValues:t}=e;return t.some(e=>e.value===r)}var f=t("7227");let b="tabList__CuJ",v="tabItem_LNqP";function m(e){let{className:r,block:t,selectedValue:a,selectValue:l,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.o5)(),d=e=>{let r=e.currentTarget,t=o[u.indexOf(r)].value;t!==a&&(c(r),l(t))},p=e=>{let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=u.indexOf(e.currentTarget)+1;r=u[t]??u[0];break}case"ArrowLeft":{let t=u.indexOf(e.currentTarget)-1;r=u[t]??u[u.length-1]}}r?.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":t},r),children:o.map(e=>{let{value:r,label:t,attributes:i}=e;return(0,n.jsx)("li",{role:"tab",tabIndex:a===r?0:-1,"aria-selected":a===r,ref:e=>u.push(e),onKeyDown:p,onClick:d,...i,className:(0,s.Z)("tabs__item",v,i?.className,{"tabs__item--active":a===r}),children:t??r},r)})})}function x(e){let{lazy:r,children:t,selectedValue:i}=e,l=(Array.isArray(t)?t:[t]).filter(Boolean);if(r){let e=l.find(e=>e.props.value===i);return e?(0,a.cloneElement)(e,{className:(0,s.Z)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:l.map((e,r)=>(0,a.cloneElement)(e,{key:r,hidden:e.props.value!==i}))})}function g(e){let r=function(e){let{defaultValue:r,queryString:t=!1,groupId:n}=e,s=function(e){let{values:r,children:t}=e;return(0,a.useMemo)(()=>{let e=r??p(t).map(e=>{let{props:{value:r,label:t,attributes:n,default:a}}=e;return{value:r,label:t,attributes:n,default:a}});return!function(e){let r=(0,c.lx)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[r,t])}(e),[i,f]=(0,a.useState)(()=>(function(e){let{defaultValue:r,tabValues:t}=e;if(0===t.length)throw Error("Docusaurus error: the component requires at least one children component");if(r){if(!h({value:r,tabValues:t}))throw Error(`Docusaurus error: The has a defaultValue "${r}" but none of its children has the corresponding value. Available values are: ${t.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return r}let n=t.find(e=>e.default)??t[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:r,tabValues:s})),[b,v]=function(e){let{queryString:r=!1,groupId:t}=e,n=(0,l.k6)(),s=function(e){let{queryString:r=!1,groupId:t}=e;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!t)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:r,groupId:t}),i=(0,u._X)(s);return[i,(0,a.useCallback)(e=>{if(!s)return;let r=new URLSearchParams(n.location.search);r.set(s,e),n.replace({...n.location,search:r.toString()})},[s,n])]}({queryString:t,groupId:n}),[m,x]=function(e){var r;let{groupId:t}=e;let n=(r=t)?`docusaurus.tab.${r}`:null,[s,i]=(0,d.Nk)(n);return[s,(0,a.useCallback)(e=>{if(!!n)i.set(e)},[n,i])]}({groupId:n}),g=(()=>{let e=b??m;return h({value:e,tabValues:s})?e:null})();return(0,o.Z)(()=>{g&&f(g)},[g]),{selectedValue:i,selectValue:(0,a.useCallback)(e=>{if(!h({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);f(e),v(e),x(e)},[v,x,s]),tabValues:s}}(e);return(0,n.jsxs)("div",{className:(0,s.Z)("tabs-container",b),children:[(0,n.jsx)(m,{...r,...e}),(0,n.jsx)(x,{...r,...e})]})}function j(e){let r=(0,f.Z)();return(0,n.jsx)(g,{...e,children:p(e.children)},String(r))}},39661:function(e,r,t){t.d(r,{Z:function(){return o}});var n=t(85893);t(67294);var a=t(47902),s=t(5525),i=t(83012),l=t(45056);function o(e){let{pullRequest:r,branchSuffix:t}=e;return(0,n.jsxs)(a.Z,{children:[(0,n.jsxs)(s.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,n.jsx)(l.Z,{language:"console",children:`git switch exercises/${t}`}),(0,n.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${t}/Exercise.java`,children:(0,n.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,n.jsxs)(s.Z,{value:"solution",label:"Solution",children:[(0,n.jsx)(l.Z,{language:"console",children:`git switch solutions/${t}`}),(0,n.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${t}/Exercise.java`,children:(0,n.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,n.jsxs)(s.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,n.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${r}/files?diff=split`,children:["PR#",r]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2401.e5c4985b.js b/pr-preview/pr-238/assets/js/2401.e5c4985b.js new file mode 100644 index 0000000000..895333c7a9 --- /dev/null +++ b/pr-preview/pr-238/assets/js/2401.e5c4985b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2401"],{44909:function(e,r,a){a.d(r,{diagram:function(){return n}});var t=a(14050);a(57169),a(290),a(29660),a(37971),a(9833),a(30594),a(82612),a(41200),a(68394);var s=a(74146),n={parser:t.J8,db:t.bH,renderer:t._$,styles:t.Ee,init:(0,s.eW)(e=>{!e.state&&(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,t.bH.clear()},"init")}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2425.bf41f0f0.js b/pr-preview/pr-238/assets/js/2425.bf41f0f0.js new file mode 100644 index 0000000000..76852d90a7 --- /dev/null +++ b/pr-preview/pr-238/assets/js/2425.bf41f0f0.js @@ -0,0 +1,215 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2425"],{57169:function(t,e,s){s.d(e,{j:function(){return a},q:function(){return n}});var i=s(74146),r=s(27818),n=(0,i.eW)((t,e)=>{let s;return"sandbox"===e&&(s=(0,r.Ys)("#i"+t)),("sandbox"===e?(0,r.Ys)(s.nodes()[0].contentDocument.body):(0,r.Ys)("body")).select(`[id="${t}"]`)},"getDiagramElement"),a=(0,i.eW)((t,e,s,r)=>{t.attr("class",s);let{width:n,height:a,x:c,y:h}=o(t,e);(0,i.v2)(t,a,n,r);let d=l(c,h,n,a,e);t.attr("viewBox",d),i.cM.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),o=(0,i.eW)((t,e)=>{let s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x:s.x,y:s.y}},"calculateDimensionsWithPadding"),l=(0,i.eW)((t,e,s,i,r)=>`${t-r} ${e-r} ${s} ${i}`,"createViewBox")},14050:function(t,e,s){s.d(e,{Ee:function(){return tY},J8:function(){return l},_$:function(){return R},bH:function(){return tB}});var i=s(57169),r=s(290),n=s(68394),a=s(74146),o=function(){var t=(0,a.eW)(function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},"o"),e=[1,2],s=[1,3],i=[1,4],r=[2,4],n=[1,9],o=[1,11],l=[1,16],c=[1,17],h=[1,18],d=[1,19],u=[1,32],p=[1,20],y=[1,21],f=[1,22],g=[1,23],S=[1,24],m=[1,26],_=[1,27],b=[1,28],T=[1,29],k=[1,30],E=[1,31],x=[1,34],$=[1,35],C=[1,36],D=[1,37],v=[1,33],L=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],A=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],I=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],W={trace:(0,a.eW)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"--\x3e":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,style:42,STYLE_IDS:43,STYLEDEF_STYLEOPTS:44,class:45,CLASSENTITY_IDS:46,STYLECLASS:47,direction_tb:48,direction_bt:49,direction_rl:50,direction_lr:51,eol:52,";":53,EDGE_STATE:54,STYLE_SEPARATOR:55,left_of:56,right_of:57,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"--\x3e",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"style",43:"STYLE_IDS",44:"STYLEDEF_STYLEOPTS",45:"class",46:"CLASSENTITY_IDS",47:"STYLECLASS",48:"direction_tb",49:"direction_bt",50:"direction_rl",51:"direction_lr",53:";",54:"EDGE_STATE",55:"STYLE_SEPARATOR",56:"left_of",57:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[52,1],[52,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:(0,a.eW)(function(t,e,s,i,r,n,a){var o=n.length-1;switch(r){case 3:return i.setRootDoc(n[o]),n[o];case 4:this.$=[];break;case 5:"nl"!=n[o]&&(n[o-1].push(n[o]),this.$=n[o-1]);break;case 6:case 7:case 12:this.$=n[o];break;case 8:this.$="nl";break;case 13:let l=n[o-1];l.description=i.trimColon(n[o]),this.$=l;break;case 14:this.$={stmt:"relation",state1:n[o-2],state2:n[o]};break;case 15:let c=i.trimColon(n[o]);this.$={stmt:"relation",state1:n[o-3],state2:n[o-1],description:c};break;case 19:this.$={stmt:"state",id:n[o-3],type:"default",description:"",doc:n[o-1]};break;case 20:var h=n[o],d=n[o-2].trim();if(n[o].match(":")){var u=n[o].split(":");h=u[0],d=[d,u[1]]}this.$={stmt:"state",id:h,type:"default",description:d};break;case 21:this.$={stmt:"state",id:n[o-3],type:"default",description:n[o-5],doc:n[o-1]};break;case 22:this.$={stmt:"state",id:n[o],type:"fork"};break;case 23:this.$={stmt:"state",id:n[o],type:"join"};break;case 24:this.$={stmt:"state",id:n[o],type:"choice"};break;case 25:this.$={stmt:"state",id:i.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:n[o-1].trim(),note:{position:n[o-2].trim(),text:n[o].trim()}};break;case 29:this.$=n[o].trim(),i.setAccTitle(this.$);break;case 30:case 31:this.$=n[o].trim(),i.setAccDescription(this.$);break;case 32:case 33:this.$={stmt:"classDef",id:n[o-1].trim(),classes:n[o].trim()};break;case 34:this.$={stmt:"style",id:n[o-1].trim(),styleClass:n[o].trim()};break;case 35:this.$={stmt:"applyClass",id:n[o-1].trim(),styleClass:n[o].trim()};break;case 36:i.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 37:i.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 38:i.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 39:i.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 42:case 43:this.$={stmt:"state",id:n[o].trim(),type:"default",description:""};break;case 44:this.$={stmt:"state",id:n[o-2].trim(),classes:[n[o].trim()],type:"default",description:""};break;case 45:this.$={stmt:"state",id:n[o-2].trim(),classes:[n[o].trim()],type:"default",description:""}}},"anonymous"),table:[{3:1,4:e,5:s,6:i},{1:[3]},{3:5,4:e,5:s,6:i},{3:6,4:e,5:s,6:i},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],r,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:n,5:o,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,22:d,24:u,25:p,26:y,27:f,28:g,29:S,32:25,33:m,35:_,37:b,38:T,42:k,45:E,48:x,49:$,50:C,51:D,54:v},t(L,[2,5]),{9:38,10:12,11:13,12:14,13:15,16:l,17:c,19:h,22:d,24:u,25:p,26:y,27:f,28:g,29:S,32:25,33:m,35:_,37:b,38:T,42:k,45:E,48:x,49:$,50:C,51:D,54:v},t(L,[2,7]),t(L,[2,8]),t(L,[2,9]),t(L,[2,10]),t(L,[2,11]),t(L,[2,12],{14:[1,39],15:[1,40]}),t(L,[2,16]),{18:[1,41]},t(L,[2,18],{20:[1,42]}),{23:[1,43]},t(L,[2,22]),t(L,[2,23]),t(L,[2,24]),t(L,[2,25]),{30:44,31:[1,45],56:[1,46],57:[1,47]},t(L,[2,28]),{34:[1,48]},{36:[1,49]},t(L,[2,31]),{39:[1,50],41:[1,51]},{43:[1,52]},{46:[1,53]},t(A,[2,42],{55:[1,54]}),t(A,[2,43],{55:[1,55]}),t(L,[2,36]),t(L,[2,37]),t(L,[2,38]),t(L,[2,39]),t(L,[2,6]),t(L,[2,13]),{13:56,24:u,54:v},t(L,[2,17]),t(I,r,{7:57}),{24:[1,58]},{24:[1,59]},{23:[1,60]},{24:[2,46]},{24:[2,47]},t(L,[2,29]),t(L,[2,30]),{40:[1,61]},{40:[1,62]},{44:[1,63]},{47:[1,64]},{24:[1,65]},{24:[1,66]},t(L,[2,14],{14:[1,67]}),{4:n,5:o,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,21:[1,68],22:d,24:u,25:p,26:y,27:f,28:g,29:S,32:25,33:m,35:_,37:b,38:T,42:k,45:E,48:x,49:$,50:C,51:D,54:v},t(L,[2,20],{20:[1,69]}),{31:[1,70]},{24:[1,71]},t(L,[2,32]),t(L,[2,33]),t(L,[2,34]),t(L,[2,35]),t(A,[2,44]),t(A,[2,45]),t(L,[2,15]),t(L,[2,19]),t(I,r,{7:72}),t(L,[2,26]),t(L,[2,27]),{4:n,5:o,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,21:[1,73],22:d,24:u,25:p,26:y,27:f,28:g,29:S,32:25,33:m,35:_,37:b,38:T,42:k,45:E,48:x,49:$,50:C,51:D,54:v},t(L,[2,21])],defaultActions:{5:[2,1],6:[2,2],46:[2,46],47:[2,47]},parseError:(0,a.eW)(function(t,e){if(e.recoverable)this.trace(t);else{var s=Error(t);throw s.hash=e,s}},"parseError"),parse:(0,a.eW)(function(t){var e=this,s=[0],i=[],r=[null],n=[],o=this.table,l="",c=0,h=0,d=0,u=n.slice.call(arguments,1),p=Object.create(this.lexer),y={yy:{}};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(y.yy[f]=this.yy[f]);p.setInput(t,y.yy),y.yy.lexer=p,y.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var g=p.yylloc;n.push(g);var S=p.options&&p.options.ranges;"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function m(){var t;return"number"!=typeof(t=i.pop()||p.lex()||1)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}(0,a.eW)(function(t){s.length=s.length-2*t,r.length=r.length-t,n.length=n.length-t},"popStack"),(0,a.eW)(m,"lex");for(var _,b,T,k,E,x,$,C,D,v={};;){if(T=s[s.length-1],this.defaultActions[T]?k=this.defaultActions[T]:(null==_&&(_=m()),k=o[T]&&o[T][_]),void 0===k||!k.length||!k[0]){var L="";for(x in D=[],o[T])this.terminals_[x]&&x>2&&D.push("'"+this.terminals_[x]+"'");L=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+D.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==_?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(L,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:g,expected:D})}if(k[0]instanceof Array&&k.length>1)throw Error("Parse Error: multiple actions possible at state: "+T+", token: "+_);switch(k[0]){case 1:s.push(_),r.push(p.yytext),n.push(p.yylloc),s.push(k[1]),_=null,b?(_=b,b=null):(h=p.yyleng,l=p.yytext,c=p.yylineno,g=p.yylloc,d>0&&d--);break;case 2:if($=this.productions_[k[1]][1],v.$=r[r.length-$],v._$={first_line:n[n.length-($||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-($||1)].first_column,last_column:n[n.length-1].last_column},S&&(v._$.range=[n[n.length-($||1)].range[0],n[n.length-1].range[1]]),void 0!==(E=this.performAction.apply(v,[l,h,c,y.yy,k[1],r,n].concat(u))))return E;$&&(s=s.slice(0,-1*$*2),r=r.slice(0,-1*$),n=n.slice(0,-1*$)),s.push(this.productions_[k[1]][0]),r.push(v.$),n.push(v._$),C=o[s[s.length-2]][s[s.length-1]],s.push(C);break;case 3:return!0}}return!0},"parse")},w={EOF:1,parseError:(0,a.eW)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,a.eW)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,a.eW)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,a.eW)(function(t){var e=t.length,s=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,a.eW)(function(){return this._more=!0,this},"more"),reject:(0,a.eW)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,a.eW)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,a.eW)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,a.eW)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,a.eW)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,a.eW)(function(t,e){var s,i,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack)for(var n in r)this[n]=r[n];return!1},"test_match"),next:(0,a.eW)(function(){if(this.done)return this.EOF;!this._input&&(this.done=!0),!this._more&&(this.yytext="",this.match="");for(var t,e,s,i,r=this._currentRules(),n=0;ne[0].length)){if(e=s,i=n,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,r[n])))return t;if(!this._backtrack)return!1;else{e=!1;continue}}if(!this.options.flex)break}if(e)return!1!==(t=this.test_match(e,r[i]))&&t;return""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,a.eW)(function(){var t=this.next();return t?t:this.lex()},"lex"),begin:(0,a.eW)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,a.eW)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,a.eW)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,a.eW)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,a.eW)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,a.eW)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,a.eW)(function(t,e,s,i){switch(s){case 0:return 41;case 1:case 42:return 48;case 2:case 43:return 49;case 3:case 44:return 50;case 4:case 45:return 51;case 5:case 6:case 8:case 9:case 10:case 11:case 54:case 56:case 62:break;case 7:case 77:return 5;case 12:case 32:return this.pushState("SCALE"),17;case 13:case 33:return 18;case 14:case 20:case 34:case 49:case 52:this.popState();break;case 15:return this.begin("acc_title"),33;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),35;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),38;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),39;case 25:return this.popState(),40;case 26:return this.pushState("CLASS"),45;case 27:return this.popState(),this.pushState("CLASS_STYLE"),46;case 28:return this.popState(),47;case 29:return this.pushState("STYLE"),42;case 30:return this.popState(),this.pushState("STYLEDEF_STYLES"),43;case 31:return this.popState(),44;case 35:this.pushState("STATE");break;case 36:case 39:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),25;case 37:case 40:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),26;case 38:case 41:return this.popState(),e.yytext=e.yytext.slice(0,-10).trim(),27;case 46:this.pushState("STATE_STRING");break;case 47:return this.pushState("STATE_ID"),"AS";case 48:case 64:return this.popState(),"ID";case 50:return"STATE_DESCR";case 51:return 19;case 53:return this.popState(),this.pushState("struct"),20;case 55:return this.popState(),21;case 57:return this.begin("NOTE"),29;case 58:return this.popState(),this.pushState("NOTE_ID"),56;case 59:return this.popState(),this.pushState("NOTE_ID"),57;case 60:this.popState(),this.pushState("FLOATING_NOTE");break;case 61:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 63:return"NOTE_TEXT";case 65:return this.popState(),this.pushState("NOTE_TEXT"),24;case 66:return this.popState(),e.yytext=e.yytext.substr(2).trim(),31;case 67:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),31;case 68:case 69:return 6;case 70:return 16;case 71:return 54;case 72:return 24;case 73:return e.yytext=e.yytext.trim(),14;case 74:return 15;case 75:return 28;case 76:return 55;case 78:return"INVALID"}},"anonymous"),rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,29,35,42,43,44,45,54,55,56,57,71,72,73,74,75],inclusive:!1},FLOATING_NOTE_ID:{rules:[64],inclusive:!1},FLOATING_NOTE:{rules:[61,62,63],inclusive:!1},NOTE_TEXT:{rules:[66,67],inclusive:!1},NOTE_ID:{rules:[65],inclusive:!1},NOTE:{rules:[58,59,60],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[31],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[30],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,33,34],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[48],inclusive:!1},STATE_STRING:{rules:[49,50],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,36,37,38,39,40,41,46,47,51,52,53],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,35,53,57,68,69,70,71,72,73,74,76,77,78],inclusive:!0}}};function O(){this.yy={}}return W.lexer=w,(0,a.eW)(O,"Parser"),O.prototype=W,W.Parser=O,new O}();o.parser=o;var l=o,c="TB",h="state",d="relation",u="default",p="divider",y="fill:none",f="fill: #333",g="text",S="normal",m="rect",_="rectWithTitle",b="divider",T="roundedWithTitle",k="statediagram",E=`${k}-state`,x="transition",$=`${x} note-edge`,C=`${k}-note`,D=`${k}-cluster`,v=`${k}-cluster-alt`,L="parent",A="note",I="----",W=`${I}${A}`,w=`${I}${L}`,O=(0,a.eW)((t,e=c)=>{if(!t.doc)return e;let s=e;for(let e of t.doc)"dir"===e.stmt&&(s=e.value);return s},"getDir"),N=(0,a.eW)(function(t,e){return e.db.extract(e.db.getRootDocV2()),e.db.getClasses()},"getClasses"),R={getClasses:N,draw:(0,a.eW)(async function(t,e,s,o){a.cM.info("REF0:"),a.cM.info("Drawing state diagram (v2)",e);let{securityLevel:l,state:c,layout:h}=(0,a.nV)();o.db.extract(o.db.getRootDocV2());let d=o.db.getData(),u=(0,i.q)(e,l);d.type=o.type,d.layoutAlgorithm=h,d.nodeSpacing=c?.nodeSpacing||50,d.rankSpacing=c?.rankSpacing||50,d.markers=["barb"],d.diagramId=e,await (0,r.sY)(d,u);n.w8.insertTitle(u,"statediagramTitleText",c?.titleTopMargin??25,o.db.getDiagramTitle()),(0,i.j)(u,8,k,c?.useMaxWidth??!0)},"draw"),getDir:O},B=new Map,Y=0;function F(t="",e=0,s="",i=I){let r=null!==s&&s.length>0?`${i}${s}`:"";return`state-${t}${r}-${e}`}(0,a.eW)(F,"stateDomId");var P=(0,a.eW)((t,e,s,i,r,n,o,l)=>{a.cM.trace("items",e),e.forEach(e=>{switch(e.stmt){case h:case u:z(t,e,s,i,r,n,o,l);break;case d:{z(t,e.state1,s,i,r,n,o,l),z(t,e.state2,s,i,r,n,o,l);let c={id:"edge"+Y,start:e.state1.id,end:e.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:y,labelStyle:"",label:a.SY.sanitizeText(e.description,(0,a.nV)()),arrowheadStyle:f,labelpos:"c",labelType:g,thickness:S,classes:x,look:o};r.push(c),Y++}}})},"setupDoc"),M=(0,a.eW)((t,e=c)=>{let s=e;if(t.doc)for(let e of t.doc)"dir"===e.stmt&&(s=e.value);return s},"getDir");function G(t,e,s){if(!e.id||""===e.id||""===e.id)return;e.cssClasses&&(!Array.isArray(e.cssCompiledStyles)&&(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach(t=>{if(s.get(t)){let i=s.get(t);e.cssCompiledStyles=[...e.cssCompiledStyles,...i.styles]}}));let i=t.find(t=>t.id===e.id);i?Object.assign(i,e):t.push(e)}function j(t){return t?.classes?.join(" ")??""}function V(t){return t?.styles??[]}(0,a.eW)(G,"insertOrUpdateNode"),(0,a.eW)(j,"getClassesFromDbInfo"),(0,a.eW)(V,"getStylesFromDbInfo");var z=(0,a.eW)((t,e,s,i,r,n,o,l)=>{let c=e.id,h=s.get(c),d=j(h),k=V(h);if(a.cM.info("dataFetcher parsedItem",e,h,k),"root"!==c){let s=m;!0===e.start?s="stateStart":!1===e.start&&(s="stateEnd"),e.type!==u&&(s=e.type),!B.get(c)&&B.set(c,{id:c,shape:s,description:a.SY.sanitizeText(c,(0,a.nV)()),cssClasses:`${d} ${E}`,cssStyles:k});let h=B.get(c);e.description&&(Array.isArray(h.description)?(h.shape=_,h.description.push(e.description)):h.description?.length>0?(h.shape=_,h.description===c?h.description=[e.description]:h.description=[h.description,e.description]):(h.shape=m,h.description=e.description),h.description=a.SY.sanitizeTextOrArray(h.description,(0,a.nV)())),h.description?.length===1&&h.shape===_&&("group"===h.type?h.shape=T:h.shape=m),!h.type&&e.doc&&(a.cM.info("Setting cluster for XCX",c,M(e)),h.type="group",h.isGroup=!0,h.dir=M(e),h.shape=e.type===p?b:T,h.cssClasses=`${h.cssClasses} ${D} ${n?v:""}`);let x={labelStyle:"",shape:h.shape,label:h.description,cssClasses:h.cssClasses,cssCompiledStyles:[],cssStyles:h.cssStyles,id:c,dir:h.dir,domId:F(c,Y),type:h.type,isGroup:"group"===h.type,padding:8,rx:10,ry:10,look:o};if(x.shape===b&&(x.label=""),t&&"root"!==t.id&&(a.cM.trace("Setting node ",c," to be child of its parent ",t.id),x.parentId=t.id),x.centerLabel=!0,e.note){let t={labelStyle:"",shape:"note",label:e.note.text,cssClasses:C,cssStyles:[],cssCompilesStyles:[],id:c+W+"-"+Y,domId:F(c,Y,A),type:h.type,isGroup:"group"===h.type,padding:(0,a.nV)().flowchart.padding,look:o,position:e.note.position},s=c+w,n={labelStyle:"",shape:"noteGroup",label:e.note.text,cssClasses:h.cssClasses,cssStyles:[],id:c+w,domId:F(c,Y,L),type:"group",isGroup:!0,padding:16,look:o,position:e.note.position};Y++,n.id=s,t.parentId=s,G(i,n,l),G(i,t,l),G(i,x,l);let d=c,u=t.id;"left of"===e.note.position&&(d=t.id,u=c),r.push({id:d+"-"+u,start:d,end:u,arrowhead:"none",arrowTypeEnd:"",style:y,labelStyle:"",classes:$,arrowheadStyle:f,labelpos:"c",labelType:g,thickness:S,look:o})}else G(i,x,l)}e.doc&&(a.cM.trace("Adding nodes children "),P(e,e.doc,s,i,r,!n,o,l))},"dataFetcher"),U=(0,a.eW)(()=>{B.clear(),Y=0},"reset"),H="start",X="color",J="fill";function K(){return new Map}(0,a.eW)(K,"newClassesList");var q=[],Z=[],Q="LR",tt=[],te=K(),ts=(0,a.eW)(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),ti={root:ts()},tr=ti.root,tn=0,ta=0,to=(0,a.eW)(t=>JSON.parse(JSON.stringify(t)),"clone"),tl=(0,a.eW)(t=>{a.cM.info("Setting root doc",t),tt=t},"setRootDoc"),tc=(0,a.eW)(()=>tt,"getRootDoc"),th=(0,a.eW)((t,e,s)=>{if(e.stmt===d)th(t,e.state1,!0),th(t,e.state2,!1);else if(e.stmt===h&&("[*]"===e.id?(e.id=s?t.id+"_start":t.id+"_end",e.start=s):e.id=e.id.trim()),e.doc){let t;let s=[],i=[];for(t=0;t0&&i.length>0){let t={stmt:h,id:(0,n.Ox)(),type:"divider",doc:to(i)};s.push(to(t)),e.doc=s}e.doc.forEach(t=>th(e,t,!0))}},"docTranslator"),td=(0,a.eW)(()=>(th({id:"root"},{id:"root",doc:tt},!0),{id:"root",doc:tt}),"getRootDocV2"),tu=(0,a.eW)(t=>{let e;e=t.doc?t.doc:t,a.cM.info(e),ty(!0),a.cM.info("Extract initial document:",e),e.forEach(t=>{switch(a.cM.warn("Statement",t.stmt),t.stmt){case h:tp(t.id.trim(),t.type,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles);break;case d:tx(t.state1,t.state2,t.description);break;case"classDef":tv(t.id.trim(),t.classes);break;case"style":{let e=t.id.trim().split(","),s=t.styleClass.split(",");e.forEach(t=>{let e=tf(t);if(void 0===e){let s=t.trim();tp(s),e=tf(s)}e.styles=s.map(t=>t.replace(/;/g,"")?.trim())})}break;case"applyClass":tA(t.id.trim(),t.styleClass)}});let s=tg(),i=(0,a.nV)().look;U(),z(void 0,td(),s,q,Z,!0,i,te),q.forEach(t=>{if(Array.isArray(t.label)){if(t.description=t.label.slice(1),t.isGroup&&t.description.length>0)throw Error("Group nodes can only have label. Remove the additional description for node ["+t.id+"]");t.label=t.label[0]}})},"extract"),tp=(0,a.eW)(function(t,e=u,s=null,i=null,r=null,n=null,o=null,l=null){let c=t?.trim();if(tr.states.has(c)?(!tr.states.get(c).doc&&(tr.states.get(c).doc=s),!tr.states.get(c).type&&(tr.states.get(c).type=e)):(a.cM.info("Adding state ",c,i),tr.states.set(c,{id:c,descriptions:[],type:e,doc:s,note:r,classes:[],styles:[],textStyles:[]})),i&&(a.cM.info("Setting state description",c,i),"string"==typeof i&&t$(c,i.trim()),"object"==typeof i&&i.forEach(t=>t$(c,t.trim()))),r){let t=tr.states.get(c);t.note=r,t.note.text=a.SY.sanitizeText(t.note.text,(0,a.nV)())}if(n&&(a.cM.info("Setting state classes",c,n),("string"==typeof n?[n]:n).forEach(t=>tA(c,t.trim()))),o&&(a.cM.info("Setting state styles",c,o),("string"==typeof o?[o]:o).forEach(t=>tI(c,t.trim()))),l){a.cM.info("Setting state styles",c,o);("string"==typeof l?[l]:l).forEach(t=>tW(c,t.trim()))}},"addState"),ty=(0,a.eW)(function(t){q=[],Z=[],tr=(ti={root:ts()}).root,tn=0,te=K(),!t&&(0,a.ZH)()},"clear"),tf=(0,a.eW)(function(t){return tr.states.get(t)},"getState"),tg=(0,a.eW)(function(){return tr.states},"getStates"),tS=(0,a.eW)(function(){a.cM.info("Documents = ",ti)},"logDocuments"),tm=(0,a.eW)(function(){return tr.relations},"getRelations");function t_(t=""){let e=t;return"[*]"===t&&(tn++,e=`${H}${tn}`),e}function tb(t="",e=u){return"[*]"===t?H:e}function tT(t=""){let e=t;return"[*]"===t&&(tn++,e=`end${tn}`),e}function tk(t="",e=u){return"[*]"===t?"end":e}function tE(t,e,s){let i=t_(t.id.trim()),r=tb(t.id.trim(),t.type),n=t_(e.id.trim()),o=tb(e.id.trim(),e.type);tp(i,r,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),tp(n,o,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),tr.relations.push({id1:i,id2:n,relationTitle:a.SY.sanitizeText(s,(0,a.nV)())})}(0,a.eW)(t_,"startIdIfNeeded"),(0,a.eW)(tb,"startTypeIfNeeded"),(0,a.eW)(tT,"endIdIfNeeded"),(0,a.eW)(tk,"endTypeIfNeeded"),(0,a.eW)(tE,"addRelationObjs");var tx=(0,a.eW)(function(t,e,s){if("object"==typeof t)tE(t,e,s);else{let i=t_(t.trim()),r=tb(t),n=tT(e.trim()),o=tk(e);tp(i,r),tp(n,o),tr.relations.push({id1:i,id2:n,title:a.SY.sanitizeText(s,(0,a.nV)())})}},"addRelation"),t$=(0,a.eW)(function(t,e){let s=tr.states.get(t),i=e.startsWith(":")?e.replace(":","").trim():e;s.descriptions.push(a.SY.sanitizeText(i,(0,a.nV)()))},"addDescription"),tC=(0,a.eW)(function(t){return":"===t.substring(0,1)?t.substr(2).trim():t.trim()},"cleanupLabel"),tD=(0,a.eW)(()=>"divider-id-"+ ++ta,"getDividerId"),tv=(0,a.eW)(function(t,e=""){!te.has(t)&&te.set(t,{id:t,styles:[],textStyles:[]});let s=te.get(t);null!=e&&e.split(",").forEach(t=>{let e=t.replace(/([^;]*);/,"$1").trim();if(RegExp(X).exec(t)){let t=e.replace(J,"bgFill").replace(X,J);s.textStyles.push(t)}s.styles.push(e)})},"addStyleClass"),tL=(0,a.eW)(function(){return te},"getClasses"),tA=(0,a.eW)(function(t,e){t.split(",").forEach(function(t){let s=tf(t);if(void 0===s){let e=t.trim();tp(e),s=tf(e)}s.classes.push(e)})},"setCssClass"),tI=(0,a.eW)(function(t,e){let s=tf(t);void 0!==s&&s.styles.push(e)},"setStyle"),tW=(0,a.eW)(function(t,e){let s=tf(t);void 0!==s&&s.textStyles.push(e)},"setTextStyle"),tw=(0,a.eW)(()=>Q,"getDirection"),tO=(0,a.eW)(t=>{Q=t},"setDirection"),tN=(0,a.eW)(t=>t&&":"===t[0]?t.substr(1).trim():t.trim(),"trimColon"),tR=(0,a.eW)(()=>{let t=(0,a.nV)();return{nodes:q,edges:Z,other:{},config:t,direction:O(td())}},"getData"),tB={getConfig:(0,a.eW)(()=>(0,a.nV)().state,"getConfig"),getData:tR,addState:tp,clear:ty,getState:tf,getStates:tg,getRelations:tm,getClasses:tL,getDirection:tw,addRelation:tx,getDividerId:tD,setDirection:tO,cleanupLabel:tC,lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},logDocuments:tS,getRootDoc:tc,setRootDoc:tl,getRootDocV2:td,extract:tu,trimColon:tN,getAccTitle:a.eu,setAccTitle:a.GN,getAccDescription:a.Mx,setAccDescription:a.U$,addStyleClass:tv,setCssClass:tA,addDescription:t$,setDiagramTitle:a.g2,getDiagramTitle:a.Kr},tY=(0,a.eW)(t=>` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor||t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor||t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground||t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg||t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; + // line-height: 1; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder||t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground||t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,"getStyles")}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/248e9f76.d7fed24a.js b/pr-preview/pr-238/assets/js/248e9f76.d7fed24a.js new file mode 100644 index 0000000000..a075b08117 --- /dev/null +++ b/pr-preview/pr-238/assets/js/248e9f76.d7fed24a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["724"],{88063:function(e,t,r){r.r(t),r.d(t,{metadata:()=>a,contentTitle:()=>u,default:()=>h,assets:()=>o,toc:()=>c,frontMatter:()=>l});var a=JSON.parse('{"id":"exercises/lambdas/lambdas03","title":"Lambdas03","description":"","source":"@site/docs/exercises/lambdas/lambdas03.mdx","sourceDirName":"exercises/lambdas","slug":"/exercises/lambdas/lambdas03","permalink":"/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas03","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/lambdas/lambdas03.mdx","tags":[],"version":"current","frontMatter":{"title":"Lambdas03","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Lambdas02","permalink":"/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas02"},"next":{"title":"Lambdas04","permalink":"/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas04"}}'),n=r("85893"),s=r("50065"),i=r("39661");let l={title:"Lambdas03",description:""},u=void 0,o={},c=[];function d(e){let t={a:"a",code:"code",li:"li",ul:"ul",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Passe die Klasse ",(0,n.jsx)(t.code,{children:"FilteredStudents"})," so an, dass Verwender der Klasse selber\nentscheiden k\xf6nnen, wie die Studentenliste verarbeitet werden soll. Ersetze\nhierzu die Methode ",(0,n.jsx)(t.code,{children:"void printStudents()"})," durch die Methode\n",(0,n.jsx)(t.code,{children:"void forEach(consumer: Consumer)"}),". Implementiere in der Methode eine\nSchleife, in der f\xfcr jeden Studenten die Methode ",(0,n.jsx)(t.code,{children:"void accept(t: T)"})," des\neingehenden Verwenders aufgerufen wird"]}),"\n",(0,n.jsxs)(t.li,{children:["Passe die ausf\xfchrbare Klasse aus \xdcbungsaufgabe ",(0,n.jsx)(t.a,{href:"lambdas02",children:"Lambdas02"})," so an,\ndass vollj\xe4hrige Studenten in Gro\xdfbuchstaben und minderj\xe4hrige Studenten in\nKleinbuchstaben auf der Konsole ausgegeben werden"]}),"\n"]}),"\n",(0,n.jsx)(i.Z,{pullRequest:"69",branchSuffix:"lambdas/03"})]})}function h(e={}){let{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},5525:function(e,t,r){r.d(t,{Z:()=>i});var a=r("85893");r("67294");var n=r("67026");let s="tabItem_Ymn6";function i(e){let{children:t,hidden:r,className:i}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,n.Z)(s,i),hidden:r,children:t})}},47902:function(e,t,r){r.d(t,{Z:()=>g});var a=r("85893"),n=r("67294"),s=r("67026"),i=r("69599"),l=r("16550"),u=r("32000"),o=r("4520"),c=r("38341"),d=r("76009");function h(e){return n.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||n.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function p(e){let{value:t,tabValues:r}=e;return r.some(e=>e.value===t)}var b=r("7227");let m="tabList__CuJ",f="tabItem_LNqP";function v(e){let{className:t,block:r,selectedValue:n,selectValue:l,tabValues:u}=e,o=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.o5)(),d=e=>{let t=e.currentTarget,r=u[o.indexOf(t)].value;r!==n&&(c(t),l(r))},h=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let r=o.indexOf(e.currentTarget)+1;t=o[r]??o[0];break}case"ArrowLeft":{let r=o.indexOf(e.currentTarget)-1;t=o[r]??o[o.length-1]}}t?.focus()};return(0,a.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":r},t),children:u.map(e=>{let{value:t,label:r,attributes:i}=e;return(0,a.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>o.push(e),onKeyDown:h,onClick:d,...i,className:(0,s.Z)("tabs__item",f,i?.className,{"tabs__item--active":n===t}),children:r??t},t)})})}function x(e){let{lazy:t,children:r,selectedValue:i}=e,l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){let e=l.find(e=>e.props.value===i);return e?(0,n.cloneElement)(e,{className:(0,s.Z)("margin-top--md",e.props.className)}):null}return(0,a.jsx)("div",{className:"margin-top--md",children:l.map((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==i}))})}function j(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:a}=e,s=function(e){let{values:t,children:r}=e;return(0,n.useMemo)(()=>{let e=t??h(r).map(e=>{let{props:{value:t,label:r,attributes:a,default:n}}=e;return{value:t,label:r,attributes:a,default:n}});return!function(e){let t=(0,c.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[t,r])}(e),[i,b]=(0,n.useState)(()=>(function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(t){if(!p({value:t,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let a=r.find(e=>e.default)??r[0];if(!a)throw Error("Unexpected error: 0 tabValues");return a.value})({defaultValue:t,tabValues:s})),[m,f]=function(e){let{queryString:t=!1,groupId:r}=e,a=(0,l.k6)(),s=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r}),i=(0,o._X)(s);return[i,(0,n.useCallback)(e=>{if(!s)return;let t=new URLSearchParams(a.location.search);t.set(s,e),a.replace({...a.location,search:t.toString()})},[s,a])]}({queryString:r,groupId:a}),[v,x]=function(e){var t;let{groupId:r}=e;let a=(t=r)?`docusaurus.tab.${t}`:null,[s,i]=(0,d.Nk)(a);return[s,(0,n.useCallback)(e=>{if(!!a)i.set(e)},[a,i])]}({groupId:a}),j=(()=>{let e=m??v;return p({value:e,tabValues:s})?e:null})();return(0,u.Z)(()=>{j&&b(j)},[j]),{selectedValue:i,selectValue:(0,n.useCallback)(e=>{if(!p({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);b(e),f(e),x(e)},[f,x,s]),tabValues:s}}(e);return(0,a.jsxs)("div",{className:(0,s.Z)("tabs-container",m),children:[(0,a.jsx)(v,{...t,...e}),(0,a.jsx)(x,{...t,...e})]})}function g(e){let t=(0,b.Z)();return(0,a.jsx)(j,{...e,children:h(e.children)},String(t))}},39661:function(e,t,r){r.d(t,{Z:function(){return u}});var a=r(85893);r(67294);var n=r(47902),s=r(5525),i=r(83012),l=r(45056);function u(e){let{pullRequest:t,branchSuffix:r}=e;return(0,a.jsxs)(n.Z,{children:[(0,a.jsxs)(s.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,a.jsx)(l.Z,{language:"console",children:`git switch exercises/${r}`}),(0,a.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${r}/Exercise.java`,children:(0,a.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,a.jsxs)(s.Z,{value:"solution",label:"Solution",children:[(0,a.jsx)(l.Z,{language:"console",children:`git switch solutions/${r}`}),(0,a.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${r}/Exercise.java`,children:(0,a.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,a.jsxs)(s.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,a.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${t}/files?diff=split`,children:["PR#",t]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/25336484.c2d665de.js b/pr-preview/pr-238/assets/js/25336484.c2d665de.js new file mode 100644 index 0000000000..65ec8a10a6 --- /dev/null +++ b/pr-preview/pr-238/assets/js/25336484.c2d665de.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4062"],{46294:function(e,n,i){i.r(n),i.d(n,{metadata:()=>s,contentTitle:()=>t,default:()=>u,assets:()=>d,toc:()=>o,frontMatter:()=>l});var s=JSON.parse('{"id":"additional-material/steffen/java-1/exam-preparation/2023","title":"2023","description":"","source":"@site/docs/additional-material/steffen/java-1/exam-preparation/2023.mdx","sourceDirName":"additional-material/steffen/java-1/exam-preparation","slug":"/additional-material/steffen/java-1/exam-preparation/2023","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/2023","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/additional-material/steffen/java-1/exam-preparation/2023.mdx","tags":[],"version":"current","sidebarPosition":100,"frontMatter":{"title":"2023","description":"","sidebar_position":100,"tags":[]},"sidebar":"additionalMaterialSidebar","previous":{"title":"2024","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/2024"},"next":{"title":"Java 2","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/"}}'),r=i("85893"),a=i("50065");let l={title:2023,description:"",sidebar_position:100,tags:[]},t=void 0,d={},o=[{value:"Aufgabe 1",id:"aufgabe-1",level:2},{value:"Aufgabe 2",id:"aufgabe-2",level:2},{value:"Aufgabe 3",id:"aufgabe-3",level:2},{value:"Hinweise zur Klasse ExamTask02",id:"hinweise-zur-klasse-examtask02",level:3},{value:"Hinweise zur Klasse Present",id:"hinweise-zur-klasse-present",level:3},{value:"Hinweise zur Klasse GiftBag",id:"hinweise-zur-klasse-giftbag",level:3},{value:"Aufgabe 4",id:"aufgabe-4",level:2},{value:"Hinweise zur Klasse Circle",id:"hinweise-zur-klasse-circle",level:3},{value:"Hinweise zur Klasse ShapeReader",id:"hinweise-zur-klasse-shapereader",level:3},{value:"Aufgabe 5",id:"aufgabe-5",level:2},{value:"Hinweise zur Methode split",id:"hinweise-zur-methode-split",level:3},{value:"Hinweise zur Methode main",id:"hinweise-zur-methode-main",level:3},{value:"Aufgabe 6",id:"aufgabe-6",level:2},{value:"Hinweise zur Klasse OverflowException",id:"hinweise-zur-klasse-overflowexception",level:3},{value:"Hinweise zur Klasse Barrel",id:"hinweise-zur-klasse-barrel",level:3},{value:"Hinweise zur Klasse ExamTask06",id:"hinweise-zur-klasse-examtask06",level:3},{value:"Aufgabe 7",id:"aufgabe-7",level:2},{value:"Hinweise zur Klasse EnergySource",id:"hinweise-zur-klasse-energysource",level:3},{value:"Hinweise zur Klasse Phone",id:"hinweise-zur-klasse-phone",level:3},{value:"Hinweise zur Klasse CablePhone",id:"hinweise-zur-klasse-cablephone",level:3},{value:"Hinweise zur Klasse SmartPhone",id:"hinweise-zur-klasse-smartphone",level:3},{value:"Hinweise zur Klasse ExamTask04",id:"hinweise-zur-klasse-examtask04",level:3},{value:"Aufgabe 8",id:"aufgabe-8",level:2},{value:"Hinweise zur Klasse CarVendor",id:"hinweise-zur-klasse-carvendor",level:3},{value:"Hinweise zur Klasse ConstructionYearComparator",id:"hinweise-zur-klasse-constructionyearcomparator",level:3}];function c(e){let n={code:"code",h2:"h2",h3:"h3",li:"li",mermaid:"mermaid",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"aufgabe-1",children:"Aufgabe 1"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-java",children:'public class ExamTask01 {\n public static void a() {\n String s = "Programmierung";\n char c = s.charAt(s.length() - 3);\n int x = 0b1010010;\n double d = 0.9;\n int y = 2 * (int) d;\n System.out.println("c: " + c);\n System.out.println("x: " + x);\n System.out.println("y: " + y);\n }\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["Welche Konsolenausgabe erzeugt die Methode ",(0,r.jsx)(n.strong,{children:"a"})," der Klasse ",(0,r.jsx)(n.strong,{children:"ExamTask01"}),"?"]}),"\n",(0,r.jsx)(n.h2,{id:"aufgabe-2",children:"Aufgabe 2"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-java",children:'public class ExamTask02 {\n public static void b() {\n String[] values = {"RO", "ER"};\n boolean x = true;\n int i = 3, j = 5, k = 4;\n int index = ++i % 2 == 0 ? 0 : 1;\n j -= x || ++k == 5 ? 5 : 0;\n System.out.println(values[1] + values[index] + "R " + i + "" + j + "" + k);\n }\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["Welche Konsolenausgabe erzeugt die Methode ",(0,r.jsx)(n.strong,{children:"b"})," der Klasse ",(0,r.jsx)(n.strong,{children:"ExamTask02"}),"?"]}),"\n",(0,r.jsx)(n.h2,{id:"aufgabe-3",children:"Aufgabe 3"}),"\n",(0,r.jsxs)(n.p,{children:["Erstelle die Klassen ",(0,r.jsx)(n.strong,{children:"Present"})," (9 Punkte), ",(0,r.jsx)(n.strong,{children:"GiftBag"})," (7 Punkte) und\n",(0,r.jsx)(n.strong,{children:"ExamTask02"})," (4 Punkte) anhand des abgebildeten Klassendiagramms."]}),"\n",(0,r.jsx)(n.mermaid,{value:"classDiagram\n GiftBag o-- Present\n Present o-- Person\n\n class Person {\n -name String\n -age int\n -gender char\n\n +Person(name: String, age: int, gender: char)\n +getName() String\n +getAge() int\n +getGender() char\n }\n\n class Present {\n -description String { final }\n -price double { final }\n -sender Person { final }\n -recipient Person { final }\n\n +Present(description: String, price: double, sender: Person, recipient: Person)\n +getDescription() String\n +getPrice() double\n +getSender() Person\n +getRecipient() Person\n +toString() String\n }\n\n class GiftBag {\n -presents ArrayList~Present~ { final }\n\n +GiftBag()\n +addPresent(present: Present) void\n +getMostExpensivePresent() Present\n }\n\n class ExamTask03 {\n +main(args: String[])$ void\n }\n"}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-examtask02",children:"Hinweise zur Klasse ExamTask02"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Erzeuge einen Geschenkesack (GiftBag) mit zwei unterschiedlichen Geschenken\n(Present) f\xfcr ein und dieselbe Person (Person)."}),"\n",(0,r.jsx)(n.li,{children:"Gib anschlie\xdfend das teuerste Geschenk des Geschenkesacks auf der Konsole aus"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Beispielhafte Konsolenausgabe:"}),"\n",(0,r.jsx)(n.code,{children:"Present[description=PS5, price=499.0, sender=Hans, recipient=Lisa]"})]}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-present",children:"Hinweise zur Klasse Present"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Der Konstruktor soll alle Attribute initialisieren"}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"toString"})," soll alle Attribute in nachfolgender Form\nzur\xfcckgeben.\n",(0,r.jsx)(n.code,{children:"Present [description=[Beschreibung], price=[Preis], sender=[Name des Senders], recipient=[Name des Empf\xe4ngers]]"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-giftbag",children:"Hinweise zur Klasse GiftBag"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Der Konstruktor soll alle Attribute initialisieren"}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"addPresent"})," soll dem Geschenkesack (Giftbag) das eingehende\nGeschenk (Present) hinzuf\xfcgen."]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"getMostExpensivePresent"})," soll das teuerste Geschenk\nzur\xfcckgeben."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"aufgabe-4",children:"Aufgabe 4"}),"\n",(0,r.jsxs)(n.p,{children:["Erstelle die Klassen ",(0,r.jsx)(n.strong,{children:"Circle"})," (6 Punkte) und ",(0,r.jsx)(n.strong,{children:"ShapeReader"})," (14 Punkte)\nanhand des abgebildeten Klassendiagramms."]}),"\n",(0,r.jsx)(n.mermaid,{value:"classDiagram\n Shape --o ShapeReader\n Circle --|> Shape : extends\n Rectangle --|> Shape : extends\n\n class Shape {\n +getArea() double\n +getCircumference() double\n }\n\n class Circle {\n -r double { final }\n\n +Circle(r: double)\n +getR() double\n +getArea() double\n +getCircumference() double\n +toString() String\n }\n\n class Rectangle {\n -a double { final }\n -b double { final }\n\n +Rectangle(a: double, b: double)\n +getA() double\n +getB() double\n +getArea() double\n +getCircumference() double\n +toString() String\n }\n\n class ShapeReader {\n -shapes ArrayList~Shape~ { final }\n\n +ShapeReader(elements: String[])\n +getCircles() ArrayList~Circle~\n +getShapes() ArrayList~Shape~\n +getShapes(minArea: double) ArrayList~Shape~\n }"}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-circle",children:"Hinweise zur Klasse Circle"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Der Konstruktor soll alle Attribute initialisieren"}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"getArea"})," soll den Fl\xe4cheninhalt eines Kreises (\u03C0r\xb2) zur\xfcckgeben"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"getCircumference"})," soll den Umfang eines Kreises (2\u03C0r)\nzur\xfcckgeben"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"toString"})," soll alle Attribute in nachfolgender Form\nzur\xfcckgeben. ",(0,r.jsx)(n.code,{children:"Circle [r=[Wert von r]]"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-shapereader",children:"Hinweise zur Klasse ShapeReader"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Der Konstruktor soll f\xfcr jedes Element des eingehenden Arrays ein Objekt der\nKlasse Circle oder Rectangle erzeugen und der Formenliste (shapes) hinzugef\xfcgt\nwerden."}),"\n",(0,r.jsx)(n.p,{children:"Die Elemente des eingehenden Arrays haben folgende Struktur:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-text",children:"Circle;2\nRectangle;1;4\nCircle;1\nCircle;6\nRectangle;2;2\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"getCircles"})," soll alle Kreise (Circle) der Formenliste (shapes)\nals Liste zur\xfcckgeben."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"getShape"})," soll den spezifischen Konstruktor ",(0,r.jsx)(n.strong,{children:"getShape(minArea:\ndouble)"})," aufrufen und alle Formen (Shape) zur\xfcckgeben."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"getShape(minArea: double)"})," soll alle Formen mit einem\nFl\xe4cheninhalt der gr\xf6\xdfer oder gleich dem eingehenden Fl\xe4cheninhalt (minArea)\nist als Liste zur\xfcckgeben."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"aufgabe-5",children:"Aufgabe 5"}),"\n",(0,r.jsx)(n.mermaid,{value:"classDiagram\n class ExamTask {\n +main(args: String[])$ void\n +split(numbers: int[], index: int)$ void\n }"}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-methode-split",children:"Hinweise zur Methode split"}),"\n",(0,r.jsxs)(n.p,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"split"})," soll ein Array vom Typ int so verarbeiten, dass ein neues\nArray erstellt wird, was alle Elemente des eingehenden Arrays bis zum\nangegebenen Index enth\xe4lt. Das neu erstellte Array soll anschlie\xdfend\nzur\xfcckgegeben werden."]}),"\n",(0,r.jsx)(n.p,{children:"Verwende keine ArrayList!"}),"\n",(0,r.jsx)(n.p,{children:"Bsp.: Der Parameter numbers enth\xe4lt die Elemente 10, 8, 3, 22 & 1 der Parameter\nindex ist gleich 2. Zur\xfcckgegeben werden soll ein neues Array, das die Elemente\n10, 8 & 3 enth\xe4lt."}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-methode-main",children:"Hinweise zur Methode main"}),"\n",(0,r.jsx)(n.p,{children:"In der Methode main soll ein Arrays erstellt werden, dass die Ganzzahlen 10, 8,\n3, 22 & 1 enth\xe4lt. Erstelle mithilfe der Methode split ein neues Array, dass die\nersten drei Elemente des ersten Arrays enthalten soll. Gib mithilfe einer\nFor-Schleife alle Elemente des neu erstellten Arrays aus."}),"\n",(0,r.jsx)(n.h2,{id:"aufgabe-6",children:"Aufgabe 6"}),"\n",(0,r.jsx)(n.mermaid,{value:"classDiagram\n direction LR\n\n Barrel -- OverflowException\n Barrel -- ExamTask06\n OverflowException --|> Exception : extends\n\n class Barrel {\n -capacity int\n -fluidLevel int\n +Barrel(capacity: int)\n +addFluid(value: int) void\n }\n\n class OverflowException {\n <>\n -higherThanCapacity int { final }\n +OverflowException(higherThanCapacity: int)\n +getHigherThanCapacity() int\n }\n\n class ExamTask06 {\n +main(args: String[])$ void\n }\n\n class Exception {\n\n }"}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-overflowexception",children:"Hinweise zur Klasse OverflowException"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Der Konstruktor soll alle Attribute initialisieren."}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"getHigherThanCapacity"})," soll die zu viel hinzugef\xfcgte\nFl\xfcssigkeit zur\xfcckgeben."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-barrel",children:"Hinweise zur Klasse Barrel"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Der Konstruktor soll alle Attribute initialisieren. Das Fass ist Anfangs immer\nleer."}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"addFluid"})," soll die OverflowException ausl\xf6sen, wenn die Summe\nder eingehenden Fl\xfcssigkeit und der im Fass befindenden Fl\xfcssigkeit die\nKapazit\xe4t \xfcberschreitet. \xdcbergebe der Ausnahme den Wert, um wieviel die\nmaximale Kapazit\xe4t \xfcberschritten wurde. Wenn die maximale Kapazit\xe4t nicht\n\xfcberschritten wird, soll die eingehende Fl\xfcssigkeit dem Fass hinzugef\xfcgt\nwerden"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-examtask06",children:"Hinweise zur Klasse ExamTask06"}),"\n",(0,r.jsx)(n.p,{children:"Erstelle ein neues Fass, das die maximale Kapazit\xe4t von 100 hat. Versuche\nanschlie\xdfend das Fass auf 101 zu f\xfcllen und fange die Ausnahme ab. Gib in der\nKonsole aus, um wieviel die maximale Kapazit\xe4t \xfcberschritten wurde."}),"\n",(0,r.jsxs)(n.p,{children:["Bsp. Konsolenausgabe: ",(0,r.jsx)(n.code,{children:"Es w\xe4re um 1 zu viel bef\xfcllt worden."})]}),"\n",(0,r.jsx)(n.h2,{id:"aufgabe-7",children:"Aufgabe 7"}),"\n",(0,r.jsx)(n.mermaid,{value:"classDiagram\n\n EnergySource --o Phone\n CablePhone --\x3e Phone : extends\n SmartPhone --\x3e Phone : extends\n\n class EnergySource {\n <>\n BATTERY('B')\n POWER_PLUG('P')\n -type char\n EnergySource(type: char)\n +getType() char\n +canBeUsedEverywhere() boolean\n }\n\n class Phone {\n <>\n #energySource EnergySource { final }\n +Phone(energySource: EnergySource)\n +readyForUse()* boolean\n }\n\n class CablePhone {\n -pluggedIn boolean\n -poweredOn boolean\n +CablePhone(energySource: EnergySource, pluggedIn: boolean, poweredOn: boolean)\n +readyForUse(): boolean\n }\n\n class SmartPhone {\n -MINIMUM_POWER int$\n -power int\n +SmartPhone(energySource: EnergySource, power: int)\n +readyForUse(): boolean\n }\n\n class ExamTask04 {\n +main(args: String[])$ void\n }"}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-energysource",children:"Hinweise zur Klasse EnergySource"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Erstelle die zwei Konstanten Batterie und Steckdose f\xfcr die Arten einer\nEnergiequelle."}),"\n",(0,r.jsx)(n.li,{children:"Der Konstruktor soll alle Attribute initialisieren."}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"getType"})," soll den Typ der Energiequelle zur\xfcckgeben."]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.strong,{children:"canBeUsedEverywhere"})," soll true zur\xfcckgeben, wenn die\nEnergiequelle eine Batterie ist."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-phone",children:"Hinweise zur Klasse Phone"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Der Konstruktor soll alle Attribute initialisieren."}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-cablephone",children:"Hinweise zur Klasse CablePhone"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Der Konstruktor soll alle Attribute initialisieren."}),"\n",(0,r.jsx)(n.li,{children:"Die Methode readyForUse soll true zur\xfcckgeben, wenn das Kabeltelefon\neingesteckt und eingeschalten ist."}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-smartphone",children:"Hinweise zur Klasse SmartPhone"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Die minimale Energie soll 200 betragen."}),"\n",(0,r.jsx)(n.li,{children:"Der Konstruktor soll alle Attribute initialisieren."}),"\n",(0,r.jsx)(n.li,{children:"Die Methode readyForUse soll true zur\xfcckgeben, wenn die Energie des\nSmartphones die minimal erforderliche Energie \xfcberschreitet."}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-examtask04",children:"Hinweise zur Klasse ExamTask04"}),"\n",(0,r.jsx)(n.p,{children:"Erzeuge ein Kabeltelefon mit Akku und eines, dass an die Steckdose angeschlossen\nist. Erzeuge ein leeres Smartphone und eines das halb voll ist. Speichere alle\nerzeugten Fahrzeuge in einer ArrayList. Ermittle mithilfe einer Schleife die\nAnzahl der betriebsbereiten Telefone. Gib die Anzahl in der Konsole aus."}),"\n",(0,r.jsx)(n.h2,{id:"aufgabe-8",children:"Aufgabe 8"}),"\n",(0,r.jsx)(n.mermaid,{value:"classDiagram\n direction LR\n\n Comparator~Car~ <.. ConstructionYearComparator : implements\n CarVendor -- ConstructionYearComparator\n CarVendor o-- Car\n\n class Comparator~Car~ {\n <>\n +compare(c1: Car, c2: Car) int\n }\n\n class ConstructionYearComparator {\n +compare(c1: Car, c2: Car) int\n }\n\n class CarVendor {\n -cars ArrayList~Car~\n +CarVendor()\n +sortByConstructionYear() void\n +print() void\n }\n\n class Car {\n <>\n +getConstructionYear() int\n }"}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-carvendor",children:"Hinweise zur Klasse CarVendor"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Der Konstruktor soll alle Attribute initialisieren."}),"\n",(0,r.jsx)(n.li,{children:"Die Methode sortByConstructionYear soll die Autos absteigend nach Baujahr\nsortieren."}),"\n",(0,r.jsx)(n.li,{children:"Die Methode print soll das Baujahr aller Autos in der Konsole ausgeben."}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"hinweise-zur-klasse-constructionyearcomparator",children:"Hinweise zur Klasse ConstructionYearComparator"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Der ConstructionYearComparator soll das Comparator Interface implementieren\nund Autos absteigend nach Baujahr sortieren."}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},50065:function(e,n,i){i.d(n,{Z:function(){return t},a:function(){return l}});var s=i(67294);let r={},a=s.createContext(r);function l(e){let n=s.useContext(a);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2578.8c095ec2.js b/pr-preview/pr-238/assets/js/2578.8c095ec2.js new file mode 100644 index 0000000000..478ebefc48 --- /dev/null +++ b/pr-preview/pr-238/assets/js/2578.8c095ec2.js @@ -0,0 +1,24 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2578"],{18010:function(t,e,a){function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{A:function(){return r}}),(0,a(74146).eW)(r,"populateCommonDb")},78088:function(t,e,a){a.d(e,{diagram:function(){return C}});var r=a(18010),l=a(68394),o=a(89356),c=a(74146),i=a(3194),n={packet:[]},s=structuredClone(n),d=c.vZ.packet,k=(0,c.eW)(()=>{let t=(0,l.Rb)({...d,...(0,c.iE)().packet});return t.showBits&&(t.paddingY+=10),t},"getConfig"),p=(0,c.eW)(()=>s.packet,"getPacket"),b={pushWord:(0,c.eW)(t=>{t.length>0&&s.packet.push(t)},"pushWord"),getPacket:p,getConfig:k,clear:(0,c.eW)(()=>{(0,c.ZH)(),s=structuredClone(n)},"clear"),setAccTitle:c.GN,getAccTitle:c.eu,setDiagramTitle:c.g2,getDiagramTitle:c.Kr,getAccDescription:c.Mx,setAccDescription:c.U$},u=(0,c.eW)(t=>{(0,r.A)(t,b);let e=-1,a=[],l=1,{bitsPerRow:o}=b.getConfig();for(let{start:r,end:i,label:n}of t.blocks){if(i&&i{if(void 0===t.end&&(t.end=t.start),t.start>t.end)throw Error(`Block start ${t.start} is greater than block end ${t.end}.`);return t.end+1<=e*a?[t,void 0]:[{start:t.start,end:e*a-1,label:t.label},{start:e*a,end:t.end,label:t.label}]},"getNextFittingBlock"),g={parse:(0,c.eW)(async t=>{let e=await (0,i.Qc)("packet",t);c.cM.debug(e),u(e)},"parse")},h=(0,c.eW)((t,e,a,r)=>{let l=r.db,i=l.getConfig(),{rowHeight:n,paddingY:s,bitWidth:d,bitsPerRow:k}=i,p=l.getPacket(),b=l.getDiagramTitle(),u=n+s,f=u*(p.length+1)-(b?0:n),g=d*k+2,h=(0,o.P)(e);for(let[t,e]of(h.attr("viewbox",`0 0 ${g} ${f}`),(0,c.v2)(h,f,g,i.useMaxWidth),p.entries()))x(h,e,t,i);h.append("text").text(b).attr("x",g/2).attr("y",f-u/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),x=(0,c.eW)((t,e,a,{rowHeight:r,paddingX:l,paddingY:o,bitWidth:c,bitsPerRow:i,showBits:n})=>{let s=t.append("g"),d=a*(r+o)+o;for(let t of e){let e=t.start%i*c+1,a=(t.end-t.start+1)*c-l;if(s.append("rect").attr("x",e).attr("y",d).attr("width",a).attr("height",r).attr("class","packetBlock"),s.append("text").attr("x",e+a/2).attr("y",d+r/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(t.label),!n)continue;let o=t.end===t.start,k=d-2;s.append("text").attr("x",e+(o?a/2:0)).attr("y",k).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",o?"middle":"start").text(t.start),!o&&s.append("text").attr("x",e+a).attr("y",k).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(t.end)}},"drawWord"),$={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},C={parser:g,db:b,renderer:{draw:h},styles:(0,c.eW)(({packet:t}={})=>{let e=(0,l.Rb)($,t);return` + .packetByte { + font-size: ${e.byteFontSize}; + } + .packetByte.start { + fill: ${e.startByteColor}; + } + .packetByte.end { + fill: ${e.endByteColor}; + } + .packetLabel { + fill: ${e.labelColor}; + font-size: ${e.labelFontSize}; + } + .packetTitle { + fill: ${e.titleColor}; + font-size: ${e.titleFontSize}; + } + .packetBlock { + stroke: ${e.blockStrokeColor}; + stroke-width: ${e.blockStrokeWidth}; + fill: ${e.blockFillColor}; + } + `},"styles")}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2594.103fd81d.js b/pr-preview/pr-238/assets/js/2594.103fd81d.js new file mode 100644 index 0000000000..22e71f0027 --- /dev/null +++ b/pr-preview/pr-238/assets/js/2594.103fd81d.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2594"],{96607:function(t,e,n){n.d(e,{diagram:()=>H});var i=n("74146"),r=n("27818");function s(t,e){let n;if(void 0===e)for(let e of t)null!=e&&(n>e||void 0===n&&e>=e)&&(n=e);else{let i=-1;for(let r of t)null!=(r=e(r,++i,t))&&(n>r||void 0===n&&r>=r)&&(n=r)}return n}function o(t){return t.target.depth}function l(t,e){return t.sourceLinks.length?t.depth:e-1}function h(t,e){let n=0;if(void 0===e)for(let e of t)(e=+e)&&(n+=e);else{let i=-1;for(let r of t)(r=+e(r,++i,t))&&(n+=r)}return n}function a(t,e){let n;if(void 0===e)for(let e of t)null!=e&&(n=e)&&(n=e);else{let i=-1;for(let r of t)null!=(r=e(r,++i,t))&&(n=r)&&(n=r)}return n}function c(t){return function(){return t}}function u(t,e){return y(t.source,e.source)||t.index-e.index}function f(t,e){return y(t.target,e.target)||t.index-e.index}function y(t,e){return t.y0-e.y0}function p(t){return t.value}function d(t){return t.index}function g(t){return t.nodes}function _(t){return t.links}function x(t,e){let n=t.get(e);if(!n)throw Error("missing: "+e);return n}function m({nodes:t}){for(let e of t){let t=e.y0,n=t;for(let n of e.sourceLinks)n.y0=t+n.width/2,t+=n.width;for(let t of e.targetLinks)t.y1=n+t.width/2,n+=t.width}}var k=Math.PI,v=2*k,b=v-1e-6;function S(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function w(){return new S}S.prototype=w.prototype={constructor:S,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,i){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+i)},bezierCurveTo:function(t,e,n,i,r,s){this._+="C"+ +t+","+ +e+","+ +n+","+ +i+","+(this._x1=+r)+","+(this._y1=+s)},arcTo:function(t,e,n,i,r){t=+t,e=+e,n=+n,i=+i,r=+r;var s=this._x1,o=this._y1,l=n-t,h=i-e,a=s-t,c=o-e,u=a*a+c*c;if(r<0)throw Error("negative radius: "+r);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(u>1e-6){if(Math.abs(c*l-h*a)>1e-6&&r){var f=n-s,y=i-o,p=l*l+h*h,d=Math.sqrt(p),g=Math.sqrt(u),_=r*Math.tan((k-Math.acos((p+u-(f*f+y*y))/(2*d*g)))/2),x=_/g,m=_/d;Math.abs(x-1)>1e-6&&(this._+="L"+(t+x*a)+","+(e+x*c)),this._+="A"+r+","+r+",0,0,"+ +(c*f>a*y)+","+(this._x1=t+m*l)+","+(this._y1=e+m*h)}else this._+="L"+(this._x1=t)+","+(this._y1=e)}else;},arc:function(t,e,n,i,r,s){t=+t,e=+e,n=+n,s=!!s;var o=n*Math.cos(i),l=n*Math.sin(i),h=t+o,a=e+l,c=1^s,u=s?i-r:r-i;if(n<0)throw Error("negative radius: "+n);null===this._x1?this._+="M"+h+","+a:(Math.abs(this._x1-h)>1e-6||Math.abs(this._y1-a)>1e-6)&&(this._+="L"+h+","+a),n&&(u<0&&(u=u%v+v),u>b?this._+="A"+n+","+n+",0,1,"+c+","+(t-o)+","+(e-l)+"A"+n+","+n+",0,1,"+c+","+(this._x1=h)+","+(this._y1=a):u>1e-6&&(this._+="A"+n+","+n+",0,"+ +(u>=k)+","+c+","+(this._x1=t+n*Math.cos(r))+","+(this._y1=e+n*Math.sin(r))))},rect:function(t,e,n,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +i+"h"+-n+"Z"},toString:function(){return this._}};var E=Array.prototype.slice;function W(t){return function(){return t}}function A(t){return t[0]}function L(t){return t[1]}function M(t){return t.source}function I(t){return t.target}function T(t,e,n,i,r){t.moveTo(e,n),t.bezierCurveTo(e=(e+i)/2,n,e,r,i,r)}function P(t){return[t.source.x1,t.y0]}function C(t){return[t.target.x0,t.y1]}var N=function(){var t=(0,i.eW)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[1,9],n=[1,10],r=[1,5,10,12],s={trace:(0,i.eW)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:(0,i.eW)(function(t,e,n,i,r,s,o){var l=s.length-1;switch(r){case 7:let h=i.findOrCreateNode(s[l-4].trim().replaceAll('""','"')),a=i.findOrCreateNode(s[l-2].trim().replaceAll('""','"')),c=parseFloat(s[l].trim());i.addLink(h,a,c);break;case 8:case 9:case 11:this.$=s[l];break;case 10:this.$=s[l-1]}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:e,20:n},{1:[2,6],7:11,10:[1,12]},t(n,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(r,[2,8]),t(r,[2,9]),{19:[1,16]},t(r,[2,11]),{1:[2,1]},{1:[2,5]},t(n,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:e,20:n},{15:18,16:7,17:8,18:e,20:n},{18:[1,19]},t(n,[2,3]),{12:[1,20]},t(r,[2,10]),{15:21,16:7,17:8,18:e,20:n},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:(0,i.eW)(function(t,e){if(e.recoverable)this.trace(t);else{var n=Error(t);throw n.hash=e,n}},"parseError"),parse:(0,i.eW)(function(t){var e=this,n=[0],r=[],s=[null],o=[],l=this.table,h="",a=0,c=0,u=0,f=o.slice.call(arguments,1),y=Object.create(this.lexer),p={yy:{}};for(var d in this.yy)Object.prototype.hasOwnProperty.call(this.yy,d)&&(p.yy[d]=this.yy[d]);y.setInput(t,p.yy),p.yy.lexer=y,p.yy.parser=this,void 0===y.yylloc&&(y.yylloc={});var g=y.yylloc;o.push(g);var _=y.options&&y.options.ranges;"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function x(){var t;return"number"!=typeof(t=r.pop()||y.lex()||1)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}(0,i.eW)(function(t){n.length=n.length-2*t,s.length=s.length-t,o.length=o.length-t},"popStack"),(0,i.eW)(x,"lex");for(var m,k,v,b,S,w,E,W,A,L={};;){if(v=n[n.length-1],this.defaultActions[v]?b=this.defaultActions[v]:(null==m&&(m=x()),b=l[v]&&l[v][m]),void 0===b||!b.length||!b[0]){var M="";for(w in A=[],l[v])this.terminals_[w]&&w>2&&A.push("'"+this.terminals_[w]+"'");M=y.showPosition?"Parse error on line "+(a+1)+":\n"+y.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(a+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(M,{text:y.match,token:this.terminals_[m]||m,line:y.yylineno,loc:g,expected:A})}if(b[0]instanceof Array&&b.length>1)throw Error("Parse Error: multiple actions possible at state: "+v+", token: "+m);switch(b[0]){case 1:n.push(m),s.push(y.yytext),o.push(y.yylloc),n.push(b[1]),m=null,k?(m=k,k=null):(c=y.yyleng,h=y.yytext,a=y.yylineno,g=y.yylloc,u>0&&u--);break;case 2:if(E=this.productions_[b[1]][1],L.$=s[s.length-E],L._$={first_line:o[o.length-(E||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(E||1)].first_column,last_column:o[o.length-1].last_column},_&&(L._$.range=[o[o.length-(E||1)].range[0],o[o.length-1].range[1]]),void 0!==(S=this.performAction.apply(L,[h,c,a,p.yy,b[1],s,o].concat(f))))return S;E&&(n=n.slice(0,-1*E*2),s=s.slice(0,-1*E),o=o.slice(0,-1*E)),n.push(this.productions_[b[1]][0]),s.push(L.$),o.push(L._$),W=l[n[n.length-2]][n[n.length-1]],n.push(W);break;case 3:return!0}}return!0},"parse")},o={EOF:1,parseError:(0,i.eW)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,i.eW)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,i.eW)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,i.eW)(function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,i.eW)(function(){return this._more=!0,this},"more"),reject:(0,i.eW)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,i.eW)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,i.eW)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,i.eW)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,i.eW)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,i.eW)(function(t,e){var n,i,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack)for(var s in r)this[s]=r[s];return!1},"test_match"),next:(0,i.eW)(function(){if(this.done)return this.EOF;!this._input&&(this.done=!0),!this._more&&(this.yytext="",this.match="");for(var t,e,n,i,r=this._currentRules(),s=0;se[0].length)){if(e=n,i=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,r[s])))return t;if(!this._backtrack)return!1;else{e=!1;continue}}if(!this.options.flex)break}if(e)return!1!==(t=this.test_match(e,r[i]))&&t;return""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,i.eW)(function(){var t=this.next();return t?t:this.lex()},"lex"),begin:(0,i.eW)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,i.eW)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,i.eW)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,i.eW)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,i.eW)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,i.eW)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,i.eW)(function(t,e,n,i){switch(n){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};function l(){this.yy={}}return s.lexer=o,(0,i.eW)(l,"Parser"),l.prototype=s,s.Parser=l,new l}();N.parser=N;var O=[],$=[],D=new Map,j=(0,i.eW)(()=>{O=[],$=[],D=new Map,(0,i.ZH)()},"clear"),z=class{constructor(t,e,n=0){this.source=t,this.target=e,this.value=n}static{(0,i.eW)(this,"SankeyLink")}},F=(0,i.eW)((t,e,n)=>{O.push(new z(t,e,n))},"addLink"),U=class{constructor(t){this.ID=t}static{(0,i.eW)(this,"SankeyNode")}},Y=(0,i.eW)(t=>{t=i.SY.sanitizeText(t,(0,i.nV)());let e=D.get(t);return void 0===e&&(e=new U(t),D.set(t,e),$.push(e)),e},"findOrCreateNode"),V=(0,i.eW)(()=>$,"getNodes"),G=(0,i.eW)(()=>O,"getLinks"),K=(0,i.eW)(()=>({nodes:$.map(t=>({id:t.ID})),links:O.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),"getGraph"),X={nodesMap:D,getConfig:(0,i.eW)(()=>(0,i.nV)().sankey,"getConfig"),getNodes:V,getLinks:G,getGraph:K,addLink:F,findOrCreateNode:Y,getAccTitle:i.eu,setAccTitle:i.GN,getAccDescription:i.Mx,setAccDescription:i.U$,getDiagramTitle:i.Kr,setDiagramTitle:i.g2,clear:j},q=class t{static{(0,i.eW)(this,"Uid")}static{this.count=0}static next(e){return new t(e+ ++t.count)}constructor(t){this.id=t,this.href=`#${t}`}toString(){return"url("+this.href+")"}},Q={left:function(t){return t.depth},right:function(t,e){return e-1-t.height},center:function(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?s(t.sourceLinks,o)-1:0},justify:l},R=(0,i.eW)(function(t,e,n,o){let k,v;let{securityLevel:b,sankey:S}=(0,i.nV)(),N=i.Fy.sankey;"sandbox"===b&&(k=(0,r.Ys)("#i"+e));let O="sandbox"===b?(0,r.Ys)(k.nodes()[0].contentDocument.body):(0,r.Ys)("body"),$="sandbox"===b?O.select(`[id="${e}"]`):(0,r.Ys)(`[id="${e}"]`),D=S?.width??N.width,j=S?.height??N.width,z=S?.useMaxWidth??N.useMaxWidth,F=S?.nodeAlignment??N.nodeAlignment,U=S?.prefix??N.prefix,Y=S?.suffix??N.suffix,V=S?.showValues??N.showValues,G=o.db.getGraph(),K=Q[F];(function(){let t,e,n=0,i=0,r=1,o=1,k=24,v=8,b,S=d,w=l,E=g,W=_,A=6;function L(){let l={nodes:E.apply(null,arguments),links:W.apply(null,arguments)};return function({nodes:t,links:n}){for(let[e,n]of t.entries())n.index=e,n.sourceLinks=[],n.targetLinks=[];let i=new Map(t.map((e,n)=>[S(e,n,t),e]));for(let[t,e]of n.entries()){e.index=t;let{source:n,target:r}=e;"object"!=typeof n&&(n=e.source=x(i,n)),"object"!=typeof r&&(r=e.target=x(i,r)),n.sourceLinks.push(e),r.targetLinks.push(e)}if(null!=e)for(let{sourceLinks:n,targetLinks:i}of t)n.sort(e),i.sort(e)}(l),function({nodes:t}){for(let e of t)e.value=void 0===e.fixedValue?Math.max(h(e.sourceLinks,p),h(e.targetLinks,p)):e.fixedValue}(l),function({nodes:t}){let e=t.length,n=new Set(t),i=new Set,r=0;for(;n.size;){for(let t of n)for(let{target:e}of(t.depth=r,t.sourceLinks))i.add(e);if(++r>e)throw Error("circular link");n=i,i=new Set}}(l),function({nodes:t}){let e=t.length,n=new Set(t),i=new Set,r=0;for(;n.size;){for(let t of n)for(let{source:e}of(t.height=r,t.targetLinks))i.add(e);if(++r>e)throw Error("circular link");n=i,i=new Set}}(l),function(l){let c=function({nodes:e}){let i=a(e,t=>t.depth)+1,s=(r-n-k)/(i-1),o=Array(i);for(let t of e){let e=Math.max(0,Math.min(i-1,Math.floor(w.call(null,t,i))));t.layer=e,t.x0=n+e*s,t.x1=t.x0+k,o[e]?o[e].push(t):o[e]=[t]}if(t)for(let e of o)e.sort(t);return o}(l);b=Math.min(v,(o-i)/(a(c,t=>t.length)-1)),!function(t){let n=s(t,t=>(o-i-(t.length-1)*b)/h(t,p));for(let r of t){let t=i;for(let e of r)for(let i of(e.y0=t,e.y1=t+e.value*n,t=e.y1+b,e.sourceLinks))i.width=i.value*n;t=(o-t+b)/(r.length+1);for(let e=0;e=0;--s){let r=e[s];for(let t of r){let e=0,i=0;for(let{target:n,value:r}of t.sourceLinks){let s=r*(n.layer-t.layer);e+=function(t,e){let n=e.y0-(e.targetLinks.length-1)*b/2;for(let{source:i,width:r}of e.targetLinks){if(i===t)break;n+=r+b}for(let{target:i,width:r}of t.sourceLinks){if(i===e)break;n-=r}return n}(t,n)*s,i+=s}if(!(i>0))continue;let r=(e/i-t.y0)*n;t.y0+=r,t.y1+=r,P(t)}void 0===t&&r.sort(y),M(r,i)}})(c,n,i),function(e,n,i){for(let r=1,s=e.length;r0))continue;let r=(e/i-t.y0)*n;t.y0+=r,t.y1+=r,P(t)}void 0===t&&s.sort(y),M(s,i)}}(c,n,i)}}(l),m(l),l}L.update=function(t){return m(t),t},L.nodeId=function(t){return arguments.length?(S="function"==typeof t?t:c(t),L):S},L.nodeAlign=function(t){return arguments.length?(w="function"==typeof t?t:c(t),L):w},L.nodeSort=function(e){return arguments.length?(t=e,L):t},L.nodeWidth=function(t){return arguments.length?(k=+t,L):k},L.nodePadding=function(t){return arguments.length?(v=b=+t,L):v},L.nodes=function(t){return arguments.length?(E="function"==typeof t?t:c(t),L):E},L.links=function(t){return arguments.length?(W="function"==typeof t?t:c(t),L):W},L.linkSort=function(t){return arguments.length?(e=t,L):e},L.size=function(t){return arguments.length?(n=i=0,r=+t[0],o=+t[1],L):[r-n,o-i]},L.extent=function(t){return arguments.length?(n=+t[0][0],r=+t[1][0],i=+t[0][1],o=+t[1][1],L):[[n,i],[r,o]]},L.iterations=function(t){return arguments.length?(A=+t,L):A};function M(t,e){let n=t.length>>1,r=t[n];T(t,r.y0-b,n-1,e),I(t,r.y1+b,n+1,e),T(t,o,t.length-1,e),I(t,i,0,e)}function I(t,e,n,i){for(;n1e-6&&(r.y0+=s,r.y1+=s),e=r.y1+b}}function T(t,e,n,i){for(;n>=0;--n){let r=t[n],s=(r.y1-e)*i;s>1e-6&&(r.y0-=s,r.y1-=s),e=r.y0-b}}function P({sourceLinks:t,targetLinks:n}){if(void 0===e){for(let{source:{sourceLinks:t}}of n)t.sort(f);for(let{target:{targetLinks:e}}of t)e.sort(u)}}return L})().nodeId(t=>t.id).nodeWidth(10).nodePadding(10+(V?15:0)).nodeAlign(K).extent([[0,0],[D,j]])(G);let X=(0,r.PKp)(r.K2I);$.append("g").attr("class","nodes").selectAll(".node").data(G.nodes).join("g").attr("class","node").attr("id",t=>(t.uid=q.next("node-")).id).attr("transform",function(t){return"translate("+t.x0+","+t.y0+")"}).attr("x",t=>t.x0).attr("y",t=>t.y0).append("rect").attr("height",t=>t.y1-t.y0).attr("width",t=>t.x1-t.x0).attr("fill",t=>X(t.id));let R=(0,i.eW)(({id:t,value:e})=>V?`${t} +${U}${Math.round(100*e)/100}${Y}`:t,"getText");$.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(G.nodes).join("text").attr("x",t=>t.x0(t.y1+t.y0)/2).attr("dy",`${V?"0":"0.35"}em`).attr("text-anchor",t=>t.x0(t.uid=q.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",t=>t.source.x1).attr("x2",t=>t.target.x0);t.append("stop").attr("offset","0%").attr("stop-color",t=>X(t.source.id)),t.append("stop").attr("offset","100%").attr("stop-color",t=>X(t.target.id))}switch(B){case"gradient":v=(0,i.eW)(t=>t.uid,"coloring");break;case"source":v=(0,i.eW)(t=>X(t.source.id),"coloring");break;case"target":v=(0,i.eW)(t=>X(t.target.id),"coloring");break;default:v=B}Z.append("path").attr("d",(function(t){var e=M,n=I,i=A,r=L,s=null;function o(){var o,l=E.call(arguments),h=e.apply(this,l),a=n.apply(this,l);if(!s&&(s=o=w()),t(s,+i.apply(this,(l[0]=h,l)),+r.apply(this,l),+i.apply(this,(l[0]=a,l)),+r.apply(this,l)),o)return s=null,o+""||null}return o.source=function(t){return arguments.length?(e=t,o):e},o.target=function(t){return arguments.length?(n=t,o):n},o.x=function(t){return arguments.length?(i="function"==typeof t?t:W(+t),o):i},o.y=function(t){return arguments.length?(r="function"==typeof t?t:W(+t),o):r},o.context=function(t){return arguments.length?(s=null==t?null:t,o):s},o})(T).source(P).target(C)).attr("stroke",v).attr("stroke-width",t=>Math.max(1,t.width)),(0,i.j7)(void 0,$,0,z)},"draw"),Z=(0,i.eW)(t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,"\n").trim(),"prepareTextForParsing"),B=N.parse.bind(N);N.parse=t=>B(Z(t));var H={parser:N,db:X,renderer:{draw:R}}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/26222256.75b20c8e.js b/pr-preview/pr-238/assets/js/26222256.75b20c8e.js new file mode 100644 index 0000000000..e20e38a163 --- /dev/null +++ b/pr-preview/pr-238/assets/js/26222256.75b20c8e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8553"],{33520:function(e){e.exports=JSON.parse('{"tag":{"label":"oo","permalink":"/java-docs/pr-preview/pr-238/tags/oo","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":22,"items":[{"id":"documentation/polymorphy","title":"(Dynamische) Polymorphie","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/polymorphy"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/fast-food","title":"Fast Food","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/fast-food"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/shape","title":"Geometrische Form","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/shape"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/gift-bag","title":"Geschenkesack","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/gift-bag"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer","title":"Kartenausteiler","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/cashier-system","title":"Kassensystem","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cashier-system"},{"id":"documentation/classes","title":"Klassen","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/classes"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/creature","title":"Kreatur","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/creature"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/student-course","title":"Kurs","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/student-course"},{"id":"documentation/oo","title":"Objektorientierte Programmierung","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/oo"},{"id":"exercises/oo/oo","title":"Objektorientierte Programmierung","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/oo/"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar","title":"Pl\xe4tzchendose","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar"},{"id":"exercises/polymorphy/polymorphy","title":"Polymorphie","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/polymorphy/"},{"id":"documentation/references-and-objects","title":"Referenzen und Objekte","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/references-and-objects"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/parking-garage","title":"Tiefgarage","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/parking-garage"},{"id":"documentation/inheritance","title":"Vererbung","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/inheritance"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/christmas-tree","title":"Weihnachtsbaum","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/christmas-tree"},{"id":"exam-exercises/exam-exercises-java1/dice-games/dice-game-01","title":"W\xfcrfelspiel 1","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-01"},{"id":"exam-exercises/exam-exercises-java1/dice-games/dice-game-02","title":"W\xfcrfelspiel 2","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-02"},{"id":"exam-exercises/exam-exercises-java1/dice-games/dice-game-03","title":"W\xfcrfelspiel 3","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-03"},{"id":"exam-exercises/exam-exercises-java1/dice-games/dice-game-04","title":"W\xfcrfelspiel 4","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-04"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/zoo","title":"Zoo","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/zoo"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2646.08ac95d1.js b/pr-preview/pr-238/assets/js/2646.08ac95d1.js new file mode 100644 index 0000000000..7e0678e794 --- /dev/null +++ b/pr-preview/pr-238/assets/js/2646.08ac95d1.js @@ -0,0 +1,5 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2646"],{89808:function(t,e,a){a.d(e,{diagram:function(){return tD}});var n,i=a(92076),r=a(68394),s=a(74146),l=a(27818),o=a(17967),h=function(){var t=(0,s.eW)(function(t,e,a,n){for(a=a||{},n=t.length;n--;a[t[n]]=e);return a},"o"),e=[1,24],a=[1,25],n=[1,26],i=[1,27],r=[1,28],l=[1,63],o=[1,64],h=[1,65],d=[1,66],u=[1,67],p=[1,68],y=[1,69],f=[1,29],b=[1,30],g=[1,31],x=[1,32],_=[1,33],m=[1,34],E=[1,35],A=[1,36],S=[1,37],C=[1,38],k=[1,39],O=[1,40],w=[1,41],T=[1,42],v=[1,43],R=[1,44],D=[1,45],W=[1,46],N=[1,47],P=[1,48],M=[1,50],B=[1,51],j=[1,52],Y=[1,53],I=[1,54],L=[1,55],U=[1,56],F=[1,57],X=[1,58],z=[1,59],Q=[1,60],$=[14,42],q=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],V=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],H=[1,82],G=[1,83],K=[1,84],J=[1,85],Z=[12,14,42],tt=[12,14,33,42],te=[12,14,33,42,76,77,79,80],ta=[12,33],tn=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],ti={trace:(0,s.eW)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:(0,s.eW)(function(t,e,a,n,i,r,s){var l=r.length-1;switch(i){case 3:n.setDirection("TB");break;case 4:n.setDirection("BT");break;case 5:n.setDirection("RL");break;case 6:n.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:n.setC4Type(r[l-3]);break;case 19:n.setTitle(r[l].substring(6)),this.$=r[l].substring(6);break;case 20:n.setAccDescription(r[l].substring(15)),this.$=r[l].substring(15);break;case 21:this.$=r[l].trim(),n.setTitle(this.$);break;case 22:case 23:this.$=r[l].trim(),n.setAccDescription(this.$);break;case 28:r[l].splice(2,0,"ENTERPRISE"),n.addPersonOrSystemBoundary(...r[l]),this.$=r[l];break;case 29:r[l].splice(2,0,"SYSTEM"),n.addPersonOrSystemBoundary(...r[l]),this.$=r[l];break;case 30:n.addPersonOrSystemBoundary(...r[l]),this.$=r[l];break;case 31:r[l].splice(2,0,"CONTAINER"),n.addContainerBoundary(...r[l]),this.$=r[l];break;case 32:n.addDeploymentNode("node",...r[l]),this.$=r[l];break;case 33:n.addDeploymentNode("nodeL",...r[l]),this.$=r[l];break;case 34:n.addDeploymentNode("nodeR",...r[l]),this.$=r[l];break;case 35:n.popBoundaryParseStack();break;case 39:n.addPersonOrSystem("person",...r[l]),this.$=r[l];break;case 40:n.addPersonOrSystem("external_person",...r[l]),this.$=r[l];break;case 41:n.addPersonOrSystem("system",...r[l]),this.$=r[l];break;case 42:n.addPersonOrSystem("system_db",...r[l]),this.$=r[l];break;case 43:n.addPersonOrSystem("system_queue",...r[l]),this.$=r[l];break;case 44:n.addPersonOrSystem("external_system",...r[l]),this.$=r[l];break;case 45:n.addPersonOrSystem("external_system_db",...r[l]),this.$=r[l];break;case 46:n.addPersonOrSystem("external_system_queue",...r[l]),this.$=r[l];break;case 47:n.addContainer("container",...r[l]),this.$=r[l];break;case 48:n.addContainer("container_db",...r[l]),this.$=r[l];break;case 49:n.addContainer("container_queue",...r[l]),this.$=r[l];break;case 50:n.addContainer("external_container",...r[l]),this.$=r[l];break;case 51:n.addContainer("external_container_db",...r[l]),this.$=r[l];break;case 52:n.addContainer("external_container_queue",...r[l]),this.$=r[l];break;case 53:n.addComponent("component",...r[l]),this.$=r[l];break;case 54:n.addComponent("component_db",...r[l]),this.$=r[l];break;case 55:n.addComponent("component_queue",...r[l]),this.$=r[l];break;case 56:n.addComponent("external_component",...r[l]),this.$=r[l];break;case 57:n.addComponent("external_component_db",...r[l]),this.$=r[l];break;case 58:n.addComponent("external_component_queue",...r[l]),this.$=r[l];break;case 60:n.addRel("rel",...r[l]),this.$=r[l];break;case 61:n.addRel("birel",...r[l]),this.$=r[l];break;case 62:n.addRel("rel_u",...r[l]),this.$=r[l];break;case 63:n.addRel("rel_d",...r[l]),this.$=r[l];break;case 64:n.addRel("rel_l",...r[l]),this.$=r[l];break;case 65:n.addRel("rel_r",...r[l]),this.$=r[l];break;case 66:n.addRel("rel_b",...r[l]),this.$=r[l];break;case 67:r[l].splice(0,1),n.addRel("rel",...r[l]),this.$=r[l];break;case 68:n.updateElStyle("update_el_style",...r[l]),this.$=r[l];break;case 69:n.updateRelStyle("update_rel_style",...r[l]),this.$=r[l];break;case 70:n.updateLayoutConfig("update_layout_config",...r[l]),this.$=r[l];break;case 71:this.$=[r[l]];break;case 72:r[l].unshift(r[l-1]),this.$=r[l];break;case 73:case 75:this.$=r[l].trim();break;case 74:let o={};o[r[l-1].trim()]=r[l].trim(),this.$=o;break;case 76:this.$=""}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:a,24:n,26:i,28:r,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:f,45:b,46:g,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:O,56:w,57:T,58:v,59:R,60:D,61:W,62:N,63:P,64:M,65:B,66:j,67:Y,68:I,69:L,70:U,71:F,72:X,73:z,74:Q},{13:70,19:20,20:21,21:22,22:e,23:a,24:n,26:i,28:r,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:f,45:b,46:g,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:O,56:w,57:T,58:v,59:R,60:D,61:W,62:N,63:P,64:M,65:B,66:j,67:Y,68:I,69:L,70:U,71:F,72:X,73:z,74:Q},{13:71,19:20,20:21,21:22,22:e,23:a,24:n,26:i,28:r,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:f,45:b,46:g,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:O,56:w,57:T,58:v,59:R,60:D,61:W,62:N,63:P,64:M,65:B,66:j,67:Y,68:I,69:L,70:U,71:F,72:X,73:z,74:Q},{13:72,19:20,20:21,21:22,22:e,23:a,24:n,26:i,28:r,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:f,45:b,46:g,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:O,56:w,57:T,58:v,59:R,60:D,61:W,62:N,63:P,64:M,65:B,66:j,67:Y,68:I,69:L,70:U,71:F,72:X,73:z,74:Q},{13:73,19:20,20:21,21:22,22:e,23:a,24:n,26:i,28:r,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:f,45:b,46:g,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:O,56:w,57:T,58:v,59:R,60:D,61:W,62:N,63:P,64:M,65:B,66:j,67:Y,68:I,69:L,70:U,71:F,72:X,73:z,74:Q},{14:[1,74]},t($,[2,13],{43:23,29:49,30:61,32:62,20:75,34:l,36:o,37:h,38:d,39:u,40:p,41:y,44:f,45:b,46:g,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:O,56:w,57:T,58:v,59:R,60:D,61:W,62:N,63:P,64:M,65:B,66:j,67:Y,68:I,69:L,70:U,71:F,72:X,73:z,74:Q}),t($,[2,14]),t(q,[2,16],{12:[1,76]}),t($,[2,36],{12:[1,77]}),t(V,[2,19]),t(V,[2,20]),{25:[1,78]},{27:[1,79]},t(V,[2,23]),{35:80,75:81,76:H,77:G,79:K,80:J},{35:86,75:81,76:H,77:G,79:K,80:J},{35:87,75:81,76:H,77:G,79:K,80:J},{35:88,75:81,76:H,77:G,79:K,80:J},{35:89,75:81,76:H,77:G,79:K,80:J},{35:90,75:81,76:H,77:G,79:K,80:J},{35:91,75:81,76:H,77:G,79:K,80:J},{35:92,75:81,76:H,77:G,79:K,80:J},{35:93,75:81,76:H,77:G,79:K,80:J},{35:94,75:81,76:H,77:G,79:K,80:J},{35:95,75:81,76:H,77:G,79:K,80:J},{35:96,75:81,76:H,77:G,79:K,80:J},{35:97,75:81,76:H,77:G,79:K,80:J},{35:98,75:81,76:H,77:G,79:K,80:J},{35:99,75:81,76:H,77:G,79:K,80:J},{35:100,75:81,76:H,77:G,79:K,80:J},{35:101,75:81,76:H,77:G,79:K,80:J},{35:102,75:81,76:H,77:G,79:K,80:J},{35:103,75:81,76:H,77:G,79:K,80:J},{35:104,75:81,76:H,77:G,79:K,80:J},t(Z,[2,59]),{35:105,75:81,76:H,77:G,79:K,80:J},{35:106,75:81,76:H,77:G,79:K,80:J},{35:107,75:81,76:H,77:G,79:K,80:J},{35:108,75:81,76:H,77:G,79:K,80:J},{35:109,75:81,76:H,77:G,79:K,80:J},{35:110,75:81,76:H,77:G,79:K,80:J},{35:111,75:81,76:H,77:G,79:K,80:J},{35:112,75:81,76:H,77:G,79:K,80:J},{35:113,75:81,76:H,77:G,79:K,80:J},{35:114,75:81,76:H,77:G,79:K,80:J},{35:115,75:81,76:H,77:G,79:K,80:J},{20:116,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:y,43:23,44:f,45:b,46:g,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:O,56:w,57:T,58:v,59:R,60:D,61:W,62:N,63:P,64:M,65:B,66:j,67:Y,68:I,69:L,70:U,71:F,72:X,73:z,74:Q},{12:[1,118],33:[1,117]},{35:119,75:81,76:H,77:G,79:K,80:J},{35:120,75:81,76:H,77:G,79:K,80:J},{35:121,75:81,76:H,77:G,79:K,80:J},{35:122,75:81,76:H,77:G,79:K,80:J},{35:123,75:81,76:H,77:G,79:K,80:J},{35:124,75:81,76:H,77:G,79:K,80:J},{35:125,75:81,76:H,77:G,79:K,80:J},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t($,[2,15]),t(q,[2,17],{21:22,19:130,22:e,23:a,24:n,26:i,28:r}),t($,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:a,24:n,26:i,28:r,34:l,36:o,37:h,38:d,39:u,40:p,41:y,44:f,45:b,46:g,47:x,48:_,49:m,50:E,51:A,52:S,53:C,54:k,55:O,56:w,57:T,58:v,59:R,60:D,61:W,62:N,63:P,64:M,65:B,66:j,67:Y,68:I,69:L,70:U,71:F,72:X,73:z,74:Q}),t(V,[2,21]),t(V,[2,22]),t(Z,[2,39]),t(tt,[2,71],{75:81,35:132,76:H,77:G,79:K,80:J}),t(te,[2,73]),{78:[1,133]},t(te,[2,75]),t(te,[2,76]),t(Z,[2,40]),t(Z,[2,41]),t(Z,[2,42]),t(Z,[2,43]),t(Z,[2,44]),t(Z,[2,45]),t(Z,[2,46]),t(Z,[2,47]),t(Z,[2,48]),t(Z,[2,49]),t(Z,[2,50]),t(Z,[2,51]),t(Z,[2,52]),t(Z,[2,53]),t(Z,[2,54]),t(Z,[2,55]),t(Z,[2,56]),t(Z,[2,57]),t(Z,[2,58]),t(Z,[2,60]),t(Z,[2,61]),t(Z,[2,62]),t(Z,[2,63]),t(Z,[2,64]),t(Z,[2,65]),t(Z,[2,66]),t(Z,[2,67]),t(Z,[2,68]),t(Z,[2,69]),t(Z,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(ta,[2,28]),t(ta,[2,29]),t(ta,[2,30]),t(ta,[2,31]),t(ta,[2,32]),t(ta,[2,33]),t(ta,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t(q,[2,18]),t($,[2,38]),t(tt,[2,72]),t(te,[2,74]),t(Z,[2,24]),t(Z,[2,35]),t(tn,[2,25]),t(tn,[2,26],{12:[1,138]}),t(tn,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:(0,s.eW)(function(t,e){if(e.recoverable)this.trace(t);else{var a=Error(t);throw a.hash=e,a}},"parseError"),parse:(0,s.eW)(function(t){var e=this,a=[0],n=[],i=[null],r=[],l=this.table,o="",h=0,d=0,u=0,p=r.slice.call(arguments,1),y=Object.create(this.lexer),f={yy:{}};for(var b in this.yy)Object.prototype.hasOwnProperty.call(this.yy,b)&&(f.yy[b]=this.yy[b]);y.setInput(t,f.yy),f.yy.lexer=y,f.yy.parser=this,void 0===y.yylloc&&(y.yylloc={});var g=y.yylloc;r.push(g);var x=y.options&&y.options.ranges;"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _(){var t;return"number"!=typeof(t=n.pop()||y.lex()||1)&&(t instanceof Array&&(t=(n=t).pop()),t=e.symbols_[t]||t),t}(0,s.eW)(function(t){a.length=a.length-2*t,i.length=i.length-t,r.length=r.length-t},"popStack"),(0,s.eW)(_,"lex");for(var m,E,A,S,C,k,O,w,T,v={};;){if(A=a[a.length-1],this.defaultActions[A]?S=this.defaultActions[A]:(null==m&&(m=_()),S=l[A]&&l[A][m]),void 0===S||!S.length||!S[0]){var R="";for(k in T=[],l[A])this.terminals_[k]&&k>2&&T.push("'"+this.terminals_[k]+"'");R=y.showPosition?"Parse error on line "+(h+1)+":\n"+y.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(h+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(R,{text:y.match,token:this.terminals_[m]||m,line:y.yylineno,loc:g,expected:T})}if(S[0]instanceof Array&&S.length>1)throw Error("Parse Error: multiple actions possible at state: "+A+", token: "+m);switch(S[0]){case 1:a.push(m),i.push(y.yytext),r.push(y.yylloc),a.push(S[1]),m=null,E?(m=E,E=null):(d=y.yyleng,o=y.yytext,h=y.yylineno,g=y.yylloc,u>0&&u--);break;case 2:if(O=this.productions_[S[1]][1],v.$=i[i.length-O],v._$={first_line:r[r.length-(O||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(O||1)].first_column,last_column:r[r.length-1].last_column},x&&(v._$.range=[r[r.length-(O||1)].range[0],r[r.length-1].range[1]]),void 0!==(C=this.performAction.apply(v,[o,d,h,f.yy,S[1],i,r].concat(p))))return C;O&&(a=a.slice(0,-1*O*2),i=i.slice(0,-1*O),r=r.slice(0,-1*O)),a.push(this.productions_[S[1]][0]),i.push(v.$),r.push(v._$),w=l[a[a.length-2]][a[a.length-1]],a.push(w);break;case 3:return!0}}return!0},"parse")},tr={EOF:1,parseError:(0,s.eW)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,s.eW)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,s.eW)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,s.eW)(function(t){var e=t.length,a=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===n.length?this.yylloc.first_column:0)+n[n.length-a.length].length-a[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,s.eW)(function(){return this._more=!0,this},"more"),reject:(0,s.eW)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,s.eW)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,s.eW)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,s.eW)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,s.eW)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,s.eW)(function(t,e){var a,n,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],a=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack)for(var r in i)this[r]=i[r];return!1},"test_match"),next:(0,s.eW)(function(){if(this.done)return this.EOF;!this._input&&(this.done=!0),!this._more&&(this.yytext="",this.match="");for(var t,e,a,n,i=this._currentRules(),r=0;re[0].length)){if(e=a,n=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(a,i[r])))return t;if(!this._backtrack)return!1;else{e=!1;continue}}if(!this.options.flex)break}if(e)return!1!==(t=this.test_match(e,i[n]))&&t;return""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,s.eW)(function(){var t=this.next();return t?t:this.lex()},"lex"),begin:(0,s.eW)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,s.eW)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,s.eW)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,s.eW)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,s.eW)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,s.eW)(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:(0,s.eW)(function(t,e,a,n){switch(a){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 73:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:case 16:case 70:break;case 14:c;break;case 15:return 12;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:case 53:return this.begin("rel_u"),66;case 54:case 55:return this.begin("rel_d"),67;case 56:case 57:return this.begin("rel_l"),68;case 58:case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:case 79:this.popState(),this.popState();break;case 69:case 71:return 80;case 72:this.begin("string");break;case 74:case 80:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};function ts(){this.yy={}}return ti.lexer=tr,(0,s.eW)(ts,"Parser"),ts.prototype=ti,ti.Parser=ts,new ts}();h.parser=h;var d=[],u=[""],p="global",y="",f=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],b=[],g="",x=!1,_=4,m=2,E=(0,s.eW)(function(){return n},"getC4Type"),A=(0,s.eW)(function(t){n=(0,s.oO)(t,(0,s.nV)())},"setC4Type"),S=(0,s.eW)(function(t,e,a,n,i,r,s,l,o){if(null==t||null==e||null==a||null==n)return;let h={},d=b.find(t=>t.from===e&&t.to===a);if(d?h=d:b.push(h),h.type=t,h.from=e,h.to=a,h.label={text:n},null==i)h.techn={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];h[t]={text:e}}else h.techn={text:i};if(null==r)h.descr={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];h[t]={text:e}}else h.descr={text:r};if("object"==typeof s){let[t,e]=Object.entries(s)[0];h[t]=e}else h.sprite=s;if("object"==typeof l){let[t,e]=Object.entries(l)[0];h[t]=e}else h.tags=l;if("object"==typeof o){let[t,e]=Object.entries(o)[0];h[t]=e}else h.link=o;h.wrap=Q()},"addRel"),C=(0,s.eW)(function(t,e,a,n,i,r,s){if(null===e||null===a)return;let l={},o=d.find(t=>t.alias===e);if(o&&e===o.alias?l=o:(l.alias=e,d.push(l)),null==a?l.label={text:""}:l.label={text:a},null==n)l.descr={text:""};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];l[t]={text:e}}else l.descr={text:n};if("object"==typeof i){let[t,e]=Object.entries(i)[0];l[t]=e}else l.sprite=i;if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=e}else l.tags=r;if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=e}else l.link=s;l.typeC4Shape={text:t},l.parentBoundary=p,l.wrap=Q()},"addPersonOrSystem"),k=(0,s.eW)(function(t,e,a,n,i,r,s,l){if(null===e||null===a)return;let o={},h=d.find(t=>t.alias===e);if(h&&e===h.alias?o=h:(o.alias=e,d.push(o)),null==a?o.label={text:""}:o.label={text:a},null==n)o.techn={text:""};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];o[t]={text:e}}else o.techn={text:n};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.sprite=r;if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.tags=s;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.wrap=Q(),o.typeC4Shape={text:t},o.parentBoundary=p},"addContainer"),O=(0,s.eW)(function(t,e,a,n,i,r,s,l){if(null===e||null===a)return;let o={},h=d.find(t=>t.alias===e);if(h&&e===h.alias?o=h:(o.alias=e,d.push(o)),null==a?o.label={text:""}:o.label={text:a},null==n)o.techn={text:""};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];o[t]={text:e}}else o.techn={text:n};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]=e}else o.sprite=r;if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.tags=s;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.wrap=Q(),o.typeC4Shape={text:t},o.parentBoundary=p},"addComponent"),w=(0,s.eW)(function(t,e,a,n,i){if(null===t||null===e)return;let r={},s=f.find(e=>e.alias===t);if(s&&t===s.alias?r=s:(r.alias=t,f.push(r)),null==e?r.label={text:""}:r.label={text:e},null==a)r.type={text:"system"};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];r[t]={text:e}}else r.type={text:a};if("object"==typeof n){let[t,e]=Object.entries(n)[0];r[t]=e}else r.tags=n;if("object"==typeof i){let[t,e]=Object.entries(i)[0];r[t]=e}else r.link=i;r.parentBoundary=p,r.wrap=Q(),y=p,p=t,u.push(y)},"addPersonOrSystemBoundary"),T=(0,s.eW)(function(t,e,a,n,i){if(null===t||null===e)return;let r={},s=f.find(e=>e.alias===t);if(s&&t===s.alias?r=s:(r.alias=t,f.push(r)),null==e?r.label={text:""}:r.label={text:e},null==a)r.type={text:"container"};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];r[t]={text:e}}else r.type={text:a};if("object"==typeof n){let[t,e]=Object.entries(n)[0];r[t]=e}else r.tags=n;if("object"==typeof i){let[t,e]=Object.entries(i)[0];r[t]=e}else r.link=i;r.parentBoundary=p,r.wrap=Q(),y=p,p=t,u.push(y)},"addContainerBoundary"),v=(0,s.eW)(function(t,e,a,n,i,r,s,l){if(null===e||null===a)return;let o={},h=f.find(t=>t.alias===e);if(h&&e===h.alias?o=h:(o.alias=e,f.push(o)),null==a?o.label={text:""}:o.label={text:a},null==n)o.type={text:"node"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];o[t]={text:e}}else o.type={text:n};if(null==i)o.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else o.descr={text:i};if("object"==typeof s){let[t,e]=Object.entries(s)[0];o[t]=e}else o.tags=s;if("object"==typeof l){let[t,e]=Object.entries(l)[0];o[t]=e}else o.link=l;o.nodeType=t,o.parentBoundary=p,o.wrap=Q(),y=p,p=e,u.push(y)},"addDeploymentNode"),R=(0,s.eW)(function(){p=y,u.pop(),y=u.pop(),u.push(y)},"popBoundaryParseStack"),D=(0,s.eW)(function(t,e,a,n,i,r,s,l,o,h,u){let p=d.find(t=>t.alias===e);if(void 0!==p||void 0!==(p=f.find(t=>t.alias===e))){if(null!=a){if("object"==typeof a){let[t,e]=Object.entries(a)[0];p[t]=e}else p.bgColor=a}if(null!=n){if("object"==typeof n){let[t,e]=Object.entries(n)[0];p[t]=e}else p.fontColor=n}if(null!=i){if("object"==typeof i){let[t,e]=Object.entries(i)[0];p[t]=e}else p.borderColor=i}if(null!=r){if("object"==typeof r){let[t,e]=Object.entries(r)[0];p[t]=e}else p.shadowing=r}if(null!=s){if("object"==typeof s){let[t,e]=Object.entries(s)[0];p[t]=e}else p.shape=s}if(null!=l){if("object"==typeof l){let[t,e]=Object.entries(l)[0];p[t]=e}else p.sprite=l}if(null!=o){if("object"==typeof o){let[t,e]=Object.entries(o)[0];p[t]=e}else p.techn=o}if(null!=h){if("object"==typeof h){let[t,e]=Object.entries(h)[0];p[t]=e}else p.legendText=h}if(null!=u){if("object"==typeof u){let[t,e]=Object.entries(u)[0];p[t]=e}else p.legendSprite=u}}},"updateElStyle"),W=(0,s.eW)(function(t,e,a,n,i,r,s){let l=b.find(t=>t.from===e&&t.to===a);if(void 0!==l){if(null!=n){if("object"==typeof n){let[t,e]=Object.entries(n)[0];l[t]=e}else l.textColor=n}if(null!=i){if("object"==typeof i){let[t,e]=Object.entries(i)[0];l[t]=e}else l.lineColor=i}if(null!=r){if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=parseInt(e)}else l.offsetX=parseInt(r)}if(null!=s){if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=parseInt(e)}else l.offsetY=parseInt(s)}}},"updateRelStyle"),N=(0,s.eW)(function(t,e,a){let n=_,i=m;n="object"==typeof e?parseInt(Object.values(e)[0]):parseInt(e),i="object"==typeof a?parseInt(Object.values(a)[0]):parseInt(a),n>=1&&(_=n),i>=1&&(m=i)},"updateLayoutConfig"),P=(0,s.eW)(function(){return _},"getC4ShapeInRow"),M=(0,s.eW)(function(){return m},"getC4BoundaryInRow"),B=(0,s.eW)(function(){return p},"getCurrentBoundaryParse"),j=(0,s.eW)(function(){return y},"getParentBoundaryParse"),Y=(0,s.eW)(function(t){return null==t?d:d.filter(e=>e.parentBoundary===t)},"getC4ShapeArray"),I=(0,s.eW)(function(t){return d.find(e=>e.alias===t)},"getC4Shape"),L=(0,s.eW)(function(t){return Object.keys(Y(t))},"getC4ShapeKeys"),U=(0,s.eW)(function(t){return null==t?f:f.filter(e=>e.parentBoundary===t)},"getBoundaries"),F=(0,s.eW)(function(){return b},"getRels"),X=(0,s.eW)(function(){return g},"getTitle"),z=(0,s.eW)(function(t){x=t},"setWrap"),Q=(0,s.eW)(function(){return x},"autoWrap"),$=(0,s.eW)(function(){d=[],f=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],y="",p="global",u=[""],b=[],u=[""],g="",x=!1,_=4,m=2},"clear"),q=(0,s.eW)(function(t){g=(0,s.oO)(t,(0,s.nV)())},"setTitle"),V={addPersonOrSystem:C,addPersonOrSystemBoundary:w,addContainer:k,addContainerBoundary:T,addComponent:O,addDeploymentNode:v,popBoundaryParseStack:R,addRel:S,updateElStyle:D,updateRelStyle:W,updateLayoutConfig:N,autoWrap:Q,setWrap:z,getC4ShapeArray:Y,getC4Shape:I,getC4ShapeKeys:L,getBoundaries:U,getBoundarys:U,getCurrentBoundaryParse:B,getParentBoundaryParse:j,getRels:F,getTitle:X,getC4Type:E,getC4ShapeInRow:P,getC4BoundaryInRow:M,setAccTitle:s.GN,getAccTitle:s.eu,getAccDescription:s.Mx,setAccDescription:s.U$,getConfig:(0,s.eW)(()=>(0,s.nV)().c4,"getConfig"),clear:$,LINETYPE:{SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:q,setC4Type:A},H=(0,s.eW)(function(t,e){return(0,i.Mu)(t,e)},"drawRect"),G=(0,s.eW)(function(t,e,a,n,i,r){let s=t.append("image");s.attr("width",e),s.attr("height",a),s.attr("x",n),s.attr("y",i);let l=r.startsWith("data:image/png;base64")?r:(0,o.sanitizeUrl)(r);s.attr("xlink:href",l)},"drawImage"),K=(0,s.eW)((t,e,a)=>{let n=t.append("g"),i=0;for(let t of e){let e=t.textColor?t.textColor:"#444444",r=t.lineColor?t.lineColor:"#444444",s=t.offsetX?parseInt(t.offsetX):0,l=t.offsetY?parseInt(t.offsetY):0;if(0===i){let e=n.append("line");e.attr("x1",t.startPoint.x),e.attr("y1",t.startPoint.y),e.attr("x2",t.endPoint.x),e.attr("y2",t.endPoint.y),e.attr("stroke-width","1"),e.attr("stroke",r),e.style("fill","none"),"rel_b"!==t.type&&e.attr("marker-end","url(#arrowhead)"),("birel"===t.type||"rel_b"===t.type)&&e.attr("marker-start","url(#arrowend)"),i=-1}else{let e=n.append("path");e.attr("fill","none").attr("stroke-width","1").attr("stroke",r).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",t.startPoint.x).replaceAll("starty",t.startPoint.y).replaceAll("controlx",t.startPoint.x+(t.endPoint.x-t.startPoint.x)/2-(t.endPoint.x-t.startPoint.x)/4).replaceAll("controly",t.startPoint.y+(t.endPoint.y-t.startPoint.y)/2).replaceAll("stopx",t.endPoint.x).replaceAll("stopy",t.endPoint.y)),"rel_b"!==t.type&&e.attr("marker-end","url(#arrowhead)"),("birel"===t.type||"rel_b"===t.type)&&e.attr("marker-start","url(#arrowend)")}let o=a.messageFont();tc(a)(t.label.text,n,Math.min(t.startPoint.x,t.endPoint.x)+Math.abs(t.endPoint.x-t.startPoint.x)/2+s,Math.min(t.startPoint.y,t.endPoint.y)+Math.abs(t.endPoint.y-t.startPoint.y)/2+l,t.label.width,t.label.height,{fill:e},o),t.techn&&""!==t.techn.text&&(o=a.messageFont(),tc(a)("["+t.techn.text+"]",n,Math.min(t.startPoint.x,t.endPoint.x)+Math.abs(t.endPoint.x-t.startPoint.x)/2+s,Math.min(t.startPoint.y,t.endPoint.y)+Math.abs(t.endPoint.y-t.startPoint.y)/2+a.messageFontSize+5+l,Math.max(t.label.width,t.techn.width),t.techn.height,{fill:e,"font-style":"italic"},o))}},"drawRels"),J=(0,s.eW)(function(t,e,a){let n=t.append("g"),i=e.bgColor?e.bgColor:"none",r=e.borderColor?e.borderColor:"#444444",s=e.fontColor?e.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(l={"stroke-width":1}),H(n,{x:e.x,y:e.y,fill:i,stroke:r,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l});let o=a.boundaryFont();o.fontWeight="bold",o.fontSize=o.fontSize+2,o.fontColor=s,tc(a)(e.label.text,n,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},o),e.type&&""!==e.type.text&&((o=a.boundaryFont()).fontColor=s,tc(a)(e.type.text,n,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},o)),e.descr&&""!==e.descr.text&&((o=a.boundaryFont()).fontSize=o.fontSize-2,o.fontColor=s,tc(a)(e.descr.text,n,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},o))},"drawBoundary"),Z=(0,s.eW)(function(t,e,a){let n=e.bgColor?e.bgColor:a[e.typeC4Shape.text+"_bg_color"],r=e.borderColor?e.borderColor:a[e.typeC4Shape.text+"_border_color"],s=e.fontColor?e.fontColor:"#FFFFFF",l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="}let o=t.append("g");o.attr("class","person-man");let h=(0,i.kc)();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":h.x=e.x,h.y=e.y,h.fill=n,h.width=e.width,h.height=e.height,h.stroke=r,h.rx=2.5,h.ry=2.5,h.attrs={"stroke-width":.5},H(o,h);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":o.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),o.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":o.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),o.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2))}let d=to(a,e.typeC4Shape.text);switch(o.append("text").attr("fill",s).attr("font-family",d.fontFamily).attr("font-size",d.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":G(o,48,48,e.x+e.width/2-24,e.y+e.image.Y,l)}let u=a[e.typeC4Shape.text+"Font"]();return u.fontWeight="bold",u.fontSize=u.fontSize+2,u.fontColor=s,tc(a)(e.label.text,o,e.x,e.y+e.label.Y,e.width,e.height,{fill:s},u),(u=a[e.typeC4Shape.text+"Font"]()).fontColor=s,e.techn&&e.techn?.text!==""?tc(a)(e.techn.text,o,e.x,e.y+e.techn.Y,e.width,e.height,{fill:s,"font-style":"italic"},u):e.type&&""!==e.type.text&&tc(a)(e.type.text,o,e.x,e.y+e.type.Y,e.width,e.height,{fill:s,"font-style":"italic"},u),e.descr&&""!==e.descr.text&&((u=a.personFont()).fontColor=s,tc(a)(e.descr.text,o,e.x,e.y+e.descr.Y,e.width,e.height,{fill:s},u)),e.height},"drawC4Shape"),tt=(0,s.eW)(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),te=(0,s.eW)(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),ta=(0,s.eW)(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),tn=(0,s.eW)(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),ti=(0,s.eW)(function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),tr=(0,s.eW)(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),ts=(0,s.eW)(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertDynamicNumber"),tl=(0,s.eW)(function(t){let e=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);e.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),e.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),to=(0,s.eW)((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"getC4ShapeFont"),tc=function(){function t(t,e,a,i,r,s,l){n(e.append("text").attr("x",a+r/2).attr("y",i+s/2+5).style("text-anchor","middle").text(t),l)}function e(t,e,a,i,r,l,o,h){let{fontSize:d,fontFamily:u,fontWeight:p}=h,y=t.split(s.SY.lineBreakRegex);for(let t=0;t=this.data.widthLimit||a>=this.data.widthLimit||this.nextData.cnt>tp)&&(e=this.nextData.startx+t.margin+tf.nextLinePaddingX,n=this.nextData.stopy+2*t.margin,this.nextData.stopx=a=e+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=i=n+t.height,this.nextData.cnt=1),t.x=e,t.y=n,this.updateVal(this.data,"startx",e,Math.min),this.updateVal(this.data,"starty",n,Math.min),this.updateVal(this.data,"stopx",a,Math.max),this.updateVal(this.data,"stopy",i,Math.max),this.updateVal(this.nextData,"startx",e,Math.min),this.updateVal(this.nextData,"starty",n,Math.min),this.updateVal(this.nextData,"stopx",a,Math.max),this.updateVal(this.nextData,"stopy",i,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},tg(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}},tg=(0,s.eW)(function(t){(0,s.Yc)(tf,t),t.fontFamily&&(tf.personFontFamily=tf.systemFontFamily=tf.messageFontFamily=t.fontFamily),t.fontSize&&(tf.personFontSize=tf.systemFontSize=tf.messageFontSize=t.fontSize),t.fontWeight&&(tf.personFontWeight=tf.systemFontWeight=tf.messageFontWeight=t.fontWeight)},"setConf"),tx=(0,s.eW)((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"c4ShapeFont"),t_=(0,s.eW)(t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),"boundaryFont"),tm=(0,s.eW)(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont");function tE(t,e,a,n,i){if(!e[t].width){if(a)e[t].text=(0,r.X4)(e[t].text,i,n),e[t].textLines=e[t].text.split(s.SY.lineBreakRegex).length,e[t].width=i,e[t].height=(0,r.XD)(e[t].text,n);else{let a=e[t].text.split(s.SY.lineBreakRegex);e[t].textLines=a.length;let i=0;for(let s of(e[t].height=0,e[t].width=0,a))e[t].width=Math.max((0,r.Cq)(s,n),e[t].width),i=(0,r.XD)(s,n),e[t].height=e[t].height+i}}}(0,s.eW)(tE,"calcC4ShapeTextWH");var tA=(0,s.eW)(function(t,e,a){e.x=a.data.startx,e.y=a.data.starty,e.width=a.data.stopx-a.data.startx,e.height=a.data.stopy-a.data.starty,e.label.y=tf.c4ShapeMargin-35;let n=e.wrap&&tf.wrap,i=t_(tf);i.fontSize=i.fontSize+2,i.fontWeight="bold";let s=(0,r.Cq)(e.label.text,i);tE("label",e,n,i,s),th.drawBoundary(t,e,tf)},"drawBoundary"),tS=(0,s.eW)(function(t,e,a,n){let i=0;for(let s of n){i=0;let n=a[s],l=tx(tf,n.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,n.typeC4Shape.width=(0,r.Cq)("\xab"+n.typeC4Shape.text+"\xbb",l),n.typeC4Shape.height=l.fontSize+2,n.typeC4Shape.Y=tf.c4ShapePadding,i=n.typeC4Shape.Y+n.typeC4Shape.height-4,n.image={width:0,height:0,Y:0},n.typeC4Shape.text){case"person":case"external_person":n.image.width=48,n.image.height=48,n.image.Y=i,i=n.image.Y+n.image.height}n.sprite&&(n.image.width=48,n.image.height=48,n.image.Y=i,i=n.image.Y+n.image.height);let o=n.wrap&&tf.wrap,h=tf.width-2*tf.c4ShapePadding,d=tx(tf,n.typeC4Shape.text);if(d.fontSize=d.fontSize+2,d.fontWeight="bold",tE("label",n,o,d,h),n.label.Y=i+8,i=n.label.Y+n.label.height,n.type&&""!==n.type.text){n.type.text="["+n.type.text+"]";let t=tx(tf,n.typeC4Shape.text);tE("type",n,o,t,h),n.type.Y=i+5,i=n.type.Y+n.type.height}else if(n.techn&&""!==n.techn.text){n.techn.text="["+n.techn.text+"]";let t=tx(tf,n.techn.text);tE("techn",n,o,t,h),n.techn.Y=i+5,i=n.techn.Y+n.techn.height}let u=i,p=n.label.width;if(n.descr&&""!==n.descr.text){let t=tx(tf,n.typeC4Shape.text);tE("descr",n,o,t,h),n.descr.Y=i+20,i=n.descr.Y+n.descr.height,p=Math.max(n.label.width,n.descr.width),u=i-5*n.descr.textLines}p+=tf.c4ShapePadding,n.width=Math.max(n.width||tf.width,p,tf.width),n.height=Math.max(n.height||tf.height,u,tf.height),n.margin=n.margin||tf.c4ShapeMargin,t.insert(n),th.drawC4Shape(e,n,tf)}t.bumpLastMargin(tf.c4ShapeMargin)},"drawC4ShapeArray"),tC=class{static{(0,s.eW)(this,"Point")}constructor(t,e){this.x=t,this.y=e}},tk=(0,s.eW)(function(t,e){let a=t.x,n=t.y,i=e.x,r=e.y,s=a+t.width/2,l=n+t.height/2,o=Math.abs(a-i),h=Math.abs(n-r),d=h/o,u=t.height/t.width,p=null;return n==r&&ai?p=new tC(a,l):a==i&&nr&&(p=new tC(s,n)),a>i&&n=d?new tC(a,l+d*t.width/2):new tC(s-o/h*t.height/2,n+t.height):a=d?new tC(a+t.width,l+d*t.width/2):new tC(s+o/h*t.height/2,n+t.height):ar?p=u>=d?new tC(a+t.width,l-d*t.width/2):new tC(s+t.height/2*o/h,n):a>i&&n>r&&(p=u>=d?new tC(a,l-t.width/2*d):new tC(s-t.height/2*o/h,n)),p},"getIntersectPoint"),tO=(0,s.eW)(function(t,e){let a={x:0,y:0};a.x=e.x+e.width/2,a.y=e.y+e.height/2;let n=tk(t,a);return a.x=t.x+t.width/2,a.y=t.y+t.height/2,{startPoint:n,endPoint:tk(e,a)}},"getIntersectPoints"),tw=(0,s.eW)(function(t,e,a,n){let i=0;for(let t of e){i+=1;let e=t.wrap&&tf.wrap,s=tm(tf);"C4Dynamic"===n.db.getC4Type()&&(t.label.text=i+": "+t.label.text);let l=(0,r.Cq)(t.label.text,s);tE("label",t,e,s,l),t.techn&&""!==t.techn.text&&(l=(0,r.Cq)(t.techn.text,s),tE("techn",t,e,s,l)),t.descr&&""!==t.descr.text&&(l=(0,r.Cq)(t.descr.text,s),tE("descr",t,e,s,l));let o=tO(a(t.from),a(t.to));t.startPoint=o.startPoint,t.endPoint=o.endPoint}th.drawRels(t,e,tf)},"drawRels");function tT(t,e,a,n,i){let r=new tb(i);for(let[s,l]of(r.data.widthLimit=a.data.widthLimit/Math.min(ty,n.length),n.entries())){let n=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=n,n=l.image.Y+l.image.height);let o=l.wrap&&tf.wrap,h=t_(tf);if(h.fontSize=h.fontSize+2,h.fontWeight="bold",tE("label",l,o,h,r.data.widthLimit),l.label.Y=n+8,n=l.label.Y+l.label.height,l.type&&""!==l.type.text&&(l.type.text="["+l.type.text+"]",tE("type",l,o,t_(tf),r.data.widthLimit),l.type.Y=n+5,n=l.type.Y+l.type.height),l.descr&&""!==l.descr.text){let t=t_(tf);t.fontSize=t.fontSize-2,tE("descr",l,o,t,r.data.widthLimit),l.descr.Y=n+20,n=l.descr.Y+l.descr.height}if(0==s||s%ty==0){let t=a.data.startx+tf.diagramMarginX,e=a.data.stopy+tf.diagramMarginY+n;r.setData(t,t,e,e)}else{let t=r.data.stopx!==r.data.startx?r.data.stopx+tf.diagramMarginX:r.data.startx,e=r.data.starty;r.setData(t,t,e,e)}r.name=l.alias;let d=i.db.getC4ShapeArray(l.alias),u=i.db.getC4ShapeKeys(l.alias);u.length>0&&tS(r,t,d,u),e=l.alias;let p=i.db.getBoundarys(e);p.length>0&&tT(t,e,r,p,i),"global"!==l.alias&&tA(t,l,r),a.data.stopy=Math.max(r.data.stopy+tf.c4ShapeMargin,a.data.stopy),a.data.stopx=Math.max(r.data.stopx+tf.c4ShapeMargin,a.data.stopx),td=Math.max(td,a.data.stopx),tu=Math.max(tu,a.data.stopy)}}(0,s.eW)(tT,"drawInsideBoundary");var tv={drawPersonOrSystemArray:tS,drawBoundary:tA,setConf:tg,draw:(0,s.eW)(function(t,e,a,n){let i;tf=(0,s.nV)().c4;let r=(0,s.nV)().securityLevel;"sandbox"===r&&(i=(0,l.Ys)("#i"+e));let o="sandbox"===r?(0,l.Ys)(i.nodes()[0].contentDocument.body):(0,l.Ys)("body"),h=n.db;n.db.setWrap(tf.wrap),tp=h.getC4ShapeInRow(),ty=h.getC4BoundaryInRow(),s.cM.debug(`C:${JSON.stringify(tf,null,2)}`);let d="sandbox"===r?o.select(`[id="${e}"]`):(0,l.Ys)(`[id="${e}"]`);th.insertComputerIcon(d),th.insertDatabaseIcon(d),th.insertClockIcon(d);let u=new tb(n);u.setData(tf.diagramMarginX,tf.diagramMarginX,tf.diagramMarginY,tf.diagramMarginY),u.data.widthLimit=screen.availWidth,td=tf.diagramMarginX,tu=tf.diagramMarginY;let p=n.db.getTitle();tT(d,"",u,n.db.getBoundarys(""),n),th.insertArrowHead(d),th.insertArrowEnd(d),th.insertArrowCrossHead(d),th.insertArrowFilledHead(d),tw(d,n.db.getRels(),n.db.getC4Shape,n),u.data.stopx=td,u.data.stopy=tu;let y=u.data,f=y.stopy-y.starty+2*tf.diagramMarginY,b=y.stopx-y.startx+2*tf.diagramMarginX;p&&d.append("text").text(p).attr("x",(y.stopx-y.startx)/2-4*tf.diagramMarginX).attr("y",y.starty+tf.diagramMarginY),(0,s.v2)(d,f,b,tf.useMaxWidth);let g=p?60:0;d.attr("viewBox",y.startx-tf.diagramMarginX+" -"+(tf.diagramMarginY+g)+" "+b+" "+(f+g)),s.cM.debug("models:",y)},"draw")},tR=(0,s.eW)(t=>`.person { + stroke: ${t.personBorder}; + fill: ${t.personBkg}; + } +`,"getStyles"),tD={parser:h,db:V,renderer:tv,styles:tR,init:(0,s.eW)(({c4:t,wrap:e})=>{tv.setConf(t),V.setWrap(e)},"init")}},92076:function(t,e,a){a.d(e,{AD:function(){return u},AE:function(){return o},Mu:function(){return r},O:function(){return s},kc:function(){return d},rB:function(){return h},yU:function(){return l}});var n=a(74146),i=a(17967),r=(0,n.eW)((t,e)=>{let a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),e.name&&a.attr("name",e.name),e.rx&&a.attr("rx",e.rx),e.ry&&a.attr("ry",e.ry),void 0!==e.attrs)for(let t in e.attrs)a.attr(t,e.attrs[t]);return e.class&&a.attr("class",e.class),a},"drawRect"),s=(0,n.eW)((t,e)=>{r(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},"drawBackgroundRect"),l=(0,n.eW)((t,e)=>{let a=e.text.replace(n.Vw," "),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.attr("class","legend"),i.style("text-anchor",e.anchor),e.class&&i.attr("class",e.class);let r=i.append("tspan");return r.attr("x",e.x+2*e.textMargin),r.text(a),i},"drawText"),o=(0,n.eW)((t,e,a,n)=>{let r=t.append("image");r.attr("x",e),r.attr("y",a);let s=(0,i.sanitizeUrl)(n);r.attr("xlink:href",s)},"drawImage"),h=(0,n.eW)((t,e,a,n)=>{let r=t.append("use");r.attr("x",e),r.attr("y",a);let s=(0,i.sanitizeUrl)(n);r.attr("xlink:href",`#${s}`)},"drawEmbeddedImage"),d=(0,n.eW)(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),u=(0,n.eW)(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj")}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/26d05148.0f9208b6.js b/pr-preview/pr-238/assets/js/26d05148.0f9208b6.js new file mode 100644 index 0000000000..96d46d73bb --- /dev/null +++ b/pr-preview/pr-238/assets/js/26d05148.0f9208b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1185"],{61195:function(e,n,t){t.r(n),t.d(n,{metadata:()=>r,contentTitle:()=>c,default:()=>p,assets:()=>o,toc:()=>u,frontMatter:()=>d});var r=JSON.parse('{"id":"documentation/data-types","title":"Datentypen","description":"","source":"@site/docs/documentation/data-types.mdx","sourceDirName":"documentation","slug":"/documentation/data-types","permalink":"/java-docs/pr-preview/pr-238/documentation/data-types","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/data-types.mdx","tags":[{"inline":true,"label":"data-types","permalink":"/java-docs/pr-preview/pr-238/tags/data-types"}],"version":"current","sidebarPosition":30,"frontMatter":{"title":"Datentypen","description":"","sidebar_position":30,"tags":["data-types"]},"sidebar":"documentationSidebar","previous":{"title":"Aufbau einer Java-Klasse","permalink":"/java-docs/pr-preview/pr-238/documentation/class-structure"},"next":{"title":"Datenobjekte","permalink":"/java-docs/pr-preview/pr-238/documentation/data-objects"}}'),i=t("85893"),a=t("50065"),s=t("47902"),l=t("5525");let d={title:"Datentypen",description:"",sidebar_position:30,tags:["data-types"]},c=void 0,o={},u=[];function h(e){let n={a:"a",admonition:"admonition",code:"code",mermaid:"mermaid",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Datentypen legen neben der Gr\xf6\xdfe des Arbeitsspeichers, die ein Datenobjekt\nben\xf6tigt, auch die Art der Information fest, die im Datenobjekt gespeichert\nwerden kann."}),"\n",(0,i.jsxs)(s.Z,{children:[(0,i.jsxs)(l.Z,{value:"a",label:"Primitive Datentypen",default:!0,children:[(0,i.jsx)(n.p,{children:"Primitive Datentypen sind fest in der Programmiersprache verankert und k\xf6nnen\ndurch entsprechende Schl\xfcsselw\xf6rter angesprochen werden. Java kennt 8 solcher\nprimitiver Datentypen."}),(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Datentyp"}),(0,i.jsx)(n.th,{children:"Gr\xf6\xdfe"}),(0,i.jsx)(n.th,{children:"Wertbereich"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"boolean"}),(0,i.jsx)(n.td,{children:"-"}),(0,i.jsx)(n.td,{children:"true, false"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"char"}),(0,i.jsx)(n.td,{children:"2 Byte"}),(0,i.jsx)(n.td,{children:"\\u0000 bis \\uFFFF"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"byte"}),(0,i.jsx)(n.td,{children:"1 Byte"}),(0,i.jsx)(n.td,{children:"-128 bis +127"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"short"}),(0,i.jsx)(n.td,{children:"2 Byte"}),(0,i.jsx)(n.td,{children:"-32.768 bis +32.767"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"int"}),(0,i.jsx)(n.td,{children:"4 Byte"}),(0,i.jsx)(n.td,{children:"-2.147.483.648 bis +2.147.483.647"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"long"}),(0,i.jsx)(n.td,{children:"8 Byte"}),(0,i.jsx)(n.td,{children:"-9.233.372.036.854.775.808 bis +9.233.372.036.854.775.807"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"float"}),(0,i.jsx)(n.td,{children:"4 Byte"}),(0,i.jsx)(n.td,{children:"+/-1,4e-45 bis +/-3,4028235e+38"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"double"}),(0,i.jsx)(n.td,{children:"8 Byte"}),(0,i.jsx)(n.td,{children:"+/-4,9e-324 bis +/-1,7976931348623157e+308"})]})]})]})]}),(0,i.jsxs)(l.Z,{value:"b",label:"Strukturierte Datentypen",children:[(0,i.jsx)(n.p,{children:"Klassen werden auch als strukturierte Datentypen bezeichnet, da sie im Gegensatz\nzu primitiven Datentypen beliebig viele, unterschiedlich typisierte Attribute\nenthalten k\xf6nnen."}),(0,i.jsx)(n.mermaid,{value:"classDiagram\n class Person {\n -name: String\n -age: int\n -gender: char\n }"}),(0,i.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,i.jsxs)(n.p,{children:["Weitere Informationen zu strukturierten Datentypen finden sich im Kapitel\n",(0,i.jsx)(n.a,{href:"oo",children:"Objektorientierte Programmierung"}),"."]})})]}),(0,i.jsxs)(l.Z,{value:"c",label:"Generische Datentypen",children:[(0,i.jsxs)(n.p,{children:["Klassen, die \xfcber einen oder mehrere formale Typparameter verf\xfcgen, werden als\ngenerische Klassen bezeichnet. Generische Klassen k\xf6nnen mit verschiedenen\nDatentypen verwendet werden und erm\xf6glichen dadurch die Wiederverwendung von\nCode unter Beibehaltung statischer Typsicherheit. Unter Typsicherheit versteht\nman, dass Datentypen gem\xe4\xdf ihrer Definition verwendet werden und dabei keine\nTypverletzungen auftreten. Bei statisch typisierten Sprachen findet die\nTyppr\xfcfung bei der Kompilierung statt. Beispiele f\xfcr generische Klassen sind die\nKlasse ",(0,i.jsx)(n.code,{children:"ArrayList"})," sowie die Klasse ",(0,i.jsx)(n.code,{children:"HashMap"}),"."]}),(0,i.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,i.jsxs)(n.p,{children:["Weitere Informationen zu generischen Datentypen finden sich im Kapitel\n",(0,i.jsx)(n.a,{href:"generics",children:"Generische Programmierung"}),"."]})})]}),(0,i.jsxs)(l.Z,{value:"d",label:"Abstrakte Datentypen",children:[(0,i.jsxs)(n.p,{children:["Abstrakte Datentypen sind Sammlungen von Daten samt den dazugeh\xf6rigen\nOperationen wie Einf\xfcgen, L\xf6schen etc. Beispiele f\xfcr abstrakte Datentypen sind\nListen (z.B. die Klassen ",(0,i.jsx)(n.code,{children:"ArrayList"})," und ",(0,i.jsx)(n.code,{children:"LinkedList"}),"), Mengen (z.B. die\nKlassen ",(0,i.jsx)(n.code,{children:"HashSet"})," und ",(0,i.jsx)(n.code,{children:"TreeSet"}),"), Warteschlangen (z.B. die Klassen\n",(0,i.jsx)(n.code,{children:"LinkedList"})," und ",(0,i.jsx)(n.code,{children:"PriorityQueue"}),") sowie Assoziativspeicher (z.B. die\nKlassen ",(0,i.jsx)(n.code,{children:"HashMap"})," und ",(0,i.jsx)(n.code,{children:"TreeMap"}),")."]}),(0,i.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,i.jsxs)(n.p,{children:["Weitere Informationen zu abstrakten Datentypen finden sich in den Kapiteln\n",(0,i.jsx)(n.a,{href:"array-lists",children:"Feldbasierte Listen (ArrayLists)"}),", ",(0,i.jsx)(n.a,{href:"lists",children:"Listen"}),",\n",(0,i.jsx)(n.a,{href:"java-collections-framework",children:"Java Collections Framework"})," und\n",(0,i.jsx)(n.a,{href:"maps",children:"Assoziativspeicher (Maps)"}),"."]})})]})]})]})}function p(e={}){let{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},5525:function(e,n,t){t.d(n,{Z:()=>s});var r=t("85893");t("67294");var i=t("67026");let a="tabItem_Ymn6";function s(e){let{children:n,hidden:t,className:s}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,i.Z)(a,s),hidden:t,children:n})}},47902:function(e,n,t){t.d(n,{Z:()=>y});var r=t("85893"),i=t("67294"),a=t("67026"),s=t("69599"),l=t("16550"),d=t("32000"),c=t("4520"),o=t("38341"),u=t("76009");function h(e){return i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||i.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function p(e){let{value:n,tabValues:t}=e;return t.some(e=>e.value===n)}var m=t("7227");let f="tabList__CuJ",j="tabItem_LNqP";function x(e){let{className:n,block:t,selectedValue:i,selectValue:l,tabValues:d}=e,c=[],{blockElementScrollPositionUntilNextRender:o}=(0,s.o5)(),u=e=>{let n=e.currentTarget,t=d[c.indexOf(n)].value;t!==i&&(o(n),l(t))},h=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{let t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1]}}n?.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":t},n),children:d.map(e=>{let{value:n,label:t,attributes:s}=e;return(0,r.jsx)("li",{role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,ref:e=>c.push(e),onKeyDown:h,onClick:u,...s,className:(0,a.Z)("tabs__item",j,s?.className,{"tabs__item--active":i===n}),children:t??n},n)})})}function b(e){let{lazy:n,children:t,selectedValue:s}=e,l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){let e=l.find(e=>e.props.value===s);return e?(0,i.cloneElement)(e,{className:(0,a.Z)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:l.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==s}))})}function v(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,a=function(e){let{values:n,children:t}=e;return(0,i.useMemo)(()=>{let e=n??h(t).map(e=>{let{props:{value:n,label:t,attributes:r,default:i}}=e;return{value:n,label:t,attributes:r,default:i}});return!function(e){let n=(0,o.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,t])}(e),[s,m]=(0,i.useState)(()=>(function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:t}))throw Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let r=t.find(e=>e.default)??t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:a})),[f,j]=function(e){let{queryString:n=!1,groupId:t}=e,r=(0,l.k6)(),a=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t}),s=(0,c._X)(a);return[s,(0,i.useCallback)(e=>{if(!a)return;let n=new URLSearchParams(r.location.search);n.set(a,e),r.replace({...r.location,search:n.toString()})},[a,r])]}({queryString:t,groupId:r}),[x,b]=function(e){var n;let{groupId:t}=e;let r=(n=t)?`docusaurus.tab.${n}`:null,[a,s]=(0,u.Nk)(r);return[a,(0,i.useCallback)(e=>{if(!!r)s.set(e)},[r,s])]}({groupId:r}),v=(()=>{let e=f??x;return p({value:e,tabValues:a})?e:null})();return(0,d.Z)(()=>{v&&m(v)},[v]),{selectedValue:s,selectValue:(0,i.useCallback)(e=>{if(!p({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);m(e),j(e),b(e)},[j,b,a]),tabValues:a}}(e);return(0,r.jsxs)("div",{className:(0,a.Z)("tabs-container",f),children:[(0,r.jsx)(x,{...n,...e}),(0,r.jsx)(b,{...n,...e})]})}function y(e){let n=(0,m.Z)();return(0,r.jsx)(v,{...e,children:h(e.children)},String(n))}},50065:function(e,n,t){t.d(n,{Z:function(){return l},a:function(){return s}});var r=t(67294);let i={},a=r.createContext(i);function s(e){let n=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/285a3c8f.3ddb427a.js b/pr-preview/pr-238/assets/js/285a3c8f.3ddb427a.js new file mode 100644 index 0000000000..7af1ce9c99 --- /dev/null +++ b/pr-preview/pr-238/assets/js/285a3c8f.3ddb427a.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3032"],{15739:function(e,t,n){n.r(t),n.d(t,{metadata:()=>r,contentTitle:()=>s,default:()=>f,assets:()=>c,toc:()=>u,frontMatter:()=>o});var r=JSON.parse('{"id":"additional-material/steffen/java-2/index","title":"Java 2","description":"","source":"@site/docs/additional-material/steffen/java-2/index.mdx","sourceDirName":"additional-material/steffen/java-2","slug":"/additional-material/steffen/java-2/","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/additional-material/steffen/java-2/index.mdx","tags":[],"version":"current","sidebarPosition":20,"frontMatter":{"title":"Java 2","description":"","sidebar_position":20,"tags":[]},"sidebar":"additionalMaterialSidebar","previous":{"title":"2023","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/2023"},"next":{"title":"Folien","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/slides"}}'),a=n("85893"),i=n("50065"),l=n("94301");let o={title:"Java 2",description:"",sidebar_position:20,tags:[]},s=void 0,c={},u=[];function d(e){return(0,a.jsx)(l.Z,{})}function f(e={}){let{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},94301:function(e,t,n){n.d(t,{Z:()=>v});var r=n("85893");n("67294");var a=n("67026"),i=n("69369"),l=n("83012"),o=n("43115"),s=n("63150"),c=n("96025"),u=n("34403");let d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function f(e){let{href:t,children:n}=e;return(0,r.jsx)(l.Z,{href:t,className:(0,a.Z)("card padding--lg",d.cardContainer),children:n})}function p(e){let{href:t,icon:n,title:i,description:l}=e;return(0,r.jsxs)(f,{href:t,children:[(0,r.jsxs)(u.Z,{as:"h2",className:(0,a.Z)("text--truncate",d.cardTitle),title:i,children:[n," ",i]}),l&&(0,r.jsx)("p",{className:(0,a.Z)("text--truncate",d.cardDescription),title:l,children:l})]})}function m(e){let{item:t}=e,n=(0,i.LM)(t),a=function(){let{selectMessage:e}=(0,o.c)();return t=>e(t,(0,c.I)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return n?(0,r.jsx)(p,{href:n,icon:"\uD83D\uDDC3\uFE0F",title:t.label,description:t.description??a(t.items.length)}):null}function h(e){let{item:t}=e,n=(0,s.Z)(t.href)?"\uD83D\uDCC4\uFE0F":"\uD83D\uDD17",a=(0,i.xz)(t.docId??void 0);return(0,r.jsx)(p,{href:t.href,icon:n,title:t.label,description:t.description??a?.description})}function j(e){let{item:t}=e;switch(t.type){case"link":return(0,r.jsx)(h,{item:t});case"category":return(0,r.jsx)(m,{item:t});default:throw Error(`unknown item type ${JSON.stringify(t)}`)}}function x(e){let{className:t}=e,n=(0,i.jA)();return(0,r.jsx)(v,{items:n.items,className:t})}function v(e){let{items:t,className:n}=e;if(!t)return(0,r.jsx)(x,{...e});let l=(0,i.MN)(t);return(0,r.jsx)("section",{className:(0,a.Z)("row",n),children:l.map((e,t)=>(0,r.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,r.jsx)(j,{item:e})},t))})}},43115:function(e,t,n){n.d(t,{c:function(){return s}});var r=n(67294),a=n(2933);let i=["zero","one","two","few","many","other"];function l(e){return i.filter(t=>e.includes(t))}let o={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function s(){let e=function(){let{i18n:{currentLocale:e}}=(0,a.Z)();return(0,r.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:l(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${t.message} +`),o}},[e])}();return{selectMessage:(t,n)=>(function(e,t,n){let r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);let a=n.select(t);return r[Math.min(n.pluralForms.indexOf(a),r.length-1)]})(n,t,e)}}},50065:function(e,t,n){n.d(t,{Z:function(){return o},a:function(){return l}});var r=n(67294);let a={},i=r.createContext(a);function l(e){let t=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/28b51f30.a64ab0e3.js b/pr-preview/pr-238/assets/js/28b51f30.a64ab0e3.js new file mode 100644 index 0000000000..518f6cb1f5 --- /dev/null +++ b/pr-preview/pr-238/assets/js/28b51f30.a64ab0e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["6136"],{93342:function(e,n,r){r.r(n),r.d(n,{metadata:()=>i,contentTitle:()=>a,default:()=>u,assets:()=>d,toc:()=>o,frontMatter:()=>s});var i=JSON.parse('{"id":"additional-material/steffen/java-2/project-report","title":"Projektbericht","description":"","source":"@site/docs/additional-material/steffen/java-2/project-report.md","sourceDirName":"additional-material/steffen/java-2","slug":"/additional-material/steffen/java-2/project-report","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/project-report","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/additional-material/steffen/java-2/project-report.md","tags":[],"version":"current","sidebarPosition":20,"frontMatter":{"title":"Projektbericht","description":"","sidebar_position":20,"tags":[]},"sidebar":"additionalMaterialSidebar","previous":{"title":"2024","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/2024"},"next":{"title":"Demos","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/demos"}}'),t=r("85893"),l=r("50065");let s={title:"Projektbericht",description:"",sidebar_position:20,tags:[]},a="Inhalte",d={},o=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Hinweis zum Klassendiagramm",id:"hinweis-zum-klassendiagramm",level:3},{value:"Anforderungen an die Implementierung",id:"anforderungen-an-die-implementierung",level:2},{value:"Einleitung",id:"einleitung",level:2},{value:"Vorstellung Sortieralgorithmen",id:"vorstellung-sortieralgorithmen",level:2},{value:"Implementierung L\xf6sung",id:"implementierung-l\xf6sung",level:2},{value:"Schluss",id:"schluss",level:2}];function g(e){let n={h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",mermaid:"mermaid",p:"p",strong:"strong",ul:"ul",...(0,l.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"inhalte",children:"Inhalte"})}),"\n",(0,t.jsx)(n.p,{children:"Der Projektbericht ist eine f\xfcnfseitige Ausarbeitung zu einem Problem, welche\nvom Dozenten gestellt wird. Diese besteht aus vier Teilen:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Einleitung"}),"\n",(0,t.jsx)(n.li,{children:"Vorstellung Sortieralgorithmen und Auswahl"}),"\n",(0,t.jsx)(n.li,{children:"Implementierung der L\xf6sung"}),"\n",(0,t.jsx)(n.li,{children:"Schluss"}),"\n"]}),"\n",(0,t.jsx)(n.h1,{id:"problemstellung",children:"Problemstellung"}),"\n",(0,t.jsxs)(n.p,{children:["Die ",(0,t.jsx)(n.strong,{children:"konkrete"})," Problemstellung ist als Kommentar in eurer Abgabe vom\n30.04.2024 in Moodle hinterlegt. Sie l\xe4sst sich in zwei Teilprobleme\nunterteilen. Zuerst m\xfcssen Daten aggregiert und anschlie\xdfend sortiert werden."]}),"\n",(0,t.jsxs)(n.p,{children:["F\xfcr die Implementierung der Aggregation soll die Aggregator Klasse implementiert\nwerden. Diese soll die Datens\xe4tze in eine aggregierte Liste umwandeln. F\xfcr die\nSortierung der aggregierten Daten soll die Sorter Klasse implementiert werden.\nDie Klasse ",(0,t.jsx)(n.strong,{children:"Row"})," soll alle ",(0,t.jsx)(n.strong,{children:"relevanten"})," Attribute eines Datensatzes\nenthalten, welche f\xfcr die Aggregation ben\xf6tigt werden. Die Klasse\n",(0,t.jsx)(n.strong,{children:"AggregatedRow"})," soll alle Attribute enthalten, welche eine aggregierte Zeile\neines Datensatzes enth\xe4lt."]}),"\n",(0,t.jsx)(n.p,{children:"F\xfcr die Implementierung der Sortierung ist ein Sortieralgorithmus auszuw\xe4hlen,\nwelcher in der Vorlesung behandelt wurde. F\xfcr die Auswahl gelten nachfolgende\nAnforderungen. Die Anzahl der aggregierten Zeilen wird mindestens eine Milliarde\nEintr\xe4ge enthalten. Der ausgew\xe4hlte Algorithmus soll theoretisch in der Lage\nsein, die Sortierung parallel zu verarbeiten."}),"\n",(0,t.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,t.jsx)(n.mermaid,{value:"classDiagram\n Aggregator -- Row\n Aggregator -- AggregatedRow\n Sorter -- AggregatedRow\n\n class Row {\n +attributeOne String\n +attributeTwo int\n }\n\n class AggregatedRow {\n +attributeOne String\n +attributeTwo double\n }\n\n class Aggregator {\n +aggregate(rows: ArrayList~Row~) ArrayList~AggregatedRow~\n }\n class Sorter {\n +sort(rows: ArrayList~AggregatedRow~) void\n }"}),"\n",(0,t.jsx)(n.h3,{id:"hinweis-zum-klassendiagramm",children:"Hinweis zum Klassendiagramm"}),"\n",(0,t.jsxs)(n.p,{children:["Die Klassen ",(0,t.jsx)(n.strong,{children:"AggregatedRow"})," und ",(0,t.jsx)(n.strong,{children:"Row"})," enthalten nur beispielhafte Attribute.\nDie Attribute m\xfcssen abh\xe4ngig von der Problemstellung definiert werden."]}),"\n",(0,t.jsx)(n.h2,{id:"anforderungen-an-die-implementierung",children:"Anforderungen an die Implementierung"}),"\n",(0,t.jsxs)(n.p,{children:["Die Klassen ",(0,t.jsx)(n.strong,{children:"Row"})," und ",(0,t.jsx)(n.strong,{children:"AggregatedRow"})," sollen nur public Attribute enthalten.\nGetter und Setter sollen nicht implementiert werden."]}),"\n",(0,t.jsxs)(n.p,{children:["Die Klassen ",(0,t.jsx)(n.strong,{children:"Aggregator"})," und ",(0,t.jsx)(n.strong,{children:"Sorter"})," k\xf6nnen mehrere private Methoden\nenthalten, um den Code \xfcbersichtlicher zu gestalten."]}),"\n",(0,t.jsx)(n.p,{children:"F\xfcr die Implementierung, d\xfcrfen keine externen Frameworks oder Bibliotheken\nverwendet werden."}),"\n",(0,t.jsx)(n.p,{children:"F\xfcr die Implementierung darf die Stream API von Java nicht verwendet werden."}),"\n",(0,t.jsx)(n.p,{children:"F\xfcr die Implementierung darf keine Sort API von Java verwendet werden, z.B.\nCollections.sort."}),"\n",(0,t.jsx)(n.h1,{id:"inhalte-des-projektberichts",children:"Inhalte des Projektberichts"}),"\n",(0,t.jsx)(n.h2,{id:"einleitung",children:"Einleitung"}),"\n",(0,t.jsx)(n.p,{children:"Die Einleitung soll die eigene Problemstellung und die vom Dozenten gestellte\nProblemstellung enthalten."}),"\n",(0,t.jsx)(n.h2,{id:"vorstellung-sortieralgorithmen",children:"Vorstellung Sortieralgorithmen"}),"\n",(0,t.jsx)(n.p,{children:"Im zweiten Teil sollen die in der Vorlesung behandelten Sortieralgorithmen in\neigenen Worten vorgestellt und verglichen werden. Anschlie\xdfend soll ein\nSortieralgorithmus ausgew\xe4hlt werden, welcher f\xfcr die nachfolgende\nImplementierung verwendet wird. Die Auswahlentscheidung soll begr\xfcndet werden."}),"\n",(0,t.jsx)(n.h2,{id:"implementierung-l\xf6sung",children:"Implementierung L\xf6sung"}),"\n",(0,t.jsxs)(n.p,{children:["Im dritten Teil soll die L\xf6sung f\xfcr die individuelle Problemstellung\nimplementiert werden. Es sind vier Klassen entsprechend dem oben angegebenen\nKlassendiagramm zu implementieren. Der Quellcode in der Dokumentation soll keine\nimports und package Definitionen enthalten. Kommentare sind nur sparsam zu\nverwenden, falls erkl\xe4rt wird, ",(0,t.jsx)(n.strong,{children:"warum"})," etwas gemacht wurde."]}),"\n",(0,t.jsx)(n.h2,{id:"schluss",children:"Schluss"}),"\n",(0,t.jsx)(n.p,{children:"Der Schluss soll pr\xe4gnant das Problem, die Vorgehensweise mit\nZwischenergebnissen und das Ergebnis zusammenfassen."})]})}function u(e={}){let{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(g,{...e})}):g(e)}},50065:function(e,n,r){r.d(n,{Z:function(){return a},a:function(){return s}});var i=r(67294);let t={},l=i.createContext(t);function s(e){let n=i.useContext(l);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),i.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/28c6e18f.35b4b664.js b/pr-preview/pr-238/assets/js/28c6e18f.35b4b664.js new file mode 100644 index 0000000000..373d60697f --- /dev/null +++ b/pr-preview/pr-238/assets/js/28c6e18f.35b4b664.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["6479"],{52293:function(e){e.exports=JSON.parse('{"tag":{"label":"design","permalink":"/java-docs/pr-preview/pr-238/tags/design","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":1,"items":[{"id":"documentation/design","title":"Softwaredesign","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/design"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/297449bd.b308b04f.js b/pr-preview/pr-238/assets/js/297449bd.b308b04f.js new file mode 100644 index 0000000000..ff7c89090b --- /dev/null +++ b/pr-preview/pr-238/assets/js/297449bd.b308b04f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2197"],{11660:function(e,n,t){t.r(n),t.d(n,{metadata:()=>r,contentTitle:()=>d,default:()=>x,assets:()=>c,toc:()=>h,frontMatter:()=>o});var r=JSON.parse('{"id":"documentation/git","title":"Git","description":"","source":"@site/docs/documentation/git.mdx","sourceDirName":"documentation","slug":"/documentation/git","permalink":"/java-docs/pr-preview/pr-238/documentation/git","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/git.mdx","tags":[{"inline":true,"label":"git","permalink":"/java-docs/pr-preview/pr-238/tags/git"}],"version":"current","sidebarPosition":12,"frontMatter":{"title":"Git","description":"","sidebar_position":12,"tags":["git"]},"sidebar":"documentationSidebar","previous":{"title":"Programmieren","permalink":"/java-docs/pr-preview/pr-238/documentation/coding"},"next":{"title":"Die Programmiersprache Java","permalink":"/java-docs/pr-preview/pr-238/documentation/java"}}'),i=t("85893"),s=t("50065"),l=t("47902"),a=t("5525");let o={title:"Git",description:"",sidebar_position:12,tags:["git"]},d=void 0,c={},h=[{value:"Git Workflows",id:"git-workflows",level:2},{value:"Git Befehle",id:"git-befehle",level:2}];function u(e){let n={a:"a",code:"code",em:"em",h2:"h2",mermaid:"mermaid",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Git stellt eine Software zur Verwaltung von Dateien mit integrierter\nVersionskontrolle dar, dessen Entwicklung unter Anderem von Linus Torvald (dem\nErfinder von Linux) initiiert wurde. Die Versionskontrolle von Git erm\xf6glicht\nden Zugriff auf \xe4ltere Entwicklungsst\xe4nde, ohne dabei den aktuellen Stand zu\nverlieren. Zudem unterst\xfctzt Git die Verwaltung von verteilten Dateien an\nverschiedenen Aufbewahrungsorten. Diese Aufbewahrungsorte werden als\n",(0,i.jsx)(n.em,{children:"Repositorys"})," bezeichnet. Man unterscheidet dabei zwischen lokalen Repositorys\nund remote Repositorys. Onlinedienste wie GitHub basieren auf Git und stellen\ndem Anwender Speicherplatz f\xfcr remote Repositorys zur Verf\xfcgung."]}),"\n",(0,i.jsx)(n.h2,{id:"git-workflows",children:"Git Workflows"}),"\n",(0,i.jsx)(n.p,{children:"Aufgrund der Flexibilit\xe4t von Git gibt es keine standardisierten Prozesse f\xfcr\ndas Arbeiten mit Git. Ein Git Workflow stellt eine Anleitung zur Verwendung von\nGit dar, die eine konsistente und produktive Arbeitsweise erm\xf6glichen soll. F\xfcr\neine effiziente und fehlerfreie Arbeitsweise sollten daher alle Mitgleider eines\nTeams die gleichen Git Workflows verwenden."}),"\n",(0,i.jsx)(n.mermaid,{value:"sequenceDiagram\n participant Arbeitsbereich\n participant Staging Area\n participant Lokales Repository\n participant Remote Repository\n\n note over Arbeitsbereich,Remote Repository: Lokales Repository erstellen\n Remote Repository ->> Arbeitsbereich: git clone\n Lokales Repository ->> Arbeitsbereich: git init\n\n note over Arbeitsbereich,Remote Repository: \xc4nderungen vornehmen\n Arbeitsbereich ->> Staging Area: git add\n activate Staging Area\n Staging Area ->> Lokales Repository: git commit\n activate Lokales Repository\n Staging Area --\x3e Arbeitsbereich: git diff\n Staging Area ->> Arbeitsbereich: git reset\n deactivate Staging Area\n Lokales Repository --\x3e Arbeitsbereich: git diff\n Lokales Repository ->> Arbeitsbereich: git reset\n deactivate Lokales Repository\n\n note over Arbeitsbereich,Remote Repository: \xc4nderungen synchronisieren\n Remote Repository ->> Lokales Repository: git fetch\n activate Lokales Repository\n Lokales Repository ->> Arbeitsbereich: git merge\n deactivate Lokales Repository\n\n Remote Repository ->> Arbeitsbereich: git pull\n Lokales Repository ->> Remote Repository: git push"}),"\n",(0,i.jsx)(n.h2,{id:"git-befehle",children:"Git Befehle"}),"\n",(0,i.jsxs)(n.p,{children:["Git bietet einen Vielzahl an verschiedenen Kommandozeilen-Befehlen um mit Git zu\narbeiten. Eine ausf\xfchrliche Dokumentation der einzelnen Befehle samt der\ndazugeh\xf6rigen Optionen k\xf6nnen auf der offiziellen\n",(0,i.jsx)(n.a,{href:"https://git-scm.com/docs",children:"Git-Homepage"})," gefunden werden. Zudem kann mit dem\nBefehl ",(0,i.jsx)(n.code,{children:"git --help"})," direkt in der Kommandozeile eine Kurzversion der\nDokumentation ausgegeben werden."]}),"\n",(0,i.jsxs)(l.Z,{children:[(0,i.jsx)(a.Z,{value:"a",label:"Git einrichten",default:!0,children:(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Git-Befehl"}),(0,i.jsx)(n.th,{children:"Beschreibung"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git config --global user.name"})}),(0,i.jsx)(n.td,{children:"Benutzername ausgeben"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:'git config --global user.name "[Benutzername]"'})}),(0,i.jsx)(n.td,{children:"Benutzername festlegen"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git config --global user.email"})}),(0,i.jsx)(n.td,{children:"E-Mail-Adresse ausgeben"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:'git config --global user.email "[E-Mail-Adresse]"'})}),(0,i.jsx)(n.td,{children:"E-Mail-Adresse festlegen"})]})]})]})}),(0,i.jsx)(a.Z,{value:"b",label:"Lokales Repository erstellen",children:(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Git-Befehl"}),(0,i.jsx)(n.th,{children:"Beschreibung"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git clone [Remote Repository]"})}),(0,i.jsx)(n.td,{children:"Remote Repository klonen"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git init [Lokales Repository]"})}),(0,i.jsx)(n.td,{children:"Lokales Repository erstellen"})]})]})]})}),(0,i.jsx)(a.Z,{value:"c",label:"\xc4nderungen versionieren",children:(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Git-Befehl"}),(0,i.jsx)(n.th,{children:"Beschreibung"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git status"})}),(0,i.jsx)(n.td,{children:"Neue und ge\xe4nderte Dateien ausgeben"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git diff"})}),(0,i.jsx)(n.td,{children:"Noch nicht indizierte \xc4nderungen ausgeben"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git add [Datei]"})}),(0,i.jsx)(n.td,{children:"Datei f\xfcr die Versionierung indizieren"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git diff --staged"})}),(0,i.jsx)(n.td,{children:"\xc4nderungen zwischen dem indizierten und dem aktuellen Stand ausgeben"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git reset [Datei]"})}),(0,i.jsx)(n.td,{children:"Datei vom Index nehmen"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:'git commit -m "[Nachricht]"'})}),(0,i.jsx)(n.td,{children:"Alle indizierten Dateien versionieren"})]})]})]})}),(0,i.jsx)(a.Z,{value:"d",label:"\xc4nderungen gruppieren",children:(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Git-Befehl"}),(0,i.jsx)(n.th,{children:"Beschreibung"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git branch"})}),(0,i.jsx)(n.td,{children:"Alle Branches ausgeben"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git branch [Branch]"})}),(0,i.jsx)(n.td,{children:"Branch erstellen"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git switch [Branch]"})}),(0,i.jsx)(n.td,{children:"Branch wechseln und Arbeitsbereich aktualisieren"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git merge [Branch]"})}),(0,i.jsx)(n.td,{children:"Branches zusammenf\xfchren"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git branch -d [Branch]"})}),(0,i.jsx)(n.td,{children:"Branch l\xf6schen"})]})]})]})}),(0,i.jsx)(a.Z,{value:"e",label:"\xc4nderungen synchronisieren",children:(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Git-Befehl"}),(0,i.jsx)(n.th,{children:"Beschreibung"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git fetch [Remote Repository]"})}),(0,i.jsx)(n.td,{children:"Versionshistorie vom remote Repository laden"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git merge [Remote Repository]/[Remote Branch]"})}),(0,i.jsx)(n.td,{children:"Branches zusammenf\xfchren"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git pull"})}),(0,i.jsx)(n.td,{children:"git fetch + git merge"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"git push [Remote Repository] [Branch]"})}),(0,i.jsx)(n.td,{children:"Versionshistorie ins remote Repository schieben"})]})]})]})})]})]})}function x(e={}){let{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(u,{...e})}):u(e)}},5525:function(e,n,t){t.d(n,{Z:()=>l});var r=t("85893");t("67294");var i=t("67026");let s="tabItem_Ymn6";function l(e){let{children:n,hidden:t,className:l}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,i.Z)(s,l),hidden:t,children:n})}},47902:function(e,n,t){t.d(n,{Z:()=>v});var r=t("85893"),i=t("67294"),s=t("67026"),l=t("69599"),a=t("16550"),o=t("32000"),d=t("4520"),c=t("38341"),h=t("76009");function u(e){return i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||i.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function x(e){let{value:n,tabValues:t}=e;return t.some(e=>e.value===n)}var g=t("7227");let j="tabList__CuJ",m="tabItem_LNqP";function p(e){let{className:n,block:t,selectedValue:i,selectValue:a,tabValues:o}=e,d=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),h=e=>{let n=e.currentTarget,t=o[d.indexOf(n)].value;t!==i&&(c(n),a(t))},u=e=>{let n=null;switch(e.key){case"Enter":h(e);break;case"ArrowRight":{let t=d.indexOf(e.currentTarget)+1;n=d[t]??d[0];break}case"ArrowLeft":{let t=d.indexOf(e.currentTarget)-1;n=d[t]??d[d.length-1]}}n?.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":t},n),children:o.map(e=>{let{value:n,label:t,attributes:l}=e;return(0,r.jsx)("li",{role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,ref:e=>d.push(e),onKeyDown:u,onClick:h,...l,className:(0,s.Z)("tabs__item",m,l?.className,{"tabs__item--active":i===n}),children:t??n},n)})})}function f(e){let{lazy:n,children:t,selectedValue:l}=e,a=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){let e=a.find(e=>e.props.value===l);return e?(0,i.cloneElement)(e,{className:(0,s.Z)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:a.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==l}))})}function b(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,s=function(e){let{values:n,children:t}=e;return(0,i.useMemo)(()=>{let e=n??u(t).map(e=>{let{props:{value:n,label:t,attributes:r,default:i}}=e;return{value:n,label:t,attributes:r,default:i}});return!function(e){let n=(0,c.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,t])}(e),[l,g]=(0,i.useState)(()=>(function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw Error("Docusaurus error: the component requires at least one children component");if(n){if(!x({value:n,tabValues:t}))throw Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let r=t.find(e=>e.default)??t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:s})),[j,m]=function(e){let{queryString:n=!1,groupId:t}=e,r=(0,a.k6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t}),l=(0,d._X)(s);return[l,(0,i.useCallback)(e=>{if(!s)return;let n=new URLSearchParams(r.location.search);n.set(s,e),r.replace({...r.location,search:n.toString()})},[s,r])]}({queryString:t,groupId:r}),[p,f]=function(e){var n;let{groupId:t}=e;let r=(n=t)?`docusaurus.tab.${n}`:null,[s,l]=(0,h.Nk)(r);return[s,(0,i.useCallback)(e=>{if(!!r)l.set(e)},[r,l])]}({groupId:r}),b=(()=>{let e=j??p;return x({value:e,tabValues:s})?e:null})();return(0,o.Z)(()=>{b&&g(b)},[b]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!x({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);g(e),m(e),f(e)},[m,f,s]),tabValues:s}}(e);return(0,r.jsxs)("div",{className:(0,s.Z)("tabs-container",j),children:[(0,r.jsx)(p,{...n,...e}),(0,r.jsx)(f,{...n,...e})]})}function v(e){let n=(0,g.Z)();return(0,r.jsx)(b,{...e,children:u(e.children)},String(n))}},50065:function(e,n,t){t.d(n,{Z:function(){return a},a:function(){return l}});var r=t(67294);let i={},s=r.createContext(i);function l(e){let n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/298453e4.c71f7e83.js b/pr-preview/pr-238/assets/js/298453e4.c71f7e83.js new file mode 100644 index 0000000000..081929fd03 --- /dev/null +++ b/pr-preview/pr-238/assets/js/298453e4.c71f7e83.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["5286"],{51766:function(e,n,t){t.r(n),t.d(n,{metadata:()=>i,contentTitle:()=>l,default:()=>u,assets:()=>c,toc:()=>o,frontMatter:()=>a});var i=JSON.parse('{"id":"exercises/unit-tests/unit-tests02","title":"UnitTests02","description":"","source":"@site/docs/exercises/unit-tests/unit-tests02.md","sourceDirName":"exercises/unit-tests","slug":"/exercises/unit-tests/unit-tests02","permalink":"/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests02","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/unit-tests/unit-tests02.md","tags":[],"version":"current","frontMatter":{"title":"UnitTests02","description":""},"sidebar":"exercisesSidebar","previous":{"title":"UnitTests01","permalink":"/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests01"},"next":{"title":"UnitTests03","permalink":"/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests03"}}'),s=t("85893"),r=t("50065");let a={title:"UnitTests02",description:""},l=void 0,c={},o=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Hinweis zur Klasse Rental",id:"hinweis-zur-klasse-rental",level:2},{value:"Hinweise zur Klasse RentalTest",id:"hinweise-zur-klasse-rentaltest",level:2}];function d(e){let n={a:"a",code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["Erstelle die JUnit5-Testklasse ",(0,s.jsx)(n.code,{children:"RentalTest"})," und erweitere die Klasse ",(0,s.jsx)(n.code,{children:"Rental"}),"\naus \xdcbungsaufgabe ",(0,s.jsx)(n.a,{href:"../exceptions/exceptions01",children:"Exceptions01"})," anhand des\nabgebildeten Klassendiagramms."]}),"\n",(0,s.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,s.jsx)(n.mermaid,{value:"classDiagram\n Vehicle <|-- Car : extends\n Vehicle <|-- Truck : extends\n Engine --o Vehicle\n Rental o-- Vehicle\n Partner <|.. Rental : implements\n TravelAgency o-- Partner\n RentalTest o-- Rental\n\n class Vehicle {\n <>\n -make: String #123;final#125;\n -model: String #123;final#125;\n -engine: Engine #123;final#125;\n #speedInKmh: double\n -numberOfVehicles: int$\n +Vehicle(make: String, model: String, engine: Engine)\n +make() String\n +model() String\n +engine() Engine\n +getSpeedInKmh() double\n +accelerate(valueInKmh: int) void #123;final#125;\n +brake(valueInKmh: int) void #123;final#125;\n +equals(object: Object) boolean\n +hashCode() int\n +toString() String\n +getNumberOfVehicles()$ int\n }\n\n class Engine {\n <>\n DIESEL = Diesel\n PETROL = Benzin\n GAS = Gas\n ELECTRO = Elektro\n -description: String #123;final#125;\n }\n\n class Car {\n <>\n -seats: int #123;final#125;\n +Car(make: String, model: String, engine: Engine, seats: int)\n +seats() int\n +doATurboBoost() void\n +equals(object: Object) boolean\n +hashCode() int\n +toString() String\n }\n\n class Truck {\n <>\n -cargo: int #123;final#125;\n -isTransformed: boolean\n +Truck(make: String, model: String, engine: Engine, cargo: int)\n +cargo() int\n +isTransformed() boolean\n +transform() void\n +equals(object: Object) boolean\n +hashCode() int\n +toString() String\n }\n\n class Rental {\n -name: String #123;final#125;\n -vehicles: List~Vehicle~ #123;final#125;\n +Rental(name: String)\n +name() String\n +vehicles() List~Vehicle~\n +addVehicle(vehicle: Vehicle) void\n +addAllVehicles(vehicles: Vehicle...) void\n +transformAllTrucks() void\n +accelerateAllVehicles(valueInKmh: int) void\n +equals(object: Object) boolean\n +hashCode() int\n +toString() String\n }\n\n class Partner {\n <>\n +toString() String\n }\n\n class TravelAgency {\n -name: String #123;final#125;\n -partners: List~Partner~ #123;final#125;\n +TravelAgency(name: String)\n +name() String\n +partners() List~Partner~\n +addPartner(partner: Partner) void\n +equals(object: Object) boolean\n +hashCode() int\n +toString() String\n }\n\n class RentalTest {\n <>\n -rental: Rental\n +setUp() void\n +testTransformAllTrucks() void\n +testAccelerateAllVehicles() void\n }"}),"\n",(0,s.jsxs)(n.h2,{id:"hinweis-zur-klasse-rental",children:["Hinweis zur Klasse ",(0,s.jsx)(n.em,{children:"Rental"})]}),"\n",(0,s.jsxs)(n.p,{children:["Die Methode ",(0,s.jsx)(n.code,{children:"void accelerateAllVehicles(valueInKmh: int)"})," soll alle Fahrzeuge\nder Fahrzeugvermietung um den eingehenden Wert beschleunigen."]}),"\n",(0,s.jsxs)(n.h2,{id:"hinweise-zur-klasse-rentaltest",children:["Hinweise zur Klasse ",(0,s.jsx)(n.em,{children:"RentalTest"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Die Lebenszyklus-Methode ",(0,s.jsx)(n.code,{children:"void setUp()"})," soll eine Fahrzeugvermietung samt\ndazugeh\xf6riger Fahrzeuge erzeugen"]}),"\n",(0,s.jsxs)(n.li,{children:["Die Testmethode ",(0,s.jsx)(n.code,{children:"void testTransformAllTrucks()"})," soll pr\xfcfen, ob nach Ausf\xfchren\nder Methode ",(0,s.jsx)(n.code,{children:"void transformAllTrucks()"})," der Klasse ",(0,s.jsx)(n.code,{children:"Rental"})," alle Lastwagen in\nAutobots umgewandelt werden und nach erneutem Ausf\xfchren wieder\nzur\xfcckverwandelt werden"]}),"\n",(0,s.jsxs)(n.li,{children:["Die Testmethode ",(0,s.jsx)(n.code,{children:"void testAccelerateAllVehicles()"})," soll pr\xfcfen, ob beim\nAusf\xfchren der Methode ",(0,s.jsx)(n.code,{children:"void accelerateAllVehicles(valueInKmh: int)"})," der Klasse\n",(0,s.jsx)(n.code,{children:"Rental"})," mit einem negativen Wert die Ausnahme ",(0,s.jsx)(n.code,{children:"InvalidValueException"}),"\nausgel\xf6st wird"]}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},50065:function(e,n,t){t.d(n,{Z:function(){return l},a:function(){return a}});var i=t(67294);let s={},r=i.createContext(s);function a(e){let n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2aa1ae30.bb4c92e9.js b/pr-preview/pr-238/assets/js/2aa1ae30.bb4c92e9.js new file mode 100644 index 0000000000..2dfcd0aefe --- /dev/null +++ b/pr-preview/pr-238/assets/js/2aa1ae30.bb4c92e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1391"],{98582:function(e,n,a){a.d(n,{Z:function(){return t}});var s=a(85893),r=a(67294);function t(e){let{children:n,initSlides:a,width:t=null,height:i=null}=e;return(0,r.useEffect)(()=>{a()}),(0,s.jsx)("div",{className:"reveal reveal-viewport",style:{width:t??"100vw",height:i??"100vh"},children:(0,s.jsx)("div",{className:"slides",children:n})})}},57270:function(e,n,a){a.d(n,{O:function(){return s}});let s=()=>{let e=a(42199),n=a(87251),s=a(60977),r=a(12489);new(a(29197))({plugins:[e,n,s,r]}).initialize({hash:!0})}},63037:function(e,n,a){a.d(n,{K:function(){return r}});var s=a(85893);a(67294);let r=()=>(0,s.jsx)("p",{style:{fontSize:"8px",position:"absolute",bottom:0,right:0},children:"*NKR"})},17960:function(e,n,a){a.r(n),a.d(n,{default:function(){return c}});var s=a(85893),r=a(83012),t=a(98582),i=a(57270),l=a(63037);function c(){return(0,s.jsxs)(t.Z,{initSlides:i.O,children:[(0,s.jsx)("section",{children:(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Agenda"}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"Funktionale Programmierung"}),(0,s.jsx)("li",{className:"fragment",children:"Lambdafunktionen"}),(0,s.jsx)("li",{className:"fragment",children:"Allgemeine Funktionale Interfaces"}),(0,s.jsx)("li",{className:"fragment",children:"Methodenreferenzen"})]})]})}),(0,s.jsxs)("section",{children:[(0,s.jsx)("section",{children:(0,s.jsx)("h2",{children:"Funktionale Programmierung"})}),(0,s.jsx)("section",{children:(0,s.jsxs)("p",{children:["Funktionale Programmierung ist ein ",(0,s.jsx)("b",{children:"Programmierparadigma"}),", bei dem Funktionen als Werte behandelt werden und auf Seiteneffekte verzichtet wird."]})}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Funktionen als Werte"}),"Funktionen...",(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"sind Methoden"}),(0,s.jsx)("li",{className:"fragment",children:"k\xf6nnen als Parameter definiert werden"}),(0,s.jsx)("li",{className:"fragment",children:"k\xf6nnen als Argument definiert werden"}),(0,s.jsx)("li",{className:"fragment",children:"k\xf6nnen als Variable definiert werden"})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Seiteneffekt"}),(0,s.jsx)("p",{className:"fragment",children:"Ein Seiteneffekt beschreibt eine Zustands\xe4nderung"})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Beispiele Seiteneffekte"}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{"data-line-numbers":!0,className:"java",dangerouslySetInnerHTML:{__html:"public class Human {\n private int age;\n \n public void setAge(age) {\n this.age = age;\n /*Seiteneffekt, da Wert au\xdferhalb\n der Funktion ver\xe4ndert wird */ \n }\n public int getAge() {\n return age;\n /*Kein Seiteneffekt, da Wert nicht au\xdferhalb\n der Funktion ver\xe4ndert wird */ \n }\n}\n"}})})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:(0,s.jsx)(r.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/functionalprogramming",children:"Demo - Lambda Funktionen"})}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"Age Comparator"}),(0,s.jsx)("li",{className:"fragment",children:(0,s.jsx)(r.Z,{to:"/documentation/inner-classes",children:"Anonyme Klasse*"})}),(0,s.jsx)("li",{className:"fragment",children:"Anonyme Funktion"})]}),(0,s.jsx)(l.K,{})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("section",{children:(0,s.jsx)("h2",{children:"Lambdafunktionen"})}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Lambdafunktion"}),(0,s.jsx)("p",{className:"fragment",children:"Eine Lambdafunktion ist eine Methode ohne Name, die wie eine Referenzvariable verwendet werden kann."}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{"data-line-numbers":"4",className:"java",dangerouslySetInnerHTML:{__html:"public class Main {\n public static void main(String[] args) {\n Comparator<Human> sortAge;\n sortAge = (h1, h2) -> h1.age() > h2.age() ? 1 : -1;\n }\n}\n"}})}),(0,s.jsx)("span",{className:"fragment foot-note",children:"Lambdafunktionen werden auch anonyme Funktion, anonymous function oder arrow function genannt."})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Typisierung"}),(0,s.jsx)("p",{className:"fragment",children:"Ein funkionales Interface wird f\xfcr die Typisierung einer Lambdafunktion verwendet."}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{"data-line-numbers":"3",className:"java",dangerouslySetInnerHTML:{__html:"public class Main {\n public static void main(String[] args) {\n Comparator<Human> sortAge;\n sortAge = (h1, h2) -> h1.age() > h2.age() ? 1 : -1;\n }\n}\n"}})}),(0,s.jsx)("p",{className:"fragment foot-note",children:"Ein funktionales Interface ist ein Interface mit genau einer abstrakten Methode und einer speziellen Annotation."})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Funktionales Interface"}),(0,s.jsxs)("p",{className:"fragment",children:["Funktionale Interfaces werden mit @FunctionalInterface markiert, z.B."," ",(0,s.jsx)(r.Z,{to:"https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Comparator.html",children:"Comparator"})]}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"@FunctionalInterface\npublic interface Comparator<T> {\n public int compare(T o1, T o2);\n}\n"}})}),(0,s.jsxs)("p",{className:"fragment foot-note",children:["Nicht jedes Interface mit einer einzigen abstrakten Methode ist funktional, z.B."," ",(0,s.jsx)(r.Z,{to:"https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Comparable.html",children:"Comparable"})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Syntax Lambdafunktion"}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"Kein Parameter"}),(0,s.jsx)("li",{className:"fragment",children:"Ein Parameter"}),(0,s.jsx)("li",{className:"fragment",children:"Mehrere Parameter"}),(0,s.jsx)("li",{className:"fragment",children:"Eine Anweisung"}),(0,s.jsx)("li",{className:"fragment",children:"Mehrere Anweisungen"}),(0,s.jsx)("li",{className:"fragment",children:"Return Anweisung"})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Kein Parameter"}),(0,s.jsx)("p",{className:"fragment",children:"Hat das funktionale Interface keinen Parameter, werden runde Klammern ben\xf6tigt."}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public interface NoParamFunction {\n public void do();\n};\n"}})}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'NoParamFunction function = () -> {\n System.out.println("Kein Parameter");\n};\n'}})})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Ein Parameter"}),(0,s.jsx)("p",{className:"fragment",children:"Hat das funktionale Interface einen Parameter, werden keine runden Klammern ben\xf6tigt."}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public interface OneParamFunction {\n public void do(String one);\n}\n"}})}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'OneParamFunction function = one -> {\n System.out.println("Ein Parameter: " + one);\n};\n'}})})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Mehrere Parameter"}),(0,s.jsx)("p",{className:"fragment",children:"Hat das funktionale Interface mehrere Parameter, werden runden Klammern ben\xf6tigt."}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public interface MultiParamFunction {\n public void do(String one, String two);\n}\n"}})}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'MultiParamFunction function = (one, two) -> {\n System.out.println("Zwei Parameter: " + one + two);\n};\n'}})})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Eine Anweisung"}),(0,s.jsx)("p",{className:"fragment",children:"Besteht die Lambdafunktion aus einer Anweisung sind keine geschweifte Klammern notwendig."}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'MultiParamFunction function = (one, two) -> \n System.out.println("Zwei Parameter: " + one + two);\n'}})})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Mehrere Anweisungen"}),(0,s.jsx)("p",{className:"fragment",children:"Besteht die Lambdafunktion aus mehrern Anweisungen sind geschweifte Klammern notwendig."}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'MultiParamFunction function = (one, two) -> {\n System.out.println("Parameter Eins: " + one);\n System.out.println("Parameter Zwei: " + two);\n};\n'}})})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"return-Anweisung"}),(0,s.jsx)("p",{className:"fragment",children:"Besteht die Lambdafunktion aus einer einzelnen return Anweisung, sind keine geschweifte Klammern notwendig und das return Statement kann weggelassen werden."}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public interface OneParamReturnFunction {\n public boolean validate(Human human);\n}\n"}})}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"OneParamReturnFunction function = h -> h.age() > 10;\n"}})})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:(0,s.jsx)(r.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/functionalinterfaces/owninterfaces",children:"Demo - Eigene Funktionale Interfaces"})}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"Intro Shopping List Example"}),(0,s.jsx)("li",{className:"fragment",children:"Problem 1"}),(0,s.jsx)("li",{className:"fragment",children:"Problem 2"})]})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("section",{children:(0,s.jsx)("h2",{children:"Allgemeine Funktionale Interfaces"})}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Grundkategorien von Funktionalen Interfaces"}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"Consumer"}),(0,s.jsx)("li",{className:"fragment",children:"Function"}),(0,s.jsx)("li",{className:"fragment",children:"Predicate"}),(0,s.jsx)("li",{className:"fragment",children:"Supplier"})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Consumer"}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public interface Consumer<T> {\n public void accept(T t);\n}\n"}})}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public interface BiConsumer<T, U> {\n public void accept(T t, U u);\n}\n"}})}),(0,s.jsx)("p",{className:"fragment",children:"Code ausf\xfchren ohne Daten weiterzugeben."})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Function"}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public interface Function<T, R> {\n public R apply(T t);\n}\n"}})}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public interface BiFunction<T, U, R> {\n public R apply(T t, U u);\n}\n"}})}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public interface UnaryOperator<T> {\n public T apply(T t);\n}\n"}})}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public interface BinaryOperator<T> {\n public T apply(T t1, T t2);\n}\n"}})}),(0,s.jsx)("p",{className:"fragment",children:"Code ausf\xfchren, der Daten zur\xfcckgibt."})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Predicate"}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public interface Predicate<T> {\n public boolean test(T t);\n}\n"}})}),(0,s.jsx)("p",{className:"fragment",children:"Code ausf\xfchren, der true oder false zur\xfcckgibt."})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Supplier*"}),(0,s.jsx)("pre",{className:"fragment",children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public interface Supplier<T> {\n public T get();\n}\n"}})}),(0,s.jsx)("p",{className:"fragment",children:"Code ausf\xfchren, der Daten vom Typ T zur\xfcckgibt."}),(0,s.jsx)("div",{className:"fragment",children:(0,s.jsx)(l.K,{})})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:(0,s.jsx)(r.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/functionalinterfaces/knowninterfaces",children:"Demo - Allgemeine Funktionale Interfaces"})}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"Consumer anstatt ProductsChangedConsumer"}),(0,s.jsx)("li",{className:"fragment",children:"Predicate anstatt AddAllowedChecker"})]})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("section",{children:(0,s.jsx)("h2",{children:"Methodenreferenzen"})}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Warum Methodenreferenzen?"}),(0,s.jsx)("p",{className:"fragment",children:"Mit Methodenreferenzen kann man noch weniger Code schreiben."}),(0,s.jsx)("p",{className:"fragment",children:"Hat ein Parameter die gleiche Signatur, wie eine statische Methode, kann diese Methode als Methodenreferenz \xfcbergeben werden."})]}),(0,s.jsxs)("section",{children:[(0,s.jsxs)("h2",{children:["Beispiel ArrayList -"," ",(0,s.jsx)(r.Z,{to:"https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/ArrayList.html#forEach(java.util.function.Consumer)",children:"For Each"})]}),(0,s.jsx)("pre",{children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Main {\n public static void main(String[] args) {\n ArrayList<String> names = new ArrayList<>()\n \n // lambda funktion\n names.forEach((name) -> System.out.println(name));\n \n // methodenreferenz\n names.forEach(System.out::println);\n }\n}\n"}})})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Verwenden von Methodenreferenzen?"}),(0,s.jsx)("p",{className:"fragment",children:"Anstatt die Methode \xfcber einen Punkt aufzurufen, wird ein zweifacher Doppelpunkt verwendet."}),(0,s.jsx)("p",{className:"fragment",children:'Mit dem "new" nach dem zweifachen Doppelpunkt kann auch der Konstruktor einer Klasse referenziert werden.'}),(0,s.jsx)(l.K,{})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:(0,s.jsx)(r.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/functionalinterfaces/methodreferences",children:"Demo - Methodenreferenzen"})}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"Methodensignatur System.out.println"}),(0,s.jsx)("li",{className:"fragment",children:"OneTimePrinter"})]})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Rest of the Day"}),(0,s.jsx)("ul",{children:(0,s.jsx)("li",{className:"fragment",children:(0,s.jsx)(r.Z,{to:"https://jappuccini.github.io/java-docs/exercises/lambdas/",children:"Lambdas"})})}),(0,s.jsx)("p",{className:"fragment font-medium",children:"Bei Lambdas 01 kann die Teilaufgabe mit anonymer Klasse ignoriert werden."})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2b281db4.1c99d8f0.js b/pr-preview/pr-238/assets/js/2b281db4.1c99d8f0.js new file mode 100644 index 0000000000..16a8618d2b --- /dev/null +++ b/pr-preview/pr-238/assets/js/2b281db4.1c99d8f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["369"],{25714:function(a){a.exports=JSON.parse('{"tag":{"label":"uml","permalink":"/java-docs/pr-preview/pr-238/tags/uml","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":4,"items":[{"id":"documentation/activity-diagrams","title":"Aktivit\xe4tsdiagramme","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/activity-diagrams"},{"id":"exercises/activity-diagrams/activity-diagrams","title":"Aktivit\xe4tsdiagramme","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/activity-diagrams/"},{"id":"documentation/class-diagrams","title":"Klassendiagramme","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/class-diagrams"},{"id":"exercises/class-diagrams/class-diagrams","title":"Klassendiagramme","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/class-diagrams/"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2b501325.196cb880.js b/pr-preview/pr-238/assets/js/2b501325.196cb880.js new file mode 100644 index 0000000000..ba1b9bb2c9 --- /dev/null +++ b/pr-preview/pr-238/assets/js/2b501325.196cb880.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8691"],{1068:function(a){a.exports=JSON.parse('{"tag":{"label":"wrappers","permalink":"/java-docs/pr-preview/pr-238/tags/wrappers","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":2,"items":[{"id":"exercises/java-api/java-api","title":"Die Java API","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/java-api/"},{"id":"documentation/wrappers","title":"Wrapper-Klassen","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/wrappers"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2b504e58.4a37c35d.js b/pr-preview/pr-238/assets/js/2b504e58.4a37c35d.js new file mode 100644 index 0000000000..c43dae39ce --- /dev/null +++ b/pr-preview/pr-238/assets/js/2b504e58.4a37c35d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["649"],{27138:function(e,a,t){t.r(a),t.d(a,{metadata:()=>r,contentTitle:()=>u,default:()=>p,assets:()=>o,toc:()=>c,frontMatter:()=>l});var r=JSON.parse('{"id":"exercises/java-api/java-api02","title":"JavaAPI02","description":"","source":"@site/docs/exercises/java-api/java-api02.mdx","sourceDirName":"exercises/java-api","slug":"/exercises/java-api/java-api02","permalink":"/java-docs/pr-preview/pr-238/exercises/java-api/java-api02","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/java-api/java-api02.mdx","tags":[],"version":"current","frontMatter":{"title":"JavaAPI02","description":""},"sidebar":"exercisesSidebar","previous":{"title":"JavaAPI01","permalink":"/java-docs/pr-preview/pr-238/exercises/java-api/java-api01"},"next":{"title":"JavaAPI03","permalink":"/java-docs/pr-preview/pr-238/exercises/java-api/java-api03"}}'),n=t("85893"),i=t("50065"),s=t("39661");let l={title:"JavaAPI02",description:""},u=void 0,o={},c=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2},{value:"Hinweis",id:"hinweis",level:2}];function d(e){let a={code:"code",h2:"h2",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Erstelle eine ausf\xfchrbare Klasse zum L\xf6sen einer quadratischen Gleichung mit\nHilfe der Mitternachtsformel."}),"\n",(0,n.jsx)(a.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,n.jsx)(a.pre,{children:(0,n.jsx)(a.code,{className:"language-console",children:"Gib bitte einen Wert f\xfcr a ein: 6\nGib bitte einen Wert f\xfcr b ein: 8\nGib bitte einen Wert f\xfcr c ein: 2\nx1 = -0.3\nx2 = -1.0\n"})}),"\n",(0,n.jsx)(a.h2,{id:"hinweis",children:"Hinweis"}),"\n",(0,n.jsxs)(a.p,{children:["Die Klasse ",(0,n.jsx)(a.code,{children:"Math"})," stellt f\xfcr die Wurzel-Berechnung sowie die Potenz-Berechnung\npassende Methoden zur Verf\xfcgung."]}),"\n",(0,n.jsx)(s.Z,{pullRequest:"31",branchSuffix:"java-api/02"})]})}function p(e={}){let{wrapper:a}={...(0,i.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},5525:function(e,a,t){t.d(a,{Z:()=>s});var r=t("85893");t("67294");var n=t("67026");let i="tabItem_Ymn6";function s(e){let{children:a,hidden:t,className:s}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,n.Z)(i,s),hidden:t,children:a})}},47902:function(e,a,t){t.d(a,{Z:()=>g});var r=t("85893"),n=t("67294"),i=t("67026"),s=t("69599"),l=t("16550"),u=t("32000"),o=t("4520"),c=t("38341"),d=t("76009");function p(e){return n.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||n.isValidElement(e)&&function(e){let{props:a}=e;return!!a&&"object"==typeof a&&"value"in a}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:a,tabValues:t}=e;return t.some(e=>e.value===a)}var v=t("7227");let f="tabList__CuJ",b="tabItem_LNqP";function j(e){let{className:a,block:t,selectedValue:n,selectValue:l,tabValues:u}=e,o=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),d=e=>{let a=e.currentTarget,t=u[o.indexOf(a)].value;t!==n&&(c(a),l(t))},p=e=>{let a=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=o.indexOf(e.currentTarget)+1;a=o[t]??o[0];break}case"ArrowLeft":{let t=o.indexOf(e.currentTarget)-1;a=o[t]??o[o.length-1]}}a?.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},a),children:u.map(e=>{let{value:a,label:t,attributes:s}=e;return(0,r.jsx)("li",{role:"tab",tabIndex:n===a?0:-1,"aria-selected":n===a,ref:e=>o.push(e),onKeyDown:p,onClick:d,...s,className:(0,i.Z)("tabs__item",b,s?.className,{"tabs__item--active":n===a}),children:t??a},a)})})}function m(e){let{lazy:a,children:t,selectedValue:s}=e,l=(Array.isArray(t)?t:[t]).filter(Boolean);if(a){let e=l.find(e=>e.props.value===s);return e?(0,n.cloneElement)(e,{className:(0,i.Z)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:l.map((e,a)=>(0,n.cloneElement)(e,{key:a,hidden:e.props.value!==s}))})}function x(e){let a=function(e){let{defaultValue:a,queryString:t=!1,groupId:r}=e,i=function(e){let{values:a,children:t}=e;return(0,n.useMemo)(()=>{let e=a??p(t).map(e=>{let{props:{value:a,label:t,attributes:r,default:n}}=e;return{value:a,label:t,attributes:r,default:n}});return!function(e){let a=(0,c.lx)(e,(e,a)=>e.value===a.value);if(a.length>0)throw Error(`Docusaurus error: Duplicate values "${a.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[a,t])}(e),[s,v]=(0,n.useState)(()=>(function(e){let{defaultValue:a,tabValues:t}=e;if(0===t.length)throw Error("Docusaurus error: the component requires at least one children component");if(a){if(!h({value:a,tabValues:t}))throw Error(`Docusaurus error: The has a defaultValue "${a}" but none of its children has the corresponding value. Available values are: ${t.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return a}let r=t.find(e=>e.default)??t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:a,tabValues:i})),[f,b]=function(e){let{queryString:a=!1,groupId:t}=e,r=(0,l.k6)(),i=function(e){let{queryString:a=!1,groupId:t}=e;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!t)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:a,groupId:t}),s=(0,o._X)(i);return[s,(0,n.useCallback)(e=>{if(!i)return;let a=new URLSearchParams(r.location.search);a.set(i,e),r.replace({...r.location,search:a.toString()})},[i,r])]}({queryString:t,groupId:r}),[j,m]=function(e){var a;let{groupId:t}=e;let r=(a=t)?`docusaurus.tab.${a}`:null,[i,s]=(0,d.Nk)(r);return[i,(0,n.useCallback)(e=>{if(!!r)s.set(e)},[r,s])]}({groupId:r}),x=(()=>{let e=f??j;return h({value:e,tabValues:i})?e:null})();return(0,u.Z)(()=>{x&&v(x)},[x]),{selectedValue:s,selectValue:(0,n.useCallback)(e=>{if(!h({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);v(e),b(e),m(e)},[b,m,i]),tabValues:i}}(e);return(0,r.jsxs)("div",{className:(0,i.Z)("tabs-container",f),children:[(0,r.jsx)(j,{...a,...e}),(0,r.jsx)(m,{...a,...e})]})}function g(e){let a=(0,v.Z)();return(0,r.jsx)(x,{...e,children:p(e.children)},String(a))}},39661:function(e,a,t){t.d(a,{Z:function(){return u}});var r=t(85893);t(67294);var n=t(47902),i=t(5525),s=t(83012),l=t(45056);function u(e){let{pullRequest:a,branchSuffix:t}=e;return(0,r.jsxs)(n.Z,{children:[(0,r.jsxs)(i.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,r.jsx)(l.Z,{language:"console",children:`git switch exercises/${t}`}),(0,r.jsx)(s.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${t}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(i.Z,{value:"solution",label:"Solution",children:[(0,r.jsx)(l.Z,{language:"console",children:`git switch solutions/${t}`}),(0,r.jsx)(s.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${t}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(i.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,r.jsxs)(s.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${a}/files?diff=split`,children:["PR#",a]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2c284d67.d7f6a89a.js b/pr-preview/pr-238/assets/js/2c284d67.d7f6a89a.js new file mode 100644 index 0000000000..964d9edde4 --- /dev/null +++ b/pr-preview/pr-238/assets/js/2c284d67.d7f6a89a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8417"],{18645:function(e,n,s){s.r(n),s.d(n,{metadata:()=>r,contentTitle:()=>o,default:()=>p,assets:()=>u,toc:()=>c,frontMatter:()=>l});var r=JSON.parse('{"id":"exercises/inner-classes/inner-classes02","title":"InnerClasses02","description":"","source":"@site/docs/exercises/inner-classes/inner-classes02.mdx","sourceDirName":"exercises/inner-classes","slug":"/exercises/inner-classes/inner-classes02","permalink":"/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes02","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/inner-classes/inner-classes02.mdx","tags":[],"version":"current","frontMatter":{"title":"InnerClasses02","description":""},"sidebar":"exercisesSidebar","previous":{"title":"InnerClasses01","permalink":"/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes01"},"next":{"title":"InnerClasses03","permalink":"/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes03"}}'),a=s("85893"),t=s("50065"),i=s("39661");let l={title:"InnerClasses02",description:""},o=void 0,u={},c=[{value:"Klassendiagramm",id:"klassendiagramm",level:2}];function d(e){let n={a:"a",code:"code",h2:"h2",li:"li",mermaid:"mermaid",ul:"ul",...(0,t.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Passe die Klassen ",(0,a.jsx)(n.code,{children:"Company"})," und ",(0,a.jsx)(n.code,{children:"Employee"})," aus \xdcbungsaufgabe\n",(0,a.jsx)(n.a,{href:"../exceptions/exceptions03",children:"Exceptions03"})," anhand des abgebildeten\nKlassendiagramms an"]}),"\n",(0,a.jsxs)(n.li,{children:["Passe die ausf\xfchrbare Klasse aus \xdcbungsaufgabe\n",(0,a.jsx)(n.a,{href:"../exceptions/exceptions03",children:"Exceptions03"})," so an, dass sie fehlerfrei\nausgef\xfchrt werden kann"]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,a.jsx)(n.mermaid,{value:"classDiagram\n Company *-- Employee\n Employee o-- Person\n\n class Company {\n -name: String #123;final#125;\n -employees: List~Employee~ #123;final#125;\n -numberOfEmployees: int\n +Company(name: String)\n +name() String\n +employees() List~Employee~\n +getNumberOfEmployees() int\n +addEmployee(employee: Employee) void\n +equals(object: Object) boolean\n +hashCode() int\n +toString() String\n }\n\n class Person {\n -name: String #123;final#125;\n +Person(name: String)\n +name() String\n +equals(object: Object) boolean\n +hashCode() int\n +toString() String\n }\n\n class Employee {\n -employeeId: int #123;final#125;\n -person: Person #123;final#125;\n -salaryInEuro: int\n +Employee(employeeId: int, person: Person, salaryInEuro: int)\n +employeeId() int\n +name() String\n +setSalaryInEuro(salaryInEuro: int) void\n +getSalaryInEuro() int\n +equals(object: Object) boolean\n +hashCode() int\n +toString() String\n }"}),"\n",(0,a.jsx)(i.Z,{pullRequest:"55",branchSuffix:"inner-classes/02"})]})}function p(e={}){let{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},5525:function(e,n,s){s.d(n,{Z:()=>i});var r=s("85893");s("67294");var a=s("67026");let t="tabItem_Ymn6";function i(e){let{children:n,hidden:s,className:i}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,a.Z)(t,i),hidden:s,children:n})}},47902:function(e,n,s){s.d(n,{Z:()=>j});var r=s("85893"),a=s("67294"),t=s("67026"),i=s("69599"),l=s("16550"),o=s("32000"),u=s("4520"),c=s("38341"),d=s("76009");function p(e){return a.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||a.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function m(e){let{value:n,tabValues:s}=e;return s.some(e=>e.value===n)}var h=s("7227");let f="tabList__CuJ",b="tabItem_LNqP";function g(e){let{className:n,block:s,selectedValue:a,selectValue:l,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.o5)(),d=e=>{let n=e.currentTarget,s=o[u.indexOf(n)].value;s!==a&&(c(n),l(s))},p=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let s=u.indexOf(e.currentTarget)+1;n=u[s]??u[0];break}case"ArrowLeft":{let s=u.indexOf(e.currentTarget)-1;n=u[s]??u[u.length-1]}}n?.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,t.Z)("tabs",{"tabs--block":s},n),children:o.map(e=>{let{value:n,label:s,attributes:i}=e;return(0,r.jsx)("li",{role:"tab",tabIndex:a===n?0:-1,"aria-selected":a===n,ref:e=>u.push(e),onKeyDown:p,onClick:d,...i,className:(0,t.Z)("tabs__item",b,i?.className,{"tabs__item--active":a===n}),children:s??n},n)})})}function x(e){let{lazy:n,children:s,selectedValue:i}=e,l=(Array.isArray(s)?s:[s]).filter(Boolean);if(n){let e=l.find(e=>e.props.value===i);return e?(0,a.cloneElement)(e,{className:(0,t.Z)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:l.map((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==i}))})}function v(e){let n=function(e){let{defaultValue:n,queryString:s=!1,groupId:r}=e,t=function(e){let{values:n,children:s}=e;return(0,a.useMemo)(()=>{let e=n??p(s).map(e=>{let{props:{value:n,label:s,attributes:r,default:a}}=e;return{value:n,label:s,attributes:r,default:a}});return!function(e){let n=(0,c.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,s])}(e),[i,h]=(0,a.useState)(()=>(function(e){let{defaultValue:n,tabValues:s}=e;if(0===s.length)throw Error("Docusaurus error: the component requires at least one children component");if(n){if(!m({value:n,tabValues:s}))throw Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${s.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let r=s.find(e=>e.default)??s[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:t})),[f,b]=function(e){let{queryString:n=!1,groupId:s}=e,r=(0,l.k6)(),t=function(e){let{queryString:n=!1,groupId:s}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!s)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return s??null}({queryString:n,groupId:s}),i=(0,u._X)(t);return[i,(0,a.useCallback)(e=>{if(!t)return;let n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}({queryString:s,groupId:r}),[g,x]=function(e){var n;let{groupId:s}=e;let r=(n=s)?`docusaurus.tab.${n}`:null,[t,i]=(0,d.Nk)(r);return[t,(0,a.useCallback)(e=>{if(!!r)i.set(e)},[r,i])]}({groupId:r}),v=(()=>{let e=f??g;return m({value:e,tabValues:t})?e:null})();return(0,o.Z)(()=>{v&&h(v)},[v]),{selectedValue:i,selectValue:(0,a.useCallback)(e=>{if(!m({value:e,tabValues:t}))throw Error(`Can't select invalid tab value=${e}`);h(e),b(e),x(e)},[b,x,t]),tabValues:t}}(e);return(0,r.jsxs)("div",{className:(0,t.Z)("tabs-container",f),children:[(0,r.jsx)(g,{...n,...e}),(0,r.jsx)(x,{...n,...e})]})}function j(e){let n=(0,h.Z)();return(0,r.jsx)(v,{...e,children:p(e.children)},String(n))}},39661:function(e,n,s){s.d(n,{Z:function(){return o}});var r=s(85893);s(67294);var a=s(47902),t=s(5525),i=s(83012),l=s(45056);function o(e){let{pullRequest:n,branchSuffix:s}=e;return(0,r.jsxs)(a.Z,{children:[(0,r.jsxs)(t.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,r.jsx)(l.Z,{language:"console",children:`git switch exercises/${s}`}),(0,r.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${s}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(t.Z,{value:"solution",label:"Solution",children:[(0,r.jsx)(l.Z,{language:"console",children:`git switch solutions/${s}`}),(0,r.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${s}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(t.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,r.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${n}/files?diff=split`,children:["PR#",n]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2d65bd8b.4e38a854.js b/pr-preview/pr-238/assets/js/2d65bd8b.4e38a854.js new file mode 100644 index 0000000000..ea628d17f9 --- /dev/null +++ b/pr-preview/pr-238/assets/js/2d65bd8b.4e38a854.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["6366"],{49449:function(e,n,s){s.r(n),s.d(n,{metadata:()=>r,contentTitle:()=>o,default:()=>p,assets:()=>c,toc:()=>u,frontMatter:()=>l});var r=JSON.parse('{"id":"exercises/exceptions/exceptions03","title":"Exceptions03","description":"","source":"@site/docs/exercises/exceptions/exceptions03.mdx","sourceDirName":"exercises/exceptions","slug":"/exercises/exceptions/exceptions03","permalink":"/java-docs/pr-preview/pr-238/exercises/exceptions/exceptions03","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/exceptions/exceptions03.mdx","tags":[],"version":"current","frontMatter":{"title":"Exceptions03","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Exceptions02","permalink":"/java-docs/pr-preview/pr-238/exercises/exceptions/exceptions02"},"next":{"title":"Innere Klassen (Inner Classes)","permalink":"/java-docs/pr-preview/pr-238/exercises/inner-classes/"}}'),t=s("85893"),a=s("50065"),i=s("39661");let l={title:"Exceptions03",description:""},o=void 0,c={},u=[{value:"Hinweis zur Klasse Employee",id:"hinweis-zur-klasse-employee",level:2}];function d(e){let n={a:"a",code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Erstelle die Ausnhamenklassen ",(0,t.jsx)(n.code,{children:"SalaryIncreaseTooHighException"})," sowie\n",(0,t.jsx)(n.code,{children:"SalaryDecreaseException"})," anhand des abgebildeten Klassendiagramms"]}),"\n",(0,t.jsxs)(n.li,{children:["Passe die Klasse ",(0,t.jsx)(n.code,{children:"Employee"})," anhand der Hinweise an"]}),"\n",(0,t.jsxs)(n.li,{children:["Passe die ausf\xfchrbare Klasse aus \xdcbungsaufgabe\n",(0,t.jsx)(n.a,{href:"../class-diagrams/class-diagrams04",children:"ClassDiagrams04"})," so an, dass ein oder\nmehrere Mitarbeiter eine Gehaltserh\xf6hung bekommen. Behandle alle m\xf6glichen\nAusnahmen und gebe passende Fehlermeldungen in der Konsole aus."]}),"\n"]}),"\n",(0,t.jsx)(n.mermaid,{value:"classDiagram\n Employee --o Company\n Employee o-- Person\n SalaryIncreaseTooHighException <.. Employee : throws\n SalaryDecreaseException <.. Employee : throws\n\n class Company {\n -name: String #123;final#125;\n -employees: ArrayList~Employee~ #123;final#125;\n -numberOfEmployees: int\n +Company(name: String)\n +getName() String\n +getEmployees() ArrayList~Employee~\n +getNumberOfEmployees() int\n +addEmployee(employee: Employee) void\n +toString() String\n }\n\n class Person {\n -name: String #123;final#125;\n +Person(name: String)\n +getName() String\n }\n\n class Employee {\n -employeeId: int #123;final#125;\n -person: Person #123;final#125;\n -salaryInEuro: int\n +Employee(employeeId: int, person: Person, salaryInEuro: int)\n +getEmployeeId() int\n +getName() String\n +setSalaryInEuro(salaryInEuro: int) void\n +getSalaryInEuro() int\n +toString() String\n }\n\n class SalaryIncreaseTooHighException {\n <>\n }\n\n class SalaryDecreaseException {\n <>\n }"}),"\n",(0,t.jsxs)(n.h2,{id:"hinweis-zur-klasse-employee",children:["Hinweis zur Klasse ",(0,t.jsx)(n.em,{children:"Employee"})]}),"\n",(0,t.jsxs)(n.p,{children:["Die Methode ",(0,t.jsx)(n.code,{children:"void setSalaryInEuro(salaryInEuro: int)"})," soll das Gehalt eines\nMitarbeiters festlegen. Ist das eingehende Gehalt mehr als 10% des bestehenden\nGehalts, soll die Ausnhame ",(0,t.jsx)(n.code,{children:"SalaryIncreaseTooHighException"})," ausgel\xf6st werden.\nIst das eingehende Gehalt weniger als das bestehende Gehalt, soll die Ausnhame\n",(0,t.jsx)(n.code,{children:"SalaryDecreaseException"})," ausgel\xf6st werden."]}),"\n",(0,t.jsx)(i.Z,{pullRequest:"51",branchSuffix:"exceptions/03"})]})}function p(e={}){let{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},5525:function(e,n,s){s.d(n,{Z:()=>i});var r=s("85893");s("67294");var t=s("67026");let a="tabItem_Ymn6";function i(e){let{children:n,hidden:s,className:i}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,t.Z)(a,i),hidden:s,children:n})}},47902:function(e,n,s){s.d(n,{Z:()=>y});var r=s("85893"),t=s("67294"),a=s("67026"),i=s("69599"),l=s("16550"),o=s("32000"),c=s("4520"),u=s("38341"),d=s("76009");function p(e){return t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||t.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:n,tabValues:s}=e;return s.some(e=>e.value===n)}var m=s("7227");let x="tabList__CuJ",f="tabItem_LNqP";function g(e){let{className:n,block:s,selectedValue:t,selectValue:l,tabValues:o}=e,c=[],{blockElementScrollPositionUntilNextRender:u}=(0,i.o5)(),d=e=>{let n=e.currentTarget,s=o[c.indexOf(n)].value;s!==t&&(u(n),l(s))},p=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let s=c.indexOf(e.currentTarget)+1;n=c[s]??c[0];break}case"ArrowLeft":{let s=c.indexOf(e.currentTarget)-1;n=c[s]??c[c.length-1]}}n?.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":s},n),children:o.map(e=>{let{value:n,label:s,attributes:i}=e;return(0,r.jsx)("li",{role:"tab",tabIndex:t===n?0:-1,"aria-selected":t===n,ref:e=>c.push(e),onKeyDown:p,onClick:d,...i,className:(0,a.Z)("tabs__item",f,i?.className,{"tabs__item--active":t===n}),children:s??n},n)})})}function b(e){let{lazy:n,children:s,selectedValue:i}=e,l=(Array.isArray(s)?s:[s]).filter(Boolean);if(n){let e=l.find(e=>e.props.value===i);return e?(0,t.cloneElement)(e,{className:(0,a.Z)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:l.map((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==i}))})}function v(e){let n=function(e){let{defaultValue:n,queryString:s=!1,groupId:r}=e,a=function(e){let{values:n,children:s}=e;return(0,t.useMemo)(()=>{let e=n??p(s).map(e=>{let{props:{value:n,label:s,attributes:r,default:t}}=e;return{value:n,label:s,attributes:r,default:t}});return!function(e){let n=(0,u.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,s])}(e),[i,m]=(0,t.useState)(()=>(function(e){let{defaultValue:n,tabValues:s}=e;if(0===s.length)throw Error("Docusaurus error: the component requires at least one children component");if(n){if(!h({value:n,tabValues:s}))throw Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${s.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let r=s.find(e=>e.default)??s[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:a})),[x,f]=function(e){let{queryString:n=!1,groupId:s}=e,r=(0,l.k6)(),a=function(e){let{queryString:n=!1,groupId:s}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!s)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return s??null}({queryString:n,groupId:s}),i=(0,c._X)(a);return[i,(0,t.useCallback)(e=>{if(!a)return;let n=new URLSearchParams(r.location.search);n.set(a,e),r.replace({...r.location,search:n.toString()})},[a,r])]}({queryString:s,groupId:r}),[g,b]=function(e){var n;let{groupId:s}=e;let r=(n=s)?`docusaurus.tab.${n}`:null,[a,i]=(0,d.Nk)(r);return[a,(0,t.useCallback)(e=>{if(!!r)i.set(e)},[r,i])]}({groupId:r}),v=(()=>{let e=x??g;return h({value:e,tabValues:a})?e:null})();return(0,o.Z)(()=>{v&&m(v)},[v]),{selectedValue:i,selectValue:(0,t.useCallback)(e=>{if(!h({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);m(e),f(e),b(e)},[f,b,a]),tabValues:a}}(e);return(0,r.jsxs)("div",{className:(0,a.Z)("tabs-container",x),children:[(0,r.jsx)(g,{...n,...e}),(0,r.jsx)(b,{...n,...e})]})}function y(e){let n=(0,m.Z)();return(0,r.jsx)(v,{...e,children:p(e.children)},String(n))}},39661:function(e,n,s){s.d(n,{Z:function(){return o}});var r=s(85893);s(67294);var t=s(47902),a=s(5525),i=s(83012),l=s(45056);function o(e){let{pullRequest:n,branchSuffix:s}=e;return(0,r.jsxs)(t.Z,{children:[(0,r.jsxs)(a.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,r.jsx)(l.Z,{language:"console",children:`git switch exercises/${s}`}),(0,r.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${s}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(a.Z,{value:"solution",label:"Solution",children:[(0,r.jsx)(l.Z,{language:"console",children:`git switch solutions/${s}`}),(0,r.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${s}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(a.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,r.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${n}/files?diff=split`,children:["PR#",n]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2da18d1f.688ba765.js b/pr-preview/pr-238/assets/js/2da18d1f.688ba765.js new file mode 100644 index 0000000000..c6b987a297 --- /dev/null +++ b/pr-preview/pr-238/assets/js/2da18d1f.688ba765.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["9521"],{26012:function(a){a.exports=JSON.parse('{"tag":{"label":"sets","permalink":"/java-docs/pr-preview/pr-238/tags/sets","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":1,"items":[{"id":"documentation/java-collections-framework","title":"Java Collections Framework","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/java-collections-framework"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2e875b0e.4f1fd18a.js b/pr-preview/pr-238/assets/js/2e875b0e.4f1fd18a.js new file mode 100644 index 0000000000..7482b8a5a1 --- /dev/null +++ b/pr-preview/pr-238/assets/js/2e875b0e.4f1fd18a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2437"],{16833:function(e,t,n){n.r(t),n.d(t,{metadata:()=>r,contentTitle:()=>o,default:()=>h,assets:()=>c,toc:()=>u,frontMatter:()=>a});var r=JSON.parse('{"id":"exercises/generics/generics01","title":"Generics01","description":"","source":"@site/docs/exercises/generics/generics01.mdx","sourceDirName":"exercises/generics","slug":"/exercises/generics/generics01","permalink":"/java-docs/pr-preview/pr-238/exercises/generics/generics01","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/generics/generics01.mdx","tags":[],"version":"current","frontMatter":{"title":"Generics01","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Generische Programmierung","permalink":"/java-docs/pr-preview/pr-238/exercises/generics/"},"next":{"title":"Generics02","permalink":"/java-docs/pr-preview/pr-238/exercises/generics/generics02"}}'),s=n("85893"),i=n("50065"),l=n("39661");let a={title:"Generics01",description:""},o=void 0,c={},u=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Hinweis zur Klasse BeerBottle",id:"hinweis-zur-klasse-beerbottle",level:2},{value:"Hinweise zur Klasse Crate",id:"hinweise-zur-klasse-crate",level:2}];function d(e){let t={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Erstelle die Klassen ",(0,s.jsx)(t.code,{children:"Bottle"}),", ",(0,s.jsx)(t.code,{children:"BeerBottle"}),", ",(0,s.jsx)(t.code,{children:"WineBottle"})," und ",(0,s.jsx)(t.code,{children:"Crate"})," anhand\ndes abgebildeten Klassendiagramms"]}),"\n",(0,s.jsx)(t.li,{children:"Erstelle eine ausf\xfchrbare Klasse, welche eine Getr\xe4nkiste sowie mehrere\nFlaschen erzeugt und die Flaschen in die Getr\xe4nkekiste stellt"}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,s.jsx)(t.mermaid,{value:"classDiagram\n Bottle <|-- BeerBottle : extends\n Bottle <|-- WineBottle : extends\n Crate o-- Bottle\n\n class Crate {\n -box1: Bottle\n -box2: Bottle\n -box3: Bottle\n -box4: Bottle\n -box5: Bottle\n -box6: Bottle\n +insertBottle(bottle: Bottle, box: int) void\n +takeBottle(box: int) Bottle\n }\n\n class Bottle {\n <>\n }\n\n class BeerBottle {\n +chugALug() void\n }\n\n class WineBottle {\n\n }"}),"\n",(0,s.jsxs)(t.h2,{id:"hinweis-zur-klasse-beerbottle",children:["Hinweis zur Klasse ",(0,s.jsx)(t.em,{children:"BeerBottle"})]}),"\n",(0,s.jsxs)(t.p,{children:["Die Methode ",(0,s.jsx)(t.code,{children:"void chugALug()"}),' soll den Text "Ex und Hopp" auf der Konsole\nausgeben.']}),"\n",(0,s.jsxs)(t.h2,{id:"hinweise-zur-klasse-crate",children:["Hinweise zur Klasse ",(0,s.jsx)(t.em,{children:"Crate"})]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Die Methode ",(0,s.jsx)(t.code,{children:"void insertBottle(bottle: Bottle, box: int)"})," soll eine Flasche in\neine der 6 Getr\xe4nkef\xe4cher einf\xfcgen"]}),"\n",(0,s.jsxs)(t.li,{children:["Die Methode ",(0,s.jsx)(t.code,{children:"Bottle takeBottle(box: int)"})," soll die Flasche des entsprechenden\nGetr\xe4nkefachs zur\xfcckgeben"]}),"\n"]}),"\n",(0,s.jsx)(l.Z,{pullRequest:"52",branchSuffix:"generics/01"})]})}function h(e={}){let{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},5525:function(e,t,n){n.d(t,{Z:()=>l});var r=n("85893");n("67294");var s=n("67026");let i="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.Z)(i,l),hidden:n,children:t})}},47902:function(e,t,n){n.d(t,{Z:()=>j});var r=n("85893"),s=n("67294"),i=n("67026"),l=n("69599"),a=n("16550"),o=n("32000"),c=n("4520"),u=n("38341"),d=n("76009");function h(e){return s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||s.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function p(e){let{value:t,tabValues:n}=e;return n.some(e=>e.value===t)}var m=n("7227");let x="tabList__CuJ",f="tabItem_LNqP";function b(e){let{className:t,block:n,selectedValue:s,selectValue:a,tabValues:o}=e,c=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.o5)(),d=e=>{let t=e.currentTarget,n=o[c.indexOf(t)].value;n!==s&&(u(t),a(n))},h=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let n=c.indexOf(e.currentTarget)+1;t=c[n]??c[0];break}case"ArrowLeft":{let n=c.indexOf(e.currentTarget)-1;t=c[n]??c[c.length-1]}}t?.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":n},t),children:o.map(e=>{let{value:t,label:n,attributes:l}=e;return(0,r.jsx)("li",{role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,ref:e=>c.push(e),onKeyDown:h,onClick:d,...l,className:(0,i.Z)("tabs__item",f,l?.className,{"tabs__item--active":s===t}),children:n??t},t)})})}function g(e){let{lazy:t,children:n,selectedValue:l}=e,a=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){let e=a.find(e=>e.props.value===l);return e?(0,s.cloneElement)(e,{className:(0,i.Z)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:a.map((e,t)=>(0,s.cloneElement)(e,{key:t,hidden:e.props.value!==l}))})}function v(e){let t=function(e){let{defaultValue:t,queryString:n=!1,groupId:r}=e,i=function(e){let{values:t,children:n}=e;return(0,s.useMemo)(()=>{let e=t??h(n).map(e=>{let{props:{value:t,label:n,attributes:r,default:s}}=e;return{value:t,label:n,attributes:r,default:s}});return!function(e){let t=(0,u.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[t,n])}(e),[l,m]=(0,s.useState)(()=>(function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(t){if(!p({value:t,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let r=n.find(e=>e.default)??n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:t,tabValues:i})),[x,f]=function(e){let{queryString:t=!1,groupId:n}=e,r=(0,a.k6)(),i=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n}),l=(0,c._X)(i);return[l,(0,s.useCallback)(e=>{if(!i)return;let t=new URLSearchParams(r.location.search);t.set(i,e),r.replace({...r.location,search:t.toString()})},[i,r])]}({queryString:n,groupId:r}),[b,g]=function(e){var t;let{groupId:n}=e;let r=(t=n)?`docusaurus.tab.${t}`:null,[i,l]=(0,d.Nk)(r);return[i,(0,s.useCallback)(e=>{if(!!r)l.set(e)},[r,l])]}({groupId:r}),v=(()=>{let e=x??b;return p({value:e,tabValues:i})?e:null})();return(0,o.Z)(()=>{v&&m(v)},[v]),{selectedValue:l,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);m(e),f(e),g(e)},[f,g,i]),tabValues:i}}(e);return(0,r.jsxs)("div",{className:(0,i.Z)("tabs-container",x),children:[(0,r.jsx)(b,{...t,...e}),(0,r.jsx)(g,{...t,...e})]})}function j(e){let t=(0,m.Z)();return(0,r.jsx)(v,{...e,children:h(e.children)},String(t))}},39661:function(e,t,n){n.d(t,{Z:function(){return o}});var r=n(85893);n(67294);var s=n(47902),i=n(5525),l=n(83012),a=n(45056);function o(e){let{pullRequest:t,branchSuffix:n}=e;return(0,r.jsxs)(s.Z,{children:[(0,r.jsxs)(i.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,r.jsx)(a.Z,{language:"console",children:`git switch exercises/${n}`}),(0,r.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${n}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(i.Z,{value:"solution",label:"Solution",children:[(0,r.jsx)(a.Z,{language:"console",children:`git switch solutions/${n}`}),(0,r.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${n}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(i.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,r.jsxs)(l.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${t}/files?diff=split`,children:["PR#",t]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2e8a245f.1d83522b.js b/pr-preview/pr-238/assets/js/2e8a245f.1d83522b.js new file mode 100644 index 0000000000..506539cd9e --- /dev/null +++ b/pr-preview/pr-238/assets/js/2e8a245f.1d83522b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1972"],{22099:function(e,n,i){i.r(n),i.d(n,{metadata:()=>t,contentTitle:()=>o,default:()=>d,assets:()=>l,toc:()=>u,frontMatter:()=>a});var t=JSON.parse('{"id":"documentation/enumerations","title":"Aufz\xe4hlungen (Enumerations)","description":"","source":"@site/docs/documentation/enumerations.md","sourceDirName":"documentation","slug":"/documentation/enumerations","permalink":"/java-docs/pr-preview/pr-238/documentation/enumerations","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/enumerations.md","tags":[{"inline":true,"label":"enumerations","permalink":"/java-docs/pr-preview/pr-238/tags/enumerations"}],"version":"current","sidebarPosition":150,"frontMatter":{"title":"Aufz\xe4hlungen (Enumerations)","description":"","sidebar_position":150,"tags":["enumerations"]},"sidebar":"documentationSidebar","previous":{"title":"Dateien und Verzeichnisse","permalink":"/java-docs/pr-preview/pr-238/documentation/files"},"next":{"title":"Klassendiagramme","permalink":"/java-docs/pr-preview/pr-238/documentation/class-diagrams"}}'),r=i("85893"),s=i("50065");let a={title:"Aufz\xe4hlungen (Enumerations)",description:"",sidebar_position:150,tags:["enumerations"]},o=void 0,l={},u=[{value:"Implementieren von Aufz\xe4hlungen",id:"implementieren-von-aufz\xe4hlungen",level:2},{value:"Verwenden von Aufz\xe4hlungen",id:"verwenden-von-aufz\xe4hlungen",level:2}];function c(e){let n={code:"code",em:"em",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["Bei einer Aufz\xe4hlung (Enumeration) handelt es sich um eine spezielle Klasse, von\nder nur eine vorgegebene, endliche Anzahl an Instanzen existiert. Diese\nInstanzen werden als ",(0,r.jsx)(n.em,{children:"Aufz\xe4hlungskonstanten"})," bezeichnet. Technisch gesehen\nhandelt es sich bei Aufz\xe4hlungskonstanten um \xf6ffentliche, statische Konstanten\nvom Typ der Aufz\xe4hlung."]}),"\n",(0,r.jsx)(n.h2,{id:"implementieren-von-aufz\xe4hlungen",children:"Implementieren von Aufz\xe4hlungen"}),"\n",(0,r.jsxs)(n.p,{children:["Die Definition einer Aufz\xe4hlung erfolgt analog zur Definition von Klassen, das\nSchl\xfcsselwort hierf\xfcr lautet ",(0,r.jsx)(n.code,{children:"enum"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-java",metastring:'title="WeekDay.java" showLineNumbers',children:'public enum WeekDay {\n\n MONDAY("Montag", true), TUESDAY("Dienstag", true), WEDNESDAY("Mittwoch", true), THURSDAY(\n "Donnerstag",\n true), FRIDAY("Freitag", true), SATURDAY("Samstag", true), SUNDAY("Sonntag", false);\n\n private String description;\n private boolean isWorkingDay;\n\n WeekDay(String description, boolean isWorkingDay) {\n this.description = description;\n this.isWorkingDay = isWorkingDay;\n }\n\n public String getDescription() {\n return description;\n }\n\n public boolean getWorkingDay() {\n return isWorkingDay;\n }\n\n}\n'})}),"\n",(0,r.jsx)(n.h2,{id:"verwenden-von-aufz\xe4hlungen",children:"Verwenden von Aufz\xe4hlungen"}),"\n",(0,r.jsx)(n.p,{children:"Aufz\xe4hlungen besitzen eine Reihe hilfreicher Methoden:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Die statische Methode ",(0,r.jsx)(n.code,{children:"T[] values()"})," gibt alle Aufz\xe4hlunskonstanten als Feld\nzur\xfcck"]}),"\n",(0,r.jsxs)(n.li,{children:["Die statische Methode ",(0,r.jsx)(n.code,{children:"T valueOf(name: String)"})," gibt zu einer eingehenden\nZeichenkette die dazugeh\xf6rige Aufz\xe4hlungskonstante zur\xfcck"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"int ordinal()"})," gibt die Ordnungszahl der Aufz\xe4hlungskonstanten\nzur\xfcck"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:"public class MainClass {\n\n public static void main(String[] args) {\n for (WeekDay w : WeekDay.values()) {\n System.out.println(w.ordinal());\n }\n }\n\n}\n"})})]})}function d(e={}){let{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},50065:function(e,n,i){i.d(n,{Z:function(){return o},a:function(){return a}});var t=i(67294);let r={},s=t.createContext(r);function a(e){let n=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/2f227410.1ff1e707.js b/pr-preview/pr-238/assets/js/2f227410.1ff1e707.js new file mode 100644 index 0000000000..2e33cca924 --- /dev/null +++ b/pr-preview/pr-238/assets/js/2f227410.1ff1e707.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3791"],{71870:function(e){e.exports=JSON.parse('{"tag":{"label":"optionals","permalink":"/java-docs/pr-preview/pr-238/tags/optionals","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":13,"items":[{"id":"exam-exercises/exam-exercises-java2/class-diagrams/library","title":"Bibliothek","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/library"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/player","title":"Kartenspieler","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/player"},{"id":"exam-exercises/exam-exercises-java2/queries/measurement-data","title":"Messdaten","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/measurement-data"},{"id":"documentation/optionals","title":"Optionals","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/optionals"},{"id":"exercises/optionals/optionals","title":"Optionals","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/optionals/"},{"id":"exam-exercises/exam-exercises-java2/queries/tanks","title":"Panzer","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/tanks"},{"id":"exam-exercises/exam-exercises-java2/queries/planets","title":"Planeten","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/planets"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/space-station","title":"Raumstation","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/space-station"},{"id":"exam-exercises/exam-exercises-java2/queries/phone-store","title":"Smartphone-Shop","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/phone-store"},{"id":"exam-exercises/exam-exercises-java2/queries/cities","title":"St\xe4dte","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/cities"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/team","title":"Team","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/team"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/video-collection","title":"Videosammlung","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/video-collection"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/dictionary","title":"W\xf6rterbuch","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/dictionary"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3085.367a75d1.js b/pr-preview/pr-238/assets/js/3085.367a75d1.js new file mode 100644 index 0000000000..345febaf0e --- /dev/null +++ b/pr-preview/pr-238/assets/js/3085.367a75d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3085"],{15970:function(e,c,a){a.d(c,{createInfoServices:function(){return n.M}});var n=a(52730);a(95318)}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/31235dce.38b80a3f.js b/pr-preview/pr-238/assets/js/31235dce.38b80a3f.js new file mode 100644 index 0000000000..1664f6317f --- /dev/null +++ b/pr-preview/pr-238/assets/js/31235dce.38b80a3f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4928"],{38183:function(e){e.exports=JSON.parse('{"tag":{"label":"io-streams","permalink":"/java-docs/pr-preview/pr-238/tags/io-streams","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":9,"items":[{"id":"documentation/io-streams","title":"Datenstr\xf6me (IO-Streams)","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/io-streams"},{"id":"exercises/io-streams/io-streams","title":"Datenstr\xf6me (IO-Streams)","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/io-streams/"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/shape","title":"Geometrische Form","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/shape"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer","title":"Kartenausteiler","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/creature","title":"Kreatur","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/creature"},{"id":"exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar","title":"Pl\xe4tzchendose","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/job-offer","title":"Stellenangebot","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/job-offer"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/video-collection","title":"Videosammlung","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/video-collection"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/dictionary","title":"W\xf6rterbuch","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/dictionary"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3315.6de7bd5a.js b/pr-preview/pr-238/assets/js/3315.6de7bd5a.js new file mode 100644 index 0000000000..41924d13a0 --- /dev/null +++ b/pr-preview/pr-238/assets/js/3315.6de7bd5a.js @@ -0,0 +1,63 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3315"],{79068:function(t,e,r){r.d(e,{A:function(){return o}});var a=r(74146),o=class{constructor(t){this.init=t,this.records=this.init()}static{(0,a.eW)(this,"ImperativeState")}reset(){this.records=this.init()}}},18010:function(t,e,r){function a(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}r.d(e,{A:function(){return a}}),(0,r(74146).eW)(a,"populateCommonDb")},17321:function(t,e,r){r.d(e,{diagram:function(){return tb}});var a=r(18010),o=r(79068),i=r(68394),c=r(74146),n=r(3194),s=r(27818),h={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},d=c.vZ.gitGraph,l=(0,c.eW)(()=>(0,i.Rb)({...d,...(0,c.iE)().gitGraph}),"getConfig"),$=new o.A(()=>{let t=l(),e=t.mainBranchName,r=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:r}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});function m(){return(0,i.MX)({length:7})}function g(t,e){let r=Object.create(null);return t.reduce((t,a)=>{let o=e(a);return!r[o]&&(r[o]=!0,t.push(a)),t},[])}(0,c.eW)(m,"getID"),(0,c.eW)(g,"uniqBy");var y=(0,c.eW)(function(t){$.records.direction=t},"setDirection"),p=(0,c.eW)(function(t){c.cM.debug("options str",t),t=(t=t?.trim())||"{}";try{$.records.options=JSON.parse(t)}catch(t){c.cM.error("error while parsing gitGraph options",t.message)}},"setOptions"),f=(0,c.eW)(function(){return $.records.options},"getOptions"),x=(0,c.eW)(function(t){let e=t.msg,r=t.id,a=t.type,o=t.tags;c.cM.info("commit",e,r,a,o),c.cM.debug("Entering commit:",e,r,a,o);let i=l();r=c.SY.sanitizeText(r,i),e=c.SY.sanitizeText(e,i),o=o?.map(t=>c.SY.sanitizeText(t,i));let n={id:r||$.records.seq+"-"+m(),message:e,seq:$.records.seq++,type:a??h.NORMAL,tags:o??[],parents:null==$.records.head?[]:[$.records.head.id],branch:$.records.currBranch};$.records.head=n,c.cM.info("main branch",i.mainBranchName),$.records.commits.set(n.id,n),$.records.branches.set($.records.currBranch,n.id),c.cM.debug("in pushCommit "+n.id)},"commit"),u=(0,c.eW)(function(t){let e=t.name,r=t.order;if(e=c.SY.sanitizeText(e,l()),$.records.branches.has(e))throw Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);$.records.branches.set(e,null!=$.records.head?$.records.head.id:null),$.records.branchConfig.set(e,{name:e,order:r}),B(e),c.cM.debug("in createBranch")},"branch"),b=(0,c.eW)(t=>{let e=t.branch,r=t.id,a=t.type,o=t.tags,i=l();e=c.SY.sanitizeText(e,i),r&&(r=c.SY.sanitizeText(r,i));let n=$.records.branches.get($.records.currBranch),s=$.records.branches.get(e),d=n?$.records.commits.get(n):void 0,g=s?$.records.commits.get(s):void 0;if(d&&g&&d.branch===e)throw Error(`Cannot merge branch '${e}' into itself.`);if($.records.currBranch===e){let t=Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},t}if(void 0===d||!d){let t=Error(`Incorrect usage of "merge". Current branch (${$.records.currBranch})has no commits`);throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},t}if(!$.records.branches.has(e)){let t=Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},t}if(void 0===g||!g){let t=Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},t}if(d===g){let t=Error('Incorrect usage of "merge". Both branches have same head');throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},t}if(r&&$.records.commits.has(r)){let t=Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom Id");throw t.hash={text:`merge ${e} ${r} ${a} ${o?.join(" ")}`,token:`merge ${e} ${r} ${a} ${o?.join(" ")}`,expected:[`merge ${e} ${r}_UNIQUE ${a} ${o?.join(" ")}`]},t}let y={id:r||`${$.records.seq}-${m()}`,message:`merged branch ${e} into ${$.records.currBranch}`,seq:$.records.seq++,parents:null==$.records.head?[]:[$.records.head.id,s||""],branch:$.records.currBranch,type:h.MERGE,customType:a,customId:!!r,tags:o??[]};$.records.head=y,$.records.commits.set(y.id,y),$.records.branches.set($.records.currBranch,y.id),c.cM.debug($.records.branches),c.cM.debug("in mergeBranch")},"merge"),w=(0,c.eW)(function(t){let e=t.id,r=t.targetId,a=t.tags,o=t.parent;c.cM.debug("Entering cherryPick:",e,r,a);let i=l();if(e=c.SY.sanitizeText(e,i),r=c.SY.sanitizeText(r,i),a=a?.map(t=>c.SY.sanitizeText(t,i)),o=c.SY.sanitizeText(o,i),!e||!$.records.commits.has(e)){let t=Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let n=$.records.commits.get(e);if(void 0===n||!n)throw Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(o&&!(Array.isArray(n.parents)&&n.parents.includes(o)))throw Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let s=n.branch;if(n.type===h.MERGE&&!o)throw Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!$.records.commits.has(r)){if(s===$.records.currBranch){let t=Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let t=$.records.branches.get($.records.currBranch);if(void 0===t||!t){let t=Error(`Incorrect usage of "cherry-pick". Current branch (${$.records.currBranch})has no commits`);throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let i=$.records.commits.get(t);if(void 0===i||!i){let t=Error(`Incorrect usage of "cherry-pick". Current branch (${$.records.currBranch})has no commits`);throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let d={id:$.records.seq+"-"+m(),message:`cherry-picked ${n?.message} into ${$.records.currBranch}`,seq:$.records.seq++,parents:null==$.records.head?[]:[$.records.head.id,n.id],branch:$.records.currBranch,type:h.CHERRY_PICK,tags:a?a.filter(Boolean):[`cherry-pick:${n.id}${n.type===h.MERGE?`|parent:${o}`:""}`]};$.records.head=d,$.records.commits.set(d.id,d),$.records.branches.set($.records.currBranch,d.id),c.cM.debug($.records.branches),c.cM.debug("in cherryPick")}},"cherryPick"),B=(0,c.eW)(function(t){if(t=c.SY.sanitizeText(t,l()),$.records.branches.has(t)){$.records.currBranch=t;let e=$.records.branches.get($.records.currBranch);void 0!==e&&e?$.records.head=$.records.commits.get(e)??null:$.records.head=null}else{let e=Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");function E(t,e,r){let a=t.indexOf(e);-1===a?t.push(r):t.splice(a,1,r)}function k(t){let e=t.reduce((t,e)=>t.seq>e.seq?t:e,t[0]),r="";t.forEach(function(t){t===e?r+=" *":r+=" |"});let a=[r,e.id,e.seq];for(let t in $.records.branches)$.records.branches.get(t)===e.id&&a.push(t);if(c.cM.debug(a.join(" ")),e.parents&&2==e.parents.length&&e.parents[0]&&e.parents[1]){let r=$.records.commits.get(e.parents[0]);E(t,e,r),e.parents[1]&&t.push($.records.commits.get(e.parents[1]))}else if(0==e.parents.length)return;else if(e.parents[0]){let r=$.records.commits.get(e.parents[0]);E(t,e,r)}k(t=g(t,t=>t.id))}(0,c.eW)(E,"upsert"),(0,c.eW)(k,"prettyPrintCommitHistory");var M=(0,c.eW)(function(){c.cM.debug($.records.commits),k([v()[0]])},"prettyPrint"),C=(0,c.eW)(function(){$.reset(),(0,c.ZH)()},"clear"),L=(0,c.eW)(function(){return[...$.records.branchConfig.values()].map((t,e)=>null!==t.order&&void 0!==t.order?t:{...t,order:parseFloat(`0.${e}`)}).sort((t,e)=>(t.order??0)-(e.order??0)).map(({name:t})=>({name:t}))},"getBranchesAsObjArray"),T=(0,c.eW)(function(){return $.records.branches},"getBranches"),W=(0,c.eW)(function(){return $.records.commits},"getCommits"),v=(0,c.eW)(function(){let t=[...$.records.commits.values()];return t.forEach(function(t){c.cM.debug(t.id)}),t.sort((t,e)=>t.seq-e.seq),t},"getCommitsArray"),R=(0,c.eW)(function(){return $.records.currBranch},"getCurrentBranch"),P=(0,c.eW)(function(){return $.records.direction},"getDirection"),A={commitType:h,getConfig:l,setDirection:y,setOptions:p,getOptions:f,commit:x,branch:u,merge:b,cherryPick:w,checkout:B,prettyPrint:M,clear:C,getBranchesAsObjArray:L,getBranches:T,getCommits:W,getCommitsArray:v,getCurrentBranch:R,getDirection:P,getHead:(0,c.eW)(function(){return $.records.head},"getHead"),setAccTitle:c.GN,getAccTitle:c.eu,getAccDescription:c.Mx,setAccDescription:c.U$,setDiagramTitle:c.g2,getDiagramTitle:c.Kr},I=(0,c.eW)((t,e)=>{for(let r of((0,a.A)(t,e),t.dir&&e.setDirection(t.dir),t.statements))G(r,e)},"populate"),G=(0,c.eW)((t,e)=>{let r={Commit:(0,c.eW)(t=>e.commit(S(t)),"Commit"),Branch:(0,c.eW)(t=>e.branch(O(t)),"Branch"),Merge:(0,c.eW)(t=>e.merge(q(t)),"Merge"),Checkout:(0,c.eW)(t=>e.checkout(H(t)),"Checkout"),CherryPicking:(0,c.eW)(t=>e.cherryPick(z(t)),"CherryPicking")}[t.$type];r?r(t):c.cM.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),S=(0,c.eW)(t=>({id:t.id,msg:t.message??"",type:void 0!==t.type?h[t.type]:h.NORMAL,tags:t.tags??void 0}),"parseCommit"),O=(0,c.eW)(t=>({name:t.name,order:t.order??0}),"parseBranch"),q=(0,c.eW)(t=>({branch:t.branch,id:t.id??"",type:void 0!==t.type?h[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),H=(0,c.eW)(t=>t.branch,"parseCheckout"),z=(0,c.eW)(t=>({id:t.id,targetId:"",tags:t.tags?.length===0?void 0:t.tags,parent:t.parent}),"parseCherryPicking"),Y={parse:(0,c.eW)(async t=>{let e=await (0,n.Qc)("gitGraph",t);c.cM.debug(e),I(e,A)},"parse")},D=(0,c.nV)(),N=D?.gitGraph,j=new Map,_=new Map,K=new Map,F=[],U=0,V="LR",Q=(0,c.eW)(()=>{j.clear(),_.clear(),K.clear(),U=0,F=[],V="LR"},"clear"),X=(0,c.eW)(t=>{let e=document.createElementNS("http://www.w3.org/2000/svg","text");return("string"==typeof t?t.split(/\\n|\n|/gi):t).forEach(t=>{let r=document.createElementNS("http://www.w3.org/2000/svg","tspan");r.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),r.setAttribute("dy","1em"),r.setAttribute("x","0"),r.setAttribute("class","row"),r.textContent=t.trim(),e.appendChild(r)}),e},"drawText"),Z=(0,c.eW)(t=>{let e,r,a;return"BT"===V?(r=(0,c.eW)((t,e)=>t<=e,"comparisonFunc"),a=1/0):(r=(0,c.eW)((t,e)=>t>=e,"comparisonFunc"),a=0),t.forEach(t=>{let o="TB"===V||"BT"==V?_.get(t)?.y:_.get(t)?.x;void 0!==o&&r(o,a)&&(e=t,a=o)}),e},"findClosestParent"),J=(0,c.eW)(t=>{let e="",r=1/0;return t.forEach(t=>{let a=_.get(t).y;a<=r&&(e=t,r=a)}),e||void 0},"findClosestParentBT"),tt=(0,c.eW)((t,e,r)=>{let a=r,o=r,i=[];t.forEach(t=>{let r=e.get(t);if(!r)throw Error(`Commit not found for key ${t}`);r.parents.length?o=Math.max(a=tr(r),o):i.push(r),ta(r,a)}),a=o,i.forEach(t=>{to(t,a,r)}),t.forEach(t=>{let r=e.get(t);if(r?.parents.length){let t=J(r.parents);(a=_.get(t).y-40)<=o&&(o=a);let e=j.get(r.branch).pos,i=a-10;_.set(r.id,{x:e,y:i})}})},"setParallelBTPos"),te=(0,c.eW)(t=>{let e=Z(t.parents.filter(t=>null!==t));if(!e)throw Error(`Closest parent not found for commit ${t.id}`);let r=_.get(e)?.y;if(void 0===r)throw Error(`Closest parent position not found for commit ${t.id}`);return r},"findClosestParentPos"),tr=(0,c.eW)(t=>te(t)+40,"calculateCommitPosition"),ta=(0,c.eW)((t,e)=>{let r=j.get(t.branch);if(!r)throw Error(`Branch not found for commit ${t.id}`);let a=r.pos,o=e+10;return _.set(t.id,{x:a,y:o}),{x:a,y:o}},"setCommitPosition"),to=(0,c.eW)((t,e,r)=>{let a=j.get(t.branch);if(!a)throw Error(`Branch not found for commit ${t.id}`);let o=a.pos;_.set(t.id,{x:o,y:e+r})},"setRootPosition"),ti=(0,c.eW)((t,e,r,a,o,i)=>{if(i===h.HIGHLIGHT)t.append("rect").attr("x",r.x-10).attr("y",r.y-10).attr("width",20).attr("height",20).attr("class",`commit ${e.id} commit-highlight${o%8} ${a}-outer`),t.append("rect").attr("x",r.x-6).attr("y",r.y-6).attr("width",12).attr("height",12).attr("class",`commit ${e.id} commit${o%8} ${a}-inner`);else if(i===h.CHERRY_PICK)t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",10).attr("class",`commit ${e.id} ${a}`),t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${a}`),t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${a}`),t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${a}`),t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${a}`);else{let c=t.append("circle");if(c.attr("cx",r.x),c.attr("cy",r.y),c.attr("r",e.type===h.MERGE?9:10),c.attr("class",`commit ${e.id} commit${o%8}`),i===h.MERGE){let i=t.append("circle");i.attr("cx",r.x),i.attr("cy",r.y),i.attr("r",6),i.attr("class",`commit ${a} ${e.id} commit${o%8}`)}i===h.REVERSE&&t.append("path").attr("d",`M ${r.x-5},${r.y-5}L${r.x+5},${r.y+5}M${r.x-5},${r.y+5}L${r.x+5},${r.y-5}`).attr("class",`commit ${a} ${e.id} commit${o%8}`)}},"drawCommitBullet"),tc=(0,c.eW)((t,e,r,a)=>{if(e.type!==h.CHERRY_PICK&&(e.customId&&e.type===h.MERGE||e.type!==h.MERGE)&&N?.showCommitLabel){let o=t.append("g"),i=o.insert("rect").attr("class","commit-label-bkg"),c=o.append("text").attr("x",a).attr("y",r.y+25).attr("class","commit-label").text(e.id),n=c.node()?.getBBox();if(n&&(i.attr("x",r.posWithOffset-n.width/2-2).attr("y",r.y+13.5).attr("width",n.width+4).attr("height",n.height+4),"TB"===V||"BT"===V?(i.attr("x",r.x-(n.width+16+5)).attr("y",r.y-12),c.attr("x",r.x-(n.width+16)).attr("y",r.y+n.height-12)):c.attr("x",r.posWithOffset-n.width/2),N.rotateCommitLabel)){if("TB"===V||"BT"===V)c.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),i.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let t=-7.5-(n.width+10)/25*9.5,e=10+n.width/25*8.5;o.attr("transform","translate("+t+", "+e+") rotate(-45, "+a+", "+r.y+")")}}}},"drawCommitLabel"),tn=(0,c.eW)((t,e,r,a)=>{if(e.tags.length>0){let o=0,i=0,c=0,n=[];for(let a of e.tags.reverse()){let e=t.insert("polygon"),s=t.append("circle"),h=t.append("text").attr("y",r.y-16-o).attr("class","tag-label").text(a),d=h.node()?.getBBox();if(!d)throw Error("Tag bbox not found");i=Math.max(i,d.width),c=Math.max(c,d.height),h.attr("x",r.posWithOffset-d.width/2),n.push({tag:h,hole:s,rect:e,yOffset:o}),o+=20}for(let{tag:t,hole:e,rect:o,yOffset:s}of n){let n=c/2,h=r.y-19.2-s;if(o.attr("class","tag-label-bkg").attr("points",` + ${a-i/2-2},${h+2} + ${a-i/2-2},${h-2} + ${r.posWithOffset-i/2-4},${h-n-2} + ${r.posWithOffset+i/2+4},${h-n-2} + ${r.posWithOffset+i/2+4},${h+n+2} + ${r.posWithOffset-i/2-4},${h+n+2}`),e.attr("cy",h).attr("cx",a-i/2+2).attr("r",1.5).attr("class","tag-hole"),"TB"===V||"BT"===V){let c=a+s;o.attr("class","tag-label-bkg").attr("points",` + ${r.x},${c+2} + ${r.x},${c-2} + ${r.x+10},${c-n-2} + ${r.x+10+i+4},${c-n-2} + ${r.x+10+i+4},${c+n+2} + ${r.x+10},${c+n+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+a+")"),e.attr("cx",r.x+2).attr("cy",c).attr("transform","translate(12,12) rotate(45, "+r.x+","+a+")"),t.attr("x",r.x+5).attr("y",c+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+a+")")}}}},"drawCommitTags"),ts=(0,c.eW)(t=>{switch(t.customType??t.type){case h.NORMAL:return"commit-normal";case h.REVERSE:return"commit-reverse";case h.HIGHLIGHT:return"commit-highlight";case h.MERGE:return"commit-merge";case h.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),th=(0,c.eW)((t,e,r,a)=>{let o={x:0,y:0};if(t.parents.length>0){let r=Z(t.parents);if(r){let i=a.get(r)??o;return"TB"===e?i.y+40:"BT"===e?(a.get(t.id)??o).y-40:i.x+40}}else{if("TB"===e)return 30;if("BT"===e)return(a.get(t.id)??o).y-40}return 0},"calculatePosition"),td=(0,c.eW)((t,e,r)=>{let a="BT"===V&&r?e:e+10,o="TB"===V||"BT"===V?a:j.get(t.branch)?.pos,i="TB"===V||"BT"===V?j.get(t.branch)?.pos:a;if(void 0===i||void 0===o)throw Error(`Position were undefined for commit ${t.id}`);return{x:i,y:o,posWithOffset:a}},"getCommitPosition"),tl=(0,c.eW)((t,e,r)=>{if(!N)throw Error("GitGraph config not found");let a=t.append("g").attr("class","commit-bullets"),o=t.append("g").attr("class","commit-labels"),i="TB"===V||"BT"===V?30:0,n=[...e.keys()],s=N?.parallelCommits??!1,h=n.sort((0,c.eW)((t,r)=>{let a=e.get(t)?.seq,o=e.get(r)?.seq;return void 0!==a&&void 0!==o?a-o:0},"sortKeys"));"BT"===V&&(s&&tt(h,e,i),h=h.reverse()),h.forEach(t=>{let c=e.get(t);if(!c)throw Error(`Commit not found for key ${t}`);s&&(i=th(c,V,i,_));let n=td(c,i,s);if(r){let t=ts(c),e=c.customType??c.type,r=j.get(c.branch)?.index??0;ti(a,c,n,t,r,e),tc(o,c,n,i),tn(o,c,n,i)}"TB"===V||"BT"===V?_.set(c.id,{x:n.x,y:n.posWithOffset}):_.set(c.id,{x:n.posWithOffset,y:n.y}),(i="BT"===V&&s?i+40:i+40+10)>U&&(U=i)})},"drawCommits"),t$=(0,c.eW)((t,e,r,a,o)=>{let i=("TB"===V||"BT"===V?r.xt.branch===i,"isOnBranchToGetCurve"),s=(0,c.eW)(r=>r.seq>t.seq&&r.seqs(t)&&n(t))},"shouldRerouteArrow"),tm=(0,c.eW)((t,e,r=0)=>{let a=t+Math.abs(t-e)/2;if(r>5)return a;if(F.every(t=>Math.abs(t-a)>=10))return F.push(a),a;let o=Math.abs(t-e);return tm(t,e-o/5,r+1)},"findLane"),tg=(0,c.eW)((t,e,r,a)=>{let o;let i=_.get(e.id),c=_.get(r.id);if(void 0===i||void 0===c)throw Error(`Commit positions not found for commits ${e.id} and ${r.id}`);let n=t$(e,r,i,c,a),s="",d="",l=0,$=0,m=j.get(r.branch)?.index;if(r.type===h.MERGE&&e.id!==r.parents[0]&&(m=j.get(e.branch)?.index),n){s="A 10 10, 0, 0, 0,",d="A 10 10, 0, 0, 1,",l=10,$=10;let t=i.yc.x&&(s="A 20 20, 0, 0, 0,",d="A 20 20, 0, 0, 1,",l=20,$=20,o=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${i.x} ${i.y} L ${i.x} ${c.y-l} ${d} ${i.x-$} ${c.y} L ${c.x} ${c.y}`:`M ${i.x} ${i.y} L ${c.x+l} ${i.y} ${s} ${c.x} ${i.y+$} L ${c.x} ${c.y}`),i.x===c.x&&(o=`M ${i.x} ${i.y} L ${c.x} ${c.y}`)):"BT"===V?(i.xc.x&&(s="A 20 20, 0, 0, 0,",d="A 20 20, 0, 0, 1,",l=20,$=20,o=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${i.x} ${i.y} L ${i.x} ${c.y+l} ${s} ${i.x-$} ${c.y} L ${c.x} ${c.y}`:`M ${i.x} ${i.y} L ${c.x-l} ${i.y} ${s} ${c.x} ${i.y-$} L ${c.x} ${c.y}`),i.x===c.x&&(o=`M ${i.x} ${i.y} L ${c.x} ${c.y}`)):(i.yc.y&&(o=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${i.x} ${i.y} L ${c.x-l} ${i.y} ${s} ${c.x} ${i.y-$} L ${c.x} ${c.y}`:`M ${i.x} ${i.y} L ${i.x} ${c.y+l} ${d} ${i.x+$} ${c.y} L ${c.x} ${c.y}`),i.y===c.y&&(o=`M ${i.x} ${i.y} L ${c.x} ${c.y}`));if(void 0===o)throw Error("Line definition not found");t.append("path").attr("d",o).attr("class","arrow arrow"+m%8)},"drawArrow"),ty=(0,c.eW)((t,e)=>{let r=t.append("g").attr("class","commit-arrows");[...e.keys()].forEach(t=>{let a=e.get(t);a.parents&&a.parents.length>0&&a.parents.forEach(t=>{tg(r,e.get(t),a,e)})})},"drawArrows"),tp=(0,c.eW)((t,e)=>{let r=t.append("g");e.forEach((t,e)=>{let a=e%8,o=j.get(t.name)?.pos;if(void 0===o)throw Error(`Position not found for branch ${t.name}`);let i=r.append("line");i.attr("x1",0),i.attr("y1",o),i.attr("x2",U),i.attr("y2",o),i.attr("class","branch branch"+a),"TB"===V?(i.attr("y1",30),i.attr("x1",o),i.attr("y2",U),i.attr("x2",o)):"BT"===V&&(i.attr("y1",U),i.attr("x1",o),i.attr("y2",30),i.attr("x2",o)),F.push(o);let c=X(t.name),n=r.insert("rect"),s=r.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+a);s.node().appendChild(c);let h=c.getBBox();n.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-h.width-4-(N?.rotateCommitLabel===!0?30:0)).attr("y",-h.height/2+8).attr("width",h.width+18).attr("height",h.height+4),s.attr("transform","translate("+(-h.width-14-(N?.rotateCommitLabel===!0?30:0))+", "+(o-h.height/2-1)+")"),"TB"===V?(n.attr("x",o-h.width/2-10).attr("y",0),s.attr("transform","translate("+(o-h.width/2-5)+", 0)")):"BT"===V?(n.attr("x",o-h.width/2-10).attr("y",U),s.attr("transform","translate("+(o-h.width/2-5)+", "+U+")")):n.attr("transform","translate(-19, "+(o-h.height/2)+")")})},"drawBranches"),tf=(0,c.eW)(function(t,e,r,a,o){return j.set(t,{pos:e,index:r}),e+=50+(o?40:0)+("TB"===V||"BT"===V?a.width/2:0)},"setBranchPosition"),tx=(0,c.eW)(function(t,e,r,a){if(Q(),c.cM.debug("in gitgraph renderer",t+"\n","id:",e,r),!N)throw Error("GitGraph config not found");let o=N.rotateCommitLabel??!1,n=a.db;K=n.getCommits();let h=n.getBranchesAsObjArray();V=n.getDirection();let d=(0,s.Ys)(`[id="${e}"]`),l=0;h.forEach((t,e)=>{let r=X(t.name),a=d.append("g"),i=a.insert("g").attr("class","branchLabel"),c=i.insert("g").attr("class","label branch-label");c.node()?.appendChild(r);let n=r.getBBox();l=tf(t.name,l,e,n,o),c.remove(),i.remove(),a.remove()}),tl(d,K,!1),N.showBranches&&tp(d,h),ty(d,K),tl(d,K,!0),i.w8.insertTitle(d,"gitTitleText",N.titleTopMargin??0,n.getDiagramTitle()),(0,c.Rw)(void 0,d,N.diagramPadding,N.useMaxWidth)},"draw"),tu=(0,c.eW)(t=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(e=>` + .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; } + .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; } + .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; } + .label${e} { fill: ${t["git"+e]}; } + .arrow${e} { stroke: ${t["git"+e]}; } + `).join("\n")} + + .branch { + stroke-width: 1; + stroke: ${t.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};} + .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};} + .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; } + .tag-hole { fill: ${t.textColor}; } + + .commit-merge { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + .commit-reverse { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles"),tb={parser:Y,db:A,renderer:{draw:tx},styles:tu}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3337.f520914f.js b/pr-preview/pr-238/assets/js/3337.f520914f.js new file mode 100644 index 0000000000..269922042e --- /dev/null +++ b/pr-preview/pr-238/assets/js/3337.f520914f.js @@ -0,0 +1,116 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3337"],{61135:function(t,e,r){r.d(e,{k:()=>f});var a=r("96498"),i=r("18782"),s=r("87074"),n=r("37627"),l=r("73217"),o=r("82633"),d=r("61925"),c=r("39446"),h=r("53148"),g=r("38610"),u=r("61322"),p=(0,h.Z)(function(t){return(0,g.Z)((0,c.Z)(t,1,u.Z,!0))}),y=r("96433"),b=r("81748");class f{constructor(t={}){this._isDirected=!Object.prototype.hasOwnProperty.call(t,"directed")||t.directed,this._isMultigraph=!!Object.prototype.hasOwnProperty.call(t,"multigraph")&&t.multigraph,this._isCompound=!!Object.prototype.hasOwnProperty.call(t,"compound")&&t.compound,this._label=void 0,this._defaultNodeLabelFn=a.Z(void 0),this._defaultEdgeLabelFn=a.Z(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children["\0"]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return!i.Z(t)&&(t=a.Z(t)),this._defaultNodeLabelFn=t,this}nodeCount(){return this._nodeCount}nodes(){return s.Z(this._nodes)}sources(){var t=this;return n.Z(this.nodes(),function(e){return l.Z(t._in[e])})}sinks(){var t=this;return n.Z(this.nodes(),function(e){return l.Z(t._out[e])})}setNodes(t,e){var r=arguments,a=this;return o.Z(t,function(t){r.length>1?a.setNode(t,e):a.setNode(t)}),this}setNode(t,e){return Object.prototype.hasOwnProperty.call(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=e),this):(this._nodes[t]=arguments.length>1?e:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]="\0",this._children[t]={},this._children["\0"][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return Object.prototype.hasOwnProperty.call(this._nodes,t)}removeNode(t){if(Object.prototype.hasOwnProperty.call(this._nodes,t)){var e=t=>this.removeEdge(this._edgeObjs[t]);delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],o.Z(this.children(t),t=>{this.setParent(t)}),delete this._children[t]),o.Z(s.Z(this._in[t]),e),delete this._in[t],delete this._preds[t],o.Z(s.Z(this._out[t]),e),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,e){if(!this._isCompound)throw Error("Cannot set parent in a non-compound graph");if(d.Z(e))e="\0";else{e+="";for(var r=e;!d.Z(r);r=this.parent(r))if(r===t)throw Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=e,this._children[e][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var e=this._parent[t];if("\0"!==e)return e}}children(t){if(d.Z(t)&&(t="\0"),this._isCompound){var e=this._children[t];if(e)return s.Z(e)}else if("\0"===t)return this.nodes();else if(this.hasNode(t))return[]}predecessors(t){var e=this._preds[t];if(e)return s.Z(e)}successors(t){var e=this._sucs[t];if(e)return s.Z(e)}neighbors(t){var e=this.predecessors(t);if(e)return p(e,this.successors(t))}isLeaf(t){var e;return 0===(e=this.isDirected()?this.successors(t):this.neighbors(t)).length}filterNodes(t){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var r=this;o.Z(this._nodes,function(r,a){t(a)&&e.setNode(a,r)}),o.Z(this._edgeObjs,function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,r.edge(t))});var a={};return this._isCompound&&o.Z(e.nodes(),function(t){e.setParent(t,function t(i){var s=r.parent(i);return void 0===s||e.hasNode(s)?(a[i]=s,s):s in a?a[s]:t(s)}(t))}),e}setDefaultEdgeLabel(t){return!i.Z(t)&&(t=a.Z(t)),this._defaultEdgeLabelFn=t,this}edgeCount(){return this._edgeCount}edges(){return y.Z(this._edgeObjs)}setPath(t,e){var r=this,a=arguments;return b.Z(t,function(t,i){return a.length>1?r.setEdge(t,i,e):r.setEdge(t,i),i}),this}setEdge(){var t,e,r,a,i=!1,s=arguments[0];"object"==typeof s&&null!==s&&"v"in s?(t=s.v,e=s.w,r=s.name,2==arguments.length&&(a=arguments[1],i=!0)):(t=s,e=arguments[1],r=arguments[3],arguments.length>2&&(a=arguments[2],i=!0)),t=""+t,e=""+e,!d.Z(r)&&(r=""+r);var n=w(this._isDirected,t,e,r);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,n))return i&&(this._edgeLabels[n]=a),this;if(!d.Z(r)&&!this._isMultigraph)throw Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(e),this._edgeLabels[n]=i?a:this._defaultEdgeLabelFn(t,e,r);var l=function(t,e,r,a){var i=""+e,s=""+r;if(!t&&i>s){var n=i;i=s,s=n}var l={v:i,w:s};return a&&(l.name=a),l}(this._isDirected,t,e,r);return t=l.v,e=l.w,Object.freeze(l),this._edgeObjs[n]=l,x(this._preds[e],t),x(this._sucs[t],e),this._in[e][n]=l,this._out[t][n]=l,this._edgeCount++,this}edge(t,e,r){var a=1==arguments.length?_(this._isDirected,arguments[0]):w(this._isDirected,t,e,r);return this._edgeLabels[a]}hasEdge(t,e,r){var a=1==arguments.length?_(this._isDirected,arguments[0]):w(this._isDirected,t,e,r);return Object.prototype.hasOwnProperty.call(this._edgeLabels,a)}removeEdge(t,e,r){var a=1==arguments.length?_(this._isDirected,arguments[0]):w(this._isDirected,t,e,r),i=this._edgeObjs[a];return i&&(t=i.v,e=i.w,delete this._edgeLabels[a],delete this._edgeObjs[a],m(this._preds[e],t),m(this._sucs[t],e),delete this._in[e][a],delete this._out[t][a],this._edgeCount--),this}inEdges(t,e){var r=this._in[t];if(r){var a=y.Z(r);return e?n.Z(a,function(t){return t.v===e}):a}}outEdges(t,e){var r=this._out[t];if(r){var a=y.Z(r);return e?n.Z(a,function(t){return t.w===e}):a}}nodeEdges(t,e){var r=this.inEdges(t,e);if(r)return r.concat(this.outEdges(t,e))}}function x(t,e){t[e]?t[e]++:t[e]=1}function m(t,e){!--t[e]&&delete t[e]}function w(t,e,r,a){var i=""+e,s=""+r;if(!t&&i>s){var n=i;i=s,s=n}return i+"\x01"+s+"\x01"+(d.Z(a)?"\0":a)}f.prototype._nodeCount=0,f.prototype._edgeCount=0;function _(t,e){return w(t,e.v,e.w,e.name)}},50043:function(t,e,r){r.d(e,{k:function(){return a.k}});var a=r(61135)},73265:function(t,e,r){r.d(e,{Z:function(){return s}});var a=r(53763),i=r(26652);let s=(t,e)=>a.Z.lang.round(i.Z.parse(t)[e])},65521:function(t,e,r){r.d(e,{Z:function(){return i}});var a=r(16124);let i=function(t){return(0,a.Z)(t,4)}},34370:function(t,e,r){r.d(e,{diagram:function(){return ep}});var a=r(30594),i=r(82612),s=r(41200),n=r(68394),l=r(74146),o=r(65521),d=r(73265),c=r(13328),h=r(27818),g=r(50043),u=function(){var t=(0,l.eW)(function(t,e,r,a){for(r=r||{},a=t.length;a--;r[t[a]]=e);return r},"o"),e=[1,7],r=[1,13],a=[1,14],i=[1,15],s=[1,19],n=[1,16],o=[1,17],d=[1,18],c=[8,30],h=[8,21,28,29,30,31,32,40,44,47],g=[1,23],u=[1,24],p=[8,15,16,21,28,29,30,31,32,40,44,47],y=[8,15,16,21,27,28,29,30,31,32,40,44,47],b=[1,49],f={trace:(0,l.eW)(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:(0,l.eW)(function(t,e,r,a,i,s,n){var l=s.length-1;switch(i){case 4:a.getLogger().debug("Rule: separator (NL) ");break;case 5:a.getLogger().debug("Rule: separator (Space) ");break;case 6:a.getLogger().debug("Rule: separator (EOF) ");break;case 7:a.getLogger().debug("Rule: hierarchy: ",s[l-1]),a.setHierarchy(s[l-1]);break;case 8:a.getLogger().debug("Stop NL ");break;case 9:a.getLogger().debug("Stop EOF ");break;case 10:a.getLogger().debug("Stop NL2 ");break;case 11:a.getLogger().debug("Stop EOF2 ");break;case 12:a.getLogger().debug("Rule: statement: ",s[l]),"number"==typeof s[l].length?this.$=s[l]:this.$=[s[l]];break;case 13:a.getLogger().debug("Rule: statement #2: ",s[l-1]),this.$=[s[l-1]].concat(s[l]);break;case 14:a.getLogger().debug("Rule: link: ",s[l],t),this.$={edgeTypeStr:s[l],label:""};break;case 15:a.getLogger().debug("Rule: LABEL link: ",s[l-3],s[l-1],s[l]),this.$={edgeTypeStr:s[l],label:s[l-1]};break;case 18:let o=parseInt(s[l]),d=a.generateId();this.$={id:d,type:"space",label:"",width:o,children:[]};break;case 23:a.getLogger().debug("Rule: (nodeStatement link node) ",s[l-2],s[l-1],s[l]," typestr: ",s[l-1].edgeTypeStr);let c=a.edgeStrToEdgeData(s[l-1].edgeTypeStr);this.$=[{id:s[l-2].id,label:s[l-2].label,type:s[l-2].type,directions:s[l-2].directions},{id:s[l-2].id+"-"+s[l].id,start:s[l-2].id,end:s[l].id,label:s[l-1].label,type:"edge",directions:s[l].directions,arrowTypeEnd:c,arrowTypeStart:"arrow_open"},{id:s[l].id,label:s[l].label,type:a.typeStr2Type(s[l].typeStr),directions:s[l].directions}];break;case 24:a.getLogger().debug("Rule: nodeStatement (abc88 node size) ",s[l-1],s[l]),this.$={id:s[l-1].id,label:s[l-1].label,type:a.typeStr2Type(s[l-1].typeStr),directions:s[l-1].directions,widthInColumns:parseInt(s[l],10)};break;case 25:a.getLogger().debug("Rule: nodeStatement (node) ",s[l]),this.$={id:s[l].id,label:s[l].label,type:a.typeStr2Type(s[l].typeStr),directions:s[l].directions,widthInColumns:1};break;case 26:a.getLogger().debug("APA123",this?this:"na"),a.getLogger().debug("COLUMNS: ",s[l]),this.$={type:"column-setting",columns:"auto"===s[l]?-1:parseInt(s[l])};break;case 27:a.getLogger().debug("Rule: id-block statement : ",s[l-2],s[l-1]),a.generateId(),this.$={...s[l-2],type:"composite",children:s[l-1]};break;case 28:a.getLogger().debug("Rule: blockStatement : ",s[l-2],s[l-1],s[l]);let h=a.generateId();this.$={id:h,type:"composite",label:"",children:s[l-1]};break;case 29:a.getLogger().debug("Rule: node (NODE_ID separator): ",s[l]),this.$={id:s[l]};break;case 30:a.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",s[l-1],s[l]),this.$={id:s[l-1],label:s[l].label,typeStr:s[l].typeStr,directions:s[l].directions};break;case 31:a.getLogger().debug("Rule: dirList: ",s[l]),this.$=[s[l]];break;case 32:a.getLogger().debug("Rule: dirList: ",s[l-1],s[l]),this.$=[s[l-1]].concat(s[l]);break;case 33:a.getLogger().debug("Rule: nodeShapeNLabel: ",s[l-2],s[l-1],s[l]),this.$={typeStr:s[l-2]+s[l],label:s[l-1]};break;case 34:a.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",s[l-3],s[l-2]," #3:",s[l-1],s[l]),this.$={typeStr:s[l-3]+s[l],label:s[l-2],directions:s[l-1]};break;case 35:case 36:this.$={type:"classDef",id:s[l-1].trim(),css:s[l].trim()};break;case 37:this.$={type:"applyClass",id:s[l-1].trim(),styleClass:s[l].trim()};break;case 38:this.$={type:"applyStyles",id:s[l-1].trim(),stylesStr:s[l].trim()}}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:a,31:i,32:s,40:n,44:o,47:d},{8:[1,20]},t(c,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:e,28:r,29:a,31:i,32:s,40:n,44:o,47:d}),t(h,[2,16],{14:22,15:g,16:u}),t(h,[2,17]),t(h,[2,18]),t(h,[2,19]),t(h,[2,20]),t(h,[2,21]),t(h,[2,22]),t(p,[2,25],{27:[1,25]}),t(h,[2,26]),{19:26,26:12,32:s},{11:27,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:a,31:i,32:s,40:n,44:o,47:d},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},t(y,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},t(c,[2,13]),{26:35,32:s},{32:[2,14]},{17:[1,36]},t(p,[2,24]),{11:37,13:4,14:22,15:g,16:u,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:a,31:i,32:s,40:n,44:o,47:d},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},t(y,[2,30]),{18:[1,43]},{18:[1,44]},t(p,[2,23]),{18:[1,45]},{30:[1,46]},t(h,[2,28]),t(h,[2,35]),t(h,[2,36]),t(h,[2,37]),t(h,[2,38]),{37:[1,47]},{34:48,35:b},{15:[1,50]},t(h,[2,27]),t(y,[2,33]),{39:[1,51]},{34:52,35:b,39:[2,31]},{32:[2,15]},t(y,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:(0,l.eW)(function(t,e){if(e.recoverable)this.trace(t);else{var r=Error(t);throw r.hash=e,r}},"parseError"),parse:(0,l.eW)(function(t){var e=this,r=[0],a=[],i=[null],s=[],n=this.table,o="",d=0,c=0,h=0,g=s.slice.call(arguments,1),u=Object.create(this.lexer),p={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(p.yy[y]=this.yy[y]);u.setInput(t,p.yy),p.yy.lexer=u,p.yy.parser=this,void 0===u.yylloc&&(u.yylloc={});var b=u.yylloc;s.push(b);var f=u.options&&u.options.ranges;"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function x(){var t;return"number"!=typeof(t=a.pop()||u.lex()||1)&&(t instanceof Array&&(t=(a=t).pop()),t=e.symbols_[t]||t),t}(0,l.eW)(function(t){r.length=r.length-2*t,i.length=i.length-t,s.length=s.length-t},"popStack"),(0,l.eW)(x,"lex");for(var m,w,_,k,L,S,E,v,W,D={};;){if(_=r[r.length-1],this.defaultActions[_]?k=this.defaultActions[_]:(null==m&&(m=x()),k=n[_]&&n[_][m]),void 0===k||!k.length||!k[0]){var C="";for(S in W=[],n[_])this.terminals_[S]&&S>2&&W.push("'"+this.terminals_[S]+"'");C=u.showPosition?"Parse error on line "+(d+1)+":\n"+u.showPosition()+"\nExpecting "+W.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(d+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(C,{text:u.match,token:this.terminals_[m]||m,line:u.yylineno,loc:b,expected:W})}if(k[0]instanceof Array&&k.length>1)throw Error("Parse Error: multiple actions possible at state: "+_+", token: "+m);switch(k[0]){case 1:r.push(m),i.push(u.yytext),s.push(u.yylloc),r.push(k[1]),m=null,w?(m=w,w=null):(c=u.yyleng,o=u.yytext,d=u.yylineno,b=u.yylloc,h>0&&h--);break;case 2:if(E=this.productions_[k[1]][1],D.$=i[i.length-E],D._$={first_line:s[s.length-(E||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(E||1)].first_column,last_column:s[s.length-1].last_column},f&&(D._$.range=[s[s.length-(E||1)].range[0],s[s.length-1].range[1]]),void 0!==(L=this.performAction.apply(D,[o,c,d,p.yy,k[1],i,s].concat(g))))return L;E&&(r=r.slice(0,-1*E*2),i=i.slice(0,-1*E),s=s.slice(0,-1*E)),r.push(this.productions_[k[1]][0]),i.push(D.$),s.push(D._$),v=n[r[r.length-2]][r[r.length-1]],r.push(v);break;case 3:return!0}}return!0},"parse")},x={EOF:1,parseError:(0,l.eW)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,l.eW)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,l.eW)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,l.eW)(function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var a=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===a.length?this.yylloc.first_column:0)+a[a.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,l.eW)(function(){return this._more=!0,this},"more"),reject:(0,l.eW)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,l.eW)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,l.eW)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,l.eW)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,l.eW)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,l.eW)(function(t,e){var r,a,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack)for(var s in i)this[s]=i[s];return!1},"test_match"),next:(0,l.eW)(function(){if(this.done)return this.EOF;!this._input&&(this.done=!0),!this._more&&(this.yytext="",this.match="");for(var t,e,r,a,i=this._currentRules(),s=0;se[0].length)){if(e=r,a=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[s])))return t;if(!this._backtrack)return!1;else{e=!1;continue}}if(!this.options.flex)break}if(e)return!1!==(t=this.test_match(e,i[a]))&&t;return""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,l.eW)(function(){var t=this.next();return t?t:this.lex()},"lex"),begin:(0,l.eW)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,l.eW)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,l.eW)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,l.eW)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,l.eW)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,l.eW)(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:(0,l.eW)(function(t,e,r,a){switch(r){case 0:return 10;case 1:return t.getLogger().debug("Found space-block"),31;case 2:return t.getLogger().debug("Found nl-block"),31;case 3:return t.getLogger().debug("Found space-block"),29;case 4:t.getLogger().debug(".",e.yytext);break;case 5:t.getLogger().debug("_",e.yytext);break;case 6:return 5;case 7:return e.yytext=-1,28;case 8:return e.yytext=e.yytext.replace(/columns\s+/,""),t.getLogger().debug("COLUMNS (LEX)",e.yytext),28;case 9:case 77:case 78:case 100:this.pushState("md_string");break;case 10:return"MD_STR";case 11:case 35:case 80:this.popState();break;case 12:this.pushState("string");break;case 13:t.getLogger().debug("LEX: POPPING STR:",e.yytext),this.popState();break;case 14:return t.getLogger().debug("LEX: STR end:",e.yytext),"STR";case 15:return e.yytext=e.yytext.replace(/space\:/,""),t.getLogger().debug("SPACE NUM (LEX)",e.yytext),21;case 16:return e.yytext="1",t.getLogger().debug("COLUMNS (LEX)",e.yytext),21;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 22:return this.popState(),this.pushState("CLASSDEFID"),41;case 23:return this.popState(),42;case 24:return this.pushState("CLASS"),44;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;case 26:return this.popState(),46;case 27:return this.pushState("STYLE_STMNT"),47;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;case 29:return this.popState(),49;case 30:return this.pushState("acc_title"),"acc_title";case 31:return this.popState(),"acc_title_value";case 32:return this.pushState("acc_descr"),"acc_descr";case 33:return this.popState(),"acc_descr_value";case 34:this.pushState("acc_descr_multiline");break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:case 39:case 41:case 42:case 45:return this.popState(),t.getLogger().debug("Lex: (("),"NODE_DEND";case 40:return this.popState(),t.getLogger().debug("Lex: ))"),"NODE_DEND";case 43:return this.popState(),t.getLogger().debug("Lex: (-"),"NODE_DEND";case 44:return this.popState(),t.getLogger().debug("Lex: -)"),"NODE_DEND";case 46:return this.popState(),t.getLogger().debug("Lex: ]]"),"NODE_DEND";case 47:return this.popState(),t.getLogger().debug("Lex: ("),"NODE_DEND";case 48:return this.popState(),t.getLogger().debug("Lex: ])"),"NODE_DEND";case 49:case 50:return this.popState(),t.getLogger().debug("Lex: /]"),"NODE_DEND";case 51:return this.popState(),t.getLogger().debug("Lex: )]"),"NODE_DEND";case 52:return this.popState(),t.getLogger().debug("Lex: )"),"NODE_DEND";case 53:return this.popState(),t.getLogger().debug("Lex: ]>"),"NODE_DEND";case 54:return this.popState(),t.getLogger().debug("Lex: ]"),"NODE_DEND";case 55:return t.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;case 56:return t.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;case 57:return t.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;case 58:case 60:case 61:case 62:case 65:return t.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 59:return t.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;case 63:return t.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;case 64:return t.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;case 66:case 67:case 68:case 69:case 70:case 71:case 72:return this.pushState("NODE"),36;case 73:return t.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;case 74:return this.pushState("BLOCK_ARROW"),t.getLogger().debug("LEX ARR START"),38;case 75:return t.getLogger().debug("Lex: NODE_ID",e.yytext),32;case 76:return t.getLogger().debug("Lex: EOF",e.yytext),8;case 79:return"NODE_DESCR";case 81:t.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:t.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return t.getLogger().debug("LEX: NODE_DESCR:",e.yytext),"NODE_DESCR";case 84:t.getLogger().debug("LEX POPPING"),this.popState();break;case 85:t.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (right): dir:",e.yytext),"DIR";case 87:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (left):",e.yytext),"DIR";case 88:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (x):",e.yytext),"DIR";case 89:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (y):",e.yytext),"DIR";case 90:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (up):",e.yytext),"DIR";case 91:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (down):",e.yytext),"DIR";case 92:return e.yytext="]>",t.getLogger().debug("Lex (ARROW_DIR end):",e.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 93:return t.getLogger().debug("Lex: LINK","#"+e.yytext+"#"),15;case 94:case 95:case 96:return t.getLogger().debug("Lex: LINK",e.yytext),15;case 97:case 98:case 99:return t.getLogger().debug("Lex: START_LINK",e.yytext),this.pushState("LLABEL"),16;case 101:return t.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 102:return this.popState(),t.getLogger().debug("Lex: LINK","#"+e.yytext+"#"),15;case 103:case 104:return this.popState(),t.getLogger().debug("Lex: LINK",e.yytext),15;case 105:return t.getLogger().debug("Lex: COLON",e.yytext),e.yytext=e.yytext.slice(1),27}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};function m(){this.yy={}}return f.lexer=x,(0,l.eW)(m,"Parser"),m.prototype=f,f.Parser=m,new m}();u.parser=u;var p=new Map,y=[],b=new Map,f="color",x="fill",m=(0,l.nV)(),w=new Map,_=(0,l.eW)(t=>l.SY.sanitizeText(t,m),"sanitizeText"),k=(0,l.eW)(function(t,e=""){let r=w.get(t);!r&&(r={id:t,styles:[],textStyles:[]},w.set(t,r)),null!=e&&e.split(",").forEach(t=>{let e=t.replace(/([^;]*);/,"$1").trim();if(RegExp(f).exec(t)){let t=e.replace(x,"bgFill").replace(f,x);r.textStyles.push(t)}r.styles.push(e)})},"addStyleClass"),L=(0,l.eW)(function(t,e=""){let r=p.get(t);null!=e&&(r.styles=e.split(","))},"addStyle2Node"),S=(0,l.eW)(function(t,e){t.split(",").forEach(function(t){let r=p.get(t);if(void 0===r){let e=t.trim();r={id:e,type:"na",children:[]},p.set(e,r)}!r.classes&&(r.classes=[]),r.classes.push(e)})},"setCssClass"),E=(0,l.eW)((t,e)=>{let r=t.flat(),a=[];for(let t of r){if(t.label&&(t.label=_(t.label)),"classDef"===t.type){k(t.id,t.css);continue}if("applyClass"===t.type){S(t.id,t?.styleClass??"");continue}if("applyStyles"===t.type){t?.stylesStr&&L(t.id,t?.stylesStr);continue}if("column-setting"===t.type)e.columns=t.columns??-1;else if("edge"===t.type){let e=(b.get(t.id)??0)+1;b.set(t.id,e),t.id=e+"-"+t.id,y.push(t)}else{!t.label&&("composite"===t.type?t.label="":t.label=t.id);let e=p.get(t.id);if(void 0===e?p.set(t.id,t):("na"!==t.type&&(e.type=t.type),t.label!==t.id&&(e.label=t.label)),t.children&&E(t.children,t),"space"===t.type){let e=t.width??1;for(let r=0;r{l.cM.debug("Clear called"),(0,l.ZH)(),p=new Map([["root",W={id:"root",type:"composite",children:[],columns:-1}]]),v=[],w=new Map,y=[],b=new Map},"clear");function C(t){switch(l.cM.debug("typeStr2Type",t),t){case"[]":return"square";case"()":return l.cM.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function N(t){if(l.cM.debug("typeStr2Type",t),"=="===t)return"thick";return"normal"}function $(t){switch(t.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}(0,l.eW)(C,"typeStr2Type"),(0,l.eW)(N,"edgeTypeStr2Type"),(0,l.eW)($,"edgeStrToEdgeData");var M=0,T=(0,l.eW)(()=>(M++,"id-"+Math.random().toString(36).substr(2,12)+"-"+M),"generateId"),O=(0,l.eW)(t=>{W.children=t,E(t,W),v=W.children},"setHierarchy"),I=(0,l.eW)(t=>{let e=p.get(t);return e?e.columns?e.columns:e.children?e.children.length:-1:-1},"getColumns"),B=(0,l.eW)(()=>[...p.values()],"getBlocksFlat"),z=(0,l.eW)(()=>v||[],"getBlocks"),R=(0,l.eW)(()=>y,"getEdges"),A=(0,l.eW)(t=>p.get(t),"getBlock"),P=(0,l.eW)(t=>{p.set(t.id,t)},"setBlock"),Y=(0,l.eW)(()=>console,"getLogger"),Z=(0,l.eW)(function(){return w},"getClasses"),F={getConfig:(0,l.eW)(()=>(0,l.iE)().block,"getConfig"),typeStr2Type:C,edgeTypeStr2Type:N,edgeStrToEdgeData:$,getLogger:Y,getBlocksFlat:B,getBlocks:z,getEdges:R,setHierarchy:O,getBlock:A,setBlock:P,getColumns:I,getClasses:Z,clear:D,generateId:T},j=(0,l.eW)((t,e)=>{let r=d.Z,a=r(t,"r"),i=r(t,"g"),s=r(t,"b");return c.Z(a,i,s,e)},"fade"),X=(0,l.eW)(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span,p { + color: ${t.titleColor}; + } + + + + .label text,span,p { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${j(t.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${j(t.mainBkg,.5)}; + fill: ${j(t.clusterBkg,.5)}; + stroke: ${j(t.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span,p { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles"),H=(0,l.eW)((t,e,r,a)=>{e.forEach(e=>{te[e](t,r,a)})},"insertMarkers"),U=(0,l.eW)((t,e,r)=>{l.cM.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),K=(0,l.eW)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),V=(0,l.eW)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),q=(0,l.eW)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),G=(0,l.eW)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),J=(0,l.eW)((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),Q=(0,l.eW)((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),tt=(0,l.eW)((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),te={extension:U,composition:K,aggregation:V,dependency:q,lollipop:G,point:J,circle:Q,cross:tt,barb:(0,l.eW)((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb")},tr=l.nV()?.block?.padding??8;function ta(t,e){if(0===t||!Number.isInteger(t))throw Error("Columns must be an integer !== 0.");if(e<0||!Number.isInteger(e))throw Error("Position must be a non-negative integer."+e);if(t<0)return{px:e,py:0};if(1===t)return{px:0,py:e};let r=Math.floor(e/t);return{px:e%t,py:r}}(0,l.eW)(ta,"calculateBlockPosition");var ti=(0,l.eW)(t=>{let e=0,r=0;for(let a of t.children){let{width:i,height:s,x:n,y:o}=a.size??{width:0,height:0,x:0,y:0};if(l.cM.debug("getMaxChildSize abc95 child:",a.id,"width:",i,"height:",s,"x:",n,"y:",o,a.type),"space"!==a.type)i>e&&(e=i/(t.widthInColumns??1)),s>r&&(r=s)}return{width:e,height:r}},"getMaxChildSize");function ts(t,e,r=0,a=0){l.cM.debug("setBlockSizes abc95 (start)",t.id,t?.size?.x,"block width =",t?.size,"sieblingWidth",r),!t?.size?.width&&(t.size={width:r,height:a,x:0,y:0});let i=0,s=0;if(t.children?.length>0){for(let r of t.children)ts(r,e);let n=ti(t);for(let e of(i=n.width,s=n.height,l.cM.debug("setBlockSizes abc95 maxWidth of",t.id,":s children is ",i,s),t.children))e.size&&(l.cM.debug(`abc95 Setting size of children of ${t.id} id=${e.id} ${i} ${s} ${JSON.stringify(e.size)}`),e.size.width=i*(e.widthInColumns??1)+tr*((e.widthInColumns??1)-1),e.size.height=s,e.size.x=0,e.size.y=0,l.cM.debug(`abc95 updating size of ${t.id} children child:${e.id} maxWidth:${i} maxHeight:${s}`));for(let r of t.children)ts(r,e,i,s);let o=t.columns??-1,d=0;for(let e of t.children)d+=e.widthInColumns??1;let c=t.children.length;o>0&&o0?Math.min(t.children.length,o):t.children.length;if(e>0){let r=(g-e*tr-tr)/e;for(let e of(l.cM.debug("abc95 (growing to fit) width",t.id,g,t.size?.width,r),t.children))e.size&&(e.size.width=r)}}t.size={width:g,height:u,x:0,y:0}}l.cM.debug("setBlockSizes abc94 (done)",t.id,t?.size?.x,t?.size?.width,t?.size?.y,t?.size?.height)}function tn(t,e){l.cM.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`);let r=t.columns??-1;if(l.cM.debug("layoutBlocks columns abc95",t.id,"=>",r,t),t.children&&t.children.length>0){let a=t?.children[0]?.size?.width??0,i=t.children.length*a+(t.children.length-1)*tr;l.cM.debug("widthOfChildren 88",i,"posX");let s=0;l.cM.debug("abc91 block?.size?.x",t.id,t?.size?.x);let n=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-tr,o=0;for(let a of t.children){if(!a.size)continue;let{width:i,height:d}=a.size,{px:c,py:h}=ta(r,s);if(h!=o&&(o=h,n=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-tr,l.cM.debug("New row in layout for block",t.id," and child ",a.id,o)),l.cM.debug(`abc89 layout blocks (child) id: ${a.id} Pos: ${s} (px, py) ${c},${h} (${t?.size?.x},${t?.size?.y}) parent: ${t.id} width: ${i}${tr}`),t.size){let e=i/2;a.size.x=n+tr+e,l.cM.debug(`abc91 layout blocks (calc) px, pyid:${a.id} startingPos=X${n} new startingPosX${a.size.x} ${e} padding=${tr} width=${i} halfWidth=${e} => x:${a.size.x} y:${a.size.y} ${a.widthInColumns} (width * (child?.w || 1)) / 2 ${i*(a?.widthInColumns??1)/2}`),n=a.size.x+e,a.size.y=t.size.y-t.size.height/2+h*(d+tr)+d/2+tr,l.cM.debug(`abc88 layout blocks (calc) px, pyid:${a.id}startingPosX${n}${tr}${e}=>x:${a.size.x}y:${a.size.y}${a.widthInColumns}(width * (child?.w || 1)) / 2${i*(a?.widthInColumns??1)/2}`)}a.children&&tn(a,e),s+=a?.widthInColumns??1,l.cM.debug("abc88 columnsPos",a,s)}}l.cM.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`)}function tl(t,{minX:e,minY:r,maxX:a,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(t.size&&"root"!==t.id){let{x:s,y:n,width:l,height:o}=t.size;s-l/2a&&(a=s+l/2),n+o/2>i&&(i=n+o/2)}if(t.children)for(let s of t.children)({minX:e,minY:r,maxX:a,maxY:i}=tl(s,{minX:e,minY:r,maxX:a,maxY:i}));return{minX:e,minY:r,maxX:a,maxY:i}}function to(t){let e=t.getBlock("root");if(!e)return;ts(e,t,0,0),tn(e,t),l.cM.debug("getBlocks",JSON.stringify(e,null,2));let{minX:r,minY:a,maxX:i,maxY:s}=tl(e);return{x:r,y:a,width:i-r,height:s-a}}function td(t,e){e&&t.attr("style",e)}function tc(t){let e=(0,h.Ys)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),a=t.label,i=t.isNode?"nodeLabel":"edgeLabel",s=r.append("span");return s.html(a),td(s,t.labelStyle),s.attr("class",i),td(r,t.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}(0,l.eW)(ts,"setBlockSizes"),(0,l.eW)(tn,"layoutBlocks"),(0,l.eW)(tl,"findBounds"),(0,l.eW)(to,"layout"),(0,l.eW)(td,"applyStyle"),(0,l.eW)(tc,"addHtmlLabel");var th=(0,l.eW)((t,e,r,a)=>{let i=t||"";if("object"==typeof i&&(i=i[0]),(0,l.ku)((0,l.nV)().flowchart.htmlLabels))return i=i.replace(/\\n|\n/g,"
    "),l.cM.debug("vertexText"+i),tc({isNode:a,label:(0,s.EY)((0,n.SH)(i)),labelStyle:e.replace("fill:","color:")});{let t=document.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",e.replace("color:","fill:"));let a=[];for(let e of a="string"==typeof i?i.split(/\\n|\n|/gi):Array.isArray(i)?i:[]){let a=document.createElementNS("http://www.w3.org/2000/svg","tspan");a.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),a.setAttribute("dy","1em"),a.setAttribute("x","0"),r?a.setAttribute("class","title-row"):a.setAttribute("class","row"),a.textContent=e.trim(),t.appendChild(a)}return t}},"createLabel"),tg=(0,l.eW)((t,e,r,a,i)=>{e.arrowTypeStart&&tp(t,"start",e.arrowTypeStart,r,a,i),e.arrowTypeEnd&&tp(t,"end",e.arrowTypeEnd,r,a,i)},"addEdgeMarkers"),tu={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},tp=(0,l.eW)((t,e,r,a,i,s)=>{let n=tu[r];if(!n){l.cM.warn(`Unknown arrow type: ${r}`);return}t.attr(`marker-${e}`,`url(${a}#${i}_${s}-${n}${"start"===e?"Start":"End"})`)},"addEdgeMarker"),ty={},tb={},tf=(0,l.eW)((t,e)=>{let r;let a=(0,l.nV)(),i=(0,l.ku)(a.flowchart.htmlLabels),n="markdown"===e.labelType?(0,s.rw)(t,e.label,{style:e.labelStyle,useHtmlLabels:i,addSvgBackground:!0},a):th(e.label,e.labelStyle),o=t.insert("g").attr("class","edgeLabel"),d=o.insert("g").attr("class","label");d.node().appendChild(n);let c=n.getBBox();if(i){let t=n.children[0],e=(0,h.Ys)(n);c=t.getBoundingClientRect(),e.attr("width",c.width),e.attr("height",c.height)}if(d.attr("transform","translate("+-c.width/2+", "+-c.height/2+")"),ty[e.id]=o,e.width=c.width,e.height=c.height,e.startLabelLeft){let a=th(e.startLabelLeft,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),s=i.insert("g").attr("class","inner");r=s.node().appendChild(a);let n=a.getBBox();s.attr("transform","translate("+-n.width/2+", "+-n.height/2+")"),!tb[e.id]&&(tb[e.id]={}),tb[e.id].startLeft=i,tx(r,e.startLabelLeft)}if(e.startLabelRight){let a=th(e.startLabelRight,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),s=i.insert("g").attr("class","inner");r=i.node().appendChild(a),s.node().appendChild(a);let n=a.getBBox();s.attr("transform","translate("+-n.width/2+", "+-n.height/2+")"),!tb[e.id]&&(tb[e.id]={}),tb[e.id].startRight=i,tx(r,e.startLabelRight)}if(e.endLabelLeft){let a=th(e.endLabelLeft,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),s=i.insert("g").attr("class","inner");r=s.node().appendChild(a);let n=a.getBBox();s.attr("transform","translate("+-n.width/2+", "+-n.height/2+")"),i.node().appendChild(a),!tb[e.id]&&(tb[e.id]={}),tb[e.id].endLeft=i,tx(r,e.endLabelLeft)}if(e.endLabelRight){let a=th(e.endLabelRight,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),s=i.insert("g").attr("class","inner");r=s.node().appendChild(a);let n=a.getBBox();s.attr("transform","translate("+-n.width/2+", "+-n.height/2+")"),i.node().appendChild(a),!tb[e.id]&&(tb[e.id]={}),tb[e.id].endRight=i,tx(r,e.endLabelRight)}return n},"insertEdgeLabel");function tx(t,e){(0,l.nV)().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}(0,l.eW)(tx,"setTerminalWidth");var tm=(0,l.eW)((t,e)=>{l.cM.debug("Moving label abc88 ",t.id,t.label,ty[t.id],e);let r=e.updatedPath?e.updatedPath:e.originalPath,a=(0,l.nV)(),{subGraphTitleTotalMargin:s}=(0,i.L)(a);if(t.label){let a=ty[t.id],i=t.x,o=t.y;if(r){let a=n.w8.calcLabelPosition(r);l.cM.debug("Moving label "+t.label+" from (",i,",",o,") to (",a.x,",",a.y,") abc88"),e.updatedPath&&(i=a.x,o=a.y)}a.attr("transform",`translate(${i}, ${o+s/2})`)}if(t.startLabelLeft){let e=tb[t.id].startLeft,a=t.x,i=t.y;if(r){let e=n.w8.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);a=e.x,i=e.y}e.attr("transform",`translate(${a}, ${i})`)}if(t.startLabelRight){let e=tb[t.id].startRight,a=t.x,i=t.y;if(r){let e=n.w8.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);a=e.x,i=e.y}e.attr("transform",`translate(${a}, ${i})`)}if(t.endLabelLeft){let e=tb[t.id].endLeft,a=t.x,i=t.y;if(r){let e=n.w8.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);a=e.x,i=e.y}e.attr("transform",`translate(${a}, ${i})`)}if(t.endLabelRight){let e=tb[t.id].endRight,a=t.x,i=t.y;if(r){let e=n.w8.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);a=e.x,i=e.y}e.attr("transform",`translate(${a}, ${i})`)}},"positionEdgeLabel"),tw=(0,l.eW)((t,e)=>{let r=t.x,a=t.y,i=Math.abs(e.x-r),s=Math.abs(e.y-a),n=t.width/2,l=t.height/2;return!!(i>=n)||!!(s>=l)||!1},"outsideNode"),t_=(0,l.eW)((t,e,r)=>{l.cM.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let a=t.x,i=t.y,s=Math.abs(a-r.x),n=t.width/2,o=r.xMath.abs(a-e.x)*d){let t=r.y{l.cM.debug("abc88 cutPathAtIntersect",t,e);let r=[],a=t[0],i=!1;return t.forEach(t=>{if(tw(e,t)||i)a=t,!i&&r.push(t);else{let s=t_(e,a,t),n=!1;r.forEach(t=>{n=n||t.x===s.x&&t.y===s.y}),!r.some(t=>t.x===s.x&&t.y===s.y)&&r.push(s),i=!0}}),r},"cutPathAtIntersect"),tL=(0,l.eW)(function(t,e,r,i,s,n,o){let d,c=r.points;l.cM.debug("abc88 InsertEdge: edge=",r,"e=",e);let g=!1,u=n.node(e.v);var p=n.node(e.w);p?.intersect&&u?.intersect&&((c=c.slice(1,r.points.length-1)).unshift(u.intersect(c[0])),c.push(p.intersect(c[c.length-1]))),r.toCluster&&(l.cM.debug("to cluster abc88",i[r.toCluster]),c=tk(r.points,i[r.toCluster].node),g=!0),r.fromCluster&&(l.cM.debug("from cluster abc88",i[r.fromCluster]),c=tk(c.reverse(),i[r.fromCluster].node).reverse(),g=!0);let y=c.filter(t=>!Number.isNaN(t.y)),b=h.$0Z;r.curve&&("graph"===s||"flowchart"===s)&&(b=r.curve);let{x:f,y:x}=(0,a.o)(r),m=(0,h.jvg)().x(f).y(x).curve(b);switch(r.thickness){case"normal":d="edge-thickness-normal";break;case"thick":case"invisible":d="edge-thickness-thick";break;default:d=""}switch(r.pattern){case"solid":d+=" edge-pattern-solid";break;case"dotted":d+=" edge-pattern-dotted";break;case"dashed":d+=" edge-pattern-dashed"}let w=t.append("path").attr("d",m(y)).attr("id",r.id).attr("class"," "+d+(r.classes?" "+r.classes:"")).attr("style",r.style),_="";((0,l.nV)().flowchart.arrowMarkerAbsolute||(0,l.nV)().state.arrowMarkerAbsolute)&&(_=(_=(_=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),tg(w,r,_,o,s);let k={};return g&&(k.updatedPath=c),k.originalPath=r.points,k},"insertEdge"),tS=(0,l.eW)(t=>{let e=new Set;for(let r of t)switch(r){case"x":e.add("right"),e.add("left");break;case"y":e.add("up"),e.add("down");break;default:e.add(r)}return e},"expandAndDeduplicateDirections"),tE=(0,l.eW)((t,e,r)=>{let a=tS(t),i=e.height+2*r.padding,s=i/2,n=e.width+2*s+r.padding,l=r.padding/2;return a.has("right")&&a.has("left")&&a.has("up")&&a.has("down")?[{x:0,y:0},{x:s,y:0},{x:n/2,y:2*l},{x:n-s,y:0},{x:n,y:0},{x:n,y:-i/3},{x:n+2*l,y:-i/2},{x:n,y:-2*i/3},{x:n,y:-i},{x:n-s,y:-i},{x:n/2,y:-i-2*l},{x:s,y:-i},{x:0,y:-i},{x:0,y:-2*i/3},{x:-2*l,y:-i/2},{x:0,y:-i/3}]:a.has("right")&&a.has("left")&&a.has("up")?[{x:s,y:0},{x:n-s,y:0},{x:n,y:-i/2},{x:n-s,y:-i},{x:s,y:-i},{x:0,y:-i/2}]:a.has("right")&&a.has("left")&&a.has("down")?[{x:0,y:0},{x:s,y:-i},{x:n-s,y:-i},{x:n,y:0}]:a.has("right")&&a.has("up")&&a.has("down")?[{x:0,y:0},{x:n,y:-s},{x:n,y:-i+s},{x:0,y:-i}]:a.has("left")&&a.has("up")&&a.has("down")?[{x:n,y:0},{x:0,y:-s},{x:0,y:-i+s},{x:n,y:-i}]:a.has("right")&&a.has("left")?[{x:s,y:0},{x:s,y:-l},{x:n-s,y:-l},{x:n-s,y:0},{x:n,y:-i/2},{x:n-s,y:-i},{x:n-s,y:-i+l},{x:s,y:-i+l},{x:s,y:-i},{x:0,y:-i/2}]:a.has("up")&&a.has("down")?[{x:n/2,y:0},{x:0,y:-l},{x:s,y:-l},{x:s,y:-i+l},{x:0,y:-i+l},{x:n/2,y:-i},{x:n,y:-i+l},{x:n-s,y:-i+l},{x:n-s,y:-l},{x:n,y:-l}]:a.has("right")&&a.has("up")?[{x:0,y:0},{x:n,y:-s},{x:0,y:-i}]:a.has("right")&&a.has("down")?[{x:0,y:0},{x:n,y:0},{x:0,y:-i}]:a.has("left")&&a.has("up")?[{x:n,y:0},{x:0,y:-s},{x:n,y:-i}]:a.has("left")&&a.has("down")?[{x:n,y:0},{x:0,y:0},{x:n,y:-i}]:a.has("right")?[{x:s,y:-l},{x:s,y:-l},{x:n-s,y:-l},{x:n-s,y:0},{x:n,y:-i/2},{x:n-s,y:-i},{x:n-s,y:-i+l},{x:s,y:-i+l},{x:s,y:-i+l}]:a.has("left")?[{x:s,y:0},{x:s,y:-l},{x:n-s,y:-l},{x:n-s,y:-i+l},{x:s,y:-i+l},{x:s,y:-i},{x:0,y:-i/2}]:a.has("up")?[{x:s,y:-l},{x:s,y:-i+l},{x:0,y:-i+l},{x:n/2,y:-i},{x:n,y:-i+l},{x:n-s,y:-i+l},{x:n-s,y:-l}]:a.has("down")?[{x:n/2,y:0},{x:0,y:-l},{x:s,y:-l},{x:s,y:-i+l},{x:n-s,y:-i+l},{x:n-s,y:-l},{x:n,y:-l}]:[{x:0,y:0}]},"getArrowPoints");function tv(t,e){return t.intersect(e)}(0,l.eW)(tv,"intersectNode");function tW(t,e,r,a){var i=t.x,s=t.y,n=i-a.x,l=s-a.y,o=Math.sqrt(e*e*l*l+r*r*n*n),d=Math.abs(e*r*n/o);a.x0}(0,l.eW)(tC,"intersectLine"),(0,l.eW)(tN,"sameSign");function t$(t,e,r){var a=t.x,i=t.y,s=[],n=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach(function(t){n=Math.min(n,t.x),l=Math.min(l,t.y)}):(n=Math.min(n,e.x),l=Math.min(l,e.y));for(var o=a-t.width/2-n,d=i-t.height/2-l,c=0;c1&&s.sort(function(t,e){var a=t.x-r.x,i=t.y-r.y,s=Math.sqrt(a*a+i*i),n=e.x-r.x,l=e.y-r.y,o=Math.sqrt(n*n+l*l);return s{var r,a,i=t.x,s=t.y,n=e.x-i,l=e.y-s,o=t.width/2,d=t.height/2;return Math.abs(l)*o>Math.abs(n)*d?(l<0&&(d=-d),r=0===l?0:d*n/l,a=d):(n<0&&(o=-o),r=o,a=0===n?0:o*l/n),{x:i+r,y:s+a}},"intersectRect"),tT=tD,tO=t$,tI=tM,tB=(0,l.eW)(async(t,e,r,a)=>{let i,o,d;let c=(0,l.nV)(),g=e.useHtmlLabels||(0,l.ku)(c.flowchart.htmlLabels);i=r?r:"node default";let u=t.insert("g").attr("class",i).attr("id",e.domId||e.id),p=u.insert("g").attr("class","label").attr("style",e.labelStyle);o=void 0===e.labelText?"":"string"==typeof e.labelText?e.labelText:e.labelText[0];let y=p.node(),b=(d="markdown"===e.labelType?(0,s.rw)(p,(0,l.oO)((0,n.SH)(o),c),{useHtmlLabels:g,width:e.width||c.flowchart.wrappingWidth,classes:"markdown-node-label"},c):y.appendChild(th((0,l.oO)((0,n.SH)(o),c),e.labelStyle,!1,a))).getBBox(),f=e.padding/2;if((0,l.ku)(c.flowchart.htmlLabels)){let t=d.children[0],e=(0,h.Ys)(d),r=t.getElementsByTagName("img");if(r){let t=""===o.replace(/]*>/g,"").trim();await Promise.all([...r].map(e=>new Promise(r=>{function a(){if(e.style.display="flex",e.style.flexDirection="column",t){let t=c.fontSize?c.fontSize:window.getComputedStyle(document.body).fontSize,r=5*parseInt(t,10)+"px";e.style.minWidth=r,e.style.maxWidth=r}else e.style.width="100%";r(e)}(0,l.eW)(a,"setupImage"),setTimeout(()=>{e.complete&&a()}),e.addEventListener("error",a),e.addEventListener("load",a)})))}b=t.getBoundingClientRect(),e.attr("width",b.width),e.attr("height",b.height)}return g?p.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"):p.attr("transform","translate(0, "+-b.height/2+")"),e.centerLabel&&p.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),p.insert("rect",":first-child"),{shapeSvg:u,bbox:b,halfPadding:f,label:p}},"labelHelper"),tz=(0,l.eW)((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds");function tR(t,e,r,a){return t.insert("polygon",":first-child").attr("points",a.map(function(t){return t.x+","+t.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}(0,l.eW)(tR,"insertPolygonShape");var tA=(0,l.eW)(async(t,e)=>{!(e.useHtmlLabels||(0,l.nV)().flowchart.htmlLabels)&&(e.centerLabel=!0);let{shapeSvg:r,bbox:a,halfPadding:i}=await tB(t,e,"node "+e.classes,!0);l.cM.info("Classes = ",e.classes);let s=r.insert("rect",":first-child");return s.attr("rx",e.rx).attr("ry",e.ry).attr("x",-a.width/2-i).attr("y",-a.height/2-i).attr("width",a.width+e.padding).attr("height",a.height+e.padding),tz(e,s),e.intersect=function(t){return tI(e,t)},r},"note"),tP=(0,l.eW)(t=>t?" "+t:"","formatClass"),tY=(0,l.eW)((t,e)=>`${e||"node default"}${tP(t.classes)} ${tP(t.class)}`,"getClassesFromNode"),tZ=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await tB(t,e,tY(e,void 0),!0),i=a.width+e.padding,s=i+(a.height+e.padding),n=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];l.cM.info("Question main (Circle)");let o=tR(r,s,s,n);return o.attr("style",e.style),tz(e,o),e.intersect=function(t){return l.cM.warn("Intersect called"),tO(e,n,t)},r},"question"),tF=(0,l.eW)((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);return r.insert("polygon",":first-child").attr("points",[{x:0,y:14},{x:14,y:0},{x:0,y:-14},{x:-14,y:0}].map(function(t){return t.x+","+t.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(t){return tT(e,14,t)},r},"choice"),tj=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await tB(t,e,tY(e,void 0),!0),i=a.height+e.padding,s=i/4,n=a.width+2*s+e.padding,l=[{x:s,y:0},{x:n-s,y:0},{x:n,y:-i/2},{x:n-s,y:-i},{x:s,y:-i},{x:0,y:-i/2}],o=tR(r,n,i,l);return o.attr("style",e.style),tz(e,o),e.intersect=function(t){return tO(e,l,t)},r},"hexagon"),tX=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await tB(t,e,void 0,!0),i=a.height+2*e.padding,s=i/2,n=a.width+2*s+e.padding,l=tE(e.directions,a,e),o=tR(r,n,i,l);return o.attr("style",e.style),tz(e,o),e.intersect=function(t){return tO(e,l,t)},r},"block_arrow"),tH=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await tB(t,e,tY(e,void 0),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:-s/2,y:0},{x:i,y:0},{x:i,y:-s},{x:-s/2,y:-s},{x:0,y:-s/2}];return tR(r,i,s,n).attr("style",e.style),e.width=i+s,e.height=s,e.intersect=function(t){return tO(e,n,t)},r},"rect_left_inv_arrow"),tU=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await tB(t,e,tY(e),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:-2*s/6,y:0},{x:i-s/6,y:0},{x:i+2*s/6,y:-s},{x:s/6,y:-s}],l=tR(r,i,s,n);return l.attr("style",e.style),tz(e,l),e.intersect=function(t){return tO(e,n,t)},r},"lean_right"),tK=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await tB(t,e,tY(e,void 0),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:2*s/6,y:0},{x:i+s/6,y:0},{x:i-2*s/6,y:-s},{x:-s/6,y:-s}],l=tR(r,i,s,n);return l.attr("style",e.style),tz(e,l),e.intersect=function(t){return tO(e,n,t)},r},"lean_left"),tV=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await tB(t,e,tY(e,void 0),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:-2*s/6,y:0},{x:i+2*s/6,y:0},{x:i-s/6,y:-s},{x:s/6,y:-s}],l=tR(r,i,s,n);return l.attr("style",e.style),tz(e,l),e.intersect=function(t){return tO(e,n,t)},r},"trapezoid"),tq=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await tB(t,e,tY(e,void 0),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:s/6,y:0},{x:i-s/6,y:0},{x:i+2*s/6,y:-s},{x:-2*s/6,y:-s}],l=tR(r,i,s,n);return l.attr("style",e.style),tz(e,l),e.intersect=function(t){return tO(e,n,t)},r},"inv_trapezoid"),tG=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await tB(t,e,tY(e,void 0),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:0,y:0},{x:i+s/2,y:0},{x:i,y:-s/2},{x:i+s/2,y:-s},{x:0,y:-s}],l=tR(r,i,s,n);return l.attr("style",e.style),tz(e,l),e.intersect=function(t){return tO(e,n,t)},r},"rect_right_inv_arrow"),tJ=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await tB(t,e,tY(e,void 0),!0),i=a.width+e.padding,s=i/2,n=s/(2.5+i/50),l=a.height+n+e.padding,o=r.attr("label-offset-y",n).insert("path",":first-child").attr("style",e.style).attr("d","M 0,"+n+" a "+s+","+n+" 0,0,0 "+i+" 0 a "+s+","+n+" 0,0,0 "+-i+" 0 l 0,"+l+" a "+s+","+n+" 0,0,0 "+i+" 0 l 0,"+-l).attr("transform","translate("+-i/2+","+-(l/2+n)+")");return tz(e,o),e.intersect=function(t){let r=tI(e,t),a=r.x-e.x;if(0!=s&&(Math.abs(a)e.height/2-n)){let i=n*n*(1-a*a/(s*s));0!=i&&(i=Math.sqrt(i)),i=n-i,t.y-e.y>0&&(i=-i),r.y+=i}return r},r},"cylinder"),tQ=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a,halfPadding:i}=await tB(t,e,"node "+e.classes+" "+e.class,!0),s=r.insert("rect",":first-child"),n=e.positioned?e.width:a.width+e.padding,o=e.positioned?e.height:a.height+e.padding,d=e.positioned?-n/2:-a.width/2-i,c=e.positioned?-o/2:-a.height/2-i;if(s.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",d).attr("y",c).attr("width",n).attr("height",o),e.props){let t=new Set(Object.keys(e.props));e.props.borders&&(t2(s,e.props.borders,n,o),t.delete("borders")),t.forEach(t=>{l.cM.warn(`Unknown node property ${t}`)})}return tz(e,s),e.intersect=function(t){return tI(e,t)},r},"rect"),t0=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a,halfPadding:i}=await tB(t,e,"node "+e.classes,!0),s=r.insert("rect",":first-child"),n=e.positioned?e.width:a.width+e.padding,o=e.positioned?e.height:a.height+e.padding,d=e.positioned?-n/2:-a.width/2-i,c=e.positioned?-o/2:-a.height/2-i;if(s.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",d).attr("y",c).attr("width",n).attr("height",o),e.props){let t=new Set(Object.keys(e.props));e.props.borders&&(t2(s,e.props.borders,n,o),t.delete("borders")),t.forEach(t=>{l.cM.warn(`Unknown node property ${t}`)})}return tz(e,s),e.intersect=function(t){return tI(e,t)},r},"composite"),t1=(0,l.eW)(async(t,e)=>{let{shapeSvg:r}=await tB(t,e,"label",!0);l.cM.trace("Classes = ",e.class);let a=r.insert("rect",":first-child");if(a.attr("width",0).attr("height",0),r.attr("class","label edgeLabel"),e.props){let t=new Set(Object.keys(e.props));e.props.borders&&(t2(a,e.props.borders,0,0),t.delete("borders")),t.forEach(t=>{l.cM.warn(`Unknown node property ${t}`)})}return tz(e,a),e.intersect=function(t){return tI(e,t)},r},"labelRect");function t2(t,e,r,a){let i=[],s=(0,l.eW)(t=>{i.push(t,0)},"addBorder"),n=(0,l.eW)(t=>{i.push(0,t)},"skipBorder");e.includes("t")?(l.cM.debug("add top border"),s(r)):n(r),e.includes("r")?(l.cM.debug("add right border"),s(a)):n(a),e.includes("b")?(l.cM.debug("add bottom border"),s(r)):n(r),e.includes("l")?(l.cM.debug("add left border"),s(a)):n(a),t.attr("stroke-dasharray",i.join(" "))}(0,l.eW)(t2,"applyNodePropertyBorders");var t3=(0,l.eW)((t,e)=>{let r;r=e.classes?"node "+e.classes:"node default";let a=t.insert("g").attr("class",r).attr("id",e.domId||e.id),i=a.insert("rect",":first-child"),s=a.insert("line"),n=a.insert("g").attr("class","label"),o=e.labelText.flat?e.labelText.flat():e.labelText,d="";d="object"==typeof o?o[0]:o,l.cM.info("Label text abc79",d,o,"object"==typeof o);let c=n.node().appendChild(th(d,e.labelStyle,!0,!0)),g={width:0,height:0};if((0,l.ku)((0,l.nV)().flowchart.htmlLabels)){let t=c.children[0],e=(0,h.Ys)(c);g=t.getBoundingClientRect(),e.attr("width",g.width),e.attr("height",g.height)}l.cM.info("Text 2",o);let u=o.slice(1,o.length),p=c.getBBox(),y=n.node().appendChild(th(u.join?u.join("
    "):u,e.labelStyle,!0,!0));if((0,l.ku)((0,l.nV)().flowchart.htmlLabels)){let t=y.children[0],e=(0,h.Ys)(y);g=t.getBoundingClientRect(),e.attr("width",g.width),e.attr("height",g.height)}let b=e.padding/2;return(0,h.Ys)(y).attr("transform","translate( "+(g.width>p.width?0:(p.width-g.width)/2)+", "+(p.height+b+5)+")"),(0,h.Ys)(c).attr("transform","translate( "+(g.width{let{shapeSvg:r,bbox:a}=await tB(t,e,tY(e,void 0),!0),i=a.height+e.padding,s=a.width+i/4+e.padding,n=r.insert("rect",":first-child").attr("style",e.style).attr("rx",i/2).attr("ry",i/2).attr("x",-s/2).attr("y",-i/2).attr("width",s).attr("height",i);return tz(e,n),e.intersect=function(t){return tI(e,t)},r},"stadium"),t8=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a,halfPadding:i}=await tB(t,e,tY(e,void 0),!0),s=r.insert("circle",":first-child");return s.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+i).attr("width",a.width+e.padding).attr("height",a.height+e.padding),l.cM.info("Circle main"),tz(e,s),e.intersect=function(t){return l.cM.info("Circle intersect",e,a.width/2+i,t),tT(e,a.width/2+i,t)},r},"circle"),t5=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a,halfPadding:i}=await tB(t,e,tY(e,void 0),!0),s=r.insert("g",":first-child"),n=s.insert("circle"),o=s.insert("circle");return s.attr("class",e.class),n.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+i+5).attr("width",a.width+e.padding+10).attr("height",a.height+e.padding+10),o.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+i).attr("width",a.width+e.padding).attr("height",a.height+e.padding),l.cM.info("DoubleCircle main"),tz(e,n),e.intersect=function(t){return l.cM.info("DoubleCircle intersect",e,a.width/2+i+5,t),tT(e,a.width/2+i+5,t)},r},"doublecircle"),t9=(0,l.eW)(async(t,e)=>{let{shapeSvg:r,bbox:a}=await tB(t,e,tY(e,void 0),!0),i=a.width+e.padding,s=a.height+e.padding,n=[{x:0,y:0},{x:i,y:0},{x:i,y:-s},{x:0,y:-s},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-s},{x:-8,y:-s},{x:-8,y:0}],l=tR(r,i,s,n);return l.attr("style",e.style),tz(e,l),e.intersect=function(t){return tO(e,n,t)},r},"subroutine"),t6=(0,l.eW)((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child");return a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),tz(e,a),e.intersect=function(t){return tT(e,7,t)},r},"start"),t7=(0,l.eW)((t,e,r)=>{let a=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=70,s=10;return"LR"===r&&(i=10,s=70),tz(e,a.append("rect").attr("x",-1*i/2).attr("y",-1*s/2).attr("width",i).attr("height",s).attr("class","fork-join")),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return tI(e,t)},a},"forkJoin"),et=(0,l.eW)((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a=r.insert("circle",":first-child"),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),a.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),tz(e,i),e.intersect=function(t){return tT(e,7,t)},r},"end"),ee={rhombus:tZ,composite:t0,question:tZ,rect:tQ,labelRect:t1,rectWithTitle:t3,choice:tF,circle:t8,doublecircle:t5,stadium:t4,hexagon:tj,block_arrow:tX,rect_left_inv_arrow:tH,lean_right:tU,lean_left:tK,trapezoid:tV,inv_trapezoid:tq,rect_right_inv_arrow:tG,cylinder:tJ,start:t6,end:et,note:tA,subroutine:t9,fork:t7,join:t7,class_box:(0,l.eW)((t,e)=>{let r;let a=e.padding/2;r=e.classes?"node "+e.classes:"node default";let i=t.insert("g").attr("class",r).attr("id",e.domId||e.id),s=i.insert("rect",":first-child"),n=i.insert("line"),o=i.insert("line"),d=0,c=4,g=i.insert("g").attr("class","label"),u=0,p=e.classData.annotations?.[0],y=e.classData.annotations[0]?"\xab"+e.classData.annotations[0]+"\xbb":"",b=g.node().appendChild(th(y,e.labelStyle,!0,!0)),f=b.getBBox();if((0,l.ku)((0,l.nV)().flowchart.htmlLabels)){let t=b.children[0],e=(0,h.Ys)(b);f=t.getBoundingClientRect(),e.attr("width",f.width),e.attr("height",f.height)}e.classData.annotations[0]&&(c+=f.height+4,d+=f.width);let x=e.classData.label;void 0!==e.classData.type&&""!==e.classData.type&&((0,l.nV)().flowchart.htmlLabels?x+="<"+e.classData.type+">":x+="<"+e.classData.type+">");let m=g.node().appendChild(th(x,e.labelStyle,!0,!0));(0,h.Ys)(m).attr("class","classTitle");let w=m.getBBox();if((0,l.ku)((0,l.nV)().flowchart.htmlLabels)){let t=m.children[0],e=(0,h.Ys)(m);w=t.getBoundingClientRect(),e.attr("width",w.width),e.attr("height",w.height)}c+=w.height+4,w.width>d&&(d=w.width);let _=[];e.classData.members.forEach(t=>{let r=t.getDisplayDetails(),a=r.displayText;(0,l.nV)().flowchart.htmlLabels&&(a=a.replace(//g,">"));let i=g.node().appendChild(th(a,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0)),s=i.getBBox();if((0,l.ku)((0,l.nV)().flowchart.htmlLabels)){let t=i.children[0],e=(0,h.Ys)(i);s=t.getBoundingClientRect(),e.attr("width",s.width),e.attr("height",s.height)}s.width>d&&(d=s.width),c+=s.height+4,_.push(i)}),c+=8;let k=[];if(e.classData.methods.forEach(t=>{let r=t.getDisplayDetails(),a=r.displayText;(0,l.nV)().flowchart.htmlLabels&&(a=a.replace(//g,">"));let i=g.node().appendChild(th(a,r.cssStyle?r.cssStyle:e.labelStyle,!0,!0)),s=i.getBBox();if((0,l.ku)((0,l.nV)().flowchart.htmlLabels)){let t=i.children[0],e=(0,h.Ys)(i);s=t.getBoundingClientRect(),e.attr("width",s.width),e.attr("height",s.height)}s.width>d&&(d=s.width),c+=s.height+4,k.push(i)}),c+=8,p){let t=(d-f.width)/2;(0,h.Ys)(b).attr("transform","translate( "+(-1*d/2+t)+", "+-1*c/2+")"),u=f.height+4}let L=(d-w.width)/2;return(0,h.Ys)(m).attr("transform","translate( "+(-1*d/2+L)+", "+(-1*c/2+u)+")"),u+=w.height+4,n.attr("class","divider").attr("x1",-d/2-a).attr("x2",d/2+a).attr("y1",-c/2-a+8+u).attr("y2",-c/2-a+8+u),u+=8,_.forEach(t=>{(0,h.Ys)(t).attr("transform","translate( "+-d/2+", "+(-1*c/2+u+4)+")");let e=t?.getBBox();u+=(e?.height??0)+4}),u+=8,o.attr("class","divider").attr("x1",-d/2-a).attr("x2",d/2+a).attr("y1",-c/2-a+8+u).attr("y2",-c/2-a+8+u),u+=8,k.forEach(t=>{(0,h.Ys)(t).attr("transform","translate( "+-d/2+", "+(-1*c/2+u)+")");let e=t?.getBBox();u+=(e?.height??0)+4}),s.attr("style",e.style).attr("class","outer title-state").attr("x",-d/2-a).attr("y",-(c/2)-a).attr("width",d+e.padding).attr("height",c+e.padding),tz(e,s),e.intersect=function(t){return tI(e,t)},i},"class_box")},er={},ea=(0,l.eW)(async(t,e,r)=>{let a,i;if(e.link){let s;"sandbox"===(0,l.nV)().securityLevel?s="_top":e.linkTarget&&(s=e.linkTarget||"_blank"),a=t.insert("svg:a").attr("xlink:href",e.link).attr("target",s),i=await ee[e.shape](a,e,r)}else a=i=await ee[e.shape](t,e,r);return e.tooltip&&i.attr("title",e.tooltip),e.class&&i.attr("class","node default "+e.class),er[e.id]=a,e.haveCallback&&er[e.id].attr("class",er[e.id].attr("class")+" clickable"),a},"insertNode"),ei=(0,l.eW)(t=>{let e=er[t.id];l.cM.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r},"positionNode");function es(t,e,r=!1){let a;let i="default";(t?.classes?.length||0)>0&&(i=(t?.classes??[]).join(" ")),i+=" flowchart-label";let s=0,o="";switch(t.type){case"round":s=5,o="rect";break;case"composite":s=0,o="composite",a=0;break;case"square":case"group":default:o="rect";break;case"diamond":o="question";break;case"hexagon":o="hexagon";break;case"block_arrow":o="block_arrow";break;case"odd":case"rect_left_inv_arrow":o="rect_left_inv_arrow";break;case"lean_right":o="lean_right";break;case"lean_left":o="lean_left";break;case"trapezoid":o="trapezoid";break;case"inv_trapezoid":o="inv_trapezoid";break;case"circle":o="circle";break;case"ellipse":o="ellipse";break;case"stadium":o="stadium";break;case"subroutine":o="subroutine";break;case"cylinder":o="cylinder";break;case"doublecircle":o="doublecircle"}let d=(0,n.be)(t?.styles??[]),c=t.label,h=t.size??{width:0,height:0,x:0,y:0};return{labelStyle:d.labelStyle,shape:o,labelText:c,rx:s,ry:s,class:i,style:d.style,id:t.id,directions:t.directions,width:h.width,height:h.height,x:h.x,y:h.y,positioned:r,intersect:void 0,type:t.type,padding:a??l.iE()?.block?.padding??0}}async function en(t,e,r){let a=es(e,r,!1);if("group"===a.type)return;let i=(0,l.iE)(),s=await ea(t,a,{config:i}),n=s.node().getBBox(),o=r.getBlock(a.id);o.size={width:n.width,height:n.height,x:0,y:0,node:s},r.setBlock(o),s.remove()}async function el(t,e,r){let a=es(e,r,!0);if("space"!==r.getBlock(a.id).type){let r=(0,l.iE)();await ea(t,a,{config:r}),e.intersect=a?.intersect,ei(a)}}async function eo(t,e,r,a){for(let i of e)await a(t,i,r),i.children&&await eo(t,i.children,r,a)}async function ed(t,e,r){await eo(t,e,r,en)}async function ec(t,e,r){await eo(t,e,r,el)}async function eh(t,e,r,a,i){let s=new g.k({multigraph:!0,compound:!0});for(let t of(s.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8}),r))t.size&&s.setNode(t.id,{width:t.size.width,height:t.size.height,intersect:t.intersect});for(let r of e)if(r.start&&r.end){let e=a.getBlock(r.start),n=a.getBlock(r.end);if(e?.size&&n?.size){let a=e.size,l=n.size,o=[{x:a.x,y:a.y},{x:a.x+(l.x-a.x)/2,y:a.y+(l.y-a.y)/2},{x:l.x,y:l.y}];tL(t,{v:r.start,w:r.end,name:r.id},{...r,arrowTypeEnd:r.arrowTypeEnd,arrowTypeStart:r.arrowTypeStart,points:o,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",s,i),r.label&&(await tf(t,{...r,label:r.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:r.arrowTypeEnd,arrowTypeStart:r.arrowTypeStart,points:o,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),tm({...r,x:o[1].x,y:o[1].y},{originalPath:o}))}}}(0,l.eW)(es,"getNodeFromBlock"),(0,l.eW)(en,"calculateBlockSize"),(0,l.eW)(el,"insertBlockPositioned"),(0,l.eW)(eo,"performOperations"),(0,l.eW)(ed,"calculateBlockSizes"),(0,l.eW)(ec,"insertBlocks"),(0,l.eW)(eh,"insertEdges");var eg=(0,l.eW)(function(t,e){return e.db.getClasses()},"getClasses"),eu=(0,l.eW)(async function(t,e,r,a){let i;let{securityLevel:s,block:n}=(0,l.iE)(),o=a.db;"sandbox"===s&&(i=(0,h.Ys)("#i"+e));let d="sandbox"===s?(0,h.Ys)(i.nodes()[0].contentDocument.body):(0,h.Ys)("body"),c="sandbox"===s?d.select(`[id="${e}"]`):(0,h.Ys)(`[id="${e}"]`);H(c,["point","circle","cross"],a.type,e);let g=o.getBlocks(),u=o.getBlocksFlat(),p=o.getEdges(),y=c.insert("g").attr("class","block");await ed(y,g,o);let b=to(o);if(await ec(y,g,o),await eh(y,p,u,o,e),b){let t=Math.max(1,Math.round(.125*(b.width/b.height))),e=b.height+t+10,r=b.width+10,{useMaxWidth:a}=n;(0,l.v2)(c,e,r,!!a),l.cM.debug("Here Bounds",b,b),c.attr("viewBox",`${b.x-5} ${b.y-5} ${b.width+10} ${b.height+10}`)}},"draw"),ep={parser:u,db:F,renderer:{draw:eu,getClasses:eg},styles:X}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3389.6acde68a.js b/pr-preview/pr-238/assets/js/3389.6acde68a.js new file mode 100644 index 0000000000..e46cbfb61d --- /dev/null +++ b/pr-preview/pr-238/assets/js/3389.6acde68a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3389"],{49235:function(e,n,t){t.d(n,{bK:()=>nr});var r,o,i=t("82633"),u=t("22501"),a=0;let s=function(e){var n=++a;return(0,u.Z)(e)+n};var d=t("96498"),c=t("71134"),h=t("97345"),f=Math.ceil,l=Math.max;let v=function(e,n,t,r){for(var o=-1,i=l(f((n-e)/(t||1)),0),u=Array(i);i--;)u[r?i:++o]=e,e+=t;return u};var g=t("8417"),p=t("29116");let Z=function(e,n,t){return t&&"number"!=typeof t&&(0,g.Z)(e,n,t)&&(n=t=void 0),e=(0,p.Z)(e),void 0===n?(n=e,e=0):n=(0,p.Z)(n),t=void 0===t?en};var R=t("94675");let T=function(e){return e&&e.length?(0,L.Z)(e,R.Z,M):void 0};var F=t("59685"),D=t("49790"),S=t("50929"),G=t("69547");let V=function(e,n){var t={};return n=(0,G.Z)(n,3),(0,S.Z)(e,function(e,r,o){(0,D.Z)(t,r,n(e,r,o))}),t};var B=t("61925"),q=t("50540"),Y=t("29072"),z=t("52434");let A=function(){return z.Z.Date.now()};function $(e,n,t,r){var o;do o=s(r);while(e.hasNode(o));return t.dummy=n,e.setNode(o,t),o}function J(e){var n=new w.k({multigraph:e.isMultigraph()}).setGraph(e.graph());return i.Z(e.nodes(),function(t){!e.children(t).length&&n.setNode(t,e.node(t))}),i.Z(e.edges(),function(t){n.setEdge(t,e.edge(t))}),n}function K(e,n){var t,r,o=e.x,i=e.y,u=n.x-o,a=n.y-i,s=e.width/2,d=e.height/2;if(!u&&!a)throw Error("Not possible to find intersection inside of the rectangle");return Math.abs(a)*s>Math.abs(u)*d?(a<0&&(d=-d),t=d*u/a,r=d):(u<0&&(s=-s),t=s,r=s*a/u),{x:o+t,y:i+r}}function H(e){var n=h.Z(Z(U(e)+1),function(){return[]});return i.Z(e.nodes(),function(t){var r=e.node(t),o=r.rank;!B.Z(o)&&(n[o][r.order]=t)}),n}function Q(e,n,t,r){var o={width:0,height:0};return arguments.length>=4&&(o.rank=t,o.order=r),$(e,"border",o,n)}function U(e){return T(h.Z(e.nodes(),function(n){var t=e.node(n).rank;if(!B.Z(t))return t}))}function W(e,n){var t=A();try{return n()}finally{console.log(e+" time: "+(A()-t)+"ms")}}function X(e,n){return n()}function ee(e,n,t,r,o,i){var u=o[n][i-1],a=$(e,"border",{width:0,height:0,rank:i,borderType:n},t);o[n][i]=a,e.setParent(a,r),u&&e.setEdge(u,a,{weight:1})}function en(e){i.Z(e.nodes(),function(n){et(e.node(n))}),i.Z(e.edges(),function(n){et(e.edge(n))})}function et(e){var n=e.width;e.width=e.height,e.height=n}function er(e){e.y=-e.y}function eo(e){var n=e.x;e.x=e.y,e.y=n}var ei=t("23278");let eu=function(e,n){return e&&e.length?(0,L.Z)(e,(0,G.Z)(n,2),ei.Z):void 0};function ea(e){var n={};i.Z(e.sources(),function t(r){var o=e.node(r);if(Object.prototype.hasOwnProperty.call(n,r))return o.rank;n[r]=!0;var i=q.Z(h.Z(e.outEdges(r),function(n){return t(n.w)-e.edge(n).minlen}));return(i===Number.POSITIVE_INFINITY||null==i)&&(i=0),o.rank=i})}function es(e,n){return e.node(n.w).rank-e.node(n.v).rank-e.edge(n).minlen}function ed(e){var n,t,r=new w.k({directed:!1}),o=e.nodes()[0],u=e.nodeCount();for(r.setNode(o,{});function(e,n){return i.Z(e.nodes(),function t(r){i.Z(n.nodeEdges(r),function(o){var i=o.v,u=r===i?o.w:i;!e.hasNode(u)&&!es(n,o)&&(e.setNode(u,{}),e.setEdge(r,u,{}),t(u))})}),e.nodeCount()}(r,e)u.lim&&(a=u,s=!0),eu(eh.Z(n.edges(),function(n){return s===eB(e,e.node(n.v),a)&&s!==eB(e,e.node(n.w),a)}),function(e){return es(n,e)})}function eV(e,n,t,r){var o=t.v,u=t.w;e.removeEdge(o,u),e.setEdge(r.v,r.w,{}),eD(e),eT(e,n),function(e,n){var t=ec.Z(e.nodes(),function(e){return!n.node(e).parent}),r=eM(e,t,"pre");r=r.slice(1),i.Z(r,function(t){var r=e.node(t).parent,o=n.edge(t,r),i=!1;!o&&(o=n.edge(r,t),i=!0),n.node(t).rank=n.node(r).rank+(i?o.minlen:-o.minlen)})}(e,n)}function eB(e,n,t){return t.low<=n.lim&&n.lim<=t.lim}var eq=ea;function eY(e){eR(e)}var ez=t("96433"),eA=t("81748"),e$=t("16124"),eJ=t("89774");let eK=function(e,n,t){for(var r=-1,o=e.length,i=n.length,u={};++rn||i&&u&&s&&!a&&!d||r&&u&&s||!t&&s||!o)return 1;if(!r&&!i&&!d&&e=a)return s;return s*("desc"==t[r]?-1:1)}}return e.index-n.index},e7=function(e,n,t){n=n.length?(0,eQ.Z)(n,function(e){return(0,eL.Z)(e)?function(n){return(0,eU.Z)(n,1===e.length?e[0]:e)}:e}):[R.Z];var r=-1;return n=(0,eQ.Z)(n,(0,e0.Z)(G.Z)),eX((0,eW.Z)(e,function(e,t,o){return{criteria:(0,eQ.Z)(n,function(n){return n(e)}),index:++r,value:e}}),function(e,n){return e3(e,n,t)})};var e8=(0,t("53148").Z)(function(e,n){if(null==e)return[];var t=n.length;return t>1&&(0,g.Z)(e,n[0],n[1])?n=[]:t>2&&(0,g.Z)(n[0],n[1],n[2])&&(n=[n[0]]),e7(e,(0,eH.Z)(n,1),[])});function e4(e,n,t){for(var r;n.length&&(r=F.Z(n)).i<=t;)n.pop(),e.push(r.vs),t++;return t}function e9(e,n,t){return h.Z(n,function(n){var r,o,u,a,d;return r=e,o=n,u=t,a=function(e){for(var n;e.hasNode(n=s("_root")););return n}(r),d=new w.k({compound:!0}).setGraph({root:a}).setDefaultNodeLabel(function(e){return r.node(e)}),i.Z(r.nodes(),function(e){var n=r.node(e),t=r.parent(e);(n.rank===o||n.minRank<=o&&o<=n.maxRank)&&(d.setNode(e),d.setParent(e,t||a),i.Z(r[u](e),function(n){var t=n.v===e?n.w:n.v,o=d.edge(t,e),i=B.Z(o)?0:o.weight;d.setEdge(t,e,{weight:r.edge(n).weight+i})}),Object.prototype.hasOwnProperty.call(n,"minRank")&&d.setNode(e,{borderLeft:n.borderLeft[o],borderRight:n.borderRight[o]}))}),d})}function e5(e,n){i.Z(n,function(n){i.Z(n,function(n,t){e.node(n).order=t})})}var e6=t("93898"),ne=t("45467"),nn=t("40038");function nt(e,n,t){if(n>t){var r=n;n=t,t=r}var o=e[n];!o&&(e[n]=o={}),o[t]=!0}function nr(e,n){var t=n&&n.debugTiming?W:X;t("layout",()=>{var n=t(" buildLayoutGraph",()=>(function(e){var n=new w.k({multigraph:!0,compound:!0}),t=nl(e.graph());return n.setGraph(x.Z({},ni,nf(t,no),C(t,nu))),i.Z(e.nodes(),function(t){var r=nl(e.node(t));n.setNode(t,I.Z(nf(r,na),ns)),n.setParent(t,e.parent(t))}),i.Z(e.edges(),function(t){var r=nl(e.edge(t));n.setEdge(t,x.Z({},nc,nf(r,nd),C(r,nh)))}),n})(e));t(" runLayout",()=>(function(e,n){n(" makeSpaceForEdgeLabels",()=>(function(e){var n=e.graph();n.ranksep/=2,i.Z(e.edges(),function(t){var r=e.edge(t);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===n.rankdir||"BT"===n.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)})})(e)),n(" removeSelfEdges",()=>(function(e){i.Z(e.edges(),function(n){if(n.v===n.w){var t=e.node(n.v);!t.selfEdges&&(t.selfEdges=[]),t.selfEdges.push({e:n,label:e.edge(n)}),e.removeEdge(n)}})})(e)),n(" acyclic",()=>{var n,t;return t="greedy"===(n=e).graph().acyclicer?function(e,n){if(1>=e.nodeCount())return[];var t=function(e,n){var t=new w.k,r=0,o=0;i.Z(e.nodes(),function(e){t.setNode(e,{v:e,in:0,out:0})}),i.Z(e.edges(),function(e){var i=t.edge(e.v,e.w)||0,u=n(e);t.setEdge(e.v,e.w,i+u),o=Math.max(o,t.node(e.v).out+=u),r=Math.max(r,t.node(e.w).in+=u)});var u=Z(o+r+3).map(function(){return new b}),a=r+1;return i.Z(t.nodes(),function(e){E(u,a,t.node(e))}),{graph:t,buckets:u,zeroIdx:a}}(e,n||_),r=function(e,n,t){for(var r,o=[],i=n[n.length-1],u=n[0];e.nodeCount();){for(;r=u.dequeue();)k(e,n,t,r);for(;r=i.dequeue();)k(e,n,t,r);if(e.nodeCount()){for(var a=n.length-2;a>0;--a)if(r=n[a].dequeue()){o=o.concat(k(e,n,t,r,!0));break}}}return o}(t.graph,t.buckets,t.zeroIdx);return c.Z(h.Z(r,function(n){return e.outEdges(n.v,n.w)}))}(n,function(e){return function(n){return e.edge(n).weight}}(n)):function(e){var n=[],t={},r={};return i.Z(e.nodes(),function o(u){if(!Object.prototype.hasOwnProperty.call(r,u))r[u]=!0,t[u]=!0,i.Z(e.outEdges(u),function(e){Object.prototype.hasOwnProperty.call(t,e.w)?n.push(e):o(e.w)}),delete t[u]}),n}(n),void i.Z(t,function(e){var t=n.edge(e);n.removeEdge(e),t.forwardName=e.name,t.reversed=!0,n.setEdge(e.w,e.v,t,s("rev"))})}),n(" nestingGraph.run",()=>{var n,t,r,o,u,a;return t=$(n=e,"root",{},"_root"),r=function(e){var n={};return i.Z(e.children(),function(t){!function t(r,o){var u=e.children(r);u&&u.length&&i.Z(u,function(e){t(e,o+1)}),n[r]=o}(t,1)}),n}(n),u=2*(o=T(ez.Z(r))-1)+1,n.graph().nestingRoot=t,i.Z(n.edges(),function(e){n.edge(e).minlen*=u}),a=function(e){return eA.Z(e.edges(),function(n,t){return n+e.edge(t).weight},0)}(n)+1,void(i.Z(n.children(),function(e){(function e(n,t,r,o,u,a,s){var d=n.children(s);if(!d.length){s!==t&&n.setEdge(t,s,{weight:0,minlen:r});return}var c=Q(n,"_bt"),h=Q(n,"_bb"),f=n.node(s);n.setParent(c,s),f.borderTop=c,n.setParent(h,s),f.borderBottom=h,i.Z(d,function(i){e(n,t,r,o,u,a,i);var d=n.node(i),f=d.borderTop?d.borderTop:i,l=d.borderBottom?d.borderBottom:i,v=d.borderTop?o:2*o,g=f!==l?1:u-a[s]+1;n.setEdge(c,f,{weight:v,minlen:g,nestingEdge:!0}),n.setEdge(l,h,{weight:v,minlen:g,nestingEdge:!0})}),!n.parent(s)&&n.setEdge(t,c,{weight:0,minlen:u+a[s]})})(n,t,u,a,o,r,e)}),n.graph().nodeRankFactor=u)}),n(" rank",()=>(function(e){switch(e.graph().ranker){case"network-simplex":default:(function(e){eR(e)})(e);break;case"tight-tree":(function(e){ea(e),ed(e)})(e);break;case"longest-path":eq(e)}})(J(e))),n(" injectEdgeLabelProxies",()=>(function(e){i.Z(e.edges(),function(n){var t=e.edge(n);if(t.width&&t.height){var r=e.node(n.v),o={rank:(e.node(n.w).rank-r.rank)/2+r.rank,e:n};$(e,"edge-proxy",o,"_ep")}})})(e)),n(" removeEmptyRanks",()=>{var n,t,r,o,u;return n=e,t=q.Z(h.Z(n.nodes(),function(e){return n.node(e).rank})),r=[],i.Z(n.nodes(),function(e){var o=n.node(e).rank-t;!r[o]&&(r[o]=[]),r[o].push(e)}),o=0,u=n.graph().nodeRankFactor,void i.Z(r,function(e,t){B.Z(e)&&t%u!=0?--o:o&&i.Z(e,function(e){n.node(e).rank+=o})})}),n(" nestingGraph.cleanup",()=>{var n,t;return t=(n=e).graph(),void(n.removeNode(t.nestingRoot),delete t.nestingRoot,i.Z(n.edges(),function(e){n.edge(e).nestingEdge&&n.removeEdge(e)}))}),n(" normalizeRanks",()=>{var n,t;return n=e,t=q.Z(h.Z(n.nodes(),function(e){return n.node(e).rank})),void i.Z(n.nodes(),function(e){var r=n.node(e);Y.Z(r,"rank")&&(r.rank-=t)})}),n(" assignRankMinMax",()=>(function(e){var n=0;i.Z(e.nodes(),function(t){var r=e.node(t);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,n=T(n,r.maxRank))}),e.graph().maxRank=n})(e)),n(" removeEdgeLabelProxies",()=>(function(e){i.Z(e.nodes(),function(n){var t=e.node(n);"edge-proxy"===t.dummy&&(e.edge(t.e).labelRank=t.rank,e.removeNode(n))})})(e)),n(" normalize.run",()=>{var n;(n=e).graph().dummyChains=[],i.Z(n.edges(),function(e){(function(e,n){var t,r,o=n.v,i=e.node(o).rank,u=n.w,a=e.node(u).rank,s=n.name,d=e.edge(n),c=d.labelRank;if(a!==i+1){e.removeEdge(n);var h=void 0;for(r=0,++i;i{var n,t;return t=function(e){var n={},t=0;return i.Z(e.children(),function r(o){var u=t;i.Z(e.children(o),r),n[o]={low:u,lim:t++}}),n}(n=e),void i.Z(n.graph().dummyChains,function(e){for(var r=n.node(e),o=r.edgeObj,i=function(e,n,t,r){var o,i,u=[],a=[],s=Math.min(n[t].low,n[r].low),d=Math.max(n[t].lim,n[r].lim);o=t;do o=e.parent(o),u.push(o);while(o&&(n[o].low>s||d>n[o].lim));for(i=o,o=r;(o=e.parent(o))!==i;)a.push(o);return{path:u.concat(a.reverse()),lca:i}}(n,t,o.v,o.w),u=i.path,a=i.lca,s=0,d=u[0],c=!0;e!==o.w;){if(r=n.node(e),c){for(;(d=u[s])!==a&&n.node(d).maxRank{var n;return n=e,void i.Z(n.children(),function e(t){var r=n.children(t),o=n.node(t);if(r.length&&i.Z(r,e),Object.prototype.hasOwnProperty.call(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(var u=o.minRank,a=o.maxRank+1;u(function(e){var n=U(e),t=e9(e,Z(1,n+1),"inEdges"),r=e9(e,Z(n-1,-1,-1),"outEdges");var o=(u=e,a={},s=eh.Z(u.nodes(),function(e){return!u.children(e).length}),d=T(h.Z(s,function(e){return u.node(e).rank})),f=h.Z(Z(d+1),function(){return[]}),l=e8(s,function(e){return u.node(e).rank}),i.Z(l,function e(n){!Y.Z(a,n)&&(a[n]=!0,f[u.node(n).rank].push(n),i.Z(u.successors(n),e))}),f);e5(e,o);for(var u,a,s,d,f,l,v,g=Number.POSITIVE_INFINITY,p=0,b=0;b<4;++p,++b){(function(e,n){var t=new w.k;i.Z(e,function(e){var r,o,u,a,s,d=e.graph().root,f=function e(n,t,r,o){var u,a,s,d,f,l,v,g,p,Z,w,b,m,y,_,k,E,x,O=n.children(t),N=n.node(t),j=N?N.borderLeft:void 0,P=N?N.borderRight:void 0,I={};j&&(O=eh.Z(O,function(e){return e!==j&&e!==P}));var L=(u=n,a=O,h.Z(a,function(e){var n=u.inEdges(e);if(!n.length)return{v:e};var t=eA.Z(n,function(e,n){var t=u.edge(n),r=u.node(n.v);return{sum:e.sum+t.weight*r.order,weight:e.weight+t.weight}},{sum:0,weight:0});return{v:e,barycenter:t.sum/t.weight,weight:t.weight}}));i.Z(L,function(t){if(n.children(t.v).length){var i=e(n,t.v,r,o);I[t.v]=i,Object.prototype.hasOwnProperty.call(i,"barycenter")&&function(e,n){B.Z(e.barycenter)?(e.barycenter=n.barycenter,e.weight=n.weight):(e.barycenter=(e.barycenter*e.weight+n.barycenter*n.weight)/(e.weight+n.weight),e.weight+=n.weight)}(t,i)}});var M=(s=L,d=r,f={},i.Z(s,function(e,n){var t=f[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:n};!B.Z(e.barycenter)&&(t.barycenter=e.barycenter,t.weight=e.weight)}),i.Z(d.edges(),function(e){var n=f[e.v],t=f[e.w];!B.Z(n)&&!B.Z(t)&&(t.indegree++,n.out.push(f[e.w]))}),function(e){for(var n=[];e.length;){var t=e.pop();n.push(t),i.Z(t.in.reverse(),function(e){return function(n){if(!n.merged)(B.Z(n.barycenter)||B.Z(e.barycenter)||n.barycenter>=e.barycenter)&&function(e,n){var t=0,r=0;e.weight&&(t+=e.barycenter*e.weight,r+=e.weight),n.weight&&(t+=n.barycenter*n.weight,r+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=t/r,e.weight=r,e.i=Math.min(n.i,e.i),n.merged=!0}(e,n)}}(t)),i.Z(t.out,function(n){return function(t){t.in.push(n),0==--t.indegree&&e.push(t)}}(t))}return h.Z(eh.Z(n,function(e){return!e.merged}),function(e){return C(e,["vs","i","barycenter","weight"])})}(eh.Z(f,function(e){return!e.indegree})));(function(e,n){i.Z(e,function(e){e.vs=c.Z(e.vs.map(function(e){return n[e]?n[e].vs:e}))})})(M,I);var R=(l=M,v=o,b=(w=(g=l,p=function(e){return Object.prototype.hasOwnProperty.call(e,"barycenter")},Z={lhs:[],rhs:[]},i.Z(g,function(e){p(e)?Z.lhs.push(e):Z.rhs.push(e)}),Z)).lhs,m=e8(w.rhs,function(e){return-e.i}),y=[],_=0,k=0,E=0,b.sort(function(e){return function(n,t){return n.barycentert.barycenter?1:e?t.i-n.i:n.i-t.i}}(!!v)),E=e4(y,m,E),i.Z(b,function(e){E+=e.vs.length,y.push(e.vs),_+=e.barycenter*e.weight,k+=e.weight,E=e4(y,m,E)}),x={vs:c.Z(y)},k&&(x.barycenter=_/k,x.weight=k),x);if(j&&(R.vs=c.Z([j,R.vs,P]),n.predecessors(j).length)){var T=n.node(n.predecessors(j)[0]),F=n.node(n.predecessors(P)[0]);!Object.prototype.hasOwnProperty.call(R,"barycenter")&&(R.barycenter=0,R.weight=0),R.barycenter=(R.barycenter*R.weight+T.order+F.order)/(R.weight+2),R.weight+=2}return R}(e,d,t,n);i.Z(f.vs,function(n,t){e.node(n).order=t}),r=e,o=t,u=f.vs,s={},i.Z(u,function(e){for(var n,t,i=r.parent(e);i;){if((n=r.parent(i))?(t=s[n],s[n]=i):(t=a,a=i),t&&t!==i){o.setEdge(t,i);return}i=n}})})})(p%2?t:r,p%4>=2),o=H(e);var m,y=function(e,n){for(var t=0,r=1;r0;)n%2&&(t+=s[n+1]),n=n-1>>1,s[n]+=e.weight;d+=e.weight*t})),d}(e,n[r-1],n[r]);return t}(e,o);if(y(function(e){var n=H(e);i.Z(n,function(n){var t=0;i.Z(n,function(n,r){var o=e.node(n);o.order=r+t,i.Z(o.selfEdges,function(n){$(e,"selfedge",{width:n.label.width,height:n.label.height,rank:o.rank,order:r+ ++t,e:n.e,label:n.label},"_se")}),delete o.selfEdges})})})(e)),n(" adjustCoordinateSystem",()=>{var n,t;("lr"===(t=(n=e).graph().rankdir.toLowerCase())||"rl"===t)&&en(n)}),n(" position",()=>{var n,t,r,o,u,a,s,d,c,f,l,v,g,p,b,m,y,_,k,E,O;(function(e){var n=H(e),t=e.graph().ranksep,r=0;i.Z(n,function(n){var o=T(h.Z(n,function(n){return e.node(n).height}));i.Z(n,function(n){e.node(n).y=r+o/2}),r+=o+t})})(n=J(n=e)),E=(o=H(t=n),d=x.Z((u=t,a=o,s={},eA.Z(a,function(e,n){var t=0,r=0,o=e.length,a=F.Z(n);return i.Z(n,function(e,d){var c=function(e,n){if(e.node(n).dummy)return ec.Z(e.predecessors(n),function(n){return e.node(n).dummy})}(u,e),h=c?u.node(c).order:o;(c||e===a)&&(i.Z(n.slice(r,d+1),function(e){i.Z(u.predecessors(e),function(n){var r=u.node(n),o=r.order;(oa)&&nt(t,n,s)})})}return eA.Z(n,function(n,t){var o,u=-1,a=0;return i.Z(t,function(i,s){if("border"===e.node(i).dummy){var d=e.predecessors(i);d.length&&(o=e.node(d[0]).order,r(t,a,s,u,o),a=s,u=o)}r(t,a,t.length,o,n.length)}),t}),t}(t,o)),c={},i.Z(["u","d"],function(e){r="u"===e?o:ez.Z(o).reverse(),i.Z(["l","r"],function(n){"r"===n&&(r=h.Z(r,function(e){return ez.Z(e).reverse()}));var o,u,a,s,f,l,v,g=("u"===e?t.predecessors:t.successors).bind(t);var p=(o=0,u=r,a=d,s=g,f={},l={},v={},i.Z(u,function(e){i.Z(e,function(e,n){f[e]=e,l[e]=e,v[e]=n})}),i.Z(u,function(e){var n=-1;i.Z(e,function(e){var t=s(e);if(t.length){for(var r=((t=e8(t,function(e){return v[e]})).length-1)/2,o=Math.floor(r),i=Math.ceil(r);o<=i;++o){var u=t[o];l[e]===e&&nt){var r=n;n=t,t=r}return!!e[n]&&Object.prototype.hasOwnProperty.call(e[n],t)}(a,e,u)&&(l[u]=e,l[e]=f[e]=f[u],n=v[u])}}})}),{root:f,align:l}),Z=function(e,n,t,r,o){var u={},a=function(e,n,t,r){var o=new w.k,u=e.graph(),a=function(e,n,t){return function(r,o,i){var u,a,s=r.node(o),d=r.node(i);if(u=0+s.width/2,Object.prototype.hasOwnProperty.call(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":a=-s.width/2;break;case"r":a=s.width/2}if(a&&(u+=t?a:-a),a=0,u+=(s.dummy?n:e)/2,u+=(d.dummy?n:e)/2,u+=d.width/2,Object.prototype.hasOwnProperty.call(d,"labelpos"))switch(d.labelpos.toLowerCase()){case"l":a=d.width/2;break;case"r":a=-d.width/2}return a&&(u+=t?a:-a),a=0,u}}(u.nodesep,u.edgesep,r);return i.Z(n,function(n){var r;i.Z(n,function(n){var i=t[n];if(o.setNode(i),r){var u=t[r],s=o.edge(u,i);o.setEdge(u,i,Math.max(a(e,n,r),s||0))}r=n})}),o}(e,n,t,o),s=o?"borderLeft":"borderRight";function d(e,n){for(var t=a.nodes(),r=t.pop(),o={};r;)o[r]?e(r):(o[r]=!0,t.push(r),t=t.concat(n(r))),r=t.pop()}return d(function(e){u[e]=a.inEdges(e).reduce(function(e,n){return Math.max(e,u[n.v]+a.edge(n))},0)},a.predecessors.bind(a)),d(function(n){var t=a.outEdges(n).reduce(function(e,n){return Math.min(e,u[n.w]-a.edge(n))},Number.POSITIVE_INFINITY),r=e.node(n);t!==Number.POSITIVE_INFINITY&&r.borderType!==s&&(u[n]=Math.max(u[n],t))},a.successors.bind(a)),i.Z(r,function(e){u[e]=u[t[e]]}),u}(t,r,p.root,p.align,"r"===n);"r"===n&&(Z=V(Z,function(e){return-e})),c[e+n]=Z})}),v=(f=t,l=c,eu(ez.Z(l),function(e){var n,t,r=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY;return n=e,t=function(e,n){var t=function(e,n){return e.node(n).width}(f,n)/2;r=Math.max(e+t,r),o=Math.min(e-t,o)},null==n||(0,ne.Z)(n,(0,e6.Z)(t),nn.Z),r-o})),g=c,p=v,b=ez.Z(p),m=q.Z(b),y=T(b),i.Z(["u","d"],function(e){i.Z(["l","r"],function(n){var t,r=e+n,o=g[r];if(o!==p){var i=ez.Z(o);(t="l"===n?m-q.Z(i):y-T(i))&&(g[r]=V(o,function(e){return e+t}))}})}),_=c,k=t.graph().align,V(_.ul,function(e,n){if(k)return _[k.toLowerCase()][n];var t=e8(h.Z(_,n));return(t[1]+t[2])/2})),O=function(e,t){n.node(t).x=e},E&&(0,S.Z)(E,(0,e6.Z)(O))}),n(" positionSelfEdges",()=>(function(e){i.Z(e.nodes(),function(n){var t=e.node(n);if("selfedge"===t.dummy){var r=e.node(t.e.v),o=r.x+r.width/2,i=r.y,u=t.x-o,a=r.height/2;e.setEdge(t.e,t.label),e.removeNode(n),t.label.points=[{x:o+2*u/3,y:i-a},{x:o+5*u/6,y:i-a},{x:o+u,y:i},{x:o+5*u/6,y:i+a},{x:o+2*u/3,y:i+a}],t.label.x=t.x,t.label.y=t.y}})})(e)),n(" removeBorderNodes",()=>(function(e){i.Z(e.nodes(),function(n){if(e.children(n).length){var t=e.node(n),r=e.node(t.borderTop),o=e.node(t.borderBottom),i=e.node(F.Z(t.borderLeft)),u=e.node(F.Z(t.borderRight));t.width=Math.abs(u.x-i.x),t.height=Math.abs(o.y-r.y),t.x=i.x+t.width/2,t.y=r.y+t.height/2}}),i.Z(e.nodes(),function(n){"border"===e.node(n).dummy&&e.removeNode(n)})})(e)),n(" normalize.undo",()=>{var n;return n=e,void i.Z(n.graph().dummyChains,function(e){var t,r=n.node(e),o=r.edgeLabel;for(n.setEdge(r.edgeObj,o);r.dummy;)t=n.successors(e)[0],n.removeNode(e),o.points.push({x:r.x,y:r.y}),"edge-label"===r.dummy&&(o.x=r.x,o.y=r.y,o.width=r.width,o.height=r.height),e=t,r=n.node(e)})}),n(" fixupEdgeLabelCoords",()=>(function(e){i.Z(e.edges(),function(n){var t=e.edge(n);if(Object.prototype.hasOwnProperty.call(t,"x"))switch(("l"===t.labelpos||"r"===t.labelpos)&&(t.width-=t.labeloffset),t.labelpos){case"l":t.x-=t.width/2+t.labeloffset;break;case"r":t.x+=t.width/2+t.labeloffset}})})(e)),n(" undoCoordinateSystem",()=>{var n,t;("bt"===(t=(n=e).graph().rankdir.toLowerCase())||"rl"===t)&&function(e){i.Z(e.nodes(),function(n){er(e.node(n))}),i.Z(e.edges(),function(n){var t=e.edge(n);i.Z(t.points,er),Object.prototype.hasOwnProperty.call(t,"y")&&er(t)})}(n),("lr"===t||"rl"===t)&&(function(e){i.Z(e.nodes(),function(n){eo(e.node(n))}),i.Z(e.edges(),function(n){var t=e.edge(n);i.Z(t.points,eo),Object.prototype.hasOwnProperty.call(t,"x")&&eo(t)})}(n),en(n))}),n(" translateGraph",()=>(function(e){var n=Number.POSITIVE_INFINITY,t=0,r=Number.POSITIVE_INFINITY,o=0,u=e.graph(),a=u.marginx||0,s=u.marginy||0;function d(e){var i=e.x,u=e.y,a=e.width,s=e.height;n=Math.min(n,i-a/2),t=Math.max(t,i+a/2),r=Math.min(r,u-s/2),o=Math.max(o,u+s/2)}i.Z(e.nodes(),function(n){d(e.node(n))}),i.Z(e.edges(),function(n){var t=e.edge(n);Object.prototype.hasOwnProperty.call(t,"x")&&d(t)}),n-=a,r-=s,i.Z(e.nodes(),function(t){var o=e.node(t);o.x-=n,o.y-=r}),i.Z(e.edges(),function(t){var o=e.edge(t);i.Z(o.points,function(e){e.x-=n,e.y-=r}),Object.prototype.hasOwnProperty.call(o,"x")&&(o.x-=n),Object.prototype.hasOwnProperty.call(o,"y")&&(o.y-=r)}),u.width=t-n+a,u.height=o-r+s})(e)),n(" assignNodeIntersects",()=>(function(e){i.Z(e.edges(),function(n){var t,r,o=e.edge(n),i=e.node(n.v),u=e.node(n.w);o.points?(t=o.points[0],r=o.points[o.points.length-1]):(o.points=[],t=u,r=i),o.points.unshift(K(i,t)),o.points.push(K(u,r))})})(e)),n(" reversePoints",()=>(function(e){i.Z(e.edges(),function(n){var t=e.edge(n);t.reversed&&t.points.reverse()})})(e)),n(" acyclic.undo",()=>{var n;return n=e,void i.Z(n.edges(),function(e){var t=n.edge(e);if(t.reversed){n.removeEdge(e);var r=t.forwardName;delete t.reversed,delete t.forwardName,n.setEdge(e.w,e.v,t,r)}})})})(n,t)),t(" updateInputGraph",()=>(function(e,n){i.Z(e.nodes(),function(t){var r=e.node(t),o=n.node(t);r&&(r.x=o.x,r.y=o.y,n.children(t).length&&(r.width=o.width,r.height=o.height))}),i.Z(e.edges(),function(t){var r=e.edge(t),o=n.edge(t);r.points=o.points,Object.prototype.hasOwnProperty.call(o,"x")&&(r.x=o.x,r.y=o.y)}),e.graph().width=n.graph().width,e.graph().height=n.graph().height})(e,n))})}var no=["nodesep","edgesep","ranksep","marginx","marginy"],ni={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},nu=["acyclicer","ranker","rankdir","align"],na=["width","height"],ns={width:0,height:0},nd=["minlen","weight","width","height","labeloffset"],nc={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},nh=["labelpos"];function nf(e,n){return V(C(e,n),Number)}function nl(e){var n={};return i.Z(e,function(e,t){n[t.toLowerCase()]=e}),n}},61135:function(e,n,t){t.d(n,{k:()=>Z});var r=t("96498"),o=t("18782"),i=t("87074"),u=t("37627"),a=t("73217"),s=t("82633"),d=t("61925"),c=t("39446"),h=t("53148"),f=t("38610"),l=t("61322"),v=(0,h.Z)(function(e){return(0,f.Z)((0,c.Z)(e,1,l.Z,!0))}),g=t("96433"),p=t("81748");class Z{constructor(e={}){this._isDirected=!Object.prototype.hasOwnProperty.call(e,"directed")||e.directed,this._isMultigraph=!!Object.prototype.hasOwnProperty.call(e,"multigraph")&&e.multigraph,this._isCompound=!!Object.prototype.hasOwnProperty.call(e,"compound")&&e.compound,this._label=void 0,this._defaultNodeLabelFn=r.Z(void 0),this._defaultEdgeLabelFn=r.Z(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children["\0"]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return!o.Z(e)&&(e=r.Z(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return i.Z(this._nodes)}sources(){var e=this;return u.Z(this.nodes(),function(n){return a.Z(e._in[n])})}sinks(){var e=this;return u.Z(this.nodes(),function(n){return a.Z(e._out[n])})}setNodes(e,n){var t=arguments,r=this;return s.Z(e,function(e){t.length>1?r.setNode(e,n):r.setNode(e)}),this}setNode(e,n){return Object.prototype.hasOwnProperty.call(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=n),this):(this._nodes[e]=arguments.length>1?n:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]="\0",this._children[e]={},this._children["\0"][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Object.prototype.hasOwnProperty.call(this._nodes,e)}removeNode(e){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){var n=e=>this.removeEdge(this._edgeObjs[e]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],s.Z(this.children(e),e=>{this.setParent(e)}),delete this._children[e]),s.Z(i.Z(this._in[e]),n),delete this._in[e],delete this._preds[e],s.Z(i.Z(this._out[e]),n),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,n){if(!this._isCompound)throw Error("Cannot set parent in a non-compound graph");if(d.Z(n))n="\0";else{n+="";for(var t=n;!d.Z(t);t=this.parent(t))if(t===e)throw Error("Setting "+n+" as parent of "+e+" would create a cycle");this.setNode(n)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=n,this._children[n][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var n=this._parent[e];if("\0"!==n)return n}}children(e){if(d.Z(e)&&(e="\0"),this._isCompound){var n=this._children[e];if(n)return i.Z(n)}else if("\0"===e)return this.nodes();else if(this.hasNode(e))return[]}predecessors(e){var n=this._preds[e];if(n)return i.Z(n)}successors(e){var n=this._sucs[e];if(n)return i.Z(n)}neighbors(e){var n=this.predecessors(e);if(n)return v(n,this.successors(e))}isLeaf(e){var n;return 0===(n=this.isDirected()?this.successors(e):this.neighbors(e)).length}filterNodes(e){var n=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});n.setGraph(this.graph());var t=this;s.Z(this._nodes,function(t,r){e(r)&&n.setNode(r,t)}),s.Z(this._edgeObjs,function(e){n.hasNode(e.v)&&n.hasNode(e.w)&&n.setEdge(e,t.edge(e))});var r={};return this._isCompound&&s.Z(n.nodes(),function(e){n.setParent(e,function e(o){var i=t.parent(o);return void 0===i||n.hasNode(i)?(r[o]=i,i):i in r?r[i]:e(i)}(e))}),n}setDefaultEdgeLabel(e){return!o.Z(e)&&(e=r.Z(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return g.Z(this._edgeObjs)}setPath(e,n){var t=this,r=arguments;return p.Z(e,function(e,o){return r.length>1?t.setEdge(e,o,n):t.setEdge(e,o),o}),this}setEdge(){var e,n,t,r,o=!1,i=arguments[0];"object"==typeof i&&null!==i&&"v"in i?(e=i.v,n=i.w,t=i.name,2==arguments.length&&(r=arguments[1],o=!0)):(e=i,n=arguments[1],t=arguments[3],arguments.length>2&&(r=arguments[2],o=!0)),e=""+e,n=""+n,!d.Z(t)&&(t=""+t);var u=m(this._isDirected,e,n,t);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,u))return o&&(this._edgeLabels[u]=r),this;if(!d.Z(t)&&!this._isMultigraph)throw Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(n),this._edgeLabels[u]=o?r:this._defaultEdgeLabelFn(e,n,t);var a=function(e,n,t,r){var o=""+n,i=""+t;if(!e&&o>i){var u=o;o=i,i=u}var a={v:o,w:i};return r&&(a.name=r),a}(this._isDirected,e,n,t);return e=a.v,n=a.w,Object.freeze(a),this._edgeObjs[u]=a,w(this._preds[n],e),w(this._sucs[e],n),this._in[n][u]=a,this._out[e][u]=a,this._edgeCount++,this}edge(e,n,t){var r=1==arguments.length?y(this._isDirected,arguments[0]):m(this._isDirected,e,n,t);return this._edgeLabels[r]}hasEdge(e,n,t){var r=1==arguments.length?y(this._isDirected,arguments[0]):m(this._isDirected,e,n,t);return Object.prototype.hasOwnProperty.call(this._edgeLabels,r)}removeEdge(e,n,t){var r=1==arguments.length?y(this._isDirected,arguments[0]):m(this._isDirected,e,n,t),o=this._edgeObjs[r];return o&&(e=o.v,n=o.w,delete this._edgeLabels[r],delete this._edgeObjs[r],b(this._preds[n],e),b(this._sucs[e],n),delete this._in[n][r],delete this._out[e][r],this._edgeCount--),this}inEdges(e,n){var t=this._in[e];if(t){var r=g.Z(t);return n?u.Z(r,function(e){return e.v===n}):r}}outEdges(e,n){var t=this._out[e];if(t){var r=g.Z(t);return n?u.Z(r,function(e){return e.w===n}):r}}nodeEdges(e,n){var t=this.inEdges(e,n);if(t)return t.concat(this.outEdges(e,n))}}function w(e,n){e[n]?e[n]++:e[n]=1}function b(e,n){!--e[n]&&delete e[n]}function m(e,n,t,r){var o=""+n,i=""+t;if(!e&&o>i){var u=o;o=i,i=u}return o+"\x01"+i+"\x01"+(d.Z(r)?"\0":r)}Z.prototype._nodeCount=0,Z.prototype._edgeCount=0;function y(e,n){return m(e,n.v,n.w,n.name)}},50043:function(e,n,t){t.d(n,{k:function(){return r.k}});var r=t(61135)},91201:function(e,n,t){t.d(n,{Z:function(){return o}});var r=t(2147);let o=function(e,n,t){for(var o=-1,i=e.length;++oc});var r=t("73722"),o=t("89774"),i=t("50949"),u=t("92383"),a=t("58641"),s=t("37706");let d=function(e,n,t,r){if(!(0,a.Z)(e))return e;n=(0,i.Z)(n,e);for(var d=-1,c=n.length,h=c-1,f=e;null!=f&&++d2?n[2]:void 0;for(d&&(0,i.Z)(n[0],n[1],d)&&(r=1);++tc});var r,o=t("69547"),i=t("71581"),u=t("87074"),a=t("81208"),s=t("59578"),d=Math.max;let c=(r=function(e,n,t){var r=null==e?0:e.length;if(!r)return -1;var i=null==t?0:(0,s.Z)(t);return i<0&&(i=d(r+i,0)),(0,a.Z)(e,(0,o.Z)(n,3),i)},function(e,n,t){var a=Object(e);if(!(0,i.Z)(e)){var s=(0,o.Z)(n,3);e=(0,u.Z)(e),n=function(e){return s(a[e],e,a)}}var d=r(e,n,t);return d>-1?a[s?e[d]:d]:void 0})},71134:function(e,n,t){t.d(n,{Z:function(){return o}});var r=t(39446);let o=function(e){return(null==e?0:e.length)?(0,r.Z)(e,1):[]}},29072:function(e,n,t){t.d(n,{Z:()=>u});var r=Object.prototype.hasOwnProperty;let o=function(e,n){return null!=e&&r.call(e,n)};var i=t("87825");let u=function(e,n){return null!=e&&(0,i.Z)(e,n,o)}},27884:function(e,n,t){t.d(n,{Z:function(){return u}});var r=t(65182),o=t(31739),i=t(75887);let u=function(e){return"string"==typeof e||!(0,o.Z)(e)&&(0,i.Z)(e)&&"[object String]"==(0,r.Z)(e)}},59685:function(e,n,t){t.d(n,{Z:function(){return r}});let r=function(e){var n=null==e?0:e.length;return n?e[n-1]:void 0}},97345:function(e,n,t){t.d(n,{Z:function(){return a}});var r=t(96248),o=t(69547),i=t(10301),u=t(31739);let a=function(e,n){return((0,u.Z)(e)?r.Z:i.Z)(e,(0,o.Z)(n,3))}},50540:function(e,n,t){t.d(n,{Z:function(){return u}});var r=t(91201),o=t(23278),i=t(94675);let u=function(e){return e&&e.length?(0,r.Z)(e,i.Z,o.Z):void 0}},29116:function(e,n,t){t.d(n,{Z:()=>g});var r=/\s/;let o=function(e){for(var n=e.length;n--&&r.test(e.charAt(n)););return n};var i=/^\s+/,u=t("58641"),a=t("2147"),s=0/0,d=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,h=/^0o[0-7]+$/i,f=parseInt;let l=function(e){if("number"==typeof e)return e;if((0,a.Z)(e))return s;if((0,u.Z)(e)){var n,t="function"==typeof e.valueOf?e.valueOf():e;e=(0,u.Z)(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=(n=e)?n.slice(0,o(n)+1).replace(i,""):n;var r=c.test(e);return r||h.test(e)?f(e.slice(2),r?2:8):d.test(e)?s:+e};var v=1/0;let g=function(e){return e?(e=l(e))===v||e===-v?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0}},59578:function(e,n,t){t.d(n,{Z:function(){return o}});var r=t(29116);let o=function(e){var n=(0,r.Z)(e),t=n%1;return n==n?t?n-t:n:0}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/34dc406d.9a3877e5.js b/pr-preview/pr-238/assets/js/34dc406d.9a3877e5.js new file mode 100644 index 0000000000..816c2011a8 --- /dev/null +++ b/pr-preview/pr-238/assets/js/34dc406d.9a3877e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["5550"],{27104:function(e,t,r){r.r(t),r.d(t,{metadata:()=>n,contentTitle:()=>o,default:()=>p,assets:()=>u,toc:()=>c,frontMatter:()=>a});var n=JSON.parse('{"id":"exercises/loops/loops03","title":"Loops03","description":"","source":"@site/docs/exercises/loops/loops03.mdx","sourceDirName":"exercises/loops","slug":"/exercises/loops/loops03","permalink":"/java-docs/pr-preview/pr-238/exercises/loops/loops03","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/loops/loops03.mdx","tags":[],"version":"current","frontMatter":{"title":"Loops03","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Loops02","permalink":"/java-docs/pr-preview/pr-238/exercises/loops/loops02"},"next":{"title":"Loops04","permalink":"/java-docs/pr-preview/pr-238/exercises/loops/loops04"}}'),s=r("85893"),i=r("50065"),l=r("39661");let a={title:"Loops03",description:""},o=void 0,u={},c=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2},{value:"Hinweis",id:"hinweis",level:2}];function d(e){let t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"Erstelle eine ausf\xfchrbare Klasse, welche eine eingegebene Zeichenkette auf\nH\xe4ufigkeit eines bestimmten Zeichens analysiert. Das Programm soll die absolute\nund relative H\xe4ufigkeit in Bezug auf die Gesamtl\xe4nge der Zeichenkette ausgeben."}),"\n",(0,s.jsx)(t.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-console",children:"Gib bitte eine Zeichenkette ein: Hallo Welt\nGib bitte das zu analysierende Zeichen ein: l\nAbsoluter Anteil: 3\nProzentualer Anteil: 30,00%\n"})}),"\n",(0,s.jsx)(t.h2,{id:"hinweis",children:"Hinweis"}),"\n",(0,s.jsxs)(t.p,{children:["Die Methode ",(0,s.jsx)(t.code,{children:"char charAt(index: int)"})," der Klasse ",(0,s.jsx)(t.code,{children:"String"})," gibt das Zeichen mit\ndem Index der eingehenden Zahl zur\xfcck."]}),"\n",(0,s.jsx)(l.Z,{pullRequest:"16",branchSuffix:"loops/03"})]})}function p(e={}){let{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},5525:function(e,t,r){r.d(t,{Z:()=>l});var n=r("85893");r("67294");var s=r("67026");let i="tabItem_Ymn6";function l(e){let{children:t,hidden:r,className:l}=e;return(0,n.jsx)("div",{role:"tabpanel",className:(0,s.Z)(i,l),hidden:r,children:t})}},47902:function(e,t,r){r.d(t,{Z:()=>j});var n=r("85893"),s=r("67294"),i=r("67026"),l=r("69599"),a=r("16550"),o=r("32000"),u=r("4520"),c=r("38341"),d=r("76009");function p(e){return s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||s.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:t,tabValues:r}=e;return r.some(e=>e.value===t)}var f=r("7227");let b="tabList__CuJ",m="tabItem_LNqP";function v(e){let{className:t,block:r,selectedValue:s,selectValue:a,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),d=e=>{let t=e.currentTarget,r=o[u.indexOf(t)].value;r!==s&&(c(t),a(r))},p=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let r=u.indexOf(e.currentTarget)+1;t=u[r]??u[0];break}case"ArrowLeft":{let r=u.indexOf(e.currentTarget)-1;t=u[r]??u[u.length-1]}}t?.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":r},t),children:o.map(e=>{let{value:t,label:r,attributes:l}=e;return(0,n.jsx)("li",{role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,ref:e=>u.push(e),onKeyDown:p,onClick:d,...l,className:(0,i.Z)("tabs__item",m,l?.className,{"tabs__item--active":s===t}),children:r??t},t)})})}function x(e){let{lazy:t,children:r,selectedValue:l}=e,a=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){let e=a.find(e=>e.props.value===l);return e?(0,s.cloneElement)(e,{className:(0,i.Z)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:a.map((e,t)=>(0,s.cloneElement)(e,{key:t,hidden:e.props.value!==l}))})}function g(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,i=function(e){let{values:t,children:r}=e;return(0,s.useMemo)(()=>{let e=t??p(r).map(e=>{let{props:{value:t,label:r,attributes:n,default:s}}=e;return{value:t,label:r,attributes:n,default:s}});return!function(e){let t=(0,c.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[t,r])}(e),[l,f]=(0,s.useState)(()=>(function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let n=r.find(e=>e.default)??r[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:i})),[b,m]=function(e){let{queryString:t=!1,groupId:r}=e,n=(0,a.k6)(),i=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r}),l=(0,u._X)(i);return[l,(0,s.useCallback)(e=>{if(!i)return;let t=new URLSearchParams(n.location.search);t.set(i,e),n.replace({...n.location,search:t.toString()})},[i,n])]}({queryString:r,groupId:n}),[v,x]=function(e){var t;let{groupId:r}=e;let n=(t=r)?`docusaurus.tab.${t}`:null,[i,l]=(0,d.Nk)(n);return[i,(0,s.useCallback)(e=>{if(!!n)l.set(e)},[n,l])]}({groupId:n}),g=(()=>{let e=b??v;return h({value:e,tabValues:i})?e:null})();return(0,o.Z)(()=>{g&&f(g)},[g]),{selectedValue:l,selectValue:(0,s.useCallback)(e=>{if(!h({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);f(e),m(e),x(e)},[m,x,i]),tabValues:i}}(e);return(0,n.jsxs)("div",{className:(0,i.Z)("tabs-container",b),children:[(0,n.jsx)(v,{...t,...e}),(0,n.jsx)(x,{...t,...e})]})}function j(e){let t=(0,f.Z)();return(0,n.jsx)(g,{...e,children:p(e.children)},String(t))}},39661:function(e,t,r){r.d(t,{Z:function(){return o}});var n=r(85893);r(67294);var s=r(47902),i=r(5525),l=r(83012),a=r(45056);function o(e){let{pullRequest:t,branchSuffix:r}=e;return(0,n.jsxs)(s.Z,{children:[(0,n.jsxs)(i.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,n.jsx)(a.Z,{language:"console",children:`git switch exercises/${r}`}),(0,n.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${r}/Exercise.java`,children:(0,n.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,n.jsxs)(i.Z,{value:"solution",label:"Solution",children:[(0,n.jsx)(a.Z,{language:"console",children:`git switch solutions/${r}`}),(0,n.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${r}/Exercise.java`,children:(0,n.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,n.jsxs)(i.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,n.jsxs)(l.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${t}/files?diff=split`,children:["PR#",t]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3544.3d890958.js b/pr-preview/pr-238/assets/js/3544.3d890958.js new file mode 100644 index 0000000000..48664f6c88 --- /dev/null +++ b/pr-preview/pr-238/assets/js/3544.3d890958.js @@ -0,0 +1,78 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3544"],{57275:function(e,t,i){i.d(t,{diagram:function(){return I}});var n=i(80397),s=i(37971);i(9833),i(82612),i(41200),i(68394);var r=i(89356),o=i(74146),a=i(77845),l=i(86750),c=i(35035),h=function(){var e=(0,o.eW)(function(e,t,i,n){for(i=i||{},n=e.length;n--;i[e[n]]=t);return i},"o"),t=[1,4],i=[1,13],n=[1,12],s=[1,15],r=[1,16],a=[1,20],l=[1,19],c=[6,7,8],h=[1,26],u=[1,24],g=[1,25],d=[6,7,11],p=[1,31],y=[6,7,11,24],f=[1,6,13,16,17,20,23],m=[1,35],_=[1,36],b=[1,6,7,11,13,16,17,20,23],k=[1,38],E={trace:(0,o.eW)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:(0,o.eW)(function(e,t,i,n,s,r,o){var a=r.length-1;switch(s){case 6:case 7:return n;case 8:n.getLogger().trace("Stop NL ");break;case 9:n.getLogger().trace("Stop EOF ");break;case 11:n.getLogger().trace("Stop NL2 ");break;case 12:n.getLogger().trace("Stop EOF2 ");break;case 15:n.getLogger().info("Node: ",r[a-1].id),n.addNode(r[a-2].length,r[a-1].id,r[a-1].descr,r[a-1].type,r[a]);break;case 16:n.getLogger().info("Node: ",r[a].id),n.addNode(r[a-1].length,r[a].id,r[a].descr,r[a].type);break;case 17:n.getLogger().trace("Icon: ",r[a]),n.decorateNode({icon:r[a]});break;case 18:case 23:n.decorateNode({class:r[a]});break;case 19:n.getLogger().trace("SPACELIST");break;case 20:n.getLogger().trace("Node: ",r[a-1].id),n.addNode(0,r[a-1].id,r[a-1].descr,r[a-1].type,r[a]);break;case 21:n.getLogger().trace("Node: ",r[a].id),n.addNode(0,r[a].id,r[a].descr,r[a].type);break;case 22:n.decorateNode({icon:r[a]});break;case 27:n.getLogger().trace("node found ..",r[a-2]),this.$={id:r[a-1],descr:r[a-1],type:n.getType(r[a-2],r[a])};break;case 28:this.$={id:r[a],descr:r[a],type:0};break;case 29:n.getLogger().trace("node found ..",r[a-3]),this.$={id:r[a-3],descr:r[a-1],type:n.getType(r[a-2],r[a])};break;case 30:this.$=r[a-1]+r[a];break;case 31:this.$=r[a]}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:t},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:t},{6:i,7:[1,10],9:9,12:11,13:n,14:14,16:s,17:r,18:17,19:18,20:a,23:l},e(c,[2,3]),{1:[2,2]},e(c,[2,4]),e(c,[2,5]),{1:[2,6],6:i,12:21,13:n,14:14,16:s,17:r,18:17,19:18,20:a,23:l},{6:i,9:22,12:11,13:n,14:14,16:s,17:r,18:17,19:18,20:a,23:l},{6:h,7:u,10:23,11:g},e(d,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:a,23:l}),e(d,[2,19]),e(d,[2,21],{15:30,24:p}),e(d,[2,22]),e(d,[2,23]),e(y,[2,25]),e(y,[2,26]),e(y,[2,28],{20:[1,32]}),{21:[1,33]},{6:h,7:u,10:34,11:g},{1:[2,7],6:i,12:21,13:n,14:14,16:s,17:r,18:17,19:18,20:a,23:l},e(f,[2,14],{7:m,11:_}),e(b,[2,8]),e(b,[2,9]),e(b,[2,10]),e(d,[2,16],{15:37,24:p}),e(d,[2,17]),e(d,[2,18]),e(d,[2,20],{24:k}),e(y,[2,31]),{21:[1,39]},{22:[1,40]},e(f,[2,13],{7:m,11:_}),e(b,[2,11]),e(b,[2,12]),e(d,[2,15],{24:k}),e(y,[2,30]),{22:[1,41]},e(y,[2,27]),e(y,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:(0,o.eW)(function(e,t){if(t.recoverable)this.trace(e);else{var i=Error(e);throw i.hash=t,i}},"parseError"),parse:(0,o.eW)(function(e){var t=this,i=[0],n=[],s=[null],r=[],a=this.table,l="",c=0,h=0,u=0,g=r.slice.call(arguments,1),d=Object.create(this.lexer),p={yy:{}};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(p.yy[y]=this.yy[y]);d.setInput(e,p.yy),p.yy.lexer=d,p.yy.parser=this,void 0===d.yylloc&&(d.yylloc={});var f=d.yylloc;r.push(f);var m=d.options&&d.options.ranges;"function"==typeof p.yy.parseError?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _(){var e;return"number"!=typeof(e=n.pop()||d.lex()||1)&&(e instanceof Array&&(e=(n=e).pop()),e=t.symbols_[e]||e),e}(0,o.eW)(function(e){i.length=i.length-2*e,s.length=s.length-e,r.length=r.length-e},"popStack"),(0,o.eW)(_,"lex");for(var b,k,E,S,N,x,L,D,O,v={};;){if(E=i[i.length-1],this.defaultActions[E]?S=this.defaultActions[E]:(null==b&&(b=_()),S=a[E]&&a[E][b]),void 0===S||!S.length||!S[0]){var C="";for(x in O=[],a[E])this.terminals_[x]&&x>2&&O.push("'"+this.terminals_[x]+"'");C=d.showPosition?"Parse error on line "+(c+1)+":\n"+d.showPosition()+"\nExpecting "+O.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(C,{text:d.match,token:this.terminals_[b]||b,line:d.yylineno,loc:f,expected:O})}if(S[0]instanceof Array&&S.length>1)throw Error("Parse Error: multiple actions possible at state: "+E+", token: "+b);switch(S[0]){case 1:i.push(b),s.push(d.yytext),r.push(d.yylloc),i.push(S[1]),b=null,k?(b=k,k=null):(h=d.yyleng,l=d.yytext,c=d.yylineno,f=d.yylloc,u>0&&u--);break;case 2:if(L=this.productions_[S[1]][1],v.$=s[s.length-L],v._$={first_line:r[r.length-(L||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(L||1)].first_column,last_column:r[r.length-1].last_column},m&&(v._$.range=[r[r.length-(L||1)].range[0],r[r.length-1].range[1]]),void 0!==(N=this.performAction.apply(v,[l,h,c,p.yy,S[1],s,r].concat(g))))return N;L&&(i=i.slice(0,-1*L*2),s=s.slice(0,-1*L),r=r.slice(0,-1*L)),i.push(this.productions_[S[1]][0]),s.push(v.$),r.push(v._$),D=a[i[i.length-2]][i[i.length-1]],i.push(D);break;case 3:return!0}}return!0},"parse")},S={EOF:1,parseError:(0,o.eW)(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},"parseError"),setInput:(0,o.eW)(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,o.eW)(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},"input"),unput:(0,o.eW)(function(e){var t=e.length,i=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var s=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===n.length?this.yylloc.first_column:0)+n[n.length-i.length].length-i[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[s[0],s[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},"unput"),more:(0,o.eW)(function(){return this._more=!0,this},"more"),reject:(0,o.eW)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,o.eW)(function(e){this.unput(this.match.slice(e))},"less"),pastInput:(0,o.eW)(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,o.eW)(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,o.eW)(function(){var e=this.pastInput(),t=Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},"showPosition"),test_match:(0,o.eW)(function(e,t){var i,n,s;if(this.options.backtrack_lexer&&(s={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(s.yylloc.range=this.yylloc.range.slice(0))),(n=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],i=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var r in s)this[r]=s[r];return!1},"test_match"),next:(0,o.eW)(function(){if(this.done)return this.EOF;!this._input&&(this.done=!0),!this._more&&(this.yytext="",this.match="");for(var e,t,i,n,s=this._currentRules(),r=0;rt[0].length)){if(t=i,n=r,this.options.backtrack_lexer){if(!1!==(e=this.test_match(i,s[r])))return e;if(!this._backtrack)return!1;else{t=!1;continue}}if(!this.options.flex)break}if(t)return!1!==(e=this.test_match(t,s[n]))&&e;return""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,o.eW)(function(){var e=this.next();return e?e:this.lex()},"lex"),begin:(0,o.eW)(function(e){this.conditionStack.push(e)},"begin"),popState:(0,o.eW)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,o.eW)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,o.eW)(function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},"topState"),pushState:(0,o.eW)(function(e){this.begin(e)},"pushState"),stateStackSize:(0,o.eW)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,o.eW)(function(e,t,i,n){switch(i){case 0:return this.pushState("shapeData"),t.yytext="",24;case 1:return this.pushState("shapeDataStr"),24;case 2:return this.popState(),24;case 3:return t.yytext=t.yytext.replace(/\n\s*/g,"
    "),24;case 4:return 24;case 5:case 10:case 29:case 32:this.popState();break;case 6:return e.getLogger().trace("Found comment",t.yytext),6;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;case 11:e.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return e.getLogger().trace("SPACELINE"),6;case 13:return 7;case 14:return 16;case 15:e.getLogger().trace("end icon"),this.popState();break;case 16:return e.getLogger().trace("Exploding node"),this.begin("NODE"),20;case 17:return e.getLogger().trace("Cloud"),this.begin("NODE"),20;case 18:return e.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;case 19:return e.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;case 20:case 21:case 22:case 23:return this.begin("NODE"),20;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 30:e.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return e.getLogger().trace("description:",t.yytext),"NODE_DESCR";case 33:return this.popState(),e.getLogger().trace("node end ))"),"NODE_DEND";case 34:return this.popState(),e.getLogger().trace("node end )"),"NODE_DEND";case 35:return this.popState(),e.getLogger().trace("node end ...",t.yytext),"NODE_DEND";case 36:case 39:case 40:return this.popState(),e.getLogger().trace("node end (("),"NODE_DEND";case 37:case 38:return this.popState(),e.getLogger().trace("node end (-"),"NODE_DEND";case 41:case 42:return e.getLogger().trace("Long description:",t.yytext),21}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}};function N(){this.yy={}}return E.lexer=S,(0,o.eW)(N,"Parser"),N.prototype=E,E.Parser=N,new N}();h.parser=h;var u=[],g=[],d=0,p={},y=(0,o.eW)(()=>{u=[],g=[],d=0,p={}},"clear"),f=(0,o.eW)(e=>{if(0===u.length)return null;let t=u[0].level,i=null;for(let e=u.length-1;e>=0;e--)if(u[e].level===t&&!i&&(i=u[e]),u[e].levele.parentId===n.id))){let t={id:s.id,parentId:n.id,label:(0,o.oO)(s.label??"",i),isGroup:!1,ticket:s?.ticket,priority:s?.priority,assigned:s?.assigned,icon:s?.icon,shape:"kanbanItem",level:s.level,rx:5,ry:5,cssStyles:["text-align: left"]};e.push(t)}}return{nodes:e,edges:[],other:{},config:(0,o.nV)()}},"getData"),b=(0,o.eW)((e,t,i,s,r)=>{let a=(0,o.nV)(),l=a.mindmap?.padding??o.vZ.mindmap.padding;switch(s){case k.ROUNDED_RECT:case k.RECT:case k.HEXAGON:l*=2}let c={id:(0,o.oO)(t,a)||"kbn"+d++,level:e,label:(0,o.oO)(i,a),width:a.mindmap?.maxNodeWidth??o.vZ.mindmap.maxNodeWidth,padding:l,isGroup:!1};if(void 0!==r){let e;e=r.includes("\n")?r+"\n":"{\n"+r+"\n}";let t=(0,n.z)(e,{schema:n.A});if(t.shape&&(t.shape!==t.shape.toLowerCase()||t.shape.includes("_")))throw Error(`No such shape: ${t.shape}. Shape names should be lowercase.`);t?.shape&&"kanbanItem"===t.shape&&(c.shape=t?.shape),t?.label&&(c.label=t?.label),t?.icon&&(c.icon=t?.icon.toString()),t?.assigned&&(c.assigned=t?.assigned.toString()),t?.ticket&&(c.ticket=t?.ticket.toString()),t?.priority&&(c.priority=t?.priority)}let h=f(e);h?c.parentId=h.id||"kbn"+d++:g.push(c),u.push(c)},"addNode"),k={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},E=(0,o.eW)((e,t)=>{switch(o.cM.debug("In get type",e,t),e){case"[":return k.RECT;case"(":return")"===t?k.ROUNDED_RECT:k.CLOUD;case"((":return k.CIRCLE;case")":return k.CLOUD;case"))":return k.BANG;case"{{":return k.HEXAGON;default:return k.DEFAULT}},"getType"),S=(0,o.eW)((e,t)=>{p[e]=t},"setElementForId"),N=(0,o.eW)(e=>{if(!e)return;let t=(0,o.nV)(),i=u[u.length-1];e.icon&&(i.icon=(0,o.oO)(e.icon,t)),e.class&&(i.cssClasses=(0,o.oO)(e.class,t))},"decorateNode"),x=(0,o.eW)(e=>{switch(e){case k.DEFAULT:return"no-border";case k.RECT:return"rect";case k.ROUNDED_RECT:return"rounded-rect";case k.CIRCLE:return"circle";case k.CLOUD:return"cloud";case k.BANG:return"bang";case k.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),L=(0,o.eW)(()=>o.cM,"getLogger"),D=(0,o.eW)(e=>p[e],"getElementById"),O=(0,o.eW)(async(e,t,i,n)=>{o.cM.debug("Rendering kanban diagram\n"+e);let a=n.db.getData(),l=(0,o.nV)();l.htmlLabels=!1;let c=(0,r.P)(t),h=c.append("g");h.attr("class","sections");let u=c.append("g");u.attr("class","items");let g=a.nodes.filter(e=>e.isGroup),d=0,p=[],y=25;for(let e of g){let t=l?.kanban?.sectionWidth||200;d+=1,e.x=t*d+(d-1)*10/2,e.width=t,e.y=0,e.height=3*t,e.rx=5,e.ry=5,e.cssClasses=e.cssClasses+" section-"+d;let i=await (0,s.us)(h,e);y=Math.max(y,i?.labelBBox?.height),p.push(i)}let f=0;for(let e of g){let t=p[f];f+=1;let i=l?.kanban?.sectionWidth||200,n=-(3*i)/2+y,r=n;for(let t of a.nodes.filter(t=>t.parentId===e.id)){if(t.isGroup)throw Error("Groups within groups are not allowed in Kanban diagrams");t.x=e.x,t.width=i-15;let n=(await (0,s.Lf)(u,t,{config:l})).node().getBBox();t.y=r+n.height/2,await (0,s.aH)(t),r=t.y+n.height/2+5}let o=t.cluster.select("rect"),c=Math.max(r-n+30,50)+(y-25);o.attr("height",c)}(0,o.j7)(void 0,c,l.mindmap?.padding??o.vZ.kanban.padding,l.mindmap?.useMaxWidth??o.vZ.kanban.useMaxWidth)},"draw"),v=(0,o.eW)(e=>{let t="";for(let t=0;te.darkMode?(0,c.Z)(t,i):(0,l.Z)(t,i),"adjuster");for(let n=0;n` + .edge { + stroke-width: 3; + } + ${v(e)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${e.git0}; + } + .section-root text { + fill: ${e.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .cluster-label, .label { + color: ${e.textColor}; + fill: ${e.textColor}; + } + .kanban-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,"getStyles"),I={db:{clear:y,addNode:b,getSections:m,getData:_,nodeType:k,getType:E,setElementForId:S,decorateNode:N,type2Str:x,getLogger:L,getElementById:D},renderer:{draw:O},parser:h,styles:C}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/356d631d.c6a69a63.js b/pr-preview/pr-238/assets/js/356d631d.c6a69a63.js new file mode 100644 index 0000000000..9f5e87b274 --- /dev/null +++ b/pr-preview/pr-238/assets/js/356d631d.c6a69a63.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8286"],{114:function(e,r,s){s.r(r),s.d(r,{metadata:()=>t,contentTitle:()=>o,default:()=>p,assets:()=>u,toc:()=>c,frontMatter:()=>l});var t=JSON.parse('{"id":"exercises/inner-classes/inner-classes03","title":"InnerClasses03","description":"","source":"@site/docs/exercises/inner-classes/inner-classes03.mdx","sourceDirName":"exercises/inner-classes","slug":"/exercises/inner-classes/inner-classes03","permalink":"/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes03","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/inner-classes/inner-classes03.mdx","tags":[],"version":"current","frontMatter":{"title":"InnerClasses03","description":""},"sidebar":"exercisesSidebar","previous":{"title":"InnerClasses02","permalink":"/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes02"},"next":{"title":"InnerClasses04","permalink":"/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes04"}}'),n=s("85893"),a=s("50065"),i=s("39661");let l={title:"InnerClasses03",description:""},o=void 0,u={},c=[];function d(e){let r={a:"a",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(r.p,{children:["Passe die ausf\xfchrbare Klasse aus \xdcbungsaufgabe\n",(0,n.jsx)(r.a,{href:"../comparators/comparators02",children:"Comparators02"})," so an, dass die Koordinatenliste\nmit Hilfe einer lokalen Klasse aufsteigend nach den X-Werten sortiert wird."]}),"\n",(0,n.jsx)(i.Z,{pullRequest:"56",branchSuffix:"inner-classes/03"})]})}function p(e={}){let{wrapper:r}={...(0,a.a)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},5525:function(e,r,s){s.d(r,{Z:()=>i});var t=s("85893");s("67294");var n=s("67026");let a="tabItem_Ymn6";function i(e){let{children:r,hidden:s,className:i}=e;return(0,t.jsx)("div",{role:"tabpanel",className:(0,n.Z)(a,i),hidden:s,children:r})}},47902:function(e,r,s){s.d(r,{Z:()=>j});var t=s("85893"),n=s("67294"),a=s("67026"),i=s("69599"),l=s("16550"),o=s("32000"),u=s("4520"),c=s("38341"),d=s("76009");function p(e){return n.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||n.isValidElement(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function f(e){let{value:r,tabValues:s}=e;return s.some(e=>e.value===r)}var h=s("7227");let m="tabList__CuJ",v="tabItem_LNqP";function b(e){let{className:r,block:s,selectedValue:n,selectValue:l,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.o5)(),d=e=>{let r=e.currentTarget,s=o[u.indexOf(r)].value;s!==n&&(c(r),l(s))},p=e=>{let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let s=u.indexOf(e.currentTarget)+1;r=u[s]??u[0];break}case"ArrowLeft":{let s=u.indexOf(e.currentTarget)-1;r=u[s]??u[u.length-1]}}r?.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":s},r),children:o.map(e=>{let{value:r,label:s,attributes:i}=e;return(0,t.jsx)("li",{role:"tab",tabIndex:n===r?0:-1,"aria-selected":n===r,ref:e=>u.push(e),onKeyDown:p,onClick:d,...i,className:(0,a.Z)("tabs__item",v,i?.className,{"tabs__item--active":n===r}),children:s??r},r)})})}function x(e){let{lazy:r,children:s,selectedValue:i}=e,l=(Array.isArray(s)?s:[s]).filter(Boolean);if(r){let e=l.find(e=>e.props.value===i);return e?(0,n.cloneElement)(e,{className:(0,a.Z)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:l.map((e,r)=>(0,n.cloneElement)(e,{key:r,hidden:e.props.value!==i}))})}function g(e){let r=function(e){let{defaultValue:r,queryString:s=!1,groupId:t}=e,a=function(e){let{values:r,children:s}=e;return(0,n.useMemo)(()=>{let e=r??p(s).map(e=>{let{props:{value:r,label:s,attributes:t,default:n}}=e;return{value:r,label:s,attributes:t,default:n}});return!function(e){let r=(0,c.lx)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[r,s])}(e),[i,h]=(0,n.useState)(()=>(function(e){let{defaultValue:r,tabValues:s}=e;if(0===s.length)throw Error("Docusaurus error: the component requires at least one children component");if(r){if(!f({value:r,tabValues:s}))throw Error(`Docusaurus error: The has a defaultValue "${r}" but none of its children has the corresponding value. Available values are: ${s.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return r}let t=s.find(e=>e.default)??s[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:r,tabValues:a})),[m,v]=function(e){let{queryString:r=!1,groupId:s}=e,t=(0,l.k6)(),a=function(e){let{queryString:r=!1,groupId:s}=e;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!s)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return s??null}({queryString:r,groupId:s}),i=(0,u._X)(a);return[i,(0,n.useCallback)(e=>{if(!a)return;let r=new URLSearchParams(t.location.search);r.set(a,e),t.replace({...t.location,search:r.toString()})},[a,t])]}({queryString:s,groupId:t}),[b,x]=function(e){var r;let{groupId:s}=e;let t=(r=s)?`docusaurus.tab.${r}`:null,[a,i]=(0,d.Nk)(t);return[a,(0,n.useCallback)(e=>{if(!!t)i.set(e)},[t,i])]}({groupId:t}),g=(()=>{let e=m??b;return f({value:e,tabValues:a})?e:null})();return(0,o.Z)(()=>{g&&h(g)},[g]),{selectedValue:i,selectValue:(0,n.useCallback)(e=>{if(!f({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);h(e),v(e),x(e)},[v,x,a]),tabValues:a}}(e);return(0,t.jsxs)("div",{className:(0,a.Z)("tabs-container",m),children:[(0,t.jsx)(b,{...r,...e}),(0,t.jsx)(x,{...r,...e})]})}function j(e){let r=(0,h.Z)();return(0,t.jsx)(g,{...e,children:p(e.children)},String(r))}},39661:function(e,r,s){s.d(r,{Z:function(){return o}});var t=s(85893);s(67294);var n=s(47902),a=s(5525),i=s(83012),l=s(45056);function o(e){let{pullRequest:r,branchSuffix:s}=e;return(0,t.jsxs)(n.Z,{children:[(0,t.jsxs)(a.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,t.jsx)(l.Z,{language:"console",children:`git switch exercises/${s}`}),(0,t.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${s}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(a.Z,{value:"solution",label:"Solution",children:[(0,t.jsx)(l.Z,{language:"console",children:`git switch solutions/${s}`}),(0,t.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${s}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(a.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,t.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${r}/files?diff=split`,children:["PR#",r]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/362.c589a6f0.js b/pr-preview/pr-238/assets/js/362.c589a6f0.js new file mode 100644 index 0000000000..08e5c65547 --- /dev/null +++ b/pr-preview/pr-238/assets/js/362.c589a6f0.js @@ -0,0 +1,36 @@ +(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["362"],{44867:function(t,e,i){var r,n;r=0,n=function(t){var e,i;return e={658:t=>{t.exports=null!=Object.assign?Object.assign.bind(Object):function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),r=1;r{var r=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var i=[],r=!0,n=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done)&&(i.push(a.value),!e||i.length!==e);r=!0);}catch(t){n=!0,o=t}finally{try{!r&&s.return&&s.return()}finally{if(n)throw o}}return i}(t,e);throw TypeError("Invalid attempt to destructure non-iterable instance")},n=i(140).layoutBase.LinkedList,o={};o.getTopMostNodes=function(t){for(var e={},i=0;i0&&l.merge(t)});for(var d=0;d1){d=(l=s[0]).connectedEdges().length,s.forEach(function(t){t.connectedEdges().length0&&r.set("dummy"+(r.size+1),u),f},o.relocateComponent=function(t,e,i){if(!i.fixedNodeConstraint){var n=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY;if("draft"==i.quality){var h=!0,l=!1,d=void 0;try{for(var c,g=e.nodeIndexes[Symbol.iterator]();!(h=(c=g.next()).done);h=!0){var u=c.value,f=r(u,2),p=f[0],v=f[1],y=i.cy.getElementById(p);if(y){var m=y.boundingBox(),E=e.xCoords[v]-m.w/2,N=e.xCoords[v]+m.w/2,T=e.yCoords[v]-m.h/2,A=e.yCoords[v]+m.h/2;Eo&&(o=N),Ts&&(s=A)}}}catch(t){l=!0,d=t}finally{try{!h&&g.return&&g.return()}finally{if(l)throw d}}var L=t.x-(o+n)/2,w=t.y-(s+a)/2;e.xCoords=e.xCoords.map(function(t){return t+L}),e.yCoords=e.yCoords.map(function(t){return t+w})}else{Object.keys(e).forEach(function(t){var i=e[t],r=i.getRect().x,h=i.getRect().x+i.getRect().width,l=i.getRect().y,d=i.getRect().y+i.getRect().height;ro&&(o=h),ls&&(s=d)});var _=t.x-(o+n)/2,I=t.y-(s+a)/2;Object.keys(e).forEach(function(t){var i=e[t];i.setCenter(i.getCenterX()+_,i.getCenterY()+I)})}}},o.calcBoundingBox=function(t,e,i,r){for(var n=Number.MAX_SAFE_INTEGER,o=Number.MIN_SAFE_INTEGER,a=Number.MAX_SAFE_INTEGER,s=Number.MIN_SAFE_INTEGER,h=void 0,l=void 0,d=void 0,c=void 0,g=t.descendants().not(":parent"),u=g.length,f=0;fh&&(n=h),od&&(a=d),s{var r=i(548),n=i(140).CoSELayout,o=i(140).CoSENode,a=i(140).layoutBase.PointD,s=i(140).layoutBase.DimensionD,h=i(140).layoutBase.LayoutConstants,l=i(140).layoutBase.FDLayoutConstants,d=i(140).CoSEConstants;t.exports={coseLayout:function(t,e){var i,c,g=t.cy,u=t.eles,f=u.nodes(),p=u.edges(),v=void 0,y=void 0,m=void 0,E={};t.randomize&&(v=e.nodeIndexes,y=e.xCoords,m=e.yCoords);var N=function(t){return"function"==typeof t},T=function(t,e){return N(t)?t(e):t},A=r.calcParentsWithoutChildren(g,u);null!=t.nestingFactor&&(d.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=t.nestingFactor),null!=t.gravity&&(d.DEFAULT_GRAVITY_STRENGTH=l.DEFAULT_GRAVITY_STRENGTH=t.gravity),null!=t.numIter&&(d.MAX_ITERATIONS=l.MAX_ITERATIONS=t.numIter),null!=t.gravityRange&&(d.DEFAULT_GRAVITY_RANGE_FACTOR=l.DEFAULT_GRAVITY_RANGE_FACTOR=t.gravityRange),null!=t.gravityCompound&&(d.DEFAULT_COMPOUND_GRAVITY_STRENGTH=l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=t.gravityCompound),null!=t.gravityRangeCompound&&(d.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=t.gravityRangeCompound),null!=t.initialEnergyOnIncremental&&(d.DEFAULT_COOLING_FACTOR_INCREMENTAL=l.DEFAULT_COOLING_FACTOR_INCREMENTAL=t.initialEnergyOnIncremental),null!=t.tilingCompareBy&&(d.TILING_COMPARE_BY=t.tilingCompareBy),"proof"==t.quality?h.QUALITY=2:h.QUALITY=0,d.NODE_DIMENSIONS_INCLUDE_LABELS=l.NODE_DIMENSIONS_INCLUDE_LABELS=h.NODE_DIMENSIONS_INCLUDE_LABELS=t.nodeDimensionsIncludeLabels,d.DEFAULT_INCREMENTAL=l.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=!t.randomize,d.ANIMATE=l.ANIMATE=h.ANIMATE=t.animate,d.TILE=t.tile,d.TILING_PADDING_VERTICAL="function"==typeof t.tilingPaddingVertical?t.tilingPaddingVertical.call():t.tilingPaddingVertical,d.TILING_PADDING_HORIZONTAL="function"==typeof t.tilingPaddingHorizontal?t.tilingPaddingHorizontal.call():t.tilingPaddingHorizontal,d.DEFAULT_INCREMENTAL=l.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=!0,d.PURE_INCREMENTAL=!t.randomize,h.DEFAULT_UNIFORM_LEAF_NODE_SIZES=t.uniformNodeDimensions,"transformed"==t.step&&(d.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,d.ENFORCE_CONSTRAINTS=!1,d.APPLY_LAYOUT=!1),"enforced"==t.step&&(d.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,d.ENFORCE_CONSTRAINTS=!0,d.APPLY_LAYOUT=!1),"cose"==t.step&&(d.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,d.ENFORCE_CONSTRAINTS=!1,d.APPLY_LAYOUT=!0),"all"==t.step&&(t.randomize?d.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:d.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,d.ENFORCE_CONSTRAINTS=!0,d.APPLY_LAYOUT=!0),t.fixedNodeConstraint||t.alignmentConstraint||t.relativePlacementConstraint?d.TREE_REDUCTION_ON_INCREMENTAL=!1:d.TREE_REDUCTION_ON_INCREMENTAL=!0;var L=new n,w=L.newGraphManager();return!function t(e,i,n,h){for(var l=i.length,d=0;d0){var N=void 0;t(N=n.getGraphManager().add(n.newGraph(),u),g,n,h)}}}(w.addRoot(),r.getTopMostNodes(f),L,t),!function(e,i,r){for(var n=0,o=0,a=0;a0?d.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=n/o:N(t.idealEdgeLength)?d.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=50:d.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=t.idealEdgeLength,d.MIN_REPULSION_DIST=l.MIN_REPULSION_DIST=l.DEFAULT_EDGE_LENGTH/10,d.DEFAULT_RADIAL_SEPARATION=l.DEFAULT_EDGE_LENGTH)}(L,w,p),i=L,(c=t).fixedNodeConstraint&&(i.constraints.fixedNodeConstraint=c.fixedNodeConstraint),c.alignmentConstraint&&(i.constraints.alignmentConstraint=c.alignmentConstraint),c.relativePlacementConstraint&&(i.constraints.relativePlacementConstraint=c.relativePlacementConstraint),L.runLayout(),E}}},212:(t,e,i)=>{var r=function(){function t(t,e){for(var i=0;i0){if(c){var g=o.getTopMostNodes(t.eles.nodes());if((h=o.connectComponents(e,t.eles,g)).forEach(function(t){var e=t.boundingBox();l.push({x:e.x1+e.w/2,y:e.y1+e.h/2})}),t.randomize&&h.forEach(function(e){t.eles=e,r.push(a(t))}),"default"==t.quality||"proof"==t.quality){var u=e.collection();if(t.tile){var f=new Map,p=0,v={nodeIndexes:f,xCoords:[],yCoords:[]},y=[];if(h.forEach(function(t,e){0==t.edges().length&&(t.nodes().forEach(function(e,i){u.merge(t.nodes()[i]),!e.isParent()&&(v.nodeIndexes.set(t.nodes()[i].id(),p++),v.xCoords.push(t.nodes()[0].position().x),v.yCoords.push(t.nodes()[0].position().y))}),y.push(e))}),u.length>1){var m=u.boundingBox();l.push({x:m.x1+m.w/2,y:m.y1+m.h/2}),h.push(u),r.push(v);for(var E=y.length-1;E>=0;E--)h.splice(y[E],1),r.splice(y[E],1),l.splice(y[E],1)}}h.forEach(function(e,i){t.eles=e,n.push(s(t,r[i])),o.relocateComponent(l[i],n[i],t)})}else h.forEach(function(e,i){o.relocateComponent(l[i],r[i],t)});var N=new Set;if(h.length>1){var T=[],A=i.filter(function(t){return"none"==t.css("display")});h.forEach(function(e,i){var a=void 0;if("draft"==t.quality&&(a=r[i].nodeIndexes),e.nodes().not(A).length>0){var s={};s.edges=[],s.nodes=[];var h=void 0;e.nodes().not(A).forEach(function(e){if("draft"==t.quality){if(e.isParent()){var l=o.calcBoundingBox(e,r[i].xCoords,r[i].yCoords,a);s.nodes.push({x:l.topLeftX,y:l.topLeftY,width:l.width,height:l.height})}else h=a.get(e.id()),s.nodes.push({x:r[i].xCoords[h]-e.boundingbox().w/2,y:r[i].yCoords[h]-e.boundingbox().h/2,width:e.boundingbox().w,height:e.boundingbox().h})}else n[i][e.id()]&&s.nodes.push({x:n[i][e.id()].getLeft(),y:n[i][e.id()].getTop(),width:n[i][e.id()].getWidth(),height:n[i][e.id()].getHeight()})}),e.edges().forEach(function(e){var h=e.source(),l=e.target();if("none"!=h.css("display")&&"none"!=l.css("display")){if("draft"==t.quality){var d=a.get(h.id()),c=a.get(l.id()),g=[],u=[];if(h.isParent()){var f=o.calcBoundingBox(h,r[i].xCoords,r[i].yCoords,a);g.push(f.topLeftX+f.width/2),g.push(f.topLeftY+f.height/2)}else g.push(r[i].xCoords[d]),g.push(r[i].yCoords[d]);if(l.isParent()){var p=o.calcBoundingBox(l,r[i].xCoords,r[i].yCoords,a);u.push(p.topLeftX+p.width/2),u.push(p.topLeftY+p.height/2)}else u.push(r[i].xCoords[c]),u.push(r[i].yCoords[c]);s.edges.push({startX:g[0],startY:g[1],endX:u[0],endY:u[1]})}else n[i][h.id()]&&n[i][l.id()]&&s.edges.push({startX:n[i][h.id()].getCenterX(),startY:n[i][h.id()].getCenterY(),endX:n[i][l.id()].getCenterX(),endY:n[i][l.id()].getCenterY()})}}),s.nodes.length>0&&(T.push(s),N.add(i))}});var L=d.packComponents(T,t.randomize).shifts;if("draft"==t.quality)r.forEach(function(t,e){var i=t.xCoords.map(function(t){return t+L[e].dx}),r=t.yCoords.map(function(t){return t+L[e].dy});t.xCoords=i,t.yCoords=r});else{var w=0;N.forEach(function(t){Object.keys(n[t]).forEach(function(e){var i=n[t][e];i.setCenter(i.getCenterX()+L[w].dx,i.getCenterY()+L[w].dy)}),w++})}}}else{var _=t.eles.boundingBox();if(l.push({x:_.x1+_.w/2,y:_.y1+_.h/2}),t.randomize){var I=a(t);r.push(I)}"default"==t.quality||"proof"==t.quality?(n.push(s(t,r[0])),o.relocateComponent(l[0],n[0],t)):o.relocateComponent(l[0],r[0],t)}}var C=function(e,i){if("default"==t.quality||"proof"==t.quality){"number"==typeof e&&(e=i);var o=void 0,a=void 0,s=e.data("id");return n.forEach(function(t){s in t&&(o={x:t[s].getRect().getCenterX(),y:t[s].getRect().getCenterY()},a=t[s])}),t.nodeDimensionsIncludeLabels&&(a.labelWidth&&("left"==a.labelPosHorizontal?o.x+=a.labelWidth/2:"right"==a.labelPosHorizontal&&(o.x-=a.labelWidth/2)),a.labelHeight&&("top"==a.labelPosVertical?o.y+=a.labelHeight/2:"bottom"==a.labelPosVertical&&(o.y-=a.labelHeight/2))),void 0==o&&(o={x:e.position("x"),y:e.position("y")}),{x:o.x,y:o.y}}var h=void 0;return r.forEach(function(t){var i=t.nodeIndexes.get(e.id());void 0!=i&&(h={x:t.xCoords[i],y:t.yCoords[i]})}),void 0==h&&(h={x:e.position("x"),y:e.position("y")}),{x:h.x,y:h.y}};if("default"==t.quality||"proof"==t.quality||t.randomize){var M=o.calcParentsWithoutChildren(e,i),x=i.filter(function(t){return"none"==t.css("display")});t.eles=i.not(x),i.nodes().not(":parent").not(x).layoutPositions(this,t,C),M.length>0&&M.forEach(function(t){t.position(C(t))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}]),t}();t.exports=l},657:(t,e,i)=>{var r=i(548),n=i(140).layoutBase.Matrix,o=i(140).layoutBase.SVD;t.exports={spectralLayout:function(t){var e=t.cy,i=t.eles,a=i.nodes(),s=i.nodes(":parent"),h=new Map,l=new Map,d=new Map,c=[],g=[],u=[],f=[],p=[],v=[],y=[],m=[],E=void 0,N=t.piTol,T=t.samplingType,A=t.nodeSeparation,L=void 0,w=function(){for(var t=0,e=0,i=!1;e=n;){for(var f=c[a=r[n++]],y=0;yd&&(d=p[N],g=N)}return g};r.connectComponents(e,i,r.getTopMostNodes(a),h),s.forEach(function(t){r.connectComponents(e,i,r.getTopMostNodes(t.descendants().intersection(i)),h)});for(var I=0,C=0;C0&&(r.isParent()?c[e].push(d.get(r.id())):c[e].push(r.id()))})});var F=function(t){var i=l.get(t),r=void 0;h.get(t).forEach(function(n){r=e.getElementById(n).isParent()?d.get(n):n,c[i].push(r),c[l.get(r)].push(t)})},S=!0,P=!1,U=void 0;try{for(var Y,k=h.keys()[Symbol.iterator]();!(S=(Y=k.next()).done);S=!0){var H=Y.value;F(H)}}catch(t){P=!0,U=t}finally{try{!S&&k.return&&k.return()}finally{if(P)throw U}}E=l.size;var X=void 0;if(E>2){L=E=1)break;d=l}for(var p=0;p=1)break;d=l}for(var T=0;T{var r=i(212),n=function(t){if(!!t)t("layout","fcose",r)};"undefined"!=typeof cytoscape&&n(cytoscape),t.exports=n},140:e=>{e.exports=t}},i={},function t(r){var n=i[r];if(void 0!==n)return n.exports;var o=i[r]={exports:{}};return e[r](o,o.exports,t),o.exports}(579)},t.exports=n(i(26914))},26914:function(t,e,i){var r,n;r=0,n=function(t){var e,i;return e={45:(t,e,i)=>{var r={};r.layoutBase=i(551),r.CoSEConstants=i(806),r.CoSEEdge=i(767),r.CoSEGraph=i(880),r.CoSEGraphManager=i(578),r.CoSELayout=i(765),r.CoSENode=i(991),r.ConstraintHandler=i(902),t.exports=r},806:(t,e,i)=>{var r=i(551).FDLayoutConstants;function n(){}for(var o in r)n[o]=r[o];n.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,n.DEFAULT_RADIAL_SEPARATION=r.DEFAULT_EDGE_LENGTH,n.DEFAULT_COMPONENT_SEPERATION=60,n.TILE=!0,n.TILING_PADDING_VERTICAL=10,n.TILING_PADDING_HORIZONTAL=10,n.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,n.ENFORCE_CONSTRAINTS=!0,n.APPLY_LAYOUT=!0,n.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,n.TREE_REDUCTION_ON_INCREMENTAL=!0,n.PURE_INCREMENTAL=n.DEFAULT_INCREMENTAL,t.exports=n},767:(t,e,i)=>{var r=i(551).FDLayoutEdge;function n(t,e,i){r.call(this,t,e,i)}for(var o in n.prototype=Object.create(r.prototype),r)n[o]=r[o];t.exports=n},880:(t,e,i)=>{var r=i(551).LGraph;function n(t,e,i){r.call(this,t,e,i)}for(var o in n.prototype=Object.create(r.prototype),r)n[o]=r[o];t.exports=n},578:(t,e,i)=>{var r=i(551).LGraphManager;function n(t){r.call(this,t)}for(var o in n.prototype=Object.create(r.prototype),r)n[o]=r[o];t.exports=n},765:(t,e,i)=>{var r=i(551).FDLayout,n=i(578),o=i(880),a=i(991),s=i(767),h=i(806),l=i(902),d=i(551).FDLayoutConstants,c=i(551).LayoutConstants,g=i(551).Point,u=i(551).PointD,f=i(551).DimensionD,p=i(551).Layout,v=i(551).Integer,y=i(551).IGeometry,m=i(551).LGraph,E=i(551).Transform,N=i(551).LinkedList;function T(){r.call(this),this.toBeTiled={},this.constraints={}}for(var A in T.prototype=Object.create(r.prototype),r)T[A]=r[A];T.prototype.newGraphManager=function(){var t=new n(this);return this.graphManager=t,t},T.prototype.newGraph=function(t){return new o(null,this.graphManager,t)},T.prototype.newNode=function(t){return new a(this.graphManager,t)},T.prototype.newEdge=function(t){return new s(null,null,t)},T.prototype.initParameters=function(){r.prototype.initParameters.call(this,arguments),!this.isSubLayout&&(h.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=h.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=h.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=d.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=d.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=d.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=d.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},T.prototype.initSpringEmbedder=function(){r.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/d.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},T.prototype.layout=function(){return c.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},T.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(h.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter(function(e){return t.has(e)});this.graphManager.setAllNodesToApplyGravitation(e)}}else{var i=this.getFlatForest();if(i.length>0)this.positionNodesRadially(i);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter(function(e){return t.has(e)});this.graphManager.setAllNodesToApplyGravitation(e),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(l.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),h.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},T.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%d.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0){if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter(function(e){return t.has(e)});this.graphManager.setAllNodesToApplyGravitation(e),this.graphManager.updateBounds(),this.updateGrid(),h.PURE_INCREMENTAL?this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0}this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),h.PURE_INCREMENTAL?this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=d.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var i=!this.isTreeGrowing&&!this.isGrowthFinished,r=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(i,r),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},T.prototype.getPositionsData=function(){for(var t=this.graphManager.getAllNodes(),e={},i=0;i0&&this.updateDisplacements();for(var i=0;i0&&(r.fixedNodeWeight=n)}}if(this.constraints.relativePlacementConstraint){var o=new Map,a=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(e){t.fixedNodesOnHorizontal.add(e),t.fixedNodesOnVertical.add(e)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical){for(var s=this.constraints.alignmentConstraint.vertical,i=0;i=2*t.length/3;r--)e=Math.floor(Math.random()*(r+1)),i=t[r],t[r]=t[e],t[e]=i;return t},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(e){if(e.left){var i=o.has(e.left)?o.get(e.left):e.left,r=o.has(e.right)?o.get(e.right):e.right;!t.nodesInRelativeHorizontal.includes(i)&&(t.nodesInRelativeHorizontal.push(i),t.nodeToRelativeConstraintMapHorizontal.set(i,[]),t.dummyToNodeForVerticalAlignment.has(i)?t.nodeToTempPositionMapHorizontal.set(i,t.idToNodeMap.get(t.dummyToNodeForVerticalAlignment.get(i)[0]).getCenterX()):t.nodeToTempPositionMapHorizontal.set(i,t.idToNodeMap.get(i).getCenterX())),!t.nodesInRelativeHorizontal.includes(r)&&(t.nodesInRelativeHorizontal.push(r),t.nodeToRelativeConstraintMapHorizontal.set(r,[]),t.dummyToNodeForVerticalAlignment.has(r)?t.nodeToTempPositionMapHorizontal.set(r,t.idToNodeMap.get(t.dummyToNodeForVerticalAlignment.get(r)[0]).getCenterX()):t.nodeToTempPositionMapHorizontal.set(r,t.idToNodeMap.get(r).getCenterX())),t.nodeToRelativeConstraintMapHorizontal.get(i).push({right:r,gap:e.gap}),t.nodeToRelativeConstraintMapHorizontal.get(r).push({left:i,gap:e.gap})}else{var n=a.has(e.top)?a.get(e.top):e.top,s=a.has(e.bottom)?a.get(e.bottom):e.bottom;!t.nodesInRelativeVertical.includes(n)&&(t.nodesInRelativeVertical.push(n),t.nodeToRelativeConstraintMapVertical.set(n,[]),t.dummyToNodeForHorizontalAlignment.has(n)?t.nodeToTempPositionMapVertical.set(n,t.idToNodeMap.get(t.dummyToNodeForHorizontalAlignment.get(n)[0]).getCenterY()):t.nodeToTempPositionMapVertical.set(n,t.idToNodeMap.get(n).getCenterY())),!t.nodesInRelativeVertical.includes(s)&&(t.nodesInRelativeVertical.push(s),t.nodeToRelativeConstraintMapVertical.set(s,[]),t.dummyToNodeForHorizontalAlignment.has(s)?t.nodeToTempPositionMapVertical.set(s,t.idToNodeMap.get(t.dummyToNodeForHorizontalAlignment.get(s)[0]).getCenterY()):t.nodeToTempPositionMapVertical.set(s,t.idToNodeMap.get(s).getCenterY())),t.nodeToRelativeConstraintMapVertical.get(n).push({bottom:s,gap:e.gap}),t.nodeToRelativeConstraintMapVertical.get(s).push({top:n,gap:e.gap})}});else{var d=new Map,c=new Map;this.constraints.relativePlacementConstraint.forEach(function(t){if(t.left){var e=o.has(t.left)?o.get(t.left):t.left,i=o.has(t.right)?o.get(t.right):t.right;d.has(e)?d.get(e).push(i):d.set(e,[i]),d.has(i)?d.get(i).push(e):d.set(i,[e])}else{var r=a.has(t.top)?a.get(t.top):t.top,n=a.has(t.bottom)?a.get(t.bottom):t.bottom;c.has(r)?c.get(r).push(n):c.set(r,[n]),c.has(n)?c.get(n).push(r):c.set(n,[r])}});var g=function(t,e){var i=[],r=[],n=new N,o=new Set,a=0;return t.forEach(function(s,h){if(!o.has(h)){i[a]=[],r[a]=!1;var l=h;for(n.push(l),o.add(l),i[a].push(l);0!=n.length;)l=n.shift(),e.has(l)&&(r[a]=!0),t.get(l).forEach(function(t){!o.has(t)&&(n.push(t),o.add(t),i[a].push(t))});a++}}),{components:i,isFixed:r}},u=g(d,t.fixedNodesOnHorizontal);this.componentsOnHorizontal=u.components,this.fixedComponentsOnHorizontal=u.isFixed;var f=g(c,t.fixedNodesOnVertical);this.componentsOnVertical=f.components,this.fixedComponentsOnVertical=f.isFixed}}},T.prototype.updateDisplacements=function(){var t=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(e){var i=t.idToNodeMap.get(e.nodeId);i.displacementX=0,i.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical){for(var e=this.constraints.alignmentConstraint.vertical,i=0;i1)for(a=0;ar&&(r=Math.floor(a.y)),o=Math.floor(a.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new u(c.WORLD_CENTER_X-a.x/2,c.WORLD_CENTER_Y-a.y/2))},T.radialLayout=function(t,e,i){var r=Math.max(this.maxDiagonalInTree(t),h.DEFAULT_RADIAL_SEPARATION);T.branchRadialLayout(e,null,0,359,0,r);var n=m.calculateBounds(t),o=new E;o.setDeviceOrgX(n.getMinX()),o.setDeviceOrgY(n.getMinY()),o.setWorldOrgX(i.x),o.setWorldOrgY(i.y);for(var a=0;a1;){var v=p[0];p.splice(0,1);var m=c.indexOf(v);m>=0&&c.splice(m,1),f--,g--}a=null!=e?(c.indexOf(p[0])+1)%f:0;for(var E=Math.abs(r-i)/g,N=a;u!=g;N=++N%f){var A=c[N].getOtherEnd(t);if(A!=e){var L=(i+u*E)%360,w=(L+E)%360;T.branchRadialLayout(A,t,L,w,n+o,o),u++}}},T.maxDiagonalInTree=function(t){for(var e=v.MIN_VALUE,i=0;ie&&(e=r)}return e},T.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},T.prototype.groupZeroDegreeMembers=function(){var t=this,e={};this.memberGroups={},this.idToDummyNode={};for(var i=[],r=this.graphManager.getAllNodes(),n=0;n1){var r="DummyCompound_"+i;t.memberGroups[r]=e[i];var n=e[i][0].getParent(),o=new a(t.graphManager);o.id=r,o.paddingLeft=n.paddingLeft||0,o.paddingRight=n.paddingRight||0,o.paddingBottom=n.paddingBottom||0,o.paddingTop=n.paddingTop||0,t.idToDummyNode[r]=o;var s=t.getGraphManager().add(t.newGraph(),o),h=n.getChild();h.add(o);for(var l=0;ln?(r.rect.x-=(r.labelWidth-n)/2,r.setWidth(r.labelWidth),r.labelMarginLeft=(r.labelWidth-n)/2):"right"==r.labelPosHorizontal&&r.setWidth(n+r.labelWidth)),r.labelHeight&&("top"==r.labelPosVertical?(r.rect.y-=r.labelHeight,r.setHeight(o+r.labelHeight),r.labelMarginTop=r.labelHeight):"center"==r.labelPosVertical&&r.labelHeight>o?(r.rect.y-=(r.labelHeight-o)/2,r.setHeight(r.labelHeight),r.labelMarginTop=(r.labelHeight-o)/2):"bottom"==r.labelPosVertical&&r.setHeight(o+r.labelHeight))}})},T.prototype.repopulateCompounds=function(){for(var t=this.compoundOrder.length-1;t>=0;t--){var e=this.compoundOrder[t],i=e.id,r=e.paddingLeft,n=e.paddingTop,o=e.labelMarginLeft,a=e.labelMarginTop;this.adjustLocations(this.tiledMemberPack[i],e.rect.x,e.rect.y,r,n,o,a)}},T.prototype.repopulateZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack;Object.keys(e).forEach(function(i){var r=t.idToDummyNode[i],n=r.paddingLeft,o=r.paddingTop,a=r.labelMarginLeft,s=r.labelMarginTop;t.adjustLocations(e[i],r.rect.x,r.rect.y,n,o,a,s)})},T.prototype.getToBeTiled=function(t){var e=t.id;if(null!=this.toBeTiled[e])return this.toBeTiled[e];var i=t.getChild();if(null==i)return this.toBeTiled[e]=!1,!1;for(var r=i.getNodes(),n=0;n0)return this.toBeTiled[e]=!1,!1;if(null==o.getChild()){this.toBeTiled[o.id]=!1;continue}if(!this.getToBeTiled(o))return this.toBeTiled[e]=!1,!1}return this.toBeTiled[e]=!0,!0},T.prototype.getNodeDegree=function(t){t.id;for(var e=t.getEdges(),i=0,r=0;rd&&(d=g.rect.height)}i+=d+t.verticalPadding}},T.prototype.tileCompoundMembers=function(t,e){var i=this;this.tiledMemberPack=[],Object.keys(t).forEach(function(r){var n=e[r];if(i.tiledMemberPack[r]=i.tileNodes(t[r],n.paddingLeft+n.paddingRight),n.rect.width=i.tiledMemberPack[r].width,n.rect.height=i.tiledMemberPack[r].height,n.setCenter(i.tiledMemberPack[r].centerX,i.tiledMemberPack[r].centerY),n.labelMarginLeft=0,n.labelMarginTop=0,h.NODE_DIMENSIONS_INCLUDE_LABELS){var o=n.rect.width,a=n.rect.height;n.labelWidth&&("left"==n.labelPosHorizontal?(n.rect.x-=n.labelWidth,n.setWidth(o+n.labelWidth),n.labelMarginLeft=n.labelWidth):"center"==n.labelPosHorizontal&&n.labelWidth>o?(n.rect.x-=(n.labelWidth-o)/2,n.setWidth(n.labelWidth),n.labelMarginLeft=(n.labelWidth-o)/2):"right"==n.labelPosHorizontal&&n.setWidth(o+n.labelWidth)),n.labelHeight&&("top"==n.labelPosVertical?(n.rect.y-=n.labelHeight,n.setHeight(a+n.labelHeight),n.labelMarginTop=n.labelHeight):"center"==n.labelPosVertical&&n.labelHeight>a?(n.rect.y-=(n.labelHeight-a)/2,n.setHeight(n.labelHeight),n.labelMarginTop=(n.labelHeight-a)/2):"bottom"==n.labelPosVertical&&n.setHeight(a+n.labelHeight))}})},T.prototype.tileNodes=function(t,e){var i,r=this.tileNodesByFavoringDim(t,e,!0),n=this.tileNodesByFavoringDim(t,e,!1),o=this.getOrgRatio(r);return i=this.getOrgRatio(n)l&&(l=t.getWidth())});var d=a/o,c=Math.pow(r-n,2)+4*(d+n)*(s/o+r)*o,g=(n-r+Math.sqrt(c))/(2*(d+n));e?(i=Math.ceil(g))==g&&i++:i=Math.floor(g);var u=i*(d+n)-n;return l>u&&(u=l),u+=2*n},T.prototype.tileNodesByFavoringDim=function(t,e,i){var r=h.TILING_PADDING_VERTICAL,n=h.TILING_PADDING_HORIZONTAL,o=h.TILING_COMPARE_BY,a={rows:[],rowWidth:[],rowHeight:[],width:0,height:e,verticalPadding:r,horizontalPadding:n,centerX:0,centerY:0};o&&(a.idealRowWidth=this.calcIdealRowWidth(t,i));var s=function(t){return t.rect.width*t.rect.height},l=function(t,e){return s(e)-s(t)};t.sort(function(t,e){var i=l;return a.idealRowWidth?(i=o)(t.id,e.id):i(t,e)});for(var d=0,c=0,g=0;g0&&(n+=t.horizontalPadding),t.rowWidth[i]=n,t.width0&&(o+=t.verticalPadding);var a=0;o>t.rowHeight[i]&&(a=t.rowHeight[i],t.rowHeight[i]=o,a=t.rowHeight[i]-a),t.height+=a,t.rows[i].push(e)},T.prototype.getShortestRowIndex=function(t){for(var e=-1,i=Number.MAX_VALUE,r=0;ri&&(e=r,i=t.rowWidth[r]);return e},T.prototype.canAddHorizontal=function(t,e,i){if(t.idealRowWidth){var r,n,o=t.rows.length-1;return t.rowWidth[o]+e+t.horizontalPadding<=t.idealRowWidth}var a=this.getShortestRowIndex(t);if(a<0)return!0;var s=t.rowWidth[a];if(s+t.horizontalPadding+e<=t.width)return!0;var h=0;return t.rowHeight[a]0&&(h=i+t.verticalPadding-t.rowHeight[a]),r=t.width-s>=e+t.horizontalPadding?(t.height+h)/(s+e+t.horizontalPadding):(t.height+h)/t.width,h=i+t.verticalPadding,(n=t.widtho&&e!=i){r.splice(-1,1),t.rows[i].push(n),t.rowWidth[e]=t.rowWidth[e]-o,t.rowWidth[i]=t.rowWidth[i]+o,t.width=t.rowWidth[instance.getLongestRowIndex(t)];for(var a=Number.MIN_VALUE,s=0;sa&&(a=r[s].height);e>0&&(a+=t.verticalPadding);var h=t.rowHeight[e]+t.rowHeight[i];t.rowHeight[e]=a,t.rowHeight[i]0)for(var u=a;u<=s;u++)g[0]+=this.grid[u][l-1].length+this.grid[u][l].length-1;if(s0)for(var u=l;u<=c;u++)g[3]+=this.grid[a-1][u].length+this.grid[a][u].length-1;for(var f=v.MAX_VALUE,p=0;p{var r=i(551).FDLayoutNode,n=i(551).IMath;function o(t,e,i,n){r.call(this,t,e,i,n)}for(var a in o.prototype=Object.create(r.prototype),r)o[a]=r[a];o.prototype.calculateDisplacement=function(){var t=this.graphManager.getLayout();null!=this.getChild()&&this.fixedNodeWeight?(this.displacementX+=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementX=t.coolingFactor*t.maxNodeDisplacement*n.sign(this.displacementX)),Math.abs(this.displacementY)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementY=t.coolingFactor*t.maxNodeDisplacement*n.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},o.prototype.propogateDisplacementToChildren=function(t,e){for(var i,r=this.getChild().getNodes(),n=0;n{function r(t){if(!Array.isArray(t))return Array.from(t);for(var e=0,i=Array(t.length);e0){var o=0;r.forEach(function(t){"horizontal"==e?c.set(t,h.has(t)?l[h.get(t)]:n.get(t)):c.set(t,h.has(t)?d[h.get(t)]:n.get(t)),o+=c.get(t)}),o/=r.length,t.forEach(function(t){!i.has(t)&&c.set(t,o)})}else{var a=0;t.forEach(function(t){"horizontal"==e?a+=h.has(t)?l[h.get(t)]:n.get(t):a+=h.has(t)?d[h.get(t)]:n.get(t)}),a/=t.length,t.forEach(function(t){c.set(t,a)})}});for(;0!=u.length;)!function(){var r=u.shift();t.get(r).forEach(function(t){if(c.get(t.id)a&&(a=m),Es&&(s=E)}}catch(t){u=!0,f=t}finally{try{!g&&v.return&&v.return()}finally{if(u)throw f}}var N=(r+a)/2-(o+s)/2,T=!0,A=!1,L=void 0;try{for(var w,_=t[Symbol.iterator]();!(T=(w=_.next()).done);T=!0){var I=w.value;c.set(I,c.get(I)+N)}}catch(t){A=!0,L=t}finally{try{!T&&_.return&&_.return()}finally{if(A)throw L}}})}return c},y=function(t){var e=0,i=0,r=0,n=0;if(t.forEach(function(t){t.left?l[h.get(t.left)]-l[h.get(t.right)]>=0?e++:i++:d[h.get(t.top)]-d[h.get(t.bottom)]>=0?r++:n++}),e>i&&r>n)for(var o=0;oi)for(var a=0;an)for(var s=0;s1)e.fixedNodeConstraint.forEach(function(t,e){T[e]=[t.position.x,t.position.y],A[e]=[l[h.get(t.nodeId)],d[h.get(t.nodeId)]]}),L=!0;else if(e.alignmentConstraint)!function(){var t=0;if(e.alignmentConstraint.vertical){for(var i=e.alignmentConstraint.vertical,n=0;n0?l[h.get(o.values().next().value)]:p(n).x,i[e].forEach(function(e){T[t]=[a,d[h.get(e)]],A[t]=[l[h.get(e)],d[h.get(e)]],t++})}(n);L=!0}if(e.alignmentConstraint.horizontal){for(var o=e.alignmentConstraint.horizontal,a=0;a0?l[h.get(n.values().next().value)]:p(i).y,o[e].forEach(function(e){T[t]=[l[h.get(e)],a],A[t]=[l[h.get(e)],d[h.get(e)]],t++})}(a);L=!0}e.relativePlacementConstraint&&(w=!0)}();else if(e.relativePlacementConstraint){for(var x=0,O=0,D=0;Dx&&(x=M[D].length,O=D);if(x0){var j={x:0,y:0};e.fixedNodeConstraint.forEach(function(t,e){var i,r,n={x:l[h.get(t.nodeId)],y:d[h.get(t.nodeId)]};var o=(i=t.position,r=n,{x:i.x-r.x,y:i.y-r.y});j.x+=o.x,j.y+=o.y}),j.x/=e.fixedNodeConstraint.length,j.y/=e.fixedNodeConstraint.length,l.forEach(function(t,e){l[e]+=j.x}),d.forEach(function(t,e){d[e]+=j.y}),e.fixedNodeConstraint.forEach(function(t){l[h.get(t.nodeId)]=t.position.x,d[h.get(t.nodeId)]=t.position.y})}if(e.alignmentConstraint){if(e.alignmentConstraint.vertical){for(var q=e.alignmentConstraint.vertical,$=0;$0?l[h.get(i.values().next().value)]:p(e).x,e.forEach(function(t){!_.has(t)&&(l[h.get(t)]=n)})}($)}if(e.alignmentConstraint.horizontal){for(var Z=e.alignmentConstraint.horizontal,Q=0;Q0?d[h.get(i.values().next().value)]:p(e).y,e.forEach(function(t){!_.has(t)&&(d[h.get(t)]=n)})}(Q)}}e.relativePlacementConstraint&&!function(){var t=new Map,i=new Map,r=new Map,n=new Map,o=new Map,a=new Map,s=new Set,c=new Set;if(_.forEach(function(t){s.add(t),c.add(t)}),e.alignmentConstraint){if(e.alignmentConstraint.vertical){for(var g=e.alignmentConstraint.vertical,u=function(e){r.set("dummy"+e,[]),g[e].forEach(function(i){t.set(i,"dummy"+e),r.get("dummy"+e).push(i),_.has(i)&&s.add("dummy"+e)}),o.set("dummy"+e,l[h.get(g[e][0])])},f=0;f{e.exports=t}},i={},function t(r){var n=i[r];if(void 0!==n)return n.exports;var o=i[r]={exports:{}};return e[r](o,o.exports,t),o.exports}(45)},t.exports=n(i(13035))},13035:function(t){var e,i;e=0,i=function(){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.i=function(t){return t},i.d=function(t,e,r){!i.o(t,e)&&Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=28)}([function(t,e,i){"use strict";function r(){}r.QUALITY=1,r.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,r.DEFAULT_INCREMENTAL=!1,r.DEFAULT_ANIMATION_ON_LAYOUT=!0,r.DEFAULT_ANIMATION_DURING_LAYOUT=!1,r.DEFAULT_ANIMATION_PERIOD=50,r.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,r.DEFAULT_GRAPH_MARGIN=15,r.NODE_DIMENSIONS_INCLUDE_LABELS=!1,r.SIMPLE_NODE_SIZE=40,r.SIMPLE_NODE_HALF_SIZE=r.SIMPLE_NODE_SIZE/2,r.EMPTY_COMPOUND_NODE_SIZE=40,r.MIN_EDGE_LENGTH=1,r.WORLD_BOUNDARY=1e6,r.INITIAL_WORLD_BOUNDARY=r.WORLD_BOUNDARY/1e3,r.WORLD_CENTER_X=1200,r.WORLD_CENTER_Y=900,t.exports=r},function(t,e,i){"use strict";var r=i(2),n=i(8),o=i(9);function a(t,e,i){r.call(this,i),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=i,this.bendpoints=[],this.source=t,this.target=e}for(var s in a.prototype=Object.create(r.prototype),r)a[s]=r[s];a.prototype.getSource=function(){return this.source},a.prototype.getTarget=function(){return this.target},a.prototype.isInterGraph=function(){return this.isInterGraph},a.prototype.getLength=function(){return this.length},a.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},a.prototype.getBendpoints=function(){return this.bendpoints},a.prototype.getLca=function(){return this.lca},a.prototype.getSourceInLca=function(){return this.sourceInLca},a.prototype.getTargetInLca=function(){return this.targetInLca},a.prototype.getOtherEnd=function(t){if(this.source===t)return this.target;if(this.target===t)return this.source;throw"Node is not incident with this edge"},a.prototype.getOtherEndInGraph=function(t,e){for(var i=this.getOtherEnd(t),r=e.getGraphManager().getRoot();;){if(i.getOwner()==e)return i;if(i.getOwner()==r)break;i=i.getOwner().getParent()}return null},a.prototype.updateLength=function(){var t=[,,,,];this.isOverlapingSourceAndTarget=n.getIntersection(this.target.getRect(),this.source.getRect(),t),!this.isOverlapingSourceAndTarget&&(this.lengthX=t[0]-t[2],this.lengthY=t[1]-t[3],1>Math.abs(this.lengthX)&&(this.lengthX=o.sign(this.lengthX)),1>Math.abs(this.lengthY)&&(this.lengthY=o.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},a.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),1>Math.abs(this.lengthX)&&(this.lengthX=o.sign(this.lengthX)),1>Math.abs(this.lengthY)&&(this.lengthY=o.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=a},function(t,e,i){"use strict";t.exports=function(t){this.vGraphObject=t}},function(t,e,i){"use strict";var r=i(2),n=i(10),o=i(13),a=i(0),s=i(16),h=i(5);function l(t,e,i,a){null==i&&null==a&&(a=e),r.call(this,a),null!=t.graphManager&&(t=t.graphManager),this.estimatedSize=n.MIN_VALUE,this.inclusionTreeDepth=n.MAX_VALUE,this.vGraphObject=a,this.edges=[],this.graphManager=t,null!=i&&null!=e?this.rect=new o(e.x,e.y,i.width,i.height):this.rect=new o}for(var d in l.prototype=Object.create(r.prototype),r)l[d]=r[d];l.prototype.getEdges=function(){return this.edges},l.prototype.getChild=function(){return this.child},l.prototype.getOwner=function(){return this.owner},l.prototype.getWidth=function(){return this.rect.width},l.prototype.setWidth=function(t){this.rect.width=t},l.prototype.getHeight=function(){return this.rect.height},l.prototype.setHeight=function(t){this.rect.height=t},l.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},l.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},l.prototype.getCenter=function(){return new h(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},l.prototype.getLocation=function(){return new h(this.rect.x,this.rect.y)},l.prototype.getRect=function(){return this.rect},l.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},l.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},l.prototype.setRect=function(t,e){this.rect.x=t.x,this.rect.y=t.y,this.rect.width=e.width,this.rect.height=e.height},l.prototype.setCenter=function(t,e){this.rect.x=t-this.rect.width/2,this.rect.y=e-this.rect.height/2},l.prototype.setLocation=function(t,e){this.rect.x=t,this.rect.y=e},l.prototype.moveBy=function(t,e){this.rect.x+=t,this.rect.y+=e},l.prototype.getEdgeListToNode=function(t){var e=[],i=this;return i.edges.forEach(function(r){if(r.target==t){if(r.source!=i)throw"Incorrect edge source!";e.push(r)}}),e},l.prototype.getEdgesBetween=function(t){var e=[],i=this;return i.edges.forEach(function(r){if(!(r.source==i||r.target==i))throw"Incorrect edge source and/or target";(r.target==t||r.source==t)&&e.push(r)}),e},l.prototype.getNeighborsList=function(){var t=new Set,e=this;return e.edges.forEach(function(i){if(i.source==e)t.add(i.target);else{if(i.target!=e)throw"Incorrect incidency!";t.add(i.source)}}),t},l.prototype.withChildren=function(){var t=new Set;if(t.add(this),null!=this.child){for(var e=this.child.getNodes(),i=0;ie?(this.rect.x-=(this.labelWidth-e)/2,this.setWidth(this.labelWidth)):"right"==this.labelPosHorizontal&&this.setWidth(e+this.labelWidth)),this.labelHeight&&("top"==this.labelPosVertical?(this.rect.y-=this.labelHeight,this.setHeight(i+this.labelHeight)):"center"==this.labelPosVertical&&this.labelHeight>i?(this.rect.y-=(this.labelHeight-i)/2,this.setHeight(this.labelHeight)):"bottom"==this.labelPosVertical&&this.setHeight(i+this.labelHeight))}}},l.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==n.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},l.prototype.transform=function(t){var e=this.rect.x;e>a.WORLD_BOUNDARY?e=a.WORLD_BOUNDARY:e<-a.WORLD_BOUNDARY&&(e=-a.WORLD_BOUNDARY);var i=this.rect.y;i>a.WORLD_BOUNDARY?i=a.WORLD_BOUNDARY:i<-a.WORLD_BOUNDARY&&(i=-a.WORLD_BOUNDARY);var r=new h(e,i),n=t.inverseTransformPoint(r);this.setLocation(n.x,n.y)},l.prototype.getLeft=function(){return this.rect.x},l.prototype.getRight=function(){return this.rect.x+this.rect.width},l.prototype.getTop=function(){return this.rect.y},l.prototype.getBottom=function(){return this.rect.y+this.rect.height},l.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},t.exports=l},function(t,e,i){"use strict";var r=i(0);function n(){}for(var o in r)n[o]=r[o];n.MAX_ITERATIONS=2500,n.DEFAULT_EDGE_LENGTH=50,n.DEFAULT_SPRING_STRENGTH=.45,n.DEFAULT_REPULSION_STRENGTH=4500,n.DEFAULT_GRAVITY_STRENGTH=.4,n.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,n.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,n.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,n.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,n.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,n.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,n.COOLING_ADAPTATION_FACTOR=.33,n.ADAPTATION_LOWER_NODE_LIMIT=1e3,n.ADAPTATION_UPPER_NODE_LIMIT=5e3,n.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,n.MAX_NODE_DISPLACEMENT=3*n.MAX_NODE_DISPLACEMENT_INCREMENTAL,n.MIN_REPULSION_DIST=n.DEFAULT_EDGE_LENGTH/10,n.CONVERGENCE_CHECK_PERIOD=100,n.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,n.MIN_EDGE_LENGTH=1,n.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=n},function(t,e,i){"use strict";function r(t,e){null==t&&null==e?(this.x=0,this.y=0):(this.x=t,this.y=e)}r.prototype.getX=function(){return this.x},r.prototype.getY=function(){return this.y},r.prototype.setX=function(t){this.x=t},r.prototype.setY=function(t){this.y=t},r.prototype.getDifference=function(t){return new DimensionD(this.x-t.x,this.y-t.y)},r.prototype.getCopy=function(){return new r(this.x,this.y)},r.prototype.translate=function(t){return this.x+=t.width,this.y+=t.height,this},t.exports=r},function(t,e,i){"use strict";var r=i(2),n=i(10),o=i(0),a=i(7),s=i(3),h=i(1),l=i(13),d=i(12),c=i(11);function g(t,e,i){r.call(this,i),this.estimatedSize=n.MIN_VALUE,this.margin=o.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=t,null!=e&&e instanceof a?this.graphManager=e:null!=e&&e instanceof Layout&&(this.graphManager=e.graphManager)}for(var u in g.prototype=Object.create(r.prototype),r)g[u]=r[u];g.prototype.getNodes=function(){return this.nodes},g.prototype.getEdges=function(){return this.edges},g.prototype.getGraphManager=function(){return this.graphManager},g.prototype.getParent=function(){return this.parent},g.prototype.getLeft=function(){return this.left},g.prototype.getRight=function(){return this.right},g.prototype.getTop=function(){return this.top},g.prototype.getBottom=function(){return this.bottom},g.prototype.isConnected=function(){return this.isConnected},g.prototype.add=function(t,e,i){if(null==e&&null==i){if(null==this.graphManager)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(t)>-1)throw"Node already in graph!";return t.owner=this,this.getNodes().push(t),t}if(!(this.getNodes().indexOf(e)>-1&&this.getNodes().indexOf(i)>-1))throw"Source or target not in graph!";if(!(e.owner==i.owner&&e.owner==this))throw"Both owners must be this graph!";return e.owner!=i.owner?null:(t.source=e,t.target=i,t.isInterGraph=!1,this.getEdges().push(t),e.edges.push(t),i!=e&&i.edges.push(t),t)},g.prototype.remove=function(t){if(t instanceof s){if(null==t)throw"Node is null!";if(!(null!=t.owner&&t.owner==this))throw"Owner graph is invalid!";if(null==this.graphManager)throw"Owner graph manager is invalid!";for(var e,i=t.edges.slice(),r=i.length,n=0;n-1&&l>-1))throw"Source and/or target doesn't know this edge!";e.source.edges.splice(a,1),e.target!=e.source&&e.target.edges.splice(l,1);var o=e.source.owner.getEdges().indexOf(e);if(-1==o)throw"Not in owner's edge list!";e.source.owner.getEdges().splice(o,1)}},g.prototype.updateLeftTop=function(){for(var t,e,i,r=n.MAX_VALUE,o=n.MAX_VALUE,a=this.getNodes(),s=a.length,h=0;ht&&(r=t),o>e&&(o=e)}return r==n.MAX_VALUE?null:(i=void 0!=a[0].getParent().paddingLeft?a[0].getParent().paddingLeft:this.margin,this.left=o-i,this.top=r-i,new d(this.left,this.top))},g.prototype.updateBounds=function(t){for(var e,i,r,o,a,s=n.MAX_VALUE,h=-n.MAX_VALUE,d=n.MAX_VALUE,c=-n.MAX_VALUE,g=this.nodes,u=g.length,f=0;fe&&(s=e),hr&&(d=r),ce&&(a=e),sr&&(h=r),d=this.nodes.length){var h=0;n.forEach(function(t){t.owner==i&&h++}),h==this.nodes.length&&(this.isConnected=!0)}},t.exports=g},function(t,e,i){"use strict";var r,n=i(1);function o(t){r=i(6),this.layout=t,this.graphs=[],this.edges=[]}o.prototype.addRoot=function(){var t=this.layout.newGraph(),e=this.layout.newNode(null),i=this.add(t,e);return this.setRootGraph(i),this.rootGraph},o.prototype.add=function(t,e,i,r,n){if(null==i&&null==r&&null==n){if(null==t)throw"Graph is null!";if(null==e)throw"Parent node is null!";if(this.graphs.indexOf(t)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(t),null!=t.parent)throw"Already has a parent!";if(null!=e.child)throw"Already has a child!";return t.parent=e,e.child=t,t}n=i,r=e,i=t;var o=r.getOwner(),a=n.getOwner();if(!(null!=o&&o.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(null!=a&&a.getGraphManager()==this))throw"Target not in this graph mgr!";if(o==a)return i.isInterGraph=!1,o.add(i,r,n);if(i.isInterGraph=!0,i.source=r,i.target=n,this.edges.indexOf(i)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(i),!(null!=i.source&&null!=i.target))throw"Edge source and/or target is null!";if(!(-1==i.source.edges.indexOf(i)&&-1==i.target.edges.indexOf(i)))throw"Edge already in source and/or target incidency list!";return i.source.edges.push(i),i.target.edges.push(i),i},o.prototype.remove=function(t){if(t instanceof r){if(t.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(t==this.rootGraph||null!=t.parent&&t.parent.graphManager==this))throw"Invalid parent node!";for(var e,i,o=[],a=(o=o.concat(t.getEdges())).length,s=0;s=e.getRight()?i[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight()):e.getX()<=t.getX()&&e.getRight()>=t.getRight()&&(i[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight())),t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()?i[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom()):e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()&&(i[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom()));var o=Math.abs((e.getCenterY()-t.getCenterY())/(e.getCenterX()-t.getCenterX()));e.getCenterY()===t.getCenterY()&&e.getCenterX()===t.getCenterX()&&(o=1);var a=o*i[0],s=i[1]/o;i[0]a?(i[0]=r,i[1]=h,i[2]=o,i[3]=E):no?(i[0]=s,i[1]=n,i[2]=y,i[3]=a):ro?(i[0]=d,i[1]=c):(i[0]=l,i[1]=h),L=!0):_===C&&(r>o?(i[0]=s,i[1]=h):(i[0]=g,i[1]=c),L=!0),-I===C?(o>r?(i[2]=m,i[3]=E):(i[2]=y,i[3]=v),w=!0):I===C&&(o>r?(i[2]=p,i[3]=v):(i[2]=N,i[3]=E),w=!0),L&&w)return!1;if(r>o?n>a?(M=this.getCardinalDirection(_,C,4),x=this.getCardinalDirection(I,C,2)):(M=this.getCardinalDirection(-_,C,3),x=this.getCardinalDirection(-I,C,1)):n>a?(M=this.getCardinalDirection(-_,C,1),x=this.getCardinalDirection(-I,C,3)):(M=this.getCardinalDirection(_,C,2),x=this.getCardinalDirection(I,C,4)),!L)switch(M){case 1:D=h,O=r+-f/C,i[0]=O,i[1]=D;break;case 2:O=g,D=n+u*C,i[0]=O,i[1]=D;break;case 3:D=c,O=r+f/C,i[0]=O,i[1]=D;break;case 4:O=d,D=n+-u*C,i[0]=O,i[1]=D}if(!w)switch(x){case 1:b=v,R=o+-A/C,i[2]=R,i[3]=b;break;case 2:R=N,b=a+T*C,i[2]=R,i[3]=b;break;case 3:b=E,R=o+A/C,i[2]=R,i[3]=b;break;case 4:R=m,b=a+-T*C,i[2]=R,i[3]=b}}return!1},n.getCardinalDirection=function(t,e,i){return t>e?i:1+i%4},n.getIntersection=function(t,e,i,n){if(null==n)return this.getIntersection2(t,e,i);var o=t.x,a=t.y,s=e.x,h=e.y,l=i.x,d=i.y,c=n.x,g=n.y,u=void 0,f=void 0,p=void 0,v=void 0,y=void 0,m=void 0,E=void 0,N=void 0,T=void 0;return(p=h-a,y=o-s,E=s*a-o*h,v=g-d,m=l-c,N=c*d-l*g,0==(T=p*m-v*y))?null:new r(u=(y*N-m*E)/T,f=(v*E-p*N)/T)},n.angleOfVector=function(t,e,i,r){var n=void 0;return t!==i?(n=Math.atan((r-e)/(i-t)),i=0))return null;var d=(-h+Math.sqrt(h*h-4*s*l))/(2*s),c=(-h-Math.sqrt(h*h-4*s*l))/(2*s);return d>=0&&d<=1?[d]:c>=0&&c<=1?[c]:null},n.HALF_PI=.5*Math.PI,n.ONE_AND_HALF_PI=1.5*Math.PI,n.TWO_PI=2*Math.PI,n.THREE_PI=3*Math.PI,t.exports=n},function(t,e,i){"use strict";function r(){}r.sign=function(t){return t>0?1:t<0?-1:0},r.floor=function(t){return t<0?Math.ceil(t):Math.floor(t)},r.ceil=function(t){return t<0?Math.floor(t):Math.ceil(t)},t.exports=r},function(t,e,i){"use strict";function r(){}r.MAX_VALUE=0x7fffffff,r.MIN_VALUE=-0x80000000,t.exports=r},function(t,e,i){"use strict";var r=function(){function t(t,e){for(var i=0;i0&&e;){for(s.push(l[0]);s.length>0&&e;){var d=s[0];s.splice(0,1),a.add(d);for(var c=d.getEdges(),o=0;o-1&&l.splice(p,1)}a=new Set,h=new Map}else t=[]}return t},g.prototype.createDummyNodesForBendpoints=function(t){for(var e=[],i=t.source,r=this.graphManager.calcLowestCommonAncestor(t.source,t.target),n=0;n0){for(var n=this.edgeToDummyNodes.get(i),o=0;o=0&&e.splice(c,1),s.getNeighborsList().forEach(function(t){if(0>i.indexOf(t)){var e=r.get(t)-1;1==e&&l.push(t),r.set(t,e)}})}i=i.concat(l),(1==e.length||2==e.length)&&(n=!0,o=e[0])}return o},g.prototype.setGraphManager=function(t){this.graphManager=t},t.exports=g},function(t,e,i){"use strict";function r(){}r.seed=1,r.x=0,r.nextDouble=function(){return r.x=1e4*Math.sin(r.seed++),r.x-Math.floor(r.x)},t.exports=r},function(t,e,i){"use strict";var r=i(5);function n(t,e){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}n.prototype.getWorldOrgX=function(){return this.lworldOrgX},n.prototype.setWorldOrgX=function(t){this.lworldOrgX=t},n.prototype.getWorldOrgY=function(){return this.lworldOrgY},n.prototype.setWorldOrgY=function(t){this.lworldOrgY=t},n.prototype.getWorldExtX=function(){return this.lworldExtX},n.prototype.setWorldExtX=function(t){this.lworldExtX=t},n.prototype.getWorldExtY=function(){return this.lworldExtY},n.prototype.setWorldExtY=function(t){this.lworldExtY=t},n.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},n.prototype.setDeviceOrgX=function(t){this.ldeviceOrgX=t},n.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},n.prototype.setDeviceOrgY=function(t){this.ldeviceOrgY=t},n.prototype.getDeviceExtX=function(){return this.ldeviceExtX},n.prototype.setDeviceExtX=function(t){this.ldeviceExtX=t},n.prototype.getDeviceExtY=function(){return this.ldeviceExtY},n.prototype.setDeviceExtY=function(t){this.ldeviceExtY=t},n.prototype.transformX=function(t){var e=0,i=this.lworldExtX;return 0!=i&&(e=this.ldeviceOrgX+(t-this.lworldOrgX)*this.ldeviceExtX/i),e},n.prototype.transformY=function(t){var e=0,i=this.lworldExtY;return 0!=i&&(e=this.ldeviceOrgY+(t-this.lworldOrgY)*this.ldeviceExtY/i),e},n.prototype.inverseTransformX=function(t){var e=0,i=this.ldeviceExtX;return 0!=i&&(e=this.lworldOrgX+(t-this.ldeviceOrgX)*this.lworldExtX/i),e},n.prototype.inverseTransformY=function(t){var e=0,i=this.ldeviceExtY;return 0!=i&&(e=this.lworldOrgY+(t-this.ldeviceOrgY)*this.lworldExtY/i),e},n.prototype.inverseTransformPoint=function(t){return new r(this.inverseTransformX(t.x),this.inverseTransformY(t.y))},t.exports=n},function(t,e,i){"use strict";var r=i(15),n=i(4),o=i(0),a=i(8),s=i(9);function h(){r.call(this),this.useSmartIdealEdgeLengthCalculation=n.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=n.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=n.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=n.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=n.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*n.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=n.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=n.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=n.MAX_ITERATIONS}for(var l in h.prototype=Object.create(r.prototype),r)h[l]=r[l];h.prototype.initParameters=function(){r.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=n.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},h.prototype.calcIdealEdgeLengths=function(){for(var t,e,i,r,a,s,h,l=this.getGraphManager().getAllEdges(),d=0;dn.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*n.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-n.ADAPTATION_LOWER_NODE_LIMIT)/(n.ADAPTATION_UPPER_NODE_LIMIT-n.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-n.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=n.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>n.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(n.COOLING_ADAPTATION_FACTOR,1-(t-n.ADAPTATION_LOWER_NODE_LIMIT)/(n.ADAPTATION_UPPER_NODE_LIMIT-n.ADAPTATION_LOWER_NODE_LIMIT)*(1-n.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=n.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.displacementThresholdPerNode=3*n.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var t,e=this.getAllEdges(),i=0;i0)||void 0===arguments[0]||arguments[0],s=arguments.length>1&&void 0!==arguments[1]&&arguments[1],h=this.getAllNodes();if(this.useFRGridVariant)for(this.totalIterations%n.GRID_CALCULATION_CHECK_PERIOD==1&&a&&this.updateGrid(),o=new Set,t=0;t(h=e.getEstimatedSize()*this.gravityRangeFactor)||s>h)&&(t.gravitationForceX=-this.gravityConstant*n,t.gravitationForceY=-this.gravityConstant*o):(a>(h=e.getEstimatedSize()*this.compoundGravityRangeFactor)||s>h)&&(t.gravitationForceX=-this.gravityConstant*n*this.compoundGravityConstant,t.gravitationForceY=-this.gravityConstant*o*this.compoundGravityConstant)},h.prototype.isConverged=function(){var t,e=!1;return this.totalIterations>this.maxIterations/3&&(e=2>Math.abs(this.totalDisplacement-this.oldTotalDisplacement)),t=this.totalDisplacement=s.length||l>=s[0].length))for(var d=0;dt}}]),t}();t.exports=o},function(t,e,i){"use strict";function r(){}r.svd=function(t){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=t.length,this.n=t[0].length;var e=Math.min(this.m,this.n);this.s=function(t){for(var e=[];t-- >0;)e.push(0);return e}(Math.min(this.m+1,this.n)),this.U=function t(e){if(0==e.length)return 0;for(var i=[],r=0;r0;)e.push(0);return e}(this.n),n=function(t){for(var e=[];t-- >0;)e.push(0);return e}(this.m),o=Math.min(this.m-1,this.n),a=Math.max(0,Math.min(this.n-2,this.m)),s=0;s=0;b--)if(0!==this.s[b]){for(var G=b+1;G=0;H--){;if(tc=H0;){var $=void 0,Z=void 0;for($=O-2;$>=-1&&-1!==$;$--){;if(Math.abs(i[$])<=16033346880071782e-307+2220446049250313e-31*(Math.abs(this.s[$])+Math.abs(this.s[$+1]))){i[$]=0;break}}if($===O-2)Z=4;else{var Q=void 0;for(Q=O-1;Q>=$&&Q!==$;Q--){;var J=(Q!==O?Math.abs(i[Q]):0)+(Q!==$+1?Math.abs(i[Q-1]):0);if(Math.abs(this.s[Q])<=16033346880071782e-307+2220446049250313e-31*J){this.s[Q]=0;break}}Q===$?Z=3:Q===O-1?Z=1:(Z=2,$=Q)}switch($++,Z){case 1:var K=i[O-2];i[O-2]=0;for(var tt=O-2;tt>=$;tt--){var te=r.hypot(this.s[tt],K),ti=this.s[tt]/te,tr=K/te;this.s[tt]=te,tt!==$&&(K=-tr*i[tt-1],i[tt-1]=ti*i[tt-1]);for(var tn=0;tn=this.s[$+1]);){;var tb=this.s[$];if(this.s[$]=this.s[$+1],this.s[$+1]=tb,$Math.abs(e)?(i=e/t,i=Math.abs(t)*Math.sqrt(1+i*i)):0!=e?(i=t/e,i=Math.abs(e)*Math.sqrt(1+i*i)):i=0,i},t.exports=r},function(t,e,i){"use strict";var r=function(){function t(t,e){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;!function(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")}(this,t),this.sequence1=e,this.sequence2=i,this.match_score=r,this.mismatch_penalty=n,this.gap_penalty=o,this.iMax=e.length+1,this.jMax=i.length+1,this.grid=Array(this.iMax);for(var a=0;a=0;i--){var r=this.listeners[i];r.event===t&&r.callback===e&&this.listeners.splice(i,1)}},n.emit=function(t,e){for(var i=0;i`${t},${t/2} 0,${t} 0,0`,"L"),R:(0,h.eW)(t=>`0,${t/2} ${t},0 ${t},${t}`,"R"),T:(0,h.eW)(t=>`0,0 ${t},0 ${t/2},${t}`,"T"),B:(0,h.eW)(t=>`${t/2},0 ${t},${t} 0,${t}`,"B")},p={L:(0,h.eW)((t,e)=>t-e+2,"L"),R:(0,h.eW)((t,e)=>t-2,"R"),T:(0,h.eW)((t,e)=>t-e+2,"T"),B:(0,h.eW)((t,e)=>t-2,"B")},v=(0,h.eW)(function(t){return m(t)?"L"===t?"R":"L":"T"===t?"B":"T"},"getOppositeArchitectureDirection"),y=(0,h.eW)(function(t){return"L"===t||"R"===t||"T"===t||"B"===t},"isArchitectureDirection"),m=(0,h.eW)(function(t){return"L"===t||"R"===t},"isArchitectureDirectionX"),E=(0,h.eW)(function(t){return"T"===t||"B"===t},"isArchitectureDirectionY"),N=(0,h.eW)(function(t,e){let i=m(t)&&E(e),r=E(t)&&m(e);return i||r},"isArchitectureDirectionXY"),T=(0,h.eW)(function(t){let e=t[0],i=t[1],r=m(e)&&E(i),n=E(e)&&m(i);return r||n},"isArchitecturePairXY"),A=(0,h.eW)(function(t){return"LL"!==t&&"RR"!==t&&"TT"!==t&&"BB"!==t},"isValidArchitectureDirectionPair"),L=(0,h.eW)(function(t,e){let i=`${t}${e}`;return A(i)?i:void 0},"getArchitectureDirectionPair"),w=(0,h.eW)(function([t,e],i){let r=i[0],n=i[1];if(m(r))return E(n)?[t+("L"===r?-1:1),e+("T"===n?1:-1)]:[t+("L"===r?-1:1),e];return m(n)?[t+("L"===n?1:-1),e+("T"===r?1:-1)]:[t,e+("T"===r?1:-1)]},"shiftPositionByArchitectureDirectionPair"),_=(0,h.eW)(function(t){if("LT"===t||"TL"===t)return[1,1];if("BL"===t||"LB"===t)return[1,-1];if("BR"===t||"RB"===t)return[-1,-1];else return[-1,1]},"getArchitectureDirectionXYFactors"),I=(0,h.eW)(function(t){return"service"===t.type},"isArchitectureService"),C=(0,h.eW)(function(t){return"junction"===t.type},"isArchitectureJunction"),M=(0,h.eW)(t=>t.data(),"edgeData"),x=(0,h.eW)(t=>t.data(),"nodeData"),O=h.vZ.architecture,D=new a.A(()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:O,dataStructures:void 0,elements:{}})),R=(0,h.eW)(()=>{D.reset(),(0,h.ZH)()},"clear"),b=(0,h.eW)(function({id:t,icon:e,in:i,title:r,iconText:n}){if(void 0!==D.records.registeredIds[t])throw Error(`The service id [${t}] is already in use by another ${D.records.registeredIds[t]}`);if(void 0!==i){if(t===i)throw Error(`The service [${t}] cannot be placed within itself`);if(void 0===D.records.registeredIds[i])throw Error(`The service [${t}]'s parent does not exist. Please make sure the parent is created before this service`);if("node"===D.records.registeredIds[i])throw Error(`The service [${t}]'s parent is not a group`)}D.records.registeredIds[t]="node",D.records.nodes[t]={id:t,type:"service",icon:e,iconText:n,title:r,edges:[],in:i}},"addService"),G=(0,h.eW)(()=>Object.values(D.records.nodes).filter(I),"getServices"),F=(0,h.eW)(function({id:t,in:e}){D.records.registeredIds[t]="node",D.records.nodes[t]={id:t,type:"junction",edges:[],in:e}},"addJunction"),S=(0,h.eW)(()=>Object.values(D.records.nodes).filter(C),"getJunctions"),P=(0,h.eW)(()=>Object.values(D.records.nodes),"getNodes"),U=(0,h.eW)(t=>D.records.nodes[t],"getNode"),Y=(0,h.eW)(function({id:t,icon:e,in:i,title:r}){if(void 0!==D.records.registeredIds[t])throw Error(`The group id [${t}] is already in use by another ${D.records.registeredIds[t]}`);if(void 0!==i){if(t===i)throw Error(`The group [${t}] cannot be placed within itself`);if(void 0===D.records.registeredIds[i])throw Error(`The group [${t}]'s parent does not exist. Please make sure the parent is created before this group`);if("node"===D.records.registeredIds[i])throw Error(`The group [${t}]'s parent is not a group`)}D.records.registeredIds[t]="group",D.records.groups[t]={id:t,icon:e,title:r,in:i}},"addGroup"),k=(0,h.eW)(()=>Object.values(D.records.groups),"getGroups"),H=(0,h.eW)(function({lhsId:t,rhsId:e,lhsDir:i,rhsDir:r,lhsInto:n,rhsInto:o,lhsGroup:a,rhsGroup:s,title:h}){if(!y(i))throw Error(`Invalid direction given for left hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${i}`);if(!y(r))throw Error(`Invalid direction given for right hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${r}`);if(void 0===D.records.nodes[t]&&void 0===D.records.groups[t])throw Error(`The left-hand id [${t}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(void 0===D.records.nodes[e]&&void 0===D.records.groups[t])throw Error(`The right-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);let l=D.records.nodes[t].in,d=D.records.nodes[e].in;if(a&&l&&d&&l==d)throw Error(`The left-hand id [${t}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(s&&l&&d&&l==d)throw Error(`The right-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);D.records.edges.push({lhsId:t,lhsDir:i,lhsInto:n,lhsGroup:a,rhsId:e,rhsDir:r,rhsInto:o,rhsGroup:s,title:h}),D.records.nodes[t]&&D.records.nodes[e]&&(D.records.nodes[t].edges.push(D.records.edges[D.records.edges.length-1]),D.records.nodes[e].edges.push(D.records.edges[D.records.edges.length-1]))},"addEdge"),X=(0,h.eW)(()=>D.records.edges,"getEdges"),W=(0,h.eW)(()=>{if(void 0===D.records.dataStructures){let t=Object.entries(D.records.nodes).reduce((t,[e,i])=>(t[e]=i.edges.reduce((t,i)=>{if(i.lhsId===e){let e=L(i.lhsDir,i.rhsDir);e&&(t[e]=i.rhsId)}else{let e=L(i.rhsDir,i.lhsDir);e&&(t[e]=i.lhsId)}return t},{}),t),{}),e=Object.keys(t)[0],i={[e]:1},r=Object.keys(t).reduce((t,i)=>i===e?t:{...t,[i]:1},{}),n=(0,h.eW)(e=>{let n={[e]:[0,0]},o=[e];for(;o.length>0;){let e=o.shift();if(e){i[e]=1,delete r[e];let a=t[e],[s,h]=n[e];Object.entries(a).forEach(([t,e])=>{!i[e]&&(n[e]=w([s,h],t),o.push(e))})}}return n},"BFS"),o=[n(e)];for(;Object.keys(r).length>0;)o.push(n(Object.keys(r)[0]));D.records.dataStructures={adjList:t,spatialMaps:o}}return D.records.dataStructures},"getDataStructures"),z=(0,h.eW)((t,e)=>{D.records.elements[t]=e},"setElementForId"),V=(0,h.eW)(t=>D.records.elements[t],"getElementById"),B={clear:R,setDiagramTitle:h.g2,getDiagramTitle:h.Kr,setAccTitle:h.GN,getAccTitle:h.eu,setAccDescription:h.U$,getAccDescription:h.Mx,addService:b,getServices:G,addJunction:F,getJunctions:S,getNodes:P,getNode:U,addGroup:Y,getGroups:k,addEdge:H,getEdges:X,setElementForId:z,getElementById:V,getDataStructures:W};function j(t){let e=(0,h.nV)().architecture;return e?.[t]?e[t]:O[t]}(0,h.eW)(j,"getConfigField");var q=(0,h.eW)((t,e)=>{(0,o.A)(t,e),t.groups.map(e.addGroup),t.services.map(t=>e.addService({...t,type:"service"})),t.junctions.map(t=>e.addJunction({...t,type:"junction"})),t.edges.map(e.addEdge)},"populateDb"),$={parse:(0,h.eW)(async t=>{let e=await (0,l.Qc)("architecture",t);h.cM.debug(e),q(e,B)},"parse")},Z=(0,h.eW)(t=>` + .edge { + stroke-width: ${t.archEdgeWidth}; + stroke: ${t.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${t.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${t.archGroupBorderColor}; + stroke-width: ${t.archGroupBorderWidth}; + stroke-dasharray: 8; + } + .node-icon-text { + display: flex; + align-items: center; + } + + .node-icon-text > div { + color: #fff; + margin: 1px; + height: fit-content; + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + } +`,"getStyles"),Q=(0,h.eW)(t=>`${t}`,"wrapIcon"),J={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:Q('')},server:{body:Q('')},disk:{body:Q('')},internet:{body:Q('')},cloud:{body:Q('')},unknown:r.cN,blank:{body:Q("")}}},K=(0,h.eW)(async function(t,e){let i=j("padding"),r=j("iconSize"),o=r/2,a=r/6,s=a/2;await Promise.all(e.edges().map(async e=>{let{source:r,sourceDir:l,sourceArrow:d,sourceGroup:c,target:g,targetDir:u,targetArrow:v,targetGroup:y,label:A}=M(e),{x:w,y:I}=e[0].sourceEndpoint(),{x:C,y:x}=e[0].midpoint(),{x:O,y:D}=e[0].targetEndpoint(),R=i+4;if(c&&(m(l)?w+="L"===l?-R:R:I+="T"===l?-R:R+18),y&&(m(u)?O+="L"===u?-R:R:D+="T"===u?-R:R+18),!c&&B.getNode(r)?.type==="junction"&&(m(l)?w+="L"===l?o:-o:I+="T"===l?o:-o),!y&&B.getNode(g)?.type==="junction"&&(m(u)?O+="L"===u?o:-o:D+="T"===u?o:-o),e[0]._private.rscratch){let e=t.insert("g");if(e.insert("path").attr("d",`M ${w},${I} L ${C},${x} L${O},${D} `).attr("class","edge"),d){let t=m(l)?p[l](w,a):w-s,i=E(l)?p[l](I,a):I-s;e.insert("polygon").attr("points",f[l](a)).attr("transform",`translate(${t},${i})`).attr("class","arrow")}if(v){let t=m(u)?p[u](O,a):O-s,i=E(u)?p[u](D,a):D-s;e.insert("polygon").attr("points",f[u](a)).attr("transform",`translate(${t},${i})`).attr("class","arrow")}if(A){let t=N(l,u)?"XY":m(l)?"X":"Y",i=0;i="X"===t?Math.abs(w-O):"Y"===t?Math.abs(I-D)/1.5:Math.abs(w-O)/2;let r=e.append("g");if(await (0,n.rw)(r,A,{useHtmlLabels:!1,width:i,classes:"architecture-service-label"},(0,h.nV)()),r.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),"X"===t)r.attr("transform","translate("+C+", "+x+")");else if("Y"===t)r.attr("transform","translate("+C+", "+x+") rotate(-90)");else if("XY"===t){let t=L(l,u);if(t&&T(t)){let e=r.node().getBoundingClientRect(),[i,n]=_(t);r.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*i*n*45})`);let o=r.node().getBoundingClientRect();r.attr("transform",` + translate(${C}, ${x-e.height/2}) + translate(${i*o.width/2}, ${n*o.height/2}) + rotate(${-1*i*n*45}, 0, ${e.height/2}) + `)}}}}}))},"drawEdges"),tt=(0,h.eW)(async function(t,e){let i=.75*j("padding"),o=j("fontSize"),a=j("iconSize")/2;await Promise.all(e.nodes().map(async e=>{let s=x(e);if("group"===s.type){let{h:l,w:d,x1:c,y1:g}=e.boundingBox();t.append("rect").attr("x",c+a).attr("y",g+a).attr("width",d).attr("height",l).attr("class","node-bkg");let u=t.append("g"),f=c,p=g;if(s.icon){let t=u.append("g");t.html(`${await (0,r.s4)(s.icon,{height:i,width:i,fallbackPrefix:J.prefix})}`),t.attr("transform","translate("+(f+a+1)+", "+(p+a+1)+")"),f+=i,p+=o/2-1-2}if(s.label){let t=u.append("g");await (0,n.rw)(t,s.label,{useHtmlLabels:!1,width:d,classes:"architecture-service-label"},(0,h.nV)()),t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),t.attr("transform","translate("+(f+a+4)+", "+(p+a+2)+")")}}}))},"drawGroups"),te=(0,h.eW)(async function(t,e,i){for(let o of i){let i=e.append("g"),a=j("iconSize");if(o.title){let t=i.append("g");await (0,n.rw)(t,o.title,{useHtmlLabels:!1,width:1.5*a,classes:"architecture-service-label"},(0,h.nV)()),t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),t.attr("transform","translate("+a/2+", "+a+")")}let s=i.append("g");if(o.icon)s.html(`${await (0,r.s4)(o.icon,{height:a,width:a,fallbackPrefix:J.prefix})}`);else if(o.iconText){s.html(`${await (0,r.s4)("blank",{height:a,width:a,fallbackPrefix:J.prefix})}`);let t=s.append("g").append("foreignObject").attr("width",a).attr("height",a).append("div").attr("class","node-icon-text").attr("style",`height: ${a}px;`).append("div").html(o.iconText),e=parseInt(window.getComputedStyle(t.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;t.attr("style",`-webkit-line-clamp: ${Math.floor((a-2)/e)};`)}else s.append("path").attr("class","node-bkg").attr("id","node-"+o.id).attr("d",`M0 ${a} v${-a} q0,-5 5,-5 h${a} q5,0 5,5 v${a} H0 Z`);i.attr("class","architecture-service");let{width:l,height:d}=i._groups[0][0].getBBox();o.width=l,o.height=d,t.setElementForId(o.id,i)}return 0},"drawServices"),ti=(0,h.eW)(function(t,e,i){i.forEach(i=>{let r=e.append("g"),n=j("iconSize");r.append("g").append("rect").attr("id","node-"+i.id).attr("fill-opacity","0").attr("width",n).attr("height",n),r.attr("class","architecture-junction");let{width:o,height:a}=r._groups[0][0].getBBox();r.width=o,r.height=a,t.setElementForId(i.id,r)})},"drawJunctions");function tr(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"service",id:t.id,icon:t.icon,label:t.title,parent:t.in,width:j("iconSize"),height:j("iconSize")},classes:"node-service"})})}function tn(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"junction",id:t.id,parent:t.in,width:j("iconSize"),height:j("iconSize")},classes:"node-junction"})})}function to(t,e){e.nodes().map(e=>{let i=x(e);if("group"!==i.type)i.x=e.position().x,i.y=e.position().y,t.getElementById(i.id).attr("transform","translate("+(i.x||0)+","+(i.y||0)+")")})}function ta(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"group",id:t.id,icon:t.icon,label:t.title,parent:t.in},classes:"node-group"})})}function ts(t,e){t.forEach(t=>{let{lhsId:i,rhsId:r,lhsInto:n,lhsGroup:o,rhsInto:a,lhsDir:s,rhsDir:h,rhsGroup:l,title:d}=t,c=N(t.lhsDir,t.rhsDir)?"segments":"straight",g={id:`${i}-${r}`,label:d,source:i,sourceDir:s,sourceArrow:n,sourceGroup:o,sourceEndpoint:"L"===s?"0 50%":"R"===s?"100% 50%":"T"===s?"50% 0":"50% 100%",target:r,targetDir:h,targetArrow:a,targetGroup:l,targetEndpoint:"L"===h?"0 50%":"R"===h?"100% 50%":"T"===h?"50% 0":"50% 100%"};e.add({group:"edges",data:g,classes:c})})}function th(t){let[e,i]=t.map(t=>{let e={},i={};return Object.entries(t).forEach(([t,[r,n]])=>{!e[n]&&(e[n]=[]),!i[r]&&(i[r]=[]),e[n].push(t),i[r].push(t)}),{horiz:Object.values(e).filter(t=>t.length>1),vert:Object.values(i).filter(t=>t.length>1)}}).reduce(([t,e],{horiz:i,vert:r})=>[[...t,...i],[...e,...r]],[[],[]]);return{horizontal:e,vertical:i}}function tl(t){let e=[],i=(0,h.eW)(t=>`${t[0]},${t[1]}`,"posToStr"),r=(0,h.eW)(t=>t.split(",").map(t=>parseInt(t)),"strToPos");return t.forEach(t=>{let n=Object.fromEntries(Object.entries(t).map(([t,e])=>[i(e),t])),o=[i([0,0])],a={},s={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;o.length>0;){let t=o.shift();if(t){a[t]=1;let h=n[t];if(h){let l=r(t);Object.entries(s).forEach(([t,r])=>{let s=i([l[0]+r[0],l[1]+r[1]]),d=n[s];d&&!a[s]&&(o.push(s),e.push({[u[t]]:d,[u[v(t)]]:h,gap:1.5*j("iconSize")}))})}}}}),e}function td(t,e,i,r,{spatialMaps:n}){return new Promise(o=>{let a=(0,g.Ys)("body").append("div").attr("id","cy").attr("style","display:none"),s=(0,d.Z)({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${j("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${j("padding")}px`}}]});a.remove(),ta(i,s),tr(t,s),tn(e,s),ts(r,s);let l=th(n),c=tl(n),u=s.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(t){let[e,i]=t.connectedNodes(),{parent:r}=x(e),{parent:n}=x(i);return r===n?1.5*j("iconSize"):.5*j("iconSize")},edgeElasticity(t){let[e,i]=t.connectedNodes(),{parent:r}=x(e),{parent:n}=x(i);return r===n?.45:.001},alignmentConstraint:l,relativePlacementConstraint:c});u.one("layoutstop",()=>{function t(t,e,i,r){let n,o;let{x:a,y:s}=t,{x:h,y:l}=e;o=(r-s+(a-i)*(s-l)/(a-h))/Math.sqrt(1+Math.pow((s-l)/(a-h),2)),n=Math.sqrt(Math.pow(r-s,2)+Math.pow(i-a,2)-Math.pow(o,2))/Math.sqrt(Math.pow(h-a,2)+Math.pow(l-s,2));let d=(h-a)*(r-s)-(l-s)*(i-a);switch(!0){case d>=0:d=1;break;case d<0:d=-1}let c=(h-a)*(i-a)+(l-s)*(r-s);switch(!0){case c>=0:c=1;break;case c<0:c=-1}return{distances:o=Math.abs(o)*d,weights:n*=c}}for(let e of((0,h.eW)(t,"getSegmentWeights"),s.startBatch(),Object.values(s.edges())))if(e.data?.()){let{x:i,y:r}=e.source().position(),{x:n,y:o}=e.target().position();if(i!==n&&r!==o){let i=e.sourceEndpoint(),r=e.targetEndpoint(),{sourceDir:n}=M(e),[o,a]=E(n)?[i.x,r.y]:[r.x,i.y],{weights:s,distances:h}=t(i,r,o,a);e.style("segment-distances",h),e.style("segment-weights",s)}}s.endBatch(),u.run()}),u.run(),s.ready(t=>{h.cM.info("Ready",t),o(s)})})}(0,r.ef)([{name:J.prefix,icons:J}]),d.Z.use(c),(0,h.eW)(tr,"addServices"),(0,h.eW)(tn,"addJunctions"),(0,h.eW)(to,"positionNodes"),(0,h.eW)(ta,"addGroups"),(0,h.eW)(ts,"addEdges"),(0,h.eW)(th,"getAlignments"),(0,h.eW)(tl,"getRelativeConstraints"),(0,h.eW)(td,"layoutArchitecture");var tc=(0,h.eW)(async(t,e,i,r)=>{let n=r.db,o=n.getServices(),a=n.getJunctions(),l=n.getGroups(),d=n.getEdges(),c=n.getDataStructures(),g=(0,s.P)(e),u=g.append("g");u.attr("class","architecture-edges");let f=g.append("g");f.attr("class","architecture-services");let p=g.append("g");p.attr("class","architecture-groups"),await te(n,f,o),ti(n,f,a);let v=await td(o,a,l,d,c);await K(u,v),await tt(p,v),to(n,v),(0,h.j7)(void 0,g,j("padding"),j("useMaxWidth"))},"draw"),tg={parser:$,db:B,renderer:{draw:tc},styles:Z}},79068:function(t,e,i){"use strict";i.d(e,{A:function(){return n}});var r=i(74146),n=class{constructor(t){this.init=t,this.records=this.init()}static{(0,r.eW)(this,"ImperativeState")}reset(){this.records=this.init()}}},18010:function(t,e,i){"use strict";function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}i.d(e,{A:function(){return r}}),(0,i(74146).eW)(r,"populateCommonDb")}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/36d80f80.a511a4f9.js b/pr-preview/pr-238/assets/js/36d80f80.a511a4f9.js new file mode 100644 index 0000000000..b3599a7ee3 --- /dev/null +++ b/pr-preview/pr-238/assets/js/36d80f80.a511a4f9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["5785"],{6243:function(e,n,t){t.r(n),t.d(n,{metadata:()=>r,contentTitle:()=>s,default:()=>u,assets:()=>c,toc:()=>l,frontMatter:()=>o});var r=JSON.parse('{"id":"documentation/comparators","title":"Komparatoren","description":"","source":"@site/docs/documentation/comparators.md","sourceDirName":"documentation","slug":"/documentation/comparators","permalink":"/java-docs/pr-preview/pr-238/documentation/comparators","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/comparators.md","tags":[{"inline":true,"label":"comparators","permalink":"/java-docs/pr-preview/pr-238/tags/comparators"}],"version":"current","sidebarPosition":220,"frontMatter":{"title":"Komparatoren","description":"","sidebar_position":220,"tags":["comparators"]},"sidebar":"documentationSidebar","previous":{"title":"Listen","permalink":"/java-docs/pr-preview/pr-238/documentation/lists"},"next":{"title":"Java Collections Framework","permalink":"/java-docs/pr-preview/pr-238/documentation/java-collections-framework"}}'),i=t("85893"),a=t("50065");let o={title:"Komparatoren",description:"",sidebar_position:220,tags:["comparators"]},s=void 0,c={},l=[];function d(e){let n={code:"code",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Mit Hilfe der Methode ",(0,i.jsx)(n.code,{children:"int compareTo(o: T)"})," der Schnittstelle ",(0,i.jsx)(n.code,{children:"Comparable"}),"\nbzw. der Methode ",(0,i.jsx)(n.code,{children:"int compare(o1: T, o2: T)"})," der Schnittstelle ",(0,i.jsx)(n.code,{children:"Comparator"}),"\nk\xf6nnen Objekte einer Klasse miteinander verglichen werden. Der R\xfcckgabewert\nbeider Methoden gibt die Ordnung der zu vergleichenden Objekte an:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"R\xfcckgabewert kleiner Null: das Vergleichsobjekt ist gr\xf6\xdfer"}),"\n",(0,i.jsx)(n.li,{children:"R\xfcckgabewert gleich Null: beide Objekte sind gleich gro\xdf"}),"\n",(0,i.jsx)(n.li,{children:"R\xfcckgabewert gr\xf6\xdfer Null: das Vergleichsobjekt ist kleiner"}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Objekte der Klasse ",(0,i.jsx)(n.code,{children:"Foo"})," k\xf6nnen durch die Implementierung der Methode\n",(0,i.jsx)(n.code,{children:"int compareTo(o: T)"})," der Schnittstelle ",(0,i.jsx)(n.code,{children:"Comparable"})," miteinander verglichen\nwerden."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Container.java" showLineNumbers',children:"public class Container implements Comparable {\n\n private String value;\n\n public Container(String value) {\n this.value = value;\n }\n\n public void setValue(String value) {\n this.value = value;\n }\n\n public String getValue() {\n return value;\n }\n\n @Override\n public int compareTo(Container o) {\n return value.compareTo(o.value);\n }\n\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["In der main-Methode der Startklasse wird mit Hilfe der statischen Methode\n",(0,i.jsx)(n.code,{children:"void sort(list: List)"})," der Klasse ",(0,i.jsx)(n.code,{children:"Collections"})," eine Liste mit Objekten der\nKlasse ",(0,i.jsx)(n.code,{children:"Foo"})," sortiert. Aufgrund der Implementierung der compareTo-Methode wird\ndie Liste aufsteigend nach dem Attribut ",(0,i.jsx)(n.code,{children:"bar"})," sortiert."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n List containers = new ArrayList<>();\n containers.add(new Container("Winter"));\n containers.add(new Container("is"));\n containers.add(new Container("Coming"));\n\n Collections.sort(containers);\n }\n\n}\n'})})]})}function u(e={}){let{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},50065:function(e,n,t){t.d(n,{Z:function(){return s},a:function(){return o}});var r=t(67294);let i={},a=r.createContext(i);function o(e){let n=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/36eb3bda.4cb4e18d.js b/pr-preview/pr-238/assets/js/36eb3bda.4cb4e18d.js new file mode 100644 index 0000000000..cd9cc52969 --- /dev/null +++ b/pr-preview/pr-238/assets/js/36eb3bda.4cb4e18d.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7694"],{90721:function(e,t,r){r.r(t),r.d(t,{metadata:()=>n,contentTitle:()=>s,default:()=>m,assets:()=>c,toc:()=>u,frontMatter:()=>o});var n=JSON.parse('{"id":"additional-material/daniel/java1/java1","title":"Programmierung 1","description":"","source":"@site/docs/additional-material/daniel/java1/java1.mdx","sourceDirName":"additional-material/daniel/java1","slug":"/additional-material/daniel/java1/","permalink":"/java-docs/pr-preview/pr-238/additional-material/daniel/java1/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/additional-material/daniel/java1/java1.mdx","tags":[],"version":"current","sidebarPosition":10,"frontMatter":{"title":"Programmierung 1","description":"","sidebar_position":10,"tags":[]},"sidebar":"additionalMaterialSidebar","previous":{"title":"Daniel","permalink":"/java-docs/pr-preview/pr-238/additional-material/daniel/"},"next":{"title":"Musterklausur","permalink":"/java-docs/pr-preview/pr-238/additional-material/daniel/java1/sample-exam"}}'),a=r("85893"),i=r("50065"),l=r("94301");let o={title:"Programmierung 1",description:"",sidebar_position:10,tags:[]},s=void 0,c={},u=[];function d(e){return(0,a.jsx)(l.Z,{})}function m(e={}){let{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},94301:function(e,t,r){r.d(t,{Z:()=>v});var n=r("85893");r("67294");var a=r("67026"),i=r("69369"),l=r("83012"),o=r("43115"),s=r("63150"),c=r("96025"),u=r("34403");let d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function m(e){let{href:t,children:r}=e;return(0,n.jsx)(l.Z,{href:t,className:(0,a.Z)("card padding--lg",d.cardContainer),children:r})}function p(e){let{href:t,icon:r,title:i,description:l}=e;return(0,n.jsxs)(m,{href:t,children:[(0,n.jsxs)(u.Z,{as:"h2",className:(0,a.Z)("text--truncate",d.cardTitle),title:i,children:[r," ",i]}),l&&(0,n.jsx)("p",{className:(0,a.Z)("text--truncate",d.cardDescription),title:l,children:l})]})}function f(e){let{item:t}=e,r=(0,i.LM)(t),a=function(){let{selectMessage:e}=(0,o.c)();return t=>e(t,(0,c.I)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return r?(0,n.jsx)(p,{href:r,icon:"\uD83D\uDDC3\uFE0F",title:t.label,description:t.description??a(t.items.length)}):null}function h(e){let{item:t}=e,r=(0,s.Z)(t.href)?"\uD83D\uDCC4\uFE0F":"\uD83D\uDD17",a=(0,i.xz)(t.docId??void 0);return(0,n.jsx)(p,{href:t.href,icon:r,title:t.label,description:t.description??a?.description})}function j(e){let{item:t}=e;switch(t.type){case"link":return(0,n.jsx)(h,{item:t});case"category":return(0,n.jsx)(f,{item:t});default:throw Error(`unknown item type ${JSON.stringify(t)}`)}}function g(e){let{className:t}=e,r=(0,i.jA)();return(0,n.jsx)(v,{items:r.items,className:t})}function v(e){let{items:t,className:r}=e;if(!t)return(0,n.jsx)(g,{...e});let l=(0,i.MN)(t);return(0,n.jsx)("section",{className:(0,a.Z)("row",r),children:l.map((e,t)=>(0,n.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,n.jsx)(j,{item:e})},t))})}},43115:function(e,t,r){r.d(t,{c:function(){return s}});var n=r(67294),a=r(2933);let i=["zero","one","two","few","many","other"];function l(e){return i.filter(t=>e.includes(t))}let o={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function s(){let e=function(){let{i18n:{currentLocale:e}}=(0,a.Z)();return(0,n.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:l(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${t.message} +`),o}},[e])}();return{selectMessage:(t,r)=>(function(e,t,r){let n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);let a=r.select(t);return n[Math.min(r.pluralForms.indexOf(a),n.length-1)]})(r,t,e)}}},50065:function(e,t,r){r.d(t,{Z:function(){return o},a:function(){return l}});var n=r(67294);let a={},i=n.createContext(a);function l(e){let t=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/371939ef.92abce56.js b/pr-preview/pr-238/assets/js/371939ef.92abce56.js new file mode 100644 index 0000000000..253f2ee76c --- /dev/null +++ b/pr-preview/pr-238/assets/js/371939ef.92abce56.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1937"],{46707:function(e,t,r){r.r(t),r.d(t,{metadata:()=>s,contentTitle:()=>l,default:()=>m,assets:()=>o,toc:()=>u,frontMatter:()=>c});var s=JSON.parse('{"id":"exam-exercises/exam-exercises-java1/class-diagrams/class-diagrams","title":"Klassendiagramme","description":"","source":"@site/docs/exam-exercises/exam-exercises-java1/class-diagrams/class-diagrams.mdx","sourceDirName":"exam-exercises/exam-exercises-java1/class-diagrams","slug":"/exam-exercises/exam-exercises-java1/class-diagrams/","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java1/class-diagrams/class-diagrams.mdx","tags":[],"version":"current","sidebarPosition":10,"frontMatter":{"title":"Klassendiagramme","description":"","sidebar_position":10},"sidebar":"examExercisesSidebar","previous":{"title":"Programmierung 1","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/"},"next":{"title":"Kartenausteiler","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer"}}'),a=r("85893"),n=r("50065"),i=r("94301");let c={title:"Klassendiagramme",description:"",sidebar_position:10},l=void 0,o={},u=[];function d(e){return(0,a.jsx)(i.Z,{})}function m(e={}){let{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},94301:function(e,t,r){r.d(t,{Z:()=>j});var s=r("85893");r("67294");var a=r("67026"),n=r("69369"),i=r("83012"),c=r("43115"),l=r("63150"),o=r("96025"),u=r("34403");let d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function m(e){let{href:t,children:r}=e;return(0,s.jsx)(i.Z,{href:t,className:(0,a.Z)("card padding--lg",d.cardContainer),children:r})}function p(e){let{href:t,icon:r,title:n,description:i}=e;return(0,s.jsxs)(m,{href:t,children:[(0,s.jsxs)(u.Z,{as:"h2",className:(0,a.Z)("text--truncate",d.cardTitle),title:n,children:[r," ",n]}),i&&(0,s.jsx)("p",{className:(0,a.Z)("text--truncate",d.cardDescription),title:i,children:i})]})}function x(e){let{item:t}=e,r=(0,n.LM)(t),a=function(){let{selectMessage:e}=(0,c.c)();return t=>e(t,(0,o.I)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return r?(0,s.jsx)(p,{href:r,icon:"\uD83D\uDDC3\uFE0F",title:t.label,description:t.description??a(t.items.length)}):null}function f(e){let{item:t}=e,r=(0,l.Z)(t.href)?"\uD83D\uDCC4\uFE0F":"\uD83D\uDD17",a=(0,n.xz)(t.docId??void 0);return(0,s.jsx)(p,{href:t.href,icon:r,title:t.label,description:t.description??a?.description})}function h(e){let{item:t}=e;switch(t.type){case"link":return(0,s.jsx)(f,{item:t});case"category":return(0,s.jsx)(x,{item:t});default:throw Error(`unknown item type ${JSON.stringify(t)}`)}}function g(e){let{className:t}=e,r=(0,n.jA)();return(0,s.jsx)(j,{items:r.items,className:t})}function j(e){let{items:t,className:r}=e;if(!t)return(0,s.jsx)(g,{...e});let i=(0,n.MN)(t);return(0,s.jsx)("section",{className:(0,a.Z)("row",r),children:i.map((e,t)=>(0,s.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,s.jsx)(h,{item:e})},t))})}},43115:function(e,t,r){r.d(t,{c:function(){return l}});var s=r(67294),a=r(2933);let n=["zero","one","two","few","many","other"];function i(e){return n.filter(t=>e.includes(t))}let c={locale:"en",pluralForms:i(["one","other"]),select:e=>1===e?"one":"other"};function l(){let e=function(){let{i18n:{currentLocale:e}}=(0,a.Z)();return(0,s.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:i(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${t.message} +`),c}},[e])}();return{selectMessage:(t,r)=>(function(e,t,r){let s=e.split("|");if(1===s.length)return s[0];s.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${s.length}: ${e}`);let a=r.select(t);return s[Math.min(r.pluralForms.indexOf(a),s.length-1)]})(r,t,e)}}},50065:function(e,t,r){r.d(t,{Z:function(){return c},a:function(){return i}});var s=r(67294);let a={},n=s.createContext(a);function i(e){let t=s.useContext(n);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3720c009.e2816224.js b/pr-preview/pr-238/assets/js/3720c009.e2816224.js new file mode 100644 index 0000000000..7b41d416fa --- /dev/null +++ b/pr-preview/pr-238/assets/js/3720c009.e2816224.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2898"],{94190:function(e,t,a){a.r(t),a.d(t,{default:()=>f});var s=a("85893");a("67294");var l=a("67026"),r=a("14713"),n=a("84681"),i=a("96025");let c=()=>(0,i.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});var g=a("48627"),o=a("34403");let u="tag_Nnez";function h(e){let{letterEntry:t}=e;return(0,s.jsxs)("article",{children:[(0,s.jsx)(o.Z,{as:"h2",id:t.letter,children:t.letter}),(0,s.jsx)("ul",{className:"padding--none",children:t.tags.map(e=>(0,s.jsx)("li",{className:u,children:(0,s.jsx)(g.Z,{...e})},e.permalink))}),(0,s.jsx)("hr",{})]})}function d(e){let{tags:t}=e,a=function(e){let t={};return Object.values(e).forEach(e=>{let a=e.label[0].toUpperCase();t[a]??=[],t[a].push(e)}),Object.entries(t).sort((e,t)=>{let[a]=e,[s]=t;return a.localeCompare(s)}).map(e=>{let[t,a]=e;return{letter:t,tags:a.sort((e,t)=>e.label.localeCompare(t.label))}})}(t);return(0,s.jsx)("section",{className:"margin-vert--lg",children:a.map(e=>(0,s.jsx)(h,{letterEntry:e},e.letter))})}var j=a("84315");function m(e){let{title:t}=e;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.d,{title:t}),(0,s.jsx)(j.Z,{tag:"doc_tags_list"})]})}function x(e){let{tags:t,title:a}=e;return(0,s.jsx)(r.FG,{className:(0,l.Z)(n.k.page.docsTagsListPage),children:(0,s.jsx)("div",{className:"container margin-vert--lg",children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("main",{className:"col col--8 col--offset-2",children:[(0,s.jsx)(o.Z,{as:"h1",children:a}),(0,s.jsx)(d,{tags:t})]})})})})}function f(e){let t=c();return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(m,{...e,title:t}),(0,s.jsx)(x,{...e,title:t})]})}},48627:function(e,t,a){a.d(t,{Z:()=>i});var s=a("85893");a("67294");var l=a("67026"),r=a("83012");let n={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function i(e){let{permalink:t,label:a,count:i,description:c}=e;return(0,s.jsxs)(r.Z,{href:t,title:c,className:(0,l.Z)(n.tag,i?n.tagWithCount:n.tagRegular),children:[a,i&&(0,s.jsx)("span",{children:i})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3754.8c3fbd0f.js b/pr-preview/pr-238/assets/js/3754.8c3fbd0f.js new file mode 100644 index 0000000000..8d333f40a8 --- /dev/null +++ b/pr-preview/pr-238/assets/js/3754.8c3fbd0f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3754"],{84768:function(r,a,e){e.d(a,{diagram:function(){return l}});var s=e(83371);e(57169),e(290),e(29660),e(37971),e(9833),e(30594),e(82612),e(41200),e(68394);var c=e(74146),l={parser:s.P0,db:s.pl,renderer:s.b0,styles:s.Ee,init:(0,c.eW)(r=>{!r.class&&(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute,s.pl.clear()},"init")}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/37a06808.fedb232b.js b/pr-preview/pr-238/assets/js/37a06808.fedb232b.js new file mode 100644 index 0000000000..8a32b63064 --- /dev/null +++ b/pr-preview/pr-238/assets/js/37a06808.fedb232b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4620"],{97839:function(e,n,s){s.r(n),s.d(n,{metadata:()=>a,contentTitle:()=>t,default:()=>u,assets:()=>d,toc:()=>c,frontMatter:()=>r});var a=JSON.parse('{"id":"documentation/inner-classes","title":"Innere Klassen (Inner Classes)","description":"","source":"@site/docs/documentation/inner-classes.md","sourceDirName":"documentation","slug":"/documentation/inner-classes","permalink":"/java-docs/pr-preview/pr-238/documentation/inner-classes","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/inner-classes.md","tags":[{"inline":true,"label":"inner-classes","permalink":"/java-docs/pr-preview/pr-238/tags/inner-classes"}],"version":"current","sidebarPosition":260,"frontMatter":{"title":"Innere Klassen (Inner Classes)","description":"","sidebar_position":260,"tags":["inner-classes"]},"sidebar":"documentationSidebar","previous":{"title":"Simple Logging Facade for Java (SLF4J)","permalink":"/java-docs/pr-preview/pr-238/documentation/slf4j"},"next":{"title":"Lambda-Ausdr\xfccke (Lambdas)","permalink":"/java-docs/pr-preview/pr-238/documentation/lambdas"}}'),i=s("85893"),l=s("50065");let r={title:"Innere Klassen (Inner Classes)",description:"",sidebar_position:260,tags:["inner-classes"]},t=void 0,d={},c=[{value:"Geschachtelte Klassen (Nested Classes)",id:"geschachtelte-klassen-nested-classes",level:2},{value:"Elementklassen (Member Classes)",id:"elementklassen-member-classes",level:2},{value:"Lokale Klassen",id:"lokale-klassen",level:2},{value:"Anonyme Klassen",id:"anonyme-klassen",level:2}];function o(e){let n={a:"a",code:"code",em:"em",h2:"h2",p:"p",pre:"pre",...(0,l.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Java bietet die M\xf6glichkeit, Klassen und Schnittstellen zu verschachteln. Das\nZiel von inneren Klassen ist eine Definition von Hilfsklassen m\xf6glichst nahe an\nder Stelle, wo sie gebraucht werden. Beispiele f\xfcr Hilfsklassen sind\nAusnahmeklassen, Komparatoren und Ereignisbehandler. Alle bisherigen Klassen\nwerden auch als ",(0,i.jsx)(n.em,{children:"\xe4u\xdferer Klassen"})," bzw. ",(0,i.jsx)(n.em,{children:"Top-Level-Klassen"})," bezeichnet."]}),"\n",(0,i.jsx)(n.h2,{id:"geschachtelte-klassen-nested-classes",children:"Geschachtelte Klassen (Nested Classes)"}),"\n",(0,i.jsxs)(n.p,{children:["Geschachtelte Klassen sind Top-Level-Klassen, die zur Strukturierung des\nNamensraumes in anderen Top-Level-Klassen definiert sind. Ein Namensraum ist die\nvollst\xe4ndige Pfadangabe zur Klasse (z.B. ",(0,i.jsx)(n.code,{children:"java.lang"}),"). Geschachtelte Klassen\nm\xfcssen statisch definiert werden und sind daher im eigentlichen Sinne keine\nrichtigen inneren Klassen."]}),"\n",(0,i.jsxs)(n.p,{children:["Zun\xe4chst wird die \xe4u\xdfere Klasse ",(0,i.jsx)(n.code,{children:"OuterClass"})," samt der geschachtelten Klasse\n",(0,i.jsx)(n.code,{children:"InnerClass"})," definiert."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="OuterClass.java" showLineNumbers',children:"public class OuterClass {\n\n public static class InnerClass {\n }\n\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["In der main-Methode der Startklasse kann die innere Klasse ",(0,i.jsx)(n.code,{children:"InnerClass"})," nur\ndurch Angabe des vollst\xe4ndigen Namensraumes verwendet werden, was die Angabe der\n\xe4u\xdferer Klasse ",(0,i.jsx)(n.code,{children:"OuterClass"})," miteinschlie\xdft."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:"public class MainClass {\n\n public static void main(String[] args) {\n OuterClass o = new OuterClass();\n OuterClass.InnerClass i = new OuterClass.InnerClass();\n }\n\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"elementklassen-member-classes",children:"Elementklassen (Member Classes)"}),"\n",(0,i.jsxs)(n.p,{children:["Objekte von Elementklassen sind immer mit einem Objekt der umgebenden Klasse\nverbunden. Dies erm\xf6glicht die Umsetzung von Kompositionen (siehe\n",(0,i.jsx)(n.a,{href:"class-diagrams#darstellung-von-assoziationen",children:"Darstellung von Assoziationen"}),").\nSie haben Zugriff auf alle Variablen und Methoden der sie umgebenden Klasse und\nd\xfcrfen keine statischen Elemente enthalten."]}),"\n",(0,i.jsxs)(n.p,{children:["Zun\xe4chst wird die \xe4u\xdfere Klasse ",(0,i.jsx)(n.code,{children:"OuterClass"})," samt der Elementklasse ",(0,i.jsx)(n.code,{children:"InnerClass"}),"\ndefiniert."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="OuterClass.java" showLineNumbers',children:"public class OuterClass {\n\n public class InnerClass {\n }\n\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["In der main-Methode der Startklasse kann ein Objekt der Klasse ",(0,i.jsx)(n.code,{children:"InnerClass"})," nur\nauf ein bestehendes Objekt der Klasse ",(0,i.jsx)(n.code,{children:"OuterClass"})," erzeugt werden."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:"public class MainClass {\n\n public static void main(String[] args) {\n OuterClass o = new OuterClass();\n OuterClass.InnerClass i = new OuterClass.InnerClass(); // Kompilierungsfehler\n OuterClass.InnerClass i = o.new InnerClass();\n }\n\n}\n"})}),"\n",(0,i.jsx)(n.h2,{id:"lokale-klassen",children:"Lokale Klassen"}),"\n",(0,i.jsxs)(n.p,{children:["Lokale Klassen werden innerhalb einer Methode definiert und k\xf6nnen auch nur dort\nverwendet werden. Sie d\xfcrfen nicht als ",(0,i.jsx)(n.code,{children:"public"}),", ",(0,i.jsx)(n.code,{children:"protected"}),", ",(0,i.jsx)(n.code,{children:"private"})," oder\n",(0,i.jsx)(n.code,{children:"static"})," definiert werden, d\xfcrfen keine statischen Elemente enthalten und k\xf6nnen\nnur die mit ",(0,i.jsx)(n.code,{children:"final"})," markierten Variablen und Parameter der umgebenden Methode\nverwenden."]}),"\n",(0,i.jsxs)(n.p,{children:["Zun\xe4chst wird die Schnittstelle ",(0,i.jsx)(n.code,{children:"Qux"})," samt der Methode\n",(0,i.jsx)(n.code,{children:"void quux(s: String)"}),"definiert."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Qux.java" showLineNumbers',children:"public interface Qux {\n\n void quux(String s);\n\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Die Klasse ",(0,i.jsx)(n.code,{children:"Foo"})," soll die Verwenderklasse der Schnittstelle ",(0,i.jsx)(n.code,{children:"Qux"})," darstellen."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Foo.java" showLineNumbers',children:"public class Foo {\n\n public static void bar(String s, Qux q) {\n q.quux(s);\n }\n\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["In der main-Methode der Startklasse soll die Methode\n",(0,i.jsx)(n.code,{children:"void bar(s: String, q: Qux)"})," der Klasse ",(0,i.jsx)(n.code,{children:"Foo"})," aufgerufen werden, wof\xfcr eine\nkonkrete Implementierung der Schnittstelle ",(0,i.jsx)(n.code,{children:"Qux"})," ben\xf6tigt wird. Die\nImplementierung erfolgt in Form der lokalen Klasse ",(0,i.jsx)(n.code,{children:"LocalClass"}),"."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n class LocalClass implements Qux {\n @Override\n public void quux(String s) {\n System.out.println(s);\n }\n }\n\n LocalClass l = new LocalClass();\n Foo.bar("Winter is Coming", l);\n }\n\n}\n'})}),"\n",(0,i.jsx)(n.h2,{id:"anonyme-klassen",children:"Anonyme Klassen"}),"\n",(0,i.jsx)(n.p,{children:"Anonyme Klassen besitzen im Gegensatz zu lokalen Klassen keinen Namen und werden\ninnerhalb eines Ausdrucks definiert und instanziiert; Klassendeklaration und\nObjekterzeugung sind also in einem Sprachkonstrukt vereint. Wird als Datentyp\neine Schnittstelle ben\xf6tigt, implementiert die anonyme Klasse diese\nSchnittstelle, wird als Datentyp eine Klasse ben\xf6tigt, so wird die anonyme\nKlasse daraus abgeleitet."}),"\n",(0,i.jsxs)(n.p,{children:["Zun\xe4chst wird die Schnittstelle ",(0,i.jsx)(n.code,{children:"Qux"})," samt der Methode\n",(0,i.jsx)(n.code,{children:"void quux(s: String)"}),"definiert."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Qux.java" showLineNumbers',children:"public interface Qux {\n\n void quux(String s);\n\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Die Klasse ",(0,i.jsx)(n.code,{children:"Foo"})," soll die Verwenderklasse der Schnittstelle ",(0,i.jsx)(n.code,{children:"Qux"})," darstellen."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="Foo.java" showLineNumbers',children:"public class Foo {\n\n public static void bar(String s, Qux q) {\n q.quux(s);\n }\n\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["In der main-Methode der Startklasse soll die Methode\n",(0,i.jsx)(n.code,{children:"void bar(s: String, q: Qux)"})," der Klasse ",(0,i.jsx)(n.code,{children:"Foo"})," aufgerufen werden, wof\xfcr eine\nkonkrete Implementierung der Schnittstelle ",(0,i.jsx)(n.code,{children:"Qux"})," ben\xf6tigt wird. Die\nImplementierung erfolgt in Form einer anonymen Klasse."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n Foo.bar("Winter is Coming", new Qux() {\n @Override\n public void quux(String s) {\n System.out.println(s);\n }\n });\n }\n\n}\n'})})]})}function u(e={}){let{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},50065:function(e,n,s){s.d(n,{Z:function(){return t},a:function(){return r}});var a=s(67294);let i={},l=a.createContext(i);function r(e){let n=a.useContext(l);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),a.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3917.2e0f1717.js b/pr-preview/pr-238/assets/js/3917.2e0f1717.js new file mode 100644 index 0000000000..0b2e25d16a --- /dev/null +++ b/pr-preview/pr-238/assets/js/3917.2e0f1717.js @@ -0,0 +1,60 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3917"],{13881:function(e,t,r){var n,i;t.CancellationTokenSource=t.CancellationToken=void 0;let a=r(30147),s=r(67574),o=r(27135);(i=n||(t.CancellationToken=n={})).None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:o.Event.None}),i.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:o.Event.None}),i.is=function(e){return e&&(e===i.None||e===i.Cancelled||s.boolean(e.isCancellationRequested)&&!!e.onCancellationRequested)};let l=Object.freeze(function(e,t){let r=(0,a.default)().timer.setTimeout(e.bind(t),0);return{dispose(){r.dispose()}}});class u{constructor(){this._isCancelled=!1}cancel(){!this._isCancelled&&(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?l:(!this._emitter&&(this._emitter=new o.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}t.CancellationTokenSource=class e{get token(){return!this._token&&(this._token=new u),this._token}cancel(){this._token?this._token.cancel():this._token=n.Cancelled}dispose(){this._token?this._token instanceof u&&this._token.dispose():this._token=n.None}}},27135:function(e,t,r){var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Emitter=t.Event=void 0;let i=r(30147);!function(e){let t={dispose(){}};e.None=function(){return t}}(n||(t.Event=n={}));class a{add(e,t=null,r){!this._callbacks&&(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(r)&&r.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let r=!1;for(let n=0,i=this._callbacks.length;n{!this._callbacks&&(this._callbacks=new a),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);let n={dispose:()=>{if(!!this._callbacks)this._callbacks.remove(e,t),n.dispose=s._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this)}};return Array.isArray(r)&&r.push(n),n}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}t.Emitter=s,s._noop=function(){}},67574:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.stringArray=t.array=t.func=t.error=t.number=t.string=t.boolean=void 0;function r(e){return"string"==typeof e||e instanceof String}t.boolean=function(e){return!0===e||!1===e},t.string=r;t.number=function(e){return"number"==typeof e||e instanceof Number};t.error=function(e){return e instanceof Error};function n(e){return Array.isArray(e)}t.func=function(e){return"function"==typeof e},t.array=n;t.stringArray=function(e){return n(e)&&e.every(e=>r(e))}},30147:function(e,t){let r;function n(){if(void 0===r)throw Error("No runtime abstraction layer installed");return r}Object.defineProperty(t,"__esModule",{value:!0}),(n||(n={})).install=function(e){if(void 0===e)throw Error("No runtime abstraction layer provided");r=e},t.default=n},52730:function(e,t,r){r.d(t,{M:function(){return o}});var n=r(95318),i=r(74462),a=class extends n.T7{static{(0,n.eW)(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},s={parser:{TokenBuilder:(0,n.eW)(()=>new a,"TokenBuilder"),ValueConverter:(0,n.eW)(()=>new n.nr,"ValueConverter")}};function o(e=i.uZ){let t=(0,i.f3)((0,i.Jr)(e),n.GS),r=(0,i.f3)((0,i.Q)({shared:t}),n.F_,s);return t.ServiceRegistry.register(r),{shared:t,Info:r}}(0,n.eW)(o,"createInfoServices")},75243:function(e,t,r){r.d(t,{l:function(){return l}});var n=r(95318),i=r(74462),a=class extends n.T7{static{(0,n.eW)(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},s=class extends n.kb{static{(0,n.eW)(this,"PieValueConverter")}runCustomConverter(e,t,r){if("PIE_SECTION_LABEL"===e.name)return t.replace(/"/g,"").trim()}},o={parser:{TokenBuilder:(0,n.eW)(()=>new a,"TokenBuilder"),ValueConverter:(0,n.eW)(()=>new s,"ValueConverter")}};function l(e=i.uZ){let t=(0,i.f3)((0,i.Jr)(e),n.GS),r=(0,i.f3)((0,i.Q)({shared:t}),n.WH,o);return t.ServiceRegistry.register(r),{shared:t,Pie:r}}(0,n.eW)(l,"createPieServices")},16100:function(e,t,r){r.d(t,{g:function(){return o}});var n=r(95318),i=r(74462),a=class extends n.T7{static{(0,n.eW)(this,"PacketTokenBuilder")}constructor(){super(["packet-beta"])}},s={parser:{TokenBuilder:(0,n.eW)(()=>new a,"TokenBuilder"),ValueConverter:(0,n.eW)(()=>new n.nr,"ValueConverter")}};function o(e=i.uZ){let t=(0,i.f3)((0,i.Jr)(e),n.GS),r=(0,i.f3)((0,i.Q)({shared:t}),n.bb,s);return t.ServiceRegistry.register(r),{shared:t,Packet:r}}(0,n.eW)(o,"createPacketServices")},94413:function(e,t,r){r.d(t,{i:function(){return l}});var n=r(95318),i=r(74462),a=class extends n.T7{static{(0,n.eW)(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},s=class extends n.kb{static{(0,n.eW)(this,"ArchitectureValueConverter")}runCustomConverter(e,t,r){if("ARCH_ICON"===e.name)return t.replace(/[()]/g,"").trim();if("ARCH_TEXT_ICON"===e.name)return t.replace(/["()]/g,"");if("ARCH_TITLE"===e.name)return t.replace(/[[\]]/g,"").trim()}},o={parser:{TokenBuilder:(0,n.eW)(()=>new a,"TokenBuilder"),ValueConverter:(0,n.eW)(()=>new s,"ValueConverter")}};function l(e=i.uZ){let t=(0,i.f3)((0,i.Jr)(e),n.GS),r=(0,i.f3)((0,i.Q)({shared:t}),n.Qr,o);return t.ServiceRegistry.register(r),{shared:t,Architecture:r}}(0,n.eW)(l,"createArchitectureServices")},57820:function(e,t,r){r.d(t,{z:function(){return o}});var n=r(95318),i=r(74462),a=class extends n.T7{static{(0,n.eW)(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},s={parser:{TokenBuilder:(0,n.eW)(()=>new a,"TokenBuilder"),ValueConverter:(0,n.eW)(()=>new n.nr,"ValueConverter")}};function o(e=i.uZ){let t=(0,i.f3)((0,i.Jr)(e),n.GS),r=(0,i.f3)((0,i.Q)({shared:t}),n.vn,s);return t.ServiceRegistry.register(r),{shared:t,GitGraph:r}}(0,n.eW)(o,"createGitGraphServices")},95318:function(e,t,r){r.d(t,{F_:function(){return C},GS:function(){return N},Qr:function(){return w},T7:function(){return M},WH:function(){return L},bb:function(){return $},eW:function(){return c},kb:function(){return _},nr:function(){return P},vn:function(){return b}});var n,i,a,s,o,l=r(74462),u=Object.defineProperty,c=(e,t)=>u(e,"name",{value:t,configurable:!0});c(function(e){return g.isInstance(e,"Architecture")},"isArchitecture");var d="Branch";c(function(e){return g.isInstance(e,d)},"isBranch");var h="Commit";c(function(e){return g.isInstance(e,h)},"isCommit");c(function(e){return g.isInstance(e,"Common")},"isCommon");var f="GitGraph";c(function(e){return g.isInstance(e,f)},"isGitGraph");c(function(e){return g.isInstance(e,"Info")},"isInfo");var p="Merge";c(function(e){return g.isInstance(e,p)},"isMerge");c(function(e){return g.isInstance(e,"Packet")},"isPacket");c(function(e){return g.isInstance(e,"PacketBlock")},"isPacketBlock");c(function(e){return g.isInstance(e,"Pie")},"isPie");c(function(e){return g.isInstance(e,"PieSection")},"isPieSection");var m=class extends l.$v{static{c(this,"MermaidAstReflection")}getAllTypes(){return["Architecture","Branch","Checkout","CherryPicking","Commit","Common","Direction","Edge","GitGraph","Group","Info","Junction","Merge","Packet","PacketBlock","Pie","PieSection","Service","Statement"]}computeIsSubtype(e,t){switch(e){case d:case"Checkout":case"CherryPicking":case h:case p:return this.isSubtype("Statement",t);case"Direction":return this.isSubtype(f,t);default:return!1}}getReferenceType(e){let t=`${e.container.$type}:${e.property}`;throw Error(`${t} is not a valid reference id.`)}getTypeMetaData(e){switch(e){case"Architecture":return{name:"Architecture",properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case"Branch":return{name:"Branch",properties:[{name:"name"},{name:"order"}]};case"Checkout":return{name:"Checkout",properties:[{name:"branch"}]};case"CherryPicking":return{name:"CherryPicking",properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case"Commit":return{name:"Commit",properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Common":return{name:"Common",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Edge":return{name:"Edge",properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case"GitGraph":return{name:"GitGraph",properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case"Group":return{name:"Group",properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case"Info":return{name:"Info",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Junction":return{name:"Junction",properties:[{name:"id"},{name:"in"}]};case"Merge":return{name:"Merge",properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Packet":return{name:"Packet",properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case"PacketBlock":return{name:"PacketBlock",properties:[{name:"end"},{name:"label"},{name:"start"}]};case"Pie":return{name:"Pie",properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case"PieSection":return{name:"PieSection",properties:[{name:"label"},{name:"value"}]};case"Service":return{name:"Service",properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case"Direction":return{name:"Direction",properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};default:return{name:e,properties:[]}}}},g=new m,y=c(()=>n??(n=(0,l.sC)('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","name":"Info","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"InfoGrammar"),T=c(()=>i??(i=(0,l.sC)(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","name":"Packet","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),v=c(()=>a??(a=(0,l.sC)('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","name":"Pie","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"PieGrammar"),E=c(()=>s??(s=(0,l.sC)('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","name":"Architecture","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LeftPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RightPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Arrow","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"ArchitectureGrammar"),R=c(()=>o??(o=(0,l.sC)(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","name":"GitGraph","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),A={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},k={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},I={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},x={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},S={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},N={AstReflection:c(()=>new m,"AstReflection")},C={Grammar:c(()=>y(),"Grammar"),LanguageMetaData:c(()=>A,"LanguageMetaData"),parser:{}},$={Grammar:c(()=>T(),"Grammar"),LanguageMetaData:c(()=>k,"LanguageMetaData"),parser:{}},L={Grammar:c(()=>v(),"Grammar"),LanguageMetaData:c(()=>I,"LanguageMetaData"),parser:{}},w={Grammar:c(()=>E(),"Grammar"),LanguageMetaData:c(()=>x,"LanguageMetaData"),parser:{}},b={Grammar:c(()=>R(),"Grammar"),LanguageMetaData:c(()=>S,"LanguageMetaData"),parser:{}},O={ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/accTitle[\t ]*:([^\n\r]*)/,TITLE:/title([\t ][^\n\r]*|)/},_=class extends l.tI{static{c(this,"AbstractMermaidValueConverter")}runConverter(e,t,r){let n=this.runCommonConverter(e,t,r);return(void 0===n&&(n=this.runCustomConverter(e,t,r)),void 0===n)?super.runConverter(e,t,r):n}runCommonConverter(e,t,r){let n=O[e.name];if(void 0===n)return;let i=n.exec(t);return null===i?void 0:void 0!==i[1]?i[1].trim().replace(/[\t ]{2,}/gm," "):void 0!==i[2]?i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,"\n"):void 0}},P=class extends _{static{c(this,"CommonValueConverter")}runCustomConverter(e,t,r){}},M=class extends l.PH{static{c(this,"AbstractMermaidTokenBuilder")}constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,r){let n=super.buildKeywordTokens(e,t,r);return n.forEach(e=>{this.keywords.has(e.name)&&void 0!==e.PATTERN&&(e.PATTERN=RegExp(e.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}};(class extends null{static{c(this,"CommonTokenBuilder")}})},3194:function(e,t,r){r.d(t,{Qc:function(){return s}}),r(57820),r(52730),r(16100),r(75243),r(94413);var n=r(95318),i={},a={info:(0,n.eW)(async()=>{let{createInfoServices:e}=await r.e("3085").then(r.bind(r,15970)),t=e().Info.parser.LangiumParser;i.info=t},"info"),packet:(0,n.eW)(async()=>{let{createPacketServices:e}=await r.e("1996").then(r.bind(r,89455)),t=e().Packet.parser.LangiumParser;i.packet=t},"packet"),pie:(0,n.eW)(async()=>{let{createPieServices:e}=await r.e("1824").then(r.bind(r,31764)),t=e().Pie.parser.LangiumParser;i.pie=t},"pie"),architecture:(0,n.eW)(async()=>{let{createArchitectureServices:e}=await r.e("161").then(r.bind(r,55845)),t=e().Architecture.parser.LangiumParser;i.architecture=t},"architecture"),gitGraph:(0,n.eW)(async()=>{let{createGitGraphServices:e}=await r.e("8751").then(r.bind(r,57327)),t=e().GitGraph.parser.LangiumParser;i.gitGraph=t},"gitGraph")};async function s(e,t){let r=a[e];if(!r)throw Error(`Unknown diagram type: ${e}`);!i[e]&&await r();let n=i[e].parse(t);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new o(n);return n.value}(0,n.eW)(s,"parse");var o=class extends Error{constructor(e){let t=e.lexerErrors.map(e=>e.message).join("\n");super(`Parsing failed: ${t} ${e.parserErrors.map(e=>e.message).join("\n")}`),this.result=e}static{(0,n.eW)(this,"MermaidParseError")}}},74462:function(e,t,r){function n(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$type}function i(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$refText}r.d(t,{uZ:()=>un,Q:()=>l7,Jr:()=>l3,f3:()=>l5,$v:()=>s,PH:()=>o0,tI:()=>o1,sC:()=>us});function a(e){return"object"==typeof e&&null!==e&&n(e.container)&&i(e.reference)&&"string"==typeof e.message}class s{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return n(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];!r&&(r=this.subtypes[e]={});let n=r[t];if(void 0!==n)return n;{let n=this.computeIsSubtype(e,t);return r[t]=n,n}}getAllSubTypes(e){let t=this.allSubtypes[e];if(t)return t;{let t=this.getAllTypes(),r=[];for(let n of t)this.isSubtype(n,e)&&r.push(n);return this.allSubtypes[e]=r,r}}}function o(e){return"object"==typeof e&&null!==e&&Array.isArray(e.content)}function l(e){return"object"==typeof e&&null!==e&&"object"==typeof e.tokenType}function u(e){return o(e)&&"string"==typeof e.fullText}class c{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){let e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){let e;let t=[],r=this.iterator();do void 0!==(e=r.next()).value&&t.push(e.value);while(!e.done);return t}toSet(){return new Set(this)}toMap(e,t){return new Map(this.map(r=>[e?e(r):r,t?t(r):r]))}toString(){return this.join()}concat(e){let t=e[Symbol.iterator]();return new c(()=>({first:this.startFn(),firstDone:!1}),e=>{let r;if(!e.firstDone){do if(!(r=this.nextFn(e.first)).done)return r;while(!r.done);e.firstDone=!0}do if(!(r=t.next()).done)return r;while(!r.done);return f})}join(e=","){let t;let r=this.iterator(),n="",i=!1;do!(t=r.next()).done&&(i&&(n+=e),n+=function(e){return"string"==typeof e?e:void 0===e?"undefined":"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e)}(t.value)),i=!0;while(!t.done);return n}indexOf(e,t=0){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(n>=t&&i.value===e)return n;i=r.next(),n++}return -1}every(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){let t=this.iterator(),r=0,n=t.next();for(;!n.done;)e(n.value,r),n=t.next(),r++}map(e){return new c(this.startFn,t=>{let{done:r,value:n}=this.nextFn(t);return r?f:{done:!1,value:e(n)}})}filter(e){return new c(this.startFn,t=>{let r;do if(!(r=this.nextFn(t)).done&&e(r.value))return r;while(!r.done);return f})}nonNullable(){return this.filter(e=>null!=e)}reduce(e,t){let r=this.iterator(),n=t,i=r.next();for(;!i.done;)n=void 0===n?i.value:e(n,i.value),i=r.next();return n}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){let n=e.next();if(n.done)return r;let i=this.recursiveReduce(e,t,r);return void 0===i?n.value:t(i,n.value)}find(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){let t=this.iterator(),r=0,n=t.next();for(;!n.done;){if(e(n.value))return r;n=t.next(),r++}return -1}includes(e){let t=this.iterator(),r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new c(()=>({this:this.startFn()}),t=>{do{if(t.iterator){let e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}let{done:r,value:n}=this.nextFn(t.this);if(!r){let r=e(n);if(!d(r))return{done:!1,value:r};t.iterator=r[Symbol.iterator]()}}while(t.iterator);return f})}flat(e){if(void 0===e&&(e=1),e<=0)return this;let t=e>1?this.flat(e-1):this;return new c(()=>({this:t.startFn()}),e=>{do{if(e.iterator){let t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}let{done:r,value:n}=t.nextFn(e.this);if(!r){if(!d(n))return{done:!1,value:n};e.iterator=n[Symbol.iterator]()}}while(e.iterator);return f})}head(){let e=this.iterator().next();if(!e.done)return e.value}tail(e=1){return new c(()=>{let t=this.startFn();for(let r=0;r({size:0,state:this.startFn()}),t=>(t.size++,t.size>e)?f:this.nextFn(t.state))}distinct(e){let t=new Set;return this.filter(r=>{let n=e?e(r):r;return!t.has(n)&&(t.add(n),!0)})}exclude(e,t){let r=new Set;for(let n of e){let e=t?t(n):n;r.add(e)}return this.filter(e=>{let n=t?t(e):e;return!r.has(n)})}}function d(e){return!!e&&"function"==typeof e[Symbol.iterator]}let h=new c(()=>void 0,()=>f),f=Object.freeze({done:!0,value:void 0});function p(...e){if(1===e.length){let t=e[0];if(t instanceof c)return t;if(d(t))return new c(()=>t[Symbol.iterator](),e=>e.next());if("number"==typeof t.length)return new c(()=>({index:0}),e=>e.index1?new c(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){let e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}if(t.array){if(t.arrIndex({iterators:(null==r?void 0:r.includeRoot)?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),e=>{for(e.pruned&&(e.iterators.pop(),e.pruned=!1);e.iterators.length>0;){let r=e.iterators[e.iterators.length-1].next();if(!r.done)return e.iterators.push(t(r.value)[Symbol.iterator]()),r;e.iterators.pop()}return f})}iterator(){let e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}function g(e){return new m(e,e=>o(e)?e.content:[],{includeRoot:!0})}(t7=t5||(t5={})).sum=function(e){return e.reduce((e,t)=>e+t,0)},t7.product=function(e){return e.reduce((e,t)=>e*t,0)},t7.min=function(e){return e.reduce((e,t)=>Math.min(e,t))},t7.max=function(e){return e.reduce((e,t)=>Math.max(e,t))};function y(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function T(e){if(!e)return;let{offset:t,end:r,range:n}=e;return{range:n,offset:t,end:r,length:r-t}}(t3=t9||(t9={}))[t3.Before=0]="Before",t3[t3.After=1]="After",t3[t3.OverlapFront=2]="OverlapFront",t3[t3.OverlapBack=3]="OverlapBack",t3[t3.Inside=4]="Inside";let v=/^[\w\p{L}]$/u;function E(e,t){return l(e)&&t.includes(e.tokenType.name)}class R extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function A(e){throw Error("Error! The input value was not handled.")}let k="AbstractRule",I="AbstractType",x="Condition",S="ValueLiteral",N="AbstractElement",C="BooleanLiteral",$="Conjunction",L="Disjunction",w="InferredType";function b(e){return ey.isInstance(e,w)}let O="Interface";function _(e){return ey.isInstance(e,O)}let P="Negation",M="ParameterReference",D="ParserRule";function Z(e){return ey.isInstance(e,D)}let U="SimpleType",F="TerminalRule";function G(e){return ey.isInstance(e,F)}let B="Type";function j(e){return ey.isInstance(e,B)}let K="Action";function V(e){return ey.isInstance(e,K)}let W="Alternatives";function H(e){return ey.isInstance(e,W)}let z="Assignment";function Y(e){return ey.isInstance(e,z)}let q="CharacterRange",X="CrossReference";function Q(e){return ey.isInstance(e,X)}let J="EndOfFile",ee="Group";function et(e){return ey.isInstance(e,ee)}let er="Keyword";function en(e){return ey.isInstance(e,er)}let ei="NegatedToken",ea="RegexToken",es="RuleCall";function eo(e){return ey.isInstance(e,es)}let el="TerminalAlternatives",eu="TerminalGroup",ec="TerminalRuleCall";function ed(e){return ey.isInstance(e,ec)}let eh="UnorderedGroup";function ef(e){return ey.isInstance(e,eh)}let ep="UntilToken",em="Wildcard";class eg extends s{getAllTypes(){return["AbstractElement","AbstractRule","AbstractType","Action","Alternatives","ArrayLiteral","ArrayType","Assignment","BooleanLiteral","CharacterRange","Condition","Conjunction","CrossReference","Disjunction","EndOfFile","Grammar","GrammarImport","Group","InferredType","Interface","Keyword","NamedArgument","NegatedToken","Negation","NumberLiteral","Parameter","ParameterReference","ParserRule","ReferenceType","RegexToken","ReturnType","RuleCall","SimpleType","StringLiteral","TerminalAlternatives","TerminalGroup","TerminalRule","TerminalRuleCall","Type","TypeAttribute","TypeDefinition","UnionType","UnorderedGroup","UntilToken","ValueLiteral","Wildcard"]}computeIsSubtype(e,t){switch(e){case K:case W:case z:case q:case X:case J:case ee:case er:case ei:case ea:case es:case el:case eu:case ec:case eh:case ep:case em:return this.isSubtype(N,t);case"ArrayLiteral":case"NumberLiteral":case"StringLiteral":return this.isSubtype(S,t);case"ArrayType":case"ReferenceType":case U:case"UnionType":return this.isSubtype("TypeDefinition",t);case C:return this.isSubtype(x,t)||this.isSubtype(S,t);case $:case L:case P:case M:return this.isSubtype(x,t);case w:case O:case B:return this.isSubtype(I,t);case D:return this.isSubtype(k,t)||this.isSubtype(I,t);case F:return this.isSubtype(k,t);default:return!1}}getReferenceType(e){let t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return I;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return k;case"Grammar:usedGrammars":return"Grammar";case"NamedArgument:parameter":case"ParameterReference:parameter":return"Parameter";case"TerminalRuleCall:rule":return F;default:throw Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case"AbstractElement":return{name:"AbstractElement",properties:[{name:"cardinality"},{name:"lookahead"}]};case"ArrayLiteral":return{name:"ArrayLiteral",properties:[{name:"elements",defaultValue:[]}]};case"ArrayType":return{name:"ArrayType",properties:[{name:"elementType"}]};case"BooleanLiteral":return{name:"BooleanLiteral",properties:[{name:"true",defaultValue:!1}]};case"Conjunction":return{name:"Conjunction",properties:[{name:"left"},{name:"right"}]};case"Disjunction":return{name:"Disjunction",properties:[{name:"left"},{name:"right"}]};case"Grammar":return{name:"Grammar",properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case"GrammarImport":return{name:"GrammarImport",properties:[{name:"path"}]};case"InferredType":return{name:"InferredType",properties:[{name:"name"}]};case"Interface":return{name:"Interface",properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case"NamedArgument":return{name:"NamedArgument",properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case"Negation":return{name:"Negation",properties:[{name:"value"}]};case"NumberLiteral":return{name:"NumberLiteral",properties:[{name:"value"}]};case"Parameter":return{name:"Parameter",properties:[{name:"name"}]};case"ParameterReference":return{name:"ParameterReference",properties:[{name:"parameter"}]};case"ParserRule":return{name:"ParserRule",properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case"ReferenceType":return{name:"ReferenceType",properties:[{name:"referenceType"}]};case"ReturnType":return{name:"ReturnType",properties:[{name:"name"}]};case"SimpleType":return{name:"SimpleType",properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case"StringLiteral":return{name:"StringLiteral",properties:[{name:"value"}]};case"TerminalRule":return{name:"TerminalRule",properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case"Type":return{name:"Type",properties:[{name:"name"},{name:"type"}]};case"TypeAttribute":return{name:"TypeAttribute",properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case"UnionType":return{name:"UnionType",properties:[{name:"types",defaultValue:[]}]};case"Action":return{name:"Action",properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case"Alternatives":return{name:"Alternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"Assignment":return{name:"Assignment",properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case"CharacterRange":return{name:"CharacterRange",properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case"CrossReference":return{name:"CrossReference",properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case"EndOfFile":return{name:"EndOfFile",properties:[{name:"cardinality"},{name:"lookahead"}]};case"Group":return{name:"Group",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case"Keyword":return{name:"Keyword",properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case"NegatedToken":return{name:"NegatedToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"RegexToken":return{name:"RegexToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case"RuleCall":return{name:"RuleCall",properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"TerminalAlternatives":return{name:"TerminalAlternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalGroup":return{name:"TerminalGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalRuleCall":return{name:"TerminalRuleCall",properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"UnorderedGroup":return{name:"UnorderedGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"UntilToken":return{name:"UntilToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"Wildcard":return{name:"Wildcard",properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}let ey=new eg;function eT(e,t){let r=e;for(;r;){if(t(r))return r;r=r.$container}}function ev(e){let t=function(e){for(;e.$container;)e=e.$container;return e}(e).$document;if(!t)throw Error("AST node has no document.");return t}function eE(e,t){if(!e)throw Error("Node must be an AstNode.");let r=null==t?void 0:t.range;return new c(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndexeE(e,t))}function eA(e,t){if(e){if((null==t?void 0:t.range)&&!ek(e,t.range))return new m(e,()=>[])}else throw Error("Root node must be an AstNode.");return new m(e,e=>eE(e,t),{includeRoot:!0})}function ek(e,t){var r;if(!t)return!0;let n=null===(r=e.$cstNode)||void 0===r?void 0:r.range;if(!n)return!1;return function(e,t){if(e.end.linet.end.line||e.start.line===t.end.line&&e.start.character>t.end.character)return t9.After;let r=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,n=e.end.linet9.After}function eI(e){return new c(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class eZ{visitChildren(e){for(let t in e){let r=e[t];e.hasOwnProperty(t)&&(void 0!==r.type?this.visit(r):Array.isArray(r)&&r.forEach(e=>{this.visit(e)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}let eU=/\r?\n/gm,eF=new eD,eG=new class e extends eZ{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){let t=String.fromCharCode(e.value);if(!this.multiline&&"\n"===t&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let e=ej(t);this.endRegexpStack.push(e),this.isStarting&&(this.startRegexp+=e)}}visitSet(e){if(!this.multiline){let t=new RegExp(this.regex.substring(e.loc.begin,e.loc.end));this.multiline=!!"\n".match(t)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){if("Group"!==e.type||!e.quantifier)super.visitChildren(e)}};function eB(e){return("string"==typeof e?new RegExp(e):e).test(" ")}function ej(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function eK(e,t){let r=new Set,n=e.rules.find(e=>Z(e)&&e.entry);if(!n)return new Set(e.rules);for(let i of[n].concat(e.rules.filter(e=>G(e)&&e.hidden)))(function e(t,r,n){r.add(t.name),eR(t).forEach(t=>{if(eo(t)||n&&ed(t)){let i=t.rule.ref;i&&!r.has(i.name)&&e(i,r,n)}})})(i,r,t);let i=new Set;for(let t of e.rules)(r.has(t.name)||G(t)&&t.hidden)&&i.add(t);return i}function eV(e,t,r){if(!e||!t)return;let n=eW(e,t,e.astNode,!0);if(0!==n.length)return r=void 0!==r?Math.max(0,Math.min(r,n.length-1)):0,n[r]}function eW(e,t,r,n){if(!n){let r=eT(e.grammarSource,Y);if(r&&r.feature===t)return[e]}return o(e)&&e.astNode===r?e.content.flatMap(e=>eW(e,t,r,!1)):[]}function eH(e){let t=e;return b(t)&&(V(t.$container)?t=t.$container.$container:Z(t.$container)?t=t.$container:A(t.$container)),function e(t,r,n){var i,a;function s(r,i){let a;return!eT(r,Y)&&(a=e(i,i,n)),n.set(t,a),a}if(n.has(t))return n.get(t);for(let e of(n.set(t,void 0),eR(r))){if(Y(e)&&"name"===e.feature.toLowerCase())return n.set(t,e),e;if(eo(e)&&Z(e.rule.ref))return s(e,e.rule.ref);else{;if(a=e,ey.isInstance(a,U)&&(null===(i=e.typeRef)||void 0===i?void 0:i.ref))return s(e,e.typeRef.ref)}}}(e,t,new Map)}function ez(e){return function e(t,r){if(r.has(t))return!0;r.add(t);for(let n of eR(t))if(eo(n)){if(!n.rule.ref||Z(n.rule.ref)&&!e(n.rule.ref,r))return!1}else if(Y(n))return!1;else if(V(n))return!1;return!!t.definition}(e,new Set)}function eY(e){if(e.inferredType)return e.inferredType.name;if(e.dataType)return e.dataType;if(e.returnType){let t=e.returnType.ref;if(t){if(Z(t))return t.name;if(_(t)||j(t))return t.name}}}function eq(e){var t,r;if(Z(e))return ez(e)?e.name:null!==(t=eY(e))&&void 0!==t?t:e.name;if(_(e)||j(e)||(r=e,ey.isInstance(r,"ReturnType")))return e.name;else if(V(e)){let t=function(e){var t;return e.inferredType?e.inferredType.name:(null===(t=e.type)||void 0===t?void 0:t.ref)?eq(e.type.ref):void 0}(e);if(t)return t}else if(b(e))return e.name;throw Error("Cannot get name of Unknown Type")}function eX(e){let t={s:!1,i:!1,u:!1},r=eJ(e.definition,t);return new RegExp(r,Object.entries(t).filter(([,e])=>e).map(([e])=>e).join(""))}let eQ=/[\s\S]/.source;function eJ(e,t){var r,n,i,a,s,o,l;if(r=e,ey.isInstance(r,el))return function(e){return e1(e.elements.map(e=>eJ(e)).join("|"),{cardinality:e.cardinality,lookahead:e.lookahead})}(e);if(n=e,ey.isInstance(n,eu))return function(e){return e1(e.elements.map(e=>eJ(e)).join(""),{cardinality:e.cardinality,lookahead:e.lookahead})}(e);else{;if(i=e,ey.isInstance(i,q))return function(e){return e.right?e1(`[${e0(e.left)}-${e0(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1}):e1(e0(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}(e);else if(ed(e)){let t=e.rule.ref;if(!t)throw Error("Missing rule reference.");return e1(eJ(t.definition),{cardinality:e.cardinality,lookahead:e.lookahead})}else{;if(a=e,ey.isInstance(a,ei))return function(e){return e1(`(?!${eJ(e.terminal)})${eQ}*?`,{cardinality:e.cardinality,lookahead:e.lookahead})}(e);else{;if(s=e,ey.isInstance(s,ep))return function(e){return e1(`${eQ}*?${eJ(e.terminal)}`,{cardinality:e.cardinality,lookahead:e.lookahead})}(e);else{;if(o=e,ey.isInstance(o,ea)){let r=e.regex.lastIndexOf("/"),n=e.regex.substring(1,r),i=e.regex.substring(r+1);return t&&(t.i=i.includes("i"),t.s=i.includes("s"),t.u=i.includes("u")),e1(n,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}else{;if(l=e,ey.isInstance(l,em))return e1(eQ,{cardinality:e.cardinality,lookahead:e.lookahead});else throw Error(`Invalid terminal element: ${null==e?void 0:e.$type}`)}}}}}}function e0(e){return ej(e.value)}function e1(e,t){var r;return((!1!==t.wrap||t.lookahead)&&(e=`(${null!==(r=t.lookahead)&&void 0!==r?r:""}${e})`),t.cardinality)?`${e}${t.cardinality}`:e}var e2,e4,e7,e3,e5,e9,e6,e8,te,tt,tr,tn,ti,ta,ts,to,tl,tu,tc,td,th,tf,tp,tm,tg,ty,tT,tv,tE,tR,tA,tk,tI,tx,tS,tN,tC,t$,tL,tw,tb,tO,t_,tP,tM,tD,tZ,tU,tF,tG,tB,tj,tK,tV,tW,tH,tz,tY,tq,tX,tQ,tJ,t0,t1,t2,t4,t7,t3,t5,t9,t6,t8,re,rt,rr,rn,ri,ra,rs,ro,rl,ru,rc,rd,rh,rf,rp,rm,rg,ry,rT,rv,rE,rR,rA,rk,rI,rx,rS,rN,rC,r$,rL,rw,rb,rO,r_,rP,rM,rD,rZ,rU,rF,rG,rB,rj,rK,rV,rW,rH,rz,rY,rq,rX,rQ,rJ,r0,r1,r2,r4,r7,r3,r5,r9,r6,r8,ne,nt,nr,nn,ni,na,ns,no,nl,nu,nc,nd,nh,nf,np,nm,ng,ny,nT,nv,nE,nR,nA,nk,nI,nx,nS,nN=r("82633"),nC=r("96433"),n$=r("73217"),nL=r("97345"),nw=r("29072"),nb=r("65521");function nO(e){function t(){}t.prototype=e;let r=new t;function n(){return typeof r.bar}return n(),n(),e}let n_=function(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var a=Array(i);++n{t.accept(e)})}}class n7 extends n4{constructor(e){super([]),this.idx=1,nV(this,nq(e,e=>void 0!==e))}set definition(e){}get definition(){return void 0!==this.referencedRule?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class n3 extends n4{constructor(e){super(e.definition),this.orgText="",nV(this,nq(e,e=>void 0!==e))}}class n5 extends n4{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,nV(this,nq(e,e=>void 0!==e))}}class n9 extends n4{constructor(e){super(e.definition),this.idx=1,nV(this,nq(e,e=>void 0!==e))}}class n6 extends n4{constructor(e){super(e.definition),this.idx=1,nV(this,nq(e,e=>void 0!==e))}}class n8 extends n4{constructor(e){super(e.definition),this.idx=1,nV(this,nq(e,e=>void 0!==e))}}class ie extends n4{constructor(e){super(e.definition),this.idx=1,nV(this,nq(e,e=>void 0!==e))}}class it extends n4{constructor(e){super(e.definition),this.idx=1,nV(this,nq(e,e=>void 0!==e))}}class ir extends n4{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,nV(this,nq(e,e=>void 0!==e))}}class ii{constructor(e){this.idx=1,nV(this,nq(e,e=>void 0!==e))}accept(e){e.visit(this)}}class ia{visit(e){switch(e.constructor){case n7:return this.visitNonTerminal(e);case n5:return this.visitAlternative(e);case n9:return this.visitOption(e);case n6:return this.visitRepetitionMandatory(e);case n8:return this.visitRepetitionMandatoryWithSeparator(e);case it:return this.visitRepetitionWithSeparator(e);case ie:return this.visitRepetition(e);case ir:return this.visitAlternation(e);case ii:return this.visitTerminal(e);case n3:return this.visitRule(e);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}var is=r("93130"),io=r("20869");let il=function(e,t){var r;return(0,io.Z)(e,function(e,n,i){return!(r=t(e,n,i))}),!!r};var iu=r("31739"),ic=r("8417");let id=function(e,t,r){var n=(0,iu.Z)(e)?is.Z:il;return r&&(0,ic.Z)(e,t,r)&&(t=void 0),n(e,(0,nH.Z)(t,3))};var ih=r("81723"),ip=Math.max;let im=function(e,t,r,n){e=(0,nG.Z)(e)?e:(0,nC.Z)(e),r=r&&!n?(0,nP.Z)(r):0;var i=e.length;return r<0&&(r=ip(i+r,0)),(0,nD.Z)(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&(0,ih.Z)(e,t,r)>-1},ig=function(e,t){for(var r=-1,n=null==e?0:e.length;++riv(e,t));if(e instanceof n7&&im(t,e))return!1;if(e instanceof n4)return e instanceof n7&&t.push(e),iT(e.definition,e=>iv(e,t));else return!1}function iE(e){if(e instanceof n7)return"SUBRULE";if(e instanceof n9)return"OPTION";if(e instanceof ir)return"OR";else if(e instanceof n6)return"AT_LEAST_ONE";else if(e instanceof n8)return"AT_LEAST_ONE_SEP";else if(e instanceof it)return"MANY_SEP";else if(e instanceof ie)return"MANY";else if(e instanceof ii)return"CONSUME";else throw Error("non exhaustive match")}class iR{walk(e,t=[]){(0,nN.Z)(e.definition,(r,n)=>{let i=nM(e.definition,n+1);if(r instanceof n7)this.walkProdRef(r,i,t);else if(r instanceof ii)this.walkTerminal(r,i,t);else if(r instanceof n5)this.walkFlat(r,i,t);else if(r instanceof n9)this.walkOption(r,i,t);else if(r instanceof n6)this.walkAtLeastOne(r,i,t);else if(r instanceof n8)this.walkAtLeastOneSep(r,i,t);else if(r instanceof it)this.walkManySep(r,i,t);else if(r instanceof ie)this.walkMany(r,i,t);else if(r instanceof ir)this.walkOr(r,i,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,r){}walkProdRef(e,t,r){}walkFlat(e,t,r){let n=t.concat(r);this.walk(e,n)}walkOption(e,t,r){let n=t.concat(r);this.walk(e,n)}walkAtLeastOne(e,t,r){let n=[new n9({definition:e.definition})].concat(t,r);this.walk(e,n)}walkAtLeastOneSep(e,t,r){let n=iA(e,t,r);this.walk(e,n)}walkMany(e,t,r){let n=[new n9({definition:e.definition})].concat(t,r);this.walk(e,n)}walkManySep(e,t,r){let n=iA(e,t,r);this.walk(e,n)}walkOr(e,t,r){let n=t.concat(r);(0,nN.Z)(e.definition,e=>{let t=new n5({definition:[e]});this.walk(t,n)})}}function iA(e,t,r){return[new n9({definition:[new ii({terminalType:e.separator})].concat(e.definition)})].concat(t,r)}var ik=r("38610");let iI=function(e){return e&&e.length?(0,ik.Z)(e):[]};var ix=r("71134");function iS(e){var t;if(e instanceof n7)return iS(e.referencedRule);if(e instanceof ii)return function(e){return[e.terminalType]}(e);if((t=e)instanceof n5||t instanceof n9||t instanceof ie||t instanceof n6||t instanceof n8||t instanceof it||t instanceof ii||t instanceof n3)return function(e){let t,r=[],n=e.definition,i=0,a=n.length>i,s=!0;for(;a&&s;)s=iv(t=n[i]),r=r.concat(iS(t)),i+=1,a=n.length>i;return iI(r)}(e);else{if(e instanceof ir)return function(e){let t=(0,nL.Z)(e.definition,e=>iS(e));return iI((0,ix.Z)(t))}(e);else throw Error("non exhaustive match")}}let iN="_~IN~_";class iC extends iR{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,r){}walkProdRef(e,t,r){let n=function(e,t){return e.name+t+iN}(e.referencedRule,e.idx)+this.topProd.name,i=iS(new n5({definition:t.concat(r)}));this.follows[n]=i}}var i$=r("61925"),iL=r("87317"),iw=r("87276"),ib=r("789");let iO=function(e){if("function"!=typeof e)throw TypeError("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}},i_=function(e,t){return((0,iu.Z)(e)?iw.Z:ib.Z)(e,iO((0,nH.Z)(t,3)))};var iP=r("18782"),iM=Math.max;let iD=function(e,t,r){var n=null==e?0:e.length;if(!n)return -1;var i=null==r?0:(0,nP.Z)(r);return i<0&&(i=iM(n+i,0)),(0,ih.Z)(e,t,i)};var iZ=r("81748"),iU=r("37627"),iF=r("94641"),iG=r("37479"),iB=r("46592"),ij=r("99976");let iK=function(e,t,r,n){var i=-1,a=iG.Z,s=!0,o=e.length,l=[],u=t.length;if(!o)return l;r&&(t=(0,nW.Z)(t,(0,nJ.Z)(r))),n?(a=iB.Z,s=!1):t.length>=200&&(a=ij.Z,s=!1,t=new iF.Z(t));e:for(;++i"number"==typeof e?im(t,e):void 0!==(0,iX.Z)(t,t=>e.from<=t&&t<=e.to))}class i9 extends eZ{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(!0!==this.found){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){im(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?void 0===i5(e,this.targetCharCodes)&&(this.found=!0):void 0!==i5(e,this.targetCharCodes)&&(this.found=!0)}}function i6(e,t){if(!(t instanceof RegExp))return void 0!==(0,iX.Z)(t,t=>im(e,t.charCodeAt(0)));{let r=i2(t),n=new i9(e);return n.visit(r),n.found}}let i8="PATTERN",ae="defaultMode",at="modes",ar="boolean"==typeof RegExp("(?:)").sticky,an=/[^\\][$]/,ai=/[^\\[][\^]|^\^/;function aa(e){let t=e.ignoreCase?"i":"";return RegExp(`^(?:${e.source})`,t)}function as(e){let t=e.ignoreCase?"iy":"y";return RegExp(`${e.source}`,t)}function ao(e){let t=e.PATTERN;if(n2(t))return!1;if((0,iP.Z)(t))return!0;if((0,nw.Z)(t,"exec"))return!0;else if((0,nD.Z)(t))return!1;else throw Error("non exhaustive match")}function al(e){return!!(0,nD.Z)(e)&&1===e.length&&e.charCodeAt(0)}let au={test:function(e){let t=e.length;for(let r=this.lastIndex;r(0,nD.Z)(e)?e.charCodeAt(0):e)}function ah(e,t,r){void 0===e[t]?e[t]=[r]:e[t].push(r)}let af=256,ap=[];function am(e){return ee.CATEGORIES))),t);t=t.concat(e),(0,n$.Z)(e)?n=!1:r=e}return t}(e);(function(e){(0,nN.Z)(e,e=>{!ax(e)&&(ak[aA]=e,e.tokenTypeIdx=aA++),aS(e)&&!(0,iu.Z)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),!aS(e)&&(e.CATEGORIES=[]),!function(e){return(0,nw.Z)(e,"categoryMatches")}(e)&&(e.categoryMatches=[]),!function(e){return(0,nw.Z)(e,"categoryMatchesMap")}(e)&&(e.categoryMatchesMap={})})})(t),function(e){(0,nN.Z)(e,e=>{(function e(t,r){(0,nN.Z)(t,e=>{r.categoryMatchesMap[e.tokenTypeIdx]=!0}),(0,nN.Z)(r.CATEGORIES,n=>{let i=t.concat(r);!im(i,n)&&e(i,n)})})([],e)})}(t),function(e){(0,nN.Z)(e,e=>{e.categoryMatches=[],(0,nN.Z)(e.categoryMatchesMap,(t,r)=>{e.categoryMatches.push(ak[r].tokenTypeIdx)})})}(t),(0,nN.Z)(t,e=>{e.isParent=e.categoryMatches.length>0})}function ax(e){return(0,nw.Z)(e,"tokenTypeIdx")}function aS(e){return(0,nw.Z)(e,"CATEGORIES")}function aN(e){return(0,nw.Z)(e,"tokenTypeIdx")}(e2=t6||(t6={}))[e2.MISSING_PATTERN=0]="MISSING_PATTERN",e2[e2.INVALID_PATTERN=1]="INVALID_PATTERN",e2[e2.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",e2[e2.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",e2[e2.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",e2[e2.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",e2[e2.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",e2[e2.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",e2[e2.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",e2[e2.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",e2[e2.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",e2[e2.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",e2[e2.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",e2[e2.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",e2[e2.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",e2[e2.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",e2[e2.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",e2[e2.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE";let aC={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:["\n","\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:{buildUnableToPopLexerModeMessage:e=>`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`,buildUnexpectedCharactersMessage:(e,t,r,n,i)=>`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${r} characters.`},traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(aC);class a${constructor(e,t=aC){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(!0!==this.traceInitPerf)return t();{this.traceInitIndent++;let r=Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${e}>`);let{time:n,value:i}=av(t),a=n>10?console.warn:console.log;return this.traceInitIndent time: ${n}ms`),this.traceInitIndent--,i}},"boolean"==typeof t)throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported");this.config=nV({},aC,t);let r=this.config.traceInitPerf;!0===r?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):"number"==typeof r&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let r;let n=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===aC.lineTerminatorsPattern)this.config.lineTerminatorsPattern=au;else if(this.config.lineTerminatorCharacters===aC.lineTerminatorCharacters)throw Error("Error: Missing property on the Lexer config.\n For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS");if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),(0,iu.Z)(e)?r={modes:{defaultMode:(0,nb.Z)(e)},defaultMode:ae}:(n=!1,r=(0,nb.Z)(e))}),!1===this.config.skipValidations&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(e,t,r){let n=[];return!(0,nw.Z)(e,ae)&&n.push({message:"A MultiMode Lexer cannot be initialized without a <"+ae+"> property in its definition\n",type:t6.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),!(0,nw.Z)(e,at)&&n.push({message:"A MultiMode Lexer cannot be initialized without a <"+at+"> property in its definition\n",type:t6.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,nw.Z)(e,at)&&(0,nw.Z)(e,ae)&&!(0,nw.Z)(e.modes,e.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${ae}: <${e.defaultMode}>which does not exist +`,type:t6.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,nw.Z)(e,at)&&(0,nN.Z)(e.modes,(e,t)=>{(0,nN.Z)(e,(r,i)=>{if((0,i$.Z)(r))n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${t}> at index: <${i}> +`,type:t6.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if((0,nw.Z)(r,"LONGER_ALT")){let i=(0,iu.Z)(r.LONGER_ALT)?r.LONGER_ALT:[r.LONGER_ALT];(0,nN.Z)(i,i=>{!(0,i$.Z)(i)&&!im(e,i)&&n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${i.name}> on token <${r.name}> outside of mode <${t}> +`,type:t6.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),n}(r,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(function(e,t,r){let n=[],i=!1,a=i_(iY((0,ix.Z)((0,nC.Z)(e.modes))),e=>e[i8]===a$.NA),s=ad(r);return t&&(0,nN.Z)(a,e=>{let t=ac(e,s);if(!1!==t){let r={message:function(e,t){if(t.issue===t6.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern. + The problem is in the <${e.name}> Token Type + Root cause: ${t.errMsg}. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===t6.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. + The problem is in the <${e.name}> Token Type + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}(e,t),type:t.issue,tokenType:e};n.push(r)}else(0,nw.Z)(e,"LINE_BREAKS")?!0===e.LINE_BREAKS&&(i=!0):i6(s,e.PATTERN)&&(i=!0)}),t&&!i&&n.push({message:"Warning: No LINE_BREAKS Found.\n This Lexer has been defined to track line and column information,\n But none of the Token Types can be identified as matching a line terminator.\n See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS \n for details.",type:t6.NO_LINE_BREAKS_FLAGS}),n}(r,this.trackStartLines,this.config.lineTerminatorCharacters))})),r.modes=r.modes?r.modes:{},(0,nN.Z)(r.modes,(e,t)=>{r.modes[t]=i_(e,e=>(0,i$.Z)(e))});let i=(0,nj.Z)(r.modes);if((0,nN.Z)(r.modes,(e,r)=>{this.TRACE_INIT(`Mode: <${r}> processing`,()=>{if(this.modes.push(r),!1===this.config.skipValidations&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(e,t){let r=[],n=function(e){let t=(0,iU.Z)(e,e=>!(0,nw.Z)(e,i8)),r=(0,nL.Z)(t,e=>({message:"Token Type: ->"+e.name+"<- missing static 'PATTERN' property",type:t6.MISSING_PATTERN,tokenTypes:[e]}));return{errors:r,valid:iz(e,t)}}(e);r=r.concat(n.errors);let i=function(e){let t=(0,iU.Z)(e,e=>{let t=e[i8];return!n2(t)&&!(0,iP.Z)(t)&&!(0,nw.Z)(t,"exec")&&!(0,nD.Z)(t)}),r=(0,nL.Z)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:t6.INVALID_PATTERN,tokenTypes:[e]}));return{errors:r,valid:iz(e,t)}}(n.valid),a=i.valid;return r=(r=(r=(r=(r=r.concat(i.errors)).concat(function(e){let t=[],r=(0,iU.Z)(e,e=>n2(e[i8]));return t=(t=(t=(t=(t=t.concat(function(e){class t extends eZ{constructor(){super(...arguments),this.found=!1}visitEndAnchor(e){this.found=!0}}let r=(0,iU.Z)(e,e=>{let r=e.PATTERN;try{let e=i2(r),n=new t;return n.visit(e),n.found}catch(e){return an.test(r.source)}});return(0,nL.Z)(r,e=>({message:"Unexpected RegExp Anchor Error:\n Token Type: ->"+e.name+"<- static 'PATTERN' cannot contain end of input anchor '$'\n See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.",type:t6.EOI_ANCHOR_FOUND,tokenTypes:[e]}))}(r))).concat(function(e){class t extends eZ{constructor(){super(...arguments),this.found=!1}visitStartAnchor(e){this.found=!0}}let r=(0,iU.Z)(e,e=>{let r=e.PATTERN;try{let e=i2(r),n=new t;return n.visit(e),n.found}catch(e){return ai.test(r.source)}});return(0,nL.Z)(r,e=>({message:"Unexpected RegExp Anchor Error:\n Token Type: ->"+e.name+"<- static 'PATTERN' cannot contain start of input anchor '^'\n See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.",type:t6.SOI_ANCHOR_FOUND,tokenTypes:[e]}))}(r))).concat(function(e){let t=(0,iU.Z)(e,e=>{let t=e[i8];return t instanceof RegExp&&(t.multiline||t.global)});return(0,nL.Z)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:t6.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[e]}))}(r))).concat(function(e){let t=[],r=(0,nL.Z)(e,r=>(0,iZ.Z)(e,(e,n)=>(r.PATTERN.source===n.PATTERN.source&&!im(t,n)&&n.PATTERN!==a$.NA&&(t.push(n),e.push(n)),e),[]));r=iY(r);let n=(0,iU.Z)(r,e=>e.length>1);return(0,nL.Z)(n,e=>{let t=(0,nL.Z)(e,e=>e.name),r=iq(e).PATTERN;return{message:`The same RegExp pattern ->${r}<-has been used in all of the following Token Types: ${t.join(", ")} <-`,type:t6.DUPLICATE_PATTERNS_FOUND,tokenTypes:e}})}(r))).concat(function(e){let t=(0,iU.Z)(e,e=>e.PATTERN.test(""));return(0,nL.Z)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' must not match an empty string",type:t6.EMPTY_MATCH_PATTERN,tokenTypes:[e]}))}(r))}(a))).concat(function(e){let t=(0,iU.Z)(e,e=>{if(!(0,nw.Z)(e,"GROUP"))return!1;let t=e.GROUP;return t!==a$.SKIPPED&&t!==a$.NA&&!(0,nD.Z)(t)});return(0,nL.Z)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:t6.INVALID_GROUP_TYPE_FOUND,tokenTypes:[e]}))}(a))).concat(function(e,t){let r=(0,iU.Z)(e,e=>void 0!==e.PUSH_MODE&&!im(t,e.PUSH_MODE));return(0,nL.Z)(r,e=>({message:`Token Type: ->${e.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${e.PUSH_MODE}<-which does not exist`,type:t6.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[e]}))}(a,t))).concat(function(e){let t=[],r=(0,iZ.Z)(e,(e,t,r)=>{let n=t.PATTERN;return n===a$.NA?e:((0,nD.Z)(n)?e.push({str:n,idx:r,tokenType:t}):n2(n)&&function(e){return void 0===(0,iX.Z)([".","\\","[","]","|","^","$","(",")","?","*","+","{"],t=>-1!==e.source.indexOf(t))}(n)&&e.push({str:n.source,idx:r,tokenType:t}),e)},[]);return(0,nN.Z)(e,(e,n)=>{(0,nN.Z)(r,({str:r,idx:i,tokenType:a})=>{if(n${a.name}<- can never be matched. +Because it appears AFTER the Token Type ->${e.name}<-in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:r,type:t6.UNREACHABLE_PATTERN,tokenTypes:[e,a]})}})}),t}(a))}(e,i))}),(0,n$.Z)(this.lexerDefinitionErrors)){let n;aI(e),this.TRACE_INIT("analyzeTokenTypes",()=>{n=function(e,t){let r,n,i,a,s,o,l,u,c,d,h,f;let p=(t=(0,iL.Z)(t,{useSticky:ar,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r","\n"],tracer:(e,t)=>t()})).tracer;p("initCharCodeToOptimizedIndexMap",()=>{(function(){if((0,n$.Z)(ap)){ap=Array(65536);for(let e=0;e<65536;e++)ap[e]=e>255?255+~~(e/255):e}})()}),p("Reject Lexer.NA",()=>{r=i_(e,e=>e[i8]===a$.NA)});let m=!1;p("Transform Patterns",()=>{m=!1,n=(0,nL.Z)(r,e=>{let r=e[i8];if(n2(r)){let e=r.source;return 1!==e.length||"^"===e||"$"===e||"."===e||r.ignoreCase?2!==e.length||"\\"!==e[0]||im(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],e[1])?t.useSticky?as(r):aa(r):e[1]:e}if((0,iP.Z)(r))return m=!0,{exec:r};if("object"==typeof r)return m=!0,r;else if("string"==typeof r){if(1===r.length)return r;{let e=new RegExp(r.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"));return t.useSticky?as(e):aa(e)}}else throw Error("non exhaustive match")})}),p("misc mapping",()=>{i=(0,nL.Z)(r,e=>e.tokenTypeIdx),a=(0,nL.Z)(r,e=>{let t=e.GROUP;if(t!==a$.SKIPPED){if((0,nD.Z)(t))return t;if((0,i$.Z)(t))return!1;else throw Error("non exhaustive match")}}),s=(0,nL.Z)(r,e=>{let t=e.LONGER_ALT;if(t)return(0,iu.Z)(t)?(0,nL.Z)(t,e=>iD(r,e)):[iD(r,t)]}),o=(0,nL.Z)(r,e=>e.PUSH_MODE),l=(0,nL.Z)(r,e=>(0,nw.Z)(e,"POP_MODE"))}),p("Line Terminator Handling",()=>{let e=ad(t.lineTerminatorCharacters);u=(0,nL.Z)(r,e=>!1),"onlyOffset"!==t.positionTracking&&(u=(0,nL.Z)(r,t=>(0,nw.Z)(t,"LINE_BREAKS")?!!t.LINE_BREAKS:!1===ac(t,e)&&i6(e,t.PATTERN)))}),p("Misc Mapping #2",()=>{c=(0,nL.Z)(r,ao),d=(0,nL.Z)(n,al),h=(0,iZ.Z)(r,(e,t)=>{let r=t.GROUP;return(0,nD.Z)(r)&&r!==a$.SKIPPED&&(e[r]=[]),e},{}),f=(0,nL.Z)(n,(e,t)=>({pattern:n[t],longerAlt:s[t],canLineTerminator:u[t],isCustom:c[t],short:d[t],group:a[t],push:o[t],pop:l[t],tokenTypeIdx:i[t],tokenType:r[t]}))});let g=!0,y=[];return!t.safeMode&&p("First Char Optimization",()=>{y=(0,iZ.Z)(r,(e,r,n)=>{if("string"==typeof r.PATTERN)ah(e,am(r.PATTERN.charCodeAt(0)),f[n]);else if((0,iu.Z)(r.START_CHARS_HINT)){let t;(0,nN.Z)(r.START_CHARS_HINT,r=>{let i=am("string"==typeof r?r.charCodeAt(0):r);t!==i&&(t=i,ah(e,i,f[n]))})}else if(n2(r.PATTERN)){if(r.PATTERN.unicode)g=!1,t.ensureOptimizations&&iQ(`${i7} Unable to analyze < ${r.PATTERN.toString()} > pattern. + The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let i=function(e,t=!1){try{let t=i2(e);return function e(t,r,n){switch(t.type){case"Disjunction":for(let i=0;i{if("number"==typeof e)i3(e,r,n);else if(!0===n)for(let t=e.from;t<=e.to;t++)i3(t,r,n);else{for(let t=e.from;t<=e.to&&t=af){let t=e.from>=af?e.from:af,n=e.to,i=am(t),a=am(n);for(let e=i;e<=a;e++)r[e]=e}}});break;case"Group":e(a.value,r,n);break;default:throw Error("Non Exhaustive Match")}let s=void 0!==a.quantifier&&0===a.quantifier.atLeast;if("Group"===a.type&&!1===function e(t){let r=t.quantifier;return!!r&&0===r.atLeast||!!t.value&&((0,iu.Z)(t.value)?iT(t.value,e):e(t.value))}(a)||"Group"!==a.type&&!1===s)break}break;default:throw Error("non exhaustive match!")}return(0,nC.Z)(r)}(t.value,{},t.flags.ignoreCase)}catch(r){if(r.message===i4)t&&iJ(`${i7} Unable to optimize: < ${e.toString()} > + Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let r="";t&&(r="\n This will disable the lexer's first char optimizations.\n See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details."),iQ(`${i7} + Failed parsing: < ${e.toString()} > + Using the @chevrotain/regexp-to-ast library + Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}(r.PATTERN,t.ensureOptimizations);(0,n$.Z)(i)&&(g=!1),(0,nN.Z)(i,t=>{ah(e,t,f[n])})}}else t.ensureOptimizations&&iQ(`${i7} TokenType: <${r.name}> is using a custom token pattern without providing parameter. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),g=!1;return e},[])}),{emptyGroups:h,patternIdxToConfig:f,charCodeToPatternIdxToConfig:y,hasCustom:m,canBeOptimized:g}}(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[r]=n.patternIdxToConfig,this.charCodeToPatternIdxToConfig[r]=n.charCodeToPatternIdxToConfig,this.emptyGroups=nV({},this.emptyGroups,n.emptyGroups),this.hasCustom=n.hasCustom||this.hasCustom,this.canModeBeOptimized[r]=n.canBeOptimized}})}),this.defaultMode=r.defaultMode,!(0,n$.Z)(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling)throw Error("Errors detected in definition of Lexer:\n"+(0,nL.Z)(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n"));(0,nN.Z)(this.lexerDefinitionWarning,e=>{iJ(e.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(ar?(this.chopInput=ag.Z,this.match=this.matchWithTest):(this.updateLastIndex=ay.Z,this.match=this.matchWithExec),n&&(this.handleModes=ay.Z),!1===this.trackStartLines&&(this.computeNewColumn=ag.Z),!1===this.trackEndLines&&(this.updateTokenEndLineColumnLocation=ay.Z),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let e=(0,iZ.Z)(this.canModeBeOptimized,(e,t,r)=>(!1===t&&e.push(r),e),[]);if(t.ensureOptimizations&&!(0,n$.Z)(e))throw Error(`Lexer Modes: < ${e.join(", ")} > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{i0={}}),this.TRACE_INIT("toFastProperties",()=>{nO(this)})})}tokenize(e,t=this.defaultMode){if(!(0,n$.Z)(this.lexerDefinitionErrors))throw Error("Unable to Tokenize because Errors detected in definition of Lexer:\n"+(0,nL.Z)(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n"));return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let r,n,i,a,s,o,l,u,c,d,h,f,p,m,g,y,T;let v=e,E=v.length,R=0,A=0,k=Array(this.hasCustom?0:Math.floor(e.length/10)),I=[],x=this.trackStartLines?1:void 0,S=this.trackStartLines?1:void 0,N=function(e){let t={},r=(0,nj.Z)(e);return(0,nN.Z)(r,r=>{let n=e[r];if((0,iu.Z)(n))t[r]=[];else throw Error("non exhaustive match")}),t}(this.emptyGroups),C=this.trackStartLines,$=this.config.lineTerminatorsPattern,L=0,w=[],b=[],O=[],_=[];function P(){return w}function M(e){let t=b[am(e)];return void 0===t?_:t}Object.freeze(_);let D=e=>{if(1===O.length&&void 0===e.tokenType.PUSH_MODE){let t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);I.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{O.pop();let e=(0,aT.Z)(O);w=this.patternIdxToConfig[e],b=this.charCodeToPatternIdxToConfig[e],L=w.length;let t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;y=b&&t?M:P}};function Z(e){O.push(e),b=this.charCodeToPatternIdxToConfig[e],L=(w=this.patternIdxToConfig[e]).length,L=w.length;let t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;y=b&&t?M:P}Z.call(this,t);let U=this.config.recoveryEnabled;for(;Ro.length){o=a,l=u,T=t;break}}}break}}if(null!==o){if(c=o.length,void 0!==(d=T.group)&&(h=T.tokenTypeIdx,f=this.createTokenInstance(o,R,h,T.tokenType,x,S,c),this.handlePayload(f,l),!1===d?A=this.addToken(k,A,f):N[d].push(f)),e=this.chopInput(e,c),R+=c,S=this.computeNewColumn(S,c),!0===C&&!0===T.canLineTerminator){let e,t,r=0;$.lastIndex=0;do!0===(e=$.test(o))&&(t=$.lastIndex-1,r++);while(!0===e);0!==r&&(x+=r,S=c-t,this.updateTokenEndLineColumnLocation(f,d,t,r,x,S,c))}this.handleModes(T,D,Z,f)}else{let t=R,r=x,i=S,a=!1===U;for(;!1===a&&R ${aL(e)} <--`:`token of type --> ${e.name} <--`;return`Expecting ${i} but found --> '${t.image}' <--`},buildNotAllInputParsedMessage:({firstRedundant:e,ruleName:t})=>"Redundant input, expecting EOF but found: "+e.image,buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:r,customUserDescription:n,ruleName:i}){let a="Expecting: ",s="\nbut found: '"+iq(t).image+"'";if(n)return a+n+s;{let t=(0,iZ.Z)(e,(e,t)=>e.concat(t),[]),r=(0,nL.Z)(t,e=>`[${(0,nL.Z)(e,e=>aL(e)).join(", ")}]`),n=(0,nL.Z)(r,(e,t)=>` ${t+1}. ${e}`);return a+`one of these possible Token sequences: +${n.join("\n")}`+s}},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:r,ruleName:n}){let i="Expecting: ",a="\nbut found: '"+iq(t).image+"'";if(r)return i+r+a;{let t=(0,nL.Z)(e,e=>`[${(0,nL.Z)(e,e=>aL(e)).join(",")}]`);return i+`expecting at least one iteration which starts with one of these possible Token sequences:: + <${t.join(" ,")}>`+a}}};Object.freeze(aV);let aW={buildRuleNotFoundError:(e,t)=>"Invalid grammar, reference to a rule which is not defined: ->"+t.nonTerminalName+"<-\ninside top level rule: ->"+e.name+"<-"},aH={buildDuplicateFoundError(e,t){var r;let n=e.name,i=iq(t),a=i.idx,s=iE(i);let o=(r=i)instanceof ii?r.terminalType.name:r instanceof n7?r.nonTerminalName:"",l=`->${s}${a>0?a:""}<- ${o?`with argument: ->${o}<-`:""} + appears more than once (${t.length} times) in the top level rule: ->${n}<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return l=(l=l.replace(/[ \t]+/g," ")).replace(/\s\s+/g,"\n")},buildNamespaceConflictError:e=>`Namespace conflict found in grammar. +The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${e.name}>. +To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`,buildAlternationPrefixAmbiguityError(e){let t=(0,nL.Z)(e.prefixPath,e=>aL(e)).join(", "),r=0===e.alternation.idx?"":e.alternation.idx;return`Ambiguous alternatives: <${e.ambiguityIndices.join(" ,")}> due to common lookahead prefix +in inside <${e.topLevelRule.name}> Rule, +<${t}> may appears as a prefix path in all these alternatives. +See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`},buildAlternationAmbiguityError(e){let t=(0,nL.Z)(e.prefixPath,e=>aL(e)).join(", "),r=0===e.alternation.idx?"":e.alternation.idx,n=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(" ,")}> in inside <${e.topLevelRule.name}> Rule, +<${t}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +`+"For Further details."},buildEmptyRepetitionError(e){let t=iE(e.repetition);return 0!==e.repetition.idx&&(t+=e.repetition.idx),`The repetition <${t}> within Rule <${e.topLevelRule.name}> can never consume any tokens. +This could lead to an infinite loop.`},buildTokenNameError:e=>"deprecated",buildEmptyAlternationError:e=>`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}> in inside <${e.topLevelRule.name}> Rule. +Only the last alternative may be an empty alternative.`,buildTooManyAlternativesError:e=>`An Alternation cannot have more than 256 alternatives: + inside <${e.topLevelRule.name}> Rule. + has ${e.alternation.definition.length+1} alternatives.`,buildLeftRecursionError(e){let t=e.topLevelRule.name,r=(0,nL.Z)(e.leftRecursionPath,e=>e.name),n=`${t} --> ${r.concat([t]).join(" --\x3e ")}`;return`Left Recursion found in grammar. +rule: <${t}> can be invoked from itself (directly or indirectly) +without consuming any Tokens. The grammar path that causes this is: + ${n} + To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError:e=>"deprecated",buildDuplicateRuleNameError(e){let t;return t=e.topLevelRule instanceof n3?e.topLevelRule.name:e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};class az extends ia{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){(0,nN.Z)((0,nC.Z)(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{let t=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:t,type:rt.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}let aY=function(e,t){return(0,iV.Z)((0,nL.Z)(e,t),1)};var aq=r("49790");let aX=function(e,t,r,n){for(var i=-1,a=null==e?0:e.length;++i{!1===(0,n$.Z)(e.definition)&&(n=a(e.definition))}),n;else if(t instanceof ii)r.push(t.terminalType);else throw Error("non exhaustive match");i++}return n.push({partialPath:r,suffixDef:nM(e,i)}),n}function se(e,t,r,n){let i="EXIT_NONE_TERMINAL",a=[i],s="EXIT_ALTERNATIVE",o=!1,l=t.length,u=l-n-1,c=[],d=[];for(d.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!(0,n$.Z)(d);){let e=d.pop();if(e===s){o&&(0,aT.Z)(d).idx<=u&&d.pop();continue}let n=e.def,h=e.idx,f=e.ruleStack,p=e.occurrenceStack;if((0,n$.Z)(n))continue;let m=n[0];if(m===i){let e={idx:h,def:nM(n),ruleStack:a1(f),occurrenceStack:a1(p)};d.push(e)}else if(m instanceof ii){if(h=0;e--){let t={idx:h,def:m.definition[e].definition.concat(nM(n)),ruleStack:f,occurrenceStack:p};d.push(t),d.push(s)}else if(m instanceof n5)d.push({idx:h,def:m.definition.concat(nM(n)),ruleStack:f,occurrenceStack:p});else if(m instanceof n3)d.push(function(e,t,r,n){let i=(0,nb.Z)(r);i.push(e.name);let a=(0,nb.Z)(n);return a.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:a}}(m,h,f,p));else throw Error("non exhaustive match")}return c}function st(e){if(e instanceof n9||"Option"===e)return t8.OPTION;if(e instanceof ie||"Repetition"===e)return t8.REPETITION;if(e instanceof n6||"RepetitionMandatory"===e)return t8.REPETITION_MANDATORY;else if(e instanceof n8||"RepetitionMandatoryWithSeparator"===e)return t8.REPETITION_MANDATORY_WITH_SEPARATOR;else if(e instanceof it||"RepetitionWithSeparator"===e)return t8.REPETITION_WITH_SEPARATOR;else if(e instanceof ir||"Alternation"===e)return t8.ALTERNATION;else throw Error("non exhaustive match")}function sr(e){let{occurrence:t,rule:r,prodType:n,maxLookahead:i}=e,a=st(n);return a===t8.ALTERNATION?sc(t,r,i):sd(t,r,a,i)}(e3=t8||(t8={}))[e3.OPTION=0]="OPTION",e3[e3.REPETITION=1]="REPETITION",e3[e3.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",e3[e3.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",e3[e3.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",e3[e3.ALTERNATION=5]="ALTERNATION";function sn(e,t,r,n){let i=e.length,a=iT(e,e=>iT(e,e=>1===e.length));if(t)return function(t){let n=(0,nL.Z)(t,e=>e.GATE);for(let t=0;t(0,ix.Z)(e)),r=(0,iZ.Z)(t,(e,t,r)=>((0,nN.Z)(t,t=>{!(0,nw.Z)(e,t.tokenTypeIdx)&&(e[t.tokenTypeIdx]=r),(0,nN.Z)(t.categoryMatches,t=>{!(0,nw.Z)(e,t)&&(e[t]=r)})}),e),{});return function(){return r[this.LA(1).tokenTypeIdx]}}}function si(e,t,r){let n=iT(e,e=>1===e.length),i=e.length;if(!n||r)return function(){t:for(let r=0;r(e[t.tokenTypeIdx]=!0,(0,nN.Z)(t.categoryMatches,t=>{e[t]=!0}),e),[]);return function(){return!0===e[this.LA(1).tokenTypeIdx]}}}}class sa extends iR{constructor(e,t,r){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,r,n){return e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.restDef=r.concat(n),!0)}walkOption(e,t,r){!this.checkIsTarget(e,t8.OPTION,t,r)&&super.walkOption(e,t,r)}walkAtLeastOne(e,t,r){!this.checkIsTarget(e,t8.REPETITION_MANDATORY,t,r)&&super.walkOption(e,t,r)}walkAtLeastOneSep(e,t,r){!this.checkIsTarget(e,t8.REPETITION_MANDATORY_WITH_SEPARATOR,t,r)&&super.walkOption(e,t,r)}walkMany(e,t,r){!this.checkIsTarget(e,t8.REPETITION,t,r)&&super.walkOption(e,t,r)}walkManySep(e,t,r){!this.checkIsTarget(e,t8.REPETITION_WITH_SEPARATOR,t,r)&&super.walkOption(e,t,r)}}class ss extends ia{constructor(e,t,r){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=r,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(void 0===this.targetRef||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,t8.OPTION)}visitRepetition(e){this.checkIsTarget(e,t8.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,t8.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,t8.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,t8.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,t8.ALTERNATION)}}function so(e){let t=Array(e);for(let r=0;ra8([e],1)),n=so(r.length),i=(0,nL.Z)(r,e=>{let t={};return(0,nN.Z)(e,e=>{let r=sl(e.partialPath);(0,nN.Z)(r,e=>{t[e]=!0})}),t}),a=r;for(let e=1;e<=t;e++){let r=a;a=so(r.length);for(let s=0;s{let t=sl(e.partialPath);(0,nN.Z)(t,e=>{i[s][e]=!0})})}}}}return n}function sc(e,t,r,n){let i=new ss(e,t8.ALTERNATION,n);return t.accept(i),su(i.result,r)}function sd(e,t,r,n){let i=new ss(e,r);t.accept(i);let a=i.result,s=new sa(t,e,r).startWalking(),o=new n5({definition:a});return su([o,new n5({definition:s})],n)}function sh(e,t){r:for(let r=0;riT(e,e=>iT(e,e=>(0,n$.Z)(e.categoryMatches))))}function sp(e){return`${iE(e)}_#_${e.idx}_#_${sm(e)}`}function sm(e){return e instanceof ii?e.terminalType.name:e instanceof n7?e.nonTerminalName:""}class sg extends ia{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}}class sy extends ia{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}class sT extends ia{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}}let sv="MismatchedTokenException",sE="NoViableAltException",sR="EarlyExitException",sA="NotAllInputParsedException",sk=[sv,sE,sR,sA];function sI(e){return im(sk,e.name)}Object.freeze(sk);class sx extends Error{constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}class sS extends sx{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=sv}}class sN extends sx{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=sE}}class sC extends sx{constructor(e,t){super(e,t),this.name=sA}}class s$ extends sx{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=sR}}let sL={},sw="InRuleRecoveryException";class sb extends Error{constructor(e){super(e),this.name=sw}}function sO(e,t,r,n,i,a,s){let o=this.getKeyForAutomaticLookahead(n,i),l=this.firstAfterRepMap[o];if(void 0===l){let e=this.getCurrRuleFullName();l=new a(this.getGAstProductions()[e],i).startWalking(),this.firstAfterRepMap[o]=l}let u=l.token,c=l.occurrence,d=l.isEndOfRule;if(1===this.RULE_STACK.length&&d&&void 0===u&&(u=aB,c=1),void 0!==u&&void 0!==c)this.shouldInRepetitionRecoveryBeTried(u,c,s)&&this.tryInRepetitionRecovery(e,t,r,u)}let s_=256,sP=512,sM=768,sD=1024,sZ=1280,sU=1536;function sF(e,t,r){return r|t|e}class sG{constructor(e){var t;this.maxLookahead=null!==(t=null==e?void 0:e.maxLookahead)&&void 0!==t?t:s7.maxLookahead}validate(e){let t=this.validateNoLeftRecursion(e.rules);if((0,n$.Z)(t)){let r=this.validateEmptyOrAlternatives(e.rules),n=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead);return[...t,...r,...n,...this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead)]}return t}validateNoLeftRecursion(e){return aY(e,e=>(function e(t,r,n,i=[]){let a=[],s=function e(t){let r=[];if((0,n$.Z)(t))return r;let n=iq(t);if(n instanceof n7)r.push(n.referencedRule);else if(n instanceof n5||n instanceof n9||n instanceof n6||n instanceof n8||n instanceof it||n instanceof ie)r=r.concat(e(n.definition));else if(n instanceof ir)r=(0,ix.Z)((0,nL.Z)(n.definition,t=>e(t.definition)));else if(n instanceof ii);else throw Error("non exhaustive match");let i=iv(n),a=t.length>1;if(!i||!a)return r;{let n=nM(t);return r.concat(e(n))}}(r.definition);if((0,n$.Z)(s))return[];{let r=t.name;im(s,t)&&a.push({message:n.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:i}),type:rt.LEFT_RECURSION,ruleName:r});let o=aY(iz(s,i.concat([t])),r=>{let a=(0,nb.Z)(i);return a.push(r),e(t,r,n,a)});return a.concat(o)}})(e,e,aH))}validateEmptyOrAlternatives(e){return aY(e,e=>(function(e,t){let r=new sy;return e.accept(r),aY(r.alternations,r=>aY(a1(r.definition),(n,i)=>{let a=se([n],[],aE,1);return(0,n$.Z)(a)?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:r,emptyChoiceIdx:i}),type:rt.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:r.idx,alternative:i+1}]:[]}))})(e,aH))}validateAmbiguousAlternationAlternatives(e,t){return aY(e,e=>(function(e,t,r){let n=new sy;e.accept(n);let i=n.alternations;return aY(i=i_(i,e=>!0===e.ignoreAmbiguities),n=>{let i=n.idx,a=sc(i,e,n.maxLookahead||t,n),s=function(e,t,r,n){let i=[],a=(0,iZ.Z)(e,(r,n,a)=>!0===t.definition[a].ignoreAmbiguities?r:((0,nN.Z)(n,n=>{let s=[a];(0,nN.Z)(e,(e,r)=>{a!==r&&sh(e,n)&&!0!==t.definition[r].ignoreAmbiguities&&s.push(r)}),s.length>1&&!sh(i,n)&&(i.push(n),r.push({alts:s,path:n}))}),r),[]);return(0,nL.Z)(a,e=>{let i=(0,nL.Z)(e.alts,e=>e+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:rt.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:t.idx,alternatives:e.alts}})}(a,n,e,r),o=function(e,t,r,n){let i=(0,iZ.Z)(e,(e,t,r)=>{let n=(0,nL.Z)(t,e=>({idx:r,path:e}));return e.concat(n)},[]);return iY(aY(i,e=>{if(!0===t.definition[e.idx].ignoreAmbiguities)return[];let a=e.idx,s=e.path,o=(0,iU.Z)(i,e=>{var r,n;return!0!==t.definition[e.idx].ignoreAmbiguities&&e.idx{let r=n[t];return e===r||r.categoryMatchesMap[e.tokenTypeIdx]}))});return(0,nL.Z)(o,e=>{let i=[e.idx+1,a+1],s=0===t.idx?"":t.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:rt.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:s,alternatives:i}})}))}(a,n,e,r);return s.concat(o)})})(e,t,aH))}validateSomeNonEmptyLookaheadPath(e,t){return function(e,t,r){let n=[];return(0,nN.Z)(e,e=>{let i=new sT;e.accept(i);let a=i.allProductions;(0,nN.Z)(a,i=>{let a=st(i),s=i.maxLookahead||t,o=sd(i.idx,e,a,s)[0];if((0,n$.Z)((0,ix.Z)(o))){let t=r.buildEmptyRepetitionError({topLevelRule:e,repetition:i});n.push({message:t,type:rt.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}})}),n}(e,t,aH)}buildLookaheadForAlternation(e){return function(e,t,r,n,i,a){let s=sc(e,t,r),o=sf(s)?aR:aE;return a(s,n,o,i)}(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,sn)}buildLookaheadForOptional(e){return function(e,t,r,n,i,a){let s=sd(e,t,i,r),o=sf(s)?aR:aE;return a(s[0],o,n)}(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,st(e.prodType),si)}}let sB=new class e extends ia{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}};function sj(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset(0,iP.Z)(e.GATE));return a.hasPredicates=s,r.definition.push(a),(0,nN.Z)(i,e=>{let t=new n5({definition:[]});a.definition.push(t),(0,nw.Z)(e,"IGNORE_AMBIGUITIES")?t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES:(0,nw.Z)(e,"GATE")&&(t.ignoreAmbiguities=!0),this.recordingProdStack.push(t),e.ALT.call(this),this.recordingProdStack.pop()}),sz}function s1(e){return 0===e?"":`${e}`}function s2(e){if(e<0||e>sY){let t=Error(`Invalid DSL Method idx value: <${e}> + Idx value must be a none negative value smaller than ${sY+1}`);throw t.KNOWN_RECORDER_ERROR=!0,t}}let s4=aj(aB,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(s4);let s7=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:aV,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),s3=Object.freeze({recoveryValueFunc:()=>void 0,resyncEnabled:!0});function s5(e){return function(){return e}}(e9=rt||(rt={}))[e9.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",e9[e9.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",e9[e9.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",e9[e9.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",e9[e9.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",e9[e9.LEFT_RECURSION=5]="LEFT_RECURSION",e9[e9.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",e9[e9.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",e9[e9.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",e9[e9.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",e9[e9.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",e9[e9.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",e9[e9.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",e9[e9.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION";class s9{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;let t=this.className;this.TRACE_INIT("toFastProps",()=>{nO(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),(0,nN.Z)(this.definedRulesNames,e=>{let t;let r=this[e].originalGrammarAction;this.TRACE_INIT(`${e} Rule`,()=>{t=this.topLevelRuleRecord(e,r)}),this.gastProductionsCache[e]=t})}finally{this.disableRecording()}});let r=[];if(this.TRACE_INIT("Grammar Resolving",()=>{r=function(e){let t=(0,iL.Z)(e,{errMsgProvider:aW}),r={};return(0,nN.Z)(e.rules,e=>{r[e.name]=e}),function(e,t){let r=new az(e,t);return r.resolveRefs(),r.errors}(r,t.errMsgProvider)}({rules:(0,nC.Z)(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if((0,n$.Z)(r)&&!1===this.skipValidations){var e;let r=(e={rules:(0,nC.Z)(this.gastProductionsCache),tokenTypes:(0,nC.Z)(this.tokensMap),errMsgProvider:aH,grammarName:t},function(e,t,r,n){let i=aY(e,e=>(function(e,t){let r=new sg;e.accept(r);let n=nq(a0(r.allProductions,sp),e=>e.length>1);return(0,nL.Z)((0,nC.Z)(n),r=>{let n=iq(r),i=t.buildDuplicateFoundError(e,r),a=iE(n),s={message:i,type:rt.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:a,occurrence:n.idx},o=sm(n);return o&&(s.parameter=o),s})})(e,r)),a=function(e,t,r){let n=[],i=(0,nL.Z)(t,e=>e.name);return(0,nN.Z)(e,e=>{let t=e.name;if(im(i,t)){let i=r.buildNamespaceConflictError(e);n.push({message:i,type:rt.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}}),n}(e,t,r),s=aY(e,e=>(function(e,t){let r=new sy;return e.accept(r),aY(r.alternations,r=>r.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:r}),type:rt.TOO_MANY_ALTS,ruleName:e.name,occurrence:r.idx}]:[])})(e,r)),o=aY(e,t=>(function(e,t,r,n){let i=[];if((0,iZ.Z)(t,(t,r)=>r.name===e.name?t+1:t,0)>1){let t=n.buildDuplicateRuleNameError({topLevelRule:e,grammarName:r});i.push({message:t,type:rt.DUPLICATE_RULE_NAME,ruleName:e.name})}return i})(t,e,n,r));return i.concat(a,s,o)}((e=(0,iL.Z)(e,{errMsgProvider:aH})).rules,e.tokenTypes,e.errMsgProvider,e.grammarName)),n=function(e){let t=e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName});return(0,nL.Z)(t,e=>Object.assign({type:rt.CUSTOM_LOOKAHEAD_VALIDATION},e))}({lookaheadStrategy:this.lookaheadStrategy,rules:(0,nC.Z)(this.gastProductionsCache),tokenTypes:(0,nC.Z)(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(r,n)}}),(0,n$.Z)(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let e=function(e){let t={};return(0,nN.Z)(e,e=>{nV(t,new iC(e).startWalking())}),t}((0,nC.Z)(this.gastProductionsCache));this.resyncFollows=e}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var e,t;null===(t=(e=this.lookaheadStrategy).initialize)||void 0===t||t.call(e,{rules:(0,nC.Z)(this.gastProductionsCache)}),this.preComputeLookaheadFunctions((0,nC.Z)(this.gastProductionsCache))})),!s9.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,n$.Z)(this.definitionErrors))throw e=(0,nL.Z)(this.definitionErrors,e=>e.message),Error(`Parser Definition Errors detected: + ${e.join("\n-------------------------------\n")}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;if(this.initErrorHandler(t),this.initLexerAdapter(),this.initLooksAhead(t),this.initRecognizerEngine(e,t),this.initRecoverable(t),this.initTreeBuilder(t),this.initContentAssist(),this.initGastRecorder(t),this.initPerformanceTracer(t),(0,nw.Z)(t,"ignoredIssues"))throw Error("The IParserConfig property has been deprecated.\n Please use the flag on the relevant DSL method instead.\n See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n For further details.");this.skipValidations=(0,nw.Z)(t,"skipValidations")?t.skipValidations:s7.skipValidations}}s9.DEFER_DEFINITION_ERRORS_HANDLING=!1,!function(e,t){t.forEach(t=>{let r=t.prototype;Object.getOwnPropertyNames(r).forEach(n=>{if("constructor"===n)return;let i=Object.getOwnPropertyDescriptor(r,n);i&&(i.get||i.set)?Object.defineProperty(e.prototype,n,i):e.prototype[n]=t.prototype[n]})})}(s9,[class e{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,nw.Z)(e,"recoveryEnabled")?e.recoveryEnabled:s7.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=sO)}getTokenToInsert(e){let t=aj(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,r,n){let i=this.findReSyncTokenType(),a=this.exportLexerState(),s=[],o=!1,l=this.LA(1),u=this.LA(1),c=()=>{let e=this.LA(0),t=new sS(this.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:l,previous:e,ruleName:this.getCurrRuleFullName()}),l,this.LA(0));t.resyncedTokens=a1(s),this.SAVE_ERROR(t)};for(;!o;){if(this.tokenMatcher(u,n)){c();return}if(r.call(this)){c(),e.apply(this,t);return}else this.tokenMatcher(u,i)?o=!0:(u=this.SKIP_TOKEN(),this.addToResyncTokens(u,s))}this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(e,t,r){return!(!1===r||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))&&!0}getFollowsForInRuleRecovery(e,t){let r=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let e=this.SKIP_TOKEN();return this.consumeToken(),e}throw new sb("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,n$.Z)(t))return!1;let r=this.LA(1);return void 0!==(0,iX.Z)(t,e=>this.tokenMatcher(r,e))}canRecoverWithSingleTokenDeletion(e){return!!this.canTokenTypeBeDeletedInRecovery(e)&&this.tokenMatcher(this.LA(2),e)}isInCurrentRuleReSyncSet(e){let t=this.getCurrFollowKey();return im(this.getFollowSetFromFollowKey(t),e)}findReSyncTokenType(){let e=this.flattenFollowSet(),t=this.LA(1),r=2;for(;;){let n=(0,iX.Z)(e,e=>aE(t,e));if(void 0!==n)return n;t=this.LA(r),r++}}getCurrFollowKey(){if(1===this.RULE_STACK.length)return sL;let e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return(0,nL.Z)(e,(r,n)=>0===n?sL:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[n],inRule:this.shortRuleNameToFullName(e[n-1])})}flattenFollowSet(){let e=(0,nL.Z)(this.buildFullFollowKeyStack(),e=>this.getFollowSetFromFollowKey(e));return(0,ix.Z)(e)}getFollowSetFromFollowKey(e){if(e===sL)return[aB];let t=e.ruleName+e.idxInCallingRule+iN+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return!this.tokenMatcher(e,aB)&&t.push(e),t}reSyncTo(e){let t=[],r=this.LA(1);for(;!1===this.tokenMatcher(r,e);)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,t);return a1(t)}attemptInRepetitionRecovery(e,t,r,n,i,a,s){}getCurrentGrammarPath(e,t){let r=this.getHumanReadableRuleStack(),n=(0,nb.Z)(this.RULE_OCCURRENCE_STACK);return{ruleStack:r,occurrenceStack:n,lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return(0,nL.Z)(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}},class e{initLooksAhead(e){this.dynamicTokensEnabled=(0,nw.Z)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:s7.dynamicTokensEnabled,this.maxLookahead=(0,nw.Z)(e,"maxLookahead")?e.maxLookahead:s7.maxLookahead,this.lookaheadStrategy=(0,nw.Z)(e,"lookaheadStrategy")?e.lookaheadStrategy:new sG({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){(0,nN.Z)(e,e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,()=>{let{alternation:t,repetition:r,option:n,repetitionMandatory:i,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:s}=function(e){sB.reset(),e.accept(sB);let t=sB.dslMethods;return sB.reset(),t}(e);(0,nN.Z)(t,t=>{let r=0===t.idx?"":t.idx;this.TRACE_INIT(`${iE(t)}${r}`,()=>{var r,n;let i=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled});let a=(r=this.fullRuleNameToShort[e.name],n=s_,t.idx|n|r);this.setLaFuncCache(a,i)})}),(0,nN.Z)(r,t=>{this.computeLookaheadFunc(e,t.idx,sM,"Repetition",t.maxLookahead,iE(t))}),(0,nN.Z)(n,t=>{this.computeLookaheadFunc(e,t.idx,sP,"Option",t.maxLookahead,iE(t))}),(0,nN.Z)(i,t=>{this.computeLookaheadFunc(e,t.idx,sD,"RepetitionMandatory",t.maxLookahead,iE(t))}),(0,nN.Z)(a,t=>{this.computeLookaheadFunc(e,t.idx,sU,"RepetitionMandatoryWithSeparator",t.maxLookahead,iE(t))}),(0,nN.Z)(s,t=>{this.computeLookaheadFunc(e,t.idx,sZ,"RepetitionWithSeparator",t.maxLookahead,iE(t))})})})}computeLookaheadFunc(e,t,r,n,i,a){this.TRACE_INIT(`${a}${0===t?"":t}`,()=>{var a;let s=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:n});let o=(a=this.fullRuleNameToShort[e.name],t|r|a);this.setLaFuncCache(o,s)})}getKeyForAutomaticLookahead(e,t){return t|e|this.getLastExplicitRuleShortName()}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},class e{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,nw.Z)(e,"nodeLocationTracking")?e.nodeLocationTracking:s7.nodeLocationTracking,this.outputCst){if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sK,this.setNodeLocationFromNode=sK,this.cstPostRule=ay.Z,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ay.Z,this.setNodeLocationFromNode=ay.Z,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sj,this.setNodeLocationFromNode=sj,this.cstPostRule=ay.Z,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ay.Z,this.setNodeLocationFromNode=ay.Z,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ay.Z,this.setNodeLocationFromNode=ay.Z,this.cstPostRule=ay.Z,this.setInitialNodeLocation=ay.Z;else throw Error(`Invalid config option: "${e.nodeLocationTracking}"`)}else this.cstInvocationStateUpdate=ay.Z,this.cstFinallyStateUpdate=ay.Z,this.cstPostTerminal=ay.Z,this.cstPostNonTerminal=ay.Z,this.cstPostRule=ay.Z}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){let t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let t=this.LA(0),r=e.location;r.startOffset<=t.startOffset==!0?(r.endOffset=t.endOffset,r.endLine=t.endLine,r.endColumn=t.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){let t=this.LA(0),r=e.location;r.startOffset<=t.startOffset==!0?r.endOffset=t.endOffset:r.startOffset=NaN}cstPostTerminal(e,t){var r,n,i;let a=this.CST_STACK[this.CST_STACK.length-1];r=a,n=t,i=e,void 0===r.children[i]?r.children[i]=[n]:r.children[i].push(n),this.setNodeLocationFromToken(a.location,t)}cstPostNonTerminal(e,t){var r,n,i;let a=this.CST_STACK[this.CST_STACK.length-1];r=a,n=t,i=e,void 0===r.children[n]?r.children[n]=[i]:r.children[n].push(i),this.setNodeLocationFromNode(a.location,e.location)}getBaseCstVisitorConstructor(){if((0,i$.Z)(this.baseCstVisitorConstructor)){let e=function(e,t){let r=function(){};return sV(r,e+"BaseSemantics"),r.prototype={visit:function(e,t){if((0,iu.Z)(e)&&(e=e[0]),!(0,i$.Z)(e))return this[e.name](e.children,t)},validateVisitor:function(){let e=function(e,t){return function(e,t){let r=(0,iU.Z)(t,t=>!1===(0,iP.Z)(e[t]));return iY((0,nL.Z)(r,t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:re.MISSING_METHOD,methodName:t})))}(e,t)}(this,t);if(!(0,n$.Z)(e)){let t=(0,nL.Z)(e,e=>e.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: + ${t.join("\n\n").replace(/\n/g,"\n ")}`)}}},r.prototype.constructor=r,r._RULE_NAMES=t,r}(this.className,(0,nj.Z)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if((0,i$.Z)(this.baseCstVisitorWithDefaultsConstructor)){let e=function(e,t,r){let n=function(){};sV(n,e+"BaseSemanticsWithDefaults");let i=Object.create(r.prototype);return(0,nN.Z)(t,e=>{i[e]=sW}),n.prototype=i,n.prototype.constructor=n,n}(this.className,(0,nj.Z)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}},class e{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(!0!==this.selfAnalysisDone)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):s4}LA(e){let t=this.currIdx+e;return t<0||this.tokVectorLength<=t?s4:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}},class e{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=aR,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,nw.Z)(t,"serializedGrammar"))throw Error("The Parser's configuration can no longer contain a property.\n See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n For Further details.");if((0,iu.Z)(e)){if((0,n$.Z)(e))throw Error("A Token Vocabulary cannot be empty.\n Note that the first argument for the parser constructor\n is no longer a Token vector (since v4.0).");if("number"==typeof e[0].startOffset)throw Error("The Parser constructor no longer accepts a token vector as the first argument.\n See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n For Further details.")}if((0,iu.Z)(e))this.tokensMap=(0,iZ.Z)(e,(e,t)=>(e[t.name]=t,e),{});else if((0,nw.Z)(e,"modes")&&iT((0,ix.Z)((0,nC.Z)(e.modes)),aN)){let t=iI((0,ix.Z)((0,nC.Z)(e.modes)));this.tokensMap=(0,iZ.Z)(t,(e,t)=>(e[t.name]=t,e),{})}else if((0,sH.Z)(e))this.tokensMap=(0,nb.Z)(e);else throw Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=aB;let r=iT((0,nw.Z)(e,"modes")?(0,ix.Z)((0,nC.Z)(e.modes)):(0,nC.Z)(e),e=>(0,n$.Z)(e.categoryMatches));this.tokenMatcher=r?aR:aE,aI((0,nC.Z)(this.tokensMap))}defineRule(e,t,r){let n;if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=(0,nw.Z)(r,"resyncEnabled")?r.resyncEnabled:s3.resyncEnabled,a=(0,nw.Z)(r,"recoveryValueFunc")?r.recoveryValueFunc:s3.recoveryValueFunc,s=this.ruleShortNameIdx<<12;return this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=e,this.fullRuleNameToShort[e]=s,Object.assign(n=!0===this.outputCst?function(...r){try{this.ruleInvocationStateUpdate(s,e,this.subruleIdx),t.apply(this,r);let n=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(n),n}catch(e){return this.invokeRuleCatch(e,i,a)}finally{this.ruleFinallyStateUpdate()}}:function(...r){try{return this.ruleInvocationStateUpdate(s,e,this.subruleIdx),t.apply(this,r)}catch(e){return this.invokeRuleCatch(e,i,a)}finally{this.ruleFinallyStateUpdate()}},{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,r){let n=1===this.RULE_STACK.length,i=t&&!this.isBackTracking()&&this.recoveryEnabled;if(sI(e)){if(i){let t=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(t)){if(e.resyncedTokens=this.reSyncTo(t),!this.outputCst)return r(e);{let e=this.CST_STACK[this.CST_STACK.length-1];return e.recoveredNode=!0,e}}if(this.outputCst){let t=this.CST_STACK[this.CST_STACK.length-1];t.recoveredNode=!0,e.partialCstResult=t}throw e}if(n)return this.moveToTerminatedState(),r(e);else;}throw e}optionInternal(e,t){let r=this.getKeyForAutomaticLookahead(sP,t);return this.optionInternalLogic(e,t,r)}optionInternalLogic(e,t,r){let n,i=this.getLaFuncFromCache(r);if("function"!=typeof e){n=e.DEF;let t=e.GATE;if(void 0!==t){let e=i;i=()=>t.call(this)&&e.call(this)}}else n=e;if(!0===i.call(this))return n.call(this)}atLeastOneInternal(e,t){let r=this.getKeyForAutomaticLookahead(sD,e);return this.atLeastOneInternalLogic(e,t,r)}atLeastOneInternalLogic(e,t,r){let n,i=this.getLaFuncFromCache(r);if("function"!=typeof t){n=t.DEF;let e=t.GATE;if(void 0!==e){let t=i;i=()=>e.call(this)&&t.call(this)}}else n=t;if(!0===i.call(this)){let e=this.doSingleRepetition(n);for(;!0===i.call(this)&&!0===e;)e=this.doSingleRepetition(n)}else throw this.raiseEarlyExitException(e,t8.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,sD,e,a9)}atLeastOneSepFirstInternal(e,t){let r=this.getKeyForAutomaticLookahead(sU,e);this.atLeastOneSepFirstInternalLogic(e,t,r)}atLeastOneSepFirstInternalLogic(e,t,r){let n=t.DEF,i=t.SEP;if(!0===this.getLaFuncFromCache(r).call(this)){n.call(this);let t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,n,a6],t,sU,e,a6)}else throw this.raiseEarlyExitException(e,t8.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}manyInternal(e,t){let r=this.getKeyForAutomaticLookahead(sM,e);return this.manyInternalLogic(e,t,r)}manyInternalLogic(e,t,r){let n,i=this.getLaFuncFromCache(r);if("function"!=typeof t){n=t.DEF;let e=t.GATE;if(void 0!==e){let t=i;i=()=>e.call(this)&&t.call(this)}}else n=t;let a=!0;for(;!0===i.call(this)&&!0===a;)a=this.doSingleRepetition(n);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,sM,e,a3,a)}manySepFirstInternal(e,t){let r=this.getKeyForAutomaticLookahead(sZ,e);this.manySepFirstInternalLogic(e,t,r)}manySepFirstInternalLogic(e,t,r){let n=t.DEF,i=t.SEP;if(!0===this.getLaFuncFromCache(r).call(this)){n.call(this);let t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,n,a5],t,sZ,e,a5)}}repetitionSepSecondInternal(e,t,r,n,i){for(;r();)this.CONSUME(t),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,r,n,i],r,sU,e,i)}doSingleRepetition(e){let t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){let r=this.getKeyForAutomaticLookahead(s_,t),n=(0,iu.Z)(e)?e:e.DEF,i=this.getLaFuncFromCache(r).call(this,n);if(void 0!==i)return n[i].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),0===this.RULE_STACK.length&&!1===this.isAtEndOfInput()){let e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new sC(t,e))}}subruleInternal(e,t,r){let n;try{let i=void 0!==r?r.ARGS:void 0;return this.subruleIdx=t,n=e.apply(this,i),this.cstPostNonTerminal(n,void 0!==r&&void 0!==r.LABEL?r.LABEL:e.ruleName),n}catch(t){throw this.subruleInternalError(t,r,e.ruleName)}}subruleInternalError(e,t,r){throw sI(e)&&void 0!==e.partialCstResult&&(this.cstPostNonTerminal(e.partialCstResult,void 0!==t&&void 0!==t.LABEL?t.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,t,r){let n;try{let t=this.LA(1);!0===this.tokenMatcher(t,e)?(this.consumeToken(),n=t):this.consumeInternalError(e,t,r)}catch(r){n=this.consumeInternalRecovery(e,t,r)}return this.cstPostTerminal(void 0!==r&&void 0!==r.LABEL?r.LABEL:e.name,n),n}consumeInternalError(e,t,r){let n;let i=this.LA(0);throw n=void 0!==r&&r.ERR_MSG?r.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:i,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new sS(n,t,i))}consumeInternalRecovery(e,t,r){if(this.recoveryEnabled&&"MismatchedTokenException"===r.name&&!this.isBackTracking()){let n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(e){if(e.name===sw)throw r;throw e}}else throw r}saveRecogState(){let e=this.errors,t=(0,nb.Z)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return 0!==this.isBackTrackingStack.length}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),aB)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},class e{ACTION(e){return e.call(this)}consume(e,t,r){return this.consumeInternal(t,e,r)}subrule(e,t,r){return this.subruleInternal(t,e,r)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,r=s3){if(im(this.definedRulesNames,e)){let t={message:aH.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:rt.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(t)}this.definedRulesNames.push(e);let n=this.defineRule(e,t,r);return this[e]=n,n}OVERRIDE_RULE(e,t,r=s3){let n=function(e,t,r){let n;let i=[];return!im(t,e)&&(n=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,i.push({message:n,type:rt.INVALID_RULE_OVERRIDE,ruleName:e})),i}(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(n);let i=this.defineRule(e,t,r);return this[e]=i,i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);let r=this.saveRecogState();try{return e.apply(this,t),!0}catch(e){if(sI(e))return!1;throw e}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){var e;return e=(0,nC.Z)(this.gastProductionsCache),(0,nL.Z)(e,function e(t){function r(t){return(0,nL.Z)(t,e)}if(t instanceof n7){let e={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return(0,nD.Z)(t.label)&&(e.label=t.label),e}if(t instanceof n5)return{type:"Alternative",definition:r(t.definition)};if(t instanceof n9)return{type:"Option",idx:t.idx,definition:r(t.definition)};else if(t instanceof n6)return{type:"RepetitionMandatory",idx:t.idx,definition:r(t.definition)};else if(t instanceof n8)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:e(new ii({terminalType:t.separator})),definition:r(t.definition)};else if(t instanceof it)return{type:"RepetitionWithSeparator",idx:t.idx,separator:e(new ii({terminalType:t.separator})),definition:r(t.definition)};else if(t instanceof ie)return{type:"Repetition",idx:t.idx,definition:r(t.definition)};else if(t instanceof ir)return{type:"Alternation",idx:t.idx,definition:r(t.definition)};else if(t instanceof ii){var n;let e={type:"Terminal",name:t.terminalType.name,label:function(e){return(0,nD.Z)(e.LABEL)&&""!==e.LABEL}(n=t.terminalType)?n.LABEL:n.name,idx:t.idx};(0,nD.Z)(t.label)&&(e.terminalLabel=t.label);let r=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(e.pattern=n2(r)?r.source:r),e}else if(t instanceof n3)return{type:"Rule",name:t.name,orgText:t.orgText,definition:r(t.definition)};else throw Error("non exhaustive match")})}},class e{initErrorHandler(e){this._errors=[],this.errorMessageProvider=(0,nw.Z)(e,"errorMessageProvider")?e.errorMessageProvider:s7.errorMessageProvider}SAVE_ERROR(e){if(sI(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,nb.Z)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return(0,nb.Z)(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,r){let n=this.getCurrRuleFullName(),i=sd(e,this.getGAstProductions()[n],t,this.maxLookahead)[0],a=[];for(let e=1;e<=this.maxLookahead;e++)a.push(this.LA(e));let s=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:i,actual:a,previous:this.LA(0),customUserDescription:r,ruleName:n});throw this.SAVE_ERROR(new s$(s,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){let r=this.getCurrRuleFullName(),n=sc(e,this.getGAstProductions()[r],this.maxLookahead),i=[];for(let e=1;e<=this.maxLookahead;e++)i.push(this.LA(e));let a=this.LA(0),s=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:n,actual:i,previous:a,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new sN(s,this.LA(1),a))}},class e{initContentAssist(){}computeContentAssist(e,t){let r=this.gastProductionsCache[e];if((0,i$.Z)(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return se([r],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let t=iq(e.ruleStack);return new a4(this.getGAstProductions()[t],e).startWalking()}},class e{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){let t=e>0?e:"";this[`CONSUME${t}`]=function(t,r){return this.consumeInternalRecord(t,e,r)},this[`SUBRULE${t}`]=function(t,r){return this.subruleInternalRecord(t,e,r)},this[`OPTION${t}`]=function(t){return this.optionInternalRecord(t,e)},this[`OR${t}`]=function(t){return this.orInternalRecord(t,e)},this[`MANY${t}`]=function(t){this.manyInternalRecord(e,t)},this[`MANY_SEP${t}`]=function(t){this.manySepFirstInternalRecord(e,t)},this[`AT_LEAST_ONE${t}`]=function(t){this.atLeastOneInternalRecord(e,t)},this[`AT_LEAST_ONE_SEP${t}`]=function(t){this.atLeastOneSepFirstInternalRecord(e,t)}}this.consume=function(e,t,r){return this.consumeInternalRecord(t,e,r)},this.subrule=function(e,t,r){return this.subruleInternalRecord(t,e,r)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{for(let e=0;e<10;e++){let t=e>0?e:"";delete this[`CONSUME${t}`],delete this[`SUBRULE${t}`],delete this[`OPTION${t}`],delete this[`OR${t}`],delete this[`MANY${t}`],delete this[`MANY_SEP${t}`],delete this[`AT_LEAST_ONE${t}`],delete this[`AT_LEAST_ONE_SEP${t}`]}delete this.consume,delete this.subrule,delete this.option,delete this.or,delete this.many,delete this.atLeastOne,delete this.ACTION,delete this.BACKTRACK,delete this.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return s4}topLevelRuleRecord(e,t){try{let r=new n3({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),t.call(this),this.recordingProdStack.pop(),r}catch(e){if(!0!==e.KNOWN_RECORDER_ERROR)try{e.message=e.message+'\n This error was thrown during the "grammar recording phase" For more info see:\n https://chevrotain.io/docs/guide/internals.html#grammar-recording'}catch(e){}throw e}}optionInternalRecord(e,t){return sJ.call(this,n9,e,t)}atLeastOneInternalRecord(e,t){sJ.call(this,n6,t,e)}atLeastOneSepFirstInternalRecord(e,t){sJ.call(this,n8,t,e,!0)}manyInternalRecord(e,t){sJ.call(this,ie,t,e)}manySepFirstInternalRecord(e,t){sJ.call(this,it,t,e,!0)}orInternalRecord(e,t){return s0.call(this,e,t)}subruleInternalRecord(e,t,r){if(s2(t),!e||!1===(0,nw.Z)(e,"ruleName")){let r=Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw r.KNOWN_RECORDER_ERROR=!0,r}let n=(0,aT.Z)(this.recordingProdStack),i=new n7({idx:t,nonTerminalName:e.ruleName,label:null==r?void 0:r.LABEL,referencedRule:void 0});return n.definition.push(i),this.outputCst?sQ:sz}consumeInternalRecord(e,t,r){if(s2(t),!ax(e)){let r=Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw r.KNOWN_RECORDER_ERROR=!0,r}let n=(0,aT.Z)(this.recordingProdStack),i=new ii({idx:t,terminalType:e,label:null==r?void 0:r.LABEL});return n.definition.push(i),sX}},class e{initPerformanceTracer(e){if((0,nw.Z)(e,"traceInitPerf")){let t=e.traceInitPerf,r="number"==typeof t;this.traceInitMaxIdent=r?t:1/0,this.traceInitPerf=r?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=s7.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(!0!==this.traceInitPerf)return t();{this.traceInitIndent++;let r=Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${e}>`);let{time:n,value:i}=av(t),a=n>10?console.warn:console.log;return this.traceInitIndent time: ${n}ms`),this.traceInitIndent--,i}}}]);class s6 extends s9{constructor(e,t=s7){let r=(0,nb.Z)(t);r.outputCst=!1,super(e,r)}}function s8(e,t,r){return`${e.name}_${t}_${r}`}class oe{constructor(e){this.target=e}isEpsilon(){return!1}}class ot extends oe{constructor(e,t){super(e),this.tokenType=t}}class or extends oe{constructor(e){super(e)}isEpsilon(){return!0}}class on extends oe{constructor(e,t,r){super(e),this.rule=t,this.followState=r}isEpsilon(){return!0}}function oi(e,t,r){if(r instanceof ii)return oc(e,t,r.terminalType,r);if(r instanceof n7)return function(e,t,r){let n=r.referencedRule,i=e.ruleToStartState.get(n),a=oh(e,t,r,{type:1}),s=oh(e,t,r,{type:1});return of(a,new on(i,n,s)),{left:a,right:s}}(e,t,r);if(r instanceof ir)return function(e,t,r){let n=oh(e,t,r,{type:1});ol(e,n);let i=(0,nL.Z)(r.definition,r=>oi(e,t,r));return ou(e,t,n,r,...i)}(e,t,r);else if(r instanceof n9)return function(e,t,r){let n=oh(e,t,r,{type:1});ol(e,n);let i=ou(e,t,n,r,oa(e,t,r));return function(e,t,r,n){let i=n.left;return od(i,n.right),e.decisionMap[s8(t,"Option",r.idx)]=i,n}(e,t,r,i)}(e,t,r);else if(r instanceof ie)return function(e,t,r){let n=oh(e,t,r,{type:5});ol(e,n);let i=ou(e,t,n,r,oa(e,t,r));return oo(e,t,r,i)}(e,t,r);else if(r instanceof it)return function(e,t,r){let n=oh(e,t,r,{type:5});ol(e,n);let i=ou(e,t,n,r,oa(e,t,r)),a=oc(e,t,r.separator,r);return oo(e,t,r,i,a)}(e,t,r);else if(r instanceof n6)return function(e,t,r){let n=oh(e,t,r,{type:4});ol(e,n);let i=ou(e,t,n,r,oa(e,t,r));return os(e,t,r,i)}(e,t,r);else if(r instanceof n8)return function(e,t,r){let n=oh(e,t,r,{type:4});ol(e,n);let i=ou(e,t,n,r,oa(e,t,r)),a=oc(e,t,r.separator,r);return os(e,t,r,i,a)}(e,t,r);else return oa(e,t,r)}function oa(e,t,r){let n=(0,iU.Z)((0,nL.Z)(r.definition,r=>oi(e,t,r)),e=>void 0!==e);return 1===n.length?n[0]:0===n.length?void 0:function(e,t){let r=t.length;for(let n=0;ne.alt)}get key(){let e="";for(let t in this.map)e+=t+":";return e}}function og(e,t=!0){return`${t?`a${e.alt}`:""}s${e.state.stateNumber}:${e.stack.map(e=>e.stateNumber.toString()).join("_")}`}var oy=r("50540");class oT{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="",t=this.predicates.length;for(let r=0;rconsole.log(e)}initialize(e){this.atn=function(e){let t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};(function(e,t){let r=t.length;for(let n=0;n{let i=n.toString(),a=r[i];return void 0!==a?a:(a={atnStartState:e,decision:t,states:{}},r[i]=a,a)}}(e.decisionStates[n],n);return r}(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:t,rule:r,hasPredicates:n,dynamicTokensEnabled:i}=e,a=this.dfas,s=this.logging,o=s8(r,"Alternation",t),l=this.atn.decisionMap[o].decision,u=(0,nL.Z)(sr({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:r}),e=>(0,nL.Z)(e,e=>e[0]));if(oR(u,!1)&&!i){let e=(0,iZ.Z)(u,(e,t,r)=>((0,nN.Z)(t,t=>{t&&(e[t.tokenTypeIdx]=r,(0,nN.Z)(t.categoryMatches,t=>{e[t]=r}))}),e),{});return n?function(t){var r;let n=e[this.LA(1).tokenTypeIdx];if(void 0!==t&&void 0!==n){let e=null===(r=t[n])||void 0===r?void 0:r.GATE;if(void 0!==e&&!1===e.call(this))return}return n}:function(){return e[this.LA(1).tokenTypeIdx]}}if(n)return function(e){let t=new oT,r=void 0===e?0:e.length;for(let n=0;n(0,nL.Z)(e,e=>e[0]));if(oR(u)&&u[0][0]&&!i){let e=u[0],t=(0,ix.Z)(e);if(1===t.length&&(0,n$.Z)(t[0].categoryMatches)){let e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{let e=(0,iZ.Z)(t,(e,t)=>(void 0!==t&&(e[t.tokenTypeIdx]=!0,(0,nN.Z)(t.categoryMatches,t=>{e[t]=!0})),e),{});return function(){return!0===e[this.LA(1).tokenTypeIdx]}}}return function(){let e=oA.call(this,a,l,ov,s);return"object"!=typeof e&&0===e}}}function oR(e,t=!0){let r=new Set;for(let n of e){let e=new Set;for(let i of n){if(void 0===i){if(!t)return!1;break}for(let t of[i.tokenTypeIdx].concat(i.categoryMatches))if(r.has(t)){if(!e.has(t))return!1}else r.add(t),e.add(t)}}return!0}function oA(e,t,r,n){let i=e[t](r),a=i.start;if(void 0===a){let e=function(e){let t=new om,r=e.transitions.length;for(let n=0;ne.state.transitions).filter(e=>e instanceof ot).map(e=>e.tokenType),i=e=>e.tokenTypeIdx,n&&n.length?(0,ik.Z)(n,(0,nH.Z)(i,2)):[]),tokenPath:e}}(s,i,o);if(!0===t.isAcceptState)return t.prediction;i=t,s.push(o),o=this.LA(a++)}}function oI(e,t,r,n,i,a){let s=function(e,t,r){let n;let i=new om,a=[];for(let n of e.elements){if(!1===r.is(n.alt))continue;if(7===n.state.type){a.push(n);continue}let e=n.state.transitions.length;for(let r=0;r0&&!function(e){for(let t of e.elements)if(7===t.state.type)return!0;return!1}(n))for(let e of a)n.add(e);return n}(t.configs,r,i);if(0===s.size)return oN(e,t,r,op),op;let o=oS(s),l=function(e,t){let r;for(let n of e.elements)if(!0===t.is(n.alt)){if(void 0===r)r=n.alt;else if(r!==n.alt)return}return r}(s,i);if(void 0!==l)o.isAcceptState=!0,o.prediction=l,o.configs.uniqueAlt=l;else if(function(e){if(function(e){for(let t of e.elements)if(7!==t.state.type)return!1;return!0}(e))return!0;let t=function(e){let t=new Map;for(let r of e){let e=og(r,!1),n=t.get(e);void 0===n&&(n={},t.set(e,n)),n[r.alt]=!0}return t}(e.elements);return function(e){for(let t of Array.from(e.values()))if(Object.keys(t).length>1)return!0;return!1}(t)&&!function(e){for(let t of Array.from(e.values()))if(1===Object.keys(t).length)return!0;return!1}(t)}(s)){let t=(0,oy.Z)(s.alts);o.isAcceptState=!0,o.prediction=t,o.configs.uniqueAlt=t,ox.apply(this,[e,n,s.alts,a])}return o=oN(e,t,r,o)}function ox(e,t,r,n){let i=[];for(let e=1;e<=t;e++)i.push(this.LA(e).tokenType);let a=e.atnStartState,s=a.rule;n(function(e){let t=(0,nL.Z)(e.prefixPath,e=>aL(e)).join(", "),r=0===e.production.idx?"":e.production.idx,n=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${function(e){if(e instanceof n7)return"SUBRULE";if(e instanceof n9)return"OPTION";if(e instanceof ir)return"OR";else if(e instanceof n6)return"AT_LEAST_ONE";else if(e instanceof n8)return"AT_LEAST_ONE_SEP";else if(e instanceof it)return"MANY_SEP";else if(e instanceof ie)return"MANY";else if(e instanceof ii)return"CONSUME";else throw Error("non exhaustive match")}(e.production)}${r}> inside <${e.topLevelRule.name}> Rule, +<${t}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +`+"For Further details."}({topLevelRule:s,ambiguityIndices:r,production:a.production,prefixPath:i}))}function oS(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function oN(e,t,r,n){return n=oC(e,n),t.edges[r.tokenTypeIdx]=n,n}function oC(e,t){if(t===op)return t;let r=t.configs.key,n=e.states[r];return void 0!==n?n:(t.configs.finalize(),e.states[r]=t,t)}function o$(e,t){let r=e.state;if(7===r.type){if(e.stack.length>0){let r=[...e.stack];o$({state:r.pop(),alt:e.alt,stack:r},t)}else t.add(e);return}!r.epsilonOnlyTransitions&&t.add(e);let n=r.transitions.length;for(let i=0;i0&&(n.arguments=r),n},tf.is=function(e){return ny.defined(e)&&ny.string(e.title)&&ny.string(e.command)},(tp=rR||(rR={})).replace=function(e,t){return{range:e,newText:t}},tp.insert=function(e,t){return{range:{start:e,end:e},newText:t}},tp.del=function(e){return{range:e,newText:""}},tp.is=function(e){return ny.objectLiteral(e)&&ny.string(e.newText)&&ro.is(e.range)},(tm=rA||(rA={})).create=function(e,t,r){let n={label:e};return void 0!==t&&(n.needsConfirmation=t),void 0!==r&&(n.description=r),n},tm.is=function(e){return ny.objectLiteral(e)&&ny.string(e.label)&&(ny.boolean(e.needsConfirmation)||void 0===e.needsConfirmation)&&(ny.string(e.description)||void 0===e.description)},(rk||(rk={})).is=function(e){return ny.string(e)},(tg=rI||(rI={})).replace=function(e,t,r){return{range:e,newText:t,annotationId:r}},tg.insert=function(e,t,r){return{range:{start:e,end:e},newText:t,annotationId:r}},tg.del=function(e,t){return{range:e,newText:"",annotationId:t}},tg.is=function(e){return rR.is(e)&&(rA.is(e.annotationId)||rk.is(e.annotationId))},(ty=rx||(rx={})).create=function(e,t){return{textDocument:e,edits:t}},ty.is=function(e){return ny.defined(e)&&rb.is(e.textDocument)&&Array.isArray(e.edits)},(tT=rS||(rS={})).create=function(e,t,r){let n={kind:"create",uri:e};return void 0!==t&&(void 0!==t.overwrite||void 0!==t.ignoreIfExists)&&(n.options=t),void 0!==r&&(n.annotationId=r),n},tT.is=function(e){return e&&"create"===e.kind&&ny.string(e.uri)&&(void 0===e.options||(void 0===e.options.overwrite||ny.boolean(e.options.overwrite))&&(void 0===e.options.ignoreIfExists||ny.boolean(e.options.ignoreIfExists)))&&(void 0===e.annotationId||rk.is(e.annotationId))},(tv=rN||(rN={})).create=function(e,t,r,n){let i={kind:"rename",oldUri:e,newUri:t};return void 0!==r&&(void 0!==r.overwrite||void 0!==r.ignoreIfExists)&&(i.options=r),void 0!==n&&(i.annotationId=n),i},tv.is=function(e){return e&&"rename"===e.kind&&ny.string(e.oldUri)&&ny.string(e.newUri)&&(void 0===e.options||(void 0===e.options.overwrite||ny.boolean(e.options.overwrite))&&(void 0===e.options.ignoreIfExists||ny.boolean(e.options.ignoreIfExists)))&&(void 0===e.annotationId||rk.is(e.annotationId))},(tE=rC||(rC={})).create=function(e,t,r){let n={kind:"delete",uri:e};return void 0!==t&&(void 0!==t.recursive||void 0!==t.ignoreIfNotExists)&&(n.options=t),void 0!==r&&(n.annotationId=r),n},tE.is=function(e){return e&&"delete"===e.kind&&ny.string(e.uri)&&(void 0===e.options||(void 0===e.options.recursive||ny.boolean(e.options.recursive))&&(void 0===e.options.ignoreIfNotExists||ny.boolean(e.options.ignoreIfNotExists)))&&(void 0===e.annotationId||rk.is(e.annotationId))},(r$||(r$={})).is=function(e){return e&&(void 0!==e.changes||void 0!==e.documentChanges)&&(void 0===e.documentChanges||e.documentChanges.every(e=>ny.string(e.kind)?rS.is(e)||rN.is(e)||rC.is(e):rx.is(e)))},(tR=rL||(rL={})).create=function(e){return{uri:e}},tR.is=function(e){return ny.defined(e)&&ny.string(e.uri)},(tA=rw||(rw={})).create=function(e,t){return{uri:e,version:t}},tA.is=function(e){return ny.defined(e)&&ny.string(e.uri)&&ny.integer(e.version)},(tk=rb||(rb={})).create=function(e,t){return{uri:e,version:t}},tk.is=function(e){return ny.defined(e)&&ny.string(e.uri)&&(null===e.version||ny.integer(e.version))},(tI=rO||(rO={})).create=function(e,t,r,n){return{uri:e,languageId:t,version:r,text:n}},tI.is=function(e){return ny.defined(e)&&ny.string(e.uri)&&ny.string(e.languageId)&&ny.integer(e.version)&&ny.string(e.text)},(tx=r_||(r_={})).PlainText="plaintext",tx.Markdown="markdown",tx.is=function(e){return e===tx.PlainText||e===tx.Markdown},(rP||(rP={})).is=function(e){return ny.objectLiteral(e)&&r_.is(e.kind)&&ny.string(e.value)},(tS=rM||(rM={})).Text=1,tS.Method=2,tS.Function=3,tS.Constructor=4,tS.Field=5,tS.Variable=6,tS.Class=7,tS.Interface=8,tS.Module=9,tS.Property=10,tS.Unit=11,tS.Value=12,tS.Enum=13,tS.Keyword=14,tS.Snippet=15,tS.Color=16,tS.File=17,tS.Reference=18,tS.Folder=19,tS.EnumMember=20,tS.Constant=21,tS.Struct=22,tS.Event=23,tS.Operator=24,tS.TypeParameter=25,(tN=rD||(rD={})).PlainText=1,tN.Snippet=2,(rZ||(rZ={})).Deprecated=1,(tC=rU||(rU={})).create=function(e,t,r){return{newText:e,insert:t,replace:r}},tC.is=function(e){return e&&ny.string(e.newText)&&ro.is(e.insert)&&ro.is(e.replace)},(t$=rF||(rF={})).asIs=1,t$.adjustIndentation=2,(rG||(rG={})).is=function(e){return e&&(ny.string(e.detail)||void 0===e.detail)&&(ny.string(e.description)||void 0===e.description)},(rB||(rB={})).create=function(e){return{label:e}},(rj||(rj={})).create=function(e,t){return{items:e||[],isIncomplete:!!t}},(tL=rK||(rK={})).fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},tL.is=function(e){return ny.string(e)||ny.objectLiteral(e)&&ny.string(e.language)&&ny.string(e.value)},(rV||(rV={})).is=function(e){return!!e&&ny.objectLiteral(e)&&(rP.is(e.contents)||rK.is(e.contents)||ny.typedArray(e.contents,rK.is))&&(void 0===e.range||ro.is(e.range))},(rW||(rW={})).create=function(e,t){return t?{label:e,documentation:t}:{label:e}},(rH||(rH={})).create=function(e,t,...r){let n={label:e};return ny.defined(t)&&(n.documentation=t),ny.defined(r)?n.parameters=r:n.parameters=[],n},(tw=rz||(rz={})).Text=1,tw.Read=2,tw.Write=3,(rY||(rY={})).create=function(e,t){let r={range:e};return ny.number(t)&&(r.kind=t),r},(tb=rq||(rq={})).File=1,tb.Module=2,tb.Namespace=3,tb.Package=4,tb.Class=5,tb.Method=6,tb.Property=7,tb.Field=8,tb.Constructor=9,tb.Enum=10,tb.Interface=11,tb.Function=12,tb.Variable=13,tb.Constant=14,tb.String=15,tb.Number=16,tb.Boolean=17,tb.Array=18,tb.Object=19,tb.Key=20,tb.Null=21,tb.EnumMember=22,tb.Struct=23,tb.Event=24,tb.Operator=25,tb.TypeParameter=26,(rX||(rX={})).Deprecated=1,(rQ||(rQ={})).create=function(e,t,r,n,i){let a={name:e,kind:t,location:{uri:n,range:r}};return i&&(a.containerName=i),a},(rJ||(rJ={})).create=function(e,t,r,n){return void 0!==n?{name:e,kind:t,location:{uri:r,range:n}}:{name:e,kind:t,location:{uri:r}}},(tO=r0||(r0={})).create=function(e,t,r,n,i,a){let s={name:e,detail:t,kind:r,range:n,selectionRange:i};return void 0!==a&&(s.children=a),s},tO.is=function(e){return e&&ny.string(e.name)&&ny.number(e.kind)&&ro.is(e.range)&&ro.is(e.selectionRange)&&(void 0===e.detail||ny.string(e.detail))&&(void 0===e.deprecated||ny.boolean(e.deprecated))&&(void 0===e.children||Array.isArray(e.children))&&(void 0===e.tags||Array.isArray(e.tags))},(t_=r1||(r1={})).Empty="",t_.QuickFix="quickfix",t_.Refactor="refactor",t_.RefactorExtract="refactor.extract",t_.RefactorInline="refactor.inline",t_.RefactorRewrite="refactor.rewrite",t_.Source="source",t_.SourceOrganizeImports="source.organizeImports",t_.SourceFixAll="source.fixAll",(tP=r2||(r2={})).Invoked=1,tP.Automatic=2,(tM=r4||(r4={})).create=function(e,t,r){let n={diagnostics:e};return null!=t&&(n.only=t),null!=r&&(n.triggerKind=r),n},tM.is=function(e){return ny.defined(e)&&ny.typedArray(e.diagnostics,rv.is)&&(void 0===e.only||ny.typedArray(e.only,ny.string))&&(void 0===e.triggerKind||e.triggerKind===r2.Invoked||e.triggerKind===r2.Automatic)},(tD=r7||(r7={})).create=function(e,t,r){let n={title:e},i=!0;return"string"==typeof t?(i=!1,n.kind=t):rE.is(t)?n.command=t:n.edit=t,i&&void 0!==r&&(n.kind=r),n},tD.is=function(e){return e&&ny.string(e.title)&&(void 0===e.diagnostics||ny.typedArray(e.diagnostics,rv.is))&&(void 0===e.kind||ny.string(e.kind))&&(void 0!==e.edit||void 0!==e.command)&&(void 0===e.command||rE.is(e.command))&&(void 0===e.isPreferred||ny.boolean(e.isPreferred))&&(void 0===e.edit||r$.is(e.edit))},(tZ=r3||(r3={})).create=function(e,t){let r={range:e};return ny.defined(t)&&(r.data=t),r},tZ.is=function(e){return ny.defined(e)&&ro.is(e.range)&&(ny.undefined(e.command)||rE.is(e.command))},(tU=r5||(r5={})).create=function(e,t){return{tabSize:e,insertSpaces:t}},tU.is=function(e){return ny.defined(e)&&ny.uinteger(e.tabSize)&&ny.boolean(e.insertSpaces)},(tF=r9||(r9={})).create=function(e,t,r){return{range:e,target:t,data:r}},tF.is=function(e){return ny.defined(e)&&ro.is(e.range)&&(ny.undefined(e.target)||ny.string(e.target))},(tG=r6||(r6={})).create=function(e,t){return{range:e,parent:t}},tG.is=function(e){return ny.objectLiteral(e)&&ro.is(e.range)&&(void 0===e.parent||tG.is(e.parent))},(tB=r8||(r8={})).namespace="namespace",tB.type="type",tB.class="class",tB.enum="enum",tB.interface="interface",tB.struct="struct",tB.typeParameter="typeParameter",tB.parameter="parameter",tB.variable="variable",tB.property="property",tB.enumMember="enumMember",tB.event="event",tB.function="function",tB.method="method",tB.macro="macro",tB.keyword="keyword",tB.modifier="modifier",tB.comment="comment",tB.string="string",tB.number="number",tB.regexp="regexp",tB.operator="operator",tB.decorator="decorator",(tj=ne||(ne={})).declaration="declaration",tj.definition="definition",tj.readonly="readonly",tj.static="static",tj.deprecated="deprecated",tj.abstract="abstract",tj.async="async",tj.modification="modification",tj.documentation="documentation",tj.defaultLibrary="defaultLibrary",(nt||(nt={})).is=function(e){return ny.objectLiteral(e)&&(void 0===e.resultId||"string"==typeof e.resultId)&&Array.isArray(e.data)&&(0===e.data.length||"number"==typeof e.data[0])},(tK=nr||(nr={})).create=function(e,t){return{range:e,text:t}},tK.is=function(e){return null!=e&&ro.is(e.range)&&ny.string(e.text)},(tV=nn||(nn={})).create=function(e,t,r){return{range:e,variableName:t,caseSensitiveLookup:r}},tV.is=function(e){return null!=e&&ro.is(e.range)&&ny.boolean(e.caseSensitiveLookup)&&(ny.string(e.variableName)||void 0===e.variableName)},(tW=ni||(ni={})).create=function(e,t){return{range:e,expression:t}},tW.is=function(e){return null!=e&&ro.is(e.range)&&(ny.string(e.expression)||void 0===e.expression)},(tH=na||(na={})).create=function(e,t){return{frameId:e,stoppedLocation:t}},tH.is=function(e){return ny.defined(e)&&ro.is(e.stoppedLocation)},(tz=ns||(ns={})).Type=1,tz.Parameter=2,tz.is=function(e){return 1===e||2===e},(tY=no||(no={})).create=function(e){return{value:e}},tY.is=function(e){return ny.objectLiteral(e)&&(void 0===e.tooltip||ny.string(e.tooltip)||rP.is(e.tooltip))&&(void 0===e.location||rl.is(e.location))&&(void 0===e.command||rE.is(e.command))},(tq=nl||(nl={})).create=function(e,t,r){let n={position:e,label:t};return void 0!==r&&(n.kind=r),n},tq.is=function(e){return ny.objectLiteral(e)&&rs.is(e.position)&&(ny.string(e.label)||ny.typedArray(e.label,no.is))&&(void 0===e.kind||ns.is(e.kind))&&void 0===e.textEdits||ny.typedArray(e.textEdits,rR.is)&&(void 0===e.tooltip||ny.string(e.tooltip)||rP.is(e.tooltip))&&(void 0===e.paddingLeft||ny.boolean(e.paddingLeft))&&(void 0===e.paddingRight||ny.boolean(e.paddingRight))},(nu||(nu={})).createSnippet=function(e){return{kind:"snippet",value:e}},(nc||(nc={})).create=function(e,t,r,n){return{insertText:e,filterText:t,range:r,command:n}},(nd||(nd={})).create=function(e){return{items:e}},(tX=nh||(nh={})).Invoked=0,tX.Automatic=1,(nf||(nf={})).create=function(e,t){return{range:e,text:t}},(np||(np={})).create=function(e,t){return{triggerKind:e,selectedCompletionInfo:t}},(nm||(nm={})).is=function(e){return ny.objectLiteral(e)&&rn.is(e.uri)&&ny.string(e.name)},(tQ=ng||(ng={})).create=function(e,t,r,n){return new oL(e,t,r,n)},tQ.is=function(e){return!!(ny.defined(e)&&ny.string(e.uri)&&(ny.undefined(e.languageId)||ny.string(e.languageId))&&ny.uinteger(e.lineCount)&&ny.func(e.getText)&&ny.func(e.positionAt)&&ny.func(e.offsetAt))},tQ.applyEdits=function(e,t){let r=e.getText(),n=function e(t,r){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),a=t.slice(n);e(i,r),e(a,r);let s=0,o=0,l=0;for(;s=r(i[s],a[o])?t[l++]=i[s++]:t[l++]=a[o++];for(;s{let r=e.range.start.line-t.range.start.line;return 0===r?e.range.start.character-t.range.start.character:r}),i=r.length;for(let t=n.length-1;t>=0;t--){let a=n[t],s=e.offsetAt(a.range.start),o=e.offsetAt(a.range.end);if(o<=i)r=r.substring(0,s)+a.newText+r.substring(o,r.length);else throw Error("Overlapping edit");i=s}return r};class oL{constructor(e,t,r,n){this._uri=e,this._languageId=t,this._version=r,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(void 0===this._lineOffsets){let e=[],t=this._content,r=!0;for(let n=0;n0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,n=t.length;if(0===n)return rs.create(0,e);for(;re?n=i:r=i+1}let i=r-1;return rs.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],n=e.line+1=0&&t.content.splice(r,1)}}construct(e){let t=this.current;"string"==typeof e.$type&&(this.current.astNode=e),e.$cstNode=t;let r=this.nodeStack.pop();(null==r?void 0:r.content.length)===0&&this.removeNode(r)}addHiddenTokens(e){for(let t of e){let e=new oO(t.startOffset,t.image.length,y(t),t.tokenType,!0);e.root=this.rootNode,this.addHiddenToken(this.rootNode,e)}}addHiddenToken(e,t){let{offset:r,end:n}=t;for(let i=0;is&&n=0;e--){let t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}}class oP extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,oP.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...r){return this.addParents(r),super.splice(e,t,...r)}addParents(e){for(let t of e)t.container=this.parent}}class oM extends o_{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=null!=e?e:""}}let oD=Symbol("Datatype");function oZ(e){return e.$type===oD}let oU=e=>e.endsWith("\u200B")?e:e+"\u200B";class oF{constructor(e){this._unorderedGroups=new Map,this.lexer=e.parser.Lexer;let t=this.lexer.definition;this.wrapper=new oW(t,Object.assign(Object.assign({},e.parser.ParserConfig),{errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}}class oG extends oF{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new ow,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){let r=e.fragment?void 0:ez(e)?oD:eq(e),n=this.wrapper.DEFINE_RULE(oU(e.name),this.startImplementation(r,t).bind(this));return e.entry&&(this.mainRule=n),n}parse(e){this.nodeBuilder.buildRootNode(e);let t=this.lexer.tokenize(e);this.wrapper.input=t.tokens;let r=this.mainRule.call(this.wrapper,{});return this.nodeBuilder.addHiddenTokens(t.hidden),this.unorderedGroups.clear(),{value:r,lexerErrors:t.errors,parserErrors:this.wrapper.errors}}startImplementation(e,t){return r=>{let n;if(!this.isRecording()){let t={$type:e};this.stack.push(t),e===oD&&(t.value="")}try{n=t(r)}catch(e){n=void 0}return!this.isRecording()&&void 0===n&&(n=this.construct()),n}}consume(e,t,r){let n=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(n)){let e=this.nodeBuilder.buildLeafNode(n,r),{assignment:t,isCrossRef:i}=this.getAssignment(r),a=this.current;if(t){let a=en(r)?n.image:this.converter.convert(n.image,e);this.assign(t.operator,t.feature,a,e,i)}else if(oZ(a)){let t=n.image;!en(r)&&(t=this.converter.convert(t,e).toString()),a.value+=t}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&"number"==typeof e.endOffset&&!isNaN(e.endOffset)}subrule(e,t,r,n){let i;!this.isRecording()&&(i=this.nodeBuilder.buildCompositeNode(r));let a=this.wrapper.wrapSubrule(e,t,n);!this.isRecording()&&i&&i.length>0&&this.performSubruleAssignment(a,r,i)}performSubruleAssignment(e,t,r){let{assignment:n,isCrossRef:i}=this.getAssignment(t);if(n)this.assign(n.operator,n.feature,e,r,i);else if(!n){let t=this.current;if(oZ(t))t.value+=e.toString();else if("object"==typeof e&&e){let r=e.$type,n=this.assignWithoutOverride(e,t);r&&(n.$type=r);this.stack.pop(),this.stack.push(n)}}}action(e,t){if(!this.isRecording()){let r=this.current;if(!r.$cstNode&&t.feature&&t.operator){let e=(r=this.construct(!1)).$cstNode.feature;this.nodeBuilder.buildCompositeNode(e)}this.stack.pop(),this.stack.push({$type:e}),t.feature&&t.operator&&this.assign(t.operator,t.feature,r,r.$cstNode,!1)}}construct(e=!0){if(this.isRecording())return;let t=this.current;return(!function(e){for(let[t,r]of Object.entries(e))!t.startsWith("$")&&(Array.isArray(r)?r.forEach((r,i)=>{n(r)&&(r.$container=e,r.$containerProperty=t,r.$containerIndex=i)}):n(r)&&(r.$container=e,r.$containerProperty=t))}(t),this.nodeBuilder.construct(t),e&&this.stack.pop(),oZ(t))?this.converter.convert(t.value,t.$cstNode):(!function(e,t){let r=e.getTypeMetaData(t.$type);for(let e of r.properties)void 0!==e.defaultValue&&void 0===t[e.name]&&(t[e.name]=function e(t){return Array.isArray(t)?[...t.map(e)]:t}(e.defaultValue))}(this.astReflection,t),t)}getAssignment(e){if(!this.assignmentMap.has(e)){let t=eT(e,Y);this.assignmentMap.set(e,{assignment:t,isCrossRef:!!t&&Q(t.terminal)})}return this.assignmentMap.get(e)}assign(e,t,r,n,i){let a;let s=this.current;switch(a=i&&"string"==typeof r?this.linker.buildReference(s,t,n,r):r,e){case"=":s[t]=a;break;case"?=":s[t]=!0;break;case"+=":!Array.isArray(s[t])&&(s[t]=[]),s[t].push(a)}}assignWithoutOverride(e,t){for(let[r,n]of Object.entries(t)){let t=e[r];void 0===t?e[r]=n:Array.isArray(t)&&Array.isArray(n)&&(n.push(...t),e[r]=n)}return e}get definitionErrors(){return this.wrapper.definitionErrors}}class oB{buildMismatchTokenMessage(e){return aV.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return aV.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return aV.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return aV.buildEarlyExitMessage(e)}}class oj extends oB{buildMismatchTokenMessage({expected:e,actual:t}){let r=e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`;return`Expecting ${r} but found \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}}class oK extends oF{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let t=this.lexer.tokenize(e);return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){let r=this.wrapper.DEFINE_RULE(oU(e.name),this.startImplementation(t).bind(this));return e.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{let r=this.keepStackSize();try{e(t)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,r){this.wrapper.wrapConsume(e,t),!this.isRecording()&&(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,r,n){this.before(r),this.wrapper.wrapSubrule(e,t,n),this.after(r)}before(e){!this.isRecording()&&this.elementStack.push(e)}after(e){if(!this.isRecording()){let t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}}let oV={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new oj};class oW extends s6{constructor(e,t){super(e,Object.assign(Object.assign(Object.assign({},oV),{lookaheadStrategy:t&&"maxLookahead"in t?new sG({maxLookahead:t.maxLookahead}):new oE}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,r){return this.subrule(e,t,{ARGS:[r]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}}function oH(e,t,r){return function(e,t){let r=eK(t,!1);for(let n of p(t.rules).filter(Z).filter(e=>r.has(e))){let t=Object.assign(Object.assign({},e),{consume:1,optional:1,subrule:1,many:1,or:1});t.rules.set(n.name,e.parser.rule(n,oz(t,n.definition)))}}({parser:t,tokens:r,rules:new Map,ruleNames:new Map},e),t}function oz(e,t,r=!1){let n;if(en(t))n=function(e,t){let r=e.consume++,n=e.tokens[t.value];if(!n)throw Error("Could not find token for keyword: "+t.value);return()=>e.parser.consume(r,n,t)}(e,t);else if(V(t))n=function(e,t){let r=eq(t);return()=>e.parser.action(r,t)}(e,t);else if(Y(t))n=oz(e,t.terminal);else if(Q(t))n=function e(t,r,n=r.terminal){if(n){if(eo(n)&&Z(n.rule.ref)){let e=t.subrule++;return i=>t.parser.subrule(e,oQ(t,n.rule.ref),r,i)}else if(eo(n)&&G(n.rule.ref)){let e=t.consume++,i=oJ(t,n.rule.ref.name);return()=>t.parser.consume(e,i,r)}else if(en(n)){let e=t.consume++,i=oJ(t,n.value);return()=>t.parser.consume(e,i,r)}else throw Error("Could not build cross reference parser")}{if(!r.type.ref)throw Error("Could not resolve reference to type: "+r.type.$refText);let n=eH(r.type.ref),i=null==n?void 0:n.terminal;if(!i)throw Error("Could not find name assignment for type: "+eq(r.type.ref));return e(t,r,i)}}(e,t);else if(eo(t))n=function(e,t){let r=t.rule.ref;if(Z(r)){let n=e.subrule++,i=t.arguments.length>0?function(e,t){let r=t.map(e=>oY(e.value));return t=>{let n={};for(let i=0;i({});return a=>e.parser.subrule(n,oQ(e,r),t,i(a))}if(G(r)){let n=e.consume++,i=oJ(e,r.name);return()=>e.parser.consume(n,i,t)}if(r)A(r);else throw new R(t.$cstNode,`Undefined rule type: ${t.$type}`)}(e,t);else if(H(t))n=function(e,t){if(1===t.elements.length)return oz(e,t.elements[0]);{let r=[];for(let n of t.elements){let t={ALT:oz(e,n,!0)},i=oq(n);i&&(t.GATE=oY(i)),r.push(t)}let n=e.or++;return t=>e.parser.alternatives(n,r.map(e=>{let r={ALT:()=>e.ALT(t)},n=e.GATE;return n&&(r.GATE=()=>n(t)),r}))}}(e,t);else if(ef(t))n=function(e,t){if(1===t.elements.length)return oz(e,t.elements[0]);let r=[];for(let n of t.elements){let t={ALT:oz(e,n,!0)},i=oq(n);i&&(t.GATE=oY(i)),r.push(t)}let n=e.or++,i=(e,t)=>{let r=t.getRuleStack().join("-");return`uGroup_${e}_${r}`},a=oX(e,oq(t),t=>e.parser.alternatives(n,r.map((r,a)=>{let s={ALT:()=>!0},o=e.parser;s.ALT=()=>{if(r.ALT(t),!o.isRecording()){let e=i(n,o);!o.unorderedGroups.get(e)&&o.unorderedGroups.set(e,[]);let t=o.unorderedGroups.get(e);void 0===(null==t?void 0:t[a])&&(t[a]=!0)}};let l=r.GATE;return l?s.GATE=()=>l(t):s.GATE=()=>{let e=o.unorderedGroups.get(i(n,o));return!(null==e?void 0:e[a])},s})),"*");return t=>{a(t),!e.parser.isRecording()&&e.parser.unorderedGroups.delete(i(n,e.parser))}}(e,t);else if(et(t))n=function(e,t){let r=t.elements.map(t=>oz(e,t));return e=>r.forEach(t=>t(e))}(e,t);else{var i;if(i=t,ey.isInstance(i,J)){let r=e.consume++;n=()=>e.parser.consume(r,aB,t)}else throw new R(t.$cstNode,`Unexpected element type: ${t.$type}`)}return oX(e,r?void 0:oq(t),n,t.cardinality)}function oY(e){var t,r,n,i,a;if(t=e,ey.isInstance(t,L)){let t=oY(e.left),r=oY(e.right);return e=>t(e)||r(e)}if(r=e,ey.isInstance(r,$)){let t=oY(e.left),r=oY(e.right);return e=>t(e)&&r(e)}else{;if(n=e,ey.isInstance(n,P)){let t=oY(e.value);return e=>!t(e)}else{;if(i=e,ey.isInstance(i,M)){let t=e.parameter.ref.name;return e=>void 0!==e&&!0===e[t]}else{;if(a=e,ey.isInstance(a,C)){let t=!!e.true;return()=>t}}}}A(e)}function oq(e){if(et(e))return e.guardCondition}function oX(e,t,r,n){let i=t&&oY(t);if(!n){if(!i)return r;{let t=e.or++;return n=>e.parser.alternatives(t,[{ALT:()=>r(n),GATE:()=>i(n)},{ALT:s5(),GATE:()=>!i(n)}])}}if("*"===n){let t=e.many++;return n=>e.parser.many(t,{DEF:()=>r(n),GATE:i?()=>i(n):void 0})}if("+"===n){let t=e.many++;if(!i)return n=>e.parser.atLeastOne(t,{DEF:()=>r(n)});{let n=e.or++;return a=>e.parser.alternatives(n,[{ALT:()=>e.parser.atLeastOne(t,{DEF:()=>r(a)}),GATE:()=>i(a)},{ALT:s5(),GATE:()=>!i(a)}])}}if("?"===n){let t=e.optional++;return n=>e.parser.optional(t,{DEF:()=>r(n),GATE:i?()=>i(n):void 0})}else A(n)}function oQ(e,t){let r=function(e,t){if(Z(t))return t.name;if(e.ruleNames.has(t))return e.ruleNames.get(t);{let r=t,n=r.$container,i=t.$type;for(;!Z(n);)(et(n)||H(n)||ef(n))&&(i=n.elements.indexOf(r).toString()+":"+i),r=n,n=n.$container;return i=n.name+":"+i,e.ruleNames.set(t,i),i}}(e,t),n=e.rules.get(r);if(!n)throw Error(`Rule "${r}" not found."`);return n}function oJ(e,t){let r=e.tokens[t];if(!r)throw Error(`Token "${t}" not found."`);return r}class o0{buildTokens(e,t){let r=p(eK(e,!1)),n=this.buildTerminalTokens(r),i=this.buildKeywordTokens(r,n,t);return n.forEach(e=>{let t=e.PATTERN;"object"==typeof t&&t&&"test"in t&&eB(t)?i.unshift(e):i.push(e)}),i}buildTerminalTokens(e){return e.filter(G).filter(e=>!e.fragment).map(e=>this.buildTerminalToken(e)).toArray()}buildTerminalToken(e){let t=eX(e),r=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,n={name:e.name,PATTERN:r,LINE_BREAKS:!0};return e.hidden&&(n.GROUP=eB(t)?a$.SKIPPED:"hidden"),n}requiresCustomPattern(e){return!!e.flags.includes("u")||!!(e.source.includes("?<=")||e.source.includes("?(t.lastIndex=r,t.exec(e))}buildKeywordTokens(e,t,r){return e.filter(Z).flatMap(e=>eR(e).filter(en)).distinct(e=>e.value).toArray().sort((e,t)=>t.value.length-e.value.length).map(e=>this.buildKeywordToken(e,t,!!(null==r?void 0:r.caseInsensitive)))}buildKeywordToken(e,t,r){return{name:e.value,PATTERN:this.buildKeywordPattern(e,r),LONGER_ALT:this.findLongerAlt(e,t)}}buildKeywordPattern(e,t){var r;return t?new RegExp((r=e.value,Array.prototype.map.call(r,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:ej(e)).join(""))):e.value}findLongerAlt(e,t){return t.reduce((t,r)=>{let n=null==r?void 0:r.PATTERN;return(null==n?void 0:n.source)&&function(e,t){let r=function(e){"string"==typeof e&&(e=new RegExp(e));let t=e,r=e.source,n=0;return new RegExp(function e(){let i="",a;function s(e){i+=r.substr(n,e),n+=e}function o(e){i+="(?:"+r.substr(n,e)+"|$)",n+=e}for(;n",n)-n+1);break;default:o(2)}break;case"[":(a=/\[(?:\\.|.)*?\]/g).lastIndex=n,o((a=a.exec(r)||[])[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":s(1);break;case"{":(a=/\{\d+,?\d*\}/g).lastIndex=n,(a=a.exec(r))?s(a[0].length):o(1);break;case"(":if("?"===r[n+1])switch(r[n+2]){case":":i+="(?:",n+=3,i+=e()+"|$)";break;case"=":i+="(?=",n+=3,i+=e()+")";break;case"!":a=n,n+=3,e(),i+=r.substr(a,n-a);break;case"<":switch(r[n+3]){case"=":case"!":a=n,n+=4,e(),i+=r.substr(a,n-a);break;default:s(r.indexOf(">",n)-n+1),i+=e()+"|$)"}}else s(1),i+=e()+"|$)";break;case")":return++n,i;default:o(1)}return i}(),e.flags)}(e),n=t.match(r);return!!n&&n[0].length>0}("^"+n.source+"$",e.value)&&t.push(r),t},[])}}class o1{convert(e,t){let r=t.grammarSource;if(Q(r)&&(r=function(e){if(e.terminal)return e.terminal;if(e.type.ref){let t=eH(e.type.ref);return null==t?void 0:t.terminal}}(r)),eo(r)){let n=r.rule.ref;if(!n)throw Error("This cst node was not parsed by a rule.");return this.runConverter(n,e,t)}return e}runConverter(e,t,r){var n,i,a,s,o;switch(e.name.toUpperCase()){case"INT":return nT.convertInt(t);case"STRING":return nT.convertString(t);case"ID":return nT.convertID(t)}switch(null===(n=G(i=e)?null!==(s=null===(a=i.type)||void 0===a?void 0:a.name)&&void 0!==s?s:"string":ez(i)?i.name:null!==(o=eY(i))&&void 0!==o?o:i.name)||void 0===n?void 0:n.toLowerCase()){case"number":return nT.convertNumber(t);case"boolean":return nT.convertBoolean(t);case"bigint":return nT.convertBigint(t);case"date":return nT.convertDate(t);default:return t}}}(tJ=nT||(nT={})).convertString=function(e){let t="";for(let r=1;r=10&&(o4=t,await new Promise(e=>{"undefined"==typeof setImmediate?setTimeout(e,0):setImmediate(e)})),e.isCancellationRequested)throw o7}class o9{constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>(e(t),this),this.reject=e=>(t(e),this)})}}class o6{constructor(e,t,r,n){this._uri=e,this._languageId=t,this._version=r,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){for(let t of e)if(o6.isIncremental(t)){let e=lt(t.range),r=this.offsetAt(e.start),n=this.offsetAt(e.end);this._content=this._content.substring(0,r)+t.text+this._content.substring(n,this._content.length);let i=Math.max(e.start.line,0),a=Math.max(e.end.line,0),s=this._lineOffsets,o=o8(t.text,!1,r);if(a-i===o.length)for(let e=0,t=o.length;ee?n=i:r=i+1}let i=r-1;return e=this.ensureBeforeEOL(e,t[i]),{line:i,character:e-t[i]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line];if(e.character<=0)return r;let n=e.line+1t&&le(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){return null!=e&&"string"==typeof e.text&&void 0!==e.range&&(void 0===e.rangeLength||"number"==typeof e.rangeLength)}static isFull(e){return null!=e&&"string"==typeof e.text&&void 0===e.range&&void 0===e.rangeLength}}(t0=nv||(nv={})).create=function(e,t,r,n){return new o6(e,t,r,n)},t0.update=function(e,t,r){if(e instanceof o6)return e.update(t,r),e;throw Error("TextDocument.update: document must be created by TextDocument.create")},t0.applyEdits=function(e,t){let r=e.getText(),n=function e(t,r){if(t.length<=1)return t;let n=t.length/2|0,i=t.slice(0,n),a=t.slice(n);e(i,r),e(a,r);let s=0,o=0,l=0;for(;s=r(i[s],a[o])?t[l++]=i[s++]:t[l++]=a[o++];for(;s{let r=e.range.start.line-t.range.start.line;return 0===r?e.range.start.character-t.range.start.character:r}),i=0,a=[];for(let t of n){let n=e.offsetAt(t.range.start);if(ni&&a.push(r.substring(i,n));t.newText.length&&a.push(t.newText),i=e.offsetAt(t.range.end)}return a.push(r.substr(i)),a.join("")};function o8(e,t,r=0){let n=t?[r]:[];for(let t=0;tr.line||t.line===r.line&&t.character>r.character?{start:r,end:t}:e}function lr(e){let t=lt(e.range);return t!==e.range?{newText:e.newText,range:t}:e}(()=>{var e={470:e=>{function t(e){if("string"!=typeof e)throw TypeError("Path must be a string. Received "+JSON.stringify(e))}function r(e,t){for(var r,n="",i=0,a=-1,s=0,o=0;o<=e.length;++o){if(o2){var l=n.lastIndexOf("/");if(l!==n.length-1){-1===l?(n="",i=0):i=(n=n.slice(0,l)).length-1-n.lastIndexOf("/"),a=o,s=0;continue}}else if(2===n.length||1===n.length){n="",i=0,a=o,s=0;continue}}t&&(n.length>0?n+="/..":n="..",i=2)}else n.length>0?n+="/"+e.slice(a+1,o):n=e.slice(a+1,o),i=o-a-1;a=o,s=0}else 46===r&&-1!==s?++s:s=-1}return n}var n={resolve:function(){for(var e,n,i="",a=!1,s=arguments.length-1;s>=-1&&!a;s--)s>=0?e=arguments[s]:(void 0===n&&(n=process.cwd()),e=n),t(e),0!==e.length&&(i=e+"/"+i,a=47===e.charCodeAt(0));return i=r(i,!a),a?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(e){if(t(e),0===e.length)return".";var n=47===e.charCodeAt(0),i=47===e.charCodeAt(e.length-1);return 0!==(e=r(e,!n)).length||n||(e="."),e.length>0&&i&&(e+="/"),n?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0==arguments.length)return".";for(var e,r=0;r0&&(void 0===e?e=i:e+="/"+i)}return void 0===e?".":n.normalize(e)},relative:function(e,r){if(t(e),t(r),e===r||(e=n.resolve(e))===(r=n.resolve(r)))return"";for(var i=1;iu){if(47===r.charCodeAt(o+d))return r.slice(o+d+1);if(0===d)return r.slice(o+d)}else s>u&&(47===e.charCodeAt(i+d)?c=d:0===d&&(c=0));break}var h=e.charCodeAt(i+d);if(h!==r.charCodeAt(o+d))break;47===h&&(c=d)}var f="";for(d=i+c+1;d<=a;++d)d!==a&&47!==e.charCodeAt(d)||(0===f.length?f+="..":f+="/..");return f.length>0?f+r.slice(o+c):(o+=c,47===r.charCodeAt(o)&&++o,r.slice(o))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var r=e.charCodeAt(0),n=47===r,i=-1,a=!0,s=e.length-1;s>=1;--s)if(47===(r=e.charCodeAt(s))){if(!a){i=s;break}}else a=!1;return -1===i?n?"/":".":n&&1===i?"//":e.slice(0,i)},basename:function(e,r){if(void 0!==r&&"string"!=typeof r)throw TypeError('"ext" argument must be a string');t(e);var n,i=0,a=-1,s=!0;if(void 0!==r&&r.length>0&&r.length<=e.length){if(r.length===e.length&&r===e)return"";var o=r.length-1,l=-1;for(n=e.length-1;n>=0;--n){var u=e.charCodeAt(n);if(47===u){if(!s){i=n+1;break}}else -1===l&&(s=!1,l=n+1),o>=0&&(u===r.charCodeAt(o)?-1==--o&&(a=n):(o=-1,a=l))}return i===a?a=l:-1===a&&(a=e.length),e.slice(i,a)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!s){i=n+1;break}}else -1===a&&(s=!1,a=n+1);return -1===a?"":e.slice(i,a)},extname:function(e){t(e);for(var r=-1,n=0,i=-1,a=!0,s=0,o=e.length-1;o>=0;--o){var l=e.charCodeAt(o);if(47!==l)-1===i&&(a=!1,i=o+1),46===l?-1===r?r=o:1!==s&&(s=1):-1!==r&&(s=-1);else if(!a){n=o+1;break}}return -1===r||-1===i||0===s||1===s&&r===i-1&&r===n+1?"":e.slice(r,i)},format:function(e){var t,r,n,i;if(null===e||"object"!=typeof e)throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return t=0,n=(r=e).dir||r.root,i=r.base||(r.name||"")+(r.ext||""),n?n===r.root?n+i:n+"/"+i:i},parse:function(e){t(e);var r={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return r;var n,i=e.charCodeAt(0),a=47===i;a?(r.root="/",n=1):n=0;for(var s=-1,o=0,l=-1,u=!0,c=e.length-1,d=0;c>=n;--c)if(47!==(i=e.charCodeAt(c)))-1===l&&(u=!1,l=c+1),46===i?-1===s?s=c:1!==d&&(d=1):-1!==s&&(d=-1);else if(!u){o=c+1;break}return -1===s||-1===l||0===d||1===d&&s===l-1&&s===o+1?-1!==l&&(r.base=r.name=0===o&&a?e.slice(1,l):e.slice(o,l)):(0===o&&a?(r.name=e.slice(1,s),r.base=e.slice(1,l)):(r.name=e.slice(o,s),r.base=e.slice(o,l)),r.ext=e.slice(s,l)),o>0?r.dir=e.slice(0,o-1):a&&(r.dir="/"),r},sep:"/",delimiter:":",win32:null,posix:null};n.posix=n,e.exports=n}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}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),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{let e;(r.r(n),r.d(n,{URI:()=>l,Utils:()=>v}),"object"==typeof process)?e="win32"===process.platform:"object"==typeof navigator&&(e=navigator.userAgent.indexOf("Windows")>=0);let t=/^\w[\w\d+.-]*$/,i=/^\//,a=/^\/\//;function s(e,r){if(!e.scheme&&r)throw Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!t.test(e.scheme))throw Error("[UriError]: Scheme contains illegal characters.");if(e.path){if(e.authority){if(!i.test(e.path))throw Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(a.test(e.path))throw Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let o=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class l{static isUri(e){return e instanceof l||!!e&&"string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"string"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString}scheme;authority;path;query;fragment;constructor(e,t,r,n,i,a=!1){var o,l;"object"==typeof e?(this.scheme=e.scheme||"",this.authority=e.authority||"",this.path=e.path||"",this.query=e.query||"",this.fragment=e.fragment||""):(this.scheme=(o=e,l=a,o||l?o:"file"),this.authority=t||"",this.path=function(e,t){switch(e){case"https":case"http":case"file":t?"/"!==t[0]&&(t="/"+t):t="/"}return t}(this.scheme,r||""),this.query=n||"",this.fragment=i||"",s(this,a))}get fsPath(){return p(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:r,path:n,query:i,fragment:a}=e;return void 0===t?t=this.scheme:null===t&&(t=""),void 0===r?r=this.authority:null===r&&(r=""),void 0===n?n=this.path:null===n&&(n=""),void 0===i?i=this.query:null===i&&(i=""),void 0===a?a=this.fragment:null===a&&(a=""),t===this.scheme&&r===this.authority&&n===this.path&&i===this.query&&a===this.fragment?this:new c(t,r,n,i,a)}static parse(e,t=!1){let r=o.exec(e);return r?new c(r[2]||"",y(r[4]||""),y(r[5]||""),y(r[7]||""),y(r[9]||""),t):new c("","","","","")}static file(t){let r="";if(e&&(t=t.replace(/\\/g,"/")),"/"===t[0]&&"/"===t[1]){let e=t.indexOf("/",2);-1===e?(r=t.substring(2),t="/"):(r=t.substring(2,e),t=t.substring(e)||"/")}return new c("file",r,t,"","")}static from(e){let t=new c(e.scheme,e.authority,e.path,e.query,e.fragment);return s(t,!0),t}toString(e=!1){return m(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof l)return e;{let t=new c(e);return t._formatted=e.external,t._fsPath=e._sep===u?e.fsPath:null,t}}return e}}let u=e?1:void 0;class c extends l{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=p(this,!1)),this._fsPath}toString(e=!1){return e?m(this,!0):(this._formatted||(this._formatted=m(this,!1)),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=u),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}let d={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function h(e,t,r){let n,i=-1;for(let a=0;a=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||45===s||46===s||95===s||126===s||t&&47===s||r&&91===s||r&&93===s||r&&58===s)-1!==i&&(n+=encodeURIComponent(e.substring(i,a)),i=-1),void 0!==n&&(n+=e.charAt(a));else{void 0===n&&(n=e.substr(0,a));let t=d[s];void 0!==t?(-1!==i&&(n+=encodeURIComponent(e.substring(i,a)),i=-1),n+=t):-1===i&&(i=a)}}return -1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function f(e){let t;for(let r=0;r1&&"file"===t.scheme?`//${t.authority}${t.path}`:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&90>=t.path.charCodeAt(1)||t.path.charCodeAt(1)>=97&&122>=t.path.charCodeAt(1))&&58===t.path.charCodeAt(2)?r?t.path.substr(1):t.path[1].toLowerCase()+t.path.substr(2):t.path,e&&(n=n.replace(/\//g,"\\")),n}function m(e,t){let r=t?f:h,n="",{scheme:i,authority:a,path:s,query:o,fragment:l}=e;if(i&&(n+=i,n+=":"),(a||"file"===i)&&(n+="/",n+="/"),a){let e=a.indexOf("@");if(-1!==e){let t=a.substr(0,e);a=a.substr(e+1),-1===(e=t.lastIndexOf(":"))?n+=r(t,!1,!1):(n+=r(t.substr(0,e),!1,!1),n+=":",n+=r(t.substr(e+1),!1,!0)),n+="@"}-1===(e=(a=a.toLowerCase()).lastIndexOf(":"))?n+=r(a,!1,!0):(n+=r(a.substr(0,e),!1,!0),n+=a.substr(e))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2)){let e=s.charCodeAt(1);e>=65&&e<=90&&(s=`/${String.fromCharCode(e+32)}:${s.substr(3)}`)}else if(s.length>=2&&58===s.charCodeAt(1)){let e=s.charCodeAt(0);e>=65&&e<=90&&(s=`${String.fromCharCode(e+32)}:${s.substr(2)}`)}n+=r(s,!0,!1)}return o&&(n+="?",n+=r(o,!1,!1)),l&&(n+="#",n+=t?l:h(l,!1,!1)),n}let g=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function y(e){return e.match(g)?e.replace(g,e=>(function e(t){try{return decodeURIComponent(t)}catch{return t.length>3?t.substr(0,3)+e(t.substr(3)):t}})(e)):e}var T,v,E=r(470);let R=E.posix||E;(T=v||(v={})).joinPath=function(e,...t){return e.with({path:R.join(e.path,...t)})},T.resolvePath=function(e,...t){let r=e.path,n=!1;"/"!==r[0]&&(r="/"+r,n=!0);let i=R.resolve(r,...t);return n&&"/"===i[0]&&!e.authority&&(i=i.substring(1)),e.with({path:i})},T.dirname=function(e){if(0===e.path.length||"/"===e.path)return e;let t=R.dirname(e.path);return 1===t.length&&46===t.charCodeAt(0)&&(t=""),e.with({path:t})},T.basename=function(e){return R.basename(e.path)},T.extname=function(e){return R.extname(e.path)}})(),nE=n})();let{URI:ln,Utils:li}=nE;(t1=nR||(nR={})).basename=li.basename,t1.dirname=li.dirname,t1.extname=li.extname,t1.joinPath=li.joinPath,t1.resolvePath=li.resolvePath,t1.equals=function(e,t){return(null==e?void 0:e.toString())===(null==t?void 0:t.toString())},t1.relative=function(e,t){let r="string"==typeof e?e:e.path,n="string"==typeof t?t:t.path,i=r.split("/").filter(e=>e.length>0),a=n.split("/").filter(e=>e.length>0),s=0;for(;snull!=r?r:r=nv.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,null!=t?t:"")}}class ls{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory}get all(){return p(this.documentMap.values())}addDocument(e){let t=e.uri.toString();if(this.documentMap.has(t))throw Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){let t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let r=this.getDocument(e);return r?r:(r=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(r),r)}createDocument(e,t,r){if(r)return this.langiumDocumentFactory.fromString(t,e,r).then(e=>(this.addDocument(e),e));{let r=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(r),r}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){let t=e.toString(),r=this.documentMap.get(t);return r&&(r.state=nA.Changed,r.precomputedScopes=void 0,r.references=[],r.diagnostics=void 0),r}deleteDocument(e){let t=e.toString(),r=this.documentMap.get(t);return r&&(r.state=nA.Changed,this.documentMap.delete(t)),r}}class lo{constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,t=o2.CancellationToken.None){for(let r of eA(e.parseResult.value))await o5(t),eI(r).forEach(t=>this.doLink(t,e))}doLink(e,t){let r=e.reference;if(void 0===r._ref)try{let t=this.getCandidate(e);if(a(t))r._ref=t;else if(r._nodeDescription=t,this.langiumDocuments().hasDocument(t.documentUri)){let n=this.loadAstNode(t);r._ref=null!=n?n:this.createLinkingError(e,t)}}catch(t){r._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${r.$refText}': ${t}`})}t.references.push(r)}unlink(e){for(let t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){let t=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return null!=t?t:this.createLinkingError(e)}buildReference(e,t,r,i){let s=this,o={$refNode:r,$refText:i,get ref(){var l,u;if(n(this._ref))return this._ref;if("object"==typeof(u=this._nodeDescription)&&null!==u&&"string"==typeof u.name&&"string"==typeof u.type&&"string"==typeof u.path){let r=s.loadAstNode(this._nodeDescription);this._ref=null!=r?r:s.createLinkingError({reference:o,container:e,property:t},this._nodeDescription)}else if(void 0===this._ref){let r=s.getLinkedNode({reference:o,container:e,property:t});if(r.error&&ev(e).state=e.end)return t.ref}}if(r){let t=this.nameProvider.getNameNode(r);if(t&&(t===e||function(e,t){for(;e.container;)if((e=e.container)===t)return!0;return!1}(e,t)))return r}}}findDeclarationNode(e){let t=this.findDeclaration(e);if(null==t?void 0:t.$cstNode){let e=this.nameProvider.getNameNode(t);return null!=e?e:t.$cstNode}}findReferences(e,t){let r=[];if(t.includeDeclaration){let t=this.getReferenceToSelf(e);t&&r.push(t)}let n=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(n=n.filter(e=>nR.equals(e.sourceUri,t.documentUri))),r.push(...n),p(r)}getReferenceToSelf(e){let t=this.nameProvider.getNameNode(e);if(t){let r=ev(e),n=this.nodeLocator.getAstNodePath(e);return{sourceUri:r.uri,sourcePath:n,targetUri:r.uri,targetPath:n,segment:T(t),local:!0}}}}class lc{constructor(e){if(this.map=new Map,e)for(let[t,r]of e)this.add(t,r)}get size(){return t5.sum(p(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(void 0===t)return this.map.delete(e);{let r=this.map.get(e);if(r){let n=r.indexOf(t);if(n>=0)return 1===r.length?this.map.delete(e):r.splice(n,1),!0}return!1}}get(e){var t;return null!==(t=this.map.get(e))&&void 0!==t?t:[]}has(e,t){if(void 0===t)return this.map.has(e);{let r=this.map.get(e);return!!r&&r.indexOf(t)>=0}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,r)=>t.forEach(t=>e(t,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return p(this.map.entries()).flatMap(([e,t])=>t.map(t=>[e,t]))}keys(){return p(this.map.keys())}values(){return p(this.map.values()).flat()}entriesGroupedByKey(){return p(this.map.entries())}}class ld{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[t,r]of e)this.set(t,r)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let t=this.map.get(e);return void 0!==t&&(this.map.delete(e),this.inverse.delete(t),!0)}}class lh{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=o2.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,r=eE,n=o2.CancellationToken.None){let i=[];for(let a of(this.exportNode(e,i,t),r(e)))await o5(n),this.exportNode(a,i,t);return i}exportNode(e,t,r){let n=this.nameProvider.getName(e);n&&t.push(this.descriptions.createDescription(e,n,r))}async computeLocalScopes(e,t=o2.CancellationToken.None){let r=e.parseResult.value,n=new lc;for(let i of eR(r))await o5(t),this.processNode(i,e,n);return n}processNode(e,t,r){let n=e.$container;if(n){let i=this.nameProvider.getName(e);i&&r.add(n,this.descriptions.createDescription(e,i,t))}}}class lf{constructor(e,t,r){var n;this.elements=e,this.outerScope=t,this.caseInsensitive=null!==(n=null==r?void 0:r.caseInsensitive)&&void 0!==n&&n}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let t=this.caseInsensitive?this.elements.find(t=>t.name.toLowerCase()===e.toLowerCase()):this.elements.find(t=>t.name===e);return t?t:this.outerScope?this.outerScope.getElement(e):void 0}}class lp{constructor(e,t,r){var n;for(let t of(this.elements=new Map,this.caseInsensitive=null!==(n=null==r?void 0:r.caseInsensitive)&&void 0!==n&&n,e)){let e=this.caseInsensitive?t.name.toLowerCase():t.name;this.elements.set(e,t)}this.outerScope=t}getElement(e){let t=this.caseInsensitive?e.toLowerCase():e,r=this.elements.get(t);return r?r:this.outerScope?this.outerScope.getElement(e):void 0}getAllElements(){let e=p(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class lm{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw Error("This cache has already been disposed")}}class lg extends lm{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(!!t){let r=t();return this.cache.set(e,r),r}}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class ly extends lm{constructor(e){super(),this.cache=new Map,this.converter=null!=e?e:e=>e}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,r){this.throwIfDisposed(),this.cacheForContext(e).set(t,r)}get(e,t,r){this.throwIfDisposed();let n=this.cacheForContext(e);if(n.has(t))return n.get(t);if(!!r){let e=r();return n.set(t,e),e}}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){let t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){let t=this.converter(e),r=this.cache.get(t);return!r&&(r=new Map,this.cache.set(t,r)),r}}class lT extends lg{constructor(e){super(),this.onDispose(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class lv{constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new lT(e.shared)}getScope(e){let t=[],r=this.reflection.getReferenceType(e),n=ev(e.container).precomputedScopes;if(n){let i=e.container;do{let e=n.get(i);e.length>0&&t.push(p(e).filter(e=>this.reflection.isSubtype(e.type,r))),i=i.$container}while(i)}let i=this.getGlobalScope(r,e);for(let e=t.length-1;e>=0;e--)i=this.createScope(t[e],i);return i}createScope(e,t,r){return new lf(p(e),t,r)}createScopeForNodes(e,t,r){return new lf(p(e).map(e=>{let t=this.nameProvider.getName(e);if(t)return this.descriptions.createDescription(e,t)}).nonNullable(),t,r)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new lp(this.indexManager.allElements(e)))}}function lE(e){return"object"==typeof e&&!!e&&("$ref"in e||"$error"in e)}class lR{constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,t={}){let r=null==t?void 0:t.replacer,n=(e,r)=>this.replacer(e,r,t),i=r?(e,t)=>r(e,t,n):n;try{return this.currentDocument=ev(e),JSON.stringify(e,i,null==t?void 0:t.space)}finally{this.currentDocument=void 0}}deserialize(e,t={}){let r=JSON.parse(e);return this.linkNode(r,r,t),r}replacer(e,t,{refText:r,sourceText:a,textRegions:s,comments:o,uriConverter:l}){var u,c,d,h;if(!this.ignoreProperties.has(e)){if(i(t)){let e=t.ref,n=r?t.$refText:void 0;if(!e)return{$error:null!==(c=null===(u=t.error)||void 0===u?void 0:u.message)&&void 0!==c?c:"Could not resolve reference",$refText:n};{let r=ev(e),i="";this.currentDocument&&this.currentDocument!==r&&(i=l?l(r.uri,t):r.uri.toString());let a=this.astNodeLocator.getAstNodePath(e);return{$ref:`${i}#${a}`,$refText:n}}}if(!n(t))return t;else{let r;if(s&&(r=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&(null==r?void 0:r.$textRegion)&&(r.$textRegion.documentURI=null===(d=this.currentDocument)||void 0===d?void 0:d.uri.toString())),a&&!e&&(null!=r||(r=Object.assign({},t)),r.$sourceText=null===(h=t.$cstNode)||void 0===h?void 0:h.text),o){null!=r||(r=Object.assign({},t));let e=this.commentProvider.getComment(t);e&&(r.$comment=e.replace(/\r/g,""))}return null!=r?r:t}}}addAstNodeRegionWithAssignmentsTo(e){let t=e=>({offset:e.offset,end:e.end,length:e.length,range:e.range});if(e.$cstNode){let r=(e.$textRegion=t(e.$cstNode)).assignments={};return Object.keys(e).filter(e=>!e.startsWith("$")).forEach(n=>{var i,a;let s=(i=e.$cstNode,a=n,i&&a?eW(i,a,i.astNode,!0):[]).map(t);0!==s.length&&(r[n]=s)}),e}}linkNode(e,t,r,i,a,s){for(let[i,a]of Object.entries(e))if(Array.isArray(a))for(let s=0;s{try{await e.call(t,r,n,i)}catch(t){if(t===o7)throw t;console.error("An error occurred during validation:",t);let e=t instanceof Error?t.message:String(t);t instanceof Error&&t.stack&&console.error(t.stack),n("error","An error occurred during validation: "+e,{node:r})}}}addEntry(e,t){if("AstNode"===e){this.entries.add("AstNode",t);return}for(let r of this.reflection.getAllSubTypes(e))this.entries.add(r,t)}getChecks(e,t){let r=p(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(r=r.filter(e=>t.includes(e.category))),r.map(e=>e.check)}}class lx{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},r=o2.CancellationToken.None){let n=e.parseResult,i=[];if(await o5(r),!t.categories||t.categories.includes("built-in")){if(this.processLexingErrors(n,i,t),t.stopAfterLexingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===nI.LexingError}))return i;if(this.processParsingErrors(n,i,t),t.stopAfterParsingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===nI.ParsingError}))return i;if(this.processLinkingErrors(e,i,t),t.stopAfterLinkingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===nI.LinkingError}))return i}try{i.push(...await this.validateAst(n.value,t,r))}catch(e){if(e===o7)throw e;console.error("An error occurred during validation:",e)}return await o5(r),i}processLexingErrors(e,t,r){for(let r of e.lexerErrors){let e={severity:lS("error"),range:{start:{line:r.line-1,character:r.column-1},end:{line:r.line-1,character:r.column+r.length-1}},message:r.message,data:{code:nI.LexingError},source:this.getSource()};t.push(e)}}processParsingErrors(e,t,r){for(let r of e.parserErrors){let e;if(isNaN(r.token.startOffset)){if("previousToken"in r){let t=r.previousToken;if(isNaN(t.startOffset)){let t={line:0,character:0};e={start:t,end:t}}else{let r={line:t.endLine-1,character:t.endColumn};e={start:r,end:r}}}}else e=y(r.token);if(e){let n={severity:lS("error"),range:e,message:r.message,data:{code:nI.ParsingError},source:this.getSource()};t.push(n)}}}processLinkingErrors(e,t,r){for(let r of e.references){let e=r.error;if(e){let r={node:e.container,property:e.property,index:e.index,data:{code:nI.LinkingError,containerType:e.container.$type,property:e.property,refText:e.reference.$refText}};t.push(this.toDiagnostic("error",e.message,r))}}}async validateAst(e,t,r=o2.CancellationToken.None){let n=[],i=(e,t,r)=>{n.push(this.toDiagnostic(e,t,r))};return await Promise.all(eA(e).map(async e=>{for(let n of(await o5(r),this.validationRegistry.getChecks(e.$type,t.categories)))await n(e,i,r)})),n}toDiagnostic(e,t,r){return{message:t,range:function(e){let t;return e.range?e.range:("string"==typeof e.property?t=eV(e.node.$cstNode,e.property,e.index):"string"==typeof e.keyword&&(t=function(e,t,r){if(!e)return;let n=function(e,t,r){let n;if(e.astNode!==r)return[];if(en(e.grammarSource)&&e.grammarSource.value===t)return[e];let i=g(e).iterator(),a=[];do if(!(n=i.next()).done){let e=n.value;e.astNode===r?en(e.grammarSource)&&e.grammarSource.value===t&&a.push(e):i.prune()}while(!n.done);return a}(e,t,null==e?void 0:e.astNode);if(0!==n.length)return r=void 0!==r?Math.max(0,Math.min(r,n.length-1)):0,n[r]}(e.node.$cstNode,e.keyword,e.index)),null!=t||(t=e.node.$cstNode),t)?t.range:{start:{line:0,character:0},end:{line:0,character:0}}}(r),severity:lS(e),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function lS(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw Error("Invalid diagnostic severity: "+e)}}(t4=nI||(nI={})).LexingError="lexing-error",t4.ParsingError="parsing-error",t4.LinkingError="linking-error";class lN{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,r=ev(e)){let n;null!=t||(t=this.nameProvider.getName(e));let i=this.astNodeLocator.getAstNodePath(e);if(!t)throw Error(`Node at path ${i} has no name.`);let a=()=>{var t;return null!=n?n:n=T(null!==(t=this.nameProvider.getNameNode(e))&&void 0!==t?t:e.$cstNode)};return{node:e,name:t,get nameSegment(){return a()},selectionSegment:T(e.$cstNode),type:e.$type,documentUri:r.uri,path:i}}}class lC{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=o2.CancellationToken.None){let r=[];for(let n of eA(e.parseResult.value))await o5(t),eI(n).filter(e=>!a(e)).forEach(e=>{let t=this.createDescription(e);t&&r.push(t)});return r}createDescription(e){let t=e.reference.$nodeDescription,r=e.reference.$refNode;if(!t||!r)return;let n=ev(e.container).uri;return{sourceUri:n,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:T(r),local:nR.equals(t.documentUri,n)}}}class l${constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let t=this.getAstNodePath(e.$container),r=this.getPathSegment(e);return t+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw Error("Missing '$containerProperty' in AST node.");return void 0!==t?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((e,t)=>{if(!e||0===t.length)return e;let r=t.indexOf(this.indexSeparator);if(r>0){let n=t.substring(0,r),i=parseInt(t.substring(r+1)),a=e[n];return null==a?void 0:a[i]}return e[t]},e)}}class lL{constructor(e){this._ready=new o9,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,r;this.workspaceConfig=null!==(r=null===(t=e.capabilities.workspace)||void 0===t?void 0:t.configuration)&&void 0!==r&&r}async initialized(e){if(this.workspaceConfig){if(e.register){let t=this.serviceRegistry.all;e.register({section:t.map(e=>this.toSectionName(e.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let t=this.serviceRegistry.all.map(e=>({section:this.toSectionName(e.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(t);t.forEach((e,t)=>{this.updateSectionConfiguration(e.section,r[t])})}}this._ready.resolve()}updateConfiguration(e){if(!!e.settings)Object.keys(e.settings).forEach(t=>{this.updateSectionConfiguration(t,e.settings[t])})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;let r=this.toSectionName(e);if(this.settings[r])return this.settings[r][t]}toSectionName(e){return`${e}`}}(nx||(nx={})).create=function(e){return{dispose:async()=>await e()}};class lw{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new lc,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=nA.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},r=o2.CancellationToken.None){var n,i;for(let r of e){let e=r.uri.toString();if(r.state===nA.Validated){if("boolean"==typeof t.validation&&t.validation)r.state=nA.IndexedReferences,r.diagnostics=void 0,this.buildState.delete(e);else if("object"==typeof t.validation){let a=this.buildState.get(e),s=null===(n=null==a?void 0:a.result)||void 0===n?void 0:n.validationChecks;if(s){let n=(null!==(i=t.validation.categories)&&void 0!==i?i:nk.all).filter(e=>!s.includes(e));n.length>0&&(this.buildState.set(e,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:n})},result:a.result}),r.state=nA.IndexedReferences)}}}else this.buildState.delete(e)}this.currentState=nA.Changed,await this.emitUpdate(e.map(e=>e.uri),[]),await this.buildDocuments(e,t,r)}async update(e,t,r=o2.CancellationToken.None){for(let e of(this.currentState=nA.Changed,t))this.langiumDocuments.deleteDocument(e),this.buildState.delete(e.toString()),this.indexManager.remove(e);for(let t of e){if(!this.langiumDocuments.invalidateDocument(t)){let e=this.langiumDocumentFactory.fromModel({$type:"INVALID"},t);e.state=nA.Changed,this.langiumDocuments.addDocument(e)}this.buildState.delete(t.toString())}let n=p(e).concat(t).map(e=>e.toString()).toSet();this.langiumDocuments.all.filter(e=>!n.has(e.uri.toString())&&this.shouldRelink(e,n)).forEach(e=>{this.serviceRegistry.getServices(e.uri).references.Linker.unlink(e),e.state=Math.min(e.state,nA.ComputedScopes),e.diagnostics=void 0}),await this.emitUpdate(e,t),await o5(r);let i=this.langiumDocuments.all.filter(e=>{var t;return e.stater(e,t)))}shouldRelink(e,t){return!!e.references.some(e=>void 0!==e.error)||this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),nx.create(()=>{let t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,r){this.prepareBuild(e,t),await this.runCancelable(e,nA.Parsed,r,e=>this.langiumDocumentFactory.update(e,r)),await this.runCancelable(e,nA.IndexedContent,r,e=>this.indexManager.updateContent(e,r)),await this.runCancelable(e,nA.ComputedScopes,r,async e=>{let t=this.serviceRegistry.getServices(e.uri).references.ScopeComputation;e.precomputedScopes=await t.computeLocalScopes(e,r)}),await this.runCancelable(e,nA.Linked,r,e=>this.serviceRegistry.getServices(e.uri).references.Linker.link(e,r)),await this.runCancelable(e,nA.IndexedReferences,r,e=>this.indexManager.updateReferences(e,r));let n=e.filter(e=>this.shouldValidate(e));for(let t of(await this.runCancelable(n,nA.Validated,r,e=>this.validate(e,r)),e)){let e=this.buildState.get(t.uri.toString());e&&(e.completed=!0)}}prepareBuild(e,t){for(let r of e){let e=r.uri.toString(),n=this.buildState.get(e);(!n||n.completed)&&this.buildState.set(e,{completed:!1,options:t,result:null==n?void 0:n.result})}}async runCancelable(e,t,r,n){let i=e.filter(e=>e.state{this.buildPhaseListeners.delete(e,t)})}waitUntil(e,t,r){let n;if(t&&"path"in t?n=t:r=t,null!=r||(r=o2.CancellationToken.None),n){let t=this.langiumDocuments.getDocument(n);if(t&&t.state>e)return Promise.resolve(n)}return this.currentState>=e?Promise.resolve(void 0):r.isCancellationRequested?Promise.reject(o7):new Promise((t,i)=>{let a=this.onBuildPhase(e,()=>{if(a.dispose(),s.dispose(),n){let e=this.langiumDocuments.getDocument(n);t(null==e?void 0:e.uri)}else t(void 0)}),s=r.onCancellationRequested(()=>{a.dispose(),s.dispose(),i(o7)})})}async notifyBuildPhase(e,t,r){if(0!==e.length)for(let n of this.buildPhaseListeners.get(t))await o5(r),await n(e,r)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var r,n;let i=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,a=this.getBuildOptions(e).validation,s="object"==typeof a?a:void 0,o=await i.validateDocument(e,s,t);e.diagnostics?e.diagnostics.push(...o):e.diagnostics=o;let l=this.buildState.get(e.uri.toString());if(l){null!==(r=l.result)&&void 0!==r||(l.result={});let e=null!==(n=null==s?void 0:s.categories)&&void 0!==n?n:nk.all;l.result.validationChecks?l.result.validationChecks.push(...e):l.result.validationChecks=[...e]}}getBuildOptions(e){var t,r;return null!==(r=null===(t=this.buildState.get(e.uri.toString()))||void 0===t?void 0:t.options)&&void 0!==r?r:{}}}class lb{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new ly,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){let r=ev(e).uri,n=[];return this.referenceIndex.forEach(e=>{e.forEach(e=>{nR.equals(e.targetUri,r)&&e.targetPath===t&&n.push(e)})}),p(n)}allElements(e,t){let r=p(this.symbolIndex.keys());return t&&(r=r.filter(e=>!t||t.has(e))),r.map(t=>this.getFileDescriptions(t,e)).flat()}getFileDescriptions(e,t){var r;return t?this.symbolByTypeIndex.get(e,t,()=>{var r;return(null!==(r=this.symbolIndex.get(e))&&void 0!==r?r:[]).filter(e=>this.astReflection.isSubtype(e.type,t))}):null!==(r=this.symbolIndex.get(e))&&void 0!==r?r:[]}remove(e){let t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=o2.CancellationToken.None){let r=this.serviceRegistry.getServices(e.uri),n=await r.references.ScopeComputation.computeExports(e,t),i=e.uri.toString();this.symbolIndex.set(i,n),this.symbolByTypeIndex.clear(i)}async updateReferences(e,t=o2.CancellationToken.None){let r=this.serviceRegistry.getServices(e.uri),n=await r.workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),n)}isAffected(e,t){let r=this.referenceIndex.get(e.uri.toString());return!!r&&r.some(e=>!e.local&&t.has(e.targetUri.toString()))}}class lO{constructor(e){this.initialBuildOptions={},this._ready=new o9,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}initialize(e){var t;this.folders=null!==(t=e.workspaceFolders)&&void 0!==t?t:void 0}initialized(e){return this.mutex.write(e=>{var t;return this.initializeWorkspace(null!==(t=this.folders)&&void 0!==t?t:[],e)})}async initializeWorkspace(e,t=o2.CancellationToken.None){let r=await this.performStartup(e);await o5(t),await this.documentBuilder.build(r,this.initialBuildOptions,t)}async performStartup(e){let t=this.serviceRegistry.all.flatMap(e=>e.LanguageMetaData.fileExtensions),r=[],n=e=>{r.push(e),!this.langiumDocuments.hasDocument(e.uri)&&this.langiumDocuments.addDocument(e)};return await this.loadAdditionalDocuments(e,n),await Promise.all(e.map(e=>[e,this.getRootFolder(e)]).map(async e=>this.traverseFolder(...e,t,n))),this._ready.resolve(),r}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return ln.parse(e.uri)}async traverseFolder(e,t,r,n){let i=await this.fileSystemProvider.readDirectory(t);await Promise.all(i.map(async t=>{this.includeEntry(e,t,r)&&(t.isDirectory?await this.traverseFolder(e,t.uri,r,n):t.isFile&&n(await this.langiumDocuments.getOrCreateDocument(t.uri)))}))}includeEntry(e,t,r){let n=nR.basename(t.uri);if(n.startsWith("."))return!1;if(t.isDirectory)return"node_modules"!==n&&"out"!==n;if(t.isFile){let e=nR.extname(t.uri);return r.includes(e)}return!1}}class l_{constructor(e){let t=e.parser.TokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);let r=lM(t)?Object.values(t):t;this.chevrotainLexer=new a$(r,{positionTracking:"full"})}get definition(){return this.tokenTypes}tokenize(e){var t;let r=this.chevrotainLexer.tokenize(e);return{tokens:r.tokens,errors:r.errors,hidden:null!==(t=r.groups.hidden)&&void 0!==t?t:[]}}toTokenTypeDictionary(e){if(lM(e))return e;let t=lP(e)?Object.values(e.modes).flat():e,r={};return t.forEach(e=>r[e.name]=e),r}}function lP(e){return e&&"modes"in e&&"defaultMode"in e}function lM(e){var t;return!(Array.isArray(t=e)&&(0===t.length||"name"in t[0]))&&!lP(e)}function lD(e){let t="";return(t="string"==typeof e?e:e.text).split(eU)}let lZ=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,lU=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu,lF=/\S/,lG=/\s*$/;function lB(e,t){let r=e.substring(t).match(lF);return r?t+r.index:e.length}function lj(e){let t=e.tokens[e.index],r=t,n=t,i=[];for(;t&&"break"!==t.type&&"tag"!==t.type;)i.push(function(e){return"inline-tag"===e.tokens[e.index].type?lK(e,!0):lV(e)}(e)),n=t,t=e.tokens[e.index];return new lq(i,ro.create(r.range.start,n.range.end))}function lK(e,t){let r=e.tokens[e.index++],n=r.content.substring(1),i=e.tokens[e.index];if((null==i?void 0:i.type)==="text"){if(t){let i=lV(e);return new lY(n,new lq([i],i.range),t,ro.create(r.range.start,i.range.end))}{let i=lj(e);return new lY(n,i,t,ro.create(r.range.start,i.range.end))}}{let e=r.range;return new lY(n,new lq([],e),t,e)}}function lV(e){let t=e.tokens[e.index++];return new lX(t.content,t.range)}function lW(e){if(!e)return lW({start:"/**",end:"*/",line:"*"});let{start:t,end:r,line:n}=e;return{start:lH(t,!0),end:lH(r,!1),line:lH(n,!0)}}function lH(e,t){if("string"!=typeof e&&"object"!=typeof e)return e;{let r="string"==typeof e?ej(e):e.source;return t?RegExp(`^\\s*${r}`):RegExp(`\\s*${r}\\s*$`)}}class lz{constructor(e,t){this.elements=e,this.range=t}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let t of this.elements)if(0===e.length)e=t.toString();else{let r=t.toString();e+=lQ(e)+r}return e.trim()}toMarkdown(e){let t="";for(let r of this.elements)if(0===t.length)t=r.toMarkdown(e);else{let n=r.toMarkdown(e);t+=lQ(t)+n}return t.trim()}}class lY{constructor(e,t,r,n){this.name=e,this.content=t,this.inline=r,this.range=n}toString(){let e=`@${this.name}`,t=this.content.toString();return(1===this.content.inlines.length?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e} +${t}`),this.inline)?`{${e}}`:e}toMarkdown(e){var t,r;return null!==(r=null===(t=null==e?void 0:e.renderTag)||void 0===t?void 0:t.call(e,this))&&void 0!==r?r:this.toMarkdownDefault(e)}toMarkdownDefault(e){let t=this.content.toMarkdown(e);if(this.inline){let r=function(e,t,r){var n,i;if("linkplain"===e||"linkcode"===e||"link"===e){let a=t.indexOf(" "),s=t;if(a>0){let e=lB(t,a);s=t.substring(e),t=t.substring(0,a)}return("linkcode"===e||"link"===e&&"code"===r.link)&&(s=`\`${s}\``),null!==(i=null===(n=r.renderLink)||void 0===n?void 0:n.call(r,t,s))&&void 0!==i?i:function(e,t){try{return ln.parse(e,!0),`[${t}](${e})`}catch(t){return e}}(t,s)}}(this.name,t,null!=e?e:{});if("string"==typeof r)return r}let r="";(null==e?void 0:e.tag)==="italic"||(null==e?void 0:e.tag)===void 0?r="*":(null==e?void 0:e.tag)==="bold"?r="**":(null==e?void 0:e.tag)==="bold-italic"&&(r="***");let n=`${r}@${this.name}${r}`;return(1===this.content.inlines.length?n=`${n} \u{2014} ${t}`:this.content.inlines.length>1&&(n=`${n} +${t}`),this.inline)?`{${n}}`:n}}class lq{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;tr.range.start.line&&(e+="\n")}return e}toMarkdown(e){let t="";for(let r=0;rn.range.start.line&&(t+="\n")}return t}}class lX{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}}function lQ(e){return e.endsWith("\n")?"\n":"\n\n"}class lJ{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let t=this.commentProvider.getComment(e);if(t&&function(e,t){let r=lW(void 0),n=lD(e);if(0===n.length)return!1;let i=n[0],a=n[n.length-1],s=r.start,o=r.end;return!!(null==s?void 0:s.exec(i))&&!!(null==o?void 0:o.exec(a))}(t))return(function(e,t,r){let n,i;"string"==typeof e?(i=void 0,n=void 0):(i=e.range.start,n=t),!i&&(i=rs.create(0,0));let a=lD(e);return function(e){var t,r,n,i;let a=rs.create(e.position.line,e.position.character);if(0===e.tokens.length)return new lz([],ro.create(a,a));let s=[];for(;e.index=c.length){if(i.length>0){let e=rs.create(a,s);i.push({type:"break",content:"",range:ro.create(e,e)})}}else{lZ.lastIndex=d;let e=lZ.exec(c);if(e){let t=e[0],r=e[1],n=rs.create(a,s+d),o=rs.create(a,s+d+t.length);i.push({type:"tag",content:r,range:ro.create(n,o)}),d+=t.length,d=lB(c,d)}if(d0&&i.push({type:"text",content:t.substring(a,e),range:ro.create(rs.create(r,a+n),rs.create(r,e+n))});let l=o.length+1,u=s[1];if(i.push({type:"inline-tag",content:u,range:ro.create(rs.create(r,a+l+n),rs.create(r,a+l+u.length+n))}),l+=u.length,4===s.length){l+=s[2].length;let e=s[3];i.push({type:"text",content:e,range:ro.create(rs.create(r,a+l+n),rs.create(r,a+l+e.length+n))})}else i.push({type:"text",content:"",range:ro.create(rs.create(r,a+l+n),rs.create(r,a+l+n))});a=e+s[0].length}let s=t.substring(a);s.length>0&&i.push({type:"text",content:s,range:ro.create(rs.create(r,a+n),rs.create(r,a+n+s.length))})}return i}(t,e,a,s+d))}}a++,s=0}return i.length>0&&"break"===i[i.length-1].type?i.slice(0,-1):i}({lines:a,position:i,options:lW(n)}),position:i})})(t).toMarkdown({renderLink:(t,r)=>this.documentationLinkRenderer(e,t,r),renderTag:t=>this.documentationTagRenderer(e,t)})}documentationLinkRenderer(e,t,r){var n;let i=null!==(n=this.findNameInPrecomputedScopes(e,t))&&void 0!==n?n:this.findNameInGlobalScope(e,t);if(!!i&&!!i.nameSegment){let e=i.nameSegment.range.start.line+1,t=i.nameSegment.range.start.character+1,n=i.documentUri.with({fragment:`L${e},${t}`});return`[${r}](${n.toString()})`}}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){let r=ev(e).precomputedScopes;if(!r)return;let n=e;do{let e=r.get(n).find(e=>e.name===t);if(e)return e;n=n.$container}while(n)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(e=>e.name===t)}}class l0{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return"string"==typeof e.$comment?e.$comment:null===(t=function(e,t){if(e){let r=function(e,t=!0){for(;e.container;){let r=e.container,n=r.content.indexOf(e);for(;n>0;){n--;let e=r.content[n];if(t||!e.hidden)return e}e=r}}(e,!0);if(r&&E(r,t))return r;if(u(e)){let r=e.content.findIndex(e=>!e.hidden);for(let n=r-1;n>=0;n--){let r=e.content[n];if(E(r,t))return r}}}}(e.$cstNode,this.grammarConfig().multilineCommentRules))||void 0===t?void 0:t.text}}r("27135");class l1{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e){return Promise.resolve(this.syncParser.parse(e))}}class l2{constructor(){this.previousTokenSource=new o2.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let t=new o2.CancellationTokenSource;return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,r){let n=new o9,i={action:t,deferred:n,cancellationToken:null!=r?r:o2.CancellationToken.None};return e.push(i),this.performNextOperation(),n.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else{if(!(this.readQueue.length>0))return;e.push(...this.readQueue.splice(0,this.readQueue.length))}this.done=!1,await Promise.all(e.map(async({action:e,deferred:t,cancellationToken:r})=>{try{let n=await Promise.resolve().then(()=>e(r));t.resolve(n)}catch(e){if(e===o7)t.resolve(void 0);else t.reject(e)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class l4{constructor(e){this.grammarElementIdMap=new ld,this.tokenTypeIdMap=new ld,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors.map(e=>Object.assign({},e)),parserErrors:e.parserErrors.map(e=>Object.assign({},e)),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}createDehyrationContext(e){let t=new Map,r=new Map;for(let r of eA(e))t.set(r,{});if(e.$cstNode)for(let t of g(e.$cstNode))r.set(t,{});return{astNodes:t,cstNodes:r}}dehydrateAstNode(e,t){let r=t.astNodes.get(e);for(let[a,s]of(r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,void 0!==e.$cstNode&&(r.$cstNode=this.dehydrateCstNode(e.$cstNode,t)),Object.entries(e))){if(!a.startsWith("$"))if(Array.isArray(s)){let e=[];for(let o of(r[a]=e,s))n(o)?e.push(this.dehydrateAstNode(o,t)):i(o)?e.push(this.dehydrateReference(o,t)):e.push(o)}else n(s)?r[a]=this.dehydrateAstNode(s,t):i(s)?r[a]=this.dehydrateReference(s,t):void 0!==s&&(r[a]=s)}return r}dehydrateReference(e,t){let r={};return r.$refText=e.$refText,e.$refNode&&(r.$refNode=t.cstNodes.get(e.$refNode)),r}dehydrateCstNode(e,t){let r=t.cstNodes.get(e);return u(e)?r.fullText=e.fullText:r.grammarSource=this.getGrammarElementId(e.grammarSource),r.hidden=e.hidden,r.astNode=t.astNodes.get(e.astNode),o(e)?r.content=e.content.map(e=>this.dehydrateCstNode(e,t)):l(e)&&(r.tokenType=e.tokenType.name,r.offset=e.offset,r.length=e.length,r.startLine=e.range.start.line,r.startColumn=e.range.start.character,r.endLine=e.range.end.line,r.endColumn=e.range.end.character),r}hydrate(e){let t=e.value,r=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,r),{lexerErrors:e.lexerErrors,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,r)}}createHydrationContext(e){let t;let r=new Map,n=new Map;for(let t of eA(e))r.set(t,{});if(e.$cstNode)for(let r of g(e.$cstNode)){let e;"fullText"in r?t=e=new oM(r.fullText):"content"in r?e=new o_:"tokenType"in r&&(e=this.hydrateCstLeafNode(r)),e&&(n.set(r,e),e.root=t)}return{astNodes:r,cstNodes:n}}hydrateAstNode(e,t){let r=t.astNodes.get(e);for(let[a,s]of(r.$type=e.$type,r.$containerIndex=e.$containerIndex,r.$containerProperty=e.$containerProperty,e.$cstNode&&(r.$cstNode=t.cstNodes.get(e.$cstNode)),Object.entries(e))){if(!a.startsWith("$"))if(Array.isArray(s)){let e=[];for(let o of(r[a]=e,s))n(o)?e.push(this.setParent(this.hydrateAstNode(o,t),r)):i(o)?e.push(this.hydrateReference(o,r,a,t)):e.push(o)}else n(s)?r[a]=this.setParent(this.hydrateAstNode(s,t),r):i(s)?r[a]=this.hydrateReference(s,r,a,t):void 0!==s&&(r[a]=s)}return r}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,r,n){return this.linker.buildReference(t,r,n.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,r=0){let n=t.cstNodes.get(e);if("number"==typeof e.grammarSource&&(n.grammarSource=this.getGrammarElement(e.grammarSource)),n.astNode=t.astNodes.get(e.astNode),o(n))for(let i of e.content){let e=this.hydrateCstNode(i,t,r++);n.content.push(e)}return n}hydrateCstLeafNode(e){let t=this.getTokenType(e.tokenType),r=e.offset,n=e.length,i=e.startLine,a=e.startColumn,s=e.endLine,o=e.endColumn;return new oO(r,n,{start:{line:i,character:a},end:{line:s,character:o}},t,e.hidden)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap();let t=this.grammarElementIdMap.getKey(e);if(t)return t;throw Error("Invalid grammar element id: "+e)}createGrammarElementIdMap(){let e=0;for(let r of eA(this.grammar)){var t;if(t=r,ey.isInstance(t,N))this.grammarElementIdMap.set(r,e++)}}}function l7(e){return{documentation:{CommentProvider:e=>new l0(e),DocumentationProvider:e=>new lJ(e)},parser:{AsyncParser:e=>new l1(e),GrammarConfig:e=>(function(e){let t=[];for(let n of e.Grammar.rules){var r;if(G(n)&&(r=n).hidden&&!eX(r).test(" ")&&function(e){try{return"string"==typeof e&&(e=new RegExp(e)),e=e.toString(),eG.reset(e),eG.visit(eF.pattern(e)),eG.multiline}catch(e){return!1}}(eX(n)))t.push(n.name)}return{multilineCommentRules:t,nameRegexp:v}})(e),LangiumParser:e=>(function(e){let t=function(e){let t=e.Grammar,r=e.parser.Lexer;return oH(t,new oG(e),r.definition)}(e);return t.finalize(),t})(e),CompletionParser:e=>(function(e){let t=e.Grammar,r=e.parser.Lexer,n=new oK(e);return oH(t,n,r.definition),n.finalize(),n})(e),ValueConverter:()=>new o1,TokenBuilder:()=>new o0,Lexer:e=>new l_(e),ParserErrorMessageProvider:()=>new oj},workspace:{AstNodeLocator:()=>new l$,AstNodeDescriptionProvider:e=>new lN(e),ReferenceDescriptionProvider:e=>new lC(e)},references:{Linker:e=>new lo(e),NameProvider:()=>new ll,ScopeProvider:e=>new lv(e),ScopeComputation:e=>new lh(e),References:e=>new lu(e)},serializer:{Hydrator:e=>new l4(e),JsonSerializer:e=>new lR(e)},validation:{DocumentValidator:e=>new lx(e),ValidationRegistry:e=>new lI(e)},shared:()=>e.shared}}function l3(e){return{ServiceRegistry:()=>new lA,workspace:{LangiumDocuments:e=>new ls(e),LangiumDocumentFactory:e=>new la(e),DocumentBuilder:e=>new lw(e),IndexManager:e=>new lb(e),WorkspaceManager:e=>new lO(e),FileSystemProvider:t=>e.fileSystemProvider(t),WorkspaceLock:()=>new l2,ConfigurationProvider:e=>new lL(e)}}}function l5(e,t,r,n,i,a,s,o,l){return l6([e,t,r,n,i,a,s,o,l].reduce(ut,{}))}(nS||(nS={})).merge=(e,t)=>ut(ut({},e),t);let l9=Symbol("isProxy");function l6(e,t){let r=new Proxy({},{deleteProperty:()=>!1,get:(n,i)=>ue(n,i,e,t||r),getOwnPropertyDescriptor:(n,i)=>(ue(n,i,e,t||r),Object.getOwnPropertyDescriptor(n,i)),has:(t,r)=>r in e,ownKeys:()=>[...Reflect.ownKeys(e),l9]});return r[l9]=!0,r}let l8=Symbol();function ue(e,t,r,n){if(t in e){if(e[t]instanceof Error)throw Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:e[t]});if(e[t]===l8)throw Error('Cycle detected. Please make "'+String(t)+'" lazy. See https://langium.org/docs/configuration-services/#resolving-cyclic-dependencies');return e[t]}if(t in r){let i=r[t];e[t]=l8;try{e[t]="function"==typeof i?i(n):l6(i,n)}catch(r){throw e[t]=r instanceof Error?r:void 0,r}return e[t]}}function ut(e,t){if(t){for(let[r,n]of Object.entries(t))if(void 0!==n){let t=e[r];null!==t&&null!==n&&"object"==typeof t&&"object"==typeof n?e[r]=ut(t,n):e[r]=n}}return e}class ur{readFile(){throw Error("No file system is available.")}async readDirectory(){return[]}}let un={fileSystemProvider:()=>new ur},ui={Grammar:()=>void 0,LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},ua={AstReflection:()=>new eg};function us(e){var t;let r=function(){let e=l5(l3(un),ua),t=l5(l7({shared:e}),ui);return e.ServiceRegistry.register(t),t}(),n=r.serializer.JsonSerializer.deserialize(e);return r.shared.workspace.LangiumDocumentFactory.fromModel(n,ln.parse(`memory://${null!==(t=n.name)&&void 0!==t?t:"grammar"}.langium`)),n}},91201:function(e,t,r){r.d(t,{Z:function(){return i}});var n=r(2147);let i=function(e,t,r){for(var i=-1,a=e.length;++ic});var n=r("73722"),i=r("89774"),a=r("50949"),s=r("92383"),o=r("58641"),l=r("37706");let u=function(e,t,r,n){if(!(0,o.Z)(e))return e;t=(0,a.Z)(t,e);for(var u=-1,c=t.length,d=c-1,h=e;null!=h&&++u2?t[2]:void 0;for(u&&(0,a.Z)(t[0],t[1],u)&&(n=1);++rc});var n,i=r("69547"),a=r("71581"),s=r("87074"),o=r("81208"),l=r("59578"),u=Math.max;let c=(n=function(e,t,r){var n=null==e?0:e.length;if(!n)return -1;var a=null==r?0:(0,l.Z)(r);return a<0&&(a=u(n+a,0)),(0,o.Z)(e,(0,i.Z)(t,3),a)},function(e,t,r){var o=Object(e);if(!(0,a.Z)(e)){var l=(0,i.Z)(t,3);e=(0,s.Z)(e),t=function(e){return l(o[e],e,o)}}var u=n(e,t,r);return u>-1?o[l?e[u]:u]:void 0})},71134:function(e,t,r){r.d(t,{Z:function(){return i}});var n=r(39446);let i=function(e){return(null==e?0:e.length)?(0,n.Z)(e,1):[]}},29072:function(e,t,r){r.d(t,{Z:()=>s});var n=Object.prototype.hasOwnProperty;let i=function(e,t){return null!=e&&n.call(e,t)};var a=r("87825");let s=function(e,t){return null!=e&&(0,a.Z)(e,t,i)}},27884:function(e,t,r){r.d(t,{Z:function(){return s}});var n=r(65182),i=r(31739),a=r(75887);let s=function(e){return"string"==typeof e||!(0,i.Z)(e)&&(0,a.Z)(e)&&"[object String]"==(0,n.Z)(e)}},59685:function(e,t,r){r.d(t,{Z:function(){return n}});let n=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},97345:function(e,t,r){r.d(t,{Z:function(){return o}});var n=r(96248),i=r(69547),a=r(10301),s=r(31739);let o=function(e,t){return((0,s.Z)(e)?n.Z:a.Z)(e,(0,i.Z)(t,3))}},50540:function(e,t,r){r.d(t,{Z:function(){return s}});var n=r(91201),i=r(23278),a=r(94675);let s=function(e){return e&&e.length?(0,n.Z)(e,a.Z,i.Z):void 0}},29116:function(e,t,r){r.d(t,{Z:()=>m});var n=/\s/;let i=function(e){for(var t=e.length;t--&&n.test(e.charAt(t)););return t};var a=/^\s+/,s=r("58641"),o=r("2147"),l=0/0,u=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,d=/^0o[0-7]+$/i,h=parseInt;let f=function(e){if("number"==typeof e)return e;if((0,o.Z)(e))return l;if((0,s.Z)(e)){var t,r="function"==typeof e.valueOf?e.valueOf():e;e=(0,s.Z)(r)?r+"":r}if("string"!=typeof e)return 0===e?e:+e;e=(t=e)?t.slice(0,i(t)+1).replace(a,""):t;var n=c.test(e);return n||d.test(e)?h(e.slice(2),n?2:8):u.test(e)?l:+e};var p=1/0;let m=function(e){return e?(e=f(e))===p||e===-p?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0}},59578:function(e,t,r){r.d(t,{Z:function(){return i}});var n=r(29116);let i=function(e){var t=(0,n.Z)(e),r=t%1;return t==t?r?t-r:t:0}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/39505d71.493ef295.js b/pr-preview/pr-238/assets/js/39505d71.493ef295.js new file mode 100644 index 0000000000..38383eb934 --- /dev/null +++ b/pr-preview/pr-238/assets/js/39505d71.493ef295.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["5993"],{22593:function(e){e.exports=JSON.parse('{"tag":{"label":"generics","permalink":"/java-docs/pr-preview/pr-238/tags/generics","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":4,"items":[{"id":"exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal","title":"Einkaufsportal","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal"},{"id":"documentation/generics","title":"Generische Programmierung","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/generics"},{"id":"exercises/generics/generics","title":"Generische Programmierung","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/generics/"},{"id":"exam-exercises/exam-exercises-java2/class-diagrams/team","title":"Team","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/team"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/39682297.845631df.js b/pr-preview/pr-238/assets/js/39682297.845631df.js new file mode 100644 index 0000000000..f1d3708f72 --- /dev/null +++ b/pr-preview/pr-238/assets/js/39682297.845631df.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["5205"],{72234:function(a){a.exports=JSON.parse('{"tag":{"label":"lambdas","permalink":"/java-docs/pr-preview/pr-238/tags/lambdas","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":2,"items":[{"id":"documentation/lambdas","title":"Lambda-Ausdr\xfccke (Lambdas)","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/lambdas"},{"id":"exercises/lambdas/lambdas","title":"Lambda-Ausdr\xfccke (Lambdas)","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/lambdas/"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3c20829f.983a0e04.js b/pr-preview/pr-238/assets/js/3c20829f.983a0e04.js new file mode 100644 index 0000000000..c6b906a00f --- /dev/null +++ b/pr-preview/pr-238/assets/js/3c20829f.983a0e04.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7037"],{88370:function(e,t,n){n.r(t),n.d(t,{metadata:()=>s,contentTitle:()=>d,default:()=>h,assets:()=>u,toc:()=>o,frontMatter:()=>a});var s=JSON.parse('{"id":"exercises/lambdas/lambdas02","title":"Lambdas02","description":"","source":"@site/docs/exercises/lambdas/lambdas02.mdx","sourceDirName":"exercises/lambdas","slug":"/exercises/lambdas/lambdas02","permalink":"/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas02","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/lambdas/lambdas02.mdx","tags":[],"version":"current","frontMatter":{"title":"Lambdas02","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Lambdas01","permalink":"/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas01"},"next":{"title":"Lambdas03","permalink":"/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas03"}}'),r=n("85893"),i=n("50065"),l=n("39661");let a={title:"Lambdas02",description:""},d=void 0,u={},o=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Hinweise zur Klasse FilteredStudents",id:"hinweise-zur-klasse-filteredstudents",level:2}];function c(e){let t={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Gegeben sind die beiden Klassen ",(0,r.jsx)(t.code,{children:"FilteredAdultStudents"})," und\n",(0,r.jsx)(t.code,{children:"FilteredTeenStudents"}),". Beide sollen sicherstellen, dass nur bestimmte Studenten\nhinzugef\xfcgt werden k\xf6nnen. Die Klasse ",(0,r.jsx)(t.code,{children:"FilteredAdultStudents"})," erm\xf6glicht nur das\nHinzuf\xfcgen von Studenten, die mindesten 18 Jahre alt sind; die Klasse\n",(0,r.jsx)(t.code,{children:"FilteredTeenStudents"})," das Hinzuf\xfcgen von Studenten unter 18 Jahren. Dieser\nAnsatz funktioniert zwar, ist allerdings nicht flexibel."]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Erstelle eine ausf\xfchrbare Klasse, welche mehrere Objekte der Klasse ",(0,r.jsx)(t.code,{children:"Student"}),"\nerzeugt und versucht, diese Objekten der Klasse ",(0,r.jsx)(t.code,{children:"FilteredAdultList"})," bzw.\n",(0,r.jsx)(t.code,{children:"FilteredTeenList"})," hinzuzuf\xfcgen"]}),"\n",(0,r.jsxs)(t.li,{children:["Erstelle die Klasse ",(0,r.jsx)(t.code,{children:"FilteredStudents"})," anhand des abgebildeten\nKlassendiagramms"]}),"\n",(0,r.jsxs)(t.li,{children:["Passe die ausf\xfchrbare Klasse so an, dass nur noch die Klasse\n",(0,r.jsx)(t.code,{children:"FilteredStudents"})," verwendet wird und \xfcbergib dem Konstruktor das Pr\xe4dikat\njeweils in Form eines Lambda-Ausdrucks"]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,r.jsx)(t.mermaid,{value:"classDiagram\n Student --o FilteredAdultStudents\n Student --o FilteredTeenStudents\n FilteredStudents o-- Student\n FilteredStudents o-- Predicate~T~\n\n class Student {\n <>\n name: String\n age: int\n }\n\n class Predicate~T~ {\n <>\n +test(t: T) boolean\n }\n\n class FilteredAdultStudents {\n -students: List~Student~ #123;final#125;\n +FilteredAdultStudents()\n +add(student: Student) void\n +printStudents() void\n }\n\n class FilteredTeenStudents {\n -students: List~Student~ #123;final#125;\n +FilteredTeenStudents()\n +add(student: Student) void\n +printStudents() void\n }\n\n class FilteredStudents {\n -students: List~Student~ #123;final#125;\n -mandatoryFilter: Predicate~Student~ #123;final#125;\n +FilteredStudents(mandatoryFilter: Predicate~Student~)\n +add(student: Student) void\n +printStudents() void\n }"}),"\n",(0,r.jsxs)(t.h2,{id:"hinweise-zur-klasse-filteredstudents",children:["Hinweise zur Klasse ",(0,r.jsx)(t.em,{children:"FilteredStudents"})]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:"Der Konstruktor soll alle Attribute initialisieren"}),"\n",(0,r.jsxs)(t.li,{children:["Die Methode ",(0,r.jsx)(t.code,{children:"void add(student: Student)"})," soll der Studentenliste den\neingehenden Studenten hinzuf\xfcgen. Vor dem Hinzuf\xfcgen soll mit Hilfe des\nFilters \xfcberpr\xfcft werden, ob der eingehende Student hinzugef\xfcgt werden soll"]}),"\n",(0,r.jsxs)(t.li,{children:["Methode ",(0,r.jsx)(t.code,{children:"void printStudent()"})," soll alle Studenten auf der Konsole ausgeben"]}),"\n"]}),"\n",(0,r.jsx)(l.Z,{pullRequest:"68",branchSuffix:"lambdas/02"})]})}function h(e={}){let{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},5525:function(e,t,n){n.d(t,{Z:()=>l});var s=n("85893");n("67294");var r=n("67026");let i="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,r.Z)(i,l),hidden:n,children:t})}},47902:function(e,t,n){n.d(t,{Z:()=>j});var s=n("85893"),r=n("67294"),i=n("67026"),l=n("69599"),a=n("16550"),d=n("32000"),u=n("4520"),o=n("38341"),c=n("76009");function h(e){return r.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||r.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function m(e){let{value:t,tabValues:n}=e;return n.some(e=>e.value===t)}var p=n("7227");let f="tabList__CuJ",b="tabItem_LNqP";function v(e){let{className:t,block:n,selectedValue:r,selectValue:a,tabValues:d}=e,u=[],{blockElementScrollPositionUntilNextRender:o}=(0,l.o5)(),c=e=>{let t=e.currentTarget,n=d[u.indexOf(t)].value;n!==r&&(o(t),a(n))},h=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let n=u.indexOf(e.currentTarget)+1;t=u[n]??u[0];break}case"ArrowLeft":{let n=u.indexOf(e.currentTarget)-1;t=u[n]??u[u.length-1]}}t?.focus()};return(0,s.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":n},t),children:d.map(e=>{let{value:t,label:n,attributes:l}=e;return(0,s.jsx)("li",{role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,ref:e=>u.push(e),onKeyDown:h,onClick:c,...l,className:(0,i.Z)("tabs__item",b,l?.className,{"tabs__item--active":r===t}),children:n??t},t)})})}function x(e){let{lazy:t,children:n,selectedValue:l}=e,a=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){let e=a.find(e=>e.props.value===l);return e?(0,r.cloneElement)(e,{className:(0,i.Z)("margin-top--md",e.props.className)}):null}return(0,s.jsx)("div",{className:"margin-top--md",children:a.map((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==l}))})}function g(e){let t=function(e){let{defaultValue:t,queryString:n=!1,groupId:s}=e,i=function(e){let{values:t,children:n}=e;return(0,r.useMemo)(()=>{let e=t??h(n).map(e=>{let{props:{value:t,label:n,attributes:s,default:r}}=e;return{value:t,label:n,attributes:s,default:r}});return!function(e){let t=(0,o.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[t,n])}(e),[l,p]=(0,r.useState)(()=>(function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let s=n.find(e=>e.default)??n[0];if(!s)throw Error("Unexpected error: 0 tabValues");return s.value})({defaultValue:t,tabValues:i})),[f,b]=function(e){let{queryString:t=!1,groupId:n}=e,s=(0,a.k6)(),i=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n}),l=(0,u._X)(i);return[l,(0,r.useCallback)(e=>{if(!i)return;let t=new URLSearchParams(s.location.search);t.set(i,e),s.replace({...s.location,search:t.toString()})},[i,s])]}({queryString:n,groupId:s}),[v,x]=function(e){var t;let{groupId:n}=e;let s=(t=n)?`docusaurus.tab.${t}`:null,[i,l]=(0,c.Nk)(s);return[i,(0,r.useCallback)(e=>{if(!!s)l.set(e)},[s,l])]}({groupId:s}),g=(()=>{let e=f??v;return m({value:e,tabValues:i})?e:null})();return(0,d.Z)(()=>{g&&p(g)},[g]),{selectedValue:l,selectValue:(0,r.useCallback)(e=>{if(!m({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);p(e),b(e),x(e)},[b,x,i]),tabValues:i}}(e);return(0,s.jsxs)("div",{className:(0,i.Z)("tabs-container",f),children:[(0,s.jsx)(v,{...t,...e}),(0,s.jsx)(x,{...t,...e})]})}function j(e){let t=(0,p.Z)();return(0,s.jsx)(g,{...e,children:h(e.children)},String(t))}},39661:function(e,t,n){n.d(t,{Z:function(){return d}});var s=n(85893);n(67294);var r=n(47902),i=n(5525),l=n(83012),a=n(45056);function d(e){let{pullRequest:t,branchSuffix:n}=e;return(0,s.jsxs)(r.Z,{children:[(0,s.jsxs)(i.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,s.jsx)(a.Z,{language:"console",children:`git switch exercises/${n}`}),(0,s.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${n}/Exercise.java`,children:(0,s.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,s.jsxs)(i.Z,{value:"solution",label:"Solution",children:[(0,s.jsx)(a.Z,{language:"console",children:`git switch solutions/${n}`}),(0,s.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${n}/Exercise.java`,children:(0,s.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,s.jsxs)(i.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,s.jsxs)(l.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${t}/files?diff=split`,children:["PR#",t]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3c5e4b2e.f15a8c3e.js b/pr-preview/pr-238/assets/js/3c5e4b2e.f15a8c3e.js new file mode 100644 index 0000000000..e982d34d57 --- /dev/null +++ b/pr-preview/pr-238/assets/js/3c5e4b2e.f15a8c3e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["471"],{45010:function(e,t,n){n.r(t),n.d(t,{metadata:()=>i,contentTitle:()=>o,default:()=>u,assets:()=>l,toc:()=>c,frontMatter:()=>a});var i=JSON.parse('{"id":"documentation/array-lists","title":"Feldbasierte Listen (ArrayLists)","description":"","source":"@site/docs/documentation/array-lists.md","sourceDirName":"documentation","slug":"/documentation/array-lists","permalink":"/java-docs/pr-preview/pr-238/documentation/array-lists","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/array-lists.md","tags":[{"inline":true,"label":"collections","permalink":"/java-docs/pr-preview/pr-238/tags/collections"},{"inline":true,"label":"arrays","permalink":"/java-docs/pr-preview/pr-238/tags/arrays"},{"inline":true,"label":"lists","permalink":"/java-docs/pr-preview/pr-238/tags/lists"}],"version":"current","sidebarPosition":120,"frontMatter":{"title":"Feldbasierte Listen (ArrayLists)","description":"","sidebar_position":120,"tags":["collections","arrays","lists"]},"sidebar":"documentationSidebar","previous":{"title":"Felder (Arrays)","permalink":"/java-docs/pr-preview/pr-238/documentation/arrays"},"next":{"title":"Objektorientierte Programmierung","permalink":"/java-docs/pr-preview/pr-238/documentation/oo"}}'),r=n("85893"),s=n("50065");let a={title:"Feldbasierte Listen (ArrayLists)",description:"",sidebar_position:120,tags:["collections","arrays","lists"]},o=void 0,l={},c=[];function d(e){let t={code:"code",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Um das Arbeiten mit Feldern zu erleichtern, stellt die Java API die Klasse\n",(0,r.jsx)(t.code,{children:"ArrayList"})," zur Verf\xfcgung. Diese stellt eine ver\xe4nderbare Liste dynamischer\nGr\xf6\xdfe auf Basis eines Feldes dar und bietet hilfreiche Methoden zum Hinzuf\xfcgen,\n\xc4ndern, L\xf6schen und Lesen von Listelementen."]}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n List list = new ArrayList<>();\n list.add("Hans");\n list.add("Peter");\n list.add("Lisa");\n\n System.out.println(list.size());\n System.out.println(list.get(0));\n list.set(0, "Max");\n list.add("Heidi");\n list.remove(0);\n }\n\n}\n'})})]})}function u(e={}){let{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return o},a:function(){return a}});var i=n(67294);let r={},s=i.createContext(r);function a(e){let t=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3c637039.9f29a8b5.js b/pr-preview/pr-238/assets/js/3c637039.9f29a8b5.js new file mode 100644 index 0000000000..953f59b08a --- /dev/null +++ b/pr-preview/pr-238/assets/js/3c637039.9f29a8b5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7317"],{34:function(e,n,t){t.r(n),t.d(n,{metadata:()=>i,contentTitle:()=>c,default:()=>h,assets:()=>d,toc:()=>l,frontMatter:()=>a});var i=JSON.parse('{"id":"documentation/strings","title":"Zeichenketten (Strings)","description":"","source":"@site/docs/documentation/strings.md","sourceDirName":"documentation","slug":"/documentation/strings","permalink":"/java-docs/pr-preview/pr-238/documentation/strings","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/strings.md","tags":[{"inline":true,"label":"java-api","permalink":"/java-docs/pr-preview/pr-238/tags/java-api"},{"inline":true,"label":"strings","permalink":"/java-docs/pr-preview/pr-238/tags/strings"}],"version":"current","sidebarPosition":50,"frontMatter":{"title":"Zeichenketten (Strings)","description":"","sidebar_position":50,"tags":["java-api","strings"]},"sidebar":"documentationSidebar","previous":{"title":"Datenobjekte","permalink":"/java-docs/pr-preview/pr-238/documentation/data-objects"},"next":{"title":"Operatoren","permalink":"/java-docs/pr-preview/pr-238/documentation/operators"}}'),r=t("85893"),s=t("50065");let a={title:"Zeichenketten (Strings)",description:"",sidebar_position:50,tags:["java-api","strings"]},c=void 0,d={},l=[{value:"Escape-Sequenzen",id:"escape-sequenzen",level:2},{value:"Textbl\xf6cke",id:"textbl\xf6cke",level:2}];function o(e){let n={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["Ketten von beliebigen Zeichen werden durch die Klasse ",(0,r.jsx)(n.code,{children:"String"})," realisiert. Diese\nstellt einige hilfreiche Methoden zur Verf\xfcgung, die bei der Analyse und der\nVerarbeitung von Zeichenketten Verwendung finden. Die Angabe einer Zeichenkette\nerfolgt \xfcber die Anf\xfchrungszeichen."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n String text = "Winter";\n String text2 = "Coming";\n\n String text3 = text + " is " + text2;\n\n int length = text3.length();\n char charAt1 = text3.charAt(0);\n String upperCase = text3.toUpperCase();\n }\n\n}\n'})}),"\n",(0,r.jsx)(n.h2,{id:"escape-sequenzen",children:"Escape-Sequenzen"}),"\n",(0,r.jsx)(n.p,{children:"Steuer- und Sonderzeichen in Zeichenketten k\xf6nnen mit Hilfe einer Escape-Sequenz\nrealisiert werden."}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Escape-Squenz"}),(0,r.jsx)(n.th,{children:"Beschreibung"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\\n"}),(0,r.jsx)(n.td,{children:"Zeilensprung"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\\t"}),(0,r.jsx)(n.td,{children:"Tabulatorsprung"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\\\\"}),(0,r.jsx)(n.td,{children:"Schr\xe4ger rechts"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:'\\"'}),(0,r.jsx)(n.td,{children:"Anf\xfchrungszeichen"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\\'"}),(0,r.jsx)(n.td,{children:"Hochkomma"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"\\u0000 bis \\uFFFF"}),(0,r.jsx)(n.td,{children:"Unicode-Zeichen"})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"textbl\xf6cke",children:"Textbl\xf6cke"}),"\n",(0,r.jsx)(n.p,{children:"Seit Java 15 erm\xf6glichen Textbl\xf6cke mehrzeilige Zeichenketten ohne umst\xe4ndliche\nUmwege."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n String text = """\n \n \n

    Winter is Coming

    \n \n """;\n System.out.println(text);\n }\n\n}\n'})})]})}function h(e={}){let{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},50065:function(e,n,t){t.d(n,{Z:function(){return c},a:function(){return a}});var i=t(67294);let r={},s=i.createContext(r);function a(e){let n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3cbeb4a7.d547ed22.js b/pr-preview/pr-238/assets/js/3cbeb4a7.d547ed22.js new file mode 100644 index 0000000000..f1ed87874a --- /dev/null +++ b/pr-preview/pr-238/assets/js/3cbeb4a7.d547ed22.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2469"],{24034:function(e){e.exports=JSON.parse('{"tag":{"label":"git","permalink":"/java-docs/pr-preview/pr-238/tags/git","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":2,"items":[{"id":"documentation/git","title":"Git","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/git"},{"id":"exercises/git/git","title":"Git","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/git/"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3d95ca39.384a9366.js b/pr-preview/pr-238/assets/js/3d95ca39.384a9366.js new file mode 100644 index 0000000000..e7497b6120 --- /dev/null +++ b/pr-preview/pr-238/assets/js/3d95ca39.384a9366.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2315"],{12675:function(e,n,a){a.r(n),a.d(n,{metadata:()=>r,contentTitle:()=>u,default:()=>d,assets:()=>c,toc:()=>h,frontMatter:()=>i});var r=JSON.parse('{"id":"exercises/arrays/arrays","title":"Felder (Arrays)","description":"","source":"@site/docs/exercises/arrays/arrays.mdx","sourceDirName":"exercises/arrays","slug":"/exercises/arrays/","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/arrays/arrays.mdx","tags":[{"inline":true,"label":"arrays","permalink":"/java-docs/pr-preview/pr-238/tags/arrays"}],"version":"current","sidebarPosition":70,"frontMatter":{"title":"Felder (Arrays)","description":"","sidebar_position":70,"tags":["arrays"]},"sidebar":"exercisesSidebar","previous":{"title":"Loops08","permalink":"/java-docs/pr-preview/pr-238/exercises/loops/loops08"},"next":{"title":"Arrays01","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays01"}}'),t=a("85893"),s=a("50065"),l=a("94301");let i={title:"Felder (Arrays)",description:"",sidebar_position:70,tags:["arrays"]},u=void 0,c={},h=[{value:"\xdcbungsaufgaben",id:"\xfcbungsaufgaben",level:2},{value:"\xdcbungsaufgaben von tutego.de",id:"\xfcbungsaufgaben-von-tutegode",level:2},{value:"\xdcbungsaufgaben der Uni Koblenz-Landau",id:"\xfcbungsaufgaben-der-uni-koblenz-landau",level:2},{value:"\xdcbungsaufgaben der Technischen Hochschule Ulm",id:"\xfcbungsaufgaben-der-technischen-hochschule-ulm",level:2}];function o(e){let n={a:"a",h2:"h2",li:"li",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"\xfcbungsaufgaben",children:"\xdcbungsaufgaben"}),"\n","\n",(0,t.jsx)(l.Z,{}),"\n",(0,t.jsx)(n.h2,{id:"\xfcbungsaufgaben-von-tutegode",children:"\xdcbungsaufgaben von tutego.de"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe\n",(0,t.jsx)(n.a,{href:"https://tutego.de/javabuch/aufgaben/array.html#_arrays_ablaufen_und_windgeschwindigkeit_windrichtung_ausgeben",children:"I-4-1.1.1"})]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe\n",(0,t.jsx)(n.a,{href:"https://tutego.de/javabuch/aufgaben/array.html#_konstante_umsatzsteigerung_feststellen",children:"I-4-1.1.2"}),"\n(ohne Fehlerbehandlung)"]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe\n",(0,t.jsx)(n.a,{href:"https://tutego.de/javabuch/aufgaben/array.html#_aufeinanderfolgende_strings_suchen_und_feststellen_ob_salty_snook_kommt",children:"I-4-1.1.3"}),"\n(ohne Fehlerbehandlung)"]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe\n",(0,t.jsx)(n.a,{href:"https://tutego.de/javabuch/aufgaben/array.html#_array_umdrehen",children:"I-4-1.1.4"})]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe\n",(0,t.jsx)(n.a,{href:"https://tutego.de/javabuch/aufgaben/array.html#_das_n%C3%A4chste_kino_finden",children:"I-4-1.1.5"}),"\n(ohne Fehlerbehandlung)"]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe\n",(0,t.jsx)(n.a,{href:"https://tutego.de/javabuch/aufgaben/array.html#_s%C3%BC%C3%9Figkeitenladen_%C3%BCberfallen_und_fair_aufteilen",children:"I-4-1.1.6"})]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe\n",(0,t.jsx)(n.a,{href:"https://tutego.de/javabuch/aufgaben/array.html#_berge_zeichnen",children:"I-4-1.2.1"})]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe\n",(0,t.jsx)(n.a,{href:"https://tutego.de/javabuch/aufgaben/array.html#_auf_zustimmung_pr%C3%BCfen",children:"I-4-1.4.2"}),"\n(ohne Fehlerbehandlung)"]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe\n",(0,t.jsx)(n.a,{href:"https://tutego.de/javabuch/aufgaben/array.html#_hilfe_tetraphobie_alle_vieren_nach_hinten_setzen",children:"I-4-1.4.3"}),"\n(ohne Fehlerbehandlung)"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"\xfcbungsaufgaben-der-uni-koblenz-landau",children:"\xdcbungsaufgaben der Uni Koblenz-Landau"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(42255).Z+"",children:"E1"})," (ohne Fehlerbehandlung)"]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(42255).Z+"",children:"E2"})," (ohne Fehlerbehandlung)"]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(42255).Z+"",children:"E3"})," (ohne Fehlerbehandlung)"]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(42255).Z+"",children:"E4"})," (ohne Fehlerbehandlung)"]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(42255).Z+"",children:"E5"})," (ohne Fehlerbehandlung)"]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(42255).Z+"",children:"E6"})," (ohne Fehlerbehandlung)"]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(42255).Z+"",children:"E7"})," (ohne Fehlerbehandlung)"]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(42255).Z+"",children:"E8"})," (ohne Fehlerbehandlung)"]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(42255).Z+"",children:"E9"})," (ohne Fehlerbehandlung)"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"\xfcbungsaufgaben-der-technischen-hochschule-ulm",children:"\xdcbungsaufgaben der Technischen Hochschule Ulm"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(61203).Z+"",children:"Felder01"})]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(61203).Z+"",children:"Felder02"})]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(61203).Z+"",children:"Felder03"})]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(61203).Z+"",children:"Felder04"})]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(61203).Z+"",children:"Felder05"})]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(61203).Z+"",children:"Felder06"})]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(61203).Z+"",children:"Methoden01"})]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(61203).Z+"",children:"Methoden02"})]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(61203).Z+"",children:"Methoden03"})]}),"\n",(0,t.jsxs)(n.li,{children:["\xdcbungsaufgabe ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:a(61203).Z+"",children:"Methoden04"})]}),"\n"]})]})}function d(e={}){let{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},42255:function(e,n,a){a.d(n,{Z:function(){return r}});let r=a.p+"assets/files/exercises-koblenz-5125438b36e15ed612db6d300cc5935b.pdf"},61203:function(e,n,a){a.d(n,{Z:function(){return r}});let r=a.p+"assets/files/exercises-ulm-cf2cc33b9ccdae3a1c0746c07fc951bd.pdf"},94301:function(e,n,a){a.d(n,{Z:()=>k});var r=a("85893");a("67294");var t=a("67026"),s=a("69369"),l=a("83012"),i=a("43115"),u=a("63150"),c=a("96025"),h=a("34403");let o={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function d(e){let{href:n,children:a}=e;return(0,r.jsx)(l.Z,{href:n,className:(0,t.Z)("card padding--lg",o.cardContainer),children:a})}function g(e){let{href:n,icon:a,title:s,description:l}=e;return(0,r.jsxs)(d,{href:n,children:[(0,r.jsxs)(h.Z,{as:"h2",className:(0,t.Z)("text--truncate",o.cardTitle),title:s,children:[a," ",s]}),l&&(0,r.jsx)("p",{className:(0,t.Z)("text--truncate",o.cardDescription),title:l,children:l})]})}function b(e){let{item:n}=e,a=(0,s.LM)(n),t=function(){let{selectMessage:e}=(0,i.c)();return n=>e(n,(0,c.I)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:n}))}();return a?(0,r.jsx)(g,{href:a,icon:"\uD83D\uDDC3\uFE0F",title:n.label,description:n.description??t(n.items.length)}):null}function f(e){let{item:n}=e,a=(0,u.Z)(n.href)?"\uD83D\uDCC4\uFE0F":"\uD83D\uDD17",t=(0,s.xz)(n.docId??void 0);return(0,r.jsx)(g,{href:n.href,icon:a,title:n.label,description:n.description??t?.description})}function x(e){let{item:n}=e;switch(n.type){case"link":return(0,r.jsx)(f,{item:n});case"category":return(0,r.jsx)(b,{item:n});default:throw Error(`unknown item type ${JSON.stringify(n)}`)}}function j(e){let{className:n}=e,a=(0,s.jA)();return(0,r.jsx)(k,{items:a.items,className:n})}function k(e){let{items:n,className:a}=e;if(!n)return(0,r.jsx)(j,{...e});let l=(0,s.MN)(n);return(0,r.jsx)("section",{className:(0,t.Z)("row",a),children:l.map((e,n)=>(0,r.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,r.jsx)(x,{item:e})},n))})}},43115:function(e,n,a){a.d(n,{c:function(){return u}});var r=a(67294),t=a(2933);let s=["zero","one","two","few","many","other"];function l(e){return s.filter(n=>e.includes(n))}let i={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function u(){let e=function(){let{i18n:{currentLocale:e}}=(0,t.Z)();return(0,r.useMemo)(()=>{try{return function(e){let n=new Intl.PluralRules(e);return{locale:e,pluralForms:l(n.resolvedOptions().pluralCategories),select:e=>n.select(e)}}(e)}catch(n){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${n.message} +`),i}},[e])}();return{selectMessage:(n,a)=>(function(e,n,a){let r=e.split("|");if(1===r.length)return r[0];r.length>a.pluralForms.length&&console.error(`For locale=${a.locale}, a maximum of ${a.pluralForms.length} plural forms are expected (${a.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);let t=a.select(n);return r[Math.min(a.pluralForms.indexOf(t),r.length-1)]})(a,n,e)}}},50065:function(e,n,a){a.d(n,{Z:function(){return i},a:function(){return l}});var r=a(67294);let t={},s=r.createContext(t);function l(e){let n=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3df65c9e.a5a22eec.js b/pr-preview/pr-238/assets/js/3df65c9e.a5a22eec.js new file mode 100644 index 0000000000..fd60dc5801 --- /dev/null +++ b/pr-preview/pr-238/assets/js/3df65c9e.a5a22eec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4838"],{7379:function(e,n,r){r.r(n),r.d(n,{metadata:()=>i,contentTitle:()=>c,default:()=>h,assets:()=>a,toc:()=>l,frontMatter:()=>d});var i=JSON.parse('{"id":"documentation/java-api","title":"Die Java API","description":"","source":"@site/docs/documentation/java-api.md","sourceDirName":"documentation","slug":"/documentation/java-api","permalink":"/java-docs/pr-preview/pr-238/documentation/java-api","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/java-api.md","tags":[{"inline":true,"label":"java-api","permalink":"/java-docs/pr-preview/pr-238/tags/java-api"}],"version":"current","sidebarPosition":140,"frontMatter":{"title":"Die Java API","description":"","sidebar_position":140,"tags":["java-api"]},"sidebar":"documentationSidebar","previous":{"title":"Referenzen und Objekte","permalink":"/java-docs/pr-preview/pr-238/documentation/references-and-objects"},"next":{"title":"Wrapper-Klassen","permalink":"/java-docs/pr-preview/pr-238/documentation/wrappers"}}'),t=r("85893"),s=r("50065");let d={title:"Die Java API",description:"",sidebar_position:140,tags:["java-api"]},c=void 0,a={},l=[{value:"Wichtige Klassen und Schnittstellen der Java API",id:"wichtige-klassen-und-schnittstellen-der-java-api",level:2},{value:"Die Javadoc",id:"die-javadoc",level:2}];function o(e){let n={a:"a",code:"code",em:"em",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["Die ",(0,t.jsx)(n.em,{children:"Java API"})," (Java Application Programming Interface) stellt eine umfangreiche\nBibliothek wichtiger Java-Klassen dar. Neben dem eigentlichen Quellcode stellt\ndie Java API auch detaillierte Informationen zu den Klassen (Paketzugeh\xf6rigkeit,\nAttribute, Methoden,\u2026) als Javadoc bereit. Entwicklungsumgebungen wie Eclipse\nbieten meist eine vollst\xe4ndige Integration der Java API an."]}),"\n",(0,t.jsx)(n.h2,{id:"wichtige-klassen-und-schnittstellen-der-java-api",children:"Wichtige Klassen und Schnittstellen der Java API"}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Thema"}),(0,t.jsx)(n.th,{children:"Klassen"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"maps",children:"Assoziativspeicher (Maps)"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"Entry"}),", ",(0,t.jsx)(n.code,{children:"HashMap"}),", ",(0,t.jsx)(n.code,{children:"Map"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"enumerations",children:"Aufz\xe4hlungen (Enumerations)"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"Enumeration"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"exceptions",children:"Ausnahmen (Exceptions)"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"ArrayIndexOutOfBoundsException"}),", ",(0,t.jsx)(n.code,{children:"Exception"}),", ",(0,t.jsx)(n.code,{children:"NullPointerException"}),", ",(0,t.jsx)(n.code,{children:"RunTimeException"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"files",children:"Dateien und Verzeichnisse"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"File"}),", ",(0,t.jsx)(n.code,{children:"Scanner"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"records",children:"Datenklassen (Records)"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"Record"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"io-streams",children:"Datenstr\xf6me"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"BufferedInputStream"}),", ",(0,t.jsx)(n.code,{children:"BufferedOutputStream"}),", ",(0,t.jsx)(n.code,{children:"BufferedReader"}),", ",(0,t.jsx)(n.code,{children:"BufferedWriter"}),", ",(0,t.jsx)(n.code,{children:"FileInputStream"}),", ",(0,t.jsx)(n.code,{children:"FileOutputStream"}),", ",(0,t.jsx)(n.code,{children:"FileReader"}),", ",(0,t.jsx)(n.code,{children:"FileWriter"}),", ",(0,t.jsx)(n.code,{children:"ObjectInputStream"}),", ",(0,t.jsx)(n.code,{children:"ObjectOutputStream"}),", ",(0,t.jsx)(n.code,{children:"Serializable"}),", ",(0,t.jsx)(n.code,{children:"System"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"dates-and-times",children:"Datums- und Zeitangaben"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"LocalDate"}),", ",(0,t.jsx)(n.code,{children:"LocalDateTime"}),", ",(0,t.jsx)(n.code,{children:"LocalTime"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"java-stream-api",children:"Die Java Stream API"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"BiConsumer"}),", ",(0,t.jsx)(n.code,{children:"Collectors"}),", ",(0,t.jsx)(n.code,{children:"Comparable"}),", ",(0,t.jsx)(n.code,{children:"Comparator"}),", ",(0,t.jsx)(n.code,{children:"Consumer"}),", ",(0,t.jsx)(n.code,{children:"DoubleConsumer"}),", ",(0,t.jsx)(n.code,{children:"DoubleStream"}),", ",(0,t.jsx)(n.code,{children:"Executable"}),", ",(0,t.jsx)(n.code,{children:"Function"}),", ",(0,t.jsx)(n.code,{children:"IntStream"}),", ",(0,t.jsx)(n.code,{children:"Predicate"}),", ",(0,t.jsx)(n.code,{children:"Stream"}),", ",(0,t.jsx)(n.code,{children:"ToDoubleFunction"}),", ",(0,t.jsx)(n.code,{children:"ToIntFunction"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"object",children:"Die Mutter aller Klassen"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"Object"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"java-collections-framework",children:"Java Collections Framework"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"ArrayList"}),", ",(0,t.jsx)(n.code,{children:"Arrays"}),", ",(0,t.jsx)(n.code,{children:"HashSet"}),", ",(0,t.jsx)(n.code,{children:"LinkedList"}),", ",(0,t.jsx)(n.code,{children:"List"}),", ",(0,t.jsx)(n.code,{children:"Queue"}),", ",(0,t.jsx)(n.code,{children:"Set"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"comparators",children:"Komparatoren"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"Comparable"}),", ",(0,t.jsx)(n.code,{children:"Comparator"}),", ",(0,t.jsx)(n.code,{children:"Collections"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"console-applications",children:"Konsolenanwendungen"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"PrintStream"}),", ",(0,t.jsx)(n.code,{children:"Scanner"}),", ",(0,t.jsx)(n.code,{children:"System"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"lists",children:"Listen"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"ArrayList"}),", ",(0,t.jsx)(n.code,{children:"Arrays"}),", ",(0,t.jsx)(n.code,{children:"LinkedList"}),", ",(0,t.jsx)(n.code,{children:"List"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"calculations",children:"Mathematische Berechnungen"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"Math"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"optionals",children:"Optionals"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"Optional"}),", ",(0,t.jsx)(n.code,{children:"OptionalDouble"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"pseudo-random-numbers",children:"Pseudozufallszahlen"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"Random"})})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"wrappers",children:"Wrapper-Klassen"})}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.code,{children:"Boolean"}),", ",(0,t.jsx)(n.code,{children:"Double"}),", ",(0,t.jsx)(n.code,{children:"Integer"})]})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"strings",children:"Zeichenketten (Strings)"})}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.code,{children:"String"})})]})]})]}),"\n",(0,t.jsx)(n.h2,{id:"die-javadoc",children:"Die Javadoc"}),"\n",(0,t.jsxs)(n.p,{children:["Die Javadoc ist ein Werkzeug zur Software-Dokumentation und erstellt aus den\n\xf6ffentlichen Deklarationen von Klassen, Schnittstellen, Attributen und Methoden\nsowie eventuell vorhandenen\n",(0,t.jsx)(n.a,{href:"class-structure#kommentare-und-dokumentation",children:"Dokumentationskommentaren"}),"\nHTML-Seiten. Um die Navigation innerhalb der Dokumentationsdateien zu\nerleichtern, werden zus\xe4tzlich verschiedene Index- und Hilfsdateien generiert.\nHTML-Tags in den Dokumentationskommentaren erm\xf6glichen die Formatierung der\nDokumentation."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",metastring:'title="Computer.java (Auszug)" showLineNumbers',children:"/**\n * Computer\n *\n * @author Hans Maier\n * @version 1.0\n *\n */\npublic class Computer {\n ...\n /**\n * Central Processing Unit\n */\n private CPU cpu;\n\n /**\n * Returns the Central Processing Unit (CPU) of this Computer\n *\n * @return the Central Processing Unit\n */\n public CPU getCpu() {\n return cpu;\n }\n\n /**\n * Sets the Central Processing Unit of this Computer with the incoming data\n *\n * @param powerInGHz Power of the CPU in GHz\n * @param numberOfCores Number of Cores\n */\n public void setCpu(double powerInGHz, int numberOfCores) {\n cpu = new CPU(powerInGHz, numberOfCores);\n }\n ...\n}\n"})})]})}function h(e={}){let{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(o,{...e})}):o(e)}},50065:function(e,n,r){r.d(n,{Z:function(){return c},a:function(){return d}});var i=r(67294);let t={},s=i.createContext(t);function d(e){let n=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3ec618c5.8d9f6b79.js b/pr-preview/pr-238/assets/js/3ec618c5.8d9f6b79.js new file mode 100644 index 0000000000..c0339b0adc --- /dev/null +++ b/pr-preview/pr-238/assets/js/3ec618c5.8d9f6b79.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2774"],{31571:function(e){e.exports=JSON.parse('{"tag":{"label":"loops","permalink":"/java-docs/pr-preview/pr-238/tags/loops","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":2,"items":[{"id":"documentation/loops","title":"Schleifen","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/loops"},{"id":"exercises/loops/loops","title":"Schleifen","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/loops/"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/3f7cc959.5d853bf5.js b/pr-preview/pr-238/assets/js/3f7cc959.5d853bf5.js new file mode 100644 index 0000000000..a6b3ed7351 --- /dev/null +++ b/pr-preview/pr-238/assets/js/3f7cc959.5d853bf5.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1519"],{91860:function(e,t,n){n.r(t),n.d(t,{metadata:()=>r,contentTitle:()=>l,default:()=>d,assets:()=>c,toc:()=>u,frontMatter:()=>a});var r=JSON.parse('{"id":"exercises/optionals/optionals","title":"Optionals","description":"","source":"@site/docs/exercises/optionals/optionals.mdx","sourceDirName":"exercises/optionals","slug":"/exercises/optionals/","permalink":"/java-docs/pr-preview/pr-238/exercises/optionals/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/optionals/optionals.mdx","tags":[{"inline":true,"label":"optionals","permalink":"/java-docs/pr-preview/pr-238/tags/optionals"}],"version":"current","sidebarPosition":195,"frontMatter":{"title":"Optionals","description":"","sidebar_position":195,"tags":["optionals"]},"sidebar":"exercisesSidebar","previous":{"title":"Maps02","permalink":"/java-docs/pr-preview/pr-238/exercises/maps/maps02"},"next":{"title":"Optionals01","permalink":"/java-docs/pr-preview/pr-238/exercises/optionals/optionals01"}}'),i=n("85893"),s=n("50065"),o=n("94301");let a={title:"Optionals",description:"",sidebar_position:195,tags:["optionals"]},l=void 0,c={},u=[{value:"\xdcbungsaufgaben",id:"\xfcbungsaufgaben",level:2}];function p(e){let t={h2:"h2",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"\xfcbungsaufgaben",children:"\xdcbungsaufgaben"}),"\n","\n",(0,i.jsx)(o.Z,{})]})}function d(e={}){let{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},94301:function(e,t,n){n.d(t,{Z:()=>j});var r=n("85893");n("67294");var i=n("67026"),s=n("69369"),o=n("83012"),a=n("43115"),l=n("63150"),c=n("96025"),u=n("34403");let p={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function d(e){let{href:t,children:n}=e;return(0,r.jsx)(o.Z,{href:t,className:(0,i.Z)("card padding--lg",p.cardContainer),children:n})}function f(e){let{href:t,icon:n,title:s,description:o}=e;return(0,r.jsxs)(d,{href:t,children:[(0,r.jsxs)(u.Z,{as:"h2",className:(0,i.Z)("text--truncate",p.cardTitle),title:s,children:[n," ",s]}),o&&(0,r.jsx)("p",{className:(0,i.Z)("text--truncate",p.cardDescription),title:o,children:o})]})}function m(e){let{item:t}=e,n=(0,s.LM)(t),i=function(){let{selectMessage:e}=(0,a.c)();return t=>e(t,(0,c.I)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return n?(0,r.jsx)(f,{href:n,icon:"\uD83D\uDDC3\uFE0F",title:t.label,description:t.description??i(t.items.length)}):null}function h(e){let{item:t}=e,n=(0,l.Z)(t.href)?"\uD83D\uDCC4\uFE0F":"\uD83D\uDD17",i=(0,s.xz)(t.docId??void 0);return(0,r.jsx)(f,{href:t.href,icon:n,title:t.label,description:t.description??i?.description})}function x(e){let{item:t}=e;switch(t.type){case"link":return(0,r.jsx)(h,{item:t});case"category":return(0,r.jsx)(m,{item:t});default:throw Error(`unknown item type ${JSON.stringify(t)}`)}}function g(e){let{className:t}=e,n=(0,s.jA)();return(0,r.jsx)(j,{items:n.items,className:t})}function j(e){let{items:t,className:n}=e;if(!t)return(0,r.jsx)(g,{...e});let o=(0,s.MN)(t);return(0,r.jsx)("section",{className:(0,i.Z)("row",n),children:o.map((e,t)=>(0,r.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,r.jsx)(x,{item:e})},t))})}},43115:function(e,t,n){n.d(t,{c:function(){return l}});var r=n(67294),i=n(2933);let s=["zero","one","two","few","many","other"];function o(e){return s.filter(t=>e.includes(t))}let a={locale:"en",pluralForms:o(["one","other"]),select:e=>1===e?"one":"other"};function l(){let e=function(){let{i18n:{currentLocale:e}}=(0,i.Z)();return(0,r.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:o(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${t.message} +`),a}},[e])}();return{selectMessage:(t,n)=>(function(e,t,n){let r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);let i=n.select(t);return r[Math.min(n.pluralForms.indexOf(i),r.length-1)]})(n,t,e)}}},50065:function(e,t,n){n.d(t,{Z:function(){return a},a:function(){return o}});var r=n(67294);let i={},s=r.createContext(i);function o(e){let t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/404b1bae.5c4d58ec.js b/pr-preview/pr-238/assets/js/404b1bae.5c4d58ec.js new file mode 100644 index 0000000000..4daac4e04e --- /dev/null +++ b/pr-preview/pr-238/assets/js/404b1bae.5c4d58ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7395"],{40241:function(e,i,n){n.r(i),n.d(i,{metadata:()=>s,contentTitle:()=>l,default:()=>m,assets:()=>o,toc:()=>c,frontMatter:()=>t});var s=JSON.parse('{"id":"exam-exercises/exam-exercises-java2/class-diagrams/library","title":"Bibliothek","description":"","source":"@site/docs/exam-exercises/exam-exercises-java2/class-diagrams/library.md","sourceDirName":"exam-exercises/exam-exercises-java2/class-diagrams","slug":"/exam-exercises/exam-exercises-java2/class-diagrams/library","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/library","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java2/class-diagrams/library.md","tags":[{"inline":true,"label":"inheritance","permalink":"/java-docs/pr-preview/pr-238/tags/inheritance"},{"inline":true,"label":"polymorphism","permalink":"/java-docs/pr-preview/pr-238/tags/polymorphism"},{"inline":true,"label":"exceptions","permalink":"/java-docs/pr-preview/pr-238/tags/exceptions"},{"inline":true,"label":"records","permalink":"/java-docs/pr-preview/pr-238/tags/records"},{"inline":true,"label":"maps","permalink":"/java-docs/pr-preview/pr-238/tags/maps"},{"inline":true,"label":"optionals","permalink":"/java-docs/pr-preview/pr-238/tags/optionals"}],"version":"current","frontMatter":{"title":"Bibliothek","description":"","tags":["inheritance","polymorphism","exceptions","records","maps","optionals"]},"sidebar":"examExercisesSidebar","previous":{"title":"Lego-Baustein","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/lego-brick"},"next":{"title":"Kartenspieler","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/player"}}'),a=n("85893"),r=n("50065");let t={title:"Bibliothek",description:"",tags:["inheritance","polymorphism","exceptions","records","maps","optionals"]},l=void 0,o={},c=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Allgemeine Hinweise",id:"allgemeine-hinweise",level:2},{value:"Hinweis zur Klasse EBook",id:"hinweis-zur-klasse-ebook",level:2},{value:"Hinweise zur Klasse Library",id:"hinweise-zur-klasse-library",level:2}];function d(e){let i={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.p,{children:"Setze das abgebildete Klassendiagramm vollst\xe4ndig um. Erstelle zum Testen eine\nausf\xfchrbare Klasse und/oder eine Testklasse."}),"\n",(0,a.jsx)(i.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,a.jsx)(i.mermaid,{value:"classDiagram\n Library o-- Book\n Status --o Library\n Book <|-- EBook : extends\n Book <|-- PaperBook : extends\n Author --o Book\n EBook o-- FileFormat\n\n class Library {\n <>\n name: String #123;final#125;\n books: Map~Book, Status~ #123;final#125;\n +addBook(book: Book) void\n +getBookByTitle(title: String) Optional~Book~\n +getPaperBooksByStatus(status: Status) List~PaperBook~\n }\n\n class Status {\n <>\n AVAILABLE = verf\xfcgbar\n LENT = verliehen\n -description: String #123;final#125;\n }\n\n class Book {\n <>\n -id: UUID #123;final#125;\n -author: Author #123;final#125;\n -title: String #123;final#125;\n +Book(author: Author, title: String)\n }\n\n class EBook {\n -fileFormat: FileFormat #123;final#125;\n -fileSizeInKb: int #123;final#125;\n +EBook(author: Author, title: String, fileFormat: FileFormat, fileSizeInKb: int)\n }\n\n class PaperBook {\n -pages: int #123;final#125;\n +PaperBook(author: Author, title: String, pages: int)\n }\n\n class Author {\n <>\n name: String\n nationality: String\n }\n\n class FileFormat {\n <>\n AZW = Amazon Kindle\n EPUB = Electronic Publication\n LRF = Portable Reader File\n -description: String #123;final#125;\n }"}),"\n",(0,a.jsx)(i.h2,{id:"allgemeine-hinweise",children:"Allgemeine Hinweise"}),"\n",(0,a.jsxs)(i.ul,{children:["\n",(0,a.jsx)(i.li,{children:"Aus Gr\xfcnden der \xdcbersicht werden im Klassendiagramm keine Getter und\nObject-Methoden dargestellt"}),"\n",(0,a.jsx)(i.li,{children:"So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die\nObject-Methoden wie gewohnt implementiert werden"}),"\n",(0,a.jsxs)(i.li,{children:["Die statische Methode ",(0,a.jsx)(i.code,{children:"UUID randomUUID()"})," der Klasse ",(0,a.jsx)(i.code,{children:"UUID"})," gibt eine zuf\xe4llig\nerstellte UUID zur\xfcck"]}),"\n"]}),"\n",(0,a.jsxs)(i.h2,{id:"hinweis-zur-klasse-ebook",children:["Hinweis zur Klasse ",(0,a.jsx)(i.em,{children:"EBook"})]}),"\n",(0,a.jsxs)(i.p,{children:["Der Konstruktor soll alle Attribute initialisieren. F\xfcr den Fall, dass die\neingehende Dateigr\xf6\xdfe kleiner gleich Null ist, soll die Ausnahme\n",(0,a.jsx)(i.code,{children:"WrongFileSizeException"})," ausgel\xf6st werden."]}),"\n",(0,a.jsxs)(i.h2,{id:"hinweise-zur-klasse-library",children:["Hinweise zur Klasse ",(0,a.jsx)(i.em,{children:"Library"})]}),"\n",(0,a.jsxs)(i.ul,{children:["\n",(0,a.jsxs)(i.li,{children:["Die Methode ",(0,a.jsx)(i.code,{children:"void addBook(book: Book)"})," soll der B\xfccherliste (",(0,a.jsx)(i.code,{children:"books"}),") das\neingehende Buch mit dem Status ",(0,a.jsx)(i.code,{children:"verf\xfcgbar"})," hinzuf\xfcgen"]}),"\n",(0,a.jsxs)(i.li,{children:["Die Methode ",(0,a.jsx)(i.code,{children:"Optional getBookByTitle(title: String)"})," soll das Buch zum\neingehenden Titel als Optional zur\xfcckgeben"]}),"\n",(0,a.jsxs)(i.li,{children:["Die Methode ",(0,a.jsx)(i.code,{children:"List getPaperBooksByStatus(status: Status)"})," soll alle\ngedruckten B\xfccher zum eingehenden Status zur\xfcckgeben"]}),"\n"]})]})}function m(e={}){let{wrapper:i}={...(0,r.a)(),...e.components};return i?(0,a.jsx)(i,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},50065:function(e,i,n){n.d(i,{Z:function(){return l},a:function(){return t}});var s=n(67294);let a={},r=s.createContext(a);function t(e){let i=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:t(e.components),s.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/40769576.3a6793ae.js b/pr-preview/pr-238/assets/js/40769576.3a6793ae.js new file mode 100644 index 0000000000..aaff79a09c --- /dev/null +++ b/pr-preview/pr-238/assets/js/40769576.3a6793ae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["367"],{71399:function(e){e.exports=JSON.parse('{"tag":{"label":"control-structures","permalink":"/java-docs/pr-preview/pr-238/tags/control-structures","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":4,"items":[{"id":"documentation/loops","title":"Schleifen","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/loops"},{"id":"exercises/loops/loops","title":"Schleifen","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/loops/"},{"id":"documentation/cases","title":"Verzweigungen","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/cases"},{"id":"exercises/cases/cases","title":"Verzweigungen","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/41abd78d.0757b8bc.js b/pr-preview/pr-238/assets/js/41abd78d.0757b8bc.js new file mode 100644 index 0000000000..cf275aba35 --- /dev/null +++ b/pr-preview/pr-238/assets/js/41abd78d.0757b8bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["6897"],{21479:function(e,n,i){i.r(n),i.d(n,{metadata:()=>s,contentTitle:()=>a,default:()=>h,assets:()=>t,toc:()=>o,frontMatter:()=>d});var s=JSON.parse('{"id":"exercises/javafx/javafx08","title":"JavaFX08","description":"","source":"@site/docs/exercises/javafx/javafx08.md","sourceDirName":"exercises/javafx","slug":"/exercises/javafx/javafx08","permalink":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx08","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/javafx/javafx08.md","tags":[],"version":"current","frontMatter":{"title":"JavaFX08","description":""},"sidebar":"exercisesSidebar","previous":{"title":"JavaFX07","permalink":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx07"}}'),r=i("85893"),l=i("50065");let d={title:"JavaFX08",description:""},a=void 0,t={},o=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Szenegraph",id:"szenegraph",level:2},{value:"Allgemeine Hinweise",id:"allgemeine-hinweise",level:2},{value:"Hinweis zur Klasse ChessFigure",id:"hinweis-zur-klasse-chessfigure",level:2},{value:"Hinweise zur Klasse Field",id:"hinweise-zur-klasse-field",level:2},{value:"Hinweise zur Klasse ChessBoard",id:"hinweise-zur-klasse-chessboard",level:2},{value:"Hinweise zur Klasse Controller",id:"hinweise-zur-klasse-controller",level:2}];function c(e){let n={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,l.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"Erstelle eine JavaFX-Anwendung zum Schachspielen anhand des abgebildeten\nKlassendiagramms sowie des abgebildeten Szenegraphs."}),"\n",(0,r.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,r.jsx)(n.mermaid,{value:"classDiagram\n Initializable <|.. Controller : implements\n Controller o-- Field\n ImageView <|-- ChessFigure : extends\n ChessFigure o-- ChessColor\n ChessFigure o-- ChessFigureType\n ChessBoard --|> GridPane : extends\n Field --o ChessBoard\n Field --|> StackPane : extends\n\n class ChessFigure {\n -color: ChessColor #123;final#125;\n -type: ChessFigureType #123;final#125;\n +ChessFigure(type: ChessFigureType, color: ChessColor, image: Image)\n +getColor() ChessColor\n +getType() ChessFigureType\n }\n\n class ChessColor {\n <>\n BLACK = schwarz\n WHITE = wei\xdf\n -description: String #123;final#125;\n +getDescription() String\n }\n\n class ChessFigureType {\n <>\n BISHOP = L\xe4ufer\n KING = K\xf6nig\n KNIGHT = Springer\n PAWN = Bauer\n QUEEN = Dame\n ROOK = Turm\n -description: String #123;final#125;\n +getDescription() String\n }\n\n class ChessBoard {\n -fields: Field[][] #123;final#125;\n +ChessBoard()\n +getFields() [][]\n }\n\n class Field {\n -row: int #123;final#125;\n -column: char #123;final#125;\n -isSelected: boolean\n +Field(row: int, column: char, color: Color)\n +setSelected(boolean: isSelected) void\n +isSelected() boolean\n +setFigure(figure: ChessFigure) void\n +getFigure() ChessFigure\n +getBackgroundLayer() Rectangle\n +getRow() int\n +getColumn() char\n }\n\n class Controller {\n -board: ChessBoard #123;FXML#125;\n -oldField: Field\n +initialize(location: URL, resources: ResourceBundle) void\n -setHighlight(field: Field, highlight: boolean) void\n }\n\n class Initializable {\n <>\n +initialize(location: URL, resources: ResourceBundle) void\n }"}),"\n",(0,r.jsx)(n.h2,{id:"szenegraph",children:"Szenegraph"}),"\n",(0,r.jsx)(n.mermaid,{value:"flowchart LR\n board[ChessBoard\\nfx:controller=Pfad.Controller\\nfx:id=board]"}),"\n",(0,r.jsx)(n.h2,{id:"allgemeine-hinweise",children:"Allgemeine Hinweise"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Der Konstruktor ",(0,r.jsx)(n.code,{children:"Image(url: String)"})," der Klasse ",(0,r.jsx)(n.code,{children:"Image"})," erm\xf6glicht das\nErzeugen eines Grafik-Objektes"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"void setImage(value: Image)"})," der Klasse ",(0,r.jsx)(n.code,{children:"ImageView"})," setzt die\nGrafik eines Bilderrahmens auf den eingehenden Wert"]}),"\n",(0,r.jsxs)(n.li,{children:["Der Konstruktor ",(0,r.jsx)(n.code,{children:"Rectangle(width: double, height: double)"})," der Klasse\n",(0,r.jsx)(n.code,{children:"Rectangle"})," erm\xf6glicht das Erzeugen eines Rechtecks"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"void setFill(value: Paint)"})," der Klasse ",(0,r.jsx)(n.code,{children:"Shape"})," setzt die\nF\xfcllfarbe einer geometrischen Form auf den eingehenden Wert"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"ObservableList getChildren()"})," der Klasse ",(0,r.jsx)(n.code,{children:"Pane"})," gibt die\nKindknotenliste eines Containers zur\xfcck"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"void setEffect(effect: Effect)"})," der Klasse ",(0,r.jsx)(n.code,{children:"Node"})," setzt den\nEffekt eines Bildschirmelements auf den eingehenden Wert"]}),"\n",(0,r.jsxs)(n.li,{children:["Der Konstruktor\n",(0,r.jsx)(n.code,{children:"ColorAdjust(hue: double, saturation: double, brightness: double, contrast: double)"}),"\nder Klasse ",(0,r.jsx)(n.code,{children:"ColorAdjust"})," erm\xf6glicht das Erzeugen einer Farbanpassung"]}),"\n"]}),"\n",(0,r.jsxs)(n.h2,{id:"hinweis-zur-klasse-chessfigure",children:["Hinweis zur Klasse ",(0,r.jsx)(n.em,{children:"ChessFigure"})]}),"\n",(0,r.jsx)(n.p,{children:"Der Konstruktor soll alle Attribute (inklusive der Grafik) initialisieren."}),"\n",(0,r.jsxs)(n.h2,{id:"hinweise-zur-klasse-field",children:["Hinweise zur Klasse ",(0,r.jsx)(n.em,{children:"Field"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Der Konstruktor soll alle Attribute initialisieren, ein Rechteck als\nHintergrund-Ebene mit der eingehenden Farbe erzeugen und dieses der\nKindknotenliste hinzuf\xfcgen"}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"void setFigure(figure: ChessFigure)"})," soll die eingehende\nSchachfigur der Kindknoteliste hinzuf\xfcgen bzw. die bestehende Schachfigur der\nKinknotenliste durch die eingehende Schachfigur ersetzen bzw. die bestehende\nSchachfigur der Kindknotenliste entfernen"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"ChessFigure getFigure()"})," soll die Schachfigur der Kindknotenliste\nbzw. den Wert ",(0,r.jsx)(n.code,{children:"null"})," zur\xfcckgeben"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"Rectangle getBackgroundLayer()"})," soll die Hintergrund-Ebene der\nKindknotenliste zur\xfcckgeben"]}),"\n"]}),"\n",(0,r.jsxs)(n.h2,{id:"hinweise-zur-klasse-chessboard",children:["Hinweise zur Klasse ",(0,r.jsx)(n.em,{children:"ChessBoard"})]}),"\n",(0,r.jsx)(n.p,{children:"Der Konstruktor soll alle Felder inklusive aller Schachfiguren initialisieren."}),"\n",(0,r.jsxs)(n.h2,{id:"hinweise-zur-klasse-controller",children:["Hinweise zur Klasse ",(0,r.jsx)(n.em,{children:"Controller"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"void initialize(location: URL, resources: ResourceBundle)"})," soll\ndas Ausw\xe4hlen und Bewegen der Schachfiguren per Mausklick erm\xf6glichen"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"void setHighlight(field: Field, highlight: boolean)"})," soll das\neingehende Feld hervorheben bzw. nicht mehr hervorheben"]}),"\n"]})]})}function h(e={}){let{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},50065:function(e,n,i){i.d(n,{Z:function(){return a},a:function(){return d}});var s=i(67294);let r={},l=s.createContext(r);function d(e){let n=s.useContext(l);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/41ee152b.ee4e6f86.js b/pr-preview/pr-238/assets/js/41ee152b.ee4e6f86.js new file mode 100644 index 0000000000..bc32d9e00d --- /dev/null +++ b/pr-preview/pr-238/assets/js/41ee152b.ee4e6f86.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8854"],{82962:function(e,n,r){r.r(n),r.d(n,{metadata:()=>d,contentTitle:()=>c,default:()=>o,assets:()=>x,toc:()=>j,frontMatter:()=>h});var d=JSON.parse('{"id":"documentation/algorithms","title":"Algorithmen","description":"","source":"@site/docs/documentation/algorithms.mdx","sourceDirName":"documentation","slug":"/documentation/algorithms","permalink":"/java-docs/pr-preview/pr-238/documentation/algorithms","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/algorithms.mdx","tags":[{"inline":true,"label":"algorithms","permalink":"/java-docs/pr-preview/pr-238/tags/algorithms"}],"version":"current","sidebarPosition":350,"frontMatter":{"title":"Algorithmen","description":"","sidebar_position":350,"tags":["algorithms"]},"sidebar":"documentationSidebar","previous":{"title":"Datenstr\xf6me (IO-Streams)","permalink":"/java-docs/pr-preview/pr-238/documentation/io-streams"},"next":{"title":"Grafische Benutzeroberfl\xe4chen","permalink":"/java-docs/pr-preview/pr-238/documentation/gui"}}'),s=r("85893"),i=r("50065"),t=r("47902"),l=r("5525");let h={title:"Algorithmen",description:"",sidebar_position:350,tags:["algorithms"]},c=void 0,x={},j=[{value:"Eigenschaften von Algorithmen",id:"eigenschaften-von-algorithmen",level:2},{value:"Komplexit\xe4t von Algorithmen",id:"komplexit\xe4t-von-algorithmen",level:2},{value:"Suchalgorithmen",id:"suchalgorithmen",level:2},{value:"Sortieralgorithmen",id:"sortieralgorithmen",level:2}];function a(e){let n={admonition:"admonition",code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Ein Algorithmus stellt ein Verfahren zur L\xf6sung eines Problems mit einer\nendlichen Anzahl von Schritten dar. In der Prpgrammierung ist ein Algorithmus\neine Reihe von Anweisungen, die festlegen, was und wie etwas getan werden muss.\nZielsetzung ist dabei, aus einer gegebenen Eingabe eine entsprechende Ausgabe zu\nerhalten. Beispiele aus der realen Welt f\xfcr Algorithmen sind Aufbauanleitungen,\nRezepte, Spielanleitungen und Beipackzettel."}),"\n",(0,s.jsx)(n.mermaid,{value:"flowchart LR\n input --\x3e algorithm --\x3e output\n\n input(Eingabe)\n algorithm{Algorithmus}\n output(Ausgabe)"}),"\n",(0,s.jsx)(n.p,{children:"Das nachfolgende Rezept beschreibt die Zubereitung von Pankcakes:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"3 Eiweiss zu festem Eischnee verarbeiten"}),"\n",(0,s.jsx)(n.li,{children:"3 Eigelb und 50g Zucker schaumig r\xfchren"}),"\n",(0,s.jsx)(n.li,{children:"300g Mehl, 300g Milch, 1 TL Backpulver und etwas Salz unter die\nEigelb-Zuckermasse r\xfchren"}),"\n",(0,s.jsx)(n.li,{children:"Sollte der Teig zu fest sein, zus\xe4tzlich Milch unterr\xfchren"}),"\n",(0,s.jsx)(n.li,{children:"Den Eischnee unter den Teig heben"}),"\n",(0,s.jsx)(n.li,{children:"Eine Pfanne mit etwas Fett erhitzen"}),"\n",(0,s.jsx)(n.li,{children:"Die Pancakes goldgelb ausbacken"}),"\n",(0,s.jsx)(n.li,{children:"Die Pancakes mit Puderzucker und Ahornsirup servieren"}),"\n"]}),"\n",(0,s.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,s.jsx)(n.p,{children:"Die \xdcberf\xfchrung einer formalen Anleitung, also ein Algorithmus, in ein\nausf\xfchrbares Programm bezeichnet man als Programmierung."})}),"\n",(0,s.jsx)(n.h2,{id:"eigenschaften-von-algorithmen",children:"Eigenschaften von Algorithmen"}),"\n",(0,s.jsx)(n.p,{children:"Damit ein Verfahren als Algorithmus angesehen werden kann, muss es verschiedene\nEigenschaften erf\xfcllen:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Determiniertheit: Ein Verfahren ist deterministisch, wenn es bei beliebig\nh\xe4ufiger Wiederholung f\xfcr gleiche Eingabewerte und gleichen Rahmenbedingungen\nimmer zum gleichen Ergebnis f\xfchrt."}),"\n",(0,s.jsx)(n.li,{children:"Eindeutigkeit (Determinismus): Ein Verfahren ist determiniert, wenn die\nSchrittfolge immer gleich ist und immer zu einem eindeutigen Ergebnis f\xfchrt."}),"\n",(0,s.jsx)(n.li,{children:"Endlichkeit (Terminiertheit): Ein Verfahren ist terministisch, wenn die Anzahl\nder Schritte endlich ist, also wenn das Verfahren nach endlichen Schritten ein\nErgebnis liefert."}),"\n",(0,s.jsx)(n.li,{children:"Korrektheit: Ein Verfahren ist korrekt, wenn es immer zu einem richtigen\nErgebnis f\xfchrt."}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"komplexit\xe4t-von-algorithmen",children:"Komplexit\xe4t von Algorithmen"}),"\n",(0,s.jsxs)(n.p,{children:["Da der Zeitaufwand von Algorithmen aufgrund unterschiedlicher Faktoren\n(Hardware, parallele Verarbeitung, Eingabereihenfolge,\u2026) nicht genau ermittelt\nwerden kann, wird diese mit Hilfe der Landau-Notation \uD835\uDCAA (",(0,s.jsx)(n.em,{children:"Ordnung von"}),")\ndargestellt. Diese teilt Algorithmen in unterschiedliche Komplexit\xe4tsklassen\n(logarithmisch, linear, polynomial,\u2026) ein. Die Komplexit\xe4t einer Klasse ergibt\nsich dabei aus der Anzahl der Schritte, die abh\xe4ngig von der Gr\xf6\xdfe der\nEingangsvariablen ausgef\xfchrt werden m\xfcssen."]}),"\n",(0,s.jsx)(n.h2,{id:"suchalgorithmen",children:"Suchalgorithmen"}),"\n",(0,s.jsx)(n.p,{children:"Suchalgorithmen sollen innerhalb einer Datensammlung einen oder mehrere\nDatens\xe4tze mit bestimmten Eigenschaften finden."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Algorithmus"}),(0,s.jsx)(n.th,{children:"Komplexit\xe4t Best Case"}),(0,s.jsx)(n.th,{children:"Komplexit\xe4t Average Case"}),(0,s.jsx)(n.th,{children:"Komplexit\xe4t Worst Case"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Linearsuche"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(1)"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC5B)"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC5B)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Bin\xe4rsuche"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(1)"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC59\uD835\uDC5C\uD835\uDC54 \u2061\uD835\uDC5B)"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC59\uD835\uDC5C\uD835\uDC54 \u2061\uD835\uDC5B)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Interpolationssuche"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(1)"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC59\uD835\uDC5C\uD835\uDC54 \uD835\uDC59\uD835\uDC5C\uD835\uDC54 \u2061\uD835\uDC5B)"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC5B)"})]})]})]}),"\n",(0,s.jsxs)(t.Z,{children:[(0,s.jsxs)(l.Z,{value:"a",label:"Linearsuche",default:!0,children:[(0,s.jsx)(n.p,{children:"Bei der Linearsuche werden alle Eintr\xe4ge einer Datensammlung nacheinander\ndurchlaufen, d.h. eine Suche kann im besten Fall beim ersten Eintrag und im\nschlechtesten Fall beim letzten Eintrag beendet sein. Bei einer erfolglosen\nSuche m\xfcssen alle Eintr\xe4ge durchlaufen werden."}),(0,s.jsxs)(n.p,{children:["Im nachfolgenden Beispiel wird die Zahlenfolge\n",(0,s.jsx)(n.code,{children:"12, 16, 36, 49, 50, 68, 70, 76, 99"})," nach dem Wert 70 durchsucht."]}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Index"}),(0,s.jsx)(n.th,{children:"1"}),(0,s.jsx)(n.th,{children:"2"}),(0,s.jsx)(n.th,{children:"3"}),(0,s.jsx)(n.th,{children:"4"}),(0,s.jsx)(n.th,{children:"5"}),(0,s.jsx)(n.th,{children:"6"}),(0,s.jsx)(n.th,{children:"7"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"0"}),(0,s.jsx)(n.td,{children:"[12]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:"[16]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"[36]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"[49]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"[50]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"5"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"[68]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"[70]"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"99"})]})]})]}),(0,s.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,s.jsx)(n.p,{children:"Durch vorheriges Sortieren der Sammlung kann die Leistung des Algorithmus\nverbessert werden."})})]}),(0,s.jsxs)(l.Z,{value:"b",label:"Bin\xe4rsuche",children:[(0,s.jsx)(n.p,{children:"Bei der Bin\xe4rsuche wird die sortierte Sammlung schrittweise halbiert.\nAnschlie\xdfend wird nur noch in der jeweils passenden H\xe4lfte weitergesucht. Die\nBin\xe4rsuche folgt damit dem Teile-und-Herrsche-Prinzip und ist i.d.R. schneller\nals die Linearsuche, setzt aber eine sortierte Sammlung voraus."}),(0,s.jsxs)(n.p,{children:["Im nachfolgenden Beispiel wird die Zahlenfolge\n",(0,s.jsx)(n.code,{children:"12, 16, 36, 49, 50, 68, 70, 76, 99"})," nach dem Wert 70 durchsucht."]}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Index"}),(0,s.jsx)(n.th,{children:"1"}),(0,s.jsx)(n.th,{children:"2"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"0"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"[50]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"5"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"68"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"[70]"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"99"})]})]})]}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Durchlauf"}),(0,s.jsx)(n.th,{children:"l"}),(0,s.jsx)(n.th,{children:"r"}),(0,s.jsx)(n.th,{children:"m"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"0"}),(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"4"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"5"}),(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"6"})]})]})]}),(0,s.jsx)(n.admonition,{title:"Legende",type:"note",children:(0,s.jsx)(n.p,{children:"l = linke Grenze, r = rechte Grenze, m = Mitte"})}),(0,s.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,s.jsx)(n.p,{children:"Bei der Ermittlung der Mitte wird i.d.R. die Abrundungsfunktion verwendet, d.h.\nzu einer reellen Zahl wird die gr\xf6\xdfte ganze Zahl, die kleiner als die reelle\nZahl ist, verwendet."})})]}),(0,s.jsxs)(l.Z,{value:"c",label:"Interpolationsuche",children:[(0,s.jsxs)(n.p,{children:["Die Interpolationssuche basiert auf der Bin\xe4rsuche, halbiert die Sammlung aber\nnicht, sondern versucht, durch Interpolation, einen geeigneteren Teiler zu\nermitteln. Dieser wird mit Hilfe der Formel\n",(0,s.jsx)(n.code,{children:"t = \u230A\uD835\uDC59 + ((\uD835\uDC60 \u2212 \uD835\uDC51[\uD835\uDC59]) / (\uD835\uDC51[\uD835\uDC5F] \u2212 \uD835\uDC51[\uD835\uDC59])) \u2217 (\uD835\uDC5F \u2212 \uD835\uDC59)\u230B"})," ermittelt."]}),(0,s.jsxs)(n.p,{children:["Im nachfolgenden Beispiel wird die Zahlenfolge\n",(0,s.jsx)(n.code,{children:"12, 16, 36, 49, 50, 68, 70, 76, 99"})," nach dem Wert 70 durchsucht."]}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Index"}),(0,s.jsx)(n.th,{children:"1"}),(0,s.jsx)(n.th,{children:"2"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"0"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"5"}),(0,s.jsx)(n.td,{children:"[68]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"[70]"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"99"})]})]})]}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Durchlauf"}),(0,s.jsx)(n.th,{children:"s"}),(0,s.jsx)(n.th,{children:"l"}),(0,s.jsx)(n.th,{children:"r"}),(0,s.jsx)(n.th,{children:"d[l]"}),(0,s.jsx)(n.th,{children:"d[r]"}),(0,s.jsx)(n.th,{children:"t"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"0"}),(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"5"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"6"})]})]})]}),(0,s.jsx)(n.admonition,{title:"Legende",type:"note",children:(0,s.jsx)(n.p,{children:"\uD835\uDC60 = Schl\xfcssel, \uD835\uDC59 = linke Grenze, \uD835\uDC5F = rechte Grenze, \uD835\uDC51 = Datensammlung, t =\nTeiler, \u230A \u230B = untere Gau\xdfklammer"})})]})]}),"\n",(0,s.jsx)(n.h2,{id:"sortieralgorithmen",children:"Sortieralgorithmen"}),"\n",(0,s.jsxs)(n.p,{children:["Sortieralgorithmen sollen eine m\xf6glichst effiziente Speicherung von Daten und\nderen Auswertung erm\xf6glichen. Man unterscheidet dabei zwischen einfachen und\nrekursiven Sortieralgorithmen. Zus\xe4tzlich wird bei Sortierverfahren zwischen\nstabilen und nichtstabilen Verfahren unterschieden. Bei stabilen\nSortierverfahren bleibt die Reihenfolge von gleich gro\xdfen Datens\xe4tzen bei der\nSortierung erhalten. Die Platzkomplexit\xe4t eines Sortierverfahrens schlie\xdflich\ngibt an, ob zus\xe4tzlicher Speicherplatz f\xfcr Zwischenergebnisse unabh\xe4ngig von der\nAnzahl Daten ist (",(0,s.jsx)(n.em,{children:"in-place"}),") oder nicht (",(0,s.jsx)(n.em,{children:"out-of-place"}),")."]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Algorithmus"}),(0,s.jsx)(n.th,{children:"Komplexit\xe4t Best Case"}),(0,s.jsx)(n.th,{children:"Komplexit\xe4t Average Case"}),(0,s.jsx)(n.th,{children:"Komplexit\xe4t Worst Case"}),(0,s.jsx)(n.th,{children:"Stabil"}),(0,s.jsx)(n.th,{children:"In-Place"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Bubblesort"}),(0,s.jsxs)(n.td,{children:["\uD835\uDCAA(\uD835\uDC5B",(0,s.jsx)("sup",{children:"2"}),")"]}),(0,s.jsxs)(n.td,{children:["\uD835\uDCAA(\uD835\uDC5B",(0,s.jsx)("sup",{children:"2"}),")"]}),(0,s.jsxs)(n.td,{children:["\uD835\uDCAA(\uD835\uDC5B",(0,s.jsx)("sup",{children:"2"}),")"]}),(0,s.jsx)(n.td,{children:"ja"}),(0,s.jsx)(n.td,{children:"ja"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Insertionsort"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC5B)"}),(0,s.jsxs)(n.td,{children:["\uD835\uDCAA(\uD835\uDC5B",(0,s.jsx)("sup",{children:"2"}),")"]}),(0,s.jsxs)(n.td,{children:["\uD835\uDCAA(\uD835\uDC5B",(0,s.jsx)("sup",{children:"2"}),")"]}),(0,s.jsx)(n.td,{children:"ja"}),(0,s.jsx)(n.td,{children:"ja"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Selectionsort"}),(0,s.jsxs)(n.td,{children:["\uD835\uDCAA(\uD835\uDC5B",(0,s.jsx)("sup",{children:"2"}),")"]}),(0,s.jsxs)(n.td,{children:["\uD835\uDCAA(\uD835\uDC5B",(0,s.jsx)("sup",{children:"2"}),")"]}),(0,s.jsxs)(n.td,{children:["\uD835\uDCAA(\uD835\uDC5B",(0,s.jsx)("sup",{children:"2"}),")"]}),(0,s.jsx)(n.td,{children:"nein"}),(0,s.jsx)(n.td,{children:"ja"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Quicksort"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC5B \uD835\uDC59\uD835\uDC5C\uD835\uDC54 \u2061\uD835\uDC5B)"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC5B \uD835\uDC59\uD835\uDC5C\uD835\uDC54 \u2061\uD835\uDC5B)"}),(0,s.jsxs)(n.td,{children:["\uD835\uDCAA(\uD835\uDC5B",(0,s.jsx)("sup",{children:"2"}),")"]}),(0,s.jsx)(n.td,{children:"nein"}),(0,s.jsx)(n.td,{children:"ja"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Mergesort"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC5B \uD835\uDC59\uD835\uDC5C\uD835\uDC54 \u2061\uD835\uDC5B)"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC5B \uD835\uDC59\uD835\uDC5C\uD835\uDC54 \u2061\uD835\uDC5B)"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC5B \uD835\uDC59\uD835\uDC5C\uD835\uDC54 \u2061\uD835\uDC5B)"}),(0,s.jsx)(n.td,{children:"ja"}),(0,s.jsx)(n.td,{children:"nein"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Heapsort"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC5B \uD835\uDC59\uD835\uDC5C\uD835\uDC54 \u2061\uD835\uDC5B)"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC5B \uD835\uDC59\uD835\uDC5C\uD835\uDC54 \u2061\uD835\uDC5B)"}),(0,s.jsx)(n.td,{children:"\uD835\uDCAA(\uD835\uDC5B \uD835\uDC59\uD835\uDC5C\uD835\uDC54 \u2061\uD835\uDC5B)"}),(0,s.jsx)(n.td,{children:"nein"}),(0,s.jsx)(n.td,{children:"ja"})]})]})]}),"\n",(0,s.jsxs)(t.Z,{children:[(0,s.jsxs)(l.Z,{value:"a",label:"Bubblesort",default:!0,children:[(0,s.jsx)(n.p,{children:"Der Bubblesort verfolgt die Idee, das gr\xf6\xdfere Blasen schneller aufsteigen als\nkleinere. Dementsprechend werden beim Bubblesort Nachbarelemente miteinander\nverglichen und gegebenenfalls vertauscht, so dass am Ende eines Durchlaufs das\njeweils gr\xf6\xdfte Element am Ende des noch unsortierten Teils steht."}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Index"}),(0,s.jsx)(n.th,{children:"0"}),(0,s.jsx)(n.th,{children:"1"}),(0,s.jsx)(n.th,{children:"2"}),(0,s.jsx)(n.th,{children:"3"}),(0,s.jsx)(n.th,{children:"4"}),(0,s.jsx)(n.th,{children:"5"}),(0,s.jsx)(n.th,{children:"6"}),(0,s.jsx)(n.th,{children:"7"}),(0,s.jsx)(n.th,{children:"8"}),(0,s.jsx)(n.th,{children:"9"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"0"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"5"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})})]})]})]})]}),(0,s.jsxs)(l.Z,{value:"b",label:"Insertionsort",children:[(0,s.jsx)(n.p,{children:"Beim Insertionsort wird dem unsortierten Teil der Ausgangsdaten ein beliebiges\nElement entnommen (z.B. das jeweils erste) und an der richtigen Stelle im\nsortierten Teil wieder eingef\xfcgt. Beim Einf\xfcgen wird das entnommene Element mit\nden bereits sortierten Elementen verglichen."}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Index"}),(0,s.jsx)(n.th,{children:"0"}),(0,s.jsx)(n.th,{children:"1"}),(0,s.jsx)(n.th,{children:"2"}),(0,s.jsx)(n.th,{children:"3"}),(0,s.jsx)(n.th,{children:"4"}),(0,s.jsx)(n.th,{children:"5"}),(0,s.jsx)(n.th,{children:"6"}),(0,s.jsx)(n.th,{children:"7"}),(0,s.jsx)(n.th,{children:"8"}),(0,s.jsx)(n.th,{children:"9"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"0"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"5"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})})]})]})]})]}),(0,s.jsxs)(l.Z,{value:"c",label:"Selectionsort",children:[(0,s.jsx)(n.p,{children:"Beim Selectionsort wird dem unsortierten Teil der Ausgangsdaten das jeweils\nkleinste Element entnommen und dem sortierten Teil angeh\xe4ngt."}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Index"}),(0,s.jsx)(n.th,{children:"0"}),(0,s.jsx)(n.th,{children:"1"}),(0,s.jsx)(n.th,{children:"2"}),(0,s.jsx)(n.th,{children:"3"}),(0,s.jsx)(n.th,{children:"4"}),(0,s.jsx)(n.th,{children:"5"}),(0,s.jsx)(n.th,{children:"6"}),(0,s.jsx)(n.th,{children:"7"}),(0,s.jsx)(n.th,{children:"8"}),(0,s.jsx)(n.th,{children:"9"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"0"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"5"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})})]})]})]})]}),(0,s.jsxs)(l.Z,{value:"d",label:"Quicksort",children:[(0,s.jsx)(n.p,{children:"Beim Quicksort wird die jeweilige Sammlung anhand eines beliebigen Elements\n(i.d.R. das mittlere Element) in zwei H\xe4lften aufgeteilt: eine H\xe4lfte mit\nElementen kleiner oder gleich dem Teiler-Element und eine H\xe4lfte mit Elementen\ngr\xf6\xdfer dem Teiler-Element. Der Quicksort setzt folglich auf das\nTeile-und-Herrsche-Prinzip."}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Index"}),(0,s.jsx)(n.th,{children:"0"}),(0,s.jsx)(n.th,{children:"1"}),(0,s.jsx)(n.th,{children:"2"}),(0,s.jsx)(n.th,{children:"3"}),(0,s.jsx)(n.th,{children:"4"}),(0,s.jsx)(n.th,{children:"5"}),(0,s.jsx)(n.th,{children:"6"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"0"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:"12"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"12"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"[16]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"16"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"36"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"68"})}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"49"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"[36]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"50"})}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:"50"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"50"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"5"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"49"})}),(0,s.jsx)(n.td,{children:"[49]"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"[68]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"68"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"76"})}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"[76]"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"70"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"70"})}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:"70"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"76"})}),(0,s.jsx)(n.td,{children:"[76]"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"76"})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"99"})}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"99"})}),(0,s.jsx)(n.td,{children:"99"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.strong,{children:"99"})})]})]})]}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Durchlauf"}),(0,s.jsx)(n.th,{children:"l"}),(0,s.jsx)(n.th,{children:"r"}),(0,s.jsx)(n.th,{children:"m"}),(0,s.jsx)(n.th,{children:"d[m]"}),(0,s.jsx)(n.th,{children:"i"}),(0,s.jsx)(n.th,{children:"j"}),(0,s.jsx)(n.th,{children:"l-j"}),(0,s.jsx)(n.th,{children:"i-r"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"0"}),(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"36"}),(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"0-2"}),(0,s.jsx)(n.td,{children:"3-8"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"0"}),(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"1"}),(0,s.jsx)(n.td,{children:"16"}),(0,s.jsx)(n.td,{children:"2"}),(0,s.jsx)(n.td,{children:"0"}),(0,s.jsx)(n.td,{children:"0-0"}),(0,s.jsx)(n.td,{children:"2-2"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"5"}),(0,s.jsx)(n.td,{children:"49"}),(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"3"}),(0,s.jsx)(n.td,{children:"3-3"}),(0,s.jsx)(n.td,{children:"4-8"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"4-6"}),(0,s.jsx)(n.td,{children:"7-8"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"5"}),(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"5"}),(0,s.jsx)(n.td,{children:"68"}),(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"4"}),(0,s.jsx)(n.td,{children:"4-4"}),(0,s.jsx)(n.td,{children:"6-6"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"7"}),(0,s.jsx)(n.td,{children:"76"}),(0,s.jsx)(n.td,{children:"8"}),(0,s.jsx)(n.td,{children:"6"}),(0,s.jsx)(n.td,{children:"7-6"}),(0,s.jsx)(n.td,{children:"8-8"})]})]})]}),(0,s.jsx)(n.admonition,{title:"Legende",type:"note",children:(0,s.jsx)(n.p,{children:"l = linke Grenze, r = rechte Grenze, m = Mitte, d = Datensammlung, i = linker\nIndex, j = rechter Index"})}),(0,s.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,s.jsx)(n.p,{children:"Bei der Ermittlung der Mitte wird i.d.R. die Abrundungsfunktion verwendet, d.h.\nzu einer reellen Zahl wird die gr\xf6\xdfte ganze Zahl, die kleiner als die reelle\nZahl ist, verwendet."})})]}),(0,s.jsxs)(l.Z,{value:"e",label:"Mergesort",children:[(0,s.jsx)(n.p,{children:"Beim Mergesort wird die Ausgangsliste zun\xe4chst in kleinere Listen zerlegt, die\nanschlie\xdfend im Rei\xdfverschlussverfahren wieder zusammengef\xfcgt bzw. verschmolzen\nwerden."}),(0,s.jsx)(n.mermaid,{value:"flowchart\n split0 --\x3e split1\n split0 --\x3e split2\n split1 --\x3e split11\n split1 --\x3e split12\n split11 --\x3e split111\n split11 --\x3e split112\n split2 --\x3e split21\n split2 --\x3e split22\n\n split111 --\x3e merge1\n split112 --\x3e merge12\n merge1 --\x3e merge2\n merge12 --\x3e merge2\n merge2 --\x3e merge3\n split12 --\x3e merge0\n merge0 --\x3e merge3\n split21 --\x3e merge4\n split22 --\x3e merge5\n merge4 --\x3e merge6\n merge5 --\x3e merge6\n merge3 --\x3e merge7\n merge6 --\x3e merge7\n\n subgraph split\n split0(12, 99, 50, 68, 36, 49, 76, 70, 16)\n split1(12, 99, 50, 68, 36)\n split2(49, 76, 70, 16)\n split11(12, 99, 50)\n split111(12, 99)\n split112(50)\n split12(68, 36)\n split21(49, 76)\n split22(70, 16)\n end\n\n subgraph merge\n merge1(12, 99)\n merge12(50)\n merge2(12, 50, 99)\n merge0(36, 68)\n merge3(12, 36, 50, 68, 99)\n merge4(49, 76)\n merge5(16, 70)\n merge6(16, 49, 70, 76)\n merge7(12, 16, 36, 49, 50, 68, 70, 76, 99)\n end"})]}),(0,s.jsxs)(l.Z,{value:"f",label:"Heapsort",children:[(0,s.jsx)(n.p,{children:"Beim Heapsort werden die Daten zun\xe4chst in einen bin\xe4ren Max-Heap \xfcberf\xfchrt,\nd.h. in einen Bin\xe4rbaum, bei dem jeder Elternknoten gr\xf6\xdfer ist als seine\nKindknoten. Anschlie\xdfend wird in jedem Durchlauf das jeweils letzte Element mit\ndem Wurzelknoten ausgetauscht und anschlie\xdfend durch Vergleichen und Austauschen\nsichergestellt, dass weiterhin alle Knoten die Heap-Bedingung erf\xfcllen. Dieser\nSchritt wird als Heapify oder Versickern bezeichnet."}),(0,s.jsx)(n.mermaid,{value:'flowchart TD\n 1(99)\n 2(70)\n 3(76)\n 4(68)\n 5(36)\n 6(49)\n 7(50)\n 8(12)\n 9(16)\n\n subgraph "Build-Max-Heap"\n array(16, 12, 50, 49, 36, 68, 76, 70, 99)\n 1 --\x3e 2\n 1 --\x3e 3\n 2 --\x3e 4\n 2 --\x3e 5\n 3 --\x3e 6\n 3 --\x3e 7\n 4 --\x3e 8\n 4 --\x3e 9\n end'}),(0,s.jsx)(n.mermaid,{value:'flowchart TD\n 1(76)\n 2(70)\n 3(50)\n 4(68)\n 5(36)\n 6(49)\n 7(16)\n 8(12)\n\n subgraph "Heapify 1"\n array(12, 16, 49, 36, 68, 50, 70, 76, 99)\n 1 --\x3e 2\n 1 --\x3e 3\n 2 --\x3e 4\n 2 --\x3e 5\n 3 --\x3e 6\n 3 --\x3e 7\n 4 --\x3e 8\n end'}),(0,s.jsx)(n.mermaid,{value:'flowchart TD\n 1(70)\n 2(68)\n 3(50)\n 4(12)\n 5(36)\n 6(49)\n 7(16)\n\n subgraph "Heapify 2"\n array(16, 49, 36, 12, 68, 50, 70, 76, 99)\n 1 --\x3e 2\n 1 --\x3e 3\n 2 --\x3e 4\n 2 --\x3e 5\n 3 --\x3e 6\n 3 --\x3e 7\n end'}),(0,s.jsx)(n.mermaid,{value:'flowchart TD\n 1(68)\n 2(36)\n 3(50)\n 4(12)\n 5(16)\n 6(49)\n\n subgraph "Heapify 3"\n array(16, 12, 50, 36, 49, 68, 70, 76, 99)\n 1 --\x3e 2\n 1 --\x3e 3\n 2 --\x3e 4\n 2 --\x3e 5\n 3 --\x3e 6\n end'}),(0,s.jsx)(n.mermaid,{value:'flowchart TD\n 1(50)\n 2(36)\n 3(49)\n 4(12)\n 5(16)\n\n subgraph "Heapify 4"\n array(12, 49, 36, 16, 50, 68, 70, 76, 99)\n 1 --\x3e 2\n 1 --\x3e 3\n 2 --\x3e 4\n 2 --\x3e 5\n end'}),(0,s.jsx)(n.mermaid,{value:'flowchart TD\n 1(49)\n 2(36)\n 3(16)\n 4(12)\n\n subgraph "Heapify 5"\n array(16, 36, 12, 49, 50, 68, 70, 76, 99)\n 1 --\x3e 2\n 1 --\x3e 3\n 2 --\x3e 4\n end'}),(0,s.jsx)(n.mermaid,{value:'flowchart TD\n 1(36)\n 2(12)\n 3(16)\n\n subgraph "Heapify 6"\n array(12, 16, 36, 49, 50, 68, 70, 76, 99)\n 1 --\x3e 2\n 1 --\x3e 3\n end'}),(0,s.jsx)(n.mermaid,{value:'flowchart TD\n 1(16)\n 2(12)\n\n subgraph "Heapify 7"\n array(12, 16, 36, 49, 50, 68, 70, 76, 99)\n 1 --\x3e 2\n end'})]})]})]})}function o(e={}){let{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},5525:function(e,n,r){r.d(n,{Z:()=>t});var d=r("85893");r("67294");var s=r("67026");let i="tabItem_Ymn6";function t(e){let{children:n,hidden:r,className:t}=e;return(0,d.jsx)("div",{role:"tabpanel",className:(0,s.Z)(i,t),hidden:r,children:n})}},47902:function(e,n,r){r.d(n,{Z:()=>v});var d=r("85893"),s=r("67294"),i=r("67026"),t=r("69599"),l=r("16550"),h=r("32000"),c=r("4520"),x=r("38341"),j=r("76009");function a(e){return s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||s.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function o(e){let{value:n,tabValues:r}=e;return r.some(e=>e.value===n)}var g=r("7227");let u="tabList__CuJ",m="tabItem_LNqP";function p(e){let{className:n,block:r,selectedValue:s,selectValue:l,tabValues:h}=e,c=[],{blockElementScrollPositionUntilNextRender:x}=(0,t.o5)(),j=e=>{let n=e.currentTarget,r=h[c.indexOf(n)].value;r!==s&&(x(n),l(r))},a=e=>{let n=null;switch(e.key){case"Enter":j(e);break;case"ArrowRight":{let r=c.indexOf(e.currentTarget)+1;n=c[r]??c[0];break}case"ArrowLeft":{let r=c.indexOf(e.currentTarget)-1;n=c[r]??c[c.length-1]}}n?.focus()};return(0,d.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":r},n),children:h.map(e=>{let{value:n,label:r,attributes:t}=e;return(0,d.jsx)("li",{role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,ref:e=>c.push(e),onKeyDown:a,onClick:j,...t,className:(0,i.Z)("tabs__item",m,t?.className,{"tabs__item--active":s===n}),children:r??n},n)})})}function b(e){let{lazy:n,children:r,selectedValue:t}=e,l=(Array.isArray(r)?r:[r]).filter(Boolean);if(n){let e=l.find(e=>e.props.value===t);return e?(0,s.cloneElement)(e,{className:(0,i.Z)("margin-top--md",e.props.className)}):null}return(0,d.jsx)("div",{className:"margin-top--md",children:l.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function f(e){let n=function(e){let{defaultValue:n,queryString:r=!1,groupId:d}=e,i=function(e){let{values:n,children:r}=e;return(0,s.useMemo)(()=>{let e=n??a(r).map(e=>{let{props:{value:n,label:r,attributes:d,default:s}}=e;return{value:n,label:r,attributes:d,default:s}});return!function(e){let n=(0,x.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,r])}(e),[t,g]=(0,s.useState)(()=>(function(e){let{defaultValue:n,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(n){if(!o({value:n,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let d=r.find(e=>e.default)??r[0];if(!d)throw Error("Unexpected error: 0 tabValues");return d.value})({defaultValue:n,tabValues:i})),[u,m]=function(e){let{queryString:n=!1,groupId:r}=e,d=(0,l.k6)(),i=function(e){let{queryString:n=!1,groupId:r}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:n,groupId:r}),t=(0,c._X)(i);return[t,(0,s.useCallback)(e=>{if(!i)return;let n=new URLSearchParams(d.location.search);n.set(i,e),d.replace({...d.location,search:n.toString()})},[i,d])]}({queryString:r,groupId:d}),[p,b]=function(e){var n;let{groupId:r}=e;let d=(n=r)?`docusaurus.tab.${n}`:null,[i,t]=(0,j.Nk)(d);return[i,(0,s.useCallback)(e=>{if(!!d)t.set(e)},[d,t])]}({groupId:d}),f=(()=>{let e=u??p;return o({value:e,tabValues:i})?e:null})();return(0,h.Z)(()=>{f&&g(f)},[f]),{selectedValue:t,selectValue:(0,s.useCallback)(e=>{if(!o({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);g(e),m(e),b(e)},[m,b,i]),tabValues:i}}(e);return(0,d.jsxs)("div",{className:(0,i.Z)("tabs-container",u),children:[(0,d.jsx)(p,{...n,...e}),(0,d.jsx)(b,{...n,...e})]})}function v(e){let n=(0,g.Z)();return(0,d.jsx)(f,{...e,children:a(e.children)},String(n))}},50065:function(e,n,r){r.d(n,{Z:function(){return l},a:function(){return t}});var d=r(67294);let s={},i=d.createContext(s);function t(e){let n=d.useContext(i);return d.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),d.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/42067217.33a3f325.js b/pr-preview/pr-238/assets/js/42067217.33a3f325.js new file mode 100644 index 0000000000..f196ae1df8 --- /dev/null +++ b/pr-preview/pr-238/assets/js/42067217.33a3f325.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8173"],{12893:function(e,n,i){i.r(n),i.d(n,{metadata:()=>l,contentTitle:()=>o,default:()=>h,assets:()=>a,toc:()=>c,frontMatter:()=>t});var l=JSON.parse('{"id":"exercises/javafx/javafx04","title":"JavaFX04","description":"","source":"@site/docs/exercises/javafx/javafx04.md","sourceDirName":"exercises/javafx","slug":"/exercises/javafx/javafx04","permalink":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx04","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/javafx/javafx04.md","tags":[],"version":"current","frontMatter":{"title":"JavaFX04","description":""},"sidebar":"exercisesSidebar","previous":{"title":"JavaFX03","permalink":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx03"},"next":{"title":"JavaFX05","permalink":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx05"}}'),s=i("85893"),r=i("50065");let t={title:"JavaFX04",description:""},o=void 0,a={},c=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Szenegraph",id:"szenegraph",level:2},{value:"Allgemeine Hinweise",id:"allgemeine-hinweise",level:2},{value:"Hinweise zur Klasse LED",id:"hinweise-zur-klasse-led",level:2},{value:"Hinweis zur Klasse Model",id:"hinweis-zur-klasse-model",level:2},{value:"Hinweise zur Klasse Controller",id:"hinweise-zur-klasse-controller",level:2}];function d(e){let n={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Erstelle eine JavaFX-Anwendung zum Ein- und Ausschalten einer farbigen LED\nanhand des abgebildeten Klassendiagramms sowie des abgebildeten Szenegraphs."}),"\n",(0,s.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,s.jsx)(n.mermaid,{value:"classDiagram\n Initializable <|.. Controller : implements\n Controller o-- Model\n Model o-- LED\n\n class LED {\n -color: color\n -isShining: boolean\n +Light()\n +getColor() Color\n +isShining() boolean\n +switchOn() void\n +switchOff() void\n +switchColor() void\n }\n\n class Model {\n -instance: Model$\n -led: LED\n -Model()\n +getInstance() Model$\n +getLED() LED\n }\n\n class Controller {\n -layer1: Circle #123;FXML#125;\n -layer2: Circle #123;FXML#125;\n -layer3: Circle #123;FXML#125;\n -layer4: Circle #123;FXML#125;\n -model: Model\n +initialize(location: URL, resources: ResourceBundle) void\n +switchOn(actionEvent: ActionEvent) void #123;FXML#125;\n +switchOff(actionEvent: ActionEvent) void #123;FXML#125;\n +switchColor(actionEvent: ActionEvent) void #123;FXML#125;\n }\n\n class Initializable {\n <>\n +initialize(location: URL, resources: ResourceBundle) void\n }"}),"\n",(0,s.jsx)(n.h2,{id:"szenegraph",children:"Szenegraph"}),"\n",(0,s.jsx)(n.mermaid,{value:"flowchart LR\n vbox[VBox\\nfx:controller=Pfad.Controller]\n group[Group]\n circle1[Circle\\nfx:id=layer1\\nradius=25]\n circle2[Circle\\nfx:id=layer2\\nradius=50]\n circle3[Circle\\nfx:id=layer3\\nradius=75]\n circle4[Circle\\nfx:id=layer4\\nradius=100]\n hbox[HBox]\n button1[Button\\ntext=Einschalten\\nonAction=#switchOn]\n button2[Button\\ntext=Ausschalten\\nonAction=#switchOff]\n button3[Button\\ntext=Farbe wechseln\\nonAction=#switchColor]\n\n vbox --\x3e group\n vbox --\x3e hbox\n group --\x3e circle1\n group --\x3e circle2\n group --\x3e circle3\n group --\x3e circle4\n hbox --\x3e button1\n hbox --\x3e button2\n hbox --\x3e button3"}),"\n",(0,s.jsx)(n.h2,{id:"allgemeine-hinweise",children:"Allgemeine Hinweise"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Die Klasse ",(0,s.jsx)(n.code,{children:"AnimationTimer"})," repr\xe4sentiert einen Zeitmesser"]}),"\n",(0,s.jsxs)(n.li,{children:["Die Methode ",(0,s.jsx)(n.code,{children:"void start()"})," der Klasse ",(0,s.jsx)(n.code,{children:"AnimationTimer"})," startet den Zeitmesser"]}),"\n",(0,s.jsxs)(n.li,{children:["Der Konstruktor\n",(0,s.jsx)(n.code,{children:"Color(red: double, green: double, blue: double, opacity: double)"})," der Klasse\n",(0,s.jsx)(n.code,{children:"Color"})," erm\xf6glicht das Erzeugen einer (durchsichtigen) Farbe"]}),"\n"]}),"\n",(0,s.jsxs)(n.h2,{id:"hinweise-zur-klasse-led",children:["Hinweise zur Klasse ",(0,s.jsx)(n.em,{children:"LED"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Der Konstruktor soll die LED auf die Farbe Rot setzen"}),"\n",(0,s.jsxs)(n.li,{children:["Die Methode ",(0,s.jsx)(n.code,{children:"void switchOn()"})," soll das Attribut ",(0,s.jsx)(n.code,{children:"isShining"})," auf den Wert\n",(0,s.jsx)(n.em,{children:"true"})," setzen"]}),"\n",(0,s.jsxs)(n.li,{children:["Die Methode ",(0,s.jsx)(n.code,{children:"void switchOff()"})," soll das Attribut ",(0,s.jsx)(n.code,{children:"isShining"})," auf den Wert\n",(0,s.jsx)(n.em,{children:"false"})," setzen"]}),"\n",(0,s.jsxs)(n.li,{children:["Die Methode ",(0,s.jsx)(n.code,{children:"void switchColor()"})," soll die Farbe der LED von Rot auf Gr\xfcn bzw.\nvon Gr\xfcn auf Blau bzw. von Blau auf Rot wechseln"]}),"\n"]}),"\n",(0,s.jsxs)(n.h2,{id:"hinweis-zur-klasse-model",children:["Hinweis zur Klasse ",(0,s.jsx)(n.em,{children:"Model"})]}),"\n",(0,s.jsx)(n.p,{children:"Der Konstruktor soll die LED initialisieren"}),"\n",(0,s.jsxs)(n.h2,{id:"hinweise-zur-klasse-controller",children:["Hinweise zur Klasse ",(0,s.jsx)(n.em,{children:"Controller"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Die Methode ",(0,s.jsx)(n.code,{children:"void initialize(location: URL, resources: ResourceBundle)"})," soll\ndas Model initialisieren und kontinuierlich pr\xfcfen, ob die LED leuchtet. F\xfcr\nden Fall, dass die LED leuchtet, sollen alle 4 Ebenen in der Farbe der LED mit\naufsteigender Durchsichtigkeit (0%, 25%, 50%, 75%) angezeigt werden und f\xfcr\nden Fall, dass die LED nicht leuchtet, soll aussschlie\xdflich die erste Ebene in\nder Farbe der LED angezeigt werden"]}),"\n",(0,s.jsxs)(n.li,{children:["Die Methode ",(0,s.jsx)(n.code,{children:"void switchOn(actionEvent: ActionEvent)"})," soll die LED einschalten"]}),"\n",(0,s.jsxs)(n.li,{children:["Die Methode ",(0,s.jsx)(n.code,{children:"void switchOff(actionEvent: ActionEvent)"})," soll die LED\nausschalten"]}),"\n",(0,s.jsxs)(n.li,{children:["Die Methode ",(0,s.jsx)(n.code,{children:"void switchColor(actionEvent: ActionEvent)"})," soll die Farbe der\nLED wechseln"]}),"\n"]})]})}function h(e={}){let{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},50065:function(e,n,i){i.d(n,{Z:function(){return o},a:function(){return t}});var l=i(67294);let s={},r=l.createContext(s);function t(e){let n=l.useContext(r);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:t(e.components),l.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/42ad1212.c9fb592e.js b/pr-preview/pr-238/assets/js/42ad1212.c9fb592e.js new file mode 100644 index 0000000000..a11cc1895f --- /dev/null +++ b/pr-preview/pr-238/assets/js/42ad1212.c9fb592e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7805"],{26775:function(a){a.exports=JSON.parse('{"tag":{"label":"dates-and-times","permalink":"/java-docs/pr-preview/pr-238/tags/dates-and-times","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":2,"items":[{"id":"documentation/dates-and-times","title":"Datums- und Zeitangaben","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/dates-and-times"},{"id":"exercises/java-api/java-api","title":"Die Java API","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/java-api/"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/4343.d6cda5d5.js b/pr-preview/pr-238/assets/js/4343.d6cda5d5.js new file mode 100644 index 0000000000..ab77448971 --- /dev/null +++ b/pr-preview/pr-238/assets/js/4343.d6cda5d5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4343"],{92399:function(r,a,e){e.d(a,{diagram:function(){return l}});var s=e(83371);e(57169),e(290),e(29660),e(37971),e(9833),e(30594),e(82612),e(41200),e(68394);var c=e(74146),l={parser:s.P0,db:s.pl,renderer:s.b0,styles:s.Ee,init:(0,c.eW)(r=>{!r.class&&(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute,s.pl.clear()},"init")}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/43cca6d3.71754b42.js b/pr-preview/pr-238/assets/js/43cca6d3.71754b42.js new file mode 100644 index 0000000000..eb92ad126c --- /dev/null +++ b/pr-preview/pr-238/assets/js/43cca6d3.71754b42.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["9577"],{25231:function(e,t,r){r.r(t),r.d(t,{metadata:()=>a,contentTitle:()=>u,default:()=>p,assets:()=>o,toc:()=>c,frontMatter:()=>l});var a=JSON.parse('{"id":"exercises/lambdas/lambdas05","title":"Lambdas05","description":"","source":"@site/docs/exercises/lambdas/lambdas05.mdx","sourceDirName":"exercises/lambdas","slug":"/exercises/lambdas/lambdas05","permalink":"/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas05","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/lambdas/lambdas05.mdx","tags":[],"version":"current","frontMatter":{"title":"Lambdas05","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Lambdas04","permalink":"/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas04"},"next":{"title":"Generische Programmierung","permalink":"/java-docs/pr-preview/pr-238/exercises/generics/"}}'),s=r("85893"),n=r("50065"),i=r("39661");let l={title:"Lambdas05",description:""},u=void 0,o={},c=[];function d(e){let t={a:"a",p:"p",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:["Passe die ausf\xfchrbare Klasse aus \xdcbungsaufgabe\n",(0,s.jsx)(t.a,{href:"../inner-classes/inner-classes04",children:"InnerClasse04"})," so an, dass die\nKoordinatenliste mit Hilfe eines Lambda-Ausdruckes absteigend nach den X-Werten\nsortiert wird."]}),"\n",(0,s.jsx)(i.Z,{pullRequest:"74",branchSuffix:"lambdas/05"})]})}function p(e={}){let{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},5525:function(e,t,r){r.d(t,{Z:()=>i});var a=r("85893");r("67294");var s=r("67026");let n="tabItem_Ymn6";function i(e){let{children:t,hidden:r,className:i}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,s.Z)(n,i),hidden:r,children:t})}},47902:function(e,t,r){r.d(t,{Z:()=>j});var a=r("85893"),s=r("67294"),n=r("67026"),i=r("69599"),l=r("16550"),u=r("32000"),o=r("4520"),c=r("38341"),d=r("76009");function p(e){return s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||s.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:t,tabValues:r}=e;return r.some(e=>e.value===t)}var f=r("7227");let m="tabList__CuJ",b="tabItem_LNqP";function v(e){let{className:t,block:r,selectedValue:s,selectValue:l,tabValues:u}=e,o=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.o5)(),d=e=>{let t=e.currentTarget,r=u[o.indexOf(t)].value;r!==s&&(c(t),l(r))},p=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let r=o.indexOf(e.currentTarget)+1;t=o[r]??o[0];break}case"ArrowLeft":{let r=o.indexOf(e.currentTarget)-1;t=o[r]??o[o.length-1]}}t?.focus()};return(0,a.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":r},t),children:u.map(e=>{let{value:t,label:r,attributes:i}=e;return(0,a.jsx)("li",{role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,ref:e=>o.push(e),onKeyDown:p,onClick:d,...i,className:(0,n.Z)("tabs__item",b,i?.className,{"tabs__item--active":s===t}),children:r??t},t)})})}function x(e){let{lazy:t,children:r,selectedValue:i}=e,l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){let e=l.find(e=>e.props.value===i);return e?(0,s.cloneElement)(e,{className:(0,n.Z)("margin-top--md",e.props.className)}):null}return(0,a.jsx)("div",{className:"margin-top--md",children:l.map((e,t)=>(0,s.cloneElement)(e,{key:t,hidden:e.props.value!==i}))})}function g(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:a}=e,n=function(e){let{values:t,children:r}=e;return(0,s.useMemo)(()=>{let e=t??p(r).map(e=>{let{props:{value:t,label:r,attributes:a,default:s}}=e;return{value:t,label:r,attributes:a,default:s}});return!function(e){let t=(0,c.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[t,r])}(e),[i,f]=(0,s.useState)(()=>(function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let a=r.find(e=>e.default)??r[0];if(!a)throw Error("Unexpected error: 0 tabValues");return a.value})({defaultValue:t,tabValues:n})),[m,b]=function(e){let{queryString:t=!1,groupId:r}=e,a=(0,l.k6)(),n=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r}),i=(0,o._X)(n);return[i,(0,s.useCallback)(e=>{if(!n)return;let t=new URLSearchParams(a.location.search);t.set(n,e),a.replace({...a.location,search:t.toString()})},[n,a])]}({queryString:r,groupId:a}),[v,x]=function(e){var t;let{groupId:r}=e;let a=(t=r)?`docusaurus.tab.${t}`:null,[n,i]=(0,d.Nk)(a);return[n,(0,s.useCallback)(e=>{if(!!a)i.set(e)},[a,i])]}({groupId:a}),g=(()=>{let e=m??v;return h({value:e,tabValues:n})?e:null})();return(0,u.Z)(()=>{g&&f(g)},[g]),{selectedValue:i,selectValue:(0,s.useCallback)(e=>{if(!h({value:e,tabValues:n}))throw Error(`Can't select invalid tab value=${e}`);f(e),b(e),x(e)},[b,x,n]),tabValues:n}}(e);return(0,a.jsxs)("div",{className:(0,n.Z)("tabs-container",m),children:[(0,a.jsx)(v,{...t,...e}),(0,a.jsx)(x,{...t,...e})]})}function j(e){let t=(0,f.Z)();return(0,a.jsx)(g,{...e,children:p(e.children)},String(t))}},39661:function(e,t,r){r.d(t,{Z:function(){return u}});var a=r(85893);r(67294);var s=r(47902),n=r(5525),i=r(83012),l=r(45056);function u(e){let{pullRequest:t,branchSuffix:r}=e;return(0,a.jsxs)(s.Z,{children:[(0,a.jsxs)(n.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,a.jsx)(l.Z,{language:"console",children:`git switch exercises/${r}`}),(0,a.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${r}/Exercise.java`,children:(0,a.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,a.jsxs)(n.Z,{value:"solution",label:"Solution",children:[(0,a.jsx)(l.Z,{language:"console",children:`git switch solutions/${r}`}),(0,a.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${r}/Exercise.java`,children:(0,a.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,a.jsxs)(n.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,a.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${t}/files?diff=split`,children:["PR#",t]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/447a540c.2e1814b0.js b/pr-preview/pr-238/assets/js/447a540c.2e1814b0.js new file mode 100644 index 0000000000..a6b08c73ed --- /dev/null +++ b/pr-preview/pr-238/assets/js/447a540c.2e1814b0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["6443"],{88190:function(e,t,r){r.r(t),r.d(t,{metadata:()=>s,contentTitle:()=>o,default:()=>p,assets:()=>u,toc:()=>c,frontMatter:()=>l});var s=JSON.parse('{"id":"exercises/cases/cases02","title":"Cases02","description":"","source":"@site/docs/exercises/cases/cases02.mdx","sourceDirName":"exercises/cases","slug":"/exercises/cases/cases02","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/cases02","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/cases/cases02.mdx","tags":[],"version":"current","frontMatter":{"title":"Cases02","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Cases01","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/cases01"},"next":{"title":"Cases03","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/cases03"}}'),n=r("85893"),a=r("50065"),i=r("39661");let l={title:"Cases02",description:""},o=void 0,u={},c=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2}];function d(e){let t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"Erstelle eine ausf\xfchrbare Klasse, welche die 4 Grundrechenoperationen\nbeherrscht."}),"\n",(0,n.jsx)(t.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-console",children:"Gib bitte den ersten Operanden ein: 3\nGib bitte den Operator ein: *\nGib bitte den zweiten Operanden ein: 4\nErgebnis: 3 * 4 = 12,00\n"})}),"\n",(0,n.jsx)(i.Z,{pullRequest:"8",branchSuffix:"cases/02"})]})}function p(e={}){let{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},5525:function(e,t,r){r.d(t,{Z:()=>i});var s=r("85893");r("67294");var n=r("67026");let a="tabItem_Ymn6";function i(e){let{children:t,hidden:r,className:i}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,n.Z)(a,i),hidden:r,children:t})}},47902:function(e,t,r){r.d(t,{Z:()=>j});var s=r("85893"),n=r("67294"),a=r("67026"),i=r("69599"),l=r("16550"),o=r("32000"),u=r("4520"),c=r("38341"),d=r("76009");function p(e){return n.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||n.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:t,tabValues:r}=e;return r.some(e=>e.value===t)}var f=r("7227");let b="tabList__CuJ",v="tabItem_LNqP";function m(e){let{className:t,block:r,selectedValue:n,selectValue:l,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.o5)(),d=e=>{let t=e.currentTarget,r=o[u.indexOf(t)].value;r!==n&&(c(t),l(r))},p=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let r=u.indexOf(e.currentTarget)+1;t=u[r]??u[0];break}case"ArrowLeft":{let r=u.indexOf(e.currentTarget)-1;t=u[r]??u[u.length-1]}}t?.focus()};return(0,s.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":r},t),children:o.map(e=>{let{value:t,label:r,attributes:i}=e;return(0,s.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>u.push(e),onKeyDown:p,onClick:d,...i,className:(0,a.Z)("tabs__item",v,i?.className,{"tabs__item--active":n===t}),children:r??t},t)})})}function x(e){let{lazy:t,children:r,selectedValue:i}=e,l=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){let e=l.find(e=>e.props.value===i);return e?(0,n.cloneElement)(e,{className:(0,a.Z)("margin-top--md",e.props.className)}):null}return(0,s.jsx)("div",{className:"margin-top--md",children:l.map((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==i}))})}function g(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:s}=e,a=function(e){let{values:t,children:r}=e;return(0,n.useMemo)(()=>{let e=t??p(r).map(e=>{let{props:{value:t,label:r,attributes:s,default:n}}=e;return{value:t,label:r,attributes:s,default:n}});return!function(e){let t=(0,c.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[t,r])}(e),[i,f]=(0,n.useState)(()=>(function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let s=r.find(e=>e.default)??r[0];if(!s)throw Error("Unexpected error: 0 tabValues");return s.value})({defaultValue:t,tabValues:a})),[b,v]=function(e){let{queryString:t=!1,groupId:r}=e,s=(0,l.k6)(),a=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r}),i=(0,u._X)(a);return[i,(0,n.useCallback)(e=>{if(!a)return;let t=new URLSearchParams(s.location.search);t.set(a,e),s.replace({...s.location,search:t.toString()})},[a,s])]}({queryString:r,groupId:s}),[m,x]=function(e){var t;let{groupId:r}=e;let s=(t=r)?`docusaurus.tab.${t}`:null,[a,i]=(0,d.Nk)(s);return[a,(0,n.useCallback)(e=>{if(!!s)i.set(e)},[s,i])]}({groupId:s}),g=(()=>{let e=b??m;return h({value:e,tabValues:a})?e:null})();return(0,o.Z)(()=>{g&&f(g)},[g]),{selectedValue:i,selectValue:(0,n.useCallback)(e=>{if(!h({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);f(e),v(e),x(e)},[v,x,a]),tabValues:a}}(e);return(0,s.jsxs)("div",{className:(0,a.Z)("tabs-container",b),children:[(0,s.jsx)(m,{...t,...e}),(0,s.jsx)(x,{...t,...e})]})}function j(e){let t=(0,f.Z)();return(0,s.jsx)(g,{...e,children:p(e.children)},String(t))}},39661:function(e,t,r){r.d(t,{Z:function(){return o}});var s=r(85893);r(67294);var n=r(47902),a=r(5525),i=r(83012),l=r(45056);function o(e){let{pullRequest:t,branchSuffix:r}=e;return(0,s.jsxs)(n.Z,{children:[(0,s.jsxs)(a.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,s.jsx)(l.Z,{language:"console",children:`git switch exercises/${r}`}),(0,s.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${r}/Exercise.java`,children:(0,s.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,s.jsxs)(a.Z,{value:"solution",label:"Solution",children:[(0,s.jsx)(l.Z,{language:"console",children:`git switch solutions/${r}`}),(0,s.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${r}/Exercise.java`,children:(0,s.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,s.jsxs)(a.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,s.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${t}/files?diff=split`,children:["PR#",t]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/44b418b9.d9cc3de2.js b/pr-preview/pr-238/assets/js/44b418b9.d9cc3de2.js new file mode 100644 index 0000000000..5a70efe3f6 --- /dev/null +++ b/pr-preview/pr-238/assets/js/44b418b9.d9cc3de2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7690"],{21343:function(e,t,r){r.r(t),r.d(t,{metadata:()=>n,contentTitle:()=>o,default:()=>d,assets:()=>u,toc:()=>c,frontMatter:()=>i});var n=JSON.parse('{"id":"exercises/loops/loops02","title":"Loops02","description":"","source":"@site/docs/exercises/loops/loops02.mdx","sourceDirName":"exercises/loops","slug":"/exercises/loops/loops02","permalink":"/java-docs/pr-preview/pr-238/exercises/loops/loops02","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/loops/loops02.mdx","tags":[],"version":"current","frontMatter":{"title":"Loops02","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Loops01","permalink":"/java-docs/pr-preview/pr-238/exercises/loops/loops01"},"next":{"title":"Loops03","permalink":"/java-docs/pr-preview/pr-238/exercises/loops/loops03"}}'),s=r("85893"),a=r("50065"),l=r("39661");let i={title:"Loops02",description:""},o=void 0,u={},c=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2}];function p(e){let t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"Erstelle eine ausf\xfchrbare Klasse, welche ermittelt, ob es sich bei einer\neingegebenen Zahl um eine Primzahl handelt oder nicht."}),"\n",(0,s.jsx)(t.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-console",children:"Gib bitte eine ganze Zahl ein 13\nErgebnis: Die eingegebene Zahl ist eine Primzahl\n"})}),"\n",(0,s.jsx)(l.Z,{pullRequest:"13",branchSuffix:"loops/02"})]})}function d(e={}){let{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},5525:function(e,t,r){r.d(t,{Z:()=>l});var n=r("85893");r("67294");var s=r("67026");let a="tabItem_Ymn6";function l(e){let{children:t,hidden:r,className:l}=e;return(0,n.jsx)("div",{role:"tabpanel",className:(0,s.Z)(a,l),hidden:r,children:t})}},47902:function(e,t,r){r.d(t,{Z:()=>j});var n=r("85893"),s=r("67294"),a=r("67026"),l=r("69599"),i=r("16550"),o=r("32000"),u=r("4520"),c=r("38341"),p=r("76009");function d(e){return s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||s.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:t,tabValues:r}=e;return r.some(e=>e.value===t)}var f=r("7227");let b="tabList__CuJ",m="tabItem_LNqP";function v(e){let{className:t,block:r,selectedValue:s,selectValue:i,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),p=e=>{let t=e.currentTarget,r=o[u.indexOf(t)].value;r!==s&&(c(t),i(r))},d=e=>{let t=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{let r=u.indexOf(e.currentTarget)+1;t=u[r]??u[0];break}case"ArrowLeft":{let r=u.indexOf(e.currentTarget)-1;t=u[r]??u[u.length-1]}}t?.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":r},t),children:o.map(e=>{let{value:t,label:r,attributes:l}=e;return(0,n.jsx)("li",{role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,ref:e=>u.push(e),onKeyDown:d,onClick:p,...l,className:(0,a.Z)("tabs__item",m,l?.className,{"tabs__item--active":s===t}),children:r??t},t)})})}function x(e){let{lazy:t,children:r,selectedValue:l}=e,i=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){let e=i.find(e=>e.props.value===l);return e?(0,s.cloneElement)(e,{className:(0,a.Z)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:i.map((e,t)=>(0,s.cloneElement)(e,{key:t,hidden:e.props.value!==l}))})}function g(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,a=function(e){let{values:t,children:r}=e;return(0,s.useMemo)(()=>{let e=t??d(r).map(e=>{let{props:{value:t,label:r,attributes:n,default:s}}=e;return{value:t,label:r,attributes:n,default:s}});return!function(e){let t=(0,c.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[t,r])}(e),[l,f]=(0,s.useState)(()=>(function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let n=r.find(e=>e.default)??r[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:a})),[b,m]=function(e){let{queryString:t=!1,groupId:r}=e,n=(0,i.k6)(),a=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r}),l=(0,u._X)(a);return[l,(0,s.useCallback)(e=>{if(!a)return;let t=new URLSearchParams(n.location.search);t.set(a,e),n.replace({...n.location,search:t.toString()})},[a,n])]}({queryString:r,groupId:n}),[v,x]=function(e){var t;let{groupId:r}=e;let n=(t=r)?`docusaurus.tab.${t}`:null,[a,l]=(0,p.Nk)(n);return[a,(0,s.useCallback)(e=>{if(!!n)l.set(e)},[n,l])]}({groupId:n}),g=(()=>{let e=b??v;return h({value:e,tabValues:a})?e:null})();return(0,o.Z)(()=>{g&&f(g)},[g]),{selectedValue:l,selectValue:(0,s.useCallback)(e=>{if(!h({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);f(e),m(e),x(e)},[m,x,a]),tabValues:a}}(e);return(0,n.jsxs)("div",{className:(0,a.Z)("tabs-container",b),children:[(0,n.jsx)(v,{...t,...e}),(0,n.jsx)(x,{...t,...e})]})}function j(e){let t=(0,f.Z)();return(0,n.jsx)(g,{...e,children:d(e.children)},String(t))}},39661:function(e,t,r){r.d(t,{Z:function(){return o}});var n=r(85893);r(67294);var s=r(47902),a=r(5525),l=r(83012),i=r(45056);function o(e){let{pullRequest:t,branchSuffix:r}=e;return(0,n.jsxs)(s.Z,{children:[(0,n.jsxs)(a.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,n.jsx)(i.Z,{language:"console",children:`git switch exercises/${r}`}),(0,n.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${r}/Exercise.java`,children:(0,n.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,n.jsxs)(a.Z,{value:"solution",label:"Solution",children:[(0,n.jsx)(i.Z,{language:"console",children:`git switch solutions/${r}`}),(0,n.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${r}/Exercise.java`,children:(0,n.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,n.jsxs)(a.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,n.jsxs)(l.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${t}/files?diff=split`,children:["PR#",t]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/45c26b80.ec835fb9.js b/pr-preview/pr-238/assets/js/45c26b80.ec835fb9.js new file mode 100644 index 0000000000..2905558644 --- /dev/null +++ b/pr-preview/pr-238/assets/js/45c26b80.ec835fb9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["9312"],{65246:function(e,t,r){r.r(t),r.d(t,{metadata:()=>n,contentTitle:()=>c,default:()=>x,assets:()=>h,toc:()=>u,frontMatter:()=>d});var n=JSON.parse('{"id":"exercises/hashing/hashing02","title":"Hashing02","description":"","source":"@site/docs/exercises/hashing/hashing02.mdx","sourceDirName":"exercises/hashing","slug":"/exercises/hashing/hashing02","permalink":"/java-docs/pr-preview/pr-238/exercises/hashing/hashing02","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/hashing/hashing02.mdx","tags":[],"version":"current","frontMatter":{"title":"Hashing02","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Hashing01","permalink":"/java-docs/pr-preview/pr-238/exercises/hashing/hashing01"},"next":{"title":"B\xe4ume","permalink":"/java-docs/pr-preview/pr-238/exercises/trees/"}}'),i=r("85893"),s=r("50065"),l=r("47902"),a=r("5525");let d={title:"Hashing02",description:""},c=void 0,h={},u=[];function o(e){let t={p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"F\xfcge die Zahlen 26, 12, 7, 54, 14 und 9 in ein Feld der L\xe4nge 8 unter Verwendung\nder Divisionsrestmethode ohne Sondierung, unter Verwendung der multiplikativen\nMethode (\uD835\uDC34 = 0,62) mit linearer Sondierung (Intervallschritt = 2) und unter\nVerwendung der multiplikativen Methode (\uD835\uDC34 = 0,62) ohne Sondierung ein."}),"\n",(0,i.jsxs)(l.Z,{children:[(0,i.jsx)(a.Z,{value:"a",label:"-",default:!0}),(0,i.jsx)(a.Z,{value:"b",label:"Divisionsrestmethode ohne Sondierung",children:(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"0"}),(0,i.jsx)(t.th,{children:"1"}),(0,i.jsx)(t.th,{children:"2"}),(0,i.jsx)(t.th,{children:"3"}),(0,i.jsx)(t.th,{children:"4"}),(0,i.jsx)(t.th,{children:"5"}),(0,i.jsx)(t.th,{children:"6"}),(0,i.jsx)(t.th,{children:"7"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"-"}),(0,i.jsx)(t.td,{children:"9"}),(0,i.jsx)(t.td,{children:"26"}),(0,i.jsx)(t.td,{children:"-"}),(0,i.jsx)(t.td,{children:"12"}),(0,i.jsx)(t.td,{children:"-"}),(0,i.jsx)(t.td,{children:"54, 14"}),(0,i.jsx)(t.td,{children:"7"})]})})]})}),(0,i.jsx)(a.Z,{value:"c",label:"Multiplikative Methode mit linearer Sondierung",children:(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"0"}),(0,i.jsx)(t.th,{children:"1"}),(0,i.jsx)(t.th,{children:"2"}),(0,i.jsx)(t.th,{children:"3"}),(0,i.jsx)(t.th,{children:"4"}),(0,i.jsx)(t.th,{children:"5"}),(0,i.jsx)(t.th,{children:"6"}),(0,i.jsx)(t.th,{children:"7"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"26"}),(0,i.jsx)(t.td,{children:"-"}),(0,i.jsx)(t.td,{children:"7"}),(0,i.jsx)(t.td,{children:"12"}),(0,i.jsx)(t.td,{children:"9"}),(0,i.jsx)(t.td,{children:"54"}),(0,i.jsx)(t.td,{children:"-"}),(0,i.jsx)(t.td,{children:"14"})]})})]})}),(0,i.jsx)(a.Z,{value:"d",label:"Multiplikative Methode ohne Sondierung",children:(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"0"}),(0,i.jsx)(t.th,{children:"1"}),(0,i.jsx)(t.th,{children:"2"}),(0,i.jsx)(t.th,{children:"3"}),(0,i.jsx)(t.th,{children:"4"}),(0,i.jsx)(t.th,{children:"5"}),(0,i.jsx)(t.th,{children:"6"}),(0,i.jsx)(t.th,{children:"7"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"26"}),(0,i.jsx)(t.td,{children:"-"}),(0,i.jsx)(t.td,{children:"7"}),(0,i.jsx)(t.td,{children:"12, 54"}),(0,i.jsx)(t.td,{children:"9"}),(0,i.jsx)(t.td,{children:"14"}),(0,i.jsx)(t.td,{children:"-"}),(0,i.jsx)(t.td,{children:"-"})]})})]})})]})]})}function x(e={}){let{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(o,{...e})}):o(e)}},5525:function(e,t,r){r.d(t,{Z:()=>l});var n=r("85893");r("67294");var i=r("67026");let s="tabItem_Ymn6";function l(e){let{children:t,hidden:r,className:l}=e;return(0,n.jsx)("div",{role:"tabpanel",className:(0,i.Z)(s,l),hidden:r,children:t})}},47902:function(e,t,r){r.d(t,{Z:()=>g});var n=r("85893"),i=r("67294"),s=r("67026"),l=r("69599"),a=r("16550"),d=r("32000"),c=r("4520"),h=r("38341"),u=r("76009");function o(e){return i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||i.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function x(e){let{value:t,tabValues:r}=e;return r.some(e=>e.value===t)}var j=r("7227");let p="tabList__CuJ",f="tabItem_LNqP";function m(e){let{className:t,block:r,selectedValue:i,selectValue:a,tabValues:d}=e,c=[],{blockElementScrollPositionUntilNextRender:h}=(0,l.o5)(),u=e=>{let t=e.currentTarget,r=d[c.indexOf(t)].value;r!==i&&(h(t),a(r))},o=e=>{let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let r=c.indexOf(e.currentTarget)+1;t=c[r]??c[0];break}case"ArrowLeft":{let r=c.indexOf(e.currentTarget)-1;t=c[r]??c[c.length-1]}}t?.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":r},t),children:d.map(e=>{let{value:t,label:r,attributes:l}=e;return(0,n.jsx)("li",{role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,ref:e=>c.push(e),onKeyDown:o,onClick:u,...l,className:(0,s.Z)("tabs__item",f,l?.className,{"tabs__item--active":i===t}),children:r??t},t)})})}function v(e){let{lazy:t,children:r,selectedValue:l}=e,a=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){let e=a.find(e=>e.props.value===l);return e?(0,i.cloneElement)(e,{className:(0,s.Z)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:a.map((e,t)=>(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==l}))})}function b(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,s=function(e){let{values:t,children:r}=e;return(0,i.useMemo)(()=>{let e=t??o(r).map(e=>{let{props:{value:t,label:r,attributes:n,default:i}}=e;return{value:t,label:r,attributes:n,default:i}});return!function(e){let t=(0,h.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[t,r])}(e),[l,j]=(0,i.useState)(()=>(function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(t){if(!x({value:t,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let n=r.find(e=>e.default)??r[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:s})),[p,f]=function(e){let{queryString:t=!1,groupId:r}=e,n=(0,a.k6)(),s=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r}),l=(0,c._X)(s);return[l,(0,i.useCallback)(e=>{if(!s)return;let t=new URLSearchParams(n.location.search);t.set(s,e),n.replace({...n.location,search:t.toString()})},[s,n])]}({queryString:r,groupId:n}),[m,v]=function(e){var t;let{groupId:r}=e;let n=(t=r)?`docusaurus.tab.${t}`:null,[s,l]=(0,u.Nk)(n);return[s,(0,i.useCallback)(e=>{if(!!n)l.set(e)},[n,l])]}({groupId:n}),b=(()=>{let e=p??m;return x({value:e,tabValues:s})?e:null})();return(0,d.Z)(()=>{b&&j(b)},[b]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!x({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);j(e),f(e),v(e)},[f,v,s]),tabValues:s}}(e);return(0,n.jsxs)("div",{className:(0,s.Z)("tabs-container",p),children:[(0,n.jsx)(m,{...t,...e}),(0,n.jsx)(v,{...t,...e})]})}function g(e){let t=(0,j.Z)();return(0,n.jsx)(b,{...e,children:o(e.children)},String(t))}},50065:function(e,t,r){r.d(t,{Z:function(){return a},a:function(){return l}});var n=r(67294);let i={},s=n.createContext(i);function l(e){let t=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/4600.a691022e.js b/pr-preview/pr-238/assets/js/4600.a691022e.js new file mode 100644 index 0000000000..cf0c2d7020 --- /dev/null +++ b/pr-preview/pr-238/assets/js/4600.a691022e.js @@ -0,0 +1,56 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4600"],{58314:function(t,e,i){i.d(e,{diagram:function(){return U}});var n=i(74146),r=i(27818),s=i(77845),a=i(86750),l=i(35035),o=function(){var t=(0,n.eW)(function(t,e,i,n){for(i=i||{},n=t.length;n--;i[t[n]]=e);return i},"o"),e=[6,8,10,11,12,14,16,17,20,21],i=[1,9],r=[1,10],s=[1,11],a=[1,12],l=[1,13],o=[1,16],c=[1,17],h={trace:(0,n.eW)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:(0,n.eW)(function(t,e,i,n,r,s,a){var l=s.length-1;switch(r){case 1:return s[l-1];case 2:case 6:case 7:this.$=[];break;case 3:s[l-1].push(s[l]),this.$=s[l-1];break;case 4:case 5:this.$=s[l];break;case 8:n.getCommonDb().setDiagramTitle(s[l].substr(6)),this.$=s[l].substr(6);break;case 9:this.$=s[l].trim(),n.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=s[l].trim(),n.getCommonDb().setAccDescription(this.$);break;case 12:n.addSection(s[l].substr(8)),this.$=s[l].substr(8);break;case 15:n.addTask(s[l],0,""),this.$=s[l];break;case 16:n.addEvent(s[l].substr(2)),this.$=s[l]}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:i,12:r,14:s,16:a,17:l,18:14,19:15,20:o,21:c},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:i,12:r,14:s,16:a,17:l,18:14,19:15,20:o,21:c},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},parseError:(0,n.eW)(function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},"parseError"),parse:(0,n.eW)(function(t){var e=this,i=[0],r=[],s=[null],a=[],l=this.table,o="",c=0,h=0,d=0,u=a.slice.call(arguments,1),p=Object.create(this.lexer),y={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(y.yy[g]=this.yy[g]);p.setInput(t,y.yy),y.yy.lexer=p,y.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var f=p.yylloc;a.push(f);var m=p.options&&p.options.ranges;"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function x(){var t;return"number"!=typeof(t=r.pop()||p.lex()||1)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}(0,n.eW)(function(t){i.length=i.length-2*t,s.length=s.length-t,a.length=a.length-t},"popStack"),(0,n.eW)(x,"lex");for(var b,_,k,w,v,W,S,$,M,E={};;){if(k=i[i.length-1],this.defaultActions[k]?w=this.defaultActions[k]:(null==b&&(b=x()),w=l[k]&&l[k][b]),void 0===w||!w.length||!w[0]){var I="";for(W in M=[],l[k])this.terminals_[W]&&W>2&&M.push("'"+this.terminals_[W]+"'");I=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+M.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(I,{text:p.match,token:this.terminals_[b]||b,line:p.yylineno,loc:f,expected:M})}if(w[0]instanceof Array&&w.length>1)throw Error("Parse Error: multiple actions possible at state: "+k+", token: "+b);switch(w[0]){case 1:i.push(b),s.push(p.yytext),a.push(p.yylloc),i.push(w[1]),b=null,_?(b=_,_=null):(h=p.yyleng,o=p.yytext,c=p.yylineno,f=p.yylloc,d>0&&d--);break;case 2:if(S=this.productions_[w[1]][1],E.$=s[s.length-S],E._$={first_line:a[a.length-(S||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(S||1)].first_column,last_column:a[a.length-1].last_column},m&&(E._$.range=[a[a.length-(S||1)].range[0],a[a.length-1].range[1]]),void 0!==(v=this.performAction.apply(E,[o,h,c,y.yy,w[1],s,a].concat(u))))return v;S&&(i=i.slice(0,-1*S*2),s=s.slice(0,-1*S),a=a.slice(0,-1*S)),i.push(this.productions_[w[1]][0]),s.push(E.$),a.push(E._$),$=l[i[i.length-2]][i[i.length-1]],i.push($);break;case 3:return!0}}return!0},"parse")},d={EOF:1,parseError:(0,n.eW)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,n.eW)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,n.eW)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,n.eW)(function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===n.length?this.yylloc.first_column:0)+n[n.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,n.eW)(function(){return this._more=!0,this},"more"),reject:(0,n.eW)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,n.eW)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,n.eW)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,n.eW)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,n.eW)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,n.eW)(function(t,e){var i,n,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var s in r)this[s]=r[s];return!1},"test_match"),next:(0,n.eW)(function(){if(this.done)return this.EOF;!this._input&&(this.done=!0),!this._more&&(this.yytext="",this.match="");for(var t,e,i,n,r=this._currentRules(),s=0;se[0].length)){if(e=i,n=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,r[s])))return t;if(!this._backtrack)return!1;else{e=!1;continue}}if(!this.options.flex)break}if(e)return!1!==(t=this.test_match(e,r[n]))&&t;return""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,n.eW)(function(){var t=this.next();return t?t:this.lex()},"lex"),begin:(0,n.eW)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,n.eW)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,n.eW)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,n.eW)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,n.eW)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,n.eW)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,n.eW)(function(t,e,i,n){switch(i){case 0:case 1:case 3:case 4:break;case 2:return 10;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s[^:\n]+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};function u(){this.yy={}}return h.lexer=d,(0,n.eW)(u,"Parser"),u.prototype=h,h.Parser=u,new u}();o.parser=o;var c={};(0,n.r2)(c,{addEvent:()=>k,addSection:()=>m,addTask:()=>_,addTaskOrg:()=>w,clear:()=>f,default:()=>W,getCommonDb:()=>g,getSections:()=>x,getTasks:()=>b});var h="",d=0,u=[],p=[],y=[],g=(0,n.eW)(()=>n.LJ,"getCommonDb"),f=(0,n.eW)(function(){u.length=0,p.length=0,h="",y.length=0,(0,n.ZH)()},"clear"),m=(0,n.eW)(function(t){h=t,u.push(t)},"addSection"),x=(0,n.eW)(function(){return u},"getSections"),b=(0,n.eW)(function(){let t=v(),e=0;for(;!t&&e<100;)t=v(),e++;return p.push(...y),p},"getTasks"),_=(0,n.eW)(function(t,e,i){let n={id:d++,section:h,type:h,task:t,score:e||0,events:i?[i]:[]};y.push(n)},"addTask"),k=(0,n.eW)(function(t){y.find(t=>t.id===d-1).events.push(t)},"addEvent"),w=(0,n.eW)(function(t){let e={section:h,type:h,description:t,task:t,classes:[]};p.push(e)},"addTaskOrg"),v=(0,n.eW)(function(){let t=(0,n.eW)(function(t){return y[t].processed},"compileTask"),e=!0;for(let[i,n]of y.entries())t(i),e=e&&n.processed;return e},"compileTasks"),W={clear:f,getCommonDb:g,addSection:m,getSections:x,getTasks:b,addTask:_,addTaskOrg:w,addEvent:k},S=(0,n.eW)(function(t,e){let i=t.append("rect");return i.attr("x",e.x),i.attr("y",e.y),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("width",e.width),i.attr("height",e.height),i.attr("rx",e.rx),i.attr("ry",e.ry),void 0!==e.class&&i.attr("class",e.class),i},"drawRect"),$=(0,n.eW)(function(t,e){let i=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),s=t.append("g");function a(t){let i=(0,r.Nb1)().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(15/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function l(t){let i=(0,r.Nb1)().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(15/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function o(t){t.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return s.append("circle").attr("cx",e.cx-5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),s.append("circle").attr("cx",e.cx+5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),(0,n.eW)(a,"smile"),(0,n.eW)(l,"sad"),(0,n.eW)(o,"ambivalent"),e.score>3?a(s):e.score<3?l(s):o(s),i},"drawFace"),M=(0,n.eW)(function(t,e){let i=t.append("circle");return i.attr("cx",e.cx),i.attr("cy",e.cy),i.attr("class","actor-"+e.pos),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("r",e.r),void 0!==i.class&&i.attr("class",i.class),void 0!==e.title&&i.append("title").text(e.title),i},"drawCircle"),E=(0,n.eW)(function(t,e){let i=e.text.replace(//gi," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),void 0!==e.class&&n.attr("class",e.class);let r=n.append("tspan");return r.attr("x",e.x+2*e.textMargin),r.text(i),n},"drawText"),I=(0,n.eW)(function(t,e){function i(t,e,i,n,r){return t+","+e+" "+(t+i)+","+e+" "+(t+i)+","+(e+n-r)+" "+(t+i-1.2*r)+","+(e+n)+" "+t+","+(e+n)}(0,n.eW)(i,"genPoints");let r=t.append("polygon");r.attr("points",i(e.x,e.y,50,20,7)),r.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,E(t,e)},"drawLabel"),T=(0,n.eW)(function(t,e,i){let n=t.append("g"),r=P();r.x=e.x,r.y=e.y,r.fill=e.fill,r.width=i.width,r.height=i.height,r.class="journey-section section-type-"+e.num,r.rx=3,r.ry=3,S(n,r),H(i)(e.text,n,r.x,r.y,r.width,r.height,{class:"journey-section section-type-"+e.num},i,e.colour)},"drawSection"),A=-1,N=(0,n.eW)(function(t,e,i){let n=e.x+i.width/2,r=t.append("g");A++;r.append("line").attr("id","task"+A).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),$(r,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=P();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=i.width,s.height=i.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,S(r,s),H(i)(e.task,r,s.x,s.y,s.width,s.height,{class:"task"},i,e.colour)},"drawTask"),C=(0,n.eW)(function(t,e){S(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},"drawBackgroundRect"),L=(0,n.eW)(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),P=(0,n.eW)(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),H=function(){function t(t,e,i,n,s,a,l,o){r(e.append("text").attr("x",i+s/2).attr("y",n+a/2+5).style("font-color",o).style("text-anchor","middle").text(t),l)}function e(t,e,i,n,s,a,l,o,c){let{taskFontSize:h,taskFontFamily:d}=o,u=t.split(//gi);for(let t=0;t)/).reverse(),s=[],a=i.attr("y"),l=parseFloat(i.attr("dy")),o=i.text(null).append("tspan").attr("x",0).attr("y",a).attr("dy",l+"em");for(let r=0;re||"
    "===t)&&(s.pop(),o.text(s.join(" ").trim()),s="
    "===t?[""]:[t],o=i.append("tspan").attr("x",0).attr("y",a).attr("dy","1.1em").text(t))})}(0,n.eW)(O,"wrap");var D=(0,n.eW)(function(t,e,i,n){let r=i%12-1,s=t.append("g");e.section=r,s.attr("class",(e.class?e.class+" ":"")+"timeline-node section-"+r);let a=s.append("g"),l=s.append("g"),o=l.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(O,e.width).node().getBBox(),c=n.fontSize?.replace?n.fontSize.replace("px",""):n.fontSize;return e.height=o.height+.55*c+e.padding,e.height=Math.max(e.height,e.maxHeight),e.width=e.width+2*e.padding,l.attr("transform","translate("+e.width/2+", "+e.padding/2+")"),R(a,e,r,n),e},"drawNode"),z=(0,n.eW)(function(t,e,i){let n=t.append("g"),r=n.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(O,e.width).node().getBBox(),s=i.fontSize?.replace?i.fontSize.replace("px",""):i.fontSize;return n.remove(),r.height+.55*s+e.padding},"getVirtualNodeHeight"),R=(0,n.eW)(function(t,e,i){t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("d",`M0 ${e.height-5} v${-e.height+10} q0,-5 5,-5 h${e.width-10} q5,0 5,5 v${e.height-5} H0 Z`),t.append("line").attr("class","node-line-"+i).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},"defaultBkg"),B={initGraphics:j,drawNode:D,getVirtualNodeHeight:z},F=(0,n.eW)(function(t,e,i,s){let a;let l=(0,n.nV)(),o=l.leftMargin??50;n.cM.debug("timeline",s.db);let c=l.securityLevel;"sandbox"===c&&(a=(0,r.Ys)("#i"+e));let h=("sandbox"===c?(0,r.Ys)(a.nodes()[0].contentDocument.body):(0,r.Ys)("body")).select("#"+e);h.append("g");let d=s.db.getTasks(),u=s.db.getCommonDb().getDiagramTitle();n.cM.debug("task",d),B.initGraphics(h);let p=s.db.getSections();n.cM.debug("sections",p);let y=0,g=0,f=0,m=0,x=50+o,b=50;m=50;let _=0,k=!0;p.forEach(function(t){let e={number:_,descr:t,section:_,width:150,padding:20,maxHeight:y},i=B.getVirtualNodeHeight(h,e,l);n.cM.debug("sectionHeight before draw",i),y=Math.max(y,i+20)});let w=0,v=0;for(let[t,e]of(n.cM.debug("tasks.length",d.length),d.entries())){let i={number:t,descr:e,section:e.section,width:150,padding:20,maxHeight:g},r=B.getVirtualNodeHeight(h,i,l);n.cM.debug("taskHeight before draw",r),g=Math.max(g,r+20),w=Math.max(w,e.events.length);let s=0;for(let t of e.events){let i={descr:t,section:e.section,number:e.section,width:150,padding:20,maxHeight:50};s+=B.getVirtualNodeHeight(h,i,l)}v=Math.max(v,s)}n.cM.debug("maxSectionHeight before draw",y),n.cM.debug("maxTaskHeight before draw",g),p&&p.length>0?p.forEach(t=>{let e=d.filter(e=>e.section===t),i={number:_,descr:t,section:_,width:200*Math.max(e.length,1)-50,padding:20,maxHeight:y};n.cM.debug("sectionNode",i);let r=h.append("g"),s=B.drawNode(r,i,_,l);n.cM.debug("sectionNode output",s),r.attr("transform",`translate(${x}, ${m})`),b+=y+50,e.length>0&&V(h,e,_,x,b,g,l,w,v,y,!1),x+=200*Math.max(e.length,1),b=m,_++}):(k=!1,V(h,d,_,x,b,g,l,w,v,y,!0));let W=h.node().getBBox();n.cM.debug("bounds",W),u&&h.append("text").text(u).attr("x",W.width/2-o).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),f=k?y+g+150:g+100,h.append("g").attr("class","lineWrapper").append("line").attr("x1",o).attr("y1",f).attr("x2",W.width+3*o).attr("y2",f).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),(0,n.j7)(void 0,h,l.timeline?.padding??50,l.timeline?.useMaxWidth??!1)},"draw"),V=(0,n.eW)(function(t,e,i,r,s,a,l,o,c,h,d){for(let o of e){let e={descr:o.task,section:i,number:i,width:150,padding:20,maxHeight:a};n.cM.debug("taskNode",e);let u=t.append("g").attr("class","taskWrapper"),p=B.drawNode(u,e,i,l).height;if(n.cM.debug("taskHeight after draw",p),u.attr("transform",`translate(${r}, ${s})`),a=Math.max(a,p),o.events){let e=t.append("g").attr("class","lineWrapper"),n=a;s+=100,Y(t,o.events,i,r,s,l),s-=100,e.append("line").attr("x1",r+95).attr("y1",s+a).attr("x2",r+95).attr("y2",s+a+(d?a:h)+c+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}r+=200,d&&!l.timeline?.disableMulticolor&&i++}},"drawTasks"),Y=(0,n.eW)(function(t,e,i,r,s,a){let l=0,o=s;for(let o of(s+=100,e)){let e={descr:o,section:i,number:i,width:150,padding:20,maxHeight:50};n.cM.debug("eventNode",e);let c=t.append("g").attr("class","eventWrapper"),h=B.drawNode(c,e,i,a).height;l+=h,c.attr("transform",`translate(${r}, ${s})`),s=s+10+h}return s=o,l},"drawEvents"),Z={setConf:(0,n.eW)(()=>{},"setConf"),draw:F},q=(0,n.eW)(t=>{let e="";for(let e=0;e` + .edge { + stroke-width: 3; + } + ${q(t)} + .section-root rect, .section-root path, .section-root circle { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,"getStyles"),U={db:c,renderer:Z,parser:o,styles:G}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/462969c4.003cc3bc.js b/pr-preview/pr-238/assets/js/462969c4.003cc3bc.js new file mode 100644 index 0000000000..5d6106f64a --- /dev/null +++ b/pr-preview/pr-238/assets/js/462969c4.003cc3bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["668"],{98582:function(e,s,n){n.d(s,{Z:function(){return r}});var i=n(85893),l=n(67294);function r(e){let{children:s,initSlides:n,width:r=null,height:c=null}=e;return(0,l.useEffect)(()=>{n()}),(0,i.jsx)("div",{className:"reveal reveal-viewport",style:{width:r??"100vw",height:c??"100vh"},children:(0,i.jsx)("div",{className:"slides",children:s})})}},57270:function(e,s,n){n.d(s,{O:function(){return i}});let i=()=>{let e=n(42199),s=n(87251),i=n(60977),l=n(12489);new(n(29197))({plugins:[e,s,i,l]}).initialize({hash:!0})}},63037:function(e,s,n){n.d(s,{K:function(){return l}});var i=n(85893);n(67294);let l=()=>(0,i.jsx)("p",{style:{fontSize:"8px",position:"absolute",bottom:0,right:0},children:"*NKR"})},36004:function(e,s,n){n.r(s),n.d(s,{default:function(){return a}});var i=n(85893),l=n(98582),r=n(63037),c=n(57270);function a(){return(0,i.jsxs)(l.Z,{initSlides:c.O,children:[(0,i.jsx)("section",{children:(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Agenda"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Wiederholung"}),(0,i.jsx)("li",{className:"fragment",children:"Einf\xfchrung Objektorientierung"}),(0,i.jsx)("li",{className:"fragment",children:"Modifier"}),(0,i.jsx)("li",{className:"fragment",children:"Zusammenfassung"})]})]})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Wiederholung"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Datentypen"}),(0,i.jsxs)("ul",{className:"fragment",children:[(0,i.jsx)("li",{children:"Wahrheitswerte (boolean)"}),(0,i.jsx)("li",{children:"Zeichen (char, String)"}),(0,i.jsx)("li",{children:"Ganzzahlen (byte, short, int, long)"}),(0,i.jsx)("li",{children:"Gleitkommazahlen (float, double)"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Datenobjekte"}),(0,i.jsxs)("ul",{className:"fragment",children:[(0,i.jsx)("li",{children:"Platzhalter, um Werte zwischenzuspeichern"}),(0,i.jsx)("li",{children:"Datentyp Bezeichner = Wert;"}),(0,i.jsx)("li",{children:"Standard f\xfcr Ganzzahlen: int"}),(0,i.jsx)("li",{children:"Standard f\xfcr Gleitkommazahlen: double"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Methoden"}),(0,i.jsxs)("ul",{className:"fragment",children:[(0,i.jsx)("li",{children:"R\xfcckgabetyp (primitiv, komplex, void)"}),(0,i.jsx)("li",{children:"Bezeichner"}),(0,i.jsx)("li",{children:"Parameter"}),(0,i.jsx)("li",{children:"Methodenrumpf"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Operatoren"}),(0,i.jsxs)("ul",{className:"fragment",children:[(0,i.jsx)("li",{children:"Arithmetische Operatoren (+, -, *, /, %, ++, --)"}),(0,i.jsx)("li",{children:"Vergleichsoperatoren (==, !=, etc.)"}),(0,i.jsx)("li",{children:"Logische Operatoren (&&, ||, !)"}),(0,i.jsx)("li",{children:"Bitweise Operatoren (&, |, ^, ~)"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Fallunterscheidung"}),(0,i.jsxs)("ul",{className:"fragment",children:[(0,i.jsx)("li",{children:"if-else"}),(0,i.jsx)("li",{children:"switch"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Schleifen"}),(0,i.jsxs)("ul",{className:"fragment",children:[(0,i.jsx)("li",{children:"while-Schleife"}),(0,i.jsx)("li",{children:"do-while-Schleife"}),(0,i.jsx)("li",{children:"for-Schleife"}),(0,i.jsx)("li",{children:"for-each-Schleife"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Arrays"}),(0,i.jsxs)("ul",{className:"fragment",children:[(0,i.jsx)("li",{children:"Elemente eines Typs"}),(0,i.jsx)("li",{children:"Feste L\xe4nge"}),(0,i.jsx)("li",{children:"index beginnt bei 0"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"ArrayList"}),(0,i.jsxs)("ul",{className:"fragment",children:[(0,i.jsx)("li",{children:"Elemente eines Typs"}),(0,i.jsx)("li",{children:"Dynamische L\xe4nge"}),(0,i.jsx)("li",{children:"index beginnt bei 0"}),(0,i.jsx)("li",{children:"Hilfsmethoden"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Helper Klassen"}),(0,i.jsxs)("ul",{className:"fragment",children:[(0,i.jsx)("li",{children:"Math"}),(0,i.jsx)("li",{children:"Random"}),(0,i.jsx)("li",{children:"Scanner"})]})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Einf\xfchrung Objektorientierung"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Objekte in unserer Umgebung"}),(0,i.jsxs)("ul",{children:[(0,i.jsxs)("li",{className:"fragment",children:["Handy",(0,i.jsx)("strong",{children:"s"})]}),(0,i.jsxs)("li",{className:"fragment",children:["Mensch",(0,i.jsx)("strong",{children:"en"})]}),(0,i.jsxs)("li",{className:"fragment",children:["Auto",(0,i.jsx)("strong",{children:"s"})]})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Was f\xfcr Eigenschaften hat ein spezifischer Mensch?"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"blaue Augen"}),(0,i.jsx)("li",{className:"fragment",children:"blonde Haare"}),(0,i.jsx)("li",{className:"fragment",children:"hat Brille"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Was f\xfcr Verhaltensweisen hat jeder Mensch?"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"essen"}),(0,i.jsx)("li",{className:"fragment",children:"trinken"}),(0,i.jsx)("li",{className:"fragment",children:"laufen"}),(0,i.jsx)("li",{className:"fragment",children:"ganzen Namen sagen"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Was f\xfcr Eigenschaften hat ein spezifisches Auto?"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"schwarze Farbe"}),(0,i.jsx)("li",{className:"fragment",children:"177 PS"}),(0,i.jsx)("li",{className:"fragment",children:"Elektromotor"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Was f\xfcr Funktionen hat jedes Auto?"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"bremsen"}),(0,i.jsx)("li",{className:"fragment",children:"beschleunigen"}),(0,i.jsx)("li",{className:"fragment",children:"Laufleistung anzeigen"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Abstrahieren von spezifischen Menschen"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Augenfarbe"}),(0,i.jsx)("li",{className:"fragment",children:"Haarfarbe"}),(0,i.jsx)("li",{className:"fragment",children:"hat Brille"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Abstrahieren von spezifischen Autos"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Autofarbe"}),(0,i.jsx)("li",{className:"fragment",children:"Anzahl PS"}),(0,i.jsx)("li",{className:"fragment",children:"Motorart"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Demo Klasse"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Mensch"}),(0,i.jsx)("li",{className:"fragment",children:"Auto"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Was sind Klassen?"}),(0,i.jsxs)("p",{children:["Abstraktion von ",(0,i.jsx)("strong",{children:"gleichartigen"})," Objekten durch:"]}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Attribute"}),(0,i.jsx)("li",{className:"fragment",children:"Methoden"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Beispiel Klasse Mensch"}),(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class Human {\n public String firstName;\n public String lastName;\n \n public String getFullName() {\n return firstName + lastName;\n }\n}"}})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Demo Objekte"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Steffen, Marianna, Mirco"}),(0,i.jsx)("li",{className:"fragment",children:"Audi A3, Fiat 500, BMW 335i"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Was ist ein Objekt?"}),(0,i.jsx)("p",{}),(0,i.jsx)("ul",{children:(0,i.jsxs)("li",{className:"fragment",children:["Instanz/Auspr\xe4gung ",(0,i.jsx)("strong",{children:"einer"})," Klasse"]})})]}),(0,i.jsx)("section",{children:(0,i.jsx)("pre",{children:(0,i.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:'//...\nHuman steffen = new Human();\nsteffen.firstName = "Steffen"\nsteffen.lastName = "Merk"\n \nHuman marianna = new Human();\nmarianna.firstName = "Marianna"\nmarianna.lastName = "Maglio"\n//...'}})})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Demo Objekt"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Lesen und Schreiben von Attributen"}),(0,i.jsx)("li",{className:"fragment",children:"Unterschied Referenzvariable und Variable"}),(0,i.jsx)("li",{className:"fragment",children:"Was ist null?"})]})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Modifier"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Arten von Modifiern"}),(0,i.jsxs)("ul",{children:[(0,i.jsxs)("li",{className:"fragment",children:["Access Modifier ",(0,i.jsx)("strong",{children:"heute relevant"})]}),(0,i.jsx)("li",{className:"fragment",children:"Non-Access Modifier"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Was machen Access Modifier?"}),(0,i.jsx)("p",{className:"fragment",children:"Steuern den Zugriff auf:"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Klassen"}),(0,i.jsx)("li",{className:"fragment",children:"Attribute"}),(0,i.jsx)("li",{className:"fragment",children:"Methoden"}),(0,i.jsx)("li",{className:"fragment",children:"Konstruktoren (werden sp\xe4ter behandelt)"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Was f\xfcr Access Modifier gibt es?"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"public"}),(0,i.jsx)("li",{className:"fragment",children:"private"}),(0,i.jsx)("li",{className:"fragment",children:"protected"}),(0,i.jsx)("li",{className:"fragment",children:"default*"})]}),(0,i.jsx)("div",{className:"fragment",children:(0,i.jsx)(r.K,{})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Wann verwendet man public?"}),(0,i.jsx)("ul",{children:(0,i.jsx)("li",{className:"fragment",children:"um Funktionalit\xe4t zur Verf\xfcgung zu stellen"})})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Wann verwendet man private?"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"um Modifikation von Attributen zu verhindern"}),(0,i.jsx)("li",{className:"fragment",children:"um Implementierungsdetails zu verstecken"}),(0,i.jsx)("li",{className:"fragment",children:"Organisation von Code"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Demo Modifiers"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"public & private"}),(0,i.jsx)("li",{className:"fragment",children:"Getter & Setter"}),(0,i.jsxs)("li",{className:"fragment",children:["Schl\xfcsselwort ",(0,i.jsx)("strong",{children:"this"})]}),(0,i.jsx)("li",{className:"fragment",children:"\xdcberladen von Methoden"})]})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("section",{children:(0,i.jsx)("h2",{children:"Zusammenfassung"})}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Klasse"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Abstraktion von Objekten"}),(0,i.jsx)("li",{className:"fragment",children:"definiert durch Methoden und Attribute"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Objekt"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"Instanz einer Klasse"}),(0,i.jsx)("li",{className:"fragment",children:"Verhalten abh\xe4ngig von der Instanz"}),(0,i.jsx)("li",{className:"fragment",children:"ist eine Referenzvariable"}),(0,i.jsx)("li",{className:"fragment",children:"hat den default Wert null"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Modifiers"}),(0,i.jsxs)("ul",{children:[(0,i.jsx)("li",{className:"fragment",children:"public & private"}),(0,i.jsx)("li",{className:"fragment",children:"Getter & Setter"}),(0,i.jsx)("li",{className:"fragment",children:"this"}),(0,i.jsx)("li",{className:"fragment",children:"\xdcberladen von Methoden"})]})]}),(0,i.jsxs)("section",{children:[(0,i.jsx)("h2",{children:"Rest of the day"}),(0,i.jsx)("ul",{children:(0,i.jsx)("li",{className:"fragment",children:"Aufgabe Objects 01"})})]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/4699a913.594b5e0d.js b/pr-preview/pr-238/assets/js/4699a913.594b5e0d.js new file mode 100644 index 0000000000..54e13ef952 --- /dev/null +++ b/pr-preview/pr-238/assets/js/4699a913.594b5e0d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2929"],{62998:function(e){e.exports=JSON.parse('{"tag":{"label":"java-api","permalink":"/java-docs/pr-preview/pr-238/tags/java-api","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":8,"items":[{"id":"documentation/files","title":"Dateien und Verzeichnisse","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/files"},{"id":"documentation/dates-and-times","title":"Datums- und Zeitangaben","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/dates-and-times"},{"id":"documentation/java-api","title":"Die Java API","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/java-api"},{"id":"exercises/java-api/java-api","title":"Die Java API","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/java-api/"},{"id":"documentation/calculations","title":"Mathematische Berechnungen","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/calculations"},{"id":"documentation/pseudo-random-numbers","title":"Pseudozufallszahlen","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/pseudo-random-numbers"},{"id":"documentation/wrappers","title":"Wrapper-Klassen","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/wrappers"},{"id":"documentation/strings","title":"Zeichenketten (Strings)","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/strings"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/46bbdf54.cda2d699.js b/pr-preview/pr-238/assets/js/46bbdf54.cda2d699.js new file mode 100644 index 0000000000..ccb3ec37d1 --- /dev/null +++ b/pr-preview/pr-238/assets/js/46bbdf54.cda2d699.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["5709"],{71392:function(e,t,n){n.r(t),n.d(t,{metadata:()=>r,contentTitle:()=>s,default:()=>f,assets:()=>c,toc:()=>u,frontMatter:()=>o});var r=JSON.parse('{"id":"additional-material/steffen/index","title":"Steffen","description":"","source":"@site/docs/additional-material/steffen/index.mdx","sourceDirName":"additional-material/steffen","slug":"/additional-material/steffen/","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/additional-material/steffen/index.mdx","tags":[],"version":"current","sidebarPosition":30,"frontMatter":{"title":"Steffen","description":"","sidebar_position":30,"tags":[]},"sidebar":"additionalMaterialSidebar","previous":{"title":"Klausurergebnisse","permalink":"/java-docs/pr-preview/pr-238/additional-material/daniel/java2/exam-results"},"next":{"title":"Java 1","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/"}}'),i=n("85893"),a=n("50065"),l=n("94301");let o={title:"Steffen",description:"",sidebar_position:30,tags:[]},s=void 0,c={},u=[];function d(e){return(0,i.jsx)(l.Z,{})}function f(e={}){let{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},94301:function(e,t,n){n.d(t,{Z:()=>j});var r=n("85893");n("67294");var i=n("67026"),a=n("69369"),l=n("83012"),o=n("43115"),s=n("63150"),c=n("96025"),u=n("34403");let d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function f(e){let{href:t,children:n}=e;return(0,r.jsx)(l.Z,{href:t,className:(0,i.Z)("card padding--lg",d.cardContainer),children:n})}function m(e){let{href:t,icon:n,title:a,description:l}=e;return(0,r.jsxs)(f,{href:t,children:[(0,r.jsxs)(u.Z,{as:"h2",className:(0,i.Z)("text--truncate",d.cardTitle),title:a,children:[n," ",a]}),l&&(0,r.jsx)("p",{className:(0,i.Z)("text--truncate",d.cardDescription),title:l,children:l})]})}function p(e){let{item:t}=e,n=(0,a.LM)(t),i=function(){let{selectMessage:e}=(0,o.c)();return t=>e(t,(0,c.I)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return n?(0,r.jsx)(m,{href:n,icon:"\uD83D\uDDC3\uFE0F",title:t.label,description:t.description??i(t.items.length)}):null}function h(e){let{item:t}=e,n=(0,s.Z)(t.href)?"\uD83D\uDCC4\uFE0F":"\uD83D\uDD17",i=(0,a.xz)(t.docId??void 0);return(0,r.jsx)(m,{href:t.href,icon:n,title:t.label,description:t.description??i?.description})}function x(e){let{item:t}=e;switch(t.type){case"link":return(0,r.jsx)(h,{item:t});case"category":return(0,r.jsx)(p,{item:t});default:throw Error(`unknown item type ${JSON.stringify(t)}`)}}function g(e){let{className:t}=e,n=(0,a.jA)();return(0,r.jsx)(j,{items:n.items,className:t})}function j(e){let{items:t,className:n}=e;if(!t)return(0,r.jsx)(g,{...e});let l=(0,a.MN)(t);return(0,r.jsx)("section",{className:(0,i.Z)("row",n),children:l.map((e,t)=>(0,r.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,r.jsx)(x,{item:e})},t))})}},43115:function(e,t,n){n.d(t,{c:function(){return s}});var r=n(67294),i=n(2933);let a=["zero","one","two","few","many","other"];function l(e){return a.filter(t=>e.includes(t))}let o={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function s(){let e=function(){let{i18n:{currentLocale:e}}=(0,i.Z)();return(0,r.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:l(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${t.message} +`),o}},[e])}();return{selectMessage:(t,n)=>(function(e,t,n){let r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);let i=n.select(t);return r[Math.min(n.pluralForms.indexOf(i),r.length-1)]})(n,t,e)}}},50065:function(e,t,n){n.d(t,{Z:function(){return o},a:function(){return l}});var r=n(67294);let i={},a=r.createContext(i);function l(e){let t=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/46bf094a.7a0888f1.js b/pr-preview/pr-238/assets/js/46bf094a.7a0888f1.js new file mode 100644 index 0000000000..0454b1f040 --- /dev/null +++ b/pr-preview/pr-238/assets/js/46bf094a.7a0888f1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8169"],{30431:function(a){a.exports=JSON.parse('{"tag":{"label":"gui","permalink":"/java-docs/pr-preview/pr-238/tags/gui","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":3,"items":[{"id":"documentation/gui","title":"Grafische Benutzeroberfl\xe4chen","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/gui"},{"id":"documentation/javafx","title":"JavaFX","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/javafx"},{"id":"exercises/javafx/javafx","title":"JavaFX","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/javafx/"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/47503e5b.55d67333.js b/pr-preview/pr-238/assets/js/47503e5b.55d67333.js new file mode 100644 index 0000000000..b8a74a614c --- /dev/null +++ b/pr-preview/pr-238/assets/js/47503e5b.55d67333.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["15"],{20990:function(e,n,r){r.r(n),r.d(n,{metadata:()=>t,contentTitle:()=>d,default:()=>p,assets:()=>c,toc:()=>u,frontMatter:()=>o});var t=JSON.parse('{"id":"documentation/maven","title":"Maven","description":"","source":"@site/docs/documentation/maven.md","sourceDirName":"documentation","slug":"/documentation/maven","permalink":"/java-docs/pr-preview/pr-238/documentation/maven","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/maven.md","tags":[{"inline":true,"label":"maven","permalink":"/java-docs/pr-preview/pr-238/tags/maven"}],"version":"current","sidebarPosition":252,"frontMatter":{"title":"Maven","description":"","sidebar_position":252,"tags":["maven"]},"sidebar":"documentationSidebar","previous":{"title":"Datenklassen (Records)","permalink":"/java-docs/pr-preview/pr-238/documentation/records"},"next":{"title":"Lombok","permalink":"/java-docs/pr-preview/pr-238/documentation/lombok"}}'),i=r("85893"),s=r("50065"),l=r("47902"),a=r("5525");let o={title:"Maven",description:"",sidebar_position:252,tags:["maven"]},d=void 0,c={},u=[{value:"Merkmale",id:"merkmale",level:2},{value:"Die Konfigurationsdatei pom.xml",id:"die-konfigurationsdatei-pomxml",level:2},{value:"Lebenszyklus-Phasen",id:"lebenszyklus-phasen",level:2},{value:"Hilfreiche Plugins und Bibliotheken",id:"hilfreiche-plugins-und-bibliotheken",level:2}];function h(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://maven.apache.org/",children:"Apache Maven (kurz Maven)"})," ist ein sogenanntes\nBuild-Automatisierungstool, welches haupts\xe4chlich f\xfcr Java-Projekte verwendet\nwird. Es hilft Entwicklern, den Build-Prozess eines Programmes zu vereinfachen\nund zu standardisieren. Maven verwendet hierzu eine Konfigurationsdatei namens\n",(0,i.jsx)(n.em,{children:"pom.xml"})," (Project Object Model)."]}),"\n",(0,i.jsx)(n.h2,{id:"merkmale",children:"Merkmale"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Automatisierung des Build-Prozesses: Maven automatisiert den Build-Prozess\n(Kompilieren, Testen, Verpacken und Bereitstellen)"}),"\n",(0,i.jsx)(n.li,{children:"Abh\xe4ngigkeitsmanagement: Maven verwaltet Projekt-Abh\xe4ngigkeiten wie externe\nBibliotheken und Frameworks automatisch"}),"\n",(0,i.jsx)(n.li,{children:"Standardisierte Projektstruktur: Maven f\xf6rdert eine standardisierte\nProjektstruktur, die es einfacher macht, Projekte zu verstehen und zu\nnavigieren"}),"\n",(0,i.jsx)(n.li,{children:"Plugins: Maven unterst\xfctzt eine Vielzahl von Plugins, die zus\xe4tzliche\nFunktionalit\xe4ten bieten (z.B. Code-Analyse, Berichterstellung und\nDokumentation)"}),"\n",(0,i.jsx)(n.li,{children:"Lebenszyklus-Management: Maven definiert einen standardisierten Lebenszyklus\nf\xfcr den Build-Prozess"}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"die-konfigurationsdatei-pomxml",children:["Die Konfigurationsdatei ",(0,i.jsx)(n.em,{children:"pom.xml"})]}),"\n",(0,i.jsxs)(n.p,{children:["Die Konfigurationsdatei ",(0,i.jsx)(n.em,{children:"pom.xml"})," umfasst neben allen relevanten\nProjekt-Eigenschaften auch s\xe4mtliche Abh\xe4ngigkeiten sowie Plugins, die dadurch\nautomatisch von Maven verwaltet werden."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-xml",metastring:'title="pom.xml" showLineNumbers',children:'\n 4.0.0\n edu.jappuccini\n demo\n 1.0.0-SNAPSHOT\n\n \x3c!-- Eigenschaften --\x3e\n \n \x3c!-- Java-Version --\x3e\n 21\n 21\n \x3c!-- Encoding --\x3e\n UTF-8\n UTF-8\n \n\n \x3c!-- Build Prozess --\x3e\n \n \x3c!-- Plugins --\x3e\n \n \x3c!-- Prettier --\x3e\n \n com.hubspot.maven.plugins\n prettier-maven-plugin\n 0.16\n \n \n default-compile\n compile\n \n write\n \n \n \n \n \n \n\n \x3c!-- Abh\xe4ngigkeiten --\x3e\n \n \x3c!-- JUnit 5 --\x3e\n \n org.junit.jupiter\n junit-jupiter-api\n 5.11.3\n test\n \n \n\n\n'})}),"\n",(0,i.jsx)(n.h2,{id:"lebenszyklus-phasen",children:"Lebenszyklus-Phasen"}),"\n",(0,i.jsxs)(n.p,{children:["Maven kennt die drei Lebenszyklen ",(0,i.jsx)(n.code,{children:"clean"})," zum L\xf6schen aller Artefakte\nvergangener Builds, ",(0,i.jsx)(n.code,{children:"default"})," zum Erstellen des Projekts sowie ",(0,i.jsx)(n.code,{children:"site"})," zum\nErstellen einer Dokumentationsseite. Jeder Lebenszyklus durchl\xe4uft hierbei\nverschiedene Phasen. Durch Plugins k\xf6nnen diese um zus\xe4tzliche\nVerarbeitungsschritte erweitert werden. Nachfolgend dargestellt sind die\nwesentlichen Phasen des Default Lebenszyklus:"]}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Phase"}),(0,i.jsx)(n.th,{children:"Beschreibung"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"validate"})}),(0,i.jsx)(n.td,{children:"Pr\xfcfen, ob die POM sowie die Projektstruktur vollst\xe4ndig, fehlerfrei und g\xfcltig sind"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"compile"})}),(0,i.jsx)(n.td,{children:"Kompilieren des Quellcodes"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"test"})}),(0,i.jsx)(n.td,{children:"Ausf\xfchren der Komponententests"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"package"})}),(0,i.jsx)(n.td,{children:"Verpacken des Projekts in z.B. ein Java Archiv (JAR)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"verify"})}),(0,i.jsx)(n.td,{children:"Ausf\xfchren von bereitgestellten Integrationstests"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"install"})}),(0,i.jsx)(n.td,{children:"Kopieren des Archivs ins lokale Maven-Repository"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.code,{children:"deploy"})}),(0,i.jsx)(n.td,{children:"Kopieren des Archivs in ein remote Maven-Repository"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"hilfreiche-plugins-und-bibliotheken",children:"Hilfreiche Plugins und Bibliotheken"}),"\n",(0,i.jsxs)(l.Z,{children:[(0,i.jsxs)(a.Z,{value:"a",label:"Prettier",default:!0,children:[(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://prettier.io/",children:"Prettier"})," ist ein weit verbreiterter\nQuellcode-Formatierung, der eine einheitliche Quellcode-Formatierung f\xf6rdert.\nDurch die Einbindung des Goals ",(0,i.jsx)(n.code,{children:"write"})," in die Lebenszyklus-Phase ",(0,i.jsx)(n.code,{children:"compile"})," wird\nsichergestellt, dass der Quellcode bei jedem Kompiliervorgang automatisch\nformattiert wird."]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-xml",metastring:'title="pom.xml (Auszug)" showLineNumbers',children:"...\n\x3c!-- Prettier --\x3e\n\n com.hubspot.maven.plugins\n prettier-maven-plugin\n 0.16\n \n \n default-compile\n compile\n \n write\n \n \n \n\n...\n"})})]}),(0,i.jsxs)(a.Z,{value:"b",label:"Checkstyle",children:[(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://maven.apache.org/plugins/maven-checkstyle-plugin/",children:"Checkstyle"})," ist ein\nTool zur Berichtserstellung \xfcber die Einhaltung von Codingstandards und gibt dem\nEntwickler dadurch wertvolle Hinweise zur Verbesserung der Softwarequalit\xe4t. Das\nGoal ",(0,i.jsx)(n.code,{children:"check"})," f\xfchrt eine Pr\xfcfung des Quellcodes aus und gibt der Ergebnisse auf\nder Konsole aus, das Goal ",(0,i.jsx)(n.code,{children:"checkstyle"})," erstellt aufbauend auf den Pr\xfcfungen eine\nBerichtsseite."]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-xml",metastring:'title="pom.xml (Auszug)" showLineNumbers',children:"...\n\x3c!-- Checkstyle --\x3e\n\n org.apache.maven.plugins\n maven-checkstyle-plugin\n 3.6.0\n\n...\n"})})]}),(0,i.jsxs)(a.Z,{value:"c",label:"Lombok",children:[(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://projectlombok.org/",children:"Lombok"})," ist eine beliebte Bibliothek zur\nGenerierung von repetitiven Methoden (siehe auch ",(0,i.jsx)(n.a,{href:"lombok",children:"Lombok"}),")."]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-xml",metastring:'title="pom.xml (Auszug)" showLineNumbers',children:"...\n\x3c!-- Lombok --\x3e\n\n org.projectlombok\n lombok\n 1.18.36\n\n...\n"})})]}),(0,i.jsxs)(a.Z,{value:"d",label:"SLF4J und Log4J",children:[(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://www.slf4j.org/",children:"Simple Logging Facade for Java (SLF4J)"})," ist eine\nbeliebte Java-Protokollierungs-API, die es erm\xf6glicht, den Quellcode um\nProtokolle zu erweitern, die anschlie\xdfend an ein gew\xfcnschtes Protokoll-Framework\n(wie z.B. ",(0,i.jsx)(n.a,{href:"https://logging.apache.org/log4j/2.x/index.html",children:"Log4J"}),")\nweitergeleitet werden (siehe auch\n",(0,i.jsx)(n.a,{href:"slf4j",children:"Simple Logging Facade for Java (SLF4J)"}),")."]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-xml",metastring:'title="pom.xml (Auszug)" showLineNumbers',children:"...\n\x3c!-- SLF4J-API --\x3e\n\n org.slf4j\n slf4j-api\n 2.0.16\n\n\x3c!-- SLF4J-Implementierung --\x3e\n\n org.slf4j\n slf4j-reload4j\n 2.0.16\n\n...\n"})})]}),(0,i.jsxs)(a.Z,{value:"e",label:"JUnit 5",children:[(0,i.jsxs)(n.p,{children:["JUnit 5 ist ein weit verbreitetes Framework zur Erstellung von Komponententests\n(siehe auch ",(0,i.jsx)(n.a,{href:"unit-tests",children:"Komponententests (Unit Tests)"}),")."]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-xml",metastring:'title="pom.xml (Auszug)" showLineNumbers',children:"...\n\x3c!-- JUnit 5 --\x3e\n\n org.junit.jupiter\n junit-jupiter-api\n 5.11.3\n test\n\n...\n"})})]})]}),"\n",(0,i.jsx)(n.admonition,{title:"Hinweis",type:"danger",children:(0,i.jsx)(n.p,{children:"Die angegebenen Versionen sind die jeweils aktuellsten Versionen zum Stand\nDezember 2024."})})]})}function p(e={}){let{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},5525:function(e,n,r){r.d(n,{Z:()=>l});var t=r("85893");r("67294");var i=r("67026");let s="tabItem_Ymn6";function l(e){let{children:n,hidden:r,className:l}=e;return(0,t.jsx)("div",{role:"tabpanel",className:(0,i.Z)(s,l),hidden:r,children:n})}},47902:function(e,n,r){r.d(n,{Z:()=>b});var t=r("85893"),i=r("67294"),s=r("67026"),l=r("69599"),a=r("16550"),o=r("32000"),d=r("4520"),c=r("38341"),u=r("76009");function h(e){return i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||i.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function p(e){let{value:n,tabValues:r}=e;return r.some(e=>e.value===n)}var m=r("7227");let g="tabList__CuJ",v="tabItem_LNqP";function f(e){let{className:n,block:r,selectedValue:i,selectValue:a,tabValues:o}=e,d=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),u=e=>{let n=e.currentTarget,r=o[d.indexOf(n)].value;r!==i&&(c(n),a(r))},h=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let r=d.indexOf(e.currentTarget)+1;n=d[r]??d[0];break}case"ArrowLeft":{let r=d.indexOf(e.currentTarget)-1;n=d[r]??d[d.length-1]}}n?.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":r},n),children:o.map(e=>{let{value:n,label:r,attributes:l}=e;return(0,t.jsx)("li",{role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,ref:e=>d.push(e),onKeyDown:h,onClick:u,...l,className:(0,s.Z)("tabs__item",v,l?.className,{"tabs__item--active":i===n}),children:r??n},n)})})}function j(e){let{lazy:n,children:r,selectedValue:l}=e,a=(Array.isArray(r)?r:[r]).filter(Boolean);if(n){let e=a.find(e=>e.props.value===l);return e?(0,i.cloneElement)(e,{className:(0,s.Z)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:a.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==l}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:r=!1,groupId:t}=e,s=function(e){let{values:n,children:r}=e;return(0,i.useMemo)(()=>{let e=n??h(r).map(e=>{let{props:{value:n,label:r,attributes:t,default:i}}=e;return{value:n,label:r,attributes:t,default:i}});return!function(e){let n=(0,c.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,r])}(e),[l,m]=(0,i.useState)(()=>(function(e){let{defaultValue:n,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let t=r.find(e=>e.default)??r[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:n,tabValues:s})),[g,v]=function(e){let{queryString:n=!1,groupId:r}=e,t=(0,a.k6)(),s=function(e){let{queryString:n=!1,groupId:r}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:n,groupId:r}),l=(0,d._X)(s);return[l,(0,i.useCallback)(e=>{if(!s)return;let n=new URLSearchParams(t.location.search);n.set(s,e),t.replace({...t.location,search:n.toString()})},[s,t])]}({queryString:r,groupId:t}),[f,j]=function(e){var n;let{groupId:r}=e;let t=(n=r)?`docusaurus.tab.${n}`:null,[s,l]=(0,u.Nk)(t);return[s,(0,i.useCallback)(e=>{if(!!t)l.set(e)},[t,l])]}({groupId:t}),x=(()=>{let e=g??f;return p({value:e,tabValues:s})?e:null})();return(0,o.Z)(()=>{x&&m(x)},[x]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!p({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);m(e),v(e),j(e)},[v,j,s]),tabValues:s}}(e);return(0,t.jsxs)("div",{className:(0,s.Z)("tabs-container",g),children:[(0,t.jsx)(f,{...n,...e}),(0,t.jsx)(j,{...n,...e})]})}function b(e){let n=(0,m.Z)();return(0,t.jsx)(x,{...e,children:h(e.children)},String(n))}},50065:function(e,n,r){r.d(n,{Z:function(){return a},a:function(){return l}});var t=r(67294);let i={},s=t.createContext(i);function l(e){let n=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/47b00846.3ee2a837.js b/pr-preview/pr-238/assets/js/47b00846.3ee2a837.js new file mode 100644 index 0000000000..c97dadeee9 --- /dev/null +++ b/pr-preview/pr-238/assets/js/47b00846.3ee2a837.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7728"],{47247:function(e,t,r){r.r(t),r.d(t,{metadata:()=>s,contentTitle:()=>i,default:()=>p,assets:()=>o,toc:()=>c,frontMatter:()=>u});var s=JSON.parse('{"id":"exercises/class-structure/class-structure01","title":"ClassStructure01","description":"","source":"@site/docs/exercises/class-structure/class-structure01.mdx","sourceDirName":"exercises/class-structure","slug":"/exercises/class-structure/class-structure01","permalink":"/java-docs/pr-preview/pr-238/exercises/class-structure/class-structure01","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/class-structure/class-structure01.mdx","tags":[],"version":"current","frontMatter":{"title":"ClassStructure01","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Aufbau einer Java-Klasse","permalink":"/java-docs/pr-preview/pr-238/exercises/class-structure/"},"next":{"title":"Datenobjekte","permalink":"/java-docs/pr-preview/pr-238/exercises/data-objects/"}}'),a=r("85893"),n=r("50065"),l=r("39661");let u={title:"ClassStructure01",description:""},i=void 0,o={},c=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2}];function d(e){let t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,n.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:'Erstelle eine ausf\xfchrbare Klasse, welche "Hello World" auf der Konsole ausgibt.'}),"\n",(0,a.jsx)(t.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-console",children:"Hello World\n"})}),"\n",(0,a.jsx)(l.Z,{pullRequest:"2",branchSuffix:"class-structure/01"})]})}function p(e={}){let{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},5525:function(e,t,r){r.d(t,{Z:()=>l});var s=r("85893");r("67294");var a=r("67026");let n="tabItem_Ymn6";function l(e){let{children:t,hidden:r,className:l}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,a.Z)(n,l),hidden:r,children:t})}},47902:function(e,t,r){r.d(t,{Z:()=>j});var s=r("85893"),a=r("67294"),n=r("67026"),l=r("69599"),u=r("16550"),i=r("32000"),o=r("4520"),c=r("38341"),d=r("76009");function p(e){return a.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||a.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:t,tabValues:r}=e;return r.some(e=>e.value===t)}var f=r("7227");let b="tabList__CuJ",v="tabItem_LNqP";function m(e){let{className:t,block:r,selectedValue:a,selectValue:u,tabValues:i}=e,o=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),d=e=>{let t=e.currentTarget,r=i[o.indexOf(t)].value;r!==a&&(c(t),u(r))},p=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let r=o.indexOf(e.currentTarget)+1;t=o[r]??o[0];break}case"ArrowLeft":{let r=o.indexOf(e.currentTarget)-1;t=o[r]??o[o.length-1]}}t?.focus()};return(0,s.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,n.Z)("tabs",{"tabs--block":r},t),children:i.map(e=>{let{value:t,label:r,attributes:l}=e;return(0,s.jsx)("li",{role:"tab",tabIndex:a===t?0:-1,"aria-selected":a===t,ref:e=>o.push(e),onKeyDown:p,onClick:d,...l,className:(0,n.Z)("tabs__item",v,l?.className,{"tabs__item--active":a===t}),children:r??t},t)})})}function x(e){let{lazy:t,children:r,selectedValue:l}=e,u=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){let e=u.find(e=>e.props.value===l);return e?(0,a.cloneElement)(e,{className:(0,n.Z)("margin-top--md",e.props.className)}):null}return(0,s.jsx)("div",{className:"margin-top--md",children:u.map((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==l}))})}function g(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:s}=e,n=function(e){let{values:t,children:r}=e;return(0,a.useMemo)(()=>{let e=t??p(r).map(e=>{let{props:{value:t,label:r,attributes:s,default:a}}=e;return{value:t,label:r,attributes:s,default:a}});return!function(e){let t=(0,c.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[t,r])}(e),[l,f]=(0,a.useState)(()=>(function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(t){if(!h({value:t,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let s=r.find(e=>e.default)??r[0];if(!s)throw Error("Unexpected error: 0 tabValues");return s.value})({defaultValue:t,tabValues:n})),[b,v]=function(e){let{queryString:t=!1,groupId:r}=e,s=(0,u.k6)(),n=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r}),l=(0,o._X)(n);return[l,(0,a.useCallback)(e=>{if(!n)return;let t=new URLSearchParams(s.location.search);t.set(n,e),s.replace({...s.location,search:t.toString()})},[n,s])]}({queryString:r,groupId:s}),[m,x]=function(e){var t;let{groupId:r}=e;let s=(t=r)?`docusaurus.tab.${t}`:null,[n,l]=(0,d.Nk)(s);return[n,(0,a.useCallback)(e=>{if(!!s)l.set(e)},[s,l])]}({groupId:s}),g=(()=>{let e=b??m;return h({value:e,tabValues:n})?e:null})();return(0,i.Z)(()=>{g&&f(g)},[g]),{selectedValue:l,selectValue:(0,a.useCallback)(e=>{if(!h({value:e,tabValues:n}))throw Error(`Can't select invalid tab value=${e}`);f(e),v(e),x(e)},[v,x,n]),tabValues:n}}(e);return(0,s.jsxs)("div",{className:(0,n.Z)("tabs-container",b),children:[(0,s.jsx)(m,{...t,...e}),(0,s.jsx)(x,{...t,...e})]})}function j(e){let t=(0,f.Z)();return(0,s.jsx)(g,{...e,children:p(e.children)},String(t))}},39661:function(e,t,r){r.d(t,{Z:function(){return i}});var s=r(85893);r(67294);var a=r(47902),n=r(5525),l=r(83012),u=r(45056);function i(e){let{pullRequest:t,branchSuffix:r}=e;return(0,s.jsxs)(a.Z,{children:[(0,s.jsxs)(n.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,s.jsx)(u.Z,{language:"console",children:`git switch exercises/${r}`}),(0,s.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${r}/Exercise.java`,children:(0,s.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,s.jsxs)(n.Z,{value:"solution",label:"Solution",children:[(0,s.jsx)(u.Z,{language:"console",children:`git switch solutions/${r}`}),(0,s.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${r}/Exercise.java`,children:(0,s.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,s.jsxs)(n.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,s.jsxs)(l.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${t}/files?diff=split`,children:["PR#",t]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/47c1a7e8.eecd5762.js b/pr-preview/pr-238/assets/js/47c1a7e8.eecd5762.js new file mode 100644 index 0000000000..76259c8d3d --- /dev/null +++ b/pr-preview/pr-238/assets/js/47c1a7e8.eecd5762.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4920"],{94522:function(a){a.exports=JSON.parse('{"tag":{"label":"random","permalink":"/java-docs/pr-preview/pr-238/tags/random","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":1,"items":[{"id":"documentation/pseudo-random-numbers","title":"Pseudozufallszahlen","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/pseudo-random-numbers"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/488.169b215e.js b/pr-preview/pr-238/assets/js/488.169b215e.js new file mode 100644 index 0000000000..9f63a900be --- /dev/null +++ b/pr-preview/pr-238/assets/js/488.169b215e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["488"],{62350:function(t,i,e){e.d(i,{diagram:function(){return tt}});var s,n=e(41200),a=e(68394),h=e(89356),o=e(74146),r=e(27818),l=function(){var t=(0,o.eW)(function(t,i,e,s){for(e=e||{},s=t.length;s--;e[t[s]]=i);return e},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],n=[1,5],a=[1,6],h=[1,7],r=[1,5,10,12,14,16,18,19,21,23,34,35,36],l=[1,25],c=[1,26],g=[1,28],u=[1,29],x=[1,30],d=[1,31],p=[1,32],f=[1,33],y=[1,34],m=[1,35],b=[1,36],A=[1,37],S=[1,43],C=[1,42],w=[1,47],k=[1,50],_=[1,10,12,14,16,18,19,21,23,34,35,36],T=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],R=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],W=[1,64],D={trace:(0,o.eW)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:(0,o.eW)(function(t,i,e,s,n,a,h){var o=a.length-1;switch(n){case 5:s.setOrientation(a[o]);break;case 9:s.setDiagramTitle(a[o].text.trim());break;case 12:s.setLineData({text:"",type:"text"},a[o]);break;case 13:s.setLineData(a[o-1],a[o]);break;case 14:s.setBarData({text:"",type:"text"},a[o]);break;case 15:s.setBarData(a[o-1],a[o]);break;case 16:this.$=a[o].trim(),s.setAccTitle(this.$);break;case 17:case 18:this.$=a[o].trim(),s.setAccDescription(this.$);break;case 19:case 27:this.$=a[o-1];break;case 20:this.$=[Number(a[o-2]),...a[o]];break;case 21:this.$=[Number(a[o])];break;case 22:s.setXAxisTitle(a[o]);break;case 23:s.setXAxisTitle(a[o-1]);break;case 24:s.setXAxisTitle({type:"text",text:""});break;case 25:s.setXAxisBand(a[o]);break;case 26:s.setXAxisRangeData(Number(a[o-2]),Number(a[o]));break;case 28:this.$=[a[o-2],...a[o]];break;case 29:this.$=[a[o]];break;case 30:s.setYAxisTitle(a[o]);break;case 31:s.setYAxisTitle(a[o-1]);break;case 32:s.setYAxisTitle({type:"text",text:""});break;case 33:s.setYAxisRangeData(Number(a[o-2]),Number(a[o]));break;case 37:case 38:this.$={text:a[o],type:"text"};break;case 39:this.$={text:a[o],type:"markdown"};break;case 40:this.$=a[o];break;case 41:this.$=a[o-1]+""+a[o]}},"anonymous"),table:[t(i,e,{3:1,4:2,7:4,5:s,34:n,35:a,36:h}),{1:[3]},t(i,e,{4:2,7:4,3:8,5:s,34:n,35:a,36:h}),t(i,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:a,36:h}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(r,[2,34]),t(r,[2,35]),t(r,[2,36]),{1:[2,1]},t(i,e,{4:2,7:4,3:21,5:s,34:n,35:a,36:h}),{1:[2,3]},t(r,[2,5]),t(i,[2,7],{4:22,34:n,35:a,36:h}),{11:23,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},{11:39,13:38,24:S,27:C,29:40,30:41,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},{11:45,15:44,27:w,33:46,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},{11:49,17:48,24:k,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},{11:52,17:51,24:k,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},{20:[1,53]},{22:[1,54]},t(_,[2,18]),{1:[2,2]},t(_,[2,8]),t(_,[2,9]),t(T,[2,37],{40:55,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A}),t(T,[2,38]),t(T,[2,39]),t(R,[2,40]),t(R,[2,42]),t(R,[2,43]),t(R,[2,44]),t(R,[2,45]),t(R,[2,46]),t(R,[2,47]),t(R,[2,48]),t(R,[2,49]),t(R,[2,50]),t(R,[2,51]),t(_,[2,10]),t(_,[2,22],{30:41,29:56,24:S,27:C}),t(_,[2,24]),t(_,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},t(_,[2,11]),t(_,[2,30],{33:60,27:w}),t(_,[2,32]),{31:[1,61]},t(_,[2,12]),{17:62,24:k},{25:63,27:W},t(_,[2,14]),{17:65,24:k},t(_,[2,16]),t(_,[2,17]),t(R,[2,41]),t(_,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(_,[2,31]),{27:[1,69]},t(_,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(_,[2,15]),t(_,[2,26]),t(_,[2,27]),{11:59,32:72,37:24,38:l,39:c,40:27,41:g,42:u,43:x,44:d,45:p,46:f,47:y,48:m,49:b,50:A},t(_,[2,33]),t(_,[2,19]),{25:73,27:W},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:(0,o.eW)(function(t,i){if(i.recoverable)this.trace(t);else{var e=Error(t);throw e.hash=i,e}},"parseError"),parse:(0,o.eW)(function(t){var i=this,e=[0],s=[],n=[null],a=[],h=this.table,r="",l=0,c=0,g=0,u=a.slice.call(arguments,1),x=Object.create(this.lexer),d={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(d.yy[p]=this.yy[p]);x.setInput(t,d.yy),d.yy.lexer=x,d.yy.parser=this,void 0===x.yylloc&&(x.yylloc={});var f=x.yylloc;a.push(f);var y=x.options&&x.options.ranges;"function"==typeof d.yy.parseError?this.parseError=d.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function m(){var t;return"number"!=typeof(t=s.pop()||x.lex()||1)&&(t instanceof Array&&(t=(s=t).pop()),t=i.symbols_[t]||t),t}(0,o.eW)(function(t){e.length=e.length-2*t,n.length=n.length-t,a.length=a.length-t},"popStack"),(0,o.eW)(m,"lex");for(var b,A,S,C,w,k,_,T,R,W={};;){if(S=e[e.length-1],this.defaultActions[S]?C=this.defaultActions[S]:(null==b&&(b=m()),C=h[S]&&h[S][b]),void 0===C||!C.length||!C[0]){var D="";for(k in R=[],h[S])this.terminals_[k]&&k>2&&R.push("'"+this.terminals_[k]+"'");D=x.showPosition?"Parse error on line "+(l+1)+":\n"+x.showPosition()+"\nExpecting "+R.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(D,{text:x.match,token:this.terminals_[b]||b,line:x.yylineno,loc:f,expected:R})}if(C[0]instanceof Array&&C.length>1)throw Error("Parse Error: multiple actions possible at state: "+S+", token: "+b);switch(C[0]){case 1:e.push(b),n.push(x.yytext),a.push(x.yylloc),e.push(C[1]),b=null,A?(b=A,A=null):(c=x.yyleng,r=x.yytext,l=x.yylineno,f=x.yylloc,g>0&&g--);break;case 2:if(_=this.productions_[C[1]][1],W.$=n[n.length-_],W._$={first_line:a[a.length-(_||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(_||1)].first_column,last_column:a[a.length-1].last_column},y&&(W._$.range=[a[a.length-(_||1)].range[0],a[a.length-1].range[1]]),void 0!==(w=this.performAction.apply(W,[r,c,l,d.yy,C[1],n,a].concat(u))))return w;_&&(e=e.slice(0,-1*_*2),n=n.slice(0,-1*_),a=a.slice(0,-1*_)),e.push(this.productions_[C[1]][0]),n.push(W.$),a.push(W._$),T=h[e[e.length-2]][e[e.length-1]],e.push(T);break;case 3:return!0}}return!0},"parse")},L={EOF:1,parseError:(0,o.eW)(function(t,i){if(this.yy.parser)this.yy.parser.parseError(t,i);else throw Error(t)},"parseError"),setInput:(0,o.eW)(function(t,i){return this.yy=i||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,o.eW)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,o.eW)(function(t){var i=t.length,e=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),e.length-1&&(this.yylineno-=e.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:e?(e.length===s.length?this.yylloc.first_column:0)+s[s.length-e.length].length-e[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},"unput"),more:(0,o.eW)(function(){return this._more=!0,this},"more"),reject:(0,o.eW)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,o.eW)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,o.eW)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,o.eW)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,o.eW)(function(){var t=this.pastInput(),i=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+i+"^"},"showPosition"),test_match:(0,o.eW)(function(t,i){var e,s,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack)for(var a in n)this[a]=n[a];return!1},"test_match"),next:(0,o.eW)(function(){if(this.done)return this.EOF;!this._input&&(this.done=!0),!this._more&&(this.yytext="",this.match="");for(var t,i,e,s,n=this._currentRules(),a=0;ai[0].length)){if(i=e,s=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(e,n[a])))return t;if(!this._backtrack)return!1;else{i=!1;continue}}if(!this.options.flex)break}if(i)return!1!==(t=this.test_match(i,n[s]))&&t;return""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,o.eW)(function(){var t=this.next();return t?t:this.lex()},"lex"),begin:(0,o.eW)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,o.eW)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,o.eW)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,o.eW)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,o.eW)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,o.eW)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,o.eW)(function(t,i,e,s){switch(e){case 0:case 1:case 5:case 43:break;case 2:case 3:return this.popState(),34;case 4:return 34;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:case 25:case 27:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";case 17:return this.pushState("axis_data"),"Y_AXIS";case 18:return this.pushState("axis_band_data"),24;case 19:return 31;case 20:return this.pushState("data"),16;case 21:return this.pushState("data"),18;case 22:return this.pushState("data_inner"),24;case 23:return 27;case 24:return this.popState(),26;case 26:this.pushState("string");break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 44:return 35;case 45:return 36}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};function P(){this.yy={}}return D.lexer=L,(0,o.eW)(P,"Parser"),P.prototype=D,D.Parser=P,new P}();l.parser=l;function c(t){return"bar"===t.type}function g(t){return"band"===t.type}function u(t){return"linear"===t.type}(0,o.eW)(c,"isBarPlot"),(0,o.eW)(g,"isBandAxisData"),(0,o.eW)(u,"isLinearAxisData");var x=class{constructor(t){this.parentGroup=t}static{(0,o.eW)(this,"TextDimensionCalculatorWithFont")}getMaxDimension(t,i){if(!this.parentGroup)return{width:t.reduce((t,i)=>Math.max(i.length,t),0)*i,height:i};let e={width:0,height:0},s=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(let a of t){let t=(0,n.QA)(s,1,a),h=t?t.width:a.length*i,o=t?t.height:i;e.width=Math.max(e.width,h),e.height=Math.max(e.height,o)}return s.remove(),e}},d=class{constructor(t,i,e,s){this.axisConfig=t,this.title=i,this.textDimensionCalculator=e,this.axisThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}static{(0,o.eW)(this,"BaseAxis")}setRange(t){this.range=t,"left"===this.axisPosition||"right"===this.axisPosition?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){let t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>2*this.outerPadding&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let i=t.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let e=this.getLabelDimension(),s=.2*t.width;this.outerPadding=Math.min(e.width/2,s);let n=e.height+2*this.axisConfig.labelPadding;this.labelTextHeight=e.height,n<=i&&(i-=n,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),e=t.height+2*this.axisConfig.titlePadding;this.titleTextHeight=t.height,e<=i&&(i-=e,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-i}calculateSpaceIfDrawnVertical(t){let i=t.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let e=this.getLabelDimension(),s=.2*t.height;this.outerPadding=Math.min(e.height/2,s);let n=e.width+2*this.axisConfig.labelPadding;n<=i&&(i-=n,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),e=t.height+2*this.axisConfig.titlePadding;this.titleTextHeight=t.height,e<=i&&(i-=e,this.showTitle=!0)}this.boundingRect.width=t.width-i,this.boundingRect.height=t.height}calculateSpace(t){return"left"===this.axisPosition||"right"===this.axisPosition?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}getDrawableElementsForLeftAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(t),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${i},${this.getScaleValue(t)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(t)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${this.getScaleValue(t)},${i} L ${this.getScaleValue(t)},${i+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+2*this.axisConfig.titlePadding:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let i=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${this.getScaleValue(t)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(t)},${i+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if("left"===this.axisPosition)return this.getDrawableElementsForLeftAxis();if("right"===this.axisPosition)throw Error("Drawing of right axis is not implemented");return"bottom"===this.axisPosition?this.getDrawableElementsForBottomAxis():"top"===this.axisPosition?this.getDrawableElementsForTopAxis():[]}},p=class extends d{static{(0,o.eW)(this,"BandAxis")}constructor(t,i,e,s,n){super(t,s,n,i),this.categories=e,this.scale=(0,r.tiA)().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=(0,r.tiA)().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),o.cM.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)??this.getRange()[0]}},f=class extends d{static{(0,o.eW)(this,"LinearAxis")}constructor(t,i,e,s,n){super(t,s,n,i),this.domain=e,this.scale=(0,r.BYU)().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let t=[...this.domain];"left"===this.axisPosition&&t.reverse(),this.scale=(0,r.BYU)().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}};function y(t,i,e,s){let n=new x(s);return g(t)?new p(i,e,t.categories,t.title,n):new f(i,e,[t.min,t.max],t.title,n)}(0,o.eW)(y,"getAxis");var m=class{constructor(t,i,e,s){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=e,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{(0,o.eW)(this,"ChartTitle")}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){let i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),e=Math.max(i.width,t.width),s=i.height+2*this.chartConfig.titlePadding;return i.width<=e&&i.height<=s&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=e,this.boundingRect.height=s,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}};function b(t,i,e,s){return new m(new x(s),t,i,e)}(0,o.eW)(b,"getChartTitleComponent");var A=class{constructor(t,i,e,s,n){this.plotData=t,this.xAxis=i,this.yAxis=e,this.orientation=s,this.plotIndex=n}static{(0,o.eW)(this,"LinePlot")}getDrawableElement(){let t;let i=this.plotData.data.map(t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]);return(t="horizontal"===this.orientation?(0,r.jvg)().y(t=>t[0]).x(t=>t[1])(i):(0,r.jvg)().x(t=>t[0]).y(t=>t[1])(i))?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:t,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}},S=class{constructor(t,i,e,s,n,a){this.barData=t,this.boundingRect=i,this.xAxis=e,this.yAxis=s,this.orientation=n,this.plotIndex=a}static{(0,o.eW)(this,"BarPlot")}getDrawableElement(){let t=this.barData.data.map(t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]),i=.95*Math.min(2*this.xAxis.getAxisOuterPadding(),this.xAxis.getTickDistance()),e=i/2;return"horizontal"===this.orientation?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(t=>({x:this.boundingRect.x,y:t[0]-e,height:i,width:t[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(t=>({x:t[0]-e,y:t[1],width:i,height:this.boundingRect.y+this.boundingRect.height-t[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}},C=class{constructor(t,i,e){this.chartConfig=t,this.chartData=i,this.chartThemeConfig=e,this.boundingRect={x:0,y:0,width:0,height:0}}static{(0,o.eW)(this,"BasePlot")}setAxes(t,i){this.xAxis=t,this.yAxis=i}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let t=[];for(let[i,e]of this.chartData.plots.entries())switch(e.type){case"line":{let s=new A(e,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}break;case"bar":{let s=new S(e,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}}return t}};function w(t,i,e){return new C(t,i,e)}(0,o.eW)(w,"getPlotComponent");var k=class{constructor(t,i,e,s){this.chartConfig=t,this.chartData=i,this.componentStore={title:b(t,i,e,s),plot:w(t,i,e),xAxis:y(i.xAxis,t.xAxis,{titleColor:e.xAxisTitleColor,labelColor:e.xAxisLabelColor,tickColor:e.xAxisTickColor,axisLineColor:e.xAxisLineColor},s),yAxis:y(i.yAxis,t.yAxis,{titleColor:e.yAxisTitleColor,labelColor:e.yAxisLabelColor,tickColor:e.yAxisTickColor,axisLineColor:e.yAxisLineColor},s)}}static{(0,o.eW)(this,"Orchestrator")}calculateVerticalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,n=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),a=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),h=this.componentStore.plot.calculateSpace({width:n,height:a});t-=h.width,i-=h.height,s=(h=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i})).height,i-=h.height,this.componentStore.xAxis.setAxisPosition("bottom"),h=this.componentStore.xAxis.calculateSpace({width:t,height:i}),i-=h.height,this.componentStore.yAxis.setAxisPosition("left"),e=(h=this.componentStore.yAxis.calculateSpace({width:t,height:i})).width,(t-=h.width)>0&&(n+=t,t=0),i>0&&(a+=i,i=0),this.componentStore.plot.calculateSpace({width:n,height:a}),this.componentStore.plot.setBoundingBoxXY({x:e,y:s}),this.componentStore.xAxis.setRange([e,e+n]),this.componentStore.xAxis.setBoundingBoxXY({x:e,y:s+a}),this.componentStore.yAxis.setRange([s,s+a]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:s}),this.chartData.plots.some(t=>c(t))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,n=0,a=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),h=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),o=this.componentStore.plot.calculateSpace({width:a,height:h});t-=o.width,i-=o.height,e=(o=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i})).height,i-=o.height,this.componentStore.xAxis.setAxisPosition("left"),o=this.componentStore.xAxis.calculateSpace({width:t,height:i}),t-=o.width,s=o.width,this.componentStore.yAxis.setAxisPosition("top"),o=this.componentStore.yAxis.calculateSpace({width:t,height:i}),i-=o.height,n=e+o.height,t>0&&(a+=t,t=0),i>0&&(h+=i,i=0),this.componentStore.plot.calculateSpace({width:a,height:h}),this.componentStore.plot.setBoundingBoxXY({x:s,y:n}),this.componentStore.yAxis.setRange([s,s+a]),this.componentStore.yAxis.setBoundingBoxXY({x:s,y:e}),this.componentStore.xAxis.setRange([n,n+h]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some(t=>c(t))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){"horizontal"===this.chartConfig.chartOrientation?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let t=[];for(let i of(this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis),Object.values(this.componentStore)))t.push(...i.getDrawableElements());return t}},_=class{static{(0,o.eW)(this,"XYChartBuilder")}static build(t,i,e,s){return new k(t,i,e,s).getDrawableElement()}},T=0,R=I(),W=v(),D=M(),L=W.plotColorPalette.split(",").map(t=>t.trim()),P=!1,E=!1;function v(){let t=(0,o.xN)(),i=(0,o.iE)();return(0,a.Rb)(t.xyChart,i.themeVariables.xyChart)}function I(){let t=(0,o.iE)();return(0,a.Rb)(o.vZ.xyChart,t.xyChart)}function M(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function $(t){let i=(0,o.iE)();return(0,o.oO)(t.trim(),i)}function B(t){s=t}function z(t){"horizontal"===t?R.chartOrientation="horizontal":R.chartOrientation="vertical"}function O(t){D.xAxis.title=$(t.text)}function F(t,i){D.xAxis={type:"linear",title:D.xAxis.title,min:t,max:i},P=!0}function N(t){D.xAxis={type:"band",title:D.xAxis.title,categories:t.map(t=>$(t.text))},P=!0}function V(t){D.yAxis.title=$(t.text)}function X(t,i){D.yAxis={type:"linear",title:D.yAxis.title,min:t,max:i},E=!0}function Y(t){let i=Math.min(...t),e=Math.max(...t),s=u(D.yAxis)?D.yAxis.min:1/0,n=u(D.yAxis)?D.yAxis.max:-1/0;D.yAxis={type:"linear",title:D.yAxis.title,min:Math.min(s,i),max:Math.max(n,e)}}function U(t){let i=[];if(0===t.length)return i;if(!P){let i=u(D.xAxis)?D.xAxis.min:1/0;F(Math.min(i,1),Math.max(u(D.xAxis)?D.xAxis.max:-1/0,t.length))}if(!E&&Y(t),g(D.xAxis)&&(i=D.xAxis.categories.map((i,e)=>[i,t[e]])),u(D.xAxis)){let e=D.xAxis.min,s=D.xAxis.max,n=(s-e)/(t.length-1),a=[];for(let t=e;t<=s;t+=n)a.push(`${t}`);i=a.map((i,e)=>[i,t[e]])}return i}function H(t){return L[0===t?0:t%L.length]}function j(t,i){let e=U(i);D.plots.push({type:"line",strokeFill:H(T),strokeWidth:2,data:e}),T++}function G(t,i){let e=U(i);D.plots.push({type:"bar",fill:H(T),data:e}),T++}function Q(){if(0===D.plots.length)throw Error("No Plot to render, please provide a plot with some data");return D.title=(0,o.Kr)(),_.build(R,D,W,s)}function K(){return W}function Z(){return R}(0,o.eW)(v,"getChartDefaultThemeConfig"),(0,o.eW)(I,"getChartDefaultConfig"),(0,o.eW)(M,"getChartDefaultData"),(0,o.eW)($,"textSanitizer"),(0,o.eW)(B,"setTmpSVGG"),(0,o.eW)(z,"setOrientation"),(0,o.eW)(O,"setXAxisTitle"),(0,o.eW)(F,"setXAxisRangeData"),(0,o.eW)(N,"setXAxisBand"),(0,o.eW)(V,"setYAxisTitle"),(0,o.eW)(X,"setYAxisRangeData"),(0,o.eW)(Y,"setYAxisRangeFromPlotData"),(0,o.eW)(U,"transformDataWithoutCategory"),(0,o.eW)(H,"getPlotColorFromPalette"),(0,o.eW)(j,"setLineData"),(0,o.eW)(G,"setBarData"),(0,o.eW)(Q,"getDrawableElem"),(0,o.eW)(K,"getChartThemeConfig"),(0,o.eW)(Z,"getChartConfig");var q={getDrawableElem:Q,clear:(0,o.eW)(function(){(0,o.ZH)(),T=0,R=I(),D=M(),L=(W=v()).plotColorPalette.split(",").map(t=>t.trim()),P=!1,E=!1},"clear"),setAccTitle:o.GN,getAccTitle:o.eu,setDiagramTitle:o.g2,getDiagramTitle:o.Kr,getAccDescription:o.Mx,setAccDescription:o.U$,setOrientation:z,setXAxisTitle:O,setXAxisRangeData:F,setXAxisBand:N,setYAxisTitle:V,setYAxisRangeData:X,setLineData:j,setBarData:G,setTmpSVGG:B,getChartThemeConfig:K,getChartConfig:Z},J=(0,o.eW)((t,i,e,s)=>{let n=s.db,a=n.getChartThemeConfig(),r=n.getChartConfig();function l(t){return"top"===t?"text-before-edge":"middle"}function c(t){return"left"===t?"start":"right"===t?"end":"middle"}function g(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}(0,o.eW)(l,"getDominantBaseLine"),(0,o.eW)(c,"getTextAnchor"),(0,o.eW)(g,"getTextTransformation"),o.cM.debug("Rendering xychart chart\n"+t);let u=(0,h.P)(i),x=u.append("g").attr("class","main"),d=x.append("rect").attr("width",r.width).attr("height",r.height).attr("class","background");(0,o.v2)(u,r.height,r.width,!0),u.attr("viewBox",`0 0 ${r.width} ${r.height}`),d.attr("fill",a.backgroundColor),n.setTmpSVGG(u.append("g").attr("class","mermaid-tmp-group"));let p=n.getDrawableElem(),f={};function y(t){let i=x,e="";for(let[s]of t.entries()){let n=x;s>0&&f[e]&&(n=f[e]),e+=t[s],!(i=f[e])&&(i=f[e]=n.append("g").attr("class",t[s]))}return i}for(let t of((0,o.eW)(y,"getGroup"),p)){if(0===t.data.length)continue;let i=y(t.groupTexts);switch(t.type){case"rect":i.selectAll("rect").data(t.data).enter().append("rect").attr("x",t=>t.x).attr("y",t=>t.y).attr("width",t=>t.width).attr("height",t=>t.height).attr("fill",t=>t.fill).attr("stroke",t=>t.strokeFill).attr("stroke-width",t=>t.strokeWidth);break;case"text":i.selectAll("text").data(t.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>l(t.verticalPos)).attr("text-anchor",t=>c(t.horizontalPos)).attr("transform",t=>g(t)).text(t=>t.text);break;case"path":i.selectAll("path").data(t.data).enter().append("path").attr("d",t=>t.path).attr("fill",t=>t.fill?t.fill:"none").attr("stroke",t=>t.strokeFill).attr("stroke-width",t=>t.strokeWidth)}}},"draw"),tt={parser:l,db:q,renderer:{draw:J}}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/48a50ab8.143134df.js b/pr-preview/pr-238/assets/js/48a50ab8.143134df.js new file mode 100644 index 0000000000..8245739a91 --- /dev/null +++ b/pr-preview/pr-238/assets/js/48a50ab8.143134df.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["5056"],{13423:function(e,t,r){r.r(t),r.d(t,{metadata:()=>n,contentTitle:()=>o,default:()=>p,assets:()=>u,toc:()=>d,frontMatter:()=>c});var n=JSON.parse('{"id":"exercises/cases/cases05","title":"Cases05","description":"","source":"@site/docs/exercises/cases/cases05.mdx","sourceDirName":"exercises/cases","slug":"/exercises/cases/cases05","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/cases05","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/cases/cases05.mdx","tags":[],"version":"current","frontMatter":{"title":"Cases05","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Cases04","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/cases04"},"next":{"title":"Cases06","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/cases06"}}'),s=r("85893"),a=r("50065"),l=r("47902"),i=r("5525");let c={title:"Cases05",description:""},o=void 0,u={},d=[{value:"Coding",id:"coding",level:2}];function h(e){let t={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"Welche Ausgabe erwartest Du nach Ablauf des abgebildeten Codings?"}),"\n",(0,s.jsx)(t.h2,{id:"coding",children:"Coding"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-java",metastring:"showLineNumbers",children:'int a = 5;\nint b = 5;\nboolean c = true;\nboolean d = true;\nboolean e;\nint f = 5;\nint g = 3;\nint h = 2;\nint i = 4;\nint j = 0;\n\ne = c && (a > 2 ? (b == (a = a * 2)) : d);\nj += ((h < ((f - g == 3) ? 3 : 2)) && (i < 5)) ? 1 : 2;\n\nSystem.out.println("a: " + a);\nSystem.out.println("e: " + e);\nSystem.out.println("j: " + j);\n'})}),"\n",(0,s.jsxs)(l.Z,{children:[(0,s.jsx)(i.Z,{value:"a",label:"-",default:!0}),(0,s.jsx)(i.Z,{value:"b",label:"a",children:(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Zeile"}),(0,s.jsx)(t.th,{children:"Wert"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"1"}),(0,s.jsx)(t.td,{children:"a = 5"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"12"}),(0,s.jsx)(t.td,{children:"a = 5 * 2 = 10"})]})]})]})}),(0,s.jsx)(i.Z,{value:"c",label:"e",children:(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Zeile"}),(0,s.jsx)(t.th,{children:"Wert"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"12"}),(0,s.jsx)(t.td,{children:"e = true && (5 > 2 ? (5 == (5 * 2)) : true) = true && (5 == 10) = false"})]})})]})}),(0,s.jsx)(i.Z,{value:"d",label:"j",children:(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Zeile"}),(0,s.jsx)(t.th,{children:"Wert"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"10"}),(0,s.jsx)(t.td,{children:"j = 0"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"13"}),(0,s.jsx)(t.td,{children:"j = 0 + ((2 < ((5 - 3 == 3) ? 3 : 2)) && (4 < 5)) ? 1 : 2 = 0 + ((2 < 2) && (4 < 5)) ? 1 : 2 = 0 + 2 = 2"})]})]})]})})]})]})}function p(e={}){let{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},5525:function(e,t,r){r.d(t,{Z:()=>l});var n=r("85893");r("67294");var s=r("67026");let a="tabItem_Ymn6";function l(e){let{children:t,hidden:r,className:l}=e;return(0,n.jsx)("div",{role:"tabpanel",className:(0,s.Z)(a,l),hidden:r,children:t})}},47902:function(e,t,r){r.d(t,{Z:()=>g});var n=r("85893"),s=r("67294"),a=r("67026"),l=r("69599"),i=r("16550"),c=r("32000"),o=r("4520"),u=r("38341"),d=r("76009");function h(e){return s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||s.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function p(e){let{value:t,tabValues:r}=e;return r.some(e=>e.value===t)}var f=r("7227");let x="tabList__CuJ",j="tabItem_LNqP";function b(e){let{className:t,block:r,selectedValue:s,selectValue:i,tabValues:c}=e,o=[],{blockElementScrollPositionUntilNextRender:u}=(0,l.o5)(),d=e=>{let t=e.currentTarget,r=c[o.indexOf(t)].value;r!==s&&(u(t),i(r))},h=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let r=o.indexOf(e.currentTarget)+1;t=o[r]??o[0];break}case"ArrowLeft":{let r=o.indexOf(e.currentTarget)-1;t=o[r]??o[o.length-1]}}t?.focus()};return(0,n.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":r},t),children:c.map(e=>{let{value:t,label:r,attributes:l}=e;return(0,n.jsx)("li",{role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,ref:e=>o.push(e),onKeyDown:h,onClick:d,...l,className:(0,a.Z)("tabs__item",j,l?.className,{"tabs__item--active":s===t}),children:r??t},t)})})}function m(e){let{lazy:t,children:r,selectedValue:l}=e,i=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){let e=i.find(e=>e.props.value===l);return e?(0,s.cloneElement)(e,{className:(0,a.Z)("margin-top--md",e.props.className)}):null}return(0,n.jsx)("div",{className:"margin-top--md",children:i.map((e,t)=>(0,s.cloneElement)(e,{key:t,hidden:e.props.value!==l}))})}function v(e){let t=function(e){let{defaultValue:t,queryString:r=!1,groupId:n}=e,a=function(e){let{values:t,children:r}=e;return(0,s.useMemo)(()=>{let e=t??h(r).map(e=>{let{props:{value:t,label:r,attributes:n,default:s}}=e;return{value:t,label:r,attributes:n,default:s}});return!function(e){let t=(0,u.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[t,r])}(e),[l,f]=(0,s.useState)(()=>(function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(t){if(!p({value:t,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let n=r.find(e=>e.default)??r[0];if(!n)throw Error("Unexpected error: 0 tabValues");return n.value})({defaultValue:t,tabValues:a})),[x,j]=function(e){let{queryString:t=!1,groupId:r}=e,n=(0,i.k6)(),a=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r}),l=(0,o._X)(a);return[l,(0,s.useCallback)(e=>{if(!a)return;let t=new URLSearchParams(n.location.search);t.set(a,e),n.replace({...n.location,search:t.toString()})},[a,n])]}({queryString:r,groupId:n}),[b,m]=function(e){var t;let{groupId:r}=e;let n=(t=r)?`docusaurus.tab.${t}`:null,[a,l]=(0,d.Nk)(n);return[a,(0,s.useCallback)(e=>{if(!!n)l.set(e)},[n,l])]}({groupId:n}),v=(()=>{let e=x??b;return p({value:e,tabValues:a})?e:null})();return(0,c.Z)(()=>{v&&f(v)},[v]),{selectedValue:l,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);f(e),j(e),m(e)},[j,m,a]),tabValues:a}}(e);return(0,n.jsxs)("div",{className:(0,a.Z)("tabs-container",x),children:[(0,n.jsx)(b,{...t,...e}),(0,n.jsx)(m,{...t,...e})]})}function g(e){let t=(0,f.Z)();return(0,n.jsx)(v,{...e,children:h(e.children)},String(t))}},50065:function(e,t,r){r.d(t,{Z:function(){return i},a:function(){return l}});var n=r(67294);let s={},a=n.createContext(s);function l(e){let t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/4960.049cdbec.js b/pr-preview/pr-238/assets/js/4960.049cdbec.js new file mode 100644 index 0000000000..a5b90e5508 --- /dev/null +++ b/pr-preview/pr-238/assets/js/4960.049cdbec.js @@ -0,0 +1,117 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4960"],{92076:function(t,e,a){a.d(e,{AD:function(){return h},AE:function(){return c},Mu:function(){return s},O:function(){return n},kc:function(){return d},rB:function(){return l},yU:function(){return o}});var r=a(74146),i=a(17967),s=(0,r.eW)((t,e)=>{let a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),e.name&&a.attr("name",e.name),e.rx&&a.attr("rx",e.rx),e.ry&&a.attr("ry",e.ry),void 0!==e.attrs)for(let t in e.attrs)a.attr(t,e.attrs[t]);return e.class&&a.attr("class",e.class),a},"drawRect"),n=(0,r.eW)((t,e)=>{s(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},"drawBackgroundRect"),o=(0,r.eW)((t,e)=>{let a=e.text.replace(r.Vw," "),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.attr("class","legend"),i.style("text-anchor",e.anchor),e.class&&i.attr("class",e.class);let s=i.append("tspan");return s.attr("x",e.x+2*e.textMargin),s.text(a),i},"drawText"),c=(0,r.eW)((t,e,a,r)=>{let s=t.append("image");s.attr("x",e),s.attr("y",a);let n=(0,i.sanitizeUrl)(r);s.attr("xlink:href",n)},"drawImage"),l=(0,r.eW)((t,e,a,r)=>{let s=t.append("use");s.attr("x",e),s.attr("y",a);let n=(0,i.sanitizeUrl)(r);s.attr("xlink:href",`#${n}`)},"drawEmbeddedImage"),d=(0,r.eW)(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),h=(0,r.eW)(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj")},79068:function(t,e,a){a.d(e,{A:function(){return i}});var r=a(74146),i=class{constructor(t){this.init=t,this.records=this.init()}static{(0,r.eW)(this,"ImperativeState")}reset(){this.records=this.init()}}},19343:function(t,e,a){a.d(e,{diagram:function(){return tj}});var r=a(92076),i=a(79068),s=a(68394),n=a(74146),o=a(27818),c=a(17967),l=function(){var t=(0,n.eW)(function(t,e,a,r){for(a=a||{},r=t.length;r--;a[t[r]]=e);return a},"o"),e=[1,2],a=[1,3],r=[1,4],i=[2,4],s=[1,9],o=[1,11],c=[1,13],l=[1,14],d=[1,16],h=[1,17],p=[1,18],g=[1,24],u=[1,25],x=[1,26],y=[1,27],m=[1,28],b=[1,29],f=[1,30],T=[1,31],E=[1,32],w=[1,33],I=[1,34],L=[1,35],P=[1,36],_=[1,37],k=[1,38],v=[1,39],M=[1,41],A=[1,42],N=[1,43],S=[1,44],O=[1,45],D=[1,46],W=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],R=[4,5,16,50,52,53],Y=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],C=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],B=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],$=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],V=[68,69,70],F=[1,122],q={trace:(0,n.eW)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,BIDIRECTIONAL_SOLID_ARROW:74,DOTTED_ARROW:75,BIDIRECTIONAL_DOTTED_ARROW:76,SOLID_CROSS:77,DOTTED_CROSS:78,SOLID_POINT:79,DOTTED_POINT:80,TXT:81,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"BIDIRECTIONAL_SOLID_ARROW",75:"DOTTED_ARROW",76:"BIDIRECTIONAL_DOTTED_ARROW",77:"SOLID_CROSS",78:"DOTTED_CROSS",79:"SOLID_POINT",80:"DOTTED_POINT",81:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:(0,n.eW)(function(t,e,a,r,i,s,n){var o=s.length-1;switch(i){case 3:return r.apply(s[o]),s[o];case 4:case 9:case 8:case 13:this.$=[];break;case 5:case 10:s[o-1].push(s[o]),this.$=s[o-1];break;case 6:case 7:case 11:case 12:case 62:this.$=s[o];break;case 15:s[o].type="createParticipant",this.$=s[o];break;case 16:s[o-1].unshift({type:"boxStart",boxData:r.parseBoxData(s[o-2])}),s[o-1].push({type:"boxEnd",boxText:s[o-2]}),this.$=s[o-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(s[o-2]),sequenceIndexStep:Number(s[o-1]),sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(s[o-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:r.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:r.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:s[o-1].actor};break;case 23:this.$={type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:s[o-1].actor};break;case 29:r.setDiagramTitle(s[o].substring(6)),this.$=s[o].substring(6);break;case 30:r.setDiagramTitle(s[o].substring(7)),this.$=s[o].substring(7);break;case 31:this.$=s[o].trim(),r.setAccTitle(this.$);break;case 32:case 33:this.$=s[o].trim(),r.setAccDescription(this.$);break;case 34:s[o-1].unshift({type:"loopStart",loopText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.LOOP_START}),s[o-1].push({type:"loopEnd",loopText:s[o-2],signalType:r.LINETYPE.LOOP_END}),this.$=s[o-1];break;case 35:s[o-1].unshift({type:"rectStart",color:r.parseMessage(s[o-2]),signalType:r.LINETYPE.RECT_START}),s[o-1].push({type:"rectEnd",color:r.parseMessage(s[o-2]),signalType:r.LINETYPE.RECT_END}),this.$=s[o-1];break;case 36:s[o-1].unshift({type:"optStart",optText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.OPT_START}),s[o-1].push({type:"optEnd",optText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.OPT_END}),this.$=s[o-1];break;case 37:s[o-1].unshift({type:"altStart",altText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.ALT_START}),s[o-1].push({type:"altEnd",signalType:r.LINETYPE.ALT_END}),this.$=s[o-1];break;case 38:s[o-1].unshift({type:"parStart",parText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.PAR_START}),s[o-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END}),this.$=s[o-1];break;case 39:s[o-1].unshift({type:"parStart",parText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.PAR_OVER_START}),s[o-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END}),this.$=s[o-1];break;case 40:s[o-1].unshift({type:"criticalStart",criticalText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.CRITICAL_START}),s[o-1].push({type:"criticalEnd",signalType:r.LINETYPE.CRITICAL_END}),this.$=s[o-1];break;case 41:s[o-1].unshift({type:"breakStart",breakText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.BREAK_START}),s[o-1].push({type:"breakEnd",optText:r.parseMessage(s[o-2]),signalType:r.LINETYPE.BREAK_END}),this.$=s[o-1];break;case 43:this.$=s[o-3].concat([{type:"option",optionText:r.parseMessage(s[o-1]),signalType:r.LINETYPE.CRITICAL_OPTION},s[o]]);break;case 45:this.$=s[o-3].concat([{type:"and",parText:r.parseMessage(s[o-1]),signalType:r.LINETYPE.PAR_AND},s[o]]);break;case 47:this.$=s[o-3].concat([{type:"else",altText:r.parseMessage(s[o-1]),signalType:r.LINETYPE.ALT_ELSE},s[o]]);break;case 48:s[o-3].draw="participant",s[o-3].type="addParticipant",s[o-3].description=r.parseMessage(s[o-1]),this.$=s[o-3];break;case 49:s[o-1].draw="participant",s[o-1].type="addParticipant",this.$=s[o-1];break;case 50:s[o-3].draw="actor",s[o-3].type="addParticipant",s[o-3].description=r.parseMessage(s[o-1]),this.$=s[o-3];break;case 51:s[o-1].draw="actor",s[o-1].type="addParticipant",this.$=s[o-1];break;case 52:s[o-1].type="destroyParticipant",this.$=s[o-1];break;case 53:this.$=[s[o-1],{type:"addNote",placement:s[o-2],actor:s[o-1].actor,text:s[o]}];break;case 54:s[o-2]=[].concat(s[o-1],s[o-1]).slice(0,2),s[o-2][0]=s[o-2][0].actor,s[o-2][1]=s[o-2][1].actor,this.$=[s[o-1],{type:"addNote",placement:r.PLACEMENT.OVER,actor:s[o-2].slice(0,2),text:s[o]}];break;case 55:this.$=[s[o-1],{type:"addLinks",actor:s[o-1].actor,text:s[o]}];break;case 56:this.$=[s[o-1],{type:"addALink",actor:s[o-1].actor,text:s[o]}];break;case 57:this.$=[s[o-1],{type:"addProperties",actor:s[o-1].actor,text:s[o]}];break;case 58:this.$=[s[o-1],{type:"addDetails",actor:s[o-1].actor,text:s[o]}];break;case 61:this.$=[s[o-2],s[o]];break;case 63:this.$=r.PLACEMENT.LEFTOF;break;case 64:this.$=r.PLACEMENT.RIGHTOF;break;case 65:this.$=[s[o-4],s[o-1],{type:"addMessage",from:s[o-4].actor,to:s[o-1].actor,signalType:s[o-3],msg:s[o],activate:!0},{type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:s[o-1].actor}];break;case 66:this.$=[s[o-4],s[o-1],{type:"addMessage",from:s[o-4].actor,to:s[o-1].actor,signalType:s[o-3],msg:s[o]},{type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:s[o-4].actor}];break;case 67:this.$=[s[o-3],s[o-1],{type:"addMessage",from:s[o-3].actor,to:s[o-1].actor,signalType:s[o-2],msg:s[o]}];break;case 68:this.$={type:"addParticipant",actor:s[o]};break;case 69:this.$=r.LINETYPE.SOLID_OPEN;break;case 70:this.$=r.LINETYPE.DOTTED_OPEN;break;case 71:this.$=r.LINETYPE.SOLID;break;case 72:this.$=r.LINETYPE.BIDIRECTIONAL_SOLID;break;case 73:this.$=r.LINETYPE.DOTTED;break;case 74:this.$=r.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 75:this.$=r.LINETYPE.SOLID_CROSS;break;case 76:this.$=r.LINETYPE.DOTTED_CROSS;break;case 77:this.$=r.LINETYPE.SOLID_POINT;break;case 78:this.$=r.LINETYPE.DOTTED_POINT;break;case 79:this.$=r.parseMessage(s[o].trim().substring(1))}},"anonymous"),table:[{3:1,4:e,5:a,6:r},{1:[3]},{3:5,4:e,5:a,6:r},{3:6,4:e,5:a,6:r},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:s,5:o,8:8,9:10,12:12,13:c,14:l,17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:f,38:T,39:E,41:w,43:I,44:L,46:P,50:_,52:k,53:v,54:M,59:A,60:N,61:S,62:O,70:D},t(W,[2,5]),{9:47,12:12,13:c,14:l,17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:f,38:T,39:E,41:w,43:I,44:L,46:P,50:_,52:k,53:v,54:M,59:A,60:N,61:S,62:O,70:D},t(W,[2,7]),t(W,[2,8]),t(W,[2,14]),{12:48,50:_,52:k,53:v},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:D},{22:55,70:D},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(W,[2,29]),t(W,[2,30]),{32:[1,61]},{34:[1,62]},t(W,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:D},{22:72,70:D},{22:73,70:D},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82],79:[1,83],80:[1,84]},{55:85,57:[1,86],65:[1,87],66:[1,88]},{22:89,70:D},{22:90,70:D},{22:91,70:D},{22:92,70:D},t([5,51,64,71,72,73,74,75,76,77,78,79,80,81],[2,68]),t(W,[2,6]),t(W,[2,15]),t(R,[2,9],{10:93}),t(W,[2,17]),{5:[1,95],19:[1,94]},{5:[1,96]},t(W,[2,21]),{5:[1,97]},{5:[1,98]},t(W,[2,24]),t(W,[2,25]),t(W,[2,26]),t(W,[2,27]),t(W,[2,28]),t(W,[2,31]),t(W,[2,32]),t(Y,i,{7:99}),t(Y,i,{7:100}),t(Y,i,{7:101}),t(C,i,{40:102,7:103}),t(B,i,{42:104,7:105}),t(B,i,{7:105,42:106}),t($,i,{45:107,7:108}),t(Y,i,{7:109}),{5:[1,111],51:[1,110]},{5:[1,113],51:[1,112]},{5:[1,114]},{22:117,68:[1,115],69:[1,116],70:D},t(V,[2,69]),t(V,[2,70]),t(V,[2,71]),t(V,[2,72]),t(V,[2,73]),t(V,[2,74]),t(V,[2,75]),t(V,[2,76]),t(V,[2,77]),t(V,[2,78]),{22:118,70:D},{22:120,58:119,70:D},{70:[2,63]},{70:[2,64]},{56:121,81:F},{56:123,81:F},{56:124,81:F},{56:125,81:F},{4:[1,128],5:[1,130],11:127,12:129,16:[1,126],50:_,52:k,53:v},{5:[1,131]},t(W,[2,19]),t(W,[2,20]),t(W,[2,22]),t(W,[2,23]),{4:s,5:o,8:8,9:10,12:12,13:c,14:l,16:[1,132],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:f,38:T,39:E,41:w,43:I,44:L,46:P,50:_,52:k,53:v,54:M,59:A,60:N,61:S,62:O,70:D},{4:s,5:o,8:8,9:10,12:12,13:c,14:l,16:[1,133],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:f,38:T,39:E,41:w,43:I,44:L,46:P,50:_,52:k,53:v,54:M,59:A,60:N,61:S,62:O,70:D},{4:s,5:o,8:8,9:10,12:12,13:c,14:l,16:[1,134],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:f,38:T,39:E,41:w,43:I,44:L,46:P,50:_,52:k,53:v,54:M,59:A,60:N,61:S,62:O,70:D},{16:[1,135]},{4:s,5:o,8:8,9:10,12:12,13:c,14:l,16:[2,46],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:f,38:T,39:E,41:w,43:I,44:L,46:P,49:[1,136],50:_,52:k,53:v,54:M,59:A,60:N,61:S,62:O,70:D},{16:[1,137]},{4:s,5:o,8:8,9:10,12:12,13:c,14:l,16:[2,44],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:f,38:T,39:E,41:w,43:I,44:L,46:P,48:[1,138],50:_,52:k,53:v,54:M,59:A,60:N,61:S,62:O,70:D},{16:[1,139]},{16:[1,140]},{4:s,5:o,8:8,9:10,12:12,13:c,14:l,16:[2,42],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:f,38:T,39:E,41:w,43:I,44:L,46:P,47:[1,141],50:_,52:k,53:v,54:M,59:A,60:N,61:S,62:O,70:D},{4:s,5:o,8:8,9:10,12:12,13:c,14:l,16:[1,142],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:x,33:y,35:m,36:b,37:f,38:T,39:E,41:w,43:I,44:L,46:P,50:_,52:k,53:v,54:M,59:A,60:N,61:S,62:O,70:D},{15:[1,143]},t(W,[2,49]),{15:[1,144]},t(W,[2,51]),t(W,[2,52]),{22:145,70:D},{22:146,70:D},{56:147,81:F},{56:148,81:F},{56:149,81:F},{64:[1,150],81:[2,62]},{5:[2,55]},{5:[2,79]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(W,[2,16]),t(R,[2,10]),{12:151,50:_,52:k,53:v},t(R,[2,12]),t(R,[2,13]),t(W,[2,18]),t(W,[2,34]),t(W,[2,35]),t(W,[2,36]),t(W,[2,37]),{15:[1,152]},t(W,[2,38]),{15:[1,153]},t(W,[2,39]),t(W,[2,40]),{15:[1,154]},t(W,[2,41]),{5:[1,155]},{5:[1,156]},{56:157,81:F},{56:158,81:F},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:159,70:D},t(R,[2,11]),t(C,i,{7:103,40:160}),t(B,i,{7:105,42:161}),t($,i,{7:108,45:162}),t(W,[2,48]),t(W,[2,50]),{5:[2,65]},{5:[2,66]},{81:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],87:[2,63],88:[2,64],121:[2,55],122:[2,79],123:[2,56],124:[2,57],125:[2,58],147:[2,67],148:[2,53],149:[2,54],157:[2,65],158:[2,66],159:[2,61],160:[2,47],161:[2,45],162:[2,43]},parseError:(0,n.eW)(function(t,e){if(e.recoverable)this.trace(t);else{var a=Error(t);throw a.hash=e,a}},"parseError"),parse:(0,n.eW)(function(t){var e=this,a=[0],r=[],i=[null],s=[],o=this.table,c="",l=0,d=0,h=0,p=s.slice.call(arguments,1),g=Object.create(this.lexer),u={yy:{}};for(var x in this.yy)Object.prototype.hasOwnProperty.call(this.yy,x)&&(u.yy[x]=this.yy[x]);g.setInput(t,u.yy),u.yy.lexer=g,u.yy.parser=this,void 0===g.yylloc&&(g.yylloc={});var y=g.yylloc;s.push(y);var m=g.options&&g.options.ranges;"function"==typeof u.yy.parseError?this.parseError=u.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function b(){var t;return"number"!=typeof(t=r.pop()||g.lex()||1)&&(t instanceof Array&&(t=(r=t).pop()),t=e.symbols_[t]||t),t}(0,n.eW)(function(t){a.length=a.length-2*t,i.length=i.length-t,s.length=s.length-t},"popStack"),(0,n.eW)(b,"lex");for(var f,T,E,w,I,L,P,_,k,v={};;){if(E=a[a.length-1],this.defaultActions[E]?w=this.defaultActions[E]:(null==f&&(f=b()),w=o[E]&&o[E][f]),void 0===w||!w.length||!w[0]){var M="";for(L in k=[],o[E])this.terminals_[L]&&L>2&&k.push("'"+this.terminals_[L]+"'");M=g.showPosition?"Parse error on line "+(l+1)+":\n"+g.showPosition()+"\nExpecting "+k.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(M,{text:g.match,token:this.terminals_[f]||f,line:g.yylineno,loc:y,expected:k})}if(w[0]instanceof Array&&w.length>1)throw Error("Parse Error: multiple actions possible at state: "+E+", token: "+f);switch(w[0]){case 1:a.push(f),i.push(g.yytext),s.push(g.yylloc),a.push(w[1]),f=null,T?(f=T,T=null):(d=g.yyleng,c=g.yytext,l=g.yylineno,y=g.yylloc,h>0&&h--);break;case 2:if(P=this.productions_[w[1]][1],v.$=i[i.length-P],v._$={first_line:s[s.length-(P||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(P||1)].first_column,last_column:s[s.length-1].last_column},m&&(v._$.range=[s[s.length-(P||1)].range[0],s[s.length-1].range[1]]),void 0!==(I=this.performAction.apply(v,[c,d,l,u.yy,w[1],i,s].concat(p))))return I;P&&(a=a.slice(0,-1*P*2),i=i.slice(0,-1*P),s=s.slice(0,-1*P)),a.push(this.productions_[w[1]][0]),i.push(v.$),s.push(v._$),_=o[a[a.length-2]][a[a.length-1]],a.push(_);break;case 3:return!0}}return!0},"parse")},z={EOF:1,parseError:(0,n.eW)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,n.eW)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,n.eW)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,n.eW)(function(t){var e=t.length,a=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===r.length?this.yylloc.first_column:0)+r[r.length-a.length].length-a[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,n.eW)(function(){return this._more=!0,this},"more"),reject:(0,n.eW)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,n.eW)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,n.eW)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,n.eW)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,n.eW)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,n.eW)(function(t,e){var a,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],a=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack)for(var s in i)this[s]=i[s];return!1},"test_match"),next:(0,n.eW)(function(){if(this.done)return this.EOF;!this._input&&(this.done=!0),!this._more&&(this.yytext="",this.match="");for(var t,e,a,r,i=this._currentRules(),s=0;se[0].length)){if(e=a,r=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(a,i[s])))return t;if(!this._backtrack)return!1;else{e=!1;continue}}if(!this.options.flex)break}if(e)return!1!==(t=this.test_match(e,i[r]))&&t;return""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,n.eW)(function(){var t=this.next();return t?t:this.lex()},"lex"),begin:(0,n.eW)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,n.eW)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,n.eW)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,n.eW)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,n.eW)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,n.eW)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,n.eW)(function(t,e,a,r){switch(a){case 0:case 51:case 66:return 5;case 1:case 2:case 3:case 4:case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;case 8:return this.begin("ID"),50;case 9:return this.begin("ID"),52;case 10:return 13;case 11:return this.begin("ID"),53;case 12:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),70;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;case 14:return this.popState(),this.popState(),5;case 15:return this.begin("LINE"),36;case 16:return this.begin("LINE"),37;case 17:return this.begin("LINE"),38;case 18:return this.begin("LINE"),39;case 19:return this.begin("LINE"),49;case 20:return this.begin("LINE"),41;case 21:return this.begin("LINE"),43;case 22:return this.begin("LINE"),48;case 23:return this.begin("LINE"),44;case 24:return this.begin("LINE"),47;case 25:return this.begin("LINE"),46;case 26:return this.popState(),15;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;case 37:return this.begin("ID"),23;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;case 41:return this.popState(),"acc_title_value";case 42:return this.begin("acc_descr"),33;case 43:return this.popState(),"acc_descr_value";case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 52:return e.yytext=e.yytext.trim(),70;case 53:return 73;case 54:return 74;case 55:return 75;case 56:return 76;case 57:return 71;case 58:return 72;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 80;case 63:return 81;case 64:return 68;case 65:return 69;case 67:return"INVALID"}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\<->\->:\n,;]+?([\-]*[^\<->\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\<->\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\<->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0}}};function H(){this.yy={}}return q.lexer=z,(0,n.eW)(H,"Parser"),H.prototype=q,q.Parser=H,new H}();l.parser=l;var d=new i.A(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),h=(0,n.eW)(function(t){d.records.boxes.push({name:t.text,wrap:t.wrap??A(),fill:t.color,actorKeys:[]}),d.records.currentBox=d.records.boxes.slice(-1)[0]},"addBox"),p=(0,n.eW)(function(t,e,a,r){let i=d.records.currentBox,s=d.records.actors.get(t);if(s){if(d.records.currentBox&&s.box&&d.records.currentBox!==s.box)throw Error(`A same participant should only be defined in one Box: ${s.name} can't be in '${s.box.name}' and in '${d.records.currentBox.name}' at the same time.`);if(i=s.box?s.box:d.records.currentBox,s.box=i,s&&e===s.name&&null==a)return}if(a?.text==null&&(a={text:e,type:r}),(null==r||null==a.text)&&(a={text:e,type:r}),d.records.actors.set(t,{box:i,name:e,description:a.text,wrap:a.wrap??A(),prevActor:d.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:r??"participant"}),d.records.prevActor){let e=d.records.actors.get(d.records.prevActor);e&&(e.nextActor=t)}d.records.currentBox&&d.records.currentBox.actorKeys.push(t),d.records.prevActor=t},"addActor"),g=(0,n.eW)(t=>{let e;let a=0;if(!t)return 0;for(e=0;eg(t??"")){let e=Error("Trying to inactivate an inactive participant ("+t+")");throw e.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},e}return d.records.messages.push({from:t,to:e,message:a?.text??"",wrap:a?.wrap??A(),type:r,activate:i}),!0},"addSignal"),y=(0,n.eW)(function(){return d.records.boxes.length>0},"hasAtLeastOneBox"),m=(0,n.eW)(function(){return d.records.boxes.some(t=>t.name)},"hasAtLeastOneBoxWithTitle"),b=(0,n.eW)(function(){return d.records.messages},"getMessages"),f=(0,n.eW)(function(){return d.records.boxes},"getBoxes"),T=(0,n.eW)(function(){return d.records.actors},"getActors"),E=(0,n.eW)(function(){return d.records.createdActors},"getCreatedActors"),w=(0,n.eW)(function(){return d.records.destroyedActors},"getDestroyedActors"),I=(0,n.eW)(function(t){return d.records.actors.get(t)},"getActor"),L=(0,n.eW)(function(){return[...d.records.actors.keys()]},"getActorKeys"),P=(0,n.eW)(function(){d.records.sequenceNumbersEnabled=!0},"enableSequenceNumbers"),_=(0,n.eW)(function(){d.records.sequenceNumbersEnabled=!1},"disableSequenceNumbers"),k=(0,n.eW)(()=>d.records.sequenceNumbersEnabled,"showSequenceNumbers"),v=(0,n.eW)(function(t){d.records.wrapEnabled=t},"setWrap"),M=(0,n.eW)(t=>{if(void 0===t)return{};t=t.trim();let e=null!==/^:?wrap:/.exec(t)||null===/^:?nowrap:/.exec(t)&&void 0;return{cleanedText:(void 0===e?t:t.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:e}},"extractWrap"),A=(0,n.eW)(()=>void 0!==d.records.wrapEnabled?d.records.wrapEnabled:n.nV().sequence?.wrap??!1,"autoWrap"),N=(0,n.eW)(function(){d.reset(),(0,n.ZH)()},"clear"),S=(0,n.eW)(function(t){let{wrap:e,cleanedText:a}=M(t.trim()),r={text:a,wrap:e};return n.cM.debug(`parseMessage: ${JSON.stringify(r)}`),r},"parseMessage"),O=(0,n.eW)(function(t){let e=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(t),a=e?.[1]?e[1].trim():"transparent",r=e?.[2]?e[2].trim():void 0;if(window?.CSS)!window.CSS.supports("color",a)&&(a="transparent",r=t.trim());else{let e=new Option().style;e.color=a,e.color!==a&&(a="transparent",r=t.trim())}let{wrap:i,cleanedText:s}=M(r);return{text:s?(0,n.oO)(s,(0,n.nV)()):void 0,color:a,wrap:i}},"parseBoxData"),D={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34},W=(0,n.eW)(function(t,e,a){let r={actor:t,placement:e,message:a.text,wrap:a.wrap??A()},i=[].concat(t,t);d.records.notes.push(r),d.records.messages.push({from:i[0],to:i[1],message:a.text,wrap:a.wrap??A(),type:D.NOTE,placement:e})},"addNote"),R=(0,n.eW)(function(t,e){let a=I(t);try{let t=(0,n.oO)(e.text,(0,n.nV)());t=(t=t.replace(/&/g,"&")).replace(/=/g,"=");let r=JSON.parse(t);C(a,r)}catch(t){n.cM.error("error while parsing actor link text",t)}},"addLinks"),Y=(0,n.eW)(function(t,e){let a=I(t);try{let t={},r=(0,n.oO)(e.text,(0,n.nV)()),i=r.indexOf("@"),s=(r=(r=r.replace(/&/g,"&")).replace(/=/g,"=")).slice(0,i-1).trim(),o=r.slice(i+1).trim();t[s]=o,C(a,t)}catch(t){n.cM.error("error while parsing actor link text",t)}},"addALink");function C(t,e){if(null==t.links)t.links=e;else for(let a in e)t.links[a]=e[a]}(0,n.eW)(C,"insertLinks");var B=(0,n.eW)(function(t,e){let a=I(t);try{let t=(0,n.oO)(e.text,(0,n.nV)()),r=JSON.parse(t);$(a,r)}catch(t){n.cM.error("error while parsing actor properties text",t)}},"addProperties");function $(t,e){if(null==t.properties)t.properties=e;else for(let a in e)t.properties[a]=e[a]}function V(){d.records.currentBox=void 0}(0,n.eW)($,"insertProperties"),(0,n.eW)(V,"boxEnd");var F=(0,n.eW)(function(t,e){let a=I(t),r=document.getElementById(e.text);try{let t=r.innerHTML,e=JSON.parse(t);e.properties&&$(a,e.properties),e.links&&C(a,e.links)}catch(t){n.cM.error("error while parsing actor details text",t)}},"addDetails"),q=(0,n.eW)(function(t,e){if(t?.properties!==void 0)return t.properties[e]},"getActorProperty"),z=(0,n.eW)(function(t){if(Array.isArray(t))t.forEach(function(t){z(t)});else switch(t.type){case"sequenceIndex":d.records.messages.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":p(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if(d.records.actors.has(t.actor))throw Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");d.records.lastCreated=t.actor,p(t.actor,t.actor,t.description,t.draw),d.records.createdActors.set(t.actor,d.records.messages.length);break;case"destroyParticipant":d.records.lastDestroyed=t.actor,d.records.destroyedActors.set(t.actor,d.records.messages.length);break;case"activeStart":case"activeEnd":x(t.actor,void 0,void 0,t.signalType);break;case"addNote":W(t.actor,t.placement,t.text);break;case"addLinks":R(t.actor,t.text);break;case"addALink":Y(t.actor,t.text);break;case"addProperties":B(t.actor,t.text);break;case"addDetails":F(t.actor,t.text);break;case"addMessage":if(d.records.lastCreated){if(t.to!==d.records.lastCreated)throw Error("The created participant "+d.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");d.records.lastCreated=void 0}else if(d.records.lastDestroyed){if(t.to!==d.records.lastDestroyed&&t.from!==d.records.lastDestroyed)throw Error("The destroyed participant "+d.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");d.records.lastDestroyed=void 0}x(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":h(t.boxData);break;case"boxEnd":V();break;case"loopStart":x(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":case"rectEnd":case"optEnd":case"altEnd":case"parEnd":case"criticalEnd":x(void 0,void 0,void 0,t.signalType);break;case"rectStart":x(void 0,void 0,t.color,t.signalType);break;case"optStart":x(void 0,void 0,t.optText,t.signalType);break;case"altStart":case"else":x(void 0,void 0,t.altText,t.signalType);break;case"setAccTitle":(0,n.GN)(t.text);break;case"parStart":case"and":x(void 0,void 0,t.parText,t.signalType);break;case"criticalStart":x(void 0,void 0,t.criticalText,t.signalType);break;case"option":x(void 0,void 0,t.optionText,t.signalType);break;case"breakStart":x(void 0,void 0,t.breakText,t.signalType);break;case"breakEnd":x(void 0,void 0,void 0,t.signalType)}},"apply"),H={addActor:p,addMessage:u,addSignal:x,addLinks:R,addDetails:F,addProperties:B,autoWrap:A,setWrap:v,enableSequenceNumbers:P,disableSequenceNumbers:_,showSequenceNumbers:k,getMessages:b,getActors:T,getCreatedActors:E,getDestroyedActors:w,getActor:I,getActorKeys:L,getActorProperty:q,getAccTitle:n.eu,getBoxes:f,getDiagramTitle:n.Kr,setDiagramTitle:n.g2,getConfig:(0,n.eW)(()=>(0,n.nV)().sequence,"getConfig"),clear:N,parseMessage:S,parseBoxData:O,LINETYPE:D,ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},addNote:W,setAccTitle:n.GN,apply:z,setAccDescription:n.U$,getAccDescription:n.Mx,hasAtLeastOneBox:y,hasAtLeastOneBoxWithTitle:m},U=(0,n.eW)(t=>`.actor { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + + text.actor > tspan { + fill: ${t.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${t.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${t.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${t.signalColor}; + } + + #arrowhead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .sequenceNumber { + fill: ${t.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${t.signalColor}; + } + + #crosshead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .messageText { + fill: ${t.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${t.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${t.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${t.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation1 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation2 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${t.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + .actor-man circle, line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + stroke-width: 2px; + } +`,"getStyles"),j="actor-top",K="actor-bottom",G="actor-man",X=(0,n.eW)(function(t,e){return(0,r.Mu)(t,e)},"drawRect"),J=(0,n.eW)(function(t,e,a,r,i){if(void 0===e.links||null===e.links||0===Object.keys(e.links).length)return{height:0,width:0};let s=e.links,n=e.actorCnt,o=e.rectData;var l="none";i&&(l="block !important");let d=t.append("g");d.attr("id","actor"+n+"_popup"),d.attr("class","actorPopupMenu"),d.attr("display",l);var h="";void 0!==o.class&&(h=" "+o.class);let p=o.width>a?o.width:a,g=d.append("rect");if(g.attr("class","actorPopupMenuPanel"+h),g.attr("x",o.x),g.attr("y",o.height),g.attr("fill",o.fill),g.attr("stroke",o.stroke),g.attr("width",p),g.attr("height",o.height),g.attr("rx",o.rx),g.attr("ry",o.ry),null!=s){var u=20;for(let t in s){var x=d.append("a"),y=(0,c.sanitizeUrl)(s[t]);x.attr("xlink:href",y),x.attr("target","_blank"),tw(r)(t,x,o.x+10,o.height+u,p,20,{class:"actor"},r),u+=30}}return g.attr("height",u),{height:o.height+u,width:p}},"drawPopup"),Z=(0,n.eW)(function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),Q=(0,n.eW)(async function(t,e,a=null){let r=t.append("foreignObject"),i=await (0,n.uT)(e.text,(0,n.iE)()),s=r.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(r.attr("height",Math.round(s.height)).attr("width",Math.round(s.width)),"noteText"===e.class){let a=t.node().firstChild;a.setAttribute("height",s.height+2*e.textMargin);let i=a.getBBox();r.attr("x",Math.round(i.x+i.width/2-s.width/2)).attr("y",Math.round(i.y+i.height/2-s.height/2))}else if(a){let{startx:t,stopx:i,starty:n}=a;if(t>i){let e=t;t=i,i=e}r.attr("x",Math.round(t+Math.abs(t-i)/2-s.width/2)),"loopText"===e.class?r.attr("y",Math.round(n)):r.attr("y",Math.round(n-s.height))}return[r]},"drawKatex"),tt=(0,n.eW)(function(t,e){let a=0,r=0,i=e.text.split(n.SY.lineBreakRegex),[o,c]=(0,s.VG)(e.fontSize),l=[],d=0,h=(0,n.eW)(()=>e.y,"yfunc");if(void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0)switch(e.valign){case"top":case"start":h=(0,n.eW)(()=>Math.round(e.y+e.textMargin),"yfunc");break;case"middle":case"center":h=(0,n.eW)(()=>Math.round(e.y+(a+r+e.textMargin)/2),"yfunc");break;case"bottom":case"end":h=(0,n.eW)(()=>Math.round(e.y+(a+r+2*e.textMargin)-e.textMargin),"yfunc")}if(void 0!==e.anchor&&void 0!==e.textMargin&&void 0!==e.width)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle"}for(let[n,p]of i.entries()){void 0!==e.textMargin&&0===e.textMargin&&void 0!==o&&(d=n*o);let i=t.append("text");i.attr("x",e.x),i.attr("y",h()),void 0!==e.anchor&&i.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),void 0!==e.fontFamily&&i.style("font-family",e.fontFamily),void 0!==c&&i.style("font-size",c),void 0!==e.fontWeight&&i.style("font-weight",e.fontWeight),void 0!==e.fill&&i.attr("fill",e.fill),void 0!==e.class&&i.attr("class",e.class),void 0!==e.dy?i.attr("dy",e.dy):0!==d&&i.attr("dy",d);let g=p||s.$m;if(e.tspan){let t=i.append("tspan");t.attr("x",e.x),void 0!==e.fill&&t.attr("fill",e.fill),t.text(g)}else i.text(g);void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0&&(r+=(i._groups||i)[0][0].getBBox().height,a=r),l.push(i)}return l},"drawText"),te=(0,n.eW)(function(t,e){function a(t,e,a,r,i){return t+","+e+" "+(t+a)+","+e+" "+(t+a)+","+(e+r-i)+" "+(t+a-1.2*i)+","+(e+r)+" "+t+","+(e+r)}(0,n.eW)(a,"genPoints");let r=t.append("polygon");return r.attr("points",a(e.x,e.y,e.width,e.height,7)),r.attr("class","labelBox"),e.y=e.y+e.height/2,tt(t,e),r},"drawLabel"),ta=-1,tr=(0,n.eW)((t,e,a,r)=>{if(!!t.select)a.forEach(a=>{let i=e.get(a),s=t.select("#actor"+i.actorCnt);!r.mirrorActors&&i.stopy?s.attr("y2",i.stopy+i.height/2):r.mirrorActors&&s.attr("y2",i.stopy)})},"fixLifeLineHeights"),ti=(0,n.eW)(function(t,e,a,i){let s=i?e.stopy:e.starty,o=e.x+e.width/2,c=s+e.height,l=t.append("g").lower();var d=l;!i&&(ta++,Object.keys(e.links||{}).length&&!a.forceMenus&&d.attr("onclick",Z(`actor${ta}_popup`)).attr("cursor","pointer"),d.append("line").attr("id","actor"+ta).attr("x1",o).attr("y1",c).attr("x2",o).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),d=l.append("g"),e.actorCnt=ta,null!=e.links&&d.attr("id","root-"+ta));let h=(0,r.kc)();var p="actor";e.properties?.class?p=e.properties.class:h.fill="#eaeaea",i?p+=` ${K}`:p+=` ${j}`,h.x=e.x,h.y=s,h.width=e.width,h.height=e.height,h.class=p,h.rx=3,h.ry=3,h.name=e.name;let g=X(d,h);if(e.rectData=h,e.properties?.icon){let t=e.properties.icon.trim();"@"===t.charAt(0)?(0,r.rB)(d,h.x+h.width-20,h.y+10,t.substr(1)):(0,r.AE)(d,h.x+h.width-20,h.y+10,t)}tE(a,(0,n.l0)(e.description))(e.description,d,h.x,h.y,h.width,h.height,{class:"actor actor-box"},a);let u=e.height;if(g.node){let t=g.node().getBBox();e.height=t.height,u=t.height}return u},"drawActorTypeParticipant"),ts=(0,n.eW)(function(t,e,a,i){let s=i?e.stopy:e.starty,o=e.x+e.width/2,c=s+80,l=t.append("g").lower();!i&&(ta++,l.append("line").attr("id","actor"+ta).attr("x1",o).attr("y1",c).attr("x2",o).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=ta);let d=t.append("g"),h=G;i?h+=` ${K}`:h+=` ${j}`,d.attr("class",h),d.attr("name",e.name);let p=(0,r.kc)();p.x=e.x,p.y=s,p.fill="#eaeaea",p.width=e.width,p.height=e.height,p.class="actor",p.rx=3,p.ry=3,d.append("line").attr("id","actor-man-torso"+ta).attr("x1",o).attr("y1",s+25).attr("x2",o).attr("y2",s+45),d.append("line").attr("id","actor-man-arms"+ta).attr("x1",o-18).attr("y1",s+33).attr("x2",o+18).attr("y2",s+33),d.append("line").attr("x1",o-18).attr("y1",s+60).attr("x2",o).attr("y2",s+45),d.append("line").attr("x1",o).attr("y1",s+45).attr("x2",o+18-2).attr("y2",s+60);let g=d.append("circle");g.attr("cx",e.x+e.width/2),g.attr("cy",s+10),g.attr("r",15),g.attr("width",e.width),g.attr("height",e.height);let u=d.node().getBBox();return e.height=u.height,tE(a,(0,n.l0)(e.description))(e.description,d,p.x,p.y+35,p.width,p.height,{class:`actor ${G}`},a),e.height},"drawActorTypeActor"),tn=(0,n.eW)(async function(t,e,a,r){switch(e.type){case"actor":return await ts(t,e,a,r);case"participant":return await ti(t,e,a,r)}},"drawActor"),to=(0,n.eW)(function(t,e,a){let r=t.append("g");th(r,e),e.name&&tE(a)(e.name,r,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},a),r.lower()},"drawBox"),tc=(0,n.eW)(function(t){return t.append("g")},"anchorElement"),tl=(0,n.eW)(function(t,e,a,i,s){let n=(0,r.kc)(),o=e.anchored;n.x=e.startx,n.y=e.starty,n.class="activation"+s%3,n.width=e.stopx-e.startx,n.height=a-e.starty,X(o,n)},"drawActivation"),td=(0,n.eW)(async function(t,e,a,i){let{boxMargin:s,boxTextMargin:o,labelBoxHeight:c,labelBoxWidth:l,messageFontFamily:d,messageFontSize:h,messageFontWeight:p}=i,g=t.append("g"),u=(0,n.eW)(function(t,e,a,r){return g.append("line").attr("x1",t).attr("y1",e).attr("x2",a).attr("y2",r).attr("class","loopLine")},"drawLoopLine");u(e.startx,e.starty,e.stopx,e.starty),u(e.stopx,e.starty,e.stopx,e.stopy),u(e.startx,e.stopy,e.stopx,e.stopy),u(e.startx,e.starty,e.startx,e.stopy),void 0!==e.sections&&e.sections.forEach(function(t){u(e.startx,t.y,e.stopx,t.y).style("stroke-dasharray","3, 3")});let x=(0,r.AD)();x.text=a,x.x=e.startx,x.y=e.starty,x.fontFamily=d,x.fontSize=h,x.fontWeight=p,x.anchor="middle",x.valign="middle",x.tspan=!1,x.width=l||50,x.height=c||20,x.textMargin=o,x.class="labelText",te(g,x),(x=tf()).text=e.title,x.x=e.startx+l/2+(e.stopx-e.startx)/2,x.y=e.starty+s+o,x.anchor="middle",x.valign="middle",x.textMargin=o,x.class="loopText",x.fontFamily=d,x.fontSize=h,x.fontWeight=p,x.wrap=!0;let y=(0,n.l0)(x.text)?await Q(g,x,e):tt(g,x);if(void 0!==e.sectionTitles){for(let[t,a]of Object.entries(e.sectionTitles))if(a.message){x.text=a.message,x.x=e.startx+(e.stopx-e.startx)/2,x.y=e.sections[t].y+s+o,x.class="loopText",x.anchor="middle",x.valign="middle",x.tspan=!1,x.fontFamily=d,x.fontSize=h,x.fontWeight=p,x.wrap=e.wrap,(0,n.l0)(x.text)?(e.starty=e.sections[t].y,await Q(g,x,e)):tt(g,x);let r=Math.round(y.map(t=>(t._groups||t)[0][0].getBBox().height).reduce((t,e)=>t+e));e.sections[t].height+=r-(s+o)}}return e.height=Math.round(e.stopy-e.starty),g},"drawLoop"),th=(0,n.eW)(function(t,e){(0,r.O)(t,e)},"drawBackgroundRect"),tp=(0,n.eW)(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),tg=(0,n.eW)(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),tu=(0,n.eW)(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),tx=(0,n.eW)(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),ty=(0,n.eW)(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),tm=(0,n.eW)(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),tb=(0,n.eW)(function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),tf=(0,n.eW)(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),tT=(0,n.eW)(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),tE=function(){function t(t,e,a,r,s,n,o){i(e.append("text").attr("x",a+s/2).attr("y",r+n/2+5).style("text-anchor","middle").text(t),o)}function e(t,e,a,r,o,c,l,d){let{actorFontSize:h,actorFontFamily:p,actorFontWeight:g}=d,[u,x]=(0,s.VG)(h),y=t.split(n.SY.lineBreakRegex);for(let t=0;tt.height||0))+(0===this.loops.length?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(0===this.messages.length?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(0===this.notes.length?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},"getHeight"),clear:(0,n.eW)(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:(0,n.eW)(function(t){this.boxes.push(t)},"addBox"),addActor:(0,n.eW)(function(t){this.actors.push(t)},"addActor"),addLoop:(0,n.eW)(function(t){this.loops.push(t)},"addLoop"),addMessage:(0,n.eW)(function(t){this.messages.push(t)},"addMessage"),addNote:(0,n.eW)(function(t){this.notes.push(t)},"addNote"),lastActor:(0,n.eW)(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:(0,n.eW)(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:(0,n.eW)(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:(0,n.eW)(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:(0,n.eW)(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,tW((0,n.nV)())},"init"),updateVal:(0,n.eW)(function(t,e,a,r){void 0===t[e]?t[e]=a:t[e]=r(a,t[e])},"updateVal"),updateBounds:(0,n.eW)(function(t,e,a,r){let i=this,s=0;function o(o){return(0,n.eW)(function(n){s++;let c=i.sequenceItems.length-s+1;i.updateVal(n,"starty",e-c*tL.boxMargin,Math.min),i.updateVal(n,"stopy",r+c*tL.boxMargin,Math.max),i.updateVal(tP.data,"startx",t-c*tL.boxMargin,Math.min),i.updateVal(tP.data,"stopx",a+c*tL.boxMargin,Math.max),"activation"!==o&&(i.updateVal(n,"startx",t-c*tL.boxMargin,Math.min),i.updateVal(n,"stopx",a+c*tL.boxMargin,Math.max),i.updateVal(tP.data,"starty",e-c*tL.boxMargin,Math.min),i.updateVal(tP.data,"stopy",r+c*tL.boxMargin,Math.max))},"updateItemBounds")}(0,n.eW)(o,"updateFn"),this.sequenceItems.forEach(o()),this.activations.forEach(o("activation"))},"updateBounds"),insert:(0,n.eW)(function(t,e,a,r){let i=n.SY.getMin(t,a),s=n.SY.getMax(t,a),o=n.SY.getMin(e,r),c=n.SY.getMax(e,r);this.updateVal(tP.data,"startx",i,Math.min),this.updateVal(tP.data,"starty",o,Math.min),this.updateVal(tP.data,"stopx",s,Math.max),this.updateVal(tP.data,"stopy",c,Math.max),this.updateBounds(i,o,s,c)},"insert"),newActivation:(0,n.eW)(function(t,e,a){let r=a.get(t.from),i=tR(t.from).length||0,s=r.x+r.width/2+(i-1)*tL.activationWidth/2;this.activations.push({startx:s,starty:this.verticalPos+2,stopx:s+tL.activationWidth,stopy:void 0,actor:t.from,anchored:tI.anchorElement(e)})},"newActivation"),endActivation:(0,n.eW)(function(t){let e=this.activations.map(function(t){return t.actor}).lastIndexOf(t.from);return this.activations.splice(e,1)[0]},"endActivation"),createLoop:(0,n.eW)(function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},"createLoop"),newLoop:(0,n.eW)(function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},"newLoop"),endLoop:(0,n.eW)(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:(0,n.eW)(function(){return!!this.sequenceItems.length&&this.sequenceItems[this.sequenceItems.length-1].overlap},"isLoopOverlap"),addSectionToLoop:(0,n.eW)(function(t){let e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:tP.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},"addSectionToLoop"),saveVerticalPos:(0,n.eW)(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:(0,n.eW)(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:(0,n.eW)(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=n.SY.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:(0,n.eW)(function(){return this.verticalPos},"getVerticalPos"),getBounds:(0,n.eW)(function(){return{bounds:this.data,models:this.models}},"getBounds")},t_=(0,n.eW)(async function(t,e){tP.bumpVerticalPos(tL.boxMargin),e.height=tL.boxMargin,e.starty=tP.getVerticalPos();let a=(0,r.kc)();a.x=e.startx,a.y=e.starty,a.width=e.width||tL.width,a.class="note";let i=t.append("g"),s=tI.drawRect(i,a),o=(0,r.AD)();o.x=e.startx,o.y=e.starty,o.width=a.width,o.dy="1em",o.text=e.message,o.class="noteText",o.fontFamily=tL.noteFontFamily,o.fontSize=tL.noteFontSize,o.fontWeight=tL.noteFontWeight,o.anchor=tL.noteAlign,o.textMargin=tL.noteMargin,o.valign="center";let c=Math.round(((0,n.l0)(o.text)?await Q(i,o):tt(i,o)).map(t=>(t._groups||t)[0][0].getBBox().height).reduce((t,e)=>t+e));s.attr("height",c+2*tL.noteMargin),e.height+=c+2*tL.noteMargin,tP.bumpVerticalPos(c+2*tL.noteMargin),e.stopy=e.starty+c+2*tL.noteMargin,e.stopx=e.startx+a.width,tP.insert(e.startx,e.starty,e.stopx,e.stopy),tP.models.addNote(e)},"drawNote"),tk=(0,n.eW)(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont"),tv=(0,n.eW)(t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),"noteFont"),tM=(0,n.eW)(t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight}),"actorFont");async function tA(t,e){let a;tP.bumpVerticalPos(10);let{startx:r,stopx:i,message:o}=e,c=n.SY.splitBreaks(o).length,l=(0,n.l0)(o),d=l?await (0,n.nH)(o,(0,n.nV)()):s.w8.calculateTextDimensions(o,tk(tL));if(!l){let t=d.height/c;e.height+=t,tP.bumpVerticalPos(t)}let h=d.height-10,p=d.width;if(r===i){a=tP.getVerticalPos()+h,!tL.rightAngles&&(h+=tL.boxMargin,a=tP.getVerticalPos()+h),h+=30;let t=n.SY.getMax(p/2,tL.width/2);tP.insert(r-t,tP.getVerticalPos()-10+h,i+t,tP.getVerticalPos()+30+h)}else h+=tL.boxMargin,a=tP.getVerticalPos()+h,tP.insert(r,a-10,i,a);return tP.bumpVerticalPos(h),e.height+=h,e.stopy=e.starty+e.height,tP.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),a}(0,n.eW)(tA,"boundMessage");var tN=(0,n.eW)(async function(t,e,a,i){let o;let{startx:c,stopx:l,starty:d,message:h,type:p,sequenceIndex:g,sequenceVisible:u}=e,x=s.w8.calculateTextDimensions(h,tk(tL)),y=(0,r.AD)();y.x=c,y.y=d+10,y.width=l-c,y.class="messageText",y.dy="1em",y.text=h,y.fontFamily=tL.messageFontFamily,y.fontSize=tL.messageFontSize,y.fontWeight=tL.messageFontWeight,y.anchor=tL.messageAlign,y.valign="center",y.textMargin=tL.wrapPadding,y.tspan=!1,(0,n.l0)(y.text)?await Q(t,y,{startx:c,stopx:l,starty:a}):tt(t,y);let m=x.width;c===l?o=tL.rightAngles?t.append("path").attr("d",`M ${c},${a} H ${c+n.SY.getMax(tL.width/2,m/2)} V ${a+25} H ${c}`):t.append("path").attr("d","M "+c+","+a+" C "+(c+60)+","+(a-10)+" "+(c+60)+","+(a+30)+" "+c+","+(a+20)):((o=t.append("line")).attr("x1",c),o.attr("y1",a),o.attr("x2",l),o.attr("y2",a)),p===i.db.LINETYPE.DOTTED||p===i.db.LINETYPE.DOTTED_CROSS||p===i.db.LINETYPE.DOTTED_POINT||p===i.db.LINETYPE.DOTTED_OPEN||p===i.db.LINETYPE.BIDIRECTIONAL_DOTTED?(o.style("stroke-dasharray","3, 3"),o.attr("class","messageLine1")):o.attr("class","messageLine0");let b="";tL.arrowMarkerAbsolute&&(b=(b=(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),o.attr("stroke-width",2),o.attr("stroke","none"),o.style("fill","none"),(p===i.db.LINETYPE.SOLID||p===i.db.LINETYPE.DOTTED)&&o.attr("marker-end","url("+b+"#arrowhead)"),(p===i.db.LINETYPE.BIDIRECTIONAL_SOLID||p===i.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(o.attr("marker-start","url("+b+"#arrowhead)"),o.attr("marker-end","url("+b+"#arrowhead)")),(p===i.db.LINETYPE.SOLID_POINT||p===i.db.LINETYPE.DOTTED_POINT)&&o.attr("marker-end","url("+b+"#filled-head)"),(p===i.db.LINETYPE.SOLID_CROSS||p===i.db.LINETYPE.DOTTED_CROSS)&&o.attr("marker-end","url("+b+"#crosshead)"),(u||tL.showSequenceNumbers)&&(o.attr("marker-start","url("+b+"#sequencenumber)"),t.append("text").attr("x",c).attr("y",a+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(g))},"drawMessage"),tS=(0,n.eW)(function(t,e,a,r,i,s,o){let c,l=0,d=0;let h=0;for(let t of r){let r=e.get(t),s=r.box;c&&c!=s&&(!o&&tP.models.addBox(c),d+=tL.boxMargin+c.margin),s&&s!=c&&(!o&&(s.x=l+d,s.y=i),d+=s.margin),r.width=r.width||tL.width,r.height=n.SY.getMax(r.height||tL.height,tL.height),r.margin=r.margin||tL.actorMargin,h=n.SY.getMax(h,r.height),a.get(r.name)&&(d+=r.width/2),r.x=l+d,r.starty=tP.getVerticalPos(),tP.insert(r.x,i,r.x+r.width,r.height),l+=r.width+d,r.box&&(r.box.width=l+s.margin-r.box.x),d=r.margin,c=r.box,tP.models.addActor(r)}c&&!o&&tP.models.addBox(c),tP.bumpVerticalPos(h)},"addActorRenderingData"),tO=(0,n.eW)(async function(t,e,a,r){if(r){let r=0;for(let i of(tP.bumpVerticalPos(2*tL.boxMargin),a)){let a=e.get(i);!a.stopy&&(a.stopy=tP.getVerticalPos());let s=await tI.drawActor(t,a,tL,!0);r=n.SY.getMax(r,s)}tP.bumpVerticalPos(r+tL.boxMargin)}else for(let r of a){let a=e.get(r);await tI.drawActor(t,a,tL,!1)}},"drawActors"),tD=(0,n.eW)(function(t,e,a,r){let i=0,s=0;for(let n of a){let a=e.get(n),o=tF(a),c=tI.drawPopup(t,a,o,tL,tL.forceMenus,r);c.height>i&&(i=c.height),c.width+a.x>s&&(s=c.width+a.x)}return{maxHeight:i,maxWidth:s}},"drawActorsPopup"),tW=(0,n.eW)(function(t){(0,n.Yc)(tL,t),t.fontFamily&&(tL.actorFontFamily=tL.noteFontFamily=tL.messageFontFamily=t.fontFamily),t.fontSize&&(tL.actorFontSize=tL.noteFontSize=tL.messageFontSize=t.fontSize),t.fontWeight&&(tL.actorFontWeight=tL.noteFontWeight=tL.messageFontWeight=t.fontWeight)},"setConf"),tR=(0,n.eW)(function(t){return tP.activations.filter(function(e){return e.actor===t})},"actorActivations"),tY=(0,n.eW)(function(t,e){let a=e.get(t),r=tR(t),i=r.reduce(function(t,e){return n.SY.getMin(t,e.startx)},a.x+a.width/2-1);return[i,r.reduce(function(t,e){return n.SY.getMax(t,e.stopx)},a.x+a.width/2+1)]},"activationBounds");function tC(t,e,a,r,i){tP.bumpVerticalPos(a);let o=r;if(e.id&&e.message&&t[e.id]){let a=t[e.id].width,i=tk(tL);e.message=s.w8.wrapLabel(`[${e.message}]`,a-2*tL.wrapPadding,i),e.width=a,e.wrap=!0;let c=s.w8.calculateTextDimensions(e.message,i),l=n.SY.getMax(c.height,tL.labelBoxHeight);o=r+l,n.cM.debug(`${l} - ${e.message}`)}i(e),tP.bumpVerticalPos(o)}function tB(t,e,a,r,i,s,o){function c(a,r){a.x{t.add(e.from),t.add(e.to)}),y=y.filter(e=>t.has(e))}tS(h,p,g,y,0,m,!1);let w=await tU(m,p,E,r);function I(t,e){let a=tP.endActivation(t);a.starty+18>e&&(a.starty=e-6,e+=12),tI.drawActivation(h,a,e,tL,tR(t.from).length),tP.insert(a.startx,e-10,a.stopx,e)}tI.insertArrowHead(h),tI.insertArrowCrossHead(h),tI.insertArrowFilledHead(h),tI.insertSequenceNumber(h),(0,n.eW)(I,"activeEnd");let L=1,P=1,_=[],k=[],v=0;for(let t of m){let e,a,i;switch(t.type){case r.db.LINETYPE.NOTE:tP.resetVerticalPos(),a=t.noteModel,await t_(h,a);break;case r.db.LINETYPE.ACTIVE_START:tP.newActivation(t,h,p);break;case r.db.LINETYPE.ACTIVE_END:I(t,tP.getVerticalPos());break;case r.db.LINETYPE.LOOP_START:tC(w,t,tL.boxMargin,tL.boxMargin+tL.boxTextMargin,t=>tP.newLoop(t));break;case r.db.LINETYPE.LOOP_END:e=tP.endLoop(),await tI.drawLoop(h,e,"loop",tL),tP.bumpVerticalPos(e.stopy-tP.getVerticalPos()),tP.models.addLoop(e);break;case r.db.LINETYPE.RECT_START:tC(w,t,tL.boxMargin,tL.boxMargin,t=>tP.newLoop(void 0,t.message));break;case r.db.LINETYPE.RECT_END:e=tP.endLoop(),k.push(e),tP.models.addLoop(e),tP.bumpVerticalPos(e.stopy-tP.getVerticalPos());break;case r.db.LINETYPE.OPT_START:tC(w,t,tL.boxMargin,tL.boxMargin+tL.boxTextMargin,t=>tP.newLoop(t));break;case r.db.LINETYPE.OPT_END:e=tP.endLoop(),await tI.drawLoop(h,e,"opt",tL),tP.bumpVerticalPos(e.stopy-tP.getVerticalPos()),tP.models.addLoop(e);break;case r.db.LINETYPE.ALT_START:tC(w,t,tL.boxMargin,tL.boxMargin+tL.boxTextMargin,t=>tP.newLoop(t));break;case r.db.LINETYPE.ALT_ELSE:tC(w,t,tL.boxMargin+tL.boxTextMargin,tL.boxMargin,t=>tP.addSectionToLoop(t));break;case r.db.LINETYPE.ALT_END:e=tP.endLoop(),await tI.drawLoop(h,e,"alt",tL),tP.bumpVerticalPos(e.stopy-tP.getVerticalPos()),tP.models.addLoop(e);break;case r.db.LINETYPE.PAR_START:case r.db.LINETYPE.PAR_OVER_START:tC(w,t,tL.boxMargin,tL.boxMargin+tL.boxTextMargin,t=>tP.newLoop(t)),tP.saveVerticalPos();break;case r.db.LINETYPE.PAR_AND:tC(w,t,tL.boxMargin+tL.boxTextMargin,tL.boxMargin,t=>tP.addSectionToLoop(t));break;case r.db.LINETYPE.PAR_END:e=tP.endLoop(),await tI.drawLoop(h,e,"par",tL),tP.bumpVerticalPos(e.stopy-tP.getVerticalPos()),tP.models.addLoop(e);break;case r.db.LINETYPE.AUTONUMBER:L=t.message.start||L,P=t.message.step||P,t.message.visible?r.db.enableSequenceNumbers():r.db.disableSequenceNumbers();break;case r.db.LINETYPE.CRITICAL_START:tC(w,t,tL.boxMargin,tL.boxMargin+tL.boxTextMargin,t=>tP.newLoop(t));break;case r.db.LINETYPE.CRITICAL_OPTION:tC(w,t,tL.boxMargin+tL.boxTextMargin,tL.boxMargin,t=>tP.addSectionToLoop(t));break;case r.db.LINETYPE.CRITICAL_END:e=tP.endLoop(),await tI.drawLoop(h,e,"critical",tL),tP.bumpVerticalPos(e.stopy-tP.getVerticalPos()),tP.models.addLoop(e);break;case r.db.LINETYPE.BREAK_START:tC(w,t,tL.boxMargin,tL.boxMargin+tL.boxTextMargin,t=>tP.newLoop(t));break;case r.db.LINETYPE.BREAK_END:e=tP.endLoop(),await tI.drawLoop(h,e,"break",tL),tP.bumpVerticalPos(e.stopy-tP.getVerticalPos()),tP.models.addLoop(e);break;default:try{(i=t.msgModel).starty=tP.getVerticalPos(),i.sequenceIndex=L,i.sequenceVisible=r.db.showSequenceNumbers();let e=await tA(h,i);tB(t,i,e,v,p,g,u),_.push({messageModel:i,lineStartY:e}),tP.models.addMessage(i)}catch(t){n.cM.error("error while drawing message",t)}}[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN,r.db.LINETYPE.SOLID,r.db.LINETYPE.DOTTED,r.db.LINETYPE.SOLID_CROSS,r.db.LINETYPE.DOTTED_CROSS,r.db.LINETYPE.SOLID_POINT,r.db.LINETYPE.DOTTED_POINT,r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(t.type)&&(L+=P),v++}for(let t of(n.cM.debug("createdActors",g),n.cM.debug("destroyedActors",u),await tO(h,p,y,!1),_))await tN(h,t.messageModel,t.lineStartY,r);for(let t of(tL.mirrorActors&&await tO(h,p,y,!0),k.forEach(t=>tI.drawBackgroundRect(h,t)),tr(h,p,y,tL),tP.models.boxes))t.height=tP.getVerticalPos()-t.y,tP.insert(t.x,t.y,t.x+t.width,t.height),t.startx=t.x,t.starty=t.y,t.stopx=t.startx+t.width,t.stopy=t.starty+t.height,t.stroke="rgb(0,0,0, 0.5)",tI.drawBox(h,t,tL);f&&tP.bumpVerticalPos(tL.boxMargin);let M=tD(h,p,y,d),{bounds:A}=tP.getBounds();void 0===A.startx&&(A.startx=0),void 0===A.starty&&(A.starty=0),void 0===A.stopx&&(A.stopx=0),void 0===A.stopy&&(A.stopy=0);let N=A.stopy-A.starty;N{let a=tk(tL),r=e.actorKeys.reduce((e,a)=>e+=t.get(a).width+(t.get(a).margin||0),0);r-=2*tL.boxTextMargin,e.wrap&&(e.name=s.w8.wrapLabel(e.name,r-2*tL.wrapPadding,a));let o=s.w8.calculateTextDimensions(e.name,a);i=n.SY.getMax(o.height,i);let c=n.SY.getMax(r,o.width+2*tL.wrapPadding);if(e.margin=tL.boxTextMargin,rt.textMaxHeight=i),n.SY.getMax(r,tL.height)}(0,n.eW)(tq,"calculateActorMargins");var tz=(0,n.eW)(async function(t,e,a){let r=e.get(t.from),i=e.get(t.to),o=r.x,c=i.x,l=t.wrap&&t.message,d=(0,n.l0)(t.message)?await (0,n.nH)(t.message,(0,n.nV)()):s.w8.calculateTextDimensions(l?s.w8.wrapLabel(t.message,tL.width,tv(tL)):t.message,tv(tL)),h={width:l?tL.width:n.SY.getMax(tL.width,d.width+2*tL.noteMargin),height:0,startx:r.x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===a.db.PLACEMENT.RIGHTOF?(h.width=l?n.SY.getMax(tL.width,d.width):n.SY.getMax(r.width/2+i.width/2,d.width+2*tL.noteMargin),h.startx=o+(r.width+tL.actorMargin)/2):t.placement===a.db.PLACEMENT.LEFTOF?(h.width=l?n.SY.getMax(tL.width,d.width+2*tL.noteMargin):n.SY.getMax(r.width/2+i.width/2,d.width+2*tL.noteMargin),h.startx=o-h.width+(r.width-tL.actorMargin)/2):t.to===t.from?(d=s.w8.calculateTextDimensions(l?s.w8.wrapLabel(t.message,n.SY.getMax(tL.width,r.width),tv(tL)):t.message,tv(tL)),h.width=l?n.SY.getMax(tL.width,r.width):n.SY.getMax(r.width,tL.width,d.width+2*tL.noteMargin),h.startx=o+(r.width-h.width)/2):(h.width=Math.abs(o+r.width/2-(c+i.width/2))+tL.actorMargin,h.startx=o2,g=(0,n.eW)(t=>l?-t:t,"adjustValue");t.from===t.to?h=d:(t.activate&&!p&&(h+=g(tL.activationWidth/2-1)),![a.db.LINETYPE.SOLID_OPEN,a.db.LINETYPE.DOTTED_OPEN].includes(t.type)&&(h+=g(3)),[a.db.LINETYPE.BIDIRECTIONAL_SOLID,a.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(t.type)&&(d-=g(3)));let u=[r,i,o,c],x=Math.abs(d-h);t.wrap&&t.message&&(t.message=s.w8.wrapLabel(t.message,n.SY.getMax(x+2*tL.wrapPadding,tL.width),tk(tL)));let y=s.w8.calculateTextDimensions(t.message,tk(tL));return{width:n.SY.getMax(t.wrap?0:y.width+2*tL.wrapPadding,x+2*tL.wrapPadding,tL.width),height:0,startx:d,stopx:h,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,u),toBounds:Math.max.apply(null,u)}},"buildMessageModel"),tU=(0,n.eW)(async function(t,e,a,r){let i,o,c;let l={},d=[];for(let a of t){switch(a.id=s.w8.random({length:10}),a.type){case r.db.LINETYPE.LOOP_START:case r.db.LINETYPE.ALT_START:case r.db.LINETYPE.OPT_START:case r.db.LINETYPE.PAR_START:case r.db.LINETYPE.PAR_OVER_START:case r.db.LINETYPE.CRITICAL_START:case r.db.LINETYPE.BREAK_START:d.push({id:a.id,msg:a.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case r.db.LINETYPE.ALT_ELSE:case r.db.LINETYPE.PAR_AND:case r.db.LINETYPE.CRITICAL_OPTION:a.message&&(l[(i=d.pop()).id]=i,l[a.id]=i,d.push(i));break;case r.db.LINETYPE.LOOP_END:case r.db.LINETYPE.ALT_END:case r.db.LINETYPE.OPT_END:case r.db.LINETYPE.PAR_END:case r.db.LINETYPE.CRITICAL_END:case r.db.LINETYPE.BREAK_END:l[(i=d.pop()).id]=i;break;case r.db.LINETYPE.ACTIVE_START:{let t=e.get(a.from?a.from:a.to.actor),r=tR(a.from?a.from:a.to.actor).length,i=t.x+t.width/2+(r-1)*tL.activationWidth/2,s={startx:i,stopx:i+tL.activationWidth,actor:a.from,enabled:!0};tP.activations.push(s)}break;case r.db.LINETYPE.ACTIVE_END:{let t=tP.activations.map(t=>t.actor).lastIndexOf(a.from);tP.activations.splice(t,1).splice(0,1)}}void 0!==a.placement?(o=await tz(a,e,r),a.noteModel=o,d.forEach(t=>{(i=t).from=n.SY.getMin(i.from,o.startx),i.to=n.SY.getMax(i.to,o.startx+o.width),i.width=n.SY.getMax(i.width,Math.abs(i.from-i.to))-tL.labelBoxWidth})):(c=tH(a,e,r),a.msgModel=c,c.startx&&c.stopx&&d.length>0&&d.forEach(t=>{if(i=t,c.startx===c.stopx){let t=e.get(a.from),r=e.get(a.to);i.from=n.SY.getMin(t.x-c.width/2,t.x-t.width/2,i.from),i.to=n.SY.getMax(r.x+c.width/2,r.x+t.width/2,i.to),i.width=n.SY.getMax(i.width,Math.abs(i.to-i.from))-tL.labelBoxWidth}else i.from=n.SY.getMin(c.startx,i.from),i.to=n.SY.getMax(c.stopx,i.to),i.width=n.SY.getMax(i.width,c.width)-tL.labelBoxWidth}))}return tP.activations=[],n.cM.debug("Loop type widths:",l),l},"calculateLoopBounds"),tj={parser:l,db:H,renderer:{bounds:tP,drawActors:tO,drawActorsPopup:tD,setConf:tW,draw:t$},styles:U,init:(0,n.eW)(({wrap:t})=>{H.setWrap(t)},"init")}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/49659d4b.4608bdae.js b/pr-preview/pr-238/assets/js/49659d4b.4608bdae.js new file mode 100644 index 0000000000..29c4888c21 --- /dev/null +++ b/pr-preview/pr-238/assets/js/49659d4b.4608bdae.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8611"],{2757:function(e,t,r){r.r(t),r.d(t,{metadata:()=>n,contentTitle:()=>o,default:()=>m,assets:()=>l,toc:()=>u,frontMatter:()=>c});var n=JSON.parse('{"id":"exam-exercises/exam-exercises-java2/queries/queries","title":"Abfragen","description":"","source":"@site/docs/exam-exercises/exam-exercises-java2/queries/queries.mdx","sourceDirName":"exam-exercises/exam-exercises-java2/queries","slug":"/exam-exercises/exam-exercises-java2/queries/","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java2/queries/queries.mdx","tags":[],"version":"current","sidebarPosition":20,"frontMatter":{"title":"Abfragen","description":"","sidebar_position":20},"sidebar":"examExercisesSidebar","previous":{"title":"Videosammlung","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/video-collection"},"next":{"title":"St\xe4dte","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/cities"}}'),i=r("85893"),s=r("50065"),a=r("94301");let c={title:"Abfragen",description:"",sidebar_position:20},o=void 0,l={},u=[];function d(e){return(0,i.jsx)(a.Z,{})}function m(e={}){let{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},94301:function(e,t,r){r.d(t,{Z:()=>g});var n=r("85893");r("67294");var i=r("67026"),s=r("69369"),a=r("83012"),c=r("43115"),o=r("63150"),l=r("96025"),u=r("34403");let d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function m(e){let{href:t,children:r}=e;return(0,n.jsx)(a.Z,{href:t,className:(0,i.Z)("card padding--lg",d.cardContainer),children:r})}function p(e){let{href:t,icon:r,title:s,description:a}=e;return(0,n.jsxs)(m,{href:t,children:[(0,n.jsxs)(u.Z,{as:"h2",className:(0,i.Z)("text--truncate",d.cardTitle),title:s,children:[r," ",s]}),a&&(0,n.jsx)("p",{className:(0,i.Z)("text--truncate",d.cardDescription),title:a,children:a})]})}function x(e){let{item:t}=e,r=(0,s.LM)(t),i=function(){let{selectMessage:e}=(0,c.c)();return t=>e(t,(0,l.I)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return r?(0,n.jsx)(p,{href:r,icon:"\uD83D\uDDC3\uFE0F",title:t.label,description:t.description??i(t.items.length)}):null}function f(e){let{item:t}=e,r=(0,o.Z)(t.href)?"\uD83D\uDCC4\uFE0F":"\uD83D\uDD17",i=(0,s.xz)(t.docId??void 0);return(0,n.jsx)(p,{href:t.href,icon:r,title:t.label,description:t.description??i?.description})}function h(e){let{item:t}=e;switch(t.type){case"link":return(0,n.jsx)(f,{item:t});case"category":return(0,n.jsx)(x,{item:t});default:throw Error(`unknown item type ${JSON.stringify(t)}`)}}function j(e){let{className:t}=e,r=(0,s.jA)();return(0,n.jsx)(g,{items:r.items,className:t})}function g(e){let{items:t,className:r}=e;if(!t)return(0,n.jsx)(j,{...e});let a=(0,s.MN)(t);return(0,n.jsx)("section",{className:(0,i.Z)("row",r),children:a.map((e,t)=>(0,n.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,n.jsx)(h,{item:e})},t))})}},43115:function(e,t,r){r.d(t,{c:function(){return o}});var n=r(67294),i=r(2933);let s=["zero","one","two","few","many","other"];function a(e){return s.filter(t=>e.includes(t))}let c={locale:"en",pluralForms:a(["one","other"]),select:e=>1===e?"one":"other"};function o(){let e=function(){let{i18n:{currentLocale:e}}=(0,i.Z)();return(0,n.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:a(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${t.message} +`),c}},[e])}();return{selectMessage:(t,r)=>(function(e,t,r){let n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);let i=r.select(t);return n[Math.min(r.pluralForms.indexOf(i),n.length-1)]})(r,t,e)}}},50065:function(e,t,r){r.d(t,{Z:function(){return c},a:function(){return a}});var n=r(67294);let i={},s=n.createContext(i);function a(e){let t=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/497463a6.835a982a.js b/pr-preview/pr-238/assets/js/497463a6.835a982a.js new file mode 100644 index 0000000000..4375b06bef --- /dev/null +++ b/pr-preview/pr-238/assets/js/497463a6.835a982a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4746"],{38842:function(e){e.exports=JSON.parse('{"tag":{"label":"java-stream-api","permalink":"/java-docs/pr-preview/pr-238/tags/java-stream-api","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":7,"items":[{"id":"documentation/java-stream-api","title":"Die Java Stream API","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/java-stream-api"},{"id":"exercises/java-stream-api/java-stream-api","title":"Die Java Stream API","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/java-stream-api/"},{"id":"exam-exercises/exam-exercises-java2/queries/measurement-data","title":"Messdaten","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/measurement-data"},{"id":"exam-exercises/exam-exercises-java2/queries/tanks","title":"Panzer","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/tanks"},{"id":"exam-exercises/exam-exercises-java2/queries/planets","title":"Planeten","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/planets"},{"id":"exam-exercises/exam-exercises-java2/queries/phone-store","title":"Smartphone-Shop","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/phone-store"},{"id":"exam-exercises/exam-exercises-java2/queries/cities","title":"St\xe4dte","description":"","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/cities"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/49909ba3.d952a5bb.js b/pr-preview/pr-238/assets/js/49909ba3.d952a5bb.js new file mode 100644 index 0000000000..b756e77ee6 --- /dev/null +++ b/pr-preview/pr-238/assets/js/49909ba3.d952a5bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7928"],{91788:function(e,n,i){i.r(n),i.d(n,{metadata:()=>t,contentTitle:()=>c,default:()=>d,assets:()=>l,toc:()=>u,frontMatter:()=>a});var t=JSON.parse('{"id":"documentation/cases","title":"Verzweigungen","description":"","source":"@site/docs/documentation/cases.md","sourceDirName":"documentation","slug":"/documentation/cases","permalink":"/java-docs/pr-preview/pr-238/documentation/cases","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/cases.md","tags":[{"inline":true,"label":"control-structures","permalink":"/java-docs/pr-preview/pr-238/tags/control-structures"},{"inline":true,"label":"cases","permalink":"/java-docs/pr-preview/pr-238/tags/cases"}],"version":"current","sidebarPosition":95,"frontMatter":{"title":"Verzweigungen","description":"","sidebar_position":95,"tags":["control-structures","cases"]},"sidebar":"documentationSidebar","previous":{"title":"Konsolenanwendungen","permalink":"/java-docs/pr-preview/pr-238/documentation/console-applications"},"next":{"title":"Schleifen","permalink":"/java-docs/pr-preview/pr-238/documentation/loops"}}'),s=i("85893"),r=i("50065");let a={title:"Verzweigungen",description:"",sidebar_position:95,tags:["control-structures","cases"]},c=void 0,l={},u=[{value:"Einfache Verzweigungen",id:"einfache-verzweigungen",level:2},{value:"Kaskadierte Verzweigungen",id:"kaskadierte-verzweigungen",level:2},{value:"Bedingte Zuweisungen",id:"bedingte-zuweisungen",level:2},{value:"Mehrfachverzweigungen",id:"mehrfachverzweigungen",level:2}];function o(e){let n={admonition:"admonition",code:"code",em:"em",h2:"h2",p:"p",pre:"pre",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["Mit Hilfe von Verzweigungen k\xf6nnen unterschiedliche Anweisungsbl\xf6cke ausgef\xfchrt\nwerden. Verzweigungen sind - genau wie Schleifen - wesentliche Bestandteile der\nProgrammierung un werden auch als ",(0,s.jsx)(n.em,{children:"Kontrollstrukturen"})," bezeichnet."]}),"\n",(0,s.jsx)(n.h2,{id:"einfache-verzweigungen",children:"Einfache Verzweigungen"}),"\n",(0,s.jsxs)(n.p,{children:["Die if-Verzweigung ist eine Anweisung, die abh\xe4ngig von einer Bedingung zwischen\nunterschiedlichen Anweisungsbl\xf6cken ausw\xe4hlt: Ist die Bedingung wahr, wird der\nAnweisungsblock direkt nach der Bedingung ausgef\xfchrt, ansonsten wird der\nAnweisungsblock nach ",(0,s.jsx)(n.code,{children:"else"})," ausgef\xfchrt."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:"public class MainClass {\n\n public static void main(String[] args) {\n int a = 3, b = 4, c;\n\n if (a > b) {\n c = a - b;\n } else {\n c = b - a;\n }\n\n System.out.println(c);\n }\n\n}\n"})}),"\n",(0,s.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,s.jsx)(n.p,{children:"Der else-Zweig ist optional, kann also weggelassen werden."})}),"\n",(0,s.jsx)(n.h2,{id:"kaskadierte-verzweigungen",children:"Kaskadierte Verzweigungen"}),"\n",(0,s.jsx)(n.p,{children:"Mehrfachverzweigungen k\xf6nnen mit Hilfe einer if-else-if-Leiter abgebildet\nwerden. Die if-else-if-Leiter verschachtelt mehrere if-Anweisungen zu einer\nsogenannten kaskadierten Verzweigung."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n int amount = 6;\n\n if (amount >= 10) {\n System.out.println("viel");\n } else if (amount == 0) {\n System.out.println("nichts");\n } else if (amount > 0 && amount <= 5) {\n System.out.println("wenig");\n } else if (amount < 0) {\n System.out.println("nicht definiert");\n } else {\n System.out.println("irgendwas zwischen wenig und viel");\n }\n }\n\n}\n'})}),"\n",(0,s.jsx)(n.h2,{id:"bedingte-zuweisungen",children:"Bedingte Zuweisungen"}),"\n",(0,s.jsx)(n.p,{children:"Wird eine if-Verzweigung f\xfcr eine Wertzuweisung verwendet, spricht man von einer\nbedingten Zuweisung. Zus\xe4tzlich zur ausf\xfchrlichen Schreibweise existiert f\xfcr\nbedingte Zuweisungen auch eine Kurzschreibweise."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:"public class MainClass {\n\n public static void main(String[] args) {\n int x = 1;\n int y = 2;\n int z;\n\n /* ausf\xfchrliche Schreibweise */\n if (x > y) {\n z = 3;\n } else {\n z = 4;\n }\n System.out.println(z);\n\n /* Kurzschreibweise */\n z = (x > y) ? 3 : 4;\n System.out.println(z);\n }\n\n}\n"})}),"\n",(0,s.jsx)(n.admonition,{title:"Hinweis",type:"danger",children:(0,s.jsx)(n.p,{children:"Die Kurzschreibweise sollte verantwortungsvoll verwendet werden, da die\nLesbarkeit dadurch eventuell erschwert wird."})}),"\n",(0,s.jsx)(n.h2,{id:"mehrfachverzweigungen",children:"Mehrfachverzweigungen"}),"\n",(0,s.jsxs)(n.p,{children:["Mehrfachverzweigungen k\xf6nnen entweder mit Hilfe von if-else-if-Leitern oder mit\nHilfe der switch-case-Anweisung realisiert werden. Tritt ein Fall ein, werden\nalle Anweisungen bis zum n\xe4chsten ",(0,s.jsx)(n.code,{children:"break"})," ausgef\xfchrt. Durch Weglassen von\n",(0,s.jsx)(n.code,{children:"break"})," k\xf6nnen unterschiedliche F\xe4lle gleich behandelt werden. Der default-Block\nwird immer dann ausgef\xfchrt, wenn keiner der aufgef\xfchrten F\xe4lle eintritt."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n String color = "r";\n switch (color) {\n case "r":\n case "R":\n System.out.println("rot");\n break;\n case "g":\n case "G":\n System.out.println("gr\xfcn");\n break;\n case "b":\n case "B":\n System.out.println("blau");\n break;\n default:\n break;\n }\n }\n\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Seit Java 14 beheben Switch-Ausdr\xfccke einige Ungereimtheiten der klassischen\nswitch-case-Anweisung und erm\xf6glichen eine elegantere Syntax."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n String color = "r";\n\n String colorText = switch (color) {\n case "r", "R" -> "rot";\n case "g", "G" -> "gr\xfcn";\n case "b", "B" -> "blau";\n default -> "";\n };\n\n System.out.println(colorText);\n }\n\n}\n'})})]})}function d(e={}){let{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},50065:function(e,n,i){i.d(n,{Z:function(){return c},a:function(){return a}});var t=i(67294);let s={},r=t.createContext(s);function a(e){let n=t.useContext(r);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/4b4016e6.b85ed807.js b/pr-preview/pr-238/assets/js/4b4016e6.b85ed807.js new file mode 100644 index 0000000000..2bef8f6f11 --- /dev/null +++ b/pr-preview/pr-238/assets/js/4b4016e6.b85ed807.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1229"],{43397:function(e,n,t){t.r(n),t.d(n,{metadata:()=>r,contentTitle:()=>o,default:()=>d,assets:()=>c,toc:()=>u,frontMatter:()=>l});var r=JSON.parse('{"id":"exercises/console-applications/console-applications02","title":"ConsoleApplications02","description":"","source":"@site/docs/exercises/console-applications/console-applications02.mdx","sourceDirName":"exercises/console-applications","slug":"/exercises/console-applications/console-applications02","permalink":"/java-docs/pr-preview/pr-238/exercises/console-applications/console-applications02","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/console-applications/console-applications02.mdx","tags":[],"version":"current","frontMatter":{"title":"ConsoleApplications02","description":""},"sidebar":"exercisesSidebar","previous":{"title":"ConsoleApplications01","permalink":"/java-docs/pr-preview/pr-238/exercises/console-applications/console-applications01"},"next":{"title":"Verzweigungen","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/"}}'),a=t("85893"),s=t("50065"),i=t("39661");let l={title:"ConsoleApplications02",description:""},o=void 0,c={},u=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2}];function p(e){let n={code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"Erstelle eine ausf\xfchrbare Klasse, welche zwei Ganzzahlen von der Konsole\neinliest, den prozentualen Anteil der ersten von der zweiten Ganzzahl berechnet\nund das Ergebnis auf der Konsole ausgibt."}),"\n",(0,a.jsx)(n.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-console",children:"Gib bitte eine ganze Zahl ein: 5\nGib bitte eine weitere ganze Zahl ein: 50\nEregbnis: 5 von 50 sind 10,00%\n"})}),"\n",(0,a.jsx)(i.Z,{pullRequest:"6",branchSuffix:"console-applications/02"})]})}function d(e={}){let{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(p,{...e})}):p(e)}},5525:function(e,n,t){t.d(n,{Z:()=>i});var r=t("85893");t("67294");var a=t("67026");let s="tabItem_Ymn6";function i(e){let{children:n,hidden:t,className:i}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,a.Z)(s,i),hidden:t,children:n})}},47902:function(e,n,t){t.d(n,{Z:()=>j});var r=t("85893"),a=t("67294"),s=t("67026"),i=t("69599"),l=t("16550"),o=t("32000"),c=t("4520"),u=t("38341"),p=t("76009");function d(e){return a.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||a.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:n,tabValues:t}=e;return t.some(e=>e.value===n)}var f=t("7227");let b="tabList__CuJ",v="tabItem_LNqP";function m(e){let{className:n,block:t,selectedValue:a,selectValue:l,tabValues:o}=e,c=[],{blockElementScrollPositionUntilNextRender:u}=(0,i.o5)(),p=e=>{let n=e.currentTarget,t=o[c.indexOf(n)].value;t!==a&&(u(n),l(t))},d=e=>{let n=null;switch(e.key){case"Enter":p(e);break;case"ArrowRight":{let t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{let t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1]}}n?.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":t},n),children:o.map(e=>{let{value:n,label:t,attributes:i}=e;return(0,r.jsx)("li",{role:"tab",tabIndex:a===n?0:-1,"aria-selected":a===n,ref:e=>c.push(e),onKeyDown:d,onClick:p,...i,className:(0,s.Z)("tabs__item",v,i?.className,{"tabs__item--active":a===n}),children:t??n},n)})})}function g(e){let{lazy:n,children:t,selectedValue:i}=e,l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){let e=l.find(e=>e.props.value===i);return e?(0,a.cloneElement)(e,{className:(0,s.Z)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:l.map((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==i}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,s=function(e){let{values:n,children:t}=e;return(0,a.useMemo)(()=>{let e=n??d(t).map(e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}});return!function(e){let n=(0,u.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,t])}(e),[i,f]=(0,a.useState)(()=>(function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw Error("Docusaurus error: the component requires at least one children component");if(n){if(!h({value:n,tabValues:t}))throw Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let r=t.find(e=>e.default)??t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:s})),[b,v]=function(e){let{queryString:n=!1,groupId:t}=e,r=(0,l.k6)(),s=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t}),i=(0,c._X)(s);return[i,(0,a.useCallback)(e=>{if(!s)return;let n=new URLSearchParams(r.location.search);n.set(s,e),r.replace({...r.location,search:n.toString()})},[s,r])]}({queryString:t,groupId:r}),[m,g]=function(e){var n;let{groupId:t}=e;let r=(n=t)?`docusaurus.tab.${n}`:null,[s,i]=(0,p.Nk)(r);return[s,(0,a.useCallback)(e=>{if(!!r)i.set(e)},[r,i])]}({groupId:r}),x=(()=>{let e=b??m;return h({value:e,tabValues:s})?e:null})();return(0,o.Z)(()=>{x&&f(x)},[x]),{selectedValue:i,selectValue:(0,a.useCallback)(e=>{if(!h({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);f(e),v(e),g(e)},[v,g,s]),tabValues:s}}(e);return(0,r.jsxs)("div",{className:(0,s.Z)("tabs-container",b),children:[(0,r.jsx)(m,{...n,...e}),(0,r.jsx)(g,{...n,...e})]})}function j(e){let n=(0,f.Z)();return(0,r.jsx)(x,{...e,children:d(e.children)},String(n))}},39661:function(e,n,t){t.d(n,{Z:function(){return o}});var r=t(85893);t(67294);var a=t(47902),s=t(5525),i=t(83012),l=t(45056);function o(e){let{pullRequest:n,branchSuffix:t}=e;return(0,r.jsxs)(a.Z,{children:[(0,r.jsxs)(s.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,r.jsx)(l.Z,{language:"console",children:`git switch exercises/${t}`}),(0,r.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${t}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(s.Z,{value:"solution",label:"Solution",children:[(0,r.jsx)(l.Z,{language:"console",children:`git switch solutions/${t}`}),(0,r.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${t}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(s.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,r.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${n}/files?diff=split`,children:["PR#",n]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/4b9029c1.97c6b299.js b/pr-preview/pr-238/assets/js/4b9029c1.97c6b299.js new file mode 100644 index 0000000000..203930db4a --- /dev/null +++ b/pr-preview/pr-238/assets/js/4b9029c1.97c6b299.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1287"],{49373:function(e,n,r){r.r(n),r.d(n,{metadata:()=>s,contentTitle:()=>u,default:()=>h,assets:()=>o,toc:()=>c,frontMatter:()=>l});var s=JSON.parse('{"id":"exercises/generics/generics04","title":"Generics04","description":"","source":"@site/docs/exercises/generics/generics04.mdx","sourceDirName":"exercises/generics","slug":"/exercises/generics/generics04","permalink":"/java-docs/pr-preview/pr-238/exercises/generics/generics04","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/generics/generics04.mdx","tags":[],"version":"current","frontMatter":{"title":"Generics04","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Generics03","permalink":"/java-docs/pr-preview/pr-238/exercises/generics/generics03"},"next":{"title":"Assoziativspeicher (Maps)","permalink":"/java-docs/pr-preview/pr-238/exercises/maps/"}}'),i=r("85893"),a=r("50065"),t=r("39661");let l={title:"Generics04",description:""},u=void 0,o={},c=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Hinweise zur Klasse Tournament",id:"hinweise-zur-klasse-tournament",level:2},{value:"Konsolenausgabe",id:"konsolenausgabe",level:2}];function d(e){let n={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Erstelle die Klassen ",(0,i.jsx)(n.code,{children:"Club"})," und ",(0,i.jsx)(n.code,{children:"Tournament"})," anhand des abgebildeten\nKlassendiagramms"]}),"\n",(0,i.jsx)(n.li,{children:"Erstelle eine ausf\xfchrbare Klasse, welche ein Turnier mit mehreren Vereinen\nerzeugt und die Paarungen ausgibt"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,i.jsx)(n.mermaid,{value:"classDiagram\n Tournament o-- Club\n Tournament o-- Pair~T~\n\n class Pair~T~ {\n <>\n partA: T\n partB: T\n }\n\n class Tournament {\n <>\n title: String\n clubs: List~Club~\n pairs: List~Pair~Club~~\n +addClub(club: Club) void\n +pairs() List~Pair~Club~~\n }\n\n class Club {\n <>\n name: String\n marketValueInMillionEuros: int\n }"}),"\n",(0,i.jsxs)(n.h2,{id:"hinweise-zur-klasse-tournament",children:["Hinweise zur Klasse ",(0,i.jsx)(n.em,{children:"Tournament"})]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Die Methode ",(0,i.jsx)(n.code,{children:"void addClub(club: Club)"})," soll dem Turnier den eingehenden Verein\nhinzuf\xfcgen"]}),"\n",(0,i.jsxs)(n.li,{children:["Die Methode ",(0,i.jsx)(n.code,{children:"List> pairs()"})," soll aus den Vereinen des Turniers\nPaarungen f\xfcr Hin- und R\xfcckspiele bilden und zur\xfcckgeben"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-console",children:"SC Freiburg - Bayern Muenchen\nSC Freiburg - Borussia Dortmund\nBayern Muenchen - SC Freiburg\nBayern Muenchen - Borussia Dortmund\nBorussia Dortmund - SC Freiburg\nBorussia Dortmund - Bayern Muenchen\n"})}),"\n",(0,i.jsx)(t.Z,{pullRequest:"65",branchSuffix:"generics/04"})]})}function h(e={}){let{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},5525:function(e,n,r){r.d(n,{Z:()=>t});var s=r("85893");r("67294");var i=r("67026");let a="tabItem_Ymn6";function t(e){let{children:n,hidden:r,className:t}=e;return(0,s.jsx)("div",{role:"tabpanel",className:(0,i.Z)(a,t),hidden:r,children:n})}},47902:function(e,n,r){r.d(n,{Z:()=>j});var s=r("85893"),i=r("67294"),a=r("67026"),t=r("69599"),l=r("16550"),u=r("32000"),o=r("4520"),c=r("38341"),d=r("76009");function h(e){return i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||i.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function p(e){let{value:n,tabValues:r}=e;return r.some(e=>e.value===n)}var m=r("7227");let b="tabList__CuJ",g="tabItem_LNqP";function f(e){let{className:n,block:r,selectedValue:i,selectValue:l,tabValues:u}=e,o=[],{blockElementScrollPositionUntilNextRender:c}=(0,t.o5)(),d=e=>{let n=e.currentTarget,r=u[o.indexOf(n)].value;r!==i&&(c(n),l(r))},h=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let r=o.indexOf(e.currentTarget)+1;n=o[r]??o[0];break}case"ArrowLeft":{let r=o.indexOf(e.currentTarget)-1;n=o[r]??o[o.length-1]}}n?.focus()};return(0,s.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":r},n),children:u.map(e=>{let{value:n,label:r,attributes:t}=e;return(0,s.jsx)("li",{role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,ref:e=>o.push(e),onKeyDown:h,onClick:d,...t,className:(0,a.Z)("tabs__item",g,t?.className,{"tabs__item--active":i===n}),children:r??n},n)})})}function v(e){let{lazy:n,children:r,selectedValue:t}=e,l=(Array.isArray(r)?r:[r]).filter(Boolean);if(n){let e=l.find(e=>e.props.value===t);return e?(0,i.cloneElement)(e,{className:(0,a.Z)("margin-top--md",e.props.className)}):null}return(0,s.jsx)("div",{className:"margin-top--md",children:l.map((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:r=!1,groupId:s}=e,a=function(e){let{values:n,children:r}=e;return(0,i.useMemo)(()=>{let e=n??h(r).map(e=>{let{props:{value:n,label:r,attributes:s,default:i}}=e;return{value:n,label:r,attributes:s,default:i}});return!function(e){let n=(0,c.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,r])}(e),[t,m]=(0,i.useState)(()=>(function(e){let{defaultValue:n,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let s=r.find(e=>e.default)??r[0];if(!s)throw Error("Unexpected error: 0 tabValues");return s.value})({defaultValue:n,tabValues:a})),[b,g]=function(e){let{queryString:n=!1,groupId:r}=e,s=(0,l.k6)(),a=function(e){let{queryString:n=!1,groupId:r}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:n,groupId:r}),t=(0,o._X)(a);return[t,(0,i.useCallback)(e=>{if(!a)return;let n=new URLSearchParams(s.location.search);n.set(a,e),s.replace({...s.location,search:n.toString()})},[a,s])]}({queryString:r,groupId:s}),[f,v]=function(e){var n;let{groupId:r}=e;let s=(n=r)?`docusaurus.tab.${n}`:null,[a,t]=(0,d.Nk)(s);return[a,(0,i.useCallback)(e=>{if(!!s)t.set(e)},[s,t])]}({groupId:s}),x=(()=>{let e=b??f;return p({value:e,tabValues:a})?e:null})();return(0,u.Z)(()=>{x&&m(x)},[x]),{selectedValue:t,selectValue:(0,i.useCallback)(e=>{if(!p({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);m(e),g(e),v(e)},[g,v,a]),tabValues:a}}(e);return(0,s.jsxs)("div",{className:(0,a.Z)("tabs-container",b),children:[(0,s.jsx)(f,{...n,...e}),(0,s.jsx)(v,{...n,...e})]})}function j(e){let n=(0,m.Z)();return(0,s.jsx)(x,{...e,children:h(e.children)},String(n))}},39661:function(e,n,r){r.d(n,{Z:function(){return u}});var s=r(85893);r(67294);var i=r(47902),a=r(5525),t=r(83012),l=r(45056);function u(e){let{pullRequest:n,branchSuffix:r}=e;return(0,s.jsxs)(i.Z,{children:[(0,s.jsxs)(a.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,s.jsx)(l.Z,{language:"console",children:`git switch exercises/${r}`}),(0,s.jsx)(t.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${r}/Exercise.java`,children:(0,s.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,s.jsxs)(a.Z,{value:"solution",label:"Solution",children:[(0,s.jsx)(l.Z,{language:"console",children:`git switch solutions/${r}`}),(0,s.jsx)(t.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${r}/Exercise.java`,children:(0,s.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,s.jsxs)(a.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,s.jsxs)(t.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${n}/files?diff=split`,children:["PR#",n]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/4bb86d27.e2c1be2a.js b/pr-preview/pr-238/assets/js/4bb86d27.e2c1be2a.js new file mode 100644 index 0000000000..d86f77d601 --- /dev/null +++ b/pr-preview/pr-238/assets/js/4bb86d27.e2c1be2a.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["98"],{87743:function(e,t,n){n.r(t),n.d(t,{metadata:()=>r,contentTitle:()=>c,default:()=>p,assets:()=>l,toc:()=>u,frontMatter:()=>o});var r=JSON.parse('{"id":"exercises/exceptions/exceptions","title":"Ausnahmen (Exceptions)","description":"","source":"@site/docs/exercises/exceptions/exceptions.mdx","sourceDirName":"exercises/exceptions","slug":"/exercises/exceptions/","permalink":"/java-docs/pr-preview/pr-238/exercises/exceptions/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/exceptions/exceptions.mdx","tags":[{"inline":true,"label":"exceptions","permalink":"/java-docs/pr-preview/pr-238/tags/exceptions"}],"version":"current","sidebarPosition":160,"frontMatter":{"title":"Ausnahmen (Exceptions)","description":"","sidebar_position":160,"tags":["exceptions"]},"sidebar":"exercisesSidebar","previous":{"title":"Trees01","permalink":"/java-docs/pr-preview/pr-238/exercises/trees/trees01"},"next":{"title":"Exceptions01","permalink":"/java-docs/pr-preview/pr-238/exercises/exceptions/exceptions01"}}'),i=n("85893"),s=n("50065"),a=n("94301");let o={title:"Ausnahmen (Exceptions)",description:"",sidebar_position:160,tags:["exceptions"]},c=void 0,l={},u=[{value:"\xdcbungsaufgaben",id:"\xfcbungsaufgaben",level:2},{value:"\xdcbungsaufgaben von tutego.de",id:"\xfcbungsaufgaben-von-tutegode",level:2}];function d(e){let t={a:"a",h2:"h2",li:"li",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"\xfcbungsaufgaben",children:"\xdcbungsaufgaben"}),"\n","\n",(0,i.jsx)(a.Z,{}),"\n",(0,i.jsx)(t.h2,{id:"\xfcbungsaufgaben-von-tutegode",children:"\xdcbungsaufgaben von tutego.de"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\xdcbungsaufgabe\n",(0,i.jsx)(t.a,{href:"https://tutego.de/javabuch/aufgaben/exception.html#_die_l%C3%A4ngste_zeile_einer_datei_ermitteln",children:"I-9-1.1.1"}),"\n(ohne java.nio.file.Files)"]}),"\n",(0,i.jsxs)(t.li,{children:["\xdcbungsaufgabe\n",(0,i.jsx)(t.a,{href:"https://tutego.de/javabuch/aufgaben/exception.html#_ausnahmen_ermitteln_lachen_am_laufenden_band",children:"I-9-1.1.2"})]}),"\n",(0,i.jsxs)(t.li,{children:["\xdcbungsaufgabe\n",(0,i.jsx)(t.a,{href:"https://tutego.de/javabuch/aufgaben/exception.html#_string_array_in_int_array_konvertieren_und_nachsichtig_bei_nichtzahlen_sein",children:"I-9-1.1.3"})]}),"\n",(0,i.jsxs)(t.li,{children:["\xdcbungsaufgabe\n",(0,i.jsx)(t.a,{href:"https://tutego.de/javabuch/aufgaben/exception.html#_watt_ist_unm%C3%B6glich_mit_eigener_ausnahme_anzeigen",children:"I-9-1.3.1"})]}),"\n"]})]})}function p(e={}){let{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},94301:function(e,t,n){n.d(t,{Z:()=>b});var r=n("85893");n("67294");var i=n("67026"),s=n("69369"),a=n("83012"),o=n("43115"),c=n("63150"),l=n("96025"),u=n("34403");let d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function p(e){let{href:t,children:n}=e;return(0,r.jsx)(a.Z,{href:t,className:(0,i.Z)("card padding--lg",d.cardContainer),children:n})}function h(e){let{href:t,icon:n,title:s,description:a}=e;return(0,r.jsxs)(p,{href:t,children:[(0,r.jsxs)(u.Z,{as:"h2",className:(0,i.Z)("text--truncate",d.cardTitle),title:s,children:[n," ",s]}),a&&(0,r.jsx)("p",{className:(0,i.Z)("text--truncate",d.cardDescription),title:a,children:a})]})}function f(e){let{item:t}=e,n=(0,s.LM)(t),i=function(){let{selectMessage:e}=(0,o.c)();return t=>e(t,(0,l.I)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return n?(0,r.jsx)(h,{href:n,icon:"\uD83D\uDDC3\uFE0F",title:t.label,description:t.description??i(t.items.length)}):null}function x(e){let{item:t}=e,n=(0,c.Z)(t.href)?"\uD83D\uDCC4\uFE0F":"\uD83D\uDD17",i=(0,s.xz)(t.docId??void 0);return(0,r.jsx)(h,{href:t.href,icon:n,title:t.label,description:t.description??i?.description})}function g(e){let{item:t}=e;switch(t.type){case"link":return(0,r.jsx)(x,{item:t});case"category":return(0,r.jsx)(f,{item:t});default:throw Error(`unknown item type ${JSON.stringify(t)}`)}}function m(e){let{className:t}=e,n=(0,s.jA)();return(0,r.jsx)(b,{items:n.items,className:t})}function b(e){let{items:t,className:n}=e;if(!t)return(0,r.jsx)(m,{...e});let a=(0,s.MN)(t);return(0,r.jsx)("section",{className:(0,i.Z)("row",n),children:a.map((e,t)=>(0,r.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,r.jsx)(g,{item:e})},t))})}},43115:function(e,t,n){n.d(t,{c:function(){return c}});var r=n(67294),i=n(2933);let s=["zero","one","two","few","many","other"];function a(e){return s.filter(t=>e.includes(t))}let o={locale:"en",pluralForms:a(["one","other"]),select:e=>1===e?"one":"other"};function c(){let e=function(){let{i18n:{currentLocale:e}}=(0,i.Z)();return(0,r.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:a(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${t.message} +`),o}},[e])}();return{selectMessage:(t,n)=>(function(e,t,n){let r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);let i=n.select(t);return r[Math.min(n.pluralForms.indexOf(i),r.length-1)]})(n,t,e)}}},50065:function(e,t,n){n.d(t,{Z:function(){return o},a:function(){return a}});var r=n(67294);let i={},s=r.createContext(i);function a(e){let t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/4c886d4e.ea4ed0f4.js b/pr-preview/pr-238/assets/js/4c886d4e.ea4ed0f4.js new file mode 100644 index 0000000000..dd9bdcab03 --- /dev/null +++ b/pr-preview/pr-238/assets/js/4c886d4e.ea4ed0f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4432"],{80231:function(e,n,s){s.r(n),s.d(n,{metadata:()=>i,contentTitle:()=>t,default:()=>p,assets:()=>o,toc:()=>d,frontMatter:()=>l});var i=JSON.parse('{"id":"exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal","title":"Einkaufsportal","description":"","source":"@site/docs/exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal.md","sourceDirName":"exam-exercises/exam-exercises-java2/class-diagrams","slug":"/exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal.md","tags":[{"inline":true,"label":"interfaces","permalink":"/java-docs/pr-preview/pr-238/tags/interfaces"},{"inline":true,"label":"records","permalink":"/java-docs/pr-preview/pr-238/tags/records"},{"inline":true,"label":"inner-classes","permalink":"/java-docs/pr-preview/pr-238/tags/inner-classes"},{"inline":true,"label":"generics","permalink":"/java-docs/pr-preview/pr-238/tags/generics"}],"version":"current","frontMatter":{"title":"Einkaufsportal","description":"","tags":["interfaces","records","inner-classes","generics"]},"sidebar":"examExercisesSidebar","previous":{"title":"Kartenspieler","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/player"},"next":{"title":"Raumstation","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/space-station"}}'),r=s("85893"),a=s("50065");let l={title:"Einkaufsportal",description:"",tags:["interfaces","records","inner-classes","generics"]},t=void 0,o={},d=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Allgemeine Hinweise",id:"allgemeine-hinweise",level:2},{value:"Hinweis zur Klasse Item",id:"hinweis-zur-klasse-item",level:2},{value:"Hinweise zur Klasse ShoppingCart",id:"hinweise-zur-klasse-shoppingcart",level:2},{value:"Hinweise zur Klasse ShoppingPortal",id:"hinweise-zur-klasse-shoppingportal",level:2}];function c(e){let n={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"Setze das abgebildete Klassendiagramm vollst\xe4ndig um. Erstelle zum Testen eine\nausf\xfchrbare Klasse und/oder eine Testklasse."}),"\n",(0,r.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,r.jsx)(n.mermaid,{value:"classDiagram\n Sellable <|.. Product : implements\n ShoppingPortal o-- ShoppingCart~T extends Sellable~\n ShoppingCart *-- Item\n\n class ShoppingCart~T extends Sellable~ {\n -items: List~Item~ #123;final#125;\n +ShoppingCart()\n +addItem(sellable: T, amount: int) void\n +removeItem(sellable: T) void\n +getTotalInEuro() double\n }\n\n class Item {\n -sellable: T #123;final#125;\n -amount: int #123;final#125;\n -Item(sellable: T, amount: int)\n +getSubTotalInEuro() double\n }\n\n class Sellable {\n <>\n +priceInEuro() double\n }\n\n class Product {\n <>\n description: String\n priceInEuro: double\n }\n\n class ShoppingPortal {\n <>\n user: String\n shoppingCart: ShoppingCart~Product~\n +addProductToShoppingCart(product: Product, amount: int) void\n +removeProductFromShoppingCart(product: Product) void\n +clearShoppingCart() void\n }"}),"\n",(0,r.jsx)(n.h2,{id:"allgemeine-hinweise",children:"Allgemeine Hinweise"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Aus Gr\xfcnden der \xdcbersicht werden im Klassendiagramm keine Getter und\nObject-Methoden dargestellt"}),"\n",(0,r.jsx)(n.li,{children:"So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die\nObject-Methoden wie gewohnt implementiert werden"}),"\n"]}),"\n",(0,r.jsxs)(n.h2,{id:"hinweis-zur-klasse-item",children:["Hinweis zur Klasse ",(0,r.jsx)(n.em,{children:"Item"})]}),"\n",(0,r.jsxs)(n.p,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"double getSubTotalInEuro()"})," soll die Zwischensumme des\nWarenkorbeintrags als Produkt aus dem Produktpreis und der Anzahl zur\xfcckgeben."]}),"\n",(0,r.jsxs)(n.h2,{id:"hinweise-zur-klasse-shoppingcart",children:["Hinweise zur Klasse ",(0,r.jsx)(n.em,{children:"ShoppingCart"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"void addItem(sellable: T, amount: int)"})," soll den Eintr\xe4gen des\nWarenkorbs (",(0,r.jsx)(n.code,{children:"items"}),") das eingehende verk\xe4ufliche Objekt und die eingehende\nAnzahl als Eintrag hinzuf\xfcgen"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"void removeItem(sellable: T)"})," soll das eingehende verk\xe4ufliche\nObjekt aus den Eintr\xe4gen des Warenkorbs (",(0,r.jsx)(n.code,{children:"items"}),") entfernen"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"double getTotalInEuro()"})," soll die Gesamtsumme des Warenkorbs\nzur\xfcckgeben"]}),"\n"]}),"\n",(0,r.jsxs)(n.h2,{id:"hinweise-zur-klasse-shoppingportal",children:["Hinweise zur Klasse ",(0,r.jsx)(n.em,{children:"ShoppingPortal"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"void addProductToShoppingCart(product: Product, amount: int)"}),"\nsoll dem Warenkorb (",(0,r.jsx)(n.code,{children:"shoppingCart"}),") das eingehende Produkt und die eingehende\nAnzahl als Eintrag hinzuf\xfcgen"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"void removeProductFromShoppingCart(product: Product)"})," soll das\neingehende Produkt aus dem Warenkorb (",(0,r.jsx)(n.code,{children:"shoppingCart"}),") entfernen"]}),"\n",(0,r.jsxs)(n.li,{children:["Die Methode ",(0,r.jsx)(n.code,{children:"void clearShoppingCart()"})," soll alle Eintr\xe4ge des Warenkorbs\n(",(0,r.jsx)(n.code,{children:"shoppingCart"}),") entfernen"]}),"\n"]})]})}function p(e={}){let{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},50065:function(e,n,s){s.d(n,{Z:function(){return t},a:function(){return l}});var i=s(67294);let r={},a=i.createContext(r);function l(e){let n=i.useContext(a);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/4c9e4057.ef1bc120.js b/pr-preview/pr-238/assets/js/4c9e4057.ef1bc120.js new file mode 100644 index 0000000000..0d68fbc62b --- /dev/null +++ b/pr-preview/pr-238/assets/js/4c9e4057.ef1bc120.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7473"],{98582:function(e,n,s){s.d(n,{Z:function(){return r}});var l=s(85893),i=s(67294);function r(e){let{children:n,initSlides:s,width:r=null,height:a=null}=e;return(0,i.useEffect)(()=>{s()}),(0,l.jsx)("div",{className:"reveal reveal-viewport",style:{width:r??"100vw",height:a??"100vh"},children:(0,l.jsx)("div",{className:"slides",children:n})})}},57270:function(e,n,s){s.d(n,{O:function(){return l}});let l=()=>{let e=s(42199),n=s(87251),l=s(60977),i=s(12489);new(s(29197))({plugins:[e,n,l,i]}).initialize({hash:!0})}},63037:function(e,n,s){s.d(n,{K:function(){return i}});var l=s(85893);s(67294);let i=()=>(0,l.jsx)("p",{style:{fontSize:"8px",position:"absolute",bottom:0,right:0},children:"*NKR"})},86683:function(e,n,s){s.r(n),s.d(n,{default:function(){return c}});var l=s(85893),i=s(98582),r=s(57270),a=s(63037);function c(){return(0,l.jsxs)(i.Z,{initSlides:r.O,children:[(0,l.jsx)("section",{children:(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Agenda"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"Wiederholung"}),(0,l.jsx)("li",{className:"fragment",children:"Kontrollstrukturen"}),(0,l.jsx)("li",{className:"fragment",children:"Arrays"})]})]})}),(0,l.jsxs)("section",{children:[(0,l.jsx)("section",{children:(0,l.jsx)("h2",{children:"Wiederholung"})}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Methoden"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"R\xfcckgabetyp (primitiv, komplex, void)"}),(0,l.jsx)("li",{className:"fragment",children:"Bezeichner"}),(0,l.jsx)("li",{className:"fragment",children:"Parameter"}),(0,l.jsx)("li",{className:"fragment",children:"Methodenrumpf"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Operatoren"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"Arithmetische Operatoren (+, -, *, /, %, ++, --)"}),(0,l.jsx)("li",{className:"fragment",children:"Vergleichsoperatoren (==, !=, etc.)"}),(0,l.jsx)("li",{className:"fragment",children:"Logische Operatoren (&&, ||, !)"}),(0,l.jsx)("li",{className:"fragment",children:"Bitweise Operatoren (&, |, ^, ~)"})]})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("section",{children:(0,l.jsx)("h2",{children:"Kontrollstrukturen"})}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiele f\xfcr Fallunterscheidung"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"wenn unter 16 Jahre alt, dann kein Alkohol"}),(0,l.jsx)("li",{className:"fragment",children:'wenn weiblich, dann ist die Anrede "Frau"'}),(0,l.jsx)("li",{className:"fragment",children:"wenn PIN falsch, dann keine Bargeldausgabe"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Aufbau einer If-Anweisung"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"if Schl\xfcsselwort"}),(0,l.jsx)("li",{className:"fragment",children:"Bedingung"}),(0,l.jsx)("li",{className:"fragment",children:"Code Block"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiel If-Anweisung"}),(0,l.jsx)("pre",{children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"if ( Bedingung ) {\n // Quellcode\n}"}})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Demo If-Anweisung"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{children:"wenn unter 16 Jahre alt, dann kein Alkohol"}),(0,l.jsx)("li",{children:'wenn weiblich, dann ist die Anrede "Frau"'})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Wie behandelt man den anderen Fall?"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"else Schl\xfcsselwort"}),(0,l.jsx)("li",{className:"fragment",children:"Code Block"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiel Else-Anweisung"}),(0,l.jsx)("pre",{children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"else {\n // Quellcode\n}"}})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Demo If-Else-Anweisung"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{children:"wenn unter 16 Jahre alt, dann kein Alkohol, ansonsten Alkohol"}),(0,l.jsx)("li",{children:'wenn weiblich, dann ist die Anrede "Frau", ansonsten "Mann"'})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Wie behandelt man weitere F\xe4lle?"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"else if Schl\xfcsselwort"}),(0,l.jsx)("li",{className:"fragment",children:"Bedingung"}),(0,l.jsx)("li",{className:"fragment",children:"Code Block"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiel Else-If-Anweisung"}),(0,l.jsx)("pre",{children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"else if ( Bedingung ) {\n // Quellcode\n}"}})}),(0,l.jsx)("p",{children:"else bezieht sich immer nur auf die aktuelle if-else-if-Verschachtelung"})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Demo If-Else-Anweisung"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{children:"wenn unter 16 Jahre alt, dann kein Alkohol, wenn unter 18 Jahre alt, dann Bier, ansonsten jeden Alkohol"}),(0,l.jsx)("li",{children:'wenn weiblich, dann ist die Anrede "Frau", wenn m\xe4nnlich, dann ist die Anrede "Herr", ansonsten Vor- und Nachname'})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Verschachtelungen"}),(0,l.jsx)("pre",{className:"fragment",children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"if ( Bedingung ) {\n if ( Bedingung ) {\n if ( Bedingung ) {\n ...\n } else if ( Bedingung ) {\n ...\n } else \n ...\n }\n }\n}"}})}),(0,l.jsx)("p",{className:"fragment",children:"Mit Verschachtelungen k\xf6nnen jegliche F\xe4lle abgedeckt werden."})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"switch"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"switch Schl\xfcsselwort"}),(0,l.jsx)("li",{className:"fragment",children:"Datenobjekt, das gepr\xfcft werden soll"}),(0,l.jsx)("li",{className:"fragment",children:"Code Block"}),(0,l.jsx)("li",{className:"fragment",children:"case Schl\xfcsselwort mit Wert"}),(0,l.jsx)("li",{className:"fragment",children:"Code Block"}),(0,l.jsx)("li",{className:"fragment",children:"break Schl\xfcsselwort"})]}),(0,l.jsx)("p",{className:"fragment",children:"switch kann als Alternative zur If-Anweisung verwendet werden."})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiel Switch-Anweisung"}),(0,l.jsx)("pre",{children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"switch ( Datenobjekt ) {\n case 1:\n // Code Block\n break;\n case 2:\n // Code Block\n break;\n default:\n // Code Block\n break;\n}"}})}),(0,l.jsxs)("div",{className:"fragment",children:["switch geht nur mit ",(0,l.jsx)("strong",{children:"int"}),", ",(0,l.jsx)("strong",{children:"char"}),","," ",(0,l.jsx)("strong",{children:"String"})," & ",(0,l.jsx)("strong",{children:"Enum"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Demo Switch-Anweisung"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{children:"wenn unter 16 Jahre alt, dann kein Alkohol, wenn unter 18 Jahre alt, dann Bier, ansonsten jeden Alkohol"}),(0,l.jsx)("li",{children:'wenn "w", "W", "f", "F", dann ist die Anrede "Frau", wenn "m", "M", dann ist die Anrede "Herr", ansonsten Vor- und Nachname'})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"switch vs if"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"switch performanter als if-else-if"}),(0,l.jsx)("li",{className:"fragment",children:"switch kann erst ab Java 7 Stringvergleiche"}),(0,l.jsx)("li",{className:"fragment",children:"keine Methodenaufrufe in case statement"}),(0,l.jsx)("li",{className:"fragment",children:"Mehrfachbehandlung deutlich lesbarer mit switch"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Ternary Operator*"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"Kurzform von if-else"}),(0,l.jsx)("li",{className:"fragment",children:"macht in return statement Sinn"})]}),(0,l.jsx)(a.K,{})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiel Ternary Operator*"}),(0,l.jsx)("pre",{children:(0,l.jsx)("code",{className:"java","data-line-numbers":"2-8|10",dangerouslySetInnerHTML:{__html:'public static void main(String[] args) {\n String output;\n int availableCash = 300;\n if(availableCash > 0) {\n output = "Patte flie\xdft";\n } else {\n output = "Pleite";\n }\n \n output = availableCash > 0 ? "Patte flie\xdft" : "Pleite";\n}'}})})]}),(0,l.jsx)("section",{children:(0,l.jsx)("h2",{children:"Demo Ternary Operator"})}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Warum braucht man Schleifen?"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"zum Bearbeiten von Listen"}),(0,l.jsx)("li",{className:"fragment",children:"zum wiederholten Ausf\xfchren von Code"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiele f\xfcr Schleifen"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"Liste von Klausuren, um Durchschnittsnote zu ermitteln"}),(0,l.jsx)("li",{className:"fragment",children:"Liste von Artikeln im Warenkorb, um Summe zu ermitteln"}),(0,l.jsx)("li",{className:"fragment",children:"Solange kein Film mit einer Bewertung von 4+, gehe zu n\xe4chstem Film"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Arten von Schleifen"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"while-Schleife"}),(0,l.jsx)("li",{className:"fragment",children:"do-while-Schleife"}),(0,l.jsx)("li",{className:"fragment",children:"for-Schleife"}),(0,l.jsx)("li",{className:"fragment",children:"for-each-Schleife"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"while-Schleife"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"while Schl\xfcsselwort"}),(0,l.jsx)("li",{className:"fragment",children:"Bedingung"}),(0,l.jsx)("li",{className:"fragment",children:"Code Block"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiel while-Schleife"}),(0,l.jsx)("pre",{children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"while ( Bedingung ) {\n // Quellcode\n}"}})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Demo while-Schleife"}),(0,l.jsx)("ul",{children:(0,l.jsx)("li",{children:"Zahlen von 0 bis 4 ausgeben."})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"do-while-Schleife"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"do Schl\xfcsselwort"}),(0,l.jsx)("li",{className:"fragment",children:"Code Block"}),(0,l.jsx)("li",{className:"fragment",children:"while Schl\xfcsselwort"}),(0,l.jsx)("li",{className:"fragment",children:"Bedingung"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiel do-while-Schleife"}),(0,l.jsx)("pre",{children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"do {\n // Quellcode\n}\nwhile ( Bedingung ) \n"}})}),(0,l.jsx)("p",{className:"fragment",children:"Code Block wird mindestends einmal ausgef\xfchrt"})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Demo do-while-Schleife"}),(0,l.jsx)("ul",{children:(0,l.jsx)("li",{children:"Zahlen von 0 bis 4 ausgeben."})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"for-Schleife"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"for Schl\xfcsselwort"}),(0,l.jsx)("li",{className:"fragment",children:"Einmal Statement (vor der Schleife)"}),(0,l.jsx)("li",{className:"fragment",children:"Bedingung"}),(0,l.jsx)("li",{className:"fragment",children:"Statement (nach jedem Code Block)"}),(0,l.jsx)("li",{className:"fragment",children:"Code Block"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiel for-Schleife"}),(0,l.jsx)("pre",{children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"for (int i = 0; i < 5; i++) {\n // Quellcode\n}"}})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Demo for-Schleife"}),(0,l.jsx)("ul",{children:(0,l.jsx)("li",{children:"Zahlen von 0 bis 4 ausgeben."})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"for-each-Schleife"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"for Schl\xfcsselwort"}),(0,l.jsx)("li",{className:"fragment",children:"Typ eines einzelnen Elements von einer Liste"}),(0,l.jsx)("li",{className:"fragment",children:"Bezeichner des Datenobjekts"}),(0,l.jsx)("li",{className:"fragment",children:"Datenobjekt mit einer Liste"})]}),(0,l.jsx)("p",{className:"fragment",children:"Kann erst mit Arrays verstanden werden."})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiel for-each-Schleife"}),(0,l.jsx)("pre",{children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"int[] numbers = { 0, 1, 2, 3, 4};\nfor (int number : numbers) {\n // Quellcode\n}"}})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Demo for-each-Schleife"}),(0,l.jsx)("ul",{children:(0,l.jsx)("li",{children:"Zahlen von 0 bis 4 ausgeben."})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"break Schl\xfcsselwort"}),(0,l.jsxs)("p",{children:["beendet die ",(0,l.jsx)("strong",{children:"komplette"})," Schleife"]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Demo break"}),(0,l.jsx)("ul",{children:(0,l.jsx)("li",{children:"Beende Schleife, wenn durch 2 teilbar."})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"continue Schl\xfcsselwort"}),(0,l.jsxs)("p",{children:["beendet den ",(0,l.jsx)("strong",{children:"aktuellen"})," Code Block"]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Demo continue"}),(0,l.jsx)("ul",{children:(0,l.jsx)("li",{children:"\xdcberspringe alle ungeraden Zahlen"})})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("section",{children:(0,l.jsx)("h2",{children:"Arrays"})}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Eigenschaften eines Arrays"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"speichert mehrere Datenobjekte eines gleichen Typs"}),(0,l.jsx)("li",{className:"fragment",children:"speichert eine definierte Anzahl an Datenobjekten"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiele"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"die Namen von mir, meiner Freundin und meines besten Freundes"}),(0,l.jsx)("li",{className:"fragment",children:"die Noten von mir, meiner Freundin und meines besten Freundes"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Wie deklariert man ein Array?"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"Datentyp der zu speichernden Elemente"}),(0,l.jsx)("li",{className:"fragment",children:"eckige Klammern []"}),(0,l.jsx)("li",{className:"fragment",children:"Bezeichner"}),(0,l.jsx)("li",{className:"fragment",children:"Zuweisungsoperator ="}),(0,l.jsx)("li",{className:"fragment",children:"Elemente kommagetrennt in geschweiften Klammern"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("pre",{children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"int[] numbers = { 0, 1, 2, 3, 4 }"}})}),(0,l.jsx)("div",{className:"fragment",children:"das Array hat eine feste L\xe4nge von 5"})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Wie kann man Daten aus einem Array lesen?"}),(0,l.jsx)("pre",{className:"fragment",children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"int[] numbers = { 0, 1, 2, 3, 4 } \nint dasVierteElement = numbers[3];"}})}),(0,l.jsx)("div",{className:"fragment",children:"der Index bei Arrays beginnt immer bei 0"})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Wie kann man Daten in einem Array speichern?"}),(0,l.jsx)("pre",{className:"fragment",children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"int[] numbers = { 0, 1, 2, 3, 4 } \nnumbers[3] = 9;"}})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Wie kann ich ein Array ohne Werte initialisieren?"}),(0,l.jsx)("pre",{className:"fragment",children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"int[] numbers = new int[4]; \nInteger[] numbers = new Integer[4]; \nnumbers[3] = 9;"}})}),(0,l.jsx)("p",{className:"fragment",children:"Schl\xfcsselwort new ignorieren"})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Wie kann ich die Gr\xf6\xdfe eines Arrays ermitteln?"}),(0,l.jsx)("pre",{className:"fragment",children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"int[] numbers = { 0, 1, 2, 3, 4 } \nint size = numbers.length; // size ist 5\n"}})})]}),(0,l.jsx)("section",{children:(0,l.jsxs)("table",{className:"fragment",children:[(0,l.jsx)("thead",{children:(0,l.jsxs)("tr",{children:[(0,l.jsx)("th",{children:"Primitiver Datentyp"}),(0,l.jsx)("th",{children:"Komplexer Datentyp"})]})}),(0,l.jsxs)("tbody",{children:[(0,l.jsxs)("tr",{className:"fragment",children:[(0,l.jsx)("td",{children:"boolean"}),(0,l.jsx)("td",{children:"Boolean"})]}),(0,l.jsxs)("tr",{className:"fragment",children:[(0,l.jsx)("td",{children:"char"}),(0,l.jsx)("td",{children:"Character"})]}),(0,l.jsxs)("tr",{className:"fragment",children:[(0,l.jsx)("td",{children:"byte"}),(0,l.jsx)("td",{children:"Byte"})]}),(0,l.jsxs)("tr",{className:"fragment",children:[(0,l.jsx)("td",{children:"short"}),(0,l.jsx)("td",{children:"Short"})]}),(0,l.jsxs)("tr",{className:"fragment",children:[(0,l.jsx)("td",{children:"int"}),(0,l.jsx)("td",{children:"Integer"})]}),(0,l.jsxs)("tr",{className:"fragment",children:[(0,l.jsx)("td",{children:"long"}),(0,l.jsx)("td",{children:"Long"})]}),(0,l.jsxs)("tr",{className:"fragment",children:[(0,l.jsx)("td",{children:"float"}),(0,l.jsx)("td",{children:"Float"})]}),(0,l.jsxs)("tr",{className:"fragment",children:[(0,l.jsx)("td",{children:"double"}),(0,l.jsx)("td",{children:"Double"})]})]})]})}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Wie macht man Arrays gr\xf6\xdfer?"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"Gr\xf6\xdfe des neuen Arrays ermittlen"}),(0,l.jsx)("li",{className:"fragment",children:"neues Array mit neuer Gr\xf6\xdfe erstellen"}),(0,l.jsx)("li",{className:"fragment",children:"mit einer Schleife die Elemente aus dem alten Array kopieren"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Wie f\xfcgt man ein Element an einer bestimmten Stelle ein?"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"Gr\xf6\xdfe des neuen Arrays ermittlen"}),(0,l.jsx)("li",{className:"fragment",children:"neues Array mit neuer Gr\xf6\xdfe erstellen"}),(0,l.jsx)("li",{className:"fragment",children:"mit einer Schleife die Elemente vor der neuen Stelle aus dem alten Array kopieren"}),(0,l.jsx)("li",{className:"fragment",children:"neues Element hinzuf\xfcgen"}),(0,l.jsx)("li",{className:"fragment",children:"mit einer Schleife die Elemente nach der neuen Stelle aus dem alten Array kopieren"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"ArrayList"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"neue Elemente hinzuf\xfcgen"}),(0,l.jsx)("li",{className:"fragment",children:"neue Elemente an bestimmter Stelle hinzuf\xfcgen"}),(0,l.jsx)("li",{className:"fragment",children:"komplette Liste leeren"}),(0,l.jsx)("li",{className:"fragment",children:"pr\xfcfen ob Liste ein bestimmtes Element enth\xe4lt"}),(0,l.jsx)("li",{className:"fragment",children:"..."})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"ArrayList"}),(0,l.jsx)("pre",{children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"ArrayList<Integer> numbers = new ArrayList<>();"}})}),(0,l.jsx)("p",{className:"fragment",children:" sind Generics \u2192 Java 2"}),(0,l.jsx)("p",{className:"fragment",children:"new kann erst mit Objekten verstanden werden"})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Wie kann ich die Gr\xf6\xdfe einer ArrayList ermitteln?"}),(0,l.jsx)("pre",{className:"fragment",children:(0,l.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"ArrayList<Integer> numbers = new ArrayList<>();\nint size = numbers.size(); // size ist 0\n"}})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Demo Array und ArrayList"}),(0,l.jsx)("p",{children:"for-Schleife mit Array und ArrayList"})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Was sind jetzt die args in der main Methode?"}),(0,l.jsx)("p",{className:"fragment",children:"Demo"})]})]}),(0,l.jsxs)("section",{children:[(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Variable Argumentlisten*"}),(0,l.jsx)("p",{className:"fragment foot-note",children:"werden auch als VarArgs bezeichnet"}),(0,l.jsx)(a.K,{})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Variable Argumentlisten"}),(0,l.jsx)("p",{children:"Damit eine Methode eine variable Anzahl von Argumenten eines gleichen Datentyps verarbeiten kann, muss ein Parameter als variable Argumentliste definiert werden."})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiel Verwendung"}),(0,l.jsx)("pre",{children:(0,l.jsx)("code",{className:"java","data-line-numbers":"1-5|2|3|4",dangerouslySetInnerHTML:{__html:"public static void main(Stirng[] args) {\n int twoParameters = Example.sum(1, 2);\n int threeParameters = Example.sum(1, 2, 3);\n int fourParameters = Example.sum(1, 2, 3, 4);\n}"}})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"Beispiel Implementierung"}),(0,l.jsx)("pre",{children:(0,l.jsx)("code",{className:"java","data-line-numbers":"|1-2|3-7",dangerouslySetInnerHTML:{__html:"public static int sum(int... numbers) {\n // numbers ist ein Array\n int sum = 0;\n for(int number : numbers) {\n sum = sum + number;\n }\n return sum;\n}"}})})]}),(0,l.jsxs)("section",{children:[(0,l.jsx)("h2",{children:"VarArgs"}),(0,l.jsxs)("ul",{children:[(0,l.jsx)("li",{className:"fragment",children:"stehen am Ende der Parameterliste"}),(0,l.jsx)("li",{className:"fragment",children:"nur ein VarArgs Parameter je Methode"}),(0,l.jsx)("li",{className:"fragment",children:"VarArgs Parameter ist ein Array"}),(0,l.jsx)("li",{className:"fragment",children:"Argumente werden kommagetrennt definiert"})]})]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/4d9ff168.82496f6e.js b/pr-preview/pr-238/assets/js/4d9ff168.82496f6e.js new file mode 100644 index 0000000000..366569896b --- /dev/null +++ b/pr-preview/pr-238/assets/js/4d9ff168.82496f6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["5612"],{13431:function(a){a.exports=JSON.parse('{"tag":{"label":"abstract","permalink":"/java-docs/pr-preview/pr-238/tags/abstract","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":2,"items":[{"id":"documentation/abstract-and-final","title":"Abstrakte und finale Klassen und Methoden","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/abstract-and-final"},{"id":"exercises/abstract-and-final/abstract-and-final","title":"Abstrakte und finale Klassen und Methoden","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/abstract-and-final/"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/4df51fab.89025233.js b/pr-preview/pr-238/assets/js/4df51fab.89025233.js new file mode 100644 index 0000000000..1f6f641e24 --- /dev/null +++ b/pr-preview/pr-238/assets/js/4df51fab.89025233.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1222"],{90709:function(e,n,t){t.r(n),t.d(n,{metadata:()=>i,contentTitle:()=>l,default:()=>h,assets:()=>a,toc:()=>o,frontMatter:()=>d});var i=JSON.parse('{"id":"documentation/unit-tests","title":"Komponententests (Unit Tests)","description":"","source":"@site/docs/documentation/unit-tests.md","sourceDirName":"documentation","slug":"/documentation/unit-tests","permalink":"/java-docs/pr-preview/pr-238/documentation/unit-tests","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/unit-tests.md","tags":[{"inline":true,"label":"unit-tests","permalink":"/java-docs/pr-preview/pr-238/tags/unit-tests"}],"version":"current","sidebarPosition":320,"frontMatter":{"title":"Komponententests (Unit Tests)","description":"","sidebar_position":320,"tags":["unit-tests"]},"sidebar":"documentationSidebar","previous":{"title":"Softwaretests","permalink":"/java-docs/pr-preview/pr-238/documentation/tests"},"next":{"title":"Datenstr\xf6me (IO-Streams)","permalink":"/java-docs/pr-preview/pr-238/documentation/io-streams"}}'),s=t("85893"),r=t("50065");let d={title:"Komponententests (Unit Tests)",description:"",sidebar_position:320,tags:["unit-tests"]},l=void 0,a={},o=[{value:"Implementieren einer Testklasse",id:"implementieren-einer-testklasse",level:2},{value:"Zusicherungen (Assertions)",id:"zusicherungen-assertions",level:2},{value:"Beispiel",id:"beispiel",level:2},{value:"Test Doubles",id:"test-doubles",level:2}];function c(e){let n={admonition:"admonition",code:"code",em:"em",h2:"h2",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["Komponententests (Unit Tests) werden zum Testen einzelner, abgeschlossener\nSoftwarebausteine verwendet. JUnit ist ein weit verbreitetes Framework zur\nErstellung dieser Komponententests bzw. zum automatisierten Testen von Klassen\nund Methoden in Java. Die aktuelle Version ",(0,s.jsx)(n.em,{children:"JUnit 5"})," stellt eine Kombination\nverschiedener Module der Projekte ",(0,s.jsx)(n.em,{children:"JUnit Platform"}),", ",(0,s.jsx)(n.em,{children:"JUnit Jupiter"})," sowie ",(0,s.jsx)(n.em,{children:"JUnit\nVintage"})," dar."]}),"\n",(0,s.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,s.jsxs)(n.p,{children:["Unter einem Framework versteht man ein Programmierger\xfcst, welches die\nArchitektur f\xfcr die Anwendung vorgibt und den Kontrollfluss der Anwendung\nsteuert. Die Arbeitsweise von Frameworks wird als ",(0,s.jsx)(n.em,{children:"Inversion of Control"}),"\nbezeichnet: Die Funktionen einer Anwendung werden beim Framework registriert,\nwelches die Funktionen zu einem sp\xe4teren Zeitpunkt aufruft, d.h. die Steuerung\ndes Kontrollfluss obliegt nicht der Anwendung, sondern dem Framework. Die Umkehr\nder Steuerung kann auch als Anwendung des Hollywood-Prinzips (",(0,s.jsx)(n.em,{children:"Don\xb4t call us,\nwe\xb4ll call you"}),") verstanden werden."]})}),"\n",(0,s.jsx)(n.h2,{id:"implementieren-einer-testklasse",children:"Implementieren einer Testklasse"}),"\n",(0,s.jsx)(n.p,{children:"JUnit-Testklassen werden mit Hilfe entsprechender Annotationen implementiert:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Die Annotationen ",(0,s.jsx)(n.code,{children:"@Test"})," und ",(0,s.jsx)(n.code,{children:"@ParameterizedTest"})," definieren einfache bzw.\nparametrisierte Testmethoden"]}),"\n",(0,s.jsxs)(n.li,{children:["Die Annotationen ",(0,s.jsx)(n.code,{children:"@BeforeAll"})," und ",(0,s.jsx)(n.code,{children:"@AfterAll"})," definieren statische Methoden,\ndie aufgerufen werden, wenn die Klasse f\xfcr den Test initialisiert wird bzw.\nwenn alle Tests abgeschlossen sind"]}),"\n",(0,s.jsxs)(n.li,{children:["Die Annotationen ",(0,s.jsx)(n.code,{children:"@BeforeEach"})," und ",(0,s.jsx)(n.code,{children:"@AfterEach"})," definieren Methoden, die vor\nbzw. nach jeder Testmethode aufgerufen werden"]}),"\n",(0,s.jsxs)(n.li,{children:["Die Annotation ",(0,s.jsx)(n.code,{children:"@Disabled"})," bewirkt, dass eine Testmethode beim Testen nicht\nausgef\xfchrt wird"]}),"\n",(0,s.jsxs)(n.li,{children:["Mit Hilfe der Annotation ",(0,s.jsx)(n.code,{children:"@DisplayName"})," kann einer Testklasse bzw. einer\nTestmethode ein Anzeigename zugewiesen werden"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"zusicherungen-assertions",children:"Zusicherungen (Assertions)"}),"\n",(0,s.jsxs)(n.p,{children:["Die Klasse ",(0,s.jsx)(n.code,{children:"Assertions"})," stellt verschiedene Methoden bereit, die immer dann eine\nAusnahme vom Typ ",(0,s.jsx)(n.code,{children:"AssertionError"})," ausl\xf6sen, wenn das Ergebnis eines\nMethodenaufrufs nicht wie erwartet ausgefallen ist. Eine Ausnahme vom Typ\n",(0,s.jsx)(n.code,{children:"AssertionError"})," f\xfchrt dazu, dass der Test als nicht erfolgreich gewertet wird."]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Assert-Methode"}),(0,s.jsx)(n.th,{children:"Bedeutung"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"void assertTrue(condition: boolean)"})}),(0,s.jsx)(n.td,{children:"Pr\xfcft, ob eine Bedingung erf\xfcllt ist"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"void assertFalse(condition: boolean)"})}),(0,s.jsx)(n.td,{children:"Pr\xfcft, ob eine Bedingung nicht erf\xfcllt ist"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"void assertNull(actual: Object)"})}),(0,s.jsxs)(n.td,{children:["Pr\xfcft, ob etwas ",(0,s.jsx)(n.code,{children:"null"})," ist"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"void assertNotNull(actual: Object)"})}),(0,s.jsxs)(n.td,{children:["Pr\xfcft, ob etwas nicht ",(0,s.jsx)(n.code,{children:"null"})," ist"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"void assertSame(expected: Object, actual: Object)"})}),(0,s.jsx)(n.td,{children:"Pr\xfcft, ob zwei Objekte identisch sind"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"void assertNotSame(expected: Object, actual: Object)"})}),(0,s.jsx)(n.td,{children:"Pr\xfcft, ob zwei Objekte nicht identisch sind"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"void assertEquals(expected: Object, actual: Object)"})}),(0,s.jsx)(n.td,{children:"Pr\xfcft, ob zwei Objekte gleich sind"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"void assertNotEquals(expected: Object, actual: Object)"})}),(0,s.jsx)(n.td,{children:"Pr\xfcft, ob zwei Objekte nicht gleich sind"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"T assertThrows(expectedType: Class, executable: Executable)"})}),(0,s.jsx)(n.td,{children:"Pr\xfcft, ob eine Ausnahme ausgel\xf6st wird"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"beispiel",children:"Beispiel"}),"\n",(0,s.jsxs)(n.p,{children:["Die Klasse ",(0,s.jsx)(n.code,{children:"Calculator"})," stellt mehrere Methoden bereit, die getestet werden\nsollen."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="Calculator.java" showLineNumbers',children:"public class Calculator {\n\n public Calculator() {}\n\n public int abs(int a) {\n return a >= 0 ? a : a * -1;\n }\n\n public int divide(int a, int b) {\n return a / b;\n }\n\n public int multiply(int a, int b) {\n return a * b;\n }\n\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Die statische Methode ",(0,s.jsx)(n.code,{children:"setUp()"})," der Testklasse ",(0,s.jsx)(n.code,{children:"CalculatorTest"})," stellt sicher,\ndass vor der Ausf\xfchrung der Testmethoden ein Taschenrechner-Objekt erzeugt wird.\nIn den Testmethoden werden verschiedene Testf\xe4lle wie z.B. die Division durch\nNull getestet."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class CalculatorTest {\n\n private static Calculator calculator;\n\n @BeforeAll\n static void setUp() {\n calculator = new Calculator();\n }\n\n @Test\n @DisplayName("Multiplication with Zero")\n void multiply_withZero_Zero() {\n assertEquals(0, calculator.multiply(0, 5));\n assertEquals(0, calculator.multiply(5, 0));\n }\n\n @ParameterizedTest\n @DisplayName("Absolute Values of positive and negative Values")\n @ValueSource(ints = {-1, 0, 1})\n void abs_positiveAndNegativeValues_AbsoluteValues(int a) {\n assertTrue(calculator.abs(a) >= 0);\n }\n\n @Test\n @DisplayName("Division by Zero")\n void divide_byZero_ArithmeticException() {\n assertThrows(ArithmeticException.class, () -> calculator.divide(5, 0));\n }\n\n}\n'})}),"\n",(0,s.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,s.jsxs)(n.p,{children:["F\xfcr die Benennungen von Testmethoden wird in der Regel versucht, die\nwesentlichen Informationen eines Tests (Name der zu testenden Methode,\nvorgegebener Zustand, zu erwartendes Verhalten) in den Methodennamen zu\nintegrieren. Zus\xe4tzlich k\xf6nnen Schl\xfcsselw\xf6rter wie ",(0,s.jsx)(n.em,{children:"Should"}),", ",(0,s.jsx)(n.em,{children:"When"}),", oder ",(0,s.jsx)(n.em,{children:"Then"}),"\nverwendet werden."]})}),"\n",(0,s.jsx)(n.h2,{id:"test-doubles",children:"Test Doubles"}),"\n",(0,s.jsxs)(n.p,{children:["Oftmals werden zum Testen einer Methode andere Objekte bzw. Komponenten\nben\xf6tigt, die vom Test bereitgestellt werden m\xfcssen. Um Abh\xe4ngigkeiten des SUT\n(System under Test) zu minimieren, kommen beim Testen selten die realen\nKomponenten, sondern sogenannte ",(0,s.jsx)(n.em,{children:"Test Doubles"})," zum Einsatz:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Eine ",(0,s.jsx)(n.em,{children:"F\xe4lschung"})," (Fake) imitiert eine reale Komponente"]}),"\n",(0,s.jsxs)(n.li,{children:["Eine ",(0,s.jsx)(n.em,{children:"Attrappe"})," (Dummy) ist ein Platzhalter f\xfcr ein Objekt, welches im Test\nnicht ben\xf6tigt wird"]}),"\n",(0,s.jsxs)(n.li,{children:["Ein ",(0,s.jsx)(n.em,{children:"Stummel"})," (Stub) gibt bei Aufruf einen festen Wert zur\xfcck; wird also f\xfcr\neingehende Aufrufe verwendet"]}),"\n",(0,s.jsxs)(n.li,{children:["Eine ",(0,s.jsx)(n.em,{children:"Nachahmung"})," (Mock) zeichnet die Methodenaufrufe an ihr auf und kann\nzur\xfcckgeben, welche Methode wie oft mit welchen Parametern aufgerufen wurde;\nwird also f\xfcr ausgehende Aufrufe verwendet"]}),"\n",(0,s.jsxs)(n.li,{children:["Ein ",(0,s.jsx)(n.em,{children:"Spion"})," (Spy) kann \xe4hnlich wie eine Nachahmung Methodenaufrufe\naufzeichnen, kann diese aber auch die reale Komponente weiterleiten"]}),"\n"]}),"\n",(0,s.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,s.jsx)(n.p,{children:"Man spricht in diesem Zusammenhang auch von Test-Isolierung."})})]})}function h(e={}){let{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},50065:function(e,n,t){t.d(n,{Z:function(){return l},a:function(){return d}});var i=t(67294);let s={},r=i.createContext(s);function d(e){let n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/4edfc53b.226bc917.js b/pr-preview/pr-238/assets/js/4edfc53b.226bc917.js new file mode 100644 index 0000000000..751145e4a1 --- /dev/null +++ b/pr-preview/pr-238/assets/js/4edfc53b.226bc917.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7773"],{44947:function(e,n,s){s.r(n),s.d(n,{metadata:()=>r,contentTitle:()=>o,default:()=>h,assets:()=>u,toc:()=>c,frontMatter:()=>i});var r=JSON.parse('{"id":"exercises/inner-classes/inner-classes01","title":"InnerClasses01","description":"","source":"@site/docs/exercises/inner-classes/inner-classes01.mdx","sourceDirName":"exercises/inner-classes","slug":"/exercises/inner-classes/inner-classes01","permalink":"/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes01","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/inner-classes/inner-classes01.mdx","tags":[],"version":"current","frontMatter":{"title":"InnerClasses01","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Innere Klassen (Inner Classes)","permalink":"/java-docs/pr-preview/pr-238/exercises/inner-classes/"},"next":{"title":"InnerClasses02","permalink":"/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes02"}}'),a=s("85893"),t=s("50065"),l=s("39661");let i={title:"InnerClasses01",description:""},o=void 0,u={},c=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Konsolenausgabe",id:"konsolenausgabe",level:2}];function d(e){let n={code:"code",h2:"h2",li:"li",mermaid:"mermaid",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Erstelle die Klassen ",(0,a.jsx)(n.code,{children:"House"})," und ",(0,a.jsx)(n.code,{children:"Room"})," anhand des abgebildeten\nKlassendiagramms"]}),"\n",(0,a.jsx)(n.li,{children:"Erstelle eine ausf\xfchrbare Klasse, welche ein Haus mit mehreren R\xe4umen erzeugt\nund auf der Konsole ausgibt"}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,a.jsx)(n.mermaid,{value:"classDiagram\n House *-- Room\n\n class House {\n -rooms: List~Room~ #123;final#125;\n +rooms() List~Room~\n +addRoom(room: Room) void\n +equals(object: Object) boolean\n +hashCode() int\n +toString() String\n }\n\n class Room {\n -name: String #123;final#125;\n +Room(name: String)\n +name() String\n +equals(object: Object) boolean\n +hashCode() int\n +toString() String\n }"}),"\n",(0,a.jsx)(n.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-console",children:"Wohnzimmer\nEsszimmer\nSchlafzimmer\nK\xfcche\nWC\n"})}),"\n",(0,a.jsx)(l.Z,{pullRequest:"54",branchSuffix:"inner-classes/01"})]})}function h(e={}){let{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},5525:function(e,n,s){s.d(n,{Z:()=>l});var r=s("85893");s("67294");var a=s("67026");let t="tabItem_Ymn6";function l(e){let{children:n,hidden:s,className:l}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,a.Z)(t,l),hidden:s,children:n})}},47902:function(e,n,s){s.d(n,{Z:()=>j});var r=s("85893"),a=s("67294"),t=s("67026"),l=s("69599"),i=s("16550"),o=s("32000"),u=s("4520"),c=s("38341"),d=s("76009");function h(e){return a.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||a.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function m(e){let{value:n,tabValues:s}=e;return s.some(e=>e.value===n)}var p=s("7227");let f="tabList__CuJ",b="tabItem_LNqP";function v(e){let{className:n,block:s,selectedValue:a,selectValue:i,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),d=e=>{let n=e.currentTarget,s=o[u.indexOf(n)].value;s!==a&&(c(n),i(s))},h=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let s=u.indexOf(e.currentTarget)+1;n=u[s]??u[0];break}case"ArrowLeft":{let s=u.indexOf(e.currentTarget)-1;n=u[s]??u[u.length-1]}}n?.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,t.Z)("tabs",{"tabs--block":s},n),children:o.map(e=>{let{value:n,label:s,attributes:l}=e;return(0,r.jsx)("li",{role:"tab",tabIndex:a===n?0:-1,"aria-selected":a===n,ref:e=>u.push(e),onKeyDown:h,onClick:d,...l,className:(0,t.Z)("tabs__item",b,l?.className,{"tabs__item--active":a===n}),children:s??n},n)})})}function g(e){let{lazy:n,children:s,selectedValue:l}=e,i=(Array.isArray(s)?s:[s]).filter(Boolean);if(n){let e=i.find(e=>e.props.value===l);return e?(0,a.cloneElement)(e,{className:(0,t.Z)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==l}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:s=!1,groupId:r}=e,t=function(e){let{values:n,children:s}=e;return(0,a.useMemo)(()=>{let e=n??h(s).map(e=>{let{props:{value:n,label:s,attributes:r,default:a}}=e;return{value:n,label:s,attributes:r,default:a}});return!function(e){let n=(0,c.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,s])}(e),[l,p]=(0,a.useState)(()=>(function(e){let{defaultValue:n,tabValues:s}=e;if(0===s.length)throw Error("Docusaurus error: the component requires at least one children component");if(n){if(!m({value:n,tabValues:s}))throw Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${s.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let r=s.find(e=>e.default)??s[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:t})),[f,b]=function(e){let{queryString:n=!1,groupId:s}=e,r=(0,i.k6)(),t=function(e){let{queryString:n=!1,groupId:s}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!s)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return s??null}({queryString:n,groupId:s}),l=(0,u._X)(t);return[l,(0,a.useCallback)(e=>{if(!t)return;let n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}({queryString:s,groupId:r}),[v,g]=function(e){var n;let{groupId:s}=e;let r=(n=s)?`docusaurus.tab.${n}`:null,[t,l]=(0,d.Nk)(r);return[t,(0,a.useCallback)(e=>{if(!!r)l.set(e)},[r,l])]}({groupId:r}),x=(()=>{let e=f??v;return m({value:e,tabValues:t})?e:null})();return(0,o.Z)(()=>{x&&p(x)},[x]),{selectedValue:l,selectValue:(0,a.useCallback)(e=>{if(!m({value:e,tabValues:t}))throw Error(`Can't select invalid tab value=${e}`);p(e),b(e),g(e)},[b,g,t]),tabValues:t}}(e);return(0,r.jsxs)("div",{className:(0,t.Z)("tabs-container",f),children:[(0,r.jsx)(v,{...n,...e}),(0,r.jsx)(g,{...n,...e})]})}function j(e){let n=(0,p.Z)();return(0,r.jsx)(x,{...e,children:h(e.children)},String(n))}},39661:function(e,n,s){s.d(n,{Z:function(){return o}});var r=s(85893);s(67294);var a=s(47902),t=s(5525),l=s(83012),i=s(45056);function o(e){let{pullRequest:n,branchSuffix:s}=e;return(0,r.jsxs)(a.Z,{children:[(0,r.jsxs)(t.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,r.jsx)(i.Z,{language:"console",children:`git switch exercises/${s}`}),(0,r.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${s}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(t.Z,{value:"solution",label:"Solution",children:[(0,r.jsx)(i.Z,{language:"console",children:`git switch solutions/${s}`}),(0,r.jsx)(l.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${s}/Exercise.java`,children:(0,r.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,r.jsxs)(t.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,r.jsxs)(l.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${n}/files?diff=split`,children:["PR#",n]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/4fcf7e4b.2bfc21e4.js b/pr-preview/pr-238/assets/js/4fcf7e4b.2bfc21e4.js new file mode 100644 index 0000000000..8b21591cf7 --- /dev/null +++ b/pr-preview/pr-238/assets/js/4fcf7e4b.2bfc21e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3954"],{38774:function(e,a,r){r.r(a),r.d(a,{metadata:()=>s,contentTitle:()=>d,default:()=>u,assets:()=>t,toc:()=>c,frontMatter:()=>l});var s=JSON.parse('{"id":"exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer","title":"Kartenausteiler","description":"","source":"@site/docs/exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer.md","sourceDirName":"exam-exercises/exam-exercises-java1/class-diagrams","slug":"/exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer.md","tags":[{"inline":true,"label":"oo","permalink":"/java-docs/pr-preview/pr-238/tags/oo"},{"inline":true,"label":"enumerations","permalink":"/java-docs/pr-preview/pr-238/tags/enumerations"},{"inline":true,"label":"io-streams","permalink":"/java-docs/pr-preview/pr-238/tags/io-streams"}],"version":"current","frontMatter":{"title":"Kartenausteiler","description":"","tags":["oo","enumerations","io-streams"]},"sidebar":"examExercisesSidebar","previous":{"title":"Klassendiagramme","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/"},"next":{"title":"Kassensystem","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cashier-system"}}'),n=r("85893"),i=r("50065");let l={title:"Kartenausteiler",description:"",tags:["oo","enumerations","io-streams"]},d=void 0,t={},c=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Allgemeine Hinweise",id:"allgemeine-hinweise",level:2},{value:"Hinweise zur Klasse Player",id:"hinweise-zur-klasse-player",level:2},{value:"Hinweis zur Klasse CardsDealer",id:"hinweis-zur-klasse-cardsdealer",level:2},{value:"Hinweis zur Klasse CardsReader",id:"hinweis-zur-klasse-cardsreader",level:2},{value:"Beispielhafter Aufbau der Kartendatei",id:"beispielhafter-aufbau-der-kartendatei",level:2}];function o(e){let a={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"Setze das abgebildete Klassendiagramm vollst\xe4ndig um. Erstelle zum Testen eine\nausf\xfchrbare Klasse."}),"\n",(0,n.jsx)(a.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,n.jsx)(a.mermaid,{value:"classDiagram\n CardDealer o-- Player\n CardDealer o-- Card\n Player o-- Card\n\n class Player {\n -cards: List~Card~ #123;final#125;\n +Player()\n +addCard(card: Card) void\n +getCardWithHighestValue() Card\n +getCardsByColour(colour: String) List~Card~\n }\n\n class CardDealer {\n -deck: List~Card~ #123;final#125;\n -player1: Player #123;final#125;\n -player2: Player #123;final#125;\n +CardsDealer(deck: List~Card~, player1: Player, player2: Player )\n +dealCards(amount: int) void\n }\n\n class Card {\n -colour: String #123;final#125;\n -value: int #123;final#125;\n +Card(colour: String, value: int)\n }\n\n class CardsReader {\n +getCards(file: File) List~Card~\n }"}),"\n",(0,n.jsx)(a.h2,{id:"allgemeine-hinweise",children:"Allgemeine Hinweise"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Aus Gr\xfcnden der \xdcbersicht werden im Klassendiagramm keine Getter und\nObject-Methoden dargestellt"}),"\n",(0,n.jsx)(a.li,{children:"So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die\nObject-Methoden wie gewohnt implementiert werden"}),"\n"]}),"\n",(0,n.jsxs)(a.h2,{id:"hinweise-zur-klasse-player",children:["Hinweise zur Klasse ",(0,n.jsx)(a.em,{children:"Player"})]}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Die Methode ",(0,n.jsx)(a.code,{children:"void addCard(card: Card)"})," soll dem Spieler die eingehende Karte\nhinzuf\xfcgen"]}),"\n",(0,n.jsxs)(a.li,{children:["Die Methode ",(0,n.jsx)(a.code,{children:"List getCardsByColour(colour: String)"})," soll alle Karten des\nSpielers zur eingehenden Farbe zur\xfcckgeben"]}),"\n",(0,n.jsxs)(a.li,{children:["Die Methode ",(0,n.jsx)(a.code,{children:"Card getCardWithHighestValue()"})," soll die Karte des Spielers mit\ndem h\xf6chsten Wert zur\xfcckgeben"]}),"\n"]}),"\n",(0,n.jsxs)(a.h2,{id:"hinweis-zur-klasse-cardsdealer",children:["Hinweis zur Klasse ",(0,n.jsx)(a.em,{children:"CardsDealer"})]}),"\n",(0,n.jsxs)(a.p,{children:["Die Methode ",(0,n.jsx)(a.code,{children:"void dealCards(amount: int)"})," soll den beiden Spielern die\neingehende Anzahl an zuf\xe4lligen Karten des Decks austeilen"]}),"\n",(0,n.jsxs)(a.h2,{id:"hinweis-zur-klasse-cardsreader",children:["Hinweis zur Klasse ",(0,n.jsx)(a.em,{children:"CardsReader"})]}),"\n",(0,n.jsxs)(a.p,{children:["Die Methode ",(0,n.jsx)(a.code,{children:"List getCards(file: File)"})," soll alle Karten der eingehenden\nDatei zur\xfcckgeben."]}),"\n",(0,n.jsx)(a.h2,{id:"beispielhafter-aufbau-der-kartendatei",children:"Beispielhafter Aufbau der Kartendatei"}),"\n",(0,n.jsx)(a.pre,{children:(0,n.jsx)(a.code,{children:"Karo;1\nKaro;2\nKaro;3\nKaro;4\nKaro;5\nHerz;1\nHerz;2\nHerz;3\nHerz;4\nHerz;5\nPik;1\nPik;2\nPik;3\nPik;4\nPik;5\nKreuz;1\nKreuz;2\nKreuz;3\nKreuz;4\nKreuz;5\n"})})]})}function u(e={}){let{wrapper:a}={...(0,i.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},50065:function(e,a,r){r.d(a,{Z:function(){return d},a:function(){return l}});var s=r(67294);let n={},i=s.createContext(n);function l(e){let a=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(a):{...a,...e}},[a,e])}function d(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),s.createElement(i.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5146.cb3c393d.js b/pr-preview/pr-238/assets/js/5146.cb3c393d.js new file mode 100644 index 0000000000..2bbd7d8974 --- /dev/null +++ b/pr-preview/pr-238/assets/js/5146.cb3c393d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["5146"],{63898:function(e,t,r){r.d(t,{default:function(){return aY}});class a{constructor(e,t,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=r}static range(e,t){return t?e&&e.loc&&t.loc&&e.loc.lexer===t.loc.lexer?new a(e.loc.lexer,e.loc.start,t.loc.end):null:e&&e.loc}}class n{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=t}range(e,t){return new n(t,a.range(this,e))}}class i{constructor(e,t){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var r="KaTeX parse error: "+e,a=t&&t.loc;if(a&&a.start<=a.end){var n,s,o,l,h=a.lexer.input;n=a.start,s=a.end,n===h.length?r+=" at end of input: ":r+=" at position "+(n+1)+": ";var m=h.slice(n,s).replace(/[^]/g,"$&\u0332");o=n>15?"\u2026"+h.slice(n-15,n):h.slice(0,n),r+=o+m+(l=s+15":">","<":"<",'"':""","'":"'"},q=/[&><"']/g,N=function e(t){if("ordgroup"===t.type)return 1===t.body.length?e(t.body[0]):t;if("color"===t.type)return 1===t.body.length?e(t.body[0]):t;if("font"===t.type)return e(t.body);else return t},I=function(e){if(!e)throw Error("Expected non-null, but got "+String(e));return e},H={contains:function(e,t){return -1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(q,e=>C[e])},hyphenate:function(e){return e.replace(B,"-$1").toLowerCase()},getBaseElem:N,isCharacterBox:function(e){var t=N(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){var t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?":"===t[2]&&/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?t[1].toLowerCase():null:"_relative"}},R={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand ",cliProcessor:e=>"Infinity"===e?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};class O{constructor(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{},R)if(R.hasOwnProperty(t)){var r=R[t];this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:function(e){if(e.default)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}(r)}}reportNonstrict(e,t,r){var a=this.strict;if("function"==typeof a&&(a=a(e,t,r)),!!a&&"ignore"!==a){if(!0===a||"error"===a)throw new i("LaTeX-incompatible input and strict mode is set to 'error': "+(t+" ["+e)+"]",r);"warn"===a?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e)+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+t+" ["+e)+"]")}}useStrictBehavior(e,t,r){var a=this.strict;if("function"==typeof a)try{a=a(e,t,r)}catch(e){a="error"}if(!a||"ignore"===a)return!1;if(!0===a||"error"===a)return!0;if("warn"===a)return"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e)+"]"),!1;else return"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+t+" ["+e)+"]"),!1}isTrusted(e){if(e.url&&!e.protocol){var t=H.protocolFromUrl(e.url);if(null==t)return!1;e.protocol=t}return!!("function"==typeof this.trust?this.trust(e):this.trust)}}class E{constructor(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}sup(){return L[D[this.id]]}sub(){return L[V[this.id]]}fracNum(){return L[P[this.id]]}fracDen(){return L[F[this.id]]}cramp(){return L[G[this.id]]}text(){return L[U[this.id]]}isTight(){return this.size>=2}}var L=[new E(0,0,!1),new E(1,0,!0),new E(2,1,!1),new E(3,1,!0),new E(4,2,!1),new E(5,2,!0),new E(6,3,!1),new E(7,3,!0)],D=[4,5,4,5,6,7,6,7],V=[5,5,5,5,7,7,7,7],P=[2,3,4,5,6,7,6,7],F=[3,3,5,5,7,7,7,7],G=[1,1,3,3,5,5,7,7],U=[0,1,2,3,2,3,2,3],Y={DISPLAY:L[0],TEXT:L[2],SCRIPT:L[4],SCRIPTSCRIPT:L[6]},X=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}],W=[];function _(e){for(var t=0;t=W[t]&&e<=W[t+1])return!0;return!1}X.forEach(e=>e.blocks.forEach(e=>W.push(...e)));var j=function(e,t,r){t*=1e3;var a,n,i,s,o,l,h,m,c,p,u,d,g="";switch(e){case"sqrtMain":;n=80,g="M95,"+(622+(a=t)+80)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+a/2.075+" -"+a+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+a)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+a)+" "+n+"h400000v"+(40+a)+"h-400000z";break;case"sqrtSize1":;s=80,g="M263,"+(601+(i=t)+80)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+i/2.084+" -"+i+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+i)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+i)+" "+s+"h400000v"+(40+i)+"h-400000z";break;case"sqrtSize2":;l=80,g="M983 "+(10+(o=t)+80)+"\nl"+o/3.13+" -"+o+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+o)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+o)+" "+l+"h400000v"+(40+o)+"h-400000z";break;case"sqrtSize3":;m=80,g="M424,"+(2398+(h=t)+80)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+h/4.223+" -"+h+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+h)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+h)+" "+m+"\nh400000v"+(40+h)+"h-400000z";break;case"sqrtSize4":;p=80,g="M473,"+(2713+(c=t)+80)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+c/5.298+" -"+c+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+c)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+c)+" "+p+"h400000v"+(40+c)+"H1017.7z";break;case"sqrtTall":;d=80,g="M702 "+((u=t)+80)+"H400000"+(40+u)+"\nH742v"+(r-54-d-u)+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 "+d+"H400000v"+(40+u)+"H742z"}return g},$=function(e,t){switch(e){case"\u239C":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"\u2223":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"\u2225":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z"+("M367 0 H410 V"+t+" H367z M367 0 H410 V"+t)+" H367z";case"\u239F":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"\u23A2":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"\u23A5":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"\u23AA":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"\u23D0":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"\u2016":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257z"+("M478 0 H521 V"+t+" H478z M478 0 H521 V"+t)+" H478z";default:return""}},Z={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"},K=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v1759 h347 v-84\nH403z M403 1759 V0 H319 V1759 v"+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v1759 H0 v84 H347z\nM347 1759 V0 H263 V1759 v"+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z\nM367 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v"+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+" v1715 h263 v84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+" v1799 H0 v-84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v602 h84z\nM403 1759 V0 H319 V1759 v"+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v602 h84z\nM347 1759 V0 h-84 V1759 v"+t+" v602 h84z";case"lparen":return"M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\n-36,557 l0,"+(t+84)+"c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\nl0,-"+(t+92)+"c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z";case"rparen":return"M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,"+(t+9)+"\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\nl0,-"+(t+144)+"c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z";default:throw Error("Unknown stretchy delimiter.")}};class J{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return H.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),t=0;te.toText()).join("")}}var Q={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},ee={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},et={"\xc5":"A","\xd0":"D","\xde":"o","\xe5":"a","\xf0":"d","\xfe":"o",\u0410:"A",\u0411:"B",\u0412:"B",\u0413:"F",\u0414:"A",\u0415:"E",\u0416:"K",\u0417:"3",\u0418:"N",\u0419:"N",\u041A:"K",\u041B:"N",\u041C:"M",\u041D:"H",\u041E:"O",\u041F:"N",\u0420:"P",\u0421:"C",\u0422:"T",\u0423:"y",\u0424:"O",\u0425:"X",\u0426:"U",\u0427:"h",\u0428:"W",\u0429:"W",\u042A:"B",\u042B:"X",\u042C:"B",\u042D:"3",\u042E:"X",\u042F:"R",\u0430:"a",\u0431:"b",\u0432:"a",\u0433:"r",\u0434:"y",\u0435:"e",\u0436:"m",\u0437:"e",\u0438:"n",\u0439:"n",\u043A:"n",\u043B:"n",\u043C:"m",\u043D:"n",\u043E:"o",\u043F:"n",\u0440:"p",\u0441:"c",\u0442:"o",\u0443:"y",\u0444:"b",\u0445:"x",\u0446:"n",\u0447:"n",\u0448:"w",\u0449:"w",\u044A:"a",\u044B:"m",\u044C:"a",\u044D:"e",\u044E:"m",\u044F:"r"};function er(e,t,r){if(!Q[t])throw Error("Font metrics not found for font: "+t+".");var a=e.charCodeAt(0),n=Q[t][a];if(!n&&e[0]in et&&(a=et[e[0]].charCodeAt(0),n=Q[t][a]),!n&&"text"===r&&_(a)&&(n=Q[t][77]),n)return{depth:n[0],height:n[1],italic:n[2],skew:n[3],width:n[4]}}var ea={},en=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],ei=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],es=function(e,t){return t.size<2?e:en[e-1][t.size-1]};class eo{constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||eo.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=ei[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var t={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return new eo(t)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:es(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:ei[e-1]})}havingBaseStyle(e){e=e||this.style.text();var t=es(eo.BASESIZE,e);return this.size===t&&this.textSize===eo.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==eo.BASESIZE?["sizing","reset-size"+this.size,"size"+eo.BASESIZE]:[]}fontMetrics(){return!this._fontMetrics&&(this._fontMetrics=function(e){var t;if(!ea[t=e>=5?0:e>=3?1:2]){var r=ea[t]={cssEmPerMu:ee.quad[t]/18};for(var a in ee)ee.hasOwnProperty(a)&&(r[a]=ee[a][t])}return ea[t]}(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}eo.BASESIZE=6;var el={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},eh={ex:!0,em:!0,mu:!0},em=function(e){return"string"!=typeof e&&(e=e.unit),e in el||e in eh||"ex"===e},ec=function(e,t){var r,a;if(e.unit in el)r=el[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)r=t.fontMetrics().cssEmPerMu;else{if(a=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)r=a.fontMetrics().xHeight;else if("em"===e.unit)r=a.fontMetrics().quad;else throw new i("Invalid unit: '"+e.unit+"'");a!==t&&(r*=a.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)},ep=function(e){return+e.toFixed(4)+"em"},eu=function(e){return e.filter(e=>e).join(" ")},ed=function(e,t,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t){t.style.isTight()&&this.classes.push("mtight");var a=t.getColor();a&&(this.style.color=a)}},eg=function(e){var t=document.createElement(e);for(var r in t.className=eu(this.classes),this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);for(var a in this.attributes)this.attributes.hasOwnProperty(a)&&t.setAttribute(a,this.attributes[a]);for(var n=0;n"};class ev{constructor(e,t,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,ed.call(this,e,r,a),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return H.contains(this.classes,e)}toNode(){return eg.call(this,"span")}toMarkup(){return ef.call(this,"span")}}class eb{constructor(e,t,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,ed.call(this,t,a),this.children=r||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return H.contains(this.classes,e)}toNode(){return eg.call(this,"a")}toMarkup(){return ef.call(this,"a")}}class ey{constructor(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}hasClass(e){return H.contains(this.classes,e)}toNode(){var e=document.createElement("img");for(var t in e.src=this.src,e.alt=this.alt,e.className="mord",this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e}toMarkup(){var e=''+H.escape(this.alt))+'=n[0]&&e<=n[1])return r.name}}return null}(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[îïíì]/.test(this.text)&&(this.text=ex[this.text])}hasClass(e){return H.contains(this.classes,e)}toNode(){var e=document.createTextNode(this.text),t=null;for(var r in this.italic>0&&((t=document.createElement("span")).style.marginRight=ep(this.italic)),this.classes.length>0&&((t=t||document.createElement("span")).className=eu(this.classes)),this.style)this.style.hasOwnProperty(r)&&((t=t||document.createElement("span")).style[r]=this.style[r]);return t?(t.appendChild(e),t):e}toMarkup(){var e=!1,t="0&&(r+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(a)&&(r+=H.hyphenate(a)+":"+this.style[a]+";");r&&(e=!0,t+=' style="'+H.escape(r)+'"');var n=H.escape(this.text);return e?(t+=">",t+=n,t+=""):n}}class ek{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){var e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(var r=0;r':''}}class eM{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e=document.createElementNS("http://www.w3.org/2000/svg","line");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e}toMarkup(){var e="","\\gt",!0),eC(eq,eI,"rel","\u2208","\\in",!0),eC(eq,eI,"rel","\uE020","\\@not"),eC(eq,eI,"rel","\u2282","\\subset",!0),eC(eq,eI,"rel","\u2283","\\supset",!0),eC(eq,eI,"rel","\u2286","\\subseteq",!0),eC(eq,eI,"rel","\u2287","\\supseteq",!0),eC(eq,"ams","rel","\u2288","\\nsubseteq",!0),eC(eq,"ams","rel","\u2289","\\nsupseteq",!0),eC(eq,eI,"rel","\u22A8","\\models"),eC(eq,eI,"rel","\u2190","\\leftarrow",!0),eC(eq,eI,"rel","\u2264","\\le"),eC(eq,eI,"rel","\u2264","\\leq",!0),eC(eq,eI,"rel","<","\\lt",!0),eC(eq,eI,"rel","\u2192","\\rightarrow",!0),eC(eq,eI,"rel","\u2192","\\to"),eC(eq,"ams","rel","\u2271","\\ngeq",!0),eC(eq,"ams","rel","\u2270","\\nleq",!0),eC(eq,eI,eP,"\xa0","\\ "),eC(eq,eI,eP,"\xa0","\\space"),eC(eq,eI,eP,"\xa0","\\nobreakspace"),eC(eN,eI,eP,"\xa0","\\ "),eC(eN,eI,eP,"\xa0"," "),eC(eN,eI,eP,"\xa0","\\space"),eC(eN,eI,eP,"\xa0","\\nobreakspace"),eC(eq,eI,eP,null,"\\nobreak"),eC(eq,eI,eP,null,"\\allowbreak"),eC(eq,eI,eV,",",","),eC(eq,eI,eV,";",";"),eC(eq,"ams","bin","\u22BC","\\barwedge",!0),eC(eq,"ams","bin","\u22BB","\\veebar",!0),eC(eq,eI,"bin","\u2299","\\odot",!0),eC(eq,eI,"bin","\u2295","\\oplus",!0),eC(eq,eI,"bin","\u2297","\\otimes",!0),eC(eq,eI,eF,"\u2202","\\partial",!0),eC(eq,eI,"bin","\u2298","\\oslash",!0),eC(eq,"ams","bin","\u229A","\\circledcirc",!0),eC(eq,"ams","bin","\u22A1","\\boxdot",!0),eC(eq,eI,"bin","\u25B3","\\bigtriangleup"),eC(eq,eI,"bin","\u25BD","\\bigtriangledown"),eC(eq,eI,"bin","\u2020","\\dagger"),eC(eq,eI,"bin","\u22C4","\\diamond"),eC(eq,eI,"bin","\u22C6","\\star"),eC(eq,eI,"bin","\u25C3","\\triangleleft"),eC(eq,eI,"bin","\u25B9","\\triangleright"),eC(eq,eI,eD,"{","\\{"),eC(eN,eI,eF,"{","\\{"),eC(eN,eI,eF,"{","\\textbraceleft"),eC(eq,eI,eR,"}","\\}"),eC(eN,eI,eF,"}","\\}"),eC(eN,eI,eF,"}","\\textbraceright"),eC(eq,eI,eD,"{","\\lbrace"),eC(eq,eI,eR,"}","\\rbrace"),eC(eq,eI,eD,"[","\\lbrack",!0),eC(eN,eI,eF,"[","\\lbrack",!0),eC(eq,eI,eR,"]","\\rbrack",!0),eC(eN,eI,eF,"]","\\rbrack",!0),eC(eq,eI,eD,"(","\\lparen",!0),eC(eq,eI,eR,")","\\rparen",!0),eC(eN,eI,eF,"<","\\textless",!0),eC(eN,eI,eF,">","\\textgreater",!0),eC(eq,eI,eD,"\u230A","\\lfloor",!0),eC(eq,eI,eR,"\u230B","\\rfloor",!0),eC(eq,eI,eD,"\u2308","\\lceil",!0),eC(eq,eI,eR,"\u2309","\\rceil",!0),eC(eq,eI,eF,"\\","\\backslash"),eC(eq,eI,eF,"\u2223","|"),eC(eq,eI,eF,"\u2223","\\vert"),eC(eN,eI,eF,"|","\\textbar",!0),eC(eq,eI,eF,"\u2225","\\|"),eC(eq,eI,eF,"\u2225","\\Vert"),eC(eN,eI,eF,"\u2225","\\textbardbl"),eC(eN,eI,eF,"~","\\textasciitilde"),eC(eN,eI,eF,"\\","\\textbackslash"),eC(eN,eI,eF,"^","\\textasciicircum"),eC(eq,eI,"rel","\u2191","\\uparrow",!0),eC(eq,eI,"rel","\u21D1","\\Uparrow",!0),eC(eq,eI,"rel","\u2193","\\downarrow",!0),eC(eq,eI,"rel","\u21D3","\\Downarrow",!0),eC(eq,eI,"rel","\u2195","\\updownarrow",!0),eC(eq,eI,"rel","\u21D5","\\Updownarrow",!0),eC(eq,eI,eL,"\u2210","\\coprod"),eC(eq,eI,eL,"\u22C1","\\bigvee"),eC(eq,eI,eL,"\u22C0","\\bigwedge"),eC(eq,eI,eL,"\u2A04","\\biguplus"),eC(eq,eI,eL,"\u22C2","\\bigcap"),eC(eq,eI,eL,"\u22C3","\\bigcup"),eC(eq,eI,eL,"\u222B","\\int"),eC(eq,eI,eL,"\u222B","\\intop"),eC(eq,eI,eL,"\u222C","\\iint"),eC(eq,eI,eL,"\u222D","\\iiint"),eC(eq,eI,eL,"\u220F","\\prod"),eC(eq,eI,eL,"\u2211","\\sum"),eC(eq,eI,eL,"\u2A02","\\bigotimes"),eC(eq,eI,eL,"\u2A01","\\bigoplus"),eC(eq,eI,eL,"\u2A00","\\bigodot"),eC(eq,eI,eL,"\u222E","\\oint"),eC(eq,eI,eL,"\u222F","\\oiint"),eC(eq,eI,eL,"\u2230","\\oiiint"),eC(eq,eI,eL,"\u2A06","\\bigsqcup"),eC(eq,eI,eL,"\u222B","\\smallint"),eC(eN,eI,eO,"\u2026","\\textellipsis"),eC(eq,eI,eO,"\u2026","\\mathellipsis"),eC(eN,eI,eO,"\u2026","\\ldots",!0),eC(eq,eI,eO,"\u2026","\\ldots",!0),eC(eq,eI,eO,"\u22EF","\\@cdots",!0),eC(eq,eI,eO,"\u22F1","\\ddots",!0),eC(eq,eI,eF,"\u22EE","\\varvdots"),eC(eq,eI,eH,"\u02CA","\\acute"),eC(eq,eI,eH,"\u02CB","\\grave"),eC(eq,eI,eH,"\xa8","\\ddot"),eC(eq,eI,eH,"~","\\tilde"),eC(eq,eI,eH,"\u02C9","\\bar"),eC(eq,eI,eH,"\u02D8","\\breve"),eC(eq,eI,eH,"\u02C7","\\check"),eC(eq,eI,eH,"^","\\hat"),eC(eq,eI,eH,"\u20D7","\\vec"),eC(eq,eI,eH,"\u02D9","\\dot"),eC(eq,eI,eH,"\u02DA","\\mathring"),eC(eq,eI,eE,"\uE131","\\@imath"),eC(eq,eI,eE,"\uE237","\\@jmath"),eC(eq,eI,eF,"\u0131","\u0131"),eC(eq,eI,eF,"\u0237","\u0237"),eC(eN,eI,eF,"\u0131","\\i",!0),eC(eN,eI,eF,"\u0237","\\j",!0),eC(eN,eI,eF,"\xdf","\\ss",!0),eC(eN,eI,eF,"\xe6","\\ae",!0),eC(eN,eI,eF,"\u0153","\\oe",!0),eC(eN,eI,eF,"\xf8","\\o",!0),eC(eN,eI,eF,"\xc6","\\AE",!0),eC(eN,eI,eF,"\u0152","\\OE",!0),eC(eN,eI,eF,"\xd8","\\O",!0),eC(eN,eI,eH,"\u02CA","\\'"),eC(eN,eI,eH,"\u02CB","\\`"),eC(eN,eI,eH,"\u02C6","\\^"),eC(eN,eI,eH,"\u02DC","\\~"),eC(eN,eI,eH,"\u02C9","\\="),eC(eN,eI,eH,"\u02D8","\\u"),eC(eN,eI,eH,"\u02D9","\\."),eC(eN,eI,eH,"\xb8","\\c"),eC(eN,eI,eH,"\u02DA","\\r"),eC(eN,eI,eH,"\u02C7","\\v"),eC(eN,eI,eH,"\xa8",'\\"'),eC(eN,eI,eH,"\u02DD","\\H"),eC(eN,eI,eH,"\u25EF","\\textcircled");var eG={"--":!0,"---":!0,"``":!0,"''":!0};eC(eN,eI,eF,"\u2013","--",!0),eC(eN,eI,eF,"\u2013","\\textendash"),eC(eN,eI,eF,"\u2014","---",!0),eC(eN,eI,eF,"\u2014","\\textemdash"),eC(eN,eI,eF,"\u2018","`",!0),eC(eN,eI,eF,"\u2018","\\textquoteleft"),eC(eN,eI,eF,"\u2019","'",!0),eC(eN,eI,eF,"\u2019","\\textquoteright"),eC(eN,eI,eF,"\u201C","``",!0),eC(eN,eI,eF,"\u201C","\\textquotedblleft"),eC(eN,eI,eF,"\u201D","''",!0),eC(eN,eI,eF,"\u201D","\\textquotedblright"),eC(eq,eI,eF,"\xb0","\\degree",!0),eC(eN,eI,eF,"\xb0","\\degree"),eC(eN,eI,eF,"\xb0","\\textdegree",!0),eC(eq,eI,eF,"\xa3","\\pounds"),eC(eq,eI,eF,"\xa3","\\mathsterling",!0),eC(eN,eI,eF,"\xa3","\\pounds"),eC(eN,eI,eF,"\xa3","\\textsterling",!0),eC(eq,"ams",eF,"\u2720","\\maltese"),eC(eN,"ams",eF,"\u2720","\\maltese");for(var eU='0123456789/@."',eY=0;eY{if(eu(e.classes)!==eu(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize)return!1;if(1===e.classes.length){var r=e.classes[0];if("mbin"===r||"mord"===r)return!1}for(var a in e.style)if(e.style.hasOwnProperty(a)&&e.style[a]!==t.style[a])return!1;for(var n in t.style)if(t.style.hasOwnProperty(n)&&e.style[n]!==t.style[n])return!1;return!0},tr=function(e){for(var t=0,r=0,a=0,n=0;nt&&(t=i.height),i.depth>r&&(r=i.depth),i.maxFontSize>a&&(a=i.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=a},ta=function(e,t,r,a){var n=new ev(e,t,r,a);return tr(n),n},tn=(e,t,r,a)=>new ev(e,t,r,a),ti=function(e){var t=new J(e);return tr(t),t},ts=function(e){if("individualShift"===e.positionType){for(var t,r=e.children,a=[r[0]],n=-r[0].shift-r[0].elem.depth,i=n,s=1;s0)return te(n,l,a,t,i.concat(h));if(o){if("boldsymbol"===o){var m,c,p,u,d,g,f=(m=n,c=a,p=0,u=0,"textord"!==r&&e9(m,"Math-BoldItalic",c).metrics?{fontName:"Math-BoldItalic",fontClass:"boldsymbol"}:{fontName:"Main-Bold",fontClass:"mathbf"});d=f.fontName,g=[f.fontClass]}else s?(d=tl[o].fontName,g=[o]):(d=to(o,t.fontWeight,t.fontShape),g=[o,t.fontWeight,t.fontShape]);if(e9(n,d,a).metrics)return te(n,d,a,t,i.concat(g));if(eG.hasOwnProperty(n)&&"Typewriter"===d.slice(0,10)){for(var v=[],b=0;b{var r=ta(["mspace"],[],t),a=ec(e,t);return r.style.marginRight=ep(a),r},staticSvg:function(e,t){var[r,a,n]=th[e],i=tn(["overlay"],[new ek([new eS(r)],{width:ep(a),height:ep(n),style:"width:"+ep(a),viewBox:"0 0 "+1e3*a+" "+1e3*n,preserveAspectRatio:"xMinYMin"})],t);return i.height=n,i.style.height=ep(n),i.style.width=ep(a),i},svgData:th,tryCombineChars:e=>{for(var t=0;t{var r=t.classes[0],a=e.classes[0];"mbin"===r&&H.contains(tz,a)?t.classes[0]="mord":"mbin"===a&&H.contains(tM,r)&&(e.classes[0]="mord")},{node:m},c,p),tC(n,(e,t)=>{var r=tI(t),a=tI(e),n=r&&a?e.hasClass("mtight")?tg[r][a]:td[r][a]:null;if(n)return tm.makeGlue(n,l)},{node:m},c,p),n},tC=function e(t,r,a,n,i){n&&t.push(n);for(var s=0;s{t.splice(n+1,0,e),s++})}n&&t.pop()},tq=function(e){return e instanceof J||e instanceof eb||e instanceof ev&&e.hasClass("enclosing")?e:null},tN=function e(t,r){var a=tq(t);if(a){var n=a.children;if(n.length){if("right"===r)return e(n[n.length-1],"right");if("left"===r)return e(n[0],"left")}}return t},tI=function(e,t){return e?(t&&(e=tN(e,t)),tT[e.classes[0]]||null):null},tH=function(e,t){var r=["nulldelimiter"].concat(e.baseSizingClasses());return tS(t.concat(r))},tR=function(e,t,r){if(!e)return tS();if(tv[e.type]){var a=tv[e.type](e,t);if(r&&t.size!==r.size){a=tS(t.sizingClasses(r),[a],t);var n=t.sizeMultiplier/r.sizeMultiplier;a.height*=n,a.depth*=n}return a}throw new i("Got group of unknown type: '"+e.type+"'")};function tO(e,t){var r=tS(["base"],e,t),a=tS(["strut"]);return a.style.height=ep(r.height+r.depth),r.depth&&(a.style.verticalAlign=ep(-r.depth)),r.children.unshift(a),r}function tE(e,t){var r,a,n=null;1===e.length&&"tag"===e[0].type&&(n=e[0].tag,e=e[0].body);var i=tB(e,t,"root");2===i.length&&i[1].hasClass("tag")&&(r=i.pop());for(var s=[],o=[],l=0;l0&&(s.push(tO(o,t)),o=[]),s.push(i[l]));o.length>0&&s.push(tO(o,t)),n?((a=tO(tB(n,t,!0))).classes=["tag"],s.push(a)):r&&s.push(r);var m=tS(["katex-html"],s);if(m.setAttribute("aria-hidden","true"),a){var c=a.children[0];c.style.height=ep(m.height+m.depth),m.depth&&(c.style.verticalAlign=ep(-m.depth))}return m}function tL(e){return new J(e)}class tD{constructor(e,t,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=r||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=eu(this.classes));for(var r=0;r0&&(e+=' class ="'+H.escape(eu(this.classes))+'"'),e+=">";for(var r=0;r"}toText(){return this.children.map(e=>e.toText()).join("")}}class tV{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return H.escape(this.toText())}toText(){return this.text}}var tP={MathNode:tD,TextNode:tV,SpaceNode:class e{constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character="\u200A":e>=.1666&&e<=.1667?this.character="\u2009":e>=.2222&&e<=.2223?this.character="\u2005":e>=.2777&&e<=.2778?this.character="\u2005\u200A":e>=-.05556&&e<=-.05555?this.character="\u200A\u2063":e>=-.1667&&e<=-.1666?this.character="\u2009\u2063":e>=-.2223&&e<=-.2222?this.character="\u205F\u2063":e>=-.2778&&e<=-.2777?this.character="\u2005\u2063":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",ep(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},newDocumentFragment:tL},tF=function(e,t,r){return eB[t][e]&&eB[t][e].replace&&55349!==e.charCodeAt(0)&&!(eG.hasOwnProperty(e)&&r&&(r.fontFamily&&"tt"===r.fontFamily.slice(4,6)||r.font&&"tt"===r.font.slice(4,6)))&&(e=eB[t][e].replace),new tP.TextNode(e)},tG=function(e){return 1===e.length?e[0]:new tP.MathNode("mrow",e)},tU=function(e,t){if("texttt"===t.fontFamily)return"monospace";if("textsf"===t.fontFamily){if("textit"===t.fontShape&&"textbf"===t.fontWeight)return"sans-serif-bold-italic";if("textit"===t.fontShape)return"sans-serif-italic";else if("textbf"===t.fontWeight)return"bold-sans-serif";else return"sans-serif"}if("textit"===t.fontShape&&"textbf"===t.fontWeight)return"bold-italic";else if("textit"===t.fontShape)return"italic";else if("textbf"===t.fontWeight)return"bold";var r=t.font;if(!r||"mathnormal"===r)return null;var a=e.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"textord"===e.type?"bold":"bold-italic";if("mathbf"===r)return"bold";else if("mathbb"===r)return"double-struck";else if("mathfrak"===r)return"fraktur";else if("mathscr"===r||"mathcal"===r)return"script";else if("mathsf"===r)return"sans-serif";else if("mathtt"===r)return"monospace";var n=e.text;return H.contains(["\\imath","\\jmath"],n)?null:(eB[a][n]&&eB[a][n].replace&&(n=eB[a][n].replace),er(n,tm.fontMap[r].fontName,a))?tm.fontMap[r].variant:null},tY=function(e,t,r){if(1===e.length){var a,n=tW(e[0],t);return r&&n instanceof tD&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var i=[],s=0;s0&&(m.text=m.text.slice(0,1)+"\u0338"+m.text.slice(1),i.pop())}}}i.push(o),a=o}return i},tX=function(e,t,r){return tG(tY(e,t,r))},tW=function(e,t){if(!e)return new tP.MathNode("mrow");if(tb[e.type])return tb[e.type](e,t);throw new i("Got group of unknown type: '"+e.type+"'")};function t_(e,t,r,a,n){var i,s=tY(e,r);i=1===s.length&&s[0]instanceof tD&&H.contains(["mrow","mtable"],s[0].type)?s[0]:new tP.MathNode("mrow",s);var o=new tP.MathNode("annotation",[new tP.TextNode(t)]);o.setAttribute("encoding","application/x-tex");var l=new tP.MathNode("semantics",[i,o]),h=new tP.MathNode("math",[l]);return h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),a&&h.setAttribute("display","block"),tm.makeSpan([n?"katex":"katex-mathml"],[h])}var tj=function(e){return new eo({style:e.displayMode?Y.DISPLAY:Y.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},t$=function(e,t){if(t.displayMode){var r=["katex-display"];t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=tm.makeSpan(r,[e])}return e},tZ=function(e,t,r){var a,n=tj(r);if("mathml"===r.output)return t_(e,t,n,r.displayMode,!0);if("html"===r.output){var i=tE(e,n);a=tm.makeSpan(["katex"],[i])}else{var s=t_(e,t,n,r.displayMode,!1),o=tE(e,n);a=tm.makeSpan(["katex"],[s,o])}return t$(a,r)},tK=function(e,t,r){var a=tE(e,tj(r));return t$(tm.makeSpan(["katex"],[a]),r)},tJ={widehat:"^",widecheck:"\u02C7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23DF",overbrace:"\u23DE",overgroup:"\u23E0",undergroup:"\u23E1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21D2",xRightarrow:"\u21D2",overleftharpoon:"\u21BC",xleftharpoonup:"\u21BC",overrightharpoon:"\u21C0",xrightharpoonup:"\u21C0",xLeftarrow:"\u21D0",xLeftrightarrow:"\u21D4",xhookleftarrow:"\u21A9",xhookrightarrow:"\u21AA",xmapsto:"\u21A6",xrightharpoondown:"\u21C1",xleftharpoondown:"\u21BD",xrightleftharpoons:"\u21CC",xleftrightharpoons:"\u21CB",xtwoheadleftarrow:"\u219E",xtwoheadrightarrow:"\u21A0",xlongequal:"=",xtofrom:"\u21C4",xrightleftarrows:"\u21C4",xrightequilibrium:"\u21CC",xleftequilibrium:"\u21CB","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},tQ={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},t0={encloseSpan:function(e,t,r,a,n){var i,s=e.height+e.depth+r+a;if(/fbox|color|angl/.test(t)){if(i=tm.makeSpan(["stretchy",t],[],n),"fbox"===t){var o=n.color&&n.getColor();o&&(i.style.borderColor=o)}}else{var l=[];/^[bx]cancel$/.test(t)&&l.push(new eM({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&l.push(new eM({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var h=new ek(l,{width:"100%",height:ep(s)});i=tm.makeSvgSpan([],[h],n)}return i.height=s,i.style.height=ep(s),i},mathMLnode:function(e){var t=new tP.MathNode("mo",[new tP.TextNode(tJ[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},svgSpan:function(e,t){var{span:r,minWidth:a,height:n}=function(){var r=4e5,a=e.label.slice(1);if(H.contains(["widehat","widecheck","widetilde","utilde"],a)){var n,i,s,o,l="ordgroup"===(o=e.base).type?o.body.length:1;if(l>5)"widehat"===a||"widecheck"===a?(n=420,r=2364,s=.42,i=a+"4"):(n=312,r=2340,s=.34,i="tilde4");else{var h=[1,1,2,2,3,3][l];"widehat"===a||"widecheck"===a?(r=[0,1062,2364,2364,2364][h],n=[0,239,300,360,420][h],s=[0,.24,.3,.3,.36,.42][h],i=a+h):(r=[0,600,1033,2339,2340][h],n=[0,260,286,306,312][h],s=[0,.26,.286,.3,.306,.34][h],i="tilde"+h)}var m=new ek([new eS(i)],{width:"100%",height:ep(s),viewBox:"0 0 "+r+" "+n,preserveAspectRatio:"none"});return{span:tm.makeSvgSpan([],[m],t),minWidth:0,height:s}}var c,p,u=[],d=tQ[a],[g,f,v]=d,b=v/1e3,y=g.length;if(1===y){var x=d[3];c=["hide-tail"],p=[x]}else if(2===y)c=["halfarrow-left","halfarrow-right"],p=["xMinYMin","xMaxYMin"];else if(3===y)c=["brace-left","brace-center","brace-right"],p=["xMinYMin","xMidYMin","xMaxYMin"];else throw Error("Correct katexImagesData or update code here to support\n "+y+" children.");for(var w=0;w0&&(r.style.minWidth=ep(a)),r}};function t1(e,t){if(!e||e.type!==t)throw Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function t4(e){var t=t5(e);if(!t)throw Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function t5(e){return e&&("atom"===e.type||eT.hasOwnProperty(e.type))?e:null}var t6=(e,t)=>{e&&"supsub"===e.type?(o=(l=t1(e.base,"accent")).base,e.base=o,h=function(e){if(e instanceof ev)return e;throw Error("Expected span but got "+String(e)+".")}(tR(e,t)),e.base=l):o=(l=t1(e,"accent")).base;var r=tR(o,t.havingCrampedStyle()),a=l.isShifty&&H.isCharacterBox(o),n=0;a&&(n=ez(tR(H.getBaseElem(o),t.havingCrampedStyle())).skew);var i="\\c"===l.label,s=i?r.height+r.depth:Math.min(r.height,t.fontMetrics().xHeight);if(l.isStretchy)m=t0.svgSpan(l,t),m=tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"elem",elem:m,wrapperClasses:["svg-align"],wrapperStyle:n>0?{width:"calc(100% - "+ep(2*n)+")",marginLeft:ep(2*n)}:void 0}]},t);else{"\\vec"===l.label?(c=tm.staticSvg("vec",t),p=tm.svgData.vec[1]):((c=ez(c=tm.makeOrd({mode:l.mode,text:l.label},t,"textord"))).italic=0,p=c.width,i&&(s+=c.depth)),m=tm.makeSpan(["accent-body"],[c]);var o,l,h,m,c,p,u="\\textcircled"===l.label;u&&(m.classes.push("accent-full"),s=r.height);var d=n;!u&&(d-=p/2),m.style.left=ep(d),"\\textcircled"===l.label&&(m.style.top=".2em"),m=tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:-s},{type:"elem",elem:m}]},t)}var g=tm.makeSpan(["mord","accent"],[m],t);return h?(h.children[0]=g,h.height=Math.max(g.height,h.height),h.classes[0]="mord",h):g},t7=(e,t)=>{var r=e.isStretchy?t0.mathMLnode(e.label):new tP.MathNode("mo",[tF(e.label,e.mode)]),a=new tP.MathNode("mover",[tW(e.base,t),r]);return a.setAttribute("accent","true"),a},t3=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(e=>"\\"+e).join("|"));ty({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(e,t)=>{var r=tw(t[0]),a=!t3.test(e.funcName),n=!a||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:a,isShifty:n,base:r}},htmlBuilder:t6,mathmlBuilder:t7}),ty({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(e,t)=>{var r=t[0],a=e.parser.mode;return"math"===a&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),a="text"),{type:"accent",mode:a,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:t6,mathmlBuilder:t7}),ty({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(e,t)=>{var{parser:r,funcName:a}=e,n=t[0];return{type:"accentUnder",mode:r.mode,label:a,base:n}},htmlBuilder:(e,t)=>{var r=tR(e.base,t),a=t0.svgSpan(e,t),n="\\utilde"===e.label?.12:0,i=tm.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:a,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:r}]},t);return tm.makeSpan(["mord","accentunder"],[i],t)},mathmlBuilder:(e,t)=>{var r=t0.mathMLnode(e.label),a=new tP.MathNode("munder",[tW(e.base,t),r]);return a.setAttribute("accentunder","true"),a}});var t8=e=>{var t=new tP.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};ty({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:a,funcName:n}=e;return{type:"xArrow",mode:a.mode,label:n,body:t[0],below:r[0]}},htmlBuilder(e,t){var r,a,n=t.style,i=t.havingStyle(n.sup()),s=tm.wrapFragment(tR(e.body,i,t),t),o="\\x"===e.label.slice(0,2)?"x":"cd";s.classes.push(o+"-arrow-pad"),e.below&&(i=t.havingStyle(n.sub()),(r=tm.wrapFragment(tR(e.below,i,t),t)).classes.push(o+"-arrow-pad"));var l=t0.svgSpan(e,t),h=-t.fontMetrics().axisHeight+.5*l.height,m=-t.fontMetrics().axisHeight-.5*l.height-.111;if((s.depth>.25||"\\xleftequilibrium"===e.label)&&(m-=s.depth),r){var c=-t.fontMetrics().axisHeight+r.height+.5*l.height+.111;a=tm.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:m},{type:"elem",elem:l,shift:h},{type:"elem",elem:r,shift:c}]},t)}else a=tm.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:m},{type:"elem",elem:l,shift:h}]},t);return a.children[0].children[0].children[1].classes.push("svg-align"),tm.makeSpan(["mrel","x-arrow"],[a],t)},mathmlBuilder(e,t){var r,a=t0.mathMLnode(e.label);if(a.setAttribute("minsize","x"===e.label.charAt(0)?"1.75em":"3.0em"),e.body){var n=t8(tW(e.body,t));if(e.below){var i=t8(tW(e.below,t));r=new tP.MathNode("munderover",[a,i,n])}else r=new tP.MathNode("mover",[a,n])}else if(e.below){var s=t8(tW(e.below,t));r=new tP.MathNode("munder",[a,s])}else r=t8(),r=new tP.MathNode("mover",[a,r]);return r}});var t2=tm.makeSpan;function t9(e,t){var r=tB(e.body,t,!0);return t2([e.mclass],r,t)}function re(e,t){var r,a=tY(e.body,t);return"minner"===e.mclass?r=new tP.MathNode("mpadded",a):"mord"===e.mclass?e.isCharacterBox?(r=a[0]).type="mi":r=new tP.MathNode("mi",a):(e.isCharacterBox?(r=a[0]).type="mo":r=new tP.MathNode("mo",a),"mbin"===e.mclass?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):"mpunct"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):"mopen"===e.mclass||"mclose"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0em"):"minner"===e.mclass&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}ty({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(e,t){var{parser:r,funcName:a}=e,n=t[0];return{type:"mclass",mode:r.mode,mclass:"m"+a.slice(5),body:tk(n),isCharacterBox:H.isCharacterBox(n)}},htmlBuilder:t9,mathmlBuilder:re});var rt=e=>{var t="ordgroup"===e.type&&e.body.length?e.body[0]:e;return"atom"===t.type&&("bin"===t.family||"rel"===t.family)?"m"+t.family:"mord"};ty({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){var{parser:r}=e;return{type:"mclass",mode:r.mode,mclass:rt(t[0]),body:tk(t[1]),isCharacterBox:H.isCharacterBox(t[1])}}}),ty({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){var r,{parser:a,funcName:n}=e,i=t[1],s=t[0];r="\\stackrel"!==n?rt(i):"mrel";var o={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:"\\stackrel"!==n,body:tk(i)},l={type:"supsub",mode:s.mode,base:o,sup:"\\underset"===n?null:s,sub:"\\underset"===n?s:null};return{type:"mclass",mode:a.mode,mclass:r,body:[l],isCharacterBox:H.isCharacterBox(l)}},htmlBuilder:t9,mathmlBuilder:re}),ty({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"pmb",mode:r.mode,mclass:rt(t[0]),body:tk(t[0])}},htmlBuilder(e,t){var r=tB(e.body,t,!0),a=tm.makeSpan([e.mclass],r,t);return a.style.textShadow="0.02em 0.01em 0.04px",a},mathmlBuilder(e,t){var r=tY(e.body,t),a=new tP.MathNode("mstyle",r);return a.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),a}});var rr={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},ra=()=>({type:"styling",body:[],mode:"math",style:"display"}),rn=e=>"textord"===e.type&&"@"===e.text,ri=(e,t)=>("mathord"===e.type||"atom"===e.type)&&e.text===t;ty({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:a}=e;return{type:"cdlabel",mode:r.mode,side:a.slice(4),label:t[0]}},htmlBuilder(e,t){var r=t.havingStyle(t.style.sup()),a=tm.wrapFragment(tR(e.label,r,t),t);return a.classes.push("cd-label-"+e.side),a.style.bottom=ep(.8-a.depth),a.height=0,a.depth=0,a},mathmlBuilder(e,t){var r=new tP.MathNode("mrow",[tW(e.label,t)]);return(r=new tP.MathNode("mpadded",[r])).setAttribute("width","0"),"left"===e.side&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),(r=new tP.MathNode("mstyle",[r])).setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}}),ty({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){var{parser:r}=e;return{type:"cdlabelparent",mode:r.mode,fragment:t[0]}},htmlBuilder(e,t){var r=tm.wrapFragment(tR(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder:(e,t)=>new tP.MathNode("mrow",[tW(e.fragment,t)])}),ty({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(e,t){for(var r,{parser:a}=e,n=t1(t[0],"ordgroup").body,s="",o=0;o=1114111)throw new i("\\@char with invalid code point "+s);l<=65535?r=String.fromCharCode(l):(l-=65536,r=String.fromCharCode((l>>10)+55296,(1023&l)+56320));return{type:"textord",mode:a.mode,text:r}}});var rs=(e,t)=>{var r=tB(e.body,t.withColor(e.color),!1);return tm.makeFragment(r)},ro=(e,t)=>{var r=tY(e.body,t.withColor(e.color)),a=new tP.MathNode("mstyle",r);return a.setAttribute("mathcolor",e.color),a};ty({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(e,t){var{parser:r}=e,a=t1(t[0],"color-token").color,n=t[1];return{type:"color",mode:r.mode,color:a,body:tk(n)}},htmlBuilder:rs,mathmlBuilder:ro}),ty({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(e,t){var{parser:r,breakOnTokenText:a}=e,n=t1(t[0],"color-token").color;r.gullet.macros.set("\\current@color",n);var i=r.parseExpression(!0,a);return{type:"color",mode:r.mode,color:n,body:i}},htmlBuilder:rs,mathmlBuilder:ro}),ty({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(e,t,r){var{parser:a}=e,n="["===a.gullet.future().text?a.parseSizeGroup(!0):null,i=!a.settings.displayMode||!a.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:a.mode,newLine:i,size:n&&t1(n,"size").value}},htmlBuilder(e,t){var r=tm.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=ep(ec(e.size,t)))),r},mathmlBuilder(e,t){var r=new tP.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",ep(ec(e.size,t)))),r}});var rl={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},rh=e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new i("Expected a control sequence",e);return t},rm=e=>{var t=e.gullet.popToken();return"="===t.text&&" "===(t=e.gullet.popToken()).text&&(t=e.gullet.popToken()),t},rc=(e,t,r,a)=>{var n=e.gullet.macros.get(r.text);null==n&&(r.noexpand=!0,n={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,n,a)};ty({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t,funcName:r}=e;t.consumeSpaces();var a=t.fetch();if(rl[a.text])return("\\global"===r||"\\\\globallong"===r)&&(a.text=rl[a.text]),t1(t.parseFunction(),"internal");throw new i("Invalid token after macro prefix",a)}}),ty({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var t,{parser:r,funcName:a}=e,n=r.gullet.popToken(),s=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(s))throw new i("Expected a control sequence",n);for(var o=0,l=[[]];"{"!==r.gullet.future().text;)if("#"===(n=r.gullet.popToken()).text){if("{"===r.gullet.future().text){t=r.gullet.future(),l[o].push("{");break}if(n=r.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new i('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==o+1)throw new i('Argument number "'+n.text+'" out of order');o++,l.push([])}else if("EOF"===n.text)throw new i("Expected a macro definition");else l[o].push(n.text);var{tokens:h}=r.gullet.consumeArg();return t&&h.unshift(t),("\\edef"===a||"\\xdef"===a)&&(h=r.gullet.expandTokens(h)).reverse(),r.gullet.macros.set(s,{tokens:h,numArgs:o,delimiters:l},a===rl[a]),{type:"internal",mode:r.mode}}}),ty({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,a=rh(t.gullet.popToken());t.gullet.consumeSpaces();var n=rm(t);return rc(t,a,n,"\\\\globallet"===r),{type:"internal",mode:t.mode}}}),ty({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,a=rh(t.gullet.popToken()),n=t.gullet.popToken(),i=t.gullet.popToken();return rc(t,a,i,"\\\\globalfuture"===r),t.gullet.pushToken(i),t.gullet.pushToken(n),{type:"internal",mode:t.mode}}});var rp=function(e,t,r){var a=er(eB.math[e]&&eB.math[e].replace||e,t,r);if(!a)throw Error("Unsupported symbol "+e+" and font size "+t+".");return a},ru=function(e,t,r,a){var n=r.havingBaseStyle(t),i=tm.makeSpan(a.concat(n.sizingClasses(r)),[e],r),s=n.sizeMultiplier/r.sizeMultiplier;return i.height*=s,i.depth*=s,i.maxFontSize=n.sizeMultiplier,i},rd=function(e,t,r){var a=t.havingBaseStyle(r),n=(1-t.sizeMultiplier/a.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=ep(n),e.height-=n,e.depth+=n},rg=function(e,t,r,a,n,i){var s=ru(tm.makeSymbol(e,"Main-Regular",n,a),t,a,i);return r&&rd(s,a,t),s},rf=function(e,t,r,a,n,i){var s,o,l,h,m=(s=e,o=t,l=n,h=a,tm.makeSymbol(s,"Size"+o+"-Regular",l,h)),c=ru(tm.makeSpan(["delimsizing","size"+t],[m],a),Y.TEXT,a,i);return r&&rd(c,a,Y.TEXT),c},rv=function(e,t,r){var a;return a="Size1-Regular"===t?"delim-size1":"delim-size4",{type:"elem",elem:tm.makeSpan(["delimsizinginner",a],[tm.makeSpan([],[tm.makeSymbol(e,t,r)])])}},rb=function(e,t,r){var a=Q["Size4-Regular"][e.charCodeAt(0)]?Q["Size4-Regular"][e.charCodeAt(0)][4]:Q["Size1-Regular"][e.charCodeAt(0)][4],n=new ek([new eS("inner",$(e,Math.round(1e3*t)))],{width:ep(a),height:ep(t),style:"width:"+ep(a),viewBox:"0 0 "+1e3*a+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),i=tm.makeSvgSpan([],[n],r);return i.height=t,i.style.height=ep(t),i.style.width=ep(a),{type:"elem",elem:i}},ry={type:"kern",size:-.008},rx=["|","\\lvert","\\rvert","\\vert"],rw=["\\|","\\lVert","\\rVert","\\Vert"],rk=function(e,t,r,a,n,i){var s,o,l,h,m="",c=0;s=l=h=e,o=null;var p="Size1-Regular";"\\uparrow"===e?l=h="\u23D0":"\\Uparrow"===e?l=h="\u2016":"\\downarrow"===e?s=l="\u23D0":"\\Downarrow"===e?s=l="\u2016":"\\updownarrow"===e?(s="\\uparrow",l="\u23D0",h="\\downarrow"):"\\Updownarrow"===e?(s="\\Uparrow",l="\u2016",h="\\Downarrow"):H.contains(rx,e)?(l="\u2223",m="vert",c=333):H.contains(rw,e)?(l="\u2225",m="doublevert",c=556):"["===e||"\\lbrack"===e?(s="\u23A1",l="\u23A2",h="\u23A3",p="Size4-Regular",m="lbrack",c=667):"]"===e||"\\rbrack"===e?(s="\u23A4",l="\u23A5",h="\u23A6",p="Size4-Regular",m="rbrack",c=667):"\\lfloor"===e||"\u230A"===e?(l=s="\u23A2",h="\u23A3",p="Size4-Regular",m="lfloor",c=667):"\\lceil"===e||"\u2308"===e?(s="\u23A1",l=h="\u23A2",p="Size4-Regular",m="lceil",c=667):"\\rfloor"===e||"\u230B"===e?(l=s="\u23A5",h="\u23A6",p="Size4-Regular",m="rfloor",c=667):"\\rceil"===e||"\u2309"===e?(s="\u23A4",l=h="\u23A5",p="Size4-Regular",m="rceil",c=667):"("===e||"\\lparen"===e?(s="\u239B",l="\u239C",h="\u239D",p="Size4-Regular",m="lparen",c=875):")"===e||"\\rparen"===e?(s="\u239E",l="\u239F",h="\u23A0",p="Size4-Regular",m="rparen",c=875):"\\{"===e||"\\lbrace"===e?(s="\u23A7",o="\u23A8",h="\u23A9",l="\u23AA",p="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(s="\u23AB",o="\u23AC",h="\u23AD",l="\u23AA",p="Size4-Regular"):"\\lgroup"===e||"\u27EE"===e?(s="\u23A7",h="\u23A9",l="\u23AA",p="Size4-Regular"):"\\rgroup"===e||"\u27EF"===e?(s="\u23AB",h="\u23AD",l="\u23AA",p="Size4-Regular"):"\\lmoustache"===e||"\u23B0"===e?(s="\u23A7",h="\u23AD",l="\u23AA",p="Size4-Regular"):("\\rmoustache"===e||"\u23B1"===e)&&(s="\u23AB",h="\u23A9",l="\u23AA",p="Size4-Regular");var u=rp(s,p,n),d=u.height+u.depth,g=rp(l,p,n),f=g.height+g.depth,v=rp(h,p,n),b=v.height+v.depth,y=0,x=1;if(null!==o){var w=rp(o,p,n);y=w.height+w.depth,x=2}var k=d+b+y,S=Math.max(0,Math.ceil((t-k)/(x*f))),M=k+S*x*f,z=a.fontMetrics().axisHeight;r&&(z*=a.sizeMultiplier);var A=M/2-z,T=[];if(m.length>0){var B=Math.round(1e3*M),C=K(m,Math.round(1e3*(M-d-b))),q=new eS(m,C),N=(c/1e3).toFixed(3)+"em",I=(B/1e3).toFixed(3)+"em",R=new ek([q],{width:N,height:I,viewBox:"0 0 "+c+" "+B}),O=tm.makeSvgSpan([],[R],a);O.height=B/1e3,O.style.width=N,O.style.height=I,T.push({type:"elem",elem:O})}else{if(T.push(rv(h,p,n)),T.push(ry),null===o)T.push(rb(l,M-d-b+.016,a));else{var E=(M-d-b-y)/2+.016;T.push(rb(l,E,a)),T.push(ry),T.push(rv(o,p,n)),T.push(ry),T.push(rb(l,E,a))}T.push(ry),T.push(rv(s,p,n))}var L=a.havingBaseStyle(Y.TEXT),D=tm.makeVList({positionType:"bottom",positionData:A,children:T},L);return ru(tm.makeSpan(["delimsizing","mult"],[D],L),Y.TEXT,a,i)},rS=function(e,t,r,a,n){var i=j(e,a,r),s=new ek([new eS(e,i)],{width:"400em",height:ep(t),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return tm.makeSvgSpan(["hide-tail"],[s],n)},rM=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],rz=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],rA=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],rT=[0,1.2,1.8,2.4,3],rB=[{type:"small",style:Y.SCRIPTSCRIPT},{type:"small",style:Y.SCRIPT},{type:"small",style:Y.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],rC=[{type:"small",style:Y.SCRIPTSCRIPT},{type:"small",style:Y.SCRIPT},{type:"small",style:Y.TEXT},{type:"stack"}],rq=[{type:"small",style:Y.SCRIPTSCRIPT},{type:"small",style:Y.SCRIPT},{type:"small",style:Y.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],rN=function(e){if("small"===e.type)return"Main-Regular";if("large"===e.type)return"Size"+e.size+"-Regular";if("stack"===e.type)return"Size4-Regular";else throw Error("Add support for delim type '"+e.type+"' here.")},rI=function(e,t,r,a){for(var n=Math.min(2,3-a.style.size),i=n;it)return r[i]}return r[r.length-1]},rH=function(e,t,r,a,n,i){"<"===e||"\\lt"===e||"\u27E8"===e?e="\\langle":(">"===e||"\\gt"===e||"\u27E9"===e)&&(e="\\rangle"),s=H.contains(rA,e)?rB:H.contains(rM,e)?rq:rC;var s,o=rI(e,t,s,a);return"small"===o.type?rg(e,o.style,r,a,n,i):"large"===o.type?rf(e,o.size,r,a,n,i):rk(e,t,r,a,n,i)},rR={sqrtImage:function(e,t){var r,a,n=t.havingBaseSizing(),i=rI("\\surd",e*n.sizeMultiplier,rq,n),s=n.sizeMultiplier,o=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),l=0,h=0,m=0;return"small"===i.type?(m=1e3+1e3*o+80,e<1?s=1:e<1.4&&(s=.7),l=(1+o+.08)/s,h=(1+o)/s,(r=rS("sqrtMain",l,m,o,t)).style.minWidth="0.853em",a=.833/s):"large"===i.type?(m=1080*rT[i.size],h=(rT[i.size]+o)/s,l=(rT[i.size]+o+.08)/s,(r=rS("sqrtSize"+i.size,l,m,o,t)).style.minWidth="1.02em",a=1/s):(l=e+o+.08,h=e+o,(r=rS("sqrtTall",l,m=Math.floor(1e3*e+o)+80,o,t)).style.minWidth="0.742em",a=1.056),r.height=h,r.style.height=ep(l),{span:r,advanceWidth:a,ruleWidth:(t.fontMetrics().sqrtRuleThickness+o)*s}},sizedDelim:function(e,t,r,a,n){if("<"===e||"\\lt"===e||"\u27E8"===e?e="\\langle":(">"===e||"\\gt"===e||"\u27E9"===e)&&(e="\\rangle"),H.contains(rM,e)||H.contains(rA,e))return rf(e,t,!1,r,a,n);if(H.contains(rz,e))return rk(e,rT[t],!1,r,a,n);throw new i("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:rT,customSizedDelim:rH,leftRightDelim:function(e,t,r,a,n,i){var s=a.fontMetrics().axisHeight*a.sizeMultiplier,o=5/a.fontMetrics().ptPerEm,l=Math.max(t-s,r+s);return rH(e,Math.max(l/500*901,2*l-o),!0,a,n,i)}},rO={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},rE=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27E8","\\rangle","\u27E9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function rL(e,t){var r=t5(e);if(r&&H.contains(rE,r.text))return r;if(r)throw new i("Invalid delimiter '"+r.text+"' after '"+t.funcName+"'",e);throw new i("Invalid delimiter type '"+e.type+"'",e)}function rD(e){if(!e.body)throw Error("Bug: The leftright ParseNode wasn't fully parsed.")}ty({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>{var r=rL(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:rO[e.funcName].size,mclass:rO[e.funcName].mclass,delim:r.text}},htmlBuilder:(e,t)=>"."===e.delim?tm.makeSpan([e.mclass]):rR.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder:e=>{var t=[];"."!==e.delim&&t.push(tF(e.delim,e.mode));var r=new tP.MathNode("mo",t);"mopen"===e.mclass||"mclose"===e.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var a=ep(rR.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",a),r.setAttribute("maxsize",a),r}}),ty({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new i("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:rL(t[0],e).text,color:r}}}),ty({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var r=rL(t[0],e),a=e.parser;++a.leftrightDepth;var n=a.parseExpression(!1);--a.leftrightDepth,a.expect("\\right",!1);var i=t1(a.parseFunction(),"leftright-right");return{type:"leftright",mode:a.mode,body:n,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder:(e,t)=>{rD(e);for(var r,a,n=tB(e.body,t,!0,["mopen","mclose"]),i=0,s=0,o=!1,l=0;l{rD(e);var r=tY(e.body,t);if("."!==e.left){var a=new tP.MathNode("mo",[tF(e.left,e.mode)]);a.setAttribute("fence","true"),r.unshift(a)}if("."!==e.right){var n=new tP.MathNode("mo",[tF(e.right,e.mode)]);n.setAttribute("fence","true"),e.rightColor&&n.setAttribute("mathcolor",e.rightColor),r.push(n)}return tG(r)}}),ty({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var r=rL(t[0],e);if(!e.parser.leftrightDepth)throw new i("\\middle without preceding \\left",r);return{type:"middle",mode:e.parser.mode,delim:r.text}},htmlBuilder:(e,t)=>{var r;if("."===e.delim)r=tH(t,[]);else{r=rR.sizedDelim(e.delim,1,t,e.mode,[]);var a={delim:e.delim,options:t};r.isMiddle=a}return r},mathmlBuilder:(e,t)=>{var r="\\vert"===e.delim||"|"===e.delim?tF("|","text"):tF(e.delim,e.mode),a=new tP.MathNode("mo",[r]);return a.setAttribute("fence","true"),a.setAttribute("lspace","0.05em"),a.setAttribute("rspace","0.05em"),a}});var rV=(e,t)=>{var r,a,n=tm.wrapFragment(tR(e.body,t),t),i=e.label.slice(1),s=t.sizeMultiplier,o=0,l=H.isCharacterBox(e.body);if("sout"===i)(r=tm.makeSpan(["stretchy","sout"])).height=t.fontMetrics().defaultRuleThickness/s,o=-.5*t.fontMetrics().xHeight;else if("phase"===i){var h,m=ec({number:.6,unit:"pt"},t),c=ec({number:.35,unit:"ex"},t);s/=t.havingBaseSizing().sizeMultiplier;var p=n.height+n.depth+m+c;n.style.paddingLeft=ep(p/2+m);var u=Math.floor(1e3*p*s);var d=new ek([new eS("phase","M400000 "+(h=u)+" H0 L"+h/2+" 0 l65 45 L145 "+(h-80)+" H400000z")],{width:"400em",height:ep(u/1e3),viewBox:"0 0 400000 "+u,preserveAspectRatio:"xMinYMin slice"});(r=tm.makeSvgSpan(["hide-tail"],[d],t)).style.height=ep(p),o=n.depth+m+c}else{/cancel/.test(i)?!l&&n.classes.push("cancel-pad"):"angl"===i?n.classes.push("anglpad"):n.classes.push("boxpad");var g=0,f=0,v=0;/box/.test(i)?(v=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),f=g=t.fontMetrics().fboxsep+("colorbox"===i?0:v)):"angl"===i?(g=4*(v=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness)),f=Math.max(0,.25-n.depth)):f=g=l?.2:0,r=t0.encloseSpan(n,i,g,f,t),/fbox|boxed|fcolorbox/.test(i)?(r.style.borderStyle="solid",r.style.borderWidth=ep(v)):"angl"===i&&.049!==v&&(r.style.borderTopWidth=ep(v),r.style.borderRightWidth=ep(v)),o=n.depth+f,e.backgroundColor&&(r.style.backgroundColor=e.backgroundColor,e.borderColor&&(r.style.borderColor=e.borderColor))}if(e.backgroundColor)a=tm.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:o},{type:"elem",elem:n,shift:0}]},t);else{var b=/cancel|phase/.test(i)?["svg-align"]:[];a=tm.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:0},{type:"elem",elem:r,shift:o,wrapperClasses:b}]},t)}return(/cancel/.test(i)&&(a.height=n.height,a.depth=n.depth),/cancel/.test(i)&&!l)?tm.makeSpan(["mord","cancel-lap"],[a],t):tm.makeSpan(["mord"],[a],t)},rP=(e,t)=>{var r=0,a=new tP.MathNode(e.label.indexOf("colorbox")>-1?"mpadded":"menclose",[tW(e.body,t)]);switch(e.label){case"\\cancel":a.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":a.setAttribute("notation","downdiagonalstrike");break;case"\\phase":a.setAttribute("notation","phasorangle");break;case"\\sout":a.setAttribute("notation","horizontalstrike");break;case"\\fbox":a.setAttribute("notation","box");break;case"\\angl":a.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,a.setAttribute("width","+"+2*r+"pt"),a.setAttribute("height","+"+2*r+"pt"),a.setAttribute("lspace",r+"pt"),a.setAttribute("voffset",r+"pt"),"\\fcolorbox"===e.label){var n=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);a.setAttribute("style","border: "+n+"em solid "+String(e.borderColor))}break;case"\\xcancel":a.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&a.setAttribute("mathbackground",e.backgroundColor),a};ty({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(e,t,r){var{parser:a,funcName:n}=e,i=t1(t[0],"color-token").color,s=t[1];return{type:"enclose",mode:a.mode,label:n,backgroundColor:i,body:s}},htmlBuilder:rV,mathmlBuilder:rP}),ty({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(e,t,r){var{parser:a,funcName:n}=e,i=t1(t[0],"color-token").color,s=t1(t[1],"color-token").color,o=t[2];return{type:"enclose",mode:a.mode,label:n,backgroundColor:s,borderColor:i,body:o}},htmlBuilder:rV,mathmlBuilder:rP}),ty({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\fbox",body:t[0]}}}),ty({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:a}=e,n=t[0];return{type:"enclose",mode:r.mode,label:a,body:n}},htmlBuilder:rV,mathmlBuilder:rP}),ty({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\angl",body:t[0]}}});var rF={};function rG(e){for(var{type:t,names:r,props:a,handler:n,htmlBuilder:i,mathmlBuilder:s}=e,o={type:t,numArgs:a.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:n},l=0;l{if(!e.parser.settings.displayMode)throw new i("{"+e.envName+"} can be used only in display mode.")};function r_(e){if(-1===e.indexOf("ed"))return -1===e.indexOf("*")}function rj(e,t,r){var{hskipBeforeAndAfter:a,addJot:s,cols:o,arraystretch:l,colSeparationType:h,autoTag:m,singleRow:c,emptySingleRow:p,maxNumCols:u,leqno:d}=t;if(e.gullet.beginGroup(),!c&&e.gullet.macros.set("\\cr","\\\\\\relax"),!l){var g=e.gullet.expandMacroAsText("\\arraystretch");if(null==g)l=1;else if(!(l=parseFloat(g))||l<0)throw new i("Invalid \\arraystretch: "+g)}e.gullet.beginGroup();var f=[],v=[f],b=[],y=[],x=null!=m?[]:void 0;function w(){m&&e.gullet.macros.set("\\@eqnsw","1",!0)}function k(){x&&(e.gullet.macros.get("\\df@tag")?(x.push(e.subparse([new n("\\df@tag")])),e.gullet.macros.set("\\df@tag",void 0,!0)):x.push(!!m&&"1"===e.gullet.macros.get("\\@eqnsw")))}for(w(),y.push(rX(e));;){var S=e.parseExpression(!1,c?"\\end":"\\\\");e.gullet.endGroup(),e.gullet.beginGroup(),S={type:"ordgroup",mode:e.mode,body:S},r&&(S={type:"styling",mode:e.mode,style:r,body:[S]}),f.push(S);var M=e.fetch().text;if("&"===M){if(u&&f.length===u){if(c||h)throw new i("Too many tab characters: &",e.nextToken);e.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}e.consume()}else if("\\end"===M){k(),1===f.length&&"styling"===S.type&&0===S.body[0].body.length&&(v.length>1||!p)&&v.pop(),y.length0&&(x+=.25),c.push({pos:x,isDashed:e[t]})}for(w(l[0]),r=0;r0&&(M<(B+=y)&&(M=B),B=0),e.addJot&&(M+=f),z.height=S,z.depth=M,x+=S,z.pos=x,x+=M+B,m[r]=z,w(l[r+1])}var C=x/2+t.fontMetrics().axisHeight,q=e.cols||[],N=[],I=[];if(e.tags&&e.tags.some(e=>e))for(r=0;r=h)){var U=void 0;(a>0||e.hskipBeforeAndAfter)&&0!==(U=H.deflt(D.pregap,d))&&((n=tm.makeSpan(["arraycolsep"],[])).style.width=ep(U),N.push(n));var X=[];for(r=0;r0){for(var $=tm.makeLineSpan("hline",t,p),Z=tm.makeLineSpan("hdashline",t,p),K=[{type:"elem",elem:m,shift:0}];c.length>0;){var J=c.pop(),Q=J.pos-C;J.isDashed?K.push({type:"elem",elem:Z,shift:Q}):K.push({type:"elem",elem:$,shift:Q})}m=tm.makeVList({positionType:"individualShift",children:K},t)}if(0===I.length)return tm.makeSpan(["mord"],[m],t);var ee=tm.makeVList({positionType:"individualShift",children:I},t);return ee=tm.makeSpan(["tag"],[ee],t),tm.makeFragment([m,ee])},rK={c:"center ",l:"left ",r:"right "},rJ=function(e,t){for(var r=[],a=new tP.MathNode("mtd",[],["mtr-glue"]),n=new tP.MathNode("mtd",[],["mml-eqn-num"]),i=0;i0){var u=e.cols,d="",g=!1,f=0,v=u.length;"separator"===u[0].type&&(c+="top ",f=1),"separator"===u[u.length-1].type&&(c+="bottom ",v-=1);for(var b=f;b0?"left ":"")+(S[S.length-1].length>0?"right ":"");for(var M=1;M-1?"alignat":"align",s="split"===e.envName,o=rj(e.parser,{cols:a,addJot:!0,autoTag:s?void 0:r_(e.envName),emptySingleRow:!0,colSeparationType:n,maxNumCols:s?2:void 0,leqno:e.parser.settings.leqno},"display"),l=0,h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&"ordgroup"===t[0].type){for(var m="",c=0;c0&&p&&(g=1),a[u]={type:"align",align:d,pregap:g,postgap:0}}return o.colSeparationType=p?"align":"alignat",o};rG({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){var r=(t5(t[0])?[t[0]]:t1(t[0],"ordgroup").body).map(function(e){var t=t4(e).text;if(-1!=="lcr".indexOf(t))return{type:"align",align:t};if("|"===t)return{type:"separator",separator:"|"};if(":"===t)return{type:"separator",separator:":"};throw new i("Unknown column alignment: "+t,e)}),a={cols:r,hskipBeforeAndAfter:!0,maxNumCols:r.length};return rj(e.parser,a,r$(e.envName))},htmlBuilder:rZ,mathmlBuilder:rJ}),rG({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],r="c",a={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if("*"===e.envName.charAt(e.envName.length-1)){var n=e.parser;if(n.consumeSpaces(),"["===n.fetch().text){if(n.consume(),n.consumeSpaces(),r=n.fetch().text,-1==="lcr".indexOf(r))throw new i("Expected l or c or r",n.nextToken);n.consume(),n.consumeSpaces(),n.expect("]"),n.consume(),a.cols=[{type:"align",align:r}]}}var s=rj(e.parser,a,r$(e.envName)),o=Math.max(0,...s.body.map(e=>e.length));return s.cols=Array(o).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[s],left:t[0],right:t[1],rightColor:void 0}:s},htmlBuilder:rZ,mathmlBuilder:rJ}),rG({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){var t=rj(e.parser,{arraystretch:.5},"script");return t.colSeparationType="small",t},htmlBuilder:rZ,mathmlBuilder:rJ}),rG({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){var r=(t5(t[0])?[t[0]]:t1(t[0],"ordgroup").body).map(function(e){var t=t4(e).text;if(-1!=="lc".indexOf(t))return{type:"align",align:t};throw new i("Unknown column alignment: "+t,e)});if(r.length>1)throw new i("{subarray} can contain only one column");var a={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if((a=rj(e.parser,a,"script")).body.length>0&&a.body[0].length>1)throw new i("{subarray} can contain only one column");return a},htmlBuilder:rZ,mathmlBuilder:rJ}),rG({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){var t=rj(e.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},r$(e.envName));return{type:"leftright",mode:e.mode,body:[t],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:rZ,mathmlBuilder:rJ}),rG({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:rQ,htmlBuilder:rZ,mathmlBuilder:rJ}),rG({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){H.contains(["gather","gather*"],e.envName)&&rW(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:r_(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return rj(e.parser,t,"display")},htmlBuilder:rZ,mathmlBuilder:rJ}),rG({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:rQ,htmlBuilder:rZ,mathmlBuilder:rJ}),rG({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){rW(e);var t={autoTag:r_(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return rj(e.parser,t,"display")},htmlBuilder:rZ,mathmlBuilder:rJ}),rG({type:"array",names:["CD"],props:{numArgs:0},handler:e=>(rW(e),function(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var r=e.fetch().text;if("&"===r||"\\\\"===r)e.consume();else if("\\end"===r){0===t[t.length-1].length&&t.pop();break}else throw new i("Expected \\\\ or \\cr or \\end",e.nextToken)}for(var a=[],n=[a],s=0;s-1);else if("<>AV".indexOf(m)>-1)for(var p=0;p<2;p++){for(var u=!0,d=h+1;dAV=|." after @',o[h]);var g={type:"styling",body:[function(e,t,r){var a=rr[e];switch(a){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(a,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":var n=r.callFunction("\\\\cdleft",[t[0]],[]),i=r.callFunction("\\Big",[{type:"atom",text:a,mode:"math",family:"rel"}],[]),s=r.callFunction("\\\\cdright",[t[1]],[]);return r.callFunction("\\\\cdparent",[{type:"ordgroup",mode:"math",body:[n,i,s]}],[]);case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":return r.callFunction("\\Big",[{type:"textord",text:"\\Vert",mode:"math"}],[]);default:return{type:"textord",text:" ",mode:"math"}}}(m,c,e)],mode:"math",style:"display"};a.push(g),l=ra()}else l.body.push(o[h]);s%2==0?a.push(l):a.shift(),a=[],n.push(a)}e.gullet.endGroup(),e.gullet.endGroup();var f=Array(n[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:n,arraystretch:1,addJot:!0,rowGaps:[null],cols:f,colSeparationType:"CD",hLinesBeforeRow:Array(n.length+1).fill([])}}(e.parser)),htmlBuilder:rZ,mathmlBuilder:rJ}),rU["\\nonumber"]="\\gdef\\@eqnsw{0}",rU["\\notag"]="\\nonumber",ty({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(e,t){throw new i(e.funcName+" valid only within array environment")}});ty({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(e,t){var{parser:r,funcName:a}=e,n=t[0];if("ordgroup"!==n.type)throw new i("Invalid environment name",n);for(var s="",o=0;o{var r=e.font,a=t.withFont(r);return tR(e.body,a)},r1=(e,t)=>{var r=e.font,a=t.withFont(r);return tW(e.body,a)},r4={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};ty({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(e,t)=>{var{parser:r,funcName:a}=e,n=tw(t[0]),i=a;return i in r4&&(i=r4[i]),{type:"font",mode:r.mode,font:i.slice(1),body:n}},htmlBuilder:r0,mathmlBuilder:r1}),ty({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(e,t)=>{var{parser:r}=e,a=t[0],n=H.isCharacterBox(a);return{type:"mclass",mode:r.mode,mclass:rt(a),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:a}],isCharacterBox:n}}}),ty({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{parser:r,funcName:a,breakOnTokenText:n}=e,{mode:i}=r,s=r.parseExpression(!0,n);return{type:"font",mode:i,font:"math"+a.slice(1),body:{type:"ordgroup",mode:r.mode,body:s}}},htmlBuilder:r0,mathmlBuilder:r1});var r5=(e,t)=>{var r=t;return"display"===e?r=r.id>=Y.SCRIPT.id?r.text():Y.DISPLAY:"text"===e&&r.size===Y.DISPLAY.size?r=Y.TEXT:"script"===e?r=Y.SCRIPT:"scriptscript"===e&&(r=Y.SCRIPTSCRIPT),r},r6=(e,t)=>{var r,a,n,i,s,o,l,h,m,c,p,u=r5(e.size,t.style),d=u.fracNum(),g=u.fracDen();r=t.havingStyle(d);var f=tR(e.numer,r,t);if(e.continued){var v=8.5/t.fontMetrics().ptPerEm,b=3.5/t.fontMetrics().ptPerEm;f.height=f.height0?3*i:7*i,l=t.fontMetrics().denom1):(n>0?(s=t.fontMetrics().num2,o=i):(s=t.fontMetrics().num3,o=3*i),l=t.fontMetrics().denom2),a){var x=t.fontMetrics().axisHeight;s-f.depth-(x+.5*n){var r=new tP.MathNode("mfrac",[tW(e.numer,t),tW(e.denom,t)]);if(e.hasBarLine){if(e.barSize){var a=ec(e.barSize,t);r.setAttribute("linethickness",ep(a))}}else r.setAttribute("linethickness","0px");var n=r5(e.size,t.style);if(n.size!==t.style.size){r=new tP.MathNode("mstyle",[r]);var i=n.size===Y.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",i),r.setAttribute("scriptlevel","0")}if(null!=e.leftDelim||null!=e.rightDelim){var s=[];if(null!=e.leftDelim){var o=new tP.MathNode("mo",[new tP.TextNode(e.leftDelim.replace("\\",""))]);o.setAttribute("fence","true"),s.push(o)}if(s.push(r),null!=e.rightDelim){var l=new tP.MathNode("mo",[new tP.TextNode(e.rightDelim.replace("\\",""))]);l.setAttribute("fence","true"),s.push(l)}return tG(s)}return r};ty({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(e,t)=>{var r,{parser:a,funcName:n}=e,i=t[0],s=t[1],o=null,l=null,h="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":r=!0;break;case"\\\\atopfrac":r=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":r=!1,o="(",l=")";break;case"\\\\bracefrac":r=!1,o="\\{",l="\\}";break;case"\\\\brackfrac":r=!1,o="[",l="]";break;default:throw Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text"}return{type:"genfrac",mode:a.mode,continued:!1,numer:i,denom:s,hasBarLine:r,leftDelim:o,rightDelim:l,size:h,barSize:null}},htmlBuilder:r6,mathmlBuilder:r7}),ty({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(e,t)=>{var{parser:r,funcName:a}=e,n=t[0],i=t[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:n,denom:i,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}}),ty({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(e){var t,{parser:r,funcName:a,token:n}=e;switch(a){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;case"\\atop":t="\\\\atopfrac";break;case"\\brace":t="\\\\bracefrac";break;case"\\brack":t="\\\\brackfrac";break;default:throw Error("Unrecognized infix genfrac command")}return{type:"infix",mode:r.mode,replaceWith:t,token:n}}});var r3=["display","text","script","scriptscript"],r8=function(e){var t=null;return e.length>0&&(t="."===(t=e)?null:t),t};ty({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(e,t){var r,{parser:a}=e,n=t[4],i=t[5],s=tw(t[0]),o="atom"===s.type&&"open"===s.family?r8(s.text):null,l=tw(t[1]),h="atom"===l.type&&"close"===l.family?r8(l.text):null,m=t1(t[2],"size"),c=null;r=!!m.isBlank||(c=m.value).number>0;var p="auto",u=t[3];return"ordgroup"===u.type?u.body.length>0&&(p=r3[Number(t1(u.body[0],"textord").text)]):p=r3[Number((u=t1(u,"textord")).text)],{type:"genfrac",mode:a.mode,numer:n,denom:i,continued:!1,hasBarLine:r,barSize:c,leftDelim:o,rightDelim:h,size:p}},htmlBuilder:r6,mathmlBuilder:r7}),ty({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(e,t){var{parser:r,funcName:a,token:n}=e;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:t1(t[0],"size").value,token:n}}}),ty({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(e,t)=>{var{parser:r,funcName:a}=e,n=t[0],i=I(t1(t[1],"infix").size),s=t[2],o=i.number>0;return{type:"genfrac",mode:r.mode,numer:n,denom:s,continued:!1,hasBarLine:o,barSize:i,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:r6,mathmlBuilder:r7});var r2=(e,t)=>{var r,a,n,i=t.style;"supsub"===e.type?(r=e.sup?tR(e.sup,t.havingStyle(i.sup()),t):tR(e.sub,t.havingStyle(i.sub()),t),a=t1(e.base,"horizBrace")):a=t1(e,"horizBrace");var s=tR(a.base,t.havingBaseStyle(Y.DISPLAY)),o=t0.svgSpan(a,t);if(a.isOver?(n=tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:o}]},t)).children[0].children[0].children[1].classes.push("svg-align"):(n=tm.makeVList({positionType:"bottom",positionData:s.depth+.1+o.height,children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:s}]},t)).children[0].children[0].children[0].classes.push("svg-align"),r){var l=tm.makeSpan(["mord",a.isOver?"mover":"munder"],[n],t);n=a.isOver?tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},t):tm.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},t)}return tm.makeSpan(["mord",a.isOver?"mover":"munder"],[n],t)};ty({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:a}=e;return{type:"horizBrace",mode:r.mode,label:a,isOver:/^\\over/.test(a),base:t[0]}},htmlBuilder:r2,mathmlBuilder:(e,t)=>{var r=t0.mathMLnode(e.label);return new tP.MathNode(e.isOver?"mover":"munder",[tW(e.base,t),r])}}),ty({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,a=t[1],n=t1(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:r.mode,href:n,body:tk(a)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:(e,t)=>{var r=tB(e.body,t,!1);return tm.makeAnchor(e.href,[],r,t)},mathmlBuilder:(e,t)=>{var r=tX(e.body,t);return!(r instanceof tD)&&(r=new tD("mrow",[r])),r.setAttribute("href",e.href),r}}),ty({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,a=t1(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:a}))return r.formatUnsupportedCmd("\\url");for(var n=[],i=0;inew tP.MathNode("mrow",tY(e.body,t))}),ty({type:"html",names:["\\htmlClass","\\htmlId","\\htmlStyle","\\htmlData"],props:{numArgs:2,argTypes:["raw","original"],allowedInText:!0},handler:(e,t)=>{var r,{parser:a,funcName:n,token:s}=e,o=t1(t[0],"raw").string,l=t[1];a.settings.strict&&a.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var h={};switch(n){case"\\htmlClass":h.class=o,r={command:"\\htmlClass",class:o};break;case"\\htmlId":h.id=o,r={command:"\\htmlId",id:o};break;case"\\htmlStyle":h.style=o,r={command:"\\htmlStyle",style:o};break;case"\\htmlData":for(var m=o.split(","),c=0;c{var r=tB(e.body,t,!1),a=["enclosing"];e.attributes.class&&a.push(...e.attributes.class.trim().split(/\s+/));var n=tm.makeSpan(a,r,t);for(var i in e.attributes)"class"!==i&&e.attributes.hasOwnProperty(i)&&n.setAttribute(i,e.attributes[i]);return n},mathmlBuilder:(e,t)=>tX(e.body,t)}),ty({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(e,t)=>{var{parser:r}=e;return{type:"htmlmathml",mode:r.mode,html:tk(t[0]),mathml:tk(t[1])}},htmlBuilder:(e,t)=>{var r=tB(e.html,t,!1);return tm.makeFragment(r)},mathmlBuilder:(e,t)=>tX(e.mathml,t)});var r9=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new i("Invalid size: '"+e+"' in \\includegraphics");var r={number:+(t[1]+t[2]),unit:t[3]};if(!em(r))throw new i("Invalid unit: '"+r.unit+"' in \\includegraphics.");return r};ty({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(e,t,r)=>{var{parser:a}=e,n={number:0,unit:"em"},s={number:.9,unit:"em"},o={number:0,unit:"em"},l="";if(r[0]){for(var h=t1(r[0],"raw").string.split(","),m=0;m{var r=ec(e.height,t),a=0;e.totalheight.number>0&&(a=ec(e.totalheight,t)-r);var n=0;e.width.number>0&&(n=ec(e.width,t));var i={height:ep(r+a)};n>0&&(i.width=ep(n)),a>0&&(i.verticalAlign=ep(-a));var s=new ey(e.src,e.alt,i);return s.height=r,s.depth=a,s},mathmlBuilder:(e,t)=>{var r=new tP.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);var a=ec(e.height,t),n=0;if(e.totalheight.number>0&&(n=ec(e.totalheight,t)-a,r.setAttribute("valign",ep(-n))),r.setAttribute("height",ep(a+n)),e.width.number>0){var i=ec(e.width,t);r.setAttribute("width",ep(i))}return r.setAttribute("src",e.src),r}}),ty({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(e,t){var{parser:r,funcName:a}=e,n=t1(t[0],"size");if(r.settings.strict){var i="m"===a[1],s="mu"===n.value.unit;i?(!s&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" supports only mu units, "+("not "+n.value.unit)+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" works only in math mode")):s&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:n.value}},htmlBuilder:(e,t)=>tm.makeGlue(e.dimension,t),mathmlBuilder(e,t){var r=ec(e.dimension,t);return new tP.SpaceNode(r)}}),ty({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:r,funcName:a}=e,n=t[0];return{type:"lap",mode:r.mode,alignment:a.slice(5),body:n}},htmlBuilder:(e,t)=>{"clap"===e.alignment?(r=tm.makeSpan([],[tR(e.body,t)]),r=tm.makeSpan(["inner"],[r],t)):r=tm.makeSpan(["inner"],[tR(e.body,t)]);var r,a=tm.makeSpan(["fix"],[]),n=tm.makeSpan([e.alignment],[r,a],t),i=tm.makeSpan(["strut"]);return i.style.height=ep(n.height+n.depth),n.depth&&(i.style.verticalAlign=ep(-n.depth)),n.children.unshift(i),n=tm.makeSpan(["thinbox"],[n],t),tm.makeSpan(["mord","vbox"],[n],t)},mathmlBuilder:(e,t)=>{var r=new tP.MathNode("mpadded",[tW(e.body,t)]);if("rlap"!==e.alignment){var a="llap"===e.alignment?"-1":"-0.5";r.setAttribute("lspace",a+"width")}return r.setAttribute("width","0px"),r}}),ty({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){var{funcName:r,parser:a}=e,n=a.mode;a.switchMode("math");var i="\\("===r?"\\)":"$",s=a.parseExpression(!1,i);return a.expect(i),a.switchMode(n),{type:"styling",mode:a.mode,style:"text",body:s}}}),ty({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new i("Mismatched "+e.funcName)}});var ae=(e,t)=>{switch(t.style.size){case Y.DISPLAY.size:return e.display;case Y.TEXT.size:return e.text;case Y.SCRIPT.size:return e.script;case Y.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};ty({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(e,t)=>{var{parser:r}=e;return{type:"mathchoice",mode:r.mode,display:tk(t[0]),text:tk(t[1]),script:tk(t[2]),scriptscript:tk(t[3])}},htmlBuilder:(e,t)=>{var r=tB(ae(e,t),t,!1);return tm.makeFragment(r)},mathmlBuilder:(e,t)=>tX(ae(e,t),t)});var at=(e,t,r,a,n,i,s)=>{e=tm.makeSpan([],[e]);var o,l,h,m=r&&H.isCharacterBox(r);if(t){var c=tR(t,a.havingStyle(n.sup()),a);l={elem:c,kern:Math.max(a.fontMetrics().bigOpSpacing1,a.fontMetrics().bigOpSpacing3-c.depth)}}if(r){var p=tR(r,a.havingStyle(n.sub()),a);o={elem:p,kern:Math.max(a.fontMetrics().bigOpSpacing2,a.fontMetrics().bigOpSpacing4-p.height)}}if(l&&o){var u=a.fontMetrics().bigOpSpacing5+o.elem.height+o.elem.depth+o.kern+e.depth+s;h=tm.makeVList({positionType:"bottom",positionData:u,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:o.elem,marginLeft:ep(-i)},{type:"kern",size:o.kern},{type:"elem",elem:e},{type:"kern",size:l.kern},{type:"elem",elem:l.elem,marginLeft:ep(i)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else if(o){var d=e.height-s;h=tm.makeVList({positionType:"top",positionData:d,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:o.elem,marginLeft:ep(-i)},{type:"kern",size:o.kern},{type:"elem",elem:e}]},a)}else{if(!l)return e;var g=e.depth+s;h=tm.makeVList({positionType:"bottom",positionData:g,children:[{type:"elem",elem:e},{type:"kern",size:l.kern},{type:"elem",elem:l.elem,marginLeft:ep(i)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}var f=[h];if(o&&0!==i&&!m){var v=tm.makeSpan(["mspace"],[],a);v.style.marginRight=ep(i),f.unshift(v)}return tm.makeSpan(["mop","op-limits"],f,a)},ar=["\\smallint"],aa=(e,t)=>{var r,a,n,i,s=!1;"supsub"===e.type?(r=e.sup,a=e.sub,n=t1(e.base,"op"),s=!0):n=t1(e,"op");var o=t.style,l=!1;if(o.size===Y.DISPLAY.size&&n.symbol&&!H.contains(ar,n.name)&&(l=!0),n.symbol){var h=l?"Size2-Regular":"Size1-Regular",m="";if(("\\oiint"===n.name||"\\oiiint"===n.name)&&(m=n.name.slice(1),n.name="oiint"===m?"\\iint":"\\iiint"),i=tm.makeSymbol(n.name,h,"math",t,["mop","op-symbol",l?"large-op":"small-op"]),m.length>0){var c=i.italic,p=tm.staticSvg(m+"Size"+(l?"2":"1"),t);i=tm.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:0},{type:"elem",elem:p,shift:l?.08:0}]},t),n.name="\\"+m,i.classes.unshift("mop"),i.italic=c}}else if(n.body){var u=tB(n.body,t,!0);1===u.length&&u[0]instanceof ew?(i=u[0]).classes[0]="mop":i=tm.makeSpan(["mop"],u,t)}else{for(var d=[],g=1;g{var r;if(e.symbol)r=new tD("mo",[tF(e.name,e.mode)]),H.contains(ar,e.name)&&r.setAttribute("largeop","false");else if(e.body)r=new tD("mo",tY(e.body,t));else{r=new tD("mi",[new tV(e.name.slice(1))]);var a=new tD("mo",[tF("\u2061","text")]);r=e.parentIsSupSub?new tD("mrow",[r,a]):tL([r,a])}return r},ai={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};ty({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220F","\u2210","\u2211","\u22C0","\u22C1","\u22C2","\u22C3","\u2A00","\u2A01","\u2A02","\u2A04","\u2A06"],props:{numArgs:0},handler:(e,t)=>{var{parser:r,funcName:a}=e,n=a;return 1===n.length&&(n=ai[n]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:aa,mathmlBuilder:an}),ty({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var{parser:r}=e,a=t[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:tk(a)}},htmlBuilder:aa,mathmlBuilder:an});var as={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};ty({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:aa,mathmlBuilder:an}),ty({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:aa,mathmlBuilder:an}),ty({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e,a=r;return 1===a.length&&(a=as[a]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:a}},htmlBuilder:aa,mathmlBuilder:an});var ao=(e,t)=>{var r,a,n,i,s=!1;if("supsub"===e.type?(r=e.sup,a=e.sub,n=t1(e.base,"operatorname"),s=!0):n=t1(e,"operatorname"),n.body.length>0){for(var o=tB(n.body.map(e=>{var t=e.text;return"string"==typeof t?{type:"textord",mode:e.mode,text:t}:e}),t.withFont("mathrm"),!0),l=0;l{var{parser:r,funcName:a}=e,n=t[0];return{type:"operatorname",mode:r.mode,body:tk(n),alwaysHandleSupSub:"\\operatornamewithlimits"===a,limits:!1,parentIsSupSub:!1}},htmlBuilder:ao,mathmlBuilder:(e,t)=>{for(var r=tY(e.body,t.withFont("mathrm")),a=!0,n=0;ne.toText()).join("");r=[new tP.TextNode(o)]}var l=new tP.MathNode("mi",r);l.setAttribute("mathvariant","normal");var h=new tP.MathNode("mo",[tF("\u2061","text")]);return e.parentIsSupSub?new tP.MathNode("mrow",[l,h]):tP.newDocumentFragment([l,h])}}),rU["\\operatorname"]="\\@ifstar\\operatornamewithlimits\\operatorname@",tx({type:"ordgroup",htmlBuilder:(e,t)=>e.semisimple?tm.makeFragment(tB(e.body,t,!1)):tm.makeSpan(["mord"],tB(e.body,t,!0),t),mathmlBuilder:(e,t)=>tX(e.body,t,!0)}),ty({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){var{parser:r}=e,a=t[0];return{type:"overline",mode:r.mode,body:a}},htmlBuilder(e,t){var r=tR(e.body,t.havingCrampedStyle()),a=tm.makeLineSpan("overline-line",t),n=t.fontMetrics().defaultRuleThickness,i=tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*n},{type:"elem",elem:a},{type:"kern",size:n}]},t);return tm.makeSpan(["mord","overline"],[i],t)},mathmlBuilder(e,t){var r=new tP.MathNode("mo",[new tP.TextNode("\u203E")]);r.setAttribute("stretchy","true");var a=new tP.MathNode("mover",[tW(e.body,t),r]);return a.setAttribute("accent","true"),a}}),ty({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,a=t[0];return{type:"phantom",mode:r.mode,body:tk(a)}},htmlBuilder:(e,t)=>{var r=tB(e.body,t.withPhantom(),!1);return tm.makeFragment(r)},mathmlBuilder:(e,t)=>{var r=tY(e.body,t);return new tP.MathNode("mphantom",r)}}),ty({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,a=t[0];return{type:"hphantom",mode:r.mode,body:a}},htmlBuilder:(e,t)=>{var r=tm.makeSpan([],[tR(e.body,t.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var a=0;a{var r=tY(tk(e.body),t),a=new tP.MathNode("mphantom",r),n=new tP.MathNode("mpadded",[a]);return n.setAttribute("height","0px"),n.setAttribute("depth","0px"),n}}),ty({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:r}=e,a=t[0];return{type:"vphantom",mode:r.mode,body:a}},htmlBuilder:(e,t)=>{var r=tm.makeSpan(["inner"],[tR(e.body,t.withPhantom())]),a=tm.makeSpan(["fix"],[]);return tm.makeSpan(["mord","rlap"],[r,a],t)},mathmlBuilder:(e,t)=>{var r=tY(tk(e.body),t),a=new tP.MathNode("mphantom",r),n=new tP.MathNode("mpadded",[a]);return n.setAttribute("width","0px"),n}}),ty({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(e,t){var{parser:r}=e,a=t1(t[0],"size").value,n=t[1];return{type:"raisebox",mode:r.mode,dy:a,body:n}},htmlBuilder(e,t){var r=tR(e.body,t),a=ec(e.dy,t);return tm.makeVList({positionType:"shift",positionData:-a,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){var r=new tP.MathNode("mpadded",[tW(e.body,t)]),a=e.dy.number+e.dy.unit;return r.setAttribute("voffset",a),r}}),ty({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t}=e;return{type:"internal",mode:t.mode}}}),ty({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler(e,t,r){var{parser:a}=e,n=r[0],i=t1(t[0],"size"),s=t1(t[1],"size");return{type:"rule",mode:a.mode,shift:n&&t1(n,"size").value,width:i.value,height:s.value}},htmlBuilder(e,t){var r=tm.makeSpan(["mord","rule"],[],t),a=ec(e.width,t),n=ec(e.height,t),i=e.shift?ec(e.shift,t):0;return r.style.borderRightWidth=ep(a),r.style.borderTopWidth=ep(n),r.style.bottom=ep(i),r.width=a,r.height=n+i,r.depth=-i,r.maxFontSize=1.125*n*t.sizeMultiplier,r},mathmlBuilder(e,t){var r=ec(e.width,t),a=ec(e.height,t),n=e.shift?ec(e.shift,t):0,i=t.color&&t.getColor()||"black",s=new tP.MathNode("mspace");s.setAttribute("mathbackground",i),s.setAttribute("width",ep(r)),s.setAttribute("height",ep(a));var o=new tP.MathNode("mpadded",[s]);return n>=0?o.setAttribute("height",ep(n)):(o.setAttribute("height",ep(n)),o.setAttribute("depth",ep(-n))),o.setAttribute("voffset",ep(n)),o}});var ah=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];ty({type:"sizing",names:ah,props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{breakOnTokenText:r,funcName:a,parser:n}=e,i=n.parseExpression(!1,r);return{type:"sizing",mode:n.mode,size:ah.indexOf(a)+1,body:i}},htmlBuilder:(e,t)=>{var r=t.havingSize(e.size);return al(e.body,r,t)},mathmlBuilder:(e,t)=>{var r=t.havingSize(e.size),a=tY(e.body,r),n=new tP.MathNode("mstyle",a);return n.setAttribute("mathsize",ep(r.sizeMultiplier)),n}}),ty({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(e,t,r)=>{var{parser:a}=e,n=!1,i=!1,s=r[0]&&t1(r[0],"ordgroup");if(s){for(var o="",l=0;l{var r=tm.makeSpan([],[tR(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return r;if(e.smashHeight&&(r.height=0,r.children))for(var a=0;a{var r=new tP.MathNode("mpadded",[tW(e.body,t)]);return e.smashHeight&&r.setAttribute("height","0px"),e.smashDepth&&r.setAttribute("depth","0px"),r}}),ty({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:a}=e,n=r[0],i=t[0];return{type:"sqrt",mode:a.mode,body:i,index:n}},htmlBuilder(e,t){var r=tR(e.body,t.havingCrampedStyle());0===r.height&&(r.height=t.fontMetrics().xHeight),r=tm.wrapFragment(r,t);var a=t.fontMetrics().defaultRuleThickness,n=a;t.style.idr.height+r.depth+i&&(i=(i+m-r.height-r.depth)/2);var c=o.height-r.height-i-l;r.style.paddingLeft=ep(h);var p=tm.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+c)},{type:"elem",elem:o},{type:"kern",size:l}]},t);if(!e.index)return tm.makeSpan(["mord","sqrt"],[p],t);var u=t.havingStyle(Y.SCRIPTSCRIPT),d=tR(e.index,u,t),g=.6*(p.height-p.depth),f=tm.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:d}]},t),v=tm.makeSpan(["root"],[f]);return tm.makeSpan(["mord","sqrt"],[v,p],t)},mathmlBuilder(e,t){var{body:r,index:a}=e;return a?new tP.MathNode("mroot",[tW(r,t),tW(a,t)]):new tP.MathNode("msqrt",[tW(r,t)])}});var am={display:Y.DISPLAY,text:Y.TEXT,script:Y.SCRIPT,scriptscript:Y.SCRIPTSCRIPT};ty({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e,t){var{breakOnTokenText:r,funcName:a,parser:n}=e,i=n.parseExpression(!0,r),s=a.slice(1,a.length-5);return{type:"styling",mode:n.mode,style:s,body:i}},htmlBuilder(e,t){var r=am[e.style],a=t.havingStyle(r).withFont("");return al(e.body,a,t)},mathmlBuilder(e,t){var r=am[e.style],a=t.havingStyle(r),n=tY(e.body,a),i=new tP.MathNode("mstyle",n),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return i.setAttribute("scriptlevel",s[0]),i.setAttribute("displaystyle",s[1]),i}});var ac=function(e,t){var r=e.base;if(!r)return null;if("op"===r.type)return r.limits&&(t.style.size===Y.DISPLAY.size||r.alwaysHandleSupSub)?aa:null;if("operatorname"===r.type)return r.alwaysHandleSupSub&&(t.style.size===Y.DISPLAY.size||r.limits)?ao:null;else if("accent"===r.type)return H.isCharacterBox(r.base)?t6:null;else if("horizBrace"===r.type)return!e.sub===r.isOver?r2:null;else return null};tx({type:"supsub",htmlBuilder(e,t){var r,a,n,i,s=ac(e,t);if(s)return s(e,t);var{base:o,sup:l,sub:h}=e,m=tR(o,t),c=t.fontMetrics(),p=0,u=0,d=o&&H.isCharacterBox(o);if(l){var g=t.havingStyle(t.style.sup());r=tR(l,g,t),!d&&(p=m.height-g.fontMetrics().supDrop*g.sizeMultiplier/t.sizeMultiplier)}if(h){var f=t.havingStyle(t.style.sub());a=tR(h,f,t),!d&&(u=m.depth+f.fontMetrics().subDrop*f.sizeMultiplier/t.sizeMultiplier)}n=t.style===Y.DISPLAY?c.sup1:t.style.cramped?c.sup3:c.sup2;var v=t.sizeMultiplier,b=ep(.5/c.ptPerEm/v),y=null;if(a){var x=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name);(m instanceof ew||x)&&(y=ep(-m.italic))}if(r&&a){p=Math.max(p,n,r.depth+.25*c.xHeight),u=Math.max(u,c.sub2);var w=4*c.defaultRuleThickness;if(p-r.depth-(a.height-u)0&&(p+=k,u-=k)}var S=[{type:"elem",elem:a,shift:u,marginRight:b,marginLeft:y},{type:"elem",elem:r,shift:-p,marginRight:b}];i=tm.makeVList({positionType:"individualShift",children:S},t)}else if(a){u=Math.max(u,c.sub1,a.height-.8*c.xHeight);var M=[{type:"elem",elem:a,marginLeft:y,marginRight:b}];i=tm.makeVList({positionType:"shift",positionData:u,children:M},t)}else if(r)p=Math.max(p,n,r.depth+.25*c.xHeight),i=tm.makeVList({positionType:"shift",positionData:-p,children:[{type:"elem",elem:r,marginRight:b}]},t);else throw Error("supsub must have either sup or sub.");var z=tI(m,"right")||"mord";return tm.makeSpan([z],[m,tm.makeSpan(["msupsub"],[i])],t)},mathmlBuilder(e,t){var r,a,n=!1;e.base&&"horizBrace"===e.base.type&&!!e.sup===e.base.isOver&&(n=!0,r=e.base.isOver),e.base&&("op"===e.base.type||"operatorname"===e.base.type)&&(e.base.parentIsSupSub=!0);var i=[tW(e.base,t)];if(e.sub&&i.push(tW(e.sub,t)),e.sup&&i.push(tW(e.sup,t)),n)a=r?"mover":"munder";else if(e.sub){if(e.sup){var s=e.base;a=s&&"op"===s.type&&s.limits&&t.style===Y.DISPLAY?"munderover":s&&"operatorname"===s.type&&s.alwaysHandleSupSub&&(t.style===Y.DISPLAY||s.limits)?"munderover":"msubsup"}else{var o=e.base;a=o&&"op"===o.type&&o.limits&&(t.style===Y.DISPLAY||o.alwaysHandleSupSub)?"munder":o&&"operatorname"===o.type&&o.alwaysHandleSupSub&&(o.limits||t.style===Y.DISPLAY)?"munder":"msub"}}else{var l=e.base;a=l&&"op"===l.type&&l.limits&&(t.style===Y.DISPLAY||l.alwaysHandleSupSub)?"mover":l&&"operatorname"===l.type&&l.alwaysHandleSupSub&&(l.limits||t.style===Y.DISPLAY)?"mover":"msup"}return new tP.MathNode(a,i)}}),tx({type:"atom",htmlBuilder:(e,t)=>tm.mathsym(e.text,e.mode,t,["m"+e.family]),mathmlBuilder(e,t){var r=new tP.MathNode("mo",[tF(e.text,e.mode)]);if("bin"===e.family){var a=tU(e,t);"bold-italic"===a&&r.setAttribute("mathvariant",a)}else"punct"===e.family?r.setAttribute("separator","true"):("open"===e.family||"close"===e.family)&&r.setAttribute("stretchy","false");return r}});var ap={mi:"italic",mn:"normal",mtext:"normal"};tx({type:"mathord",htmlBuilder:(e,t)=>tm.makeOrd(e,t,"mathord"),mathmlBuilder(e,t){var r=new tP.MathNode("mi",[tF(e.text,e.mode,t)]),a=tU(e,t)||"italic";return a!==ap[r.type]&&r.setAttribute("mathvariant",a),r}}),tx({type:"textord",htmlBuilder:(e,t)=>tm.makeOrd(e,t,"textord"),mathmlBuilder(e,t){var r,a=tF(e.text,e.mode,t),n=tU(e,t)||"normal";return n!==ap[(r="text"===e.mode?new tP.MathNode("mtext",[a]):/[0-9]/.test(e.text)?new tP.MathNode("mn",[a]):"\\prime"===e.text?new tP.MathNode("mo",[a]):new tP.MathNode("mi",[a])).type]&&r.setAttribute("mathvariant",n),r}});var au={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},ad={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};tx({type:"spacing",htmlBuilder(e,t){if(ad.hasOwnProperty(e.text)){var r=ad[e.text].className||"";if("text"!==e.mode)return tm.makeSpan(["mspace",r],[tm.mathsym(e.text,e.mode,t)],t);var a=tm.makeOrd(e,t,"textord");return a.classes.push(r),a}if(au.hasOwnProperty(e.text))return tm.makeSpan(["mspace",au[e.text]],[],t);throw new i('Unknown type of space "'+e.text+'"')},mathmlBuilder(e,t){var r;if(ad.hasOwnProperty(e.text))r=new tP.MathNode("mtext",[new tP.TextNode("\xa0")]);else if(au.hasOwnProperty(e.text))return new tP.MathNode("mspace");else throw new i('Unknown type of space "'+e.text+'"');return r}});var ag=()=>{var e=new tP.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};tx({type:"tag",mathmlBuilder(e,t){var r=new tP.MathNode("mtable",[new tP.MathNode("mtr",[ag(),new tP.MathNode("mtd",[tX(e.body,t)]),ag(),new tP.MathNode("mtd",[tX(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});var af={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},av={"\\textbf":"textbf","\\textmd":"textmd"},ab={"\\textit":"textit","\\textup":"textup"},ay=(e,t)=>{var r=e.font;if(!r)return t;if(af[r])return t.withTextFontFamily(af[r]);if(av[r])return t.withTextFontWeight(av[r]);else return t.withTextFontShape(ab[r])};ty({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(e,t){var{parser:r,funcName:a}=e,n=t[0];return{type:"text",mode:r.mode,body:tk(n),font:a}},htmlBuilder(e,t){var r=ay(e,t),a=tB(e.body,r,!0);return tm.makeSpan(["mord","text"],a,r)},mathmlBuilder(e,t){var r=ay(e,t);return tX(e.body,r)}}),ty({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"underline",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=tR(e.body,t),a=tm.makeLineSpan("underline-line",t),n=t.fontMetrics().defaultRuleThickness,i=tm.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:n},{type:"elem",elem:a},{type:"kern",size:3*n},{type:"elem",elem:r}]},t);return tm.makeSpan(["mord","underline"],[i],t)},mathmlBuilder(e,t){var r=new tP.MathNode("mo",[new tP.TextNode("\u203E")]);r.setAttribute("stretchy","true");var a=new tP.MathNode("munder",[tW(e.body,t),r]);return a.setAttribute("accentunder","true"),a}}),ty({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(e,t){var{parser:r}=e;return{type:"vcenter",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=tR(e.body,t),a=t.fontMetrics().axisHeight,n=.5*(r.height-a-(r.depth+a));return tm.makeVList({positionType:"shift",positionData:n,children:[{type:"elem",elem:r}]},t)},mathmlBuilder:(e,t)=>new tP.MathNode("mpadded",[tW(e.body,t)],["vcenter"])}),ty({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,r){throw new i("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(e,t){for(var r=ax(e),a=[],n=t.havingStyle(t.style.text()),i=0;ie.body.replace(/ /g,e.star?"\u2423":"\xa0"),aw="[ \r\n ]",ak="[\u0300-\u036F]",aS=RegExp(ak+"+$"),aM="("+aw+"+)|\\\\(\n|[ \r ]+\n?)[ \r ]*|([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+ak+"*|[\uD800-\uDBFF][\uDC00-\uDFFF]"+ak+"*|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|(\\\\[a-zA-Z@]+)"+aw)+"*|\\\\[^\uD800-\uDFFF])";class az{constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=RegExp(aM,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){var e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new n("EOF",new a(this,t,t));var r=this.tokenRegex.exec(e);if(null===r||r.index!==t)throw new i("Unexpected character: '"+e[t]+"'",new n(e[t],new a(this,t,t+1)));var s=r[6]||r[3]||(r[2]?"\\ ":" ");if(14===this.catcodes[s]){var o=e.indexOf("\n",this.tokenRegex.lastIndex);return -1===o?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=o+1,this.lex()}return new n(s,new a(this,t,this.tokenRegex.lastIndex))}}class aA{constructor(e,t){void 0===e&&(e={}),void 0===t&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(0===this.undefStack.length)throw new i("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var t in e)e.hasOwnProperty(t)&&(null==e[t]?delete this.current[t]:this.current[t]=e[t])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,t,r){if(void 0===r&&(r=!1),r){for(var a=0;a0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var n=this.undefStack[this.undefStack.length-1];n&&!n.hasOwnProperty(e)&&(n[e]=this.current[e])}null==t?delete this.current[e]:this.current[e]=t}}s=function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}},rU["\\noexpand"]=s,o=function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}},rU["\\expandafter"]=o,l=function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}},rU["\\@firstoftwo"]=l,h=function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}},rU["\\@secondoftwo"]=h,m=function(e){var t=e.consumeArgs(3);e.consumeSpaces();var r=e.future();return 1===t[0].length&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}},rU["\\@ifnextchar"]=m,rU["\\@ifstar"]="\\@ifnextchar *{\\@firstoftwo{#1}}",c=function(e){var t=e.consumeArgs(2);return"text"===e.mode?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}},rU["\\TextOrMath"]=c;var aT={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};p=function(e){var t,r,a=e.popToken(),n="";if("'"===a.text)t=8,a=e.popToken();else if('"'===a.text)t=16,a=e.popToken();else if("`"===a.text){if("\\"===(a=e.popToken()).text[0])n=a.text.charCodeAt(1);else if("EOF"===a.text)throw new i("\\char` missing argument");else n=a.text.charCodeAt(0)}else t=10;if(t){if(null==(n=aT[a.text])||n>=t)throw new i("Invalid base-"+t+" digit "+a.text);for(;null!=(r=aT[e.future().text])&&r{var a=e.consumeArg().tokens;if(1!==a.length)throw new i("\\newcommand's first argument must be a macro name");var n=a[0].text,s=e.isDefined(n);if(s&&!t)throw new i("\\newcommand{"+n+"} attempting to redefine "+n+"; use \\renewcommand");if(!s&&!r)throw new i("\\renewcommand{"+n+"} when command "+n+" does not yet exist; use \\newcommand");var o=0;if(1===(a=e.consumeArg().tokens).length&&"["===a[0].text){for(var l="",h=e.expandNextToken();"]"!==h.text&&"EOF"!==h.text;)l+=h.text,h=e.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new i("Invalid number of arguments: "+l);o=parseInt(l),a=e.consumeArg().tokens}return e.macros.set(n,{tokens:a,numArgs:o}),""};u=e=>aB(e,!1,!0),rU["\\newcommand"]=u,d=e=>aB(e,!0,!1),rU["\\renewcommand"]=d,g=e=>aB(e,!0,!0),rU["\\providecommand"]=g,f=e=>(console.log(e.consumeArgs(1)[0].reverse().map(e=>e.text).join("")),""),rU["\\message"]=f,v=e=>(console.error(e.consumeArgs(1)[0].reverse().map(e=>e.text).join("")),""),rU["\\errmessage"]=v,b=e=>{var t=e.popToken(),r=t.text;return console.log(t,e.macros.get(r),tf[r],eB.math[r],eB.text[r]),""},rU["\\show"]=b,rU["\\bgroup"]="{",rU["\\egroup"]="}",rU["~"]="\\nobreakspace",rU["\\lq"]="`",rU["\\rq"]="'",rU["\\aa"]="\\r a",rU["\\AA"]="\\r A",rU["\\textcopyright"]="\\html@mathml{\\textcircled{c}}{\\char`\xa9}",rU["\\copyright"]="\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}",rU["\\textregistered"]="\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xae}",rU["\u212C"]="\\mathscr{B}",rU["\u2130"]="\\mathscr{E}",rU["\u2131"]="\\mathscr{F}",rU["\u210B"]="\\mathscr{H}",rU["\u2110"]="\\mathscr{I}",rU["\u2112"]="\\mathscr{L}",rU["\u2133"]="\\mathscr{M}",rU["\u211B"]="\\mathscr{R}",rU["\u212D"]="\\mathfrak{C}",rU["\u210C"]="\\mathfrak{H}",rU["\u2128"]="\\mathfrak{Z}",rU["\\Bbbk"]="\\Bbb{k}",rU["\xb7"]="\\cdotp",rU["\\llap"]="\\mathllap{\\textrm{#1}}",rU["\\rlap"]="\\mathrlap{\\textrm{#1}}",rU["\\clap"]="\\mathclap{\\textrm{#1}}",rU["\\mathstrut"]="\\vphantom{(}",rU["\\underbar"]="\\underline{\\text{#1}}",rU["\\not"]='\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}',rU["\\neq"]="\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}",rU["\\ne"]="\\neq",rU["\u2260"]="\\neq",rU["\\notin"]="\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}",rU["\u2209"]="\\notin",rU["\u2258"]="\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}",rU["\u2259"]="\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}",rU["\u225A"]="\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}",rU["\u225B"]="\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}",rU["\u225D"]="\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}",rU["\u225E"]="\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}",rU["\u225F"]="\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}",rU["\u27C2"]="\\perp",rU["\u203C"]="\\mathclose{!\\mkern-0.8mu!}",rU["\u220C"]="\\notni",rU["\u231C"]="\\ulcorner",rU["\u231D"]="\\urcorner",rU["\u231E"]="\\llcorner",rU["\u231F"]="\\lrcorner",rU["\xa9"]="\\copyright",rU["\xae"]="\\textregistered",rU["\uFE0F"]="\\textregistered",rU["\\ulcorner"]='\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}',rU["\\urcorner"]='\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}',rU["\\llcorner"]='\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}',rU["\\lrcorner"]='\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}',rU["\\vdots"]="\\mathord{\\varvdots\\rule{0pt}{15pt}}",rU["\u22EE"]="\\vdots",rU["\\varGamma"]="\\mathit{\\Gamma}",rU["\\varDelta"]="\\mathit{\\Delta}",rU["\\varTheta"]="\\mathit{\\Theta}",rU["\\varLambda"]="\\mathit{\\Lambda}",rU["\\varXi"]="\\mathit{\\Xi}",rU["\\varPi"]="\\mathit{\\Pi}",rU["\\varSigma"]="\\mathit{\\Sigma}",rU["\\varUpsilon"]="\\mathit{\\Upsilon}",rU["\\varPhi"]="\\mathit{\\Phi}",rU["\\varPsi"]="\\mathit{\\Psi}",rU["\\varOmega"]="\\mathit{\\Omega}",rU["\\substack"]="\\begin{subarray}{c}#1\\end{subarray}",rU["\\colon"]="\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax",rU["\\boxed"]="\\fbox{$\\displaystyle{#1}$}",rU["\\iff"]="\\DOTSB\\;\\Longleftrightarrow\\;",rU["\\implies"]="\\DOTSB\\;\\Longrightarrow\\;",rU["\\impliedby"]="\\DOTSB\\;\\Longleftarrow\\;";var aC={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};y=function(e){var t="\\dotso",r=e.expandAfterFuture().text;return r in aC?t=aC[r]:"\\not"===r.slice(0,4)?t="\\dotsb":r in eB.math&&H.contains(["bin","rel"],eB.math[r].group)&&(t="\\dotsb"),t},rU["\\dots"]=y;var aq={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};x=function(e){return e.future().text in aq?"\\ldots\\,":"\\ldots"},rU["\\dotso"]=x,w=function(e){var t=e.future().text;return t in aq&&","!==t?"\\ldots\\,":"\\ldots"},rU["\\dotsc"]=w,k=function(e){return e.future().text in aq?"\\@cdots\\,":"\\@cdots"},rU["\\cdots"]=k,rU["\\dotsb"]="\\cdots",rU["\\dotsm"]="\\cdots",rU["\\dotsi"]="\\!\\cdots",rU["\\dotsx"]="\\ldots\\,",rU["\\DOTSI"]="\\relax",rU["\\DOTSB"]="\\relax",rU["\\DOTSX"]="\\relax",rU["\\tmspace"]="\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax",rU["\\,"]="\\tmspace+{3mu}{.1667em}",rU["\\thinspace"]="\\,",rU["\\>"]="\\mskip{4mu}",rU["\\:"]="\\tmspace+{4mu}{.2222em}",rU["\\medspace"]="\\:",rU["\\;"]="\\tmspace+{5mu}{.2777em}",rU["\\thickspace"]="\\;",rU["\\!"]="\\tmspace-{3mu}{.1667em}",rU["\\negthinspace"]="\\!",rU["\\negmedspace"]="\\tmspace-{4mu}{.2222em}",rU["\\negthickspace"]="\\tmspace-{5mu}{.277em}",rU["\\enspace"]="\\kern.5em ",rU["\\enskip"]="\\hskip.5em\\relax",rU["\\quad"]="\\hskip1em\\relax",rU["\\qquad"]="\\hskip2em\\relax",rU["\\tag"]="\\@ifstar\\tag@literal\\tag@paren",rU["\\tag@paren"]="\\tag@literal{({#1})}",S=e=>{if(e.macros.get("\\df@tag"))throw new i("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"},rU["\\tag@literal"]=S,rU["\\bmod"]="\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}",rU["\\pod"]="\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)",rU["\\pmod"]="\\pod{{\\rm mod}\\mkern6mu#1}",rU["\\mod"]="\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1",rU["\\newline"]="\\\\\\relax",rU["\\TeX"]="\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}";var aN=ep(Q["Main-Regular"][84][1]-.7*Q["Main-Regular"][65][1]);M="\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+aN+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}",rU["\\LaTeX"]=M,z="\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+aN+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}",rU["\\KaTeX"]=z,rU["\\hspace"]="\\@ifstar\\@hspacer\\@hspace",rU["\\@hspace"]="\\hskip #1\\relax",rU["\\@hspacer"]="\\rule{0pt}{0pt}\\hskip #1\\relax",rU["\\ordinarycolon"]=":",rU["\\vcentcolon"]="\\mathrel{\\mathop\\ordinarycolon}",rU["\\dblcolon"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}',rU["\\coloneqq"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}',rU["\\Coloneqq"]='\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}',rU["\\coloneq"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}',rU["\\Coloneq"]='\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}',rU["\\eqqcolon"]='\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}',rU["\\Eqqcolon"]='\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}',rU["\\eqcolon"]='\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}',rU["\\Eqcolon"]='\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}',rU["\\colonapprox"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}',rU["\\Colonapprox"]='\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}',rU["\\colonsim"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}',rU["\\Colonsim"]='\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}',rU["\u2237"]="\\dblcolon",rU["\u2239"]="\\eqcolon",rU["\u2254"]="\\coloneqq",rU["\u2255"]="\\eqqcolon",rU["\u2A74"]="\\Coloneqq",rU["\\ratio"]="\\vcentcolon",rU["\\coloncolon"]="\\dblcolon",rU["\\colonequals"]="\\coloneqq",rU["\\coloncolonequals"]="\\Coloneqq",rU["\\equalscolon"]="\\eqqcolon",rU["\\equalscoloncolon"]="\\Eqqcolon",rU["\\colonminus"]="\\coloneq",rU["\\coloncolonminus"]="\\Coloneq",rU["\\minuscolon"]="\\eqcolon",rU["\\minuscoloncolon"]="\\Eqcolon",rU["\\coloncolonapprox"]="\\Colonapprox",rU["\\coloncolonsim"]="\\Colonsim",rU["\\simcolon"]="\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}",rU["\\simcoloncolon"]="\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}",rU["\\approxcolon"]="\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}",rU["\\approxcoloncolon"]="\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}",rU["\\notni"]="\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}",rU["\\limsup"]="\\DOTSB\\operatorname*{lim\\,sup}",rU["\\liminf"]="\\DOTSB\\operatorname*{lim\\,inf}",rU["\\injlim"]="\\DOTSB\\operatorname*{inj\\,lim}",rU["\\projlim"]="\\DOTSB\\operatorname*{proj\\,lim}",rU["\\varlimsup"]="\\DOTSB\\operatorname*{\\overline{lim}}",rU["\\varliminf"]="\\DOTSB\\operatorname*{\\underline{lim}}",rU["\\varinjlim"]="\\DOTSB\\operatorname*{\\underrightarrow{lim}}",rU["\\varprojlim"]="\\DOTSB\\operatorname*{\\underleftarrow{lim}}",rU["\\gvertneqq"]="\\html@mathml{\\@gvertneqq}{\u2269}",rU["\\lvertneqq"]="\\html@mathml{\\@lvertneqq}{\u2268}",rU["\\ngeqq"]="\\html@mathml{\\@ngeqq}{\u2271}",rU["\\ngeqslant"]="\\html@mathml{\\@ngeqslant}{\u2271}",rU["\\nleqq"]="\\html@mathml{\\@nleqq}{\u2270}",rU["\\nleqslant"]="\\html@mathml{\\@nleqslant}{\u2270}",rU["\\nshortmid"]="\\html@mathml{\\@nshortmid}{\u2224}",rU["\\nshortparallel"]="\\html@mathml{\\@nshortparallel}{\u2226}",rU["\\nsubseteqq"]="\\html@mathml{\\@nsubseteqq}{\u2288}",rU["\\nsupseteqq"]="\\html@mathml{\\@nsupseteqq}{\u2289}",rU["\\varsubsetneq"]="\\html@mathml{\\@varsubsetneq}{\u228A}",rU["\\varsubsetneqq"]="\\html@mathml{\\@varsubsetneqq}{\u2ACB}",rU["\\varsupsetneq"]="\\html@mathml{\\@varsupsetneq}{\u228B}",rU["\\varsupsetneqq"]="\\html@mathml{\\@varsupsetneqq}{\u2ACC}",rU["\\imath"]="\\html@mathml{\\@imath}{\u0131}",rU["\\jmath"]="\\html@mathml{\\@jmath}{\u0237}",rU["\\llbracket"]="\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}",rU["\\rrbracket"]="\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}",rU["\u27E6"]="\\llbracket",rU["\u27E7"]="\\rrbracket",rU["\\lBrace"]="\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}",rU["\\rBrace"]="\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}",rU["\u2983"]="\\lBrace",rU["\u2984"]="\\rBrace",rU["\\minuso"]="\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}",rU["\u29B5"]="\\minuso",rU["\\darr"]="\\downarrow",rU["\\dArr"]="\\Downarrow",rU["\\Darr"]="\\Downarrow",rU["\\lang"]="\\langle",rU["\\rang"]="\\rangle",rU["\\uarr"]="\\uparrow",rU["\\uArr"]="\\Uparrow",rU["\\Uarr"]="\\Uparrow",rU["\\N"]="\\mathbb{N}",rU["\\R"]="\\mathbb{R}",rU["\\Z"]="\\mathbb{Z}",rU["\\alef"]="\\aleph",rU["\\alefsym"]="\\aleph",rU["\\Alpha"]="\\mathrm{A}",rU["\\Beta"]="\\mathrm{B}",rU["\\bull"]="\\bullet",rU["\\Chi"]="\\mathrm{X}",rU["\\clubs"]="\\clubsuit",rU["\\cnums"]="\\mathbb{C}",rU["\\Complex"]="\\mathbb{C}",rU["\\Dagger"]="\\ddagger",rU["\\diamonds"]="\\diamondsuit",rU["\\empty"]="\\emptyset",rU["\\Epsilon"]="\\mathrm{E}",rU["\\Eta"]="\\mathrm{H}",rU["\\exist"]="\\exists",rU["\\harr"]="\\leftrightarrow",rU["\\hArr"]="\\Leftrightarrow",rU["\\Harr"]="\\Leftrightarrow",rU["\\hearts"]="\\heartsuit",rU["\\image"]="\\Im",rU["\\infin"]="\\infty",rU["\\Iota"]="\\mathrm{I}",rU["\\isin"]="\\in",rU["\\Kappa"]="\\mathrm{K}",rU["\\larr"]="\\leftarrow",rU["\\lArr"]="\\Leftarrow",rU["\\Larr"]="\\Leftarrow",rU["\\lrarr"]="\\leftrightarrow",rU["\\lrArr"]="\\Leftrightarrow",rU["\\Lrarr"]="\\Leftrightarrow",rU["\\Mu"]="\\mathrm{M}",rU["\\natnums"]="\\mathbb{N}",rU["\\Nu"]="\\mathrm{N}",rU["\\Omicron"]="\\mathrm{O}",rU["\\plusmn"]="\\pm",rU["\\rarr"]="\\rightarrow",rU["\\rArr"]="\\Rightarrow",rU["\\Rarr"]="\\Rightarrow",rU["\\real"]="\\Re",rU["\\reals"]="\\mathbb{R}",rU["\\Reals"]="\\mathbb{R}",rU["\\Rho"]="\\mathrm{P}",rU["\\sdot"]="\\cdot",rU["\\sect"]="\\S",rU["\\spades"]="\\spadesuit",rU["\\sub"]="\\subset",rU["\\sube"]="\\subseteq",rU["\\supe"]="\\supseteq",rU["\\Tau"]="\\mathrm{T}",rU["\\thetasym"]="\\vartheta",rU["\\weierp"]="\\wp",rU["\\Zeta"]="\\mathrm{Z}",rU["\\argmin"]="\\DOTSB\\operatorname*{arg\\,min}",rU["\\argmax"]="\\DOTSB\\operatorname*{arg\\,max}",rU["\\plim"]="\\DOTSB\\mathop{\\operatorname{plim}}\\limits",rU["\\bra"]="\\mathinner{\\langle{#1}|}",rU["\\ket"]="\\mathinner{|{#1}\\rangle}",rU["\\braket"]="\\mathinner{\\langle{#1}\\rangle}",rU["\\Bra"]="\\left\\langle#1\\right|",rU["\\Ket"]="\\left|#1\\right\\rangle";var aI=e=>t=>{var r=t.consumeArg().tokens,a=t.consumeArg().tokens,n=t.consumeArg().tokens,i=t.consumeArg().tokens,s=t.macros.get("|"),o=t.macros.get("\\|");t.macros.beginGroup();var l=t=>r=>{e&&(r.macros.set("|",s),n.length&&r.macros.set("\\|",o));var i=t;return!t&&n.length&&"|"===r.future().text&&(r.popToken(),i=!0),{tokens:i?n:a,numArgs:0}};t.macros.set("|",l(!1)),n.length&&t.macros.set("\\|",l(!0));var h=t.consumeArg().tokens,m=t.expandTokens([...i,...h,...r]);return t.macros.endGroup(),{tokens:m.reverse(),numArgs:0}};A=aI(!1),rU["\\bra@ket"]=A,T=aI(!0),rU["\\bra@set"]=T,rU["\\Braket"]="\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}",rU["\\Set"]="\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}",rU["\\set"]="\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}",rU["\\angln"]="{\\angl n}",rU["\\blue"]="\\textcolor{##6495ed}{#1}",rU["\\orange"]="\\textcolor{##ffa500}{#1}",rU["\\pink"]="\\textcolor{##ff00af}{#1}",rU["\\red"]="\\textcolor{##df0030}{#1}",rU["\\green"]="\\textcolor{##28ae7b}{#1}",rU["\\gray"]="\\textcolor{gray}{#1}",rU["\\purple"]="\\textcolor{##9d38bd}{#1}",rU["\\blueA"]="\\textcolor{##ccfaff}{#1}",rU["\\blueB"]="\\textcolor{##80f6ff}{#1}",rU["\\blueC"]="\\textcolor{##63d9ea}{#1}",rU["\\blueD"]="\\textcolor{##11accd}{#1}",rU["\\blueE"]="\\textcolor{##0c7f99}{#1}",rU["\\tealA"]="\\textcolor{##94fff5}{#1}",rU["\\tealB"]="\\textcolor{##26edd5}{#1}",rU["\\tealC"]="\\textcolor{##01d1c1}{#1}",rU["\\tealD"]="\\textcolor{##01a995}{#1}",rU["\\tealE"]="\\textcolor{##208170}{#1}",rU["\\greenA"]="\\textcolor{##b6ffb0}{#1}",rU["\\greenB"]="\\textcolor{##8af281}{#1}",rU["\\greenC"]="\\textcolor{##74cf70}{#1}",rU["\\greenD"]="\\textcolor{##1fab54}{#1}",rU["\\greenE"]="\\textcolor{##0d923f}{#1}",rU["\\goldA"]="\\textcolor{##ffd0a9}{#1}",rU["\\goldB"]="\\textcolor{##ffbb71}{#1}",rU["\\goldC"]="\\textcolor{##ff9c39}{#1}",rU["\\goldD"]="\\textcolor{##e07d10}{#1}",rU["\\goldE"]="\\textcolor{##a75a05}{#1}",rU["\\redA"]="\\textcolor{##fca9a9}{#1}",rU["\\redB"]="\\textcolor{##ff8482}{#1}",rU["\\redC"]="\\textcolor{##f9685d}{#1}",rU["\\redD"]="\\textcolor{##e84d39}{#1}",rU["\\redE"]="\\textcolor{##bc2612}{#1}",rU["\\maroonA"]="\\textcolor{##ffbde0}{#1}",rU["\\maroonB"]="\\textcolor{##ff92c6}{#1}",rU["\\maroonC"]="\\textcolor{##ed5fa6}{#1}",rU["\\maroonD"]="\\textcolor{##ca337c}{#1}",rU["\\maroonE"]="\\textcolor{##9e034e}{#1}",rU["\\purpleA"]="\\textcolor{##ddd7ff}{#1}",rU["\\purpleB"]="\\textcolor{##c6b9fc}{#1}",rU["\\purpleC"]="\\textcolor{##aa87ff}{#1}",rU["\\purpleD"]="\\textcolor{##7854ab}{#1}",rU["\\purpleE"]="\\textcolor{##543b78}{#1}",rU["\\mintA"]="\\textcolor{##f5f9e8}{#1}",rU["\\mintB"]="\\textcolor{##edf2df}{#1}",rU["\\mintC"]="\\textcolor{##e0e5cc}{#1}",rU["\\grayA"]="\\textcolor{##f6f7f7}{#1}",rU["\\grayB"]="\\textcolor{##f0f1f2}{#1}",rU["\\grayC"]="\\textcolor{##e3e5e6}{#1}",rU["\\grayD"]="\\textcolor{##d6d8da}{#1}",rU["\\grayE"]="\\textcolor{##babec2}{#1}",rU["\\grayF"]="\\textcolor{##888d93}{#1}",rU["\\grayG"]="\\textcolor{##626569}{#1}",rU["\\grayH"]="\\textcolor{##3b3e40}{#1}",rU["\\grayI"]="\\textcolor{##21242c}{#1}",rU["\\kaBlue"]="\\textcolor{##314453}{#1}",rU["\\kaGreen"]="\\textcolor{##71B307}{#1}";var aH={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class aR{constructor(e,t,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new aA(rU,t.macros),this.mode=r,this.stack=[]}feed(e){this.lexer=new az(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var t,r,a;if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;t=this.popToken(),{tokens:a,end:r}=this.consumeArg(["]"])}else({tokens:a,start:t,end:r}=this.consumeArg());return this.pushToken(new n("EOF",r.loc)),this.pushTokens(a),t.range(r,"")}consumeSpaces(){for(;;)if(" "===this.future().text)this.stack.pop();else break}consumeArg(e){var t,r=[],a=e&&e.length>0;!a&&this.consumeSpaces();var n=this.future(),s=0,o=0;do{if(t=this.popToken(),r.push(t),"{"===t.text)++s;else if("}"===t.text){if(-1==--s)throw new i("Extra }",t)}else if("EOF"===t.text)throw new i("Unexpected end of input in a macro argument, expected '"+(e&&a?e[o]:"}")+"'",t);if(e&&a){if((0===s||1===s&&"{"===e[o])&&t.text===e[o]){if(++o===e.length){r.splice(-o,o);break}}else o=0}}while(0!==s||a);return"{"===n.text&&"}"===r[r.length-1].text&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:n,end:t}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new i("The length of delimiters doesn't match the number of args!");for(var r=t[0],a=0;athis.settings.maxExpand)throw new i("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var t=this.popToken(),r=t.text,a=t.noexpand?null:this._getExpansion(r);if(null==a||e&&a.unexpandable){if(e&&null==a&&"\\"===r[0]&&!this.isDefined(r))throw new i("Undefined control sequence: "+r);return this.pushToken(t),!1}this.countExpansion(1);var n=a.tokens,s=this.consumeArgs(a.numArgs,a.delimiters);if(a.numArgs){n=n.slice();for(var o=n.length-1;o>=0;--o){var l=n[o];if("#"===l.text){if(0===o)throw new i("Incomplete placeholder at end of macro body",l);if("#"===(l=n[--o]).text)n.splice(o+1,1);else if(/^[1-9]$/.test(l.text))n.splice(o,2,...s[+l.text-1]);else throw new i("Not a valid argument number",l)}}}return this.pushTokens(n),n.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(!1===this.expandOnce()){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw Error()}expandMacro(e){return this.macros.has(e)?this.expandTokens([new n(e)]):void 0}expandTokens(e){var t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;)if(!1===this.expandOnce(!0)){var a=this.stack.pop();a.treatAsRelax&&(a.noexpand=!1,a.treatAsRelax=!1),t.push(a)}return this.countExpansion(t.length),t}expandMacroAsText(e){var t=this.expandMacro(e);return t?t.map(e=>e.text).join(""):t}_getExpansion(e){var t=this.macros.get(e);if(null==t)return t;if(1===e.length){var r=this.lexer.catcodes[e];if(null!=r&&13!==r)return}var a="function"==typeof t?t(this):t;if("string"==typeof a){var n=0;if(-1!==a.indexOf("#")){for(var i=a.replace(/##/g,"");-1!==i.indexOf("#"+(n+1));)++n}for(var s=new az(a,this.settings),o=[],l=s.lex();"EOF"!==l.text;)o.push(l),l=s.lex();return o.reverse(),{tokens:o,numArgs:n}}return a}isDefined(e){return this.macros.has(e)||tf.hasOwnProperty(e)||eB.math.hasOwnProperty(e)||eB.text.hasOwnProperty(e)||aH.hasOwnProperty(e)}isExpandable(e){var t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:tf.hasOwnProperty(e)&&!tf[e].primitive}}var aO=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,aE=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9",\u2090:"a",\u2091:"e",\u2095:"h",\u1D62:"i",\u2C7C:"j",\u2096:"k",\u2097:"l",\u2098:"m",\u2099:"n",\u2092:"o",\u209A:"p",\u1D63:"r",\u209B:"s",\u209C:"t",\u1D64:"u",\u1D65:"v",\u2093:"x",\u1D66:"\u03B2",\u1D67:"\u03B3",\u1D68:"\u03C1",\u1D69:"\u03D5",\u1D6A:"\u03C7","\u207A":"+","\u207B":"-","\u207C":"=","\u207D":"(","\u207E":")","\u2070":"0","\xb9":"1","\xb2":"2","\xb3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9",\u1D2C:"A",\u1D2E:"B",\u1D30:"D",\u1D31:"E",\u1D33:"G",\u1D34:"H",\u1D35:"I",\u1D36:"J",\u1D37:"K",\u1D38:"L",\u1D39:"M",\u1D3A:"N",\u1D3C:"O",\u1D3E:"P",\u1D3F:"R",\u1D40:"T",\u1D41:"U",\u2C7D:"V",\u1D42:"W",\u1D43:"a",\u1D47:"b",\u1D9C:"c",\u1D48:"d",\u1D49:"e",\u1DA0:"f",\u1D4D:"g",\u02B0:"h",\u2071:"i",\u02B2:"j",\u1D4F:"k",\u02E1:"l",\u1D50:"m",\u207F:"n",\u1D52:"o",\u1D56:"p",\u02B3:"r",\u02E2:"s",\u1D57:"t",\u1D58:"u",\u1D5B:"v",\u02B7:"w",\u02E3:"x",\u02B8:"y",\u1DBB:"z",\u1D5D:"\u03B2",\u1D5E:"\u03B3",\u1D5F:"\u03B4",\u1D60:"\u03D5",\u1D61:"\u03C7",\u1DBF:"\u03B8"}),aL={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030C":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030A":{text:"\\r",math:"\\mathring"},"\u030B":{text:"\\H"},"\u0327":{text:"\\c"}},aD={"\xe1":"a\u0301","\xe0":"a\u0300","\xe4":"a\u0308",\u01DF:"a\u0308\u0304","\xe3":"a\u0303",\u0101:"a\u0304",\u0103:"a\u0306",\u1EAF:"a\u0306\u0301",\u1EB1:"a\u0306\u0300",\u1EB5:"a\u0306\u0303",\u01CE:"a\u030C","\xe2":"a\u0302",\u1EA5:"a\u0302\u0301",\u1EA7:"a\u0302\u0300",\u1EAB:"a\u0302\u0303",\u0227:"a\u0307",\u01E1:"a\u0307\u0304","\xe5":"a\u030A",\u01FB:"a\u030A\u0301",\u1E03:"b\u0307",\u0107:"c\u0301",\u1E09:"c\u0327\u0301",\u010D:"c\u030C",\u0109:"c\u0302",\u010B:"c\u0307","\xe7":"c\u0327",\u010F:"d\u030C",\u1E0B:"d\u0307",\u1E11:"d\u0327","\xe9":"e\u0301","\xe8":"e\u0300","\xeb":"e\u0308",\u1EBD:"e\u0303",\u0113:"e\u0304",\u1E17:"e\u0304\u0301",\u1E15:"e\u0304\u0300",\u0115:"e\u0306",\u1E1D:"e\u0327\u0306",\u011B:"e\u030C","\xea":"e\u0302",\u1EBF:"e\u0302\u0301",\u1EC1:"e\u0302\u0300",\u1EC5:"e\u0302\u0303",\u0117:"e\u0307",\u0229:"e\u0327",\u1E1F:"f\u0307",\u01F5:"g\u0301",\u1E21:"g\u0304",\u011F:"g\u0306",\u01E7:"g\u030C",\u011D:"g\u0302",\u0121:"g\u0307",\u0123:"g\u0327",\u1E27:"h\u0308",\u021F:"h\u030C",\u0125:"h\u0302",\u1E23:"h\u0307",\u1E29:"h\u0327","\xed":"i\u0301","\xec":"i\u0300","\xef":"i\u0308",\u1E2F:"i\u0308\u0301",\u0129:"i\u0303",\u012B:"i\u0304",\u012D:"i\u0306",\u01D0:"i\u030C","\xee":"i\u0302",\u01F0:"j\u030C",\u0135:"j\u0302",\u1E31:"k\u0301",\u01E9:"k\u030C",\u0137:"k\u0327",\u013A:"l\u0301",\u013E:"l\u030C",\u013C:"l\u0327",\u1E3F:"m\u0301",\u1E41:"m\u0307",\u0144:"n\u0301",\u01F9:"n\u0300","\xf1":"n\u0303",\u0148:"n\u030C",\u1E45:"n\u0307",\u0146:"n\u0327","\xf3":"o\u0301","\xf2":"o\u0300","\xf6":"o\u0308",\u022B:"o\u0308\u0304","\xf5":"o\u0303",\u1E4D:"o\u0303\u0301",\u1E4F:"o\u0303\u0308",\u022D:"o\u0303\u0304",\u014D:"o\u0304",\u1E53:"o\u0304\u0301",\u1E51:"o\u0304\u0300",\u014F:"o\u0306",\u01D2:"o\u030C","\xf4":"o\u0302",\u1ED1:"o\u0302\u0301",\u1ED3:"o\u0302\u0300",\u1ED7:"o\u0302\u0303",\u022F:"o\u0307",\u0231:"o\u0307\u0304",\u0151:"o\u030B",\u1E55:"p\u0301",\u1E57:"p\u0307",\u0155:"r\u0301",\u0159:"r\u030C",\u1E59:"r\u0307",\u0157:"r\u0327",\u015B:"s\u0301",\u1E65:"s\u0301\u0307",\u0161:"s\u030C",\u1E67:"s\u030C\u0307",\u015D:"s\u0302",\u1E61:"s\u0307",\u015F:"s\u0327",\u1E97:"t\u0308",\u0165:"t\u030C",\u1E6B:"t\u0307",\u0163:"t\u0327","\xfa":"u\u0301","\xf9":"u\u0300","\xfc":"u\u0308",\u01D8:"u\u0308\u0301",\u01DC:"u\u0308\u0300",\u01D6:"u\u0308\u0304",\u01DA:"u\u0308\u030C",\u0169:"u\u0303",\u1E79:"u\u0303\u0301",\u016B:"u\u0304",\u1E7B:"u\u0304\u0308",\u016D:"u\u0306",\u01D4:"u\u030C","\xfb":"u\u0302",\u016F:"u\u030A",\u0171:"u\u030B",\u1E7D:"v\u0303",\u1E83:"w\u0301",\u1E81:"w\u0300",\u1E85:"w\u0308",\u0175:"w\u0302",\u1E87:"w\u0307",\u1E98:"w\u030A",\u1E8D:"x\u0308",\u1E8B:"x\u0307","\xfd":"y\u0301",\u1EF3:"y\u0300","\xff":"y\u0308",\u1EF9:"y\u0303",\u0233:"y\u0304",\u0177:"y\u0302",\u1E8F:"y\u0307",\u1E99:"y\u030A",\u017A:"z\u0301",\u017E:"z\u030C",\u1E91:"z\u0302",\u017C:"z\u0307","\xc1":"A\u0301","\xc0":"A\u0300","\xc4":"A\u0308",\u01DE:"A\u0308\u0304","\xc3":"A\u0303",\u0100:"A\u0304",\u0102:"A\u0306",\u1EAE:"A\u0306\u0301",\u1EB0:"A\u0306\u0300",\u1EB4:"A\u0306\u0303",\u01CD:"A\u030C","\xc2":"A\u0302",\u1EA4:"A\u0302\u0301",\u1EA6:"A\u0302\u0300",\u1EAA:"A\u0302\u0303",\u0226:"A\u0307",\u01E0:"A\u0307\u0304","\xc5":"A\u030A",\u01FA:"A\u030A\u0301",\u1E02:"B\u0307",\u0106:"C\u0301",\u1E08:"C\u0327\u0301",\u010C:"C\u030C",\u0108:"C\u0302",\u010A:"C\u0307","\xc7":"C\u0327",\u010E:"D\u030C",\u1E0A:"D\u0307",\u1E10:"D\u0327","\xc9":"E\u0301","\xc8":"E\u0300","\xcb":"E\u0308",\u1EBC:"E\u0303",\u0112:"E\u0304",\u1E16:"E\u0304\u0301",\u1E14:"E\u0304\u0300",\u0114:"E\u0306",\u1E1C:"E\u0327\u0306",\u011A:"E\u030C","\xca":"E\u0302",\u1EBE:"E\u0302\u0301",\u1EC0:"E\u0302\u0300",\u1EC4:"E\u0302\u0303",\u0116:"E\u0307",\u0228:"E\u0327",\u1E1E:"F\u0307",\u01F4:"G\u0301",\u1E20:"G\u0304",\u011E:"G\u0306",\u01E6:"G\u030C",\u011C:"G\u0302",\u0120:"G\u0307",\u0122:"G\u0327",\u1E26:"H\u0308",\u021E:"H\u030C",\u0124:"H\u0302",\u1E22:"H\u0307",\u1E28:"H\u0327","\xcd":"I\u0301","\xcc":"I\u0300","\xcf":"I\u0308",\u1E2E:"I\u0308\u0301",\u0128:"I\u0303",\u012A:"I\u0304",\u012C:"I\u0306",\u01CF:"I\u030C","\xce":"I\u0302",\u0130:"I\u0307",\u0134:"J\u0302",\u1E30:"K\u0301",\u01E8:"K\u030C",\u0136:"K\u0327",\u0139:"L\u0301",\u013D:"L\u030C",\u013B:"L\u0327",\u1E3E:"M\u0301",\u1E40:"M\u0307",\u0143:"N\u0301",\u01F8:"N\u0300","\xd1":"N\u0303",\u0147:"N\u030C",\u1E44:"N\u0307",\u0145:"N\u0327","\xd3":"O\u0301","\xd2":"O\u0300","\xd6":"O\u0308",\u022A:"O\u0308\u0304","\xd5":"O\u0303",\u1E4C:"O\u0303\u0301",\u1E4E:"O\u0303\u0308",\u022C:"O\u0303\u0304",\u014C:"O\u0304",\u1E52:"O\u0304\u0301",\u1E50:"O\u0304\u0300",\u014E:"O\u0306",\u01D1:"O\u030C","\xd4":"O\u0302",\u1ED0:"O\u0302\u0301",\u1ED2:"O\u0302\u0300",\u1ED6:"O\u0302\u0303",\u022E:"O\u0307",\u0230:"O\u0307\u0304",\u0150:"O\u030B",\u1E54:"P\u0301",\u1E56:"P\u0307",\u0154:"R\u0301",\u0158:"R\u030C",\u1E58:"R\u0307",\u0156:"R\u0327",\u015A:"S\u0301",\u1E64:"S\u0301\u0307",\u0160:"S\u030C",\u1E66:"S\u030C\u0307",\u015C:"S\u0302",\u1E60:"S\u0307",\u015E:"S\u0327",\u0164:"T\u030C",\u1E6A:"T\u0307",\u0162:"T\u0327","\xda":"U\u0301","\xd9":"U\u0300","\xdc":"U\u0308",\u01D7:"U\u0308\u0301",\u01DB:"U\u0308\u0300",\u01D5:"U\u0308\u0304",\u01D9:"U\u0308\u030C",\u0168:"U\u0303",\u1E78:"U\u0303\u0301",\u016A:"U\u0304",\u1E7A:"U\u0304\u0308",\u016C:"U\u0306",\u01D3:"U\u030C","\xdb":"U\u0302",\u016E:"U\u030A",\u0170:"U\u030B",\u1E7C:"V\u0303",\u1E82:"W\u0301",\u1E80:"W\u0300",\u1E84:"W\u0308",\u0174:"W\u0302",\u1E86:"W\u0307",\u1E8C:"X\u0308",\u1E8A:"X\u0307","\xdd":"Y\u0301",\u1EF2:"Y\u0300",\u0178:"Y\u0308",\u1EF8:"Y\u0303",\u0232:"Y\u0304",\u0176:"Y\u0302",\u1E8E:"Y\u0307",\u0179:"Z\u0301",\u017D:"Z\u030C",\u1E90:"Z\u0302",\u017B:"Z\u0307",\u03AC:"\u03B1\u0301",\u1F70:"\u03B1\u0300",\u1FB1:"\u03B1\u0304",\u1FB0:"\u03B1\u0306",\u03AD:"\u03B5\u0301",\u1F72:"\u03B5\u0300",\u03AE:"\u03B7\u0301",\u1F74:"\u03B7\u0300",\u03AF:"\u03B9\u0301",\u1F76:"\u03B9\u0300",\u03CA:"\u03B9\u0308",\u0390:"\u03B9\u0308\u0301",\u1FD2:"\u03B9\u0308\u0300",\u1FD1:"\u03B9\u0304",\u1FD0:"\u03B9\u0306",\u03CC:"\u03BF\u0301",\u1F78:"\u03BF\u0300",\u03CD:"\u03C5\u0301",\u1F7A:"\u03C5\u0300",\u03CB:"\u03C5\u0308",\u03B0:"\u03C5\u0308\u0301",\u1FE2:"\u03C5\u0308\u0300",\u1FE1:"\u03C5\u0304",\u1FE0:"\u03C5\u0306",\u03CE:"\u03C9\u0301",\u1F7C:"\u03C9\u0300",\u038E:"\u03A5\u0301",\u1FEA:"\u03A5\u0300",\u03AB:"\u03A5\u0308",\u1FE9:"\u03A5\u0304",\u1FE8:"\u03A5\u0306",\u038F:"\u03A9\u0301",\u1FFA:"\u03A9\u0300"};class aV{constructor(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new aR(e,t,this.mode),this.settings=t,this.leftrightDepth=0}expect(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new i("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()}consume(){this.nextToken=null}fetch(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){!this.settings.globalGroup&&this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),!this.settings.globalGroup&&this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new n("}")),this.gullet.pushTokens(e);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,r}parseExpression(e,t){for(var r=[];;){"math"===this.mode&&this.consumeSpaces();var a=this.fetch();if(-1!==aV.endOfExpression.indexOf(a.text)||t&&a.text===t||e&&tf[a.text]&&tf[a.text].infix)break;var n=this.parseAtom(t);if(n){if("internal"===n.type)continue}else break;r.push(n)}return"text"===this.mode&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(e){for(var t=-1,r=0;r=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var o,l,h=eB[this.mode][t].group,m=a.range(e);o=l=eA.hasOwnProperty(h)?{type:"atom",mode:this.mode,family:h,loc:m,text:t}:{type:h,mode:this.mode,loc:m,text:t}}else{if(!(t.charCodeAt(0)>=128))return null;this.settings.strict&&(_(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'"'+(" ("+t.charCodeAt(0))+")",e)),o={type:"textord",mode:"text",loc:a.range(e),text:t}}if(this.consume(),s)for(var c=0;ci,contentTitle:()=>l,default:()=>f,assets:()=>d,toc:()=>o,frontMatter:()=>r});var i=JSON.parse('{"id":"additional-material/steffen/java-1/slides","title":"Folien","description":"","source":"@site/docs/additional-material/steffen/java-1/slides.md","sourceDirName":"additional-material/steffen/java-1","slug":"/additional-material/steffen/java-1/slides","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/slides","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/additional-material/steffen/java-1/slides.md","tags":[],"version":"current","sidebarPosition":10,"frontMatter":{"title":"Folien","description":"","sidebar_position":10,"tags":[]},"sidebar":"additionalMaterialSidebar","previous":{"title":"Java 1","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/"},"next":{"title":"Klausurvorbereitung","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/"}}'),s=n("85893"),t=n("50065");let r={title:"Folien",description:"",sidebar_position:10,tags:[]},l=void 0,d={},o=[];function c(e){let a={a:"a",li:"li",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/slides/steffen/java-1/intro",children:"Einleitung 16.01."})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/slides/steffen/java-1/datatypes-and-dataobjects",children:"Datentypen und Datenobjekte 16.01."})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/slides/steffen/java-1/methods-and-operators",children:"Methoden und Operatoren 17.01."})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/slides/steffen/java-1/if-and-switch",children:"Kontrollstrukturen und Arrays 23.01."})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/slides/steffen/java-1/math-random-scanner",children:"Math, Random und Scanner 24.01."})}),"\n",(0,s.jsx)(a.li,{children:"Kurztest 06.02."}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/slides/steffen/java-1/classes-and-objects",children:"Klassen und Objekte 06.02."})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/slides/steffen/java-1/constructor-and-static",children:"Konstruktor und static 07.02."})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/slides/steffen/java-1/class-diagram-java-api-enum",children:"Java API, Enum, Klassendiagramm, Aktivit\xe4tsdiagramm 13.02. & 14.02."})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/slides/steffen/java-1/inheritance",children:"Vererbung 20.02."})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/slides/steffen/java-1/polymorphy",children:"Polymorphie 20.02."})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/slides/steffen/java-1/abstract-and-final",children:"Abstrakte und finale Klassen 21.02."})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/slides/steffen/java-1/interfaces",children:"Interfaces 27.02."})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"/slides/steffen/java-1/exceptions",children:"Exceptions 28.02."})}),"\n",(0,s.jsx)(a.li,{children:"Klausurvorbereitung 06.03. & 07.03."}),"\n",(0,s.jsx)(a.li,{children:"Klausur 14.03."}),"\n"]})}function f(e={}){let{wrapper:a}={...(0,t.a)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},50065:function(e,a,n){n.d(a,{Z:function(){return l},a:function(){return r}});var i=n(67294);let s={},t=i.createContext(s);function r(e){let a=i.useContext(t);return i.useMemo(function(){return"function"==typeof e?e(a):{...a,...e}},[a,e])}function l(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(t.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/549319b9.9368225c.js b/pr-preview/pr-238/assets/js/549319b9.9368225c.js new file mode 100644 index 0000000000..e58391fded --- /dev/null +++ b/pr-preview/pr-238/assets/js/549319b9.9368225c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4105"],{38879:function(e,s,n){n.r(s),n.d(s,{metadata:()=>t,contentTitle:()=>u,default:()=>p,assets:()=>c,toc:()=>o,frontMatter:()=>l});var t=JSON.parse('{"id":"exercises/cases/cases04","title":"Cases04","description":"","source":"@site/docs/exercises/cases/cases04.mdx","sourceDirName":"exercises/cases","slug":"/exercises/cases/cases04","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/cases04","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/cases/cases04.mdx","tags":[],"version":"current","frontMatter":{"title":"Cases04","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Cases03","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/cases03"},"next":{"title":"Cases05","permalink":"/java-docs/pr-preview/pr-238/exercises/cases/cases05"}}'),r=n("85893"),a=n("50065"),i=n("39661");let l={title:"Cases04",description:""},u=void 0,c={},o=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2},{value:"Hinweise",id:"hinweise",level:2}];function d(e){let s={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.p,{children:"Erstelle eine ausf\xfchrbare Klasse, welche es zwei Spielern erm\xf6glicht, eine\nZufallszahl zwischen 1 und 100 zu erraten. Der Spieler, der mit seinem Tipp\nn\xe4her an der Zufallszahl liegt, gewinnt das Spiel."}),"\n",(0,r.jsx)(s.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-console",children:"Spieler 1, gib bitte Deinen Tipp ein: 34\nSpieler 2, gib bitte Deinen Tipp ein: 60\nZufallszahl: 39, Spieler 1 gewinnt\n"})}),"\n",(0,r.jsx)(s.h2,{id:"hinweise",children:"Hinweise"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Die Methode ",(0,r.jsx)(s.code,{children:"int nextInt(bound: int)"})," der Klasse ",(0,r.jsx)(s.code,{children:"Random"})," gibt eine\nZufallszahl zwischen 0 (inklusive) und der eingehenden Zahl (exklusive) zur\xfcck"]}),"\n",(0,r.jsxs)(s.li,{children:["Die statische Methode ",(0,r.jsx)(s.code,{children:"int abs(a: int)"})," der Klasse ",(0,r.jsx)(s.code,{children:"Math"})," gibt den Betrag der\neingehenden Zahl zur\xfcck"]}),"\n"]}),"\n",(0,r.jsx)(i.Z,{pullRequest:"10",branchSuffix:"cases/04"})]})}function p(e={}){let{wrapper:s}={...(0,a.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},5525:function(e,s,n){n.d(s,{Z:()=>i});var t=n("85893");n("67294");var r=n("67026");let a="tabItem_Ymn6";function i(e){let{children:s,hidden:n,className:i}=e;return(0,t.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a,i),hidden:n,children:s})}},47902:function(e,s,n){n.d(s,{Z:()=>j});var t=n("85893"),r=n("67294"),a=n("67026"),i=n("69599"),l=n("16550"),u=n("32000"),c=n("4520"),o=n("38341"),d=n("76009");function p(e){return r.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||r.isValidElement(e)&&function(e){let{props:s}=e;return!!s&&"object"==typeof s&&"value"in s}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:s,tabValues:n}=e;return n.some(e=>e.value===s)}var f=n("7227");let b="tabList__CuJ",v="tabItem_LNqP";function x(e){let{className:s,block:n,selectedValue:r,selectValue:l,tabValues:u}=e,c=[],{blockElementScrollPositionUntilNextRender:o}=(0,i.o5)(),d=e=>{let s=e.currentTarget,n=u[c.indexOf(s)].value;n!==r&&(o(s),l(n))},p=e=>{let s=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let n=c.indexOf(e.currentTarget)+1;s=c[n]??c[0];break}case"ArrowLeft":{let n=c.indexOf(e.currentTarget)-1;s=c[n]??c[c.length-1]}}s?.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},s),children:u.map(e=>{let{value:s,label:n,attributes:i}=e;return(0,t.jsx)("li",{role:"tab",tabIndex:r===s?0:-1,"aria-selected":r===s,ref:e=>c.push(e),onKeyDown:p,onClick:d,...i,className:(0,a.Z)("tabs__item",v,i?.className,{"tabs__item--active":r===s}),children:n??s},s)})})}function m(e){let{lazy:s,children:n,selectedValue:i}=e,l=(Array.isArray(n)?n:[n]).filter(Boolean);if(s){let e=l.find(e=>e.props.value===i);return e?(0,r.cloneElement)(e,{className:(0,a.Z)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:l.map((e,s)=>(0,r.cloneElement)(e,{key:s,hidden:e.props.value!==i}))})}function g(e){let s=function(e){let{defaultValue:s,queryString:n=!1,groupId:t}=e,a=function(e){let{values:s,children:n}=e;return(0,r.useMemo)(()=>{let e=s??p(n).map(e=>{let{props:{value:s,label:n,attributes:t,default:r}}=e;return{value:s,label:n,attributes:t,default:r}});return!function(e){let s=(0,o.lx)(e,(e,s)=>e.value===s.value);if(s.length>0)throw Error(`Docusaurus error: Duplicate values "${s.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[s,n])}(e),[i,f]=(0,r.useState)(()=>(function(e){let{defaultValue:s,tabValues:n}=e;if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(s){if(!h({value:s,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${s}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return s}let t=n.find(e=>e.default)??n[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:s,tabValues:a})),[b,v]=function(e){let{queryString:s=!1,groupId:n}=e,t=(0,l.k6)(),a=function(e){let{queryString:s=!1,groupId:n}=e;if("string"==typeof s)return s;if(!1===s)return null;if(!0===s&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:s,groupId:n}),i=(0,c._X)(a);return[i,(0,r.useCallback)(e=>{if(!a)return;let s=new URLSearchParams(t.location.search);s.set(a,e),t.replace({...t.location,search:s.toString()})},[a,t])]}({queryString:n,groupId:t}),[x,m]=function(e){var s;let{groupId:n}=e;let t=(s=n)?`docusaurus.tab.${s}`:null,[a,i]=(0,d.Nk)(t);return[a,(0,r.useCallback)(e=>{if(!!t)i.set(e)},[t,i])]}({groupId:t}),g=(()=>{let e=b??x;return h({value:e,tabValues:a})?e:null})();return(0,u.Z)(()=>{g&&f(g)},[g]),{selectedValue:i,selectValue:(0,r.useCallback)(e=>{if(!h({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);f(e),v(e),m(e)},[v,m,a]),tabValues:a}}(e);return(0,t.jsxs)("div",{className:(0,a.Z)("tabs-container",b),children:[(0,t.jsx)(x,{...s,...e}),(0,t.jsx)(m,{...s,...e})]})}function j(e){let s=(0,f.Z)();return(0,t.jsx)(g,{...e,children:p(e.children)},String(s))}},39661:function(e,s,n){n.d(s,{Z:function(){return u}});var t=n(85893);n(67294);var r=n(47902),a=n(5525),i=n(83012),l=n(45056);function u(e){let{pullRequest:s,branchSuffix:n}=e;return(0,t.jsxs)(r.Z,{children:[(0,t.jsxs)(a.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,t.jsx)(l.Z,{language:"console",children:`git switch exercises/${n}`}),(0,t.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${n}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(a.Z,{value:"solution",label:"Solution",children:[(0,t.jsx)(l.Z,{language:"console",children:`git switch solutions/${n}`}),(0,t.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${n}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(a.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,t.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${s}/files?diff=split`,children:["PR#",s]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5519f4be.74b9f212.js b/pr-preview/pr-238/assets/js/5519f4be.74b9f212.js new file mode 100644 index 0000000000..0a312a3c41 --- /dev/null +++ b/pr-preview/pr-238/assets/js/5519f4be.74b9f212.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["845"],{68198:function(e,a,n){n.r(a),n.d(a,{metadata:()=>t,contentTitle:()=>u,default:()=>p,assets:()=>o,toc:()=>c,frontMatter:()=>l});var t=JSON.parse('{"id":"exercises/java-api/java-api01","title":"JavaAPI01","description":"","source":"@site/docs/exercises/java-api/java-api01.mdx","sourceDirName":"exercises/java-api","slug":"/exercises/java-api/java-api01","permalink":"/java-docs/pr-preview/pr-238/exercises/java-api/java-api01","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/java-api/java-api01.mdx","tags":[],"version":"current","frontMatter":{"title":"JavaAPI01","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Die Java API","permalink":"/java-docs/pr-preview/pr-238/exercises/java-api/"},"next":{"title":"JavaAPI02","permalink":"/java-docs/pr-preview/pr-238/exercises/java-api/java-api02"}}'),r=n("85893"),i=n("50065"),s=n("39661");let l={title:"JavaAPI01",description:""},u=void 0,o={},c=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2},{value:"Hinweis",id:"hinweis",level:2}];function d(e){let a={code:"code",h2:"h2",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.p,{children:"Erstelle eine ausf\xfchrbare Klasse, welche den Sinus von 0.0 bis 1.0 in\nZehnerschritten tabellarisch auf der Konsole ausgibt."}),"\n",(0,r.jsx)(a.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-console",children:"x = 0.0, sin(x) = 0.0\nx = 0.1, sin(x) = 0.1\nx = 0.2, sin(x) = 0.2\nx = 0.3, sin(x) = 0.3\nx = 0.4, sin(x) = 0.4\nx = 0.5, sin(x) = 0.5\nx = 0.6, sin(x) = 0.6\nx = 0.7, sin(x) = 0.6\nx = 0.8, sin(x) = 0.7\nx = 0.9, sin(x) = 0.8\nx = 1.0, sin(x) = 0.8\n"})}),"\n",(0,r.jsx)(a.h2,{id:"hinweis",children:"Hinweis"}),"\n",(0,r.jsxs)(a.p,{children:["Die Klasse ",(0,r.jsx)(a.code,{children:"Math"})," stellt f\xfcr die Sinus-Berechnung eine passende Methode zur\nVerf\xfcgung."]}),"\n",(0,r.jsx)(s.Z,{pullRequest:"30",branchSuffix:"java-api/01"})]})}function p(e={}){let{wrapper:a}={...(0,i.a)(),...e.components};return a?(0,r.jsx)(a,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},5525:function(e,a,n){n.d(a,{Z:()=>s});var t=n("85893");n("67294");var r=n("67026");let i="tabItem_Ymn6";function s(e){let{children:a,hidden:n,className:s}=e;return(0,t.jsx)("div",{role:"tabpanel",className:(0,r.Z)(i,s),hidden:n,children:a})}},47902:function(e,a,n){n.d(a,{Z:()=>g});var t=n("85893"),r=n("67294"),i=n("67026"),s=n("69599"),l=n("16550"),u=n("32000"),o=n("4520"),c=n("38341"),d=n("76009");function p(e){return r.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||r.isValidElement(e)&&function(e){let{props:a}=e;return!!a&&"object"==typeof a&&"value"in a}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:a,tabValues:n}=e;return n.some(e=>e.value===a)}var v=n("7227");let f="tabList__CuJ",x="tabItem_LNqP";function b(e){let{className:a,block:n,selectedValue:r,selectValue:l,tabValues:u}=e,o=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),d=e=>{let a=e.currentTarget,n=u[o.indexOf(a)].value;n!==r&&(c(a),l(n))},p=e=>{let a=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let n=o.indexOf(e.currentTarget)+1;a=o[n]??o[0];break}case"ArrowLeft":{let n=o.indexOf(e.currentTarget)-1;a=o[n]??o[o.length-1]}}a?.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":n},a),children:u.map(e=>{let{value:a,label:n,attributes:s}=e;return(0,t.jsx)("li",{role:"tab",tabIndex:r===a?0:-1,"aria-selected":r===a,ref:e=>o.push(e),onKeyDown:p,onClick:d,...s,className:(0,i.Z)("tabs__item",x,s?.className,{"tabs__item--active":r===a}),children:n??a},a)})})}function j(e){let{lazy:a,children:n,selectedValue:s}=e,l=(Array.isArray(n)?n:[n]).filter(Boolean);if(a){let e=l.find(e=>e.props.value===s);return e?(0,r.cloneElement)(e,{className:(0,i.Z)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:l.map((e,a)=>(0,r.cloneElement)(e,{key:a,hidden:e.props.value!==s}))})}function m(e){let a=function(e){let{defaultValue:a,queryString:n=!1,groupId:t}=e,i=function(e){let{values:a,children:n}=e;return(0,r.useMemo)(()=>{let e=a??p(n).map(e=>{let{props:{value:a,label:n,attributes:t,default:r}}=e;return{value:a,label:n,attributes:t,default:r}});return!function(e){let a=(0,c.lx)(e,(e,a)=>e.value===a.value);if(a.length>0)throw Error(`Docusaurus error: Duplicate values "${a.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[a,n])}(e),[s,v]=(0,r.useState)(()=>(function(e){let{defaultValue:a,tabValues:n}=e;if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(a){if(!h({value:a,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${a}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return a}let t=n.find(e=>e.default)??n[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:a,tabValues:i})),[f,x]=function(e){let{queryString:a=!1,groupId:n}=e,t=(0,l.k6)(),i=function(e){let{queryString:a=!1,groupId:n}=e;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:a,groupId:n}),s=(0,o._X)(i);return[s,(0,r.useCallback)(e=>{if(!i)return;let a=new URLSearchParams(t.location.search);a.set(i,e),t.replace({...t.location,search:a.toString()})},[i,t])]}({queryString:n,groupId:t}),[b,j]=function(e){var a;let{groupId:n}=e;let t=(a=n)?`docusaurus.tab.${a}`:null,[i,s]=(0,d.Nk)(t);return[i,(0,r.useCallback)(e=>{if(!!t)s.set(e)},[t,s])]}({groupId:t}),m=(()=>{let e=f??b;return h({value:e,tabValues:i})?e:null})();return(0,u.Z)(()=>{m&&v(m)},[m]),{selectedValue:s,selectValue:(0,r.useCallback)(e=>{if(!h({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);v(e),x(e),j(e)},[x,j,i]),tabValues:i}}(e);return(0,t.jsxs)("div",{className:(0,i.Z)("tabs-container",f),children:[(0,t.jsx)(b,{...a,...e}),(0,t.jsx)(j,{...a,...e})]})}function g(e){let a=(0,v.Z)();return(0,t.jsx)(m,{...e,children:p(e.children)},String(a))}},39661:function(e,a,n){n.d(a,{Z:function(){return u}});var t=n(85893);n(67294);var r=n(47902),i=n(5525),s=n(83012),l=n(45056);function u(e){let{pullRequest:a,branchSuffix:n}=e;return(0,t.jsxs)(r.Z,{children:[(0,t.jsxs)(i.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,t.jsx)(l.Z,{language:"console",children:`git switch exercises/${n}`}),(0,t.jsx)(s.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${n}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(i.Z,{value:"solution",label:"Solution",children:[(0,t.jsx)(l.Z,{language:"console",children:`git switch solutions/${n}`}),(0,t.jsx)(s.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${n}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(i.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,t.jsxs)(s.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${a}/files?diff=split`,children:["PR#",a]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/55d21a58.ec70da8e.js b/pr-preview/pr-238/assets/js/55d21a58.ec70da8e.js new file mode 100644 index 0000000000..10a4202a05 --- /dev/null +++ b/pr-preview/pr-238/assets/js/55d21a58.ec70da8e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["4841"],{60039:function(e,n,t){t.r(n),t.d(n,{metadata:()=>i,contentTitle:()=>s,default:()=>p,assets:()=>l,toc:()=>c,frontMatter:()=>a});var i=JSON.parse('{"id":"documentation/optionals","title":"Optionals","description":"","source":"@site/docs/documentation/optionals.md","sourceDirName":"documentation","slug":"/documentation/optionals","permalink":"/java-docs/pr-preview/pr-238/documentation/optionals","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/optionals.md","tags":[{"inline":true,"label":"optionals","permalink":"/java-docs/pr-preview/pr-238/tags/optionals"}],"version":"current","sidebarPosition":290,"frontMatter":{"title":"Optionals","description":"","sidebar_position":290,"tags":["optionals"]},"sidebar":"documentationSidebar","previous":{"title":"Assoziativspeicher (Maps)","permalink":"/java-docs/pr-preview/pr-238/documentation/maps"},"next":{"title":"Die Java Stream API","permalink":"/java-docs/pr-preview/pr-238/documentation/java-stream-api"}}'),r=t("85893"),o=t("50065");let a={title:"Optionals",description:"",sidebar_position:290,tags:["optionals"]},s=void 0,l={},c=[];function d(e){let n={code:"code",p:"p",pre:"pre",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["Der Umgang mit null-Werten stellt in vielen Programmiersprachen eine gro\xdfe\nHerausforderung dar. Zur Vermeidung von Laufzeitfehlern (",(0,r.jsx)(n.code,{children:"NullPointerException"}),")\nm\xfcsste vor jedem Methodenaufruf eigentlich \xfcberpr\xfcft werden, ob ein g\xfcltiger\nWert vorliegt oder nicht."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:"public class MainClass {\n\n public static void main(String[] args) {\n String text = foo();\n System.out.println(text.length()); // Laufzeitfehler\n }\n\n public static String foo() {\n return null;\n }\n\n}\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Die Klasse ",(0,r.jsx)(n.code,{children:"Optional"})," erm\xf6glicht in Java eine komfortable M\xf6glichkeit, mit\nnull-Werten umzugehen. Das eigentliche Objekt wird dabei in einem Objekt der\nKlasse ",(0,r.jsx)(n.code,{children:"Optional"})," verpackt; der Zugriff auf das verpackte Objekt erfolgt \xfcber\nentsprechende Methoden. Dies stellt sicher, dass sich der Entwickler mit\nnull-Werten auseinander setzen muss."]}),"\n",(0,r.jsxs)(n.p,{children:["F\xfcr den Umgang mit null-Werten stellt die Klasse ",(0,r.jsx)(n.code,{children:"Optional"})," Methoden wie\n",(0,r.jsx)(n.code,{children:"T get()"}),", ",(0,r.jsx)(n.code,{children:"boolean isPresent()"})," und ",(0,r.jsx)(n.code,{children:"void ifPresent(consumer: Consumer)"})," zur\nVerf\xfcgung. Zudem existieren Methoden wie ",(0,r.jsx)(n.code,{children:"void orElse(other: T)"}),", mit denen\nStandardwerte festgelegt werden k\xf6nnen."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:"public class MainClass {\n\n public static void main(String[] args) {\n Optional optionalText = foo();\n optionalText.ifPresent(t -> System.out.println(t.length()));\n }\n\n public static Optional foo() {\n return Optional.ofNullable(null);\n }\n\n}\n"})})]})}function p(e={}){let{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},50065:function(e,n,t){t.d(n,{Z:function(){return s},a:function(){return a}});var i=t(67294);let r={},o=i.createContext(r);function a(e){let n=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/56aa4d1f.28dda4b6.js b/pr-preview/pr-238/assets/js/56aa4d1f.28dda4b6.js new file mode 100644 index 0000000000..ca7870ecc2 --- /dev/null +++ b/pr-preview/pr-238/assets/js/56aa4d1f.28dda4b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["6415"],{74287:function(e,n,r){r.r(n),r.d(n,{metadata:()=>t,contentTitle:()=>c,default:()=>h,assets:()=>o,toc:()=>u,frontMatter:()=>l});var t=JSON.parse('{"id":"exercises/interfaces/interfaces01","title":"Interfaces01","description":"","source":"@site/docs/exercises/interfaces/interfaces01.mdx","sourceDirName":"exercises/interfaces","slug":"/exercises/interfaces/interfaces01","permalink":"/java-docs/pr-preview/pr-238/exercises/interfaces/interfaces01","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/interfaces/interfaces01.mdx","tags":[],"version":"current","frontMatter":{"title":"Interfaces01","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Schnittstellen (Interfaces)","permalink":"/java-docs/pr-preview/pr-238/exercises/interfaces/"},"next":{"title":"Komparatoren","permalink":"/java-docs/pr-preview/pr-238/exercises/comparators/"}}'),a=r("85893"),i=r("50065"),s=r("39661");let l={title:"Interfaces01",description:""},c=void 0,o={},u=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Hinweise zur Klasse TravelAgency",id:"hinweise-zur-klasse-travelagency",level:2},{value:"Konsolenausgabe",id:"konsolenausgabe",level:2}];function d(e){let n={a:"a",code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Passe die Klasse ",(0,a.jsx)(n.code,{children:"Rental"})," aus \xdcbungsaufgabe\n",(0,a.jsx)(n.a,{href:"../abstract-and-final/abstract-and-final01",children:"AbstractAndFinal01"})," anhand des\nabgebildeten Klassendiagramms an und erstelle die Klasse ",(0,a.jsx)(n.code,{children:"TravelAgency"})," sowie\ndie Schnittstelle ",(0,a.jsx)(n.code,{children:"Partner"})]}),"\n",(0,a.jsxs)(n.li,{children:["Passe die ausf\xfchrbare Klasse aus \xdcbungsaufgabe\n",(0,a.jsx)(n.a,{href:"../abstract-and-final/abstract-and-final01",children:"AbstractAndFinal01"})," so an, dass\nein Reiseb\xfcro erzeugt wird, dass diesem die Autovermietung hinzugef\xfcgt wird\nund dass alle Attribute des Reiseb\xfcros ausgegeben werden"]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,a.jsx)(n.mermaid,{value:"classDiagram\n Vehicle <|-- Car : extends\n Vehicle <|-- Truck : extends\n Engine --o Vehicle\n Rental o-- Vehicle\n Partner <|.. Rental : implements\n TravelAgency o-- Partner\n\n class Vehicle {\n <>\n -make: String\n -model: String\n -engine: Engine\n #speedInKmh: double\n -numberOfVehicles: int$\n\n +Vehicle(make: String, model: String, engine: Engine)\n +getMake() String\n +getModel() String\n +getEngine() Engine\n +getSpeedInKmh() double\n +accelerate(valueInKmh: int) void #123;final#125;\n +brake(valueInKmh: int) void #123;final#125;\n +toString() String #123;abstract#125;\n +getNumberOfVehicles()$ int\n }\n\n class Engine {\n <>\n DIESEL = Diesel\n PETROL = Benzin\n GAS = Gas\n ELECTRO = Elektro\n -description: String #123;final#125;\n +getDescription() String\n }\n\n class Car {\n <>\n -seats: int #123;final#125;\n +Car(make: String, model: String, engine: Engine, seats: int)\n +getSeats() int\n +doATurboBoost() void\n +toString() String\n }\n\n class Truck {\n <>\n -cargo: int #123;final#125;\n -isTransformed: boolean\n +Truck(make: String, model: String, engine: Engine, cargo: int)\n +getCargo() int\n +isTransformed() boolean\n +transform() void\n +toString() String\n }\n\n class Rental {\n -name: String #123;final#125;\n -vehicles: ArrayList~Vehicle~ #123;final#125;\n +Rental(name: String)\n +getName() String\n +getVehicles() ArrayList~Vehicle~\n +addVehicle(vehicle: Vehicle) void\n +addAllVehicles(vehicles: Vehicle...) void\n +transformAllTrucks() void\n +toString() String\n }\n\n class Partner {\n <>\n +toString() String\n }\n\n class TravelAgency {\n -name: String #123;final#125;\n -partners: ArrayList~Partner~\n +TravelAgency(name: String)\n +addPartner(partner: Partner) void\n +toString() String\n }"}),"\n",(0,a.jsxs)(n.h2,{id:"hinweise-zur-klasse-travelagency",children:["Hinweise zur Klasse ",(0,a.jsx)(n.em,{children:"TravelAgency"})]}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Der Konstruktor soll alle Attribute initialisieren"}),"\n",(0,a.jsxs)(n.li,{children:["Die Methode ",(0,a.jsx)(n.code,{children:"void addPartner(partner: Partner)"})," soll dem Reiseb\xfcro einen\nPartner hinzuf\xfcgen"]}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-console",children:"Reiseb\xfcro Schmidt\nUnsere Partner:\nFahrzeugvermietung M\xfcller\nUnsere Fahrzeuge:\nPorsche 911 (Elektro, 2 Sitzpl\xe4tze)\nMAN TGX (Diesel, 20t)\nOpel Zafira Life (Diesel, 7 Sitzpl\xe4tze)\n"})}),"\n",(0,a.jsx)(s.Z,{pullRequest:"46",branchSuffix:"interfaces/01"})]})}function h(e={}){let{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},5525:function(e,n,r){r.d(n,{Z:()=>s});var t=r("85893");r("67294");var a=r("67026");let i="tabItem_Ymn6";function s(e){let{children:n,hidden:r,className:s}=e;return(0,t.jsx)("div",{role:"tabpanel",className:(0,a.Z)(i,s),hidden:r,children:n})}},47902:function(e,n,r){r.d(n,{Z:()=>j});var t=r("85893"),a=r("67294"),i=r("67026"),s=r("69599"),l=r("16550"),c=r("32000"),o=r("4520"),u=r("38341"),d=r("76009");function h(e){return a.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||a.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function g(e){let{value:n,tabValues:r}=e;return r.some(e=>e.value===n)}var f=r("7227");let m="tabList__CuJ",p="tabItem_LNqP";function v(e){let{className:n,block:r,selectedValue:a,selectValue:l,tabValues:c}=e,o=[],{blockElementScrollPositionUntilNextRender:u}=(0,s.o5)(),d=e=>{let n=e.currentTarget,r=c[o.indexOf(n)].value;r!==a&&(u(n),l(r))},h=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let r=o.indexOf(e.currentTarget)+1;n=o[r]??o[0];break}case"ArrowLeft":{let r=o.indexOf(e.currentTarget)-1;n=o[r]??o[o.length-1]}}n?.focus()};return(0,t.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":r},n),children:c.map(e=>{let{value:n,label:r,attributes:s}=e;return(0,t.jsx)("li",{role:"tab",tabIndex:a===n?0:-1,"aria-selected":a===n,ref:e=>o.push(e),onKeyDown:h,onClick:d,...s,className:(0,i.Z)("tabs__item",p,s?.className,{"tabs__item--active":a===n}),children:r??n},n)})})}function b(e){let{lazy:n,children:r,selectedValue:s}=e,l=(Array.isArray(r)?r:[r]).filter(Boolean);if(n){let e=l.find(e=>e.props.value===s);return e?(0,a.cloneElement)(e,{className:(0,i.Z)("margin-top--md",e.props.className)}):null}return(0,t.jsx)("div",{className:"margin-top--md",children:l.map((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==s}))})}function x(e){let n=function(e){let{defaultValue:n,queryString:r=!1,groupId:t}=e,i=function(e){let{values:n,children:r}=e;return(0,a.useMemo)(()=>{let e=n??h(r).map(e=>{let{props:{value:n,label:r,attributes:t,default:a}}=e;return{value:n,label:r,attributes:t,default:a}});return!function(e){let n=(0,u.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,r])}(e),[s,f]=(0,a.useState)(()=>(function(e){let{defaultValue:n,tabValues:r}=e;if(0===r.length)throw Error("Docusaurus error: the component requires at least one children component");if(n){if(!g({value:n,tabValues:r}))throw Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${r.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let t=r.find(e=>e.default)??r[0];if(!t)throw Error("Unexpected error: 0 tabValues");return t.value})({defaultValue:n,tabValues:i})),[m,p]=function(e){let{queryString:n=!1,groupId:r}=e,t=(0,l.k6)(),i=function(e){let{queryString:n=!1,groupId:r}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!r)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:n,groupId:r}),s=(0,o._X)(i);return[s,(0,a.useCallback)(e=>{if(!i)return;let n=new URLSearchParams(t.location.search);n.set(i,e),t.replace({...t.location,search:n.toString()})},[i,t])]}({queryString:r,groupId:t}),[v,b]=function(e){var n;let{groupId:r}=e;let t=(n=r)?`docusaurus.tab.${n}`:null,[i,s]=(0,d.Nk)(t);return[i,(0,a.useCallback)(e=>{if(!!t)s.set(e)},[t,s])]}({groupId:t}),x=(()=>{let e=m??v;return g({value:e,tabValues:i})?e:null})();return(0,c.Z)(()=>{x&&f(x)},[x]),{selectedValue:s,selectValue:(0,a.useCallback)(e=>{if(!g({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);f(e),p(e),b(e)},[p,b,i]),tabValues:i}}(e);return(0,t.jsxs)("div",{className:(0,i.Z)("tabs-container",m),children:[(0,t.jsx)(v,{...n,...e}),(0,t.jsx)(b,{...n,...e})]})}function j(e){let n=(0,f.Z)();return(0,t.jsx)(x,{...e,children:h(e.children)},String(n))}},39661:function(e,n,r){r.d(n,{Z:function(){return c}});var t=r(85893);r(67294);var a=r(47902),i=r(5525),s=r(83012),l=r(45056);function c(e){let{pullRequest:n,branchSuffix:r}=e;return(0,t.jsxs)(a.Z,{children:[(0,t.jsxs)(i.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,t.jsx)(l.Z,{language:"console",children:`git switch exercises/${r}`}),(0,t.jsx)(s.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${r}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(i.Z,{value:"solution",label:"Solution",children:[(0,t.jsx)(l.Z,{language:"console",children:`git switch solutions/${r}`}),(0,t.jsx)(s.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${r}/Exercise.java`,children:(0,t.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,t.jsxs)(i.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,t.jsxs)(s.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${n}/files?diff=split`,children:["PR#",n]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/56e169e4.ffd8ccc2.js b/pr-preview/pr-238/assets/js/56e169e4.ffd8ccc2.js new file mode 100644 index 0000000000..5e9f68d487 --- /dev/null +++ b/pr-preview/pr-238/assets/js/56e169e4.ffd8ccc2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["9122"],{20817:function(s){s.exports=JSON.parse('{"tag":{"label":"strings","permalink":"/java-docs/pr-preview/pr-238/tags/strings","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":1,"items":[{"id":"documentation/strings","title":"Zeichenketten (Strings)","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/strings"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/56efc2af.5f115660.js b/pr-preview/pr-238/assets/js/56efc2af.5f115660.js new file mode 100644 index 0000000000..df7eb1506a --- /dev/null +++ b/pr-preview/pr-238/assets/js/56efc2af.5f115660.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7576"],{6042:function(e,i,s){s.r(i),s.d(i,{metadata:()=>n,contentTitle:()=>t,default:()=>m,assets:()=>o,toc:()=>d,frontMatter:()=>l});var n=JSON.parse('{"id":"exam-exercises/exam-exercises-java1/class-diagrams/zoo","title":"Zoo","description":"","source":"@site/docs/exam-exercises/exam-exercises-java1/class-diagrams/zoo.md","sourceDirName":"exam-exercises/exam-exercises-java1/class-diagrams","slug":"/exam-exercises/exam-exercises-java1/class-diagrams/zoo","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/zoo","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java1/class-diagrams/zoo.md","tags":[{"inline":true,"label":"oo","permalink":"/java-docs/pr-preview/pr-238/tags/oo"},{"inline":true,"label":"enumerations","permalink":"/java-docs/pr-preview/pr-238/tags/enumerations"},{"inline":true,"label":"inheritance","permalink":"/java-docs/pr-preview/pr-238/tags/inheritance"},{"inline":true,"label":"polymorphism","permalink":"/java-docs/pr-preview/pr-238/tags/polymorphism"}],"version":"current","frontMatter":{"title":"Zoo","description":"","tags":["oo","enumerations","inheritance","polymorphism"]},"sidebar":"examExercisesSidebar","previous":{"title":"Kurs","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/student-course"},"next":{"title":"Aktivit\xe4tsdiagramme","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/"}}'),a=s("85893"),r=s("50065");let l={title:"Zoo",description:"",tags:["oo","enumerations","inheritance","polymorphism"]},t=void 0,o={},d=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Allgemeine Hinweise",id:"allgemeine-hinweise",level:2},{value:"Hinweis zur Klasse Bird",id:"hinweis-zur-klasse-bird",level:2},{value:"Hinweis zur Klasse Fish",id:"hinweis-zur-klasse-fish",level:2},{value:"Hinweise zur Klasse Zoo",id:"hinweise-zur-klasse-zoo",level:2}];function c(e){let i={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.p,{children:"Setze das abgebildete Klassendiagramm vollst\xe4ndig um. Erstelle zum Testen eine\nausf\xfchrbare Klasse."}),"\n",(0,a.jsx)(i.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,a.jsx)(i.mermaid,{value:"classDiagram\n Zoo o-- Animal\n Animal <|-- Bird : extends\n Animal <|-- Fish : extends\n\n class Zoo {\n -name: String #123;final#125;\n -animals: List~Animal~ #123;final#125;\n +Zoo(name: String, animals: List~Animal~)\n +addAnimal(animal: Animal) void\n +getBiggestAnimal() Animal\n +getFishesByColor(color: String) List~Fish~\n }\n\n class Animal {\n -description: String #123;final#125;\n -sizeInM: double #123;final#125;\n -weigthInKg: double #123;final#125;\n +Animal(description: String, sizeInM: double, weigthInKg: double)\n }\n\n class Bird {\n +Bird(description: String, sizeInM: double, weigthInKg: double)\n +fly() void\n }\n\n class Fish {\n +Fish(description: String, sizeInM: double, weigthInKg: double)\n +swim() void\n }"}),"\n",(0,a.jsx)(i.h2,{id:"allgemeine-hinweise",children:"Allgemeine Hinweise"}),"\n",(0,a.jsxs)(i.ul,{children:["\n",(0,a.jsx)(i.li,{children:"Aus Gr\xfcnden der \xdcbersicht werden im Klassendiagramm keine Getter und\nObject-Methoden dargestellt"}),"\n",(0,a.jsx)(i.li,{children:"So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die\nObject-Methoden wie gewohnt implementiert werden"}),"\n"]}),"\n",(0,a.jsxs)(i.h2,{id:"hinweis-zur-klasse-bird",children:["Hinweis zur Klasse ",(0,a.jsx)(i.em,{children:"Bird"})]}),"\n",(0,a.jsxs)(i.p,{children:["Die Methode ",(0,a.jsx)(i.code,{children:"void fly()"})," soll die Zeichenkette ",(0,a.jsx)(i.em,{children:"flatter, flatter"})," ausgeben."]}),"\n",(0,a.jsxs)(i.h2,{id:"hinweis-zur-klasse-fish",children:["Hinweis zur Klasse ",(0,a.jsx)(i.em,{children:"Fish"})]}),"\n",(0,a.jsxs)(i.p,{children:["Die Methode ",(0,a.jsx)(i.code,{children:"void swim()"})," soll die Zeichenkette ",(0,a.jsx)(i.em,{children:"schwimm, schwimm"})," ausgeben."]}),"\n",(0,a.jsxs)(i.h2,{id:"hinweise-zur-klasse-zoo",children:["Hinweise zur Klasse ",(0,a.jsx)(i.em,{children:"Zoo"})]}),"\n",(0,a.jsxs)(i.ul,{children:["\n",(0,a.jsxs)(i.li,{children:["Die Methode ",(0,a.jsx)(i.code,{children:"void addAnimal(animal: Animal)"})," soll dem Zoo das eingehende Tier\nhinzuf\xfcgen"]}),"\n",(0,a.jsxs)(i.li,{children:["Die Methode ",(0,a.jsx)(i.code,{children:"Animal getBiggestAnimal()"})," soll das gr\xf6\xdfte Tier des Zoos\nzur\xfcckgeben"]}),"\n",(0,a.jsxs)(i.li,{children:["Die Methode ",(0,a.jsx)(i.code,{children:"List getFishesByColor(color: String)"})," soll alle Fische des\nZoos zur eingehenden Farbe zur\xfcckgeben"]}),"\n"]})]})}function m(e={}){let{wrapper:i}={...(0,r.a)(),...e.components};return i?(0,a.jsx)(i,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},50065:function(e,i,s){s.d(i,{Z:function(){return t},a:function(){return l}});var n=s(67294);let a={},r=n.createContext(a);function l(e){let i=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function t(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),n.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5707.196cef08.js b/pr-preview/pr-238/assets/js/5707.196cef08.js new file mode 100644 index 0000000000..999a72f69e --- /dev/null +++ b/pr-preview/pr-238/assets/js/5707.196cef08.js @@ -0,0 +1 @@ +(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["5707"],{87594:function(e,t){function n(e){let t,n=[];for(let o of e.split(",").map(e=>e.trim()))if(/^-?\d+$/.test(o))n.push(parseInt(o,10));else if(t=o.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,o,s,r]=t;if(o&&r){o=parseInt(o);let e=o<(r=parseInt(r))?1:-1;("-"===s||".."===s||"\u2025"===s)&&(r+=e);for(let t=o;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},45056:function(e,t,n){"use strict";n.d(t,{Z:()=>M});var o=n("85893"),s=n("67294"),r=n("7227"),c=n("67026"),a=n("84239"),l=n("30140");function i(){let{prism:e}=(0,l.L)(),{colorMode:t}=(0,a.I)(),n=e.theme,o=e.darkTheme||n;return"dark"===t?o:n}var u=n("84681"),d=n("87594"),m=n.n(d);let p=/title=(?["'])(?.*?)\1/,b=/\{(?<range>[\d,-]+)\}/,f={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},h={...f,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},g=Object.keys(f);function j(e,t){let n=e.map(e=>{let{start:n,end:o}=h[e];return`(?:${n}\\s*(${t.flatMap(e=>[e.line,e.block?.start,e.block?.end].filter(Boolean)).join("|")})\\s*${o})`}).join("|");return RegExp(`^\\s*(?:${n})\\s*$`)}let k="codeBlockContainer_Ckt0";function x(e){let{as:t,...n}=e,s=function(e){let t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach(e=>{let[o,s]=e,r=t[o];r&&"string"==typeof s&&(n[r]=s)}),n}(i());return(0,o.jsx)(t,{...n,style:s,className:(0,c.Z)(n.className,k,u.k.common.codeBlock)})}let v={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function B(e){let{children:t,className:n}=e;return(0,o.jsx)(x,{as:"pre",tabIndex:0,className:(0,c.Z)(v.codeBlockStandalone,"thin-scrollbar",n),children:(0,o.jsx)("code",{className:v.codeBlockLines,children:t})})}var y=n("85346");let w={attributes:!0,characterData:!0,childList:!0,subtree:!0};var C=n("83229");let N={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function E(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:r,getTokenProps:a}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");let l=r({line:t,className:(0,c.Z)(n,s&&N.codeLine)}),i=t.map((e,t)=>(0,o.jsx)("span",{...a({token:e})},t));return(0,o.jsxs)("span",{...l,children:[s?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("span",{className:N.codeLineNumber}),(0,o.jsx)("span",{className:N.codeLineContent,children:i})]}):i,(0,o.jsx)("br",{})]})}var L=n("96025");function I(e){return(0,o.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,o.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function _(e){return(0,o.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}let S={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function A(e){let{code:t,className:n}=e,[r,a]=(0,s.useState)(!1),l=(0,s.useRef)(void 0),i=(0,s.useCallback)(()=>{!function(e){let{target:t=document.body}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"!=typeof e)throw TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);let n=document.createElement("textarea"),o=document.activeElement;n.value=e,n.setAttribute("readonly",""),n.style.contain="strict",n.style.position="absolute",n.style.left="-9999px",n.style.fontSize="12pt";let s=document.getSelection(),r=s.rangeCount>0&&s.getRangeAt(0);t.append(n),n.select(),n.selectionStart=0,n.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}n.remove(),r&&(s.removeAllRanges(),s.addRange(r)),o&&o.focus()}(t),a(!0),l.current=window.setTimeout(()=>{a(!1)},1e3)},[t]);return(0,s.useEffect)(()=>()=>window.clearTimeout(l.current),[]),(0,o.jsx)("button",{type:"button","aria-label":r?(0,L.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,L.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,L.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,c.Z)("clean-btn",n,S.copyButton,r&&S.copyButtonCopied),onClick:i,children:(0,o.jsxs)("span",{className:S.copyButtonIcons,"aria-hidden":"true",children:[(0,o.jsx)(I,{className:S.copyButtonIcon}),(0,o.jsx)(_,{className:S.copyButtonSuccessIcon})]})})}function $(e){return(0,o.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,o.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}let T={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Z(e){let{className:t,onClick:n,isEnabled:s}=e,r=(0,L.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,o.jsx)("button",{type:"button",onClick:n,className:(0,c.Z)("clean-btn",t,s&&T.wordWrapButtonEnabled),"aria-label":r,title:r,children:(0,o.jsx)($,{className:T.wordWrapButtonIcon,"aria-hidden":"true"})})}function H(e){var t,n,r;let{children:a,className:u="",metastring:d,title:f,showLineNumbers:h,language:k}=e,{prism:{defaultLanguage:B,magicComments:N}}=(0,l.L)();let L=(t=k??function(e){let t=e.split(" ").find(e=>e.startsWith("language-"));return t?.replace(/language-/,"")}(u)??B,t?.toLowerCase()),I=i(),_=function(){let[e,t]=(0,s.useState)(!1),[n,o]=(0,s.useState)(!1),r=(0,s.useRef)(null),c=(0,s.useCallback)(()=>{let n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t(e=>!e)},[r,e]),a=(0,s.useCallback)(()=>{let{scrollWidth:e,clientWidth:t}=r.current;o(e>t||r.current.querySelector("code").hasAttribute("style"))},[r]);return!function(e,t){let[n,o]=(0,s.useState)(),r=(0,s.useCallback)(()=>{o(e.current?.closest("[role=tabpanel][hidden]"))},[e,o]);(0,s.useEffect)(()=>{r()},[r]),!function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:w,o=(0,y.zX)(t),r=(0,y.Ql)(n);(0,s.useEffect)(()=>{let t=new MutationObserver(o);return e&&t.observe(e,r),()=>t.disconnect()},[e,o,r])}(n,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),r())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}(r,a),(0,s.useEffect)(()=>{a()},[e,a]),(0,s.useEffect)(()=>(window.addEventListener("resize",a,{passive:!0}),()=>{window.removeEventListener("resize",a)}),[a]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:c}}();let S=(n=d,(n?.match(p)?.groups.title??"")||f),{lineClassNames:$,code:T}=function(e,t){let n=e.replace(/\n$/,""),{language:o,magicComments:s,metastring:r}=t;if(r&&b.test(r)){let e=r.match(b).groups.range;if(0===s.length)throw Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);let t=s[0].className;return{lineClassNames:Object.fromEntries(m()(e).filter(e=>e>0).map(e=>[e-1,[t]])),code:n}}if(void 0===o)return{lineClassNames:{},code:n};let c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return j(["js","jsBlock"],t);case"jsx":case"tsx":return j(["js","jsBlock","jsx"],t);case"html":return j(["js","jsBlock","html"],t);case"python":case"py":case"bash":return j(["bash"],t);case"markdown":case"md":return j(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return j(["tex"],t);case"lua":case"haskell":case"sql":return j(["lua"],t);case"wasm":return j(["wasm"],t);case"vb":case"vba":case"visual-basic":return j(["vb","rem"],t);case"vbnet":return j(["vbnet","rem"],t);case"batch":return j(["rem"],t);case"basic":return j(["rem","f90"],t);case"fsharp":return j(["js","ml"],t);case"ocaml":case"sml":return j(["ml"],t);case"fortran":return j(["f90"],t);case"cobol":return j(["cobol"],t);default:return j(g,t)}}(o,s),a=n.split("\n"),l=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),i=Object.fromEntries(s.filter(e=>e.line).map(e=>{let{className:t,line:n}=e;return[n,t]})),u=Object.fromEntries(s.filter(e=>e.block).map(e=>{let{className:t,block:n}=e;return[n.start,t]})),d=Object.fromEntries(s.filter(e=>e.block).map(e=>{let{className:t,block:n}=e;return[n.end,t]}));for(let e=0;e<a.length;){let t=a[e].match(c);if(!t){e+=1;continue}let n=t.slice(1).find(e=>void 0!==e);i[n]?l[i[n]].range+=`${e},`:u[n]?l[u[n]].start=e:d[n]&&(l[d[n]].range+=`${l[d[n]].start}-${e-1},`),a.splice(e,1)}n=a.join("\n");let p={};return Object.entries(l).forEach(e=>{let[t,{range:n}]=e;m()(n).forEach(e=>{p[e]??=[],p[e].push(t)})}),{lineClassNames:p,code:n}}(a,{metastring:d,language:L,magicComments:N});let H=h??(r=d,!!r?.includes("showLineNumbers"));return(0,o.jsxs)(x,{as:"div",className:(0,c.Z)(u,L&&!u.includes(`language-${L}`)&&`language-${L}`),children:[S&&(0,o.jsx)("div",{className:v.codeBlockTitle,children:S}),(0,o.jsxs)("div",{className:v.codeBlockContent,children:[(0,o.jsx)(C.y$,{theme:I,code:T,language:L??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:r,getTokenProps:a}=e;return(0,o.jsx)("pre",{tabIndex:0,ref:_.codeBlockRef,className:(0,c.Z)(t,v.codeBlock,"thin-scrollbar"),style:n,children:(0,o.jsx)("code",{className:(0,c.Z)(v.codeBlockLines,H&&v.codeBlockLinesWithNumbering),children:s.map((e,t)=>(0,o.jsx)(E,{line:e,getLineProps:r,getTokenProps:a,classNames:$[t],showLineNumbers:H},t))})})}}),(0,o.jsxs)("div",{className:v.buttonGroup,children:[(_.isEnabled||_.isCodeScrollable)&&(0,o.jsx)(Z,{className:v.codeButton,onClick:()=>_.toggle(),isEnabled:_.isEnabled}),(0,o.jsx)(A,{className:v.codeButton,code:T})]})]})]})}function M(e){var t;let{children:n,...c}=e,a=(0,r.Z)();let l=(t=n,s.Children.toArray(t).some(e=>(0,s.isValidElement)(e))?t:Array.isArray(t)?t.join(""):t);return(0,o.jsx)("string"==typeof l?H:B,{...c,children:l},String(a))}},50065:function(e,t,n){"use strict";n.d(t,{Z:function(){return a},a:function(){return c}});var o=n(67294);let s={},r=o.createContext(s);function c(e){let t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5751a021.8a4f7bcb.js b/pr-preview/pr-238/assets/js/5751a021.8a4f7bcb.js new file mode 100644 index 0000000000..edf7509b42 --- /dev/null +++ b/pr-preview/pr-238/assets/js/5751a021.8a4f7bcb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["9239"],{49586:function(e,r,n){n.r(r),n.d(r,{metadata:()=>a,contentTitle:()=>u,default:()=>h,assets:()=>o,toc:()=>c,frontMatter:()=>l});var a=JSON.parse('{"id":"exercises/arrays/arrays05","title":"Arrays05","description":"","source":"@site/docs/exercises/arrays/arrays05.mdx","sourceDirName":"exercises/arrays","slug":"/exercises/arrays/arrays05","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays05","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/arrays/arrays05.mdx","tags":[],"version":"current","frontMatter":{"title":"Arrays05","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Arrays04","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays04"},"next":{"title":"Arrays06","permalink":"/java-docs/pr-preview/pr-238/exercises/arrays/arrays06"}}'),t=n("85893"),s=n("50065"),i=n("39661");let l={title:"Arrays05",description:""},u=void 0,o={},c=[{value:"Konsolenausgabe",id:"konsolenausgabe",level:2}];function d(e){let r={code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.p,{children:"Erstelle eine ausf\xfchrbare Klasse, welche es erm\xf6glicht, Aufgaben zu einer Liste\nhinzuzuf\xfcgen, zu l\xf6schen und auf der Konsole auszugeben."}),"\n",(0,t.jsx)(r.h2,{id:"konsolenausgabe",children:"Konsolenausgabe"}),"\n",(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-console",children:"Optionen\n1: Aufgabe hinzuf\xfcgen\n2: Aufgabe l\xf6schen\n3: Aufgaben ausgeben\n4: Beenden\n\nWas m\xf6chtest Du tun?: 1\nGib bitte die Aufgabenbeschreibung ein: W\xe4sche waschen\nWas m\xf6chtest Du tun?: 1\nGib bitte die Aufgabenbeschreibung ein: Hausaufgaben machen\nWas m\xf6chtest Du tun?: 3\n\nAufgaben\n0: W\xe4sche waschen\n1: Hausaufgaben machen\n\nWas m\xf6chtest Du tun?: 2\nGib bitte ein, welche Aufgabe gel\xf6scht werden soll: 0\nWas m\xf6chtest Du tun?: 3\n\nAufgaben\n0: Hausaufgaben machen\n\nWas m\xf6chtest Du tun?: 4\n"})}),"\n",(0,t.jsx)(i.Z,{pullRequest:"22",branchSuffix:"arrays/05"})]})}function h(e={}){let{wrapper:r}={...(0,s.a)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},5525:function(e,r,n){n.d(r,{Z:()=>i});var a=n("85893");n("67294");var t=n("67026");let s="tabItem_Ymn6";function i(e){let{children:r,hidden:n,className:i}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,t.Z)(s,i),hidden:n,children:r})}},47902:function(e,r,n){n.d(r,{Z:()=>j});var a=n("85893"),t=n("67294"),s=n("67026"),i=n("69599"),l=n("16550"),u=n("32000"),o=n("4520"),c=n("38341"),d=n("76009");function h(e){return t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||t.isValidElement(e)&&function(e){let{props:r}=e;return!!r&&"object"==typeof r&&"value"in r}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})?.filter(Boolean)??[]}function p(e){let{value:r,tabValues:n}=e;return n.some(e=>e.value===r)}var f=n("7227");let b="tabList__CuJ",m="tabItem_LNqP";function g(e){let{className:r,block:n,selectedValue:t,selectValue:l,tabValues:u}=e,o=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.o5)(),d=e=>{let r=e.currentTarget,n=u[o.indexOf(r)].value;n!==t&&(c(r),l(n))},h=e=>{let r=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let n=o.indexOf(e.currentTarget)+1;r=o[n]??o[0];break}case"ArrowLeft":{let n=o.indexOf(e.currentTarget)-1;r=o[n]??o[o.length-1]}}r?.focus()};return(0,a.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":n},r),children:u.map(e=>{let{value:r,label:n,attributes:i}=e;return(0,a.jsx)("li",{role:"tab",tabIndex:t===r?0:-1,"aria-selected":t===r,ref:e=>o.push(e),onKeyDown:h,onClick:d,...i,className:(0,s.Z)("tabs__item",m,i?.className,{"tabs__item--active":t===r}),children:n??r},r)})})}function v(e){let{lazy:r,children:n,selectedValue:i}=e,l=(Array.isArray(n)?n:[n]).filter(Boolean);if(r){let e=l.find(e=>e.props.value===i);return e?(0,t.cloneElement)(e,{className:(0,s.Z)("margin-top--md",e.props.className)}):null}return(0,a.jsx)("div",{className:"margin-top--md",children:l.map((e,r)=>(0,t.cloneElement)(e,{key:r,hidden:e.props.value!==i}))})}function x(e){let r=function(e){let{defaultValue:r,queryString:n=!1,groupId:a}=e,s=function(e){let{values:r,children:n}=e;return(0,t.useMemo)(()=>{let e=r??h(n).map(e=>{let{props:{value:r,label:n,attributes:a,default:t}}=e;return{value:r,label:n,attributes:a,default:t}});return!function(e){let r=(0,c.lx)(e,(e,r)=>e.value===r.value);if(r.length>0)throw Error(`Docusaurus error: Duplicate values "${r.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[r,n])}(e),[i,f]=(0,t.useState)(()=>(function(e){let{defaultValue:r,tabValues:n}=e;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(r){if(!p({value:r,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${r}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return r}let a=n.find(e=>e.default)??n[0];if(!a)throw Error("Unexpected error: 0 tabValues");return a.value})({defaultValue:r,tabValues:s})),[b,m]=function(e){let{queryString:r=!1,groupId:n}=e,a=(0,l.k6)(),s=function(e){let{queryString:r=!1,groupId:n}=e;if("string"==typeof r)return r;if(!1===r)return null;if(!0===r&&!n)throw Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:r,groupId:n}),i=(0,o._X)(s);return[i,(0,t.useCallback)(e=>{if(!s)return;let r=new URLSearchParams(a.location.search);r.set(s,e),a.replace({...a.location,search:r.toString()})},[s,a])]}({queryString:n,groupId:a}),[g,v]=function(e){var r;let{groupId:n}=e;let a=(r=n)?`docusaurus.tab.${r}`:null,[s,i]=(0,d.Nk)(a);return[s,(0,t.useCallback)(e=>{if(!!a)i.set(e)},[a,i])]}({groupId:a}),x=(()=>{let e=b??g;return p({value:e,tabValues:s})?e:null})();return(0,u.Z)(()=>{x&&f(x)},[x]),{selectedValue:i,selectValue:(0,t.useCallback)(e=>{if(!p({value:e,tabValues:s}))throw Error(`Can't select invalid tab value=${e}`);f(e),m(e),v(e)},[m,v,s]),tabValues:s}}(e);return(0,a.jsxs)("div",{className:(0,s.Z)("tabs-container",b),children:[(0,a.jsx)(g,{...r,...e}),(0,a.jsx)(v,{...r,...e})]})}function j(e){let r=(0,f.Z)();return(0,a.jsx)(x,{...e,children:h(e.children)},String(r))}},39661:function(e,r,n){n.d(r,{Z:function(){return u}});var a=n(85893);n(67294);var t=n(47902),s=n(5525),i=n(83012),l=n(45056);function u(e){let{pullRequest:r,branchSuffix:n}=e;return(0,a.jsxs)(t.Z,{children:[(0,a.jsxs)(s.Z,{value:"exercise",label:"Exercise",default:!0,children:[(0,a.jsx)(l.Z,{language:"console",children:`git switch exercises/${n}`}),(0,a.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/exercises/${n}/Exercise.java`,children:(0,a.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,a.jsxs)(s.Z,{value:"solution",label:"Solution",children:[(0,a.jsx)(l.Z,{language:"console",children:`git switch solutions/${n}`}),(0,a.jsx)(i.Z,{to:`https://gitpod.io/#https://github.com/jappuccini/java-exercises/blob/solutions/${n}/Exercise.java`,children:(0,a.jsx)("img",{alt:"Open in Gitpod",src:"https://gitpod.io/button/open-in-gitpod.svg"})})]}),(0,a.jsxs)(s.Z,{value:"pullrequest",label:"Pull Request",children:["Alle \xa0\xc4nderungen zwischen der Aufgabe und der L\xf6sung findest du im Pull Request"," ",(0,a.jsxs)(i.Z,{to:`https://github.com/jappuccini/java-exercises/pull/${r}/files?diff=split`,children:["PR#",r]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5777cfa4.e80d949e.js b/pr-preview/pr-238/assets/js/5777cfa4.e80d949e.js new file mode 100644 index 0000000000..628c1ecb51 --- /dev/null +++ b/pr-preview/pr-238/assets/js/5777cfa4.e80d949e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["837"],{59040:function(e,t,n){n.r(t),n.d(t,{metadata:()=>i,contentTitle:()=>a,default:()=>u,assets:()=>c,toc:()=>l,frontMatter:()=>o});var i=JSON.parse('{"id":"exercises/git/git04","title":"Git04","description":"","source":"@site/docs/exercises/git/git04.mdx","sourceDirName":"exercises/git","slug":"/exercises/git/git04","permalink":"/java-docs/pr-preview/pr-238/exercises/git/git04","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/git/git04.mdx","tags":[],"version":"current","frontMatter":{"title":"Git04","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Git03","permalink":"/java-docs/pr-preview/pr-238/exercises/git/git03"},"next":{"title":"Git05","permalink":"/java-docs/pr-preview/pr-238/exercises/git/git05"}}'),s=n("85893"),r=n("50065");let o={title:"Git04",description:""},a=void 0,c={},l=[{value:"Beispielhafte Konsolenausgabe",id:"beispielhafte-konsolenausgabe",level:2}];function d(e){let t={code:"code",h2:"h2",li:"li",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Starte die Kommandozeile (z.B. Windows PowerShell)"}),"\n",(0,s.jsxs)(t.li,{children:["F\xfchre den Befehl\n",(0,s.jsx)(t.code,{children:'git clone "https://github.com/[Dein GitHub Benutzername]/[Der Name Deines remote Repositorys]" "[Pfad/Der Name Deines zweiten lokalen Repositorys]"'}),"\naus, um das remote Repository zu klonen"]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"beispielhafte-konsolenausgabe",children:"Beispielhafte Konsolenausgabe"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-console",children:'PS C:\\Users\\Schmid> git clone "https://github.com/schmid/Java" "C:/Users/Schmid/git/JavaB"\nCloning into \'C:/Users/Schmid/git/JavaB\'...\nremote: Enumerating objects: 10, done.\nremote: Counting objects: 100% (10/10), done.\nremote: Compressing objects: 100% (6/6), done.\nremote: Total 10 (delta 2), reused 5 (delta 1), pack-reused 0\nReceiving objects: 100% (10/10), done.\nResolving deltas: 100% (2/2), done.\nPS C:\\Users\\Schmid>\n'})})]})}function u(e={}){let{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return a},a:function(){return o}});var i=n(67294);let s={},r=i.createContext(s);function o(e){let t=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/57cff8ca.14cf65ec.js b/pr-preview/pr-238/assets/js/57cff8ca.14cf65ec.js new file mode 100644 index 0000000000..ae861ca8a6 --- /dev/null +++ b/pr-preview/pr-238/assets/js/57cff8ca.14cf65ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3287"],{98582:function(e,s,n){n.d(s,{Z:function(){return l}});var r=n(85893),i=n(67294);function l(e){let{children:s,initSlides:n,width:l=null,height:a=null}=e;return(0,i.useEffect)(()=>{n()}),(0,r.jsx)("div",{className:"reveal reveal-viewport",style:{width:l??"100vw",height:a??"100vh"},children:(0,r.jsx)("div",{className:"slides",children:s})})}},57270:function(e,s,n){n.d(s,{O:function(){return r}});let r=()=>{let e=n(42199),s=n(87251),r=n(60977),i=n(12489);new(n(29197))({plugins:[e,s,r,i]}).initialize({hash:!0})}},17597:function(e,s,n){n.r(s),n.d(s,{default:function(){return c}});var r=n(85893),i=n(83012),l=n(98582),a=n(57270);function c(){return(0,r.jsxs)(l.Z,{initSlides:a.O,children:[(0,r.jsx)("section",{children:(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Agenda"}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{className:"fragment",children:"Einf\xfchrung"}),(0,r.jsx)("li",{className:"fragment",children:"Organisatorisches"}),(0,r.jsx)("li",{className:"fragment",children:"Was sind Programme?"}),(0,r.jsx)("li",{className:"fragment",children:"Zusammenfassung"})]})]})}),(0,r.jsxs)("section",{children:[(0,r.jsx)("section",{children:(0,r.jsx)("h2",{children:"Einf\xfchrung"})}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Steffen Merk"}),(0,r.jsx)("p",{children:"Software Engineer"})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Lebenslauf"}),(0,r.jsx)("p",{className:"fragment",children:"Systemadministrator @Framo Morat"}),(0,r.jsx)("p",{className:"fragment",children:"Wirtschaftsinformatik DHBW Ravensburg @SAP"}),(0,r.jsx)("p",{className:"fragment",children:"Software Developer @SAP, @remberg & @Airbus"})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Techstack"}),(0,r.jsx)("p",{className:"fragment",children:"Angular + NgRx"}),(0,r.jsx)("p",{className:"fragment",children:"NodeJS + NestJS"})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Top Focus Topics"}),(0,r.jsx)("p",{className:"fragment",children:"Algorithmen und Datenstrukturen"}),(0,r.jsx)("p",{className:"fragment",children:"Gradle"})]}),(0,r.jsx)("section",{"data-background-iframe":"https://giphy.com/embed/8dgmMbeCA8jeg"}),(0,r.jsx)("section",{children:(0,r.jsx)("h2",{children:"Wollt ihr euch vorstellen?"})}),(0,r.jsx)("section",{"data-background-iframe":"https://giphy.com/embed/8vUEXZA2me7vnuUvrs"}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Was erwartet euch?"}),(0,r.jsx)("p",{className:"fragment",children:"Fokus liegt auf dem Programmieren"}),(0,r.jsx)("p",{className:"fragment",children:"Nicht auswendig lernen"})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Wie erreicht ihr eine gute Note?"}),(0,r.jsxs)("ol",{children:[(0,r.jsx)("li",{className:"fragment",children:"Versteht, was ihr programmiert"}),(0,r.jsx)("li",{className:"fragment",children:"Fragt nach! Mich oder Kommilitonen"}),(0,r.jsx)("li",{className:"fragment",children:"Macht die Aufgaben zeitnah!"})]})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Real talk Steffen: Macht es Spa\xdf?"}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{className:"fragment",children:"Keine UI bringt weniger Motivation"}),(0,r.jsx)("li",{className:"fragment",children:"Ohne Programmiergrundlagen keine Apps"}),(0,r.jsx)("li",{className:"fragment",children:"Java 2, Verteilte Systeme"})]})]})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("section",{children:(0,r.jsx)("h2",{children:"Organisatorisches"})}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Ihr habt Fragen?"}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{className:"fragment",children:"Hand heben"}),(0,r.jsxs)("li",{className:"fragment",children:["Anonym auf"," ",(0,r.jsx)(i.Z,{to:"https://frag.jetzt/participant/room/jappuccini",children:"Frag jetzt"})]})]})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Wo findet ihr was?"}),(0,r.jsx)("p",{className:"fragment",children:(0,r.jsx)(i.Z,{to:"https://jappuccini.github.io/java-docs/",children:"Dokumentation, Aufgaben, Folien"})}),(0,r.jsx)("p",{className:"fragment",children:(0,r.jsx)(i.Z,{to:"https://github.com/jappuccini/java-docs",children:"Quellcode von Dokumentation und Folien"})}),(0,r.jsx)("p",{className:"fragment",children:(0,r.jsx)(i.Z,{to:"https://github.com/jappuccini/java-exercises",children:"Quellcode von Aufgaben und L\xf6sungen"})})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Was liegt in eurer Verantwortung?"}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{className:"fragment",children:"Installation von Tools"}),(0,r.jsx)("li",{className:"fragment",children:"Verwenden von Tools"}),(0,r.jsx)("li",{className:"fragment",children:"Verwenden der Kommandozeile"}),(0,r.jsx)("li",{className:"fragment",children:"Verwenden von git"})]})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"F\xfcr was die Laptops?"}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{className:"fragment",children:"Alles vorinstalliert f\xfcr die Vorlesung"}),(0,r.jsx)("li",{className:"fragment",children:"Alles vorinstalliert f\xfcr die Pr\xfcfungen"}),(0,r.jsx)("li",{className:"fragment",children:"Was macht ihr daheim?"})]})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Empfehlung Neulinge"}),(0,r.jsxs)("ul",{children:[(0,r.jsxs)("li",{className:"fragment",children:["Macht alles mit",(0,r.jsx)(i.Z,{style:{marginLeft:"0.5rem"},to:"https://gitpod.io",children:"GitPod"})]}),(0,r.jsxs)("li",{className:"fragment",children:[(0,r.jsx)(i.Z,{style:{marginRight:"0.5rem"},to:"https://github.com",children:"GitHub"}),"Account erstellen"]}),(0,r.jsx)("li",{className:"fragment",children:"Registrieren mit GitHub Account bei GitPod"}),(0,r.jsx)("li",{className:"fragment",children:"Kostet nach 50 Stunden pro Monat"})]})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Empfehlung Erfahrene"}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{className:"fragment",children:"Installiert Git und checkt die Repos aus"}),(0,r.jsx)("li",{className:"fragment",children:"Installiert JDK und JRE"}),(0,r.jsx)("li",{className:"fragment",children:"Installiert und konfiguriert eure IDE"}),(0,r.jsx)("li",{className:"fragment",children:"Entwickelt alles lokal an eurem Rechner"})]})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Pr\xfcfung"}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{className:"fragment",children:"Findet am PC statt"}),(0,r.jsx)("li",{className:"fragment",children:"Nur Editor zum Schreiben von Text"})]})]})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("section",{children:(0,r.jsx)("h2",{children:"Was sind Programme?"})}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Verschiedene Arten"}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{className:"fragment",children:"Programme mit GUI"}),(0,r.jsx)("li",{className:"fragment",children:"Hintergrundprogramme"}),(0,r.jsx)("li",{className:"fragment",children:"Programme mit TUI"})]})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Demo GUI und TUI"}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{className:"fragment",children:"Ordner erstellen"}),(0,r.jsx)("li",{className:"fragment",children:"Datei erstellen"}),(0,r.jsx)("li",{className:"fragment",children:"Datei verschieben"}),(0,r.jsx)("li",{className:"fragment",children:"Ordner l\xf6schen"})]})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Kommandozeile"}),(0,r.jsx)("p",{className:"fragment",children:"Syntax: <name> [OPTION, ...] [--flag, ...]"}),(0,r.jsx)("pre",{className:"fragment",children:(0,r.jsx)("code",{className:"bash",dangerouslySetInnerHTML:{__html:"ls # alle Ordner und Dateien anzeigen \nls -l # wie Z1, aber als Liste anzeigen \nls -la # wie Z2, aber auch versteckte Dateien und Ordner \nls docs -la # wie Z3, aber im Unterordner docs \n"}})})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Wie macht man ein Java Programm?"}),(0,r.jsx)("p",{className:"fragment",children:"Quellcode verfassen"}),(0,r.jsx)("p",{className:"fragment",children:"Quellcode zu einem Java Programm kompilieren"}),(0,r.jsx)("p",{className:"fragment",children:"Java Programm mit der Java Runtime ausf\xfchren"}),(0,r.jsxs)("aside",{className:"notes",children:[(0,r.jsx)("h3",{children:"Beispiel: Hello World"}),(0,r.jsxs)("ul",{children:[(0,r.jsx)("li",{children:"javac"}),(0,r.jsx)("li",{children:"java Exercise.java"}),(0,r.jsx)("li",{children:"String[] args in debugger"})]})]})]})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("section",{children:(0,r.jsx)("h2",{children:"Zusammenfassung"})}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Programme"}),(0,r.jsx)("p",{className:"fragment",children:"GUI, TUI & Hintergrund"}),(0,r.jsx)("p",{className:"fragment",children:"Quellcode wird in Programm kompiliert"})]}),(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Rest of the day"}),(0,r.jsx)("p",{className:"fragment",children:"Development Environment einrichten (GitPod oder lokal)"}),(0,r.jsx)("p",{className:"fragment",children:(0,r.jsx)(i.Z,{to:"/exercises/class-structure/class-structure01",children:"Hello-World-Aufgabe machen"})})]})]})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5823.80ac5db8.js b/pr-preview/pr-238/assets/js/5823.80ac5db8.js new file mode 100644 index 0000000000..d7fc015b1e --- /dev/null +++ b/pr-preview/pr-238/assets/js/5823.80ac5db8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["5823"],{94641:function(t,n,r){r.d(n,{Z:()=>o});var e=r("79401");function u(t){var n=-1,r=null==t?0:t.length;for(this.__data__=new e.Z;++n<r;)this.add(t[n])}u.prototype.add=u.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},u.prototype.has=function(t){return this.__data__.has(t)};let o=u},29227:function(t,n,r){r.d(n,{Z:function(){return e}});let e=function(t,n){for(var r=-1,e=null==t?0:t.length;++r<e&&!1!==n(t[r],r,t););return t}},87276:function(t,n,r){r.d(n,{Z:function(){return e}});let e=function(t,n){for(var r=-1,e=null==t?0:t.length,u=0,o=[];++r<e;){var c=t[r];n(c,r,t)&&(o[u++]=c)}return o}},37479:function(t,n,r){r.d(n,{Z:function(){return u}});var e=r(81723);let u=function(t,n){return!!(null==t?0:t.length)&&(0,e.Z)(t,n,0)>-1}},46592:function(t,n,r){r.d(n,{Z:function(){return e}});let e=function(t,n,r){for(var e=-1,u=null==t?0:t.length;++e<u;)if(r(n,t[e]))return!0;return!1}},96248:function(t,n,r){r.d(n,{Z:function(){return e}});let e=function(t,n){for(var r=-1,e=null==t?0:t.length,u=Array(e);++r<e;)u[r]=n(t[r],r,t);return u}},293:function(t,n,r){r.d(n,{Z:function(){return e}});let e=function(t,n){for(var r=-1,e=n.length,u=t.length;++r<e;)t[u+r]=n[r];return t}},93130:function(t,n,r){r.d(n,{Z:function(){return e}});let e=function(t,n){for(var r=-1,e=null==t?0:t.length;++r<e;)if(n(t[r],r,t))return!0;return!1}},16124:function(t,n,r){r.d(n,{Z:()=>R});var e=r("11395"),u=r("29227"),o=r("89774"),c=r("29919"),i=r("87074"),f=r("40038"),a=r("49307"),l=r("76177"),Z=r("524"),v=r("6630"),s=r("91095"),b=r("78982"),d=r("23302"),j=Object.prototype.hasOwnProperty;let p=function(t){var n=t.length,r=new t.constructor(n);return n&&"string"==typeof t[0]&&j.call(t,"index")&&(r.index=t.index,r.input=t.input),r};var h=r("21914");let y=function(t,n){var r=n?(0,h.Z)(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)};var g=/\w*$/;let w=function(t){var n=new t.constructor(t.source,g.exec(t));return n.lastIndex=t.lastIndex,n};var A=r("3958"),_=A.Z?A.Z.prototype:void 0,O=_?_.valueOf:void 0,m=r("32025");let S=function(t,n,r){var e,u=t.constructor;switch(n){case"[object ArrayBuffer]":return(0,h.Z)(t);case"[object Boolean]":case"[object Date]":return new u(+t);case"[object DataView]":return y(t,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return(0,m.Z)(t,r);case"[object Map]":case"[object Set]":return new u;case"[object Number]":case"[object String]":return new u(t);case"[object RegExp]":return w(t);case"[object Symbol]":;return e=t,O?Object(O.call(e)):{}}};var k=r("62799"),E=r("31739"),x=r("25162"),I=r("75887"),U=r("44026"),B=r("74413"),C=B.Z&&B.Z.isMap,D=C?(0,U.Z)(C):function(t){return(0,I.Z)(t)&&"[object Map]"==(0,d.Z)(t)},F=r("58641"),M=B.Z&&B.Z.isSet,z=M?(0,U.Z)(M):function(t){return(0,I.Z)(t)&&"[object Set]"==(0,d.Z)(t)},L="[object Arguments]",P="[object Function]",$="[object Object]",N={};N[L]=N["[object Array]"]=N["[object ArrayBuffer]"]=N["[object DataView]"]=N["[object Boolean]"]=N["[object Date]"]=N["[object Float32Array]"]=N["[object Float64Array]"]=N["[object Int8Array]"]=N["[object Int16Array]"]=N["[object Int32Array]"]=N["[object Map]"]=N["[object Number]"]=N[$]=N["[object RegExp]"]=N["[object Set]"]=N["[object String]"]=N["[object Symbol]"]=N["[object Uint8Array]"]=N["[object Uint8ClampedArray]"]=N["[object Uint16Array]"]=N["[object Uint32Array]"]=!0,N["[object Error]"]=N[P]=N["[object WeakMap]"]=!1;let R=function t(n,r,j,h,y,g){var w,A=1&r,_=2&r,O=4&r;if(j&&(w=y?j(n,h,y,g):j(n)),void 0!==w)return w;if(!(0,F.Z)(n))return n;var m=(0,E.Z)(n);if(m){if(w=p(n),!A)return(0,l.Z)(n,w)}else{var I,U,B,C,M,R,V,G,W=(0,d.Z)(n),q=W==P||"[object GeneratorFunction]"==W;if((0,x.Z)(n))return(0,a.Z)(n,A);if(W==$||W==L||q&&!y){if(w=_||q?{}:(0,k.Z)(n),!A){;return _?(B=n,C=(I=w,U=n,I&&(0,c.Z)(U,(0,f.Z)(U),I)),(0,c.Z)(B,(0,v.Z)(B),C)):(V=n,G=(M=w,R=n,M&&(0,c.Z)(R,(0,i.Z)(R),M)),(0,c.Z)(V,(0,Z.Z)(V),G))}}else{if(!N[W])return y?n:{};w=S(n,W,A)}}g||(g=new e.Z);var H=g.get(n);if(H)return H;g.set(n,w),z(n)?n.forEach(function(e){w.add(t(e,r,j,e,n,g))}):D(n)&&n.forEach(function(e,u){w.set(u,t(e,r,j,u,n,g))});var J=O?_?b.Z:s.Z:_?f.Z:i.Z,K=m?void 0:J(n);return(0,u.Z)(K||n,function(e,u){K&&(e=n[u=e]),(0,o.Z)(w,u,t(e,r,j,u,n,g))}),w}},20869:function(t,n,r){r.d(n,{Z:()=>i});var e,u,o=r("50929"),c=r("71581");let i=(e=o.Z,function(t,n){if(null==t)return t;if(!(0,c.Z)(t))return e(t,n);for(var r=t.length,o=-1,i=Object(t);(u?o--:++o<r)&&!1!==n(i[o],o,i););return t})},789:function(t,n,r){r.d(n,{Z:function(){return u}});var e=r(20869);let u=function(t,n){var r=[];return(0,e.Z)(t,function(t,e,u){n(t,e,u)&&r.push(t)}),r}},81208:function(t,n,r){r.d(n,{Z:function(){return e}});let e=function(t,n,r,e){for(var u=t.length,o=r+(e?1:-1);e?o--:++o<u;)if(n(t[o],o,t))return o;return -1}},39446:function(t,n,r){r.d(n,{Z:()=>a});var e=r("293"),u=r("3958"),o=r("45988"),c=r("31739"),i=u.Z?u.Z.isConcatSpreadable:void 0;let f=function(t){return(0,c.Z)(t)||(0,o.Z)(t)||!!(i&&t&&t[i])},a=function t(n,r,u,o,c){var i=-1,a=n.length;for(u||(u=f),c||(c=[]);++i<a;){var l=n[i];r>0&&u(l)?r>1?t(l,r-1,u,o,c):(0,e.Z)(c,l):!o&&(c[c.length]=l)}return c}},50929:function(t,n,r){r.d(n,{Z:function(){return o}});var e=r(45467),u=r(87074);let o=function(t,n){return t&&(0,e.Z)(t,n,u.Z)}},73722:function(t,n,r){r.d(n,{Z:function(){return o}});var e=r(50949),u=r(37706);let o=function(t,n){n=(0,e.Z)(n,t);for(var r=0,o=n.length;null!=t&&r<o;)t=t[(0,u.Z)(n[r++])];return r&&r==o?t:void 0}},78467:function(t,n,r){r.d(n,{Z:function(){return o}});var e=r(293),u=r(31739);let o=function(t,n,r){var o=n(t);return(0,u.Z)(t)?o:(0,e.Z)(o,r(t))}},81723:function(t,n,r){r.d(n,{Z:()=>c});var e=r("81208");let u=function(t){return t!=t},o=function(t,n,r){for(var e=r-1,u=t.length;++e<u;)if(t[e]===n)return e;return -1},c=function(t,n,r){return n==n?o(t,n,r):(0,e.Z)(t,u,r)}},69547:function(t,n,r){r.d(n,{Z:()=>W});var e=r("11395"),u=r("94641"),o=r("93130"),c=r("99976");let i=function(t,n,r,e,i,f){var a=1&r,l=t.length,Z=n.length;if(l!=Z&&!(a&&Z>l))return!1;var v=f.get(t),s=f.get(n);if(v&&s)return v==n&&s==t;var b=-1,d=!0,j=2&r?new u.Z:void 0;for(f.set(t,n),f.set(n,t);++b<l;){var p=t[b],h=n[b];if(e)var y=a?e(h,p,b,n,t,f):e(p,h,b,t,n,f);if(void 0!==y){if(y)continue;d=!1;break}if(j){if(!(0,o.Z)(n,function(t,n){if(!(0,c.Z)(j,n)&&(p===t||i(p,t,r,e,f)))return j.push(n)})){d=!1;break}}else if(!(p===h||i(p,h,r,e,f))){d=!1;break}}return f.delete(t),f.delete(n),d};var f=r("3958"),a=r("8530"),l=r("38487");let Z=function(t){var n=-1,r=Array(t.size);return t.forEach(function(t,e){r[++n]=[e,t]}),r};var v=r("92840"),s=f.Z?f.Z.prototype:void 0,b=s?s.valueOf:void 0;let d=function(t,n,r,e,u,o,c){switch(r){case"[object DataView]":if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)break;t=t.buffer,n=n.buffer;case"[object ArrayBuffer]":if(t.byteLength!=n.byteLength||!o(new a.Z(t),new a.Z(n)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return(0,l.Z)(+t,+n);case"[object Error]":return t.name==n.name&&t.message==n.message;case"[object RegExp]":case"[object String]":return t==n+"";case"[object Map]":var f=Z;case"[object Set]":var s=1&e;if(f||(f=v.Z),t.size!=n.size&&!s)break;var d=c.get(t);if(d)return d==n;e|=2,c.set(t,n);var j=i(f(t),f(n),e,u,o,c);return c.delete(t),j;case"[object Symbol]":if(b)return b.call(t)==b.call(n)}return!1};var j=r("91095"),p=Object.prototype.hasOwnProperty;let h=function(t,n,r,e,u,o){var c=1&r,i=(0,j.Z)(t),f=i.length;if(f!=(0,j.Z)(n).length&&!c)return!1;for(var a=f;a--;){var l=i[a];if(!(c?l in n:p.call(n,l)))return!1}var Z=o.get(t),v=o.get(n);if(Z&&v)return Z==n&&v==t;var s=!0;o.set(t,n),o.set(n,t);for(var b=c;++a<f;){var d=t[l=i[a]],h=n[l];if(e)var y=c?e(h,d,l,n,t,o):e(d,h,l,t,n,o);if(!(void 0===y?d===h||u(d,h,r,e,o):y)){s=!1;break}b||(b="constructor"==l)}if(s&&!b){var g=t.constructor,w=n.constructor;g!=w&&"constructor"in t&&"constructor"in n&&!("function"==typeof g&&g instanceof g&&"function"==typeof w&&w instanceof w)&&(s=!1)}return o.delete(t),o.delete(n),s};var y=r("23302"),g=r("31739"),w=r("25162"),A=r("48366"),_="[object Arguments]",O="[object Array]",m="[object Object]",S=Object.prototype.hasOwnProperty;let k=function(t,n,r,u,o,c){var f=(0,g.Z)(t),a=(0,g.Z)(n),l=f?O:(0,y.Z)(t),Z=a?O:(0,y.Z)(n);l=l==_?m:l,Z=Z==_?m:Z;var v=l==m,s=Z==m,b=l==Z;if(b&&(0,w.Z)(t)){if(!(0,w.Z)(n))return!1;f=!0,v=!1}if(b&&!v)return c||(c=new e.Z),f||(0,A.Z)(t)?i(t,n,r,u,o,c):d(t,n,l,r,u,o,c);if(!(1&r)){var j=v&&S.call(t,"__wrapped__"),p=s&&S.call(n,"__wrapped__");if(j||p){var k=j?t.value():t,E=p?n.value():n;return c||(c=new e.Z),o(k,E,r,u,c)}}return!!b&&(c||(c=new e.Z),h(t,n,r,u,o,c))};var E=r("75887");let x=function t(n,r,e,u,o){return n===r||(null!=n&&null!=r&&((0,E.Z)(n)||(0,E.Z)(r))?k(n,r,e,u,t,o):n!=n&&r!=r)},I=function(t,n,r,u){var o=r.length,c=o,i=!u;if(null==t)return!c;for(t=Object(t);o--;){var f=r[o];if(i&&f[2]?f[1]!==t[f[0]]:!(f[0]in t))return!1}for(;++o<c;){var a=(f=r[o])[0],l=t[a],Z=f[1];if(i&&f[2]){if(void 0===l&&!(a in t))return!1}else{var v=new e.Z;if(u)var s=u(l,Z,a,t,n,v);if(!(void 0===s?x(Z,l,3,u,v):s))return!1}}return!0};var U=r("58641");let B=function(t){return t==t&&!(0,U.Z)(t)};var C=r("87074");let D=function(t){for(var n=(0,C.Z)(t),r=n.length;r--;){var e=n[r],u=t[e];n[r]=[e,u,B(u)]}return n},F=function(t,n){return function(r){return null!=r&&r[t]===n&&(void 0!==n||t in Object(r))}},M=function(t){var n=D(t);return 1==n.length&&n[0][2]?F(n[0][0],n[0][1]):function(r){return r===t||I(r,t,n)}};var z=r("73722");let L=function(t,n,r){var e=null==t?void 0:(0,z.Z)(t,n);return void 0===e?r:e};var P=r("26890"),$=r("46699"),N=r("37706"),R=r("94675"),V=r("11961");let G=function(t){var n;return(0,$.Z)(t)?(0,V.Z)((0,N.Z)(t)):(n=t,function(t){return(0,z.Z)(t,n)})},W=function(t){if("function"==typeof t)return t;if(null==t)return R.Z;if("object"==typeof t){var n,r;return(0,g.Z)(t)?(n=t[0],r=t[1],(0,$.Z)(n)&&B(r)?F((0,N.Z)(n),r):function(t){var e=L(t,n);return void 0===e&&e===r?(0,P.Z)(t,n):x(r,e,3)}):M(t)}return G(t)}},11961:function(t,n,r){r.d(n,{Z:function(){return e}});let e=function(t){return function(n){return null==n?void 0:n[t]}}},38610:function(t,n,r){r.d(n,{Z:()=>Z});var e=r("94641"),u=r("37479"),o=r("46592"),c=r("99976"),i=r("88521"),f=r("6446"),a=r("92840"),l=i.Z&&1/(0,a.Z)(new i.Z([,-0]))[1]==1/0?function(t){return new i.Z(t)}:f.Z;let Z=function(t,n,r){var i=-1,f=u.Z,Z=t.length,v=!0,s=[],b=s;if(r)v=!1,f=o.Z;else if(Z>=200){var d=n?null:l(t);if(d)return(0,a.Z)(d);v=!1,f=c.Z,b=new e.Z}else b=n?[]:s;t:for(;++i<Z;){var j=t[i],p=n?n(j):j;if(j=r||0!==j?j:0,v&&p==p){for(var h=b.length;h--;)if(b[h]===p)continue t;n&&b.push(p),s.push(j)}else!f(b,p,r)&&(b!==s&&b.push(p),s.push(j))}return s}},99976:function(t,n,r){r.d(n,{Z:function(){return e}});let e=function(t,n){return t.has(n)}},93898:function(t,n,r){r.d(n,{Z:function(){return u}});var e=r(94675);let u=function(t){return"function"==typeof t?t:e.Z}},50949:function(t,n,r){r.d(n,{Z:()=>s});var e,u,o,c=r("31739"),i=r("46699"),f=r("65269"),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,l=/\\(\\)?/g;var Z=(e=function(t){var n=[];return 46===t.charCodeAt(0)&&n.push(""),t.replace(a,function(t,r,e,u){n.push(e?u.replace(l,"$1"):r||t)}),n},o=(u=(0,f.Z)(e,function(t){return 500===o.size&&o.clear(),t})).cache,u),v=r("22501");let s=function(t,n){return(0,c.Z)(t)?t:(0,i.Z)(t,n)?[t]:Z((0,v.Z)(t))}},91095:function(t,n,r){r.d(n,{Z:function(){return c}});var e=r(78467),u=r(524),o=r(87074);let c=function(t){return(0,e.Z)(t,o.Z,u.Z)}},78982:function(t,n,r){r.d(n,{Z:function(){return c}});var e=r(78467),u=r(6630),o=r(40038);let c=function(t){return(0,e.Z)(t,o.Z,u.Z)}},524:function(t,n,r){r.d(n,{Z:function(){return i}});var e=r(87276),u=r(27e3),o=Object.prototype.propertyIsEnumerable,c=Object.getOwnPropertySymbols;let i=c?function(t){return null==t?[]:(t=Object(t),(0,e.Z)(c(t),function(n){return o.call(t,n)}))}:u.Z},6630:function(t,n,r){r.d(n,{Z:function(){return i}});var e=r(293),u=r(53754),o=r(524),c=r(27e3);let i=Object.getOwnPropertySymbols?function(t){for(var n=[];t;)(0,e.Z)(n,(0,o.Z)(t)),t=(0,u.Z)(t);return n}:c.Z},87825:function(t,n,r){r.d(n,{Z:function(){return a}});var e=r(50949),u=r(45988),o=r(31739),c=r(92383),i=r(49666),f=r(37706);let a=function(t,n,r){n=(0,e.Z)(n,t);for(var a=-1,l=n.length,Z=!1;++a<l;){var v=(0,f.Z)(n[a]);if(!(Z=null!=t&&r(t,v)))break;t=t[v]}return Z||++a!=l?Z:!!(l=null==t?0:t.length)&&(0,i.Z)(l)&&(0,c.Z)(v,l)&&((0,o.Z)(t)||(0,u.Z)(t))}},46699:function(t,n,r){r.d(n,{Z:function(){return i}});var e=r(31739),u=r(2147),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,c=/^\w*$/;let i=function(t,n){if((0,e.Z)(t))return!1;var r=typeof t;return!!("number"==r||"symbol"==r||"boolean"==r||null==t||(0,u.Z)(t))||c.test(t)||!o.test(t)||null!=n&&t in Object(n)}},92840:function(t,n,r){r.d(n,{Z:function(){return e}});let e=function(t){var n=-1,r=Array(t.size);return t.forEach(function(t){r[++n]=t}),r}},37706:function(t,n,r){r.d(n,{Z:function(){return o}});var e=r(2147),u=1/0;let o=function(t){if("string"==typeof t||(0,e.Z)(t))return t;var n=t+"";return"0"==n&&1/t==-u?"-0":n}},37627:function(t,n,r){r.d(n,{Z:function(){return i}});var e=r(87276),u=r(789),o=r(69547),c=r(31739);let i=function(t,n){return((0,c.Z)(t)?e.Z:u.Z)(t,(0,o.Z)(n,3))}},82633:function(t,n,r){r.d(n,{Z:function(){return i}});var e=r(29227),u=r(20869),o=r(93898),c=r(31739);let i=function(t,n){return((0,c.Z)(t)?e.Z:u.Z)(t,(0,o.Z)(n))}},26890:function(t,n,r){r.d(n,{Z:()=>o});let e=function(t,n){return null!=t&&n in Object(t)};var u=r("87825");let o=function(t,n){return null!=t&&(0,u.Z)(t,n,e)}},2147:function(t,n,r){r.d(n,{Z:function(){return o}});var e=r(65182),u=r(75887);let o=function(t){return"symbol"==typeof t||(0,u.Z)(t)&&"[object Symbol]"==(0,e.Z)(t)}},61925:function(t,n,r){r.d(n,{Z:function(){return e}});let e=function(t){return void 0===t}},87074:function(t,n,r){r.d(n,{Z:function(){return c}});var e=r(12895),u=r(22769),o=r(71581);let c=function(t){return(0,o.Z)(t)?(0,e.Z)(t):(0,u.Z)(t)}},6446:function(t,n,r){r.d(n,{Z:function(){return e}});let e=function(){}},81748:function(t,n,r){r.d(n,{Z:()=>f});let e=function(t,n,r,e){var u=-1,o=null==t?0:t.length;for(e&&o&&(r=t[++u]);++u<o;)r=n(r,t[u],u,t);return r};var u=r("20869"),o=r("69547");let c=function(t,n,r,e,u){return u(t,function(t,u,o){r=e?(e=!1,t):n(r,t,u,o)}),r};var i=r("31739");let f=function(t,n,r){var f=(0,i.Z)(t)?e:c,a=arguments.length<3;return f(t,(0,o.Z)(n,4),r,a,u.Z)}},27e3:function(t,n,r){r.d(n,{Z:function(){return e}});let e=function(){return[]}},22501:function(t,n,r){r.d(n,{Z:()=>Z});var e=r("3958"),u=r("96248"),o=r("31739"),c=r("2147"),i=1/0,f=e.Z?e.Z.prototype:void 0,a=f?f.toString:void 0;let l=function t(n){if("string"==typeof n)return n;if((0,o.Z)(n))return(0,u.Z)(n,t)+"";if((0,c.Z)(n))return a?a.call(n):"";var r=n+"";return"0"==r&&1/n==-i?"-0":r},Z=function(t){return null==t?"":l(t)}},96433:function(t,n,r){r.d(n,{Z:()=>o});var e=r("96248"),u=r("87074");let o=function(t){var n,r;return null==t?[]:(n=t,r=(0,u.Z)(t),(0,e.Z)(r,function(t){return n[t]}))}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/59b02b05.1898ec13.js b/pr-preview/pr-238/assets/js/59b02b05.1898ec13.js new file mode 100644 index 0000000000..1b5bbfb2b9 --- /dev/null +++ b/pr-preview/pr-238/assets/js/59b02b05.1898ec13.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2320"],{53174:function(e,n,i){i.r(n),i.d(n,{metadata:()=>r,contentTitle:()=>d,default:()=>u,assets:()=>t,toc:()=>o,frontMatter:()=>s});var r=JSON.parse('{"id":"exercises/javafx/javafx01","title":"JavaFX01","description":"","source":"@site/docs/exercises/javafx/javafx01.md","sourceDirName":"exercises/javafx","slug":"/exercises/javafx/javafx01","permalink":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx01","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/javafx/javafx01.md","tags":[],"version":"current","frontMatter":{"title":"JavaFX01","description":""},"sidebar":"exercisesSidebar","previous":{"title":"JavaFX","permalink":"/java-docs/pr-preview/pr-238/exercises/javafx/"},"next":{"title":"JavaFX02","permalink":"/java-docs/pr-preview/pr-238/exercises/javafx/javafx02"}}'),a=i("85893"),l=i("50065");let s={title:"JavaFX01",description:""},d=void 0,t={},o=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Szenegraph",id:"szenegraph",level:2},{value:"Allgemeine Hinweise",id:"allgemeine-hinweise",level:2},{value:"Hinweise zur Klasse <em>Controller</em>",id:"hinweise-zur-klasse-controller",level:2}];function c(e){let n={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,l.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.p,{children:"Erstelle eine JavaFX-Anwendung zum Zeichnen beliebig vieler, unterschiedlich\ngro\xdfer und unterschiedlich farbiger Kreise anhand des abgebildeten\nKlassendiagramms sowie des abgebildeten Szenegraphs."}),"\n",(0,a.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,a.jsx)(n.mermaid,{value:"classDiagram\n Initializable <|.. Controller\n\n class Controller {\n -canvas: Canvas #123;FXML#125;\n -model: Model\n +initialize(location: URL, resources: ResourceBundle) void\n +addCircle(actionEvent: ActionEvent) void #123;FXML#125;\n }\n\n class Initializable {\n <<interface>>\n +initialize(location: URL, resources: ResourceBundle) void\n }"}),"\n",(0,a.jsx)(n.h2,{id:"szenegraph",children:"Szenegraph"}),"\n",(0,a.jsx)(n.mermaid,{value:"flowchart LR\n vbox[VBox\\nfx:controller=Pfad.Controller]\n canvas[Canvas\\nfx:id=canvas\\nwidth=500.0\\nheight=500.0]\n button[Button\\ntext=Kreis zeichnen\\nonAction=#drawCircle]\n\n vbox --\x3e canvas\n vbox --\x3e button"}),"\n",(0,a.jsx)(n.h2,{id:"allgemeine-hinweise",children:"Allgemeine Hinweise"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Die Methode ",(0,a.jsx)(n.code,{children:"GraphicsContext getGraphicsContext2D()"})," der Klasse ",(0,a.jsx)(n.code,{children:"Canvas"})," gibt\ndie Grafik einer Leinwand zur\xfcck"]}),"\n",(0,a.jsxs)(n.li,{children:["Die Methoden ",(0,a.jsx)(n.code,{children:"double getWidth()"})," und ",(0,a.jsx)(n.code,{children:"double getHeight"})," der Klasse ",(0,a.jsx)(n.code,{children:"Canvas"}),"\ngeben die Breite bzw. die H\xf6he einer Leinwand zur\xfcck"]}),"\n",(0,a.jsxs)(n.li,{children:["Die Methode ",(0,a.jsx)(n.code,{children:"void setFill(p: Paint)"})," der Klasse ",(0,a.jsx)(n.code,{children:"GraphicsContext"})," setzt die\nF\xfcllfarbe einer Grafik auf den eingehenden Wert"]}),"\n",(0,a.jsxs)(n.li,{children:["Die Methoden ",(0,a.jsx)(n.code,{children:"void fillRect(x: double, y: double, w: double, h: double)"})," und\n",(0,a.jsx)(n.code,{children:"void fillOval(x: double, y: double, w: double, h: double)"})," der Klasse\n",(0,a.jsx)(n.code,{children:"GraphicsContext"})," zeichnen ein ausgef\xfclltes Rechteck bzw. ein ausgef\xfclltes\nOval mit den eingehenden Informationen und der aktuellen F\xfcllfarbe auf die\nGrafik"]}),"\n",(0,a.jsxs)(n.li,{children:["Der Konstruktor\n",(0,a.jsx)(n.code,{children:"Color(red: double, green: double, blue: double, opacity: double)"})," der Klasse\n",(0,a.jsx)(n.code,{children:"Color"})," erm\xf6glicht das Erzeugen einer (durchsichtigen) Farbe"]}),"\n"]}),"\n",(0,a.jsxs)(n.h2,{id:"hinweise-zur-klasse-controller",children:["Hinweise zur Klasse ",(0,a.jsx)(n.em,{children:"Controller"})]}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Die Methode ",(0,a.jsx)(n.code,{children:"void initialize(location: URL, resources: ResourceBundle)"})," soll\ndie Leinwand wei\xdf anmalen"]}),"\n",(0,a.jsxs)(n.li,{children:["Die Methode ",(0,a.jsx)(n.code,{children:"void drawCircle(actionEvent: ActionEvent)"})," soll einen Kreis mit\neiner zuf\xe4lligen Gr\xf6\xdfe und einer zuf\xe4lligen Farbe auf eine zuf\xe4llige Position\nder Leinwand zeichnen"]}),"\n"]})]})}function u(e={}){let{wrapper:n}={...(0,l.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},50065:function(e,n,i){i.d(n,{Z:function(){return d},a:function(){return s}});var r=i(67294);let a={},l=r.createContext(a);function s(e){let n=r.useContext(l);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),r.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5a1e2c61.c66d688e.js b/pr-preview/pr-238/assets/js/5a1e2c61.c66d688e.js new file mode 100644 index 0000000000..61609929ce --- /dev/null +++ b/pr-preview/pr-238/assets/js/5a1e2c61.c66d688e.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2667"],{53399:function(e,t,r){r.r(t),r.d(t,{metadata:()=>i,contentTitle:()=>o,default:()=>m,assets:()=>l,toc:()=>u,frontMatter:()=>c});var i=JSON.parse('{"id":"exam-exercises/exam-exercises-java1/dice-games/dice-games","title":"W\xfcrfelspiele","description":"","source":"@site/docs/exam-exercises/exam-exercises-java1/dice-games/dice-games.mdx","sourceDirName":"exam-exercises/exam-exercises-java1/dice-games","slug":"/exam-exercises/exam-exercises-java1/dice-games/","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java1/dice-games/dice-games.mdx","tags":[],"version":"current","sidebarPosition":30,"frontMatter":{"title":"W\xfcrfelspiele","description":"","sidebar_position":30},"sidebar":"examExercisesSidebar","previous":{"title":"Selectionsort","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/selection-sort"},"next":{"title":"W\xfcrfelspiel 1","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-01"}}'),n=r("85893"),s=r("50065"),a=r("94301");let c={title:"W\xfcrfelspiele",description:"",sidebar_position:30},o=void 0,l={},u=[];function d(e){return(0,n.jsx)(a.Z,{})}function m(e={}){let{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},94301:function(e,t,r){r.d(t,{Z:()=>j});var i=r("85893");r("67294");var n=r("67026"),s=r("69369"),a=r("83012"),c=r("43115"),o=r("63150"),l=r("96025"),u=r("34403");let d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function m(e){let{href:t,children:r}=e;return(0,i.jsx)(a.Z,{href:t,className:(0,n.Z)("card padding--lg",d.cardContainer),children:r})}function p(e){let{href:t,icon:r,title:s,description:a}=e;return(0,i.jsxs)(m,{href:t,children:[(0,i.jsxs)(u.Z,{as:"h2",className:(0,n.Z)("text--truncate",d.cardTitle),title:s,children:[r," ",s]}),a&&(0,i.jsx)("p",{className:(0,n.Z)("text--truncate",d.cardDescription),title:a,children:a})]})}function x(e){let{item:t}=e,r=(0,s.LM)(t),n=function(){let{selectMessage:e}=(0,c.c)();return t=>e(t,(0,l.I)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return r?(0,i.jsx)(p,{href:r,icon:"\uD83D\uDDC3\uFE0F",title:t.label,description:t.description??n(t.items.length)}):null}function f(e){let{item:t}=e,r=(0,o.Z)(t.href)?"\uD83D\uDCC4\uFE0F":"\uD83D\uDD17",n=(0,s.xz)(t.docId??void 0);return(0,i.jsx)(p,{href:t.href,icon:r,title:t.label,description:t.description??n?.description})}function h(e){let{item:t}=e;switch(t.type){case"link":return(0,i.jsx)(f,{item:t});case"category":return(0,i.jsx)(x,{item:t});default:throw Error(`unknown item type ${JSON.stringify(t)}`)}}function g(e){let{className:t}=e,r=(0,s.jA)();return(0,i.jsx)(j,{items:r.items,className:t})}function j(e){let{items:t,className:r}=e;if(!t)return(0,i.jsx)(g,{...e});let a=(0,s.MN)(t);return(0,i.jsx)("section",{className:(0,n.Z)("row",r),children:a.map((e,t)=>(0,i.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,i.jsx)(h,{item:e})},t))})}},43115:function(e,t,r){r.d(t,{c:function(){return o}});var i=r(67294),n=r(2933);let s=["zero","one","two","few","many","other"];function a(e){return s.filter(t=>e.includes(t))}let c={locale:"en",pluralForms:a(["one","other"]),select:e=>1===e?"one":"other"};function o(){let e=function(){let{i18n:{currentLocale:e}}=(0,n.Z)();return(0,i.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:a(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${t.message} +`),c}},[e])}();return{selectMessage:(t,r)=>(function(e,t,r){let i=e.split("|");if(1===i.length)return i[0];i.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${i.length}: ${e}`);let n=r.select(t);return i[Math.min(r.pluralForms.indexOf(n),i.length-1)]})(r,t,e)}}},50065:function(e,t,r){r.d(t,{Z:function(){return c},a:function(){return a}});var i=r(67294);let n={},s=i.createContext(n);function a(e){let t=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5b7cb4e1.840d37c2.js b/pr-preview/pr-238/assets/js/5b7cb4e1.840d37c2.js new file mode 100644 index 0000000000..d3ce093831 --- /dev/null +++ b/pr-preview/pr-238/assets/js/5b7cb4e1.840d37c2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7610"],{78660:function(e,n,t){t.r(n),t.d(n,{metadata:()=>r,contentTitle:()=>u,default:()=>f,assets:()=>c,toc:()=>d,frontMatter:()=>o});var r=JSON.parse('{"id":"documentation/abstract-and-final","title":"Abstrakte und finale Klassen und Methoden","description":"","source":"@site/docs/documentation/abstract-and-final.mdx","sourceDirName":"documentation","slug":"/documentation/abstract-and-final","permalink":"/java-docs/pr-preview/pr-238/documentation/abstract-and-final","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/abstract-and-final.mdx","tags":[{"inline":true,"label":"abstract","permalink":"/java-docs/pr-preview/pr-238/tags/abstract"},{"inline":true,"label":"final","permalink":"/java-docs/pr-preview/pr-238/tags/final"}],"version":"current","sidebarPosition":200,"frontMatter":{"title":"Abstrakte und finale Klassen und Methoden","description":"","sidebar_position":200,"tags":["abstract","final"]},"sidebar":"documentationSidebar","previous":{"title":"Die Mutter aller Klassen","permalink":"/java-docs/pr-preview/pr-238/documentation/object"},"next":{"title":"Schnittstellen (Interfaces)","permalink":"/java-docs/pr-preview/pr-238/documentation/interfaces"}}'),a=t("85893"),i=t("50065"),s=t("47902"),l=t("5525");let o={title:"Abstrakte und finale Klassen und Methoden",description:"",sidebar_position:200,tags:["abstract","final"]},u=void 0,c={},d=[];function p(e){let n={code:"code",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.p,{children:["Mit Hilfe der Schl\xfcsselw\xf6rter ",(0,a.jsx)(n.code,{children:"abstract"})," und ",(0,a.jsx)(n.code,{children:"final"})," kann die Verwendung von\nKlassen vorgegeben bzw. eingesch\xe4nkt werden:"]}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Abstrakte Klassen k\xf6nnen nicht instanziiert werden"}),"\n",(0,a.jsx)(n.li,{children:"Abstrakte Methoden werden in abstrakten Klassen definiert, besitzen dort\nkeinen Methodenrumpf und m\xfcssen in den abgeleiteten Klassen der abstrakten\nKlasse \xfcberschrieben werden"}),"\n",(0,a.jsx)(n.li,{children:"Finale Klassen k\xf6nnen nicht abgeleitet werden"}),"\n",(0,a.jsx)(n.li,{children:"Finale Methoden k\xf6nnen nicht \xfcberschrieben werden"}),"\n"]}),"\n",(0,a.jsxs)(s.Z,{children:[(0,a.jsx)(l.Z,{value:"a",label:"Abstrakte Klasse mit abstrakter und finaler Methode",default:!0,children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="Computer.java (Auszug)" showLineNumbers',children:"public abstract class Computer {\n ...\n public abstract ArrayList<String> getSpecification();\n\n public final CPU getCpu() {\n return cpu;\n }\n ...\n}\n"})})}),(0,a.jsx)(l.Z,{value:"b",label:"Finale Klasse",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="Notebook.java (Auszug)" showLineNumbers',children:'public final class Notebook extends Computer {\n ...\n @Override\n public ArrayList<String> getSpecification() {\n ArrayList<String> specification = new ArrayList<>();\n specification.add("description: " + description);\n specification.add("cpu: " + cpu);\n specification.add("memoryInGB: " + memoryInGB);\n specification.add("screenSizeInInches: " + screenSizeInInches);\n return specification;\n }\n\n @Override\n public CPU getCpu() {...} // Kompilierungsfehler\n ...\n}\n'})})}),(0,a.jsx)(l.Z,{value:"c",label:"Startklasse",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass extends Notebook { // Kompilierungsfehler\n\n public static void main(String[] args) {\n Computer myComputer = new Computer("Mein Office PC"); // Kompilierungsfehler\n }\n\n}\n'})})})]})]})}function f(e={}){let{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(p,{...e})}):p(e)}},5525:function(e,n,t){t.d(n,{Z:()=>s});var r=t("85893");t("67294");var a=t("67026");let i="tabItem_Ymn6";function s(e){let{children:n,hidden:t,className:s}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,a.Z)(i,s),hidden:t,children:n})}},47902:function(e,n,t){t.d(n,{Z:()=>x});var r=t("85893"),a=t("67294"),i=t("67026"),s=t("69599"),l=t("16550"),o=t("32000"),u=t("4520"),c=t("38341"),d=t("76009");function p(e){return a.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||a.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})?.filter(Boolean)??[]}function f(e){let{value:n,tabValues:t}=e;return t.some(e=>e.value===n)}var b=t("7227");let m="tabList__CuJ",h="tabItem_LNqP";function v(e){let{className:n,block:t,selectedValue:a,selectValue:l,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),d=e=>{let n=e.currentTarget,t=o[u.indexOf(n)].value;t!==a&&(c(n),l(t))},p=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=u.indexOf(e.currentTarget)+1;n=u[t]??u[0];break}case"ArrowLeft":{let t=u.indexOf(e.currentTarget)-1;n=u[t]??u[u.length-1]}}n?.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":t},n),children:o.map(e=>{let{value:n,label:t,attributes:s}=e;return(0,r.jsx)("li",{role:"tab",tabIndex:a===n?0:-1,"aria-selected":a===n,ref:e=>u.push(e),onKeyDown:p,onClick:d,...s,className:(0,i.Z)("tabs__item",h,s?.className,{"tabs__item--active":a===n}),children:t??n},n)})})}function g(e){let{lazy:n,children:t,selectedValue:s}=e,l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){let e=l.find(e=>e.props.value===s);return e?(0,a.cloneElement)(e,{className:(0,i.Z)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:l.map((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==s}))})}function j(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:r}=e,i=function(e){let{values:n,children:t}=e;return(0,a.useMemo)(()=>{let e=n??p(t).map(e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}});return!function(e){let n=(0,c.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[s,b]=(0,a.useState)(()=>(function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!f({value:n,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let r=t.find(e=>e.default)??t[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:n,tabValues:i})),[m,h]=function(e){let{queryString:n=!1,groupId:t}=e,r=(0,l.k6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t}),s=(0,u._X)(i);return[s,(0,a.useCallback)(e=>{if(!i)return;let n=new URLSearchParams(r.location.search);n.set(i,e),r.replace({...r.location,search:n.toString()})},[i,r])]}({queryString:t,groupId:r}),[v,g]=function(e){var n;let{groupId:t}=e;let r=(n=t)?`docusaurus.tab.${n}`:null,[i,s]=(0,d.Nk)(r);return[i,(0,a.useCallback)(e=>{if(!!r)s.set(e)},[r,s])]}({groupId:r}),j=(()=>{let e=m??v;return f({value:e,tabValues:i})?e:null})();return(0,o.Z)(()=>{j&&b(j)},[j]),{selectedValue:s,selectValue:(0,a.useCallback)(e=>{if(!f({value:e,tabValues:i}))throw Error(`Can't select invalid tab value=${e}`);b(e),h(e),g(e)},[h,g,i]),tabValues:i}}(e);return(0,r.jsxs)("div",{className:(0,i.Z)("tabs-container",m),children:[(0,r.jsx)(v,{...n,...e}),(0,r.jsx)(g,{...n,...e})]})}function x(e){let n=(0,b.Z)();return(0,r.jsx)(j,{...e,children:p(e.children)},String(n))}},50065:function(e,n,t){t.d(n,{Z:function(){return l},a:function(){return s}});var r=t(67294);let a={},i=r.createContext(a);function s(e){let n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5c7aad7f.79b06941.js b/pr-preview/pr-238/assets/js/5c7aad7f.79b06941.js new file mode 100644 index 0000000000..1a85c16be2 --- /dev/null +++ b/pr-preview/pr-238/assets/js/5c7aad7f.79b06941.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3437"],{60703:function(e,i,t){t.r(i),t.d(i,{metadata:()=>n,contentTitle:()=>a,default:()=>u,assets:()=>c,toc:()=>o,frontMatter:()=>l});var n=JSON.parse('{"id":"exercises/git/git02","title":"Git02","description":"","source":"@site/docs/exercises/git/git02.mdx","sourceDirName":"exercises/git","slug":"/exercises/git/git02","permalink":"/java-docs/pr-preview/pr-238/exercises/git/git02","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/git/git02.mdx","tags":[],"version":"current","frontMatter":{"title":"Git02","description":""},"sidebar":"exercisesSidebar","previous":{"title":"Git01","permalink":"/java-docs/pr-preview/pr-238/exercises/git/git01"},"next":{"title":"Git03","permalink":"/java-docs/pr-preview/pr-238/exercises/git/git03"}}'),s=t("85893"),r=t("50065");let l={title:"Git02",description:""},a=void 0,c={},o=[{value:"Beispielhafte Konsolenausgabe",id:"beispielhafte-konsolenausgabe",level:2}];function d(e){let i={a:"a",code:"code",h2:"h2",li:"li",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:["Installiere ",(0,s.jsx)(i.a,{href:"https://git-scm.com/downloads",children:"Git"})]}),"\n",(0,s.jsx)(i.li,{children:"Starte die Kommandozeile (z.B. Windows PowerShell)"}),"\n",(0,s.jsxs)(i.li,{children:["F\xfchre den Befehl ",(0,s.jsx)(i.code,{children:'git config --global user.name "[Dein Name]"'})," aus, um den\nBenutzernamen festzulegen"]}),"\n",(0,s.jsxs)(i.li,{children:["F\xfchre den Befehl ",(0,s.jsx)(i.code,{children:'git config --global user.email "[Deine E-Mail-Adresse]"'}),"\naus, um die E-Mail-Adresse festzulegen"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"beispielhafte-konsolenausgabe",children:"Beispielhafte Konsolenausgabe"}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-console",children:'PS C:\\Users\\Schmid> git config --global user.name "Peter Schmid"\nPS C:\\Users\\Schmid> git config --global user.email "peter.schmid@gmail.com"\nPS C:\\Users\\Schmid>\n'})})]})}function u(e={}){let{wrapper:i}={...(0,r.a)(),...e.components};return i?(0,s.jsx)(i,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},50065:function(e,i,t){t.d(i,{Z:function(){return a},a:function(){return l}});var n=t(67294);let s={},r=n.createContext(s);function l(e){let i=n.useContext(r);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),n.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5d61f13f.7fef8814.js b/pr-preview/pr-238/assets/js/5d61f13f.7fef8814.js new file mode 100644 index 0000000000..67856be291 --- /dev/null +++ b/pr-preview/pr-238/assets/js/5d61f13f.7fef8814.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7040"],{55222:function(e,n,i){i.d(n,{Z:function(){return s}});let s=i.p+"assets/images/big-o-complexity-4503eb9ed207279ffce06d4edeebcd51.png"},98582:function(e,n,i){i.d(n,{Z:function(){return t}});var s=i(85893),r=i(67294);function t(e){let{children:n,initSlides:i,width:t=null,height:l=null}=e;return(0,r.useEffect)(()=>{i()}),(0,s.jsx)("div",{className:"reveal reveal-viewport",style:{width:t??"100vw",height:l??"100vh"},children:(0,s.jsx)("div",{className:"slides",children:n})})}},57270:function(e,n,i){i.d(n,{O:function(){return s}});let s=()=>{let e=i(42199),n=i(87251),s=i(60977),r=i(12489);new(i(29197))({plugins:[e,n,s,r]}).initialize({hash:!0})}},90719:function(e,n,i){i.r(n),i.d(n,{default:function(){return a}});var s=i(85893),r=i(83012),t=i(98582),l=i(57270);function a(){return(0,s.jsxs)(t.Z,{initSlides:l.O,children:[(0,s.jsx)("section",{children:(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Agenda"}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"Intro"}),(0,s.jsx)("li",{className:"fragment",children:"Problemfelder"}),(0,s.jsx)("li",{className:"fragment",children:"Erwartungen an DSA"}),(0,s.jsx)("li",{className:"fragment",children:"Landau-Notation"}),(0,s.jsx)("li",{className:"fragment",children:"Fallbeispiel Problem"})]})]})}),(0,s.jsxs)("section",{children:[(0,s.jsx)("section",{children:(0,s.jsx)("h2",{children:"Intro"})}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Was ist ein Algorithmus?"}),(0,s.jsx)("p",{className:"fragment",children:"systematische Vorgehensweise zur L\xf6sung eines Problems"})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Charakteristika"}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{tabIndex:0,"data-tooltip":"Das Verfahren muss in einem endlichen Text eindeutig beschreibbar sein.",children:"Finitheit"}),(0,s.jsx)("li",{tabIndex:0,"data-tooltip":"Jeder Schritt des Verfahrens muss tats\xe4chlich ausf\xfchrbar sein.",children:"Ausf\xfchrbarkeit"}),(0,s.jsx)("li",{tabIndex:0,"data-tooltip":"Das Verfahren darf zu jedem Zeitpunkt nur endlich viel Speicherplatz ben\xf6tigen. (Space Complexity)",children:"Dynamische Finitheit"}),(0,s.jsx)("li",{tabIndex:0,"data-tooltip":"Das Verfahren darf nur endlich viele Schritte ben\xf6tigen. (Time Complexity)",children:"Terminierung"}),(0,s.jsx)("li",{tabIndex:0,"data-tooltip":"Der Algorithmus muss bei denselben Voraussetzungen das gleiche Ergebnis liefern.",children:"Determiniertheit"}),(0,s.jsx)("li",{tabIndex:0,"data-tooltip":"Die n\xe4chste anzuwendende Regel im Verfahren ist zu jedem Zeitpunkt eindeutig definiert.",children:"Determinismus"})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Was ist eine Datenstruktur?"}),(0,s.jsx)("p",{className:"fragment",children:"spezifische Anordung von Daten zur effizienten Verwaltung eines Problems"})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Charakteristika"}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{tabIndex:0,"data-tooltip":"Die Gr\xf6\xdfe wird zu Beginn einmalig festgelegt.",children:"statisch"}),(0,s.jsx)("li",{tabIndex:0,"data-tooltip":"Die Gr\xf6\xdfe ist ver\xe4nderbar.",children:"dynamisch"})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Kann man Datenstrukturen und Algorithmen trennen?"}),(0,s.jsx)("p",{className:"fragment",children:"Nein nur die Kombination bringt etwas."}),(0,s.jsx)("p",{className:"fragment",children:"Was bringt ein Array ohne (\xfcber)schreiben und lesen?"}),(0,s.jsx)("p",{className:"fragment",children:"Was bringt eine for-Schleife ohne Array?"})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Unsere Definition von DSA"}),(0,s.jsx)("p",{className:"fragment",children:"Ein Algorithmus (A) erzeugt, manipuliert und entfernt eine oder mehrere Datenstrukturen(DS) um ein spezifisches Problem effizient zu l\xf6sen."})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("section",{children:(0,s.jsx)("h2",{children:"Problemfelder"})}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Prozessprobleme"}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"Suche"}),(0,s.jsx)("li",{className:"fragment",children:"Sortierung"}),(0,s.jsx)("li",{className:"fragment",children:"Verarbeitung"})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Technische Probleme"}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"Zeitkomplexit\xe4t"}),(0,s.jsx)("li",{className:"fragment",children:"Speicherkomplexit\xe4t"})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Optimum"}),(0,s.jsx)("p",{className:"fragment",children:"Das Optimum kann nur f\xfcr ein Problemfeld f\xfcr ein technisches Problem gefunden werden."}),(0,s.jsx)("p",{className:"fragment",children:"Es existiert kein Allgemeiner Algorithmus, der jedes Problem in der k\xfcrzesten Zeit mit der geringsten Speichermenge l\xf6st."})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:(0,s.jsx)(r.Z,{to:"https://github.com/jappuccini/java-exercises/tree/demos/steffen/demo/java2/dsa/intro",children:"Demo - Performance von Suche und Verarbeitung"})}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"Erstellen einer HashMap & ArrayList"}),(0,s.jsx)("li",{className:"fragment",children:"Suchen in einer HashMap & ArrayList"}),(0,s.jsx)("li",{className:"fragment",children:"L\xf6schen in einer HashMap & ArrayList"})]})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("section",{children:(0,s.jsx)("h2",{children:"Erwartungen an DSA"})}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Inhalte"}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"Grundlegende Praktikable Datenstrukturen"}),(0,s.jsx)("li",{className:"fragment",children:"Worst Case Szenario"}),(0,s.jsx)("li",{className:"fragment",children:"keine Beweise"}),(0,s.jsx)("li",{"data-tooltip":"IMHO!",tabIndex:0,className:"fragment",children:"kaum Coding (von euch, da Projektbericht)"}),(0,s.jsx)("li",{className:"fragment",children:"Einstieg in das Themengebiet"})]})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Landaunotation"}),(0,s.jsx)("p",{className:"foot-note",children:"wird auch Big-O Notation genannt"})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Landaunotation (Big-O)"}),(0,s.jsx)("p",{className:"fragment",children:"wird verwendet um Algorithmen in Bezug auf Speicher- und Zeitanforderungen zu kategorisieren."}),(0,s.jsx)("p",{className:"fragment",children:"ist keine exakte Messung, sondern soll das Wachstum des Algorithmus generalisieren."})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Warum brauchen Big-O?"}),(0,s.jsx)("p",{children:"Wenn wir wissen, welche St\xe4rken und Schw\xe4chen ein Algorithmus hat, k\xf6nnen wie den besten Algorithmus f\xfcr unser Problem nutzen."}),(0,s.jsx)("p",{className:"foot-note",children:"Ich benutz immer Big-O zum erkl\xe4ren"})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Was ist Big-O?"}),(0,s.jsxs)("p",{children:["gibt an in welchem Verh\xe4ltnis ein Algorithmus abh\xe4ngig vom"," ",(0,s.jsx)("b",{children:"input"})," in Bezug auf Laufzeit und Speicher w\xe4chst"]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Beispiel f\xfcr Big-O"}),(0,s.jsx)("p",{children:"O(N)"}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{className:"fragment",children:"10 Elemente entspricht 10 Zeiteinheiten"}),(0,s.jsx)("li",{className:"fragment",children:"20 Elemente entspricht 20 Zeiteinheiten"})]})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Beispiel f\xfcr Big-O"}),(0,s.jsx)("pre",{children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class BigO {\n // O(N)\n public static void method(int[] n) {\n int sum = 0;\n for(int i = 0; i > n.length; i++) {\n sum += n[i];\n }\n return sum;\n }\n}\n"}})}),(0,s.jsx)("p",{className:"fragment",children:"Jahresgehalt eines Mitarbeiters"})]}),(0,s.jsx)("section",{"data-background-size":"contain","data-background-image":i(55222).Z}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Beispiel f\xfcr Big-O"}),(0,s.jsx)("pre",{children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class BigO {\n // O(N²)\n public static void method(int[] n) {\n int sum = 0;\n for(int i = 0; i > n.length; i++) {\n for(int j = 0; j > n.length; j++) {\n sum += n[j];\n }\n }\n return sum;\n }\n}\n"}})}),(0,s.jsx)("p",{className:"fragment",children:"Jahresgehalt jedes Mitarbeiters einer Abteilung"})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Beispiel f\xfcr Big-O"}),(0,s.jsx)("pre",{children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class BigO {\n // O(N³)\n public static void method(int[] n) {\n int sum = 0;\n for(int i = 0; i > n.length; i++) {\n for(int j = 0; j > n.length; j++) {\n for(int k = 0; k > n.length; k++) {\n sum += n[k];\n }\n }\n }\n return sum;\n }\n}\n"}})}),(0,s.jsx)("p",{className:"fragment",children:"Jahresgehalt jedes Mitarbeiters jeder Abteilung"})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Big-O von diesem Code?"}),(0,s.jsx)("pre",{children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class BigO {\n public static void method(int[] n) {\n int sum = 0;\n for(int i = 0; i > n.length; i++) {\n sum += n[i];\n }\n for(int i = 0; i > n.length; i++) {\n sum += n[i];\n }\n return sum;\n }\n}\n"}})}),(0,s.jsx)("p",{className:"fragment",children:"praktisch: O(2N) \u2192 O(N)"})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Warum O(N) anstatt O(2N)"}),(0,s.jsxs)("table",{children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{children:"N"}),(0,s.jsx)("th",{children:"O(10N)"}),(0,s.jsx)("th",{children:"O(N\xb2)"})]})}),(0,s.jsxs)("tbody",{children:[(0,s.jsxs)("tr",{className:"fragment",children:[(0,s.jsx)("td",{children:"1"}),(0,s.jsx)("td",{children:"10"}),(0,s.jsx)("td",{children:"1"})]}),(0,s.jsxs)("tr",{className:"fragment",children:[(0,s.jsx)("td",{children:"5"}),(0,s.jsx)("td",{children:"50"}),(0,s.jsx)("td",{children:"25"})]}),(0,s.jsxs)("tr",{className:"fragment",children:[(0,s.jsx)("td",{children:"100"}),(0,s.jsx)("td",{children:"1000"}),(0,s.jsx)("td",{children:"10.000"})]}),(0,s.jsxs)("tr",{className:"fragment",children:[(0,s.jsx)("td",{children:"1000"}),(0,s.jsx)("td",{children:"10.000"}),(0,s.jsx)("td",{children:"1.000.000"})]}),(0,s.jsxs)("tr",{className:"fragment",children:[(0,s.jsx)("td",{children:"10.000"}),(0,s.jsx)("td",{children:"100.000"}),(0,s.jsx)("td",{children:"100.000.000"})]})]})]}),(0,s.jsx)("p",{className:"fragment",children:"Konstanten k\xf6nnen ignoriert werden."})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Big-O von diesem Code?"}),(0,s.jsx)("pre",{children:(0,s.jsx)("code",{className:"java",dangerouslySetInnerHTML:{__html:"public class BigO {\n public static void method(int[] n) {\n int sum = 0;\n for(int i = 0; i > n.length; i++) {\n if(sum > 9876) {\n return sum;\n }\n sum += n[i];\n }\n return sum;\n }\n}\n"}})}),(0,s.jsx)("p",{className:"fragment",children:"O(N) \u2192 Worst-Case-Szenario"})]}),(0,s.jsxs)("section",{children:[(0,s.jsx)("h2",{children:"Unsere Regeln"}),(0,s.jsxs)("ul",{children:[(0,s.jsx)("li",{children:"Wachstum ist abh\xe4ngig vom Input"}),(0,s.jsx)("li",{children:"Konstanten werden ignoriert"}),(0,s.jsx)("li",{children:"Worst-Case ist unser default"})]})]})]}),(0,s.jsx)("section",{children:(0,s.jsx)("h2",{children:"Fallbeispiel Problem"})})]})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5e3d1e57.a48968ac.js b/pr-preview/pr-238/assets/js/5e3d1e57.a48968ac.js new file mode 100644 index 0000000000..a9284d5e10 --- /dev/null +++ b/pr-preview/pr-238/assets/js/5e3d1e57.a48968ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7596"],{67159:function(e,n,s){s.r(n),s.d(n,{metadata:()=>a,contentTitle:()=>l,default:()=>p,assets:()=>d,toc:()=>o,frontMatter:()=>t});var a=JSON.parse('{"id":"exam-exercises/exam-exercises-java2/class-diagrams/player","title":"Kartenspieler","description":"","source":"@site/docs/exam-exercises/exam-exercises-java2/class-diagrams/player.md","sourceDirName":"exam-exercises/exam-exercises-java2/class-diagrams","slug":"/exam-exercises/exam-exercises-java2/class-diagrams/player","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/player","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java2/class-diagrams/player.md","tags":[{"inline":true,"label":"exceptions","permalink":"/java-docs/pr-preview/pr-238/tags/exceptions"},{"inline":true,"label":"records","permalink":"/java-docs/pr-preview/pr-238/tags/records"},{"inline":true,"label":"maps","permalink":"/java-docs/pr-preview/pr-238/tags/maps"},{"inline":true,"label":"optionals","permalink":"/java-docs/pr-preview/pr-238/tags/optionals"}],"version":"current","frontMatter":{"title":"Kartenspieler","description":"","tags":["exceptions","records","maps","optionals"]},"sidebar":"examExercisesSidebar","previous":{"title":"Bibliothek","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/library"},"next":{"title":"Einkaufsportal","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal"}}'),i=s("85893"),r=s("50065");let t={title:"Kartenspieler",description:"",tags:["exceptions","records","maps","optionals"]},l=void 0,d={},o=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Allgemeine Hinweise",id:"allgemeine-hinweise",level:2},{value:"Hinweis zur Klasse <em>Player</em>",id:"hinweis-zur-klasse-player",level:2}];function c(e){let n={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"Setze das abgebildete Klassendiagramm vollst\xe4ndig um. Erstelle zum Testen eine\nausf\xfchrbare Klasse und/oder eine Testklasse."}),"\n",(0,i.jsx)(n.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,i.jsx)(n.mermaid,{value:"classDiagram\n\n Player ..> CardNotFoundException: throws\n Player ..> NotEnoughActionPointsException: throws\n Player o-- Card\n\n class Card {\n <<record>>\n description: String\n costs: int\n power: int\n }\n\n class Player {\n -name: String #123;final#125;\n -handCards: List~Card~ #123;final#125;\n -playedCards: Map~Card, Integer~ #123;final#125;\n -actionPoints: int\n +Player(name: String, handCards: List~Card~, playedCards: Map~Card, Integer~)\n +getActionPoints() int\n +getHandCards() List~Card~\n +getName() String\n +getPlayedCards() Map~Card, Integer~\n +getMostPowerfulCardByRow(row: int) Optional~Card~\n +playCard(card: Card, row: int) void\n +setActionPoints(int: actionPoints) void\n }\n\n class NotEnoughActionPointsException {\n <<exception>>\n }\n\n class CardNotFoundException {\n <<exception>>\n }"}),"\n",(0,i.jsx)(n.h2,{id:"allgemeine-hinweise",children:"Allgemeine Hinweise"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Aus Gr\xfcnden der \xdcbersicht werden im Klassendiagramm keine Getter und\nObject-Methoden dargestellt"}),"\n",(0,i.jsx)(n.li,{children:"So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die\nObject-Methoden wie gewohnt implementiert werden"}),"\n"]}),"\n",(0,i.jsxs)(n.h2,{id:"hinweis-zur-klasse-player",children:["Hinweis zur Klasse ",(0,i.jsx)(n.em,{children:"Player"})]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Die Schl\xfcssel-Werte-Paare des Assoziativspeichers beinhalten als Schl\xfcssel die\nausgespielten Karten des Spielers sowie als Wert deren Reihe"}),"\n",(0,i.jsxs)(n.li,{children:["Die Methode ",(0,i.jsx)(n.code,{children:"void playCard(card: Card, row: int)"})," soll die eingehende Karte\nausspielen. Beim Ausspielen einer Karte soll diese aus den Handkarten entfernt\nund den ausgespielten Karten hinzugef\xfcgt werden. Zudem sollen die\nAktionspunkte des Spielers um die Kosten der Karte reduziert werden. F\xfcr den\nFall, dass die Karte nicht Teil der Handkarten ist, soll die Ausnahme\n",(0,i.jsx)(n.code,{children:"CardNotFoundException"})," ausgel\xf6st werden und f\xfcr den Fall, dass die\nAktionspunkte des Spielers nicht ausreichen, die Ausnahme\n",(0,i.jsx)(n.code,{children:"NotEnoughActionPointsException"})]}),"\n",(0,i.jsxs)(n.li,{children:["Die Methode ",(0,i.jsx)(n.code,{children:"Optional<Card> getMostPowerfulCardByRow(row: int)"})," soll die\nst\xe4rkste ausgespielte Karte der eingehenden Reihe zur\xfcckgeben"]}),"\n"]})]})}function p(e={}){let{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},50065:function(e,n,s){s.d(n,{Z:function(){return l},a:function(){return t}});var a=s(67294);let i={},r=a.createContext(i);function t(e){let n=a.useContext(r);return a.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),a.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5e761421.7a602547.js b/pr-preview/pr-238/assets/js/5e761421.7a602547.js new file mode 100644 index 0000000000..2265f23ccc --- /dev/null +++ b/pr-preview/pr-238/assets/js/5e761421.7a602547.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8162"],{53283:function(e,n,i){i.r(n),i.d(n,{metadata:()=>r,contentTitle:()=>l,default:()=>u,assets:()=>d,toc:()=>o,frontMatter:()=>s});var r=JSON.parse('{"id":"documentation/arrays","title":"Felder (Arrays)","description":"","source":"@site/docs/documentation/arrays.md","sourceDirName":"documentation","slug":"/documentation/arrays","permalink":"/java-docs/pr-preview/pr-238/documentation/arrays","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/arrays.md","tags":[{"inline":true,"label":"arrays","permalink":"/java-docs/pr-preview/pr-238/tags/arrays"}],"version":"current","sidebarPosition":110,"frontMatter":{"title":"Felder (Arrays)","description":"","sidebar_position":110,"tags":["arrays"]},"sidebar":"documentationSidebar","previous":{"title":"Schleifen","permalink":"/java-docs/pr-preview/pr-238/documentation/loops"},"next":{"title":"Feldbasierte Listen (ArrayLists)","permalink":"/java-docs/pr-preview/pr-238/documentation/array-lists"}}'),t=i("85893"),a=i("50065");let s={title:"Felder (Arrays)",description:"",sidebar_position:110,tags:["arrays"]},l=void 0,d={},o=[{value:"Erzeugen von Feldern",id:"erzeugen-von-feldern",level:2},{value:"Zugriff auf Feldelemente",id:"zugriff-auf-feldelemente",level:2},{value:"Der Parameter <em>String[] args</em>",id:"der-parameter-string-args",level:2},{value:"Variable Argumentlisten (VarArgs)",id:"variable-argumentlisten-varargs",level:2}];function c(e){let n={admonition:"admonition",code:"code",em:"em",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["Wenn eine gro\xdfe Menge an Daten verarbeitet werden soll, kann man auf spezielle\nDatenstruktur-Variablen, sogenannte ",(0,t.jsx)(n.em,{children:"Felder"})," (Arrays), zur\xfcckgreifen. Die\neinzelnen Speicherpl\xe4tze in einem Feld werden als Elemente bezeichnet, die \xfcber\neinen Index angesprochen werden k\xf6nnen."]}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"0"}),(0,t.jsx)(n.th,{children:"1"}),(0,t.jsx)(n.th,{children:"2"}),(0,t.jsx)(n.th,{children:"3"}),(0,t.jsx)(n.th,{children:"4"})]})}),(0,t.jsx)(n.tbody,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"Hans"}),(0,t.jsx)(n.td,{children:"Peter"}),(0,t.jsx)(n.td,{children:"Lisa"}),(0,t.jsx)(n.td,{children:"Max"}),(0,t.jsx)(n.td,{children:"Heidi"})]})})]}),"\n",(0,t.jsx)(n.h2,{id:"erzeugen-von-feldern",children:"Erzeugen von Feldern"}),"\n",(0,t.jsxs)(n.p,{children:["Da es sich bei Feldern um Objekte handelt, m\xfcssen diese vor Verwendung erzeugt\nwerden. Bei der Erzeugung muss immer die L\xe4nge des Feldes (d.h. die Anzahl der\nElemente) angegeben werden. Jedes Feld verf\xfcgt \xfcber das Attribut ",(0,t.jsx)(n.code,{children:"length"}),",\nwelches die L\xe4nge des Feldes enth\xe4lt."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:"public class MainClass {\n\n public static void main(String[] args) {\n int[] ids = new int[5];\n System.out.println(Arrays.toString(ids));\n int[] ids2 = {4, 8, 15, 16, 23, 42};\n System.out.println(Arrays.toString(ids2));\n }\n\n}\n"})}),"\n",(0,t.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,t.jsx)(n.p,{children:"Felder werden zwar mit Hilfe des new-Operators erzeugt, besitzen aber keinen\nKonstruktor."})}),"\n",(0,t.jsx)(n.h2,{id:"zugriff-auf-feldelemente",children:"Zugriff auf Feldelemente"}),"\n",(0,t.jsx)(n.p,{children:"Der Zugriff auf die Elemente eines Feldes erfolgt \xfcber die Angabe des\nentsprechenden Index."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:"public class MainClass {\n\n public static void main(String[] args) {\n int[] ids = {4, 8, 15, 16, 23, 42};\n\n for (int i = 0; i < ids.length; i++) {\n System.out.println(ids[i]);\n }\n }\n\n}\n"})}),"\n",(0,t.jsx)(n.admonition,{title:"Hinweis",type:"danger",children:(0,t.jsx)(n.p,{children:"Der Index beginnt bei Java bei 0."})}),"\n",(0,t.jsxs)(n.h2,{id:"der-parameter-string-args",children:["Der Parameter ",(0,t.jsx)(n.em,{children:"String[] args"})]}),"\n",(0,t.jsxs)(n.p,{children:["Der Parameter ",(0,t.jsx)(n.code,{children:"String[] args"})," der main-Methode erm\xf6glicht es dem Anwender, der\nausf\xfchrbaren Klasse beim Aufruf Informationen mitzugeben."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n for (int i = 0; i < args.length; i++) {\n System.out.println("args[" + i + "]: " + args[i]);\n }\n }\n\n}\n'})}),"\n",(0,t.jsx)(n.h2,{id:"variable-argumentlisten-varargs",children:"Variable Argumentlisten (VarArgs)"}),"\n",(0,t.jsx)(n.p,{children:"Variable Argumentlisten (VarArgs) erm\xf6glichen die Definition von Methoden, denen\nbeliebig viele Werte eines Datentyps mitgegeben werden k\xf6nnen. Die\nParameterliste einer Methode kann allerdings nur eine variable Argumentliste\nbeinhalten und diese muss immer am Ende der Parameterliste stehen."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n printAll("Peter", "Lisa");\n printAll("Heidi", "Franz", "Fritz");\n }\n\n public static void printAll(String... texts) {\n for (int i = 0; i < texts.length; i++) {\n System.out.println(texts[i]);\n }\n }\n\n}\n'})}),"\n",(0,t.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,t.jsx)(n.p,{children:"Technisch gesehen handelt es sich bei einer variablen Argumentliste um ein Feld."})})]})}function u(e={}){let{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},50065:function(e,n,i){i.d(n,{Z:function(){return l},a:function(){return s}});var r=i(67294);let t={},a=r.createContext(t);function s(e){let n=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5e95c892.a0955795.js b/pr-preview/pr-238/assets/js/5e95c892.a0955795.js new file mode 100644 index 0000000000..c98c89ee28 --- /dev/null +++ b/pr-preview/pr-238/assets/js/5e95c892.a0955795.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3432"],{71359:function(e,r,s){s.r(r),s.d(r,{default:function(){return d}});var a=s(85893);s(67294);var c=s(67026),n=s(14713),u=s(84681),t=s(18790),o=s(5836);function d(e){return(0,a.jsx)(n.FG,{className:(0,c.Z)(u.k.wrapper.docsPages),children:(0,a.jsx)(o.Z,{children:(0,t.H)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5eae6ed2.62ce6d0c.js b/pr-preview/pr-238/assets/js/5eae6ed2.62ce6d0c.js new file mode 100644 index 0000000000..677794f447 --- /dev/null +++ b/pr-preview/pr-238/assets/js/5eae6ed2.62ce6d0c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["1858"],{59722:function(e,t,a){a.r(t),a.d(t,{metadata:()=>r,contentTitle:()=>o,default:()=>m,assets:()=>c,toc:()=>d,frontMatter:()=>u});var r=JSON.parse('{"id":"additional-material/daniel/java2/exam-results","title":"Klausurergebnisse","description":"","source":"@site/docs/additional-material/daniel/java2/exam-results.md","sourceDirName":"additional-material/daniel/java2","slug":"/additional-material/daniel/java2/exam-results","permalink":"/java-docs/pr-preview/pr-238/additional-material/daniel/java2/exam-results","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/additional-material/daniel/java2/exam-results.md","tags":[],"version":"current","sidebarPosition":20,"frontMatter":{"title":"Klausurergebnisse","description":"","sidebar_position":20,"tags":[]},"sidebar":"additionalMaterialSidebar","previous":{"title":"Klausur","permalink":"/java-docs/pr-preview/pr-238/additional-material/daniel/java2/sample-exam"},"next":{"title":"Steffen","permalink":"/java-docs/pr-preview/pr-238/additional-material/steffen/"}}'),n=a("85893"),l=a("50065"),i=a("47902"),s=a("5525");let u={title:"Klausurergebnisse",description:"",sidebar_position:20,tags:[]},o=void 0,c={},d=[];function f(e){let t={li:"li",mermaid:"mermaid",ul:"ul",...(0,l.a)(),...e.components};return(0,n.jsxs)(i.Z,{children:[(0,n.jsxs)(s.Z,{value:"wwibe23",label:"Klausur Q3 2024 (WWIBE23)",default:!0,children:[(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Punkteschnitt: 36 von 50"}),"\n",(0,n.jsx)(t.li,{children:"Durchfallquote: 22%"}),"\n"]}),(0,n.jsx)(t.mermaid,{value:'xychart-beta\n title "Verteilung"\n x-axis "Punkte" ["40-50", "30-49", "20-29", "10-19", "0-9"]\n y-axis "Studierende (%)" 0 --\x3e 50\n bar [52, 14, 17, 13, 3]'})]}),(0,n.jsxs)(s.Z,{value:"wwibe22",label:"Klausur Q2 2023 (WWIBE22)",children:[(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Punkteschnitt: 29 von 50"}),"\n",(0,n.jsx)(t.li,{children:"Durchfallquote: 38%"}),"\n"]}),(0,n.jsx)(t.mermaid,{value:'xychart-beta\n title "Verteilung"\n x-axis "Punkte" ["40-50", "30-49", "20-29", "10-19", "0-9"]\n y-axis "Studierende (%)" 0 --\x3e 50\n bar [35, 16, 19, 16, 14]'})]}),(0,n.jsxs)(s.Z,{value:"wwibe21",label:"Klausur Q3 2022 (WWIBE21)",children:[(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Punkteschnitt: 26 von 50"}),"\n",(0,n.jsx)(t.li,{children:"Durchfallquote: 41%"}),"\n"]}),(0,n.jsx)(t.mermaid,{value:'xychart-beta\n title "Verteilung"\n x-axis "Punkte" ["40-50", "30-49", "20-29", "10-19", "0-9"]\n y-axis "Studierende (%)" 0 --\x3e 50\n bar [24, 16, 27, 13, 19]'})]})]})}function m(e={}){let{wrapper:t}={...(0,l.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(f,{...e})}):f(e)}},5525:function(e,t,a){a.d(t,{Z:()=>i});var r=a("85893");a("67294");var n=a("67026");let l="tabItem_Ymn6";function i(e){let{children:t,hidden:a,className:i}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,n.Z)(l,i),hidden:a,children:t})}},47902:function(e,t,a){a.d(t,{Z:()=>g});var r=a("85893"),n=a("67294"),l=a("67026"),i=a("69599"),s=a("16550"),u=a("32000"),o=a("4520"),c=a("38341"),d=a("76009");function f(e){return n.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||n.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})?.filter(Boolean)??[]}function m(e){let{value:t,tabValues:a}=e;return a.some(e=>e.value===t)}var p=a("7227");let h="tabList__CuJ",v="tabItem_LNqP";function b(e){let{className:t,block:a,selectedValue:n,selectValue:s,tabValues:u}=e,o=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.o5)(),d=e=>{let t=e.currentTarget,a=u[o.indexOf(t)].value;a!==n&&(c(t),s(a))},f=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let a=o.indexOf(e.currentTarget)+1;t=o[a]??o[0];break}case"ArrowLeft":{let a=o.indexOf(e.currentTarget)-1;t=o[a]??o[o.length-1]}}t?.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.Z)("tabs",{"tabs--block":a},t),children:u.map(e=>{let{value:t,label:a,attributes:i}=e;return(0,r.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>o.push(e),onKeyDown:f,onClick:d,...i,className:(0,l.Z)("tabs__item",v,i?.className,{"tabs__item--active":n===t}),children:a??t},t)})})}function x(e){let{lazy:t,children:a,selectedValue:i}=e,s=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){let e=s.find(e=>e.props.value===i);return e?(0,n.cloneElement)(e,{className:(0,l.Z)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:s.map((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==i}))})}function j(e){let t=function(e){let{defaultValue:t,queryString:a=!1,groupId:r}=e,l=function(e){let{values:t,children:a}=e;return(0,n.useMemo)(()=>{let e=t??f(a).map(e=>{let{props:{value:t,label:a,attributes:r,default:n}}=e;return{value:t,label:a,attributes:r,default:n}});return!function(e){let t=(0,c.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,a])}(e),[i,p]=(0,n.useState)(()=>(function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:a}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let r=a.find(e=>e.default)??a[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:t,tabValues:l})),[h,v]=function(e){let{queryString:t=!1,groupId:a}=e,r=(0,s.k6)(),l=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a}),i=(0,o._X)(l);return[i,(0,n.useCallback)(e=>{if(!l)return;let t=new URLSearchParams(r.location.search);t.set(l,e),r.replace({...r.location,search:t.toString()})},[l,r])]}({queryString:a,groupId:r}),[b,x]=function(e){var t;let{groupId:a}=e;let r=(t=a)?`docusaurus.tab.${t}`:null,[l,i]=(0,d.Nk)(r);return[l,(0,n.useCallback)(e=>{if(!!r)i.set(e)},[r,i])]}({groupId:r}),j=(()=>{let e=h??b;return m({value:e,tabValues:l})?e:null})();return(0,u.Z)(()=>{j&&p(j)},[j]),{selectedValue:i,selectValue:(0,n.useCallback)(e=>{if(!m({value:e,tabValues:l}))throw Error(`Can't select invalid tab value=${e}`);p(e),v(e),x(e)},[v,x,l]),tabValues:l}}(e);return(0,r.jsxs)("div",{className:(0,l.Z)("tabs-container",h),children:[(0,r.jsx)(b,{...t,...e}),(0,r.jsx)(x,{...t,...e})]})}function g(e){let t=(0,p.Z)();return(0,r.jsx)(j,{...e,children:f(e.children)},String(t))}},50065:function(e,t,a){a.d(t,{Z:function(){return s},a:function(){return i}});var r=a(67294);let n={},l=r.createContext(n);function i(e){let t=r.useContext(l);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),r.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/5fd8616e.eb73cfbd.js b/pr-preview/pr-238/assets/js/5fd8616e.eb73cfbd.js new file mode 100644 index 0000000000..9065c2aece --- /dev/null +++ b/pr-preview/pr-238/assets/js/5fd8616e.eb73cfbd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["3643"],{24949:function(e){e.exports=JSON.parse('{"tag":{"label":"object","permalink":"/java-docs/pr-preview/pr-238/tags/object","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":1,"items":[{"id":"documentation/object","title":"Die Mutter aller Klassen","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/object"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/6211.75ce3dd4.js b/pr-preview/pr-238/assets/js/6211.75ce3dd4.js new file mode 100644 index 0000000000..4ba7f5cb28 --- /dev/null +++ b/pr-preview/pr-238/assets/js/6211.75ce3dd4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["6211"],{58446:function(e,t,n){function r(e){return(r="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)}function i(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var a=[],o=!0,s=!1;try{for(i=i.call(e);!(o=(n=i.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{!o&&null!=i.return&&i.return()}finally{if(s)throw r}}return a}}(e,t)||u(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}n.d(t,{Z:function(){return lD}});function u(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function h(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=u(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{!o&&null!=n.return&&n.return()}finally{if(s)throw a}}}}var d,p,f,g,v,y,b="undefined"==typeof window?null:window,x=b?b.navigator:null;b&&b.document;var w=r(""),E=r({}),k=r(function(){}),C="undefined"==typeof HTMLElement?"undefined":r(HTMLElement),S=function(e){return e&&e.instanceString&&T(e.instanceString)?e.instanceString():null},D=function(e){return null!=e&&r(e)==w},T=function(e){return null!=e&&r(e)===k},P=function(e){return!A(e)&&(Array.isArray?Array.isArray(e):null!=e&&e instanceof Array)},_=function(e){return null!=e&&r(e)===E&&!P(e)&&e.constructor===Object},M=function(e){return null!=e&&r(e)===r(1)&&!isNaN(e)},B=function(e){if("undefined"!==C)return null!=e&&e instanceof HTMLElement},A=function(e){return N(e)||I(e)},N=function(e){return"collection"===S(e)&&e._private.single},I=function(e){return"collection"===S(e)&&!e._private.single},O=function(e){return"core"===S(e)},L=function(e){return"stylesheet"===S(e)},R=function(e){return null==e||!!(""===e||e.match(/^\s+$/))||!1},z=function(e){var t;return null!=(t=e)&&r(t)===E&&T(e.then)},V=function(e,t){!t&&(t=function(){if(1==arguments.length)return arguments[0];if(0==arguments.length)return"undefined";for(var e=[],t=0;t<arguments.length;t++)e.push(arguments[t]);return e.join("$")});var n=function n(){var r,i=arguments,a=t.apply(this,i),o=n.cache;return!(r=o[a])&&(r=o[a]=e.apply(this,i)),r};return n.cache={},n},F=V(function(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})}),j=V(function(e){return e.replace(/(-\w)/g,function(e){return e[1].toUpperCase()})}),q=V(function(e,t){return e+t[0].toUpperCase()+t.substring(1)},function(e,t){return e+"$"+t}),X=function(e){return R(e)?e:e.charAt(0).toUpperCase()+e.substring(1)},Y="(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))",W="rgb[a]?\\(("+Y+"[%]?)\\s*,\\s*("+Y+"[%]?)\\s*,\\s*("+Y+"[%]?)(?:\\s*,\\s*("+Y+"))?\\)",H="rgb[a]?\\((?:"+Y+"[%]?)\\s*,\\s*(?:"+Y+"[%]?)\\s*,\\s*(?:"+Y+"[%]?)(?:\\s*,\\s*(?:"+Y+"))?\\)",G="hsl[a]?\\(("+Y+")\\s*,\\s*("+Y+"[%])\\s*,\\s*("+Y+"[%])(?:\\s*,\\s*("+Y+"))?\\)",U="hsl[a]?\\((?:"+Y+")\\s*,\\s*(?:"+Y+"[%])\\s*,\\s*(?:"+Y+"[%])(?:\\s*,\\s*(?:"+Y+"))?\\)",K=function(e,t){return e<t?-1:e>t?1:0},Z=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments,n=1;n<t.length;n++){var r=t[n];if(null!=r)for(var i=Object.keys(r),a=0;a<i.length;a++){var o=i[a];e[o]=r[o]}}return e},$=function(e){if(!!(4===e.length||7===e.length)&&"#"===e[0]){var t,n,r,i=4===e.length;return i?(t=parseInt(e[1]+e[1],16),n=parseInt(e[2]+e[2],16),r=parseInt(e[3]+e[3],16)):(t=parseInt(e[1]+e[2],16),n=parseInt(e[3]+e[4],16),r=parseInt(e[5]+e[6],16)),[t,n,r]}},Q=function(e){function t(e,t,n){return(n<0&&(n+=1),n>1&&(n-=1),n<1/6)?e+(t-e)*6*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var n,r,i,a,o,s,l,u,c=RegExp("^"+G+"$").exec(e);if(c){if((r=parseInt(c[1]))<0?r=(360- -1*r%360)%360:r>360&&(r%=360),r/=360,(i=parseFloat(c[2]))<0||i>100)return;if(i/=100,(a=parseFloat(c[3]))<0||a>100)return;if(a/=100,void 0!==(o=c[4])&&((o=parseFloat(o))<0||o>1))return;if(0===i)s=l=u=Math.round(255*a);else{var h=a<.5?a*(1+i):a+i-a*i,d=2*a-h;s=Math.round(255*t(d,h,r+1/3)),l=Math.round(255*t(d,h,r)),u=Math.round(255*t(d,h,r-1/3))}n=[s,l,u,o]}return n},J=function(e){var t,n=RegExp("^"+W+"$").exec(e);if(n){t=[];for(var r=[],i=1;i<=3;i++){var a=n[i];if("%"===a[a.length-1]&&(r[i]=!0),a=parseFloat(a),r[i]&&(a=a/100*255),a<0||a>255)return;t.push(Math.floor(a))}var o=r[1]||r[2]||r[3],s=r[1]&&r[2]&&r[3];if(o&&!s)return;var l=n[4];if(void 0!==l){if((l=parseFloat(l))<0||l>1)return;t.push(l)}}return t},ee=function(e){return(P(e)?e:null)||et[e.toLowerCase()]||$(e)||J(e)||Q(e)},et={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},en=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i<r;i++){var a=n[i];if(_(a))throw Error("Tried to set map with object key");i<n.length-1?(null==t[a]&&(t[a]={}),t=t[a]):t[a]=e.value}},er=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i<r;i++){var a=n[i];if(_(a))throw Error("Tried to get map with object key");if(null==(t=t[a]))break}return t},ei=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},ea="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},eo="object"==typeof ea&&ea&&ea.Object===Object&&ea,es="object"==typeof self&&self&&self.Object===Object&&self,el=eo||es||Function("return this")(),eu=function(){return el.Date.now()},ec=/\s/,eh=function(e){for(var t=e.length;t--&&ec.test(e.charAt(t)););return t},ed=/^\s+/,ep=el.Symbol,ef=Object.prototype,eg=ef.hasOwnProperty,ev=ef.toString,ey=ep?ep.toStringTag:void 0,em=function(e){var t=eg.call(e,ey),n=e[ey];try{e[ey]=void 0;var r=!0}catch(e){}var i=ev.call(e);return r&&(t?e[ey]=n:delete e[ey]),i},eb=Object.prototype.toString,ex=ep?ep.toStringTag:void 0,ew=function(e){var t;if(null==e)return void 0===e?"[object Undefined]":"[object Null]";return ex&&ex in Object(e)?em(e):(t=e,eb.call(t))},eE=function(e){var t;return"symbol"==typeof e||null!=(t=e)&&"object"==typeof t&&"[object Symbol]"==ew(e)},ek=0/0,eC=/^[-+]0x[0-9a-f]+$/i,eS=/^0b[01]+$/i,eD=/^0o[0-7]+$/i,eT=parseInt,eP=function(e){if("number"==typeof e)return e;if(eE(e))return ek;if(ei(e)){var t,n="function"==typeof e.valueOf?e.valueOf():e;e=ei(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=(t=e)?t.slice(0,eh(t)+1).replace(ed,""):t;var r=eS.test(e);return r||eD.test(e)?eT(e.slice(2),r?2:8):eC.test(e)?ek:+e},e_=Math.max,eM=Math.min,eB=function(e,t,n){var r,i,a,o,s,l,u=0,c=!1,h=!1,d=!0;if("function"!=typeof e)throw TypeError("Expected a function");function p(t){var n=r,a=i;return r=i=void 0,u=t,o=e.apply(a,n)}t=eP(t)||0,ei(n)&&(c=!!n.leading,a=(h="maxWait"in n)?e_(eP(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d);function f(e){var n=e-l,r=e-u;return void 0===l||n>=t||n<0||h&&r>=a}function g(){var e,n,r,i,o=eu();if(f(o))return v(o);s=setTimeout(g,(n=(e=o)-l,r=e-u,i=t-n,h?eM(i,a-r):i))}function v(e){return(s=void 0,d&&r)?p(e):(r=i=void 0,o)}function y(){var e,n=eu(),a=f(n);if(r=arguments,i=this,l=n,a){if(void 0===s){;return u=e=l,s=setTimeout(g,t),c?p(e):o}if(h)return clearTimeout(s),s=setTimeout(g,t),p(l)}return void 0===s&&(s=setTimeout(g,t)),o}return y.cancel=function(){void 0!==s&&clearTimeout(s),u=0,r=l=i=s=void 0},y.flush=function(){return void 0===s?o:v(eu())},y},eA=b?b.performance:null,eN=eA&&eA.now?function(){return eA.now()}:function(){return Date.now()},eI=function(){if(b){if(b.requestAnimationFrame)return function(e){b.requestAnimationFrame(e)};if(b.mozRequestAnimationFrame)return function(e){b.mozRequestAnimationFrame(e)};else if(b.webkitRequestAnimationFrame)return function(e){b.webkitRequestAnimationFrame(e)};else if(b.msRequestAnimationFrame)return function(e){b.msRequestAnimationFrame(e)}}return function(e){e&&setTimeout(function(){e(eN())},1e3/60)}}(),eO=function(e){return eI(e)},eL=function(e){for(var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9261,r=n;!(t=e.next()).done;){;r=65599*r+t.value|0}return r},eR=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9261;return 65599*t+e|0},ez=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5381;return(t<<5)+t+e|0},eV=function(e){return 2097152*e[0]+e[1]},eF=function(e,t){return[eR(e[0],t[0]),ez(e[1],t[1])]},ej=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return eL({next:function(){return r<i?n.value=e[r++]:n.done=!0,n}},t)},eq=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return eL({next:function(){return r<i?n.value=e.charCodeAt(r++):n.done=!0,n}},t)},eX=function(){return eY(arguments)},eY=function(e){for(var t,n=0;n<e.length;n++){var r=e[n];t=0===n?eq(r):eq(r,t)}return t},eW=!0,eH=null!=console.warn,eG=null!=console.trace,eU=Number.MAX_SAFE_INTEGER||0x1fffffffffffff,eK=function(){return!0},eZ=function(){return!1},e$=function(){return 0},eQ=function(){},eJ=function(e){throw Error(e)},e0=function(e){if(void 0===e)return eW;eW=!!e},e1=function(e){if(!!e0())eH?console.warn(e):(console.log(e),eG&&console.trace())},e2=function(e){if(null==e)return e;if(P(e))return e.slice();if(!_(e))return e;return Z({},e)},e5=function(e,t){for(t=e="";e++<36;t+=51*e&52?(15^e?8^Math.random()*(20^e?16:4):4).toString(16):"-");return t},e3={},e4=function(){return e3},e9=function(e){var t=Object.keys(e);return function(n){for(var r={},i=0;i<t.length;i++){var a=t[i],o=null==n?void 0:n[a];r[a]=void 0===o?e[a]:o}return r}},e6=function(e,t,n){for(var r=e.length-1;r>=0&&(e[r]!==t||(e.splice(r,1),!n));r--);},e8=function(e){e.splice(0,e.length)},e7=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.push(r)}},te=function(e,t,n){return n&&(t=q(n,t)),e[t]},tt=function(e,t,n,r){n&&(t=q(n,t)),e[t]=r},tn=function(){function e(){i(this,e),this._obj={}}return o(e,[{key:"set",value:function(e,t){return this._obj[e]=t,this}},{key:"delete",value:function(e){return this._obj[e]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(e){return void 0!==this._obj[e]}},{key:"get",value:function(e){return this._obj[e]}}]),e}(),tr="undefined"!=typeof Map?Map:tn,ti=function(){function e(t){if(i(this,e),this._obj=Object.create(null),this.size=0,null!=t){var n;n=null!=t.instanceString&&t.instanceString()===this.instanceString()?t.toArray():t;for(var r=0;r<n.length;r++)this.add(n[r])}}return o(e,[{key:"instanceString",value:function(){return"set"}},{key:"add",value:function(e){var t=this._obj;1!==t[e]&&(t[e]=1,this.size++)}},{key:"delete",value:function(e){var t=this._obj;1===t[e]&&(t[e]=0,this.size--)}},{key:"clear",value:function(){this._obj=Object.create(null)}},{key:"has",value:function(e){return 1===this._obj[e]}},{key:"toArray",value:function(){var e=this;return Object.keys(this._obj).filter(function(t){return e.has(t)})}},{key:"forEach",value:function(e,t){return this.toArray().forEach(e,t)}}]),e}(),ta=("undefined"==typeof Set?"undefined":r(Set))!=="undefined"?Set:ti,to=function(e,t){var n=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(void 0===e||void 0===t||!O(e)){eJ("An element must have a core reference and parameters set");return}var r=t.group;if(null==r&&(r=t.data&&null!=t.data.source&&null!=t.data.target?"edges":"nodes"),"nodes"!==r&&"edges"!==r){eJ("An element must be of type `nodes` or `edges`; you specified `"+r+"`");return}this.length=1,this[0]=this;var i=this._private={cy:e,single:!0,data:t.data||{},position:t.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:r,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!t.selected,selectable:void 0===t.selectable||!!t.selectable,locked:!!t.locked,grabbed:!1,grabbable:void 0===t.grabbable||!!t.grabbable,pannable:void 0===t.pannable?"edges"===r:!!t.pannable,active:!1,classes:new ta,animation:{current:[],queue:[]},rscratch:{},scratch:t.scratch||{},edges:[],children:[],parent:t.parent&&t.parent.isNode()?t.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(null==i.position.x&&(i.position.x=0),null==i.position.y&&(i.position.y=0),t.renderedPosition){var a=t.renderedPosition,o=e.pan(),s=e.zoom();i.position={x:(a.x-o.x)/s,y:(a.y-o.y)/s}}var l=[];P(t.classes)?l=t.classes:D(t.classes)&&(l=t.classes.split(/\s+/));for(var u=0,c=l.length;u<c;u++){var h=l[u];if(!!h&&""!==h)i.classes.add(h)}this.createEmitter();var d=t.style||t.css;d&&(e1("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."),this.style(d)),(void 0===n||n)&&this.restore()},ts=function(e){return e={bfs:e.bfs||!e.dfs,dfs:e.dfs||!e.bfs},function(t,n,r){_(t)&&!A(t)&&(t=(i=t).roots||i.root,n=i.visit,r=i.directed),r=2!=arguments.length||T(n)?r:n,n=T(n)?n:function(){};for(var i,a,o=this._private.cy,s=t=D(t)?this.filter(t):t,l=[],u=[],c={},h={},d={},p=0,f=this.byGroup(),g=f.nodes,v=f.edges,y=0;y<s.length;y++){var b=s[y],x=b.id();b.isNode()&&(l.unshift(b),e.bfs&&(d[x]=!0,u.push(b)),h[x]=0)}for(;0!==l.length;){var w=function(){var t=e.bfs?l.shift():l.pop(),i=t.id();if(e.dfs){if(d[i])return"continue";d[i]=!0,u.push(t)}var o=h[i],s=c[i],f=null!=s?s.source():null,y=null!=s?s.target():null,b=null==s?void 0:t.same(f)?y[0]:f[0],x=void 0;if(!0===(x=n(t,s,b,p++,o)))return a=t,"break";if(!1===x)return"break";for(var w=t.connectedEdges().filter(function(e){return(!r||e.source().same(t))&&v.has(e)}),E=0;E<w.length;E++){var k=w[E],C=k.connectedNodes().filter(function(e){return!e.same(t)&&g.has(e)}),S=C.id();0!==C.length&&!d[S]&&(C=C[0],l.push(C),e.bfs&&(d[S]=!0,u.push(C)),c[S]=k,h[S]=h[i]+1)}}();if("continue"!==w){if("break"===w)break}}for(var E=o.collection(),k=0;k<u.length;k++){var C=u[k],S=c[C.id()];null!=S&&E.push(S),E.push(C)}return{path:o.collection(E),found:o.collection(a)}}},tl={breadthFirstSearch:ts({bfs:!0}),depthFirstSearch:ts({dfs:!0})};tl.bfs=tl.breadthFirstSearch,tl.dfs=tl.depthFirstSearch;var tu=(function(e,t){(function(){var t,n,r,i,a,o,s,l,u,c,h,d,p,f,g,v,y;r=Math.floor,c=Math.min,n=function(e,t){return e<t?-1:e>t?1:0},u=function(e,t,i,a,o){var s;if(null==i&&(i=0),null==o&&(o=n),i<0)throw Error("lo must be non-negative");for(null==a&&(a=e.length);i<a;)0>o(t,e[s=r((i+a)/2)])?a=s:i=s+1;return[].splice.apply(e,[i,i-i].concat(t)),t},o=function(e,t,r){return null==r&&(r=n),e.push(t),f(e,0,e.length-1,r)},a=function(e,t){var r,i;return null==t&&(t=n),r=e.pop(),e.length?(i=e[0],e[0]=r,g(e,0,t)):i=r,i},l=function(e,t,r){var i;return null==r&&(r=n),i=e[0],e[0]=t,g(e,0,r),i},s=function(e,t,r){var i;return null==r&&(r=n),e.length&&0>r(e[0],t)&&(t=(i=[e[0],t])[0],e[0]=i[1],g(e,0,r)),t},i=function(e,t){var i,a,o,s,l,u;for(null==t&&(t=n),s=(function(){u=[];for(var t=0,n=r(e.length/2);0<=n?t<n:t>n;0<=n?t++:t--)u.push(t);return u}).apply(this).reverse(),l=[],a=0,o=s.length;a<o;a++)i=s[a],l.push(g(e,i,t));return l},p=function(e,t,r){var i;if(null==r&&(r=n),-1!==(i=e.indexOf(t)))return f(e,0,i,r),g(e,i,r)},h=function(e,t,r){var a,o,l,u;if(null==r&&(r=n),!(a=e.slice(0,t)).length)return a;for(i(a,r),o=0,l=(u=e.slice(t)).length;o<l;o++)s(a,u[o],r);return a.sort(r).reverse()},d=function(e,t,r){var o,s,l,h,d,p,f,g,v;if(null==r&&(r=n),10*t<=e.length){if(!(l=e.slice(0,t).sort(r)).length)return l;for(h=0,s=l[l.length-1],p=(f=e.slice(t)).length;h<p;h++)0>r(o=f[h],s)&&(u(l,o,0,null,r),l.pop(),s=l[l.length-1]);return l}for(i(e,r),v=[],d=0,g=c(t,e.length);0<=g?d<g:d>g;0<=g?++d:--d)v.push(a(e,r));return v},f=function(e,t,r,i){var a,o,s;for(null==i&&(i=n),a=e[r];r>t;){if(0>i(a,o=e[s=r-1>>1])){e[r]=o,r=s;continue}break}return e[r]=a},g=function(e,t,r){var i,a,o,s,l;for(null==r&&(r=n),a=e.length,l=t,o=e[t],i=2*t+1;i<a;)(s=i+1)<a&&!(0>r(e[i],e[s]))&&(i=s),e[t]=e[i],i=2*(t=i)+1;return e[t]=o,f(e,l,t,r)},t=function(){function e(e){this.cmp=null!=e?e:n,this.nodes=[]}return e.push=o,e.pop=a,e.replace=l,e.pushpop=s,e.heapify=i,e.updateItem=p,e.nlargest=h,e.nsmallest=d,e.prototype.push=function(e){return o(this.nodes,e,this.cmp)},e.prototype.pop=function(){return a(this.nodes,this.cmp)},e.prototype.peek=function(){return this.nodes[0]},e.prototype.contains=function(e){return -1!==this.nodes.indexOf(e)},e.prototype.replace=function(e){return l(this.nodes,e,this.cmp)},e.prototype.pushpop=function(e){return s(this.nodes,e,this.cmp)},e.prototype.heapify=function(){return i(this.nodes,this.cmp)},e.prototype.updateItem=function(e){return p(this.nodes,e,this.cmp)},e.prototype.clear=function(){return this.nodes=[]},e.prototype.empty=function(){return 0===this.nodes.length},e.prototype.size=function(){return this.nodes.length},e.prototype.clone=function(){var t;return(t=new e).nodes=this.nodes.slice(0),t},e.prototype.toArray=function(){return this.nodes.slice(0)},e.prototype.insert=e.prototype.push,e.prototype.top=e.prototype.peek,e.prototype.front=e.prototype.peek,e.prototype.has=e.prototype.contains,e.prototype.copy=e.prototype.clone,e}(),v=0,y=function(){return t},e.exports=y()}).call(ea)}(oH={exports:{}},oH.exports),oH.exports),tc=e9({root:null,weight:function(e){return 1},directed:!1}),th=e9({root:null,goal:null,weight:function(e){return 1},heuristic:function(e){return 0},directed:!1}),td=e9({weight:function(e){return 1},directed:!1}),tp=e9({weight:function(e){return 1},directed:!1,root:null}),tf=Math.sqrt(2),tg=function(e,t,n){0===n.length&&eJ("Karger-Stein must be run on a connected (sub)graph");for(var r=n[e],i=r[1],a=r[2],o=t[i],s=t[a],l=n.length-1;l>=0;l--){var u=n[l],c=u[1],h=u[2];(t[c]===o&&t[h]===s||t[c]===s&&t[h]===o)&&n.splice(l,1)}for(var d=0;d<n.length;d++){var p=n[d];p[1]===s?(n[d]=p.slice(),n[d][1]=o):p[2]===s&&(n[d]=p.slice(),n[d][2]=o)}for(var f=0;f<t.length;f++)t[f]===s&&(t[f]=o);return n},tv=function(e,t,n,r){for(;n>r;)t=tg(Math.floor(Math.random()*t.length),e,t),n--;return t},ty=function(e,t,n){return{x:e.x*t+n.x,y:e.y*t+n.y}},tm=function(e,t,n){return{x:(e.x-n.x)/t,y:(e.y-n.y)/t}},tb=function(e){return{x:e[0],y:e[1]}},tx=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=1/0,i=t;i<n;i++){var a=e[i];isFinite(a)&&(r=Math.min(a,r))}return r},tw=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=-1/0,i=t;i<n;i++){var a=e[i];isFinite(a)&&(r=Math.max(a,r))}return r},tE=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=0,i=0,a=t;a<n;a++){var o=e[a];isFinite(o)&&(r+=o,i++)}return r/i},tk=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=!(arguments.length>3)||void 0===arguments[3]||arguments[3],i=!(arguments.length>4)||void 0===arguments[4]||arguments[4],a=!(arguments.length>5)||void 0===arguments[5]||arguments[5];r?e=e.slice(t,n):(n<e.length&&e.splice(n,e.length-n),t>0&&e.splice(0,t));for(var o=0,s=e.length-1;s>=0;s--){var l=e[s];a?!isFinite(l)&&(e[s]=-1/0,o++):e.splice(s,1)}i&&e.sort(function(e,t){return e-t});var u=e.length,c=Math.floor(u/2);return u%2!=0?e[c+1+o]:(e[c-1+o]+e[c+o])/2},tC=function(e,t){return Math.atan2(t,e)-Math.PI/2},tS=Math.log2||function(e){return Math.log(e)/Math.log(2)},tD=function(e){return e>0?1:e<0?-1:0},tT=function(e,t){return Math.sqrt(tP(e,t))},tP=function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},t_=function(e){for(var t=e.length,n=0,r=0;r<t;r++)n+=e[r];for(var i=0;i<t;i++)e[i]=e[i]/n;return e},tM=function(e,t,n,r){return(1-r)*(1-r)*e+2*(1-r)*r*t+r*r*n},tB=function(e,t,n,r){return{x:tM(e.x,t.x,n.x,r),y:tM(e.y,t.y,n.y,r)}},tA=function(e,t,n,r){var i={x:t.x-e.x,y:t.y-e.y},a=tT(e,t),o={x:i.x/a,y:i.y/a};return n=null==n?0:n,r=null!=r?r:n*a,{x:e.x+o.x*r,y:e.y+o.y*r}},tN=function(e,t,n){return Math.max(e,Math.min(n,t))},tI=function(e){if(null==e)return{x1:1/0,y1:1/0,x2:-1/0,y2:-1/0,w:0,h:0};if(null!=e.x1&&null!=e.y1){if(null!=e.x2&&null!=e.y2&&e.x2>=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(null!=e.w&&null!=e.h&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},tO=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},tL=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},tR=function(e,t,n){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},tz=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},tV=function(e){var t,n,r,i,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===a.length)t=n=r=i=a[0];else if(2===a.length)t=r=a[0],i=n=a[1];else if(4===a.length){var o=l(a,4);t=o[0],n=o[1],r=o[2],i=o[3]}return e.x1-=i,e.x2+=n,e.y1-=t,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},tF=function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},tj=function(e,t){return!(e.x1>t.x2)&&!(t.x1>e.x2)&&!(e.x2<t.x1)&&!(t.x2<e.x1)&&!(e.y2<t.y1)&&!(t.y2<e.y1)&&!(e.y1>t.y2)&&!(t.y1>e.y2)&&!0},tq=function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},tX=function(e,t){return tq(e,t.x1,t.y1)&&tq(e,t.x2,t.y2)},tY=function(e,t,n,r,i,a,o){var s,l,u=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"auto",c="auto"===u?nr(i,a):u,h=i/2,d=a/2,p=(c=Math.min(c,h,d))!==h,f=c!==d;if(p){var g=n-h+c-o,v=r-d-o,y=n+h-c+o;if((s=t9(e,t,n,r,g,v,y,v,!1)).length>0)return s}if(f){var b=n+h+o,x=r-d+c-o,w=r+d-c+o;if((s=t9(e,t,n,r,b,x,b,w,!1)).length>0)return s}if(p){var E=n-h+c-o,k=r+d+o,C=n+h-c+o;if((s=t9(e,t,n,r,E,k,C,k,!1)).length>0)return s}if(f){var S=n-h-o,D=r-d+c-o,T=r+d-c+o;if((s=t9(e,t,n,r,S,D,S,T,!1)).length>0)return s}var P=n-h+c,_=r-d+c;if((l=t3(e,t,n,r,P,_,c+o)).length>0&&l[0]<=P&&l[1]<=_)return[l[0],l[1]];var M=n+h-c,B=r-d+c;if((l=t3(e,t,n,r,M,B,c+o)).length>0&&l[0]>=M&&l[1]<=B)return[l[0],l[1]];var A=n+h-c,N=r+d-c;if((l=t3(e,t,n,r,A,N,c+o)).length>0&&l[0]>=A&&l[1]>=N)return[l[0],l[1]];var I=n-h+c,O=r+d-c;return(l=t3(e,t,n,r,I,O,c+o)).length>0&&l[0]<=I&&l[1]>=O?[l[0],l[1]]:[]},tW=function(e,t,n,r,i,a,o){var s=Math.min(n,i),l=Math.max(n,i),u=Math.min(r,a),c=Math.max(r,a);return s-o<=e&&e<=l+o&&u-o<=t&&t<=c+o},tH=function(e,t,n,r,i,a,o,s,l){var u={x1:Math.min(n,o,i)-l,x2:Math.max(n,o,i)+l,y1:Math.min(r,s,a)-l,y2:Math.max(r,s,a)+l};return!(e<u.x1)&&!(e>u.x2)&&!(t<u.y1)&&!(t>u.y2)&&!0},tG=function(e,t,n,r){var i=t*t-4*e*(n-=r);if(i<0)return[];var a=Math.sqrt(i),o=2*e;return[(-t+a)/o,(-t-a)/o]},tU=function(e,t,n,r,i){var a,o,s,l,u,c,h,d;if(0===e&&(e=1e-5),t/=e,n/=e,r/=e,a=(o=(3*n-t*t)/9)*o*o+(s=(-(27*r)+t*(9*n-t*t*2))/54)*s,i[1]=0,h=t/3,a>0){u=(u=s+Math.sqrt(a))<0?-Math.pow(-u,1/3):Math.pow(u,1/3),c=(c=s-Math.sqrt(a))<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-h+u+c,h+=(u+c)/2,i[4]=i[2]=-h,h=Math.sqrt(3)*(-c+u)/2,i[3]=h,i[5]=-h;return}if(i[5]=i[3]=0,0===a){d=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3),i[0]=-h+2*d,i[4]=i[2]=-(d+h);return}l=Math.acos(s/Math.sqrt(l=(o=-o)*o*o)),d=2*Math.sqrt(o),i[0]=-h+d*Math.cos(l/3),i[2]=-h+d*Math.cos((l+2*Math.PI)/3),i[4]=-h+d*Math.cos((l+4*Math.PI)/3)},tK=function(e,t,n,r,i,a,o,s){var l,u,c=[];tU(1*n*n-4*n*i+2*n*o+4*i*i-4*i*o+o*o+r*r-4*r*a+2*r*s+4*a*a-4*a*s+s*s,9*n*i-3*n*n-3*n*o-6*i*i+3*i*o+9*r*a-3*r*r-3*r*s-6*a*a+3*a*s,3*n*n-6*n*i+n*o-n*e+2*i*i+2*i*e-o*e+3*r*r-6*r*a+r*s-r*t+2*a*a+2*a*t-s*t,1*n*i-n*n+n*e-i*e+r*a-r*r+r*t-a*t,c);for(var h=[],d=0;d<6;d+=2)1e-7>Math.abs(c[d+1])&&c[d]>=0&&c[d]<=1&&h.push(c[d]);h.push(1),h.push(0);for(var p=-1,f=0;f<h.length;f++)l=Math.pow(1-h[f],2)*n+2*(1-h[f])*h[f]*i+h[f]*h[f]*o,u=Math.pow(l-e,2)+Math.pow(Math.pow(1-h[f],2)*r+2*(1-h[f])*h[f]*a+h[f]*h[f]*s-t,2),p>=0?u<p&&(p=u):p=u;return p},tZ=function(e,t,n,r,i,a){var o=[e-n,t-r],s=[i-n,a-r],l=s[0]*s[0]+s[1]*s[1],u=o[0]*o[0]+o[1]*o[1],c=o[0]*s[0]+o[1]*s[1],h=c*c/l;return c<0?u:h>l?(e-i)*(e-i)+(t-a)*(t-a):u-h},t$=function(e,t,n){for(var r,i,a,o,s=0,l=0;l<n.length/2;l++)if(r=n[2*l],i=n[2*l+1],l+1<n.length/2?(a=n[(l+1)*2],o=n[(l+1)*2+1]):(a=n[(l+1-n.length/2)*2],o=n[(l+1-n.length/2)*2+1]),r==e&&a==e);else{if((!(r>=e)||!(e>=a))&&(!(r<=e)||!(e<=a)))continue;(e-r)/(a-r)*(o-i)+i>t&&s++}return s%2!=0&&!0},tQ=function(e,t,n,r,i,a,o,s,l){var u,c,h=Array(n.length);null!=s[0]?(u=Math.atan(s[1]/s[0]),s[0]<0?u+=Math.PI/2:u=-u-Math.PI/2):u=s;for(var d=Math.cos(-u),p=Math.sin(-u),f=0;f<h.length/2;f++)h[2*f]=a/2*(n[2*f]*d-n[2*f+1]*p),h[2*f+1]=o/2*(n[2*f+1]*d+n[2*f]*p),h[2*f]+=r,h[2*f+1]+=i;return t$(e,t,c=l>0?t0(t1(h,-l)):h)},tJ=function(e,t,n,r,i,a,o,s){for(var l=Array(2*n.length),u=0;u<s.length;u++){var c=s[u];if(l[4*u+0]=c.startX,l[4*u+1]=c.startY,l[4*u+2]=c.stopX,l[4*u+3]=c.stopY,Math.pow(c.cx-e,2)+Math.pow(c.cy-t,2)<=Math.pow(c.radius,2))return!0}return t$(e,t,l)},t0=function(e){for(var t,n,r,i,a,o,s,l,u=Array(e.length/2),c=0;c<e.length/4;c++){t=e[4*c],n=e[4*c+1],r=e[4*c+2],i=e[4*c+3],c<e.length/4-1?(a=e[(c+1)*4],o=e[(c+1)*4+1],s=e[(c+1)*4+2],l=e[(c+1)*4+3]):(a=e[0],o=e[1],s=e[2],l=e[3]);var h=t9(t,n,r,i,a,o,s,l,!0);u[2*c]=h[0],u[2*c+1]=h[1]}return u},t1=function(e,t){for(var n,r,i,a,o=Array(2*e.length),s=0;s<e.length/2;s++){n=e[2*s],r=e[2*s+1],s<e.length/2-1?(i=e[(s+1)*2],a=e[(s+1)*2+1]):(i=e[0],a=e[1]);var l=a-r,u=-(i-n),c=Math.sqrt(l*l+u*u),h=l/c,d=u/c;o[4*s]=n+h*t,o[4*s+1]=r+d*t,o[4*s+2]=i+h*t,o[4*s+3]=a+d*t}return o},t2=function(e,t,n,r,i,a){var o=n-e,s=r-t,l=Math.sqrt((o/=i)*o+(s/=a)*s),u=l-1;if(u<0)return[];var c=u/l;return[(n-e)*c+e,(r-t)*c+t]},t5=function(e,t,n,r,i,a,o){return e-=i,t-=a,(e/=n/2+o)*e+(t/=r/2+o)*t<=1},t3=function(e,t,n,r,i,a,o){var s=[n-e,r-t],l=[e-i,t-a],u=s[0]*s[0]+s[1]*s[1],c=2*(l[0]*s[0]+l[1]*s[1]),h=c*c-4*u*(l[0]*l[0]+l[1]*l[1]-o*o);if(h<0)return[];var d=(-c+Math.sqrt(h))/(2*u),p=(-c-Math.sqrt(h))/(2*u),f=Math.min(d,p),g=Math.max(d,p),v=[];if(f>=0&&f<=1&&v.push(f),g>=0&&g<=1&&v.push(g),0===v.length)return[];var y=v[0]*s[0]+e,b=v[0]*s[1]+t;return v.length>1?v[0]==v[1]?[y,b]:[y,b,v[1]*s[0]+e,v[1]*s[1]+t]:[y,b]},t4=function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},t9=function(e,t,n,r,i,a,o,s,l){var u=e-i,c=n-e,h=o-i,d=t-a,p=r-t,f=s-a,g=h*d-f*u,v=c*d-p*u,y=f*c-h*p;if(0!==y){var b=g/y,x=v/y,w=-.001,E=1.001;return -.001<=b&&b<=E&&w<=x&&x<=E?[e+b*c,t+b*p]:l?[e+b*c,t+b*p]:[]}return 0!==g&&0!==v?[]:t4(e,n,o)===o?[o,s]:t4(e,n,i)===i?[i,a]:t4(i,o,n)===n?[n,r]:[]},t6=function(e,t,n,r,i,a,o,s){var l,u,c,h,d,p,f=[],g=Array(n.length),v=!0;if(null==a&&(v=!1),v){for(var y=0;y<g.length/2;y++)g[2*y]=n[2*y]*a+r,g[2*y+1]=n[2*y+1]*o+i;u=s>0?t0(t1(g,-s)):g}else u=n;for(var b=0;b<u.length/2;b++)c=u[2*b],h=u[2*b+1],b<u.length/2-1?(d=u[(b+1)*2],p=u[(b+1)*2+1]):(d=u[0],p=u[1]),0!==(l=t9(e,t,r,i,c,h,d,p)).length&&f.push(l[0],l[1]);return f},t8=function(e,t,n,r,i,a,o,s,l){var u,c=[],h=Array(2*n.length);l.forEach(function(n,a){0===a?(h[h.length-2]=n.startX,h[h.length-1]=n.startY):(h[4*a-2]=n.startX,h[4*a-1]=n.startY),h[4*a]=n.stopX,h[4*a+1]=n.stopY,0!==(u=t3(e,t,r,i,n.cx,n.cy,n.radius)).length&&c.push(u[0],u[1])});for(var d=0;d<h.length/4;d++)0!==(u=t9(e,t,r,i,h[4*d],h[4*d+1],h[4*d+2],h[4*d+3],!1)).length&&c.push(u[0],u[1]);if(c.length>2){for(var p=[c[0],c[1]],f=Math.pow(p[0]-e,2)+Math.pow(p[1]-t,2),g=1;g<c.length/2;g++){var v=Math.pow(c[2*g]-e,2)+Math.pow(c[2*g+1]-t,2);v<=f&&(p[0]=c[2*g],p[1]=c[2*g+1],f=v)}return p}return c},t7=function(e,t,n){var r=[e[0]-t[0],e[1]-t[1]],i=Math.sqrt(r[0]*r[0]+r[1]*r[1]),a=(i-n)/i;return a<0&&(a=1e-5),[t[0]+a*r[0],t[1]+a*r[1]]},ne=function(e,t){var n=nn(e,t);return n=nt(n)},nt=function(e){for(var t,n,r=e.length/2,i=1/0,a=1/0,o=-1/0,s=-1/0,l=0;l<r;l++)t=e[2*l],n=e[2*l+1],i=Math.min(i,t),o=Math.max(o,t),a=Math.min(a,n),s=Math.max(s,n);for(var u=2/(o-i),c=2/(s-a),h=0;h<r;h++)t=e[2*h]=e[2*h]*u,n=e[2*h+1]=e[2*h+1]*c,i=Math.min(i,t),o=Math.max(o,t),a=Math.min(a,n),s=Math.max(s,n);if(a<-1)for(var d=0;d<r;d++)n=e[2*d+1]=e[2*d+1]+(-1-a);return e},nn=function(e,t){var n,r=1/e*2*Math.PI,i=e%2==0?Math.PI/2+r/2:Math.PI/2;i+=t;for(var a=Array(2*e),o=0;o<e;o++)n=o*r+i,a[2*o]=Math.cos(n),a[2*o+1]=Math.sin(-n);return a},nr=function(e,t){return Math.min(e/4,t/4,8)},ni=function(e,t){return Math.min(e/10,t/10,8)},na=function(){return 8},no=function(e,t){return{heightOffset:Math.min(15,.05*t),widthOffset:Math.min(100,.25*e),ctrlPtOffsetPct:.05}},ns=e9({dampingFactor:.8,precision:1e-6,iterations:200,weight:function(e){return 1}}),nl=e9({root:null,weight:function(e){return 1},directed:!1,alpha:0}),nu={degreeCentralityNormalized:function(e){e=nl(e);var t=this.cy(),n=this.nodes(),r=n.length;if(e.directed){for(var i={},a={},o=0,s=0,l=0;l<r;l++){var u=n[l],c=u.id();e.root=u;var h=this.degreeCentrality(e);o<h.indegree&&(o=h.indegree),s<h.outdegree&&(s=h.outdegree),i[c]=h.indegree,a[c]=h.outdegree}return{indegree:function(e){return 0==o?0:(D(e)&&(e=t.filter(e)),i[e.id()]/o)},outdegree:function(e){return 0===s?0:(D(e)&&(e=t.filter(e)),a[e.id()]/s)}}}for(var d={},p=0,f=0;f<r;f++){var g=n[f];e.root=g;var v=this.degreeCentrality(e);p<v.degree&&(p=v.degree),d[g.id()]=v.degree}return{degree:function(e){return 0===p?0:(D(e)&&(e=t.filter(e)),d[e.id()]/p)}}},degreeCentrality:function(e){e=nl(e);var t=this.cy(),n=this,r=e,i=r.root,a=r.weight,o=r.directed,s=r.alpha;if(i=t.collection(i)[0],o){for(var l=i.connectedEdges(),u=l.filter(function(e){return e.target().same(i)&&n.has(e)}),c=l.filter(function(e){return e.source().same(i)&&n.has(e)}),h=u.length,d=c.length,p=0,f=0,g=0;g<u.length;g++)p+=a(u[g]);for(var v=0;v<c.length;v++)f+=a(c[v]);return{indegree:Math.pow(h,1-s)*Math.pow(p,s),outdegree:Math.pow(d,1-s)*Math.pow(f,s)}}for(var y=i.connectedEdges().intersection(n),b=y.length,x=0,w=0;w<y.length;w++)x+=a(y[w]);return{degree:Math.pow(b,1-s)*Math.pow(x,s)}}};nu.dc=nu.degreeCentrality,nu.dcn=nu.degreeCentralityNormalised=nu.degreeCentralityNormalized;var nc=e9({harmonic:!0,weight:function(){return 1},directed:!1,root:null}),nh={closenessCentralityNormalized:function(e){for(var t=nc(e),n=t.harmonic,r=t.weight,i=t.directed,a=this.cy(),o={},s=0,l=this.nodes(),u=this.floydWarshall({weight:r,directed:i}),c=0;c<l.length;c++){for(var h=0,d=l[c],p=0;p<l.length;p++)if(c!==p){var f=u.distance(d,l[p]);n?h+=1/f:h+=f}!n&&(h=1/h),s<h&&(s=h),o[d.id()]=h}return{closeness:function(e){return 0==s?0:o[e=D(e)?a.filter(e)[0].id():e.id()]/s}}},closenessCentrality:function(e){var t=nc(e),n=t.root,r=t.weight,i=t.directed,a=t.harmonic;n=this.filter(n)[0];for(var o=this.dijkstra({root:n,weight:r,directed:i}),s=0,l=this.nodes(),u=0;u<l.length;u++){var c=l[u];if(!c.same(n)){var h=o.distanceTo(c);a?s+=1/h:s+=h}}return a?s:1/s}};nh.cc=nh.closenessCentrality,nh.ccn=nh.closenessCentralityNormalised=nh.closenessCentralityNormalized;var nd=e9({weight:null,directed:!1}),np={betweennessCentrality:function(e){for(var t=nd(e),n=t.directed,r=t.weight,i=null!=r,a=this.cy(),o=this.nodes(),s={},l={},u=0,c={set:function(e,t){l[e]=t,t>u&&(u=t)},get:function(e){return l[e]}},h=0;h<o.length;h++){var d=o[h],p=d.id();n?s[p]=d.outgoers().nodes():s[p]=d.openNeighborhood().nodes(),c.set(p,0)}for(var f=0;f<o.length;f++)!function(e){for(var t=o[e].id(),n=[],l={},u={},h={},d=new tu(function(e,t){return h[e]-h[t]}),p=0;p<o.length;p++){var f=o[p].id();l[f]=[],u[f]=0,h[f]=1/0}for(u[t]=1,h[t]=0,d.push(t);!d.empty();){var g=d.pop();if(n.push(g),i)for(var v=0;v<s[g].length;v++){var y=s[g][v],b=a.getElementById(g),x=void 0,w=r(x=b.edgesTo(y).length>0?b.edgesTo(y)[0]:y.edgesTo(b)[0]);h[y=y.id()]>h[g]+w&&(h[y]=h[g]+w,0>d.nodes.indexOf(y)?d.push(y):d.updateItem(y),u[y]=0,l[y]=[]),h[y]==h[g]+w&&(u[y]=u[y]+u[g],l[y].push(g))}else for(var E=0;E<s[g].length;E++){var k=s[g][E].id();h[k]==1/0&&(d.push(k),h[k]=h[g]+1),h[k]==h[g]+1&&(u[k]=u[k]+u[g],l[k].push(g))}}for(var C={},S=0;S<o.length;S++)C[o[S].id()]=0;for(;n.length>0;){for(var D=n.pop(),T=0;T<l[D].length;T++){var P=l[D][T];C[P]=C[P]+u[P]/u[D]*(1+C[D])}D!=o[e].id()&&c.set(D,c.get(D)+C[D])}}(f);var g={betweenness:function(e){var t=a.collection(e).id();return c.get(t)},betweennessNormalized:function(e){if(0==u)return 0;var t=a.collection(e).id();return c.get(t)/u}};return g.betweennessNormalised=g.betweennessNormalized,g}};np.bc=np.betweennessCentrality;var nf=e9({expandFactor:2,inflateFactor:2,multFactor:1,maxIterations:20,attributes:[function(e){return 1}]}),ng=function(e,t){for(var n=0,r=0;r<t.length;r++)n+=t[r](e);return n},nv=function(e,t,n){for(var r=0;r<t;r++)e[r*t+r]=n},ny=function(e,t){for(var n,r=0;r<t;r++){n=0;for(var i=0;i<t;i++)n+=e[i*t+r];for(var a=0;a<t;a++)e[a*t+r]=e[a*t+r]/n}},nm=function(e,t,n){for(var r=Array(n*n),i=0;i<n;i++){for(var a=0;a<n;a++)r[i*n+a]=0;for(var o=0;o<n;o++)for(var s=0;s<n;s++)r[i*n+s]+=e[i*n+o]*t[o*n+s]}return r},nb=function(e,t,n){for(var r=e.slice(0),i=1;i<n;i++)e=nm(e,r,t);return e},nx=function(e,t,n){for(var r=Array(t*t),i=0;i<t*t;i++)r[i]=Math.pow(e[i],n);return ny(r,t),r},nw=function(e,t,n,r){for(var i=0;i<n;i++)if(Math.round(e[i]*Math.pow(10,r))/Math.pow(10,r)!=Math.round(t[i]*Math.pow(10,r))/Math.pow(10,r))return!1;return!0},nE=function(e,t,n,r){for(var i=[],a=0;a<t;a++){for(var o=[],s=0;s<t;s++)Math.round(1e3*e[a*t+s])/1e3>0&&o.push(n[s]);0!==o.length&&i.push(r.collection(o))}return i},nk=function(e,t){for(var n=0;n<e.length;n++)if(!t[n]||e[n].id()!==t[n].id())return!1;return!0},nC=function(e){for(var t=0;t<e.length;t++)for(var n=0;n<e.length;n++)t!=n&&nk(e[t],e[n])&&e.splice(n,1);return e},nS=function(e){for(var t=this.nodes(),n=this.edges(),r=this.cy(),i=nf(e),a={},o=0;o<t.length;o++)a[t[o].id()]=o;for(var s=t.length,l=s*s,u,c=Array(l),h=0;h<l;h++)c[h]=0;for(var d=0;d<n.length;d++){var p=n[d],f=a[p.source().id()],g=a[p.target().id()],v=ng(p,i.attributes);c[f*s+g]+=v,c[g*s+f]+=v}nv(c,s,i.multFactor),ny(c,s);for(var y=!0,b=0;y&&b<i.maxIterations;)y=!1,!nw(c=nx(u=nb(c,s,i.expandFactor),s,i.inflateFactor),u,l,4)&&(y=!0),b++;var x=nE(c,s,t,r);return x=nC(x)},nD=function(e){return e},nT=function(e,t){return Math.abs(t-e)},nP=function(e,t,n){return e+nT(t,n)},n_=function(e,t,n){return e+Math.pow(n-t,2)},nM=function(e){return Math.sqrt(e)},nB=function(e,t,n){return Math.max(e,nT(t,n))},nA=function(e,t,n,r,i){for(var a,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:nD,s=r,l=0;l<e;l++)a=t(l),s=i(s,a,n(l));return o(s)},nN={euclidean:function(e,t,n){return e>=2?nA(e,t,n,0,n_,nM):nA(e,t,n,0,nP)},squaredEuclidean:function(e,t,n){return nA(e,t,n,0,n_)},manhattan:function(e,t,n){return nA(e,t,n,0,nP)},max:function(e,t,n){return nA(e,t,n,-1/0,nB)}};function nI(e,t,n,r,i,a){var o;return(o=T(e)?e:nN[e]||nN.euclidean,0===t&&T(e))?o(i,a):o(t,n,r,i,a)}nN["squared-euclidean"]=nN.squaredEuclidean,nN.squaredeuclidean=nN.squaredEuclidean;var nO=e9({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),nL=function(e){return nO(e)},nR=function(e,t,n,r,i){var a="kMedoids"!==i?function(e){return n[e]}:function(e){return r[e](n)};return nI(e,r.length,a,function(e){return r[e](t)},n,t)},nz=function(e,t,n){for(var r=n.length,i=Array(r),a=Array(r),o=Array(t),s=null,l=0;l<r;l++)i[l]=e.min(n[l]).value,a[l]=e.max(n[l]).value;for(var u=0;u<t;u++){s=[];for(var c=0;c<r;c++)s[c]=Math.random()*(a[c]-i[c])+i[c];o[u]=s}return o},nV=function(e,t,n,r,i){for(var a=1/0,o=0,s=0;s<t.length;s++){var l=nR(n,e,t[s],r,i);l<a&&(a=l,o=s)}return o},nF=function(e,t,n){for(var r=[],i=null,a=0;a<t.length;a++)n[(i=t[a]).id()]===e&&r.push(i);return r},nj=function(e,t,n){for(var r=0;r<e.length;r++)for(var i=0;i<e[r].length;i++)if(Math.abs(e[r][i]-t[r][i])>n)return!1;return!0},nq=function(e,t,n){for(var r=0;r<n;r++)if(e===t[r])return!0;return!1},nX=function(e,t){var n=Array(t);if(e.length<50)for(var r=0;r<t;r++){for(var i=e[Math.floor(Math.random()*e.length)];nq(i,n,r);)i=e[Math.floor(Math.random()*e.length)];n[r]=i}else for(var a=0;a<t;a++)n[a]=e[Math.floor(Math.random()*e.length)];return n},nY=function(e,t,n){for(var r=0,i=0;i<t.length;i++)r+=nR("manhattan",t[i],e,n,"kMedoids");return r},nW=function(e,t,n,r,i){for(var a,o,s=0;s<t.length;s++)for(var l=0;l<e.length;l++)r[s][l]=Math.pow(n[s][l],i.m);for(var u=0;u<e.length;u++)for(var c=0;c<i.attributes.length;c++){a=0,o=0;for(var h=0;h<t.length;h++)a+=r[h][u]*i.attributes[c](t[h]),o+=r[h][u];e[u][c]=a/o}},nH=function(e,t,n,r,i){for(var a,o,s=0;s<e.length;s++)t[s]=e[s].slice();for(var l=2/(i.m-1),u=0;u<n.length;u++)for(var c=0;c<r.length;c++){a=0;for(var h=0;h<n.length;h++)o=nR(i.distance,r[c],n[u],i.attributes,"cmeans"),a+=Math.pow(o/nR(i.distance,r[c],n[h],i.attributes,"cmeans"),l);e[c][u]=1/a}},nG=function(e,t,n,r){for(var i,a,o=Array(n.k),s=0;s<o.length;s++)o[s]=[];for(var l=0;l<t.length;l++){i=-1/0,a=-1;for(var u=0;u<t[0].length;u++)t[l][u]>i&&(i=t[l][u],a=u);o[a].push(e[l])}for(var c=0;c<o.length;c++)o[c]=r.collection(o[c]);return o},nU=function(e){var t,n,r,i,a=this.cy(),o=this.nodes(),s=nL(e);r=Array(o.length);for(var l=0;l<o.length;l++)r[l]=Array(s.k);n=Array(o.length);for(var u=0;u<o.length;u++)n[u]=Array(s.k);for(var c=0;c<o.length;c++){for(var h=0,d=0;d<s.k;d++)n[c][d]=Math.random(),h+=n[c][d];for(var p=0;p<s.k;p++)n[c][p]=n[c][p]/h}t=Array(s.k);for(var f=0;f<s.k;f++)t[f]=Array(s.attributes.length);i=Array(o.length);for(var g=0;g<o.length;g++)i[g]=Array(s.k);for(var v=!0,y=0;v&&y<s.maxIterations;)v=!1,nW(t,o,n,i,s),nH(n,r,t,o,s),!nj(n,r,s.sensitivityThreshold)&&(v=!0),y++;return{clusters:nG(o,n,s,a),degreeOfMembership:n}},nK=e9({distance:"euclidean",linkage:"min",mode:"threshold",threshold:1/0,addDendrogram:!1,dendrogramDepth:0,attributes:[]}),nZ={single:"min",complete:"max"},n$=function(e){var t=nK(e),n=nZ[t.linkage];return null!=n&&(t.linkage=n),t},nQ=function(e,t,n,r,i){for(var a,o,s=0,l=1/0,u=i.attributes,c=function(e,t){return nI(i.distance,u.length,function(t){return u[t](e)},function(e){return u[e](t)},e,t)},h=0;h<e.length;h++){var d=e[h].key,p=n[d][r[d]];p<l&&(s=d,l=p)}if("threshold"===i.mode&&l>=i.threshold||"dendrogram"===i.mode&&1===e.length)return!1;var f=t[s],g=t[r[s]];o="dendrogram"===i.mode?{left:f,right:g,key:f.key}:{value:f.value.concat(g.value),key:f.key},e[f.index]=o,e.splice(g.index,1),t[f.key]=o;for(var v=0;v<e.length;v++){var y=e[v];f.key===y.key?a=1/0:"min"===i.linkage?(a=n[f.key][y.key],n[f.key][y.key]>n[g.key][y.key]&&(a=n[g.key][y.key])):"max"===i.linkage?(a=n[f.key][y.key],n[f.key][y.key]<n[g.key][y.key]&&(a=n[g.key][y.key])):a="mean"===i.linkage?(n[f.key][y.key]*f.size+n[g.key][y.key]*g.size)/(f.size+g.size):"dendrogram"===i.mode?c(y.value,f.value):c(y.value[0],f.value[0]),n[f.key][y.key]=n[y.key][f.key]=a}for(var b=0;b<e.length;b++){var x=e[b].key;if(r[x]===f.key||r[x]===g.key){for(var w=x,E=0;E<e.length;E++){var k=e[E].key;n[x][k]<n[x][w]&&(w=k)}r[x]=w}e[b].index=b}return f.key=g.key=f.index=g.index=null,!0},nJ=function e(t,n,r){t&&(t.value?n.push(t.value):(t.left&&e(t.left,n),t.right&&e(t.right,n)))},n0=function e(t,n){if(!t)return"";if(t.left&&t.right){var r=e(t.left,n),i=e(t.right,n),a=n.add({group:"nodes",data:{id:r+","+i}});return n.add({group:"edges",data:{source:r,target:a.id()}}),n.add({group:"edges",data:{source:i,target:a.id()}}),a.id()}if(t.value)return t.value.id()},n1=function e(t,n,r){if(!t)return[];var i=[],a=[],o=[];if(0===n)return t.left&&nJ(t.left,i),t.right&&nJ(t.right,a),o=i.concat(a),[r.collection(o)];if(1===n)return t.value?[r.collection(t.value)]:(t.left&&nJ(t.left,i),t.right&&nJ(t.right,a),[r.collection(i),r.collection(a)]);return t.value?[r.collection(t.value)]:(t.left&&(i=e(t.left,n-1,r)),t.right&&(a=e(t.right,n-1,r)),i.concat(a))},n2=function(e){for(var t,n=this.cy(),r=this.nodes(),i=n$(e),a=i.attributes,o=function(e,t){return nI(i.distance,a.length,function(t){return a[t](e)},function(e){return a[e](t)},e,t)},s=[],l=[],u=[],c=[],h=0;h<r.length;h++){var d={value:"dendrogram"===i.mode?r[h]:[r[h]],key:h,index:h};s[h]=d,c[h]=d,l[h]=[],u[h]=0}for(var p=0;p<s.length;p++)for(var f=0;f<=p;f++){var g=void 0;g="dendrogram"===i.mode?p===f?1/0:o(s[p].value,s[f].value):p===f?1/0:o(s[p].value[0],s[f].value[0]),l[p][f]=g,l[f][p]=g,g<l[p][u[p]]&&(u[p]=f)}for(var v=nQ(s,c,l,u,i);v;)v=nQ(s,c,l,u,i);return"dendrogram"===i.mode?(t=n1(s[0],i.dendrogramDepth,n),i.addDendrogram&&n0(s[0],n)):(t=Array(s.length),s.forEach(function(e,r){e.key=e.index=null,t[r]=n.collection(e.value)})),t},n5=e9({distance:"euclidean",preference:"median",damping:.8,maxIterations:1e3,minIterations:100,attributes:[]}),n3=function(e){var t=e.damping,n=e.preference;!(.5<=t&&t<1)&&eJ("Damping must range on [0.5, 1). Got: ".concat(t));var r=["median","mean","min","max"];return!(r.some(function(e){return e===n})||M(n))&&eJ("Preference must be one of [".concat(r.map(function(e){return"'".concat(e,"'")}).join(", "),"] or a number. Got: ").concat(n)),n5(e)},n4=function(e,t,n,r){var i=function(e,t){return r[t](e)};return-nI(e,r.length,function(e){return i(t,e)},function(e){return i(n,e)},t,n)},n9=function(e,t){var n=null;return n="median"===t?tk(e):"mean"===t?tE(e):"min"===t?tx(e):"max"===t?tw(e):t},n6=function(e,t,n){for(var r=[],i=0;i<e;i++)t[i*e+i]+n[i*e+i]>0&&r.push(i);return r},n8=function(e,t,n){for(var r=[],i=0;i<e;i++){for(var a=-1,o=-1/0,s=0;s<n.length;s++){var l=n[s];t[i*e+l]>o&&(a=l,o=t[i*e+l])}a>0&&r.push(a)}for(var u=0;u<n.length;u++)r[n[u]]=n[u];return r},n7=function(e,t,n){for(var r=n8(e,t,n),i=0;i<n.length;i++){for(var a=[],o=0;o<r.length;o++)r[o]===n[i]&&a.push(o);for(var s=-1,l=-1/0,u=0;u<a.length;u++){for(var c=0,h=0;h<a.length;h++)c+=t[a[h]*e+a[u]];c>l&&(s=u,l=c)}n[i]=a[s]}return r=n8(e,t,n)},re=function(e){for(var t,n,r,i,a,o,s,l=this.cy(),u=this.nodes(),c=n3(e),h={},d=0;d<u.length;d++)h[u[d].id()]=d;r=Array(n=(t=u.length)*t);for(var p=0;p<n;p++)r[p]=-1/0;for(var f=0;f<t;f++)for(var g=0;g<t;g++)f!==g&&(r[f*t+g]=n4(c.distance,u[f],u[g],c.attributes));i=n9(r,c.preference);for(var v=0;v<t;v++)r[v*t+v]=i;a=Array(n);for(var y=0;y<n;y++)a[y]=0;o=Array(n);for(var b=0;b<n;b++)o[b]=0;for(var x=Array(t),w=Array(t),E=Array(t),k=0;k<t;k++)x[k]=0,w[k]=0,E[k]=0;for(var C=Array(t*c.minIterations),S=0;S<C.length;S++)C[S]=0;for(s=0;s<c.maxIterations;s++){for(var D=0;D<t;D++){for(var T=-1/0,P=-1/0,_=-1,M=0,B=0;B<t;B++)x[B]=a[D*t+B],(M=o[D*t+B]+r[D*t+B])>=T?(P=T,T=M,_=B):M>P&&(P=M);for(var A=0;A<t;A++)a[D*t+A]=(1-c.damping)*(r[D*t+A]-T)+c.damping*x[A];a[D*t+_]=(1-c.damping)*(r[D*t+_]-P)+c.damping*x[_]}for(var N=0;N<t;N++){for(var I=0,O=0;O<t;O++)x[O]=o[O*t+N],w[O]=Math.max(0,a[O*t+N]),I+=w[O];I-=w[N],w[N]=a[N*t+N],I+=w[N];for(var L=0;L<t;L++)o[L*t+N]=(1-c.damping)*Math.min(0,I-w[L])+c.damping*x[L];o[N*t+N]=(1-c.damping)*(I-w[N])+c.damping*x[N]}for(var R=0,z=0;z<t;z++){var V=o[z*t+z]+a[z*t+z]>0?1:0;C[s%c.minIterations*t+z]=V,R+=V}if(R>0&&(s>=c.minIterations-1||s==c.maxIterations-1)){for(var F=0,j=0;j<t;j++){E[j]=0;for(var q=0;q<c.minIterations;q++)E[j]+=C[q*t+j];(0===E[j]||E[j]===c.minIterations)&&F++}if(F===t)break}}for(var X=n6(t,a,o),Y=n7(t,r,X),W={},H=0;H<X.length;H++)W[X[H]]=[];for(var G=0;G<u.length;G++){var U=Y[h[u[G].id()]];null!=U&&W[U].push(u[G])}for(var K=Array(X.length),Z=0;Z<X.length;Z++)K[Z]=l.collection(W[X[Z]]);return K},rt=e9({root:void 0,directed:!1}),rn=function(){var e=this,t={},n=0,r=0,i=[],a=[],o={},s=function(n,r){for(var o=a.length-1,s=[],l=e.spawn();a[o].x!=n||a[o].y!=r;)s.push(a.pop().edge),o--;s.push(a.pop().edge),s.forEach(function(n){var r=n.connectedNodes().intersection(e);l.merge(n),r.forEach(function(n){var r=n.id(),i=n.connectedEdges().intersection(e);l.merge(n),t[r].cutVertex?l.merge(i.filter(function(e){return e.isLoop()})):l.merge(i)})}),i.push(l)},l=function l(u,c,h){u===h&&(r+=1),t[c]={id:n,low:n++,cutVertex:!1};var d,p,f,g,v=e.getElementById(c).connectedEdges().intersection(e);0===v.size()?i.push(e.spawn(e.getElementById(c))):v.forEach(function(e){d=e.source().id(),p=e.target().id(),(f=d===c?p:d)!==h&&(!o[g=e.id()]&&(o[g]=!0,a.push({x:c,y:f,edge:e})),f in t?t[c].low=Math.min(t[c].low,t[f].id):(l(u,f,c),t[c].low=Math.min(t[c].low,t[f].low),t[c].id<=t[f].low&&(t[c].cutVertex=!0,s(c,f))))})};e.forEach(function(e){if(e.isNode()){var n=e.id();!(n in t)&&(r=0,l(n,n),t[n].cutVertex=r>1)}});var u=Object.keys(t).filter(function(e){return t[e].cutVertex}).map(function(t){return e.getElementById(t)});return{cut:e.spawn(u),components:i}},rr=function(){var e=this,t={},n=0,r=[],i=[],a=e.spawn(e),o=function o(s){if(i.push(s),t[s]={index:n,low:n++,explored:!1},e.getElementById(s).connectedEdges().intersection(e).forEach(function(e){var n=e.target().id();n!==s&&(!(n in t)&&o(n),!t[n].explored&&(t[s].low=Math.min(t[s].low,t[n].low)))}),t[s].index===t[s].low){for(var l=e.spawn();;){var u=i.pop();if(l.merge(e.getElementById(u)),t[u].low=t[s].index,t[u].explored=!0,u===s)break}var c=l.edgesWith(l),h=l.merge(c);r.push(h),a=a.difference(h)}};return e.forEach(function(e){if(e.isNode()){var n=e.id();!(n in t)&&o(n)}}),{cut:a,components:r}},ri={};[tl,{dijkstra:function(e){if(!_(e)){var t=arguments;e={root:t[0],weight:t[1],directed:t[2]}}var n=tc(e),r=n.root,i=n.weight,a=n.directed,o=this,s=D(r)?this.filter(r)[0]:r[0],l={},u={},c={},h=this.byGroup(),d=h.nodes,p=h.edges;p.unmergeBy(function(e){return e.isLoop()});for(var f=function(e){return l[e.id()]},g=new tu(function(e,t){return f(e)-f(t)}),v=0;v<d.length;v++){var y=d[v];l[y.id()]=y.same(s)?0:1/0,g.push(y)}for(;g.size()>0;){var b=g.pop(),x=f(b);if(c[b.id()]=x,x!==1/0)for(var w=b.neighborhood().intersect(d),E=0;E<w.length;E++){var k,C,S=w[E],T=S.id(),P=function(e,t){for(var n,r=(a?e.edgesTo(t):e.edgesWith(t)).intersect(p),o=1/0,s=0;s<r.length;s++){var l=r[s],u=i(l);(u<o||!n)&&(o=u,n=l)}return{edge:n,dist:o}}(b,S),M=x+P.dist;if(M<f(S)){;k=S,C=M,l[k.id()]=C,g.updateItem(k),u[T]={node:b,edge:P.edge}}}}return{distanceTo:function(e){return c[(D(e)?d.filter(e)[0]:e[0]).id()]},pathTo:function(e){var t=D(e)?d.filter(e)[0]:e[0],n=[],r=t,i=r.id();if(t.length>0)for(n.unshift(t);u[i];){var a=u[i];n.unshift(a.edge),n.unshift(a.node),i=(r=a.node).id()}return o.spawn(n)}}}},{kruskal:function(e){e=e||function(e){return 1};for(var t=this.byGroup(),n=t.nodes,r=t.edges,i=n.length,a=Array(i),o=function(e){for(var t=0;t<a.length;t++)if(a[t].has(e))return t},s=0;s<i;s++)a[s]=this.spawn(n[s]);for(var l=r.sort(function(t,n){return e(t)-e(n)}),u=0;u<l.length;u++){var c=l[u],h=c.source()[0],d=c.target()[0],p=o(h),f=o(d),g=a[p],v=a[f];p!==f&&(n.merge(c),g.merge(v),a.splice(f,1))}return n}},{aStar:function(e){var t,n,r=this.cy(),i=th(e),a=i.root,o=i.goal,s=i.heuristic,l=i.directed,u=i.weight;a=r.collection(a)[0],o=r.collection(o)[0];var c=a.id(),h=o.id(),d={},p={},f={},g=new tu(function(e,t){return p[e.id()]-p[t.id()]}),v=new ta,y={},b={},x=function(e,t){g.push(e),v.add(t)};x(a,c),d[c]=0,p[c]=s(a);for(var w=0;g.size()>0;){if(n=(t=g.pop()).id(),v.delete(n),w++,n===h){for(var E=[],k=o,C=h,S=b[C];E.unshift(k),null!=S&&E.unshift(S),null!=(k=y[C]);){;S=b[C=k.id()]}return{found:!0,distance:d[n],path:this.spawn(E),steps:w}}f[n]=!0;for(var D=t._private.edges,T=0;T<D.length;T++){var P,_=D[T];if(!this.hasElementWithId(_.id())||l&&_.data("source")!==n)continue;var M=_.source(),B=_.target(),A=M.id()!==n?M:B,N=A.id();if(!!this.hasElementWithId(N)&&!f[N]){var I=d[n]+u(_);if(P=N,!v.has(P)){d[N]=I,p[N]=I+s(A),x(A,N),y[N]=t,b[N]=_;continue}I<d[N]&&(d[N]=I,p[N]=I+s(A),y[N]=t,b[N]=_)}}}return{found:!1,distance:void 0,path:void 0,steps:w}}},{floydWarshall:function(e){for(var t=this.cy(),n=td(e),r=n.weight,i=n.directed,a=this.byGroup(),o=a.nodes,s=a.edges,l=o.length,u=l*l,c=function(e){return o.indexOf(e)},h=function(e){return o[e]},d=Array(u),p=0;p<u;p++){var f=p%l;(p-f)/l===f?d[p]=0:d[p]=1/0}for(var g=Array(u),v=Array(u),y=0;y<s.length;y++){var b=s[y],x=b.source()[0],w=b.target()[0];if(x!==w){var E=c(x),k=c(w),C=E*l+k,S=r(b);if(d[C]>S&&(d[C]=S,g[C]=k,v[C]=b),!i){var T=k*l+E;!i&&d[T]>S&&(d[T]=S,g[T]=E,v[T]=b)}}}for(var P=0;P<l;P++)for(var _=0;_<l;_++){for(var M=_*l+P,B=0;B<l;B++){var A=_*l+B,N=P*l+B;d[M]+d[N]<d[A]&&(d[A]=d[M]+d[N],g[A]=g[M])}}var I=function(e){var n;return c((D(n=e)?t.filter(n):n)[0])};return{distance:function(e,t){return d[I(e)*l+I(t)]},path:function(e,n){var r,i=I(e),a=I(n),o=h(i);if(i===a)return o.collection();if(null==g[i*l+a])return t.collection();var s=t.collection(),u=i;for(s.merge(o);i!==a;)u=i,i=g[i*l+a],r=v[u*l+i],s.merge(r),s.merge(h(i));return s}}}},{bellmanFord:function(e){var t=this,n=tp(e),r=n.weight,i=n.directed,a=n.root,o=this,s=this.cy(),l=this.byGroup(),u=l.edges,c=l.nodes,h=c.length,d=new tr,p=!1,f=[];a=s.collection(a)[0],u.unmergeBy(function(e){return e.isLoop()});for(var g=u.length,v=function(e){var t=d.get(e.id());return!t&&(t={},d.set(e.id(),t)),t},y=function(e){return(D(e)?s.$(e):e)[0]},b=0;b<h;b++){var x=c[b],w=v(x);x.same(a)?w.dist=0:w.dist=1/0,w.pred=null,w.edge=null}for(var E=!1,k=function(e,t,n,r,i,a){var o=r.dist+a;o<i.dist&&!n.same(r.edge)&&(i.dist=o,i.pred=e,i.edge=n,E=!0)},C=1;C<h;C++){E=!1;for(var S=0;S<g;S++){var T=u[S],P=T.source(),_=T.target(),M=r(T),B=v(P),A=v(_);k(P,_,T,B,A,M),!i&&k(_,P,T,A,B,M)}if(!E)break}if(E){for(var N=[],I=0;I<g;I++){var O=u[I],L=O.source(),R=O.target(),z=r(O),V=v(L).dist,F=v(R).dist;if(V+z<F||!i&&F+z<V){if(!p&&(e1("Graph contains a negative weight cycle for Bellman-Ford"),p=!0),!1!==e.findNegativeWeightCycles){var j=[];V+z<F&&j.push(L),!i&&F+z<V&&j.push(R);for(var q=j.length,X=0;X<q;X++){var Y=j[X],W=[Y];W.push(v(Y).edge);for(var H=v(Y).pred;-1===W.indexOf(H);)W.push(H),W.push(v(H).edge),H=v(H).pred;for(var G=(W=W.slice(W.indexOf(H)))[0].id(),U=0,K=2;K<W.length;K+=2)W[K].id()<G&&(G=W[K].id(),U=K);(W=W.slice(U).concat(W.slice(0,U))).push(W[0]);var Z=W.map(function(e){return e.id()}).join(",");-1===N.indexOf(Z)&&(f.push(o.spawn(W)),N.push(Z))}}else break}}}return{distanceTo:function(e){return v(y(e)).dist},pathTo:function(e){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a,r=y(e),i=[],s=r;;){if(null==s)return t.spawn();var l=v(s),u=l.edge,c=l.pred;if(i.unshift(s[0]),s.same(n)&&i.length>0)break;null!=u&&i.unshift(u),s=c}return o.spawn(i)},hasNegativeWeightCycle:p,negativeWeightCycles:f}}},{kargerStein:function(){var e=this,t=this.byGroup(),n=t.nodes,r=t.edges;r.unmergeBy(function(e){return e.isLoop()});var i=n.length,a=r.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),s=Math.floor(i/tf);if(i<2){eJ("At least 2 nodes are required for Karger-Stein algorithm");return}for(var l=[],u=0;u<a;u++){var c=r[u];l.push([u,n.indexOf(c.source()),n.indexOf(c.target())])}for(var h=1/0,d=[],p=Array(i),f=Array(i),g=Array(i),v=function(e,t){for(var n=0;n<i;n++)t[n]=e[n]},y=0;y<=o;y++){for(var b=0;b<i;b++)f[b]=b;var x=tv(f,l.slice(),i,s),w=x.slice();v(f,g);var E=tv(f,x,s,2),k=tv(g,w,s,2);E.length<=k.length&&E.length<h?(h=E.length,d=E,v(f,p)):k.length<=E.length&&k.length<h&&(h=k.length,d=k,v(g,p))}for(var C=this.spawn(d.map(function(e){return r[e[0]]})),S=this.spawn(),D=this.spawn(),T=p[0],P=0;P<p.length;P++){var _=p[P],M=n[P];_===T?S.merge(M):D.merge(M)}var B=function(t){var n=e.spawn();return t.forEach(function(t){n.merge(t),t.connectedEdges().forEach(function(t){e.contains(t)&&!C.contains(t)&&n.merge(t)})}),n},A=[B(S),B(D)];return{cut:C,components:A,partition1:S,partition2:D}}},{pageRank:function(e){for(var t,n=ns(e),r=n.dampingFactor,i=n.precision,a=n.iterations,o=n.weight,s=this._private.cy,l=this.byGroup(),u=l.nodes,c=l.edges,h=u.length,d=h*h,p=c.length,f=Array(d),g=Array(h),v=(1-r)/h,y=0;y<h;y++){for(var b=0;b<h;b++)f[y*h+b]=0;g[y]=0}for(var x=0;x<p;x++){var w=c[x],E=w.data("source"),k=w.data("target");if(E!==k){var C=u.indexOfId(E),S=u.indexOfId(k),D=o(w),T=S*h+C;f[T]+=D,g[C]+=D}}for(var P=1/h+v,_=0;_<h;_++)if(0===g[_])for(var M=0;M<h;M++)f[M*h+_]=P;else for(var B=0;B<h;B++){var A=B*h+_;f[A]=f[A]/g[_]+v}for(var N=Array(h),I=Array(h),O=0;O<h;O++)N[O]=1;for(var L=0;L<a;L++){for(var R=0;R<h;R++)I[R]=0;for(var z=0;z<h;z++)for(var V=0;V<h;V++){var F=z*h+V;I[z]+=f[F]*N[V]}t_(I),t=N,N=I,I=t;for(var j=0,q=0;q<h;q++){var X=t[q]-N[q];j+=X*X}if(j<i)break}return{rank:function(e){return e=s.collection(e)[0],N[u.indexOf(e)]}}}},nu,nh,np,{markovClustering:nS,mcl:nS},{kMeans:function(e){var t,n=this.cy(),i=this.nodes(),a=null,o=nL(e),s=Array(o.k),l={};o.testMode?"number"==typeof o.testCentroids?(o.testCentroids,t=nz(i,o.k,o.attributes)):t="object"===r(o.testCentroids)?o.testCentroids:nz(i,o.k,o.attributes):t=nz(i,o.k,o.attributes);for(var u=!0,c=0;u&&c<o.maxIterations;){for(var h=0;h<i.length;h++)l[(a=i[h]).id()]=nV(a,t,o.distance,o.attributes,"kMeans");u=!1;for(var d=0;d<o.k;d++){var p=nF(d,i,l);if(0!==p.length){for(var f=o.attributes.length,g=t[d],v=Array(f),y=Array(f),b=0;b<f;b++){y[b]=0;for(var x,w,E=0;E<p.length;E++)a=p[E],y[b]+=o.attributes[b](a);if(v[b]=y[b]/p.length,x=v[b],w=g[b],!(Math.abs(w-x)<=o.sensitivityThreshold))u=!0}t[d]=v,s[d]=n.collection(p)}}c++}return s},kMedoids:function(e){var t,n,i=this.cy(),a=this.nodes(),o=null,s=nL(e),l=Array(s.k),u={},c=Array(s.k);s.testMode?"number"==typeof s.testCentroids||(t="object"===r(s.testCentroids)?s.testCentroids:nX(a,s.k)):t=nX(a,s.k);for(var h=!0,d=0;h&&d<s.maxIterations;){for(var p=0;p<a.length;p++)u[(o=a[p]).id()]=nV(o,t,s.distance,s.attributes,"kMedoids");h=!1;for(var f=0;f<t.length;f++){var g=nF(f,a,u);if(0!==g.length){c[f]=nY(t[f],g,s.attributes);for(var v=0;v<g.length;v++)(n=nY(g[v],g,s.attributes))<c[f]&&(c[f]=n,t[f]=g[v],h=!0);l[f]=i.collection(g)}}d++}return l},fuzzyCMeans:nU,fcm:nU},{hierarchicalClustering:n2,hca:n2},{affinityPropagation:re,ap:re},{hierholzer:function(e){if(!_(e)){var t,n,r,i=arguments;e={root:i[0],directed:i[1]}}var a=rt(e),o=a.root,s=a.directed,l=!1;o&&(r=D(o)?this.filter(o)[0].id():o[0].id());var u={},c={};s?this.forEach(function(e){var r=e.id();if(e.isNode()){var i=e.indegree(!0),a=e.outdegree(!0),o=i-a,s=a-i;1==o?t?l=!0:t=r:1==s?n?l=!0:n=r:(s>1||o>1)&&(l=!0),u[r]=[],e.outgoers().forEach(function(e){e.isEdge()&&u[r].push(e.id())})}else c[r]=[void 0,e.target().id()]}):this.forEach(function(e){var r=e.id();e.isNode()?(e.degree(!0)%2&&(t?n?l=!0:n=r:t=r),u[r]=[],e.connectedEdges().forEach(function(e){return u[r].push(e.id())})):c[r]=[e.source().id(),e.target().id()]});var h={found:!1,trail:void 0};if(l)return h;if(n&&t){if(s){if(r&&n!=r)return h;r=n}else{if(r&&n!=r&&t!=r)return h;!r&&(r=n)}}else!r&&(r=this[0].id());var d=function(e){for(var t,n,r,i=e,a=[e];u[i].length;)n=c[t=u[i].shift()][0],i!=(r=c[t][1])?(u[r]=u[r].filter(function(e){return e!=t}),i=r):!s&&i!=n&&(u[n]=u[n].filter(function(e){return e!=t}),i=n),a.unshift(t),a.unshift(i);return a},p=[],f=[];for(f=d(r);1!=f.length;)0==u[f[0]].length?(p.unshift(this.getElementById(f.shift())),p.unshift(this.getElementById(f.shift()))):f=d(f.shift()).concat(f);for(var g in p.unshift(this.getElementById(f.shift())),u)if(u[g].length)return h;return h.found=!0,h.trail=this.spawn(p,!0),h}},{hopcroftTarjanBiconnected:rn,htbc:rn,htb:rn,hopcroftTarjanBiconnectedComponents:rn},{tarjanStronglyConnected:rr,tsc:rr,tscc:rr,tarjanStronglyConnectedComponents:rr}].forEach(function(e){Z(ri,e)});var ra=function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=0,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof t&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))};ra.prototype={fulfill:function(e){return ro(this,1,"fulfillValue",e)},reject:function(e){return ro(this,2,"rejectReason",e)},then:function(e,t){var n=new ra;return this.onFulfilled.push(ru(e,n,"fulfill")),this.onRejected.push(ru(t,n,"reject")),rs(this),n.proxy}};var ro=function(e,t,n,r){return 0===e.state&&(e.state=t,e[n]=r,rs(e)),e},rs=function(e){1===e.state?rl(e,"onFulfilled",e.fulfillValue):2===e.state&&rl(e,"onRejected",e.rejectReason)},rl=function(e,t,n){if(0!==e[t].length){var r=e[t];e[t]=[];var i=function(){for(var e=0;e<r.length;e++)r[e](n)};"function"==typeof setImmediate?setImmediate(i):setTimeout(i,0)}},ru=function(e,t,n){return function(r){if("function"!=typeof e)t[n].call(t,r);else{var i;try{i=e(r)}catch(e){t.reject(e);return}rc(t,i)}}},rc=function e(t,n){if(t===n||t.proxy===n){t.reject(TypeError("cannot resolve promise with itself"));return}if("object"===r(n)&&null!==n||"function"==typeof n)try{i=n.then}catch(e){t.reject(e);return}if("function"==typeof i){var i,a=!1;try{i.call(n,function(r){!a&&(a=!0,r===n?t.reject(TypeError("circular thenable chain")):e(t,r))},function(e){!a&&(a=!0,t.reject(e))})}catch(e){!a&&t.reject(e)}return}t.fulfill(n)};ra.all=function(e){return new ra(function(t,n){for(var r=Array(e.length),i=0,a=function(n,a){r[n]=a,++i===e.length&&t(r)},o=0;o<e.length;o++)!function(t){var r=e[t];null!=r&&null!=r.then?r.then(function(e){a(t,e)},function(e){n(e)}):a(t,r)}(o)})},ra.resolve=function(e){return new ra(function(t,n){t(e)})},ra.reject=function(e){return new ra(function(t,n){n(e)})};var rh="undefined"!=typeof Promise?Promise:ra,rd=function(e,t,n){var r=O(e),i=this._private=Z({duration:1e3},t,n);if(i.target=e,i.style=i.style||i.css,i.started=!1,i.playing=!1,i.hooked=!1,i.applying=!1,i.progress=0,i.completes=[],i.frames=[],i.complete&&T(i.complete)&&i.completes.push(i.complete),!r){var a=e.position();i.startPosition=i.startPosition||{x:a.x,y:a.y},i.startStyle=i.startStyle||e.cy().style().getAnimationStartStyle(e,i.style)}if(r){var o=e.pan();i.startPan={x:o.x,y:o.y},i.startZoom=e.zoom()}this.length=1,this[0]=this},rp=rd.prototype;Z(rp,{instanceString:function(){return"animation"},hook:function(){var e=this._private;if(!e.hooked){var t,n=e.target._private.animation;(t=e.queue?n.queue:n.current).push(this),A(e.target)&&e.target.cy().addToAnimationPool(e.target),e.hooked=!0}return this},play:function(){var e=this._private;return 1===e.progress&&(e.progress=0),e.playing=!0,e.started=!1,e.stopped=!1,this.hook(),this},playing:function(){return this._private.playing},apply:function(){var e=this._private;return e.applying=!0,e.started=!1,e.stopped=!1,this.hook(),this},applying:function(){return this._private.applying},pause:function(){var e=this._private;return e.playing=!1,e.started=!1,this},stop:function(){var e=this._private;return e.playing=!1,e.started=!1,e.stopped=!0,this},rewind:function(){return this.progress(0)},fastforward:function(){return this.progress(1)},time:function(e){var t=this._private;return void 0===e?t.progress*t.duration:this.progress(e/t.duration)},progress:function(e){var t=this._private,n=t.playing;return void 0===e?t.progress:(n&&this.pause(),t.progress=e,t.started=!1,n&&this.play(),this)},completed:function(){return 1===this._private.progress},reverse:function(){var e=this._private,t=e.playing;t&&this.pause(),e.progress=1-e.progress,e.started=!1;var n=function(t,n){var r=e[t];if(null!=r)e[t]=e[n],e[n]=r};if(n("zoom","startZoom"),n("pan","startPan"),n("position","startPosition"),e.style)for(var r=0;r<e.style.length;r++){var i=e.style[r],a=i.name,o=e.startStyle[a];e.startStyle[a]=i,e.style[r]=o}return t&&this.play(),this},promise:function(e){var t,n=this._private;if("frame"===e)t=n.frames;else t=n.completes;return new rh(function(e,n){t.push(function(){e()})})}}),rp.complete=rp.completed,rp.run=rp.play,rp.running=rp.playing;var rf=Array.isArray,rg=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rv=/^\w*$/,ry=function(e,t){if(rf(e))return!1;var n=typeof e;return!!("number"==n||"symbol"==n||"boolean"==n||null==e||eE(e))||rv.test(e)||!rg.test(e)||null!=t&&e in Object(t)},rm=function(e){if(!ei(e))return!1;var t=ew(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},rb=el["__core-js_shared__"];var rx=(oG=/[^.]+$/.exec(rb&&rb.keys&&rb.keys.IE_PROTO||""))?"Symbol(src)_1."+oG:"",rw=Function.prototype.toString,rE=function(e){if(null!=e){try{return rw.call(e)}catch(e){}try{return e+""}catch(e){}}return""},rk=/^\[object .+?Constructor\]$/,rC=Object.prototype,rS=Function.prototype.toString,rD=rC.hasOwnProperty,rT=RegExp("^"+rS.call(rD).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),rP=function(e){var t;return!!ei(e)&&(t=e,!rx||!(rx in t))&&(rm(e)?rT:rk).test(rE(e))},r_=function(e,t){var n,r,i=(n=e,r=t,null==n?void 0:n[r]);return rP(i)?i:void 0},rM=r_(Object,"create"),rB=Object.prototype.hasOwnProperty,rA=Object.prototype.hasOwnProperty;function rN(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}rN.prototype.clear=function(){this.__data__=rM?rM(null):{},this.size=0},rN.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},rN.prototype.get=function(e){var t=this.__data__;if(rM){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return rB.call(t,e)?t[e]:void 0},rN.prototype.has=function(e){var t=this.__data__;return rM?void 0!==t[e]:rA.call(t,e)},rN.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=rM&&void 0===t?"__lodash_hash_undefined__":t,this};var rI=function(e,t){return e===t||e!=e&&t!=t},rO=function(e,t){for(var n=e.length;n--;)if(rI(e[n][0],t))return n;return -1},rL=Array.prototype.splice;function rR(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}rR.prototype.clear=function(){this.__data__=[],this.size=0},rR.prototype.delete=function(e){var t=this.__data__,n=rO(t,e);return!(n<0)&&(n==t.length-1?t.pop():rL.call(t,n,1),--this.size,!0)},rR.prototype.get=function(e){var t=this.__data__,n=rO(t,e);return n<0?void 0:t[n][1]},rR.prototype.has=function(e){return rO(this.__data__,e)>-1},rR.prototype.set=function(e,t){var n=this.__data__,r=rO(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var rz=r_(el,"Map"),rV=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e},rF=function(e,t){var n=e.__data__;return rV(t)?n["string"==typeof t?"string":"hash"]:n.map};function rj(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}rj.prototype.clear=function(){this.size=0,this.__data__={hash:new rN,map:new(rz||rR),string:new rN}},rj.prototype.delete=function(e){var t=rF(this,e).delete(e);return this.size-=t?1:0,t},rj.prototype.get=function(e){return rF(this,e).get(e)},rj.prototype.has=function(e){return rF(this,e).has(e)},rj.prototype.set=function(e,t){var n=rF(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this};function rq(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw TypeError("Expected a function");var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(rq.Cache||rj),n}rq.Cache=rj;var rX=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rY=/\\(\\)?/g;var rW=(oK=(oU=rq(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(rX,function(e,n,r,i){t.push(r?i.replace(rY,"$1"):n||e)}),t},function(e){return 500===oK.size&&oK.clear(),e})).cache,oU),rH=function(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i},rG=1/0,rU=ep?ep.prototype:void 0,rK=rU?rU.toString:void 0,rZ=function e(t){if("string"==typeof t)return t;if(rf(t))return rH(t,e)+"";if(eE(t))return rK?rK.call(t):"";var n=t+"";return"0"==n&&1/t==-rG?"-0":n},r$=function(e){return null==e?"":rZ(e)},rQ=function(e,t){return rf(e)?e:ry(e,t)?[e]:rW(r$(e))},rJ=1/0,r0=function(e){if("string"==typeof e||eE(e))return e;var t=e+"";return"0"==t&&1/e==-rJ?"-0":t},r1=function(e,t){t=rQ(t,e);for(var n=0,r=t.length;null!=e&&n<r;)e=e[r0(t[n++])];return n&&n==r?e:void 0},r2=function(e,t,n){var r=null==e?void 0:r1(e,t);return void 0===r?n:r},r5=function(){try{var e=r_(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),r3=function(e,t,n){"__proto__"==t&&r5?r5(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n},r4=Object.prototype.hasOwnProperty,r9=function(e,t,n){var r=e[t];(!(r4.call(e,t)&&rI(r,n))||void 0===n&&!(t in e))&&r3(e,t,n)},r6=/^(?:0|[1-9]\d*)$/,r8=function(e,t){var n=typeof e;return!!(t=null==t?0x1fffffffffffff:t)&&("number"==n||"symbol"!=n&&r6.test(e))&&e>-1&&e%1==0&&e<t},r7=function(e,t,n,r){if(!ei(e))return e;t=rQ(t,e);for(var i=-1,a=t.length,o=a-1,s=e;null!=s&&++i<a;){var l=r0(t[i]),u=n;if("__proto__"===l||"constructor"===l||"prototype"===l)break;if(i!=o){var c=s[l];void 0===(u=r?r(c,l,s):void 0)&&(u=ei(c)?c:r8(t[i+1])?[]:{})}r9(s,l,u),s=s[l]}return e},ie=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t},it={};[{animated:function(){return function(){var e=void 0!==this.length;if(!(this._private.cy||this).styleEnabled())return!1;var t=(e?this:[this])[0];if(t)return t._private.animation.current.length>0}},clearQueue:function(){return function(){var e=void 0!==this.length?this:[this];if(!(this._private.cy||this).styleEnabled())return this;for(var t=0;t<e.length;t++)e[t]._private.animation.queue=[];return this}},delay:function(){return function(e,t){return(this._private.cy||this).styleEnabled()?this.animate({delay:e,duration:e,complete:t}):this}},delayAnimation:function(){return function(e,t){return(this._private.cy||this).styleEnabled()?this.animation({delay:e,duration:e,complete:t}):this}},animation:function(){return function(e,t){var n=void 0!==this.length,r=n?this:[this],i=this._private.cy||this,a=!n,o=!a;if(!i.styleEnabled())return this;var s=i.style();if(0===Object.keys(e=Z({},e,t)).length)return new rd(r[0],e);switch(void 0===e.duration&&(e.duration=400),e.duration){case"slow":e.duration=600;break;case"fast":e.duration=200}if(o&&(e.style=s.getPropsList(e.style||e.css),e.css=void 0),o&&null!=e.renderedPosition){var l=e.renderedPosition,u=i.pan(),c=i.zoom();e.position=tm(l,c,u)}if(a&&null!=e.panBy){var h=e.panBy,d=i.pan();e.pan={x:d.x+h.x,y:d.y+h.y}}var p=e.center||e.centre;if(a&&null!=p){var f=i.getCenterPan(p.eles,e.zoom);null!=f&&(e.pan=f)}if(a&&null!=e.fit){var g=e.fit,v=i.getFitViewport(g.eles||g.boundingBox,g.padding);null!=v&&(e.pan=v.pan,e.zoom=v.zoom)}if(a&&_(e.zoom)){var y=i.getZoomedViewport(e.zoom);null!=y?(y.zoomed&&(e.zoom=y.zoom),y.panned&&(e.pan=y.pan)):e.zoom=null}return new rd(r[0],e)}},animate:function(){return function(e,t){var n=void 0!==this.length?this:[this];if(!(this._private.cy||this).styleEnabled())return this;t&&(e=Z({},e,t));for(var r=0;r<n.length;r++){var i=n[r],a=i.animated()&&(void 0===e.queue||e.queue);i.animation(e,a?{queue:!0}:void 0).play()}return this}},stop:function(){return function(e,t){var n=void 0!==this.length?this:[this],r=this._private.cy||this;if(!r.styleEnabled())return this;for(var i=0;i<n.length;i++){for(var a=n[i]._private,o=a.animation.current,s=0;s<o.length;s++){var l=o[s]._private;t&&(l.duration=0)}e&&(a.animation.queue=[]),!t&&(a.animation.current=[])}return r.notify("draw"),this}}},{data:function(e){return e=Z({},{field:"data",bindingEvent:"data",allowBinding:!1,allowSetting:!1,allowGetting:!1,settingEvent:"data",settingTriggersEvent:!1,triggerFnName:"trigger",immutableKeys:{},updateStyle:!1,beforeGet:function(e){},beforeSet:function(e,t){},onSet:function(e){},canSet:function(e){return!0}},e),function(t,n){var r,i=e,a=void 0!==this.length,o=a?this:[this],l=a?this[0]:this;if(D(t)){var u=-1!==t.indexOf(".")&&(rf(f=t)?rH(f,r0):eE(f)?[f]:ie(rW(r$(f))));if(i.allowGetting&&void 0===n)return l&&(i.beforeGet(l),p=u&&void 0===l._private[i.field][t]?r2(l._private[i.field],u):l._private[i.field][t]),p;if(i.allowSetting&&void 0!==n&&!i.immutableKeys[t]){var c=s({},t,n);i.beforeSet(this,c);for(var h=0,d=o.length;h<d;h++){var p,f,g,v,y,b=o[h];if(i.canSet(b)){if(u&&void 0===l._private[i.field][t]){;g=b._private[i.field],v=u,y=n,null==g||r7(g,v,y)}else b._private[i.field][t]=n}}i.updateStyle&&this.updateStyle(),i.onSet(this),i.settingTriggersEvent&&this[i.triggerFnName](i.settingEvent)}}else if(i.allowSetting&&_(t)){var x,w,E=Object.keys(t);i.beforeSet(this,t);for(var k=0;k<E.length;k++)if(w=t[x=E[k]],!i.immutableKeys[x])for(var C=0;C<o.length;C++){var S=o[C];i.canSet(S)&&(S._private[i.field][x]=w)}i.updateStyle&&this.updateStyle(),i.onSet(this),i.settingTriggersEvent&&this[i.triggerFnName](i.settingEvent)}else if(i.allowBinding&&T(t))this.on(i.bindingEvent,t);else if(i.allowGetting&&void 0===t)return l&&(i.beforeGet(l),r=l._private[i.field]),r;return this}},removeData:function(e){return e=Z({},{field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!1,immutableKeys:{}},e),function(t){var n=e,r=void 0!==this.length?this:[this];if(D(t)){for(var i=t.split(/\s+/),a=i.length,o=0;o<a;o++){var s=i[o];if(!R(s)){if(!n.immutableKeys[s])for(var l=0,u=r.length;l<u;l++)r[l]._private[n.field][s]=void 0}}n.triggerEvent&&this[n.triggerFnName](n.event)}else if(void 0===t){for(var c=0,h=r.length;c<h;c++){for(var d=r[c]._private[n.field],p=Object.keys(d),f=0;f<p.length;f++){var g=p[f];!n.immutableKeys[g]&&(d[g]=void 0)}}n.triggerEvent&&this[n.triggerFnName](n.event)}return this}}},{eventAliasesOn:function(e){e.addListener=e.listen=e.bind=e.on,e.unlisten=e.unbind=e.off=e.removeListener,e.trigger=e.emit,e.pon=e.promiseOn=function(e,t){var n=this,r=Array.prototype.slice.call(arguments,0);return new rh(function(e,t){var i=r.concat([function(t){n.off.apply(n,a),e(t)}]),a=i.concat([]);n.on.apply(n,i)})}}}].forEach(function(e){Z(it,e)});var ir={animate:it.animate(),animation:it.animation(),animated:it.animated(),clearQueue:it.clearQueue(),delay:it.delay(),delayAnimation:it.delayAnimation(),stop:it.stop()},ii={classes:function(e){if(void 0===e){var t=[];return this[0]._private.classes.forEach(function(e){return t.push(e)}),t}!P(e)&&(e=(e||"").match(/\S+/g)||[]);for(var n=[],r=new ta(e),i=0;i<this.length;i++){for(var a=this[i],o=a._private,s=o.classes,l=!1,u=0;u<e.length;u++){var c=e[u];if(!s.has(c)){l=!0;break}}!l&&(l=s.size!==e.length),l&&(o.classes=r,n.push(a))}return n.length>0&&this.spawn(n).updateStyle().emit("class"),this},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return null!=t&&t._private.classes.has(e)},toggleClass:function(e,t){!P(e)&&(e=e.match(/\S+/g)||[]);for(var n=void 0===t,r=[],i=0,a=this.length;i<a;i++){for(var o=this[i],s=o._private.classes,l=!1,u=0;u<e.length;u++){var c=e[u],h=s.has(c),d=!1;t||n&&!h?(s.add(c),d=!0):(!t||n&&h)&&(s.delete(c),d=!0),!l&&d&&(r.push(o),l=!0)}}return r.length>0&&this.spawn(r).updateStyle().emit("class"),this},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var n=this;if(null==t)t=250;else if(0===t)return n;return n.addClass(e),setTimeout(function(){n.removeClass(e)},t),n}};ii.className=ii.classNames=ii.classes;var ia={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:Y,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};ia.variable="(?:[\\w-.]|(?:\\\\"+ia.metaChar+"))+",ia.className="(?:[\\w-]|(?:\\\\"+ia.metaChar+"))+",ia.value=ia.string+"|"+ia.number,ia.id=ia.variable,!function(){var e,t,n;for(n=0,e=ia.comparatorOp.split("|");n<e.length;n++)t=e[n],ia.comparatorOp+="|@"+t;for(n=0,e=ia.comparatorOp.split("|");n<e.length;n++){if(!((t=e[n]).indexOf("!")>=0)&&"="!==t)ia.comparatorOp+="|\\!"+t}}();var io=function(){return{checks:[]}},is={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},il=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort(function(e,t){var n;return n=e.selector,-1*K(n,t.selector)}),iu=function(){for(var e,t={},n=0;n<il.length;n++)t[(e=il[n]).selector]=e.matches;return t}(),ic="("+il.map(function(e){return e.selector}).join("|")+")",ih=function(e){return e.replace(RegExp("\\\\("+ia.metaChar+")","g"),function(e,t){return t})},id=function(e,t,n){e[e.length-1]=n},ip=[{name:"group",query:!0,regex:"("+ia.group+")",populate:function(e,t,n){var r=l(n,1)[0];t.checks.push({type:is.GROUP,value:"*"===r?r:r+"s"})}},{name:"state",query:!0,regex:ic,populate:function(e,t,n){var r=l(n,1)[0];t.checks.push({type:is.STATE,value:r})}},{name:"id",query:!0,regex:"\\#("+ia.id+")",populate:function(e,t,n){var r=l(n,1)[0];t.checks.push({type:is.ID,value:ih(r)})}},{name:"className",query:!0,regex:"\\.("+ia.className+")",populate:function(e,t,n){var r=l(n,1)[0];t.checks.push({type:is.CLASS,value:ih(r)})}},{name:"dataExists",query:!0,regex:"\\[\\s*("+ia.variable+")\\s*\\]",populate:function(e,t,n){var r=l(n,1)[0];t.checks.push({type:is.DATA_EXIST,field:ih(r)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+ia.variable+")\\s*("+ia.comparatorOp+")\\s*("+ia.value+")\\s*\\]",populate:function(e,t,n){var r=l(n,3),i=r[0],a=r[1],o=r[2];o=null!=RegExp("^"+ia.string+"$").exec(o)?o.substring(1,o.length-1):parseFloat(o),t.checks.push({type:is.DATA_COMPARE,field:ih(i),operator:a,value:o})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+ia.boolOp+")\\s*("+ia.variable+")\\s*\\]",populate:function(e,t,n){var r=l(n,2),i=r[0],a=r[1];t.checks.push({type:is.DATA_BOOL,field:ih(a),operator:i})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+ia.meta+")\\s*("+ia.comparatorOp+")\\s*("+ia.number+")\\s*\\]\\]",populate:function(e,t,n){var r=l(n,3),i=r[0],a=r[1],o=r[2];t.checks.push({type:is.META_COMPARE,field:ih(i),operator:a,value:parseFloat(o)})}},{name:"nextQuery",separator:!0,regex:ia.separator,populate:function(e,t){var n=e.currentSubject,r=e.edgeCount,i=e.compoundCount,a=e[e.length-1];return null!=n&&(a.subject=n,e.currentSubject=null),a.edgeCount=r,a.compoundCount=i,e.edgeCount=0,e.compoundCount=0,e[e.length++]=io()}},{name:"directedEdge",separator:!0,regex:ia.directedEdge,populate:function(e,t){if(null==e.currentSubject){var n=io(),r=io();return n.checks.push({type:is.DIRECTED_EDGE,source:t,target:r}),id(e,t,n),e.edgeCount++,r}var i=io(),a=io();return i.checks.push({type:is.NODE_SOURCE,source:t,target:a}),id(e,t,i),e.edgeCount++,a}},{name:"undirectedEdge",separator:!0,regex:ia.undirectedEdge,populate:function(e,t){if(null==e.currentSubject){var n=io(),r=io();return n.checks.push({type:is.UNDIRECTED_EDGE,nodes:[t,r]}),id(e,t,n),e.edgeCount++,r}var i=io(),a=io();return i.checks.push({type:is.NODE_NEIGHBOR,node:t,neighbor:a}),id(e,t,i),a}},{name:"child",separator:!0,regex:ia.child,populate:function(e,t){if(null==e.currentSubject){var n=io(),r=io(),i=e[e.length-1];return n.checks.push({type:is.CHILD,parent:i,child:r}),id(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=io(),o=e[e.length-1],s=io(),l=io(),u=io(),c=io();return a.checks.push({type:is.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:is.TRUE}],c.checks.push({type:is.TRUE}),s.checks.push({type:is.PARENT,parent:c,child:u}),id(e,o,a),e.currentSubject=l,e.compoundCount++,u}var h=io(),d=io(),p=[{type:is.PARENT,parent:h,child:d}];return h.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"descendant",separator:!0,regex:ia.descendant,populate:function(e,t){if(null==e.currentSubject){var n=io(),r=io(),i=e[e.length-1];return n.checks.push({type:is.DESCENDANT,ancestor:i,descendant:r}),id(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=io(),o=e[e.length-1],s=io(),l=io(),u=io(),c=io();return a.checks.push({type:is.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:is.TRUE}],c.checks.push({type:is.TRUE}),s.checks.push({type:is.ANCESTOR,ancestor:c,descendant:u}),id(e,o,a),e.currentSubject=l,e.compoundCount++,u}var h=io(),d=io(),p=[{type:is.ANCESTOR,ancestor:h,descendant:d}];return h.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"subject",modifier:!0,regex:ia.subject,populate:function(e,t){if(null!=e.currentSubject&&e.currentSubject!==t)return e1("Redefinition of subject in selector `"+e.toString()+"`"),!1;e.currentSubject=t;var n=e[e.length-1].checks[0],r=null==n?null:n.type;r===is.DIRECTED_EDGE?n.type=is.NODE_TARGET:r===is.UNDIRECTED_EDGE&&(n.type=is.NODE_NEIGHBOR,n.node=n.nodes[1],n.neighbor=n.nodes[0],n.nodes=null)}}];ip.forEach(function(e){return e.regexObj=RegExp("^"+e.regex)});var ig=function(e){for(var t,n,r,i=0;i<ip.length;i++){var a=ip[i],o=a.name,s=e.match(a.regexObj);if(null!=s){n=s,t=a,r=o;var l=s[0];e=e.substring(l.length);break}}return{expr:t,match:n,name:r,remaining:e}},iv=function(e){var t=e.match(/^\s+/);if(t){var n=t[0];e=e.substring(n.length)}return e},iy=function(e,t,n){var r,i,a,o=D(e),s=M(e),l=D(n),u=!1,c=!1,h=!1;switch(t.indexOf("!")>=0&&(t=t.replace("!",""),c=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),u=!0),(o||l||u)&&(i=o||s?""+e:"",a=""+n),u&&(e=i=i.toLowerCase(),n=a=a.toLowerCase()),t){case"*=":r=i.indexOf(a)>=0;break;case"$=":r=i.indexOf(a,i.length-a.length)>=0;break;case"^=":r=0===i.indexOf(a);break;case"=":r=e===n;break;case">":h=!0,r=e>n;break;case">=":h=!0,r=e>=n;break;case"<":h=!0,r=e<n;break;case"<=":h=!0,r=e<=n;break;default:r=!1}return c&&(null!=e||!h)&&(r=!r),r},im=function(e,t){switch(t){case"?":return!!e;case"!":return!e;case"^":return void 0===e}},ib=function(e,t){return e.data(t)},ix=[],iw=function(e,t){return e.checks.every(function(e){return ix[e.type](e,t)})};ix[is.GROUP]=function(e,t){var n=e.value;return"*"===n||n===t.group()},ix[is.STATE]=function(e,t){var n,r;return n=e.value,r=t,iu[n](r)},ix[is.ID]=function(e,t){var n=e.value;return t.id()===n},ix[is.CLASS]=function(e,t){var n=e.value;return t.hasClass(n)},ix[is.META_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return iy(t[n](),r,i)},ix[is.DATA_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return iy(ib(t,n),r,i)},ix[is.DATA_BOOL]=function(e,t){var n=e.field,r=e.operator;return im(ib(t,n),r)},ix[is.DATA_EXIST]=function(e,t){var n=e.field;return e.operator,void 0!==ib(t,n)},ix[is.UNDIRECTED_EDGE]=function(e,t){var n=e.nodes[0],r=e.nodes[1],i=t.source(),a=t.target();return iw(n,i)&&iw(r,a)||iw(r,i)&&iw(n,a)},ix[is.NODE_NEIGHBOR]=function(e,t){return iw(e.node,t)&&t.neighborhood().some(function(t){return t.isNode()&&iw(e.neighbor,t)})},ix[is.DIRECTED_EDGE]=function(e,t){return iw(e.source,t.source())&&iw(e.target,t.target())},ix[is.NODE_SOURCE]=function(e,t){return iw(e.source,t)&&t.outgoers().some(function(t){return t.isNode()&&iw(e.target,t)})},ix[is.NODE_TARGET]=function(e,t){return iw(e.target,t)&&t.incomers().some(function(t){return t.isNode()&&iw(e.source,t)})},ix[is.CHILD]=function(e,t){return iw(e.child,t)&&iw(e.parent,t.parent())},ix[is.PARENT]=function(e,t){return iw(e.parent,t)&&t.children().some(function(t){return iw(e.child,t)})},ix[is.DESCENDANT]=function(e,t){return iw(e.descendant,t)&&t.ancestors().some(function(t){return iw(e.ancestor,t)})},ix[is.ANCESTOR]=function(e,t){return iw(e.ancestor,t)&&t.descendants().some(function(t){return iw(e.descendant,t)})},ix[is.COMPOUND_SPLIT]=function(e,t){return iw(e.subject,t)&&iw(e.left,t)&&iw(e.right,t)},ix[is.TRUE]=function(){return!0},ix[is.COLLECTION]=function(e,t){return e.value.has(t)},ix[is.FILTER]=function(e,t){return(0,e.value)(t)};var iE=function(e){this.inputText=e,this.currentSubject=null,this.compoundCount=0,this.edgeCount=0,this.length=0,null==e||D(e)&&e.match(/^\s*$/)||(A(e)?this.addQuery({checks:[{type:is.COLLECTION,value:e.collection()}]}):T(e)?this.addQuery({checks:[{type:is.FILTER,value:e}]}):D(e)?!this.parse(e)&&(this.invalid=!0):eJ("A selector must be created from a string; found "))},ik=iE.prototype;[{parse:function(e){var t=this.inputText=e,n=this[0]=io();for(this.length=1,t=iv(t);;){var r=ig(t);if(null==r.expr)return e1("The selector `"+e+"`is invalid"),!1;var i=r.match.slice(1),a=r.expr.populate(this,n,i);if(!1===a)return!1;null!=a&&(n=a);if((t=r.remaining).match(/^\s*$/))break}var o=this[this.length-1];null!=this.currentSubject&&(o.subject=this.currentSubject),o.edgeCount=this.edgeCount,o.compoundCount=this.compoundCount;for(var s=0;s<this.length;s++){var l=this[s];if(l.compoundCount>0&&l.edgeCount>0)return e1("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(l.edgeCount>1)return e1("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;1===l.edgeCount&&e1("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},toString:function(){if(null!=this.toStringCache)return this.toStringCache;for(var e=function(e){return null==e?"":e},t=function(t){return D(t)?'"'+t+'"':e(t)},n=function(e){return" "+e+" "},r=function(r,a){var o=r.type,s=r.value;switch(o){case is.GROUP:var l=e(s);return l.substring(0,l.length-1);case is.DATA_COMPARE:return"["+r.field+n(e(r.operator))+t(s)+"]";case is.DATA_BOOL:var u=r.operator,c=r.field;return"["+e(u)+c+"]";case is.DATA_EXIST:return"["+r.field+"]";case is.META_COMPARE:var h=r.operator;return"[["+r.field+n(e(h))+t(s)+"]]";case is.STATE:return s;case is.ID:return"#"+s;case is.CLASS:return"."+s;case is.PARENT:case is.CHILD:return i(r.parent,a)+n(">")+i(r.child,a);case is.ANCESTOR:case is.DESCENDANT:return i(r.ancestor,a)+" "+i(r.descendant,a);case is.COMPOUND_SPLIT:var d=i(r.left,a),p=i(r.subject,a),f=i(r.right,a);return d+(d.length>0?" ":"")+p+f;case is.TRUE:return""}},i=function(e,t){return e.checks.reduce(function(n,i,a){return n+(t===e&&0===a?"$":"")+r(i,t)},"")},a="",o=0;o<this.length;o++){var s=this[o];a+=i(s,s.subject),this.length>1&&o<this.length-1&&(a+=", ")}return this.toStringCache=a,a}},{matches:function(e){for(var t=0;t<this.length;t++)if(iw(this[t],e))return!0;return!1},filter:function(e){var t=this;if(1===t.length&&1===t[0].checks.length&&t[0].checks[0].type===is.ID)return e.getElementById(t[0].checks[0].value).collection();var n=function(e){for(var n=0;n<t.length;n++)if(iw(t[n],e))return!0;return!1};return null==t.text()&&(n=function(){return!0}),e.filter(n)}}].forEach(function(e){return Z(ik,e)}),ik.text=function(){return this.inputText},ik.size=function(){return this.length},ik.eq=function(e){return this[e]},ik.sameText=function(e){return!this.invalid&&!e.invalid&&this.text()===e.text()},ik.addQuery=function(e){this[this.length++]=e},ik.selector=ik.toString;var iC={allAre:function(e){var t=new iE(e);return this.every(function(e){return t.matches(e)})},is:function(e){var t=new iE(e);return this.some(function(e){return t.matches(e)})},some:function(e,t){for(var n=0;n<this.length;n++)if(t?e.apply(t,[this[n],n,this]):e(this[n],n,this))return!0;return!1},every:function(e,t){for(var n=0;n<this.length;n++)if(!(t?e.apply(t,[this[n],n,this]):e(this[n],n,this)))return!1;return!0},same:function(e){if(this===e)return!0;e=this.cy().collection(e);var t=this.length;return t===e.length&&(1===t?this[0]===e[0]:this.every(function(t){return e.hasElementWithId(t.id())}))},anySame:function(e){return e=this.cy().collection(e),this.some(function(t){return e.hasElementWithId(t.id())})},allAreNeighbors:function(e){e=this.cy().collection(e);var t=this.neighborhood();return e.every(function(e){return t.hasElementWithId(e.id())})},contains:function(e){e=this.cy().collection(e);var t=this;return e.every(function(e){return t.hasElementWithId(e.id())})}};iC.allAreNeighbours=iC.allAreNeighbors,iC.has=iC.contains,iC.equal=iC.equals=iC.same;var iS=function(e,t){return function(n,r,i,a){if(null==n?o="":A(n)&&1===n.length&&(o=n.id()),1!==this.length||!o)return e.call(this,n,r,i,a);var o,s=this[0]._private,l=s.traversalCache=s.traversalCache||{},u=l[t]=l[t]||[],c=eq(o),h=u[c];return h?h:u[c]=e.call(this,n,r,i,a)}},iD={parent:function(e){var t=[];if(1===this.length){var n=this[0]._private.parent;if(n)return n}for(var r=0;r<this.length;r++){var i=this[r]._private.parent;i&&t.push(i)}return this.spawn(t,!0).filter(e)},parents:function(e){for(var t=[],n=this.parent();n.nonempty();){for(var r=0;r<n.length;r++){var i=n[r];t.push(i)}n=n.parent()}return this.spawn(t,!0).filter(e)},commonAncestors:function(e){for(var t,n=0;n<this.length;n++){var r=this[n].parents();t=(t=t||r).intersect(r)}return t.filter(e)},orphans:function(e){return this.stdFilter(function(e){return e.isOrphan()}).filter(e)},nonorphans:function(e){return this.stdFilter(function(e){return e.isChild()}).filter(e)},children:iS(function(e){for(var t=[],n=0;n<this.length;n++){for(var r=this[n]._private.children,i=0;i<r.length;i++)t.push(r[i])}return this.spawn(t,!0).filter(e)},"children"),siblings:function(e){return this.parent().children().not(this).filter(e)},isParent:function(){var e=this[0];if(e)return e.isNode()&&0!==e._private.children.length},isChildless:function(){var e=this[0];if(e)return e.isNode()&&0===e._private.children.length},isChild:function(){var e=this[0];if(e)return e.isNode()&&null!=e._private.parent},isOrphan:function(){var e=this[0];if(e)return e.isNode()&&null==e._private.parent},descendants:function(e){var t=[];return!function e(n){for(var r=0;r<n.length;r++){var i=n[r];t.push(i),i.children().nonempty()&&e(i.children())}}(this.children()),this.spawn(t,!0).filter(e)}};function iT(e,t,n,r){for(var i=[],a=new ta,o=e.cy().hasCompoundNodes(),s=0;s<e.length;s++){var l=e[s];n?i.push(l):o&&r(i,a,l)}for(;i.length>0;){var u=i.shift();t(u),a.add(u.id()),o&&r(i,a,u)}return e}function iP(e,t,n){if(n.isParent()){for(var r=n._private.children,i=0;i<r.length;i++){var a=r[i];!t.has(a.id())&&e.push(a)}}}function i_(e,t,n){if(n.isChild()){var r=n._private.parent;!t.has(r.id())&&e.push(r)}}function iM(e,t,n){i_(e,t,n),iP(e,t,n)}iD.forEachDown=function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return iT(this,e,t,iP)},iD.forEachUp=function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return iT(this,e,t,i_)},iD.forEachUpAndDown=function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return iT(this,e,t,iM)},iD.ancestors=iD.parents,(o$=oQ={data:it.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:it.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:it.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:it.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:it.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:it.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=o$.data,o$.removeAttr=o$.removeData;var iB={};function iA(e){return function(t){if(void 0===t&&(t=!0),0===this.length)return;if(!(!this.isNode()||this.removed())){for(var n=0,r=this[0],i=r._private.edges,a=0;a<i.length;a++){var o=i[a];if(!(!t&&o.isLoop()))n+=e(r,o)}return n}}}function iN(e,t){return function(n){for(var r,i=this.nodes(),a=0;a<i.length;a++){var o=i[a][e](n);void 0!==o&&(void 0===r||t(o,r))&&(r=o)}return r}}Z(iB,{degree:iA(function(e,t){return t.source().same(t.target())?2:1}),indegree:iA(function(e,t){return t.target().same(e)?1:0}),outdegree:iA(function(e,t){return t.source().same(e)?1:0})}),Z(iB,{minDegree:iN("degree",function(e,t){return e<t}),maxDegree:iN("degree",function(e,t){return e>t}),minIndegree:iN("indegree",function(e,t){return e<t}),maxIndegree:iN("indegree",function(e,t){return e>t}),minOutdegree:iN("outdegree",function(e,t){return e<t}),maxOutdegree:iN("outdegree",function(e,t){return e>t})}),Z(iB,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r<n.length;r++)t+=n[r].degree(e);return t}});var iI=function(e,t,n){for(var r=0;r<e.length;r++){var i=e[r];if(!i.locked()){var a=i._private.position,o={x:null!=t.x?t.x-a.x:0,y:null!=t.y?t.y-a.y:0};i.isParent()&&!(0===o.x&&0===o.y)&&i.children().shift(o,n),i.dirtyBoundingBoxCache()}}},iO={field:"position",bindingEvent:"position",allowBinding:!0,allowSetting:!0,settingEvent:"position",settingTriggersEvent:!0,triggerFnName:"emitAndNotify",allowGetting:!0,validKeys:["x","y"],beforeGet:function(e){e.updateCompoundBounds()},beforeSet:function(e,t){iI(e,t,!1)},onSet:function(e){e.dirtyCompoundBoundsCache()},canSet:function(e){return!e.locked()}};(oJ=o0={position:it.data(iO),silentPosition:it.data(Z({},iO,{allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!1,beforeSet:function(e,t){iI(e,t,!0)},onSet:function(e){e.dirtyCompoundBoundsCache()}})),positions:function(e,t){if(_(e))t?this.silentPosition(e):this.position(e);else if(T(e)){var n=this.cy();n.startBatch();for(var r=0;r<this.length;r++){var i=this[r],a=void 0;(a=e(i,r))&&(t?i.silentPosition(a):i.position(a))}n.endBatch()}return this},silentPositions:function(e){return this.positions(e,!0)},shift:function(e,t,n){var r;if(_(e)?(r={x:M(e.x)?e.x:0,y:M(e.y)?e.y:0},n=t):D(e)&&M(t)&&((r={x:0,y:0})[e]=t),null!=r){var i=this.cy();i.startBatch();for(var a=0;a<this.length;a++){var o=this[a];if(!(i.hasCompoundNodes()&&o.isChild()&&o.ancestors().anySame(this))){var s=o.position(),l={x:s.x+r.x,y:s.y+r.y};n?o.silentPosition(l):o.position(l)}}i.endBatch()}return this},silentShift:function(e,t){return _(e)?this.shift(e,!0):D(e)&&M(t)&&this.shift(e,t,!0),this},renderedPosition:function(e,t){var n=this[0],r=this.cy(),i=r.zoom(),a=r.pan(),o=_(e)?e:void 0,s=void 0!==o||void 0!==t&&D(e);if(n&&n.isNode()){if(s)for(var l=0;l<this.length;l++){var u=this[l];void 0!==t?u.position(e,(t-a[e])/i):void 0!==o&&u.position(tm(o,i,a))}else return(o=ty(n.position(),i,a),void 0===e)?o:o[e]}else if(!s)return;return this},relativePosition:function(e,t){var n=this[0],r=this.cy(),i=_(e)?e:void 0,a=void 0!==i||void 0!==t&&D(e),o=r.hasCompoundNodes();if(n&&n.isNode()){if(a)for(var s=0;s<this.length;s++){var l=this[s],u=o?l.parent():null,c=u&&u.length>0;c&&(u=u[0]);var h=c?u.position():{x:0,y:0};void 0!==t?l.position(e,t+h[e]):void 0!==i&&l.position({x:i.x+h.x,y:i.y+h.y})}else{var d=n.position(),p=o?n.parent():null,f=p&&p.length>0;f&&(p=p[0]);var g=f?p.position():{x:0,y:0};return(i={x:d.x-g.x,y:d.y-g.y},void 0===e)?i:i[e]}}else if(!a)return;return this}}).modelPosition=oJ.point=oJ.position,oJ.modelPositions=oJ.points=oJ.positions,oJ.renderedPoint=oJ.renderedPosition,oJ.relativePoint=oJ.relativePosition;o1=o2={},o2.renderedBoundingBox=function(e){var t=this.boundingBox(e),n=this.cy(),r=n.zoom(),i=n.pan(),a=t.x1*r+i.x,o=t.x2*r+i.x,s=t.y1*r+i.y,l=t.y2*r+i.y;return{x1:a,x2:o,y1:s,y2:l,w:o-a,h:l-s}},o2.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();return t.styleEnabled()&&t.hasCompoundNodes()?(this.forEachUp(function(t){if(t.isParent()){var n=t._private;n.compoundBoundsClean=!1,n.bbCache=null,!e&&t.emitAndNotify("bounds")}}),this):this},o2.updateCompoundBounds=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes()||!e&&t.batching())return this;for(var n=0;n<this.length;n++){var r=this[n],i=r._private;(!i.compoundBoundsClean||e)&&(!function(e){if(!!e.isParent()){var t=e._private,n=e.children(),r="include"===e.pstyle("compound-sizing-wrt-labels").value,i={width:{val:e.pstyle("min-width").pfValue,left:e.pstyle("min-width-bias-left"),right:e.pstyle("min-width-bias-right")},height:{val:e.pstyle("min-height").pfValue,top:e.pstyle("min-height-bias-top"),bottom:e.pstyle("min-height-bias-bottom")}},a=n.boundingBox({includeLabels:r,includeOverlays:!1,useCache:!1}),o=t.position;(0===a.w||0===a.h)&&((a={w:e.pstyle("width").pfValue,h:e.pstyle("height").pfValue}).x1=o.x-a.w/2,a.x2=o.x+a.w/2,a.y1=o.y-a.h/2,a.y2=o.y+a.h/2);var s=i.width.left.value;"px"===i.width.left.units&&i.width.val>0&&(s=100*s/i.width.val);var l=i.width.right.value;"px"===i.width.right.units&&i.width.val>0&&(l=100*l/i.width.val);var u=i.height.top.value;"px"===i.height.top.units&&i.height.val>0&&(u=100*u/i.height.val);var c=i.height.bottom.value;"px"===i.height.bottom.units&&i.height.val>0&&(c=100*c/i.height.val);var h=y(i.width.val-a.w,s,l),d=h.biasDiff,p=h.biasComplementDiff,f=y(i.height.val-a.h,u,c),g=f.biasDiff,v=f.biasComplementDiff;t.autoPadding=function(e,t,n,r){if("%"===n.units)switch(r){case"width":return e>0?n.pfValue*e:0;case"height":return t>0?n.pfValue*t:0;case"average":return e>0&&t>0?n.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?n.pfValue*t:n.pfValue*e:0;case"max":return e>0&&t>0?e>t?n.pfValue*e:n.pfValue*t:0;default:return 0}else if("px"===n.units)return n.pfValue;else return 0}(a.w,a.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value),t.autoWidth=Math.max(a.w,i.width.val),o.x=(-d+a.x1+a.x2+p)/2,t.autoHeight=Math.max(a.h,i.height.val),o.y=(-g+a.y1+a.y2+v)/2}function y(e,t,n){var r=0,i=0,a=t+n;return e>0&&a>0&&(r=t/a*e,i=n/a*e),{biasDiff:r,biasComplementDiff:i}}}(r),!t.batching()&&(i.compoundBoundsClean=!0))}return this};var iL=function(e){return e===1/0||e===-1/0?0:e},iR=function(e,t,n,r,i){if(r-t!=0&&i-n!=0&&null!=t&&null!=n&&null!=r&&null!=i)e.x1=t<e.x1?t:e.x1,e.x2=r>e.x2?r:e.x2,e.y1=n<e.y1?n:e.y1,e.y2=i>e.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},iz=function(e,t){return null==t?e:iR(e,t.x1,t.y1,t.x2,t.y2)},iV=function(e,t,n){return te(e,t,n)},iF=function(e,t,n){if(!t.cy().headless()){var r,i,a=t._private,o=a.rstyle,s=o.arrowWidth/2;if("none"!==t.pstyle(n+"-arrow-shape").value){"source"===n?(r=o.srcX,i=o.srcY):"target"===n?(r=o.tgtX,i=o.tgtY):(r=o.midX,i=o.midY);var l=a.arrowBounds=a.arrowBounds||{},u=l[n]=l[n]||{};u.x1=r-s,u.y1=i-s,u.x2=r+s,u.y2=i+s,u.w=u.x2-u.x1,u.h=u.y2-u.y1,tz(u,1),iR(e,u.x1,u.y1,u.x2,u.y2)}}},ij=function(e,t,n){if(!t.cy().headless()){a=n?n+"-":"";var r=t._private,i=r.rstyle;if(t.pstyle(a+"label").strValue){var a,o,s,l,u,c=t.pstyle("text-halign"),h=t.pstyle("text-valign"),d=iV(i,"labelWidth",n),p=iV(i,"labelHeight",n),f=iV(i,"labelX",n),g=iV(i,"labelY",n),v=t.pstyle(a+"text-margin-x").pfValue,y=t.pstyle(a+"text-margin-y").pfValue,b=t.isEdge(),x=t.pstyle(a+"text-rotation"),w=t.pstyle("text-outline-width").pfValue,E=t.pstyle("text-border-width").pfValue/2,k=t.pstyle("text-background-padding").pfValue,C=d/2,S=p/2;if(b)o=f-C,s=f+C,l=g-S,u=g+S;else{switch(c.value){case"left":o=f-d,s=f;break;case"center":o=f-C,s=f+C;break;case"right":o=f,s=f+d}switch(h.value){case"top":l=g-p,u=g;break;case"center":l=g-S,u=g+S;break;case"bottom":l=g,u=g+p}}o+=v-Math.max(w,E)-k-2,s+=v+Math.max(w,E)+k+2,l+=y-Math.max(w,E)-k-2,u+=y+Math.max(w,E)+k+2;var D=n||"main",T=r.labelBounds,P=T[D]=T[D]||{};P.x1=o,P.y1=l,P.x2=s,P.y2=u,P.w=s-o,P.h=u-l;var _=b&&"autorotate"===x.strValue,M=null!=x.pfValue&&0!==x.pfValue;if(_||M){var B=_?iV(r.rstyle,"labelAngle",n):x.pfValue,A=Math.cos(B),N=Math.sin(B),I=(o+s)/2,O=(l+u)/2;if(!b){switch(c.value){case"left":I=s;break;case"right":I=o}switch(h.value){case"top":O=u;break;case"bottom":O=l}}var L=function(e,t){return{x:(e-=I)*A-(t-=O)*N+I,y:e*N+t*A+O}},R=L(o,l),z=L(o,u),V=L(s,l),F=L(s,u);o=Math.min(R.x,z.x,V.x,F.x),s=Math.max(R.x,z.x,V.x,F.x),l=Math.min(R.y,z.y,V.y,F.y),u=Math.max(R.y,z.y,V.y,F.y)}var j=D+"Rot",q=T[j]=T[j]||{};q.x1=o,q.y1=l,q.x2=s,q.y2=u,q.w=s-o,q.h=u-l,iR(e,o,l,s,u),iR(r.labelBounds.all,o,l,s,u)}return e}},iq=function(e,t){if(!t.cy().headless()){var n=t.pstyle("outline-opacity").value,r=t.pstyle("outline-width").value;if(n>0&&r>0){var i=t.pstyle("outline-offset").value,a=t.pstyle("shape").value,o=r+i,s=(e.w+2*o)/e.w,l=(e.h+2*o)/e.h,u=0;["diamond","pentagon","round-triangle"].includes(a)?(s=(e.w+2.4*o)/e.w,u=-o/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(a)?s=(e.w+2.4*o)/e.w:"star"===a?(s=(e.w+2.8*o)/e.w,l=(e.h+2.6*o)/e.h,u=-o/3.8):"triangle"===a?(s=(e.w+2.8*o)/e.w,l=(e.h+2.4*o)/e.h,u=-o/1.4):"vee"===a&&(s=(e.w+4.4*o)/e.w,l=(e.h+3.8*o)/e.h,u=-(.5*o));var c=e.h*l-e.h,h=e.w*s-e.w;if(tV(e,[Math.ceil(c/2),Math.ceil(h/2)]),0!==u){var d,p,f,g=(d=e,p=0,f=u,{x1:d.x1+0,x2:d.x2+p,y1:d.y1+f,y2:d.y2+f,w:d.w,h:d.h});tL(e,g)}}}},iX=function(e,t){var n=e._private.cy,r=n.styleEnabled(),i=n.headless(),a=tI(),o=e._private,s=e.isNode(),l=e.isEdge(),u=o.rstyle,c=s&&r?e.pstyle("bounds-expansion").pfValue:[0],h=function(e){return"none"!==e.pstyle("display").value},d=!r||h(e)&&(!l||h(e.source())&&h(e.target()));if(d){var p=0,f=0;r&&t.includeOverlays&&0!==(p=e.pstyle("overlay-opacity").value)&&(f=e.pstyle("overlay-padding").value);var g=0,v=0;r&&t.includeUnderlays&&0!==(g=e.pstyle("underlay-opacity").value)&&(v=e.pstyle("underlay-padding").value);var y=Math.max(f,v),b=0,x=0;if(r&&(x=(b=e.pstyle("width").pfValue)/2),s&&t.includeNodes){var w=e.position();P=w.x,_=w.y;var E=e.outerWidth()/2,k=e.outerHeight()/2;C=P-E,S=P+E,iR(a,C,D=_-k,S,T=_+k),r&&t.includeOutlines&&iq(a,e)}else if(l&&t.includeEdges){if(r&&!i){var C,S,D,T,P,_,M,B=e.pstyle("curve-style").strValue;if(C=Math.min(u.srcX,u.midX,u.tgtX),S=Math.max(u.srcX,u.midX,u.tgtX),D=Math.min(u.srcY,u.midY,u.tgtY),T=Math.max(u.srcY,u.midY,u.tgtY),C-=x,S+=x,iR(a,C,D-=x,S,T+=x),"haystack"===B){var A=u.haystackPts;if(A&&2===A.length){if(C=A[0].x,D=A[0].y,S=A[1].x,T=A[1].y,C>S){var N=C;C=S,S=N}if(D>T){var I=D;D=T,T=I}iR(a,C-x,D-x,S+x,T+x)}}else if("bezier"===B||"unbundled-bezier"===B||B.endsWith("segments")||B.endsWith("taxi")){switch(B){case"bezier":case"unbundled-bezier":M=u.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":M=u.linePts}if(null!=M)for(var O=0;O<M.length;O++){var L=M[O];C=L.x-x,S=L.x+x,D=L.y-x,iR(a,C,D,S,T=L.y+x)}}}else{var R=e.source().position(),z=e.target().position();if(C=R.x,S=z.x,D=R.y,T=z.y,C>S){var V=C;C=S,S=V}if(D>T){var F=D;D=T,T=F}C-=x,S+=x,iR(a,C,D-=x,S,T+=x)}}if(r&&t.includeEdges&&l&&(iF(a,e,"mid-source"),iF(a,e,"mid-target"),iF(a,e,"source"),iF(a,e,"target")),r&&"yes"===e.pstyle("ghost").value){var j=e.pstyle("ghost-offset-x").pfValue,q=e.pstyle("ghost-offset-y").pfValue;iR(a,a.x1+j,a.y1+q,a.x2+j,a.y2+q)}var X=o.bodyBounds=o.bodyBounds||{};tF(X,a),tV(X,c),tz(X,1),r&&(C=a.x1,S=a.x2,D=a.y1,T=a.y2,iR(a,C-y,D-y,S+y,T+y));var Y=o.overlayBounds=o.overlayBounds||{};tF(Y,a),tV(Y,c),tz(Y,1);var W=o.labelBounds=o.labelBounds||{};null!=W.all?tO(W.all):W.all=tI(),r&&t.includeLabels&&(t.includeMainLabels&&ij(a,e,null),l&&(t.includeSourceLabels&&ij(a,e,"source"),t.includeTargetLabels&&ij(a,e,"target")))}return a.x1=iL(a.x1),a.y1=iL(a.y1),a.x2=iL(a.x2),a.y2=iL(a.y2),a.w=iL(a.x2-a.x1),a.h=iL(a.y2-a.y1),a.w>0&&a.h>0&&d&&(tV(a,c),tz(a,1)),a},iY=function(e){var t,n=0,r=function(e){return(e?1:0)<<n++};return t=0+r(e.incudeNodes)+r(e.includeEdges)+r(e.includeLabels)+r(e.includeMainLabels)+r(e.includeSourceLabels)+r(e.includeTargetLabels)+r(e.includeOverlays)+r(e.includeOutlines)},iW=function(e){if(!e.isEdge())return 0;var t=e.source().position(),n=e.target().position(),r=function(e){return Math.round(e)};return ej([r(t.x),r(t.y),r(n.x),r(n.y)])},iH=function(e,t){var n,r=e._private,i=e.isEdge(),a=null==t?iU:iY(t),o=iW(e),s=r.bbCachePosKey===o,l=t.useCache&&s,u=function(e){return null==e._private.bbCache||e._private.styleDirty};if(!l||u(e)||i&&u(e.source())||u(e.target())?(!s&&e.recalculateRenderedStyle(l),n=iX(e,iG),r.bbCache=n,r.bbCachePosKey=o):n=r.bbCache,a!==iU){var c=e.isNode();n=tI(),(t.includeNodes&&c||t.includeEdges&&!c)&&(t.includeOverlays?iz(n,r.overlayBounds):iz(n,r.bodyBounds)),t.includeLabels&&(t.includeMainLabels&&(!i||t.includeSourceLabels&&t.includeTargetLabels)?iz(n,r.labelBounds.all):(t.includeMainLabels&&iz(n,r.labelBounds.mainRot),t.includeSourceLabels&&iz(n,r.labelBounds.sourceRot),t.includeTargetLabels&&iz(n,r.labelBounds.targetRot))),n.w=n.x2-n.x1,n.h=n.y2-n.y1}return n},iG={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,includeUnderlays:!0,includeOutlines:!0,useCache:!0},iU=iY(iG),iK=e9(iG);o2.boundingBox=function(e){var t;if(1!==this.length||null==this[0]._private.bbCache||this[0]._private.styleDirty||void 0!==e&&void 0!==e.useCache&&!0!==e.useCache){t=tI();var n=iK(e=e||iG);if(this.cy().styleEnabled())for(var r=0;r<this.length;r++){var i=this[r],a=i._private,o=iW(i),s=a.bbCachePosKey===o,l=n.useCache&&s&&!a.styleDirty;i.recalculateRenderedStyle(l)}this.updateCompoundBounds(!e.useCache);for(var u=0;u<this.length;u++)iz(t,iH(this[u],n))}else e=void 0===e?iG:iK(e),t=iH(this[0],e);return t.x1=iL(t.x1),t.y1=iL(t.y1),t.x2=iL(t.x2),t.y2=iL(t.y2),t.w=iL(t.x2-t.x1),t.h=iL(t.y2-t.y1),t},o2.dirtyBoundingBoxCache=function(){for(var e=0;e<this.length;e++){var t=this[e]._private;t.bbCache=null,t.bbCachePosKey=null,t.bodyBounds=null,t.overlayBounds=null,t.labelBounds.all=null,t.labelBounds.source=null,t.labelBounds.target=null,t.labelBounds.main=null,t.labelBounds.sourceRot=null,t.labelBounds.targetRot=null,t.labelBounds.mainRot=null,t.arrowBounds.source=null,t.arrowBounds.target=null,t.arrowBounds["mid-source"]=null,t.arrowBounds["mid-target"]=null}return this.emitAndNotify("bounds"),this},o2.boundingBoxAt=function(e){var t,n=this.nodes(),r=this.cy(),i=r.hasCompoundNodes(),a=r.collection();if(i&&(a=n.filter(function(e){return e.isParent()}),n=n.not(a)),_(e)){var o=e;e=function(){return o}}r.startBatch(),n.forEach(function(t,n){return t._private.bbAtOldPos=e(t,n)}).silentPositions(e),i&&(a.dirtyCompoundBoundsCache(),a.dirtyBoundingBoxCache(),a.updateCompoundBounds(!0));var s={x1:(t=this.boundingBox({useCache:!1})).x1,x2:t.x2,w:t.w,y1:t.y1,y2:t.y2,h:t.h};return n.silentPositions(function(e){return e._private.bbAtOldPos}),i&&(a.dirtyCompoundBoundsCache(),a.dirtyBoundingBoxCache(),a.updateCompoundBounds(!0)),r.endBatch(),s},o1.boundingbox=o1.bb=o1.boundingBox,o1.renderedBoundingbox=o1.renderedBoundingBox;o5=o3={};var iZ=function(e){e.uppercaseName=X(e.name),e.autoName="auto"+e.uppercaseName,e.labelName="label"+e.uppercaseName,e.outerName="outer"+e.uppercaseName,e.uppercaseOuterName=X(e.outerName),o5[e.name]=function(){var t=this[0],n=t._private,r=n.cy._private.styleEnabled;if(t){if(!r)return 1;if(t.isParent())return t.updateCompoundBounds(),n[e.autoName]||0;var i=t.pstyle(e.name);if("label"===i.strValue)return t.recalculateRenderedStyle(),n.rstyle[e.labelName]||0;return i.pfValue}},o5["outer"+e.uppercaseName]=function(){var t=this[0],n=t._private.cy._private.styleEnabled;if(t)return n?t[e.name]()+t.pstyle("border-width").pfValue+2*t.padding():1},o5["rendered"+e.uppercaseName]=function(){var t=this[0];if(t)return t[e.name]()*this.cy().zoom()},o5["rendered"+e.uppercaseOuterName]=function(){var t=this[0];if(t)return t[e.outerName]()*this.cy().zoom()}};iZ({name:"width"}),iZ({name:"height"}),o3.padding=function(){var e=this[0],t=e._private;return e.isParent()?(e.updateCompoundBounds(),void 0!==t.autoPadding)?t.autoPadding:e.pstyle("padding").pfValue:e.pstyle("padding").pfValue},o3.paddedHeight=function(){var e=this[0];return e.height()+2*e.padding()},o3.paddedWidth=function(){var e=this[0];return e.width()+2*e.padding()};var i$=function(e,t){if(e.isEdge())return t(e)},iQ=function(e,t){if(e.isEdge()){var n=e.cy();return ty(t(e),n.zoom(),n.pan())}},iJ=function(e,t){if(e.isEdge()){var n=e.cy(),r=n.pan(),i=n.zoom();return t(e).map(function(e){return ty(e,i,r)})}},i0={controlPoints:{get:function(e){return e.renderer().getControlPoints(e)},mult:!0},segmentPoints:{get:function(e){return e.renderer().getSegmentPoints(e)},mult:!0},sourceEndpoint:{get:function(e){return e.renderer().getSourceEndpoint(e)}},targetEndpoint:{get:function(e){return e.renderer().getTargetEndpoint(e)}},midpoint:{get:function(e){return e.renderer().getEdgeMidpoint(e)}}},i1=Z({},o0,o2,o3,Object.keys(i0).reduce(function(e,t){var n,r=i0[t];var i="rendered"+(n=t)[0].toUpperCase()+n.substr(1);return e[t]=function(){return i$(this,r.get)},r.mult?e[i]=function(){return iJ(this,r.get)}:e[i]=function(){return iQ(this,r.get)},e},{})),i2=function(e,t){this.recycle(e,t)};function i5(){return!1}function i3(){return!0}i2.prototype={instanceString:function(){return"event"},recycle:function(e,t){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=i5,null!=e&&e.preventDefault?(this.type=e.type,this.isDefaultPrevented=e.defaultPrevented?i3:i5):null!=e&&e.type?t=e:this.type=e,null!=t&&(this.originalEvent=t.originalEvent,this.type=null!=t.type?t.type:this.type,this.cy=t.cy,this.target=t.target,this.position=t.position,this.renderedPosition=t.renderedPosition,this.namespace=t.namespace,this.layout=t.layout),null!=this.cy&&null!=this.position&&null==this.renderedPosition){var n=this.position,r=this.cy.zoom(),i=this.cy.pan();this.renderedPosition={x:n.x*r+i.x,y:n.y*r+i.y}}this.timeStamp=e&&e.timeStamp||Date.now()},preventDefault:function(){this.isDefaultPrevented=i3;var e=this.originalEvent;if(!!e)e.preventDefault&&e.preventDefault()},stopPropagation:function(){this.isPropagationStopped=i3;var e=this.originalEvent;if(!!e)e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i3,this.stopPropagation()},isDefaultPrevented:i5,isPropagationStopped:i5,isImmediatePropagationStopped:i5};var i4=/^([^.]+)(\.(?:[^.]+))?$/,i9={qualifierCompare:function(e,t){return e===t},eventMatches:function(){return!0},addEventFields:function(){},callbackContext:function(e){return e},beforeEmit:function(){},afterEmit:function(){},bubble:function(){return!1},parent:function(){return null},context:null},i6=Object.keys(i9),i8={};function i7(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i8,t=arguments.length>1?arguments[1]:void 0,n=0;n<i6.length;n++){var r=i6[n];this[r]=e[r]||i9[r]}this.context=t||this.context,this.listeners=[],this.emitting=0}var ae=i7.prototype,at=function(e,t,n,r,i,a,o){T(r)&&(i=r,r=null),o&&(a=null==a?o:Z({},a,o));for(var s=P(n)?n:n.split(/\s+/),l=0;l<s.length;l++){var u=s[l];if(!R(u)){var c=u.match(i4);if(c&&!1===t(e,u,c[1],c[2]?c[2]:null,r,i,a))break}}},an=function(e,t){return e.addEventFields(e.context,t),new i2(t.type,t)},ar=function(e,t,n){if("event"===S(n)){t(e,n);return}if(_(n)){t(e,an(e,n));return}for(var r=P(n)?n:n.split(/\s+/),i=0;i<r.length;i++){var a=r[i];if(!R(a)){var o=a.match(i4);if(o){var s=an(e,{type:o[1],namespace:o[2]?o[2]:null,target:e.context});t(e,s)}}}};ae.on=ae.addListener=function(e,t,n,r,i){return at(this,function(e,t,n,r,i,a,o){T(a)&&e.listeners.push({event:t,callback:a,type:n,namespace:r,qualifier:i,conf:o})},e,t,n,r,i),this},ae.one=function(e,t,n,r){return this.on(e,t,n,r,{one:!0})},ae.removeListener=ae.off=function(e,t,n,r){var i=this;if(0!==this.emitting)this.listeners=this.listeners.slice();for(var a=this.listeners,o=function(o){var s=a[o];at(i,function(t,n,r,i,l,u){if((s.type===r||"*"===e)&&(!i&&".*"!==s.namespace||s.namespace===i)&&(!l||t.qualifierCompare(s.qualifier,l))&&(!u||s.callback===u))return a.splice(o,1),!1},e,t,n,r)},s=a.length-1;s>=0;s--)o(s);return this},ae.removeAllListeners=function(){return this.removeListener("*")},ae.emit=ae.trigger=function(e,t,n){var r=this.listeners,i=r.length;return this.emitting++,!P(t)&&(t=[t]),ar(this,function(e,a){null!=n&&(i=(r=[{event:a.event,type:a.type,namespace:a.namespace,callback:n}]).length);for(var o=0;o<i;o++)!function(n){var i=r[n];if(i.type===a.type&&(!i.namespace||i.namespace===a.namespace||".*"===i.namespace)&&e.eventMatches(e.context,i,a)){var o=[a];null!=t&&e7(o,t),e.beforeEmit(e.context,i,a),i.conf&&i.conf.one&&(e.listeners=e.listeners.filter(function(e){return e!==i}));var s=e.callbackContext(e.context,i,a),l=i.callback.apply(s,o);e.afterEmit(e.context,i,a),!1===l&&(a.stopPropagation(),a.preventDefault())}}(o);e.bubble(e.context)&&!a.isPropagationStopped()&&e.parent(e.context).emit(a,t)},e),this.emitting--,this};var ai={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&N(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e.cy(),t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e},beforeEmit:function(e,t){t.conf&&t.conf.once&&t.conf.onceCollection.removeListener(t.event,t.qualifier,t.callback)},bubble:function(){return!0},parent:function(e){return e.isChild()?e.parent():e.cy()}},aa=function(e){return D(e)?new iE(e):e},ao={createEmitter:function(){for(var e=0;e<this.length;e++){var t=this[e],n=t._private;!n.emitter&&(n.emitter=new i7(ai,t))}return this},emitter:function(){return this._private.emitter},on:function(e,t,n){for(var r=aa(t),i=0;i<this.length;i++)this[i].emitter().on(e,r,n);return this},removeListener:function(e,t,n){for(var r=aa(t),i=0;i<this.length;i++)this[i].emitter().removeListener(e,r,n);return this},removeAllListeners:function(){for(var e=0;e<this.length;e++)this[e].emitter().removeAllListeners();return this},one:function(e,t,n){for(var r=aa(t),i=0;i<this.length;i++)this[i].emitter().one(e,r,n);return this},once:function(e,t,n){for(var r=aa(t),i=0;i<this.length;i++)this[i].emitter().on(e,r,n,{once:!0,onceCollection:this})},emit:function(e,t){for(var n=0;n<this.length;n++)this[n].emitter().emit(e,t);return this},emitAndNotify:function(e,t){if(0!==this.length)return this.cy().notify(e,this),this.emit(e,t),this}};it.eventAliasesOn(ao);var as={nodes:function(e){return this.filter(function(e){return e.isNode()}).filter(e)},edges:function(e){return this.filter(function(e){return e.isEdge()}).filter(e)},byGroup:function(){for(var e=this.spawn(),t=this.spawn(),n=0;n<this.length;n++){var r=this[n];r.isNode()?e.push(r):t.push(r)}return{nodes:e,edges:t}},filter:function(e,t){if(void 0===e)return this;if(D(e)||A(e))return new iE(e).filter(this);if(T(e)){for(var n=this.spawn(),r=0;r<this.length;r++){var i=this[r];(t?e.apply(t,[i,r,this]):e(i,r,this))&&n.push(i)}return n}return this.spawn()},not:function(e){if(!e)return this;D(e)&&(e=this.filter(e));for(var t=this.spawn(),n=0;n<this.length;n++){var r=this[n];!e.has(r)&&t.push(r)}return t},absoluteComplement:function(){return this.cy().mutableElements().not(this)},intersect:function(e){if(D(e))return this.filter(e);for(var t=this.spawn(),n=this.length<e.length,r=n?this:e,i=n?e:this,a=0;a<r.length;a++){var o=r[a];i.has(o)&&t.push(o)}return t},xor:function(e){var t=this._private.cy;D(e)&&(e=t.$(e));var n=this.spawn(),r=e,i=function(e,t){for(var r=0;r<e.length;r++){var i=e[r],a=i._private.data.id;!t.hasElementWithId(a)&&n.push(i)}};return i(this,r),i(r,this),n},diff:function(e){var t=this._private.cy;D(e)&&(e=t.$(e));var n=this.spawn(),r=this.spawn(),i=this.spawn(),a=e,o=function(e,t,n){for(var r=0;r<e.length;r++){var a=e[r],o=a._private.data.id;t.hasElementWithId(o)?i.merge(a):n.push(a)}};return o(this,a,n),o(a,this,r),{left:n,right:r,both:i}},add:function(e){var t=this._private.cy;if(!e)return this;if(D(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=this.spawnSelf(),i=0;i<e.length;i++){var a=e[i];!this.has(a)&&r.push(a)}return r},merge:function(e){var t=this._private,n=t.cy;if(!e)return this;if(e&&D(e)){var r=e;e=n.mutableElements().filter(r)}for(var i=t.map,a=0;a<e.length;a++){var o=e[a],s=o._private.data.id;if(!i.has(s)){var l=this.length++;this[l]=o,i.set(s,{ele:o,index:l})}}return this},unmergeAt:function(e){var t=this[e].id(),n=this._private.map;this[e]=void 0,n.delete(t);var r=e===this.length-1;if(this.length>1&&!r){var i=this.length-1,a=this[i],o=a._private.data.id;this[i]=void 0,this[e]=a,n.set(o,{ele:a,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,n=e._private.data.id,r=t.map.get(n);if(!r)return this;var i=r.index;return this.unmergeAt(i),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&D(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=0;r<e.length;r++)this.unmergeOne(e[r]);return this},unmergeBy:function(e){for(var t=this.length-1;t>=0;t--)e(this[t])&&this.unmergeAt(t);return this},map:function(e,t){for(var n=[],r=0;r<this.length;r++){var i=this[r],a=t?e.apply(t,[i,r,this]):e(i,r,this);n.push(a)}return n},reduce:function(e,t){for(var n=t,r=0;r<this.length;r++)n=e(n,this[r],r,this);return n},max:function(e,t){for(var n,r=-1/0,i=0;i<this.length;i++){var a=this[i],o=t?e.apply(t,[a,i,this]):e(a,i,this);o>r&&(r=o,n=a)}return{value:r,ele:n}},min:function(e,t){for(var n,r=1/0,i=0;i<this.length;i++){var a=this[i],o=t?e.apply(t,[a,i,this]):e(a,i,this);o<r&&(r=o,n=a)}return{value:r,ele:n}}};as.u=as["|"]=as["+"]=as.union=as.or=as.add,as["\\"]=as["!"]=as["-"]=as.difference=as.relativeComplement=as.subtract=as.not,as.n=as["&"]=as["."]=as.and=as.intersection=as.intersect,as["^"]=as["(+)"]=as["(-)"]=as.symmetricDifference=as.symdiff=as.xor,as.fnFilter=as.filterFn=as.stdFilter=as.filter,as.complement=as.abscomp=as.absoluteComplement;var al=function(e,t){var n=e.cy().hasCompoundNodes();function r(e){var t=e.pstyle("z-compound-depth");if("auto"===t.value)return n?e.zDepth():0;if("bottom"===t.value)return -1;if("top"===t.value)return eU;return 0}var i=r(e)-r(t);if(0!==i)return i;function a(e){return"auto"===e.pstyle("z-index-compare").value?e.isNode()?1:0:0}var o=a(e)-a(t);if(0!==o)return o;var s=e.pstyle("z-index").value-t.pstyle("z-index").value;return 0!==s?s:e.poolIndex()-t.poolIndex()},au={forEach:function(e,t){if(T(e)){for(var n=this.length,r=0;r<n;r++){var i=this[r];if(!1===(t?e.apply(t,[i,r,this]):e(i,r,this)))break}}return this},toArray:function(){for(var e=[],t=0;t<this.length;t++)e.push(this[t]);return e},slice:function(e,t){var n=[],r=this.length;null==t&&(t=r),null==e&&(e=0),e<0&&(e=r+e),t<0&&(t=r+t);for(var i=e;i>=0&&i<t&&i<r;i++)n.push(this[i]);return this.spawn(n)},size:function(){return this.length},eq:function(e){return this[e]||this.spawn()},first:function(){return this[0]||this.spawn()},last:function(){return this[this.length-1]||this.spawn()},empty:function(){return 0===this.length},nonempty:function(){return!this.empty()},sort:function(e){if(!T(e))return this;var t=this.toArray().sort(e);return this.spawn(t)},sortByZIndex:function(){return this.sort(al)},zDepth:function(){var e=this[0];if(!!e){var t=e._private;if("nodes"===t.group){var n=t.data.parent?e.parents().size():0;return e.isParent()?n:eU-1}var r=t.source,i=t.target;return Math.max(r.zDepth(),i.zDepth(),0)}}};au.each=au.forEach;oZ="undefined",("undefined"==typeof Symbol?"undefined":r(Symbol))!=oZ&&r(Symbol.iterator)!=oZ&&(au[Symbol.iterator]=function(){var e=this,t={value:void 0,done:!1},n=0,r=this.length;return s({next:function(){return n<r?t.value=e[n++]:(t.value=void 0,t.done=!0),t}},Symbol.iterator,function(){return this})});var ac=e9({nodeDimensionsIncludeLabels:!1}),ah={layoutDimensions:function(e){if(e=ac(e),this.takesUpSpace()){if(e.nodeDimensionsIncludeLabels){var t,n=this.boundingBox();t={w:n.w,h:n.h}}else t={w:this.outerWidth(),h:this.outerHeight()}}else t={w:0,h:0};return(0===t.w||0===t.h)&&(t.w=t.h=1),t},layoutPositions:function(e,t,n){var r=this.nodes().filter(function(e){return!e.isParent()}),i=this.cy(),a=t.eles,o=function(e){return e.id()},s=V(n,o);e.emit({type:"layoutstart",layout:e}),e.animations=[];var l=function(e,t,n){var r={x:t.x1+t.w/2,y:t.y1+t.h/2},i={x:(n.x-r.x)*e,y:(n.y-r.y)*e};return{x:r.x+i.x,y:r.y+i.y}},u=t.spacingFactor&&1!==t.spacingFactor,c=function(){if(!u)return null;for(var e=tI(),t=0;t<r.length;t++){var n=s(r[t],t);tR(e,n.x,n.y)}return e}(),h=V(function(e,n){var r=s(e,n);return u&&(r=l(Math.abs(t.spacingFactor),c,r)),null!=t.transform&&(r=t.transform(e,r)),r},o);if(t.animate){for(var d=0;d<r.length;d++){var p=r[d],f=h(p,d);if(null==t.animateFilter||t.animateFilter(p,d)){var g=p.animation({position:f,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(g)}else p.position(f)}if(t.fit){var v=i.animation({fit:{boundingBox:a.boundingBoxAt(h),padding:t.padding},duration:t.animationDuration,easing:t.animationEasing});e.animations.push(v)}else if(void 0!==t.zoom&&void 0!==t.pan){var y=i.animation({zoom:t.zoom,pan:t.pan,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(y)}e.animations.forEach(function(e){return e.play()}),e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),rh.all(e.animations.map(function(e){return e.promise()})).then(function(){e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e})})}else r.positions(h),t.fit&&i.fit(t.eles,t.padding),null!=t.zoom&&i.zoom(t.zoom),t.pan&&i.pan(t.pan),e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e});return this},layout:function(e){return this.cy().makeLayout(Z({},e,{eles:this}))}};function ad(e,t,n){var r,i=n._private,a=i.styleCache=i.styleCache||[];return null!=(r=a[e])?r:r=a[e]=t(n)}function ap(e,t){return e=eq(e),function(n){return ad(e,t,n)}}function af(e,t){e=eq(e);var n=function(e){return t.call(e)};return function(){var t=this[0];if(t)return ad(e,n,t)}}ah.createLayout=ah.makeLayout=ah.layout;var ag={recalculateRenderedStyle:function(e){var t=this.cy(),n=t.renderer(),r=t.styleEnabled();return n&&r&&n.recalculateRenderedStyle(this,e),this},dirtyStyleCache:function(){var e,t=this.cy(),n=function(e){return e._private.styleCache=null};return t.hasCompoundNodes()?((e=this.spawnSelf().merge(this.descendants()).merge(this.parents())).merge(e.connectedEdges()),e.forEach(n)):this.forEach(function(e){n(e),e.connectedEdges().forEach(n)}),this},updateStyle:function(e){var t=this._private.cy;if(!t.styleEnabled())return this;if(t.batching())return t._private.batchStyleEles.merge(this),this;var n=t.hasCompoundNodes(),r=this;e=!!e||void 0===e,n&&(r=this.spawnSelf().merge(this.descendants()).merge(this.parents()));var i=r;return e?i.emitAndNotify("style"):i.emit("style"),r.forEach(function(e){return e._private.styleDirty=!0}),this},cleanStyle:function(){var e=this.cy();if(!!e.styleEnabled())for(var t=0;t<this.length;t++){var n=this[t];n._private.styleDirty&&(n._private.styleDirty=!1,e.style().apply(n))}},parsedStyle:function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=this[0],r=n.cy();if(!!r.styleEnabled()){if(n){this.cleanStyle();var i=n._private.style[e];return null!=i?i:t?r.style().getDefaultProperty(e):null}}},numericStyle:function(e){var t=this[0];if(!!t.cy().styleEnabled()){if(t){var n=t.pstyle(e);return void 0!==n.pfValue?n.pfValue:n.value}}},numericStyleUnits:function(e){var t=this[0];if(!!t.cy().styleEnabled()){if(t)return t.pstyle(e).units}},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];if(n)return t.style().getRenderedStyle(n,e)},style:function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var r=n.style();if(_(e))r.applyBypass(this,e,!1),this.emitAndNotify("style");else if(D(e)){if(void 0===t){var i=this[0];return i?r.getStylePropertyValue(i,e):void 0}r.applyBypass(this,e,t,!1),this.emitAndNotify("style")}else if(void 0===e){var a=this[0];return a?r.getRawStyle(a):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=t.style();if(void 0===e)for(var r=0;r<this.length;r++){var i=this[r];n.removeAllBypasses(i,!1)}else{e=e.split(/\s+/);for(var a=0;a<this.length;a++){var o=this[a];n.removeBypasses(o,e,!1)}}return this.emitAndNotify("style"),this},show:function(){return this.css("display","element"),this},hide:function(){return this.css("display","none"),this},effectiveOpacity:function(){var e=this.cy();if(!e.styleEnabled())return 1;var t=e.hasCompoundNodes(),n=this[0];if(n){var r=n._private,i=n.pstyle("opacity").value;if(!t)return i;var a=r.data.parent?n.parents():null;if(a)for(var o=0;o<a.length;o++)i*=a[o].pstyle("opacity").value;return i}},transparent:function(){if(!this.cy().styleEnabled())return!1;var e=this[0],t=e.cy().hasCompoundNodes();if(e)return t?0===e.effectiveOpacity():0===e.pstyle("opacity").value},backgrounding:function(){return!!this.cy().styleEnabled()&&!!this[0]._private.backgrounding}};function av(e,t){var n=e._private.data.parent?e.parents():null;if(n){for(var r=0;r<n.length;r++)if(!t(n[r]))return!1}return!0}function ay(e){var t=e.ok,n=e.edgeOkViaNode||e.ok,r=e.parentOk||e.ok;return function(){var e=this.cy();if(!e.styleEnabled())return!0;var i=this[0],a=e.hasCompoundNodes();if(i){var o=i._private;if(!t(i))return!1;if(i.isNode())return!a||av(i,r);var s=o.source,l=o.target;return n(s)&&(!a||av(s,n))&&(s===l||n(l)&&(!a||av(l,n)))}}}var am=ap("eleTakesUpSpace",function(e){return"element"===e.pstyle("display").value&&0!==e.width()&&(!e.isNode()||0!==e.height())});ag.takesUpSpace=af("takesUpSpace",ay({ok:am}));var ab=ap("eleInteractive",function(e){return"yes"===e.pstyle("events").value&&"visible"===e.pstyle("visibility").value&&am(e)}),ax=ap("parentInteractive",function(e){return"visible"===e.pstyle("visibility").value&&am(e)});ag.interactive=af("interactive",ay({ok:ab,parentOk:ax,edgeOkViaNode:am})),ag.noninteractive=function(){var e=this[0];if(e)return!e.interactive()};var aw=ap("eleVisible",function(e){return"visible"===e.pstyle("visibility").value&&0!==e.pstyle("opacity").pfValue&&am(e)});ag.visible=af("visible",ay({ok:aw,edgeOkViaNode:am})),ag.hidden=function(){var e=this[0];if(e)return!e.visible()},ag.isBundledBezier=af("isBundledBezier",function(){return!!this.cy().styleEnabled()&&!this.removed()&&"bezier"===this.pstyle("curve-style").value&&this.takesUpSpace()}),ag.bypass=ag.css=ag.style,ag.renderedCss=ag.renderedStyle,ag.removeBypass=ag.removeCss=ag.removeStyle,ag.pstyle=ag.parsedStyle;var aE={};function ak(e){return function(){var t=arguments,n=[];if(2===t.length){var r=t[0],i=t[1];this.on(e.event,r,i)}else if(1===t.length&&T(t[0])){var a=t[0];this.on(e.event,a)}else if(0===t.length||1===t.length&&P(t[0])){for(var o=1===t.length?t[0]:null,s=0;s<this.length;s++){var l=this[s],u=!e.ableField||l._private[e.ableField],c=l._private[e.field]!=e.value;if(e.overrideAble){var h=e.overrideAble(l);if(void 0!==h&&(u=h,!h))return this}u&&(l._private[e.field]=e.value,c&&n.push(l))}var d=this.spawn(n);d.updateStyle(),d.emit(e.event),o&&d.emit(o)}return this}}function aC(e){aE[e.field]=function(){var t=this[0];if(t){if(e.overrideField){var n=e.overrideField(t);if(void 0!==n)return n}return t._private[e.field]}},aE[e.on]=ak({event:e.on,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!0}),aE[e.off]=ak({event:e.off,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!1})}aC({field:"locked",overrideField:function(e){return!!e.cy().autolock()||void 0},on:"lock",off:"unlock"}),aC({field:"grabbable",overrideField:function(e){return!(e.cy().autoungrabify()||e.pannable())&&void 0},on:"grabify",off:"ungrabify"}),aC({field:"selected",ableField:"selectable",overrideAble:function(e){return!e.cy().autounselectify()&&void 0},on:"select",off:"unselect"}),aC({field:"selectable",overrideField:function(e){return!e.cy().autounselectify()&&void 0},on:"selectify",off:"unselectify"}),aE.deselect=aE.unselect,aE.grabbed=function(){var e=this[0];if(e)return e._private.grabbed},aC({field:"active",on:"activate",off:"unactivate"}),aC({field:"pannable",on:"panify",off:"unpanify"}),aE.inactive=function(){var e=this[0];if(e)return!e._private.active};var aS={},aD=function(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r];if(!!i.isNode()){for(var a=!1,o=i.connectedEdges(),s=0;s<o.length;s++){var l=o[s],u=l.source(),c=l.target();if(e.noIncomingEdges&&c===i&&u!==i||e.noOutgoingEdges&&u===i&&c!==i){a=!0;break}}!a&&n.push(i)}}return this.spawn(n,!0).filter(t)}},aT=function(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r];if(!!i.isNode())for(var a=i.connectedEdges(),o=0;o<a.length;o++){var s=a[o],l=s.source(),u=s.target();e.outgoing&&l===i?(n.push(s),n.push(u)):e.incoming&&u===i&&(n.push(s),n.push(l))}}return this.spawn(n,!0).filter(t)}},aP=function(e){return function(t){for(var n=this,r=[],i={};;){var a=e.outgoing?n.outgoers():n.incomers();if(0===a.length)break;for(var o=!1,s=0;s<a.length;s++){var l=a[s],u=l.id();!i[u]&&(i[u]=!0,r.push(l),o=!0)}if(!o)break;n=a}return this.spawn(r,!0).filter(t)}};function a_(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r]._private[e.attr];i&&n.push(i)}return this.spawn(n,!0).filter(t)}}function aM(e){return function(t){var n=[],r=this._private.cy,i=e||{};D(t)&&(t=r.$(t));for(var a=0;a<t.length;a++){for(var o=t[a]._private.edges,s=0;s<o.length;s++){var l=o[s],u=l._private.data,c=this.hasElementWithId(u.source)&&t.hasElementWithId(u.target),h=t.hasElementWithId(u.source)&&this.hasElementWithId(u.target);if(!!(c||h)&&(!i.thisIsSrc&&!i.thisIsTgt||(!i.thisIsSrc||!!c)&&(!i.thisIsTgt||!!h)))n.push(l)}}return this.spawn(n,!0)}}function aB(e){return e=Z({},{codirected:!1},e),function(t){for(var n=[],r=this.edges(),i=e,a=0;a<r.length;a++){for(var o=r[a]._private,s=o.source,l=s._private.data.id,u=o.data.target,c=s._private.edges,h=0;h<c.length;h++){var d=c[h],p=d._private.data,f=p.target,g=p.source,v=f===u&&g===l,y=l===f&&u===g;(i.codirected&&v||!i.codirected&&(v||y))&&n.push(d)}}return this.spawn(n,!0).filter(t)}}aS.clearTraversalCache=function(){for(var e=0;e<this.length;e++)this[e]._private.traversalCache=null},Z(aS,{roots:aD({noIncomingEdges:!0}),leaves:aD({noOutgoingEdges:!0}),outgoers:iS(aT({outgoing:!0}),"outgoers"),successors:aP({outgoing:!0}),incomers:iS(aT({incoming:!0}),"incomers"),predecessors:aP({incoming:!0})}),Z(aS,{neighborhood:iS(function(e){for(var t=[],n=this.nodes(),r=0;r<n.length;r++){for(var i=n[r],a=i.connectedEdges(),o=0;o<a.length;o++){var s=a[o],l=s.source(),u=s.target(),c=i===l?u:l;c.length>0&&t.push(c[0]),t.push(s[0])}}return this.spawn(t,!0).filter(e)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),aS.neighbourhood=aS.neighborhood,aS.closedNeighbourhood=aS.closedNeighborhood,aS.openNeighbourhood=aS.openNeighborhood,Z(aS,{source:iS(function(e){var t,n=this[0];return n&&(t=n._private.source||n.cy().collection()),t&&e?t.filter(e):t},"source"),target:iS(function(e){var t,n=this[0];return n&&(t=n._private.target||n.cy().collection()),t&&e?t.filter(e):t},"target"),sources:a_({attr:"source"}),targets:a_({attr:"target"})}),Z(aS,{edgesWith:iS(aM(),"edgesWith"),edgesTo:iS(aM({thisIsSrc:!0}),"edgesTo")}),Z(aS,{connectedEdges:iS(function(e){for(var t=[],n=0;n<this.length;n++){var r=this[n];if(!!r.isNode())for(var i=r._private.edges,a=0;a<i.length;a++){var o=i[a];t.push(o)}}return this.spawn(t,!0).filter(e)},"connectedEdges"),connectedNodes:iS(function(e){for(var t=[],n=0;n<this.length;n++){var r=this[n];if(!!r.isEdge())t.push(r.source()[0]),t.push(r.target()[0])}return this.spawn(t,!0).filter(e)},"connectedNodes"),parallelEdges:iS(aB(),"parallelEdges"),codirectedEdges:iS(aB({codirected:!0}),"codirectedEdges")}),Z(aS,{components:function(e){var t=this,n=t.cy(),r=n.collection(),i=null==e?t.nodes():e.nodes(),a=[];null!=e&&i.empty()&&(i=e.sources());var o=function(e,t){r.merge(e),i.unmerge(e),t.merge(e)};if(i.empty())return t.spawn();do!function(){var e=n.collection();a.push(e);var r=i[0];o(r,e),t.bfs({directed:!1,roots:r,visit:function(t){return o(t,e)}}),e.forEach(function(n){n.connectedEdges().forEach(function(n){t.has(n)&&e.has(n.source())&&e.has(n.target())&&e.merge(n)})})}();while(i.length>0);return a},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),aS.componentsOf=aS.components;var aA=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0===e){eJ("A collection must have a reference to the core");return}var i=new tr,a=!1;if(t){if(t.length>0&&_(t[0])&&!N(t[0])){a=!0;for(var o=[],s=new ta,l=0,u=t.length;l<u;l++){var c=t[l];null==c.data&&(c.data={});var h=c.data;if(null==h.id)h.id=e5();else if(e.hasElementWithId(h.id)||s.has(h.id))continue;var d=new to(e,c,!1);o.push(d),s.add(h.id)}t=o}}else t=[];this.length=0;for(var p=0,f=t.length;p<f;p++){var g=t[p][0];if(null!=g){var v=g._private.data.id;(!n||!i.has(v))&&(n&&i.set(v,{index:this.length,ele:g}),this[this.length]=g,this.length++)}}this._private={eles:this,cy:e,get map(){return null==this.lazyMap&&this.rebuildMap(),this.lazyMap},set map(m){this.lazyMap=m},rebuildMap:function(){for(var e=this.lazyMap=new tr,t=this.eles,n=0;n<t.length;n++){var r=t[n];e.set(r.id(),{index:n,ele:r})}}},n&&(this._private.map=i),a&&!r&&this.restore()},aN=to.prototype=aA.prototype=Object.create(Array.prototype);aN.instanceString=function(){return"collection"},aN.spawn=function(e,t){return new aA(this.cy(),e,t)},aN.spawnSelf=function(){return this.spawn(this)},aN.cy=function(){return this._private.cy},aN.renderer=function(){return this._private.cy.renderer()},aN.element=function(){return this[0]},aN.collection=function(){return I(this)?this:new aA(this._private.cy,[this])},aN.unique=function(){return new aA(this._private.cy,this,!0)},aN.hasElementWithId=function(e){return e=""+e,this._private.map.has(e)},aN.getElementById=function(e){e=""+e;var t=this._private.cy,n=this._private.map.get(e);return n?n.ele:new aA(t)},aN.$id=aN.getElementById,aN.poolIndex=function(){var e=this._private.cy._private.elements,t=this[0]._private.data.id;return e._private.map.get(t).index},aN.indexOf=function(e){var t=e[0]._private.data.id;return this._private.map.get(t).index},aN.indexOfId=function(e){return e=""+e,this._private.map.get(e).index},aN.json=function(e){var t=this.element(),n=this.cy();if(null==t&&e)return this;if(null!=t){var r=t._private;if(_(e)){if(n.startBatch(),e.data){t.data(e.data);var i=r.data;if(t.isEdge()){var a=!1,o={},s=e.data.source,l=e.data.target;null!=s&&s!=i.source&&(o.source=""+s,a=!0),null!=l&&l!=i.target&&(o.target=""+l,a=!0),a&&(t=t.move(o))}else{var u="parent"in e.data,c=e.data.parent;u&&(null!=c||null!=i.parent)&&c!=i.parent&&(void 0===c&&(c=null),null!=c&&(c=""+c),t=t.move({parent:c}))}}e.position&&t.position(e.position);var h=function(n,i,a){var o=e[n];null!=o&&o!==r[n]&&(o?t[i]():t[a]())};return h("removed","remove","restore"),h("selected","select","unselect"),h("selectable","selectify","unselectify"),h("locked","lock","unlock"),h("grabbable","grabify","ungrabify"),h("pannable","panify","unpanify"),null!=e.classes&&t.classes(e.classes),n.endBatch(),this}if(void 0===e){var d={data:e2(r.data),position:e2(r.position),group:r.group,removed:r.removed,selected:r.selected,selectable:r.selectable,locked:r.locked,grabbable:r.grabbable,pannable:r.pannable,classes:null};d.classes="";var p=0;return r.classes.forEach(function(e){return d.classes+=0==p++?e:" "+e}),d}}},aN.jsons=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t].json();e.push(n)}return e},aN.clone=function(){for(var e=this.cy(),t=[],n=0;n<this.length;n++){var r=new to(e,this[n].json(),!1);t.push(r)}return new aA(e,t)},aN.copy=aN.clone,aN.restore=function(){for(var e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=this.cy(),r=n._private,i=[],a=[],o=0,s=this.length;o<s;o++){var l=this[o];if(!t||!!l.removed())l.isNode()?i.push(l):a.push(l)}N=i.concat(a);var u=function(){N.splice(I,1),I--};for(I=0;I<N.length;I++){var c=N[I],h=c._private,d=h.data;if(c.clearTraversalCache(),t||h.removed){if(void 0===d.id)d.id=e5();else if(M(d.id))d.id=""+d.id;else if(R(d.id)||!D(d.id)){eJ("Can not create element with invalid string ID `"+d.id+"`"),u();continue}else if(n.hasElementWithId(d.id)){eJ("Can not create second element with ID `"+d.id+"`"),u();continue}}else;var p=d.id;if(c.isNode()){var f=h.position;null==f.x&&(f.x=0),null==f.y&&(f.y=0)}if(c.isEdge()){for(var g=["source","target"],v=g.length,y=!1,b=0;b<v;b++){var x=g[b],w=d[x];M(w)&&(w=d[x]=""+d[x]),null==w||""===w?(eJ("Can not create edge `"+p+"` with unspecified "+x),y=!0):!n.hasElementWithId(w)&&(eJ("Can not create edge `"+p+"` with nonexistant "+x+" `"+w+"`"),y=!0)}if(y){u();continue}var E=n.getElementById(d.source),k=n.getElementById(d.target);E.same(k)?E._private.edges.push(c):(E._private.edges.push(c),k._private.edges.push(c)),c._private.source=E,c._private.target=k}h.map=new tr,h.map.set(p,{ele:c,index:0}),h.removed=!1,t&&n.addToPool(c)}for(var C=0;C<i.length;C++){var S=i[C],T=S._private.data;M(T.parent)&&(T.parent=""+T.parent);var P=T.parent;if(null!=P||S._private.parent){var _=S._private.parent?n.collection().merge(S._private.parent):n.getElementById(P);if(_.empty())T.parent=void 0;else if(_[0].removed())e1("Node added with missing parent, reference to parent removed"),T.parent=void 0,S._private.parent=null;else{for(var B=!1,A=_;!A.empty();){if(S.same(A)){B=!0,T.parent=void 0;break}A=A.parent()}!B&&(_[0]._private.children.push(S),S._private.parent=_[0],r.hasCompoundNodes=!0)}}}if(N.length>0){for(var N,I,O,L=N.length===this.length?this:new aA(n,N),z=0;z<L.length;z++){var V=L[z];if(!V.isNode())V.parallelEdges().clearTraversalCache(),V.source().clearTraversalCache(),V.target().clearTraversalCache()}(O=r.hasCompoundNodes?n.collection().merge(L).merge(L.connectedNodes()).merge(L.parent()):L).dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(e),e?L.emitAndNotify("add"):t&&L.emit("add")}return this},aN.removed=function(){var e=this[0];return e&&e._private.removed},aN.inside=function(){var e=this[0];return e&&!e._private.removed},aN.remove=function(){var e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=[],r={},i=this._private.cy;function a(e){var i=r[e.id()];if(!(t&&e.removed())&&!i){r[e.id()]=!0;e.isNode()?(n.push(e),!function(e){for(var t=e._private.edges,n=0;n<t.length;n++)a(t[n])}(e),!function(e){for(var t=e._private.children,n=0;n<t.length;n++)a(t[n])}(e)):n.unshift(e)}}for(var o=0,s=this.length;o<s;o++)a(this[o]);function l(e,t){e6(e._private.edges,t),e.clearTraversalCache()}var u=[];u.ids={};this.dirtyCompoundBoundsCache(),t&&i.removeFromPool(n);for(var c=0;c<n.length;c++){var h=n[c];if(h.isEdge()){var d=h.source()[0],p=h.target()[0];l(d,h),l(p,h);for(var f=h.parallelEdges(),g=0;g<f.length;g++){var v=f[g];!function(e){e.clearTraversalCache()}(v),v.isBundledBezier()&&v.dirtyBoundingBoxCache()}}else{var y=h.parent();0!==y.length&&!function(e,t){t=t[0];var n=(e=e[0])._private.children,r=e.id();e6(n,t),t._private.parent=null,!u.ids[r]&&(u.ids[r]=!0,u.push(e))}(y,h)}t&&(h._private.removed=!0)}var b=i._private.elements;i._private.hasCompoundNodes=!1;for(var x=0;x<b.length;x++)if(b[x].isParent()){i._private.hasCompoundNodes=!0;break}var w=new aA(this.cy(),n);w.size()>0&&(e?w.emitAndNotify("remove"):t&&w.emit("remove"));for(var E=0;E<u.length;E++){var k=u[E];(!t||!k.removed())&&k.updateStyle()}return w},aN.move=function(e){var t=this._private.cy,n=this,r=function(e){return null==e?e:""+e};if(void 0!==e.source||void 0!==e.target){var i=r(e.source),a=r(e.target),o=null!=i&&t.hasElementWithId(i),s=null!=a&&t.hasElementWithId(a);(o||s)&&(t.batch(function(){n.remove(!1,!1),n.emitAndNotify("moveout");for(var e=0;e<n.length;e++){var t=n[e],r=t._private.data;t.isEdge()&&(o&&(r.source=i),s&&(r.target=a))}n.restore(!1,!1)}),n.emitAndNotify("move"))}else if(void 0!==e.parent){var l=r(e.parent);if(null===l||t.hasElementWithId(l)){var u=null===l?void 0:l;t.batch(function(){var e=n.remove(!1,!1);e.emitAndNotify("moveout");for(var t=0;t<n.length;t++){var r=n[t],i=r._private.data;r.isNode()&&(i.parent=u)}e.restore(!1,!1)}),n.emitAndNotify("move")}}return this},[ri,ir,ii,iC,iD,oQ,iB,i1,ao,as,{isNode:function(){return"nodes"===this.group()},isEdge:function(){return"edges"===this.group()},isLoop:function(){return this.isEdge()&&this.source()[0]===this.target()[0]},isSimple:function(){return this.isEdge()&&this.source()[0]!==this.target()[0]},group:function(){var e=this[0];if(e)return e._private.group}},au,ah,ag,aE,aS].forEach(function(e){Z(aN,e)});var aI=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,n,r){var i={x:t.x+r.dx*n,v:t.v+r.dv*n,tension:t.tension,friction:t.friction};return{dx:i.v,dv:e(i)}}return function n(r,i,a){var o,s,l,u={x:-1,v:0,tension:null,friction:null},c=[0],h=0;for(r=parseFloat(r)||500,i=parseFloat(i)||20,a=a||null,u.tension=r,u.friction=i,s=(o=null!==a)?(h=n(r,i))/a*.016:.016;l=function(n,r){var i={dx:n.v,dv:e(n)},a=t(n,.5*r,i),o=t(n,.5*r,a),s=t(n,r,o),l=1/6*(i.dx+2*(a.dx+o.dx)+s.dx),u=1/6*(i.dv+2*(a.dv+o.dv)+s.dv);return n.x=n.x+l*r,n.v=n.v+u*r,n}(l||u,s),c.push(1+l.x),h+=16,Math.abs(l.x)>1e-4&&Math.abs(l.v)>1e-4;);return o?function(e){return c[e*(c.length-1)|0]}:h}}(),aO=function(e,t,n,r){var i=function(e,t,n,r){var i=.1,a="undefined"!=typeof Float32Array;if(4!=arguments.length)return!1;for(var o=0;o<4;++o)if("number"!=typeof arguments[o]||isNaN(arguments[o])||!isFinite(arguments[o]))return!1;e=Math.min(e,1),n=Math.min(n,1),e=Math.max(e,0),n=Math.max(n,0);var s=a?new Float32Array(11):Array(11);function l(e,t){return 1-3*t+3*e}function u(e,t){return 3*t-6*e}function c(e){return 3*e}function h(e,t,n){return(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e}function d(e,t,n){return 3*(1-3*n+3*t)*e*e+2*(3*n-6*t)*e+3*t}var p=!1,f=function(a){return(!p&&(p=!0,(e!==t||n!==r)&&function(){for(var t=0;t<11;++t)s[t]=h(t*i,e,n)}()),e===t&&n===r)?a:0===a?0:1===a?1:h(function(t){for(var r=0,a=1,o=10;a!==o&&s[a]<=t;++a)r+=i;var l=r+(t-s[--a])/(s[a+1]-s[a])*i,u=d(l,e,n);return u>=.001?function(t,r){for(var i=0;i<4;++i){var a=d(r,e,n);if(0===a)break;var o=h(r,e,n)-t;r-=o/a}return r}(t,l):0===u?l:function(t,r,i){var a,o,s=0;do(a=h(o=r+(i-r)/2,e,n)-t)>0?i=o:r=o;while(Math.abs(a)>1e-7&&++s<10);return o}(t,r,r+i)}(a),t,r)};f.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var g="generateBezier("+[e,t,n,r]+")";return f.toString=function(){return g},f}(e,t,n,r);return function(e,t,n){return e+(t-e)*i(n)}},aL={linear:function(e,t,n){return e+(t-e)*n},ease:aO(.25,.1,.25,1),"ease-in":aO(.42,0,1,1),"ease-out":aO(0,0,.58,1),"ease-in-out":aO(.42,0,.58,1),"ease-in-sine":aO(.47,0,.745,.715),"ease-out-sine":aO(.39,.575,.565,1),"ease-in-out-sine":aO(.445,.05,.55,.95),"ease-in-quad":aO(.55,.085,.68,.53),"ease-out-quad":aO(.25,.46,.45,.94),"ease-in-out-quad":aO(.455,.03,.515,.955),"ease-in-cubic":aO(.55,.055,.675,.19),"ease-out-cubic":aO(.215,.61,.355,1),"ease-in-out-cubic":aO(.645,.045,.355,1),"ease-in-quart":aO(.895,.03,.685,.22),"ease-out-quart":aO(.165,.84,.44,1),"ease-in-out-quart":aO(.77,0,.175,1),"ease-in-quint":aO(.755,.05,.855,.06),"ease-out-quint":aO(.23,1,.32,1),"ease-in-out-quint":aO(.86,0,.07,1),"ease-in-expo":aO(.95,.05,.795,.035),"ease-out-expo":aO(.19,1,.22,1),"ease-in-out-expo":aO(1,0,0,1),"ease-in-circ":aO(.6,.04,.98,.335),"ease-out-circ":aO(.075,.82,.165,1),"ease-in-out-circ":aO(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return aL.linear;var r=aI(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":aO};function aR(e,t,n,r,i){if(1===r||t===n)return n;var a=i(t,n,r);return null==e?a:((e.roundValue||e.color)&&(a=Math.round(a)),void 0!==e.min&&(a=Math.max(a,e.min)),void 0!==e.max&&(a=Math.min(a,e.max)),a)}function az(e,t){return null==e.pfValue&&null==e.value?e:null!=e.pfValue&&(null==t||"%"!==t.type.units)?e.pfValue:e.value}function aV(e,t,n,r,i){var a=null!=i?i.type:null;n<0?n=0:n>1&&(n=1);var o=az(e,i),s=az(t,i);if(M(o)&&M(s))return aR(a,o,s,n,r);if(P(o)&&P(s)){for(var l=[],u=0;u<s.length;u++){var c=o[u],h=s[u];if(null!=c&&null!=h){var d=aR(a,c,h,n,r);l.push(d)}else l.push(h)}return l}}function aF(e,t){return null!=e&&null!=t&&(!!(M(e)&&M(t))||!!e&&!!t||!1)}function aj(e,t){var n=t._private.aniEles,r=[];function i(t,n){var i=t._private,a=i.animation.current,o=i.animation.queue,s=!1;if(0===a.length){var l=o.shift();l&&a.push(l)}for(var u=function(e){for(var t=e.length-1;t>=0;t--)(0,e[t])();e.splice(0,e.length)},c=a.length-1;c>=0;c--){var h=a[c],d=h._private;if(d.stopped){a.splice(c,1),d.hooked=!1,d.playing=!1,d.started=!1,u(d.frames);continue}if(!!d.playing||!!d.applying)d.playing&&d.applying&&(d.applying=!1),!d.started&&!function(e,t,n,r){var i=t._private;i.started=!0,i.startTime=n-i.progress*i.duration}(0,h,e),!function(e,t,n,r){var i,a,o,s,l=!r,u=e._private,c=t._private,h=c.easing,d=c.startTime,p=(r?e:e.cy()).style();if(!c.easingImpl){if(null==h)c.easingImpl=aL.linear;else{if(D(h)){;i=p.parse("transition-timing-function",h).value}else i=h;D(i)?(a=i,o=[]):(a=i[1],o=i.slice(2).map(function(e){return+e})),o.length>0?("spring"===a&&o.push(c.duration),c.easingImpl=aL[a].apply(null,o)):c.easingImpl=aL[a]}}var f=c.easingImpl;if(s=0===c.duration?1:(n-d)/c.duration,c.applying&&(s=c.progress),s<0?s=0:s>1&&(s=1),null==c.delay){var g=c.startPosition,v=c.position;if(v&&l&&!e.locked()){var y={};aF(g.x,v.x)&&(y.x=aV(g.x,v.x,s,f)),aF(g.y,v.y)&&(y.y=aV(g.y,v.y,s,f)),e.position(y)}var b=c.startPan,x=c.pan,w=u.pan,E=null!=x&&r;E&&(aF(b.x,x.x)&&(w.x=aV(b.x,x.x,s,f)),aF(b.y,x.y)&&(w.y=aV(b.y,x.y,s,f)),e.emit("pan"));var k=c.startZoom,C=c.zoom,S=null!=C&&r;S&&(aF(k,C)&&(u.zoom=tN(u.minZoom,aV(k,C,s,f),u.maxZoom)),e.emit("zoom")),(E||S)&&e.emit("viewport");var T=c.style;if(T&&T.length>0&&l){for(var P=0;P<T.length;P++){var _=T[P],M=_.name,B=c.startStyle[M],A=p.properties[B.name],N=aV(B,_,s,f,A);p.overrideBypass(e,M,N)}e.emit("style")}}c.progress=s}(t,h,e,n),d.applying&&(d.applying=!1),u(d.frames),null!=d.step&&d.step(e),h.completed()&&(a.splice(c,1),d.hooked=!1,d.playing=!1,d.started=!1,u(d.completes)),s=!0}return!n&&0===a.length&&0===o.length&&r.push(t),s}for(var a=!1,o=0;o<n.length;o++){var s=i(n[o]);a=a||s}var l=i(t,!0);(a||l)&&(n.length>0?t.notify("draw",n):t.notify("draw")),n.unmerge(r),t.emit("step")}var aq={animate:it.animate(),animation:it.animation(),animated:it.animated(),clearQueue:it.clearQueue(),delay:it.delay(),delayAnimation:it.delayAnimation(),stop:it.stop(),addToAnimationPool:function(e){if(!!this.styleEnabled())this._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,!!e.styleEnabled()){var t=e.renderer();t&&t.beforeRender?t.beforeRender(function(t,n){aj(n,e)},t.beforeRenderPriorities.animations):!function t(){if(!!e._private.animationsRunning)eO(function(n){aj(n,e),t()})}()}}},aX={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&N(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e}},aY=function(e){return D(e)?new iE(e):e},aW={createEmitter:function(){var e=this._private;return!e.emitter&&(e.emitter=new i7(aX,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,aY(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,aY(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,aY(t),n),this},once:function(e,t,n){return this.emitter().one(e,aY(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};it.eventAliasesOn(aW);var aH={png:function(e){var t=this._private.renderer;return e=e||{},t.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};aH.jpeg=aH.jpg;var aG={layout:function(e){if(null==e){eJ("Layout options must be specified to make a layout");return}if(null==e.name){eJ("A `name` must be specified to make a layout");return}var t,n=e.name,r=this.extension("layout",n);if(null==r){eJ("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?");return}return t=D(e.eles)?this.$(e.eles):null!=e.eles?e.eles:this.$(),new r(Z({},e,{cy:this,eles:t}))}};aG.createLayout=aG.makeLayout=aG.layout;var aU=e9({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1}),aK={renderTo:function(e,t,n,r){return this._private.renderer.renderTo(e,t,n,r),this},renderer:function(){return this._private.renderer},forceRender:function(){return this.notify("draw"),this},resize:function(){return this.invalidateSize(),this.emitAndNotify("resize"),this},initRenderer:function(e){var t=this.extension("renderer",e.name);if(null==t){eJ("Can not initialise: No such renderer `".concat(e.name,"` found. Did you forget to import it and `cytoscape.use()` it?"));return}void 0!==e.wheelSensitivity&&e1("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");var n=aU(e);n.cy=this,this._private.renderer=new t(n),this.notify("init")},destroyRenderer:function(){this.notify("destroy");var e=this.container();if(e)for(e._cyreg=null;e.childNodes.length>0;)e.removeChild(e.childNodes[0]);this._private.renderer=null,this.mutableElements().forEach(function(e){var t=e._private;t.rscratch={},t.rstyle={},t.animation.current=[],t.animation.queue=[]})},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};aK.invalidateDimensions=aK.resize;var aZ={collection:function(e,t){if(D(e))return this.$(e);if(A(e))return e.collection();if(P(e))return!t&&(t={}),new aA(this,e,t.unique,t.removed);return new aA(this)},nodes:function(e){var t=this.$(function(e){return e.isNode()});return e?t.filter(e):t},edges:function(e){var t=this.$(function(e){return e.isEdge()});return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};aZ.elements=aZ.filter=aZ.$;var a$={};a$.apply=function(e){for(var t=this._private.cy.collection(),n=0;n<e.length;n++){var r=e[n],i=this.getContextMeta(r);if(!i.empty){var a=this.getContextStyle(i),o=this.applyContextStyle(i,a,r);r._private.appliedInitStyle?this.updateTransitions(r,o.diffProps):r._private.appliedInitStyle=!0,this.updateStyleHints(r)&&t.push(r)}}return t},a$.getPropertiesDiff=function(e,t){var n=this._private.propDiffs=this._private.propDiffs||{},r=e+"-"+t,i=n[r];if(i)return i;for(var a=[],o={},s=0;s<this.length;s++){var l=this[s],u="t"===e[s],c="t"===t[s],h=u!==c,d=l.mappedProperties.length>0;if(h||c&&d){var p=void 0;h&&d?p=l.properties:h?p=l.properties:d&&(p=l.mappedProperties);for(var f=0;f<p.length;f++){for(var g=p[f],v=g.name,y=!1,b=s+1;b<this.length;b++){var x=this[b];if("t"===t[b]){if(y=null!=x.properties[g.name])break}}!o[v]&&!y&&(o[v]=!0,a.push(v))}}}return n[r]=a,a},a$.getContextMeta=function(e){for(var t,n="",r=e._private.styleCxtKey||"",i=0;i<this.length;i++){var a=this[i];a.selector&&a.selector.matches(e)?n+="t":n+="f"}return t=this.getPropertiesDiff(r,n),e._private.styleCxtKey=n,{key:n,diffPropNames:t,empty:0===t.length}},a$.getContextStyle=function(e){var t=e.key,n=this._private.contextStyles=this._private.contextStyles||{};if(n[t])return n[t];for(var r={_private:{key:t}},i=0;i<this.length;i++){var a=this[i];if("t"===t[i])for(var o=0;o<a.properties.length;o++){var s=a.properties[o];r[s.name]=s}}return n[t]=r,r},a$.applyContextStyle=function(e,t,n){for(var r=e.diffPropNames,i={},a=this.types,o=0;o<r.length;o++){var s=r[o],l=t[s],u=n.pstyle(s);if(!l){if(!u)continue;l=u.bypass?{name:s,deleteBypassed:!0}:{name:s,delete:!0}}if(u!==l){if(l.mapped===a.fn&&null!=u&&null!=u.mapping&&u.mapping.value===l.value){var c=u.mapping;if((c.fnValue=l.value(n))===c.prevFnValue)continue}var h=i[s]={prev:u};this.applyParsedProperty(n,l),h.next=n.pstyle(s),h.next&&h.next.bypass&&(h.next=h.next.bypassed)}}return{diffProps:i}},a$.updateStyleHints=function(e){var t,n=e._private,r=this,i=r.propertyGroupNames,a=r.propertyGroupKeys,o=function(e,t,n){return r.getPropertiesHash(e,t,n)},s=n.styleKey;if(e.removed())return!1;var l="nodes"===n.group,u=e._private.style;i=Object.keys(u);for(var c=0;c<a.length;c++){var h=a[c];n.styleKeys[h]=[9261,5381]}for(var d=function(e,t){return n.styleKeys[t][0]=eR(e,n.styleKeys[t][0])},p=function(e,t){return n.styleKeys[t][1]=ez(e,n.styleKeys[t][1])},f=function(e,t){for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);d(r,t),p(r,t)}},g=0;g<i.length;g++){var v,y,b,x=i[g],w=u[x];if(null!=w){var E=this.properties[x],k=E.type,C=E.groupKey,S=void 0;null!=E.hashOverride?S=E.hashOverride(e,w):null!=w.pfValue&&(S=w.pfValue);var D=null==E.enums?w.value:null,T=null!=S,P=null!=D,_=T||P,M=w.units;if(k.number&&_&&!k.multiple){;y=-128<(v=T?S:D)&&v<128&&Math.floor(v)!==v?2e9-(1024*v|0):v,d(y,b=C),p(y,b),!T&&null!=M&&f(M,C)}else f(w.strValue,C)}}for(var B=[9261,5381],A=0;A<a.length;A++){var N=a[A],I=n.styleKeys[N];B[0]=eR(I[0],B[0]),B[1]=ez(I[1],B[1])}n.styleKey=(t=B[0],2097152*t+B[1]);var O=n.styleKeys;n.labelDimsKey=eV(O.labelDimensions);var L=o(e,["label"],O.labelDimensions);if(n.labelKey=eV(L),n.labelStyleKey=eV(eF(O.commonLabel,L)),!l){var R=o(e,["source-label"],O.labelDimensions);n.sourceLabelKey=eV(R),n.sourceLabelStyleKey=eV(eF(O.commonLabel,R));var z=o(e,["target-label"],O.labelDimensions);n.targetLabelKey=eV(z),n.targetLabelStyleKey=eV(eF(O.commonLabel,z))}if(l){var V=n.styleKeys,F=V.nodeBody,j=V.nodeBorder,q=V.nodeOutline,X=V.backgroundImage,Y=V.compound,W=V.pie,H=[F,j,q,X,Y,W].filter(function(e){return null!=e}).reduce(eF,[9261,5381]);n.nodeKey=eV(H),n.hasPie=null!=W&&9261!==W[0]&&5381!==W[1]}return s!==n.styleKey},a$.clearStyleHints=function(e){var t=e._private;t.styleCxtKey="",t.styleKeys={},t.styleKey=null,t.labelKey=null,t.labelStyleKey=null,t.sourceLabelKey=null,t.sourceLabelStyleKey=null,t.targetLabelKey=null,t.targetLabelStyleKey=null,t.nodeKey=null,t.hasPie=null},a$.applyParsedProperty=function(e,t){var n=this,r=t,i=e._private.style,a=n.types,o=n.properties[r.name].type,s=r.bypass,l=i[r.name],u=l&&l.bypass,c=e._private,h="mapping",d=function(e){return null==e?null:null!=e.pfValue?e.pfValue:e.value},p=function(){var t=d(l),i=d(r);n.checkTriggers(e,r.name,t,i)};if("curve-style"===t.name&&e.isEdge()&&("bezier"!==t.value&&e.isLoop()||"haystack"===t.value&&(e.source().isParent()||e.target().isParent()))&&(r=t=this.parse(t.name,"bezier",s)),r.delete)return i[r.name]=void 0,p(),!0;if(r.deleteBypassed)return l?!!l.bypass&&(l.bypassed=void 0,p(),!0):(p(),!0);if(r.deleteBypass)return l?!!l.bypass&&(i[r.name]=l.bypassed,p(),!0):(p(),!0);var f=function(){e1("Do not assign mappings to elements without corresponding data (i.e. ele `"+e.id()+"` has no mapping for property `"+r.name+"` with data field `"+r.field+"`); try a `["+r.field+"]` selector to limit scope to elements with `"+r.field+"` defined")};switch(r.mapped){case a.mapData:for(var g,v,y=r.field.split("."),b=c.data,x=0;x<y.length&&b;x++)b=b[y[x]];if(null==b)return f(),!1;if(!M(b))return e1("Do not use continuous mappers without specifying numeric data (i.e. `"+r.field+": "+b+"` for `"+e.id()+"` is non-numeric)"),!1;var w=r.fieldMax-r.fieldMin;v=0===w?0:(b-r.fieldMin)/w;if(v<0?v=0:v>1&&(v=1),o.color){var E=r.valueMin[0],k=r.valueMax[0],C=r.valueMin[1],S=r.valueMax[1],D=r.valueMin[2],T=r.valueMax[2],P=null==r.valueMin[3]?1:r.valueMin[3],_=[Math.round(E+(k-E)*v),Math.round(C+(S-C)*v),Math.round(D+(T-D)*v),Math.round(P+((null==r.valueMax[3]?1:r.valueMax[3])-P)*v)];g={bypass:r.bypass,name:r.name,value:_,strValue:"rgb("+_[0]+", "+_[1]+", "+_[2]+")"}}else{if(!o.number)return!1;var B=r.valueMin+(r.valueMax-r.valueMin)*v;g=this.parse(r.name,B,r.bypass,h)}if(!g)return f(),!1;g.mapping=r,r=g;break;case a.data:for(var A=r.field.split("."),N=c.data,I=0;I<A.length&&N;I++)N=N[A[I]];if(null!=N&&(g=this.parse(r.name,N,r.bypass,h)),!g)return f(),!1;g.mapping=r,r=g;break;case a.fn:var O=r.value,L=null!=r.fnValue?r.fnValue:O(e);if(r.prevFnValue=L,null==L)return e1("Custom function mappers may not return null (i.e. `"+r.name+"` for ele `"+e.id()+"` is null)"),!1;if(!(g=this.parse(r.name,L,r.bypass,h)))return e1("Custom function mappers may not return invalid values for the property type (i.e. `"+r.name+"` for ele `"+e.id()+"` is invalid)"),!1;g.mapping=e2(r),r=g;break;case void 0:break;default:return!1}return s?(u?r.bypassed=l.bypassed:r.bypassed=l,i[r.name]=r):u?l.bypassed=r:i[r.name]=r,p(),!0},a$.cleanElements=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(this.clearStyleHints(r),r.dirtyCompoundBoundsCache(),r.dirtyBoundingBoxCache(),t){for(var i=r._private.style,a=Object.keys(i),o=0;o<a.length;o++){var s=a[o],l=i[s];null!=l&&(l.bypass?l.bypassed=null:i[s]=null)}}else r._private.style={}}},a$.update=function(){this._private.cy.mutableElements().updateStyle()},a$.updateTransitions=function(e,t){var n=this,r=e._private,i=e.pstyle("transition-property").value,a=e.pstyle("transition-duration").pfValue,o=e.pstyle("transition-delay").pfValue;if(i.length>0&&a>0){for(var s={},l=!1,u=0;u<i.length;u++){var c=i[u],h=e.pstyle(c),d=t[c];if(!d)continue;var p=d.prev,f=null!=d.next?d.next:h,g=!1,v=void 0;if(!!p)M(p.pfValue)&&M(f.pfValue)?(g=f.pfValue-p.pfValue,v=p.pfValue+1e-6*g):M(p.value)&&M(f.value)?(g=f.value-p.value,v=p.value+1e-6*g):P(p.value)&&P(f.value)&&(g=p.value[0]!==f.value[0]||p.value[1]!==f.value[1]||p.value[2]!==f.value[2],v=p.strValue),g&&(s[c]=f.strValue,this.applyBypass(e,c,v),l=!0)}if(!l)return;r.transitioning=!0,new rh(function(t){o>0?e.delayAnimation(o).play().promise().then(t):t()}).then(function(){return e.animation({style:s,duration:a,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){n.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1})}else r.transitioning&&(this.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1)},a$.checkTrigger=function(e,t,n,r,i,a){var o=this.properties[t],s=i(o);null!=s&&s(n,r)&&a(o)},a$.checkZOrderTrigger=function(e,t,n,r){var i=this;this.checkTrigger(e,t,n,r,function(e){return e.triggersZOrder},function(){i._private.cy.notify("zorder",e)})},a$.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,function(e){return e.triggersBounds},function(i){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache(),i.triggersBoundsOfParallelBeziers&&"curve-style"===t&&("bezier"===n||"bezier"===r)&&e.parallelEdges().forEach(function(e){e.isBundledBezier()&&e.dirtyBoundingBoxCache()}),i.triggersBoundsOfConnectedEdges&&"display"===t&&("none"===n||"none"===r)&&e.connectedEdges().forEach(function(e){e.dirtyBoundingBoxCache()})})},a$.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r)};var aQ={};aQ.applyBypass=function(e,t,n,r){var i=[];if("*"===t||"**"===t){if(void 0!==n)for(var a=0;a<this.properties.length;a++){var o=this.properties[a].name,s=this.parse(o,n,!0);s&&i.push(s)}}else if(D(t)){var l=this.parse(t,n,!0);l&&i.push(l)}else{if(!_(t))return!1;r=n;for(var u=Object.keys(t),c=0;c<u.length;c++){var h=u[c],d=t[h];if(void 0===d&&(d=t[j(h)]),void 0!==d){var p=this.parse(h,d,!0);p&&i.push(p)}}}if(0===i.length)return!1;for(var f=!1,g=0;g<e.length;g++){for(var v=e[g],y={},b=void 0,x=0;x<i.length;x++){var w=i[x];if(r){var E=v.pstyle(w.name);b=y[w.name]={prev:E}}f=this.applyParsedProperty(v,e2(w))||f,r&&(b.next=v.pstyle(w.name))}f&&this.updateStyleHints(v),r&&this.updateTransitions(v,y,!0)}return f},aQ.overrideBypass=function(e,t,n){t=F(t);for(var r=0;r<e.length;r++){var i=e[r],a=i._private.style[t],o=this.properties[t].type,s=o.color,l=o.mutiple,u=a?null!=a.pfValue?a.pfValue:a.value:null;a&&a.bypass?(a.value=n,null!=a.pfValue&&(a.pfValue=n),s?a.strValue="rgb("+n.join(",")+")":l?a.strValue=n.join(" "):a.strValue=""+n,this.updateStyleHints(i)):this.applyBypass(i,t,n),this.checkTriggers(i,t,u,n)}},aQ.removeAllBypasses=function(e,t){return this.removeBypasses(e,this.propertyNames,t)},aQ.removeBypasses=function(e,t,n){for(var r=0;r<e.length;r++){for(var i=e[r],a={},o=0;o<t.length;o++){var s=t[o],l=this.properties[s],u=i.pstyle(l.name);if(!!u&&!!u.bypass){var c=this.parse(s,"",!0),h=a[l.name]={prev:u};this.applyParsedProperty(i,c),h.next=i.pstyle(l.name)}}this.updateStyleHints(i),n&&this.updateTransitions(i,a,!0)}};var aJ={};aJ.getEmSizeInPixels=function(){var e=this.containerCss("font-size");return null!=e?parseFloat(e):1},aJ.containerCss=function(e){var t=this._private.cy,n=t.container(),r=t.window();if(r&&n&&r.getComputedStyle)return r.getComputedStyle(n).getPropertyValue(e)};var a0={};a0.getRenderedStyle=function(e,t){return t?this.getStylePropertyValue(e,t,!0):this.getRawStyle(e,!0)},a0.getRawStyle=function(e,t){if(e=e[0]){for(var n={},r=0;r<this.properties.length;r++){var i=this.properties[r],a=this.getStylePropertyValue(e,i.name,t);null!=a&&(n[i.name]=a,n[j(i.name)]=a)}return n}},a0.getIndexedStyle=function(e,t,n,r){var i=e.pstyle(t)[n][r];return null!=i?i:e.cy().style().getDefaultProperty(t)[n][0]},a0.getStylePropertyValue=function(e,t,n){if(e=e[0]){var r=this.properties[t];r.alias&&(r=r.pointsTo);var i=r.type,a=e.pstyle(r.name);if(a){var o=a.value,s=a.units,l=a.strValue;if(n&&i.number&&null!=o&&M(o)){var u=e.cy().zoom(),c=function(e){return e*u},h=function(e,t){return c(e)+t},d=P(o);if(d?s.every(function(e){return null!=e}):null!=s)return d?o.map(function(e,t){return h(e,s[t])}).join(" "):h(o,s);return d?o.map(function(e){return D(e)?e:""+c(e)}).join(" "):""+c(o)}if(null!=l)return l}return null}},a0.getAnimationStartStyle=function(e,t){for(var n={},r=0;r<t.length;r++){var i=t[r].name,a=e.pstyle(i);void 0!==a&&(a=_(a)?this.parse(i,a.strValue):this.parse(i,a)),a&&(n[i]=a)}return n},a0.getPropsList=function(e){var t=[],n=this.properties;if(e){for(var r=Object.keys(e),i=0;i<r.length;i++){var a=r[i],o=e[a],s=n[a]||n[F(a)],l=this.parse(s.name,o);l&&t.push(l)}}return t},a0.getNonDefaultPropertiesHash=function(e,t,n){var r,i,a,o,s,l,u=n.slice();for(s=0;s<t.length;s++){if(r=t[s],null!=(i=e.pstyle(r,!1)))if(null!=i.pfValue)u[0]=eR(o,u[0]),u[1]=ez(o,u[1]);else for(l=0,a=i.strValue;l<a.length;l++)o=a.charCodeAt(l),u[0]=eR(o,u[0]),u[1]=ez(o,u[1])}return u},a0.getPropertiesHash=a0.getNonDefaultPropertiesHash;var a1={};a1.appendFromJson=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=n.selector,i=n.style||n.css,a=Object.keys(i);this.selector(r);for(var o=0;o<a.length;o++){var s=a[o],l=i[s];this.css(s,l)}}return this},a1.fromJson=function(e){return this.resetToDefault(),this.appendFromJson(e),this},a1.json=function(){for(var e=[],t=this.defaultLength;t<this.length;t++){for(var n=this[t],r=n.selector,i=n.properties,a={},o=0;o<i.length;o++){var s=i[o];a[s.name]=s.strValue}e.push({selector:r?r.toString():"core",style:a})}return e};var a2={};a2.appendFromString=function(e){var t,n,r,i=""+e;function a(){i=i.length>t.length?i.substr(t.length):""}function o(){n=n.length>r.length?n.substr(r.length):""}for(i=i.replace(/[/][*](\s|.)+?[*][/]/g,"");!i.match(/^\s*$/);){;var s=i.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!s){e1("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+i);break}t=s[0];var l=s[1];if("core"!==l&&new iE(l).invalid){e1("Skipping parsing of block: Invalid selector found in string stylesheet: "+l),a();continue}var u=s[2],c=!1;n=u;for(var h=[];!n.match(/^\s*$/);){;var d=n.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!d){e1("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+u),c=!0;break}r=d[0];var p=d[1],f=d[2];if(!this.properties[p]){e1("Skipping property: Invalid property name in: "+r),o();continue}if(!this.parse(p,f)){e1("Skipping property: Invalid property definition in: "+r),o();continue}h.push({name:p,val:f}),o()}if(c){a();break}this.selector(l);for(var g=0;g<h.length;g++){var v=h[g];this.css(v.name,v.val)}a()}return this},a2.fromString=function(e){return this.resetToDefault(),this.appendFromString(e),this};var a5={};!function(){var e=function(e){return"^"+e+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},t=function(e){var t=Y+"|\\w+|"+H+"|"+U+"|\\#[0-9a-fA-F]{3}|\\#[0-9a-fA-F]{6}";return"^"+e+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+Y+")\\s*\\,\\s*("+Y+")\\s*,\\s*("+t+")\\s*\\,\\s*("+t+")\\)$"},n=["^url\\s*\\(\\s*['\"]?(.+?)['\"]?\\s*\\)$","^(none)$","^(.+)$"];a5.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},percentages:{number:!0,min:0,max:100,units:"%",implicitUnits:"%",multiple:!0},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},nonNegativeNumber:{number:!0,min:0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizeMaybePercent:{number:!0,allowPercent:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},axisDirection:{enums:["horizontal","leftward","rightward","vertical","upward","downward","auto"]},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials","null"],multiple:!0},bgClip:{enums:["none","node"],multiple:!0},bgContainment:{enums:["inside","over"],multiple:!0},color:{color:!0},colors:{color:!0,multiple:!0},fill:{enums:["solid","linear-gradient","radial-gradient"]},bool:{enums:["yes","no"]},bools:{enums:["yes","no"],multiple:!0},lineStyle:{enums:["solid","dotted","dashed"]},lineCap:{enums:["butt","round","square"]},linePosition:{enums:["center","inside","outside"]},lineJoin:{enums:["round","bevel","miter"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments","straight","straight-triangle","taxi","round-segments","round-taxi"]},radiusType:{enums:["arc-radius","influence-radius"],multiple:!0},fontFamily:{regex:'^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textOverflowWrap:{enums:["whitespace","anywhere"]},textBackgroundShape:{enums:["rectangle","roundrectangle","round-rectangle"]},nodeShape:{enums:["rectangle","roundrectangle","round-rectangle","cutrectangle","cut-rectangle","bottomroundrectangle","bottom-round-rectangle","barrel","ellipse","triangle","round-triangle","square","pentagon","round-pentagon","hexagon","round-hexagon","concavehexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","tag","round-tag","star","diamond","round-diamond","vee","rhomboid","right-rhomboid","polygon"]},overlayShape:{enums:["roundrectangle","round-rectangle","ellipse"]},cornerRadius:{number:!0,min:0,units:"px|em",implicitUnits:"px",enums:["auto"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","square","circle","diamond","chevron","none"]},arrowFill:{enums:["filled","hollow"]},arrowWidth:{number:!0,units:"%|px|em",implicitUnits:"px",enums:["match-line"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","center","bottom"]},halign:{enums:["left","center","right"]},justification:{enums:["left","center","right","auto"]},text:{string:!0},data:{mapping:!0,regex:e("data")},layoutData:{mapping:!0,regex:e("layoutData")},scratch:{mapping:!0,regex:e("scratch")},mapData:{mapping:!0,regex:t("mapData")},mapLayoutData:{mapping:!0,regex:t("mapLayoutData")},mapScratch:{mapping:!0,regex:t("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:n,singleRegexMatchValue:!0},urls:{regexes:n,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position","endpoints"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-node-or-label","outside-to-line","outside-to-line-or-label"],singleEnum:!0,validate:function(e,t){switch(e.length){case 2:return"deg"!==t[0]&&"rad"!==t[0]&&"deg"!==t[1]&&"rad"!==t[1];case 1:return D(e[0])||"deg"===t[0]||"rad"===t[0];default:return!1}}},easing:{regexes:["^(spring)\\s*\\(\\s*("+Y+")\\s*,\\s*("+Y+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+Y+")\\s*,\\s*("+Y+")\\s*,\\s*("+Y+")\\s*,\\s*("+Y+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]},gradientDirection:{enums:["to-bottom","to-top","to-left","to-right","to-bottom-right","to-bottom-left","to-top-right","to-top-left","to-right-bottom","to-left-bottom","to-right-top","to-left-top"]},boundsExpansion:{number:!0,multiple:!0,min:0,validate:function(e){var t=e.length;return 1===t||2===t||4===t}}};var r=function(e,t){return(null==e||null==t)&&e!==t||0==e&&0!=t||0!=e&&0==t||!1},i=function(e,t){return e!=t},a=function(e,t){var n=R(e),r=R(t);return n&&!r||!n&&r},o=a5.types,s=[{name:"label",type:o.text,triggersBounds:i,triggersZOrder:a},{name:"text-rotation",type:o.textRotation,triggersBounds:i},{name:"text-margin-x",type:o.bidirectionalSize,triggersBounds:i},{name:"text-margin-y",type:o.bidirectionalSize,triggersBounds:i}],l=[{name:"source-label",type:o.text,triggersBounds:i},{name:"source-text-rotation",type:o.textRotation,triggersBounds:i},{name:"source-text-margin-x",type:o.bidirectionalSize,triggersBounds:i},{name:"source-text-margin-y",type:o.bidirectionalSize,triggersBounds:i},{name:"source-text-offset",type:o.size,triggersBounds:i}],u=[{name:"target-label",type:o.text,triggersBounds:i},{name:"target-text-rotation",type:o.textRotation,triggersBounds:i},{name:"target-text-margin-x",type:o.bidirectionalSize,triggersBounds:i},{name:"target-text-margin-y",type:o.bidirectionalSize,triggersBounds:i},{name:"target-text-offset",type:o.size,triggersBounds:i}],c=[{name:"font-family",type:o.fontFamily,triggersBounds:i},{name:"font-style",type:o.fontStyle,triggersBounds:i},{name:"font-weight",type:o.fontWeight,triggersBounds:i},{name:"font-size",type:o.size,triggersBounds:i},{name:"text-transform",type:o.textTransform,triggersBounds:i},{name:"text-wrap",type:o.textWrap,triggersBounds:i},{name:"text-overflow-wrap",type:o.textOverflowWrap,triggersBounds:i},{name:"text-max-width",type:o.size,triggersBounds:i},{name:"text-outline-width",type:o.size,triggersBounds:i},{name:"line-height",type:o.positiveNumber,triggersBounds:i}],h=[{name:"text-valign",type:o.valign,triggersBounds:i},{name:"text-halign",type:o.halign,triggersBounds:i},{name:"color",type:o.color},{name:"text-outline-color",type:o.color},{name:"text-outline-opacity",type:o.zeroOneNumber},{name:"text-background-color",type:o.color},{name:"text-background-opacity",type:o.zeroOneNumber},{name:"text-background-padding",type:o.size,triggersBounds:i},{name:"text-border-opacity",type:o.zeroOneNumber},{name:"text-border-color",type:o.color},{name:"text-border-width",type:o.size,triggersBounds:i},{name:"text-border-style",type:o.borderStyle,triggersBounds:i},{name:"text-background-shape",type:o.textBackgroundShape,triggersBounds:i},{name:"text-justification",type:o.justification}],d=[{name:"events",type:o.bool,triggersZOrder:i},{name:"text-events",type:o.bool,triggersZOrder:i}],p=[{name:"display",type:o.display,triggersZOrder:i,triggersBounds:i,triggersBoundsOfConnectedEdges:!0},{name:"visibility",type:o.visibility,triggersZOrder:i},{name:"opacity",type:o.zeroOneNumber,triggersZOrder:r},{name:"text-opacity",type:o.zeroOneNumber},{name:"min-zoomed-font-size",type:o.size},{name:"z-compound-depth",type:o.zCompoundDepth,triggersZOrder:i},{name:"z-index-compare",type:o.zIndexCompare,triggersZOrder:i},{name:"z-index",type:o.number,triggersZOrder:i}],f=[{name:"overlay-padding",type:o.size,triggersBounds:i},{name:"overlay-color",type:o.color},{name:"overlay-opacity",type:o.zeroOneNumber,triggersBounds:r},{name:"overlay-shape",type:o.overlayShape,triggersBounds:i},{name:"overlay-corner-radius",type:o.cornerRadius}],g=[{name:"underlay-padding",type:o.size,triggersBounds:i},{name:"underlay-color",type:o.color},{name:"underlay-opacity",type:o.zeroOneNumber,triggersBounds:r},{name:"underlay-shape",type:o.overlayShape,triggersBounds:i},{name:"underlay-corner-radius",type:o.cornerRadius}],v=[{name:"transition-property",type:o.propList},{name:"transition-duration",type:o.time},{name:"transition-delay",type:o.time},{name:"transition-timing-function",type:o.easing}],y=function(e,t){return"label"===t.value?-e.poolIndex():t.pfValue},b=[{name:"height",type:o.nodeSize,triggersBounds:i,hashOverride:y},{name:"width",type:o.nodeSize,triggersBounds:i,hashOverride:y},{name:"shape",type:o.nodeShape,triggersBounds:i},{name:"shape-polygon-points",type:o.polygonPointList,triggersBounds:i},{name:"corner-radius",type:o.cornerRadius},{name:"background-color",type:o.color},{name:"background-fill",type:o.fill},{name:"background-opacity",type:o.zeroOneNumber},{name:"background-blacken",type:o.nOneOneNumber},{name:"background-gradient-stop-colors",type:o.colors},{name:"background-gradient-stop-positions",type:o.percentages},{name:"background-gradient-direction",type:o.gradientDirection},{name:"padding",type:o.sizeMaybePercent,triggersBounds:i},{name:"padding-relative-to",type:o.paddingRelativeTo,triggersBounds:i},{name:"bounds-expansion",type:o.boundsExpansion,triggersBounds:i}],x=[{name:"border-color",type:o.color},{name:"border-opacity",type:o.zeroOneNumber},{name:"border-width",type:o.size,triggersBounds:i},{name:"border-style",type:o.borderStyle},{name:"border-cap",type:o.lineCap},{name:"border-join",type:o.lineJoin},{name:"border-dash-pattern",type:o.numbers},{name:"border-dash-offset",type:o.number},{name:"border-position",type:o.linePosition}],w=[{name:"outline-color",type:o.color},{name:"outline-opacity",type:o.zeroOneNumber},{name:"outline-width",type:o.size,triggersBounds:i},{name:"outline-style",type:o.borderStyle},{name:"outline-offset",type:o.size,triggersBounds:i}],E=[{name:"background-image",type:o.urls},{name:"background-image-crossorigin",type:o.bgCrossOrigin},{name:"background-image-opacity",type:o.zeroOneNumbers},{name:"background-image-containment",type:o.bgContainment},{name:"background-image-smoothing",type:o.bools},{name:"background-position-x",type:o.bgPos},{name:"background-position-y",type:o.bgPos},{name:"background-width-relative-to",type:o.bgRelativeTo},{name:"background-height-relative-to",type:o.bgRelativeTo},{name:"background-repeat",type:o.bgRepeat},{name:"background-fit",type:o.bgFit},{name:"background-clip",type:o.bgClip},{name:"background-width",type:o.bgWH},{name:"background-height",type:o.bgWH},{name:"background-offset-x",type:o.bgPos},{name:"background-offset-y",type:o.bgPos}],k=[{name:"position",type:o.position,triggersBounds:i},{name:"compound-sizing-wrt-labels",type:o.compoundIncludeLabels,triggersBounds:i},{name:"min-width",type:o.size,triggersBounds:i},{name:"min-width-bias-left",type:o.sizeMaybePercent,triggersBounds:i},{name:"min-width-bias-right",type:o.sizeMaybePercent,triggersBounds:i},{name:"min-height",type:o.size,triggersBounds:i},{name:"min-height-bias-top",type:o.sizeMaybePercent,triggersBounds:i},{name:"min-height-bias-bottom",type:o.sizeMaybePercent,triggersBounds:i}],C=[{name:"line-style",type:o.lineStyle},{name:"line-color",type:o.color},{name:"line-fill",type:o.fill},{name:"line-cap",type:o.lineCap},{name:"line-opacity",type:o.zeroOneNumber},{name:"line-dash-pattern",type:o.numbers},{name:"line-dash-offset",type:o.number},{name:"line-outline-width",type:o.size},{name:"line-outline-color",type:o.color},{name:"line-gradient-stop-colors",type:o.colors},{name:"line-gradient-stop-positions",type:o.percentages},{name:"curve-style",type:o.curveStyle,triggersBounds:i,triggersBoundsOfParallelBeziers:!0},{name:"haystack-radius",type:o.zeroOneNumber,triggersBounds:i},{name:"source-endpoint",type:o.edgeEndpoint,triggersBounds:i},{name:"target-endpoint",type:o.edgeEndpoint,triggersBounds:i},{name:"control-point-step-size",type:o.size,triggersBounds:i},{name:"control-point-distances",type:o.bidirectionalSizes,triggersBounds:i},{name:"control-point-weights",type:o.numbers,triggersBounds:i},{name:"segment-distances",type:o.bidirectionalSizes,triggersBounds:i},{name:"segment-weights",type:o.numbers,triggersBounds:i},{name:"segment-radii",type:o.numbers,triggersBounds:i},{name:"radius-type",type:o.radiusType,triggersBounds:i},{name:"taxi-turn",type:o.bidirectionalSizeMaybePercent,triggersBounds:i},{name:"taxi-turn-min-distance",type:o.size,triggersBounds:i},{name:"taxi-direction",type:o.axisDirection,triggersBounds:i},{name:"taxi-radius",type:o.number,triggersBounds:i},{name:"edge-distances",type:o.edgeDistances,triggersBounds:i},{name:"arrow-scale",type:o.positiveNumber,triggersBounds:i},{name:"loop-direction",type:o.angle,triggersBounds:i},{name:"loop-sweep",type:o.angle,triggersBounds:i},{name:"source-distance-from-node",type:o.size,triggersBounds:i},{name:"target-distance-from-node",type:o.size,triggersBounds:i}],S=[{name:"ghost",type:o.bool,triggersBounds:i},{name:"ghost-offset-x",type:o.bidirectionalSize,triggersBounds:i},{name:"ghost-offset-y",type:o.bidirectionalSize,triggersBounds:i},{name:"ghost-opacity",type:o.zeroOneNumber}],T=[{name:"selection-box-color",type:o.color},{name:"selection-box-opacity",type:o.zeroOneNumber},{name:"selection-box-border-color",type:o.color},{name:"selection-box-border-width",type:o.size},{name:"active-bg-color",type:o.color},{name:"active-bg-opacity",type:o.zeroOneNumber},{name:"active-bg-size",type:o.size},{name:"outside-texture-bg-color",type:o.color},{name:"outside-texture-bg-opacity",type:o.zeroOneNumber}],P=[];a5.pieBackgroundN=16,P.push({name:"pie-size",type:o.sizeMaybePercent});for(var _=1;_<=a5.pieBackgroundN;_++)P.push({name:"pie-"+_+"-background-color",type:o.color}),P.push({name:"pie-"+_+"-background-size",type:o.percent}),P.push({name:"pie-"+_+"-background-opacity",type:o.zeroOneNumber});var M=[],B=a5.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:o.arrowShape,triggersBounds:i},{name:"arrow-color",type:o.color},{name:"arrow-fill",type:o.arrowFill},{name:"arrow-width",type:o.arrowWidth}].forEach(function(e){B.forEach(function(t){var n=t+"-"+e.name,r=e.type,i=e.triggersBounds;M.push({name:n,type:r,triggersBounds:i})})},{});var A=a5.properties=[].concat(d,v,p,f,g,S,h,c,s,l,u,b,x,w,E,P,k,C,M,T),N=a5.propertyGroups={behavior:d,transition:v,visibility:p,overlay:f,underlay:g,ghost:S,commonLabel:h,labelDimensions:c,mainLabel:s,sourceLabel:l,targetLabel:u,nodeBody:b,nodeBorder:x,nodeOutline:w,backgroundImage:E,pie:P,compound:k,edgeLine:C,edgeArrow:M,core:T},I=a5.propertyGroupNames={};(a5.propertyGroupKeys=Object.keys(N)).forEach(function(e){I[e]=N[e].map(function(e){return e.name}),N[e].forEach(function(t){return t.groupKey=e})});var O=a5.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"segment-distance",pointsTo:"segment-distances"},{name:"segment-weight",pointsTo:"segment-weights"},{name:"segment-radius",pointsTo:"segment-radii"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];a5.propertyNames=A.map(function(e){return e.name});for(var L=0;L<A.length;L++){var z=A[L];A[z.name]=z}for(var V=0;V<O.length;V++){var F=O[V],j=A[F.pointsTo],q={name:F.name,alias:!0,pointsTo:j};A.push(q),A[F.name]=q}}(),a5.getDefaultProperty=function(e){return this.getDefaultProperties()[e]},a5.getDefaultProperties=function(){var e=this._private;if(null!=e.defaultProperties)return e.defaultProperties;for(var t=Z({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125,events:"yes","text-events":"no","text-valign":"top","text-halign":"center","text-justification":"auto","line-height":1,color:"#000","text-outline-color":"#000","text-outline-width":0,"text-outline-opacity":1,"text-opacity":1,"text-decoration":"none","text-transform":"none","text-wrap":"none","text-overflow-wrap":"whitespace","text-max-width":9999,"text-background-color":"#000","text-background-opacity":0,"text-background-shape":"rectangle","text-background-padding":0,"text-border-opacity":0,"text-border-width":0,"text-border-style":"solid","text-border-color":"#000","font-family":"Helvetica Neue, Helvetica, sans-serif","font-style":"normal","font-weight":"normal","font-size":16,"min-zoomed-font-size":0,"text-rotation":"none","source-text-rotation":"none","target-text-rotation":"none",visibility:"visible",display:"element",opacity:1,"z-compound-depth":"auto","z-index-compare":"auto","z-index":0,label:"","text-margin-x":0,"text-margin-y":0,"source-label":"","source-text-offset":0,"source-text-margin-x":0,"source-text-margin-y":0,"target-label":"","target-text-offset":0,"target-text-margin-x":0,"target-text-margin-y":0,"overlay-opacity":0,"overlay-color":"#000","overlay-padding":10,"overlay-shape":"round-rectangle","overlay-corner-radius":"auto","underlay-opacity":0,"underlay-color":"#000","underlay-padding":10,"underlay-shape":"round-rectangle","underlay-corner-radius":"auto","transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","background-blacken":0,"background-color":"#999","background-fill":"solid","background-opacity":1,"background-image":"none","background-image-crossorigin":"anonymous","background-image-opacity":1,"background-image-containment":"inside","background-image-smoothing":"yes","background-position-x":"50%","background-position-y":"50%","background-offset-x":0,"background-offset-y":0,"background-width-relative-to":"include-padding","background-height-relative-to":"include-padding","background-repeat":"no-repeat","background-fit":"none","background-clip":"node","background-width":"auto","background-height":"auto","border-color":"#000","border-opacity":1,"border-width":0,"border-style":"solid","border-dash-pattern":[4,2],"border-dash-offset":0,"border-cap":"butt","border-join":"miter","border-position":"center","outline-color":"#999","outline-opacity":1,"outline-width":0,"outline-offset":0,"outline-style":"solid",height:30,width:30,shape:"ellipse","shape-polygon-points":"-1, -1, 1, -1, 1, 1, -1, 1","corner-radius":"auto","bounds-expansion":0,"background-gradient-direction":"to-bottom","background-gradient-stop-colors":"#999","background-gradient-stop-positions":"0%",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,padding:0,"padding-relative-to":"width",position:"origin","compound-sizing-wrt-labels":"include","min-width":0,"min-width-bias-left":0,"min-width-bias-right":0,"min-height":0,"min-height-bias-top":0,"min-height-bias-bottom":0},{"pie-size":"100%"},[{name:"pie-{{i}}-background-color",value:"black"},{name:"pie-{{i}}-background-size",value:"0%"},{name:"pie-{{i}}-background-opacity",value:1}].reduce(function(e,t){for(var n=1;n<=a5.pieBackgroundN;n++){var r=t.name.replace("{{i}}",n),i=t.value;e[r]=i}return e},{}),{"line-style":"solid","line-color":"#999","line-fill":"solid","line-cap":"butt","line-opacity":1,"line-outline-width":0,"line-outline-color":"#000","line-gradient-stop-colors":"#999","line-gradient-stop-positions":"0%","control-point-step-size":40,"control-point-weights":.5,"segment-weights":.5,"segment-distances":20,"segment-radii":15,"radius-type":"arc-radius","taxi-turn":"50%","taxi-radius":15,"taxi-turn-min-distance":10,"taxi-direction":"auto","edge-distances":"intersection","curve-style":"haystack","haystack-radius":0,"arrow-scale":1,"loop-direction":"-45deg","loop-sweep":"-90deg","source-distance-from-node":0,"target-distance-from-node":0,"source-endpoint":"outside-to-node","target-endpoint":"outside-to-node","line-dash-pattern":[6,3],"line-dash-offset":0},[{name:"arrow-shape",value:"none"},{name:"arrow-color",value:"#999"},{name:"arrow-fill",value:"filled"},{name:"arrow-width",value:1}].reduce(function(e,t){return a5.arrowPrefixes.forEach(function(n){var r=n+"-"+t.name,i=t.value;e[r]=i}),e},{})),n={},r=0;r<this.properties.length;r++){var i=this.properties[r];if(!i.pointsTo){var a=i.name,o=t[a],s=this.parse(a,o);n[a]=s}}return e.defaultProperties=n,e.defaultProperties},a5.addDefaultStylesheet=function(){this.selector(":parent").css({shape:"rectangle",padding:10,"background-color":"#eee","border-color":"#ccc","border-width":1}).selector("edge").css({width:3}).selector(":loop").css({"curve-style":"bezier"}).selector("edge:compound").css({"curve-style":"bezier","source-endpoint":"outside-to-line","target-endpoint":"outside-to-line"}).selector(":selected").css({"background-color":"#0169D9","line-color":"#0169D9","source-arrow-color":"#0169D9","target-arrow-color":"#0169D9","mid-source-arrow-color":"#0169D9","mid-target-arrow-color":"#0169D9"}).selector(":parent:selected").css({"background-color":"#CCE1F9","border-color":"#aec8e5"}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":.25}),this.defaultLength=this.length};var a3={};a3.parse=function(e,t,n,r){if(T(t))return this.parseImplWarn(e,t,n,r);var i,a="mapping"===r||!0===r||!1===r||null==r?"dontcare":r,o=eX(e,""+t,n?"t":"f",a),s=this.propCache=this.propCache||[];return!(i=s[o])&&(i=s[o]=this.parseImplWarn(e,t,n,r)),(n||"mapping"===r)&&(i=e2(i))&&(i.value=e2(i.value)),i},a3.parseImplWarn=function(e,t,n,r){var i=this.parseImpl(e,t,n,r);return!i&&null!=t&&e1("The style property `".concat(e,": ").concat(t,"` is invalid")),i&&("width"===i.name||"height"===i.name)&&"label"===t&&e1("The style value of `label` is deprecated for `"+i.name+"`"),i},a3.parseImpl=function(e,t,n,r){e=F(e);var i=this.properties[e],a=t,o=this.types;if(!i||void 0===t)return null;i.alias&&(e=(i=i.pointsTo).name);var s=D(t);s&&(t=t.trim());var l=i.type;if(!l)return null;if(n&&(""===t||null===t))return{name:e,value:t,bypass:!0,deleteBypass:!0};if(T(t))return{name:e,value:t,strValue:"fn",mapped:o.fn,bypass:n};if(!s||r||t.length<7||"a"!==t[1]);else if(t.length>=7&&"d"===t[0]&&(g=new RegExp(o.data.regex).exec(t))){if(n)return!1;var u=o.data;return{name:e,value:g,strValue:""+t,mapped:u,field:g[1],bypass:n}}else if(t.length>=10&&"m"===t[0]&&(v=new RegExp(o.mapData.regex).exec(t))){if(n||l.multiple)return!1;var c=o.mapData;if(!(l.color||l.number))return!1;var h=this.parse(e,v[4]);if(!h||h.mapped)return!1;var d=this.parse(e,v[5]);if(!d||d.mapped)return!1;if(h.pfValue===d.pfValue||h.strValue===d.strValue)return e1("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+h.strValue+"`"),this.parse(e,h.strValue);if(l.color){var p=h.value,f=d.value;if(p[0]===f[0]&&p[1]===f[1]&&p[2]===f[2]&&(p[3]===f[3]||(null==p[3]||1===p[3])&&(null==f[3]||1===f[3])))return!1}return{name:e,value:v,strValue:""+t,mapped:c,field:v[1],fieldMin:parseFloat(v[2]),fieldMax:parseFloat(v[3]),valueMin:h.value,valueMax:d.value,bypass:n}}if(l.multiple&&"multiple"!==r){if(y=s?t.split(/\s+/):P(t)?t:[t],l.evenMultiple&&y.length%2!=0)return null;for(var g,v,y,b=[],x=[],w=[],E="",k=!1,C=0;C<y.length;C++){var S=this.parse(e,y[C],n,"multiple");k=k||D(S.value),b.push(S.value),w.push(null!=S.pfValue?S.pfValue:S.value),x.push(S.units),E+=(C>0?" ":"")+S.strValue}if(l.validate&&!l.validate(b,x))return null;if(l.singleEnum&&k)return 1===b.length&&D(b[0])?{name:e,value:b[0],strValue:b[0],bypass:n}:null;return{name:e,value:b,pfValue:w,strValue:E,bypass:n,units:x}}var _=function(){for(var r=0;r<l.enums.length;r++)if(l.enums[r]===t)return{name:e,value:t,strValue:""+t,bypass:n};return null};if(l.number){var B,A,N="px";if(l.units&&(A=l.units),l.implicitUnits&&(N=l.implicitUnits),!l.unitless){if(s){var I="px|em"+(l.allowPercent?"|\\%":"");A&&(I=A);var O=t.match("^("+Y+")("+I+")?$");O&&(t=O[1],A=O[2]||N)}else(!A||l.implicitUnits)&&(A=N)}if(isNaN(t=parseFloat(t))&&void 0===l.enums)return null;if(isNaN(t)&&void 0!==l.enums)return t=a,_();if(l.integer&&!(M(B=t)&&Math.floor(B)===B)||void 0!==l.min&&(t<l.min||l.strictMin&&t===l.min)||void 0!==l.max&&(t>l.max||l.strictMax&&t===l.max))return null;var L={name:e,value:t,strValue:""+t+(A||""),units:A,bypass:n};if(l.unitless||"px"!==A&&"em"!==A?L.pfValue=t:L.pfValue="px"!==A&&A?this.getEmSizeInPixels()*t:t,("ms"===A||"s"===A)&&(L.pfValue="ms"===A?t:1e3*t),"deg"===A||"rad"===A)L.pfValue="rad"===A?t:Math.PI*t/180;return"%"===A&&(L.pfValue=t/100),L}if(l.propList){var R=[],z=""+t;if("none"===z);else{for(var V=z.split(/\s*,\s*|\s+/),j=0;j<V.length;j++){var q=V[j].trim();this.properties[q]?R.push(q):e1("`"+q+"` is not a valid property name")}if(0===R.length)return null}return{name:e,value:R,strValue:0===R.length?"none":R.join(" "),bypass:n}}if(l.color){var X=ee(t);return X?{name:e,value:X,pfValue:X,strValue:"rgb("+X[0]+","+X[1]+","+X[2]+")",bypass:n}:null}else if(l.regex||l.regexes){if(l.enums){var W=_();if(W)return W}for(var H=l.regexes?l.regexes:[l.regex],G=0;G<H.length;G++){var U=new RegExp(H[G]).exec(t);if(U)return{name:e,value:l.singleRegexMatchValue?U[1]:U,strValue:""+t,bypass:n}}return null}else if(l.string)return{name:e,value:""+t,strValue:""+t,bypass:n};else if(l.enums)return _();else return null};var a4=function e(t){if(!(this instanceof e))return new e(t);if(!O(t)){eJ("A style must have a core reference");return}this._private={cy:t,coreStyle:{}},this.length=0,this.resetToDefault()},a9=a4.prototype;a9.instanceString=function(){return"style"},a9.clear=function(){for(var e=this._private,t=e.cy.elements(),n=0;n<this.length;n++)this[n]=void 0;return this.length=0,e.contextStyles={},e.propDiffs={},this.cleanElements(t,!0),t.forEach(function(e){var t=e[0]._private;t.styleDirty=!0,t.appliedInitStyle=!1}),this},a9.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this},a9.core=function(e){return this._private.coreStyle[e]||this.getDefaultProperty(e)},a9.selector=function(e){var t="core"===e?null:new iE(e),n=this.length++;return this[n]={selector:t,properties:[],mappedProperties:[],index:n},this},a9.css=function(){var e=arguments;if(1===e.length){for(var t=e[0],n=0;n<this.properties.length;n++){var r=this.properties[n],i=t[r.name];void 0===i&&(i=t[j(r.name)]),void 0!==i&&this.cssRule(r.name,i)}}else 2===e.length&&this.cssRule(e[0],e[1]);return this},a9.style=a9.css,a9.cssRule=function(e,t){var n=this.parse(e,t);if(n){var r=this.length-1;this[r].properties.push(n),this[r].properties[n.name]=n,n.name.match(/pie-(\d+)-background-size/)&&n.value&&(this._private.hasPie=!0),n.mapped&&this[r].mappedProperties.push(n),!this[r].selector&&(this._private.coreStyle[n.name]=n)}return this},a9.append=function(e){return L(e)?e.appendToStyle(this):P(e)?this.appendFromJson(e):D(e)&&this.appendFromString(e),this},a4.fromJson=function(e,t){var n=new a4(e);return n.fromJson(t),n},a4.fromString=function(e,t){return new a4(e).fromString(t)},[a$,aQ,aJ,a0,a1,a2,a5,a3].forEach(function(e){Z(a9,e)}),a4.types=a9.types,a4.properties=a9.properties,a4.propertyGroups=a9.propertyGroups,a4.propertyGroupNames=a9.propertyGroupNames,a4.propertyGroupKeys=a9.propertyGroupKeys;var a6={autolock:function(e){return void 0===e?this._private.autolock:(this._private.autolock=!!e,this)},autoungrabify:function(e){return void 0===e?this._private.autoungrabify:(this._private.autoungrabify=!!e,this)},autounselectify:function(e){return void 0===e?this._private.autounselectify:(this._private.autounselectify=!!e,this)},selectionType:function(e){var t=this._private;return(null==t.selectionType&&(t.selectionType="single"),void 0===e)?t.selectionType:(("additive"===e||"single"===e)&&(t.selectionType=e),this)},panningEnabled:function(e){return void 0===e?this._private.panningEnabled:(this._private.panningEnabled=!!e,this)},userPanningEnabled:function(e){return void 0===e?this._private.userPanningEnabled:(this._private.userPanningEnabled=!!e,this)},zoomingEnabled:function(e){return void 0===e?this._private.zoomingEnabled:(this._private.zoomingEnabled=!!e,this)},userZoomingEnabled:function(e){return void 0===e?this._private.userZoomingEnabled:(this._private.userZoomingEnabled=!!e,this)},boxSelectionEnabled:function(e){return void 0===e?this._private.boxSelectionEnabled:(this._private.boxSelectionEnabled=!!e,this)},pan:function(){var e,t,n,r,i,a=arguments,o=this._private.pan;switch(a.length){case 0:return o;case 1:if(D(a[0]))return o[e=a[0]];if(_(a[0])){if(!this._private.panningEnabled)return this;r=(n=a[0]).x,i=n.y,M(r)&&(o.x=r),M(i)&&(o.y=i),this.emit("pan viewport")}break;case 2:if(!this._private.panningEnabled)return this;e=a[0],t=a[1],("x"===e||"y"===e)&&M(t)&&(o[e]=t),this.emit("pan viewport")}return this.notify("viewport"),this},panBy:function(e,t){var n,r,i,a=arguments,o=this._private.pan;if(!this._private.panningEnabled)return this;switch(a.length){case 1:_(e)&&(r=(n=a[0]).x,i=n.y,M(r)&&(o.x+=r),M(i)&&(o.y+=i),this.emit("pan viewport"));break;case 2:("x"===e||"y"===e)&&M(t)&&(o[e]+=t),this.emit("pan viewport")}return this.notify("viewport"),this},fit:function(e,t){var n=this.getFitViewport(e,t);if(n){var r=this._private;r.zoom=n.zoom,r.pan=n.pan,this.emit("pan zoom viewport"),this.notify("viewport")}return this},getFitViewport:function(e,t){if(M(e)&&void 0===t&&(t=e,e=void 0),!this._private.panningEnabled||!this._private.zoomingEnabled)return;if(D(e)){var n,r,i,a=e;e=this.$(a)}else{;if(_(n=e)&&M(n.x1)&&M(n.x2)&&M(n.y1)&&M(n.y2)){var o=e;(r={x1:o.x1,y1:o.y1,x2:o.x2,y2:o.y2}).w=r.x2-r.x1,r.h=r.y2-r.y1}else!A(e)&&(e=this.mutableElements())}if(!(A(e)&&e.empty())){r=r||e.boundingBox();var s=this.width(),l=this.height();if(t=M(t)?t:0,!isNaN(s)&&!isNaN(l)&&s>0&&l>0&&!isNaN(r.w)&&!isNaN(r.h)&&r.w>0&&r.h>0){i=(i=(i=Math.min((s-2*t)/r.w,(l-2*t)/r.h))>this._private.maxZoom?this._private.maxZoom:i)<this._private.minZoom?this._private.minZoom:i;var u={x:(s-i*(r.x1+r.x2))/2,y:(l-i*(r.y1+r.y2))/2};return{zoom:i,pan:u}}}},zoomRange:function(e,t){var n=this._private;if(null==t){var r=e;e=r.min,t=r.max}return M(e)&&M(t)&&e<=t?(n.minZoom=e,n.maxZoom=t):M(e)&&void 0===t&&e<=n.maxZoom?n.minZoom=e:M(t)&&void 0===e&&t>=n.minZoom&&(n.maxZoom=t),this},minZoom:function(e){return void 0===e?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return void 0===e?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t,n,r=this._private,i=r.pan,a=r.zoom,o=!1;if(!r.zoomingEnabled&&(o=!0),M(e)?n=e:_(e)&&(n=e.level,null!=e.position?t=ty(e.position,a,i):null!=e.renderedPosition&&(t=e.renderedPosition),null!=t&&!r.panningEnabled&&(o=!0)),n=(n=n>r.maxZoom?r.maxZoom:n)<r.minZoom?r.minZoom:n,o||!M(n)||n===a||null!=t&&(!M(t.x)||!M(t.y)))return null;if(null==t)return{zoomed:!0,panned:!1,zoom:n,pan:i};var s=n,l={x:-s/a*(t.x-i.x)+t.x,y:-s/a*(t.y-i.y)+t.y};return{zoomed:!0,panned:!0,zoom:s,pan:l}},zoom:function(e){if(void 0===e)return this._private.zoom;var t=this.getZoomedViewport(e),n=this._private;return null!=t&&t.zoomed?(n.zoom=t.zoom,t.panned&&(n.pan.x=t.pan.x,n.pan.y=t.pan.y),this.emit("zoom"+(t.panned?" pan":"")+" viewport"),this.notify("viewport"),this):this},viewport:function(e){var t=this._private,n=!0,r=!0,i=[],a=!1,o=!1;if(!e)return this;if(!M(e.zoom)&&(n=!1),!_(e.pan)&&(r=!1),!n&&!r)return this;if(n){var s=e.zoom;s<t.minZoom||s>t.maxZoom||!t.zoomingEnabled?a=!0:(t.zoom=s,i.push("zoom"))}if(r&&(!a||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;M(l.x)&&(t.pan.x=l.x,o=!1),M(l.y)&&(t.pan.y=l.y,o=!1),!o&&i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(!this._private.panningEnabled)return;if(D(e)){var n=e;e=this.mutableElements().filter(n)}else!A(e)&&(e=this.mutableElements());if(0!==e.length){var r=e.boundingBox(),i=this.width(),a=this.height();return{x:(i-(t=void 0===t?this._private.zoom:t)*(r.x1+r.x2))/2,y:(a-t*(r.y1+r.y2))/2}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,n=this._private,r=n.container,i=this;return n.sizeCache=n.sizeCache||(r?(e=i.window().getComputedStyle(r),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){return e?(this._private.multiClickDebounceTime=e,this):this._private.multiClickDebounceTime}};a6.centre=a6.center,a6.autolockNodes=a6.autolock,a6.autoungrabifyNodes=a6.autoungrabify;var a8={data:it.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:it.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:it.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:it.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};a8.attr=a8.data,a8.removeAttr=a8.removeData;var a7=function(e){var t=this,n=(e=Z({},e)).container;n&&!B(n)&&B(n[0])&&(n=n[0]);var r=n?n._cyreg:null;r=r||{},r.cy&&(r.cy.destroy(),r={});var i=r.readies=r.readies||[];n&&(n._cyreg=r),r.cy=t;var a=void 0!==b&&void 0!==n&&!e.headless,o=e;o.layout=Z({name:a?"grid":"null"},o.layout),o.renderer=Z({name:a?"canvas":"null"},o.renderer);var s=function(e,t,n){return void 0!==t?t:void 0!==n?n:e},l=this._private={container:n,ready:!1,options:o,elements:new aA(this),listeners:[],aniEles:new aA(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?a:o.styleEnabled,zoom:M(o.zoom)?o.zoom:1,pan:{x:_(o.pan)&&M(o.pan.x)?o.pan.x:0,y:_(o.pan)&&M(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});l.styleEnabled&&t.setStyle([]);var u=Z({},o,o.renderer);t.initRenderer(u);var c=function(e,n,r){t.notifications(!1);var i=t.mutableElements();i.length>0&&i.remove(),null!=e&&(_(e)||P(e))&&t.add(e),t.one("layoutready",function(e){t.notifications(!0),t.emit(e),t.one("load",n),t.emitAndNotify("load")}).one("layoutstop",function(){t.one("done",r),t.emit("done")});var a=Z({},t._private.options.layout);a.eles=t.elements(),t.layout(a).run()};!function(e,t){if(e.some(z))return rh.all(e).then(t);t(e)}([o.style,o.elements],function(e){var n=e[0],a=e[1];l.styleEnabled&&t.style().append(n),c(a,function(){t.startAnimationLoop(),l.ready=!0,T(o.ready)&&t.on("ready",o.ready);for(var e=0;e<i.length;e++){var n=i[e];t.on("ready",n)}r&&(r.readies=[]),t.emit("ready")},o.done)})},oe=a7.prototype;Z(oe,{instanceString:function(){return"core"},isReady:function(){return this._private.ready},destroyed:function(){return this._private.destroyed},ready:function(e){return this.isReady()?this.emitter().emit("ready",[],e):this.on("ready",e),this},destroy:function(){if(!this.destroyed())return this.stopAnimationLoop(),this.destroyRenderer(),this.emit("destroy"),this._private.destroyed=!0,this},hasElementWithId:function(e){return this._private.elements.hasElementWithId(e)},getElementById:function(e){return this._private.elements.getElementById(e)},hasCompoundNodes:function(){return this._private.hasCompoundNodes},headless:function(){return this._private.renderer.isHeadless()},styleEnabled:function(){return this._private.styleEnabled},addToPool:function(e){return this._private.elements.merge(e),this},removeFromPool:function(e){return this._private.elements.unmerge(e),this},container:function(){return this._private.container||null},window:function(){if(null==this._private.container)return b;var e=this._private.container.ownerDocument;return void 0===e||null==e?b:e.defaultView||b},mount:function(e){if(null!=e){var t=this._private,n=t.options;return!B(e)&&B(e[0])&&(e=e[0]),this.stopAnimationLoop(),this.destroyRenderer(),t.container=e,t.styleEnabled=!0,this.invalidateSize(),this.initRenderer(Z({},n,n.renderer,{name:"null"===n.renderer.name?"canvas":n.renderer.name})),this.startAnimationLoop(),this.style(n.style),this.emit("mount"),this}},unmount:function(){return this.stopAnimationLoop(),this.destroyRenderer(),this.initRenderer({name:"null"}),this.emit("unmount"),this},options:function(){return e2(this._private.options)},json:function(e){var t=this,n=t._private,r=t.mutableElements();if(_(e)){if(t.startBatch(),e.elements){var i={},a=function(e,n){for(var r=[],a=[],o=0;o<e.length;o++){var s=e[o];if(!s.data.id){e1("cy.json() cannot handle elements without an ID attribute");continue}var l=""+s.data.id,u=t.getElementById(l);i[l]=!0,0!==u.length?a.push({ele:u,json:s}):(n&&(s.group=n),r.push(s))}t.add(r);for(var c=0;c<a.length;c++){var h=a[c],d=h.ele,p=h.json;d.json(p)}};if(P(e.elements))a(e.elements);else{for(var o=["nodes","edges"],s=0;s<o.length;s++){var l=o[s],u=e.elements[l];P(u)&&a(u,l)}}var c=t.collection();r.filter(function(e){return!i[e.id()]}).forEach(function(e){e.isParent()?c.merge(e):e.remove()}),c.forEach(function(e){return e.children().move({parent:null})}),c.forEach(function(e){var n;return(n=e,t.getElementById(n.id())).remove()})}e.style&&t.style(e.style),null!=e.zoom&&e.zoom!==n.zoom&&t.zoom(e.zoom),e.pan&&(e.pan.x!==n.pan.x||e.pan.y!==n.pan.y)&&t.pan(e.pan),e.data&&t.data(e.data);for(var h=["minZoom","maxZoom","zoomingEnabled","userZoomingEnabled","panningEnabled","userPanningEnabled","boxSelectionEnabled","autolock","autoungrabify","autounselectify","multiClickDebounceTime"],d=0;d<h.length;d++){var p=h[d];null!=e[p]&&t[p](e[p])}return t.endBatch(),this}var f={};e?f.elements=this.elements().map(function(e){return e.json()}):(f.elements={},r.forEach(function(e){var t=e.group();!f.elements[t]&&(f.elements[t]=[]),f.elements[t].push(e.json())})),this._private.styleEnabled&&(f.style=t.style().json()),f.data=e2(t.data());var g=n.options;return f.zoomingEnabled=n.zoomingEnabled,f.userZoomingEnabled=n.userZoomingEnabled,f.zoom=n.zoom,f.minZoom=n.minZoom,f.maxZoom=n.maxZoom,f.panningEnabled=n.panningEnabled,f.userPanningEnabled=n.userPanningEnabled,f.pan=e2(n.pan),f.boxSelectionEnabled=n.boxSelectionEnabled,f.renderer=e2(g.renderer),f.hideEdgesOnViewport=g.hideEdgesOnViewport,f.textureOnViewport=g.textureOnViewport,f.wheelSensitivity=g.wheelSensitivity,f.motionBlur=g.motionBlur,f.multiClickDebounceTime=g.multiClickDebounceTime,f}}),oe.$id=oe.getElementById,[{add:function(e){var t;if(A(e)){if(e._private.cy===this)t=e.restore();else{for(var n=[],r=0;r<e.length;r++){var i=e[r];n.push(i.json())}t=new aA(this,n)}}else if(P(e))t=new aA(this,e);else if(_(e)&&(P(e.nodes)||P(e.edges))){for(var a=[],o=["nodes","edges"],s=0,l=o.length;s<l;s++){var u=o[s],c=e[u];if(P(c))for(var h=0,d=c.length;h<d;h++){var p=Z({group:u},c[h]);a.push(p)}}t=new aA(this,a)}else t=new to(this,e).collection();return t},remove:function(e){if(A(e));else if(D(e)){var t=e;e=this.$(t)}return e.remove()}},aq,aW,aH,aG,{notify:function(e,t){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var r=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();null!=t&&r.merge(t);return}if(!n.notificationsEnabled)return;var i=this.renderer();if(!this.destroyed()&&!!i)i.notify(e,t)},notifications:function(e){var t=this._private;return void 0===e?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(0===e.batchCount)return this;if(e.batchCount--,0===e.batchCount){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach(function(n){var r=e.batchNotifications[n];r.empty()?t.notify(n):t.notify(n,r)})}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch(function(){for(var n=Object.keys(e),r=0;r<n.length;r++){var i=n[r],a=e[i];t.getElementById(i).data(a)}})}},aK,aZ,{style:function(e){return e&&this.setStyle(e).update(),this._private.style},setStyle:function(e){var t=this._private;return L(e)?t.style=e.generateStyle(this):P(e)?t.style=a4.fromJson(this,e):D(e)?t.style=a4.fromString(this,e):t.style=a4(this),t.style},updateStyle:function(){this.mutableElements().updateStyle()}},a6,a8].forEach(function(e){Z(oe,e)});var ot={fit:!0,directed:!1,padding:30,circle:!1,grid:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,depthSort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}},on={maximal:!1,acyclic:!1},or=function(e){return e.scratch("breadthfirst")},oi=function(e,t){return e.scratch("breadthfirst",t)};function oa(e){this.options=Z({},ot,on,e)}oa.prototype.run=function(){var e,t=this.options,n=t.cy,r=t.eles,i=r.nodes().filter(function(e){return!e.isParent()}),a=t.directed,o=t.acyclic||t.maximal||t.maximalAdjustments>0,s=tI(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(A(t.roots))e=t.roots;else if(P(t.roots)){for(var l=[],u=0;u<t.roots.length;u++){var c=t.roots[u],h=n.getElementById(c);l.push(h)}e=n.collection(l)}else if(D(t.roots))e=n.$(t.roots);else if(a)e=i.roots();else{var d=r.components();e=n.collection();for(var p=0;p<d.length;p++)!function(t){var n=d[t],r=n.maxDegree(!1),i=n.filter(function(e){return e.degree(!1)===r});e=e.add(i)}(p)}var f=[],g={},v=function(e,t){null==f[t]&&(f[t]=[]);var n=f[t].length;f[t].push(e),oi(e,{index:n,depth:t})},y=function(e,t){var n=or(e),r=n.depth,i=n.index;f[r][i]=null,v(e,t)};r.bfs({roots:e,directed:t.directed,visit:function(e,t,n,r,i){var a=e[0],o=a.id();v(a,i),g[o]=!0}});for(var b=[],x=0;x<i.length;x++){var w=i[x];if(!g[w.id()])b.push(w)}var E=function(e){for(var t=f[e],n=0;n<t.length;n++){var r=t[n];if(null==r){t.splice(n,1),n--;continue}oi(r,{depth:e,index:n})}},k=function(){for(var e=0;e<f.length;e++)E(e)};if(a&&o){var C=[],S={},T=function(e){return C.push(e)};for(i.forEach(function(e){return C.push(e)});C.length>0;){var _=C.shift(),M=function(e,n){for(var i=or(e),a=e.incomers().filter(function(e){return e.isNode()&&r.has(e)}),o=-1,s=e.id(),l=0;l<a.length;l++)o=Math.max(o,or(a[l]).depth);if(i.depth<=o){if(!t.acyclic&&n[s])return null;var u=o+1;return y(e,u),n[s]=u,!0}return!1}(_,S);if(M)_.outgoers().filter(function(e){return e.isNode()&&r.has(e)}).forEach(T);else if(null===M){e1("Detected double maximal shift for node `"+_.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}k();var B=0;if(t.avoidOverlap)for(var N=0;N<i.length;N++){var I=i[N].layoutDimensions(t),O=I.w,L=I.h;B=Math.max(B,O,L)}var R={},z=function(e){if(R[e.id()])return R[e.id()];for(var t=or(e).depth,n=e.neighborhood(),r=0,a=0,o=0;o<n.length;o++){var s=n[o];if(s.isEdge()||s.isParent()||!i.has(s))continue;var l=or(s);if(null==l)continue;var u=l.index,c=l.depth;if(null!=u&&null!=c){var h=f[c].length;c<t&&(r+=u/h,a++)}}return r/=a=Math.max(1,a),0===a&&(r=0),R[e.id()]=r,r},V=function(e,t){var n=z(e)-z(t);return 0===n?K(e.id(),t.id()):n};void 0!==t.depthSort&&(V=t.depthSort);for(var F=0;F<f.length;F++)f[F].sort(V),E(F);for(var j=[],q=0;q<b.length;q++)j.push(b[q]);f.unshift(j),k();for(var X=0,Y=0;Y<f.length;Y++)X=Math.max(f[Y].length,X);var W={x:s.x1+s.w/2,y:s.x1+s.h/2},H=f.reduce(function(e,t){return Math.max(e,t.length)},0);return r.nodes().layoutPositions(this,t,function(e){var n=or(e),r=n.depth,i=n.index,a=f[r].length,o=Math.max(s.w/((t.grid?H:a)+1),B),l=Math.max(s.h/(f.length+1),B),u=Math.min(s.w/2/f.length,s.h/2/f.length);if(u=Math.max(u,B),!t.circle)return{x:W.x+(i+1-(a+1)/2)*o,y:(r+1)*l};var c=u*r+u-(f.length>0&&f[0].length<=3?u/2:0),h=2*Math.PI/f[r].length*i;return 0===r&&1===f[0].length&&(c=1),{x:W.x+c*Math.cos(h),y:W.y+c*Math.sin(h)}}),this};var oo={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function os(e){this.options=Z({},oo,e)}os.prototype.run=function(){var e,t=this.options,n=t.cy,r=t.eles,i=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,a=r.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));for(var o=tI(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),s={x:o.x1+o.w/2,y:o.y1+o.h/2},l=(void 0===t.sweep?2*Math.PI-2*Math.PI/a.length:t.sweep)/Math.max(1,a.length-1),u=0,c=0;c<a.length;c++){var h=a[c].layoutDimensions(t);u=Math.max(u,h.w,h.h)}if(e=M(t.radius)?t.radius:a.length<=1?0:Math.min(o.h,o.w)/2-u,a.length>1&&t.avoidOverlap){var d=Math.cos(l)-1,p=Math.sin(l)-0;e=Math.max(Math.sqrt((u*=1.75)*u/(d*d+p*p)),e)}return r.nodes().layoutPositions(this,t,function(n,r){var a=t.startAngle+r*l*(i?1:-1),o=e*Math.cos(a),u=e*Math.sin(a);return{x:s.x+o,y:s.y+u}}),this};var ol={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function ou(e){this.options=Z({},ol,e)}ou.prototype.run=function(){for(var e=this.options,t=void 0!==e.counterclockwise?!e.counterclockwise:e.clockwise,n=e.cy,r=e.eles,i=r.nodes().not(":parent"),a=tI(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),o={x:a.x1+a.w/2,y:a.y1+a.h/2},s=[],l=0,u=0;u<i.length;u++){var c=i[u],h=void 0;h=e.concentric(c),s.push({value:h,node:c}),c._private.scratch.concentric=h}i.updateStyle();for(var d=0;d<i.length;d++){var p=i[d].layoutDimensions(e);l=Math.max(l,p.w,p.h)}s.sort(function(e,t){return t.value-e.value});for(var f=e.levelWidth(i),g=[[]],v=g[0],y=0;y<s.length;y++){var b=s[y];v.length>0&&Math.abs(v[0].value-b.value)>=f&&(v=[],g.push(v)),v.push(b)}var x=l+e.minNodeSpacing;if(!e.avoidOverlap){var w=g.length>0&&g[0].length>1,E=(Math.min(a.w,a.h)/2-x)/(g.length+w?1:0);x=Math.min(x,E)}for(var k=0,C=0;C<g.length;C++){var S=g[C],D=void 0===e.sweep?2*Math.PI-2*Math.PI/S.length:e.sweep,T=S.dTheta=D/Math.max(1,S.length-1);if(S.length>1&&e.avoidOverlap){var P,_=Math.cos(T)-1,M=Math.sin(T)-0;k=Math.max(Math.sqrt(x*x/(_*_+M*M)),k)}S.r=k,k+=x}if(e.equidistant){for(var B=0,A=0,N=0;N<g.length;N++)B=Math.max(B,g[N].r-A);A=0;for(var I=0;I<g.length;I++){var O=g[I];0===I&&(A=O.r),O.r=A,A+=B}}for(var L={},R=0;R<g.length;R++){for(var z=g[R],V=z.dTheta,F=z.r,j=0;j<z.length;j++){var q=z[j],X=e.startAngle+(t?1:-1)*V*j,Y={x:o.x+F*Math.cos(X),y:o.y+F*Math.sin(X)};L[q.node.id()]=Y}}return r.nodes().layoutPositions(this,e,function(e){return L[e.id()]}),this};var oc={ready:function(){},stop:function(){},animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:function(e,t){return!0},animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:function(e){return 2048},nodeOverlap:4,idealEdgeLength:function(e){return 32},edgeElasticity:function(e){return 32},nestingFactor:1.2,gravity:1,numIter:1e3,initialTemp:1e3,coolingFactor:.99,minTemp:1};function oh(e){this.options=Z({},oc,e),this.options.layout=this;var t=this.options.eles.nodes(),n=this.options.eles.edges().filter(function(e){var n=e.source().data("id"),r=e.target().data("id"),i=t.some(function(e){return e.data("id")===n}),a=t.some(function(e){return e.data("id")===r});return!i||!a});this.options.eles=this.options.eles.not(n)}oh.prototype.run=function(){var e=this.options,t=e.cy,n=this;n.stopped=!1,(!0===e.animate||!1===e.animate)&&n.emit({type:"layoutstart",layout:n}),o4=!0===e.debug||!1;var r=od(t,n,e);o4&&o9(r),e.randomize&&og(r);var i=eN(),a=function(){oy(r,t,e),!0===e.fit&&t.fit(e.padding)},o=function(t){return!n.stopped&&!(t>=e.numIter)&&(om(r,e),r.temperature=r.temperature*e.coolingFactor,!(r.temperature<e.minTemp)&&!0)},s=function(){if(!0===e.animate||!1===e.animate)a(),n.one("layoutstop",e.stop),n.emit({type:"layoutstop",layout:n});else{var t=e.eles.nodes(),i=ov(r,e,t);t.layoutPositions(n,e,i)}},l=0,u=!0;if(!0===e.animate)!function t(){for(var n=0;u&&n<e.refresh;)u=o(l),l++,n++;u?(eN()-i>=e.animationThreshold&&a(),eO(t)):(oM(r,e),s())}();else{for(;u;)u=o(l),l++;oM(r,e),s()}return this},oh.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},oh.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var od=function(e,t,n){for(var r=n.eles.edges(),i=n.eles.nodes(),a=tI(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:a.w,clientHeight:a.h,boundingBox:a},s=n.eles.components(),l={},u=0;u<s.length;u++){for(var c=s[u],h=0;h<c.length;h++){var d=c[h];l[d.id()]=u}}for(var u=0;u<o.nodeSize;u++){var p=i[u],f=p.layoutDimensions(n),g={};g.isLocked=p.locked(),g.id=p.data("id"),g.parentId=p.data("parent"),g.cmptId=l[p.id()],g.children=[],g.positionX=p.position("x"),g.positionY=p.position("y"),g.offsetX=0,g.offsetY=0,g.height=f.w,g.width=f.h,g.maxX=g.positionX+g.width/2,g.minX=g.positionX-g.width/2,g.maxY=g.positionY+g.height/2,g.minY=g.positionY-g.height/2,g.padLeft=parseFloat(p.style("padding")),g.padRight=parseFloat(p.style("padding")),g.padTop=parseFloat(p.style("padding")),g.padBottom=parseFloat(p.style("padding")),g.nodeRepulsion=T(n.nodeRepulsion)?n.nodeRepulsion(p):n.nodeRepulsion,o.layoutNodes.push(g),o.idToIndex[g.id]=u}for(var v=[],y=0,b=-1,x=[],u=0;u<o.nodeSize;u++){var p=o.layoutNodes[u],w=p.parentId;null!=w?o.layoutNodes[o.idToIndex[w]].children.push(p.id):(v[++b]=p.id,x.push(p.id))}for(o.graphSet.push(x);y<=b;){var E=v[y++],k=o.idToIndex[E],d=o.layoutNodes[k],C=d.children;if(C.length>0){o.graphSet.push(C);for(var u=0;u<C.length;u++)v[++b]=C[u]}}for(var u=0;u<o.graphSet.length;u++){for(var S=o.graphSet[u],h=0;h<S.length;h++){var D=o.idToIndex[S[h]];o.indexToGraph[D]=u}}for(var u=0;u<o.edgeSize;u++){var P=r[u],_={};_.id=P.data("id"),_.sourceId=P.data("source"),_.targetId=P.data("target");var M=T(n.idealEdgeLength)?n.idealEdgeLength(P):n.idealEdgeLength,B=T(n.edgeElasticity)?n.edgeElasticity(P):n.edgeElasticity,A=o.idToIndex[_.sourceId],N=o.idToIndex[_.targetId];if(o.indexToGraph[A]!=o.indexToGraph[N]){for(var I=op(_.sourceId,_.targetId,o),O=o.graphSet[I],L=0,g=o.layoutNodes[A];-1===O.indexOf(g.id);)g=o.layoutNodes[o.idToIndex[g.parentId]],L++;for(g=o.layoutNodes[N];-1===O.indexOf(g.id);)g=o.layoutNodes[o.idToIndex[g.parentId]],L++;M*=L*n.nestingFactor}_.idealLength=M,_.elasticity=B,o.layoutEdges.push(_)}return o},op=function(e,t,n){var r=of(e,t,0,n);return 2>r.count?0:r.graph},of=function e(t,n,r,i){var a=i.graphSet[r];if(-1<a.indexOf(t)&&-1<a.indexOf(n))return{count:2,graph:r};for(var o=0,s=0;s<a.length;s++){var l=a[s],u=i.idToIndex[l],c=i.layoutNodes[u].children;if(0===c.length)continue;var h=e(t,n,i.indexToGraph[i.idToIndex[c[0]]],i);if(0!==h.count){if(1!==h.count)return h;else if(2==++o)break}}return{count:o,graph:r}},og=function(e,t){for(var n=e.clientWidth,r=e.clientHeight,i=0;i<e.nodeSize;i++){var a=e.layoutNodes[i];0===a.children.length&&!a.isLocked&&(a.positionX=Math.random()*n,a.positionY=Math.random()*r)}},ov=function(e,t,n){var r=e.boundingBox,i={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0};return t.boundingBox&&(n.forEach(function(t){var n=e.layoutNodes[e.idToIndex[t.data("id")]];i.x1=Math.min(i.x1,n.positionX),i.x2=Math.max(i.x2,n.positionX),i.y1=Math.min(i.y1,n.positionY),i.y2=Math.max(i.y2,n.positionY)}),i.w=i.x2-i.x1,i.h=i.y2-i.y1),function(n,a){var o=e.layoutNodes[e.idToIndex[n.data("id")]];if(!t.boundingBox)return{x:o.positionX,y:o.positionY};var s=(o.positionX-i.x1)/i.w,l=(o.positionY-i.y1)/i.h;return{x:r.x1+s*r.w,y:r.y1+l*r.h}}},oy=function(e,t,n){var r=n.layout,i=n.eles.nodes(),a=ov(e,n,i);i.positions(a),!0!==e.ready&&(e.ready=!0,r.one("layoutready",n.ready),r.emit({type:"layoutready",layout:this}))},om=function(e,t,n){ob(e,t),oC(e),oS(e,t),oD(e),oT(e)},ob=function(e,t){for(var n=0;n<e.graphSet.length;n++){for(var r=e.graphSet[n],i=r.length,a=0;a<i;a++){for(var o=e.layoutNodes[e.idToIndex[r[a]]],s=a+1;s<i;s++)ow(o,e.layoutNodes[e.idToIndex[r[s]]],e,t)}}},ox=function(e){return-e+2*e*Math.random()},ow=function(e,t,n,r){if(e.cmptId===t.cmptId||!!n.isCompound){var i=t.positionX-e.positionX,a=t.positionY-e.positionY;0===i&&0===a&&(i=ox(1),a=ox(1));var o=oE(e,t,i,a);if(o>0){var s=r.nodeOverlap*o,l=Math.sqrt(i*i+a*a),u=s*i/l,c=s*a/l}else{var h=ok(e,i,a),d=ok(t,-1*i,-1*a),p=d.x-h.x,f=d.y-h.y,g=p*p+f*f,l=Math.sqrt(g),s=(e.nodeRepulsion+t.nodeRepulsion)/g,u=s*p/l,c=s*f/l}!e.isLocked&&(e.offsetX-=u,e.offsetY-=c),!t.isLocked&&(t.offsetX+=u,t.offsetY+=c)}},oE=function(e,t,n,r){if(n>0)var i=e.maxX-t.minX;else var i=t.maxX-e.minX;if(r>0)var a=e.maxY-t.minY;else var a=t.maxY-e.minY;return i>=0&&a>=0?Math.sqrt(i*i+a*a):0},ok=function(e,t,n){var r=e.positionX,i=e.positionY,a=e.height||1,o=e.width||1,s=n/t,l=a/o,u={};return 0===t&&0<n||0===t&&0>n?(u.x=r,u.y=i+a/2,u):0<t&&-1*l<=s&&s<=l?(u.x=r+o/2,u.y=i+o*n/2/t,u):0>t&&-1*l<=s&&s<=l?(u.x=r-o/2,u.y=i-o*n/2/t,u):0<n&&(s<=-1*l||s>=l)?(u.x=r+a*t/2/n,u.y=i+a/2,u):(0>n&&(s<=-1*l||s>=l)&&(u.x=r-a*t/2/n,u.y=i-a/2),u)},oC=function(e,t){for(var n=0;n<e.edgeSize;n++){var r=e.layoutEdges[n],i=e.idToIndex[r.sourceId],a=e.layoutNodes[i],o=e.idToIndex[r.targetId],s=e.layoutNodes[o],l=s.positionX-a.positionX,u=s.positionY-a.positionY;if(0!==l||0!==u){var c=ok(a,l,u),h=ok(s,-1*l,-1*u),d=h.x-c.x,p=h.y-c.y,f=Math.sqrt(d*d+p*p),g=Math.pow(r.idealLength-f,2)/r.elasticity;if(0!==f){var v=g*d/f,y=g*p/f}else{var v=0,y=0}!a.isLocked&&(a.offsetX+=v,a.offsetY+=y),!s.isLocked&&(s.offsetX-=v,s.offsetY-=y)}}},oS=function(e,t){if(0!==t.gravity)for(var n=0;n<e.graphSet.length;n++){var r=e.graphSet[n],i=r.length;if(0===n){var a=e.clientHeight/2,o=e.clientWidth/2}else{var s=e.layoutNodes[e.idToIndex[r[0]]],l=e.layoutNodes[e.idToIndex[s.parentId]],a=l.positionX,o=l.positionY}for(var u=0;u<i;u++){var c=e.layoutNodes[e.idToIndex[r[u]]];if(!c.isLocked){var h=a-c.positionX,d=o-c.positionY,p=Math.sqrt(h*h+d*d);if(p>1){var f=t.gravity*h/p,g=t.gravity*d/p;c.offsetX+=f,c.offsetY+=g}}}}},oD=function(e,t){var n=[],r=0,i=-1;for(n.push.apply(n,e.graphSet[0]),i+=e.graphSet[0].length;r<=i;){var a=n[r++],o=e.idToIndex[a],s=e.layoutNodes[o],l=s.children;if(0<l.length&&!s.isLocked){for(var u=s.offsetX,c=s.offsetY,h=0;h<l.length;h++){var d=e.layoutNodes[e.idToIndex[l[h]]];d.offsetX+=u,d.offsetY+=c,n[++i]=l[h]}s.offsetX=0,s.offsetY=0}}},oT=function(e,t){for(var n=0;n<e.nodeSize;n++){var r=e.layoutNodes[n];0<r.children.length&&(r.maxX=void 0,r.minX=void 0,r.maxY=void 0,r.minY=void 0)}for(var n=0;n<e.nodeSize;n++){var r=e.layoutNodes[n];if(!(0<r.children.length)&&!r.isLocked){var i=oP(r.offsetX,r.offsetY,e.temperature);r.positionX+=i.x,r.positionY+=i.y,r.offsetX=0,r.offsetY=0,r.minX=r.positionX-r.width,r.maxX=r.positionX+r.width,r.minY=r.positionY-r.height,r.maxY=r.positionY+r.height,o_(r,e)}}for(var n=0;n<e.nodeSize;n++){var r=e.layoutNodes[n];0<r.children.length&&!r.isLocked&&(r.positionX=(r.maxX+r.minX)/2,r.positionY=(r.maxY+r.minY)/2,r.width=r.maxX-r.minX,r.height=r.maxY-r.minY)}},oP=function(e,t,n){var r=Math.sqrt(e*e+t*t);if(r>n)var i={x:n*e/r,y:n*t/r};else var i={x:e,y:t};return i},o_=function e(t,n){var r=t.parentId;if(null!=r){var i=n.layoutNodes[n.idToIndex[r]],a=!1;if((null==i.maxX||t.maxX+i.padRight>i.maxX)&&(i.maxX=t.maxX+i.padRight,a=!0),(null==i.minX||t.minX-i.padLeft<i.minX)&&(i.minX=t.minX-i.padLeft,a=!0),(null==i.maxY||t.maxY+i.padBottom>i.maxY)&&(i.maxY=t.maxY+i.padBottom,a=!0),(null==i.minY||t.minY-i.padTop<i.minY)&&(i.minY=t.minY-i.padTop,a=!0),a)return e(i,n)}},oM=function(e,t){for(var n=e.layoutNodes,r=[],i=0;i<n.length;i++){var a=n[i],o=a.cmptId;(r[o]=r[o]||[]).push(a)}for(var s=0,i=0;i<r.length;i++){var l=r[i];if(!!l){l.x1=1/0,l.x2=-1/0,l.y1=1/0,l.y2=-1/0;for(var u=0;u<l.length;u++){var c=l[u];l.x1=Math.min(l.x1,c.positionX-c.width/2),l.x2=Math.max(l.x2,c.positionX+c.width/2),l.y1=Math.min(l.y1,c.positionY-c.height/2),l.y2=Math.max(l.y2,c.positionY+c.height/2)}l.w=l.x2-l.x1,l.h=l.y2-l.y1,s+=l.w*l.h}}r.sort(function(e,t){return t.w*t.h-e.w*e.h});for(var h=0,d=0,p=0,f=0,g=Math.sqrt(s)*e.clientWidth/e.clientHeight,i=0;i<r.length;i++){var l=r[i];if(!!l){for(var u=0;u<l.length;u++){var c=l[u];!c.isLocked&&(c.positionX+=h-l.x1,c.positionY+=d-l.y1)}h+=l.w+t.componentSpacing,p+=l.w+t.componentSpacing,f=Math.max(f,l.h),p>g&&(d+=f+t.componentSpacing,h=0,p=0,f=0)}}},oB={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function oA(e){this.options=Z({},oB,e)}oA.prototype.run=function(){var e=this.options,t=e.cy,n=e.eles,r=n.nodes().not(":parent");e.sort&&(r=r.sort(e.sort));var i=tI(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});if(0===i.h||0===i.w)n.nodes().layoutPositions(this,e,function(e){return{x:i.x1,y:i.y1}});else{var a=r.size(),o=Math.sqrt(a*i.h/i.w),s=Math.round(o),l=Math.round(i.w/i.h*o),u=function(e){if(null==e)return Math.min(s,l);Math.min(s,l)==s?s=e:l=e},c=function(e){if(null==e)return Math.max(s,l);Math.max(s,l)==s?s=e:l=e},h=e.rows,d=null!=e.cols?e.cols:e.columns;if(null!=h&&null!=d)s=h,l=d;else if(null!=h&&null==d)l=Math.ceil(a/(s=h));else if(null==h&&null!=d)s=Math.ceil(a/(l=d));else if(l*s>a){var p=u(),f=c();(p-1)*f>=a?u(p-1):(f-1)*p>=a&&c(f-1)}else for(;l*s<a;){var g=u(),v=c();(v+1)*g>=a?c(v+1):u(g+1)}var y=i.w/l,b=i.h/s;if(e.condense&&(y=0,b=0),e.avoidOverlap)for(var x=0;x<r.length;x++){var w=r[x],E=w._private.position;(null==E.x||null==E.y)&&(E.x=0,E.y=0);var k=w.layoutDimensions(e),C=e.avoidOverlapPadding,S=k.w+C,D=k.h+C;y=Math.max(y,S),b=Math.max(b,D)}for(var T={},P=function(e,t){return!!T["c-"+e+"-"+t]},_=function(e,t){T["c-"+e+"-"+t]=!0},M=0,B=0,A=function(){++B>=l&&(B=0,M++)},N={},I=0;I<r.length;I++){var O=r[I],L=e.position(O);if(L&&(void 0!==L.row||void 0!==L.col)){var R={row:L.row,col:L.col};if(void 0===R.col)for(R.col=0;P(R.row,R.col);)R.col++;else if(void 0===R.row)for(R.row=0;P(R.row,R.col);)R.row++;N[O.id()]=R,_(R.row,R.col)}}r.layoutPositions(this,e,function(e,t){if(e.locked()||e.isParent())return!1;var n,r,a=N[e.id()];if(a)n=a.col*y+y/2+i.x1,r=a.row*b+b/2+i.y1;else{for(;P(M,B);)A();n=B*y+y/2+i.x1,r=M*b+b/2+i.y1,_(M,B),A()}return{x:n,y:r}})}return this};var oN={ready:function(){},stop:function(){}};function oI(e){this.options=Z({},oN,e)}oI.prototype.run=function(){var e=this.options,t=e.eles;return e.cy,this.emit("layoutstart"),t.nodes().positions(function(){return{x:0,y:0}}),this.one("layoutready",e.ready),this.emit("layoutready"),this.one("layoutstop",e.stop),this.emit("layoutstop"),this},oI.prototype.stop=function(){return this};var oO={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,spacingFactor:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function oL(e){this.options=Z({},oO,e)}oL.prototype.run=function(){var e=this.options,t=e.eles.nodes(),n=T(e.positions);return t.layoutPositions(this,e,function(t,r){var i=function(t){if(null==e.positions){var r;return{x:(r=t.position()).x,y:r.y}}if(n)return e.positions(t);var i=e.positions[t._private.data.id];return null==i?null:i}(t);return!t.locked()&&null!=i&&i}),this};var oR={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function oz(e){this.options=Z({},oR,e)}oz.prototype.run=function(){var e=this.options,t=e.cy,n=e.eles,r=tI(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});return n.nodes().layoutPositions(this,e,function(e,t){return{x:r.x1+Math.round(Math.random()*r.w),y:r.y1+Math.round(Math.random()*r.h)}}),this};var oV=[{name:"breadthfirst",impl:oa},{name:"circle",impl:os},{name:"concentric",impl:ou},{name:"cose",impl:oh},{name:"grid",impl:oA},{name:"null",impl:oI},{name:"preset",impl:oL},{name:"random",impl:oz}];function oF(e){this.options=e,this.notifications=0}var oj=function(){},oq=function(){throw Error("A headless instance can not render images")};oF.prototype={recalculateRenderedStyle:oj,notify:function(){this.notifications++},init:oj,isHeadless:function(){return!0},png:oq,jpg:oq};var oX={};oX.arrowShapeWidth=.3,oX.registerArrowShapes=function(){var e=this.arrowShapes={},t=this,n=function(e,t,n,r,i,a,o){var s=i.x-n/2-o,l=i.x+n/2+o,u=i.y-n/2-o,c=i.y+n/2+o;return s<=e&&e<=l&&u<=t&&t<=c},r=function(e,t,n,r,i){var a=e*Math.cos(r)-t*Math.sin(r),o=e*Math.sin(r)+t*Math.cos(r);return{x:a*n+i.x,y:o*n+i.y}},i=function(e,t,n,i){for(var a=[],o=0;o<e.length;o+=2){var s=e[o],l=e[o+1];a.push(r(s,l,t,n,i))}return a},a=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(r.x,r.y)}return t},o=function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").pfValue*2},s=function(r,s){D(s)&&(s=e[s]),e[r]=Z({name:r,points:[-.15,-.3,.15,-.3,.15,.3,-.15,.3],collide:function(e,t,n,r,o,s){return t$(e,t,a(i(this.points,n+2*s,r,o)))},roughCollide:n,draw:function(e,n,r,a){var o=i(this.points,n,r,a);t.arrowShapeImpl("polygon")(e,o)},spacing:function(e){return 0},gap:o},s)};s("none",{collide:eZ,roughCollide:eZ,draw:eQ,spacing:e$,gap:e$}),s("triangle",{points:[-.15,-.3,0,0,.15,-.3]}),s("arrow","triangle"),s("triangle-backcurve",{points:e.triangle.points,controlPoint:[0,-.15],roughCollide:n,draw:function(e,n,a,o,s){var l=i(this.points,n,a,o),u=this.controlPoint,c=r(u[0],u[1],n,a,o);t.arrowShapeImpl(this.name)(e,l,c)},gap:function(e){return .8*o(e)}}),s("triangle-tee",{points:[0,0,.15,-.3,-.15,-.3,0,0],pointsTee:[-.15,-.4,-.15,-.5,.15,-.5,.15,-.4],collide:function(e,t,n,r,o,s,l){var u=a(i(this.points,n+2*l,r,o)),c=a(i(this.pointsTee,n+2*l,r,o));return t$(e,t,u)||t$(e,t,c)},draw:function(e,n,r,a,o){var s=i(this.points,n,r,a),l=i(this.pointsTee,n,r,a);t.arrowShapeImpl(this.name)(e,s,l)}}),s("circle-triangle",{radius:.15,pointsTr:[0,-.15,.15,-.45,-.15,-.45,0,-.15],collide:function(e,t,n,r,o,s,l){var u=Math.pow(o.x-e,2)+Math.pow(o.y-t,2)<=Math.pow((n+2*l)*this.radius,2);return t$(e,t,a(i(this.points,n+2*l,r,o)))||u},draw:function(e,n,r,a,o){var s=i(this.pointsTr,n,r,a);t.arrowShapeImpl(this.name)(e,s,a.x,a.y,this.radius*n)},spacing:function(e){return t.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.radius}}),s("triangle-cross",{points:[0,0,.15,-.3,-.15,-.3,0,0],baseCrossLinePts:[-.15,-.4,-.15,-.4,.15,-.4,.15,-.4],crossLinePts:function(e,t){var n=this.baseCrossLinePts.slice(),r=t/e;return n[3]=n[3]-r,n[5]=n[5]-r,n},collide:function(e,t,n,r,o,s,l){var u=a(i(this.points,n+2*l,r,o)),c=a(i(this.crossLinePts(n,s),n+2*l,r,o));return t$(e,t,u)||t$(e,t,c)},draw:function(e,n,r,a,o){var s=i(this.points,n,r,a),l=i(this.crossLinePts(n,o),n,r,a);t.arrowShapeImpl(this.name)(e,s,l)}}),s("vee",{points:[-.15,-.3,0,0,.15,-.3,0,-.15],gap:function(e){return .525*o(e)}}),s("circle",{radius:.15,collide:function(e,t,n,r,i,a,o){return Math.pow(i.x-e,2)+Math.pow(i.y-t,2)<=Math.pow((n+2*o)*this.radius,2)},draw:function(e,n,r,i,a){t.arrowShapeImpl(this.name)(e,i.x,i.y,this.radius*n)},spacing:function(e){return t.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.radius}}),s("tee",{points:[-.15,0,-.15,-.1,.15,-.1,.15,0],spacing:function(e){return 1},gap:function(e){return 1}}),s("square",{points:[-.15,0,.15,0,.15,-.3,-.15,-.3]}),s("diamond",{points:[-.15,-.15,0,-.3,.15,-.15,0,0],gap:function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").value}}),s("chevron",{points:[0,0,-.15,-.15,-.1,-.2,0,-.1,.1,-.2,.15,-.15],gap:function(e){return .95*e.pstyle("width").pfValue*e.pstyle("arrow-scale").value}})};var oY={};oY.projectIntoViewport=function(e,t){var n=this.cy,r=this.findContainerClientCoords(),i=r[0],a=r[1],o=r[4],s=n.pan(),l=n.zoom();return[((e-i)/o-s.x)/l,((t-a)/o-s.y)/l]},oY.findContainerClientCoords=function(){if(this.containerBB)return this.containerBB;var e=this.container,t=e.getBoundingClientRect(),n=this.cy.window().getComputedStyle(e),r=function(e){return parseFloat(n.getPropertyValue(e))},i={left:r("padding-left"),right:r("padding-right"),top:r("padding-top"),bottom:r("padding-bottom")},a={left:r("border-left-width"),right:r("border-right-width"),top:r("border-top-width"),bottom:r("border-bottom-width")},o=e.clientWidth,s=e.clientHeight,l=i.left+i.right,u=i.top+i.bottom,c=a.left+a.right,h=t.width/(o+c),d=t.left+i.left+a.left,p=t.top+i.top+a.top;return this.containerBB=[d,p,o-l,s-u,h]},oY.invalidateContainerClientCoordsCache=function(){this.containerBB=null},oY.findNearestElement=function(e,t,n,r){return this.findNearestElements(e,t,n,r)[0]},oY.findNearestElements=function(e,t,n,r){var i,a,o=this,s=this,l=s.getCachedZSortedEles(),u=[],c=s.cy.zoom(),h=s.cy.hasCompoundNodes(),d=(r?24:8)/c,p=(r?8:2)/c,f=(r?8:2)/c,g=1/0;function v(e,t){if(e.isNode()){if(a)return;a=e,u.push(e)}if(e.isEdge()&&(null==t||t<g)){if(i){if(i.pstyle("z-compound-depth").value===e.pstyle("z-compound-depth").value&&i.pstyle("z-compound-depth").value===e.pstyle("z-compound-depth").value){for(var n=0;n<u.length;n++)if(u[n].isEdge()){u[n]=e,i=e,g=null!=t?t:g;break}}}else u.push(e),i=e,g=null!=t?t:g}}function y(n){var r=n.outerWidth()+2*p,i=n.outerHeight()+2*p,a=r/2,l=i/2,u=n.position(),c="auto"===n.pstyle("corner-radius").value?"auto":n.pstyle("corner-radius").pfValue,h=n._private.rscratch;if(u.x-a<=e&&e<=u.x+a&&u.y-l<=t&&t<=u.y+l&&s.nodeShapes[o.getNodeShape(n)].checkPoint(e,t,0,r,i,u.x,u.y,c,h))return v(n,0),!0}n&&(l=l.interactive);function b(e,t,n){return te(e,t,n)}function x(n,r){var i,a,o,s,l=n._private;s=r?r+"-":"",n.boundingBox();var u=l.labelBounds[r||"main"],c=n.pstyle(s+"label").value;if("yes"===n.pstyle("text-events").strValue&&!!c){var h=(i=l.rscratch,te(i,"labelX",r));var d=(a=l.rscratch,te(a,"labelY",r));var p=(o=l.rscratch,te(o,"labelAngle",r)),g=n.pstyle(s+"text-margin-x").pfValue,y=n.pstyle(s+"text-margin-y").pfValue,b=u.x1-f-g,x=u.x2+f-g,w=u.y1-f-y,E=u.y2+f-y;if(p){var k=Math.cos(p),C=Math.sin(p),S=function(e,t){return{x:(e-=h)*k-(t-=d)*C+h,y:e*C+t*k+d}},D=S(b,w),T=S(b,E),P=S(x,w),_=S(x,E);if(t$(e,t,[D.x+g,D.y+y,P.x+g,P.y+y,_.x+g,_.y+y,T.x+g,T.y+y]))return v(n),!0}else if(tq(u,e,t))return v(n),!0}}for(var w=l.length-1;w>=0;w--){var E=l[w];E.isNode()?y(E)||x(E):function(n){var r,i=n._private,a=i.rscratch,l=n.pstyle("width").pfValue,c=n.pstyle("arrow-scale").value,p=l/2+d,f=p*p,g=2*p,b=i.source,x=i.target;if("segments"===a.edgeType||"straight"===a.edgeType||"haystack"===a.edgeType){for(var w=a.allpts,E=0;E+3<w.length;E+=2)if(tW(e,t,w[E],w[E+1],w[E+2],w[E+3],g)&&f>(r=tZ(e,t,w[E],w[E+1],w[E+2],w[E+3])))return v(n,r),!0}else if("bezier"===a.edgeType||"multibezier"===a.edgeType||"self"===a.edgeType||"compound"===a.edgeType){for(var w=a.allpts,E=0;E+5<a.allpts.length;E+=4)if(tH(e,t,w[E],w[E+1],w[E+2],w[E+3],w[E+4],w[E+5],g)&&f>(r=tK(e,t,w[E],w[E+1],w[E+2],w[E+3],w[E+4],w[E+5])))return v(n,r),!0}for(var b=b||i.source,x=x||i.target,k=o.getArrowWidth(l,c),C=[{name:"source",x:a.arrowStartX,y:a.arrowStartY,angle:a.srcArrowAngle},{name:"target",x:a.arrowEndX,y:a.arrowEndY,angle:a.tgtArrowAngle},{name:"mid-source",x:a.midX,y:a.midY,angle:a.midsrcArrowAngle},{name:"mid-target",x:a.midX,y:a.midY,angle:a.midtgtArrowAngle}],E=0;E<C.length;E++){var S=C[E],D=s.arrowShapes[n.pstyle(S.name+"-arrow-shape").value],T=n.pstyle("width").pfValue;if(D.roughCollide(e,t,k,S.angle,{x:S.x,y:S.y},T,d)&&D.collide(e,t,k,S.angle,{x:S.x,y:S.y},T,d))return v(n),!0}h&&u.length>0&&(y(b),y(x))}(E)||x(E)||x(E,"source")||x(E,"target")}return u},oY.getAllInBox=function(e,t,n,r){var i=this.getCachedZSortedEles().interactive,a=[],o=Math.min(e,n),s=Math.max(e,n),l=Math.min(t,r),u=Math.max(t,r);e=o,n=s;for(var c=tI({x1:e,y1:t=l,x2:n,y2:r=u}),h=0;h<i.length;h++){var d=i[h];if(d.isNode()){var p=d.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:!1});tj(c,p)&&!tX(p,c)&&a.push(d)}else{var f=d._private,g=f.rscratch;if(null!=g.startX&&null!=g.startY&&!tq(c,g.startX,g.startY)||null!=g.endX&&null!=g.endY&&!tq(c,g.endX,g.endY))continue;if("bezier"===g.edgeType||"multibezier"===g.edgeType||"self"===g.edgeType||"compound"===g.edgeType||"segments"===g.edgeType||"haystack"===g.edgeType){for(var v,y=f.rstyle.bezierPts||f.rstyle.linePts||f.rstyle.haystackPts,b=!0,x=0;x<y.length;x++){;if(!tq(c,(v=y[x]).x,v.y)){b=!1;break}}b&&a.push(d)}else("haystack"===g.edgeType||"straight"===g.edgeType)&&a.push(d)}}return a};var oW={};oW.calculateArrowAngles=function(e){var t=e._private.rscratch,n="haystack"===t.edgeType,r="bezier"===t.edgeType,i="multibezier"===t.edgeType,a="segments"===t.edgeType,o="compound"===t.edgeType,s="self"===t.edgeType;if(n?(y=t.haystackPts[0],b=t.haystackPts[1],x=t.haystackPts[2],w=t.haystackPts[3]):(y=t.arrowStartX,b=t.arrowStartY,x=t.arrowEndX,w=t.arrowEndY),h=t.midX,d=t.midY,a)g=y-t.segpts[0],v=b-t.segpts[1];else if(i||o||s||r){var l=t.allpts,u=tM(l[0],l[2],l[4],.1),c=tM(l[1],l[3],l[5],.1);g=y-u,v=b-c}else g=y-h,v=b-d;t.srcArrowAngle=tC(g,v);var h=t.midX,d=t.midY;if(n&&(h=(y+x)/2,d=(b+w)/2),g=x-y,v=w-b,a){var l=t.allpts;if(l.length/2%2==0){var p=l.length/2,f=p-2;g=l[p]-l[f],v=l[p+1]-l[f+1]}else if(t.isRound)g=t.midVector[1],v=-t.midVector[0];else{var p=l.length/2-1,f=p-2;g=l[p]-l[f],v=l[p+1]-l[f+1]}}else if(i||o||s){var g,v,y,b,x,w,h,d,E,k,C,S,l=t.allpts;if(t.ctrlpts.length/2%2==0){var D=l.length/2-1,T=D+2,P=T+2;E=tM(l[D],l[T],l[P],0),k=tM(l[D+1],l[T+1],l[P+1],0),C=tM(l[D],l[T],l[P],1e-4),S=tM(l[D+1],l[T+1],l[P+1],1e-4)}else{var T=l.length/2-1,D=T-2,P=T+2;E=tM(l[D],l[T],l[P],.4999),k=tM(l[D+1],l[T+1],l[P+1],.4999),C=tM(l[D],l[T],l[P],.5),S=tM(l[D+1],l[T+1],l[P+1],.5)}g=C-E,v=S-k}if(t.midtgtArrowAngle=tC(g,v),t.midDispX=g,t.midDispY=v,g*=-1,v*=-1,a){var l=t.allpts;if(l.length/2%2==0);else if(!t.isRound){var p=l.length/2-1,_=p+2;g=-(l[_]-l[p]),v=-(l[_+1]-l[p+1])}}if(t.midsrcArrowAngle=tC(g,v),a)g=x-t.segpts[t.segpts.length-2],v=w-t.segpts[t.segpts.length-1];else if(i||o||s||r){var l=t.allpts,M=l.length,u=tM(l[M-6],l[M-4],l[M-2],.9),c=tM(l[M-5],l[M-3],l[M-1],.9);g=x-u,v=w-c}else g=x-h,v=w-d;t.tgtArrowAngle=tC(g,v)},oW.getArrowWidth=oW.getArrowHeight=function(e,t){var n=this.arrowWidthCache=this.arrowWidthCache||{},r=n[e+", "+t];return r?r:(r=Math.max(Math.pow(13.37*e,.9),29)*t,n[e+", "+t]=r,r)};var oH,oG,oU,oK,oZ,o$,oQ,oJ,o0,o1,o2,o5,o3,o4,o9,o6,o8,o7,se,st,sn,sr,si,sa,so,ss,sl,su={},sc={},sh=function(e,t,n){n.x=t.x-e.x,n.y=t.y-e.y,n.len=Math.sqrt(n.x*n.x+n.y*n.y),n.nx=n.x/n.len,n.ny=n.y/n.len,n.ang=Math.atan2(n.ny,n.nx)},sd=function(e,t){t.x=-1*e.x,t.y=-1*e.y,t.nx=-1*e.nx,t.ny=-1*e.ny,t.ang=e.ang>0?-(Math.PI-e.ang):Math.PI+e.ang},sp=function(e,t,n,r,i){if(e!==v?sh(t,e,su):sd(sc,su),sh(t,n,sc),o7=su.nx*sc.ny-su.ny*sc.nx,se=su.nx*sc.nx- -(su.ny*sc.ny),1e-6>Math.abs(sr=Math.asin(Math.max(-1,Math.min(1,o7))))){o6=t.x,o8=t.y,sa=ss=0;return}st=1,sn=!1,se<0?sr<0?sr=Math.PI+sr:(sr=Math.PI-sr,st=-1,sn=!0):sr>0&&(st=-1,sn=!0),ss=void 0!==t.radius?t.radius:r,si=sr/2,sl=Math.min(su.len/2,sc.len/2),sa=i?(so=Math.abs(Math.cos(si)*ss/Math.sin(si)))>sl?Math.abs((so=sl)*Math.sin(si)/Math.cos(si)):ss:Math.abs((so=Math.min(sl,ss))*Math.sin(si)/Math.cos(si)),f=t.x+sc.nx*so,g=t.y+sc.ny*so,o6=f-sc.ny*sa*st,o8=g+sc.nx*sa*st,d=t.x+su.nx*so,p=t.y+su.ny*so,v=t};function sf(e,t){0===t.radius?e.lineTo(t.cx,t.cy):e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}function sg(e,t,n,r){var i=!(arguments.length>4)||void 0===arguments[4]||arguments[4];return 0===r||0===t.radius?{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(sp(e,t,n,r,i),{cx:o6,cy:o8,radius:sa,startX:d,startY:p,stopX:f,stopY:g,startAngle:su.ang+Math.PI/2*st,endAngle:sc.ang-Math.PI/2*st,counterClockwise:sn})}var sv={};function sy(e){var t=[];if(null!=e){for(var n=0;n<e.length;n+=2){var r=e[n],i=e[n+1];t.push({x:r,y:i})}return t}}sv.findMidptPtsEtc=function(e,t){var n,r=t.posPts,i=t.intersectionPts,a=t.vectorNormInverse,o=e.pstyle("source-endpoint"),s=e.pstyle("target-endpoint"),u=null!=o.units&&null!=s.units;switch(e.pstyle("edge-distances").value){case"node-position":n=r;break;case"intersection":n=i;break;case"endpoints":if(u){var c,h,d,p,f,g,v=l(this.manualEndptToPx(e.source()[0],o),2),y=v[0],b=v[1],x=l(this.manualEndptToPx(e.target()[0],s),2),w=x[0],E=x[1];c=y,h=b,d=w,p=E-h,g=Math.sqrt((f=d-c)*f+p*p),a={x:-p/g,y:f/g},n={x1:y,y1:b,x2:w,y2:E}}else e1("Edge ".concat(e.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),n=i}return{midptPts:n,vectorNormInverse:a}},sv.findHaystackPoints=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=n._private,i=r.rscratch;if(!i.haystack){var a=2*Math.random()*Math.PI;i.source={x:Math.cos(a),y:Math.sin(a)},a=2*Math.random()*Math.PI,i.target={x:Math.cos(a),y:Math.sin(a)}}var o=r.source,s=r.target,l=o.position(),u=s.position(),c=o.width(),h=s.width(),d=o.height(),p=s.height(),f=n.pstyle("haystack-radius").value/2;i.haystackPts=i.allpts=[i.source.x*c*f+l.x,i.source.y*d*f+l.y,i.target.x*h*f+u.x,i.target.y*p*f+u.y],i.midX=(i.allpts[0]+i.allpts[2])/2,i.midY=(i.allpts[1]+i.allpts[3])/2,i.edgeType="haystack",i.haystack=!0,this.storeEdgeProjections(n),this.calculateArrowAngles(n),this.recalculateEdgeLabelProjections(n),this.calculateLabelAngles(n)}},sv.findSegmentsPoints=function(e,t){var n=e._private.rscratch,r=e.pstyle("segment-weights"),i=e.pstyle("segment-distances"),a=e.pstyle("segment-radii"),o=e.pstyle("radius-type"),s=Math.min(r.pfValue.length,i.pfValue.length),l=a.pfValue[a.pfValue.length-1],u=o.pfValue[o.pfValue.length-1];n.edgeType="segments",n.segpts=[],n.radii=[],n.isArcRadius=[];for(var c=0;c<s;c++){var h=r.pfValue[c],d=i.pfValue[c],p=1-h,f=this.findMidptPtsEtc(e,t),g=f.midptPts,v=f.vectorNormInverse,y={x:g.x1*p+g.x2*h,y:g.y1*p+g.y2*h};n.segpts.push(y.x+v.x*d,y.y+v.y*d),n.radii.push(void 0!==a.pfValue[c]?a.pfValue[c]:l),n.isArcRadius.push((void 0!==o.pfValue[c]?o.pfValue[c]:u)==="arc-radius")}},sv.findLoopPoints=function(e,t,n,r){var i=e._private.rscratch,a=t.dirCounts,o=t.srcPos,s=e.pstyle("control-point-distances"),l=s?s.pfValue[0]:void 0,u=e.pstyle("loop-direction").pfValue,c=e.pstyle("loop-sweep").pfValue,h=e.pstyle("control-point-step-size").pfValue;i.edgeType="self";var d=n,p=h;r&&(d=0,p=l);var f=u-Math.PI/2,g=f-c/2,v=f+c/2,y=String(u+"_"+c);d=void 0===a[y]?a[y]=0:++a[y],i.ctrlpts=[o.x+1.4*Math.cos(g)*p*(d/3+1),o.y+1.4*Math.sin(g)*p*(d/3+1),o.x+1.4*Math.cos(v)*p*(d/3+1),o.y+1.4*Math.sin(v)*p*(d/3+1)]},sv.findCompoundLoopPoints=function(e,t,n,r){var i=e._private.rscratch;i.edgeType="compound";var a=t.srcPos,o=t.tgtPos,s=t.srcW,l=t.srcH,u=t.tgtW,c=t.tgtH,h=e.pstyle("control-point-step-size").pfValue,d=e.pstyle("control-point-distances"),p=d?d.pfValue[0]:void 0,f=n,g=h;r&&(f=0,g=p);var v={x:a.x-s/2,y:a.y-l/2},y={x:o.x-u/2,y:o.y-c/2},b={x:Math.min(v.x,y.x),y:Math.min(v.y,y.y)},x=Math.max(.5,Math.log(.01*s)),w=Math.max(.5,Math.log(.01*u));i.ctrlpts=[b.x,b.y-1.7995514309304248*g*(f/3+1)*x,b.x-1.7995514309304248*g*(f/3+1)*w,b.y]},sv.findStraightEdgePoints=function(e){e._private.rscratch.edgeType="straight"},sv.findBezierPoints=function(e,t,n,r,i){var a=e._private.rscratch,o=e.pstyle("control-point-step-size").pfValue,s=e.pstyle("control-point-distances"),l=e.pstyle("control-point-weights"),u=s&&l?Math.min(s.value.length,l.value.length):1,c=s?s.pfValue[0]:void 0,h=l.value[0];a.edgeType=r?"multibezier":"bezier",a.ctrlpts=[];for(var d=0;d<u;d++){var p=(.5-t.eles.length/2+n)*o*(i?-1:1),f=void 0,g=tD(p);r&&(c=s?s.pfValue[d]:o,h=l.value[d]);var v=void 0!==(f=r?c:void 0!==c?g*c:void 0)?f:p,y=1-h,b=h,x=this.findMidptPtsEtc(e,t),w=x.midptPts,E=x.vectorNormInverse,k={x:w.x1*y+w.x2*b,y:w.y1*y+w.y2*b};a.ctrlpts.push(k.x+E.x*v,k.y+E.y*v)}},sv.findTaxiPoints=function(e,t){var n,r=e._private.rscratch;r.edgeType="segments";var i="vertical",a="horizontal",o="leftward",s="rightward",l="downward",u="upward",c=t.posPts,h=t.srcW,d=t.srcH,p=t.tgtW,f=t.tgtH,g="node-position"!==e.pstyle("edge-distances").value,v=e.pstyle("taxi-direction").value,y=v,b=e.pstyle("taxi-turn"),x="%"===b.units,w=b.pfValue,E=e.pstyle("taxi-turn-min-distance").pfValue,k=c.x2-c.x1,C=c.y2-c.y1,S=function(e,t){return e>0?Math.max(e-t,0):Math.min(e+t,0)},D=S(k,g?(h+p)/2:0),T=S(C,g?(d+f)/2:0),P=!1;"auto"===y?v=Math.abs(D)>Math.abs(T)?a:i:y===u||y===l?(v=i,P=!0):(y===o||y===s)&&(v=a,P=!0);var _=v===i,M=_?T:D,B=_?C:k,A=tD(B),N=!1;!(P&&(x||w<0))&&(y===l&&B<0||y===u&&B>0||y===o&&B>0||y===s&&B<0)&&(A*=-1,M=A*Math.abs(M),N=!0);var I=function(e){return Math.abs(e)<E||Math.abs(e)>=Math.abs(M)},O=I(n=x?(w<0?1+w:w)*M:(w<0?M:0)+w*A),L=I(Math.abs(M)-Math.abs(n));if((O||L)&&!N){if(_){var R=Math.abs(k)<=p/2;if(Math.abs(B)<=d/2){var z=(c.x1+c.x2)/2,V=c.y1,F=c.y2;r.segpts=[z,V,z,F]}else if(R){var j=(c.y1+c.y2)/2,q=c.x1,X=c.x2;r.segpts=[q,j,X,j]}else r.segpts=[c.x1,c.y2]}else{var Y=Math.abs(C)<=f/2;if(Math.abs(B)<=h/2){var W=(c.y1+c.y2)/2,H=c.x1,G=c.x2;r.segpts=[H,W,G,W]}else if(Y){var U=(c.x1+c.x2)/2,K=c.y1,Z=c.y2;r.segpts=[U,K,U,Z]}else r.segpts=[c.x2,c.y1]}}else if(_){var $=c.y1+n+(g?d/2*A:0),Q=c.x1,J=c.x2;r.segpts=[Q,$,J,$]}else{var ee=c.x1+n+(g?h/2*A:0),et=c.y1,en=c.y2;r.segpts=[ee,et,ee,en]}if(r.isRound){var er=e.pstyle("taxi-radius").value,ei="arc-radius"===e.pstyle("radius-type").value[0];r.radii=Array(r.segpts.length/2).fill(er),r.isArcRadius=Array(r.segpts.length/2).fill(ei)}},sv.tryToCorrectInvalidPoints=function(e,t){var n=e._private.rscratch;if("bezier"===n.edgeType){var r=t.srcPos,i=t.tgtPos,a=t.srcW,o=t.srcH,s=t.tgtW,l=t.tgtH,u=t.srcShape,c=t.tgtShape,h=t.srcCornerRadius,d=t.tgtCornerRadius,p=t.srcRs,f=t.tgtRs,g=!M(n.startX)||!M(n.startY),v=!M(n.arrowStartX)||!M(n.arrowStartY),y=!M(n.endX)||!M(n.endY),b=!M(n.arrowEndX)||!M(n.arrowEndY),x=3*(this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth),w=tT({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),E=w<x,k=tT({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.endX,y:n.endY}),C=k<x,S=!1;if(g||v||E){S=!0;var D={x:n.ctrlpts[0]-r.x,y:n.ctrlpts[1]-r.y},T=Math.sqrt(D.x*D.x+D.y*D.y),P={x:D.x/T,y:D.y/T},_=Math.max(a,o),B={x:n.ctrlpts[0]+2*P.x*_,y:n.ctrlpts[1]+2*P.y*_},A=u.intersectLine(r.x,r.y,a,o,B.x,B.y,0,h,p);E?(n.ctrlpts[0]=n.ctrlpts[0]+P.x*(x-w),n.ctrlpts[1]=n.ctrlpts[1]+P.y*(x-w)):(n.ctrlpts[0]=A[0]+P.x*x,n.ctrlpts[1]=A[1]+P.y*x)}if(y||b||C){S=!0;var N={x:n.ctrlpts[0]-i.x,y:n.ctrlpts[1]-i.y},I=Math.sqrt(N.x*N.x+N.y*N.y),O={x:N.x/I,y:N.y/I},L=Math.max(a,o),R={x:n.ctrlpts[0]+2*O.x*L,y:n.ctrlpts[1]+2*O.y*L},z=c.intersectLine(i.x,i.y,s,l,R.x,R.y,0,d,f);C?(n.ctrlpts[0]=n.ctrlpts[0]+O.x*(x-k),n.ctrlpts[1]=n.ctrlpts[1]+O.y*(x-k)):(n.ctrlpts[0]=z[0]+O.x*x,n.ctrlpts[1]=z[1]+O.y*x)}S&&this.findEndpoints(e)}},sv.storeAllpts=function(e){var t=e._private.rscratch;if("multibezier"===t.edgeType||"bezier"===t.edgeType||"self"===t.edgeType||"compound"===t.edgeType){t.allpts=[],t.allpts.push(t.startX,t.startY);for(var n,r=0;r+1<t.ctrlpts.length;r+=2)t.allpts.push(t.ctrlpts[r],t.ctrlpts[r+1]),r+3<t.ctrlpts.length&&t.allpts.push((t.ctrlpts[r]+t.ctrlpts[r+2])/2,(t.ctrlpts[r+1]+t.ctrlpts[r+3])/2);if(t.allpts.push(t.endX,t.endY),t.ctrlpts.length/2%2==0)n=t.allpts.length/2-1,t.midX=t.allpts[n],t.midY=t.allpts[n+1];else{n=t.allpts.length/2-3;t.midX=tM(t.allpts[n],t.allpts[n+2],t.allpts[n+4],.5),t.midY=tM(t.allpts[n+1],t.allpts[n+3],t.allpts[n+5],.5)}}else if("straight"===t.edgeType)t.allpts=[t.startX,t.startY,t.endX,t.endY],t.midX=(t.startX+t.endX+t.arrowStartX+t.arrowEndX)/4,t.midY=(t.startY+t.endY+t.arrowStartY+t.arrowEndY)/4;else if("segments"===t.edgeType){if(t.allpts=[],t.allpts.push(t.startX,t.startY),t.allpts.push.apply(t.allpts,t.segpts),t.allpts.push(t.endX,t.endY),t.isRound){t.roundCorners=[];for(var i=2;i+3<t.allpts.length;i+=2){var a=t.radii[i/2-1],o=t.isArcRadius[i/2-1];t.roundCorners.push(sg({x:t.allpts[i-2],y:t.allpts[i-1]},{x:t.allpts[i],y:t.allpts[i+1],radius:a},{x:t.allpts[i+2],y:t.allpts[i+3]},a,o))}}if(t.segpts.length%4==0){var s=t.segpts.length/2,l=s-2;t.midX=(t.segpts[l]+t.segpts[s])/2,t.midY=(t.segpts[l+1]+t.segpts[s+1])/2}else{var u=t.segpts.length/2-1;if(t.isRound){var c={x:t.segpts[u],y:t.segpts[u+1]},h=t.roundCorners[u/2],d=[c.x-h.cx,c.y-h.cy],p=h.radius/Math.sqrt(Math.pow(d[0],2)+Math.pow(d[1],2));d=d.map(function(e){return e*p}),t.midX=h.cx+d[0],t.midY=h.cy+d[1],t.midVector=d}else t.midX=t.segpts[u],t.midY=t.segpts[u+1]}}},sv.checkForInvalidEdgeWarning=function(e){var t=e[0]._private.rscratch;t.nodesOverlap||M(t.startX)&&M(t.startY)&&M(t.endX)&&M(t.endY)?t.loggedErr=!1:!t.loggedErr&&(t.loggedErr=!0,e1("Edge `"+e.id()+"` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap."))},sv.findEdgeControlPoints=function(e){var t=this;if(!!e&&0!==e.length){for(var n=this,r=n.cy.hasCompoundNodes(),i={map:new tr,get:function(e){var t=this.map.get(e[0]);return null!=t?t.get(e[1]):null},set:function(e,t){var n=this.map.get(e[0]);null==n&&(n=new tr,this.map.set(e[0],n)),n.set(e[1],t)}},a=[],o=[],s=0;s<e.length;s++){var l=e[s],u=l._private,c=l.pstyle("curve-style").value;if(!l.removed()&&!!l.takesUpSpace()){if("haystack"===c){o.push(l);continue}var h="unbundled-bezier"===c||c.endsWith("segments")||"straight"===c||"straight-triangle"===c||c.endsWith("taxi"),d="unbundled-bezier"===c||"bezier"===c,p=u.source,f=u.target,g=[p.poolIndex(),f.poolIndex()].sort(),v=i.get(g);null==v&&(v={eles:[]},i.set(g,v),a.push(g)),v.eles.push(l),h&&(v.hasUnbundled=!0),d&&(v.hasBezier=!0)}}for(var y=0;y<a.length;y++)!function(e){var o=a[e],s=i.get(o),l=void 0;if(!s.hasUnbundled){var u=s.eles[0].parallelEdges().filter(function(e){return e.isBundledBezier()});e8(s.eles),u.forEach(function(e){return s.eles.push(e)}),s.eles.sort(function(e,t){return e.poolIndex()-t.poolIndex()})}var c=s.eles[0],h=c.source(),d=c.target();if(h.poolIndex()>d.poolIndex()){var p=h;h=d,d=p}var f=s.srcPos=h.position(),g=s.tgtPos=d.position(),v=s.srcW=h.outerWidth(),y=s.srcH=h.outerHeight(),b=s.tgtW=d.outerWidth(),x=s.tgtH=d.outerHeight(),w=s.srcShape=n.nodeShapes[t.getNodeShape(h)],E=s.tgtShape=n.nodeShapes[t.getNodeShape(d)],k=s.srcCornerRadius="auto"===h.pstyle("corner-radius").value?"auto":h.pstyle("corner-radius").pfValue,C=s.tgtCornerRadius="auto"===d.pstyle("corner-radius").value?"auto":d.pstyle("corner-radius").pfValue,S=s.tgtRs=d._private.rscratch,D=s.srcRs=h._private.rscratch;s.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var T=0;T<s.eles.length;T++){var P=s.eles[T],_=P[0]._private.rscratch,B=P.pstyle("curve-style").value,A="unbundled-bezier"===B||B.endsWith("segments")||B.endsWith("taxi"),N=!h.same(P.source());if(!s.calculatedIntersection&&h!==d&&(s.hasBezier||s.hasUnbundled)){s.calculatedIntersection=!0;var I=w.intersectLine(f.x,f.y,v,y,g.x,g.y,0,k,D),O=s.srcIntn=I,L=E.intersectLine(g.x,g.y,b,x,f.x,f.y,0,C,S),R=s.tgtIntn=L,z=s.intersectionPts={x1:I[0],x2:L[0],y1:I[1],y2:L[1]},V=s.posPts={x1:f.x,x2:g.x,y1:f.y,y2:g.y},F=L[1]-I[1],j=L[0]-I[0],q=Math.sqrt(j*j+F*F),X=s.vector={x:j,y:F},Y=s.vectorNorm={x:X.x/q,y:X.y/q},W={x:-Y.y,y:Y.x};s.nodesOverlap=!M(q)||E.checkPoint(I[0],I[1],0,b,x,g.x,g.y,C,S)||w.checkPoint(L[0],L[1],0,v,y,f.x,f.y,k,D),s.vectorNormInverse=W,l={nodesOverlap:s.nodesOverlap,dirCounts:s.dirCounts,calculatedIntersection:!0,hasBezier:s.hasBezier,hasUnbundled:s.hasUnbundled,eles:s.eles,srcPos:g,tgtPos:f,srcW:b,srcH:x,tgtW:v,tgtH:y,srcIntn:R,tgtIntn:O,srcShape:E,tgtShape:w,posPts:{x1:V.x2,y1:V.y2,x2:V.x1,y2:V.y1},intersectionPts:{x1:z.x2,y1:z.y2,x2:z.x1,y2:z.y1},vector:{x:-X.x,y:-X.y},vectorNorm:{x:-Y.x,y:-Y.y},vectorNormInverse:{x:-W.x,y:-W.y}}}var H=N?l:s;_.nodesOverlap=H.nodesOverlap,_.srcIntn=H.srcIntn,_.tgtIntn=H.tgtIntn,_.isRound=B.startsWith("round"),r&&(h.isParent()||h.isChild()||d.isParent()||d.isChild())&&(h.parents().anySame(d)||d.parents().anySame(h)||h.same(d)&&h.isParent())?t.findCompoundLoopPoints(P,H,T,A):h===d?t.findLoopPoints(P,H,T,A):B.endsWith("segments")?t.findSegmentsPoints(P,H):B.endsWith("taxi")?t.findTaxiPoints(P,H):"straight"!==B&&(A||s.eles.length%2!=1||T!==Math.floor(s.eles.length/2))?t.findBezierPoints(P,H,T,A,N):t.findStraightEdgePoints(P),t.findEndpoints(P),t.tryToCorrectInvalidPoints(P,H),t.checkForInvalidEdgeWarning(P),t.storeAllpts(P),t.storeEdgeProjections(P),t.calculateArrowAngles(P),t.recalculateEdgeLabelProjections(P),t.calculateLabelAngles(P)}}(y);this.findHaystackPoints(o)}},sv.getSegmentPoints=function(e){var t=e[0]._private.rscratch;if("segments"===t.edgeType)return this.recalculateRenderedStyle(e),sy(t.segpts)},sv.getControlPoints=function(e){var t=e[0]._private.rscratch,n=t.edgeType;if("bezier"===n||"multibezier"===n||"self"===n||"compound"===n)return this.recalculateRenderedStyle(e),sy(t.ctrlpts)},sv.getEdgeMidpoint=function(e){var t=e[0]._private.rscratch;return this.recalculateRenderedStyle(e),{x:t.midX,y:t.midY}};var sm={};sm.manualEndptToPx=function(e,t){var n=e.position(),r=e.outerWidth(),i=e.outerHeight(),a=e._private.rscratch;if(2===t.value.length){var o=[t.pfValue[0],t.pfValue[1]];return"%"===t.units[0]&&(o[0]=o[0]*r),"%"===t.units[1]&&(o[1]=o[1]*i),o[0]+=n.x,o[1]+=n.y,o}var s=t.pfValue[0];s=-Math.PI/2+s;var l=2*Math.max(r,i),u=[n.x+Math.cos(s)*l,n.y+Math.sin(s)*l];return this.nodeShapes[this.getNodeShape(e)].intersectLine(n.x,n.y,r,i,u[0],u[1],0,"auto"===e.pstyle("corner-radius").value?"auto":e.pstyle("corner-radius").pfValue,a)},sm.findEndpoints=function(e){var t,n,r,i,a,o=e.source()[0],s=e.target()[0],l=o.position(),u=s.position(),c=e.pstyle("target-arrow-shape").value,h=e.pstyle("source-arrow-shape").value,d=e.pstyle("target-distance-from-node").pfValue,p=e.pstyle("source-distance-from-node").pfValue,f=o._private.rscratch,g=s._private.rscratch,v=e.pstyle("curve-style").value,y=e._private.rscratch,b=y.edgeType,x="self"===b||"compound"===b,w="bezier"===b||"multibezier"===b||x,E="bezier"!==b,k="straight"===b||"segments"===b,C="segments"===b,S=x||"taxi"===v,D=e.pstyle("source-endpoint"),T=S?"outside-to-node":D.value,P="auto"===o.pstyle("corner-radius").value?"auto":o.pstyle("corner-radius").pfValue,_=e.pstyle("target-endpoint"),B=S?"outside-to-node":_.value,A="auto"===s.pstyle("corner-radius").value?"auto":s.pstyle("corner-radius").pfValue;if(y.srcManEndpt=D,y.tgtManEndpt=_,w){var N=[y.ctrlpts[0],y.ctrlpts[1]];n=E?[y.ctrlpts[y.ctrlpts.length-2],y.ctrlpts[y.ctrlpts.length-1]]:N,r=N}else if(k){var I=C?y.segpts.slice(0,2):[u.x,u.y];n=C?y.segpts.slice(y.segpts.length-2):[l.x,l.y],r=I}if("inside-to-node"===B)t=[u.x,u.y];else if(_.units)t=this.manualEndptToPx(s,_);else if("outside-to-line"===B)t=y.tgtIntn;else if("outside-to-node"===B||"outside-to-node-or-label"===B?i=n:("outside-to-line"===B||"outside-to-line-or-label"===B)&&(i=[l.x,l.y]),t=this.nodeShapes[this.getNodeShape(s)].intersectLine(u.x,u.y,s.outerWidth(),s.outerHeight(),i[0],i[1],0,A,g),"outside-to-node-or-label"===B||"outside-to-line-or-label"===B){var O=s._private.rscratch,L=O.labelWidth,R=O.labelHeight,z=O.labelX,V=O.labelY,F=L/2,j=R/2,q=s.pstyle("text-valign").value;"top"===q?V-=j:"bottom"===q&&(V+=j);var X=s.pstyle("text-halign").value;"left"===X?z-=F:"right"===X&&(z+=F);var Y=t6(i[0],i[1],[z-F,V-j,z+F,V-j,z+F,V+j,z-F,V+j],u.x,u.y);if(Y.length>0){var W=tP(l,tb(t)),H=tP(l,tb(Y)),G=W;H<W&&(t=Y,G=H),Y.length>2&&tP(l,{x:Y[2],y:Y[3]})<G&&(t=[Y[2],Y[3]])}}var U=t7(t,n,this.arrowShapes[c].spacing(e)+d),K=t7(t,n,this.arrowShapes[c].gap(e)+d);if(y.endX=K[0],y.endY=K[1],y.arrowEndX=U[0],y.arrowEndY=U[1],"inside-to-node"===T)t=[l.x,l.y];else if(D.units)t=this.manualEndptToPx(o,D);else if("outside-to-line"===T)t=y.srcIntn;else if("outside-to-node"===T||"outside-to-node-or-label"===T?a=r:("outside-to-line"===T||"outside-to-line-or-label"===T)&&(a=[u.x,u.y]),t=this.nodeShapes[this.getNodeShape(o)].intersectLine(l.x,l.y,o.outerWidth(),o.outerHeight(),a[0],a[1],0,P,f),"outside-to-node-or-label"===T||"outside-to-line-or-label"===T){var Z=o._private.rscratch,$=Z.labelWidth,Q=Z.labelHeight,J=Z.labelX,ee=Z.labelY,et=$/2,en=Q/2,er=o.pstyle("text-valign").value;"top"===er?ee-=en:"bottom"===er&&(ee+=en);var ei=o.pstyle("text-halign").value;"left"===ei?J-=et:"right"===ei&&(J+=et);var ea=t6(a[0],a[1],[J-et,ee-en,J+et,ee-en,J+et,ee+en,J-et,ee+en],l.x,l.y);if(ea.length>0){var eo=tP(u,tb(t)),es=tP(u,tb(ea)),el=eo;es<eo&&(t=[ea[0],ea[1]],el=es),ea.length>2&&tP(u,{x:ea[2],y:ea[3]})<el&&(t=[ea[2],ea[3]])}}var eu=t7(t,r,this.arrowShapes[h].spacing(e)+p),ec=t7(t,r,this.arrowShapes[h].gap(e)+p);y.startX=ec[0],y.startY=ec[1],y.arrowStartX=eu[0],y.arrowStartY=eu[1],(w||E||k)&&(M(y.startX)&&M(y.startY)&&M(y.endX)&&M(y.endY)?y.badLine=!1:y.badLine=!0)},sm.getSourceEndpoint=function(e){var t=e[0]._private.rscratch;if(this.recalculateRenderedStyle(e),"haystack"===t.edgeType)return{x:t.haystackPts[0],y:t.haystackPts[1]};return{x:t.arrowStartX,y:t.arrowStartY}},sm.getTargetEndpoint=function(e){var t=e[0]._private.rscratch;if(this.recalculateRenderedStyle(e),"haystack"===t.edgeType)return{x:t.haystackPts[2],y:t.haystackPts[3]};return{x:t.arrowEndX,y:t.arrowEndY}};var sb={};sb.storeEdgeProjections=function(e){var t=e._private,n=t.rscratch,r=n.edgeType;if(t.rstyle.bezierPts=null,t.rstyle.linePts=null,t.rstyle.haystackPts=null,"multibezier"===r||"bezier"===r||"self"===r||"compound"===r){t.rstyle.bezierPts=[];for(var i=0;i+5<n.allpts.length;i+=4)!function(e,t,n){for(var r=function(e,t,n,r){return tM(e,t,n,r)},i=t._private.rstyle.bezierPts,a=0;a<e.bezierProjPcts.length;a++){var o=e.bezierProjPcts[a];i.push({x:r(n[0],n[2],n[4],o),y:r(n[1],n[3],n[5],o)})}}(this,e,n.allpts.slice(i,i+6))}else if("segments"===r){for(var a=t.rstyle.linePts=[],i=0;i+1<n.allpts.length;i+=2)a.push({x:n.allpts[i],y:n.allpts[i+1]})}else if("haystack"===r){var o=n.haystackPts;t.rstyle.haystackPts=[{x:o[0],y:o[1]},{x:o[2],y:o[3]}]}t.rstyle.arrowWidth=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth},sb.recalculateEdgeProjections=function(e){this.findEdgeControlPoints(e)};var sx={};sx.recalculateNodeLabelProjection=function(e){if(!R(e.pstyle("label").strValue)){var t,n,r=e._private,i=e.width(),a=e.height(),o=e.padding(),s=e.position(),l=e.pstyle("text-halign").strValue,u=e.pstyle("text-valign").strValue,c=r.rscratch,h=r.rstyle;switch(l){case"left":t=s.x-i/2-o;break;case"right":t=s.x+i/2+o;break;default:t=s.x}switch(u){case"top":n=s.y-a/2-o;break;case"bottom":n=s.y+a/2+o;break;default:n=s.y}c.labelX=t,c.labelY=n,h.labelX=t,h.labelY=n,this.calculateLabelAngles(e),this.applyLabelDimensions(e)}};var sw=function(e,t){var n=Math.atan(t/e);return 0===e&&n<0&&(n*=-1),n},sE=function(e,t){return sw(t.x-e.x,t.y-e.y)},sk=function(e,t,n,r){var i=tN(0,r-.001,1),a=tN(0,r+.001,1);return sE(tB(e,t,n,i),tB(e,t,n,a))};sx.recalculateEdgeLabelProjections=function(e){var t,n=e._private,r=n.rscratch,i=this,a={mid:e.pstyle("label").strValue,source:e.pstyle("source-label").strValue,target:e.pstyle("target-label").strValue};if(!!a.mid||!!a.source||!!a.target){t={x:r.midX,y:r.midY};var o=function(e,t,r){tt(n.rscratch,e,t,r),tt(n.rstyle,e,t,r)};o("labelX",null,t.x),o("labelY",null,t.y),o("labelAutoAngle",null,sw(r.midDispX,r.midDispY));var s=function e(){if(e.cache)return e.cache;for(var t=[],a=0;a+5<r.allpts.length;a+=4){var o={x:r.allpts[a],y:r.allpts[a+1]},s={x:r.allpts[a+2],y:r.allpts[a+3]},l={x:r.allpts[a+4],y:r.allpts[a+5]};t.push({p0:o,p1:s,p2:l,startDist:0,length:0,segments:[]})}var u=n.rstyle.bezierPts,c=i.bezierProjPcts.length;function h(e,t,n,r,i){var a=tT(t,n),o=e.segments[e.segments.length-1],s={p0:t,p1:n,t0:r,t1:i,startDist:o?o.startDist+o.length:0,length:a};e.segments.push(s),e.length+=a}for(var d=0;d<t.length;d++){var p=t[d],f=t[d-1];f&&(p.startDist=f.startDist+f.length),h(p,p.p0,u[d*c],0,i.bezierProjPcts[0]);for(var g=0;g<c-1;g++)h(p,u[d*c+g],u[d*c+g+1],i.bezierProjPcts[g],i.bezierProjPcts[g+1]);h(p,u[d*c+c-1],p.p2,i.bezierProjPcts[c-1],1)}return e.cache=t},l=function(n){var i="source"===n;if(!!a[n]){var l=e.pstyle(n+"-text-offset").pfValue;switch(r.edgeType){case"self":case"compound":case"bezier":case"multibezier":for(var u,c,h=s(),d=0,p=0,f=0;f<h.length;f++){for(var g=h[i?f:h.length-1-f],v=0;v<g.segments.length;v++){var y=g.segments[i?v:g.segments.length-1-v],b=f===h.length-1&&v===g.segments.length-1;if(d=p,(p+=y.length)>=l||b){c={cp:g,segment:y};break}}if(c)break}var x=c.cp,w=c.segment,E=(l-d)/w.length,k=w.t1-w.t0,C=i?w.t0+k*E:w.t1-k*E;C=tN(0,C,1),t=tB(x.p0,x.p1,x.p2,C),u=sk(x.p0,x.p1,x.p2,C);break;case"straight":case"segments":case"haystack":for(var S,D,T,P,_=0,M=r.allpts.length,B=0;B+3<M&&(i?(S={x:r.allpts[B],y:r.allpts[B+1]},D={x:r.allpts[B+2],y:r.allpts[B+3]}):(S={x:r.allpts[M-2-B],y:r.allpts[M-1-B]},D={x:r.allpts[M-4-B],y:r.allpts[M-3-B]}),T=tT(S,D),P=_,!((_+=T)>=l));B+=2);var A=(l-P)/T;t=tA(S,D,A=tN(0,A,1)),u=sE(S,D)}o("labelX",n,t.x),o("labelY",n,t.y),o("labelAutoAngle",n,u)}};l("source"),l("target"),this.applyLabelDimensions(e)}},sx.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},sx.applyPrefixedLabelDimensions=function(e,t){var n=e._private,r=this.getLabelText(e,t),i=this.calculateLabelDimensions(e,r),a=e.pstyle("line-height").pfValue,o=e.pstyle("text-wrap").strValue,s=te(n.rscratch,"labelWrapCachedLines",t)||[],l="wrap"!==o?1:Math.max(s.length,1),u=i.height/l,c=i.width,h=i.height+(l-1)*(a-1)*u;tt(n.rstyle,"labelWidth",t,c),tt(n.rscratch,"labelWidth",t,c),tt(n.rstyle,"labelHeight",t,h),tt(n.rscratch,"labelHeight",t,h),tt(n.rscratch,"labelLineHeight",t,u*a)},sx.getLabelText=function(e,t){var n=e._private,r=t?t+"-":"",i=e.pstyle(r+"label").strValue,a=e.pstyle("text-transform").value,o=function(e,r){return r?(tt(n.rscratch,e,t,r),r):te(n.rscratch,e,t)};if(!i)return"";"none"==a||("uppercase"==a?i=i.toUpperCase():"lowercase"==a&&(i=i.toLowerCase()));var s=e.pstyle("text-wrap").value;if("wrap"===s){var l=o("labelKey");if(null!=l&&o("labelWrapKey")===l)return o("labelWrapCachedText");for(var u=i.split("\n"),c=e.pstyle("text-max-width").pfValue,d="anywhere"===e.pstyle("text-overflow-wrap").value,p=[],f=/[\s\u200b]+|$/g,g=0;g<u.length;g++){var v=u[g],y=this.calculateLabelDimensions(e,v).width;if(d&&(v=v.split("").join("\u200B")),y>c){var b,x=v.matchAll(f),w="",E=0,k=h(x);try{for(k.s();!(b=k.n()).done;){var C=b.value,S=C[0],D=v.substring(E,C.index);E=C.index+S.length;var T=0===w.length?D:w+D+S;this.calculateLabelDimensions(e,T).width<=c?w+=D+S:(w&&p.push(w),w=D+S)}}catch(e){k.e(e)}finally{k.f()}!w.match(/^[\s\u200b]+$/)&&p.push(w)}else p.push(v)}o("labelWrapCachedLines",p),i=o("labelWrapCachedText",p.join("\n")),o("labelWrapKey",l)}else if("ellipsis"===s){var P=e.pstyle("text-max-width").pfValue,_="",M=!1;if(this.calculateLabelDimensions(e,i).width<P)return i;for(var B=0;B<i.length&&!(this.calculateLabelDimensions(e,_+i[B]+"\u2026").width>P);B++){;_+=i[B],B===i.length-1&&(M=!0)}return!M&&(_+="\u2026"),_}return i},sx.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,n=e.pstyle("text-halign").strValue;if("auto"!==t)return t;if(!e.isNode())return"center";switch(n){case"left":return"right";case"right":return"left";default:return"center"}},sx.calculateLabelDimensions=function(e,t){var n=this.cy.window().document,r=eq(t,e._private.labelDimsKey),i=this.labelDimCache||(this.labelDimCache=[]),a=i[r];if(null!=a)return a;var o=e.pstyle("font-style").strValue,s=e.pstyle("font-size").pfValue,l=e.pstyle("font-family").strValue,u=e.pstyle("font-weight").strValue,c=this.labelCalcCanvas,h=this.labelCalcCanvasContext;if(!c){c=this.labelCalcCanvas=n.createElement("canvas"),h=this.labelCalcCanvasContext=c.getContext("2d");var d=c.style;d.position="absolute",d.left="-9999px",d.top="-9999px",d.zIndex="-1",d.visibility="hidden",d.pointerEvents="none"}h.font="".concat(o," ").concat(u," ").concat(s,"px ").concat(l);for(var p=0,f=0,g=t.split("\n"),v=0;v<g.length;v++){var y=g[v],b=Math.ceil(h.measureText(y).width);p=Math.max(b,p),f+=s}return p+=0,f+=0,i[r]={width:p,height:f}},sx.calculateLabelAngle=function(e,t){var n=e._private.rscratch,r=e.isEdge(),i=e.pstyle((t?t+"-":"")+"text-rotation"),a=i.strValue;if("none"===a)return 0;if(r&&"autorotate"===a)return n.labelAutoAngle;if("autorotate"===a)return 0;else return i.pfValue},sx.calculateLabelAngles=function(e){var t=e.isEdge(),n=e._private.rscratch;n.labelAngle=this.calculateLabelAngle(e),t&&(n.sourceLabelAngle=this.calculateLabelAngle(e,"source"),n.targetLabelAngle=this.calculateLabelAngle(e,"target"))};var sC={},sS=!1;sC.getNodeShape=function(e){var t=e.pstyle("shape").value;if("cutrectangle"===t&&(28>e.width()||28>e.height()))return!sS&&(e1("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),sS=!0),"rectangle";if(e.isParent())return"rectangle"===t||"roundrectangle"===t||"round-rectangle"===t||"cutrectangle"===t||"cut-rectangle"===t||"barrel"===t?t:"rectangle";if("polygon"===t){var n=e.pstyle("shape-polygon-points").value;return this.nodeShapes.makePolygon(n).name}return t};var sD={};sD.registerCalculationListeners=function(){var e=this.cy,t=e.collection(),n=this,r=function(e){var n=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if(t.merge(e),n)for(var r=0;r<e.length;r++){var i=e[r]._private.rstyle;i.clean=!1,i.cleanConnected=!1}};n.binder(e).on("bounds.* dirty.*",function(e){r(e.target)}).on("style.* background.*",function(e){r(e.target,!1)});var i=function(i){if(i){var a=n.onUpdateEleCalcsFns;t.cleanStyle();for(var o=0;o<t.length;o++){var s=t[o],l=s._private.rstyle;s.isNode()&&!l.cleanConnected&&(r(s.connectedEdges()),l.cleanConnected=!0)}if(a)for(var u=0;u<a.length;u++)(0,a[u])(i,t);n.recalculateRenderedStyle(t),t=e.collection()}};n.flushRenderedStyleQueue=function(){i(!0)},n.beforeRender(i,n.beforeRenderPriorities.eleCalcs)},sD.onUpdateEleCalcs=function(e){(this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[]).push(e)},sD.recalculateRenderedStyle=function(e,t){var n=function(e){return e._private.rstyle.cleanConnected},r=[],i=[];if(!this.destroyed){void 0===t&&(t=!0);for(var a=0;a<e.length;a++){var o=e[a],s=o._private,l=s.rstyle;if(o.isEdge()&&(!n(o.source())||!n(o.target()))&&(l.clean=!1),!(t&&l.clean||o.removed())&&"none"!==o.pstyle("display").value)"nodes"===s.group?i.push(o):r.push(o),l.clean=!0}for(var u=0;u<i.length;u++){var c=i[u],h=c._private.rstyle,d=c.position();this.recalculateNodeLabelProjection(c),h.nodeX=d.x,h.nodeY=d.y,h.nodeW=c.pstyle("width").pfValue,h.nodeH=c.pstyle("height").pfValue}this.recalculateEdgeProjections(r);for(var p=0;p<r.length;p++){var f=r[p]._private,g=f.rstyle,v=f.rscratch;g.srcX=v.arrowStartX,g.srcY=v.arrowStartY,g.tgtX=v.arrowEndX,g.tgtY=v.arrowEndY,g.midX=v.midX,g.midY=v.midY,g.labelAngle=v.labelAngle,g.sourceLabelAngle=v.sourceLabelAngle,g.targetLabelAngle=v.targetLabelAngle}}};var sT={};sT.updateCachedGrabbedEles=function(){var e=this.cachedZSortedEles;if(!!e){e.drag=[],e.nondrag=[];for(var t=[],n=0;n<e.length;n++){var r=e[n],i=r._private.rscratch;r.grabbed()&&!r.isParent()?t.push(r):i.inDragLayer?e.drag.push(r):e.nondrag.push(r)}for(var n=0;n<t.length;n++){var r=t[n];e.drag.push(r)}}},sT.invalidateCachedZSortedEles=function(){this.cachedZSortedEles=null},sT.getCachedZSortedEles=function(e){if(e||!this.cachedZSortedEles){var t=this.cy.mutableElements().toArray();t.sort(al),t.interactive=t.filter(function(e){return e.interactive()}),this.cachedZSortedEles=t,this.updateCachedGrabbedEles()}else t=this.cachedZSortedEles;return t};var sP={};[oY,oW,sv,sm,sb,sx,sC,sD,sT].forEach(function(e){Z(sP,e)});var s_={};s_.getCachedImage=function(e,t,n){var r=this.imageCache=this.imageCache||{},i=r[e];if(i)return!i.image.complete&&i.image.addEventListener("load",n),i.image;var a=(i=r[e]=r[e]||{}).image=new Image;a.addEventListener("load",n),a.addEventListener("error",function(){a.error=!0});var o="data:";return e.substring(0,o.length).toLowerCase()!==o&&(t="null"===t?null:t,a.crossOrigin=t),a.src=e,a};var sM={};sM.registerBinding=function(e,t,n,r){var i=Array.prototype.slice.apply(arguments,[1]),a=this.binder(e);return a.on.apply(a,i)},sM.binder=function(e){var t,n=this,r=n.cy.window();var i=e===r||e===r.document||e===r.document.body||(t=e,"undefined"!=typeof HTMLElement&&t instanceof HTMLElement);if(null==n.supportsPassiveEvents){var a=!1;try{var o=Object.defineProperty({},"passive",{get:function(){return a=!0,!0}});r.addEventListener("test",null,o)}catch(e){}n.supportsPassiveEvents=a}var s=function(t,r,a){var o=Array.prototype.slice.call(arguments);return i&&n.supportsPassiveEvents&&(o[2]={capture:null!=a&&a,passive:!1,once:!1}),n.bindings.push({target:e,args:o}),(e.addEventListener||e.on).apply(e,o),this};return{on:s,addEventListener:s,addListener:s,bind:s}},sM.nodeIsDraggable=function(e){return e&&e.isNode()&&!e.locked()&&e.grabbable()},sM.nodeIsGrabbable=function(e){return this.nodeIsDraggable(e)&&e.interactive()},sM.load=function(){var e,t,n,r,i,a,o,s,l,u,c,h,d,p,f,g,v,y,b,x,w,E,k,C=this,S=C.cy.window(),D=function(e){return e.selected()},T=function(e,t,n,r){null==e&&(e=C.cy);for(var i=0;i<t.length;i++){var a=t[i];e.emit({originalEvent:n,type:a,position:r})}},P=function(e){return e.shiftKey||e.metaKey||e.ctrlKey},_=function(e,t){var n=!0;if(C.cy.hasCompoundNodes()&&e&&e.pannable())for(var r=0;t&&r<t.length;r++){var e=t[r];if(e.isNode()&&e.isParent()&&!e.pannable()){n=!1;break}}else n=!0;return n},B=function(e){e[0]._private.grabbed=!0},A=function(e){e[0]._private.grabbed=!1},N=function(e){e[0]._private.rscratch.inDragLayer=!0},I=function(e){e[0]._private.rscratch.inDragLayer=!1},O=function(e){e[0]._private.rscratch.isGrabTarget=!0},L=function(e){e[0]._private.rscratch.isGrabTarget=!1},R=function(e,t){var n=t.addToList;!n.has(e)&&e.grabbable()&&!e.locked()&&(n.merge(e),B(e))},z=function(e,t){if(!!e.cy().hasCompoundNodes()&&(null!=t.inDragLayer||null!=t.addToList)){var n=e.descendants();t.inDragLayer&&(n.forEach(N),n.connectedEdges().forEach(N)),t.addToList&&R(n,t)}},V=function(e,t){t=t||{};var n=e.cy().hasCompoundNodes();t.inDragLayer&&(e.forEach(N),e.neighborhood().stdFilter(function(e){return!n||e.isEdge()}).forEach(N)),t.addToList&&e.forEach(function(e){R(e,t)}),z(e,t),j(e,{inDragLayer:t.inDragLayer}),C.updateCachedGrabbedEles()},F=function(e){if(!!e)C.getCachedZSortedEles().forEach(function(e){A(e),I(e),L(e)}),C.updateCachedGrabbedEles()},j=function(e,t){if(null==t.inDragLayer&&null==t.addToList||!e.cy().hasCompoundNodes())return;var n=e.ancestors().orphans();if(!n.same(e)){var r=n.descendants().spawnSelf().merge(n).unmerge(e).unmerge(e.descendants()),i=r.connectedEdges();t.inDragLayer&&(i.forEach(N),r.forEach(N)),t.addToList&&r.forEach(function(e){R(e,t)})}},q=function(){null!=document.activeElement&&null!=document.activeElement.blur&&document.activeElement.blur()},X="undefined"!=typeof MutationObserver,Y="undefined"!=typeof ResizeObserver;X?(C.removeObserver=new MutationObserver(function(e){for(var t=0;t<e.length;t++){var n=e[t].removedNodes;if(n){for(var r=0;r<n.length;r++)if(n[r]===C.container){C.destroy();break}}}}),C.container.parentNode&&C.removeObserver.observe(C.container.parentNode,{childList:!0})):C.registerBinding(C.container,"DOMNodeRemoved",function(e){C.destroy()});var W=eB(function(){C.cy.resize()},100);X&&(C.styleObserver=new MutationObserver(W),C.styleObserver.observe(C.container,{attributes:!0})),C.registerBinding(S,"resize",W),Y&&(C.resizeObserver=new ResizeObserver(W),C.resizeObserver.observe(C.container));var H=function(){C.invalidateContainerClientCoordsCache()};!function(e,t){for(;null!=e;)t(e),e=e.parentNode}(C.container,function(e){C.registerBinding(e,"transitionend",H),C.registerBinding(e,"animationend",H),C.registerBinding(e,"scroll",H)}),C.registerBinding(C.container,"contextmenu",function(e){e.preventDefault()});var G=function(e){for(var t=C.findContainerClientCoords(),n=t[0],r=t[1],i=t[2],a=t[3],o=e.touches?e.touches:[e],s=!1,l=0;l<o.length;l++){var u=o[l];if(n<=u.clientX&&u.clientX<=n+i&&r<=u.clientY&&u.clientY<=r+a){s=!0;break}}if(!s)return!1;for(var c=C.container,h=e.target.parentNode,d=!1;h;){if(h===c){d=!0;break}h=h.parentNode}return!!d||!1};C.registerBinding(C.container,"mousedown",function(e){if(!!G(e)&&(1!==C.hoverData.which||1===e.which)){e.preventDefault(),q(),C.hoverData.capture=!0,C.hoverData.which=e.which;var t=C.cy,n=[e.clientX,e.clientY],r=C.projectIntoViewport(n[0],n[1]),i=C.selection,a=C.findNearestElements(r[0],r[1],!0,!1),o=a[0],s=C.dragData.possibleDragElements;C.hoverData.mdownPos=r,C.hoverData.mdownGPos=n;if(3==e.which){C.hoverData.cxtStarted=!0;var l={originalEvent:e,type:"cxttapstart",position:{x:r[0],y:r[1]}};o?(o.activate(),o.emit(l),C.hoverData.down=o):t.emit(l),C.hoverData.downTime=new Date().getTime(),C.hoverData.cxtDragged=!1}else if(1==e.which){if(o&&o.activate(),null!=o&&C.nodeIsGrabbable(o)){var u=function(t){return{originalEvent:e,type:t,position:{x:r[0],y:r[1]}}};if(O(o),o.selected()){s=C.dragData.possibleDragElements=t.collection();var c=t.$(function(e){return e.isNode()&&e.selected()&&C.nodeIsGrabbable(e)});V(c,{addToList:s}),o.emit(u("grabon")),c.forEach(function(e){e.emit(u("grab"))})}else V(o,{addToList:s=C.dragData.possibleDragElements=t.collection()}),o.emit(u("grabon")).emit(u("grab"));C.redrawHint("eles",!0),C.redrawHint("drag",!0)}C.hoverData.down=o,C.hoverData.downs=a,C.hoverData.downTime=new Date().getTime(),T(o,["mousedown","tapstart","vmousedown"],e,{x:r[0],y:r[1]}),null==o?(i[4]=1,C.data.bgActivePosistion={x:r[0],y:r[1]},C.redrawHint("select",!0),C.redraw()):o.pannable()&&(i[4]=1),C.hoverData.tapholdCancelled=!1,clearTimeout(C.hoverData.tapholdTimeout),C.hoverData.tapholdTimeout=setTimeout(function(){if(!C.hoverData.tapholdCancelled){var n=C.hoverData.down;n?n.emit({originalEvent:e,type:"taphold",position:{x:r[0],y:r[1]}}):t.emit({originalEvent:e,type:"taphold",position:{x:r[0],y:r[1]}})}},C.tapholdDuration)}i[0]=i[2]=r[0],i[1]=i[3]=r[1]}},!1),C.registerBinding(S,"mousemove",function(e){if(!!C.hoverData.capture||!!G(e)){var t=!1,n=C.cy,r=n.zoom(),i=[e.clientX,e.clientY],a=C.projectIntoViewport(i[0],i[1]),o=C.hoverData.mdownPos,s=C.hoverData.mdownGPos,l=C.selection,u=null;!C.hoverData.draggingEles&&!C.hoverData.dragging&&!C.hoverData.selecting&&(u=C.findNearestElement(a[0],a[1],!0,!1));var c=C.hoverData.last,h=C.hoverData.down,d=[a[0]-l[2],a[1]-l[3]],p=C.dragData.possibleDragElements;if(s){var f=i[0]-s[0],g=i[1]-s[1];C.hoverData.isOverThresholdDrag=w=f*f+g*g>=C.desktopTapThreshold2}var v=P(e);w&&(C.hoverData.tapholdCancelled=!0);t=!0,T(u,["mousemove","vmousemove","tapdrag"],e,{x:a[0],y:a[1]});var y=function(){C.data.bgActivePosistion=void 0,!C.hoverData.selecting&&n.emit({originalEvent:e,type:"boxstart",position:{x:a[0],y:a[1]}}),l[4]=1,C.hoverData.selecting=!0,C.redrawHint("select",!0),C.redraw()};if(3===C.hoverData.which){if(w){var b={originalEvent:e,type:"cxtdrag",position:{x:a[0],y:a[1]}};h?h.emit(b):n.emit(b),C.hoverData.cxtDragged=!0,(!C.hoverData.cxtOver||u!==C.hoverData.cxtOver)&&(C.hoverData.cxtOver&&C.hoverData.cxtOver.emit({originalEvent:e,type:"cxtdragout",position:{x:a[0],y:a[1]}}),C.hoverData.cxtOver=u,u&&u.emit({originalEvent:e,type:"cxtdragover",position:{x:a[0],y:a[1]}}))}}else if(C.hoverData.dragging){if(t=!0,n.panningEnabled()&&n.userPanningEnabled()){if(C.hoverData.justStartedPan){var x=C.hoverData.mdownPos;E={x:(a[0]-x[0])*r,y:(a[1]-x[1])*r},C.hoverData.justStartedPan=!1}else E={x:d[0]*r,y:d[1]*r};n.panBy(E),n.emit("dragpan"),C.hoverData.dragged=!0}a=C.projectIntoViewport(e.clientX,e.clientY)}else if(1==l[4]&&(null==h||h.pannable()))w&&(!C.hoverData.dragging&&n.boxSelectionEnabled()&&(v||!n.panningEnabled()||!n.userPanningEnabled())?y():!C.hoverData.selecting&&n.panningEnabled()&&n.userPanningEnabled()&&_(h,C.hoverData.downs)&&(C.hoverData.dragging=!0,C.hoverData.justStartedPan=!0,l[4]=0,C.data.bgActivePosistion=tb(o),C.redrawHint("select",!0),C.redraw()),h&&h.pannable()&&h.active()&&h.unactivate());else{if(h&&h.pannable()&&h.active()&&h.unactivate(),(!h||!h.grabbed())&&u!=c&&(c&&T(c,["mouseout","tapdragout"],e,{x:a[0],y:a[1]}),u&&T(u,["mouseover","tapdragover"],e,{x:a[0],y:a[1]}),C.hoverData.last=u),h){if(w){if(n.boxSelectionEnabled()&&v)h&&h.grabbed()&&(F(p),h.emit("freeon"),p.emit("free"),C.dragData.didDrag&&(h.emit("dragfreeon"),p.emit("dragfree"))),y();else if(h&&h.grabbed()&&C.nodeIsDraggable(h)){var w,E,k,S=!C.dragData.didDrag;S&&C.redrawHint("eles",!0),C.dragData.didDrag=!0,!C.hoverData.draggingEles&&V(p,{inDragLayer:!0});var D={x:0,y:0};if(M(d[0])&&M(d[1])&&(D.x+=d[0],D.y+=d[1],S)){var B=C.hoverData.dragDelta;B&&M(B[0])&&M(B[1])&&(D.x+=B[0],D.y+=B[1])}C.hoverData.draggingEles=!0,p.silentShift(D).emit("position drag"),C.redrawHint("drag",!0),C.redraw()}}else{;0===(k=C.hoverData.dragDelta=C.hoverData.dragDelta||[]).length?(k.push(d[0]),k.push(d[1])):(k[0]+=d[0],k[1]+=d[1])}}t=!0}if(l[2]=a[0],l[3]=a[1],t)return e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),!1}},!1),C.registerBinding(S,"mouseup",function(r){if((1!==C.hoverData.which||1===r.which||!C.hoverData.capture)&&!!C.hoverData.capture){C.hoverData.capture=!1;var i=C.cy,a=C.projectIntoViewport(r.clientX,r.clientY),o=C.selection,s=C.findNearestElement(a[0],a[1],!0,!1),l=C.dragData.possibleDragElements,u=C.hoverData.down,c=P(r);if(C.data.bgActivePosistion&&(C.redrawHint("select",!0),C.redraw()),C.hoverData.tapholdCancelled=!0,C.data.bgActivePosistion=void 0,u&&u.unactivate(),3===C.hoverData.which){var h={originalEvent:r,type:"cxttapend",position:{x:a[0],y:a[1]}};if(u?u.emit(h):i.emit(h),!C.hoverData.cxtDragged){var d={originalEvent:r,type:"cxttap",position:{x:a[0],y:a[1]}};u?u.emit(d):i.emit(d)}C.hoverData.cxtDragged=!1,C.hoverData.which=null}else if(1===C.hoverData.which){if(T(s,["mouseup","tapend","vmouseup"],r,{x:a[0],y:a[1]}),!C.dragData.didDrag&&!C.hoverData.dragged&&!C.hoverData.selecting&&!C.hoverData.isOverThresholdDrag&&(T(u,["click","tap","vclick"],r,{x:a[0],y:a[1]}),t=!1,r.timeStamp-n<=i.multiClickDebounceTime()?(e&&clearTimeout(e),t=!0,n=null,T(u,["dblclick","dbltap","vdblclick"],r,{x:a[0],y:a[1]})):(e=setTimeout(function(){!t&&T(u,["oneclick","onetap","voneclick"],r,{x:a[0],y:a[1]})},i.multiClickDebounceTime()),n=r.timeStamp)),null==u&&!C.dragData.didDrag&&!C.hoverData.selecting&&!C.hoverData.dragged&&!P(r)&&(i.$(D).unselect(["tapunselect"]),l.length>0&&C.redrawHint("eles",!0),C.dragData.possibleDragElements=l=i.collection()),s==u&&!C.dragData.didDrag&&!C.hoverData.selecting&&null!=s&&s._private.selectable&&(C.hoverData.dragging||("additive"===i.selectionType()||c?s.selected()?s.unselect(["tapunselect"]):s.select(["tapselect"]):!c&&(i.$(D).unmerge(s).unselect(["tapunselect"]),s.select(["tapselect"]))),C.redrawHint("eles",!0)),C.hoverData.selecting){var p=i.collection(C.getAllInBox(o[0],o[1],o[2],o[3]));C.redrawHint("select",!0),p.length>0&&C.redrawHint("eles",!0),i.emit({type:"boxend",originalEvent:r,position:{x:a[0],y:a[1]}});var f=function(e){return e.selectable()&&!e.selected()};"additive"===i.selectionType()||!c&&i.$(D).unmerge(p).unselect(),p.emit("box").stdFilter(f).select().emit("boxselect"),C.redraw()}if(C.hoverData.dragging&&(C.hoverData.dragging=!1,C.redrawHint("select",!0),C.redrawHint("eles",!0),C.redraw()),!o[4]){C.redrawHint("drag",!0),C.redrawHint("eles",!0);var g=u&&u.grabbed();F(l),g&&(u.emit("freeon"),l.emit("free"),C.dragData.didDrag&&(u.emit("dragfreeon"),l.emit("dragfree")))}}o[4]=0,C.hoverData.down=null,C.hoverData.cxtStarted=!1,C.hoverData.draggingEles=!1,C.hoverData.selecting=!1,C.hoverData.isOverThresholdDrag=!1,C.dragData.didDrag=!1,C.hoverData.dragged=!1,C.hoverData.dragDelta=[],C.hoverData.mdownPos=null,C.hoverData.mdownGPos=null,C.hoverData.which=null}},!1);var U=function(e){if(!C.scrollingPage){var t=C.cy,n=t.zoom(),r=t.pan(),i=C.projectIntoViewport(e.clientX,e.clientY),a=[i[0]*n+r.x,i[1]*n+r.y];if(C.hoverData.draggingEles||C.hoverData.dragging||C.hoverData.cxtStarted||0!==C.selection[4]){e.preventDefault();return}if(t.panningEnabled()&&t.userPanningEnabled()&&t.zoomingEnabled()&&t.userZoomingEnabled()){e.preventDefault(),C.data.wheelZooming=!0,clearTimeout(C.data.wheelTimeout),C.data.wheelTimeout=setTimeout(function(){C.data.wheelZooming=!1,C.redrawHint("eles",!0),C.redraw()},150),o=(null!=e.deltaY?-(e.deltaY/250):null!=e.wheelDeltaY?e.wheelDeltaY/1e3:e.wheelDelta/1e3)*C.wheelSensitivity,1===e.deltaMode&&(o*=33);var o,s=t.zoom()*Math.pow(10,o);"gesturechange"===e.type&&(s=C.gestureStartZoom*e.scale),t.zoom({level:s,renderedPosition:{x:a[0],y:a[1]}}),t.emit("gesturechange"===e.type?"pinchzoom":"scrollzoom")}}};C.registerBinding(C.container,"wheel",U,!0),C.registerBinding(S,"scroll",function(e){C.scrollingPage=!0,clearTimeout(C.scrollingPageTimeout),C.scrollingPageTimeout=setTimeout(function(){C.scrollingPage=!1},250)},!0),C.registerBinding(C.container,"gesturestart",function(e){C.gestureStartZoom=C.cy.zoom(),!C.hasTouchStarted&&e.preventDefault()},!0),C.registerBinding(C.container,"gesturechange",function(e){!C.hasTouchStarted&&U(e)},!0),C.registerBinding(C.container,"mouseout",function(e){var t=C.projectIntoViewport(e.clientX,e.clientY);C.cy.emit({originalEvent:e,type:"mouseout",position:{x:t[0],y:t[1]}})},!1),C.registerBinding(C.container,"mouseover",function(e){var t=C.projectIntoViewport(e.clientX,e.clientY);C.cy.emit({originalEvent:e,type:"mouseover",position:{x:t[0],y:t[1]}})},!1);var K=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},Z=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)};if(C.registerBinding(C.container,"touchstart",v=function(e){if(C.hasTouchStarted=!0,!!G(e)){q(),C.touchData.capture=!0,C.data.bgActivePosistion=void 0;var t=C.cy,n=C.touchData.now,v=C.touchData.earlier;if(e.touches[0]){var y=C.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);n[0]=y[0],n[1]=y[1]}if(e.touches[1]){var y=C.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);n[2]=y[0],n[3]=y[1]}if(e.touches[2]){var y=C.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);n[4]=y[0],n[5]=y[1]}if(e.touches[1]){C.touchData.singleTouchMoved=!0,F(C.dragData.touchDragEles);var b=C.findContainerClientCoords();h=b[0],d=b[1],p=b[2],f=b[3],r=e.touches[0].clientX-h,i=e.touches[0].clientY-d,a=e.touches[1].clientX-h,o=e.touches[1].clientY-d,g=0<=r&&r<=p&&0<=a&&a<=p&&0<=i&&i<=f&&0<=o&&o<=f;var x=t.pan(),w=t.zoom();s=K(r,i,a,o),l=Z(r,i,a,o),c=[((u=[(r+a)/2,(i+o)/2])[0]-x.x)/w,(u[1]-x.y)/w];if(l<4e4&&!e.touches[2]){var E=C.findNearestElement(n[0],n[1],!0,!0),k=C.findNearestElement(n[2],n[3],!0,!0);E&&E.isNode()?(E.activate().emit({originalEvent:e,type:"cxttapstart",position:{x:n[0],y:n[1]}}),C.touchData.start=E):k&&k.isNode()?(k.activate().emit({originalEvent:e,type:"cxttapstart",position:{x:n[0],y:n[1]}}),C.touchData.start=k):t.emit({originalEvent:e,type:"cxttapstart",position:{x:n[0],y:n[1]}}),C.touchData.start&&(C.touchData.start._private.grabbed=!1),C.touchData.cxt=!0,C.touchData.cxtDragged=!1,C.data.bgActivePosistion=void 0,C.redraw();return}}if(e.touches[2])t.boxSelectionEnabled()&&e.preventDefault();else if(e.touches[1]);else if(e.touches[0]){var S=C.findNearestElements(n[0],n[1],!0,!0),D=S[0];if(null!=D&&(D.activate(),C.touchData.start=D,C.touchData.starts=S,C.nodeIsGrabbable(D))){var P=C.dragData.touchDragEles=t.collection(),_=null;C.redrawHint("eles",!0),C.redrawHint("drag",!0),D.selected()?V(_=t.$(function(e){return e.selected()&&C.nodeIsGrabbable(e)}),{addToList:P}):V(D,{addToList:P}),O(D);var M=function(t){return{originalEvent:e,type:t,position:{x:n[0],y:n[1]}}};D.emit(M("grabon")),_?_.forEach(function(e){e.emit(M("grab"))}):D.emit(M("grab"))}T(D,["touchstart","tapstart","vmousedown"],e,{x:n[0],y:n[1]}),null==D&&(C.data.bgActivePosistion={x:y[0],y:y[1]},C.redrawHint("select",!0),C.redraw()),C.touchData.singleTouchMoved=!1,C.touchData.singleTouchStartTime=+new Date,clearTimeout(C.touchData.tapholdTimeout),C.touchData.tapholdTimeout=setTimeout(function(){!1===C.touchData.singleTouchMoved&&!C.pinching&&!C.touchData.selecting&&T(C.touchData.start,["taphold"],e,{x:n[0],y:n[1]})},C.tapholdDuration)}if(e.touches.length>=1){for(var B=C.touchData.startPosition=[null,null,null,null,null,null],A=0;A<n.length;A++)B[A]=v[A]=n[A];var N=e.touches[0];C.touchData.startGPosition=[N.clientX,N.clientY]}}},!1),C.registerBinding(S,"touchmove",y=function(e){var t=C.touchData.capture;if(!!t||!!G(e)){var n=C.selection,u=C.cy,p=C.touchData.now,f=C.touchData.earlier,v=u.zoom();if(e.touches[0]){var y=C.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);p[0]=y[0],p[1]=y[1]}if(e.touches[1]){var y=C.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);p[2]=y[0],p[3]=y[1]}if(e.touches[2]){var y=C.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);p[4]=y[0],p[5]=y[1]}var b=C.touchData.startGPosition;if(t&&e.touches[0]&&b){for(var x=[],w=0;w<p.length;w++)x[w]=p[w]-f[w];var E=e.touches[0].clientX-b[0],k=E*E,S=e.touches[0].clientY-b[1],D=S*S;ea=k+D>=C.touchTapThreshold2}if(t&&C.touchData.cxt){e.preventDefault();var P=e.touches[0].clientX-h,B=e.touches[0].clientY-d,A=e.touches[1].clientX-h,N=e.touches[1].clientY-d,I=Z(P,B,A,N),O=I/l;if(O>=2.25||I>=22500){C.touchData.cxt=!1,C.data.bgActivePosistion=void 0,C.redrawHint("select",!0);var L={originalEvent:e,type:"cxttapend",position:{x:p[0],y:p[1]}};C.touchData.start?(C.touchData.start.unactivate().emit(L),C.touchData.start=null):u.emit(L)}}if(t&&C.touchData.cxt){var L={originalEvent:e,type:"cxtdrag",position:{x:p[0],y:p[1]}};C.data.bgActivePosistion=void 0,C.redrawHint("select",!0),C.touchData.start?C.touchData.start.emit(L):u.emit(L),C.touchData.start&&(C.touchData.start._private.grabbed=!1),C.touchData.cxtDragged=!0;var R=C.findNearestElement(p[0],p[1],!0,!0);(!C.touchData.cxtOver||R!==C.touchData.cxtOver)&&(C.touchData.cxtOver&&C.touchData.cxtOver.emit({originalEvent:e,type:"cxtdragout",position:{x:p[0],y:p[1]}}),C.touchData.cxtOver=R,R&&R.emit({originalEvent:e,type:"cxtdragover",position:{x:p[0],y:p[1]}}))}else if(t&&e.touches[2]&&u.boxSelectionEnabled())e.preventDefault(),C.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,!C.touchData.selecting&&u.emit({originalEvent:e,type:"boxstart",position:{x:p[0],y:p[1]}}),C.touchData.selecting=!0,C.touchData.didSelect=!0,n[4]=1,n&&0!==n.length&&void 0!==n[0]?(n[2]=(p[0]+p[2]+p[4])/3,n[3]=(p[1]+p[3]+p[5])/3):(n[0]=(p[0]+p[2]+p[4])/3,n[1]=(p[1]+p[3]+p[5])/3,n[2]=(p[0]+p[2]+p[4])/3+1,n[3]=(p[1]+p[3]+p[5])/3+1),C.redrawHint("select",!0),C.redraw();else if(t&&e.touches[1]&&!C.touchData.didSelect&&u.zoomingEnabled()&&u.panningEnabled()&&u.userZoomingEnabled()&&u.userPanningEnabled()){e.preventDefault(),C.data.bgActivePosistion=void 0,C.redrawHint("select",!0);var z=C.dragData.touchDragEles;if(z){C.redrawHint("drag",!0);for(var j=0;j<z.length;j++){var q=z[j]._private;q.grabbed=!1,q.rscratch.inDragLayer=!1}}var X=C.touchData.start,P=e.touches[0].clientX-h,B=e.touches[0].clientY-d,A=e.touches[1].clientX-h,N=e.touches[1].clientY-d,Y=K(P,B,A,N),W=Y/s;if(g){var H=P-r,U=B-i,$=A-a,Q=N-o,J=u.zoom(),ee=J*W,et=u.pan(),en=c[0]*J+et.x,er=c[1]*J+et.y,ei={x:-ee/J*(en-et.x-(H+$)/2)+en,y:-ee/J*(er-et.y-(U+Q)/2)+er};if(X&&X.active()){var z=C.dragData.touchDragEles;F(z),C.redrawHint("drag",!0),C.redrawHint("eles",!0),X.unactivate().emit("freeon"),z.emit("free"),C.dragData.didDrag&&(X.emit("dragfreeon"),z.emit("dragfree"))}u.viewport({zoom:ee,pan:ei,cancelOnFailedZoom:!0}),u.emit("pinchzoom"),s=Y,r=P,i=B,a=A,o=N,C.pinching=!0}if(e.touches[0]){var y=C.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);p[0]=y[0],p[1]=y[1]}if(e.touches[1]){var y=C.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);p[2]=y[0],p[3]=y[1]}if(e.touches[2]){var y=C.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);p[4]=y[0],p[5]=y[1]}}else if(e.touches[0]&&!C.touchData.didSelect){var ea,R,eo=C.touchData.start,es=C.touchData.last;if(!C.hoverData.draggingEles&&!C.swipePanning&&(R=C.findNearestElement(p[0],p[1],!0,!0)),t&&null!=eo&&e.preventDefault(),t&&null!=eo&&C.nodeIsDraggable(eo)){if(ea){var z=C.dragData.touchDragEles,el=!C.dragData.didDrag;el&&V(z,{inDragLayer:!0}),C.dragData.didDrag=!0;var eu={x:0,y:0};if(M(x[0])&&M(x[1])&&(eu.x+=x[0],eu.y+=x[1],el)){C.redrawHint("eles",!0);var ec=C.touchData.dragDelta;ec&&M(ec[0])&&M(ec[1])&&(eu.x+=ec[0],eu.y+=ec[1])}C.hoverData.draggingEles=!0,z.silentShift(eu).emit("position drag"),C.redrawHint("drag",!0),C.touchData.startPosition[0]==f[0]&&C.touchData.startPosition[1]==f[1]&&C.redrawHint("eles",!0),C.redraw()}else{var ec=C.touchData.dragDelta=C.touchData.dragDelta||[];0===ec.length?(ec.push(x[0]),ec.push(x[1])):(ec[0]+=x[0],ec[1]+=x[1])}}if(T(eo||R,["touchmove","tapdrag","vmousemove"],e,{x:p[0],y:p[1]}),(!eo||!eo.grabbed())&&R!=es&&(es&&es.emit({originalEvent:e,type:"tapdragout",position:{x:p[0],y:p[1]}}),R&&R.emit({originalEvent:e,type:"tapdragover",position:{x:p[0],y:p[1]}})),C.touchData.last=R,t)for(var j=0;j<p.length;j++)p[j]&&C.touchData.startPosition[j]&&ea&&(C.touchData.singleTouchMoved=!0);if(t&&(null==eo||eo.pannable())&&u.panningEnabled()&&u.userPanningEnabled()){_(eo,C.touchData.starts)&&(e.preventDefault(),!C.data.bgActivePosistion&&(C.data.bgActivePosistion=tb(C.touchData.startPosition)),C.swipePanning?(u.panBy({x:x[0]*v,y:x[1]*v}),u.emit("dragpan")):ea&&(C.swipePanning=!0,u.panBy({x:E*v,y:S*v}),u.emit("dragpan"),eo&&(eo.unactivate(),C.redrawHint("select",!0),C.touchData.start=null)));var y=C.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);p[0]=y[0],p[1]=y[1]}}for(var w=0;w<p.length;w++)f[w]=p[w];t&&e.touches.length>0&&!C.hoverData.draggingEles&&!C.swipePanning&&null!=C.data.bgActivePosistion&&(C.data.bgActivePosistion=void 0,C.redrawHint("select",!0),C.redraw())}},!1),C.registerBinding(S,"touchcancel",b=function(e){var t=C.touchData.start;C.touchData.capture=!1,t&&t.unactivate()}),C.registerBinding(S,"touchend",x=function(e){var t,n=C.touchData.start;if(!!C.touchData.capture){0===e.touches.length&&(C.touchData.capture=!1),e.preventDefault();var r=C.selection;C.swipePanning=!1,C.hoverData.draggingEles=!1;var i=C.cy,a=i.zoom(),o=C.touchData.now,s=C.touchData.earlier;if(e.touches[0]){var l=C.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);o[0]=l[0],o[1]=l[1]}if(e.touches[1]){var l=C.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);o[2]=l[0],o[3]=l[1]}if(e.touches[2]){var l=C.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);o[4]=l[0],o[5]=l[1]}if(n&&n.unactivate(),C.touchData.cxt){if(t={originalEvent:e,type:"cxttapend",position:{x:o[0],y:o[1]}},n?n.emit(t):i.emit(t),!C.touchData.cxtDragged){var u={originalEvent:e,type:"cxttap",position:{x:o[0],y:o[1]}};n?n.emit(u):i.emit(u)}C.touchData.start&&(C.touchData.start._private.grabbed=!1),C.touchData.cxt=!1,C.touchData.start=null,C.redraw();return}if(!e.touches[2]&&i.boxSelectionEnabled()&&C.touchData.selecting){C.touchData.selecting=!1;var c=i.collection(C.getAllInBox(r[0],r[1],r[2],r[3]));r[0]=void 0,r[1]=void 0,r[2]=void 0,r[3]=void 0,r[4]=0,C.redrawHint("select",!0),i.emit({type:"boxend",originalEvent:e,position:{x:o[0],y:o[1]}});c.emit("box").stdFilter(function(e){return e.selectable()&&!e.selected()}).select().emit("boxselect"),c.nonempty()&&C.redrawHint("eles",!0),C.redraw()}if(null!=n&&n.unactivate(),e.touches[2])C.data.bgActivePosistion=void 0,C.redrawHint("select",!0);else if(e.touches[1]);else if(e.touches[0]);else if(!e.touches[0]){C.data.bgActivePosistion=void 0,C.redrawHint("select",!0);var h=C.dragData.touchDragEles;if(null!=n){var d=n._private.grabbed;F(h),C.redrawHint("drag",!0),C.redrawHint("eles",!0),d&&(n.emit("freeon"),h.emit("free"),C.dragData.didDrag&&(n.emit("dragfreeon"),h.emit("dragfree"))),T(n,["touchend","tapend","vmouseup","tapdragout"],e,{x:o[0],y:o[1]}),n.unactivate(),C.touchData.start=null}else T(C.findNearestElement(o[0],o[1],!0,!0),["touchend","tapend","vmouseup","tapdragout"],e,{x:o[0],y:o[1]});var p=C.touchData.startPosition[0]-o[0],f=C.touchData.startPosition[1]-o[1];!C.touchData.singleTouchMoved&&(!n&&i.$(":selected").unselect(["tapunselect"]),T(n,["tap","vclick"],e,{x:o[0],y:o[1]}),w=!1,e.timeStamp-k<=i.multiClickDebounceTime()?(E&&clearTimeout(E),w=!0,k=null,T(n,["dbltap","vdblclick"],e,{x:o[0],y:o[1]})):(E=setTimeout(function(){!w&&T(n,["onetap","voneclick"],e,{x:o[0],y:o[1]})},i.multiClickDebounceTime()),k=e.timeStamp)),null!=n&&!C.dragData.didDrag&&n._private.selectable&&(p*p+f*f)*a*a<C.touchTapThreshold2&&!C.pinching&&("single"===i.selectionType()?(i.$(D).unmerge(n).unselect(["tapunselect"]),n.select(["tapselect"])):n.selected()?n.unselect(["tapunselect"]):n.select(["tapselect"]),C.redrawHint("eles",!0)),C.touchData.singleTouchMoved=!0}for(var g=0;g<o.length;g++)s[g]=o[g];C.dragData.didDrag=!1,0===e.touches.length&&(C.touchData.dragDelta=[],C.touchData.startPosition=[null,null,null,null,null,null],C.touchData.startGPosition=null,C.touchData.didSelect=!1),e.touches.length<2&&(1===e.touches.length&&(C.touchData.startGPosition=[e.touches[0].clientX,e.touches[0].clientY]),C.pinching=!1,C.redrawHint("eles",!0),C.redraw())}},!1),"undefined"==typeof TouchEvent){var $=[],Q=function(e){return{clientX:e.clientX,clientY:e.clientY,force:1,identifier:e.pointerId,pageX:e.pageX,pageY:e.pageY,radiusX:e.width/2,radiusY:e.height/2,screenX:e.screenX,screenY:e.screenY,target:e.target}},J=function(e){var t;$.push({event:t=e,touch:Q(t)})},ee=function(e){for(var t=0;t<$.length;t++)if($[t].event.pointerId===e.pointerId){$.splice(t,1);return}},et=function(e){var t=$.filter(function(t){return t.event.pointerId===e.pointerId})[0];t.event=e,t.touch=Q(e)},en=function(e){e.touches=$.map(function(e){return e.touch})},er=function(e){return"mouse"===e.pointerType||4===e.pointerType};C.registerBinding(C.container,"pointerdown",function(e){if(!er(e))e.preventDefault(),J(e),en(e),v(e)}),C.registerBinding(C.container,"pointerup",function(e){if(!er(e))ee(e),en(e),x(e)}),C.registerBinding(C.container,"pointercancel",function(e){if(!er(e))ee(e),en(e),b(e)}),C.registerBinding(C.container,"pointermove",function(e){if(!er(e))e.preventDefault(),et(e),en(e),y(e)})}};var sB={};sB.generatePolygon=function(e,t){return this.nodeShapes[e]={renderer:this,name:e,points:t,draw:function(e,t,n,r,i,a){this.renderer.nodeShapeImpl("polygon",e,t,n,r,i,this.points)},intersectLine:function(e,t,n,r,i,a,o,s){return t6(i,a,this.points,e,t,n/2,r/2,o)},checkPoint:function(e,t,n,r,i,a,o,s){return tQ(e,t,this.points,a,o,r,i,[0,-1],n)}}},sB.generateEllipse=function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(e,t,n,r,i,a){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o,s){return t2(i,a,e,t,n/2+o,r/2+o)},checkPoint:function(e,t,n,r,i,a,o,s){return t5(e,t,r,i,a,o,n)}}},sB.generateRoundPolygon=function(e,t){return this.nodeShapes[e]={renderer:this,name:e,points:t,getOrCreateCorners:function(e,n,r,i,a,o,s){if(void 0!==o[s]&&o[s+"-cx"]===e&&o[s+"-cy"]===n)return o[s];o[s]=Array(t.length/2),o[s+"-cx"]=e,o[s+"-cy"]=n;var l=r/2,u=i/2;a="auto"===a?ni(r,i):a;for(var c=Array(t.length/2),h=0;h<t.length/2;h++)c[h]={x:e+l*t[2*h],y:n+u*t[2*h+1]};var d,p,f,g,v=c.length;for(d=0,p=c[v-1];d<v;d++)f=c[d%v],g=c[(d+1)%v],o[s][d]=sg(p,f,g,a),p=f,f=g;return o[s]},draw:function(e,t,n,r,i,a,o){this.renderer.nodeShapeImpl("round-polygon",e,t,n,r,i,this.points,this.getOrCreateCorners(t,n,r,i,a,o,"drawCorners"))},intersectLine:function(e,t,n,r,i,a,o,s,l){return t8(i,a,this.points,e,t,n,r,o,this.getOrCreateCorners(e,t,n,r,s,l,"corners"))},checkPoint:function(e,t,n,r,i,a,o,s,l){return tJ(e,t,this.points,a,o,r,i,this.getOrCreateCorners(a,o,r,i,s,l,"corners"))}}},sB.generateRoundRectangle=function(){return this.nodeShapes["round-rectangle"]=this.nodeShapes.roundrectangle={renderer:this,name:"round-rectangle",points:ne(4,0),draw:function(e,t,n,r,i,a){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i,this.points,a)},intersectLine:function(e,t,n,r,i,a,o,s){return tY(i,a,e,t,n,r,o,s)},checkPoint:function(e,t,n,r,i,a,o,s){var l=r/2,u=i/2,c=2*(s=Math.min(l,u,s="auto"===s?nr(r,i):s));return!!(tQ(e,t,this.points,a,o,r,i-c,[0,-1],n)||tQ(e,t,this.points,a,o,r-c,i,[0,-1],n)||t5(e,t,c,c,a-l+s,o-u+s,n)||t5(e,t,c,c,a+l-s,o-u+s,n)||t5(e,t,c,c,a+l-s,o+u-s,n)||t5(e,t,c,c,a-l+s,o+u-s,n))||!1}}},sB.generateCutRectangle=function(){return this.nodeShapes["cut-rectangle"]=this.nodeShapes.cutrectangle={renderer:this,name:"cut-rectangle",cornerLength:na(),points:ne(4,0),draw:function(e,t,n,r,i,a){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i,null,a)},generateCutTrianglePts:function(e,t,n,r,i){var a="auto"===i?this.cornerLength:i,o=t/2,s=e/2,l=n-s,u=n+s,c=r-o,h=r+o;return{topLeft:[l,c+a,l+a,c,l+a,c+a],topRight:[u-a,c,u,c+a,u-a,c+a],bottomRight:[u,h-a,u-a,h,u-a,h-a],bottomLeft:[l+a,h,l,h-a,l+a,h-a]}},intersectLine:function(e,t,n,r,i,a,o,s){var l=this.generateCutTrianglePts(n+2*o,r+2*o,e,t,s);return t6(i,a,[].concat.apply([],[l.topLeft.splice(0,4),l.topRight.splice(0,4),l.bottomRight.splice(0,4),l.bottomLeft.splice(0,4)]),e,t)},checkPoint:function(e,t,n,r,i,a,o,s){var l="auto"===s?this.cornerLength:s;if(tQ(e,t,this.points,a,o,r,i-2*l,[0,-1],n)||tQ(e,t,this.points,a,o,r-2*l,i,[0,-1],n))return!0;var u=this.generateCutTrianglePts(r,i,a,o);return t$(e,t,u.topLeft)||t$(e,t,u.topRight)||t$(e,t,u.bottomRight)||t$(e,t,u.bottomLeft)}}},sB.generateBarrel=function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:ne(4,0),draw:function(e,t,n,r,i,a){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o,s){var l=this.generateBarrelBezierPts(n+2*o,r+2*o,e,t),u=function(e){var t=tB({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.15),n=tB({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.5),r=tB({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},.85);return[e[0],e[1],t.x,t.y,n.x,n.y,r.x,r.y,e[4],e[5]]};return t6(i,a,[].concat(u(l.topLeft),u(l.topRight),u(l.bottomRight),u(l.bottomLeft)),e,t)},generateBarrelBezierPts:function(e,t,n,r){var i=t/2,a=e/2,o=n-a,s=n+a,l=r-i,u=r+i,c=no(e,t),h=c.heightOffset,d=c.widthOffset,p=c.ctrlPtOffsetPct*e,f={topLeft:[o,l+h,o+p,l,o+d,l],topRight:[s-d,l,s-p,l,s,l+h],bottomRight:[s,u-h,s-p,u,s-d,u],bottomLeft:[o+d,u,o+p,u,o,u-h]};return f.topLeft.isTop=!0,f.topRight.isTop=!0,f.bottomLeft.isBottom=!0,f.bottomRight.isBottom=!0,f},checkPoint:function(e,t,n,r,i,a,o,s){var l=no(r,i),u=l.heightOffset,c=l.widthOffset;if(tQ(e,t,this.points,a,o,r,i-2*u,[0,-1],n)||tQ(e,t,this.points,a,o,r-2*c,i,[0,-1],n))return!0;for(var h=this.generateBarrelBezierPts(r,i,a,o),d=Object.keys(h),p=0;p<d.length;p++){var f=h[d[p]],g=function(e,t,n){var r=n[4],i=n[2],a=n[0],o=n[5],s=n[1],l=Math.min(r,a),u=Math.max(r,a),c=Math.min(o,s),h=Math.max(o,s);if(l<=e&&e<=u&&c<=t&&t<=h){var d,p,f=[(d=r)-2*(p=i)+a,2*(p-d),d],g=tG(f[0],f[1],f[2],e).filter(function(e){return 0<=e&&e<=1});if(g.length>0)return g[0]}return null}(e,t,f);if(null!=g){var v=tM(f[5],f[3],f[1],g);if(f.isTop&&v<=t||f.isBottom&&t<=v)return!0}}return!1}}},sB.generateBottomRoundrectangle=function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:ne(4,0),draw:function(e,t,n,r,i,a){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i,this.points,a)},intersectLine:function(e,t,n,r,i,a,o,s){var l=e-(n/2+o),u=t-(r/2+o),c=e+(n/2+o),h=t9(i,a,e,t,l,u,c,u,!1);return h.length>0?h:tY(i,a,e,t,n,r,o,s)},checkPoint:function(e,t,n,r,i,a,o,s){var l=2*(s="auto"===s?nr(r,i):s);if(tQ(e,t,this.points,a,o,r,i-l,[0,-1],n)||tQ(e,t,this.points,a,o,r-l,i,[0,-1],n))return!0;var u=r/2+2*n,c=i/2+2*n;return!!(t$(e,t,[a-u,o-c,a-u,o,a+u,o,a+u,o-c])||t5(e,t,l,l,a+r/2-s,o+i/2-s,n)||t5(e,t,l,l,a-r/2+s,o+i/2-s,n))||!1}}},sB.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",ne(3,0)),this.generateRoundPolygon("round-triangle",ne(3,0)),this.generatePolygon("rectangle",ne(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n),this.generatePolygon("pentagon",ne(5,0)),this.generateRoundPolygon("round-pentagon",ne(5,0)),this.generatePolygon("hexagon",ne(6,0)),this.generateRoundPolygon("round-hexagon",ne(6,0)),this.generatePolygon("heptagon",ne(7,0)),this.generateRoundPolygon("round-heptagon",ne(7,0)),this.generatePolygon("octagon",ne(8,0)),this.generateRoundPolygon("round-octagon",ne(8,0));var r=Array(20),i=nn(5,0),a=nn(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s<a.length/2;s++)a[2*s]*=o,a[2*s+1]*=o;for(var s=0;s<5;s++)r[4*s]=i[2*s],r[4*s+1]=i[2*s+1],r[4*s+2]=a[2*s],r[4*s+3]=a[2*s+1];r=nt(r),this.generatePolygon("star",r),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.generatePolygon("right-rhomboid",[-.333,-1,1,-1,.333,1,-1,1]),this.nodeShapes.concavehexagon=this.generatePolygon("concave-hexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]);var l=[-1,-1,.25,-1,1,0,.25,1,-1,1];this.generatePolygon("tag",l),this.generateRoundPolygon("round-tag",l),e.makePolygon=function(e){var n,r="polygon-"+e.join("$");return(n=this[r])?n:t.generatePolygon(r,e)}};var sA={};sA.timeToRender=function(){return this.redrawTotalTime/this.redrawCount},sA.redraw=function(e){e=e||e4();void 0===this.averageRedrawTime&&(this.averageRedrawTime=0),void 0===this.lastRedrawTime&&(this.lastRedrawTime=0),void 0===this.lastDrawTime&&(this.lastDrawTime=0),this.requestedFrame=!0,this.renderOptions=e},sA.beforeRender=function(e,t){if(!this.destroyed){null==t&&eJ("Priority is not optional for beforeRender");var n=this.beforeRenderCallbacks;n.push({fn:e,priority:t}),n.sort(function(e,t){return t.priority-e.priority})}};var sN=function(e,t,n){for(var r=e.beforeRenderCallbacks,i=0;i<r.length;i++)r[i].fn(t,n)};sA.startRenderLoop=function(){var e=this,t=e.cy;if(!e.renderLoopStarted){e.renderLoopStarted=!0;eO(function n(r){if(!e.destroyed){if(t.batching());else if(e.requestedFrame&&!e.skipFrame){sN(e,!0,r);var i=eN();e.render(e.renderOptions);var a=e.lastDrawTime=eN();void 0===e.averageRedrawTime&&(e.averageRedrawTime=a-i),void 0===e.redrawCount&&(e.redrawCount=0),e.redrawCount++,void 0===e.redrawTotalTime&&(e.redrawTotalTime=0);var o=a-i;e.redrawTotalTime+=o,e.lastRedrawTime=o,e.averageRedrawTime=e.averageRedrawTime/2+o/2,e.requestedFrame=!1}else sN(e,!1,r);e.skipFrame=!1,eO(n)}})}};var sI=function(e){this.init(e)},sO=sI.prototype;sO.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],sO.init=function(e){this.options=e,this.cy=e.cy;var t=this.container=e.cy.container(),n=this.cy.window();if(n){var r=n.document,i=r.head,a="__________cytoscape_stylesheet",o="__________cytoscape_container",s=null!=r.getElementById(a);if(0>t.className.indexOf(o)&&(t.className=(t.className||"")+" "+o),!s){var l=r.createElement("style");l.id=a,l.textContent="."+o+" { position: relative; }",i.insertBefore(l,i.children[0])}"static"===n.getComputedStyle(t).getPropertyValue("position")&&e1("A Cytoscape container has style position:static and so can not use UI extensions properly")}this.selection=[void 0,void 0,void 0,void 0,0],this.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],this.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},this.dragData={possibleDragElements:[]},this.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},this.redraws=0,this.showFps=e.showFps,this.debug=e.debug,this.hideEdgesOnViewport=e.hideEdgesOnViewport,this.textureOnViewport=e.textureOnViewport,this.wheelSensitivity=e.wheelSensitivity,this.motionBlurEnabled=e.motionBlur,this.forcedPixelRatio=M(e.pixelRatio)?e.pixelRatio:null,this.motionBlur=e.motionBlur,this.motionBlurOpacity=e.motionBlurOpacity,this.motionBlurTransparency=1-this.motionBlurOpacity,this.motionBlurPxRatio=1,this.mbPxRBlurry=1,this.minMbLowQualFrames=4,this.fullQualityMb=!1,this.clearedForMotionBlur=[],this.desktopTapThreshold=e.desktopTapThreshold,this.desktopTapThreshold2=e.desktopTapThreshold*e.desktopTapThreshold,this.touchTapThreshold=e.touchTapThreshold,this.touchTapThreshold2=e.touchTapThreshold*e.touchTapThreshold,this.tapholdDuration=500,this.bindings=[],this.beforeRenderCallbacks=[],this.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},this.registerNodeShapes(),this.registerArrowShapes(),this.registerCalculationListeners()},sO.notify=function(e,t){var n=this.cy;if(!this.destroyed){if("init"===e){this.load();return}if("destroy"===e){this.destroy();return}("add"===e||"remove"===e||"move"===e&&n.hasCompoundNodes()||"load"===e||"zorder"===e||"mount"===e)&&this.invalidateCachedZSortedEles(),"viewport"===e&&this.redrawHint("select",!0),("load"===e||"resize"===e||"mount"===e)&&(this.invalidateContainerClientCoordsCache(),this.matchCanvasSize(this.container)),this.redrawHint("eles",!0),this.redrawHint("drag",!0),this.startRenderLoop(),this.redraw()}},sO.destroy=function(){this.destroyed=!0,this.cy.stopAnimationLoop();for(var e=0;e<this.bindings.length;e++){var t=this.bindings[e],n=t.target;(n.off||n.removeEventListener).apply(n,t.args)}if(this.bindings=[],this.beforeRenderCallbacks=[],this.onUpdateEleCalcsFns=[],this.removeObserver&&this.removeObserver.disconnect(),this.styleObserver&&this.styleObserver.disconnect(),this.resizeObserver&&this.resizeObserver.disconnect(),this.labelCalcDiv)try{document.body.removeChild(this.labelCalcDiv)}catch(e){}},sO.isHeadless=function(){return!1},[oX,sP,s_,sM,sB,sA].forEach(function(e){Z(sO,e)});var sL=1e3/60,sR=function(e){return function(){var t=this,n=this.renderer;if(!t.dequeueingSetup){t.dequeueingSetup=!0;var r=eB(function(){n.redrawHint("eles",!0),n.redrawHint("drag",!0),n.redraw()},e.deqRedrawThreshold),i=e.priority||eQ;n.beforeRender(function(i,a){var o=eN(),s=n.averageRedrawTime,l=n.lastRedrawTime,u=[],c=n.cy.extent(),h=n.getPixelRatio();for(!i&&n.flushRenderedStyleQueue();;){var d=eN(),p=d-o,f=d-a;if(l<sL){var g=sL-(i?s:0);if(f>=e.deqFastCost*g)break}else if(i){if(p>=e.deqCost*l||p>=e.deqAvgCost*s)break}else if(f>=e.deqNoDrawCost*sL)break;var v=e.deq(t,h,c);if(v.length>0)for(var y=0;y<v.length;y++)u.push(v[y]);else break}u.length>0&&(e.onDeqd(t,u),!i&&e.shouldRedraw(t,u,h,c)&&r())},i(t))}}},sz=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eZ;i(this,e),this.idsByKey=new tr,this.keyForId=new tr,this.cachesByLvl=new tr,this.lvls=[],this.getKey=t,this.doesEleInvalidateKey=n}return o(e,[{key:"getIdsFor",value:function(e){null==e&&eJ("Can not get id list for null key");var t=this.idsByKey,n=this.idsByKey.get(e);return!n&&(n=new ta,t.set(e,n)),n}},{key:"addIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).add(t)}},{key:"deleteIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).delete(t)}},{key:"getNumberOfIdsForKey",value:function(e){return null==e?0:this.getIdsFor(e).size}},{key:"updateKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t),r=this.getKey(e);this.deleteIdForKey(n,t),this.addIdForKey(r,t),this.keyForId.set(t,r)}},{key:"deleteKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteIdForKey(n,t),this.keyForId.delete(t)}},{key:"keyHasChangedFor",value:function(e){var t=e.id();return this.keyForId.get(t)!==this.getKey(e)}},{key:"isInvalid",value:function(e){return this.keyHasChangedFor(e)||this.doesEleInvalidateKey(e)}},{key:"getCachesAt",value:function(e){var t=this.cachesByLvl,n=this.lvls,r=t.get(e);return!r&&(r=new tr,t.set(e,r),n.push(e)),r}},{key:"getCache",value:function(e,t){return this.getCachesAt(t).get(e)}},{key:"get",value:function(e,t){var n=this.getKey(e),r=this.getCache(n,t);return null!=r&&this.updateKeyMappingFor(e),r}},{key:"getForCachedKey",value:function(e,t){var n=this.keyForId.get(e.id());return this.getCache(n,t)}},{key:"hasCache",value:function(e,t){return this.getCachesAt(t).has(e)}},{key:"has",value:function(e,t){var n=this.getKey(e);return this.hasCache(n,t)}},{key:"setCache",value:function(e,t,n){n.key=e,this.getCachesAt(t).set(e,n)}},{key:"set",value:function(e,t,n){var r=this.getKey(e);this.setCache(r,t,n),this.updateKeyMappingFor(e)}},{key:"deleteCache",value:function(e,t){this.getCachesAt(t).delete(e)}},{key:"delete",value:function(e,t){var n=this.getKey(e);this.deleteCache(n,t)}},{key:"invalidateKey",value:function(e){var t=this;this.lvls.forEach(function(n){return t.deleteCache(e,n)})}},{key:"invalidate",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteKeyMappingFor(e);var r=this.doesEleInvalidateKey(e);return r&&this.invalidateKey(n),r||0===this.getNumberOfIdsForKey(n)}}]),e}(),sV={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},sF=e9({getKey:null,doesEleInvalidateKey:eZ,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:eK,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),sj=function(e,t){this.renderer=e,this.onDequeues=[];var n=sF(t);Z(this,n),this.lookup=new sz(n.getKey,n.doesEleInvalidateKey),this.setupDequeueing()},sq=sj.prototype;sq.reasons=sV,sq.getTextureQueue=function(e){return this.eleImgCaches=this.eleImgCaches||{},this.eleImgCaches[e]=this.eleImgCaches[e]||[]},sq.getRetiredTextureQueue=function(e){var t=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return t[e]=t[e]||[]},sq.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new tu(function(e,t){return t.reqs-e.reqs})},sq.getElementKeyToQueue=function(){return this.eleKeyToCacheQueue=this.eleKeyToCacheQueue||{}},sq.getElement=function(e,t,n,r,i){var a,o,s,l=this,u=this.renderer,c=u.cy.zoom(),h=this.lookup;if(!t||0===t.w||0===t.h||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed()||!l.allowEdgeTxrCaching&&e.isEdge()||!l.allowParentTxrCaching&&e.isParent())return null;if(null==r&&(r=Math.ceil(tS(c*n))),r<-4)r=-4;else if(c>=7.99||r>3)return null;var d=Math.pow(2,r),p=t.h*d,f=t.w*d,g=u.eleTextBiggerThanMin(e,d);if(!this.isVisible(e,g))return null;var v=h.get(e,r);if(v&&v.invalidated&&(v.invalidated=!1,v.texture.invalidatedWidth-=v.width),v)return v;if(a=p<=25?25:p<=50?50:50*Math.ceil(p/50),p>1024||f>1024)return null;var y=l.getTextureQueue(a),b=y[y.length-2],x=function(){return l.recycleTexture(a,f)||l.addTexture(a,f)};!b&&(b=y[y.length-1]),!b&&(b=x()),b.width-b.usedWidth<f&&(b=x());for(var w=function(e){return e&&e.scaledLabelShown===g},E=i&&i===sV.dequeue,k=i&&i===sV.highQuality,C=i&&i===sV.downscale,S=r+1;S<=3;S++){var D=h.get(e,S);if(D){o=D;break}}var T=o&&o.level===r+1?o:null,P=function(){b.context.drawImage(T.texture.canvas,T.x,0,T.width,T.height,b.usedWidth,0,f,p)};if(b.context.setTransform(1,0,0,1,0,0),b.context.clearRect(b.usedWidth,0,f,a),w(T))P();else if(w(o)){if(!k)return l.queueElement(e,o.level-1),o;for(var _=o.level;_>r;_--)T=l.getElement(e,t,n,_,sV.downscale);P()}else{if(!E&&!k&&!C)for(var M=r-1;M>=-4;M--){var B=h.get(e,M);if(B){s=B;break}}if(w(s))return l.queueElement(e,r),s;b.context.translate(b.usedWidth,0),b.context.scale(d,d),this.drawElement(b.context,e,t,g,!1),b.context.scale(1/d,1/d),b.context.translate(-b.usedWidth,0)}return v={x:b.usedWidth,texture:b,level:r,scale:d,width:f,height:p,scaledLabelShown:g},b.usedWidth+=Math.ceil(f+8),b.eleCaches.push(v),h.set(e,r,v),l.checkTextureFullness(b),v},sq.invalidateElements=function(e){for(var t=0;t<e.length;t++)this.invalidateElement(e[t])},sq.invalidateElement=function(e){var t=this.lookup,n=[];if(!!t.isInvalid(e)){for(var r=-4;r<=3;r++){var i=t.getForCachedKey(e,r);i&&n.push(i)}if(t.invalidate(e))for(var a=0;a<n.length;a++){var o=n[a],s=o.texture;s.invalidatedWidth+=o.width,o.invalidated=!0,this.checkTextureUtility(s)}this.removeFromQueue(e)}},sq.checkTextureUtility=function(e){e.invalidatedWidth>=.2*e.width&&this.retireTexture(e)},sq.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>.8&&e.fullnessChecks>=10?e6(t,e):e.fullnessChecks++},sq.retireTexture=function(e){var t=e.height,n=this.getTextureQueue(t),r=this.lookup;e6(n,e),e.retired=!0;for(var i=e.eleCaches,a=0;a<i.length;a++){var o=i[a];r.deleteCache(o.key,o.level)}e8(i),this.getRetiredTextureQueue(t).push(e)},sq.addTexture=function(e,t){var n=this.getTextureQueue(e),r={};return n.push(r),r.eleCaches=[],r.height=e,r.width=Math.max(1024,t),r.usedWidth=0,r.invalidatedWidth=0,r.fullnessChecks=0,r.canvas=this.renderer.makeOffscreenCanvas(r.width,r.height),r.context=r.canvas.getContext("2d"),r},sq.recycleTexture=function(e,t){for(var n=this.getTextureQueue(e),r=this.getRetiredTextureQueue(e),i=0;i<r.length;i++){var a=r[i];if(a.width>=t)return a.retired=!1,a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,e8(a.eleCaches),a.context.setTransform(1,0,0,1,0,0),a.context.clearRect(0,0,a.width,a.height),e6(r,a),n.push(a),a}},sq.queueElement=function(e,t){var n=this.getElementQueue(),r=this.getElementKeyToQueue(),i=this.getKey(e),a=r[i];if(a)a.level=Math.max(a.level,t),a.eles.merge(e),a.reqs++,n.updateItem(a);else{var o={eles:e.spawn().merge(e),level:t,reqs:1,key:i};n.push(o),r[i]=o}},sq.dequeue=function(e){for(var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=[],i=this.lookup,a=0;a<1;a++)if(t.size()>0){var o=t.pop(),s=o.key,l=o.eles[0],u=i.hasCache(l,o.level);if(n[s]=null,u)continue;r.push(o);var c=this.getBoundingBox(l);this.getElement(l,c,e,o.level,sV.dequeue)}else break;return r},sq.removeFromQueue=function(e){var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=this.getKey(e),i=n[r];null!=i&&(1===i.eles.length?(i.reqs=eU,t.updateItem(i),t.pop(),n[r]=null):i.eles.unmerge(e))},sq.onDequeue=function(e){this.onDequeues.push(e)},sq.offDequeue=function(e){e6(this.onDequeues,e)},sq.setupDequeueing=sR({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n<e.onDequeues.length;n++)(0,e.onDequeues[n])(t)},shouldRedraw:function(e,t,n,r){for(var i=0;i<t.length;i++){for(var a=t[i].eles,o=0;o<a.length;o++)if(tj(a[o].boundingBox(),r))return!0}return!1},priority:function(e){return e.renderer.beforeRenderPriorities.eleTxrDeq}});var sX=function(e){var t=this,n=t.renderer=e,r=n.cy;t.layersByLevel={},t.firstGet=!0,t.lastInvalidationTime=eN()-500,t.skipping=!1,t.eleTxrDeqs=r.collection(),t.scheduleElementRefinement=eB(function(){t.refineElementTextures(t.eleTxrDeqs),t.eleTxrDeqs.unmerge(t.eleTxrDeqs)},50),n.beforeRender(function(e,n){n-t.lastInvalidationTime<=250?t.skipping=!0:t.skipping=!1},n.beforeRenderPriorities.lyrTxrSkip);t.layersQueue=new tu(function(e,t){return t.reqs-e.reqs}),t.setupDequeueing()},sY=sX.prototype,sW=0,sH=0x1fffffffffffff;sY.makeLayer=function(e,t){var n=Math.pow(2,t),r=Math.ceil(e.w*n),i=Math.ceil(e.h*n),a=this.renderer.makeOffscreenCanvas(r,i),o={id:sW=++sW%sH,bb:e,level:t,width:r,height:i,canvas:a,context:a.getContext("2d"),eles:[],elesQueue:[],reqs:0},s=o.context,l=-o.bb.x1,u=-o.bb.y1;return s.scale(n,n),s.translate(l,u),o},sY.getLayers=function(e,t,n){var r,i,a=this,o=a.renderer.cy.zoom(),s=a.firstGet;if(a.firstGet=!1,null==n){if((n=Math.ceil(tS(o*t)))<-4)n=-4;else if(o>=3.99||n>2)return null}a.validateLayersElesOrdering(n,e);var l=a.layersByLevel,u=Math.pow(2,n),c=l[n]=l[n]||[],h=a.levelIsComplete(n,e);if(h)return c;!function(){var t=function(t){if(a.validateLayersElesOrdering(t,e),a.levelIsComplete(t,e))return i=l[t],!0},r=function(e){if(!i)for(var r=n+e;-4<=r&&r<=2&&!t(r);r+=e);};r(1),r(-1);for(var o=c.length-1;o>=0;o--){var s=c[o];s.invalid&&e6(c,s)}}();var d=function(){if(!r){r=tI();for(var t=0;t<e.length;t++)tL(r,e[t].boundingBox())}return r};if(a.skipping&&!s)return null;for(var p=null,f=e.length/1,g=!s,v=0;v<e.length;v++){var y=e[v],b=y._private.rscratch,x=b.imgLayerCaches=b.imgLayerCaches||{},w=x[n];if(w){p=w;continue}if((!p||p.eles.length>=f||!tX(p.bb,y.boundingBox()))&&!(p=function(e){var t=(e=e||{}).after;if(d(),r.w*u*(r.h*u)>16e6)return null;var i=a.makeLayer(r,n);if(null!=t){var o=c.indexOf(t)+1;c.splice(o,0,i)}else(void 0===e.insert||e.insert)&&c.unshift(i);return i}({insert:!0,after:p})))return null;i||g?a.queueLayer(p,y):a.drawEleInLayer(p,y,n,t),p.eles.push(y),x[n]=p}return i?i:g?null:c},sY.getEleLevelForLayerLevel=function(e,t){return e},sY.drawEleInLayer=function(e,t,n,r){var i=this.renderer,a=e.context,o=t.boundingBox();if(0!==o.w&&0!==o.h&&!!t.visible())n=this.getEleLevelForLayerLevel(n,r),i.setImgSmoothing(a,!1),i.drawCachedElement(a,t,null,null,n,!0),i.setImgSmoothing(a,!0)},sY.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||0===n.length)return!1;for(var r=0,i=0;i<n.length;i++){var a=n[i];if(a.reqs>0||a.invalid)return!1;r+=a.eles.length}return r===t.length&&!0},sY.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(!!n)for(var r=0;r<n.length;r++){for(var i=n[r],a=-1,o=0;o<t.length;o++)if(i.eles[0]===t[o]){a=o;break}if(a<0){this.invalidateLayer(i);continue}for(var s=a,o=0;o<i.eles.length;o++)if(i.eles[o]!==t[s+o]){this.invalidateLayer(i);break}}},sY.updateElementsInLayers=function(e,t){for(var n=N(e[0]),r=0;r<e.length;r++){for(var i=n?null:e[r],a=n?e[r]:e[r].ele,o=a._private.rscratch,s=o.imgLayerCaches=o.imgLayerCaches||{},l=-4;l<=2;l++){var u=s[l];if(!!u&&(!i||this.getEleLevelForLayerLevel(u.level)===i.level))t(u,a,i)}}},sY.haveLayers=function(){for(var e=!1,t=-4;t<=2;t++){var n=this.layersByLevel[t];if(n&&n.length>0){e=!0;break}}return e},sY.invalidateElements=function(e){var t=this;if(0===e.length)return;if(t.lastInvalidationTime=eN(),0!==e.length&&!!t.haveLayers())t.updateElementsInLayers(e,function(e,n,r){t.invalidateLayer(e)})},sY.invalidateLayer=function(e){if(this.lastInvalidationTime=eN(),!e.invalid){var t=e.level,n=e.eles;e6(this.layersByLevel[t],e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var r=0;r<n.length;r++){var i=n[r]._private.rscratch.imgLayerCaches;i&&(i[t]=null)}}},sY.refineElementTextures=function(e){var t=this;t.updateElementsInLayers(e,function(e,n,r){var i=e.replacement;if(!i&&((i=e.replacement=t.makeLayer(e.bb,e.level)).replaces=e,i.eles=e.eles),!i.reqs)for(var a=0;a<i.eles.length;a++)t.queueLayer(i,i.eles[a])})},sY.enqueueElementRefinement=function(e){this.eleTxrDeqs.merge(e),this.scheduleElementRefinement()},sY.queueLayer=function(e,t){var n=this.layersQueue,r=e.elesQueue,i=r.hasId=r.hasId||{};if(!e.replacement){if(t){if(i[t.id()])return;r.push(t),i[t.id()]=!0}e.reqs?(e.reqs++,n.updateItem(e)):(e.reqs=1,n.push(e))}},sY.dequeue=function(e){for(var t=this.layersQueue,n=[],r=0;r<1&&0!==t.size();){;var i=t.peek();if(i.replacement||i.replaces&&i!==i.replaces.replacement||i.invalid){t.pop();continue}var a=i.elesQueue.shift();a&&(this.drawEleInLayer(i,a,i.level,e),r++),0===n.length&&n.push(!0),0===i.elesQueue.length&&(t.pop(),i.reqs=0,i.replaces&&this.applyLayerReplacement(i),this.requestRedraw())}return n},sY.applyLayerReplacement=function(e){var t=this.layersByLevel[e.level],n=e.replaces,r=t.indexOf(n);if(!(r<0)&&!n.invalid){t[r]=e;for(var i=0;i<e.eles.length;i++){var a=e.eles[i]._private,o=a.imgLayerCaches=a.imgLayerCaches||{};o&&(o[e.level]=e)}this.requestRedraw()}},sY.requestRedraw=eB(function(){var e=this.renderer;e.redrawHint("eles",!0),e.redrawHint("drag",!0),e.redraw()},100),sY.setupDequeueing=sR({deqRedrawThreshold:50,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t){return e.dequeue(t)},onDeqd:eQ,shouldRedraw:eK,priority:function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq}});var sG={};function sU(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.lineTo(r.x,r.y)}}function sK(e,t,n){for(var r,i=0;i<t.length;i++){var a=t[i];0===i&&(r=a),e.lineTo(a.x,a.y)}e.quadraticCurveTo(n.x,n.y,r.x,r.y)}function sZ(e,t,n){e.beginPath&&e.beginPath();for(var r=0;r<t.length;r++){var i=t[r];e.lineTo(i.x,i.y)}var a=n[0];e.moveTo(a.x,a.y);for(var r=1;r<n.length;r++){var i=n[r];e.lineTo(i.x,i.y)}e.closePath&&e.closePath()}function s$(e,t,n,r,i){e.beginPath&&e.beginPath(),e.arc(n,r,i,0,2*Math.PI,!1);var a=t[0];e.moveTo(a.x,a.y);for(var o=0;o<t.length;o++){var s=t[o];e.lineTo(s.x,s.y)}e.closePath&&e.closePath()}function sQ(e,t,n,r){e.arc(t,n,r,0,2*Math.PI,!1)}sG.arrowShapeImpl=function(e){return(y||(y={polygon:sU,"triangle-backcurve":sK,"triangle-tee":sZ,"circle-triangle":s$,"triangle-cross":sZ,circle:sQ}))[e]};var sJ={};sJ.drawElement=function(e,t,n,r,i,a){t.isNode()?this.drawNode(e,t,n,r,i,a):this.drawEdge(e,t,n,r,i,a)},sJ.drawElementOverlay=function(e,t){t.isNode()?this.drawNodeOverlay(e,t):this.drawEdgeOverlay(e,t)},sJ.drawElementUnderlay=function(e,t){t.isNode()?this.drawNodeUnderlay(e,t):this.drawEdgeUnderlay(e,t)},sJ.drawCachedElementPortion=function(e,t,n,r,i,a,o,s){var l=n.getBoundingBox(t);if(0!==l.w&&0!==l.h){var u=n.getElement(t,l,r,i,a);if(null!=u){var c,h,d,p,f,g,v=s(this,t);if(0===v)return;var y=o(this,t),b=l.x1,x=l.y1,w=l.w,E=l.h;if(0!==y){var k=n.getRotationPoint(t);d=k.x,p=k.y,e.translate(d,p),e.rotate(y),!(f=this.getImgSmoothing(e))&&this.setImgSmoothing(e,!0);var C=n.getRotationOffset(t);c=C.x,h=C.y}else c=b,h=x;1!==v&&(g=e.globalAlpha,e.globalAlpha=g*v),e.drawImage(u.texture.canvas,u.x,0,u.width,u.height,c,h,w,E),1!==v&&(e.globalAlpha=g),0!==y&&(e.rotate(-y),e.translate(-d,-p),!f&&this.setImgSmoothing(e,!1))}else n.drawElement(e,t)}};var s0=function(){return 0},s1=function(e,t){return e.getTextAngle(t,null)},s2=function(e,t){return e.getTextAngle(t,"source")},s5=function(e,t){return e.getTextAngle(t,"target")},s3=function(e,t){return t.effectiveOpacity()},s4=function(e,t){return t.pstyle("text-opacity").pfValue*t.effectiveOpacity()};sJ.drawCachedElement=function(e,t,n,r,i,a){var o=this.data,s=o.eleTxrCache,l=o.lblTxrCache,u=o.slbTxrCache,c=o.tlbTxrCache,h=t.boundingBox(),d=!0===a?s.reasons.highQuality:null;if(0!==h.w&&0!==h.h&&!!t.visible()){if(!r||tj(h,r)){var p=t.isEdge(),f=t.element()._private.rscratch.badLine;this.drawElementUnderlay(e,t),this.drawCachedElementPortion(e,t,s,n,i,d,s0,s3),(!p||!f)&&this.drawCachedElementPortion(e,t,l,n,i,d,s1,s4),p&&!f&&(this.drawCachedElementPortion(e,t,u,n,i,d,s2,s4),this.drawCachedElementPortion(e,t,c,n,i,d,s5,s4)),this.drawElementOverlay(e,t)}}},sJ.drawElements=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];this.drawElement(e,r)}},sJ.drawCachedElements=function(e,t,n,r){for(var i=0;i<t.length;i++){var a=t[i];this.drawCachedElement(e,a,n,r)}},sJ.drawCachedNodes=function(e,t,n,r){for(var i=0;i<t.length;i++){var a=t[i];if(!!a.isNode())this.drawCachedElement(e,a,n,r)}},sJ.drawLayeredElements=function(e,t,n,r){var i=this.data.lyrTxrCache.getLayers(t,n);if(i)for(var a=0;a<i.length;a++){var o=i[a],s=o.bb;if(0!==s.w&&0!==s.h)e.drawImage(o.canvas,s.x1,s.y1,s.w,s.h)}else this.drawCachedElements(e,t,n,r)};var s9={};s9.drawEdge=function(e,t,n){var r,i=!(arguments.length>3)||void 0===arguments[3]||arguments[3],a=!(arguments.length>4)||void 0===arguments[4]||arguments[4],o=!(arguments.length>5)||void 0===arguments[5]||arguments[5],s=this,l=t._private.rscratch;if(!(o&&!t.visible()||l.badLine||null==l.allpts||isNaN(l.allpts[0]))){n&&(r=n,e.translate(-r.x1,-r.y1));var u=o?t.pstyle("opacity").value:1,c=o?t.pstyle("line-opacity").value:1,h=t.pstyle("curve-style").value,d=t.pstyle("line-style").value,p=t.pstyle("width").pfValue,f=t.pstyle("line-cap").value,g=t.pstyle("line-outline-width").value,v=t.pstyle("line-outline-color").value,y=u*c,b=u*c,x=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;"straight-triangle"===h?(s.eleStrokeStyle(e,t,n),s.drawEdgeTrianglePath(t,e,l.allpts)):(e.lineWidth=p,e.lineCap=f,s.eleStrokeStyle(e,t,n),s.drawEdgePath(t,e,l.allpts,d),e.lineCap="butt")},w=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:b;s.drawArrowheads(e,t,n)};if(e.lineJoin="round","yes"===t.pstyle("ghost").value){var E=t.pstyle("ghost-offset-x").pfValue,k=t.pstyle("ghost-offset-y").pfValue,C=y*t.pstyle("ghost-opacity").value;e.translate(E,k),x(C),w(C),e.translate(-E,-k)}else!function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;if(e.lineWidth=p+g,e.lineCap=f,g>0)s.colorStrokeStyle(e,v[0],v[1],v[2],n);else{e.lineCap="butt";return}"straight-triangle"===h?s.drawEdgeTrianglePath(t,e,l.allpts):(s.drawEdgePath(t,e,l.allpts,d),e.lineCap="butt")}();!function(){if(!!a)s.drawEdgeUnderlay(e,t)}(),x(),w(),!function(){if(!!a)s.drawEdgeOverlay(e,t)}(),s.drawElementText(e,t,null,i),n&&e.translate(r.x1,r.y1)}};var s6=function(e){if(!["overlay","underlay"].includes(e))throw Error("Invalid state");return function(t,n){if(!n.visible())return;var r=n.pstyle("".concat(e,"-opacity")).value;if(0!==r){var i=this.usePaths(),a=n._private.rscratch,o=n.pstyle("".concat(e,"-padding")).pfValue,s=n.pstyle("".concat(e,"-color")).value;t.lineWidth=2*o,"self"!==a.edgeType||i?t.lineCap="round":t.lineCap="butt",this.colorStrokeStyle(t,s[0],s[1],s[2],r),this.drawEdgePath(n,t,a.allpts,"solid")}}};s9.drawEdgeOverlay=s6("overlay"),s9.drawEdgeUnderlay=s6("underlay"),s9.drawEdgePath=function(e,t,n,r){var i=e._private.rscratch,a=t,o=!1,s=this.usePaths(),l=e.pstyle("line-dash-pattern").pfValue,u=e.pstyle("line-dash-offset").pfValue;if(s){var c=n.join("$");i.pathCacheKey&&i.pathCacheKey===c?(f=t=i.pathCache,o=!0):(f=t=new Path2D,i.pathCacheKey=c,i.pathCache=f)}if(a.setLineDash)switch(r){case"dotted":a.setLineDash([1,1]);break;case"dashed":a.setLineDash(l),a.lineDashOffset=u;break;case"solid":a.setLineDash([])}if(!o&&!i.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var d=2;d+3<n.length;d+=4)t.quadraticCurveTo(n[d],n[d+1],n[d+2],n[d+3]);break;case"straight":case"haystack":for(var p=2;p+1<n.length;p+=2)t.lineTo(n[p],n[p+1]);break;case"segments":if(i.isRound){var f,g,v=h(i.roundCorners);try{for(v.s();!(g=v.n()).done;){var y=g.value;sf(t,y)}}catch(e){v.e(e)}finally{v.f()}t.lineTo(n[n.length-2],n[n.length-1])}else for(var b=2;b+1<n.length;b+=2)t.lineTo(n[b],n[b+1])}t=a,s?t.stroke(f):t.stroke(),t.setLineDash&&t.setLineDash([])},s9.drawEdgeTrianglePath=function(e,t,n){t.fillStyle=t.strokeStyle;for(var r=e.pstyle("width").pfValue,i=0;i+1<n.length;i+=2){var a=[n[i+2]-n[i],n[i+3]-n[i+1]],o=Math.sqrt(a[0]*a[0]+a[1]*a[1]),s=[a[1]/o,-a[0]/o],l=[s[0]*r/2,s[1]*r/2];t.beginPath(),t.moveTo(n[i]-l[0],n[i+1]-l[1]),t.lineTo(n[i]+l[0],n[i+1]+l[1]),t.lineTo(n[i+2],n[i+3]),t.closePath(),t.fill()}},s9.drawArrowheads=function(e,t,n){var r=t._private.rscratch,i="haystack"===r.edgeType;!i&&this.drawArrowhead(e,t,"source",r.arrowStartX,r.arrowStartY,r.srcArrowAngle,n),this.drawArrowhead(e,t,"mid-target",r.midX,r.midY,r.midtgtArrowAngle,n),this.drawArrowhead(e,t,"mid-source",r.midX,r.midY,r.midsrcArrowAngle,n),!i&&this.drawArrowhead(e,t,"target",r.arrowEndX,r.arrowEndY,r.tgtArrowAngle,n)},s9.drawArrowhead=function(e,t,n,r,i,a,o){if(isNaN(r)||null==r||isNaN(i)||null==i||isNaN(a)||null==a)return;var s=t.pstyle(n+"-arrow-shape").value;if("none"!==s){var l="hollow"===t.pstyle(n+"-arrow-fill").value?"both":"filled",u=t.pstyle(n+"-arrow-fill").value,c=t.pstyle("width").pfValue,h=t.pstyle(n+"-arrow-width"),d="match-line"===h.value?c:h.pfValue;"%"===h.units&&(d*=c);var p=t.pstyle("opacity").value;void 0===o&&(o=p);var f=e.globalCompositeOperation;(1!==o||"hollow"===u)&&(e.globalCompositeOperation="destination-out",this.colorFillStyle(e,255,255,255,1),this.colorStrokeStyle(e,255,255,255,1),this.drawArrowShape(t,e,l,c,s,d,r,i,a),e.globalCompositeOperation=f);var g=t.pstyle(n+"-arrow-color").value;this.colorFillStyle(e,g[0],g[1],g[2],o),this.colorStrokeStyle(e,g[0],g[1],g[2],o),this.drawArrowShape(t,e,u,c,s,d,r,i,a)}},s9.drawArrowShape=function(e,t,n,r,i,a,o,s,l){var u,c=this.usePaths()&&"triangle-cross"!==i,h=!1,d=t,p=e.pstyle("arrow-scale").value,f=this.getArrowWidth(r,p),g=this.arrowShapes[i];if(c){var v=this.arrowPathCache=this.arrowPathCache||[],y=eq(i),b=v[y];null!=b?(u=t=b,h=!0):(u=t=new Path2D,v[y]=u)}!h&&(t.beginPath&&t.beginPath(),c?g.draw(t,1,0,{x:0,y:0},1):g.draw(t,f,l,{x:o,y:s},r),t.closePath&&t.closePath()),t=d,c&&(t.translate(o,s),t.rotate(l),t.scale(f,f)),("filled"===n||"both"===n)&&(c?t.fill(u):t.fill()),("hollow"===n||"both"===n)&&(t.lineWidth=a/(c?f:1),t.lineJoin="miter",c?t.stroke(u):t.stroke()),c&&(t.scale(1/f,1/f),t.rotate(-l),t.translate(-o,-s))};var s8={};s8.safeDrawImage=function(e,t,n,r,i,a,o,s,l,u){if(!(i<=0)&&!(a<=0)&&!(l<=0)&&!(u<=0))try{e.drawImage(t,n,r,i,a,o,s,l,u)}catch(e){e1(e)}},s8.drawInscribedImage=function(e,t,n,r,i){var a=n.position(),o=a.x,s=a.y,l=n.cy().style(),u=l.getIndexedStyle.bind(l),c=u(n,"background-fit","value",r),h=u(n,"background-repeat","value",r),d=n.width(),p=n.height(),f=2*n.padding(),g=d+("inner"===u(n,"background-width-relative-to","value",r)?0:f),v=p+("inner"===u(n,"background-height-relative-to","value",r)?0:f),y=n._private.rscratch,b="node"===u(n,"background-clip","value",r),x=u(n,"background-image-opacity","value",r)*i,w=u(n,"background-image-smoothing","value",r),E=n.pstyle("corner-radius").value;"auto"!==E&&(E=n.pstyle("corner-radius").pfValue);var k=t.width||t.cachedW,C=t.height||t.cachedH;(null==k||null==C)&&(document.body.appendChild(t),k=t.cachedW=t.width||t.offsetWidth,C=t.cachedH=t.height||t.offsetHeight,document.body.removeChild(t));var S=k,D=C;if("auto"!==u(n,"background-width","value",r)&&(S="%"===u(n,"background-width","units",r)?u(n,"background-width","pfValue",r)*g:u(n,"background-width","pfValue",r)),"auto"!==u(n,"background-height","value",r)&&(D="%"===u(n,"background-height","units",r)?u(n,"background-height","pfValue",r)*v:u(n,"background-height","pfValue",r)),0!==S&&0!==D){if("contain"===c){var T=Math.min(g/S,v/D);S*=T,D*=T}else if("cover"===c){var T=Math.max(g/S,v/D);S*=T,D*=T}var P=o-g/2,_=u(n,"background-position-x","units",r),M=u(n,"background-position-x","pfValue",r);"%"===_?P+=(g-S)*M:P+=M;var B=u(n,"background-offset-x","units",r),A=u(n,"background-offset-x","pfValue",r);"%"===B?P+=(g-S)*A:P+=A;var N=s-v/2,I=u(n,"background-position-y","units",r),O=u(n,"background-position-y","pfValue",r);"%"===I?N+=(v-D)*O:N+=O;var L=u(n,"background-offset-y","units",r),R=u(n,"background-offset-y","pfValue",r);"%"===L?N+=(v-D)*R:N+=R,y.pathCache&&(P-=o,N-=s,o=0,s=0);var z=e.globalAlpha;e.globalAlpha=x;var V=this.getImgSmoothing(e),F=!1;if("no"===w&&V?(this.setImgSmoothing(e,!1),F=!0):"yes"===w&&!V&&(this.setImgSmoothing(e,!0),F=!0),"no-repeat"===h)b&&(e.save(),y.pathCache?e.clip(y.pathCache):(this.nodeShapes[this.getNodeShape(n)].draw(e,o,s,g,v,E,y),e.clip())),this.safeDrawImage(e,t,0,0,k,C,P,N,S,D),b&&e.restore();else{var j=e.createPattern(t,h);e.fillStyle=j,this.nodeShapes[this.getNodeShape(n)].draw(e,o,s,g,v,E,y),e.translate(P,N),e.fill(),e.translate(-P,-N)}e.globalAlpha=z,F&&this.setImgSmoothing(e,V)}};var s7={};function le(e,t,n,r,i){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:5,o=arguments.length>6?arguments[6]:void 0;e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.quadraticCurveTo(t+r,n,t+r,n+a),e.lineTo(t+r,n+i-a),e.quadraticCurveTo(t+r,n+i,t+r-a,n+i),e.lineTo(t+a,n+i),e.quadraticCurveTo(t,n+i,t,n+i-a),e.lineTo(t,n+a),e.quadraticCurveTo(t,n,t+a,n),e.closePath(),o?e.stroke():e.fill()}s7.eleTextBiggerThanMin=function(e,t){return!t&&(t=Math.pow(2,Math.ceil(tS(e.cy().zoom()*this.getPixelRatio())))),!(e.pstyle("font-size").pfValue*t<e.pstyle("min-zoomed-font-size").pfValue)&&!0},s7.drawElementText=function(e,t,n,r,i){var a,o=!(arguments.length>5)||void 0===arguments[5]||arguments[5];if(null==r){if(o&&!this.eleTextBiggerThanMin(t))return}else if(!1===r)return;if(t.isNode()){var s=t.pstyle("label");if(!s||!s.value)return;var l=this.getLabelJustification(t);e.textAlign=l,e.textBaseline="bottom"}else{var u=t.element()._private.rscratch.badLine,c=t.pstyle("label"),h=t.pstyle("source-label"),d=t.pstyle("target-label");if(u||(!c||!c.value)&&(!h||!h.value)&&(!d||!d.value))return;e.textAlign="center",e.textBaseline="bottom"}var p=!n;n&&(a=n,e.translate(-a.x1,-a.y1)),null==i?(this.drawText(e,t,null,p,o),t.isEdge()&&(this.drawText(e,t,"source",p,o),this.drawText(e,t,"target",p,o))):this.drawText(e,t,i,p,o),n&&e.translate(a.x1,a.y1)},s7.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n<this.fontCaches.length;n++)if((t=this.fontCaches[n]).context===e)return t;return t={context:e},this.fontCaches.push(t),t},s7.setupTextStyle=function(e,t){var n=!(arguments.length>2)||void 0===arguments[2]||arguments[2],r=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue+"px",a=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,s=n?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,l=t.pstyle("text-outline-opacity").value*s,u=t.pstyle("color").value,c=t.pstyle("text-outline-color").value;e.font=r+" "+o+" "+i+" "+a,e.lineJoin="round",this.colorFillStyle(e,u[0],u[1],u[2],s),this.colorStrokeStyle(e,c[0],c[1],c[2],l)},s7.getTextAngle=function(e,t){var n,r=e._private.rscratch,i=t?t+"-":"",a=e.pstyle(i+"text-rotation"),o=te(r,"labelAngle",t);return n="autorotate"===a.strValue?e.isEdge()?o:0:"none"===a.strValue?0:a.pfValue},s7.drawText=function(e,t,n){var r=!(arguments.length>3)||void 0===arguments[3]||arguments[3],i=!(arguments.length>4)||void 0===arguments[4]||arguments[4],a=t._private.rscratch,o=i?t.effectiveOpacity():1;if(!i||0!==o&&0!==t.pstyle("text-opacity").value){"main"===n&&(n=null);var s=te(a,"labelX",n),l=te(a,"labelY",n),u=this.getLabelText(t,n);if(null!=u&&""!==u&&!isNaN(s)&&!isNaN(l)){this.setupTextStyle(e,t,i);var c,h,d,p=n?n+"-":"",f=te(a,"labelWidth",n),g=te(a,"labelHeight",n),v=t.pstyle(p+"text-margin-x").pfValue,y=t.pstyle(p+"text-margin-y").pfValue,b=t.isEdge(),x=t.pstyle("text-halign").value,w=t.pstyle("text-valign").value;switch(b&&(x="center",w="center"),s+=v,l+=y,0!==(d=r?this.getTextAngle(t,n):0)&&(c=s,h=l,e.translate(c,h),e.rotate(d),s=0,l=0),w){case"top":break;case"center":l+=g/2;break;case"bottom":l+=g}var E=t.pstyle("text-background-opacity").value,k=t.pstyle("text-border-opacity").value,C=t.pstyle("text-border-width").pfValue,S=t.pstyle("text-background-padding").pfValue,D=0===t.pstyle("text-background-shape").strValue.indexOf("round");if(E>0||C>0&&k>0){var T=s-S;switch(x){case"left":T-=f;break;case"center":T-=f/2}var P=l-g-S,_=f+2*S,M=g+2*S;if(E>0){var B=e.fillStyle,A=t.pstyle("text-background-color").value;e.fillStyle="rgba("+A[0]+","+A[1]+","+A[2]+","+E*o+")",D?le(e,T,P,_,M,2):e.fillRect(T,P,_,M),e.fillStyle=B}if(C>0&&k>0){var N=e.strokeStyle,I=e.lineWidth,O=t.pstyle("text-border-color").value,L=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+O[0]+","+O[1]+","+O[2]+","+k*o+")",e.lineWidth=C,e.setLineDash)switch(L){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=C/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(D?le(e,T,P,_,M,2,"stroke"):e.strokeRect(T,P,_,M),"double"===L){var R=C/2;D?le(e,T+R,P+R,_-2*R,M-2*R,2,"stroke"):e.strokeRect(T+R,P+R,_-2*R,M-2*R)}e.setLineDash&&e.setLineDash([]),e.lineWidth=I,e.strokeStyle=N}}var z=2*t.pstyle("text-outline-width").pfValue;if(z>0&&(e.lineWidth=z),"wrap"===t.pstyle("text-wrap").value){var V=te(a,"labelWrapCachedLines",n),F=te(a,"labelLineHeight",n),j=f/2,q=this.getLabelJustification(t);switch("auto"===q||("left"===x?"left"===q?s+=-f:"center"===q&&(s+=-j):"center"===x?"left"===q?s+=-j:"right"===q&&(s+=j):"right"===x&&("center"===q?s+=j:"right"===q&&(s+=f))),w){case"top":l-=(V.length-1)*F;break;case"center":case"bottom":l-=(V.length-1)*F}for(var X=0;X<V.length;X++)z>0&&e.strokeText(V[X],s,l),e.fillText(V[X],s,l),l+=F}else z>0&&e.strokeText(u,s,l),e.fillText(u,s,l);0!==d&&(e.rotate(-d),e.translate(-c,-h))}}};var lt={};lt.drawNode=function(e,t,n){var r,i,a,o,s=!(arguments.length>3)||void 0===arguments[3]||arguments[3],l=!(arguments.length>4)||void 0===arguments[4]||arguments[4],u=!(arguments.length>5)||void 0===arguments[5]||arguments[5],c=this,h=t._private,d=h.rscratch,p=t.position();if(!!M(p.x)&&!!M(p.y)&&(!u||!!t.visible())){var f=u?t.effectiveOpacity():1,g=c.usePaths(),v=!1,y=t.padding();r=t.width()+2*y,i=t.height()+2*y,n&&(o=n,e.translate(-o.x1,-o.y1));for(var b=t.pstyle("background-image").value,x=Array(b.length),w=Array(b.length),E=0,k=0;k<b.length;k++){var C=b[k];if(x[k]=null!=C&&"none"!==C){var S=t.cy().style().getIndexedStyle(t,"background-image-crossorigin","value",k);E++,w[k]=c.getCachedImage(C,S,function(){h.backgroundTimestamp=Date.now(),t.emitAndNotify("background")})}}var D=t.pstyle("background-blacken").value,T=t.pstyle("border-width").pfValue,P=t.pstyle("background-opacity").value*f,_=t.pstyle("border-color").value,B=t.pstyle("border-style").value,A=t.pstyle("border-join").value,N=t.pstyle("border-cap").value,I=t.pstyle("border-position").value,O=t.pstyle("border-dash-pattern").pfValue,L=t.pstyle("border-dash-offset").pfValue,R=t.pstyle("border-opacity").value*f,z=t.pstyle("outline-width").pfValue,V=t.pstyle("outline-color").value,F=t.pstyle("outline-style").value,j=t.pstyle("outline-opacity").value*f,q=t.pstyle("outline-offset").value,X=t.pstyle("corner-radius").value;"auto"!==X&&(X=t.pstyle("corner-radius").pfValue);var Y=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:P;c.eleFillStyle(e,t,n)},W=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:R;c.colorStrokeStyle(e,_[0],_[1],_[2],t)},H=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:j;c.colorStrokeStyle(e,V[0],V[1],V[2],t)},G=function(e,t,n,r){var i,a=c.nodePathCache=c.nodePathCache||[],o=eX("polygon"===n?n+","+r.join(","):n,""+t,""+e,""+X),s=a[o],l=!1;return null!=s?(i=s,l=!0,d.pathCache=i):(i=new Path2D,a[o]=d.pathCache=i),{path:i,cacheHit:l}},U=t.pstyle("shape").strValue,K=t.pstyle("shape-polygon-points").pfValue;if(g){e.translate(p.x,p.y);var Z=G(r,i,U,K);a=Z.path,v=Z.cacheHit}var $=function(){if(!v){var n=p;g&&(n={x:0,y:0}),c.nodeShapes[c.getNodeShape(t)].draw(a||e,n.x,n.y,r,i,X,d)}g?e.fill(a):e.fill()},Q=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,r=!(arguments.length>1)||void 0===arguments[1]||arguments[1],i=h.backgrounding,a=0,o=0;o<w.length;o++){var s=t.cy().style().getIndexedStyle(t,"background-image-containment","value",o);if(r&&"over"===s||!r&&"inside"===s){a++;continue}x[o]&&w[o].complete&&!w[o].error&&(a++,c.drawInscribedImage(e,w[o],t,o,n))}h.backgrounding=a!==E,i!==h.backgrounding&&t.updateStyle(!1)},J=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f;c.hasPie(t)&&(c.drawPie(e,t,a),n&&!g&&c.nodeShapes[c.getNodeShape(t)].draw(e,p.x,p.y,r,i,X,d))},ee=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,n=D>0?0:255;0!==D&&(c.colorFillStyle(e,n,n,n,(D>0?D:-D)*t),g?e.fill(a):e.fill())},et=function(){if(T>0){if(e.lineWidth=T,e.lineCap=N,e.lineJoin=A,e.setLineDash)switch(B){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash(O),e.lineDashOffset=L;break;case"solid":case"double":e.setLineDash([])}if("center"!==I){if(e.save(),e.lineWidth*=2,"inside"===I)g?e.clip(a):e.clip();else{var t=new Path2D;t.rect(-r/2-T,-i/2-T,r+2*T,i+2*T),t.addPath(a),e.clip(t,"evenodd")}g?e.stroke(a):e.stroke(),e.restore()}else g?e.stroke(a):e.stroke();if("double"===B){e.lineWidth=T/3;var n=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",g?e.stroke(a):e.stroke(),e.globalCompositeOperation=n}e.setLineDash&&e.setLineDash([])}},en=function(){if(z>0){if(e.lineWidth=z,e.lineCap="butt",e.setLineDash)switch(F){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}var n=p;g&&(n={x:0,y:0});var a=c.getNodeShape(t),o=T;"inside"===I&&(o=0),"outside"===I&&(o*=2);var s=(r+o+(z+q))/r,l=(i+o+(z+q))/i,u=r*s,h=i*l,d=c.nodeShapes[a].points;if(g&&(S=G(u,h,a,d).path),"ellipse"===a)c.drawEllipsePath(S||e,n.x,n.y,u,h);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(a)){var f=0,v=0,y=0;"round-diamond"===a?f=(o+q+z)*1.4:"round-heptagon"===a?(f=(o+q+z)*1.075,y=-(o/2+q+z)/35):"round-hexagon"===a?f=(o+q+z)*1.12:"round-pentagon"===a?(f=(o+q+z)*1.13,y=-(o/2+q+z)/15):"round-tag"===a?(f=(o+q+z)*1.12,v=(o/2+z+q)*.07):"round-triangle"===a&&(f=Math.PI/2*(o+q+z),y=-(o+q/2+z)/Math.PI),0!==f&&(s=(r+f)/r,u=r*s,!["round-hexagon","round-tag"].includes(a)&&(l=(i+f)/i,h=i*l)),X="auto"===X?ni(u,h):X;for(var b=u/2,x=h/2,w=X+(o+z+q)/2,E=Array(d.length/2),k=Array(d.length/2),C=0;C<d.length/2;C++)E[C]={x:n.x+v+b*d[2*C],y:n.y+y+x*d[2*C+1]};var S,D,P,_,M,B=E.length;for(D=0,P=E[B-1];D<B;D++)_=E[D%B],M=E[(D+1)%B],k[D]=sg(P,_,M,w),P=_,_=M;c.drawRoundPolygonPath(S||e,n.x+v,n.y+y,r*s,i*l,d,k)}else["roundrectangle","round-rectangle"].includes(a)?(X="auto"===X?nr(u,h):X,c.drawRoundRectanglePath(S||e,n.x,n.y,u,h,X+(o+z+q)/2)):["cutrectangle","cut-rectangle"].includes(a)?(X="auto"===X?na():X,c.drawCutRectanglePath(S||e,n.x,n.y,u,h,null,X+(o+z+q)/4)):["bottomroundrectangle","bottom-round-rectangle"].includes(a)?(X="auto"===X?nr(u,h):X,c.drawBottomRoundRectanglePath(S||e,n.x,n.y,u,h,X+(o+z+q)/2)):"barrel"===a?c.drawBarrelPath(S||e,n.x,n.y,u,h):(a.startsWith("polygon")||["rhomboid","right-rhomboid","round-tag","tag","vee"].includes(a)?d=t0(t1(d,(o+z+q)/r)):d=t0(t1(d,-((o+z+q)/r))),c.drawPolygonPath(S||e,n.x,n.y,r,i,d));if(g?e.stroke(S):e.stroke(),"double"===F){e.lineWidth=o/3;var A=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",g?e.stroke(S):e.stroke(),e.globalCompositeOperation=A}e.setLineDash&&e.setLineDash([])}};if("yes"===t.pstyle("ghost").value){var er=t.pstyle("ghost-offset-x").pfValue,ei=t.pstyle("ghost-offset-y").pfValue,ea=t.pstyle("ghost-opacity").value,eo=ea*f;e.translate(er,ei),H(),en(),Y(ea*P),$(),Q(eo,!0),W(ea*R),et(),J(0!==D||0!==T),Q(eo,!1),ee(eo),e.translate(-er,-ei)}g&&e.translate(-p.x,-p.y),l&&c.drawNodeUnderlay(e,t,p,r,i),g&&e.translate(p.x,p.y),H(),en(),Y(),$(),Q(f,!0),W(),et(),J(0!==D||0!==T),Q(f,!1),ee(),g&&e.translate(-p.x,-p.y),c.drawElementText(e,t,null,s),l&&c.drawNodeOverlay(e,t,p,r,i),n&&e.translate(o.x1,o.y1)}};var ln=function(e){if(!["overlay","underlay"].includes(e))throw Error("Invalid state");return function(t,n,r,i,a){if(!!n.visible()){var o=n.pstyle("".concat(e,"-padding")).pfValue,s=n.pstyle("".concat(e,"-opacity")).value,l=n.pstyle("".concat(e,"-color")).value,u=n.pstyle("".concat(e,"-shape")).value,c=n.pstyle("".concat(e,"-corner-radius")).value;if(s>0){if(r=r||n.position(),null==i||null==a){var h=n.padding();i=n.width()+2*h,a=n.height()+2*h}this.colorFillStyle(t,l[0],l[1],l[2],s),this.nodeShapes[u].draw(t,r.x,r.y,i+2*o,a+2*o,c),t.fill()}}}};lt.drawNodeOverlay=ln("overlay"),lt.drawNodeUnderlay=ln("underlay"),lt.hasPie=function(e){return(e=e[0])._private.hasPie},lt.drawPie=function(e,t,n,r){t=t[0],r=r||t.position();var i=t.cy().style(),a=t.pstyle("pie-size"),o=r.x,s=r.y,l=Math.min(t.width(),t.height())/2,u=0;this.usePaths()&&(o=0,s=0),"%"===a.units?l*=a.pfValue:void 0!==a.pfValue&&(l=a.pfValue/2);for(var c=1;c<=i.pieBackgroundN;c++){var h=t.pstyle("pie-"+c+"-background-size").value,d=t.pstyle("pie-"+c+"-background-color").value,p=t.pstyle("pie-"+c+"-background-opacity").value*n,f=h/100;f+u>1&&(f=1-u);var g=1.5*Math.PI+2*Math.PI*u,v=g+2*Math.PI*f;if(0!==h&&!(u>=1)&&!(u+f>1))e.beginPath(),e.moveTo(o,s),e.arc(o,s,l,g,v),e.closePath(),this.colorFillStyle(e,d[0],d[1],d[2],p),e.fill(),u+=f}};var lr={};lr.getPixelRatio=function(){var e=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var t=this.cy.window(),n=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(t.devicePixelRatio||1)/n},lr.paintCache=function(e){for(var t,n=this.paintCaches=this.paintCaches||[],r=!0,i=0;i<n.length;i++)if((t=n[i]).context===e){r=!1;break}return r&&(t={context:e},n.push(t)),t},lr.createGradientStyleFor=function(e,t,n,r,i){var a,o=this.usePaths(),s=n.pstyle(t+"-gradient-stop-colors").value,l=n.pstyle(t+"-gradient-stop-positions").pfValue;if("radial-gradient"===r){if(n.isEdge()){var u=n.sourceEndpoint(),c=n.targetEndpoint(),h=n.midpoint(),d=tT(u,h),p=tT(c,h);a=e.createRadialGradient(h.x,h.y,0,h.x,h.y,Math.max(d,p))}else{var f=o?{x:0,y:0}:n.position(),g=n.paddedWidth(),v=n.paddedHeight();a=e.createRadialGradient(f.x,f.y,0,f.x,f.y,Math.max(g,v))}}else if(n.isEdge()){var y=n.sourceEndpoint(),b=n.targetEndpoint();a=e.createLinearGradient(y.x,y.y,b.x,b.y)}else{var x=o?{x:0,y:0}:n.position(),w=n.paddedWidth(),E=n.paddedHeight(),k=w/2,C=E/2;switch(n.pstyle("background-gradient-direction").value){case"to-bottom":a=e.createLinearGradient(x.x,x.y-C,x.x,x.y+C);break;case"to-top":a=e.createLinearGradient(x.x,x.y+C,x.x,x.y-C);break;case"to-left":a=e.createLinearGradient(x.x+k,x.y,x.x-k,x.y);break;case"to-right":a=e.createLinearGradient(x.x-k,x.y,x.x+k,x.y);break;case"to-bottom-right":case"to-right-bottom":a=e.createLinearGradient(x.x-k,x.y-C,x.x+k,x.y+C);break;case"to-top-right":case"to-right-top":a=e.createLinearGradient(x.x-k,x.y+C,x.x+k,x.y-C);break;case"to-bottom-left":case"to-left-bottom":a=e.createLinearGradient(x.x+k,x.y-C,x.x-k,x.y+C);break;case"to-top-left":case"to-left-top":a=e.createLinearGradient(x.x+k,x.y+C,x.x-k,x.y-C)}}if(!a)return null;for(var S=l.length===s.length,D=s.length,T=0;T<D;T++)a.addColorStop(S?l[T]:T/(D-1),"rgba("+s[T][0]+","+s[T][1]+","+s[T][2]+","+i+")");return a},lr.gradientFillStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"background",t,n,r);if(!i)return null;e.fillStyle=i},lr.colorFillStyle=function(e,t,n,r,i){e.fillStyle="rgba("+t+","+n+","+r+","+i+")"},lr.eleFillStyle=function(e,t,n){var r=t.pstyle("background-fill").value;if("linear-gradient"===r||"radial-gradient"===r)this.gradientFillStyle(e,t,r,n);else{var i=t.pstyle("background-color").value;this.colorFillStyle(e,i[0],i[1],i[2],n)}},lr.gradientStrokeStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"line",t,n,r);if(!i)return null;e.strokeStyle=i},lr.colorStrokeStyle=function(e,t,n,r,i){e.strokeStyle="rgba("+t+","+n+","+r+","+i+")"},lr.eleStrokeStyle=function(e,t,n){var r=t.pstyle("line-fill").value;if("linear-gradient"===r||"radial-gradient"===r)this.gradientStrokeStyle(e,t,r,n);else{var i=t.pstyle("line-color").value;this.colorStrokeStyle(e,i[0],i[1],i[2],n)}},lr.matchCanvasSize=function(e){var t,n=this.data,r=this.findContainerClientCoords(),i=r[2],a=r[3],o=this.getPixelRatio(),s=this.motionBlurPxRatio;(e===this.data.bufferCanvases[this.MOTIONBLUR_BUFFER_NODE]||e===this.data.bufferCanvases[this.MOTIONBLUR_BUFFER_DRAG])&&(o=s);var l=i*o,u=a*o;if(l!==this.canvasWidth||u!==this.canvasHeight){this.fontCaches=null;var c=n.canvasContainer;c.style.width=i+"px",c.style.height=a+"px";for(var h=0;h<this.CANVAS_LAYERS;h++)(t=n.canvases[h]).width=l,t.height=u,t.style.width=i+"px",t.style.height=a+"px";for(var h=0;h<this.BUFFER_COUNT;h++)(t=n.bufferCanvases[h]).width=l,t.height=u,t.style.width=i+"px",t.style.height=a+"px";this.textureMult=1,o<=1&&(t=n.bufferCanvases[this.TEXTURE_BUFFER],this.textureMult=2,t.width=l*this.textureMult,t.height=u*this.textureMult),this.canvasWidth=l,this.canvasHeight=u}},lr.renderTo=function(e,t,n,r){this.render({forcedContext:e,forcedZoom:t,forcedPan:n,drawAllLayers:!0,forcedPxRatio:r})},lr.render=function(e){var t=(e=e||e4()).forcedContext,n=e.drawAllLayers,r=e.drawOnlyNodeLayer,i=e.forcedZoom,a=e.forcedPan,o=this,s=void 0===e.forcedPxRatio?this.getPixelRatio():e.forcedPxRatio,l=o.cy,u=o.data,c=u.canvasNeedsRedraw,h=o.textureOnViewport&&!t&&(o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming),d=void 0!==e.motionBlur?e.motionBlur:o.motionBlur,p=o.motionBlurPxRatio,f=l.hasCompoundNodes(),g=o.hoverData.draggingEles,v=!!o.hoverData.selecting||!!o.touchData.selecting,y=d=d&&!t&&o.motionBlurEnabled&&!v;!t&&(o.prevPxRatio!==s&&(o.invalidateContainerClientCoordsCache(),o.matchCanvasSize(o.container),o.redrawHint("eles",!0),o.redrawHint("drag",!0)),o.prevPxRatio=s),!t&&o.motionBlurTimeout&&clearTimeout(o.motionBlurTimeout),d&&(null==o.mbFrames&&(o.mbFrames=0),o.mbFrames++,o.mbFrames<3&&(y=!1),o.mbFrames>o.minMbLowQualFrames&&(o.motionBlurPxRatio=o.mbPxRBlurry)),o.clearingMotionBlur&&(o.motionBlurPxRatio=1),o.textureDrawLastFrame&&!h&&(c[o.NODE]=!0,c[o.SELECT_BOX]=!0);var b=l.style(),x=l.zoom(),w=void 0!==i?i:x,E=l.pan(),k={x:E.x,y:E.y},C={zoom:x,pan:{x:E.x,y:E.y}},S=o.prevViewport;!(void 0===S||C.zoom!==S.zoom||C.pan.x!==S.pan.x||C.pan.y!==S.pan.y)&&!(g&&!f)&&(o.motionBlurPxRatio=1),a&&(k=a),w*=s,k.x*=s,k.y*=s;var D=o.getCachedZSortedEles();function T(e,t,n,r,i){var a=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",o.colorFillStyle(e,255,255,255,o.motionBlurTransparency),e.fillRect(t,n,r,i),e.globalCompositeOperation=a}function P(e,r){var s,l,c,h;o.clearingMotionBlur||e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]&&e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]?(s=k,l=w,c=o.canvasWidth,h=o.canvasHeight):(s={x:E.x*p,y:E.y*p},l=x*p,c=o.canvasWidth*p,h=o.canvasHeight*p),e.setTransform(1,0,0,1,0,0),"motionBlur"===r?T(e,0,0,c,h):!t&&(void 0===r||r)&&e.clearRect(0,0,c,h),!n&&(e.translate(s.x,s.y),e.scale(l,l)),a&&e.translate(a.x,a.y),i&&e.scale(i,i)}if(!h&&(o.textureDrawLastFrame=!1),h){if(o.textureDrawLastFrame=!0,!o.textureCache){o.textureCache={},o.textureCache.bb=l.mutableElements().boundingBox(),o.textureCache.texture=o.data.bufferCanvases[o.TEXTURE_BUFFER];var _=o.data.bufferContexts[o.TEXTURE_BUFFER];_.setTransform(1,0,0,1,0,0),_.clearRect(0,0,o.canvasWidth*o.textureMult,o.canvasHeight*o.textureMult),o.render({forcedContext:_,drawOnlyNodeLayer:!0,forcedPxRatio:s*o.textureMult});var C=o.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:o.canvasWidth,height:o.canvasHeight};C.mpan={x:(0-C.pan.x)/C.zoom,y:(0-C.pan.y)/C.zoom}}c[o.DRAG]=!1,c[o.NODE]=!1;var M=u.contexts[o.NODE],B=o.textureCache.texture,C=o.textureCache.viewport;M.setTransform(1,0,0,1,0,0),d?T(M,0,0,C.width,C.height):M.clearRect(0,0,C.width,C.height);var A=b.core("outside-texture-bg-color").value,N=b.core("outside-texture-bg-opacity").value;o.colorFillStyle(M,A[0],A[1],A[2],N),M.fillRect(0,0,C.width,C.height);var x=l.zoom();P(M,!1),M.clearRect(C.mpan.x,C.mpan.y,C.width/C.zoom/s,C.height/C.zoom/s),M.drawImage(B,C.mpan.x,C.mpan.y,C.width/C.zoom/s,C.height/C.zoom/s)}else o.textureOnViewport&&!t&&(o.textureCache=null);var I=l.extent(),O=o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming||o.hoverData.draggingEles||o.cy.animated(),L=o.hideEdgesOnViewport&&O,R=[];if(R[o.NODE]=!c[o.NODE]&&d&&!o.clearedForMotionBlur[o.NODE]||o.clearingMotionBlur,R[o.NODE]&&(o.clearedForMotionBlur[o.NODE]=!0),R[o.DRAG]=!c[o.DRAG]&&d&&!o.clearedForMotionBlur[o.DRAG]||o.clearingMotionBlur,R[o.DRAG]&&(o.clearedForMotionBlur[o.DRAG]=!0),c[o.NODE]||n||r||R[o.NODE]){var z=d&&!R[o.NODE]&&1!==p,M=t||(z?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]:u.contexts[o.NODE]);P(M,d&&!z?"motionBlur":void 0),L?o.drawCachedNodes(M,D.nondrag,s,I):o.drawLayeredElements(M,D.nondrag,s,I),o.debug&&o.drawDebugPoints(M,D.nondrag),!n&&!d&&(c[o.NODE]=!1)}if(!r&&(c[o.DRAG]||n||R[o.DRAG])){var z=d&&!R[o.DRAG]&&1!==p,M=t||(z?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]:u.contexts[o.DRAG]);P(M,d&&!z?"motionBlur":void 0),L?o.drawCachedNodes(M,D.drag,s,I):o.drawCachedElements(M,D.drag,s,I),o.debug&&o.drawDebugPoints(M,D.drag),!n&&!d&&(c[o.DRAG]=!1)}if(o.showFps||!r&&c[o.SELECT_BOX]&&!n){var M=t||u.contexts[o.SELECT_BOX];if(P(M),1==o.selection[4]&&(o.hoverData.selecting||o.touchData.selecting)){var x=o.cy.zoom(),V=b.core("selection-box-border-width").value/x;M.lineWidth=V,M.fillStyle="rgba("+b.core("selection-box-color").value[0]+","+b.core("selection-box-color").value[1]+","+b.core("selection-box-color").value[2]+","+b.core("selection-box-opacity").value+")",M.fillRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]),V>0&&(M.strokeStyle="rgba("+b.core("selection-box-border-color").value[0]+","+b.core("selection-box-border-color").value[1]+","+b.core("selection-box-border-color").value[2]+","+b.core("selection-box-opacity").value+")",M.strokeRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]))}if(u.bgActivePosistion&&!o.hoverData.selecting){var x=o.cy.zoom(),F=u.bgActivePosistion;M.fillStyle="rgba("+b.core("active-bg-color").value[0]+","+b.core("active-bg-color").value[1]+","+b.core("active-bg-color").value[2]+","+b.core("active-bg-opacity").value+")",M.beginPath(),M.arc(F.x,F.y,b.core("active-bg-size").pfValue/x,0,2*Math.PI),M.fill()}var j=o.lastRedrawTime;if(o.showFps&&j){var q=Math.round(1e3/(j=Math.round(j)));M.setTransform(1,0,0,1,0,0),M.fillStyle="rgba(255, 0, 0, 0.75)",M.strokeStyle="rgba(255, 0, 0, 0.75)",M.lineWidth=1,M.fillText("1 frame = "+j+" ms = "+q+" fps",0,20);M.strokeRect(0,30,250,20),M.fillRect(0,30,250*Math.min(q/60,1),20)}!n&&(c[o.SELECT_BOX]=!1)}if(d&&1!==p){var X=u.contexts[o.NODE],Y=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE],W=u.contexts[o.DRAG],H=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG],G=function(e,t,n){e.setTransform(1,0,0,1,0,0),n||!y?e.clearRect(0,0,o.canvasWidth,o.canvasHeight):T(e,0,0,o.canvasWidth,o.canvasHeight);e.drawImage(t,0,0,o.canvasWidth*p,o.canvasHeight*p,0,0,o.canvasWidth,o.canvasHeight)};(c[o.NODE]||R[o.NODE])&&(G(X,Y,R[o.NODE]),c[o.NODE]=!1),(c[o.DRAG]||R[o.DRAG])&&(G(W,H,R[o.DRAG]),c[o.DRAG]=!1)}o.prevViewport=C,o.clearingMotionBlur&&(o.clearingMotionBlur=!1,o.motionBlurCleared=!0,o.motionBlur=!0),d&&(o.motionBlurTimeout=setTimeout(function(){o.motionBlurTimeout=null,o.clearedForMotionBlur[o.NODE]=!1,o.clearedForMotionBlur[o.DRAG]=!1,o.motionBlur=!1,o.clearingMotionBlur=!h,o.mbFrames=0,c[o.NODE]=!0,c[o.DRAG]=!0,o.redraw()},100)),!t&&l.emit("render")};var li={};li.drawPolygonPath=function(e,t,n,r,i,a){var o=r/2,s=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+o*a[0],n+s*a[1]);for(var l=1;l<a.length/2;l++)e.lineTo(t+o*a[2*l],n+s*a[2*l+1]);e.closePath()},li.drawRoundPolygonPath=function(e,t,n,r,i,a,o){o.forEach(function(t){return sf(e,t)}),e.closePath()},li.drawRoundRectanglePath=function(e,t,n,r,i,a){var o=r/2,s=i/2,l="auto"===a?nr(r,i):Math.min(a,s,o);e.beginPath&&e.beginPath(),e.moveTo(t,n-s),e.arcTo(t+o,n-s,t+o,n,l),e.arcTo(t+o,n+s,t,n+s,l),e.arcTo(t-o,n+s,t-o,n,l),e.arcTo(t-o,n-s,t,n-s,l),e.lineTo(t,n-s),e.closePath()},li.drawBottomRoundRectanglePath=function(e,t,n,r,i,a){var o=r/2,s=i/2,l="auto"===a?nr(r,i):a;e.beginPath&&e.beginPath(),e.moveTo(t,n-s),e.lineTo(t+o,n-s),e.lineTo(t+o,n),e.arcTo(t+o,n+s,t,n+s,l),e.arcTo(t-o,n+s,t-o,n,l),e.lineTo(t-o,n-s),e.lineTo(t,n-s),e.closePath()},li.drawCutRectanglePath=function(e,t,n,r,i,a,o){var s=r/2,l=i/2,u="auto"===o?na():o;e.beginPath&&e.beginPath(),e.moveTo(t-s+u,n-l),e.lineTo(t+s-u,n-l),e.lineTo(t+s,n-l+u),e.lineTo(t+s,n+l-u),e.lineTo(t+s-u,n+l),e.lineTo(t-s+u,n+l),e.lineTo(t-s,n+l-u),e.lineTo(t-s,n-l+u),e.closePath()},li.drawBarrelPath=function(e,t,n,r,i){var a=r/2,o=i/2,s=t-a,l=t+a,u=n-o,c=n+o,h=no(r,i),d=h.widthOffset,p=h.heightOffset,f=h.ctrlPtOffsetPct*d;e.beginPath&&e.beginPath(),e.moveTo(s,u+p),e.lineTo(s,c-p),e.quadraticCurveTo(s+f,c,s+d,c),e.lineTo(l-d,c),e.quadraticCurveTo(l-f,c,l,c-p),e.lineTo(l,u+p),e.quadraticCurveTo(l-f,u,l-d,u),e.lineTo(s+d,u),e.quadraticCurveTo(s+f,u,s,u+p),e.closePath()};for(var la={},lo={},ls=Math.PI/40,ll=0*Math.PI;ll<2*Math.PI;ll+=ls)la[ll]=Math.sin(ll),lo[ll]=Math.cos(ll);li.drawEllipsePath=function(e,t,n,r,i){if(e.beginPath&&e.beginPath(),e.ellipse)e.ellipse(t,n,r/2,i/2,0,0,2*Math.PI);else{for(var a,o,s=r/2,l=i/2,u=0*Math.PI;u<2*Math.PI;u+=ls)a=t-s*la[u]*0+s*lo[u]*1,o=n+l*lo[u]*0+l*la[u]*1,0===u?e.moveTo(a,o):e.lineTo(a,o)}e.closePath()};var lu={};lu.createBuffer=function(e,t){var n=document.createElement("canvas");return n.width=e,n.height=t,[n,n.getContext("2d")]},lu.bufferCanvasImage=function(e){var t=this.cy,n=t.mutableElements().boundingBox(),r=this.findContainerClientCoords(),i=e.full?Math.ceil(n.w):r[2],a=e.full?Math.ceil(n.h):r[3],o=M(e.maxWidth)||M(e.maxHeight),s=this.getPixelRatio(),l=1;if(void 0!==e.scale)i*=e.scale,a*=e.scale,l=e.scale;else if(o){var u=1/0,c=1/0;M(e.maxWidth)&&(u=l*e.maxWidth/i),M(e.maxHeight)&&(c=l*e.maxHeight/a),i*=l=Math.min(u,c),a*=l}!o&&(i*=s,a*=s,l*=s);var h=document.createElement("canvas");h.width=i,h.height=a,h.style.width=i+"px",h.style.height=a+"px";var d=h.getContext("2d");if(i>0&&a>0){d.clearRect(0,0,i,a),d.globalCompositeOperation="source-over";var p=this.getCachedZSortedEles();if(e.full)d.translate(-n.x1*l,-n.y1*l),d.scale(l,l),this.drawElements(d,p),d.scale(1/l,1/l),d.translate(n.x1*l,n.y1*l);else{var f=t.pan(),g={x:f.x*l,y:f.y*l};l*=t.zoom(),d.translate(g.x,g.y),d.scale(l,l),this.drawElements(d,p),d.scale(1/l,1/l),d.translate(-g.x,-g.y)}e.bg&&(d.globalCompositeOperation="destination-over",d.fillStyle=e.bg,d.rect(0,0,i,a),d.fill())}return h};function lc(e){var t=e.indexOf(",");return e.substr(t+1)}function lh(e,t,n){var r=function(){return t.toDataURL(n,e.quality)};switch(e.output){case"blob-promise":return new rh(function(r,i){try{t.toBlob(function(e){null!=e?r(e):i(Error("`canvas.toBlob()` sent a null value in its callback"))},n,e.quality)}catch(e){i(e)}});case"blob":return function(e,t){for(var n=atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return new Blob([r],{type:t})}(lc(r()),n);case"base64":return lc(r());default:return r()}}lu.png=function(e){return lh(e,this.bufferCanvasImage(e),"image/png")},lu.jpg=function(e){return lh(e,this.bufferCanvasImage(e),"image/jpeg")};var ld={};ld.nodeShapeImpl=function(e,t,n,r,i,a,o,s){switch(e){case"ellipse":return this.drawEllipsePath(t,n,r,i,a);case"polygon":return this.drawPolygonPath(t,n,r,i,a,o);case"round-polygon":return this.drawRoundPolygonPath(t,n,r,i,a,o,s);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(t,n,r,i,a,s);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(t,n,r,i,a,o,s);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(t,n,r,i,a,s);case"barrel":return this.drawBarrelPath(t,n,r,i,a)}};var lp=lf.prototype;function lf(e){var t=this,n=t.cy.window().document;t.data={canvases:Array(lp.CANVAS_LAYERS),contexts:Array(lp.CANVAS_LAYERS),canvasNeedsRedraw:Array(lp.CANVAS_LAYERS),bufferCanvases:Array(lp.BUFFER_COUNT),bufferContexts:Array(lp.CANVAS_LAYERS)};var r="-webkit-tap-highlight-color",i="rgba(0,0,0,0)";t.data.canvasContainer=n.createElement("div");var a=t.data.canvasContainer.style;t.data.canvasContainer.style[r]=i,a.position="relative",a.zIndex="0",a.overflow="hidden";var o=e.cy.container();o.appendChild(t.data.canvasContainer),o.style[r]=i;var s={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};x&&x.userAgent.match(/msie|trident|edge/i)&&(s["-ms-touch-action"]="none",s["touch-action"]="none");for(var l=0;l<lp.CANVAS_LAYERS;l++){var u=t.data.canvases[l]=n.createElement("canvas");t.data.contexts[l]=u.getContext("2d"),Object.keys(s).forEach(function(e){u.style[e]=s[e]}),u.style.position="absolute",u.setAttribute("data-id","layer"+l),u.style.zIndex=String(lp.CANVAS_LAYERS-l),t.data.canvasContainer.appendChild(u),t.data.canvasNeedsRedraw[l]=!1}t.data.topCanvas=t.data.canvases[0],t.data.canvases[lp.NODE].setAttribute("data-id","layer"+lp.NODE+"-node"),t.data.canvases[lp.SELECT_BOX].setAttribute("data-id","layer"+lp.SELECT_BOX+"-selectbox"),t.data.canvases[lp.DRAG].setAttribute("data-id","layer"+lp.DRAG+"-drag");for(var l=0;l<lp.BUFFER_COUNT;l++)t.data.bufferCanvases[l]=n.createElement("canvas"),t.data.bufferContexts[l]=t.data.bufferCanvases[l].getContext("2d"),t.data.bufferCanvases[l].style.position="absolute",t.data.bufferCanvases[l].setAttribute("data-id","buffer"+l),t.data.bufferCanvases[l].style.zIndex=String(-l-1),t.data.bufferCanvases[l].style.visibility="hidden";t.pathsEnabled=!0;var c=tI(),h=function(e){return{x:-e.w/2,y:-e.h/2}},d=function(e){return e.boundingBox(),e[0]._private.bodyBounds},p=function(e){return e.boundingBox(),e[0]._private.labelBounds.main||c},f=function(e){return e.boundingBox(),e[0]._private.labelBounds.source||c},g=function(e){return e.boundingBox(),e[0]._private.labelBounds.target||c},v=function(e,t){return t},y=function(e,t,n){var r=e?e+"-":"";return{x:t.x+n.pstyle(r+"text-margin-x").pfValue,y:t.y+n.pstyle(r+"text-margin-y").pfValue}},b=function(e,t,n){var r=e[0]._private.rscratch;return{x:r[t],y:r[n]}},w=t.data.eleTxrCache=new sj(t,{getKey:function(e){return e[0]._private.nodeKey},doesEleInvalidateKey:function(e){var t=e[0]._private;return t.oldBackgroundTimestamp!==t.backgroundTimestamp},drawElement:function(e,n,r,i,a){return t.drawElement(e,n,r,!1,!1,a)},getBoundingBox:d,getRotationPoint:function(e){var t;return{x:((t=d(e)).x1+t.x2)/2,y:(t.y1+t.y2)/2}},getRotationOffset:function(e){return h(d(e))},allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),E=t.data.lblTxrCache=new sj(t,{getKey:function(e){return e[0]._private.labelStyleKey},drawElement:function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"main",a)},getBoundingBox:p,getRotationPoint:function(e){return y("",b(e,"labelX","labelY"),e)},getRotationOffset:function(e){var t=p(e),n=h(p(e));if(e.isNode()){switch(e.pstyle("text-halign").value){case"left":n.x=-t.w;break;case"right":n.x=0}switch(e.pstyle("text-valign").value){case"top":n.y=-t.h;break;case"bottom":n.y=0}}return n},isVisible:v}),k=t.data.slbTxrCache=new sj(t,{getKey:function(e){return e[0]._private.sourceLabelStyleKey},drawElement:function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"source",a)},getBoundingBox:f,getRotationPoint:function(e){return y("source",b(e,"sourceLabelX","sourceLabelY"),e)},getRotationOffset:function(e){return h(f(e))},isVisible:v}),C=t.data.tlbTxrCache=new sj(t,{getKey:function(e){return e[0]._private.targetLabelStyleKey},drawElement:function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"target",a)},getBoundingBox:g,getRotationPoint:function(e){return y("target",b(e,"targetLabelX","targetLabelY"),e)},getRotationOffset:function(e){return h(g(e))},isVisible:v}),S=t.data.lyrTxrCache=new sX(t);t.onUpdateEleCalcs(function(e,t){w.invalidateElements(t),E.invalidateElements(t),k.invalidateElements(t),C.invalidateElements(t),S.invalidateElements(t);for(var n=0;n<t.length;n++){var r=t[n]._private;r.oldBackgroundTimestamp=r.backgroundTimestamp}});var D=function(e){for(var t=0;t<e.length;t++)S.enqueueElementRefinement(e[t].ele)};w.onDequeue(D),E.onDequeue(D),k.onDequeue(D),C.onDequeue(D)}lp.CANVAS_LAYERS=3,lp.SELECT_BOX=0,lp.DRAG=1,lp.NODE=2,lp.BUFFER_COUNT=3,lp.TEXTURE_BUFFER=0,lp.MOTIONBLUR_BUFFER_NODE=1,lp.MOTIONBLUR_BUFFER_DRAG=2,lp.redrawHint=function(e,t){switch(e){case"eles":this.data.canvasNeedsRedraw[lp.NODE]=t;break;case"drag":this.data.canvasNeedsRedraw[lp.DRAG]=t;break;case"select":this.data.canvasNeedsRedraw[lp.SELECT_BOX]=t}};var lg="undefined"!=typeof Path2D;lp.path2dEnabled=function(e){if(void 0===e)return this.pathsEnabled;this.pathsEnabled=!!e},lp.usePaths=function(){return lg&&this.pathsEnabled},lp.setImgSmoothing=function(e,t){null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled=t:(e.webkitImageSmoothingEnabled=t,e.mozImageSmoothingEnabled=t,e.msImageSmoothingEnabled=t)},lp.getImgSmoothing=function(e){return null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled:e.webkitImageSmoothingEnabled||e.mozImageSmoothingEnabled||e.msImageSmoothingEnabled},lp.makeOffscreenCanvas=function(e,t){var n;return("undefined"==typeof OffscreenCanvas?"undefined":r(OffscreenCanvas))!=="undefined"?n=new OffscreenCanvas(e,t):((n=this.cy.window().document.createElement("canvas")).width=e,n.height=t),n},[sG,sJ,s9,s8,s7,lt,lr,li,lu,ld].forEach(function(e){Z(lp,e)});var lv=[{name:"null",impl:oF},{name:"base",impl:sI},{name:"canvas",impl:lf}],ly={},lm={};function lb(e,t,n){var r=n,i=function(n){e1("Can not register `"+t+"` for `"+e+"` since `"+n+"` already exists in the prototype and can not be overridden")};if("core"===e){if(a7.prototype[t])return i(t);a7.prototype[t]=n}else if("collection"===e){if(aA.prototype[t])return i(t);aA.prototype[t]=n}else if("layout"===e){for(var a=function(e){this.options=e,n.call(this,e),!_(this._private)&&(this._private={}),this._private.cy=e.cy,this._private.listeners=[],this.createEmitter()},o=a.prototype=Object.create(n.prototype),s=[],l=0;l<s.length;l++){var u=s[l];o[u]=o[u]||function(){return this}}o.start&&!o.run?o.run=function(){return this.start(),this}:!o.start&&o.run&&(o.start=function(){return this.run(),this});var c=n.prototype.stop;o.stop=function(){var e=this.options;if(e&&e.animate){var t=this.animations;if(t)for(var n=0;n<t.length;n++)t[n].stop()}return c?c.call(this):this.emit("layoutstop"),this},!o.destroy&&(o.destroy=function(){return this}),o.cy=function(){return this._private.cy};var h=function(e){return e._private.cy},d={addEventFields:function(e,t){t.layout=e,t.cy=h(e),t.target=e},bubble:function(){return!0},parent:function(e){return h(e)}};Z(o,{createEmitter:function(){return this._private.emitter=new i7(d,this),this},emitter:function(){return this._private.emitter},on:function(e,t){return this.emitter().on(e,t),this},one:function(e,t){return this.emitter().one(e,t),this},once:function(e,t){return this.emitter().one(e,t),this},removeListener:function(e,t){return this.emitter().removeListener(e,t),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},emit:function(e,t){return this.emitter().emit(e,t),this}}),it.eventAliasesOn(o),r=a}else if("renderer"===e&&"null"!==t&&"base"!==t){var p=lx("renderer","base"),f=p.prototype,g=n.prototype,v=function(){p.apply(this,arguments),n.apply(this,arguments)},y=v.prototype;for(var b in f){var x=f[b];if(null!=g[b])return i(b);y[b]=x}for(var w in g)y[w]=g[w];f.clientFunctions.forEach(function(e){y[e]=y[e]||function(){eJ("Renderer does not implement `renderer."+e+"()` on its prototype")}}),r=v}else if("__proto__"===e||"constructor"===e||"prototype"===e)return eJ(e+" is an illegal type to be registered, possibly lead to prototype pollutions");return en({map:ly,keys:[e,t],value:r})}function lx(e,t){return er({map:ly,keys:[e,t]})}function lw(e,t,n,r,i){return en({map:lm,keys:[e,t,n,r],value:i})}function lE(e,t,n,r){return er({map:lm,keys:[e,t,n,r]})}var lk=function(){if(2==arguments.length)return lx.apply(null,arguments);if(3==arguments.length)return lb.apply(null,arguments);if(4==arguments.length)return lE.apply(null,arguments);else{if(5==arguments.length)return lw.apply(null,arguments);eJ("Invalid extension access syntax")}};a7.prototype.extension=lk,[{type:"layout",extensions:oV},{type:"renderer",extensions:lv}].forEach(function(e){e.extensions.forEach(function(t){lb(e.type,t.name,t.impl)})});var lC=function e(){if(!(this instanceof e))return new e;this.length=0},lS=lC.prototype;lS.instanceString=function(){return"stylesheet"},lS.selector=function(e){return this[this.length++]={selector:e,properties:[]},this},lS.css=function(e,t){var n=this.length-1;if(D(e))this[n].properties.push({name:e,value:t});else if(_(e)){for(var r=Object.keys(e),i=0;i<r.length;i++){var a=r[i],o=e[a];if(null==o)continue;var s=a4.properties[a]||a4.properties[j(a)];if(null!=s){var l=s.name;this[n].properties.push({name:l,value:o})}}}return this},lS.style=lS.css,lS.generateStyle=function(e){var t=new a4(e);return this.appendToStyle(t)},lS.appendToStyle=function(e){for(var t=0;t<this.length;t++){var n=this[t],r=n.selector,i=n.properties;e.selector(r);for(var a=0;a<i.length;a++){var o=i[a];e.css(o.name,o.value)}}return e};var lD=function(e){return(void 0===e&&(e={}),_(e))?new a7(e):D(e)?lk.apply(lk,arguments):void 0};lD.use=function(e){var t=Array.prototype.slice.call(arguments,1);return t.unshift(lD),e.apply(null,t),this},lD.warnings=function(e){return e0(e)},lD.version="3.30.2",lD.stylesheet=lD.Stylesheet=lC}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/6263c13b.a6d67e5e.js b/pr-preview/pr-238/assets/js/6263c13b.a6d67e5e.js new file mode 100644 index 0000000000..71a09d8ee1 --- /dev/null +++ b/pr-preview/pr-238/assets/js/6263c13b.a6d67e5e.js @@ -0,0 +1,4 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["874"],{15316:function(e,t,n){n.r(t),n.d(t,{metadata:()=>r,contentTitle:()=>l,default:()=>f,assets:()=>u,toc:()=>o,frontMatter:()=>i});var r=JSON.parse('{"id":"exercises/class-structure/class-structure","title":"Aufbau einer Java-Klasse","description":"","source":"@site/docs/exercises/class-structure/class-structure.mdx","sourceDirName":"exercises/class-structure","slug":"/exercises/class-structure/","permalink":"/java-docs/pr-preview/pr-238/exercises/class-structure/","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exercises/class-structure/class-structure.mdx","tags":[{"inline":true,"label":"class-structure","permalink":"/java-docs/pr-preview/pr-238/tags/class-structure"}],"version":"current","sidebarPosition":20,"frontMatter":{"title":"Aufbau einer Java-Klasse","description":"","sidebar_position":20,"tags":["class-structure"]},"sidebar":"exercisesSidebar","previous":{"title":"Git05","permalink":"/java-docs/pr-preview/pr-238/exercises/git/git05"},"next":{"title":"ClassStructure01","permalink":"/java-docs/pr-preview/pr-238/exercises/class-structure/class-structure01"}}'),s=n("85893"),a=n("50065"),c=n("94301");let i={title:"Aufbau einer Java-Klasse",description:"",sidebar_position:20,tags:["class-structure"]},l=void 0,u={},o=[{value:"\xdcbungsaufgaben",id:"\xfcbungsaufgaben",level:2},{value:"\xdcbungsaufgaben von tutego.de",id:"\xfcbungsaufgaben-von-tutegode",level:2},{value:"\xdcbungsaufgaben der Technischen Hochschule Ulm",id:"\xfcbungsaufgaben-der-technischen-hochschule-ulm",level:2}];function d(e){let t={a:"a",h2:"h2",li:"li",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"\xfcbungsaufgaben",children:"\xdcbungsaufgaben"}),"\n","\n",(0,s.jsx)(c.Z,{}),"\n",(0,s.jsx)(t.h2,{id:"\xfcbungsaufgaben-von-tutegode",children:"\xdcbungsaufgaben von tutego.de"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\xdcbungsaufgabe\n",(0,s.jsx)(t.a,{href:"https://tutego.de/javabuch/aufgaben/intro.html#_fehlermeldungen_der_ide_kennenlernen",children:"I-1-1.2.1"})]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"\xfcbungsaufgaben-der-technischen-hochschule-ulm",children:"\xdcbungsaufgaben der Technischen Hochschule Ulm"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\xdcbungsaufgabe ",(0,s.jsx)(t.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:n(61203).Z+"",children:"Variablen01"})," (ohne Einlesen)"]}),"\n"]})]})}function f(e={}){let{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},61203:function(e,t,n){n.d(t,{Z:function(){return r}});let r=n.p+"assets/files/exercises-ulm-cf2cc33b9ccdae3a1c0746c07fc951bd.pdf"},94301:function(e,t,n){n.d(t,{Z:()=>x});var r=n("85893");n("67294");var s=n("67026"),a=n("69369"),c=n("83012"),i=n("43115"),l=n("63150"),u=n("96025"),o=n("34403");let d={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};function f(e){let{href:t,children:n}=e;return(0,r.jsx)(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d.cardContainer),children:n})}function h(e){let{href:t,icon:n,title:a,description:c}=e;return(0,r.jsxs)(f,{href:t,children:[(0,r.jsxs)(o.Z,{as:"h2",className:(0,s.Z)("text--truncate",d.cardTitle),title:a,children:[n," ",a]}),c&&(0,r.jsx)("p",{className:(0,s.Z)("text--truncate",d.cardDescription),title:c,children:c})]})}function p(e){let{item:t}=e,n=(0,a.LM)(t),s=function(){let{selectMessage:e}=(0,i.c)();return t=>e(t,(0,u.I)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return n?(0,r.jsx)(h,{href:n,icon:"\uD83D\uDDC3\uFE0F",title:t.label,description:t.description??s(t.items.length)}):null}function g(e){let{item:t}=e,n=(0,l.Z)(t.href)?"\uD83D\uDCC4\uFE0F":"\uD83D\uDD17",s=(0,a.xz)(t.docId??void 0);return(0,r.jsx)(h,{href:t.href,icon:n,title:t.label,description:t.description??s?.description})}function m(e){let{item:t}=e;switch(t.type){case"link":return(0,r.jsx)(g,{item:t});case"category":return(0,r.jsx)(p,{item:t});default:throw Error(`unknown item type ${JSON.stringify(t)}`)}}function b(e){let{className:t}=e,n=(0,a.jA)();return(0,r.jsx)(x,{items:n.items,className:t})}function x(e){let{items:t,className:n}=e;if(!t)return(0,r.jsx)(b,{...e});let c=(0,a.MN)(t);return(0,r.jsx)("section",{className:(0,s.Z)("row",n),children:c.map((e,t)=>(0,r.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,r.jsx)(m,{item:e})},t))})}},43115:function(e,t,n){n.d(t,{c:function(){return l}});var r=n(67294),s=n(2933);let a=["zero","one","two","few","many","other"];function c(e){return a.filter(t=>e.includes(t))}let i={locale:"en",pluralForms:c(["one","other"]),select:e=>1===e?"one":"other"};function l(){let e=function(){let{i18n:{currentLocale:e}}=(0,s.Z)();return(0,r.useMemo)(()=>{try{return function(e){let t=new Intl.PluralRules(e);return{locale:e,pluralForms:c(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". +Docusaurus will fallback to the default (English) implementation. +Error: ${t.message} +`),i}},[e])}();return{selectMessage:(t,n)=>(function(e,t,n){let r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);let s=n.select(t);return r[Math.min(n.pluralForms.indexOf(s),r.length-1)]})(n,t,e)}}},50065:function(e,t,n){n.d(t,{Z:function(){return i},a:function(){return c}});var r=n(67294);let s={},a=r.createContext(s);function c(e){let t=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/62b48671.ca30f90f.js b/pr-preview/pr-238/assets/js/62b48671.ca30f90f.js new file mode 100644 index 0000000000..0b75666e7e --- /dev/null +++ b/pr-preview/pr-238/assets/js/62b48671.ca30f90f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8682"],{3394:function(e,n,t){t.r(n),t.d(n,{metadata:()=>i,contentTitle:()=>u,default:()=>h,assets:()=>c,toc:()=>d,frontMatter:()=>o});var i=JSON.parse('{"id":"documentation/class-structure","title":"Aufbau einer Java-Klasse","description":"","source":"@site/docs/documentation/class-structure.mdx","sourceDirName":"documentation","slug":"/documentation/class-structure","permalink":"/java-docs/pr-preview/pr-238/documentation/class-structure","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/class-structure.mdx","tags":[{"inline":true,"label":"class-structure","permalink":"/java-docs/pr-preview/pr-238/tags/class-structure"}],"version":"current","sidebarPosition":20,"frontMatter":{"title":"Aufbau einer Java-Klasse","description":"","sidebar_position":20,"tags":["class-structure"]},"sidebar":"documentationSidebar","previous":{"title":"Softwaredesign","permalink":"/java-docs/pr-preview/pr-238/documentation/design"},"next":{"title":"Datentypen","permalink":"/java-docs/pr-preview/pr-238/documentation/data-types"}}'),a=t("85893"),r=t("50065"),s=t("47902"),l=t("5525");let o={title:"Aufbau einer Java-Klasse",description:"",sidebar_position:20,tags:["class-structure"]},u=void 0,c={},d=[{value:"Statische Methoden",id:"statische-methoden",level:2},{value:"Die main-Methode",id:"die-main-methode",level:2},{value:"Kommentare und Dokumentation",id:"kommentare-und-dokumentation",level:2},{value:"Entwicklungspakete",id:"entwicklungspakete",level:2}];function m(e){let n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",mermaid:"mermaid",p:"p",pre:"pre",...(0,r.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.p,{children:["Klassen stellen den grundlegenden Rahmen f\xfcr Programme dar. Jede Klasse kann\nDaten (",(0,a.jsx)(n.em,{children:"Attribute"}),") und Routinen (",(0,a.jsx)(n.em,{children:"Methoden"}),") besitzen. Routinen bestehen dabei\naus Folgen von verzweigten und sich wiederholenden Anweisungen, wobei\nAnweisungen wohldefinierte Befehle darstellen, die der Interpreter zur Laufzeit\nausf\xfchrt. Anweisungen m\xfcssen in Java mit dem Semikolon abgeschlossen werden und\nk\xf6nnen zu Anweisungsbl\xf6cken zusammengefasst werden, die durch geschweifte\nKlammern umschlossen werden. Innerhalb eines Anweisungsblocks k\xf6nnen sich\nweitere Anweisungsbl\xf6cke befinden."]}),"\n",(0,a.jsxs)(s.Z,{children:[(0,a.jsx)(l.Z,{value:"a",label:"Klasse",default:!0,children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'// highlight-start\npublic class MainClass {\n\n public static void main(String[] args) {\n System.out.println("Winter is Coming");\n }\n\n}\n// highlight-end\n'})})}),(0,a.jsx)(l.Z,{value:"b",label:"Methode",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n // highlight-start\n public static void main(String[] args) {\n System.out.println("Winter is Coming");\n }\n // highlight-end\n\n}\n'})})}),(0,a.jsx)(l.Z,{value:"c",label:"Anweisung",children:(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n // highlight-start\n System.out.println("Winter is Coming");\n // highlight-end\n }\n\n}\n'})})})]}),"\n",(0,a.jsx)(n.h2,{id:"statische-methoden",children:"Statische Methoden"}),"\n",(0,a.jsxs)(n.p,{children:["Statische Methoden sind abgeschlossene Programmteile, die Parameter enthalten\nund einen Wert zur\xfcckgeben k\xf6nnen. Sie m\xfcssen mit dem Schl\xfcsselwort ",(0,a.jsx)(n.code,{children:"static"}),"\ngekennzeichnet werden. Bei statischen Methoden, die einen Wert zur\xfcckgeben, muss\nder Datentyp des R\xfcckgabewertes angegeben werden; bei statische Methoden, die\nkeinen Wert zur\xfcckgeben, das Schl\xfcsselwort ",(0,a.jsx)(n.code,{children:"void"}),". Der Aufruf einer statischen\nMethode erfolgt \xfcber den Klassennamen gefolgt von einem Punkt."]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n MainClass.printStarkMotto();\n MainClass.printText("Winter is Coming");\n }\n\n public static void printStarkMotto() {\n System.out.println("Winter is Coming");\n }\n\n public static void printText(String text) {\n System.out.println(text);\n }\n\n}\n'})}),"\n",(0,a.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,a.jsxs)(n.p,{children:["Die statischen Methoden einer Startklasse werden auch als ",(0,a.jsx)(n.em,{children:"Unterprogramme"}),"\nbezeichnet."]})}),"\n",(0,a.jsx)(n.h2,{id:"die-main-methode",children:"Die main-Methode"}),"\n",(0,a.jsxs)(n.p,{children:["Die Methode ",(0,a.jsx)(n.code,{children:"void main(args: String[])"})," ist eine spezielle Methode in Java und\nstellt Startpunkt sowie Endpunkt einer Anwendung bzw. eines Programms dar. Nur\nKlassen mit einer main-Methode k\xf6nnen von der Laufzeitumgebung ausgef\xfchrt\nwerden. Aus diesem Grund werden Klassen mit einer main-Methode auch als\n",(0,a.jsx)(n.em,{children:"ausf\xfchrbare Klassen"})," oder als ",(0,a.jsx)(n.em,{children:"Startklassen"})," bezeichnet."]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n System.out.println("Winter is Coming");\n }\n\n}\n'})}),"\n",(0,a.jsx)(n.h2,{id:"kommentare-und-dokumentation",children:"Kommentare und Dokumentation"}),"\n",(0,a.jsxs)(n.p,{children:["Kommentare sollen die Lesbarkeit und Verwendbarkeit des Programms verbessern.\nSie bewirken bei der Ausf\xfchrung keine Aktion und werden vom Java-Compiler\nignoriert. Man unterscheidet dabei zwischen Quellcode-Kommentaren, die einzelne\nAnweisungen oder Anweisungsbl\xf6cke erkl\xe4ren und Dokumentationskommentaren, die\nBeschreiben, wie eine Methode oder einer Klasse verwendet wird (siehe\n",(0,a.jsx)(n.a,{href:"/java-docs/pr-preview/pr-238/documentation/java-api#die-javadoc",children:"Javadoc"}),"). In Java werden einzeilige Kommentare mit\n",(0,a.jsx)(n.code,{children:"//"}),", Kommentarbl\xf6cke mit ",(0,a.jsx)(n.code,{children:"/* */"})," und Dokumentationskommentare mit ",(0,a.jsx)(n.code,{children:"/** */"}),"\nerstellt."]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'/**\n * Beschreibung der Klasse\n *\n * @author Autor der Klasse\n * @version Version\n *\n */\npublic class MainClass {\n\n /**\n * Beschreibung der Methode\n *\n * @param args Beschreibung der Parameter\n */\n public static void main(String[] args) {\n /* Kommentarblock */\n System.out.println("Winter is Coming"); // Kommentar\n }\n\n}\n'})}),"\n",(0,a.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,a.jsx)(n.p,{children:"Guter Quellcode sollte immer selbsterkl\xe4rend sein. Das hei\xdft, dass auf den\nEinsatz von Quellcode-Kommentaren i.d.R. verzichtet werden sollte."})}),"\n",(0,a.jsx)(n.h2,{id:"entwicklungspakete",children:"Entwicklungspakete"}),"\n",(0,a.jsxs)(n.p,{children:["Entwicklungspakete erm\xf6glichen das hierarchische Strukturieren von Klassen. Um\ndie Klassen eines Entwicklungspaketes verwenden zu k\xf6nnen, m\xfcssen die jeweiligen\nKlassen explizit mit Hilfe des Schl\xfcsselworts ",(0,a.jsx)(n.code,{children:"import"})," importiert werden."]}),"\n",(0,a.jsx)(n.mermaid,{value:"flowchart\n java(java) --\x3e lang(lang)\n java --\x3e util(util)\n java --\x3e time(time)\n lang --\x3e object[Object]\n lang --\x3e system[System]\n util --\x3e arraylist[ArrayList]\n util --\x3e scanner[Scanner]\n time --\x3e localdate(LocalDate)\n time --\x3e localtime(LocalTime)"}),"\n",(0,a.jsx)(n.admonition,{title:"Hinweis",type:"note",children:(0,a.jsxs)(n.p,{children:["Die Klassen des Entwicklungspaketes ",(0,a.jsx)(n.code,{children:"java.lang"})," m\xfcssen nicht importiert werden."]})})]})}function h(e={}){let{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(m,{...e})}):m(e)}},5525:function(e,n,t){t.d(n,{Z:()=>s});var i=t("85893");t("67294");var a=t("67026");let r="tabItem_Ymn6";function s(e){let{children:n,hidden:t,className:s}=e;return(0,i.jsx)("div",{role:"tabpanel",className:(0,a.Z)(r,s),hidden:t,children:n})}},47902:function(e,n,t){t.d(n,{Z:()=>w});var i=t("85893"),a=t("67294"),r=t("67026"),s=t("69599"),l=t("16550"),o=t("32000"),u=t("4520"),c=t("38341"),d=t("76009");function m(e){return a.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||a.isValidElement(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){let{value:n,tabValues:t}=e;return t.some(e=>e.value===n)}var p=t("7227");let g="tabList__CuJ",v="tabItem_LNqP";function b(e){let{className:n,block:t,selectedValue:a,selectValue:l,tabValues:o}=e,u=[],{blockElementScrollPositionUntilNextRender:c}=(0,s.o5)(),d=e=>{let n=e.currentTarget,t=o[u.indexOf(n)].value;t!==a&&(c(n),l(t))},m=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{let t=u.indexOf(e.currentTarget)+1;n=u[t]??u[0];break}case"ArrowLeft":{let t=u.indexOf(e.currentTarget)-1;n=u[t]??u[u.length-1]}}n?.focus()};return(0,i.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":t},n),children:o.map(e=>{let{value:n,label:t,attributes:s}=e;return(0,i.jsx)("li",{role:"tab",tabIndex:a===n?0:-1,"aria-selected":a===n,ref:e=>u.push(e),onKeyDown:m,onClick:d,...s,className:(0,r.Z)("tabs__item",v,s?.className,{"tabs__item--active":a===n}),children:t??n},n)})})}function f(e){let{lazy:n,children:t,selectedValue:s}=e,l=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){let e=l.find(e=>e.props.value===s);return e?(0,a.cloneElement)(e,{className:(0,r.Z)("margin-top--md",e.props.className)}):null}return(0,i.jsx)("div",{className:"margin-top--md",children:l.map((e,n)=>(0,a.cloneElement)(e,{key:n,hidden:e.props.value!==s}))})}function j(e){let n=function(e){let{defaultValue:n,queryString:t=!1,groupId:i}=e,r=function(e){let{values:n,children:t}=e;return(0,a.useMemo)(()=>{let e=n??m(t).map(e=>{let{props:{value:n,label:t,attributes:i,default:a}}=e;return{value:n,label:t,attributes:i,default:a}});return!function(e){let n=(0,c.lx)(e,(e,n)=>e.value===n.value);if(n.length>0)throw Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,t])}(e),[s,p]=(0,a.useState)(()=>(function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!h({value:n,tabValues:t}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}let i=t.find(e=>e.default)??t[0];if(!i)throw Error("Unexpected error: 0 tabValues");return i.value})({defaultValue:n,tabValues:r})),[g,v]=function(e){let{queryString:n=!1,groupId:t}=e,i=(0,l.k6)(),r=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t}),s=(0,u._X)(r);return[s,(0,a.useCallback)(e=>{if(!r)return;let n=new URLSearchParams(i.location.search);n.set(r,e),i.replace({...i.location,search:n.toString()})},[r,i])]}({queryString:t,groupId:i}),[b,f]=function(e){var n;let{groupId:t}=e;let i=(n=t)?`docusaurus.tab.${n}`:null,[r,s]=(0,d.Nk)(i);return[r,(0,a.useCallback)(e=>{if(!!i)s.set(e)},[i,s])]}({groupId:i}),j=(()=>{let e=g??b;return h({value:e,tabValues:r})?e:null})();return(0,o.Z)(()=>{j&&p(j)},[j]),{selectedValue:s,selectValue:(0,a.useCallback)(e=>{if(!h({value:e,tabValues:r}))throw Error(`Can't select invalid tab value=${e}`);p(e),v(e),f(e)},[v,f,r]),tabValues:r}}(e);return(0,i.jsxs)("div",{className:(0,r.Z)("tabs-container",g),children:[(0,i.jsx)(b,{...n,...e}),(0,i.jsx)(f,{...n,...e})]})}function w(e){let n=(0,p.Z)();return(0,i.jsx)(j,{...e,children:m(e.children)},String(n))}},50065:function(e,n,t){t.d(n,{Z:function(){return l},a:function(){return s}});var i=t(67294);let a={},r=i.createContext(a);function s(e){let n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/631eb706.25ef7645.js b/pr-preview/pr-238/assets/js/631eb706.25ef7645.js new file mode 100644 index 0000000000..9ae42383b5 --- /dev/null +++ b/pr-preview/pr-238/assets/js/631eb706.25ef7645.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["2852"],{1624:function(e,t,n){n.r(t),n.d(t,{metadata:()=>r,contentTitle:()=>d,default:()=>m,assets:()=>c,toc:()=>u,frontMatter:()=>s});var r=JSON.parse('{"id":"documentation/lombok","title":"Lombok","description":"","source":"@site/docs/documentation/lombok.mdx","sourceDirName":"documentation","slug":"/documentation/lombok","permalink":"/java-docs/pr-preview/pr-238/documentation/lombok","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/documentation/lombok.mdx","tags":[{"inline":true,"label":"lombok","permalink":"/java-docs/pr-preview/pr-238/tags/lombok"}],"version":"current","sidebarPosition":255,"frontMatter":{"title":"Lombok","description":"","sidebar_position":255,"tags":["lombok"]},"sidebar":"documentationSidebar","previous":{"title":"Maven","permalink":"/java-docs/pr-preview/pr-238/documentation/maven"},"next":{"title":"Simple Logging Facade for Java (SLF4J)","permalink":"/java-docs/pr-preview/pr-238/documentation/slf4j"}}'),i=n("85893"),a=n("50065"),l=n("47902"),o=n("5525");let s={title:"Lombok",description:"",sidebar_position:255,tags:["lombok"]},d=void 0,c={},u=[{value:"Annotationen",id:"annotationen",level:2},{value:"Beispiel",id:"beispiel",level:2}];function h(e){let t={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"https://projectlombok.org/",children:"Lombok"})," stellt eine externe Java-Bibliothek dar,\ndie das Erstellen von Boilerplate-Code \xfcberfl\xfcssig macht. Repetitive Methoden\nwie Konstruktoren, Getter, Setter und die Objekt-Methoden m\xfcssen nicht manuell\nimplementiert werden, sondern werden beim Kompilieren generiert."]}),"\n",(0,i.jsx)(t.h2,{id:"annotationen",children:"Annotationen"}),"\n",(0,i.jsx)(t.p,{children:"Durch entsprechende Annotationen kann gesteuert werden, welche Methoden wie\ngeneriert werden sollen."}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Annotation"}),(0,i.jsx)(t.th,{children:"Beschreibung"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"@RequiredArgsConstructor"})}),(0,i.jsx)(t.td,{children:"Generiert einen Konstruktor mit Parametern zu allen unver\xe4nderlichen Attributen"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"@AllArgsConstructor"})}),(0,i.jsx)(t.td,{children:"Generiert einen Konstruktor mit Parametern zu allen Attributen"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"@Getter"})}),(0,i.jsx)(t.td,{children:"Generiert Get-Methoden zu allen Attributen"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"@Setter"})}),(0,i.jsx)(t.td,{children:"Generiert Set-Methoden zu allen ver\xe4nderlichen Attributen"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"@EqualsAndHashCode"})}),(0,i.jsxs)(t.td,{children:["Generiert Implementierungen f\xfcr die Methoden ",(0,i.jsx)(t.code,{children:"boolean equals(object: Object)"})," und ",(0,i.jsx)(t.code,{children:"int hashCode()"})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"@ToString"})}),(0,i.jsxs)(t.td,{children:["Generiert eine Implementierung f\xfcr die Methode ",(0,i.jsx)(t.code,{children:"String toString()"})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"@Data"})}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:"@RequiredArgsConstructor"})," + ",(0,i.jsx)(t.code,{children:"@Getter"})," + ",(0,i.jsx)(t.code,{children:"@Setter"})," + ",(0,i.jsx)(t.code,{children:"@EqualsAndHashCode"})," + ",(0,i.jsx)(t.code,{children:"@ToString"})]})]})]})]}),"\n",(0,i.jsx)(t.h2,{id:"beispiel",children:"Beispiel"}),"\n",(0,i.jsxs)(t.p,{children:["F\xfcr die Klasse ",(0,i.jsx)(t.code,{children:"Student"})," werden mit Hilfe von Lombok-Annotationen Konstruktoren,\nSetter und Getter sowie die Object-Methoden generiert."]}),"\n",(0,i.jsxs)(l.Z,{children:[(0,i.jsx)(o.Z,{value:"a",label:"Fachklasse",default:!0,children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-java",metastring:'title="Student.java" showLineNumbers',children:"@RequiredArgsConstructor\n@AllArgsConstructor\n@Getter\n@Setter\n@EqualsAndHashCode\n@ToString\npublic class Student {\n\n public final int id;\n public final String name;\n public double averageGrade;\n\n}\n"})})}),(0,i.jsx)(o.Z,{value:"b",label:"Startklasse",default:!0,children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-java",metastring:'title="MainClass.java" showLineNumbers',children:'public class MainClass {\n\n public static void main(String[] args) {\n\n Student student1 = new Student("8172534", "Hans Maier");\n student1.setAverageGrade(2.2);\n System.out.println(student1.getName());\n\n Student student2 = new Student("9167121", "Lisa M\xfcller", 1.8);\n System.out.println(student2);\n\n }\n\n}\n'})})})]})]})}function m(e={}){let{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},5525:function(e,t,n){n.d(t,{Z:()=>l});var r=n("85893");n("67294");var i=n("67026");let a="tabItem_Ymn6";function l(e){let{children:t,hidden:n,className:l}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,i.Z)(a,l),hidden:n,children:t})}},47902:function(e,t,n){n.d(t,{Z:()=>g});var r=n("85893"),i=n("67294"),a=n("67026"),l=n("69599"),o=n("16550"),s=n("32000"),d=n("4520"),c=n("38341"),u=n("76009");function h(e){return i.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||i.isValidElement(e)&&function(e){let{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})?.filter(Boolean)??[]}function m(e){let{value:t,tabValues:n}=e;return n.some(e=>e.value===t)}var p=n("7227");let b="tabList__CuJ",j="tabItem_LNqP";function f(e){let{className:t,block:n,selectedValue:i,selectValue:o,tabValues:s}=e,d=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.o5)(),u=e=>{let t=e.currentTarget,n=s[d.indexOf(t)].value;n!==i&&(c(t),o(n))},h=e=>{let t=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{let n=d.indexOf(e.currentTarget)+1;t=d[n]??d[0];break}case"ArrowLeft":{let n=d.indexOf(e.currentTarget)-1;t=d[n]??d[d.length-1]}}t?.focus()};return(0,r.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},t),children:s.map(e=>{let{value:t,label:n,attributes:l}=e;return(0,r.jsx)("li",{role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,ref:e=>d.push(e),onKeyDown:h,onClick:u,...l,className:(0,a.Z)("tabs__item",j,l?.className,{"tabs__item--active":i===t}),children:n??t},t)})})}function x(e){let{lazy:t,children:n,selectedValue:l}=e,o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){let e=o.find(e=>e.props.value===l);return e?(0,i.cloneElement)(e,{className:(0,a.Z)("margin-top--md",e.props.className)}):null}return(0,r.jsx)("div",{className:"margin-top--md",children:o.map((e,t)=>(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==l}))})}function v(e){let t=function(e){let{defaultValue:t,queryString:n=!1,groupId:r}=e,a=function(e){let{values:t,children:n}=e;return(0,i.useMemo)(()=>{let e=t??h(n).map(e=>{let{props:{value:t,label:n,attributes:r,default:i}}=e;return{value:t,label:n,attributes:r,default:i}});return!function(e){let t=(0,c.lx)(e,(e,t)=>e.value===t.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[t,n])}(e),[l,p]=(0,i.useState)(()=>(function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!m({value:t,tabValues:n}))throw Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}let r=n.find(e=>e.default)??n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:t,tabValues:a})),[b,j]=function(e){let{queryString:t=!1,groupId:n}=e,r=(0,o.k6)(),a=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n}),l=(0,d._X)(a);return[l,(0,i.useCallback)(e=>{if(!a)return;let t=new URLSearchParams(r.location.search);t.set(a,e),r.replace({...r.location,search:t.toString()})},[a,r])]}({queryString:n,groupId:r}),[f,x]=function(e){var t;let{groupId:n}=e;let r=(t=n)?`docusaurus.tab.${t}`:null,[a,l]=(0,u.Nk)(r);return[a,(0,i.useCallback)(e=>{if(!!r)l.set(e)},[r,l])]}({groupId:r}),v=(()=>{let e=b??f;return m({value:e,tabValues:a})?e:null})();return(0,s.Z)(()=>{v&&p(v)},[v]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!m({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);p(e),j(e),x(e)},[j,x,a]),tabValues:a}}(e);return(0,r.jsxs)("div",{className:(0,a.Z)("tabs-container",b),children:[(0,r.jsx)(f,{...t,...e}),(0,r.jsx)(x,{...t,...e})]})}function g(e){let t=(0,p.Z)();return(0,r.jsx)(v,{...e,children:h(e.children)},String(t))}},50065:function(e,t,n){n.d(t,{Z:function(){return o},a:function(){return l}});var r=n(67294);let i={},a=r.createContext(i);function l(e){let t=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/63687b58.0c57e996.js b/pr-preview/pr-238/assets/js/63687b58.0c57e996.js new file mode 100644 index 0000000000..2722ac13e2 --- /dev/null +++ b/pr-preview/pr-238/assets/js/63687b58.0c57e996.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["8827"],{69991:function(a){a.exports=JSON.parse('{"tag":{"label":"final","permalink":"/java-docs/pr-preview/pr-238/tags/final","allTagsPath":"/java-docs/pr-preview/pr-238/tags","count":2,"items":[{"id":"documentation/abstract-and-final","title":"Abstrakte und finale Klassen und Methoden","description":"","permalink":"/java-docs/pr-preview/pr-238/documentation/abstract-and-final"},{"id":"exercises/abstract-and-final/abstract-and-final","title":"Abstrakte und finale Klassen und Methoden","description":"","permalink":"/java-docs/pr-preview/pr-238/exercises/abstract-and-final/"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/636ac0ec.8a6487df.js b/pr-preview/pr-238/assets/js/636ac0ec.8a6487df.js new file mode 100644 index 0000000000..33495b552b --- /dev/null +++ b/pr-preview/pr-238/assets/js/636ac0ec.8a6487df.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["7405"],{13588:function(e,i,r){r.r(i),r.d(i,{metadata:()=>n,contentTitle:()=>o,default:()=>d,assets:()=>c,toc:()=>l,frontMatter:()=>t});var n=JSON.parse('{"id":"exam-exercises/exam-exercises-java2/class-diagrams/lego-brick","title":"Lego-Baustein","description":"","source":"@site/docs/exam-exercises/exam-exercises-java2/class-diagrams/lego-brick.md","sourceDirName":"exam-exercises/exam-exercises-java2/class-diagrams","slug":"/exam-exercises/exam-exercises-java2/class-diagrams/lego-brick","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/lego-brick","draft":false,"unlisted":false,"editUrl":"https://github.com/jappuccini/java-docs/tree/main/docs/exam-exercises/exam-exercises-java2/class-diagrams/lego-brick.md","tags":[{"inline":true,"label":"inheritance","permalink":"/java-docs/pr-preview/pr-238/tags/inheritance"},{"inline":true,"label":"polymorphism","permalink":"/java-docs/pr-preview/pr-238/tags/polymorphism"},{"inline":true,"label":"interfaces","permalink":"/java-docs/pr-preview/pr-238/tags/interfaces"},{"inline":true,"label":"comparators","permalink":"/java-docs/pr-preview/pr-238/tags/comparators"}],"version":"current","frontMatter":{"title":"Lego-Baustein","description":"","tags":["inheritance","polymorphism","interfaces","comparators"]},"sidebar":"examExercisesSidebar","previous":{"title":"Stellenangebot","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/job-offer"},"next":{"title":"Bibliothek","permalink":"/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/library"}}'),a=r("85893"),s=r("50065");let t={title:"Lego-Baustein",description:"",tags:["inheritance","polymorphism","interfaces","comparators"]},o=void 0,c={},l=[{value:"Klassendiagramm",id:"klassendiagramm",level:2},{value:"Allgemeine Hinweise",id:"allgemeine-hinweise",level:2},{value:"Hinweis zur Klasse <em>LegoBrickVolumeComparator</em>",id:"hinweis-zur-klasse-legobrickvolumecomparator",level:2}];function m(e){let i={code:"code",em:"em",h2:"h2",li:"li",mermaid:"mermaid",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.p,{children:"Setze das abgebildete Klassendiagramm vollst\xe4ndig um. Erstelle zum Testen eine\nausf\xfchrbare Klasse und/oder eine Testklasse."}),"\n",(0,a.jsx)(i.h2,{id:"klassendiagramm",children:"Klassendiagramm"}),"\n",(0,a.jsx)(i.mermaid,{value:"classDiagram\n Lego <|-- LegoBrick\n LegoBrick <|-- LegoBrick2x2x2 : extends\n LegoBrick <|-- LegoBrick4x2x1 : extends\n Comparator~LegoBrick~ <|.. LegoBrickVolumeComparator : implements\n\n class Lego {\n <<abstract>>\n -id: int #123;final#125;\n +Lego(id: int)\n }\n\n class LegoBrick {\n <<abstract>>\n -dimensions: int[3] #123;final#125;\n -color: String #123;final#125;\n +LegoBrick(id: int, dimensions: int[3], color: String)\n }\n\n class LegoBrick2x2x2 {\n +LegoBrick2x2x2(id: int, color: String)\n }\n\n class LegoBrick4x2x1 {\n +LegoBrick4x2x1(id: int, color: String)\n }\n\n class Comparator~LegoBrick~ {\n <<interface>>\n +compare(o1: LegoBrick, o2: LegoBrick) int\n }\n\n class LegoBrickVolumeComparator {\n +compare(legoBrick1: LegoBrick, legoBrick2: LegoBrick) int\n }"}),"\n",(0,a.jsx)(i.h2,{id:"allgemeine-hinweise",children:"Allgemeine Hinweise"}),"\n",(0,a.jsxs)(i.ul,{children:["\n",(0,a.jsx)(i.li,{children:"Aus Gr\xfcnden der \xdcbersicht werden im Klassendiagramm keine Getter und\nObject-Methoden dargestellt"}),"\n",(0,a.jsx)(i.li,{children:"So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die\nObject-Methoden wie gewohnt implementiert werden"}),"\n"]}),"\n",(0,a.jsxs)(i.h2,{id:"hinweis-zur-klasse-legobrickvolumecomparator",children:["Hinweis zur Klasse ",(0,a.jsx)(i.em,{children:"LegoBrickVolumeComparator"})]}),"\n",(0,a.jsxs)(i.p,{children:["Die Methode ",(0,a.jsx)(i.code,{children:"int compare(legoBrick1: LegoBrick, legoBrick2: LegoBrick)"})," soll so\nimplementiert werden, dass damit Lego-Bausteine aufsteigend nach ihrem Volumen\nsortiert werden k\xf6nnen."]})]})}function d(e={}){let{wrapper:i}={...(0,s.a)(),...e.components};return i?(0,a.jsx)(i,{...e,children:(0,a.jsx)(m,{...e})}):m(e)}},50065:function(e,i,r){r.d(i,{Z:function(){return o},a:function(){return t}});var n=r(67294);let a={},s=n.createContext(a);function t(e){let i=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function o(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:t(e.components),n.createElement(s.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/pr-preview/pr-238/assets/js/6392.a2ae774a.js b/pr-preview/pr-238/assets/js/6392.a2ae774a.js new file mode 100644 index 0000000000..23f7e288a0 --- /dev/null +++ b/pr-preview/pr-238/assets/js/6392.a2ae774a.js @@ -0,0 +1,36 @@ +(self.webpackChunkjava_docs=self.webpackChunkjava_docs||[]).push([["6392"],{29197:function(e){var t,n;t=0,n=function(){"use strict";let e=(e,t)=>{for(let n in t)e[n]=t[n];return e},t=(e,t)=>Array.from(e.querySelectorAll(t)),n=(e,t,n)=>{n?e.classList.add(t):e.classList.remove(t)},a=e=>{if("string"==typeof e){if("null"===e)return null;if("true"===e)return!0;if("false"===e)return!1;if(e.match(/^-?[\d\.]+$/))return parseFloat(e)}return e},i=(e,t)=>{e.style.transform=t},r=(e,t)=>{let n=e.matches||e.matchesSelector||e.msMatchesSelector;return!(!n||!n.call(e,t))},s=(e,t)=>{if("function"==typeof e.closest)return e.closest(t);for(;e;){if(r(e,t))return e;e=e.parentNode}return null},o=e=>{let t=(e=e||document.documentElement).requestFullscreen||e.webkitRequestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen;t&&t.apply(e)},l=e=>{let t=document.createElement("style");return t.type="text/css",e&&e.length>0&&(t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))),document.head.appendChild(t),t},c=()=>{let e={};for(let t in location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,t=>{e[t.split("=").shift()]=t.split("=").pop()}),e){let n=e[t];e[t]=a(unescape(n))}return void 0!==e.dependencies&&delete e.dependencies,e},d={mp4:"video/mp4",m4a:"video/mp4",ogv:"video/ogg",mpeg:"video/mpeg",webm:"video/webm"},_=navigator.userAgent,u=/(iphone|ipod|ipad|android)/gi.test(_)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,m=/android/gi.test(_);var p=function(e){if(e){var t=function(e){return[].slice.call(e)},n=3,a=[],i=null,r="requestAnimationFrame"in e?function(){e.cancelAnimationFrame(i),i=e.requestAnimationFrame(function(){return o(a.filter(function(e){return e.dirty&&e.active}))})}:function(){},s=function(e){return function(){a.forEach(function(t){return t.dirty=e}),r()}},o=function(e){e.filter(function(e){return!e.styleComputed}).forEach(function(e){e.styleComputed=_(e)}),e.filter(u).forEach(m);var t=e.filter(d);t.forEach(c),t.forEach(function(e){m(e),l(e)}),t.forEach(p)},l=function(e){return e.dirty=0},c=function(e){e.availableWidth=e.element.parentNode.clientWidth,e.currentWidth=e.element.scrollWidth,e.previousFontSize=e.currentFontSize,e.currentFontSize=Math.min(Math.max(e.minSize,e.availableWidth/e.currentWidth*e.previousFontSize),e.maxSize),e.whiteSpace=e.multiLine&&e.currentFontSize===e.minSize?"normal":"nowrap"},d=function(e){return 2!==e.dirty||2===e.dirty&&e.element.parentNode.clientWidth!==e.availableWidth},_=function(t){var n=e.getComputedStyle(t.element,null);return t.currentFontSize=parseFloat(n.getPropertyValue("font-size")),t.display=n.getPropertyValue("display"),t.whiteSpace=n.getPropertyValue("white-space"),!0},u=function(e){var t=!1;return!e.preStyleTestCompleted&&(/inline-/.test(e.display)||(t=!0,e.display="inline-block"),"nowrap"!==e.whiteSpace&&(t=!0,e.whiteSpace="nowrap"),e.preStyleTestCompleted=!0,t)},m=function(e){e.element.style.whiteSpace=e.whiteSpace,e.element.style.display=e.display,e.element.style.fontSize=e.currentFontSize+"px"},p=function(e){e.element.dispatchEvent(new CustomEvent("fit",{detail:{oldValue:e.previousFontSize,newValue:e.currentFontSize,scaleFactor:e.currentFontSize/e.previousFontSize}}))},g=function(e,t){return function(){e.dirty=t,e.active&&r()}},E=function(e){return function(){a=a.filter(function(t){return t.element!==e.element}),e.observeMutations&&e.observer.disconnect(),e.element.style.whiteSpace=e.originalStyle.whiteSpace,e.element.style.display=e.originalStyle.display,e.element.style.fontSize=e.originalStyle.fontSize}},S=function(e){return function(){e.active||(e.active=!0,r())}},b=function(e){return function(){return e.active=!1}},h=function(e){e.observeMutations&&(e.observer=new MutationObserver(g(e,1)),e.observer.observe(e.element,e.observeMutations))},f={minSize:16,maxSize:512,multiLine:!0,observeMutations:"MutationObserver"in e&&{subtree:!0,childList:!0,characterData:!0}},T=null,v=function(){e.clearTimeout(T),T=e.setTimeout(s(2),N.observeWindowDelay)},C=["resize","orientationchange"];return Object.defineProperty(N,"observeWindow",{set:function(t){var n="".concat(t?"add":"remove","EventListener");C.forEach(function(t){e[n](t,v)})}}),N.observeWindow=!0,N.observeWindowDelay=100,N.fitAll=s(n),N}function R(e,t){var i=Object.assign({},f,t),s=e.map(function(e){var t,r=Object.assign({},i,{element:e,active:!0});return(t=r).originalStyle={whiteSpace:t.element.style.whiteSpace,display:t.element.style.display,fontSize:t.element.style.fontSize},h(t),t.newbie=!0,t.dirty=!0,a.push(t),{element:e,fit:g(r,n),unfreeze:S(r),freeze:b(r),unsubscribe:E(r)}});return r(),s}function N(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e?R(t(document.querySelectorAll(e)),n):R([e],n)[0]}}("undefined"==typeof window?null:window);class g{constructor(e){this.Reveal=e,this.startEmbeddedIframe=this.startEmbeddedIframe.bind(this)}shouldPreload(e){if(this.Reveal.isScrollView())return!0;let t=this.Reveal.getConfig().preloadIframes;return"boolean"!=typeof t&&(t=e.hasAttribute("data-preload")),t}load(e,n={}){e.style.display=this.Reveal.getConfig().display,t(e,"img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach(e=>{("IFRAME"!==e.tagName||this.shouldPreload(e))&&(e.setAttribute("src",e.getAttribute("data-src")),e.setAttribute("data-lazy-loaded",""),e.removeAttribute("data-src"))}),t(e,"video, audio").forEach(e=>{let n=0;t(e,"source[data-src]").forEach(e=>{e.setAttribute("src",e.getAttribute("data-src")),e.removeAttribute("data-src"),e.setAttribute("data-lazy-loaded",""),n+=1}),u&&"VIDEO"===e.tagName&&e.setAttribute("playsinline",""),n>0&&e.load()});let a=e.slideBackgroundElement;if(a){a.style.display="block";let t=e.slideBackgroundContentElement,i=e.getAttribute("data-background-iframe");if(!1===a.hasAttribute("data-loaded")){a.setAttribute("data-loaded","true");let r=e.getAttribute("data-background-image"),s=e.getAttribute("data-background-video"),o=e.hasAttribute("data-background-video-loop"),l=e.hasAttribute("data-background-video-muted");if(r)/^data:/.test(r.trim())?t.style.backgroundImage=`url(${r.trim()})`:t.style.backgroundImage=r.split(",").map(e=>`url(${((e="")=>encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]").replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`))(decodeURI(e.trim()))})`).join(",");else if(s&&!this.Reveal.isSpeakerNotes()){let e=document.createElement("video");o&&e.setAttribute("loop",""),l&&(e.muted=!0),u&&(e.muted=!0,e.setAttribute("playsinline","")),s.split(",").forEach(t=>{let n=document.createElement("source");n.setAttribute("src",t);let a=((e="")=>d[e.split(".").pop()])(t);a&&n.setAttribute("type",a),e.appendChild(n)}),t.appendChild(e)}else if(i&&!0!==n.excludeIframes){let e=document.createElement("iframe");e.setAttribute("allowfullscreen",""),e.setAttribute("mozallowfullscreen",""),e.setAttribute("webkitallowfullscreen",""),e.setAttribute("allow","autoplay"),e.setAttribute("data-src",i),e.style.width="100%",e.style.height="100%",e.style.maxHeight="100%",e.style.maxWidth="100%",t.appendChild(e)}}let r=t.querySelector("iframe[data-src]");r&&this.shouldPreload(a)&&!/autoplay=(1|true|yes)/gi.test(i)&&r.getAttribute("src")!==i&&r.setAttribute("src",i)}this.layout(e)}layout(e){Array.from(e.querySelectorAll(".r-fit-text")).forEach(e=>{p(e,{minSize:24,maxSize:.8*this.Reveal.getConfig().height,observeMutations:!1,observeWindow:!1})})}unload(e){e.style.display="none";let n=this.Reveal.getSlideBackground(e);n&&(n.style.display="none",t(n,"iframe[src]").forEach(e=>{e.removeAttribute("src")})),t(e,"video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]").forEach(e=>{e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")}),t(e,"video[data-lazy-loaded] source[src], audio source[src]").forEach(e=>{e.setAttribute("data-src",e.getAttribute("src")),e.removeAttribute("src")})}formatEmbeddedContent(){let e=(e,n,a)=>{t(this.Reveal.getSlidesElement(),"iframe["+e+'*="'+n+'"]').forEach(t=>{let n=t.getAttribute(e);n&&-1===n.indexOf(a)&&t.setAttribute(e,n+(/\?/.test(n)?"&":"?")+a)})};e("src","youtube.com/embed/","enablejsapi=1"),e("data-src","youtube.com/embed/","enablejsapi=1"),e("src","player.vimeo.com/","api=1"),e("data-src","player.vimeo.com/","api=1")}startEmbeddedContent(e){e&&!this.Reveal.isSpeakerNotes()&&(t(e,'img[src$=".gif"]').forEach(e=>{e.setAttribute("src",e.getAttribute("src"))}),t(e,"video, audio").forEach(e=>{if(s(e,".fragment")&&!s(e,".fragment.visible"))return;let t=this.Reveal.getConfig().autoPlayMedia;if("boolean"!=typeof t&&(t=e.hasAttribute("data-autoplay")||!!s(e,".slide-background")),t&&"function"==typeof e.play){if(e.readyState>1)this.startEmbeddedMedia({target:e});else if(u){let t=e.play();t&&"function"==typeof t.catch&&!1===e.controls&&t.catch(()=>{e.controls=!0,e.addEventListener("play",()=>{e.controls=!1})})}else e.removeEventListener("loadeddata",this.startEmbeddedMedia),e.addEventListener("loadeddata",this.startEmbeddedMedia)}}),t(e,"iframe[src]").forEach(e=>{s(e,".fragment")&&!s(e,".fragment.visible")||this.startEmbeddedIframe({target:e})}),t(e,"iframe[data-src]").forEach(e=>{s(e,".fragment")&&!s(e,".fragment.visible")||e.getAttribute("src")!==e.getAttribute("data-src")&&(e.removeEventListener("load",this.startEmbeddedIframe),e.addEventListener("load",this.startEmbeddedIframe),e.setAttribute("src",e.getAttribute("data-src")))}))}startEmbeddedMedia(e){let t=!!s(e.target,"html"),n=!!s(e.target,".present");t&&n&&(e.target.paused||e.target.ended)&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",this.startEmbeddedMedia)}startEmbeddedIframe(e){let t=e.target;if(t&&t.contentWindow){let n=!!s(e.target,"html"),a=!!s(e.target,".present");if(n&&a){let e=this.Reveal.getConfig().autoPlayMedia;"boolean"!=typeof e&&(e=t.hasAttribute("data-autoplay")||!!s(t,".slide-background")),/youtube\.com\/embed\//.test(t.getAttribute("src"))&&e?t.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(t.getAttribute("src"))&&e?t.contentWindow.postMessage('{"method":"play"}',"*"):t.contentWindow.postMessage("slide:start","*")}}}stopEmbeddedContent(n,a={}){a=e({unloadIframes:!0},a),n&&n.parentNode&&(t(n,"video, audio").forEach(e=>{e.hasAttribute("data-ignore")||"function"!=typeof e.pause||(e.setAttribute("data-paused-by-reveal",""),e.pause())}),t(n,"iframe").forEach(e=>{e.contentWindow&&e.contentWindow.postMessage("slide:stop","*"),e.removeEventListener("load",this.startEmbeddedIframe)}),t(n,'iframe[src*="youtube.com/embed/"]').forEach(e=>{!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),t(n,'iframe[src*="player.vimeo.com/"]').forEach(e=>{!e.hasAttribute("data-ignore")&&e.contentWindow&&"function"==typeof e.contentWindow.postMessage&&e.contentWindow.postMessage('{"method":"pause"}',"*")}),!0===a.unloadIframes&&t(n,"iframe[data-src]").forEach(e=>{e.setAttribute("src","about:blank"),e.removeAttribute("src")}))}}let E=".slides section",S=".slides>section",b=".slides>section.present>section",h=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview/,f=/fade-(down|up|right|left|out|in-then-out|in-then-semi-out)|semi-fade-out|current-visible|shrink|grow/;class T{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="slide-number",this.Reveal.getRevealElement().appendChild(this.element)}configure(e,t){let n="none";e.slideNumber&&!this.Reveal.isPrintView()&&("all"===e.showSlideNumber||"speaker"===e.showSlideNumber&&this.Reveal.isSpeakerNotes())&&(n="block"),this.element.style.display=n}update(){this.Reveal.getConfig().slideNumber&&this.element&&(this.element.innerHTML=this.getSlideNumber())}getSlideNumber(e=this.Reveal.getCurrentSlide()){let t,n=this.Reveal.getConfig(),a="h.v";if("function"==typeof n.slideNumber)t=n.slideNumber(e);else{"string"==typeof n.slideNumber&&(a=n.slideNumber),/c/.test(a)||1!==this.Reveal.getHorizontalSlides().length||(a="c");let i=e&&"uncounted"===e.dataset.visibility?0:1;switch(t=[],a){case"c":t.push(this.Reveal.getSlidePastCount(e)+i);break;case"c/t":t.push(this.Reveal.getSlidePastCount(e)+i,"/",this.Reveal.getTotalSlides());break;default:let r=this.Reveal.getIndices(e);t.push(r.h+i);let s="h/v"===a?"/":".";this.Reveal.isVerticalSlide(e)&&t.push(s,r.v+1)}}let i="#"+this.Reveal.location.getHash(e);return this.formatNumber(t[0],t[1],t[2],i)}formatNumber(e,t,n,a="#"+this.Reveal.location.getHash()){return"number"!=typeof n||isNaN(n)?`<a href="${a}"> + <span class="slide-number-a">${e}</span> + </a>`:`<a href="${a}"> + <span class="slide-number-a">${e}</span> + <span class="slide-number-delimiter">${t}</span> + <span class="slide-number-b">${n}</span> + </a>`}destroy(){this.element.remove()}}class v{constructor(e){this.Reveal=e,this.onInput=this.onInput.bind(this),this.onBlur=this.onBlur.bind(this),this.onKeyDown=this.onKeyDown.bind(this)}render(){this.element=document.createElement("div"),this.element.className="jump-to-slide",this.jumpInput=document.createElement("input"),this.jumpInput.type="text",this.jumpInput.className="jump-to-slide-input",this.jumpInput.placeholder="Jump to slide",this.jumpInput.addEventListener("input",this.onInput),this.jumpInput.addEventListener("keydown",this.onKeyDown),this.jumpInput.addEventListener("blur",this.onBlur),this.element.appendChild(this.jumpInput)}show(){this.indicesOnShow=this.Reveal.getIndices(),this.Reveal.getRevealElement().appendChild(this.element),this.jumpInput.focus()}hide(){this.isVisible()&&(this.element.remove(),this.jumpInput.value="",clearTimeout(this.jumpTimeout),delete this.jumpTimeout)}isVisible(){return!!this.element.parentNode}jump(){clearTimeout(this.jumpTimeout),delete this.jumpTimeout;let e,t=this.jumpInput.value.trim("");if(/^\d+$/.test(t)){let n=this.Reveal.getConfig().slideNumber;if("c"===n||"c/t"===n){let n=this.Reveal.getSlides()[parseInt(t,10)-1];n&&(e=this.Reveal.getIndices(n))}}return e||(/^\d+\.\d+$/.test(t)&&(t=t.replace(".","/")),e=this.Reveal.location.getIndicesFromHash(t,{oneBasedIndex:!0})),!e&&/\S+/i.test(t)&&t.length>1&&(e=this.search(t)),e&&""!==t?(this.Reveal.slide(e.h,e.v,e.f),!0):(this.Reveal.slide(this.indicesOnShow.h,this.indicesOnShow.v,this.indicesOnShow.f),!1)}jumpAfter(e){clearTimeout(this.jumpTimeout),this.jumpTimeout=setTimeout(()=>this.jump(),e)}search(e){let t=RegExp("\\b"+e.trim()+"\\b","i"),n=this.Reveal.getSlides().find(e=>t.test(e.innerText));return n?this.Reveal.getIndices(n):null}cancel(){this.Reveal.slide(this.indicesOnShow.h,this.indicesOnShow.v,this.indicesOnShow.f),this.hide()}confirm(){this.jump(),this.hide()}destroy(){this.jumpInput.removeEventListener("input",this.onInput),this.jumpInput.removeEventListener("keydown",this.onKeyDown),this.jumpInput.removeEventListener("blur",this.onBlur),this.element.remove()}onKeyDown(e){13===e.keyCode?this.confirm():27===e.keyCode&&(this.cancel(),e.stopImmediatePropagation())}onInput(e){this.jumpAfter(200)}onBlur(){setTimeout(()=>this.hide(),1)}}let C=e=>{let t=e.match(/^#([0-9a-f]{3})$/i);if(t&&t[1])return{r:17*parseInt((t=t[1]).charAt(0),16),g:17*parseInt(t.charAt(1),16),b:17*parseInt(t.charAt(2),16)};let n=e.match(/^#([0-9a-f]{6})$/i);if(n&&n[1])return{r:parseInt((n=n[1]).slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16)};let a=e.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(a)return{r:parseInt(a[1],10),g:parseInt(a[2],10),b:parseInt(a[3],10)};let i=e.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);return i?{r:parseInt(i[1],10),g:parseInt(i[2],10),b:parseInt(i[3],10),a:parseFloat(i[4])}:null};class R{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="backgrounds",this.Reveal.getRevealElement().appendChild(this.element)}create(){this.element.innerHTML="",this.element.classList.add("no-transition"),this.Reveal.getHorizontalSlides().forEach(e=>{let n=this.createBackground(e,this.element);t(e,"section").forEach(e=>{this.createBackground(e,n),n.classList.add("stack")})}),this.Reveal.getConfig().parallaxBackgroundImage?(this.element.style.backgroundImage='url("'+this.Reveal.getConfig().parallaxBackgroundImage+'")',this.element.style.backgroundSize=this.Reveal.getConfig().parallaxBackgroundSize,this.element.style.backgroundRepeat=this.Reveal.getConfig().parallaxBackgroundRepeat,this.element.style.backgroundPosition=this.Reveal.getConfig().parallaxBackgroundPosition,setTimeout(()=>{this.Reveal.getRevealElement().classList.add("has-parallax-background")},1)):(this.element.style.backgroundImage="",this.Reveal.getRevealElement().classList.remove("has-parallax-background"))}createBackground(e,t){let n=document.createElement("div");n.className="slide-background "+e.className.replace(/present|past|future/,"");let a=document.createElement("div");return a.className="slide-background-content",n.appendChild(a),t.appendChild(n),e.slideBackgroundElement=n,e.slideBackgroundContentElement=a,this.sync(e),n}sync(e){let t=e.slideBackgroundElement,n=e.slideBackgroundContentElement,a={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundImage:e.getAttribute("data-background-image"),backgroundVideo:e.getAttribute("data-background-video"),backgroundIframe:e.getAttribute("data-background-iframe"),backgroundColor:e.getAttribute("data-background-color"),backgroundGradient:e.getAttribute("data-background-gradient"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position"),backgroundTransition:e.getAttribute("data-background-transition"),backgroundOpacity:e.getAttribute("data-background-opacity")},i=e.hasAttribute("data-preload");e.classList.remove("has-dark-background"),e.classList.remove("has-light-background"),t.removeAttribute("data-loaded"),t.removeAttribute("data-background-hash"),t.removeAttribute("data-background-size"),t.removeAttribute("data-background-transition"),t.style.backgroundColor="",n.style.backgroundSize="",n.style.backgroundRepeat="",n.style.backgroundPosition="",n.style.backgroundImage="",n.style.opacity="",n.innerHTML="",a.background&&(/^(http|file|\/\/)/gi.test(a.background)||/\.(svg|png|jpg|jpeg|gif|bmp|webp)([?#\s]|$)/gi.test(a.background)?e.setAttribute("data-background-image",a.background):t.style.background=a.background),(a.background||a.backgroundColor||a.backgroundGradient||a.backgroundImage||a.backgroundVideo||a.backgroundIframe)&&t.setAttribute("data-background-hash",a.background+a.backgroundSize+a.backgroundImage+a.backgroundVideo+a.backgroundIframe+a.backgroundColor+a.backgroundGradient+a.backgroundRepeat+a.backgroundPosition+a.backgroundTransition+a.backgroundOpacity),a.backgroundSize&&t.setAttribute("data-background-size",a.backgroundSize),a.backgroundColor&&(t.style.backgroundColor=a.backgroundColor),a.backgroundGradient&&(t.style.backgroundImage=a.backgroundGradient),a.backgroundTransition&&t.setAttribute("data-background-transition",a.backgroundTransition),i&&t.setAttribute("data-preload",""),a.backgroundSize&&(n.style.backgroundSize=a.backgroundSize),a.backgroundRepeat&&(n.style.backgroundRepeat=a.backgroundRepeat),a.backgroundPosition&&(n.style.backgroundPosition=a.backgroundPosition),a.backgroundOpacity&&(n.style.opacity=a.backgroundOpacity);let r=this.getContrastClass(e);"string"==typeof r&&e.classList.add(r)}getContrastClass(e){var t;let n=e.slideBackgroundElement,a=e.getAttribute("data-background-color");if(!a||!C(a)){let e=window.getComputedStyle(n);e&&e.backgroundColor&&(a=e.backgroundColor)}if(a){let e=C(a);if(e&&0!==e.a)return"string"==typeof(t=a)&&(t=C(t)),(t?(299*t.r+587*t.g+114*t.b)/1e3:null)<128?"has-dark-background":"has-light-background"}return null}bubbleSlideContrastClassToElement(e,t){["has-light-background","has-dark-background"].forEach(n=>{e.classList.contains(n)?t.classList.add(n):t.classList.remove(n)},this)}update(e=!1){let n=this.Reveal.getConfig(),a=this.Reveal.getCurrentSlide(),i=this.Reveal.getIndices(),r=null,s=n.rtl?"future":"past",o=n.rtl?"past":"future";if(Array.from(this.element.childNodes).forEach((n,a)=>{n.classList.remove("past","present","future"),a<i.h?n.classList.add(s):a>i.h?n.classList.add(o):(n.classList.add("present"),r=n),(e||a===i.h)&&t(n,".slide-background").forEach((e,t)=>{e.classList.remove("past","present","future");let n="number"==typeof i.v?i.v:0;t<n?e.classList.add("past"):t>n?e.classList.add("future"):(e.classList.add("present"),a===i.h&&(r=e))})}),this.previousBackground&&!this.previousBackground.closest("body")&&(this.previousBackground=null),r&&this.previousBackground){let e=this.previousBackground.getAttribute("data-background-hash"),t=r.getAttribute("data-background-hash");if(t&&t===e&&r!==this.previousBackground){this.element.classList.add("no-transition");let e=r.querySelector("video"),t=this.previousBackground.querySelector("video");if(e&&t){let n=e.parentNode;t.parentNode.appendChild(e),n.appendChild(t)}}}if(this.previousBackground&&this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground,{unloadIframes:!this.Reveal.slideContent.shouldPreload(this.previousBackground)}),r){this.Reveal.slideContent.startEmbeddedContent(r);let e=r.querySelector(".slide-background-content");if(e){let t=e.style.backgroundImage||"";/\.gif/i.test(t)&&(e.style.backgroundImage="",window.getComputedStyle(e).opacity,e.style.backgroundImage=t)}this.previousBackground=r}a&&this.bubbleSlideContrastClassToElement(a,this.Reveal.getRevealElement()),setTimeout(()=>{this.element.classList.remove("no-transition")},10)}updateParallax(){let e=this.Reveal.getIndices();if(this.Reveal.getConfig().parallaxBackgroundImage){let t,n,a=this.Reveal.getHorizontalSlides(),i=this.Reveal.getVerticalSlides(),r=this.element.style.backgroundSize.split(" ");1===r.length?t=n=parseInt(r[0],10):(t=parseInt(r[0],10),n=parseInt(r[1],10));let s,o=this.element.offsetWidth,l=a.length;s=-(("number"==typeof this.Reveal.getConfig().parallaxBackgroundHorizontal?this.Reveal.getConfig().parallaxBackgroundHorizontal:l>1?(t-o)/(l-1):0)*e.h*1);let c,d,_=this.element.offsetHeight,u=i.length;c="number"==typeof this.Reveal.getConfig().parallaxBackgroundVertical?this.Reveal.getConfig().parallaxBackgroundVertical:(n-_)/(u-1),d=u>0?c*e.v:0,this.element.style.backgroundPosition=s+"px "+-d+"px"}}destroy(){this.element.remove()}}let N=0;class y{constructor(e){this.Reveal=e}run(e,t){this.reset();let n=this.Reveal.getSlides(),a=n.indexOf(t),i=n.indexOf(e);if(e&&t&&e.hasAttribute("data-auto-animate")&&t.hasAttribute("data-auto-animate")&&e.getAttribute("data-auto-animate-id")===t.getAttribute("data-auto-animate-id")&&!(a>i?t:e).hasAttribute("data-auto-animate-restart")){this.autoAnimateStyleSheet=this.autoAnimateStyleSheet||l();let n=this.getAutoAnimateOptions(t);e.dataset.autoAnimate="pending",t.dataset.autoAnimate="pending",n.slideDirection=a>i?"forward":"backward";let r="none"===e.style.display;r&&(e.style.display=this.Reveal.getConfig().display);let s=this.getAutoAnimatableElements(e,t).map(e=>this.autoAnimateElements(e.from,e.to,e.options||{},n,N++));if(r&&(e.style.display="none"),"false"!==t.dataset.autoAnimateUnmatched&&!0===this.Reveal.getConfig().autoAnimateUnmatched){let e=.8*n.duration,a=.2*n.duration;this.getUnmatchedAutoAnimateElements(t).forEach(e=>{let t=this.getAutoAnimateOptions(e,n),a="unmatched";t.duration===n.duration&&t.delay===n.delay||(a="unmatched-"+N++,s.push(`[data-auto-animate="running"] [data-auto-animate-target="${a}"] { transition: opacity ${t.duration}s ease ${t.delay}s; }`)),e.dataset.autoAnimateTarget=a},this),s.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${e}s ease ${a}s; }`)}this.autoAnimateStyleSheet.innerHTML=s.join(""),requestAnimationFrame(()=>{this.autoAnimateStyleSheet&&(getComputedStyle(this.autoAnimateStyleSheet).fontWeight,t.dataset.autoAnimate="running")}),this.Reveal.dispatchEvent({type:"autoanimate",data:{fromSlide:e,toSlide:t,sheet:this.autoAnimateStyleSheet}})}}reset(){t(this.Reveal.getRevealElement(),'[data-auto-animate]:not([data-auto-animate=""])').forEach(e=>{e.dataset.autoAnimate=""}),t(this.Reveal.getRevealElement(),"[data-auto-animate-target]").forEach(e=>{delete e.dataset.autoAnimateTarget}),this.autoAnimateStyleSheet&&this.autoAnimateStyleSheet.parentNode&&(this.autoAnimateStyleSheet.parentNode.removeChild(this.autoAnimateStyleSheet),this.autoAnimateStyleSheet=null)}autoAnimateElements(e,t,n,a,i){e.dataset.autoAnimateTarget="",t.dataset.autoAnimateTarget=i;let r=this.getAutoAnimateOptions(t,a);void 0!==n.delay&&(r.delay=n.delay),void 0!==n.duration&&(r.duration=n.duration),void 0!==n.easing&&(r.easing=n.easing);let s=this.getAutoAnimatableProperties("from",e,n),o=this.getAutoAnimatableProperties("to",t,n);if(t.classList.contains("fragment")&&(delete o.styles.opacity,e.classList.contains("fragment"))&&(e.className.match(f)||[""])[0]===(t.className.match(f)||[""])[0]&&"forward"===a.slideDirection&&t.classList.add("visible","disabled"),!1!==n.translate||!1!==n.scale){let e=this.Reveal.getScale(),t={x:(s.x-o.x)/e,y:(s.y-o.y)/e,scaleX:s.width/o.width,scaleY:s.height/o.height};t.x=Math.round(1e3*t.x)/1e3,t.y=Math.round(1e3*t.y)/1e3,t.scaleX=Math.round(1e3*t.scaleX)/1e3,t.scaleX=Math.round(1e3*t.scaleX)/1e3;let a=!1!==n.translate&&(0!==t.x||0!==t.y),i=!1!==n.scale&&(0!==t.scaleX||0!==t.scaleY);if(a||i){let e=[];a&&e.push(`translate(${t.x}px, ${t.y}px)`),i&&e.push(`scale(${t.scaleX}, ${t.scaleY})`),s.styles.transform=e.join(" "),s.styles["transform-origin"]="top left",o.styles.transform="none"}}for(let e in o.styles){let t=o.styles[e],n=s.styles[e];t===n?delete o.styles[e]:(!0===t.explicitValue&&(o.styles[e]=t.value),!0===n.explicitValue&&(s.styles[e]=n.value))}let l="",c=Object.keys(o.styles);return c.length>0&&(s.styles.transition="none",o.styles.transition=`all ${r.duration}s ${r.easing} ${r.delay}s`,o.styles["transition-property"]=c.join(", "),o.styles["will-change"]=c.join(", "),l='[data-auto-animate-target="'+i+'"] {'+Object.keys(s.styles).map(e=>e+": "+s.styles[e]+" !important;").join("")+'}[data-auto-animate="running"] [data-auto-animate-target="'+i+'"] {'+Object.keys(o.styles).map(e=>e+": "+o.styles[e]+" !important;").join("")+"}"),l}getAutoAnimateOptions(t,n){let a={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(a=e(a,n),t.parentNode){let e=s(t.parentNode,"[data-auto-animate-target]");e&&(a=this.getAutoAnimateOptions(e,a))}return t.dataset.autoAnimateEasing&&(a.easing=t.dataset.autoAnimateEasing),t.dataset.autoAnimateDuration&&(a.duration=parseFloat(t.dataset.autoAnimateDuration)),t.dataset.autoAnimateDelay&&(a.delay=parseFloat(t.dataset.autoAnimateDelay)),a}getAutoAnimatableProperties(e,t,n){let a=this.Reveal.getConfig(),i={styles:[]};if(!1!==n.translate||!1!==n.scale){let e;if("function"==typeof n.measure)e=n.measure(t);else if(a.center)e=t.getBoundingClientRect();else{let n=this.Reveal.getScale();e={x:t.offsetLeft*n,y:t.offsetTop*n,width:t.offsetWidth*n,height:t.offsetHeight*n}}i.x=e.x,i.y=e.y,i.width=e.width,i.height=e.height}let r=getComputedStyle(t);return(n.styles||a.autoAnimateStyles).forEach(t=>{let n;"string"==typeof t&&(t={property:t}),void 0!==t.from&&"from"===e?n={value:t.from,explicitValue:!0}:void 0!==t.to&&"to"===e?n={value:t.to,explicitValue:!0}:("line-height"===t.property&&(n=parseFloat(r["line-height"])/parseFloat(r["font-size"])),isNaN(n)&&(n=r[t.property])),""!==n&&(i.styles[t.property]=n)}),i}getAutoAnimatableElements(e,t){let n=("function"==typeof this.Reveal.getConfig().autoAnimateMatcher?this.Reveal.getConfig().autoAnimateMatcher:this.getAutoAnimatePairs).call(this,e,t),a=[];return n.filter((e,t)=>{if(-1===a.indexOf(e.to))return a.push(e.to),!0})}getAutoAnimatePairs(e,t){let n=[],a="h1, h2, h3, h4, h5, h6, p, li";return this.findAutoAnimateMatches(n,e,t,"[data-id]",e=>e.nodeName+":::"+e.getAttribute("data-id")),this.findAutoAnimateMatches(n,e,t,a,e=>e.nodeName+":::"+e.innerText),this.findAutoAnimateMatches(n,e,t,"img, video, iframe",e=>e.nodeName+":::"+(e.getAttribute("src")||e.getAttribute("data-src"))),this.findAutoAnimateMatches(n,e,t,"pre",e=>e.nodeName+":::"+e.innerText),n.forEach(e=>{r(e.from,a)?e.options={scale:!1}:r(e.from,"pre")&&(e.options={scale:!1,styles:["width","height"]},this.findAutoAnimateMatches(n,e.from,e.to,".hljs .hljs-ln-code",e=>e.textContent,{scale:!1,styles:[],measure:this.getLocalBoundingBox.bind(this)}),this.findAutoAnimateMatches(n,e.from,e.to,".hljs .hljs-ln-numbers[data-line-number]",e=>e.getAttribute("data-line-number"),{scale:!1,styles:["width"],measure:this.getLocalBoundingBox.bind(this)}))},this),n}getLocalBoundingBox(e){let t=this.Reveal.getScale();return{x:Math.round(e.offsetLeft*t*100)/100,y:Math.round(e.offsetTop*t*100)/100,width:Math.round(e.offsetWidth*t*100)/100,height:Math.round(e.offsetHeight*t*100)/100}}findAutoAnimateMatches(e,t,n,a,i,r){let s={},o={};[].slice.call(t.querySelectorAll(a)).forEach((e,t)=>{let n=i(e);"string"==typeof n&&n.length&&(s[n]=s[n]||[],s[n].push(e))}),[].slice.call(n.querySelectorAll(a)).forEach((t,n)=>{let a;let l=i(t);if(o[l]=o[l]||[],o[l].push(t),s[l]){let e=o[l].length-1,t=s[l].length-1;s[l][e]?(a=s[l][e],s[l][e]=null):s[l][t]&&(a=s[l][t],s[l][t]=null)}a&&e.push({from:a,to:t,options:r})})}getUnmatchedAutoAnimateElements(e){return[].slice.call(e.children).reduce((e,t)=>{let n=t.querySelector("[data-auto-animate-target]");return t.hasAttribute("data-auto-animate-target")||n||e.push(t),t.querySelector("[data-auto-animate-target]")&&(e=e.concat(this.getUnmatchedAutoAnimateElements(t))),e},[])}}class O{constructor(e){this.Reveal=e,this.active=!1,this.activatedCallbacks=[],this.onScroll=this.onScroll.bind(this)}activate(){let e,n;if(this.active)return;let a=this.Reveal.getState();this.active=!0,this.slideHTMLBeforeActivation=this.Reveal.getSlidesElement().innerHTML;let i=t(this.Reveal.getRevealElement(),S),r=t(this.Reveal.getRevealElement(),".backgrounds>.slide-background");this.viewportElement.classList.add("loading-scroll-mode","reveal-scroll");let s=window.getComputedStyle(this.viewportElement);s&&s.background&&(e=s.background);let o=[],l=i[0].parentNode,c=(t,a,i,s)=>{let l;if(n&&this.Reveal.shouldAutoAnimateBetween(n,t))(l=document.createElement("div")).className="scroll-page-content scroll-auto-animate-page",l.style.display="none",n.closest(".scroll-page-content").parentNode.appendChild(l);else{let t=document.createElement("div");if(t.className="scroll-page",o.push(t),s&&r.length>a){let n=r[a],i=window.getComputedStyle(n);i&&i.background?t.style.background=i.background:e&&(t.style.background=e)}else e&&(t.style.background=e);let n=document.createElement("div");n.className="scroll-page-sticky",t.appendChild(n),(l=document.createElement("div")).className="scroll-page-content",n.appendChild(l)}l.appendChild(t),t.classList.remove("past","future"),t.setAttribute("data-index-h",a),t.setAttribute("data-index-v",i),t.slideBackgroundElement&&(t.slideBackgroundElement.remove("past","future"),l.insertBefore(t.slideBackgroundElement,t)),n=t};i.forEach((e,t)=>{this.Reveal.isVerticalStack(e)?e.querySelectorAll("section").forEach((e,n)=>{c(e,t,n,!0)}):c(e,t,0)},this),this.createProgressBar(),t(this.Reveal.getRevealElement(),".stack").forEach(e=>e.remove()),o.forEach(e=>l.appendChild(e)),this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()),this.Reveal.layout(),this.Reveal.setState(a),this.activatedCallbacks.forEach(e=>e()),this.activatedCallbacks=[],this.restoreScrollPosition(),this.viewportElement.classList.remove("loading-scroll-mode"),this.viewportElement.addEventListener("scroll",this.onScroll,{passive:!0})}deactivate(){if(!this.active)return;let e=this.Reveal.getState();this.active=!1,this.viewportElement.removeEventListener("scroll",this.onScroll),this.viewportElement.classList.remove("reveal-scroll"),this.removeProgressBar(),this.Reveal.getSlidesElement().innerHTML=this.slideHTMLBeforeActivation,this.Reveal.sync(),this.Reveal.setState(e),this.slideHTMLBeforeActivation=null}toggle(e){"boolean"==typeof e?e?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}isActive(){return this.active}createProgressBar(){this.progressBar=document.createElement("div"),this.progressBar.className="scrollbar",this.progressBarInner=document.createElement("div"),this.progressBarInner.className="scrollbar-inner",this.progressBar.appendChild(this.progressBarInner),this.progressBarPlayhead=document.createElement("div"),this.progressBarPlayhead.className="scrollbar-playhead",this.progressBarInner.appendChild(this.progressBarPlayhead),this.viewportElement.insertBefore(this.progressBar,this.viewportElement.firstChild);let e=e=>{let t=(e.clientY-this.progressBarInner.getBoundingClientRect().top)/this.progressBarHeight;t=Math.max(Math.min(t,1),0),this.viewportElement.scrollTop=t*(this.viewportElement.scrollHeight-this.viewportElement.offsetHeight)},t=n=>{this.draggingProgressBar=!1,this.showProgressBar(),document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",t)};this.progressBarInner.addEventListener("mousedown",n=>{n.preventDefault(),this.draggingProgressBar=!0,document.addEventListener("mousemove",e),document.addEventListener("mouseup",t),e(n)})}removeProgressBar(){this.progressBar&&(this.progressBar.remove(),this.progressBar=null)}layout(){this.isActive()&&(this.syncPages(),this.syncScrollPosition())}syncPages(){let e=this.Reveal.getConfig(),t=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),n=this.Reveal.getScale(),a="compact"===e.scrollLayout,i=this.viewportElement.offsetHeight,r=t.height*n,s=a?r:i;this.scrollTriggerHeight=a?r:i,this.viewportElement.style.setProperty("--page-height",s+"px"),this.viewportElement.style.scrollSnapType="string"==typeof e.scrollSnap?`y ${e.scrollSnap}`:"",this.slideTriggers=[];let o=Array.from(this.Reveal.getRevealElement().querySelectorAll(".scroll-page"));this.pages=o.map(n=>{let r=this.createPage({pageElement:n,slideElement:n.querySelector("section"),stickyElement:n.querySelector(".scroll-page-sticky"),contentElement:n.querySelector(".scroll-page-content"),backgroundElement:n.querySelector(".slide-background"),autoAnimateElements:n.querySelectorAll(".scroll-auto-animate-page"),autoAnimatePages:[]});r.pageElement.style.setProperty("--slide-height",!0===e.center?"auto":t.height+"px"),this.slideTriggers.push({page:r,activate:()=>this.activatePage(r),deactivate:()=>this.deactivatePage(r)}),this.createFragmentTriggersForPage(r),r.autoAnimateElements.length>0&&this.createAutoAnimateTriggersForPage(r);let o=Math.max(r.scrollTriggers.length-1,0);o+=r.autoAnimatePages.reduce((e,t)=>e+Math.max(t.scrollTriggers.length-1,0),r.autoAnimatePages.length),r.pageElement.querySelectorAll(".scroll-snap-point").forEach(e=>e.remove());for(let e=0;e<o+1;e++){let t=document.createElement("div");t.className="scroll-snap-point",t.style.height=this.scrollTriggerHeight+"px",t.style.scrollSnapAlign=a?"center":"start",r.pageElement.appendChild(t),0===e&&(t.style.marginTop=-this.scrollTriggerHeight+"px")}return a&&r.scrollTriggers.length>0?(r.pageHeight=i,r.pageElement.style.setProperty("--page-height",i+"px")):(r.pageHeight=s,r.pageElement.style.removeProperty("--page-height")),r.scrollPadding=this.scrollTriggerHeight*o,r.totalHeight=r.pageHeight+r.scrollPadding,r.pageElement.style.setProperty("--page-scroll-padding",r.scrollPadding+"px"),o>0?(r.stickyElement.style.position="sticky",r.stickyElement.style.top=Math.max((i-r.pageHeight)/2,0)+"px"):(r.stickyElement.style.position="relative",r.pageElement.style.scrollSnapAlign=r.pageHeight<i?"center":"start"),r}),this.setTriggerRanges(),this.viewportElement.setAttribute("data-scrollbar",e.scrollProgress),e.scrollProgress&&this.totalScrollTriggerCount>1?(this.progressBar||this.createProgressBar(),this.syncProgressBar()):this.removeProgressBar()}setTriggerRanges(){this.totalScrollTriggerCount=this.slideTriggers.reduce((e,t)=>e+Math.max(t.page.scrollTriggers.length,1),0);let e=0;this.slideTriggers.forEach((t,n)=>{t.range=[e,e+Math.max(t.page.scrollTriggers.length,1)/this.totalScrollTriggerCount];let a=(t.range[1]-t.range[0])/t.page.scrollTriggers.length;t.page.scrollTriggers.forEach((t,n)=>{t.range=[e+n*a,e+(n+1)*a]}),e=t.range[1]})}createFragmentTriggersForPage(e,t){t=t||e.slideElement;let n=this.Reveal.fragments.sort(t.querySelectorAll(".fragment"),!0);return n.length&&(e.fragments=this.Reveal.fragments.sort(t.querySelectorAll(".fragment:not(.disabled)")),e.scrollTriggers.push({activate:()=>{this.Reveal.fragments.update(-1,e.fragments,t)}}),n.forEach((n,a)=>{e.scrollTriggers.push({activate:()=>{this.Reveal.fragments.update(a,e.fragments,t)}})})),e.scrollTriggers.length}createAutoAnimateTriggersForPage(e){e.autoAnimateElements.length>0&&this.slideTriggers.push(...Array.from(e.autoAnimateElements).map((t,n)=>{let a=this.createPage({slideElement:t.querySelector("section"),contentElement:t,backgroundElement:t.querySelector(".slide-background")});return this.createFragmentTriggersForPage(a,a.slideElement),e.autoAnimatePages.push(a),{page:a,activate:()=>this.activatePage(a),deactivate:()=>this.deactivatePage(a)}}))}createPage(e){return e.scrollTriggers=[],e.indexh=parseInt(e.slideElement.getAttribute("data-index-h"),10),e.indexv=parseInt(e.slideElement.getAttribute("data-index-v"),10),e}syncProgressBar(){this.progressBarInner.querySelectorAll(".scrollbar-slide").forEach(e=>e.remove());let e=this.viewportElement.scrollHeight,t=this.viewportElement.offsetHeight;this.progressBarHeight=this.progressBarInner.offsetHeight,this.playheadHeight=Math.max(t/e*this.progressBarHeight,8),this.progressBarScrollableHeight=this.progressBarHeight-this.playheadHeight;let n=t/e*this.progressBarHeight,a=Math.min(n/8,4);this.progressBarPlayhead.style.height=this.playheadHeight-a+"px",n>6?this.slideTriggers.forEach(e=>{let{page:t}=e;t.progressBarSlide=document.createElement("div"),t.progressBarSlide.className="scrollbar-slide",t.progressBarSlide.style.top=e.range[0]*this.progressBarHeight+"px",t.progressBarSlide.style.height=(e.range[1]-e.range[0])*this.progressBarHeight-a+"px",t.progressBarSlide.classList.toggle("has-triggers",t.scrollTriggers.length>0),this.progressBarInner.appendChild(t.progressBarSlide),t.scrollTriggerElements=t.scrollTriggers.map((n,i)=>{let r=document.createElement("div");return r.className="scrollbar-trigger",r.style.top=(n.range[0]-e.range[0])*this.progressBarHeight+"px",r.style.height=(n.range[1]-n.range[0])*this.progressBarHeight-a+"px",t.progressBarSlide.appendChild(r),0===i&&(r.style.display="none"),r})}):this.pages.forEach(e=>e.progressBarSlide=null)}syncScrollPosition(){let e;let t=this.viewportElement.offsetHeight,n=t/this.viewportElement.scrollHeight,a=this.viewportElement.scrollTop,i=Math.max(Math.min(a/(this.viewportElement.scrollHeight-t),1),0),r=Math.max(Math.min((a+t/2)/this.viewportElement.scrollHeight,1),0);this.slideTriggers.forEach(t=>{let{page:a}=t;i>=t.range[0]-2*n&&i<=t.range[1]+2*n&&!a.loaded?(a.loaded=!0,this.Reveal.slideContent.load(a.slideElement)):a.loaded&&(a.loaded=!1,this.Reveal.slideContent.unload(a.slideElement)),i>=t.range[0]&&i<=t.range[1]?(this.activateTrigger(t),e=t.page):t.active&&this.deactivateTrigger(t)}),e&&e.scrollTriggers.forEach(e=>{r>=e.range[0]&&r<=e.range[1]?this.activateTrigger(e):e.active&&this.deactivateTrigger(e)}),this.setProgressBarValue(a/(this.viewportElement.scrollHeight-t))}setProgressBarValue(e){this.progressBar&&(this.progressBarPlayhead.style.transform=`translateY(${e*this.progressBarScrollableHeight}px)`,this.getAllPages().filter(e=>e.progressBarSlide).forEach(e=>{e.progressBarSlide.classList.toggle("active",!0===e.active),e.scrollTriggers.forEach((t,n)=>{e.scrollTriggerElements[n].classList.toggle("active",!0===e.active&&!0===t.active)})}),this.showProgressBar())}showProgressBar(){this.progressBar.classList.add("visible"),clearTimeout(this.hideProgressBarTimeout),"auto"!==this.Reveal.getConfig().scrollProgress||this.draggingProgressBar||(this.hideProgressBarTimeout=setTimeout(()=>{this.progressBar&&this.progressBar.classList.remove("visible")},500))}prev(){this.viewportElement.scrollTop-=this.scrollTriggerHeight}next(){this.viewportElement.scrollTop+=this.scrollTriggerHeight}scrollToSlide(e){if(this.active){let t=this.getScrollTriggerBySlide(e);t&&(this.viewportElement.scrollTop=t.range[0]*(this.viewportElement.scrollHeight-this.viewportElement.offsetHeight))}else this.activatedCallbacks.push(()=>this.scrollToSlide(e))}storeScrollPosition(){clearTimeout(this.storeScrollPositionTimeout),this.storeScrollPositionTimeout=setTimeout(()=>{sessionStorage.setItem("reveal-scroll-top",this.viewportElement.scrollTop),sessionStorage.setItem("reveal-scroll-origin",location.origin+location.pathname),this.storeScrollPositionTimeout=null},50)}restoreScrollPosition(){let e=sessionStorage.getItem("reveal-scroll-top"),t=sessionStorage.getItem("reveal-scroll-origin");e&&t===location.origin+location.pathname&&(this.viewportElement.scrollTop=parseInt(e,10))}activatePage(e){if(!e.active){e.active=!0;let{slideElement:t,backgroundElement:n,contentElement:a,indexh:i,indexv:r}=e;a.style.display="block",t.classList.add("present"),n&&n.classList.add("present"),this.Reveal.setCurrentScrollPage(t,i,r),this.Reveal.backgrounds.bubbleSlideContrastClassToElement(t,this.viewportElement),Array.from(a.parentNode.querySelectorAll(".scroll-page-content")).forEach(e=>{e!==a&&(e.style.display="none")})}}deactivatePage(e){e.active&&(e.active=!1,e.slideElement&&e.slideElement.classList.remove("present"),e.backgroundElement&&e.backgroundElement.classList.remove("present"))}activateTrigger(e){e.active||(e.active=!0,e.activate())}deactivateTrigger(e){e.active&&(e.active=!1,e.deactivate&&e.deactivate())}getSlideByIndices(e,t){let n=this.getAllPages().find(n=>n.indexh===e&&n.indexv===t);return n?n.slideElement:null}getScrollTriggerBySlide(e){return this.slideTriggers.find(t=>t.page.slideElement===e)}getAllPages(){return this.pages.flatMap(e=>[e,...e.autoAnimatePages||[]])}onScroll(){this.syncScrollPosition(),this.storeScrollPosition()}get viewportElement(){return this.Reveal.getViewportElement()}}class A{constructor(e){this.Reveal=e}async activate(){let e;let n=this.Reveal.getConfig(),a=t(this.Reveal.getRevealElement(),E),i=n.slideNumber&&/all|print/i.test(n.showSlideNumber),r=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),s=Math.floor(r.width*(1+n.margin)),o=Math.floor(r.height*(1+n.margin)),c=r.width,d=r.height;await new Promise(requestAnimationFrame),l("@page{size:"+s+"px "+o+"px; margin: 0px;}"),l(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: "+c+"px; max-height:"+d+"px}"),document.documentElement.classList.add("reveal-print","print-pdf"),document.body.style.width=s+"px",document.body.style.height=o+"px";let _=this.Reveal.getViewportElement();if(_){let t=window.getComputedStyle(_);t&&t.background&&(e=t.background)}await new Promise(requestAnimationFrame),this.Reveal.layoutSlideContents(c,d),await new Promise(requestAnimationFrame);let u=a.map(e=>e.scrollHeight),m=[],p=a[0].parentNode,g=1;a.forEach(function(a,r){if(!1===a.classList.contains("stack")){let l=(s-c)/2,_=(o-d)/2,p=u[r],E=Math.max(Math.ceil(p/o),1);(1===(E=Math.min(E,n.pdfMaxPagesPerSlide))&&n.center||a.classList.contains("center"))&&(_=Math.max((o-p)/2,0));let S=document.createElement("div");if(m.push(S),S.className="pdf-page",S.style.height=(o+n.pdfPageHeightOffset)*E+"px",e&&(S.style.background=e),S.appendChild(a),a.style.left=l+"px",a.style.top=_+"px",a.style.width=c+"px",this.Reveal.slideContent.layout(a),a.slideBackgroundElement&&S.insertBefore(a.slideBackgroundElement,a),n.showNotes){let e=this.Reveal.getSlideNotes(a);if(e){let t="string"==typeof n.showNotes?n.showNotes:"inline",a=document.createElement("div");a.classList.add("speaker-notes"),a.classList.add("speaker-notes-pdf"),a.setAttribute("data-layout",t),a.innerHTML=e,"separate-page"===t?m.push(a):(a.style.left="8px",a.style.bottom="8px",a.style.width=s-16+"px",S.appendChild(a))}}if(i){let e=document.createElement("div");e.classList.add("slide-number"),e.classList.add("slide-number-pdf"),e.innerHTML=g++,S.appendChild(e)}if(n.pdfSeparateFragments){let e;let t=this.Reveal.fragments.sort(S.querySelectorAll(".fragment"),!0);t.forEach(function(t,n){e&&e.forEach(function(e){e.classList.remove("current-fragment")}),t.forEach(function(e){e.classList.add("visible","current-fragment")},this);let a=S.cloneNode(!0);i&&(a.querySelector(".slide-number-pdf").innerHTML+="."+(n+1)),m.push(a),e=t},this),t.forEach(function(e){e.forEach(function(e){e.classList.remove("visible","current-fragment")})})}else t(S,".fragment:not(.fade-out)").forEach(function(e){e.classList.add("visible")})}},this),await new Promise(requestAnimationFrame),m.forEach(e=>p.appendChild(e)),this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()),this.Reveal.dispatchEvent({type:"pdf-ready"}),_.classList.remove("loading-scroll-mode")}isActive(){return"print"===this.Reveal.getConfig().view}}class I{constructor(e){this.Reveal=e}configure(e,t){!1===e.fragments?this.disable():!1===t.fragments&&this.enable()}disable(){t(this.Reveal.getSlidesElement(),".fragment").forEach(e=>{e.classList.add("visible"),e.classList.remove("current-fragment")})}enable(){t(this.Reveal.getSlidesElement(),".fragment").forEach(e=>{e.classList.remove("visible"),e.classList.remove("current-fragment")})}availableRoutes(){let e=this.Reveal.getCurrentSlide();if(e&&this.Reveal.getConfig().fragments){let t=e.querySelectorAll(".fragment:not(.disabled)"),n=e.querySelectorAll(".fragment:not(.disabled):not(.visible)");return{prev:t.length-n.length>0,next:!!n.length}}return{prev:!1,next:!1}}sort(e,t=!1){e=Array.from(e);let n=[],a=[],i=[];e.forEach(e=>{if(e.hasAttribute("data-fragment-index")){let t=parseInt(e.getAttribute("data-fragment-index"),10);n[t]||(n[t]=[]),n[t].push(e)}else a.push([e])});let r=0;return(n=n.concat(a)).forEach(e=>{e.forEach(e=>{i.push(e),e.setAttribute("data-fragment-index",r)}),r++}),!0===t?n:i}sortAll(){this.Reveal.getHorizontalSlides().forEach(e=>{let n=t(e,"section");n.forEach((e,t)=>{this.sort(e.querySelectorAll(".fragment"))},this),0===n.length&&this.sort(e.querySelectorAll(".fragment"))})}update(e,t,n=this.Reveal.getCurrentSlide()){let a={shown:[],hidden:[]};if(n&&this.Reveal.getConfig().fragments&&(t=t||this.sort(n.querySelectorAll(".fragment"))).length){let i=0;if("number"!=typeof e){let t=this.sort(n.querySelectorAll(".fragment.visible")).pop();t&&(e=parseInt(t.getAttribute("data-fragment-index")||0,10))}Array.from(t).forEach((t,n)=>{if(t.hasAttribute("data-fragment-index")&&(n=parseInt(t.getAttribute("data-fragment-index"),10)),i=Math.max(i,n),n<=e){let i=t.classList.contains("visible");t.classList.add("visible"),t.classList.remove("current-fragment"),n===e&&(this.Reveal.announceStatus(this.Reveal.getStatusText(t)),t.classList.add("current-fragment"),this.Reveal.slideContent.startEmbeddedContent(t)),i||(a.shown.push(t),this.Reveal.dispatchEvent({target:t,type:"visible",bubbles:!1}))}else{let e=t.classList.contains("visible");t.classList.remove("visible"),t.classList.remove("current-fragment"),e&&(this.Reveal.slideContent.stopEmbeddedContent(t),a.hidden.push(t),this.Reveal.dispatchEvent({target:t,type:"hidden",bubbles:!1}))}}),e=Math.max(Math.min(e="number"==typeof e?e:-1,i),-1),n.setAttribute("data-fragment",e)}return a.hidden.length&&this.Reveal.dispatchEvent({type:"fragmenthidden",data:{fragment:a.hidden[0],fragments:a.hidden}}),a.shown.length&&this.Reveal.dispatchEvent({type:"fragmentshown",data:{fragment:a.shown[0],fragments:a.shown}}),a}sync(e=this.Reveal.getCurrentSlide()){return this.sort(e.querySelectorAll(".fragment"))}goto(e,t=0){let n=this.Reveal.getCurrentSlide();if(n&&this.Reveal.getConfig().fragments){let a=this.sort(n.querySelectorAll(".fragment:not(.disabled)"));if(a.length){if("number"!=typeof e){let t=this.sort(n.querySelectorAll(".fragment:not(.disabled).visible")).pop();e=t?parseInt(t.getAttribute("data-fragment-index")||0,10):-1}e+=t;let i=this.update(e,a);return this.Reveal.controls.update(),this.Reveal.progress.update(),this.Reveal.getConfig().fragmentInURL&&this.Reveal.location.writeURL(),!(!i.shown.length&&!i.hidden.length)}}return!1}next(){return this.goto(null,1)}prev(){return this.goto(null,-1)}}class D{constructor(e){this.Reveal=e,this.active=!1,this.onSlideClicked=this.onSlideClicked.bind(this)}activate(){if(this.Reveal.getConfig().overview&&!this.Reveal.isScrollView()&&!this.isActive()){this.active=!0,this.Reveal.getRevealElement().classList.add("overview"),this.Reveal.cancelAutoSlide(),this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()),t(this.Reveal.getRevealElement(),E).forEach(e=>{e.classList.contains("stack")||e.addEventListener("click",this.onSlideClicked,!0)});let e=this.Reveal.getComputedSlideSize();this.overviewSlideWidth=e.width+70,this.overviewSlideHeight=e.height+70,this.Reveal.getConfig().rtl&&(this.overviewSlideWidth=-this.overviewSlideWidth),this.Reveal.updateSlidesVisibility(),this.layout(),this.update(),this.Reveal.layout();let n=this.Reveal.getIndices();this.Reveal.dispatchEvent({type:"overviewshown",data:{indexh:n.h,indexv:n.v,currentSlide:this.Reveal.getCurrentSlide()}})}}layout(){this.Reveal.getHorizontalSlides().forEach((e,n)=>{e.setAttribute("data-index-h",n),i(e,"translate3d("+n*this.overviewSlideWidth+"px, 0, 0)"),e.classList.contains("stack")&&t(e,"section").forEach((e,t)=>{e.setAttribute("data-index-h",n),e.setAttribute("data-index-v",t),i(e,"translate3d(0, "+t*this.overviewSlideHeight+"px, 0)")})}),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((e,n)=>{i(e,"translate3d("+n*this.overviewSlideWidth+"px, 0, 0)"),t(e,".slide-background").forEach((e,t)=>{i(e,"translate3d(0, "+t*this.overviewSlideHeight+"px, 0)")})})}update(){let e=Math.min(window.innerWidth,window.innerHeight),t=Math.max(e/5,150)/e,n=this.Reveal.getIndices();this.Reveal.transformSlides({overview:["scale("+t+")","translateX("+-n.h*this.overviewSlideWidth+"px)","translateY("+-n.v*this.overviewSlideHeight+"px)"].join(" ")})}deactivate(){if(this.Reveal.getConfig().overview){this.active=!1,this.Reveal.getRevealElement().classList.remove("overview"),this.Reveal.getRevealElement().classList.add("overview-deactivating"),setTimeout(()=>{this.Reveal.getRevealElement().classList.remove("overview-deactivating")},1),this.Reveal.getRevealElement().appendChild(this.Reveal.getBackgroundsElement()),t(this.Reveal.getRevealElement(),E).forEach(e=>{i(e,""),e.removeEventListener("click",this.onSlideClicked,!0)}),t(this.Reveal.getBackgroundsElement(),".slide-background").forEach(e=>{i(e,"")}),this.Reveal.transformSlides({overview:""});let e=this.Reveal.getIndices();this.Reveal.slide(e.h,e.v),this.Reveal.layout(),this.Reveal.cueAutoSlide(),this.Reveal.dispatchEvent({type:"overviewhidden",data:{indexh:e.h,indexv:e.v,currentSlide:this.Reveal.getCurrentSlide()}})}}toggle(e){"boolean"==typeof e?e?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}isActive(){return this.active}onSlideClicked(e){if(this.isActive()){e.preventDefault();let t=e.target;for(;t&&!t.nodeName.match(/section/gi);)t=t.parentNode;if(t&&!t.classList.contains("disabled")&&(this.deactivate(),t.nodeName.match(/section/gi))){let e=parseInt(t.getAttribute("data-index-h"),10),n=parseInt(t.getAttribute("data-index-v"),10);this.Reveal.slide(e,n)}}}}class w{constructor(e){this.Reveal=e,this.shortcuts={},this.bindings={},this.onDocumentKeyDown=this.onDocumentKeyDown.bind(this)}configure(e,t){"linear"===e.navigationMode?(this.shortcuts["→ , ↓ , SPACE , N , L , J"]="Next slide",this.shortcuts["← , ↑ , P , H , K"]="Previous slide"):(this.shortcuts["N , SPACE"]="Next slide",this.shortcuts["P , Shift SPACE"]="Previous slide",this.shortcuts["← , H"]="Navigate left",this.shortcuts["→ , L"]="Navigate right",this.shortcuts["↑ , K"]="Navigate up",this.shortcuts["↓ , J"]="Navigate down"),this.shortcuts["Alt + ←/↑/→/↓"]="Navigate without fragments",this.shortcuts["Shift + ←/↑/→/↓"]="Jump to first/last slide",this.shortcuts["B , ."]="Pause",this.shortcuts.F="Fullscreen",this.shortcuts.G="Jump to slide",this.shortcuts["ESC, O"]="Slide overview"}bind(){document.addEventListener("keydown",this.onDocumentKeyDown,!1)}unbind(){document.removeEventListener("keydown",this.onDocumentKeyDown,!1)}addKeyBinding(e,t){"object"==typeof e&&e.keyCode?this.bindings[e.keyCode]={callback:t,key:e.key,description:e.description}:this.bindings[e]={callback:t,key:null,description:null}}removeKeyBinding(e){delete this.bindings[e]}triggerKey(e){this.onDocumentKeyDown({keyCode:e})}registerKeyboardShortcut(e,t){this.shortcuts[e]=t}getShortcuts(){return this.shortcuts}getBindings(){return this.bindings}onDocumentKeyDown(e){let t=this.Reveal.getConfig();if("function"==typeof t.keyboardCondition&&!1===t.keyboardCondition(e)||"focused"===t.keyboardCondition&&!this.Reveal.isFocused())return!0;let n=e.keyCode,a=!this.Reveal.isAutoSliding();this.Reveal.onUserInput(e);let i=document.activeElement&&!0===document.activeElement.isContentEditable,r=document.activeElement&&document.activeElement.tagName&&/input|textarea/i.test(document.activeElement.tagName),s=document.activeElement&&document.activeElement.className&&/speaker-notes/i.test(document.activeElement.className),l=!(-1!==[32,37,38,39,40,63,78,80,191].indexOf(e.keyCode)&&e.shiftKey||e.altKey)&&(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey);if(i||r||s||l)return;let c,d=[66,86,190,191,112];if("object"==typeof t.keyboard)for(c in t.keyboard)"togglePause"===t.keyboard[c]&&d.push(parseInt(c,10));if(this.Reveal.isPaused()&&-1===d.indexOf(n))return!1;let _="linear"===t.navigationMode||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),u=!1;if("object"==typeof t.keyboard){for(c in t.keyboard)if(parseInt(c,10)===n){let n=t.keyboard[c];"function"==typeof n?n.apply(null,[e]):"string"==typeof n&&"function"==typeof this.Reveal[n]&&this.Reveal[n].call(),u=!0}}if(!1===u){for(c in this.bindings)if(parseInt(c,10)===n){let t=this.bindings[c].callback;"function"==typeof t?t.apply(null,[e]):"string"==typeof t&&"function"==typeof this.Reveal[t]&&this.Reveal[t].call(),u=!0}}!1===u&&(u=!0,80===n||33===n?this.Reveal.prev({skipFragments:e.altKey}):78===n||34===n?this.Reveal.next({skipFragments:e.altKey}):72===n||37===n?e.shiftKey?this.Reveal.slide(0):!this.Reveal.overview.isActive()&&_?t.rtl?this.Reveal.next({skipFragments:e.altKey}):this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.left({skipFragments:e.altKey}):76===n||39===n?e.shiftKey?this.Reveal.slide(this.Reveal.getHorizontalSlides().length-1):!this.Reveal.overview.isActive()&&_?t.rtl?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.next({skipFragments:e.altKey}):this.Reveal.right({skipFragments:e.altKey}):75===n||38===n?e.shiftKey?this.Reveal.slide(void 0,0):!this.Reveal.overview.isActive()&&_?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.up({skipFragments:e.altKey}):74===n||40===n?e.shiftKey?this.Reveal.slide(void 0,Number.MAX_VALUE):!this.Reveal.overview.isActive()&&_?this.Reveal.next({skipFragments:e.altKey}):this.Reveal.down({skipFragments:e.altKey}):36===n?this.Reveal.slide(0):35===n?this.Reveal.slide(this.Reveal.getHorizontalSlides().length-1):32===n?(this.Reveal.overview.isActive()&&this.Reveal.overview.deactivate(),e.shiftKey?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.next({skipFragments:e.altKey})):[58,59,66,86,190].includes(n)||191===n&&!e.shiftKey?this.Reveal.togglePause():70===n?o(t.embedded?this.Reveal.getViewportElement():document.documentElement):65===n?t.autoSlideStoppable&&this.Reveal.toggleAutoSlide(a):71===n?t.jumpToSlide&&this.Reveal.toggleJumpToSlide():(63===n||191===n)&&e.shiftKey?this.Reveal.toggleHelp():112===n?this.Reveal.toggleHelp():u=!1),u?e.preventDefault&&e.preventDefault():27!==n&&79!==n||(!1===this.Reveal.closeOverlay()&&this.Reveal.overview.toggle(),e.preventDefault&&e.preventDefault()),this.Reveal.cueAutoSlide()}}class x{MAX_REPLACE_STATE_FREQUENCY=1e3;constructor(e){this.Reveal=e,this.writeURLTimeout=0,this.replaceStateTimestamp=0,this.onWindowHashChange=this.onWindowHashChange.bind(this)}bind(){window.addEventListener("hashchange",this.onWindowHashChange,!1)}unbind(){window.removeEventListener("hashchange",this.onWindowHashChange,!1)}getIndicesFromHash(e=window.location.hash,t={}){let n=e.replace(/^#\/?/,""),a=n.split("/");if(/^[0-9]*$/.test(a[0])||!n.length){let e=this.Reveal.getConfig(),n,i=e.hashOneBasedIndex||t.oneBasedIndex?1:0,r=parseInt(a[0],10)-i||0,s=parseInt(a[1],10)-i||0;return e.fragmentInURL&&isNaN(n=parseInt(a[2],10))&&(n=void 0),{h:r,v:s,f:n}}{let e,t;/\/[-\d]+$/g.test(n)&&(t=isNaN(t=parseInt(n.split("/").pop(),10))?void 0:t,n=n.split("/").shift());try{e=document.getElementById(decodeURIComponent(n)).closest(".slides section")}catch(e){}if(e)return{...this.Reveal.getIndices(e),f:t}}return null}readURL(){let e=this.Reveal.getIndices(),t=this.getIndicesFromHash();t?t.h===e.h&&t.v===e.v&&void 0===t.f||this.Reveal.slide(t.h,t.v,t.f):this.Reveal.slide(e.h||0,e.v||0)}writeURL(e){let t=this.Reveal.getConfig(),n=this.Reveal.getCurrentSlide();if(clearTimeout(this.writeURLTimeout),"number"==typeof e)this.writeURLTimeout=setTimeout(this.writeURL,e);else if(n){let e=this.getHash();t.history?window.location.hash=e:t.hash&&("/"===e?this.debouncedReplaceState(window.location.pathname+window.location.search):this.debouncedReplaceState("#"+e))}}replaceState(e){window.history.replaceState(null,null,e),this.replaceStateTimestamp=Date.now()}debouncedReplaceState(e){clearTimeout(this.replaceStateTimeout),Date.now()-this.replaceStateTimestamp>this.MAX_REPLACE_STATE_FREQUENCY?this.replaceState(e):this.replaceStateTimeout=setTimeout(()=>this.replaceState(e),this.MAX_REPLACE_STATE_FREQUENCY)}getHash(e){let t="/",n=e||this.Reveal.getCurrentSlide(),a=n?n.getAttribute("id"):null;a&&(a=encodeURIComponent(a));let i=this.Reveal.getIndices(e);if(this.Reveal.getConfig().fragmentInURL||(i.f=void 0),"string"==typeof a&&a.length)t="/"+a,i.f>=0&&(t+="/"+i.f);else{let e=this.Reveal.getConfig().hashOneBasedIndex?1:0;(i.h>0||i.v>0||i.f>=0)&&(t+=i.h+e),(i.v>0||i.f>=0)&&(t+="/"+(i.v+e)),i.f>=0&&(t+="/"+i.f)}return t}onWindowHashChange(e){this.readURL()}}class L{constructor(e){this.Reveal=e,this.onNavigateLeftClicked=this.onNavigateLeftClicked.bind(this),this.onNavigateRightClicked=this.onNavigateRightClicked.bind(this),this.onNavigateUpClicked=this.onNavigateUpClicked.bind(this),this.onNavigateDownClicked=this.onNavigateDownClicked.bind(this),this.onNavigatePrevClicked=this.onNavigatePrevClicked.bind(this),this.onNavigateNextClicked=this.onNavigateNextClicked.bind(this),this.onEnterFullscreen=this.onEnterFullscreen.bind(this)}render(){let e=this.Reveal.getConfig().rtl,n=this.Reveal.getRevealElement();this.element=document.createElement("aside"),this.element.className="controls",this.element.innerHTML=`<button class="navigate-left" aria-label="${e?"next slide":"previous slide"}"><div class="controls-arrow"></div></button> + <button class="navigate-right" aria-label="${e?"previous slide":"next slide"}"><div class="controls-arrow"></div></button> + <button class="navigate-up" aria-label="above slide"><div class="controls-arrow"></div></button> + <button class="navigate-down" aria-label="below slide"><div class="controls-arrow"></div></button>`,this.Reveal.getRevealElement().appendChild(this.element),this.controlsLeft=t(n,".navigate-left"),this.controlsRight=t(n,".navigate-right"),this.controlsUp=t(n,".navigate-up"),this.controlsDown=t(n,".navigate-down"),this.controlsPrev=t(n,".navigate-prev"),this.controlsNext=t(n,".navigate-next"),this.controlsFullscreen=t(n,".enter-fullscreen"),this.controlsRightArrow=this.element.querySelector(".navigate-right"),this.controlsLeftArrow=this.element.querySelector(".navigate-left"),this.controlsDownArrow=this.element.querySelector(".navigate-down")}configure(e,t){this.element.style.display=e.controls?"block":"none",this.element.setAttribute("data-controls-layout",e.controlsLayout),this.element.setAttribute("data-controls-back-arrows",e.controlsBackArrows)}bind(){let e=["touchstart","click"];m&&(e=["touchstart"]),e.forEach(e=>{this.controlsLeft.forEach(t=>t.addEventListener(e,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(t=>t.addEventListener(e,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(t=>t.addEventListener(e,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(t=>t.addEventListener(e,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(t=>t.addEventListener(e,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(t=>t.addEventListener(e,this.onNavigateNextClicked,!1)),this.controlsFullscreen.forEach(t=>t.addEventListener(e,this.onEnterFullscreen,!1))})}unbind(){["touchstart","click"].forEach(e=>{this.controlsLeft.forEach(t=>t.removeEventListener(e,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(t=>t.removeEventListener(e,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(t=>t.removeEventListener(e,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(t=>t.removeEventListener(e,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(t=>t.removeEventListener(e,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(t=>t.removeEventListener(e,this.onNavigateNextClicked,!1)),this.controlsFullscreen.forEach(t=>t.removeEventListener(e,this.onEnterFullscreen,!1))})}update(){let e=this.Reveal.availableRoutes();[...this.controlsLeft,...this.controlsRight,...this.controlsUp,...this.controlsDown,...this.controlsPrev,...this.controlsNext].forEach(e=>{e.classList.remove("enabled","fragmented"),e.setAttribute("disabled","disabled")}),e.left&&this.controlsLeft.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.right&&this.controlsRight.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.up&&this.controlsUp.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),e.down&&this.controlsDown.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.left||e.up)&&this.controlsPrev.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")}),(e.right||e.down)&&this.controlsNext.forEach(e=>{e.classList.add("enabled"),e.removeAttribute("disabled")});let t=this.Reveal.getCurrentSlide();if(t){let e=this.Reveal.fragments.availableRoutes();e.prev&&this.controlsPrev.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),e.next&&this.controlsNext.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),this.Reveal.isVerticalSlide(t)?(e.prev&&this.controlsUp.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),e.next&&this.controlsDown.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")})):(e.prev&&this.controlsLeft.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}),e.next&&this.controlsRight.forEach(e=>{e.classList.add("fragmented","enabled"),e.removeAttribute("disabled")}))}if(this.Reveal.getConfig().controlsTutorial){let t=this.Reveal.getIndices();!this.Reveal.hasNavigatedVertically()&&e.down?this.controlsDownArrow.classList.add("highlight"):(this.controlsDownArrow.classList.remove("highlight"),this.Reveal.getConfig().rtl?!this.Reveal.hasNavigatedHorizontally()&&e.left&&0===t.v?this.controlsLeftArrow.classList.add("highlight"):this.controlsLeftArrow.classList.remove("highlight"):!this.Reveal.hasNavigatedHorizontally()&&e.right&&0===t.v?this.controlsRightArrow.classList.add("highlight"):this.controlsRightArrow.classList.remove("highlight"))}}destroy(){this.unbind(),this.element.remove()}onNavigateLeftClicked(e){e.preventDefault(),this.Reveal.onUserInput(),"linear"===this.Reveal.getConfig().navigationMode?this.Reveal.prev():this.Reveal.left()}onNavigateRightClicked(e){e.preventDefault(),this.Reveal.onUserInput(),"linear"===this.Reveal.getConfig().navigationMode?this.Reveal.next():this.Reveal.right()}onNavigateUpClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.up()}onNavigateDownClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.down()}onNavigatePrevClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.prev()}onNavigateNextClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.next()}onEnterFullscreen(e){let t=this.Reveal.getConfig(),n=this.Reveal.getViewportElement();o(t.embedded?n:n.parentElement)}}class M{constructor(e){this.Reveal=e,this.onProgressClicked=this.onProgressClicked.bind(this)}render(){this.element=document.createElement("div"),this.element.className="progress",this.Reveal.getRevealElement().appendChild(this.element),this.bar=document.createElement("span"),this.element.appendChild(this.bar)}configure(e,t){this.element.style.display=e.progress?"block":"none"}bind(){this.Reveal.getConfig().progress&&this.element&&this.element.addEventListener("click",this.onProgressClicked,!1)}unbind(){this.Reveal.getConfig().progress&&this.element&&this.element.removeEventListener("click",this.onProgressClicked,!1)}update(){if(this.Reveal.getConfig().progress&&this.bar){let e=this.Reveal.getProgress();2>this.Reveal.getTotalSlides()&&(e=0),this.bar.style.transform="scaleX("+e+")"}}getMaxWidth(){return this.Reveal.getRevealElement().offsetWidth}onProgressClicked(e){this.Reveal.onUserInput(e),e.preventDefault();let t=this.Reveal.getSlides(),n=t.length,a=Math.floor(e.clientX/this.getMaxWidth()*n);this.Reveal.getConfig().rtl&&(a=n-a);let i=this.Reveal.getIndices(t[a]);this.Reveal.slide(i.h,i.v)}destroy(){this.element.remove()}}class P{constructor(e){this.Reveal=e,this.lastMouseWheelStep=0,this.cursorHidden=!1,this.cursorInactiveTimeout=0,this.onDocumentCursorActive=this.onDocumentCursorActive.bind(this),this.onDocumentMouseScroll=this.onDocumentMouseScroll.bind(this)}configure(e,t){e.mouseWheel?document.addEventListener("wheel",this.onDocumentMouseScroll,!1):document.removeEventListener("wheel",this.onDocumentMouseScroll,!1),e.hideInactiveCursor?(document.addEventListener("mousemove",this.onDocumentCursorActive,!1),document.addEventListener("mousedown",this.onDocumentCursorActive,!1)):(this.showCursor(),document.removeEventListener("mousemove",this.onDocumentCursorActive,!1),document.removeEventListener("mousedown",this.onDocumentCursorActive,!1))}showCursor(){this.cursorHidden&&(this.cursorHidden=!1,this.Reveal.getRevealElement().style.cursor="")}hideCursor(){!1===this.cursorHidden&&(this.cursorHidden=!0,this.Reveal.getRevealElement().style.cursor="none")}destroy(){this.showCursor(),document.removeEventListener("wheel",this.onDocumentMouseScroll,!1),document.removeEventListener("mousemove",this.onDocumentCursorActive,!1),document.removeEventListener("mousedown",this.onDocumentCursorActive,!1)}onDocumentCursorActive(e){this.showCursor(),clearTimeout(this.cursorInactiveTimeout),this.cursorInactiveTimeout=setTimeout(this.hideCursor.bind(this),this.Reveal.getConfig().hideCursorTime)}onDocumentMouseScroll(e){if(Date.now()-this.lastMouseWheelStep>1e3){this.lastMouseWheelStep=Date.now();let t=e.detail||-e.wheelDelta;t>0?this.Reveal.next():t<0&&this.Reveal.prev()}}}let k=(e,t)=>{let n=document.createElement("script");n.type="text/javascript",n.async=!1,n.defer=!1,n.src=e,"function"==typeof t&&(n.onload=n.onreadystatechange=e=>{("load"===e.type||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=n.onerror=null,t())},n.onerror=e=>{n.onload=n.onreadystatechange=n.onerror=null,t(Error("Failed loading script: "+n.src+"\n"+e))});let a=document.querySelector("head");a.insertBefore(n,a.lastChild)};class F{constructor(e){this.Reveal=e,this.state="idle",this.registeredPlugins={},this.asyncDependencies=[]}load(e,t){return this.state="loading",e.forEach(this.registerPlugin.bind(this)),new Promise(e=>{let n=[],a=0;if(t.forEach(e=>{e.condition&&!e.condition()||(e.async?this.asyncDependencies.push(e):n.push(e))}),n.length){a=n.length;let t=t=>{t&&"function"==typeof t.callback&&t.callback(),0==--a&&this.initPlugins().then(e)};n.forEach(e=>{"string"==typeof e.id?(this.registerPlugin(e),t(e)):"string"==typeof e.src?k(e.src,()=>t(e)):(console.warn("Unrecognized plugin format",e),t())})}else this.initPlugins().then(e)})}initPlugins(){return new Promise(e=>{let t=Object.values(this.registeredPlugins),n=t.length;if(0===n)this.loadAsync().then(e);else{let a,i=()=>{0==--n?this.loadAsync().then(e):a()},r=0;(a=()=>{let e=t[r++];if("function"==typeof e.init){let t=e.init(this.Reveal);t&&"function"==typeof t.then?t.then(i):i()}else i()})()}})}loadAsync(){return this.state="loaded",this.asyncDependencies.length&&this.asyncDependencies.forEach(e=>{k(e.src,e.callback)}),Promise.resolve()}registerPlugin(e){2==arguments.length&&"string"==typeof arguments[0]?(e=arguments[1]).id=arguments[0]:"function"==typeof e&&(e=e());let t=e.id;"string"!=typeof t?console.warn("Unrecognized plugin format; can't find plugin.id",e):void 0===this.registeredPlugins[t]?(this.registeredPlugins[t]=e,"loaded"===this.state&&"function"==typeof e.init&&e.init(this.Reveal)):console.warn('reveal.js: "'+t+'" plugin has already been registered')}hasPlugin(e){return!!this.registeredPlugins[e]}getPlugin(e){return this.registeredPlugins[e]}getRegisteredPlugins(){return this.registeredPlugins}destroy(){Object.values(this.registeredPlugins).forEach(e=>{"function"==typeof e.destroy&&e.destroy()}),this.registeredPlugins={},this.asyncDependencies=[]}}class U{constructor(e){this.Reveal=e,this.touchStartX=0,this.touchStartY=0,this.touchStartCount=0,this.touchCaptured=!1,this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this)}bind(){let e=this.Reveal.getRevealElement();"onpointerdown"in window?(e.addEventListener("pointerdown",this.onPointerDown,!1),e.addEventListener("pointermove",this.onPointerMove,!1),e.addEventListener("pointerup",this.onPointerUp,!1)):window.navigator.msPointerEnabled?(e.addEventListener("MSPointerDown",this.onPointerDown,!1),e.addEventListener("MSPointerMove",this.onPointerMove,!1),e.addEventListener("MSPointerUp",this.onPointerUp,!1)):(e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1))}unbind(){let e=this.Reveal.getRevealElement();e.removeEventListener("pointerdown",this.onPointerDown,!1),e.removeEventListener("pointermove",this.onPointerMove,!1),e.removeEventListener("pointerup",this.onPointerUp,!1),e.removeEventListener("MSPointerDown",this.onPointerDown,!1),e.removeEventListener("MSPointerMove",this.onPointerMove,!1),e.removeEventListener("MSPointerUp",this.onPointerUp,!1),e.removeEventListener("touchstart",this.onTouchStart,!1),e.removeEventListener("touchmove",this.onTouchMove,!1),e.removeEventListener("touchend",this.onTouchEnd,!1)}isSwipePrevented(e){if(r(e,"video[controls], audio[controls]"))return!0;for(;e&&"function"==typeof e.hasAttribute;){if(e.hasAttribute("data-prevent-swipe"))return!0;e=e.parentNode}return!1}onTouchStart(e){if(this.touchCaptured=!1,this.isSwipePrevented(e.target))return!0;this.touchStartX=e.touches[0].clientX,this.touchStartY=e.touches[0].clientY,this.touchStartCount=e.touches.length}onTouchMove(e){if(this.isSwipePrevented(e.target))return!0;let t=this.Reveal.getConfig();if(this.touchCaptured)m&&e.preventDefault();else{this.Reveal.onUserInput(e);let n=e.touches[0].clientX,a=e.touches[0].clientY;if(1===e.touches.length&&2!==this.touchStartCount){let i=this.Reveal.availableRoutes({includeFragments:!0}),r=n-this.touchStartX,s=a-this.touchStartY;r>40&&Math.abs(r)>Math.abs(s)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.next():this.Reveal.prev():this.Reveal.left()):r<-40&&Math.abs(r)>Math.abs(s)?(this.touchCaptured=!0,"linear"===t.navigationMode?t.rtl?this.Reveal.prev():this.Reveal.next():this.Reveal.right()):s>40&&i.up?(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.prev():this.Reveal.up()):s<-40&&i.down&&(this.touchCaptured=!0,"linear"===t.navigationMode?this.Reveal.next():this.Reveal.down()),t.embedded?(this.touchCaptured||this.Reveal.isVerticalSlide())&&e.preventDefault():e.preventDefault()}}}onTouchEnd(e){this.touchCaptured=!1}onPointerDown(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchStart(e))}onPointerMove(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchMove(e))}onPointerUp(e){e.pointerType!==e.MSPOINTER_TYPE_TOUCH&&"touch"!==e.pointerType||(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchEnd(e))}}let B="focus",G="blur";class Y{constructor(e){this.Reveal=e,this.onRevealPointerDown=this.onRevealPointerDown.bind(this),this.onDocumentPointerDown=this.onDocumentPointerDown.bind(this)}configure(e,t){e.embedded?this.blur():(this.focus(),this.unbind())}bind(){this.Reveal.getConfig().embedded&&this.Reveal.getRevealElement().addEventListener("pointerdown",this.onRevealPointerDown,!1)}unbind(){this.Reveal.getRevealElement().removeEventListener("pointerdown",this.onRevealPointerDown,!1),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)}focus(){this.state!==B&&(this.Reveal.getRevealElement().classList.add("focused"),document.addEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state=B}blur(){this.state!==G&&(this.Reveal.getRevealElement().classList.remove("focused"),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state=G}isFocused(){return this.state===B}destroy(){this.Reveal.getRevealElement().classList.remove("focused")}onRevealPointerDown(e){this.focus()}onDocumentPointerDown(e){let t=s(e.target,".reveal");t&&t===this.Reveal.getRevealElement()||this.blur()}}class H{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="speaker-notes",this.element.setAttribute("data-prevent-swipe",""),this.element.setAttribute("tabindex","0"),this.Reveal.getRevealElement().appendChild(this.element)}configure(e,t){e.showNotes&&this.element.setAttribute("data-layout","string"==typeof e.showNotes?e.showNotes:"inline")}update(){this.Reveal.getConfig().showNotes&&this.element&&this.Reveal.getCurrentSlide()&&!this.Reveal.isScrollView()&&!this.Reveal.isPrintView()&&(this.element.innerHTML=this.getSlideNotes()||'<span class="notes-placeholder">No notes on this slide.</span>')}updateVisibility(){this.Reveal.getConfig().showNotes&&this.hasNotes()&&!this.Reveal.isScrollView()&&!this.Reveal.isPrintView()?this.Reveal.getRevealElement().classList.add("show-notes"):this.Reveal.getRevealElement().classList.remove("show-notes")}hasNotes(){return this.Reveal.getSlidesElement().querySelectorAll("[data-notes], aside.notes").length>0}isSpeakerNotesWindow(){return!!window.location.search.match(/receiver/gi)}getSlideNotes(e=this.Reveal.getCurrentSlide()){if(e.hasAttribute("data-notes"))return e.getAttribute("data-notes");let t=e.querySelectorAll("aside.notes");return t?Array.from(t).map(e=>e.innerHTML).join("\n"):null}destroy(){this.element.remove()}}class V{constructor(e,t){this.diameter=100,this.diameter2=this.diameter/2,this.thickness=6,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=e,this.progressCheck=t,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.diameter,this.canvas.height=this.diameter,this.canvas.style.width=this.diameter2+"px",this.canvas.style.height=this.diameter2+"px",this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}setPlaying(e){let t=this.playing;this.playing=e,!t&&this.playing?this.animate():this.render()}animate(){let e=this.progress;this.progress=this.progressCheck(),e>.8&&this.progress<.2&&(this.progressOffset=this.progress),this.render(),this.playing&&requestAnimationFrame(this.animate.bind(this))}render(){let e=this.playing?this.progress:0,t=this.diameter2-this.thickness,n=this.diameter2,a=this.diameter2;this.progressOffset+=.1*(1-this.progressOffset);let i=-Math.PI/2+2*Math.PI*e,r=-Math.PI/2+this.progressOffset*(2*Math.PI);this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(n,a,t+4,0,2*Math.PI,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(n,a,t,0,2*Math.PI,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="rgba( 255, 255, 255, 0.2 )",this.context.stroke(),this.playing&&(this.context.beginPath(),this.context.arc(n,a,t,r,i,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(n-14,a-14),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,10,28),this.context.fillRect(18,0,10,28)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(24,14),this.context.lineTo(0,28),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()}on(e,t){this.canvas.addEventListener(e,t,!1)}off(e,t){this.canvas.removeEventListener(e,t,!1)}destroy(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)}}var z={width:960,height:700,margin:.04,minScale:.2,maxScale:2,controls:!0,controlsTutorial:!0,controlsLayout:"bottom-right",controlsBackArrows:"faded",progress:!0,slideNumber:!1,showSlideNumber:"all",hashOneBasedIndex:!1,hash:!1,respondToHashChanges:!0,jumpToSlide:!0,history:!1,keyboard:!0,keyboardCondition:null,disableLayout:!1,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:"default",shuffle:!1,fragments:!0,fragmentInURL:!0,embedded:!1,help:!0,pause:!0,showNotes:!1,showHiddenSlides:!1,autoPlayMedia:null,preloadIframes:null,autoAnimate:!0,autoAnimateMatcher:null,autoAnimateEasing:"ease",autoAnimateDuration:1,autoAnimateUnmatched:!0,autoAnimateStyles:["opacity","color","background-color","padding","font-size","line-height","letter-spacing","border-width","border-color","border-radius","outline","outline-offset"],autoSlide:0,autoSlideStoppable:!0,autoSlideMethod:null,defaultTiming:null,mouseWheel:!1,previewLinks:!1,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,view:null,scrollLayout:"full",scrollSnap:"mandatory",scrollProgress:"auto",scrollActivationWidth:435,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,viewDistance:3,mobileViewDistance:2,display:"block",hideInactiveCursor:!0,hideCursorTime:5e3,sortFragmentsOnSync:!0,dependencies:[],plugins:[]};let q="5.1.0";function $(r,o){arguments.length<2&&(o=arguments[0],r=document.querySelector(".reveal"));let l={},d,_,m,p,f,C={},N=!1,k=!1,B={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},G=[],$=1,W={layout:"",overview:""},Q={},K="idle",j=0,X=0,Z=-1,J=!1,ee=new g(l),et=new T(l),en=new v(l),ea=new y(l),ei=new R(l),er=new O(l),es=new A(l),eo=new I(l),el=new D(l),ec=new w(l),ed=new x(l),e_=new L(l),eu=new M(l),em=new P(l),ep=new F(l),eg=new Y(l),eE=new U(l),eS=new H(l);function eb(){let e;k=!0,C.showHiddenSlides||t(Q.wrapper,'section[data-visibility="hidden"]').forEach(e=>{let t=e.parentNode;1===t.childElementCount&&/section/i.test(t.nodeName)?t.remove():e.remove()}),Q.slides.classList.add("no-transition"),u?Q.wrapper.classList.add("no-hover"):Q.wrapper.classList.remove("no-hover"),ei.render(),et.render(),en.render(),e_.render(),eu.render(),eS.render(),Q.pauseOverlay=((e,t,n,a="")=>{let i=e.querySelectorAll("."+n);for(let t=0;t<i.length;t++){let n=i[t];if(n.parentNode===e)return n}let r=document.createElement(t);return r.className=n,r.innerHTML=a,e.appendChild(r),r})(Q.wrapper,"div","pause-overlay",C.controls?'<button class="resume-button">Resume presentation</button>':null),Q.statusElement=((e=Q.wrapper.querySelector(".aria-status"))||((e=document.createElement("div")).style.position="absolute",e.style.height="1px",e.style.width="1px",e.style.overflow="hidden",e.style.clip="rect( 1px, 1px, 1px, 1px )",e.classList.add("aria-status"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),Q.wrapper.appendChild(e)),e),Q.wrapper.setAttribute("role","application"),C.postMessage&&window.addEventListener("message",tm,!1),setInterval(()=>{(er.isActive()||0===Q.wrapper.scrollTop)&&0===Q.wrapper.scrollLeft||(Q.wrapper.scrollTop=0,Q.wrapper.scrollLeft=0)},1e3),document.addEventListener("fullscreenchange",tb),document.addEventListener("webkitfullscreenchange",tb),e6().forEach(e=>{t(e,"section").forEach((e,t)=>{t>0&&(e.classList.remove("present"),e.classList.remove("past"),e.classList.add("future"),e.setAttribute("aria-hidden","true"))})}),eT(),ei.update(!0),function(){let e="print"===C.view,t="scroll"===C.view||"reader"===C.view;(e||t)&&(e?eC():eE.unbind(),Q.viewport.classList.add("loading-scroll-mode"),e?"complete"===document.readyState?es.activate():window.addEventListener("load",()=>es.activate()):er.activate())}(),ed.readURL(),setTimeout(()=>{Q.slides.classList.remove("no-transition"),Q.wrapper.classList.add("ready"),eO({type:"ready",data:{indexh:d,indexv:_,currentSlide:p}})},1)}function eh(e){Q.statusElement.textContent=e}function ef(e){let t="";if(3===e.nodeType)t+=e.textContent;else if(1===e.nodeType){let n=e.getAttribute("aria-hidden"),a="none"===window.getComputedStyle(e).display;"true"===n||a||Array.from(e.childNodes).forEach(e=>{t+=ef(e)})}return""===(t=t.trim())?"":t+" "}function eT(t){let a={...C};if("object"==typeof t&&e(C,t),!1===l.isReady())return;let i=Q.wrapper.querySelectorAll(E).length;Q.wrapper.classList.remove(a.transition),Q.wrapper.classList.add(C.transition),Q.wrapper.setAttribute("data-transition-speed",C.transitionSpeed),Q.wrapper.setAttribute("data-background-transition",C.backgroundTransition),Q.viewport.style.setProperty("--slide-width","string"==typeof C.width?C.width:C.width+"px"),Q.viewport.style.setProperty("--slide-height","string"==typeof C.height?C.height:C.height+"px"),C.shuffle&&eX(),n(Q.wrapper,"embedded",C.embedded),n(Q.wrapper,"rtl",C.rtl),n(Q.wrapper,"center",C.center),!1===C.pause&&eq(),C.previewLinks?(eD(),ew("[data-preview-link=false]")):(ew(),eD("[data-preview-link]:not([data-preview-link=false])")),ea.reset(),f&&(f.destroy(),f=null),i>1&&C.autoSlide&&C.autoSlideStoppable&&((f=new V(Q.wrapper,()=>Math.min(Math.max((Date.now()-Z)/j,0),1))).on("click",tf),J=!1),"default"!==C.navigationMode?Q.wrapper.setAttribute("data-navigation-mode",C.navigationMode):Q.wrapper.removeAttribute("data-navigation-mode"),eS.configure(C,a),eg.configure(C,a),em.configure(C,a),e_.configure(C,a),eu.configure(C,a),ec.configure(C,a),eo.configure(C,a),et.configure(C,a),ej()}function ev(){window.addEventListener("resize",tE,!1),C.touch&&eE.bind(),C.keyboard&&ec.bind(),C.progress&&eu.bind(),C.respondToHashChanges&&ed.bind(),e_.bind(),eg.bind(),Q.slides.addEventListener("click",tg,!1),Q.slides.addEventListener("transitionend",tp,!1),Q.pauseOverlay.addEventListener("click",eq,!1),C.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",tS,!1)}function eC(){eE.unbind(),eg.unbind(),ec.unbind(),e_.unbind(),eu.unbind(),ed.unbind(),window.removeEventListener("resize",tE,!1),Q.slides.removeEventListener("click",tg,!1),Q.slides.removeEventListener("transitionend",tp,!1),Q.pauseOverlay.removeEventListener("click",eq,!1)}function eR(e,t,n){r.addEventListener(e,t,n)}function eN(e,t,n){r.removeEventListener(e,t,n)}function ey(e){"string"==typeof e.layout&&(W.layout=e.layout),"string"==typeof e.overview&&(W.overview=e.overview),W.layout?i(Q.slides,W.layout+" "+W.overview):i(Q.slides,W.overview)}function eO({target:t=Q.wrapper,type:n,data:a,bubbles:i=!0}){let r=document.createEvent("HTMLEvents",1,2);return r.initEvent(n,i,!0),e(r,a),t.dispatchEvent(r),t===Q.wrapper&&eI(n),r}function eA(e){eO({type:"slidechanged",data:{indexh:d,indexv:_,previousSlide:m,currentSlide:p,origin:e}})}function eI(t,n){if(C.postMessageEvents&&window.parent!==window.self){let a={namespace:"reveal",eventName:t,state:tn()};e(a,n),window.parent.postMessage(JSON.stringify(a),"*")}}function eD(e="a"){Array.from(Q.wrapper.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.addEventListener("click",th,!1)})}function ew(e="a"){Array.from(Q.wrapper.querySelectorAll(e)).forEach(e=>{/^(http|www)/gi.test(e.getAttribute("href"))&&e.removeEventListener("click",th,!1)})}function ex(e){eM(),Q.overlay=document.createElement("div"),Q.overlay.classList.add("overlay"),Q.overlay.classList.add("overlay-preview"),Q.wrapper.appendChild(Q.overlay),Q.overlay.innerHTML=`<header> + <a class="close" href="#"><span class="icon"></span></a> + <a class="external" href="${e}" target="_blank"><span class="icon"></span></a> + </header> + <div class="spinner"></div> + <div class="viewport"> + <iframe src="${e}"></iframe> + <small class="viewport-inner"> + <span class="x-frame-error">Unable to load iframe. This is likely due to the site's policy (x-frame-options).</span> + </small> + </div>`,Q.overlay.querySelector("iframe").addEventListener("load",e=>{Q.overlay.classList.add("loaded")},!1),Q.overlay.querySelector(".close").addEventListener("click",e=>{eM(),e.preventDefault()},!1),Q.overlay.querySelector(".external").addEventListener("click",e=>{eM()},!1)}function eL(){if(C.help){eM(),Q.overlay=document.createElement("div"),Q.overlay.classList.add("overlay"),Q.overlay.classList.add("overlay-help"),Q.wrapper.appendChild(Q.overlay);let e='<p class="title">Keyboard Shortcuts</p><br/>',t=ec.getShortcuts(),n=ec.getBindings();for(let n in e+="<table><th>KEY</th><th>ACTION</th>",t)e+=`<tr><td>${n}</td><td>${t[n]}</td></tr>`;for(let t in n)n[t].key&&n[t].description&&(e+=`<tr><td>${n[t].key}</td><td>${n[t].description}</td></tr>`);e+="</table>",Q.overlay.innerHTML=` + <header> + <a class="close" href="#"><span class="icon"></span></a> + </header> + <div class="viewport"> + <div class="viewport-inner">${e}</div> + </div> + `,Q.overlay.querySelector(".close").addEventListener("click",e=>{eM(),e.preventDefault()},!1)}}function eM(){return!!Q.overlay&&(Q.overlay.parentNode.removeChild(Q.overlay),Q.overlay=null,!0)}function eP(){if(Q.wrapper&&!es.isActive()){let e=Q.viewport.offsetWidth,t=Q.viewport.offsetHeight;if(!C.disableLayout){u&&!C.embedded&&document.documentElement.style.setProperty("--vh",.01*window.innerHeight+"px");let n=er.isActive()?eF(e,t):eF(),a=$;ek(C.width,C.height),Q.slides.style.width=n.width+"px",Q.slides.style.height=n.height+"px",1===($=Math.min($=Math.max($=Math.min(n.presentationWidth/n.width,n.presentationHeight/n.height),C.minScale),C.maxScale))||er.isActive()?(Q.slides.style.zoom="",Q.slides.style.left="",Q.slides.style.top="",Q.slides.style.bottom="",Q.slides.style.right="",ey({layout:""})):(Q.slides.style.zoom="",Q.slides.style.left="50%",Q.slides.style.top="50%",Q.slides.style.bottom="auto",Q.slides.style.right="auto",ey({layout:"translate(-50%, -50%) scale("+$+")"}));let i=Array.from(Q.wrapper.querySelectorAll(E));for(let e=0,t=i.length;e<t;e++){let t=i[e];"none"!==t.style.display&&(C.center||t.classList.contains("center")?t.classList.contains("stack")?t.style.top=0:t.style.top=Math.max((n.height-t.scrollHeight)/2,0)+"px":t.style.top="")}a!==$&&eO({type:"resize",data:{oldScale:a,scale:$,size:n}})}!function(){if(Q.wrapper&&!C.disableLayout&&!es.isActive()&&"number"==typeof C.scrollActivationWidth&&"scroll"!==C.view){let e=eF();e.presentationWidth>0&&e.presentationWidth<=C.scrollActivationWidth?er.isActive()||(ei.create(),er.activate()):er.isActive()&&er.deactivate()}}(),Q.viewport.style.setProperty("--slide-scale",$),Q.viewport.style.setProperty("--viewport-width",e+"px"),Q.viewport.style.setProperty("--viewport-height",t+"px"),er.layout(),eu.update(),ei.updateParallax(),el.isActive()&&el.update()}}function ek(e,n){t(Q.slides,"section > .stretch, section > .r-stretch").forEach(t=>{let a=((e,t=0)=>{if(e){let n,a=e.style.height;return e.style.height="0px",e.parentNode.style.height="auto",n=t-e.parentNode.offsetHeight,e.style.height=a+"px",e.parentNode.style.removeProperty("height"),n}return t})(t,n);if(/(img|video)/gi.test(t.nodeName)){let n=t.naturalWidth||t.videoWidth,i=t.naturalHeight||t.videoHeight,r=Math.min(e/n,a/i);t.style.width=n*r+"px",t.style.height=i*r+"px"}else t.style.width=e+"px",t.style.height=a+"px"})}function eF(e,t){let n=C.width,a=C.height;C.disableLayout&&(n=Q.slides.offsetWidth,a=Q.slides.offsetHeight);let i={width:n,height:a,presentationWidth:e||Q.wrapper.offsetWidth,presentationHeight:t||Q.wrapper.offsetHeight};return i.presentationWidth-=i.presentationWidth*C.margin,i.presentationHeight-=i.presentationHeight*C.margin,"string"==typeof i.width&&/%$/.test(i.width)&&(i.width=parseInt(i.width,10)/100*i.presentationWidth),"string"==typeof i.height&&/%$/.test(i.height)&&(i.height=parseInt(i.height,10)/100*i.presentationHeight),i}function eU(e,t){"object"==typeof e&&"function"==typeof e.setAttribute&&e.setAttribute("data-previous-indexv",t||0)}function eB(e){if("object"==typeof e&&"function"==typeof e.setAttribute&&e.classList.contains("stack")){let t=e.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(e.getAttribute(t)||0,10)}return 0}function eG(e=p){return e&&e.parentNode&&!!e.parentNode.nodeName.match(/section/i)}function eY(){return!(!p||!eG(p))&&!p.nextElementSibling}function eH(){return 0===d&&0===_}function eV(){return!!p&&!p.nextElementSibling&&(!eG(p)||!p.parentNode.nextElementSibling)}function ez(){if(C.pause){let e=Q.wrapper.classList.contains("paused");ti(),Q.wrapper.classList.add("paused"),!1===e&&eO({type:"paused"})}}function eq(){let e=Q.wrapper.classList.contains("paused");Q.wrapper.classList.remove("paused"),ta(),e&&eO({type:"resumed"})}function e$(e){"boolean"==typeof e?e?ez():eq():eW()?eq():ez()}function eW(){return Q.wrapper.classList.contains("paused")}function eQ(e,n,a,i){if(eO({type:"beforeslidechange",data:{indexh:void 0===e?d:e,indexv:void 0===n?_:n,origin:i}}).defaultPrevented)return;m=p;let s=Q.wrapper.querySelectorAll(S);if(er.isActive()){let t=er.getSlideByIndices(e,n);return void(t&&er.scrollToSlide(t))}if(0===s.length)return;void 0!==n||el.isActive()||(n=eB(s[e])),m&&m.parentNode&&m.parentNode.classList.contains("stack")&&eU(m.parentNode,_);let o=G.concat();G.length=0;let l=d||0,c=_||0;d=eZ(S,void 0===e?d:e),_=eZ(b,void 0===n?_:n);let u=d!==l||_!==c;u||(m=null);let g=s[d],E=g.querySelectorAll("section");r.classList.toggle("is-vertical-slide",E.length>1),p=E[_]||g;let h=!1;u&&m&&p&&!el.isActive()&&(K="running",(h=eK(m,p,l,c))&&Q.slides.classList.add("disable-slide-transitions")),e1(),eP(),el.isActive()&&el.update(),void 0!==a&&eo.goto(a),m&&m!==p&&(m.classList.remove("present"),m.setAttribute("aria-hidden","true"),eH()&&setTimeout(()=>{t(Q.wrapper,S+".stack").forEach(e=>{eU(e,0)})},0));e:for(let e=0,t=G.length;e<t;e++){for(let t=0;t<o.length;t++)if(o[t]===G[e]){o.splice(t,1);continue e}Q.viewport.classList.add(G[e]),eO({type:G[e]})}for(;o.length;)Q.viewport.classList.remove(o.pop());u&&eA(i),!u&&m||(ee.stopEmbeddedContent(m),ee.startEmbeddedContent(p)),requestAnimationFrame(()=>{eh(ef(p))}),eu.update(),e_.update(),eS.update(),ei.update(),ei.updateParallax(),et.update(),eo.update(),ed.writeURL(),ta(),h&&(setTimeout(()=>{Q.slides.classList.remove("disable-slide-transitions")},0),C.autoAnimate&&ea.run(m,p))}function eK(e,t,n,a){return e.hasAttribute("data-auto-animate")&&t.hasAttribute("data-auto-animate")&&e.getAttribute("data-auto-animate-id")===t.getAttribute("data-auto-animate-id")&&!(d>n||_>a?t:e).hasAttribute("data-auto-animate-restart")}function ej(){eC(),ev(),eP(),j=C.autoSlide,ta(),ei.create(),ed.writeURL(),!0===C.sortFragmentsOnSync&&eo.sortAll(),e_.update(),eu.update(),e1(),eS.update(),eS.updateVisibility(),ei.update(!0),et.update(),ee.formatEmbeddedContent(),!1===C.autoPlayMedia?ee.stopEmbeddedContent(p,{unloadIframes:!1}):ee.startEmbeddedContent(p),el.isActive()&&el.layout()}function eX(e=e6()){e.forEach((t,n)=>{let a=e[Math.floor(Math.random()*e.length)];a.parentNode===t.parentNode&&t.parentNode.insertBefore(t,a);let i=t.querySelectorAll("section");i.length&&eX(i)})}function eZ(e,n){let a=t(Q.wrapper,e),i=a.length,r=er.isActive()||es.isActive(),s=!1,o=!1;if(i){C.loop&&(n>=i&&(s=!0),(n%=i)<0&&(n=i+n,o=!0)),n=Math.max(Math.min(n,i-1),0);for(let e=0;e<i;e++){let t=a[e],i=C.rtl&&!eG(t);t.classList.remove("past"),t.classList.remove("present"),t.classList.remove("future"),t.setAttribute("hidden",""),t.setAttribute("aria-hidden","true"),t.querySelector("section")&&t.classList.add("stack"),r?t.classList.add("present"):e<n?(t.classList.add(i?"future":"past"),C.fragments&&eJ(t)):e>n?(t.classList.add(i?"past":"future"),C.fragments&&e0(t)):e===n&&C.fragments&&(s?e0(t):o&&eJ(t))}let e=a[n],t=e.classList.contains("present");e.classList.add("present"),e.removeAttribute("hidden"),e.removeAttribute("aria-hidden"),t||eO({target:e,type:"visible",bubbles:!1});let l=e.getAttribute("data-state");l&&(G=G.concat(l.split(" ")))}else n=0;return n}function eJ(e){t(e,".fragment").forEach(e=>{e.classList.add("visible"),e.classList.remove("current-fragment")})}function e0(e){t(e,".fragment.visible").forEach(e=>{e.classList.remove("visible","current-fragment")})}function e1(){let e,n=e6(),a=n.length;if(a&&void 0!==d){let i=el.isActive()?10:C.viewDistance;u&&(i=el.isActive()?6:C.mobileViewDistance),es.isActive()&&(i=Number.MAX_VALUE);for(let r=0;r<a;r++){let s=n[r],o=t(s,"section"),l=o.length;if(e=Math.abs((d||0)-r)||0,C.loop&&(e=Math.abs(((d||0)-r)%(a-i))||0),e<i?ee.load(s):ee.unload(s),l){let t=eB(s);for(let n=0;n<l;n++){let a=o[n];e+(r===(d||0)?Math.abs((_||0)-n):Math.abs(n-t))<i?ee.load(a):ee.unload(a)}}}e7()?Q.wrapper.classList.add("has-vertical-slides"):Q.wrapper.classList.remove("has-vertical-slides"),e8()?Q.wrapper.classList.add("has-horizontal-slides"):Q.wrapper.classList.remove("has-horizontal-slides")}}function e2({includeFragments:e=!1}={}){let t=Q.wrapper.querySelectorAll(S),n=Q.wrapper.querySelectorAll(b),a={left:d>0,right:d<t.length-1,up:_>0,down:_<n.length-1};if(C.loop&&(t.length>1&&(a.left=!0,a.right=!0),n.length>1&&(a.up=!0,a.down=!0)),t.length>1&&"linear"===C.navigationMode&&(a.right=a.right||a.down,a.left=a.left||a.up),!0===e){let e=eo.availableRoutes();a.left=a.left||e.prev,a.up=a.up||e.prev,a.down=a.down||e.next,a.right=a.right||e.next}if(C.rtl){let e=a.left;a.left=a.right,a.right=e}return a}function e3(e=p){let t=e6(),n=0;e:for(let a=0;a<t.length;a++){let i=t[a],r=i.querySelectorAll("section");for(let t=0;t<r.length;t++){if(r[t]===e)break e;"uncounted"!==r[t].dataset.visibility&&n++}if(i===e)break;!1===i.classList.contains("stack")&&"uncounted"!==i.dataset.visibility&&n++}return n}function e9(e){let n,a=d,i=_;if(e){if(er.isActive())a=parseInt(e.getAttribute("data-index-h"),10),e.getAttribute("data-index-v")&&(i=parseInt(e.getAttribute("data-index-v"),10));else{let n=eG(e),r=n?e.parentNode:e;a=Math.max(e6().indexOf(r),0),i=void 0,n&&(i=Math.max(t(e.parentNode,"section").indexOf(e),0))}}if(!e&&p&&p.querySelectorAll(".fragment").length>0){let e=p.querySelector(".current-fragment");n=e&&e.hasAttribute("data-fragment-index")?parseInt(e.getAttribute("data-fragment-index"),10):p.querySelectorAll(".fragment.visible").length-1}return{h:a,v:i,f:n}}function e4(){return t(Q.wrapper,E+':not(.stack):not([data-visibility="uncounted"])')}function e6(){return t(Q.wrapper,S)}function e5(){return t(Q.wrapper,".slides>section>section")}function e8(){return e6().length>1}function e7(){return e5().length>1}function te(){return e4().length}function tt(e,t){let n=e6()[e],a=n&&n.querySelectorAll("section");return a&&a.length&&"number"==typeof t?a?a[t]:void 0:n}function tn(){let e=e9();return{indexh:e.h,indexv:e.v,indexf:e.f,paused:eW(),overview:el.isActive()}}function ta(){if(ti(),p&&!1!==C.autoSlide){let e=p.querySelector(".current-fragment[data-autoslide]"),n=e?e.getAttribute("data-autoslide"):null,a=p.parentNode?p.parentNode.getAttribute("data-autoslide"):null,i=p.getAttribute("data-autoslide");n?j=parseInt(n,10):i?j=parseInt(i,10):a?j=parseInt(a,10):(j=C.autoSlide,0===p.querySelectorAll(".fragment").length&&t(p,"video, audio").forEach(e=>{e.hasAttribute("data-autoplay")&&j&&1e3*e.duration/e.playbackRate>j&&(j=1e3*e.duration/e.playbackRate+1e3)})),!j||J||eW()||el.isActive()||eV()&&!eo.availableRoutes().next&&!0!==C.loop||(X=setTimeout(()=>{"function"==typeof C.autoSlideMethod?C.autoSlideMethod():tu(),ta()},j),Z=Date.now()),f&&f.setPlaying(-1!==X)}}function ti(){clearTimeout(X),X=-1}function tr(){j&&!J&&(J=!0,eO({type:"autoslidepaused"}),clearTimeout(X),f&&f.setPlaying(!1))}function ts(){j&&J&&(J=!1,eO({type:"autoslideresumed"}),ta())}function to({skipFragments:e=!1}={}){if(B.hasNavigatedHorizontally=!0,er.isActive())return er.prev();C.rtl?(el.isActive()||e||!1===eo.next())&&e2().left&&eQ(d+1,"grid"===C.navigationMode?_:void 0):(el.isActive()||e||!1===eo.prev())&&e2().left&&eQ(d-1,"grid"===C.navigationMode?_:void 0)}function tl({skipFragments:e=!1}={}){if(B.hasNavigatedHorizontally=!0,er.isActive())return er.next();C.rtl?(el.isActive()||e||!1===eo.prev())&&e2().right&&eQ(d-1,"grid"===C.navigationMode?_:void 0):(el.isActive()||e||!1===eo.next())&&e2().right&&eQ(d+1,"grid"===C.navigationMode?_:void 0)}function tc({skipFragments:e=!1}={}){if(er.isActive())return er.prev();(el.isActive()||e||!1===eo.prev())&&e2().up&&eQ(d,_-1)}function td({skipFragments:e=!1}={}){if(B.hasNavigatedVertically=!0,er.isActive())return er.next();(el.isActive()||e||!1===eo.next())&&e2().down&&eQ(d,_+1)}function t_({skipFragments:e=!1}={}){if(er.isActive())return er.prev();if(e||!1===eo.prev()){if(e2().up)tc({skipFragments:e});else{let n;if((n=C.rtl?t(Q.wrapper,S+".future").pop():t(Q.wrapper,S+".past").pop())&&n.classList.contains("stack")){let e=n.querySelectorAll("section").length-1||void 0;eQ(d-1,e)}else C.rtl?tl({skipFragments:e}):to({skipFragments:e})}}}function tu({skipFragments:e=!1}={}){if(B.hasNavigatedHorizontally=!0,B.hasNavigatedVertically=!0,er.isActive())return er.next();if(e||!1===eo.next()){let t=e2();t.down&&t.right&&C.loop&&eY()&&(t.down=!1),t.down?td({skipFragments:e}):C.rtl?to({skipFragments:e}):tl({skipFragments:e})}}function tm(e){let t=e.data;if("string"==typeof t&&"{"===t.charAt(0)&&"}"===t.charAt(t.length-1)&&(t=JSON.parse(t)).method&&"function"==typeof l[t.method]){if(!1===h.test(t.method)){let e=l[t.method].apply(l,t.args);eI("callback",{method:t.method,result:e})}else console.warn('reveal.js: "'+t.method+'" is is blacklisted from the postMessage API')}}function tp(e){"running"===K&&/section/gi.test(e.target.nodeName)&&(K="idle",eO({type:"slidetransitionend",data:{indexh:d,indexv:_,previousSlide:m,currentSlide:p}}))}function tg(e){let t=s(e.target,'a[href^="#"]');if(t){let n=t.getAttribute("href"),a=ed.getIndicesFromHash(n);a&&(l.slide(a.h,a.v,a.f),e.preventDefault())}}function tE(e){eP()}function tS(e){!1===document.hidden&&document.activeElement!==document.body&&("function"==typeof document.activeElement.blur&&document.activeElement.blur(),document.body.focus())}function tb(e){(document.fullscreenElement||document.webkitFullscreenElement)===Q.wrapper&&(e.stopImmediatePropagation(),setTimeout(()=>{l.layout(),l.focus.focus()},1))}function th(e){if(e.currentTarget&&e.currentTarget.hasAttribute("href")){let t=e.currentTarget.getAttribute("href");t&&(ex(t),e.preventDefault())}}function tf(e){eV()&&!1===C.loop?(eQ(0,0),ts()):J?ts():tr()}let tT={VERSION:q,initialize:function(e){if(!r)throw'Unable to find presentation root (<div class="reveal">).';if(N=!0,Q.wrapper=r,Q.slides=r.querySelector(".slides"),!Q.slides)throw'Unable to find slides container (<div class="slides">).';return C={...z,...C,...o,...e,...c()},/print-pdf/gi.test(window.location.search)&&(C.view="print"),!0===C.embedded?Q.viewport=s(r,".reveal-viewport")||r:(Q.viewport=document.body,document.documentElement.classList.add("reveal-full-page")),Q.viewport.classList.add("reveal-viewport"),window.addEventListener("load",eP,!1),ep.load(C.plugins,C.dependencies).then(eb),new Promise(e=>l.on("ready",e))},configure:eT,destroy:function(){!1!==N&&(eC(),ti(),ew(),eS.destroy(),eg.destroy(),ep.destroy(),em.destroy(),e_.destroy(),eu.destroy(),ei.destroy(),et.destroy(),en.destroy(),document.removeEventListener("fullscreenchange",tb),document.removeEventListener("webkitfullscreenchange",tb),document.removeEventListener("visibilitychange",tS,!1),window.removeEventListener("message",tm,!1),window.removeEventListener("load",eP,!1),Q.pauseOverlay&&Q.pauseOverlay.remove(),Q.statusElement&&Q.statusElement.remove(),document.documentElement.classList.remove("reveal-full-page"),Q.wrapper.classList.remove("ready","center","has-horizontal-slides","has-vertical-slides"),Q.wrapper.removeAttribute("data-transition-speed"),Q.wrapper.removeAttribute("data-background-transition"),Q.viewport.classList.remove("reveal-viewport"),Q.viewport.style.removeProperty("--slide-width"),Q.viewport.style.removeProperty("--slide-height"),Q.slides.style.removeProperty("width"),Q.slides.style.removeProperty("height"),Q.slides.style.removeProperty("zoom"),Q.slides.style.removeProperty("left"),Q.slides.style.removeProperty("top"),Q.slides.style.removeProperty("bottom"),Q.slides.style.removeProperty("right"),Q.slides.style.removeProperty("transform"),Array.from(Q.wrapper.querySelectorAll(E)).forEach(e=>{e.style.removeProperty("display"),e.style.removeProperty("top"),e.removeAttribute("hidden"),e.removeAttribute("aria-hidden")}))},sync:ej,syncSlide:function(e=p){ei.sync(e),eo.sync(e),ee.load(e),ei.update(),eS.update()},syncFragments:eo.sync.bind(eo),slide:eQ,left:to,right:tl,up:tc,down:td,prev:t_,next:tu,navigateLeft:to,navigateRight:tl,navigateUp:tc,navigateDown:td,navigatePrev:t_,navigateNext:tu,navigateFragment:eo.goto.bind(eo),prevFragment:eo.prev.bind(eo),nextFragment:eo.next.bind(eo),on:eR,off:eN,addEventListener:eR,removeEventListener:eN,layout:eP,shuffle:eX,availableRoutes:e2,availableFragments:eo.availableRoutes.bind(eo),toggleHelp:function(e){"boolean"==typeof e?e?eL():eM():Q.overlay?eM():eL()},toggleOverview:el.toggle.bind(el),toggleScrollView:er.toggle.bind(er),togglePause:e$,toggleAutoSlide:function(e){"boolean"==typeof e?e?ts():tr():J?ts():tr()},toggleJumpToSlide:function(e){"boolean"==typeof e?e?en.show():en.hide():en.isVisible()?en.hide():en.show()},isFirstSlide:eH,isLastSlide:eV,isLastVerticalSlide:eY,isVerticalSlide:eG,isVerticalStack:function(e=p){return e.classList.contains(".stack")||null!==e.querySelector("section")},isPaused:eW,isAutoSliding:function(){return!(!j||J)},isSpeakerNotes:eS.isSpeakerNotesWindow.bind(eS),isOverview:el.isActive.bind(el),isFocused:eg.isFocused.bind(eg),isScrollView:er.isActive.bind(er),isPrintView:es.isActive.bind(es),isReady:()=>k,loadSlide:ee.load.bind(ee),unloadSlide:ee.unload.bind(ee),startEmbeddedContent:()=>ee.startEmbeddedContent(p),stopEmbeddedContent:()=>ee.stopEmbeddedContent(p,{unloadIframes:!1}),showPreview:ex,hidePreview:eM,addEventListeners:ev,removeEventListeners:eC,dispatchEvent:eO,getState:tn,setState:function(e){if("object"==typeof e){eQ(a(e.indexh),a(e.indexv),a(e.indexf));let t=a(e.paused),n=a(e.overview);"boolean"==typeof t&&t!==eW()&&e$(t),"boolean"==typeof n&&n!==el.isActive()&&el.toggle(n)}},getProgress:function(){let e=te(),t=e3();if(p){let e=p.querySelectorAll(".fragment");e.length>0&&(t+=p.querySelectorAll(".fragment.visible").length/e.length*.9)}return Math.min(t/(e-1),1)},getIndices:e9,getSlidesAttributes:function(){return e4().map(e=>{let t={};for(let n=0;n<e.attributes.length;n++){let a=e.attributes[n];t[a.name]=a.value}return t})},getSlidePastCount:e3,getTotalSlides:te,getSlide:tt,getPreviousSlide:()=>m,getCurrentSlide:()=>p,getSlideBackground:function(e,t){let n="number"==typeof e?tt(e,t):e;if(n)return n.slideBackgroundElement},getSlideNotes:eS.getSlideNotes.bind(eS),getSlides:e4,getHorizontalSlides:e6,getVerticalSlides:e5,hasHorizontalSlides:e8,hasVerticalSlides:e7,hasNavigatedHorizontally:()=>B.hasNavigatedHorizontally,hasNavigatedVertically:()=>B.hasNavigatedVertically,shouldAutoAnimateBetween:eK,addKeyBinding:ec.addKeyBinding.bind(ec),removeKeyBinding:ec.removeKeyBinding.bind(ec),triggerKey:ec.triggerKey.bind(ec),registerKeyboardShortcut:ec.registerKeyboardShortcut.bind(ec),getComputedSlideSize:eF,setCurrentScrollPage:function(e,t,n){let a=d||0;d=t,_=n;let i=p!==e;m=p,(p=e)&&m&&C.autoAnimate&&eK(m,p,a,_)&&ea.run(m,p),i&&(m&&(ee.stopEmbeddedContent(m),ee.stopEmbeddedContent(m.slideBackgroundElement)),ee.startEmbeddedContent(p),ee.startEmbeddedContent(p.slideBackgroundElement)),requestAnimationFrame(()=>{eh(ef(p))}),eA()},getScale:()=>$,getConfig:()=>C,getQueryHash:c,getSlidePath:ed.getHash.bind(ed),getRevealElement:()=>r,getSlidesElement:()=>Q.slides,getViewportElement:()=>Q.viewport,getBackgroundsElement:()=>ei.element,registerPlugin:ep.registerPlugin.bind(ep),hasPlugin:ep.hasPlugin.bind(ep),getPlugin:ep.getPlugin.bind(ep),getPlugins:ep.getRegisteredPlugins.bind(ep)};return e(l,{...tT,announceStatus:eh,getStatusText:ef,focus:eg,scroll:er,progress:eu,controls:e_,location:ed,overview:el,fragments:eo,backgrounds:ei,slideContent:ee,slideNumber:et,onUserInput:function(e){C.autoSlideStoppable&&tr()},closeOverlay:eM,updateSlidesVisibility:e1,layoutSlideContents:ek,transformSlides:ey,cueAutoSlide:ta,cancelAutoSlide:ti}),tT}let W=[];return $.initialize=e=>(Object.assign($,new $(document.querySelector(".reveal"),e)),W.map(e=>e($)),$.initialize()),["configure","on","off","addEventListener","removeEventListener","registerPlugin"].forEach(e=>{$[e]=(...t)=>{W.push(n=>n[e].call(null,...t))}}),$.isReady=()=>!1,$.VERSION=q,$},e.exports=n()},12489:function(e){var t,n;t=0,n=function(){"use strict";class e{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function t(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function n(e,...t){let a=Object.create(null);for(let t in e)a[t]=e[t];return t.forEach(function(e){for(let t in e)a[t]=e[t]}),a}let a=e=>!!e.scope;class i{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=t(e)}openNode(e){if(!a(e))return;let t=((e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){let n=e.split(".");return[`${t}${n.shift()}`,...n.map((e,t)=>`${e}${"_".repeat(t+1)}`)].join(" ")}return`${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){a(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}}let r=(e={})=>{let t={children:[]};return Object.assign(t,e),t};class s{constructor(){this.rootNode=r(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let t=r({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{s._collapse(e)}))}}class o extends s{constructor(e){super(),this.options=e}addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){let n=e.root;t&&(n.scope=`language:${t}`),this.add(n)}toHTML(){return new i(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function l(e){return e?"string"==typeof e?e:e.source:null}function c(e){return u("(?=",e,")")}function d(e){return u("(?:",e,")*")}function _(e){return u("(?:",e,")?")}function u(...e){return e.map(e=>l(e)).join("")}function m(...e){return"("+(function(e){let t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e).capture?"":"?:")+e.map(e=>l(e)).join("|")+")"}function p(e){return RegExp(e.toString()+"|").exec("").length-1}let g=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function E(e,{joinWith:t}){let n=0;return e.map(e=>{let t=n+=1,a=l(e),i="";for(;a.length>0;){let e=g.exec(a);if(!e){i+=a;break}i+=a.substring(0,e.index),a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+String(Number(e[1])+t):(i+=e[0],"("===e[0]&&n++)}return i}).map(e=>`(${e})`).join(t)}let S="[a-zA-Z]\\w*",b="[a-zA-Z_]\\w*",h="\\b\\d+(\\.\\d+)?",f="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",T="\\b(0b[01]+)",v={begin:"\\\\[\\s\\S]",relevance:0},C=function(e,t,a={}){let i=n({scope:"comment",begin:e,end:t,contains:[]},a);i.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let r=m("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return i.contains.push({begin:u(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},R=C("//","$"),N=C("/\\*","\\*/"),y=C("#","$");var O,A,I,D,w,x,L,M,P,k,F,U,B,G,Y,H,V,z,q,$,W,Q,K,j,X,Z,J,ee,et,en,ea,ei,er,es,eo,el,ec,ed,e_,eu,em,ep,eg,eE,eS,eb,eh,ef,eT,ev,eC,eR,eN,ey,eO,eA,eI,eD,ew,ex,eL,eM,eP,ek,eF,eU,eB,eG,eY,eH,eV,ez,eq,e$,eW,eQ,eK,ej,eX,eZ,eJ,e0,e1,e2,e3,e9,e4,e6,e5,e8,e7,te,tt,tn,ta,ti,tr,ts,to,tl,tc,td,t_,tu,tm,tp,tg,tE,tS,tb,th,tf,tT,tv,tC,tR,tN,ty,tO,tA,tI,tD,tw,tx,tL,tM,tP,tk,tF,tU,tB,tG,tY,tH,tV,tz,tq,t$,tW,tQ,tK,tj,tX,tZ,tJ,t0,t1,t2,t3,t9,t4,t6,t5,t8,t7,ne,nt,nn,na,ni,nr,ns,no,nl,nc,nd,n_,nu,nm,np,ng,nE,nS,nb,nh,nf,nT,nv,nC,nR,nN,ny,nO,nA,nI,nD,nw,nx,nL,nM,nP,nk,nF,nU,nB,nG,nY,nH,nV,nz,nq,n$,nW,nQ,nK,nj,nX,nZ,nJ,n0,n1,n2,n3,n9,n4,n6,n5,n8,n7,ae,at,an,aa,ai,ar,as,ao,al,ac,ad,a_,au,am,ap,ag,aE,aS,ab,ah,af,aT,av,aC,aR,aN,ay,aO,aA,aI,aD,aw,ax,aL,aM,aP,ak,aF,aU,aB,aG,aY,aH,aV,az,aq,a$,aW,aQ,aK,aj,aX,aZ,aJ,a0,a1,a2,a3,a9,a4,a6,a5,a8,a7,ie,it,ia,ii,ir,is,io,il,ic,id,i_,iu,im,ip,ig,iE,iS,ib,ih,iT,iv,iC,iR,iN,iy,iO,iA,iI,iD,iw,ix,iL,iM,iP,ik,iF,iU,iB,iG,iY,iH,iV,iz,iq,i$,iW,iQ,iK,ij,iX,iZ,iJ,i0,i1,i2,i3,i9,i4,i6,i5,i8,i7,re,rt,rn,ra,ri,rr,rs,ro,rl,rc,rd,r_,ru,rm,rp,rg,rE,rS,rb,rh,rf,rT,rv,rC,rR,rN,ry,rO,rA,rI,rD,rw,rx,rL,rM,rP,rk,rF,rU,rB,rG=Object.freeze({__proto__:null,APOS_STRING_MODE:{scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[v]},BACKSLASH_ESCAPE:v,BINARY_NUMBER_MODE:{scope:"number",begin:T,relevance:0},BINARY_NUMBER_RE:T,COMMENT:C,C_BLOCK_COMMENT_MODE:N,C_LINE_COMMENT_MODE:R,C_NUMBER_MODE:{scope:"number",begin:f,relevance:0},C_NUMBER_RE:f,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})},HASH_COMMENT_MODE:y,IDENT_RE:S,MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+b,relevance:0},NUMBER_MODE:{scope:"number",begin:h,relevance:0},NUMBER_RE:h,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},QUOTE_STRING_MODE:{scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[v]},REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[v,{begin:/\[/,end:/\]/,relevance:0,contains:[v]}]},RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=u(t,/.*\b/,e.binary,/\b.*/)),n({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},TITLE_MODE:{scope:"title",begin:S,relevance:0},UNDERSCORE_IDENT_RE:b,UNDERSCORE_TITLE_MODE:{scope:"title",begin:b,relevance:0}});function rY(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function rH(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function rV(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=rY,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function rz(e,t){Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}function rq(e,t){if(e.match){if(e.begin||e.end)throw Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function r$(e,t){void 0===e.relevance&&(e.relevance=1)}let rW=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw Error("beforeMatch cannot be used with starts");let n=Object.assign({},e);Object.keys(e).forEach(t=>{delete e[t]}),e.keywords=n.keywords,e.begin=u(n.beforeMatch,c(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},rQ=["of","and","for","in","not","or","if","then","parent","list","value"],rK={},rj=e=>{console.error(e)},rX=(e,...t)=>{console.log(`WARN: ${e}`,...t)},rZ=(e,t)=>{rK[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),rK[`${e}/${t}`]=!0)},rJ=Error();function r0(e,t,{key:n}){let a=0,i=e[n],r={},s={};for(let e=1;e<=t.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=p(t[e-1]);e[n]=s,e[n]._emit=r,e[n]._multi=!0}function r1(e){var t;(t=e).scope&&"object"==typeof t.scope&&null!==t.scope&&(t.beginScope=t.scope,delete t.scope),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw rj("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),rJ;if("object"!=typeof e.beginScope||null===e.beginScope)throw rj("beginScope must be object"),rJ;r0(e,e.begin,{key:"beginScope"}),e.begin=E(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw rj("skip, excludeEnd, returnEnd not compatible with endScope: {}"),rJ;if("object"!=typeof e.endScope||null===e.endScope)throw rj("endScope must be object"),rJ;r0(e,e.end,{key:"endScope"}),e.end=E(e.end,{joinWith:""})}}(e)}class r2 extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}let r3=Symbol("nomatch"),r9=function(a){let i=Object.create(null),r=Object.create(null),s=[],g=!0,S="Could not find the language '{}', did you forget to load/include a language module?",b={disableAutodetect:!0,name:"Plain text",contains:[]},h={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:o};function f(e){return h.noHighlightRe.test(e)}function T(e,t,n){let a="",i="";"object"==typeof t?(a=e,n=t.ignoreIllegals,i=t.language):(rZ("10.7.0","highlight(lang, code, ...args) has been deprecated."),rZ("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),i=e,a=t),void 0===n&&(n=!0);let r={code:a,language:i};D("before:highlight",r);let s=r.result?r.result:v(r.language,r.code,n);return s.code=r.code,D("after:highlight",s),s}function v(a,r,s,o){let c=Object.create(null);function d(){if(!A.keywords)return void D.addText(w);let e=0;A.keywordPatternRe.lastIndex=0;let t=A.keywordPatternRe.exec(w),n="";for(;t;){n+=w.substring(e,t.index);let a=R.case_insensitive?t[0].toLowerCase():t[0],i=A.keywords[a];if(i){let[e,r]=i;if(D.addText(n),n="",c[a]=(c[a]||0)+1,c[a]<=7&&(x+=r),e.startsWith("_"))n+=t[0];else{let n=R.classNameAliases[e]||e;u(t[0],n)}}else n+=t[0];e=A.keywordPatternRe.lastIndex,t=A.keywordPatternRe.exec(w)}n+=w.substring(e),D.addText(n)}function _(){null!=A.subLanguage?function(){if(""===w)return;let e=null;if("string"==typeof A.subLanguage){if(!i[A.subLanguage])return void D.addText(w);e=v(A.subLanguage,w,!0,I[A.subLanguage]),I[A.subLanguage]=e._top}else e=C(w,A.subLanguage.length?A.subLanguage:null);A.relevance>0&&(x+=e.relevance),D.__addSublanguage(e._emitter,e.language)}():d(),w=""}function u(e,t){""!==e&&(D.startScope(t),D.addText(e),D.endScope())}function m(e,t){let n=1,a=t.length-1;for(;n<=a;){if(!e._emit[n]){n++;continue}let a=R.classNameAliases[e[n]]||e[n],i=t[n];a?u(i,a):(w=i,d(),w=""),n++}}function b(e,t){return e.scope&&"string"==typeof e.scope&&D.openNode(R.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(u(w,R.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),w=""):e.beginScope._multi&&(m(e.beginScope,t),w="")),A=Object.create(e,{parent:{value:A}})}let f={};function T(t,n){let i=n&&n[0];if(w+=t,null==i)return _(),0;if("begin"===f.type&&"end"===n.type&&f.index===n.index&&""===i){if(w+=r.slice(n.index,n.index+1),!g){let e=Error(`0 width match regex (${a})`);throw e.languageName=a,e.badRule=f.rule,e}return 1}if(f=n,"begin"===n.type)return function(t){let n=t[0],a=t.rule,i=new e(a);for(let e of[a.__beforeBegin,a["on:begin"]])if(e&&(e(t,i),i.isMatchIgnored)){var r;return r=n,0===A.matcher.regexIndex?(w+=r[0],1):(P=!0,0)}return a.skip?w+=n:(a.excludeBegin&&(w+=n),_(),a.returnBegin||a.excludeBegin||(w=n)),b(a,t),a.returnBegin?0:n.length}(n);if("illegal"===n.type&&!s){let e=Error('Illegal lexeme "'+i+'" for mode "'+(A.scope||"<unnamed>")+'"');throw e.mode=A,e}if("end"===n.type){let t=function(t){let n=t[0],a=r.substring(t.index),i=function t(n,a,i){let r=function(e,t){let n=e&&e.exec(t);return n&&0===n.index}(n.endRe,i);if(r){if(n["on:end"]){let t=new e(n);n["on:end"](a,t),t.isMatchIgnored&&(r=!1)}if(r){for(;n.endsParent&&n.parent;)n=n.parent;return n}}if(n.endsWithParent)return t(n.parent,a,i)}(A,t,a);if(!i)return r3;let s=A;A.endScope&&A.endScope._wrap?(_(),u(n,A.endScope._wrap)):A.endScope&&A.endScope._multi?(_(),m(A.endScope,t)):s.skip?w+=n:(s.returnEnd||s.excludeEnd||(w+=n),_(),s.excludeEnd&&(w=n));do A.scope&&D.closeNode(),A.skip||A.subLanguage||(x+=A.relevance),A=A.parent;while(A!==i.parent);return i.starts&&b(i.starts,t),s.returnEnd?0:n.length}(n);if(t!==r3)return t}if("illegal"===n.type&&""===i)return 1;if(M>1e5&&M>3*n.index)throw Error("potential infinite loop, way more iterations than matches");return w+=i,i.length}let R=O(a);if(!R)throw rj(S.replace("{}",a)),Error('Unknown language: "'+a+'"');let N=function(e){function t(t,n){return RegExp(l(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))}class a{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);let e=this.regexes.map(e=>e[1]);this.matcherRe=t(E(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;let t=this.matcherRe.exec(e);if(!t)return null;let n=t.findIndex((e,t)=>t>0&&void 0!==e),a=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,a)}}class i{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];let t=new a;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){let t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition()){if(n&&n.index===this.lastIndex);else{let t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=n(e.classNameAliases||{}),function a(r,s){if(r.isCompiled)return r;[rH,rq,r1,rW].forEach(e=>e(r,s)),e.compilerExtensions.forEach(e=>e(r,s)),r.__beforeBegin=null,[rV,rz,r$].forEach(e=>e(r,s)),r.isCompiled=!0;let o=null;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords),o=r.keywords.$pattern,delete r.keywords.$pattern),o=o||/\w+/,r.keywords&&(r.keywords=function e(t,n,a="keyword"){let i=Object.create(null);return"string"==typeof t?r(a,t.split(" ")):Array.isArray(t)?r(a,t):Object.keys(t).forEach(function(a){Object.assign(i,e(t[a],n,a))}),i;function r(e,t){n&&(t=t.map(e=>e.toLowerCase())),t.forEach(function(t){let n=t.split("|");i[n[0]]=[e,function(e,t){var n;return t?Number(t):(n=e,rQ.includes(n.toLowerCase()))?0:1}(n[0],n[1])]})}}(r.keywords,e.case_insensitive)),r.keywordPatternRe=t(o,!0),s&&(r.begin||(r.begin=/\B|\b/),r.beginRe=t(r.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),r.end&&(r.endRe=t(r.end)),r.terminatorEnd=l(r.end)||"",r.endsWithParent&&s.terminatorEnd&&(r.terminatorEnd+=(r.end?"|":"")+s.terminatorEnd)),r.illegal&&(r.illegalRe=t(r.illegal)),r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map(function(e){var t;return((t="self"===e?r:e).variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(e){return n(t,{variants:null},e)})),t.cachedVariants)?t.cachedVariants:function e(t){return!!t&&(t.endsWithParent||e(t.starts))}(t)?n(t,{starts:t.starts?n(t.starts):null}):Object.isFrozen(t)?n(t):t})),r.contains.forEach(function(e){a(e,r)}),r.starts&&a(r.starts,s),r.matcher=function(e){let t=new i;return e.contains.forEach(e=>t.addRule(e.begin,{rule:e,type:"begin"})),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}(r),r}(e)}(R),y="",A=o||N,I={},D=new h.__emitter(h);!function(){let e=[];for(let t=A;t!==R;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach(e=>D.openNode(e))}();let w="",x=0,L=0,M=0,P=!1;try{if(R.__emitTokens)R.__emitTokens(r,D);else{for(A.matcher.considerAll();;){M++,P?P=!1:A.matcher.considerAll(),A.matcher.lastIndex=L;let e=A.matcher.exec(r);if(!e)break;let t=T(r.substring(L,e.index),e);L=e.index+t}T(r.substring(L))}return D.finalize(),y=D.toHTML(),{language:a,value:y,relevance:x,illegal:!1,_emitter:D,_top:A}}catch(e){if(e.message&&e.message.includes("Illegal"))return{language:a,value:t(r),illegal:!0,relevance:0,_illegalBy:{message:e.message,index:L,context:r.slice(L-100,L+100),mode:e.mode,resultSoFar:y},_emitter:D};if(g)return{language:a,value:t(r),illegal:!1,relevance:0,errorRaised:e,_emitter:D,_top:A};throw e}}function C(e,n){n=n||h.languages||Object.keys(i);let a=function(e){let n={value:t(e),illegal:!1,relevance:0,_top:b,_emitter:new h.__emitter(h)};return n._emitter.addText(e),n}(e),r=n.filter(O).filter(I).map(t=>v(t,e,!1));r.unshift(a);let[s,o]=r.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(O(e.language).supersetOf===t.language)return 1;if(O(t.language).supersetOf===e.language)return -1}return 0});return s.secondBest=o,s}function R(e){let t=null,n=function(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";let n=h.languageDetectRe.exec(t);if(n){let t=O(n[1]);return t||(rX(S.replace("{}",n[1])),rX("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}return t.split(/\s+/).find(e=>f(e)||O(e))}(e);if(f(n))return;if(D("before:highlightElement",{el:e,language:n}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);if(e.children.length>0&&(h.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),h.throwUnescapedHTML))throw new r2("One of your code blocks includes unescaped HTML.",e.innerHTML);let a=(t=e).textContent,i=n?T(a,{language:n,ignoreIllegals:!0}):C(a);e.innerHTML=i.value,e.dataset.highlighted="yes",function(e,t,n){let a=t&&r[t]||n;e.classList.add("hljs"),e.classList.add(`language-${a}`)}(e,n,i.language),e.result={language:i.language,re:i.relevance,relevance:i.relevance},i.secondBest&&(e.secondBest={language:i.secondBest.language,relevance:i.secondBest.relevance}),D("after:highlightElement",{el:e,result:i,text:a})}let N=!1;function y(){if("loading"===document.readyState)return void(N=!0);document.querySelectorAll(h.cssSelector).forEach(R)}function O(e){return i[e=(e||"").toLowerCase()]||i[r[e]]}function A(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach(e=>{r[e.toLowerCase()]=t})}function I(e){let t=O(e);return t&&!t.disableAutodetect}function D(e,t){s.forEach(function(n){n[e]&&n[e](t)})}for(let e in"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",function(){N&&y()},!1),Object.assign(a,{highlight:T,highlightAuto:C,highlightAll:y,highlightElement:R,highlightBlock:function(e){return rZ("10.7.0","highlightBlock will be removed entirely in v12.0"),rZ("10.7.0","Please use highlightElement now."),R(e)},configure:function(e){h=n(h,e)},initHighlighting:()=>{y(),rZ("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){y(),rZ("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(e,t){let n=null;try{n=t(a)}catch(t){if(rj("Language definition for '{}' could not be registered.".replace("{}",e)),!g)throw t;rj(t),n=b}n.name||(n.name=e),i[e]=n,n.rawDefinition=t.bind(null,a),n.aliases&&A(n.aliases,{languageName:e})},unregisterLanguage:function(e){for(let t of(delete i[e],Object.keys(r)))r[t]===e&&delete r[t]},listLanguages:function(){return Object.keys(i)},getLanguage:O,registerAliases:A,autoDetection:I,inherit:n,addPlugin:function(e){var t;(t=e)["before:highlightBlock"]&&!t["before:highlightElement"]&&(t["before:highlightElement"]=e=>{t["before:highlightBlock"](Object.assign({block:e.el},e))}),t["after:highlightBlock"]&&!t["after:highlightElement"]&&(t["after:highlightElement"]=e=>{t["after:highlightBlock"](Object.assign({block:e.el},e))}),s.push(e)},removePlugin:function(e){let t=s.indexOf(e);-1!==t&&s.splice(t,1)}}),a.debugMode=function(){g=!1},a.safeMode=function(){g=!0},a.versionString="11.9.0",a.regex={concat:u,lookahead:c,either:m,optional:_,anyNumberOfTimes:d},rG)"object"==typeof rG[e]&&function e(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(n=>{let a=t[n],i=typeof a;"object"!==i&&"function"!==i||Object.isFrozen(a)||e(a)}),t}(rG[e]);return Object.assign(a,rG),a},r4=r9({});r4.newInstance=()=>r9({}),r4.HighlightJS=r4,r4.default=r4;r4.registerLanguage("1c",(A||(A=1,O=function(e){let t="[A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_][A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_0-9]+",n="\u0434\u0430\u043B\u0435\u0435 \u0432\u043E\u0437\u0432\u0440\u0430\u0442 \u0432\u044B\u0437\u0432\u0430\u0442\u044C\u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0434\u043B\u044F \u0435\u0441\u043B\u0438 \u0438 \u0438\u0437 \u0438\u043B\u0438 \u0438\u043D\u0430\u0447\u0435 \u0438\u043D\u0430\u0447\u0435\u0435\u0441\u043B\u0438 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u043A\u043E\u043D\u0435\u0446\u0435\u0441\u043B\u0438 \u043A\u043E\u043D\u0435\u0446\u043F\u043E\u043F\u044B\u0442\u043A\u0438 \u043A\u043E\u043D\u0435\u0446\u0446\u0438\u043A\u043B\u0430 \u043D\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u043F\u0435\u0440\u0435\u043C \u043F\u043E \u043F\u043E\u043A\u0430 \u043F\u043E\u043F\u044B\u0442\u043A\u0430 \u043F\u0440\u0435\u0440\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0442\u043E\u0433\u0434\u0430 \u0446\u0438\u043A\u043B \u044D\u043A\u0441\u043F\u043E\u0440\u0442 ",a="null \u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u043E\u0436\u044C \u043D\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043E",i=e.inherit(e.NUMBER_MODE),r={className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},s={begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number",begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},o=e.inherit(e.C_LINE_COMMENT_MODE);return{name:"1C:Enterprise",case_insensitive:!0,keywords:{$pattern:t,keyword:n,built_in:"\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0440\u0430\u043D\u0438\u0446 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0440\u043E\u043A \u0441\u0438\u043C\u0432\u043E\u043B\u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 ansitooem oemtoansi \u0432\u0432\u0435\u0441\u0442\u0438\u0432\u0438\u0434\u0441\u0443\u0431\u043A\u043E\u043D\u0442\u043E \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u0435\u0440\u0438\u043E\u0434 \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u0434\u0430\u0442\u0430\u0433\u043E\u0434 \u0434\u0430\u0442\u0430\u043C\u0435\u0441\u044F\u0446 \u0434\u0430\u0442\u0430\u0447\u0438\u0441\u043B\u043E \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0441\u0442\u0440\u043E\u043A\u0443 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043E\u043A\u0438 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0438\u0431 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043A\u043E\u0434\u0441\u0438\u043C\u0432 \u043A\u043E\u043D\u0433\u043E\u0434\u0430 \u043A\u043E\u043D\u0435\u0446\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043A\u043E\u043D\u0435\u0446\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0433\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043A\u043E\u043D\u0435\u0446\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430 \u043A\u043E\u043D\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043A\u043E\u043D\u043C\u0435\u0441\u044F\u0446\u0430 \u043A\u043E\u043D\u043D\u0435\u0434\u0435\u043B\u0438 \u043B\u043E\u0433 \u043B\u043E\u043310 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u0441\u0443\u0431\u043A\u043E\u043D\u0442\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435\u043D\u0430\u0431\u043E\u0440\u0430\u043F\u0440\u0430\u0432 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C\u0432\u0438\u0434 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C\u0441\u0447\u0435\u0442 \u043D\u0430\u0439\u0442\u0438\u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430 \u043D\u0430\u0447\u0433\u043E\u0434\u0430 \u043D\u0430\u0447\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043D\u0430\u0447\u043C\u0435\u0441\u044F\u0446\u0430 \u043D\u0430\u0447\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u043E\u043C\u0435\u0440\u0434\u043D\u044F\u0433\u043E\u0434\u0430 \u043D\u043E\u043C\u0435\u0440\u0434\u043D\u044F\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u043E\u043C\u0435\u0440\u043D\u0435\u0434\u0435\u043B\u0438\u0433\u043E\u0434\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0430\u0441\u0447\u0435\u0442\u043E\u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u044F\u0437\u044B\u043A \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u043E\u043A\u043D\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0438\u043E\u0434\u0441\u0442\u0440 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u0430\u0442\u0443\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043E\u0442\u0431\u043E\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0443\u0441\u0442\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0442\u0430 \u043F\u0440\u0435\u0444\u0438\u043A\u0441\u0430\u0432\u0442\u043E\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u0438 \u043F\u0440\u043E\u043F\u0438\u0441\u044C \u043F\u0443\u0441\u0442\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0440\u0430\u0437\u043C \u0440\u0430\u0437\u043E\u0431\u0440\u0430\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u043D\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u043F\u043E \u0441\u0438\u043C\u0432 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u043E\u0431\u044A\u0435\u043A\u0442 \u0441\u0442\u0430\u0442\u0443\u0441\u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0430 \u0441\u0442\u0440\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u0441\u0442\u0440\u043E\u043A \u0441\u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u0447\u0435\u0442\u043F\u043E\u043A\u043E\u0434\u0443 \u0442\u0435\u043A\u0443\u0449\u0435\u0435\u0432\u0440\u0435\u043C\u044F \u0442\u0438\u043F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0441\u0442\u0440 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0442\u0430\u043D\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0442\u0430\u043F\u043E \u0444\u0438\u043A\u0441\u0448\u0430\u0431\u043B\u043E\u043D \u0448\u0430\u0431\u043B\u043E\u043D acos asin atan base64\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 base64\u0441\u0442\u0440\u043E\u043A\u0430 cos exp log log10 pow sin sqrt tan xml\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 xml\u0441\u0442\u0440\u043E\u043A\u0430 xml\u0442\u0438\u043F xml\u0442\u0438\u043F\u0437\u043D\u0447 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0435\u043E\u043A\u043D\u043E \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C\u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0431\u0443\u043B\u0435\u0432\u043E \u0432\u0432\u0435\u0441\u0442\u0438\u0434\u0430\u0442\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u0441\u0442\u0440\u043E\u043A\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0447\u0438\u0441\u043B\u043E \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044C\u0447\u0442\u0435\u043D\u0438\u044Fxml \u0432\u043E\u043F\u0440\u043E\u0441 \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432\u0440\u0435\u0433 \u0432\u044B\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443\u043F\u0440\u0430\u0432\u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u0432\u044B\u0447\u0438\u0441\u043B\u0438\u0442\u044C \u0433\u043E\u0434 \u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B\u0432\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0434\u0430\u0442\u0430 \u0434\u0435\u043D\u044C \u0434\u0435\u043D\u044C\u0433\u043E\u0434\u0430 \u0434\u0435\u043D\u044C\u043D\u0435\u0434\u0435\u043B\u0438 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C\u043C\u0435\u0441\u044F\u0446 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0434\u043B\u044F\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0440\u0430\u0431\u043E\u0442\u0443\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C\u0440\u0430\u0431\u043E\u0442\u0443\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0432\u043D\u0435\u0448\u043D\u044E\u044E\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u044C\u0441\u043F\u0440\u0430\u0432\u043A\u0443 \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044Cjson \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044Cxml \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C\u0434\u0430\u0442\u0443json \u0437\u0430\u043F\u0438\u0441\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0441\u0432\u043E\u0439\u0441\u0442\u0432 \u0437\u0430\u043F\u0440\u043E\u0441\u0438\u0442\u044C\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C\u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u0437\u0430\u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0441\u0442\u0440\u043E\u043A\u0443\u0432\u043D\u0443\u0442\u0440 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0444\u0430\u0439\u043B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043E\u043A\u0438\u0432\u043D\u0443\u0442\u0440 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0444\u0430\u0439\u043B\u0430 \u0438\u0437xml\u0442\u0438\u043F\u0430 \u0438\u043C\u043F\u043E\u0440\u0442\u043C\u043E\u0434\u0435\u043B\u0438xdto \u0438\u043C\u044F\u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0430 \u0438\u043C\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435\u0434\u0430\u043D\u043D\u044B\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F\u043E\u0431\u043E\u0448\u0438\u0431\u043A\u0435 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0438\u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0433\u043E\u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445\u0444\u0430\u0439\u043B\u043E\u0432 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u0442\u0440\u043E\u043A\u0443 \u043A\u043E\u0434\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043A\u043E\u0434\u0441\u0438\u043C\u0432\u043E\u043B\u0430 \u043A\u043E\u043C\u0430\u043D\u0434\u0430\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u043A\u043E\u043D\u0435\u0446\u0433\u043E\u0434\u0430 \u043A\u043E\u043D\u0435\u0446\u0434\u043D\u044F \u043A\u043E\u043D\u0435\u0446\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043A\u043E\u043D\u0435\u0446\u043C\u0435\u0441\u044F\u0446\u0430 \u043A\u043E\u043D\u0435\u0446\u043C\u0438\u043D\u0443\u0442\u044B \u043A\u043E\u043D\u0435\u0446\u043D\u0435\u0434\u0435\u043B\u0438 \u043A\u043E\u043D\u0435\u0446\u0447\u0430\u0441\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430\u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u0441\u043A\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430 \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0444\u0430\u0439\u043B \u043A\u0440\u0430\u0442\u043A\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043E\u0448\u0438\u0431\u043A\u0438 \u043B\u0435\u0432 \u043C\u0430\u043A\u0441 \u043C\u0435\u0441\u0442\u043D\u043E\u0435\u0432\u0440\u0435\u043C\u044F \u043C\u0435\u0441\u044F\u0446 \u043C\u0438\u043D \u043C\u0438\u043D\u0443\u0442\u0430 \u043C\u043E\u043D\u043E\u043F\u043E\u043B\u044C\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u043D\u0430\u0439\u0442\u0438 \u043D\u0430\u0439\u0442\u0438\u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u0441\u0438\u043C\u0432\u043E\u043B\u044Bxml \u043D\u0430\u0439\u0442\u0438\u043E\u043A\u043D\u043E\u043F\u043E\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0441\u0441\u044B\u043B\u043A\u0435 \u043D\u0430\u0439\u0442\u0438\u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043D\u044B\u0435\u043D\u0430\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u043D\u0430\u0439\u0442\u0438\u043F\u043E\u0441\u0441\u044B\u043B\u043A\u0430\u043C \u043D\u0430\u0439\u0442\u0438\u0444\u0430\u0439\u043B\u044B \u043D\u0430\u0447\u0430\u043B\u043E\u0433\u043E\u0434\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u0434\u043D\u044F \u043D\u0430\u0447\u0430\u043B\u043E\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u043C\u0435\u0441\u044F\u0446\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u043C\u0438\u043D\u0443\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u043E\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u0447\u0430\u0441\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0437\u0430\u043F\u0440\u043E\u0441\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u0437\u0430\u043F\u0443\u0441\u043A\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0432\u043D\u0435\u0448\u043D\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0438\u0441\u043A\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0447\u0435\u0433\u043E\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u0437\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044E \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443\u0432\u043D\u0435\u0448\u043D\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u043D\u0435\u0434\u0435\u043B\u044F\u0433\u043E\u0434\u0430 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u044C\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F \u043D\u043E\u043C\u0435\u0440\u0441\u0435\u0430\u043D\u0441\u0430\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043D\u043E\u043C\u0435\u0440\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043D\u0440\u0435\u0433 \u043D\u0441\u0442\u0440 \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u044E\u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043F\u0440\u0435\u0440\u044B\u0432\u0430\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\u0442\u044C\u0444\u0430\u0439\u043B\u044B \u043E\u043A\u0440 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u043E\u0448\u0438\u0431\u043A\u0438 \u043E\u043F\u043E\u0432\u0435\u0441\u0442\u0438\u0442\u044C \u043E\u043F\u043E\u0432\u0435\u0441\u0442\u0438\u0442\u044C\u043E\u0431\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0437\u0430\u043F\u0440\u043E\u0441\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0438\u043D\u0434\u0435\u043A\u0441\u0441\u043F\u0440\u0430\u0432\u043A\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0441\u043E\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0435\u0441\u043F\u0440\u0430\u0432\u043A\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0441\u043F\u0440\u0430\u0432\u043A\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0444\u043E\u0440\u043C\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0444\u043E\u0440\u043C\u0443\u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044E \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043F\u0435\u0440\u0435\u0439\u0442\u0438\u043F\u043E\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0441\u0441\u044B\u043B\u043A\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0444\u0430\u0439\u043B \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0432\u043D\u0435\u0448\u043D\u044E\u044E\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0443 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0437\u0430\u043F\u0440\u043E\u0441\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043E\u0448\u0438\u0431\u043A\u0438 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u0432\u043E\u0434\u0434\u0430\u0442\u044B \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u0432\u043E\u0434\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u0432\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0438 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u0432\u043E\u0434\u0447\u0438\u0441\u043B\u0430 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u043E\u043F\u0440\u043E\u0441 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E\u043E\u0431\u043E\u0448\u0438\u0431\u043A\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u043D\u0430\u043A\u0430\u0440\u0442\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u043E\u043B\u043D\u043E\u0435\u0438\u043C\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044Ccom\u043E\u0431\u044A\u0435\u043A\u0442 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044Cxml\u0442\u0438\u043F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0430\u0434\u0440\u0435\u0441\u043F\u043E\u043C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044E \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0443\u0441\u0435\u0430\u043D\u0441\u043E\u0432 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F\u0441\u043F\u044F\u0449\u0435\u0433\u043E\u0441\u0435\u0430\u043D\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0437\u0430\u0441\u044B\u043F\u0430\u043D\u0438\u044F\u043F\u0430\u0441\u0441\u0438\u0432\u043D\u043E\u0433\u043E\u0441\u0435\u0430\u043D\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0432\u044B\u0431\u043E\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u043A\u043E\u0434\u044B\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u0447\u0430\u0441\u043E\u0432\u044B\u0435\u043F\u043E\u044F\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043E\u0442\u0431\u043E\u0440\u0430\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u0437\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u043C\u044F\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E\u0444\u0430\u0439\u043B\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u043C\u044F\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E\u044D\u043A\u0440\u0430\u043D\u043E\u0432\u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043A\u0440\u0430\u0442\u043A\u0438\u0439\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0430\u043A\u0435\u0442\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0430\u0441\u043A\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043B\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0430\u0441\u043A\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043B\u044B\u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0430\u0441\u043A\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043B\u044B\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u0430\u0434\u0440\u0435\u0441\u0443 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0443\u044E\u0434\u043B\u0438\u043D\u0443\u043F\u0430\u0440\u043E\u043B\u0435\u0439\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u0443\u044E\u0441\u0441\u044B\u043B\u043A\u0443 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u0443\u044E\u0441\u0441\u044B\u043B\u043A\u0443\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0431\u0449\u0438\u0439\u043C\u0430\u043A\u0435\u0442 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0431\u0449\u0443\u044E\u0444\u043E\u0440\u043C\u0443 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u043A\u043D\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u043F\u0435\u0440\u0430\u0442\u0438\u0432\u043D\u0443\u044E\u043E\u0442\u043C\u0435\u0442\u043A\u0443\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0433\u043E\u0440\u0435\u0436\u0438\u043C\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445\u043E\u043F\u0446\u0438\u0439\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u043E\u043B\u043D\u043E\u0435\u0438\u043C\u044F\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0445\u0441\u0441\u044B\u043B\u043E\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443\u0441\u043B\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u043F\u0430\u0440\u043E\u043B\u0435\u0439\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u043F\u0443\u0442\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u043F\u0443\u0442\u0438\u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u043F\u0443\u0442\u0438\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u0435\u0430\u043D\u0441\u044B\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043A\u043E\u0440\u043E\u0441\u0442\u044C\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043E\u0431\u044A\u0435\u043A\u0442\u0430\u0438\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043E\u0441\u0442\u0430\u0432\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430odata \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0443\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0442\u0435\u043A\u0443\u0449\u0438\u0439\u0441\u0435\u0430\u043D\u0441\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u0430\u0439\u043B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u0430\u0439\u043B\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u043E\u0440\u043C\u0443 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u0443\u044E\u043E\u043F\u0446\u0438\u044E \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u0443\u044E\u043E\u043F\u0446\u0438\u044E\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438\u043E\u0441 \u043F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0432\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0435\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0444\u0430\u0439\u043B \u043F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0444\u0430\u0439\u043B\u044B \u043F\u0440\u0430\u0432 \u043F\u0440\u0430\u0432\u043E\u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043A\u043E\u0434\u0430\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0435\u0440\u0438\u043E\u0434\u0430 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0430\u0432\u0430 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0447\u0430\u0441\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u044F\u0441\u0430 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u043A\u0440\u0430\u0442\u0438\u0442\u044C\u0440\u0430\u0431\u043E\u0442\u0443\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u043F\u0440\u0438\u0432\u0438\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C\u0432\u044B\u0437\u043E\u0432 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044Cjson \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044Cxml \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C\u0434\u0430\u0442\u0443json \u043F\u0443\u0441\u0442\u0430\u044F\u0441\u0442\u0440\u043E\u043A\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0439\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0440\u0430\u0437\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0434\u043B\u044F\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u044C\u0444\u0430\u0439\u043B \u0440\u0430\u0437\u043E\u0440\u0432\u0430\u0442\u044C\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435\u0441\u0432\u043D\u0435\u0448\u043D\u0438\u043C\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u043C\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u0442\u0440\u043E\u043A\u0443 \u0440\u043E\u043B\u044C\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u0441\u0435\u043A\u0443\u043D\u0434\u0430 \u0441\u0438\u0433\u043D\u0430\u043B \u0441\u0438\u043C\u0432\u043E\u043B \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u043B\u0435\u0442\u043D\u0435\u0433\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C\u0431\u0443\u0444\u0435\u0440\u044B\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u043A\u0430\u0442\u0430\u043B\u043E\u0433 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0444\u0430\u0431\u0440\u0438\u043A\u0443xdto \u0441\u043E\u043A\u0440\u043B \u0441\u043E\u043A\u0440\u043B\u043F \u0441\u043E\u043A\u0440\u043F \u0441\u043E\u043E\u0431\u0449\u0438\u0442\u044C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0441\u0440\u0435\u0434 \u0441\u0442\u0440\u0434\u043B\u0438\u043D\u0430 \u0441\u0442\u0440\u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F\u043D\u0430 \u0441\u0442\u0440\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043D\u0430\u0439\u0442\u0438 \u0441\u0442\u0440\u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F\u0441 \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u0442\u0440\u043E\u043A\u0430\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u0441\u0442\u0440\u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u0442\u0440\u043E\u043A\u0443 \u0441\u0442\u0440\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u0441\u0440\u0430\u0432\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u0447\u0438\u0441\u043B\u043E\u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0439 \u0441\u0442\u0440\u0447\u0438\u0441\u043B\u043E\u0441\u0442\u0440\u043E\u043A \u0441\u0442\u0440\u0448\u0430\u0431\u043B\u043E\u043D \u0442\u0435\u043A\u0443\u0449\u0430\u044F\u0434\u0430\u0442\u0430 \u0442\u0435\u043A\u0443\u0449\u0430\u044F\u0434\u0430\u0442\u0430\u0441\u0435\u0430\u043D\u0441\u0430 \u0442\u0435\u043A\u0443\u0449\u0430\u044F\u0443\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u044C\u043D\u0430\u044F\u0434\u0430\u0442\u0430 \u0442\u0435\u043A\u0443\u0449\u0430\u044F\u0443\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u044C\u043D\u0430\u044F\u0434\u0430\u0442\u0430\u0432\u043C\u0438\u043B\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434\u0430\u0445 \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0433\u043E\u0448\u0440\u0438\u0444\u0442\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u043A\u043E\u0434\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u0440\u0435\u0436\u0438\u043C\u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u044F\u0437\u044B\u043A \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u044F\u0437\u044B\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0442\u0438\u043F \u0442\u0438\u043F\u0437\u043D\u0447 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044F\u0430\u043A\u0442\u0438\u0432\u043D\u0430 \u0442\u0440\u0435\u0433 \u0443\u0434\u0430\u043B\u0438\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u0443\u0434\u0430\u043B\u0438\u0442\u044C\u0438\u0437\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430 \u0443\u0434\u0430\u043B\u0438\u0442\u044C\u043E\u0431\u044A\u0435\u043A\u0442\u044B \u0443\u0434\u0430\u043B\u0438\u0442\u044C\u0444\u0430\u0439\u043B\u044B \u0443\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u044C\u043D\u043E\u0435\u0432\u0440\u0435\u043C\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C\u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0443\u0441\u0435\u0430\u043D\u0441\u043E\u0432 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0432\u043D\u0435\u0448\u043D\u044E\u044E\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0443 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F\u0441\u043F\u044F\u0449\u0435\u0433\u043E\u0441\u0435\u0430\u043D\u0441\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0437\u0430\u0441\u044B\u043F\u0430\u043D\u0438\u044F\u043F\u0430\u0441\u0441\u0438\u0432\u043D\u043E\u0433\u043E\u0441\u0435\u0430\u043D\u0441\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043A\u0440\u0430\u0442\u043A\u0438\u0439\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0443\u044E\u0434\u043B\u0438\u043D\u0443\u043F\u0430\u0440\u043E\u043B\u0435\u0439\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043C\u043E\u043D\u043E\u043F\u043E\u043B\u044C\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0433\u043E\u0440\u0435\u0436\u0438\u043C\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445\u043E\u043F\u0446\u0438\u0439\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043F\u0440\u0438\u0432\u0438\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443\u0441\u043B\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u043F\u0430\u0440\u043E\u043B\u0435\u0439\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435\u0441\u0432\u043D\u0435\u0448\u043D\u0438\u043C\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u043C\u0434\u0430\u043D\u043D\u044B\u0445 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043E\u0431\u044A\u0435\u043A\u0442\u0430\u0438\u0444\u043E\u0440\u043C\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0441\u043E\u0441\u0442\u0430\u0432\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430odata \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441\u0441\u0435\u0430\u043D\u0441\u0430 \u0444\u043E\u0440\u043C\u0430\u0442 \u0446\u0435\u043B \u0447\u0430\u0441 \u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441 \u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441\u0441\u0435\u0430\u043D\u0441\u0430 \u0447\u0438\u0441\u043B\u043E \u0447\u0438\u0441\u043B\u043E\u043F\u0440\u043E\u043F\u0438\u0441\u044C\u044E \u044D\u0442\u043E\u0430\u0434\u0440\u0435\u0441\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430 ws\u0441\u0441\u044B\u043B\u043A\u0438 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u043A\u0430\u0440\u0442\u0438\u043D\u043E\u043A \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u043C\u0430\u043A\u0435\u0442\u043E\u0432\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u0441\u0442\u0438\u043B\u0435\u0439 \u0431\u0438\u0437\u043D\u0435\u0441\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u044B \u0432\u043D\u0435\u0448\u043D\u0438\u0435\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u043D\u0435\u0448\u043D\u0438\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u0432\u043D\u0435\u0448\u043D\u0438\u0435\u043E\u0442\u0447\u0435\u0442\u044B \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0435\u043F\u043E\u043A\u0443\u043F\u043A\u0438 \u0433\u043B\u0430\u0432\u043D\u044B\u0439\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0433\u043B\u0430\u0432\u043D\u044B\u0439\u0441\u0442\u0438\u043B\u044C \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B \u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0435\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u0436\u0443\u0440\u043D\u0430\u043B\u044B\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F\u043E\u0431\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0447\u0435\u0439\u0434\u0430\u0442\u044B \u0438\u0441\u0442\u043E\u0440\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043A\u043E\u043D\u0441\u0442\u0430\u043D\u0442\u044B \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438\u043E\u0442\u0431\u043E\u0440\u0430 \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0440\u0435\u043A\u043B\u0430\u043C\u044B \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0430\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0445\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043E\u0442\u0447\u0435\u0442\u044B \u043F\u0430\u043D\u0435\u043B\u044C\u0437\u0430\u0434\u0430\u0447\u043E\u0441 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0441\u0435\u0430\u043D\u0441\u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u043F\u043B\u0430\u043D\u044B\u0432\u0438\u0434\u043E\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043F\u043B\u0430\u043D\u044B\u0432\u0438\u0434\u043E\u0432\u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A \u043F\u043B\u0430\u043D\u044B\u043E\u0431\u043C\u0435\u043D\u0430 \u043F\u043B\u0430\u043D\u044B\u0441\u0447\u0435\u0442\u043E\u0432 \u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439\u043F\u043E\u0438\u0441\u043A \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430\u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445\u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0440\u0430\u0431\u043E\u0447\u0430\u044F\u0434\u0430\u0442\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u0431\u0443\u0445\u0433\u0430\u043B\u0442\u0435\u0440\u0438\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u0441\u0432\u0435\u0434\u0435\u043D\u0438\u0439 \u0440\u0435\u0433\u043B\u0430\u043C\u0435\u043D\u0442\u043D\u044B\u0435\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0441\u0435\u0440\u0438\u0430\u043B\u0438\u0437\u0430\u0442\u043E\u0440xdto \u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u0433\u0435\u043E\u043F\u043E\u0437\u0438\u0446\u0438\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043C\u0443\u043B\u044C\u0442\u0438\u043C\u0435\u0434\u0438\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0440\u0435\u043A\u043B\u0430\u043C\u044B \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043F\u043E\u0447\u0442\u044B \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0438\u0438 \u0444\u0430\u0431\u0440\u0438\u043A\u0430xdto \u0444\u0430\u0439\u043B\u043E\u0432\u044B\u0435\u043F\u043E\u0442\u043E\u043A\u0438 \u0444\u043E\u043D\u043E\u0432\u044B\u0435\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0432\u043E\u0442\u0447\u0435\u0442\u043E\u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u0434\u0430\u043D\u043D\u044B\u0445\u0444\u043E\u0440\u043C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u043E\u0431\u0449\u0438\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u0441\u043A\u0438\u0445\u0441\u043F\u0438\u0441\u043A\u043E\u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043E\u0442\u0447\u0435\u0442\u043E\u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0441\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A ",class:"web\u0446\u0432\u0435\u0442\u0430 windows\u0446\u0432\u0435\u0442\u0430 windows\u0448\u0440\u0438\u0444\u0442\u044B \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u043A\u0430\u0440\u0442\u0438\u043D\u043E\u043A \u0440\u0430\u043C\u043A\u0438\u0441\u0442\u0438\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0446\u0432\u0435\u0442\u0430\u0441\u0442\u0438\u043B\u044F \u0448\u0440\u0438\u0444\u0442\u044B\u0441\u0442\u0438\u043B\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435\u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445\u0444\u043E\u0440\u043C\u044B\u0432\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u0430\u0432\u0442\u043E\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u044F\u0432\u0444\u043E\u0440\u043C\u0435 \u0430\u0432\u0442\u043E\u0440\u0430\u0437\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0435\u0441\u0435\u0440\u0438\u0439 \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0432\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u044F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u0438\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0432\u044B\u0441\u043E\u0442\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u0430\u044F\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430\u0444\u043E\u0440\u043C\u044B \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0435\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0435\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0432\u0438\u0434\u0433\u0440\u0443\u043F\u043F\u044B\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u0434\u0435\u043A\u043E\u0440\u0430\u0446\u0438\u0438\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u0438\u0434\u043A\u043D\u043E\u043F\u043A\u0438\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044F \u0432\u0438\u0434\u043F\u043E\u0434\u043F\u0438\u0441\u0435\u0439\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435 \u0432\u0438\u0434\u043F\u043E\u043B\u044F\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u0444\u043B\u0430\u0436\u043A\u0430 \u0432\u043B\u0438\u044F\u043D\u0438\u0435\u0440\u0430\u0437\u043C\u0435\u0440\u0430\u043D\u0430\u043F\u0443\u0437\u044B\u0440\u0435\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0435\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0435\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0430\u043A\u043E\u043B\u043E\u043D\u043E\u043A \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0430\u043F\u043E\u0434\u0447\u0438\u043D\u0435\u043D\u043D\u044B\u0445\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u0444\u043E\u0440\u043C\u044B \u0433\u0440\u0443\u043F\u043F\u044B\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F\u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u043C\u0435\u0436\u0434\u0443\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043C\u0438\u0444\u043E\u0440\u043C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0432\u044B\u0432\u043E\u0434\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043F\u043E\u043B\u043E\u0441\u044B\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0442\u043E\u0447\u043A\u0438\u0431\u0438\u0440\u0436\u0435\u0432\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0438\u0441\u0442\u043E\u0440\u0438\u044F\u0432\u044B\u0431\u043E\u0440\u0430\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u043E\u0441\u0438\u0442\u043E\u0447\u0435\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0440\u0430\u0437\u043C\u0435\u0440\u0430\u043F\u0443\u0437\u044B\u0440\u044C\u043A\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u0433\u0440\u0443\u043F\u043F\u044B\u043A\u043E\u043C\u0430\u043D\u0434 \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C\u0441\u0435\u0440\u0438\u0439 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0434\u0435\u0440\u0435\u0432\u0430 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0441\u043F\u0438\u0441\u043A\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u0434\u0435\u043D\u0434\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u043C\u0435\u0442\u043E\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u043C\u0435\u0442\u043E\u043A\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0444\u043E\u0440\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0432\u043B\u0435\u0433\u0435\u043D\u0434\u0435\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u044B\u043A\u043D\u043E\u043F\u043E\u043A \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u0448\u043A\u0430\u043B\u044B\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0438\u0437\u043C\u0435\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043A\u043D\u043E\u043F\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043A\u043D\u043E\u043F\u043A\u0438\u0432\u044B\u0431\u043E\u0440\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0439\u0444\u043E\u0440\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043E\u0431\u044B\u0447\u043D\u043E\u0439\u0433\u0440\u0443\u043F\u043F\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043E\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u043F\u0443\u0437\u044B\u0440\u044C\u043A\u043E\u0432\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043F\u0430\u043D\u0435\u043B\u0438\u043F\u043E\u0438\u0441\u043A\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F\u043F\u0440\u0438\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0438\u043F\u043E\u043B\u043E\u0441\u044B\u0440\u0435\u0433\u0443\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0444\u043E\u0440\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043E\u0431\u044B\u0447\u043D\u043E\u0439\u0433\u0440\u0443\u043F\u043F\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0444\u0438\u0433\u0443\u0440\u044B\u043A\u043D\u043E\u043F\u043A\u0438 \u043F\u0430\u043B\u0438\u0442\u0440\u0430\u0446\u0432\u0435\u0442\u043E\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043E\u0431\u044B\u0447\u043D\u043E\u0439\u0433\u0440\u0443\u043F\u043F\u044B \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0434\u0435\u043D\u0434\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u0438\u0441\u043A\u0432\u0442\u0430\u0431\u043B\u0438\u0446\u0435\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438\u043A\u043D\u043E\u043F\u043A\u0438\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u043E\u043C\u0430\u043D\u0434\u043D\u043E\u0439\u043F\u0430\u043D\u0435\u043B\u0438\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u043E\u043C\u0430\u043D\u0434\u043D\u043E\u0439\u043F\u0430\u043D\u0435\u043B\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043E\u043F\u043E\u0440\u043D\u043E\u0439\u0442\u043E\u0447\u043A\u0438\u043E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0438 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u0434\u043F\u0438\u0441\u0435\u0439\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u0434\u043F\u0438\u0441\u0435\u0439\u0448\u043A\u0430\u043B\u044B\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0438\u0437\u043C\u0435\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0441\u0442\u0440\u043E\u043A\u0438\u043F\u043E\u0438\u0441\u043A\u0430 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430\u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439\u043B\u0438\u043D\u0438\u0438 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043F\u043E\u0438\u0441\u043A\u043E\u043C \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0448\u043A\u0430\u043B\u044B\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u043E\u0440\u044F\u0434\u043E\u043A\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0442\u043E\u0447\u0435\u043A\u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0439\u0433\u0438\u0441\u0442\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u0440\u044F\u0434\u043E\u043A\u0441\u0435\u0440\u0438\u0439\u0432\u043B\u0435\u0433\u0435\u043D\u0434\u0435\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0430\u0437\u043C\u0435\u0440\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u0448\u043A\u0430\u043B\u044B\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0430\u0441\u0442\u044F\u0433\u0438\u0432\u0430\u043D\u0438\u0435\u043F\u043E\u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u0440\u0435\u0436\u0438\u043C\u0430\u0432\u0442\u043E\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0432\u0432\u043E\u0434\u0430\u0441\u0442\u0440\u043E\u043A\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0440\u0435\u0436\u0438\u043C\u0432\u044B\u0431\u043E\u0440\u0430\u043D\u0435\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u043E\u0433\u043E \u0440\u0435\u0436\u0438\u043C\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0434\u0430\u0442\u044B \u0440\u0435\u0436\u0438\u043C\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0441\u0442\u0440\u043E\u043A\u0438\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0440\u0435\u0436\u0438\u043C\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0440\u0435\u0436\u0438\u043C\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u0440\u0430\u0437\u043C\u0435\u0440\u0430 \u0440\u0435\u0436\u0438\u043C\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0434\u0438\u0430\u043B\u043E\u0433\u0430\u043F\u0435\u0447\u0430\u0442\u0438 \u0440\u0435\u0436\u0438\u043C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u043A\u043E\u043C\u0430\u043D\u0434\u044B \u0440\u0435\u0436\u0438\u043C\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0440\u0435\u0436\u0438\u043C\u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0433\u043E\u043E\u043A\u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043A\u0440\u044B\u0442\u0438\u044F\u043E\u043A\u043D\u0430\u0444\u043E\u0440\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0441\u0435\u0440\u0438\u0438 \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0438\u0441\u0435\u0442\u043A\u0438\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u043F\u043E\u043B\u0443\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u043E\u0441\u0442\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u043D\u0430\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 \u0440\u0435\u0436\u0438\u043C\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0440\u0435\u0436\u0438\u043C\u0441\u0433\u043B\u0430\u0436\u0438\u0432\u0430\u043D\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u0441\u0433\u043B\u0430\u0436\u0438\u0432\u0430\u043D\u0438\u044F\u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u0440\u0435\u0436\u0438\u043C\u0441\u043F\u0438\u0441\u043A\u0430\u0437\u0430\u0434\u0430\u0447 \u0441\u043A\u0432\u043E\u0437\u043D\u043E\u0435\u0432\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445\u0444\u043E\u0440\u043C\u044B\u0432\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u0441\u043F\u043E\u0441\u043E\u0431\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u0442\u0435\u043A\u0441\u0442\u0430\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u0448\u043A\u0430\u043B\u044B\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0441\u043F\u043E\u0441\u043E\u0431\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0432\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u0430\u044F\u0433\u0440\u0443\u043F\u043F\u0430\u043A\u043E\u043C\u0430\u043D\u0434 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0435\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0441\u0442\u0438\u043B\u044C\u0441\u0442\u0440\u0435\u043B\u043A\u0438 \u0442\u0438\u043F\u0430\u043F\u043F\u0440\u043E\u043A\u0441\u0438\u043C\u0430\u0446\u0438\u0438\u043B\u0438\u043D\u0438\u0438\u0442\u0440\u0435\u043D\u0434\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0435\u0434\u0438\u043D\u0438\u0446\u044B\u0448\u043A\u0430\u043B\u044B\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0442\u0438\u043F\u0438\u043C\u043F\u043E\u0440\u0442\u0430\u0441\u0435\u0440\u0438\u0439\u0441\u043B\u043E\u044F\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043B\u0438\u043D\u0438\u0438\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043B\u0438\u043D\u0438\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u043C\u0430\u0440\u043A\u0435\u0440\u0430\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043C\u0430\u0440\u043A\u0435\u0440\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u043E\u0431\u043B\u0430\u0441\u0442\u0438\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0441\u0435\u0440\u0438\u0438\u0441\u043B\u043E\u044F\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0442\u043E\u0447\u0435\u0447\u043D\u043E\u0433\u043E\u043E\u0431\u044A\u0435\u043A\u0442\u0430\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0448\u043A\u0430\u043B\u044B\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043B\u0435\u0433\u0435\u043D\u0434\u044B\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043F\u043E\u0438\u0441\u043A\u0430\u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043F\u0440\u043E\u0435\u043A\u0446\u0438\u0438\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u0439 \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u043E\u0432\u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u0439 \u0442\u0438\u043F\u0440\u0430\u043C\u043A\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0441\u0432\u044F\u0437\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u0442\u0438\u043F\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u043F\u043E\u0441\u0435\u0440\u0438\u044F\u043C\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0442\u043E\u0447\u0435\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439\u043B\u0438\u043D\u0438\u0438 \u0442\u0438\u043F\u0441\u0442\u043E\u0440\u043E\u043D\u044B\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u0444\u043E\u0440\u043C\u044B\u043E\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043F\u0448\u043A\u0430\u043B\u044B\u0440\u0430\u0434\u0430\u0440\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0444\u0430\u043A\u0442\u043E\u0440\u043B\u0438\u043D\u0438\u0438\u0442\u0440\u0435\u043D\u0434\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0444\u0438\u0433\u0443\u0440\u0430\u043A\u043D\u043E\u043F\u043A\u0438 \u0444\u0438\u0433\u0443\u0440\u044B\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0444\u0438\u043A\u0441\u0430\u0446\u0438\u044F\u0432\u0442\u0430\u0431\u043B\u0438\u0446\u0435 \u0444\u043E\u0440\u043C\u0430\u0442\u0434\u043D\u044F\u0448\u043A\u0430\u043B\u044B\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438 \u0448\u0438\u0440\u0438\u043D\u0430\u043F\u043E\u0434\u0447\u0438\u043D\u0435\u043D\u043D\u044B\u0445\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F\u0431\u0443\u0445\u0433\u0430\u043B\u0442\u0435\u0440\u0438\u0438 \u0432\u0438\u0434\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0432\u0438\u0434\u0441\u0447\u0435\u0442\u0430 \u0432\u0438\u0434\u0442\u043E\u0447\u043A\u0438\u043C\u0430\u0440\u0448\u0440\u0443\u0442\u0430\u0431\u0438\u0437\u043D\u0435\u0441\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0435\u0436\u0438\u043C\u0430\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u0440\u0435\u0437\u0430 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0430\u0432\u0442\u043E\u0432\u0440\u0435\u043C\u044F \u0440\u0435\u0436\u0438\u043C\u0437\u0430\u043F\u0438\u0441\u0438\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0440\u0435\u0436\u0438\u043C\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0430\u0432\u0442\u043E\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0439\u043D\u043E\u043C\u0435\u0440\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0430\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0438\u0442\u043E\u0433\u043E\u0432\u043A\u043E\u043B\u043E\u043D\u043E\u043A\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0438\u0442\u043E\u0433\u043E\u0432\u0441\u0442\u0440\u043E\u043A\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430\u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u043F\u043E\u0441\u043E\u0431\u0447\u0442\u0435\u043D\u0438\u044F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0434\u0432\u0443\u0441\u0442\u043E\u0440\u043E\u043D\u043D\u0435\u0439\u043F\u0435\u0447\u0430\u0442\u0438 \u0442\u0438\u043F\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u043E\u0431\u043B\u0430\u0441\u0442\u0438\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043B\u0438\u043D\u0438\u0438\u0440\u0438\u0441\u0443\u043D\u043A\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043B\u0438\u043D\u0438\u0438\u044F\u0447\u0435\u0439\u043A\u0438\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u043B\u0438\u043D\u0438\u0439\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0442\u0435\u043A\u0441\u0442\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0440\u0438\u0441\u0443\u043D\u043A\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0441\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0443\u0437\u043E\u0440\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0444\u0430\u0439\u043B\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C\u043F\u0435\u0447\u0430\u0442\u0438 \u0447\u0435\u0440\u0435\u0434\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u0441\u0442\u0440\u0430\u043D\u0438\u0446 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0432\u0440\u0435\u043C\u0435\u043D\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0449\u0438\u043A\u0430 \u0442\u0438\u043F\u0444\u0430\u0439\u043B\u0430\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u043E\u0431\u0445\u043E\u0434\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u0437\u0430\u043F\u0438\u0441\u0438\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0432\u0438\u0434\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044F\u043E\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043F\u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0442\u0438\u043F\u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u044F\u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044F\u043E\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0438\u0442\u043E\u0433\u043E\u0432 \u0434\u043E\u0441\u0442\u0443\u043F\u043A\u0444\u0430\u0439\u043B\u0443 \u0440\u0435\u0436\u0438\u043C\u0434\u0438\u0430\u043B\u043E\u0433\u0430\u0432\u044B\u0431\u043E\u0440\u0430\u0444\u0430\u0439\u043B\u0430 \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043A\u0440\u044B\u0442\u0438\u044F\u0444\u0430\u0439\u043B\u0430 \u0442\u0438\u043F\u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u044F\u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044F\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0432\u0438\u0434\u0434\u0430\u043D\u043D\u044B\u0445\u0430\u043D\u0430\u043B\u0438\u0437\u0430 \u043C\u0435\u0442\u043E\u0434\u043A\u043B\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0438\u043F\u0435\u0434\u0438\u043D\u0438\u0446\u044B\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430\u0432\u0440\u0435\u043C\u0435\u043D\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u0442\u0430\u0431\u043B\u0438\u0446\u044B\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0447\u0438\u0441\u043B\u043E\u0432\u044B\u0445\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u0438\u0441\u043A\u0430\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0439 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u0434\u0435\u0440\u0435\u0432\u043E\u0440\u0435\u0448\u0435\u043D\u0438\u0439 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043A\u043B\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043E\u0431\u0449\u0430\u044F\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u0438\u0441\u043A\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0439 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u0438\u0441\u043A\u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0435\u0439 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u043C\u043E\u0434\u0435\u043B\u0438\u043F\u0440\u043E\u0433\u043D\u043E\u0437\u0430 \u0442\u0438\u043F\u043C\u0435\u0440\u044B\u0440\u0430\u0441\u0441\u0442\u043E\u044F\u043D\u0438\u044F\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043E\u0442\u0441\u0435\u0447\u0435\u043D\u0438\u044F\u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0438 \u0442\u0438\u043F\u043F\u043E\u043B\u044F\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0438\u0432\u0430\u043D\u0438\u044F\u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0438\u0432\u0430\u043D\u0438\u044F\u0448\u0430\u0431\u043B\u043E\u043D\u043E\u0432\u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0435\u0439\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0443\u043F\u0440\u043E\u0449\u0435\u043D\u0438\u044F\u0434\u0435\u0440\u0435\u0432\u0430\u0440\u0435\u0448\u0435\u043D\u0438\u0439 ws\u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0432\u0430\u0440\u0438\u0430\u043D\u0442xpathxs \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0437\u0430\u043F\u0438\u0441\u0438\u0434\u0430\u0442\u044Bjson \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043F\u0440\u043E\u0441\u0442\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u0432\u0438\u0434\u0433\u0440\u0443\u043F\u043F\u044B\u043C\u043E\u0434\u0435\u043B\u0438xs \u0432\u0438\u0434\u0444\u0430\u0441\u0435\u0442\u0430xdto \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044Fdom \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0441\u0442\u044C\u043F\u0440\u043E\u0441\u0442\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0441\u0442\u044C\u0441\u043E\u0441\u0442\u0430\u0432\u043D\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0441\u0442\u044C\u0441\u0445\u0435\u043C\u044Bxs \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u043D\u044B\u0435\u043F\u043E\u0434\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438xs \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F\u0433\u0440\u0443\u043F\u043F\u043F\u043E\u0434\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438xs \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u0438\u0434\u0435\u043D\u0442\u0438\u0447\u043D\u043E\u0441\u0442\u0438xs \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0438\u043C\u0435\u043Dxs \u043C\u0435\u0442\u043E\u0434\u043D\u0430\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u043D\u0438\u044Fxs \u043C\u043E\u0434\u0435\u043B\u044C\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043Exs \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0442\u0438\u043F\u0430xml \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u043F\u043E\u0434\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438xs \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043F\u0440\u043E\u0431\u0435\u043B\u044C\u043D\u044B\u0445\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432xs \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043Exs \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u043E\u0442\u0431\u043E\u0440\u0430\u0443\u0437\u043B\u043E\u0432dom \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0441\u0442\u0440\u043E\u043Ajson \u043F\u043E\u0437\u0438\u0446\u0438\u044F\u0432\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435dom \u043F\u0440\u043E\u0431\u0435\u043B\u044C\u043D\u044B\u0435\u0441\u0438\u043C\u0432\u043E\u043B\u044Bxml \u0442\u0438\u043F\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xml \u0442\u0438\u043F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fjson \u0442\u0438\u043F\u043A\u0430\u043D\u043E\u043D\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043Exml \u0442\u0438\u043F\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044Bxs \u0442\u0438\u043F\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438xml \u0442\u0438\u043F\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430domxpath \u0442\u0438\u043F\u0443\u0437\u043B\u0430dom \u0442\u0438\u043F\u0443\u0437\u043B\u0430xml \u0444\u043E\u0440\u043C\u0430xml \u0444\u043E\u0440\u043C\u0430\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044Fxs \u0444\u043E\u0440\u043C\u0430\u0442\u0434\u0430\u0442\u044Bjson \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432json \u0432\u0438\u0434\u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0445\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0438\u0442\u043E\u0433\u043E\u0432\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u0435\u0439\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u043E\u0432\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0440\u0435\u0441\u0443\u0440\u0441\u043E\u0432\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0431\u0443\u0445\u0433\u0430\u043B\u0442\u0435\u0440\u0441\u043A\u043E\u0433\u043E\u043E\u0441\u0442\u0430\u0442\u043A\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0432\u044B\u0432\u043E\u0434\u0430\u0442\u0435\u043A\u0441\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0433\u0440\u0443\u043F\u043F\u044B\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u043E\u0442\u0431\u043E\u0440\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u043F\u043E\u043B\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043C\u0430\u043A\u0435\u0442\u0430\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043C\u0430\u043A\u0435\u0442\u0430\u043E\u0431\u043B\u0430\u0441\u0442\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043E\u0441\u0442\u0430\u0442\u043A\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0442\u0435\u043A\u0441\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0441\u0432\u044F\u0437\u0438\u043D\u0430\u0431\u043E\u0440\u043E\u0432\u0434\u0430\u043D\u043D\u044B\u0445\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043B\u0435\u0433\u0435\u043D\u0434\u044B\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u043E\u0442\u0431\u043E\u0440\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043F\u043E\u0441\u043E\u0431\u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0435\u0436\u0438\u043C\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0430\u0432\u0442\u043E\u043F\u043E\u0437\u0438\u0446\u0438\u044F\u0440\u0435\u0441\u0443\u0440\u0441\u043E\u0432\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0440\u0435\u0441\u0443\u0440\u0441\u043E\u0432\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0444\u0438\u043A\u0441\u0430\u0446\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0443\u0441\u043B\u043E\u0432\u043D\u043E\u0433\u043E\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u0442\u0435\u043A\u0441\u0442\u0430\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0441\u043F\u043E\u0441\u043E\u0431\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0441\u043F\u043E\u0441\u043E\u0431\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u043D\u0435ascii\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0442\u0435\u043A\u0441\u0442\u0430\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u0440\u0430\u0437\u0431\u043E\u0440\u0430\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0438\u0437\u0430\u043F\u0438\u0441\u0438\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0438\u0437\u0430\u043F\u0438\u0441\u0438\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0432\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0440\u0435\u0436\u0438\u043C\u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0432\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0440\u0435\u0436\u0438\u043C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0430\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0442\u0438\u043F\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0432\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430\u0438\u043C\u0435\u043D\u0444\u0430\u0439\u043B\u043E\u0432\u0432zip\u0444\u0430\u0439\u043B\u0435 \u043C\u0435\u0442\u043E\u0434\u0441\u0436\u0430\u0442\u0438\u044Fzip \u043C\u0435\u0442\u043E\u0434\u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u044Fzip \u0440\u0435\u0436\u0438\u043C\u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F\u043F\u0443\u0442\u0435\u0439\u0444\u0430\u0439\u043B\u043E\u0432zip \u0440\u0435\u0436\u0438\u043C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438\u043F\u043E\u0434\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u043E\u0432zip \u0440\u0435\u0436\u0438\u043C\u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F\u043F\u0443\u0442\u0435\u0439zip \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u0441\u0436\u0430\u0442\u0438\u044Fzip \u0437\u0432\u0443\u043A\u043E\u0432\u043E\u0435\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430\u043A\u0441\u0442\u0440\u043E\u043A\u0435 \u043F\u043E\u0437\u0438\u0446\u0438\u044F\u0432\u043F\u043E\u0442\u043E\u043A\u0435 \u043F\u043E\u0440\u044F\u0434\u043E\u043A\u0431\u0430\u0439\u0442\u043E\u0432 \u0440\u0435\u0436\u0438\u043C\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0435\u0436\u0438\u043C\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u043E\u0439\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445\u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0444\u043E\u043D\u043E\u0432\u043E\u0433\u043E\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0442\u0438\u043F\u043F\u043E\u0434\u043F\u0438\u0441\u0447\u0438\u043A\u0430\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0445\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0437\u0430\u0449\u0438\u0449\u0435\u043D\u043D\u043E\u0433\u043E\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044Fftp \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u043E\u0440\u044F\u0434\u043A\u0430\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u043C\u0438\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u043E\u0439\u0442\u043E\u0447\u043A\u0438\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 http\u043C\u0435\u0442\u043E\u0434 \u0430\u0432\u0442\u043E\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0430\u0432\u0442\u043E\u043F\u0440\u0435\u0444\u0438\u043A\u0441\u043D\u043E\u043C\u0435\u0440\u0430\u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E\u044F\u0437\u044B\u043A\u0430 \u0432\u0438\u0434\u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0432\u0438\u0434\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u0442\u0430\u0431\u043B\u0438\u0446\u044B\u0432\u043D\u0435\u0448\u043D\u0435\u0433\u043E\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0438\u0441\u044C\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0439\u043F\u0440\u0438\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435\u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0435\u0439 \u0438\u043D\u0434\u0435\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0431\u0430\u0437\u044B\u043F\u043B\u0430\u043D\u0430\u0432\u0438\u0434\u043E\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E\u0432\u044B\u0431\u043E\u0440\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043F\u043E\u0434\u0447\u0438\u043D\u0435\u043D\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u0438\u0441\u043A\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0430\u0437\u0434\u0435\u043B\u044F\u0435\u043C\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0442\u0438\u0432\u043D\u043E\u0435\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0432\u0438\u0434\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0432\u0438\u0434\u0430\u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A\u0438 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u043B\u0430\u043D\u0430\u043E\u0431\u043C\u0435\u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u0447\u0435\u0442\u0430 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0433\u0440\u0430\u043D\u0438\u0446\u044B\u043F\u0440\u0438\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u043D\u043E\u043C\u0435\u0440\u0430\u0431\u0438\u0437\u043D\u0435\u0441\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u043D\u043E\u043C\u0435\u0440\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0441\u0432\u0435\u0434\u0435\u043D\u0438\u0439 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043C\u044B\u0445\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439\u043F\u043E\u0438\u0441\u043A\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435\u043F\u043E\u0441\u0442\u0440\u043E\u043A\u0435 \u043F\u0440\u0438\u043D\u0430\u0434\u043B\u0435\u0436\u043D\u043E\u0441\u0442\u044C\u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0439\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0435\u0436\u0438\u043C\u0430\u0432\u0442\u043E\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u0438\u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u0440\u0435\u0436\u0438\u043C\u0437\u0430\u043F\u0438\u0441\u0438\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0440\u0435\u0436\u0438\u043C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u0440\u0435\u0436\u0438\u043C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u0445\u0432\u044B\u0437\u043E\u0432\u043E\u0432\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0439\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u044B\u0438\u0432\u043D\u0435\u0448\u043D\u0438\u0445\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442 \u0440\u0435\u0436\u0438\u043C\u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0433\u043E\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u0435\u0430\u043D\u0441\u043E\u0432 \u0440\u0435\u0436\u0438\u043C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445\u0432\u044B\u0431\u043E\u0440\u0430\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435\u043F\u043E\u0441\u0442\u0440\u043E\u043A\u0435 \u0440\u0435\u0436\u0438\u043C\u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u0441\u0442\u0438 \u0440\u0435\u0436\u0438\u043C\u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u0441\u0442\u0438\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0440\u0435\u0436\u0438\u043C\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u043E\u0439\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0441\u0435\u0440\u0438\u0438\u043A\u043E\u0434\u043E\u0432\u043F\u043B\u0430\u043D\u0430\u0432\u0438\u0434\u043E\u0432\u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A \u0441\u0435\u0440\u0438\u0438\u043A\u043E\u0434\u043E\u0432\u043F\u043B\u0430\u043D\u0430\u0441\u0447\u0435\u0442\u043E\u0432 \u0441\u0435\u0440\u0438\u0438\u043A\u043E\u0434\u043E\u0432\u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435 \u0441\u043F\u043E\u0441\u043E\u0431\u0432\u044B\u0431\u043E\u0440\u0430 \u0441\u043F\u043E\u0441\u043E\u0431\u043F\u043E\u0438\u0441\u043A\u0430\u0441\u0442\u0440\u043E\u043A\u0438\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435\u043F\u043E\u0441\u0442\u0440\u043E\u043A\u0435 \u0441\u043F\u043E\u0441\u043E\u0431\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0442\u0438\u043F\u0434\u0430\u043D\u043D\u044B\u0445\u0442\u0430\u0431\u043B\u0438\u0446\u044B\u0432\u043D\u0435\u0448\u043D\u0435\u0433\u043E\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043A\u043E\u0434\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0438\u0434\u043E\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0442\u0438\u043F\u043A\u043E\u0434\u0430\u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430 \u0442\u0438\u043F\u043C\u0430\u043A\u0435\u0442\u0430 \u0442\u0438\u043F\u043D\u043E\u043C\u0435\u0440\u0430\u0431\u0438\u0437\u043D\u0435\u0441\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 \u0442\u0438\u043F\u043D\u043E\u043C\u0435\u0440\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043D\u043E\u043C\u0435\u0440\u0430\u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u0438\u043F\u0444\u043E\u0440\u043C\u044B \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0439 \u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C\u043F\u0440\u043E\u0431\u043B\u0435\u043C\u044B\u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0444\u043E\u0440\u043C\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0433\u043E\u0448\u0440\u0438\u0444\u0442\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0439\u0434\u0430\u0442\u044B\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u0438\u0434\u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0432\u0438\u0434\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438 \u0432\u0438\u0434\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u0438\u0441\u043A\u0430 \u0432\u0438\u0434\u0440\u0430\u043C\u043A\u0438 \u0432\u0438\u0434\u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u0446\u0432\u0435\u0442\u0430 \u0432\u0438\u0434\u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u0448\u0440\u0438\u0444\u0442\u0430 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u0430\u044F\u0434\u043B\u0438\u043D\u0430 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0439\u0437\u043D\u0430\u043A \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435byteordermark \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u0438\u0441\u043A\u0430 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0439\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0430 \u043A\u043E\u0434\u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0430\u0434\u0438\u0430\u043B\u043E\u0433\u0430 \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430xbase \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430\u0442\u0435\u043A\u0441\u0442\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u043E\u0438\u0441\u043A\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0438\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043F\u0430\u043D\u0435\u043B\u0438\u0440\u0430\u0437\u0434\u0435\u043B\u043E\u0432 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0434\u0438\u0430\u043B\u043E\u0433\u0430\u0432\u043E\u043F\u0440\u043E\u0441 \u0440\u0435\u0436\u0438\u043C\u0437\u0430\u043F\u0443\u0441\u043A\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043E\u043A\u0440\u0443\u0433\u043B\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043A\u0440\u044B\u0442\u0438\u044F\u0444\u043E\u0440\u043C\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u0438\u0441\u043A\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u044C\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0432\u043D\u0435\u0448\u043D\u0435\u0433\u043E\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043F\u043E\u0441\u043E\u0431\u0432\u044B\u0431\u043E\u0440\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0430windows \u0441\u043F\u043E\u0441\u043E\u0431\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u0442\u0440\u043E\u043A\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0432\u043D\u0435\u0448\u043D\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B \u0442\u0438\u043F\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u044B \u0442\u0438\u043F\u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F\u043A\u043B\u0430\u0432\u0438\u0448\u0438enter \u0442\u0438\u043F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438\u043E\u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0438\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445 \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u0438\u0437\u043E\u043B\u044F\u0446\u0438\u0438\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0439 \u0445\u0435\u0448\u0444\u0443\u043D\u043A\u0446\u0438\u044F \u0447\u0430\u0441\u0442\u0438\u0434\u0430\u0442\u044B",type:"com\u043E\u0431\u044A\u0435\u043A\u0442 ftp\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 http\u0437\u0430\u043F\u0440\u043E\u0441 http\u0441\u0435\u0440\u0432\u0438\u0441\u043E\u0442\u0432\u0435\u0442 http\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 ws\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F ws\u043F\u0440\u043E\u043A\u0441\u0438 xbase \u0430\u043D\u0430\u043B\u0438\u0437\u0434\u0430\u043D\u043D\u044B\u0445 \u0430\u043D\u043D\u043E\u0442\u0430\u0446\u0438\u044Fxs \u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0431\u0443\u0444\u0435\u0440\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435xs \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0433\u0435\u043D\u0435\u0440\u0430\u0442\u043E\u0440\u0441\u043B\u0443\u0447\u0430\u0439\u043D\u044B\u0445\u0447\u0438\u0441\u0435\u043B \u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u0430\u044F\u0441\u0445\u0435\u043C\u0430 \u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u0438\u0435\u043A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442\u044B \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u0430\u044F\u0441\u0445\u0435\u043C\u0430 \u0433\u0440\u0443\u043F\u043F\u0430\u043C\u043E\u0434\u0435\u043B\u0438xs \u0434\u0430\u043D\u043D\u044B\u0435\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0435\u0434\u0430\u043D\u043D\u044B\u0435 \u0434\u0435\u043D\u0434\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430\u0433\u0430\u043D\u0442\u0430 \u0434\u0438\u0430\u043B\u043E\u0433\u0432\u044B\u0431\u043E\u0440\u0430\u0444\u0430\u0439\u043B\u0430 \u0434\u0438\u0430\u043B\u043E\u0433\u0432\u044B\u0431\u043E\u0440\u0430\u0446\u0432\u0435\u0442\u0430 \u0434\u0438\u0430\u043B\u043E\u0433\u0432\u044B\u0431\u043E\u0440\u0430\u0448\u0440\u0438\u0444\u0442\u0430 \u0434\u0438\u0430\u043B\u043E\u0433\u0440\u0430\u0441\u043F\u0438\u0441\u0430\u043D\u0438\u044F\u0440\u0435\u0433\u043B\u0430\u043C\u0435\u043D\u0442\u043D\u043E\u0433\u043E\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0434\u0438\u0430\u043B\u043E\u0433\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442dom \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442html \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044Fxs \u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u043E\u0435\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0438\u0441\u044Cdom \u0437\u0430\u043F\u0438\u0441\u044Cfastinfoset \u0437\u0430\u043F\u0438\u0441\u044Chtml \u0437\u0430\u043F\u0438\u0441\u044Cjson \u0437\u0430\u043F\u0438\u0441\u044Cxml \u0437\u0430\u043F\u0438\u0441\u044Czip\u0444\u0430\u0439\u043B\u0430 \u0437\u0430\u043F\u0438\u0441\u044C\u0434\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0438\u0441\u044C\u0442\u0435\u043A\u0441\u0442\u0430 \u0437\u0430\u043F\u0438\u0441\u044C\u0443\u0437\u043B\u043E\u0432dom \u0437\u0430\u043F\u0440\u043E\u0441 \u0437\u0430\u0449\u0438\u0449\u0435\u043D\u043D\u043E\u0435\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435openssl \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u0435\u0439\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430 \u0438\u043C\u043F\u043E\u0440\u0442xs \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u0430 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0435\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u044B\u0439\u043F\u0440\u043E\u0444\u0438\u043B\u044C \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u0440\u043E\u043A\u0441\u0438 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F\u0434\u043B\u044F\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044Fxs \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0442\u0435\u0440\u0430\u0442\u043E\u0440\u0443\u0437\u043B\u043E\u0432dom \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430 \u043A\u0432\u0430\u043B\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B\u0434\u0430\u0442\u044B \u043A\u0432\u0430\u043B\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u0432\u0430\u043B\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B\u0441\u0442\u0440\u043E\u043A\u0438 \u043A\u0432\u0430\u043B\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B\u0447\u0438\u0441\u043B\u0430 \u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u0449\u0438\u043A\u043C\u0430\u043A\u0435\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u0449\u0438\u043A\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u043C\u0430\u043A\u0435\u0442\u0430\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u0444\u043E\u0440\u043C\u0430\u0442\u043D\u043E\u0439\u0441\u0442\u0440\u043E\u043A\u0438 \u043B\u0438\u043D\u0438\u044F \u043C\u0430\u043A\u0435\u0442\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043C\u0430\u043A\u0435\u0442\u043E\u0431\u043B\u0430\u0441\u0442\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043C\u0430\u043A\u0435\u0442\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043C\u0430\u0441\u043A\u0430xs \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u043D\u0430\u0431\u043E\u0440\u0441\u0445\u0435\u043Cxml \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u0441\u0435\u0440\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438json \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043A\u0430\u0440\u0442\u0438\u043D\u043E\u043A \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u0431\u0445\u043E\u0434\u0434\u0435\u0440\u0435\u0432\u0430dom \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435\u043D\u043E\u0442\u0430\u0446\u0438\u0438xs \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430xs \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0434\u043E\u0441\u0442\u0443\u043F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u043E\u0442\u043A\u0430\u0437\u0432\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043C\u043E\u0433\u043E\u0444\u0430\u0439\u043B\u0430 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u0442\u0438\u043F\u043E\u0432 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u044B\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043E\u0432xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u044B\u043C\u043E\u0434\u0435\u043B\u0438xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u0438\u0434\u0435\u043D\u0442\u0438\u0447\u043D\u043E\u0441\u0442\u0438xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u043E\u0441\u0442\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0441\u043E\u0441\u0442\u0430\u0432\u043D\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0442\u0438\u043F\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430dom \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044Fxpathxs \u043E\u0442\u0431\u043E\u0440\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u0430\u043A\u0435\u0442\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u044B\u0445\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0432\u044B\u0431\u043E\u0440\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0437\u0430\u043F\u0438\u0441\u0438json \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0437\u0430\u043F\u0438\u0441\u0438xml \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0447\u0442\u0435\u043D\u0438\u044Fxml \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435xs \u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0449\u0438\u043A \u043F\u043E\u043B\u0435\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0435\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044Cdom \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044C\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044C\u043E\u0442\u0447\u0435\u0442\u0430 \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044C\u043E\u0442\u0447\u0435\u0442\u0430\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044C\u0441\u0445\u0435\u043Cxml \u043F\u043E\u0442\u043E\u043A \u043F\u043E\u0442\u043E\u043A\u0432\u043F\u0430\u043C\u044F\u0442\u0438 \u043F\u043E\u0447\u0442\u0430 \u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0435\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0435xsl \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043A\u043A\u0430\u043D\u043E\u043D\u0438\u0447\u0435\u0441\u043A\u043E\u043C\u0443xml \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u0440\u0432\u044B\u0432\u043E\u0434\u0430\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445\u0432\u043A\u043E\u043B\u043B\u0435\u043A\u0446\u0438\u044E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u0440\u0432\u044B\u0432\u043E\u0434\u0430\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445\u0432\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u044B\u0439\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u0440\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0437\u044B\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0438\u043C\u0435\u043Ddom \u0440\u0430\u043C\u043A\u0430 \u0440\u0430\u0441\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u0440\u0435\u0433\u043B\u0430\u043C\u0435\u043D\u0442\u043D\u043E\u0433\u043E\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u043E\u0435\u0438\u043C\u044Fxml \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0447\u0442\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0432\u043E\u0434\u043D\u0430\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430 \u0441\u0432\u044F\u0437\u044C\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u0432\u044B\u0431\u043E\u0440\u0430 \u0441\u0432\u044F\u0437\u044C\u043F\u043E\u0442\u0438\u043F\u0443 \u0441\u0432\u044F\u0437\u044C\u043F\u043E\u0442\u0438\u043F\u0443\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0435\u0440\u0438\u0430\u043B\u0438\u0437\u0430\u0442\u043E\u0440xdto \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043A\u043B\u0438\u0435\u043D\u0442\u0430windows \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u0444\u0430\u0439\u043B \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u044B\u0443\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u044F\u044E\u0449\u0438\u0445\u0446\u0435\u043D\u0442\u0440\u043E\u0432windows \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u044B\u0443\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u044F\u044E\u0449\u0438\u0445\u0446\u0435\u043D\u0442\u0440\u043E\u0432\u0444\u0430\u0439\u043B \u0441\u0436\u0430\u0442\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0430\u044F\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u0435\u043A\u043B\u0430\u0432\u0438\u0448 \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u0430\u044F\u0434\u0430\u0442\u0430\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0439\u043F\u0435\u0440\u0438\u043E\u0434 \u0441\u0445\u0435\u043C\u0430xml \u0441\u0445\u0435\u043C\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0430\u0431\u043B\u0438\u0447\u043D\u044B\u0439\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043C\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u0438\u043F\u0434\u0430\u043D\u043D\u044B\u0445xml \u0443\u043D\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0439\u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0431\u0440\u0438\u043A\u0430xdto \u0444\u0430\u0439\u043B \u0444\u0430\u0439\u043B\u043E\u0432\u044B\u0439\u043F\u043E\u0442\u043E\u043A \u0444\u0430\u0441\u0435\u0442\u0434\u043B\u0438\u043D\u044Bxs \u0444\u0430\u0441\u0435\u0442\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430\u0440\u0430\u0437\u0440\u044F\u0434\u043E\u0432\u0434\u0440\u043E\u0431\u043D\u043E\u0439\u0447\u0430\u0441\u0442\u0438xs \u0444\u0430\u0441\u0435\u0442\u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0433\u043E\u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0433\u043E\u0438\u0441\u043A\u043B\u044E\u0447\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0439\u0434\u043B\u0438\u043D\u044Bxs \u0444\u0430\u0441\u0435\u0442\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0433\u043E\u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0433\u043E\u0438\u0441\u043A\u043B\u044E\u0447\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0439\u0434\u043B\u0438\u043D\u044Bxs \u0444\u0430\u0441\u0435\u0442\u043E\u0431\u0440\u0430\u0437\u0446\u0430xs \u0444\u0430\u0441\u0435\u0442\u043E\u0431\u0449\u0435\u0433\u043E\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430\u0440\u0430\u0437\u0440\u044F\u0434\u043E\u0432xs \u0444\u0430\u0441\u0435\u0442\u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043F\u0440\u043E\u0431\u0435\u043B\u044C\u043D\u044B\u0445\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432xs \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0437\u043B\u043E\u0432dom \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F\u0441\u0442\u0440\u043E\u043A\u0430 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442xs \u0445\u0435\u0448\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0446\u0432\u0435\u0442 \u0447\u0442\u0435\u043D\u0438\u0435fastinfoset \u0447\u0442\u0435\u043D\u0438\u0435html \u0447\u0442\u0435\u043D\u0438\u0435json \u0447\u0442\u0435\u043D\u0438\u0435xml \u0447\u0442\u0435\u043D\u0438\u0435zip\u0444\u0430\u0439\u043B\u0430 \u0447\u0442\u0435\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445 \u0447\u0442\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430 \u0447\u0442\u0435\u043D\u0438\u0435\u0443\u0437\u043B\u043E\u0432dom \u0448\u0440\u0438\u0444\u0442 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 comsafearray \u0434\u0435\u0440\u0435\u0432\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043C\u0430\u0441\u0441\u0438\u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u043F\u0438\u0441\u043E\u043A\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430 \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0435\u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u043C\u0430\u0441\u0441\u0438\u0432 ",literal:a},contains:[{className:"meta",begin:"#|&",end:"$",keywords:{$pattern:t,keyword:n+"\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0438\u0437\u0444\u0430\u0439\u043B\u0430 \u0432\u0435\u0431\u043A\u043B\u0438\u0435\u043D\u0442 \u0432\u043C\u0435\u0441\u0442\u043E \u0432\u043D\u0435\u0448\u043D\u0435\u0435\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u043A\u043B\u0438\u0435\u043D\u0442 \u043A\u043E\u043D\u0435\u0446\u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u043B\u0438\u0435\u043D\u0442 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0441\u0435\u0440\u0432\u0435\u0440 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435\u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435\u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430 \u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430 \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0441\u043B\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u0442\u043E\u043B\u0441\u0442\u044B\u0439\u043A\u043B\u0438\u0435\u043D\u0442\u043E\u0431\u044B\u0447\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u043B\u0441\u0442\u044B\u0439\u043A\u043B\u0438\u0435\u043D\u0442\u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u043C\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u043D\u043A\u0438\u0439\u043A\u043B\u0438\u0435\u043D\u0442 "},contains:[o]},{className:"function",variants:[{begin:"\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u0430|\u0444\u0443\u043D\u043A\u0446\u0438\u044F",end:"\\)",keywords:"\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u044F"},{begin:"\u043A\u043E\u043D\u0435\u0446\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u044B|\u043A\u043E\u043D\u0435\u0446\u0444\u0443\u043D\u043A\u0446\u0438\u0438",keywords:"\u043A\u043E\u043D\u0435\u0446\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u044B \u043A\u043E\u043D\u0435\u0446\u0444\u0443\u043D\u043A\u0446\u0438\u0438"}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params",begin:t,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{$pattern:t,keyword:"\u0437\u043D\u0430\u0447",literal:a},contains:[i,r,s]},o]},e.inherit(e.TITLE_MODE,{begin:t})]},o,{className:"symbol",begin:"~",end:";|:",excludeEnd:!0},i,r,s]}}),O)),r4.registerLanguage("abnf",(D||(D=1,I=function(e){let t=e.regex,n=e.COMMENT(/;/,/$/);return{name:"Augmented Backus-Naur Form",illegal:/[!@#$^&',?+~`|:]/,keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],contains:[{scope:"operator",match:/=\/?/},{scope:"attribute",match:t.concat(/^[a-zA-Z][a-zA-Z0-9-]*/,/(?=\s*=)/)},n,{scope:"symbol",match:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/},{scope:"symbol",match:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/},{scope:"symbol",match:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/},{scope:"symbol",match:/%[si](?=".*")/},e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}),I)),r4.registerLanguage("accesslog",(x||(x=1,w=function(e){let t=e.regex,n=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"];return{name:"Apache Access Log",contains:[{className:"number",begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5},{className:"number",begin:/\b\d+\b/,relevance:0},{className:"string",begin:t.concat(/"/,t.either(...n)),end:/"/,keywords:n,illegal:/\n/,relevance:5,contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]},{className:"string",begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string",begin:/\[/,end:/\]/,illegal:/\n/,relevance:0},{className:"string",begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3},{className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}),w)),r4.registerLanguage("actionscript",(M||(M=1,L=function(e){let t=e.regex,n=/[a-zA-Z_$][a-zA-Z0-9_$]*/,a=t.concat(n,t.concat("(\\.",n,")*"));return{name:"ActionScript",aliases:["as"],keywords:{keyword:["as","break","case","catch","class","const","continue","default","delete","do","dynamic","each","else","extends","final","finally","for","function","get","if","implements","import","in","include","instanceof","interface","internal","is","namespace","native","new","override","package","private","protected","public","return","set","static","super","switch","this","throw","try","typeof","use","var","void","while","with"],literal:["true","false","null","undefined"]},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{match:[/\bpackage/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{match:[/\b(?:class|interface|extends|implements)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{className:"meta",beginKeywords:"import include",end:/;/,keywords:{keyword:"import include"}},{beginKeywords:"function",end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[e.inherit(e.TITLE_MODE,{className:"title.function"}),{className:"params",begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"rest_arg",begin:/[.]{3}/,end:n,relevance:10}]},{begin:t.concat(/:\s*/,/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/)}]},e.METHOD_GUARD],illegal:/#/}}),L)),r4.registerLanguage("ada",(k||(k=1,P=function(e){let t="\\d(_|\\d)*",n="[eE][-+]?"+t,a="[A-Za-z](_?[A-Za-z0-9.])*",i="[]\\{\\}%#'\"",r=e.COMMENT("--","$"),s={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:i,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:a,endsParent:!0,relevance:0}]};return{name:"Ada",case_insensitive:!0,keywords:{keyword:["abort","else","new","return","abs","elsif","not","reverse","abstract","end","accept","entry","select","access","exception","of","separate","aliased","exit","or","some","all","others","subtype","and","for","out","synchronized","array","function","overriding","at","tagged","generic","package","task","begin","goto","pragma","terminate","body","private","then","if","procedure","type","case","in","protected","constant","interface","is","raise","use","declare","range","delay","limited","record","when","delta","loop","rem","while","digits","renames","with","do","mod","requeue","xor"],literal:["True","False"]},contains:[r,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:"\\b("+t+"#\\w+(\\.\\w+)?#("+n+")?|"+t+"(\\."+t+")?("+n+")?)",relevance:0},{className:"symbol",begin:"'"+a},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:i},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[r,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:i},s,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:i}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:i},s]}}),P)),r4.registerLanguage("angelscript",(U||(U=1,F=function(e){let t={className:"built_in",begin:"\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)"},n={className:"symbol",begin:"[a-zA-Z0-9_]+@"},a={className:"keyword",begin:"<",end:">",contains:[t,n]};return t.contains=[a],n.contains=[a],{name:"AngelScript",aliases:["asc"],keywords:["for","in|0","break","continue","while","do|0","return","if","else","case","switch","namespace","is","cast","or","and","xor","not","get|0","in","inout|10","out","override","set|0","private","public","const","default|0","final","shared","external","mixin|10","enum","typedef","funcdef","this","super","import","from","interface","abstract|0","try","catch","protected","explicit","property"],illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"""',end:'"""'},{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:"^\\s*\\[",end:"\\]"},{beginKeywords:"interface namespace",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]}]}]},t,n,{className:"literal",begin:"\\b(null|true|false)"},{className:"number",relevance:0,begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"}]}}),F)),r4.registerLanguage("apache",(G||(G=1,B=function(e){let t={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[t,{className:"number",begin:/:\d{1,5}/},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"]},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]},t,{className:"number",begin:/\b\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}),B)),r4.registerLanguage("applescript",(H||(H=1,Y=function(e){let t=e.regex,n=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),a={className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,n]},i=e.COMMENT(/--/,/$/),r=[i,e.COMMENT(/\(\*/,/\*\)/,{contains:["self",i]}),e.HASH_COMMENT_MODE];return{name:"AppleScript",aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",literal:"AppleScript false linefeed return pi quote result space tab true",built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name|0 paragraph paragraphs rest reverse running time version weekday word words year"},contains:[n,e.C_NUMBER_MODE,{className:"built_in",begin:t.concat(/\b/,t.either(/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/),/\b/)},{className:"built_in",begin:/^\s*return\b/},{className:"literal",begin:/\b(text item delimiters|current application|missing value)\b/},{className:"keyword",begin:t.concat(/\b/,t.either(/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/),/\b/)},{beginKeywords:"on",illegal:/[${=;\n]/,contains:[e.UNDERSCORE_TITLE_MODE,a]},...r],illegal:/\/\/|->|=>|\[\[/}}),Y)),r4.registerLanguage("arcade",(z||(z=1,V=function(e){let t="[A-Za-z_][0-9A-Za-z_]*",n={keyword:["if","for","while","var","new","function","do","return","void","else","break"],literal:["BackSlash","DoubleQuote","false","ForwardSlash","Infinity","NaN","NewLine","null","PI","SingleQuote","Tab","TextFormatting","true","undefined"],built_in:["Abs","Acos","All","Angle","Any","Area","AreaGeodetic","Array","Asin","Atan","Atan2","Attachments","Average","Back","Bearing","Boolean","Buffer","BufferGeodetic","Ceil","Centroid","Clip","Concatenate","Console","Constrain","Contains","ConvertDirection","Cos","Count","Crosses","Cut","Date","DateAdd","DateDiff","Day","Decode","DefaultValue","Densify","DensifyGeodetic","Dictionary","Difference","Disjoint","Distance","DistanceGeodetic","Distinct","Domain","DomainCode","DomainName","EnvelopeIntersects","Equals","Erase","Exp","Expects","Extent","Feature","FeatureSet","FeatureSetByAssociation","FeatureSetById","FeatureSetByName","FeatureSetByPortalItem","FeatureSetByRelationshipName","Filter","Find","First","Floor","FromCharCode","FromCodePoint","FromJSON","GdbVersion","Generalize","Geometry","GetFeatureSet","GetUser","GroupBy","Guid","Hash","HasKey","Hour","IIf","Includes","IndexOf","Insert","Intersection","Intersects","IsEmpty","IsNan","ISOMonth","ISOWeek","ISOWeekday","ISOYear","IsSelfIntersecting","IsSimple","Left|0","Length","Length3D","LengthGeodetic","Log","Lower","Map","Max","Mean","Mid","Millisecond","Min","Minute","Month","MultiPartToSinglePart","Multipoint","NextSequenceValue","None","Now","Number","Offset|0","OrderBy","Overlaps","Point","Polygon","Polyline","Pop","Portal","Pow","Proper","Push","Random","Reduce","Relate","Replace","Resize","Reverse","Right|0","RingIsClockwise","Rotate","Round","Schema","Second","SetGeometry","Simplify","Sin","Slice","Sort","Splice","Split","Sqrt","Stdev","SubtypeCode","SubtypeName","Subtypes","Sum","SymmetricDifference","Tan","Text","Timestamp","ToCharCode","ToCodePoint","Today","ToHex","ToLocal","Top|0","Touches","ToUTC","TrackAccelerationAt","TrackAccelerationWindow","TrackCurrentAcceleration","TrackCurrentDistance","TrackCurrentSpeed","TrackCurrentTime","TrackDistanceAt","TrackDistanceWindow","TrackDuration","TrackFieldWindow","TrackGeometryWindow","TrackIndex","TrackSpeedAt","TrackSpeedWindow","TrackStartTime","TrackWindow","Trim","TypeOf","Union","Upper","UrlEncode","Variance","Week","Weekday","When","Within","Year"]},a={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},i={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},r={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,i]};i.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,a,e.REGEXP_MODE];let s=i.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{name:"ArcGIS Arcade",case_insensitive:!0,keywords:n,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"symbol",begin:"\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+"},a,{begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(return)\\b)\\s*",keywords:"return",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:s}]}]}],relevance:0},{beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{className:"title.function",begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:s}],illegal:/\[|%/},{begin:/\$[(.]/}],illegal:/#(?!!)/}}),V)),r4.registerLanguage("arduino",($||($=1,q=function(e){let t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},n=function(e){let t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+a+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",s={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},d={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},_=t.optional(i)+e.IDENT_RE+"\\s*\\(",u={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},m={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},p=[m,c,s,n,e.C_BLOCK_COMMENT_MODE,l,o],g={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:p.concat([{begin:/\(/,end:/\)/,keywords:u,contains:p.concat(["self"]),relevance:0}]),relevance:0},E={className:"function",begin:"("+r+"[\\*&\\s]+)+"+_,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{begin:_,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[o,l]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,o,l,s]}]},s,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(g,E,m,p,[c,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)",end:">",keywords:u,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:u},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}(e),a=n.keywords;return a.type=[...a.type,...t.type],a.literal=[...a.literal,...t.literal],a.built_in=[...a.built_in,...t.built_in],a._hints=t._hints,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}),q)),r4.registerLanguage("armasm",(Q||(Q=1,W=function(e){let t={variants:[e.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),e.COMMENT("[;@]","$",{relevance:0}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+e.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 w16 w17 w18 w19 w20 w21 w22 w23 w24 w25 w26 w27 w28 w29 w30 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},t,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}),W)),r4.registerLanguage("xml",(j||(j=1,K=function(e){let t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:/[\p{L}0-9._:-]+/u,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{begin:/'/,end:/'/,contains:[a]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[i,r,o,s]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:l}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}),K)),r4.registerLanguage("asciidoc",(Z||(Z=1,X=function(e){let t=e.regex,n=[{className:"strong",begin:/\*{2}([^\n]+?)\*{2}/},{className:"strong",begin:t.concat(/\*\*/,/((\*(?!\*)|\\[^\n]|[^*\n\\])+\n)+/,/(\*(?!\*)|\\[^\n]|[^*\n\\])*/,/\*\*/),relevance:0},{className:"strong",begin:/\B\*(\S|\S[^\n]*?\S)\*(?!\w)/},{className:"strong",begin:/\*[^\s]([^\n]+\n)+([^\n]+)\*/}],a=[{className:"emphasis",begin:/_{2}([^\n]+?)_{2}/},{className:"emphasis",begin:t.concat(/__/,/((_(?!_)|\\[^\n]|[^_\n\\])+\n)+/,/(_(?!_)|\\[^\n]|[^_\n\\])*/,/__/),relevance:0},{className:"emphasis",begin:/\b_(\S|\S[^\n]*?\S)_(?!\w)/},{className:"emphasis",begin:/_[^\s]([^\n]+\n)+([^\n]+)_/},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0}];return{name:"AsciiDoc",aliases:["adoc"],contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"section",relevance:10,variants:[{begin:"^(={1,6})[ ].+?([ ]\\1)?$"},{begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{className:"meta",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"meta",begin:"^\\[.+?\\]$",relevance:0},{className:"quote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{className:"bullet",begin:"^(\\*+|-+|\\.+|[^\\n]+?::)\\s+"},{className:"symbol",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{begin:/\\[*_`]/},{begin:/\\\\\*{2}[^\n]*?\*{2}/},{begin:/\\\\_{2}[^\n]*_{2}/},{begin:/\\\\`{2}[^\n]*`{2}/},{begin:/[:;}][*_`](?![*_`])/},...n,...a,{className:"string",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:/`{2}/,end:/(\n{2}|`{2})/},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},{begin:"^'{3,}[ \\t]*$",relevance:10},{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+?\\[[^[]*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}),X)),r4.registerLanguage("aspectj",(ee||(ee=1,J=function(e){let t=e.regex,n=["false","synchronized","int","abstract","float","private","char","boolean","static","null","if","const","for","true","while","long","throw","strictfp","finally","protected","import","native","final","return","void","enum","else","extends","implements","break","transient","new","catch","instanceof","byte","super","volatile","case","assert","short","package","default","double","public","try","this","switch","continue","throws","privileged","aspectOf","adviceexecution","proceed","cflowbelow","cflow","initialization","preinitialization","staticinitialization","withincode","target","within","execution","getWithinTypeName","handler","thisJoinPoint","thisJoinPointStaticPart","thisEnclosingJoinPointStaticPart","declare","parents","warning","error","soft","precedence","thisAspectInstance"],a=["get","set","args","call"];return{name:"AspectJ",keywords:n,illegal:/<\/|#/,contains:[e.COMMENT(/\/\*\*/,/\*\//,{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:/@[A-Za-z]+/}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},e.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:n.concat(a),excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:t.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:n,illegal:/["\[\]]/,contains:[{begin:t.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),keywords:n.concat(a),relevance:0},e.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.\w+)?\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:n,excludeEnd:!0,contains:[{begin:t.concat(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:n,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:/@[A-Za-z]+/}]}}),J)),r4.registerLanguage("autohotkey",(en||(en=1,et=function(e){let t={begin:"`[\\s\\S]"};return{name:"AutoHotkey",case_insensitive:!0,aliases:["ahk"],keywords:{keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",literal:"true false NOT AND OR",built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"},contains:[t,e.inherit(e.QUOTE_STRING_MODE,{contains:[t]}),e.COMMENT(";","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"variable",begin:"%[a-zA-Z0-9#_$@]+%"},{className:"built_in",begin:"^\\s*\\w+\\s*(,|%)"},{className:"title",variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{className:"meta",begin:"^\\s*#\\w+",end:"$",relevance:0},{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{begin:",\\s*,"}]}}),et)),r4.registerLanguage("autoit",(ei||(ei=1,ea=function(e){let t={variants:[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},n={begin:"\\$[A-z0-9_]+"},a={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},i={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"AutoIt",case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:"ByRef Case Const ContinueCase ContinueLoop Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",built_in:"Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive",literal:"True False And Null Not Or Default"},contains:[t,n,a,i,{className:"meta",begin:"#",end:"$",keywords:{keyword:["EndRegion","forcedef","forceref","ignorefunc","include","include-once","NoTrayIcon","OnAutoItStartRegister","pragma","Region","RequireAdmin","Tidy_Off","Tidy_On","Tidy_Parameters"]},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",keywords:{keyword:"include"},end:"$",contains:[a,{className:"string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},a,t]},{className:"symbol",begin:"@[A-z0-9_]+"},{beginKeywords:"Func",end:"$",illegal:"\\$|\\[|%",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{className:"title.function"}),{className:"params",begin:"\\(",end:"\\)",contains:[n,a,i]}]}]}}),ea)),r4.registerLanguage("avrasm",(es||(es=1,er=function(e){return{name:"AVR Assembly",case_insensitive:!0,keywords:{$pattern:"\\.?"+e.IDENT_RE,keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",meta:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set"},contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{relevance:0}),e.C_NUMBER_MODE,e.BINARY_NUMBER_MODE,{className:"number",begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"symbol",begin:"^[A-Za-z0-9_.$]+:"},{className:"meta",begin:"#",end:"$"},{className:"subst",begin:"@[0-9]+"}]}}),er)),r4.registerLanguage("awk",(el||(el=1,eo=function(e){return{name:"Awk",keywords:{keyword:"BEGIN END if else while do for in break continue delete next nextfile function func exit|10"},contains:[{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]}}),eo)),r4.registerLanguage("axapta",(ed||(ed=1,ec=function(e){let t=e.UNDERSCORE_IDENT_RE,n={keyword:["abstract","as","asc","avg","break","breakpoint","by","byref","case","catch","changecompany","class","client","client","common","const","continue","count","crosscompany","delegate","delete_from","desc","display","div","do","edit","else","eventhandler","exists","extends","final","finally","firstfast","firstonly","firstonly1","firstonly10","firstonly100","firstonly1000","flush","for","forceliterals","forcenestedloop","forceplaceholders","forceselectorder","forupdate","from","generateonly","group","hint","if","implements","in","index","insert_recordset","interface","internal","is","join","like","maxof","minof","mod","namespace","new","next","nofetch","notexists","optimisticlock","order","outer","pessimisticlock","print","private","protected","public","readonly","repeatableread","retry","return","reverse","select","server","setting","static","sum","super","switch","this","throw","try","ttsabort","ttsbegin","ttscommit","unchecked","update_recordset","using","validtimestate","void","where","while"],built_in:["anytype","boolean","byte","char","container","date","double","enum","guid","int","int64","long","real","short","str","utcdatetime","var"],literal:["default","false","null","true"]};return{name:"X++",aliases:["x++"],keywords:n,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"},{variants:[{match:[/(class|interface)\s+/,t,/\s+(extends|implements)\s+/,t]},{match:[/class\s+/,t]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:n}]}}),ec)),r4.registerLanguage("bash",(eu||(eu=1,e_=function(e){let t=e.regex,n={};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},{begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]}]});let a={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},r={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,a]};a.contains.push(r);let s={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},o=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"],literal:["true","false"],built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]},contains:[o,e.SHEBANG(),l,s,e.HASH_COMMENT_MODE,i,{match:/(\/[a-z._-]+)+/},r,{match:/\\"/},{className:"string",begin:/'/,end:/'/},{match:/\\'/},n]}}),e_)),r4.registerLanguage("basic",(ep||(ep=1,em=function(e){return{name:"BASIC",case_insensitive:!0,illegal:"^.",keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_$%!#]*",keyword:["ABS","ASC","AND","ATN","AUTO|0","BEEP","BLOAD|10","BSAVE|10","CALL","CALLS","CDBL","CHAIN","CHDIR","CHR$|10","CINT","CIRCLE","CLEAR","CLOSE","CLS","COLOR","COM","COMMON","CONT","COS","CSNG","CSRLIN","CVD","CVI","CVS","DATA","DATE$","DEFDBL","DEFINT","DEFSNG","DEFSTR","DEF|0","SEG","USR","DELETE","DIM","DRAW","EDIT","END","ENVIRON","ENVIRON$","EOF","EQV","ERASE","ERDEV","ERDEV$","ERL","ERR","ERROR","EXP","FIELD","FILES","FIX","FOR|0","FRE","GET","GOSUB|10","GOTO","HEX$","IF","THEN","ELSE|0","INKEY$","INP","INPUT","INPUT#","INPUT$","INSTR","IMP","INT","IOCTL","IOCTL$","KEY","ON","OFF","LIST","KILL","LEFT$","LEN","LET","LINE","LLIST","LOAD","LOC","LOCATE","LOF","LOG","LPRINT","USING","LSET","MERGE","MID$","MKDIR","MKD$","MKI$","MKS$","MOD","NAME","NEW","NEXT","NOISE","NOT","OCT$","ON","OR","PEN","PLAY","STRIG","OPEN","OPTION","BASE","OUT","PAINT","PALETTE","PCOPY","PEEK","PMAP","POINT","POKE","POS","PRINT","PRINT]","PSET","PRESET","PUT","RANDOMIZE","READ","REM","RENUM","RESET|0","RESTORE","RESUME","RETURN|0","RIGHT$","RMDIR","RND","RSET","RUN","SAVE","SCREEN","SGN","SHELL","SIN","SOUND","SPACE$","SPC","SQR","STEP","STICK","STOP","STR$","STRING$","SWAP","SYSTEM","TAB","TAN","TIME$","TIMER","TROFF","TRON","TO","USR","VAL","VARPTR","VARPTR$","VIEW","WAIT","WHILE","WEND","WIDTH","WINDOW","WRITE","XOR"]},contains:[e.QUOTE_STRING_MODE,e.COMMENT("REM","$",{relevance:10}),e.COMMENT("'","$",{relevance:0}),{className:"symbol",begin:"^[0-9]+ ",relevance:10},{className:"number",begin:"\\b\\d+(\\.\\d+)?([edED]\\d+)?[#!]?",relevance:0},{className:"number",begin:"(&[hH][0-9a-fA-F]{1,4})"},{className:"number",begin:"(&[oO][0-7]{1,6})"}]}}),em)),r4.registerLanguage("bnf",(eE||(eE=1,eg=function(e){return{name:"Backus\u2013Naur Form",contains:[{className:"attribute",begin:/</,end:/>/},{begin:/::=/,end:/$/,contains:[{begin:/</,end:/>/},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]}}),eg)),r4.registerLanguage("brainfuck",(eb||(eb=1,eS=function(e){let t={className:"literal",begin:/[+-]+/,relevance:0};return{name:"Brainfuck",aliases:["bf"],contains:[e.COMMENT(/[^\[\]\.,\+\-<> \r\n]/,/[\[\]\.,\+\-<> \r\n]/,{contains:[{match:/[ ]+[^\[\]\.,\+\-<> \r\n]/,relevance:0}],returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/(?=\+\+|--)/,contains:[t]},t]}}),eS)),r4.registerLanguage("c",(ef||(ef=1,eh=function(e){let t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+a+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",s={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},o={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},d={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},_=t.optional(i)+e.IDENT_RE+"\\s*\\(",u={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},m=[c,s,n,e.C_BLOCK_COMMENT_MODE,l,o],p={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u,contains:m.concat(["self"]),relevance:0}]),relevance:0},g={begin:"("+r+"[\\*&\\s]+)+"+_,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{begin:_,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,o,l,s]}]},s,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,disableAutodetect:!0,illegal:"</",contains:[].concat(p,g,m,[c,{begin:e.IDENT_RE+"::",keywords:u},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:c,strings:o,keywords:u}}}),eh)),r4.registerLanguage("cal",(ev||(ev=1,eT=function(e){let t=e.regex,n=["div","mod","in","and","or","not","xor","asserterror","begin","case","do","downto","else","end","exit","for","local","if","of","repeat","then","to","until","while","with","var"],a=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],i={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},r={className:"string",begin:/(#\d+)+/},s={match:[/procedure/,/\s+/,/[a-zA-Z_][\w@]*/,/\s*/],scope:{1:"keyword",3:"title.function"},contains:[{className:"params",begin:/\(/,end:/\)/,keywords:n,contains:[i,r,e.NUMBER_MODE]},...a]},o={match:[/OBJECT/,/\s+/,t.either("Table","Form","Report","Dataport","Codeunit","XMLport","MenuSuite","Page","Query"),/\s+/,/\d+/,/\s+(?=[^\s])/,/.*/,/$/],relevance:3,scope:{1:"keyword",3:"type",5:"number",7:"title"}};return{name:"C/AL",case_insensitive:!0,keywords:{keyword:n,literal:"false true"},illegal:/\/\*/,contains:[{match:/[\w]+(?=\=)/,scope:"attribute",relevance:0},i,r,{className:"number",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},{className:"string",begin:'"',end:'"'},e.NUMBER_MODE,o,s]}}),eT)),r4.registerLanguage("capnproto",(eR||(eR=1,eC=function(e){let t={variants:[{match:[/(struct|enum|interface)/,/\s+/,e.IDENT_RE]},{match:[/extends/,/\s*\(/,e.IDENT_RE,/\s*\)/]}],scope:{1:"keyword",3:"title.class"}};return{name:"Cap\u2019n Proto",aliases:["capnp"],keywords:{keyword:["struct","enum","interface","union","group","import","using","const","annotation","extends","in","of","on","as","with","from","fixed"],type:["Void","Bool","Int8","Int16","Int32","Int64","UInt8","UInt16","UInt32","UInt64","Float32","Float64","Text","Data","AnyPointer","AnyStruct","Capability","List"],literal:["true","false"]},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.HASH_COMMENT_MODE,{className:"meta",begin:/@0x[\w\d]{16};/,illegal:/\n/},{className:"symbol",begin:/@\d+\b/},t]}}),eC)),r4.registerLanguage("ceylon",(ey||(ey=1,eN=function(e){let t=["assembly","module","package","import","alias","class","interface","object","given","value","assign","void","function","new","of","extends","satisfies","abstracts","in","out","return","break","continue","throw","assert","dynamic","if","else","switch","case","for","while","try","catch","finally","then","let","this","outer","super","is","exists","nonempty"],n={className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:t,relevance:10},a=[{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[n]},{className:"string",begin:"'",end:"'"},{className:"number",begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?",relevance:0}];return n.contains=a,{name:"Ceylon",keywords:{keyword:t.concat(["shared","abstract","formal","default","actual","variable","late","native","deprecated","final","sealed","annotation","suppressWarnings","small"]),meta:["doc","by","license","see","throws","tagged"]},illegal:"\\$[^01]|#[^0-9a-fA-F]",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),{className:"meta",begin:'@[a-z]\\w*(?::"[^"]*")?'}].concat(a)}}),eN)),r4.registerLanguage("clean",(eA||(eA=1,eO=function(e){return{name:"Clean",aliases:["icl","dcl"],keywords:{keyword:["if","let","in","with","where","case","of","class","instance","otherwise","implementation","definition","system","module","from","import","qualified","as","special","code","inline","foreign","export","ccall","stdcall","generic","derive","infix","infixl","infixr"],built_in:"Int Real Char Bool",literal:"True False"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{begin:"->|<-[|:]?|#!?|>>=|\\{\\||\\|\\}|:==|=:|<>"}]}}),eO)),r4.registerLanguage("clojure",(eD||(eD=1,eI=function(e){let t="a-zA-Z_\\-!.?+*=<>&'",n="[#]?["+t+"]["+t+"0-9/;:$#]*",a="def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord",i={scope:"number",relevance:0,variants:[{match:/[-+]?0[xX][0-9a-fA-F]+N?/},{match:/[-+]?0[0-7]+N?/},{match:/[-+]?[1-9][0-9]?[rR][0-9a-zA-Z]+N?/},{match:/[-+]?[0-9]+\/[0-9]+N?/},{match:/[-+]?[0-9]+((\.[0-9]*([eE][+-]?[0-9]+)?M?)|([eE][+-]?[0-9]+M?|M))/},{match:/[-+]?([1-9][0-9]*|0)N?/}]},r={scope:"character",variants:[{match:/\\o[0-3]?[0-7]{1,2}/},{match:/\\u[0-9a-fA-F]{4}/},{match:/\\(newline|space|tab|formfeed|backspace|return)/},{match:/\\\S/,relevance:0}]},s={scope:"regex",begin:/#"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]},o=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),l={scope:"punctuation",match:/,/,relevance:0},c=e.COMMENT(";","$",{relevance:0}),d={className:"literal",begin:/\b(true|false|nil)\b/},_={begin:"\\[|(#::?"+n+")?\\{",end:"[\\]\\}]",relevance:0},u={className:"symbol",begin:"[:]{1,2}"+n},m={begin:"\\(",end:"\\)"},p={endsWithParent:!0,relevance:0},g=[l,m,r,s,o,c,u,_,i,d,{begin:n,relevance:0}],E={beginKeywords:a,keywords:{$pattern:n,keyword:a},end:'(\\[|#|\\d|"|:|\\{|\\)|\\(|$)',contains:[{className:"title",begin:n,relevance:0,excludeEnd:!0,endsParent:!0}].concat(g)};return m.contains=[E,{keywords:{$pattern:n,built_in:a+" cond apply if-not if-let if not not= =|0 <|0 >|0 <=|0 >=|0 ==|0 +|0 /|0 *|0 -|0 rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy first rest cons cast coll last butlast sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"},className:"name",begin:n,relevance:0,starts:p},p],p.contains=g,_.contains=g,{name:"Clojure",aliases:["clj","edn"],illegal:/\S/,contains:[l,m,r,s,o,c,u,_,i,d]}}),eI)),r4.registerLanguage("clojure-repl",ex?ew:(ex=1,ew=function(e){return{name:"Clojure REPL",contains:[{className:"meta.prompt",begin:/^([\w.-]+|\s*#_)?=>/,starts:{end:/$/,subLanguage:"clojure"}}]}})),r4.registerLanguage("cmake",(eM||(eM=1,eL=function(e){return{name:"CMake",aliases:["cmake.in"],case_insensitive:!0,keywords:{keyword:"break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined"},contains:[{className:"variable",begin:/\$\{/,end:/\}/},e.COMMENT(/#\[\[/,/]]/),e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}),eL)),r4.registerLanguage("coffeescript",function(){if(ek)return eP;ek=1;let e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],t=["true","false","null","undefined","NaN","Infinity"],n=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return eP=function(a){var i;let r={keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((i=["var","const","let","function","static"],e=>!i.includes(e))),literal:t.concat(["yes","no","on","off"]),built_in:n.concat(["npm","print"])},s="[A-Za-z$_][0-9A-Za-z$_]*",o={className:"subst",begin:/#\{/,end:/\}/,keywords:r},l=[a.BINARY_NUMBER_MODE,a.inherit(a.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[a.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[a.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[a.BACKSLASH_ESCAPE,o]},{begin:/"/,end:/"/,contains:[a.BACKSLASH_ESCAPE,o]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[o,a.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+s},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{begin:"```",end:"```"},{begin:"`",end:"`"}]}];o.contains=l;let c=a.inherit(a.TITLE_MODE,{begin:s}),d="(\\(.*\\)\\s*)?\\B[-=]>",_={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:r,contains:["self"].concat(l)}]};return{name:"CoffeeScript",aliases:["coffee","cson","iced"],keywords:r,illegal:/\/\*/,contains:[...l,a.COMMENT("###","###"),a.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+s+"\\s*=\\s*"+d,end:"[-=]>",returnBegin:!0,contains:[c,_]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:d,end:"[-=]>",returnBegin:!0,contains:[_]}]},{variants:[{match:[/class\s+/,s,/\s+extends\s+/,s]},{match:[/class\s+/,s]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:r},{begin:s+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}]}}}()),r4.registerLanguage("coq",(eU||(eU=1,eF=function(e){return{name:"Coq",keywords:{keyword:["_|0","as","at","cofix","else","end","exists","exists2","fix","for","forall","fun","if","IF","in","let","match","mod","Prop","return","Set","then","Type","using","where","with","Abort","About","Add","Admit","Admitted","All","Arguments","Assumptions","Axiom","Back","BackTo","Backtrack","Bind","Blacklist","Canonical","Cd","Check","Class","Classes","Close","Coercion","Coercions","CoFixpoint","CoInductive","Collection","Combined","Compute","Conjecture","Conjectures","Constant","constr","Constraint","Constructors","Context","Corollary","CreateHintDb","Cut","Declare","Defined","Definition","Delimit","Dependencies","Dependent","Derive","Drop","eauto","End","Equality","Eval","Example","Existential","Existentials","Existing","Export","exporting","Extern","Extract","Extraction","Fact","Field","Fields","File","Fixpoint","Focus","for","From","Function","Functional","Generalizable","Global","Goal","Grab","Grammar","Graph","Guarded","Heap","Hint","HintDb","Hints","Hypotheses","Hypothesis","ident","Identity","If","Immediate","Implicit","Import","Include","Inductive","Infix","Info","Initial","Inline","Inspect","Instance","Instances","Intro","Intros","Inversion","Inversion_clear","Language","Left","Lemma","Let","Libraries","Library","Load","LoadPath","Local","Locate","Ltac","ML","Mode","Module","Modules","Monomorphic","Morphism","Next","NoInline","Notation","Obligation","Obligations","Opaque","Open","Optimize","Options","Parameter","Parameters","Parametric","Path","Paths","pattern","Polymorphic","Preterm","Print","Printing","Program","Projections","Proof","Proposition","Pwd","Qed","Quit","Rec","Record","Recursive","Redirect","Relation","Remark","Remove","Require","Reserved","Reset","Resolve","Restart","Rewrite","Right","Ring","Rings","Save","Scheme","Scope","Scopes","Script","Search","SearchAbout","SearchHead","SearchPattern","SearchRewrite","Section","Separate","Set","Setoid","Show","Solve","Sorted","Step","Strategies","Strategy","Structure","SubClass","Table","Tables","Tactic","Term","Test","Theorem","Time","Timeout","Transparent","Type","Typeclasses","Types","Undelimit","Undo","Unfocus","Unfocused","Unfold","Universe","Universes","Unset","Unshelve","using","Variable","Variables","Variant","Verbose","Visibility","where","with"],built_in:["abstract","absurd","admit","after","apply","as","assert","assumption","at","auto","autorewrite","autounfold","before","bottom","btauto","by","case","case_eq","cbn","cbv","change","classical_left","classical_right","clear","clearbody","cofix","compare","compute","congruence","constr_eq","constructor","contradict","contradiction","cut","cutrewrite","cycle","decide","decompose","dependent","destruct","destruction","dintuition","discriminate","discrR","do","double","dtauto","eapply","eassumption","eauto","ecase","econstructor","edestruct","ediscriminate","eelim","eexact","eexists","einduction","einjection","eleft","elim","elimtype","enough","equality","erewrite","eright","esimplify_eq","esplit","evar","exact","exactly_once","exfalso","exists","f_equal","fail","field","field_simplify","field_simplify_eq","first","firstorder","fix","fold","fourier","functional","generalize","generalizing","gfail","give_up","has_evar","hnf","idtac","in","induction","injection","instantiate","intro","intro_pattern","intros","intuition","inversion","inversion_clear","is_evar","is_var","lapply","lazy","left","lia","lra","move","native_compute","nia","nsatz","omega","once","pattern","pose","progress","proof","psatz","quote","record","red","refine","reflexivity","remember","rename","repeat","replace","revert","revgoals","rewrite","rewrite_strat","right","ring","ring_simplify","rtauto","set","setoid_reflexivity","setoid_replace","setoid_rewrite","setoid_symmetry","setoid_transitivity","shelve","shelve_unifiable","simpl","simple","simplify_eq","solve","specialize","split","split_Rabs","split_Rmult","stepl","stepr","subst","sum","swap","symmetry","tactic","tauto","time","timeout","top","transitivity","trivial","try","tryif","unfold","unify","until","using","vm_compute","with"]},contains:[e.QUOTE_STRING_MODE,e.COMMENT("\\(\\*","\\*\\)"),e.C_NUMBER_MODE,{className:"type",excludeBegin:!0,begin:"\\|\\s*",end:"\\w+"},{begin:/[-=]>/}]}}),eF)),r4.registerLanguage("cos",(eG||(eG=1,eB=function(e){return{name:"Cach\xe9 Object Script",case_insensitive:!0,aliases:["cls"],keywords:"property parameter class classmethod clientmethod extends as break catch close continue do d|0 else elseif for goto halt hang h|0 if job j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 tcommit throw trollback try tstart use view while write w|0 xecute x|0 zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit zsync ascii",contains:[{className:"number",begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)",relevance:0},{className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"comment",begin:/;/,end:"$",relevance:0},{className:"built_in",begin:/(?:\$\$?|\.\.)\^?[a-zA-Z]+/},{className:"built_in",begin:/\$\$\$[a-zA-Z]+/},{className:"built_in",begin:/%[a-z]+(?:\.[a-z]+)*/},{className:"symbol",begin:/\^%?[a-zA-Z][\w]*/},{className:"keyword",begin:/##class|##super|#define|#dim/},{begin:/&sql\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,subLanguage:"sql"},{begin:/&(js|jscript|javascript)</,end:/>/,excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"},{begin:/&html<\s*</,end:/>\s*>/,subLanguage:"xml"}]}}),eB)),r4.registerLanguage("cpp",(eH||(eH=1,eY=function(e){let t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+a+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",s={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},d={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},_=t.optional(i)+e.IDENT_RE+"\\s*\\(",u={type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]},m={className:"function.dispatch",relevance:0,keywords:{_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},p=[m,c,s,n,e.C_BLOCK_COMMENT_MODE,l,o],g={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:p.concat([{begin:/\(/,end:/\)/,keywords:u,contains:p.concat(["self"]),relevance:0}]),relevance:0},E={className:"function",begin:"("+r+"[\\*&\\s]+)+"+_,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{begin:_,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[o,l]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,o,l,s]}]},s,n,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(g,E,m,p,[c,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)",end:">",keywords:u,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:u},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}),eY)),r4.registerLanguage("crmsh",(ez||(ez=1,eV=function(e){let t="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml";return{name:"crmsh",aliases:["crm","pcmk"],case_insensitive:!0,keywords:{keyword:"params meta operations op rule attributes utilization read write deny defined not_defined in_range date spec in ref reference attribute type xpath version and or lt gt tag lte gte eq ne \\ number string",literal:"Master Started Slave Stopped start promote demote stop monitor true false"},contains:[e.HASH_COMMENT_MODE,{beginKeywords:"node",starts:{end:"\\s*([\\w_-]+:)?",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*"}}},{beginKeywords:"primitive rsc_template",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*",starts:{end:"\\s*@?[\\w_][\\w_\\.:-]*"}}},{begin:"\\b("+t.split(" ").join("|")+")\\s+",keywords:t,starts:{className:"title",end:"[\\$\\w_][\\w_-]*"}},{beginKeywords:"property rsc_defaults op_defaults",starts:{className:"title",end:"\\s*([\\w_-]+:)?"}},e.QUOTE_STRING_MODE,{className:"meta",begin:"(ocf|systemd|service|lsb):[\\w_:-]+",relevance:0},{className:"number",begin:"\\b\\d+(\\.\\d+)?(ms|s|h|m)?",relevance:0},{className:"literal",begin:"[-]?(infinity|inf)",relevance:0},{className:"attr",begin:/([A-Za-z$_#][\w_-]+)=/,relevance:0},{className:"tag",begin:"</?",end:"/?>",relevance:0}]}}),eV)),r4.registerLanguage("crystal",(e$||(e$=1,eq=function(e){let t="(_?[ui](8|16|32|64|128))?",n="[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?",a="[A-Za-z_]\\w*(::\\w+)*(\\?|!)?",i={$pattern:"[a-zA-Z_]\\w*[!?=]?",keyword:"abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield __DIR__ __END_LINE__ __FILE__ __LINE__",literal:"false nil true"},r={className:"subst",begin:/#\{/,end:/\}/,keywords:i},s={className:"template-variable",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:i};function o(e,t){let n=[{begin:e,end:t}];return n[0].contains=n,n}let l={className:"string",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[Qwi]?\\(",end:"\\)",contains:o("\\(","\\)")},{begin:"%[Qwi]?\\[",end:"\\]",contains:o("\\[","\\]")},{begin:"%[Qwi]?\\{",end:/\}/,contains:o(/\{/,/\}/)},{begin:"%[Qwi]?<",end:">",contains:o("<",">")},{begin:"%[Qwi]?\\|",end:"\\|"},{begin:/<<-\w+$/,end:/^\s*\w+$/}],relevance:0},c={className:"string",variants:[{begin:"%q\\(",end:"\\)",contains:o("\\(","\\)")},{begin:"%q\\[",end:"\\]",contains:o("\\[","\\]")},{begin:"%q\\{",end:/\}/,contains:o(/\{/,/\}/)},{begin:"%q<",end:">",contains:o("<",">")},{begin:"%q\\|",end:"\\|"},{begin:/<<-'\w+'$/,end:/^\s*\w+$/}],relevance:0},d={begin:"(?!%\\})("+e.RE_STARTERS_RE+"|\\n|\\b(case|if|select|unless|until|when|while)\\b)\\s*",keywords:"case if select unless until when while",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:"//[a-z]*",relevance:0},{begin:"/(?!\\/)",end:"/[a-z]*"}]}],relevance:0},_=[s,l,c,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:"%r\\(",end:"\\)",contains:o("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:o("\\[","\\]")},{begin:"%r\\{",end:/\}/,contains:o(/\{/,/\}/)},{begin:"%r<",end:">",contains:o("<",">")},{begin:"%r\\|",end:"\\|"}],relevance:0},d,{className:"meta",begin:"@\\[",end:"\\]",contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"string"})]},{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},e.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:a}),{begin:"<"}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:a})]},{beginKeywords:"annotation",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:a})],relevance:2},{className:"function",beginKeywords:"def",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})]},{className:"function",beginKeywords:"fun macro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})],relevance:2},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[l,{begin:n}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]+)"+t},{begin:"\\b0o([0-7_]+)"+t},{begin:"\\b0x([A-Fa-f0-9_]+)"+t},{begin:"\\b([1-9][0-9_]*[0-9]|[0-9])(\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?(_?f(32|64))?(?!_)"},{begin:"\\b([1-9][0-9_]*|0)"+t}],relevance:0}];return r.contains=_,s.contains=_.slice(1),{name:"Crystal",aliases:["cr"],keywords:i,contains:_}}),eq)),r4.registerLanguage("csharp",(eQ||(eQ=1,eW=function(e){let t={keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],literal:["default","false","null","true"]},n=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},r=e.inherit(i,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/,keywords:t},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]});s.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];let _={variants:[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},u={begin:"<",end:">",contains:[{beginKeywords:"in out"},n]},m=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",p={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:t,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},_,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},n,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[n,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[n,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+m+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:t,contains:[{beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,relevance:0,contains:[_,a,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},p]}}),eW)),r4.registerLanguage("csp",ej?eK:(ej=1,eK=function(e){return{name:"CSP",case_insensitive:!1,keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_-]*",keyword:["base-uri","child-src","connect-src","default-src","font-src","form-action","frame-ancestors","frame-src","img-src","manifest-src","media-src","object-src","plugin-types","report-uri","sandbox","script-src","style-src","trusted-types","unsafe-hashes","worker-src"]},contains:[{className:"string",begin:"'",end:"'"},{className:"attribute",begin:"^Content",end:":",excludeEnd:!0}]}})),r4.registerLanguage("css",function(){if(eZ)return eX;eZ=1;let e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],n=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],a=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],i=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();return eX=function(r){let s;let o=r.regex,l={IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:(s=r).C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[s.APOS_STRING_MODE,s.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:s.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}},c=[r.APOS_STRING_MODE,r.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[l.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/},l.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},l.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+n.join("|")+")"},{begin:":(:)?("+a.join("|")+")"}]},l.CSS_VARIABLE,{className:"attribute",begin:"\\b("+i.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[l.BLOCK_COMMENT,l.HEXCOLOR,l.IMPORTANT,l.CSS_NUMBER_MODE,...c,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...c,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},l.FUNCTION_DISPATCH]},{begin:o.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...c,l.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+e.join("|")+")\\b"}]}}}()),r4.registerLanguage("d",(e0||(e0=1,eJ=function(e){let t={$pattern:e.UNDERSCORE_IDENT_RE,keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},n="(0|[1-9][\\d_]*)",a="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)",i="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)",r="([eE][+-]?"+a+")",s="("+n+"|0[bB][01_]+|0[xX]"+i+")",o="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",l=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{name:"D",keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l,{className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},{className:"string",begin:'"',contains:[{begin:o,relevance:0}],end:'"[cwd]?'},{className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},{className:"string",begin:"`",end:"`[cwd]?"},{className:"string",begin:'q"\\{',end:'\\}"'},{className:"number",begin:"\\b(((0[xX]("+i+"\\."+i+"|\\.?"+i+")[pP][+-]?"+a+")|("+a+"(\\.\\d*|"+r+")|\\d+\\."+a+"|\\."+n+r+"?))([fF]|L|i|[fF]i|Li)?|"+s+"(i|[fF]i|Li))",relevance:0},{className:"number",begin:"\\b"+s+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},{className:"string",begin:"'("+o+"|.)",end:"'",illegal:"."},{className:"meta",begin:"^#!",end:"$",relevance:5},{className:"meta",begin:"#(line)",end:"$",relevance:5},{className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"}]}}),eJ)),r4.registerLanguage("markdown",(e2||(e2=1,e1=function(e){let t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},n={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[]}),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r);let o=[t,n];return[a,i,r,s].forEach(e=>{e.contains=e.contains.concat(o)}),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o=o.concat(a,i)},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:o}]}]},t,{className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},a,i,{className:"quote",begin:"^>\\s+",contains:o,end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},n,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}),e1)),r4.registerLanguage("dart",(e9||(e9=1,e3=function(e){let t={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"}]},n={className:"subst",variants:[{begin:/\$\{/,end:/\}/}],keywords:"true false null this is new super"},a={className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""',end:'"""'},{begin:"r'",end:"'",illegal:"\\n"},{begin:'r"',end:'"',illegal:"\\n"},{begin:"'''",end:"'''",contains:[e.BACKSLASH_ESCAPE,t,n]},{begin:'"""',end:'"""',contains:[e.BACKSLASH_ESCAPE,t,n]},{begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t,n]},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t,n]}]};n.contains=[e.C_NUMBER_MODE,a];let i=["Comparable","DateTime","Duration","Function","Iterable","Iterator","List","Map","Match","Object","Pattern","RegExp","Set","Stopwatch","String","StringBuffer","StringSink","Symbol","Type","Uri","bool","double","int","num","Element","ElementList"],r=i.map(e=>`${e}?`);return{name:"Dart",keywords:{keyword:["abstract","as","assert","async","await","base","break","case","catch","class","const","continue","covariant","default","deferred","do","dynamic","else","enum","export","extends","extension","external","factory","false","final","finally","for","Function","get","hide","if","implements","import","in","interface","is","late","library","mixin","new","null","on","operator","part","required","rethrow","return","sealed","set","show","static","super","switch","sync","this","throw","true","try","typedef","var","void","when","while","with","yield"],built_in:i.concat(r).concat(["Never","Null","dynamic","print","document","querySelector","querySelectorAll","window"]),$pattern:/[A-Za-z][A-Za-z0-9_]*\??/},contains:[a,e.COMMENT(/\/\*\*(?!\/)/,/\*\//,{subLanguage:"markdown",relevance:0}),e.COMMENT(/\/{3,} ?/,/$/,{contains:[{subLanguage:"markdown",begin:".",end:"$",relevance:0}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{begin:"=>"}]}}),e3)),r4.registerLanguage("delphi",(e6||(e6=1,e4=function(e){let t=["exports","register","file","shl","array","record","property","for","mod","while","set","ally","label","uses","raise","not","stored","class","safecall","var","interface","or","private","static","exit","index","inherited","to","else","stdcall","override","shr","asm","far","resourcestring","finalization","packed","virtual","out","and","protected","library","do","xorwrite","goto","near","function","end","div","overload","object","unit","begin","string","on","inline","repeat","until","destructor","write","message","program","with","read","initialization","except","default","nil","if","case","cdecl","in","downto","threadvar","of","try","pascal","const","external","constructor","type","public","then","implementation","finally","published","procedure","absolute","reintroduce","operator","as","is","abstract","alias","assembler","bitpacked","break","continue","cppdecl","cvar","enumerator","experimental","platform","deprecated","unimplemented","dynamic","export","far16","forward","generic","helper","implements","interrupt","iochecks","local","name","nodefault","noreturn","nostackframe","oldfpccall","otherwise","saveregisters","softfloat","specialize","strict","unaligned","varargs"],n=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],a={className:"meta",variants:[{begin:/\{\$/,end:/\}/},{begin:/\(\*\$/,end:/\*\)/}]},i={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},r={className:"string",begin:/(#\d+)+/},s={begin:e.IDENT_RE+"\\s*=\\s*class\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE]},o={className:"function",beginKeywords:"function constructor destructor procedure",end:/[:;]/,keywords:"function constructor|10 destructor|10 procedure|10",contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:t,contains:[i,r,a].concat(n)},a].concat(n)};return{name:"Delphi",aliases:["dpr","dfm","pas","pascal"],case_insensitive:!0,keywords:t,illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[i,r,e.NUMBER_MODE,{className:"number",relevance:0,variants:[{begin:"\\$[0-9A-Fa-f]+"},{begin:"&[0-7]+"},{begin:"%[01]+"}]},s,o,a].concat(n)}}),e4)),r4.registerLanguage("diff",(e8||(e8=1,e5=function(e){let t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}),e5)),r4.registerLanguage("django",(te||(te=1,e7=function(e){let t={begin:/\|[A-Za-z]+:?/,keywords:{name:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone"},contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE]};return{name:"Django",aliases:["jinja"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{%\s*comment\s*%\}/,/\{%\s*endcomment\s*%\}/),e.COMMENT(/\{#/,/#\}/),{className:"template-tag",begin:/\{%/,end:/%\}/,contains:[{className:"name",begin:/\w+/,keywords:{name:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim"},starts:{endsWithParent:!0,keywords:"in by as",contains:[t],relevance:0}}]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[t]}]}}),e7)),r4.registerLanguage("dns",(tn||(tn=1,tt=function(e){return{name:"DNS Zone",aliases:["bind","zone"],keywords:["IN","A","AAAA","AFSDB","APL","CAA","CDNSKEY","CDS","CERT","CNAME","DHCID","DLV","DNAME","DNSKEY","DS","HIP","IPSECKEY","KEY","KX","LOC","MX","NAPTR","NS","NSEC","NSEC3","NSEC3PARAM","PTR","RRSIG","RP","SIG","SOA","SRV","SSHFP","TA","TKEY","TLSA","TSIG","TXT"],contains:[e.COMMENT(";","$",{relevance:0}),{className:"meta",begin:/^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/},{className:"number",begin:"((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b"},{className:"number",begin:"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b"},e.inherit(e.NUMBER_MODE,{begin:/\b\d+[dhwm]?/})]}}),tt)),r4.registerLanguage("dockerfile",(ti||(ti=1,ta=function(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"</"}}),ta)),r4.registerLanguage("dos",(ts||(ts=1,tr=function(e){let t=e.COMMENT(/^\s*@?rem\b/,/$/,{relevance:10});return{name:"Batch file (DOS)",aliases:["bat","cmd"],case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:["if","else","goto","for","in","do","call","exit","not","exist","errorlevel","defined","equ","neq","lss","leq","gtr","geq"],built_in:["prn","nul","lpt3","lpt2","lpt1","con","com4","com3","com2","com1","aux","shift","cd","dir","echo","setlocal","endlocal","set","pause","copy","append","assoc","at","attrib","break","cacls","cd","chcp","chdir","chkdsk","chkntfs","cls","cmd","color","comp","compact","convert","date","dir","diskcomp","diskcopy","doskey","erase","fs","find","findstr","format","ftype","graftabl","help","keyb","label","md","mkdir","mode","more","move","path","pause","print","popd","pushd","promt","rd","recover","rem","rename","replace","restore","rmdir","shift","sort","start","subst","time","title","tree","type","ver","verify","vol","ping","net","ipconfig","taskkill","xcopy","ren","del"]},contains:[{className:"variable",begin:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{className:"function",begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",end:"goto:eof",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),t]},{className:"number",begin:"\\b\\d+",relevance:0},t]}}),tr)),r4.registerLanguage("dsconfig",(tl||(tl=1,to=function(e){return{keywords:"dsconfig",contains:[{className:"keyword",begin:"^dsconfig",end:/\s/,excludeEnd:!0,relevance:10},{className:"built_in",begin:/(list|create|get|set|delete)-(\w+)/,end:/\s/,excludeEnd:!0,illegal:"!@#$%^&*()",relevance:10},{className:"built_in",begin:/--(\w+)/,end:/\s/,excludeEnd:!0},{className:"string",begin:/"/,end:/"/},{className:"string",begin:/'/,end:/'/},{className:"string",begin:/[\w\-?]+:\w+/,end:/\W/,relevance:0},{className:"string",begin:/\w+(\-\w+)*/,end:/(?=\W)/,relevance:0},e.HASH_COMMENT_MODE]}}),to)),r4.registerLanguage("dts",(td||(td=1,tc=function(e){let t={className:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{begin:'((u8?|U)|L)?"'}),{begin:'(u8?|U)?R"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{begin:"'\\\\?.",end:"'",illegal:"."}]},n={className:"number",variants:[{begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},{begin:e.C_NUMBER_RE}],relevance:0},a={className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef ifdef ifndef"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",keywords:{keyword:"include"},contains:[e.inherit(t,{className:"string"}),{className:"string",begin:"<",end:">",illegal:"\\n"}]},t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},i={className:"variable",begin:/&[a-z\d_]*\b/};return{name:"Device Tree",contains:[{className:"title.class",begin:/^\/(?=\s*\{)/,relevance:10},i,{className:"keyword",begin:"/[a-z][a-z\\d-]*/"},{className:"symbol",begin:"^\\s*[a-zA-Z_][a-zA-Z\\d_]*:"},{className:"title.class",begin:/[a-zA-Z_][a-zA-Z\d_@-]*(?=\s\{)/,relevance:.2},{relevance:0,match:[/[a-z][a-z-,]+/,/\s*/,/=/],scope:{1:"attr",3:"operator"}},{match:/[a-z][a-z-,]+(?=;)/,relevance:0,scope:"attr"},{className:"params",relevance:0,begin:"<",end:">",contains:[n,i]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,t,a,{scope:"punctuation",relevance:0,match:/\};|[;{}]/},{begin:e.IDENT_RE+"::",keywords:""}]}}),tc)),r4.registerLanguage("dust",(tu||(tu=1,t_=function(e){return{name:"Dust",aliases:["dst"],case_insensitive:!0,subLanguage:"xml",contains:[{className:"template-tag",begin:/\{[#\/]/,end:/\}/,illegal:/;/,contains:[{className:"name",begin:/[a-zA-Z\.-]+/,starts:{endsWithParent:!0,relevance:0,contains:[e.QUOTE_STRING_MODE]}}]},{className:"template-variable",begin:/\{/,end:/\}/,illegal:/;/,keywords:"if eq ne lt lte gt gte select default math sep"}]}}),t_)),r4.registerLanguage("ebnf",(tp||(tp=1,tm=function(e){let t=e.COMMENT(/\(\*/,/\*\)/);return{name:"Extended Backus-Naur Form",illegal:/\S/,contains:[t,{className:"attribute",begin:/^[ ]*[a-zA-Z]+([\s_-]+[a-zA-Z]+)*/},{begin:/=/,end:/[.;]/,contains:[t,{className:"meta",begin:/\?.*\?/},{className:"string",variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"`",end:"`"}]}]}]}}),tm)),r4.registerLanguage("elixir",(tE||(tE=1,tg=function(e){let t=e.regex,n="[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?",a={$pattern:n,keyword:["after","alias","and","case","catch","cond","defstruct","defguard","do","else","end","fn","for","if","import","in","not","or","quote","raise","receive","require","reraise","rescue","try","unless","unquote","unquote_splicing","use","when","with|0"],literal:["false","nil","true"]},i={className:"subst",begin:/#\{/,end:/\}/,keywords:a},r={match:/\\[\s\S]/,scope:"char.escape",relevance:0},s="[/|([{<\"']",o=[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/\//,end:/\//},{begin:/\|/,end:/\|/},{begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/},{begin:/\{/,end:/\}/},{begin:/</,end:/>/}],l=e=>({scope:"char.escape",begin:t.concat(/\\/,e),relevance:0}),c={className:"string",begin:"~[a-z](?="+s+")",contains:o.map(t=>e.inherit(t,{contains:[l(t.end),r,i]}))},d={className:"string",begin:"~[A-Z](?="+s+")",contains:o.map(t=>e.inherit(t,{contains:[l(t.end)]}))},_={className:"regex",variants:[{begin:"~r(?="+s+")",contains:o.map(n=>e.inherit(n,{end:t.concat(n.end,/[uismxfU]{0,7}/),contains:[l(n.end),r,i]}))},{begin:"~R(?="+s+")",contains:o.map(n=>e.inherit(n,{end:t.concat(n.end,/[uismxfU]{0,7}/),contains:[l(n.end)]}))}]},u={className:"string",contains:[e.BACKSLASH_ESCAPE,i],variants:[{begin:/"""/,end:/"""/},{begin:/'''/,end:/'''/},{begin:/~S"""/,end:/"""/,contains:[]},{begin:/~S"/,end:/"/,contains:[]},{begin:/~S'''/,end:/'''/,contains:[]},{begin:/~S'/,end:/'/,contains:[]},{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},m={className:"function",beginKeywords:"def defp defmacro defmacrop",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})]},p=e.inherit(m,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),g=[u,_,d,c,e.HASH_COMMENT_MODE,p,m,{begin:"::"},{className:"symbol",begin:":(?![\\s:])",contains:[u,{begin:"[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?"}],relevance:0},{className:"symbol",begin:n+":(?!:)",relevance:0},{className:"title.class",begin:/(\b[A-Z][a-zA-Z0-9_]+)/,relevance:0},{className:"number",begin:"(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[0-9][0-9_]*(\\.[0-9_]+([eE][-+]?[0-9]+)?)?)",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))"}];return i.contains=g,{name:"Elixir",aliases:["ex","exs"],keywords:a,contains:g}}),tg)),r4.registerLanguage("elm",(tb||(tb=1,tS=function(e){let t={variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},n={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},a={begin:"\\(",end:"\\)",illegal:'"',contains:[{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},t]};return{name:"Elm",keywords:["let","in","if","then","else","case","of","where","module","import","exposing","type","alias","as","infix","infixl","infixr","port","effect","command","subscription"],contains:[{beginKeywords:"port effect module",end:"exposing",keywords:"port effect module where command subscription exposing",contains:[a,t],illegal:"\\W\\.|;"},{begin:"import",end:"$",keywords:"import as exposing",contains:[a,t],illegal:"\\W\\.|;"},{begin:"type",end:"$",keywords:"type alias",contains:[n,a,{begin:/\{/,end:/\}/,contains:a.contains},t]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,t]},{begin:"port",end:"$",keywords:"port",contains:[t]},{className:"string",begin:"'\\\\?.",end:"'",illegal:"."},e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,n,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),t,{begin:"->|<-"}],illegal:/;/}}),tS)),r4.registerLanguage("ruby",(tf||(tf=1,th=function(e){let t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(a,/(::\w+)*/),r={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/,end:/\}/,keywords:r},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},_="[0-9](_?[0-9])*",u={className:"number",relevance:0,variants:[{begin:`\\b([1-9](_?[0-9])*|0)(\\.(${_}))?([eE][+-]?(${_})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},m={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:r}]},p=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{2:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[m]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[d,{begin:n}],relevance:0},u,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(o,l),relevance:0}].concat(o,l);c.contains=p,m.contains=p;let g=[{begin:/^\s*=>/,starts:{end:"$",contains:p}},{className:"meta.prompt",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",starts:{end:"$",keywords:r,contains:p}}];return l.unshift(o),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(g).concat(l).concat(p)}}),th)),r4.registerLanguage("erb",(tv||(tv=1,tT=function(e){return{name:"ERB",subLanguage:"xml",contains:[e.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]}}),tT)),r4.registerLanguage("erlang-repl",(tR||(tR=1,tC=function(e){let t=e.regex;return{name:"Erlang REPL",keywords:{built_in:"spawn spawn_link self",keyword:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"meta.prompt",begin:"^[0-9]+> ",relevance:10},e.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:t.concat(/\?(::)?/,/([A-Z]\w*)/,/((::)[A-Z]\w*)*/)},{begin:"->"},{begin:"ok"},{begin:"!"},{begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}),tC)),r4.registerLanguage("erlang",(ty||(ty=1,tN=function(e){let t="[a-z'][a-zA-Z0-9_']*",n="("+t+":"+t+"|"+t+")",a={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},i=e.COMMENT("%","$"),r={className:"number",begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)",relevance:0},s={begin:"fun\\s+"+t+"/\\d+"},o={begin:n+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:n,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},l={begin:/\{/,end:/\}/,relevance:0},c={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},d={begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},_={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:/\{/,end:/\}/,relevance:0}]},u={beginKeywords:"fun receive if try case",end:"end",keywords:a};u.contains=[i,s,e.inherit(e.APOS_STRING_MODE,{className:""}),u,o,e.QUOTE_STRING_MODE,r,l,c,d,_];let m=[i,s,u,o,e.QUOTE_STRING_MODE,r,l,c,d,_];o.contains[1].contains=m,l.contains=m,_.contains[1].contains=m;let p={className:"params",begin:"\\(",end:"\\)",contains:m};return{name:"Erlang",aliases:["erl"],keywords:a,illegal:"(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))",contains:[{className:"function",begin:"^"+t+"\\s*\\(",end:"->",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[p,e.inherit(e.TITLE_MODE,{begin:t})],starts:{end:";|\\.",keywords:a,contains:m}},i,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,keywords:{$pattern:"-"+e.IDENT_RE,keyword:["-module","-record","-undef","-export","-ifdef","-ifndef","-author","-copyright","-doc","-vsn","-import","-include","-include_lib","-compile","-define","-else","-endif","-file","-behaviour","-behavior","-spec"].map(e=>`${e}|1.5`).join(" ")},contains:[p]},r,e.QUOTE_STRING_MODE,_,c,d,l,{begin:/\.$/}]}}),tN)),r4.registerLanguage("excel",(tA||(tA=1,tO=function(e){return{name:"Excel formulae",aliases:["xlsx","xls"],case_insensitive:!0,keywords:{$pattern:/[a-zA-Z][\w\.]*/,built_in:["ABS","ACCRINT","ACCRINTM","ACOS","ACOSH","ACOT","ACOTH","AGGREGATE","ADDRESS","AMORDEGRC","AMORLINC","AND","ARABIC","AREAS","ASC","ASIN","ASINH","ATAN","ATAN2","ATANH","AVEDEV","AVERAGE","AVERAGEA","AVERAGEIF","AVERAGEIFS","BAHTTEXT","BASE","BESSELI","BESSELJ","BESSELK","BESSELY","BETADIST","BETA.DIST","BETAINV","BETA.INV","BIN2DEC","BIN2HEX","BIN2OCT","BINOMDIST","BINOM.DIST","BINOM.DIST.RANGE","BINOM.INV","BITAND","BITLSHIFT","BITOR","BITRSHIFT","BITXOR","CALL","CEILING","CEILING.MATH","CEILING.PRECISE","CELL","CHAR","CHIDIST","CHIINV","CHITEST","CHISQ.DIST","CHISQ.DIST.RT","CHISQ.INV","CHISQ.INV.RT","CHISQ.TEST","CHOOSE","CLEAN","CODE","COLUMN","COLUMNS","COMBIN","COMBINA","COMPLEX","CONCAT","CONCATENATE","CONFIDENCE","CONFIDENCE.NORM","CONFIDENCE.T","CONVERT","CORREL","COS","COSH","COT","COTH","COUNT","COUNTA","COUNTBLANK","COUNTIF","COUNTIFS","COUPDAYBS","COUPDAYS","COUPDAYSNC","COUPNCD","COUPNUM","COUPPCD","COVAR","COVARIANCE.P","COVARIANCE.S","CRITBINOM","CSC","CSCH","CUBEKPIMEMBER","CUBEMEMBER","CUBEMEMBERPROPERTY","CUBERANKEDMEMBER","CUBESET","CUBESETCOUNT","CUBEVALUE","CUMIPMT","CUMPRINC","DATE","DATEDIF","DATEVALUE","DAVERAGE","DAY","DAYS","DAYS360","DB","DBCS","DCOUNT","DCOUNTA","DDB","DEC2BIN","DEC2HEX","DEC2OCT","DECIMAL","DEGREES","DELTA","DEVSQ","DGET","DISC","DMAX","DMIN","DOLLAR","DOLLARDE","DOLLARFR","DPRODUCT","DSTDEV","DSTDEVP","DSUM","DURATION","DVAR","DVARP","EDATE","EFFECT","ENCODEURL","EOMONTH","ERF","ERF.PRECISE","ERFC","ERFC.PRECISE","ERROR.TYPE","EUROCONVERT","EVEN","EXACT","EXP","EXPON.DIST","EXPONDIST","FACT","FACTDOUBLE","FALSE|0","F.DIST","FDIST","F.DIST.RT","FILTERXML","FIND","FINDB","F.INV","F.INV.RT","FINV","FISHER","FISHERINV","FIXED","FLOOR","FLOOR.MATH","FLOOR.PRECISE","FORECAST","FORECAST.ETS","FORECAST.ETS.CONFINT","FORECAST.ETS.SEASONALITY","FORECAST.ETS.STAT","FORECAST.LINEAR","FORMULATEXT","FREQUENCY","F.TEST","FTEST","FV","FVSCHEDULE","GAMMA","GAMMA.DIST","GAMMADIST","GAMMA.INV","GAMMAINV","GAMMALN","GAMMALN.PRECISE","GAUSS","GCD","GEOMEAN","GESTEP","GETPIVOTDATA","GROWTH","HARMEAN","HEX2BIN","HEX2DEC","HEX2OCT","HLOOKUP","HOUR","HYPERLINK","HYPGEOM.DIST","HYPGEOMDIST","IF","IFERROR","IFNA","IFS","IMABS","IMAGINARY","IMARGUMENT","IMCONJUGATE","IMCOS","IMCOSH","IMCOT","IMCSC","IMCSCH","IMDIV","IMEXP","IMLN","IMLOG10","IMLOG2","IMPOWER","IMPRODUCT","IMREAL","IMSEC","IMSECH","IMSIN","IMSINH","IMSQRT","IMSUB","IMSUM","IMTAN","INDEX","INDIRECT","INFO","INT","INTERCEPT","INTRATE","IPMT","IRR","ISBLANK","ISERR","ISERROR","ISEVEN","ISFORMULA","ISLOGICAL","ISNA","ISNONTEXT","ISNUMBER","ISODD","ISREF","ISTEXT","ISO.CEILING","ISOWEEKNUM","ISPMT","JIS","KURT","LARGE","LCM","LEFT","LEFTB","LEN","LENB","LINEST","LN","LOG","LOG10","LOGEST","LOGINV","LOGNORM.DIST","LOGNORMDIST","LOGNORM.INV","LOOKUP","LOWER","MATCH","MAX","MAXA","MAXIFS","MDETERM","MDURATION","MEDIAN","MID","MIDBs","MIN","MINIFS","MINA","MINUTE","MINVERSE","MIRR","MMULT","MOD","MODE","MODE.MULT","MODE.SNGL","MONTH","MROUND","MULTINOMIAL","MUNIT","N","NA","NEGBINOM.DIST","NEGBINOMDIST","NETWORKDAYS","NETWORKDAYS.INTL","NOMINAL","NORM.DIST","NORMDIST","NORMINV","NORM.INV","NORM.S.DIST","NORMSDIST","NORM.S.INV","NORMSINV","NOT","NOW","NPER","NPV","NUMBERVALUE","OCT2BIN","OCT2DEC","OCT2HEX","ODD","ODDFPRICE","ODDFYIELD","ODDLPRICE","ODDLYIELD","OFFSET","OR","PDURATION","PEARSON","PERCENTILE.EXC","PERCENTILE.INC","PERCENTILE","PERCENTRANK.EXC","PERCENTRANK.INC","PERCENTRANK","PERMUT","PERMUTATIONA","PHI","PHONETIC","PI","PMT","POISSON.DIST","POISSON","POWER","PPMT","PRICE","PRICEDISC","PRICEMAT","PROB","PRODUCT","PROPER","PV","QUARTILE","QUARTILE.EXC","QUARTILE.INC","QUOTIENT","RADIANS","RAND","RANDBETWEEN","RANK.AVG","RANK.EQ","RANK","RATE","RECEIVED","REGISTER.ID","REPLACE","REPLACEB","REPT","RIGHT","RIGHTB","ROMAN","ROUND","ROUNDDOWN","ROUNDUP","ROW","ROWS","RRI","RSQ","RTD","SEARCH","SEARCHB","SEC","SECH","SECOND","SERIESSUM","SHEET","SHEETS","SIGN","SIN","SINH","SKEW","SKEW.P","SLN","SLOPE","SMALL","SQL.REQUEST","SQRT","SQRTPI","STANDARDIZE","STDEV","STDEV.P","STDEV.S","STDEVA","STDEVP","STDEVPA","STEYX","SUBSTITUTE","SUBTOTAL","SUM","SUMIF","SUMIFS","SUMPRODUCT","SUMSQ","SUMX2MY2","SUMX2PY2","SUMXMY2","SWITCH","SYD","T","TAN","TANH","TBILLEQ","TBILLPRICE","TBILLYIELD","T.DIST","T.DIST.2T","T.DIST.RT","TDIST","TEXT","TEXTJOIN","TIME","TIMEVALUE","T.INV","T.INV.2T","TINV","TODAY","TRANSPOSE","TREND","TRIM","TRIMMEAN","TRUE|0","TRUNC","T.TEST","TTEST","TYPE","UNICHAR","UNICODE","UPPER","VALUE","VAR","VAR.P","VAR.S","VARA","VARP","VARPA","VDB","VLOOKUP","WEBSERVICE","WEEKDAY","WEEKNUM","WEIBULL","WEIBULL.DIST","WORKDAY","WORKDAY.INTL","XIRR","XNPV","XOR","YEAR","YEARFRAC","YIELD","YIELDDISC","YIELDMAT","Z.TEST","ZTEST"]},contains:[{begin:/^=/,end:/[^=]/,returnEnd:!0,illegal:/=/,relevance:10},{className:"symbol",begin:/\b[A-Z]{1,2}\d+\b/,end:/[^\d]/,excludeEnd:!0,relevance:0},{className:"symbol",begin:/[A-Z]{0,2}\d*:[A-Z]{0,2}\d*/,relevance:0},e.BACKSLASH_ESCAPE,e.QUOTE_STRING_MODE,{className:"number",begin:e.NUMBER_RE+"(%)?",relevance:0},e.COMMENT(/\bN\(/,/\)/,{excludeBegin:!0,excludeEnd:!0,illegal:/\n/})]}}),tO)),r4.registerLanguage("fix",tD?tI:(tD=1,tI=function(e){return{name:"FIX",contains:[{begin:/[^\u2401\u0001]+/,end:/[\u2401\u0001]/,excludeEnd:!0,returnBegin:!0,returnEnd:!1,contains:[{begin:/([^\u2401\u0001=]+)/,end:/=([^\u2401\u0001=]+)/,returnEnd:!0,returnBegin:!1,className:"attr"},{begin:/=/,end:/([\u2401\u0001])/,excludeEnd:!0,excludeBegin:!0,className:"string"}]}],case_insensitive:!0}})),r4.registerLanguage("flix",(tx||(tx=1,tw=function(e){return{name:"Flix",keywords:{keyword:["case","class","def","else","enum","if","impl","import","in","lat","rel","index","let","match","namespace","switch","type","yield","with"],literal:["true","false"]},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},{className:"string",variants:[{begin:'"',end:'"'}]},{className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[{className:"title",relevance:0,begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/}]},e.C_NUMBER_MODE]}}),tw)),r4.registerLanguage("fortran",(tM||(tM=1,tL=function(e){let t=e.regex,n={variants:[e.COMMENT("!","$",{relevance:0}),e.COMMENT("^C[ ]","$",{relevance:0}),e.COMMENT("^C$","$",{relevance:0})]},a=/(_[a-z_\d]+)?/,i=/([de][+-]?\d+)?/,r={className:"number",variants:[{begin:t.concat(/\b\d+/,/\.(\d*)/,i,a)},{begin:t.concat(/\b\d+/,i,a)},{begin:t.concat(/\.\d+/,i,a)}],relevance:0},s={className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]};return{name:"Fortran",case_insensitive:!0,aliases:["f90","f95"],keywords:{keyword:["kind","do","concurrent","local","shared","while","private","call","intrinsic","where","elsewhere","type","endtype","endmodule","endselect","endinterface","end","enddo","endif","if","forall","endforall","only","contains","default","return","stop","then","block","endblock","endassociate","public","subroutine|10","function","program",".and.",".or.",".not.",".le.",".eq.",".ge.",".gt.",".lt.","goto","save","else","use","module","select","case","access","blank","direct","exist","file","fmt","form","formatted","iostat","name","named","nextrec","number","opened","rec","recl","sequential","status","unformatted","unit","continue","format","pause","cycle","exit","c_null_char","c_alert","c_backspace","c_form_feed","flush","wait","decimal","round","iomsg","synchronous","nopass","non_overridable","pass","protected","volatile","abstract","extends","import","non_intrinsic","value","deferred","generic","final","enumerator","class","associate","bind","enum","c_int","c_short","c_long","c_long_long","c_signed_char","c_size_t","c_int8_t","c_int16_t","c_int32_t","c_int64_t","c_int_least8_t","c_int_least16_t","c_int_least32_t","c_int_least64_t","c_int_fast8_t","c_int_fast16_t","c_int_fast32_t","c_int_fast64_t","c_intmax_t","C_intptr_t","c_float","c_double","c_long_double","c_float_complex","c_double_complex","c_long_double_complex","c_bool","c_char","c_null_ptr","c_null_funptr","c_new_line","c_carriage_return","c_horizontal_tab","c_vertical_tab","iso_c_binding","c_loc","c_funloc","c_associated","c_f_pointer","c_ptr","c_funptr","iso_fortran_env","character_storage_size","error_unit","file_storage_size","input_unit","iostat_end","iostat_eor","numeric_storage_size","output_unit","c_f_procpointer","ieee_arithmetic","ieee_support_underflow_control","ieee_get_underflow_mode","ieee_set_underflow_mode","newunit","contiguous","recursive","pad","position","action","delim","readwrite","eor","advance","nml","interface","procedure","namelist","include","sequence","elemental","pure","impure","integer","real","character","complex","logical","codimension","dimension","allocatable|10","parameter","external","implicit|10","none","double","precision","assign","intent","optional","pointer","target","in","out","common","equivalence","data"],literal:[".False.",".True."],built_in:["alog","alog10","amax0","amax1","amin0","amin1","amod","cabs","ccos","cexp","clog","csin","csqrt","dabs","dacos","dasin","datan","datan2","dcos","dcosh","ddim","dexp","dint","dlog","dlog10","dmax1","dmin1","dmod","dnint","dsign","dsin","dsinh","dsqrt","dtan","dtanh","float","iabs","idim","idint","idnint","ifix","isign","max0","max1","min0","min1","sngl","algama","cdabs","cdcos","cdexp","cdlog","cdsin","cdsqrt","cqabs","cqcos","cqexp","cqlog","cqsin","cqsqrt","dcmplx","dconjg","derf","derfc","dfloat","dgamma","dimag","dlgama","iqint","qabs","qacos","qasin","qatan","qatan2","qcmplx","qconjg","qcos","qcosh","qdim","qerf","qerfc","qexp","qgamma","qimag","qlgama","qlog","qlog10","qmax1","qmin1","qmod","qnint","qsign","qsin","qsinh","qsqrt","qtan","qtanh","abs","acos","aimag","aint","anint","asin","atan","atan2","char","cmplx","conjg","cos","cosh","exp","ichar","index","int","log","log10","max","min","nint","sign","sin","sinh","sqrt","tan","tanh","print","write","dim","lge","lgt","lle","llt","mod","nullify","allocate","deallocate","adjustl","adjustr","all","allocated","any","associated","bit_size","btest","ceiling","count","cshift","date_and_time","digits","dot_product","eoshift","epsilon","exponent","floor","fraction","huge","iand","ibclr","ibits","ibset","ieor","ior","ishft","ishftc","lbound","len_trim","matmul","maxexponent","maxloc","maxval","merge","minexponent","minloc","minval","modulo","mvbits","nearest","pack","present","product","radix","random_number","random_seed","range","repeat","reshape","rrspacing","scale","scan","selected_int_kind","selected_real_kind","set_exponent","shape","size","spacing","spread","sum","system_clock","tiny","transpose","trim","ubound","unpack","verify","achar","iachar","transfer","dble","entry","dprod","cpu_time","command_argument_count","get_command","get_command_argument","get_environment_variable","is_iostat_end","ieee_arithmetic","ieee_support_underflow_control","ieee_get_underflow_mode","ieee_set_underflow_mode","is_iostat_eor","move_alloc","new_line","selected_char_kind","same_type_as","extends_type_of","acosh","asinh","atanh","bessel_j0","bessel_j1","bessel_jn","bessel_y0","bessel_y1","bessel_yn","erf","erfc","erfc_scaled","gamma","log_gamma","hypot","norm2","atomic_define","atomic_ref","execute_command_line","leadz","trailz","storage_size","merge_bits","bge","bgt","ble","blt","dshiftl","dshiftr","findloc","iall","iany","iparity","image_index","lcobound","ucobound","maskl","maskr","num_images","parity","popcnt","poppar","shifta","shiftl","shiftr","this_image","sync","change","team","co_broadcast","co_max","co_min","co_sum","co_reduce"]},illegal:/\/\*/,contains:[{className:"string",relevance:0,variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},s,{begin:/^C\s*=(?!=)/,relevance:0},n,r]}}),tL)),r4.registerLanguage("fsharp",function(){if(tk)return tP;function e(e){return RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function t(e){return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")}function a(...e){return e.map(e=>t(e)).join("")}function i(...e){return"("+(function(e){let t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e).capture?"":"?:")+e.map(e=>t(e)).join("|")+")"}return tk=1,tP=function(t){let r={scope:"keyword",match:/\b(yield|return|let|do|match|use)!/},s=["bool","byte","sbyte","int8","int16","int32","uint8","uint16","uint32","int","uint","int64","uint64","nativeint","unativeint","decimal","float","double","float32","single","char","string","unit","bigint","option","voption","list","array","seq","byref","exn","inref","nativeptr","obj","outref","voidptr","Result"],o={keyword:["abstract","and","as","assert","base","begin","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","extern","finally","fixed","for","fun","function","global","if","in","inherit","inline","interface","internal","lazy","let","match","member","module","mutable","namespace","new","of","open","or","override","private","public","rec","return","static","struct","then","to","try","type","upcast","use","val","void","when","while","with","yield"],literal:["true","false","null","Some","None","Ok","Error","infinity","infinityf","nan","nanf"],built_in:["not","ref","raise","reraise","dict","readOnlyDict","set","get","enum","sizeof","typeof","typedefof","nameof","nullArg","invalidArg","invalidOp","id","fst","snd","ignore","lock","using","box","unbox","tryUnbox","printf","printfn","sprintf","eprintf","eprintfn","fprintf","fprintfn","failwith","failwithf"],"variable.constant":["__LINE__","__SOURCE_DIRECTORY__","__SOURCE_FILE__"]},l={variants:[t.COMMENT(/\(\*(?!\))/,/\*\)/,{contains:["self"]}),t.C_LINE_COMMENT_MODE]},c={scope:"variable",begin:/``/,end:/``/},d=/\B('|\^)/,_={scope:"symbol",variants:[{match:a(d,/``.*?``/)},{match:a(d,t.UNDERSCORE_IDENT_RE)}],relevance:0},u=function({includeEqual:t}){let r=a("[",...Array.from(t?"!%&*+-/<=>@^|~?":"!%&*+-/<>@^|~?").map(e),"]"),s=i(r,/\./),o=a(s,n(s)),l=i(a(o,s,"*"),a(r,"+"));return{scope:"operator",match:i(l,/:\?>/,/:\?/,/:>/,/:=/,/::?/,/\$/),relevance:0}},m=u({includeEqual:!0}),p=u({includeEqual:!1}),g=function(e,r){return{begin:a(e,n(a(/\s*/,i(/\w/,/'/,/\^/,/#/,/``/,/\(/,/{\|/)))),beginScope:r,end:n(i(/\n/,/=/)),relevance:0,keywords:t.inherit(o,{type:s}),contains:[l,_,t.inherit(c,{scope:null}),p]}},E=g(/:/,"operator"),S=g(/\bof\b/,"keyword"),b={begin:[/(^|\s+)/,/type/,/\s+/,/[a-zA-Z_](\w|')*/],beginScope:{2:"keyword",4:"title.class"},end:n(/\(|=|$/),keywords:o,contains:[l,t.inherit(c,{scope:null}),_,{scope:"operator",match:/<|>/},E]},h={scope:"computation-expression",match:/\b[_a-z]\w*(?=\s*\{)/},f={begin:[/^\s*/,a(/#/,i("if","else","endif","line","nowarn","light","r","i","I","load","time","help","quit")),/\b/],beginScope:{2:"meta"},end:n(/\s|$/)},T={variants:[t.BINARY_NUMBER_MODE,t.C_NUMBER_MODE]},v={scope:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE]},C={scope:"string",begin:/@"/,end:/"/,contains:[{match:/""/},t.BACKSLASH_ESCAPE]},R={scope:"string",begin:/"""/,end:/"""/,relevance:2},N={scope:"subst",begin:/\{/,end:/\}/,keywords:o},y={scope:"string",begin:/\$"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/},t.BACKSLASH_ESCAPE,N]},O={scope:"string",begin:/(\$@|@\$)"/,end:/"/,contains:[{match:/\{\{/},{match:/\}\}/},{match:/""/},t.BACKSLASH_ESCAPE,N]},A={scope:"string",match:a(/'/,i(/[^\\']/,/\\(?:.|\d{3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}|U[a-fA-F\d]{8})/),/'/)};return N.contains=[O,y,C,v,A,r,l,c,E,h,f,T,_,m],{name:"F#",aliases:["fs","f#"],keywords:o,illegal:/\/\*/,classNameAliases:{"computation-expression":"keyword"},contains:[r,{variants:[{scope:"string",begin:/\$"""/,end:/"""/,contains:[{match:/\{\{/},{match:/\}\}/},N],relevance:2},O,y,R,C,v,A]},l,c,b,{scope:"meta",begin:/\[</,end:/>\]/,relevance:2,contains:[c,R,C,v,A,T]},S,E,h,f,T,_,m]}}}()),r4.registerLanguage("gams",(tU||(tU=1,tF=function(e){let t=e.regex,n={keyword:"abort acronym acronyms alias all and assign binary card diag display else eq file files for free ge gt if integer le loop lt maximizing minimizing model models ne negative no not option options or ord positive prod put putpage puttl repeat sameas semicont semiint smax smin solve sos1 sos2 sum system table then until using while xor yes",literal:"eps inf na",built_in:"abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact floor frac gamma gammaReg log logBeta logGamma log10 log2 mapVal max min mod ncpCM ncpF ncpVUpow ncpVUsin normal pi poly power randBinomial randLinear randTriangle round rPower sigmoid sign signPower sin sinh slexp sllog10 slrec sqexp sqlog10 sqr sqrec sqrt tan tanh trunc uniform uniformInt vcPower bool_and bool_eqv bool_imp bool_not bool_or bool_xor ifThen rel_eq rel_ge rel_gt rel_le rel_lt rel_ne gday gdow ghour gleap gmillisec gminute gmonth gsecond gyear jdate jnow jstart jtime errorLevel execError gamsRelease gamsVersion handleCollect handleDelete handleStatus handleSubmit heapFree heapLimit heapSize jobHandle jobKill jobStatus jobTerminate licenseLevel licenseStatus maxExecError sleep timeClose timeComp timeElapsed timeExec timeStart"},a={className:"symbol",variants:[{begin:/=[lgenxc]=/},{begin:/\$/}]},i={className:"comment",variants:[{begin:"'",end:"'"},{begin:'"',end:'"'}],illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},r={begin:"/",end:"/",keywords:n,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE]},s=/[a-z0-9&#*=?@\\><:,()$[\]_.{}!+%^-]+/,o={begin:/[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/,excludeBegin:!0,end:"$",endsWithParent:!0,contains:[i,r,{className:"comment",begin:t.concat(s,t.anyNumberOfTimes(t.concat(/[ ]+/,s))),relevance:0}]};return{name:"GAMS",aliases:["gms"],case_insensitive:!0,keywords:n,contains:[e.COMMENT(/^\$ontext/,/^\$offtext/),{className:"meta",begin:"^\\$[a-z0-9]+",end:"$",returnBegin:!0,contains:[{className:"keyword",begin:"^\\$[a-z0-9]+"}]},e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{beginKeywords:"set sets parameter parameters variable variables scalar scalars equation equations",end:";",contains:[e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,r,o]},{beginKeywords:"table",end:";",returnBegin:!0,contains:[{beginKeywords:"table",end:"$",contains:[o]},e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE]},{className:"function",begin:/^[a-z][a-z0-9_,\-+' ()$]+\.{2}/,returnBegin:!0,contains:[{className:"title",begin:/^[a-z0-9_]+/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0},a]},e.C_NUMBER_MODE,a]}}),tF)),r4.registerLanguage("gauss",(tG||(tG=1,tB=function(e){let t={keyword:"bool break call callexe checkinterrupt clear clearg closeall cls comlog compile continue create debug declare delete disable dlibrary dllcall do dos ed edit else elseif enable end endfor endif endp endo errorlog errorlogat expr external fn for format goto gosub graph if keyword let lib library line load loadarray loadexe loadf loadk loadm loadp loads loadx local locate loopnextindex lprint lpwidth lshow matrix msym ndpclex new open output outwidth plot plotsym pop prcsn print printdos proc push retp return rndcon rndmod rndmult rndseed run save saveall screen scroll setarray show sparse stop string struct system trace trap threadfor threadendfor threadbegin threadjoin threadstat threadend until use while winprint ne ge le gt lt and xor or not eq eqv",built_in:"abs acf aconcat aeye amax amean AmericanBinomCall AmericanBinomCall_Greeks AmericanBinomCall_ImpVol AmericanBinomPut AmericanBinomPut_Greeks AmericanBinomPut_ImpVol AmericanBSCall AmericanBSCall_Greeks AmericanBSCall_ImpVol AmericanBSPut AmericanBSPut_Greeks AmericanBSPut_ImpVol amin amult annotationGetDefaults annotationSetBkd annotationSetFont annotationSetLineColor annotationSetLineStyle annotationSetLineThickness annualTradingDays arccos arcsin areshape arrayalloc arrayindex arrayinit arraytomat asciiload asclabel astd astds asum atan atan2 atranspose axmargin balance band bandchol bandcholsol bandltsol bandrv bandsolpd bar base10 begwind besselj bessely beta box boxcox cdfBeta cdfBetaInv cdfBinomial cdfBinomialInv cdfBvn cdfBvn2 cdfBvn2e cdfCauchy cdfCauchyInv cdfChic cdfChii cdfChinc cdfChincInv cdfExp cdfExpInv cdfFc cdfFnc cdfFncInv cdfGam cdfGenPareto cdfHyperGeo cdfLaplace cdfLaplaceInv cdfLogistic cdfLogisticInv cdfmControlCreate cdfMvn cdfMvn2e cdfMvnce cdfMvne cdfMvt2e cdfMvtce cdfMvte cdfN cdfN2 cdfNc cdfNegBinomial cdfNegBinomialInv cdfNi cdfPoisson cdfPoissonInv cdfRayleigh cdfRayleighInv cdfTc cdfTci cdfTnc cdfTvn cdfWeibull cdfWeibullInv cdir ceil ChangeDir chdir chiBarSquare chol choldn cholsol cholup chrs close code cols colsf combinate combinated complex con cond conj cons ConScore contour conv convertsatostr convertstrtosa corrm corrms corrvc corrx corrxs cos cosh counts countwts crossprd crout croutp csrcol csrlin csvReadM csvReadSA cumprodc cumsumc curve cvtos datacreate datacreatecomplex datalist dataload dataloop dataopen datasave date datestr datestring datestrymd dayinyr dayofweek dbAddDatabase dbClose dbCommit dbCreateQuery dbExecQuery dbGetConnectOptions dbGetDatabaseName dbGetDriverName dbGetDrivers dbGetHostName dbGetLastErrorNum dbGetLastErrorText dbGetNumericalPrecPolicy dbGetPassword dbGetPort dbGetTableHeaders dbGetTables dbGetUserName dbHasFeature dbIsDriverAvailable dbIsOpen dbIsOpenError dbOpen dbQueryBindValue dbQueryClear dbQueryCols dbQueryExecPrepared dbQueryFetchAllM dbQueryFetchAllSA dbQueryFetchOneM dbQueryFetchOneSA dbQueryFinish dbQueryGetBoundValue dbQueryGetBoundValues dbQueryGetField dbQueryGetLastErrorNum dbQueryGetLastErrorText dbQueryGetLastInsertID dbQueryGetLastQuery dbQueryGetPosition dbQueryIsActive dbQueryIsForwardOnly dbQueryIsNull dbQueryIsSelect dbQueryIsValid dbQueryPrepare dbQueryRows dbQuerySeek dbQuerySeekFirst dbQuerySeekLast dbQuerySeekNext dbQuerySeekPrevious dbQuerySetForwardOnly dbRemoveDatabase dbRollback dbSetConnectOptions dbSetDatabaseName dbSetHostName dbSetNumericalPrecPolicy dbSetPort dbSetUserName dbTransaction DeleteFile delif delrows denseToSp denseToSpRE denToZero design det detl dfft dffti diag diagrv digamma doswin DOSWinCloseall DOSWinOpen dotfeq dotfeqmt dotfge dotfgemt dotfgt dotfgtmt dotfle dotflemt dotflt dotfltmt dotfne dotfnemt draw drop dsCreate dstat dstatmt dstatmtControlCreate dtdate dtday dttime dttodtv dttostr dttoutc dtvnormal dtvtodt dtvtoutc dummy dummybr dummydn eig eigh eighv eigv elapsedTradingDays endwind envget eof eqSolve eqSolvemt eqSolvemtControlCreate eqSolvemtOutCreate eqSolveset erf erfc erfccplx erfcplx error etdays ethsec etstr EuropeanBinomCall EuropeanBinomCall_Greeks EuropeanBinomCall_ImpVol EuropeanBinomPut EuropeanBinomPut_Greeks EuropeanBinomPut_ImpVol EuropeanBSCall EuropeanBSCall_Greeks EuropeanBSCall_ImpVol EuropeanBSPut EuropeanBSPut_Greeks EuropeanBSPut_ImpVol exctsmpl exec execbg exp extern eye fcheckerr fclearerr feq feqmt fflush fft ffti fftm fftmi fftn fge fgemt fgets fgetsa fgetsat fgetst fgt fgtmt fileinfo filesa fle flemt floor flt fltmt fmod fne fnemt fonts fopen formatcv formatnv fputs fputst fseek fstrerror ftell ftocv ftos ftostrC gamma gammacplx gammaii gausset gdaAppend gdaCreate gdaDStat gdaDStatMat gdaGetIndex gdaGetName gdaGetNames gdaGetOrders gdaGetType gdaGetTypes gdaGetVarInfo gdaIsCplx gdaLoad gdaPack gdaRead gdaReadByIndex gdaReadSome gdaReadSparse gdaReadStruct gdaReportVarInfo gdaSave gdaUpdate gdaUpdateAndPack gdaVars gdaWrite gdaWrite32 gdaWriteSome getarray getdims getf getGAUSShome getmatrix getmatrix4D getname getnamef getNextTradingDay getNextWeekDay getnr getorders getpath getPreviousTradingDay getPreviousWeekDay getRow getscalar3D getscalar4D getTrRow getwind glm gradcplx gradMT gradMTm gradMTT gradMTTm gradp graphprt graphset hasimag header headermt hess hessMT hessMTg hessMTgw hessMTm hessMTmw hessMTT hessMTTg hessMTTgw hessMTTm hessMTw hessp hist histf histp hsec imag indcv indexcat indices indices2 indicesf indicesfn indnv indsav integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 inthpControlCreate intquad1 intquad2 intquad3 intrleav intrleavsa intrsect intsimp inv invpd invswp iscplx iscplxf isden isinfnanmiss ismiss key keyav keyw lag lag1 lagn lapEighb lapEighi lapEighvb lapEighvi lapgEig lapgEigh lapgEighv lapgEigv lapgSchur lapgSvdcst lapgSvds lapgSvdst lapSvdcusv lapSvds lapSvdusv ldlp ldlsol linSolve listwise ln lncdfbvn lncdfbvn2 lncdfmvn lncdfn lncdfn2 lncdfnc lnfact lngammacplx lnpdfmvn lnpdfmvt lnpdfn lnpdft loadd loadstruct loadwind loess loessmt loessmtControlCreate log loglog logx logy lower lowmat lowmat1 ltrisol lu lusol machEpsilon make makevars makewind margin matalloc matinit mattoarray maxbytes maxc maxindc maxv maxvec mbesselei mbesselei0 mbesselei1 mbesseli mbesseli0 mbesseli1 meanc median mergeby mergevar minc minindc minv miss missex missrv moment momentd movingave movingaveExpwgt movingaveWgt nextindex nextn nextnevn nextwind ntos null null1 numCombinations ols olsmt olsmtControlCreate olsqr olsqr2 olsqrmt ones optn optnevn orth outtyp pacf packedToSp packr parse pause pdfCauchy pdfChi pdfExp pdfGenPareto pdfHyperGeo pdfLaplace pdfLogistic pdfn pdfPoisson pdfRayleigh pdfWeibull pi pinv pinvmt plotAddArrow plotAddBar plotAddBox plotAddHist plotAddHistF plotAddHistP plotAddPolar plotAddScatter plotAddShape plotAddTextbox plotAddTS plotAddXY plotArea plotBar plotBox plotClearLayout plotContour plotCustomLayout plotGetDefaults plotHist plotHistF plotHistP plotLayout plotLogLog plotLogX plotLogY plotOpenWindow plotPolar plotSave plotScatter plotSetAxesPen plotSetBar plotSetBarFill plotSetBarStacked plotSetBkdColor plotSetFill plotSetGrid plotSetLegend plotSetLineColor plotSetLineStyle plotSetLineSymbol plotSetLineThickness plotSetNewWindow plotSetTitle plotSetWhichYAxis plotSetXAxisShow plotSetXLabel plotSetXRange plotSetXTicInterval plotSetXTicLabel plotSetYAxisShow plotSetYLabel plotSetYRange plotSetZAxisShow plotSetZLabel plotSurface plotTS plotXY polar polychar polyeval polygamma polyint polymake polymat polymroot polymult polyroot pqgwin previousindex princomp printfm printfmt prodc psi putarray putf putvals pvCreate pvGetIndex pvGetParNames pvGetParVector pvLength pvList pvPack pvPacki pvPackm pvPackmi pvPacks pvPacksi pvPacksm pvPacksmi pvPutParVector pvTest pvUnpack QNewton QNewtonmt QNewtonmtControlCreate QNewtonmtOutCreate QNewtonSet QProg QProgmt QProgmtInCreate qqr qqre qqrep qr qre qrep qrsol qrtsol qtyr qtyre qtyrep quantile quantiled qyr qyre qyrep qz rank rankindx readr real reclassify reclassifyCuts recode recserar recsercp recserrc rerun rescale reshape rets rev rfft rffti rfftip rfftn rfftnp rfftp rndBernoulli rndBeta rndBinomial rndCauchy rndChiSquare rndCon rndCreateState rndExp rndGamma rndGeo rndGumbel rndHyperGeo rndi rndKMbeta rndKMgam rndKMi rndKMn rndKMnb rndKMp rndKMu rndKMvm rndLaplace rndLCbeta rndLCgam rndLCi rndLCn rndLCnb rndLCp rndLCu rndLCvm rndLogNorm rndMTu rndMVn rndMVt rndn rndnb rndNegBinomial rndp rndPoisson rndRayleigh rndStateSkip rndu rndvm rndWeibull rndWishart rotater round rows rowsf rref sampleData satostrC saved saveStruct savewind scale scale3d scalerr scalinfnanmiss scalmiss schtoc schur searchsourcepath seekr select selif seqa seqm setdif setdifsa setvars setvwrmode setwind shell shiftr sin singleindex sinh sleep solpd sortc sortcc sortd sorthc sorthcc sortind sortindc sortmc sortr sortrc spBiconjGradSol spChol spConjGradSol spCreate spDenseSubmat spDiagRvMat spEigv spEye spLDL spline spLU spNumNZE spOnes spreadSheetReadM spreadSheetReadSA spreadSheetWrite spScale spSubmat spToDense spTrTDense spTScalar spZeros sqpSolve sqpSolveMT sqpSolveMTControlCreate sqpSolveMTlagrangeCreate sqpSolveMToutCreate sqpSolveSet sqrt statements stdc stdsc stocv stof strcombine strindx strlen strput strrindx strsect strsplit strsplitPad strtodt strtof strtofcplx strtriml strtrimr strtrunc strtruncl strtruncpad strtruncr submat subscat substute subvec sumc sumr surface svd svd1 svd2 svdcusv svds svdusv sysstate tab tan tanh tempname time timedt timestr timeutc title tkf2eps tkf2ps tocart todaydt toeplitz token topolar trapchk trigamma trimr trunc type typecv typef union unionsa uniqindx uniqindxsa unique uniquesa upmat upmat1 upper utctodt utctodtv utrisol vals varCovMS varCovXS varget vargetl varmall varmares varput varputl vartypef vcm vcms vcx vcxs vec vech vecr vector vget view viewxyz vlist vnamecv volume vput vread vtypecv wait waitc walkindex where window writer xlabel xlsGetSheetCount xlsGetSheetSize xlsGetSheetTypes xlsMakeRange xlsReadM xlsReadSA xlsWrite xlsWriteM xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics cdfEmpirical dot h5create h5open h5read h5readAttribute h5write h5writeAttribute ldl plotAddErrorBar plotAddSurface plotCDFEmpirical plotSetColormap plotSetContourLabels plotSetLegendFont plotSetTextInterpreter plotSetXTicCount plotSetYTicCount plotSetZLevels powerm strjoin sylvester strtrim",literal:"DB_AFTER_LAST_ROW DB_ALL_TABLES DB_BATCH_OPERATIONS DB_BEFORE_FIRST_ROW DB_BLOB DB_EVENT_NOTIFICATIONS DB_FINISH_QUERY DB_HIGH_PRECISION DB_LAST_INSERT_ID DB_LOW_PRECISION_DOUBLE DB_LOW_PRECISION_INT32 DB_LOW_PRECISION_INT64 DB_LOW_PRECISION_NUMBERS DB_MULTIPLE_RESULT_SETS DB_NAMED_PLACEHOLDERS DB_POSITIONAL_PLACEHOLDERS DB_PREPARED_QUERIES DB_QUERY_SIZE DB_SIMPLE_LOCKING DB_SYSTEM_TABLES DB_TABLES DB_TRANSACTIONS DB_UNICODE DB_VIEWS __STDIN __STDOUT __STDERR __FILE_DIR"},n=e.COMMENT("@","@"),a={className:"meta",begin:"#",end:"$",keywords:{keyword:"define definecs|10 undef ifdef ifndef iflight ifdllcall ifmac ifos2win ifunix else endif lineson linesoff srcfile srcline"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",keywords:{keyword:"include"},contains:[{className:"string",begin:'"',end:'"',illegal:"\\n"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n]},i={begin:/\bstruct\s+/,end:/\s/,keywords:"struct",contains:[{className:"type",begin:e.UNDERSCORE_IDENT_RE,relevance:0}]},r=[{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,endsWithParent:!0,relevance:0,contains:[{className:"literal",begin:/\.\.\./},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,i]}],s={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},o=function(t,a,i){let o=e.inherit({className:"function",beginKeywords:t,end:a,excludeEnd:!0,contains:[].concat(r)},i||{});return o.contains.push(s),o.contains.push(e.C_NUMBER_MODE),o.contains.push(e.C_BLOCK_COMMENT_MODE),o.contains.push(n),o},l={className:"built_in",begin:"\\b("+t.built_in.split(" ").join("|")+")\\b"},c={className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE],relevance:0},d={begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,keywords:t,relevance:0,contains:[{beginKeywords:t.keyword},l,{className:"built_in",begin:e.UNDERSCORE_IDENT_RE,relevance:0}]},_={begin:/\(/,end:/\)/,relevance:0,keywords:{built_in:t.built_in,literal:t.literal},contains:[e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,l,d,c,"self"]};return d.contains.push(_),{name:"GAUSS",aliases:["gss"],case_insensitive:!0,keywords:t,illegal:/(\{[%#]|[%#]\}| <- )/,contains:[e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,c,a,{className:"keyword",begin:/\bexternal (matrix|string|array|sparse matrix|struct|proc|keyword|fn)/},o("proc keyword",";"),o("fn","="),{beginKeywords:"for threadfor",end:/;/,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE,n,_]},{variants:[{begin:e.UNDERSCORE_IDENT_RE+"\\."+e.UNDERSCORE_IDENT_RE},{begin:e.UNDERSCORE_IDENT_RE+"\\s*="}],relevance:0},d,i]}}),tB)),r4.registerLanguage("gcode",(tH||(tH=1,tY=function(e){let t=e.inherit(e.C_NUMBER_MODE,{begin:"([-+]?((\\.\\d+)|(\\d+)(\\.\\d*)?))|"+e.C_NUMBER_RE});return{name:"G-code (ISO 6983)",aliases:["nc"],case_insensitive:!0,keywords:{$pattern:"[A-Z_][A-Z0-9_.]*",keyword:"IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR"},contains:[{className:"meta",begin:"%"},{className:"meta",begin:"([O])([0-9]+)"}].concat([e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(/\(/,/\)/),t,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"name",begin:"([G])([0-9]+\\.?[0-9]?)"},{className:"name",begin:"([M])([0-9]+\\.?[0-9]?)"},{className:"attr",begin:"(VC|VS|#)",end:"(\\d+)"},{className:"attr",begin:"(VZOFX|VZOFY|VZOFZ)"},{className:"built_in",begin:"(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)",contains:[t],end:"\\]"},{className:"symbol",variants:[{begin:"N",end:"\\d+",illegal:"\\W"}]}])}}),tY)),r4.registerLanguage("gherkin",(tz||(tz=1,tV=function(e){return{name:"Gherkin",aliases:["feature"],keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",contains:[{className:"symbol",begin:"\\*",relevance:0},{className:"meta",begin:"@[^@\\s]+"},{begin:"\\|",end:"\\|\\w*$",contains:[{className:"string",begin:"[^|]+"}]},{className:"variable",begin:"<",end:">"},e.HASH_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},e.QUOTE_STRING_MODE]}}),tV)),r4.registerLanguage("glsl",(t$||(t$=1,tq=function(e){return{name:"GLSL",keywords:{keyword:"break continue discard do else for if return while switch case default attribute binding buffer ccw centroid centroid varying coherent column_major const cw depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip triangles triangles_adjacency uniform varying vertices volatile writeonly",type:"atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void",built_in:"gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow",literal:"true false"},illegal:'"',contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"}]}}),tq)),r4.registerLanguage("gml",(tQ||(tQ=1,tW=function(e){return{name:"GML",case_insensitive:!1,keywords:{keyword:["#endregion","#macro","#region","and","begin","break","case","constructor","continue","default","delete","div","do","else","end","enum","exit","for","function","globalvar","if","mod","not","or","repeat","return","switch","then","until","var","while","with","xor"],built_in:["abs","achievement_available","achievement_event","achievement_get_challenges","achievement_get_info","achievement_get_pic","achievement_increment","achievement_load_friends","achievement_load_leaderboard","achievement_load_progress","achievement_login","achievement_login_status","achievement_logout","achievement_post","achievement_post_score","achievement_reset","achievement_send_challenge","achievement_show","achievement_show_achievements","achievement_show_challenge_notifications","achievement_show_leaderboards","action_inherited","action_kill_object","ads_disable","ads_enable","ads_engagement_active","ads_engagement_available","ads_engagement_launch","ads_event","ads_event_preload","ads_get_display_height","ads_get_display_width","ads_interstitial_available","ads_interstitial_display","ads_move","ads_set_reward_callback","ads_setup","alarm_get","alarm_set","analytics_event","analytics_event_ext","angle_difference","ansi_char","application_get_position","application_surface_draw_enable","application_surface_enable","application_surface_is_enabled","arccos","arcsin","arctan","arctan2","array_copy","array_create","array_delete","array_equals","array_height_2d","array_insert","array_length","array_length_1d","array_length_2d","array_pop","array_push","array_resize","array_sort","asset_get_index","asset_get_type","audio_channel_num","audio_create_buffer_sound","audio_create_play_queue","audio_create_stream","audio_create_sync_group","audio_debug","audio_destroy_stream","audio_destroy_sync_group","audio_emitter_create","audio_emitter_exists","audio_emitter_falloff","audio_emitter_free","audio_emitter_gain","audio_emitter_get_gain","audio_emitter_get_listener_mask","audio_emitter_get_pitch","audio_emitter_get_vx","audio_emitter_get_vy","audio_emitter_get_vz","audio_emitter_get_x","audio_emitter_get_y","audio_emitter_get_z","audio_emitter_pitch","audio_emitter_position","audio_emitter_set_listener_mask","audio_emitter_velocity","audio_exists","audio_falloff_set_model","audio_free_buffer_sound","audio_free_play_queue","audio_get_listener_count","audio_get_listener_info","audio_get_listener_mask","audio_get_master_gain","audio_get_name","audio_get_recorder_count","audio_get_recorder_info","audio_get_type","audio_group_is_loaded","audio_group_load","audio_group_load_progress","audio_group_name","audio_group_set_gain","audio_group_stop_all","audio_group_unload","audio_is_paused","audio_is_playing","audio_listener_get_data","audio_listener_orientation","audio_listener_position","audio_listener_set_orientation","audio_listener_set_position","audio_listener_set_velocity","audio_listener_velocity","audio_master_gain","audio_music_gain","audio_music_is_playing","audio_pause_all","audio_pause_music","audio_pause_sound","audio_pause_sync_group","audio_play_in_sync_group","audio_play_music","audio_play_sound","audio_play_sound_at","audio_play_sound_on","audio_queue_sound","audio_resume_all","audio_resume_music","audio_resume_sound","audio_resume_sync_group","audio_set_listener_mask","audio_set_master_gain","audio_sound_gain","audio_sound_get_gain","audio_sound_get_listener_mask","audio_sound_get_pitch","audio_sound_get_track_position","audio_sound_length","audio_sound_pitch","audio_sound_set_listener_mask","audio_sound_set_track_position","audio_start_recording","audio_start_sync_group","audio_stop_all","audio_stop_music","audio_stop_recording","audio_stop_sound","audio_stop_sync_group","audio_sync_group_debug","audio_sync_group_get_track_pos","audio_sync_group_is_playing","audio_system","background_get_height","background_get_width","base64_decode","base64_encode","browser_input_capture","buffer_async_group_begin","buffer_async_group_end","buffer_async_group_option","buffer_base64_decode","buffer_base64_decode_ext","buffer_base64_encode","buffer_copy","buffer_copy_from_vertex_buffer","buffer_create","buffer_create_from_vertex_buffer","buffer_create_from_vertex_buffer_ext","buffer_delete","buffer_exists","buffer_fill","buffer_get_address","buffer_get_alignment","buffer_get_size","buffer_get_surface","buffer_get_type","buffer_load","buffer_load_async","buffer_load_ext","buffer_load_partial","buffer_md5","buffer_peek","buffer_poke","buffer_read","buffer_resize","buffer_save","buffer_save_async","buffer_save_ext","buffer_seek","buffer_set_surface","buffer_sha1","buffer_sizeof","buffer_tell","buffer_write","camera_apply","camera_create","camera_create_view","camera_destroy","camera_get_active","camera_get_begin_script","camera_get_default","camera_get_end_script","camera_get_proj_mat","camera_get_update_script","camera_get_view_angle","camera_get_view_border_x","camera_get_view_border_y","camera_get_view_height","camera_get_view_mat","camera_get_view_speed_x","camera_get_view_speed_y","camera_get_view_target","camera_get_view_width","camera_get_view_x","camera_get_view_y","camera_set_begin_script","camera_set_default","camera_set_end_script","camera_set_proj_mat","camera_set_update_script","camera_set_view_angle","camera_set_view_border","camera_set_view_mat","camera_set_view_pos","camera_set_view_size","camera_set_view_speed","camera_set_view_target","ceil","choose","chr","clamp","clickable_add","clickable_add_ext","clickable_change","clickable_change_ext","clickable_delete","clickable_exists","clickable_set_style","clipboard_get_text","clipboard_has_text","clipboard_set_text","cloud_file_save","cloud_string_save","cloud_synchronise","code_is_compiled","collision_circle","collision_circle_list","collision_ellipse","collision_ellipse_list","collision_line","collision_line_list","collision_point","collision_point_list","collision_rectangle","collision_rectangle_list","color_get_blue","color_get_green","color_get_hue","color_get_red","color_get_saturation","color_get_value","colour_get_blue","colour_get_green","colour_get_hue","colour_get_red","colour_get_saturation","colour_get_value","cos","darccos","darcsin","darctan","darctan2","date_compare_date","date_compare_datetime","date_compare_time","date_create_datetime","date_current_datetime","date_date_of","date_date_string","date_datetime_string","date_day_span","date_days_in_month","date_days_in_year","date_get_day","date_get_day_of_year","date_get_hour","date_get_hour_of_year","date_get_minute","date_get_minute_of_year","date_get_month","date_get_second","date_get_second_of_year","date_get_timezone","date_get_week","date_get_weekday","date_get_year","date_hour_span","date_inc_day","date_inc_hour","date_inc_minute","date_inc_month","date_inc_second","date_inc_week","date_inc_year","date_is_today","date_leap_year","date_minute_span","date_month_span","date_second_span","date_set_timezone","date_time_of","date_time_string","date_valid_datetime","date_week_span","date_year_span","dcos","debug_event","debug_get_callstack","degtorad","device_get_tilt_x","device_get_tilt_y","device_get_tilt_z","device_is_keypad_open","device_mouse_check_button","device_mouse_check_button_pressed","device_mouse_check_button_released","device_mouse_dbclick_enable","device_mouse_raw_x","device_mouse_raw_y","device_mouse_x","device_mouse_x_to_gui","device_mouse_y","device_mouse_y_to_gui","directory_create","directory_destroy","directory_exists","display_get_dpi_x","display_get_dpi_y","display_get_gui_height","display_get_gui_width","display_get_height","display_get_orientation","display_get_sleep_margin","display_get_timing_method","display_get_width","display_mouse_get_x","display_mouse_get_y","display_mouse_set","display_reset","display_set_gui_maximise","display_set_gui_maximize","display_set_gui_size","display_set_sleep_margin","display_set_timing_method","display_set_ui_visibility","distance_to_object","distance_to_point","dot_product","dot_product_3d","dot_product_3d_normalised","dot_product_3d_normalized","dot_product_normalised","dot_product_normalized","draw_arrow","draw_background","draw_background_ext","draw_background_part_ext","draw_background_tiled","draw_button","draw_circle","draw_circle_color","draw_circle_colour","draw_clear","draw_clear_alpha","draw_ellipse","draw_ellipse_color","draw_ellipse_colour","draw_enable_alphablend","draw_enable_drawevent","draw_enable_swf_aa","draw_flush","draw_get_alpha","draw_get_color","draw_get_colour","draw_get_lighting","draw_get_swf_aa_level","draw_getpixel","draw_getpixel_ext","draw_healthbar","draw_highscore","draw_light_define_ambient","draw_light_define_direction","draw_light_define_point","draw_light_enable","draw_light_get","draw_light_get_ambient","draw_line","draw_line_color","draw_line_colour","draw_line_width","draw_line_width_color","draw_line_width_colour","draw_path","draw_point","draw_point_color","draw_point_colour","draw_primitive_begin","draw_primitive_begin_texture","draw_primitive_end","draw_rectangle","draw_rectangle_color","draw_rectangle_colour","draw_roundrect","draw_roundrect_color","draw_roundrect_color_ext","draw_roundrect_colour","draw_roundrect_colour_ext","draw_roundrect_ext","draw_self","draw_set_alpha","draw_set_alpha_test","draw_set_alpha_test_ref_value","draw_set_blend_mode","draw_set_blend_mode_ext","draw_set_circle_precision","draw_set_color","draw_set_color_write_enable","draw_set_colour","draw_set_font","draw_set_halign","draw_set_lighting","draw_set_swf_aa_level","draw_set_valign","draw_skeleton","draw_skeleton_collision","draw_skeleton_instance","draw_skeleton_time","draw_sprite","draw_sprite_ext","draw_sprite_general","draw_sprite_part","draw_sprite_part_ext","draw_sprite_pos","draw_sprite_stretched","draw_sprite_stretched_ext","draw_sprite_tiled","draw_sprite_tiled_ext","draw_surface","draw_surface_ext","draw_surface_general","draw_surface_part","draw_surface_part_ext","draw_surface_stretched","draw_surface_stretched_ext","draw_surface_tiled","draw_surface_tiled_ext","draw_text","draw_text_color","draw_text_colour","draw_text_ext","draw_text_ext_color","draw_text_ext_colour","draw_text_ext_transformed","draw_text_ext_transformed_color","draw_text_ext_transformed_colour","draw_text_transformed","draw_text_transformed_color","draw_text_transformed_colour","draw_texture_flush","draw_tile","draw_tilemap","draw_triangle","draw_triangle_color","draw_triangle_colour","draw_vertex","draw_vertex_color","draw_vertex_colour","draw_vertex_texture","draw_vertex_texture_color","draw_vertex_texture_colour","ds_exists","ds_grid_add","ds_grid_add_disk","ds_grid_add_grid_region","ds_grid_add_region","ds_grid_clear","ds_grid_copy","ds_grid_create","ds_grid_destroy","ds_grid_get","ds_grid_get_disk_max","ds_grid_get_disk_mean","ds_grid_get_disk_min","ds_grid_get_disk_sum","ds_grid_get_max","ds_grid_get_mean","ds_grid_get_min","ds_grid_get_sum","ds_grid_height","ds_grid_multiply","ds_grid_multiply_disk","ds_grid_multiply_grid_region","ds_grid_multiply_region","ds_grid_read","ds_grid_resize","ds_grid_set","ds_grid_set_disk","ds_grid_set_grid_region","ds_grid_set_region","ds_grid_shuffle","ds_grid_sort","ds_grid_value_disk_exists","ds_grid_value_disk_x","ds_grid_value_disk_y","ds_grid_value_exists","ds_grid_value_x","ds_grid_value_y","ds_grid_width","ds_grid_write","ds_list_add","ds_list_clear","ds_list_copy","ds_list_create","ds_list_delete","ds_list_destroy","ds_list_empty","ds_list_find_index","ds_list_find_value","ds_list_insert","ds_list_mark_as_list","ds_list_mark_as_map","ds_list_read","ds_list_replace","ds_list_set","ds_list_shuffle","ds_list_size","ds_list_sort","ds_list_write","ds_map_add","ds_map_add_list","ds_map_add_map","ds_map_clear","ds_map_copy","ds_map_create","ds_map_delete","ds_map_destroy","ds_map_empty","ds_map_exists","ds_map_find_first","ds_map_find_last","ds_map_find_next","ds_map_find_previous","ds_map_find_value","ds_map_read","ds_map_replace","ds_map_replace_list","ds_map_replace_map","ds_map_secure_load","ds_map_secure_load_buffer","ds_map_secure_save","ds_map_secure_save_buffer","ds_map_set","ds_map_size","ds_map_write","ds_priority_add","ds_priority_change_priority","ds_priority_clear","ds_priority_copy","ds_priority_create","ds_priority_delete_max","ds_priority_delete_min","ds_priority_delete_value","ds_priority_destroy","ds_priority_empty","ds_priority_find_max","ds_priority_find_min","ds_priority_find_priority","ds_priority_read","ds_priority_size","ds_priority_write","ds_queue_clear","ds_queue_copy","ds_queue_create","ds_queue_dequeue","ds_queue_destroy","ds_queue_empty","ds_queue_enqueue","ds_queue_head","ds_queue_read","ds_queue_size","ds_queue_tail","ds_queue_write","ds_set_precision","ds_stack_clear","ds_stack_copy","ds_stack_create","ds_stack_destroy","ds_stack_empty","ds_stack_pop","ds_stack_push","ds_stack_read","ds_stack_size","ds_stack_top","ds_stack_write","dsin","dtan","effect_clear","effect_create_above","effect_create_below","environment_get_variable","event_inherited","event_perform","event_perform_object","event_user","exp","external_call","external_define","external_free","facebook_accesstoken","facebook_check_permission","facebook_dialog","facebook_graph_request","facebook_init","facebook_launch_offerwall","facebook_login","facebook_logout","facebook_post_message","facebook_request_publish_permissions","facebook_request_read_permissions","facebook_send_invite","facebook_status","facebook_user_id","file_attributes","file_bin_close","file_bin_open","file_bin_position","file_bin_read_byte","file_bin_rewrite","file_bin_seek","file_bin_size","file_bin_write_byte","file_copy","file_delete","file_exists","file_find_close","file_find_first","file_find_next","file_rename","file_text_close","file_text_eof","file_text_eoln","file_text_open_append","file_text_open_from_string","file_text_open_read","file_text_open_write","file_text_read_real","file_text_read_string","file_text_readln","file_text_write_real","file_text_write_string","file_text_writeln","filename_change_ext","filename_dir","filename_drive","filename_ext","filename_name","filename_path","floor","font_add","font_add_enable_aa","font_add_get_enable_aa","font_add_sprite","font_add_sprite_ext","font_delete","font_exists","font_get_bold","font_get_first","font_get_fontname","font_get_italic","font_get_last","font_get_name","font_get_size","font_get_texture","font_get_uvs","font_replace","font_replace_sprite","font_replace_sprite_ext","font_set_cache_size","font_texture_page_size","frac","game_end","game_get_speed","game_load","game_load_buffer","game_restart","game_save","game_save_buffer","game_set_speed","gamepad_axis_count","gamepad_axis_value","gamepad_button_check","gamepad_button_check_pressed","gamepad_button_check_released","gamepad_button_count","gamepad_button_value","gamepad_get_axis_deadzone","gamepad_get_button_threshold","gamepad_get_description","gamepad_get_device_count","gamepad_is_connected","gamepad_is_supported","gamepad_set_axis_deadzone","gamepad_set_button_threshold","gamepad_set_color","gamepad_set_colour","gamepad_set_vibration","gesture_double_tap_distance","gesture_double_tap_time","gesture_drag_distance","gesture_drag_time","gesture_flick_speed","gesture_get_double_tap_distance","gesture_get_double_tap_time","gesture_get_drag_distance","gesture_get_drag_time","gesture_get_flick_speed","gesture_get_pinch_angle_away","gesture_get_pinch_angle_towards","gesture_get_pinch_distance","gesture_get_rotate_angle","gesture_get_rotate_time","gesture_get_tap_count","gesture_pinch_angle_away","gesture_pinch_angle_towards","gesture_pinch_distance","gesture_rotate_angle","gesture_rotate_time","gesture_tap_count","get_integer","get_integer_async","get_login_async","get_open_filename","get_open_filename_ext","get_save_filename","get_save_filename_ext","get_string","get_string_async","get_timer","gml_pragma","gml_release_mode","gpu_get_alphatestenable","gpu_get_alphatestfunc","gpu_get_alphatestref","gpu_get_blendenable","gpu_get_blendmode","gpu_get_blendmode_dest","gpu_get_blendmode_destalpha","gpu_get_blendmode_ext","gpu_get_blendmode_ext_sepalpha","gpu_get_blendmode_src","gpu_get_blendmode_srcalpha","gpu_get_colorwriteenable","gpu_get_colourwriteenable","gpu_get_cullmode","gpu_get_fog","gpu_get_lightingenable","gpu_get_state","gpu_get_tex_filter","gpu_get_tex_filter_ext","gpu_get_tex_max_aniso","gpu_get_tex_max_aniso_ext","gpu_get_tex_max_mip","gpu_get_tex_max_mip_ext","gpu_get_tex_min_mip","gpu_get_tex_min_mip_ext","gpu_get_tex_mip_bias","gpu_get_tex_mip_bias_ext","gpu_get_tex_mip_enable","gpu_get_tex_mip_enable_ext","gpu_get_tex_mip_filter","gpu_get_tex_mip_filter_ext","gpu_get_tex_repeat","gpu_get_tex_repeat_ext","gpu_get_texfilter","gpu_get_texfilter_ext","gpu_get_texrepeat","gpu_get_texrepeat_ext","gpu_get_zfunc","gpu_get_ztestenable","gpu_get_zwriteenable","gpu_pop_state","gpu_push_state","gpu_set_alphatestenable","gpu_set_alphatestfunc","gpu_set_alphatestref","gpu_set_blendenable","gpu_set_blendmode","gpu_set_blendmode_ext","gpu_set_blendmode_ext_sepalpha","gpu_set_colorwriteenable","gpu_set_colourwriteenable","gpu_set_cullmode","gpu_set_fog","gpu_set_lightingenable","gpu_set_state","gpu_set_tex_filter","gpu_set_tex_filter_ext","gpu_set_tex_max_aniso","gpu_set_tex_max_aniso_ext","gpu_set_tex_max_mip","gpu_set_tex_max_mip_ext","gpu_set_tex_min_mip","gpu_set_tex_min_mip_ext","gpu_set_tex_mip_bias","gpu_set_tex_mip_bias_ext","gpu_set_tex_mip_enable","gpu_set_tex_mip_enable_ext","gpu_set_tex_mip_filter","gpu_set_tex_mip_filter_ext","gpu_set_tex_repeat","gpu_set_tex_repeat_ext","gpu_set_texfilter","gpu_set_texfilter_ext","gpu_set_texrepeat","gpu_set_texrepeat_ext","gpu_set_zfunc","gpu_set_ztestenable","gpu_set_zwriteenable","highscore_add","highscore_clear","highscore_name","highscore_value","http_get","http_get_file","http_post_string","http_request","iap_acquire","iap_activate","iap_consume","iap_enumerate_products","iap_product_details","iap_purchase_details","iap_restore_all","iap_status","ini_close","ini_key_delete","ini_key_exists","ini_open","ini_open_from_string","ini_read_real","ini_read_string","ini_section_delete","ini_section_exists","ini_write_real","ini_write_string","instance_activate_all","instance_activate_layer","instance_activate_object","instance_activate_region","instance_change","instance_copy","instance_create","instance_create_depth","instance_create_layer","instance_deactivate_all","instance_deactivate_layer","instance_deactivate_object","instance_deactivate_region","instance_destroy","instance_exists","instance_find","instance_furthest","instance_id_get","instance_nearest","instance_number","instance_place","instance_place_list","instance_position","instance_position_list","int64","io_clear","irandom","irandom_range","is_array","is_bool","is_infinity","is_int32","is_int64","is_matrix","is_method","is_nan","is_numeric","is_ptr","is_real","is_string","is_struct","is_undefined","is_vec3","is_vec4","json_decode","json_encode","keyboard_check","keyboard_check_direct","keyboard_check_pressed","keyboard_check_released","keyboard_clear","keyboard_get_map","keyboard_get_numlock","keyboard_key_press","keyboard_key_release","keyboard_set_map","keyboard_set_numlock","keyboard_unset_map","keyboard_virtual_height","keyboard_virtual_hide","keyboard_virtual_show","keyboard_virtual_status","layer_add_instance","layer_background_alpha","layer_background_blend","layer_background_change","layer_background_create","layer_background_destroy","layer_background_exists","layer_background_get_alpha","layer_background_get_blend","layer_background_get_htiled","layer_background_get_id","layer_background_get_index","layer_background_get_speed","layer_background_get_sprite","layer_background_get_stretch","layer_background_get_visible","layer_background_get_vtiled","layer_background_get_xscale","layer_background_get_yscale","layer_background_htiled","layer_background_index","layer_background_speed","layer_background_sprite","layer_background_stretch","layer_background_visible","layer_background_vtiled","layer_background_xscale","layer_background_yscale","layer_create","layer_depth","layer_destroy","layer_destroy_instances","layer_element_move","layer_exists","layer_force_draw_depth","layer_get_all","layer_get_all_elements","layer_get_depth","layer_get_element_layer","layer_get_element_type","layer_get_forced_depth","layer_get_hspeed","layer_get_id","layer_get_id_at_depth","layer_get_name","layer_get_script_begin","layer_get_script_end","layer_get_shader","layer_get_target_room","layer_get_visible","layer_get_vspeed","layer_get_x","layer_get_y","layer_has_instance","layer_hspeed","layer_instance_get_instance","layer_is_draw_depth_forced","layer_reset_target_room","layer_script_begin","layer_script_end","layer_set_target_room","layer_set_visible","layer_shader","layer_sprite_alpha","layer_sprite_angle","layer_sprite_blend","layer_sprite_change","layer_sprite_create","layer_sprite_destroy","layer_sprite_exists","layer_sprite_get_alpha","layer_sprite_get_angle","layer_sprite_get_blend","layer_sprite_get_id","layer_sprite_get_index","layer_sprite_get_speed","layer_sprite_get_sprite","layer_sprite_get_x","layer_sprite_get_xscale","layer_sprite_get_y","layer_sprite_get_yscale","layer_sprite_index","layer_sprite_speed","layer_sprite_x","layer_sprite_xscale","layer_sprite_y","layer_sprite_yscale","layer_tile_alpha","layer_tile_blend","layer_tile_change","layer_tile_create","layer_tile_destroy","layer_tile_exists","layer_tile_get_alpha","layer_tile_get_blend","layer_tile_get_region","layer_tile_get_sprite","layer_tile_get_visible","layer_tile_get_x","layer_tile_get_xscale","layer_tile_get_y","layer_tile_get_yscale","layer_tile_region","layer_tile_visible","layer_tile_x","layer_tile_xscale","layer_tile_y","layer_tile_yscale","layer_tilemap_create","layer_tilemap_destroy","layer_tilemap_exists","layer_tilemap_get_id","layer_vspeed","layer_x","layer_y","lengthdir_x","lengthdir_y","lerp","ln","load_csv","log10","log2","logn","make_color_hsv","make_color_rgb","make_colour_hsv","make_colour_rgb","math_get_epsilon","math_set_epsilon","matrix_build","matrix_build_identity","matrix_build_lookat","matrix_build_projection_ortho","matrix_build_projection_perspective","matrix_build_projection_perspective_fov","matrix_get","matrix_multiply","matrix_set","matrix_stack_clear","matrix_stack_is_empty","matrix_stack_multiply","matrix_stack_pop","matrix_stack_push","matrix_stack_set","matrix_stack_top","matrix_transform_vertex","max","md5_file","md5_string_unicode","md5_string_utf8","mean","median","merge_color","merge_colour","min","motion_add","motion_set","mouse_check_button","mouse_check_button_pressed","mouse_check_button_released","mouse_clear","mouse_wheel_down","mouse_wheel_up","move_bounce_all","move_bounce_solid","move_contact_all","move_contact_solid","move_outside_all","move_outside_solid","move_random","move_snap","move_towards_point","move_wrap","mp_grid_add_cell","mp_grid_add_instances","mp_grid_add_rectangle","mp_grid_clear_all","mp_grid_clear_cell","mp_grid_clear_rectangle","mp_grid_create","mp_grid_destroy","mp_grid_draw","mp_grid_get_cell","mp_grid_path","mp_grid_to_ds_grid","mp_linear_path","mp_linear_path_object","mp_linear_step","mp_linear_step_object","mp_potential_path","mp_potential_path_object","mp_potential_settings","mp_potential_step","mp_potential_step_object","network_connect","network_connect_raw","network_create_server","network_create_server_raw","network_create_socket","network_create_socket_ext","network_destroy","network_resolve","network_send_broadcast","network_send_packet","network_send_raw","network_send_udp","network_send_udp_raw","network_set_config","network_set_timeout","object_exists","object_get_depth","object_get_mask","object_get_name","object_get_parent","object_get_persistent","object_get_physics","object_get_solid","object_get_sprite","object_get_visible","object_is_ancestor","object_set_mask","object_set_persistent","object_set_solid","object_set_sprite","object_set_visible","ord","os_get_config","os_get_info","os_get_language","os_get_region","os_is_network_connected","os_is_paused","os_lock_orientation","os_powersave_enable","parameter_count","parameter_string","part_emitter_burst","part_emitter_clear","part_emitter_create","part_emitter_destroy","part_emitter_destroy_all","part_emitter_exists","part_emitter_region","part_emitter_stream","part_particles_clear","part_particles_count","part_particles_create","part_particles_create_color","part_particles_create_colour","part_system_automatic_draw","part_system_automatic_update","part_system_clear","part_system_create","part_system_create_layer","part_system_depth","part_system_destroy","part_system_draw_order","part_system_drawit","part_system_exists","part_system_get_layer","part_system_layer","part_system_position","part_system_update","part_type_alpha1","part_type_alpha2","part_type_alpha3","part_type_blend","part_type_clear","part_type_color1","part_type_color2","part_type_color3","part_type_color_hsv","part_type_color_mix","part_type_color_rgb","part_type_colour1","part_type_colour2","part_type_colour3","part_type_colour_hsv","part_type_colour_mix","part_type_colour_rgb","part_type_create","part_type_death","part_type_destroy","part_type_direction","part_type_exists","part_type_gravity","part_type_life","part_type_orientation","part_type_scale","part_type_shape","part_type_size","part_type_speed","part_type_sprite","part_type_step","path_add","path_add_point","path_append","path_assign","path_change_point","path_clear_points","path_delete","path_delete_point","path_duplicate","path_end","path_exists","path_flip","path_get_closed","path_get_kind","path_get_length","path_get_name","path_get_number","path_get_point_speed","path_get_point_x","path_get_point_y","path_get_precision","path_get_speed","path_get_time","path_get_x","path_get_y","path_insert_point","path_mirror","path_rescale","path_reverse","path_rotate","path_set_closed","path_set_kind","path_set_precision","path_shift","path_start","physics_apply_angular_impulse","physics_apply_force","physics_apply_impulse","physics_apply_local_force","physics_apply_local_impulse","physics_apply_torque","physics_draw_debug","physics_fixture_add_point","physics_fixture_bind","physics_fixture_bind_ext","physics_fixture_create","physics_fixture_delete","physics_fixture_set_angular_damping","physics_fixture_set_awake","physics_fixture_set_box_shape","physics_fixture_set_chain_shape","physics_fixture_set_circle_shape","physics_fixture_set_collision_group","physics_fixture_set_density","physics_fixture_set_edge_shape","physics_fixture_set_friction","physics_fixture_set_kinematic","physics_fixture_set_linear_damping","physics_fixture_set_polygon_shape","physics_fixture_set_restitution","physics_fixture_set_sensor","physics_get_density","physics_get_friction","physics_get_restitution","physics_joint_delete","physics_joint_distance_create","physics_joint_enable_motor","physics_joint_friction_create","physics_joint_gear_create","physics_joint_get_value","physics_joint_prismatic_create","physics_joint_pulley_create","physics_joint_revolute_create","physics_joint_rope_create","physics_joint_set_value","physics_joint_weld_create","physics_joint_wheel_create","physics_mass_properties","physics_particle_count","physics_particle_create","physics_particle_delete","physics_particle_delete_region_box","physics_particle_delete_region_circle","physics_particle_delete_region_poly","physics_particle_draw","physics_particle_draw_ext","physics_particle_get_damping","physics_particle_get_data","physics_particle_get_data_particle","physics_particle_get_density","physics_particle_get_gravity_scale","physics_particle_get_group_flags","physics_particle_get_max_count","physics_particle_get_radius","physics_particle_group_add_point","physics_particle_group_begin","physics_particle_group_box","physics_particle_group_circle","physics_particle_group_count","physics_particle_group_delete","physics_particle_group_end","physics_particle_group_get_ang_vel","physics_particle_group_get_angle","physics_particle_group_get_centre_x","physics_particle_group_get_centre_y","physics_particle_group_get_data","physics_particle_group_get_inertia","physics_particle_group_get_mass","physics_particle_group_get_vel_x","physics_particle_group_get_vel_y","physics_particle_group_get_x","physics_particle_group_get_y","physics_particle_group_join","physics_particle_group_polygon","physics_particle_set_category_flags","physics_particle_set_damping","physics_particle_set_density","physics_particle_set_flags","physics_particle_set_gravity_scale","physics_particle_set_group_flags","physics_particle_set_max_count","physics_particle_set_radius","physics_pause_enable","physics_remove_fixture","physics_set_density","physics_set_friction","physics_set_restitution","physics_test_overlap","physics_world_create","physics_world_draw_debug","physics_world_gravity","physics_world_update_iterations","physics_world_update_speed","place_empty","place_free","place_meeting","place_snapped","point_direction","point_distance","point_distance_3d","point_in_circle","point_in_rectangle","point_in_triangle","position_change","position_destroy","position_empty","position_meeting","power","ptr","push_cancel_local_notification","push_get_first_local_notification","push_get_next_local_notification","push_local_notification","radtodeg","random","random_get_seed","random_range","random_set_seed","randomise","randomize","real","rectangle_in_circle","rectangle_in_rectangle","rectangle_in_triangle","room_add","room_assign","room_duplicate","room_exists","room_get_camera","room_get_name","room_get_viewport","room_goto","room_goto_next","room_goto_previous","room_instance_add","room_instance_clear","room_next","room_previous","room_restart","room_set_background_color","room_set_background_colour","room_set_camera","room_set_height","room_set_persistent","room_set_view","room_set_view_enabled","room_set_viewport","room_set_width","round","screen_save","screen_save_part","script_execute","script_exists","script_get_name","sha1_file","sha1_string_unicode","sha1_string_utf8","shader_current","shader_enable_corner_id","shader_get_name","shader_get_sampler_index","shader_get_uniform","shader_is_compiled","shader_reset","shader_set","shader_set_uniform_f","shader_set_uniform_f_array","shader_set_uniform_i","shader_set_uniform_i_array","shader_set_uniform_matrix","shader_set_uniform_matrix_array","shaders_are_supported","shop_leave_rating","show_debug_message","show_debug_overlay","show_error","show_message","show_message_async","show_question","show_question_async","sign","sin","skeleton_animation_clear","skeleton_animation_get","skeleton_animation_get_duration","skeleton_animation_get_ext","skeleton_animation_get_frame","skeleton_animation_get_frames","skeleton_animation_list","skeleton_animation_mix","skeleton_animation_set","skeleton_animation_set_ext","skeleton_animation_set_frame","skeleton_attachment_create","skeleton_attachment_get","skeleton_attachment_set","skeleton_bone_data_get","skeleton_bone_data_set","skeleton_bone_state_get","skeleton_bone_state_set","skeleton_collision_draw_set","skeleton_get_bounds","skeleton_get_minmax","skeleton_get_num_bounds","skeleton_skin_get","skeleton_skin_list","skeleton_skin_set","skeleton_slot_data","sprite_add","sprite_add_from_surface","sprite_assign","sprite_collision_mask","sprite_create_from_surface","sprite_delete","sprite_duplicate","sprite_exists","sprite_flush","sprite_flush_multi","sprite_get_bbox_bottom","sprite_get_bbox_left","sprite_get_bbox_right","sprite_get_bbox_top","sprite_get_height","sprite_get_name","sprite_get_number","sprite_get_speed","sprite_get_speed_type","sprite_get_texture","sprite_get_tpe","sprite_get_uvs","sprite_get_width","sprite_get_xoffset","sprite_get_yoffset","sprite_merge","sprite_prefetch","sprite_prefetch_multi","sprite_replace","sprite_save","sprite_save_strip","sprite_set_alpha_from_sprite","sprite_set_cache_size","sprite_set_cache_size_ext","sprite_set_offset","sprite_set_speed","sqr","sqrt","steam_activate_overlay","steam_activate_overlay_browser","steam_activate_overlay_store","steam_activate_overlay_user","steam_available_languages","steam_clear_achievement","steam_create_leaderboard","steam_current_game_language","steam_download_friends_scores","steam_download_scores","steam_download_scores_around_user","steam_file_delete","steam_file_exists","steam_file_persisted","steam_file_read","steam_file_share","steam_file_size","steam_file_write","steam_file_write_file","steam_get_achievement","steam_get_app_id","steam_get_persona_name","steam_get_quota_free","steam_get_quota_total","steam_get_stat_avg_rate","steam_get_stat_float","steam_get_stat_int","steam_get_user_account_id","steam_get_user_persona_name","steam_get_user_steam_id","steam_initialised","steam_is_cloud_enabled_for_account","steam_is_cloud_enabled_for_app","steam_is_overlay_activated","steam_is_overlay_enabled","steam_is_screenshot_requested","steam_is_user_logged_on","steam_reset_all_stats","steam_reset_all_stats_achievements","steam_send_screenshot","steam_set_achievement","steam_set_stat_avg_rate","steam_set_stat_float","steam_set_stat_int","steam_stats_ready","steam_ugc_create_item","steam_ugc_create_query_all","steam_ugc_create_query_all_ex","steam_ugc_create_query_user","steam_ugc_create_query_user_ex","steam_ugc_download","steam_ugc_get_item_install_info","steam_ugc_get_item_update_info","steam_ugc_get_item_update_progress","steam_ugc_get_subscribed_items","steam_ugc_num_subscribed_items","steam_ugc_query_add_excluded_tag","steam_ugc_query_add_required_tag","steam_ugc_query_set_allow_cached_response","steam_ugc_query_set_cloud_filename_filter","steam_ugc_query_set_match_any_tag","steam_ugc_query_set_ranked_by_trend_days","steam_ugc_query_set_return_long_description","steam_ugc_query_set_return_total_only","steam_ugc_query_set_search_text","steam_ugc_request_item_details","steam_ugc_send_query","steam_ugc_set_item_content","steam_ugc_set_item_description","steam_ugc_set_item_preview","steam_ugc_set_item_tags","steam_ugc_set_item_title","steam_ugc_set_item_visibility","steam_ugc_start_item_update","steam_ugc_submit_item_update","steam_ugc_subscribe_item","steam_ugc_unsubscribe_item","steam_upload_score","steam_upload_score_buffer","steam_upload_score_buffer_ext","steam_upload_score_ext","steam_user_installed_dlc","steam_user_owns_dlc","string","string_byte_at","string_byte_length","string_char_at","string_copy","string_count","string_delete","string_digits","string_format","string_hash_to_newline","string_height","string_height_ext","string_insert","string_length","string_letters","string_lettersdigits","string_lower","string_ord_at","string_pos","string_repeat","string_replace","string_replace_all","string_set_byte_at","string_upper","string_width","string_width_ext","surface_copy","surface_copy_part","surface_create","surface_create_ext","surface_depth_disable","surface_exists","surface_free","surface_get_depth_disable","surface_get_height","surface_get_texture","surface_get_width","surface_getpixel","surface_getpixel_ext","surface_reset_target","surface_resize","surface_save","surface_save_part","surface_set_target","surface_set_target_ext","tan","texture_get_height","texture_get_texel_height","texture_get_texel_width","texture_get_uvs","texture_get_width","texture_global_scale","texture_set_stage","tile_get_empty","tile_get_flip","tile_get_index","tile_get_mirror","tile_get_rotate","tile_set_empty","tile_set_flip","tile_set_index","tile_set_mirror","tile_set_rotate","tilemap_clear","tilemap_get","tilemap_get_at_pixel","tilemap_get_cell_x_at_pixel","tilemap_get_cell_y_at_pixel","tilemap_get_frame","tilemap_get_global_mask","tilemap_get_height","tilemap_get_mask","tilemap_get_tile_height","tilemap_get_tile_width","tilemap_get_tileset","tilemap_get_width","tilemap_get_x","tilemap_get_y","tilemap_set","tilemap_set_at_pixel","tilemap_set_global_mask","tilemap_set_mask","tilemap_tileset","tilemap_x","tilemap_y","timeline_add","timeline_clear","timeline_delete","timeline_exists","timeline_get_name","timeline_max_moment","timeline_moment_add_script","timeline_moment_clear","timeline_size","typeof","url_get_domain","url_open","url_open_ext","url_open_full","variable_global_exists","variable_global_get","variable_global_set","variable_instance_exists","variable_instance_get","variable_instance_get_names","variable_instance_set","variable_struct_exists","variable_struct_get","variable_struct_get_names","variable_struct_names_count","variable_struct_remove","variable_struct_set","vertex_argb","vertex_begin","vertex_color","vertex_colour","vertex_create_buffer","vertex_create_buffer_ext","vertex_create_buffer_from_buffer","vertex_create_buffer_from_buffer_ext","vertex_delete_buffer","vertex_end","vertex_float1","vertex_float2","vertex_float3","vertex_float4","vertex_format_add_color","vertex_format_add_colour","vertex_format_add_custom","vertex_format_add_normal","vertex_format_add_position","vertex_format_add_position_3d","vertex_format_add_texcoord","vertex_format_add_textcoord","vertex_format_begin","vertex_format_delete","vertex_format_end","vertex_freeze","vertex_get_buffer_size","vertex_get_number","vertex_normal","vertex_position","vertex_position_3d","vertex_submit","vertex_texcoord","vertex_ubyte4","view_get_camera","view_get_hport","view_get_surface_id","view_get_visible","view_get_wport","view_get_xport","view_get_yport","view_set_camera","view_set_hport","view_set_surface_id","view_set_visible","view_set_wport","view_set_xport","view_set_yport","virtual_key_add","virtual_key_delete","virtual_key_hide","virtual_key_show","win8_appbar_add_element","win8_appbar_enable","win8_appbar_remove_element","win8_device_touchscreen_available","win8_license_initialize_sandbox","win8_license_trial_version","win8_livetile_badge_clear","win8_livetile_badge_notification","win8_livetile_notification_begin","win8_livetile_notification_end","win8_livetile_notification_expiry","win8_livetile_notification_image_add","win8_livetile_notification_secondary_begin","win8_livetile_notification_tag","win8_livetile_notification_text_add","win8_livetile_queue_enable","win8_livetile_tile_clear","win8_livetile_tile_notification","win8_search_add_suggestions","win8_search_disable","win8_search_enable","win8_secondarytile_badge_notification","win8_secondarytile_delete","win8_secondarytile_pin","win8_settingscharm_add_entry","win8_settingscharm_add_html_entry","win8_settingscharm_add_xaml_entry","win8_settingscharm_get_xaml_property","win8_settingscharm_remove_entry","win8_settingscharm_set_xaml_property","win8_share_file","win8_share_image","win8_share_screenshot","win8_share_text","win8_share_url","window_center","window_device","window_get_caption","window_get_color","window_get_colour","window_get_cursor","window_get_fullscreen","window_get_height","window_get_visible_rects","window_get_width","window_get_x","window_get_y","window_handle","window_has_focus","window_mouse_get_x","window_mouse_get_y","window_mouse_set","window_set_caption","window_set_color","window_set_colour","window_set_cursor","window_set_fullscreen","window_set_max_height","window_set_max_width","window_set_min_height","window_set_min_width","window_set_position","window_set_rectangle","window_set_size","window_view_mouse_get_x","window_view_mouse_get_y","window_views_mouse_get_x","window_views_mouse_get_y","winphone_license_trial_version","winphone_tile_back_content","winphone_tile_back_content_wide","winphone_tile_back_image","winphone_tile_back_image_wide","winphone_tile_back_title","winphone_tile_background_color","winphone_tile_background_colour","winphone_tile_count","winphone_tile_cycle_images","winphone_tile_front_image","winphone_tile_front_image_small","winphone_tile_front_image_wide","winphone_tile_icon_image","winphone_tile_small_background_image","winphone_tile_small_icon_image","winphone_tile_title","winphone_tile_wide_content","zip_unzip"],literal:["all","false","noone","pointer_invalid","pointer_null","true","undefined"],symbol:["ANSI_CHARSET","ARABIC_CHARSET","BALTIC_CHARSET","CHINESEBIG5_CHARSET","DEFAULT_CHARSET","EASTEUROPE_CHARSET","GB2312_CHARSET","GM_build_date","GM_runtime_version","GM_version","GREEK_CHARSET","HANGEUL_CHARSET","HEBREW_CHARSET","JOHAB_CHARSET","MAC_CHARSET","OEM_CHARSET","RUSSIAN_CHARSET","SHIFTJIS_CHARSET","SYMBOL_CHARSET","THAI_CHARSET","TURKISH_CHARSET","VIETNAMESE_CHARSET","achievement_achievement_info","achievement_filter_all_players","achievement_filter_favorites_only","achievement_filter_friends_only","achievement_friends_info","achievement_leaderboard_info","achievement_our_info","achievement_pic_loaded","achievement_show_achievement","achievement_show_bank","achievement_show_friend_picker","achievement_show_leaderboard","achievement_show_profile","achievement_show_purchase_prompt","achievement_show_ui","achievement_type_achievement_challenge","achievement_type_score_challenge","asset_font","asset_object","asset_path","asset_room","asset_script","asset_shader","asset_sound","asset_sprite","asset_tiles","asset_timeline","asset_unknown","audio_3d","audio_falloff_exponent_distance","audio_falloff_exponent_distance_clamped","audio_falloff_inverse_distance","audio_falloff_inverse_distance_clamped","audio_falloff_linear_distance","audio_falloff_linear_distance_clamped","audio_falloff_none","audio_mono","audio_new_system","audio_old_system","audio_stereo","bm_add","bm_complex","bm_dest_alpha","bm_dest_color","bm_dest_colour","bm_inv_dest_alpha","bm_inv_dest_color","bm_inv_dest_colour","bm_inv_src_alpha","bm_inv_src_color","bm_inv_src_colour","bm_max","bm_normal","bm_one","bm_src_alpha","bm_src_alpha_sat","bm_src_color","bm_src_colour","bm_subtract","bm_zero","browser_chrome","browser_edge","browser_firefox","browser_ie","browser_ie_mobile","browser_not_a_browser","browser_opera","browser_safari","browser_safari_mobile","browser_tizen","browser_unknown","browser_windows_store","buffer_bool","buffer_f16","buffer_f32","buffer_f64","buffer_fast","buffer_fixed","buffer_generalerror","buffer_grow","buffer_invalidtype","buffer_network","buffer_outofbounds","buffer_outofspace","buffer_s16","buffer_s32","buffer_s8","buffer_seek_end","buffer_seek_relative","buffer_seek_start","buffer_string","buffer_surface_copy","buffer_text","buffer_u16","buffer_u32","buffer_u64","buffer_u8","buffer_vbuffer","buffer_wrap","button_type","c_aqua","c_black","c_blue","c_dkgray","c_fuchsia","c_gray","c_green","c_lime","c_ltgray","c_maroon","c_navy","c_olive","c_orange","c_purple","c_red","c_silver","c_teal","c_white","c_yellow","cmpfunc_always","cmpfunc_equal","cmpfunc_greater","cmpfunc_greaterequal","cmpfunc_less","cmpfunc_lessequal","cmpfunc_never","cmpfunc_notequal","cr_appstart","cr_arrow","cr_beam","cr_cross","cr_default","cr_drag","cr_handpoint","cr_hourglass","cr_none","cr_size_all","cr_size_nesw","cr_size_ns","cr_size_nwse","cr_size_we","cr_uparrow","cull_clockwise","cull_counterclockwise","cull_noculling","device_emulator","device_ios_ipad","device_ios_ipad_retina","device_ios_iphone","device_ios_iphone5","device_ios_iphone6","device_ios_iphone6plus","device_ios_iphone_retina","device_ios_unknown","device_tablet","display_landscape","display_landscape_flipped","display_portrait","display_portrait_flipped","dll_cdecl","dll_stdcall","ds_type_grid","ds_type_list","ds_type_map","ds_type_priority","ds_type_queue","ds_type_stack","ef_cloud","ef_ellipse","ef_explosion","ef_firework","ef_flare","ef_rain","ef_ring","ef_smoke","ef_smokeup","ef_snow","ef_spark","ef_star","ev_alarm","ev_animation_end","ev_boundary","ev_cleanup","ev_close_button","ev_collision","ev_create","ev_destroy","ev_draw","ev_draw_begin","ev_draw_end","ev_draw_post","ev_draw_pre","ev_end_of_path","ev_game_end","ev_game_start","ev_gesture","ev_gesture_double_tap","ev_gesture_drag_end","ev_gesture_drag_start","ev_gesture_dragging","ev_gesture_flick","ev_gesture_pinch_end","ev_gesture_pinch_in","ev_gesture_pinch_out","ev_gesture_pinch_start","ev_gesture_rotate_end","ev_gesture_rotate_start","ev_gesture_rotating","ev_gesture_tap","ev_global_gesture_double_tap","ev_global_gesture_drag_end","ev_global_gesture_drag_start","ev_global_gesture_dragging","ev_global_gesture_flick","ev_global_gesture_pinch_end","ev_global_gesture_pinch_in","ev_global_gesture_pinch_out","ev_global_gesture_pinch_start","ev_global_gesture_rotate_end","ev_global_gesture_rotate_start","ev_global_gesture_rotating","ev_global_gesture_tap","ev_global_left_button","ev_global_left_press","ev_global_left_release","ev_global_middle_button","ev_global_middle_press","ev_global_middle_release","ev_global_right_button","ev_global_right_press","ev_global_right_release","ev_gui","ev_gui_begin","ev_gui_end","ev_joystick1_button1","ev_joystick1_button2","ev_joystick1_button3","ev_joystick1_button4","ev_joystick1_button5","ev_joystick1_button6","ev_joystick1_button7","ev_joystick1_button8","ev_joystick1_down","ev_joystick1_left","ev_joystick1_right","ev_joystick1_up","ev_joystick2_button1","ev_joystick2_button2","ev_joystick2_button3","ev_joystick2_button4","ev_joystick2_button5","ev_joystick2_button6","ev_joystick2_button7","ev_joystick2_button8","ev_joystick2_down","ev_joystick2_left","ev_joystick2_right","ev_joystick2_up","ev_keyboard","ev_keypress","ev_keyrelease","ev_left_button","ev_left_press","ev_left_release","ev_middle_button","ev_middle_press","ev_middle_release","ev_mouse","ev_mouse_enter","ev_mouse_leave","ev_mouse_wheel_down","ev_mouse_wheel_up","ev_no_button","ev_no_more_health","ev_no_more_lives","ev_other","ev_outside","ev_right_button","ev_right_press","ev_right_release","ev_room_end","ev_room_start","ev_step","ev_step_begin","ev_step_end","ev_step_normal","ev_trigger","ev_user0","ev_user1","ev_user2","ev_user3","ev_user4","ev_user5","ev_user6","ev_user7","ev_user8","ev_user9","ev_user10","ev_user11","ev_user12","ev_user13","ev_user14","ev_user15","fa_archive","fa_bottom","fa_center","fa_directory","fa_hidden","fa_left","fa_middle","fa_readonly","fa_right","fa_sysfile","fa_top","fa_volumeid","fb_login_default","fb_login_fallback_to_webview","fb_login_forcing_safari","fb_login_forcing_webview","fb_login_no_fallback_to_webview","fb_login_use_system_account","gamespeed_fps","gamespeed_microseconds","ge_lose","global","gp_axislh","gp_axislv","gp_axisrh","gp_axisrv","gp_face1","gp_face2","gp_face3","gp_face4","gp_padd","gp_padl","gp_padr","gp_padu","gp_select","gp_shoulderl","gp_shoulderlb","gp_shoulderr","gp_shoulderrb","gp_start","gp_stickl","gp_stickr","iap_available","iap_canceled","iap_ev_consume","iap_ev_product","iap_ev_purchase","iap_ev_restore","iap_ev_storeload","iap_failed","iap_purchased","iap_refunded","iap_status_available","iap_status_loading","iap_status_processing","iap_status_restoring","iap_status_unavailable","iap_status_uninitialised","iap_storeload_failed","iap_storeload_ok","iap_unavailable","input_type","kbv_autocapitalize_characters","kbv_autocapitalize_none","kbv_autocapitalize_sentences","kbv_autocapitalize_words","kbv_returnkey_continue","kbv_returnkey_default","kbv_returnkey_done","kbv_returnkey_emergency","kbv_returnkey_go","kbv_returnkey_google","kbv_returnkey_join","kbv_returnkey_next","kbv_returnkey_route","kbv_returnkey_search","kbv_returnkey_send","kbv_returnkey_yahoo","kbv_type_ascii","kbv_type_default","kbv_type_email","kbv_type_numbers","kbv_type_phone","kbv_type_phone_name","kbv_type_url","layerelementtype_background","layerelementtype_instance","layerelementtype_oldtilemap","layerelementtype_particlesystem","layerelementtype_sprite","layerelementtype_tile","layerelementtype_tilemap","layerelementtype_undefined","lb_disp_none","lb_disp_numeric","lb_disp_time_ms","lb_disp_time_sec","lb_sort_ascending","lb_sort_descending","lb_sort_none","leaderboard_type_number","leaderboard_type_time_mins_secs","lighttype_dir","lighttype_point","local","matrix_projection","matrix_view","matrix_world","mb_any","mb_left","mb_middle","mb_none","mb_right","mip_markedonly","mip_off","mip_on","network_config_connect_timeout","network_config_disable_reliable_udp","network_config_enable_reliable_udp","network_config_use_non_blocking_socket","network_socket_bluetooth","network_socket_tcp","network_socket_udp","network_type_connect","network_type_data","network_type_disconnect","network_type_non_blocking_connect","of_challen","of_challenge_tie","of_challenge_win","os_3ds","os_android","os_bb10","os_ios","os_linux","os_macosx","os_ps3","os_ps4","os_psvita","os_switch","os_symbian","os_tizen","os_tvos","os_unknown","os_uwp","os_wiiu","os_win32","os_win8native","os_windows","os_winphone","os_xbox360","os_xboxone","other","ov_achievements","ov_community","ov_friends","ov_gamegroup","ov_players","ov_settings","path_action_continue","path_action_restart","path_action_reverse","path_action_stop","phy_debug_render_aabb","phy_debug_render_collision_pairs","phy_debug_render_coms","phy_debug_render_core_shapes","phy_debug_render_joints","phy_debug_render_obb","phy_debug_render_shapes","phy_joint_anchor_1_x","phy_joint_anchor_1_y","phy_joint_anchor_2_x","phy_joint_anchor_2_y","phy_joint_angle","phy_joint_angle_limits","phy_joint_damping_ratio","phy_joint_frequency","phy_joint_length_1","phy_joint_length_2","phy_joint_lower_angle_limit","phy_joint_max_force","phy_joint_max_length","phy_joint_max_motor_force","phy_joint_max_motor_torque","phy_joint_max_torque","phy_joint_motor_force","phy_joint_motor_speed","phy_joint_motor_torque","phy_joint_reaction_force_x","phy_joint_reaction_force_y","phy_joint_reaction_torque","phy_joint_speed","phy_joint_translation","phy_joint_upper_angle_limit","phy_particle_data_flag_category","phy_particle_data_flag_color","phy_particle_data_flag_colour","phy_particle_data_flag_position","phy_particle_data_flag_typeflags","phy_particle_data_flag_velocity","phy_particle_flag_colormixing","phy_particle_flag_colourmixing","phy_particle_flag_elastic","phy_particle_flag_powder","phy_particle_flag_spring","phy_particle_flag_tensile","phy_particle_flag_viscous","phy_particle_flag_wall","phy_particle_flag_water","phy_particle_flag_zombie","phy_particle_group_flag_rigid","phy_particle_group_flag_solid","pi","pr_linelist","pr_linestrip","pr_pointlist","pr_trianglefan","pr_trianglelist","pr_trianglestrip","ps_distr_gaussian","ps_distr_invgaussian","ps_distr_linear","ps_shape_diamond","ps_shape_ellipse","ps_shape_line","ps_shape_rectangle","pt_shape_circle","pt_shape_cloud","pt_shape_disk","pt_shape_explosion","pt_shape_flare","pt_shape_line","pt_shape_pixel","pt_shape_ring","pt_shape_smoke","pt_shape_snow","pt_shape_spark","pt_shape_sphere","pt_shape_square","pt_shape_star","spritespeed_framespergameframe","spritespeed_framespersecond","text_type","tf_anisotropic","tf_linear","tf_point","tile_flip","tile_index_mask","tile_mirror","tile_rotate","timezone_local","timezone_utc","tm_countvsyncs","tm_sleep","ty_real","ty_string","ugc_filetype_community","ugc_filetype_microtrans","ugc_list_Favorited","ugc_list_Followed","ugc_list_Published","ugc_list_Subscribed","ugc_list_UsedOrPlayed","ugc_list_VotedDown","ugc_list_VotedOn","ugc_list_VotedUp","ugc_list_WillVoteLater","ugc_match_AllGuides","ugc_match_Artwork","ugc_match_Collections","ugc_match_ControllerBindings","ugc_match_IntegratedGuides","ugc_match_Items","ugc_match_Items_Mtx","ugc_match_Items_ReadyToUse","ugc_match_Screenshots","ugc_match_UsableInGame","ugc_match_Videos","ugc_match_WebGuides","ugc_query_AcceptedForGameRankedByAcceptanceDate","ugc_query_CreatedByFollowedUsersRankedByPublicationDate","ugc_query_CreatedByFriendsRankedByPublicationDate","ugc_query_FavoritedByFriendsRankedByPublicationDate","ugc_query_NotYetRated","ugc_query_RankedByNumTimesReported","ugc_query_RankedByPublicationDate","ugc_query_RankedByTextSearch","ugc_query_RankedByTotalVotesAsc","ugc_query_RankedByTrend","ugc_query_RankedByVote","ugc_query_RankedByVotesUp","ugc_result_success","ugc_sortorder_CreationOrderAsc","ugc_sortorder_CreationOrderDesc","ugc_sortorder_ForModeration","ugc_sortorder_LastUpdatedDesc","ugc_sortorder_SubscriptionDateDesc","ugc_sortorder_TitleAsc","ugc_sortorder_VoteScoreDesc","ugc_visibility_friends_only","ugc_visibility_private","ugc_visibility_public","vertex_type_color","vertex_type_colour","vertex_type_float1","vertex_type_float2","vertex_type_float3","vertex_type_float4","vertex_type_ubyte4","vertex_usage_binormal","vertex_usage_blendindices","vertex_usage_blendweight","vertex_usage_color","vertex_usage_colour","vertex_usage_depth","vertex_usage_fog","vertex_usage_normal","vertex_usage_position","vertex_usage_psize","vertex_usage_sample","vertex_usage_tangent","vertex_usage_texcoord","vertex_usage_textcoord","vk_add","vk_alt","vk_anykey","vk_backspace","vk_control","vk_decimal","vk_delete","vk_divide","vk_down","vk_end","vk_enter","vk_escape","vk_f1","vk_f2","vk_f3","vk_f4","vk_f5","vk_f6","vk_f7","vk_f8","vk_f9","vk_f10","vk_f11","vk_f12","vk_home","vk_insert","vk_lalt","vk_lcontrol","vk_left","vk_lshift","vk_multiply","vk_nokey","vk_numpad0","vk_numpad1","vk_numpad2","vk_numpad3","vk_numpad4","vk_numpad5","vk_numpad6","vk_numpad7","vk_numpad8","vk_numpad9","vk_pagedown","vk_pageup","vk_pause","vk_printscreen","vk_ralt","vk_rcontrol","vk_return","vk_right","vk_rshift","vk_shift","vk_space","vk_subtract","vk_tab","vk_up"],"variable.language":["alarm","application_surface","argument","argument0","argument1","argument2","argument3","argument4","argument5","argument6","argument7","argument8","argument9","argument10","argument11","argument12","argument13","argument14","argument15","argument_count","argument_relative","async_load","background_color","background_colour","background_showcolor","background_showcolour","bbox_bottom","bbox_left","bbox_right","bbox_top","browser_height","browser_width","caption_health","caption_lives","caption_score","current_day","current_hour","current_minute","current_month","current_second","current_time","current_weekday","current_year","cursor_sprite","debug_mode","delta_time","depth","direction","display_aa","error_last","error_occurred","event_action","event_data","event_number","event_object","event_type","fps","fps_real","friction","game_display_name","game_id","game_project_name","game_save_id","gamemaker_pro","gamemaker_registered","gamemaker_version","gravity","gravity_direction","health","hspeed","iap_data","id|0","image_alpha","image_angle","image_blend","image_index","image_number","image_speed","image_xscale","image_yscale","instance_count","instance_id","keyboard_key","keyboard_lastchar","keyboard_lastkey","keyboard_string","layer","lives","mask_index","mouse_button","mouse_lastbutton","mouse_x","mouse_y","object_index","os_browser","os_device","os_type","os_version","path_endaction","path_index","path_orientation","path_position","path_positionprevious","path_scale","path_speed","persistent","phy_active","phy_angular_damping","phy_angular_velocity","phy_bullet","phy_col_normal_x","phy_col_normal_y","phy_collision_points","phy_collision_x","phy_collision_y","phy_com_x","phy_com_y","phy_dynamic","phy_fixed_rotation","phy_inertia","phy_kinematic","phy_linear_damping","phy_linear_velocity_x","phy_linear_velocity_y","phy_mass","phy_position_x","phy_position_xprevious","phy_position_y","phy_position_yprevious","phy_rotation","phy_sleeping","phy_speed","phy_speed_x","phy_speed_y","program_directory","room","room_caption","room_first","room_height","room_last","room_persistent","room_speed","room_width","score","self","show_health","show_lives","show_score","solid","speed","sprite_height","sprite_index","sprite_width","sprite_xoffset","sprite_yoffset","temp_directory","timeline_index","timeline_loop","timeline_position","timeline_running","timeline_speed","view_angle","view_camera","view_current","view_enabled","view_hborder","view_hport","view_hspeed","view_hview","view_object","view_surface_id","view_vborder","view_visible","view_vspeed","view_wport","view_wview","view_xport","view_xview","view_yport","view_yview","visible","vspeed","webgl_enabled","working_directory","xprevious","xstart","x|0","yprevious","ystart","y|0"]},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}),tW)),r4.registerLanguage("go",(tj||(tj=1,tK=function(e){let t={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:t,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{begin:e.C_NUMBER_RE+"[i]",relevance:1},e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,illegal:/["']/}]}]}}),tK)),r4.registerLanguage("golo",(tZ||(tZ=1,tX=function(e){return{name:"Golo",keywords:{keyword:["println","readln","print","import","module","function","local","return","let","var","while","for","foreach","times","in","case","when","match","with","break","continue","augment","augmentation","each","find","filter","reduce","if","then","else","otherwise","try","catch","finally","raise","throw","orIfNull","DynamicObject|10","DynamicVariable","struct","Observable","map","set","vector","list","array"],literal:["true","false","null"]},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"}]}}),tX)),r4.registerLanguage("gradle",(t0||(t0=1,tJ=function(e){return{name:"Gradle",case_insensitive:!0,keywords:["task","project","allprojects","subprojects","artifacts","buildscript","configurations","dependencies","repositories","sourceSets","description","delete","from","into","include","exclude","source","classpath","destinationDir","includes","options","sourceCompatibility","targetCompatibility","group","flatDir","doLast","doFirst","flatten","todir","fromdir","ant","def","abstract","break","case","catch","continue","default","do","else","extends","final","finally","for","if","implements","instanceof","native","new","private","protected","public","return","static","switch","synchronized","throw","throws","transient","try","volatile","while","strictfp","package","import","false","null","super","this","true","antlrtask","checkstyle","codenarc","copy","boolean","byte","char","class","double","float","int","interface","long","short","void","compile","runTime","file","fileTree","abs","any","append","asList","asWritable","call","collect","compareTo","count","div","dump","each","eachByte","eachFile","eachLine","every","find","findAll","flatten","getAt","getErr","getIn","getOut","getText","grep","immutable","inject","inspect","intersect","invokeMethods","isCase","join","leftShift","minus","multiply","newInputStream","newOutputStream","newPrintWriter","newReader","newWriter","next","plus","pop","power","previous","print","println","push","putAt","read","readBytes","readLines","reverse","reverseEach","round","size","sort","splitEachLine","step","subMap","times","toInteger","toList","tokenize","upto","waitForOrKill","withPrintWriter","withReader","withStream","withWriter","withWriterAppend","write","writeLine"],contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.REGEXP_MODE]}}),tJ)),r4.registerLanguage("graphql",(t2||(t2=1,t1=function(e){let t=e.regex;return{name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,keywords:{keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],literal:["true","false","null"]},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{scope:"symbol",begin:t.concat(/[_A-Za-z][_0-9A-Za-z]*/,t.lookahead(/\s*:/)),relevance:0}],illegal:[/[;<']/,/BEGIN/]}}),t1)),r4.registerLanguage("groovy",function(){if(t9)return t3;function e(t,n={}){return n.variants=t,n}return t9=1,t3=function(t){let n=t.regex,a="[A-Za-z0-9_$]+",i=e([t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]})]),r={className:"regexp",begin:/~?\/[^\/\n]+\//,contains:[t.BACKSLASH_ESCAPE]},s=e([t.BINARY_NUMBER_MODE,t.C_NUMBER_MODE]),o=e([{begin:/"""/,end:/"""/},{begin:/'''/,end:/'''/},{begin:"\\$/",end:"/\\$",relevance:10},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE],{className:"string"}),l={match:[/(class|interface|trait|enum|record|extends|implements)/,/\s+/,t.UNDERSCORE_IDENT_RE],scope:{1:"keyword",3:"title.class"}};return{name:"Groovy",keywords:{"variable.language":"this super",literal:"true false null",type:["byte","short","char","int","long","boolean","float","double","void"],keyword:["def","as","in","assert","trait","abstract","static","volatile","transient","public","private","protected","synchronized","final","class","interface","enum","if","else","for","while","switch","case","break","default","continue","throw","throws","try","catch","finally","implements","extends","new","import","package","return","instanceof","var"]},contains:[t.SHEBANG({binary:"groovy",relevance:10}),i,o,r,s,l,{className:"meta",begin:"@[A-Za-z]+",relevance:0},{className:"attr",begin:a+"[ ]*:",relevance:0},{begin:/\?/,end:/:/,relevance:0,contains:[i,o,r,s,"self"]},{className:"symbol",begin:"^[ ]*"+n.lookahead(a+":"),excludeBegin:!0,end:a+":",relevance:0}],illegal:/#|<\//}}}()),r4.registerLanguage("haml",(t6||(t6=1,t4=function(e){return{name:"HAML",case_insensitive:!0,contains:[{className:"meta",begin:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",relevance:10},e.COMMENT("^\\s*(!=#|=#|-#|/).*$",null,{relevance:0}),{begin:"^\\s*(-|=|!=)(?!#)",end:/$/,subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0},{className:"tag",begin:"^\\s*%",contains:[{className:"selector-tag",begin:"\\w+"},{className:"selector-id",begin:"#[\\w-]+"},{className:"selector-class",begin:"\\.[\\w-]+"},{begin:/\{\s*/,end:/\s*\}/,contains:[{begin:":\\w+\\s*=>",end:",\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attr",begin:":\\w+"},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]},{begin:"\\(\\s*",end:"\\s*\\)",excludeEnd:!0,contains:[{begin:"\\w+\\s*=",end:"\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attr",begin:"\\w+",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]}]},{begin:"^\\s*[=~]\\s*"},{begin:/#\{/,end:/\}/,subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]}}),t4)),r4.registerLanguage("handlebars",(t8||(t8=1,t5=function(e){let t=e.regex,n={$pattern:/[\w.\/]+/,built_in:["action","bindattr","collection","component","concat","debugger","each","each-in","get","hash","if","in","input","link-to","loc","log","lookup","mut","outlet","partial","query-params","render","template","textarea","unbound","unless","view","with","yield"]},a=/\[\]|\[[^\]]+\]/,i=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,r=t.either(/""|"[^"]+"/,/''|'[^']+'/,a,i),s=t.concat(t.optional(/\.|\.\/|\//),r,t.anyNumberOfTimes(t.concat(/(\.|\/)/,r))),o=t.concat("(",a,"|",i,")(?==)"),l={begin:s},c=e.inherit(l,{keywords:{$pattern:/[\w.\/]+/,literal:["true","false","undefined","null"]}}),d={begin:/\(/,end:/\)/},_={className:"attr",begin:o,relevance:0,starts:{begin:/=/,end:/=/,starts:{contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,c,d]}}},u={contains:[e.NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:/as\s+\|/,keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},_,c,d],returnEnd:!0},m=e.inherit(l,{className:"name",keywords:n,starts:e.inherit(u,{end:/\)/})});d.contains=[m];let p=e.inherit(l,{keywords:n,className:"name",starts:e.inherit(u,{end:/\}\}/})}),g=e.inherit(l,{keywords:n,className:"name"}),E=e.inherit(l,{className:"name",keywords:n,starts:e.inherit(u,{end:/\}\}/})});return{name:"Handlebars",aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/,skip:!0},e.COMMENT(/\{\{!--/,/--\}\}/),e.COMMENT(/\{\{!/,/\}\}/),{className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[p],starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[g]},{className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[p]},{className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{className:"template-tag",begin:/\{\{(?=else if)/,end:/\}\}/,keywords:"else if"},{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[g]},{className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[E]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[E]}]}}),t5)),r4.registerLanguage("haskell",(ne||(ne=1,t7=function(e){let t="([0-9]_*)+",n="([0-9a-fA-F]_*)+",a="([!#$%&*+.\\/<=>?@\\\\^~-]|(?!([(),;\\[\\]`|{}]|[_:\"']))(\\p{S}|\\p{P}))",i={variants:[e.COMMENT("--+","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},r={className:"meta",begin:/\{-#/,end:/#-\}/},s={className:"meta",begin:"^#",end:"$"},o={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},l={begin:"\\(",end:"\\)",illegal:'"',contains:[r,s,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),i]},c={className:"number",relevance:0,variants:[{match:`\\b(${t})(\\.(${t}))?([eE][+-]?(${t}))?\\b`},{match:`\\b0[xX]_*(${n})(\\.(${n}))?([pP][+-]?(${t}))?\\b`},{match:"\\b0[oO](([0-7]_*)+)\\b"},{match:"\\b0[bB](([01]_*)+)\\b"}]};return{name:"Haskell",aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",unicodeRegex:!0,contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[l,i],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[l,i],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[o,l,i]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[r,o,l,{begin:/\{/,end:/\}/,contains:l.contains},i]},{beginKeywords:"default",end:"$",contains:[o,l,i]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,i]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[o,e.QUOTE_STRING_MODE,i]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},r,s,{scope:"string",begin:/'(?=\\?.')/,end:/'/,contains:[{scope:"char.escape",match:/\\./}]},e.QUOTE_STRING_MODE,c,o,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),{begin:`(?!-)${a}--+|--+(?!-)${a}`},i,{begin:"->|<-"}]}}),t7)),r4.registerLanguage("haxe",(nn||(nn=1,nt=function(e){return{name:"Haxe",aliases:["hx"],keywords:{keyword:"abstract break case cast catch continue default do dynamic else enum extern final for function here if import in inline is macro never new override package private get set public return static super switch this throw trace try typedef untyped using var while Int Float String Bool Dynamic Void Array ",built_in:"trace this",literal:"true false null _"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{className:"subst",begin:/\$\{/,end:/\}/},{className:"subst",begin:/\$/,end:/\W\}/}]},e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:/(-?)(\b0[xX][a-fA-F0-9_]+|(\b\d+(\.[\d_]*)?|\.[\d_]+)(([eE][-+]?\d+)|i32|u32|i64|f64)?)/,relevance:0},{className:"variable",begin:"\\$[a-zA-Z_$][a-zA-Z0-9_$]*"},{className:"meta",begin:/@:?/,end:/\(|$/,excludeEnd:!0},{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elseif end error"}},{className:"type",begin:/:[ \t]*/,end:/[^A-Za-z0-9_ \t\->]/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/:[ \t]*/,end:/\W/,excludeBegin:!0,excludeEnd:!0},{className:"type",begin:/new */,end:/\W/,excludeBegin:!0,excludeEnd:!0},{className:"title.class",beginKeywords:"enum",end:/\{/,contains:[e.TITLE_MODE]},{className:"title.class",begin:"\\babstract\\b(?=\\s*"+e.IDENT_RE+"\\s*\\()",end:/[\{$]/,contains:[{className:"type",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0},{className:"type",begin:/from +/,end:/\W/,excludeBegin:!0,excludeEnd:!0},{className:"type",begin:/to +/,end:/\W/,excludeBegin:!0,excludeEnd:!0},e.TITLE_MODE],keywords:{keyword:"abstract from to"}},{className:"title.class",begin:/\b(class|interface) +/,end:/[\{$]/,excludeEnd:!0,keywords:"class interface",contains:[{className:"keyword",begin:/\b(extends|implements) +/,keywords:"extends implements",contains:[{className:"type",begin:e.IDENT_RE,relevance:0}]},e.TITLE_MODE]},{className:"title.function",beginKeywords:"function",end:/\(/,excludeEnd:!0,illegal:/\S/,contains:[e.TITLE_MODE]}],illegal:/<\//}}),nt)),r4.registerLanguage("hsp",(ni||(ni=1,na=function(e){return{name:"HSP",case_insensitive:!0,keywords:{$pattern:/[\w._]+/,keyword:"goto gosub return break repeat loop continue wait await dim sdim foreach dimtype dup dupptr end stop newmod delmod mref run exgoto on mcall assert logmes newlab resume yield onexit onerror onkey onclick oncmd exist delete mkdir chdir dirlist bload bsave bcopy memfile if else poke wpoke lpoke getstr chdpm memexpand memcpy memset notesel noteadd notedel noteload notesave randomize noteunsel noteget split strrep setease button chgdisp exec dialog mmload mmplay mmstop mci pset pget syscolor mes print title pos circle cls font sysfont objsize picload color palcolor palette redraw width gsel gcopy gzoom gmode bmpsave hsvcolor getkey listbox chkbox combox input mesbox buffer screen bgscr mouse objsel groll line clrobj boxf objprm objmode stick grect grotate gsquare gradf objimage objskip objenable celload celdiv celput newcom querycom delcom cnvstow comres axobj winobj sendmsg comevent comevarg sarrayconv callfunc cnvwtos comevdisp libptr system hspstat hspver stat cnt err strsize looplev sublev iparam wparam lparam refstr refdval int rnd strlen length length2 length3 length4 vartype gettime peek wpeek lpeek varptr varuse noteinfo instr abs limit getease str strmid strf getpath strtrim sin cos tan atan sqrt double absf expf logf limitf powf geteasef mousex mousey mousew hwnd hinstance hdc ginfo objinfo dirinfo sysinfo thismod __hspver__ __hsp30__ __date__ __time__ __line__ __file__ _debug __hspdef__ and or xor not screen_normal screen_palette screen_hide screen_fixedsize screen_tool screen_frame gmode_gdi gmode_mem gmode_rgb0 gmode_alpha gmode_rgb0alpha gmode_add gmode_sub gmode_pixela ginfo_mx ginfo_my ginfo_act ginfo_sel ginfo_wx1 ginfo_wy1 ginfo_wx2 ginfo_wy2 ginfo_vx ginfo_vy ginfo_sizex ginfo_sizey ginfo_winx ginfo_winy ginfo_mesx ginfo_mesy ginfo_r ginfo_g ginfo_b ginfo_paluse ginfo_dispx ginfo_dispy ginfo_cx ginfo_cy ginfo_intid ginfo_newid ginfo_sx ginfo_sy objinfo_mode objinfo_bmscr objinfo_hwnd notemax notesize dir_cur dir_exe dir_win dir_sys dir_cmdline dir_desktop dir_mydoc dir_tv font_normal font_bold font_italic font_underline font_strikeout font_antialias objmode_normal objmode_guifont objmode_usefont gsquare_grad msgothic msmincho do until while wend for next _break _continue switch case default swbreak swend ddim ldim alloc m_pi rad2deg deg2rad ease_linear ease_quad_in ease_quad_out ease_quad_inout ease_cubic_in ease_cubic_out ease_cubic_inout ease_quartic_in ease_quartic_out ease_quartic_inout ease_bounce_in ease_bounce_out ease_bounce_inout ease_shake_in ease_shake_out ease_shake_inout ease_loop"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"string",begin:/\{"/,end:/"\}/,contains:[e.BACKSLASH_ESCAPE]},e.COMMENT(";","$",{relevance:0}),{className:"meta",begin:"#",end:"$",keywords:{keyword:"addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib"},contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),e.NUMBER_MODE,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"symbol",begin:"^\\*(\\w+|@)"},e.NUMBER_MODE,e.C_NUMBER_MODE]}}),na)),r4.registerLanguage("http",(ns||(ns=1,nr=function(e){let t="HTTP/([32]|1\\.[01])",n={className:"attribute",begin:e.regex.concat("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}},a=[n,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+t+" \\d{3})",end:/$/,contains:[{className:"meta",begin:t},{className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:a}},{begin:"(?=^[A-Z]+ (.*?) "+t+"$)",end:/$/,contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:t},{className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:a}},e.inherit(n,{relevance:0})]}}),nr)),r4.registerLanguage("hy",(nl||(nl=1,no=function(e){let t="a-zA-Z_\\-!.?+*=<>&#'",n="["+t+"]["+t+"0-9/;:]*",a={className:"number",begin:"[-+]?\\d+(\\.\\d+)?",relevance:0},i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),r=e.COMMENT(";","$",{relevance:0}),s={className:"literal",begin:/\b([Tt]rue|[Ff]alse|nil|None)\b/},o={begin:"[\\[\\{]",end:"[\\]\\}]",relevance:0},l={className:"comment",begin:"\\^"+n},c=e.COMMENT("\\^\\{","\\}"),d={className:"symbol",begin:"[:]{1,2}"+n},_={begin:"\\(",end:"\\)"},u={endsWithParent:!0,relevance:0},m=[_,i,l,c,r,d,o,a,s,{begin:n,relevance:0}];return _.contains=[e.COMMENT("comment",""),{className:"name",relevance:0,keywords:{$pattern:n,built_in:"!= % %= & &= * ** **= *= *map + += , --build-class-- --import-- -= . / // //= /= < << <<= <= = > >= >> >>= @ @= ^ ^= abs accumulate all and any ap-compose ap-dotimes ap-each ap-each-while ap-filter ap-first ap-if ap-last ap-map ap-map-when ap-pipe ap-reduce ap-reject apply as-> ascii assert assoc bin break butlast callable calling-module-name car case cdr chain chr coll? combinations compile compress cond cons cons? continue count curry cut cycle dec def default-method defclass defmacro defmacro-alias defmacro/g! defmain defmethod defmulti defn defn-alias defnc defnr defreader defseq del delattr delete-route dict-comp dir disassemble dispatch-reader-macro distinct divmod do doto drop drop-last drop-while empty? end-sequence eval eval-and-compile eval-when-compile even? every? except exec filter first flatten float? fn fnc fnr for for* format fraction genexpr gensym get getattr global globals group-by hasattr hash hex id identity if if* if-not if-python2 import in inc input instance? integer integer-char? integer? interleave interpose is is-coll is-cons is-empty is-even is-every is-float is-instance is-integer is-integer-char is-iterable is-iterator is-keyword is-neg is-none is-not is-numeric is-odd is-pos is-string is-symbol is-zero isinstance islice issubclass iter iterable? iterate iterator? keyword keyword? lambda last len let lif lif-not list* list-comp locals loop macro-error macroexpand macroexpand-1 macroexpand-all map max merge-with method-decorator min multi-decorator multicombinations name neg? next none? nonlocal not not-in not? nth numeric? oct odd? open or ord partition permutations pos? post-route postwalk pow prewalk print product profile/calls profile/cpu put-route quasiquote quote raise range read read-str recursive-replace reduce remove repeat repeatedly repr require rest round route route-with-methods rwm second seq set-comp setattr setv some sorted string string? sum switch symbol? take take-nth take-while tee try unless unquote unquote-splicing vars walk when while with with* with-decorator with-gensyms xi xor yield yield-from zero? zip zip-longest | |= ~"},begin:n,starts:u},u],u.contains=m,o.contains=m,{name:"Hy",aliases:["hylang"],illegal:/\S/,contains:[e.SHEBANG(),_,i,l,c,r,d,o,a,s]}}),no)),r4.registerLanguage("inform7",nd?nc:(nd=1,nc=function(e){return{name:"Inform 7",aliases:["i7"],case_insensitive:!0,keywords:{keyword:"thing room person man woman animal container supporter backdrop door scenery open closed locked inside gender is are say understand kind of rule"},contains:[{className:"string",begin:'"',end:'"',relevance:0,contains:[{className:"subst",begin:"\\[",end:"\\]"}]},{className:"section",begin:/^(Volume|Book|Part|Chapter|Section|Table)\b/,end:"$"},{begin:/^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,end:":",contains:[{begin:"\\(This",end:"\\)"}]},{className:"comment",begin:"\\[",end:"\\]",contains:["self"]}]}})),r4.registerLanguage("ini",(nu||(nu=1,n_=function(e){let t=e.regex,n={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];let i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},s={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},o=t.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{begin:t.concat(o,"(\\s*\\.\\s*",o,")*",t.lookahead(/\s*=\s*[^#\s]/)),className:"attr",starts:{end:/$/,contains:[a,{begin:/\[/,end:/\]/,contains:[a,r,i,s,n,"self"],relevance:0},r,i,s,n]}}]}}),n_)),r4.registerLanguage("irpf90",(np||(np=1,nm=function(e){let t=e.regex,n=/(_[a-z_\d]+)?/,a=/([de][+-]?\d+)?/,i={className:"number",variants:[{begin:t.concat(/\b\d+/,/\.(\d*)/,a,n)},{begin:t.concat(/\b\d+/,a,n)},{begin:t.concat(/\.\d+/,a,n)}],relevance:0};return{name:"IRPF90",case_insensitive:!0,keywords:{literal:".False. .True.",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image IRP_ALIGN irp_here"},illegal:/\/\*/,contains:[e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},e.COMMENT("!","$",{relevance:0}),e.COMMENT("begin_doc","end_doc",{relevance:10}),i]}}),nm)),r4.registerLanguage("isbl",(nE||(nE=1,ng=function(e){let t="[A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_!][A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_0-9]*",n={className:"number",begin:e.NUMBER_RE,relevance:0},a={className:"string",variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]},i={className:"doctag",begin:"\\b(?:TODO|DONE|BEGIN|END|STUB|CHG|FIXME|NOTE|BUG|XXX)\\b",relevance:0},r={variants:[{className:"comment",begin:"//",end:"$",relevance:0,contains:[e.PHRASAL_WORDS_MODE,i]},{className:"comment",begin:"/\\*",end:"\\*/",relevance:0,contains:[e.PHRASAL_WORDS_MODE,i]}]},s={$pattern:t,keyword:"and \u0438 else \u0438\u043D\u0430\u0447\u0435 endexcept endfinally endforeach \u043A\u043E\u043D\u0435\u0446\u0432\u0441\u0435 endif \u043A\u043E\u043D\u0435\u0446\u0435\u0441\u043B\u0438 endwhile \u043A\u043E\u043D\u0435\u0446\u043F\u043E\u043A\u0430 except exitfor finally foreach \u0432\u0441\u0435 if \u0435\u0441\u043B\u0438 in \u0432 not \u043D\u0435 or \u0438\u043B\u0438 try while \u043F\u043E\u043A\u0430 ",built_in:"SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT SYSRES_CONST_ACCES_RIGHT_TYPE_FULL SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE SYSRES_CONST_ACCESS_NO_ACCESS_VIEW SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_RIGHTS_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW SYSRES_CONST_ACCESS_RIGHTS_VIEW_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_CODE SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_YES_CODE SYSRES_CONST_ACCESS_TYPE_CHANGE SYSRES_CONST_ACCESS_TYPE_CHANGE_CODE SYSRES_CONST_ACCESS_TYPE_EXISTS SYSRES_CONST_ACCESS_TYPE_EXISTS_CODE SYSRES_CONST_ACCESS_TYPE_FULL SYSRES_CONST_ACCESS_TYPE_FULL_CODE SYSRES_CONST_ACCESS_TYPE_VIEW SYSRES_CONST_ACCESS_TYPE_VIEW_CODE SYSRES_CONST_ACTION_TYPE_ABORT SYSRES_CONST_ACTION_TYPE_ACCEPT SYSRES_CONST_ACTION_TYPE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ADD_ATTACHMENT SYSRES_CONST_ACTION_TYPE_CHANGE_CARD SYSRES_CONST_ACTION_TYPE_CHANGE_KIND SYSRES_CONST_ACTION_TYPE_CHANGE_STORAGE SYSRES_CONST_ACTION_TYPE_CONTINUE SYSRES_CONST_ACTION_TYPE_COPY SYSRES_CONST_ACTION_TYPE_CREATE SYSRES_CONST_ACTION_TYPE_CREATE_VERSION SYSRES_CONST_ACTION_TYPE_DELETE SYSRES_CONST_ACTION_TYPE_DELETE_ATTACHMENT SYSRES_CONST_ACTION_TYPE_DELETE_VERSION SYSRES_CONST_ACTION_TYPE_DISABLE_DELEGATE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ENABLE_DELEGATE_ACCESS_RIGHTS SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE_AND_PASSWORD SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_PASSWORD SYSRES_CONST_ACTION_TYPE_EXPORT_WITH_LOCK SYSRES_CONST_ACTION_TYPE_EXPORT_WITHOUT_LOCK SYSRES_CONST_ACTION_TYPE_IMPORT_WITH_UNLOCK SYSRES_CONST_ACTION_TYPE_IMPORT_WITHOUT_UNLOCK SYSRES_CONST_ACTION_TYPE_LIFE_CYCLE_STAGE SYSRES_CONST_ACTION_TYPE_LOCK SYSRES_CONST_ACTION_TYPE_LOCK_FOR_SERVER SYSRES_CONST_ACTION_TYPE_LOCK_MODIFY SYSRES_CONST_ACTION_TYPE_MARK_AS_READED SYSRES_CONST_ACTION_TYPE_MARK_AS_UNREADED SYSRES_CONST_ACTION_TYPE_MODIFY SYSRES_CONST_ACTION_TYPE_MODIFY_CARD SYSRES_CONST_ACTION_TYPE_MOVE_TO_ARCHIVE SYSRES_CONST_ACTION_TYPE_OFF_ENCRYPTION SYSRES_CONST_ACTION_TYPE_PASSWORD_CHANGE SYSRES_CONST_ACTION_TYPE_PERFORM SYSRES_CONST_ACTION_TYPE_RECOVER_FROM_LOCAL_COPY SYSRES_CONST_ACTION_TYPE_RESTART SYSRES_CONST_ACTION_TYPE_RESTORE_FROM_ARCHIVE SYSRES_CONST_ACTION_TYPE_REVISION SYSRES_CONST_ACTION_TYPE_SEND_BY_MAIL SYSRES_CONST_ACTION_TYPE_SIGN SYSRES_CONST_ACTION_TYPE_START SYSRES_CONST_ACTION_TYPE_UNLOCK SYSRES_CONST_ACTION_TYPE_UNLOCK_FROM_SERVER SYSRES_CONST_ACTION_TYPE_VERSION_STATE SYSRES_CONST_ACTION_TYPE_VERSION_VISIBILITY SYSRES_CONST_ACTION_TYPE_VIEW SYSRES_CONST_ACTION_TYPE_VIEW_SHADOW_COPY SYSRES_CONST_ACTION_TYPE_WORKFLOW_DESCRIPTION_MODIFY SYSRES_CONST_ACTION_TYPE_WRITE_HISTORY SYSRES_CONST_ACTIVE_VERSION_STATE_PICK_VALUE SYSRES_CONST_ADD_REFERENCE_MODE_NAME SYSRES_CONST_ADDITION_REQUISITE_CODE SYSRES_CONST_ADDITIONAL_PARAMS_REQUISITE_CODE SYSRES_CONST_ADITIONAL_JOB_END_DATE_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_READ_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_START_DATE_REQUISITE_NAME SYSRES_CONST_ADITIONAL_JOB_STATE_REQUISITE_NAME SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION_CODE SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE_ACTION SYSRES_CONST_ALL_ACCEPT_CONDITION_RUS SYSRES_CONST_ALL_USERS_GROUP SYSRES_CONST_ALL_USERS_GROUP_NAME SYSRES_CONST_ALL_USERS_SERVER_GROUP_NAME SYSRES_CONST_ALLOWED_ACCESS_TYPE_CODE SYSRES_CONST_ALLOWED_ACCESS_TYPE_NAME SYSRES_CONST_APP_VIEWER_TYPE_REQUISITE_CODE SYSRES_CONST_APPROVING_SIGNATURE_NAME SYSRES_CONST_APPROVING_SIGNATURE_REQUISITE_CODE SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE_CODE SYSRES_CONST_ATTACH_TYPE_COMPONENT_TOKEN SYSRES_CONST_ATTACH_TYPE_DOC SYSRES_CONST_ATTACH_TYPE_EDOC SYSRES_CONST_ATTACH_TYPE_FOLDER SYSRES_CONST_ATTACH_TYPE_JOB SYSRES_CONST_ATTACH_TYPE_REFERENCE SYSRES_CONST_ATTACH_TYPE_TASK SYSRES_CONST_AUTH_ENCODED_PASSWORD SYSRES_CONST_AUTH_ENCODED_PASSWORD_CODE SYSRES_CONST_AUTH_NOVELL SYSRES_CONST_AUTH_PASSWORD SYSRES_CONST_AUTH_PASSWORD_CODE SYSRES_CONST_AUTH_WINDOWS SYSRES_CONST_AUTHENTICATING_SIGNATURE_NAME SYSRES_CONST_AUTHENTICATING_SIGNATURE_REQUISITE_CODE SYSRES_CONST_AUTO_ENUM_METHOD_FLAG SYSRES_CONST_AUTO_NUMERATION_CODE SYSRES_CONST_AUTO_STRONG_ENUM_METHOD_FLAG SYSRES_CONST_AUTOTEXT_NAME_REQUISITE_CODE SYSRES_CONST_AUTOTEXT_TEXT_REQUISITE_CODE SYSRES_CONST_AUTOTEXT_USAGE_ALL SYSRES_CONST_AUTOTEXT_USAGE_ALL_CODE SYSRES_CONST_AUTOTEXT_USAGE_SIGN SYSRES_CONST_AUTOTEXT_USAGE_SIGN_CODE SYSRES_CONST_AUTOTEXT_USAGE_WORK SYSRES_CONST_AUTOTEXT_USAGE_WORK_CODE SYSRES_CONST_AUTOTEXT_USE_ANYWHERE_CODE SYSRES_CONST_AUTOTEXT_USE_ON_SIGNING_CODE SYSRES_CONST_AUTOTEXT_USE_ON_WORK_CODE SYSRES_CONST_BEGIN_DATE_REQUISITE_CODE SYSRES_CONST_BLACK_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_BLUE_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_BTN_PART SYSRES_CONST_CALCULATED_ROLE_TYPE_CODE SYSRES_CONST_CALL_TYPE_VARIABLE_BUTTON_VALUE SYSRES_CONST_CALL_TYPE_VARIABLE_PROGRAM_VALUE SYSRES_CONST_CANCEL_MESSAGE_FUNCTION_RESULT SYSRES_CONST_CARD_PART SYSRES_CONST_CARD_REFERENCE_MODE_NAME SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_ENCRYPT_VALUE SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_AND_ENCRYPT_VALUE SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_VALUE SYSRES_CONST_CHECK_PARAM_VALUE_DATE_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_FLOAT_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_INTEGER_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_PICK_PARAM_TYPE SYSRES_CONST_CHECK_PARAM_VALUE_REEFRENCE_PARAM_TYPE SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_FEMININE SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_CODE_COMPONENT_TYPE_ADMIN SYSRES_CONST_CODE_COMPONENT_TYPE_DEVELOPER SYSRES_CONST_CODE_COMPONENT_TYPE_DOCS SYSRES_CONST_CODE_COMPONENT_TYPE_EDOC_CARDS SYSRES_CONST_CODE_COMPONENT_TYPE_EXTERNAL_EXECUTABLE SYSRES_CONST_CODE_COMPONENT_TYPE_OTHER SYSRES_CONST_CODE_COMPONENT_TYPE_REFERENCE SYSRES_CONST_CODE_COMPONENT_TYPE_REPORT SYSRES_CONST_CODE_COMPONENT_TYPE_SCRIPT SYSRES_CONST_CODE_COMPONENT_TYPE_URL SYSRES_CONST_CODE_REQUISITE_ACCESS SYSRES_CONST_CODE_REQUISITE_CODE SYSRES_CONST_CODE_REQUISITE_COMPONENT SYSRES_CONST_CODE_REQUISITE_DESCRIPTION SYSRES_CONST_CODE_REQUISITE_EXCLUDE_COMPONENT SYSRES_CONST_CODE_REQUISITE_RECORD SYSRES_CONST_COMMENT_REQ_CODE SYSRES_CONST_COMMON_SETTINGS_REQUISITE_CODE SYSRES_CONST_COMP_CODE_GRD SYSRES_CONST_COMPONENT_GROUP_TYPE_REQUISITE_CODE SYSRES_CONST_COMPONENT_TYPE_ADMIN_COMPONENTS SYSRES_CONST_COMPONENT_TYPE_DEVELOPER_COMPONENTS SYSRES_CONST_COMPONENT_TYPE_DOCS SYSRES_CONST_COMPONENT_TYPE_EDOC_CARDS SYSRES_CONST_COMPONENT_TYPE_EDOCS SYSRES_CONST_COMPONENT_TYPE_EXTERNAL_EXECUTABLE SYSRES_CONST_COMPONENT_TYPE_OTHER SYSRES_CONST_COMPONENT_TYPE_REFERENCE_TYPES SYSRES_CONST_COMPONENT_TYPE_REFERENCES SYSRES_CONST_COMPONENT_TYPE_REPORTS SYSRES_CONST_COMPONENT_TYPE_SCRIPTS SYSRES_CONST_COMPONENT_TYPE_URL SYSRES_CONST_COMPONENTS_REMOTE_SERVERS_VIEW_CODE SYSRES_CONST_CONDITION_BLOCK_DESCRIPTION SYSRES_CONST_CONST_FIRM_STATUS_COMMON SYSRES_CONST_CONST_FIRM_STATUS_INDIVIDUAL SYSRES_CONST_CONST_NEGATIVE_VALUE SYSRES_CONST_CONST_POSITIVE_VALUE SYSRES_CONST_CONST_SERVER_STATUS_DONT_REPLICATE SYSRES_CONST_CONST_SERVER_STATUS_REPLICATE SYSRES_CONST_CONTENTS_REQUISITE_CODE SYSRES_CONST_DATA_TYPE_BOOLEAN SYSRES_CONST_DATA_TYPE_DATE SYSRES_CONST_DATA_TYPE_FLOAT SYSRES_CONST_DATA_TYPE_INTEGER SYSRES_CONST_DATA_TYPE_PICK SYSRES_CONST_DATA_TYPE_REFERENCE SYSRES_CONST_DATA_TYPE_STRING SYSRES_CONST_DATA_TYPE_TEXT SYSRES_CONST_DATA_TYPE_VARIANT SYSRES_CONST_DATE_CLOSE_REQ_CODE SYSRES_CONST_DATE_FORMAT_DATE_ONLY_CHAR SYSRES_CONST_DATE_OPEN_REQ_CODE SYSRES_CONST_DATE_REQUISITE SYSRES_CONST_DATE_REQUISITE_CODE SYSRES_CONST_DATE_REQUISITE_NAME SYSRES_CONST_DATE_REQUISITE_TYPE SYSRES_CONST_DATE_TYPE_CHAR SYSRES_CONST_DATETIME_FORMAT_VALUE SYSRES_CONST_DEA_ACCESS_RIGHTS_ACTION_CODE SYSRES_CONST_DESCRIPTION_LOCALIZE_ID_REQUISITE_CODE SYSRES_CONST_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_DET1_PART SYSRES_CONST_DET2_PART SYSRES_CONST_DET3_PART SYSRES_CONST_DET4_PART SYSRES_CONST_DET5_PART SYSRES_CONST_DET6_PART SYSRES_CONST_DETAIL_DATASET_KEY_REQUISITE_CODE SYSRES_CONST_DETAIL_PICK_REQUISITE_CODE SYSRES_CONST_DETAIL_REQ_CODE SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_CODE SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_NAME SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_CODE SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_NAME SYSRES_CONST_DOCUMENT_STORAGES_CODE SYSRES_CONST_DOCUMENT_TEMPLATES_TYPE_NAME SYSRES_CONST_DOUBLE_REQUISITE_CODE SYSRES_CONST_EDITOR_CLOSE_FILE_OBSERV_TYPE_CODE SYSRES_CONST_EDITOR_CLOSE_PROCESS_OBSERV_TYPE_CODE SYSRES_CONST_EDITOR_TYPE_REQUISITE_CODE SYSRES_CONST_EDITORS_APPLICATION_NAME_REQUISITE_CODE SYSRES_CONST_EDITORS_CREATE_SEVERAL_PROCESSES_REQUISITE_CODE SYSRES_CONST_EDITORS_EXTENSION_REQUISITE_CODE SYSRES_CONST_EDITORS_OBSERVER_BY_PROCESS_TYPE SYSRES_CONST_EDITORS_REFERENCE_CODE SYSRES_CONST_EDITORS_REPLACE_SPEC_CHARS_REQUISITE_CODE SYSRES_CONST_EDITORS_USE_PLUGINS_REQUISITE_CODE SYSRES_CONST_EDITORS_VIEW_DOCUMENT_OPENED_TO_EDIT_CODE SYSRES_CONST_EDOC_CARD_TYPE_REQUISITE_CODE SYSRES_CONST_EDOC_CARD_TYPES_LINK_REQUISITE_CODE SYSRES_CONST_EDOC_CERTIFICATE_AND_PASSWORD_ENCODE_CODE SYSRES_CONST_EDOC_CERTIFICATE_ENCODE_CODE SYSRES_CONST_EDOC_DATE_REQUISITE_CODE SYSRES_CONST_EDOC_KIND_REFERENCE_CODE SYSRES_CONST_EDOC_KINDS_BY_TEMPLATE_ACTION_CODE SYSRES_CONST_EDOC_MANAGE_ACCESS_CODE SYSRES_CONST_EDOC_NONE_ENCODE_CODE SYSRES_CONST_EDOC_NUMBER_REQUISITE_CODE SYSRES_CONST_EDOC_PASSWORD_ENCODE_CODE SYSRES_CONST_EDOC_READONLY_ACCESS_CODE SYSRES_CONST_EDOC_SHELL_LIFE_TYPE_VIEW_VALUE SYSRES_CONST_EDOC_SIZE_RESTRICTION_PRIORITY_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_CHECK_ACCESS_RIGHTS_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_COMPUTER_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_DATABASE_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_EDIT_IN_STORAGE_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_LOCAL_PATH_REQUISITE_CODE SYSRES_CONST_EDOC_STORAGE_SHARED_SOURCE_NAME_REQUISITE_CODE SYSRES_CONST_EDOC_TEMPLATE_REQUISITE_CODE SYSRES_CONST_EDOC_TYPES_REFERENCE_CODE SYSRES_CONST_EDOC_VERSION_ACTIVE_STAGE_CODE SYSRES_CONST_EDOC_VERSION_DESIGN_STAGE_CODE SYSRES_CONST_EDOC_VERSION_OBSOLETE_STAGE_CODE SYSRES_CONST_EDOC_WRITE_ACCES_CODE SYSRES_CONST_EDOCUMENT_CARD_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE SYSRES_CONST_ENCODE_CERTIFICATE_TYPE_CODE SYSRES_CONST_END_DATE_REQUISITE_CODE SYSRES_CONST_ENUMERATION_TYPE_REQUISITE_CODE SYSRES_CONST_EXECUTE_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_EXECUTIVE_FILE_STORAGE_TYPE SYSRES_CONST_EXIST_CONST SYSRES_CONST_EXIST_VALUE SYSRES_CONST_EXPORT_LOCK_TYPE_ASK SYSRES_CONST_EXPORT_LOCK_TYPE_WITH_LOCK SYSRES_CONST_EXPORT_LOCK_TYPE_WITHOUT_LOCK SYSRES_CONST_EXPORT_VERSION_TYPE_ASK SYSRES_CONST_EXPORT_VERSION_TYPE_LAST SYSRES_CONST_EXPORT_VERSION_TYPE_LAST_ACTIVE SYSRES_CONST_EXTENSION_REQUISITE_CODE SYSRES_CONST_FILTER_NAME_REQUISITE_CODE SYSRES_CONST_FILTER_REQUISITE_CODE SYSRES_CONST_FILTER_TYPE_COMMON_CODE SYSRES_CONST_FILTER_TYPE_COMMON_NAME SYSRES_CONST_FILTER_TYPE_USER_CODE SYSRES_CONST_FILTER_TYPE_USER_NAME SYSRES_CONST_FILTER_VALUE_REQUISITE_NAME SYSRES_CONST_FLOAT_NUMBER_FORMAT_CHAR SYSRES_CONST_FLOAT_REQUISITE_TYPE SYSRES_CONST_FOLDER_AUTHOR_VALUE SYSRES_CONST_FOLDER_KIND_ANY_OBJECTS SYSRES_CONST_FOLDER_KIND_COMPONENTS SYSRES_CONST_FOLDER_KIND_EDOCS SYSRES_CONST_FOLDER_KIND_JOBS SYSRES_CONST_FOLDER_KIND_TASKS SYSRES_CONST_FOLDER_TYPE_COMMON SYSRES_CONST_FOLDER_TYPE_COMPONENT SYSRES_CONST_FOLDER_TYPE_FAVORITES SYSRES_CONST_FOLDER_TYPE_INBOX SYSRES_CONST_FOLDER_TYPE_OUTBOX SYSRES_CONST_FOLDER_TYPE_QUICK_LAUNCH SYSRES_CONST_FOLDER_TYPE_SEARCH SYSRES_CONST_FOLDER_TYPE_SHORTCUTS SYSRES_CONST_FOLDER_TYPE_USER SYSRES_CONST_FROM_DICTIONARY_ENUM_METHOD_FLAG SYSRES_CONST_FULL_SUBSTITUTE_TYPE SYSRES_CONST_FULL_SUBSTITUTE_TYPE_CODE SYSRES_CONST_FUNCTION_CANCEL_RESULT SYSRES_CONST_FUNCTION_CATEGORY_SYSTEM SYSRES_CONST_FUNCTION_CATEGORY_USER SYSRES_CONST_FUNCTION_FAILURE_RESULT SYSRES_CONST_FUNCTION_SAVE_RESULT SYSRES_CONST_GENERATED_REQUISITE SYSRES_CONST_GREEN_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_GROUP_ACCOUNT_TYPE_VALUE_CODE SYSRES_CONST_GROUP_CATEGORY_NORMAL_CODE SYSRES_CONST_GROUP_CATEGORY_NORMAL_NAME SYSRES_CONST_GROUP_CATEGORY_SERVICE_CODE SYSRES_CONST_GROUP_CATEGORY_SERVICE_NAME SYSRES_CONST_GROUP_COMMON_CATEGORY_FIELD_VALUE SYSRES_CONST_GROUP_FULL_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_RIGHTS_T_REQUISITE_CODE SYSRES_CONST_GROUP_SERVER_CODES_REQUISITE_CODE SYSRES_CONST_GROUP_SERVER_NAME_REQUISITE_CODE SYSRES_CONST_GROUP_SERVICE_CATEGORY_FIELD_VALUE SYSRES_CONST_GROUP_USER_REQUISITE_CODE SYSRES_CONST_GROUPS_REFERENCE_CODE SYSRES_CONST_GROUPS_REQUISITE_CODE SYSRES_CONST_HIDDEN_MODE_NAME SYSRES_CONST_HIGH_LVL_REQUISITE_CODE SYSRES_CONST_HISTORY_ACTION_CREATE_CODE SYSRES_CONST_HISTORY_ACTION_DELETE_CODE SYSRES_CONST_HISTORY_ACTION_EDIT_CODE SYSRES_CONST_HOUR_CHAR SYSRES_CONST_ID_REQUISITE_CODE SYSRES_CONST_IDSPS_REQUISITE_CODE SYSRES_CONST_IMAGE_MODE_COLOR SYSRES_CONST_IMAGE_MODE_GREYSCALE SYSRES_CONST_IMAGE_MODE_MONOCHROME SYSRES_CONST_IMPORTANCE_HIGH SYSRES_CONST_IMPORTANCE_LOW SYSRES_CONST_IMPORTANCE_NORMAL SYSRES_CONST_IN_DESIGN_VERSION_STATE_PICK_VALUE SYSRES_CONST_INCOMING_WORK_RULE_TYPE_CODE SYSRES_CONST_INT_REQUISITE SYSRES_CONST_INT_REQUISITE_TYPE SYSRES_CONST_INTEGER_NUMBER_FORMAT_CHAR SYSRES_CONST_INTEGER_TYPE_CHAR SYSRES_CONST_IS_GENERATED_REQUISITE_NEGATIVE_VALUE SYSRES_CONST_IS_PUBLIC_ROLE_REQUISITE_CODE SYSRES_CONST_IS_REMOTE_USER_NEGATIVE_VALUE SYSRES_CONST_IS_REMOTE_USER_POSITIVE_VALUE SYSRES_CONST_IS_STORED_REQUISITE_NEGATIVE_VALUE SYSRES_CONST_IS_STORED_REQUISITE_STORED_VALUE SYSRES_CONST_ITALIC_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_JOB_BLOCK_DESCRIPTION SYSRES_CONST_JOB_KIND_CONTROL_JOB SYSRES_CONST_JOB_KIND_JOB SYSRES_CONST_JOB_KIND_NOTICE SYSRES_CONST_JOB_STATE_ABORTED SYSRES_CONST_JOB_STATE_COMPLETE SYSRES_CONST_JOB_STATE_WORKING SYSRES_CONST_KIND_REQUISITE_CODE SYSRES_CONST_KIND_REQUISITE_NAME SYSRES_CONST_KINDS_CREATE_SHADOW_COPIES_REQUISITE_CODE SYSRES_CONST_KINDS_DEFAULT_EDOC_LIFE_STAGE_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALL_TEPLATES_ALLOWED_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALLOW_LIFE_CYCLE_STAGE_CHANGING_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_ALLOW_MULTIPLE_ACTIVE_VERSIONS_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_SHARE_ACCES_RIGHTS_BY_DEFAULT_CODE SYSRES_CONST_KINDS_EDOC_TEMPLATE_REQUISITE_CODE SYSRES_CONST_KINDS_EDOC_TYPE_REQUISITE_CODE SYSRES_CONST_KINDS_SIGNERS_REQUISITES_CODE SYSRES_CONST_KOD_INPUT_TYPE SYSRES_CONST_LAST_UPDATE_DATE_REQUISITE_CODE SYSRES_CONST_LIFE_CYCLE_START_STAGE_REQUISITE_CODE SYSRES_CONST_LILAC_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_LINK_OBJECT_KIND_COMPONENT SYSRES_CONST_LINK_OBJECT_KIND_DOCUMENT SYSRES_CONST_LINK_OBJECT_KIND_EDOC SYSRES_CONST_LINK_OBJECT_KIND_FOLDER SYSRES_CONST_LINK_OBJECT_KIND_JOB SYSRES_CONST_LINK_OBJECT_KIND_REFERENCE SYSRES_CONST_LINK_OBJECT_KIND_TASK SYSRES_CONST_LINK_REF_TYPE_REQUISITE_CODE SYSRES_CONST_LIST_REFERENCE_MODE_NAME SYSRES_CONST_LOCALIZATION_DICTIONARY_MAIN_VIEW_CODE SYSRES_CONST_MAIN_VIEW_CODE SYSRES_CONST_MANUAL_ENUM_METHOD_FLAG SYSRES_CONST_MASTER_COMP_TYPE_REQUISITE_CODE SYSRES_CONST_MASTER_TABLE_REC_ID_REQUISITE_CODE SYSRES_CONST_MAXIMIZED_MODE_NAME SYSRES_CONST_ME_VALUE SYSRES_CONST_MESSAGE_ATTENTION_CAPTION SYSRES_CONST_MESSAGE_CONFIRMATION_CAPTION SYSRES_CONST_MESSAGE_ERROR_CAPTION SYSRES_CONST_MESSAGE_INFORMATION_CAPTION SYSRES_CONST_MINIMIZED_MODE_NAME SYSRES_CONST_MINUTE_CHAR SYSRES_CONST_MODULE_REQUISITE_CODE SYSRES_CONST_MONITORING_BLOCK_DESCRIPTION SYSRES_CONST_MONTH_FORMAT_VALUE SYSRES_CONST_NAME_LOCALIZE_ID_REQUISITE_CODE SYSRES_CONST_NAME_REQUISITE_CODE SYSRES_CONST_NAME_SINGULAR_REQUISITE_CODE SYSRES_CONST_NAMEAN_INPUT_TYPE SYSRES_CONST_NEGATIVE_PICK_VALUE SYSRES_CONST_NEGATIVE_VALUE SYSRES_CONST_NO SYSRES_CONST_NO_PICK_VALUE SYSRES_CONST_NO_SIGNATURE_REQUISITE_CODE SYSRES_CONST_NO_VALUE SYSRES_CONST_NONE_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_NORMAL_ACCESS_RIGHTS_TYPE_CODE SYSRES_CONST_NORMAL_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_NORMAL_MODE_NAME SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_CODE SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_NAME SYSRES_CONST_NOTE_REQUISITE_CODE SYSRES_CONST_NOTICE_BLOCK_DESCRIPTION SYSRES_CONST_NUM_REQUISITE SYSRES_CONST_NUM_STR_REQUISITE_CODE SYSRES_CONST_NUMERATION_AUTO_NOT_STRONG SYSRES_CONST_NUMERATION_AUTO_STRONG SYSRES_CONST_NUMERATION_FROM_DICTONARY SYSRES_CONST_NUMERATION_MANUAL SYSRES_CONST_NUMERIC_TYPE_CHAR SYSRES_CONST_NUMREQ_REQUISITE_CODE SYSRES_CONST_OBSOLETE_VERSION_STATE_PICK_VALUE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_CODE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_FEMININE SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_MASCULINE SYSRES_CONST_OPTIONAL_FORM_COMP_REQCODE_PREFIX SYSRES_CONST_ORANGE_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_ORIGINALREF_REQUISITE_CODE SYSRES_CONST_OURFIRM_REF_CODE SYSRES_CONST_OURFIRM_REQUISITE_CODE SYSRES_CONST_OURFIRM_VAR SYSRES_CONST_OUTGOING_WORK_RULE_TYPE_CODE SYSRES_CONST_PICK_NEGATIVE_RESULT SYSRES_CONST_PICK_POSITIVE_RESULT SYSRES_CONST_PICK_REQUISITE SYSRES_CONST_PICK_REQUISITE_TYPE SYSRES_CONST_PICK_TYPE_CHAR SYSRES_CONST_PLAN_STATUS_REQUISITE_CODE SYSRES_CONST_PLATFORM_VERSION_COMMENT SYSRES_CONST_PLUGINS_SETTINGS_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_POSITIVE_PICK_VALUE SYSRES_CONST_POWER_TO_CREATE_ACTION_CODE SYSRES_CONST_POWER_TO_SIGN_ACTION_CODE SYSRES_CONST_PRIORITY_REQUISITE_CODE SYSRES_CONST_QUALIFIED_TASK_TYPE SYSRES_CONST_QUALIFIED_TASK_TYPE_CODE SYSRES_CONST_RECSTAT_REQUISITE_CODE SYSRES_CONST_RED_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_REF_ID_T_REF_TYPE_REQUISITE_CODE SYSRES_CONST_REF_REQUISITE SYSRES_CONST_REF_REQUISITE_TYPE SYSRES_CONST_REF_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE SYSRES_CONST_REFERENCE_RECORD_HISTORY_CREATE_ACTION_CODE SYSRES_CONST_REFERENCE_RECORD_HISTORY_DELETE_ACTION_CODE SYSRES_CONST_REFERENCE_RECORD_HISTORY_MODIFY_ACTION_CODE SYSRES_CONST_REFERENCE_TYPE_CHAR SYSRES_CONST_REFERENCE_TYPE_REQUISITE_NAME SYSRES_CONST_REFERENCES_ADD_PARAMS_REQUISITE_CODE SYSRES_CONST_REFERENCES_DISPLAY_REQUISITE_REQUISITE_CODE SYSRES_CONST_REMOTE_SERVER_STATUS_WORKING SYSRES_CONST_REMOTE_SERVER_TYPE_MAIN SYSRES_CONST_REMOTE_SERVER_TYPE_SECONDARY SYSRES_CONST_REMOTE_USER_FLAG_VALUE_CODE SYSRES_CONST_REPORT_APP_EDITOR_INTERNAL SYSRES_CONST_REPORT_BASE_REPORT_ID_REQUISITE_CODE SYSRES_CONST_REPORT_BASE_REPORT_REQUISITE_CODE SYSRES_CONST_REPORT_SCRIPT_REQUISITE_CODE SYSRES_CONST_REPORT_TEMPLATE_REQUISITE_CODE SYSRES_CONST_REPORT_VIEWER_CODE_REQUISITE_CODE SYSRES_CONST_REQ_ALLOW_COMPONENT_DEFAULT_VALUE SYSRES_CONST_REQ_ALLOW_RECORD_DEFAULT_VALUE SYSRES_CONST_REQ_ALLOW_SERVER_COMPONENT_DEFAULT_VALUE SYSRES_CONST_REQ_MODE_AVAILABLE_CODE SYSRES_CONST_REQ_MODE_EDIT_CODE SYSRES_CONST_REQ_MODE_HIDDEN_CODE SYSRES_CONST_REQ_MODE_NOT_AVAILABLE_CODE SYSRES_CONST_REQ_MODE_VIEW_CODE SYSRES_CONST_REQ_NUMBER_REQUISITE_CODE SYSRES_CONST_REQ_SECTION_VALUE SYSRES_CONST_REQ_TYPE_VALUE SYSRES_CONST_REQUISITE_FORMAT_BY_UNIT SYSRES_CONST_REQUISITE_FORMAT_DATE_FULL SYSRES_CONST_REQUISITE_FORMAT_DATE_TIME SYSRES_CONST_REQUISITE_FORMAT_LEFT SYSRES_CONST_REQUISITE_FORMAT_RIGHT SYSRES_CONST_REQUISITE_FORMAT_WITHOUT_UNIT SYSRES_CONST_REQUISITE_NUMBER_REQUISITE_CODE SYSRES_CONST_REQUISITE_SECTION_ACTIONS SYSRES_CONST_REQUISITE_SECTION_BUTTON SYSRES_CONST_REQUISITE_SECTION_BUTTONS SYSRES_CONST_REQUISITE_SECTION_CARD SYSRES_CONST_REQUISITE_SECTION_TABLE SYSRES_CONST_REQUISITE_SECTION_TABLE10 SYSRES_CONST_REQUISITE_SECTION_TABLE11 SYSRES_CONST_REQUISITE_SECTION_TABLE12 SYSRES_CONST_REQUISITE_SECTION_TABLE13 SYSRES_CONST_REQUISITE_SECTION_TABLE14 SYSRES_CONST_REQUISITE_SECTION_TABLE15 SYSRES_CONST_REQUISITE_SECTION_TABLE16 SYSRES_CONST_REQUISITE_SECTION_TABLE17 SYSRES_CONST_REQUISITE_SECTION_TABLE18 SYSRES_CONST_REQUISITE_SECTION_TABLE19 SYSRES_CONST_REQUISITE_SECTION_TABLE2 SYSRES_CONST_REQUISITE_SECTION_TABLE20 SYSRES_CONST_REQUISITE_SECTION_TABLE21 SYSRES_CONST_REQUISITE_SECTION_TABLE22 SYSRES_CONST_REQUISITE_SECTION_TABLE23 SYSRES_CONST_REQUISITE_SECTION_TABLE24 SYSRES_CONST_REQUISITE_SECTION_TABLE3 SYSRES_CONST_REQUISITE_SECTION_TABLE4 SYSRES_CONST_REQUISITE_SECTION_TABLE5 SYSRES_CONST_REQUISITE_SECTION_TABLE6 SYSRES_CONST_REQUISITE_SECTION_TABLE7 SYSRES_CONST_REQUISITE_SECTION_TABLE8 SYSRES_CONST_REQUISITE_SECTION_TABLE9 SYSRES_CONST_REQUISITES_PSEUDOREFERENCE_REQUISITE_NUMBER_REQUISITE_CODE SYSRES_CONST_RIGHT_ALIGNMENT_CODE SYSRES_CONST_ROLES_REFERENCE_CODE SYSRES_CONST_ROUTE_STEP_AFTER_RUS SYSRES_CONST_ROUTE_STEP_AND_CONDITION_RUS SYSRES_CONST_ROUTE_STEP_OR_CONDITION_RUS SYSRES_CONST_ROUTE_TYPE_COMPLEX SYSRES_CONST_ROUTE_TYPE_PARALLEL SYSRES_CONST_ROUTE_TYPE_SERIAL SYSRES_CONST_SBDATASETDESC_NEGATIVE_VALUE SYSRES_CONST_SBDATASETDESC_POSITIVE_VALUE SYSRES_CONST_SBVIEWSDESC_POSITIVE_VALUE SYSRES_CONST_SCRIPT_BLOCK_DESCRIPTION SYSRES_CONST_SEARCH_BY_TEXT_REQUISITE_CODE SYSRES_CONST_SEARCHES_COMPONENT_CONTENT SYSRES_CONST_SEARCHES_CRITERIA_ACTION_NAME SYSRES_CONST_SEARCHES_EDOC_CONTENT SYSRES_CONST_SEARCHES_FOLDER_CONTENT SYSRES_CONST_SEARCHES_JOB_CONTENT SYSRES_CONST_SEARCHES_REFERENCE_CODE SYSRES_CONST_SEARCHES_TASK_CONTENT SYSRES_CONST_SECOND_CHAR SYSRES_CONST_SECTION_REQUISITE_ACTIONS_VALUE SYSRES_CONST_SECTION_REQUISITE_CARD_VALUE SYSRES_CONST_SECTION_REQUISITE_CODE SYSRES_CONST_SECTION_REQUISITE_DETAIL_1_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_2_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_3_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_4_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_5_VALUE SYSRES_CONST_SECTION_REQUISITE_DETAIL_6_VALUE SYSRES_CONST_SELECT_REFERENCE_MODE_NAME SYSRES_CONST_SELECT_TYPE_SELECTABLE SYSRES_CONST_SELECT_TYPE_SELECTABLE_ONLY_CHILD SYSRES_CONST_SELECT_TYPE_SELECTABLE_WITH_CHILD SYSRES_CONST_SELECT_TYPE_UNSLECTABLE SYSRES_CONST_SERVER_TYPE_MAIN SYSRES_CONST_SERVICE_USER_CATEGORY_FIELD_VALUE SYSRES_CONST_SETTINGS_USER_REQUISITE_CODE SYSRES_CONST_SIGNATURE_AND_ENCODE_CERTIFICATE_TYPE_CODE SYSRES_CONST_SIGNATURE_CERTIFICATE_TYPE_CODE SYSRES_CONST_SINGULAR_TITLE_REQUISITE_CODE SYSRES_CONST_SQL_SERVER_AUTHENTIFICATION_FLAG_VALUE_CODE SYSRES_CONST_SQL_SERVER_ENCODE_AUTHENTIFICATION_FLAG_VALUE_CODE SYSRES_CONST_STANDART_ROUTE_REFERENCE_CODE SYSRES_CONST_STANDART_ROUTE_REFERENCE_COMMENT_REQUISITE_CODE SYSRES_CONST_STANDART_ROUTES_GROUPS_REFERENCE_CODE SYSRES_CONST_STATE_REQ_NAME SYSRES_CONST_STATE_REQUISITE_ACTIVE_VALUE SYSRES_CONST_STATE_REQUISITE_CLOSED_VALUE SYSRES_CONST_STATE_REQUISITE_CODE SYSRES_CONST_STATIC_ROLE_TYPE_CODE SYSRES_CONST_STATUS_PLAN_DEFAULT_VALUE SYSRES_CONST_STATUS_VALUE_AUTOCLEANING SYSRES_CONST_STATUS_VALUE_BLUE_SQUARE SYSRES_CONST_STATUS_VALUE_COMPLETE SYSRES_CONST_STATUS_VALUE_GREEN_SQUARE SYSRES_CONST_STATUS_VALUE_ORANGE_SQUARE SYSRES_CONST_STATUS_VALUE_PURPLE_SQUARE SYSRES_CONST_STATUS_VALUE_RED_SQUARE SYSRES_CONST_STATUS_VALUE_SUSPEND SYSRES_CONST_STATUS_VALUE_YELLOW_SQUARE SYSRES_CONST_STDROUTE_SHOW_TO_USERS_REQUISITE_CODE SYSRES_CONST_STORAGE_TYPE_FILE SYSRES_CONST_STORAGE_TYPE_SQL_SERVER SYSRES_CONST_STR_REQUISITE SYSRES_CONST_STRIKEOUT_LIFE_CYCLE_STAGE_DRAW_STYLE SYSRES_CONST_STRING_FORMAT_LEFT_ALIGN_CHAR SYSRES_CONST_STRING_FORMAT_RIGHT_ALIGN_CHAR SYSRES_CONST_STRING_REQUISITE_CODE SYSRES_CONST_STRING_REQUISITE_TYPE SYSRES_CONST_STRING_TYPE_CHAR SYSRES_CONST_SUBSTITUTES_PSEUDOREFERENCE_CODE SYSRES_CONST_SUBTASK_BLOCK_DESCRIPTION SYSRES_CONST_SYSTEM_SETTING_CURRENT_USER_PARAM_VALUE SYSRES_CONST_SYSTEM_SETTING_EMPTY_VALUE_PARAM_VALUE SYSRES_CONST_SYSTEM_VERSION_COMMENT SYSRES_CONST_TASK_ACCESS_TYPE_ALL SYSRES_CONST_TASK_ACCESS_TYPE_ALL_MEMBERS SYSRES_CONST_TASK_ACCESS_TYPE_MANUAL SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION_AND_PASSWORD SYSRES_CONST_TASK_ENCODE_TYPE_NONE SYSRES_CONST_TASK_ENCODE_TYPE_PASSWORD SYSRES_CONST_TASK_ROUTE_ALL_CONDITION SYSRES_CONST_TASK_ROUTE_AND_CONDITION SYSRES_CONST_TASK_ROUTE_OR_CONDITION SYSRES_CONST_TASK_STATE_ABORTED SYSRES_CONST_TASK_STATE_COMPLETE SYSRES_CONST_TASK_STATE_CONTINUED SYSRES_CONST_TASK_STATE_CONTROL SYSRES_CONST_TASK_STATE_INIT SYSRES_CONST_TASK_STATE_WORKING SYSRES_CONST_TASK_TITLE SYSRES_CONST_TASK_TYPES_GROUPS_REFERENCE_CODE SYSRES_CONST_TASK_TYPES_REFERENCE_CODE SYSRES_CONST_TEMPLATES_REFERENCE_CODE SYSRES_CONST_TEST_DATE_REQUISITE_NAME SYSRES_CONST_TEST_DEV_DATABASE_NAME SYSRES_CONST_TEST_DEV_SYSTEM_CODE SYSRES_CONST_TEST_EDMS_DATABASE_NAME SYSRES_CONST_TEST_EDMS_MAIN_CODE SYSRES_CONST_TEST_EDMS_MAIN_DB_NAME SYSRES_CONST_TEST_EDMS_SECOND_CODE SYSRES_CONST_TEST_EDMS_SECOND_DB_NAME SYSRES_CONST_TEST_EDMS_SYSTEM_CODE SYSRES_CONST_TEST_NUMERIC_REQUISITE_NAME SYSRES_CONST_TEXT_REQUISITE SYSRES_CONST_TEXT_REQUISITE_CODE SYSRES_CONST_TEXT_REQUISITE_TYPE SYSRES_CONST_TEXT_TYPE_CHAR SYSRES_CONST_TYPE_CODE_REQUISITE_CODE SYSRES_CONST_TYPE_REQUISITE_CODE SYSRES_CONST_UNDEFINED_LIFE_CYCLE_STAGE_FONT_COLOR SYSRES_CONST_UNITS_SECTION_ID_REQUISITE_CODE SYSRES_CONST_UNITS_SECTION_REQUISITE_CODE SYSRES_CONST_UNOPERATING_RECORD_FLAG_VALUE_CODE SYSRES_CONST_UNSTORED_DATA_REQUISITE_CODE SYSRES_CONST_UNSTORED_DATA_REQUISITE_NAME SYSRES_CONST_USE_ACCESS_TYPE_CODE SYSRES_CONST_USE_ACCESS_TYPE_NAME SYSRES_CONST_USER_ACCOUNT_TYPE_VALUE_CODE SYSRES_CONST_USER_ADDITIONAL_INFORMATION_REQUISITE_CODE SYSRES_CONST_USER_AND_GROUP_ID_FROM_PSEUDOREFERENCE_REQUISITE_CODE SYSRES_CONST_USER_CATEGORY_NORMAL SYSRES_CONST_USER_CERTIFICATE_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_STATE_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_SUBJECT_NAME_REQUISITE_CODE SYSRES_CONST_USER_CERTIFICATE_THUMBPRINT_REQUISITE_CODE SYSRES_CONST_USER_COMMON_CATEGORY SYSRES_CONST_USER_COMMON_CATEGORY_CODE SYSRES_CONST_USER_FULL_NAME_REQUISITE_CODE SYSRES_CONST_USER_GROUP_TYPE_REQUISITE_CODE SYSRES_CONST_USER_LOGIN_REQUISITE_CODE SYSRES_CONST_USER_REMOTE_CONTROLLER_REQUISITE_CODE SYSRES_CONST_USER_REMOTE_SYSTEM_REQUISITE_CODE SYSRES_CONST_USER_RIGHTS_T_REQUISITE_CODE SYSRES_CONST_USER_SERVER_NAME_REQUISITE_CODE SYSRES_CONST_USER_SERVICE_CATEGORY SYSRES_CONST_USER_SERVICE_CATEGORY_CODE SYSRES_CONST_USER_STATUS_ADMINISTRATOR_CODE SYSRES_CONST_USER_STATUS_ADMINISTRATOR_NAME SYSRES_CONST_USER_STATUS_DEVELOPER_CODE SYSRES_CONST_USER_STATUS_DEVELOPER_NAME SYSRES_CONST_USER_STATUS_DISABLED_CODE SYSRES_CONST_USER_STATUS_DISABLED_NAME SYSRES_CONST_USER_STATUS_SYSTEM_DEVELOPER_CODE SYSRES_CONST_USER_STATUS_USER_CODE SYSRES_CONST_USER_STATUS_USER_NAME SYSRES_CONST_USER_STATUS_USER_NAME_DEPRECATED SYSRES_CONST_USER_TYPE_FIELD_VALUE_USER SYSRES_CONST_USER_TYPE_REQUISITE_CODE SYSRES_CONST_USERS_CONTROLLER_REQUISITE_CODE SYSRES_CONST_USERS_IS_MAIN_SERVER_REQUISITE_CODE SYSRES_CONST_USERS_REFERENCE_CODE SYSRES_CONST_USERS_REGISTRATION_CERTIFICATES_ACTION_NAME SYSRES_CONST_USERS_REQUISITE_CODE SYSRES_CONST_USERS_SYSTEM_REQUISITE_CODE SYSRES_CONST_USERS_USER_ACCESS_RIGHTS_TYPR_REQUISITE_CODE SYSRES_CONST_USERS_USER_AUTHENTICATION_REQUISITE_CODE SYSRES_CONST_USERS_USER_COMPONENT_REQUISITE_CODE SYSRES_CONST_USERS_USER_GROUP_REQUISITE_CODE SYSRES_CONST_USERS_VIEW_CERTIFICATES_ACTION_NAME SYSRES_CONST_VIEW_DEFAULT_CODE SYSRES_CONST_VIEW_DEFAULT_NAME SYSRES_CONST_VIEWER_REQUISITE_CODE SYSRES_CONST_WAITING_BLOCK_DESCRIPTION SYSRES_CONST_WIZARD_FORM_LABEL_TEST_STRING SYSRES_CONST_WIZARD_QUERY_PARAM_HEIGHT_ETALON_STRING SYSRES_CONST_WIZARD_REFERENCE_COMMENT_REQUISITE_CODE SYSRES_CONST_WORK_RULES_DESCRIPTION_REQUISITE_CODE SYSRES_CONST_WORK_TIME_CALENDAR_REFERENCE_CODE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE_RUS SYSRES_CONST_WORK_WORKFLOW_SOFT_ROUTE_TYPE_VALUE_CODE_RUS SYSRES_CONST_WORKFLOW_ROUTE_TYPR_HARD SYSRES_CONST_WORKFLOW_ROUTE_TYPR_SOFT SYSRES_CONST_XML_ENCODING SYSRES_CONST_XREC_STAT_REQUISITE_CODE SYSRES_CONST_XRECID_FIELD_NAME SYSRES_CONST_YES SYSRES_CONST_YES_NO_2_REQUISITE_CODE SYSRES_CONST_YES_NO_REQUISITE_CODE SYSRES_CONST_YES_NO_T_REF_TYPE_REQUISITE_CODE SYSRES_CONST_YES_PICK_VALUE SYSRES_CONST_YES_VALUE CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE ADMINISTRATORS_GROUP_NAME CUSTOMIZERS_GROUP_NAME DEVELOPERS_GROUP_NAME SERVICE_USERS_GROUP_NAME DECISION_BLOCK_FIRST_OPERAND_PROPERTY DECISION_BLOCK_NAME_PROPERTY DECISION_BLOCK_OPERATION_PROPERTY DECISION_BLOCK_RESULT_TYPE_PROPERTY DECISION_BLOCK_SECOND_OPERAND_PROPERTY ANY_FILE_EXTENTION COMPRESSED_DOCUMENT_EXTENSION EXTENDED_DOCUMENT_EXTENSION SHORT_COMPRESSED_DOCUMENT_EXTENSION SHORT_EXTENDED_DOCUMENT_EXTENSION JOB_BLOCK_ABORT_DEADLINE_PROPERTY JOB_BLOCK_AFTER_FINISH_EVENT JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT JOB_BLOCK_ATTACHMENT_PROPERTY JOB_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY JOB_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY JOB_BLOCK_BEFORE_QUERY_PARAMETERS_EVENT JOB_BLOCK_BEFORE_START_EVENT JOB_BLOCK_CREATED_JOBS_PROPERTY JOB_BLOCK_DEADLINE_PROPERTY JOB_BLOCK_EXECUTION_RESULTS_PROPERTY JOB_BLOCK_IS_PARALLEL_PROPERTY JOB_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY JOB_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY JOB_BLOCK_JOB_TEXT_PROPERTY JOB_BLOCK_NAME_PROPERTY JOB_BLOCK_NEED_SIGN_ON_PERFORM_PROPERTY JOB_BLOCK_PERFORMER_PROPERTY JOB_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY JOB_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY JOB_BLOCK_SUBJECT_PROPERTY ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE smHidden smMaximized smMinimized smNormal wmNo wmYes COMPONENT_TOKEN_LINK_KIND DOCUMENT_LINK_KIND EDOCUMENT_LINK_KIND FOLDER_LINK_KIND JOB_LINK_KIND REFERENCE_LINK_KIND TASK_LINK_KIND COMPONENT_TOKEN_LOCK_TYPE EDOCUMENT_VERSION_LOCK_TYPE MONITOR_BLOCK_AFTER_FINISH_EVENT MONITOR_BLOCK_BEFORE_START_EVENT MONITOR_BLOCK_DEADLINE_PROPERTY MONITOR_BLOCK_INTERVAL_PROPERTY MONITOR_BLOCK_INTERVAL_TYPE_PROPERTY MONITOR_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY MONITOR_BLOCK_NAME_PROPERTY MONITOR_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY NOTICE_BLOCK_AFTER_FINISH_EVENT NOTICE_BLOCK_ATTACHMENT_PROPERTY NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY NOTICE_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY NOTICE_BLOCK_BEFORE_START_EVENT NOTICE_BLOCK_CREATED_NOTICES_PROPERTY NOTICE_BLOCK_DEADLINE_PROPERTY NOTICE_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY NOTICE_BLOCK_NAME_PROPERTY NOTICE_BLOCK_NOTICE_TEXT_PROPERTY NOTICE_BLOCK_PERFORMER_PROPERTY NOTICE_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY NOTICE_BLOCK_SUBJECT_PROPERTY dseAfterCancel dseAfterClose dseAfterDelete dseAfterDeleteOutOfTransaction dseAfterInsert dseAfterOpen dseAfterScroll dseAfterUpdate dseAfterUpdateOutOfTransaction dseBeforeCancel dseBeforeClose dseBeforeDelete dseBeforeDetailUpdate dseBeforeInsert dseBeforeOpen dseBeforeUpdate dseOnAnyRequisiteChange dseOnCloseRecord dseOnDeleteError dseOnOpenRecord dseOnPrepareUpdate dseOnUpdateError dseOnUpdateRatifiedRecord dseOnValidDelete dseOnValidUpdate reOnChange reOnChangeValues SELECTION_BEGIN_ROUTE_EVENT SELECTION_END_ROUTE_EVENT CURRENT_PERIOD_IS_REQUIRED PREVIOUS_CARD_TYPE_NAME SHOW_RECORD_PROPERTIES_FORM ACCESS_RIGHTS_SETTING_DIALOG_CODE ADMINISTRATOR_USER_CODE ANALYTIC_REPORT_TYPE asrtHideLocal asrtHideRemote CALCULATED_ROLE_TYPE_CODE COMPONENTS_REFERENCE_DEVELOPER_VIEW_CODE DCTS_TEST_PROTOCOLS_FOLDER_PATH E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED_BY_USER E_EDOC_VERSION_ALREDY_SIGNED E_EDOC_VERSION_ALREDY_SIGNED_BY_USER EDOC_TYPES_CODE_REQUISITE_FIELD_NAME EDOCUMENTS_ALIAS_NAME FILES_FOLDER_PATH FILTER_OPERANDS_DELIMITER FILTER_OPERATIONS_DELIMITER FORMCARD_NAME FORMLIST_NAME GET_EXTENDED_DOCUMENT_EXTENSION_CREATION_MODE GET_EXTENDED_DOCUMENT_EXTENSION_IMPORT_MODE INTEGRATED_REPORT_TYPE IS_BUILDER_APPLICATION_ROLE IS_BUILDER_APPLICATION_ROLE2 IS_BUILDER_USERS ISBSYSDEV LOG_FOLDER_PATH mbCancel mbNo mbNoToAll mbOK mbYes mbYesToAll MEMORY_DATASET_DESRIPTIONS_FILENAME mrNo mrNoToAll mrYes mrYesToAll MULTIPLE_SELECT_DIALOG_CODE NONOPERATING_RECORD_FLAG_FEMININE NONOPERATING_RECORD_FLAG_MASCULINE OPERATING_RECORD_FLAG_FEMININE OPERATING_RECORD_FLAG_MASCULINE PROFILING_SETTINGS_COMMON_SETTINGS_CODE_VALUE PROGRAM_INITIATED_LOOKUP_ACTION ratDelete ratEdit ratInsert REPORT_TYPE REQUIRED_PICK_VALUES_VARIABLE rmCard rmList SBRTE_PROGID_DEV SBRTE_PROGID_RELEASE STATIC_ROLE_TYPE_CODE SUPPRESS_EMPTY_TEMPLATE_CREATION SYSTEM_USER_CODE UPDATE_DIALOG_DATASET USED_IN_OBJECT_HINT_PARAM USER_INITIATED_LOOKUP_ACTION USER_NAME_FORMAT USER_SELECTION_RESTRICTIONS WORKFLOW_TEST_PROTOCOLS_FOLDER_PATH ELS_SUBTYPE_CONTROL_NAME ELS_FOLDER_KIND_CONTROL_NAME REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME PRIVILEGE_COMPONENT_FULL_ACCESS PRIVILEGE_DEVELOPMENT_EXPORT PRIVILEGE_DEVELOPMENT_IMPORT PRIVILEGE_DOCUMENT_DELETE PRIVILEGE_ESD PRIVILEGE_FOLDER_DELETE PRIVILEGE_MANAGE_ACCESS_RIGHTS PRIVILEGE_MANAGE_REPLICATION PRIVILEGE_MANAGE_SESSION_SERVER PRIVILEGE_OBJECT_FULL_ACCESS PRIVILEGE_OBJECT_VIEW PRIVILEGE_RESERVE_LICENSE PRIVILEGE_SYSTEM_CUSTOMIZE PRIVILEGE_SYSTEM_DEVELOP PRIVILEGE_SYSTEM_INSTALL PRIVILEGE_TASK_DELETE PRIVILEGE_USER_PLUGIN_SETTINGS_CUSTOMIZE PRIVILEGES_PSEUDOREFERENCE_CODE ACCESS_TYPES_PSEUDOREFERENCE_CODE ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE ALL_REPLICATE_COMPONENTS_PSEUDOREFERENCE_CODE AVAILABLE_DEVELOPERS_COMPONENTS_PSEUDOREFERENCE_CODE COMPONENTS_PSEUDOREFERENCE_CODE FILTRATER_SETTINGS_CONFLICTS_PSEUDOREFERENCE_CODE GROUPS_PSEUDOREFERENCE_CODE RECEIVE_PROTOCOL_PSEUDOREFERENCE_CODE REFERENCE_REQUISITE_PSEUDOREFERENCE_CODE REFERENCE_REQUISITES_PSEUDOREFERENCE_CODE REFTYPES_PSEUDOREFERENCE_CODE REPLICATION_SEANCES_DIARY_PSEUDOREFERENCE_CODE SEND_PROTOCOL_PSEUDOREFERENCE_CODE SUBSTITUTES_PSEUDOREFERENCE_CODE SYSTEM_SETTINGS_PSEUDOREFERENCE_CODE UNITS_PSEUDOREFERENCE_CODE USERS_PSEUDOREFERENCE_CODE VIEWERS_PSEUDOREFERENCE_CODE CERTIFICATE_TYPE_ENCRYPT CERTIFICATE_TYPE_SIGN CERTIFICATE_TYPE_SIGN_AND_ENCRYPT STORAGE_TYPE_FILE STORAGE_TYPE_NAS_CIFS STORAGE_TYPE_SAPERION STORAGE_TYPE_SQL_SERVER COMPTYPE2_REQUISITE_DOCUMENTS_VALUE COMPTYPE2_REQUISITE_TASKS_VALUE COMPTYPE2_REQUISITE_FOLDERS_VALUE COMPTYPE2_REQUISITE_REFERENCES_VALUE SYSREQ_CODE SYSREQ_COMPTYPE2 SYSREQ_CONST_AVAILABLE_FOR_WEB SYSREQ_CONST_COMMON_CODE SYSREQ_CONST_COMMON_VALUE SYSREQ_CONST_FIRM_CODE SYSREQ_CONST_FIRM_STATUS SYSREQ_CONST_FIRM_VALUE SYSREQ_CONST_SERVER_STATUS SYSREQ_CONTENTS SYSREQ_DATE_OPEN SYSREQ_DATE_CLOSE SYSREQ_DESCRIPTION SYSREQ_DESCRIPTION_LOCALIZE_ID SYSREQ_DOUBLE SYSREQ_EDOC_ACCESS_TYPE SYSREQ_EDOC_AUTHOR SYSREQ_EDOC_CREATED SYSREQ_EDOC_DELEGATE_RIGHTS_REQUISITE_CODE SYSREQ_EDOC_EDITOR SYSREQ_EDOC_ENCODE_TYPE SYSREQ_EDOC_ENCRYPTION_PLUGIN_NAME SYSREQ_EDOC_ENCRYPTION_PLUGIN_VERSION SYSREQ_EDOC_EXPORT_DATE SYSREQ_EDOC_EXPORTER SYSREQ_EDOC_KIND SYSREQ_EDOC_LIFE_STAGE_NAME SYSREQ_EDOC_LOCKED_FOR_SERVER_CODE SYSREQ_EDOC_MODIFIED SYSREQ_EDOC_NAME SYSREQ_EDOC_NOTE SYSREQ_EDOC_QUALIFIED_ID SYSREQ_EDOC_SESSION_KEY SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_NAME SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_VERSION SYSREQ_EDOC_SIGNATURE_TYPE SYSREQ_EDOC_SIGNED SYSREQ_EDOC_STORAGE SYSREQ_EDOC_STORAGES_ARCHIVE_STORAGE SYSREQ_EDOC_STORAGES_CHECK_RIGHTS SYSREQ_EDOC_STORAGES_COMPUTER_NAME SYSREQ_EDOC_STORAGES_EDIT_IN_STORAGE SYSREQ_EDOC_STORAGES_EXECUTIVE_STORAGE SYSREQ_EDOC_STORAGES_FUNCTION SYSREQ_EDOC_STORAGES_INITIALIZED SYSREQ_EDOC_STORAGES_LOCAL_PATH SYSREQ_EDOC_STORAGES_SAPERION_DATABASE_NAME SYSREQ_EDOC_STORAGES_SEARCH_BY_TEXT SYSREQ_EDOC_STORAGES_SERVER_NAME SYSREQ_EDOC_STORAGES_SHARED_SOURCE_NAME SYSREQ_EDOC_STORAGES_TYPE SYSREQ_EDOC_TEXT_MODIFIED SYSREQ_EDOC_TYPE_ACT_CODE SYSREQ_EDOC_TYPE_ACT_DESCRIPTION SYSREQ_EDOC_TYPE_ACT_DESCRIPTION_LOCALIZE_ID SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE_EXISTS SYSREQ_EDOC_TYPE_ACT_SECTION SYSREQ_EDOC_TYPE_ADD_PARAMS SYSREQ_EDOC_TYPE_COMMENT SYSREQ_EDOC_TYPE_EVENT_TEXT SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID SYSREQ_EDOC_TYPE_NAME_LOCALIZE_ID SYSREQ_EDOC_TYPE_NUMERATION_METHOD SYSREQ_EDOC_TYPE_PSEUDO_REQUISITE_CODE SYSREQ_EDOC_TYPE_REQ_CODE SYSREQ_EDOC_TYPE_REQ_DESCRIPTION SYSREQ_EDOC_TYPE_REQ_DESCRIPTION_LOCALIZE_ID SYSREQ_EDOC_TYPE_REQ_IS_LEADING SYSREQ_EDOC_TYPE_REQ_IS_REQUIRED SYSREQ_EDOC_TYPE_REQ_NUMBER SYSREQ_EDOC_TYPE_REQ_ON_CHANGE SYSREQ_EDOC_TYPE_REQ_ON_CHANGE_EXISTS SYSREQ_EDOC_TYPE_REQ_ON_SELECT SYSREQ_EDOC_TYPE_REQ_ON_SELECT_KIND SYSREQ_EDOC_TYPE_REQ_SECTION SYSREQ_EDOC_TYPE_VIEW_CARD SYSREQ_EDOC_TYPE_VIEW_CODE SYSREQ_EDOC_TYPE_VIEW_COMMENT SYSREQ_EDOC_TYPE_VIEW_IS_MAIN SYSREQ_EDOC_TYPE_VIEW_NAME SYSREQ_EDOC_TYPE_VIEW_NAME_LOCALIZE_ID SYSREQ_EDOC_VERSION_AUTHOR SYSREQ_EDOC_VERSION_CRC SYSREQ_EDOC_VERSION_DATA SYSREQ_EDOC_VERSION_EDITOR SYSREQ_EDOC_VERSION_EXPORT_DATE SYSREQ_EDOC_VERSION_EXPORTER SYSREQ_EDOC_VERSION_HIDDEN SYSREQ_EDOC_VERSION_LIFE_STAGE SYSREQ_EDOC_VERSION_MODIFIED SYSREQ_EDOC_VERSION_NOTE SYSREQ_EDOC_VERSION_SIGNATURE_TYPE SYSREQ_EDOC_VERSION_SIGNED SYSREQ_EDOC_VERSION_SIZE SYSREQ_EDOC_VERSION_SOURCE SYSREQ_EDOC_VERSION_TEXT_MODIFIED SYSREQ_EDOCKIND_DEFAULT_VERSION_STATE_CODE SYSREQ_FOLDER_KIND SYSREQ_FUNC_CATEGORY SYSREQ_FUNC_COMMENT SYSREQ_FUNC_GROUP SYSREQ_FUNC_GROUP_COMMENT SYSREQ_FUNC_GROUP_NUMBER SYSREQ_FUNC_HELP SYSREQ_FUNC_PARAM_DEF_VALUE SYSREQ_FUNC_PARAM_IDENT SYSREQ_FUNC_PARAM_NUMBER SYSREQ_FUNC_PARAM_TYPE SYSREQ_FUNC_TEXT SYSREQ_GROUP_CATEGORY SYSREQ_ID SYSREQ_LAST_UPDATE SYSREQ_LEADER_REFERENCE SYSREQ_LINE_NUMBER SYSREQ_MAIN_RECORD_ID SYSREQ_NAME SYSREQ_NAME_LOCALIZE_ID SYSREQ_NOTE SYSREQ_ORIGINAL_RECORD SYSREQ_OUR_FIRM SYSREQ_PROFILING_SETTINGS_BATCH_LOGING SYSREQ_PROFILING_SETTINGS_BATCH_SIZE SYSREQ_PROFILING_SETTINGS_PROFILING_ENABLED SYSREQ_PROFILING_SETTINGS_SQL_PROFILING_ENABLED SYSREQ_PROFILING_SETTINGS_START_LOGGED SYSREQ_RECORD_STATUS SYSREQ_REF_REQ_FIELD_NAME SYSREQ_REF_REQ_FORMAT SYSREQ_REF_REQ_GENERATED SYSREQ_REF_REQ_LENGTH SYSREQ_REF_REQ_PRECISION SYSREQ_REF_REQ_REFERENCE SYSREQ_REF_REQ_SECTION SYSREQ_REF_REQ_STORED SYSREQ_REF_REQ_TOKENS SYSREQ_REF_REQ_TYPE SYSREQ_REF_REQ_VIEW SYSREQ_REF_TYPE_ACT_CODE SYSREQ_REF_TYPE_ACT_DESCRIPTION SYSREQ_REF_TYPE_ACT_DESCRIPTION_LOCALIZE_ID SYSREQ_REF_TYPE_ACT_ON_EXECUTE SYSREQ_REF_TYPE_ACT_ON_EXECUTE_EXISTS SYSREQ_REF_TYPE_ACT_SECTION SYSREQ_REF_TYPE_ADD_PARAMS SYSREQ_REF_TYPE_COMMENT SYSREQ_REF_TYPE_COMMON_SETTINGS SYSREQ_REF_TYPE_DISPLAY_REQUISITE_NAME SYSREQ_REF_TYPE_EVENT_TEXT SYSREQ_REF_TYPE_MAIN_LEADING_REF SYSREQ_REF_TYPE_NAME_IN_SINGULAR SYSREQ_REF_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID SYSREQ_REF_TYPE_NAME_LOCALIZE_ID SYSREQ_REF_TYPE_NUMERATION_METHOD SYSREQ_REF_TYPE_REQ_CODE SYSREQ_REF_TYPE_REQ_DESCRIPTION SYSREQ_REF_TYPE_REQ_DESCRIPTION_LOCALIZE_ID SYSREQ_REF_TYPE_REQ_IS_CONTROL SYSREQ_REF_TYPE_REQ_IS_FILTER SYSREQ_REF_TYPE_REQ_IS_LEADING SYSREQ_REF_TYPE_REQ_IS_REQUIRED SYSREQ_REF_TYPE_REQ_NUMBER SYSREQ_REF_TYPE_REQ_ON_CHANGE SYSREQ_REF_TYPE_REQ_ON_CHANGE_EXISTS SYSREQ_REF_TYPE_REQ_ON_SELECT SYSREQ_REF_TYPE_REQ_ON_SELECT_KIND SYSREQ_REF_TYPE_REQ_SECTION SYSREQ_REF_TYPE_VIEW_CARD SYSREQ_REF_TYPE_VIEW_CODE SYSREQ_REF_TYPE_VIEW_COMMENT SYSREQ_REF_TYPE_VIEW_IS_MAIN SYSREQ_REF_TYPE_VIEW_NAME SYSREQ_REF_TYPE_VIEW_NAME_LOCALIZE_ID SYSREQ_REFERENCE_TYPE_ID SYSREQ_STATE SYSREQ_STAT\u0415 SYSREQ_SYSTEM_SETTINGS_VALUE SYSREQ_TYPE SYSREQ_UNIT SYSREQ_UNIT_ID SYSREQ_USER_GROUPS_GROUP_FULL_NAME SYSREQ_USER_GROUPS_GROUP_NAME SYSREQ_USER_GROUPS_GROUP_SERVER_NAME SYSREQ_USERS_ACCESS_RIGHTS SYSREQ_USERS_AUTHENTICATION SYSREQ_USERS_CATEGORY SYSREQ_USERS_COMPONENT SYSREQ_USERS_COMPONENT_USER_IS_PUBLIC SYSREQ_USERS_DOMAIN SYSREQ_USERS_FULL_USER_NAME SYSREQ_USERS_GROUP SYSREQ_USERS_IS_MAIN_SERVER SYSREQ_USERS_LOGIN SYSREQ_USERS_REFERENCE_USER_IS_PUBLIC SYSREQ_USERS_STATUS SYSREQ_USERS_USER_CERTIFICATE SYSREQ_USERS_USER_CERTIFICATE_INFO SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_NAME SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_VERSION SYSREQ_USERS_USER_CERTIFICATE_STATE SYSREQ_USERS_USER_CERTIFICATE_SUBJECT_NAME SYSREQ_USERS_USER_CERTIFICATE_THUMBPRINT SYSREQ_USERS_USER_DEFAULT_CERTIFICATE SYSREQ_USERS_USER_DESCRIPTION SYSREQ_USERS_USER_GLOBAL_NAME SYSREQ_USERS_USER_LOGIN SYSREQ_USERS_USER_MAIN_SERVER SYSREQ_USERS_USER_TYPE SYSREQ_WORK_RULES_FOLDER_ID RESULT_VAR_NAME RESULT_VAR_NAME_ENG AUTO_NUMERATION_RULE_ID CANT_CHANGE_ID_REQUISITE_RULE_ID CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID CHECK_CHANGING_REFERENCE_RECORD_USE_RULE_ID CHECK_CODE_REQUISITE_RULE_ID CHECK_DELETING_REFERENCE_RECORD_USE_RULE_ID CHECK_FILTRATER_CHANGES_RULE_ID CHECK_RECORD_INTERVAL_RULE_ID CHECK_REFERENCE_INTERVAL_RULE_ID CHECK_REQUIRED_DATA_FULLNESS_RULE_ID CHECK_REQUIRED_REQUISITES_FULLNESS_RULE_ID MAKE_RECORD_UNRATIFIED_RULE_ID RESTORE_AUTO_NUMERATION_RULE_ID SET_FIRM_CONTEXT_FROM_RECORD_RULE_ID SET_FIRST_RECORD_IN_LIST_FORM_RULE_ID SET_IDSPS_VALUE_RULE_ID SET_NEXT_CODE_VALUE_RULE_ID SET_OURFIRM_BOUNDS_RULE_ID SET_OURFIRM_REQUISITE_RULE_ID SCRIPT_BLOCK_AFTER_FINISH_EVENT SCRIPT_BLOCK_BEFORE_START_EVENT SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY SCRIPT_BLOCK_NAME_PROPERTY SCRIPT_BLOCK_SCRIPT_PROPERTY SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY SUBTASK_BLOCK_AFTER_FINISH_EVENT SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT SUBTASK_BLOCK_ATTACHMENTS_PROPERTY SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY SUBTASK_BLOCK_BEFORE_START_EVENT SUBTASK_BLOCK_CREATED_TASK_PROPERTY SUBTASK_BLOCK_CREATION_EVENT SUBTASK_BLOCK_DEADLINE_PROPERTY SUBTASK_BLOCK_IMPORTANCE_PROPERTY SUBTASK_BLOCK_INITIATOR_PROPERTY SUBTASK_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY SUBTASK_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY SUBTASK_BLOCK_JOBS_TYPE_PROPERTY SUBTASK_BLOCK_NAME_PROPERTY SUBTASK_BLOCK_PARALLEL_ROUTE_PROPERTY SUBTASK_BLOCK_PERFORMERS_PROPERTY SUBTASK_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY SUBTASK_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY SUBTASK_BLOCK_REQUIRE_SIGN_PROPERTY SUBTASK_BLOCK_STANDARD_ROUTE_PROPERTY SUBTASK_BLOCK_START_EVENT SUBTASK_BLOCK_STEP_CONTROL_PROPERTY SUBTASK_BLOCK_SUBJECT_PROPERTY SUBTASK_BLOCK_TASK_CONTROL_PROPERTY SUBTASK_BLOCK_TEXT_PROPERTY SUBTASK_BLOCK_UNLOCK_ATTACHMENTS_ON_STOP_PROPERTY SUBTASK_BLOCK_USE_STANDARD_ROUTE_PROPERTY SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY SYSCOMP_CONTROL_JOBS SYSCOMP_FOLDERS SYSCOMP_JOBS SYSCOMP_NOTICES SYSCOMP_TASKS SYSDLG_CREATE_EDOCUMENT SYSDLG_CREATE_EDOCUMENT_VERSION SYSDLG_CURRENT_PERIOD SYSDLG_EDIT_FUNCTION_HELP SYSDLG_EDOCUMENT_KINDS_FOR_TEMPLATE SYSDLG_EXPORT_MULTIPLE_EDOCUMENTS SYSDLG_EXPORT_SINGLE_EDOCUMENT SYSDLG_IMPORT_EDOCUMENT SYSDLG_MULTIPLE_SELECT SYSDLG_SETUP_ACCESS_RIGHTS SYSDLG_SETUP_DEFAULT_RIGHTS SYSDLG_SETUP_FILTER_CONDITION SYSDLG_SETUP_SIGN_RIGHTS SYSDLG_SETUP_TASK_OBSERVERS SYSDLG_SETUP_TASK_ROUTE SYSDLG_SETUP_USERS_LIST SYSDLG_SIGN_EDOCUMENT SYSDLG_SIGN_MULTIPLE_EDOCUMENTS SYSREF_ACCESS_RIGHTS_TYPES SYSREF_ADMINISTRATION_HISTORY SYSREF_ALL_AVAILABLE_COMPONENTS SYSREF_ALL_AVAILABLE_PRIVILEGES SYSREF_ALL_REPLICATING_COMPONENTS SYSREF_AVAILABLE_DEVELOPERS_COMPONENTS SYSREF_CALENDAR_EVENTS SYSREF_COMPONENT_TOKEN_HISTORY SYSREF_COMPONENT_TOKENS SYSREF_COMPONENTS SYSREF_CONSTANTS SYSREF_DATA_RECEIVE_PROTOCOL SYSREF_DATA_SEND_PROTOCOL SYSREF_DIALOGS SYSREF_DIALOGS_REQUISITES SYSREF_EDITORS SYSREF_EDOC_CARDS SYSREF_EDOC_TYPES SYSREF_EDOCUMENT_CARD_REQUISITES SYSREF_EDOCUMENT_CARD_TYPES SYSREF_EDOCUMENT_CARD_TYPES_REFERENCE SYSREF_EDOCUMENT_CARDS SYSREF_EDOCUMENT_HISTORY SYSREF_EDOCUMENT_KINDS SYSREF_EDOCUMENT_REQUISITES SYSREF_EDOCUMENT_SIGNATURES SYSREF_EDOCUMENT_TEMPLATES SYSREF_EDOCUMENT_TEXT_STORAGES SYSREF_EDOCUMENT_VIEWS SYSREF_FILTERER_SETUP_CONFLICTS SYSREF_FILTRATER_SETTING_CONFLICTS SYSREF_FOLDER_HISTORY SYSREF_FOLDERS SYSREF_FUNCTION_GROUPS SYSREF_FUNCTION_PARAMS SYSREF_FUNCTIONS SYSREF_JOB_HISTORY SYSREF_LINKS SYSREF_LOCALIZATION_DICTIONARY SYSREF_LOCALIZATION_LANGUAGES SYSREF_MODULES SYSREF_PRIVILEGES SYSREF_RECORD_HISTORY SYSREF_REFERENCE_REQUISITES SYSREF_REFERENCE_TYPE_VIEWS SYSREF_REFERENCE_TYPES SYSREF_REFERENCES SYSREF_REFERENCES_REQUISITES SYSREF_REMOTE_SERVERS SYSREF_REPLICATION_SESSIONS_LOG SYSREF_REPLICATION_SESSIONS_PROTOCOL SYSREF_REPORTS SYSREF_ROLES SYSREF_ROUTE_BLOCK_GROUPS SYSREF_ROUTE_BLOCKS SYSREF_SCRIPTS SYSREF_SEARCHES SYSREF_SERVER_EVENTS SYSREF_SERVER_EVENTS_HISTORY SYSREF_STANDARD_ROUTE_GROUPS SYSREF_STANDARD_ROUTES SYSREF_STATUSES SYSREF_SYSTEM_SETTINGS SYSREF_TASK_HISTORY SYSREF_TASK_KIND_GROUPS SYSREF_TASK_KINDS SYSREF_TASK_RIGHTS SYSREF_TASK_SIGNATURES SYSREF_TASKS SYSREF_UNITS SYSREF_USER_GROUPS SYSREF_USER_GROUPS_REFERENCE SYSREF_USER_SUBSTITUTION SYSREF_USERS SYSREF_USERS_REFERENCE SYSREF_VIEWERS SYSREF_WORKING_TIME_CALENDARS ACCESS_RIGHTS_TABLE_NAME EDMS_ACCESS_TABLE_NAME EDOC_TYPES_TABLE_NAME TEST_DEV_DB_NAME TEST_DEV_SYSTEM_CODE TEST_EDMS_DB_NAME TEST_EDMS_MAIN_CODE TEST_EDMS_MAIN_DB_NAME TEST_EDMS_SECOND_CODE TEST_EDMS_SECOND_DB_NAME TEST_EDMS_SYSTEM_CODE TEST_ISB5_MAIN_CODE TEST_ISB5_SECOND_CODE TEST_SQL_SERVER_2005_NAME TEST_SQL_SERVER_NAME ATTENTION_CAPTION cbsCommandLinks cbsDefault CONFIRMATION_CAPTION ERROR_CAPTION INFORMATION_CAPTION mrCancel mrOk EDOC_VERSION_ACTIVE_STAGE_CODE EDOC_VERSION_DESIGN_STAGE_CODE EDOC_VERSION_OBSOLETE_STAGE_CODE cpDataEnciphermentEnabled cpDigitalSignatureEnabled cpID cpIssuer cpPluginVersion cpSerial cpSubjectName cpSubjSimpleName cpValidFromDate cpValidToDate ISBL_SYNTAX NO_SYNTAX XML_SYNTAX WAIT_BLOCK_AFTER_FINISH_EVENT WAIT_BLOCK_BEFORE_START_EVENT WAIT_BLOCK_DEADLINE_PROPERTY WAIT_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY WAIT_BLOCK_NAME_PROPERTY WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY SYSRES_COMMON SYSRES_CONST SYSRES_MBFUNC SYSRES_SBDATA SYSRES_SBGUI SYSRES_SBINTF SYSRES_SBREFDSC SYSRES_SQLERRORS SYSRES_SYSCOMP atUser atGroup atRole aemEnabledAlways aemDisabledAlways aemEnabledOnBrowse aemEnabledOnEdit aemDisabledOnBrowseEmpty apBegin apEnd alLeft alRight asmNever asmNoButCustomize asmAsLastTime asmYesButCustomize asmAlways cirCommon cirRevoked ctSignature ctEncode ctSignatureEncode clbUnchecked clbChecked clbGrayed ceISB ceAlways ceNever ctDocument ctReference ctScript ctUnknown ctReport ctDialog ctFunction ctFolder ctEDocument ctTask ctJob ctNotice ctControlJob cfInternal cfDisplay ciUnspecified ciWrite ciRead ckFolder ckEDocument ckTask ckJob ckComponentToken ckAny ckReference ckScript ckReport ckDialog ctISBLEditor ctBevel ctButton ctCheckListBox ctComboBox ctComboEdit ctGrid ctDBCheckBox ctDBComboBox ctDBEdit ctDBEllipsis ctDBMemo ctDBNavigator ctDBRadioGroup ctDBStatusLabel ctEdit ctGroupBox ctInplaceHint ctMemo ctPanel ctListBox ctRadioButton ctRichEdit ctTabSheet ctWebBrowser ctImage ctHyperLink ctLabel ctDBMultiEllipsis ctRibbon ctRichView ctInnerPanel ctPanelGroup ctBitButton cctDate cctInteger cctNumeric cctPick cctReference cctString cctText cltInternal cltPrimary cltGUI dseBeforeOpen dseAfterOpen dseBeforeClose dseAfterClose dseOnValidDelete dseBeforeDelete dseAfterDelete dseAfterDeleteOutOfTransaction dseOnDeleteError dseBeforeInsert dseAfterInsert dseOnValidUpdate dseBeforeUpdate dseOnUpdateRatifiedRecord dseAfterUpdate dseAfterUpdateOutOfTransaction dseOnUpdateError dseAfterScroll dseOnOpenRecord dseOnCloseRecord dseBeforeCancel dseAfterCancel dseOnUpdateDeadlockError dseBeforeDetailUpdate dseOnPrepareUpdate dseOnAnyRequisiteChange dssEdit dssInsert dssBrowse dssInActive dftDate dftShortDate dftDateTime dftTimeStamp dotDays dotHours dotMinutes dotSeconds dtkndLocal dtkndUTC arNone arView arEdit arFull ddaView ddaEdit emLock emEdit emSign emExportWithLock emImportWithUnlock emChangeVersionNote emOpenForModify emChangeLifeStage emDelete emCreateVersion emImport emUnlockExportedWithLock emStart emAbort emReInit emMarkAsReaded emMarkAsUnreaded emPerform emAccept emResume emChangeRights emEditRoute emEditObserver emRecoveryFromLocalCopy emChangeWorkAccessType emChangeEncodeTypeToCertificate emChangeEncodeTypeToPassword emChangeEncodeTypeToNone emChangeEncodeTypeToCertificatePassword emChangeStandardRoute emGetText emOpenForView emMoveToStorage emCreateObject emChangeVersionHidden emDeleteVersion emChangeLifeCycleStage emApprovingSign emExport emContinue emLockFromEdit emUnLockForEdit emLockForServer emUnlockFromServer emDelegateAccessRights emReEncode ecotFile ecotProcess eaGet eaCopy eaCreate eaCreateStandardRoute edltAll edltNothing edltQuery essmText essmCard esvtLast esvtLastActive esvtSpecified edsfExecutive edsfArchive edstSQLServer edstFile edvstNone edvstEDocumentVersionCopy edvstFile edvstTemplate edvstScannedFile vsDefault vsDesign vsActive vsObsolete etNone etCertificate etPassword etCertificatePassword ecException ecWarning ecInformation estAll estApprovingOnly evtLast evtLastActive evtQuery fdtString fdtNumeric fdtInteger fdtDate fdtText fdtUnknown fdtWideString fdtLargeInteger ftInbox ftOutbox ftFavorites ftCommonFolder ftUserFolder ftComponents ftQuickLaunch ftShortcuts ftSearch grhAuto grhX1 grhX2 grhX3 hltText hltRTF hltHTML iffBMP iffJPEG iffMultiPageTIFF iffSinglePageTIFF iffTIFF iffPNG im8bGrayscale im24bRGB im1bMonochrome itBMP itJPEG itWMF itPNG ikhInformation ikhWarning ikhError ikhNoIcon icUnknown icScript icFunction icIntegratedReport icAnalyticReport icDataSetEventHandler icActionHandler icFormEventHandler icLookUpEventHandler icRequisiteChangeEventHandler icBeforeSearchEventHandler icRoleCalculation icSelectRouteEventHandler icBlockPropertyCalculation icBlockQueryParamsEventHandler icChangeSearchResultEventHandler icBlockEventHandler icSubTaskInitEventHandler icEDocDataSetEventHandler icEDocLookUpEventHandler icEDocActionHandler icEDocFormEventHandler icEDocRequisiteChangeEventHandler icStructuredConversionRule icStructuredConversionEventBefore icStructuredConversionEventAfter icWizardEventHandler icWizardFinishEventHandler icWizardStepEventHandler icWizardStepFinishEventHandler icWizardActionEnableEventHandler icWizardActionExecuteEventHandler icCreateJobsHandler icCreateNoticesHandler icBeforeLookUpEventHandler icAfterLookUpEventHandler icTaskAbortEventHandler icWorkflowBlockActionHandler icDialogDataSetEventHandler icDialogActionHandler icDialogLookUpEventHandler icDialogRequisiteChangeEventHandler icDialogFormEventHandler icDialogValidCloseEventHandler icBlockFormEventHandler icTaskFormEventHandler icReferenceMethod icEDocMethod icDialogMethod icProcessMessageHandler isShow isHide isByUserSettings jkJob jkNotice jkControlJob jtInner jtLeft jtRight jtFull jtCross lbpAbove lbpBelow lbpLeft lbpRight eltPerConnection eltPerUser sfcUndefined sfcBlack sfcGreen sfcRed sfcBlue sfcOrange sfcLilac sfsItalic sfsStrikeout sfsNormal ldctStandardRoute ldctWizard ldctScript ldctFunction ldctRouteBlock ldctIntegratedReport ldctAnalyticReport ldctReferenceType ldctEDocumentType ldctDialog ldctServerEvents mrcrtNone mrcrtUser mrcrtMaximal mrcrtCustom vtEqual vtGreaterOrEqual vtLessOrEqual vtRange rdYesterday rdToday rdTomorrow rdThisWeek rdThisMonth rdThisYear rdNextMonth rdNextWeek rdLastWeek rdLastMonth rdWindow rdFile rdPrinter rdtString rdtNumeric rdtInteger rdtDate rdtReference rdtAccount rdtText rdtPick rdtUnknown rdtLargeInteger rdtDocument reOnChange reOnChangeValues ttGlobal ttLocal ttUser ttSystem ssmBrowse ssmSelect ssmMultiSelect ssmBrowseModal smSelect smLike smCard stNone stAuthenticating stApproving sctString sctStream sstAnsiSort sstNaturalSort svtEqual svtContain soatString soatNumeric soatInteger soatDatetime soatReferenceRecord soatText soatPick soatBoolean soatEDocument soatAccount soatIntegerCollection soatNumericCollection soatStringCollection soatPickCollection soatDatetimeCollection soatBooleanCollection soatReferenceRecordCollection soatEDocumentCollection soatAccountCollection soatContents soatUnknown tarAbortByUser tarAbortByWorkflowException tvtAllWords tvtExactPhrase tvtAnyWord usNone usCompleted usRedSquare usBlueSquare usYellowSquare usGreenSquare usOrangeSquare usPurpleSquare usFollowUp utUnknown utUser utDeveloper utAdministrator utSystemDeveloper utDisconnected btAnd btDetailAnd btOr btNotOr btOnly vmView vmSelect vmNavigation vsmSingle vsmMultiple vsmMultipleCheck vsmNoSelection wfatPrevious wfatNext wfatCancel wfatFinish wfepUndefined wfepText3 wfepText6 wfepText9 wfepSpinEdit wfepDropDown wfepRadioGroup wfepFlag wfepText12 wfepText15 wfepText18 wfepText21 wfepText24 wfepText27 wfepText30 wfepRadioGroupColumn1 wfepRadioGroupColumn2 wfepRadioGroupColumn3 wfetQueryParameter wfetText wfetDelimiter wfetLabel wptString wptInteger wptNumeric wptBoolean wptDateTime wptPick wptText wptUser wptUserList wptEDocumentInfo wptEDocumentInfoList wptReferenceRecordInfo wptReferenceRecordInfoList wptFolderInfo wptTaskInfo wptContents wptFileName wptDate wsrComplete wsrGoNext wsrGoPrevious wsrCustom wsrCancel wsrGoFinal wstForm wstEDocument wstTaskCard wstReferenceRecordCard wstFinal waAll waPerformers waManual wsbStart wsbFinish wsbNotice wsbStep wsbDecision wsbWait wsbMonitor wsbScript wsbConnector wsbSubTask wsbLifeCycleStage wsbPause wdtInteger wdtFloat wdtString wdtPick wdtDateTime wdtBoolean wdtTask wdtJob wdtFolder wdtEDocument wdtReferenceRecord wdtUser wdtGroup wdtRole wdtIntegerCollection wdtFloatCollection wdtStringCollection wdtPickCollection wdtDateTimeCollection wdtBooleanCollection wdtTaskCollection wdtJobCollection wdtFolderCollection wdtEDocumentCollection wdtReferenceRecordCollection wdtUserCollection wdtGroupCollection wdtRoleCollection wdtContents wdtUserList wdtSearchDescription wdtDeadLine wdtPickSet wdtAccountCollection wiLow wiNormal wiHigh wrtSoft wrtHard wsInit wsRunning wsDone wsControlled wsAborted wsContinued wtmFull wtmFromCurrent wtmOnlyCurrent ",class:"AltState Application CallType ComponentTokens CreatedJobs CreatedNotices ControlState DialogResult Dialogs EDocuments EDocumentVersionSource Folders GlobalIDs Job Jobs InputValue LookUpReference LookUpRequisiteNames LookUpSearch Object ParentComponent Processes References Requisite ReportName Reports Result Scripts Searches SelectedAttachments SelectedItems SelectMode Sender ServerEvents ServiceFactory ShiftState SubTask SystemDialogs Tasks Wizard Wizards Work \u0412\u044B\u0437\u043E\u0432\u0421\u043F\u043E\u0441\u043E\u0431 \u0418\u043C\u044F\u041E\u0442\u0447\u0435\u0442\u0430 \u0420\u0435\u043A\u0432\u0417\u043D\u0430\u0447 ",literal:"null true false nil "},o={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,keywords:s,relevance:0},l={className:"type",begin:":[ \\t]*("+"IApplication IAccessRights IAccountRepository IAccountSelectionRestrictions IAction IActionList IAdministrationHistoryDescription IAnchors IApplication IArchiveInfo IAttachment IAttachmentList ICheckListBox ICheckPointedList IColumn IComponent IComponentDescription IComponentToken IComponentTokenFactory IComponentTokenInfo ICompRecordInfo IConnection IContents IControl IControlJob IControlJobInfo IControlList ICrypto ICrypto2 ICustomJob ICustomJobInfo ICustomListBox ICustomObjectWizardStep ICustomWork ICustomWorkInfo IDataSet IDataSetAccessInfo IDataSigner IDateCriterion IDateRequisite IDateRequisiteDescription IDateValue IDeaAccessRights IDeaObjectInfo IDevelopmentComponentLock IDialog IDialogFactory IDialogPickRequisiteItems IDialogsFactory IDICSFactory IDocRequisite IDocumentInfo IDualListDialog IECertificate IECertificateInfo IECertificates IEditControl IEditorForm IEdmsExplorer IEdmsObject IEdmsObjectDescription IEdmsObjectFactory IEdmsObjectInfo IEDocument IEDocumentAccessRights IEDocumentDescription IEDocumentEditor IEDocumentFactory IEDocumentInfo IEDocumentStorage IEDocumentVersion IEDocumentVersionListDialog IEDocumentVersionSource IEDocumentWizardStep IEDocVerSignature IEDocVersionState IEnabledMode IEncodeProvider IEncrypter IEvent IEventList IException IExternalEvents IExternalHandler IFactory IField IFileDialog IFolder IFolderDescription IFolderDialog IFolderFactory IFolderInfo IForEach IForm IFormTitle IFormWizardStep IGlobalIDFactory IGlobalIDInfo IGrid IHasher IHistoryDescription IHyperLinkControl IImageButton IImageControl IInnerPanel IInplaceHint IIntegerCriterion IIntegerList IIntegerRequisite IIntegerValue IISBLEditorForm IJob IJobDescription IJobFactory IJobForm IJobInfo ILabelControl ILargeIntegerCriterion ILargeIntegerRequisite ILargeIntegerValue ILicenseInfo ILifeCycleStage IList IListBox ILocalIDInfo ILocalization ILock IMemoryDataSet IMessagingFactory IMetadataRepository INotice INoticeInfo INumericCriterion INumericRequisite INumericValue IObject IObjectDescription IObjectImporter IObjectInfo IObserver IPanelGroup IPickCriterion IPickProperty IPickRequisite IPickRequisiteDescription IPickRequisiteItem IPickRequisiteItems IPickValue IPrivilege IPrivilegeList IProcess IProcessFactory IProcessMessage IProgress IProperty IPropertyChangeEvent IQuery IReference IReferenceCriterion IReferenceEnabledMode IReferenceFactory IReferenceHistoryDescription IReferenceInfo IReferenceRecordCardWizardStep IReferenceRequisiteDescription IReferencesFactory IReferenceValue IRefRequisite IReport IReportFactory IRequisite IRequisiteDescription IRequisiteDescriptionList IRequisiteFactory IRichEdit IRouteStep IRule IRuleList ISchemeBlock IScript IScriptFactory ISearchCriteria ISearchCriterion ISearchDescription ISearchFactory ISearchFolderInfo ISearchForObjectDescription ISearchResultRestrictions ISecuredContext ISelectDialog IServerEvent IServerEventFactory IServiceDialog IServiceFactory ISignature ISignProvider ISignProvider2 ISignProvider3 ISimpleCriterion IStringCriterion IStringList IStringRequisite IStringRequisiteDescription IStringValue ISystemDialogsFactory ISystemInfo ITabSheet ITask ITaskAbortReasonInfo ITaskCardWizardStep ITaskDescription ITaskFactory ITaskInfo ITaskRoute ITextCriterion ITextRequisite ITextValue ITreeListSelectDialog IUser IUserList IValue IView IWebBrowserControl IWizard IWizardAction IWizardFactory IWizardFormElement IWizardParam IWizardPickParam IWizardReferenceParam IWizardStep IWorkAccessRights IWorkDescription IWorkflowAskableParam IWorkflowAskableParams IWorkflowBlock IWorkflowBlockResult IWorkflowEnabledMode IWorkflowParam IWorkflowPickParam IWorkflowReferenceParam IWorkState IWorkTreeCustomNode IWorkTreeJobNode IWorkTreeTaskNode IXMLEditorForm SBCrypto ".trim().replace(/\s/g,"|")+")",end:"[ \\t]*=",excludeEnd:!0},c={className:"variable",keywords:s,begin:t,relevance:0,contains:[l,o]},d="[A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_][A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_0-9]*\\(";return{name:"ISBL",case_insensitive:!0,keywords:s,illegal:"\\$|\\?|%|,|;$|~|#|@|</",contains:[{className:"function",begin:d,end:"\\)$",returnBegin:!0,keywords:s,illegal:"[\\[\\]\\|\\$\\?%,~#@]",contains:[{className:"title",keywords:{$pattern:t,built_in:"AddSubString AdjustLineBreaks AmountInWords Analysis ArrayDimCount ArrayHighBound ArrayLowBound ArrayOf ArrayReDim Assert Assigned BeginOfMonth BeginOfPeriod BuildProfilingOperationAnalysis CallProcedure CanReadFile CArrayElement CDataSetRequisite ChangeDate ChangeReferenceDataset Char CharPos CheckParam CheckParamValue CompareStrings ConstantExists ControlState ConvertDateStr Copy CopyFile CreateArray CreateCachedReference CreateConnection CreateDialog CreateDualListDialog CreateEditor CreateException CreateFile CreateFolderDialog CreateInputDialog CreateLinkFile CreateList CreateLock CreateMemoryDataSet CreateObject CreateOpenDialog CreateProgress CreateQuery CreateReference CreateReport CreateSaveDialog CreateScript CreateSQLPivotFunction CreateStringList CreateTreeListSelectDialog CSelectSQL CSQL CSubString CurrentUserID CurrentUserName CurrentVersion DataSetLocateEx DateDiff DateTimeDiff DateToStr DayOfWeek DeleteFile DirectoryExists DisableCheckAccessRights DisableCheckFullShowingRestriction DisableMassTaskSendingRestrictions DropTable DupeString EditText EnableCheckAccessRights EnableCheckFullShowingRestriction EnableMassTaskSendingRestrictions EndOfMonth EndOfPeriod ExceptionExists ExceptionsOff ExceptionsOn Execute ExecuteProcess Exit ExpandEnvironmentVariables ExtractFileDrive ExtractFileExt ExtractFileName ExtractFilePath ExtractParams FileExists FileSize FindFile FindSubString FirmContext ForceDirectories Format FormatDate FormatNumeric FormatSQLDate FormatString FreeException GetComponent GetComponentLaunchParam GetConstant GetLastException GetReferenceRecord GetRefTypeByRefID GetTableID GetTempFolder IfThen In IndexOf InputDialog InputDialogEx InteractiveMode IsFileLocked IsGraphicFile IsNumeric Length LoadString LoadStringFmt LocalTimeToUTC LowerCase Max MessageBox MessageBoxEx MimeDecodeBinary MimeDecodeString MimeEncodeBinary MimeEncodeString Min MoneyInWords MoveFile NewID Now OpenFile Ord Precision Raise ReadCertificateFromFile ReadFile ReferenceCodeByID ReferenceNumber ReferenceRequisiteMode ReferenceRequisiteValue RegionDateSettings RegionNumberSettings RegionTimeSettings RegRead RegWrite RenameFile Replace Round SelectServerCode SelectSQL ServerDateTime SetConstant SetManagedFolderFieldsState ShowConstantsInputDialog ShowMessage Sleep Split SQL SQL2XLSTAB SQLProfilingSendReport StrToDate SubString SubStringCount SystemSetting Time TimeDiff Today Transliterate Trim UpperCase UserStatus UTCToLocalTime ValidateXML VarIsClear VarIsEmpty VarIsNull WorkTimeDiff WriteFile WriteFileEx WriteObjectHistory \u0410\u043D\u0430\u043B\u0438\u0437 \u0411\u0430\u0437\u0430\u0414\u0430\u043D\u043D\u044B\u0445 \u0411\u043B\u043E\u043A\u0415\u0441\u0442\u044C \u0411\u043B\u043E\u043A\u0415\u0441\u0442\u044C\u0420\u0430\u0441\u0448 \u0411\u043B\u043E\u043A\u0418\u043D\u0444\u043E \u0411\u043B\u043E\u043A\u0421\u043D\u044F\u0442\u044C \u0411\u043B\u043E\u043A\u0421\u043D\u044F\u0442\u044C\u0420\u0430\u0441\u0448 \u0411\u043B\u043E\u043A\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0412\u0432\u043E\u0434 \u0412\u0432\u043E\u0434\u041C\u0435\u043D\u044E \u0412\u0435\u0434\u0421 \u0412\u0435\u0434\u0421\u043F\u0440 \u0412\u0435\u0440\u0445\u043D\u044F\u044F\u0413\u0440\u0430\u043D\u0438\u0446\u0430\u041C\u0430\u0441\u0441\u0438\u0432\u0430 \u0412\u043D\u0435\u0448\u041F\u0440\u043E\u0433\u0440 \u0412\u043E\u0441\u0441\u0442 \u0412\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F\u041F\u0430\u043F\u043A\u0430 \u0412\u0440\u0435\u043C\u044F \u0412\u044B\u0431\u043E\u0440SQL \u0412\u044B\u0431\u0440\u0430\u0442\u044C\u0417\u0430\u043F\u0438\u0441\u044C \u0412\u044B\u0434\u0435\u043B\u0438\u0442\u044C\u0421\u0442\u0440 \u0412\u044B\u0437\u0432\u0430\u0442\u044C \u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0412\u044B\u043F\u041F\u0440\u043E\u0433\u0440 \u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u0438\u0439\u0424\u0430\u0439\u043B \u0413\u0440\u0443\u043F\u043F\u0430\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0414\u0430\u0442\u0430\u0412\u0440\u0435\u043C\u044F\u0421\u0435\u0440\u0432 \u0414\u0435\u043D\u044C\u041D\u0435\u0434\u0435\u043B\u0438 \u0414\u0438\u0430\u043B\u043E\u0433\u0414\u0430\u041D\u0435\u0442 \u0414\u043B\u0438\u043D\u0430\u0421\u0442\u0440 \u0414\u043E\u0431\u041F\u043E\u0434\u0441\u0442\u0440 \u0415\u041F\u0443\u0441\u0442\u043E \u0415\u0441\u043B\u0438\u0422\u043E \u0415\u0427\u0438\u0441\u043B\u043E \u0417\u0430\u043C\u041F\u043E\u0434\u0441\u0442\u0440 \u0417\u0430\u043F\u0438\u0441\u044C\u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430 \u0417\u043D\u0430\u0447\u041F\u043E\u043B\u044F\u0421\u043F\u0440 \u0418\u0414\u0422\u0438\u043F\u0421\u043F\u0440 \u0418\u0437\u0432\u043B\u0435\u0447\u044C\u0414\u0438\u0441\u043A \u0418\u0437\u0432\u043B\u0435\u0447\u044C\u0418\u043C\u044F\u0424\u0430\u0439\u043B\u0430 \u0418\u0437\u0432\u043B\u0435\u0447\u044C\u041F\u0443\u0442\u044C \u0418\u0437\u0432\u043B\u0435\u0447\u044C\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0418\u0437\u043C\u0414\u0430\u0442 \u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C\u0420\u0430\u0437\u043C\u0435\u0440\u041C\u0430\u0441\u0441\u0438\u0432\u0430 \u0418\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u0439\u041C\u0430\u0441\u0441\u0438\u0432\u0430 \u0418\u043C\u044F\u041E\u0440\u0433 \u0418\u043C\u044F\u041F\u043E\u043B\u044F\u0421\u043F\u0440 \u0418\u043D\u0434\u0435\u043A\u0441 \u0418\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0418\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0418\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0428\u0430\u0433 \u0418\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439\u0420\u0435\u0436\u0438\u043C \u0418\u0442\u043E\u0433\u0422\u0431\u043B\u0421\u043F\u0440 \u041A\u043E\u0434\u0412\u0438\u0434\u0412\u0435\u0434\u0421\u043F\u0440 \u041A\u043E\u0434\u0412\u0438\u0434\u0421\u043F\u0440\u041F\u043E\u0418\u0414 \u041A\u043E\u0434\u041F\u043EAnalit \u041A\u043E\u0434\u0421\u0438\u043C\u0432\u043E\u043B\u0430 \u041A\u043E\u0434\u0421\u043F\u0440 \u041A\u043E\u043B\u041F\u043E\u0434\u0441\u0442\u0440 \u041A\u043E\u043B\u041F\u0440\u043E\u043F \u041A\u043E\u043D\u041C\u0435\u0441 \u041A\u043E\u043D\u0441\u0442 \u041A\u043E\u043D\u0441\u0442\u0415\u0441\u0442\u044C \u041A\u043E\u043D\u0441\u0442\u0417\u043D\u0430\u0447 \u041A\u043E\u043D\u0422\u0440\u0430\u043D \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0424\u0430\u0439\u043B \u041A\u043E\u043F\u0438\u044F\u0421\u0442\u0440 \u041A\u041F\u0435\u0440\u0438\u043E\u0434 \u041A\u0421\u0442\u0440\u0422\u0431\u043B\u0421\u043F\u0440 \u041C\u0430\u043A\u0441 \u041C\u0430\u043A\u0441\u0421\u0442\u0440\u0422\u0431\u043B\u0421\u043F\u0440 \u041C\u0430\u0441\u0441\u0438\u0432 \u041C\u0435\u043D\u044E \u041C\u0435\u043D\u044E\u0420\u0430\u0441\u0448 \u041C\u0438\u043D \u041D\u0430\u0431\u043E\u0440\u0414\u0430\u043D\u043D\u044B\u0445\u041D\u0430\u0439\u0442\u0438\u0420\u0430\u0441\u0448 \u041D\u0430\u0438\u043C\u0412\u0438\u0434\u0421\u043F\u0440 \u041D\u0430\u0438\u043C\u041F\u043EAnalit \u041D\u0430\u0438\u043C\u0421\u043F\u0440 \u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C\u041F\u0435\u0440\u0435\u0432\u043E\u0434\u044B\u0421\u0442\u0440\u043E\u043A \u041D\u0430\u0447\u041C\u0435\u0441 \u041D\u0430\u0447\u0422\u0440\u0430\u043D \u041D\u0438\u0436\u043D\u044F\u044F\u0413\u0440\u0430\u043D\u0438\u0446\u0430\u041C\u0430\u0441\u0441\u0438\u0432\u0430 \u041D\u043E\u043C\u0435\u0440\u0421\u043F\u0440 \u041D\u041F\u0435\u0440\u0438\u043E\u0434 \u041E\u043A\u043D\u043E \u041E\u043A\u0440 \u041E\u043A\u0440\u0443\u0436\u0435\u043D\u0438\u0435 \u041E\u0442\u043B\u0418\u043D\u0444\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u041E\u0442\u043B\u0418\u043D\u0444\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u041E\u0442\u0447\u0435\u0442 \u041E\u0442\u0447\u0435\u0442\u0410\u043D\u0430\u043B \u041E\u0442\u0447\u0435\u0442\u0418\u043D\u0442 \u041F\u0430\u043F\u043A\u0430\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u041F\u0430\u0443\u0437\u0430 \u041F\u0412\u044B\u0431\u043E\u0440SQL \u041F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C\u0424\u0430\u0439\u043B \u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0424\u0430\u0439\u043B \u041F\u043E\u0434\u0441\u0442\u0440 \u041F\u043E\u0438\u0441\u043A\u041F\u043E\u0434\u0441\u0442\u0440 \u041F\u043E\u0438\u0441\u043A\u0421\u0442\u0440 \u041F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0418\u0414\u0422\u0430\u0431\u043B\u0438\u0446\u044B \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0418\u0414 \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0418\u043C\u044F \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0421\u0442\u0430\u0442\u0443\u0441 \u041F\u0440\u0435\u0440\u0432\u0430\u0442\u044C \u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440 \u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0417\u043D\u0430\u0447 \u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C\u0423\u0441\u043B\u043E\u0432\u0438\u0435 \u0420\u0430\u0437\u0431\u0421\u0442\u0440 \u0420\u0430\u0437\u043D\u0412\u0440\u0435\u043C\u044F \u0420\u0430\u0437\u043D\u0414\u0430\u0442 \u0420\u0430\u0437\u043D\u0414\u0430\u0442\u0430\u0412\u0440\u0435\u043C\u044F \u0420\u0430\u0437\u043D\u0420\u0430\u0431\u0412\u0440\u0435\u043C\u044F \u0420\u0435\u0433\u0423\u0441\u0442\u0412\u0440\u0435\u043C \u0420\u0435\u0433\u0423\u0441\u0442\u0414\u0430\u0442 \u0420\u0435\u0433\u0423\u0441\u0442\u0427\u0441\u043B \u0420\u0435\u0434\u0422\u0435\u043A\u0441\u0442 \u0420\u0435\u0435\u0441\u0442\u0440\u0417\u0430\u043F\u0438\u0441\u044C \u0420\u0435\u0435\u0441\u0442\u0440\u0421\u043F\u0438\u0441\u043E\u043A\u0418\u043C\u0435\u043D\u041F\u0430\u0440\u0430\u043C \u0420\u0435\u0435\u0441\u0442\u0440\u0427\u0442\u0435\u043D\u0438\u0435 \u0420\u0435\u043A\u0432\u0421\u043F\u0440 \u0420\u0435\u043A\u0432\u0421\u043F\u0440\u041F\u0440 \u0421\u0435\u0433\u043E\u0434\u043D\u044F \u0421\u0435\u0439\u0447\u0430\u0441 \u0421\u0435\u0440\u0432\u0435\u0440 \u0421\u0435\u0440\u0432\u0435\u0440\u041F\u0440\u043E\u0446\u0435\u0441\u0441\u0418\u0414 \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0424\u0430\u0439\u043B\u0421\u0447\u0438\u0442\u0430\u0442\u044C \u0421\u0436\u041F\u0440\u043E\u0431 \u0421\u0438\u043C\u0432\u043E\u043B \u0421\u0438\u0441\u0442\u0435\u043C\u0430\u0414\u0438\u0440\u0435\u043A\u0442\u0443\u043C\u041A\u043E\u0434 \u0421\u0438\u0441\u0442\u0435\u043C\u0430\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0421\u0438\u0441\u0442\u0435\u043C\u0430\u041A\u043E\u0434 \u0421\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u0421\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0421\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0414\u0438\u0430\u043B\u043E\u0433 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0414\u0438\u0430\u043B\u043E\u0433\u0412\u044B\u0431\u043E\u0440\u0430\u0418\u0437\u0414\u0432\u0443\u0445\u0421\u043F\u0438\u0441\u043A\u043E\u0432 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0414\u0438\u0430\u043B\u043E\u0433\u0412\u044B\u0431\u043E\u0440\u0430\u041F\u0430\u043F\u043A\u0438 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0414\u0438\u0430\u043B\u043E\u0433\u041E\u0442\u043A\u0440\u044B\u0442\u0438\u044F\u0424\u0430\u0439\u043B\u0430 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0414\u0438\u0430\u043B\u043E\u0433\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F\u0424\u0430\u0439\u043B\u0430 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0417\u0430\u043F\u0440\u043E\u0441 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0418\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0418\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u041A\u044D\u0448\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u041C\u0430\u0441\u0441\u0438\u0432 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u041D\u0430\u0431\u043E\u0440\u0414\u0430\u043D\u043D\u044B\u0445 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u041E\u0431\u044A\u0435\u043A\u0442 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u041E\u0442\u0447\u0435\u0442 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u041F\u0430\u043F\u043A\u0443 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0421\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0421\u043F\u0438\u0441\u043E\u043A \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0421\u043F\u0438\u0441\u043E\u043A\u0421\u0442\u0440\u043E\u043A \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0439 \u0421\u043E\u0437\u0434\u0421\u043F\u0440 \u0421\u043E\u0441\u0442\u0421\u043F\u0440 \u0421\u043E\u0445\u0440 \u0421\u043E\u0445\u0440\u0421\u043F\u0440 \u0421\u043F\u0438\u0441\u043E\u043A\u0421\u0438\u0441\u0442\u0435\u043C \u0421\u043F\u0440 \u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u0421\u043F\u0440\u0411\u043B\u043E\u043A\u0415\u0441\u0442\u044C \u0421\u043F\u0440\u0411\u043B\u043E\u043A\u0421\u043D\u044F\u0442\u044C \u0421\u043F\u0440\u0411\u043B\u043E\u043A\u0421\u043D\u044F\u0442\u044C\u0420\u0430\u0441\u0448 \u0421\u043F\u0440\u0411\u043B\u043E\u043A\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0421\u043F\u0440\u0418\u0437\u043C\u041D\u0430\u0431\u0414\u0430\u043D \u0421\u043F\u0440\u041A\u043E\u0434 \u0421\u043F\u0440\u041D\u043E\u043C\u0435\u0440 \u0421\u043F\u0440\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0421\u043F\u0440\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0421\u043F\u0440\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0421\u043F\u0440\u041F\u0430\u0440\u0430\u043C \u0421\u043F\u0440\u041F\u043E\u043B\u0435\u0417\u043D\u0430\u0447 \u0421\u043F\u0440\u041F\u043E\u043B\u0435\u0418\u043C\u044F \u0421\u043F\u0440\u0420\u0435\u043A\u0432 \u0421\u043F\u0440\u0420\u0435\u043A\u0432\u0412\u0432\u0435\u0434\u0417\u043D \u0421\u043F\u0440\u0420\u0435\u043A\u0432\u041D\u043E\u0432\u044B\u0435 \u0421\u043F\u0440\u0420\u0435\u043A\u0432\u041F\u0440 \u0421\u043F\u0440\u0420\u0435\u043A\u0432\u041F\u0440\u0435\u0434\u0417\u043D \u0421\u043F\u0440\u0420\u0435\u043A\u0432\u0420\u0435\u0436\u0438\u043C \u0421\u043F\u0440\u0420\u0435\u043A\u0432\u0422\u0438\u043F\u0422\u0435\u043A\u0441\u0442 \u0421\u043F\u0440\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0421\u043F\u0440\u0421\u043E\u0441\u0442 \u0421\u043F\u0440\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0421\u043F\u0440\u0422\u0431\u043B\u0418\u0442\u043E\u0433 \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440 \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u041A\u043E\u043B \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u041C\u0430\u043A\u0441 \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u041C\u0438\u043D \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u041F\u0440\u0435\u0434 \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u0421\u043B\u0435\u0434 \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u0421\u043E\u0437\u0434 \u0421\u043F\u0440\u0422\u0431\u043B\u0421\u0442\u0440\u0423\u0434 \u0421\u043F\u0440\u0422\u0435\u043A\u041F\u0440\u0435\u0434\u0441\u0442 \u0421\u043F\u0440\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0421\u0440\u0430\u0432\u043D\u0438\u0442\u044C\u0421\u0442\u0440 \u0421\u0442\u0440\u0412\u0435\u0440\u0445\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0421\u0442\u0440\u041D\u0438\u0436\u043D\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0421\u0442\u0440\u0422\u0431\u043B\u0421\u043F\u0440 \u0421\u0443\u043C\u041F\u0440\u043E\u043F \u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0439 \u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0439\u041F\u0430\u0440\u0430\u043C \u0422\u0435\u043A\u0412\u0435\u0440\u0441\u0438\u044F \u0422\u0435\u043A\u041E\u0440\u0433 \u0422\u043E\u0447\u043D \u0422\u0440\u0430\u043D \u0422\u0440\u0430\u043D\u0441\u043B\u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044F \u0423\u0434\u0430\u043B\u0438\u0442\u044C\u0422\u0430\u0431\u043B\u0438\u0446\u0443 \u0423\u0434\u0430\u043B\u0438\u0442\u044C\u0424\u0430\u0439\u043B \u0423\u0434\u0421\u043F\u0440 \u0423\u0434\u0421\u0442\u0440\u0422\u0431\u043B\u0421\u043F\u0440 \u0423\u0441\u0442 \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438\u041A\u043E\u043D\u0441\u0442\u0430\u043D\u0442 \u0424\u0430\u0439\u043B\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u0421\u0447\u0438\u0442\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0424\u0430\u0439\u043B\u0412\u0440\u0435\u043C\u044F \u0424\u0430\u0439\u043B\u0412\u0440\u0435\u043C\u044F\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0424\u0430\u0439\u043B\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u0417\u0430\u043D\u044F\u0442 \u0424\u0430\u0439\u043B\u0417\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u0418\u0441\u043A\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u041C\u043E\u0436\u043D\u043E\u0427\u0438\u0442\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0424\u0430\u0439\u043B\u041F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u041F\u0435\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0424\u0430\u0439\u043B\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0424\u0430\u0439\u043B\u0420\u0430\u0437\u043C\u0435\u0440 \u0424\u0430\u0439\u043B\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u0421\u0441\u044B\u043B\u043A\u0430\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0424\u0430\u0439\u043B\u0421\u0447\u0438\u0442\u0430\u0442\u044C \u0424\u0430\u0439\u043B\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0424\u043C\u0442SQL\u0414\u0430\u0442 \u0424\u043C\u0442\u0414\u0430\u0442 \u0424\u043C\u0442\u0421\u0442\u0440 \u0424\u043C\u0442\u0427\u0441\u043B \u0424\u043E\u0440\u043C\u0430\u0442 \u0426\u041C\u0430\u0441\u0441\u0438\u0432\u042D\u043B\u0435\u043C\u0435\u043D\u0442 \u0426\u041D\u0430\u0431\u043E\u0440\u0414\u0430\u043D\u043D\u044B\u0445\u0420\u0435\u043A\u0432\u0438\u0437\u0438\u0442 \u0426\u041F\u043E\u0434\u0441\u0442\u0440 "},begin:d,end:"\\(",returnBegin:!0,excludeEnd:!0},o,c,a,n,r]},l,o,c,a,n,r]}}),ng)),r4.registerLanguage("java",function(){if(nb)return nS;nb=1;var e="[0-9](_*[0-9])*",t=`\\.(${e})`,n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={className:"number",variants:[{begin:`(\\b(${e})((${t})|\\.)?|(${t}))[eE][+-]?(${e})[fFdD]?\\b`},{begin:`\\b(${e})((${t})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${t})[fFdD]?\\b`},{begin:`\\b(${e})[fFdD]\\b`},{begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?(${e})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};return nS=function(e){let t=e.regex,n="[\xc0-\u02B8a-zA-Z_$][\xc0-\u02B8a-zA-Z_$0-9]*",i=n+function e(t,n,a){return -1===a?"":t.replace(n,i=>e(t,n,a-1))}("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),r={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},s={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},o={className:"params",begin:/\(/,end:/\)/,keywords:r,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:r,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+i+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:r,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:r,relevance:0,contains:[s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},a,s]}}}()),r4.registerLanguage("javascript",function(){if(nf)return nh;nf=1;let e="[A-Za-z$_][0-9A-Za-z$_]*",t=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],i=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],r=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],s=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],o=[].concat(r,a,i);return nh=function(l){var c;let d=l.regex,_={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let n;let a=e[0].length+e.index,i=e.input[a];if("<"===i||","===i)return void t.ignoreMatch();">"===i&&(((e,{after:t})=>{let n="</"+e[0].slice(1);return -1!==e.input.indexOf(n,t)})(e,{after:a})||t.ignoreMatch());let r=e.input.substring(a);((n=r.match(/^\s*=/))||(n=r.match(/^\s+extends\s+/))&&0===n.index)&&t.ignoreMatch()}},u={$pattern:e,keyword:t,literal:n,built_in:o,"variable.language":s},m="[0-9](_?[0-9])*",p=`\\.(${m})`,g="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",E={className:"number",variants:[{begin:`(\\b(${g})((${p})|\\.)?|(${p}))[eE][+-]?(${m})\\b`},{begin:`\\b(${g})\\b((${p})\\b|\\.)?|(${p})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},S={className:"subst",begin:"\\$\\{",end:"\\}",keywords:u,contains:[]},b={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[l.BACKSLASH_ESCAPE,S],subLanguage:"xml"}},h={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[l.BACKSLASH_ESCAPE,S],subLanguage:"css"}},f={begin:"gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[l.BACKSLASH_ESCAPE,S],subLanguage:"graphql"}},T={className:"string",begin:"`",end:"`",contains:[l.BACKSLASH_ESCAPE,S]},v={className:"comment",variants:[l.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:e+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),l.C_BLOCK_COMMENT_MODE,l.C_LINE_COMMENT_MODE]},C=[l.APOS_STRING_MODE,l.QUOTE_STRING_MODE,b,h,f,T,{match:/\$\d+/},E];S.contains=C.concat({begin:/\{/,end:/\}/,keywords:u,contains:["self"].concat(C)});let R=[].concat(v,S.contains),N=R.concat([{begin:/\(/,end:/\)/,keywords:u,contains:["self"].concat(R)}]),y={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,contains:N},O={variants:[{match:[/class/,/\s+/,e,/\s+/,/extends/,/\s+/,d.concat(e,"(",d.concat(/\./,e),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,e],scope:{1:"keyword",3:"title.class"}}]},A={relevance:0,match:d.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...a,...i]}},I={match:d.concat(/\b/,(c=[...r,"super","import"],d.concat("(?!",c.join("|"),")")),e,d.lookahead(/\(/)),className:"title.function",relevance:0},D={begin:d.concat(/\./,d.lookahead(d.concat(e,/(?![0-9A-Za-z$_(])/))),end:e,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},w="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+l.UNDERSCORE_IDENT_RE+")\\s*=>",x={match:[/const|var|let/,/\s+/,e,/\s*/,/=\s*/,/(async\s*)?/,d.lookahead(w)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[y]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:u,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:A},illegal:/#(?![$_A-z])/,contains:[l.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},l.APOS_STRING_MODE,l.QUOTE_STRING_MODE,b,h,f,T,v,{match:/\$\d+/},E,A,{className:"attr",begin:e+d.lookahead(":"),relevance:0},x,{begin:"("+l.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[v,l.REGEXP_MODE,{className:"function",begin:w,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:l.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:"</>"},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:_.begin,"on:begin":_.isTrulyOpeningTag,end:_.end}],subLanguage:"xml",contains:[{begin:_.begin,end:_.end,skip:!0,contains:["self"]}]}]},{variants:[{match:[/function/,/\s+/,e,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[y],illegal:/%/},{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+l.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[y,l.inherit(l.TITLE_MODE,{begin:e,className:"title.function"})]},{match:/\.\.\./,relevance:0},D,{match:"\\$"+e,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[y]},I,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},O,{match:[/get|set/,/\s+/,e,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},y]},{match:/\$[(.]/}]}}}()),r4.registerLanguage("jboss-cli",(nv||(nv=1,nT=function(e){return{name:"JBoss CLI",aliases:["wildfly-cli"],keywords:{$pattern:"[a-z-]+",keyword:"alias batch cd clear command connect connection-factory connection-info data-source deploy deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias undeploy unset version xa-data-source",literal:"true false"},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"params",begin:/--[\w\-=\/]+/},{className:"function",begin:/:[\w\-.]+/,relevance:0},{className:"string",begin:/\B([\/.])[\w\-.\/=]+/},{className:"params",begin:/\(/,end:/\)/,contains:[{begin:/[\w-]+ *=/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/[\w-]+/}]}],relevance:0}]}}),nT)),r4.registerLanguage("json",(nR||(nR=1,nC=function(e){let t=["true","false","null"],n={scope:"literal",beginKeywords:t.join(" ")};return{name:"JSON",keywords:{literal:t},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,n,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}),nC)),r4.registerLanguage("julia",(ny||(ny=1,nN=function(e){let t="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",n={$pattern:t,keyword:["baremodule","begin","break","catch","ccall","const","continue","do","else","elseif","end","export","false","finally","for","function","global","if","import","in","isa","let","local","macro","module","quote","return","true","try","using","where","while"],literal:["ARGS","C_NULL","DEPOT_PATH","ENDIAN_BOM","ENV","Inf","Inf16","Inf32","Inf64","InsertionSort","LOAD_PATH","MergeSort","NaN","NaN16","NaN32","NaN64","PROGRAM_FILE","QuickSort","RoundDown","RoundFromZero","RoundNearest","RoundNearestTiesAway","RoundNearestTiesUp","RoundToZero","RoundUp","VERSION|0","devnull","false","im","missing","nothing","pi","stderr","stdin","stdout","true","undef","\u03C0","\u212F"],built_in:["AbstractArray","AbstractChannel","AbstractChar","AbstractDict","AbstractDisplay","AbstractFloat","AbstractIrrational","AbstractMatrix","AbstractRange","AbstractSet","AbstractString","AbstractUnitRange","AbstractVecOrMat","AbstractVector","Any","ArgumentError","Array","AssertionError","BigFloat","BigInt","BitArray","BitMatrix","BitSet","BitVector","Bool","BoundsError","CapturedException","CartesianIndex","CartesianIndices","Cchar","Cdouble","Cfloat","Channel","Char","Cint","Cintmax_t","Clong","Clonglong","Cmd","Colon","Complex","ComplexF16","ComplexF32","ComplexF64","CompositeException","Condition","Cptrdiff_t","Cshort","Csize_t","Cssize_t","Cstring","Cuchar","Cuint","Cuintmax_t","Culong","Culonglong","Cushort","Cvoid","Cwchar_t","Cwstring","DataType","DenseArray","DenseMatrix","DenseVecOrMat","DenseVector","Dict","DimensionMismatch","Dims","DivideError","DomainError","EOFError","Enum","ErrorException","Exception","ExponentialBackOff","Expr","Float16","Float32","Float64","Function","GlobalRef","HTML","IO","IOBuffer","IOContext","IOStream","IdDict","IndexCartesian","IndexLinear","IndexStyle","InexactError","InitError","Int","Int128","Int16","Int32","Int64","Int8","Integer","InterruptException","InvalidStateException","Irrational","KeyError","LinRange","LineNumberNode","LinearIndices","LoadError","MIME","Matrix","Method","MethodError","Missing","MissingException","Module","NTuple","NamedTuple","Nothing","Number","OrdinalRange","OutOfMemoryError","OverflowError","Pair","PartialQuickSort","PermutedDimsArray","Pipe","ProcessFailedException","Ptr","QuoteNode","Rational","RawFD","ReadOnlyMemoryError","Real","ReentrantLock","Ref","Regex","RegexMatch","RoundingMode","SegmentationFault","Set","Signed","Some","StackOverflowError","StepRange","StepRangeLen","StridedArray","StridedMatrix","StridedVecOrMat","StridedVector","String","StringIndexError","SubArray","SubString","SubstitutionString","Symbol","SystemError","Task","TaskFailedException","Text","TextDisplay","Timer","Tuple","Type","TypeError","TypeVar","UInt","UInt128","UInt16","UInt32","UInt64","UInt8","UndefInitializer","UndefKeywordError","UndefRefError","UndefVarError","Union","UnionAll","UnitRange","Unsigned","Val","Vararg","VecElement","VecOrMat","Vector","VersionNumber","WeakKeyDict","WeakRef"]},a={keywords:n,illegal:/<\//},i={className:"subst",begin:/\$\(/,end:/\)/,keywords:n},r={className:"variable",begin:"\\$"+t},s={className:"string",contains:[e.BACKSLASH_ESCAPE,i,r],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},o={className:"string",contains:[e.BACKSLASH_ESCAPE,i,r],begin:"`",end:"`"};return a.name="Julia",a.contains=[{className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},s,o,{className:"meta",begin:"@"+t},{className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]},e.HASH_COMMENT_MODE,{className:"keyword",begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/}],i.contains=a.contains,a}),nN)),r4.registerLanguage("julia-repl",nA?nO:(nA=1,nO=function(e){return{name:"Julia REPL",contains:[{className:"meta.prompt",begin:/^julia>/,relevance:10,starts:{end:/^(?![ ]{6})/,subLanguage:"julia"}}],aliases:["jldoctest"]}})),r4.registerLanguage("kotlin",function(){if(nD)return nI;nD=1;var e="[0-9](_*[0-9])*",t=`\\.(${e})`,n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={className:"number",variants:[{begin:`(\\b(${e})((${t})|\\.)?|(${t}))[eE][+-]?(${e})[fFdD]?\\b`},{begin:`\\b(${e})((${t})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${t})[fFdD]?\\b`},{begin:`\\b(${e})[fFdD]\\b`},{begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?(${e})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};return nI=function(e){let t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},r={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},s={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[r,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,r,i]}]};i.contains.push(s);let o={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(s,{className:"string"}),"self"]}]},c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]};return d.variants[1].contains=[d],d.variants[1].contains=[d],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},n,o,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,o,l,s,e.C_NUMBER_MODE]},c]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},o,l]},s,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},a]}}}()),r4.registerLanguage("lasso",(nx||(nx=1,nw=function(e){let t="[a-zA-Z_][\\w.]*",n="<\\?(lasso(script)?|=)",a="\\]|\\?>",i={$pattern:t+"|&[lg]t;",literal:"true false none minimal full all void and or not bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",built_in:"array date decimal duration integer map pair string tag xml null boolean bytes keyword list locale queue set stack staticarray local var variable global data self inherited currentcapture givenblock",keyword:"cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else fail_if fail_ifnot fail if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome"},r=e.COMMENT("\x3c!--","--\x3e",{relevance:0}),s={className:"meta",begin:"\\[noprocess\\]",starts:{end:"\\[/noprocess\\]",returnEnd:!0,contains:[r]}},o={className:"meta",begin:"\\[/noprocess|"+n},l=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.inherit(e.C_NUMBER_MODE,{begin:e.C_NUMBER_RE+"|(-?infinity|NaN)\\b"}),e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"`",end:"`"},{variants:[{begin:"[#$]"+t},{begin:"#",end:"\\d+",illegal:"\\W"}]},{className:"type",begin:"::\\s*",end:t,illegal:"\\W"},{className:"params",variants:[{begin:"-(?!infinity)"+t,relevance:0},{begin:"(\\.\\.\\.)"}]},{begin:/(->|\.)\s*/,relevance:0,contains:[{className:"symbol",begin:"'"+t+"'"}]},{className:"class",beginKeywords:"define",returnEnd:!0,end:"\\(|=>",contains:[e.inherit(e.TITLE_MODE,{begin:t+"(=(?!>))?|[-+*/%](?!>)"})]}];return{name:"Lasso",aliases:["ls","lassoscript"],case_insensitive:!0,keywords:i,contains:[{className:"meta",begin:a,relevance:0,starts:{end:"\\[|"+n,returnEnd:!0,relevance:0,contains:[r]}},s,o,{className:"meta",begin:"\\[no_square_brackets",starts:{end:"\\[/no_square_brackets\\]",keywords:i,contains:[{className:"meta",begin:a,relevance:0,starts:{end:"\\[noprocess\\]|"+n,returnEnd:!0,contains:[r]}},s,o].concat(l)}},{className:"meta",begin:"\\[",relevance:0},{className:"meta",begin:"^#!",end:"lasso9$",relevance:10}].concat(l)}}),nw)),r4.registerLanguage("latex",(nM||(nM=1,nL=function(e){let t=[{begin:/\^{6}[0-9a-f]{6}/},{begin:/\^{5}[0-9a-f]{5}/},{begin:/\^{4}[0-9a-f]{4}/},{begin:/\^{3}[0-9a-f]{3}/},{begin:/\^{2}[0-9a-f]{2}/},{begin:/\^{2}[\u0000-\u007f]/}],n=[{className:"keyword",begin:/\\/,relevance:0,contains:[{endsParent:!0,begin:e.regex.either(...["(?:NeedsTeXFormat|RequirePackage|GetIdInfo)","Provides(?:Expl)?(?:Package|Class|File)","(?:DeclareOption|ProcessOptions)","(?:documentclass|usepackage|input|include)","makeat(?:letter|other)","ExplSyntax(?:On|Off)","(?:new|renew|provide)?command","(?:re)newenvironment","(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand","(?:New|Renew|Provide|Declare)DocumentEnvironment","(?:(?:e|g|x)?def|let)","(?:begin|end)","(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph)","caption","(?:label|(?:eq|page|name)?ref|(?:paren|foot|super)?cite)","(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)","(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)","(?:[Ss]igma|varsigma|tau|[Uu]psilon|[Pp]hi|varphi|chi|[Pp]si|[Oo]mega)","(?:frac|sum|prod|lim|infty|times|sqrt|leq|geq|left|right|middle|[bB]igg?)","(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)"].map(e=>e+"(?![a-zA-Z@:_])"))},{endsParent:!0,begin:new RegExp(["(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*","[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}","[qs]__?[a-zA-Z](?:_?[a-zA-Z])+","use(?:_i)?:[a-zA-Z]*","(?:else|fi|or):","(?:if|cs|exp):w","(?:hbox|vbox):n","::[a-zA-Z]_unbraced","::[a-zA-Z:]"].map(e=>e+"(?![a-zA-Z:_])").join("|"))},{endsParent:!0,variants:t},{endsParent:!0,relevance:0,variants:[{begin:/[a-zA-Z@]+/},{begin:/[^a-zA-Z@]?/}]}]},{className:"params",relevance:0,begin:/#+\d?/},{variants:t},{className:"built_in",relevance:0,begin:/[$&^_]/},{className:"meta",begin:/% ?!(T[eE]X|tex|BIB|bib)/,end:"$",relevance:10},e.COMMENT("%","$",{relevance:0})],a={begin:/\{/,end:/\}/,relevance:0,contains:["self",...n]},i=e.inherit(a,{relevance:0,endsParent:!0,contains:[a,...n]}),r={begin:/\s+/,relevance:0},s=[i],o=[{begin:/\[/,end:/\]/,endsParent:!0,relevance:0,contains:[a,...n]}],l=function(e,t){return{contains:[r],starts:{relevance:0,contains:e,starts:t}}},c=function(e,t){return{begin:"\\\\"+e+"(?![a-zA-Z@:_])",keywords:{$pattern:/\\[a-zA-Z]+/,keyword:"\\"+e},relevance:0,contains:[r],starts:t}},d=function(t,n){return e.inherit({begin:"\\\\begin(?=[ ]*(\\r?\\n[ ]*)?\\{"+t+"\\})",keywords:{$pattern:/\\[a-zA-Z]+/,keyword:"\\begin"},relevance:0},l(s,n))},_=(t="string")=>e.END_SAME_AS_BEGIN({className:t,begin:/(.|\r?\n)/,end:/(.|\r?\n)/,excludeBegin:!0,excludeEnd:!0,endsParent:!0}),u=function(e){return{className:"string",end:"(?=\\\\end\\{"+e+"\\})"}},m=(e="string")=>({relevance:0,begin:/\{/,starts:{endsParent:!0,contains:[{className:e,end:/(?=\})/,endsParent:!0,contains:[{begin:/\{/,end:/\}/,relevance:0,contains:["self"]}]}]}});return{name:"LaTeX",aliases:["tex"],contains:[...["verb","lstinline"].map(e=>c(e,{contains:[_()]})),c("mint",l(s,{contains:[_()]})),c("mintinline",l(s,{contains:[m(),_()]})),c("url",{contains:[m("link"),m("link")]}),c("hyperref",{contains:[m("link")]}),c("href",l(o,{contains:[m("link")]})),...[].concat(...["","\\*"].map(e=>[d("verbatim"+e,u("verbatim"+e)),d("filecontents"+e,l(s,u("filecontents"+e))),...["","B","L"].map(t=>d(t+"Verbatim"+e,l(o,u(t+"Verbatim"+e))))])),d("minted",l(o,l(s,u("minted")))),...n]}}),nL)),r4.registerLanguage("ldif",(nk||(nk=1,nP=function(e){return{name:"LDIF",contains:[{className:"attribute",match:"^dn(?=:)",relevance:10},{className:"attribute",match:"^\\w+(?=:)"},{className:"literal",match:"^-"},e.HASH_COMMENT_MODE]}}),nP)),r4.registerLanguage("leaf",nU?nF:(nU=1,nF=function(e){let t=/([A-Za-z_][A-Za-z_0-9]*)?/,n={scope:"params",begin:/\(/,end:/\)(?=\:?)/,endsParent:!0,relevance:7,contains:[{scope:"string",begin:'"',end:'"'},{scope:"keyword",match:"true|false|in"},{scope:"variable",match:/[A-Za-z_][A-Za-z_0-9]*/},{scope:"operator",match:/\+|\-|\*|\/|\%|\=\=|\=|\!|\>|\<|\&\&|\|\|/}]};return n.contains.unshift({match:[t,/(?=\()/],scope:{1:"keyword"},contains:[n]}),{name:"Leaf",contains:[{match:[/#+/,t,/(?=\()/],scope:{1:"punctuation",2:"keyword"},starts:{contains:[{match:/\:/,scope:"punctuation"}]},contains:[n]},{match:[/#+/,t,/:?/],scope:{1:"punctuation",2:"keyword",3:"punctuation"}}]}})),r4.registerLanguage("less",function(){if(nG)return nB;nG=1;let e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],n=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],a=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],i=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),r=n.concat(a);return nB=function(s){let o;let l={IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:(o=s).C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[o.APOS_STRING_MODE,o.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:o.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}},c="[\\w-]+",d="("+c+"|@\\{"+c+"\\})",_=[],u=[],m=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},p=function(e,t,n){return{className:e,begin:t,relevance:n}},g={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")};u.push(s.C_LINE_COMMENT_MODE,s.C_BLOCK_COMMENT_MODE,m("'"),m('"'),l.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},l.HEXCOLOR,{begin:"\\(",end:"\\)",contains:u,keywords:g,relevance:0},p("variable","@@?"+c,10),p("variable","@\\{"+c+"\\}"),p("built_in","~?`[^`]*?`"),{className:"attribute",begin:c+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},l.IMPORTANT,{beginKeywords:"and not"},l.FUNCTION_DISPATCH);let E=u.concat({begin:/\{/,end:/\}/,contains:_}),S={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(u)},b={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},l.CSS_VARIABLE,{className:"attribute",begin:"\\b("+i.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:u}}]},h={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[s.C_LINE_COMMENT_MODE,s.C_BLOCK_COMMENT_MODE,S,p("keyword","all\\b"),p("variable","@\\{"+c+"\\}"),{begin:"\\b("+e.join("|")+")\\b",className:"selector-tag"},l.CSS_NUMBER_MODE,p("selector-tag",d,0),p("selector-id","#"+d),p("selector-class","\\."+d,0),p("selector-tag","&",0),l.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+n.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+a.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:E},{begin:"!important"},l.FUNCTION_DISPATCH]},f={begin:c+":(:)?"+`(${r.join("|")})`,returnBegin:!0,contains:[h]};return _.push(s.C_LINE_COMMENT_MODE,s.C_BLOCK_COMMENT_MODE,{className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:g,returnEnd:!0,contains:u,relevance:0}},{className:"variable",variants:[{begin:"@"+c+"\\s*:",relevance:15},{begin:"@"+c}],starts:{end:"[;}]",returnEnd:!0,contains:E}},f,b,h,S,l.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:_}}}()),r4.registerLanguage("lisp",(nH||(nH=1,nY=function(e){let t="[a-zA-Z_\\-+\\*\\/<=>&#][a-zA-Z0-9_\\-+*\\/<=>&#!]*",n="\\|[^]*?\\|",a="(-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|-)?\\d+)?",i={className:"literal",begin:"\\b(t{1}|nil)\\b"},r={className:"number",variants:[{begin:a,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{begin:"#(c|C)\\("+a+" +"+a,end:"\\)"}]},s=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),o=e.COMMENT(";","$",{relevance:0}),l={begin:"\\*",end:"\\*"},c={className:"symbol",begin:"[:&]"+t},d={begin:t,relevance:0},_={contains:[r,s,l,c,{begin:"\\(",end:"\\)",contains:["self",i,s,r,d]},d],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{name:"quote"}},{begin:"'"+n}]},u={variants:[{begin:"'"+t},{begin:"#'"+t+"(::"+t+")*"}]},m={begin:"\\(\\s*",end:"\\)"},p={endsWithParent:!0,relevance:0};return m.contains=[{className:"name",variants:[{begin:t,relevance:0},{begin:n}]},p],p.contains=[_,u,m,i,r,s,o,l,c,{begin:n},d],{name:"Lisp",illegal:/\S/,contains:[r,e.SHEBANG(),i,s,o,_,u,m,d]}}),nY)),r4.registerLanguage("livecodeserver",(nz||(nz=1,nV=function(e){let t={className:"variable",variants:[{begin:"\\b([gtps][A-Z]{1}[a-zA-Z0-9]*)(\\[.+\\])?(?:\\s*?)"},{begin:"\\$_[A-Z]+"}],relevance:0},n=[e.C_BLOCK_COMMENT_MODE,e.HASH_COMMENT_MODE,e.COMMENT("--","$"),e.COMMENT("[^:]//","$")],a=e.inherit(e.TITLE_MODE,{variants:[{begin:"\\b_*rig[A-Z][A-Za-z0-9_\\-]*"},{begin:"\\b_[a-z0-9\\-]+"}]}),i=e.inherit(e.TITLE_MODE,{begin:"\\b([A-Za-z0-9_\\-]+)\\b"});return{name:"LiveCode",case_insensitive:!1,keywords:{keyword:"$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph after byte bytes english the until http forever descending using line real8 with seventh for stdout finally element word words fourth before black ninth sixth characters chars stderr uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat end repeat URL in try into switch to words https token binfile each tenth as ticks tick system real4 by dateItems without char character ascending eighth whole dateTime numeric short first ftp integer abbreviated abbr abbrev private case while if div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys",literal:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress constantNames cos date dateFormat decompress difference directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge messageAuthenticationCode messageDigest millisec millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetDriver libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load extension loadedExtensions multiply socket prepare process post seek rel relative read from process rename replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop subtract symmetric union unload vectorDotProduct wait write"},contains:[t,{className:"keyword",begin:"\\bend\\sif\\b"},{className:"function",beginKeywords:"function",end:"$",contains:[t,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,a]},{className:"function",begin:"\\bend\\s+",end:"$",keywords:"end",contains:[i,a],relevance:0},{beginKeywords:"command on",end:"$",contains:[t,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,a]},{className:"meta",variants:[{begin:"<\\?(rev|lc|livecode)",relevance:10},{begin:"<\\?"},{begin:"\\?>"}]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,a].concat(n),illegal:";$|^\\[|^=|&|\\{"}}),nV)),r4.registerLanguage("livescript",function(){if(n$)return nq;n$=1;let e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],t=["true","false","null","undefined","NaN","Infinity"],n=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);return nq=function(a){let i={keyword:e.concat(["then","unless","until","loop","of","by","when","and","or","is","isnt","not","it","that","otherwise","from","to","til","fallthrough","case","enum","native","list","map","__hasProp","__extends","__slice","__bind","__indexOf"]),literal:t.concat(["yes","no","on","off","it","that","void"]),built_in:n.concat(["npm","print"])},r="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",s=a.inherit(a.TITLE_MODE,{begin:r}),o={className:"subst",begin:/#\{/,end:/\}/,keywords:i},l={className:"subst",begin:/#[A-Za-z$_]/,end:/(?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,keywords:i},c=[a.BINARY_NUMBER_MODE,{className:"number",begin:"(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)",relevance:0,starts:{end:"(\\s*/)?",relevance:0}},{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[a.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[a.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[a.BACKSLASH_ESCAPE,o,l]},{begin:/"/,end:/"/,contains:[a.BACKSLASH_ESCAPE,o,l]},{begin:/\\/,end:/(\s|$)/,excludeEnd:!0}]},{className:"regexp",variants:[{begin:"//",end:"//[gim]*",contains:[o,a.HASH_COMMENT_MODE]},{begin:/\/(?![ *])(\\.|[^\\\n])*?\/[gim]*(?=\W)/}]},{begin:"@"+r},{begin:"``",end:"``",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];o.contains=c;let d={className:"params",begin:"\\(",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:i,contains:["self"].concat(c)}]};return{name:"LiveScript",aliases:["ls"],keywords:i,illegal:/\/\*/,contains:c.concat([a.COMMENT("\\/\\*","\\*\\/"),a.HASH_COMMENT_MODE,{begin:"(#=>|=>|\\|>>|-?->|!->)"},{className:"function",contains:[s,d],returnBegin:!0,variants:[{begin:"("+r+"\\s*(?:=|:=)\\s*)?(\\(.*\\)\\s*)?\\B->\\*?",end:"->\\*?"},{begin:"("+r+"\\s*(?:=|:=)\\s*)?!?(\\(.*\\)\\s*)?\\B[-~]{1,2}>\\*?",end:"[-~]{1,2}>\\*?"},{begin:"("+r+"\\s*(?:=|:=)\\s*)?(\\(.*\\)\\s*)?\\B!?[-~]{1,2}>\\*?",end:"!?[-~]{1,2}>\\*?"}]},{variants:[{match:[/class\s+/,r,/\s+extends\s+/,r]},{match:[/class\s+/,r]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:i},{begin:r+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}}()),r4.registerLanguage("llvm",(nQ||(nQ=1,nW=function(e){let t=e.regex,n=/([-a-zA-Z$._][\w$.-]*)/,a={className:"variable",variants:[{begin:t.concat(/%/,n)},{begin:/%\d+/},{begin:/#\d+/}]},i={className:"title",variants:[{begin:t.concat(/@/,n)},{begin:/@\d+/},{begin:t.concat(/!/,n)},{begin:t.concat(/!\d+/,n)},{begin:/!\d+/}]};return{name:"LLVM IR",keywords:"begin end true false declare define global constant private linker_private internal available_externally linkonce linkonce_odr weak weak_odr appending dllimport dllexport common default hidden protected extern_weak external thread_local zeroinitializer undef null to tail target triple datalayout volatile nuw nsw nnan ninf nsz arcp fast exact inbounds align addrspace section alias module asm sideeffect gc dbg linker_private_weak attributes blockaddress initialexec localdynamic localexec prefix unnamed_addr ccc fastcc coldcc x86_stdcallcc x86_fastcallcc arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ptx_kernel intel_ocl_bicc msp430_intrcc spir_func spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc cc c signext zeroext inreg sret nounwind noreturn noalias nocapture byval nest readnone readonly inlinehint noinline alwaysinline optsize ssp sspreq noredzone noimplicitfloat naked builtin cold nobuiltin noduplicate nonlazybind optnone returns_twice sanitize_address sanitize_memory sanitize_thread sspstrong uwtable returned type opaque eq ne slt sgt sle sge ult ugt ule uge oeq one olt ogt ole oge ord uno ueq une x acq_rel acquire alignstack atomic catch cleanup filter inteldialect max min monotonic nand personality release seq_cst singlethread umax umin unordered xchg add fadd sub fsub mul fmul udiv sdiv fdiv urem srem frem shl lshr ashr and or xor icmp fcmp phi call trunc zext sext fptrunc fpext uitofp sitofp fptoui fptosi inttoptr ptrtoint bitcast addrspacecast select va_arg ret br switch invoke unwind unreachable indirectbr landingpad resume malloc alloca free load store getelementptr extractelement insertelement shufflevector getresult extractvalue insertvalue atomicrmw cmpxchg fence argmemonly double",contains:[{className:"type",begin:/\bi\d+(?=\s|\b)/},e.COMMENT(/;\s*$/,null,{relevance:0}),e.COMMENT(/;/,/$/),{className:"string",begin:/"/,end:/"/,contains:[{className:"char.escape",match:/\\\d\d/}]},i,{className:"punctuation",relevance:0,begin:/,/},{className:"operator",relevance:0,begin:/=/},a,{className:"symbol",variants:[{begin:/^\s*[a-z]+:/}],relevance:0},{className:"number",variants:[{begin:/[su]?0[xX][KMLHR]?[a-fA-F0-9]+/},{begin:/[-+]?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/}],relevance:0}]}}),nW)),r4.registerLanguage("lsl",(nj||(nj=1,nK=function(e){let t={className:"number",relevance:0,begin:e.C_NUMBER_RE};return{name:"LSL (Linden Scripting Language)",illegal:":",contains:[{className:"string",begin:'"',end:'"',contains:[{className:"subst",begin:/\\[tn"\\]/}]},{className:"comment",variants:[e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/")],relevance:0},t,{className:"section",variants:[{begin:"\\b(state|default)\\b"},{begin:"\\b(state_(entry|exit)|touch(_(start|end))?|(land_)?collision(_(start|end))?|timer|listen|(no_)?sensor|control|(not_)?at_(rot_)?target|money|email|experience_permissions(_denied)?|run_time_permissions|changed|attach|dataserver|moving_(start|end)|link_message|(on|object)_rez|remote_data|http_re(sponse|quest)|path_update|transaction_result)\\b"}]},{className:"built_in",begin:"\\b(ll(AgentInExperience|(Create|DataSize|Delete|KeyCount|Keys|Read|Update)KeyValue|GetExperience(Details|ErrorMessage)|ReturnObjectsBy(ID|Owner)|Json(2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(Mag|Norm|Dist)|Rot(Between|2(Euler|Fwd|Left|Up))|(Euler|Axes)2Rot|Whisper|(Region|Owner)?Say|Shout|Listen(Control|Remove)?|Sensor(Repeat|Remove)?|Detected(Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|([GS]et)(AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(Scale|Offset|Rotate)Texture|(Rot)?Target(Remove)?|(Stop)?MoveToTarget|Apply(Rotational)?Impulse|Set(KeyframedMotion|ContentType|RegionPos|(Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(Queueing|Radius)|Vehicle(Type|(Float|Vector|Rotation)Param)|(Touch|Sit)?Text|Camera(Eye|At)Offset|PrimitiveParams|ClickAction|Link(Alpha|Color|PrimitiveParams(Fast)?|Texture(Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get((Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(PrimitiveParams|Number(OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(Details|PermMask|PrimCount)|Parcel(MaxPrims|Details|Prim(Count|Owners))|Attached(List)?|(SPMax|Free|Used)Memory|Region(Name|TimeDilation|FPS|Corner|AgentCount)|Root(Position|Rotation)|UnixTime|(Parcel|Region)Flags|(Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(Prims|NotecardLines|Sides)|Animation(List)?|(Camera|Local)(Pos|Rot)|Vel|Accel|Omega|Time(stamp|OfDay)|(Object|CenterOf)?Mass|MassMKS|Energy|Owner|(Owner)?Key|SunDirection|Texture(Offset|Scale|Rot)|Inventory(Number|Name|Key|Type|Creator|PermMask)|Permissions(Key)?|StartParameter|List(Length|EntryType)|Date|Agent(Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(Name|State))|(Get|Reset|GetAndReset)Time|PlaySound(Slave)?|LoopSound(Master|Slave)?|(Trigger|Stop|Preload)Sound|((Get|Delete)Sub|Insert)String|To(Upper|Lower)|Give(InventoryList|Money)|RezObject|(Stop)?LookAt|Sleep|CollisionFilter|(Take|Release)Controls|DetachFromAvatar|AttachToAvatar(Temp)?|InstantMessage|(GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(Length|Trim)|(Start|Stop)Animation|TargetOmega|Request(Experience)?Permissions|(Create|Break)Link|BreakAllLinks|(Give|Remove)Inventory|Water|PassTouches|Request(Agent|Inventory)Data|TeleportAgent(Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(Axis|Angle)|A(cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(CSV|Integer|Json|Float|String|Key|Vector|Rot|List(Strided)?)|DeleteSubList|List(Statistics|Sort|Randomize|(Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(Slope|Normal|Contour)|GroundRepel|(Set|Remove)VehicleFlags|SitOnLink|(AvatarOn)?(Link)?SitTarget|Script(Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(Integer|String)ToBase64|XorBase64|Log(10)?|Base64To(String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(Load|Release|(E|Une)scape)URL|ParcelMedia(CommandList|Query)|ModPow|MapDestination|(RemoveFrom|AddTo|Reset)Land(Pass|Ban)List|(Set|Clear)CameraParams|HTTP(Request|Response)|TextBox|DetectedTouch(UV|Face|Pos|(N|Bin)ormal|ST)|(MD5|SHA1|DumpList2)String|Request(Secure)?URL|Clear(Prim|Link)Media|(Link)?ParticleSystem|(Get|Request)(Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\\b"},{className:"literal",variants:[{begin:"\\b(PI|TWO_PI|PI_BY_TWO|DEG_TO_RAD|RAD_TO_DEG|SQRT2)\\b"},{begin:"\\b(XP_ERROR_(EXPERIENCES_DISABLED|EXPERIENCE_(DISABLED|SUSPENDED)|INVALID_(EXPERIENCE|PARAMETERS)|KEY_NOT_FOUND|MATURITY_EXCEEDED|NONE|NOT_(FOUND|PERMITTED(_LAND)?)|NO_EXPERIENCE|QUOTA_EXCEEDED|RETRY_UPDATE|STORAGE_EXCEPTION|STORE_DISABLED|THROTTLED|UNKNOWN_ERROR)|JSON_APPEND|STATUS_(PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(_OBJECT)?|(DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(_(BY_(LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(PARCEL(_OWNER)?|REGION)))?|CAMERA_(PITCH|DISTANCE|BEHINDNESS_(ANGLE|LAG)|(FOCUS|POSITION)(_(THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(ROOT|SET|ALL_(OTHERS|CHILDREN)|THIS)|ACTIVE|PASS(IVE|_(ALWAYS|IF_NOT_HANDLED|NEVER))|SCRIPTED|CONTROL_(FWD|BACK|(ROT_)?(LEFT|RIGHT)|UP|DOWN|(ML_)?LBUTTON)|PERMISSION_(RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(_START)?|TELEPORT|MEDIA)|OBJECT_(CLICK_ACTION|HOVER_HEIGHT|LAST_OWNER_ID|(PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_(ATTACHED|ON_REZ)|NAME|DESC|POS|PRIM_(COUNT|EQUIVALENCE)|RETURN_(PARCEL(_OWNER)?|REGION)|REZZER_KEY|ROO?T|VELOCITY|OMEGA|OWNER|GROUP(_TAG)?|CREATOR|ATTACHED_(POINT|SLOTS_AVAILABLE)|RENDER_WEIGHT|(BODY_SHAPE|PATHFINDING)_TYPE|(RUNNING|TOTAL)_SCRIPT_COUNT|TOTAL_INVENTORY_COUNT|SCRIPT_(MEMORY|TIME))|TYPE_(INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(DEBUG|PUBLIC)_CHANNEL|ATTACH_(AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](SHOULDER|HAND|FOOT|EAR|EYE|[UL](ARM|LEG)|HIP)|(LEFT|RIGHT)_PEC|HUD_(CENTER_[12]|TOP_(RIGHT|CENTER|LEFT)|BOTTOM(_(RIGHT|LEFT))?)|[LR]HAND_RING1|TAIL_(BASE|TIP)|[LR]WING|FACE_(JAW|[LR]EAR|[LR]EYE|TOUNGE)|GROIN|HIND_[LR]FOOT)|LAND_(LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(ONLINE|NAME|BORN|SIM_(POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(ON_FILE|USED)|REMOTE_DATA_(CHANNEL|REQUEST|REPLY)|PSYS_(PART_(BF_(ZERO|ONE(_MINUS_(DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(START|END)_(COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(RIBBON|WIND|INTERP_(COLOR|SCALE)|BOUNCE|FOLLOW_(SRC|VELOCITY)|TARGET_(POS|LINEAR)|EMISSIVE)_MASK)|SRC_(MAX_AGE|PATTERN|ANGLE_(BEGIN|END)|BURST_(RATE|PART_COUNT|RADIUS|SPEED_(MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(DROP|EXPLODE|ANGLE(_CONE(_EMPTY)?)?)))|VEHICLE_(REFERENCE_FRAME|TYPE_(NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(LINEAR|ANGULAR)_(FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(LINEAR|ANGULAR)_(DEFLECTION_(EFFICIENCY|TIMESCALE)|MOTOR_(DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(EFFICIENCY|TIMESCALE)|BANKING_(EFFICIENCY|MIX|TIMESCALE)|FLAG_(NO_DEFLECTION_UP|LIMIT_(ROLL_ONLY|MOTOR_UP)|HOVER_((WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(ALLOW_UNSIT|ALPHA_MODE(_(BLEND|EMISSIVE|MASK|NONE))?|NORMAL|SPECULAR|TYPE(_(BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(_(STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(NONE|LOW|MEDIUM|HIGH)|BUMP_(NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(DEFAULT|PLANAR)|SCRIPTED_SIT_ONLY|SCULPT_(TYPE_(SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(MIRROR|INVERT))|PHYSICS(_(SHAPE_(CONVEX|NONE|PRIM|TYPE)))?|(POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIT_TARGET|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(ALT_IMAGE_ENABLE|CONTROLS|(CURRENT|HOME)_URL|AUTO_(LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(WIDTH|HEIGHT)_PIXELS|WHITELIST(_ENABLE)?|PERMS_(INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(STANDARD|MINI)|PERM_(NONE|OWNER|GROUP|ANYONE)|MAX_(URL_LENGTH|WHITELIST_(SIZE|COUNT)|(WIDTH|HEIGHT)_PIXELS)))|MASK_(BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(MEDIA_COMMAND_(STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(ALLOW_(FLY|(GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(GROUP_)?OBJECTS)|USE_(ACCESS_(GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(GROUP|ALL)_OBJECT_ENTRY)|COUNT_(TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(HIDE|DEFAULT)|REGION_FLAG_(ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(METHOD|MIMETYPE|BODY_(MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|SIT_(INVALID_(AGENT|LINK_OBJECT)|NO(T_EXPERIENCE|_(ACCESS|EXPERIENCE_PERMISSION|SIT_TARGET)))|STRING_(TRIM(_(HEAD|TAIL))?)|CLICK_ACTION_(NONE|TOUCH|SIT|BUY|PAY|OPEN(_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(NONE|SCRIPT_MEMORY)|RC_(DATA_FLAGS|DETECT_PHANTOM|GET_(LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(TYPES|AGENTS|(NON)?PHYSICAL|LAND))|RCERR_(CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(ALLOWED_(AGENT|GROUP)_(ADD|REMOVE)|BANNED_AGENT_(ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(COMMAND|CMD_(PLAY|STOP|PAUSE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(CMD_((SMOOTH_)?STOP|JUMP)|DESIRED_(TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(_([ABCD]|NONE))?|MAX_(DECEL|TURN_RADIUS|(ACCEL|SPEED)))|PURSUIT_(OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(EVADE_(HIDDEN|SPOTTED)|FAILURE_(DYNAMIC_PATHFINDING_DISABLED|INVALID_(GOAL|START)|NO_(NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(PARCEL_)?UNREACHABLE)|(GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(_(FAST|NONE|SLOW))?|CONTENT_TYPE_(ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(RADIUS|STATIC)|(PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\\b"},{begin:"\\b(FALSE|TRUE)\\b"},{begin:"\\b(ZERO_ROTATION)\\b"},{begin:"\\b(EOF|JSON_(ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(GRANTED|DENIED))\\b"},{begin:"\\b(ZERO_VECTOR|TOUCH_INVALID_(TEXCOORD|VECTOR))\\b"}]},{className:"type",begin:"\\b(integer|float|string|key|vector|quaternion|rotation|list)\\b"}]}}),nK)),r4.registerLanguage("lua",(nZ||(nZ=1,nX=function(e){let t="\\[=*\\[",n="\\]=*\\]",a={begin:t,end:n,contains:["self"]},i=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[a],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[a],relevance:5}])}}),nX)),r4.registerLanguage("makefile",(n0||(n0=1,nJ=function(e){let t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t]},a={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"};return{name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"},contains:[e.HASH_COMMENT_MODE,t,n,{className:"variable",begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"},contains:[t]},a,{className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},{className:"section",begin:/^[^\s]+:/,end:/$/,contains:[t]}]}}),nJ)),r4.registerLanguage("mathematica",function(){if(n2)return n1;n2=1;let e=["AASTriangle","AbelianGroup","Abort","AbortKernels","AbortProtect","AbortScheduledTask","Above","Abs","AbsArg","AbsArgPlot","Absolute","AbsoluteCorrelation","AbsoluteCorrelationFunction","AbsoluteCurrentValue","AbsoluteDashing","AbsoluteFileName","AbsoluteOptions","AbsolutePointSize","AbsoluteThickness","AbsoluteTime","AbsoluteTiming","AcceptanceThreshold","AccountingForm","Accumulate","Accuracy","AccuracyGoal","AcousticAbsorbingValue","AcousticImpedanceValue","AcousticNormalVelocityValue","AcousticPDEComponent","AcousticPressureCondition","AcousticRadiationValue","AcousticSoundHardValue","AcousticSoundSoftCondition","ActionDelay","ActionMenu","ActionMenuBox","ActionMenuBoxOptions","Activate","Active","ActiveClassification","ActiveClassificationObject","ActiveItem","ActivePrediction","ActivePredictionObject","ActiveStyle","AcyclicGraphQ","AddOnHelpPath","AddSides","AddTo","AddToSearchIndex","AddUsers","AdjacencyGraph","AdjacencyList","AdjacencyMatrix","AdjacentMeshCells","Adjugate","AdjustmentBox","AdjustmentBoxOptions","AdjustTimeSeriesForecast","AdministrativeDivisionData","AffineHalfSpace","AffineSpace","AffineStateSpaceModel","AffineTransform","After","AggregatedEntityClass","AggregationLayer","AircraftData","AirportData","AirPressureData","AirSoundAttenuation","AirTemperatureData","AiryAi","AiryAiPrime","AiryAiZero","AiryBi","AiryBiPrime","AiryBiZero","AlgebraicIntegerQ","AlgebraicNumber","AlgebraicNumberDenominator","AlgebraicNumberNorm","AlgebraicNumberPolynomial","AlgebraicNumberTrace","AlgebraicRules","AlgebraicRulesData","Algebraics","AlgebraicUnitQ","Alignment","AlignmentMarker","AlignmentPoint","All","AllowAdultContent","AllowChatServices","AllowedCloudExtraParameters","AllowedCloudParameterExtensions","AllowedDimensions","AllowedFrequencyRange","AllowedHeads","AllowGroupClose","AllowIncomplete","AllowInlineCells","AllowKernelInitialization","AllowLooseGrammar","AllowReverseGroupClose","AllowScriptLevelChange","AllowVersionUpdate","AllTrue","Alphabet","AlphabeticOrder","AlphabeticSort","AlphaChannel","AlternateImage","AlternatingFactorial","AlternatingGroup","AlternativeHypothesis","Alternatives","AltitudeMethod","AmbientLight","AmbiguityFunction","AmbiguityList","Analytic","AnatomyData","AnatomyForm","AnatomyPlot3D","AnatomySkinStyle","AnatomyStyling","AnchoredSearch","And","AndersonDarlingTest","AngerJ","AngleBisector","AngleBracket","AnglePath","AnglePath3D","AngleVector","AngularGauge","Animate","AnimatedImage","AnimationCycleOffset","AnimationCycleRepetitions","AnimationDirection","AnimationDisplayTime","AnimationRate","AnimationRepetitions","AnimationRunning","AnimationRunTime","AnimationTimeIndex","AnimationVideo","Animator","AnimatorBox","AnimatorBoxOptions","AnimatorElements","Annotate","Annotation","AnnotationDelete","AnnotationKeys","AnnotationRules","AnnotationValue","Annuity","AnnuityDue","Annulus","AnomalyDetection","AnomalyDetector","AnomalyDetectorFunction","Anonymous","Antialiasing","Antihermitian","AntihermitianMatrixQ","Antisymmetric","AntisymmetricMatrixQ","Antonyms","AnyOrder","AnySubset","AnyTrue","Apart","ApartSquareFree","APIFunction","Appearance","AppearanceElements","AppearanceRules","AppellF1","Append","AppendCheck","AppendLayer","AppendTo","Application","Apply","ApplyReaction","ApplySides","ApplyTo","ArcCos","ArcCosh","ArcCot","ArcCoth","ArcCsc","ArcCsch","ArcCurvature","ARCHProcess","ArcLength","ArcSec","ArcSech","ArcSin","ArcSinDistribution","ArcSinh","ArcTan","ArcTanh","Area","Arg","ArgMax","ArgMin","ArgumentCountQ","ArgumentsOptions","ARIMAProcess","ArithmeticGeometricMean","ARMAProcess","Around","AroundReplace","ARProcess","Array","ArrayComponents","ArrayDepth","ArrayFilter","ArrayFlatten","ArrayMesh","ArrayPad","ArrayPlot","ArrayPlot3D","ArrayQ","ArrayReduce","ArrayResample","ArrayReshape","ArrayRules","Arrays","Arrow","Arrow3DBox","ArrowBox","Arrowheads","ASATriangle","Ask","AskAppend","AskConfirm","AskDisplay","AskedQ","AskedValue","AskFunction","AskState","AskTemplateDisplay","AspectRatio","AspectRatioFixed","Assert","AssessmentFunction","AssessmentResultObject","AssociateTo","Association","AssociationFormat","AssociationMap","AssociationQ","AssociationThread","AssumeDeterministic","Assuming","Assumptions","AstroAngularSeparation","AstroBackground","AstroCenter","AstroDistance","AstroGraphics","AstroGridLines","AstroGridLinesStyle","AstronomicalData","AstroPosition","AstroProjection","AstroRange","AstroRangePadding","AstroReferenceFrame","AstroStyling","AstroZoomLevel","Asymptotic","AsymptoticDSolveValue","AsymptoticEqual","AsymptoticEquivalent","AsymptoticExpectation","AsymptoticGreater","AsymptoticGreaterEqual","AsymptoticIntegrate","AsymptoticLess","AsymptoticLessEqual","AsymptoticOutputTracker","AsymptoticProbability","AsymptoticProduct","AsymptoticRSolveValue","AsymptoticSolve","AsymptoticSum","Asynchronous","AsynchronousTaskObject","AsynchronousTasks","Atom","AtomCoordinates","AtomCount","AtomDiagramCoordinates","AtomLabels","AtomLabelStyle","AtomList","AtomQ","AttachCell","AttachedCell","AttentionLayer","Attributes","Audio","AudioAmplify","AudioAnnotate","AudioAnnotationLookup","AudioBlockMap","AudioCapture","AudioChannelAssignment","AudioChannelCombine","AudioChannelMix","AudioChannels","AudioChannelSeparate","AudioData","AudioDelay","AudioDelete","AudioDevice","AudioDistance","AudioEncoding","AudioFade","AudioFrequencyShift","AudioGenerator","AudioIdentify","AudioInputDevice","AudioInsert","AudioInstanceQ","AudioIntervals","AudioJoin","AudioLabel","AudioLength","AudioLocalMeasurements","AudioLooping","AudioLoudness","AudioMeasurements","AudioNormalize","AudioOutputDevice","AudioOverlay","AudioPad","AudioPan","AudioPartition","AudioPause","AudioPitchShift","AudioPlay","AudioPlot","AudioQ","AudioRecord","AudioReplace","AudioResample","AudioReverb","AudioReverse","AudioSampleRate","AudioSpectralMap","AudioSpectralTransformation","AudioSplit","AudioStop","AudioStream","AudioStreams","AudioTimeStretch","AudioTrackApply","AudioTrackSelection","AudioTrim","AudioType","AugmentedPolyhedron","AugmentedSymmetricPolynomial","Authenticate","Authentication","AuthenticationDialog","AutoAction","Autocomplete","AutocompletionFunction","AutoCopy","AutocorrelationTest","AutoDelete","AutoEvaluateEvents","AutoGeneratedPackage","AutoIndent","AutoIndentSpacings","AutoItalicWords","AutoloadPath","AutoMatch","Automatic","AutomaticImageSize","AutoMultiplicationSymbol","AutoNumberFormatting","AutoOpenNotebooks","AutoOpenPalettes","AutoOperatorRenderings","AutoQuoteCharacters","AutoRefreshed","AutoRemove","AutorunSequencing","AutoScaling","AutoScroll","AutoSpacing","AutoStyleOptions","AutoStyleWords","AutoSubmitting","Axes","AxesEdge","AxesLabel","AxesOrigin","AxesStyle","AxiomaticTheory","Axis","Axis3DBox","Axis3DBoxOptions","AxisBox","AxisBoxOptions","AxisLabel","AxisObject","AxisStyle","BabyMonsterGroupB","Back","BackFaceColor","BackFaceGlowColor","BackFaceOpacity","BackFaceSpecularColor","BackFaceSpecularExponent","BackFaceSurfaceAppearance","BackFaceTexture","Background","BackgroundAppearance","BackgroundTasksSettings","Backslash","Backsubstitution","Backward","Ball","Band","BandpassFilter","BandstopFilter","BarabasiAlbertGraphDistribution","BarChart","BarChart3D","BarcodeImage","BarcodeRecognize","BaringhausHenzeTest","BarLegend","BarlowProschanImportance","BarnesG","BarOrigin","BarSpacing","BartlettHannWindow","BartlettWindow","BaseDecode","BaseEncode","BaseForm","Baseline","BaselinePosition","BaseStyle","BasicRecurrentLayer","BatchNormalizationLayer","BatchSize","BatesDistribution","BattleLemarieWavelet","BayesianMaximization","BayesianMaximizationObject","BayesianMinimization","BayesianMinimizationObject","Because","BeckmannDistribution","Beep","Before","Begin","BeginDialogPacket","BeginPackage","BellB","BellY","Below","BenfordDistribution","BeniniDistribution","BenktanderGibratDistribution","BenktanderWeibullDistribution","BernoulliB","BernoulliDistribution","BernoulliGraphDistribution","BernoulliProcess","BernsteinBasis","BesagL","BesselFilterModel","BesselI","BesselJ","BesselJZero","BesselK","BesselY","BesselYZero","Beta","BetaBinomialDistribution","BetaDistribution","BetaNegativeBinomialDistribution","BetaPrimeDistribution","BetaRegularized","Between","BetweennessCentrality","Beveled","BeveledPolyhedron","BezierCurve","BezierCurve3DBox","BezierCurve3DBoxOptions","BezierCurveBox","BezierCurveBoxOptions","BezierFunction","BilateralFilter","BilateralLaplaceTransform","BilateralZTransform","Binarize","BinaryDeserialize","BinaryDistance","BinaryFormat","BinaryImageQ","BinaryRead","BinaryReadList","BinarySerialize","BinaryWrite","BinCounts","BinLists","BinnedVariogramList","Binomial","BinomialDistribution","BinomialPointProcess","BinomialProcess","BinormalDistribution","BiorthogonalSplineWavelet","BioSequence","BioSequenceBackTranslateList","BioSequenceComplement","BioSequenceInstances","BioSequenceModify","BioSequencePlot","BioSequenceQ","BioSequenceReverseComplement","BioSequenceTranscribe","BioSequenceTranslate","BipartiteGraphQ","BiquadraticFilterModel","BirnbaumImportance","BirnbaumSaundersDistribution","BitAnd","BitClear","BitGet","BitLength","BitNot","BitOr","BitRate","BitSet","BitShiftLeft","BitShiftRight","BitXor","BiweightLocation","BiweightMidvariance","Black","BlackmanHarrisWindow","BlackmanNuttallWindow","BlackmanWindow","Blank","BlankForm","BlankNullSequence","BlankSequence","Blend","Block","BlockchainAddressData","BlockchainBase","BlockchainBlockData","BlockchainContractValue","BlockchainData","BlockchainGet","BlockchainKeyEncode","BlockchainPut","BlockchainTokenData","BlockchainTransaction","BlockchainTransactionData","BlockchainTransactionSign","BlockchainTransactionSubmit","BlockDiagonalMatrix","BlockLowerTriangularMatrix","BlockMap","BlockRandom","BlockUpperTriangularMatrix","BlomqvistBeta","BlomqvistBetaTest","Blue","Blur","Blurring","BodePlot","BohmanWindow","Bold","Bond","BondCount","BondLabels","BondLabelStyle","BondList","BondQ","Bookmarks","Boole","BooleanConsecutiveFunction","BooleanConvert","BooleanCountingFunction","BooleanFunction","BooleanGraph","BooleanMaxterms","BooleanMinimize","BooleanMinterms","BooleanQ","BooleanRegion","Booleans","BooleanStrings","BooleanTable","BooleanVariables","BorderDimensions","BorelTannerDistribution","Bottom","BottomHatTransform","BoundaryDiscretizeGraphics","BoundaryDiscretizeRegion","BoundaryMesh","BoundaryMeshRegion","BoundaryMeshRegionQ","BoundaryStyle","BoundedRegionQ","BoundingRegion","Bounds","Box","BoxBaselineShift","BoxData","BoxDimensions","Boxed","Boxes","BoxForm","BoxFormFormatTypes","BoxFrame","BoxID","BoxMargins","BoxMatrix","BoxObject","BoxRatios","BoxRotation","BoxRotationPoint","BoxStyle","BoxWhiskerChart","Bra","BracketingBar","BraKet","BrayCurtisDistance","BreadthFirstScan","Break","BridgeData","BrightnessEqualize","BroadcastStationData","Brown","BrownForsytheTest","BrownianBridgeProcess","BrowserCategory","BSplineBasis","BSplineCurve","BSplineCurve3DBox","BSplineCurve3DBoxOptions","BSplineCurveBox","BSplineCurveBoxOptions","BSplineFunction","BSplineSurface","BSplineSurface3DBox","BSplineSurface3DBoxOptions","BubbleChart","BubbleChart3D","BubbleScale","BubbleSizes","BuckyballGraph","BuildCompiledComponent","BuildingData","BulletGauge","BusinessDayQ","ButterflyGraph","ButterworthFilterModel","Button","ButtonBar","ButtonBox","ButtonBoxOptions","ButtonCell","ButtonContents","ButtonData","ButtonEvaluator","ButtonExpandable","ButtonFrame","ButtonFunction","ButtonMargins","ButtonMinHeight","ButtonNote","ButtonNotebook","ButtonSource","ButtonStyle","ButtonStyleMenuListing","Byte","ByteArray","ByteArrayFormat","ByteArrayFormatQ","ByteArrayQ","ByteArrayToString","ByteCount","ByteOrdering","C","CachedValue","CacheGraphics","CachePersistence","CalendarConvert","CalendarData","CalendarType","Callout","CalloutMarker","CalloutStyle","CallPacket","CanberraDistance","Cancel","CancelButton","CandlestickChart","CanonicalGraph","CanonicalizePolygon","CanonicalizePolyhedron","CanonicalizeRegion","CanonicalName","CanonicalWarpingCorrespondence","CanonicalWarpingDistance","CantorMesh","CantorStaircase","Canvas","Cap","CapForm","CapitalDifferentialD","Capitalize","CapsuleShape","CaptureRunning","CaputoD","CardinalBSplineBasis","CarlemanLinearize","CarlsonRC","CarlsonRD","CarlsonRE","CarlsonRF","CarlsonRG","CarlsonRJ","CarlsonRK","CarlsonRM","CarmichaelLambda","CaseOrdering","Cases","CaseSensitive","Cashflow","Casoratian","Cast","Catalan","CatalanNumber","Catch","CategoricalDistribution","Catenate","CatenateLayer","CauchyDistribution","CauchyMatrix","CauchyPointProcess","CauchyWindow","CayleyGraph","CDF","CDFDeploy","CDFInformation","CDFWavelet","Ceiling","CelestialSystem","Cell","CellAutoOverwrite","CellBaseline","CellBoundingBox","CellBracketOptions","CellChangeTimes","CellContents","CellContext","CellDingbat","CellDingbatMargin","CellDynamicExpression","CellEditDuplicate","CellElementsBoundingBox","CellElementSpacings","CellEpilog","CellEvaluationDuplicate","CellEvaluationFunction","CellEvaluationLanguage","CellEventActions","CellFrame","CellFrameColor","CellFrameLabelMargins","CellFrameLabels","CellFrameMargins","CellFrameStyle","CellGroup","CellGroupData","CellGrouping","CellGroupingRules","CellHorizontalScrolling","CellID","CellInsertionPointCell","CellLabel","CellLabelAutoDelete","CellLabelMargins","CellLabelPositioning","CellLabelStyle","CellLabelTemplate","CellMargins","CellObject","CellOpen","CellPrint","CellProlog","Cells","CellSize","CellStyle","CellTags","CellTrayPosition","CellTrayWidgets","CellularAutomaton","CensoredDistribution","Censoring","Center","CenterArray","CenterDot","CenteredInterval","CentralFeature","CentralMoment","CentralMomentGeneratingFunction","Cepstrogram","CepstrogramArray","CepstrumArray","CForm","ChampernowneNumber","ChangeOptions","ChannelBase","ChannelBrokerAction","ChannelDatabin","ChannelHistoryLength","ChannelListen","ChannelListener","ChannelListeners","ChannelListenerWait","ChannelObject","ChannelPreSendFunction","ChannelReceiverFunction","ChannelSend","ChannelSubscribers","ChanVeseBinarize","Character","CharacterCounts","CharacterEncoding","CharacterEncodingsPath","CharacteristicFunction","CharacteristicPolynomial","CharacterName","CharacterNormalize","CharacterRange","Characters","ChartBaseStyle","ChartElementData","ChartElementDataFunction","ChartElementFunction","ChartElements","ChartLabels","ChartLayout","ChartLegends","ChartStyle","Chebyshev1FilterModel","Chebyshev2FilterModel","ChebyshevDistance","ChebyshevT","ChebyshevU","Check","CheckAbort","CheckAll","CheckArguments","Checkbox","CheckboxBar","CheckboxBox","CheckboxBoxOptions","ChemicalConvert","ChemicalData","ChemicalFormula","ChemicalInstance","ChemicalReaction","ChessboardDistance","ChiDistribution","ChineseRemainder","ChiSquareDistribution","ChoiceButtons","ChoiceDialog","CholeskyDecomposition","Chop","ChromaticityPlot","ChromaticityPlot3D","ChromaticPolynomial","Circle","CircleBox","CircleDot","CircleMinus","CirclePlus","CirclePoints","CircleThrough","CircleTimes","CirculantGraph","CircularArcThrough","CircularOrthogonalMatrixDistribution","CircularQuaternionMatrixDistribution","CircularRealMatrixDistribution","CircularSymplecticMatrixDistribution","CircularUnitaryMatrixDistribution","Circumsphere","CityData","ClassifierFunction","ClassifierInformation","ClassifierMeasurements","ClassifierMeasurementsObject","Classify","ClassPriors","Clear","ClearAll","ClearAttributes","ClearCookies","ClearPermissions","ClearSystemCache","ClebschGordan","ClickPane","ClickToCopy","ClickToCopyEnabled","Clip","ClipboardNotebook","ClipFill","ClippingStyle","ClipPlanes","ClipPlanesStyle","ClipRange","Clock","ClockGauge","ClockwiseContourIntegral","Close","Closed","CloseKernels","ClosenessCentrality","Closing","ClosingAutoSave","ClosingEvent","CloudAccountData","CloudBase","CloudConnect","CloudConnections","CloudDeploy","CloudDirectory","CloudDisconnect","CloudEvaluate","CloudExport","CloudExpression","CloudExpressions","CloudFunction","CloudGet","CloudImport","CloudLoggingData","CloudObject","CloudObjectInformation","CloudObjectInformationData","CloudObjectNameFormat","CloudObjects","CloudObjectURLType","CloudPublish","CloudPut","CloudRenderingMethod","CloudSave","CloudShare","CloudSubmit","CloudSymbol","CloudUnshare","CloudUserID","ClusterClassify","ClusterDissimilarityFunction","ClusteringComponents","ClusteringMeasurements","ClusteringTree","CMYKColor","Coarse","CodeAssistOptions","Coefficient","CoefficientArrays","CoefficientDomain","CoefficientList","CoefficientRules","CoifletWavelet","Collect","CollinearPoints","Colon","ColonForm","ColorBalance","ColorCombine","ColorConvert","ColorCoverage","ColorData","ColorDataFunction","ColorDetect","ColorDistance","ColorFunction","ColorFunctionBinning","ColorFunctionScaling","Colorize","ColorNegate","ColorOutput","ColorProfileData","ColorQ","ColorQuantize","ColorReplace","ColorRules","ColorSelectorSettings","ColorSeparate","ColorSetter","ColorSetterBox","ColorSetterBoxOptions","ColorSlider","ColorsNear","ColorSpace","ColorToneMapping","Column","ColumnAlignments","ColumnBackgrounds","ColumnForm","ColumnLines","ColumnsEqual","ColumnSpacings","ColumnWidths","CombinatorB","CombinatorC","CombinatorI","CombinatorK","CombinatorS","CombinatorW","CombinatorY","CombinedEntityClass","CombinerFunction","CometData","CommonDefaultFormatTypes","Commonest","CommonestFilter","CommonName","CommonUnits","CommunityBoundaryStyle","CommunityGraphPlot","CommunityLabels","CommunityRegionStyle","CompanyData","CompatibleUnitQ","CompilationOptions","CompilationTarget","Compile","Compiled","CompiledCodeFunction","CompiledComponent","CompiledExpressionDeclaration","CompiledFunction","CompiledLayer","CompilerCallback","CompilerEnvironment","CompilerEnvironmentAppend","CompilerEnvironmentAppendTo","CompilerEnvironmentObject","CompilerOptions","Complement","ComplementedEntityClass","CompleteGraph","CompleteGraphQ","CompleteIntegral","CompleteKaryTree","CompletionsListPacket","Complex","ComplexArrayPlot","ComplexContourPlot","Complexes","ComplexExpand","ComplexInfinity","ComplexityFunction","ComplexListPlot","ComplexPlot","ComplexPlot3D","ComplexRegionPlot","ComplexStreamPlot","ComplexVectorPlot","ComponentMeasurements","ComponentwiseContextMenu","Compose","ComposeList","ComposeSeries","CompositeQ","Composition","CompoundElement","CompoundExpression","CompoundPoissonDistribution","CompoundPoissonProcess","CompoundRenewalProcess","Compress","CompressedData","CompressionLevel","ComputeUncertainty","ConcaveHullMesh","Condition","ConditionalExpression","Conditioned","Cone","ConeBox","ConfidenceLevel","ConfidenceRange","ConfidenceTransform","ConfigurationPath","Confirm","ConfirmAssert","ConfirmBy","ConfirmMatch","ConfirmQuiet","ConformationMethod","ConformAudio","ConformImages","Congruent","ConicGradientFilling","ConicHullRegion","ConicHullRegion3DBox","ConicHullRegion3DBoxOptions","ConicHullRegionBox","ConicHullRegionBoxOptions","ConicOptimization","Conjugate","ConjugateTranspose","Conjunction","Connect","ConnectedComponents","ConnectedGraphComponents","ConnectedGraphQ","ConnectedMeshComponents","ConnectedMoleculeComponents","ConnectedMoleculeQ","ConnectionSettings","ConnectLibraryCallbackFunction","ConnectSystemModelComponents","ConnectSystemModelController","ConnesWindow","ConoverTest","ConservativeConvectionPDETerm","ConsoleMessage","Constant","ConstantArray","ConstantArrayLayer","ConstantImage","ConstantPlusLayer","ConstantRegionQ","Constants","ConstantTimesLayer","ConstellationData","ConstrainedMax","ConstrainedMin","Construct","Containing","ContainsAll","ContainsAny","ContainsExactly","ContainsNone","ContainsOnly","ContentDetectorFunction","ContentFieldOptions","ContentLocationFunction","ContentObject","ContentPadding","ContentsBoundingBox","ContentSelectable","ContentSize","Context","ContextMenu","Contexts","ContextToFileName","Continuation","Continue","ContinuedFraction","ContinuedFractionK","ContinuousAction","ContinuousMarkovProcess","ContinuousTask","ContinuousTimeModelQ","ContinuousWaveletData","ContinuousWaveletTransform","ContourDetect","ContourGraphics","ContourIntegral","ContourLabels","ContourLines","ContourPlot","ContourPlot3D","Contours","ContourShading","ContourSmoothing","ContourStyle","ContraharmonicMean","ContrastiveLossLayer","Control","ControlActive","ControlAlignment","ControlGroupContentsBox","ControllabilityGramian","ControllabilityMatrix","ControllableDecomposition","ControllableModelQ","ControllerDuration","ControllerInformation","ControllerInformationData","ControllerLinking","ControllerManipulate","ControllerMethod","ControllerPath","ControllerState","ControlPlacement","ControlsRendering","ControlType","ConvectionPDETerm","Convergents","ConversionOptions","ConversionRules","ConvertToPostScript","ConvertToPostScriptPacket","ConvexHullMesh","ConvexHullRegion","ConvexOptimization","ConvexPolygonQ","ConvexPolyhedronQ","ConvexRegionQ","ConvolutionLayer","Convolve","ConwayGroupCo1","ConwayGroupCo2","ConwayGroupCo3","CookieFunction","Cookies","CoordinateBoundingBox","CoordinateBoundingBoxArray","CoordinateBounds","CoordinateBoundsArray","CoordinateChartData","CoordinatesToolOptions","CoordinateTransform","CoordinateTransformData","CoplanarPoints","CoprimeQ","Coproduct","CopulaDistribution","Copyable","CopyDatabin","CopyDirectory","CopyFile","CopyFunction","CopyTag","CopyToClipboard","CoreNilpotentDecomposition","CornerFilter","CornerNeighbors","Correlation","CorrelationDistance","CorrelationFunction","CorrelationTest","Cos","Cosh","CoshIntegral","CosineDistance","CosineWindow","CosIntegral","Cot","Coth","CoulombF","CoulombG","CoulombH1","CoulombH2","Count","CountDistinct","CountDistinctBy","CounterAssignments","CounterBox","CounterBoxOptions","CounterClockwiseContourIntegral","CounterEvaluator","CounterFunction","CounterIncrements","CounterStyle","CounterStyleMenuListing","CountRoots","CountryData","Counts","CountsBy","Covariance","CovarianceEstimatorFunction","CovarianceFunction","CoxianDistribution","CoxIngersollRossProcess","CoxModel","CoxModelFit","CramerVonMisesTest","CreateArchive","CreateCellID","CreateChannel","CreateCloudExpression","CreateCompilerEnvironment","CreateDatabin","CreateDataStructure","CreateDataSystemModel","CreateDialog","CreateDirectory","CreateDocument","CreateFile","CreateIntermediateDirectories","CreateLicenseEntitlement","CreateManagedLibraryExpression","CreateNotebook","CreatePacletArchive","CreatePalette","CreatePermissionsGroup","CreateScheduledTask","CreateSearchIndex","CreateSystemModel","CreateTemporary","CreateTypeInstance","CreateUUID","CreateWindow","CriterionFunction","CriticalityFailureImportance","CriticalitySuccessImportance","CriticalSection","Cross","CrossEntropyLossLayer","CrossingCount","CrossingDetect","CrossingPolygon","CrossMatrix","Csc","Csch","CSGRegion","CSGRegionQ","CSGRegionTree","CTCLossLayer","Cube","CubeRoot","Cubics","Cuboid","CuboidBox","CuboidBoxOptions","Cumulant","CumulantGeneratingFunction","CumulativeFeatureImpactPlot","Cup","CupCap","Curl","CurlyDoubleQuote","CurlyQuote","CurrencyConvert","CurrentDate","CurrentImage","CurrentNotebookImage","CurrentScreenImage","CurrentValue","Curry","CurryApplied","CurvatureFlowFilter","CurveClosed","Cyan","CycleGraph","CycleIndexPolynomial","Cycles","CyclicGroup","Cyclotomic","Cylinder","CylinderBox","CylinderBoxOptions","CylindricalDecomposition","CylindricalDecompositionFunction","D","DagumDistribution","DamData","DamerauLevenshteinDistance","DampingFactor","Darker","Dashed","Dashing","DatabaseConnect","DatabaseDisconnect","DatabaseReference","Databin","DatabinAdd","DatabinRemove","Databins","DatabinSubmit","DatabinUpload","DataCompression","DataDistribution","DataRange","DataReversed","Dataset","DatasetDisplayPanel","DatasetTheme","DataStructure","DataStructureQ","Date","DateBounds","Dated","DateDelimiters","DateDifference","DatedUnit","DateFormat","DateFunction","DateGranularity","DateHistogram","DateInterval","DateList","DateListLogPlot","DateListPlot","DateListStepPlot","DateObject","DateObjectQ","DateOverlapsQ","DatePattern","DatePlus","DateRange","DateReduction","DateScale","DateSelect","DateString","DateTicksFormat","DateValue","DateWithinQ","DaubechiesWavelet","DavisDistribution","DawsonF","DayCount","DayCountConvention","DayHemisphere","DaylightQ","DayMatchQ","DayName","DayNightTerminator","DayPlus","DayRange","DayRound","DeBruijnGraph","DeBruijnSequence","Debug","DebugTag","Decapitalize","Decimal","DecimalForm","DeclareCompiledComponent","DeclareKnownSymbols","DeclarePackage","Decompose","DeconvolutionLayer","Decrement","Decrypt","DecryptFile","DedekindEta","DeepSpaceProbeData","Default","Default2DTool","Default3DTool","DefaultAttachedCellStyle","DefaultAxesStyle","DefaultBaseStyle","DefaultBoxStyle","DefaultButton","DefaultColor","DefaultControlPlacement","DefaultDockedCellStyle","DefaultDuplicateCellStyle","DefaultDuration","DefaultElement","DefaultFaceGridsStyle","DefaultFieldHintStyle","DefaultFont","DefaultFontProperties","DefaultFormatType","DefaultFrameStyle","DefaultFrameTicksStyle","DefaultGridLinesStyle","DefaultInlineFormatType","DefaultInputFormatType","DefaultLabelStyle","DefaultMenuStyle","DefaultNaturalLanguage","DefaultNewCellStyle","DefaultNewInlineCellStyle","DefaultNotebook","DefaultOptions","DefaultOutputFormatType","DefaultPrintPrecision","DefaultStyle","DefaultStyleDefinitions","DefaultTextFormatType","DefaultTextInlineFormatType","DefaultTicksStyle","DefaultTooltipStyle","DefaultValue","DefaultValues","Defer","DefineExternal","DefineInputStreamMethod","DefineOutputStreamMethod","DefineResourceFunction","Definition","Degree","DegreeCentrality","DegreeGraphDistribution","DegreeLexicographic","DegreeReverseLexicographic","DEigensystem","DEigenvalues","Deinitialization","Del","DelaunayMesh","Delayed","Deletable","Delete","DeleteAdjacentDuplicates","DeleteAnomalies","DeleteBorderComponents","DeleteCases","DeleteChannel","DeleteCloudExpression","DeleteContents","DeleteDirectory","DeleteDuplicates","DeleteDuplicatesBy","DeleteElements","DeleteFile","DeleteMissing","DeleteObject","DeletePermissionsKey","DeleteSearchIndex","DeleteSmallComponents","DeleteStopwords","DeleteWithContents","DeletionWarning","DelimitedArray","DelimitedSequence","Delimiter","DelimiterAutoMatching","DelimiterFlashTime","DelimiterMatching","Delimiters","DeliveryFunction","Dendrogram","Denominator","DensityGraphics","DensityHistogram","DensityPlot","DensityPlot3D","DependentVariables","Deploy","Deployed","Depth","DepthFirstScan","Derivative","DerivativeFilter","DerivativePDETerm","DerivedKey","DescriptorStateSpace","DesignMatrix","DestroyAfterEvaluation","Det","DeviceClose","DeviceConfigure","DeviceExecute","DeviceExecuteAsynchronous","DeviceObject","DeviceOpen","DeviceOpenQ","DeviceRead","DeviceReadBuffer","DeviceReadLatest","DeviceReadList","DeviceReadTimeSeries","Devices","DeviceStreams","DeviceWrite","DeviceWriteBuffer","DGaussianWavelet","DiacriticalPositioning","Diagonal","DiagonalizableMatrixQ","DiagonalMatrix","DiagonalMatrixQ","Dialog","DialogIndent","DialogInput","DialogLevel","DialogNotebook","DialogProlog","DialogReturn","DialogSymbols","Diamond","DiamondMatrix","DiceDissimilarity","DictionaryLookup","DictionaryWordQ","DifferenceDelta","DifferenceOrder","DifferenceQuotient","DifferenceRoot","DifferenceRootReduce","Differences","DifferentialD","DifferentialRoot","DifferentialRootReduce","DifferentiatorFilter","DiffusionPDETerm","DiggleGatesPointProcess","DiggleGrattonPointProcess","DigitalSignature","DigitBlock","DigitBlockMinimum","DigitCharacter","DigitCount","DigitQ","DihedralAngle","DihedralGroup","Dilation","DimensionalCombinations","DimensionalMeshComponents","DimensionReduce","DimensionReducerFunction","DimensionReduction","Dimensions","DiracComb","DiracDelta","DirectedEdge","DirectedEdges","DirectedGraph","DirectedGraphQ","DirectedInfinity","Direction","DirectionalLight","Directive","Directory","DirectoryName","DirectoryQ","DirectoryStack","DirichletBeta","DirichletCharacter","DirichletCondition","DirichletConvolve","DirichletDistribution","DirichletEta","DirichletL","DirichletLambda","DirichletTransform","DirichletWindow","DisableConsolePrintPacket","DisableFormatting","DiscreteAsymptotic","DiscreteChirpZTransform","DiscreteConvolve","DiscreteDelta","DiscreteHadamardTransform","DiscreteIndicator","DiscreteInputOutputModel","DiscreteLimit","DiscreteLQEstimatorGains","DiscreteLQRegulatorGains","DiscreteLyapunovSolve","DiscreteMarkovProcess","DiscreteMaxLimit","DiscreteMinLimit","DiscretePlot","DiscretePlot3D","DiscreteRatio","DiscreteRiccatiSolve","DiscreteShift","DiscreteTimeModelQ","DiscreteUniformDistribution","DiscreteVariables","DiscreteWaveletData","DiscreteWaveletPacketTransform","DiscreteWaveletTransform","DiscretizeGraphics","DiscretizeRegion","Discriminant","DisjointQ","Disjunction","Disk","DiskBox","DiskBoxOptions","DiskMatrix","DiskSegment","Dispatch","DispatchQ","DispersionEstimatorFunction","Display","DisplayAllSteps","DisplayEndPacket","DisplayForm","DisplayFunction","DisplayPacket","DisplayRules","DisplayString","DisplayTemporary","DisplayWith","DisplayWithRef","DisplayWithVariable","DistanceFunction","DistanceMatrix","DistanceTransform","Distribute","Distributed","DistributedContexts","DistributeDefinitions","DistributionChart","DistributionDomain","DistributionFitTest","DistributionParameterAssumptions","DistributionParameterQ","Dithering","Div","Divergence","Divide","DivideBy","Dividers","DivideSides","Divisible","Divisors","DivisorSigma","DivisorSum","DMSList","DMSString","Do","DockedCell","DockedCells","DocumentGenerator","DocumentGeneratorInformation","DocumentGeneratorInformationData","DocumentGenerators","DocumentNotebook","DocumentWeightingRules","Dodecahedron","DomainRegistrationInformation","DominantColors","DominatorTreeGraph","DominatorVertexList","DOSTextFormat","Dot","DotDashed","DotEqual","DotLayer","DotPlusLayer","Dotted","DoubleBracketingBar","DoubleContourIntegral","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DoublyInfinite","Down","DownArrow","DownArrowBar","DownArrowUpArrow","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","Downsample","DownTee","DownTeeArrow","DownValues","DownValuesFunction","DragAndDrop","DrawBackFaces","DrawEdges","DrawFrontFaces","DrawHighlighted","DrazinInverse","Drop","DropoutLayer","DropShadowing","DSolve","DSolveChangeVariables","DSolveValue","Dt","DualLinearProgramming","DualPlanarGraph","DualPolyhedron","DualSystemsModel","DumpGet","DumpSave","DuplicateFreeQ","Duration","Dynamic","DynamicBox","DynamicBoxOptions","DynamicEvaluationTimeout","DynamicGeoGraphics","DynamicImage","DynamicLocation","DynamicModule","DynamicModuleBox","DynamicModuleBoxOptions","DynamicModuleParent","DynamicModuleValues","DynamicName","DynamicNamespace","DynamicReference","DynamicSetting","DynamicUpdating","DynamicWrapper","DynamicWrapperBox","DynamicWrapperBoxOptions","E","EarthImpactData","EarthquakeData","EccentricityCentrality","Echo","EchoEvaluation","EchoFunction","EchoLabel","EchoTiming","EclipseType","EdgeAdd","EdgeBetweennessCentrality","EdgeCapacity","EdgeCapForm","EdgeChromaticNumber","EdgeColor","EdgeConnectivity","EdgeContract","EdgeCost","EdgeCount","EdgeCoverQ","EdgeCycleMatrix","EdgeDashing","EdgeDelete","EdgeDetect","EdgeForm","EdgeIndex","EdgeJoinForm","EdgeLabeling","EdgeLabels","EdgeLabelStyle","EdgeList","EdgeOpacity","EdgeQ","EdgeRenderingFunction","EdgeRules","EdgeShapeFunction","EdgeStyle","EdgeTaggedGraph","EdgeTaggedGraphQ","EdgeTags","EdgeThickness","EdgeTransitiveGraphQ","EdgeValueRange","EdgeValueSizes","EdgeWeight","EdgeWeightedGraphQ","Editable","EditButtonSettings","EditCellTagsSettings","EditDistance","EffectiveInterest","Eigensystem","Eigenvalues","EigenvectorCentrality","Eigenvectors","Element","ElementData","ElementwiseLayer","ElidedForms","Eliminate","EliminationOrder","Ellipsoid","EllipticE","EllipticExp","EllipticExpPrime","EllipticF","EllipticFilterModel","EllipticK","EllipticLog","EllipticNomeQ","EllipticPi","EllipticReducedHalfPeriods","EllipticTheta","EllipticThetaPrime","EmbedCode","EmbeddedHTML","EmbeddedService","EmbeddedSQLEntityClass","EmbeddedSQLExpression","EmbeddingLayer","EmbeddingObject","EmitSound","EmphasizeSyntaxErrors","EmpiricalDistribution","Empty","EmptyGraphQ","EmptyRegion","EmptySpaceF","EnableConsolePrintPacket","Enabled","Enclose","Encode","Encrypt","EncryptedObject","EncryptFile","End","EndAdd","EndDialogPacket","EndOfBuffer","EndOfFile","EndOfLine","EndOfString","EndPackage","EngineEnvironment","EngineeringForm","Enter","EnterExpressionPacket","EnterTextPacket","Entity","EntityClass","EntityClassList","EntityCopies","EntityFunction","EntityGroup","EntityInstance","EntityList","EntityPrefetch","EntityProperties","EntityProperty","EntityPropertyClass","EntityRegister","EntityStore","EntityStores","EntityTypeName","EntityUnregister","EntityValue","Entropy","EntropyFilter","Environment","Epilog","EpilogFunction","Equal","EqualColumns","EqualRows","EqualTilde","EqualTo","EquatedTo","Equilibrium","EquirippleFilterKernel","Equivalent","Erf","Erfc","Erfi","ErlangB","ErlangC","ErlangDistribution","Erosion","ErrorBox","ErrorBoxOptions","ErrorNorm","ErrorPacket","ErrorsDialogSettings","EscapeRadius","EstimatedBackground","EstimatedDistribution","EstimatedPointNormals","EstimatedPointProcess","EstimatedProcess","EstimatedVariogramModel","EstimatorGains","EstimatorRegulator","EuclideanDistance","EulerAngles","EulerCharacteristic","EulerE","EulerGamma","EulerianGraphQ","EulerMatrix","EulerPhi","Evaluatable","Evaluate","Evaluated","EvaluatePacket","EvaluateScheduledTask","EvaluationBox","EvaluationCell","EvaluationCompletionAction","EvaluationData","EvaluationElements","EvaluationEnvironment","EvaluationMode","EvaluationMonitor","EvaluationNotebook","EvaluationObject","EvaluationOrder","EvaluationPrivileges","EvaluationRateLimit","Evaluator","EvaluatorNames","EvenQ","EventData","EventEvaluator","EventHandler","EventHandlerTag","EventLabels","EventSeries","ExactBlackmanWindow","ExactNumberQ","ExactRootIsolation","ExampleData","Except","ExcludedContexts","ExcludedForms","ExcludedLines","ExcludedPhysicalQuantities","ExcludePods","Exclusions","ExclusionsStyle","Exists","Exit","ExitDialog","ExoplanetData","Exp","Expand","ExpandAll","ExpandDenominator","ExpandFileName","ExpandNumerator","Expectation","ExpectationE","ExpectedValue","ExpGammaDistribution","ExpIntegralE","ExpIntegralEi","ExpirationDate","Exponent","ExponentFunction","ExponentialDistribution","ExponentialFamily","ExponentialGeneratingFunction","ExponentialMovingAverage","ExponentialPowerDistribution","ExponentPosition","ExponentStep","Export","ExportAutoReplacements","ExportByteArray","ExportForm","ExportPacket","ExportString","Expression","ExpressionCell","ExpressionGraph","ExpressionPacket","ExpressionTree","ExpressionUUID","ExpToTrig","ExtendedEntityClass","ExtendedGCD","Extension","ExtentElementFunction","ExtentMarkers","ExtentSize","ExternalBundle","ExternalCall","ExternalDataCharacterEncoding","ExternalEvaluate","ExternalFunction","ExternalFunctionName","ExternalIdentifier","ExternalObject","ExternalOptions","ExternalSessionObject","ExternalSessions","ExternalStorageBase","ExternalStorageDownload","ExternalStorageGet","ExternalStorageObject","ExternalStoragePut","ExternalStorageUpload","ExternalTypeSignature","ExternalValue","Extract","ExtractArchive","ExtractLayer","ExtractPacletArchive","ExtremeValueDistribution","FaceAlign","FaceForm","FaceGrids","FaceGridsStyle","FaceRecognize","FacialFeatures","Factor","FactorComplete","Factorial","Factorial2","FactorialMoment","FactorialMomentGeneratingFunction","FactorialPower","FactorInteger","FactorList","FactorSquareFree","FactorSquareFreeList","FactorTerms","FactorTermsList","Fail","Failure","FailureAction","FailureDistribution","FailureQ","False","FareySequence","FARIMAProcess","FeatureDistance","FeatureExtract","FeatureExtraction","FeatureExtractor","FeatureExtractorFunction","FeatureImpactPlot","FeatureNames","FeatureNearest","FeatureSpacePlot","FeatureSpacePlot3D","FeatureTypes","FeatureValueDependencyPlot","FeatureValueImpactPlot","FEDisableConsolePrintPacket","FeedbackLinearize","FeedbackSector","FeedbackSectorStyle","FeedbackType","FEEnableConsolePrintPacket","FetalGrowthData","Fibonacci","Fibonorial","FieldCompletionFunction","FieldHint","FieldHintStyle","FieldMasked","FieldSize","File","FileBaseName","FileByteCount","FileConvert","FileDate","FileExistsQ","FileExtension","FileFormat","FileFormatProperties","FileFormatQ","FileHandler","FileHash","FileInformation","FileName","FileNameDepth","FileNameDialogSettings","FileNameDrop","FileNameForms","FileNameJoin","FileNames","FileNameSetter","FileNameSplit","FileNameTake","FileNameToFormatList","FilePrint","FileSize","FileSystemMap","FileSystemScan","FileSystemTree","FileTemplate","FileTemplateApply","FileType","FilledCurve","FilledCurveBox","FilledCurveBoxOptions","FilledTorus","FillForm","Filling","FillingStyle","FillingTransform","FilteredEntityClass","FilterRules","FinancialBond","FinancialData","FinancialDerivative","FinancialIndicator","Find","FindAnomalies","FindArgMax","FindArgMin","FindChannels","FindClique","FindClusters","FindCookies","FindCurvePath","FindCycle","FindDevices","FindDistribution","FindDistributionParameters","FindDivisions","FindEdgeColoring","FindEdgeCover","FindEdgeCut","FindEdgeIndependentPaths","FindEquationalProof","FindEulerianCycle","FindExternalEvaluators","FindFaces","FindFile","FindFit","FindFormula","FindFundamentalCycles","FindGeneratingFunction","FindGeoLocation","FindGeometricConjectures","FindGeometricTransform","FindGraphCommunities","FindGraphIsomorphism","FindGraphPartition","FindHamiltonianCycle","FindHamiltonianPath","FindHiddenMarkovStates","FindImageText","FindIndependentEdgeSet","FindIndependentVertexSet","FindInstance","FindIntegerNullVector","FindIsomers","FindIsomorphicSubgraph","FindKClan","FindKClique","FindKClub","FindKPlex","FindLibrary","FindLinearRecurrence","FindList","FindMatchingColor","FindMaximum","FindMaximumCut","FindMaximumFlow","FindMaxValue","FindMeshDefects","FindMinimum","FindMinimumCostFlow","FindMinimumCut","FindMinValue","FindMoleculeSubstructure","FindPath","FindPeaks","FindPermutation","FindPlanarColoring","FindPointProcessParameters","FindPostmanTour","FindProcessParameters","FindRegionTransform","FindRepeat","FindRoot","FindSequenceFunction","FindSettings","FindShortestPath","FindShortestTour","FindSpanningTree","FindSubgraphIsomorphism","FindSystemModelEquilibrium","FindTextualAnswer","FindThreshold","FindTransientRepeat","FindVertexColoring","FindVertexCover","FindVertexCut","FindVertexIndependentPaths","Fine","FinishDynamic","FiniteAbelianGroupCount","FiniteGroupCount","FiniteGroupData","First","FirstCase","FirstPassageTimeDistribution","FirstPosition","FischerGroupFi22","FischerGroupFi23","FischerGroupFi24Prime","FisherHypergeometricDistribution","FisherRatioTest","FisherZDistribution","Fit","FitAll","FitRegularization","FittedModel","FixedOrder","FixedPoint","FixedPointList","FlashSelection","Flat","FlatShading","Flatten","FlattenAt","FlattenLayer","FlatTopWindow","FlightData","FlipView","Floor","FlowPolynomial","Fold","FoldList","FoldPair","FoldPairList","FoldWhile","FoldWhileList","FollowRedirects","Font","FontColor","FontFamily","FontForm","FontName","FontOpacity","FontPostScriptName","FontProperties","FontReencoding","FontSize","FontSlant","FontSubstitutions","FontTracking","FontVariations","FontWeight","For","ForAll","ForAllType","ForceVersionInstall","Format","FormatRules","FormatType","FormatTypeAutoConvert","FormatValues","FormBox","FormBoxOptions","FormControl","FormFunction","FormLayoutFunction","FormObject","FormPage","FormProtectionMethod","FormTheme","FormulaData","FormulaLookup","FortranForm","Forward","ForwardBackward","ForwardCloudCredentials","Fourier","FourierCoefficient","FourierCosCoefficient","FourierCosSeries","FourierCosTransform","FourierDCT","FourierDCTFilter","FourierDCTMatrix","FourierDST","FourierDSTMatrix","FourierMatrix","FourierParameters","FourierSequenceTransform","FourierSeries","FourierSinCoefficient","FourierSinSeries","FourierSinTransform","FourierTransform","FourierTrigSeries","FoxH","FoxHReduce","FractionalBrownianMotionProcess","FractionalD","FractionalGaussianNoiseProcess","FractionalPart","FractionBox","FractionBoxOptions","FractionLine","Frame","FrameBox","FrameBoxOptions","Framed","FrameInset","FrameLabel","Frameless","FrameListVideo","FrameMargins","FrameRate","FrameStyle","FrameTicks","FrameTicksStyle","FRatioDistribution","FrechetDistribution","FreeQ","FrenetSerretSystem","FrequencySamplingFilterKernel","FresnelC","FresnelF","FresnelG","FresnelS","Friday","FrobeniusNumber","FrobeniusSolve","FromAbsoluteTime","FromCharacterCode","FromCoefficientRules","FromContinuedFraction","FromDate","FromDateString","FromDigits","FromDMS","FromEntity","FromJulianDate","FromLetterNumber","FromPolarCoordinates","FromRawPointer","FromRomanNumeral","FromSphericalCoordinates","FromUnixTime","Front","FrontEndDynamicExpression","FrontEndEventActions","FrontEndExecute","FrontEndObject","FrontEndResource","FrontEndResourceString","FrontEndStackSize","FrontEndToken","FrontEndTokenExecute","FrontEndValueCache","FrontEndVersion","FrontFaceColor","FrontFaceGlowColor","FrontFaceOpacity","FrontFaceSpecularColor","FrontFaceSpecularExponent","FrontFaceSurfaceAppearance","FrontFaceTexture","Full","FullAxes","FullDefinition","FullForm","FullGraphics","FullInformationOutputRegulator","FullOptions","FullRegion","FullSimplify","Function","FunctionAnalytic","FunctionBijective","FunctionCompile","FunctionCompileExport","FunctionCompileExportByteArray","FunctionCompileExportLibrary","FunctionCompileExportString","FunctionContinuous","FunctionConvexity","FunctionDeclaration","FunctionDiscontinuities","FunctionDomain","FunctionExpand","FunctionInjective","FunctionInterpolation","FunctionLayer","FunctionMeromorphic","FunctionMonotonicity","FunctionPeriod","FunctionPoles","FunctionRange","FunctionSign","FunctionSingularities","FunctionSpace","FunctionSurjective","FussellVeselyImportance","GaborFilter","GaborMatrix","GaborWavelet","GainMargins","GainPhaseMargins","GalaxyData","GalleryView","Gamma","GammaDistribution","GammaRegularized","GapPenalty","GARCHProcess","GatedRecurrentLayer","Gather","GatherBy","GaugeFaceElementFunction","GaugeFaceStyle","GaugeFrameElementFunction","GaugeFrameSize","GaugeFrameStyle","GaugeLabels","GaugeMarkers","GaugeStyle","GaussianFilter","GaussianIntegers","GaussianMatrix","GaussianOrthogonalMatrixDistribution","GaussianSymplecticMatrixDistribution","GaussianUnitaryMatrixDistribution","GaussianWindow","GCD","GegenbauerC","General","GeneralizedLinearModelFit","GenerateAsymmetricKeyPair","GenerateConditions","GeneratedAssetFormat","GeneratedAssetLocation","GeneratedCell","GeneratedCellStyles","GeneratedDocumentBinding","GenerateDerivedKey","GenerateDigitalSignature","GenerateDocument","GeneratedParameters","GeneratedQuantityMagnitudes","GenerateFileSignature","GenerateHTTPResponse","GenerateSecuredAuthenticationKey","GenerateSymmetricKey","GeneratingFunction","GeneratorDescription","GeneratorHistoryLength","GeneratorOutputType","Generic","GenericCylindricalDecomposition","GenomeData","GenomeLookup","GeoAntipode","GeoArea","GeoArraySize","GeoBackground","GeoBoundary","GeoBoundingBox","GeoBounds","GeoBoundsRegion","GeoBoundsRegionBoundary","GeoBubbleChart","GeoCenter","GeoCircle","GeoContourPlot","GeoDensityPlot","GeodesicClosing","GeodesicDilation","GeodesicErosion","GeodesicOpening","GeodesicPolyhedron","GeoDestination","GeodesyData","GeoDirection","GeoDisk","GeoDisplacement","GeoDistance","GeoDistanceList","GeoElevationData","GeoEntities","GeoGraphics","GeoGraphPlot","GeoGraphValuePlot","GeogravityModelData","GeoGridDirectionDifference","GeoGridLines","GeoGridLinesStyle","GeoGridPosition","GeoGridRange","GeoGridRangePadding","GeoGridUnitArea","GeoGridUnitDistance","GeoGridVector","GeoGroup","GeoHemisphere","GeoHemisphereBoundary","GeoHistogram","GeoIdentify","GeoImage","GeoLabels","GeoLength","GeoListPlot","GeoLocation","GeologicalPeriodData","GeomagneticModelData","GeoMarker","GeometricAssertion","GeometricBrownianMotionProcess","GeometricDistribution","GeometricMean","GeometricMeanFilter","GeometricOptimization","GeometricScene","GeometricStep","GeometricStylingRules","GeometricTest","GeometricTransformation","GeometricTransformation3DBox","GeometricTransformation3DBoxOptions","GeometricTransformationBox","GeometricTransformationBoxOptions","GeoModel","GeoNearest","GeoOrientationData","GeoPath","GeoPolygon","GeoPosition","GeoPositionENU","GeoPositionXYZ","GeoProjection","GeoProjectionData","GeoRange","GeoRangePadding","GeoRegionValuePlot","GeoResolution","GeoScaleBar","GeoServer","GeoSmoothHistogram","GeoStreamPlot","GeoStyling","GeoStylingImageFunction","GeoVariant","GeoVector","GeoVectorENU","GeoVectorPlot","GeoVectorXYZ","GeoVisibleRegion","GeoVisibleRegionBoundary","GeoWithinQ","GeoZoomLevel","GestureHandler","GestureHandlerTag","Get","GetContext","GetEnvironment","GetFileName","GetLinebreakInformationPacket","GibbsPointProcess","Glaisher","GlobalClusteringCoefficient","GlobalPreferences","GlobalSession","Glow","GoldenAngle","GoldenRatio","GompertzMakehamDistribution","GoochShading","GoodmanKruskalGamma","GoodmanKruskalGammaTest","Goto","GouraudShading","Grad","Gradient","GradientFilter","GradientFittedMesh","GradientOrientationFilter","GrammarApply","GrammarRules","GrammarToken","Graph","Graph3D","GraphAssortativity","GraphAutomorphismGroup","GraphCenter","GraphComplement","GraphData","GraphDensity","GraphDiameter","GraphDifference","GraphDisjointUnion","GraphDistance","GraphDistanceMatrix","GraphEmbedding","GraphHighlight","GraphHighlightStyle","GraphHub","Graphics","Graphics3D","Graphics3DBox","Graphics3DBoxOptions","GraphicsArray","GraphicsBaseline","GraphicsBox","GraphicsBoxOptions","GraphicsColor","GraphicsColumn","GraphicsComplex","GraphicsComplex3DBox","GraphicsComplex3DBoxOptions","GraphicsComplexBox","GraphicsComplexBoxOptions","GraphicsContents","GraphicsData","GraphicsGrid","GraphicsGridBox","GraphicsGroup","GraphicsGroup3DBox","GraphicsGroup3DBoxOptions","GraphicsGroupBox","GraphicsGroupBoxOptions","GraphicsGrouping","GraphicsHighlightColor","GraphicsRow","GraphicsSpacing","GraphicsStyle","GraphIntersection","GraphJoin","GraphLayerLabels","GraphLayers","GraphLayerStyle","GraphLayout","GraphLinkEfficiency","GraphPeriphery","GraphPlot","GraphPlot3D","GraphPower","GraphProduct","GraphPropertyDistribution","GraphQ","GraphRadius","GraphReciprocity","GraphRoot","GraphStyle","GraphSum","GraphTree","GraphUnion","Gray","GrayLevel","Greater","GreaterEqual","GreaterEqualLess","GreaterEqualThan","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterThan","GreaterTilde","GreekStyle","Green","GreenFunction","Grid","GridBaseline","GridBox","GridBoxAlignment","GridBoxBackground","GridBoxDividers","GridBoxFrame","GridBoxItemSize","GridBoxItemStyle","GridBoxOptions","GridBoxSpacings","GridCreationSettings","GridDefaultElement","GridElementStyleOptions","GridFrame","GridFrameMargins","GridGraph","GridLines","GridLinesStyle","GridVideo","GroebnerBasis","GroupActionBase","GroupBy","GroupCentralizer","GroupElementFromWord","GroupElementPosition","GroupElementQ","GroupElements","GroupElementToWord","GroupGenerators","Groupings","GroupMultiplicationTable","GroupOpenerColor","GroupOpenerInsideFrame","GroupOrbits","GroupOrder","GroupPageBreakWithin","GroupSetwiseStabilizer","GroupStabilizer","GroupStabilizerChain","GroupTogetherGrouping","GroupTogetherNestedGrouping","GrowCutComponents","Gudermannian","GuidedFilter","GumbelDistribution","HaarWavelet","HadamardMatrix","HalfLine","HalfNormalDistribution","HalfPlane","HalfSpace","HalftoneShading","HamiltonianGraphQ","HammingDistance","HammingWindow","HandlerFunctions","HandlerFunctionsKeys","HankelH1","HankelH2","HankelMatrix","HankelTransform","HannPoissonWindow","HannWindow","HaradaNortonGroupHN","HararyGraph","HardcorePointProcess","HarmonicMean","HarmonicMeanFilter","HarmonicNumber","Hash","HatchFilling","HatchShading","Haversine","HazardFunction","Head","HeadCompose","HeaderAlignment","HeaderBackground","HeaderDisplayFunction","HeaderLines","Headers","HeaderSize","HeaderStyle","Heads","HeatFluxValue","HeatInsulationValue","HeatOutflowValue","HeatRadiationValue","HeatSymmetryValue","HeatTemperatureCondition","HeatTransferPDEComponent","HeatTransferValue","HeavisideLambda","HeavisidePi","HeavisideTheta","HeldGroupHe","HeldPart","HelmholtzPDEComponent","HelpBrowserLookup","HelpBrowserNotebook","HelpBrowserSettings","HelpViewerSettings","Here","HermiteDecomposition","HermiteH","Hermitian","HermitianMatrixQ","HessenbergDecomposition","Hessian","HeunB","HeunBPrime","HeunC","HeunCPrime","HeunD","HeunDPrime","HeunG","HeunGPrime","HeunT","HeunTPrime","HexadecimalCharacter","Hexahedron","HexahedronBox","HexahedronBoxOptions","HiddenItems","HiddenMarkovProcess","HiddenSurface","Highlighted","HighlightGraph","HighlightImage","HighlightMesh","HighlightString","HighpassFilter","HigmanSimsGroupHS","HilbertCurve","HilbertFilter","HilbertMatrix","Histogram","Histogram3D","HistogramDistribution","HistogramList","HistogramPointDensity","HistogramTransform","HistogramTransformInterpolation","HistoricalPeriodData","HitMissTransform","HITSCentrality","HjorthDistribution","HodgeDual","HoeffdingD","HoeffdingDTest","Hold","HoldAll","HoldAllComplete","HoldComplete","HoldFirst","HoldForm","HoldPattern","HoldRest","HolidayCalendar","HomeDirectory","HomePage","Horizontal","HorizontalForm","HorizontalGauge","HorizontalScrollPosition","HornerForm","HostLookup","HotellingTSquareDistribution","HoytDistribution","HTMLSave","HTTPErrorResponse","HTTPRedirect","HTTPRequest","HTTPRequestData","HTTPResponse","Hue","HumanGrowthData","HumpDownHump","HumpEqual","HurwitzLerchPhi","HurwitzZeta","HyperbolicDistribution","HypercubeGraph","HyperexponentialDistribution","Hyperfactorial","Hypergeometric0F1","Hypergeometric0F1Regularized","Hypergeometric1F1","Hypergeometric1F1Regularized","Hypergeometric2F1","Hypergeometric2F1Regularized","HypergeometricDistribution","HypergeometricPFQ","HypergeometricPFQRegularized","HypergeometricU","Hyperlink","HyperlinkAction","HyperlinkCreationSettings","Hyperplane","Hyphenation","HyphenationOptions","HypoexponentialDistribution","HypothesisTestData","I","IconData","Iconize","IconizedObject","IconRules","Icosahedron","Identity","IdentityMatrix","If","IfCompiled","IgnoreCase","IgnoreDiacritics","IgnoreIsotopes","IgnorePunctuation","IgnoreSpellCheck","IgnoreStereochemistry","IgnoringInactive","Im","Image","Image3D","Image3DProjection","Image3DSlices","ImageAccumulate","ImageAdd","ImageAdjust","ImageAlign","ImageApply","ImageApplyIndexed","ImageAspectRatio","ImageAssemble","ImageAugmentationLayer","ImageBoundingBoxes","ImageCache","ImageCacheValid","ImageCapture","ImageCaptureFunction","ImageCases","ImageChannels","ImageClip","ImageCollage","ImageColorSpace","ImageCompose","ImageContainsQ","ImageContents","ImageConvolve","ImageCooccurrence","ImageCorners","ImageCorrelate","ImageCorrespondingPoints","ImageCrop","ImageData","ImageDeconvolve","ImageDemosaic","ImageDifference","ImageDimensions","ImageDisplacements","ImageDistance","ImageEditMode","ImageEffect","ImageExposureCombine","ImageFeatureTrack","ImageFileApply","ImageFileFilter","ImageFileScan","ImageFilter","ImageFocusCombine","ImageForestingComponents","ImageFormattingWidth","ImageForwardTransformation","ImageGraphics","ImageHistogram","ImageIdentify","ImageInstanceQ","ImageKeypoints","ImageLabels","ImageLegends","ImageLevels","ImageLines","ImageMargins","ImageMarker","ImageMarkers","ImageMeasurements","ImageMesh","ImageMultiply","ImageOffset","ImagePad","ImagePadding","ImagePartition","ImagePeriodogram","ImagePerspectiveTransformation","ImagePosition","ImagePreviewFunction","ImagePyramid","ImagePyramidApply","ImageQ","ImageRangeCache","ImageRecolor","ImageReflect","ImageRegion","ImageResize","ImageResolution","ImageRestyle","ImageRotate","ImageRotated","ImageSaliencyFilter","ImageScaled","ImageScan","ImageSize","ImageSizeAction","ImageSizeCache","ImageSizeMultipliers","ImageSizeRaw","ImageStitch","ImageSubtract","ImageTake","ImageTransformation","ImageTrim","ImageType","ImageValue","ImageValuePositions","ImageVectorscopePlot","ImageWaveformPlot","ImagingDevice","ImplicitD","ImplicitRegion","Implies","Import","ImportAutoReplacements","ImportByteArray","ImportedObject","ImportOptions","ImportString","ImprovementImportance","In","Inactivate","Inactive","InactiveStyle","IncidenceGraph","IncidenceList","IncidenceMatrix","IncludeAromaticBonds","IncludeConstantBasis","IncludedContexts","IncludeDefinitions","IncludeDirectories","IncludeFileExtension","IncludeGeneratorTasks","IncludeHydrogens","IncludeInflections","IncludeMetaInformation","IncludePods","IncludeQuantities","IncludeRelatedTables","IncludeSingularSolutions","IncludeSingularTerm","IncludeWindowTimes","Increment","IndefiniteMatrixQ","Indent","IndentingNewlineSpacings","IndentMaxFraction","IndependenceTest","IndependentEdgeSetQ","IndependentPhysicalQuantity","IndependentUnit","IndependentUnitDimension","IndependentVertexSetQ","Indeterminate","IndeterminateThreshold","IndexCreationOptions","Indexed","IndexEdgeTaggedGraph","IndexGraph","IndexTag","Inequality","InertEvaluate","InertExpression","InexactNumberQ","InexactNumbers","InfiniteFuture","InfiniteLine","InfiniteLineThrough","InfinitePast","InfinitePlane","Infinity","Infix","InflationAdjust","InflationMethod","Information","InformationData","InformationDataGrid","Inherited","InheritScope","InhomogeneousPoissonPointProcess","InhomogeneousPoissonProcess","InitialEvaluationHistory","Initialization","InitializationCell","InitializationCellEvaluation","InitializationCellWarning","InitializationObject","InitializationObjects","InitializationValue","Initialize","InitialSeeding","InlineCounterAssignments","InlineCounterIncrements","InlineRules","Inner","InnerPolygon","InnerPolyhedron","Inpaint","Input","InputAliases","InputAssumptions","InputAutoReplacements","InputField","InputFieldBox","InputFieldBoxOptions","InputForm","InputGrouping","InputNamePacket","InputNotebook","InputPacket","InputPorts","InputSettings","InputStream","InputString","InputStringPacket","InputToBoxFormPacket","Insert","InsertionFunction","InsertionPointObject","InsertLinebreaks","InsertResults","Inset","Inset3DBox","Inset3DBoxOptions","InsetBox","InsetBoxOptions","Insphere","Install","InstallService","InstanceNormalizationLayer","InString","Integer","IntegerDigits","IntegerExponent","IntegerLength","IntegerName","IntegerPart","IntegerPartitions","IntegerQ","IntegerReverse","Integers","IntegerString","Integral","Integrate","IntegrateChangeVariables","Interactive","InteractiveTradingChart","InterfaceSwitched","Interlaced","Interleaving","InternallyBalancedDecomposition","InterpolatingFunction","InterpolatingPolynomial","Interpolation","InterpolationOrder","InterpolationPoints","InterpolationPrecision","Interpretation","InterpretationBox","InterpretationBoxOptions","InterpretationFunction","Interpreter","InterpretTemplate","InterquartileRange","Interrupt","InterruptSettings","IntersectedEntityClass","IntersectingQ","Intersection","Interval","IntervalIntersection","IntervalMarkers","IntervalMarkersStyle","IntervalMemberQ","IntervalSlider","IntervalUnion","Into","Inverse","InverseBetaRegularized","InverseBilateralLaplaceTransform","InverseBilateralZTransform","InverseCDF","InverseChiSquareDistribution","InverseContinuousWaveletTransform","InverseDistanceTransform","InverseEllipticNomeQ","InverseErf","InverseErfc","InverseFourier","InverseFourierCosTransform","InverseFourierSequenceTransform","InverseFourierSinTransform","InverseFourierTransform","InverseFunction","InverseFunctions","InverseGammaDistribution","InverseGammaRegularized","InverseGaussianDistribution","InverseGudermannian","InverseHankelTransform","InverseHaversine","InverseImagePyramid","InverseJacobiCD","InverseJacobiCN","InverseJacobiCS","InverseJacobiDC","InverseJacobiDN","InverseJacobiDS","InverseJacobiNC","InverseJacobiND","InverseJacobiNS","InverseJacobiSC","InverseJacobiSD","InverseJacobiSN","InverseLaplaceTransform","InverseMellinTransform","InversePermutation","InverseRadon","InverseRadonTransform","InverseSeries","InverseShortTimeFourier","InverseSpectrogram","InverseSurvivalFunction","InverseTransformedRegion","InverseWaveletTransform","InverseWeierstrassP","InverseWishartMatrixDistribution","InverseZTransform","Invisible","InvisibleApplication","InvisibleTimes","IPAddress","IrreduciblePolynomialQ","IslandData","IsolatingInterval","IsomorphicGraphQ","IsomorphicSubgraphQ","IsotopeData","Italic","Item","ItemAspectRatio","ItemBox","ItemBoxOptions","ItemDisplayFunction","ItemSize","ItemStyle","ItoProcess","JaccardDissimilarity","JacobiAmplitude","Jacobian","JacobiCD","JacobiCN","JacobiCS","JacobiDC","JacobiDN","JacobiDS","JacobiEpsilon","JacobiNC","JacobiND","JacobiNS","JacobiP","JacobiSC","JacobiSD","JacobiSN","JacobiSymbol","JacobiZeta","JacobiZN","JankoGroupJ1","JankoGroupJ2","JankoGroupJ3","JankoGroupJ4","JarqueBeraALMTest","JohnsonDistribution","Join","JoinAcross","Joined","JoinedCurve","JoinedCurveBox","JoinedCurveBoxOptions","JoinForm","JordanDecomposition","JordanModelDecomposition","JulianDate","JuliaSetBoettcher","JuliaSetIterationCount","JuliaSetPlot","JuliaSetPoints","K","KagiChart","KaiserBesselWindow","KaiserWindow","KalmanEstimator","KalmanFilter","KarhunenLoeveDecomposition","KaryTree","KatzCentrality","KCoreComponents","KDistribution","KEdgeConnectedComponents","KEdgeConnectedGraphQ","KeepExistingVersion","KelvinBei","KelvinBer","KelvinKei","KelvinKer","KendallTau","KendallTauTest","KernelConfiguration","KernelExecute","KernelFunction","KernelMixtureDistribution","KernelObject","Kernels","Ket","Key","KeyCollisionFunction","KeyComplement","KeyDrop","KeyDropFrom","KeyExistsQ","KeyFreeQ","KeyIntersection","KeyMap","KeyMemberQ","KeypointStrength","Keys","KeySelect","KeySort","KeySortBy","KeyTake","KeyUnion","KeyValueMap","KeyValuePattern","Khinchin","KillProcess","KirchhoffGraph","KirchhoffMatrix","KleinInvariantJ","KnapsackSolve","KnightTourGraph","KnotData","KnownUnitQ","KochCurve","KolmogorovSmirnovTest","KroneckerDelta","KroneckerModelDecomposition","KroneckerProduct","KroneckerSymbol","KuiperTest","KumaraswamyDistribution","Kurtosis","KuwaharaFilter","KVertexConnectedComponents","KVertexConnectedGraphQ","LABColor","Label","Labeled","LabeledSlider","LabelingFunction","LabelingSize","LabelStyle","LabelVisibility","LaguerreL","LakeData","LambdaComponents","LambertW","LameC","LameCPrime","LameEigenvalueA","LameEigenvalueB","LameS","LameSPrime","LaminaData","LanczosWindow","LandauDistribution","Language","LanguageCategory","LanguageData","LanguageIdentify","LanguageOptions","LaplaceDistribution","LaplaceTransform","Laplacian","LaplacianFilter","LaplacianGaussianFilter","LaplacianPDETerm","Large","Larger","Last","Latitude","LatitudeLongitude","LatticeData","LatticeReduce","Launch","LaunchKernels","LayeredGraphPlot","LayeredGraphPlot3D","LayerSizeFunction","LayoutInformation","LCHColor","LCM","LeaderSize","LeafCount","LeapVariant","LeapYearQ","LearnDistribution","LearnedDistribution","LearningRate","LearningRateMultipliers","LeastSquares","LeastSquaresFilterKernel","Left","LeftArrow","LeftArrowBar","LeftArrowRightArrow","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftRightArrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","LegendAppearance","Legended","LegendFunction","LegendLabel","LegendLayout","LegendMargins","LegendMarkers","LegendMarkerSize","LegendreP","LegendreQ","LegendreType","Length","LengthWhile","LerchPhi","Less","LessEqual","LessEqualGreater","LessEqualThan","LessFullEqual","LessGreater","LessLess","LessSlantEqual","LessThan","LessTilde","LetterCharacter","LetterCounts","LetterNumber","LetterQ","Level","LeveneTest","LeviCivitaTensor","LevyDistribution","Lexicographic","LexicographicOrder","LexicographicSort","LibraryDataType","LibraryFunction","LibraryFunctionDeclaration","LibraryFunctionError","LibraryFunctionInformation","LibraryFunctionLoad","LibraryFunctionUnload","LibraryLoad","LibraryUnload","LicenseEntitlementObject","LicenseEntitlements","LicenseID","LicensingSettings","LiftingFilterData","LiftingWaveletTransform","LightBlue","LightBrown","LightCyan","Lighter","LightGray","LightGreen","Lighting","LightingAngle","LightMagenta","LightOrange","LightPink","LightPurple","LightRed","LightSources","LightYellow","Likelihood","Limit","LimitsPositioning","LimitsPositioningTokens","LindleyDistribution","Line","Line3DBox","Line3DBoxOptions","LinearFilter","LinearFractionalOptimization","LinearFractionalTransform","LinearGradientFilling","LinearGradientImage","LinearizingTransformationData","LinearLayer","LinearModelFit","LinearOffsetFunction","LinearOptimization","LinearProgramming","LinearRecurrence","LinearSolve","LinearSolveFunction","LineBox","LineBoxOptions","LineBreak","LinebreakAdjustments","LineBreakChart","LinebreakSemicolonWeighting","LineBreakWithin","LineColor","LineGraph","LineIndent","LineIndentMaxFraction","LineIntegralConvolutionPlot","LineIntegralConvolutionScale","LineLegend","LineOpacity","LineSpacing","LineWrapParts","LinkActivate","LinkClose","LinkConnect","LinkConnectedQ","LinkCreate","LinkError","LinkFlush","LinkFunction","LinkHost","LinkInterrupt","LinkLaunch","LinkMode","LinkObject","LinkOpen","LinkOptions","LinkPatterns","LinkProtocol","LinkRankCentrality","LinkRead","LinkReadHeld","LinkReadyQ","Links","LinkService","LinkWrite","LinkWriteHeld","LiouvilleLambda","List","Listable","ListAnimate","ListContourPlot","ListContourPlot3D","ListConvolve","ListCorrelate","ListCurvePathPlot","ListDeconvolve","ListDensityPlot","ListDensityPlot3D","Listen","ListFormat","ListFourierSequenceTransform","ListInterpolation","ListLineIntegralConvolutionPlot","ListLinePlot","ListLinePlot3D","ListLogLinearPlot","ListLogLogPlot","ListLogPlot","ListPicker","ListPickerBox","ListPickerBoxBackground","ListPickerBoxOptions","ListPlay","ListPlot","ListPlot3D","ListPointPlot3D","ListPolarPlot","ListQ","ListSliceContourPlot3D","ListSliceDensityPlot3D","ListSliceVectorPlot3D","ListStepPlot","ListStreamDensityPlot","ListStreamPlot","ListStreamPlot3D","ListSurfacePlot3D","ListVectorDensityPlot","ListVectorDisplacementPlot","ListVectorDisplacementPlot3D","ListVectorPlot","ListVectorPlot3D","ListZTransform","Literal","LiteralSearch","LiteralType","LoadCompiledComponent","LocalAdaptiveBinarize","LocalCache","LocalClusteringCoefficient","LocalEvaluate","LocalizeDefinitions","LocalizeVariables","LocalObject","LocalObjects","LocalResponseNormalizationLayer","LocalSubmit","LocalSymbol","LocalTime","LocalTimeZone","LocationEquivalenceTest","LocationTest","Locator","LocatorAutoCreate","LocatorBox","LocatorBoxOptions","LocatorCentering","LocatorPane","LocatorPaneBox","LocatorPaneBoxOptions","LocatorRegion","Locked","Log","Log10","Log2","LogBarnesG","LogGamma","LogGammaDistribution","LogicalExpand","LogIntegral","LogisticDistribution","LogisticSigmoid","LogitModelFit","LogLikelihood","LogLinearPlot","LogLogisticDistribution","LogLogPlot","LogMultinormalDistribution","LogNormalDistribution","LogPlot","LogRankTest","LogSeriesDistribution","LongEqual","Longest","LongestCommonSequence","LongestCommonSequencePositions","LongestCommonSubsequence","LongestCommonSubsequencePositions","LongestMatch","LongestOrderedSequence","LongForm","Longitude","LongLeftArrow","LongLeftRightArrow","LongRightArrow","LongShortTermMemoryLayer","Lookup","Loopback","LoopFreeGraphQ","Looping","LossFunction","LowerCaseQ","LowerLeftArrow","LowerRightArrow","LowerTriangularize","LowerTriangularMatrix","LowerTriangularMatrixQ","LowpassFilter","LQEstimatorGains","LQGRegulator","LQOutputRegulatorGains","LQRegulatorGains","LUBackSubstitution","LucasL","LuccioSamiComponents","LUDecomposition","LunarEclipse","LUVColor","LyapunovSolve","LyonsGroupLy","MachineID","MachineName","MachineNumberQ","MachinePrecision","MacintoshSystemPageSetup","Magenta","Magnification","Magnify","MailAddressValidation","MailExecute","MailFolder","MailItem","MailReceiverFunction","MailResponseFunction","MailSearch","MailServerConnect","MailServerConnection","MailSettings","MainSolve","MaintainDynamicCaches","Majority","MakeBoxes","MakeExpression","MakeRules","ManagedLibraryExpressionID","ManagedLibraryExpressionQ","MandelbrotSetBoettcher","MandelbrotSetDistance","MandelbrotSetIterationCount","MandelbrotSetMemberQ","MandelbrotSetPlot","MangoldtLambda","ManhattanDistance","Manipulate","Manipulator","MannedSpaceMissionData","MannWhitneyTest","MantissaExponent","Manual","Map","MapAll","MapApply","MapAt","MapIndexed","MAProcess","MapThread","MarchenkoPasturDistribution","MarcumQ","MardiaCombinedTest","MardiaKurtosisTest","MardiaSkewnessTest","MarginalDistribution","MarkovProcessProperties","Masking","MassConcentrationCondition","MassFluxValue","MassImpermeableBoundaryValue","MassOutflowValue","MassSymmetryValue","MassTransferValue","MassTransportPDEComponent","MatchingDissimilarity","MatchLocalNameQ","MatchLocalNames","MatchQ","Material","MaterialShading","MaternPointProcess","MathematicalFunctionData","MathematicaNotation","MathieuC","MathieuCharacteristicA","MathieuCharacteristicB","MathieuCharacteristicExponent","MathieuCPrime","MathieuGroupM11","MathieuGroupM12","MathieuGroupM22","MathieuGroupM23","MathieuGroupM24","MathieuS","MathieuSPrime","MathMLForm","MathMLText","Matrices","MatrixExp","MatrixForm","MatrixFunction","MatrixLog","MatrixNormalDistribution","MatrixPlot","MatrixPower","MatrixPropertyDistribution","MatrixQ","MatrixRank","MatrixTDistribution","Max","MaxBend","MaxCellMeasure","MaxColorDistance","MaxDate","MaxDetect","MaxDisplayedChildren","MaxDuration","MaxExtraBandwidths","MaxExtraConditions","MaxFeatureDisplacement","MaxFeatures","MaxFilter","MaximalBy","Maximize","MaxItems","MaxIterations","MaxLimit","MaxMemoryUsed","MaxMixtureKernels","MaxOverlapFraction","MaxPlotPoints","MaxPoints","MaxRecursion","MaxStableDistribution","MaxStepFraction","MaxSteps","MaxStepSize","MaxTrainingRounds","MaxValue","MaxwellDistribution","MaxWordGap","McLaughlinGroupMcL","Mean","MeanAbsoluteLossLayer","MeanAround","MeanClusteringCoefficient","MeanDegreeConnectivity","MeanDeviation","MeanFilter","MeanGraphDistance","MeanNeighborDegree","MeanPointDensity","MeanShift","MeanShiftFilter","MeanSquaredLossLayer","Median","MedianDeviation","MedianFilter","MedicalTestData","Medium","MeijerG","MeijerGReduce","MeixnerDistribution","MellinConvolve","MellinTransform","MemberQ","MemoryAvailable","MemoryConstrained","MemoryConstraint","MemoryInUse","MengerMesh","Menu","MenuAppearance","MenuCommandKey","MenuEvaluator","MenuItem","MenuList","MenuPacket","MenuSortingValue","MenuStyle","MenuView","Merge","MergeDifferences","MergingFunction","MersennePrimeExponent","MersennePrimeExponentQ","Mesh","MeshCellCentroid","MeshCellCount","MeshCellHighlight","MeshCellIndex","MeshCellLabel","MeshCellMarker","MeshCellMeasure","MeshCellQuality","MeshCells","MeshCellShapeFunction","MeshCellStyle","MeshConnectivityGraph","MeshCoordinates","MeshFunctions","MeshPrimitives","MeshQualityGoal","MeshRange","MeshRefinementFunction","MeshRegion","MeshRegionQ","MeshShading","MeshStyle","Message","MessageDialog","MessageList","MessageName","MessageObject","MessageOptions","MessagePacket","Messages","MessagesNotebook","MetaCharacters","MetaInformation","MeteorShowerData","Method","MethodOptions","MexicanHatWavelet","MeyerWavelet","Midpoint","MIMETypeToFormatList","Min","MinColorDistance","MinDate","MinDetect","MineralData","MinFilter","MinimalBy","MinimalPolynomial","MinimalStateSpaceModel","Minimize","MinimumTimeIncrement","MinIntervalSize","MinkowskiQuestionMark","MinLimit","MinMax","MinorPlanetData","Minors","MinPointSeparation","MinRecursion","MinSize","MinStableDistribution","Minus","MinusPlus","MinValue","Missing","MissingBehavior","MissingDataMethod","MissingDataRules","MissingQ","MissingString","MissingStyle","MissingValuePattern","MissingValueSynthesis","MittagLefflerE","MixedFractionParts","MixedGraphQ","MixedMagnitude","MixedRadix","MixedRadixQuantity","MixedUnit","MixtureDistribution","Mod","Modal","Mode","ModelPredictiveController","Modular","ModularInverse","ModularLambda","Module","Modulus","MoebiusMu","Molecule","MoleculeAlign","MoleculeContainsQ","MoleculeDraw","MoleculeEquivalentQ","MoleculeFreeQ","MoleculeGraph","MoleculeMatchQ","MoleculeMaximumCommonSubstructure","MoleculeModify","MoleculeName","MoleculePattern","MoleculePlot","MoleculePlot3D","MoleculeProperty","MoleculeQ","MoleculeRecognize","MoleculeSubstructureCount","MoleculeValue","Moment","MomentConvert","MomentEvaluate","MomentGeneratingFunction","MomentOfInertia","Monday","Monitor","MonomialList","MonomialOrder","MonsterGroupM","MoonPhase","MoonPosition","MorletWavelet","MorphologicalBinarize","MorphologicalBranchPoints","MorphologicalComponents","MorphologicalEulerNumber","MorphologicalGraph","MorphologicalPerimeter","MorphologicalTransform","MortalityData","Most","MountainData","MouseAnnotation","MouseAppearance","MouseAppearanceTag","MouseButtons","Mouseover","MousePointerNote","MousePosition","MovieData","MovingAverage","MovingMap","MovingMedian","MoyalDistribution","MultiaxisArrangement","Multicolumn","MultiedgeStyle","MultigraphQ","MultilaunchWarning","MultiLetterItalics","MultiLetterStyle","MultilineFunction","Multinomial","MultinomialDistribution","MultinormalDistribution","MultiplicativeOrder","Multiplicity","MultiplySides","MultiscriptBoxOptions","Multiselection","MultivariateHypergeometricDistribution","MultivariatePoissonDistribution","MultivariateTDistribution","N","NakagamiDistribution","NameQ","Names","NamespaceBox","NamespaceBoxOptions","Nand","NArgMax","NArgMin","NBernoulliB","NBodySimulation","NBodySimulationData","NCache","NCaputoD","NDEigensystem","NDEigenvalues","NDSolve","NDSolveValue","Nearest","NearestFunction","NearestMeshCells","NearestNeighborG","NearestNeighborGraph","NearestTo","NebulaData","NeedlemanWunschSimilarity","Needs","Negative","NegativeBinomialDistribution","NegativeDefiniteMatrixQ","NegativeIntegers","NegativelyOrientedPoints","NegativeMultinomialDistribution","NegativeRationals","NegativeReals","NegativeSemidefiniteMatrixQ","NeighborhoodData","NeighborhoodGraph","Nest","NestedGreaterGreater","NestedLessLess","NestedScriptRules","NestGraph","NestList","NestTree","NestWhile","NestWhileList","NetAppend","NetArray","NetArrayLayer","NetBidirectionalOperator","NetChain","NetDecoder","NetDelete","NetDrop","NetEncoder","NetEvaluationMode","NetExternalObject","NetExtract","NetFlatten","NetFoldOperator","NetGANOperator","NetGraph","NetInformation","NetInitialize","NetInsert","NetInsertSharedArrays","NetJoin","NetMapOperator","NetMapThreadOperator","NetMeasurements","NetModel","NetNestOperator","NetPairEmbeddingOperator","NetPort","NetPortGradient","NetPrepend","NetRename","NetReplace","NetReplacePart","NetSharedArray","NetStateObject","NetTake","NetTrain","NetTrainResultsObject","NetUnfold","NetworkPacketCapture","NetworkPacketRecording","NetworkPacketRecordingDuring","NetworkPacketTrace","NeumannValue","NevilleThetaC","NevilleThetaD","NevilleThetaN","NevilleThetaS","NewPrimitiveStyle","NExpectation","Next","NextCell","NextDate","NextPrime","NextScheduledTaskTime","NeymanScottPointProcess","NFractionalD","NHoldAll","NHoldFirst","NHoldRest","NicholsGridLines","NicholsPlot","NightHemisphere","NIntegrate","NMaximize","NMaxValue","NMinimize","NMinValue","NominalScale","NominalVariables","NonAssociative","NoncentralBetaDistribution","NoncentralChiSquareDistribution","NoncentralFRatioDistribution","NoncentralStudentTDistribution","NonCommutativeMultiply","NonConstants","NondimensionalizationTransform","None","NoneTrue","NonlinearModelFit","NonlinearStateSpaceModel","NonlocalMeansFilter","NonNegative","NonNegativeIntegers","NonNegativeRationals","NonNegativeReals","NonPositive","NonPositiveIntegers","NonPositiveRationals","NonPositiveReals","Nor","NorlundB","Norm","Normal","NormalDistribution","NormalGrouping","NormalizationLayer","Normalize","Normalized","NormalizedSquaredEuclideanDistance","NormalMatrixQ","NormalsFunction","NormFunction","Not","NotCongruent","NotCupCap","NotDoubleVerticalBar","Notebook","NotebookApply","NotebookAutoSave","NotebookBrowseDirectory","NotebookClose","NotebookConvertSettings","NotebookCreate","NotebookDefault","NotebookDelete","NotebookDirectory","NotebookDynamicExpression","NotebookEvaluate","NotebookEventActions","NotebookFileName","NotebookFind","NotebookGet","NotebookImport","NotebookInformation","NotebookInterfaceObject","NotebookLocate","NotebookObject","NotebookOpen","NotebookPath","NotebookPrint","NotebookPut","NotebookRead","Notebooks","NotebookSave","NotebookSelection","NotebooksMenu","NotebookTemplate","NotebookWrite","NotElement","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","Nothing","NotHumpDownHump","NotHumpEqual","NotificationFunction","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessFullEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotPrecedesTilde","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","Now","NoWhitespace","NProbability","NProduct","NProductFactors","NRoots","NSolve","NSolveValues","NSum","NSumTerms","NuclearExplosionData","NuclearReactorData","Null","NullRecords","NullSpace","NullWords","Number","NumberCompose","NumberDecompose","NumberDigit","NumberExpand","NumberFieldClassNumber","NumberFieldDiscriminant","NumberFieldFundamentalUnits","NumberFieldIntegralBasis","NumberFieldNormRepresentatives","NumberFieldRegulator","NumberFieldRootsOfUnity","NumberFieldSignature","NumberForm","NumberFormat","NumberLinePlot","NumberMarks","NumberMultiplier","NumberPadding","NumberPoint","NumberQ","NumberSeparator","NumberSigns","NumberString","Numerator","NumeratorDenominator","NumericalOrder","NumericalSort","NumericArray","NumericArrayQ","NumericArrayType","NumericFunction","NumericQ","NuttallWindow","NValues","NyquistGridLines","NyquistPlot","O","ObjectExistsQ","ObservabilityGramian","ObservabilityMatrix","ObservableDecomposition","ObservableModelQ","OceanData","Octahedron","OddQ","Off","Offset","OLEData","On","ONanGroupON","Once","OneIdentity","Opacity","OpacityFunction","OpacityFunctionScaling","Open","OpenAppend","Opener","OpenerBox","OpenerBoxOptions","OpenerView","OpenFunctionInspectorPacket","Opening","OpenRead","OpenSpecialOptions","OpenTemporary","OpenWrite","Operate","OperatingSystem","OperatorApplied","OptimumFlowData","Optional","OptionalElement","OptionInspectorSettings","OptionQ","Options","OptionsPacket","OptionsPattern","OptionValue","OptionValueBox","OptionValueBoxOptions","Or","Orange","Order","OrderDistribution","OrderedQ","Ordering","OrderingBy","OrderingLayer","Orderless","OrderlessPatternSequence","OrdinalScale","OrnsteinUhlenbeckProcess","Orthogonalize","OrthogonalMatrixQ","Out","Outer","OuterPolygon","OuterPolyhedron","OutputAutoOverwrite","OutputControllabilityMatrix","OutputControllableModelQ","OutputForm","OutputFormData","OutputGrouping","OutputMathEditExpression","OutputNamePacket","OutputPorts","OutputResponse","OutputSizeLimit","OutputStream","Over","OverBar","OverDot","Overflow","OverHat","Overlaps","Overlay","OverlayBox","OverlayBoxOptions","OverlayVideo","Overscript","OverscriptBox","OverscriptBoxOptions","OverTilde","OverVector","OverwriteTarget","OwenT","OwnValues","Package","PackingMethod","PackPaclet","PacletDataRebuild","PacletDirectoryAdd","PacletDirectoryLoad","PacletDirectoryRemove","PacletDirectoryUnload","PacletDisable","PacletEnable","PacletFind","PacletFindRemote","PacletInformation","PacletInstall","PacletInstallSubmit","PacletNewerQ","PacletObject","PacletObjectQ","PacletSite","PacletSiteObject","PacletSiteRegister","PacletSites","PacletSiteUnregister","PacletSiteUpdate","PacletSymbol","PacletUninstall","PacletUpdate","PaddedForm","Padding","PaddingLayer","PaddingSize","PadeApproximant","PadLeft","PadRight","PageBreakAbove","PageBreakBelow","PageBreakWithin","PageFooterLines","PageFooters","PageHeaderLines","PageHeaders","PageHeight","PageRankCentrality","PageTheme","PageWidth","Pagination","PairCorrelationG","PairedBarChart","PairedHistogram","PairedSmoothHistogram","PairedTTest","PairedZTest","PaletteNotebook","PalettePath","PalettesMenuSettings","PalindromeQ","Pane","PaneBox","PaneBoxOptions","Panel","PanelBox","PanelBoxOptions","Paneled","PaneSelector","PaneSelectorBox","PaneSelectorBoxOptions","PaperWidth","ParabolicCylinderD","ParagraphIndent","ParagraphSpacing","ParallelArray","ParallelAxisPlot","ParallelCombine","ParallelDo","Parallelepiped","ParallelEvaluate","Parallelization","Parallelize","ParallelKernels","ParallelMap","ParallelNeeds","Parallelogram","ParallelProduct","ParallelSubmit","ParallelSum","ParallelTable","ParallelTry","Parameter","ParameterEstimator","ParameterMixtureDistribution","ParameterVariables","ParametricConvexOptimization","ParametricFunction","ParametricNDSolve","ParametricNDSolveValue","ParametricPlot","ParametricPlot3D","ParametricRampLayer","ParametricRegion","ParentBox","ParentCell","ParentConnect","ParentDirectory","ParentEdgeLabel","ParentEdgeLabelFunction","ParentEdgeLabelStyle","ParentEdgeShapeFunction","ParentEdgeStyle","ParentEdgeStyleFunction","ParentForm","Parenthesize","ParentList","ParentNotebook","ParetoDistribution","ParetoPickandsDistribution","ParkData","Part","PartBehavior","PartialCorrelationFunction","PartialD","ParticleAcceleratorData","ParticleData","Partition","PartitionGranularity","PartitionsP","PartitionsQ","PartLayer","PartOfSpeech","PartProtection","ParzenWindow","PascalDistribution","PassEventsDown","PassEventsUp","Paste","PasteAutoQuoteCharacters","PasteBoxFormInlineCells","PasteButton","Path","PathGraph","PathGraphQ","Pattern","PatternFilling","PatternReaction","PatternSequence","PatternTest","PauliMatrix","PaulWavelet","Pause","PausedTime","PDF","PeakDetect","PeanoCurve","PearsonChiSquareTest","PearsonCorrelationTest","PearsonDistribution","PenttinenPointProcess","PercentForm","PerfectNumber","PerfectNumberQ","PerformanceGoal","Perimeter","PeriodicBoundaryCondition","PeriodicInterpolation","Periodogram","PeriodogramArray","Permanent","Permissions","PermissionsGroup","PermissionsGroupMemberQ","PermissionsGroups","PermissionsKey","PermissionsKeys","PermutationCycles","PermutationCyclesQ","PermutationGroup","PermutationLength","PermutationList","PermutationListQ","PermutationMatrix","PermutationMax","PermutationMin","PermutationOrder","PermutationPower","PermutationProduct","PermutationReplace","Permutations","PermutationSupport","Permute","PeronaMalikFilter","Perpendicular","PerpendicularBisector","PersistenceLocation","PersistenceTime","PersistentObject","PersistentObjects","PersistentSymbol","PersistentValue","PersonData","PERTDistribution","PetersenGraph","PhaseMargins","PhaseRange","PhongShading","PhysicalSystemData","Pi","Pick","PickedElements","PickMode","PIDData","PIDDerivativeFilter","PIDFeedforward","PIDTune","Piecewise","PiecewiseExpand","PieChart","PieChart3D","PillaiTrace","PillaiTraceTest","PingTime","Pink","PitchRecognize","Pivoting","PixelConstrained","PixelValue","PixelValuePositions","Placed","Placeholder","PlaceholderLayer","PlaceholderReplace","Plain","PlanarAngle","PlanarFaceList","PlanarGraph","PlanarGraphQ","PlanckRadiationLaw","PlaneCurveData","PlanetaryMoonData","PlanetData","PlantData","Play","PlaybackSettings","PlayRange","Plot","Plot3D","Plot3Matrix","PlotDivision","PlotJoined","PlotLabel","PlotLabels","PlotLayout","PlotLegends","PlotMarkers","PlotPoints","PlotRange","PlotRangeClipping","PlotRangeClipPlanesStyle","PlotRangePadding","PlotRegion","PlotStyle","PlotTheme","Pluralize","Plus","PlusMinus","Pochhammer","PodStates","PodWidth","Point","Point3DBox","Point3DBoxOptions","PointBox","PointBoxOptions","PointCountDistribution","PointDensity","PointDensityFunction","PointFigureChart","PointLegend","PointLight","PointProcessEstimator","PointProcessFitTest","PointProcessParameterAssumptions","PointProcessParameterQ","PointSize","PointStatisticFunction","PointValuePlot","PoissonConsulDistribution","PoissonDistribution","PoissonPDEComponent","PoissonPointProcess","PoissonProcess","PoissonWindow","PolarAxes","PolarAxesOrigin","PolarGridLines","PolarPlot","PolarTicks","PoleZeroMarkers","PolyaAeppliDistribution","PolyGamma","Polygon","Polygon3DBox","Polygon3DBoxOptions","PolygonalNumber","PolygonAngle","PolygonBox","PolygonBoxOptions","PolygonCoordinates","PolygonDecomposition","PolygonHoleScale","PolygonIntersections","PolygonScale","Polyhedron","PolyhedronAngle","PolyhedronBox","PolyhedronBoxOptions","PolyhedronCoordinates","PolyhedronData","PolyhedronDecomposition","PolyhedronGenus","PolyLog","PolynomialExpressionQ","PolynomialExtendedGCD","PolynomialForm","PolynomialGCD","PolynomialLCM","PolynomialMod","PolynomialQ","PolynomialQuotient","PolynomialQuotientRemainder","PolynomialReduce","PolynomialRemainder","Polynomials","PolynomialSumOfSquaresList","PoolingLayer","PopupMenu","PopupMenuBox","PopupMenuBoxOptions","PopupView","PopupWindow","Position","PositionIndex","PositionLargest","PositionSmallest","Positive","PositiveDefiniteMatrixQ","PositiveIntegers","PositivelyOrientedPoints","PositiveRationals","PositiveReals","PositiveSemidefiniteMatrixQ","PossibleZeroQ","Postfix","PostScript","Power","PowerDistribution","PowerExpand","PowerMod","PowerModList","PowerRange","PowerSpectralDensity","PowersRepresentations","PowerSymmetricPolynomial","Precedence","PrecedenceForm","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","Precision","PrecisionGoal","PreDecrement","Predict","PredictionRoot","PredictorFunction","PredictorInformation","PredictorMeasurements","PredictorMeasurementsObject","PreemptProtect","PreferencesPath","PreferencesSettings","Prefix","PreIncrement","Prepend","PrependLayer","PrependTo","PreprocessingRules","PreserveColor","PreserveImageOptions","Previous","PreviousCell","PreviousDate","PriceGraphDistribution","PrimaryPlaceholder","Prime","PrimeNu","PrimeOmega","PrimePi","PrimePowerQ","PrimeQ","Primes","PrimeZetaP","PrimitivePolynomialQ","PrimitiveRoot","PrimitiveRootList","PrincipalComponents","PrincipalValue","Print","PrintableASCIIQ","PrintAction","PrintForm","PrintingCopies","PrintingOptions","PrintingPageRange","PrintingStartingPageNumber","PrintingStyleEnvironment","Printout3D","Printout3DPreviewer","PrintPrecision","PrintTemporary","Prism","PrismBox","PrismBoxOptions","PrivateCellOptions","PrivateEvaluationOptions","PrivateFontOptions","PrivateFrontEndOptions","PrivateKey","PrivateNotebookOptions","PrivatePaths","Probability","ProbabilityDistribution","ProbabilityPlot","ProbabilityPr","ProbabilityScalePlot","ProbitModelFit","ProcessConnection","ProcessDirectory","ProcessEnvironment","Processes","ProcessEstimator","ProcessInformation","ProcessObject","ProcessParameterAssumptions","ProcessParameterQ","ProcessStateDomain","ProcessStatus","ProcessTimeDomain","Product","ProductDistribution","ProductLog","ProgressIndicator","ProgressIndicatorBox","ProgressIndicatorBoxOptions","ProgressReporting","Projection","Prolog","PromptForm","ProofObject","PropagateAborts","Properties","Property","PropertyList","PropertyValue","Proportion","Proportional","Protect","Protected","ProteinData","Pruning","PseudoInverse","PsychrometricPropertyData","PublicKey","PublisherID","PulsarData","PunctuationCharacter","Purple","Put","PutAppend","Pyramid","PyramidBox","PyramidBoxOptions","QBinomial","QFactorial","QGamma","QHypergeometricPFQ","QnDispersion","QPochhammer","QPolyGamma","QRDecomposition","QuadraticIrrationalQ","QuadraticOptimization","Quantile","QuantilePlot","Quantity","QuantityArray","QuantityDistribution","QuantityForm","QuantityMagnitude","QuantityQ","QuantityUnit","QuantityVariable","QuantityVariableCanonicalUnit","QuantityVariableDimensions","QuantityVariableIdentifier","QuantityVariablePhysicalQuantity","Quartics","QuartileDeviation","Quartiles","QuartileSkewness","Query","QuestionGenerator","QuestionInterface","QuestionObject","QuestionSelector","QueueingNetworkProcess","QueueingProcess","QueueProperties","Quiet","QuietEcho","Quit","Quotient","QuotientRemainder","RadialAxisPlot","RadialGradientFilling","RadialGradientImage","RadialityCentrality","RadicalBox","RadicalBoxOptions","RadioButton","RadioButtonBar","RadioButtonBox","RadioButtonBoxOptions","Radon","RadonTransform","RamanujanTau","RamanujanTauL","RamanujanTauTheta","RamanujanTauZ","Ramp","Random","RandomArrayLayer","RandomChoice","RandomColor","RandomComplex","RandomDate","RandomEntity","RandomFunction","RandomGeneratorState","RandomGeoPosition","RandomGraph","RandomImage","RandomInstance","RandomInteger","RandomPermutation","RandomPoint","RandomPointConfiguration","RandomPolygon","RandomPolyhedron","RandomPrime","RandomReal","RandomSample","RandomSeed","RandomSeeding","RandomTime","RandomTree","RandomVariate","RandomWalkProcess","RandomWord","Range","RangeFilter","RangeSpecification","RankedMax","RankedMin","RarerProbability","Raster","Raster3D","Raster3DBox","Raster3DBoxOptions","RasterArray","RasterBox","RasterBoxOptions","Rasterize","RasterSize","Rational","RationalExpressionQ","RationalFunctions","Rationalize","Rationals","Ratios","RawArray","RawBoxes","RawData","RawMedium","RayleighDistribution","Re","ReactionBalance","ReactionBalancedQ","ReactionPDETerm","Read","ReadByteArray","ReadLine","ReadList","ReadProtected","ReadString","Real","RealAbs","RealBlockDiagonalForm","RealDigits","RealExponent","Reals","RealSign","Reap","RebuildPacletData","RecalibrationFunction","RecognitionPrior","RecognitionThreshold","ReconstructionMesh","Record","RecordLists","RecordSeparators","Rectangle","RectangleBox","RectangleBoxOptions","RectangleChart","RectangleChart3D","RectangularRepeatingElement","RecurrenceFilter","RecurrenceTable","RecurringDigitsForm","Red","Reduce","RefBox","ReferenceLineStyle","ReferenceMarkers","ReferenceMarkerStyle","Refine","ReflectionMatrix","ReflectionTransform","Refresh","RefreshRate","Region","RegionBinarize","RegionBoundary","RegionBoundaryStyle","RegionBounds","RegionCentroid","RegionCongruent","RegionConvert","RegionDifference","RegionDilation","RegionDimension","RegionDisjoint","RegionDistance","RegionDistanceFunction","RegionEmbeddingDimension","RegionEqual","RegionErosion","RegionFillingStyle","RegionFit","RegionFunction","RegionImage","RegionIntersection","RegionMeasure","RegionMember","RegionMemberFunction","RegionMoment","RegionNearest","RegionNearestFunction","RegionPlot","RegionPlot3D","RegionProduct","RegionQ","RegionResize","RegionSimilar","RegionSize","RegionSymmetricDifference","RegionUnion","RegionWithin","RegisterExternalEvaluator","RegularExpression","Regularization","RegularlySampledQ","RegularPolygon","ReIm","ReImLabels","ReImPlot","ReImStyle","Reinstall","RelationalDatabase","RelationGraph","Release","ReleaseHold","ReliabilityDistribution","ReliefImage","ReliefPlot","RemoteAuthorizationCaching","RemoteBatchJobAbort","RemoteBatchJobObject","RemoteBatchJobs","RemoteBatchMapSubmit","RemoteBatchSubmissionEnvironment","RemoteBatchSubmit","RemoteConnect","RemoteConnectionObject","RemoteEvaluate","RemoteFile","RemoteInputFiles","RemoteKernelObject","RemoteProviderSettings","RemoteRun","RemoteRunProcess","RemovalConditions","Remove","RemoveAlphaChannel","RemoveAsynchronousTask","RemoveAudioStream","RemoveBackground","RemoveChannelListener","RemoveChannelSubscribers","Removed","RemoveDiacritics","RemoveInputStreamMethod","RemoveOutputStreamMethod","RemoveProperty","RemoveScheduledTask","RemoveUsers","RemoveVideoStream","RenameDirectory","RenameFile","RenderAll","RenderingOptions","RenewalProcess","RenkoChart","RepairMesh","Repeated","RepeatedNull","RepeatedString","RepeatedTiming","RepeatingElement","Replace","ReplaceAll","ReplaceAt","ReplaceHeldPart","ReplaceImageValue","ReplaceList","ReplacePart","ReplacePixelValue","ReplaceRepeated","ReplicateLayer","RequiredPhysicalQuantities","Resampling","ResamplingAlgorithmData","ResamplingMethod","Rescale","RescalingTransform","ResetDirectory","ResetScheduledTask","ReshapeLayer","Residue","ResidueSum","ResizeLayer","Resolve","ResolveContextAliases","ResourceAcquire","ResourceData","ResourceFunction","ResourceObject","ResourceRegister","ResourceRemove","ResourceSearch","ResourceSubmissionObject","ResourceSubmit","ResourceSystemBase","ResourceSystemPath","ResourceUpdate","ResourceVersion","ResponseForm","Rest","RestartInterval","Restricted","Resultant","ResumePacket","Return","ReturnCreatesNewCell","ReturnEntersInput","ReturnExpressionPacket","ReturnInputFormPacket","ReturnPacket","ReturnReceiptFunction","ReturnTextPacket","Reverse","ReverseApplied","ReverseBiorthogonalSplineWavelet","ReverseElement","ReverseEquilibrium","ReverseGraph","ReverseSort","ReverseSortBy","ReverseUpEquilibrium","RevolutionAxis","RevolutionPlot3D","RGBColor","RiccatiSolve","RiceDistribution","RidgeFilter","RiemannR","RiemannSiegelTheta","RiemannSiegelZ","RiemannXi","Riffle","Right","RightArrow","RightArrowBar","RightArrowLeftArrow","RightComposition","RightCosetRepresentative","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightTee","RightTeeArrow","RightTeeVector","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","RipleyK","RipleyRassonRegion","RiskAchievementImportance","RiskReductionImportance","RobustConvexOptimization","RogersTanimotoDissimilarity","RollPitchYawAngles","RollPitchYawMatrix","RomanNumeral","Root","RootApproximant","RootIntervals","RootLocusPlot","RootMeanSquare","RootOfUnityQ","RootReduce","Roots","RootSum","RootTree","Rotate","RotateLabel","RotateLeft","RotateRight","RotationAction","RotationBox","RotationBoxOptions","RotationMatrix","RotationTransform","Round","RoundImplies","RoundingRadius","Row","RowAlignments","RowBackgrounds","RowBox","RowHeights","RowLines","RowMinHeight","RowReduce","RowsEqual","RowSpacings","RSolve","RSolveValue","RudinShapiro","RudvalisGroupRu","Rule","RuleCondition","RuleDelayed","RuleForm","RulePlot","RulerUnits","RulesTree","Run","RunProcess","RunScheduledTask","RunThrough","RuntimeAttributes","RuntimeOptions","RussellRaoDissimilarity","SameAs","SameQ","SameTest","SameTestProperties","SampledEntityClass","SampleDepth","SampledSoundFunction","SampledSoundList","SampleRate","SamplingPeriod","SARIMAProcess","SARMAProcess","SASTriangle","SatelliteData","SatisfiabilityCount","SatisfiabilityInstances","SatisfiableQ","Saturday","Save","Saveable","SaveAutoDelete","SaveConnection","SaveDefinitions","SavitzkyGolayMatrix","SawtoothWave","Scale","Scaled","ScaleDivisions","ScaledMousePosition","ScaleOrigin","ScalePadding","ScaleRanges","ScaleRangeStyle","ScalingFunctions","ScalingMatrix","ScalingTransform","Scan","ScheduledTask","ScheduledTaskActiveQ","ScheduledTaskInformation","ScheduledTaskInformationData","ScheduledTaskObject","ScheduledTasks","SchurDecomposition","ScientificForm","ScientificNotationThreshold","ScorerGi","ScorerGiPrime","ScorerHi","ScorerHiPrime","ScreenRectangle","ScreenStyleEnvironment","ScriptBaselineShifts","ScriptForm","ScriptLevel","ScriptMinSize","ScriptRules","ScriptSizeMultipliers","Scrollbars","ScrollingOptions","ScrollPosition","SearchAdjustment","SearchIndexObject","SearchIndices","SearchQueryString","SearchResultObject","Sec","Sech","SechDistribution","SecondOrderConeOptimization","SectionGrouping","SectorChart","SectorChart3D","SectorOrigin","SectorSpacing","SecuredAuthenticationKey","SecuredAuthenticationKeys","SecurityCertificate","SeedRandom","Select","Selectable","SelectComponents","SelectedCells","SelectedNotebook","SelectFirst","Selection","SelectionAnimate","SelectionCell","SelectionCellCreateCell","SelectionCellDefaultStyle","SelectionCellParentStyle","SelectionCreateCell","SelectionDebuggerTag","SelectionEvaluate","SelectionEvaluateCreateCell","SelectionMove","SelectionPlaceholder","SelectWithContents","SelfLoops","SelfLoopStyle","SemanticImport","SemanticImportString","SemanticInterpretation","SemialgebraicComponentInstances","SemidefiniteOptimization","SendMail","SendMessage","Sequence","SequenceAlignment","SequenceAttentionLayer","SequenceCases","SequenceCount","SequenceFold","SequenceFoldList","SequenceForm","SequenceHold","SequenceIndicesLayer","SequenceLastLayer","SequenceMostLayer","SequencePosition","SequencePredict","SequencePredictorFunction","SequenceReplace","SequenceRestLayer","SequenceReverseLayer","SequenceSplit","Series","SeriesCoefficient","SeriesData","SeriesTermGoal","ServiceConnect","ServiceDisconnect","ServiceExecute","ServiceObject","ServiceRequest","ServiceResponse","ServiceSubmit","SessionSubmit","SessionTime","Set","SetAccuracy","SetAlphaChannel","SetAttributes","Setbacks","SetCloudDirectory","SetCookies","SetDelayed","SetDirectory","SetEnvironment","SetFileDate","SetFileFormatProperties","SetOptions","SetOptionsPacket","SetPermissions","SetPrecision","SetProperty","SetSecuredAuthenticationKey","SetSelectedNotebook","SetSharedFunction","SetSharedVariable","SetStreamPosition","SetSystemModel","SetSystemOptions","Setter","SetterBar","SetterBox","SetterBoxOptions","Setting","SetUsers","Shading","Shallow","ShannonWavelet","ShapiroWilkTest","Share","SharingList","Sharpen","ShearingMatrix","ShearingTransform","ShellRegion","ShenCastanMatrix","ShiftedGompertzDistribution","ShiftRegisterSequence","Short","ShortDownArrow","Shortest","ShortestMatch","ShortestPathFunction","ShortLeftArrow","ShortRightArrow","ShortTimeFourier","ShortTimeFourierData","ShortUpArrow","Show","ShowAutoConvert","ShowAutoSpellCheck","ShowAutoStyles","ShowCellBracket","ShowCellLabel","ShowCellTags","ShowClosedCellArea","ShowCodeAssist","ShowContents","ShowControls","ShowCursorTracker","ShowGroupOpenCloseIcon","ShowGroupOpener","ShowInvisibleCharacters","ShowPageBreaks","ShowPredictiveInterface","ShowSelection","ShowShortBoxForm","ShowSpecialCharacters","ShowStringCharacters","ShowSyntaxStyles","ShrinkingDelay","ShrinkWrapBoundingBox","SiderealTime","SiegelTheta","SiegelTukeyTest","SierpinskiCurve","SierpinskiMesh","Sign","Signature","SignedRankTest","SignedRegionDistance","SignificanceLevel","SignPadding","SignTest","SimilarityRules","SimpleGraph","SimpleGraphQ","SimplePolygonQ","SimplePolyhedronQ","Simplex","Simplify","Sin","Sinc","SinghMaddalaDistribution","SingleEvaluation","SingleLetterItalics","SingleLetterStyle","SingularValueDecomposition","SingularValueList","SingularValuePlot","SingularValues","Sinh","SinhIntegral","SinIntegral","SixJSymbol","Skeleton","SkeletonTransform","SkellamDistribution","Skewness","SkewNormalDistribution","SkinStyle","Skip","SliceContourPlot3D","SliceDensityPlot3D","SliceDistribution","SliceVectorPlot3D","Slider","Slider2D","Slider2DBox","Slider2DBoxOptions","SliderBox","SliderBoxOptions","SlideShowVideo","SlideView","Slot","SlotSequence","Small","SmallCircle","Smaller","SmithDecomposition","SmithDelayCompensator","SmithWatermanSimilarity","SmoothDensityHistogram","SmoothHistogram","SmoothHistogram3D","SmoothKernelDistribution","SmoothPointDensity","SnDispersion","Snippet","SnippetsVideo","SnubPolyhedron","SocialMediaData","Socket","SocketConnect","SocketListen","SocketListener","SocketObject","SocketOpen","SocketReadMessage","SocketReadyQ","Sockets","SocketWaitAll","SocketWaitNext","SoftmaxLayer","SokalSneathDissimilarity","SolarEclipse","SolarSystemFeatureData","SolarTime","SolidAngle","SolidBoundaryLoadValue","SolidData","SolidDisplacementCondition","SolidFixedCondition","SolidMechanicsPDEComponent","SolidMechanicsStrain","SolidMechanicsStress","SolidRegionQ","Solve","SolveAlways","SolveDelayed","SolveValues","Sort","SortBy","SortedBy","SortedEntityClass","Sound","SoundAndGraphics","SoundNote","SoundVolume","SourceLink","SourcePDETerm","Sow","Space","SpaceCurveData","SpaceForm","Spacer","Spacings","Span","SpanAdjustments","SpanCharacterRounding","SpanFromAbove","SpanFromBoth","SpanFromLeft","SpanLineThickness","SpanMaxSize","SpanMinSize","SpanningCharacters","SpanSymmetric","SparseArray","SparseArrayQ","SpatialBinnedPointData","SpatialBoundaryCorrection","SpatialEstimate","SpatialEstimatorFunction","SpatialGraphDistribution","SpatialJ","SpatialMedian","SpatialNoiseLevel","SpatialObservationRegionQ","SpatialPointData","SpatialPointSelect","SpatialRandomnessTest","SpatialTransformationLayer","SpatialTrendFunction","Speak","SpeakerMatchQ","SpearmanRankTest","SpearmanRho","SpeciesData","SpecificityGoal","SpectralLineData","Spectrogram","SpectrogramArray","Specularity","SpeechCases","SpeechInterpreter","SpeechRecognize","SpeechSynthesize","SpellingCorrection","SpellingCorrectionList","SpellingDictionaries","SpellingDictionariesPath","SpellingOptions","Sphere","SphereBox","SphereBoxOptions","SpherePoints","SphericalBesselJ","SphericalBesselY","SphericalHankelH1","SphericalHankelH2","SphericalHarmonicY","SphericalPlot3D","SphericalRegion","SphericalShell","SpheroidalEigenvalue","SpheroidalJoiningFactor","SpheroidalPS","SpheroidalPSPrime","SpheroidalQS","SpheroidalQSPrime","SpheroidalRadialFactor","SpheroidalS1","SpheroidalS1Prime","SpheroidalS2","SpheroidalS2Prime","Splice","SplicedDistribution","SplineClosed","SplineDegree","SplineKnots","SplineWeights","Split","SplitBy","SpokenString","SpotLight","Sqrt","SqrtBox","SqrtBoxOptions","Square","SquaredEuclideanDistance","SquareFreeQ","SquareIntersection","SquareMatrixQ","SquareRepeatingElement","SquaresR","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","SquareWave","SSSTriangle","StabilityMargins","StabilityMarginsStyle","StableDistribution","Stack","StackBegin","StackComplete","StackedDateListPlot","StackedListPlot","StackInhibit","StadiumShape","StandardAtmosphereData","StandardDeviation","StandardDeviationFilter","StandardForm","Standardize","Standardized","StandardOceanData","StandbyDistribution","Star","StarClusterData","StarData","StarGraph","StartAsynchronousTask","StartExternalSession","StartingStepSize","StartOfLine","StartOfString","StartProcess","StartScheduledTask","StartupSound","StartWebSession","StateDimensions","StateFeedbackGains","StateOutputEstimator","StateResponse","StateSpaceModel","StateSpaceRealization","StateSpaceTransform","StateTransformationLinearize","StationaryDistribution","StationaryWaveletPacketTransform","StationaryWaveletTransform","StatusArea","StatusCentrality","StepMonitor","StereochemistryElements","StieltjesGamma","StippleShading","StirlingS1","StirlingS2","StopAsynchronousTask","StoppingPowerData","StopScheduledTask","StrataVariables","StratonovichProcess","StraussHardcorePointProcess","StraussPointProcess","StreamColorFunction","StreamColorFunctionScaling","StreamDensityPlot","StreamMarkers","StreamPlot","StreamPlot3D","StreamPoints","StreamPosition","Streams","StreamScale","StreamStyle","StrictInequalities","String","StringBreak","StringByteCount","StringCases","StringContainsQ","StringCount","StringDelete","StringDrop","StringEndsQ","StringExpression","StringExtract","StringForm","StringFormat","StringFormatQ","StringFreeQ","StringInsert","StringJoin","StringLength","StringMatchQ","StringPadLeft","StringPadRight","StringPart","StringPartition","StringPosition","StringQ","StringRepeat","StringReplace","StringReplaceList","StringReplacePart","StringReverse","StringRiffle","StringRotateLeft","StringRotateRight","StringSkeleton","StringSplit","StringStartsQ","StringTake","StringTakeDrop","StringTemplate","StringToByteArray","StringToStream","StringTrim","StripBoxes","StripOnInput","StripStyleOnPaste","StripWrapperBoxes","StrokeForm","Struckthrough","StructuralImportance","StructuredArray","StructuredArrayHeadQ","StructuredSelection","StruveH","StruveL","Stub","StudentTDistribution","Style","StyleBox","StyleBoxAutoDelete","StyleData","StyleDefinitions","StyleForm","StyleHints","StyleKeyMapping","StyleMenuListing","StyleNameDialogSettings","StyleNames","StylePrint","StyleSheetPath","Subdivide","Subfactorial","Subgraph","SubMinus","SubPlus","SubresultantPolynomialRemainders","SubresultantPolynomials","Subresultants","Subscript","SubscriptBox","SubscriptBoxOptions","Subscripted","Subsequences","Subset","SubsetCases","SubsetCount","SubsetEqual","SubsetMap","SubsetPosition","SubsetQ","SubsetReplace","Subsets","SubStar","SubstitutionSystem","Subsuperscript","SubsuperscriptBox","SubsuperscriptBoxOptions","SubtitleEncoding","SubtitleTrackSelection","Subtract","SubtractFrom","SubtractSides","SubValues","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","Success","SuchThat","Sum","SumConvergence","SummationLayer","Sunday","SunPosition","Sunrise","Sunset","SuperDagger","SuperMinus","SupernovaData","SuperPlus","Superscript","SuperscriptBox","SuperscriptBoxOptions","Superset","SupersetEqual","SuperStar","Surd","SurdForm","SurfaceAppearance","SurfaceArea","SurfaceColor","SurfaceData","SurfaceGraphics","SurvivalDistribution","SurvivalFunction","SurvivalModel","SurvivalModelFit","SuspendPacket","SuzukiDistribution","SuzukiGroupSuz","SwatchLegend","Switch","Symbol","SymbolName","SymletWavelet","Symmetric","SymmetricDifference","SymmetricGroup","SymmetricKey","SymmetricMatrixQ","SymmetricPolynomial","SymmetricReduction","Symmetrize","SymmetrizedArray","SymmetrizedArrayRules","SymmetrizedDependentComponents","SymmetrizedIndependentComponents","SymmetrizedReplacePart","SynchronousInitialization","SynchronousUpdating","Synonyms","Syntax","SyntaxForm","SyntaxInformation","SyntaxLength","SyntaxPacket","SyntaxQ","SynthesizeMissingValues","SystemCredential","SystemCredentialData","SystemCredentialKey","SystemCredentialKeys","SystemCredentialStoreObject","SystemDialogInput","SystemException","SystemGet","SystemHelpPath","SystemInformation","SystemInformationData","SystemInstall","SystemModel","SystemModeler","SystemModelExamples","SystemModelLinearize","SystemModelMeasurements","SystemModelParametricSimulate","SystemModelPlot","SystemModelProgressReporting","SystemModelReliability","SystemModels","SystemModelSimulate","SystemModelSimulateSensitivity","SystemModelSimulationData","SystemOpen","SystemOptions","SystemProcessData","SystemProcesses","SystemsConnectionsModel","SystemsModelControllerData","SystemsModelDelay","SystemsModelDelayApproximate","SystemsModelDelete","SystemsModelDimensions","SystemsModelExtract","SystemsModelFeedbackConnect","SystemsModelLabels","SystemsModelLinearity","SystemsModelMerge","SystemsModelOrder","SystemsModelParallelConnect","SystemsModelSeriesConnect","SystemsModelStateFeedbackConnect","SystemsModelVectorRelativeOrders","SystemStub","SystemTest","Tab","TabFilling","Table","TableAlignments","TableDepth","TableDirections","TableForm","TableHeadings","TableSpacing","TableView","TableViewBox","TableViewBoxAlignment","TableViewBoxBackground","TableViewBoxHeaders","TableViewBoxItemSize","TableViewBoxItemStyle","TableViewBoxOptions","TabSpacings","TabView","TabViewBox","TabViewBoxOptions","TagBox","TagBoxNote","TagBoxOptions","TaggingRules","TagSet","TagSetDelayed","TagStyle","TagUnset","Take","TakeDrop","TakeLargest","TakeLargestBy","TakeList","TakeSmallest","TakeSmallestBy","TakeWhile","Tally","Tan","Tanh","TargetDevice","TargetFunctions","TargetSystem","TargetUnits","TaskAbort","TaskExecute","TaskObject","TaskRemove","TaskResume","Tasks","TaskSuspend","TaskWait","TautologyQ","TelegraphProcess","TemplateApply","TemplateArgBox","TemplateBox","TemplateBoxOptions","TemplateEvaluate","TemplateExpression","TemplateIf","TemplateObject","TemplateSequence","TemplateSlot","TemplateSlotSequence","TemplateUnevaluated","TemplateVerbatim","TemplateWith","TemporalData","TemporalRegularity","Temporary","TemporaryVariable","TensorContract","TensorDimensions","TensorExpand","TensorProduct","TensorQ","TensorRank","TensorReduce","TensorSymmetry","TensorTranspose","TensorWedge","TerminatedEvaluation","TernaryListPlot","TernaryPlotCorners","TestID","TestReport","TestReportObject","TestResultObject","Tetrahedron","TetrahedronBox","TetrahedronBoxOptions","TeXForm","TeXSave","Text","Text3DBox","Text3DBoxOptions","TextAlignment","TextBand","TextBoundingBox","TextBox","TextCases","TextCell","TextClipboardType","TextContents","TextData","TextElement","TextForm","TextGrid","TextJustification","TextLine","TextPacket","TextParagraph","TextPosition","TextRecognize","TextSearch","TextSearchReport","TextSentences","TextString","TextStructure","TextStyle","TextTranslation","Texture","TextureCoordinateFunction","TextureCoordinateScaling","TextWords","Therefore","ThermodynamicData","ThermometerGauge","Thick","Thickness","Thin","Thinning","ThisLink","ThomasPointProcess","ThompsonGroupTh","Thread","Threaded","ThreadingLayer","ThreeJSymbol","Threshold","Through","Throw","ThueMorse","Thumbnail","Thursday","TickDirection","TickLabelOrientation","TickLabelPositioning","TickLabels","TickLengths","TickPositions","Ticks","TicksStyle","TideData","Tilde","TildeEqual","TildeFullEqual","TildeTilde","TimeConstrained","TimeConstraint","TimeDirection","TimeFormat","TimeGoal","TimelinePlot","TimeObject","TimeObjectQ","TimeRemaining","Times","TimesBy","TimeSeries","TimeSeriesAggregate","TimeSeriesForecast","TimeSeriesInsert","TimeSeriesInvertibility","TimeSeriesMap","TimeSeriesMapThread","TimeSeriesModel","TimeSeriesModelFit","TimeSeriesResample","TimeSeriesRescale","TimeSeriesShift","TimeSeriesThread","TimeSeriesWindow","TimeSystem","TimeSystemConvert","TimeUsed","TimeValue","TimeWarpingCorrespondence","TimeWarpingDistance","TimeZone","TimeZoneConvert","TimeZoneOffset","Timing","Tiny","TitleGrouping","TitsGroupT","ToBoxes","ToCharacterCode","ToColor","ToContinuousTimeModel","ToDate","Today","ToDiscreteTimeModel","ToEntity","ToeplitzMatrix","ToExpression","ToFileName","Together","Toggle","ToggleFalse","Toggler","TogglerBar","TogglerBox","TogglerBoxOptions","ToHeldExpression","ToInvertibleTimeSeries","TokenWords","Tolerance","ToLowerCase","Tomorrow","ToNumberField","TooBig","Tooltip","TooltipBox","TooltipBoxOptions","TooltipDelay","TooltipStyle","ToonShading","Top","TopHatTransform","ToPolarCoordinates","TopologicalSort","ToRadicals","ToRawPointer","ToRules","Torus","TorusGraph","ToSphericalCoordinates","ToString","Total","TotalHeight","TotalLayer","TotalVariationFilter","TotalWidth","TouchPosition","TouchscreenAutoZoom","TouchscreenControlPlacement","ToUpperCase","TourVideo","Tr","Trace","TraceAbove","TraceAction","TraceBackward","TraceDepth","TraceDialog","TraceForward","TraceInternal","TraceLevel","TraceOff","TraceOn","TraceOriginal","TracePrint","TraceScan","TrackCellChangeTimes","TrackedSymbols","TrackingFunction","TracyWidomDistribution","TradingChart","TraditionalForm","TraditionalFunctionNotation","TraditionalNotation","TraditionalOrder","TrainImageContentDetector","TrainingProgressCheckpointing","TrainingProgressFunction","TrainingProgressMeasurements","TrainingProgressReporting","TrainingStoppingCriterion","TrainingUpdateSchedule","TrainTextContentDetector","TransferFunctionCancel","TransferFunctionExpand","TransferFunctionFactor","TransferFunctionModel","TransferFunctionPoles","TransferFunctionTransform","TransferFunctionZeros","TransformationClass","TransformationFunction","TransformationFunctions","TransformationMatrix","TransformedDistribution","TransformedField","TransformedProcess","TransformedRegion","TransitionDirection","TransitionDuration","TransitionEffect","TransitiveClosureGraph","TransitiveReductionGraph","Translate","TranslationOptions","TranslationTransform","Transliterate","Transparent","TransparentColor","Transpose","TransposeLayer","TrapEnterKey","TrapSelection","TravelDirections","TravelDirectionsData","TravelDistance","TravelDistanceList","TravelMethod","TravelTime","Tree","TreeCases","TreeChildren","TreeCount","TreeData","TreeDelete","TreeDepth","TreeElementCoordinates","TreeElementLabel","TreeElementLabelFunction","TreeElementLabelStyle","TreeElementShape","TreeElementShapeFunction","TreeElementSize","TreeElementSizeFunction","TreeElementStyle","TreeElementStyleFunction","TreeExpression","TreeExtract","TreeFold","TreeForm","TreeGraph","TreeGraphQ","TreeInsert","TreeLayout","TreeLeafCount","TreeLeafQ","TreeLeaves","TreeLevel","TreeMap","TreeMapAt","TreeOutline","TreePlot","TreePosition","TreeQ","TreeReplacePart","TreeRules","TreeScan","TreeSelect","TreeSize","TreeTraversalOrder","TrendStyle","Triangle","TriangleCenter","TriangleConstruct","TriangleMeasurement","TriangleWave","TriangularDistribution","TriangulateMesh","Trig","TrigExpand","TrigFactor","TrigFactorList","Trigger","TrigReduce","TrigToExp","TrimmedMean","TrimmedVariance","TropicalStormData","True","TrueQ","TruncatedDistribution","TruncatedPolyhedron","TsallisQExponentialDistribution","TsallisQGaussianDistribution","TTest","Tube","TubeBezierCurveBox","TubeBezierCurveBoxOptions","TubeBox","TubeBoxOptions","TubeBSplineCurveBox","TubeBSplineCurveBoxOptions","Tuesday","TukeyLambdaDistribution","TukeyWindow","TunnelData","Tuples","TuranGraph","TuringMachine","TuttePolynomial","TwoWayRule","Typed","TypeDeclaration","TypeEvaluate","TypeHint","TypeOf","TypeSpecifier","UnateQ","Uncompress","UnconstrainedParameters","Undefined","UnderBar","Underflow","Underlined","Underoverscript","UnderoverscriptBox","UnderoverscriptBoxOptions","Underscript","UnderscriptBox","UnderscriptBoxOptions","UnderseaFeatureData","UndirectedEdge","UndirectedGraph","UndirectedGraphQ","UndoOptions","UndoTrackedVariables","Unequal","UnequalTo","Unevaluated","UniformDistribution","UniformGraphDistribution","UniformPolyhedron","UniformSumDistribution","Uninstall","Union","UnionedEntityClass","UnionPlus","Unique","UniqueElements","UnitaryMatrixQ","UnitBox","UnitConvert","UnitDimensions","Unitize","UnitRootTest","UnitSimplify","UnitStep","UnitSystem","UnitTriangle","UnitVector","UnitVectorLayer","UnityDimensions","UniverseModelData","UniversityData","UnixTime","UnlabeledTree","UnmanageObject","Unprotect","UnregisterExternalEvaluator","UnsameQ","UnsavedVariables","Unset","UnsetShared","Until","UntrackedVariables","Up","UpArrow","UpArrowBar","UpArrowDownArrow","Update","UpdateDynamicObjects","UpdateDynamicObjectsSynchronous","UpdateInterval","UpdatePacletSites","UpdateSearchIndex","UpDownArrow","UpEquilibrium","UpperCaseQ","UpperLeftArrow","UpperRightArrow","UpperTriangularize","UpperTriangularMatrix","UpperTriangularMatrixQ","Upsample","UpSet","UpSetDelayed","UpTee","UpTeeArrow","UpTo","UpValues","URL","URLBuild","URLDecode","URLDispatcher","URLDownload","URLDownloadSubmit","URLEncode","URLExecute","URLExpand","URLFetch","URLFetchAsynchronous","URLParse","URLQueryDecode","URLQueryEncode","URLRead","URLResponseTime","URLSave","URLSaveAsynchronous","URLShorten","URLSubmit","UseEmbeddedLibrary","UseGraphicsRange","UserDefinedWavelet","Using","UsingFrontEnd","UtilityFunction","V2Get","ValenceErrorHandling","ValenceFilling","ValidationLength","ValidationSet","ValueBox","ValueBoxOptions","ValueDimensions","ValueForm","ValuePreprocessingFunction","ValueQ","Values","ValuesData","VandermondeMatrix","Variables","Variance","VarianceEquivalenceTest","VarianceEstimatorFunction","VarianceGammaDistribution","VarianceGammaPointProcess","VarianceTest","VariogramFunction","VariogramModel","VectorAngle","VectorAround","VectorAspectRatio","VectorColorFunction","VectorColorFunctionScaling","VectorDensityPlot","VectorDisplacementPlot","VectorDisplacementPlot3D","VectorGlyphData","VectorGreater","VectorGreaterEqual","VectorLess","VectorLessEqual","VectorMarkers","VectorPlot","VectorPlot3D","VectorPoints","VectorQ","VectorRange","Vectors","VectorScale","VectorScaling","VectorSizes","VectorStyle","Vee","Verbatim","Verbose","VerificationTest","VerifyConvergence","VerifyDerivedKey","VerifyDigitalSignature","VerifyFileSignature","VerifyInterpretation","VerifySecurityCertificates","VerifySolutions","VerifyTestAssumptions","VersionedPreferences","VertexAdd","VertexCapacity","VertexChromaticNumber","VertexColors","VertexComponent","VertexConnectivity","VertexContract","VertexCoordinateRules","VertexCoordinates","VertexCorrelationSimilarity","VertexCosineSimilarity","VertexCount","VertexCoverQ","VertexDataCoordinates","VertexDegree","VertexDelete","VertexDiceSimilarity","VertexEccentricity","VertexInComponent","VertexInComponentGraph","VertexInDegree","VertexIndex","VertexJaccardSimilarity","VertexLabeling","VertexLabels","VertexLabelStyle","VertexList","VertexNormals","VertexOutComponent","VertexOutComponentGraph","VertexOutDegree","VertexQ","VertexRenderingFunction","VertexReplace","VertexShape","VertexShapeFunction","VertexSize","VertexStyle","VertexTextureCoordinates","VertexTransitiveGraphQ","VertexWeight","VertexWeightedGraphQ","Vertical","VerticalBar","VerticalForm","VerticalGauge","VerticalSeparator","VerticalSlider","VerticalTilde","Video","VideoCapture","VideoCombine","VideoDelete","VideoEncoding","VideoExtractFrames","VideoFrameList","VideoFrameMap","VideoGenerator","VideoInsert","VideoIntervals","VideoJoin","VideoMap","VideoMapList","VideoMapTimeSeries","VideoPadding","VideoPause","VideoPlay","VideoQ","VideoRecord","VideoReplace","VideoScreenCapture","VideoSplit","VideoStop","VideoStream","VideoStreams","VideoTimeStretch","VideoTrackSelection","VideoTranscode","VideoTransparency","VideoTrim","ViewAngle","ViewCenter","ViewMatrix","ViewPoint","ViewPointSelectorSettings","ViewPort","ViewProjection","ViewRange","ViewVector","ViewVertical","VirtualGroupData","Visible","VisibleCell","VoiceStyleData","VoigtDistribution","VolcanoData","Volume","VonMisesDistribution","VoronoiMesh","WaitAll","WaitAsynchronousTask","WaitNext","WaitUntil","WakebyDistribution","WalleniusHypergeometricDistribution","WaringYuleDistribution","WarpingCorrespondence","WarpingDistance","WatershedComponents","WatsonUSquareTest","WattsStrogatzGraphDistribution","WaveletBestBasis","WaveletFilterCoefficients","WaveletImagePlot","WaveletListPlot","WaveletMapIndexed","WaveletMatrixPlot","WaveletPhi","WaveletPsi","WaveletScale","WaveletScalogram","WaveletThreshold","WavePDEComponent","WeaklyConnectedComponents","WeaklyConnectedGraphComponents","WeaklyConnectedGraphQ","WeakStationarity","WeatherData","WeatherForecastData","WebAudioSearch","WebColumn","WebElementObject","WeberE","WebExecute","WebImage","WebImageSearch","WebItem","WebPageMetaInformation","WebRow","WebSearch","WebSessionObject","WebSessions","WebWindowObject","Wedge","Wednesday","WeibullDistribution","WeierstrassE1","WeierstrassE2","WeierstrassE3","WeierstrassEta1","WeierstrassEta2","WeierstrassEta3","WeierstrassHalfPeriods","WeierstrassHalfPeriodW1","WeierstrassHalfPeriodW2","WeierstrassHalfPeriodW3","WeierstrassInvariantG2","WeierstrassInvariantG3","WeierstrassInvariants","WeierstrassP","WeierstrassPPrime","WeierstrassSigma","WeierstrassZeta","WeightedAdjacencyGraph","WeightedAdjacencyMatrix","WeightedData","WeightedGraphQ","Weights","WelchWindow","WheelGraph","WhenEvent","Which","While","White","WhiteNoiseProcess","WhitePoint","Whitespace","WhitespaceCharacter","WhittakerM","WhittakerW","WholeCellGroupOpener","WienerFilter","WienerProcess","WignerD","WignerSemicircleDistribution","WikidataData","WikidataSearch","WikipediaData","WikipediaSearch","WilksW","WilksWTest","WindDirectionData","WindingCount","WindingPolygon","WindowClickSelect","WindowElements","WindowFloating","WindowFrame","WindowFrameElements","WindowMargins","WindowMovable","WindowOpacity","WindowPersistentStyles","WindowSelected","WindowSize","WindowStatusArea","WindowTitle","WindowToolbars","WindowWidth","WindSpeedData","WindVectorData","WinsorizedMean","WinsorizedVariance","WishartMatrixDistribution","With","WithCleanup","WithLock","WolframAlpha","WolframAlphaDate","WolframAlphaQuantity","WolframAlphaResult","WolframCloudSettings","WolframLanguageData","Word","WordBoundary","WordCharacter","WordCloud","WordCount","WordCounts","WordData","WordDefinition","WordFrequency","WordFrequencyData","WordList","WordOrientation","WordSearch","WordSelectionFunction","WordSeparators","WordSpacings","WordStem","WordTranslation","WorkingPrecision","WrapAround","Write","WriteLine","WriteString","Wronskian","XMLElement","XMLObject","XMLTemplate","Xnor","Xor","XYZColor","Yellow","Yesterday","YuleDissimilarity","ZernikeR","ZeroSymmetric","ZeroTest","ZeroWidthTimes","Zeta","ZetaZero","ZIPCodeData","ZipfDistribution","ZoomCenter","ZoomFactor","ZTest","ZTransform","$Aborted","$ActivationGroupID","$ActivationKey","$ActivationUserRegistered","$AddOnsDirectory","$AllowDataUpdates","$AllowExternalChannelFunctions","$AllowInternet","$AssertFunction","$Assumptions","$AsynchronousTask","$AudioDecoders","$AudioEncoders","$AudioInputDevices","$AudioOutputDevices","$BaseDirectory","$BasePacletsDirectory","$BatchInput","$BatchOutput","$BlockchainBase","$BoxForms","$ByteOrdering","$CacheBaseDirectory","$Canceled","$ChannelBase","$CharacterEncoding","$CharacterEncodings","$CloudAccountName","$CloudBase","$CloudConnected","$CloudConnection","$CloudCreditsAvailable","$CloudEvaluation","$CloudExpressionBase","$CloudObjectNameFormat","$CloudObjectURLType","$CloudRootDirectory","$CloudSymbolBase","$CloudUserID","$CloudUserUUID","$CloudVersion","$CloudVersionNumber","$CloudWolframEngineVersionNumber","$CommandLine","$CompilationTarget","$CompilerEnvironment","$ConditionHold","$ConfiguredKernels","$Context","$ContextAliases","$ContextPath","$ControlActiveSetting","$Cookies","$CookieStore","$CreationDate","$CryptographicEllipticCurveNames","$CurrentLink","$CurrentTask","$CurrentWebSession","$DataStructures","$DateStringFormat","$DefaultAudioInputDevice","$DefaultAudioOutputDevice","$DefaultFont","$DefaultFrontEnd","$DefaultImagingDevice","$DefaultKernels","$DefaultLocalBase","$DefaultLocalKernel","$DefaultMailbox","$DefaultNetworkInterface","$DefaultPath","$DefaultProxyRules","$DefaultRemoteBatchSubmissionEnvironment","$DefaultRemoteKernel","$DefaultSystemCredentialStore","$Display","$DisplayFunction","$DistributedContexts","$DynamicEvaluation","$Echo","$EmbedCodeEnvironments","$EmbeddableServices","$EntityStores","$Epilog","$EvaluationCloudBase","$EvaluationCloudObject","$EvaluationEnvironment","$ExportFormats","$ExternalIdentifierTypes","$ExternalStorageBase","$Failed","$FinancialDataSource","$FontFamilies","$FormatType","$FrontEnd","$FrontEndSession","$GeneratedAssetLocation","$GeoEntityTypes","$GeoLocation","$GeoLocationCity","$GeoLocationCountry","$GeoLocationPrecision","$GeoLocationSource","$HistoryLength","$HomeDirectory","$HTMLExportRules","$HTTPCookies","$HTTPRequest","$IgnoreEOF","$ImageFormattingWidth","$ImageResolution","$ImagingDevice","$ImagingDevices","$ImportFormats","$IncomingMailSettings","$InitialDirectory","$Initialization","$InitializationContexts","$Input","$InputFileName","$InputStreamMethods","$Inspector","$InstallationDate","$InstallationDirectory","$InterfaceEnvironment","$InterpreterTypes","$IterationLimit","$KernelCount","$KernelID","$Language","$LaunchDirectory","$LibraryPath","$LicenseExpirationDate","$LicenseID","$LicenseProcesses","$LicenseServer","$LicenseSubprocesses","$LicenseType","$Line","$Linked","$LinkSupported","$LoadedFiles","$LocalBase","$LocalSymbolBase","$MachineAddresses","$MachineDomain","$MachineDomains","$MachineEpsilon","$MachineID","$MachineName","$MachinePrecision","$MachineType","$MaxDisplayedChildren","$MaxExtraPrecision","$MaxLicenseProcesses","$MaxLicenseSubprocesses","$MaxMachineNumber","$MaxNumber","$MaxPiecewiseCases","$MaxPrecision","$MaxRootDegree","$MessageGroups","$MessageList","$MessagePrePrint","$Messages","$MinMachineNumber","$MinNumber","$MinorReleaseNumber","$MinPrecision","$MobilePhone","$ModuleNumber","$NetworkConnected","$NetworkInterfaces","$NetworkLicense","$NewMessage","$NewSymbol","$NotebookInlineStorageLimit","$Notebooks","$NoValue","$NumberMarks","$Off","$OperatingSystem","$Output","$OutputForms","$OutputSizeLimit","$OutputStreamMethods","$Packages","$ParentLink","$ParentProcessID","$PasswordFile","$PatchLevelID","$Path","$PathnameSeparator","$PerformanceGoal","$Permissions","$PermissionsGroupBase","$PersistenceBase","$PersistencePath","$PipeSupported","$PlotTheme","$Post","$Pre","$PreferencesDirectory","$PreInitialization","$PrePrint","$PreRead","$PrintForms","$PrintLiteral","$Printout3DPreviewer","$ProcessID","$ProcessorCount","$ProcessorType","$ProductInformation","$ProgramName","$ProgressReporting","$PublisherID","$RandomGeneratorState","$RandomState","$RecursionLimit","$RegisteredDeviceClasses","$RegisteredUserName","$ReleaseNumber","$RequesterAddress","$RequesterCloudUserID","$RequesterCloudUserUUID","$RequesterWolframID","$RequesterWolframUUID","$ResourceSystemBase","$ResourceSystemPath","$RootDirectory","$ScheduledTask","$ScriptCommandLine","$ScriptInputString","$SecuredAuthenticationKeyTokens","$ServiceCreditsAvailable","$Services","$SessionID","$SetParentLink","$SharedFunctions","$SharedVariables","$SoundDisplay","$SoundDisplayFunction","$SourceLink","$SSHAuthentication","$SubtitleDecoders","$SubtitleEncoders","$SummaryBoxDataSizeLimit","$SuppressInputFormHeads","$SynchronousEvaluation","$SyntaxHandler","$System","$SystemCharacterEncoding","$SystemCredentialStore","$SystemID","$SystemMemory","$SystemShell","$SystemTimeZone","$SystemWordLength","$TargetSystems","$TemplatePath","$TemporaryDirectory","$TemporaryPrefix","$TestFileName","$TextStyle","$TimedOut","$TimeUnit","$TimeZone","$TimeZoneEntity","$TopDirectory","$TraceOff","$TraceOn","$TracePattern","$TracePostAction","$TracePreAction","$UnitSystem","$Urgent","$UserAddOnsDirectory","$UserAgentLanguages","$UserAgentMachine","$UserAgentName","$UserAgentOperatingSystem","$UserAgentString","$UserAgentVersion","$UserBaseDirectory","$UserBasePacletsDirectory","$UserDocumentsDirectory","$Username","$UserName","$UserURLBase","$Version","$VersionNumber","$VideoDecoders","$VideoEncoders","$VoiceStyles","$WolframDocumentsDirectory","$WolframID","$WolframUUID"];return n1=function(t){let n=t.regex,a=n.either(n.concat(/([2-9]|[1-2]\d|[3][0-5])\^\^/,/(\w*\.\w+|\w+\.\w*|\w+)/),/(\d*\.\d+|\d+\.\d*|\d+)/),i=n.either(/``[+-]?(\d*\.\d+|\d+\.\d*|\d+)/,/`([+-]?(\d*\.\d+|\d+\.\d*|\d+))?/),r={className:"number",relevance:0,begin:n.concat(a,n.optional(i),n.optional(/\*\^[+-]?\d+/))},s=/[a-zA-Z$][a-zA-Z0-9$]*/,o=new Set(e),l={className:"message-name",relevance:0,begin:n.concat("::",s)};return{name:"Mathematica",aliases:["mma","wl"],classNameAliases:{brace:"punctuation",pattern:"type",slot:"type",symbol:"variable","named-character":"variable","builtin-symbol":"built_in","message-name":"string"},contains:[t.COMMENT(/\(\*/,/\*\)/,{contains:["self"]}),{className:"pattern",relevance:0,begin:/([a-zA-Z$][a-zA-Z0-9$]*)?_+([a-zA-Z$][a-zA-Z0-9$]*)?/},{className:"slot",relevance:0,begin:/#[a-zA-Z$][a-zA-Z0-9$]*|#+[0-9]?/},l,{variants:[{className:"builtin-symbol",begin:s,"on:begin":(e,t)=>{o.has(e[0])||t.ignoreMatch()}},{className:"symbol",relevance:0,begin:s}]},{className:"named-character",begin:/\\\[[$a-zA-Z][$a-zA-Z0-9]+\]/},t.QUOTE_STRING_MODE,r,{className:"operator",relevance:0,begin:/[+\-*/,;.:@~=><&|_`'^?!%]+/},{className:"brace",relevance:0,begin:/[[\](){}]/}]}}}()),r4.registerLanguage("matlab",(n9||(n9=1,n3=function(e){let t="('|\\.')+",n={relevance:0,contains:[{begin:t}]};return{name:"Matlab",keywords:{keyword:"arguments break case catch classdef continue else elseif end enumeration events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i|0 inf nan isnan isinf isfinite j|0 why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun legend intersect ismember procrustes hold num2cell "},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}]}]},{className:"built_in",begin:/true|false/,relevance:0,starts:n},{begin:"[a-zA-Z][a-zA-Z_0-9]*"+t,relevance:0},{className:"number",begin:e.C_NUMBER_RE,relevance:0,starts:n},{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{begin:/\]|\}|\)/,relevance:0,starts:n},{className:"string",begin:'"',end:'"',contains:[{begin:'""'}],starts:n},e.COMMENT("^\\s*%\\{\\s*$","^\\s*%\\}\\s*$"),e.COMMENT("%","$")]}}),n3)),r4.registerLanguage("maxima",(n6||(n6=1,n4=function(e){return{name:"Maxima",keywords:{$pattern:"[A-Za-z_%][0-9A-Za-z_%]*",keyword:"if then else elseif for thru do while unless step in and or not",literal:"true false unknown inf minf ind und %e %i %pi %phi %gamma",built_in:" abasep abs absint absolute_real_time acos acosh acot acoth acsc acsch activate addcol add_edge add_edges addmatrices addrow add_vertex add_vertices adjacency_matrix adjoin adjoint af agd airy airy_ai airy_bi airy_dai airy_dbi algsys alg_type alias allroots alphacharp alphanumericp amortization %and annuity_fv annuity_pv antid antidiff AntiDifference append appendfile apply apply1 apply2 applyb1 apropos args arit_amortization arithmetic arithsum array arrayapply arrayinfo arraymake arraysetapply ascii asec asech asin asinh askinteger asksign assoc assoc_legendre_p assoc_legendre_q assume assume_external_byte_order asympa at atan atan2 atanh atensimp atom atvalue augcoefmatrix augmented_lagrangian_method av average_degree backtrace bars barsplot barsplot_description base64 base64_decode bashindices batch batchload bc2 bdvac belln benefit_cost bern bernpoly bernstein_approx bernstein_expand bernstein_poly bessel bessel_i bessel_j bessel_k bessel_simplify bessel_y beta beta_incomplete beta_incomplete_generalized beta_incomplete_regularized bezout bfallroots bffac bf_find_root bf_fmin_cobyla bfhzeta bfloat bfloatp bfpsi bfpsi0 bfzeta biconnected_components bimetric binomial bipartition block blockmatrixp bode_gain bode_phase bothcoef box boxplot boxplot_description break bug_report build_info|10 buildq build_sample burn cabs canform canten cardinality carg cartan cartesian_product catch cauchy_matrix cbffac cdf_bernoulli cdf_beta cdf_binomial cdf_cauchy cdf_chi2 cdf_continuous_uniform cdf_discrete_uniform cdf_exp cdf_f cdf_gamma cdf_general_finite_discrete cdf_geometric cdf_gumbel cdf_hypergeometric cdf_laplace cdf_logistic cdf_lognormal cdf_negative_binomial cdf_noncentral_chi2 cdf_noncentral_student_t cdf_normal cdf_pareto cdf_poisson cdf_rank_sum cdf_rayleigh cdf_signed_rank cdf_student_t cdf_weibull cdisplay ceiling central_moment cequal cequalignore cf cfdisrep cfexpand cgeodesic cgreaterp cgreaterpignore changename changevar chaosgame charat charfun charfun2 charlist charp charpoly chdir chebyshev_t chebyshev_u checkdiv check_overlaps chinese cholesky christof chromatic_index chromatic_number cint circulant_graph clear_edge_weight clear_rules clear_vertex_label clebsch_gordan clebsch_graph clessp clesspignore close closefile cmetric coeff coefmatrix cograd col collapse collectterms columnop columnspace columnswap columnvector combination combine comp2pui compare compfile compile compile_file complement_graph complete_bipartite_graph complete_graph complex_number_p components compose_functions concan concat conjugate conmetderiv connected_components connect_vertices cons constant constantp constituent constvalue cont2part content continuous_freq contortion contour_plot contract contract_edge contragrad contrib_ode convert coord copy copy_file copy_graph copylist copymatrix cor cos cosh cot coth cov cov1 covdiff covect covers crc24sum create_graph create_list csc csch csetup cspline ctaylor ct_coordsys ctransform ctranspose cube_graph cuboctahedron_graph cunlisp cv cycle_digraph cycle_graph cylindrical days360 dblint deactivate declare declare_constvalue declare_dimensions declare_fundamental_dimensions declare_fundamental_units declare_qty declare_translated declare_unit_conversion declare_units declare_weights decsym defcon define define_alt_display define_variable defint defmatch defrule defstruct deftaylor degree_sequence del delete deleten delta demo demoivre denom depends derivdegree derivlist describe desolve determinant dfloat dgauss_a dgauss_b dgeev dgemm dgeqrf dgesv dgesvd diag diagmatrix diag_matrix diagmatrixp diameter diff digitcharp dimacs_export dimacs_import dimension dimensionless dimensions dimensions_as_list direct directory discrete_freq disjoin disjointp disolate disp dispcon dispform dispfun dispJordan display disprule dispterms distrib divide divisors divsum dkummer_m dkummer_u dlange dodecahedron_graph dotproduct dotsimp dpart draw draw2d draw3d drawdf draw_file draw_graph dscalar echelon edge_coloring edge_connectivity edges eigens_by_jacobi eigenvalues eigenvectors eighth einstein eivals eivects elapsed_real_time elapsed_run_time ele2comp ele2polynome ele2pui elem elementp elevation_grid elim elim_allbut eliminate eliminate_using ellipse elliptic_e elliptic_ec elliptic_eu elliptic_f elliptic_kc elliptic_pi ematrix empty_graph emptyp endcons entermatrix entertensor entier equal equalp equiv_classes erf erfc erf_generalized erfi errcatch error errormsg errors euler ev eval_string evenp every evolution evolution2d evundiff example exp expand expandwrt expandwrt_factored expint expintegral_chi expintegral_ci expintegral_e expintegral_e1 expintegral_ei expintegral_e_simplify expintegral_li expintegral_shi expintegral_si explicit explose exponentialize express expt exsec extdiff extract_linear_equations extremal_subset ezgcd %f f90 facsum factcomb factor factorfacsum factorial factorout factorsum facts fast_central_elements fast_linsolve fasttimes featurep fernfale fft fib fibtophi fifth filename_merge file_search file_type fillarray findde find_root find_root_abs find_root_error find_root_rel first fix flatten flength float floatnump floor flower_snark flush flush1deriv flushd flushnd flush_output fmin_cobyla forget fortran fourcos fourexpand fourier fourier_elim fourint fourintcos fourintsin foursimp foursin fourth fposition frame_bracket freeof freshline fresnel_c fresnel_s from_adjacency_matrix frucht_graph full_listify fullmap fullmapl fullratsimp fullratsubst fullsetify funcsolve fundamental_dimensions fundamental_units fundef funmake funp fv g0 g1 gamma gamma_greek gamma_incomplete gamma_incomplete_generalized gamma_incomplete_regularized gauss gauss_a gauss_b gaussprob gcd gcdex gcdivide gcfac gcfactor gd generalized_lambert_w genfact gen_laguerre genmatrix gensym geo_amortization geo_annuity_fv geo_annuity_pv geomap geometric geometric_mean geosum get getcurrentdirectory get_edge_weight getenv get_lu_factors get_output_stream_string get_pixel get_plot_option get_tex_environment get_tex_environment_default get_vertex_label gfactor gfactorsum ggf girth global_variances gn gnuplot_close gnuplot_replot gnuplot_reset gnuplot_restart gnuplot_start go Gosper GosperSum gr2d gr3d gradef gramschmidt graph6_decode graph6_encode graph6_export graph6_import graph_center graph_charpoly graph_eigenvalues graph_flow graph_order graph_periphery graph_product graph_size graph_union great_rhombicosidodecahedron_graph great_rhombicuboctahedron_graph grid_graph grind grobner_basis grotzch_graph hamilton_cycle hamilton_path hankel hankel_1 hankel_2 harmonic harmonic_mean hav heawood_graph hermite hessian hgfred hilbertmap hilbert_matrix hipow histogram histogram_description hodge horner hypergeometric i0 i1 %ibes ic1 ic2 ic_convert ichr1 ichr2 icosahedron_graph icosidodecahedron_graph icurvature ident identfor identity idiff idim idummy ieqn %if ifactors iframes ifs igcdex igeodesic_coords ilt image imagpart imetric implicit implicit_derivative implicit_plot indexed_tensor indices induced_subgraph inferencep inference_result infix info_display init_atensor init_ctensor in_neighbors innerproduct inpart inprod inrt integerp integer_partitions integrate intersect intersection intervalp intopois intosum invariant1 invariant2 inverse_fft inverse_jacobi_cd inverse_jacobi_cn inverse_jacobi_cs inverse_jacobi_dc inverse_jacobi_dn inverse_jacobi_ds inverse_jacobi_nc inverse_jacobi_nd inverse_jacobi_ns inverse_jacobi_sc inverse_jacobi_sd inverse_jacobi_sn invert invert_by_adjoint invert_by_lu inv_mod irr is is_biconnected is_bipartite is_connected is_digraph is_edge_in_graph is_graph is_graph_or_digraph ishow is_isomorphic isolate isomorphism is_planar isqrt isreal_p is_sconnected is_tree is_vertex_in_graph items_inference %j j0 j1 jacobi jacobian jacobi_cd jacobi_cn jacobi_cs jacobi_dc jacobi_dn jacobi_ds jacobi_nc jacobi_nd jacobi_ns jacobi_p jacobi_sc jacobi_sd jacobi_sn JF jn join jordan julia julia_set julia_sin %k kdels kdelta kill killcontext kostka kron_delta kronecker_product kummer_m kummer_u kurtosis kurtosis_bernoulli kurtosis_beta kurtosis_binomial kurtosis_chi2 kurtosis_continuous_uniform kurtosis_discrete_uniform kurtosis_exp kurtosis_f kurtosis_gamma kurtosis_general_finite_discrete kurtosis_geometric kurtosis_gumbel kurtosis_hypergeometric kurtosis_laplace kurtosis_logistic kurtosis_lognormal kurtosis_negative_binomial kurtosis_noncentral_chi2 kurtosis_noncentral_student_t kurtosis_normal kurtosis_pareto kurtosis_poisson kurtosis_rayleigh kurtosis_student_t kurtosis_weibull label labels lagrange laguerre lambda lambert_w laplace laplacian_matrix last lbfgs lc2kdt lcharp lc_l lcm lc_u ldefint ldisp ldisplay legendre_p legendre_q leinstein length let letrules letsimp levi_civita lfreeof lgtreillis lhs li liediff limit Lindstedt linear linearinterpol linear_program linear_regression line_graph linsolve listarray list_correlations listify list_matrix_entries list_nc_monomials listoftens listofvars listp lmax lmin load loadfile local locate_matrix_entry log logcontract log_gamma lopow lorentz_gauge lowercasep lpart lratsubst lreduce lriemann lsquares_estimates lsquares_estimates_approximate lsquares_estimates_exact lsquares_mse lsquares_residual_mse lsquares_residuals lsum ltreillis lu_backsub lucas lu_factor %m macroexpand macroexpand1 make_array makebox makefact makegamma make_graph make_level_picture makelist makeOrders make_poly_continent make_poly_country make_polygon make_random_state make_rgb_picture makeset make_string_input_stream make_string_output_stream make_transform mandelbrot mandelbrot_set map mapatom maplist matchdeclare matchfix mat_cond mat_fullunblocker mat_function mathml_display mat_norm matrix matrixmap matrixp matrix_size mattrace mat_trace mat_unblocker max max_clique max_degree max_flow maximize_lp max_independent_set max_matching maybe md5sum mean mean_bernoulli mean_beta mean_binomial mean_chi2 mean_continuous_uniform mean_deviation mean_discrete_uniform mean_exp mean_f mean_gamma mean_general_finite_discrete mean_geometric mean_gumbel mean_hypergeometric mean_laplace mean_logistic mean_lognormal mean_negative_binomial mean_noncentral_chi2 mean_noncentral_student_t mean_normal mean_pareto mean_poisson mean_rayleigh mean_student_t mean_weibull median median_deviation member mesh metricexpandall mgf1_sha1 min min_degree min_edge_cut minfactorial minimalPoly minimize_lp minimum_spanning_tree minor minpack_lsquares minpack_solve min_vertex_cover min_vertex_cut mkdir mnewton mod mode_declare mode_identity ModeMatrix moebius mon2schur mono monomial_dimensions multibernstein_poly multi_display_for_texinfo multi_elem multinomial multinomial_coeff multi_orbit multiplot_mode multi_pui multsym multthru mycielski_graph nary natural_unit nc_degree ncexpt ncharpoly negative_picture neighbors new newcontext newdet new_graph newline newton new_variable next_prime nicedummies niceindices ninth nofix nonarray noncentral_moment nonmetricity nonnegintegerp nonscalarp nonzeroandfreeof notequal nounify nptetrad npv nroots nterms ntermst nthroot nullity nullspace num numbered_boundaries numberp number_to_octets num_distinct_partitions numerval numfactor num_partitions nusum nzeta nzetai nzetar octets_to_number octets_to_oid odd_girth oddp ode2 ode_check odelin oid_to_octets op opena opena_binary openr openr_binary openw openw_binary operatorp opsubst optimize %or orbit orbits ordergreat ordergreatp orderless orderlessp orthogonal_complement orthopoly_recur orthopoly_weight outermap out_neighbors outofpois pade parabolic_cylinder_d parametric parametric_surface parg parGosper parse_string parse_timedate part part2cont partfrac partition partition_set partpol path_digraph path_graph pathname_directory pathname_name pathname_type pdf_bernoulli pdf_beta pdf_binomial pdf_cauchy pdf_chi2 pdf_continuous_uniform pdf_discrete_uniform pdf_exp pdf_f pdf_gamma pdf_general_finite_discrete pdf_geometric pdf_gumbel pdf_hypergeometric pdf_laplace pdf_logistic pdf_lognormal pdf_negative_binomial pdf_noncentral_chi2 pdf_noncentral_student_t pdf_normal pdf_pareto pdf_poisson pdf_rank_sum pdf_rayleigh pdf_signed_rank pdf_student_t pdf_weibull pearson_skewness permanent permut permutation permutations petersen_graph petrov pickapart picture_equalp picturep piechart piechart_description planar_embedding playback plog plot2d plot3d plotdf ploteq plsquares pochhammer points poisdiff poisexpt poisint poismap poisplus poissimp poissubst poistimes poistrim polar polarform polartorect polar_to_xy poly_add poly_buchberger poly_buchberger_criterion poly_colon_ideal poly_content polydecomp poly_depends_p poly_elimination_ideal poly_exact_divide poly_expand poly_expt poly_gcd polygon poly_grobner poly_grobner_equal poly_grobner_member poly_grobner_subsetp poly_ideal_intersection poly_ideal_polysaturation poly_ideal_polysaturation1 poly_ideal_saturation poly_ideal_saturation1 poly_lcm poly_minimization polymod poly_multiply polynome2ele polynomialp poly_normal_form poly_normalize poly_normalize_list poly_polysaturation_extension poly_primitive_part poly_pseudo_divide poly_reduced_grobner poly_reduction poly_saturation_extension poly_s_polynomial poly_subtract polytocompanion pop postfix potential power_mod powerseries powerset prefix prev_prime primep primes principal_components print printf printfile print_graph printpois printprops prodrac product properties propvars psi psubst ptriangularize pui pui2comp pui2ele pui2polynome pui_direct puireduc push put pv qput qrange qty quad_control quad_qag quad_qagi quad_qagp quad_qags quad_qawc quad_qawf quad_qawo quad_qaws quadrilateral quantile quantile_bernoulli quantile_beta quantile_binomial quantile_cauchy quantile_chi2 quantile_continuous_uniform quantile_discrete_uniform quantile_exp quantile_f quantile_gamma quantile_general_finite_discrete quantile_geometric quantile_gumbel quantile_hypergeometric quantile_laplace quantile_logistic quantile_lognormal quantile_negative_binomial quantile_noncentral_chi2 quantile_noncentral_student_t quantile_normal quantile_pareto quantile_poisson quantile_rayleigh quantile_student_t quantile_weibull quartile_skewness quit qunit quotient racah_v racah_w radcan radius random random_bernoulli random_beta random_binomial random_bipartite_graph random_cauchy random_chi2 random_continuous_uniform random_digraph random_discrete_uniform random_exp random_f random_gamma random_general_finite_discrete random_geometric random_graph random_graph1 random_gumbel random_hypergeometric random_laplace random_logistic random_lognormal random_negative_binomial random_network random_noncentral_chi2 random_noncentral_student_t random_normal random_pareto random_permutation random_poisson random_rayleigh random_regular_graph random_student_t random_tournament random_tree random_weibull range rank rat ratcoef ratdenom ratdiff ratdisrep ratexpand ratinterpol rational rationalize ratnumer ratnump ratp ratsimp ratsubst ratvars ratweight read read_array read_binary_array read_binary_list read_binary_matrix readbyte readchar read_hashed_array readline read_list read_matrix read_nested_list readonly read_xpm real_imagpart_to_conjugate realpart realroots rearray rectangle rectform rectform_log_if_constant recttopolar rediff reduce_consts reduce_order region region_boundaries region_boundaries_plus rem remainder remarray rembox remcomps remcon remcoord remfun remfunction remlet remove remove_constvalue remove_dimensions remove_edge remove_fundamental_dimensions remove_fundamental_units remove_plot_option remove_vertex rempart remrule remsym remvalue rename rename_file reset reset_displays residue resolvante resolvante_alternee1 resolvante_bipartite resolvante_diedrale resolvante_klein resolvante_klein3 resolvante_produit_sym resolvante_unitaire resolvante_vierer rest resultant return reveal reverse revert revert2 rgb2level rhs ricci riemann rinvariant risch rk rmdir rncombine romberg room rootscontract round row rowop rowswap rreduce run_testsuite %s save saving scalarp scaled_bessel_i scaled_bessel_i0 scaled_bessel_i1 scalefactors scanmap scatterplot scatterplot_description scene schur2comp sconcat scopy scsimp scurvature sdowncase sec sech second sequal sequalignore set_alt_display setdifference set_draw_defaults set_edge_weight setelmx setequalp setify setp set_partitions set_plot_option set_prompt set_random_state set_tex_environment set_tex_environment_default setunits setup_autoload set_up_dot_simplifications set_vertex_label seventh sexplode sf sha1sum sha256sum shortest_path shortest_weighted_path show showcomps showratvars sierpinskiale sierpinskimap sign signum similaritytransform simp_inequality simplify_sum simplode simpmetderiv simtran sin sinh sinsert sinvertcase sixth skewness skewness_bernoulli skewness_beta skewness_binomial skewness_chi2 skewness_continuous_uniform skewness_discrete_uniform skewness_exp skewness_f skewness_gamma skewness_general_finite_discrete skewness_geometric skewness_gumbel skewness_hypergeometric skewness_laplace skewness_logistic skewness_lognormal skewness_negative_binomial skewness_noncentral_chi2 skewness_noncentral_student_t skewness_normal skewness_pareto skewness_poisson skewness_rayleigh skewness_student_t skewness_weibull slength smake small_rhombicosidodecahedron_graph small_rhombicuboctahedron_graph smax smin smismatch snowmap snub_cube_graph snub_dodecahedron_graph solve solve_rec solve_rec_rat some somrac sort sparse6_decode sparse6_encode sparse6_export sparse6_import specint spherical spherical_bessel_j spherical_bessel_y spherical_hankel1 spherical_hankel2 spherical_harmonic spherical_to_xyz splice split sposition sprint sqfr sqrt sqrtdenest sremove sremovefirst sreverse ssearch ssort sstatus ssubst ssubstfirst staircase standardize standardize_inverse_trig starplot starplot_description status std std1 std_bernoulli std_beta std_binomial std_chi2 std_continuous_uniform std_discrete_uniform std_exp std_f std_gamma std_general_finite_discrete std_geometric std_gumbel std_hypergeometric std_laplace std_logistic std_lognormal std_negative_binomial std_noncentral_chi2 std_noncentral_student_t std_normal std_pareto std_poisson std_rayleigh std_student_t std_weibull stemplot stirling stirling1 stirling2 strim striml strimr string stringout stringp strong_components struve_h struve_l sublis sublist sublist_indices submatrix subsample subset subsetp subst substinpart subst_parallel substpart substring subvar subvarp sum sumcontract summand_to_rec supcase supcontext symbolp symmdifference symmetricp system take_channel take_inference tan tanh taylor taylorinfo taylorp taylor_simplifier taytorat tcl_output tcontract tellrat tellsimp tellsimpafter tentex tenth test_mean test_means_difference test_normality test_proportion test_proportions_difference test_rank_sum test_sign test_signed_rank test_variance test_variance_ratio tex tex1 tex_display texput %th third throw time timedate timer timer_info tldefint tlimit todd_coxeter toeplitz tokens to_lisp topological_sort to_poly to_poly_solve totaldisrep totalfourier totient tpartpol trace tracematrix trace_options transform_sample translate translate_file transpose treefale tree_reduce treillis treinat triangle triangularize trigexpand trigrat trigreduce trigsimp trunc truncate truncated_cube_graph truncated_dodecahedron_graph truncated_icosahedron_graph truncated_tetrahedron_graph tr_warnings_get tube tutte_graph ueivects uforget ultraspherical underlying_graph undiff union unique uniteigenvectors unitp units unit_step unitvector unorder unsum untellrat untimer untrace uppercasep uricci uriemann uvect vandermonde_matrix var var1 var_bernoulli var_beta var_binomial var_chi2 var_continuous_uniform var_discrete_uniform var_exp var_f var_gamma var_general_finite_discrete var_geometric var_gumbel var_hypergeometric var_laplace var_logistic var_lognormal var_negative_binomial var_noncentral_chi2 var_noncentral_student_t var_normal var_pareto var_poisson var_rayleigh var_student_t var_weibull vector vectorpotential vectorsimp verbify vers vertex_coloring vertex_connectivity vertex_degree vertex_distance vertex_eccentricity vertex_in_degree vertex_out_degree vertices vertices_to_cycle vertices_to_path %w weyl wheel_graph wiener_index wigner_3j wigner_6j wigner_9j with_stdout write_binary_data writebyte write_data writefile wronskian xreduce xthru %y Zeilberger zeroequiv zerofor zeromatrix zeromatrixp zeta zgeev zheev zlange zn_add_table zn_carmichael_lambda zn_characteristic_factors zn_determinant zn_factor_generators zn_invert_by_lu zn_log zn_mult_table absboxchar activecontexts adapt_depth additive adim aform algebraic algepsilon algexact aliases allbut all_dotsimp_denoms allocation allsym alphabetic animation antisymmetric arrays askexp assume_pos assume_pos_pred assumescalar asymbol atomgrad atrig1 axes axis_3d axis_bottom axis_left axis_right axis_top azimuth background background_color backsubst berlefact bernstein_explicit besselexpand beta_args_sum_to_integer beta_expand bftorat bftrunc bindtest border boundaries_array box boxchar breakup %c capping cauchysum cbrange cbtics center cflength cframe_flag cnonmet_flag color color_bar color_bar_tics colorbox columns commutative complex cone context contexts contour contour_levels cosnpiflag ctaypov ctaypt ctayswitch ctayvar ct_coords ctorsion_flag ctrgsimp cube current_let_rule_package cylinder data_file_name debugmode decreasing default_let_rule_package delay dependencies derivabbrev derivsubst detout diagmetric diff dim dimensions dispflag display2d|10 display_format_internal distribute_over doallmxops domain domxexpt domxmxops domxnctimes dontfactor doscmxops doscmxplus dot0nscsimp dot0simp dot1simp dotassoc dotconstrules dotdistrib dotexptsimp dotident dotscrules draw_graph_program draw_realpart edge_color edge_coloring edge_partition edge_type edge_width %edispflag elevation %emode endphi endtheta engineering_format_floats enhanced3d %enumer epsilon_lp erfflag erf_representation errormsg error_size error_syms error_type %e_to_numlog eval even evenfun evflag evfun ev_point expandwrt_denom expintexpand expintrep expon expop exptdispflag exptisolate exptsubst facexpand facsum_combine factlim factorflag factorial_expand factors_only fb feature features file_name file_output_append file_search_demo file_search_lisp file_search_maxima|10 file_search_tests file_search_usage file_type_lisp file_type_maxima|10 fill_color fill_density filled_func fixed_vertices flipflag float2bf font font_size fortindent fortspaces fpprec fpprintprec functions gamma_expand gammalim gdet genindex gensumnum GGFCFMAX GGFINFINITY globalsolve gnuplot_command gnuplot_curve_styles gnuplot_curve_titles gnuplot_default_term_command gnuplot_dumb_term_command gnuplot_file_args gnuplot_file_name gnuplot_out_file gnuplot_pdf_term_command gnuplot_pm3d gnuplot_png_term_command gnuplot_postamble gnuplot_preamble gnuplot_ps_term_command gnuplot_svg_term_command gnuplot_term gnuplot_view_args Gosper_in_Zeilberger gradefs grid grid2d grind halfangles head_angle head_both head_length head_type height hypergeometric_representation %iargs ibase icc1 icc2 icounter idummyx ieqnprint ifb ifc1 ifc2 ifg ifgi ifr iframe_bracket_form ifri igeowedge_flag ikt1 ikt2 imaginary inchar increasing infeval infinity inflag infolists inm inmc1 inmc2 intanalysis integer integervalued integrate_use_rootsof integration_constant integration_constant_counter interpolate_color intfaclim ip_grid ip_grid_in irrational isolate_wrt_times iterations itr julia_parameter %k1 %k2 keepfloat key key_pos kinvariant kt label label_alignment label_orientation labels lassociative lbfgs_ncorrections lbfgs_nfeval_max leftjust legend letrat let_rule_packages lfg lg lhospitallim limsubst linear linear_solver linechar linel|10 linenum line_type linewidth line_width linsolve_params linsolvewarn lispdisp listarith listconstvars listdummyvars lmxchar load_pathname loadprint logabs logarc logcb logconcoeffp logexpand lognegint logsimp logx logx_secondary logy logy_secondary logz lriem m1pbranch macroexpansion macros mainvar manual_demo maperror mapprint matrix_element_add matrix_element_mult matrix_element_transpose maxapplydepth maxapplyheight maxima_tempdir|10 maxima_userdir|10 maxnegex MAX_ORD maxposex maxpsifracdenom maxpsifracnum maxpsinegint maxpsiposint maxtayorder mesh_lines_color method mod_big_prime mode_check_errorp mode_checkp mode_check_warnp mod_test mod_threshold modular_linear_solver modulus multiplicative multiplicities myoptions nary negdistrib negsumdispflag newline newtonepsilon newtonmaxiter nextlayerfactor niceindicespref nm nmc noeval nolabels nonegative_lp noninteger nonscalar noun noundisp nouns np npi nticks ntrig numer numer_pbranch obase odd oddfun opacity opproperties opsubst optimprefix optionset orientation origin orthopoly_returns_intervals outative outchar packagefile palette partswitch pdf_file pfeformat phiresolution %piargs piece pivot_count_sx pivot_max_sx plot_format plot_options plot_realpart png_file pochhammer_max_index points pointsize point_size points_joined point_type poislim poisson poly_coefficient_ring poly_elimination_order polyfactor poly_grobner_algorithm poly_grobner_debug poly_monomial_order poly_primary_elimination_order poly_return_term_list poly_secondary_elimination_order poly_top_reduction_only posfun position powerdisp pred prederror primep_number_of_tests product_use_gamma program programmode promote_float_to_bigfloat prompt proportional_axes props psexpand ps_file radexpand radius radsubstflag rassociative ratalgdenom ratchristof ratdenomdivide rateinstein ratepsilon ratfac rational ratmx ratprint ratriemann ratsimpexpons ratvarswitch ratweights ratweyl ratwtlvl real realonly redraw refcheck resolution restart resultant ric riem rmxchar %rnum_list rombergabs rombergit rombergmin rombergtol rootsconmode rootsepsilon run_viewer same_xy same_xyz savedef savefactors scalar scalarmatrixp scale scale_lp setcheck setcheckbreak setval show_edge_color show_edges show_edge_type show_edge_width show_id show_label showtime show_vertex_color show_vertex_size show_vertex_type show_vertices show_weight simp simplified_output simplify_products simpproduct simpsum sinnpiflag solvedecomposes solveexplicit solvefactors solvenullwarn solveradcan solvetrigwarn space sparse sphere spring_embedding_depth sqrtdispflag stardisp startphi starttheta stats_numer stringdisp structures style sublis_apply_lambda subnumsimp sumexpand sumsplitfact surface surface_hide svg_file symmetric tab taylordepth taylor_logexpand taylor_order_coefficients taylor_truncate_polynomials tensorkill terminal testsuite_files thetaresolution timer_devalue title tlimswitch tr track transcompile transform transform_xy translate_fast_arrays transparent transrun tr_array_as_ref tr_bound_function_applyp tr_file_tty_messagesp tr_float_can_branch_complex tr_function_call_default trigexpandplus trigexpandtimes triginverses trigsign trivial_solutions tr_numer tr_optimize_max_loop tr_semicompile tr_state_vars tr_warn_bad_function_calls tr_warn_fexpr tr_warn_meval tr_warn_mode tr_warn_undeclared tr_warn_undefined_variable tstep ttyoff tube_extremes ufg ug %unitexpand unit_vectors uric uriem use_fast_arrays user_preamble usersetunits values vect_cross verbose vertex_color vertex_coloring vertex_partition vertex_size vertex_type view warnings weyl width windowname windowtitle wired_surface wireframe xaxis xaxis_color xaxis_secondary xaxis_type xaxis_width xlabel xlabel_secondary xlength xrange xrange_secondary xtics xtics_axis xtics_rotate xtics_rotate_secondary xtics_secondary xtics_secondary_axis xu_grid x_voxel xy_file xyplane xy_scale yaxis yaxis_color yaxis_secondary yaxis_type yaxis_width ylabel ylabel_secondary ylength yrange yrange_secondary ytics ytics_axis ytics_rotate ytics_rotate_secondary ytics_secondary ytics_secondary_axis yv_grid y_voxel yx_ratio zaxis zaxis_color zaxis_type zaxis_width zeroa zerob zerobern zeta%pi zlabel zlabel_rotate zlength zmin zn_primroot_limit zn_primroot_pretest",symbol:"_ __ %|0 %%|0"},contains:[{className:"comment",begin:"/\\*",end:"\\*/",contains:["self"]},e.QUOTE_STRING_MODE,{className:"number",relevance:0,variants:[{begin:"\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Ee][-+]?\\d+\\b"},{begin:"\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Bb][-+]?\\d+\\b",relevance:10},{begin:"\\b(\\.\\d+|\\d+\\.\\d+)\\b"},{begin:"\\b(\\d+|0[0-9A-Za-z]+)\\.?\\b"}]}],illegal:/@/}}),n4)),r4.registerLanguage("mel",(n8||(n8=1,n5=function(e){return{name:"MEL",keywords:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",illegal:"</",contains:[e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/[$%@](\^\w\b|#\w+|[^\s\w{]|\{\w+\}|\w+)/},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}),n5)),r4.registerLanguage("mercury",(ae||(ae=1,n7=function(e){let t=e.COMMENT("%","$"),n=e.inherit(e.APOS_STRING_MODE,{relevance:0}),a=e.inherit(e.QUOTE_STRING_MODE,{relevance:0});return a.contains=a.contains.slice(),a.contains.push({className:"subst",begin:"\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]",relevance:0}),{name:"Mercury",aliases:["m","moo"],keywords:{keyword:"module use_module import_module include_module end_module initialise mutable initialize finalize finalise interface implementation pred mode func type inst solver any_pred any_func is semidet det nondet multi erroneous failure cc_nondet cc_multi typeclass instance where pragma promise external trace atomic or_else require_complete_switch require_det require_semidet require_multi require_nondet require_cc_multi require_cc_nondet require_erroneous require_failure",meta:"inline no_inline type_spec source_file fact_table obsolete memo loop_check minimal_model terminates does_not_terminate check_termination promise_equivalent_clauses foreign_proc foreign_decl foreign_code foreign_type foreign_import_module foreign_export_enum foreign_export foreign_enum may_call_mercury will_not_call_mercury thread_safe not_thread_safe maybe_thread_safe promise_pure promise_semipure tabled_for_io local untrailed trailed attach_to_io_state can_pass_as_mercury_type stable will_not_throw_exception may_modify_trail will_not_modify_trail may_duplicate may_not_duplicate affects_liveness does_not_affect_liveness doesnt_affect_liveness no_sharing unknown_sharing sharing",built_in:"some all not if then else true fail false try catch catch_any semidet_true semidet_false semidet_fail impure_true impure semipure"},contains:[{className:"built_in",variants:[{begin:"<=>"},{begin:"<=",relevance:0},{begin:"=>",relevance:0},{begin:"/\\\\"},{begin:"\\\\/"}]},{className:"built_in",variants:[{begin:":-\\|--\x3e"},{begin:"=",relevance:0}]},t,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"0'.\\|0[box][0-9a-fA-F]*"},e.NUMBER_MODE,n,a,{begin:/:-/},{begin:/\.$/}]}}),n7)),r4.registerLanguage("mipsasm",(an||(an=1,at=function(e){return{name:"MIPS Assembly",case_insensitive:!0,aliases:["mips"],keywords:{$pattern:"\\.?"+e.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .ltorg ",built_in:"$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 k0 k1 gp sp fp ra $f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 $f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt "},contains:[{className:"keyword",begin:"\\b(addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\\.hb)?|jr(\\.hb)?|lbu?|lhu?|ll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|move|msubu?|mthi|mtlo|mul|multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|srlv?|subu?|sw[lr]?|xori?|wsbh|abs\\.[sd]|add\\.[sd]|alnv.ps|bc1[ft]l?|c\\.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\\.[sd]|(ceil|floor|round|trunc)\\.[lw]\\.[sd]|cfc1|cvt\\.d\\.[lsw]|cvt\\.l\\.[dsw]|cvt\\.ps\\.s|cvt\\.s\\.[dlw]|cvt\\.s\\.p[lu]|cvt\\.w\\.[dls]|div\\.[ds]|ldx?c1|luxc1|lwx?c1|madd\\.[sd]|mfc1|mov[fntz]?\\.[ds]|msub\\.[sd]|mth?c1|mul\\.[ds]|neg\\.[ds]|nmadd\\.[ds]|nmsub\\.[ds]|p[lu][lu]\\.ps|recip\\.fmt|r?sqrt\\.[ds]|sdx?c1|sub\\.[ds]|suxc1|swx?c1|break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|tlti?u?|tnei?|wait|wrpgpr)",end:"\\s"},e.COMMENT("[;#](?!\\s*$)","$"),e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"0x[0-9a-f]+"},{begin:"\\b-?\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^\\s*[0-9]+:"},{begin:"[0-9]+[bf]"}],relevance:0}],illegal:/\//}}),at)),r4.registerLanguage("mizar",(ai||(ai=1,aa=function(e){return{name:"Mizar",keywords:"environ vocabularies notations constructors definitions registrations theorems schemes requirements begin end definition registration cluster existence pred func defpred deffunc theorem proof let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from be being by means equals implies iff redefine define now not or attr is mode suppose per cases set thesis contradiction scheme reserve struct correctness compatibility coherence symmetry assymetry reflexivity irreflexivity connectedness uniqueness commutativity idempotence involutiveness projectivity",contains:[e.COMMENT("::","$")]}}),aa)),r4.registerLanguage("perl",(as||(as=1,ar=function(e){let t=e.regex,n=/[dualxmsipngr]{0,12}/,a={$pattern:/[\w.]+/,keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},r={begin:/->\{/,end:/\}/},s={variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},o=[e.BACKSLASH_ESCAPE,i,s],l=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(e,a,i="\\1")=>{let r="\\1"===i?i:t.concat(i,a);return t.concat(t.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,n)},d=(e,a,i)=>t.concat(t.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,i,n),_=[s,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),r,{className:"string",contains:o,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:c("s|tr|y",t.either(...l,{capture:!0}))},{begin:c("s|tr|y","\\(","\\)")},{begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t.either(...l,{capture:!0}),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return i.contains=_,r.contains=_,{name:"Perl",aliases:["pl","pm"],keywords:a,contains:_}}),ar)),r4.registerLanguage("mojolicious",al?ao:(al=1,ao=function(e){return{name:"Mojolicious",subLanguage:"xml",contains:[{className:"meta",begin:"^__(END|DATA)__$"},{begin:"^\\s*%{1,2}={0,2}",end:"$",subLanguage:"perl"},{begin:"<%{1,2}={0,2}",end:"={0,1}%>",subLanguage:"perl",excludeBegin:!0,excludeEnd:!0}]}})),r4.registerLanguage("monkey",(ad||(ad=1,ac=function(e){let t={className:"number",relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},e.NUMBER_MODE]},n={variants:[{match:[/(function|method)/,/\s+/,e.UNDERSCORE_IDENT_RE]}],scope:{1:"keyword",3:"title.function"}},a={variants:[{match:[/(class|interface|extends|implements)/,/\s+/,e.UNDERSCORE_IDENT_RE]}],scope:{1:"keyword",3:"title.class"}};return{name:"Monkey",case_insensitive:!0,keywords:{keyword:["public","private","property","continue","exit","extern","new","try","catch","eachin","not","abstract","final","select","case","default","const","local","global","field","end","if","then","else","elseif","endif","while","wend","repeat","until","forever","for","to","step","next","return","module","inline","throw","import","and","or","shl","shr","mod"],built_in:["DebugLog","DebugStop","Error","Print","ACos","ACosr","ASin","ASinr","ATan","ATan2","ATan2r","ATanr","Abs","Abs","Ceil","Clamp","Clamp","Cos","Cosr","Exp","Floor","Log","Max","Max","Min","Min","Pow","Sgn","Sgn","Sin","Sinr","Sqrt","Tan","Tanr","Seed","PI","HALFPI","TWOPI"],literal:["true","false","null"]},illegal:/\/\*/,contains:[e.COMMENT("#rem","#end"),e.COMMENT("'","$",{relevance:0}),n,a,{className:"variable.language",begin:/\b(self|super)\b/},{className:"meta",begin:/\s*#/,end:"$",keywords:{keyword:"if else elseif endif end then"}},{match:[/^\s*/,/strict\b/],scope:{2:"meta"}},{beginKeywords:"alias",end:"=",contains:[e.UNDERSCORE_TITLE_MODE]},e.QUOTE_STRING_MODE,t]}}),ac)),r4.registerLanguage("moonscript",(au||(au=1,a_=function(e){let t={keyword:"if then not for in while do return else elseif break continue switch and or unless when class extends super local import export from using",literal:"true false nil",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},n="[A-Za-z$_][0-9A-Za-z$_]*",a={className:"subst",begin:/#\{/,end:/\}/,keywords:t},i=[e.inherit(e.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'/,end:/'/,contains:[e.BACKSLASH_ESCAPE]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,a]}]},{className:"built_in",begin:"@__"+e.IDENT_RE},{begin:"@"+e.IDENT_RE},{begin:e.IDENT_RE+"\\\\"+e.IDENT_RE}];a.contains=i;let r=e.inherit(e.TITLE_MODE,{begin:n}),s="(\\(.*\\)\\s*)?\\B[-=]>",o={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(i)}]};return{name:"MoonScript",aliases:["moon"],keywords:t,illegal:/\/\*/,contains:i.concat([e.COMMENT("--","$"),{className:"function",begin:"^\\s*"+n+"\\s*=\\s*"+s,end:"[-=]>",returnBegin:!0,contains:[r,o]},{begin:/[\(,:=]\s*/,relevance:0,contains:[{className:"function",begin:s,end:"[-=]>",returnBegin:!0,contains:[o]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[r]},r]},{className:"name",begin:n+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}),a_)),r4.registerLanguage("n1ql",(ap||(ap=1,am=function(e){return{name:"N1QL",case_insensitive:!0,contains:[{beginKeywords:"build create index delete drop explain infer|10 insert merge prepare select update upsert|10",end:/;/,keywords:{keyword:["all","alter","analyze","and","any","array","as","asc","begin","between","binary","boolean","break","bucket","build","by","call","case","cast","cluster","collate","collection","commit","connect","continue","correlate","cover","create","database","dataset","datastore","declare","decrement","delete","derived","desc","describe","distinct","do","drop","each","element","else","end","every","except","exclude","execute","exists","explain","fetch","first","flatten","for","force","from","function","grant","group","gsi","having","if","ignore","ilike","in","include","increment","index","infer","inline","inner","insert","intersect","into","is","join","key","keys","keyspace","known","last","left","let","letting","like","limit","lsm","map","mapping","matched","materialized","merge","minus","namespace","nest","not","number","object","offset","on","option","or","order","outer","over","parse","partition","password","path","pool","prepare","primary","private","privilege","procedure","public","raw","realm","reduce","rename","return","returning","revoke","right","role","rollback","satisfies","schema","select","self","semi","set","show","some","start","statistics","string","system","then","to","transaction","trigger","truncate","under","union","unique","unknown","unnest","unset","update","upsert","use","user","using","validate","value","valued","values","via","view","when","where","while","with","within","work","xor"],literal:["true","false","null","missing|5"],built_in:["array_agg","array_append","array_concat","array_contains","array_count","array_distinct","array_ifnull","array_length","array_max","array_min","array_position","array_prepend","array_put","array_range","array_remove","array_repeat","array_replace","array_reverse","array_sort","array_sum","avg","count","max","min","sum","greatest","least","ifmissing","ifmissingornull","ifnull","missingif","nullif","ifinf","ifnan","ifnanorinf","naninf","neginfif","posinfif","clock_millis","clock_str","date_add_millis","date_add_str","date_diff_millis","date_diff_str","date_part_millis","date_part_str","date_trunc_millis","date_trunc_str","duration_to_str","millis","str_to_millis","millis_to_str","millis_to_utc","millis_to_zone_name","now_millis","now_str","str_to_duration","str_to_utc","str_to_zone_name","decode_json","encode_json","encoded_size","poly_length","base64","base64_encode","base64_decode","meta","uuid","abs","acos","asin","atan","atan2","ceil","cos","degrees","e","exp","ln","log","floor","pi","power","radians","random","round","sign","sin","sqrt","tan","trunc","object_length","object_names","object_pairs","object_inner_pairs","object_values","object_inner_values","object_add","object_put","object_remove","object_unwrap","regexp_contains","regexp_like","regexp_position","regexp_replace","contains","initcap","length","lower","ltrim","position","repeat","replace","rtrim","split","substr","title","trim","upper","isarray","isatom","isboolean","isnumber","isobject","isstring","type","toarray","toatom","toboolean","tonumber","toobject","tostring"]},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{className:"symbol",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE]}}),am)),r4.registerLanguage("nestedtext",(aE||(aE=1,ag=function(e){return{name:"Nested Text",aliases:["nt"],contains:[e.inherit(e.HASH_COMMENT_MODE,{begin:/^\s*(?=#)/,excludeBegin:!0}),{variants:[{match:[/^\s*/,/-/,/[ ]/,/.*$/]},{match:[/^\s*/,/-$/]}],className:{2:"bullet",4:"string"}},{match:[/^\s*/,/>/,/[ ]/,/.*$/],className:{2:"punctuation",4:"string"}},{match:[/^\s*(?=\S)/,/[^:]+/,/:\s*/,/$/],className:{2:"attribute",3:"punctuation"}},{match:[/^\s*(?=\S)/,/[^:]*[^: ]/,/[ ]*:/,/[ ]/,/.*$/],className:{2:"attribute",3:"punctuation",5:"string"}}]}}),ag)),r4.registerLanguage("nginx",(ab||(ab=1,aS=function(e){let t=e.regex,n={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{\w+\}/},{begin:t.concat(/[$@]/,e.UNDERSCORE_IDENT_RE)}]},a={endsWithParent:!0,keywords:{$pattern:/[a-z_]{2,}|\/dev\/poll/,literal:["on","off","yes","no","true","false","none","blocked","debug","info","notice","warn","error","crit","select","break","last","permanent","redirect","kqueue","rtsig","epoll","poll","/dev/poll"]},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]?\\b",relevance:0},n]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{beginKeywords:"upstream location",end:/;|\{/,contains:a.contains,keywords:{section:"upstream location"}},{className:"section",begin:t.concat(e.UNDERSCORE_IDENT_RE+t.lookahead(/\s+\{/)),relevance:0},{begin:t.lookahead(e.UNDERSCORE_IDENT_RE+"\\s"),end:";|\\{",contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],illegal:"[^\\s\\}\\{]"}}),aS)),r4.registerLanguage("nim",(af||(af=1,ah=function(e){return{name:"Nim",keywords:{keyword:["addr","and","as","asm","bind","block","break","case","cast","const","continue","converter","discard","distinct","div","do","elif","else","end","enum","except","export","finally","for","from","func","generic","guarded","if","import","in","include","interface","is","isnot","iterator","let","macro","method","mixin","mod","nil","not","notin","object","of","or","out","proc","ptr","raise","ref","return","shared","shl","shr","static","template","try","tuple","type","using","var","when","while","with","without","xor","yield"],literal:["true","false"],type:["int","int8","int16","int32","int64","uint","uint8","uint16","uint32","uint64","float","float32","float64","bool","char","string","cstring","pointer","expr","stmt","void","auto","any","range","array","openarray","varargs","seq","set","clong","culong","cchar","cschar","cshort","cint","csize","clonglong","cfloat","cdouble","clongdouble","cuchar","cushort","cuint","culonglong","cstringarray","semistatic"],built_in:["stdin","stdout","stderr","result"]},contains:[{className:"meta",begin:/\{\./,end:/\.\}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/,end:/"""/},e.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/,relevance:0},{className:"number",relevance:0,variants:[{begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},{begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}]},e.HASH_COMMENT_MODE]}}),ah)),r4.registerLanguage("nix",(av||(av=1,aT=function(e){let t={keyword:["rec","with","let","in","inherit","assert","if","else","then"],literal:["true","false","or","and","null"],built_in:["import","abort","baseNameOf","dirOf","isNull","builtins","map","removeAttrs","throw","toString","derivation"]},n={className:"subst",begin:/\$\{/,end:/\}/,keywords:t},a=[e.NUMBER_MODE,e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",contains:[{className:"char.escape",begin:/''\$/},n],variants:[{begin:"''",end:"''"},{begin:'"',end:'"'}]},{begin:/[a-zA-Z0-9-_]+(\s*=)/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/\S+/,relevance:.2}]}];return n.contains=a,{name:"Nix",aliases:["nixos"],keywords:t,contains:a}}),aT)),r4.registerLanguage("node-repl",aR?aC:(aR=1,aC=function(e){return{name:"Node REPL",contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"javascript"}},variants:[{begin:/^>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}})),r4.registerLanguage("nsis",(ay||(ay=1,aN=function(e){let t=e.regex,n={className:"variable.constant",begin:t.concat(/\$/,t.either("ADMINTOOLS","APPDATA","CDBURN_AREA","CMDLINE","COMMONFILES32","COMMONFILES64","COMMONFILES","COOKIES","DESKTOP","DOCUMENTS","EXEDIR","EXEFILE","EXEPATH","FAVORITES","FONTS","HISTORY","HWNDPARENT","INSTDIR","INTERNET_CACHE","LANGUAGE","LOCALAPPDATA","MUSIC","NETHOOD","OUTDIR","PICTURES","PLUGINSDIR","PRINTHOOD","PROFILE","PROGRAMFILES32","PROGRAMFILES64","PROGRAMFILES","QUICKLAUNCH","RECENT","RESOURCES_LOCALIZED","RESOURCES","SENDTO","SMPROGRAMS","SMSTARTUP","STARTMENU","SYSDIR","TEMP","TEMPLATES","VIDEOS","WINDIR"))},a={className:"variable",begin:/\$+\{[\!\w.:-]+\}/},i={className:"variable",begin:/\$+\w[\w\.]*/,illegal:/\(\)\{\}/},r={className:"variable",begin:/\$+\([\w^.:!-]+\)/},s={className:"params",begin:t.either("ARCHIVE","FILE_ATTRIBUTE_ARCHIVE","FILE_ATTRIBUTE_NORMAL","FILE_ATTRIBUTE_OFFLINE","FILE_ATTRIBUTE_READONLY","FILE_ATTRIBUTE_SYSTEM","FILE_ATTRIBUTE_TEMPORARY","HKCR","HKCU","HKDD","HKEY_CLASSES_ROOT","HKEY_CURRENT_CONFIG","HKEY_CURRENT_USER","HKEY_DYN_DATA","HKEY_LOCAL_MACHINE","HKEY_PERFORMANCE_DATA","HKEY_USERS","HKLM","HKPD","HKU","IDABORT","IDCANCEL","IDIGNORE","IDNO","IDOK","IDRETRY","IDYES","MB_ABORTRETRYIGNORE","MB_DEFBUTTON1","MB_DEFBUTTON2","MB_DEFBUTTON3","MB_DEFBUTTON4","MB_ICONEXCLAMATION","MB_ICONINFORMATION","MB_ICONQUESTION","MB_ICONSTOP","MB_OK","MB_OKCANCEL","MB_RETRYCANCEL","MB_RIGHT","MB_RTLREADING","MB_SETFOREGROUND","MB_TOPMOST","MB_USERICON","MB_YESNO","NORMAL","OFFLINE","READONLY","SHCTX","SHELL_CONTEXT","SYSTEM|TEMPORARY")},o={className:"keyword",begin:t.concat(/!/,t.either("addincludedir","addplugindir","appendfile","assert","cd","define","delfile","echo","else","endif","error","execute","finalize","getdllversion","gettlbversion","if","ifdef","ifmacrodef","ifmacrondef","ifndef","include","insertmacro","macro","macroend","makensis","packhdr","searchparse","searchreplace","system","tempfile","undef","uninstfinalize","verbose","warning"))},l={match:[/Function/,/\s+/,t.concat(/(\.)?/,e.IDENT_RE)],scope:{1:"keyword",3:"title.function"}};return{name:"NSIS",case_insensitive:!0,keywords:{keyword:["Abort","AddBrandingImage","AddSize","AllowRootDirInstall","AllowSkipFiles","AutoCloseWindow","BGFont","BGGradient","BrandingText","BringToFront","Call","CallInstDLL","Caption","ChangeUI","CheckBitmap","ClearErrors","CompletedText","ComponentText","CopyFiles","CRCCheck","CreateDirectory","CreateFont","CreateShortCut","Delete","DeleteINISec","DeleteINIStr","DeleteRegKey","DeleteRegValue","DetailPrint","DetailsButtonText","DirText","DirVar","DirVerify","EnableWindow","EnumRegKey","EnumRegValue","Exch","Exec","ExecShell","ExecShellWait","ExecWait","ExpandEnvStrings","File","FileBufSize","FileClose","FileErrorText","FileOpen","FileRead","FileReadByte","FileReadUTF16LE","FileReadWord","FileWriteUTF16LE","FileSeek","FileWrite","FileWriteByte","FileWriteWord","FindClose","FindFirst","FindNext","FindWindow","FlushINI","GetCurInstType","GetCurrentAddress","GetDlgItem","GetDLLVersion","GetDLLVersionLocal","GetErrorLevel","GetFileTime","GetFileTimeLocal","GetFullPathName","GetFunctionAddress","GetInstDirError","GetKnownFolderPath","GetLabelAddress","GetTempFileName","GetWinVer","Goto","HideWindow","Icon","IfAbort","IfErrors","IfFileExists","IfRebootFlag","IfRtlLanguage","IfShellVarContextAll","IfSilent","InitPluginsDir","InstallButtonText","InstallColors","InstallDir","InstallDirRegKey","InstProgressFlags","InstType","InstTypeGetText","InstTypeSetText","Int64Cmp","Int64CmpU","Int64Fmt","IntCmp","IntCmpU","IntFmt","IntOp","IntPtrCmp","IntPtrCmpU","IntPtrOp","IsWindow","LangString","LicenseBkColor","LicenseData","LicenseForceSelection","LicenseLangString","LicenseText","LoadAndSetImage","LoadLanguageFile","LockWindow","LogSet","LogText","ManifestDPIAware","ManifestLongPathAware","ManifestMaxVersionTested","ManifestSupportedOS","MessageBox","MiscButtonText","Name|0","Nop","OutFile","Page","PageCallbacks","PEAddResource","PEDllCharacteristics","PERemoveResource","PESubsysVer","Pop","Push","Quit","ReadEnvStr","ReadINIStr","ReadRegDWORD","ReadRegStr","Reboot","RegDLL","Rename","RequestExecutionLevel","ReserveFile","Return","RMDir","SearchPath","SectionGetFlags","SectionGetInstTypes","SectionGetSize","SectionGetText","SectionIn","SectionSetFlags","SectionSetInstTypes","SectionSetSize","SectionSetText","SendMessage","SetAutoClose","SetBrandingImage","SetCompress","SetCompressor","SetCompressorDictSize","SetCtlColors","SetCurInstType","SetDatablockOptimize","SetDateSave","SetDetailsPrint","SetDetailsView","SetErrorLevel","SetErrors","SetFileAttributes","SetFont","SetOutPath","SetOverwrite","SetRebootFlag","SetRegView","SetShellVarContext","SetSilent","ShowInstDetails","ShowUninstDetails","ShowWindow","SilentInstall","SilentUnInstall","Sleep","SpaceTexts","StrCmp","StrCmpS","StrCpy","StrLen","SubCaption","Unicode","UninstallButtonText","UninstallCaption","UninstallIcon","UninstallSubCaption","UninstallText","UninstPage","UnRegDLL","Var","VIAddVersionKey","VIFileVersion","VIProductVersion","WindowIcon","WriteINIStr","WriteRegBin","WriteRegDWORD","WriteRegExpandStr","WriteRegMultiStr","WriteRegNone","WriteRegStr","WriteUninstaller","XPStyle"],literal:["admin","all","auto","both","bottom","bzip2","colored","components","current","custom","directory","false","force","hide","highest","ifdiff","ifnewer","instfiles","lastused","leave","left","license","listonly","lzma","nevershow","none","normal","notset","off","on","open","print","right","show","silent","silentlog","smooth","textonly","top","true","try","un.components","un.custom","un.directory","un.instfiles","un.license","uninstConfirm","user","Win10","Win7","Win8","WinVista","zlib"]},contains:[e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{relevance:0}),{match:[/Var/,/\s+/,/(?:\/GLOBAL\s+)?/,/[A-Za-z][\w.]*/],scope:{1:"keyword",3:"params",4:"variable"}},l,{beginKeywords:"Function PageEx Section SectionGroup FunctionEnd SectionEnd"},{className:"string",variants:[{begin:'"',end:'"'},{begin:"'",end:"'"},{begin:"`",end:"`"}],illegal:/\n/,contains:[{className:"char.escape",begin:/\$(\\[nrt]|\$)/},n,a,i,r]},o,a,i,r,s,{className:"title.function",begin:/\w+::\w+/},e.NUMBER_MODE]}}),aN)),r4.registerLanguage("objectivec",(aA||(aA=1,aO=function(e){let t=/[a-zA-Z@][a-zA-Z0-9_]*/,n={$pattern:t,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:{"variable.language":["this","super"],$pattern:t,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},illegal:"</",contains:[{className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+n.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:n,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}),aO)),r4.registerLanguage("ocaml",(aD||(aD=1,aI=function(e){return{name:"OCaml",aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?",keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},illegal:/\/\/|>>/,contains:[{className:"literal",begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*",relevance:0},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/->/}]}}),aI)),r4.registerLanguage("openscad",(ax||(ax=1,aw=function(e){let t={className:"keyword",begin:"\\$(f[asn]|t|vp[rtd]|children)"},n={className:"number",begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0},a=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),i={className:"function",beginKeywords:"module function",end:/=|\{/,contains:[{className:"params",begin:"\\(",end:"\\)",contains:["self",n,a,t,{className:"literal",begin:"false|true|PI|undef"}]},e.UNDERSCORE_TITLE_MODE]};return{name:"OpenSCAD",aliases:["scad"],keywords:{keyword:"function module include use for intersection_for if else \\%",literal:"false true PI undef",built_in:"circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"meta",keywords:{keyword:"include use"},begin:"include|use <",end:">"},a,t,{begin:"[*!#%]",relevance:0},i]}}),aw)),r4.registerLanguage("oxygene",(aM||(aM=1,aL=function(e){let t={$pattern:/\.?\w+/,keyword:"abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained"},n=e.COMMENT(/\{/,/\}/,{relevance:0}),a=e.COMMENT("\\(\\*","\\*\\)",{relevance:10}),i={className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},r={className:"string",begin:"(#\\d+)+"},s={beginKeywords:"function constructor destructor procedure method",end:"[:;]",keywords:"function constructor|10 destructor|10 procedure|10 method|10",contains:[e.inherit(e.TITLE_MODE,{scope:"title.function"}),{className:"params",begin:"\\(",end:"\\)",keywords:t,contains:[i,r]},n,a]};return{name:"Oxygene",case_insensitive:!0,keywords:t,illegal:'("|\\$[G-Zg-z]|\\/\\*|</|=>|->)',contains:[n,a,e.C_LINE_COMMENT_MODE,i,r,e.NUMBER_MODE,s,{scope:"punctuation",match:/;/,relevance:0}]}}),aL)),r4.registerLanguage("parser3",(ak||(ak=1,aP=function(e){let t=e.COMMENT(/\{/,/\}/,{contains:["self"]});return{name:"Parser3",subLanguage:"xml",relevance:0,contains:[e.COMMENT("^#","$"),e.COMMENT(/\^rem\{/,/\}/,{relevance:10,contains:[t]}),{className:"meta",begin:"^@(?:BASE|USE|CLASS|OPTIONS)$",relevance:10},{className:"title",begin:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{className:"variable",begin:/\$\{?[\w\-.:]+\}?/},{className:"keyword",begin:/\^[\w\-.:]+/},{className:"number",begin:"\\^#[0-9a-fA-F]+"},e.C_NUMBER_MODE]}}),aP)),r4.registerLanguage("pf",(aU||(aU=1,aF=function(e){return{name:"Packet Filter config",aliases:["pf.conf"],keywords:{$pattern:/[a-z0-9_<>-]+/,built_in:"block match pass load anchor|5 antispoof|10 set table",keyword:"in out log quick on rdomain inet inet6 proto from port os to route allow-opts divert-packet divert-reply divert-to flags group icmp-type icmp6-type label once probability recieved-on rtable prio queue tos tag tagged user keep fragment for os drop af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin source-hash static-port dup-to reply-to route-to parent bandwidth default min max qlimit block-policy debug fingerprints hostid limit loginterface optimization reassemble ruleset-optimization basic none profile skip state-defaults state-policy timeout const counters persist no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy source-track global rule max-src-nodes max-src-states max-src-conn max-src-conn-rate overload flush scrub|5 max-mss min-ttl no-df|10 random-id",literal:"all any no-route self urpf-failed egress|5 unknown"},contains:[e.HASH_COMMENT_MODE,e.NUMBER_MODE,e.QUOTE_STRING_MODE,{className:"variable",begin:/\$[\w\d#@][\w\d_]*/,relevance:0},{className:"variable",begin:/<(?!\/)/,end:/>/}]}}),aF)),r4.registerLanguage("pgsql",(aG||(aG=1,aB=function(e){let t=e.COMMENT("--","$"),n="\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\$",a="BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR NAME OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ",i=a.trim().split(" ").map(function(e){return e.split("|")[0]}).join("|"),r="ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP PERCENTILE_CONT PERCENTILE_DISC ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE NUM_NONNULLS NUM_NULLS ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT TRUNC WIDTH_BUCKET RANDOM SETSEED ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR TO_ASCII TO_HEX TRANSLATE OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 TIMEOFDAY TRANSACTION_TIMESTAMP|10 ENUM_FIRST ENUM_LAST ENUM_RANGE AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY INET_MERGE MACADDR8_SET7BIT ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA CURSOR_TO_XML CURSOR_TO_XMLSCHEMA SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA XMLATTRIBUTES TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY CURRVAL LASTVAL NEXTVAL SETVAL COALESCE NULLIF GREATEST LEAST ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY STRING_TO_ARRAY UNNEST ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE GENERATE_SERIES GENERATE_SUBSCRIPTS CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE GIN_CLEAN_PENDING_LIST SUPPRESS_REDUNDANT_UPDATES_TRIGGER LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE GROUPING CAST ".trim().split(" ").map(function(e){return e.split("|")[0]}).join("|");return{name:"PostgreSQL",aliases:["postgres","postgresql"],supersetOf:"sql",case_insensitive:!0,keywords:{keyword:"ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION INDEX PROCEDURE ASSERTION ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS DEFERRABLE RANGE DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED OF NOTHING NONE EXCLUDE ATTRIBUTE USAGE ROUTINES TRUE FALSE NAN INFINITY ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT OPEN SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ",built_in:"CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 SQLSTATE SQLERRM|10 SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED INDEX_CORRUPTED "},illegal:/:==|\W\s*\(\*|(^|\s)\$[a-z]|\{\{|[a-z]:\s*$|\.\.\.|TO:|DO:/,contains:[{className:"keyword",variants:[{begin:/\bTEXT\s*SEARCH\b/},{begin:/\b(PRIMARY|FOREIGN|FOR(\s+NO)?)\s+KEY\b/},{begin:/\bPARALLEL\s+(UNSAFE|RESTRICTED|SAFE)\b/},{begin:/\bSTORAGE\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\b/},{begin:/\bMATCH\s+(FULL|PARTIAL|SIMPLE)\b/},{begin:/\bNULLS\s+(FIRST|LAST)\b/},{begin:/\bEVENT\s+TRIGGER\b/},{begin:/\b(MAPPING|OR)\s+REPLACE\b/},{begin:/\b(FROM|TO)\s+(PROGRAM|STDIN|STDOUT)\b/},{begin:/\b(SHARE|EXCLUSIVE)\s+MODE\b/},{begin:/\b(LEFT|RIGHT)\s+(OUTER\s+)?JOIN\b/},{begin:/\b(FETCH|MOVE)\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\b/},{begin:/\bPRESERVE\s+ROWS\b/},{begin:/\bDISCARD\s+PLANS\b/},{begin:/\bREFERENCING\s+(OLD|NEW)\b/},{begin:/\bSKIP\s+LOCKED\b/},{begin:/\bGROUPING\s+SETS\b/},{begin:/\b(BINARY|INSENSITIVE|SCROLL|NO\s+SCROLL)\s+(CURSOR|FOR)\b/},{begin:/\b(WITH|WITHOUT)\s+HOLD\b/},{begin:/\bWITH\s+(CASCADED|LOCAL)\s+CHECK\s+OPTION\b/},{begin:/\bEXCLUDE\s+(TIES|NO\s+OTHERS)\b/},{begin:/\bFORMAT\s+(TEXT|XML|JSON|YAML)\b/},{begin:/\bSET\s+((SESSION|LOCAL)\s+)?NAMES\b/},{begin:/\bIS\s+(NOT\s+)?UNKNOWN\b/},{begin:/\bSECURITY\s+LABEL\b/},{begin:/\bSTANDALONE\s+(YES|NO|NO\s+VALUE)\b/},{begin:/\bWITH\s+(NO\s+)?DATA\b/},{begin:/\b(FOREIGN|SET)\s+DATA\b/},{begin:/\bSET\s+(CATALOG|CONSTRAINTS)\b/},{begin:/\b(WITH|FOR)\s+ORDINALITY\b/},{begin:/\bIS\s+(NOT\s+)?DOCUMENT\b/},{begin:/\bXML\s+OPTION\s+(DOCUMENT|CONTENT)\b/},{begin:/\b(STRIP|PRESERVE)\s+WHITESPACE\b/},{begin:/\bNO\s+(ACTION|MAXVALUE|MINVALUE)\b/},{begin:/\bPARTITION\s+BY\s+(RANGE|LIST|HASH)\b/},{begin:/\bAT\s+TIME\s+ZONE\b/},{begin:/\bGRANTED\s+BY\b/},{begin:/\bRETURN\s+(QUERY|NEXT)\b/},{begin:/\b(ATTACH|DETACH)\s+PARTITION\b/},{begin:/\bFORCE\s+ROW\s+LEVEL\s+SECURITY\b/},{begin:/\b(INCLUDING|EXCLUDING)\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\b/},{begin:/\bAS\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\b/}]},{begin:/\b(FORMAT|FAMILY|VERSION)\s*\(/},{begin:/\bINCLUDE\s*\(/,keywords:"INCLUDE"},{begin:/\bRANGE(?!\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/},{begin:/\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\s*=/},{begin:/\b(PG_\w+?|HAS_[A-Z_]+_PRIVILEGE)\b/,relevance:10},{begin:/\bEXTRACT\s*\(/,end:/\bFROM\b/,returnEnd:!0,keywords:{type:"CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR TIMEZONE_MINUTE WEEK YEAR"}},{begin:/\b(XMLELEMENT|XMLPI)\s*\(\s*NAME/,keywords:{keyword:"NAME"}},{begin:/\b(XMLPARSE|XMLSERIALIZE)\s*\(\s*(DOCUMENT|CONTENT)/,keywords:{keyword:"DOCUMENT CONTENT"}},{beginKeywords:"CACHE INCREMENT MAXVALUE MINVALUE",end:e.C_NUMBER_RE,returnEnd:!0,keywords:"BY CACHE INCREMENT MAXVALUE MINVALUE"},{className:"type",begin:/\b(WITH|WITHOUT)\s+TIME\s+ZONE\b/},{className:"type",begin:/\bINTERVAL\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\s+TO\s+(MONTH|HOUR|MINUTE|SECOND))?\b/},{begin:/\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/,keywords:{keyword:"RETURNS",type:"LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER"}},{begin:"\\b("+r+")\\s*\\("},{begin:"\\.("+i+")\\b"},{begin:"\\b("+i+")\\s+PATH\\b",keywords:{keyword:"PATH",type:a.replace("PATH ","")}},{className:"type",begin:"\\b("+i+")\\b"},{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:"(e|E|u&|U&)'",end:"'",contains:[{begin:"\\\\."}],relevance:10},e.END_SAME_AS_BEGIN({begin:n,end:n,contains:[{subLanguage:["pgsql","perl","python","tcl","r","lua","java","php","ruby","bash","scheme","xml","json"],endsWithParent:!0}]}),{begin:'"',end:'"',contains:[{begin:'""'}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"meta",variants:[{begin:"%(ROW)?TYPE",relevance:10},{begin:"\\$\\d+"},{begin:"^#\\w",end:"$"}]},{className:"symbol",begin:"<<\\s*[a-zA-Z_][a-zA-Z_0-9$]*\\s*>>",relevance:10}]}}),aB)),r4.registerLanguage("php",(aH||(aH=1,aY=function(e){let t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,a=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),r={scope:"variable",match:"\\$+"+a},s={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},o=e.inherit(e.APOS_STRING_MODE,{illegal:null}),l="[ \n]",c={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(s)}),o,{begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(s),"on:begin":(e,t)=>{t.data._beginMatch=e[1]||e[2]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}},e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},d={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},_=["false","null","true"],u=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],m=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],p={keyword:u,literal:(e=>{let t=[];return e.forEach(e=>{t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase())}),t})(_),built_in:m},g=e=>e.map(e=>e.replace(/\|\d+$/,"")),E={variants:[{match:[/new/,t.concat(l,"+"),t.concat("(?!",g(m).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},S=t.concat(a,"\\b(?!\\()"),b={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),S],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),S],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},h={scope:"attr",match:t.concat(a,t.lookahead(":"),t.lookahead(/(?!::)/))},f={relevance:0,begin:/\(/,end:/\)/,keywords:p,contains:[h,r,b,e.C_BLOCK_COMMENT_MODE,c,d,E]},T={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",g(u).join("\\b|"),"|",g(m).join("\\b|"),"\\b)"),a,t.concat(l,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[f]};f.contains.push(T);let v=[h,b,e.C_BLOCK_COMMENT_MODE,c,d,E];return{case_insensitive:!1,keywords:p,contains:[{begin:t.concat(/#\[\s*/,i),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:_,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:_,keyword:["new","array"]},contains:["self",...v]},...v,{scope:"meta",match:i}]},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},r,T,b,{match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},E,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:p,contains:["self",r,b,e.C_BLOCK_COMMENT_MODE,c,d]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},c,d]}}),aY)),r4.registerLanguage("php-template",(az||(az=1,aV=function(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}),aV)),r4.registerLanguage("plaintext",a$?aq:(a$=1,aq=function(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}})),r4.registerLanguage("pony",(aQ||(aQ=1,aW=function(e){return{name:"Pony",keywords:{keyword:"actor addressof and as be break class compile_error compile_intrinsic consume continue delegate digestof do else elseif embed end error for fun if ifdef in interface is isnt lambda let match new not object or primitive recover repeat return struct then trait try type until use var where while with xor",meta:"iso val tag trn box ref",literal:"this false true"},contains:[{className:"type",begin:"\\b_?[A-Z][\\w]*",relevance:0},{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE],relevance:0},{begin:e.IDENT_RE+"'",relevance:0},{className:"number",begin:"(-?)(\\b0[xX][a-fA-F0-9]+|\\b0[bB][01]+|(\\b\\d+(_\\d+)?(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}),aW)),r4.registerLanguage("powershell",(aj||(aj=1,aK=function(e){let t={$pattern:/-?[A-z\.\-]+\b/,keyword:"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter",built_in:"ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write"},n={begin:"`[\\s\\S]",relevance:0},a={className:"variable",variants:[{begin:/\$\B/},{className:"keyword",begin:/\$this/},{begin:/\$[\w\d][\w\d_:]*/}]},i={className:"string",variants:[{begin:/"/,end:/"/},{begin:/@"/,end:/^"@/}],contains:[n,a,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},r={className:"string",variants:[{begin:/'/,end:/'/},{begin:/@'/,end:/^'@/}]},s=e.inherit(e.COMMENT(null,null),{variants:[{begin:/#/,end:/$/},{begin:/<#/,end:/#>/}],contains:[{className:"doctag",variants:[{begin:/\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{begin:/\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/}]}]}),o={className:"class",beginKeywords:"class enum",end:/\s*[{]/,excludeEnd:!0,relevance:0,contains:[e.TITLE_MODE]},l={className:"function",begin:/\[.*\]\s*[\w]+[ ]??\(/,end:/$/,returnBegin:!0,relevance:0,contains:[{className:"keyword",begin:"(".concat(t.keyword.toString().replace(/\s/g,"|"),")\\b"),endsParent:!0,relevance:0},e.inherit(e.TITLE_MODE,{endsParent:!0})]},c=[l,s,n,e.NUMBER_MODE,i,r,{className:"built_in",variants:[{begin:"(".concat("Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where",")+(-)[\\w\\d]+")}]},a,{className:"literal",begin:/\$(null|true|false)\b/},{className:"selector-tag",begin:/@\B/,relevance:0}],d={begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[].concat("self",c,{begin:"(string|char|byte|int|long|bool|decimal|single|double|DateTime|xml|array|hashtable|void)",className:"built_in",relevance:0},{className:"type",begin:/[\.\w\d]+/,relevance:0})};return l.contains.unshift(d),{name:"PowerShell",aliases:["pwsh","ps","ps1"],case_insensitive:!0,keywords:t,contains:c.concat(o,{className:"function",begin:/function\s+/,end:/\s*\{|$/,excludeEnd:!0,returnBegin:!0,relevance:0,contains:[{begin:"function",relevance:0,className:"keyword"},{className:"title",begin:/\w[\w\d]*((-)[\w\d]+)*/,relevance:0},{begin:/\(/,end:/\)/,className:"params",relevance:0,contains:[a]}]},{begin:/using\s/,end:/$/,returnBegin:!0,contains:[i,r,{className:"keyword",begin:/(using|assembly|command|module|namespace|type)/}]},{variants:[{className:"operator",begin:"(".concat("-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor",")\\b")},{className:"literal",begin:/(-){1,2}[\w\d-]+/,relevance:0}]},d)}}),aK)),r4.registerLanguage("processing",(aZ||(aZ=1,aX=function(e){let t=e.regex,n=["displayHeight","displayWidth","mouseY","mouseX","mousePressed","pmouseX","pmouseY","key","keyCode","pixels","focused","frameCount","frameRate","height","width","size","createGraphics","beginDraw","createShape","loadShape","PShape","arc","ellipse","line","point","quad","rect","triangle","bezier","bezierDetail","bezierPoint","bezierTangent","curve","curveDetail","curvePoint","curveTangent","curveTightness","shape","shapeMode","beginContour","beginShape","bezierVertex","curveVertex","endContour","endShape","quadraticVertex","vertex","ellipseMode","noSmooth","rectMode","smooth","strokeCap","strokeJoin","strokeWeight","mouseClicked","mouseDragged","mouseMoved","mousePressed","mouseReleased","mouseWheel","keyPressed","keyPressedkeyReleased","keyTyped","print","println","save","saveFrame","day","hour","millis","minute","month","second","year","background","clear","colorMode","fill","noFill","noStroke","stroke","alpha","blue","brightness","color","green","hue","lerpColor","red","saturation","modelX","modelY","modelZ","screenX","screenY","screenZ","ambient","emissive","shininess","specular","add","createImage","beginCamera","camera","endCamera","frustum","ortho","perspective","printCamera","printProjection","cursor","frameRate","noCursor","exit","loop","noLoop","popStyle","pushStyle","redraw","binary","boolean","byte","char","float","hex","int","str","unbinary","unhex","join","match","matchAll","nf","nfc","nfp","nfs","split","splitTokens","trim","append","arrayCopy","concat","expand","reverse","shorten","sort","splice","subset","box","sphere","sphereDetail","createInput","createReader","loadBytes","loadJSONArray","loadJSONObject","loadStrings","loadTable","loadXML","open","parseXML","saveTable","selectFolder","selectInput","beginRaw","beginRecord","createOutput","createWriter","endRaw","endRecord","PrintWritersaveBytes","saveJSONArray","saveJSONObject","saveStream","saveStrings","saveXML","selectOutput","popMatrix","printMatrix","pushMatrix","resetMatrix","rotate","rotateX","rotateY","rotateZ","scale","shearX","shearY","translate","ambientLight","directionalLight","lightFalloff","lights","lightSpecular","noLights","normal","pointLight","spotLight","image","imageMode","loadImage","noTint","requestImage","tint","texture","textureMode","textureWrap","blend","copy","filter","get","loadPixels","set","updatePixels","blendMode","loadShader","PShaderresetShader","shader","createFont","loadFont","text","textFont","textAlign","textLeading","textMode","textSize","textWidth","textAscent","textDescent","abs","ceil","constrain","dist","exp","floor","lerp","log","mag","map","max","min","norm","pow","round","sq","sqrt","acos","asin","atan","atan2","cos","degrees","radians","sin","tan","noise","noiseDetail","noiseSeed","random","randomGaussian","randomSeed"],a=e.IDENT_RE,i={variants:[{match:t.concat(t.either(...n),t.lookahead(/\s*\(/)),className:"built_in"},{relevance:0,match:t.concat(/\b(?!for|if|while)/,a,t.lookahead(/\s*\(/)),className:"title.function"}]};return{name:"Processing",aliases:["pde"],keywords:{keyword:["abstract","assert","break","case","catch","const","continue","default","else","enum","final","finally","for","if","import","instanceof","long","native","new","package","private","private","protected","protected","public","public","return","static","strictfp","switch","synchronized","throw","throws","transient","try","void","volatile","while"],literal:"P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI null true false",title:"setup draw",variable:"super this",built_in:[...n,"BufferedReader","PVector","PFont","PImage","PGraphics","HashMap","String","Array","FloatDict","ArrayList","FloatList","IntDict","IntList","JSONArray","JSONObject","Object","StringDict","StringList","Table","TableRow","XML"],type:["boolean","byte","char","color","double","float","int","long","short"]},contains:[{variants:[{match:[/class/,/\s+/,a,/\s+/,/extends/,/\s+/,a]},{match:[/class/,/\s+/,a]}],className:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/new\s+/,a],className:{1:"keyword",2:"class.title"}},i,{relevance:0,match:[/\./,a],className:{2:"property"}},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}),aX)),r4.registerLanguage("profile",(a0||(a0=1,aJ=function(e){return{name:"Python profiler",contains:[e.C_NUMBER_MODE,{begin:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",end:":",excludeEnd:!0},{begin:"(ncalls|tottime|cumtime)",end:"$",keywords:"ncalls tottime|10 cumtime|10 filename",relevance:10},{begin:"function calls",end:"$",contains:[e.C_NUMBER_MODE],relevance:10},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\(",end:"\\)$",excludeBegin:!0,excludeEnd:!0,relevance:0}]}}),aJ)),r4.registerLanguage("prolog",(a2||(a2=1,a1=function(e){let t={begin:/\(/,end:/\)/,relevance:0},n={begin:/\[/,end:/\]/},a={className:"comment",begin:/%/,end:/$/,contains:[e.PHRASAL_WORDS_MODE]},i={className:"string",begin:/`/,end:/`/,contains:[e.BACKSLASH_ESCAPE]},r=[{begin:/[a-z][A-Za-z0-9_]*/,relevance:0},{className:"symbol",variants:[{begin:/[A-Z][a-zA-Z0-9_]*/},{begin:/_[A-Za-z0-9_]*/}],relevance:0},t,{begin:/:-/},n,a,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,{className:"string",begin:/0'(\\'|.)/},{className:"string",begin:/0'\\s/},e.C_NUMBER_MODE];return t.contains=r,n.contains=r,{name:"Prolog",contains:r.concat([{begin:/\.$/}])}}),a1)),r4.registerLanguage("properties",(a9||(a9=1,a3=function(e){let t="[ \\t\\f]*",n=t+"[:=]"+t,a="[ \\t\\f]+",i="([^\\\\:= \\t\\f\\n]|\\\\.)+";return{name:".properties",disableAutodetect:!0,case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{returnBegin:!0,variants:[{begin:i+n},{begin:i+a}],contains:[{className:"attr",begin:i,endsParent:!0}],starts:{end:"("+n+"|"+a+")",relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}}},{className:"attr",begin:i+t+"$"}]}}),a3)),r4.registerLanguage("protobuf",(a6||(a6=1,a4=function(e){let t={match:[/(message|enum|service)\s+/,e.IDENT_RE],scope:{1:"keyword",2:"title.class"}};return{name:"Protocol Buffers",aliases:["proto"],keywords:{keyword:["package","import","option","optional","required","repeated","group","oneof"],type:["double","float","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","bool","string","bytes"],literal:["true","false"]},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"function",beginKeywords:"rpc",end:/[{;]/,excludeEnd:!0,keywords:"rpc returns"},{begin:/^\s*[A-Z_]+(?=\s*=[^\n]+;$)/}]}}),a4)),r4.registerLanguage("puppet",(a8||(a8=1,a5=function(e){let t=e.COMMENT("#","$"),n="([A-Za-z_]|::)(\\w|::)*",a=e.inherit(e.TITLE_MODE,{begin:n}),i={className:"variable",begin:"\\$"+n},r={className:"string",contains:[e.BACKSLASH_ESCAPE,i],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]};return{name:"Puppet",aliases:["pp"],contains:[t,i,r,{beginKeywords:"class",end:"\\{|;",illegal:/=/,contains:[a,t]},{beginKeywords:"define",end:/\{/,contains:[{className:"section",begin:e.IDENT_RE,endsParent:!0}]},{begin:e.IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\S/,contains:[{className:"keyword",begin:e.IDENT_RE,relevance:.2},{begin:/\{/,end:/\}/,keywords:{keyword:"and case default else elsif false if in import enherits node or true undef unless main settings $string ",literal:"alias audit before loglevel noop require subscribe tag owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check en_address ip_address realname command environment hour monute month monthday special target weekday creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey sslverify mounted",built_in:"architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version"},relevance:0,contains:[r,t,{begin:"[a-zA-Z_]+\\s*=>",returnBegin:!0,end:"=>",contains:[{className:"attr",begin:e.IDENT_RE}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},i]}],relevance:0}]}}),a5)),r4.registerLanguage("purebasic",(ie||(ie=1,a7=function(e){return{name:"PureBASIC",aliases:["pb","pbi"],keywords:"Align And Array As Break CallDebugger Case CompilerCase CompilerDefault CompilerElse CompilerElseIf CompilerEndIf CompilerEndSelect CompilerError CompilerIf CompilerSelect CompilerWarning Continue Data DataSection Debug DebugLevel Declare DeclareC DeclareCDLL DeclareDLL DeclareModule Default Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM EnableDebugger EnableExplicit End EndDataSection EndDeclareModule EndEnumeration EndIf EndImport EndInterface EndMacro EndModule EndProcedure EndSelect EndStructure EndStructureUnion EndWith Enumeration EnumerationBinary Extends FakeReturn For ForEach ForEver Global Gosub Goto If Import ImportC IncludeBinary IncludeFile IncludePath Interface List Macro MacroExpandedCount Map Module NewList NewMap Next Not Or Procedure ProcedureC ProcedureCDLL ProcedureDLL ProcedureReturn Protected Prototype PrototypeC ReDim Read Repeat Restore Return Runtime Select Shared Static Step Structure StructureUnion Swap Threaded To UndefineMacro Until Until UnuseModule UseModule Wend While With XIncludeFile XOr",contains:[e.COMMENT(";","$",{relevance:0}),{className:"function",begin:"\\b(Procedure|Declare)(C|CDLL|DLL)?\\b",end:"\\(",excludeEnd:!0,returnBegin:!0,contains:[{className:"keyword",begin:"(Procedure|Declare)(C|CDLL|DLL)?",excludeEnd:!0},{className:"type",begin:"\\.\\w*"},e.UNDERSCORE_TITLE_MODE]},{className:"string",begin:'(~)?"',end:'"',illegal:"\\n"},{className:"symbol",begin:"#[a-zA-Z_]\\w*\\$?"}]}}),a7)),r4.registerLanguage("python",(ia||(ia=1,it=function(e){let t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:a,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},r={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/,end:/\}/,keywords:i,illegal:/#/},o={begin:/\{\{/,relevance:0},l={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,o,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,_=`\\b|${a.join("|")}`,u={className:"number",relevance:0,variants:[{begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${_})`},{begin:`(${d})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${_})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${_})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${_})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${_})`},{begin:`\\b(${c})[jJ](?=${_})`}]},m={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:i,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},p={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i,contains:["self",r,u,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,u,r],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i,illegal:/(<\/|\?)|=>/,contains:[r,u,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},l,m,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[p]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,p,l]}]}}),it)),r4.registerLanguage("python-repl",ir?ii:(ir=1,ii=function(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}})),r4.registerLanguage("q",(io||(io=1,is=function(e){return{name:"Q",aliases:["k","kdb"],keywords:{$pattern:/(`?)[A-Za-z0-9_]+\b/,keyword:"do while select delete by update from",literal:"0b 1b",built_in:"neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum",type:"`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid"},contains:[e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}),is)),r4.registerLanguage("qml",(ic||(ic=1,il=function(e){let t="[a-zA-Z_][a-zA-Z0-9\\._]*",n={begin:e.regex.concat(t,/\s*\{/),end:/\{/,returnBegin:!0,relevance:0,contains:[e.inherit(e.TITLE_MODE,{begin:t})]};return{name:"QML",aliases:["qt"],case_insensitive:!1,keywords:{keyword:"in of on if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await import",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Behavior bool color coordinate date double enumeration font geocircle georectangle geoshape int list matrix4x4 parent point quaternion real rect size string url variant vector2d vector3d vector4d Promise"},contains:[{className:"meta",begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{begin:/</,end:/>\s*[);\]]/,relevance:0,subLanguage:"xml"}],relevance:0},{className:"keyword",begin:"\\bsignal\\b",starts:{className:"string",end:"(\\(|:|=|;|,|//|/\\*|$)",returnEnd:!0}},{className:"keyword",begin:"\\bproperty\\b",starts:{className:"string",end:"(:|=|;|,|//|/\\*|$)",returnEnd:!0}},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}],illegal:/\[|%/},{begin:"\\."+e.IDENT_RE,relevance:0},{className:"attribute",begin:"\\bid\\s*:",starts:{className:"string",end:t,returnEnd:!1}},{begin:t+"\\s*:",returnBegin:!0,contains:[{className:"attribute",begin:t,end:"\\s*:",excludeEnd:!0,relevance:0}],relevance:0},n],illegal:/#/}}),il)),r4.registerLanguage("r",(i_||(i_=1,id=function(e){let t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,a=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,a]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,a]},{scope:{1:"punctuation",2:"number"},match:[r,a]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,a]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}),id)),r4.registerLanguage("reasonml",(im||(im=1,iu=function(e){return{name:"ReasonML",aliases:["re"],keywords:{$pattern:/[a-z_]\w*!?/,keyword:["and","as","asr","assert","begin","class","constraint","do","done","downto","else","end","esfun","exception","external","for","fun","function","functor","if","in","include","inherit","initializer","land","lazy","let","lor","lsl","lsr","lxor","mod","module","mutable","new","nonrec","object","of","open","or","pri","pub","rec","sig","struct","switch","then","to","try","type","val","virtual","when","while","with"],built_in:["array","bool","bytes","char","exn|5","float","int","int32","int64","list","lazy_t|5","nativeint|5","ref","string","unit"],literal:["true","false"]},illegal:/(:-|:=|\$\{|\+=)/,contains:[{scope:"literal",match:/\[(\|\|)?\]|\(\)/,relevance:0},e.C_LINE_COMMENT_MODE,e.COMMENT(/\/\*/,/\*\//,{illegal:/^(#,\/\/)/}),{scope:"symbol",match:/\'[A-Za-z_](?!\')[\w\']*/},{scope:"type",match:/`[A-Z][\w\']*/},{scope:"type",match:/\b[A-Z][\w\']*/,relevance:0},{match:/[a-z_]\w*\'[\w\']*/,relevance:0},{scope:"operator",match:/\s+(\|\||\+[\+\.]?|\*[\*\/\.]?|\/[\.]?|\.\.\.|\|>|&&|===?)\s+/,relevance:0},e.inherit(e.APOS_STRING_MODE,{scope:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{scope:"number",variants:[{match:/\b0[xX][a-fA-F0-9_]+[Lln]?/},{match:/\b0[oO][0-7_]+[Lln]?/},{match:/\b0[bB][01_]+[Lln]?/},{match:/\b[0-9][0-9_]*([Lln]|(\.[0-9_]*)?([eE][-+]?[0-9_]+)?)/}],relevance:0}]}}),iu)),r4.registerLanguage("rib",(ig||(ig=1,ip=function(e){return{name:"RenderMan RIB",keywords:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",illegal:"</",contains:[e.HASH_COMMENT_MODE,e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}}),ip)),r4.registerLanguage("roboconf",(iS||(iS=1,iE=function(e){let t="[a-zA-Z-_][^\\n{]+\\{",n={className:"attribute",begin:/[a-zA-Z-_]+/,end:/\s*:/,excludeEnd:!0,starts:{end:";",relevance:0,contains:[{className:"variable",begin:/\.[a-zA-Z-_]+/},{className:"keyword",begin:/\(optional\)/}]}};return{name:"Roboconf",aliases:["graph","instances"],case_insensitive:!0,keywords:"import",contains:[{begin:"^facet "+t,end:/\}/,keywords:"facet",contains:[n,e.HASH_COMMENT_MODE]},{begin:"^\\s*instance of "+t,end:/\}/,keywords:"name count channels instance-data instance-state instance of",illegal:/\S/,contains:["self",n,e.HASH_COMMENT_MODE]},{begin:"^"+t,end:/\}/,contains:[n,e.HASH_COMMENT_MODE]},e.HASH_COMMENT_MODE]}}),iE)),r4.registerLanguage("routeros",(ih||(ih=1,ib=function(e){let t="foreach do while for if from to step else on-error and or not in",n="true false yes no nothing nil null",a={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},i={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,a,{className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]},r={className:"string",begin:/'/,end:/'/};return{name:"MikroTik RouterOS script",aliases:["mikrotik"],case_insensitive:!0,keywords:{$pattern:/:?[\w-]+/,literal:n,keyword:t+" :"+t.split(" ").join(" :")+" :"+"global local beep delay put len typeof pick log time set find environment terminal error execute parse resolve toarray tobool toid toip toip6 tonum tostr totime".split(" ").join(" :")},contains:[{variants:[{begin:/\/\*/,end:/\*\//},{begin:/\/\//,end:/$/},{begin:/<\//,end:/>/}],illegal:/./},e.COMMENT("^#","$"),i,r,a,{begin:/[\w-]+=([^\s{}[\]()>]+)/,relevance:0,returnBegin:!0,contains:[{className:"attribute",begin:/[^=]+/},{begin:/=/,endsWithParent:!0,relevance:0,contains:[i,r,a,{className:"literal",begin:"\\b("+n.split(" ").join("|")+")\\b"},{begin:/("[^"]*"|[^\s{}[\]]+)/}]}]},{className:"number",begin:/\*[0-9a-fA-F]+/},{begin:"\\b("+"add remove enable disable set get print export edit find run debug error info warning".split(" ").join("|")+")([\\s[(\\]|])",returnBegin:!0,contains:[{className:"built_in",begin:/\w+/}]},{className:"built_in",variants:[{begin:"(\\.\\./|/|\\s)(("+"traffic-flow traffic-generator firewall scheduler aaa accounting address-list address align area bandwidth-server bfd bgp bridge client clock community config connection console customer default dhcp-client dhcp-server discovery dns e-mail ethernet filter firmware gps graphing group hardware health hotspot identity igmp-proxy incoming instance interface ip ipsec ipv6 irq l2tp-server lcd ldp logging mac-server mac-winbox mangle manual mirror mme mpls nat nd neighbor network note ntp ospf ospf-v3 ovpn-server page peer pim ping policy pool port ppp pppoe-client pptp-server prefix profile proposal proxy queue radius resource rip ripng route routing screen script security-profiles server service service-port settings shares smb sms sniffer snmp snooper socks sstp-server system tool tracking type upgrade upnp user-manager users user vlan secret vrrp watchdog web-access wireless pptp pppoe lan wan layer7-protocol lease simple raw".split(" ").join("|")+");?\\s)+"},{begin:/\.\./,relevance:0}]}]}}),ib)),r4.registerLanguage("rsl",(iv||(iv=1,iT=function(e){let t={match:[/(surface|displacement|light|volume|imager)/,/\s+/,e.IDENT_RE],scope:{1:"keyword",3:"title.class"}};return{name:"RenderMan RSL",keywords:{keyword:["while","for","if","do","return","else","break","extern","continue"],built_in:["abs","acos","ambient","area","asin","atan","atmosphere","attribute","calculatenormal","ceil","cellnoise","clamp","comp","concat","cos","degrees","depth","Deriv","diffuse","distance","Du","Dv","environment","exp","faceforward","filterstep","floor","format","fresnel","incident","length","lightsource","log","match","max","min","mod","noise","normalize","ntransform","opposite","option","phong","pnoise","pow","printf","ptlined","radians","random","reflect","refract","renderinfo","round","setcomp","setxcomp","setycomp","setzcomp","shadow","sign","sin","smoothstep","specular","specularbrdf","spline","sqrt","step","tan","texture","textureinfo","trace","transform","vtransform","xcomp","ycomp","zcomp"],type:["matrix","float","color","point","normal","vector"]},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"},t,{beginKeywords:"illuminate illuminance gather",end:"\\("}]}}),iT)),r4.registerLanguage("ruleslanguage",(iR||(iR=1,iC=function(e){return{name:"Oracle Rules Language",keywords:{keyword:"BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM NUMDAYS READ_DATE STAGING",built_in:"IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"literal",variants:[{begin:"#\\s+",relevance:0},{begin:"#[a-zA-Z .]+"}]}]}}),iC)),r4.registerLanguage("rust",(iy||(iy=1,iN=function(e){let t=e.regex,n={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,e.IDENT_RE,t.lookahead(/\s*\(/))},a="([ui](8|16|32|64|128|size)|f(32|64))?",i=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],r=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:r,keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"],literal:["true","false","Some","None","Ok","Err"],built_in:i},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:"number",variants:[{begin:"\\b0b([01_]+)"+a},{begin:"\\b0o([0-7_]+)"+a},{begin:"\\b0x([A-Fa-f0-9_]+)"+a},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+a}],relevance:0},{begin:[/fn/,/\s+/,e.UNDERSCORE_IDENT_RE],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,e.UNDERSCORE_IDENT_RE],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,e.UNDERSCORE_IDENT_RE,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,e.UNDERSCORE_IDENT_RE],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,e.UNDERSCORE_IDENT_RE],className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{keyword:"Self",built_in:i,type:r}},{className:"punctuation",begin:"->"},n]}}),iN)),r4.registerLanguage("sas",(iA||(iA=1,iO=function(e){let t=e.regex;return{name:"SAS",case_insensitive:!0,keywords:{literal:["null","missing","_all_","_automatic_","_character_","_infile_","_n_","_name_","_null_","_numeric_","_user_","_webout_"],keyword:["do","if","then","else","end","until","while","abort","array","attrib","by","call","cards","cards4","catname","continue","datalines","datalines4","delete","delim","delimiter","display","dm","drop","endsas","error","file","filename","footnote","format","goto","in","infile","informat","input","keep","label","leave","length","libname","link","list","lostcard","merge","missing","modify","options","output","out","page","put","redirect","remove","rename","replace","retain","return","select","set","skip","startsas","stop","title","update","waitsas","where","window","x|0","systask","add","and","alter","as","cascade","check","create","delete","describe","distinct","drop","foreign","from","group","having","index","insert","into","in","key","like","message","modify","msgtype","not","null","on","or","order","primary","references","reset","restrict","select","set","table","unique","update","validate","view","where"]},contains:[{className:"keyword",begin:/^\s*(proc [\w\d_]+|data|run|quit)[\s;]/},{className:"variable",begin:/&[a-zA-Z_&][a-zA-Z0-9_]*\.?/},{begin:[/^\s*/,/datalines;|cards;/,/(?:.*\n)+/,/^\s*;\s*$/],className:{2:"keyword",3:"string"}},{begin:[/%mend|%macro/,/\s+/,/[a-zA-Z_&][a-zA-Z0-9_]*/],className:{1:"built_in",3:"title.function"}},{className:"built_in",begin:"%"+t.either("bquote","nrbquote","cmpres","qcmpres","compstor","datatyp","display","do","else","end","eval","global","goto","if","index","input","keydef","label","left","length","let","local","lowcase","macro","mend","nrbquote","nrquote","nrstr","put","qcmpres","qleft","qlowcase","qscan","qsubstr","qsysfunc","qtrim","quote","qupcase","scan","str","substr","superq","syscall","sysevalf","sysexec","sysfunc","sysget","syslput","sysprod","sysrc","sysrput","then","to","trim","unquote","until","upcase","verify","while","window")},{className:"title.function",begin:/%[a-zA-Z_][a-zA-Z_0-9]*/},{className:"meta",begin:t.either("abs","addr","airy","arcos","arsin","atan","attrc","attrn","band","betainv","blshift","bnot","bor","brshift","bxor","byte","cdf","ceil","cexist","cinv","close","cnonct","collate","compbl","compound","compress","cos","cosh","css","curobs","cv","daccdb","daccdbsl","daccsl","daccsyd","dacctab","dairy","date","datejul","datepart","datetime","day","dclose","depdb","depdbsl","depdbsl","depsl","depsl","depsyd","depsyd","deptab","deptab","dequote","dhms","dif","digamma","dim","dinfo","dnum","dopen","doptname","doptnum","dread","dropnote","dsname","erf","erfc","exist","exp","fappend","fclose","fcol","fdelete","fetch","fetchobs","fexist","fget","fileexist","filename","fileref","finfo","finv","fipname","fipnamel","fipstate","floor","fnonct","fnote","fopen","foptname","foptnum","fpoint","fpos","fput","fread","frewind","frlen","fsep","fuzz","fwrite","gaminv","gamma","getoption","getvarc","getvarn","hbound","hms","hosthelp","hour","ibessel","index","indexc","indexw","input","inputc","inputn","int","intck","intnx","intrr","irr","jbessel","juldate","kurtosis","lag","lbound","left","length","lgamma","libname","libref","log","log10","log2","logpdf","logpmf","logsdf","lowcase","max","mdy","mean","min","minute","mod","month","mopen","mort","n","netpv","nmiss","normal","note","npv","open","ordinal","pathname","pdf","peek","peekc","pmf","point","poisson","poke","probbeta","probbnml","probchi","probf","probgam","probhypr","probit","probnegb","probnorm","probt","put","putc","putn","qtr","quote","ranbin","rancau","ranexp","rangam","range","rank","rannor","ranpoi","rantbl","rantri","ranuni","repeat","resolve","reverse","rewind","right","round","saving","scan","sdf","second","sign","sin","sinh","skewness","soundex","spedis","sqrt","std","stderr","stfips","stname","stnamel","substr","sum","symget","sysget","sysmsg","sysprod","sysrc","system","tan","tanh","time","timepart","tinv","tnonct","today","translate","tranwrd","trigamma","trim","trimn","trunc","uniform","upcase","uss","var","varfmt","varinfmt","varlabel","varlen","varname","varnum","varray","varrayx","vartype","verify","vformat","vformatd","vformatdx","vformatn","vformatnx","vformatw","vformatwx","vformatx","vinarray","vinarrayx","vinformat","vinformatd","vinformatdx","vinformatn","vinformatnx","vinformatw","vinformatwx","vinformatx","vlabel","vlabelx","vlength","vlengthx","vname","vnamex","vtype","vtypex","weekday","year","yyq","zipfips","zipname","zipnamel","zipstate")+"(?=\\()"},{className:"string",variants:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},e.COMMENT("\\*",";"),e.C_BLOCK_COMMENT_MODE]}}),iO)),r4.registerLanguage("scala",(iD||(iD=1,iI=function(e){let t=e.regex,n={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:/\$\{/,end:/\}/}]},a={className:"string",variants:[{begin:'"""',end:'"""'},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[n],relevance:10}]},i={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},r={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},s={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r]},o={className:"function",beginKeywords:"def",end:t.lookahead(/[:={\[(\n;]/),contains:[r]};return{name:"Scala",keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if then forSome for while do throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit export enum given transparent"},contains:[{begin:["//>",/\s+/,/using/,/\s+/,/\S+/],beginScope:{1:"comment",3:"keyword",5:"type"},end:/$/,contains:[{className:"string",begin:/\S+/}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,i,o,s,e.C_NUMBER_MODE,{begin:[/^\s*/,"extension",/\s+(?=[[(])/],beginScope:{2:"keyword"}},{begin:[/^\s*/,/end/,/\s+/,/(extension\b)?/],beginScope:{2:"keyword",4:"keyword"}},{match:/\.inline\b/},{begin:/\binline(?=\s)/,keywords:"inline"},{begin:[/\(\s*/,/using/,/\s+(?!\))/],beginScope:{2:"keyword"}},{className:"meta",begin:"@[A-Za-z]+"}]}}),iI)),r4.registerLanguage("scheme",(ix||(ix=1,iw=function(e){let t="[^\\(\\)\\[\\]\\{\\}\",'`;#|\\\\\\s]+",n="(-|\\+)?\\d+([./]\\d+)?",a={className:"literal",begin:"(#t|#f|#\\\\"+t+"|#\\\\.)"},i={className:"number",variants:[{begin:n,relevance:0},{begin:n+"[+\\-]"+n+"i",relevance:0},{begin:"#b[0-1]+(/[0-1]+)?"},{begin:"#o[0-7]+(/[0-7]+)?"},{begin:"#x[0-9a-f]+(/[0-9a-f]+)?"}]},r=e.QUOTE_STRING_MODE,s=[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#\\|","\\|#")],o={begin:t,relevance:0},l={className:"symbol",begin:"'"+t},c={endsWithParent:!0,relevance:0},d={variants:[{begin:/'/},{begin:"`"}],contains:[{begin:"\\(",end:"\\)",contains:["self",a,r,i,o,l]}]},_={className:"name",relevance:0,begin:t,keywords:{$pattern:t,built_in:"case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules ' * + , ,@ - ... / ; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string<? string=? string>=? string>? string? substring symbol->string symbol? tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"}},u={variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}],contains:[{begin:/lambda/,endsWithParent:!0,returnBegin:!0,contains:[_,{endsParent:!0,variants:[{begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/}],contains:[o]}]},_,c]};return c.contains=[a,i,r,o,l,d,u].concat(s),{name:"Scheme",aliases:["scm"],illegal:/\S/,contains:[e.SHEBANG(),i,r,l,d,u].concat(s)}}),iw)),r4.registerLanguage("scilab",(iM||(iM=1,iL=function(e){let t=[e.C_NUMBER_MODE,{className:"string",begin:"'|\"",end:"'|\"",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]}];return{name:"Scilab",aliases:["sci"],keywords:{$pattern:/%?\w+/,keyword:"abort break case clear catch continue do elseif else endfunction end for function global if pause return resume select try then while",literal:"%f %F %t %T %pi %eps %inf %nan %e %i %z %s",built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan type typename warning zeros matrix"},illegal:'("|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},{begin:"[a-zA-Z_][a-zA-Z_0-9]*[\\.']+",relevance:0},{begin:"\\[",end:"\\][\\.']*",relevance:0,contains:t},e.COMMENT("//","$")].concat(t)}}),iL)),r4.registerLanguage("scss",function(){if(ik)return iP;ik=1;let e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],n=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],a=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],i=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();return iP=function(r){let s;let o={IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:(s=r).C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[s.APOS_STRING_MODE,s.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:s.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}},l="@[a-z-]+",c={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,o.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},o.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+e.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+n.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+a.join("|")+")"},c,{begin:/\(/,end:/\)/,contains:[o.CSS_NUMBER_MODE]},o.CSS_VARIABLE,{className:"attribute",begin:"\\b("+i.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[o.BLOCK_COMMENT,c,o.HEXCOLOR,o.CSS_NUMBER_MODE,r.QUOTE_STRING_MODE,r.APOS_STRING_MODE,o.IMPORTANT,o.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:l,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},contains:[{begin:l,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},c,r.QUOTE_STRING_MODE,r.APOS_STRING_MODE,o.HEXCOLOR,o.CSS_NUMBER_MODE]},o.FUNCTION_DISPATCH]}}}()),r4.registerLanguage("shell",iU?iF:(iU=1,iF=function(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}})),r4.registerLanguage("smali",(iG||(iG=1,iB=function(e){let t=["add","and","cmp","cmpg","cmpl","const","div","double","float","goto","if","int","long","move","mul","neg","new","nop","not","or","rem","return","shl","shr","sput","sub","throw","ushr","xor"];return{name:"Smali",contains:[{className:"string",begin:'"',end:'"',relevance:0},e.COMMENT("#","$",{relevance:0}),{className:"keyword",variants:[{begin:"\\s*\\.end\\s[a-zA-Z0-9]*"},{begin:"^[ ]*\\.[a-zA-Z]*",relevance:0},{begin:"\\s:[a-zA-Z_0-9]*",relevance:0},{begin:"\\s(transient|constructor|abstract|final|synthetic|public|private|protected|static|bridge|system)"}]},{className:"built_in",variants:[{begin:"\\s("+t.join("|")+")\\s"},{begin:"\\s("+t.join("|")+")((-|/)[a-zA-Z0-9]+)+\\s",relevance:10},{begin:"\\s(aget|aput|array|check|execute|fill|filled|goto/16|goto/32|iget|instance|invoke|iput|monitor|packed|sget|sparse)((-|/)[a-zA-Z0-9]+)*\\s",relevance:10}]},{className:"class",begin:"L[^(;:\n]*;",relevance:0},{begin:"[vp][0-9]+"}]}}),iB)),r4.registerLanguage("smalltalk",(iH||(iH=1,iY=function(e){let t="[a-z][a-zA-Z0-9_]*",n={className:"string",begin:"\\$.{1}"},a={className:"symbol",begin:"#"+e.UNDERSCORE_IDENT_RE};return{name:"Smalltalk",aliases:["st"],keywords:["self","super","nil","true","false","thisContext"],contains:[e.COMMENT('"','"'),e.APOS_STRING_MODE,{className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},{begin:t+":",relevance:0},e.C_NUMBER_MODE,a,n,{begin:"\\|[ ]*"+t+"([ ]+"+t+")*[ ]*\\|",returnBegin:!0,end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?"+t}]},{begin:"#\\(",end:"\\)",contains:[e.APOS_STRING_MODE,n,e.C_NUMBER_MODE,a]}]}}),iY)),r4.registerLanguage("sml",(iz||(iz=1,iV=function(e){return{name:"SML (Standard ML)",aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?",keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while",built_in:"array bool char exn int list option order real ref string substring vector unit word",literal:"true false NONE SOME LESS EQUAL GREATER nil"},illegal:/\/\/|>>/,contains:[{className:"literal",begin:/\[(\|\|)?\]|\(\)/,relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*"},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}}),iV)),r4.registerLanguage("sqf",(i$||(i$=1,iq=function(e){let t={className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]},{begin:"'",end:"'",contains:[{begin:"''",relevance:0}]}]},n={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:"define undef ifdef ifndef else endif include if",contains:[{begin:/\\\n/,relevance:0},e.inherit(t,{className:"string"}),{begin:/<[^\n>]*>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{name:"SQF",case_insensitive:!0,keywords:{keyword:["break","breakWith","breakOut","breakTo","case","catch","continue","continueWith","default","do","else","exit","exitWith","for","forEach","from","if","local","private","switch","step","then","throw","to","try","waitUntil","while","with"],built_in:["abs","accTime","acos","action","actionIDs","actionKeys","actionKeysEx","actionKeysImages","actionKeysNames","actionKeysNamesArray","actionName","actionParams","activateAddons","activatedAddons","activateKey","activeTitleEffectParams","add3DENConnection","add3DENEventHandler","add3DENLayer","addAction","addBackpack","addBackpackCargo","addBackpackCargoGlobal","addBackpackGlobal","addBinocularItem","addCamShake","addCuratorAddons","addCuratorCameraArea","addCuratorEditableObjects","addCuratorEditingArea","addCuratorPoints","addEditorObject","addEventHandler","addForce","addForceGeneratorRTD","addGoggles","addGroupIcon","addHandgunItem","addHeadgear","addItem","addItemCargo","addItemCargoGlobal","addItemPool","addItemToBackpack","addItemToUniform","addItemToVest","addLiveStats","addMagazine","addMagazineAmmoCargo","addMagazineCargo","addMagazineCargoGlobal","addMagazineGlobal","addMagazinePool","addMagazines","addMagazineTurret","addMenu","addMenuItem","addMissionEventHandler","addMPEventHandler","addMusicEventHandler","addonFiles","addOwnedMine","addPlayerScores","addPrimaryWeaponItem","addPublicVariableEventHandler","addRating","addResources","addScore","addScoreSide","addSecondaryWeaponItem","addSwitchableUnit","addTeamMember","addToRemainsCollector","addTorque","addUniform","addUserActionEventHandler","addVehicle","addVest","addWaypoint","addWeapon","addWeaponCargo","addWeaponCargoGlobal","addWeaponGlobal","addWeaponItem","addWeaponPool","addWeaponTurret","addWeaponWithAttachmentsCargo","addWeaponWithAttachmentsCargoGlobal","admin","agent","agents","AGLToASL","aimedAtTarget","aimPos","airDensityCurveRTD","airDensityRTD","airplaneThrottle","airportSide","AISFinishHeal","alive","all3DENEntities","allActiveTitleEffects","allAddonsInfo","allAirports","allControls","allCurators","allCutLayers","allDead","allDeadMen","allDiaryRecords","allDiarySubjects","allDisplays","allEnv3DSoundSources","allGroups","allLODs","allMapMarkers","allMines","allMissionObjects","allObjects","allow3DMode","allowCrewInImmobile","allowCuratorLogicIgnoreAreas","allowDamage","allowDammage","allowedService","allowFileOperations","allowFleeing","allowGetIn","allowService","allowSprint","allPlayers","allSimpleObjects","allSites","allTurrets","allUnits","allUnitsUAV","allUsers","allVariables","ambientTemperature","ammo","ammoOnPylon","and","animate","animateBay","animateDoor","animatePylon","animateSource","animationNames","animationPhase","animationSourcePhase","animationState","apertureParams","append","apply","armoryPoints","arrayIntersect","asin","ASLToAGL","ASLToATL","assert","assignAsCargo","assignAsCargoIndex","assignAsCommander","assignAsDriver","assignAsGunner","assignAsTurret","assignCurator","assignedCargo","assignedCommander","assignedDriver","assignedGroup","assignedGunner","assignedItems","assignedTarget","assignedTeam","assignedVehicle","assignedVehicleRole","assignedVehicles","assignItem","assignTeam","assignToAirport","atan","atan2","atg","ATLToASL","attachedObject","attachedObjects","attachedTo","attachObject","attachTo","attackEnabled","awake","backpack","backpackCargo","backpackContainer","backpackItems","backpackMagazines","backpackSpaceFor","behaviour","benchmark","bezierInterpolation","binocular","binocularItems","binocularMagazine","boundingBox","boundingBoxReal","boundingCenter","brakesDisabled","briefingName","buildingExit","buildingPos","buldozer_EnableRoadDiag","buldozer_IsEnabledRoadDiag","buldozer_LoadNewRoads","buldozer_reloadOperMap","buttonAction","buttonSetAction","cadetMode","calculatePath","calculatePlayerVisibilityByFriendly","call","callExtension","camCommand","camCommit","camCommitPrepared","camCommitted","camConstuctionSetParams","camCreate","camDestroy","cameraEffect","cameraEffectEnableHUD","cameraInterest","cameraOn","cameraView","campaignConfigFile","camPreload","camPreloaded","camPrepareBank","camPrepareDir","camPrepareDive","camPrepareFocus","camPrepareFov","camPrepareFovRange","camPreparePos","camPrepareRelPos","camPrepareTarget","camSetBank","camSetDir","camSetDive","camSetFocus","camSetFov","camSetFovRange","camSetPos","camSetRelPos","camSetTarget","camTarget","camUseNVG","canAdd","canAddItemToBackpack","canAddItemToUniform","canAddItemToVest","cancelSimpleTaskDestination","canDeployWeapon","canFire","canMove","canSlingLoad","canStand","canSuspend","canTriggerDynamicSimulation","canUnloadInCombat","canVehicleCargo","captive","captiveNum","cbChecked","cbSetChecked","ceil","channelEnabled","cheatsEnabled","checkAIFeature","checkVisibility","className","clear3DENAttribute","clear3DENInventory","clearAllItemsFromBackpack","clearBackpackCargo","clearBackpackCargoGlobal","clearForcesRTD","clearGroupIcons","clearItemCargo","clearItemCargoGlobal","clearItemPool","clearMagazineCargo","clearMagazineCargoGlobal","clearMagazinePool","clearOverlay","clearRadio","clearWeaponCargo","clearWeaponCargoGlobal","clearWeaponPool","clientOwner","closeDialog","closeDisplay","closeOverlay","collapseObjectTree","collect3DENHistory","collectiveRTD","collisionDisabledWith","combatBehaviour","combatMode","commandArtilleryFire","commandChat","commander","commandFire","commandFollow","commandFSM","commandGetOut","commandingMenu","commandMove","commandRadio","commandStop","commandSuppressiveFire","commandTarget","commandWatch","comment","commitOverlay","compatibleItems","compatibleMagazines","compile","compileFinal","compileScript","completedFSM","composeText","configClasses","configFile","configHierarchy","configName","configOf","configProperties","configSourceAddonList","configSourceMod","configSourceModList","confirmSensorTarget","connectTerminalToUAV","connectToServer","controlsGroupCtrl","conversationDisabled","copyFromClipboard","copyToClipboard","copyWaypoints","cos","count","countEnemy","countFriendly","countSide","countType","countUnknown","create3DENComposition","create3DENEntity","createAgent","createCenter","createDialog","createDiaryLink","createDiaryRecord","createDiarySubject","createDisplay","createGearDialog","createGroup","createGuardedPoint","createHashMap","createHashMapFromArray","createLocation","createMarker","createMarkerLocal","createMenu","createMine","createMissionDisplay","createMPCampaignDisplay","createSimpleObject","createSimpleTask","createSite","createSoundSource","createTask","createTeam","createTrigger","createUnit","createVehicle","createVehicleCrew","createVehicleLocal","crew","ctAddHeader","ctAddRow","ctClear","ctCurSel","ctData","ctFindHeaderRows","ctFindRowHeader","ctHeaderControls","ctHeaderCount","ctRemoveHeaders","ctRemoveRows","ctrlActivate","ctrlAddEventHandler","ctrlAngle","ctrlAnimateModel","ctrlAnimationPhaseModel","ctrlAt","ctrlAutoScrollDelay","ctrlAutoScrollRewind","ctrlAutoScrollSpeed","ctrlBackgroundColor","ctrlChecked","ctrlClassName","ctrlCommit","ctrlCommitted","ctrlCreate","ctrlDelete","ctrlEnable","ctrlEnabled","ctrlFade","ctrlFontHeight","ctrlForegroundColor","ctrlHTMLLoaded","ctrlIDC","ctrlIDD","ctrlMapAnimAdd","ctrlMapAnimClear","ctrlMapAnimCommit","ctrlMapAnimDone","ctrlMapCursor","ctrlMapMouseOver","ctrlMapPosition","ctrlMapScale","ctrlMapScreenToWorld","ctrlMapSetPosition","ctrlMapWorldToScreen","ctrlModel","ctrlModelDirAndUp","ctrlModelScale","ctrlMousePosition","ctrlParent","ctrlParentControlsGroup","ctrlPosition","ctrlRemoveAllEventHandlers","ctrlRemoveEventHandler","ctrlScale","ctrlScrollValues","ctrlSetActiveColor","ctrlSetAngle","ctrlSetAutoScrollDelay","ctrlSetAutoScrollRewind","ctrlSetAutoScrollSpeed","ctrlSetBackgroundColor","ctrlSetChecked","ctrlSetDisabledColor","ctrlSetEventHandler","ctrlSetFade","ctrlSetFocus","ctrlSetFont","ctrlSetFontH1","ctrlSetFontH1B","ctrlSetFontH2","ctrlSetFontH2B","ctrlSetFontH3","ctrlSetFontH3B","ctrlSetFontH4","ctrlSetFontH4B","ctrlSetFontH5","ctrlSetFontH5B","ctrlSetFontH6","ctrlSetFontH6B","ctrlSetFontHeight","ctrlSetFontHeightH1","ctrlSetFontHeightH2","ctrlSetFontHeightH3","ctrlSetFontHeightH4","ctrlSetFontHeightH5","ctrlSetFontHeightH6","ctrlSetFontHeightSecondary","ctrlSetFontP","ctrlSetFontPB","ctrlSetFontSecondary","ctrlSetForegroundColor","ctrlSetModel","ctrlSetModelDirAndUp","ctrlSetModelScale","ctrlSetMousePosition","ctrlSetPixelPrecision","ctrlSetPosition","ctrlSetPositionH","ctrlSetPositionW","ctrlSetPositionX","ctrlSetPositionY","ctrlSetScale","ctrlSetScrollValues","ctrlSetShadow","ctrlSetStructuredText","ctrlSetText","ctrlSetTextColor","ctrlSetTextColorSecondary","ctrlSetTextSecondary","ctrlSetTextSelection","ctrlSetTooltip","ctrlSetTooltipColorBox","ctrlSetTooltipColorShade","ctrlSetTooltipColorText","ctrlSetTooltipMaxWidth","ctrlSetURL","ctrlSetURLOverlayMode","ctrlShadow","ctrlShow","ctrlShown","ctrlStyle","ctrlText","ctrlTextColor","ctrlTextHeight","ctrlTextSecondary","ctrlTextSelection","ctrlTextWidth","ctrlTooltip","ctrlType","ctrlURL","ctrlURLOverlayMode","ctrlVisible","ctRowControls","ctRowCount","ctSetCurSel","ctSetData","ctSetHeaderTemplate","ctSetRowTemplate","ctSetValue","ctValue","curatorAddons","curatorCamera","curatorCameraArea","curatorCameraAreaCeiling","curatorCoef","curatorEditableObjects","curatorEditingArea","curatorEditingAreaType","curatorMouseOver","curatorPoints","curatorRegisteredObjects","curatorSelected","curatorWaypointCost","current3DENOperation","currentChannel","currentCommand","currentMagazine","currentMagazineDetail","currentMagazineDetailTurret","currentMagazineTurret","currentMuzzle","currentNamespace","currentPilot","currentTask","currentTasks","currentThrowable","currentVisionMode","currentWaypoint","currentWeapon","currentWeaponMode","currentWeaponTurret","currentZeroing","cursorObject","cursorTarget","customChat","customRadio","customWaypointPosition","cutFadeOut","cutObj","cutRsc","cutText","damage","date","dateToNumber","dayTime","deActivateKey","debriefingText","debugFSM","debugLog","decayGraphValues","deg","delete3DENEntities","deleteAt","deleteCenter","deleteCollection","deleteEditorObject","deleteGroup","deleteGroupWhenEmpty","deleteIdentity","deleteLocation","deleteMarker","deleteMarkerLocal","deleteRange","deleteResources","deleteSite","deleteStatus","deleteTeam","deleteVehicle","deleteVehicleCrew","deleteWaypoint","detach","detectedMines","diag_activeMissionFSMs","diag_activeScripts","diag_activeSQFScripts","diag_activeSQSScripts","diag_allMissionEventHandlers","diag_captureFrame","diag_captureFrameToFile","diag_captureSlowFrame","diag_codePerformance","diag_deltaTime","diag_drawmode","diag_dumpCalltraceToLog","diag_dumpScriptAssembly","diag_dumpTerrainSynth","diag_dynamicSimulationEnd","diag_enable","diag_enabled","diag_exportConfig","diag_exportTerrainSVG","diag_fps","diag_fpsmin","diag_frameno","diag_getTerrainSegmentOffset","diag_lightNewLoad","diag_list","diag_localized","diag_log","diag_logSlowFrame","diag_mergeConfigFile","diag_recordTurretLimits","diag_resetFSM","diag_resetshapes","diag_scope","diag_setLightNew","diag_stacktrace","diag_tickTime","diag_toggle","dialog","diarySubjectExists","didJIP","didJIPOwner","difficulty","difficultyEnabled","difficultyEnabledRTD","difficultyOption","direction","directionStabilizationEnabled","directSay","disableAI","disableBrakes","disableCollisionWith","disableConversation","disableDebriefingStats","disableMapIndicators","disableNVGEquipment","disableRemoteSensors","disableSerialization","disableTIEquipment","disableUAVConnectability","disableUserInput","displayAddEventHandler","displayChild","displayCtrl","displayParent","displayRemoveAllEventHandlers","displayRemoveEventHandler","displaySetEventHandler","displayUniqueName","displayUpdate","dissolveTeam","distance","distance2D","distanceSqr","distributionRegion","do3DENAction","doArtilleryFire","doFire","doFollow","doFSM","doGetOut","doMove","doorPhase","doStop","doSuppressiveFire","doTarget","doWatch","drawArrow","drawEllipse","drawIcon","drawIcon3D","drawLaser","drawLine","drawLine3D","drawLink","drawLocation","drawPolygon","drawRectangle","drawTriangle","driver","drop","dynamicSimulationDistance","dynamicSimulationDistanceCoef","dynamicSimulationEnabled","dynamicSimulationSystemEnabled","echo","edit3DENMissionAttributes","editObject","editorSetEventHandler","effectiveCommander","elevatePeriscope","emptyPositions","enableAI","enableAIFeature","enableAimPrecision","enableAttack","enableAudioFeature","enableAutoStartUpRTD","enableAutoTrimRTD","enableCamShake","enableCaustics","enableChannel","enableCollisionWith","enableCopilot","enableDebriefingStats","enableDiagLegend","enableDirectionStabilization","enableDynamicSimulation","enableDynamicSimulationSystem","enableEndDialog","enableEngineArtillery","enableEnvironment","enableFatigue","enableGunLights","enableInfoPanelComponent","enableIRLasers","enableMimics","enablePersonTurret","enableRadio","enableReload","enableRopeAttach","enableSatNormalOnDetail","enableSaving","enableSentences","enableSimulation","enableSimulationGlobal","enableStamina","enableStressDamage","enableTeamSwitch","enableTraffic","enableUAVConnectability","enableUAVWaypoints","enableVehicleCargo","enableVehicleSensor","enableWeaponDisassembly","endLoadingScreen","endMission","engineOn","enginesIsOnRTD","enginesPowerRTD","enginesRpmRTD","enginesTorqueRTD","entities","environmentEnabled","environmentVolume","equipmentDisabled","estimatedEndServerTime","estimatedTimeLeft","evalObjectArgument","everyBackpack","everyContainer","exec","execEditorScript","execFSM","execVM","exp","expectedDestination","exportJIPMessages","eyeDirection","eyePos","face","faction","fadeEnvironment","fadeMusic","fadeRadio","fadeSound","fadeSpeech","failMission","fileExists","fillWeaponsFromPool","find","findAny","findCover","findDisplay","findEditorObject","findEmptyPosition","findEmptyPositionReady","findIf","findNearestEnemy","finishMissionInit","finite","fire","fireAtTarget","firstBackpack","flag","flagAnimationPhase","flagOwner","flagSide","flagTexture","flatten","fleeing","floor","flyInHeight","flyInHeightASL","focusedCtrl","fog","fogForecast","fogParams","forceAddUniform","forceAtPositionRTD","forceCadetDifficulty","forcedMap","forceEnd","forceFlagTexture","forceFollowRoad","forceGeneratorRTD","forceMap","forceRespawn","forceSpeed","forceUnicode","forceWalk","forceWeaponFire","forceWeatherChange","forEachMember","forEachMemberAgent","forEachMemberTeam","forgetTarget","format","formation","formationDirection","formationLeader","formationMembers","formationPosition","formationTask","formatText","formLeader","freeExtension","freeLook","fromEditor","fuel","fullCrew","gearIDCAmmoCount","gearSlotAmmoCount","gearSlotData","gestureState","get","get3DENActionState","get3DENAttribute","get3DENCamera","get3DENConnections","get3DENEntity","get3DENEntityID","get3DENGrid","get3DENIconsVisible","get3DENLayerEntities","get3DENLinesVisible","get3DENMissionAttribute","get3DENMouseOver","get3DENSelected","getAimingCoef","getAllEnv3DSoundControllers","getAllEnvSoundControllers","getAllHitPointsDamage","getAllOwnedMines","getAllPylonsInfo","getAllSoundControllers","getAllUnitTraits","getAmmoCargo","getAnimAimPrecision","getAnimSpeedCoef","getArray","getArtilleryAmmo","getArtilleryComputerSettings","getArtilleryETA","getAssetDLCInfo","getAssignedCuratorLogic","getAssignedCuratorUnit","getAttackTarget","getAudioOptionVolumes","getBackpackCargo","getBleedingRemaining","getBurningValue","getCalculatePlayerVisibilityByFriendly","getCameraViewDirection","getCargoIndex","getCenterOfMass","getClientState","getClientStateNumber","getCompatiblePylonMagazines","getConnectedUAV","getConnectedUAVUnit","getContainerMaxLoad","getCorpse","getCruiseControl","getCursorObjectParams","getCustomAimCoef","getCustomSoundController","getCustomSoundControllerCount","getDammage","getDebriefingText","getDescription","getDir","getDirVisual","getDiverState","getDLCAssetsUsage","getDLCAssetsUsageByName","getDLCs","getDLCUsageTime","getEditorCamera","getEditorMode","getEditorObjectScope","getElevationOffset","getEngineTargetRPMRTD","getEnv3DSoundController","getEnvSoundController","getEventHandlerInfo","getFatigue","getFieldManualStartPage","getForcedFlagTexture","getForcedSpeed","getFriend","getFSMVariable","getFuelCargo","getGraphValues","getGroupIcon","getGroupIconParams","getGroupIcons","getHideFrom","getHit","getHitIndex","getHitPointDamage","getItemCargo","getLighting","getLightingAt","getLoadedModsInfo","getMagazineCargo","getMarkerColor","getMarkerPos","getMarkerSize","getMarkerType","getMass","getMissionConfig","getMissionConfigValue","getMissionDLCs","getMissionLayerEntities","getMissionLayers","getMissionPath","getModelInfo","getMousePosition","getMusicPlayedTime","getNumber","getObjectArgument","getObjectChildren","getObjectDLC","getObjectFOV","getObjectID","getObjectMaterials","getObjectProxy","getObjectScale","getObjectTextures","getObjectType","getObjectViewDistance","getOpticsMode","getOrDefault","getOrDefaultCall","getOxygenRemaining","getPersonUsedDLCs","getPilotCameraDirection","getPilotCameraPosition","getPilotCameraRotation","getPilotCameraTarget","getPiPViewDistance","getPlateNumber","getPlayerChannel","getPlayerID","getPlayerScores","getPlayerUID","getPlayerVoNVolume","getPos","getPosASL","getPosASLVisual","getPosASLW","getPosATL","getPosATLVisual","getPosVisual","getPosWorld","getPosWorldVisual","getPylonMagazines","getRelDir","getRelPos","getRemoteSensorsDisabled","getRepairCargo","getResolution","getRoadInfo","getRotorBrakeRTD","getSensorTargets","getSensorThreats","getShadowDistance","getShotParents","getSlingLoad","getSoundController","getSoundControllerResult","getSpeed","getStamina","getStatValue","getSteamFriendsServers","getSubtitleOptions","getSuppression","getTerrainGrid","getTerrainHeight","getTerrainHeightASL","getTerrainInfo","getText","getTextRaw","getTextureInfo","getTextWidth","getTiParameters","getTotalDLCUsageTime","getTrimOffsetRTD","getTurretLimits","getTurretOpticsMode","getUnitFreefallInfo","getUnitLoadout","getUnitTrait","getUnloadInCombat","getUserInfo","getUserMFDText","getUserMFDValue","getVariable","getVehicleCargo","getVehicleTiPars","getWeaponCargo","getWeaponSway","getWingsOrientationRTD","getWingsPositionRTD","getWPPos","glanceAt","globalChat","globalRadio","goggles","goto","group","groupChat","groupFromNetId","groupIconSelectable","groupIconsVisible","groupID","groupOwner","groupRadio","groups","groupSelectedUnits","groupSelectUnit","gunner","gusts","halt","handgunItems","handgunMagazine","handgunWeapon","handsHit","hashValue","hasInterface","hasPilotCamera","hasWeapon","hcAllGroups","hcGroupParams","hcLeader","hcRemoveAllGroups","hcRemoveGroup","hcSelected","hcSelectGroup","hcSetGroup","hcShowBar","hcShownBar","headgear","hideBody","hideObject","hideObjectGlobal","hideSelection","hint","hintC","hintCadet","hintSilent","hmd","hostMission","htmlLoad","HUDMovementLevels","humidity","image","importAllGroups","importance","in","inArea","inAreaArray","incapacitatedState","inflame","inflamed","infoPanel","infoPanelComponentEnabled","infoPanelComponents","infoPanels","inGameUISetEventHandler","inheritsFrom","initAmbientLife","inPolygon","inputAction","inputController","inputMouse","inRangeOfArtillery","insert","insertEditorObject","intersect","is3DEN","is3DENMultiplayer","is3DENPreview","isAbleToBreathe","isActionMenuVisible","isAgent","isAimPrecisionEnabled","isAllowedCrewInImmobile","isArray","isAutoHoverOn","isAutonomous","isAutoStartUpEnabledRTD","isAutotest","isAutoTrimOnRTD","isAwake","isBleeding","isBurning","isClass","isCollisionLightOn","isCopilotEnabled","isDamageAllowed","isDedicated","isDLCAvailable","isEngineOn","isEqualRef","isEqualTo","isEqualType","isEqualTypeAll","isEqualTypeAny","isEqualTypeArray","isEqualTypeParams","isFilePatchingEnabled","isFinal","isFlashlightOn","isFlatEmpty","isForcedWalk","isFormationLeader","isGameFocused","isGamePaused","isGroupDeletedWhenEmpty","isHidden","isInRemainsCollector","isInstructorFigureEnabled","isIRLaserOn","isKeyActive","isKindOf","isLaserOn","isLightOn","isLocalized","isManualFire","isMarkedForCollection","isMissionProfileNamespaceLoaded","isMultiplayer","isMultiplayerSolo","isNil","isNotEqualRef","isNotEqualTo","isNull","isNumber","isObjectHidden","isObjectRTD","isOnRoad","isPiPEnabled","isPlayer","isRealTime","isRemoteExecuted","isRemoteExecutedJIP","isSaving","isSensorTargetConfirmed","isServer","isShowing3DIcons","isSimpleObject","isSprintAllowed","isStaminaEnabled","isSteamMission","isSteamOverlayEnabled","isStreamFriendlyUIEnabled","isStressDamageEnabled","isText","isTouchingGround","isTurnedOut","isTutHintsEnabled","isUAVConnectable","isUAVConnected","isUIContext","isUniformAllowed","isVehicleCargo","isVehicleRadarOn","isVehicleSensorEnabled","isWalking","isWeaponDeployed","isWeaponRested","itemCargo","items","itemsWithMagazines","join","joinAs","joinAsSilent","joinSilent","joinString","kbAddDatabase","kbAddDatabaseTargets","kbAddTopic","kbHasTopic","kbReact","kbRemoveTopic","kbTell","kbWasSaid","keyImage","keyName","keys","knowsAbout","land","landAt","landResult","language","laserTarget","lbAdd","lbClear","lbColor","lbColorRight","lbCurSel","lbData","lbDelete","lbIsSelected","lbPicture","lbPictureRight","lbSelection","lbSetColor","lbSetColorRight","lbSetCurSel","lbSetData","lbSetPicture","lbSetPictureColor","lbSetPictureColorDisabled","lbSetPictureColorSelected","lbSetPictureRight","lbSetPictureRightColor","lbSetPictureRightColorDisabled","lbSetPictureRightColorSelected","lbSetSelectColor","lbSetSelectColorRight","lbSetSelected","lbSetText","lbSetTextRight","lbSetTooltip","lbSetValue","lbSize","lbSort","lbSortBy","lbSortByValue","lbText","lbTextRight","lbTooltip","lbValue","leader","leaderboardDeInit","leaderboardGetRows","leaderboardInit","leaderboardRequestRowsFriends","leaderboardRequestRowsGlobal","leaderboardRequestRowsGlobalAroundUser","leaderboardsRequestUploadScore","leaderboardsRequestUploadScoreKeepBest","leaderboardState","leaveVehicle","libraryCredits","libraryDisclaimers","lifeState","lightAttachObject","lightDetachObject","lightIsOn","lightnings","limitSpeed","linearConversion","lineIntersects","lineIntersectsObjs","lineIntersectsSurfaces","lineIntersectsWith","linkItem","list","listObjects","listRemoteTargets","listVehicleSensors","ln","lnbAddArray","lnbAddColumn","lnbAddRow","lnbClear","lnbColor","lnbColorRight","lnbCurSelRow","lnbData","lnbDeleteColumn","lnbDeleteRow","lnbGetColumnsPosition","lnbPicture","lnbPictureRight","lnbSetColor","lnbSetColorRight","lnbSetColumnsPos","lnbSetCurSelRow","lnbSetData","lnbSetPicture","lnbSetPictureColor","lnbSetPictureColorRight","lnbSetPictureColorSelected","lnbSetPictureColorSelectedRight","lnbSetPictureRight","lnbSetText","lnbSetTextRight","lnbSetTooltip","lnbSetValue","lnbSize","lnbSort","lnbSortBy","lnbSortByValue","lnbText","lnbTextRight","lnbValue","load","loadAbs","loadBackpack","loadConfig","loadFile","loadGame","loadIdentity","loadMagazine","loadOverlay","loadStatus","loadUniform","loadVest","localize","localNamespace","locationPosition","lock","lockCameraTo","lockCargo","lockDriver","locked","lockedCameraTo","lockedCargo","lockedDriver","lockedInventory","lockedTurret","lockIdentity","lockInventory","lockTurret","lockWp","log","logEntities","logNetwork","logNetworkTerminate","lookAt","lookAtPos","magazineCargo","magazines","magazinesAllTurrets","magazinesAmmo","magazinesAmmoCargo","magazinesAmmoFull","magazinesDetail","magazinesDetailBackpack","magazinesDetailUniform","magazinesDetailVest","magazinesTurret","magazineTurretAmmo","mapAnimAdd","mapAnimClear","mapAnimCommit","mapAnimDone","mapCenterOnCamera","mapGridPosition","markAsFinishedOnSteam","markerAlpha","markerBrush","markerChannel","markerColor","markerDir","markerPolyline","markerPos","markerShadow","markerShape","markerSize","markerText","markerType","matrixMultiply","matrixTranspose","max","maxLoad","members","menuAction","menuAdd","menuChecked","menuClear","menuCollapse","menuData","menuDelete","menuEnable","menuEnabled","menuExpand","menuHover","menuPicture","menuSetAction","menuSetCheck","menuSetData","menuSetPicture","menuSetShortcut","menuSetText","menuSetURL","menuSetValue","menuShortcut","menuShortcutText","menuSize","menuSort","menuText","menuURL","menuValue","merge","min","mineActive","mineDetectedBy","missileTarget","missileTargetPos","missionConfigFile","missionDifficulty","missionEnd","missionName","missionNameSource","missionNamespace","missionProfileNamespace","missionStart","missionVersion","mod","modelToWorld","modelToWorldVisual","modelToWorldVisualWorld","modelToWorldWorld","modParams","moonIntensity","moonPhase","morale","move","move3DENCamera","moveInAny","moveInCargo","moveInCommander","moveInDriver","moveInGunner","moveInTurret","moveObjectToEnd","moveOut","moveTime","moveTo","moveToCompleted","moveToFailed","musicVolume","name","namedProperties","nameSound","nearEntities","nearestBuilding","nearestLocation","nearestLocations","nearestLocationWithDubbing","nearestMines","nearestObject","nearestObjects","nearestTerrainObjects","nearObjects","nearObjectsReady","nearRoads","nearSupplies","nearTargets","needReload","needService","netId","netObjNull","newOverlay","nextMenuItemIndex","nextWeatherChange","nMenuItems","not","numberOfEnginesRTD","numberToDate","objectCurators","objectFromNetId","objectParent","objStatus","onBriefingGroup","onBriefingNotes","onBriefingPlan","onBriefingTeamSwitch","onCommandModeChanged","onDoubleClick","onEachFrame","onGroupIconClick","onGroupIconOverEnter","onGroupIconOverLeave","onHCGroupSelectionChanged","onMapSingleClick","onPlayerConnected","onPlayerDisconnected","onPreloadFinished","onPreloadStarted","onShowNewObject","onTeamSwitch","openCuratorInterface","openDLCPage","openGPS","openMap","openSteamApp","openYoutubeVideo","or","orderGetIn","overcast","overcastForecast","owner","param","params","parseNumber","parseSimpleArray","parseText","parsingNamespace","particlesQuality","periscopeElevation","pickWeaponPool","pitch","pixelGrid","pixelGridBase","pixelGridNoUIScale","pixelH","pixelW","playableSlotsNumber","playableUnits","playAction","playActionNow","player","playerRespawnTime","playerSide","playersNumber","playGesture","playMission","playMove","playMoveNow","playMusic","playScriptedMission","playSound","playSound3D","playSoundUI","pose","position","positionCameraToWorld","posScreenToWorld","posWorldToScreen","ppEffectAdjust","ppEffectCommit","ppEffectCommitted","ppEffectCreate","ppEffectDestroy","ppEffectEnable","ppEffectEnabled","ppEffectForceInNVG","precision","preloadCamera","preloadObject","preloadSound","preloadTitleObj","preloadTitleRsc","preprocessFile","preprocessFileLineNumbers","primaryWeapon","primaryWeaponItems","primaryWeaponMagazine","priority","processDiaryLink","productVersion","profileName","profileNamespace","profileNameSteam","progressLoadingScreen","progressPosition","progressSetPosition","publicVariable","publicVariableClient","publicVariableServer","pushBack","pushBackUnique","putWeaponPool","queryItemsPool","queryMagazinePool","queryWeaponPool","rad","radioChannelAdd","radioChannelCreate","radioChannelInfo","radioChannelRemove","radioChannelSetCallSign","radioChannelSetLabel","radioEnabled","radioVolume","rain","rainbow","rainParams","random","rank","rankId","rating","rectangular","regexFind","regexMatch","regexReplace","registeredTasks","registerTask","reload","reloadEnabled","remoteControl","remoteExec","remoteExecCall","remoteExecutedOwner","remove3DENConnection","remove3DENEventHandler","remove3DENLayer","removeAction","removeAll3DENEventHandlers","removeAllActions","removeAllAssignedItems","removeAllBinocularItems","removeAllContainers","removeAllCuratorAddons","removeAllCuratorCameraAreas","removeAllCuratorEditingAreas","removeAllEventHandlers","removeAllHandgunItems","removeAllItems","removeAllItemsWithMagazines","removeAllMissionEventHandlers","removeAllMPEventHandlers","removeAllMusicEventHandlers","removeAllOwnedMines","removeAllPrimaryWeaponItems","removeAllSecondaryWeaponItems","removeAllUserActionEventHandlers","removeAllWeapons","removeBackpack","removeBackpackGlobal","removeBinocularItem","removeCuratorAddons","removeCuratorCameraArea","removeCuratorEditableObjects","removeCuratorEditingArea","removeDiaryRecord","removeDiarySubject","removeDrawIcon","removeDrawLinks","removeEventHandler","removeFromRemainsCollector","removeGoggles","removeGroupIcon","removeHandgunItem","removeHeadgear","removeItem","removeItemFromBackpack","removeItemFromUniform","removeItemFromVest","removeItems","removeMagazine","removeMagazineGlobal","removeMagazines","removeMagazinesTurret","removeMagazineTurret","removeMenuItem","removeMissionEventHandler","removeMPEventHandler","removeMusicEventHandler","removeOwnedMine","removePrimaryWeaponItem","removeSecondaryWeaponItem","removeSimpleTask","removeSwitchableUnit","removeTeamMember","removeUniform","removeUserActionEventHandler","removeVest","removeWeapon","removeWeaponAttachmentCargo","removeWeaponCargo","removeWeaponGlobal","removeWeaponTurret","reportRemoteTarget","requiredVersion","resetCamShake","resetSubgroupDirection","resize","resources","respawnVehicle","restartEditorCamera","reveal","revealMine","reverse","reversedMouseY","roadAt","roadsConnectedTo","roleDescription","ropeAttachedObjects","ropeAttachedTo","ropeAttachEnabled","ropeAttachTo","ropeCreate","ropeCut","ropeDestroy","ropeDetach","ropeEndPosition","ropeLength","ropes","ropesAttachedTo","ropeSegments","ropeUnwind","ropeUnwound","rotorsForcesRTD","rotorsRpmRTD","round","runInitScript","safeZoneH","safeZoneW","safeZoneWAbs","safeZoneX","safeZoneXAbs","safeZoneY","save3DENInventory","saveGame","saveIdentity","saveJoysticks","saveMissionProfileNamespace","saveOverlay","saveProfileNamespace","saveStatus","saveVar","savingEnabled","say","say2D","say3D","scopeName","score","scoreSide","screenshot","screenToWorld","scriptDone","scriptName","scudState","secondaryWeapon","secondaryWeaponItems","secondaryWeaponMagazine","select","selectBestPlaces","selectDiarySubject","selectedEditorObjects","selectEditorObject","selectionNames","selectionPosition","selectionVectorDirAndUp","selectLeader","selectMax","selectMin","selectNoPlayer","selectPlayer","selectRandom","selectRandomWeighted","selectWeapon","selectWeaponTurret","sendAUMessage","sendSimpleCommand","sendTask","sendTaskResult","sendUDPMessage","sentencesEnabled","serverCommand","serverCommandAvailable","serverCommandExecutable","serverName","serverNamespace","serverTime","set","set3DENAttribute","set3DENAttributes","set3DENGrid","set3DENIconsVisible","set3DENLayer","set3DENLinesVisible","set3DENLogicType","set3DENMissionAttribute","set3DENMissionAttributes","set3DENModelsVisible","set3DENObjectType","set3DENSelected","setAccTime","setActualCollectiveRTD","setAirplaneThrottle","setAirportSide","setAmmo","setAmmoCargo","setAmmoOnPylon","setAnimSpeedCoef","setAperture","setApertureNew","setArmoryPoints","setAttributes","setAutonomous","setBehaviour","setBehaviourStrong","setBleedingRemaining","setBrakesRTD","setCameraInterest","setCamShakeDefParams","setCamShakeParams","setCamUseTi","setCaptive","setCenterOfMass","setCollisionLight","setCombatBehaviour","setCombatMode","setCompassOscillation","setConvoySeparation","setCruiseControl","setCuratorCameraAreaCeiling","setCuratorCoef","setCuratorEditingAreaType","setCuratorWaypointCost","setCurrentChannel","setCurrentTask","setCurrentWaypoint","setCustomAimCoef","SetCustomMissionData","setCustomSoundController","setCustomWeightRTD","setDamage","setDammage","setDate","setDebriefingText","setDefaultCamera","setDestination","setDetailMapBlendPars","setDiaryRecordText","setDiarySubjectPicture","setDir","setDirection","setDrawIcon","setDriveOnPath","setDropInterval","setDynamicSimulationDistance","setDynamicSimulationDistanceCoef","setEditorMode","setEditorObjectScope","setEffectCondition","setEffectiveCommander","setEngineRpmRTD","setFace","setFaceanimation","setFatigue","setFeatureType","setFlagAnimationPhase","setFlagOwner","setFlagSide","setFlagTexture","setFog","setForceGeneratorRTD","setFormation","setFormationTask","setFormDir","setFriend","setFromEditor","setFSMVariable","setFuel","setFuelCargo","setGroupIcon","setGroupIconParams","setGroupIconsSelectable","setGroupIconsVisible","setGroupid","setGroupIdGlobal","setGroupOwner","setGusts","setHideBehind","setHit","setHitIndex","setHitPointDamage","setHorizonParallaxCoef","setHUDMovementLevels","setHumidity","setIdentity","setImportance","setInfoPanel","setLeader","setLightAmbient","setLightAttenuation","setLightBrightness","setLightColor","setLightConePars","setLightDayLight","setLightFlareMaxDistance","setLightFlareSize","setLightIntensity","setLightIR","setLightnings","setLightUseFlare","setLightVolumeShape","setLocalWindParams","setMagazineTurretAmmo","setMarkerAlpha","setMarkerAlphaLocal","setMarkerBrush","setMarkerBrushLocal","setMarkerColor","setMarkerColorLocal","setMarkerDir","setMarkerDirLocal","setMarkerPolyline","setMarkerPolylineLocal","setMarkerPos","setMarkerPosLocal","setMarkerShadow","setMarkerShadowLocal","setMarkerShape","setMarkerShapeLocal","setMarkerSize","setMarkerSizeLocal","setMarkerText","setMarkerTextLocal","setMarkerType","setMarkerTypeLocal","setMass","setMaxLoad","setMimic","setMissileTarget","setMissileTargetPos","setMousePosition","setMusicEffect","setMusicEventHandler","setName","setNameSound","setObjectArguments","setObjectMaterial","setObjectMaterialGlobal","setObjectProxy","setObjectScale","setObjectTexture","setObjectTextureGlobal","setObjectViewDistance","setOpticsMode","setOvercast","setOwner","setOxygenRemaining","setParticleCircle","setParticleClass","setParticleFire","setParticleParams","setParticleRandom","setPilotCameraDirection","setPilotCameraRotation","setPilotCameraTarget","setPilotLight","setPiPEffect","setPiPViewDistance","setPitch","setPlateNumber","setPlayable","setPlayerRespawnTime","setPlayerVoNVolume","setPos","setPosASL","setPosASL2","setPosASLW","setPosATL","setPosition","setPosWorld","setPylonLoadout","setPylonsPriority","setRadioMsg","setRain","setRainbow","setRandomLip","setRank","setRectangular","setRepairCargo","setRotorBrakeRTD","setShadowDistance","setShotParents","setSide","setSimpleTaskAlwaysVisible","setSimpleTaskCustomData","setSimpleTaskDescription","setSimpleTaskDestination","setSimpleTaskTarget","setSimpleTaskType","setSimulWeatherLayers","setSize","setSkill","setSlingLoad","setSoundEffect","setSpeaker","setSpeech","setSpeedMode","setStamina","setStaminaScheme","setStatValue","setSuppression","setSystemOfUnits","setTargetAge","setTaskMarkerOffset","setTaskResult","setTaskState","setTerrainGrid","setTerrainHeight","setText","setTimeMultiplier","setTiParameter","setTitleEffect","setTowParent","setTrafficDensity","setTrafficDistance","setTrafficGap","setTrafficSpeed","setTriggerActivation","setTriggerArea","setTriggerInterval","setTriggerStatements","setTriggerText","setTriggerTimeout","setTriggerType","setTurretLimits","setTurretOpticsMode","setType","setUnconscious","setUnitAbility","setUnitCombatMode","setUnitFreefallHeight","setUnitLoadout","setUnitPos","setUnitPosWeak","setUnitRank","setUnitRecoilCoefficient","setUnitTrait","setUnloadInCombat","setUserActionText","setUserMFDText","setUserMFDValue","setVariable","setVectorDir","setVectorDirAndUp","setVectorUp","setVehicleAmmo","setVehicleAmmoDef","setVehicleArmor","setVehicleCargo","setVehicleId","setVehicleLock","setVehiclePosition","setVehicleRadar","setVehicleReceiveRemoteTargets","setVehicleReportOwnPosition","setVehicleReportRemoteTargets","setVehicleTiPars","setVehicleVarName","setVelocity","setVelocityModelSpace","setVelocityTransformation","setViewDistance","setVisibleIfTreeCollapsed","setWantedRPMRTD","setWaves","setWaypointBehaviour","setWaypointCombatMode","setWaypointCompletionRadius","setWaypointDescription","setWaypointForceBehaviour","setWaypointFormation","setWaypointHousePosition","setWaypointLoiterAltitude","setWaypointLoiterRadius","setWaypointLoiterType","setWaypointName","setWaypointPosition","setWaypointScript","setWaypointSpeed","setWaypointStatements","setWaypointTimeout","setWaypointType","setWaypointVisible","setWeaponReloadingTime","setWeaponZeroing","setWind","setWindDir","setWindForce","setWindStr","setWingForceScaleRTD","setWPPos","show3DIcons","showChat","showCinemaBorder","showCommandingMenu","showCompass","showCuratorCompass","showGps","showHUD","showLegend","showMap","shownArtilleryComputer","shownChat","shownCompass","shownCuratorCompass","showNewEditorObject","shownGps","shownHUD","shownMap","shownPad","shownRadio","shownScoretable","shownSubtitles","shownUAVFeed","shownWarrant","shownWatch","showPad","showRadio","showScoretable","showSubtitles","showUAVFeed","showWarrant","showWatch","showWaypoint","showWaypoints","side","sideChat","sideRadio","simpleTasks","simulationEnabled","simulCloudDensity","simulCloudOcclusion","simulInClouds","simulWeatherSync","sin","size","sizeOf","skill","skillFinal","skipTime","sleep","sliderPosition","sliderRange","sliderSetPosition","sliderSetRange","sliderSetSpeed","sliderSpeed","slingLoadAssistantShown","soldierMagazines","someAmmo","sort","soundVolume","spawn","speaker","speechVolume","speed","speedMode","splitString","sqrt","squadParams","stance","startLoadingScreen","stop","stopEngineRTD","stopped","str","sunOrMoon","supportInfo","suppressFor","surfaceIsWater","surfaceNormal","surfaceTexture","surfaceType","swimInDepth","switchableUnits","switchAction","switchCamera","switchGesture","switchLight","switchMove","synchronizedObjects","synchronizedTriggers","synchronizedWaypoints","synchronizeObjectsAdd","synchronizeObjectsRemove","synchronizeTrigger","synchronizeWaypoint","systemChat","systemOfUnits","systemTime","systemTimeUTC","tan","targetKnowledge","targets","targetsAggregate","targetsQuery","taskAlwaysVisible","taskChildren","taskCompleted","taskCustomData","taskDescription","taskDestination","taskHint","taskMarkerOffset","taskName","taskParent","taskResult","taskState","taskType","teamMember","teamName","teams","teamSwitch","teamSwitchEnabled","teamType","terminate","terrainIntersect","terrainIntersectASL","terrainIntersectAtASL","text","textLog","textLogFormat","tg","time","timeMultiplier","titleCut","titleFadeOut","titleObj","titleRsc","titleText","toArray","toFixed","toLower","toLowerANSI","toString","toUpper","toUpperANSI","triggerActivated","triggerActivation","triggerAmmo","triggerArea","triggerAttachedVehicle","triggerAttachObject","triggerAttachVehicle","triggerDynamicSimulation","triggerInterval","triggerStatements","triggerText","triggerTimeout","triggerTimeoutCurrent","triggerType","trim","turretLocal","turretOwner","turretUnit","tvAdd","tvClear","tvCollapse","tvCollapseAll","tvCount","tvCurSel","tvData","tvDelete","tvExpand","tvExpandAll","tvIsSelected","tvPicture","tvPictureRight","tvSelection","tvSetColor","tvSetCurSel","tvSetData","tvSetPicture","tvSetPictureColor","tvSetPictureColorDisabled","tvSetPictureColorSelected","tvSetPictureRight","tvSetPictureRightColor","tvSetPictureRightColorDisabled","tvSetPictureRightColorSelected","tvSetSelectColor","tvSetSelected","tvSetText","tvSetTooltip","tvSetValue","tvSort","tvSortAll","tvSortByValue","tvSortByValueAll","tvText","tvTooltip","tvValue","type","typeName","typeOf","UAVControl","uiNamespace","uiSleep","unassignCurator","unassignItem","unassignTeam","unassignVehicle","underwater","uniform","uniformContainer","uniformItems","uniformMagazines","uniqueUnitItems","unitAddons","unitAimPosition","unitAimPositionVisual","unitBackpack","unitCombatMode","unitIsUAV","unitPos","unitReady","unitRecoilCoefficient","units","unitsBelowHeight","unitTurret","unlinkItem","unlockAchievement","unregisterTask","updateDrawIcon","updateMenuItem","updateObjectTree","useAIOperMapObstructionTest","useAISteeringComponent","useAudioTimeForMoves","userInputDisabled","values","vectorAdd","vectorCos","vectorCrossProduct","vectorDiff","vectorDir","vectorDirVisual","vectorDistance","vectorDistanceSqr","vectorDotProduct","vectorFromTo","vectorLinearConversion","vectorMagnitude","vectorMagnitudeSqr","vectorModelToWorld","vectorModelToWorldVisual","vectorMultiply","vectorNormalized","vectorUp","vectorUpVisual","vectorWorldToModel","vectorWorldToModelVisual","vehicle","vehicleCargoEnabled","vehicleChat","vehicleMoveInfo","vehicleRadio","vehicleReceiveRemoteTargets","vehicleReportOwnPosition","vehicleReportRemoteTargets","vehicles","vehicleVarName","velocity","velocityModelSpace","verifySignature","vest","vestContainer","vestItems","vestMagazines","viewDistance","visibleCompass","visibleGps","visibleMap","visiblePosition","visiblePositionASL","visibleScoretable","visibleWatch","waves","waypointAttachedObject","waypointAttachedVehicle","waypointAttachObject","waypointAttachVehicle","waypointBehaviour","waypointCombatMode","waypointCompletionRadius","waypointDescription","waypointForceBehaviour","waypointFormation","waypointHousePosition","waypointLoiterAltitude","waypointLoiterRadius","waypointLoiterType","waypointName","waypointPosition","waypoints","waypointScript","waypointsEnabledUAV","waypointShow","waypointSpeed","waypointStatements","waypointTimeout","waypointTimeoutCurrent","waypointType","waypointVisible","weaponAccessories","weaponAccessoriesCargo","weaponCargo","weaponDirection","weaponInertia","weaponLowered","weaponReloadingTime","weapons","weaponsInfo","weaponsItems","weaponsItemsCargo","weaponState","weaponsTurret","weightRTD","WFSideText","wind","windDir","windRTD","windStr","wingsForcesRTD","worldName","worldSize","worldToModel","worldToModelVisual","worldToScreen"],literal:["blufor","civilian","configNull","controlNull","displayNull","diaryRecordNull","east","endl","false","grpNull","independent","lineBreak","locationNull","nil","objNull","opfor","pi","resistance","scriptNull","sideAmbientLife","sideEmpty","sideEnemy","sideFriendly","sideLogic","sideUnknown","taskNull","teamMemberNull","true","west"]},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.NUMBER_MODE,{className:"variable",begin:/\b_+[a-zA-Z]\w*/},{className:"title",begin:/[a-zA-Z][a-zA-Z_0-9]*_fnc_[a-zA-Z_0-9]+/},t,n],illegal:[/\$[^a-fA-F0-9]/,/\w\$/,/\?/,/@/,/ \| /,/[a-zA-Z_]\./,/\:\=/,/\[\:/]}}),iq)),r4.registerLanguage("sql",(iQ||(iQ=1,iW=function(e){let t=e.regex,n=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],r=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],o=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter(e=>!r.includes(e)),l={begin:t.concat(/\b/,t.either(...r),/\s*\(/),relevance:0,keywords:{built_in:r}};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:function(e,{exceptions:t,when:n}={}){return t=t||[],e.map(e=>e.match(/\|\d+$/)||t.includes(e)?e:n(e)?`${e}|0`:e)}(o,{when:e=>e.length<3}),literal:a,type:i,built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]},contains:[{begin:t.either(...s),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:o.concat(s),literal:a,type:i}},{className:"type",begin:t.either("double precision","large object","with timezone","without timezone")},l,{className:"variable",begin:/@[a-z0-9][a-z0-9_]*/},{className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}),iW)),r4.registerLanguage("stan",(ij||(ij=1,iK=function(e){let t=e.regex,n=["bernoulli","bernoulli_logit","bernoulli_logit_glm","beta","beta_binomial","beta_proportion","binomial","binomial_logit","categorical","categorical_logit","categorical_logit_glm","cauchy","chi_square","dirichlet","discrete_range","double_exponential","exp_mod_normal","exponential","frechet","gamma","gaussian_dlm_obs","gumbel","hmm_latent","hypergeometric","inv_chi_square","inv_gamma","inv_wishart","inv_wishart_cholesky","lkj_corr","lkj_corr_cholesky","logistic","loglogistic","lognormal","multi_gp","multi_gp_cholesky","multinomial","multinomial_logit","multi_normal","multi_normal_cholesky","multi_normal_prec","multi_student_cholesky_t","multi_student_t","multi_student_t_cholesky","neg_binomial","neg_binomial_2","neg_binomial_2_log","neg_binomial_2_log_glm","normal","normal_id_glm","ordered_logistic","ordered_logistic_glm","ordered_probit","pareto","pareto_type_2","poisson","poisson_log","poisson_log_glm","rayleigh","scaled_inv_chi_square","skew_double_exponential","skew_normal","std_normal","std_normal_log","student_t","uniform","von_mises","weibull","wiener","wishart","wishart_cholesky"],a=e.COMMENT(/\/\*/,/\*\//,{relevance:0,contains:[{scope:"doctag",match:/@(return|param)/}]}),i={scope:"meta",begin:/#include\b/,end:/$/,contains:[{match:/[a-z][a-z-._]+/,scope:"string"},e.C_LINE_COMMENT_MODE]},r=["lower","upper","offset","multiplier"];return{name:"Stan",aliases:["stanfuncs"],keywords:{$pattern:e.IDENT_RE,title:["functions","model","data","parameters","quantities","transformed","generated"],type:["array","tuple","complex","int","real","vector","complex_vector","ordered","positive_ordered","simplex","unit_vector","row_vector","complex_row_vector","matrix","complex_matrix","cholesky_factor_corr|10","cholesky_factor_cov|10","corr_matrix|10","cov_matrix|10","void"],keyword:["for","in","if","else","while","break","continue","return"],built_in:["abs","acos","acosh","add_diag","algebra_solver","algebra_solver_newton","append_array","append_col","append_row","asin","asinh","atan","atan2","atanh","bessel_first_kind","bessel_second_kind","binary_log_loss","block","cbrt","ceil","chol2inv","cholesky_decompose","choose","col","cols","columns_dot_product","columns_dot_self","complex_schur_decompose","complex_schur_decompose_t","complex_schur_decompose_u","conj","cos","cosh","cov_exp_quad","crossprod","csr_extract","csr_extract_u","csr_extract_v","csr_extract_w","csr_matrix_times_vector","csr_to_dense_matrix","cumulative_sum","dae","dae_tol","determinant","diag_matrix","diagonal","diag_post_multiply","diag_pre_multiply","digamma","dims","distance","dot_product","dot_self","eigendecompose","eigendecompose_sym","eigenvalues","eigenvalues_sym","eigenvectors","eigenvectors_sym","erf","erfc","exp","exp2","expm1","falling_factorial","fdim","fft","fft2","floor","fma","fmax","fmin","fmod","gamma_p","gamma_q","generalized_inverse","get_imag","get_real","head","hmm_hidden_state_prob","hmm_marginal","hypot","identity_matrix","inc_beta","integrate_1d","integrate_ode","integrate_ode_adams","integrate_ode_bdf","integrate_ode_rk45","int_step","inv","inv_cloglog","inv_erfc","inverse","inverse_spd","inv_fft","inv_fft2","inv_inc_beta","inv_logit","inv_Phi","inv_sqrt","inv_square","is_inf","is_nan","lambert_w0","lambert_wm1","lbeta","lchoose","ldexp","lgamma","linspaced_array","linspaced_int_array","linspaced_row_vector","linspaced_vector","lmgamma","lmultiply","log","log1m","log1m_exp","log1m_inv_logit","log1p","log1p_exp","log_determinant","log_diff_exp","log_falling_factorial","log_inv_logit","log_inv_logit_diff","logit","log_mix","log_modified_bessel_first_kind","log_rising_factorial","log_softmax","log_sum_exp","machine_precision","map_rect","matrix_exp","matrix_exp_multiply","matrix_power","max","mdivide_left_spd","mdivide_left_tri_low","mdivide_right_spd","mdivide_right_tri_low","mean","min","modified_bessel_first_kind","modified_bessel_second_kind","multiply_lower_tri_self_transpose","negative_infinity","norm","norm1","norm2","not_a_number","num_elements","ode_adams","ode_adams_tol","ode_adjoint_tol_ctl","ode_bdf","ode_bdf_tol","ode_ckrk","ode_ckrk_tol","ode_rk45","ode_rk45_tol","one_hot_array","one_hot_int_array","one_hot_row_vector","one_hot_vector","ones_array","ones_int_array","ones_row_vector","ones_vector","owens_t","Phi","Phi_approx","polar","positive_infinity","pow","print","prod","proj","qr","qr_Q","qr_R","qr_thin","qr_thin_Q","qr_thin_R","quad_form","quad_form_diag","quad_form_sym","quantile","rank","reduce_sum","reject","rep_array","rep_matrix","rep_row_vector","rep_vector","reverse","rising_factorial","round","row","rows","rows_dot_product","rows_dot_self","scale_matrix_exp_multiply","sd","segment","sin","singular_values","sinh","size","softmax","sort_asc","sort_desc","sort_indices_asc","sort_indices_desc","sqrt","square","squared_distance","step","sub_col","sub_row","sum","svd","svd_U","svd_V","symmetrize_from_lower_tri","tail","tan","tanh","target","tcrossprod","tgamma","to_array_1d","to_array_2d","to_complex","to_int","to_matrix","to_row_vector","to_vector","trace","trace_gen_quad_form","trace_quad_form","trigamma","trunc","uniform_simplex","variance","zeros_array","zeros_int_array","zeros_row_vector"]},contains:[e.C_LINE_COMMENT_MODE,i,e.HASH_COMMENT_MODE,a,{scope:"built_in",match:/\s(pi|e|sqrt2|log2|log10)(?=\()/,relevance:0},{match:t.concat(/[<,]\s*/,t.either(...r),/\s*=/),keywords:r},{scope:"keyword",match:/\btarget(?=\s*\+=)/},{match:[/~\s*/,t.either(...n),/(?:\(\))/,/\s*T(?=\s*\[)/],scope:{2:"built_in",4:"keyword"}},{scope:"built_in",keywords:n,begin:t.concat(/\w*/,t.either(...n),/(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])/)},{begin:[/~/,/\s*/,t.concat(t.either(...n),/(?=\s*[\(.*\)])/)],scope:{3:"built_in"}},{begin:[/~/,/\s*\w+(?=\s*[\(.*\)])/,"(?!.*/\b("+t.either(...n)+")\b)"],scope:{2:"title.function"}},{scope:"title.function",begin:/\w*(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])/},{scope:"number",match:t.concat(/(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)/,/(?:[eE][+-]?\d+(?:_\d+)*)?i?(?!\w)/),relevance:0},{scope:"string",begin:/"/,end:/"/}]}}),iK)),r4.registerLanguage("stata",(iZ||(iZ=1,iX=function(e){return{name:"Stata",aliases:["do","ado"],case_insensitive:!0,keywords:"if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey bias binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 bubble bubbleplot ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d|0 datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e|0 ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error esize est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 forest forestplot form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate funnel funnelplot g|0 gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h|0 hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l|0 la lab labbe labbeplot labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m|0 ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize menl meqparse mer merg merge meta mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n|0 nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trimfill trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u|0 unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5",contains:[{className:"symbol",begin:/`[a-zA-Z0-9_]+'/},{className:"variable",begin:/\$\{?[a-zA-Z0-9_]+\}?/,relevance:0},{className:"string",variants:[{begin:'`"[^\r\n]*?"\''},{begin:'"[^\r\n"]*"'}]},{className:"built_in",variants:[{begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\()"}]},e.COMMENT("^[ ]*\\*.*$",!1),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}),iX)),r4.registerLanguage("step21",(i0||(i0=1,iJ=function(e){return{name:"STEP Part 21",aliases:["p21","step","stp"],case_insensitive:!0,keywords:{$pattern:"[A-Z_][A-Z0-9_.]*",keyword:["HEADER","ENDSEC","DATA"]},contains:[{className:"meta",begin:"ISO-10303-21;",relevance:10},{className:"meta",begin:"END-ISO-10303-21;",relevance:10},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*!","\\*/"),e.C_NUMBER_MODE,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"symbol",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}]}}),iJ)),r4.registerLanguage("stylus",function(){if(i2)return i1;i2=1;let e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],n=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],a=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],i=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();return i1=function(r){let s;let o={IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:(s=r).C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[s.APOS_STRING_MODE,s.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:s.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}},l={className:"variable",begin:"\\$"+r.IDENT_RE},c="(?=[.\\s\\n[:,(])";return{name:"Stylus",aliases:["styl"],case_insensitive:!1,keywords:"if else for in",illegal:"(\\?|(\\bReturn\\b)|(\\bEnd\\b)|(\\bend\\b)|(\\bdef\\b)|;|#\\s|\\*\\s|===\\s|\\||%)",contains:[r.QUOTE_STRING_MODE,r.APOS_STRING_MODE,r.C_LINE_COMMENT_MODE,r.C_BLOCK_COMMENT_MODE,o.HEXCOLOR,{begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"+c,className:"selector-class"},{begin:"#[a-zA-Z][a-zA-Z0-9_-]*"+c,className:"selector-id"},{begin:"\\b("+e.join("|")+")"+c,className:"selector-tag"},{className:"selector-pseudo",begin:"&?:("+n.join("|")+")"+c},{className:"selector-pseudo",begin:"&?:(:)?("+a.join("|")+")"+c},o.ATTRIBUTE_SELECTOR_MODE,{className:"keyword",begin:/@media/,starts:{end:/[{;}]/,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},contains:[o.CSS_NUMBER_MODE]}},{className:"keyword",begin:"@((-(o|moz|ms|webkit)-)?(charset|css|debug|extend|font-face|for|import|include|keyframes|media|mixin|page|warn|while))\\b"},l,o.CSS_NUMBER_MODE,{className:"function",begin:"^[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)",illegal:"[\\n]",returnBegin:!0,contains:[{className:"title",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"},{className:"params",begin:/\(/,end:/\)/,contains:[o.HEXCOLOR,l,r.APOS_STRING_MODE,o.CSS_NUMBER_MODE,r.QUOTE_STRING_MODE]}]},o.CSS_VARIABLE,{className:"attribute",begin:"\\b("+i.join("|")+")\\b",starts:{end:/;|$/,contains:[o.HEXCOLOR,l,r.APOS_STRING_MODE,r.QUOTE_STRING_MODE,o.CSS_NUMBER_MODE,r.C_BLOCK_COMMENT_MODE,o.IMPORTANT,o.FUNCTION_DISPATCH],illegal:/\./,relevance:0}},o.FUNCTION_DISPATCH]}}}()),r4.registerLanguage("subunit",i9?i3:(i9=1,i3=function(e){return{name:"SubUnit",case_insensitive:!0,contains:[{className:"string",begin:"\\[\n(multipart)?",end:"\\]\n"},{className:"string",begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"},{className:"string",begin:"(\\+|-)\\d+"},{className:"keyword",relevance:10,variants:[{begin:"^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?"},{begin:"^progress(:?)(\\s+)?(pop|push)?"},{begin:"^tags:"},{begin:"^time:"}]}]}})),r4.registerLanguage("swift",function(){if(i6)return i4;function e(e){return e?"string"==typeof e?e:e.source:null}function t(e){return n("(?=",e,")")}function n(...t){return t.map(t=>e(t)).join("")}function a(...t){return"("+(function(e){let t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(t).capture?"":"?:")+t.map(t=>e(t)).join("|")+")"}i6=1;let i=e=>n(/\b/,e,/\w$/.test(e)?/\b/:/\B/),r=["Protocol","Type"].map(i),s=["init","self"].map(i),o=["Any","Self"],l=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],c=["false","nil","true"],d=["assignment","associativity","higherThan","left","lowerThan","none","right"],_=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],u=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],m=a(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),p=a(m,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),g=n(m,p,"*"),E=a(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),S=a(E,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),b=n(E,S,"*"),h=n(/[A-Z]/,S,"*"),f=["attached","autoclosure",n(/convention\(/,a("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",n(/objc\(/,b,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],T=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];return i4=function(e){let m={match:/\s+/,relevance:0},E=e.COMMENT("/\\*","\\*/",{contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,E],C={match:[/\./,a(...r,...s)],className:{2:"keyword"}},R={match:n(/\./,a(...l)),relevance:0},N=l.filter(e=>"string"==typeof e).concat(["_|0"]),y={variants:[{className:"keyword",match:a(...l.filter(e=>"string"!=typeof e).concat(o).map(i),...s)}]},O={$pattern:a(/\b\w+/,/#\w+/),keyword:N.concat(_),literal:c},A=[C,R,y],I=[{match:n(/\./,a(...u)),relevance:0},{className:"built_in",match:n(/\b/,a(...u),/(?=\()/)}],D={match:/->/,relevance:0},w=[D,{className:"operator",relevance:0,variants:[{match:g},{match:`\\.(\\.|${p})+`}]}],x="([0-9]_*)+",L="([0-9a-fA-F]_*)+",M={className:"number",relevance:0,variants:[{match:`\\b(${x})(\\.(${x}))?([eE][+-]?(${x}))?\\b`},{match:`\\b0x(${L})(\\.(${L}))?([pP][+-]?(${x}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},P=(e="")=>({className:"subst",variants:[{match:n(/\\/,e,/[0\\tnr"']/)},{match:n(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),k=(e="")=>({className:"subst",match:n(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),F=(e="")=>({className:"subst",label:"interpol",begin:n(/\\/,e,/\(/),end:/\)/}),U=(e="")=>({begin:n(e,/"""/),end:n(/"""/,e),contains:[P(e),k(e),F(e)]}),B=(e="")=>({begin:n(e,/"/),end:n(/"/,e),contains:[P(e),F(e)]}),G={className:"string",variants:[U(),U("#"),U("##"),U("###"),B(),B("#"),B("##"),B("###")]},Y=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],H=e=>{let t=n(e,/\//),a=n(/\//,e);return{begin:t,end:a,contains:[...Y,{scope:"comment",begin:`#(?!.*${a})`,end:/$/}]}},V={scope:"regexp",variants:[H("###"),H("##"),H("#"),{begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:Y}]},z={match:n(/`/,b,/`/)},q=[z,{className:"variable",match:/\$\d+/},{className:"variable",match:`\\$${S}+`}],$=[{match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:T,contains:[...w,M,G]}]}},{scope:"keyword",match:n(/@/,a(...f))},{scope:"meta",match:n(/@/,b)}],W={match:t(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:n(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,S,"+")},{className:"type",match:h,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:n(/\s+&\s+/,t(h)),relevance:0}]},Q={begin:/</,end:/>/,keywords:O,contains:[...v,...A,...$,D,W]};W.contains.push(Q);let K={begin:/\(/,end:/\)/,relevance:0,keywords:O,contains:["self",{match:n(b,/\s*:/),keywords:"_|0",relevance:0},...v,V,...A,...I,...w,M,G,...q,...$,W]},j={begin:/</,end:/>/,keywords:"repeat each",contains:[...v,W]},X={begin:/\(/,end:/\)/,keywords:O,contains:[{begin:a(t(n(b,/\s*:/)),t(n(b,/\s+/,b,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:b}]},...v,...A,...w,M,G,...$,W,K],endsParent:!0,illegal:/["']/},Z={match:[/(func|macro)/,/\s+/,a(z.match,b,g)],className:{1:"keyword",3:"title.function"},contains:[j,X,m],illegal:[/\[/,/%/]},J={begin:[/precedencegroup/,/\s+/,h],className:{1:"keyword",3:"title"},contains:[W],keywords:[...d,...c],end:/}/};for(let e of G.variants){let t=e.contains.find(e=>"interpol"===e.label);t.keywords=O;let n=[...A,...I,...w,M,G,...q];t.contains=[...n,{begin:/\(/,end:/\)/,contains:["self",...n]}]}return{name:"Swift",keywords:O,contains:[...v,Z,{match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[j,X,m],illegal:/\[|%/},{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:O,contains:[e.inherit(e.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...A]},{match:[/operator/,/\s+/,g],className:{1:"keyword",3:"title"}},J,{beginKeywords:"import",end:/$/,contains:[...v],relevance:0},V,...A,...I,...w,M,G,...q,...$,W,K]}}}()),r4.registerLanguage("taggerscript",i8?i5:(i8=1,i5=function(e){return{name:"Tagger Script",contains:[{className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\\[()]/},{begin:/\(/,end:/\)/,contains:[{begin:/\\[()]/},"self"]}],relevance:10},{className:"keyword",begin:/\$[_a-zA-Z0-9]+(?=\()/},{className:"variable",begin:/%[_a-zA-Z0-9:]+%/},{className:"symbol",begin:/\\[\\nt$%,()]/},{className:"symbol",begin:/\\u[a-fA-F0-9]{4}/}]}})),r4.registerLanguage("yaml",(re||(re=1,i7=function(e){let t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(a,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),r={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},s=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ ]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ ]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ ]|$)"}]},{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},{className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},{begin:/\{/,end:/\}/,contains:[r],illegal:"\\n",relevance:0},{begin:"\\[",end:"\\]",contains:[r],illegal:"\\n",relevance:0},a],o=[...s];return o.pop(),o.push(i),r.contains=o,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:s}}),i7)),r4.registerLanguage("tap",(rn||(rn=1,rt=function(e){return{name:"Test Anything Protocol",case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:/---$/,end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number",begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}]}]}}),rt)),r4.registerLanguage("tcl",(ri||(ri=1,ra=function(e){let t=e.regex,n=/[a-zA-Z_][a-zA-Z0-9_]*/,a={className:"number",variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"Tcl",aliases:["tk"],keywords:["after","append","apply","array","auto_execok","auto_import","auto_load","auto_mkindex","auto_mkindex_old","auto_qualify","auto_reset","bgerror","binary","break","catch","cd","chan","clock","close","concat","continue","dde","dict","encoding","eof","error","eval","exec","exit","expr","fblocked","fconfigure","fcopy","file","fileevent","filename","flush","for","foreach","format","gets","glob","global","history","http","if","incr","info","interp","join","lappend|10","lassign|10","lindex|10","linsert|10","list","llength|10","load","lrange|10","lrepeat|10","lreplace|10","lreverse|10","lsearch|10","lset|10","lsort|10","mathfunc","mathop","memory","msgcat","namespace","open","package","parray","pid","pkg::create","pkg_mkIndex","platform","platform::shell","proc","puts","pwd","read","refchan","regexp","registry","regsub|10","rename","return","safe","scan","seek","set","socket","source","split","string","subst","switch","tcl_endOfWord","tcl_findLibrary","tcl_startOfNextWord","tcl_startOfPreviousWord","tcl_wordBreakAfter","tcl_wordBreakBefore","tcltest","tclvars","tell","time","tm","trace","unknown","unload","unset","update","uplevel","upvar","variable","vwait","while"],contains:[e.COMMENT(";[ \\t]*#","$"),e.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"title",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{className:"variable",variants:[{begin:t.concat(/\$/,t.optional(/::/),n,"(::",n,")*")},{begin:"\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"\\}",contains:[a]}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},a]}}),ra)),r4.registerLanguage("thrift",(rs||(rs=1,rr=function(e){let t=["bool","byte","i16","i32","i64","double","string","binary"];return{name:"Thrift",keywords:{keyword:["namespace","const","typedef","struct","enum","service","exception","void","oneway","set","list","map","required","optional"],type:t,literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",keywords:{type:[...t,"set","list","map"]},end:">",contains:["self"]}]}}),rr)),r4.registerLanguage("tp",(rl||(rl=1,ro=function(e){let t={className:"number",begin:"[1-9][0-9]*",relevance:0},n={className:"symbol",begin:":[^\\]]+"};return{name:"TP",keywords:{keyword:["ABORT","ACC","ADJUST","AND","AP_LD","BREAK","CALL","CNT","COL","CONDITION","CONFIG","DA","DB","DIV","DETECT","ELSE","END","ENDFOR","ERR_NUM","ERROR_PROG","FINE","FOR","GP","GUARD","INC","IF","JMP","LINEAR_MAX_SPEED","LOCK","MOD","MONITOR","OFFSET","Offset","OR","OVERRIDE","PAUSE","PREG","PTH","RT_LD","RUN","SELECT","SKIP","Skip","TA","TB","TO","TOOL_OFFSET","Tool_Offset","UF","UT","UFRAME_NUM","UTOOL_NUM","UNLOCK","WAIT","X","Y","Z","W","P","R","STRLEN","SUBSTR","FINDSTR","VOFFSET","PROG","ATTR","MN","POS"],literal:["ON","OFF","max_speed","LPOS","JPOS","ENABLE","DISABLE","START","STOP","RESET"]},contains:[{className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",t,n]},{className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",t,e.QUOTE_STRING_MODE,n]},{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},e.COMMENT("//","[;$]"),e.COMMENT("!","[;$]"),e.COMMENT("--eg:","$"),e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"'"},e.C_NUMBER_MODE,{className:"variable",begin:"\\$[A-Za-z0-9_]+"}]}}),ro)),r4.registerLanguage("twig",(rd||(rd=1,rc=function(e){let t=e.regex,n=["absolute_url","asset|0","asset_version","attribute","block","constant","controller|0","country_timezones","csrf_token","cycle","date","dump","expression","form|0","form_end","form_errors","form_help","form_label","form_rest","form_row","form_start","form_widget","html_classes","include","is_granted","logout_path","logout_url","max","min","parent","path|0","random","range","relative_path","render","render_esi","source","template_from_string","url|0"],a=["apply","autoescape","block","cache","deprecated","do","embed","extends","filter","flush","for","form_theme","from","if","import","include","macro","sandbox","set","stopwatch","trans","trans_default_domain","transchoice","use","verbatim","with"];a=a.concat(a.map(e=>`end${e}`));let i={scope:"string",variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},r={scope:"number",match:/\d+/},s={beginKeywords:n.join(" "),keywords:{name:n},relevance:0,contains:[{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[i,r]}]},o={match:/\|(?=[A-Za-z_]+:?)/,beginScope:"punctuation",relevance:0,contains:[{match:/[A-Za-z_]+:?/,keywords:["abs","abbr_class","abbr_method","batch","capitalize","column","convert_encoding","country_name","currency_name","currency_symbol","data_uri","date","date_modify","default","escape","file_excerpt","file_link","file_relative","filter","first","format","format_args","format_args_as_text","format_currency","format_date","format_datetime","format_file","format_file_from_text","format_number","format_time","html_to_markdown","humanize","inky_to_html","inline_css","join","json_encode","keys","language_name","last","length","locale_name","lower","map","markdown","markdown_to_html","merge","nl2br","number_format","raw","reduce","replace","reverse","round","slice","slug","sort","spaceless","split","striptags","timezone_name","title","trans","transchoice","trim","u|0","upper","url_encode","yaml_dump","yaml_encode"]}]},l=(e,{relevance:n})=>({beginScope:{1:"template-tag",3:"name"},relevance:n||2,endScope:"template-tag",begin:[/\{%/,/\s*/,t.either(...e)],end:/%\}/,keywords:"in",contains:[o,s,i,r]}),c=l(a,{relevance:2}),d=l([/[a-z_]+/],{relevance:1});return{name:"Twig",aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{#/,/#\}/),c,d,{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:["self",o,s,i,r]}]}}),rc)),r4.registerLanguage("typescript",function(){if(ru)return r_;ru=1;let e="[A-Za-z$_][0-9A-Za-z$_]*",t=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],i=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],r=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],s=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],o=[].concat(r,a,i);return r_=function(l){let c=function(l){var c;let d=l.regex,_={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let n;let a=e[0].length+e.index,i=e.input[a];if("<"===i||","===i)return void t.ignoreMatch();">"===i&&(((e,{after:t})=>{let n="</"+e[0].slice(1);return -1!==e.input.indexOf(n,t)})(e,{after:a})||t.ignoreMatch());let r=e.input.substring(a);((n=r.match(/^\s*=/))||(n=r.match(/^\s+extends\s+/))&&0===n.index)&&t.ignoreMatch()}},u={$pattern:e,keyword:t,literal:n,built_in:o,"variable.language":s},m="[0-9](_?[0-9])*",p=`\\.(${m})`,g="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",E={className:"number",variants:[{begin:`(\\b(${g})((${p})|\\.)?|(${p}))[eE][+-]?(${m})\\b`},{begin:`\\b(${g})\\b((${p})\\b|\\.)?|(${p})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},S={className:"subst",begin:"\\$\\{",end:"\\}",keywords:u,contains:[]},b={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[l.BACKSLASH_ESCAPE,S],subLanguage:"xml"}},h={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[l.BACKSLASH_ESCAPE,S],subLanguage:"css"}},f={begin:"gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[l.BACKSLASH_ESCAPE,S],subLanguage:"graphql"}},T={className:"string",begin:"`",end:"`",contains:[l.BACKSLASH_ESCAPE,S]},v={className:"comment",variants:[l.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:e+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),l.C_BLOCK_COMMENT_MODE,l.C_LINE_COMMENT_MODE]},C=[l.APOS_STRING_MODE,l.QUOTE_STRING_MODE,b,h,f,T,{match:/\$\d+/},E];S.contains=C.concat({begin:/\{/,end:/\}/,keywords:u,contains:["self"].concat(C)});let R=[].concat(v,S.contains),N=R.concat([{begin:/\(/,end:/\)/,keywords:u,contains:["self"].concat(R)}]),y={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,contains:N},O={variants:[{match:[/class/,/\s+/,e,/\s+/,/extends/,/\s+/,d.concat(e,"(",d.concat(/\./,e),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,e],scope:{1:"keyword",3:"title.class"}}]},A={relevance:0,match:d.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...a,...i]}},I={match:d.concat(/\b/,(c=[...r,"super","import"],d.concat("(?!",c.join("|"),")")),e,d.lookahead(/\(/)),className:"title.function",relevance:0},D={begin:d.concat(/\./,d.lookahead(d.concat(e,/(?![0-9A-Za-z$_(])/))),end:e,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},w="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+l.UNDERSCORE_IDENT_RE+")\\s*=>",x={match:[/const|var|let/,/\s+/,e,/\s*/,/=\s*/,/(async\s*)?/,d.lookahead(w)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[y]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:u,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:A},illegal:/#(?![$_A-z])/,contains:[l.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},l.APOS_STRING_MODE,l.QUOTE_STRING_MODE,b,h,f,T,v,{match:/\$\d+/},E,A,{className:"attr",begin:e+d.lookahead(":"),relevance:0},x,{begin:"("+l.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[v,l.REGEXP_MODE,{className:"function",begin:w,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:l.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:"</>"},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:_.begin,"on:begin":_.isTrulyOpeningTag,end:_.end}],subLanguage:"xml",contains:[{begin:_.begin,end:_.end,skip:!0,contains:["self"]}]}]},{variants:[{match:[/function/,/\s+/,e,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[y],illegal:/%/},{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+l.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[y,l.inherit(l.TITLE_MODE,{begin:e,className:"title.function"})]},{match:/\.\.\./,relevance:0},D,{match:"\\$"+e,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[y]},I,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},O,{match:[/get|set/,/\s+/,e,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},y]},{match:/\$[(.]/}]}}(l),d=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],_={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[c.exports.CLASS_REFERENCE]},u={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:d},contains:[c.exports.CLASS_REFERENCE]},m={$pattern:e,keyword:t.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]),literal:n,built_in:o.concat(d),"variable.language":s},p={className:"meta",begin:"@"+e},g=(e,t,n)=>{let a=e.contains.findIndex(e=>e.label===t);if(-1===a)throw Error("can not find mode to replace");e.contains.splice(a,1,n)};return Object.assign(c.keywords,m),c.exports.PARAMS_CONTAINS.push(p),c.contains=c.contains.concat([p,_,u]),g(c,"shebang",l.SHEBANG()),g(c,"use_strict",{className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/}),c.contains.find(e=>"func.def"===e.label).relevance=0,Object.assign(c,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),c}}()),r4.registerLanguage("vala",(rp||(rp=1,rm=function(e){return{name:"Vala",keywords:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object Gtk Posix",literal:"false true null"},contains:[{className:"class",beginKeywords:"class interface namespace",end:/\{/,excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[e.UNDERSCORE_TITLE_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""',relevance:5},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"^#",end:"$"}]}}),rm)),r4.registerLanguage("vbnet",(rE||(rE=1,rg=function(e){let t=e.regex,n=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,s={className:"literal",variants:[{begin:t.concat(/# */,t.either(a,n),/ *#/)},{begin:t.concat(/# */,r,/ *#/)},{begin:t.concat(/# */,i,/ *#/)},{begin:t.concat(/# */,t.either(a,n),/ +/,t.either(i,r),/ *#/)}]},o=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s,{className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{className:"label",begin:/^\w+:/},o,l,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[l]}]}}),rg)),r4.registerLanguage("vbscript",(rb||(rb=1,rS=function(e){let t=e.regex,n=["lcase","month","vartype","instrrev","ubound","setlocale","getobject","rgb","getref","string","weekdayname","rnd","dateadd","monthname","now","day","minute","isarray","cbool","round","formatcurrency","conversions","csng","timevalue","second","year","space","abs","clng","timeserial","fixs","len","asc","isempty","maths","dateserial","atn","timer","isobject","filter","weekday","datevalue","ccur","isdate","instr","datediff","formatdatetime","replace","isnull","right","sgn","array","snumeric","log","cdbl","hex","chr","lbound","msgbox","ucase","getlocale","cos","cdate","cbyte","rtrim","join","hour","oct","typename","trim","strcomp","int","createobject","loadpicture","tan","formatnumber","mid","split","cint","sin","datepart","ltrim","sqr","time","derived","eval","date","formatpercent","exp","inputbox","left","ascw","chrw","regexp","cstr","err"];return{name:"VBScript",aliases:["vbs"],case_insensitive:!0,keywords:{keyword:["call","class","const","dim","do","loop","erase","execute","executeglobal","exit","for","each","next","function","if","then","else","on","error","option","explicit","new","private","property","let","get","public","randomize","redim","rem","select","case","set","stop","sub","while","wend","with","end","to","elseif","is","or","xor","and","not","class_initialize","class_terminate","default","preserve","in","me","byval","byref","step","resume","goto"],built_in:["server","response","request","scriptengine","scriptenginebuildversion","scriptengineminorversion","scriptenginemajorversion"],literal:["true","false","null","nothing","empty"]},illegal:"//",contains:[{begin:t.concat(t.either(...n),"\\s*\\("),relevance:0,keywords:{built_in:n}},e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT(/'/,/$/,{relevance:0}),e.C_NUMBER_MODE]}}),rS)),r4.registerLanguage("vbscript-html",rf?rh:(rf=1,rh=function(e){return{name:"VBScript in HTML",subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}})),r4.registerLanguage("verilog",(rv||(rv=1,rT=function(e){let t=e.regex,n=["begin_keywords","celldefine","default_nettype","default_decay_time","default_trireg_strength","define","delay_mode_distributed","delay_mode_path","delay_mode_unit","delay_mode_zero","else","elsif","end_keywords","endcelldefine","endif","ifdef","ifndef","include","line","nounconnected_drive","pragma","resetall","timescale","unconnected_drive","undef","undefineall"];return{name:"Verilog",aliases:["v","sv","svh"],case_insensitive:!1,keywords:{$pattern:/\$?[\w]+(\$[\w]+)*/,keyword:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf|0","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate|5","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"],literal:["null"],built_in:["$finish","$stop","$exit","$fatal","$error","$warning","$info","$realtime","$time","$printtimescale","$bitstoreal","$bitstoshortreal","$itor","$signed","$cast","$bits","$stime","$timeformat","$realtobits","$shortrealtobits","$rtoi","$unsigned","$asserton","$assertkill","$assertpasson","$assertfailon","$assertnonvacuouson","$assertoff","$assertcontrol","$assertpassoff","$assertfailoff","$assertvacuousoff","$isunbounded","$sampled","$fell","$changed","$past_gclk","$fell_gclk","$changed_gclk","$rising_gclk","$steady_gclk","$coverage_control","$coverage_get","$coverage_save","$set_coverage_db_name","$rose","$stable","$past","$rose_gclk","$stable_gclk","$future_gclk","$falling_gclk","$changing_gclk","$display","$coverage_get_max","$coverage_merge","$get_coverage","$load_coverage_db","$typename","$unpacked_dimensions","$left","$low","$increment","$clog2","$ln","$log10","$exp","$sqrt","$pow","$floor","$ceil","$sin","$cos","$tan","$countbits","$onehot","$isunknown","$fatal","$warning","$dimensions","$right","$high","$size","$asin","$acos","$atan","$atan2","$hypot","$sinh","$cosh","$tanh","$asinh","$acosh","$atanh","$countones","$onehot0","$error","$info","$random","$dist_chi_square","$dist_erlang","$dist_exponential","$dist_normal","$dist_poisson","$dist_t","$dist_uniform","$q_initialize","$q_remove","$q_exam","$async$and$array","$async$nand$array","$async$or$array","$async$nor$array","$sync$and$array","$sync$nand$array","$sync$or$array","$sync$nor$array","$q_add","$q_full","$psprintf","$async$and$plane","$async$nand$plane","$async$or$plane","$async$nor$plane","$sync$and$plane","$sync$nand$plane","$sync$or$plane","$sync$nor$plane","$system","$display","$displayb","$displayh","$displayo","$strobe","$strobeb","$strobeh","$strobeo","$write","$readmemb","$readmemh","$writememh","$value$plusargs","$dumpvars","$dumpon","$dumplimit","$dumpports","$dumpportson","$dumpportslimit","$writeb","$writeh","$writeo","$monitor","$monitorb","$monitorh","$monitoro","$writememb","$dumpfile","$dumpoff","$dumpall","$dumpflush","$dumpportsoff","$dumpportsall","$dumpportsflush","$fclose","$fdisplay","$fdisplayb","$fdisplayh","$fdisplayo","$fstrobe","$fstrobeb","$fstrobeh","$fstrobeo","$swrite","$swriteb","$swriteh","$swriteo","$fscanf","$fread","$fseek","$fflush","$feof","$fopen","$fwrite","$fwriteb","$fwriteh","$fwriteo","$fmonitor","$fmonitorb","$fmonitorh","$fmonitoro","$sformat","$sformatf","$fgetc","$ungetc","$fgets","$sscanf","$rewind","$ftell","$ferror"]},contains:[e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,{scope:"number",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/\b((\d+'([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\B(('([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\b[0-9][0-9_]*/,relevance:0}]},{scope:"variable",variants:[{begin:"#\\((?!parameter).+\\)"},{begin:"\\.\\w+",relevance:0}]},{scope:"variable.constant",match:t.concat(/`/,t.either("__FILE__","__LINE__"))},{scope:"meta",begin:t.concat(/`/,t.either(...n)),end:/$|\/\/|\/\*/,returnEnd:!0,keywords:n}]}}),rT)),r4.registerLanguage("vhdl",(rR||(rR=1,rC=function(e){let t="\\d(_|\\d)*",n="[eE][-+]?"+t;return{name:"VHDL",case_insensitive:!0,keywords:{keyword:["abs","access","after","alias","all","and","architecture","array","assert","assume","assume_guarantee","attribute","begin","block","body","buffer","bus","case","component","configuration","constant","context","cover","disconnect","downto","default","else","elsif","end","entity","exit","fairness","file","for","force","function","generate","generic","group","guarded","if","impure","in","inertial","inout","is","label","library","linkage","literal","loop","map","mod","nand","new","next","nor","not","null","of","on","open","or","others","out","package","parameter","port","postponed","procedure","process","property","protected","pure","range","record","register","reject","release","rem","report","restrict","restrict_guarantee","return","rol","ror","select","sequence","severity","shared","signal","sla","sll","sra","srl","strong","subtype","then","to","transport","type","unaffected","units","until","use","variable","view","vmode","vprop","vunit","wait","when","while","with","xnor","xor"],built_in:["boolean","bit","character","integer","time","delay_length","natural","positive","string","bit_vector","file_open_kind","file_open_status","std_logic","std_logic_vector","unsigned","signed","boolean_vector","integer_vector","std_ulogic","std_ulogic_vector","unresolved_unsigned","u_unsigned","unresolved_signed","u_signed","real_vector","time_vector"],literal:["false","true","note","warning","error","failure","line","text","side","width"]},illegal:/\{/,contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT("--","$"),e.QUOTE_STRING_MODE,{className:"number",begin:"\\b("+t+"#\\w+(\\.\\w+)?#("+n+")?|"+t+"(\\."+t+")?("+n+")?)",relevance:0},{className:"string",begin:"'(U|X|0|1|Z|W|L|H|-)'",contains:[e.BACKSLASH_ESCAPE]},{className:"symbol",begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[e.BACKSLASH_ESCAPE]}]}}),rC)),r4.registerLanguage("vim",(ry||(ry=1,rN=function(e){return{name:"Vim Script",keywords:{$pattern:/[!#@\w]+/,keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank",built_in:"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp"},illegal:/;/,contains:[e.NUMBER_MODE,{className:"string",begin:"'",end:"'",illegal:"\\n"},{className:"string",begin:/"(\\"|\n\\|[^"\n])*"/},e.COMMENT('"',"$"),{className:"variable",begin:/[bwtglsav]:[\w\d_]+/},{begin:[/\b(?:function|function!)/,/\s+/,e.IDENT_RE],className:{1:"keyword",3:"title"},end:"$",relevance:0,contains:[{className:"params",begin:"\\(",end:"\\)"}]},{className:"symbol",begin:/<[\w-]+>/}]}}),rN)),r4.registerLanguage("wasm",(rA||(rA=1,rO=function(e){e.regex;let t=e.COMMENT(/\(;/,/;\)/);return t.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"]},contains:[e.COMMENT(/;;/,/$/),t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},{className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/},{className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/}]}}),rO)),r4.registerLanguage("wren",(rD||(rD=1,rI=function(e){let t=e.regex,n=/[a-zA-Z]\w*/,a=["as","break","class","construct","continue","else","for","foreign","if","import","in","is","return","static","var","while"],i=["true","false","null"],r=["this","super"],s=["-","~",/\*/,"%",/\.\.\./,/\.\./,/\+/,"<<",">>",">=","<=","<",">",/\^/,/!=/,/!/,/\bis\b/,"==","&&","&",/\|\|/,/\|/,/\?:/,"="],o={relevance:0,match:t.concat(/\b(?!(if|while|for|else|super)\b)/,n,/(?=\s*[({])/),className:"title.function"},l={match:t.concat(t.either(t.concat(/\b(?!(if|while|for|else|super)\b)/,n),t.either(...s)),/(?=\s*\([^)]+\)\s*\{)/),className:"title.function",starts:{contains:[{begin:/\(/,end:/\)/,contains:[{relevance:0,scope:"params",match:n}]}]}},c={relevance:0,match:t.either(...s),className:"operator"},d={className:"property",begin:t.concat(/\./,t.lookahead(n)),end:n,excludeBegin:!0,relevance:0},_={relevance:0,match:t.concat(/\b_/,n),scope:"variable"},u={relevance:0,match:/\b[A-Z]+[a-z]+([A-Z]+[a-z]+)*/,scope:"title.class",keywords:{_:["Bool","Class","Fiber","Fn","List","Map","Null","Num","Object","Range","Sequence","String","System"]}},m=e.C_NUMBER_MODE,p=e.COMMENT(/\/\*\*/,/\*\//,{contains:[{match:/@[a-z]+/,scope:"doctag"},"self"]}),g={scope:"subst",begin:/%\(/,end:/\)/,contains:[m,u,o,_,c]},E={scope:"string",begin:/"/,end:/"/,contains:[g,{scope:"char.escape",variants:[{match:/\\\\|\\["0%abefnrtv]/},{match:/\\x[0-9A-F]{2}/},{match:/\\u[0-9A-F]{4}/},{match:/\\U[0-9A-F]{8}/}]}]};g.contains.push(E);let S=[...a,...r,...i],b={relevance:0,match:t.concat("\\b(?!",S.join("|"),"\\b)",/[a-zA-Z_]\w*(?:[?!]|\b)/),className:"variable"};return{name:"Wren",keywords:{keyword:a,"variable.language":r,literal:i},contains:[{scope:"comment",variants:[{begin:[/#!?/,/[A-Za-z_]+(?=\()/],beginScope:{},keywords:{literal:i},contains:[],end:/\)/},{begin:[/#!?/,/[A-Za-z_]+/],beginScope:{},end:/$/}]},m,E,{className:"string",begin:/"""/,end:/"""/},p,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,{variants:[{match:[/class\s+/,n,/\s+is\s+/,n]},{match:[/class\s+/,n]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:a},{match:[n,/\s*/,/=/,/\s*/,/\(/,n,/\)\s*\{/],scope:{1:"title.function",3:"operator",6:"params"}},l,o,c,_,d,b]}}),rI)),r4.registerLanguage("x86asm",(rx||(rx=1,rw=function(e){return{name:"Intel x86 Assembly",case_insensitive:!0,keywords:{$pattern:"[.%]?"+e.IDENT_RE,keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr",meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[e.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*(\\.[0-9_]*)?(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst",begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{className:"meta",begin:/^\s*\.[\w_-]+/}]}}),rw)),r4.registerLanguage("xl",(rM||(rM=1,rL=function(e){let t={$pattern:/[a-zA-Z][a-zA-Z0-9_?]*/,keyword:["if","then","else","do","while","until","for","loop","import","with","is","as","where","when","by","data","constant","integer","real","text","name","boolean","symbol","infix","prefix","postfix","block","tree"],literal:["true","false","nil"],built_in:["in","mod","rem","and","or","xor","not","abs","sign","floor","ceil","sqrt","sin","cos","tan","asin","acos","atan","exp","expm1","log","log2","log10","log1p","pi","at","text_length","text_range","text_find","text_replace","contains","page","slide","basic_slide","title_slide","title","subtitle","fade_in","fade_out","fade_at","clear_color","color","line_color","line_width","texture_wrap","texture_transform","texture","scale_?x","scale_?y","scale_?z?","translate_?x","translate_?y","translate_?z?","rotate_?x","rotate_?y","rotate_?z?","rectangle","circle","ellipse","sphere","path","line_to","move_to","quad_to","curve_to","theme","background","contents","locally","time","mouse_?x","mouse_?y","mouse_buttons"].concat(["ObjectLoader","Animate","MovieCredits","Slides","Filters","Shading","Materials","LensFlare","Mapping","VLCAudioVideo","StereoDecoder","PointCloud","NetworkAccess","RemoteControl","RegExp","ChromaKey","Snowfall","NodeJS","Speech","Charts"])},n={className:"string",begin:'"',end:'"',illegal:"\\n"},a={className:"function",begin:/[a-z][^\n]*->/,returnBegin:!0,end:/->/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,keywords:t}})]};return{name:"XL",aliases:["tao"],keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"string",begin:"'",end:"'",illegal:"\\n"},{className:"string",begin:"<<",end:">>"},a,{beginKeywords:"import",end:"$",keywords:t,contains:[n]},{className:"number",begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?"},e.NUMBER_MODE]}}),rL)),r4.registerLanguage("xquery",rk?rP:(rk=1,rP=function(e){return{name:"XQuery",aliases:["xpath","xq","xqm"],case_insensitive:!1,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{$pattern:/[a-zA-Z$][a-zA-Z0-9_:-]*/,keyword:["module","schema","namespace","boundary-space","preserve","no-preserve","strip","default","collation","base-uri","ordering","context","decimal-format","decimal-separator","copy-namespaces","empty-sequence","except","exponent-separator","external","grouping-separator","inherit","no-inherit","lax","minus-sign","per-mille","percent","schema-attribute","schema-element","strict","unordered","zero-digit","declare","import","option","function","validate","variable","for","at","in","let","where","order","group","by","return","if","then","else","tumbling","sliding","window","start","when","only","end","previous","next","stable","ascending","descending","allowing","empty","greatest","least","some","every","satisfies","switch","case","typeswitch","try","catch","and","or","to","union","intersect","instance","of","treat","as","castable","cast","map","array","delete","insert","into","replace","value","rename","copy","modify","update"],type:["item","document-node","node","attribute","document","element","comment","namespace","namespace-node","processing-instruction","text","construction","xs:anyAtomicType","xs:untypedAtomic","xs:duration","xs:time","xs:decimal","xs:float","xs:double","xs:gYearMonth","xs:gYear","xs:gMonthDay","xs:gMonth","xs:gDay","xs:boolean","xs:base64Binary","xs:hexBinary","xs:anyURI","xs:QName","xs:NOTATION","xs:dateTime","xs:dateTimeStamp","xs:date","xs:string","xs:normalizedString","xs:token","xs:language","xs:NMTOKEN","xs:Name","xs:NCName","xs:ID","xs:IDREF","xs:ENTITY","xs:integer","xs:nonPositiveInteger","xs:negativeInteger","xs:long","xs:int","xs:short","xs:byte","xs:nonNegativeInteger","xs:unisignedLong","xs:unsignedInt","xs:unsignedShort","xs:unsignedByte","xs:positiveInteger","xs:yearMonthDuration","xs:dayTimeDuration"],literal:["eq","ne","lt","le","gt","ge","is","self::","child::","descendant::","descendant-or-self::","attribute::","following::","following-sibling::","parent::","ancestor::","ancestor-or-self::","preceding::","preceding-sibling::","NaN"]},contains:[{className:"variable",begin:/[$][\w\-:]+/},{className:"built_in",variants:[{begin:/\barray:/,end:/(?:append|filter|flatten|fold-(?:left|right)|for-each(?:-pair)?|get|head|insert-before|join|put|remove|reverse|size|sort|subarray|tail)\b/},{begin:/\bmap:/,end:/(?:contains|entry|find|for-each|get|keys|merge|put|remove|size)\b/},{begin:/\bmath:/,end:/(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\b/},{begin:/\bop:/,end:/\(/,excludeEnd:!0},{begin:/\bfn:/,end:/\(/,excludeEnd:!0},{begin:/[^</$:'"-]\b(?:abs|accumulator-(?:after|before)|adjust-(?:date(?:Time)?|time)-to-timezone|analyze-string|apply|available-(?:environment-variables|system-properties)|avg|base-uri|boolean|ceiling|codepoints?-(?:equal|to-string)|collation-key|collection|compare|concat|contains(?:-token)?|copy-of|count|current(?:-)?(?:date(?:Time)?|time|group(?:ing-key)?|output-uri|merge-(?:group|key))?data|dateTime|days?-from-(?:date(?:Time)?|duration)|deep-equal|default-(?:collation|language)|distinct-values|document(?:-uri)?|doc(?:-available)?|element-(?:available|with-id)|empty|encode-for-uri|ends-with|environment-variable|error|escape-html-uri|exactly-one|exists|false|filter|floor|fold-(?:left|right)|for-each(?:-pair)?|format-(?:date(?:Time)?|time|integer|number)|function-(?:arity|available|lookup|name)|generate-id|has-children|head|hours-from-(?:dateTime|duration|time)|id(?:ref)?|implicit-timezone|in-scope-prefixes|index-of|innermost|insert-before|iri-to-uri|json-(?:doc|to-xml)|key|lang|last|load-xquery-module|local-name(?:-from-QName)?|(?:lower|upper)-case|matches|max|minutes-from-(?:dateTime|duration|time)|min|months?-from-(?:date(?:Time)?|duration)|name(?:space-uri-?(?:for-prefix|from-QName)?)?|nilled|node-name|normalize-(?:space|unicode)|not|number|one-or-more|outermost|parse-(?:ietf-date|json)|path|position|(?:prefix-from-)?QName|random-number-generator|regex-group|remove|replace|resolve-(?:QName|uri)|reverse|root|round(?:-half-to-even)?|seconds-from-(?:dateTime|duration|time)|snapshot|sort|starts-with|static-base-uri|stream-available|string-?(?:join|length|to-codepoints)?|subsequence|substring-?(?:after|before)?|sum|system-property|tail|timezone-from-(?:date(?:Time)?|time)|tokenize|trace|trans(?:form|late)|true|type-available|unordered|unparsed-(?:entity|text)?-?(?:public-id|uri|available|lines)?|uri-collection|xml-to-json|years?-from-(?:date(?:Time)?|duration)|zero-or-one)\b/},{begin:/\blocal:/,end:/\(/,excludeEnd:!0},{begin:/\bzip:/,end:/(?:zip-file|(?:xml|html|text|binary)-entry| (?:update-)?entries)\b/},{begin:/\b(?:util|db|functx|app|xdmp|xmldb):/,end:/\(/,excludeEnd:!0}]},{className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},{className:"number",begin:/(\b0[0-7_]+)|(\b0x[0-9a-fA-F_]+)|(\b[1-9][0-9_]*(\.[0-9_]+)?)|[0_]\b/,relevance:0},{className:"comment",begin:/\(:/,end:/:\)/,relevance:10,contains:[{className:"doctag",begin:/@\w+/}]},{className:"meta",begin:/%[\w\-:]+/},{className:"title",begin:/\bxquery version "[13]\.[01]"\s?(?:encoding ".+")?/,end:/;/},{beginKeywords:"element attribute comment document processing-instruction",end:/\{/,excludeEnd:!0},{begin:/<([\w._:-]+)(\s+\S*=('|").*('|"))?>/,end:/(\/[\w._:-]+>)/,subLanguage:"xml",contains:[{begin:/\{/,end:/\}/,subLanguage:"xquery"},"self"]}]}})),r4.registerLanguage("zephir",(rU||(rU=1,rF=function(e){let t={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n=e.UNDERSCORE_TITLE_MODE,a={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},i="namespace class interface use extends function return abstract final public protected private static deprecated throw try catch Exception echo empty isset instanceof unset let var new const self require if else elseif switch case default do while loop for continue break likely unlikely __LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __TRAIT__ __METHOD__ __NAMESPACE__ array boolean float double integer object resource string char long unsigned bool int uint ulong uchar true false null undefined";return{name:"Zephir",aliases:["zep"],keywords:i,contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(/\/\*/,/\*\//,{contains:[{className:"doctag",begin:/@[A-Za-z]+/}]}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;/,contains:[e.BACKSLASH_ESCAPE]},{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function fn",end:/[;{]/,excludeEnd:!0,illegal:/\$|\[|%/,contains:[n,{className:"params",begin:/\(/,end:/\)/,keywords:i,contains:["self",e.C_BLOCK_COMMENT_MODE,t,a]}]},{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,illegal:/[:($"]/,contains:[{beginKeywords:"extends implements"},n]},{beginKeywords:"namespace",end:/;/,illegal:/[.']/,contains:[n]},{beginKeywords:"use",end:/;/,contains:[n]},{begin:/=>/},t,a]}}),rF)),r4.HighlightJS=r4,r4.default=r4;var r6=(rB=r4)&&rB.__esModule&&Object.prototype.hasOwnProperty.call(rB,"default")?rB.default:rB;!function(e,t){var n,a="hljs-ln",i="hljs-ln-code",r="hljs-ln-n",s="data-line-number",o=/\r\n|\r|\n/g;function l(n){try{var a=t.querySelectorAll("code.hljs,code.nohighlight");for(var i in a)a.hasOwnProperty(i)&&(a[i].classList.contains("nohljsln")||c(a[i],n))}catch(t){e.console.error("LineNumbers error: ",t)}}function c(e,t){"object"==typeof e&&(e.innerHTML=d(e,t))}function d(e,t){var n,l,c,d,m,p,g,E,S={singleLine:!!(n=E=(E=t)||{}).singleLine&&n.singleLine,startFrom:(l=e,d=1,isFinite((c=E).startFrom)&&(d=c.startFrom),null!==(g=(p="data-ln-start-from",(m=l).hasAttribute(p)?m.getAttribute(p):null))&&(d=function(e,t){if(!e)return 1;var n=Number(e);return isFinite(n)?n:1}(g)),d)};return function e(t){var n,a=t.childNodes;for(var i in a)a.hasOwnProperty(i)&&0<((n=a[i]).textContent.trim().match(o)||[]).length&&(0<n.childNodes.length?e(n):function(e){var t=e.className;if(/hljs-/.test(t)){for(var n=_(e.innerHTML),a=0,i="";a<n.length;a++)i+=u('<span class="{0}">{1}</span>\n',[t,0<n[a].length?n[a]:" "]);e.innerHTML=i.trim()}}(n.parentNode))}(e),function(e,t){var n=_(e);if(""===n[n.length-1].trim()&&n.pop(),1<n.length||t.singleLine){for(var o="",l=0,c=n.length;l<c;l++)o+=u('<tr><td class="{0} {1}" {3}="{5}"><div class="{2}" {3}="{5}"></div></td><td class="{0} {4}" {3}="{5}">{6}</td></tr>',["hljs-ln-line","hljs-ln-numbers",r,s,i,l+t.startFrom,0<n[l].length?n[l]:" "]);return u('<table class="{0}">{1}</table>',[a,o])}return e}(e.innerHTML,S)}function _(e){return 0===e.length?[]:e.split(o)}function u(e,t){return e.replace(/\{(\d+)\}/g,function(e,n){return void 0!==t[n]?t[n]:e})}r6?(r6.initLineNumbersOnLoad=function(n){"interactive"===t.readyState||"complete"===t.readyState?l(n):e.addEventListener("DOMContentLoaded",function(){l(n)})},r6.lineNumbersBlock=c,r6.lineNumbersValue=function(e,t){if("string"==typeof e){var n=document.createElement("code");return n.innerHTML=e,d(n,t)}},(n=t.createElement("style")).type="text/css",n.innerHTML=u(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[a,r,s]),t.getElementsByTagName("head")[0].appendChild(n)):e.console.error("highlight.js not detected!"),document.addEventListener("copy",function(e){var t,n=window.getSelection();!function(e){for(var t=e;t;){if(t.className&&-1!==t.className.indexOf("hljs-ln-code"))return 1;t=t.parentNode}}(n.anchorNode)||(t=-1!==window.navigator.userAgent.indexOf("Edge")?function(e){for(var t=e.toString(),n=e.anchorNode;"TD"!==n.nodeName;)n=n.parentNode;for(var a=e.focusNode;"TD"!==a.nodeName;)a=a.parentNode;var r=parseInt(n.dataset.lineNumber),o=parseInt(a.dataset.lineNumber);if(r==o)return t;var l,c=n.textContent,d=a.textContent;for(o<r&&(l=r,r=o,o=l,l=c,c=d,d=l);0!==t.indexOf(c);)c=c.slice(1);for(;-1===t.lastIndexOf(d);)d=d.slice(0,-1);for(var _=c,m=function(e){for(var t=e;"TABLE"!==t.nodeName;)t=t.parentNode;return t}(n),p=r+1;p<o;++p){var g=u('.{0}[{1}="{2}"]',[i,s,p]);_+="\n"+m.querySelector(g).textContent}return _+"\n"+d}(n):n.toString(),e.clipboardData.setData("text/plain",t),e.preventDefault())})}(window,document);let r5={id:"highlight",HIGHLIGHT_STEP_DELIMITER:"|",HIGHLIGHT_LINE_DELIMITER:",",HIGHLIGHT_LINE_RANGE_DELIMITER:"-",hljs:r6,init:function(e){let t=e.getConfig().highlight||{};t.highlightOnLoad="boolean"!=typeof t.highlightOnLoad||t.highlightOnLoad,t.escapeHTML="boolean"!=typeof t.escapeHTML||t.escapeHTML,Array.from(e.getRevealElement().querySelectorAll("pre code")).forEach(e=>{e.parentNode.classList.add("code-wrapper");let n=e.querySelector('script[type="text/template"]');n&&(e.textContent=n.innerHTML),e.hasAttribute("data-trim")&&"function"==typeof e.innerHTML.trim&&(e.innerHTML=function(e){var t,n;function a(e){return e.replace(/^[\s\uFEFF\xA0]+/g,"")}return n=(t=(function(e){for(var t=e.split("\n"),n=0;n<t.length&&""===t[n].trim();n++)t.splice(n--,1);for(n=t.length-1;n>=0&&""===t[n].trim();n--)t.splice(n,1);return t.join("\n")})(e.innerHTML).split("\n")).reduce(function(e,t){return t.length>0&&a(t).length>0&&e>t.length-a(t).length?t.length-a(t).length:e},Number.POSITIVE_INFINITY),t.map(function(e,t){return e.slice(n)}).join("\n")}(e)),t.escapeHTML&&!e.hasAttribute("data-noescape")&&(e.innerHTML=e.innerHTML.replace(/</g,"<").replace(/>/g,">")),e.addEventListener("focusout",function(e){r6.highlightElement(e.currentTarget)},!1)}),"function"==typeof t.beforeHighlight&&t.beforeHighlight(r6),t.highlightOnLoad&&Array.from(e.getRevealElement().querySelectorAll("pre code")).forEach(e=>{r5.highlightBlock(e)}),e.on("pdf-ready",function(){[].slice.call(e.getRevealElement().querySelectorAll("pre code[data-line-numbers].current-fragment")).forEach(function(e){r5.scrollHighlightedLineIntoView(e,{},!0)})})},highlightBlock:function(e){if(r6.highlightElement(e),0!==e.innerHTML.trim().length&&e.hasAttribute("data-line-numbers")){r6.lineNumbersBlock(e,{singleLine:!0});var t={currentBlock:e},n=r5.deserializeHighlightSteps(e.getAttribute("data-line-numbers"));if(n.length>1){var a=parseInt(e.getAttribute("data-fragment-index"),10);("number"!=typeof a||isNaN(a))&&(a=null),n.slice(1).forEach(function(n){var i=e.cloneNode(!0);i.setAttribute("data-line-numbers",r5.serializeHighlightSteps([n])),i.classList.add("fragment"),e.parentNode.appendChild(i),r5.highlightLines(i),"number"==typeof a?(i.setAttribute("data-fragment-index",a),a+=1):i.removeAttribute("data-fragment-index"),i.addEventListener("visible",r5.scrollHighlightedLineIntoView.bind(r5,i,t)),i.addEventListener("hidden",r5.scrollHighlightedLineIntoView.bind(r5,i.previousElementSibling,t))}),e.removeAttribute("data-fragment-index"),e.setAttribute("data-line-numbers",r5.serializeHighlightSteps([n[0]]))}var i="function"==typeof e.closest?e.closest("section:not(.stack)"):null;if(i){var r=function(){r5.scrollHighlightedLineIntoView(e,t,!0),i.removeEventListener("visible",r)};i.addEventListener("visible",r)}r5.highlightLines(e)}},scrollHighlightedLineIntoView:function(e,t,n){cancelAnimationFrame(t.animationFrameID),t.currentBlock&&(e.scrollTop=t.currentBlock.scrollTop),t.currentBlock=e;var a=this.getHighlightedLineBounds(e),i=e.offsetHeight,r=getComputedStyle(e);i-=parseInt(r.paddingTop)+parseInt(r.paddingBottom);var s=e.scrollTop,o=a.top+(Math.min(a.bottom-a.top,i)-i)/2,l=e.querySelector(".hljs-ln");if(l&&(o+=l.offsetTop-parseInt(r.paddingTop)),o=Math.max(Math.min(o,e.scrollHeight-i),0),!0===n||s===o)e.scrollTop=o;else{if(e.scrollHeight<=i)return;var c=0,d=function(){c=Math.min(c+.02,1),e.scrollTop=s+(o-s)*r5.easeInOutQuart(c),c<1&&(t.animationFrameID=requestAnimationFrame(d))};d()}},easeInOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},getHighlightedLineBounds:function(e){var t=e.querySelectorAll(".highlight-line");if(0===t.length)return{top:0,bottom:0};var n=t[0],a=t[t.length-1];return{top:n.offsetTop,bottom:a.offsetTop+a.offsetHeight}},highlightLines:function(e,t){var n=r5.deserializeHighlightSteps(t||e.getAttribute("data-line-numbers"));n.length&&n[0].forEach(function(t){var n=[];"number"==typeof t.end?n=[].slice.call(e.querySelectorAll("table tr:nth-child(n+"+t.start+"):nth-child(-n+"+t.end+")")):"number"==typeof t.start&&(n=[].slice.call(e.querySelectorAll("table tr:nth-child("+t.start+")"))),n.length&&(n.forEach(function(e){e.classList.add("highlight-line")}),e.classList.add("has-highlights"))})},deserializeHighlightSteps:function(e){return(e=(e=e.replace(/\s/g,"")).split(r5.HIGHLIGHT_STEP_DELIMITER)).map(function(e){return e.split(r5.HIGHLIGHT_LINE_DELIMITER).map(function(e){if(/^[\d-]+$/.test(e)){var t=parseInt((e=e.split(r5.HIGHLIGHT_LINE_RANGE_DELIMITER))[0],10),n=parseInt(e[1],10);return isNaN(n)?{start:t}:{start:t,end:n}}return{}})})},serializeHighlightSteps:function(e){return e.map(function(e){return e.map(function(e){return"number"==typeof e.end?e.start+r5.HIGHLIGHT_LINE_RANGE_DELIMITER+e.end:"number"==typeof e.start?e.start:""}).join(r5.HIGHLIGHT_LINE_DELIMITER)}).join(r5.HIGHLIGHT_STEP_DELIMITER)}};return()=>r5},e.exports=n()},87251:function(e){var t,n;t=0,n=function(){"use strict";let e={async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1},t=/[&<>"']/,n=RegExp(t.source,"g"),a=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,i=RegExp(a.source,"g"),r={"&":"&","<":"<",">":">",'"':""","'":"'"},s=e=>r[e];function o(e,r){if(r){if(t.test(e))return e.replace(n,s)}else if(a.test(e))return e.replace(i,s);return e}let l=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function c(e){return e.replace(l,(e,t)=>"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):"")}let d=/(^|[^\[])\^/g;function _(e,t){e="string"==typeof e?e:e.source,t=t||"";let n={replace:(t,a)=>(a=(a=a.source||a).replace(d,"$1"),e=e.replace(t,a),n),getRegex:()=>new RegExp(e,t)};return n}let u=/[^\w:]/g,m=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function p(e,t,n){if(e){let e;try{e=decodeURIComponent(c(n)).replace(u,"").toLowerCase()}catch(e){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!m.test(n)&&(n=function(e,t){g[" "+e]||(E.test(e)?g[" "+e]=e+"/":g[" "+e]=T(e,"/",!0));let n=-1===(e=g[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(S,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(b,"$1")+t:e+t}(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch(e){return null}return n}let g={},E=/^[^:]+:\/*[^/]*$/,S=/^([^:]+:)[\s\S]*$/,b=/^([^:]+:\/*[^/]*)[\s\S]*$/,h={exec:function(){}};function f(e,t){let n=e.replace(/\|/g,(e,t,n)=>{let a=!1,i=t;for(;--i>=0&&"\\"===n[i];)a=!a;return a?"|":" |"}).split(/ \|/),a=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;a<n.length;a++)n[a]=n[a].trim().replace(/\\\|/g,"|");return n}function T(e,t,n){let a=e.length;if(0===a)return"";let i=0;for(;i<a;){let r=e.charAt(a-i-1);if(r!==t||n){if(r===t||!n)break;i++}else i++}return e.slice(0,a-i)}function v(e,t){if(t<1)return"";let n="";for(;t>1;)1&t&&(n+=e),t>>=1,e+=e;return n+e}function C(e,t,n,a){let i=t.href,r=t.title?o(t.title):null,s=e[1].replace(/\\([\[\]])/g,"$1");if("!"!==e[0].charAt(0)){a.state.inLink=!0;let e={type:"link",raw:n,href:i,title:r,text:s,tokens:a.inlineTokens(s)};return a.state.inLink=!1,e}return{type:"image",raw:n,href:i,title:r,text:o(s)}}class R{constructor(t){this.options=t||e}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:T(e,"\n")}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=function(e,t){let n=e.match(/^(\s+)(?:```)/);if(null===n)return t;let a=n[1];return t.split("\n").map(e=>{let t=e.match(/^\s+/);if(null===t)return e;let[n]=t;return n.length>=a.length?e.slice(a.length):e}).join("\n")}(e,t[3]||"");return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline._escapes,"$1"):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(/#$/.test(e)){let t=T(e,"#");this.options.pedantic?e=t.trim():t&&!/ $/.test(t)||(e=t.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=t[0].replace(/^ *>[ \t]?/gm,""),n=this.lexer.state.top;this.lexer.state.top=!0;let a=this.lexer.blockTokens(e);return this.lexer.state.top=n,{type:"blockquote",raw:t[0],tokens:a,text:e}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n,a,i,r,s,o,l,c,d,_,u,m,p=t[1].trim(),g=p.length>1,E={type:"list",raw:"",ordered:g,start:g?+p.slice(0,-1):"",loose:!1,items:[]};p=g?`\\d{1,9}\\${p.slice(-1)}`:`\\${p}`,this.options.pedantic&&(p=g?p:"[*+-]");let S=RegExp(`^( {0,3}${p})((?:[ ][^\\n]*)?(?:\\n|$))`);for(;e&&(m=!1,t=S.exec(e))&&!this.rules.block.hr.test(e);){if(n=t[0],e=e.substring(n.length),c=t[2].split("\n",1)[0].replace(/^\t+/,e=>" ".repeat(3*e.length)),d=e.split("\n",1)[0],this.options.pedantic?(r=2,u=c.trimLeft()):(r=(r=t[2].search(/[^ ]/))>4?1:r,u=c.slice(r),r+=t[1].length),o=!1,!c&&/^ *$/.test(d)&&(n+=d+"\n",e=e.substring(d.length+1),m=!0),!m){let t=RegExp(`^ {0,${Math.min(3,r-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),a=RegExp(`^ {0,${Math.min(3,r-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),i=RegExp(`^ {0,${Math.min(3,r-1)}}(?:\`\`\`|~~~)`),s=RegExp(`^ {0,${Math.min(3,r-1)}}#`);for(;e&&(d=_=e.split("\n",1)[0],this.options.pedantic&&(d=d.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!i.test(d))&&!s.test(d)&&!t.test(d)&&!a.test(e);){if(d.search(/[^ ]/)>=r||!d.trim())u+="\n"+d.slice(r);else{if(o||c.search(/[^ ]/)>=4||i.test(c)||s.test(c)||a.test(c))break;u+="\n"+d}o||d.trim()||(o=!0),n+=_+"\n",e=e.substring(_.length+1),c=d.slice(r)}}E.loose||(l?E.loose=!0:/\n *\n *$/.test(n)&&(l=!0)),this.options.gfm&&(a=/^\[[ xX]\] /.exec(u))&&(i="[ ] "!==a[0],u=u.replace(/^\[[ xX]\] +/,"")),E.items.push({type:"list_item",raw:n,task:!!a,checked:i,loose:!1,text:u}),E.raw+=n}E.items[E.items.length-1].raw=n.trimRight(),E.items[E.items.length-1].text=u.trimRight(),E.raw=E.raw.trimRight();let b=E.items.length;for(s=0;s<b;s++)if(this.lexer.state.top=!1,E.items[s].tokens=this.lexer.blockTokens(E.items[s].text,[]),!E.loose){let e=E.items[s].tokens.filter(e=>"space"===e.type),t=e.length>0&&e.some(e=>/\n.*\n/.test(e.raw));E.loose=t}if(E.loose)for(s=0;s<b;s++)E.items[s].loose=!0;return E}}html(e){let t=this.rules.block.html.exec(e);if(t){let e={type:"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:t[0]};if(this.options.sanitize){let n=this.options.sanitizer?this.options.sanitizer(t[0]):o(t[0]);e.type="paragraph",e.text=n,e.tokens=this.lexer.inline(n)}return e}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(/\s+/g," "),n=t[2]?t[2].replace(/^<(.*)>$/,"$1").replace(this.rules.inline._escapes,"$1"):"",a=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline._escapes,"$1"):t[3];return{type:"def",tag:e,raw:t[0],href:n,title:a}}}table(e){let t=this.rules.block.table.exec(e);if(t){let e={type:"table",header:f(t[1]).map(e=>({text:e})),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(e.header.length===e.align.length){e.raw=t[0];let n,a,i,r,s=e.align.length;for(n=0;n<s;n++)/^ *-+: *$/.test(e.align[n])?e.align[n]="right":/^ *:-+: *$/.test(e.align[n])?e.align[n]="center":/^ *:-+ *$/.test(e.align[n])?e.align[n]="left":e.align[n]=null;for(s=e.rows.length,n=0;n<s;n++)e.rows[n]=f(e.rows[n],e.header.length).map(e=>({text:e}));for(s=e.header.length,a=0;a<s;a++)e.header[a].tokens=this.lexer.inline(e.header[a].text);for(s=e.rows.length,a=0;a<s;a++)for(r=e.rows[a],i=0;i<r.length;i++)r[i].tokens=this.lexer.inline(r[i].text);return e}}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e="\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:o(t[1])}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&/^<a /i.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):o(t[0]):t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&/^</.test(e)){if(!/>$/.test(e))return;let t=T(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{let e=function(e,t){if(-1===e.indexOf(")"))return -1;let n=e.length,a=0,i=0;for(;i<n;i++)if("\\"===e[i])i++;else if(e[i]===t[0])a++;else if(e[i]===t[1]&&--a<0)return i;return -1}(t[2],"()");if(e>-1){let n=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=""}}let n=t[2],a="";if(this.options.pedantic){let e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);e&&(n=e[1],a=e[3])}else a=t[3]?t[3].slice(1,-1):"";return n=n.trim(),/^</.test(n)&&(n=this.options.pedantic&&!/>$/.test(e)?n.slice(1):n.slice(1,-1)),C(t,{href:n?n.replace(this.rules.inline._escapes,"$1"):n,title:a?a.replace(this.rules.inline._escapes,"$1"):a},t[0],this.lexer)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=(n[2]||n[1]).replace(/\s+/g," ");if(!(e=t[e.toLowerCase()])){let e=n[0].charAt(0);return{type:"text",raw:e,text:e}}return C(n,e,n[0],this.lexer)}}emStrong(e,t,n=""){let a=this.rules.inline.emStrong.lDelim.exec(e);if(!a||a[3]&&n.match(/[\p{L}\p{N}]/u))return;let i=a[1]||a[2]||"";if(!i||i&&(""===n||this.rules.inline.punctuation.exec(n))){let n=a[0].length-1,i,r,s=n,o=0,l="*"===a[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(l.lastIndex=0,t=t.slice(-1*e.length+n);null!=(a=l.exec(t));){if(!(i=a[1]||a[2]||a[3]||a[4]||a[5]||a[6]))continue;if(r=i.length,a[3]||a[4]){s+=r;continue}if((a[5]||a[6])&&n%3&&!((n+r)%3)){o+=r;continue}if((s-=r)>0)continue;r=Math.min(r,r+s+o);let t=e.slice(0,n+a.index+(a[0].length-i.length)+r);if(Math.min(n,r)%2){let e=t.slice(1,-1);return{type:"em",raw:t,text:e,tokens:this.lexer.inlineTokens(e)}}let l=t.slice(2,-2);return{type:"strong",raw:t,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(/\n/g," "),n=/[^ ]/.test(e),a=/^ /.test(e)&&/ $/.test(e);return n&&a&&(e=e.substring(1,e.length-1)),e=o(e,!0),{type:"codespan",raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e,t){let n=this.rules.inline.autolink.exec(e);if(n){let e,a;return a="@"===n[2]?"mailto:"+(e=o(this.options.mangle?t(n[1]):n[1])):e=o(n[1]),{type:"link",raw:n[0],text:e,href:a,tokens:[{type:"text",raw:e,text:e}]}}}url(e,t){let n;if(n=this.rules.inline.url.exec(e)){let e,a;if("@"===n[2])a="mailto:"+(e=o(this.options.mangle?t(n[0]):n[0]));else{let t;do t=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0];while(t!==n[0]);e=o(n[0]),a="www."===n[1]?"http://"+n[0]:n[0]}return{type:"link",raw:n[0],text:e,href:a,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e,t){let n=this.rules.inline.text.exec(e);if(n){let e;return e=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):o(n[0]):n[0]:o(this.options.smartypants?t(n[0]):n[0]),{type:"text",raw:n[0],text:e}}}}let N={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:h,lheading:/^((?:.|\n(?!\n))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};N.def=_(N.def).replace("label",N._label).replace("title",N._title).getRegex(),N.bullet=/(?:[*+-]|\d{1,9}[.)])/,N.listItemStart=_(/^( *)(bull) */).replace("bull",N.bullet).getRegex(),N.list=_(N.list).replace(/bull/g,N.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+N.def.source+")").getRegex(),N._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",N._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,N.html=_(N.html,"i").replace("comment",N._comment).replace("tag",N._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),N.paragraph=_(N._paragraph).replace("hr",N.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",N._tag).getRegex(),N.blockquote=_(N.blockquote).replace("paragraph",N.paragraph).getRegex(),N.normal={...N},N.gfm={...N.normal,table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"},N.gfm.table=_(N.gfm.table).replace("hr",N.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",N._tag).getRegex(),N.gfm.paragraph=_(N._paragraph).replace("hr",N.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",N.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",N._tag).getRegex(),N.pedantic={...N.normal,html:_("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",N._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:h,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:_(N.normal._paragraph).replace("hr",N.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",N.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()};let y={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:h,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^(?:[^_*\\]|\\.)*?\_\_(?:[^_*\\]|\\.)*?\*(?:[^_*\\]|\\.)*?(?=\_\_)|(?:[^*\\]|\\.)+(?=[^*])|[punct_](\*+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|(?:[^punct*_\s\\]|\\.)(\*+)(?=[^punct*_\s])/,rDelimUnd:/^(?:[^_*\\]|\\.)*?\*\*(?:[^_*\\]|\\.)*?\_(?:[^_*\\]|\\.)*?(?=\*\*)|(?:[^_\\]|\\.)+(?=[^_])|[punct*](\_+)(?=[\s]|$)|(?:[^punct*_\s\\]|\\.)(\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:h,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};function O(e){return e.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201C").replace(/"/g,"\u201D").replace(/\.{3}/g,"\u2026")}function A(e){let t,n,a="",i=e.length;for(t=0;t<i;t++)n=e.charCodeAt(t),Math.random()>.5&&(n="x"+n.toString(16)),a+="&#"+n+";";return a}y._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",y.punctuation=_(y.punctuation).replace(/punctuation/g,y._punctuation).getRegex(),y.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,y.escapedEmSt=/(?:^|[^\\])(?:\\\\)*\\[*_]/g,y._comment=_(N._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),y.emStrong.lDelim=_(y.emStrong.lDelim).replace(/punct/g,y._punctuation).getRegex(),y.emStrong.rDelimAst=_(y.emStrong.rDelimAst,"g").replace(/punct/g,y._punctuation).getRegex(),y.emStrong.rDelimUnd=_(y.emStrong.rDelimUnd,"g").replace(/punct/g,y._punctuation).getRegex(),y._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,y._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,y._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,y.autolink=_(y.autolink).replace("scheme",y._scheme).replace("email",y._email).getRegex(),y._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,y.tag=_(y.tag).replace("comment",y._comment).replace("attribute",y._attribute).getRegex(),y._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,y._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,y._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,y.link=_(y.link).replace("label",y._label).replace("href",y._href).replace("title",y._title).getRegex(),y.reflink=_(y.reflink).replace("label",y._label).replace("ref",N._label).getRegex(),y.nolink=_(y.nolink).replace("ref",N._label).getRegex(),y.reflinkSearch=_(y.reflinkSearch,"g").replace("reflink",y.reflink).replace("nolink",y.nolink).getRegex(),y.normal={...y},y.pedantic={...y.normal,strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:_(/^!?\[(label)\]\((.*?)\)/).replace("label",y._label).getRegex(),reflink:_(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",y._label).getRegex()},y.gfm={...y.normal,escape:_(y.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},y.gfm.url=_(y.gfm.url,"i").replace("email",y.gfm._extended_email).getRegex(),y.breaks={...y.gfm,br:_(y.br).replace("{2,}","*").getRegex(),text:_(y.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()};class I{constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||e,this.options.tokenizer=this.options.tokenizer||new R,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={block:N.normal,inline:y.normal};this.options.pedantic?(n.block=N.pedantic,n.inline=y.pedantic):this.options.gfm&&(n.block=N.gfm,this.options.breaks?n.inline=y.breaks:n.inline=y.gfm),this.tokenizer.rules=n}static get rules(){return{block:N,inline:y}}static lex(e,t){return new I(t).lex(e)}static lexInline(e,t){return new I(t).inlineTokens(e)}lex(e){let t;for(e=e.replace(/\r\n|\r/g,"\n"),this.blockTokens(e,this.tokens);t=this.inlineQueue.shift();)this.inlineTokens(t.src,t.tokens);return this.tokens}blockTokens(e,t=[]){let n,a,i,r;for(e=this.options.pedantic?e.replace(/\t/g," ").replace(/^ +$/gm,""):e.replace(/^( *)(\t+)/gm,(e,t,n)=>t+" ".repeat(n.length));e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(a=>!!(n=a.call({lexer:this},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)))){if(n=this.tokenizer.space(e))e=e.substring(n.raw.length),1===n.raw.length&&t.length>0?t[t.length-1].raw+="\n":t.push(n);else if(n=this.tokenizer.code(e))e=e.substring(n.raw.length),(a=t[t.length-1])&&("paragraph"===a.type||"text"===a.type)?(a.raw+="\n"+n.raw,a.text+="\n"+n.text,this.inlineQueue[this.inlineQueue.length-1].src=a.text):t.push(n);else if(n=this.tokenizer.fences(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.heading(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.hr(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.blockquote(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.list(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.html(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.def(e))e=e.substring(n.raw.length),(a=t[t.length-1])&&("paragraph"===a.type||"text"===a.type)?(a.raw+="\n"+n.raw,a.text+="\n"+n.raw,this.inlineQueue[this.inlineQueue.length-1].src=a.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title});else if(n=this.tokenizer.table(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.lheading(e))e=e.substring(n.raw.length),t.push(n);else{if(i=e,this.options.extensions&&this.options.extensions.startBlock){let t,n=1/0,a=e.slice(1);this.options.extensions.startBlock.forEach(function(e){"number"==typeof(t=e.call({lexer:this},a))&&t>=0&&(n=Math.min(n,t))}),n<1/0&&n>=0&&(i=e.substring(0,n+1))}if(this.state.top&&(n=this.tokenizer.paragraph(i)))a=t[t.length-1],r&&"paragraph"===a.type?(a.raw+="\n"+n.raw,a.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):t.push(n),r=i.length!==e.length,e=e.substring(n.raw.length);else if(n=this.tokenizer.text(e))e=e.substring(n.raw.length),(a=t[t.length-1])&&"text"===a.type?(a.raw+="\n"+n.raw,a.text+="\n"+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):t.push(n);else if(e){let t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n,a,i,r,s,o,l=e;if(this.tokens.links){let e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(r=this.tokenizer.rules.inline.reflinkSearch.exec(l));)e.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,r.index)+"["+v("a",r[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(r=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,r.index)+"["+v("a",r[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(r=this.tokenizer.rules.inline.escapedEmSt.exec(l));)l=l.slice(0,r.index+r[0].length-2)+"++"+l.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex),this.tokenizer.rules.inline.escapedEmSt.lastIndex--;for(;e;)if(s||(o=""),s=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(a=>!!(n=a.call({lexer:this},e,t))&&(e=e.substring(n.raw.length),t.push(n),!0)))){if(n=this.tokenizer.escape(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.tag(e))e=e.substring(n.raw.length),(a=t[t.length-1])&&"text"===n.type&&"text"===a.type?(a.raw+=n.raw,a.text+=n.text):t.push(n);else if(n=this.tokenizer.link(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(n.raw.length),(a=t[t.length-1])&&"text"===n.type&&"text"===a.type?(a.raw+=n.raw,a.text+=n.text):t.push(n);else if(n=this.tokenizer.emStrong(e,l,o))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.codespan(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.br(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.del(e))e=e.substring(n.raw.length),t.push(n);else if(n=this.tokenizer.autolink(e,A))e=e.substring(n.raw.length),t.push(n);else if(!this.state.inLink&&(n=this.tokenizer.url(e,A)))e=e.substring(n.raw.length),t.push(n);else{if(i=e,this.options.extensions&&this.options.extensions.startInline){let t,n=1/0,a=e.slice(1);this.options.extensions.startInline.forEach(function(e){"number"==typeof(t=e.call({lexer:this},a))&&t>=0&&(n=Math.min(n,t))}),n<1/0&&n>=0&&(i=e.substring(0,n+1))}if(n=this.tokenizer.inlineText(i,O))e=e.substring(n.raw.length),"_"!==n.raw.slice(-1)&&(o=n.raw.slice(-1)),s=!0,(a=t[t.length-1])&&"text"===a.type?(a.raw+=n.raw,a.text+=n.text):t.push(n);else if(e){let t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw Error(t)}}}return t}}class D{constructor(t){this.options=t||e}code(e,t,n){let a=(t||"").match(/\S*/)[0];if(this.options.highlight){let t=this.options.highlight(e,a);null!=t&&t!==e&&(n=!0,e=t)}return e=e.replace(/\n$/,"")+"\n",a?'<pre><code class="'+this.options.langPrefix+o(a)+'">'+(n?e:o(e,!0))+"</code></pre>\n":"<pre><code>"+(n?e:o(e,!0))+"</code></pre>\n"}blockquote(e){return`<blockquote> +${e}</blockquote> +`}html(e){return e}heading(e,t,n,a){return this.options.headerIds?`<h${t} id="${this.options.headerPrefix+a.slug(n)}">${e}</h${t}> +`:`<h${t}>${e}</h${t}> +`}hr(){return this.options.xhtml?"<hr/>\n":"<hr>\n"}list(e,t,n){let a=t?"ol":"ul";return"<"+a+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"</"+a+">\n"}listitem(e){return`<li>${e}</li> +`}checkbox(e){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "}paragraph(e){return`<p>${e}</p> +`}table(e,t){return t&&(t=`<tbody>${t}</tbody>`),"<table>\n<thead>\n"+e+"</thead>\n"+t+"</table>\n"}tablerow(e){return`<tr> +${e}</tr> +`}tablecell(e,t){let n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`</${n}> +`}strong(e){return`<strong>${e}</strong>`}em(e){return`<em>${e}</em>`}codespan(e){return`<code>${e}</code>`}br(){return this.options.xhtml?"<br/>":"<br>"}del(e){return`<del>${e}</del>`}link(e,t,n){if(null===(e=p(this.options.sanitize,this.options.baseUrl,e)))return n;let a='<a href="'+e+'"';return t&&(a+=' title="'+t+'"'),a+=">"+n+"</a>"}image(e,t,n){if(null===(e=p(this.options.sanitize,this.options.baseUrl,e)))return n;let a=`<img src="${e}" alt="${n}"`;return t&&(a+=` title="${t}"`),a+=this.options.xhtml?"/>":">"}text(e){return e}}class w{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,t,n){return""+n}image(e,t,n){return""+n}br(){return""}}class x{constructor(){this.seen={}}serialize(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(e,t){let n=e,a=0;if(this.seen.hasOwnProperty(n)){a=this.seen[e];do n=e+"-"+ ++a;while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=a,this.seen[n]=0),n}slug(e,t={}){let n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)}}class L{constructor(t){this.options=t||e,this.options.renderer=this.options.renderer||new D,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new w,this.slugger=new x}static parse(e,t){return new L(t).parse(e)}static parseInline(e,t){return new L(t).parseInline(e)}parse(e,t=!0){let n,a,i,r,s,o,l,d,_,u,m,p,g,E,S,b,h,f,T,v="",C=e.length;for(n=0;n<C;n++)if(u=e[n],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[u.type]&&(!1!==(T=this.options.extensions.renderers[u.type].call({parser:this},u))||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(u.type)))v+=T||"";else switch(u.type){case"space":continue;case"hr":v+=this.renderer.hr();continue;case"heading":v+=this.renderer.heading(this.parseInline(u.tokens),u.depth,c(this.parseInline(u.tokens,this.textRenderer)),this.slugger);continue;case"code":v+=this.renderer.code(u.text,u.lang,u.escaped);continue;case"table":for(d="",l="",r=u.header.length,a=0;a<r;a++)l+=this.renderer.tablecell(this.parseInline(u.header[a].tokens),{header:!0,align:u.align[a]});for(d+=this.renderer.tablerow(l),_="",r=u.rows.length,a=0;a<r;a++){for(o=u.rows[a],l="",s=o.length,i=0;i<s;i++)l+=this.renderer.tablecell(this.parseInline(o[i].tokens),{header:!1,align:u.align[i]});_+=this.renderer.tablerow(l)}v+=this.renderer.table(d,_);continue;case"blockquote":_=this.parse(u.tokens),v+=this.renderer.blockquote(_);continue;case"list":for(m=u.ordered,p=u.start,g=u.loose,r=u.items.length,_="",a=0;a<r;a++)b=(S=u.items[a]).checked,h=S.task,E="",S.task&&(f=this.renderer.checkbox(b),g?S.tokens.length>0&&"paragraph"===S.tokens[0].type?(S.tokens[0].text=f+" "+S.tokens[0].text,S.tokens[0].tokens&&S.tokens[0].tokens.length>0&&"text"===S.tokens[0].tokens[0].type&&(S.tokens[0].tokens[0].text=f+" "+S.tokens[0].tokens[0].text)):S.tokens.unshift({type:"text",text:f}):E+=f),E+=this.parse(S.tokens,g),_+=this.renderer.listitem(E,h,b);v+=this.renderer.list(_,m,p);continue;case"html":v+=this.renderer.html(u.text);continue;case"paragraph":v+=this.renderer.paragraph(this.parseInline(u.tokens));continue;case"text":for(_=u.tokens?this.parseInline(u.tokens):u.text;n+1<C&&"text"===e[n+1].type;)_+="\n"+((u=e[++n]).tokens?this.parseInline(u.tokens):u.text);v+=t?this.renderer.paragraph(_):_;continue;default:{let e='Token with "'+u.type+'" type was not found.';if(this.options.silent)return void console.error(e);throw Error(e)}}return v}parseInline(e,t){t=t||this.renderer;let n,a,i,r="",s=e.length;for(n=0;n<s;n++)if(a=e[n],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[a.type]&&(!1!==(i=this.options.extensions.renderers[a.type].call({parser:this},a))||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(a.type)))r+=i||"";else switch(a.type){case"escape":case"text":r+=t.text(a.text);break;case"html":r+=t.html(a.text);break;case"link":r+=t.link(a.href,a.title,this.parseInline(a.tokens,t));break;case"image":r+=t.image(a.href,a.title,a.text);break;case"strong":r+=t.strong(this.parseInline(a.tokens,t));break;case"em":r+=t.em(this.parseInline(a.tokens,t));break;case"codespan":r+=t.codespan(a.text);break;case"br":r+=t.br();break;case"del":r+=t.del(this.parseInline(a.tokens,t));break;default:{let e='Token with "'+a.type+'" type was not found.';if(this.options.silent)return void console.error(e);throw Error(e)}}return r}}class M{constructor(t){this.options=t||e}static passThroughHooks=new Set(["preprocess","postprocess"]);preprocess(e){return e}postprocess(e){return e}}function P(e,t){return(n,a,i)=>{var r,s,l,c;"function"==typeof a&&(i=a,a=null);let d={...a},_=(r=(a={...k.defaults,...d}).silent,s=a.async,l=i,e=>{if(e.message+="\nPlease report this to https://github.com/markedjs/marked.",r){let t="<p>An error occurred:</p><pre>"+o(e.message+"",!0)+"</pre>";return s?Promise.resolve(t):l?void l(null,t):t}if(s)return Promise.reject(e);if(!l)throw e;l(e)});if(null==n)return _(Error("marked(): input parameter is undefined or null"));if("string"!=typeof n)return _(Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if((c=a)&&c.sanitize&&!c.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options"),a.hooks&&(a.hooks.options=a),i){let r;let s=a.highlight;try{a.hooks&&(n=a.hooks.preprocess(n)),r=e(n,a)}catch(e){return _(e)}let o=function(e){let n;if(!e)try{a.walkTokens&&k.walkTokens(r,a.walkTokens),n=t(r,a),a.hooks&&(n=a.hooks.postprocess(n))}catch(t){e=t}return a.highlight=s,e?_(e):i(null,n)};if(!s||s.length<3||(delete a.highlight,!r.length))return o();let l=0;return k.walkTokens(r,function(e){"code"===e.type&&(l++,setTimeout(()=>{s(e.text,e.lang,function(t,n){if(t)return o(t);null!=n&&n!==e.text&&(e.text=n,e.escaped=!0),0==--l&&o()})},0))}),void(0===l&&o())}if(a.async)return Promise.resolve(a.hooks?a.hooks.preprocess(n):n).then(t=>e(t,a)).then(e=>a.walkTokens?Promise.all(k.walkTokens(e,a.walkTokens)).then(()=>e):e).then(e=>t(e,a)).then(e=>a.hooks?a.hooks.postprocess(e):e).catch(_);try{a.hooks&&(n=a.hooks.preprocess(n));let i=e(n,a);a.walkTokens&&k.walkTokens(i,a.walkTokens);let r=t(i,a);return a.hooks&&(r=a.hooks.postprocess(r)),r}catch(e){return _(e)}}}function k(e,t,n){return P(I.lex,L.parse)(e,t,n)}return k.options=k.setOptions=function(t){return k.defaults={...k.defaults,...t},e=k.defaults,k},k.getDefaults=function(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}},k.defaults=e,k.use=function(...e){let t=k.defaults.extensions||{renderers:{},childTokens:{}};e.forEach(e=>{let n={...e};if(n.async=k.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error("extension name required");if(e.renderer){let n=t.renderers[e.name];t.renderers[e.name]=n?function(...t){let a=e.renderer.apply(this,t);return!1===a&&(a=n.apply(this,t)),a}:e.renderer}if(e.tokenizer){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw Error("extension level must be 'block' or 'inline'");t[e.level]?t[e.level].unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=k.defaults.renderer||new D;for(let n in e.renderer){let a=t[n];t[n]=(...i)=>{let r=e.renderer[n].apply(t,i);return!1===r&&(r=a.apply(t,i)),r}}n.renderer=t}if(e.tokenizer){let t=k.defaults.tokenizer||new R;for(let n in e.tokenizer){let a=t[n];t[n]=(...i)=>{let r=e.tokenizer[n].apply(t,i);return!1===r&&(r=a.apply(t,i)),r}}n.tokenizer=t}if(e.hooks){let t=k.defaults.hooks||new M;for(let n in e.hooks){let a=t[n];M.passThroughHooks.has(n)?t[n]=i=>{if(k.defaults.async)return Promise.resolve(e.hooks[n].call(t,i)).then(e=>a.call(t,e));let r=e.hooks[n].call(t,i);return a.call(t,r)}:t[n]=(...i)=>{let r=e.hooks[n].apply(t,i);return!1===r&&(r=a.apply(t,i)),r}}n.hooks=t}if(e.walkTokens){let t=k.defaults.walkTokens;n.walkTokens=function(n){let a=[];return a.push(e.walkTokens.call(this,n)),t&&(a=a.concat(t.call(this,n))),a}}k.setOptions(n)})},k.walkTokens=function(e,t){let n=[];for(let a of e)switch(n=n.concat(t.call(k,a)),a.type){case"table":for(let e of a.header)n=n.concat(k.walkTokens(e.tokens,t));for(let e of a.rows)for(let a of e)n=n.concat(k.walkTokens(a.tokens,t));break;case"list":n=n.concat(k.walkTokens(a.items,t));break;default:k.defaults.extensions&&k.defaults.extensions.childTokens&&k.defaults.extensions.childTokens[a.type]?k.defaults.extensions.childTokens[a.type].forEach(function(e){n=n.concat(k.walkTokens(a[e],t))}):a.tokens&&(n=n.concat(k.walkTokens(a.tokens,t)))}return n},k.parseInline=P(I.lexInline,L.parseInline),k.Parser=L,k.parser=L.parse,k.Renderer=D,k.TextRenderer=w,k.Lexer=I,k.lexer=I.lex,k.Tokenizer=R,k.Slugger=x,k.Hooks=M,k.parse=k,k.options,k.setOptions,k.use,k.walkTokens,k.parseInline,L.parse,I.lex,()=>{let e,t,n=null;function a(){if(n&&!n.closed)n.focus();else{if((n=window.open("about:blank","reveal.js - Notes","width=1100,height=700")).marked=k,n.document.write("\x3c!--\n NOTE: You need to build the notes plugin after making changes to this file.\n--\x3e\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n\n <title>reveal.js - Speaker View\n\n \n \n\n \n\n
    Loading speaker view...
    \n\n
    \n
    Upcoming
    \n
    \n
    \n

    Time Click to Reset

    \n
    \n 0:00 AM\n
    \n
    \n 00:00:00\n
    \n
    \n\n

    Pacing \u2013 Time to finish current slide

    \n
    \n 00:00:00\n
    \n
    \n\n
    \n

    Notes

    \n
    \n
    \n
    \n
    \n \n \n
    \n\n

    Abstrakte und finale Klassen und Methoden

    Mit Hilfe der Schlüsselwörter abstract und final kann die Verwendung von +Klassen vorgegeben bzw. eingeschänkt werden:

    +
      +
    • Abstrakte Klassen können nicht instanziiert werden
    • +
    • Abstrakte Methoden werden in abstrakten Klassen definiert, besitzen dort +keinen Methodenrumpf und müssen in den abgeleiteten Klassen der abstrakten +Klasse überschrieben werden
    • +
    • Finale Klassen können nicht abgeleitet werden
    • +
    • Finale Methoden können nicht überschrieben werden
    • +
    +
    Computer.java (Auszug)
    public abstract class Computer {
    ...
    public abstract ArrayList<String> getSpecification();

    public final CPU getCpu() {
    return cpu;
    }
    ...
    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/activity-diagrams/index.html b/pr-preview/pr-238/documentation/activity-diagrams/index.html new file mode 100644 index 0000000000..15c1679fd3 --- /dev/null +++ b/pr-preview/pr-238/documentation/activity-diagrams/index.html @@ -0,0 +1,23 @@ +Aktivitätsdiagramme | Programmieren mit Java

    Aktivitätsdiagramme

    Aktivitätsdiagramme sind ein Diagrammtyp der UML und gehören dort zum Bereich +der Verhaltensdiagramme. Der Fokus von Aktivitätsdiagrammen liegt auf +imperativen Verarbeitungsaspekten. Eine Aktivität stellt einen gerichteten +Graphen dar, der über Knoten (Aktionen, Datenknoten und Kontrollknoten) und +Kanten (Kontrollflüsse und Datenflüsse) verfügt:

    +
      +
    • Aktionen sind elementare Bausteine für beliebiges, benutzerdefiniertes +Verhalten
    • +
    • Kontrollknoten steuern den Kontroll- und Datenfluss in einer Aktivität: +
        +
      • Startknoten: legen den Beginn der Aktivität fest
      • +
      • Endknoten: legen das Ende der Aktivität fest
      • +
      • Ablaufendknoten: legen das Ende eines Ablaufes fest
      • +
      • Verzweigungsknoten: ermöglichen die Verzweigung von Abläufen
      • +
      • Zusammenführungsknoten: ermöglichen die Zusammenführung von Abläufen
      • +
      +
    • +
    • Datenknoten sind Hilfsknoten, die als ein- oder ausgehende Parameter einer +Aktion verwendet werden können
    • +
    • Kontroll- und Datenflüsse legen Abläufe zwischen Vorgänger- und +Nachfolger-Knoten fest
    • +
    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/algorithms/index.html b/pr-preview/pr-238/documentation/algorithms/index.html new file mode 100644 index 0000000000..2a1c875f13 --- /dev/null +++ b/pr-preview/pr-238/documentation/algorithms/index.html @@ -0,0 +1,97 @@ +Algorithmen | Programmieren mit Java

    Algorithmen

    Ein Algorithmus stellt ein Verfahren zur Lösung eines Problems mit einer +endlichen Anzahl von Schritten dar. In der Prpgrammierung ist ein Algorithmus +eine Reihe von Anweisungen, die festlegen, was und wie etwas getan werden muss. +Zielsetzung ist dabei, aus einer gegebenen Eingabe eine entsprechende Ausgabe zu +erhalten. Beispiele aus der realen Welt für Algorithmen sind Aufbauanleitungen, +Rezepte, Spielanleitungen und Beipackzettel.

    + +

    Das nachfolgende Rezept beschreibt die Zubereitung von Pankcakes:

    +
      +
    1. 3 Eiweiss zu festem Eischnee verarbeiten
    2. +
    3. 3 Eigelb und 50g Zucker schaumig rühren
    4. +
    5. 300g Mehl, 300g Milch, 1 TL Backpulver und etwas Salz unter die +Eigelb-Zuckermasse rühren
    6. +
    7. Sollte der Teig zu fest sein, zusätzlich Milch unterrühren
    8. +
    9. Den Eischnee unter den Teig heben
    10. +
    11. Eine Pfanne mit etwas Fett erhitzen
    12. +
    13. Die Pancakes goldgelb ausbacken
    14. +
    15. Die Pancakes mit Puderzucker und Ahornsirup servieren
    16. +
    +
    Hinweis

    Die Überführung einer formalen Anleitung, also ein Algorithmus, in ein +ausführbares Programm bezeichnet man als Programmierung.

    +

    Eigenschaften von Algorithmen

    +

    Damit ein Verfahren als Algorithmus angesehen werden kann, muss es verschiedene +Eigenschaften erfüllen:

    +
      +
    • Determiniertheit: Ein Verfahren ist deterministisch, wenn es bei beliebig +häufiger Wiederholung für gleiche Eingabewerte und gleichen Rahmenbedingungen +immer zum gleichen Ergebnis führt.
    • +
    • Eindeutigkeit (Determinismus): Ein Verfahren ist determiniert, wenn die +Schrittfolge immer gleich ist und immer zu einem eindeutigen Ergebnis führt.
    • +
    • Endlichkeit (Terminiertheit): Ein Verfahren ist terministisch, wenn die Anzahl +der Schritte endlich ist, also wenn das Verfahren nach endlichen Schritten ein +Ergebnis liefert.
    • +
    • Korrektheit: Ein Verfahren ist korrekt, wenn es immer zu einem richtigen +Ergebnis führt.
    • +
    +

    Komplexität von Algorithmen

    +

    Da der Zeitaufwand von Algorithmen aufgrund unterschiedlicher Faktoren +(Hardware, parallele Verarbeitung, Eingabereihenfolge,…) nicht genau ermittelt +werden kann, wird diese mit Hilfe der Landau-Notation 𝒪 (Ordnung von) +dargestellt. Diese teilt Algorithmen in unterschiedliche Komplexitätsklassen +(logarithmisch, linear, polynomial,…) ein. Die Komplexität einer Klasse ergibt +sich dabei aus der Anzahl der Schritte, die abhängig von der Größe der +Eingangsvariablen ausgeführt werden müssen.

    +

    Suchalgorithmen

    +

    Suchalgorithmen sollen innerhalb einer Datensammlung einen oder mehrere +Datensätze mit bestimmten Eigenschaften finden.

    +
    AlgorithmusKomplexität Best CaseKomplexität Average CaseKomplexität Worst Case
    Linearsuche𝒪(1)𝒪(𝑛)𝒪(𝑛)
    Binärsuche𝒪(1)𝒪(𝑙𝑜𝑔 ⁡𝑛)𝒪(𝑙𝑜𝑔 ⁡𝑛)
    Interpolationssuche𝒪(1)𝒪(𝑙𝑜𝑔 𝑙𝑜𝑔 ⁡𝑛)𝒪(𝑛)
    +

    Bei der Linearsuche werden alle Einträge einer Datensammlung nacheinander +durchlaufen, d.h. eine Suche kann im besten Fall beim ersten Eintrag und im +schlechtesten Fall beim letzten Eintrag beendet sein. Bei einer erfolglosen +Suche müssen alle Einträge durchlaufen werden.

    Im nachfolgenden Beispiel wird die Zahlenfolge +12, 16, 36, 49, 50, 68, 70, 76, 99 nach dem Wert 70 durchsucht.
    Index1234567
    0[12]121212121212
    116[16]1616161616
    23636[36]36363636
    3494949[49]494949
    450505050[50]5050
    56868686868[68]68
    6707070707070[70]
    776767676767676
    899999999999999

    Hinweis

    Durch vorheriges Sortieren der Sammlung kann die Leistung des Algorithmus +verbessert werden.

    +

    Sortieralgorithmen

    +

    Sortieralgorithmen sollen eine möglichst effiziente Speicherung von Daten und +deren Auswertung ermöglichen. Man unterscheidet dabei zwischen einfachen und +rekursiven Sortieralgorithmen. Zusätzlich wird bei Sortierverfahren zwischen +stabilen und nichtstabilen Verfahren unterschieden. Bei stabilen +Sortierverfahren bleibt die Reihenfolge von gleich großen Datensätzen bei der +Sortierung erhalten. Die Platzkomplexität eines Sortierverfahrens schließlich +gibt an, ob zusätzlicher Speicherplatz für Zwischenergebnisse unabhängig von der +Anzahl Daten ist (in-place) oder nicht (out-of-place).

    +
    AlgorithmusKomplexität Best CaseKomplexität Average CaseKomplexität Worst CaseStabilIn-Place
    Bubblesort𝒪(𝑛2)𝒪(𝑛2)𝒪(𝑛2)jaja
    Insertionsort𝒪(𝑛)𝒪(𝑛2)𝒪(𝑛2)jaja
    Selectionsort𝒪(𝑛2)𝒪(𝑛2)𝒪(𝑛2)neinja
    Quicksort𝒪(𝑛 𝑙𝑜𝑔 ⁡𝑛)𝒪(𝑛 𝑙𝑜𝑔 ⁡𝑛)𝒪(𝑛2)neinja
    Mergesort𝒪(𝑛 𝑙𝑜𝑔 ⁡𝑛)𝒪(𝑛 𝑙𝑜𝑔 ⁡𝑛)𝒪(𝑛 𝑙𝑜𝑔 ⁡𝑛)janein
    Heapsort𝒪(𝑛 𝑙𝑜𝑔 ⁡𝑛)𝒪(𝑛 𝑙𝑜𝑔 ⁡𝑛)𝒪(𝑛 𝑙𝑜𝑔 ⁡𝑛)neinja
    +

    Der Bubblesort verfolgt die Idee, das größere Blasen schneller aufsteigen als +kleinere. Dementsprechend werden beim Bubblesort Nachbarelemente miteinander +verglichen und gegebenenfalls vertauscht, so dass am Ende eines Durchlaufs das +jeweils größte Element am Ende des noch unsortierten Teils steht.
    Index0123456789
    012121212121212121212
    199505036363636161616
    250683649494916363636
    368364950501649494949
    436496868165050505050
    549767016686868686868
    676701670707070707070
    770167676767676767676
    816999999999999999999

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/array-lists/index.html b/pr-preview/pr-238/documentation/array-lists/index.html new file mode 100644 index 0000000000..a2f6f6f0ab --- /dev/null +++ b/pr-preview/pr-238/documentation/array-lists/index.html @@ -0,0 +1,5 @@ +Feldbasierte Listen (ArrayLists) | Programmieren mit Java

    Feldbasierte Listen (ArrayLists)

    Um das Arbeiten mit Feldern zu erleichtern, stellt die Java API die Klasse +ArrayList<E> zur Verfügung. Diese stellt eine veränderbare Liste dynamischer +Größe auf Basis eines Feldes dar und bietet hilfreiche Methoden zum Hinzufügen, +Ändern, Löschen und Lesen von Listelementen.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    list.add("Hans");
    list.add("Peter");
    list.add("Lisa");

    System.out.println(list.size());
    System.out.println(list.get(0));
    list.set(0, "Max");
    list.add("Heidi");
    list.remove(0);
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/arrays/index.html b/pr-preview/pr-238/documentation/arrays/index.html new file mode 100644 index 0000000000..10cc360eb5 --- /dev/null +++ b/pr-preview/pr-238/documentation/arrays/index.html @@ -0,0 +1,29 @@ +Felder (Arrays) | Programmieren mit Java

    Felder (Arrays)

    Wenn eine große Menge an Daten verarbeitet werden soll, kann man auf spezielle +Datenstruktur-Variablen, sogenannte Felder (Arrays), zurückgreifen. Die +einzelnen Speicherplätze in einem Feld werden als Elemente bezeichnet, die über +einen Index angesprochen werden können.

    +
    01234
    HansPeterLisaMaxHeidi
    +

    Erzeugen von Feldern

    +

    Da es sich bei Feldern um Objekte handelt, müssen diese vor Verwendung erzeugt +werden. Bei der Erzeugung muss immer die Länge des Feldes (d.h. die Anzahl der +Elemente) angegeben werden. Jedes Feld verfügt über das Attribut length, +welches die Länge des Feldes enthält.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int[] ids = new int[5];
    System.out.println(Arrays.toString(ids));
    int[] ids2 = {4, 8, 15, 16, 23, 42};
    System.out.println(Arrays.toString(ids2));
    }

    }
    +
    Hinweis

    Felder werden zwar mit Hilfe des new-Operators erzeugt, besitzen aber keinen +Konstruktor.

    +

    Zugriff auf Feldelemente

    +

    Der Zugriff auf die Elemente eines Feldes erfolgt über die Angabe des +entsprechenden Index.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int[] ids = {4, 8, 15, 16, 23, 42};

    for (int i = 0; i < ids.length; i++) {
    System.out.println(ids[i]);
    }
    }

    }
    +
    Hinweis

    Der Index beginnt bei Java bei 0.

    +

    Der Parameter String[] args

    +

    Der Parameter String[] args der main-Methode ermöglicht es dem Anwender, der +ausführbaren Klasse beim Aufruf Informationen mitzugeben.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    for (int i = 0; i < args.length; i++) {
    System.out.println("args[" + i + "]: " + args[i]);
    }
    }

    }
    +

    Variable Argumentlisten (VarArgs)

    +

    Variable Argumentlisten (VarArgs) ermöglichen die Definition von Methoden, denen +beliebig viele Werte eines Datentyps mitgegeben werden können. Die +Parameterliste einer Methode kann allerdings nur eine variable Argumentliste +beinhalten und diese muss immer am Ende der Parameterliste stehen.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    printAll("Peter", "Lisa");
    printAll("Heidi", "Franz", "Fritz");
    }

    public static void printAll(String... texts) {
    for (int i = 0; i < texts.length; i++) {
    System.out.println(texts[i]);
    }
    }

    }
    +
    Hinweis

    Technisch gesehen handelt es sich bei einer variablen Argumentliste um ein Feld.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/calculations/index.html b/pr-preview/pr-238/documentation/calculations/index.html new file mode 100644 index 0000000000..5440aae0e3 --- /dev/null +++ b/pr-preview/pr-238/documentation/calculations/index.html @@ -0,0 +1,4 @@ +Mathematische Berechnungen | Programmieren mit Java

    Mathematische Berechnungen

    Die Klasse Math stellt neben einigen Konstanten wie der Kreiszahl Pi und der +Eulerschen Zahl E zahlreiche Methoden für mathematische Berechnungen zur +Verfügung.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int a = 5;
    int b = 3;
    double result;

    result = Math.pow(a, b);
    System.out.println(result);

    result = Math.sqrt(a);
    System.out.println(result);
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/cases/index.html b/pr-preview/pr-238/documentation/cases/index.html new file mode 100644 index 0000000000..35f7c27fbc --- /dev/null +++ b/pr-preview/pr-238/documentation/cases/index.html @@ -0,0 +1,32 @@ +Verzweigungen | Programmieren mit Java

    Verzweigungen

    Mit Hilfe von Verzweigungen können unterschiedliche Anweisungsblöcke ausgeführt +werden. Verzweigungen sind - genau wie Schleifen - wesentliche Bestandteile der +Programmierung un werden auch als Kontrollstrukturen bezeichnet.

    +

    Einfache Verzweigungen

    +

    Die if-Verzweigung ist eine Anweisung, die abhängig von einer Bedingung zwischen +unterschiedlichen Anweisungsblöcken auswählt: Ist die Bedingung wahr, wird der +Anweisungsblock direkt nach der Bedingung ausgeführt, ansonsten wird der +Anweisungsblock nach else ausgeführt.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int a = 3, b = 4, c;

    if (a > b) {
    c = a - b;
    } else {
    c = b - a;
    }

    System.out.println(c);
    }

    }
    +
    Hinweis

    Der else-Zweig ist optional, kann also weggelassen werden.

    +

    Kaskadierte Verzweigungen

    +

    Mehrfachverzweigungen können mit Hilfe einer if-else-if-Leiter abgebildet +werden. Die if-else-if-Leiter verschachtelt mehrere if-Anweisungen zu einer +sogenannten kaskadierten Verzweigung.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int amount = 6;

    if (amount >= 10) {
    System.out.println("viel");
    } else if (amount == 0) {
    System.out.println("nichts");
    } else if (amount > 0 && amount <= 5) {
    System.out.println("wenig");
    } else if (amount < 0) {
    System.out.println("nicht definiert");
    } else {
    System.out.println("irgendwas zwischen wenig und viel");
    }
    }

    }
    +

    Bedingte Zuweisungen

    +

    Wird eine if-Verzweigung für eine Wertzuweisung verwendet, spricht man von einer +bedingten Zuweisung. Zusätzlich zur ausführlichen Schreibweise existiert für +bedingte Zuweisungen auch eine Kurzschreibweise.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int x = 1;
    int y = 2;
    int z;

    /* ausführliche Schreibweise */
    if (x > y) {
    z = 3;
    } else {
    z = 4;
    }
    System.out.println(z);

    /* Kurzschreibweise */
    z = (x > y) ? 3 : 4;
    System.out.println(z);
    }

    }
    +
    Hinweis

    Die Kurzschreibweise sollte verantwortungsvoll verwendet werden, da die +Lesbarkeit dadurch eventuell erschwert wird.

    +

    Mehrfachverzweigungen

    +

    Mehrfachverzweigungen können entweder mit Hilfe von if-else-if-Leitern oder mit +Hilfe der switch-case-Anweisung realisiert werden. Tritt ein Fall ein, werden +alle Anweisungen bis zum nächsten break ausgeführt. Durch Weglassen von +break können unterschiedliche Fälle gleich behandelt werden. Der default-Block +wird immer dann ausgeführt, wenn keiner der aufgeführten Fälle eintritt.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    String color = "r";
    switch (color) {
    case "r":
    case "R":
    System.out.println("rot");
    break;
    case "g":
    case "G":
    System.out.println("grün");
    break;
    case "b":
    case "B":
    System.out.println("blau");
    break;
    default:
    break;
    }
    }

    }
    +

    Seit Java 14 beheben Switch-Ausdrücke einige Ungereimtheiten der klassischen +switch-case-Anweisung und ermöglichen eine elegantere Syntax.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    String color = "r";

    String colorText = switch (color) {
    case "r", "R" -> "rot";
    case "g", "G" -> "grün";
    case "b", "B" -> "blau";
    default -> "";
    };

    System.out.println(colorText);
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/class-diagrams/index.html b/pr-preview/pr-238/documentation/class-diagrams/index.html new file mode 100644 index 0000000000..bca1bb70a4 --- /dev/null +++ b/pr-preview/pr-238/documentation/class-diagrams/index.html @@ -0,0 +1,79 @@ +Klassendiagramme | Programmieren mit Java

    Klassendiagramme

    Klassendiagramme sind ein Diagrammtyp der UML und gehören dort zum Bereich der +Strukturdiagramme. Das Klassendiagramm dient zur leicht lesbaren Dokumentation +des Aufbaus von Klassen und deren Beziehungen (Relationen). Klassendiagramme +können Informationen zu den Attributen, den Methoden und weiteren +Klassen-Bestandteilen enthalten.

    +
    Hinweis

    UML (Unified Modeling Language) ist eine grafische Modellierungssprache zur +Darstellung von Software-Systemen. Sie wurde in den 1990er-Jahren entwickelt und +ist im ISO/IEC 19505 festgelegt. Die Sprache definiert mehrere Diagramme, die +sich in zwei Hauptgruppen aufteilen lassen: Struktur- und Verhaltensdiagramme.

    +

    Darstellung von Klassen

    +

    Klassen werden im Klassendiagramm als Rechteck mit verschiedenen Bereichen +(Klassenname, Attribute, Methoden und weitere Klassen-Bestandteile) dargestellt:

    +
      +
    • Der Klassenname wird zentriert, fett gedruckt und mit einem Großbuchstaben +beginnend dargestellt
    • +
    • Attribute werden nach dem Muster [Sichtbarkeit] Attributname: Datentyp [= +Standardwert] [{Eigenschaft}] dargestellt
    • +
    • Methoden nach dem Muster [Sichtbarkeit] Methoden-Signatur: Datentyp des +Rückgabewertes [{Eigenschaft}] dargestellt
    • +
    • Die Sichtbarkeit von Attributen und Methoden wird durch (farbige) Symbole +dargestellt: +
        +
      • Die Sichtbarkeit public wird durch das Symbol + bzw. die Farbe grün +dargestellt
      • +
      • Die Sichtbarkeit protected wird durch das Symbol # bzw. die Farbe gelb +dargestellt
      • +
      • Die Sichtbarkeit packaged wird durch das Symbol ~ bzw. die Farbe blau +dargestellt
      • +
      • Die Sichtbarkeit private wird durch das Symbol - bzw. die Farbe rot +dargestellt
      • +
      +
    • +
    • Statische Attribute und Methoden werden durch Unterstriche kenntlich gemacht
    • +
    • Finale Attribute und Methoden werden durch die Eigenschaft final kenntlich +gemacht
    • +
    • Abstrakte Methoden werden entweder kursiv dargestellt oder durch die +Eigenschaft abstract kenntlich gemacht
    • +
    + +

    Darstellung spezieller Klassen

    +

    Aufzählungen werden im Klassendiagramm durch den Stereotypen enumeration +kenntlich gemacht. Die Aufzählungskonstanten werden in einem zusätzlichen +Bereich aufgeführt. Der Stereotyp impliziert, dass die Aufzählung einen privaten +Konstruktor sowie ggbfs. passende Setter und Getter besitzt.

    +

    Darstellung von Assoziationen

    +

    Assoziationen stellen allgemeine Relationen zwischen zwei Klassen dar, bei der +eine Klasse eine andere Klasse verwendet. Assoziationen können in eine Richtung +(unidirektional) und in beide Richtungen (bidirektional) vorliegen.

    +

    Aggregationen und Kompositionen stellen spezielle Formen von Assoziationen dar, +bei denen ein Objekt der einen Klasse Teil einer anderen Klasse ist. Im +Gegensatz zu Aggregationen hängen bei Kompositionen die Teile von der Existenz +des Ganzen ab. Aggregationen werden daher auch als ist-Teil-von-Relationen, +Kompositionen als existenzabhängige ist-Teil-von-Relationen bezeichnet.

    +

    Assoziationen werden mit einem offenen Pfeil hin zur verwendeten Klasse +dargestellt.

    +
    Hinweis

    Assoziationen können gerichtet und ungerichtet dargestellt werden.

    +

    Darstellung von Vererbungs-und Realisierungs-Beziehungen

    +

    Vererbungs-Beziehungen werden mit einem geschlossenen Pfeil hin zur Oberklasse +sowie einer durchgezogenen Linie dargestellt, Realisierungs-Beziehungen mit +einem geschlossenen Pfeil hin zur Schnittstelle sowie einer gestrichelten Linie.

    + +

    Darstellung von Multiplizitäten

    +

    Die Multiplizität einer Beziehung legt fest, mit wie vielen Objekten der +gegenüberliegenden Klasse ein Objekt in Beziehung stehen kann. Die Multiplizität +wird als Intervall aus nicht-negativen ganzen Zahlen dargestellt und wird in der +Form [untere Schranke]..[obere Schranke] angegeben. Besitzen beide Schranken +den gleichen Wert, muss nur eine der beiden Schranken angegeben werden. Eine +nach oben unbeschränkte Schranke wird mit * angegeben.

    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/class-structure/index.html b/pr-preview/pr-238/documentation/class-structure/index.html new file mode 100644 index 0000000000..c82c8e8405 --- /dev/null +++ b/pr-preview/pr-238/documentation/class-structure/index.html @@ -0,0 +1,44 @@ +Aufbau einer Java-Klasse | Programmieren mit Java

    Aufbau einer Java-Klasse

    Klassen stellen den grundlegenden Rahmen für Programme dar. Jede Klasse kann +Daten (Attribute) und Routinen (Methoden) besitzen. Routinen bestehen dabei +aus Folgen von verzweigten und sich wiederholenden Anweisungen, wobei +Anweisungen wohldefinierte Befehle darstellen, die der Interpreter zur Laufzeit +ausführt. Anweisungen müssen in Java mit dem Semikolon abgeschlossen werden und +können zu Anweisungsblöcken zusammengefasst werden, die durch geschweifte +Klammern umschlossen werden. Innerhalb eines Anweisungsblocks können sich +weitere Anweisungsblöcke befinden.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    System.out.println("Winter is Coming");
    }

    }
    +

    Statische Methoden

    +

    Statische Methoden sind abgeschlossene Programmteile, die Parameter enthalten +und einen Wert zurückgeben können. Sie müssen mit dem Schlüsselwort static +gekennzeichnet werden. Bei statischen Methoden, die einen Wert zurückgeben, muss +der Datentyp des Rückgabewertes angegeben werden; bei statische Methoden, die +keinen Wert zurückgeben, das Schlüsselwort void. Der Aufruf einer statischen +Methode erfolgt über den Klassennamen gefolgt von einem Punkt.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    MainClass.printStarkMotto();
    MainClass.printText("Winter is Coming");
    }

    public static void printStarkMotto() {
    System.out.println("Winter is Coming");
    }

    public static void printText(String text) {
    System.out.println(text);
    }

    }
    +
    Hinweis

    Die statischen Methoden einer Startklasse werden auch als Unterprogramme +bezeichnet.

    +

    Die main-Methode

    +

    Die Methode void main(args: String[]) ist eine spezielle Methode in Java und +stellt Startpunkt sowie Endpunkt einer Anwendung bzw. eines Programms dar. Nur +Klassen mit einer main-Methode können von der Laufzeitumgebung ausgeführt +werden. Aus diesem Grund werden Klassen mit einer main-Methode auch als +ausführbare Klassen oder als Startklassen bezeichnet.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    System.out.println("Winter is Coming");
    }

    }
    +

    Kommentare und Dokumentation

    +

    Kommentare sollen die Lesbarkeit und Verwendbarkeit des Programms verbessern. +Sie bewirken bei der Ausführung keine Aktion und werden vom Java-Compiler +ignoriert. Man unterscheidet dabei zwischen Quellcode-Kommentaren, die einzelne +Anweisungen oder Anweisungsblöcke erklären und Dokumentationskommentaren, die +Beschreiben, wie eine Methode oder einer Klasse verwendet wird (siehe +Javadoc). In Java werden einzeilige Kommentare mit +//, Kommentarblöcke mit /* */ und Dokumentationskommentare mit /** */ +erstellt.

    +
    MainClass.java
    /**
    * Beschreibung der Klasse
    *
    * @author Autor der Klasse
    * @version Version
    *
    */
    public class MainClass {

    /**
    * Beschreibung der Methode
    *
    * @param args Beschreibung der Parameter
    */
    public static void main(String[] args) {
    /* Kommentarblock */
    System.out.println("Winter is Coming"); // Kommentar
    }

    }
    +
    Hinweis

    Guter Quellcode sollte immer selbsterklärend sein. Das heißt, dass auf den +Einsatz von Quellcode-Kommentaren i.d.R. verzichtet werden sollte.

    +

    Entwicklungspakete

    +

    Entwicklungspakete ermöglichen das hierarchische Strukturieren von Klassen. Um +die Klassen eines Entwicklungspaketes verwenden zu können, müssen die jeweiligen +Klassen explizit mit Hilfe des Schlüsselworts import importiert werden.

    + +
    Hinweis

    Die Klassen des Entwicklungspaketes java.lang müssen nicht importiert werden.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/classes/index.html b/pr-preview/pr-238/documentation/classes/index.html new file mode 100644 index 0000000000..31ec403baf --- /dev/null +++ b/pr-preview/pr-238/documentation/classes/index.html @@ -0,0 +1,64 @@ +Klassen | Programmieren mit Java

    Klassen

    Klassen legen die Eigenschafen (Attribute) sowie das Verhalten (Methoden) von +Objekten fest und stellen damit quasi Baupläne für Objekte dar.

    +

    Sichtbarkeit von Klassen, Attributen und Methoden

    +

    Um die Sichtbarkeit von Klassen, Attributen und Methoden zu definieren, +existieren verschiedene Zugriffsrechte. Die Sichtbarkeit bestimmt, von welchem +Ort aus Klassen, Attribute und Methoden verwendet bzw. aufgerufen werden dürfen.

    +
    ZugriffsrechtZugriff aus gleicher KlasseZugriff von einer Klasse aus dem gleichen PaketZugriff von einer UnterklasseZugriff von einer beliebigen Klasse
    publicjajajaja
    protectedjajajanein
    packagejajaneinnein
    privatejaneinneinnein
    +

    Definition von Attributen

    +

    Die Attribute einer Klasse sind Datenobjekte und werdern daher analog zu +Variablen und Konstanten definiert. Das Schlüsselwort final erlaubt die +Definition von unveränderlichen Attributen, also Attributen, deren Wert nicht +geändert werden kann. Die Initialisierung dieser unveränderlichen Attribute +erfolgt durch Konstruktoren.

    +
    Computer.java (Auszug)
    public class Computer {
    ...
    private final String description;
    private CPU cpu;
    private int memoryInGB;
    ...
    }
    +
    Hinweis

    Die Selbstreferenz this verweist innerhalb einer Klasse auf das eigene Objekt +(siehe auch Referenzen und Objekte).

    +

    Definition und Implementierung von Methoden

    +

    Methoden sind in der Programmierung eine Verallgemeinerung von mathematischen +Funktionen. Eine Methode besteht aus einem Methodennamen, einer Liste von +Eingabeparameter (optional), einem Rückgabewert (optional) sowie dem +Methodenrumpf. Die Kombination aus Methodenname und den Datentypen der +Parameterliste bezeichent man als Signatur einer Methode.

    +

    Methoden können entweder genau einen Rückgabewert oder keinen Rückgabewert +besitzen. Methoden mit genau einem Rückgabewert müssen vor dem Methodennamen den +Datentyp des Rückgabewerts angeben und am Ende des Methodenrumpfes immer die +Anweisung return besitzen, Methoden ohne Rückgabewert müssen dies mit dem +Schlüsselwort void kenntlich machen.

    +
    Computer.java (Auszug)
    public class Computer {
    ...
    public CPU getCpu() {
    return cpu;
    }

    public String getDescription() {
    return description;
    }

    public int getMemoryInGB() {
    return memoryInGB;
    }

    public void setCpu(CPU cpu) {
    this.cpu = cpu;
    }

    public void setMemoryInGB(int memoryInGB) {
    this.memoryInGB = memoryInGB;
    }
    ...
    }
    +

    Definition überladener Methoden

    +

    Gleichnamige Methoden mit unterschiedlichen Parameterlisten einer Klasse werden +als überladene Methoden bezeichnet. Man spricht in diesem Zusammenhang auch von +statischer Polymorphie, da der Aufruf gleichnamiger Methoden unterschiedliche +Ergebnisse liefern kann.

    +
    Computer.java (Auszug)
    public class Computer {
    ...
    public void setCpu(CPU cpu) {
    this.cpu = cpu;
    }

    public void setCpu(double powerInGHz, int numberOfCores) {
    cpu = new CPU(powerInGHz, numberOfCores);
    }
    ...
    }
    +
    Hinweis

    Überladene Methoden können keine unterschiedlichen Rückgabewerte besitzen.

    +

    Definition von Konstruktoren

    +

    Bei Konstruktoren handelt es sich um spezielle Methoden, die zur Initialisierung +eines Objekts verwendet werden. Konstruktoren heißen wie ihre Klasse und können +eine beliebige Anzahl an Parametern haben. Allerdings kann für Konstruktoren +kein Rückgabewert festgelegt werden, da diese implizit die Referenz auf das +Objekt zurückgeben.

    +

    Im Gegensatz zu z.B. C++ existieren in Java keine Destruktoren, die nicht mehr +benötigte Objekte aus dem Speicher entfernen. Stattdessen läuft im Hintergrund +der sogenannte Garbage Collector, der nicht mehr benötigte Objekte (also +Objekte, die nicht mehr über eine Referenzvariable angesprochen werden können) +löscht.

    +
    Computer.java (Auszug)
    public class Computer {
    ...
    public Computer(String description) {
    this.description = description;
    }

    public Computer(String description, CPU cpu, int memoryInGB) {
    this(description);
    this.cpu = cpu;
    this.memoryInGB = memoryInGB;
    }
    ...
    }
    +
    Hinweis

    Auch Konstruktoren können überladen werden, das heißt eine Klasse kann über +mehrere Konstruktoren verfügen. Der Aufruf eines Konstruktors innerhalb eines +anderen Konstruktors erfolgt dabei über die Selbstreferenz this.

    +

    Definition statischer Attribute und Methoden

    +

    Neben "normalen" Attributen und Methoden kann eine Klasse auch statische +Attribute und statische Methoden besitzen. Im Gegensatz zu "normalen" Attributen +existieren statische Attribute nur einmal pro Klasse und besitzen daher für alle +Objekte dieser Klasse dieselben Werte. Innerhalb einer statischen Methode kann +nur auf die statischen Attribute der Klasse zugegriffen werden.

    +

    Bei der Deklaration von statischen Attributen und statischen Methoden kommt das +Schlüsselwort static zum Einsatz. Für den Zugriff auf ein statisches Attribut +bzw. den Aufruf einer statischen Methode wird keine Instanziierung benötigt, +d.h. der der Zugriff bzw. Aufruf erfolgt über den Klassennamen.

    +
    Computer.java (Auszug)
    public class Computer {
    ...
    private static int numberOfComputers;

    public Computer(String description) {
    this.description = description;
    numberOfComputers++;
    }

    public static int getNumberOfComputers() {
    return numberOfComputers;
    }
    ...
    }
    +
    Hinweis

    "Normale" Attribute und Methoden werden auch als Instanzattribute bzw. +Instanzmethoden bezeichnet, statische Attribute und Methoden auch +Klassenattribute bzw. Klassenmethoden.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/coding/index.html b/pr-preview/pr-238/documentation/coding/index.html new file mode 100644 index 0000000000..16a02a0bdc --- /dev/null +++ b/pr-preview/pr-238/documentation/coding/index.html @@ -0,0 +1,47 @@ +Programmieren | Programmieren mit Java

    Programmieren

    Als ein Teilbereich der Softwareentwicklung umfasst das Programmieren vor allem +die Umsetzung eines Softwareentwurfes in Quellcode. Generell versteht man unter +Programmieren die Umsetzung von Algorithmen in lauffähige +Computer-Programme.

    + +
    Hinweis

    Ein Algorithmus ist eine Handlungsvorschrift zur Lösung eines Problems.

    +

    Programmierparadigmen

    +

    Unter einem Programmierparadigma versteht man die grundlegende Herangehensweise, +Probleme mit Hilfe einer Programmiersprache zu lösen. Aber auuch wenn +Programmiersprachen oft anhand ihrer grundlegenden Merkmale genau einem +Programmierparadigma zugeordnet werden, unterstützen viele Programmiersprachen +mehrere Programmierparadigmen.

    +

    Bei der imperativen Programmierung bestehen Programme aus verzweigten und sich +wiederholenden Folgen von Anweisungen, die den Programmablauf steuern.

    +

    Programmausführung

    +

    Programme auf einem Computer können auf unterschiedliche Arten ausgeführt +werden: Compilersprachen übersetzen den Quellcode in eine Datei, die vom +jeweiligen Betriebssystem ausgeführt werden kann, Interpretersprachen übersetzen +den Quellcode direkt in den Arbeitsspeicher und führen das Programm sofort aus +und Just-In-Time Compilersprachen (JIT) übersetzen den Quellcode mit Hilfe eines +Compilers zunächst in den sogenannten Bytecode und übersetzen diesen bei der +Ausführung in den Arbeitsspeicher. Compilersprachen wie z.B. C++ sind dabei +deutlich performanter und ermöglichen eine sicherere Entwicklung, +Interpretersprachen wie z.B. PHP sind dagegen plattformunabhängig und +Just-In-Time Compliersprachen vereinen die Vorteile von beiden.

    +
    Hinweis

    In Java wird der Interpreter als Java Virtual Machine bezeichnet.

    +
    +

    Programmiersprachen

    +

    Maschinen sind im Vergleich zu menschlichen Gehirnen sehr primitive Gebilde. Die +Diskrepanz zwischen der menschlichen Denkweise und der Arbeitsweise von +Maschinen bezeichnet mal als Semantische Lücke. Programmiersprachen +ermöglichen es, Problemstellungen der realen Welt abstrahiert und +maschinengerecht abzubilden und damit die Semantische Lücke zu verringern. Je +höher die Abstraktion einer Programmiersprache dabei ist, desto mehr kann die +Semantische Lücke verringert werden: Maschinenorientierte Programmiersprachen +(wie z.B. Assembler) abstrahieren kaum und sind daher für den Menschen schwerer +verständlich, problemorientierte Programmiersprachen (wie z.B. Java) +abstrahieren stark und sind daher für den Menschen leichter verständlich.

    +

    Die Programmiersprachen Java, Python und JavaScript gehören zu den am weitesten +verbreiteten bzw. beliebtesten Programmiersprachen.

    +
    TIOBERedMonkPYPL
    PythonJavaScriptPython
    CPythonJava
    C++JavaJavaScript
    JavaPHPC/C++
    C#C++C#
    +
    Quellen

    Tiobe Programming Community Index Januar 2024, RedMonk Programming Language +Rankings Januar 2023, PopularitY of Programming Language Januar 2024

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/comparators/index.html b/pr-preview/pr-238/documentation/comparators/index.html new file mode 100644 index 0000000000..06d762e424 --- /dev/null +++ b/pr-preview/pr-238/documentation/comparators/index.html @@ -0,0 +1,18 @@ +Komparatoren | Programmieren mit Java

    Komparatoren

    Mit Hilfe der Methode int compareTo(o: T) der Schnittstelle Comparable<T> +bzw. der Methode int compare(o1: T, o2: T) der Schnittstelle Comparator<T> +können Objekte einer Klasse miteinander verglichen werden. Der Rückgabewert +beider Methoden gibt die Ordnung der zu vergleichenden Objekte an:

    +
      +
    • Rückgabewert kleiner Null: das Vergleichsobjekt ist größer
    • +
    • Rückgabewert gleich Null: beide Objekte sind gleich groß
    • +
    • Rückgabewert größer Null: das Vergleichsobjekt ist kleiner
    • +
    +

    Objekte der Klasse Foo können durch die Implementierung der Methode +int compareTo(o: T) der Schnittstelle Comparable<T> miteinander verglichen +werden.

    +
    Container.java
    public class Container implements Comparable<Container> {

    private String value;

    public Container(String value) {
    this.value = value;
    }

    public void setValue(String value) {
    this.value = value;
    }

    public String getValue() {
    return value;
    }

    @Override
    public int compareTo(Container o) {
    return value.compareTo(o.value);
    }

    }
    +

    In der main-Methode der Startklasse wird mit Hilfe der statischen Methode +void sort(list: List<T>) der Klasse Collections eine Liste mit Objekten der +Klasse Foo sortiert. Aufgrund der Implementierung der compareTo-Methode wird +die Liste aufsteigend nach dem Attribut bar sortiert.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    List<Container> containers = new ArrayList<>();
    containers.add(new Container("Winter"));
    containers.add(new Container("is"));
    containers.add(new Container("Coming"));

    Collections.sort(containers);
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/console-applications/index.html b/pr-preview/pr-238/documentation/console-applications/index.html new file mode 100644 index 0000000000..ec7f80b310 --- /dev/null +++ b/pr-preview/pr-238/documentation/console-applications/index.html @@ -0,0 +1,23 @@ +Konsolenanwendungen | Programmieren mit Java

    Konsolenanwendungen

    Konsolenanwendungen sind Programme ohne eine grafische Benutzeroberfläche d.h. +die Steuerung sowie die Eingabe und Ausgabe erfolgen ausschließlich über +textuelle Anweisungen.

    + +

    Konsoleneingaben

    +

    Die Klasse Scanner im Paket java.util stellt Methoden zur Verfügung, um +Eingaben von der Konsole einzulesen und in entsprechende Datentypen umzuwandeln.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int i = scanner.nextInt();
    System.out.println(i);
    }

    }
    +
    Hinweis

    Dem Konstruktor muss der Standard-Eingabestrom System.in als Wert mitgegeben +werden.

    +

    Konsolenausgaben

    +

    Der Standard-Ausgabestrom System.out bietet verschiedene Methoden, um +Informationen auf der Konsole auszugeben:

    +
      +
    • Bei den print-Methoden wird die Information unverändert und linksbündig +ausgegeben
    • +
    • Bei den println-Methoden wird die Information unverändert und linksbündig +ausgegeben. Zusätzlich wird ein Zeilenumbruch ausgeführt
    • +
    • Bei den printf-Methoden wird die Information formatiert ausgegeben. Die +Formatierungsregeln sind nach dem Muster +[flags][width][.precision]conversion-character aufgebaut
    • +
    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    System.out.print("Winter is Coming");
    System.out.println("Winter is Coming");
    System.out.printf("%25S", "Winter is Coming");
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/data-objects/index.html b/pr-preview/pr-238/documentation/data-objects/index.html new file mode 100644 index 0000000000..0daa134b53 --- /dev/null +++ b/pr-preview/pr-238/documentation/data-objects/index.html @@ -0,0 +1,48 @@ +Datenobjekte | Programmieren mit Java

    Datenobjekte

    Ein Datenobjekt ist ein Platzhalter, der zur Laufzeit eine bestimmte Stelle des +Arbeitsspeichers belegt. Die Größe des reservierten Speichers ist abhängig vom +gewählten Datentyp). Datenobjekte können mit Werten belegt werden, +Bezeichner ermöglichen das Ansprechen im Programmablauf. Man unterscheidet +zwischen variablen Datenobjekten (Variablen) und fixen Datenobjekten +(Konstanten und Literale). Konstanten sind fixe Datenobjekte, die über einen +Bezeichner angesprochen werden können. Sie werden mit dem Schlüsselwort final +deklariert. Literale sind sogenannte wörtliche Konstanten, d.h. fixe +Datenobjekte ohne Bezeichner. Da Literale über keinen Bezeichner verfügen, +können Sie im Programm nicht angesprochen werden.

    + +

    Deklaration von Datenobjekten

    +

    Durch Angabe von Datentyp und Bezeichner wird ein Datenobjekt deklariert, d.h. +dem Compiler bekannt gegeben. Deklarationen werden wie jede Anweisung mit einem +Semikolon abgeschlossen. Datenobjekte gleichen Datentyps können mit Komma +getrennt aufgeführt werden.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int a, b;
    boolean error;
    char char1;
    String text;
    }

    }
    +
    Hinweis

    Java ist case-sensitiv, unterscheidet also zwischen Groß- und Kleinschreibung. +Um die Lesbarkeit zu erhöhen, sollten Variablen mit einem Kleinbuchstaben +beginnen, wohingegen Konstanten immer in Großbuchstaben geschrieben werden +sollten.

    +

    Initialisierung von Datenobjekten

    +

    In Java müssen Datenobjekte vor der ersten Verwendung explizit initialisiert +werden, d.h. mit einem Wert belegt werden. Der Zuweisungsoperator = weist dem +Datenobjekt auf der linken Seite den Wert des Ausdrucks auf der rechten Seite +zu.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int a = 42, b = a;
    boolean error = true;
    char char1;
    String text;

    char1 = 'M';
    text = "Winter is Coming";
    }

    }
    +

    Typinferenz bei Datenobjekten

    +

    Unter Typinferenz versteht man, dass bei der Deklaration eines Datenobjekts auf +die Angabe eine Datentyps verzichtet werden kann, wenn der Compiler aufgrund der +restlichen Angaben den Typ selbstständig ermitteln kann. Für die Typinferenz +wird das Schlüsselwort var verwendet.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int i = 5;
    i = "Text"; // Kompilierungsfehler

    var j = 5;
    j = "Text"; // Kompilierungsfehler
    }

    }
    +
    Hinweis

    Mit var deklarierte Datenobjekte sind weiterhin statisch typisiert.

    +

    Gültigkeitsbereiche von Datenobjekten

    +

    Datenobjekte sind nur innerhalb eines Anweisungsblocks gültig, d.h. man kann nur +innerhalb dieses Programmabschnitts auf das Datenobjekt zugreifen.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int a = 1, b;
    b = foo(a);
    }

    public static int foo(int c) {
    int d;
    d = a++; // Kompilierungsfehler
    d = c++;
    return d;
    }

    }
    +

    Typumwandlung (Type Casting)

    +

    Der Cast-Operator () erlaubt die explizite Umwandlung eines Datentyps in einen +anderen. Bei Wertzuweisungen findet eine implizite Typumwandlung vom +niederwertigen zum höherwertigen Datentyp statt. Zu beachten ist, dass bei einer +Typumwandlung ein Genauigkeitsverlust stattfinden kann.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int a = 14;
    int b = 3;
    double result;

    // implizite Typumwandlung
    result = a / b;
    System.out.println(result);

    // explizite Typumwandlung
    result = (double) a / b;
    System.out.println(result);
    }

    }
    +

    Die Wertigkeit von Datentypen entscheidet darüber, welche Typumwandlungen +möglich sind.

    + +
    Hinweis

    Für den Datentyp boolean ist keine Typumwandlung möglich.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/data-types/index.html b/pr-preview/pr-238/documentation/data-types/index.html new file mode 100644 index 0000000000..5c21932216 --- /dev/null +++ b/pr-preview/pr-238/documentation/data-types/index.html @@ -0,0 +1,25 @@ +Datentypen | Programmieren mit Java

    Datentypen

    Datentypen legen neben der Größe des Arbeitsspeichers, die ein Datenobjekt +benötigt, auch die Art der Information fest, die im Datenobjekt gespeichert +werden kann.

    +

    Primitive Datentypen sind fest in der Programmiersprache verankert und können +durch entsprechende Schlüsselwörter angesprochen werden. Java kennt 8 solcher +primitiver Datentypen.
    DatentypGrößeWertbereich
    boolean-true, false
    char2 Byte\u0000 bis \uFFFF
    byte1 Byte-128 bis +127
    short2 Byte-32.768 bis +32.767
    int4 Byte-2.147.483.648 bis +2.147.483.647
    long8 Byte-9.233.372.036.854.775.808 bis +9.233.372.036.854.775.807
    float4 Byte+/-1,4e-45 bis +/-3,4028235e+38
    double8 Byte+/-4,9e-324 bis +/-1,7976931348623157e+308

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/dates-and-times/index.html b/pr-preview/pr-238/documentation/dates-and-times/index.html new file mode 100644 index 0000000000..a47cf4dfd1 --- /dev/null +++ b/pr-preview/pr-238/documentation/dates-and-times/index.html @@ -0,0 +1,8 @@ +Datums- und Zeitangaben | Programmieren mit Java

    Datums- und Zeitangaben

    Die Klasse LocalDateTime liefert alle relevanten Informationen zum fast +weltweit verwendeten Kalendersystem ISO-8601 (gregorianischer Kalender).

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    LocalDateTime now = LocalDateTime.now();

    System.out.println("Jahr: " + now.getYear());
    System.out.println("Monat: " + now.getMonth());
    System.out.println("Tag: " + now.getDayOfMonth());
    }

    }
    +

    Neben den print-Methoden des Standard-Ausgabestroms System.out besitzt die +Klasse System auch die Methode long currentTimeMillis(), die die Differenz +in Millisekunden zwischen der aktuellen Systemzeit und dem Nullpunkt zurückgibt.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    long timeInMilliseconds = System.currentTimeMillis();
    System.out.println(timeInMilliseconds);
    }

    }
    +
    Hinweis

    Der festgelegte Nullpunkt ist der 1. Januar 1970, 0 Uhr.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/design/index.html b/pr-preview/pr-238/documentation/design/index.html new file mode 100644 index 0000000000..256d3ec692 --- /dev/null +++ b/pr-preview/pr-238/documentation/design/index.html @@ -0,0 +1,42 @@ +Softwaredesign | Programmieren mit Java

    Softwaredesign

    Als Teilprozess der Softwareentwicklumg umfasst das Softwaredesign die +Datenmodellierung, den Entwurf der Softwarearchitektur sowie das Festlegen +benötigter Komponenten, Datentypen und Algorithmen. Bei der Datenmodellierung +werden alle relevanten Objekte der Anwendung inklusive ihrer Eigenschaften und +Beziehungen zueinander dargestellt; die Softwarearchitektur beschreibt alle +relevanten Komponenten und deren Interaktionen. Bei der Gestaltung von Software +kommen häufig Entwurfsmuster zur Lösung wiederkehrender Probleme zum Einsatz. +Zudem soll durch Beachtung von Gestaltungsprinzipien eine hohe Softwarequalität +sichergestellt werden.

    +

    Entwurfsmuster

    +

    Entwurfsmuster (Design Patterns) sind Lösungsansätze für wiederkehrende Probleme +der Softwareentwicklung und sollen dabei helfen, Programmierfehler zu vermeiden, +Programmentwürfe wiederverwendbar und möglichst effizient zu gestalten. Sie +können u.a. in Erzeugungsmuster (z.B. Einzelstück (Singleton)), Strukturmuster +(z.B. Adapter) und Verhaltensmuster (z.B. Beobachter (Observer)) unterteilt +werden. Der Begriff Entwurfsmuster wurde maßgeblich durch das 1994 erschienene +Buch Design Patterns – Elements of Reusable Object-Oriented Software von +Richard Helm, Ralph Johnson und John Vlissides (auch bekannt als Gang of Four) +geprägt.

    +

    Gestaltungsprinzipien

    +

    Unter Gestaltungsprinzipien (Design Principles) versteht man Richtlinien, welche +eine hohe Softwarequalität sicherstellen sollen. Neben einfachen +Gestaltungsprinzipen wie DRY (Don´t Repeat Yourself), KISS (Keep It Simple, +Stupid) und YAGNI (You Ain´t Gonna Need It) sind in der objektorientierten +Programmierung vor allem die SOLID-Prinzipen von Bedeutung. Hinter dem Akronym +SOLID verbergen sich 5 Gestaltungsprinzipien:

    +
      +
    • Single Responsibility Principle: jede Klasse sollte genau eine Verantwortung +besitzen
    • +
    • Open Closed Principle: Software-Einheiten sollten offen für Erweiterungen, +aber geschlossen für Modifikationen sein
    • +
    • Liscov Substitution Principle: Objekte von Unterklassen sollten sich so +Verhalten wie Objekte der dazugehörigen Oberklasse
    • +
    • Interface Segregation Principle: Klassen sollten nur Methoden implementieren +müssen, die sie auch verwenden
    • +
    • Dependency Inversion Principle: Abhängigkeiten sollten immer von den +konkreten zu den abstrakten Modulen verlaufen
    • +
    +

    Das Akronym SOLID geht auf den Softwareentwickler Robert C. Martin zurück, der +unter anderem auch an der Entwicklung des Agilen Manifests beteiligt war. Dieses +wurde 2001 verfasst und umfasst die vier wesentlichen Leitsätze der agilen +Softwareentwicklung.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/enumerations/index.html b/pr-preview/pr-238/documentation/enumerations/index.html new file mode 100644 index 0000000000..65da24a161 --- /dev/null +++ b/pr-preview/pr-238/documentation/enumerations/index.html @@ -0,0 +1,20 @@ +Aufzählungen (Enumerations) | Programmieren mit Java

    Aufzählungen (Enumerations)

    Bei einer Aufzählung (Enumeration) handelt es sich um eine spezielle Klasse, von +der nur eine vorgegebene, endliche Anzahl an Instanzen existiert. Diese +Instanzen werden als Aufzählungskonstanten bezeichnet. Technisch gesehen +handelt es sich bei Aufzählungskonstanten um öffentliche, statische Konstanten +vom Typ der Aufzählung.

    +

    Implementieren von Aufzählungen

    +

    Die Definition einer Aufzählung erfolgt analog zur Definition von Klassen, das +Schlüsselwort hierfür lautet enum.

    +
    WeekDay.java
    public enum WeekDay {

    MONDAY("Montag", true), TUESDAY("Dienstag", true), WEDNESDAY("Mittwoch", true), THURSDAY(
    "Donnerstag",
    true), FRIDAY("Freitag", true), SATURDAY("Samstag", true), SUNDAY("Sonntag", false);

    private String description;
    private boolean isWorkingDay;

    WeekDay(String description, boolean isWorkingDay) {
    this.description = description;
    this.isWorkingDay = isWorkingDay;
    }

    public String getDescription() {
    return description;
    }

    public boolean getWorkingDay() {
    return isWorkingDay;
    }

    }
    +

    Verwenden von Aufzählungen

    +

    Aufzählungen besitzen eine Reihe hilfreicher Methoden:

    +
      +
    • Die statische Methode T[] values() gibt alle Aufzählunskonstanten als Feld +zurück
    • +
    • Die statische Methode T valueOf(name: String) gibt zu einer eingehenden +Zeichenkette die dazugehörige Aufzählungskonstante zurück
    • +
    • Die Methode int ordinal() gibt die Ordnungszahl der Aufzählungskonstanten +zurück
    • +
    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    for (WeekDay w : WeekDay.values()) {
    System.out.println(w.ordinal());
    }
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/exceptions/index.html b/pr-preview/pr-238/documentation/exceptions/index.html new file mode 100644 index 0000000000..5cb4b808fd --- /dev/null +++ b/pr-preview/pr-238/documentation/exceptions/index.html @@ -0,0 +1,57 @@ +Ausnahmen (Exceptions) | Programmieren mit Java

    Ausnahmen (Exceptions)

    Programmfehler (Bugs) führen dazu, dass Programme unerwartete Ergebnisse liefern +oder abstürzen. Je komplexer das Programm, desto wichtiger wird eine durchdachte +und konsequente Fehlerbehandlung. Man unterscheidt dabei zwischen verschiedenen +Fehlerarten: Kompilierungsfehler, Logikfehler und Laufzeitfehler.

    +

    Kompilierungsfehler sind Programmfehler, die verhindern, dass das Programm +ausgeführt werden kann. Sie können relativ einfach behoben werden, da sie schon +zur Designzeit auftreten und von den meisten Entwicklungsumgebungen direkt +angezeigt werden.

    +

    Die Klassenhierarchie der Laufzeitfehler

    +

    Die Klasse Throwable stellt die Oberklasse aller Laufzeitfehler dar. +Schwerwiegende Fehler (hauptsächlich Probleme in der JVM (Java Virtual Machine)) +werden durch Unterklassen der Klasse Error abgebildet, geprüfte Ausnahmen +durch Unterklassen der Klasse Exception und ungeprüfte Ausnahmen durch +Unterklassen der Klasse RuntimeException.

    + +

    Definition von Ausnahmenklassen

    +

    Eigene Ausnahmenklassen werden durch einfaches Ableiten von einer bestehenden +Ausnahmenklasse definiert. Ausnahmenklassen sollten dabei immer von der Klasse +Exception oder einer ihrer Unterklassen abgeleitet werden, nicht von der +Klasse Error.

    +
    QuxException.java
    public class QuxException extends Exception {

    public QuxException() {}

    public QuxException(String message) {}

    }
    +

    Auslösen von Ausnahmen

    +

    Mit dem Schlüsselwort throw kann innerhalb einer Methode eine Ausnahme +ausgelöst werden. Die Methode, in der die Ausnahme ausgelöst wird, muss mit dem +Schlüsselwort throws die Ausnahmenklasse angeben, die ausgelöst werden kann.

    +
    Foo.java
    public class Foo {

    public void bar() throws QuxException {
    throw new QuxException();
    }

    }
    +

    Weiterleiten von Ausnahmen

    +

    Ausnahmen können weitergeleitet werden. Hierbei wird die Fehlerbehandlung an die +nächsthöhere Ebene weitergegeben. Um eine Ausnahme weiterzuleiten, muss in der +weiterleitenden Methode mit throws die Ausnahme angegeben werden, die +ausgelöst werden kann.

    +
    Foo.java
    public class Foo {

    public void bar() throws QuxException {
    throw new QuxException();
    }

    public void baz() throws QuxException {
    bar();
    }

    }
    +

    Abfangen von Ausnahmen

    +

    Mit Hilfe der try-catch-Anweisung können Methoden, die eine Ausnahme auslösen +können, überwacht werden; d.h. die Ausnahmen werden gegebenenfalls abgefangen. +Der try-Block enthält die Anweisungen, die überwacht werden sollen, der +catch-Block enthält die eigentliche Fehlerbehandlung. Als Parameter von catch +muss angegeben werden, welche Ausnahme(n) abgefangen werden soll(en).

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    try {
    Foo foo = new Foo();
    foo.bar();
    } catch (QuxException e) {
    /* Fehlerbehandlung */
    }
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/files/index.html b/pr-preview/pr-238/documentation/files/index.html new file mode 100644 index 0000000000..57fe564dcb --- /dev/null +++ b/pr-preview/pr-238/documentation/files/index.html @@ -0,0 +1,26 @@ +Dateien und Verzeichnisse | Programmieren mit Java

    Dateien und Verzeichnisse

    Die Klasse File ermöglicht die Arbeit mit Dateien und Verzeichnissen. Mit +Hilfe der Methode boolean exists() kann beispielsweise geprüft werden, ob ein +entsprechendes Verzeichnis bzw. eine entsprechende Datei existiert oder nicht. +Die Klasse bietet zudem M ethoden zum Erstellen und Löschen von Verzeichnissen +bzw. Dateien. Zum Erzeugen eines File-Objekts wird entweder ein Pfad zu einem +Verzeichnis bzw. zu einer Datei oder ein URI (Unified Resource Identifier) +benötigt.

    +

    Lesen von Dateien mit Hilfe der Klasse Scanner

    +

    Zum Lesen einer Datei können entweder Datenstromklassen oder die +Klasse Scanner verwendet werden.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) throws FileNotFoundException {
    File file = new File("text.txt");
    Scanner scanner = new Scanner(file);

    while (scanner.hasNextLine()) {
    String line = scanner.nextLine();
    System.out.println(line);
    }

    scanner.close();
    }

    }
    +
    Hinweis

    Nach der letzten Verwendung sollte die Methode void close() der Klasse +Scanner aufgerufen werden.

    +

    Absolute und relative Pfadangaben

    +

    Beim Zugriff auf Verzeichnisse bzw. Dateien unterscheidet man zwischen absoluten +und relativen Pfadangaben. Bei absoluten Pfadangaben wird der vollständige Pfad +von der Wurzel des jeweiligen Verzeichnissystems bis zum Ziel angegeben, bei +relativen der Weg von einem festgelegten Bezugspunkt bis zum Ziel.

    +
    Hinweis

    Alle Klassen im Paket java.io verwenden als Bezugspunkt das Arbeitsverzeichnis +des Benutzers (Systemeigenschaft user.dir).

    + +

    Die Datei DocumentA.txt kann entweder über den absoluten Pfad +C:\Temp\DocumentA.txt oder über den relativen Pfad documents/DocumentA.txt +(Bezugspunkt ist das Verzeichnis Project); die Datei DocumentB.txt über den +absoluten Pfad C:\workspace\Project\documents\documentB.txt oder über den +relativen Pfad ../../Temp/documentA.txt angesprochen werden.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/generics/index.html b/pr-preview/pr-238/documentation/generics/index.html new file mode 100644 index 0000000000..3afebed886 --- /dev/null +++ b/pr-preview/pr-238/documentation/generics/index.html @@ -0,0 +1,63 @@ +Generische Programmierung | Programmieren mit Java

    Generische Programmierung

    Quellcode sollte generell so allgemein bzw. generisch geschrieben werden, dass +er für unterschiedliche Datenstrukturen und Datentypen verwendet werden kann. +Das Ziel der generischen Programmierung ist die Entwicklung von +wiederverwendbarem Code. In Java verwendet man das Konzept der generischen +Datentypen, also Klassen, die mit verschiedene Datentypen verwendet werden +können.

    +

    Generische Klassen ohne Java Generics

    +

    Auch ohne Java Generics kann in Java mit Hilfe der Klasse Object generisch +programmiert werden. Der Nachteil besteht darin, dass durch den Upcast einer +beliebigen Klasse auf die Klasse Object die spezifischen Methoden der Klasse +nicht mehr verwendet werden können und der dadurch notwendige Downcast zu +Laufzeitfehlern führen kann.

    +

    Die Klasse Box ermöglicht das Speichern einer beliebig typisierten +Information.

    +
    Box.java
    public class Box {

    private Object content;

    public void set(Object content) {
    this.content = content;
    }

    public Object get() {
    return content;
    }

    }
    +

    In der main-Methode der Startklasse wird zunächst eine ganze Zahl in einer Box +gespeichert und anschließend wieder ausgelesen. Die Umwandlung der ganzen Zahl +in eine Zeichenkette führt erst zur Laufzeit zu einem Fehler.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    Box box = new Box();
    box.set(5);
    String i = (String) box.get(); // Laufzeitfehler
    System.out.println(i);
    }

    }
    +

    Generische Klassen mit Java Generics

    +

    Klassen und Methoden können in Java mit Typen parametrisiert werden. Diese +werden durch spitze Klammern <> gekennzeichnet und stellen Platzhalter für +konkrete Datentypen dar. Beim Kompilieren werden alle generischen Informationen +vollständig entfernt und durch die konkreten Datentypen ersetzt. Durch die +dadurch vorhandene statische Typsicherheit können Laufzeitfehler verhindert und +Fehler bereits beim Kompilieren entdeckt werden.

    +

    Die generische Klasse Box<T> ermöglicht das Speichern einer beliebig +typisierten Information mit Hilfe des Typparameters T.

    +
    Box.java
    public class Box<T> {

    private T content;

    public void set(T content) {
    this.content = content;
    }

    public T get() {
    return content;
    }

    }
    +

    In der main-Methode der Startklasse wird zunächst eine ganze Zahl in einer Box +gespeichert und anschließend wieder ausgelesen. Die Umwandlung der ganzen Zahl +in eine Zeichenkette führt aufgrund der statischen Typsicherheit zu einem +Kompilierungsfehler.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    Box<Integer> box = new Box<>();
    box.set(5);
    String i = box.get(); // Kompilierungsfehler
    System.out.println(i);
    }

    }
    +
    Hinweis

    Die Typisierung kann entweder explizit oder implizit über den Diamantenoperator +<> erfolgen.

    +
    Hinweis

    Typparameter können auf die Unterklassen einer bestimmten Klasse eingeschränkt +werden. Dadurch kann in der generischen Klasse auf Attribute und Methoden der +angegebenen Klasse zugegriffen werden. Die Angabe eines eingeschränkten +Typparameters erfolgt über den Zusatz extends sowie die Angabe der +entsprechenden Klasse.

    +

    Generische Methoden mit Java Generics

    +

    Die generische Methode <T> int getIndex(value: T, values: T[]) gibt den Index +eines beliebig typisierten gesuchten Wertes innerhalb eines gleichtypisierten +Feldes zurück.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    System.out.println(getIndex(5, new Integer[] {3, 5, 2, 4, 1}));
    }

    public static <T> int getIndex(T value, T[] values) {
    for (int i = 0; i < values.length; i++) {
    if (values[i].equals(value)) {
    return i;
    }
    }
    return -1;
    }

    }
    +

    Namensrichtlinien für Typparameter

    +

    Um den Einsatzbereich von Typparametern in generischen Klassen und Methoden +kenntlich zu machen, sollte man festgelegte Zeichen verwenden.

    +
    TypparameterEinsatzbereich
    T, U, V, W...Datentyp (Type)
    EElement einer Datensammlung (Element)
    KSchlüssel eines Assoziativspeichers (Key)
    VWert eines Assoziativspeichers (Value)
    +

    Varianz

    +

    Bei der Deklaration einer generischen Klasse ermöglicht der Wildcard-Typ ? die +Angabe eines unbestimmten Typs. Dieser kann gar nicht (Bivarianz), nach oben +(Kovarianz), nach unten (Kontravarianz), oder sowohl nach oben als auch +nach unten (Invarianz) eingeschränkt werden.

    +

    Die generische Klasse Box<T> ermöglicht das Speichern einer beliebig +typisierten Information.

    +
    Box.java
    public class Box<T> {

    private T content;

    public void set(T content) {
    this.content = content;
    }

    public T get() {
    return content;
    }

    }
    +

    In der main-methode der Startklasse werden verschiedene Boxen unterschiedlich +deklariert und anschließend initialisiert. Dabei ist die Klasse String eine +Unterklasse der Klasse Object, die Klasse Integer eine Unterklasse der +Klasse Number und diese eine Unterklasse der Klasse Object.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    Box<?> bivariantBox;
    bivariantBox = new GenericBox<Object>();
    bivariantBox = new GenericBox<Number>();
    bivariantBox = new GenericBox<Integer>();
    bivariantBox = new GenericBox<String>();

    Box<? extends Number> covariantBox;
    covariantBox = new GenericBox<Object>(); // Kompilierungsfehler
    covariantBox = new GenericBox<Number>();
    covariantBox = new GenericBox<Integer>();
    covariantBox = new GenericBox<Integer>(); // Kompilierungsfehler

    Box<? super Number> contravariantBox;
    contravariantBox = new GenericBox<Object>();
    contravariantBox = new GenericBox<Number>();
    contravariantBox = new GenericBox<Integer>(); // Kompilierungsfehler
    covariantBox = new GenericBox<Integer>(); // Kompilierungsfehler

    Box<Number> invariantBox;
    invariantBox = new GenericBox<Object>(); // Kompilierungsfehler
    invariantBox = new GenericBox<Number>();
    invariantBox = new GenericBox<Integer>(); // Kompilierungsfehler
    covariantBox = new GenericBox<String>(); // Kompilierungsfehler
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/git/index.html b/pr-preview/pr-238/documentation/git/index.html new file mode 100644 index 0000000000..63e3341fd8 --- /dev/null +++ b/pr-preview/pr-238/documentation/git/index.html @@ -0,0 +1,24 @@ +Git | Programmieren mit Java

    Git

    Git stellt eine Software zur Verwaltung von Dateien mit integrierter +Versionskontrolle dar, dessen Entwicklung unter Anderem von Linus Torvald (dem +Erfinder von Linux) initiiert wurde. Die Versionskontrolle von Git ermöglicht +den Zugriff auf ältere Entwicklungsstände, ohne dabei den aktuellen Stand zu +verlieren. Zudem unterstützt Git die Verwaltung von verteilten Dateien an +verschiedenen Aufbewahrungsorten. Diese Aufbewahrungsorte werden als +Repositorys bezeichnet. Man unterscheidet dabei zwischen lokalen Repositorys +und remote Repositorys. Onlinedienste wie GitHub basieren auf Git und stellen +dem Anwender Speicherplatz für remote Repositorys zur Verfügung.

    +

    Git Workflows

    +

    Aufgrund der Flexibilität von Git gibt es keine standardisierten Prozesse für +das Arbeiten mit Git. Ein Git Workflow stellt eine Anleitung zur Verwendung von +Git dar, die eine konsistente und produktive Arbeitsweise ermöglichen soll. Für +eine effiziente und fehlerfreie Arbeitsweise sollten daher alle Mitgleider eines +Teams die gleichen Git Workflows verwenden.

    + +

    Git Befehle

    +

    Git bietet einen Vielzahl an verschiedenen Kommandozeilen-Befehlen um mit Git zu +arbeiten. Eine ausführliche Dokumentation der einzelnen Befehle samt der +dazugehörigen Optionen können auf der offiziellen +Git-Homepage gefunden werden. Zudem kann mit dem +Befehl git --help direkt in der Kommandozeile eine Kurzversion der +Dokumentation ausgegeben werden.

    +
    Git-BefehlBeschreibung
    git config --global user.nameBenutzername ausgeben
    git config --global user.name "[Benutzername]"Benutzername festlegen
    git config --global user.emailE-Mail-Adresse ausgeben
    git config --global user.email "[E-Mail-Adresse]"E-Mail-Adresse festlegen
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/gui/index.html b/pr-preview/pr-238/documentation/gui/index.html new file mode 100644 index 0000000000..ffd38d7fc8 --- /dev/null +++ b/pr-preview/pr-238/documentation/gui/index.html @@ -0,0 +1,43 @@ +Grafische Benutzeroberflächen | Programmieren mit Java

    Grafische Benutzeroberflächen

    Eine grafische Benutzeroberfläche oder auch GUI (Graphical User Interface) hat +die Aufgabe, Programme mittels grafischer Bildschirmelemente bedienbar zu +machen. So ermöglichen Controls wie Eingabefelder, Drucktasten und +Ausgabefelder die Interaktion mit der Anwendung und Container die +strukturierte Darstellung und Verwaltung anderer Bildschirmelemente. Dialoge +wie Nachrichtendialoge und Dateiauswahl-Dialoge widerum stellen vordefinierte +Oberflächen dar, mit deren Hilfe wiederkehrende Anwendungsfälle abgedeckt werden +können.

    +

    Aufbau grafischer Benutzeroberflächen

    +

    Da es sich bei grafischen Benutzeroberflächen um komplexe Anwendungen handelt, +werden diese in der Regel in verschiedene Bereiche wie Aufbau, Aussehen und +Verhalten aufgeteilt (Separation of Concerns). Als Beispiel sei hier der +Aufbau einer klassischen Webseite aufgeführt: HTML bestimmt den Aufbau, CSS das +Aussehen und JavaScript das Verhalten der Webseite.

    +

    Das Entwurfmuster MVC (Model-View-Controller) stellt einen gängigen Ansatz zur +Entwicklung von grafischen Benutzeroberflächen dar, bei dem die grafische +Benutzeroberfläche in drei Bereiche unterteilt wird:

    +
      +
    • Das Model ist für die Datenhaltung und -verwaltung zuständig
    • +
    • Die View ist für die Darstellung der Oberfläche zuständig, welche wiederum +in Aufbau und Aussehen unterteilt ist
    • +
    • Der Controller übernimmt die Ereignisbehandlung und ermöglicht so die +Benutzerinteraktion
    • +
    + +
    Hinweis

    Der Begriff MVC wird oft auch als Synonym für MVC-ähnliche Varianten wie z.B. +MVP (Model-View-Presenter) oder MVVM (Model-View-ViewModel) verwendet.

    +

    Ereignisse (Events)

    +

    Ereignisse (Events) sind Nachrichten, die über das System weitergeleitet werden. +Auf grafischen Benutzeroberflächen werden Ereignisse z.B. durch das Betätigen +einer Drucktaste ausgelöst. Weitere typische Ergeignisse sind das Betätigen +einer Maustaste, Tastatureingaben oder das Vergrößern bzw. Verkleinern eines +Fensters.

    +

    Die Behandlung dieser Ereignisse wird durch das Delegationsmodell festgelegt:

    +
      +
    1. Empfänger können sich beim Sender für ein Ereignis registrieren
    2. +
    3. Der Sender löst das Ereignis aus und übergibt das erzeugte Ereignis-Objekt an +alle registrierten Empfänger
    4. +
    5. Die Empfänger nehmen das Ereignis-Objekt entgegen und haben dadurch die +Möglichkeit, auf das Ereignis zu reagieren
    6. +
    +
    Hinweis

    Die Empfänger werden je nach Bibliothek bzw. Framework als Handler oder +Listener bezeichnet.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/hashing/index.html b/pr-preview/pr-238/documentation/hashing/index.html new file mode 100644 index 0000000000..cc53ce6b50 --- /dev/null +++ b/pr-preview/pr-238/documentation/hashing/index.html @@ -0,0 +1,34 @@ +Schlüsseltransformationen (Hashing) | Programmieren mit Java

    Schlüsseltransformationen (Hashing)

    Unter Schlüsseltransformationen (Hashing) versteht man die Transformation einer +großen Datenmenge in eine kleinere. Die größere Datenmenge wird dabei als +Schlüssel, die kleinere als Hashcode bezeichnet. Die Transformation erfolgt über +eine sogenannte Hashfunktion (auch Streuwertfunktion). Wichtig dabei ist, dass +der Hashcode nur vom Zustand des Schlüssels abhängen darf.

    + +

    Hashtabellen

    +

    Hashtabellen sind spezielle Datenstrukturen, die für den schnellen Zugriff +konzipiert wurden. Mit Hilfe einer Hashfunktion wird der Index berechnet, an der +ein Schlüssel gespeichert wird. Bei Hashtabellen soll durch das Hashing eine +gleichmäßige Streuung der Einträge in der Tabelle erreicht werden. Aus diesem +Grund werden Hashtabellen auch als Streuwerttabellen bezeichnet.

    +
    IndexSchlüsselHashcode
    0Butter630
    1
    2Brot407
    3Milch493
    4Eier389
    +

    Hashfunktionen

    +

    Die Divisionsrest-Methode stellt eine einfache und schnelle Hashfunktion dar. +Die Berechnung des Index erfolgt dabei gemäß der Formel ℎ(𝑘) = 𝑘 𝑚𝑜𝑑 𝑚.
    SchlüsselHashcodeIndex
    Brot407407 𝑚𝑜𝑑 5 = 2
    Butter630630 𝑚𝑜𝑑 5 = 0
    Milch493493 𝑚𝑜𝑑 5 = 3
    Eier389389 𝑚𝑜𝑑 5 = 4

    Legende

    ℎ(𝑘) = Index, 𝑘 = Hashcode, 𝑚𝑜𝑑 = Modulo-Operation, 𝑚 = Tabellengröße

    +

    Kollisionen

    +

    Werden zu unterschiedlichen Schlüsseln dieselben Indizes ermittelt, entstehen +dadurch sogenannte Kollisionen. Um Kollisionen bestmöglichen zu vermeiden, muss +eine geeignete Tabellengröße sowie eine geeignete Hashfunktion gewählt werden. +Zur Auflösung von Kollisionen gibt es verschiedene Möglichkeiten.

    +

    Beim geschlossenen Hashing mit offener Adressierung wird bei einer Kollision +über unterschiedliche Verfahren eine freie Stelle in der Hashtabelle gesucht: +Beim linearen Sondieren wird mit festen Intervallschritten nach einer freien +Stelle gesucht, beim quadratischen Sondieren wird der Intervallschritt nach +jedem erfolglosen Versuch quadriert und beim doppelten Hashing wird der +Intervallschritt mit Hilfe einer zusätzlichen Hashfunktion berechnet.
    IndexSchlüssel
    0Eier
    1Brot
    2
    3Butter
    4Milch

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/inheritance/index.html b/pr-preview/pr-238/documentation/inheritance/index.html new file mode 100644 index 0000000000..d4eeda6157 --- /dev/null +++ b/pr-preview/pr-238/documentation/inheritance/index.html @@ -0,0 +1,27 @@ +Vererbung | Programmieren mit Java

    Vererbung

    Bei der Modellierung von Klassen stellt man häufig fest, dass sich einige +Klassen der Struktur und dem Verhalten nach ähneln. In solchen Fällen hat man +die Möglichkeit, die gemeinsamen Strukturen und Verhaltensweisen aus den +speziellen Klassen zu extrahieren und in einer allgemeineren Klasse +unterzubringen. Dies wird als Generalisierung bezeichnet. Umgekehrt gibt es +oftmals auch Bedarf, eine bestehende Klasse um zusätzliche Attribute und/oder +Methoden zu erweitern. Dies bezeichnet man als Spezialisierung Die Beziehung +zwischen einer speziellen Klasse und einer allgemeinen Klasse wird Vererbung +bezeichnet. Die speziellen Klasse einer Vererbung werden als Unterklassen (Sub +Classes), die allgemeinen Klassen als Oberklassen (Super Classes) bezeichnet.

    +

    Implementieren von Vererbung

    +

    Die Vererbung wird mit dem Schlüsselwort extends realisiert. In der Oberklasse +können Attribute und Methoden mit dem Schlüsselwort protected als geschützt +festlegt werden. Unterklassen können auf alle öffentlichen und geschützten +Attribute und Methoden der Oberklasse zugreifen.

    +
    Computer.java (Auszug)
    public class Computer {
    ...
    protected CPU cpu;
    protected int memoryInGB;

    public Computer(String description, CPU cpu, int memoryInGB) {
    this.description = description;
    this.cpu = cpu;
    this.memoryInGB = memoryInGB;
    }
    ...
    }
    +
    Hinweis

    In den Konstruktoren der Unterklasse muss ein Konstruktor der Oberklasse mit +Hilfe von super aufgerufen werden.

    +

    Überschreiben von Methoden

    +

    Wird in einer Unterklasse eine Methode definiert, die der Signatur einer Methode +der Oberklasse entspricht, wird die Methode der Oberklasse überschrieben, d.h. +von der Unterklasse neu implementiert. Bei Bedarf kann die ursprüngliche +Methodenimplementierung der Oberklasse mit Hilfe der Objektreferenz super +aufgerufen werden.

    +
    Computer.java (Auszug)
    public class Computer {
    ...
    public ArrayList<String> getSpecification() {
    ArrayList<String> specification = new ArrayList<>();
    specification.add("description: " + description);
    specification.add("cpu: " + cpu);
    specification.add("memoryInGB: " + memoryInGB);
    return specification;
    }
    ...
    }
    +
    Hinweis

    Die Annotation @Override sorgt bei fehlerhaftem Überschreiben der Methode für +entsprechende Kompilierungsfehler.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/inner-classes/index.html b/pr-preview/pr-238/documentation/inner-classes/index.html new file mode 100644 index 0000000000..c81123b33c --- /dev/null +++ b/pr-preview/pr-238/documentation/inner-classes/index.html @@ -0,0 +1,63 @@ +Innere Klassen (Inner Classes) | Programmieren mit Java

    Innere Klassen (Inner Classes)

    Java bietet die Möglichkeit, Klassen und Schnittstellen zu verschachteln. Das +Ziel von inneren Klassen ist eine Definition von Hilfsklassen möglichst nahe an +der Stelle, wo sie gebraucht werden. Beispiele für Hilfsklassen sind +Ausnahmeklassen, Komparatoren und Ereignisbehandler. Alle bisherigen Klassen +werden auch als äußerer Klassen bzw. Top-Level-Klassen bezeichnet.

    +

    Geschachtelte Klassen (Nested Classes)

    +

    Geschachtelte Klassen sind Top-Level-Klassen, die zur Strukturierung des +Namensraumes in anderen Top-Level-Klassen definiert sind. Ein Namensraum ist die +vollständige Pfadangabe zur Klasse (z.B. java.lang). Geschachtelte Klassen +müssen statisch definiert werden und sind daher im eigentlichen Sinne keine +richtigen inneren Klassen.

    +

    Zunächst wird die äußere Klasse OuterClass samt der geschachtelten Klasse +InnerClass definiert.

    +
    OuterClass.java
    public class OuterClass {

    public static class InnerClass {
    }

    }
    +

    In der main-Methode der Startklasse kann die innere Klasse InnerClass nur +durch Angabe des vollständigen Namensraumes verwendet werden, was die Angabe der +äußerer Klasse OuterClass miteinschließt.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    OuterClass o = new OuterClass();
    OuterClass.InnerClass i = new OuterClass.InnerClass();
    }

    }
    +

    Elementklassen (Member Classes)

    +

    Objekte von Elementklassen sind immer mit einem Objekt der umgebenden Klasse +verbunden. Dies ermöglicht die Umsetzung von Kompositionen (siehe +Darstellung von Assoziationen). +Sie haben Zugriff auf alle Variablen und Methoden der sie umgebenden Klasse und +dürfen keine statischen Elemente enthalten.

    +

    Zunächst wird die äußere Klasse OuterClass samt der Elementklasse InnerClass +definiert.

    +
    OuterClass.java
    public class OuterClass {

    public class InnerClass {
    }

    }
    +

    In der main-Methode der Startklasse kann ein Objekt der Klasse InnerClass nur +auf ein bestehendes Objekt der Klasse OuterClass erzeugt werden.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    OuterClass o = new OuterClass();
    OuterClass.InnerClass i = new OuterClass.InnerClass(); // Kompilierungsfehler
    OuterClass.InnerClass i = o.new InnerClass();
    }

    }
    +

    Lokale Klassen

    +

    Lokale Klassen werden innerhalb einer Methode definiert und können auch nur dort +verwendet werden. Sie dürfen nicht als public, protected, private oder +static definiert werden, dürfen keine statischen Elemente enthalten und können +nur die mit final markierten Variablen und Parameter der umgebenden Methode +verwenden.

    +

    Zunächst wird die Schnittstelle Qux samt der Methode +void quux(s: String)definiert.

    +
    Qux.java
    public interface Qux {

    void quux(String s);

    }
    +

    Die Klasse Foo soll die Verwenderklasse der Schnittstelle Qux darstellen.

    +
    Foo.java
    public class Foo {

    public static void bar(String s, Qux q) {
    q.quux(s);
    }

    }
    +

    In der main-Methode der Startklasse soll die Methode +void bar(s: String, q: Qux) der Klasse Foo aufgerufen werden, wofür eine +konkrete Implementierung der Schnittstelle Qux benötigt wird. Die +Implementierung erfolgt in Form der lokalen Klasse LocalClass.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    class LocalClass implements Qux {
    @Override
    public void quux(String s) {
    System.out.println(s);
    }
    }

    LocalClass l = new LocalClass();
    Foo.bar("Winter is Coming", l);
    }

    }
    +

    Anonyme Klassen

    +

    Anonyme Klassen besitzen im Gegensatz zu lokalen Klassen keinen Namen und werden +innerhalb eines Ausdrucks definiert und instanziiert; Klassendeklaration und +Objekterzeugung sind also in einem Sprachkonstrukt vereint. Wird als Datentyp +eine Schnittstelle benötigt, implementiert die anonyme Klasse diese +Schnittstelle, wird als Datentyp eine Klasse benötigt, so wird die anonyme +Klasse daraus abgeleitet.

    +

    Zunächst wird die Schnittstelle Qux samt der Methode +void quux(s: String)definiert.

    +
    Qux.java
    public interface Qux {

    void quux(String s);

    }
    +

    Die Klasse Foo soll die Verwenderklasse der Schnittstelle Qux darstellen.

    +
    Foo.java
    public class Foo {

    public static void bar(String s, Qux q) {
    q.quux(s);
    }

    }
    +

    In der main-Methode der Startklasse soll die Methode +void bar(s: String, q: Qux) der Klasse Foo aufgerufen werden, wofür eine +konkrete Implementierung der Schnittstelle Qux benötigt wird. Die +Implementierung erfolgt in Form einer anonymen Klasse.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    Foo.bar("Winter is Coming", new Qux() {
    @Override
    public void quux(String s) {
    System.out.println(s);
    }
    });
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/interfaces/index.html b/pr-preview/pr-238/documentation/interfaces/index.html new file mode 100644 index 0000000000..57d0b69e0f --- /dev/null +++ b/pr-preview/pr-238/documentation/interfaces/index.html @@ -0,0 +1,30 @@ +Schnittstellen (Interfaces) | Programmieren mit Java

    Schnittstellen (Interfaces)

    Wird eine Klasse von mehreren Klassen abgeleitet, spricht man von +Mehrfachvererbung. Das Prinzip der Mehrfachvererbung wird von vielen +Programmiersprachen allerdings nicht (direkt) unterstützt. Der Hauptgrund hier +sind mögliche Mehrdeutigkeiten. Erbt eine Klasse über mehrere mögliche Pfade von +einer Basisklasse und werden dabei möglicherweise Methoden der Basisklasse +unterschiedlich überschrieben, entstehen dadurch nicht eindeutige Varianten. +Aufgrund der Rautenform des Klassendiagramms wird dieses Szenario also +Diamantenproblem bezeichnet.

    + +

    Zur Lösung des Diamantenproblems werden Schnittstellen (Interfaces) verwendet. +Schnittstellen sind im Prinzip abstrakte Klassen, die ausschließlich abstrakte +Methoden besitzen. Durch Schnittstellen wird sichergestellt, dass Klassen +bestimmte Methoden bereitstellen und dass verschiedene Klassen miteinander +kommunizieren können.

    +

    Definition von Schnittstellen

    +

    Die Definition einer Schnittstelle erfolgt analog zur Definition von Klassen. +Das Schlüsselwort für Schnittstellen lautet interface. Eine Schnittstelle kann +nur öffentliche, abstrakte und öffentliche, statische Methoden beinhalten.

    +
    MobileDevice.java
    public interface MobileDevice {

    int getScreenSizeInInches();

    }
    +
    Hinweis

    Die Angabe von abstract und public bei Methoden ist nicht erforderlich.

    +

    Implementieren von Schnittstellen

    +

    Schnittstellen werden mit Hilfe des Schlüsselworts implements von einer Klasse +implementiert. Durch die Implementierung der Schnittstelle verpflichtet sich die +Klasse, alle Methoden der Schnittstelle zu implementieren.

    +
    MobileDevice.java
    public interface MobileDevice {

    int getScreenSizeInInches();

    }
    +

    Verwenden von Schnittstellen

    +

    Schnittstellen können ebenso wie Klassen als Datentypen verwendet werden. Die +Typumwandlung von der implementierenden Klasse zur Schnittstelle bezeichnet man +als Upcast die Rückumwandlung als Downcast

    +
    MobileDevice.java
    public interface MobileDevice {

    int getScreenSizeInInches();

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/io-streams/index.html b/pr-preview/pr-238/documentation/io-streams/index.html new file mode 100644 index 0000000000..308df37c65 --- /dev/null +++ b/pr-preview/pr-238/documentation/io-streams/index.html @@ -0,0 +1,106 @@ +Datenströme (IO-Streams) | Programmieren mit Java

    Datenströme (IO-Streams)

    Datenströme (IO-Streams) sind unidirektionale Pipelines, die Schnittstellen +eines Java-Programms nach außen darstellen. Daten können unabhängig von der Art +der Quelle bzw. des Ziels vorne in einen Datenstrom geschrieben und hinten +wieder ausgelesen werden. Ein Datenstrom kann dabei immer nur in eine Richtung +verwendet werden (also entweder zur Ein- oder Ausgabe). Neben den +Standard-Datenströmen zur Ein- und Ausgabe existieren verschiedene Klassen zum +Schreiben und Lesen zeichenorientierter Daten, zum Schreiben und Lesen +byteorientierter Daten und zum Schreiben und Lesen serialisierter Objekte. Das +Arbeiten mit Datenstrom-Klassen kann dabei aufwändig über "normale" +try-catch-Anweisungen oder mit Hilfe von try-with-resources-Anweisungen +realisiert werden.

    + +

    Standard-Datenströme zur Ein- und Ausgabe

    +

    Java stellt Standard-Datenströme für die Eingabe (System.in), die Ausgabe +(System.out), sowie die Fehlerausgabe (System.err) zur Verfügung.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    byte input[] = new byte[256];
    int noBytes = 0;
    String output = "";

    try {
    noBytes = System.in.read(input);
    } catch (IOException e) {
    System.err.println(e.getMessage());
    }

    if (noBytes > 0) {
    output = new String(input, 0, noBytes);
    System.out.println(output);
    }
    }

    }
    +
    Hinweis

    Die Klasse Scanner, die ebenfalls auf dem Datenstrom-Konzept basiert, +ermöglicht eine einfache Möglichkeit der Eingabe.

    +

    Schreiben und Lesen byteorientierter Daten

    +

    Für die Verarbeitung von byteorientierten Daten (z.B. Bild- und Video-Dateien) +stehen die abstrakten Basisklassen InputStream und OutputStream zur +Verfügung.

    +
    DatenstromklasseEin- und Ausgabe in...
    BufferedInputStream und BufferedOutputStream...einen Puffer
    FileInputStream und FileOutputStream...eine Datei
    StringInputStream und StringOutputStream...eine Zeichenkette
    +

    Schreiben byteorientierter Daten

    +
      +
    1. Datei-Objekt erzeugen
    2. +
    3. FileOutputStream-Objekt erzeugen
    4. +
    5. BufferedOutputStream-Objekt erzeugen
    6. +
    7. Daten schreiben
    8. +
    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    File file = new File("stark.bin");

    try (FileOutputStream fileOutputStream = new FileOutputStream(file);
    BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream)) {
    bufferedOutputStream.write("Winter is Coming".getBytes());
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    }
    +

    Lesen byteorientierter Daten

    +
      +
    1. Datei-Objekt erzeugen
    2. +
    3. FileInputStream-Objekt erzeugen
    4. +
    5. BufferedInputStream-Objekt erzeugen
    6. +
    7. Werte auslesen
    8. +
    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    File file = new File("stark.bin");

    try (FileInputStream fileInputStream = new FileInputStream(file);
    BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream)) {
    byte[] input = bufferedInputStream.readAllBytes();
    System.out.println(new String(input));
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    }
    +

    Schreiben und Lesen zeichenorientierter Daten

    +

    Für die Verarbeitung von zeichenorientierten Daten (z.B. Textdokumente) stehen +die abstrakten Basisklassen Reader und Writer zur Verfügung.

    +
    DatenstromklasseEin- und Ausgabe in...
    BufferedReader und BufferedWriter...einen Puffer
    FileReader und FileWriter...eine Datei
    StringReader und StringWriter...eine Zeichenkette
    +

    Schreiben zeichenorientierter Daten

    +
      +
    1. Datei-Objekt erzeugen
    2. +
    3. FileWriter-Objekt erzeugen
    4. +
    5. BufferedWriter-Objekt erzeugen
    6. +
    7. Daten schreiben
    8. +
    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    File file = new File("stark.txt");

    try (FileWriter fileWriter = new FileWriter(file);
    BufferedWriter bufferedWriter = new BufferedWriter(fileWriter)) {
    bufferedWriter.write("Winter is Coming");
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    }
    +

    Lesen zeichenorientierter Daten

    +
      +
    1. Datei-Objekt erzeugen
    2. +
    3. FileReader-Objekt erzeugen
    4. +
    5. BufferedReader-Objekt erzeugen
    6. +
    7. Werte auslesen
    8. +
    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    File file = new File("stark.txt");

    try (FileReader fileReader = new FileReader(file);
    BufferedReader bufferedReader = new BufferedReader(fileReader)) {
    String line;
    while ((line = bufferedReader.readLine()) != null) {
    System.out.println(line);
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    }
    +

    Schreiben und Lesen serialisierter Objekte

    +

    Um ein Objekt persistent zu machen (also zu sichern) und um ein Objekt durch das +Netzwerk zu schicken (also für entfernte Methodenaufrufe) ist es notwendig, das +Objekt in einen Byte-Strom umzuwandeln. Die Umwandlung eines Objektes in einen +Byte-Strom bezeichnet man als Serialisierung die Rückumwandlung als +Deserialisierung Die Serialisierung erfolgt über die writeObject-Methode der +Klasse ObjectOutputStream, die Deserialisierung über die readObject-Methode +der Klasse ObjectInputStream.

    +

    Damit Objekte einer Klasse serialisiert werden können, muss die entsprechende +Klasse die Schnittstelle Serializable implementieren. Die Schnittstelle +Serializable ist eine sogenannte Marker-Schnittstelle, d.h. sie besitzt keine +zu implementierenden Methoden.

    +
    Foo.java
    public class Foo implements Serializable {

    }
    +

    Schreiben serialisierter Objekte

    +
      +
    1. Datei-Objekt erzeugen
    2. +
    3. FileOutputStream-Objekt erzeugen
    4. +
    5. ObjectOutputStream-Objekt erzeugen
    6. +
    7. Objekte schreiben
    8. +
    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    List<Foo> foos = new ArrayList<>();
    foos.add(new Foo());
    foos.add(new Foo());

    File file = new File("foos.bin");

    try (FileOutputStream fileOutputStream = new FileOutputStream(file);
    ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream)) {
    for (Foo f : foos) {
    objectOutputStream.writeObject(f);
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    }
    +

    Lesen serialisierter Objekte

    +
      +
    1. Datei-Objekt erzeugen
    2. +
    3. FileInputStream-Objekt erzeugen
    4. +
    5. ObjectInputStream-Objekt erzeugen
    6. +
    7. Objekte auslesen
    8. +
    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    File file = new File("foos.bin");

    try (FileInputStream fileInputStream = new FileInputStream(file);
    ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream)) {
    while (true) {
    Foo foo = (Foo) objectInputStream.readObject();
    System.out.println(foo);
    }
    } catch (EOFException e) {
    /* End of File */
    } catch (IOException | ClassNotFoundException e) {
    e.printStackTrace();
    }
    }

    }
    +

    Versionierung bei der Serialisierung

    +

    Die Konstante serialVersionUID vom Datentyp long dient zur eindeutigen +Identifikation der Version einer serialisierbaren Klasse. Durch die Konstante +kann sichergestellt werden, dass Empfänger von serialisierten Objekten +typkompatibel zum Sender sind, d.h. eine passende Klassenstruktur aufweisen.

    +
    Foo.java
    public class Foo implements Serializable {

    public static final long serialVersionUID = 1L;

    }
    +
    Hinweis

    Obwohl jede serialisierbare Klasse automatisch eine ID erhält, wird die manuelle +Zuweisung dringend empfohlen.

    +

    Die try-with-resources-Anweisung

    +

    Bei einer "normalen" try-catch-Anweisung müssen die Datenstrom-Klassen manuell +geschlossen werden, was sich als sehr aufwändig darstellt.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    File file = new File("stark.txt");
    FileWriter fileWriter = null;
    BufferedWriter bufferedWriter = null;

    try {
    fileWriter = new FileWriter(file);
    bufferedWriter = new BufferedWriter(fileWriter);
    bufferedWriter.write("Winter is Coming");
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    if (bufferedWriter != null) {
    try {
    bufferedWriter.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
    }

    }
    +
    Hinweis

    Der finally-Block einer try-Anweisung wird in jedem Fall durchlaufen.

    +

    Die try-with-resources-Anweisung ermöglicht die Deklaration von Ressourcen, die +am Ende des try-Blockes automatisch geschlossen werden.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    File file = new File("stark.txt");

    try (FileWriter fileWriter = new FileWriter(file);
    BufferedWriter bufferedWriter = new BufferedWriter(fileWriter)) {
    bufferedWriter.write("Winter is Coming");
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    }
    +
    Hinweis

    Voraussetzung für den Einsatz der try-with-resources-Anweisung ist, dass die +Ressourcen-Klassen die Schnittstelle AutoCloseable implementiert haben.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/java-api/index.html b/pr-preview/pr-238/documentation/java-api/index.html new file mode 100644 index 0000000000..cce8fafca4 --- /dev/null +++ b/pr-preview/pr-238/documentation/java-api/index.html @@ -0,0 +1,17 @@ +Die Java API | Programmieren mit Java

    Die Java API

    Die Java API (Java Application Programming Interface) stellt eine umfangreiche +Bibliothek wichtiger Java-Klassen dar. Neben dem eigentlichen Quellcode stellt +die Java API auch detaillierte Informationen zu den Klassen (Paketzugehörigkeit, +Attribute, Methoden,…) als Javadoc bereit. Entwicklungsumgebungen wie Eclipse +bieten meist eine vollständige Integration der Java API an.

    +

    Wichtige Klassen und Schnittstellen der Java API

    +
    ThemaKlassen
    Assoziativspeicher (Maps)Entry<K, V>, HashMap<K, V>, Map<K, V>
    Aufzählungen (Enumerations)Enumeration<E>
    Ausnahmen (Exceptions)ArrayIndexOutOfBoundsException, Exception, NullPointerException, RunTimeException
    Dateien und VerzeichnisseFile, Scanner
    Datenklassen (Records)Record
    DatenströmeBufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter, FileInputStream, FileOutputStream, FileReader, FileWriter, ObjectInputStream, ObjectOutputStream, Serializable, System
    Datums- und ZeitangabenLocalDate, LocalDateTime, LocalTime
    Die Java Stream APIBiConsumer, Collectors, Comparable<T>, Comparator<T>, Consumer<T>, DoubleConsumer, DoubleStream, Executable, Function<T, R>, IntStream, Predicate<T>, Stream<T>, ToDoubleFunction<T, R>, ToIntFunction<T, R>
    Die Mutter aller KlassenObject
    Java Collections FrameworkArrayList<E>, Arrays, HashSet<E>, LinkedList<E>, List<E>, Queue<E>, Set<E>
    KomparatorenComparable<T>, Comparator<T>, Collections
    KonsolenanwendungenPrintStream, Scanner, System
    ListenArrayList<E>, Arrays, LinkedList<E>, List<E>
    Mathematische BerechnungenMath
    OptionalsOptional<T>, OptionalDouble
    PseudozufallszahlenRandom
    Wrapper-KlassenBoolean, Double, Integer
    Zeichenketten (Strings)String
    +

    Die Javadoc

    +

    Die Javadoc ist ein Werkzeug zur Software-Dokumentation und erstellt aus den +öffentlichen Deklarationen von Klassen, Schnittstellen, Attributen und Methoden +sowie eventuell vorhandenen +Dokumentationskommentaren +HTML-Seiten. Um die Navigation innerhalb der Dokumentationsdateien zu +erleichtern, werden zusätzlich verschiedene Index- und Hilfsdateien generiert. +HTML-Tags in den Dokumentationskommentaren ermöglichen die Formatierung der +Dokumentation.

    +
    Computer.java (Auszug)
    /**
    * Computer
    *
    * @author Hans Maier
    * @version 1.0
    *
    */
    public class Computer {
    ...
    /**
    * Central Processing Unit
    */
    private CPU cpu;

    /**
    * Returns the Central Processing Unit (CPU) of this Computer
    *
    * @return the Central Processing Unit
    */
    public CPU getCpu() {
    return cpu;
    }

    /**
    * Sets the Central Processing Unit of this Computer with the incoming data
    *
    * @param powerInGHz Power of the CPU in GHz
    * @param numberOfCores Number of Cores
    */
    public void setCpu(double powerInGHz, int numberOfCores) {
    cpu = new CPU(powerInGHz, numberOfCores);
    }
    ...
    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/java-collections-framework/index.html b/pr-preview/pr-238/documentation/java-collections-framework/index.html new file mode 100644 index 0000000000..1a4181588d --- /dev/null +++ b/pr-preview/pr-238/documentation/java-collections-framework/index.html @@ -0,0 +1,36 @@ +Java Collections Framework | Programmieren mit Java

    Java Collections Framework

    Collections sind Behälter, die beliebig viele Objekte aufnehmen können. Der +Behälter übernimmt dabei die Verantwortung für die Elemente. Collections werden +auch als (Daten-)Sammlungen bezeichnet. Alle Collections-Schnittstellen und +Klassen befinden sich im Paket java.util. Die Grundformen der Datensammlungen +sind die Schnittstellen List<E>, Set<E> und Queue<E>. Zu allen +Schnittstellen existieren konkrete Implementierungen sowie abstrakte Klassen, +die zum Erstellen eigener Collections-Klassen verwendet werden können.

    +

    Unter einer Liste (List) versteht man eine geordnete Folge von Objekten. Listen +können doppelte Elemente enthalten. Der Zugriff auf die Elemente erfolgt über +den Index oder sequentiell.

    Konkrete Implementierungen der Schnittstelle List<E> stellen die Klassen +ArrayList<E> und LinkedList<E> (siehe auch +Feldbasierte Listen und Listen) dar.

    +

    Iteratoren

    +

    Ein Iterator erlaubt den sequentiellen Zugriff auf die Elemente einer +Datensammlung. Iteratoren werden durch die Schnittstelle Iterator<E> +definiert; diese bietet die Methoden boolean hasNext(), E next() und +void remove(). Die von Iterator<E> abgeleitete Schnittstelle +ListIterator<E> bietet zusätzliche Methoden zum Verändern einer Liste.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {

    List<String> names = List.of("Hans", "Peter", "Lisa");

    Iterator<String> iterator = names.iterator();
    while (iterator.hasNext()) {
    String name = iterator.next();
    System.out.println(name);
    }

    }

    }
    +

    Auch die bereits bekannte for-each-Schleife basiert auf Iteratoren. Die +ausführliche Schreibeweise mit Iteratoren wird auch als erweiterte for-Schleife +bezeichnet. Beim Kompilieren werden for-each-Schleifen um Iteratoren ergänzt.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {

    List<String> names = List.of("Hans", "Peter", "Lisa");

    for (Iterator<String> iterator = names.iterator(); iterator.hasNext();) {
    String name = iterator.next();
    System.out.println(name);
    }

    /* Kurzschreibweise */
    for (String name: names) {
    System.out.println(name);
    }

    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/java-stream-api/index.html b/pr-preview/pr-238/documentation/java-stream-api/index.html new file mode 100644 index 0000000000..21b4d20374 --- /dev/null +++ b/pr-preview/pr-238/documentation/java-stream-api/index.html @@ -0,0 +1,74 @@ +Die Java Stream API | Programmieren mit Java

    Die Java Stream API

    Die Java Stream API stellt Klassen zum Erzeugen von und Arbeiten mit Strömen +(Streams) bereit. Ein Strom stellt eine Folge von Elementen dar, die das +Ausführen verketteter, intermediärer und terminaler Operationen auf diesen +Elementen nacheinander oder parallel ermöglicht. Die Daten, die durch die +Elemente des Stromes repräsentiert werden, werden dabei durch den Strom selbst +nicht verändert. Die Verarbeitung der Elemente erfolgt nach dem Prinzip der +Bedarfsauswertung (Lazy Evaluation). Neben endlichen Strömen stellt die Java +Stream API auch Methoden zum Erzeugen unendlicher Ströme bereit.

    + +
    Hinweis

    Ströme (Paket java.util.stream) haben nichts mit +Datenströmen (IO-Streams) (Paket java.io) zu tun.

    +

    Erzeugen von Strömen

    +

    Ströme können unter anderem aus Feldern, Datensammlungen wie z.B. Listen und +Mengen sowie Einzelobjekten erzeugt werden.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int[] array = {4, 8, 15, 16, 23, 42};
    IntStream integerStream = Arrays.stream(array);

    List<Integer> list = List.of(4, 8, 15, 16, 23, 42);
    Stream<Integer> integerStream2 = list.stream();

    Stream<Integer> integerStream3 = Stream.of(4, 8, 15, 16, 23, 42);
    }

    }
    +
    Hinweis

    Die Zahlenfolge 4-8-15-16-23-42 spielt eine große Rolle in der Fernsehserie +Lost.

    +

    Im Gegensatz zu "normalen" Strömen besitzen Objekte der Klassen IntStreams, +DoubleStreams und LongStreams Methoden zur Weiterverarbeitung ihrer +primitiver Werte.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int[] array = {4, 8, 15, 16, 23, 42};
    IntStream integerStream = Arrays.stream(array);
    int sum = integerStream.sum();
    }

    }
    +

    Intermediäre Operationen

    +

    Intermediäre Operationen ermöglichen unter anderem das Filtern, Abbilden sowie +das Sortieren von Strömen und liefern als Ergebnis wiederum einen Strom.

    +
    OperationMethodeSchnittstellen-Methode
    FilternStream<T> filter(predicate: Predicate<T>)boolean test(t: T)
    AbbildenStream<T> map(mapper: Function<T, R>)R apply(t: T)
    AbbildenDoubleStream mapToDouble(mapper: ToDoubleFunction<T, R>)double applyAsDouble(value: T)
    AbbildenIntStream mapToInt(mapper: ToIntFunction<T, R>)int applyAsInt(vaue: T)
    AbbildenLongStream mapToLong(mapper: ToLongFunction<T, R>)long applyAsLong(value: T)
    SpähenStream<T> peek(consumer: Consumer<T>)void accept(t: T)
    SortierenStream<T> sorted(comparator: Comparator<T>)int compare(o1: T, o2: T)
    UnterscheidenStream<T> distinct()-
    BegrenzenStream<T> limit(maxSize: long)-
    ÜberspringenStream<T> skip(n: long)-
    +

    Terminale Operationen

    +

    Terminale Operationen werden z.B. zum Prüfen, zum Aggregieren oder zum Sammeln +verwendet. Da terminale Operationen den Strom schließen, können auf ihnen keine +weiteren Operationen mehr ausgeführt werden.

    +
    OperationMethodeSchnittstellen-Methode
    FindenOptional<T> findAny()-
    FindenOptional<T> findFirst()-
    Prüfenboolean allMatch(predicate: Predicate<T>)boolean test(t: T)
    Prüfenboolean anyMatch(predicate: Predicate<T>)boolean test(t: T)
    Prüfenboolean noneMatch(predicate: Predicate<T>)boolean test(t: T)
    AggregierenOptional<T> min(comparator: Comparator<T>)int compare(o1: T, o2: T)
    AggregierenOptional<T> max(comparator: Comparator<T>)int compare(o1: T, o2: T)
    Aggregierenlong count()-
    SammelnR collect(collector: Collector<T, A, R>)-
    Ausführenvoid forEach(action: Consumer<T>)void accept(t: T)
    +

    Zahlenströme (IntStream, DoubleStream, LongStream) besitzen die +zusätzlichen terminale Operationen int|double|long sum() und +OptionalDouble average().

    +

    Bedarfsauswertung (Lazy Evaluation)

    +

    Die Elemente in Strömen werden nur bei Bedarf ausgewertet. Intermediäre +Operationen werden also nur dann ausgeführt, wenn eine terminale Operation +vorhanden ist und bei verketteten Operationen werden für jedes Element die +einzelnen Operationen nacheinander ausgeführt.

    +

    In der main-Methode der Startklasse wird auf den Zahlenstrom 4-8-15-16-23-42 +zunächst der Filter Zahl > 15 angewendet, anschließend der Filter Zahl = +ganze Zahl und abschließend werden die verbliebenen Zahlen auf der Konsole +ausgegeben. Zum Nachvollziehen werden die Zahlen auch bei den beiden Filtern auf +der Konsole ausgegeben.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    Stream.of(4, 8, 15, 16, 23, 42).filter(i -> {
    System.out.println(i + ": filter 1");
    return i % 2 == 0;
    }).filter(i -> {
    System.out.println(i + ": filter 2");
    return i > 15;
    }).forEach(i -> System.out.println(i + ": forEach"));
    }

    }
    +

    Ohne Bedarfsauswertung würden die verschiedenen Operationen für die jeweils +verbliebenen Elemente ausgeführt nacheinander werden. Die Ausgabe sähe wie folgt +aus:

    +
     4: filter 1
    8: filter 1
    15: filter 1
    16: filter 1
    23: filter 1
    42: filter 1
    4: filter 2
    8: filter 2
    16: filter 2
    42: filter 2
    16: forEach
    42: forEach
    +

    Aufgrund der Bedarfsauswertung werden die verschiedenen Operationen aber für +jedes Element einzeln nacheinander ausgeführt. Dadurch ergibt sich folgende +Ausgabe:

    +
    4: filter 1
    4: filter 2
    8: filter 1
    8: filter 2
    15: filter 1
    16: filter 1
    16: filter 2
    16: forEach
    23: filter 1
    42: filter 1
    42: filter 2
    42: forEach
    +

    Unendliche Ströme

    +

    Die Java Stream API stellt drei Methoden zur Verfügung, mit deren Hilfe +(un)endliche Ströme erzeugt werden können:

    +
      +
    • Die Methode Stream<T> iterate(seed: T, f: UnaryOperator<T>) generiert einen +unendlichen Strom aus einem Startwert und einer Funktion, welche das nächste +Element erstellt
    • +
    • Die Methode +Stream<T> iterate(seed: T, hasNext: Predicat <T>, next: UnaryOperator<T>) +erweitert die "normale" iterate-Methode um eine Prädikatsfunktion zum Beenden +des Stroms
    • +
    • Die Methode Stream<T> generate(s: Supplier<T>) kann zum Beispiel zum +Erzeugen unendlich vieler zufälliger Elemente genutzt werden
    • +
    +

    In der main-Methode der Startklasse werden drei (un)endliche Zahlenströme +erzeugt.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    Stream.iterate(0, i -> ++i).limit(100).forEach(System.out::println);
    Stream.iterate(0, i -> i < 100, i -> ++i).forEach(System.out::println);
    Stream.generate(() -> new Random().nextInt(100)).limit(100).forEach(System.out::println);
    }

    }
    +

    Die ersten beiden Zahlenströme geben die Zahlen von 0 bis 99 aus, der dritte +Zahlenstrom 100 Pseudozufallszahlen von 0 bis 99. Der erste und dritte +Zahlenstrom würden eigentlich unendliche viele (Pseudozufalls-)Zahlen erzeugen, +werden aber durch die Methode Stream<T> limit(maxSize: long) auf 100 +(Pseudozufalls-)Zahlen begrenzt.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/java/index.html b/pr-preview/pr-238/documentation/java/index.html new file mode 100644 index 0000000000..ae4ef2529a --- /dev/null +++ b/pr-preview/pr-238/documentation/java/index.html @@ -0,0 +1,44 @@ +Die Programmiersprache Java | Programmieren mit Java

    Die Programmiersprache Java

    Die Programmiersprache Java gehört zu den problemorientierten +Programmiersprachen und ist daher einfacher zu erlernen und einfacher zu +verstehen als maschinenorientierte Programmiersprachen. Bei der Entwicklung von +Java verfolgte man das Ziel, eine einfache, objektorientierte, robuste, +architekturneutrale und parallelisierbare Programmiersprache zu entwickeln. Java +wurde hauptsächlich von C und C++ beeinflusst, ist allerdings im Gegensatz zu C +und C++ nicht darauf ausgelegt, möglichst leistungsfähige Programme zu erzeugen, +sondern möglichst sichere und fehlerfreie Programme.

    +

    Die Geschichte von Java

    +

    Anfang der 90er begannen bei der Firma Sun Microsystems unter Federführung des +Chefentwicklers James Gosling die Arbeiten an einem Projekt mit dem Codenamen +The Green Project mit dem Ziel, eine vollständige Betriebssystemumgebung für +unterschiedliche Zwecke (interaktives Kabelfernsehen, intelligente +Kaffeemaschinen etc.) zu entwickeln. Die daraus entstehende Programmiersprache +sollte ursprünglich den Namen Oak (Object Application Kernel) tragen, wurde +aber schließlich im Mai 1995 unter dem Namen Java veröffentlicht. Der große +Durchbruch von Java kam 1996 durch eine Kooperation mit der Firma Netscape +zustande, die eine Integration von Java-Applets mit Hilfe von JavaScript in den +Browser Netscape Navigator 2.0 ermöglichte. Weitere wichtige Meilensteine in der +Geschichte von Java waren die Veröffentlichungen der Google-Entwicklungsumgebung +Android 2008 sowie des Computerspiels Minecraft 2009.

    +
    Hinweis

    Java war der Name der beliebtesten Kaffeesorte der Entwickler.

    +

    JDK und JRE

    +

    Das JDK (Java Development Kit) stellt die wichtigste Komponente zum +Programmieren von Java-Programmen dar. Es enthält neben dem Compiler und +Debugger weitere wichtige Werkzeuge sowie umfangreiche Bibliotheken (siehe +Die Java API). Die JRE (Java Runtime Environment) enthält den +Interpreter (die Java Virtual Machine) und wird zum Ausführen von +Java-Applikationen benötigt. Seit September 2017 wird alle sechs Monate eine +neue JDK-Version veröffentlicht (i.d.R. Mitte März und Mitte September eines +Jahres). Diese Versionen werden von Oracle nur bis zum Erscheinen der jeweils +nächsten Version unterstützt. Eine Ausnahme bilden hier die LTS-Versionen +(long-term-support-releases). Die aktuellen LTS-Versionen sind 8, 11, 17 und 21. +Die Neuerungen einer Version werden durch sogenannte JEPs (JDK Enhancement +Proposals) festgelegt. Weitere Informationen zu den verschiedenen JDK-Versionen +können auf der offziellen JDK-Seite gefunden werden.

    +

    Entwicklung von Java-Programmen

    +

    Zur Entwicklung von Java-Programmen wird neben dem Java Development Kit (JDK) +nur ein einfacher Texteditor benötigt. Das Kompilieren und Ausführen der Klassen +erfolgt dann über die Kommandozeile (Command Line Interface, kurz CLI). +Alternativ kann auch eine Entwicklungsumgebung (Integrated Development +Environment, kurz IDE) verwendet werden. Diese bieten in der Regel zusätzliche +Komfortfunktionen wie Syntaxhighlighting, Autovervollständigung, +Vorschlagslisten etc. und vereinfachen so die Entwicklung von Programmen.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/javafx/index.html b/pr-preview/pr-238/documentation/javafx/index.html new file mode 100644 index 0000000000..d5b82e2831 --- /dev/null +++ b/pr-preview/pr-238/documentation/javafx/index.html @@ -0,0 +1,84 @@ +JavaFX | Programmieren mit Java

    JavaFX

    Java stellt mit dem AWT (Abstract Window Toolkit) und Swing zwei +Bibliotheken zur Entwicklung grafischer Benutzeroberflächen zur Verfügung. Swing +baut dabei auf dem älteren AWT auf und verwendet teilweise Klasse daraus. Der +Nachfolger von Swing heißt JavaFX und stellt im Gegensatz zu AWT und Swing keine +Bibliothek, sondern ein Framework zur Entwicklung plattformübergreifender +grafischer Benutzeroberflächen dar. Unter einem Framework versteht man ein +Programmiergerüst, welches die Architektur für die Anwendung vorgibt und den +Kontrollfluss der Anwendung steuert. So werden die Funktionen einer Anwendung +beim Framework registriert, welches die Funktionen zu einem späteren Zeitpunkt +aufruft, d.h. die Steuerung des Kontrollfluss obliegt nicht der Anwendung, +sondern dem Framework. Diese Umkehr der Steuerung kann auch als Anwendung des +Hollywood-Prinzips (Don´t call us, we´ll call you) verstanden werden.

    +
    Hinweis

    Bis Java 11 war JavaFX Bestandteil des JDK, seit Java 11 stellt es ein +eigenständiges SDK (Software Development Kit) dar.

    +

    Aufbau und Lebenszyklus von JavaFX-Anwendungen

    +

    JavaFX-Anwendungen bestehen aus einer oder mehreren Bühnen (Stages), die +beliebig vielen Szenen (Scenes) enthalten können, wobei jede Szene wiederum +beliebig viele Bildschirmelemente (Nodes) enthalten kann. Jede JavaFX-Anwendung +ist eine Unterklasse der Klasse Application. Diese stellt die verschiedenen +Lebenszyklus-Methoden der JavaFX-Anwendung bereit.

    +
      +
    • Die Methode void launch(args: String[]) speichert die Aufrufparameter, +erzeugt ein Objekt der eigenen Klasse und ruft die weiteren +Lebenszyklus-Methoden auf
    • +
    • Die Methode void init() kann genutzt werden, um z.B. die Aufrufparameter +auszulesen
    • +
    • Die Methode void start(primaryStage: Stage) bekommt eine Bühne übergeben und +wird dazu verwendet, die Bühne zu gestalten und die erste Szene aufzurufen
    • +
    • Die Methode void stop() wird aufgerufen, bevor der Prozess gestoppt wird und +kann genutzt werden, um Aufräumarbeiten durchzuführen
    • +
    +

    Definition von Szenen

    +

    Die Definition einer Szene (View) erfolgt deklarativ mit Hilfe von +FXML-Dokumenten. FXML stellt eine auf XML-basierende Sprache dar und ermöglicht +eine klare Trennung zwischen Layout und Code. XML (Extensible Markup Language) +wiederum stellt eine Auszeichnungssprache zur Beschreibung strukturierter Daten +dar.

    +

    Mit Hilfe spezifischer JavaFX-Eigenschaften wird eine Verbindung zwischen der +Szene und der Ereignisbehandler-Klasse hergestellt:

    +
      +
    • Bildschirmelementen können über die Eigenschaft fx:id IDs zugewiesen werden, +über die die Ereignisbehandler-Klasse auf die jeweiligen Elemente zugreifen +kann
    • +
    • Die verantwortliche Ereignisbehandler-Klasse wird über die Eigenschaft +fx:controller festgelegt
    • +
    • Den zu behandelnden Ereignissen können über entsprechende Eigenschaften wie +z.B. onAction bei Drucktasten Behandlermethoden der Ereignisbehandler-Klasse +zugewiesen werden
    • +
    +
    InputView.fxml
    <?xml version="1.0" encoding="UTF-8"?>

    <?import javafx.geometry.Insets?>
    <?import javafx.scene.control.Button?>
    <?import javafx.scene.control.TextField?>
    <?import javafx.scene.layout.VBox?>

    <VBox alignment="CENTER" spacing="5.0" xmlns:fx="http://javafx.com/fxml/1"
    fx:controller="InputController">
    <children>
    <TextField fx:id="valueTextField" promptText="Wert" />
    <Button text="Zur Ausgabe" onAction="#goToOutput"/>
    </children>
    <padding>
    <Insets bottom="25.0" left="25.0" right="25.0" top="25.0" />
    </padding>
    </VBox>
    +

    Aufruf von Szenen

    +

    Die statische Methode Parent load(location: URL) der Klasse FXMLLoader +überführt das angegebene FXML-Dokument in einen Szenegraphen und gibt den +dazugehörigen Wurzelknoten vom Typ Parent zurück, mit dessen Hilfe +anschließend die Szene erstellt und angezeigt werden kann. Zusätzlich +instanziiert der FXML-Loader den Controller und ruft bei der Anzeige der Szene +die (optionale) Methode +void initialize(location: URL, resources: ResourceBundle) der entsprechenden +Ereignisbehandler-Klasse auf.

    +
    MainClass.java
    public class MainClass extends Application {

    public static void main(String[] args) {
    launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("InputView.fxml"));
    Scene scene = new Scene(root);
    primaryStage.setTitle("JavaFX");
    primaryStage.setScene(scene);
    primaryStage.show();
    }

    }
    +

    Implementierung von Ereignisbehandler-Klassen

    +

    In den Ereignisbehandler-Klassen (Controller) werden die Behandlermethoden +implementiert. Diese müssen zwingend einen Parameter vom Typ des Ereignisses +besitzen (z.B. ActionEvent), mit dessen Hilfe auf das ausgelöste Ereignis +zugegriffen werden kann. Das Verknüpfen von Attributen der +Ereignisbehandler-Klasse mit den Elementen des FXML-Dokuments erfolgt über die +Annotation @FXML und der Namensgleichheit zwischen den Attributen der +Ereignisbehandler-Klasse sowie den festgelegten Ids der entsprechenden Elemente +des FXML-Dokuments.

    +

    Der Wechsel von Szenen erfolgt über die Methode void setScene(value: Scene) +der Klasse Window. Die Methode Object getSource() der Klasse ActionEvent +gibt das Bildschirmelement zurück, welches das Ereignis ausgelöst hat; die +Methode Window getWindow() der Klasse Scene die Bühne, auf der die aktuelle +Szene aufgeführt wird.

    +
    InputController.java
    public class InputController implements Initializable {

    @FXML
    private TextField valueTextField;
    private Model model;

    @Override
    public void initialize(URL location, ResourceBundle resources) {
    model = Model.getInstance();
    }

    @FXML
    public void goToOutput(ActionEvent actionEvent) throws IOException {
    String value = valueTextField.getText();
    model.setValue(value);

    Parent root = FXMLLoader.load(getClass().getResource("OutputView.fxml"));
    Scene scene = new Scene(root);
    Node node = (Node) actionEvent.getSource();
    Stage stage = (Stage) node.getScene().getWindow();
    stage.setScene(scene);
    stage.show();
    }

    }
    +
    Hinweis

    Die Methode void initialize(location: URL, resources: ResourceBundle) der +Schnittstelle Initializable wird vom FXML-Loader vor Anzeige der dazugehörigen +Szene aufgerufen und ermöglicht es, die Szene dynamisch anzupassen.

    +

    Implementierung von Model-Klassen

    +

    Model-Klassen sind für die zentrale Verwaltung der Daten zuständig. Da die +verschiedenen Klassen einer JavaFX-Anwendung nur lose miteiander gekoppelt sind, +kann über das Entwurfsmuster Singleton sichergestellt werden, dass zur +Model-Klasse genau ein Objekt, das sogenannte Singleton, zur Laufzeit existiert.

    +
    Model.java
    public class Model {

    private static Model instance;
    private String value;

    private Model() {}

    public static Model getInstance() {
    if (instance == null) {
    instance = new Model();
    }
    return instance;
    }

    public String getValue() {
    return value;
    }

    public void setValue(String value) {
    this.value = value;
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/lambdas/index.html b/pr-preview/pr-238/documentation/lambdas/index.html new file mode 100644 index 0000000000..38452de5e3 --- /dev/null +++ b/pr-preview/pr-238/documentation/lambdas/index.html @@ -0,0 +1,26 @@ +Lambda-Ausdrücke (Lambdas) | Programmieren mit Java

    Lambda-Ausdrücke (Lambdas)

    Lambda-Ausdrücke sind anonyme Funktionen, die nur über ihre Referenz +angesprochen werden können.

    +

    Implementierung von Lambda-Ausdrücken

    +

    Die Methodenparameter sowie der Methodenkörper werden bei einem Lambda-Ausdruck +getrennt vom Pfeiloperator -> notiert.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    List<String> names = new ArrayList<>();
    names.add("Hans");
    names.add("Peter");
    names.add("Lisa");

    Collections.sort(names, (n1, n2) -> n2.compareTo(n1));
    names.forEach(n -> System.out.println(n));
    }

    }
    +
    Hinweis

    Voraussetzung für den Einsatz eines Lambda-Ausdrucks ist eine funktionale +Schnittstelle, also eine Schnittstelle, die über genau eine Methode verfügt.

    +

    Syntaxvarianten

    +
      +
    • Bei keinem oder mehreren Methodenparametern müssen diese in runden Klammern +angegeben werden, bei genau einem Methodenparameter können die runden Klammern +weggelassen werden
    • +
    • Besteht der Methodenkörper aus mehreren Anweisungen, müssen diese in +geschweiften Klammern angegeben werden, bei genau einer Anweisung können die +geschweiften Klammern weggelassen werden
    • +
    • Besteht der Methodenkörper aus genau einer Anweisung, kann das Semikolon am +Anweisungsende weggelassen werden, ist die Anweisung eine return-Anweisung, +kann auch das return weggelassen werden
    • +
    +

    Methodenreferenzen

    +

    Lambda-Ausdrücke, die nur aus dem Aufruf einer Methode bestehen, können als +Methodenreferenz dargestellt werden. Bei einer Methodenreferenz wird die Klasse +bzw. die Referenz auf der linken Seite mit Hilfe zweier Doppelpunkte vom +Methodennamen auf der recht Seite getrennt.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    List<Integer> numbers = new ArrayList<>();
    numbers.add(256);
    numbers.add(314);
    numbers.add(127);

    numbers.stream().map(n -> n.byteValue()).forEach(b -> System.out.println(b)); // Lambda-Ausdruck
    numbers.stream().map(Integer::byteValue).forEach(System.out::println); // Methodenreferenz
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/lists/index.html b/pr-preview/pr-238/documentation/lists/index.html new file mode 100644 index 0000000000..201c83e954 --- /dev/null +++ b/pr-preview/pr-238/documentation/lists/index.html @@ -0,0 +1,14 @@ +Listen | Programmieren mit Java

    Listen

    Die Java API stellt unter Anderem die Schnittstelle List<E> sowie die Klassen +ArrayList<E>, LinkedList<E> und Arrays zur Verfügung, mit deren Hilfe +Listen realisiert werden. Unter einer Liste versteht man eine geordnete Folge +von Elementen, die auch doppelt enthalten sein können. Der Zugriff auf die +Elemente erfolgt über den Index oder sequentiell.

    +

    Die Schnittstelle List<E> bietet verschiedene Fabrikmethoden zum Erzeugen +unveränderbarer Listen. Unveränderbar bedeutet, dass weder die Liste selbst noch +ihre Elemente geändert werden können.

    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    List<String> list = List.of("Hans", "Peter", "Lisa");

    System.out.println(list.size());
    System.out.println(list.get(0));
    list.set(0, "Max"); // Laufzeitfehler
    list.add("Heidi"); // Laufzeitfehler
    list.remove(0); // Laufzeitfehler
    }

    }
    Hinweis

    Fabrikmethoden sind Methoden, die Objekte erzeugen.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/lombok/index.html b/pr-preview/pr-238/documentation/lombok/index.html new file mode 100644 index 0000000000..2ccc16e2d4 --- /dev/null +++ b/pr-preview/pr-238/documentation/lombok/index.html @@ -0,0 +1,12 @@ +Lombok | Programmieren mit Java

    Lombok

    Lombok stellt eine externe Java-Bibliothek dar, +die das Erstellen von Boilerplate-Code überflüssig macht. Repetitive Methoden +wie Konstruktoren, Getter, Setter und die Objekt-Methoden müssen nicht manuell +implementiert werden, sondern werden beim Kompilieren generiert.

    +

    Annotationen

    +

    Durch entsprechende Annotationen kann gesteuert werden, welche Methoden wie +generiert werden sollen.

    +
    AnnotationBeschreibung
    @RequiredArgsConstructorGeneriert einen Konstruktor mit Parametern zu allen unveränderlichen Attributen
    @AllArgsConstructorGeneriert einen Konstruktor mit Parametern zu allen Attributen
    @GetterGeneriert Get-Methoden zu allen Attributen
    @SetterGeneriert Set-Methoden zu allen veränderlichen Attributen
    @EqualsAndHashCodeGeneriert Implementierungen für die Methoden boolean equals(object: Object) und int hashCode()
    @ToStringGeneriert eine Implementierung für die Methode String toString()
    @Data@RequiredArgsConstructor + @Getter + @Setter + @EqualsAndHashCode + @ToString
    +

    Beispiel

    +

    Für die Klasse Student werden mit Hilfe von Lombok-Annotationen Konstruktoren, +Setter und Getter sowie die Object-Methoden generiert.

    +
    Student.java
    @RequiredArgsConstructor
    @AllArgsConstructor
    @Getter
    @Setter
    @EqualsAndHashCode
    @ToString
    public class Student {

    public final int id;
    public final String name;
    public double averageGrade;

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/loops/index.html b/pr-preview/pr-238/documentation/loops/index.html new file mode 100644 index 0000000000..040e85e295 --- /dev/null +++ b/pr-preview/pr-238/documentation/loops/index.html @@ -0,0 +1,32 @@ +Schleifen | Programmieren mit Java

    Schleifen

    Schleifen sind eine von zwei Möglichkeiten, Anweisungsblöcke wiederholt +auszuführen. Die zweite Möglichkeit sind Selbstaufrufe in Form rekursiver +Methoden.

    +

    while-Schleifen

    +

    Bei der while-Schleife wird eine bestimmte Anweisungsfolge (Schleifenrumpf) +wiederholt, solange eine bestimmte Bedingung (Schleifenbedingung) wahr ist. Da +zu Beginn der Schleife die Bedingung geprüft wird, spricht man auch von einer +kopfgesteuerten Schleife.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int i = 0;
    while (i < 10) {
    System.out.println(i);
    i++;
    }
    }

    }
    +

    do/while-Schleifen

    +

    Im Gegensatz zur while-Schleife wird bei der do/while-Schleife der +Schleifenrumpf immer mindestens einmal durchlaufen. Da die Bedingung hier am +Ende der Schleife geprüft wird, spricht man hier von einer fußgesteuerten +Schleife.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int i = 0;
    do {
    System.out.println(i);
    i++;
    } while (i < 10);
    }

    }
    +

    for-Schleifen

    +

    Bei der for-Schleife handelt es sich um eine indexgesteuerte Schleife, auch +Zählschleife genannt. Durch den Index wird bereits zu Schleifenbeginn +festgelegt, wie oft die Schleife durchlaufen wird.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    for (int i = 0; i < 10; i++) {
    System.out.println(i);
    }
    }

    }
    +

    for-each-Schleifen

    +

    Mit Hilfe der for-each-Schleife können Datensammlungen wie z.B. Felder +und Listen elementweise durchlaufen werden. Allerdings können die +Elemente einer Datensammlung nur geändert werden, nicht jedoch die Datensammlung +selbst.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    int[] ids = {4, 8, 15, 16, 23, 42};
    for (int i : ids) {
    System.out.println(i);
    }
    }

    }
    +

    Schleifensteuerung

    +

    Die Anweisung break sorgt dafür, dass eine Schleife ungeachtet der Bedingung +komplett verlassen wird. Mit der Anweisung continue wird der aktuelle +Schleifendurchgang abgebrochen und die Schleife wird mit dem nächsten Durchlauf +fortgeführt.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    for (int i = 0; i < 10; i++) {
    if (i == 6) {
    break;
    }
    if (i % 2 == 0) {
    continue;
    }
    System.out.println(i);
    }
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/maps/index.html b/pr-preview/pr-238/documentation/maps/index.html new file mode 100644 index 0000000000..0fedfe1f94 --- /dev/null +++ b/pr-preview/pr-238/documentation/maps/index.html @@ -0,0 +1,27 @@ +Assoziativspeicher (Maps) | Programmieren mit Java

    Assoziativspeicher (Maps)

    Unter einem Assoziativspeicher (Map) versteht man eine Menge zusammengehöriger +Paare von Objekten. Das erste Objekt stellt dabei den Schlüssel (Key), das +zweite Objekt den Wert (Value) dar. Jeder Schlüssel kann dabei nur einmal in +einem Assoziativspeicher vorhanden sein. Aufgrund dieses Aufbaus werden +Assoziativspeicher auch als Wörterbücher bezeichnet.

    + +

    Um auf die Einträge, Schlüssel und Werte eines Assoziativspeichers zugreifen +können, stellt die Schnittstelle Map die Methoden +Set<Entry<K, V>> entrySet(), Set<K> keySet() und Collection<V> values() +zur Verfügung.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {

    Map<Integer, String> foos = new HashMap<>();
    foos.put(834, "Hans");
    foos.put(269, "Peter");
    foos.put(771, "Lisa");

    for (Entry<Integer, String> entry : foos.entrySet()) {
    System.out.println(entry.getKey());
    System.out.println(entry.getValue());
    }

    for (Integer i : foos.keySet()) {
    System.out.println(i);
    }

    for (String s : foos.values()) {
    System.out.println(s);
    }

    }

    }
    +

    Die Klasse HashMap<K, V> implementiert den Assoziativspeicher in Form einer +Hashtabelle. Für den Einsatz einer Hashtabelle ist es zwingend erforderlich, +dass die Klasse, die den Schlüssel bildet, die Methoden int hashCode() und +boolean equals(object: Object) gemäß den entsprechenden +Dokumentationskommentaren überschrieben hat. Im Gegensatz zu einem Binärbaum +liegen die Paare in einer Hashtabelle unsortiert vor.

    +
    IndexSchlüsselWert
    0Hans2.3
    2Peter1.7
    13Lisa1.8
    14Max4.2
    +

    Die Klasse TreeMap<K, V> implementiert den Assoziativspeicher in Form eines +Binärbaumes. Als Datenstruktur wird dabei ein balancierter Baum verwendet, d.h. +spezielle Einfüge- und Löschoperationen stellen sicher, dass der Baum nicht zu +einer linearen Liste entartet. Da die Paare in einem Binärbaum sortiert +vorliegen, ist es für den Einsatz zwingend erforderlich, dass die Klasse, die +den Schlüssel bildet, die Schnittstelle Comparable<T> implementiert hat. +Alternativ kann dem Konstruktor der Klasse TreeMap<K, V> ein Komparator für +den Schlüssel mitgegeben werden.

    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/maven/index.html b/pr-preview/pr-238/documentation/maven/index.html new file mode 100644 index 0000000000..c2a4cac390 --- /dev/null +++ b/pr-preview/pr-238/documentation/maven/index.html @@ -0,0 +1,53 @@ +Maven | Programmieren mit Java

    Maven

    Apache Maven (kurz Maven) ist ein sogenanntes +Build-Automatisierungstool, welches hauptsächlich für Java-Projekte verwendet +wird. Es hilft Entwicklern, den Build-Prozess eines Programmes zu vereinfachen +und zu standardisieren. Maven verwendet hierzu eine Konfigurationsdatei namens +pom.xml (Project Object Model).

    +

    Merkmale

    +
      +
    • Automatisierung des Build-Prozesses: Maven automatisiert den Build-Prozess +(Kompilieren, Testen, Verpacken und Bereitstellen)
    • +
    • Abhängigkeitsmanagement: Maven verwaltet Projekt-Abhängigkeiten wie externe +Bibliotheken und Frameworks automatisch
    • +
    • Standardisierte Projektstruktur: Maven fördert eine standardisierte +Projektstruktur, die es einfacher macht, Projekte zu verstehen und zu +navigieren
    • +
    • Plugins: Maven unterstützt eine Vielzahl von Plugins, die zusätzliche +Funktionalitäten bieten (z.B. Code-Analyse, Berichterstellung und +Dokumentation)
    • +
    • Lebenszyklus-Management: Maven definiert einen standardisierten Lebenszyklus +für den Build-Prozess
    • +
    +

    Die Konfigurationsdatei pom.xml

    +

    Die Konfigurationsdatei pom.xml umfasst neben allen relevanten +Projekt-Eigenschaften auch sämtliche Abhängigkeiten sowie Plugins, die dadurch +automatisch von Maven verwaltet werden.

    +
    pom.xml
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>edu.jappuccini</groupId>
    <artifactId>demo</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <!-- Eigenschaften -->
    <properties>
    <!-- Java-Version -->
    <maven.compiler.source>21</maven.compiler.source>
    <maven.compiler.target>21</maven.compiler.target>
    <!-- Encoding -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <!-- Build Prozess -->
    <build>
    <!-- Plugins -->
    <plugins>
    <!-- Prettier -->
    <plugin>
    <groupId>com.hubspot.maven.plugins</groupId>
    <artifactId>prettier-maven-plugin</artifactId>
    <version>0.16</version>
    <executions>
    <execution>
    <id>default-compile</id>
    <phase>compile</phase>
    <goals>
    <goal>write</goal>
    </goals>
    </execution>
    </executions>
    </plugin>
    </plugins>
    </build>

    <!-- Abhängigkeiten -->
    <dependencies>
    <!-- JUnit 5 -->
    <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.11.3</version>
    <scope>test</scope>
    </dependency>
    </dependencies>

    </project>
    +

    Lebenszyklus-Phasen

    +

    Maven kennt die drei Lebenszyklen clean zum Löschen aller Artefakte +vergangener Builds, default zum Erstellen des Projekts sowie site zum +Erstellen einer Dokumentationsseite. Jeder Lebenszyklus durchläuft hierbei +verschiedene Phasen. Durch Plugins können diese um zusätzliche +Verarbeitungsschritte erweitert werden. Nachfolgend dargestellt sind die +wesentlichen Phasen des Default Lebenszyklus:

    +
    PhaseBeschreibung
    validatePrüfen, ob die POM sowie die Projektstruktur vollständig, fehlerfrei und gültig sind
    compileKompilieren des Quellcodes
    testAusführen der Komponententests
    packageVerpacken des Projekts in z.B. ein Java Archiv (JAR)
    verifyAusführen von bereitgestellten Integrationstests
    installKopieren des Archivs ins lokale Maven-Repository
    deployKopieren des Archivs in ein remote Maven-Repository
    +

    Hilfreiche Plugins und Bibliotheken

    +

    Prettier ist ein weit verbreiterter +Quellcode-Formatierung, der eine einheitliche Quellcode-Formatierung fördert. +Durch die Einbindung des Goals write in die Lebenszyklus-Phase compile wird +sichergestellt, dass der Quellcode bei jedem Kompiliervorgang automatisch +formattiert wird.

    pom.xml (Auszug)
    ...
    <!-- Prettier -->
    <plugin>
    <groupId>com.hubspot.maven.plugins</groupId>
    <artifactId>prettier-maven-plugin</artifactId>
    <version>0.16</version>
    <executions>
    <execution>
    <id>default-compile</id>
    <phase>compile</phase>
    <goals>
    <goal>write</goal>
    </goals>
    </execution>
    </executions>
    </plugin>
    ...
    +
    Hinweis

    Die angegebenen Versionen sind die jeweils aktuellsten Versionen zum Stand +Dezember 2024.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/object/index.html b/pr-preview/pr-238/documentation/object/index.html new file mode 100644 index 0000000000..d5c053c9f8 --- /dev/null +++ b/pr-preview/pr-238/documentation/object/index.html @@ -0,0 +1,29 @@ +Die Mutter aller Klassen | Programmieren mit Java

    Die Mutter aller Klassen

    Alle Klassen in Java sind letztlich Unterklassen der Klasse Object. Daher wird +diese auch als die Mutter aller Klassen bezeichnet. Die Klasse vererbt ihren +Unterklassen unter anderem die Methoden boolean equals(object: Object), +int hashCode() und String toString(). Diese drei Methoden sollte jede +Unterklasse sinnvoll überschreiben.

    +

    Die Methode boolean equals(object: Object)

    +

    Die Methode boolean equals(object: Object) prüft zwei Objekte auf Gleichheit. +Zwei Objekte gelten dabei in der Regel als gleich, wenn all ihre Attribute +gleich sind.

    +
    Computer.java (Auszug)
    public class Computer {
    ...
    @Override
    public boolean equals(Object object) {
    if (this == object) {
    return true;
    }
    if (object == null) {
    return false;
    }
    if (getClass() != object.getClass()) {
    return false;
    }
    Computer other = (Computer) object;
    return Objects.equals(description, other.description)
    && Objects.equals(cpu, other.cpu) && memoryInGB == other.memoryInGB;
    }
    ...
    }
    +

    Die Methode int hashCode()

    +

    Die Methode int hashCode() liefert den Hashcode des aktuellen Objektes zurück. +Die Methode sollte so überschrieben werden, dass gleiche Objekte den gleichen +Hashwert zurückgeben. Dies ist vor allem beim Arbeiten mit Hash-basierten +Datensammlungen wie z.B. der Klasse HashMap<K, V> notwendig.

    +
    Computer.java (Auszug)
    public class Computer {
    ... @Override
    public int hashCode() {
    return Objects.hash(description, cpu, memoryInGB);
    }
    ...
    }
    +
    Hinweis

    Die statische Methode int hash(values: Object...) der Klasse Objects liefert +eine einfache Möglichkeit zur Implementierung der Methode boolean hashCode().

    +

    Die Methode String toString()

    +

    Die Methode String toString() liefert eine eindeutige Kennung des Objektes in +der Form [Vollständiger Klassenname]@[Adresse des Objektes im Hauptspeicher +in hexadezimaler Notation] zurück. Die Methode sollte so überschrieben werden, +dass alle relevanten Attribute des Objektes als Zeichenkette zurückgegeben +werden. In der Regel geschieht dies in der Form [Klassenname] +[[Attribut]=[Attributswert], ...].

    +
    Computer.java
    public class Computer {
    ...
    @Override
    public String toString(t) {
    return "Computer [description=" + description + ", cpu=" + cpu
    + ", memoryInGB=" + memoryInGB + "]");
    }
    ...
    }
    +
    Hinweis

    Wird den print-Methoden des Ausgabestroms System.out eine Objektreferenz +übergeben, wird implizit die Methode String toString() des jeweiligen Objektes +aufgerufen.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/oo/index.html b/pr-preview/pr-238/documentation/oo/index.html new file mode 100644 index 0000000000..9701b02865 --- /dev/null +++ b/pr-preview/pr-238/documentation/oo/index.html @@ -0,0 +1,28 @@ +Objektorientierte Programmierung | Programmieren mit Java

    Objektorientierte Programmierung

    Die reale Welt besteht aus Objekten mit individuellen Eigenschaften und +individuellem Verhalten. Für ein einfacheres Verständnis werden Objekte +kategorisiert, also zu sinnhaften Einheiten verbunden. In der objektorientierten +Programmierung werden Beobachtungen aus der realen Welt zum Konzept der +Objektorientierung zusammengefasst:

    +
      +
    • Eine Kategorie von ähnlichen Objekten bezeichnet man als Klasse
    • +
    • Konkrete Ausprägungen bzw. Instanzen einer Klasse werden wiederum als +Objekte bezeichnet
    • +
    • Die Eigenschaften von Objekten werden als Attribute das Verhalten als +Methoden bezeichnet
    • +
    +

    Datenkapselung

    +

    Ein wesentlicher Grundsatz der Objektorientierung ist, dass Attribute durch +Methoden gekapselt werden. Datenkapselung bedeutet, dass auf Attribute nicht +direkt zugegriffen werden kann, sondern nur indirekt über Methoden. Typische +Methoden zum Lesen und Schreiben von Attributen sind die sogenannten Getter bzw. +Setter (auch Set- und Get-Methoden bzw. Accessors genannt).

    + +

    Abstraktion

    +

    Abstraktion bedeutet das Zerlegen von komplexen Systeme in kleinere, +überschaubare Einheiten, indem der Fokus auf die wesentlichen Eigenschaften und +das wesentliche Verhalten gesetzt und unwichtige Details ausgeblendet werden. +Dies bringt einige Vorteile wie bessere Wiederverwendbarkeit, bessere +Wartbarkeit sowie bessere Lesbarkeit mit sich. In der Objektorientierten +Programmierung erfolgt die Abstraktion durch den Einsatz von (abstrakten) +Klassen bzw. Schnittstellen (Interfaces).

    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/operators/index.html b/pr-preview/pr-238/documentation/operators/index.html new file mode 100644 index 0000000000..1f11725153 --- /dev/null +++ b/pr-preview/pr-238/documentation/operators/index.html @@ -0,0 +1,16 @@ +Operatoren | Programmieren mit Java

    Operatoren

    Operatoren sind Zeichen, mit denen Daten manipuliert werden können. Mit Hilfe +von Operanden und Operatoren können beliebig komplexe Ausdrücke abgebildet +werden. Operatoren mit einem, zwei oder drei Operanden werden als unäre +Operatoren binäre Operatoren und ternäre Operatoren bezeichnet. Man +unterscheidet zudem zwischen arithmetischen, bitweisen und logischen Operatoren +sowie Vergleichsoperatoren.

    +

    Für die arithmetischen Grundrechenarten stehen verschiedene arithmetische +Operatoren zur Verfügung.
    Ausdruck mit OperatorBedeutung
    x + yAddiere y zu x
    x - ySubtrahiere y von x
    x * yMultipliziere x mit y
    x / yDividiere x durch y
    x % yDivisionsrest von x / y
    x++Inkrementiere x und gib den alten Wert an den Ausdruck zurück
    ++xInkrementiere x und gib den neuen Wert an den Ausdruck zurück
    x--Dekrementiere x und gib den alten Wert an den Ausdruck zurück
    --xDekrementiere x und gib den neuen Wert an den Ausdruck zurück

    +

    Priorität von Operatoren

    +

    Die Verarbeitung von Operatoren erfolgt gemäß ihrer Priorität.

    +
    PrioritätOperator
    1()
    2++, --, Vorzeichenplus, Vorzeichenminus, ~, !, (Datentyp)
    3*, /, %
    4+, -
    5<, <=, >, >=
    6==, !=
    7&
    8^
    9|
    10&&
    11||
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/optionals/index.html b/pr-preview/pr-238/documentation/optionals/index.html new file mode 100644 index 0000000000..f1ce280ccb --- /dev/null +++ b/pr-preview/pr-238/documentation/optionals/index.html @@ -0,0 +1,15 @@ +Optionals | Programmieren mit Java

    Optionals

    Der Umgang mit null-Werten stellt in vielen Programmiersprachen eine große +Herausforderung dar. Zur Vermeidung von Laufzeitfehlern (NullPointerException) +müsste vor jedem Methodenaufruf eigentlich überprüft werden, ob ein gültiger +Wert vorliegt oder nicht.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    String text = foo();
    System.out.println(text.length()); // Laufzeitfehler
    }

    public static String foo() {
    return null;
    }

    }
    +

    Die Klasse Optional ermöglicht in Java eine komfortable Möglichkeit, mit +null-Werten umzugehen. Das eigentliche Objekt wird dabei in einem Objekt der +Klasse Optional verpackt; der Zugriff auf das verpackte Objekt erfolgt über +entsprechende Methoden. Dies stellt sicher, dass sich der Entwickler mit +null-Werten auseinander setzen muss.

    +

    Für den Umgang mit null-Werten stellt die Klasse Optional Methoden wie +T get(), boolean isPresent() und void ifPresent(consumer: Consumer<T>) zur +Verfügung. Zudem existieren Methoden wie void orElse(other: T), mit denen +Standardwerte festgelegt werden können.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    Optional<String> optionalText = foo();
    optionalText.ifPresent(t -> System.out.println(t.length()));
    }

    public static Optional<String> foo() {
    return Optional.ofNullable(null);
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/polymorphy/index.html b/pr-preview/pr-238/documentation/polymorphy/index.html new file mode 100644 index 0000000000..7b986f911c --- /dev/null +++ b/pr-preview/pr-238/documentation/polymorphy/index.html @@ -0,0 +1,23 @@ +(Dynamische) Polymorphie | Programmieren mit Java

    (Dynamische) Polymorphie

    Unter (dynamischer) Polymorphie (griechisch für Vielgestaltigkeit) versteht man, +dass eine Referenzvariable zur Laufzeit durch Typumwandlung Referenzen auf +Objekte unterschiedlicher Klassen besitzen kann und dass dadurch +unterschiedliche Methodenimplementierungen aufgerufen werden können. Man spricht +in diesem Zusammenhang auch vom statischen Datentyp einer Referenzvariablen +(der zur Designzeit festgelegt wird) und vom dynamischen Datentyp einer +Referenzvariablen (der zur Laufzeit zugewiesen wird). Der statische Typ legt +fest, welche Methoden aufgerufen werden können, der dynamische, welche +Methodenimplementierung aufgerufen wird. Die Typumwandlung von der abgeleiteten +Unterklasse zur Oberklasse bezeichnet man als Upcast, die Rückumwandlung als +Downcast.

    +
    Computer.java (Auszug)
    public class Computer {
    ...
    public ArrayList<String> getSpecification() {
    ArrayList<String> specification = new ArrayList<>();
    specification.add("description: " + description);
    specification.add("cpu: " + cpu);
    specification.add("memoryInGB: " + memoryInGB);
    return specification;
    }
    ...
    }
    +
    Hinweis

    Im Gegensatz zum Upcast muss bei einem Downcast der Typ explizit angegeben +werden. Der Downcast einer nicht zuweisungskompatiblen Referenz führt zu einer +ClassCastException.

    +

    Der instanceof-Operator

    +

    Mit dem Operator instanceof kann zur Laufzeit geprüft werden, ob eine +Objektreferenz zuweisungskompatibel zu einer Klasse ist. Eine Objektreferenz ist +dann zuweisungskompatibel zu einer Klasse, wenn die Klasse des referenzierten +Objektes in einer Vererbungsbeziehung zur Klasse steht. Seit Java 16 ermöglicht +der Mustervergleich bei instanceof das Vermeiden notwendiger Typumwandlungen +und sorgt gleichzeitig für eine sicherere Programmierung.

    +
    MainClass.java (Auszug)
    public class MainClass {

    public static void main(String[] args) {
    ...
    for(Computer c : computers) {
    /* bis Java 16 */
    if (c instanceof Notebook) {
    Notebook myNotebook = (Notebook) c; // Downcast
    System.out.println(myNotebook.getScreenSizeInInches());
    }
    /* seit Java 16 */
    if (c instanceof Notebook myNotebook) { // Downcast
    System.out.println(myNotebook.getScreenSizeInInches());
    }
    }
    ...
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/pseudo-random-numbers/index.html b/pr-preview/pr-238/documentation/pseudo-random-numbers/index.html new file mode 100644 index 0000000000..5acadf3876 --- /dev/null +++ b/pr-preview/pr-238/documentation/pseudo-random-numbers/index.html @@ -0,0 +1,4 @@ +Pseudozufallszahlen | Programmieren mit Java

    Pseudozufallszahlen

    Die Klasse Random ermöglicht das Erzeugen von Pseudozufallszahlen. +Pseudozufallszahlen sind scheinbar zufällige Zahlen, die aber auf Grund einer +Formel berechnet werden.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    Random random = new Random();
    int randomNumber;

    for (int i = 0; i < 100; i++) {
    randomNumber = random.nextInt(100) + 1;
    System.out.println(randomNumber);
    }
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/records/index.html b/pr-preview/pr-238/documentation/records/index.html new file mode 100644 index 0000000000..dcc689ab65 --- /dev/null +++ b/pr-preview/pr-238/documentation/records/index.html @@ -0,0 +1,14 @@ +Datenklassen (Records) | Programmieren mit Java

    Datenklassen (Records)

    Datenklassen sind Klassen die lediglich der Kapselung unveränderlicher Daten +dienen. Daher bestehen Datenklassen häufig aus Boilerplate-Code. Unter +Boilerplate-Code versteht man Anweisungblöcke, die an verschiedenen Stellen mehr +oder weniger identisch verwendet werden.

    +
    Student.java
    public final class Student {

    public final int id;
    public final String name;

    public Student(int id, String name) {
    this.id = id;
    this.name = name;
    }

    public int id() {
    return id;
    }

    public String name() {
    return name;
    }

    @Override
    public final int hashCode() {
    return Objects.hash(id, name);
    }

    @Override
    public final boolean equals(Object obj) {
    if (this == obj) {
    return true;
    }
    if (obj == null) {
    return false;
    }
    if (getClass() != obj.getClass()) {
    return false;
    }
    Student other = (Student) obj;
    return id == other.id && Objects.equals(name, other.name);
    }

    @Override
    public final String toString() {
    return "Student [id=" + id + ", name=" + name + "]";
    }

    }
    +

    Seit Java 16 bieten Records die Möglichkeiten, Datenklassen einfach umzusetzen. +Records sind spezielle Klassen, die anhand der festgelegten Parameter +entsprechende Konstruktoren, Getter sowie Implementierungen für die Methoden +boolean equals(object: Object), int hashCode() und String toString() +erzeugen. Das Schlüsselwort für Records lautet record.

    +
    Student.java
    public record Student(int id, String name) {
    }
    +
    Hinweis

    Da Records von der Klasse Record abgeleitet sind, können sie nicht von einer +weiteren Klasse abgeleitet werden. Allerdings können Records, wie andere Klassen +auch, beliebig viele Schnittstellen implementieren.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/references-and-objects/index.html b/pr-preview/pr-238/documentation/references-and-objects/index.html new file mode 100644 index 0000000000..f10a56f7f3 --- /dev/null +++ b/pr-preview/pr-238/documentation/references-and-objects/index.html @@ -0,0 +1,25 @@ +Referenzen und Objekte | Programmieren mit Java

    Referenzen und Objekte

    Technisch gesehen handelt es sich bei einer Klasse um einen komplexen Datentyp. +Analog zu den primitiven Datentypen können auch für Klassen Variablen – +sogenannte Referenzvariablen – definiert werden.

    +

    Im Gegensatz zu "normalen" Variablen werden bei Referenzvariablen nicht die +eigentlichen Werte in den Variablen gespeichert, sondern die Speicheradressen +der erzeugten Objekte. Die Selbstreferenz this verweist innerhalb einer Klasse +auf das eigene Objekt.

    + +
    Hinweis

    Der Standarwert von Referenzvariablen ist null (auch Nullreferenz genannt).

    +

    Erzeugen von Objekten

    +

    Beim Erzeugen eines Objekts mit Hilfe des Operators new wird der bei der +Deklaration reservierte Speicherplatz durch das Objekt belegt.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    CPU myCpu = new CPU(3.5, 8);
    Computer myComputer = new Computer("Mein Office PC");
    }

    }
    +
    Hinweis

    Nach dem new-Operator muss immer ein +Konstruktor der Klasse stehen.

    +

    Zugriff auf Attribute und Aufruf von Methoden

    +

    Erlauben die Zugriffsrechte den Zugriff auf ein Attribut bzw. den Aufruf einer +Methode, kann über die deklarierte Referenzvariable und einem nachgestellten +Punkt auf das Attribut zugegriffen bzw. die Methode aufgerufen werden. Der +Zugriff auf statische Attribute bzw. der Aufruf statischer Methoden erfolgt über +den Klassennamen sowie einem nachgestellten Punkt.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    CPU myCpu = new CPU(3.5, 8);
    Computer myComputer = new Computer("Mein Office PC");
    myComputer.setCpu(myCpu);
    myComputer.setMemoryInGB(32);
    System.out.println(Computer.getNumberOfComputers());
    }

    }
    +
    Hinweis

    Beim Aufruf einer Methode müssen alle Parameter in der richtigen Reihenfolge +versorgt werden. Parameter, die diesem Prinzip folgen, bezeichnet man als +Positionsparameter

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/slf4j/index.html b/pr-preview/pr-238/documentation/slf4j/index.html new file mode 100644 index 0000000000..1d9310e9d3 --- /dev/null +++ b/pr-preview/pr-238/documentation/slf4j/index.html @@ -0,0 +1,24 @@ +Simple Logging Facade for Java (SLF4J) | Programmieren mit Java

    Simple Logging Facade for Java (SLF4J)

    Simple Logging Facade for Java (SLF4J) stellt eine +externe Java-Bibliothek dar, die das Protokollieren in Java-Anwendungen +ermöglicht. Protokollierung (Logging) ist ein wesentlicher Bestandteil der +Softwareentwicklung und -wartung und bietet zahlreiche Vorteile wie +Fehlerbehebung, Überwachung, Audit, Compliance, Debugging, Leistungsanalyse +sowie Benutzerunterstützung. Durch die effektive Nutzung von Protokollierung +kann die Zuverlässigkeit, Sicherheit und Leistung einer Anwendung erheblich +verbessert werden.

    +

    Protokollierungs-Level

    +

    SLF4J definiert verschiedene Protokollierungs-Level, die die Schwere oder +Wichtigkeit der zu protokollierenden Nachrichten angeben.

    +
    LevelBeschreibung
    TRACESehr detaillierte Informationen für die Fehlersuche (z.B. Methodenname)
    DEBUGDetaillierte Informationen für den Entwickler (z.B. Variablenwert)
    INFOAllgemeine Informationsmeldungen, die den normalen Betrieb der Anwendung beschreiben
    WARNWarnungen, die auf potenzielle Probleme hinweisen, die jedoch nicht sofort behoben werden müssen
    ERRORFehler, die den normalen Betrieb der Anwendung beeinträchtigen und ggbfs. den sofortigen Abbruch der Anwendung erfordern
    +

    Protokollierungs-Implementierungen

    +

    Die Art der Speicherung von Protokollen in einer Anwendung, die SLF4J verwendet, +hängt von der konkreten Implementierung ab. SLF4J selbst ist dabei nur eine +Fassade und benötigt eine konkrete Implementierung, um die tatsächliche +Protokollierung durchzuführen. Eine der am weitesten verbreiteten +Protokollierungs-Bibliotheken für Java ist +Log4J, welches die Ausgabe +von Protokollen auf der Konsole sowie in Protokoll-Dateien ermöglicht.

    +

    Beispiel

    +

    Für die Klasse MainClass wird ein Logger initialisiert, mit dessen Hilfe +verschiedene Nachrichten in der Datei logs/app.log protokolliert werden.

    +
    Names.java
    public class Names {

    private final static Logger LOGGER = LoggerFactory.getLogger(Names.class);

    public static List<String> getNames(File file) throws IOException {
    List<String> names = new ArrayList<>();
    LOGGER.info("Name list has been initialized successfully");

    if (!file.exists()) {
    LOGGER.error("File {} does not exist", file);
    throw new IOException();
    }

    Scanner scanner = new Scanner(file);
    LOGGER.info("File Scanner has been initialized successfully");

    while(scanner.hasNextLine()) {
    String name = scanner.nextLine();
    LOGGER.debug(name);
    names.add(name);
    }
    LOGGER.info("{} names have been read", names.size());

    scanner.close();
    LOGGER.info("File {} has been closed successfully", file);

    return names;
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/strings/index.html b/pr-preview/pr-238/documentation/strings/index.html new file mode 100644 index 0000000000..2fcf6fe097 --- /dev/null +++ b/pr-preview/pr-238/documentation/strings/index.html @@ -0,0 +1,13 @@ +Zeichenketten (Strings) | Programmieren mit Java

    Zeichenketten (Strings)

    Ketten von beliebigen Zeichen werden durch die Klasse String realisiert. Diese +stellt einige hilfreiche Methoden zur Verfügung, die bei der Analyse und der +Verarbeitung von Zeichenketten Verwendung finden. Die Angabe einer Zeichenkette +erfolgt über die Anführungszeichen.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    String text = "Winter";
    String text2 = "Coming";

    String text3 = text + " is " + text2;

    int length = text3.length();
    char charAt1 = text3.charAt(0);
    String upperCase = text3.toUpperCase();
    }

    }
    +

    Escape-Sequenzen

    +

    Steuer- und Sonderzeichen in Zeichenketten können mit Hilfe einer Escape-Sequenz +realisiert werden.

    +
    Escape-SquenzBeschreibung
    \nZeilensprung
    \tTabulatorsprung
    \\Schräger rechts
    \"Anführungszeichen
    \'Hochkomma
    \u0000 bis \uFFFFUnicode-Zeichen
    +

    Textblöcke

    +

    Seit Java 15 ermöglichen Textblöcke mehrzeilige Zeichenketten ohne umständliche +Umwege.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    String text = """
    <html>
    <body>
    <p>Winter is Coming</p>
    </body>
    </html>""";
    System.out.println(text);
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/tests/index.html b/pr-preview/pr-238/documentation/tests/index.html new file mode 100644 index 0000000000..4e39035d21 --- /dev/null +++ b/pr-preview/pr-238/documentation/tests/index.html @@ -0,0 +1,25 @@ +Softwaretests | Programmieren mit Java

    Softwaretests

    Softwaretests sollen sicherstellen, dass bei der Entwicklung oder Änderung einer +Software der Quellcode in allen festgelegten Anwendungsfällen korrekt +funktioniert. Mit Hilfe von Softwaretests können Softwareentwickler im Idealfall +schon während des Entwicklungsprozesses mögliche Fehler identifizieren und +beheben. Man unterscheidet dabei zwischen verschiedenen Testarten:

    +
      +
    • Akzeptanztests: Testen des gesamten Systems unter realitätsgetreuen +Bedingungen
    • +
    • Systemtests: Testen des gesamten Systems
    • +
    • Integrationstests: Testen mehrerer, voneinander abhängiger Komponenten
    • +
    • Komponententests: Testen einzelner, abgeschlossener Softwarebausteine
    • +
    +

    Komponententests (Unit Tests) sowie Integrationstests spielen vor allem bei +agilen Vorgehensweisen wie z.B. der testgetriebenen Entwicklung (Test Driven +Development) eine große Rolle. Hierbei werden Anwendungen Schritt für Schritt +(also inkrementell) um neue Funktionen erweitert (z.B. nach der +Red-Green-Refactor-Methode): Zuerst wird ein Test geschrieben, der zunächst +fehlschlägt (Red), anschließend wird genau soviel Produktivcode geschrieben, +damit der Test erfolgreich durchläuft (Green). Schließlich werden beim +Refactoring Testcode und Produktivcode aufgeräumt (also vereinfacht und +verbessert).

    + +
    Hinweis

    Da durch die vorangestellten Tests eine kontinuierliche Designverbesserung +stattfindet, wird die testgetriebene Entwicklung zu den Designstrategien +gezählt.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/trees/index.html b/pr-preview/pr-238/documentation/trees/index.html new file mode 100644 index 0000000000..4c656d8a78 --- /dev/null +++ b/pr-preview/pr-238/documentation/trees/index.html @@ -0,0 +1,30 @@ +Bäume | Programmieren mit Java

    Bäume

    Bäume sind abstrakte Datenstrukturen zum Darstellen von hierarchischen +Strukturen. Sie bestehen i.d.R. aus beliebig vielen Elementen (Knoten), sowie +Verbindungen zwischen den Elementen (Kanten). Den Ursprungsknoten bezeichnet man +als Wurzelknoten, untergeordnete Knoten als Kindknoten, übergeordnete Knoten +als Elternknoten und Kinder ohne weitere untergeordnete Knoten als +Blattknoten. Bäume sind im Prinzip Erweiterungen von Listen: in einer Liste +hat ein Knoten maximal einen Nachfolger, in einem Baum kann ein Knoten mehrere +Nachfolger besitzen.

    + +
    Hinweis

    Unter der Tiefe eines Knotens versteht man die Länge des Pfades vom Knoten bis +zum Wurzelknoten, unter der Höhe eines Baumes die maximale Tiefe eines seiner +Knoten und unter dem Grad eines Knotens die Anzahl seiner Kindknoten.

    +

    Binärbäume

    +

    Bei Binärbäumen darf jeder Knoten maximal zwei Nachfolger besitzen. Besitzen +alle inneren Knoten eines Binärbaumes den Grad 2, spricht man von einem vollen +Binärbaum, besitzen alle Blätter eines vollen Binärbaum die gleiche Tiefe, +spricht man von einem vollständigen Binärbaum.

    + +

    Traversierung von Bäumen

    +

    Unter der Traversierung eines Baumes versteht man das Durchlaufen aller Elemente +eines Baumes. Im Gegensatz zu Listen, wo es genau eine natürliche Ordnung für +den Durchlauf der Elemente gibt (von vorne nach hinten), existieren bei Bäumen +mehrere sinnvolle Reihenfolgen:

    +
      +
    • Beim Tiefendurchlauf wird ausgehend vom Wurzelknoten zunächst der linke +Teilbaum mit Tiefendurchlauf besucht, anschließend der rechte Teilbaum
    • +
    • Beim Breitendurchlauf werden die Knoten nach der Breite des Baumes geordnet +besucht
    • +
    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/unit-tests/index.html b/pr-preview/pr-238/documentation/unit-tests/index.html new file mode 100644 index 0000000000..b8e25b0bad --- /dev/null +++ b/pr-preview/pr-238/documentation/unit-tests/index.html @@ -0,0 +1,67 @@ +Komponententests (Unit Tests) | Programmieren mit Java

    Komponententests (Unit Tests)

    Komponententests (Unit Tests) werden zum Testen einzelner, abgeschlossener +Softwarebausteine verwendet. JUnit ist ein weit verbreitetes Framework zur +Erstellung dieser Komponententests bzw. zum automatisierten Testen von Klassen +und Methoden in Java. Die aktuelle Version JUnit 5 stellt eine Kombination +verschiedener Module der Projekte JUnit Platform, JUnit Jupiter sowie JUnit +Vintage dar.

    +
    Hinweis

    Unter einem Framework versteht man ein Programmiergerüst, welches die +Architektur für die Anwendung vorgibt und den Kontrollfluss der Anwendung +steuert. Die Arbeitsweise von Frameworks wird als Inversion of Control +bezeichnet: Die Funktionen einer Anwendung werden beim Framework registriert, +welches die Funktionen zu einem späteren Zeitpunkt aufruft, d.h. die Steuerung +des Kontrollfluss obliegt nicht der Anwendung, sondern dem Framework. Die Umkehr +der Steuerung kann auch als Anwendung des Hollywood-Prinzips (Don´t call us, +we´ll call you) verstanden werden.

    +

    Implementieren einer Testklasse

    +

    JUnit-Testklassen werden mit Hilfe entsprechender Annotationen implementiert:

    +
      +
    • Die Annotationen @Test und @ParameterizedTest definieren einfache bzw. +parametrisierte Testmethoden
    • +
    • Die Annotationen @BeforeAll und @AfterAll definieren statische Methoden, +die aufgerufen werden, wenn die Klasse für den Test initialisiert wird bzw. +wenn alle Tests abgeschlossen sind
    • +
    • Die Annotationen @BeforeEach und @AfterEach definieren Methoden, die vor +bzw. nach jeder Testmethode aufgerufen werden
    • +
    • Die Annotation @Disabled bewirkt, dass eine Testmethode beim Testen nicht +ausgeführt wird
    • +
    • Mit Hilfe der Annotation @DisplayName kann einer Testklasse bzw. einer +Testmethode ein Anzeigename zugewiesen werden
    • +
    +

    Zusicherungen (Assertions)

    +

    Die Klasse Assertions stellt verschiedene Methoden bereit, die immer dann eine +Ausnahme vom Typ AssertionError auslösen, wenn das Ergebnis eines +Methodenaufrufs nicht wie erwartet ausgefallen ist. Eine Ausnahme vom Typ +AssertionError führt dazu, dass der Test als nicht erfolgreich gewertet wird.

    +
    Assert-MethodeBedeutung
    void assertTrue(condition: boolean)Prüft, ob eine Bedingung erfüllt ist
    void assertFalse(condition: boolean)Prüft, ob eine Bedingung nicht erfüllt ist
    void assertNull(actual: Object)Prüft, ob etwas null ist
    void assertNotNull(actual: Object)Prüft, ob etwas nicht null ist
    void assertSame(expected: Object, actual: Object)Prüft, ob zwei Objekte identisch sind
    void assertNotSame(expected: Object, actual: Object)Prüft, ob zwei Objekte nicht identisch sind
    void assertEquals(expected: Object, actual: Object)Prüft, ob zwei Objekte gleich sind
    void assertNotEquals(expected: Object, actual: Object)Prüft, ob zwei Objekte nicht gleich sind
    T assertThrows(expectedType: Class<T>, executable: Executable)Prüft, ob eine Ausnahme ausgelöst wird
    +

    Beispiel

    +

    Die Klasse Calculator stellt mehrere Methoden bereit, die getestet werden +sollen.

    +
    Calculator.java
    public class Calculator {

    public Calculator() {}

    public int abs(int a) {
    return a >= 0 ? a : a * -1;
    }

    public int divide(int a, int b) {
    return a / b;
    }

    public int multiply(int a, int b) {
    return a * b;
    }

    }
    +

    Die statische Methode setUp() der Testklasse CalculatorTest stellt sicher, +dass vor der Ausführung der Testmethoden ein Taschenrechner-Objekt erzeugt wird. +In den Testmethoden werden verschiedene Testfälle wie z.B. die Division durch +Null getestet.

    +
    MainClass.java
    public class CalculatorTest {

    private static Calculator calculator;

    @BeforeAll
    static void setUp() {
    calculator = new Calculator();
    }

    @Test
    @DisplayName("Multiplication with Zero")
    void multiply_withZero_Zero() {
    assertEquals(0, calculator.multiply(0, 5));
    assertEquals(0, calculator.multiply(5, 0));
    }

    @ParameterizedTest
    @DisplayName("Absolute Values of positive and negative Values")
    @ValueSource(ints = {-1, 0, 1})
    void abs_positiveAndNegativeValues_AbsoluteValues(int a) {
    assertTrue(calculator.abs(a) >= 0);
    }

    @Test
    @DisplayName("Division by Zero")
    void divide_byZero_ArithmeticException() {
    assertThrows(ArithmeticException.class, () -> calculator.divide(5, 0));
    }

    }
    +
    Hinweis

    Für die Benennungen von Testmethoden wird in der Regel versucht, die +wesentlichen Informationen eines Tests (Name der zu testenden Methode, +vorgegebener Zustand, zu erwartendes Verhalten) in den Methodennamen zu +integrieren. Zusätzlich können Schlüsselwörter wie Should, When, oder Then +verwendet werden.

    +

    Test Doubles

    +

    Oftmals werden zum Testen einer Methode andere Objekte bzw. Komponenten +benötigt, die vom Test bereitgestellt werden müssen. Um Abhängigkeiten des SUT +(System under Test) zu minimieren, kommen beim Testen selten die realen +Komponenten, sondern sogenannte Test Doubles zum Einsatz:

    +
      +
    • Eine Fälschung (Fake) imitiert eine reale Komponente
    • +
    • Eine Attrappe (Dummy) ist ein Platzhalter für ein Objekt, welches im Test +nicht benötigt wird
    • +
    • Ein Stummel (Stub) gibt bei Aufruf einen festen Wert zurück; wird also für +eingehende Aufrufe verwendet
    • +
    • Eine Nachahmung (Mock) zeichnet die Methodenaufrufe an ihr auf und kann +zurückgeben, welche Methode wie oft mit welchen Parametern aufgerufen wurde; +wird also für ausgehende Aufrufe verwendet
    • +
    • Ein Spion (Spy) kann ähnlich wie eine Nachahmung Methodenaufrufe +aufzeichnen, kann diese aber auch die reale Komponente weiterleiten
    • +
    +
    Hinweis

    Man spricht in diesem Zusammenhang auch von Test-Isolierung.

    \ No newline at end of file diff --git a/pr-preview/pr-238/documentation/wrappers/index.html b/pr-preview/pr-238/documentation/wrappers/index.html new file mode 100644 index 0000000000..7acea3a18a --- /dev/null +++ b/pr-preview/pr-238/documentation/wrappers/index.html @@ -0,0 +1,8 @@ +Wrapper-Klassen | Programmieren mit Java

    Wrapper-Klassen

    Wrapper-Klassen (auch Hüllenklassen genannt) verpacken primitive Datentypen in +vollwertigen Klassen und erweitern so die primitiven Datentypen um hilfreiche +Methoden. Das Verpacken eines primitiven Datentyps bezeichnet man als Boxing, +das Entpacken als Unboxing.

    +
    MainClass.java
    public class MainClass {

    public static void main(String[] args) {
    Integer i = Integer.valueOf("631");
    System.out.println(i);
    Boolean b = Boolean.logicalXor(true, false);
    System.out.println(b);
    Character c = Character.toUpperCase('a');
    System.out.println(c);
    }

    }
    +
    Hinweis

    Wrapper-Klassen basieren auf dem Entwurfsmuster Adapter, welches die +Kommunikation zwischen Klassen mit zueinander inkompatiblen Schnittstellen +ermöglicht.

    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/cash-machine/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/cash-machine/index.html new file mode 100644 index 0000000000..87952f7c74 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/cash-machine/index.html @@ -0,0 +1,5 @@ +Geldautomat | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/discount-calculator/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/discount-calculator/index.html new file mode 100644 index 0000000000..f92d5476d5 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/discount-calculator/index.html @@ -0,0 +1,4 @@ +Rabattrechner | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/index.html new file mode 100644 index 0000000000..895423334c --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/index.html @@ -0,0 +1 @@ +Aktivitätsdiagramme | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/insertion-sort/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/insertion-sort/index.html new file mode 100644 index 0000000000..09372fc8df --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/insertion-sort/index.html @@ -0,0 +1,10 @@ +Insertionsort | Programmieren mit Java

    Insertionsort

    Erstelle die ausführbare Klasse InsertionSort anhand des abgebildeten +Klassendiagramms sowie anhand der abgebildeten Aktivitätsdiagramme.

    +

    Klassendiagramm

    + +

    Aktivitätsdiagramm zur Methode void main(args: String[])

    + +

    Aktivitätsdiagramm zur Methode void sort()

    + +

    Aktivitätsdiagramm zur Methode void print()

    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/selection-sort/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/selection-sort/index.html new file mode 100644 index 0000000000..319de74758 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/selection-sort/index.html @@ -0,0 +1,8 @@ +Selectionsort | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer/index.html new file mode 100644 index 0000000000..2d8fd6edc1 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cards-dealer/index.html @@ -0,0 +1,28 @@ +Kartenausteiler | Programmieren mit Java

    Kartenausteiler

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweise zur Klasse Player

    +
      +
    • Die Methode void addCard(card: Card) soll dem Spieler die eingehende Karte +hinzufügen
    • +
    • Die Methode List<Card> getCardsByColour(colour: String) soll alle Karten des +Spielers zur eingehenden Farbe zurückgeben
    • +
    • Die Methode Card getCardWithHighestValue() soll die Karte des Spielers mit +dem höchsten Wert zurückgeben
    • +
    +

    Hinweis zur Klasse CardsDealer

    +

    Die Methode void dealCards(amount: int) soll den beiden Spielern die +eingehende Anzahl an zufälligen Karten des Decks austeilen

    +

    Hinweis zur Klasse CardsReader

    +

    Die Methode List<Card> getCards(file: File) soll alle Karten der eingehenden +Datei zurückgeben.

    +

    Beispielhafter Aufbau der Kartendatei

    +
    Karo;1
    Karo;2
    Karo;3
    Karo;4
    Karo;5
    Herz;1
    Herz;2
    Herz;3
    Herz;4
    Herz;5
    Pik;1
    Pik;2
    Pik;3
    Pik;4
    Pik;5
    Kreuz;1
    Kreuz;2
    Kreuz;3
    Kreuz;4
    Kreuz;5
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cashier-system/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cashier-system/index.html new file mode 100644 index 0000000000..c748ee6c91 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cashier-system/index.html @@ -0,0 +1,37 @@ +Kassensystem | Programmieren mit Java

    Kassensystem

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweis zur Klasse Item

    +

    Die Methode double getSubTotalInEuro() soll die Zwischensumme als Produkt aus +der Anzahl und dem Preis zurückgeben.

    +

    Hinweise zur Klasse ShoppingCart

    +
      +
    • Die Methode void createItem(goods: Goods, amount: int) soll den Einträgen +des Warenkorbs (items) die eingehende Ware und die eingehende Anzahl als +Eintrag hinzufügen
    • +
    • Die Methode double getTotalInEuro() soll die Gesamtsumme zurückgeben
    • +
    +

    Hinweise zur Klasse CashierSystem

    +
      +
    • Die Methode void addGoods(goods: Goods) soll der Warenliste (goods) die +eingehende Ware hinzufügen
    • +
    • Die Methode void addCashier(cashier: Cashier) soll der Kassiererliste +(cashiers) den eingehenden Kassierer hinzufügen
    • +
    • Die Methode void login(id: int) soll den Kassierer zur eingehenden +Kassierernummer an der Kasse "registrieren"
    • +
    • Die Methode void createShoppingCart() soll an der Kasse einen neuen +Warenkorb erstellen
    • +
    • Die Methode void addItem(id: int, amount: int) soll dem Warenkorb +(shoppingCart) anhand der eingehenden Produktnummer und anhand der +eingehenden Anzahl einen neuen Warenkorbeintrag hinzufügen
    • +
    • Die Methode void printBon() soll alle relevanten Informationen zum Warenkorb +auf der Konsole ausgeben
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/christmas-tree/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/christmas-tree/index.html new file mode 100644 index 0000000000..d00729585a --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/christmas-tree/index.html @@ -0,0 +1,32 @@ +Weihnachtsbaum | Programmieren mit Java

    Weihnachtsbaum

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweise zur Klasse ChristmasTree

    +
      +
    • Die Methode void addCandle(candle: Candle) soll der Kerzenliste (candles) +die eingehende Kerze hinzufügen
    • +
    • Die Methode void lightChristmasTree() soll alle Kerzen "entzünden"
    • +
    • Die Methode int getNumberOfElectricCandles() soll die Anzahl elektrischer +Kerzen zurückgeben
    • +
    +

    Hinweise zur Klasse Candle

    +
      +
    • Die Methode void lightACandle() soll die Kerze "entzünden"
    • +
    • Die Methode void turnOffACandle() soll die Kerze "ausmachen"
    • +
    +

    Hinweise zur Klasse ElectricCandle

    +
      +
    • Der Konstruktor soll die Energie (powerInPercent) auf den Wert 100 setzen
    • +
    • Die Methode void lightACandle() soll die elektrische Kerze "entzünden", wenn +diese noch über Energie verfügt und die Energie um den Wert 10 reduzieren
    • +
    • Die Methode void recharge() soll die Energie der elektrische Kerze wieder +auf den Wert 100 setzen
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar/index.html new file mode 100644 index 0000000000..46cbaf72e9 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cookie-jar/index.html @@ -0,0 +1,35 @@ +Plätzchendose | Programmieren mit Java

    Plätzchendose

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    • +
    + +

    Die Methode List<Ingredient> getIngredients() soll alle Zutaten des Teigs +zurückgeben.

    +

    Hinweis zur Klasse StuffedCookie

    +

    Die Methode List<Ingredient> getIngredients() soll alle Zutaten des Teigs +sowie der Füllung zurückgeben.

    +

    Hinweis zur Klasse Recipe

    +

    Die Methode void addIngredient(ingredient: Ingredient) soll dem Rezept die +eingehende Zutat hinzufügen.

    +

    Hinweise zur Klasse CookieJar

    +
      +
    • Die Methode void addCookie(cookie: Cookie) soll der Plätzchendose das +eingehende Plätzchen hinzufügen
    • +
    • Die Methode StuffedCookie getStuffedCookie() soll ein beliebiges gefülltes +Plätzchen der Plätzchendose zurückgeben
    • +
    • Die Methode Cookie getCookieByName(name: String) soll ein Plätzchen der +Plätzchendose zum eingehenden Namen zurückgeben
    • +
    +

    Hinweis zur Klasse IngredientsReader

    +

    Die Methode List<Ingredient> readIngredients() soll alle Zutaten der +eingehenden Datei auslesen und zurückgeben.

    +

    Beispielhafter Aufbau der Zutatendatei

    +
    200g Butter
    300g Mehl
    1 Prise Salz
    100g gemahlene Mandeln
    150g Zucker
    1 Pck. Vanillezucker
    2 Eier
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/creature/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/creature/index.html new file mode 100644 index 0000000000..436768046f --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/creature/index.html @@ -0,0 +1,24 @@ +Kreatur | Programmieren mit Java

    Kreatur

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweise zur Klasse Creature

    +
      +
    • Die Methode void moveUp() soll den Y-Wert der Position inkrementieren
    • +
    • Die Methode void moveDown() soll den Y-Wert der Position dekrementieren
    • +
    • Die Methode void moveLeft() soll den X-Wert der Position dekrementieren
    • +
    • Die Methode void moveRigth() soll den X-Wert der Position inkrementieren
    • +
    +

    Hinweis zur Klasse CreaturesReader

    +

    Die Methode List<Creature> getCreatures(file: File) soll alle Kreaturen der +eingehenden Datei zurückgeben und die Kreaturen die Bewegungen der eingehenden +Datei ausführen lassen.

    +

    Beispielhafter Aufbau der Kreaturendatei

    +
    Frankensteins Monster;MONSTER;0;5
    DOWN;DOWN;LEFT;LEFT
    Dracula;VAMPIRE;3;3
    UP;RIGHT;UP
    Kurt;ZOMBIE;-2;-2
    DOWN
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/fast-food/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/fast-food/index.html new file mode 100644 index 0000000000..9cd017b0fc --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/fast-food/index.html @@ -0,0 +1,27 @@ +Fast Food | Programmieren mit Java

    Fast Food

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweise zur Klasse FastFood

    +
      +
    • Die Methode void addRating(rating: int) soll den Bewertungen (ratings) die +eingehende Bewertung hinzufügen
    • +
    • Die Methode double getAverageRating() soll die durchschnittliche Bewertung +zurückgeben
    • +
    +

    Hinweise zur Klasse FastFoodShop

    +
      +
    • Die Methode void addFastFood(fastFood: FastFood) soll das eingehende Fast +Food zum Sortiment hinzufügen
    • +
    • Die Methode void rateFastFood(fastFood: FastFood, rating: int) soll dem +eingehenden Fast Food die eingehende Bewertung hinzufügen
    • +
    • Die Methode Burger getBestRatedBurger() soll den Burger mit der höchsten +Bewertung zurückgeben
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/gift-bag/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/gift-bag/index.html new file mode 100644 index 0000000000..76d2087626 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/gift-bag/index.html @@ -0,0 +1,18 @@ +Geschenkesack | Programmieren mit Java

    Geschenkesack

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweise zur Klasse GiftBag

    +
      +
    • Die Methode void addPresent(present: present) soll der Geschenkeliste +(presents) das eingehende Geschenk hinzufügen
    • +
    • Die Methode Present getMostExpensivePresent() soll das teuerste Geschenk +zurückgeben
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/index.html new file mode 100644 index 0000000000..b560b22204 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/index.html @@ -0,0 +1 @@ +Klassendiagramme | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/parking-garage/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/parking-garage/index.html new file mode 100644 index 0000000000..b0beb37a83 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/parking-garage/index.html @@ -0,0 +1,27 @@ +Tiefgarage | Programmieren mit Java

    Tiefgarage

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweise zur Klasse ParkingGarage

    +
      +
    • Die Methode String parkIn(car: Car, parkingSpotNumber: int) soll das +eingehende Fahrzeug dem Parkplatz mit der eingehenden Parkplatznummer zuweisen +und eine enstprechende Erfolgsmeldung zurückgegeben. Für den Fall, dass der +Parkplatz bereits besetzt ist, oder dass es sich bei dem eingehenden Fahrzeug +um ein Auto handelt, der Parkplatz aber nur für Busse ist, oder dass der +Parkplatz zu klein ist, soll eine entsprechende Fehlermeldung zurückgegeben +werden
    • +
    • Die Methode String parkOut(car: Car) soll das eingehende Fahrzeug +"ausparken" und eine enstsprechende Erfolgsmeldung zurückgeben. Für den Fall, +dass das Fahrzeug in der Tiefgarage nicht vorhanden ist, soll eine +entsprechende Fehlermeldung zurückgegeben werden
    • +
    • Die Methode int getNextFreeParkingSpotNumber() soll die Nummer des nächsten +freien Parkplatzes zurückgeben
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/shape/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/shape/index.html new file mode 100644 index 0000000000..9f65e5b0ff --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/shape/index.html @@ -0,0 +1,43 @@ +Geometrische Form | Programmieren mit Java

    Geometrische Form

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    • Die statische Konstante PI der Klasse Math stellt die Kreiszahl Pi dar
    • +
    +

    Hinweise zur Klasse Shape

    +
      +
    • Die Methode double getAreaInCm2() soll den Wert 0 zurückgeben
    • +
    • Die Methode double getCircumferenceInCm() soll den Wert 0 zurückgeben
    • +
    +

    Hinweise zur Klasse Circle

    +
      +
    • Die Methode double getAreaInCm2() soll den Flächeninhalt gemäß der Formel +𝐴 = 𝜋 ∗ 𝑟 ∗ 𝑟 berechnen und zurückgeben
    • +
    • Die Methode double getCircumferenceInCm() soll den Umfang gemäß der Formel +U = 2 ∗ 𝜋 ∗ 𝑟 berechnen und zurückgeben
    • +
    +

    Hinweise zur Klasse Rectangle

    +
      +
    • Die Methode double getAreaInCm2() soll den Flächeninhalt gemäß der Formel +𝐴 = 𝑎 ∗ 𝑏 berechnen und zurückgeben
    • +
    • Die Methode double getCircumferenceInCm() soll den Umfang gemäß der Formel +U = 2 ∗ 𝑎 + 2 ∗ 𝑏 berechnen und zurückgeben
    • +
    +

    Hinweise zur Klasse ShapeReader

    +
      +
    • Der Konstruktor soll der Formenliste (shapes) alle Formen der eingehenden +Datei hinzufügen
    • +
    • Die Methode List<Circle> getCircles() soll alle Kreise der Formenliste +(shapes) zurückgeben
    • +
    • Die Methode List<Shape> getShapesWithMinArea(minAreaInCm2: double) soll alle +Formen der Formenliste (shapes) zurückgeben, die mindestens den eingehenden +Flächeninhalt aufweisen
    • +
    +

    Beispielhafter Aufbau der Formendatei

    +
    Circle;4
    Square;5
    Rectangle;3;4
    Rectangle;1;7
    Circle;2
    Circle;3
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/student-course/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/student-course/index.html new file mode 100644 index 0000000000..7cefca5e36 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/student-course/index.html @@ -0,0 +1,14 @@ +Kurs | Programmieren mit Java

    Kurs

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweis zur Klasse StudentCourse

    +

    Die Methode Lecture getLectureWithMostCreditPoints() soll die Vorlesung mit +den meisten ECTS-Punkten zurückgeben.

    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/zoo/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/zoo/index.html new file mode 100644 index 0000000000..e4efd3a781 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/zoo/index.html @@ -0,0 +1,24 @@ +Zoo | Programmieren mit Java

    Zoo

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweis zur Klasse Bird

    +

    Die Methode void fly() soll die Zeichenkette flatter, flatter ausgeben.

    +

    Hinweis zur Klasse Fish

    +

    Die Methode void swim() soll die Zeichenkette schwimm, schwimm ausgeben.

    +

    Hinweise zur Klasse Zoo

    +
      +
    • Die Methode void addAnimal(animal: Animal) soll dem Zoo das eingehende Tier +hinzufügen
    • +
    • Die Methode Animal getBiggestAnimal() soll das größte Tier des Zoos +zurückgeben
    • +
    • Die Methode List<Fish> getFishesByColor(color: String) soll alle Fische des +Zoos zur eingehenden Farbe zurückgeben
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-01/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-01/index.html new file mode 100644 index 0000000000..99393d8ece --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-01/index.html @@ -0,0 +1,32 @@ +Würfelspiel 1 | Programmieren mit Java

    Würfelspiel 1

    Setze das abgebildete Klassendiagramm vollständig um. Orientiere Dich bei der +Konsolenausgabe am abgebildeten Beispiel.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweis zur Klasse WeaponDice

    +

    Die Methode void rollTheDice() soll mit einer gleichverteilten +Wahrscheinlichkeit dem Waffensymbol (weapon) einen Wert zuweisen.

    +

    Hinweis zur Klasse Player

    +

    Die Methode void reducePoints(points: int) soll die Punkte des Spielers +(points) um die eingehenden Punkte reduzieren.

    +

    Spielablauf

    +
      +
    • Zu Beginn des Spiels sollen die Spieler ihre Namen eingeben können
    • +
    • Jeder Spieler soll zu Beginn des Spiels 10 Punkte besitzen
    • +
    • Zu Beginn jeder Runde soll der aktuelle Punktestand für beide Spieler +ausgegeben werden
    • +
    • Anschließend sollen beide Spieler abwechselnd den Würfel werfen
    • +
    • Der Spieler mit dem niedrigeren Wurfwert (Stärke des gewürfelten +Waffensymbols) soll Punkte in Höhe der Differenz der beiden Wurfwerte +verlieren
    • +
    • Das Spiel soll Enden, sobald ein Spieler keine Punkte mehr besitzt
    • +
    • Am Ende soll der Gewinner des Spiels ausgegeben werden
    • +
    +

    Beispielhafte Konsolenausgabe

    +
    Spieler 1, gib bitte Deinen Namen ein: Lisa
    Spieler 2, gib bitte Deinen Namen ein: Hans

    Punkte Lisa: 10
    Punkte Hans: 10
    Waffen-Symbol Lisa: Schwert
    Waffen-Symbol Hans: Speer
    Punkte Hans: 8
    ...
    Punkte Lisa: 1
    Punkte Hans: 5
    Waffen-Symbol Lisa: Keule
    Waffen-Symbol Hans: Speer
    Punkte Lisa: 0

    Hans gewinnt
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-02/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-02/index.html new file mode 100644 index 0000000000..0d28c64057 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-02/index.html @@ -0,0 +1,28 @@ +Würfelspiel 2 | Programmieren mit Java

    Würfelspiel 2

    Setze das abgebildete Klassendiagramm vollständig um. Orientiere Dich bei der +Konsolenausgabe am abgebildeten Beispiel.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweis zur Klasse Dice

    +

    Die Methode ShapeSymbol rollTheDice() soll mit einer gleichverteilten +Wahrscheinlichkeit ein Formensymbol zurückgeben.

    +

    Spielablauf

    +
      +
    • Das Spiel soll aus mehreren Runden bestehen
    • +
    • Zu Beginn einer jeden Runde sollen 5 Würfel geworfen werden
    • +
    • Nach dem Wurf soll der Spieler eingeben, ob die Anzahl Ecken (corners) aller +Würfel höher als 12 ist oder nicht. Liegt der Spieler mit seiner Einschätzung +richtig, bekommt er einen Punkt
    • +
    • Am Ende einer Runde soll der Spieler eingeben, ob er eine weitere Runde +spielen möchte
    • +
    • Am Ende des Spiels soll die Anzahl der gespielten Runden sowie die Punktzahl +ausgegeben werden
    • +
    +

    Beispielhafte Konsolenausgabe

    +
    Ist die Anzahl Ecken höher als 12 (Ja, Nein)?: Nein
    Richtig (10)
    Möchtest Du eine weitere Runde spielen (Ja, Nein)?: Ja

    Ist die Anzahl Ecken höher als 12 (Ja, Nein)?: Ja
    Falsch (6)
    Möchtest Du eine weitere Runde spielen (Ja, Nein)?: Ja

    Ist die Anzahl Ecken höher als 12 (Ja, Nein)?: Nein
    Falsch (16)
    Möchtest Du eine weitere Runde spielen (Ja, Nein)?: Nein

    Gespielte Runden: 3
    Erzielte Punkte: 1
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-03/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-03/index.html new file mode 100644 index 0000000000..8b6fce5c2b --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-03/index.html @@ -0,0 +1,30 @@ +Würfelspiel 3 | Programmieren mit Java

    Würfelspiel 3

    Setze das abgebildete Klassendiagramm vollständig um. Orientiere Dich bei der +Konsolenausgabe am abgebildeten Beispiel.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweis zur Klasse Dice

    +

    Die Methode int rollTheDice() soll mit einer gleichverteilten +Wahrscheinlichkeit einen Wert zwischen 1 und 6 zurückgeben.

    +

    Hinweis zur Klasse Player

    +

    Der Konstruktor soll alle Attribute initialisieren und die Lebenspunkte auf den +Wert 10 setzen.

    +

    Spielablauf

    +
      +
    • Zu Beginn des Spiels sollen die Spieler ihre Namen eingeben können
    • +
    • Beide Spieler sollen zu Beginn des Spiels 10 Lebenspunkte besitzen
    • +
    • Zu Beginn einer jeder Runde soll der aktuelle Punktestand ausgegeben werden
    • +
    • Anschließend sollen beide Spieler ihre Würfel werfen
    • +
    • Der Spieler mit dem niedrigeren Wurfwert soll einen Lebenspunkt verlieren, bei +Gleichstand soll keiner der Spieler einen Lebenspunkt verlieren
    • +
    • Das Spiel soll Enden, sobald ein Spieler keine Lebenspunkte mehr besitzt
    • +
    • Am Ende soll der Gewinner des Spiels ausgegeben werden
    • +
    +

    Beispielhafte Konsolenausgabe

    +
    Spieler 1, gib bitte Deinen Namen ein: Hans
    Spieler 2, gib bitte Deinen Namen ein: Peter

    Hans hat 10 Lebenspunkte
    Peter hat 10 Lebenspunkte
    Hans würfelt eine 6
    Peter würfelt eine 6
    ...
    Hans hat 4 Lebenspunkte
    Peter hat 1 Lebenspunkte
    Hans würfelt eine 5
    Peter würfelt eine 1
    Peter verliert einen Punkt

    Hans gewinnt
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-04/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-04/index.html new file mode 100644 index 0000000000..a3e02ee9f4 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-04/index.html @@ -0,0 +1,33 @@ +Würfelspiel 4 | Programmieren mit Java

    Würfelspiel 4

    Setze das abgebildete Klassendiagramm vollständig um. Orientiere Dich bei der +Konsolenausgabe am abgebildeten Beispiel.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweis zur Klasse AmountDice

    +

    Die Methode int rollTheDice() soll mit einer gleichverteilten +Wahrscheinlichkeit einen Wert zwischen 1 und 6 zurückgeben.

    +

    Hinweis zur Klasse FoodCategoryDice

    +

    Die Methode FoodCategory rollTheDice() soll mit einer gleichverteilten +Wahrscheinlichkeit eine Lebensmittelkategorie zurückgeben.

    +

    Hinweis zur Klasse Player

    +

    Der Konstruktor soll den Spielernamen (name) initialisieren.

    +

    Spielablauf

    +
      +
    • Zwei Spieler sollen abwechselnd solange zwei Würfel (einen +Lebensmittelkategorie-Würfel und einen Zahlenwürfel) werfen, bis einer der +beiden Spieler keine Punkte mehr hat
    • +
    • In jeder Runde verliert der Spieler mit dem schlechteren Wurfwert Punkte, +wobei diesem Spieler die Differenz der beiden Wurfwerte abgezogen wird
    • +
    • Der Wurfwert berechnet sich nach der Formel +Zahlenwert des Zahlenwürfels * Punktwert der gewürfelten Lebensmittelkategorie
    • +
    • Beide Spieler sollen zu Beginn des Spiels ihre Namen eingeben können und +sollen das Spiel mit 100 Punkte beginnen
    • +
    +

    Beispielhafte Konsolenausgabe

    +
    Spieler 1, gib bitte Deinen Namen ein: Hans
    Spieler 2, gib bitte Deinen Namen ein: Peter

    Runde 1
    Hans hat 100 Punkte, Peter hat 100 Punkte
    Hans würfelt 1 x Eier (4 Punkte)
    Peter würfelt 2 x Süßigkeiten (12 Punkte)
    Hans werden 8 Punkte abgezogen
    ...
    Runde 13
    Hans hat 4 Punkte, Peter hat 30 Punkte
    Hans würfelt 1 x Obst (2 Punkte)
    Peter würfelt 5 x Fleisch (20 Punkte)
    Hans werden 18 Punkte abgezogen

    Peter hat gewonnen
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/index.html new file mode 100644 index 0000000000..1c86c4fbb7 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/index.html @@ -0,0 +1 @@ +Würfelspiele | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java1/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/index.html new file mode 100644 index 0000000000..7ba89ba917 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java1/index.html @@ -0,0 +1 @@ +Programmierung 1 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/corner-shop/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/corner-shop/index.html new file mode 100644 index 0000000000..89daca958b --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/corner-shop/index.html @@ -0,0 +1,26 @@ +Tante-Emma-Laden | Programmieren mit Java

    Tante-Emma-Laden

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweis zur Klasse Goods

    +

    Die Methode int compareTo(other: Goods) soll so implementiert werden, dass +damit Waren aufsteigend nach ihrer Beschreibung sortiert werden können.

    +

    Hinweise zur Klasse CornerShop

    +
      +
    • Die Methode Optional<Integer> getAmountByDescription(description: String) +soll die Anzahl Waren zur eingehenden Warenbeschreibung als Optional +zurückgeben
    • +
    • Die Methode void buyGoods(goods: Goods, amount: int) soll die eingehende +Ware im Lager (store) um die eingehende Anzahl erhöhen
    • +
    • Die Methode void sellGoods(goods: Goods, amount: int) soll die eingehende +Ware im Lager (store) um die eingehende Anzahl reduzieren. Für den Fall, +dass keine ausreichende Anzahl an Waren vorhanden ist, soll die Ausnahme +OutOfStockException ausgelöst werden
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/dictionary/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/dictionary/index.html new file mode 100644 index 0000000000..9f2b4a70f0 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/dictionary/index.html @@ -0,0 +1,31 @@ +Wörterbuch | Programmieren mit Java

    Wörterbuch

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweis zur Klasse Word

    +

    Die Methode int compareTo(other: Word) soll so implementiert werden, dass +damit Wörter aufsteigend nach ihrem Wert sortiert werden können.

    +

    Hinweise zur Klasse Dictionary

    +
      +
    • Die Methode void addEntry(sourceWord: Word, targetWord: Word) soll den +Einträgen des Wörterbuches (entries) die eingehenden Wörter als Eintrag +hinzufügen. Für den Fall, dass die Sprache des ersten eingehenden Wortes nicht +der Quellsprache (sourceLanguage) entspricht, oder die Sprache des zweiten +eingehenden Wortes nicht der Zielsprache (targetLanguage) entspricht, soll +die Ausnahme InvalidLanguageException ausgelöst werden
    • +
    • Die Methode void importEntries(file: File) soll den Einträgen des +Wörterbuches (entries) die Wörter der eingehenden Datei als Einträge +hinzufügen. Die Ausnahme FileNotFoundException soll dabei weitergeleitet +werden
    • +
    • Die Methode Optional<String> getTranslation(word: String) soll die +Übersetzung zur eingehenden Zeichenkette als Optional zurückgeben
    • +
    +

    Beispielhafter Aufbau der Wörterdatei

    +
    DE;Haus;EN;House
    DE;Maus;EN;Mouse
    DE;Baum;EN;Tree
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/human-resources/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/human-resources/index.html new file mode 100644 index 0000000000..06d742856f --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/human-resources/index.html @@ -0,0 +1,24 @@ +Personalverwaltung | Programmieren mit Java

    Personalverwaltung

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweise zur Klasse HumanResources

    +
      +
    • Die Methode +void addTelephoneNumber(telephoneNumber: TelephoneNumber, person: Person) +soll dem Telefonbuch (telephoneBook) die eingehende Telefonnummer als +Schlüssel sowie die eingehende Person als Wert hinzufügen
    • +
    • Die Methode void addStaff(person: Person) soll der Personalliste (staff) +die eingehende Person hinzufügen. Für den Fall, dass diese Person bereits in +der Personalliste vorhanden ist, soll die Ausnahme DuplicateException +ausgelöst werden
    • +
    • Die Methode List<TelephoneNumber> getTelephoneNumbersByPersonId(id: int) +soll alle Telefonnummern zur eingehenden Personennummer zurückgeben
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/index.html new file mode 100644 index 0000000000..d6093ba1c7 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/index.html @@ -0,0 +1 @@ +Klassendiagramme | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/job-offer/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/job-offer/index.html new file mode 100644 index 0000000000..fa61f87d18 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/job-offer/index.html @@ -0,0 +1,25 @@ +Stellenangebot | Programmieren mit Java

    Stellenangebot

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweis zur Klasse Applicant

    +

    Die Methode +void addApplicationDocument(applicationDocument: ApplicationDocument) soll den +Bewerbungsunterlagen (applicationDocuments) das eingehende Dokument +hinzufügen.

    +

    Hinweis zur Klasse JobOffer

    +

    Die Methode void addApplicant(applicant: Applicant) soll der Bewerberliste +(applicants) den eingehenden Bewerber hinzufügen.

    +

    Hinweis zur Klasse JobOfferReader

    +

    Die statische Methode List<JobOffer> getJobOffers(file: File) soll die +Stellenangebote der eingehenden Datei zurückgeben. Die Ausnahme +FileNotFoundException soll dabei weitergeleitet werden.

    +

    Beispielhafter Aufbau der Stellenangebotsdatei

    +
    285;Senior Developer Java
    392;Associate Consultant SAP
    430;Expert Developer Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/lego-brick/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/lego-brick/index.html new file mode 100644 index 0000000000..cd18aeccd4 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/lego-brick/index.html @@ -0,0 +1,15 @@ +Lego-Baustein | Programmieren mit Java

    Lego-Baustein

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweis zur Klasse LegoBrickVolumeComparator

    +

    Die Methode int compare(legoBrick1: LegoBrick, legoBrick2: LegoBrick) soll so +implementiert werden, dass damit Lego-Bausteine aufsteigend nach ihrem Volumen +sortiert werden können.

    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/library/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/library/index.html new file mode 100644 index 0000000000..64f1e8efdd --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/library/index.html @@ -0,0 +1,26 @@ +Bibliothek | Programmieren mit Java

    Bibliothek

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    • Die statische Methode UUID randomUUID() der Klasse UUID gibt eine zufällig +erstellte UUID zurück
    • +
    +

    Hinweis zur Klasse EBook

    +

    Der Konstruktor soll alle Attribute initialisieren. Für den Fall, dass die +eingehende Dateigröße kleiner gleich Null ist, soll die Ausnahme +WrongFileSizeException ausgelöst werden.

    +

    Hinweise zur Klasse Library

    +
      +
    • Die Methode void addBook(book: Book) soll der Bücherliste (books) das +eingehende Buch mit dem Status verfügbar hinzufügen
    • +
    • Die Methode Optional<Book> getBookByTitle(title: String) soll das Buch zum +eingehenden Titel als Optional zurückgeben
    • +
    • Die Methode List<PaperBook> getPaperBooksByStatus(status: Status) soll alle +gedruckten Bücher zum eingehenden Status zurückgeben
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/player/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/player/index.html new file mode 100644 index 0000000000..e42cb7139e --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/player/index.html @@ -0,0 +1,26 @@ +Kartenspieler | Programmieren mit Java

    Kartenspieler

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweis zur Klasse Player

    +
      +
    • Die Schlüssel-Werte-Paare des Assoziativspeichers beinhalten als Schlüssel die +ausgespielten Karten des Spielers sowie als Wert deren Reihe
    • +
    • Die Methode void playCard(card: Card, row: int) soll die eingehende Karte +ausspielen. Beim Ausspielen einer Karte soll diese aus den Handkarten entfernt +und den ausgespielten Karten hinzugefügt werden. Zudem sollen die +Aktionspunkte des Spielers um die Kosten der Karte reduziert werden. Für den +Fall, dass die Karte nicht Teil der Handkarten ist, soll die Ausnahme +CardNotFoundException ausgelöst werden und für den Fall, dass die +Aktionspunkte des Spielers nicht ausreichen, die Ausnahme +NotEnoughActionPointsException
    • +
    • Die Methode Optional<Card> getMostPowerfulCardByRow(row: int) soll die +stärkste ausgespielte Karte der eingehenden Reihe zurückgeben
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal/index.html new file mode 100644 index 0000000000..b514bb33ec --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/shopping-portal/index.html @@ -0,0 +1,34 @@ +Einkaufsportal | Programmieren mit Java

    Einkaufsportal

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweis zur Klasse Item

    +

    Die Methode double getSubTotalInEuro() soll die Zwischensumme des +Warenkorbeintrags als Produkt aus dem Produktpreis und der Anzahl zurückgeben.

    +

    Hinweise zur Klasse ShoppingCart

    +
      +
    • Die Methode void addItem(sellable: T, amount: int) soll den Einträgen des +Warenkorbs (items) das eingehende verkäufliche Objekt und die eingehende +Anzahl als Eintrag hinzufügen
    • +
    • Die Methode void removeItem(sellable: T) soll das eingehende verkäufliche +Objekt aus den Einträgen des Warenkorbs (items) entfernen
    • +
    • Die Methode double getTotalInEuro() soll die Gesamtsumme des Warenkorbs +zurückgeben
    • +
    +

    Hinweise zur Klasse ShoppingPortal

    +
      +
    • Die Methode void addProductToShoppingCart(product: Product, amount: int) +soll dem Warenkorb (shoppingCart) das eingehende Produkt und die eingehende +Anzahl als Eintrag hinzufügen
    • +
    • Die Methode void removeProductFromShoppingCart(product: Product) soll das +eingehende Produkt aus dem Warenkorb (shoppingCart) entfernen
    • +
    • Die Methode void clearShoppingCart() soll alle Einträge des Warenkorbs +(shoppingCart) entfernen
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/space-station/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/space-station/index.html new file mode 100644 index 0000000000..e984dc1e8f --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/space-station/index.html @@ -0,0 +1,22 @@ +Raumstation | Programmieren mit Java

    Raumstation

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweise zur Klasse SpaceStation

    +
      +
    • Die Methode void land(bayNumber: Integer, spaceFighter: SpaceFighter) soll +den eingehenden Sternenjäger in der Bucht mit der eingehenden Buchtnummer +landen lassen. Für den Fall, dass der eingehende Sternenjäger bereits gelandet +ist (also bereits eine Bucht belegt), soll die Ausnahme +SpaceFighterAlreadyLandedException ausgelöst werden und für den Fall, dass +die Bucht bereits belegt ist, die Ausnahme BayAlreadyLoadedException
    • +
    • Die Methode Optional<SpaceFighter> getFastestSpaceFighter() soll den +schnellsten Sternenjäger der Raumstation als Optional zurückgeben
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/team/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/team/index.html new file mode 100644 index 0000000000..56e776798f --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/team/index.html @@ -0,0 +1,30 @@ +Team | Programmieren mit Java

    Team

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweise zur Klasse Sportsman

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren
    • +
    • Die Methode int compareTo(other: Sportsman) soll so implementiert werden, +dass Sportler absteigend nach ihren Scorer-Punkten sortiert werden können
    • +
    +

    Hinweise zur Klasse Team

    +
      +
    • Der Assoziativspeicher members beinhaltet als Schlüssel alle Mitglieder der +Mannschaft sowie als Wert deren Position
    • +
    • Die Methode void addTeamMember(member: T, position: Position) soll der +Mannschaft den eingehenden Sportler als Mitglied mit der eingehenden Position +hinzufügen. Für den Fall, dass der Sportler bereits Teil der Mannschaft ist, +soll die Ausnahme DuplicateKeyException ausgelöst werden
    • +
    • Die Methode Optional<T> getBestScorer() soll den Sportler mit den meisten +Scorer-Punkten als Optional zurückgeben
    • +
    • Die Methode List<T> getAllTeamMembersByPosition(position: Position) soll +alle Sportler zur eingehenden Position als Liste zurückgeben
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/video-collection/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/video-collection/index.html new file mode 100644 index 0000000000..9e1b83497e --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/video-collection/index.html @@ -0,0 +1,23 @@ +Videosammlung | Programmieren mit Java

    Videosammlung

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweise zur Klasse VideoCollection

    +
      +
    • Die Methode void addVideo(video: Video) soll der Videoliste (videos) das +eingehende Video hinzufügen
    • +
    • Die Methode void importVideos(file: File) soll der Videoliste (videos) die +Videos der eingehenden Datei hinzufügen. Die Ausnahme FileNotFoundException +soll dabei weitergeleitet werden
    • +
    • Die Methode Optional<Video> getVideoByTitle(title: String) soll das Video +zum eingehenden Titel als Optional zurückgeben
    • +
    +

    Beispielhafter Aufbau der Videodatei

    +
    The Matrix;SCIFI;1999;VHS;false
    Evil Dead;HORROR;1981;BLURAY;25
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/index.html new file mode 100644 index 0000000000..d8f0d5d08f --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/index.html @@ -0,0 +1 @@ +Programmierung 2 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/cities/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/cities/index.html new file mode 100644 index 0000000000..a9a7918f83 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/cities/index.html @@ -0,0 +1,27 @@ +Städte | Programmieren mit Java

    Städte

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweise zur Klasse CityQueries

    +
      +
    • Die Methode Map<Gender, List<Major>> getAllMajorsByGender() soll alle +Bürgermeister gruppiert nach Geschlecht zurückgeben
    • +
    • Die Methode +List<String> getAllNamesFromCitiesInEuropeWithMoreThan1MioInhabitants() soll +die Namen aller europäischen Städte mit mehr als 1 Million Einwohner +zurückgeben
    • +
    • Die Methode Optional<String> getNameOfMajorByNameOfCity(nameOfCity: String) +soll den Namen des Bürgermeisters zum eingehenden Stadtnamen zurückgeben
    • +
    • Die Methode double getTotalAreaInKm2OfAllCitiesWithFemaleMajors() soll die +gesamte Fläche in km2 aller Städte mit weiblichen Bürgermeistern zurückgeben
    • +
    • Die Methode void printCityWithMostPointsOfInterest() soll die Stadt mit den +meisten Sehenswürdigkeiten in der Form Stadtname (Anzahl Sehenswürdigkeiten) +ausgeben
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/index.html new file mode 100644 index 0000000000..9cc16978f4 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/index.html @@ -0,0 +1 @@ +Abfragen | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/measurement-data/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/measurement-data/index.html new file mode 100644 index 0000000000..525930ba19 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/measurement-data/index.html @@ -0,0 +1,21 @@ +Messdaten | Programmieren mit Java

    Messdaten

      +
    • Erstelle die Klasse MeasurementData anhand des abgebildeten Quellcodes
    • +
    • Erstelle eine ausführbare Klasse, welche mit Hilfe der Java Stream API +folgende Informationen auf der Konsole ausgibt: +
        +
      • alle Messdaten aus einem bestimmtem Jahr der Kategorie F absteigend sortiert +nach dem Prozentsatz
      • +
      • der Durchschnitts-Prozentsatz aller Messdaten der Kategorie X
      • +
      • alle Messdaten, bei denen die Temperatur im Sommer (Juni - August) bei +mindestens 30° lag
      • +
      • die Antwort auf die Frage, ob es einen Messdatensatz aus Deutschland, +datiert nach dem 1. Januar eines bestimmten Jahres, mit einem Prozentsatz +von mindestens 50% gibt
      • +
      • die durchschnittliche Temperatur gruppiert nach Ländern
      • +
      • die Anzahl aller Messdaten gruppiert nach den Prozentsatzbereichen (0-10, +10-20,…)
      • +
      +
    • +
    +

    Quellcode

    +
    public record MeasurementData(String country, LocalDate date, double temperatureInC, int percentage,
    char category) {

    private final static int NUMBER_OF_ENTRIES = 100;
    private final static int MAX_DAYS = 2000;
    private final static int MAX_TEMPERATURE_IN_CELCIUS = 40;
    private final static int MAX_PERCENTAGE = 101;
    private final static List<String> COUNTRIES =
    List.of("USA", "Brasilien", "Deutschland", "Japan", "Indien");
    private final static List<Character> CATEGORIES = List.of('D', 'X', 'F');

    public static List<MeasurementData> getMeasurementData() {
    List<MeasurementData> measurementData = new ArrayList<>();

    Random rnd = new Random();
    LocalDate now = LocalDate.now();

    for (int i = 0; i < NUMBER_OF_ENTRIES; i++) {
    LocalDate date = now.minusDays(rnd.nextInt(MAX_DAYS));
    double temperatureInC = rnd.nextDouble(MAX_TEMPERATURE_IN_CELCIUS);
    int percentage = rnd.nextInt(MAX_PERCENTAGE);
    String country = COUNTRIES.get(rnd.nextInt(COUNTRIES.size()));
    char category = CATEGORIES.get(rnd.nextInt(CATEGORIES.size()));
    measurementData.add(new MeasurementData(country, date, temperatureInC, percentage, category));
    }

    return measurementData;
    }

    }
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/phone-store/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/phone-store/index.html new file mode 100644 index 0000000000..93500867ab --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/phone-store/index.html @@ -0,0 +1,28 @@ +Smartphone-Shop | Programmieren mit Java

    Smartphone-Shop

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweise zur Klasse PhoneStore

    +
      +
    • Die Methode List<Phone> query1() soll die drei leistungsstärksten +Smartphones mit 3 Kameras der Marke Huawei absteigend nach dem Preis +zurückgeben
    • +
    • Die Methode OptionalDouble query2() soll die durchschnittliche Anzahl +Kameras aller Smartphones zurückgeben, die eine Akkukapazität von 2500 mAh +oder mehr haben
    • +
    • Die Methode List<Phone> query3(maxPriceInEuro: double) soll alle Smartphones +aufsteigend nach Preis zurückgeben, die den eingehenden Höchstpreis nicht +überschreiten, einen modernen Anschlusstyp haben und weniger als 2,4 GHz +Leistung besitzen
    • +
    • Die Methode Map<Phone, String> query4() soll jedes Smartphone mit der +zusammengesetzten Zeichenkette aus Marke und Anschlusstyp zurückgeben
    • +
    • Die Methode Map<ConnectionType, Phone> query4() soll alle Smartphones +gruppiert nach dem Anschlusstyp zurückgeben
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/planets/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/planets/index.html new file mode 100644 index 0000000000..22c7e35dc9 --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/planets/index.html @@ -0,0 +1,22 @@ +Planeten | Programmieren mit Java

    Planeten

      +
    • Setze das abgebildete Klassendiagramm vollständig um
    • +
    • Erstelle eine ausführbare Klasse, welche mit Hilfe der Java Stream API +folgende Informationen auf der Konsole ausgibt: +
        +
      • alle Planeten mit mehr als 5 Monden
      • +
      • den durchschnittlichen Durchmesser aller Gasplaneten
      • +
      • alle Planeten absteigend sortiert nach der Masse
      • +
      • die Antwort auf die Frage, ob alle Planeten mindestens einen Mond besitzen
      • +
      • alle Planeten gruppiert nach ihrem Typ
      • +
      +
    • +
    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/tanks/index.html b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/tanks/index.html new file mode 100644 index 0000000000..ba7b939a1a --- /dev/null +++ b/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/tanks/index.html @@ -0,0 +1,26 @@ +Panzer | Programmieren mit Java

    Panzer

    Setze das abgebildete Klassendiagramm vollständig um. Erstelle zum Testen eine +ausführbare Klasse und/oder eine Testklasse.

    +

    Klassendiagramm

    + +

    Allgemeine Hinweise

    +
      +
    • Aus Gründen der Übersicht werden im Klassendiagramm keine Getter und +Object-Methoden dargestellt
    • +
    • So nicht anders angegeben, sollen Konstruktoren, Setter, Getter sowie die +Object-Methoden wie gewohnt implementiert werden
    • +
    +

    Hinweise zur Klasse TankQueries

    +
      +
    • Die Methode void printAllTanksWithWeightBT25TonsByType() soll alle Panzer +mit einem Gewicht von mehr als 25 Tonnen gruppiert nach dem Typ in der Form +Typ: [Panzer, Panzer,...] ausgeben
    • +
    • Die Methode OptionalDouble getAveragePerformanceInHorsePower() soll die +durchschnittliche Leistung in Pfer- destärken aller Panzer zurückgeben
    • +
    • Die Methode List<Nation> getAllNations() soll die Nationen aller Panzer +zurückgeben
    • +
    • Die Methode boolean isAllTanksMaxSpeedBE50KMH() soll zurückgeben, ob alle +Kampfpanzer eine Höchstgeschwindigkeit von min. 50 km/h besitzen
    • +
    • Die Methode void printLongestTankFromGermany() soll den Namen des längsten +Panzers aus Deutschland auf der Konsole aus- geben. Gibt es keinen Panzer aus +Deutschland, soll stattdessen der Wert null ausgegeben werden
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/abstract-and-final/abstract-and-final01/index.html b/pr-preview/pr-238/exercises/abstract-and-final/abstract-and-final01/index.html new file mode 100644 index 0000000000..18be815ca3 --- /dev/null +++ b/pr-preview/pr-238/exercises/abstract-and-final/abstract-and-final01/index.html @@ -0,0 +1,6 @@ +AbstractAndFinal01 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/abstract-and-final/index.html b/pr-preview/pr-238/exercises/abstract-and-final/index.html new file mode 100644 index 0000000000..bc0bf1ab47 --- /dev/null +++ b/pr-preview/pr-238/exercises/abstract-and-final/index.html @@ -0,0 +1,8 @@ +Abstrakte und finale Klassen und Methoden | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/activity-diagrams/activity-diagrams01/index.html b/pr-preview/pr-238/exercises/activity-diagrams/activity-diagrams01/index.html new file mode 100644 index 0000000000..752790e019 --- /dev/null +++ b/pr-preview/pr-238/exercises/activity-diagrams/activity-diagrams01/index.html @@ -0,0 +1,11 @@ +ActivityDiagrams01 | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/activity-diagrams/index.html b/pr-preview/pr-238/exercises/activity-diagrams/index.html new file mode 100644 index 0000000000..faa91ab6f5 --- /dev/null +++ b/pr-preview/pr-238/exercises/activity-diagrams/index.html @@ -0,0 +1,3 @@ +Aktivitätsdiagramme | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/algorithms/algorithms01/index.html b/pr-preview/pr-238/exercises/algorithms/algorithms01/index.html new file mode 100644 index 0000000000..2635052ae1 --- /dev/null +++ b/pr-preview/pr-238/exercises/algorithms/algorithms01/index.html @@ -0,0 +1,3 @@ +Algorithms01 | Programmieren mit Java

    Algorithms01

    Durchsuche die Zahlenfolge 2, 2, 3, 4, 5, 5, 5, 6, 7, 8 nach dem Wert 6 unter +Verwendung der Linearsuche, der Binärsuche und der Interpolationssuche.

    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/algorithms/algorithms02/index.html b/pr-preview/pr-238/exercises/algorithms/algorithms02/index.html new file mode 100644 index 0000000000..a1cf168eee --- /dev/null +++ b/pr-preview/pr-238/exercises/algorithms/algorithms02/index.html @@ -0,0 +1,4 @@ +Algorithms02 | Programmieren mit Java

    Algorithms02

    Sortiere die Zahlenfolge 46, 2, 46', 87, 13, 14, 62, 17, 80 unter Verwendung +des Bubblesort, des Insertionsort, des Selectionsort, des Quicksort, des +Mergesort und des Heapsorts.

    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/algorithms/index.html b/pr-preview/pr-238/exercises/algorithms/index.html new file mode 100644 index 0000000000..cd9fbe1926 --- /dev/null +++ b/pr-preview/pr-238/exercises/algorithms/index.html @@ -0,0 +1,3 @@ +Algorithmen | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/arrays/arrays01/index.html b/pr-preview/pr-238/exercises/arrays/arrays01/index.html new file mode 100644 index 0000000000..5693b437a4 --- /dev/null +++ b/pr-preview/pr-238/exercises/arrays/arrays01/index.html @@ -0,0 +1,8 @@ +Arrays01 | Programmieren mit Java

    Arrays01

    Erstelle eine ausführbare Klasse, welche alle Zweierpotenzen von 0 bis 15 +berechnet, in einem Feld speichert und anschließend auf dem Bildschirm ausgibt.

    +

    Konsolenausgabe

    +
    Zweierpotenzen:
    1
    2
    4
    8
    16
    32
    64
    128
    ...
    +

    Hinweis

    +

    Die statische Methode double pow(a: double, b: double) der Klasse Math gibt +den Potenzwert zur eingehenden Basis und dem eingehenden Exponenten zurück.

    +
    git switch exercises/arrays/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/arrays/arrays02/index.html b/pr-preview/pr-238/exercises/arrays/arrays02/index.html new file mode 100644 index 0000000000..7e211e1776 --- /dev/null +++ b/pr-preview/pr-238/exercises/arrays/arrays02/index.html @@ -0,0 +1,6 @@ +Arrays02 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/arrays/arrays03/index.html b/pr-preview/pr-238/exercises/arrays/arrays03/index.html new file mode 100644 index 0000000000..e8575e03df --- /dev/null +++ b/pr-preview/pr-238/exercises/arrays/arrays03/index.html @@ -0,0 +1,14 @@ +Arrays03 | Programmieren mit Java

    Arrays03

    Erstelle eine ausführbare Klasse zum Berechnen von ISBN-Prüfziffern.

    +

    Konsolenausgabe

    +
    Gib bitte eine ISBN ohne Prüfziffer ein: 978376572781
    Ergebnis: Die Prüfziffer lautet 8
    +

    Hinweise

    +
      +
    • Die Methode char charAt(index: int) der Klasse String gibt das Zeichen mit +dem Index der eingehenden Zahl zurück
    • +
    • Die statische Methode int getNumericValue(ch: char) der Klasse Character +gibt den ganzzahligen Wert des eingehenden Zeichens zurück
    • +
    • Eine ISBN besteht aus 13 Ziffern (die 13. Ziffer stellt die Prüfziffer dar)
    • +
    • Die Formel für die Berechnung der Prüfziffer findest Du unter anderem +hier
    • +
    +
    git switch exercises/arrays/03
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/arrays/arrays04/index.html b/pr-preview/pr-238/exercises/arrays/arrays04/index.html new file mode 100644 index 0000000000..8647e066b5 --- /dev/null +++ b/pr-preview/pr-238/exercises/arrays/arrays04/index.html @@ -0,0 +1,5 @@ +Arrays04 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/arrays/arrays05/index.html b/pr-preview/pr-238/exercises/arrays/arrays05/index.html new file mode 100644 index 0000000000..3e333d3243 --- /dev/null +++ b/pr-preview/pr-238/exercises/arrays/arrays05/index.html @@ -0,0 +1,5 @@ +Arrays05 | Programmieren mit Java

    Arrays05

    Erstelle eine ausführbare Klasse, welche es ermöglicht, Aufgaben zu einer Liste +hinzuzufügen, zu löschen und auf der Konsole auszugeben.

    +

    Konsolenausgabe

    +
    Optionen
    1: Aufgabe hinzufügen
    2: Aufgabe löschen
    3: Aufgaben ausgeben
    4: Beenden

    Was möchtest Du tun?: 1
    Gib bitte die Aufgabenbeschreibung ein: Wäsche waschen
    Was möchtest Du tun?: 1
    Gib bitte die Aufgabenbeschreibung ein: Hausaufgaben machen
    Was möchtest Du tun?: 3

    Aufgaben
    0: Wäsche waschen
    1: Hausaufgaben machen

    Was möchtest Du tun?: 2
    Gib bitte ein, welche Aufgabe gelöscht werden soll: 0
    Was möchtest Du tun?: 3

    Aufgaben
    0: Hausaufgaben machen

    Was möchtest Du tun?: 4
    +
    git switch exercises/arrays/05
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/arrays/arrays06/index.html b/pr-preview/pr-238/exercises/arrays/arrays06/index.html new file mode 100644 index 0000000000..67dd6843b0 --- /dev/null +++ b/pr-preview/pr-238/exercises/arrays/arrays06/index.html @@ -0,0 +1,8 @@ +Arrays06 | Programmieren mit Java

    Arrays06

    Erstelle eine ausführbare Klasse, welche ein gegebenes mehrdimensionales +Zahlenfeld analysiert. Es soll jeweils der kleinste sowie der größte Wert einer +Reihe auf der Konsole ausgegeben werden.

    +

    Zahlenfeld

    +
    int[][] array = {
    { 5, 8, 2, 7 },
    { 9, 6, 10, 8 },
    { 10, 2, 7, 5 },
    { 1, 9, 5, 4 }
    };
    +

    Konsolenausgabe

    +
    MIN - MAX
    2 - 8
    6 - 10
    2 - 10
    1 - 9
    +
    git switch exercises/arrays/06
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/arrays/arrays07/index.html b/pr-preview/pr-238/exercises/arrays/arrays07/index.html new file mode 100644 index 0000000000..324e90dd71 --- /dev/null +++ b/pr-preview/pr-238/exercises/arrays/arrays07/index.html @@ -0,0 +1,8 @@ +Arrays07 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/arrays/index.html b/pr-preview/pr-238/exercises/arrays/index.html new file mode 100644 index 0000000000..e9851ad546 --- /dev/null +++ b/pr-preview/pr-238/exercises/arrays/index.html @@ -0,0 +1,54 @@ +Felder (Arrays) | Programmieren mit Java

    Felder (Arrays)

    Übungsaufgaben

    + +
    +

    Übungsaufgaben von tutego.de

    + +

    Übungsaufgaben der Uni Koblenz-Landau

    +
      +
    • Übungsaufgabe E1 (ohne Fehlerbehandlung)
    • +
    • Übungsaufgabe E2 (ohne Fehlerbehandlung)
    • +
    • Übungsaufgabe E3 (ohne Fehlerbehandlung)
    • +
    • Übungsaufgabe E4 (ohne Fehlerbehandlung)
    • +
    • Übungsaufgabe E5 (ohne Fehlerbehandlung)
    • +
    • Übungsaufgabe E6 (ohne Fehlerbehandlung)
    • +
    • Übungsaufgabe E7 (ohne Fehlerbehandlung)
    • +
    • Übungsaufgabe E8 (ohne Fehlerbehandlung)
    • +
    • Übungsaufgabe E9 (ohne Fehlerbehandlung)
    • +
    +

    Übungsaufgaben der Technischen Hochschule Ulm

    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/cases/cases01/index.html b/pr-preview/pr-238/exercises/cases/cases01/index.html new file mode 100644 index 0000000000..8601eb149b --- /dev/null +++ b/pr-preview/pr-238/exercises/cases/cases01/index.html @@ -0,0 +1,6 @@ +Cases01 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/cases/cases02/index.html b/pr-preview/pr-238/exercises/cases/cases02/index.html new file mode 100644 index 0000000000..5e709963d9 --- /dev/null +++ b/pr-preview/pr-238/exercises/cases/cases02/index.html @@ -0,0 +1,5 @@ +Cases02 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/cases/cases03/index.html b/pr-preview/pr-238/exercises/cases/cases03/index.html new file mode 100644 index 0000000000..13bea323c6 --- /dev/null +++ b/pr-preview/pr-238/exercises/cases/cases03/index.html @@ -0,0 +1,12 @@ +Cases03 | Programmieren mit Java

    Cases03

    Erstelle eine ausführbare Klasse, welche den Vornamen, den Nachnamen, das Alter +sowie das Geschlecht einer Person einliest und je nach Fall eine andere +Begrüßungsformel anzeigt.

    +

    Regelwerk

    +
      +
    • "Hallo Herr Nachname" für Männer ab 18
    • +
    • "Hallo Frau Nachname" für Frauen ab 18
    • +
    • "Hallo Vorname" für Kinder, Jugendliche unter 18 und Diverse
    • +
    +

    Konsolenausgabe

    +
    Gib bitte den Vornamen ein: Peter
    Gib bitte den Nachnamen ein: Müller
    Gib bitte das Alter ein: 60
    Gib bitte das Geschlecht ein (m, w, d): m
    Hallo Herr Müller
    +
    git switch exercises/cases/03
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/cases/cases04/index.html b/pr-preview/pr-238/exercises/cases/cases04/index.html new file mode 100644 index 0000000000..9f0a619e17 --- /dev/null +++ b/pr-preview/pr-238/exercises/cases/cases04/index.html @@ -0,0 +1,13 @@ +Cases04 | Programmieren mit Java

    Cases04

    Erstelle eine ausführbare Klasse, welche es zwei Spielern ermöglicht, eine +Zufallszahl zwischen 1 und 100 zu erraten. Der Spieler, der mit seinem Tipp +näher an der Zufallszahl liegt, gewinnt das Spiel.

    +

    Konsolenausgabe

    +
    Spieler 1, gib bitte Deinen Tipp ein: 34
    Spieler 2, gib bitte Deinen Tipp ein: 60
    Zufallszahl: 39, Spieler 1 gewinnt
    +

    Hinweise

    +
      +
    • Die Methode int nextInt(bound: int) der Klasse Random gibt eine +Zufallszahl zwischen 0 (inklusive) und der eingehenden Zahl (exklusive) zurück
    • +
    • Die statische Methode int abs(a: int) der Klasse Math gibt den Betrag der +eingehenden Zahl zurück
    • +
    +
    git switch exercises/cases/04
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/cases/cases05/index.html b/pr-preview/pr-238/exercises/cases/cases05/index.html new file mode 100644 index 0000000000..ba6ac3df5f --- /dev/null +++ b/pr-preview/pr-238/exercises/cases/cases05/index.html @@ -0,0 +1,4 @@ +Cases05 | Programmieren mit Java

    Cases05

    Welche Ausgabe erwartest Du nach Ablauf des abgebildeten Codings?

    +

    Coding

    +
    int a = 5;
    int b = 5;
    boolean c = true;
    boolean d = true;
    boolean e;
    int f = 5;
    int g = 3;
    int h = 2;
    int i = 4;
    int j = 0;

    e = c && (a > 2 ? (b == (a = a * 2)) : d);
    j += ((h < ((f - g == 3) ? 3 : 2)) && (i < 5)) ? 1 : 2;

    System.out.println("a: " + a);
    System.out.println("e: " + e);
    System.out.println("j: " + j);
    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/cases/cases06/index.html b/pr-preview/pr-238/exercises/cases/cases06/index.html new file mode 100644 index 0000000000..4ac8b01084 --- /dev/null +++ b/pr-preview/pr-238/exercises/cases/cases06/index.html @@ -0,0 +1,13 @@ +Cases06 | Programmieren mit Java

    Cases06

    Erstelle eine ausführbare Klasse, welche je nach eingegebenem Nachnamen und +Geschlecht eine andere Begrüßungsformel angezeigt.

    +

    Regelwerk

    +
      +
    • "Hallo Herr Nachname" für Männer
    • +
    • "Hallo Frau Nachname" für Frauen
    • +
    • "Hallo Nachname" für Diverse
    • +
    +

    Konsolenausgabe

    +
    Gib bitte den Nachnamen ein: Schmidt
    Gib bitte das Geschlecht ein (m, w, d): m
    Hallo Herr Schmidt
    +

    Hinweis

    +

    Verwende für die Lösung eine switch-case-Verzweigung.

    +
    git switch exercises/cases/06
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/cases/index.html b/pr-preview/pr-238/exercises/cases/index.html new file mode 100644 index 0000000000..67e4597c77 --- /dev/null +++ b/pr-preview/pr-238/exercises/cases/index.html @@ -0,0 +1,42 @@ +Verzweigungen | Programmieren mit Java

    Verzweigungen

    Übungsaufgaben

    + +
    +

    Übungsaufgaben von tutego.de

    + +

    Übungsaufgaben der Uni Koblenz-Landau

    +
      +
    • Übungsaufgabe B1
    • +
    • Übungsaufgabe B2
    • +
    • Übungsaufgabe B3
    • +
    • Übungsaufgabe B4
    • +
    • Übungsaufgabe B5
    • +
    +

    Übungsaufgaben der Technischen Hochschule Ulm

    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/class-diagrams/class-diagrams01/index.html b/pr-preview/pr-238/exercises/class-diagrams/class-diagrams01/index.html new file mode 100644 index 0000000000..7d034c3c0d --- /dev/null +++ b/pr-preview/pr-238/exercises/class-diagrams/class-diagrams01/index.html @@ -0,0 +1,21 @@ +ClassDiagrams01 | Programmieren mit Java

    ClassDiagrams01

      +
    • Erstelle die Klasse Player anhand des abgebildeten Klassendiagramms
    • +
    • Erstelle eine ausführbare Klasse, welche ein einfaches Würfelduell zwischen 2 +Spielern simuliert: +
        +
      • Würfelwert von Spieler 1 > Würfelwert von Spieler 2: Spieler 1 gewinnt
      • +
      • Würfelwert von Spieler 1 < Würfelwert von Spieler 2: Spieler 2 gewinnt
      • +
      • Würfelwert von Spieler 1 = Würfelwert von Spieler 2: Unentschieden
      • +
      +
    • +
    • Verwende die Klasse bereitgestellte Klasse Dice.
    • +
    +

    Klassendiagramm

    + +

    Hinweis zur Klasse Player

    +

    Der Konstruktor soll den Namen initialisieren.

    +

    Konsolenausgabe

    +
    Hans würfelt eine 2
    Lisa würfelt eine 3
    Lisa gewinnt
    +

    Hinweis

    +

    Verwende die Klasse Dice aus Übungsaufgabe OO03

    +
    git switch exercises/class-diagrams/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/class-diagrams/class-diagrams02/index.html b/pr-preview/pr-238/exercises/class-diagrams/class-diagrams02/index.html new file mode 100644 index 0000000000..241dfda764 --- /dev/null +++ b/pr-preview/pr-238/exercises/class-diagrams/class-diagrams02/index.html @@ -0,0 +1,31 @@ +ClassDiagrams02 | Programmieren mit Java

    ClassDiagrams02

      +
    • Passe die Klasse Player aus Übungsaufgabe +ClassDiagrams01 anhand des abgebildeten Klassendiagramms +an und erstelle die Klasse DiceGame
    • +
    • Erstelle eine ausführbare Klasse, welche beliebig vielen Spielern ermöglicht, +abwechselnd mit 3 Würfeln zu würfeln. Für jedes gewürfelte Auge bekommt der +jeweilige Spieler einen Punkt. Ziel des Spieles ist es, so nah wie möglich an +50 Punkte heranzukommen, ohne allerdings die 50 Punkte zu überschreiten
    • +
    • Ein Spieler kann entscheiden ob er würfeln möchte oder nicht. Entscheidet sich +ein Spieler nicht mehr zu würfeln, kann er in der gesamten Runde nicht mehr +würfeln.
    • +
    • Wenn nur noch ein Spieler übrig bleibt, der nicht über 50 Punkte ist, hat +dieser automatisch gewonnen.
    • +
    +

    Klassendiagramm

    + +

    Hinweis zur Klasse Player

    +

    Passe den Konstruktor so an, dass auch weiterhin alle Attribute initialisiert +werden.

    +

    Hinweise zur Klasse DiceGame

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren
    • +
    • Die Methode void start() soll die Spieler abwechselnd einen Spielzug machen +lassen und am Ende den Sieger und den Verlierer des Spiels auf der Konsole +ausgeben
    • +
    • Die Methode void move(player: Player) soll es dem Spieler ermöglichen zu +würfeln, bzw. seinen Spielzug zu beenden
    • +
    +

    Konsolenausgabe

    +
    Hans hat aktuell 0 Punkte
    Hans, möchtest Du würfeln (true, false)?: true
    Hans hat 8 Punkte
    Hans hat insgesamt 8 Punkte

    Hans hat aktuell 43 Punkte
    Hans, möchtest Du würfeln (true, false)?: false
    Lisa hat aktuell 41 Punkte
    Lisa, möchtest Du würfeln (true, false)?: true
    Lisa hat 10 Punkte
    Lisa hat insgesamt 51 Punkte
    Lisa hat verloren
    Der Sieger heißt Hans und hat 43 Punkte
    +
    git switch exercises/class-diagrams/02
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/class-diagrams/class-diagrams03/index.html b/pr-preview/pr-238/exercises/class-diagrams/class-diagrams03/index.html new file mode 100644 index 0000000000..aad7d30171 --- /dev/null +++ b/pr-preview/pr-238/exercises/class-diagrams/class-diagrams03/index.html @@ -0,0 +1,26 @@ +ClassDiagrams03 | Programmieren mit Java

    ClassDiagrams03

      +
    • Passe die Klasse Creature aus Übungsaufgabe OO06 anhand des +abgebildeten Klassendiagramms an und Erstelle die Klasse CreatureGame
    • +
    • Erstelle eine ausführbare Klasse, welche einen Kampf zwischen zwei Kreaturen +simuliert
    • +
    +

    Klassendiagramm

    + +

    Hinweise zur Klasse Creature

    +
      +
    • Passe die Methode boolean attack(creature: Creature) so an, dass der +Rückgabewert true ist, wenn die Lebenspunkte der angegriffenen Kreatur +kleiner gleich Null sind, bzw. false, wenn nicht
    • +
    +

    Hinweise zur Klasse CreatureGame

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren
    • +
    • Die Methode void simulateFight() soll die beiden Kreaturen sich so lange +gegenseitig angreifen lassen, bis eine der Kreaturen "stirbt"
    • +
    • Die Methode boolean move(creature1: Creature, creature2: Creature) soll eine +Kreatur die andere angreifen lassen und den Rückgabewert true liefern, wenn +die angegriffene Kreatur "stirbt", bzw. false, wenn nicht
    • +
    +

    Konsolenausgabe

    +
    Runde 1: Zombie (2 - 10), Vampir (4 - 6)
    Zombie greift Vampir an und erzielt 2 Schaden
    Vampir hat noch 4 Lebenspunkte
    Vampir greift Zombie an und erzielt 4 Schaden
    Zombie hat noch 6 Lebenspunkte

    Runde 3: Zombie (2 - 2), Vampir (4 - 2)
    Zombie greift Vampir an und erzielt 2 Schaden
    Vampir wurde vernichtet
    +
    git switch exercises/class-diagrams/03
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/class-diagrams/class-diagrams04/index.html b/pr-preview/pr-238/exercises/class-diagrams/class-diagrams04/index.html new file mode 100644 index 0000000000..95be1b0f6b --- /dev/null +++ b/pr-preview/pr-238/exercises/class-diagrams/class-diagrams04/index.html @@ -0,0 +1,41 @@ +ClassDiagrams04 | Programmieren mit Java

    ClassDiagrams04

      +
    • Erstelle die Klassen Company, Employee und Person anhand des +abgebildeten Klassendiagramms
    • +
    • Erstelle eine ausführbare Klasse, welche ein Unternehmen mit mehreren +Mitarbeitern erzeugt und auf der Konsole ausgibt
    • +
    +

    Klassendiagramm

    + +

    Hinweis zur Klasse Person

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren
    • +
    • Die Methode String getName() soll den Namen der Person zurückgeben
    • +
    +

    Hinweise zur Klasse Employee

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren
    • +
    • Die Methode int getEmployeeId() soll die Id des Mitarbeiters zurückgeben
    • +
    • Die Methode String getName()` soll den Namen des Mitarbeiters zurückgeben
    • +
    • Die Methode void setSalaryInEuro(salaryInEuro: int) soll das Gehalt des +Mitarbeiters festlegen
    • +
    • Die Methode int getSalaryInEuro() soll das Gehalt des Mitarbeiters +zurückgeben
    • +
    • Die Methode String toString() soll alle Attribute in der Form +Mitarbeiternummer - Name - Gehalt zurückgeben
    • +
    +

    Hinweise zur Klasse Company

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren
    • +
    • Die Methode String getName() soll den Namen der Firma zurückgeben
    • +
    • Die Methode ArrayList<Employee> getEmployees() soll die Mitarbeiterliste +zurückgeben
    • +
    • Die Methode int getNumberOfEmployees() soll die Anzahl der Mitarbeiter +zurückgeben
    • +
    • Die Methode void addEmployee(employee: Employee) soll den eingehenden +Mitarbeiter der Mitarbeiterliste hinzufügen
    • +
    • Die Methode String toString() soll alle Attribute in der Form Firmenname +(Mitarbeiteranzahl)\nMitarbeiter\n... zurückgeben
    • +
    +

    Konsolenausgabe

    +
    Maier GmbH (5 Mitarbeiter)
    1 - Max Schmid - 50000€
    2 - Hans Müller - 75000€
    3 - Lisa Meier - 40000€
    4 - Peter Schneider - 55000€
    5 - Miriam Albers - 90000€
    +
    git switch exercises/class-diagrams/04
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/class-diagrams/class-diagrams05/index.html b/pr-preview/pr-238/exercises/class-diagrams/class-diagrams05/index.html new file mode 100644 index 0000000000..d03e83791c --- /dev/null +++ b/pr-preview/pr-238/exercises/class-diagrams/class-diagrams05/index.html @@ -0,0 +1,19 @@ +ClassDiagrams05 | Programmieren mit Java

    ClassDiagrams05

      +
    • Erstelle die Aufzählungen SkatCardColor und SkatCardValue sowie die +Klassen SkatCard und SkatCardDeck anhand des abgebildeten Klassendiagramms
    • +
    • Erstelle eine ausführbare Klasse, welche ein Skatblatt erzeugt, mischt und auf +der Konsole ausgibt
    • +
    +

    Klassendiagramm

    + +

    Hinweise zur Klasse SkatCardDeck

    +
      +
    • Der Konstruktor soll ein Skatblatt, bestehend aus 32 Karten, erzeugen
    • +
    • Die Methode void shuffleSkatCards() soll das Skatblatt mischen
    • +
    +

    Konsolenausgabe

    +
    Kreuz König
    Pik 10
    Kreuz 9
    Pik 9
    Kreuz Bube
    Pik Ass
    Herz Bube
    Karo Bube
    Pik 8
    Karo Dame

    +

    Hinweis

    +

    Die statische Methode T[] values() einer Aufzählung gibt alle +Aufzählungskonstanten der Aufzählung als Feld zurück.

    +
    git switch exercises/class-diagrams/05
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/class-diagrams/index.html b/pr-preview/pr-238/exercises/class-diagrams/index.html new file mode 100644 index 0000000000..e02d37eff3 --- /dev/null +++ b/pr-preview/pr-238/exercises/class-diagrams/index.html @@ -0,0 +1,72 @@ +Klassendiagramme | Programmieren mit Java

    Klassendiagramme

    Übungsaufgaben

    + +
    +

    Übungsaufgaben von tutego.de

    + +

    Übungsaufgaben von ntu.edu.sg

    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/class-structure/class-structure01/index.html b/pr-preview/pr-238/exercises/class-structure/class-structure01/index.html new file mode 100644 index 0000000000..e82a0d81a7 --- /dev/null +++ b/pr-preview/pr-238/exercises/class-structure/class-structure01/index.html @@ -0,0 +1,4 @@ +ClassStructure01 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/class-structure/index.html b/pr-preview/pr-238/exercises/class-structure/index.html new file mode 100644 index 0000000000..45ea53f0d9 --- /dev/null +++ b/pr-preview/pr-238/exercises/class-structure/index.html @@ -0,0 +1,12 @@ +Aufbau einer Java-Klasse | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/coding/index.html b/pr-preview/pr-238/exercises/coding/index.html new file mode 100644 index 0000000000..07c75f1be3 --- /dev/null +++ b/pr-preview/pr-238/exercises/coding/index.html @@ -0,0 +1,5 @@ +Programmieren | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/comparators/comparators01/index.html b/pr-preview/pr-238/exercises/comparators/comparators01/index.html new file mode 100644 index 0000000000..301da616ad --- /dev/null +++ b/pr-preview/pr-238/exercises/comparators/comparators01/index.html @@ -0,0 +1,19 @@ +Comparators01 | Programmieren mit Java

    Comparators01

      +
    • Erstelle die Klasse Coordinate anhand des abgebildeten Klassendiagramms
    • +
    • Erstelle eine ausführbare Klasse, welche eine Koordinatenliste mit mehreren +Koordinaten erzeugt, diese sortiert und anschließend auf der Konsole ausgibt
    • +
    +

    Klassendiagramm

    + +

    Hinweise zur Klasse Coordinate

    +
      +
    • Die Methode double getDistanceToOriginPoint() soll die Distanz der +Koordinate zum Nullpunkt zurückgeben
    • +
    • Die Methode int compareTo(other: Coordinate) soll so implementiert werden, +dass Koordinaten aufsteigend nach ihrem Abstand zum Nullpunkt sortiert werden +können
    • +
    +

    Hinweis

    +

    Die statische Methode double hypot(x: double, y: double) der Klasse Math +berechnet die Hypotenuse zum eingehenden X- und Y-Wert.

    +
    git switch exercises/comparators/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/comparators/comparators02/index.html b/pr-preview/pr-238/exercises/comparators/comparators02/index.html new file mode 100644 index 0000000000..d9b6ea424a --- /dev/null +++ b/pr-preview/pr-238/exercises/comparators/comparators02/index.html @@ -0,0 +1,14 @@ +Comparators02 | Programmieren mit Java

    Comparators02

      +
    • Erstelle die Klasse CoordinateByDistanceToOriginPointComparator anhand des +abgebildeten Klassendiagramms
    • +
    • Passe die ausführbare Klasse aus Übungsaufgabe Comparators01 +so an, dass die Koordinatenliste mit Hilfe der Klasse +CoordinateByDistanceToOriginPointComparator sortiert wird
    • +
    +

    Klassendiagramm

    + +

    Hinweis zur Klasse CoordinateByDistanceToOriginPointComparator

    +

    Die Methode int compare(coordinate1: Coordinate, coordinate2: Coordinate) soll +so implementiert werden, dass Koordinaten abfsteigend nach ihrem Abstand zum +Nullpunkt sortiert werden können

    +
    git switch exercises/comparators/02
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/comparators/index.html b/pr-preview/pr-238/exercises/comparators/index.html new file mode 100644 index 0000000000..6c9bb4e1f7 --- /dev/null +++ b/pr-preview/pr-238/exercises/comparators/index.html @@ -0,0 +1,12 @@ +Komparatoren | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/console-applications/console-applications01/index.html b/pr-preview/pr-238/exercises/console-applications/console-applications01/index.html new file mode 100644 index 0000000000..5bedc6eaba --- /dev/null +++ b/pr-preview/pr-238/exercises/console-applications/console-applications01/index.html @@ -0,0 +1,5 @@ +ConsoleApplications01 | Programmieren mit Java

    ConsoleApplications01

    Erstelle eine ausführbare Klasse, welche zwei Ganzzahlen von der Konsole +einliest, addiert und das Ergebnis auf der Konsole ausgibt.

    +

    Konsolenausgabe

    +
    Gib bitte eine ganze Zahl ein: 4
    Gib bitte eine weitere ganze Zahl ein: 5
    Ergebnis: 4 + 5 = 9
    +
    git switch exercises/console-applications/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/console-applications/console-applications02/index.html b/pr-preview/pr-238/exercises/console-applications/console-applications02/index.html new file mode 100644 index 0000000000..b43675eef9 --- /dev/null +++ b/pr-preview/pr-238/exercises/console-applications/console-applications02/index.html @@ -0,0 +1,6 @@ +ConsoleApplications02 | Programmieren mit Java

    ConsoleApplications02

    Erstelle eine ausführbare Klasse, welche zwei Ganzzahlen von der Konsole +einliest, den prozentualen Anteil der ersten von der zweiten Ganzzahl berechnet +und das Ergebnis auf der Konsole ausgibt.

    +

    Konsolenausgabe

    +
    Gib bitte eine ganze Zahl ein: 5
    Gib bitte eine weitere ganze Zahl ein: 50
    Eregbnis: 5 von 50 sind 10,00%
    +
    git switch exercises/console-applications/02
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/console-applications/index.html b/pr-preview/pr-238/exercises/console-applications/index.html new file mode 100644 index 0000000000..e8a39922e4 --- /dev/null +++ b/pr-preview/pr-238/exercises/console-applications/index.html @@ -0,0 +1,14 @@ +Konsolenanwendungen | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/data-objects/data-objects01/index.html b/pr-preview/pr-238/exercises/data-objects/data-objects01/index.html new file mode 100644 index 0000000000..20e16d96d4 --- /dev/null +++ b/pr-preview/pr-238/exercises/data-objects/data-objects01/index.html @@ -0,0 +1,6 @@ +DataObjects01 | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/data-objects/data-objects02/index.html b/pr-preview/pr-238/exercises/data-objects/data-objects02/index.html new file mode 100644 index 0000000000..53afcb23af --- /dev/null +++ b/pr-preview/pr-238/exercises/data-objects/data-objects02/index.html @@ -0,0 +1,4 @@ +DataObjects02 | Programmieren mit Java

    DataObjects02

    Welche Ausgabe erwartest Du nach Ablauf des abgebildeten Codings?

    +

    Coding

    +
    int a = 101;
    int b = 0b101;
    int c = 0x101;
    int d = 0xAFFE;
    int e = 230;
    byte f = (byte) e;

    System.out.println("a: " + a);
    System.out.println("b: " + b);
    System.out.println("c: " + c);
    System.out.println("d: " + d);
    System.out.println("f: " + f);
    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/data-objects/index.html b/pr-preview/pr-238/exercises/data-objects/index.html new file mode 100644 index 0000000000..325f821305 --- /dev/null +++ b/pr-preview/pr-238/exercises/data-objects/index.html @@ -0,0 +1,14 @@ +Datenobjekte | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/enumerations/enumerations01/index.html b/pr-preview/pr-238/exercises/enumerations/enumerations01/index.html new file mode 100644 index 0000000000..f1a0c5bfb2 --- /dev/null +++ b/pr-preview/pr-238/exercises/enumerations/enumerations01/index.html @@ -0,0 +1,19 @@ +Enumerations01 | Programmieren mit Java

    Enumerations01

      +
    • Erstelle die Aufzählung Engine mit Hilfe der abgebildeten Informationen
    • +
    • Passe die Klasse Vehicle aus Übungsaufgabe OO07 mit Hilfe der +abgebildeten Informationen an
    • +
    • Passe die ausführbare Klasse aus Übungsaufgabe OO07 so an, dass +sie fehlerfrei ausgeführt werden kann
    • +
    • Gebe alle Vehicles in der Konsole aus
    • +
    +

    Aufzählungskonstanten der Klasse Engine

    +
    KonstanteWerte
    DIESELDiesel
    PETROLBenzin
    GASAutogas
    ELECTROElektro
    +

    Attribute der Klasse Engine

    +
    AttributDatentypSichtbarkeitVeränderlichkeitLevel
    descriptionStringprivateunveränderlichnicht-statisch
    +

    Methoden der Klasse Engine

    +
    MethodeRückgabewertSichtbarkeitLevelBeschreibung
    Engine(description: String)privatenicht-statischFestlegen der Motorenbeschreibung
    getDescription()Stringpublicnicht-statischRückgabe der Motorenbeschreibung
    +

    Attribute der Klasse Vehicle

    +
    AttributDatentypSichtbarkeitVeränderlichkeitLevel
    makeStringprivateunveränderlichnicht-statisch
    modelStringprivateunveränderlichnicht-statisch
    speedInKmhdoubleprivateveränderlichnicht-statisch
    engineEngineprivateunveränderlichnicht-statisch
    numberOfVehiclesintprivateveränderlichstatisch
    +

    Methoden der Klasse Vehicle

    +
    MethodeRückgabewertSichtbarkeitLevelBeschreibung
    Vehicle(make: String, model: String, engine: Engine)voidpublicnicht-statischFestlegen des Herstellers, des Modells und des Motors
    getMake()Stringpublicnicht-statischRückgabe des Herstellers
    getModel()Stringpublicnicht-statischRückgabe des Modells
    getSpeedInKmh()doublepublicnicht-statischRückgabe der Geschwindigkeit
    getEngine()Enginepublicnicht-statischRückgabe des Motors
    accelerate(valueInKmh: int)voidpublicnicht-statischErhöhung der Geschwindigkeit um den eingehenden Wert sowie eine passende Konsolenausgabe
    brake(valueInKmh: int)voidpublicnicht-statischReduzierung der Geschwindigkeit um den eingehenden Wert sowie eine passende Konsolenausgabe
    toString()Stringpublicnicht-statischRückgabe: Hersteller Modell (Motorenbeschreibung)
    getNumberOfVehicles()intpublicstatischRückgabe der Anzahl Fahrzeuge
    +
    git switch exercises/enums/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/enumerations/index.html b/pr-preview/pr-238/exercises/enumerations/index.html new file mode 100644 index 0000000000..209183ea6b --- /dev/null +++ b/pr-preview/pr-238/exercises/enumerations/index.html @@ -0,0 +1,10 @@ +Aufzählungen (Enumerations) | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/exceptions/exceptions01/index.html b/pr-preview/pr-238/exercises/exceptions/exceptions01/index.html new file mode 100644 index 0000000000..73837fbaff --- /dev/null +++ b/pr-preview/pr-238/exercises/exceptions/exceptions01/index.html @@ -0,0 +1,20 @@ +Exceptions01 | Programmieren mit Java

    Exceptions01

      +
    • Erstelle die Ausnahmenklasse InvalidValueException anhand des abgebildeten +Klassendiagramms
    • +
    • Passe die Klasse Vehicle anhand der Hinweise an
    • +
    • Passe die ausführbare Klasse aus Übungsaufgabe +Interfaces01 so an, dass ein Auto mit einem +ungültigen Wert beschleunigt wird und in der Konsole ausgegeben wird, dass der +Wert größer als 0 sein muss.
    • +
    + +

    Hinweise zur Klasse Vehicle

    +
      +
    • Die Methode void accelerate(valueInKmh: int) soll den eingehenden Wert +überprüfen. Ist der eingehende Wert kleiner als 0 soll die Ausnahme +InvalidValueException ausgelöst werden
    • +
    • Die Methode void brake(valueInKmh: int) soll den eingehenden Wert +überprüfen. Ist der eingehende Wert kleiner als 0 soll die Ausnahme +InvalidValueException ausgelöst werden
    • +
    +
    git switch exercises/exceptions/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/exceptions/exceptions02/index.html b/pr-preview/pr-238/exercises/exceptions/exceptions02/index.html new file mode 100644 index 0000000000..144feb6a23 --- /dev/null +++ b/pr-preview/pr-238/exercises/exceptions/exceptions02/index.html @@ -0,0 +1,29 @@ +Exceptions02 | Programmieren mit Java

    Exceptions02

      +
    • Erstelle die Ausnahmenklasse BarrelOverflowException sowie die Klasse +Barrel anhand des abgebildeten Klassendiagramms
    • +
    • Erstelle eine ausführbare Klasse, welche es dem Anwender ermöglicht, ein Fass +zu erzeugen und zu befüllen
    • +
    +

    Klassendiagramm

    + +

    Hinweis zur Klasse BarrelOverflowException

    +

    Der Konstruktor soll das Attribut detailMessage initialisieren.

    +

    Hinweise zur Klasse Barrel

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren. Jedes Fass soll dabei +standardmäßig leer sein
    • +
    • Die Methode int getCapacity() soll die Kapazität des Fasses zurückgeben
    • +
    • Die Methode int getFluidLevel() soll die aktuelle Füllmenge des Fasses +zurückgeben
    • +
    • Die Methode void addFluid(value: int) soll den Füllstand um den eingehenden +Betrag erhöhen. Ist der eingehende Betrag höher als die verfügbare +Restkapazität, soll der Füllstand auf die maximale Füllmenge gesetzt und +anschließend die Ausnahme BarrelOverflowException ausgelöst werden. Ist der +eingehende Betrag kleiner oder gleich groß wie die verfügbare Restkapazität, +soll der Füllstand um die eingehende Menge erhöht werden.
    • +
    • Die Methode String toString() soll alle Attribute in der Form Barrel +[capacity=[maximale Füllmenge]] [fluidlevel=[Füllstand]] zurückgeben
    • +
    +

    Konsolenausgabe

    +
    Gib bitte die Kapazität des Fasses ein: 100
    Gib bitte die Menge der hinzuzufügenden Flüssigkeit ein: 30
    Füllstand: 30
    Gib bitte die Menge der hinzuzufügenden Flüssigkeit ein: 50
    Füllstand: 80
    Gib bitte die Menge der hinzuzufügenden Flüssigkeit ein: 40
    Füllstand: 100
    Das war der Tropfen, der das Fass zum Überlaufen gebracht hat
    +
    git switch exercises/exceptions/02
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/exceptions/exceptions03/index.html b/pr-preview/pr-238/exercises/exceptions/exceptions03/index.html new file mode 100644 index 0000000000..b50a04aea6 --- /dev/null +++ b/pr-preview/pr-238/exercises/exceptions/exceptions03/index.html @@ -0,0 +1,17 @@ +Exceptions03 | Programmieren mit Java

    Exceptions03

      +
    • Erstelle die Ausnhamenklassen SalaryIncreaseTooHighException sowie +SalaryDecreaseException anhand des abgebildeten Klassendiagramms
    • +
    • Passe die Klasse Employee anhand der Hinweise an
    • +
    • Passe die ausführbare Klasse aus Übungsaufgabe +ClassDiagrams04 so an, dass ein oder +mehrere Mitarbeiter eine Gehaltserhöhung bekommen. Behandle alle möglichen +Ausnahmen und gebe passende Fehlermeldungen in der Konsole aus.
    • +
    + +

    Hinweis zur Klasse Employee

    +

    Die Methode void setSalaryInEuro(salaryInEuro: int) soll das Gehalt eines +Mitarbeiters festlegen. Ist das eingehende Gehalt mehr als 10% des bestehenden +Gehalts, soll die Ausnhame SalaryIncreaseTooHighException ausgelöst werden. +Ist das eingehende Gehalt weniger als das bestehende Gehalt, soll die Ausnhame +SalaryDecreaseException ausgelöst werden.

    +
    git switch exercises/exceptions/03
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/exceptions/index.html b/pr-preview/pr-238/exercises/exceptions/index.html new file mode 100644 index 0000000000..412a245cfc --- /dev/null +++ b/pr-preview/pr-238/exercises/exceptions/index.html @@ -0,0 +1,15 @@ +Ausnahmen (Exceptions) | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/generics/generics01/index.html b/pr-preview/pr-238/exercises/generics/generics01/index.html new file mode 100644 index 0000000000..f144f6bde4 --- /dev/null +++ b/pr-preview/pr-238/exercises/generics/generics01/index.html @@ -0,0 +1,19 @@ +Generics01 | Programmieren mit Java

    Generics01

      +
    • Erstelle die Klassen Bottle, BeerBottle, WineBottle und Crate anhand +des abgebildeten Klassendiagramms
    • +
    • Erstelle eine ausführbare Klasse, welche eine Getränkiste sowie mehrere +Flaschen erzeugt und die Flaschen in die Getränkekiste stellt
    • +
    +

    Klassendiagramm

    + +

    Hinweis zur Klasse BeerBottle

    +

    Die Methode void chugALug() soll den Text "Ex und Hopp" auf der Konsole +ausgeben.

    +

    Hinweise zur Klasse Crate

    +
      +
    • Die Methode void insertBottle(bottle: Bottle, box: int) soll eine Flasche in +eine der 6 Getränkefächer einfügen
    • +
    • Die Methode Bottle takeBottle(box: int) soll die Flasche des entsprechenden +Getränkefachs zurückgeben
    • +
    +
    git switch exercises/generics/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/generics/generics02/index.html b/pr-preview/pr-238/exercises/generics/generics02/index.html new file mode 100644 index 0000000000..0151e83e1b --- /dev/null +++ b/pr-preview/pr-238/exercises/generics/generics02/index.html @@ -0,0 +1,9 @@ +Generics02 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/generics/generics03/index.html b/pr-preview/pr-238/exercises/generics/generics03/index.html new file mode 100644 index 0000000000..a86833d221 --- /dev/null +++ b/pr-preview/pr-238/exercises/generics/generics03/index.html @@ -0,0 +1,19 @@ +Generics03 | Programmieren mit Java

    Generics03

      +
    • Erstelle die Klassen Pair, Pupil und SchoolClass anhand des abgebildeten +Klassendiagramms
    • +
    • Erstelle eine ausführbare Klasse, welche eine Schulklasse mit mehreren +Schülern erzeugt und die Schülerpaare ausgibt
    • +
    +

    Klassendiagramm

    + +

    Hinweise zur Klasse SchoolClass

    +
      +
    • Die Methode void addPupil(pupil: Pupil) soll der Schulklasse den eingehenden +Schüler hinzufügen
    • +
    • Die Methode List<Pair<Pupil>> getPairs() soll aus den Schülern der +Schulklasse zufällige Paare bilden und zurückgeben. Bei einer ungeraden Anzahl +an Schülern soll der verbleibende Schüler mit dem Wert null gepaart werden
    • +
    +

    Konsolenausgabe

    +
    Schüler:
    Franziska
    Fritz
    Hans
    Jennifer
    Lisa
    Max
    Peter

    Paare:
    Jennifer - Franziska
    Fritz - Lisa
    Max - Hans
    Peter - null
    +
    git switch exercises/generics/03
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/generics/generics04/index.html b/pr-preview/pr-238/exercises/generics/generics04/index.html new file mode 100644 index 0000000000..2417c98818 --- /dev/null +++ b/pr-preview/pr-238/exercises/generics/generics04/index.html @@ -0,0 +1,18 @@ +Generics04 | Programmieren mit Java

    Generics04

      +
    • Erstelle die Klassen Club und Tournament anhand des abgebildeten +Klassendiagramms
    • +
    • Erstelle eine ausführbare Klasse, welche ein Turnier mit mehreren Vereinen +erzeugt und die Paarungen ausgibt
    • +
    +

    Klassendiagramm

    + +

    Hinweise zur Klasse Tournament

    +
      +
    • Die Methode void addClub(club: Club) soll dem Turnier den eingehenden Verein +hinzufügen
    • +
    • Die Methode List<Pair<Club>> pairs() soll aus den Vereinen des Turniers +Paarungen für Hin- und Rückspiele bilden und zurückgeben
    • +
    +

    Konsolenausgabe

    +
    SC Freiburg - Bayern Muenchen
    SC Freiburg - Borussia Dortmund
    Bayern Muenchen - SC Freiburg
    Bayern Muenchen - Borussia Dortmund
    Borussia Dortmund - SC Freiburg
    Borussia Dortmund - Bayern Muenchen
    +
    git switch exercises/generics/04
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/generics/index.html b/pr-preview/pr-238/exercises/generics/index.html new file mode 100644 index 0000000000..6ed1c96005 --- /dev/null +++ b/pr-preview/pr-238/exercises/generics/index.html @@ -0,0 +1,3 @@ +Generische Programmierung | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/git/git01/index.html b/pr-preview/pr-238/exercises/git/git01/index.html new file mode 100644 index 0000000000..a1f7a57cac --- /dev/null +++ b/pr-preview/pr-238/exercises/git/git01/index.html @@ -0,0 +1,23 @@ +Git01 | Programmieren mit Java

    Git01

      +
    • Registriere Dich bei GitHub
    • +
    • Melde Dich bei GitHub an
    • +
    • Führe die Funktion New aus
    • +
    • Gib die folgenden Informationen ein, markiere die Option Add a README file +und betätige die Drucktaste Create repository +
        +
      • Repository name: Der Name Deines remote Repositorys (z.B. Java)
      • +
      +
    • +
    • Führe die Funktion Profil - Settings aus
    • +
    • Führe die Funktion Developer Settings aus
    • +
    • Führe die Funktion Personal access tokens - Tokens (classic) aus
    • +
    • Führe die Funktion Generate new token - Generate new token (classic) aus
    • +
    • Gib die folgenden Informationen ein, Markiere die Option repo und betätige +die Drucktaste Generate token +
        +
      • Note: Deine Beschreibung (z.B. Java)
      • +
      • Expiration: No expiration
      • +
      +
    • +
    • Kopiere das erstellte Token und speichere es irgendwo ab
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/git/git02/index.html b/pr-preview/pr-238/exercises/git/git02/index.html new file mode 100644 index 0000000000..f742070ead --- /dev/null +++ b/pr-preview/pr-238/exercises/git/git02/index.html @@ -0,0 +1,10 @@ +Git02 | Programmieren mit Java

    Git02

      +
    • Installiere Git
    • +
    • Starte die Kommandozeile (z.B. Windows PowerShell)
    • +
    • Führe den Befehl git config --global user.name "[Dein Name]" aus, um den +Benutzernamen festzulegen
    • +
    • Führe den Befehl git config --global user.email "[Deine E-Mail-Adresse]" +aus, um die E-Mail-Adresse festzulegen
    • +
    +

    Beispielhafte Konsolenausgabe

    +
    PS C:\Users\Schmid> git config --global user.name "Peter Schmid"
    PS C:\Users\Schmid> git config --global user.email "peter.schmid@gmail.com"
    PS C:\Users\Schmid>
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/git/git03/index.html b/pr-preview/pr-238/exercises/git/git03/index.html new file mode 100644 index 0000000000..1dafa20fb7 --- /dev/null +++ b/pr-preview/pr-238/exercises/git/git03/index.html @@ -0,0 +1,17 @@ +Git03 | Programmieren mit Java

    Git03

      +
    • Starte die Kommandozeile (z.B. Windows PowerShell)
    • +
    • Führe den Befehl +git init "[Pfad/Der Name Deines ersten lokalen Repositorys]" aus, um ein +lokales Repository zu erstellen
    • +
    • Führe den Befehl cd "[Pfad/Der Name Deines ersten lokalen Repositorys]" aus, +um zum Arbeitsbereich Deines ersten lokalen Repositorys zu wechseln
    • +
    • Führe den Befehl +git remote add origin "https://github.com/[Dein GitHub Benutzername]/[Der Name Deines remote Repositorys]" +aus, um eine Verbindung zwischen dem lokalen Repository und dem remote +Repository herzustellen
    • +
    • Führe den Befehl git pull origin main aus, um den Arbeitsbereich zu +aktualisieren
    • +
    • Führe den Befehl git switch main aus, um zum Branch main zu wechseln
    • +
    +

    Beispielhafte Konsolenausgabe

    +
    PS C:\Users\Schmid> git init "C:/Users/Schmid/git/JavaA"
    Initialized empty Git repository in C:/Users/Schmid/git/JavaA/.git/
    PS C:\Users\Schmid> cd "C:/Users/Schmid/git/JavaA"
    PS C:\Users\Schmid\git\JavaA> git remote add origin "https://github.com/schmid/Java"
    PS C:\Users\Schmid\git\JavaA> git pull origin main
    remote: Enumerating objects: 10, done.
    remote: Counting objects: 100% (10/10), done.
    remote: Compressing objects: 100% (6/6), done.
    remote: Total 10 (delta 2), reused 5 (delta 1), pack-reused 0
    Unpacking objects: 100% (10/10), 2.28 KiB | 44.00 KiB/s, done.
    From https://github.com/appenmaier/Java
    * branch main -> FETCH_HEAD
    * [new branch] main -> origin/main
    PS C:\Users\Schmid\git\JavaA> git switch main
    Switched to a new branch 'main'
    branch 'main' set up to track 'origin/main'.
    PS C:\Users\Schmid\git\JavaA>
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/git/git04/index.html b/pr-preview/pr-238/exercises/git/git04/index.html new file mode 100644 index 0000000000..533ca1b1e3 --- /dev/null +++ b/pr-preview/pr-238/exercises/git/git04/index.html @@ -0,0 +1,8 @@ +Git04 | Programmieren mit Java

    Git04

      +
    • Starte die Kommandozeile (z.B. Windows PowerShell)
    • +
    • Führe den Befehl +git clone "https://github.com/[Dein GitHub Benutzername]/[Der Name Deines remote Repositorys]" "[Pfad/Der Name Deines zweiten lokalen Repositorys]" +aus, um das remote Repository zu klonen
    • +
    +

    Beispielhafte Konsolenausgabe

    +
    PS C:\Users\Schmid> git clone "https://github.com/schmid/Java" "C:/Users/Schmid/git/JavaB"
    Cloning into 'C:/Users/Schmid/git/JavaB'...
    remote: Enumerating objects: 10, done.
    remote: Counting objects: 100% (10/10), done.
    remote: Compressing objects: 100% (6/6), done.
    remote: Total 10 (delta 2), reused 5 (delta 1), pack-reused 0
    Receiving objects: 100% (10/10), done.
    Resolving deltas: 100% (2/2), done.
    PS C:\Users\Schmid>
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/git/git05/index.html b/pr-preview/pr-238/exercises/git/git05/index.html new file mode 100644 index 0000000000..ae7a122c7b --- /dev/null +++ b/pr-preview/pr-238/exercises/git/git05/index.html @@ -0,0 +1,43 @@ +Git05 | Programmieren mit Java

    Git05

      +
    • Erstelle ein HelloWorld-Programm +
        +
      • Erstelle das Verzeichnis [Pfad/Der Name Deines ersten lokalen +Repositorys]/demos
      • +
      • Erstelle im eben erstellten Verzeichnis die Quellcode-Datei MainClass.java
      • +
      • Öffne die eben erstellte Datei, füge den abgebildeten Quellcode ein, +speichere die Änderungen und schließe die Datei wieder
      • +
      +
    • +
    • Kompiliere das HelloWorld-Programm und führe es aus +
        +
      • Starte die Kommandozeile (z.B. Windows PowerShell)
      • +
      • Führe den Befehl cd "[Pfad/Der Name Deines ersten lokalen Repositorys]" +aus, um zum Arbeitsbereich Deines ersten lokalen Repositorys zu wechseln
      • +
      • Führe den Befehl javac demos/MainClass.java aus, um die Quellcode-Datei +MainClass.java zu kompilieren
      • +
      • Führe den Befehl java demos.MainClass aus, um die Bytecode-Datei +MainClass.class auszuführen
      • +
      +
    • +
    • Aktualisiere Dein remote Repository +
        +
      • Führe den Befehl git add demos/MainClass.java aus, um das erstellte +HelloWorld-Programm zu indizieren
      • +
      • Führe den Befehl git commit -m "Add MainClass.java" aus, um das indizierte +HelloWorld-Programm zu versionieren
      • +
      • Führe den Befehl git push aus, um das remote Repository zu aktualisieren
      • +
      • Gib Deine Anmeldedaten für GitHub ein, um Dich zu authentifizieren
      • +
      +
    • +
    • Aktualisiere Dein zweites lokales Repository +
        +
      • Führe den Befehl cd "[Pfad/Der Name Deines zweiten lokalen Repositorys]" +aus, um zum Arbeitsbereich Deines zweiten lokalen Repositorys zu wechseln
      • +
      • Führe den Befehl git pull aus, um den Arbeitsbereich zu aktualisieren
      • +
      +
    • +
    +

    Quellcode

    +
    MainClass.java
    package demos;

    public class MainClass {

    public static void main(String[] args) {
    System.out.println("Hello World");
    }

    }
    +

    Beispielhafte Konsolenausgabe

    +
    PS C:\Users\Schmid> cd "C:/Users/Schmid/git/JavaA"
    PS C:\Users\Schmid\git\JavaA> javac demos/MainClass.java
    PS C:\Users\Schmid\git\JavaA> java demos.MainClass
    Hello World
    PS C:\Users\Schmid\git\JavaA> git add demos/MainClass.java
    PS C:\Users\Schmid\git\JavaA> git commit -m "Add MainClass.java"
    [main 26a0b8f] Add MainClass.java
    1 file changed, 8 insertions(+)
    create mode 100644 demos/MainClass.java
    PS C:\Users\Schmid\git\JavaA> git push
    Enumerating objects: 5, done.
    Counting objects: 100% (5/5), done.
    Delta compression using up to 8 threads
    Compressing objects: 100% (3/3), done.
    Writing objects: 100% (4/4), 453 bytes | 453.00 KiB/s, done.
    Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
    To https://github.com/schmid/Java
    862fc37..26a0b8f main -> main
    PS C:\Users\Schmid\git\JavaA> cd "C:/Users/Schmid/git/JavaB"
    PS C:\Users\Schmid\git\JavaB> git pull
    remote: Enumerating objects: 5, done.
    remote: Counting objects: 100% (5/5), done.
    remote: Compressing objects: 100% (3/3), done.
    remote: Total 4 (delta 0), reused 4 (delta 0), pack-reused 0
    Unpacking objects: 100% (4/4), 433 bytes | 61.00 KiB/s, done.
    From https://github.com/schmid/Java
    862fc37..26a0b8f main -> origin/main
    Updating 862fc37..26a0b8f
    Fast-forward
    demos/MainClass.java | 8 ++++++++
    1 file changed, 8 insertions(+)
    create mode 100644 demos/MainClass.java
    PS C:\Users\Schmid\git\JavaB>
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/git/index.html b/pr-preview/pr-238/exercises/git/index.html new file mode 100644 index 0000000000..c3af28dcfb --- /dev/null +++ b/pr-preview/pr-238/exercises/git/index.html @@ -0,0 +1,3 @@ +Git | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/hashing/hashing01/index.html b/pr-preview/pr-238/exercises/hashing/hashing01/index.html new file mode 100644 index 0000000000..b147b3054d --- /dev/null +++ b/pr-preview/pr-238/exercises/hashing/hashing01/index.html @@ -0,0 +1,4 @@ +Hashing01 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/hashing/hashing02/index.html b/pr-preview/pr-238/exercises/hashing/hashing02/index.html new file mode 100644 index 0000000000..b5d46a3a54 --- /dev/null +++ b/pr-preview/pr-238/exercises/hashing/hashing02/index.html @@ -0,0 +1,5 @@ +Hashing02 | Programmieren mit Java

    Hashing02

    Füge die Zahlen 26, 12, 7, 54, 14 und 9 in ein Feld der Länge 8 unter Verwendung +der Divisionsrestmethode ohne Sondierung, unter Verwendung der multiplikativen +Methode (𝐴 = 0,62) mit linearer Sondierung (Intervallschritt = 2) und unter +Verwendung der multiplikativen Methode (𝐴 = 0,62) ohne Sondierung ein.

    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/hashing/index.html b/pr-preview/pr-238/exercises/hashing/index.html new file mode 100644 index 0000000000..92f4885e3c --- /dev/null +++ b/pr-preview/pr-238/exercises/hashing/index.html @@ -0,0 +1,3 @@ +Schlüsseltransformationen (Hashing) | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/inner-classes/index.html b/pr-preview/pr-238/exercises/inner-classes/index.html new file mode 100644 index 0000000000..5d19b5b2d0 --- /dev/null +++ b/pr-preview/pr-238/exercises/inner-classes/index.html @@ -0,0 +1,26 @@ +Innere Klassen (Inner Classes) | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/inner-classes/inner-classes01/index.html b/pr-preview/pr-238/exercises/inner-classes/inner-classes01/index.html new file mode 100644 index 0000000000..b3e81ce3e1 --- /dev/null +++ b/pr-preview/pr-238/exercises/inner-classes/inner-classes01/index.html @@ -0,0 +1,11 @@ +InnerClasses01 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/inner-classes/inner-classes02/index.html b/pr-preview/pr-238/exercises/inner-classes/inner-classes02/index.html new file mode 100644 index 0000000000..5d1b2bf700 --- /dev/null +++ b/pr-preview/pr-238/exercises/inner-classes/inner-classes02/index.html @@ -0,0 +1,11 @@ +InnerClasses02 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/inner-classes/inner-classes03/index.html b/pr-preview/pr-238/exercises/inner-classes/inner-classes03/index.html new file mode 100644 index 0000000000..5e223a019c --- /dev/null +++ b/pr-preview/pr-238/exercises/inner-classes/inner-classes03/index.html @@ -0,0 +1,4 @@ +InnerClasses03 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/inner-classes/inner-classes04/index.html b/pr-preview/pr-238/exercises/inner-classes/inner-classes04/index.html new file mode 100644 index 0000000000..9d8e48bbc6 --- /dev/null +++ b/pr-preview/pr-238/exercises/inner-classes/inner-classes04/index.html @@ -0,0 +1,4 @@ +InnerClasses04 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/interfaces/index.html b/pr-preview/pr-238/exercises/interfaces/index.html new file mode 100644 index 0000000000..5e7adb7858 --- /dev/null +++ b/pr-preview/pr-238/exercises/interfaces/index.html @@ -0,0 +1,20 @@ +Schnittstellen (Interfaces) | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/interfaces/interfaces01/index.html b/pr-preview/pr-238/exercises/interfaces/interfaces01/index.html new file mode 100644 index 0000000000..61b1b3ab69 --- /dev/null +++ b/pr-preview/pr-238/exercises/interfaces/interfaces01/index.html @@ -0,0 +1,21 @@ +Interfaces01 | Programmieren mit Java

    Interfaces01

      +
    • Passe die Klasse Rental aus Übungsaufgabe +AbstractAndFinal01 anhand des +abgebildeten Klassendiagramms an und erstelle die Klasse TravelAgency sowie +die Schnittstelle Partner
    • +
    • Passe die ausführbare Klasse aus Übungsaufgabe +AbstractAndFinal01 so an, dass +ein Reisebüro erzeugt wird, dass diesem die Autovermietung hinzugefügt wird +und dass alle Attribute des Reisebüros ausgegeben werden
    • +
    +

    Klassendiagramm

    + +

    Hinweise zur Klasse TravelAgency

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren
    • +
    • Die Methode void addPartner(partner: Partner) soll dem Reisebüro einen +Partner hinzufügen
    • +
    +

    Konsolenausgabe

    +
    Reisebüro Schmidt
    Unsere Partner:
    Fahrzeugvermietung Müller
    Unsere Fahrzeuge:
    Porsche 911 (Elektro, 2 Sitzplätze)
    MAN TGX (Diesel, 20t)
    Opel Zafira Life (Diesel, 7 Sitzplätze)
    +
    git switch exercises/interfaces/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/io-streams/index.html b/pr-preview/pr-238/exercises/io-streams/index.html new file mode 100644 index 0000000000..8ef011a2db --- /dev/null +++ b/pr-preview/pr-238/exercises/io-streams/index.html @@ -0,0 +1,3 @@ +Datenströme (IO-Streams) | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/io-streams/io-streams01/index.html b/pr-preview/pr-238/exercises/io-streams/io-streams01/index.html new file mode 100644 index 0000000000..81ec20dd35 --- /dev/null +++ b/pr-preview/pr-238/exercises/io-streams/io-streams01/index.html @@ -0,0 +1,10 @@ +IOStreams01 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/io-streams/io-streams02/index.html b/pr-preview/pr-238/exercises/io-streams/io-streams02/index.html new file mode 100644 index 0000000000..98ac3160c4 --- /dev/null +++ b/pr-preview/pr-238/exercises/io-streams/io-streams02/index.html @@ -0,0 +1,9 @@ +IOStreams02 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/java-api/index.html b/pr-preview/pr-238/exercises/java-api/index.html new file mode 100644 index 0000000000..910ee4fdeb --- /dev/null +++ b/pr-preview/pr-238/exercises/java-api/index.html @@ -0,0 +1,3 @@ +Die Java API | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/java-api/java-api01/index.html b/pr-preview/pr-238/exercises/java-api/java-api01/index.html new file mode 100644 index 0000000000..7b18349665 --- /dev/null +++ b/pr-preview/pr-238/exercises/java-api/java-api01/index.html @@ -0,0 +1,8 @@ +JavaAPI01 | Programmieren mit Java

    JavaAPI01

    Erstelle eine ausführbare Klasse, welche den Sinus von 0.0 bis 1.0 in +Zehnerschritten tabellarisch auf der Konsole ausgibt.

    +

    Konsolenausgabe

    +
    x = 0.0, sin(x) = 0.0
    x = 0.1, sin(x) = 0.1
    x = 0.2, sin(x) = 0.2
    x = 0.3, sin(x) = 0.3
    x = 0.4, sin(x) = 0.4
    x = 0.5, sin(x) = 0.5
    x = 0.6, sin(x) = 0.6
    x = 0.7, sin(x) = 0.6
    x = 0.8, sin(x) = 0.7
    x = 0.9, sin(x) = 0.8
    x = 1.0, sin(x) = 0.8
    +

    Hinweis

    +

    Die Klasse Math stellt für die Sinus-Berechnung eine passende Methode zur +Verfügung.

    +
    git switch exercises/java-api/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/java-api/java-api02/index.html b/pr-preview/pr-238/exercises/java-api/java-api02/index.html new file mode 100644 index 0000000000..0b85e78961 --- /dev/null +++ b/pr-preview/pr-238/exercises/java-api/java-api02/index.html @@ -0,0 +1,8 @@ +JavaAPI02 | Programmieren mit Java

    JavaAPI02

    Erstelle eine ausführbare Klasse zum Lösen einer quadratischen Gleichung mit +Hilfe der Mitternachtsformel.

    +

    Konsolenausgabe

    +
    Gib bitte einen Wert für a ein: 6
    Gib bitte einen Wert für b ein: 8
    Gib bitte einen Wert für c ein: 2
    x1 = -0.3
    x2 = -1.0
    +

    Hinweis

    +

    Die Klasse Math stellt für die Wurzel-Berechnung sowie die Potenz-Berechnung +passende Methoden zur Verfügung.

    +
    git switch exercises/java-api/02
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/java-api/java-api03/index.html b/pr-preview/pr-238/exercises/java-api/java-api03/index.html new file mode 100644 index 0000000000..0a85b46994 --- /dev/null +++ b/pr-preview/pr-238/exercises/java-api/java-api03/index.html @@ -0,0 +1,8 @@ +JavaAPI03 | Programmieren mit Java

    JavaAPI03

    Erstelle eine ausführbare Klasse, welche den Wochentag sowie die Anzahl Tage bis +Weihnachten eines eingegebenen Datums ermittelt und ausgibt.

    +

    Konsolenausgabe

    +
    Gib bitte ein Datum ein (dd.mm.yyyy): 04.01.2016
    Wochentag: MONDAY
    Tage bis Weihnachten: 355
    +

    Hinweis

    +

    Die Klasse String stellt für das Auslesen einer Teilzeichenkette eine passende +Methode zur Verfügung.

    +
    git switch exercises/java-api/03
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/java-api/java-api04/index.html b/pr-preview/pr-238/exercises/java-api/java-api04/index.html new file mode 100644 index 0000000000..2a685bcab1 --- /dev/null +++ b/pr-preview/pr-238/exercises/java-api/java-api04/index.html @@ -0,0 +1,8 @@ +JavaAPI04 | Programmieren mit Java

    JavaAPI04

    Erstelle eine ausführbare Klasse, welche den vorzeichenfreien Dezimalwert einer +eingegebenen negativen short-Zahl (-1 bis -32.768) berechnet und ausgibt.

    +

    Konsolenausgabe

    +
    Gib bitte einen Wert zwischen -1 und -32.768 ein: -2854
    Ergebnis: Der vorzeichenfreie Dezimalwert beträgt 62682
    +

    Hinweis

    +

    Die Klasse Short stellt für die Rückgabe des vorzeichenfreien Dezimalwerts +eine passende Methode zur Verfügung.

    +
    git switch exercises/java-api/04
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/java-stream-api/index.html b/pr-preview/pr-238/exercises/java-stream-api/index.html new file mode 100644 index 0000000000..d96996697e --- /dev/null +++ b/pr-preview/pr-238/exercises/java-stream-api/index.html @@ -0,0 +1,42 @@ +Die Java Stream API | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/java-stream-api/java-stream-api01/index.html b/pr-preview/pr-238/exercises/java-stream-api/java-stream-api01/index.html new file mode 100644 index 0000000000..4a81c18461 --- /dev/null +++ b/pr-preview/pr-238/exercises/java-stream-api/java-stream-api01/index.html @@ -0,0 +1,45 @@ +JavaStreamAPI01 | Programmieren mit Java

    JavaStreamAPI01

      +
    • Erstelle die Klasse ConsoleQueries anhand des abgebildeten Klassendiagramms
    • +
    • Erstelle eine ausführbare Klasse, welche alle erstellten Abfragen ausführt und +die Ergebnisse auf der Konsole ausgibt
    • +
    +

    Klassendiagramm

    + +

    Hinweis zur Klasse Console

    +

    Konsolen, die aktuell noch verkauft werden, besitzen bei der Lebensspanne den +Wert -1 (Stand: 14.06.2023)

    +

    Hinweise zur Klasse ConsoleQueries

    +
      +
    • Die Methode List<String> getAllCurrentConsoleNames() soll die Namen aller +Konsolen, die aktuell noch verkauft werden zurückgeben (Nintendo Switch, +PlayStation 4, XBox One)
    • +
    • Die Methode List<Console> getAllConsolesSortedByLifespan() soll alle +Konsolen absteigend sortiert nach der Lebensspanne zurückgeben +(VideoGameConsole[title=Nintendo Wii, maker=NINTENDO, lifespan=13, +soldUnits=101.63],...)
    • +
    • Die Methode boolean isAnyConsoleWithMoreThan150MillionSoldUnits() soll die +Antwort auf die Frage, ob es eine Konsole mit mehr als 150 Millionen +verkauften Einheiten gibt, zurückgeben (true)
    • +
    • Die Methode boolean isAllConsolesWithMoreThan50MillionSoldUnits() soll die +Antwort auf die Frage, ob von allen Konsolen mehr als 50 Millionen Einheiten +verkauft wurden, zurückgeben (false)
    • +
    • Die Methode long getNumberOfConsolesFromNintendo() soll die Anzahl der +Konsolen von Nintendo zurückgeben (8)
    • +
    • Die Methode +List<String> getSoldUnitsInMillionsPerYearFromAllOutdatedConsoles() soll die +Namen aller Konsolen, die nicht mehr verkauft werden sowie die Anzahl +verkaufter Einheiten pro Jahr in Millionen zurückgeben (PlayStation 2 +(13.225),...)
    • +
    • Die Methode +OptionalDouble getAverageSoldUnitsInMillionsPerYearFromAllOutdatedConsoles() +soll den Durchschnitt verkaufter Einheiten pro Jahr in Millionen aller +Konsolen, die nicht mehr verkauft werden zurückgeben (9.900365412365412)
    • +
    • Die Methode Map<Maker, List<Console>> getAllConsolesByMaker() soll alle +Konsolen gruppiert nach den Herstellern zurückgeben (MICROSOFT: +[VideoGameConsole[title=XBox 360, maker=MICROSOFT, lifespan=12, +soldUnitsInMillions=85.81],...],...)
    • +
    • Die Methode Map<Maker, Double> getTotalSoldUnitsInMillionsPerMaker() soll +die Anzahl verkaufter Einheiten pro Hersteller in Millionen zurückgeben +(MICROSOFT: 137.07,...)
    • +
    +
    git switch exercises/stream-api/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/java-stream-api/java-stream-api02/index.html b/pr-preview/pr-238/exercises/java-stream-api/java-stream-api02/index.html new file mode 100644 index 0000000000..e8b07115a3 --- /dev/null +++ b/pr-preview/pr-238/exercises/java-stream-api/java-stream-api02/index.html @@ -0,0 +1,30 @@ +JavaStreamAPI02 | Programmieren mit Java

    JavaStreamAPI02

      +
    • Erstelle die Klassen FootballClub, Position, Footballer und +FootballerQueries anhand des abgebildeten Klassendiagramms
    • +
    • Erstelle eine ausführbare Klasse, welche alle erstellten Abfragen ausführt und +die Ergebnisse auf der Konsole ausgibt
    • +
    +

    Klassendiagramm

    + +

    Hinweise zur Klasse FootballerQueries

    +
      +
    • Mannschaften, die nicht der ewigen Tabelle der Bundesliga vertreten sind, +besitzen sowohl für die Position als auch die Punktzahl den Wert -1
    • +
    • Die Methode int getTotalOfAllGoalsByMidfielders() soll die Summe aller +geschossener Tore von Mittelfeldspielerinnen zurückgeben
    • +
    • Die Methode +Optional<String> getNameOfVfLWolfsburgFootballerWithMostPlayedGames() soll +den Namen der Spielerin vom VfL Wolfsburg mit den meisten Spielen zurückgeben
    • +
    • Die Methode List<FootballClub> getAllFootballClubs() soll alle Vereine +zurückgeben
    • +
    • Die Methode boolean isFootballerWithSizeInCmLT170AndNumbreOfGoalsBT0() soll +die Antwort auf die Frage, ob es eine Spielerin gibt, die kleiner als 170cm +ist und mindestens ein Tor geschossen hat, zurückgeben
    • +
    • Die Methode Map<Integer, List<Footballer>> getAllFootballersByBirthyear() +soll alle Spielerinnen gruppiert nach ihrem Geburtsjahr zurückgeben
    • +
    • Die Methode +OptionalDouble getAverageNumberOfPointsFromAllBundesligaFootballClubs() soll +die durchschnittliche Punktzahl aller Bundesligamannschaften in der Ewigen +Tabelle zurückgeben
    • +
    +
    git switch exercises/stream-api/02
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/javafx/index.html b/pr-preview/pr-238/exercises/javafx/index.html new file mode 100644 index 0000000000..cfd700ee86 --- /dev/null +++ b/pr-preview/pr-238/exercises/javafx/index.html @@ -0,0 +1,3 @@ +JavaFX | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/javafx/javafx01/index.html b/pr-preview/pr-238/exercises/javafx/javafx01/index.html new file mode 100644 index 0000000000..001f14a736 --- /dev/null +++ b/pr-preview/pr-238/exercises/javafx/javafx01/index.html @@ -0,0 +1,32 @@ +JavaFX01 | Programmieren mit Java

    JavaFX01

    Erstelle eine JavaFX-Anwendung zum Zeichnen beliebig vieler, unterschiedlich +großer und unterschiedlich farbiger Kreise anhand des abgebildeten +Klassendiagramms sowie des abgebildeten Szenegraphs.

    +

    Klassendiagramm

    + +

    Szenegraph

    + +

    Allgemeine Hinweise

    +
      +
    • Die Methode GraphicsContext getGraphicsContext2D() der Klasse Canvas gibt +die Grafik einer Leinwand zurück
    • +
    • Die Methoden double getWidth() und double getHeight der Klasse Canvas +geben die Breite bzw. die Höhe einer Leinwand zurück
    • +
    • Die Methode void setFill(p: Paint) der Klasse GraphicsContext setzt die +Füllfarbe einer Grafik auf den eingehenden Wert
    • +
    • Die Methoden void fillRect(x: double, y: double, w: double, h: double) und +void fillOval(x: double, y: double, w: double, h: double) der Klasse +GraphicsContext zeichnen ein ausgefülltes Rechteck bzw. ein ausgefülltes +Oval mit den eingehenden Informationen und der aktuellen Füllfarbe auf die +Grafik
    • +
    • Der Konstruktor +Color(red: double, green: double, blue: double, opacity: double) der Klasse +Color ermöglicht das Erzeugen einer (durchsichtigen) Farbe
    • +
    +

    Hinweise zur Klasse Controller

    +
      +
    • Die Methode void initialize(location: URL, resources: ResourceBundle) soll +die Leinwand weiß anmalen
    • +
    • Die Methode void drawCircle(actionEvent: ActionEvent) soll einen Kreis mit +einer zufälligen Größe und einer zufälligen Farbe auf eine zufällige Position +der Leinwand zeichnen
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/javafx/javafx02/index.html b/pr-preview/pr-238/exercises/javafx/javafx02/index.html new file mode 100644 index 0000000000..b922cdea70 --- /dev/null +++ b/pr-preview/pr-238/exercises/javafx/javafx02/index.html @@ -0,0 +1,28 @@ +JavaFX02 | Programmieren mit Java

    JavaFX02

    Erstelle eine JavaFX-Anwendung zum Würfeln anhand des abgebildeten +Klassendiagramms sowie des abgebildeten Szenegraphs.

    +

    Klassendiagramm

    + +

    Szenegraph

    + +

    Allgemeiner Hinweis

    +

    Der Konstruktor Image(url: String) der Klasse Image ermöglicht das Erzeugen +eines Grafik-Objektes.

    +

    Hinweise zur Klasse Dice

    +
      +
    • Der Konstruktor soll den Würfel werfen
    • +
    • Die Methode void rollTheDice() soll den Würfelwert auf einen zufälligen Wert +zwischen 1 und 6 setzen und dem Würfelbild eine entsprechende Grafik zuweisen
    • +
    +

    Hinweise zur Klasse Model

    +
      +
    • Der Konstruktor soll den Würfel initialisieren
    • +
    • Die Methode void rollTheDice() soll den Würfel werfen
    • +
    +

    Hinweise zur Klasse Controller

    +
      +
    • Die Methode void initialize(location: URL, resources: ResourceBundle) soll +das Model initialisieren, den Würfel werfen und dem Würfelbilderrahmen ein +entsprechendes Würfelbild zuweisen
    • +
    • Die Methode void rollTheDice(actionEvent: ActionEvent) soll den Würfel +werfen und dem Würfelbilderrahmen ein entsprechendes Würfelbild zuweisen
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/javafx/javafx03/index.html b/pr-preview/pr-238/exercises/javafx/javafx03/index.html new file mode 100644 index 0000000000..2d583e4b2a --- /dev/null +++ b/pr-preview/pr-238/exercises/javafx/javafx03/index.html @@ -0,0 +1,29 @@ +JavaFX03 | Programmieren mit Java

    JavaFX03

    Erstelle eine JavaFX-Anwendung zum Berechnen von Zinsen anhand des abgebildeten +Klassendiagramms sowie des abgebildeten Szenegraphs.

    +

    Klassendiagramm

    + +

    Szenegraph

    + +

    Allgemeine Hinweise

    +
      +
    • Der Konstruktor +Alert(alertType: AlertType, contentText: String, buttons: ButtonType...) der +Klasse Alert ermöglicht das Erzeugen eines Nachrichtendialoges
    • +
    • Die Methode void show() der Klasse Alert zeigt den Nachrichtendialog an
    • +
    +

    Hinweis zur Klasse Model

    +

    Die Methode +double getInterest(initialCapital: double, interestRate: double, runningTime: int) +soll die Zinsen zu den eingehenden Informationen berechnen und zurückgeben.

    +

    Hinweise zur Klasse Controller

    +
      +
    • Die Methode void initialize(location: URL, resources: ResourceBundle) soll +das Model initialisieren
    • +
    • Die Methode void calculateInterest(actionEvent: ActionEvent) soll zu den +eingegebenen Informationen die Zinsen berechnen und diese dem +Zinsen-Ausgabenfeld zuweisen. Für den Fall, dass die eingegebenen +Informationen nicht konvertiert werden können, soll ein entsprechender +Nachrichtendialog angezeigt werden und für den Fall, dass die eingegebenen +Werte kleiner gleich Null sind, soll ebenfalls ein entsprechender +Nachrichtendialog angezeigt werden
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/javafx/javafx04/index.html b/pr-preview/pr-238/exercises/javafx/javafx04/index.html new file mode 100644 index 0000000000..1d24de9170 --- /dev/null +++ b/pr-preview/pr-238/exercises/javafx/javafx04/index.html @@ -0,0 +1,40 @@ +JavaFX04 | Programmieren mit Java

    JavaFX04

    Erstelle eine JavaFX-Anwendung zum Ein- und Ausschalten einer farbigen LED +anhand des abgebildeten Klassendiagramms sowie des abgebildeten Szenegraphs.

    +

    Klassendiagramm

    + +

    Szenegraph

    + +

    Allgemeine Hinweise

    +
      +
    • Die Klasse AnimationTimer repräsentiert einen Zeitmesser
    • +
    • Die Methode void start() der Klasse AnimationTimer startet den Zeitmesser
    • +
    • Der Konstruktor +Color(red: double, green: double, blue: double, opacity: double) der Klasse +Color ermöglicht das Erzeugen einer (durchsichtigen) Farbe
    • +
    +

    Hinweise zur Klasse LED

    +
      +
    • Der Konstruktor soll die LED auf die Farbe Rot setzen
    • +
    • Die Methode void switchOn() soll das Attribut isShining auf den Wert +true setzen
    • +
    • Die Methode void switchOff() soll das Attribut isShining auf den Wert +false setzen
    • +
    • Die Methode void switchColor() soll die Farbe der LED von Rot auf Grün bzw. +von Grün auf Blau bzw. von Blau auf Rot wechseln
    • +
    +

    Hinweis zur Klasse Model

    +

    Der Konstruktor soll die LED initialisieren

    +

    Hinweise zur Klasse Controller

    +
      +
    • Die Methode void initialize(location: URL, resources: ResourceBundle) soll +das Model initialisieren und kontinuierlich prüfen, ob die LED leuchtet. Für +den Fall, dass die LED leuchtet, sollen alle 4 Ebenen in der Farbe der LED mit +aufsteigender Durchsichtigkeit (0%, 25%, 50%, 75%) angezeigt werden und für +den Fall, dass die LED nicht leuchtet, soll aussschließlich die erste Ebene in +der Farbe der LED angezeigt werden
    • +
    • Die Methode void switchOn(actionEvent: ActionEvent) soll die LED einschalten
    • +
    • Die Methode void switchOff(actionEvent: ActionEvent) soll die LED +ausschalten
    • +
    • Die Methode void switchColor(actionEvent: ActionEvent) soll die Farbe der +LED wechseln
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/javafx/javafx05/index.html b/pr-preview/pr-238/exercises/javafx/javafx05/index.html new file mode 100644 index 0000000000..a7381e5cc4 --- /dev/null +++ b/pr-preview/pr-238/exercises/javafx/javafx05/index.html @@ -0,0 +1,44 @@ +JavaFX05 | Programmieren mit Java

    JavaFX05

    Erstelle eine JavaFX-Anwendung zum Durchführen einfacher Berechnungen anhand des +abgebildeten Klassendiagramms sowie des abgebildeten Szenegraphs.

    +

    Klassendiagramm

    + +

    Szenegraph

    + +

    Allgemeine Hinweise

    +
      +
    • Der Konstruktor +Alert(alertType: AlertType, contentText: String, buttons: ButtonType...) der +Klasse Alert ermöglicht das Erzeugen eines Nachrichtendialoges
    • +
    • Die Methode void show() der Klasse Alert zeigt den Nachrichtendialog an
    • +
    +

    Hinweise zur Klasse Calculator

    +
      +
    • Die Methode double add(a: double, b: double) soll die Summe der eingehenden +Zahlen zurückgeben
    • +
    • Die Methode double subtract(a: double, b: double) soll die Differenz der +eingehenden Zahlen zurückgeben
    • +
    • Die Methode double multiply(a: double, b: double) soll das Produkt der +eingehenden Zahlen zurückgeben
    • +
    • Die Methode double divide(a: double, b: double) soll den Quotienten der +eingehenden Zahlen zurückgeben
    • +
    +

    Hinweise zur Klasse Model

    +
      +
    • Der Konstruktor soll den Taschenrechner initialisieren
    • +
    • Die Methode String calculate(input: String) soll die eingehende Zeichenkette +in zwei Kommazahlen sowie einen Operator umwandeln, anschließend die +entsprechende Berechnung durchführen und schließlich das Ergebnis der +Berechnung zurückgeben. Für den Fall, dass die eingehende Zeichenkette den +Wert null hat oder dass die Eingabe nicht dem Format Kommazahl +|-|*|/ +Kommazahl entspricht, soll die Ausnahme InvalidInputException ausgelöst +werden
    • +
    +

    Hinweise zur Klasse Controller

    +
      +
    • Die Methode void initialize(location: URL, resources: ResourceBundle) soll +das Model initialisieren
    • +
    • Die Methode void calculate(actionEvent: ActionEvent) soll anhand der Eingabe +das Ergebnis berechnen und dieses dem Ausgabe-Ausgabefeld zuweisen. Für den +Fall, dass die Eingabe ungültig ist, soll ein entsprechender Nachrichtendialog +angezeigt werden
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/javafx/javafx06/index.html b/pr-preview/pr-238/exercises/javafx/javafx06/index.html new file mode 100644 index 0000000000..92ac69bc1d --- /dev/null +++ b/pr-preview/pr-238/exercises/javafx/javafx06/index.html @@ -0,0 +1,37 @@ +JavaFX06 | Programmieren mit Java

    JavaFX06

    Erstelle eine JavaFX-Anwendung zum Anmelden anhand des abgebildeten +Klassendiagramms sowie der abgebildeten Szenegraphen.

    +

    Klassendiagramm

    + +

    Szenegraph zur Szene LoginView

    + +

    Szenegraph zur Szene UserView

    + +

    Allgemeine Hinweise

    +
      +
    • Der Konstruktor +Alert(alertType: AlertType, contentText: String, buttons: ButtonType...) der +Klasse Alert ermöglicht das Erzeugen eines Nachrichtendialoges
    • +
    • Die Methode void show() der Klasse Alert zeigt den Nachrichtendialog an
    • +
    +

    Hinweise zur Klasse Model

    +
      +
    • Der Konstruktor soll die Beuntzerliste initialisieren und dieser einige +Benutzern hinzufügen
    • +
    • Die Methode boolean setUser(userName: String, password: String) soll den +Benutzer festlegen und den Wert true zurückgeben. Für den Fall, dass zu den +eingehenden Anmeldedaten kein Benutzer in der Benutzerliste ermittelt werden +kann, soll der Wert false zurückgegeben werden
    • +
    +

    Hinweise zur Klasse LoginController

    +
      +
    • Die Methode void initialize(location: URL, resources: ResourceBundle) soll +das Model initialisieren
    • +
    • Die Methode void login(actionEvent: ActionEvent) soll anhand der +eingegebenen Anmeldedaten den Benutzer festlegen und anschließend die View +UserView anzeigen. Für den Fall, dass die Anmeldedaten ungültig sind, soll +ein entsprechender Nachrichtendialog angezeigt werden
    • +
    +

    Hinweis zur Klasse UserController

    +

    Die Methode void initialize(location: URL, resources: ResourceBundle) soll das +Model initialisieren und dem Begrüßungs-Ausgabfeld eine Zeichenkette in der Form +Hallo [Benutzer].[Vorname] [Benutzer].[Nachname] zuweisen.

    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/javafx/javafx07/index.html b/pr-preview/pr-238/exercises/javafx/javafx07/index.html new file mode 100644 index 0000000000..92e5524c09 --- /dev/null +++ b/pr-preview/pr-238/exercises/javafx/javafx07/index.html @@ -0,0 +1,45 @@ +JavaFX07 | Programmieren mit Java

    JavaFX07

    Erstelle eine JavaFX-Anwendung zur Animation beliebig vieler, unterschiedlich +großer, unterschiedlich farbiger und unterschiedlich schneller Gummibälle anhand +des abgebildeten Klassendiagramms sowie des abgebildeten Szenegraphs.

    +

    Klassendiagramm

    + +

    Szenegraph

    + +

    Allgemeine Hinweise

    +
      +
    • Die Klasse AnimationTimer repräsentiert einen Zeitmesser
    • +
    • Die Methode void start() der Klasse AnimationTimer startet den Zeitmesser
    • +
    • Die Methode GraphicsContext getGraphicsContext2D() der Klasse Canvas gibt +die Grafik einer Leinwand zurück
    • +
    • Die Methoden double getWidth() und double getHeight der Klasse Canvas +geben die Breite bzw. die Höhe einer Leinwand zurück
    • +
    • Die Methode void setFill(p: Paint) der Klasse GraphicsContext setzt die +Füllfarbe einer Grafik auf den eingehenden Wert
    • +
    • Die Methoden void fillRect(x: double, y: double, w: double, h: double) und +void fillOval(x: double, y: double, w: double, h: double) der Klasse +GraphicsContext zeichnen ein ausgefülltes Rechteck bzw. ein ausgefülltes +Oval mit den eingehenden Informationen und der aktuellen Füllfarbe auf die +Grafik
    • +
    • Der Konstruktor +Color(red: double, green: double, blue: double, opacity: double) der Klasse +Color ermöglicht das Erzeugen einer (durchsichtigen) Farbe
    • +
    +

    Hinweise zur Klasse Ball

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren
    • +
    • Die Methode void move() soll die x- und y-Position des Balls um die +dazugehörigen Geschwindigkeitswerte erhöhen und sicherstellen, dass der Ball +beim Überschreiten der eingehenden Grenzen an diesen "abprallt"
    • +
    +

    Hinweise zur Klasse Model

    +
      +
    • Der Konstruktor soll die Gummiballliste initialisieren
    • +
    • Die Methode void addBall(ball: Ball) soll den eingehenden Gummiball der +Gummiballliste hinzufügen
    • +
    +

    Hinweis zur Klasse Controller

    +

    Die Methode void initialize(location: URL, resources: ResourceBundle) soll das +Model initialisieren und kontinuierlich alle Gummibälle der Gummiballliste +bewegen sowie die Leinwand neu zeichnen. Zudem soll bei einem Mausklick auf die +Leinwand an der geklickten Stelle ein Gummiball zufälliger Größe, Farbe und +Geschwindigkeitswerten erstellt werden.

    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/javafx/javafx08/index.html b/pr-preview/pr-238/exercises/javafx/javafx08/index.html new file mode 100644 index 0000000000..aaab9a5615 --- /dev/null +++ b/pr-preview/pr-238/exercises/javafx/javafx08/index.html @@ -0,0 +1,49 @@ +JavaFX08 | Programmieren mit Java

    JavaFX08

    Erstelle eine JavaFX-Anwendung zum Schachspielen anhand des abgebildeten +Klassendiagramms sowie des abgebildeten Szenegraphs.

    +

    Klassendiagramm

    + +

    Szenegraph

    + +

    Allgemeine Hinweise

    +
      +
    • Der Konstruktor Image(url: String) der Klasse Image ermöglicht das +Erzeugen eines Grafik-Objektes
    • +
    • Die Methode void setImage(value: Image) der Klasse ImageView setzt die +Grafik eines Bilderrahmens auf den eingehenden Wert
    • +
    • Der Konstruktor Rectangle(width: double, height: double) der Klasse +Rectangle ermöglicht das Erzeugen eines Rechtecks
    • +
    • Die Methode void setFill(value: Paint) der Klasse Shape setzt die +Füllfarbe einer geometrischen Form auf den eingehenden Wert
    • +
    • Die Methode ObservableList<Node> getChildren() der Klasse Pane gibt die +Kindknotenliste eines Containers zurück
    • +
    • Die Methode void setEffect(effect: Effect) der Klasse Node setzt den +Effekt eines Bildschirmelements auf den eingehenden Wert
    • +
    • Der Konstruktor +ColorAdjust(hue: double, saturation: double, brightness: double, contrast: double) +der Klasse ColorAdjust ermöglicht das Erzeugen einer Farbanpassung
    • +
    +

    Hinweis zur Klasse ChessFigure

    +

    Der Konstruktor soll alle Attribute (inklusive der Grafik) initialisieren.

    +

    Hinweise zur Klasse Field

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren, ein Rechteck als +Hintergrund-Ebene mit der eingehenden Farbe erzeugen und dieses der +Kindknotenliste hinzufügen
    • +
    • Die Methode void setFigure(figure: ChessFigure) soll die eingehende +Schachfigur der Kindknoteliste hinzufügen bzw. die bestehende Schachfigur der +Kinknotenliste durch die eingehende Schachfigur ersetzen bzw. die bestehende +Schachfigur der Kindknotenliste entfernen
    • +
    • Die Methode ChessFigure getFigure() soll die Schachfigur der Kindknotenliste +bzw. den Wert null zurückgeben
    • +
    • Die Methode Rectangle getBackgroundLayer() soll die Hintergrund-Ebene der +Kindknotenliste zurückgeben
    • +
    +

    Hinweise zur Klasse ChessBoard

    +

    Der Konstruktor soll alle Felder inklusive aller Schachfiguren initialisieren.

    +

    Hinweise zur Klasse Controller

    +
      +
    • Die Methode void initialize(location: URL, resources: ResourceBundle) soll +das Auswählen und Bewegen der Schachfiguren per Mausklick ermöglichen
    • +
    • Die Methode void setHighlight(field: Field, highlight: boolean) soll das +eingehende Feld hervorheben bzw. nicht mehr hervorheben
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/lambdas/index.html b/pr-preview/pr-238/exercises/lambdas/index.html new file mode 100644 index 0000000000..59fdee3d9d --- /dev/null +++ b/pr-preview/pr-238/exercises/lambdas/index.html @@ -0,0 +1,3 @@ +Lambda-Ausdrücke (Lambdas) | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/lambdas/lambdas01/index.html b/pr-preview/pr-238/exercises/lambdas/lambdas01/index.html new file mode 100644 index 0000000000..9e3e091d85 --- /dev/null +++ b/pr-preview/pr-238/exercises/lambdas/lambdas01/index.html @@ -0,0 +1,16 @@ +Lambdas01 | Programmieren mit Java

    Lambdas01

      +
    • Erstelle die Klasse Student anhand des abgebildeten Klassendiagramms
    • +
    • Erstelle eine ausführbare Klasse, welche mehrere Objekte der Klasse Student +erzeugt und diese einer Liste hinzufügt
    • +
    • Rufe in der ausführbaren Klasse die forEach-Methode auf, und übergib eine +anonyme Klasse. Die anonyme Klasse soll alle Studenten die älter sind als 26 +auf der Konsole ausgeben
    • +
    • Rufe in der ausführbaren Klasse die forEach-Methode auf, und übergib einen +Lambda-Ausdruck. Der Lambda-Ausdruck soll sich exakt so verhalten wie die +zuvor implementierte anonyme Klasse
    • +
    +

    Klassendiagramm

    + +

    Konsolenausgabe

    +
    Yannik ist 28 Jahre alt
    Hanni ist 29 Jahre alt
    Manu ist 30 Jahre alt
    +
    git switch exercises/lambdas/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/lambdas/lambdas02/index.html b/pr-preview/pr-238/exercises/lambdas/lambdas02/index.html new file mode 100644 index 0000000000..f9b23a8708 --- /dev/null +++ b/pr-preview/pr-238/exercises/lambdas/lambdas02/index.html @@ -0,0 +1,27 @@ +Lambdas02 | Programmieren mit Java

    Lambdas02

    Gegeben sind die beiden Klassen FilteredAdultStudents und +FilteredTeenStudents. Beide sollen sicherstellen, dass nur bestimmte Studenten +hinzugefügt werden können. Die Klasse FilteredAdultStudents ermöglicht nur das +Hinzufügen von Studenten, die mindesten 18 Jahre alt sind; die Klasse +FilteredTeenStudents das Hinzufügen von Studenten unter 18 Jahren. Dieser +Ansatz funktioniert zwar, ist allerdings nicht flexibel.

    +
      +
    • Erstelle eine ausführbare Klasse, welche mehrere Objekte der Klasse Student +erzeugt und versucht, diese Objekten der Klasse FilteredAdultList bzw. +FilteredTeenList hinzuzufügen
    • +
    • Erstelle die Klasse FilteredStudents anhand des abgebildeten +Klassendiagramms
    • +
    • Passe die ausführbare Klasse so an, dass nur noch die Klasse +FilteredStudents verwendet wird und übergib dem Konstruktor das Prädikat +jeweils in Form eines Lambda-Ausdrucks
    • +
    +

    Klassendiagramm

    + +

    Hinweise zur Klasse FilteredStudents

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren
    • +
    • Die Methode void add(student: Student) soll der Studentenliste den +eingehenden Studenten hinzufügen. Vor dem Hinzufügen soll mit Hilfe des +Filters überprüft werden, ob der eingehende Student hinzugefügt werden soll
    • +
    • Methode void printStudent() soll alle Studenten auf der Konsole ausgeben
    • +
    +
    git switch exercises/lambdas/02
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/lambdas/lambdas03/index.html b/pr-preview/pr-238/exercises/lambdas/lambdas03/index.html new file mode 100644 index 0000000000..42151871cb --- /dev/null +++ b/pr-preview/pr-238/exercises/lambdas/lambdas03/index.html @@ -0,0 +1,12 @@ +Lambdas03 | Programmieren mit Java

    Lambdas03

      +
    • Passe die Klasse FilteredStudents so an, dass Verwender der Klasse selber +entscheiden können, wie die Studentenliste verarbeitet werden soll. Ersetze +hierzu die Methode void printStudents() durch die Methode +void forEach(consumer: Consumer<Student>). Implementiere in der Methode eine +Schleife, in der für jeden Studenten die Methode void accept(t: T) des +eingehenden Verwenders aufgerufen wird
    • +
    • Passe die ausführbare Klasse aus Übungsaufgabe Lambdas02 so an, +dass volljährige Studenten in Großbuchstaben und minderjährige Studenten in +Kleinbuchstaben auf der Konsole ausgegeben werden
    • +
    +
    git switch exercises/lambdas/03
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/lambdas/lambdas04/index.html b/pr-preview/pr-238/exercises/lambdas/lambdas04/index.html new file mode 100644 index 0000000000..5ce893ca5e --- /dev/null +++ b/pr-preview/pr-238/exercises/lambdas/lambdas04/index.html @@ -0,0 +1,8 @@ +Lambdas04 | Programmieren mit Java

    Lambdas04

    It´s a Bug! Steffen der Schlingel hat gelogen und ist 17 Jahre alt. Das Alter +wurde aber erst geändert, nachdem er schon der Liste mit den erwachsenden +Studenten hinzugefügt wurde.

    +

    Passe die Methode void forEach(consumer: Consumer<Student>) der gegebenen +Klasse FilteredStudents so an, dass vor dem Aufruf der Methode +void accept(t: T) überprüft wird, ob der Student wirklich verarbeitet werden +darf.

    +
    git switch exercises/lambdas/04
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/lambdas/lambdas05/index.html b/pr-preview/pr-238/exercises/lambdas/lambdas05/index.html new file mode 100644 index 0000000000..7fba812fe7 --- /dev/null +++ b/pr-preview/pr-238/exercises/lambdas/lambdas05/index.html @@ -0,0 +1,5 @@ +Lambdas05 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/loops/index.html b/pr-preview/pr-238/exercises/loops/index.html new file mode 100644 index 0000000000..3b7e80b46c --- /dev/null +++ b/pr-preview/pr-238/exercises/loops/index.html @@ -0,0 +1,55 @@ +Schleifen | Programmieren mit Java

    Schleifen

    Übungsaufgaben

    + +
    +

    Übungsaufgaben von tutego.de

    + +

    Übungsaufgaben der Uni Koblenz-Landau

    +
      +
    • Übungsaufgabe C1
    • +
    • Übungsaufgabe C2
    • +
    • Übungsaufgabe C3
    • +
    • Übungsaufgabe C4
    • +
    • Übungsaufgabe C5
    • +
    +

    Übungsaufgaben der Technischen Hochschule Ulm

    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/loops/loops01/index.html b/pr-preview/pr-238/exercises/loops/loops01/index.html new file mode 100644 index 0000000000..4a8c9f6202 --- /dev/null +++ b/pr-preview/pr-238/exercises/loops/loops01/index.html @@ -0,0 +1,4 @@ +Loops01 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/loops/loops02/index.html b/pr-preview/pr-238/exercises/loops/loops02/index.html new file mode 100644 index 0000000000..f668e94816 --- /dev/null +++ b/pr-preview/pr-238/exercises/loops/loops02/index.html @@ -0,0 +1,5 @@ +Loops02 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/loops/loops03/index.html b/pr-preview/pr-238/exercises/loops/loops03/index.html new file mode 100644 index 0000000000..cdf3aeca6e --- /dev/null +++ b/pr-preview/pr-238/exercises/loops/loops03/index.html @@ -0,0 +1,9 @@ +Loops03 | Programmieren mit Java

    Loops03

    Erstelle eine ausführbare Klasse, welche eine eingegebene Zeichenkette auf +Häufigkeit eines bestimmten Zeichens analysiert. Das Programm soll die absolute +und relative Häufigkeit in Bezug auf die Gesamtlänge der Zeichenkette ausgeben.

    +

    Konsolenausgabe

    +
    Gib bitte eine Zeichenkette ein: Hallo Welt
    Gib bitte das zu analysierende Zeichen ein: l
    Absoluter Anteil: 3
    Prozentualer Anteil: 30,00%
    +

    Hinweis

    +

    Die Methode char charAt(index: int) der Klasse String gibt das Zeichen mit +dem Index der eingehenden Zahl zurück.

    +
    git switch exercises/loops/03
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/loops/loops04/index.html b/pr-preview/pr-238/exercises/loops/loops04/index.html new file mode 100644 index 0000000000..834059d4c7 --- /dev/null +++ b/pr-preview/pr-238/exercises/loops/loops04/index.html @@ -0,0 +1,8 @@ +Loops04 | Programmieren mit Java

    Loops04

    Erstelle eine ausführbare Klasse, welche zwei Zeichenketten unter Missachtung +der Groß- und Kleinschreibung zeichenweise auf Gleichheit überprüft.

    +

    Konsolenausgabe

    +
    Gib bitte die erste Zeichenkette ein: Hallo Welt
    Gib bitte die zweite Zeichenkette ein: HALLO WELT
    Ergebnis: Die eingegebenen Zeichenketten sind identisch
    +

    Hinweis

    +

    Die statische Methode char toUpperCase(ch: char) der Klasse Character gibt +den Großbuchstaben des eingehenden Zeichens zurück.

    +
    git switch exercises/loops/04
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/loops/loops05/index.html b/pr-preview/pr-238/exercises/loops/loops05/index.html new file mode 100644 index 0000000000..6cdccdb41d --- /dev/null +++ b/pr-preview/pr-238/exercises/loops/loops05/index.html @@ -0,0 +1,6 @@ +Loops05 | Programmieren mit Java

    Loops05

    Erstelle eine ausführbare Klasse, welche es dem Anwender ermöglicht, eine +Zufallszahl zwischen 1 und 100 zu erraten. Dazu soll er solange Zahlen eingeben, +bis er die gesuchte Zahl erraten hat oder das Spiel freiwillig beendet.

    +

    Konsolenausgabe

    +
    Gib bitte Deinen Tipp ein: 23
    Leider falsch, die gesuchte Zahl ist größer
    Möchtest Du nochmals raten (true, false)?: true
    Gib bitte Deinen Tipp ein: 55
    Leider falsch, die gesuchte Zahl ist kleiner
    Möchtest Du nochmals raten (true, false)?: true
    Gib bitte Deinen Tipp eingeben: 47
    Richtig. Du hast 3 Versuche benötigt
    +
    git switch exercises/loops/05
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/loops/loops06/index.html b/pr-preview/pr-238/exercises/loops/loops06/index.html new file mode 100644 index 0000000000..0ee3d3a8d7 --- /dev/null +++ b/pr-preview/pr-238/exercises/loops/loops06/index.html @@ -0,0 +1,6 @@ +Loops06 | Programmieren mit Java

    Loops06

    Erstelle eine ausführbare Klasse, welche anhand von Startkapital (K) und +Prozentsatz (p) den Jahreszins (Z) berechnet. Die Berechnung des Jahreszinses +soll dabei in eine statische Methode ausgelagert werden.

    +

    Konsolenausgabe

    +
    Gib bitte das Startkapital ein (in €): 10000
    Gib bitte den Prozentsatz ein: 3,3
    Ergebnis: Der Jahreszins beträgt 330€
    Willst Du einen weiteren Jahreszins berechnen (true, false)?: false
    +
    git switch exercises/loops/06
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/loops/loops07/index.html b/pr-preview/pr-238/exercises/loops/loops07/index.html new file mode 100644 index 0000000000..9d3ef7ec8e --- /dev/null +++ b/pr-preview/pr-238/exercises/loops/loops07/index.html @@ -0,0 +1,8 @@ +Loops07 | Programmieren mit Java

    Loops07

    Erstelle eine ausführbare Klasse, welche anhand von Startkapital (K) und +Prozentsatz (p) den Jahreszins berechnet.

    +

    Konsolenausgabe

    +
    Gib bitte das Startkapital ein (in Euro): 10000
    Gib bitte den Prozentsatz ein: 3,3
    Ergebnis: Der Jahreszins betraegt 330 Euro
    Willst Du einen weiteren Jahreszins berechnen (true, false)?:false
    +

    Hinweis

    +

    Die Formel für die Zins-Berechnung findest Du unter anderem +hier.

    +
    git switch exercises/loops/07
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/loops/loops08/index.html b/pr-preview/pr-238/exercises/loops/loops08/index.html new file mode 100644 index 0000000000..6ff71ec1ac --- /dev/null +++ b/pr-preview/pr-238/exercises/loops/loops08/index.html @@ -0,0 +1,9 @@ +Loops08 | Programmieren mit Java

    Loops08

    Erstelle eine ausführbare Klasse, welche anhand von Startkapital +(K0), Prozentsatz (p) und Anzahl Jahre (n) das Endkapital +(Kn) berechnet.

    +

    Konsolenausgabe

    +
    Gib bitte das Startkapital ein (in Euro): 10000
    Gib bitte den Prozentsatz ein: 3,3
    Gib bitte die Anzahl Jahre ein: 5
    Ergebnis: Das Endkapital beträgt 11762 Euro
    Willst Du eine weitere Zinsrechnung durchführen (true, false)?: false
    +

    Hinweis

    +

    Die Formel für die Zinseszins-Berechnung findest Du unter anderem +hier.

    +
    git switch exercises/loops/08
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/maps/index.html b/pr-preview/pr-238/exercises/maps/index.html new file mode 100644 index 0000000000..f9193a43e3 --- /dev/null +++ b/pr-preview/pr-238/exercises/maps/index.html @@ -0,0 +1,3 @@ +Assoziativspeicher (Maps) | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/maps/maps01/index.html b/pr-preview/pr-238/exercises/maps/maps01/index.html new file mode 100644 index 0000000000..e037a80af9 --- /dev/null +++ b/pr-preview/pr-238/exercises/maps/maps01/index.html @@ -0,0 +1,17 @@ +Maps01 | Programmieren mit Java

    Maps01

      +
    • Erstelle die Klassen Person, TelephoneNumber und TelephoneBook anhand +des abgebildeten Klassendiagramms
    • +
    • Erstelle eine ausführbare Klasse, welche ein Telefonbuch mit mehreren +Einträgen erzeugt und zu eingegebenen Namen die dazugehörigen Telefonnummern +auf der Konsole ausgibt
    • +
    +

    Klassendiagramm

    + +

    Hinweise zur Klasse TelephoneBook

    +
      +
    • Die Methode void addEntry(person: Person, telephoneNumber: TelephoneNumber) +soll einen Eintrag im Telefonbuch anlegen
    • +
    • Die Methode TelephoneNumber getTelephoneNumberByName(name: String) soll die +Telefonnummer zum eingehenden Namen zurückgeben
    • +
    +
    git switch exercises/maps/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/maps/maps02/index.html b/pr-preview/pr-238/exercises/maps/maps02/index.html new file mode 100644 index 0000000000..00c48a927a --- /dev/null +++ b/pr-preview/pr-238/exercises/maps/maps02/index.html @@ -0,0 +1,23 @@ +Maps02 | Programmieren mit Java

    Maps02

      +
    • Erstelle die Klassen Author, Book, BookCollection und +DuplicateKeyException anhand des abgebildeten Klassendiagramms
    • +
    • Erstelle eine ausführbare Klasse, welche eine Büchersammlung mit mehreren +Autoren und Büchern erzeugt und den fleißigsten Autoren auf der Konsole +ausgibt
    • +
    +

    Klassendiagramm

    + +

    Hinweise zur Klasse BookCollection

    +
      +
    • Die Methode void addAuthor(author: Author) soll den eingehenden Autor der +Büchersammlung hinzufügen. Für den Fall, dass der Autor bereits in der +Büchersammlung vorhanden ist, soll die Ausnahme DuplicateKeyException +ausgelöst werden
    • +
    • Die Methode void addBook(author: Author, book: Book) soll das eingehende +Buch der Büchersammlung hinzufügen
    • +
    • Die Methode Author getMostDiligentAuthor() soll den Autoren mit den meisten +Büchern in der Büchersammlung zurückgeben
    • +
    • Die Methode Book getBookByTitle(title: String) soll das Buch zum eingehenden +Buchtitel zurückgeben
    • +
    +
    git switch exercises/maps/02
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/oo/index.html b/pr-preview/pr-238/exercises/oo/index.html new file mode 100644 index 0000000000..119c32071d --- /dev/null +++ b/pr-preview/pr-238/exercises/oo/index.html @@ -0,0 +1,20 @@ +Objektorientierte Programmierung | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/oo/oo01/index.html b/pr-preview/pr-238/exercises/oo/oo01/index.html new file mode 100644 index 0000000000..b56ba20ee9 --- /dev/null +++ b/pr-preview/pr-238/exercises/oo/oo01/index.html @@ -0,0 +1,13 @@ +OO01 | Programmieren mit Java

    OO01

      +
    • Erstelle die Klasse Vehicle mit Hilfe der abgebildeten Informationen
    • +
    • Erstelle eine ausführbare Klasse, welches ein Fahrzeug erzeugt, lege +Hersteller und Modell fest und lasse das Fahrzeug mehrmals beschleunigen und +bremsen
    • +
    +

    Attribute der Klasse Vehicle

    +
    AttributDatentypSichtbarkeitVeränderlichkeit
    makeStringprivateveränderlich
    modelStringprivateveränderlich
    speedInKmhdoubleprivateveränderlich
    +

    Methoden der Klasse Vehicle

    +
    MethodeRückgabewertSichtbarkeitBeschreibung
    setMake(make: String)voidpublicFestlegen des Herstellers
    setModel(model: String)voidpublicFestlegen des Modells
    getMake()StringpublicRückgabe des Herstellers
    getModel()StringpublicRückgabe des Modells
    getSpeedInKmh()doublepublicRückgabe der Geschwindigkeit
    accelerate(valueInKmh: int)voidpublicErhöhung der Geschwindigkeit um den eingehenden Wert sowie eine passende Konsolenausgabe
    brake(valueInKmh: int)voidpublicReduzierung der Geschwindigkeit um den eingehenden Wert sowie eine passende Konsolenausgabe
    toString()StringpublicRückgabe: Hersteller Modell
    +

    Konsolenausgabe

    +
    Porsche 911 beschleunigt auf 30.0km/h
    Porsche 911 beschleunigt auf 60.0km/h
    Porsche 911 bremst auf 40.0km/h ab
    Porsche 911 beschleunigt auf 80.0km/h
    +
    git switch exercises/oo/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/oo/oo02/index.html b/pr-preview/pr-238/exercises/oo/oo02/index.html new file mode 100644 index 0000000000..8f3214bc0b --- /dev/null +++ b/pr-preview/pr-238/exercises/oo/oo02/index.html @@ -0,0 +1,11 @@ +OO02 | Programmieren mit Java

    OO02

      +
    • Passe die Klasse Vehicle aus Übungsaufgabe OO01 mit Hilfe der +abgebildeten Informationen an
    • +
    • Passe die ausführbare Klasse aus Übungsaufgabe OO01 so an, dass sie +fehlerfrei ausgeführt werden kann
    • +
    +

    Attribute der Klasse Vehicle

    +
    AttributDatentypSichtbarkeitVeränderlichkeit
    makeStringprivateunveränderlich
    modelStringprivateunveränderlich
    speedInKmhdoubleprivateveränderlich
    +

    Methoden der Klasse Vehicle

    +
    MethodeRückgabewertSichtbarkeitBeschreibung
    Vehicle(make: String, model: String)publicFestlegen des Herstellers und des Modells
    getMake()StringpublicRückgabe des Herstellers
    getModel()StringpublicRückgabe des Modells
    getSpeedInKmh()doublepublicRückgabe der Geschwindigkeit
    accelerate(valueInKmh: int)voidpublicErhöhung der Geschwindigkeit um den eingehenden Wert sowie eine passende Konsolenausgabe
    brake(valueInKmh: int)voidpublicReduzierung der Geschwindigkeit um den eingehenden Wert sowie eine passende Konsolenausgabe
    toString()StringpublicRückgabe: Hersteller Modell
    +
    git switch exercises/oo/02
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/oo/oo03/index.html b/pr-preview/pr-238/exercises/oo/oo03/index.html new file mode 100644 index 0000000000..b74b98da33 --- /dev/null +++ b/pr-preview/pr-238/exercises/oo/oo03/index.html @@ -0,0 +1,14 @@ +OO03 | Programmieren mit Java

    OO03

      +
    • Erstelle die Klasse Dice mit Hilfe der abgebildeten Informationen
    • +
    • Erstelle eine ausführbare Klasse, welche einen Würfel erzeugt. Es soll 5-mal +hintereinander gewürfelt und das Ergebnis des Wurfes ausgegeben werden
    • +
    +

    Attribute der Klasse Dice

    +
    AttributDatentypSichtbarkeitVeränderlichkeit
    idintprivateunveränderlich
    valueintprivateveränderlich
    +

    Methoden der Klasse Dice

    +
    MethodeRückgabewertSichtbarkeitBeschreibung
    Dice(id: int)voidpublicSetzen der ID
    getId()intpublicRückgabe der ID
    getValueintpublicRückgabe des Wertes
    rollTheDice()voidpublicSetzen eines zufälligen Wertes
    +

    Hinweise zur Klasse Dice

    +

    Der Konstruktor soll dem Würfel einen zufälligen Wert zwischen 1 und 6 zuweisen.

    +

    Konsolenausgabe

    +
    ID - Würfelwert
    1 - 1
    1 - 2
    1 - 5
    1 - 3
    1 - 2
    +
    git switch exercises/oo/03
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/oo/oo04/index.html b/pr-preview/pr-238/exercises/oo/oo04/index.html new file mode 100644 index 0000000000..d321d45b1b --- /dev/null +++ b/pr-preview/pr-238/exercises/oo/oo04/index.html @@ -0,0 +1,8 @@ +OO04 | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/oo/oo05/index.html b/pr-preview/pr-238/exercises/oo/oo05/index.html new file mode 100644 index 0000000000..7c3bc0d7bf --- /dev/null +++ b/pr-preview/pr-238/exercises/oo/oo05/index.html @@ -0,0 +1,13 @@ +OO05 | Programmieren mit Java

    OO05

      +
    • Erstelle die Klasse DiceCup mit Hilfe der abgebildeten Informationen
    • +
    • Erstelle eine ausführbare Klasse, welche einen Würfelbecher sowie 5 Würfel +erzeugt. Es soll 5-mal mit dem Würfelbecher gewürfelt und für jeden Wurf das +Ergebnis des Wurfes ausgegeben werden.
    • +
    +

    Methoden der Klasse DiceCup

    +
    MethodeRückgabewertSichtbarkeitBeschreibung
    rollTheDices(dices: Dice[])voidpublicWürfeln mit allen Würfeln sowie eine passende Konsolenausgabe
    rollTheDices(dices: ArrayList<Dice>)voidpublicWürfeln mit allen Würfeln sowie eine passende Konsolenausgabe
    +

    Konsolenausgabe

    +
    ID - Würfelwert
    Wurf 1
    1 - 5
    2 - 5
    3 - 2
    4 - 2
    5 - 4
    Wurf 2
    1 - 1
    2 - 3
    3 - 1
    4 - 1
    5 - 4

    +

    Hinweis

    +

    Verwende die Klasse Dice aus Übungsaufgabe OO03.

    +
    git switch exercises/oo/05
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/oo/oo06/index.html b/pr-preview/pr-238/exercises/oo/oo06/index.html new file mode 100644 index 0000000000..2120bbe2c6 --- /dev/null +++ b/pr-preview/pr-238/exercises/oo/oo06/index.html @@ -0,0 +1,12 @@ +OO06 | Programmieren mit Java

    OO06

      +
    • Erstelle die Klasse Creature mit Hilfe der abgebildeten Informationen
    • +
    • Erstelle eine ausführbare Klasse, welche zwei Kreaturen erzeugt, die sich +mehrmals abwechselnd gegenseitig angreifen
    • +
    +

    Attribute der Klasse Creature

    +
    AttributDatentypSichtbarkeitVeränderlichkeit
    nameStringprivateunveränderlich
    attackValueintprivateunveränderlich
    hitPointsintprivateveränderlich
    +

    Methoden der Klasse Creature

    +
    MethodeRückgabewertSichtbarkeitBeschreibung
    Creature(name: String, attackValue: int, hitPoints: int)voidpublicSetzen aller Attribute
    getName()StringpublicRückgabe des Namens
    getAttackValue()intpublicRückgabe des Angriffswertes
    getHitPoints()intpublicRückgabe der Lebenspunkte
    attackCreature(enemy: Creature)voidpublicReduktion der Lebenspunkte der angegriffenen Kreatur um den Angriffswert der angreifenden Kreatur
    +

    Konsolenausgabe

    +
    Zombie greift Vampir an und erzielt 2 Schaden
    Vampir hat noch 4 Lebenspunkte
    Vampir greift Zombie an und erzielt 4 Schaden
    Zombie hat noch 6 Lebenspunkte
    Zombie greift Vampir an und erzielt 2 Schaden
    Vampir hat noch 2 Lebenspunkte
    Vampir greift Zombie an und erzielt 4 Schaden
    Zombie hat noch 2 Lebenspunkte
    +
    git switch exercises/oo/06
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/oo/oo07/index.html b/pr-preview/pr-238/exercises/oo/oo07/index.html new file mode 100644 index 0000000000..383c177ae9 --- /dev/null +++ b/pr-preview/pr-238/exercises/oo/oo07/index.html @@ -0,0 +1,16 @@ +OO07 | Programmieren mit Java

    OO07

      +
    • Passe die Klasse Vehicle aus Übungsaufgabe OO02 mit Hilfe der +abgebildeten Informationen an
    • +
    • Passe die Klasse Vehicle so an, dass beim Erzeugen von Objekten das Attribut +numberOfVehicles inkrementiert wird
    • +
    • Passe die ausführbare Klasse aus Übungsaufgabe OO02 so an, dass +mehrere Fahrzeuge erstellt werden und dass die Anzahl Fahrzeuge einmal vor und +einmal nach den Objekterzeugungen ausgegeben wird
    • +
    +

    Attribute der Klasse Vehicle

    +
    AttributDatentypSichtbarkeitVeränderlichkeitLevel
    makeStringprivateunveränderlichnicht-statisch
    modelStringprivateunveränderlichnicht-statisch
    speedInKmhdoubleprivateveränderlichnicht-statisch
    numberOfVehiclesintprivateveränderlichstatisch
    +

    Methoden der Klasse Vehicle

    +
    MethodeRückgabewertSichtbarkeitLevelBeschreibung
    Vehicle(make: String, model: String)publicnicht-statischFestlegen des Herstellers und des Modells sowie Inkrementieren der Anzahl Fahrzeuge
    getMake()Stringpublicnicht-statischRückgabe des Herstellers
    getModel()Stringpublicnicht-statischRückgabe des Modells
    getSpeedInKmh()doublepublicnicht-statischRückgabe der Geschwindigkeit
    accelerate(valueInKmh: int)voidpublicnicht-statischErhöhung der Geschwindigkeit um den eingehenden Wert sowie eine passende Konsolenausgabe
    brake(valueInKmh: int)voidpublicnicht-statischReduzierung der Geschwindigkeit um den eingehenden Wert sowie eine passende Konsolenausgabe
    toString()Stringpublicnicht-statischRückgabe: Hersteller Modell
    getNumberOfVehicles()intpublicstatischRückgabe der Anzahl Fahrzeuge
    +

    Konsolenausgabe

    +
    Anzahl Fahrzeuge: 0
    Anzahl Fahrzeuge: 3
    +
    git switch exercises/oo/07
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/operators/index.html b/pr-preview/pr-238/exercises/operators/index.html new file mode 100644 index 0000000000..615dcc3aca --- /dev/null +++ b/pr-preview/pr-238/exercises/operators/index.html @@ -0,0 +1,12 @@ +Operatoren | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/operators/operators01/index.html b/pr-preview/pr-238/exercises/operators/operators01/index.html new file mode 100644 index 0000000000..2414304f1d --- /dev/null +++ b/pr-preview/pr-238/exercises/operators/operators01/index.html @@ -0,0 +1,5 @@ +Operators01 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/operators/operators02/index.html b/pr-preview/pr-238/exercises/operators/operators02/index.html new file mode 100644 index 0000000000..7a544e0104 --- /dev/null +++ b/pr-preview/pr-238/exercises/operators/operators02/index.html @@ -0,0 +1,4 @@ +Operators02 | Programmieren mit Java

    Operators02

    Welche Ausgabe erwartest Du nach Ablauf des abgebildeten Codings?

    +

    Coding

    +
    int a = 0;
    int b = 0;
    int c = 0;
    int d = 5;
    int e = 3;
    int f = 4;
    int g = 0;
    int h = 2;

    a = 3 * ++b;
    c = 3 * a++;

    d *= 6 + ++e;
    e = --f - 5 - f--;
    f = f + d % (e * 2);

    g = (h-- + 2) * (1 + --h);

    System.out.println("a: " + a);
    System.out.println("b: " + b);
    System.out.println("c: " + c);
    System.out.println("d: " + d);
    System.out.println("e: " + e);
    System.out.println("f: " + f);
    System.out.println("g: " + g);
    System.out.println("h: " + h);
    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/operators/operators03/index.html b/pr-preview/pr-238/exercises/operators/operators03/index.html new file mode 100644 index 0000000000..1c8e315d32 --- /dev/null +++ b/pr-preview/pr-238/exercises/operators/operators03/index.html @@ -0,0 +1,4 @@ +Operators03 | Programmieren mit Java

    Operators03

    Welche Ausgabe erwartest Du nach Ablauf des abgebildeten Codings?

    +

    Coding

    +
    byte a = 116;
    byte b = 59;
    byte c, d, e, f;

    c = (byte) (a & b);
    d = (byte) (a | b);
    e = (byte) (a ^ b);
    f = (byte) (~a);

    System.out.println("c: " + c);
    System.out.println("d: " + d);
    System.out.println("e: " + e);
    System.out.println("f: " + f);
    +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/optionals/index.html b/pr-preview/pr-238/exercises/optionals/index.html new file mode 100644 index 0000000000..c20614b1fd --- /dev/null +++ b/pr-preview/pr-238/exercises/optionals/index.html @@ -0,0 +1,3 @@ +Optionals | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/optionals/optionals01/index.html b/pr-preview/pr-238/exercises/optionals/optionals01/index.html new file mode 100644 index 0000000000..a0ffa5f1a2 --- /dev/null +++ b/pr-preview/pr-238/exercises/optionals/optionals01/index.html @@ -0,0 +1,9 @@ +Optionals01 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/optionals/optionals02/index.html b/pr-preview/pr-238/exercises/optionals/optionals02/index.html new file mode 100644 index 0000000000..d48ec17cc2 --- /dev/null +++ b/pr-preview/pr-238/exercises/optionals/optionals02/index.html @@ -0,0 +1,9 @@ +Optionals02 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/optionals/optionals03/index.html b/pr-preview/pr-238/exercises/optionals/optionals03/index.html new file mode 100644 index 0000000000..ab50a01486 --- /dev/null +++ b/pr-preview/pr-238/exercises/optionals/optionals03/index.html @@ -0,0 +1,10 @@ +Optionals03 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/polymorphy/index.html b/pr-preview/pr-238/exercises/polymorphy/index.html new file mode 100644 index 0000000000..5fb09bd342 --- /dev/null +++ b/pr-preview/pr-238/exercises/polymorphy/index.html @@ -0,0 +1,43 @@ +Polymorphie | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/polymorphy/polymorphy01/index.html b/pr-preview/pr-238/exercises/polymorphy/polymorphy01/index.html new file mode 100644 index 0000000000..a44f702b57 --- /dev/null +++ b/pr-preview/pr-238/exercises/polymorphy/polymorphy01/index.html @@ -0,0 +1,29 @@ +Polymorphism01 | Programmieren mit Java

    Polymorphism01

      +
    • Passe die Klasse Vehicle aus Übungsaufgabe +Enumerations01 anhand des abgebildeten +Klassendiagramms an und erstelle die Klassen Car und Truck
    • +
    • Passe die ausführbare Klasse aus Übungsaufgabe +Enumerations01 so an, dass keine Fahrzeuge, +sondern Autos und Lastwagen erzeugt und ausgegeben werden
    • +
    +

    Klassendiagramm

    + +

    Hinweise zur Klasse Car

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren
    • +
    • Die Methode void doATurboBoost() soll die Geschwindigkeit verdoppeln und die +Geschwindigkeit in der Konsole ausgeben.
    • +
    • Die Methode String toString() soll alle Attribute von Car ausgeben: +Opel Zafira Life (Diesel, 7 Sitzplätze).
    • +
    +

    Hinweise zur Klasse Truck

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren
    • +
    • Die Methode void transform() soll das Attribut isTransformed invertieren und +den aktuellen Status in der Konsole ausgeben.
    • +
    • Die Methode String toString() soll alle Attribute von Truck ausgeben: +MAN TGX (Diesel, 20t).
    • +
    +

    Konsolenausgabe

    +
    Anzahl Fahrzeuge: 0
    Anzahl Fahrzeuge: 3
    Porsche 911 (Elektro, 2 Sitzplätze)
    MAN TGX (Diesel, 20t)
    Opel Zafira Life (Diesel, 7 Sitzplätze)
    Porsche 911 beschleunigt auf 50 km/h
    MAN TGX verwandelt sich in einen Autobot
    Porsche 911 macht einen TurboBoost und beschleunigt auf 100 km/h
    MAN TGX verwandelt sich in einen Lastwagen zurück
    +
    git switch exercises/polymorphy/01
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/polymorphy/polymorphy02/index.html b/pr-preview/pr-238/exercises/polymorphy/polymorphy02/index.html new file mode 100644 index 0000000000..989e6cdeed --- /dev/null +++ b/pr-preview/pr-238/exercises/polymorphy/polymorphy02/index.html @@ -0,0 +1,19 @@ +Polymorphism02 | Programmieren mit Java

    Polymorphism02

      +
    • Erstelle die Klasse Rental anhand des abgebildeten Klassendiagramms
    • +
    • Passe die ausführbare Klasse aus Übungsaufgabe Polymorphism01 +so an, dass alle erzeugten Autos und Lastwagen in einer Fahrzeugvermietung +abgelegt und alle Attribute der Fahrzeugvermietung ausgegeben werden
    • +
    +

    Klassendiagramm

    + +

    Hinweise zur Klasse Rental

    +
      +
    • Der Konstruktor soll alle Attribute initialisieren
    • +
    • Die Methode void addVehicle(vehicle: Vehicle) soll der Fahrzeugvermietung +ein Fahrzeug hinzufügen
    • +
    • Die Methode void addAllVehicles(vehicles: Vehicle...) soll der +Fahrzeugvermietung mehrere Fahrzeug hinzufügen
    • +
    +

    Konsolenausgabe

    +
    Fahrzeugvermietung Müller
    Unsere Fahrzeuge:
    Porsche 911 (Elektro, 2 Sitzplätze)
    MAN TGX (Diesel, 20t)
    Opel Zafira Life (Diesel, 7 Sitzplätze)
    +
    git switch exercises/polymorphy/02
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/polymorphy/polymorphy03/index.html b/pr-preview/pr-238/exercises/polymorphy/polymorphy03/index.html new file mode 100644 index 0000000000..1da8852c03 --- /dev/null +++ b/pr-preview/pr-238/exercises/polymorphy/polymorphy03/index.html @@ -0,0 +1,12 @@ +Polymorphism03 | Programmieren mit Java

    Polymorphism03

      +
    • Passe die Klasse Rental aus Übungsaufgabe Polymorphism02 +anhand des abgebildeten Klassendiagramms an
    • +
    • Passe die ausführbare Klasse aus Übungsaufgabe Polymorphism02 +so an, dass sich alle Lastwagen der Fahrzeugvermietung in Autobots verwandeln
    • +
    +

    Klassendiagramm

    + +

    Hinweis zur Klasse Rental

    +

    Die Methode void transformAllTrucks() soll alle Lastwagen in Autobots +verwandeln.

    +
    git switch exercises/polymorphy/03
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/polymorphy/polymorphy04/index.html b/pr-preview/pr-238/exercises/polymorphy/polymorphy04/index.html new file mode 100644 index 0000000000..af7438f38c --- /dev/null +++ b/pr-preview/pr-238/exercises/polymorphy/polymorphy04/index.html @@ -0,0 +1,22 @@ +Polymorphism04 | Programmieren mit Java

    Polymorphism04

      +
    • Passe die Klasse Dice aus Übungsaufgabe +ClassDiagrams02 anhand des abgebildeten +Klassendiagramms an und erstelle die Klassen HighValueDice und +LowValueDice
    • +
    • Passe die Klasse Player aus Übungsaufgabe +ClassDiagrams02 anhand des abgebildeten +Klassendiagramms an
    • +
    • Passe die Methode boolean move(player: Player) der Klasse DiceGame aus +Übungsaufgabe ClassDiagrams02 so an, +dass jeder Spieler während des Spiels einmal die Möglichkeit hat, entweder nur +mit 4-5-6-Würfeln oder 1-2-3-Würfeln zu würfeln
    • +
    +

    Klassendiagramm

    + +

    Hinweis zur Klasse HighValueDice

    +

    Die Methode void rollTheDice() soll nur 4er, 5er und 6er "würfeln".

    +

    Hinweis zur Klasse LowValueDice

    +

    Die Methode void rollTheDice() soll nur 1er, 2er und 3er "würfeln".

    +

    Konsolenausgabe

    +
    Hans hat aktuell 0 Punkte
    Hans, möchtest Du einmalig Spezialwürfel verwenden (true, false)?: true
    Hans, welche Spezialwürfel möchtest Du verwenden (1=4-5-6-Würfel, 2=1-2-3-Würfel)?: 1
    Hans, möchtest Du würfeln (true, false)?: true
    Hans hat 12 Punkte
    Hans hat insgesamt 12 Punkte

    Lisa hat aktuell 46 Punkte
    Lisa, möchtest Du würfeln (true, false)?: true
    Lisa hat 12 Punkte
    Lisa hat insgesamt 58 Punkte
    Lisa hat verloren
    Der Sieger heißt Hans und hat 49 Punkte
    +
    git switch exercises/polymorphy/04
    Open in Gitpod
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/trees/index.html b/pr-preview/pr-238/exercises/trees/index.html new file mode 100644 index 0000000000..0262fb94b0 --- /dev/null +++ b/pr-preview/pr-238/exercises/trees/index.html @@ -0,0 +1,3 @@ +Bäume | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/trees/trees01/index.html b/pr-preview/pr-238/exercises/trees/trees01/index.html new file mode 100644 index 0000000000..aff8b73038 --- /dev/null +++ b/pr-preview/pr-238/exercises/trees/trees01/index.html @@ -0,0 +1,9 @@ +Trees01 | Programmieren mit Java

    Trees01

      +
    • Bestimme für den abgebildeten Binärbaum die Höhe
    • +
    • Bestimme für jeden Knoten des abgebildeten Binärbaums den Grad und die Tiefe
    • +
    • Traversiere den abgebildeten Binärbaum unter Verwendung des Tiefendurchlaufs
    • +
    • Traversiere den abgebildeten Binärbaum unter Verwendung des Breitendurchlaufs
    • +
    +

    Binärbaum

    + +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/unit-tests/index.html b/pr-preview/pr-238/exercises/unit-tests/index.html new file mode 100644 index 0000000000..408a210856 --- /dev/null +++ b/pr-preview/pr-238/exercises/unit-tests/index.html @@ -0,0 +1,3 @@ +Komponententests (Unit-Tests) | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/unit-tests/unit-tests01/index.html b/pr-preview/pr-238/exercises/unit-tests/unit-tests01/index.html new file mode 100644 index 0000000000..a5d79fce18 --- /dev/null +++ b/pr-preview/pr-238/exercises/unit-tests/unit-tests01/index.html @@ -0,0 +1,4 @@ +UnitTests01 | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/unit-tests/unit-tests02/index.html b/pr-preview/pr-238/exercises/unit-tests/unit-tests02/index.html new file mode 100644 index 0000000000..0d1dfb3f92 --- /dev/null +++ b/pr-preview/pr-238/exercises/unit-tests/unit-tests02/index.html @@ -0,0 +1,21 @@ +UnitTests02 | Programmieren mit Java

    UnitTests02

    Erstelle die JUnit5-Testklasse RentalTest und erweitere die Klasse Rental +aus Übungsaufgabe Exceptions01 anhand des +abgebildeten Klassendiagramms.

    +

    Klassendiagramm

    + +

    Hinweis zur Klasse Rental

    +

    Die Methode void accelerateAllVehicles(valueInKmh: int) soll alle Fahrzeuge +der Fahrzeugvermietung um den eingehenden Wert beschleunigen.

    +

    Hinweise zur Klasse RentalTest

    +
      +
    • Die Lebenszyklus-Methode void setUp() soll eine Fahrzeugvermietung samt +dazugehöriger Fahrzeuge erzeugen
    • +
    • Die Testmethode void testTransformAllTrucks() soll prüfen, ob nach Ausführen +der Methode void transformAllTrucks() der Klasse Rental alle Lastwagen in +Autobots umgewandelt werden und nach erneutem Ausführen wieder +zurückverwandelt werden
    • +
    • Die Testmethode void testAccelerateAllVehicles() soll prüfen, ob beim +Ausführen der Methode void accelerateAllVehicles(valueInKmh: int) der Klasse +Rental mit einem negativen Wert die Ausnahme InvalidValueException +ausgelöst wird
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/unit-tests/unit-tests03/index.html b/pr-preview/pr-238/exercises/unit-tests/unit-tests03/index.html new file mode 100644 index 0000000000..c9282e4e73 --- /dev/null +++ b/pr-preview/pr-238/exercises/unit-tests/unit-tests03/index.html @@ -0,0 +1,26 @@ +UnitTests03 | Programmieren mit Java

    UnitTests03

    Erstelle die JUnit5-Testklasse TelephoneBookTest anhand des abgebildeten +Klassendiagramms.

    +

    Klassendiagramm

    + +

    Hinweise zur Klasse TelephoneBookTest

    +
      +
    • Die Lebenszyklus-Methode void setUp() soll ein Telefonbuch samt +dazugehöriger Einträge erzeugen
    • +
    • Die Testmethode void testAddEntry() soll prüfen, ob nach dem Ausführen der +Methode void addEntry(person: Person, telephoneNumber: TelephoneNumber) mit +einer Person, zu der es bereits einen Eintrag im Telefonbuch gibt, die +Telefonnummer aktualisiert wurde
    • +
    • Die Testmethode void testGetTelephoneNumberByName1() soll prüfen, ob beim +Ausführen der Methode +Optional<TelephoneNumber> getTelephoneNumberByName(name: String) mit einem +Namen, zu dem es eine entsprechende Person im Telefonbuch gibt, die +dazugehörige Telefonnummer als Optional zurückgegeben wird
    • +
    • Die Testmethode void testGetTelephoneNumberByName2() soll prüfen, ob beim +Ausführen der Methode +Optional<TelephoneNumber> getTelephoneNumberByName(name: String) mit einem +Namen, zu dem es keine entsprechende Person im Telefonbuch gibt, ein leeres +Optional zurückgegeben wird
    • +
    +

    Hinweis

    +

    Verweden die Klasse TelephoneBook aus Übungsaufgabe +Optionals02.

    \ No newline at end of file diff --git a/pr-preview/pr-238/exercises/unit-tests/unit-tests04/index.html b/pr-preview/pr-238/exercises/unit-tests/unit-tests04/index.html new file mode 100644 index 0000000000..5b1ac1a41b --- /dev/null +++ b/pr-preview/pr-238/exercises/unit-tests/unit-tests04/index.html @@ -0,0 +1,32 @@ +UnitTests04 | Programmieren mit Java

    UnitTests04

    Erstelle die JUnit5-Testklasse BookCollectionTest anhand des abgebildeten +Klassendiagramms.

    +

    Klassendiagramm

    + +

    Hinweise zur Klasse BookCollectionTest

    +
      +
    • Die Lebenszyklus-Methode void setUp() soll den Attributen der Testklasse +passende Werte zuweisen
    • +
    • Die Testmethode void testAddAuthor() soll prüfen, ob beim Ausführen der +Methode void addAuthor(author: Author) mit einem Autoren, der bereits in der +Büchersammlung vorhanden ist, die Ausnahme DuplicateKeyException ausgelöst +wird
    • +
    • Die Testmethode void testAddBook() soll prüfen, ob nach dem Ausführen der +Methode void addBook(author: Author, book: Book) der entsprechende Eintrag +aktualisiert wurde
    • +
    • Die Testmethode void testGetMostDiligentAuthor1() soll prüfen, ob beim +Ausführen der Methode Optional<Author> getMostDiligentAuthor() auf eine +befüllte Büchersammlung der Autor mit den meisten Büchern in der +Büchersammlung als Optional zurückgegeben wird
    • +
    • Die Testmethode void testGetMostDiligentAuthor2() soll prüfen, ob beim +Ausführen der Methode Optional<Author> getMostDiligentAuthor() auf eine +leere Büchersammlung ein leeres Optional zurückgegeben wird
    • +
    • Die Testmethode void testGetBookByTitle() soll prüfen, ob beim Ausführen der +Methode Optional<Book> getBookByTitle(title: String) mit einem Buchtitel zu +einem vorhandenen Buch das entsprechende Buch als Optional zurückgegeben wird +und ob beim Ausführen der Methode +Optional<Book> getBookByTitle(title: String) mit einem Buchtitel zu einem +nicht vorhandenen Buch ein leeres Optional zurückgegeben wird
    • +
    +

    Hinweis

    +

    Verweden die Klasse BookCollection aus Übungsaufgabe +Optionals01.

    \ No newline at end of file diff --git a/pr-preview/pr-238/img/activity-diagram-example.png b/pr-preview/pr-238/img/activity-diagram-example.png new file mode 100644 index 0000000000..0e7dfa3ef4 Binary files /dev/null and b/pr-preview/pr-238/img/activity-diagram-example.png differ diff --git a/pr-preview/pr-238/img/big-o-complexity.png b/pr-preview/pr-238/img/big-o-complexity.png new file mode 100644 index 0000000000..ce062e4764 Binary files /dev/null and b/pr-preview/pr-238/img/big-o-complexity.png differ diff --git a/pr-preview/pr-238/img/class-diagram-example.png b/pr-preview/pr-238/img/class-diagram-example.png new file mode 100644 index 0000000000..88d68045a5 Binary files /dev/null and b/pr-preview/pr-238/img/class-diagram-example.png differ diff --git a/pr-preview/pr-238/img/example-tree.png b/pr-preview/pr-238/img/example-tree.png new file mode 100644 index 0000000000..63226febc6 Binary files /dev/null and b/pr-preview/pr-238/img/example-tree.png differ diff --git a/pr-preview/pr-238/img/favicon.ico b/pr-preview/pr-238/img/favicon.ico new file mode 100644 index 0000000000..716c0fb803 Binary files /dev/null and b/pr-preview/pr-238/img/favicon.ico differ diff --git a/pr-preview/pr-238/img/interpolation-search-formula.svg b/pr-preview/pr-238/img/interpolation-search-formula.svg new file mode 100644 index 0000000000..3c714c43a6 --- /dev/null +++ b/pr-preview/pr-238/img/interpolation-search-formula.svg @@ -0,0 +1,58 @@ + +{\displaystyle p:=l+{\frac {w-A[l]}{A[r]-A[l]}}\cdot (r-l)} + + + \ No newline at end of file diff --git a/pr-preview/pr-238/img/logo.png b/pr-preview/pr-238/img/logo.png new file mode 100644 index 0000000000..a75603c095 Binary files /dev/null and b/pr-preview/pr-238/img/logo.png differ diff --git a/pr-preview/pr-238/img/scanner-error.png b/pr-preview/pr-238/img/scanner-error.png new file mode 100644 index 0000000000..f12666c3f8 Binary files /dev/null and b/pr-preview/pr-238/img/scanner-error.png differ diff --git a/pr-preview/pr-238/index.html b/pr-preview/pr-238/index.html new file mode 100644 index 0000000000..bdc237f5b1 --- /dev/null +++ b/pr-preview/pr-238/index.html @@ -0,0 +1,23 @@ +Einführung | Programmieren mit Java

    Einführung

    +

    1995 veröffentliche die Firma Sun Microsystems die Programmiersprache Java. +Diese hat sich im Laufe der Zeit als universelle, für vielfältige Zwecke +einsetzbare Lösung und als Quasi-Standard für die plattformunabhängige +Entwicklung etabliert. Zudem war Java einer der maßgeblichen Wegbereiter für die +Verbreitung des objektorientierten Programmierparadigmas, welches gemeinhin in +vielen Bereichen als State-of-the-Art gilt.

    +

    Diese Webseite sowie die dazugehörigen Vorlesungen sollen eine systematische +Einführung in das Programmieren mit Java ermöglichen. Hierzu werden wichtige, +praxisrelevante Konzepte und Methoden der Programmierung vorgestellt, wobei die +objektorientierte Programmierung einen großen Raum einnimmt.

    +

    Wir stellen grundsätzliche alle Inhalte der Vorlesung (Dokumentation, +Abbildungen, Quellcode) in Textform bereit (Everything as Code). Da +professionelle Softwareentwicklung immer auch Zusammenarbeit bedeutet, möchten +wir zudem auf moderne Art und Weise (z.B. per Issues, Pull Requests oder +Discussions) die Studierenden zu eben dieser Zusammenarbeit animieren +(Community by Design).

    +

    Contributors

    + + + + +
    \ No newline at end of file diff --git a/pr-preview/pr-238/mermaid/tree/index.html b/pr-preview/pr-238/mermaid/tree/index.html new file mode 100644 index 0000000000..2acc52c3f3 --- /dev/null +++ b/pr-preview/pr-238/mermaid/tree/index.html @@ -0,0 +1,74 @@ +Tree Example | Programmieren mit Java

    Tree

    + +
    +
    +

    Root Node (Wurzelknoten)

    +

    Der Root Node ist der oberste Knoten in einem Baum oder der Knoten, der keinen +Parent Node (Elternknoten) hat. A ist der Root Node des Baumes. Ein nicht +leerer Baum muss exakt einen Root Node besitzen.

    +

    Child Node (Kindknoten)

    +

    Ein Knoten, welcher der direkte Nachfolger eines Knoten ist, nennt man Child +Node. Die Knoten D und E sind Child Nodes von B.

    +

    Parent Node (Elternknoten)

    +

    Ein Knoten, welcher der direkte Vorgänger eines Knoten ist, nenne man Parent +Node. Der Knoten B ist der Parent Node von D und E.

    +

    Leaf Node (Blatt)

    +

    Ein Knoten, welcher keine direkten Nachfolger hat, nennt man Leaf Node. I, +K, J, F, G und H sind die Leaf Nodes des Baumes.

    +

    Ancestor Node (Vorgänger)

    +

    Alle Vorgänger von einem Knoten bis einschließlich dem Root Node sind Ancestor +Nodes. A und B sind Ancestor Nodes des Knoten E.

    +

    Descendant (Nachfolger)

    +

    Alle Nachfolger von einem Knoten sind Descendant Nodes. D, I und K +sind Descendant Nodes des Knoten B.

    +

    Sibling (Geschwister)

    +

    Alle Child Nodes eines Knotens sind Siblings. D und E sind Siblings, +aber auch F, G und H sind Siblings.

    +

    Level (Tiefe)

    +

    Die Anzahl der Kanten vom Root Node bis zu diesem Knoten beschreibt das Level. +Der Root Knoten hat immer das Level 0. I hat das Level 3, G das Level 2 +und B hat das Level 1.

    +

    Neighbor (Nachbar)

    +

    Ein Parent Node oder ein Child Node nennt man Neighbor eines Knoten. B, +I und K sind die Nachbarn des Knoten D.

    +

    Subtree (Teilbaum)

    +

    Ein Teilbaum ist jeder Knoten im Baum mit seinen Nachfolgern. Alles Unterhalb +von B ist ein Subtree. Alles Unterhalb von D ist ein Subtree. Alles +Unterhalb von E ist ein Subtree. Alles Unterhalb von C ist ein Subtree.

    +

    Binary Tree

    + +
    +
    + +
      +
    • Pre Order Traversal: 7, 23, 5, 4, 3, 18, 21
    • +
    • In Order Traversal: 5, 23, 4, 7, 18, 3, 21.
    • +
    • Post Order Traversal: 5, 4, 23, 18, 21, 3, 7.
    • +
    +

    Code

    +

    Wenn unser aktueller Node null ist. Return Ansonsten recurse left, recurse +right.

    + +
      +
    • 7, 23, 3, 5, 4, 18, 21
    • +
    +

    Binary Search Tree

    + +
    +
    +

    Heap

    + +
    +
    +

    Min Heap

    +

    Ein Min Heap hat immer an der obersten Stelle das kleinste Element. D.h. jeder +Descendant des Root Knotens ist größer oder gleich groß wie der Root Knoten.

    +

    Max Heap

    +

    Ein Max Heap hat immer an der obersten Stelle das größte Element. D.h. jeder +Descendant des Root Knotens ist kleiner oder gleich groß wie der Root Knoten.

    +

    Indizes

    +
      +
    • Parent: (index - 1) / 2
    • +
    • Left Child: 2 * index + 1
    • +
    • Right Child: 2 * index + 2
    • +
    \ No newline at end of file diff --git a/pr-preview/pr-238/pdf/exercises-koblenz.pdf b/pr-preview/pr-238/pdf/exercises-koblenz.pdf new file mode 100644 index 0000000000..1bf8af230e Binary files /dev/null and b/pr-preview/pr-238/pdf/exercises-koblenz.pdf differ diff --git a/pr-preview/pr-238/pdf/exercises-ulm.pdf b/pr-preview/pr-238/pdf/exercises-ulm.pdf new file mode 100644 index 0000000000..29394834b6 Binary files /dev/null and b/pr-preview/pr-238/pdf/exercises-ulm.pdf differ diff --git a/pr-preview/pr-238/pdf/java-cheat-sheet.pdf b/pr-preview/pr-238/pdf/java-cheat-sheet.pdf new file mode 100644 index 0000000000..f22f0d99c7 Binary files /dev/null and b/pr-preview/pr-238/pdf/java-cheat-sheet.pdf differ diff --git a/pr-preview/pr-238/pdf/steffen/api.pdf b/pr-preview/pr-238/pdf/steffen/api.pdf new file mode 100644 index 0000000000..3221a0a946 Binary files /dev/null and b/pr-preview/pr-238/pdf/steffen/api.pdf differ diff --git a/pr-preview/pr-238/pdf/steffen/klassendiagramm.pdf b/pr-preview/pr-238/pdf/steffen/klassendiagramm.pdf new file mode 100644 index 0000000000..2dca4fed75 Binary files /dev/null and b/pr-preview/pr-238/pdf/steffen/klassendiagramm.pdf differ diff --git a/pr-preview/pr-238/pdf/steffen/klausur.pdf b/pr-preview/pr-238/pdf/steffen/klausur.pdf new file mode 100644 index 0000000000..afcc653b13 Binary files /dev/null and b/pr-preview/pr-238/pdf/steffen/klausur.pdf differ diff --git a/pr-preview/pr-238/sitemap.xml b/pr-preview/pr-238/sitemap.xml new file mode 100644 index 0000000000..7f884fb2f0 --- /dev/null +++ b/pr-preview/pr-238/sitemap.xml @@ -0,0 +1 @@ +https://jappuccini.github.io/java-docs/pr-preview/pr-238/mermaid/treeweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-1/abstract-and-finalweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-1/class-diagram-java-api-enumweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-1/classes-and-objectsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-1/constructor-and-staticweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-1/datatypes-and-dataobjectsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-1/exceptionsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-1/if-and-switchweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-1/inheritanceweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-1/interfacesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-1/introweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-1/math-random-scannerweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-1/methods-and-operatorsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-1/polymorphyweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-2/functional-programmingweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-2/generics-optionalweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-2/intro-dsaweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-2/iteration-recursionweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-2/recapweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-2/search-algoweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-2/sets-maps-hashes-recordsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-2/sort-algoweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-2/stack-queue-listweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-2/stream-apiweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/java-2/treesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/steffen/tbdweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/slides/templateweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tagsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/abstractweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/activity-diagramsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/algorithmsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/arraysweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/casesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/class-diagramsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/class-structureweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/codingweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/collectionsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/comparatorsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/console-applicationsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/control-structuresweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/data-objectsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/data-typesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/dates-and-timesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/designweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/enumerationsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/exceptionsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/filesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/finalweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/genericsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/gitweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/guiweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/hashingweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/inheritanceweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/inhertianceweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/inner-classesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/interfacesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/io-streamsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/javaweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/java-apiweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/java-stream-apiweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/javafxweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/lambdasweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/listsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/lombokweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/loopsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/mapsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/mathweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/mavenweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/objectweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/ooweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/operatorsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/optionalsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/polymorphismweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/queuesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/randomweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/recordsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/setsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/slf-4-jweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/stringsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/testsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/treesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/umlweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/unit-testsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/tags/wrappersweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/daniel/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/daniel/java1/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/daniel/java1/exam-resultsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/daniel/java1/sample-examweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/daniel/java1/wwibe224weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/daniel/java2/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/daniel/java2/exam-resultsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/daniel/java2/sample-examweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/steffen/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/steffen/demosweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/2023weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/exam-preparation/2024weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/steffen/java-1/slidesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/2023weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/exam-preparation/2024weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/project-reportweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/additional-material/steffen/java-2/slidesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/abstract-and-finalweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/activity-diagramsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/algorithmsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/array-listsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/arraysweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/calculationsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/casesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/class-diagramsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/class-structureweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/classesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/codingweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/comparatorsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/console-applicationsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/data-objectsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/data-typesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/dates-and-timesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/designweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/enumerationsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/exceptionsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/filesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/genericsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/gitweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/guiweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/hashingweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/inheritanceweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/inner-classesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/interfacesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/io-streamsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/javaweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/java-apiweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/java-collections-frameworkweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/java-stream-apiweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/javafxweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/lambdasweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/listsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/lombokweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/loopsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/mapsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/mavenweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/objectweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/ooweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/operatorsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/optionalsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/polymorphyweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/pseudo-random-numbersweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/recordsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/references-and-objectsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/slf4jweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/stringsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/testsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/treesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/unit-testsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/documentation/wrappersweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/cash-machineweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/discount-calculatorweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/insertion-sortweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/activity-diagrams/selection-sortweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cards-dealerweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cashier-systemweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/christmas-treeweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/cookie-jarweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/creatureweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/fast-foodweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/gift-bagweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/parking-garageweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/shapeweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/student-courseweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/class-diagrams/zooweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java1/dice-games/dice-game-04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/corner-shopweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/dictionaryweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/human-resourcesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/job-offerweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/lego-brickweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/libraryweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/playerweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/shopping-portalweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/space-stationweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/teamweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/class-diagrams/video-collectionweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/citiesweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/measurement-dataweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/phone-storeweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/planetsweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exam-exercises/exam-exercises-java2/queries/tanksweekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/abstract-and-final/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/abstract-and-final/abstract-and-final01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/activity-diagrams/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/activity-diagrams/activity-diagrams01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/algorithms/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/algorithms/algorithms01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/algorithms/algorithms02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/arrays/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/arrays/arrays01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/arrays/arrays02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/arrays/arrays03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/arrays/arrays04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/arrays/arrays05weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/arrays/arrays06weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/arrays/arrays07weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/cases/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/cases/cases01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/cases/cases02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/cases/cases03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/cases/cases04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/cases/cases05weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/cases/cases06weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/class-diagrams/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/class-diagrams/class-diagrams01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/class-diagrams/class-diagrams02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/class-diagrams/class-diagrams03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/class-diagrams/class-diagrams04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/class-diagrams/class-diagrams05weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/class-structure/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/class-structure/class-structure01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/coding/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/comparators/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/comparators/comparators01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/comparators/comparators02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/console-applications/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/console-applications/console-applications01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/console-applications/console-applications02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/data-objects/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/data-objects/data-objects01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/data-objects/data-objects02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/enumerations/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/enumerations/enumerations01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/exceptions/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/exceptions/exceptions01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/exceptions/exceptions02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/exceptions/exceptions03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/generics/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/generics/generics01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/generics/generics02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/generics/generics03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/generics/generics04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/git/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/git/git01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/git/git02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/git/git03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/git/git04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/git/git05weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/hashing/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/hashing/hashing01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/hashing/hashing02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/inner-classes/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/inner-classes/inner-classes04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/interfaces/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/interfaces/interfaces01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/io-streams/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/io-streams/io-streams01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/io-streams/io-streams02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/java-api/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/java-api/java-api01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/java-api/java-api02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/java-api/java-api03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/java-api/java-api04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/java-stream-api/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/java-stream-api/java-stream-api01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/java-stream-api/java-stream-api02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/javafx/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/javafx/javafx01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/javafx/javafx02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/javafx/javafx03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/javafx/javafx04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/javafx/javafx05weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/javafx/javafx06weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/javafx/javafx07weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/javafx/javafx08weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/lambdas/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/lambdas/lambdas05weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/loops/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/loops/loops01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/loops/loops02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/loops/loops03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/loops/loops04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/loops/loops05weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/loops/loops06weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/loops/loops07weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/loops/loops08weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/maps/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/maps/maps01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/maps/maps02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/oo/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/oo/oo01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/oo/oo02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/oo/oo03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/oo/oo04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/oo/oo05weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/oo/oo06weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/oo/oo07weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/operators/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/operators/operators01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/operators/operators02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/operators/operators03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/optionals/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/optionals/optionals01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/optionals/optionals02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/optionals/optionals03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/polymorphy/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/polymorphy/polymorphy01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/polymorphy/polymorphy02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/polymorphy/polymorphy03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/polymorphy/polymorphy04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/trees/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/trees/trees01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/unit-tests/weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests01weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests02weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests03weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/exercises/unit-tests/unit-tests04weekly0.5https://jappuccini.github.io/java-docs/pr-preview/pr-238/weekly0.5 \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-1/abstract-and-final/index.html b/pr-preview/pr-238/slides/steffen/java-1/abstract-and-final/index.html new file mode 100644 index 0000000000..2cfc27840c --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-1/abstract-and-final/index.html @@ -0,0 +1 @@ +Programmieren mit Java

    Agenda

    • Wiederholung
    • abstract Modifier
    • final Modifier
    • Zusammenfassung

    Wiederholung

    Polymorphie

    • Polymorphie
    • Upcast
    • Downcast
    • instanceof

    abstract Modifier

    Kann angewendet werden auf

    • Klassen
    • Methoden

    Abstrakte Klassen

    • kann kein Objekt davon erzeugt werden
    • muss erweitert werden von einer anderen Klasse

    Zweck von abstrakten Klassen

    • Wiederverwendung von Code
    • Erzwingen von spezifischen Implementierungen

    Demo abstrakte Klasse

    • Animal Klasse abstrakt machen

    Abstrakte Methode

    • kann nur in abstrakten Klassen definiert werden
    • definiert Signatur
    • muss von erbenden Klassen implementiert werden

    Zweck von abstrakten Methoden

    • Erzwingen von spezifischen Methoden

    Demo abstrakte Methode

    • abstrakte Methode makeSound

    final Modifier

    Kann angewendet werden auf

    • Klassen
    • Methoden
    • Attribute
    • Variablen

    Finale Klassen

    • kann man nicht ableiten

    Zweck von finalen Klassen

    • weitere Ableitungen machen keinen Sinn
    • Klasse ist nicht zur Erweiterung gedacht

    Demo finale Klasse

    • Dog Klasse final machen

    Finale Methode

    • kann nicht überschrieben werden

    Zweck von finalen Methoden

    • Verhalten erzwingen

    Demo finale Methode

    • finale Methode bark

    Zusammenfassung

    • abstrakte Klassen
    • abstrakte Methoden
    • finale Klassen
    • finale Methoden

    Rest of the day

    • Abstract and Final 01
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-1/class-diagram-java-api-enum/index.html b/pr-preview/pr-238/slides/steffen/java-1/class-diagram-java-api-enum/index.html new file mode 100644 index 0000000000..2981876a68 --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-1/class-diagram-java-api-enum/index.html @@ -0,0 +1,21 @@ +Programmieren mit Java

    Agenda

    • Wiederholung
    • Java API
    • final Modifier
    • Enumeration
    • Klassendiagramm
    • Aktivitätsdiagramm
    • Zusammenfassung

    Wiederholung

    Klasse

    • Abstraktion von Objekten
    • definiert durch Methoden und Attribute

    Objekt

    • Instanz einer Klasse
    • Verhalten abhängig von der Instanz
    • ist eine Referenzvariable
    • hat den default Wert null

    Modifiers

    • public & private
    • Getter und Setter
    • this
    • Überladen von Methoden
    • Konstruktor
    • static

    Java API

    Wrapper Klassen

    public static void main(String[] args) {
    +  Integer i = Integer.valueOf("631");
    +  System.out.println(i) // 631;
    +  Boolean b = Boolean.logicalXor(true, false);
    +  System.out.println(b) // true
    +  Character c = Character.toUpperCase('m');
    +  System.out.println(c) // 'M'
    +}

    Datums- und Zeitangaben

    public static void main(String[] args) {
    +  LocalDateTime now = LocalDateTime.now();
    +  System.out.println("Jahr: " + now.getYear());
    +  System.out.println("Monat: " + now.getMonth());
    +  System.out.println("Tag: " + now.getDayOfMonth());
    +}

    Dateien lesen*

    public static void main(String[] args) {
    +  File file = new File("text.txt");
    +  Scanner scanner = new Scanner(file);
    +  while(scanner.hasNextLine()) {
    +    String currentLine = scanner.nextLine();
    +    System.out.println(currentLine);
    +  }
    +  scanner.close();
    +}

    *NKR

    final Modifier

    Kann angewendet werden auf

    • Klassen (wird später behandelt)
    • Methoden (wird später behandelt)
    • Attribute
    • Variablen

    Was bewirkt der final modifier?

    • initialisierung nur einmal möglich
    • bei Klassen auch im Konstruktor

    Demo final Modifier

    • char gender
    • String firstName

    Enumeration

    Was ist eine Enumeration?

    Gruppe von Konstanten

    • Geschlecht (Male, Female, Divers)
    • Motorart (Benzin, Diesel, Elektro)
    • Genre (Action, Horror, Romanze)
    • USK (0, 6, 12, 16, 18)

    Wie kann man das realisieren?

    • Anzahl an Geschlechtern?
    • Welche Attribute sind interessant?
    • Wie kann eine andere Klasse ein Geschlecht verwenden?
    • Wie keine weiteren Geschlechtinstanzen zulassen?
    • Wie die Manipulation existierender Geschlechtsinstanzen verhindern?

    Geht das nicht einfacher?

    • enum anstatt class
    • Konstanten kommagetrennt festlegen
    • access modifier Konstruktor optional

    Demo Enumeration

    • switch
    • isBinary
    • values & ordinal

    Klassendiagramm

    Was sind Klassendiagramme?

    • Diagrammtyp der UML
    • visualisiert Klassen
    • und deren Beziehungen

    Bereiche

    • Klassenname
    • Attribute
    • Methoden

    Access Modifier

    • + entspricht public
    • - entspricht private
    • # entspricht protected
    • ~ entspricht packaged *

    *NKR

    andere Modifier

    • unterstrichene Attribute und Methoden sind static
    • weitere Merkmale durch geschweifte Klammern

    Methoden

    • Modifier - Bezeichner - Parameter - Rückgabetyp

    Attribute

    • Modifier - Bezeichner - Rückgabetyp - Anfangswert

    Stereotypen

    • << enum >>
    • << interface >>
    • << exception >>

    Beziehungen zwischen Klassen

    • Assoziation
    • Aggregation
    • Kompositon*

    *NKR

    Aktivitätsdiagramm*

    *NKR

    Was sind Aktivitätsdiagramme?

    • Diagrammtyp der UML
    • visualisiert Verhalten

    Zusammenfassung

    • Java API
    • final modifier
    • Enumerations
    • Klassendiagramme
    • Aktivitätsdiagramme

    Rest of the day

    • Java API
    • Enumerations
    • Activity Diagrams
    • Class Diagrams
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-1/classes-and-objects/index.html b/pr-preview/pr-238/slides/steffen/java-1/classes-and-objects/index.html new file mode 100644 index 0000000000..fc433d26db --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-1/classes-and-objects/index.html @@ -0,0 +1,16 @@ +Programmieren mit Java

    Agenda

    • Wiederholung
    • Einführung Objektorientierung
    • Modifier
    • Zusammenfassung

    Wiederholung

    Datentypen

    • Wahrheitswerte (boolean)
    • Zeichen (char, String)
    • Ganzzahlen (byte, short, int, long)
    • Gleitkommazahlen (float, double)

    Datenobjekte

    • Platzhalter, um Werte zwischenzuspeichern
    • Datentyp Bezeichner = Wert;
    • Standard für Ganzzahlen: int
    • Standard für Gleitkommazahlen: double

    Methoden

    • Rückgabetyp (primitiv, komplex, void)
    • Bezeichner
    • Parameter
    • Methodenrumpf

    Operatoren

    • Arithmetische Operatoren (+, -, *, /, %, ++, --)
    • Vergleichsoperatoren (==, !=, etc.)
    • Logische Operatoren (&&, ||, !)
    • Bitweise Operatoren (&, |, ^, ~)

    Fallunterscheidung

    • if-else
    • switch

    Schleifen

    • while-Schleife
    • do-while-Schleife
    • for-Schleife
    • for-each-Schleife

    Arrays

    • Elemente eines Typs
    • Feste Länge
    • index beginnt bei 0

    ArrayList

    • Elemente eines Typs
    • Dynamische Länge
    • index beginnt bei 0
    • Hilfsmethoden

    Helper Klassen

    • Math
    • Random
    • Scanner

    Einführung Objektorientierung

    Objekte in unserer Umgebung

    • Handys
    • Menschen
    • Autos

    Was für Eigenschaften hat ein spezifischer Mensch?

    • blaue Augen
    • blonde Haare
    • hat Brille

    Was für Verhaltensweisen hat jeder Mensch?

    • essen
    • trinken
    • laufen
    • ganzen Namen sagen

    Was für Eigenschaften hat ein spezifisches Auto?

    • schwarze Farbe
    • 177 PS
    • Elektromotor

    Was für Funktionen hat jedes Auto?

    • bremsen
    • beschleunigen
    • Laufleistung anzeigen

    Abstrahieren von spezifischen Menschen

    • Augenfarbe
    • Haarfarbe
    • hat Brille

    Abstrahieren von spezifischen Autos

    • Autofarbe
    • Anzahl PS
    • Motorart

    Demo Klasse

    • Mensch
    • Auto

    Was sind Klassen?

    Abstraktion von gleichartigen Objekten durch:

    • Attribute
    • Methoden

    Beispiel Klasse Mensch

    public class Human {
    +  public String firstName;
    +  public String lastName;
    + 
    +  public String getFullName() {
    +    return firstName + lastName;
    +  }
    +}

    Demo Objekte

    • Steffen, Marianna, Mirco
    • Audi A3, Fiat 500, BMW 335i

    Was ist ein Objekt?

    • Instanz/Ausprägung einer Klasse
    //...
    +Human steffen = new Human();
    +steffen.firstName = "Steffen"
    +steffen.lastName = "Merk"
    + 
    +Human marianna = new Human();
    +marianna.firstName = "Marianna"
    +marianna.lastName = "Maglio"
    +//...

    Demo Objekt

    • Lesen und Schreiben von Attributen
    • Unterschied Referenzvariable und Variable
    • Was ist null?

    Modifier

    Arten von Modifiern

    • Access Modifier heute relevant
    • Non-Access Modifier

    Was machen Access Modifier?

    Steuern den Zugriff auf:

    • Klassen
    • Attribute
    • Methoden
    • Konstruktoren (werden später behandelt)

    Was für Access Modifier gibt es?

    • public
    • private
    • protected
    • default*

    *NKR

    Wann verwendet man public?

    • um Funktionalität zur Verfügung zu stellen

    Wann verwendet man private?

    • um Modifikation von Attributen zu verhindern
    • um Implementierungsdetails zu verstecken
    • Organisation von Code

    Demo Modifiers

    • public & private
    • Getter & Setter
    • Schlüsselwort this
    • Überladen von Methoden

    Zusammenfassung

    Klasse

    • Abstraktion von Objekten
    • definiert durch Methoden und Attribute

    Objekt

    • Instanz einer Klasse
    • Verhalten abhängig von der Instanz
    • ist eine Referenzvariable
    • hat den default Wert null

    Modifiers

    • public & private
    • Getter & Setter
    • this
    • Überladen von Methoden

    Rest of the day

    • Aufgabe Objects 01
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-1/constructor-and-static/index.html b/pr-preview/pr-238/slides/steffen/java-1/constructor-and-static/index.html new file mode 100644 index 0000000000..f5ebdc0677 --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-1/constructor-and-static/index.html @@ -0,0 +1,24 @@ +Programmieren mit Java

    Agenda

    • Wiederholung
    • Konstruktor
    • static Modifier
    • Zusammenfassung

    Wiederholung

    Klasse

    • Abstraktion von Objekten
    • definiert durch Methoden und Attribute

    Objekt

    • Instanz einer Klasse
    • Verhalten abhängig von der Instanz
    • ist eine Referenzvariable
    • hat den default Wert null

    Modifiers

    • public/private
    • Getter- und Settermethoden
    • this
    • Überladen von Methoden

    Konstruktor

    Zweck des Konstruktors

    • Initialisierung eines Objekts
    • Verschiedene Initialisierungen

    Aufbau eines Konstruktors

    • Access Modifier
    • Klassenname
    • Parameterliste
    • Methodenrumpf

    Beispiel Konstruktor

    public class Car {
    +  private String color;
    +  private char engineType;
    +
    +  public Car(String color, char engineType) {
    +    this.color = color;
    +    this.engineType = engineType;
    +  }
    +}
    +

    Wie erstelle ich mehrere Konstruktoren?

    • gleiche Regeln wie beim Überladen von Methoden

    Beispiel mehrere Konstruktoren

    public class Car {
    +  private String color;
    +  private char engineType;
    +
    +  public Car(String color) {
    +    this.color = color;
    +    this.engineType = 'b';
    +  }
    +
    +  public Car(String color, char engineType) {
    +    this.color = color;
    +    this.engineType = engineType;
    +  }
    +}
    +

    Demo Konstruktor

    • Human

    static Modifier

    Kann angewendet werden auf

    • Attribute
    • Methoden

    Statische Attribute

    • keine Unterscheidung zwischen Objekten notwendig, z.B. die Zahl Pi
    • Zugriff über Klassenname, z.B. Math.PI

    Statische Methoden

    • kein Zugriff auf Objektattribute möglich, z.B. berechnen des Betrags
    • Zugriff über Klassenname, z.B. Math.abs()

    Demo static mit private & public

    • Humans
    Finally public static void main verstanden 🥳

    Zusammenfassung

    Konstruktor

    • Initialisierung von Objekten
    • Mehrere Konstruktoren

    static Modifier

    • Methoden und Attribute
    • kein Zugriff auf Instanzattribute

    Rest of the day

    • Aufgabe Objects 02 - 07
    • Tutego
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-1/datatypes-and-dataobjects/index.html b/pr-preview/pr-238/slides/steffen/java-1/datatypes-and-dataobjects/index.html new file mode 100644 index 0000000000..1bfe9074df --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-1/datatypes-and-dataobjects/index.html @@ -0,0 +1,17 @@ +Programmieren mit Java

    Agenda

    • Besprechung Aufgabe
    • Einführung Git
    • Datentypen
    • Datenobjekte
    • Operationen mit Datentypen
    • Zusammenfassung

    Besprechung Aufgabe

    Hello World

    Die Schlüsselwörter public, class und static werden später behandelt.

    Aber warum braucht man:

    public static void main(String[] args)

    Demo main-Methode

    • main2 erstellen
    • main löschen
    Programmausführung

    *NKR

    Einführung Git

    git switch

    Wechseln zwischen Branches

    # Syntax: git switch <branchname>
    +git switch exercises/class-structure/01
    +git switch solutions/class-structure/01
    +

    *NKR

    git stash

    aktuelle Änderungen verstecken und wiederherstellen

    git stash # alles verstecken
    +git stash apply # das zuletzt versteckte wiederherstellen
    +git stash save "wip" # alles unter dem Namen "wip" verstecken
    +git stash list # alle stashes anzeigen
    +git stash apply 3 # stash 3 wiederherstellen
    +git stash apply stash^{/wip} # "wip" wiederherstellen
    +

    *NKR

    Demo Git stash

    Was sind Datentypen?

    Beispiel Registrierung

    Wahrheitswerte

    DatentypGrößeWertebereich
    boolean1 Bytetrue, false

    Ganzzahlen

    DatentypGrößeWertebereich
    byte1 Byte-128 bis +127
    short2 Byte-32.768 bis +32.767
    int4 Byte-2.1 Mrd bis +2.1 Mrd
    long8 Byte-9.2 Trill bis + 9.2 Trill

    Gleitkommazahlen

    DatentypGrößeWertebereich
    float4 Byte-3,4*1038 bis 3,4*1038
    double8 Byte-1,7*10308 bis 1,7*10308

    Zeichen

    DatentypGrößeWertebereich
    char2 Byte\u0000 bis \uFFFF
    Stringvariable Größejedes einzelne Zeichen wie bei char

    Primitive und komplexe Datentypen

    Primitive Datentypen haben keine Methoden.

    String ist kein primitiver Datentyp

    Was sind Datenobjekte?

    Eigenschaften

    • Platzhalter, um Werte zwischenzuspeichern
    • werden durch einen Bezeichner und Datentyp deklariert
    • werden durch einen Wert initialisiert

    Realisierung

    String myName; // → Deklaration
    +
    myName = "Steffen"; // → Initialisierung
    +
    String myName = "Steffen"; // → Zusammenfassung
    +

    Demo Deklaration & Initialisierung

    Operationen mit Datentypen

    double in int konvertieren

    Beim Konvertieren von double zu int wird immer abgerundet.

    Beispiel double in int

    double doubleNumber = 3.5;
    +int intNumber = (int) doubleNumber;
    +System.out.println(intNumber); // gibt 3 aus

    Hilfsmethoden der Klasse String

    String name = "Steffen";
    +char buchstabe = name.charAt(2);
    +System.out.println(buchstabe); // gibt "e" aus

    Zusammenfassung

    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-1/exceptions/index.html b/pr-preview/pr-238/slides/steffen/java-1/exceptions/index.html new file mode 100644 index 0000000000..4066a1e253 --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-1/exceptions/index.html @@ -0,0 +1,15 @@ +Programmieren mit Java

    Agenda

    • Wiederholung
    • Exceptions
    • Zusammenfassung

    Wiederholung

    • Interfaces
    • Komparatoren

    Exceptions

    Exceptions

    • sind Fehler, die zur Laufzeit auftreten
    • dienen zur Kommunikation
    • werden ausgelöst (throw)
    • behandelt (catch)

    technische Sichtweise

    • Exceptions sind Klassen
    • eine Exceptionklasse erweitert die Klasse Exception
    • Methoden definieren potenziell ausgelöste Exceptions

    Auslösen einer Exception

    public static void checkAge(int age) throws Exception {
    +  if(age < 18) {
    +    throw new Exception();
    +  }
    +}

    Behandeln einer Exception

    public static void main(String[] args) {
    +  try {
    +    Example.checkAge(2);
    +  }
    +  catch (Exception e) {
    +    System.out.println("Age to low");
    +  }
    +  finally {
    +    System.out.println("Always");
    +  }
    +}

    Demo Exceptions

    • PasswordTooShortException
    • super call
    • throw PasswordTooShortException
    • catch PasswordTooShortException
    • mehr Informationen mitgeben
    • PasswordTooLongException
    • instance of und multiple catch

    Schlüsselwörter

    • throw → Methode
    • throws → Methodensignatur
    • try → ohne Error
    • catch → falls Error
    • finally → immer

    Rest of the day

    • Exceptions 01 - 03
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-1/if-and-switch/index.html b/pr-preview/pr-238/slides/steffen/java-1/if-and-switch/index.html new file mode 100644 index 0000000000..64b48e0b53 --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-1/if-and-switch/index.html @@ -0,0 +1,67 @@ +Programmieren mit Java

    Agenda

    • Wiederholung
    • Kontrollstrukturen
    • Arrays

    Wiederholung

    Methoden

    • Rückgabetyp (primitiv, komplex, void)
    • Bezeichner
    • Parameter
    • Methodenrumpf

    Operatoren

    • Arithmetische Operatoren (+, -, *, /, %, ++, --)
    • Vergleichsoperatoren (==, !=, etc.)
    • Logische Operatoren (&&, ||, !)
    • Bitweise Operatoren (&, |, ^, ~)

    Kontrollstrukturen

    Beispiele für Fallunterscheidung

    • wenn unter 16 Jahre alt, dann kein Alkohol
    • wenn weiblich, dann ist die Anrede "Frau"
    • wenn PIN falsch, dann keine Bargeldausgabe

    Aufbau einer If-Anweisung

    • if Schlüsselwort
    • Bedingung
    • Code Block

    Beispiel If-Anweisung

    if ( Bedingung ) {
    +  // Quellcode
    +}

    Demo If-Anweisung

    • wenn unter 16 Jahre alt, dann kein Alkohol
    • wenn weiblich, dann ist die Anrede "Frau"

    Wie behandelt man den anderen Fall?

    • else Schlüsselwort
    • Code Block

    Beispiel Else-Anweisung

    else {
    +  // Quellcode
    +}

    Demo If-Else-Anweisung

    • wenn unter 16 Jahre alt, dann kein Alkohol, ansonsten Alkohol
    • wenn weiblich, dann ist die Anrede "Frau", ansonsten "Mann"

    Wie behandelt man weitere Fälle?

    • else if Schlüsselwort
    • Bedingung
    • Code Block

    Beispiel Else-If-Anweisung

    else if ( Bedingung ) {
    +  // Quellcode
    +}

    else bezieht sich immer nur auf die aktuelle if-else-if-Verschachtelung

    Demo If-Else-Anweisung

    • wenn unter 16 Jahre alt, dann kein Alkohol, wenn unter 18 Jahre alt, dann Bier, ansonsten jeden Alkohol
    • wenn weiblich, dann ist die Anrede "Frau", wenn männlich, dann ist die Anrede "Herr", ansonsten Vor- und Nachname

    Verschachtelungen

    if ( Bedingung ) {
    +  if ( Bedingung ) {
    +    if ( Bedingung ) {
    +      ...
    +    } else if ( Bedingung ) {
    +      ...
    +    } else 
    +      ...
    +    }
    +  }
    +}

    Mit Verschachtelungen können jegliche Fälle abgedeckt werden.

    switch

    • switch Schlüsselwort
    • Datenobjekt, das geprüft werden soll
    • Code Block
    • case Schlüsselwort mit Wert
    • Code Block
    • break Schlüsselwort

    switch kann als Alternative zur If-Anweisung verwendet werden.

    Beispiel Switch-Anweisung

    switch ( Datenobjekt ) {
    +  case 1:
    +    // Code Block
    +    break;
    +  case 2:
    +    // Code Block
    +    break;
    +  default:
    +    // Code Block
    +    break;
    +}
    switch geht nur mit int, char, String & Enum

    Demo Switch-Anweisung

    • wenn unter 16 Jahre alt, dann kein Alkohol, wenn unter 18 Jahre alt, dann Bier, ansonsten jeden Alkohol
    • wenn "w", "W", "f", "F", dann ist die Anrede "Frau", wenn "m", "M", dann ist die Anrede "Herr", ansonsten Vor- und Nachname

    switch vs if

    • switch performanter als if-else-if
    • switch kann erst ab Java 7 Stringvergleiche
    • keine Methodenaufrufe in case statement
    • Mehrfachbehandlung deutlich lesbarer mit switch

    Ternary Operator*

    • Kurzform von if-else
    • macht in return statement Sinn

    *NKR

    Beispiel Ternary Operator*

    public static void main(String[] args) {
    +  String output;
    +  int availableCash = 300;
    +  if(availableCash > 0) {
    +    output = "Patte fließt";
    +  } else {
    +    output = "Pleite";
    +  }
    +  
    +  output = availableCash > 0 ? "Patte fließt" : "Pleite";
    +}

    Demo Ternary Operator

    Warum braucht man Schleifen?

    • zum Bearbeiten von Listen
    • zum wiederholten Ausführen von Code

    Beispiele für Schleifen

    • Liste von Klausuren, um Durchschnittsnote zu ermitteln
    • Liste von Artikeln im Warenkorb, um Summe zu ermitteln
    • Solange kein Film mit einer Bewertung von 4+, gehe zu nächstem Film

    Arten von Schleifen

    • while-Schleife
    • do-while-Schleife
    • for-Schleife
    • for-each-Schleife

    while-Schleife

    • while Schlüsselwort
    • Bedingung
    • Code Block

    Beispiel while-Schleife

    while ( Bedingung ) {
    +  // Quellcode
    +}

    Demo while-Schleife

    • Zahlen von 0 bis 4 ausgeben.

    do-while-Schleife

    • do Schlüsselwort
    • Code Block
    • while Schlüsselwort
    • Bedingung

    Beispiel do-while-Schleife

    do {
    +  // Quellcode
    +}
    +while ( Bedingung ) 
    +

    Code Block wird mindestends einmal ausgeführt

    Demo do-while-Schleife

    • Zahlen von 0 bis 4 ausgeben.

    for-Schleife

    • for Schlüsselwort
    • Einmal Statement (vor der Schleife)
    • Bedingung
    • Statement (nach jedem Code Block)
    • Code Block

    Beispiel for-Schleife

    for (int i = 0; i < 5; i++) {
    +  // Quellcode
    +}

    Demo for-Schleife

    • Zahlen von 0 bis 4 ausgeben.

    for-each-Schleife

    • for Schlüsselwort
    • Typ eines einzelnen Elements von einer Liste
    • Bezeichner des Datenobjekts
    • Datenobjekt mit einer Liste

    Kann erst mit Arrays verstanden werden.

    Beispiel for-each-Schleife

    int[] numbers = { 0, 1, 2, 3, 4};
    +for (int number : numbers) {
    +  // Quellcode
    +}

    Demo for-each-Schleife

    • Zahlen von 0 bis 4 ausgeben.

    break Schlüsselwort

    beendet die komplette Schleife

    Demo break

    • Beende Schleife, wenn durch 2 teilbar.

    continue Schlüsselwort

    beendet den aktuellen Code Block

    Demo continue

    • Überspringe alle ungeraden Zahlen

    Arrays

    Eigenschaften eines Arrays

    • speichert mehrere Datenobjekte eines gleichen Typs
    • speichert eine definierte Anzahl an Datenobjekten

    Beispiele

    • die Namen von mir, meiner Freundin und meines besten Freundes
    • die Noten von mir, meiner Freundin und meines besten Freundes

    Wie deklariert man ein Array?

    • Datentyp der zu speichernden Elemente
    • eckige Klammern []
    • Bezeichner
    • Zuweisungsoperator =
    • Elemente kommagetrennt in geschweiften Klammern
    int[] numbers = { 0, 1, 2, 3, 4 }
    das Array hat eine feste Länge von 5

    Wie kann man Daten aus einem Array lesen?

    int[] numbers = { 0, 1, 2, 3, 4 } 
    +int dasVierteElement = numbers[3];
    der Index bei Arrays beginnt immer bei 0

    Wie kann man Daten in einem Array speichern?

    int[] numbers = { 0, 1, 2, 3, 4 } 
    +numbers[3] = 9;

    Wie kann ich ein Array ohne Werte initialisieren?

    int[] numbers = new int[4]; 
    +Integer[] numbers = new Integer[4]; 
    +numbers[3] = 9;

    Schlüsselwort new ignorieren

    Wie kann ich die Größe eines Arrays ermitteln?

    int[] numbers = { 0, 1, 2, 3, 4 } 
    +int size = numbers.length; // size ist 5
    +
    Primitiver DatentypKomplexer Datentyp
    booleanBoolean
    charCharacter
    byteByte
    shortShort
    intInteger
    longLong
    floatFloat
    doubleDouble

    Wie macht man Arrays größer?

    • Größe des neuen Arrays ermittlen
    • neues Array mit neuer Größe erstellen
    • mit einer Schleife die Elemente aus dem alten Array kopieren

    Wie fügt man ein Element an einer bestimmten Stelle ein?

    • Größe des neuen Arrays ermittlen
    • neues Array mit neuer Größe erstellen
    • mit einer Schleife die Elemente vor der neuen Stelle aus dem alten Array kopieren
    • neues Element hinzufügen
    • mit einer Schleife die Elemente nach der neuen Stelle aus dem alten Array kopieren

    ArrayList

    • neue Elemente hinzufügen
    • neue Elemente an bestimmter Stelle hinzufügen
    • komplette Liste leeren
    • prüfen ob Liste ein bestimmtes Element enthält
    • ...

    ArrayList

    ArrayList<Integer> numbers = new ArrayList<>();

    <Integer> sind Generics → Java 2

    new kann erst mit Objekten verstanden werden

    Wie kann ich die Größe einer ArrayList ermitteln?

    ArrayList<Integer> numbers = new ArrayList<>();
    +int size = numbers.size(); // size ist 0
    +

    Demo Array und ArrayList

    for-Schleife mit Array und ArrayList

    Was sind jetzt die args in der main Methode?

    Demo

    Variable Argumentlisten*

    werden auch als VarArgs bezeichnet

    *NKR

    Variable Argumentlisten

    Damit eine Methode eine variable Anzahl von Argumenten eines gleichen Datentyps verarbeiten kann, muss ein Parameter als variable Argumentliste definiert werden.

    Beispiel Verwendung

    public static void main(Stirng[] args) {
    +  int twoParameters   = Example.sum(1, 2);
    +  int threeParameters = Example.sum(1, 2, 3);
    +  int fourParameters  = Example.sum(1, 2, 3, 4);
    +}

    Beispiel Implementierung

    public static int sum(int... numbers) {
    +  // numbers ist ein Array
    +  int sum = 0;
    +  for(int number : numbers) {
    +    sum = sum + number;
    +  }
    +  return sum;
    +}

    VarArgs

    • stehen am Ende der Parameterliste
    • nur ein VarArgs Parameter je Methode
    • VarArgs Parameter ist ein Array
    • Argumente werden kommagetrennt definiert
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-1/inheritance/index.html b/pr-preview/pr-238/slides/steffen/java-1/inheritance/index.html new file mode 100644 index 0000000000..233a5ce43d --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-1/inheritance/index.html @@ -0,0 +1,42 @@ +Programmieren mit Java

    Agenda

    • Wiederholung
    • Vererbung
    • Konstruktoren II
    • Zusammenfassung

    Wiederholung

    Java API

    • Wrapper Klassen
    • LocalDateTime
    • File

    final modifier

    • Attribute
    • Variablen

    Enumeration

    • Gruppe von Konstanten
    • switch
    • isBinary
    • values, ordinal

    Klassendiagramm

    • Bereiche
    • + - # ~
    • static
    • { final }
    • << enumeration >>

    Vererbung

    Gemeinsamkeiten von Unterschiedlichen Klassen

    • Auto & Truck
    • Baby, Kind & Erwachsener
    • Samsung Galaxy S1, S2,... S21

    Vererbung ermöglicht die Wiederverwendung von:

    • Attributen
    • Methoden

    Generalisierung

    Generalisierung bedeutet alle gemeinsamen Attribute und Methoden mehrerer Klassen in eine weitere Klasse zu extrahieren.

    z.B. von Cat/Dog in die Klasse Animal

    Vererbung

    Vererbung bedeutet alle Attribute und Methoden einer Klasse einer anderen Klasse zu übertragen.

    z.B. Cat und Dog bekommen alle Attribute und Methoden der Klasse Animal

    Beispiel extends

    public class Dog extends Animal {
    +  public void bark() {
    +   System.out.println("Wuff");
    +  }
    +}

    Demo Vererbung

    • Generalisierung von Dog und Cat
    • Vererbung an Dog und Cat

    Das Schlüsselwort super

    • wird verwendet um den Konstruktor der vererbenden Klasse auszuführen
    • muss als erste Methode im Konstruktor ausgeführt werden

    Beispiel super

    public class Animal {
    +  public Animal(String name) {
    +    this.name = name;
    +  }
    +}
    +
    +public class Dog extends Animal {
    +  public Dog(String name) {
    +    super(name);
    +  }
    +}

    Demo super

    • super call mit Animal

    der protected modifier

    • weiterer Access modifier wie public und private
    • kann angewendet werden auf Attribute, Methoden und Konstruktoren

    Auswirkung von protected

    Methoden, Attribute und Konstructoren die mit protected markiert sind können ausgeführt werden von:

    • erbenden Klassen
    • Klassen im gleichen Package🤯*

    *NKR

    Demo protected

    • public name
    • private name
    • protected name

    Konstruktoren II

    Konstruktoren II

    • spezifische Konstruktoren
    • unspezifische Konstruktoren

    spezifische Konstruktoren

    • initialisieren alle Attribute
    • (fast) alle Attribute als Parameter

    spezifischer Konstruktor

    public class Car {
    +  public int hp;
    +  public char engineType;
    +  
    +  public Car(int hp, char engineType) {
    +   this.hp = hp;
    +   this.engineType = engineType;
    +  }
    +}

    unspezifische Konstruktoren

    • verwenden spezifischen Konstruktor
    • nicht alle Attribute als Parameter

    unspezifischer Konstruktor

    public class Car {
    +  public int hp;
    +  public char engineType;
    +  
    +  public Car(int hp) {
    +   this.hp = hp;
    +   this.engineType = 'b';
    +  }
    +}

    Konstruktor wiederverwenden

    public class Car {
    +  public int hp;
    +  public char engineType;
    +  
    +  public Car(int hp) {
    +   this(hp, 'b');
    +  }
    +  public Car(int hp, char engineType) {
    +   this.hp = hp;
    +   this.engineType = engineType;
    +  }
    +}

    Demo

    • Attribut age in Dog (default 0)
    • Attribut age in Animal

    Zusammenfassung

    • Gemeinsamkeiten mehrerer Klassen
    • Generalisierung
    • Vererbung
    • protected
    • super

    Rest of the day

    • Polymorphy 01 & 02
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-1/interfaces/index.html b/pr-preview/pr-238/slides/steffen/java-1/interfaces/index.html new file mode 100644 index 0000000000..a97c52edbe --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-1/interfaces/index.html @@ -0,0 +1,5 @@ +Programmieren mit Java

    Agenda

    • Wiederholung
    • variable Argumentlisten
    • Interface
    • Komparator
    • Zusammenfassung

    Wiederholung

    abstract Modifier

    • abstrakte Klassen
    • abstrakte Methoden

    final Modifier

    • finale Klassen
    • finale Methoden

    Interfaces

    Wie kann man Dogs und Cats in einer Liste speichern?

    Wie kann man Baby, Child und Adult in einer Liste speichern?

    Wie kann man Dogs, Cats, Baby, Child und Adult in einer Liste speichern?

    Limitierungen von abstrakten Klassen

    • komplexe Vererbungshierarchie
    • keine Mehrfachvererbung

    Interfaces

    • definieren Methoden
    • werden von Klassen implementiert

    Zweck von Interfaces

    • Unabhängig von Vererbung
    • Verstecken von Implementierungsdetails
    • Schnittstelle zwischen Ersteller und Verwender

    Ersteller des Warenkorbs

    • Beschreibung anzeigen
    • Einzelpreis ermitteln

    Realisierung des Warenkorbs

    • Warenkorb Modul definiert Interface
    • Artikel implementieren das Interface

    Demo Interface

    • ShoppingCart
    • Dog und Cat implementieren Interface
    • ToDo Liste
    • Dog und Cat implementieren Interface

    weitere Anwendungsgebiete*

    • Dependency Injection
    • Unit Tests

    *NKR

    Komparatoren

    Zweck von Komparatoren

    Sortieren von Listen

    Funktionsweise

    • Vergleichen von zwei Objekten
    • erstes Element davor einordnen: -1
    • erstes Element dahinter einordnen: 1
    • erstes Element gleich einordnen: 0

    Welche Interfaces gibt es?

    • Comparable
    • Comparator

    Comparable

    • definiert die Standardsortierung
    • Implementierung in der Datenklasse
    • Bsp. Human nach Alter sortieren

    Comparator

    • definiert eine Sortierung
    • Implementierung in eigener Klasse
    • Bsp. AgeComparator, NameComparator

    Wie sortiert man eine Liste?

    // ...
    +ArrayList<Human> humans = new ArrayList<>();
    +Collections.sort(humans);
    +Collections.sort(humans, new AgeComparator());
    +// ...

    Demo Komparatoren

    • Human Comparable
    • AgeComparator

    Zusammenfassung

    • variable Argumentlisten
    • Interfaces
    • Komparatoren

    Rest of the day

    • Interfaces 01
    • Comparators 01 - 02
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-1/intro/index.html b/pr-preview/pr-238/slides/steffen/java-1/intro/index.html new file mode 100644 index 0000000000..925d9fbef5 --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-1/intro/index.html @@ -0,0 +1,5 @@ +Programmieren mit Java

    Agenda

    • Einführung
    • Organisatorisches
    • Was sind Programme?
    • Zusammenfassung

    Einführung

    Steffen Merk

    Software Engineer

    Lebenslauf

    Systemadministrator @Framo Morat

    Wirtschaftsinformatik DHBW Ravensburg @SAP

    Software Developer @SAP, @remberg & @Airbus

    Techstack

    Angular + NgRx

    NodeJS + NestJS

    Top Focus Topics

    Algorithmen und Datenstrukturen

    Gradle

    Wollt ihr euch vorstellen?

    Was erwartet euch?

    Fokus liegt auf dem Programmieren

    Nicht auswendig lernen

    Wie erreicht ihr eine gute Note?

    1. Versteht, was ihr programmiert
    2. Fragt nach! Mich oder Kommilitonen
    3. Macht die Aufgaben zeitnah!

    Real talk Steffen: Macht es Spaß?

    • Keine UI bringt weniger Motivation
    • Ohne Programmiergrundlagen keine Apps
    • Java 2, Verteilte Systeme

    Organisatorisches

    Ihr habt Fragen?

    Wo findet ihr was?

    Dokumentation, Aufgaben, Folien

    Quellcode von Dokumentation und Folien

    Quellcode von Aufgaben und Lösungen

    Was liegt in eurer Verantwortung?

    • Installation von Tools
    • Verwenden von Tools
    • Verwenden der Kommandozeile
    • Verwenden von git

    Für was die Laptops?

    • Alles vorinstalliert für die Vorlesung
    • Alles vorinstalliert für die Prüfungen
    • Was macht ihr daheim?

    Empfehlung Neulinge

    • Macht alles mitGitPod
    • GitHubAccount erstellen
    • Registrieren mit GitHub Account bei GitPod
    • Kostet nach 50 Stunden pro Monat

    Empfehlung Erfahrene

    • Installiert Git und checkt die Repos aus
    • Installiert JDK und JRE
    • Installiert und konfiguriert eure IDE
    • Entwickelt alles lokal an eurem Rechner

    Prüfung

    • Findet am PC statt
    • Nur Editor zum Schreiben von Text

    Was sind Programme?

    Verschiedene Arten

    • Programme mit GUI
    • Hintergrundprogramme
    • Programme mit TUI

    Demo GUI und TUI

    • Ordner erstellen
    • Datei erstellen
    • Datei verschieben
    • Ordner löschen

    Kommandozeile

    Syntax: <name> [OPTION, ...] [--flag, ...]

    ls # alle Ordner und Dateien anzeigen 
    +ls -l # wie Z1, aber als Liste anzeigen 
    +ls -la # wie Z2, aber auch versteckte Dateien und Ordner 
    +ls docs -la # wie Z3, aber im Unterordner docs 
    +

    Wie macht man ein Java Programm?

    Quellcode verfassen

    Quellcode zu einem Java Programm kompilieren

    Java Programm mit der Java Runtime ausführen

    Zusammenfassung

    Programme

    GUI, TUI & Hintergrund

    Quellcode wird in Programm kompiliert

    Rest of the day

    Development Environment einrichten (GitPod oder lokal)

    Hello-World-Aufgabe machen

    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-1/math-random-scanner/index.html b/pr-preview/pr-238/slides/steffen/java-1/math-random-scanner/index.html new file mode 100644 index 0000000000..1f9cdd717a --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-1/math-random-scanner/index.html @@ -0,0 +1,8 @@ +Programmieren mit Java

    Agenda

    • Wiederholung
    • Ablauf Test
    • Hilfsklassen (Math, Random, Scanner)
    • Aufgaben

    Wiederholung

    Fallunterscheidung

    • if-else
    • switch

    Schleifen

    • while-Schleife
    • do-while-Schleife
    • for-Schleife
    • for-each-Schleife

    Arrays

    • Elemente eines Typs
    • Feste Länge
    • index beginnt bei 0

    ArrayList

    • Elemente eines Typs
    • Dynamische Länge
    • index beginnt bei 0
    • Hilfsmethoden

    Ablauf Test

    Ready for Hustle?

    Hilfsmethoden der Klasse Math

    • Math.abs // Betrag
    • Math.pow // Potenzen
    • Math.sqrt // Wurzel ziehen

    Zufallszahlen generieren

    Random random = new Random();
    +int randomNumber = random.nextInt(100) + 1
    +

    Konsoleneingaben verarbeiten

    Demo gh pr create

    Scanner sc = new Scanner(System.in);
    +int numberInput = sc.nextInt();
    +double doubleInput = sc.nextDouble();
    +String textInput = sc.next();
    +String textInput = sc.nextLine();
    +boolean boolInput = sc.nextBoolean();

    Aufgaben

    • Konsolenanwendungen
    • Verzweigungen - Cases 05 wichtig
    • Schleifen
    • Felder (Arrays) - Arrays 04 optional
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-1/methods-and-operators/index.html b/pr-preview/pr-238/slides/steffen/java-1/methods-and-operators/index.html new file mode 100644 index 0000000000..fd58f518fe --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-1/methods-and-operators/index.html @@ -0,0 +1 @@ +Programmieren mit Java

    Agenda

    • Wiederholung
    • Was sind Methoden?
    • Was sind Programme?
    • Zusammenfassung

    Wiederholung

    Datentypen

    • Wahrheitswerte (boolean)
    • Zeichen (char, String)
    • Ganzzahlen (byte, short, int, long)
    • Gleitkommazahlen (float, double)

    Datenobjekte

    • Platzhalter, um Werte zwischenzuspeichern
    • Datentyp Bezeichner = Wert;
    • Standard für Ganzzahlen: int
    • Standard für Gleitkommazahlen: double

    Was sind Methoden?

    Beispiele für Methoden

    • Addieren von zwei Zahlen
    • Berechnen von Titel, Vorname und Nachname
    • Brief zu Briefkasten bringen
    • aktuelle Uhrzeit nennen

    Aufbau einer Methode

    • Rückgabewert
    • Bezeichner
    • Parameter
    • Methodenrumpf

    Demo - Methoden

    • Addieren von zwei Zahlen
    • Berechnen von Titel, Vorname und Nachname
    • Brief zu Briefkasten bringen
    • aktuelle Uhrzeit nennen

    Was sind Operatoren?

    Beispiele

    • Addieren von zwei Zahlen
    • Berechnen von Titel, Vorname und Nachname

    Arithmetische Operatoren

    BeispielBedeutung
    x + yAddiere y zu x
    x - ySubtrahiere y von x
    x * yMultipliziere x mit y
    x / yDividiere x durch y
    x % yDivisionsrest von x / y

    Arithmetische Operatoren

    BeispielBedeutung
    x++Inkrementiere x und gib den alten Wert an den Ausdruck zurück
    ++xInkrementiere x und gib den neuen Wert an den Ausdruck zurück
    x--Dekrementiere x und gib den alten Wert an den Ausdruck zurück
    --xDekrementiere x und gib den neuen Wert an den Ausdruck zurück

    *NKR

    Vergleichsoperatoren

    BeispielBedeutung
    x == yx ist gleich y
    x != yx ist ungleich y
    x > yx ist größer y
    x < yx ist kleiner y
    x >= yx ist größer gleich y
    x <= yx ist kleiner gleich y

    Logische Operatoren

    BeispielBedeutung
    x && yLogische AND-Verknüpfung
    x || yLogische OR-Verknüpfung
    !xLogisches NOT

    Bitweise Operatoren

    BeispielBedeutung
    x & yBitweise AND-Verknüpfung
    x | yBitweise OR-Verknüpfung
    x ^ yBitweise XOR-Verknüpfung
    ~xBitweises NOT

    *NKR

    Zusammenfassung

    Was sind Methoden?

    Bezeichner, Parameter, Rückgabetyp

    beinhaltet Logik im Methodenrumpf

    Was sind Operatoren?

    Arithmetische Operatoren

    Vergleichsoperatoren

    Logische Operatoren

    Rest of the day

    • DataObjects 01
    • DataObjects 02 (optional)
    • Operators 01
    • Operators 02 (optional)
    • Operators 03 (optional)
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-1/polymorphy/index.html b/pr-preview/pr-238/slides/steffen/java-1/polymorphy/index.html new file mode 100644 index 0000000000..f02ce59f76 --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-1/polymorphy/index.html @@ -0,0 +1,8 @@ +Programmieren mit Java

    Agenda

    • Wiederholung
    • Polymorphie
    • Zusammenfassung

    Wiederholung

    Vererbung

    • Generalisierung in Oberklasse
    • Vererbung an Unterklasse
    • super
    • protected

    Polymorphie

    Eine Referenzvariable kann abgeleitetes Objekt referenzieren

    • Vehicle → Car oder Truck
    • Human → Baby, Child oder Adult
    • Smartphone → Samsung Galaxy, Apple iPhone

    Limitationen der Polymorphie

    • Unterklasse muss Oberklasse erweitern
    • nur public der Oberklasse verwendbar

    Demo Polymorphie

    • Oberklassenmethode makeSound
    • ArrayList mit Dog und Cat

    Upcast

    Der Referenzvariable einer Oberklasse wird eine Referenzvariable einer Unterklasse zugewiesen.

    Beispiel Upcast

    Animal bello = new Dog();
    +Animal merlin = new Cat();
    +

    Downcast

    Die Referenzvariable einer Oberklasse wird in eine Referenzvariable einer Unterklasse umgewandelt.

    Beispiel Downcast

    Animal bello = new Dog();
    +Dog bello2 = (Dog) bello;
    +

    Demo Downcast

    • Animal zu Dog

    instanceof Operator

    • prüft, ob eine Referenzvariable eine Instanz einer bestimmten Klasse ist.

    Beispiel instanceof

    Animal bello = new Dog();
    +if (bello instanceof Dog) {
    +   // dog specific coding
    +}

    Demo

    • Dog und Cat spezifische Methoden
    • instanceof mit Downcast in ArrayList

    Zusammenfassung

    • Polymorphie
    • Upcast
    • Downcast
    • instanceof

    Rest of the day

    • Polymorphy 03 & 04
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-2/functional-programming/index.html b/pr-preview/pr-238/slides/steffen/java-2/functional-programming/index.html new file mode 100644 index 0000000000..f6ae6ac6b1 --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-2/functional-programming/index.html @@ -0,0 +1,94 @@ +Programmieren mit Java

    Agenda

    • Funktionale Programmierung
    • Lambdafunktionen
    • Allgemeine Funktionale Interfaces
    • Methodenreferenzen

    Funktionale Programmierung

    Funktionale Programmierung ist ein Programmierparadigma, bei dem Funktionen als Werte behandelt werden und auf Seiteneffekte verzichtet wird.

    Funktionen als Werte

    Funktionen...
    • sind Methoden
    • können als Parameter definiert werden
    • können als Argument definiert werden
    • können als Variable definiert werden

    Seiteneffekt

    Ein Seiteneffekt beschreibt eine Zustandsänderung

    Beispiele Seiteneffekte

    public class Human {
    +  private int age;
    +  
    +  public void setAge(age) {
    +    this.age = age;
    +    /*Seiteneffekt, da Wert außerhalb
    +     der Funktion verändert wird */ 
    +  }
    +  public int getAge() {
    +    return age;
    +    /*Kein Seiteneffekt, da Wert nicht außerhalb
    +     der Funktion verändert wird */ 
    +  }
    +}
    +

    Demo - Lambda Funktionen

    *NKR

    Lambdafunktionen

    Lambdafunktion

    Eine Lambdafunktion ist eine Methode ohne Name, die wie eine Referenzvariable verwendet werden kann.

    public class Main {
    +  public static void main(String[] args) {
    +    Comparator<Human> sortAge;
    +    sortAge = (h1, h2) -> h1.age() > h2.age() ? 1 : -1;
    +  }
    +}
    +
    Lambdafunktionen werden auch anonyme Funktion, anonymous function oder arrow function genannt.

    Typisierung

    Ein funkionales Interface wird für die Typisierung einer Lambdafunktion verwendet.

    public class Main {
    +  public static void main(String[] args) {
    +    Comparator<Human> sortAge;
    +    sortAge = (h1, h2) -> h1.age() > h2.age() ? 1 : -1;
    +  }
    +}
    +

    Ein funktionales Interface ist ein Interface mit genau einer abstrakten Methode und einer speziellen Annotation.

    Funktionales Interface

    Funktionale Interfaces werden mit @FunctionalInterface markiert, z.B. Comparator

    @FunctionalInterface
    +public interface Comparator<T> {
    +  public int compare(T o1, T o2);
    +}
    +

    Nicht jedes Interface mit einer einzigen abstrakten Methode ist funktional, z.B. Comparable

    Syntax Lambdafunktion

    • Kein Parameter
    • Ein Parameter
    • Mehrere Parameter
    • Eine Anweisung
    • Mehrere Anweisungen
    • Return Anweisung

    Kein Parameter

    Hat das funktionale Interface keinen Parameter, werden runde Klammern benötigt.

    public interface NoParamFunction {
    + public void do();
    +};
    +
    NoParamFunction function = () -> {
    +  System.out.println("Kein Parameter");
    +};
    +

    Ein Parameter

    Hat das funktionale Interface einen Parameter, werden keine runden Klammern benötigt.

    public interface OneParamFunction {
    + public void do(String one);
    +}
    +
    OneParamFunction function = one -> {
    +  System.out.println("Ein Parameter: " + one);
    +};
    +

    Mehrere Parameter

    Hat das funktionale Interface mehrere Parameter, werden runden Klammern benötigt.

    public interface MultiParamFunction {
    + public void do(String one, String two);
    +}
    +
    MultiParamFunction function = (one, two) -> {
    +  System.out.println("Zwei Parameter: " + one + two);
    +};
    +

    Eine Anweisung

    Besteht die Lambdafunktion aus einer Anweisung sind keine geschweifte Klammern notwendig.

    MultiParamFunction function = (one, two) -> 
    +  System.out.println("Zwei Parameter: " + one + two);
    +

    Mehrere Anweisungen

    Besteht die Lambdafunktion aus mehrern Anweisungen sind geschweifte Klammern notwendig.

    MultiParamFunction function = (one, two) -> {
    +  System.out.println("Parameter Eins: " + one);
    +  System.out.println("Parameter Zwei: " + two);
    +};
    +

    return-Anweisung

    Besteht die Lambdafunktion aus einer einzelnen return Anweisung, sind keine geschweifte Klammern notwendig und das return Statement kann weggelassen werden.

    public interface OneParamReturnFunction {
    + public boolean validate(Human human);
    +}
    +
    OneParamReturnFunction function = h -> h.age() > 10;
    +

    Demo - Eigene Funktionale Interfaces

    • Intro Shopping List Example
    • Problem 1
    • Problem 2

    Allgemeine Funktionale Interfaces

    Grundkategorien von Funktionalen Interfaces

    • Consumer
    • Function
    • Predicate
    • Supplier

    Consumer

    public interface Consumer<T> {
    +  public void accept(T t);
    +}
    +
    public interface BiConsumer<T, U> {
    +  public void accept(T t, U u);
    +}
    +

    Code ausführen ohne Daten weiterzugeben.

    Function

    public interface Function<T, R> {
    +  public R apply(T t);
    +}
    +
    public interface BiFunction<T, U, R> {
    +  public R apply(T t, U u);
    +}
    +
    public interface UnaryOperator<T> {
    +  public T apply(T t);
    +}
    +
    public interface BinaryOperator<T> {
    +  public T apply(T t1, T t2);
    +}
    +

    Code ausführen, der Daten zurückgibt.

    Predicate

    public interface Predicate<T> {
    +  public boolean test(T t);
    +}
    +

    Code ausführen, der true oder false zurückgibt.

    Supplier*

    public interface Supplier<T> {
    +  public T get();
    +}
    +

    Code ausführen, der Daten vom Typ T zurückgibt.

    *NKR

    Demo - Allgemeine Funktionale Interfaces

    • Consumer anstatt ProductsChangedConsumer
    • Predicate anstatt AddAllowedChecker

    Methodenreferenzen

    Warum Methodenreferenzen?

    Mit Methodenreferenzen kann man noch weniger Code schreiben.

    Hat ein Parameter die gleiche Signatur, wie eine statische Methode, kann diese Methode als Methodenreferenz übergeben werden.

    Beispiel ArrayList - For Each

    public class Main {
    +  public static void main(String[] args) {
    +    ArrayList<String> names = new ArrayList<>()
    +    
    +    // lambda funktion
    +    names.forEach((name) -> System.out.println(name));
    +    
    +    // methodenreferenz
    +    names.forEach(System.out::println);
    + }
    +}
    +

    Verwenden von Methodenreferenzen?

    Anstatt die Methode über einen Punkt aufzurufen, wird ein zweifacher Doppelpunkt verwendet.

    Mit dem "new" nach dem zweifachen Doppelpunkt kann auch der Konstruktor einer Klasse referenziert werden.

    *NKR

    Demo - Methodenreferenzen

    • Methodensignatur System.out.println
    • OneTimePrinter

    Rest of the Day

    Bei Lambdas 01 kann die Teilaufgabe mit anonymer Klasse ignoriert werden.

    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-2/generics-optional/index.html b/pr-preview/pr-238/slides/steffen/java-2/generics-optional/index.html new file mode 100644 index 0000000000..2d30b5ac7c --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-2/generics-optional/index.html @@ -0,0 +1,134 @@ +Programmieren mit Java

    Agenda

    • Generics
    • Optional
    • Record I

    Generics

    Generische Typen

    In Java können Klassen und Interfaces generisch sein.

    Generisch heißt, dass Funktionalität unabhängig von einem Typ implementiert werden können.

    Beispiele Generische Klassen/Interfaces

    • ArrayList
    • Comparator
    • Comparable

    Alle Klassen stellen immer die gleiche Funktionalität bereit, egal welchen Typ wir verwenden.

    Beispiele ArrayList

    Egal ob wir Objekte vom Typ Human, Dog, String oder Integer in einer ArrayList abspeichern, wir haben immer die gleichen Methoden zur verfügung.

    add, remove, size etc.

    Beispiel Comparator

    Egal ob wir Comparator oder Comparable Klassen vom Typ Human, Dog, String oder Integer erstellen, wir haben immer die gleichen Methoden zur verfügung.

    Collections.sort

    Verwendung Generics I

    Will man in seiner Anwendung eine Liste von Menschen abspeichern ist der spezifische Typ bekannt.

    Nach dem Klassennamen wird innerhalb von spitzen Klammern, der spezifische Typ angegeben.

    Verwendung Generics II

    public class Main {
    +  public static void main(String[] args) {
    +    ArrayList<Human> humans = new ArrayList<>();
    +  }
    +}
    +public class HumanComp implements Comparator<Human> {
    +  public int compare(Human h1, Human h2) {
    +    // implementation details
    +  }
    +}
    +

    Implementierung Generics I

    Um eine generische Klasse zu erstellen, wird nach dem Klassennamen in spitzen Klammern der Typparameter angegeben.

    public class Team<T> {
    +  // implementierung der Klasse
    +}
    +

    Typparameter I

    public class Team<T> {
    +  // implementierung der Klasse
    +}
    +
    public class Team<A> {
    +  // implementierung der Klasse
    +}
    +
    public class Team<HANS> {
    +  // implementierung der Klasse
    +}
    +
    public class Team<BLIBLABLUBB> {
    +  // implementierung der Klasse
    +}
    +

    Der Bezeichner des Typparameters kann frei gewählt werden.

    Typparameter II

    public class Team<T> {
    +  // implementierung der Klasse
    +}
    +
    public class Team<T,U> {
    +  // implementierung der Klasse
    +}
    +
    public class Team<T, U, V> {
    +  // implementierung der Klasse
    +}
    +

    Es können mehrere Typparameter kommagetrennt angegeben werden.

    Verwenden von Typparameter I

    public class Team<T> {
    +  private String teamName;
    +  private ArrayList<T> teamMembers = new ArrayList<>();
    +  public Team(String teamName) {
    +    this.teamName = teamName;
    +  }
    +  
    +  public String getTeamName() {
    +    return this.teamName;
    +  }
    +  
    +  public void addMember(T member) {
    +    this.teamMembers.add(member);
    +  }
    +}
    +

    Verwenden von Typargumenten

    public class Main {
    +  public static void main(String[] args) {
    +    Team<FootballPlayer> scf = new Team<>("SC Freiburg");
    +    Team<HockeyPlayer> wildwings  = new Team<>("Wildwings");
    +    
    +    scf.addMember(new FootballPlayer("Steffen");
    +    scf.addMember(new HockeyPlayer("Mirco"); // fails
    +    wildwings.addMember(new HockeyPlayer("Mirco");
    + }
    +}
    +

    Unterschied Parameter und Argument

    public class Main {
    +  public static int add(int a, int b) { // Parameter
    +    return a + b;
    +  }
    +  public static void main(String[] args) {
    +    int result = Main.add(1, 2); // Argumente
    +  }
    +}
    +

    Unterschied Typparameter und Typargument

    public class Team<T> { // Typparameter
    +  public ArrayList<T> members; // Typargument
    +}
    +//...
    +Team<Human> humanTeam = new Team<>();// Typargument
    +//...
    +

    Demo - Generics

    • spezifisches Football- und Hockeyteam
    • Generische Team Klasse
    • Problem: Spieler eines Teams ausgeben

    Einschränken von Typparametern I

    Um noch mehr Funktionalitäten in eine generische Klasse auszulagern ist es notwendig den Typ einzuschränken.

    Einschränken von Typparametern II

    Mit extends und super können die möglichen Typen eingeschränkt werden.

    Einschränken von Typparametern III

    public class Team<T extends Player> {
    +  // Player und Subtypen von Player erlaubt
    +}
    +
    public class Team<T super Player> {
    +  // Player und Supertypen von Player erlaubt 
    +}
    +

    Einschränken von Typparametern IV

    public class Player {}
    +public class BaseballPlayer extends Player {}
    +public class FootballPlayer extends Player {}
    +public class ExtremeFootballPlayer extends FootballPlayer {}
    +
    public class Team<T extends Player> {} //PBFE erlaubt
    +public class Team<T extends FootballPlayer> {} //FE erlaubt
    +public class Team<T super Player> {} // P erlaubt
    +public class Team<T super FootballPlayer> {} //PF erlaubt

    Demo - Generics

    Spieler eines Generischen Teams ausgeben
    • Vererbung
    • Interface

    Optional

    Optional - Klasse

    Mit Hilfe der Optional Klasse kann man NullPointerExceptions einfach behandeln.

    Was sind NullPointerExceptions?

    Null Pointer Exception I

    public class Dog {
    + public String name;
    + public Dog(String name) {
    +  this.name = name;
    + }
    +}
    +

    Null Pointer Exception II

    public class Main {
    +  public static void main(String[] args) {
    +    Dog doggo = new Dog(null);
    +    doggo.name.equals("Bello"); // funktioniert nicht
    + }
    +}
    +

    Optional als Lösung

    public class Dog {
    + public Optional<String> name;
    + public Dog(String name) {
    +  this.name = Optional.ofNullable(name);
    + }
    +}
    +

    Optional - Wrapper um den echten Wert

    Die Optional Klasse verpackt den echten Wert hinter Methoden.

    Mithilfe von Methoden kann überprüft werden, ob ein Wert Null ist oder nicht.

    Optional - Methoden I

    public class Main {
    +  public static void main(String[] args) {
    +    Optional<String> name = Name.createName();
    +    if(name.isPresent()) {
    +      System.out.println(name.get());
    +    }
    +    if(name.isEmpty()) {
    +      System.out.println("No Name");
    +    }
    + }
    +}
    +

    Optional - Methoden II*

    public class Main {
    +  public static void main(String[] args) {
    +    Optional<String> name = Name.createName();
    +    name.ifPresent((value) -> System.out.println(value));
    +    name.ifPresentOrElse(
    +      (value) -> System.out.println(value),
    +      () -> System.out.println("No Name")
    +    );
    +  }
    +}
    +

    *NKR

    Demo - Optional

    • Human Middlename
    • University Search Student

    Record I

    Records

    Ein Record ist eine Datenklasse, deren Attribute nicht verändert werden können.

    Eine Datenklasse hat somit finale Attribute und Getter.

    Beispiel Record Dog

    public record Dog(String name, int age) {}
    +

    Verwendung Record Dog

    public class Main {
    +  public static void main(String[] args) {
    +    Dog bello = new Dog("Bello", 12);
    +    String name = bello.name();
    +    int age = bello.age();
    +  }
    +}
    +

    Rest of the Day

    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-2/intro-dsa/index.html b/pr-preview/pr-238/slides/steffen/java-2/intro-dsa/index.html new file mode 100644 index 0000000000..cd540ad2b4 --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-2/intro-dsa/index.html @@ -0,0 +1,61 @@ +Programmieren mit Java

    Agenda

    • Intro
    • Problemfelder
    • Erwartungen an DSA
    • Landau-Notation
    • Fallbeispiel Problem

    Intro

    Was ist ein Algorithmus?

    systematische Vorgehensweise zur Lösung eines Problems

    Charakteristika

    • Finitheit
    • Ausführbarkeit
    • Dynamische Finitheit
    • Terminierung
    • Determiniertheit
    • Determinismus

    Was ist eine Datenstruktur?

    spezifische Anordung von Daten zur effizienten Verwaltung eines Problems

    Charakteristika

    • statisch
    • dynamisch

    Kann man Datenstrukturen und Algorithmen trennen?

    Nein nur die Kombination bringt etwas.

    Was bringt ein Array ohne (über)schreiben und lesen?

    Was bringt eine for-Schleife ohne Array?

    Unsere Definition von DSA

    Ein Algorithmus (A) erzeugt, manipuliert und entfernt eine oder mehrere Datenstrukturen(DS) um ein spezifisches Problem effizient zu lösen.

    Problemfelder

    Prozessprobleme

    • Suche
    • Sortierung
    • Verarbeitung

    Technische Probleme

    • Zeitkomplexität
    • Speicherkomplexität

    Optimum

    Das Optimum kann nur für ein Problemfeld für ein technisches Problem gefunden werden.

    Es existiert kein Allgemeiner Algorithmus, der jedes Problem in der kürzesten Zeit mit der geringsten Speichermenge löst.

    Demo - Performance von Suche und Verarbeitung

    • Erstellen einer HashMap & ArrayList
    • Suchen in einer HashMap & ArrayList
    • Löschen in einer HashMap & ArrayList

    Erwartungen an DSA

    Inhalte

    • Grundlegende Praktikable Datenstrukturen
    • Worst Case Szenario
    • keine Beweise
    • kaum Coding (von euch, da Projektbericht)
    • Einstieg in das Themengebiet

    Landaunotation

    wird auch Big-O Notation genannt

    Landaunotation (Big-O)

    wird verwendet um Algorithmen in Bezug auf Speicher- und Zeitanforderungen zu kategorisieren.

    ist keine exakte Messung, sondern soll das Wachstum des Algorithmus generalisieren.

    Warum brauchen Big-O?

    Wenn wir wissen, welche Stärken und Schwächen ein Algorithmus hat, können wie den besten Algorithmus für unser Problem nutzen.

    Ich benutz immer Big-O zum erklären

    Was ist Big-O?

    gibt an in welchem Verhältnis ein Algorithmus abhängig vom input in Bezug auf Laufzeit und Speicher wächst

    Beispiel für Big-O

    O(N)

    • 10 Elemente entspricht 10 Zeiteinheiten
    • 20 Elemente entspricht 20 Zeiteinheiten

    Beispiel für Big-O

    public class BigO {
    +  // O(N)
    +  public static void method(int[] n) {
    +    int sum = 0;
    +    for(int i = 0; i > n.length; i++) {
    +      sum += n[i];
    +    }
    +    return sum;
    +  }
    +}
    +

    Jahresgehalt eines Mitarbeiters

    Beispiel für Big-O

    public class BigO {
    +  // O(N²)
    +  public static void method(int[] n) {
    +    int sum = 0;
    +    for(int i = 0; i > n.length; i++) {
    +      for(int j = 0; j > n.length; j++) {
    +        sum += n[j];
    +      }
    +    }
    +    return sum;
    +  }
    +}
    +

    Jahresgehalt jedes Mitarbeiters einer Abteilung

    Beispiel für Big-O

    public class BigO {
    +  // O(N³)
    +  public static void method(int[] n) {
    +    int sum = 0;
    +    for(int i = 0; i > n.length; i++) {
    +      for(int j = 0; j > n.length; j++) {
    +        for(int k = 0; k > n.length; k++) {
    +          sum += n[k];
    +        }
    +      }
    +    }
    +    return sum;
    +  }
    +}
    +

    Jahresgehalt jedes Mitarbeiters jeder Abteilung

    Big-O von diesem Code?

    public class BigO {
    +  public static void method(int[] n) {
    +    int sum = 0;
    +    for(int i = 0; i > n.length; i++) {
    +      sum += n[i];
    +    }
    +    for(int i = 0; i > n.length; i++) {
    +      sum += n[i];
    +    }
    +    return sum;
    +  }
    +}
    +

    praktisch: O(2N) → O(N)

    Warum O(N) anstatt O(2N)

    NO(10N)O(N²)
    1101
    55025
    100100010.000
    100010.0001.000.000
    10.000100.000100.000.000

    Konstanten können ignoriert werden.

    Big-O von diesem Code?

    public class BigO {
    +  public static void method(int[] n) {
    +    int sum = 0;
    +    for(int i = 0; i > n.length; i++) {
    +      if(sum > 9876) {
    +        return sum;
    +      }
    +      sum += n[i];
    +    }
    +    return sum;
    +  }
    +}
    +

    O(N) → Worst-Case-Szenario

    Unsere Regeln

    • Wachstum ist abhängig vom Input
    • Konstanten werden ignoriert
    • Worst-Case ist unser default

    Fallbeispiel Problem

    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-2/iteration-recursion/index.html b/pr-preview/pr-238/slides/steffen/java-2/iteration-recursion/index.html new file mode 100644 index 0000000000..b55abfa366 --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-2/iteration-recursion/index.html @@ -0,0 +1 @@ +Programmieren mit Java

    Iterativ und Rekursiv

    Agenda

    • Intro
    • Rekursion
    • Fun With Mazes

    Intro

    Was ist Iterativ

    mehrmaliges ausführen einer Aktion, während eine Bedingung wahr ist.

    Schleifen sind Iterativ

    • while → solange bedingung true
    • do-while → solange bedingung true
    • for → solange bedingung true
    • for-each → bis break oder alle Elemente

    Was ist Rekursiv?

    mehrmaliges selbstausführen einer Aktion

    die Aktion definiert selber, wann Sie sich nicht mehr selbst aufruft

    Demo - Zahlen summieren

    • Iterativ
    • Rekursiv

    Rekursion - Callstack

    Aufruf OrtAufrufAufruf WertRückgabewert
    Mainsum(5)5?
    sum(5)sum(4)4?
    sum(4)sum(3)3?
    sum(3)sum(2)2?
    sum(2)sum(1)11

    Unterste Zeile ist der Base Case Fall

    Rekursion - Callstack II

    Aufruf OrtAufrufAufruf WertRückgabewert
    Mainsum(5)55 + 10 → 15
    sum(5)sum(4)44 + 6 → 10
    sum(4)sum(3)33 + 3 → 6
    sum(3)sum(2)22 + 1 → 3
    sum(2)sum(1)11

    Bonus: throw Error in Base Case

    Rekursion

    Bestandteile

    1. Base Case(s)
    2. Recurse

    Base Case(s)

    Alle Bedingungen, welche ein Endergebnis haben.

    Recursion

    • Pre Recurse
    • Recurse
    • Post Recurse

    revisit iterative sum

    Demo - Binary Search Recursion

    Fun with Mazes

    Rest of the day

    • Problem und Datensatz
    • Search mit eigenem Problem Recursiv(Optional)
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-2/recap/index.html b/pr-preview/pr-238/slides/steffen/java-2/recap/index.html new file mode 100644 index 0000000000..4dc679b890 --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-2/recap/index.html @@ -0,0 +1,540 @@ +Programmieren mit Java

    Agenda

    • Wiederholung
    • Klausurbesprechung
    • Fortgeschrittene Programmierung

    Wiederholung

    Datentypen

    Primitive Datentypen

    • boolean
    • byte, short, int, long
    • float, double
    • char

    Komplexe Datentypen

    • String
    • jede Klasse

    Tipp: Primitive Datentypen haben keine Methoden

    Methoden

    public class Calculator {
    +
    +  public static int add(int x, int y) {
    +    return x + y;
    +  }
    +
    +}
    +
    RückgabetypBezeichnerParameterMethodenrumpf

    Operatoren

    Arithmetische Operatoren

    //...
    +  public static void main(String[] args) {
    +    int a = 3;
    +    int b = 2;
    +    int addition = a + b; // 5;
    +    int subtraktion = a - b; // 1;
    +    int multiplikation = a * b; // 6;
    +    int division = a / b; // 1, nicht 1.5! Warum?;
    +    int restwert = a % b; // 1;
    +  }
    +//...
    +

    Arithmetische Operatoren II

    //...
    +  public static void main(String[] args) {
    +    int a = 3;
    +    System.out.println(a++); // Log: 3, Wert: 4
    +    System.out.println(++a); // Log: 5, Wert: 5
    +    System.out.println(--a); // Log: 4, Wert: 4
    +    System.out.println(a--); // Log: 4, Wert: 3
    +  }
    +//...
    +

    Vergleichsoperatoren

    //...
    +  public static void main(String[] args) {
    +    boolean result;
    +    result = 3 == 2; // false 
    +    result = 3 != 2; // true 
    +    result = 3 > 2; // true 
    +    result = 2 >= 2; // true 
    +    result = 2 < 2; // false 
    +    result = 2 <= 2; // true 
    +  }
    +//...
    +

    Logische Operatoren I - AND

    //...
    +  public static void main(String[] args) {
    +    boolean t = true;
    +    boolean f = false;
    +    boolean result;
    +
    +    result = t && f; // false 
    +    result = t && t; // true 
    +    result = f && t; // false 
    +    result = f && f; // false 
    +  }
    +//...
    +

    Logische Operatoren II - OR

    //...
    +  public static void main(String[] args) {
    +    boolean t = true;
    +    boolean f = false;
    +    boolean result;
    +
    +    result = f || t; // true 
    +    result = t || f; // true 
    +    result = f || f; // false 
    +    result = t || t; // true 
    +  }
    +//...
    +

    Logische Operatoren III - NOT

    //...
    +  public static void main(String[] args) {
    +    boolean t = true;
    +    boolean f = false;
    +    boolean result;
    +
    +    result = !f; // true 
    +    result = !t; // false 
    +  }
    +//...
    +

    Kontrollstrukturen

    if

    //...
    +  public static void main(String[] args) {
    +    int age = 18;
    +
    +    if(age >= 18) {
    +      // Ich krieg alles, was ich will
    +    } else if(age >= 16) {
    +      // Ich krieg Bier, Wein, Most <3 und Sekt 
    +    } else  {
    +      // Ich krieg Coca Zero
    +    } 
    +  }
    +//...
    +

    switch

      public static void greet(String gender) {
    +    switch(gender) {
    +      case 'm':
    +      case 'M':
    +        // falls man ein Mann ist
    +        break; 
    +      case 'F':
    +        // falls man eine Frau ist
    +        break; 
    +      default :
    +        // falls man divers ist
    +        break; 
    +    }
    +  }
    +

    while-Schleife

      public static boolean exists(String brand) {
    +    String[] cars = { 'BMW', 'Audi', 'Benz' }; 
    +    boolean found = false; 
    +    int i = 0; 
    +    while(!found && i < cars.length) {
    +      String car = cars[i];
    +      if(car.equals(brand)) {
    +        found = true;
    +      } else {
    +        i++;
    +      }
    +    }
    +    return found; 
    +  }
    +

    do-while-Schleife

      public static boolean exists(String brand) {
    +    String[] cars = { 'BMW', 'Audi', 'Benz' }; 
    +    boolean found = false; 
    +    int i = 0; 
    +    do {
    +      String car = cars[i];
    +      if(car.equals(brand)) {
    +        found = true;
    +      } else {
    +        i++;
    +      }
    +    }
    +    while(!found && i < cars.length)
    +    return found; 
    +  }
    +

    for-Schleife

      public static boolean exists(String brand) {
    +    String[] cars = { 'BMW', 'Audi', 'Benz' } 
    +    for (int i = 0; i < cars.length; i++) {
    +      String car = cars[i];
    +      if(car.equals(brand)) {
    +        return true;
    +      }
    +    }
    +    return false; 
    +  }
    +

    for-each-Schleife

      public static boolean exists(String brand) {
    +    String[] cars = { 'BMW', 'Audi', 'Benz' } 
    +    for (String car : cars) {
    +      if(car.equals(brand)) {
    +        return true;
    +      }
    +    }
    +    return false; 
    +  }
    +

    break und continue

    • break beendet die komplette Schleife
    • continue überspringt den restlichen Code

    Arrays

    Array

      public static void example() {
    +    String[] cars = { 'BMW', 'Audi', 'Benz' };
    +    String car;
    +    car = cars[0]; // lesen aus dem Array
    +    cars[2] = 'Alfa'; // speichern in ein Array
    +    String[] twoCars = new String[2]; // Array ohne Inhalt
    +    int amountOfItems = twoCars.length;
    +  }
    +

    ArrayList

      public static void example() {
    +    ArrayList<String> cars = new ArrayList<>();
    +    cars.add('BMW');
    +    cars.add('Audi');
    +    cars.add('Benz');
    +    String car;
    +    car = cars.get(0); // lesen aus der Liste
    +    cars.set(2,'Alfa'); // speichern in der Liste
    +    int amountOfItems = cars.size();
    +    cars.remove(1); // löschen aus der Liste
    +  }
    +

    Klassen und Objekte

    Klassen

    Eine Klasse beschreibt gleichartige Objekte durch
    • Attribute
    • Methoden

    Beispiel Klasse

    public class Human {
    +  public String firstName;
    +  public String lastName;
    + 
    +  public String getFullName() {
    +    return firstName + lastName;
    +  }
    +}

    Objekte

    Ein Objekt ist eine mögliche Ausprägung einer Klasse
    • konkreter Wert für ein Attribut
    • konkretes Verhalten einer Methode

    Beispiel Objekt

      Human steffen = new Human();
    +  steffen.firstName = "Steffen";
    +  steffen.lastName = "Merk";
    +  String fullName = steffen.getFullName();
    +

    Konstruktor

    • beschreibt die Initialisierung eines Objektes
    • Konstruktoren können Überladen werden
    public class Car {
    +  private String color;
    +  private char engineType;
    +
    +  public Car(String color) {
    +    this.color = color;
    +    this.engineType = 'b';
    +  }
    +
    +  public Car(String color, char engineType) {
    +    this.color = color;
    +    this.engineType = engineType;
    +  }
    +}
    +

    Konstruktor II

    • Konstruktoren können andere Konstruktoren verwenden
    public class Car {
    +  private String color;
    +  private char engineType;
    +
    +  public Car(String color) {
    +    this(color, 'b')
    +  }
    +
    +  public Car(String color, char engineType) {
    +    this.color = color;
    +    this.engineType = engineType;
    +  }
    +}
    +

    Vererbung

    Vererbung

    Durch Generalisierung werden gemeinsame Attribute und Methoden von mehreren Klassen in eine weitere Klasse ausgelagert.

    public class Dog {
    +  public String name;
    +  public Dog(String name) {
    +    this.name = name;
    +  }
    +  // more Dog specific methods
    +}
    +public class Cat {
    +  public String name;
    +  public Cat(String name) {
    +    this.name = name;
    +  }
    +  // more Cat specific methods
    +}
    +
    public class Animal {
    +  public String name;
    +  public Animal(String name) {
    +    this.name = name;
    +  }
    +}
    +
    public class Dog extends Animal {
    +  public Dog(String name) {
    +    super(name);
    +  }
    +}
    +
    +public class Cat extends Animal {
    +  public Cat(String name) {
    +    super(name);
    +  }
    +}
    +

    Schlüsselwörter zur Vererbung

    • extends
    • super

    Polymorphie

    Polymorphie

    Eine Referenzvariable, die vom Typ einer generalisierten Klasse ist, kann mehrere (poly) Formen annehmen (Unterklassen).

    Eine Referenzvariable vom Typ Animal kann eine Katze oder ein Hund sein.

    Upcast

    Der Referenzvariable einer Oberklasse wird eine Referenzvariable einer Unterklasse zugewiesen.

    Animal animal01 = new Cat();
    +Animal animal02 = new Dog();
    +

    Ist eine Referenzvariable vom Typ einer generalisierten Klasse, können nur die Methoden der generalisierten Klasse verwendet werden.

    Animal animal01 = new Dog();
    +animal01.name = 'Bello'; // funktioniert
    +animal01.bark(); // funktioniert nicht 
    +

    Downcast

    Der Referenzvariable einer Oberklasse wird eine Referenzvariable einer Unterklasse zugewiesen.

    Animal animal01 = new Dog();
    +Dog dog01 = (Dog) animal01;
    +dog01.bark(); // funktioniert
    +

    instanceof operator

    Animal animal01 = new Dog();
    +if (animal01 instanceof Dog) {
    +   // hundespezifischer Quellcode
    +   Dog bello = (Dog) animal01;
    +   bello.bark();
    +}

    Modifier

    Public Modifier - Klasse

    public class Dog {
    +  //...
    +}
    +

    Klasse kann überall im Projekt verwendet werden.

    Kein Modifier - Klasse

    class Dog {
    +  //...
    +}
    +

    Klasse kann nur im selben Paket verwendet werden.

    Abstract Modifier - Klasse

    public abstract class Dog {
    +  //...
    +}
    +

    Ein Objekt dieser Klasse kann nicht instanziiert werden.

    Final Modifier - Klasse

    public final class Dog {
    +  //...
    +}
    +

    Von dieser Klasse kann nicht geerbt werden.

    Public Modifier - Attribut

    public class Dog {
    +  public String name;
    +  //...
    +}
    +

    Das Attribut kann immer geändert werden.

    Dog bello = new Dog();
    +bello.name = "Steffen"; // funktioniert
    +
    +public class MonsterDog extends Dog {
    + //...
    + public void setName(String name) {
    +   this.name = name; // funktioniert
    + }
    + //...
    +}
    +

    Private Modifier - Attribut

    public class Dog {
    +  private String name;
    +  //...
    +  public void setName(String name) {
    +    this.name = name; // funktioniert
    +  }
    +}
    +

    Das Attribut kann innerhalb der Klasse geändert werden.

    Dog bello = new Dog();
    +bello.name = "Steffen"; // funktioniert nicht
    +
    +public class MonsterDog extends Dog {
    + //...
    + public void setName(String name) {
    +   this.name = name; // funktioniert nicht
    + }
    + //...
    +}
    +

    Protected Modifier - Attribut

    public class Dog {
    +  protected String name;
    +  //...
    +  public void setName(String name) {
    +    this.name = name; // funktioniert
    +  }
    +}
    +

    Das Attribut kann innerhalb der Klasse und von allen erbenden Klassen geändert werden.

    Dog bello = new Dog();
    +bello.name = "Steffen"; // funktioniert nicht
    +
    +public class MonsterDog extends Dog {
    + //...
    + public void setName(String name) {
    +   this.name = name; // funktioniert
    + }
    + //...
    +}
    +

    Final Modifier - Attribut

    public class Dog {
    +  public final String name;
    +  //...
    +  public Dog(String name) {
    +    this.name = name; // funktioniert
    +  }
    +
    +  public void setName(String name) {
    +    this.name = name; // funktioniert nicht
    +  }
    +}
    +

    Das Attribut kann nur im Konstruktor geändert werden.

    Dog bello = new Dog("Marianna");
    +bello.name = "Steffen"; // funktioniert nicht
    +
    +public class MonsterDog extends Dog {
    + //...
    + public void setName(String name) {
    +   this.name = name; // funktioniert nicht
    + }
    + //...
    +}
    +

    Static Modifier - Attribut

    public class Dog {
    +  public static boolean hasHat = false;
    +  //...
    +}
    +

    Das Attribut gehört zu der Klasse und nicht zu einem Objekt.

    Dog bello = new Dog();
    +bello.hasHat = true; // funktioniert nicht
    +Dog.hasHat = true; // funktioniert
    +
    +public class MonsterDog extends Dog {
    + //...
    + public void setHat(boolean hasHat) {
    +   this.hasHat = hasHat; // funktioniert nicht
    +   Dog.hasHat = hasHat; // funktioniert
    + }
    + //...
    +}
    +

    Public Modifier - Methode

    public class Dog {
    +  public void bark() {
    +    //...
    +  }
    +  //...
    +}
    +

    Die Methode kann immer verwendet werden.

    Dog bello = new Dog();
    +bello.bark(); // funktioniert
    +
    +public class MonsterDog extends Dog {
    + //...
    + public void attack() {
    +   this.bark(); // funktioniert
    + }
    + //...
    +}
    +

    Private Modifier - Methode

    public class Dog {
    +  private void bark() {
    +    //...
    +  }
    +  //...
    +}
    +

    Die Methode kann innerhalb der Klasse verwendet werden.

    Dog bello = new Dog();
    +bello.bark(); // funktioniert nicht
    +
    +public class MonsterDog extends Dog {
    + //...
    + public void attack() {
    +   this.bark(); // funktioniert nicht
    + }
    + //...
    +}
    +

    Protected Modifier - Methode

    public class Dog {
    +  protected void bark() {
    +    //...
    +  }
    +  //...
    +}
    +

    Das Attribut kann innerhalb der Klasse und von allen erbenden Klassen verwendet werden.

    Dog bello = new Dog();
    +bello.bark(); // funktioniert nicht
    +
    +public class MonsterDog extends Dog {
    + //...
    + public void attack() {
    +   this.bark(); // funktioniert
    + }
    + //...
    +}
    +

    Final Modifier - Methode

    public class Dog {
    +  public final void bark() {
    +    //...
    +  }
    +  //...
    +}
    +

    Die Methode kann nicht überschrieben werden.

    public class MonsterDog extends Dog {
    + //...
    + public void bark() { // funktioniert nicht 
    +   //...
    + }
    + //...
    +}
    +

    Static Modifier - Methode

    public class Dog {
    +  public static hasHat = true;
    +  public static isCool = true;
    +  public static boolean isCoolAndHasHat() {
    +    return Dog.isCool && Dog.hasHat;
    +  }
    +  //...
    +}
    +

    Die Methode gehört zu der Klasse und nicht zu einem Objekt. Es kann nur auf statische Attribute zugegriffen werden.

    Dog bello = new Dog();
    +bello.isCoolAndHasHat(); // funktioniert nicht
    +Dog.isCoolAndHasHat(); // funktioniert
    +
    +public class MonsterDog extends Dog {
    + //...
    + public void attack() {
    +   this.isCoolAndHasHat(); // funktioniert nicht
    +   Dog.isCoolAndHasHat(); // funktioniert
    + }
    + //...
    +}
    +

    Abstract Modifier - Methode

    public abstract class Animal {
    +  //...
    +  public abstract void makeSound();
    +}
    +

    Die Methode muss von der erbenden Klasse implementiert werden. Abstrakte Methoden können nur in abstrakten Klassen definiert werden.

    public class MonsterDog extends Dog {
    + // funktioniert nicht, makeSound muss implementiert werden
    +}
    +

    Enumeration

    Enumeration

    Eine Enumeration ist eine Klasse mit Attributen und Methoden. Sie definiert zusätzlich alle möglichen Ausprägungen dieser Klasse.

    Enumeration implementieren

    public enum Gender {
    + MALE("Mann"),
    + FEMALE("Frau"),
    + DIVERS("Divers");
    + 
    + public final String text;
    + 
    + Gender(String text) {
    +   this.text = text;
    + }
    + 
    + public boolean isBinary() {
    +   return this == Gender.MALE || this == Gender.FEMALE;
    + }
    +}
    +

    Enumeration als Typ verwenden

    public class Human {
    + public final Gender gender;
    + 
    + public Human(Gender gender) {
    +   this.gender = gender;
    + }
    + public doSomethingBinaryRelated() {
    +   if(this.gender.isBinary())
    +   //...
    + }
    +}
    +

    Enumeration als Wert setzen

    Human steffen = new Human(Gender.MALE);
    +

    Interfaces

    Interfaces

    Definieren Methoden unabhängig von der Vererbungshierarchie.

    Dient als Schnittstelle zwischen Ersteller und Verwender einer Funktionalität.

    Interface (Ersteller)

    public interface Item {
    +  public String getName(); 
    +}
    +
    +public class ShoppingList {
    +  ArrayList<Item> items = new ArrayList<>();
    +  public void add(Item item) {
    +    this.items.add(item);
    +  }
    +  public void print() {
    +    for(Item item : items) {
    +      System.out.println(item.getName();
    +    }
    +  }
    +}
    +

    Interface (Verwender) I

    public class Human implements Item {
    +  public final String firstName;
    +  public final String lastName;
    +  
    +  public Human(String firstName, String lastName) {
    +    this.firstName = firstName;
    +    this.lastName = lastName;
    +  }
    +  
    +  public String getName() {
    +    return firstName + " " + lastName;
    +  }
    +}
    +

    Interface (Verwender) II

    ShoppingList shoppingList = new ShoppingList();
    +Human steffen = new Human("Steffen", "Merk");
    +shoppingList.add(steffen);
    +shoppingList.print(); // "Steffen Merk"
    +

    Comparator

    Comparator

    Definiert wie eine Liste von Elementen sortiert wird.

    Vergleicht immer zwei Elemente miteinander, bei dem angegeben wird, wo das erste Element im Vergleich zum zweiten Element positioniert wird (Zahlenstrahl).

    Comparator implementieren

    public class AgeAscComparator implements Comparator<Human> {
    +  
    +  public int compare(Human h1, Human h2) {
    +    if(h1.getAge() > h2.getAge()) {
    +     return 1;
    +    } else if (h1.getAge() < h2.getAge()) {
    +      return -1;
    +    } else {
    +      return 0;
    +    } 
    +  }
    +}
    +

    Comparator verwenden

    ArrayList<Human> developers = new ArrayList<>();
    +developers.add(new Human(28));
    +developers.add(new Human(24));
    +Collections.sort(developers, new AgeAscComparator());
    +

    Exceptions

    Exceptions

    Sind Fehler, die während der Ausführung des Programms auftreten können und dienen zur Kommunikation.

    Fehler können mitgeteilt (throws) und verarbeitet werden (catch).

    Exception implementieren

    public class TooYoungException extends Exception {
    +  
    +  public final int yearsTillAllowed;
    +  
    +  public TooYoungException(int yearsTillAllowed) {
    +    super();
    +    this.yearsTillAllowed = yearsTillAllowed;
    +  }
    +}
    +

    Exception auslösen

    public class ShoppingList {
    +  Human buyer;
    +  //...
    +  public addItem(Item item) throws TooYoungException {
    +    if(item.isAlcohol() && this.buyer.getAge() < 21) {
    +      throw new TooYoungException(21 - buyer.getAge());
    +    }
    +  }
    +}
    +

    Exception behandeln

    public class Main {
    +  public static void main(String[] args) {
    +    ShoppingList sl = new ShoppingList();
    +    Beer corona = new Beer();
    +    try {
    +      sl.add(corona);
    +    } catch (TooYoungException e) {
    +      System.out.println("Du bist" + e.yearsTillAllowed + "zu jung");
    +    } finally {
    +      System.out.println("Einkauf beendet. (Immer)");
    +    }
    +  }
    +}
    +

    Klassendiagramme (Doku)

    Klausurbesprechung

    Organisatorsiches

    Fortgeschrittene Programmierung

    • Algorithmen und Datenstrukturen
    • Generische Programmierung
    • Funktionale Programmierung

    Prüfungsleistungen

    • Projektbericht (50 Punkte)
    • Klausur am PC (50 Punkte)

    Projektbericht - Termine

    • 30.04.2024 - Problem und Daten in Moodle
    • 30.05.2025 - Abgabe Projektbericht (Moodle/Papier)

    Projektbericht - Problem

    • findet ein Problem (im Unternehmen)
    • (er)findet dazu Daten
    • mindestens eine Verknüpfung
    • keine doppelten Themen (Selbstorganisiert)

    Projektbericht - Ergebnis am 30.04

    • Problembeschreibung (Textdatei)
    • Tabelle mit mindestens 20 Datensätzen (CSV-Datei)
    • Hochladen in Moodle

    Projektbericht - Ergebnis am 31.05

    • Erklärung am 30.04

    Klausur am PC

    • Ablauf wie Test/Klausur
    • VSCode anstatt Notepad++
    • Keine Fragenbeschreibung in Moodle

    Rest of the day

    • Wiederholung
    • Entwicklungsumgebung einrichten
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-2/search-algo/index.html b/pr-preview/pr-238/slides/steffen/java-2/search-algo/index.html new file mode 100644 index 0000000000..7dd30038eb --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-2/search-algo/index.html @@ -0,0 +1 @@ +Programmieren mit Java

    Suchalgorithmen

    Agenda

    • Intro
    • Lineare Suche
    • Binärsuche
    • Interpolationssuche
    • Two Chrystal Balls Problem

    Intro

    Was ist Suchen?

    Auffinden eines bestimmten Elements innerhalb einer Datensammlung

    Begriffe

    • Zielelement
    • Suchraum

    Anwendungen von Suchalgorithmen

    • Suchmaschinen
    • Datenbanksysteme
    • E-Commerce
    • Musteranalyse

    Lineare Suche

    Funktionsweise

    Die lineare Suche beginnt an einem Ende des Suchraumes und durchläuft jedes Element, bis das Zielelement gefunden wird.

    Theoretisches Konzept

    • Jedes Element kann mit dem Suchkriterium übereinstimmen und wird überprüft.
    • Wenn das Zielelement gefunden wurde, wird der Index des Zielelements zurückgegeben.
    • Wenn das Zielelement nicht gefunden wurde, wird -1 zurückgegeben.

    Demo - Linear Search

    Performance

    • Zeitkomplexität: O(N)
    • Speicherkomplexität: O(1)

    Zusammenfassung

    • Kann unabhänging von Sortierung benutzt werden
    • Kein weiterer Speicherbedarf
    • Geeignet für kleine Datenmengen

    Binäre Suche

    Funktionsweise

    Die binäre Suche setzt einen sortierten Suchraum voraus, was die Suche erheblich vereinfacht.

    Wird ein Element innerhalb des Suchraumes mit dem Zielelement verglichen, kann abgeleited werden, ob das Zielelement vor oder nach dem Element sein muss.

    Theoretisches Konzept

    1. Mitte des aktuellen Suchraumes finden
    2. Wenn Element in der Mitte dem Suchkriterium entspricht → index zurückgeben.
    3. Wenn Element in der Mitte größer als Suchkriterium → in erster Hälfte weitersuchen
    4. Wenn Element in der Mitte kleiner als Suchkriterium → in zweiter Hälfte weitersuchen
    5. Wenn kein Element im Suchraum gefunden wurde → -1 zurückgeben

    Begriffe - Binäre Suche

    • high = index oberes Ende des Suchraumes
    • low = index unteres Ende des Suchraumes
    • middle = index Mitte des Suchraumes
    • Beispiel

    Demo - Binary Search

    Interpolations Suche

    Funktionsweise

    Die Interpolationsuche setzt einen sortierten Suchraum voraus, was die Suche erheblich vereinfacht.

    Sind Daten nicht gleich verteilt, kann mit der linearen Interpolation der Suchraum besser eingeschränkt werden.

    Theoretisches Konzept

    1. Bessere Mitte des Suchraumes finden (lineare interpolation)
    2. Rest wie Binäre Suche

    Lineare Interpolation

    • Beispiel Interpolation
    • {\displaystyle p:=l+{\frac {w-A[l]}{A[r]-A[l]}}\cdot (r-l)}
    • Herleitung (Video)

    Demo - Interpolation Search

    Vergleich Suchalgorithmen

    Lineare Suche vs Binäre Suche

    LinearBinaryInterpolation
    Sortierung irrelevantSortierung notwendigSortierung notwendig
    Zeit: O(N)Zeit: O(log N)Zeit: O(N)

    abhängig von Anwendungsfall

    Rest of the day

    • Problem und Datensatz
    • Search mit eigenem Problem (Optional)
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-2/sets-maps-hashes-records/index.html b/pr-preview/pr-238/slides/steffen/java-2/sets-maps-hashes-records/index.html new file mode 100644 index 0000000000..0e757a2905 --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-2/sets-maps-hashes-records/index.html @@ -0,0 +1,47 @@ +Programmieren mit Java

    Agenda

    • Set
    • Map
    • Hashes
    • Records

    Set

    Konzept

    • Set ist ein Interface
    • Realisiert eine Menge
    • Vereinigung (Union)
    • Durchschnitt (Intersection)
    • Differenz (Difference)

    HashSet- Klasse

    implementiert das Set interface

    hat einen Typparameter

    Demo - HashSet

    • Mengen erstellen (1-4) und (2,3,5)
    • Vereinigung (Union)
    • Durchschnitt (Intersection)
    • Differenz (Difference)

    Methoden eines Sets

    // ...
    +  Set<Integer> numbers = new HashSet<>();
    +  Set<Integer> otherNumbers = new HashSet<>();
    +  numbers.add(4545); // add entry
    +  numbers.remove(4545); // remove entry
    +  numbers.clear(); // remove all entries
    +  numbers.size(); // number of entries
    +  students.contains(4545); // entry exists
    +  students.addAll(otherNumbers); // union
    +  students.retainAll(otherNumbers); // intersection
    +  students.removeAll(otherNumbers); // difference
    +// ...
    +

    Map

    Konzept

    • Map ist ein Interface
    • Realisiert ein Schlüssel-Wert-Paar
    • Keine doppelten Schlüssel möglich
    • Existiert ein Schlüssel oder Wert
    • Alle Schlüssel, Werte oder Schlüssel-Wert-Paare

    Beispiele Schlüssel-Wert-Paare

    • Studentendaten → MatrikelNummer, Student
    • Produktinventar → Produkt, Anzahl
    • StadtInfos → Stadtname, CityInfo
    • Hauptstädte → Land, Hauptstadt

    HashMap- Klasse

    implementiert das Map interface

    hat zwei Typparameter

    Demo - HashMap

    • Map erstellen (Matrikelnummer/Note)
    • Hinzufügen und Löschen von Noten

    Methoden einer Map

    // ...
    +  Student steffen = new Student("Steffen");
    +  Map<Integer, Student> students = new HashMap<>();
    +  students.put(4545, steffen); // add entry
    +  students.get(4545); // get entry
    +  students.remove(4545); // remove entry
    +  students.clear(); // remove all entries
    +  students.size(); // number of entries
    +  students.containsKey(4545); // key exists
    +  students.containsValue(steffen); // value exists
    +  students.keySet(); // get all keys as Set
    +  students.values(); // get all values as Collection
    +  students.entrySet(); // get all entries as Set
    +// ...
    +

    Hashes

    Demo - Hashmap Dog Inventory

    • ein Hund und deren Besitzer
    • Besitzer des Hundes ändern

    Was ist ein Hash(wert)?

    • Ergebnis einer Hashfunktion

    Was ist eine Hashfunktion?

    Eine Hashfunktion bildet aus einer großen Menge von Daten eine geringere Menge von Daten ab.

    Eigenschaften einer Hashfunktion

    • Einwegsfunktion
    • Deterministisch
    • Kollisionsbehaftet

    Was sind Hashkollisionen?

    Eine Hashkollision tritt auf, wenn zwei unterschiedliche Eingabedaten denselben Hashwert erzeugen.

    Beispiel Hashfunktion

    NameSummeHash
    Steffen7153
    Mirco5062
    Marianna8073

    Einwegfunktion, Deterministisch, Kollisionsbehaftet

    Zusammenfassung Hash

    • Reduktion auf einen Wert
    • Kollisionen

    funktionsweise der put-Methode einer HashMap

    1. Hashwert des Schlüssels berechnen → Index
    2. falls kein Wert an diesem Index → Einfügen
    3. falls Wert an diesem Index → Werte vergleichen
    4. falls Werte gleich → Wert ersetzen
    5. falls Werte ungleich → Speicher vergrößern

    Die Klasse Object

    • hashCode
    • equals
    • toString

    HashSet und HashMap verwenden die Methoden hashCode und equals

    Demo - HashCode und Equals

    • hashCode überschreiben und loggen
    • equals überschreiben und loggen
    • alle Fälle erzeugen
    • hashCode implementieren
    • equals implementieren

    Records

    Records

    Ein Record ist eine Datenklasse, deren Attribute nicht verändert werden können.

    Eine Datenklasse hat somit finale Attribute und Getter.

    Beispiel Datenklasse Dog I

    public class Dog {
    + final String name;
    + final int age;
    +
    + public Dog(String name, int age) {
    +  this.name = name;
    +  this.age = age;
    + }
    +
    + public String getName() {
    +  return name;
    + }
    +// ...
    +

    Beispiel Datenklasse Dog II

    // ...
    + public int getAge() {
    +  return age;
    + }
    +// weitere Methoden siehe Doku
    +}
    +

    Beispiel Record Dog

    public record Dog(String name, int age) {}
    +

    Record

    Da ein Record von der Record-Klasse erbt, kann nicht von einer anderen Klasse geerbt werden.

    Ein Record kann jedoch weitere Methoden haben und beliebig viele Schnittstellen implementieren.

    Record - Gratis Methoden

    • Konstruktor
    • Getter
    • Equals
    • hashCode
    • toString

    Demo - Record vs Class

    • Cat Klasse → Cat Record
    • equals
    • toString
    • height - weiteres Attribut
    • isOld - weitere Methode
    • HashMap - Cat Inventory

    Rest of the Day

    • Generics
    • Maps
    • Records
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-2/sort-algo/index.html b/pr-preview/pr-238/slides/steffen/java-2/sort-algo/index.html new file mode 100644 index 0000000000..48dad26cc4 --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-2/sort-algo/index.html @@ -0,0 +1 @@ +Programmieren mit Java

    Sortieralgorithmen

    Agenda

    • Intro
    • Selection Sort
    • Bubble Sort
    • Insertion Sort
    • Quick Sort
    • Merge Sort

    Intro

    Was ist Sortieren?

    Neuordnung eines gegebenen Arrays oder einer Liste von Elementen nach einem Vergleichsoperator für die Elemente

    Alle Elemente werden entweder in aufsteigender oder in absteigender Reihenfolge neu angeordnet.

    Begriffe

    • In-place sorting
    • Internal Sorting
    • External Sorting
    • Stable Sorting
    • Unstable Sorting

    Stable und Unstable Sorting

    • 🃅 🃕 🂲 🂪 → Input
    • 🂲 🃅 🃕 🂪 → Stabil
    • 🂲 🃕 🃅 🂪 → Unstabil

    Ein stabiler Sortieralgorithmus verändert nicht die ursprüngliche Reihenfolge der 5er-Karten

    Anwendungen von Sortieralgorithmen

    • Suchalgorithmen
    • Datenbankoptimierung
    • Datenanalyse
    • Betriebssysteme

    Selection Sort

    Funktionsweise

    Beim Selection Sort wird wiederholt das kleinste Element aus dem unsortierten Teil der Liste ausgewählt und in den sortierten Teil der Liste verschoben.

    Beispiel: 69, 27, 11, 28, 2

    Theoretisches Konzept

    • Man setzt den Index auf Low
    • Man durchsucht den restlichen Teil des Arrays nach dem kleinsten Element
    • Man tauscht das kleinste Element mit dem Element am Index
    • Index inkrementieren und wiederholen solange, bis alle Elemente sortiert sind.

    Demo - Selection Sort

    Performance

    • Zeitkomplexität: O(N²)
    • Speicherkomplexität: O(1)

    Zusammenfassung

    • Einfach zu implementieren
    • Nicht stabil

    Bubble Sort

    Funktionsweise

    Beim Bubble Sort wird wiederholt das größte Element aus dem unsortierten Teil der Liste in den sortierten Teil der Liste verschoben.

    Beispiel: 69, 27, 11, 28, 2

    Theoretisches Konzept

    • Man setzt den Index auf Low
    • Man durchläuft den unsortierten Teil des Arrays
    • Ist das aktuelle Element am Index größer als das nächste Element, werden Sie getauscht.
    • High dekrementieren und wiederholen solange, bis alle Elemente sortiert sind.

    Demo - Bubble Sort

    Performance

    • Zeitkomplexität: O(N²)
    • Speicherkomplexität: O(1)

    Zusammenfassung

    • Einfach zu implementieren
    • Stabil

    Insertion Sort

    Funktionsweise

    Beim Insertion Sort wird wiederholt das nächste Element aus dem unsortierten Teil der Liste in die richtige Stelle des sortierten Teils der Liste verschoben.

    Beispiel: 69, 27, 11, 28, 2

    Theoretisches Konzept

    • Man setzt den sortedHighIndex auf Low + 1
    • Man durchläuft den unsortierten Teil des Arrays
    • Ist das aktuelle Element am Index kleiner als das vorherige Element, werden Sie getauscht.
    • sortedHigh dekrementieren und wiederholen solange, bis Element an der richtigen Stelle sortiert ist

    Demo - Insertion Sort

    Performance

    • Zeitkomplexität: O(N²)
    • Speicherkomplexität: O(1)

    Zusammenfassung

    • Einfach zu implementieren
    • Stabil

    Quick Sort

    Allgemein

    • Divide and Conquer
    • Rekursiv

    Funktionsweise

    Beim Quick Sort wird wiederholt der Input am freiwählbaren Pivotindex aufgeteilt. Jedes Element wird mit dem Pivotelement verglichen. Ist es kleiner als das Pivotelement wird es in den linken Teil verschoben, ansonsten in den rechten Teil.

    Anschließend wird zuerst der linke Teil danach der rechte Teil sortiert.

    Beispiel: 10, 80, 30, 90, 40, 50, 70

    Theoretisches Konzept

    • Base Case: Nur noch 1 Element übrig → return;
    • Pre Recurse: Aufteilen des Arrays in Links und Rechts
    • Recurse: linke Seite anschließend rechte Seite

    Demo - Quick Sort

    Performance

    • Zeitkomplexität: O(N²)
    • Speicherkomplexität: O(1)

    Zusammenfassung

    • Effizient bei großen Datenmengen O(N log N)
    • Nicht stabil

    Merge Sort

    Allgemein

    • Divide and Conquer
    • Rekursiv

    Funktionsweise

    Beim Merge Sort wird wiederholt der Input in der Mitte aufgeteilt.

    Anschließend wird zuerst der linke Teil danach der rechte Teil sortiert.

    Anschließend werden der linke und der rechte Teil zusammengeführt.

    Beispiel: 69, 27, 11, 28, 2

    Theoretisches Konzept

    • Base Case: Nur noch 1 Element übrig → return;
    • Pre Recurse: Aufteilen des Arrays in Links und Rechts
    • Recurse: linke Seite anschließend rechte Seite
    • Post Recurse: linke Seite und rechte Seite zusammenführen

    Demo - Merge Sort

    Performance

    • Zeitkomplexität: O(N log N)
    • Speicherkomplexität: O(N)

    Zusammenfassung

    • Effizient bei großen Datenmengen O(N log N)
    • Stabil
    • Speicherbedarf is Hoch
    • Kein In-Place Sort

    Vergleich Sortieralgorithmen

    AlgorithmusBest Average Worst
    Selection SortO(N²)O(N²)O(N²)
    Bubble SortO(N)O(N²)O(N²)
    Insertion SortO(N)O(N²)O(N²)
    Quick SortO(N log N)O(N log N)O(N²)
    Merge SortO(N log N)O(N log N)O(N log N)

    Merge Sort hat eine Speicherkomplexität von O(N)

    Rest of the day

    • Demo Code verstehen, debuggen, implementieren (Optional)
    • Sort mit eigenem Problem (Optional)
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-2/stack-queue-list/index.html b/pr-preview/pr-238/slides/steffen/java-2/stack-queue-list/index.html new file mode 100644 index 0000000000..11ed4112da --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-2/stack-queue-list/index.html @@ -0,0 +1 @@ +Programmieren mit Java

    Stack, Queue & List

    Agenda

    • Stack
    • Queue
    • List

    Stack

    Was ist ein Stack?

    Bei einem Stack werden neue Elemente gestapelt. Man kann immer nur das oberste Element entnehmen.

    Beispiel Teller

    Anwendungen von Stack

    • Undo/Redo
    • Browserverlauf
    • Depth-First-Search (Trees)

    Stack Operationen

    • push → Element oben hinzufügen
    • pop → Element von oben entfernen
    • peek → oberstes Element anschauen
    • isEmpty

    Demo - Stack

    Performance

    • Zeitkomplexität: O(1)
    • Speicherkomplexität: O(N)

    Wie kann man die Größe ermitteln?

    Queue

    Was ist eine Queue?

    Bei einer Queue werden neue Elemente hinten hinzugefügt. Man kann immer nur das vorderste Element entnehmen.

    Beispiel Mensa

    Anwendungen von Queue

    • Datenübertragung
    • Warteschlangenverarbeitung
    • Scheduler in Betriebssystemen

    Queue Operationen

    • enqueue → Element hinten hinzufügen
    • dequeue → Element vorne entfernen
    • peek → vorderstes Element anschauen
    • isEmpty

    Demo - Queue

    Performance

    • Zeitkomplexität: O(1)
    • Speicherkomplexität: O(N)

    Wie kann man die Größe ermitteln?

    List

    Was ist eine Liste?

    Bei einer Liste werden neue Elemente hinten oder an einer bestimmten Stelle hinzugefügt. Man kann auf jedes Element über einen Index in der Liste zugreifen, die Größe ermitteln und Elemente löschen.

    Beispiel ToDo Liste

    List Operationen

    • length
    • prepend → Element vorne hinzufügen
    • append → Element hinten hinzufügen
    • insertAt → Element an Index hinzufügen
    • remove → Element löschen
    • removeAt → Element an Index löschen
    • get → Element an Index zurückgeben

    Demo - List

    Performance

    • Zeitkomplexität: O(1) → length, prepend, append
    • Zeitkomplexität: O(N) → insertAt, remove, removeAt, get
    • Speicherkomplexität: O(N)

    Vergleich ArrayList → LinkedList

    Rest of the day

    Firobed: 🍺

    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-2/stream-api/index.html b/pr-preview/pr-238/slides/steffen/java-2/stream-api/index.html new file mode 100644 index 0000000000..26471de3aa --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-2/stream-api/index.html @@ -0,0 +1,212 @@ +Programmieren mit Java

    Agenda

    • Intro Collections
    • Java Stream API
    • Quellen
    • Intermediate Operations
    • Terminal Operations

    Intro Collections

    Collection

    • ArrayList<Student>
    • ArrayList<Car>
    • ArrayList<Animal>

    Collections bieten einen direkten Zugriff auf die Elemente um Sie zu verwalten.

    Collection II

    • Daten abfragen → Name des ältesten Studenten
    • Daten ändern → Preis eines Produkts erhöhen

    Was ist ein Java Stream?

    Eine Sequenz (Abfolge) von Elementen, die funktionale Operationen (Funktionale Interfaces) unterstützt, um Daten zu verarbeiten, transformieren und aggregieren

    Streams vs Collection

    • Streams manipulieren keine Daten (immutable)
    • Streams verarbeiten Daten nach Bedarf (lazy)
    • Streams verarbeiten Daten parallel

    Demo - Intro Stream API

    • Anzahl Studenten
    • & Älter als 24
    • & Vorname mindestens 4 Zeichen
    • & Fullname mehr als 10 Zeichen
    • gleiches als Stream

    Java Stream API

    Was is eine Stream Pipeline

    public class Main {
    +  public static void main(String[] args) {
    +    ArrayList<String> names = new ArrayList<>();
    +    
    +    names.stream() // source
    +      .filter(name -> name.length > 4) //inter-
    +      .map(name -> name.toUpperCase()) //mediate
    +      .limit(12)                      //operations
    +      .forEach(System.out::println); // terminal operation
    +  }
    +}
    +

    Charakteristika einer Stream Pipeline

    • Intermediate Operations sind optional
    • Terminal Operation ist erforderlich
    • Terminal Operation führt die Pipeline aus
    • Pipeline kann nur einmal genutzt werden

    Demo - Stream API

    • Intermediate Optional
    • Terminal erforderlich, sonst passiert nichts
    • Pipeline nur einmal Nutzbar
    • Intermediate Reihenfolge

    Aufbau einer Pipeline

    • Quelle
    • Intermediate Operations
    • Terminal Operations

    Quellen

    Erzeugen von Quellen I

    public class Main {
    +  public static void main(String[] args) {
    +    // Collection.stream(); // interface
    +    // → Klassen die Collection implementieren:
    +    ArrayList<Student> students = new ArrayList<>();
    +    students.stream();
    +    
    +    HashMap<String, Student> map = new HashMap<>();
    +    map.keySet().stream();
    +    map.entrySet().stream();
    +    map.values().stream();
    +  }
    +}
    +

    Erzeugen von Quellen II

    public class Main {
    +  public static void main(String[] args) {
    +    // Array in ein Stream konvertieren:
    +    // Arrays.stream(T[])
    +    Stream<Integer> num1 = Arrays.stream({ 1, 2, 3, 4 });
    +    
    +    int[] numArray = { 1, 2, 3, 4 };
    +    Stream<Integer> num2 = Arrays.stream(numArray);
    +  }
    +}
    +

    Erzeugen von Quellen III

    public class Main {
    +  public static void main(String[] args) {
    +    // Gleichartige Werte in ein Stream kovertieren:
    +    // Stream.of(T...);
    +    Stream<Integer> num1 = Stream.of(1, 2, 3, 4);
    +  }
    +}
    +

    Intermediate Operations

    Intermediate Operations

    sind Methoden eines Streams, die als Rückgabewert einen Stream zurückgeben.

    Stream Klasse

    filter - Methode

    Stream<T> filter(Predicate<? super T> predicate)

    Der Parameter predicate muss das Predicate Interface implementieren.

    filter - Verwendung

    public class Main {
    +  public static void main(String[] args) {
    +    Stream.of(1, 2, 3, 4)
    +      .filter(number -> number > 3);
    +      // nur 4 bleibt übrig
    +  }
    +}
    +

    map - Methode

    <R> Stream<R> map(Function<? super T,? extends R> mapper)

    Der Parameter mapper muss das Function Interface implementieren.

    Die Eingabe vom Typ T definiert der vorherige Stream. Der Rückgabetyp des mapper Parameters definiert den Rückgabetyp des Streams.

    map - Verwendung

    public class Main {
    +  public static void main(String[] args) {
    +    Stream.of(1, 2, 3, 4)
    +      .map(number -> number * 2);
    +    // Rückgabetyp: Stream<Integer>
    +    Stream.of(1, 2, 3, 4)
    +      .map(number -> String.valueOf(number));
    +    // Rückgabetyp: Stream<String>
    +  }
    +}
    +

    limit - Methode

    Stream<T> limit(long maxSize)

    Es werden maximal "maxSize" Elemente des vorherigen Streams weitergegeben.

    limit - Verwendung

    public class Main {
    +  public static void main(String[] args) {
    +    Stream.of(1, 2, 3, 4)
    +      .limit(2);
    +      // nur 1 & 2 werden weitergegeben
    +  }
    +}
    +

    skip - Methode

    Stream<T> skip(long n)

    Es werden n-Elemente übersprungen.

    skip - Verwendung

    public class Main {
    +  public static void main(String[] args) {
    +    Stream.of(1, 2, 3, 4)
    +      .skip(2);
    +      // nur 3 & 4 werden weitergegeben
    +  }
    +}
    +

    sorted - Methode

    Stream<T> sorted(Comparator<? super T> comparator)

    Der Parameter comparator muss das Comparator Interface implementieren.

    sorted - Verwendung

    public class Main {
    +  public static void main(String[] args) {
    +    Stream.of(4, 3, 2, 1)
    +      .sorted((n1, n2) -> Integer.compare(n1, n2));
    +      // 1, 2, 3, 4
    +      // Sagt Bye Bye zu Collections.sort()
    +  }
    +}
    +

    distinct - Methode

    Stream<T> distinct()

    Es werden nur einzigartige Werte im Stream beibehalten. Diese werden Mithilfe von .equals identifiziert.

    distinct - Verwendung

    public class Main {
    +  public static void main(String[] args) {
    +    Stream.of(1, 2, 1, 4)
    +      .distinct();
    +      // nur 1, 2 & 4 werden weitergegeben
    +  }
    +}
    +

    Von Stream zu Stream

    Intermediate Operations werden auf einem Stream aufgerufen und geben immer einen Stream zurück.

    Demo - Lambda Funktionen Auslagern

    • Review von Stream Api Examples
    • Attribut: minimumFirstName
    • Attribut: olderThan24Years
    • Attribut: toFullName
    • Methode: olderThanYears
    • Methode: fullNameIsLongerThan

    Terminal Operations

    Terminal Operations

    • Matching und Suchen
    • Transformationen
    • Statistik
    • Verarbeitung

    Matching

    Mit Matching kann abgefragt werden ob bestimmte Elemente einer Bedingung entsprechen.

    Matching - Methoden

    boolean  allMatch(Predicate<T> predicate) // alle
    +boolean noneMatch(Predicate<T> predicate) // keiner
    +boolean  anyMatch(Predicate<T> predicate) // mindestens einer
    +

    Matching - Verwendung

    public class Main {
    +  public static void main(String[] args) {
    +    Stream.of(1, 2, 3, 4)
    +      .allMatch(number -> number > 3); // false
    +    
    +    Stream.of(1, 2, 3, 4)
    +      .noneMatch(number -> number > 4); // true
    +    
    +    Stream.of(1, 2, 3, 4)
    +      .anyMatch(number -> number > 2); // true
    +  }
    +}
    +

    Suchen

    Mit findAny und findFirst wird das erste Element in einem Stream zurückgegeben.

    Suchen - Methoden

    Optional<T> findAny() // nicht deterministisch
    +Optional<T> findFirst() // deterministisch
    +

    Hauptsächlich wichtig bei parallelen Streams

    Suchen - Verwendung

    public class Main {
    +  public static void main(String[] args) {
    +    Stream.of(1, 2, 3, 4)
    +      .filter(number -> number > 1)
    +      .findAny() // 2, 3 oder 4
    +    
    +    Stream.of(1, 2, 3, 4)
    +      .filter(number -> number > 1)
    +      .findFirst() // immer 2
    +  }
    +}
    +

    Transformationen

    Die Ergebnismenge wird gesammelt.

    Transformationen - Methoden

    List<T> toList()
    +T[] toArray()
    +
    +T reduce(T identity, BinaryOperator<T> accumulator)
    +
    +R collect(Collector<T,A,R> collector)
    +

    Transformationen - Verwendung I

    public class Main {
    +  public static void main(String[] args) {
    +    List<Integer> nums = Stream.of(1, 2, 3, 4)
    +      .filter(number -> number > 1)
    +      .toList() // List<Integer>
    +    
    +    Object[] nums2 = Stream.of(1, 2, 3, 4)
    +      .filter(number -> number > 1)
    +      .toArray() // Object[]
    +  }
    +}
    +

    Transformationen - Verwendung II

    public class Main {
    +  public static void main(String[] args) {
    +    Stream.of(1, 2, 3, 4)
    +      .reduce(0, (a, b) -> a + b);  // int *NKR
    +  }
    +}
    +

    Transformationen - Verwendung III

    public class Main {
    +  public static void main(String[] args) {
    +    ArrayList<Student> students = getManyStudents()
    +      .stream()
    +      .collect(Collectors.toList());
    +      // Collectors.toMap ist Klausurrelevant
    +      // Collectors.groupingBy ist Klausurrelevant
    +  }
    +}
    +

    Demo - Collectors

    Statistik

    Mit Statistik Operationen lassen sich Anzahl, Minimum, Maximum, Summe und Durchschnitt berechnen.

    Statistik - Methoden

    long count()
    +
    +Optional<T> min(Comparator<? super T> comparator)
    +Optional<T> max(Comparator<? super T> comparator)
    +

    Statistik - Verwendung I

    public class Main {
    +  public static void main(String[] args) {
    +    Stream.of(1, 2, 3, 4)
    +      .count(); // 4
    +  }
    +}
    +

    Statistik - Verwendung II

    public class Main {
    +  public static void main(String[] args) {
    +    Optional<Integer> min = Stream.of(1, 2, 3, 4)
    +      .min((n1, n2) -> Integer.compare(n1, n2));
    +    
    +    min.ifPresent(System.out::println); // 1
    +  }
    +}
    +

    Statistik - Verwendung III

    public class Main {
    +  public static void main(String[] args) {
    +    Optional<Integer> max = Stream.of(1, 2, 3, 4)
    +      .max((n1, n2) -> Integer.compare(n1, n2));
    +    
    +    max.ifPresent(System.out::println); // 4
    +  }
    +}
    +

    Statistik Streams Erzeugen

    Für die Methoden Durchschnitt und Summe werden spezifische Streams benötigt:

    • IntStream
    • LongStream
    • DoubleStream

    Statistik Streams Erzeugen - Methoden

    Um einen Statistik Stream zu erzeugen gibt es Intermediate Operations

    DoubleStream mapToDouble(ToDoubleFunction<T> mapper)
    +IntStream    mapToInt(ToIntFunction<T> mapper)
    +LongStream   mapToLong(ToLongFunction<T> mapper)
    +

    Statistik Streams Erzeugen - Verwenden

    public class Main {
    +  public static void main(String[] args) {
    +    ArrayList<Student> students = getManyStudents();
    +    IntStream studentAges = students.stream()
    +      .mapToInt(student -> student.age());
    +  }
    +}
    +

    Statistik Streams - Methoden

    long sum()
    +                           
    +OptionalDouble average()
    +

    Statistik Streams - Verwendung I

    public class Main {
    +  public static void main(String[] args) {
    +    IntStream manyNumbers = getManyNumbers();
    +    long sum = manyNumbers.sum();
    +  }
    +}
    +

    Statistik - Verwendung II

    public class Main {
    +  public static void main(String[] args) {
    +    IntStream manyNumbers = getManyNumbers();
    +    manyNumbers.average()
    +      .ifPresent(System.out::println);
    +  }
    +}
    +

    Verarbeitung

    Mit forEach kann jedes einzelne Element nacheinander weiterverarbeitet werden.

    Verarbeitung - Methoden

    void forEach(Consumer<T> consumer)
    +

    Verarbeitung - Verwendung

    public class Main {
    +  public static void main(String[] args) {
    +    Stream.of(1, 2, 3, 4)
    +      .filter(number -> number > 1)
    +      .forEach(System.out::println)
    + 
    +    Stream.of(1, 2, 3, 4)
    +      .filter(number -> number > 1)
    +      .forEach(n -> System.out.println(n));
    +  }
    +}
    +

    Rest of the Day

    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/java-2/trees/index.html b/pr-preview/pr-238/slides/steffen/java-2/trees/index.html new file mode 100644 index 0000000000..8ae3e0e103 --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/java-2/trees/index.html @@ -0,0 +1,5 @@ +Programmieren mit Java

    Trees

    Agenda

    • Intro
    • Binary Tree
    • Binary Search Tree
    • Heap (Optional)

    Intro

    Was ist ein Tree?

    Ein Tree (Baum) ist eine hierarchische Datenstruktur. Dies ermöglicht eine effiziente Navigation und Suche durch den Baum.

    Es handelt sich um eine Sammlung von Knoten, die durch Kanten verbunden sind und eine hierarchische Beziehung zwischen den Knoten aufweisen.

    Beispiel Baum

    Begriffe I

    • Root Node
    • Child Node
    • Parent Node
    • Leaf Node
    • Level

    Begriffe II

    • Ancestor Node
    • Descendant Node
    • Sibling
    • Neighbor
    • Subtree

    Anwendungen von Bäumen

    • Dateisystem → ls -la | dir
    • DOM → F12
    • Abstract Syntax Tree

    Arten

    • Binary tree (Binärbaum)
    • Ternary tree (Ternärer Baum)
    • Quadtree (Quaternärbaum)
    • N-Tree/Generic Tree

    Trees vs Arrays vs Lists

    • Access Time: Arrays < Tree < LinkedList
    • Modify Time: LinkedList < Tree < Array
    • Space Limit: LinkedList & Tree > Array

    Binary Tree

    Was ist ein Binary Tree?

    Bei einem Binary Tree kann jeder Node maximal zwei Child Nodes haben. Sie werden als left und right bezeichnet.

    Node Struktur

    public class Node {
    +  public int number;
    +  public Node left;
    +  public Node right;
    +}

    ähnlich wie Linked List

    Binary Tree Eigenschaften

    • 0 bis 2 Knoten
    • Keine Ordnung innerhalb des Baumes

    Binary Tree Operationen

    • traverse → alle Elemente besuchen
    • insert → Element hinzufügen
    • delete → Element entfernen
    • search → Element suchen

    Tree Traversals

    • Depth First Search
    • Breadth First Search

    Depth First Search (DFS)

    • Pre-Order-Traversal
    • In-Order-Traversal
    • Post-Order-Traversal

    Beispiel Tafel: 7, 23, 3, 5, 4, 18, 21

    Demo - Binary Tree DFS

    Welche Datenstruktur haben wir implizit benutzt?

    Breadth First Search (BFS)

    • Gegenteil von DFS
    • Beispiel Tafel

    Welche Datenstruktur werden wir nutzen?

    Demo - Binary Tree BFS

    Vergleichen von Binary Trees

    • Werte
    • Struktur

    Compare Beispiel: 1, 4, 9 an der Tafel BFS & DFS

    DFS bewahrt die Struktur des Baumes

    Demo - Binary Tree Compare DFS

    Binary Search Tree

    Was ist ein Binary Search Tree (BST)?

    • Binary Tree mit Sortierung
    • Left <= Node
    • Node < Right

    Beispiel: BST an der Tafel 17, 15, 50, 4, 16, 25, 21, 30

    BST Operationen

    • Search
    • Insert
    • Delete

    Demo - Binary Search Tree

    Heap

    Was ist ein Heap?

    • Binary Tree mit schwacher Sortierung
    • jeder Nachfolger ist kleiner (MaxHeap)
    • jeder Nachfolger ist größer (MinHeap)

    Beispiel: MinHeap an der Tafel 50, 71, 100, 101, 80, 200, 101

    Heap Eigenschaften

    • Nennt man auch Priotity Queue
    • Kein Traversieren
    • Root ist immer Max/Min

    Heap Operationen

    • insert → Baum anpassen
    • delete → Baum anpassen

    Heap Insert

    1. Am Ende einfügen
    2. nach oben verschieben

    Beispiel: Insert 3

    Heap Delete

    1. root zwischenspeichern
    2. letztes Element mit root tauschen
    3. nach unten verschieben

    Beispiel: Delete

    Heap Probleme

    • Wie kommen wir an das Ende?
    • Wie bekommen wir Parent?
    • Wie bekommen wir Childs?

    Array to the rescue!

    Demo - Heap

    Rest of the day

    • Heute Abgabe!
    • Nachschreiber Fragen!
    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/steffen/tbd/index.html b/pr-preview/pr-238/slides/steffen/tbd/index.html new file mode 100644 index 0000000000..b2132a78ee --- /dev/null +++ b/pr-preview/pr-238/slides/steffen/tbd/index.html @@ -0,0 +1 @@ +Programmieren mit Java

    Wird noch erstellt.

    \ No newline at end of file diff --git a/pr-preview/pr-238/slides/template/index.html b/pr-preview/pr-238/slides/template/index.html new file mode 100644 index 0000000000..cc2550c391 --- /dev/null +++ b/pr-preview/pr-238/slides/template/index.html @@ -0,0 +1 @@ +Programmieren mit Java
    Slide 1
    Vertical Slide 1
    Vertical Slide 2
    Slide 3
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/abstract/index.html b/pr-preview/pr-238/tags/abstract/index.html new file mode 100644 index 0000000000..320fa4fcd2 --- /dev/null +++ b/pr-preview/pr-238/tags/abstract/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "abstract" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/activity-diagrams/index.html b/pr-preview/pr-238/tags/activity-diagrams/index.html new file mode 100644 index 0000000000..8274be4865 --- /dev/null +++ b/pr-preview/pr-238/tags/activity-diagrams/index.html @@ -0,0 +1 @@ +6 docs getaggt mit "activity-diagrams" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/algorithms/index.html b/pr-preview/pr-238/tags/algorithms/index.html new file mode 100644 index 0000000000..1e5676dd1a --- /dev/null +++ b/pr-preview/pr-238/tags/algorithms/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "algorithms" | Programmieren mit Java

    2 docs getaggt mit "algorithms"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/arrays/index.html b/pr-preview/pr-238/tags/arrays/index.html new file mode 100644 index 0000000000..7da676e8c5 --- /dev/null +++ b/pr-preview/pr-238/tags/arrays/index.html @@ -0,0 +1 @@ +3 docs getaggt mit "arrays" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/cases/index.html b/pr-preview/pr-238/tags/cases/index.html new file mode 100644 index 0000000000..534acc7498 --- /dev/null +++ b/pr-preview/pr-238/tags/cases/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "cases" | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/class-diagrams/index.html b/pr-preview/pr-238/tags/class-diagrams/index.html new file mode 100644 index 0000000000..c88c746667 --- /dev/null +++ b/pr-preview/pr-238/tags/class-diagrams/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "class-diagrams" | Programmieren mit Java

    2 docs getaggt mit "class-diagrams"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/class-structure/index.html b/pr-preview/pr-238/tags/class-structure/index.html new file mode 100644 index 0000000000..7cfd3ce6bd --- /dev/null +++ b/pr-preview/pr-238/tags/class-structure/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "class-structure" | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/coding/index.html b/pr-preview/pr-238/tags/coding/index.html new file mode 100644 index 0000000000..d9d1c72e00 --- /dev/null +++ b/pr-preview/pr-238/tags/coding/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "coding" | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/collections/index.html b/pr-preview/pr-238/tags/collections/index.html new file mode 100644 index 0000000000..cdcb39519c --- /dev/null +++ b/pr-preview/pr-238/tags/collections/index.html @@ -0,0 +1 @@ +3 docs getaggt mit "collections" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/comparators/index.html b/pr-preview/pr-238/tags/comparators/index.html new file mode 100644 index 0000000000..563b03ac3b --- /dev/null +++ b/pr-preview/pr-238/tags/comparators/index.html @@ -0,0 +1 @@ +6 docs getaggt mit "comparators" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/console-applications/index.html b/pr-preview/pr-238/tags/console-applications/index.html new file mode 100644 index 0000000000..2e345881c9 --- /dev/null +++ b/pr-preview/pr-238/tags/console-applications/index.html @@ -0,0 +1 @@ +6 docs getaggt mit "console-applications" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/control-structures/index.html b/pr-preview/pr-238/tags/control-structures/index.html new file mode 100644 index 0000000000..5362f0f0bd --- /dev/null +++ b/pr-preview/pr-238/tags/control-structures/index.html @@ -0,0 +1 @@ +4 docs getaggt mit "control-structures" | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/data-objects/index.html b/pr-preview/pr-238/tags/data-objects/index.html new file mode 100644 index 0000000000..09b267265f --- /dev/null +++ b/pr-preview/pr-238/tags/data-objects/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "data-objects" | Programmieren mit Java

    2 docs getaggt mit "data-objects"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/data-types/index.html b/pr-preview/pr-238/tags/data-types/index.html new file mode 100644 index 0000000000..0d1c9ebffd --- /dev/null +++ b/pr-preview/pr-238/tags/data-types/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "data-types" | Programmieren mit Java

    Ein doc getaggt mit "data-types"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/dates-and-times/index.html b/pr-preview/pr-238/tags/dates-and-times/index.html new file mode 100644 index 0000000000..d819adc86d --- /dev/null +++ b/pr-preview/pr-238/tags/dates-and-times/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "dates-and-times" | Programmieren mit Java

    2 docs getaggt mit "dates-and-times"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/design/index.html b/pr-preview/pr-238/tags/design/index.html new file mode 100644 index 0000000000..16e6f0a5c1 --- /dev/null +++ b/pr-preview/pr-238/tags/design/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "design" | Programmieren mit Java

    Ein doc getaggt mit "design"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/enumerations/index.html b/pr-preview/pr-238/tags/enumerations/index.html new file mode 100644 index 0000000000..6abb220c8d --- /dev/null +++ b/pr-preview/pr-238/tags/enumerations/index.html @@ -0,0 +1 @@ +12 docs getaggt mit "enumerations" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/exceptions/index.html b/pr-preview/pr-238/tags/exceptions/index.html new file mode 100644 index 0000000000..d596dbe82c --- /dev/null +++ b/pr-preview/pr-238/tags/exceptions/index.html @@ -0,0 +1 @@ +11 docs getaggt mit "exceptions" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/files/index.html b/pr-preview/pr-238/tags/files/index.html new file mode 100644 index 0000000000..3f30c1c954 --- /dev/null +++ b/pr-preview/pr-238/tags/files/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "files" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/final/index.html b/pr-preview/pr-238/tags/final/index.html new file mode 100644 index 0000000000..41738ec8d8 --- /dev/null +++ b/pr-preview/pr-238/tags/final/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "final" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/generics/index.html b/pr-preview/pr-238/tags/generics/index.html new file mode 100644 index 0000000000..1bfbb84332 --- /dev/null +++ b/pr-preview/pr-238/tags/generics/index.html @@ -0,0 +1 @@ +4 docs getaggt mit "generics" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/git/index.html b/pr-preview/pr-238/tags/git/index.html new file mode 100644 index 0000000000..d4b5cf2617 --- /dev/null +++ b/pr-preview/pr-238/tags/git/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "git" | Programmieren mit Java

    2 docs getaggt mit "git"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/gui/index.html b/pr-preview/pr-238/tags/gui/index.html new file mode 100644 index 0000000000..34ddeda3c1 --- /dev/null +++ b/pr-preview/pr-238/tags/gui/index.html @@ -0,0 +1 @@ +3 docs getaggt mit "gui" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/hashing/index.html b/pr-preview/pr-238/tags/hashing/index.html new file mode 100644 index 0000000000..b102d7666b --- /dev/null +++ b/pr-preview/pr-238/tags/hashing/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "hashing" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/index.html b/pr-preview/pr-238/tags/index.html new file mode 100644 index 0000000000..9e4b7a745f --- /dev/null +++ b/pr-preview/pr-238/tags/index.html @@ -0,0 +1 @@ +Tags | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/inheritance/index.html b/pr-preview/pr-238/tags/inheritance/index.html new file mode 100644 index 0000000000..0aa67ec3d3 --- /dev/null +++ b/pr-preview/pr-238/tags/inheritance/index.html @@ -0,0 +1 @@ +13 docs getaggt mit "inheritance" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/inhertiance/index.html b/pr-preview/pr-238/tags/inhertiance/index.html new file mode 100644 index 0000000000..a3cf305ff7 --- /dev/null +++ b/pr-preview/pr-238/tags/inhertiance/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "inhertiance" | Programmieren mit Java

    Ein doc getaggt mit "inhertiance"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/inner-classes/index.html b/pr-preview/pr-238/tags/inner-classes/index.html new file mode 100644 index 0000000000..87f010ac03 --- /dev/null +++ b/pr-preview/pr-238/tags/inner-classes/index.html @@ -0,0 +1 @@ +5 docs getaggt mit "inner-classes" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/interfaces/index.html b/pr-preview/pr-238/tags/interfaces/index.html new file mode 100644 index 0000000000..45cc614686 --- /dev/null +++ b/pr-preview/pr-238/tags/interfaces/index.html @@ -0,0 +1 @@ +7 docs getaggt mit "interfaces" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/io-streams/index.html b/pr-preview/pr-238/tags/io-streams/index.html new file mode 100644 index 0000000000..f32d6dc8fb --- /dev/null +++ b/pr-preview/pr-238/tags/io-streams/index.html @@ -0,0 +1 @@ +9 docs getaggt mit "io-streams" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/java-api/index.html b/pr-preview/pr-238/tags/java-api/index.html new file mode 100644 index 0000000000..40d315395f --- /dev/null +++ b/pr-preview/pr-238/tags/java-api/index.html @@ -0,0 +1 @@ +8 docs getaggt mit "java-api" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/java-stream-api/index.html b/pr-preview/pr-238/tags/java-stream-api/index.html new file mode 100644 index 0000000000..f6eaaf31ed --- /dev/null +++ b/pr-preview/pr-238/tags/java-stream-api/index.html @@ -0,0 +1 @@ +7 docs getaggt mit "java-stream-api" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/java/index.html b/pr-preview/pr-238/tags/java/index.html new file mode 100644 index 0000000000..995bb941c7 --- /dev/null +++ b/pr-preview/pr-238/tags/java/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "java" | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/javafx/index.html b/pr-preview/pr-238/tags/javafx/index.html new file mode 100644 index 0000000000..d8c144753f --- /dev/null +++ b/pr-preview/pr-238/tags/javafx/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "javafx" | Programmieren mit Java

    2 docs getaggt mit "javafx"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/lambdas/index.html b/pr-preview/pr-238/tags/lambdas/index.html new file mode 100644 index 0000000000..26fa7accd7 --- /dev/null +++ b/pr-preview/pr-238/tags/lambdas/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "lambdas" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/lists/index.html b/pr-preview/pr-238/tags/lists/index.html new file mode 100644 index 0000000000..696bfbae1e --- /dev/null +++ b/pr-preview/pr-238/tags/lists/index.html @@ -0,0 +1 @@ +3 docs getaggt mit "lists" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/lombok/index.html b/pr-preview/pr-238/tags/lombok/index.html new file mode 100644 index 0000000000..28f012f583 --- /dev/null +++ b/pr-preview/pr-238/tags/lombok/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "lombok" | Programmieren mit Java

    Ein doc getaggt mit "lombok"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/loops/index.html b/pr-preview/pr-238/tags/loops/index.html new file mode 100644 index 0000000000..328a50bda0 --- /dev/null +++ b/pr-preview/pr-238/tags/loops/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "loops" | Programmieren mit Java

    2 docs getaggt mit "loops"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/maps/index.html b/pr-preview/pr-238/tags/maps/index.html new file mode 100644 index 0000000000..7cc8b50cad --- /dev/null +++ b/pr-preview/pr-238/tags/maps/index.html @@ -0,0 +1 @@ +14 docs getaggt mit "maps" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/math/index.html b/pr-preview/pr-238/tags/math/index.html new file mode 100644 index 0000000000..b5ee153d8c --- /dev/null +++ b/pr-preview/pr-238/tags/math/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "math" | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/maven/index.html b/pr-preview/pr-238/tags/maven/index.html new file mode 100644 index 0000000000..f8193b8616 --- /dev/null +++ b/pr-preview/pr-238/tags/maven/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "maven" | Programmieren mit Java

    Ein doc getaggt mit "maven"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/object/index.html b/pr-preview/pr-238/tags/object/index.html new file mode 100644 index 0000000000..952d350cd7 --- /dev/null +++ b/pr-preview/pr-238/tags/object/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "object" | Programmieren mit Java

    Ein doc getaggt mit "object"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/oo/index.html b/pr-preview/pr-238/tags/oo/index.html new file mode 100644 index 0000000000..795a25ff4e --- /dev/null +++ b/pr-preview/pr-238/tags/oo/index.html @@ -0,0 +1 @@ +22 docs getaggt mit "oo" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/operators/index.html b/pr-preview/pr-238/tags/operators/index.html new file mode 100644 index 0000000000..4411678453 --- /dev/null +++ b/pr-preview/pr-238/tags/operators/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "operators" | Programmieren mit Java

    2 docs getaggt mit "operators"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/optionals/index.html b/pr-preview/pr-238/tags/optionals/index.html new file mode 100644 index 0000000000..90dd62382e --- /dev/null +++ b/pr-preview/pr-238/tags/optionals/index.html @@ -0,0 +1 @@ +13 docs getaggt mit "optionals" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/polymorphism/index.html b/pr-preview/pr-238/tags/polymorphism/index.html new file mode 100644 index 0000000000..b6544c5d7c --- /dev/null +++ b/pr-preview/pr-238/tags/polymorphism/index.html @@ -0,0 +1 @@ +15 docs getaggt mit "polymorphism" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/queues/index.html b/pr-preview/pr-238/tags/queues/index.html new file mode 100644 index 0000000000..c5be2c3291 --- /dev/null +++ b/pr-preview/pr-238/tags/queues/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "queues" | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/random/index.html b/pr-preview/pr-238/tags/random/index.html new file mode 100644 index 0000000000..aec1168de2 --- /dev/null +++ b/pr-preview/pr-238/tags/random/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "random" | Programmieren mit Java

    Ein doc getaggt mit "random"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/records/index.html b/pr-preview/pr-238/tags/records/index.html new file mode 100644 index 0000000000..cbfec4d747 --- /dev/null +++ b/pr-preview/pr-238/tags/records/index.html @@ -0,0 +1 @@ +16 docs getaggt mit "records" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/sets/index.html b/pr-preview/pr-238/tags/sets/index.html new file mode 100644 index 0000000000..924b14670c --- /dev/null +++ b/pr-preview/pr-238/tags/sets/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "sets" | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/slf-4-j/index.html b/pr-preview/pr-238/tags/slf-4-j/index.html new file mode 100644 index 0000000000..e8e3773867 --- /dev/null +++ b/pr-preview/pr-238/tags/slf-4-j/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "slf4j" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/strings/index.html b/pr-preview/pr-238/tags/strings/index.html new file mode 100644 index 0000000000..0545c77a5c --- /dev/null +++ b/pr-preview/pr-238/tags/strings/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "strings" | Programmieren mit Java

    Ein doc getaggt mit "strings"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/tests/index.html b/pr-preview/pr-238/tags/tests/index.html new file mode 100644 index 0000000000..a9952cccb2 --- /dev/null +++ b/pr-preview/pr-238/tags/tests/index.html @@ -0,0 +1 @@ +Ein doc getaggt mit "tests" | Programmieren mit Java

    Ein doc getaggt mit "tests"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/trees/index.html b/pr-preview/pr-238/tags/trees/index.html new file mode 100644 index 0000000000..31355cfe5c --- /dev/null +++ b/pr-preview/pr-238/tags/trees/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "trees" | Programmieren mit Java

    2 docs getaggt mit "trees"

    Alle Tags anzeigen
    \ No newline at end of file diff --git a/pr-preview/pr-238/tags/uml/index.html b/pr-preview/pr-238/tags/uml/index.html new file mode 100644 index 0000000000..e2939ed7f5 --- /dev/null +++ b/pr-preview/pr-238/tags/uml/index.html @@ -0,0 +1 @@ +4 docs getaggt mit "uml" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/unit-tests/index.html b/pr-preview/pr-238/tags/unit-tests/index.html new file mode 100644 index 0000000000..07742d4365 --- /dev/null +++ b/pr-preview/pr-238/tags/unit-tests/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "unit-tests" | Programmieren mit Java \ No newline at end of file diff --git a/pr-preview/pr-238/tags/wrappers/index.html b/pr-preview/pr-238/tags/wrappers/index.html new file mode 100644 index 0000000000..994419f05c --- /dev/null +++ b/pr-preview/pr-238/tags/wrappers/index.html @@ -0,0 +1 @@ +2 docs getaggt mit "wrappers" | Programmieren mit Java
    \ No newline at end of file diff --git a/pr-preview/pr-238/zip/java-1-exams.zip b/pr-preview/pr-238/zip/java-1-exams.zip new file mode 100644 index 0000000000..c4229061ec Binary files /dev/null and b/pr-preview/pr-238/zip/java-1-exams.zip differ diff --git a/pr-preview/pr-238/zip/java-2-exams.zip b/pr-preview/pr-238/zip/java-2-exams.zip new file mode 100644 index 0000000000..9d08ebb0b0 Binary files /dev/null and b/pr-preview/pr-238/zip/java-2-exams.zip differ